aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-05-27 17:36:13 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-05-27 17:36:13 +0200
commit5f466137ad6ac596600e3ff53c9b786815398445 (patch)
treef914c221874f0b16bf3def7ac01d59d1a99a3b0b
parentc9f5ac8e763eda19aa0564179300cfff76785435 (diff)
downloadwallet-core-5f466137ad6ac596600e3ff53c9b786815398445.tar.xz
node_modules, clean up package.json
-rw-r--r--gulpfile.js5
-rw-r--r--node_modules/abbrev/LICENSE15
-rw-r--r--node_modules/abbrev/README.md23
-rw-r--r--node_modules/abbrev/abbrev.js62
-rw-r--r--node_modules/abbrev/package.json18
-rw-r--r--node_modules/adm-zip/README.md64
-rw-r--r--node_modules/adm-zip/adm-zip.js475
-rw-r--r--node_modules/adm-zip/headers/entryHeader.js261
-rw-r--r--node_modules/adm-zip/headers/index.js2
-rw-r--r--node_modules/adm-zip/headers/mainHeader.js80
-rw-r--r--node_modules/adm-zip/methods/deflater.js1578
-rw-r--r--node_modules/adm-zip/methods/index.js2
-rw-r--r--node_modules/adm-zip/methods/inflater.js448
-rw-r--r--node_modules/adm-zip/package.json39
-rw-r--r--node_modules/adm-zip/util/constants.js115
-rw-r--r--node_modules/adm-zip/util/errors.js35
-rw-r--r--node_modules/adm-zip/util/fattr.js84
-rw-r--r--node_modules/adm-zip/util/index.js4
-rw-r--r--node_modules/adm-zip/util/utils.js199
-rw-r--r--node_modules/adm-zip/zipEntry.js284
-rw-r--r--node_modules/adm-zip/zipFile.js311
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/CHANGELOG.md561
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/Gruntfile.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/LICENSE19
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/bower.json47
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/build/Gruntfile.ls84
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/build/build.ls62
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/build/config.js259
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/build/index.js104
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/client/core.js7613
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/client/core.min.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/client/core.min.js.map1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/client/library.js7136
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/client/library.min.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/client/library.min.js.map1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/client/shim.js7258
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/client/shim.min.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/client/shim.min.js.map1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/core/_.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/core/delay.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/core/dict.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/core/function.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/core/index.js15
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/core/number.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/core/object.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/core/regexp.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/core/string.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es5/index.js37
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/array.js23
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/date.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/function.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/index.js138
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/map.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/math.js18
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/number.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/object.js20
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/parse-float.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/parse-int.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/promise.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/reflect.js15
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/regexp.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/set.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/string.js27
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/symbol.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/typed.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/weak-map.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es6/weak-set.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es7/array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es7/asap.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es7/error.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es7/index.js36
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es7/map.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es7/math.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es7/object.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es7/observable.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es7/reflect.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es7/set.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es7/string.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es7/symbol.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/es7/system.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/_.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/concat.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/copy-within.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/entries.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/every.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/fill.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/filter.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/find-index.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/find.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/for-each.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/from.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/includes.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/index-of.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/index.js24
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/is-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/iterator.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/join.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/keys.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/last-index-of.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/map.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/of.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/pop.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/push.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/reduce-right.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/reduce.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/reverse.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/shift.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/slice.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/some.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/sort.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/splice.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/unshift.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/values.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/copy-within.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/entries.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/every.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/fill.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/filter.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/find-index.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/find.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/for-each.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/includes.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/index-of.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/index.js20
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/iterator.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/join.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/keys.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/last-index-of.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/map.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/reduce-right.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/reduce.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/slice.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/some.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/sort.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/values.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/asap.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/clear-immediate.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/date/index.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/date/now.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/date/to-iso-string.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/date/to-json.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/date/to-primitive.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/date/to-string.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/delay.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/dict.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/dom-collections/index.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/dom-collections/iterator.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/error/index.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/error/is-error.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/function/bind.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/function/has-instance.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/function/index.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/function/name.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/function/part.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/function/virtual/bind.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/function/virtual/index.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/function/virtual/part.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/get-iterator-method.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/get-iterator.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/is-iterable.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/json/index.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/json/stringify.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/map.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/acosh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/asinh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/atanh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/cbrt.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/clz32.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/cosh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/expm1.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/fround.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/hypot.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/iaddh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/imul.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/imulh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/index.js22
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/isubh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/log10.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/log1p.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/log2.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/sign.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/sinh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/tanh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/trunc.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/math/umulh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/number/constructor.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/number/epsilon.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/number/index.js14
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/number/is-finite.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/number/is-integer.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/number/is-nan.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/number/is-safe-integer.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/number/iterator.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/number/max-safe-integer.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/number/min-safe-integer.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/number/parse-float.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/number/parse-int.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/number/to-fixed.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/number/to-precision.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/number/virtual/index.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/number/virtual/iterator.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/number/virtual/to-fixed.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/number/virtual/to-precision.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/assign.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/classof.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/create.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/define-getter.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/define-properties.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/define-property.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/define-setter.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/define.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/entries.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/freeze.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/get-own-property-descriptor.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/get-own-property-descriptors.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/get-own-property-names.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/get-own-property-symbols.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/get-prototype-of.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/index.js30
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/is-extensible.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/is-frozen.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/is-object.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/is-sealed.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/is.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/keys.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/lookup-getter.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/lookup-setter.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/make.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/prevent-extensions.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/seal.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/set-prototype-of.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/object/values.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/observable.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/parse-float.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/parse-int.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/promise.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/apply.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/construct.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/define-metadata.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/define-property.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/delete-metadata.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/delete-property.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/enumerate.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-metadata-keys.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-metadata.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-own-metadata-keys.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-own-metadata.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-own-property-descriptor.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-prototype-of.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/get.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/has-metadata.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/has-own-metadata.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/has.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/index.js24
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/is-extensible.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/metadata.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/own-keys.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/prevent-extensions.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/set-prototype-of.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/reflect/set.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/regexp/constructor.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/regexp/escape.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/regexp/flags.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/regexp/index.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/regexp/match.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/regexp/replace.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/regexp/search.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/regexp/split.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/regexp/to-string.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/set-immediate.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/set-interval.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/set-timeout.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/set.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/anchor.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/at.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/big.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/blink.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/bold.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/code-point-at.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/ends-with.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/escape-html.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/fixed.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/fontcolor.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/fontsize.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/from-code-point.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/includes.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/index.js35
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/italics.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/iterator.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/link.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/match-all.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/pad-end.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/pad-start.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/raw.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/repeat.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/small.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/starts-with.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/strike.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/sub.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/sup.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/trim-end.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/trim-left.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/trim-right.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/trim-start.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/trim.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/unescape-html.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/anchor.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/at.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/big.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/blink.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/bold.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/code-point-at.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/ends-with.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/escape-html.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/fixed.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/fontcolor.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/fontsize.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/includes.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/index.js33
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/italics.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/iterator.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/link.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/match-all.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/pad-end.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/pad-start.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/repeat.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/small.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/starts-with.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/strike.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/sub.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/sup.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim-end.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim-left.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim-right.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim-start.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/unescape-html.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/symbol/async-iterator.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/symbol/for.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/symbol/has-instance.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/symbol/index.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/symbol/is-concat-spreadable.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/symbol/iterator.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/symbol/key-for.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/symbol/match.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/symbol/observable.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/symbol/replace.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/symbol/search.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/symbol/species.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/symbol/split.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/symbol/to-primitive.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/symbol/to-string-tag.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/symbol/unscopables.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/system/global.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/system/index.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/typed/array-buffer.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/typed/data-view.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/typed/float32-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/typed/float64-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/typed/index.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/typed/int16-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/typed/int32-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/typed/int8-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/typed/uint16-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/typed/uint32-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/typed/uint8-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/typed/uint8-clamped-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/weak-map.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/fn/weak-set.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/index.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/core/_.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/core/delay.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/core/dict.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/core/function.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/core/index.js15
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/core/number.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/core/object.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/core/regexp.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/core/string.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es5/index.js37
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/array.js23
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/date.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/function.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/index.js138
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/map.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/math.js18
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/number.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/object.js20
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/parse-float.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/parse-int.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/promise.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/reflect.js15
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/regexp.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/set.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/string.js27
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/symbol.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/typed.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/weak-map.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es6/weak-set.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es7/array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es7/asap.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es7/error.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es7/index.js36
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es7/map.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es7/math.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es7/object.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es7/observable.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es7/reflect.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es7/set.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es7/string.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es7/symbol.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/es7/system.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/_.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/concat.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/copy-within.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/entries.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/every.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/fill.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/filter.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/find-index.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/find.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/for-each.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/from.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/includes.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/index-of.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/index.js24
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/is-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/iterator.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/join.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/keys.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/last-index-of.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/map.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/of.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/pop.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/push.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/reduce-right.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/reduce.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/reverse.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/shift.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/slice.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/some.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/sort.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/splice.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/unshift.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/values.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/copy-within.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/entries.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/every.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/fill.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/filter.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/find-index.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/find.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/for-each.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/includes.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/index-of.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/index.js20
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/iterator.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/join.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/keys.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/last-index-of.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/map.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/reduce-right.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/reduce.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/slice.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/some.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/sort.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/values.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/asap.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/clear-immediate.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/date/index.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/date/now.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/date/to-iso-string.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/date/to-json.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/date/to-primitive.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/date/to-string.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/delay.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/dict.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/dom-collections/index.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/dom-collections/iterator.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/error/index.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/error/is-error.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/function/bind.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/function/has-instance.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/function/index.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/function/name.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/function/part.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/function/virtual/bind.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/function/virtual/index.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/function/virtual/part.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/get-iterator-method.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/get-iterator.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/is-iterable.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/json/index.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/json/stringify.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/map.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/acosh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/asinh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/atanh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/cbrt.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/clz32.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/cosh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/expm1.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/fround.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/hypot.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/iaddh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/imul.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/imulh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/index.js22
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/isubh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/log10.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/log1p.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/log2.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/sign.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/sinh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/tanh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/trunc.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/math/umulh.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/number/constructor.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/number/epsilon.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/number/index.js14
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/number/is-finite.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/number/is-integer.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/number/is-nan.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/number/is-safe-integer.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/number/iterator.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/number/max-safe-integer.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/number/min-safe-integer.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/number/parse-float.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/number/parse-int.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/number/to-fixed.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/number/to-precision.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/number/virtual/index.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/number/virtual/iterator.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/number/virtual/to-fixed.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/number/virtual/to-precision.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/classof.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-getter.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-properties.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-setter.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/define.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/entries.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/freeze.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-own-property-descriptor.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-own-property-descriptors.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-own-property-names.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-own-property-symbols.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-prototype-of.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/index.js30
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/is-extensible.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/is-frozen.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/is-object.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/is-sealed.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/is.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/keys.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/lookup-getter.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/lookup-setter.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/make.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/prevent-extensions.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/seal.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/object/values.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/observable.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/parse-float.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/parse-int.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/promise.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/apply.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/construct.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/define-metadata.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/define-property.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/delete-metadata.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/delete-property.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/enumerate.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-metadata-keys.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-metadata.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-own-metadata-keys.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-own-metadata.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-own-property-descriptor.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-prototype-of.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/has-metadata.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/has-own-metadata.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/has.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/index.js24
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/is-extensible.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/metadata.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/own-keys.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/prevent-extensions.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/set-prototype-of.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/set.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/constructor.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/escape.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/flags.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/index.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/match.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/replace.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/search.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/split.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/to-string.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/set-immediate.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/set-interval.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/set-timeout.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/set.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/anchor.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/at.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/big.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/blink.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/bold.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/code-point-at.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/ends-with.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/escape-html.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/fixed.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/fontcolor.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/fontsize.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/from-code-point.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/includes.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/index.js35
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/italics.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/iterator.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/link.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/match-all.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/pad-end.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/pad-start.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/raw.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/repeat.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/small.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/starts-with.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/strike.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/sub.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/sup.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim-end.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim-left.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim-right.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim-start.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/unescape-html.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/anchor.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/at.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/big.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/blink.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/bold.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/code-point-at.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/ends-with.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/escape-html.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/fixed.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/fontcolor.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/fontsize.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/includes.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/index.js33
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/italics.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/iterator.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/link.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/match-all.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/pad-end.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/pad-start.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/repeat.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/small.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/starts-with.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/strike.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/sub.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/sup.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim-end.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim-left.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim-right.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim-start.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/unescape-html.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/async-iterator.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/for.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/has-instance.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/is-concat-spreadable.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/key-for.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/match.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/observable.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/replace.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/search.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/species.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/split.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/to-primitive.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/to-string-tag.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/unscopables.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/system/global.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/system/index.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/typed/array-buffer.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/typed/data-view.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/typed/float32-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/typed/float64-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/typed/index.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/typed/int16-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/typed/int32-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/typed/int8-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/typed/uint16-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/typed/uint32-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/typed/uint8-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/typed/uint8-clamped-array.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/weak-map.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/fn/weak-set.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/index.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_a-number-value.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_an-instance.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_array-copy-within.js26
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_array-fill.js15
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_array-from-iterable.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js21
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_array-methods.js44
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_array-reduce.js28
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_array-species-constructor.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_array-species-create.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_bind.js24
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_classof.js23
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_collection-strong.js142
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_collection-to-json.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_collection-weak.js83
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_collection.js59
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_create-property.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js20
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_date-to-primitive.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_entry-virtual.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js15
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js61
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_fails-is-regexp.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_fix-re-wks.js28
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_flags.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_for-of.js25
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_inherit-if-required.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_invoke.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array-iter.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_is-integer.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_is-regexp.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-call.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js70
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-detect.js21
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_keyof.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_math-expm1.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_math-log1p.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_math-sign.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js53
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_metadata.js51
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_microtask.js68
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js33
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js41
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_object-define.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_object-forced-pam.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js19
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js17
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_object-to-array.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_own-keys.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_parse-float.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_parse-int.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_partial.js23
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_path.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine-all.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_replacer.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_same-value.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js25
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_set-species.js14
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_species-constructor.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_strict-method.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js17
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_string-context.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_string-html.js19
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_string-pad.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_string-repeat.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_string-trim.js30
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_string-ws.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_task.js75
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_to-index.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_typed-array.js479
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_typed-buffer.js273
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_typed.js26
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js11
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/core.delay.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/core.dict.js155
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/core.function.part.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator-method.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/core.is-iterable.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/core.number.iterator.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/core.object.classof.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/core.object.define.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/core.object.is-object.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/core.object.make.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/core.regexp.escape.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/core.string.escape-html.js11
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/core.string.unescape-html.js11
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es5.js35
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.copy-within.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.every.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.fill.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.filter.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.find-index.js14
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.find.js14
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.for-each.js11
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.from.js37
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.index-of.js15
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.is-array.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js34
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.join.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.last-index-of.js22
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.map.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.of.js19
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.reduce-right.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.reduce.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.slice.js28
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.some.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.sort.js23
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.species.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.now.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.to-iso-string.js28
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.to-json.js14
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.to-primitive.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.to-string.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.function.bind.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.function.has-instance.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.function.name.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.map.js17
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.acosh.js18
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.asinh.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.atanh.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.cbrt.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.clz32.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.cosh.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.expm1.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.fround.js26
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.hypot.js25
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.imul.js17
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.log10.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.log1p.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.log2.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.sign.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.sinh.js15
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.tanh.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.trunc.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.constructor.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.epsilon.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.is-finite.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.is-integer.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.is-nan.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.is-safe-integer.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.max-safe-integer.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.min-safe-integer.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.parse-float.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.parse-int.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.to-fixed.js113
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.to-precision.js18
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-properties.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.freeze.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-own-property-names.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-prototype-of.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.is-extensible.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.is-frozen.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.is-sealed.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.is.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.keys.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.prevent-extensions.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.seal.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.to-string.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.parse-float.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.parse-int.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.promise.js299
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.apply.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.construct.js47
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.define-property.js22
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.delete-property.js11
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.enumerate.js26
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.get-own-property-descriptor.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.get-prototype-of.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.get.js21
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.has.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.is-extensible.js11
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.own-keys.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.prevent-extensions.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.set-prototype-of.js15
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.set.js31
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.constructor.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.flags.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.match.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.replace.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.search.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.split.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.to-string.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.set.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.anchor.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.big.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.blink.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.bold.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.code-point-at.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.ends-with.js20
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.fixed.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.fontcolor.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.fontsize.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.from-code-point.js23
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.includes.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.italics.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js17
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.link.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.raw.js18
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.repeat.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.small.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.starts-with.js18
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.strike.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.sub.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.sup.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.trim.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js235
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.array-buffer.js46
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.data-view.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.float32-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.float64-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.int16-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.int32-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.int8-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.uint16-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.uint32-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.uint8-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.uint8-clamped-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.weak-map.js56
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es6.weak-set.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.array.includes.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.asap.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.error.is-error.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.map.to-json.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.math.iaddh.js11
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.math.imulh.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.math.isubh.js11
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.math.umulh.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.define-getter.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.define-setter.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.entries.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.enumerable-entries.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.enumerable-keys.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.enumerable-values.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js19
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.lookup-getter.js18
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.lookup-setter.js18
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.values.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.observable.js199
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.define-metadata.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.delete-metadata.js15
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.get-metadata-keys.js19
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.get-metadata.js17
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.get-own-metadata-keys.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.get-own-metadata.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.has-metadata.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.has-own-metadata.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.metadata.js15
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.set.to-json.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.at.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.match-all.js30
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.pad-end.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.pad-start.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.trim-left.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.trim-right.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/es7.system.global.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/web.immediate.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/modules/web.timers.js20
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/shim.js176
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/stage/0.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/stage/1.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/stage/2.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/stage/3.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/stage/4.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/stage/index.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/stage/pre.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/web/dom-collections.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/web/immediate.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/web/index.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/library/web/timers.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_a-function.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_a-number-value.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_add-to-unscopables.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_an-instance.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_an-object.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_array-copy-within.js26
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_array-fill.js15
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_array-from-iterable.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_array-includes.js21
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_array-methods.js44
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_array-reduce.js28
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_array-species-constructor.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_array-species-create.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_bind.js24
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_classof.js23
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_cof.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_collection-strong.js142
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_collection-to-json.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_collection-weak.js83
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_collection.js85
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_core.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_create-property.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_ctx.js20
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_date-to-primitive.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_defined.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_descriptors.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_dom-create.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_entry-virtual.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_enum-bug-keys.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_enum-keys.js15
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_export.js43
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_fails-is-regexp.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_fails.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_fix-re-wks.js28
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_flags.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_for-of.js25
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_global.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_has.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_hide.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_html.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_ie8-dom-define.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_inherit-if-required.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_invoke.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_iobject.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_is-array-iter.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_is-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_is-integer.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_is-object.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_is-regexp.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_iter-call.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_iter-create.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_iter-define.js70
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_iter-detect.js21
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_iter-step.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_iterators.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_keyof.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_library.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_math-expm1.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_math-log1p.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_math-sign.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_meta.js53
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_metadata.js51
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_microtask.js68
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_object-assign.js33
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_object-create.js41
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_object-define.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_object-dp.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_object-dps.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_object-forced-pam.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_object-gopd.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_object-gopn-ext.js19
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_object-gopn.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_object-gops.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_object-gpo.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_object-keys-internal.js17
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_object-keys.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_object-pie.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_object-sap.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_object-to-array.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_own-keys.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_parse-float.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_parse-int.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_partial.js23
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_path.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_property-desc.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_redefine-all.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_redefine.js32
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_replacer.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_same-value.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_set-proto.js25
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_set-species.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_set-to-string-tag.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_shared-key.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_shared.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_species-constructor.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_strict-method.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_string-at.js17
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_string-context.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_string-html.js19
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_string-pad.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_string-repeat.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_string-trim.js30
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_string-ws.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_task.js75
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_to-index.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_to-integer.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_to-iobject.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_to-length.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_to-object.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_to-primitive.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_typed-array.js479
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_typed-buffer.js273
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_typed.js26
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_uid.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_wks-define.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_wks-ext.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/_wks.js11
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/core.delay.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/core.dict.js155
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/core.function.part.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/core.get-iterator-method.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/core.get-iterator.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/core.is-iterable.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/core.number.iterator.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/core.object.classof.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/core.object.define.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/core.object.is-object.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/core.object.make.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/core.regexp.escape.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/core.string.escape-html.js11
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/core.string.unescape-html.js11
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es5.js35
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.copy-within.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.every.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.fill.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.filter.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.find-index.js14
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.find.js14
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.for-each.js11
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.from.js37
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.index-of.js15
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.is-array.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.iterator.js34
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.join.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.last-index-of.js22
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.map.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.of.js19
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.reduce-right.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.reduce.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.slice.js28
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.some.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.sort.js23
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.array.species.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.date.now.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.date.to-iso-string.js28
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.date.to-json.js14
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.date.to-primitive.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.date.to-string.js11
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.function.bind.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.function.has-instance.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.function.name.js25
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.map.js17
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.math.acosh.js18
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.math.asinh.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.math.atanh.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.math.cbrt.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.math.clz32.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.math.cosh.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.math.expm1.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.math.fround.js26
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.math.hypot.js25
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.math.imul.js17
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.math.log10.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.math.log1p.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.math.log2.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.math.sign.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.math.sinh.js15
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.math.tanh.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.math.trunc.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.number.constructor.js69
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.number.epsilon.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.number.is-finite.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.number.is-integer.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.number.is-nan.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.number.is-safe-integer.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.number.max-safe-integer.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.number.min-safe-integer.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.number.parse-float.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.number.parse-int.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.number.to-fixed.js113
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.number.to-precision.js18
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.object.assign.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.object.create.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.object.define-properties.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.object.define-property.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.object.freeze.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.object.get-own-property-descriptor.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.object.get-own-property-names.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.object.get-prototype-of.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.object.is-extensible.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.object.is-frozen.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.object.is-sealed.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.object.is.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.object.keys.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.object.prevent-extensions.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.object.seal.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.object.set-prototype-of.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.object.to-string.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.parse-float.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.parse-int.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.promise.js299
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.apply.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.construct.js47
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.define-property.js22
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.delete-property.js11
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.enumerate.js26
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.get-prototype-of.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.get.js21
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.has.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.is-extensible.js11
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.own-keys.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.prevent-extensions.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.set-prototype-of.js15
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.set.js31
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.constructor.js43
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.flags.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.match.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.replace.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.search.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.split.js70
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.to-string.js25
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.set.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.anchor.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.big.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.blink.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.bold.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.code-point-at.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.ends-with.js20
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.fixed.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.fontcolor.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.fontsize.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.from-code-point.js23
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.includes.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.italics.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.iterator.js17
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.link.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.raw.js18
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.repeat.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.small.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.starts-with.js18
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.strike.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.sub.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.sup.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.string.trim.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.symbol.js235
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.array-buffer.js46
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.data-view.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.float32-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.float64-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.int16-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.int32-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.int8-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.uint16-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.uint32-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.uint8-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.uint8-clamped-array.js5
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.weak-map.js56
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es6.weak-set.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.array.includes.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.asap.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.error.is-error.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.map.to-json.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.math.iaddh.js11
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.math.imulh.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.math.isubh.js11
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.math.umulh.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.object.define-getter.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.object.define-setter.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.object.entries.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.object.enumerable-entries.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.object.enumerable-keys.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.object.enumerable-values.js12
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.object.get-own-property-descriptors.js19
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.object.lookup-getter.js18
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.object.lookup-setter.js18
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.object.values.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.observable.js199
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.define-metadata.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.delete-metadata.js15
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.get-metadata-keys.js19
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.get-metadata.js17
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.get-own-metadata.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.has-metadata.js16
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.has-own-metadata.js9
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.metadata.js15
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.set.to-json.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.string.at.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.string.match-all.js30
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.string.pad-end.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.string.pad-start.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.string.trim-left.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.string.trim-right.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.symbol.async-iterator.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.symbol.observable.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/es7.system.global.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/_add-to-unscopables.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/_collection.js59
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/_export.js61
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/_library.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/_path.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/_redefine-all.js7
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/_redefine.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/_set-species.js14
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/es6.date.to-primitive.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/es6.date.to-string.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/es6.function.name.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/es6.number.constructor.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/es6.object.to-string.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.constructor.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.flags.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.match.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.replace.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.search.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.split.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.to-string.js0
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/library/web.dom.iterable.js13
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/web.dom.iterable.js22
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/web.immediate.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/modules/web.timers.js20
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/package.json69
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/shim.js176
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/stage/0.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/stage/1.js6
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/stage/2.js3
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/stage/3.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/stage/4.js8
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/stage/index.js1
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/stage/pre.js10
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/web/dom-collections.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/web/immediate.js2
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/web/index.js4
-rw-r--r--node_modules/babel-runtime/node_modules/core-js/web/timers.js2
-rw-r--r--node_modules/better-assert/.npmignore4
-rw-r--r--node_modules/better-assert/History.md15
-rw-r--r--node_modules/better-assert/Makefile5
-rw-r--r--node_modules/better-assert/Readme.md61
-rw-r--r--node_modules/better-assert/example.js10
-rw-r--r--node_modules/better-assert/index.js38
-rw-r--r--node_modules/better-assert/package.json27
-rw-r--r--node_modules/callsite/.npmignore4
-rw-r--r--node_modules/callsite/History.md10
-rw-r--r--node_modules/callsite/Makefile6
-rw-r--r--node_modules/callsite/Readme.md44
-rw-r--r--node_modules/callsite/index.js10
-rw-r--r--node_modules/callsite/package.json11
-rw-r--r--node_modules/cliui/.coveralls.yml1
-rw-r--r--node_modules/cliui/.npmignore2
-rw-r--r--node_modules/cliui/.travis.yml7
-rw-r--r--node_modules/cliui/README.md20
-rw-r--r--node_modules/cliui/index.js171
-rw-r--r--node_modules/cliui/node_modules/wordwrap/.npmignore1
-rw-r--r--node_modules/cliui/node_modules/wordwrap/README.markdown70
-rw-r--r--node_modules/cliui/node_modules/wordwrap/example/center.js10
-rw-r--r--node_modules/cliui/node_modules/wordwrap/example/meat.js3
-rw-r--r--node_modules/cliui/node_modules/wordwrap/index.js76
-rw-r--r--node_modules/cliui/node_modules/wordwrap/package.json37
-rw-r--r--node_modules/cliui/node_modules/wordwrap/test/break.js30
-rw-r--r--node_modules/cliui/node_modules/wordwrap/test/idleness.txt63
-rw-r--r--node_modules/cliui/node_modules/wordwrap/test/wrap.js31
-rw-r--r--node_modules/cliui/package.json37
-rw-r--r--node_modules/cliui/test/cliui.js349
-rw-r--r--node_modules/connect/HISTORY.md2460
-rw-r--r--node_modules/connect/LICENSE25
-rw-r--r--node_modules/connect/README.md289
-rw-r--r--node_modules/connect/index.js283
-rw-r--r--node_modules/connect/package.json45
-rw-r--r--node_modules/core-js/CHANGELOG.md188
-rw-r--r--node_modules/core-js/LICENSE2
-rw-r--r--node_modules/core-js/bower.json19
-rw-r--r--node_modules/core-js/build/Gruntfile.ls24
-rw-r--r--node_modules/core-js/build/build.ls226
-rw-r--r--node_modules/core-js/build/config.js251
-rw-r--r--node_modules/core-js/build/index.js152
-rw-r--r--node_modules/core-js/client/core.js6907
-rw-r--r--node_modules/core-js/client/core.min.js7
-rw-r--r--node_modules/core-js/client/core.min.js.map2
-rw-r--r--node_modules/core-js/client/library.js6494
-rw-r--r--node_modules/core-js/client/library.min.js7
-rw-r--r--node_modules/core-js/client/library.min.js.map2
-rw-r--r--node_modules/core-js/client/shim.js6705
-rw-r--r--node_modules/core-js/client/shim.min.js7
-rw-r--r--node_modules/core-js/client/shim.min.js.map2
-rw-r--r--node_modules/core-js/core/_.js2
-rw-r--r--node_modules/core-js/core/delay.js2
-rw-r--r--node_modules/core-js/core/dict.js2
-rw-r--r--node_modules/core-js/core/function.js2
-rw-r--r--node_modules/core-js/core/index.js4
-rw-r--r--node_modules/core-js/core/log.js2
-rw-r--r--node_modules/core-js/core/number.js2
-rw-r--r--node_modules/core-js/core/object.js2
-rw-r--r--node_modules/core-js/core/string.js2
-rw-r--r--node_modules/core-js/es5/index.js32
-rw-r--r--node_modules/core-js/es6/array.js19
-rw-r--r--node_modules/core-js/es6/function.js3
-rw-r--r--node_modules/core-js/es6/index.js73
-rw-r--r--node_modules/core-js/es6/map.js2
-rw-r--r--node_modules/core-js/es6/math.js2
-rw-r--r--node_modules/core-js/es6/number.js4
-rw-r--r--node_modules/core-js/es6/object.js21
-rw-r--r--node_modules/core-js/es6/promise.js2
-rw-r--r--node_modules/core-js/es6/reflect.js2
-rw-r--r--node_modules/core-js/es6/regexp.js3
-rw-r--r--node_modules/core-js/es6/set.js2
-rw-r--r--node_modules/core-js/es6/string.js15
-rw-r--r--node_modules/core-js/es6/symbol.js2
-rw-r--r--node_modules/core-js/es6/weak-map.js2
-rw-r--r--node_modules/core-js/es6/weak-set.js2
-rw-r--r--node_modules/core-js/es7/array.js2
-rw-r--r--node_modules/core-js/es7/index.js31
-rw-r--r--node_modules/core-js/es7/map.js2
-rw-r--r--node_modules/core-js/es7/object.js6
-rw-r--r--node_modules/core-js/es7/regexp.js2
-rw-r--r--node_modules/core-js/es7/set.js2
-rw-r--r--node_modules/core-js/es7/string.js7
-rw-r--r--node_modules/core-js/fn/_.js2
-rw-r--r--node_modules/core-js/fn/array/concat.js6
-rw-r--r--node_modules/core-js/fn/array/copy-within.js2
-rw-r--r--node_modules/core-js/fn/array/entries.js2
-rw-r--r--node_modules/core-js/fn/array/every.js4
-rw-r--r--node_modules/core-js/fn/array/fill.js2
-rw-r--r--node_modules/core-js/fn/array/filter.js4
-rw-r--r--node_modules/core-js/fn/array/find-index.js2
-rw-r--r--node_modules/core-js/fn/array/find.js2
-rw-r--r--node_modules/core-js/fn/array/for-each.js4
-rw-r--r--node_modules/core-js/fn/array/from.js2
-rw-r--r--node_modules/core-js/fn/array/includes.js2
-rw-r--r--node_modules/core-js/fn/array/index-of.js4
-rw-r--r--node_modules/core-js/fn/array/index.js20
-rw-r--r--node_modules/core-js/fn/array/iterator.js2
-rw-r--r--node_modules/core-js/fn/array/join.js4
-rw-r--r--node_modules/core-js/fn/array/keys.js2
-rw-r--r--node_modules/core-js/fn/array/last-index-of.js4
-rw-r--r--node_modules/core-js/fn/array/map.js4
-rw-r--r--node_modules/core-js/fn/array/of.js2
-rw-r--r--node_modules/core-js/fn/array/pop.js6
-rw-r--r--node_modules/core-js/fn/array/push.js6
-rw-r--r--node_modules/core-js/fn/array/reduce-right.js4
-rw-r--r--node_modules/core-js/fn/array/reduce.js4
-rw-r--r--node_modules/core-js/fn/array/reverse.js6
-rw-r--r--node_modules/core-js/fn/array/shift.js6
-rw-r--r--node_modules/core-js/fn/array/slice.js4
-rw-r--r--node_modules/core-js/fn/array/some.js4
-rw-r--r--node_modules/core-js/fn/array/sort.js4
-rw-r--r--node_modules/core-js/fn/array/splice.js6
-rw-r--r--node_modules/core-js/fn/array/unshift.js6
-rw-r--r--node_modules/core-js/fn/array/values.js2
-rw-r--r--node_modules/core-js/fn/clear-immediate.js2
-rw-r--r--node_modules/core-js/fn/delay.js2
-rw-r--r--node_modules/core-js/fn/dict.js2
-rw-r--r--node_modules/core-js/fn/function/has-instance.js2
-rw-r--r--node_modules/core-js/fn/function/index.js3
-rw-r--r--node_modules/core-js/fn/function/part.js2
-rw-r--r--node_modules/core-js/fn/html-collection/index.js2
-rw-r--r--node_modules/core-js/fn/html-collection/iterator.js2
-rw-r--r--node_modules/core-js/fn/json/stringify.js5
-rw-r--r--node_modules/core-js/fn/log.js2
-rw-r--r--node_modules/core-js/fn/map.js2
-rw-r--r--node_modules/core-js/fn/math/acosh.js2
-rw-r--r--node_modules/core-js/fn/math/asinh.js2
-rw-r--r--node_modules/core-js/fn/math/atanh.js2
-rw-r--r--node_modules/core-js/fn/math/cbrt.js2
-rw-r--r--node_modules/core-js/fn/math/clz32.js2
-rw-r--r--node_modules/core-js/fn/math/cosh.js2
-rw-r--r--node_modules/core-js/fn/math/expm1.js2
-rw-r--r--node_modules/core-js/fn/math/fround.js2
-rw-r--r--node_modules/core-js/fn/math/hypot.js2
-rw-r--r--node_modules/core-js/fn/math/imul.js2
-rw-r--r--node_modules/core-js/fn/math/index.js6
-rw-r--r--node_modules/core-js/fn/math/log10.js2
-rw-r--r--node_modules/core-js/fn/math/log1p.js2
-rw-r--r--node_modules/core-js/fn/math/log2.js2
-rw-r--r--node_modules/core-js/fn/math/sign.js2
-rw-r--r--node_modules/core-js/fn/math/sinh.js2
-rw-r--r--node_modules/core-js/fn/math/tanh.js2
-rw-r--r--node_modules/core-js/fn/math/trunc.js2
-rw-r--r--node_modules/core-js/fn/node-list/index.js2
-rw-r--r--node_modules/core-js/fn/node-list/iterator.js2
-rw-r--r--node_modules/core-js/fn/number/index.js4
-rw-r--r--node_modules/core-js/fn/number/is-finite.js2
-rw-r--r--node_modules/core-js/fn/number/is-integer.js2
-rw-r--r--node_modules/core-js/fn/number/is-nan.js2
-rw-r--r--node_modules/core-js/fn/number/is-safe-integer.js2
-rw-r--r--node_modules/core-js/fn/number/iterator.js2
-rw-r--r--node_modules/core-js/fn/object/assign.js2
-rw-r--r--node_modules/core-js/fn/object/classof.js2
-rw-r--r--node_modules/core-js/fn/object/create.js5
-rw-r--r--node_modules/core-js/fn/object/define-properties.js5
-rw-r--r--node_modules/core-js/fn/object/define-property.js5
-rw-r--r--node_modules/core-js/fn/object/define.js2
-rw-r--r--node_modules/core-js/fn/object/entries.js2
-rw-r--r--node_modules/core-js/fn/object/freeze.js2
-rw-r--r--node_modules/core-js/fn/object/get-own-property-descriptor.js4
-rw-r--r--node_modules/core-js/fn/object/get-own-property-descriptors.js2
-rw-r--r--node_modules/core-js/fn/object/get-own-property-names.js4
-rw-r--r--node_modules/core-js/fn/object/get-own-property-symbols.js2
-rw-r--r--node_modules/core-js/fn/object/get-prototype-of.js2
-rw-r--r--node_modules/core-js/fn/object/index.js25
-rw-r--r--node_modules/core-js/fn/object/is-extensible.js2
-rw-r--r--node_modules/core-js/fn/object/is-frozen.js2
-rw-r--r--node_modules/core-js/fn/object/is-object.js2
-rw-r--r--node_modules/core-js/fn/object/is-sealed.js2
-rw-r--r--node_modules/core-js/fn/object/is.js2
-rw-r--r--node_modules/core-js/fn/object/keys.js2
-rw-r--r--node_modules/core-js/fn/object/make.js2
-rw-r--r--node_modules/core-js/fn/object/prevent-extensions.js2
-rw-r--r--node_modules/core-js/fn/object/seal.js2
-rw-r--r--node_modules/core-js/fn/object/set-prototype-of.js2
-rw-r--r--node_modules/core-js/fn/object/values.js2
-rw-r--r--node_modules/core-js/fn/promise.js2
-rw-r--r--node_modules/core-js/fn/reflect/apply.js2
-rw-r--r--node_modules/core-js/fn/reflect/construct.js2
-rw-r--r--node_modules/core-js/fn/reflect/define-property.js2
-rw-r--r--node_modules/core-js/fn/reflect/delete-property.js2
-rw-r--r--node_modules/core-js/fn/reflect/enumerate.js2
-rw-r--r--node_modules/core-js/fn/reflect/get-own-property-descriptor.js2
-rw-r--r--node_modules/core-js/fn/reflect/get-prototype-of.js2
-rw-r--r--node_modules/core-js/fn/reflect/get.js2
-rw-r--r--node_modules/core-js/fn/reflect/has.js2
-rw-r--r--node_modules/core-js/fn/reflect/index.js11
-rw-r--r--node_modules/core-js/fn/reflect/is-extensible.js2
-rw-r--r--node_modules/core-js/fn/reflect/own-keys.js2
-rw-r--r--node_modules/core-js/fn/reflect/prevent-extensions.js2
-rw-r--r--node_modules/core-js/fn/reflect/set-prototype-of.js2
-rw-r--r--node_modules/core-js/fn/reflect/set.js2
-rw-r--r--node_modules/core-js/fn/regexp/escape.js4
-rw-r--r--node_modules/core-js/fn/regexp/index.js5
-rw-r--r--node_modules/core-js/fn/set-immediate.js2
-rw-r--r--node_modules/core-js/fn/set-interval.js2
-rw-r--r--node_modules/core-js/fn/set-timeout.js2
-rw-r--r--node_modules/core-js/fn/set.js2
-rw-r--r--node_modules/core-js/fn/string/at.js2
-rw-r--r--node_modules/core-js/fn/string/code-point-at.js2
-rw-r--r--node_modules/core-js/fn/string/ends-with.js2
-rw-r--r--node_modules/core-js/fn/string/escape-html.js2
-rw-r--r--node_modules/core-js/fn/string/from-code-point.js2
-rw-r--r--node_modules/core-js/fn/string/includes.js2
-rw-r--r--node_modules/core-js/fn/string/index.js20
-rw-r--r--node_modules/core-js/fn/string/iterator.js2
-rw-r--r--node_modules/core-js/fn/string/pad-left.js2
-rw-r--r--node_modules/core-js/fn/string/pad-right.js2
-rw-r--r--node_modules/core-js/fn/string/raw.js2
-rw-r--r--node_modules/core-js/fn/string/repeat.js2
-rw-r--r--node_modules/core-js/fn/string/starts-with.js2
-rw-r--r--node_modules/core-js/fn/string/trim-left.js2
-rw-r--r--node_modules/core-js/fn/string/trim-right.js2
-rw-r--r--node_modules/core-js/fn/string/trim.js2
-rw-r--r--node_modules/core-js/fn/string/unescape-html.js2
-rw-r--r--node_modules/core-js/fn/symbol/for.js2
-rw-r--r--node_modules/core-js/fn/symbol/has-instance.js3
-rw-r--r--node_modules/core-js/fn/symbol/index.js4
-rw-r--r--node_modules/core-js/fn/symbol/is-concat-spreadable.js2
-rw-r--r--node_modules/core-js/fn/symbol/iterator.js2
-rw-r--r--node_modules/core-js/fn/symbol/key-for.js2
-rw-r--r--node_modules/core-js/fn/symbol/match.js2
-rw-r--r--node_modules/core-js/fn/symbol/replace.js2
-rw-r--r--node_modules/core-js/fn/symbol/search.js2
-rw-r--r--node_modules/core-js/fn/symbol/species.js2
-rw-r--r--node_modules/core-js/fn/symbol/split.js2
-rw-r--r--node_modules/core-js/fn/symbol/to-primitive.js2
-rw-r--r--node_modules/core-js/fn/symbol/to-string-tag.js2
-rw-r--r--node_modules/core-js/fn/symbol/unscopables.js2
-rw-r--r--node_modules/core-js/fn/weak-map.js2
-rw-r--r--node_modules/core-js/fn/weak-set.js2
-rw-r--r--node_modules/core-js/index.js4
-rw-r--r--node_modules/core-js/js/array.js2
-rw-r--r--node_modules/core-js/js/index.js2
-rw-r--r--node_modules/core-js/library/core/_.js2
-rw-r--r--node_modules/core-js/library/core/delay.js2
-rw-r--r--node_modules/core-js/library/core/dict.js2
-rw-r--r--node_modules/core-js/library/core/function.js2
-rw-r--r--node_modules/core-js/library/core/index.js4
-rw-r--r--node_modules/core-js/library/core/log.js2
-rw-r--r--node_modules/core-js/library/core/number.js2
-rw-r--r--node_modules/core-js/library/core/object.js2
-rw-r--r--node_modules/core-js/library/core/string.js2
-rw-r--r--node_modules/core-js/library/es5/index.js32
-rw-r--r--node_modules/core-js/library/es6/array.js19
-rw-r--r--node_modules/core-js/library/es6/function.js3
-rw-r--r--node_modules/core-js/library/es6/index.js73
-rw-r--r--node_modules/core-js/library/es6/map.js2
-rw-r--r--node_modules/core-js/library/es6/math.js2
-rw-r--r--node_modules/core-js/library/es6/number.js4
-rw-r--r--node_modules/core-js/library/es6/object.js21
-rw-r--r--node_modules/core-js/library/es6/promise.js2
-rw-r--r--node_modules/core-js/library/es6/reflect.js2
-rw-r--r--node_modules/core-js/library/es6/regexp.js3
-rw-r--r--node_modules/core-js/library/es6/set.js2
-rw-r--r--node_modules/core-js/library/es6/string.js15
-rw-r--r--node_modules/core-js/library/es6/symbol.js2
-rw-r--r--node_modules/core-js/library/es6/weak-map.js2
-rw-r--r--node_modules/core-js/library/es6/weak-set.js2
-rw-r--r--node_modules/core-js/library/es7/array.js2
-rw-r--r--node_modules/core-js/library/es7/index.js31
-rw-r--r--node_modules/core-js/library/es7/map.js2
-rw-r--r--node_modules/core-js/library/es7/object.js6
-rw-r--r--node_modules/core-js/library/es7/regexp.js2
-rw-r--r--node_modules/core-js/library/es7/set.js2
-rw-r--r--node_modules/core-js/library/es7/string.js7
-rw-r--r--node_modules/core-js/library/fn/_.js2
-rw-r--r--node_modules/core-js/library/fn/array/concat.js6
-rw-r--r--node_modules/core-js/library/fn/array/copy-within.js2
-rw-r--r--node_modules/core-js/library/fn/array/entries.js2
-rw-r--r--node_modules/core-js/library/fn/array/every.js4
-rw-r--r--node_modules/core-js/library/fn/array/fill.js2
-rw-r--r--node_modules/core-js/library/fn/array/filter.js4
-rw-r--r--node_modules/core-js/library/fn/array/find-index.js2
-rw-r--r--node_modules/core-js/library/fn/array/find.js2
-rw-r--r--node_modules/core-js/library/fn/array/for-each.js4
-rw-r--r--node_modules/core-js/library/fn/array/from.js2
-rw-r--r--node_modules/core-js/library/fn/array/includes.js2
-rw-r--r--node_modules/core-js/library/fn/array/index-of.js4
-rw-r--r--node_modules/core-js/library/fn/array/index.js20
-rw-r--r--node_modules/core-js/library/fn/array/iterator.js2
-rw-r--r--node_modules/core-js/library/fn/array/join.js4
-rw-r--r--node_modules/core-js/library/fn/array/keys.js2
-rw-r--r--node_modules/core-js/library/fn/array/last-index-of.js4
-rw-r--r--node_modules/core-js/library/fn/array/map.js4
-rw-r--r--node_modules/core-js/library/fn/array/of.js2
-rw-r--r--node_modules/core-js/library/fn/array/pop.js6
-rw-r--r--node_modules/core-js/library/fn/array/push.js6
-rw-r--r--node_modules/core-js/library/fn/array/reduce-right.js4
-rw-r--r--node_modules/core-js/library/fn/array/reduce.js4
-rw-r--r--node_modules/core-js/library/fn/array/reverse.js6
-rw-r--r--node_modules/core-js/library/fn/array/shift.js6
-rw-r--r--node_modules/core-js/library/fn/array/slice.js4
-rw-r--r--node_modules/core-js/library/fn/array/some.js4
-rw-r--r--node_modules/core-js/library/fn/array/sort.js4
-rw-r--r--node_modules/core-js/library/fn/array/splice.js6
-rw-r--r--node_modules/core-js/library/fn/array/unshift.js6
-rw-r--r--node_modules/core-js/library/fn/array/values.js2
-rw-r--r--node_modules/core-js/library/fn/clear-immediate.js2
-rw-r--r--node_modules/core-js/library/fn/delay.js2
-rw-r--r--node_modules/core-js/library/fn/dict.js2
-rw-r--r--node_modules/core-js/library/fn/function/has-instance.js2
-rw-r--r--node_modules/core-js/library/fn/function/index.js3
-rw-r--r--node_modules/core-js/library/fn/function/part.js2
-rw-r--r--node_modules/core-js/library/fn/html-collection/index.js2
-rw-r--r--node_modules/core-js/library/fn/html-collection/iterator.js2
-rw-r--r--node_modules/core-js/library/fn/json/stringify.js5
-rw-r--r--node_modules/core-js/library/fn/log.js2
-rw-r--r--node_modules/core-js/library/fn/map.js2
-rw-r--r--node_modules/core-js/library/fn/math/acosh.js2
-rw-r--r--node_modules/core-js/library/fn/math/asinh.js2
-rw-r--r--node_modules/core-js/library/fn/math/atanh.js2
-rw-r--r--node_modules/core-js/library/fn/math/cbrt.js2
-rw-r--r--node_modules/core-js/library/fn/math/clz32.js2
-rw-r--r--node_modules/core-js/library/fn/math/cosh.js2
-rw-r--r--node_modules/core-js/library/fn/math/expm1.js2
-rw-r--r--node_modules/core-js/library/fn/math/fround.js2
-rw-r--r--node_modules/core-js/library/fn/math/hypot.js2
-rw-r--r--node_modules/core-js/library/fn/math/imul.js2
-rw-r--r--node_modules/core-js/library/fn/math/index.js6
-rw-r--r--node_modules/core-js/library/fn/math/log10.js2
-rw-r--r--node_modules/core-js/library/fn/math/log1p.js2
-rw-r--r--node_modules/core-js/library/fn/math/log2.js2
-rw-r--r--node_modules/core-js/library/fn/math/sign.js2
-rw-r--r--node_modules/core-js/library/fn/math/sinh.js2
-rw-r--r--node_modules/core-js/library/fn/math/tanh.js2
-rw-r--r--node_modules/core-js/library/fn/math/trunc.js2
-rw-r--r--node_modules/core-js/library/fn/node-list/index.js2
-rw-r--r--node_modules/core-js/library/fn/node-list/iterator.js2
-rw-r--r--node_modules/core-js/library/fn/number/index.js4
-rw-r--r--node_modules/core-js/library/fn/number/is-finite.js2
-rw-r--r--node_modules/core-js/library/fn/number/is-integer.js2
-rw-r--r--node_modules/core-js/library/fn/number/is-nan.js2
-rw-r--r--node_modules/core-js/library/fn/number/is-safe-integer.js2
-rw-r--r--node_modules/core-js/library/fn/number/iterator.js2
-rw-r--r--node_modules/core-js/library/fn/object/assign.js2
-rw-r--r--node_modules/core-js/library/fn/object/classof.js2
-rw-r--r--node_modules/core-js/library/fn/object/create.js5
-rw-r--r--node_modules/core-js/library/fn/object/define-properties.js5
-rw-r--r--node_modules/core-js/library/fn/object/define-property.js5
-rw-r--r--node_modules/core-js/library/fn/object/define.js2
-rw-r--r--node_modules/core-js/library/fn/object/entries.js2
-rw-r--r--node_modules/core-js/library/fn/object/freeze.js2
-rw-r--r--node_modules/core-js/library/fn/object/get-own-property-descriptor.js4
-rw-r--r--node_modules/core-js/library/fn/object/get-own-property-descriptors.js2
-rw-r--r--node_modules/core-js/library/fn/object/get-own-property-names.js4
-rw-r--r--node_modules/core-js/library/fn/object/get-own-property-symbols.js2
-rw-r--r--node_modules/core-js/library/fn/object/get-prototype-of.js2
-rw-r--r--node_modules/core-js/library/fn/object/index.js25
-rw-r--r--node_modules/core-js/library/fn/object/is-extensible.js2
-rw-r--r--node_modules/core-js/library/fn/object/is-frozen.js2
-rw-r--r--node_modules/core-js/library/fn/object/is-object.js2
-rw-r--r--node_modules/core-js/library/fn/object/is-sealed.js2
-rw-r--r--node_modules/core-js/library/fn/object/is.js2
-rw-r--r--node_modules/core-js/library/fn/object/keys.js2
-rw-r--r--node_modules/core-js/library/fn/object/make.js2
-rw-r--r--node_modules/core-js/library/fn/object/prevent-extensions.js2
-rw-r--r--node_modules/core-js/library/fn/object/seal.js2
-rw-r--r--node_modules/core-js/library/fn/object/set-prototype-of.js2
-rw-r--r--node_modules/core-js/library/fn/object/values.js2
-rw-r--r--node_modules/core-js/library/fn/promise.js2
-rw-r--r--node_modules/core-js/library/fn/reflect/apply.js2
-rw-r--r--node_modules/core-js/library/fn/reflect/construct.js2
-rw-r--r--node_modules/core-js/library/fn/reflect/define-property.js2
-rw-r--r--node_modules/core-js/library/fn/reflect/delete-property.js2
-rw-r--r--node_modules/core-js/library/fn/reflect/enumerate.js2
-rw-r--r--node_modules/core-js/library/fn/reflect/get-own-property-descriptor.js2
-rw-r--r--node_modules/core-js/library/fn/reflect/get-prototype-of.js2
-rw-r--r--node_modules/core-js/library/fn/reflect/get.js2
-rw-r--r--node_modules/core-js/library/fn/reflect/has.js2
-rw-r--r--node_modules/core-js/library/fn/reflect/index.js11
-rw-r--r--node_modules/core-js/library/fn/reflect/is-extensible.js2
-rw-r--r--node_modules/core-js/library/fn/reflect/own-keys.js2
-rw-r--r--node_modules/core-js/library/fn/reflect/prevent-extensions.js2
-rw-r--r--node_modules/core-js/library/fn/reflect/set-prototype-of.js2
-rw-r--r--node_modules/core-js/library/fn/reflect/set.js2
-rw-r--r--node_modules/core-js/library/fn/regexp/escape.js4
-rw-r--r--node_modules/core-js/library/fn/regexp/index.js5
-rw-r--r--node_modules/core-js/library/fn/set-immediate.js2
-rw-r--r--node_modules/core-js/library/fn/set-interval.js2
-rw-r--r--node_modules/core-js/library/fn/set-timeout.js2
-rw-r--r--node_modules/core-js/library/fn/set.js2
-rw-r--r--node_modules/core-js/library/fn/string/at.js2
-rw-r--r--node_modules/core-js/library/fn/string/code-point-at.js2
-rw-r--r--node_modules/core-js/library/fn/string/ends-with.js2
-rw-r--r--node_modules/core-js/library/fn/string/escape-html.js2
-rw-r--r--node_modules/core-js/library/fn/string/from-code-point.js2
-rw-r--r--node_modules/core-js/library/fn/string/includes.js2
-rw-r--r--node_modules/core-js/library/fn/string/index.js20
-rw-r--r--node_modules/core-js/library/fn/string/iterator.js2
-rw-r--r--node_modules/core-js/library/fn/string/pad-left.js2
-rw-r--r--node_modules/core-js/library/fn/string/pad-right.js2
-rw-r--r--node_modules/core-js/library/fn/string/raw.js2
-rw-r--r--node_modules/core-js/library/fn/string/repeat.js2
-rw-r--r--node_modules/core-js/library/fn/string/starts-with.js2
-rw-r--r--node_modules/core-js/library/fn/string/trim-left.js2
-rw-r--r--node_modules/core-js/library/fn/string/trim-right.js2
-rw-r--r--node_modules/core-js/library/fn/string/trim.js2
-rw-r--r--node_modules/core-js/library/fn/string/unescape-html.js2
-rw-r--r--node_modules/core-js/library/fn/symbol/for.js2
-rw-r--r--node_modules/core-js/library/fn/symbol/has-instance.js3
-rw-r--r--node_modules/core-js/library/fn/symbol/index.js4
-rw-r--r--node_modules/core-js/library/fn/symbol/is-concat-spreadable.js2
-rw-r--r--node_modules/core-js/library/fn/symbol/iterator.js2
-rw-r--r--node_modules/core-js/library/fn/symbol/key-for.js2
-rw-r--r--node_modules/core-js/library/fn/symbol/match.js2
-rw-r--r--node_modules/core-js/library/fn/symbol/replace.js2
-rw-r--r--node_modules/core-js/library/fn/symbol/search.js2
-rw-r--r--node_modules/core-js/library/fn/symbol/species.js2
-rw-r--r--node_modules/core-js/library/fn/symbol/split.js2
-rw-r--r--node_modules/core-js/library/fn/symbol/to-primitive.js2
-rw-r--r--node_modules/core-js/library/fn/symbol/to-string-tag.js2
-rw-r--r--node_modules/core-js/library/fn/symbol/unscopables.js2
-rw-r--r--node_modules/core-js/library/fn/weak-map.js2
-rw-r--r--node_modules/core-js/library/fn/weak-set.js2
-rw-r--r--node_modules/core-js/library/index.js4
-rw-r--r--node_modules/core-js/library/js/array.js2
-rw-r--r--node_modules/core-js/library/js/index.js2
-rw-r--r--node_modules/core-js/library/modules/$.a-function.js4
-rw-r--r--node_modules/core-js/library/modules/$.add-to-unscopables.js1
-rw-r--r--node_modules/core-js/library/modules/$.an-object.js5
-rw-r--r--node_modules/core-js/library/modules/$.array-copy-within.js27
-rw-r--r--node_modules/core-js/library/modules/$.array-fill.js16
-rw-r--r--node_modules/core-js/library/modules/$.array-includes.js21
-rw-r--r--node_modules/core-js/library/modules/$.array-methods.js43
-rw-r--r--node_modules/core-js/library/modules/$.array-species-create.js16
-rw-r--r--node_modules/core-js/library/modules/$.buffer.js288
-rw-r--r--node_modules/core-js/library/modules/$.classof.js16
-rw-r--r--node_modules/core-js/library/modules/$.cof.js5
-rw-r--r--node_modules/core-js/library/modules/$.collection-strong.js159
-rw-r--r--node_modules/core-js/library/modules/$.collection-to-json.js11
-rw-r--r--node_modules/core-js/library/modules/$.collection-weak.js86
-rw-r--r--node_modules/core-js/library/modules/$.collection.js55
-rw-r--r--node_modules/core-js/library/modules/$.core.js2
-rw-r--r--node_modules/core-js/library/modules/$.ctx.js20
-rw-r--r--node_modules/core-js/library/modules/$.defined.js5
-rw-r--r--node_modules/core-js/library/modules/$.descriptors.js4
-rw-r--r--node_modules/core-js/library/modules/$.dom-create.js7
-rw-r--r--node_modules/core-js/library/modules/$.enum-keys.js14
-rw-r--r--node_modules/core-js/library/modules/$.export.js46
-rw-r--r--node_modules/core-js/library/modules/$.fails-is-regexp.js12
-rw-r--r--node_modules/core-js/library/modules/$.fails.js7
-rw-r--r--node_modules/core-js/library/modules/$.fix-re-wks.js26
-rw-r--r--node_modules/core-js/library/modules/$.flags.js13
-rw-r--r--node_modules/core-js/library/modules/$.for-of.js19
-rw-r--r--node_modules/core-js/library/modules/$.get-names.js20
-rw-r--r--node_modules/core-js/library/modules/$.global.js4
-rw-r--r--node_modules/core-js/library/modules/$.has.js4
-rw-r--r--node_modules/core-js/library/modules/$.hide.js8
-rw-r--r--node_modules/core-js/library/modules/$.html.js1
-rw-r--r--node_modules/core-js/library/modules/$.invoke.js16
-rw-r--r--node_modules/core-js/library/modules/$.iobject.js5
-rw-r--r--node_modules/core-js/library/modules/$.is-array-iter.js8
-rw-r--r--node_modules/core-js/library/modules/$.is-array.js5
-rw-r--r--node_modules/core-js/library/modules/$.is-integer.js6
-rw-r--r--node_modules/core-js/library/modules/$.is-object.js3
-rw-r--r--node_modules/core-js/library/modules/$.is-regexp.js8
-rw-r--r--node_modules/core-js/library/modules/$.iter-call.js12
-rw-r--r--node_modules/core-js/library/modules/$.iter-create.js13
-rw-r--r--node_modules/core-js/library/modules/$.iter-define.js66
-rw-r--r--node_modules/core-js/library/modules/$.iter-detect.js21
-rw-r--r--node_modules/core-js/library/modules/$.iter-step.js3
-rw-r--r--node_modules/core-js/library/modules/$.iterators.js1
-rw-r--r--node_modules/core-js/library/modules/$.js13
-rw-r--r--node_modules/core-js/library/modules/$.keyof.js10
-rw-r--r--node_modules/core-js/library/modules/$.library.js1
-rw-r--r--node_modules/core-js/library/modules/$.math-expm1.js4
-rw-r--r--node_modules/core-js/library/modules/$.math-log1p.js4
-rw-r--r--node_modules/core-js/library/modules/$.math-sign.js4
-rw-r--r--node_modules/core-js/library/modules/$.microtask.js64
-rw-r--r--node_modules/core-js/library/modules/$.object-assign.js33
-rw-r--r--node_modules/core-js/library/modules/$.object-define.js11
-rw-r--r--node_modules/core-js/library/modules/$.object-sap.js10
-rw-r--r--node_modules/core-js/library/modules/$.object-to-array.js16
-rw-r--r--node_modules/core-js/library/modules/$.own-keys.js9
-rw-r--r--node_modules/core-js/library/modules/$.partial.js24
-rw-r--r--node_modules/core-js/library/modules/$.path.js1
-rw-r--r--node_modules/core-js/library/modules/$.property-desc.js8
-rw-r--r--node_modules/core-js/library/modules/$.redefine-all.js5
-rw-r--r--node_modules/core-js/library/modules/$.redefine.js1
-rw-r--r--node_modules/core-js/library/modules/$.replacer.js8
-rw-r--r--node_modules/core-js/library/modules/$.same-value.js4
-rw-r--r--node_modules/core-js/library/modules/$.set-proto.js26
-rw-r--r--node_modules/core-js/library/modules/$.set-species.js13
-rw-r--r--node_modules/core-js/library/modules/$.set-to-string-tag.js7
-rw-r--r--node_modules/core-js/library/modules/$.shared.js6
-rw-r--r--node_modules/core-js/library/modules/$.species-constructor.js8
-rw-r--r--node_modules/core-js/library/modules/$.strict-new.js4
-rw-r--r--node_modules/core-js/library/modules/$.string-at.js17
-rw-r--r--node_modules/core-js/library/modules/$.string-context.js8
-rw-r--r--node_modules/core-js/library/modules/$.string-pad.js17
-rw-r--r--node_modules/core-js/library/modules/$.string-repeat.js12
-rw-r--r--node_modules/core-js/library/modules/$.string-trim.js29
-rw-r--r--node_modules/core-js/library/modules/$.task.js75
-rw-r--r--node_modules/core-js/library/modules/$.to-index.js7
-rw-r--r--node_modules/core-js/library/modules/$.to-integer.js6
-rw-r--r--node_modules/core-js/library/modules/$.to-iobject.js6
-rw-r--r--node_modules/core-js/library/modules/$.to-length.js6
-rw-r--r--node_modules/core-js/library/modules/$.to-object.js5
-rw-r--r--node_modules/core-js/library/modules/$.to-primitive.js12
-rw-r--r--node_modules/core-js/library/modules/$.typed-array.js365
-rw-r--r--node_modules/core-js/library/modules/$.typed.js36
-rw-r--r--node_modules/core-js/library/modules/$.uid.js5
-rw-r--r--node_modules/core-js/library/modules/$.wks.js7
-rw-r--r--node_modules/core-js/library/modules/core.delay.js8
-rw-r--r--node_modules/core-js/library/modules/core.dict.js40
-rw-r--r--node_modules/core-js/library/modules/core.function.part.js8
-rw-r--r--node_modules/core-js/library/modules/core.get-iterator-method.js8
-rw-r--r--node_modules/core-js/library/modules/core.get-iterator.js4
-rw-r--r--node_modules/core-js/library/modules/core.is-iterable.js8
-rw-r--r--node_modules/core-js/library/modules/core.log.js26
-rw-r--r--node_modules/core-js/library/modules/core.number.iterator.js2
-rw-r--r--node_modules/core-js/library/modules/core.object.classof.js4
-rw-r--r--node_modules/core-js/library/modules/core.object.define.js4
-rw-r--r--node_modules/core-js/library/modules/core.object.is-object.js4
-rw-r--r--node_modules/core-js/library/modules/core.object.make.js6
-rw-r--r--node_modules/core-js/library/modules/core.string.escape-html.js4
-rw-r--r--node_modules/core-js/library/modules/core.string.unescape-html.js4
-rw-r--r--node_modules/core-js/library/modules/es5.js311
-rw-r--r--node_modules/core-js/library/modules/es6.array.copy-within.js6
-rw-r--r--node_modules/core-js/library/modules/es6.array.fill.js6
-rw-r--r--node_modules/core-js/library/modules/es6.array.find-index.js6
-rw-r--r--node_modules/core-js/library/modules/es6.array.find.js6
-rw-r--r--node_modules/core-js/library/modules/es6.array.from.js29
-rw-r--r--node_modules/core-js/library/modules/es6.array.iterator.js10
-rw-r--r--node_modules/core-js/library/modules/es6.array.of.js14
-rw-r--r--node_modules/core-js/library/modules/es6.array.species.js2
-rw-r--r--node_modules/core-js/library/modules/es6.function.has-instance.js12
-rw-r--r--node_modules/core-js/library/modules/es6.map.js4
-rw-r--r--node_modules/core-js/library/modules/es6.math.acosh.js12
-rw-r--r--node_modules/core-js/library/modules/es6.math.asinh.js6
-rw-r--r--node_modules/core-js/library/modules/es6.math.atanh.js6
-rw-r--r--node_modules/core-js/library/modules/es6.math.cbrt.js4
-rw-r--r--node_modules/core-js/library/modules/es6.math.clz32.js2
-rw-r--r--node_modules/core-js/library/modules/es6.math.cosh.js2
-rw-r--r--node_modules/core-js/library/modules/es6.math.expm1.js5
-rw-r--r--node_modules/core-js/library/modules/es6.math.fround.js4
-rw-r--r--node_modules/core-js/library/modules/es6.math.hypot.js15
-rw-r--r--node_modules/core-js/library/modules/es6.math.imul.js4
-rw-r--r--node_modules/core-js/library/modules/es6.math.log10.js2
-rw-r--r--node_modules/core-js/library/modules/es6.math.log1p.js4
-rw-r--r--node_modules/core-js/library/modules/es6.math.log2.js2
-rw-r--r--node_modules/core-js/library/modules/es6.math.sign.js4
-rw-r--r--node_modules/core-js/library/modules/es6.math.sinh.js6
-rw-r--r--node_modules/core-js/library/modules/es6.math.tanh.js4
-rw-r--r--node_modules/core-js/library/modules/es6.math.trunc.js2
-rw-r--r--node_modules/core-js/library/modules/es6.number.epsilon.js2
-rw-r--r--node_modules/core-js/library/modules/es6.number.is-finite.js4
-rw-r--r--node_modules/core-js/library/modules/es6.number.is-integer.js4
-rw-r--r--node_modules/core-js/library/modules/es6.number.is-nan.js2
-rw-r--r--node_modules/core-js/library/modules/es6.number.is-safe-integer.js4
-rw-r--r--node_modules/core-js/library/modules/es6.number.max-safe-integer.js2
-rw-r--r--node_modules/core-js/library/modules/es6.number.min-safe-integer.js2
-rw-r--r--node_modules/core-js/library/modules/es6.number.parse-float.js6
-rw-r--r--node_modules/core-js/library/modules/es6.number.parse-int.js6
-rw-r--r--node_modules/core-js/library/modules/es6.object.assign.js4
-rw-r--r--node_modules/core-js/library/modules/es6.object.freeze.js7
-rw-r--r--node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js5
-rw-r--r--node_modules/core-js/library/modules/es6.object.get-own-property-names.js4
-rw-r--r--node_modules/core-js/library/modules/es6.object.get-prototype-of.js5
-rw-r--r--node_modules/core-js/library/modules/es6.object.is-extensible.js4
-rw-r--r--node_modules/core-js/library/modules/es6.object.is-frozen.js4
-rw-r--r--node_modules/core-js/library/modules/es6.object.is-sealed.js4
-rw-r--r--node_modules/core-js/library/modules/es6.object.is.js4
-rw-r--r--node_modules/core-js/library/modules/es6.object.keys.js5
-rw-r--r--node_modules/core-js/library/modules/es6.object.prevent-extensions.js7
-rw-r--r--node_modules/core-js/library/modules/es6.object.seal.js7
-rw-r--r--node_modules/core-js/library/modules/es6.object.set-prototype-of.js4
-rw-r--r--node_modules/core-js/library/modules/es6.promise.js312
-rw-r--r--node_modules/core-js/library/modules/es6.reflect.apply.js18
-rw-r--r--node_modules/core-js/library/modules/es6.reflect.construct.js30
-rw-r--r--node_modules/core-js/library/modules/es6.reflect.define-property.js15
-rw-r--r--node_modules/core-js/library/modules/es6.reflect.delete-property.js8
-rw-r--r--node_modules/core-js/library/modules/es6.reflect.enumerate.js6
-rw-r--r--node_modules/core-js/library/modules/es6.reflect.get-own-property-descriptor.js8
-rw-r--r--node_modules/core-js/library/modules/es6.reflect.get-prototype-of.js6
-rw-r--r--node_modules/core-js/library/modules/es6.reflect.get.js15
-rw-r--r--node_modules/core-js/library/modules/es6.reflect.has.js2
-rw-r--r--node_modules/core-js/library/modules/es6.reflect.is-extensible.js4
-rw-r--r--node_modules/core-js/library/modules/es6.reflect.own-keys.js4
-rw-r--r--node_modules/core-js/library/modules/es6.reflect.prevent-extensions.js4
-rw-r--r--node_modules/core-js/library/modules/es6.reflect.set-prototype-of.js4
-rw-r--r--node_modules/core-js/library/modules/es6.reflect.set.js22
-rw-r--r--node_modules/core-js/library/modules/es6.regexp.constructor.js2
-rw-r--r--node_modules/core-js/library/modules/es6.set.js4
-rw-r--r--node_modules/core-js/library/modules/es6.string.code-point-at.js4
-rw-r--r--node_modules/core-js/library/modules/es6.string.ends-with.js11
-rw-r--r--node_modules/core-js/library/modules/es6.string.from-code-point.js15
-rw-r--r--node_modules/core-js/library/modules/es6.string.includes.js6
-rw-r--r--node_modules/core-js/library/modules/es6.string.iterator.js4
-rw-r--r--node_modules/core-js/library/modules/es6.string.raw.js19
-rw-r--r--node_modules/core-js/library/modules/es6.string.repeat.js4
-rw-r--r--node_modules/core-js/library/modules/es6.string.starts-with.js11
-rw-r--r--node_modules/core-js/library/modules/es6.string.trim.js2
-rw-r--r--node_modules/core-js/library/modules/es6.symbol.js250
-rw-r--r--node_modules/core-js/library/modules/es6.typed.array-buffer.js81
-rw-r--r--node_modules/core-js/library/modules/es6.typed.data-view.js8
-rw-r--r--node_modules/core-js/library/modules/es6.typed.float32-array.js2
-rw-r--r--node_modules/core-js/library/modules/es6.typed.float64-array.js2
-rw-r--r--node_modules/core-js/library/modules/es6.typed.int16-array.js2
-rw-r--r--node_modules/core-js/library/modules/es6.typed.int32-array.js2
-rw-r--r--node_modules/core-js/library/modules/es6.typed.int8-array.js2
-rw-r--r--node_modules/core-js/library/modules/es6.typed.uint16-array.js2
-rw-r--r--node_modules/core-js/library/modules/es6.typed.uint32-array.js2
-rw-r--r--node_modules/core-js/library/modules/es6.typed.uint8-array.js2
-rw-r--r--node_modules/core-js/library/modules/es6.typed.uint8-clamped-array.js2
-rw-r--r--node_modules/core-js/library/modules/es6.weak-map.js51
-rw-r--r--node_modules/core-js/library/modules/es6.weak-set.js4
-rw-r--r--node_modules/core-js/library/modules/es7.array.includes.js8
-rw-r--r--node_modules/core-js/library/modules/es7.map.to-json.js4
-rw-r--r--node_modules/core-js/library/modules/es7.object.entries.js6
-rw-r--r--node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js24
-rw-r--r--node_modules/core-js/library/modules/es7.object.values.js6
-rw-r--r--node_modules/core-js/library/modules/es7.regexp.escape.js5
-rw-r--r--node_modules/core-js/library/modules/es7.set.to-json.js4
-rw-r--r--node_modules/core-js/library/modules/es7.string.at.js4
-rw-r--r--node_modules/core-js/library/modules/es7.string.pad-left.js9
-rw-r--r--node_modules/core-js/library/modules/es7.string.pad-right.js9
-rw-r--r--node_modules/core-js/library/modules/es7.string.trim-left.js4
-rw-r--r--node_modules/core-js/library/modules/es7.string.trim-right.js4
-rw-r--r--node_modules/core-js/library/modules/js.array.statics.js17
-rw-r--r--node_modules/core-js/library/modules/web.dom.iterable.js14
-rw-r--r--node_modules/core-js/library/modules/web.immediate.js4
-rw-r--r--node_modules/core-js/library/modules/web.timers.js8
-rw-r--r--node_modules/core-js/library/shim.js104
-rw-r--r--node_modules/core-js/library/web/dom.js2
-rw-r--r--node_modules/core-js/library/web/immediate.js2
-rw-r--r--node_modules/core-js/library/web/index.js2
-rw-r--r--node_modules/core-js/library/web/timers.js2
-rw-r--r--node_modules/core-js/modules/$.a-function.js4
-rw-r--r--node_modules/core-js/modules/$.add-to-unscopables.js7
-rw-r--r--node_modules/core-js/modules/$.an-object.js5
-rw-r--r--node_modules/core-js/modules/$.array-copy-within.js27
-rw-r--r--node_modules/core-js/modules/$.array-fill.js16
-rw-r--r--node_modules/core-js/modules/$.array-includes.js21
-rw-r--r--node_modules/core-js/modules/$.array-methods.js43
-rw-r--r--node_modules/core-js/modules/$.array-species-create.js16
-rw-r--r--node_modules/core-js/modules/$.buffer.js288
-rw-r--r--node_modules/core-js/modules/$.classof.js16
-rw-r--r--node_modules/core-js/modules/$.cof.js5
-rw-r--r--node_modules/core-js/modules/$.collection-strong.js159
-rw-r--r--node_modules/core-js/modules/$.collection-to-json.js11
-rw-r--r--node_modules/core-js/modules/$.collection-weak.js86
-rw-r--r--node_modules/core-js/modules/$.collection.js79
-rw-r--r--node_modules/core-js/modules/$.core.js2
-rw-r--r--node_modules/core-js/modules/$.ctx.js20
-rw-r--r--node_modules/core-js/modules/$.defined.js5
-rw-r--r--node_modules/core-js/modules/$.descriptors.js4
-rw-r--r--node_modules/core-js/modules/$.dom-create.js7
-rw-r--r--node_modules/core-js/modules/$.enum-keys.js14
-rw-r--r--node_modules/core-js/modules/$.export.js41
-rw-r--r--node_modules/core-js/modules/$.fails-is-regexp.js12
-rw-r--r--node_modules/core-js/modules/$.fails.js7
-rw-r--r--node_modules/core-js/modules/$.fix-re-wks.js26
-rw-r--r--node_modules/core-js/modules/$.flags.js13
-rw-r--r--node_modules/core-js/modules/$.for-of.js19
-rw-r--r--node_modules/core-js/modules/$.get-names.js20
-rw-r--r--node_modules/core-js/modules/$.global.js4
-rw-r--r--node_modules/core-js/modules/$.has.js4
-rw-r--r--node_modules/core-js/modules/$.hide.js8
-rw-r--r--node_modules/core-js/modules/$.html.js1
-rw-r--r--node_modules/core-js/modules/$.invoke.js16
-rw-r--r--node_modules/core-js/modules/$.iobject.js5
-rw-r--r--node_modules/core-js/modules/$.is-array-iter.js8
-rw-r--r--node_modules/core-js/modules/$.is-array.js5
-rw-r--r--node_modules/core-js/modules/$.is-integer.js6
-rw-r--r--node_modules/core-js/modules/$.is-object.js3
-rw-r--r--node_modules/core-js/modules/$.is-regexp.js8
-rw-r--r--node_modules/core-js/modules/$.iter-call.js12
-rw-r--r--node_modules/core-js/modules/$.iter-create.js13
-rw-r--r--node_modules/core-js/modules/$.iter-define.js66
-rw-r--r--node_modules/core-js/modules/$.iter-detect.js21
-rw-r--r--node_modules/core-js/modules/$.iter-step.js3
-rw-r--r--node_modules/core-js/modules/$.iterators.js1
-rw-r--r--node_modules/core-js/modules/$.js13
-rw-r--r--node_modules/core-js/modules/$.keyof.js10
-rw-r--r--node_modules/core-js/modules/$.library.js1
-rw-r--r--node_modules/core-js/modules/$.math-expm1.js4
-rw-r--r--node_modules/core-js/modules/$.math-log1p.js4
-rw-r--r--node_modules/core-js/modules/$.math-sign.js4
-rw-r--r--node_modules/core-js/modules/$.microtask.js64
-rw-r--r--node_modules/core-js/modules/$.object-assign.js33
-rw-r--r--node_modules/core-js/modules/$.object-define.js11
-rw-r--r--node_modules/core-js/modules/$.object-sap.js10
-rw-r--r--node_modules/core-js/modules/$.object-to-array.js16
-rw-r--r--node_modules/core-js/modules/$.own-keys.js9
-rw-r--r--node_modules/core-js/modules/$.partial.js24
-rw-r--r--node_modules/core-js/modules/$.path.js1
-rw-r--r--node_modules/core-js/modules/$.property-desc.js8
-rw-r--r--node_modules/core-js/modules/$.redefine-all.js5
-rw-r--r--node_modules/core-js/modules/$.redefine.js27
-rw-r--r--node_modules/core-js/modules/$.replacer.js8
-rw-r--r--node_modules/core-js/modules/$.same-value.js4
-rw-r--r--node_modules/core-js/modules/$.set-proto.js26
-rw-r--r--node_modules/core-js/modules/$.set-species.js13
-rw-r--r--node_modules/core-js/modules/$.set-to-string-tag.js7
-rw-r--r--node_modules/core-js/modules/$.shared.js6
-rw-r--r--node_modules/core-js/modules/$.species-constructor.js8
-rw-r--r--node_modules/core-js/modules/$.strict-new.js4
-rw-r--r--node_modules/core-js/modules/$.string-at.js17
-rw-r--r--node_modules/core-js/modules/$.string-context.js8
-rw-r--r--node_modules/core-js/modules/$.string-pad.js17
-rw-r--r--node_modules/core-js/modules/$.string-repeat.js12
-rw-r--r--node_modules/core-js/modules/$.string-trim.js29
-rw-r--r--node_modules/core-js/modules/$.task.js75
-rw-r--r--node_modules/core-js/modules/$.to-index.js7
-rw-r--r--node_modules/core-js/modules/$.to-integer.js6
-rw-r--r--node_modules/core-js/modules/$.to-iobject.js6
-rw-r--r--node_modules/core-js/modules/$.to-length.js6
-rw-r--r--node_modules/core-js/modules/$.to-object.js5
-rw-r--r--node_modules/core-js/modules/$.to-primitive.js12
-rw-r--r--node_modules/core-js/modules/$.typed-array.js365
-rw-r--r--node_modules/core-js/modules/$.typed.js36
-rw-r--r--node_modules/core-js/modules/$.uid.js5
-rw-r--r--node_modules/core-js/modules/$.wks.js7
-rw-r--r--node_modules/core-js/modules/core.delay.js8
-rw-r--r--node_modules/core-js/modules/core.dict.js40
-rw-r--r--node_modules/core-js/modules/core.function.part.js8
-rw-r--r--node_modules/core-js/modules/core.get-iterator-method.js8
-rw-r--r--node_modules/core-js/modules/core.get-iterator.js4
-rw-r--r--node_modules/core-js/modules/core.is-iterable.js8
-rw-r--r--node_modules/core-js/modules/core.log.js26
-rw-r--r--node_modules/core-js/modules/core.number.iterator.js2
-rw-r--r--node_modules/core-js/modules/core.object.classof.js4
-rw-r--r--node_modules/core-js/modules/core.object.define.js4
-rw-r--r--node_modules/core-js/modules/core.object.is-object.js4
-rw-r--r--node_modules/core-js/modules/core.object.make.js6
-rw-r--r--node_modules/core-js/modules/core.string.escape-html.js4
-rw-r--r--node_modules/core-js/modules/core.string.unescape-html.js4
-rw-r--r--node_modules/core-js/modules/es5.js311
-rw-r--r--node_modules/core-js/modules/es6.array.copy-within.js6
-rw-r--r--node_modules/core-js/modules/es6.array.fill.js6
-rw-r--r--node_modules/core-js/modules/es6.array.find-index.js6
-rw-r--r--node_modules/core-js/modules/es6.array.find.js6
-rw-r--r--node_modules/core-js/modules/es6.array.from.js29
-rw-r--r--node_modules/core-js/modules/es6.array.iterator.js10
-rw-r--r--node_modules/core-js/modules/es6.array.of.js14
-rw-r--r--node_modules/core-js/modules/es6.array.species.js2
-rw-r--r--node_modules/core-js/modules/es6.date.to-string.js7
-rw-r--r--node_modules/core-js/modules/es6.function.has-instance.js12
-rw-r--r--node_modules/core-js/modules/es6.function.name.js25
-rw-r--r--node_modules/core-js/modules/es6.map.js4
-rw-r--r--node_modules/core-js/modules/es6.math.acosh.js12
-rw-r--r--node_modules/core-js/modules/es6.math.asinh.js6
-rw-r--r--node_modules/core-js/modules/es6.math.atanh.js6
-rw-r--r--node_modules/core-js/modules/es6.math.cbrt.js4
-rw-r--r--node_modules/core-js/modules/es6.math.clz32.js2
-rw-r--r--node_modules/core-js/modules/es6.math.cosh.js2
-rw-r--r--node_modules/core-js/modules/es6.math.expm1.js5
-rw-r--r--node_modules/core-js/modules/es6.math.fround.js4
-rw-r--r--node_modules/core-js/modules/es6.math.hypot.js15
-rw-r--r--node_modules/core-js/modules/es6.math.imul.js4
-rw-r--r--node_modules/core-js/modules/es6.math.log10.js2
-rw-r--r--node_modules/core-js/modules/es6.math.log1p.js4
-rw-r--r--node_modules/core-js/modules/es6.math.log2.js2
-rw-r--r--node_modules/core-js/modules/es6.math.sign.js4
-rw-r--r--node_modules/core-js/modules/es6.math.sinh.js6
-rw-r--r--node_modules/core-js/modules/es6.math.tanh.js4
-rw-r--r--node_modules/core-js/modules/es6.math.trunc.js2
-rw-r--r--node_modules/core-js/modules/es6.number.constructor.js43
-rw-r--r--node_modules/core-js/modules/es6.number.epsilon.js2
-rw-r--r--node_modules/core-js/modules/es6.number.is-finite.js4
-rw-r--r--node_modules/core-js/modules/es6.number.is-integer.js4
-rw-r--r--node_modules/core-js/modules/es6.number.is-nan.js2
-rw-r--r--node_modules/core-js/modules/es6.number.is-safe-integer.js4
-rw-r--r--node_modules/core-js/modules/es6.number.max-safe-integer.js2
-rw-r--r--node_modules/core-js/modules/es6.number.min-safe-integer.js2
-rw-r--r--node_modules/core-js/modules/es6.number.parse-float.js6
-rw-r--r--node_modules/core-js/modules/es6.number.parse-int.js6
-rw-r--r--node_modules/core-js/modules/es6.object.assign.js4
-rw-r--r--node_modules/core-js/modules/es6.object.freeze.js7
-rw-r--r--node_modules/core-js/modules/es6.object.get-own-property-descriptor.js5
-rw-r--r--node_modules/core-js/modules/es6.object.get-own-property-names.js4
-rw-r--r--node_modules/core-js/modules/es6.object.get-prototype-of.js5
-rw-r--r--node_modules/core-js/modules/es6.object.is-extensible.js4
-rw-r--r--node_modules/core-js/modules/es6.object.is-frozen.js4
-rw-r--r--node_modules/core-js/modules/es6.object.is-sealed.js4
-rw-r--r--node_modules/core-js/modules/es6.object.is.js4
-rw-r--r--node_modules/core-js/modules/es6.object.keys.js5
-rw-r--r--node_modules/core-js/modules/es6.object.prevent-extensions.js7
-rw-r--r--node_modules/core-js/modules/es6.object.seal.js7
-rw-r--r--node_modules/core-js/modules/es6.object.set-prototype-of.js4
-rw-r--r--node_modules/core-js/modules/es6.object.to-string.js6
-rw-r--r--node_modules/core-js/modules/es6.promise.js312
-rw-r--r--node_modules/core-js/modules/es6.reflect.apply.js18
-rw-r--r--node_modules/core-js/modules/es6.reflect.construct.js30
-rw-r--r--node_modules/core-js/modules/es6.reflect.define-property.js15
-rw-r--r--node_modules/core-js/modules/es6.reflect.delete-property.js8
-rw-r--r--node_modules/core-js/modules/es6.reflect.enumerate.js6
-rw-r--r--node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js8
-rw-r--r--node_modules/core-js/modules/es6.reflect.get-prototype-of.js6
-rw-r--r--node_modules/core-js/modules/es6.reflect.get.js15
-rw-r--r--node_modules/core-js/modules/es6.reflect.has.js2
-rw-r--r--node_modules/core-js/modules/es6.reflect.is-extensible.js4
-rw-r--r--node_modules/core-js/modules/es6.reflect.own-keys.js4
-rw-r--r--node_modules/core-js/modules/es6.reflect.prevent-extensions.js4
-rw-r--r--node_modules/core-js/modules/es6.reflect.set-prototype-of.js4
-rw-r--r--node_modules/core-js/modules/es6.reflect.set.js22
-rw-r--r--node_modules/core-js/modules/es6.regexp.constructor.js47
-rw-r--r--node_modules/core-js/modules/es6.regexp.flags.js5
-rw-r--r--node_modules/core-js/modules/es6.regexp.match.js6
-rw-r--r--node_modules/core-js/modules/es6.regexp.replace.js6
-rw-r--r--node_modules/core-js/modules/es6.regexp.search.js6
-rw-r--r--node_modules/core-js/modules/es6.regexp.split.js72
-rw-r--r--node_modules/core-js/modules/es6.set.js4
-rw-r--r--node_modules/core-js/modules/es6.string.code-point-at.js4
-rw-r--r--node_modules/core-js/modules/es6.string.ends-with.js11
-rw-r--r--node_modules/core-js/modules/es6.string.from-code-point.js15
-rw-r--r--node_modules/core-js/modules/es6.string.includes.js6
-rw-r--r--node_modules/core-js/modules/es6.string.iterator.js4
-rw-r--r--node_modules/core-js/modules/es6.string.raw.js19
-rw-r--r--node_modules/core-js/modules/es6.string.repeat.js4
-rw-r--r--node_modules/core-js/modules/es6.string.starts-with.js11
-rw-r--r--node_modules/core-js/modules/es6.string.trim.js2
-rw-r--r--node_modules/core-js/modules/es6.symbol.js250
-rw-r--r--node_modules/core-js/modules/es6.typed.array-buffer.js81
-rw-r--r--node_modules/core-js/modules/es6.typed.data-view.js8
-rw-r--r--node_modules/core-js/modules/es6.typed.float32-array.js2
-rw-r--r--node_modules/core-js/modules/es6.typed.float64-array.js2
-rw-r--r--node_modules/core-js/modules/es6.typed.int16-array.js2
-rw-r--r--node_modules/core-js/modules/es6.typed.int32-array.js2
-rw-r--r--node_modules/core-js/modules/es6.typed.int8-array.js2
-rw-r--r--node_modules/core-js/modules/es6.typed.uint16-array.js2
-rw-r--r--node_modules/core-js/modules/es6.typed.uint32-array.js2
-rw-r--r--node_modules/core-js/modules/es6.typed.uint8-array.js2
-rw-r--r--node_modules/core-js/modules/es6.typed.uint8-clamped-array.js2
-rw-r--r--node_modules/core-js/modules/es6.weak-map.js51
-rw-r--r--node_modules/core-js/modules/es6.weak-set.js4
-rw-r--r--node_modules/core-js/modules/es7.array.includes.js8
-rw-r--r--node_modules/core-js/modules/es7.map.to-json.js4
-rw-r--r--node_modules/core-js/modules/es7.object.entries.js6
-rw-r--r--node_modules/core-js/modules/es7.object.get-own-property-descriptors.js24
-rw-r--r--node_modules/core-js/modules/es7.object.values.js6
-rw-r--r--node_modules/core-js/modules/es7.regexp.escape.js5
-rw-r--r--node_modules/core-js/modules/es7.set.to-json.js4
-rw-r--r--node_modules/core-js/modules/es7.string.at.js4
-rw-r--r--node_modules/core-js/modules/es7.string.pad-left.js9
-rw-r--r--node_modules/core-js/modules/es7.string.pad-right.js9
-rw-r--r--node_modules/core-js/modules/es7.string.trim-left.js4
-rw-r--r--node_modules/core-js/modules/es7.string.trim-right.js4
-rw-r--r--node_modules/core-js/modules/js.array.statics.js17
-rw-r--r--node_modules/core-js/modules/library/$.add-to-unscopables.js1
-rw-r--r--node_modules/core-js/modules/library/$.collection.js55
-rw-r--r--node_modules/core-js/modules/library/$.export.js46
-rw-r--r--node_modules/core-js/modules/library/$.library.js1
-rw-r--r--node_modules/core-js/modules/library/$.path.js1
-rw-r--r--node_modules/core-js/modules/library/$.redefine.js1
-rw-r--r--node_modules/core-js/modules/library/$.set-species.js13
-rw-r--r--node_modules/core-js/modules/library/es6.regexp.constructor.js2
-rw-r--r--node_modules/core-js/modules/library/web.dom.iterable.js14
-rw-r--r--node_modules/core-js/modules/web.dom.iterable.js34
-rw-r--r--node_modules/core-js/modules/web.immediate.js4
-rw-r--r--node_modules/core-js/modules/web.timers.js8
-rw-r--r--node_modules/core-js/package.json56
-rw-r--r--node_modules/core-js/shim.js104
-rw-r--r--node_modules/core-js/web/dom.js2
-rw-r--r--node_modules/core-js/web/immediate.js2
-rw-r--r--node_modules/core-js/web/index.js2
-rw-r--r--node_modules/core-js/web/timers.js2
-rw-r--r--node_modules/deep-is/.npmignore1
-rw-r--r--node_modules/deep-is/.travis.yml6
-rw-r--r--node_modules/deep-is/LICENSE22
-rw-r--r--node_modules/deep-is/README.markdown70
-rw-r--r--node_modules/deep-is/example/cmp.js11
-rw-r--r--node_modules/deep-is/index.js102
-rw-r--r--node_modules/deep-is/package.json61
-rw-r--r--node_modules/deep-is/test/NaN.js16
-rw-r--r--node_modules/deep-is/test/cmp.js23
-rw-r--r--node_modules/deep-is/test/neg-vs-pos-0.js15
-rw-r--r--node_modules/del/index.js73
-rw-r--r--node_modules/del/license21
l---------node_modules/del/node_modules/.bin/rimraf1
-rw-r--r--node_modules/del/package.json61
-rw-r--r--node_modules/del/readme.md106
-rw-r--r--node_modules/depd/History.md84
-rw-r--r--node_modules/depd/LICENSE22
-rw-r--r--node_modules/depd/Readme.md281
-rw-r--r--node_modules/depd/index.js521
-rw-r--r--node_modules/depd/lib/browser/index.js79
-rw-r--r--node_modules/depd/lib/compat/buffer-concat.js35
-rw-r--r--node_modules/depd/lib/compat/callsite-tostring.js103
-rw-r--r--node_modules/depd/lib/compat/event-listener-count.js22
-rw-r--r--node_modules/depd/lib/compat/index.js84
-rw-r--r--node_modules/depd/package.json35
-rw-r--r--node_modules/destroy/LICENSE22
-rw-r--r--node_modules/destroy/README.md60
-rw-r--r--node_modules/destroy/index.js75
-rw-r--r--node_modules/destroy/package.json37
-rw-r--r--node_modules/diff/README.md131
-rw-r--r--node_modules/diff/diff.js619
-rw-r--r--node_modules/diff/package.json63
-rw-r--r--node_modules/ee-first/LICENSE22
-rw-r--r--node_modules/ee-first/README.md80
-rw-r--r--node_modules/ee-first/index.js95
-rw-r--r--node_modules/ee-first/package.json29
-rw-r--r--node_modules/encodeurl/HISTORY.md9
-rw-r--r--node_modules/encodeurl/LICENSE22
-rw-r--r--node_modules/encodeurl/README.md124
-rw-r--r--node_modules/encodeurl/index.js60
-rw-r--r--node_modules/encodeurl/package.json38
-rw-r--r--node_modules/escape-html/LICENSE24
-rw-r--r--node_modules/escape-html/Readme.md43
-rw-r--r--node_modules/escape-html/index.js78
-rw-r--r--node_modules/escape-html/package.json24
-rw-r--r--node_modules/escape-string-regexp/index.js2
-rw-r--r--node_modules/escape-string-regexp/package.json15
-rw-r--r--node_modules/escape-string-regexp/readme.md8
-rw-r--r--node_modules/escodegen/LICENSE.BSD19
-rw-r--r--node_modules/escodegen/LICENSE.source-map27
-rw-r--r--node_modules/escodegen/README.md116
-rwxr-xr-xnode_modules/escodegen/bin/escodegen.js77
-rwxr-xr-xnode_modules/escodegen/bin/esgenerate.js64
-rw-r--r--node_modules/escodegen/escodegen.js2607
l---------node_modules/escodegen/node_modules/.bin/esparse1
l---------node_modules/escodegen/node_modules/.bin/esvalidate1
-rw-r--r--node_modules/escodegen/node_modules/source-map/.npmignore2
-rw-r--r--node_modules/escodegen/node_modules/source-map/.travis.yml4
-rw-r--r--node_modules/escodegen/node_modules/source-map/CHANGELOG.md201
-rw-r--r--node_modules/escodegen/node_modules/source-map/LICENSE28
-rw-r--r--node_modules/escodegen/node_modules/source-map/Makefile.dryice.js166
-rw-r--r--node_modules/escodegen/node_modules/source-map/README.md479
-rw-r--r--node_modules/escodegen/node_modules/source-map/build/assert-shim.js56
-rw-r--r--node_modules/escodegen/node_modules/source-map/build/mini-require.js152
-rw-r--r--node_modules/escodegen/node_modules/source-map/build/prefix-source-map.jsm20
-rw-r--r--node_modules/escodegen/node_modules/source-map/build/prefix-utils.jsm18
-rw-r--r--node_modules/escodegen/node_modules/source-map/build/suffix-browser.js8
-rw-r--r--node_modules/escodegen/node_modules/source-map/build/suffix-source-map.jsm6
-rw-r--r--node_modules/escodegen/node_modules/source-map/build/suffix-utils.jsm21
-rw-r--r--node_modules/escodegen/node_modules/source-map/build/test-prefix.js8
-rw-r--r--node_modules/escodegen/node_modules/source-map/build/test-suffix.js3
-rw-r--r--node_modules/escodegen/node_modules/source-map/lib/source-map.js8
-rw-r--r--node_modules/escodegen/node_modules/source-map/lib/source-map/array-set.js97
-rw-r--r--node_modules/escodegen/node_modules/source-map/lib/source-map/base64-vlq.js142
-rw-r--r--node_modules/escodegen/node_modules/source-map/lib/source-map/base64.js42
-rw-r--r--node_modules/escodegen/node_modules/source-map/lib/source-map/basic-source-map-consumer.js420
-rw-r--r--node_modules/escodegen/node_modules/source-map/lib/source-map/binary-search.js80
-rw-r--r--node_modules/escodegen/node_modules/source-map/lib/source-map/indexed-source-map-consumer.js303
-rw-r--r--node_modules/escodegen/node_modules/source-map/lib/source-map/mapping-list.js86
-rw-r--r--node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-consumer.js222
-rw-r--r--node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-generator.js400
-rw-r--r--node_modules/escodegen/node_modules/source-map/lib/source-map/source-node.js414
-rw-r--r--node_modules/escodegen/node_modules/source-map/lib/source-map/util.js319
-rw-r--r--node_modules/escodegen/node_modules/source-map/package.json66
-rwxr-xr-xnode_modules/escodegen/node_modules/source-map/test/run-tests.js62
-rw-r--r--node_modules/escodegen/node_modules/source-map/test/source-map/test-api.js26
-rw-r--r--node_modules/escodegen/node_modules/source-map/test/source-map/test-array-set.js104
-rw-r--r--node_modules/escodegen/node_modules/source-map/test/source-map/test-base64-vlq.js23
-rw-r--r--node_modules/escodegen/node_modules/source-map/test/source-map/test-base64.js35
-rw-r--r--node_modules/escodegen/node_modules/source-map/test/source-map/test-binary-search.js54
-rw-r--r--node_modules/escodegen/node_modules/source-map/test/source-map/test-dog-fooding.js84
-rw-r--r--node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-consumer.js874
-rw-r--r--node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-generator.js679
-rw-r--r--node_modules/escodegen/node_modules/source-map/test/source-map/test-source-node.js612
-rw-r--r--node_modules/escodegen/node_modules/source-map/test/source-map/test-util.js216
-rw-r--r--node_modules/escodegen/node_modules/source-map/test/source-map/util.js299
-rw-r--r--node_modules/escodegen/package.json62
-rw-r--r--node_modules/esprima/ChangeLog35
-rw-r--r--node_modules/esprima/LICENSE.BSD2
-rw-r--r--node_modules/esprima/README.md35
-rwxr-xr-xnode_modules/esprima/bin/esparse.js57
-rwxr-xr-xnode_modules/esprima/bin/esvalidate.js93
-rw-r--r--node_modules/esprima/esprima.js5740
-rw-r--r--node_modules/esprima/package.json72
-rw-r--r--node_modules/estraverse/.editorconfig10
-rw-r--r--node_modules/estraverse/README.md124
-rw-r--r--node_modules/estraverse/estraverse.js102
-rw-r--r--node_modules/estraverse/package.json15
-rw-r--r--node_modules/etag/HISTORY.md78
-rw-r--r--node_modules/etag/LICENSE22
-rw-r--r--node_modules/etag/README.md159
-rw-r--r--node_modules/etag/index.js132
-rw-r--r--node_modules/etag/package.json44
-rw-r--r--node_modules/fast-levenshtein/LICENSE.md25
-rw-r--r--node_modules/fast-levenshtein/README.md104
-rw-r--r--node_modules/fast-levenshtein/levenshtein.js136
-rw-r--r--node_modules/fast-levenshtein/package.json39
-rw-r--r--node_modules/finalhandler/HISTORY.md150
-rw-r--r--node_modules/finalhandler/LICENSE22
-rw-r--r--node_modules/finalhandler/README.md146
-rw-r--r--node_modules/finalhandler/index.js300
-rw-r--r--node_modules/finalhandler/package.json45
-rw-r--r--node_modules/fresh/HISTORY.md58
-rw-r--r--node_modules/fresh/LICENSE23
-rw-r--r--node_modules/fresh/README.md113
-rw-r--r--node_modules/fresh/index.js81
-rw-r--r--node_modules/fresh/package.json40
-rw-r--r--node_modules/globby/index.js29
-rw-r--r--node_modules/globby/package.json9
-rw-r--r--node_modules/globby/readme.md10
-rw-r--r--node_modules/growl/History.md63
-rw-r--r--node_modules/growl/Readme.md108
-rw-r--r--node_modules/growl/lib/growl.js290
-rw-r--r--node_modules/growl/package.json15
-rw-r--r--node_modules/growl/test.js31
-rw-r--r--node_modules/http-errors/HISTORY.md118
-rw-r--r--node_modules/http-errors/LICENSE23
-rw-r--r--node_modules/http-errors/README.md135
-rw-r--r--node_modules/http-errors/index.js260
-rw-r--r--node_modules/http-errors/package.json46
-rw-r--r--node_modules/indent-string/index.js21
-rw-r--r--node_modules/indent-string/package.json12
-rw-r--r--node_modules/indent-string/readme.md37
-rw-r--r--node_modules/is-path-cwd/index.js6
-rw-r--r--node_modules/is-path-cwd/package.json33
-rw-r--r--node_modules/is-path-cwd/readme.md28
-rw-r--r--node_modules/is-path-in-cwd/index.js6
-rw-r--r--node_modules/is-path-in-cwd/package.json38
-rw-r--r--node_modules/is-path-in-cwd/readme.md28
-rw-r--r--node_modules/is-path-inside/index.js14
-rw-r--r--node_modules/is-path-inside/package.json36
-rw-r--r--node_modules/is-path-inside/readme.md31
-rw-r--r--node_modules/istanbul/CHANGELOG.md362
-rw-r--r--node_modules/istanbul/LICENSE24
-rw-r--r--node_modules/istanbul/README.md288
-rw-r--r--node_modules/istanbul/index.js153
-rw-r--r--node_modules/istanbul/lib/assets/base.css213
-rw-r--r--node_modules/istanbul/lib/assets/sort-arrow-sprite.pngbin209 -> 0 bytes
-rw-r--r--node_modules/istanbul/lib/assets/sorter.js158
-rw-r--r--node_modules/istanbul/lib/assets/vendor/prettify.css1
-rw-r--r--node_modules/istanbul/lib/assets/vendor/prettify.js1
-rwxr-xr-xnode_modules/istanbul/lib/cli.js99
-rw-r--r--node_modules/istanbul/lib/collector.js122
-rw-r--r--node_modules/istanbul/lib/command/check-coverage.js195
-rw-r--r--node_modules/istanbul/lib/command/common/run-with-cover.js261
-rw-r--r--node_modules/istanbul/lib/command/cover.js33
-rw-r--r--node_modules/istanbul/lib/command/help.js102
-rw-r--r--node_modules/istanbul/lib/command/index.js33
-rw-r--r--node_modules/istanbul/lib/command/instrument.js265
-rw-r--r--node_modules/istanbul/lib/command/report.js123
-rw-r--r--node_modules/istanbul/lib/command/test.js31
-rw-r--r--node_modules/istanbul/lib/config.js491
-rw-r--r--node_modules/istanbul/lib/hook.js198
-rw-r--r--node_modules/istanbul/lib/instrumenter.js1097
-rw-r--r--node_modules/istanbul/lib/object-utils.js425
-rw-r--r--node_modules/istanbul/lib/register-plugins.js15
-rw-r--r--node_modules/istanbul/lib/report/clover.js227
-rw-r--r--node_modules/istanbul/lib/report/cobertura.js221
-rw-r--r--node_modules/istanbul/lib/report/common/defaults.js51
-rw-r--r--node_modules/istanbul/lib/report/html.js572
-rw-r--r--node_modules/istanbul/lib/report/index.js104
-rw-r--r--node_modules/istanbul/lib/report/json-summary.js75
-rw-r--r--node_modules/istanbul/lib/report/json.js69
-rw-r--r--node_modules/istanbul/lib/report/lcov.js65
-rw-r--r--node_modules/istanbul/lib/report/lcovonly.js103
-rw-r--r--node_modules/istanbul/lib/report/none.js41
-rw-r--r--node_modules/istanbul/lib/report/teamcity.js92
-rw-r--r--node_modules/istanbul/lib/report/templates/foot.txt20
-rw-r--r--node_modules/istanbul/lib/report/templates/head.txt60
-rw-r--r--node_modules/istanbul/lib/report/text-lcov.js50
-rw-r--r--node_modules/istanbul/lib/report/text-summary.js93
-rw-r--r--node_modules/istanbul/lib/report/text.js234
-rw-r--r--node_modules/istanbul/lib/reporter.js111
-rw-r--r--node_modules/istanbul/lib/store/fslookup.js61
-rw-r--r--node_modules/istanbul/lib/store/index.js123
-rw-r--r--node_modules/istanbul/lib/store/memory.js56
-rw-r--r--node_modules/istanbul/lib/store/tmp.js81
-rw-r--r--node_modules/istanbul/lib/util/factory.js88
-rw-r--r--node_modules/istanbul/lib/util/file-matcher.js76
-rw-r--r--node_modules/istanbul/lib/util/file-writer.js154
-rw-r--r--node_modules/istanbul/lib/util/help-formatter.js30
-rw-r--r--node_modules/istanbul/lib/util/input-error.js12
-rw-r--r--node_modules/istanbul/lib/util/insertion-text.js109
-rw-r--r--node_modules/istanbul/lib/util/meta.js13
-rw-r--r--node_modules/istanbul/lib/util/tree-summarizer.js213
-rw-r--r--node_modules/istanbul/lib/util/writer.js92
-rw-r--r--node_modules/istanbul/lib/util/yui-load-hook.js49
l---------node_modules/istanbul/node_modules/.bin/escodegen1
l---------node_modules/istanbul/node_modules/.bin/esgenerate1
l---------node_modules/istanbul/node_modules/.bin/esparse1
l---------node_modules/istanbul/node_modules/.bin/esvalidate1
l---------node_modules/istanbul/node_modules/.bin/handlebars1
l---------node_modules/istanbul/node_modules/.bin/js-yaml1
l---------node_modules/istanbul/node_modules/.bin/mkdirp1
l---------node_modules/istanbul/node_modules/.bin/nopt1
l---------node_modules/istanbul/node_modules/.bin/which1
-rw-r--r--node_modules/istanbul/node_modules/async/CHANGELOG.md125
-rw-r--r--node_modules/istanbul/node_modules/async/LICENSE19
-rw-r--r--node_modules/istanbul/node_modules/async/README.md1877
-rw-r--r--node_modules/istanbul/node_modules/async/dist/async.js1265
-rw-r--r--node_modules/istanbul/node_modules/async/dist/async.min.js2
-rw-r--r--node_modules/istanbul/node_modules/async/lib/async.js1265
-rw-r--r--node_modules/istanbul/node_modules/async/package.json85
-rw-r--r--node_modules/istanbul/node_modules/glob/LICENSE15
-rw-r--r--node_modules/istanbul/node_modules/glob/README.md377
-rw-r--r--node_modules/istanbul/node_modules/glob/common.js245
-rw-r--r--node_modules/istanbul/node_modules/glob/glob.js752
-rw-r--r--node_modules/istanbul/node_modules/glob/package.json42
-rw-r--r--node_modules/istanbul/node_modules/glob/sync.js460
-rw-r--r--node_modules/istanbul/package.json133
-rw-r--r--node_modules/jade/.npmignore15
-rw-r--r--node_modules/jade/LICENSE22
-rwxr-xr-xnode_modules/jade/bin/jade147
-rw-r--r--node_modules/jade/index.js4
-rw-r--r--node_modules/jade/jade.js3586
-rw-r--r--node_modules/jade/jade.md510
-rw-r--r--node_modules/jade/jade.min.js2
-rw-r--r--node_modules/jade/lib/compiler.js642
-rw-r--r--node_modules/jade/lib/doctypes.js18
-rw-r--r--node_modules/jade/lib/filters.js97
-rw-r--r--node_modules/jade/lib/inline-tags.js28
-rw-r--r--node_modules/jade/lib/jade.js237
-rw-r--r--node_modules/jade/lib/lexer.js771
-rw-r--r--node_modules/jade/lib/nodes/attrs.js77
-rw-r--r--node_modules/jade/lib/nodes/block-comment.js33
-rw-r--r--node_modules/jade/lib/nodes/block.js121
-rw-r--r--node_modules/jade/lib/nodes/case.js43
-rw-r--r--node_modules/jade/lib/nodes/code.js35
-rw-r--r--node_modules/jade/lib/nodes/comment.js32
-rw-r--r--node_modules/jade/lib/nodes/doctype.js29
-rw-r--r--node_modules/jade/lib/nodes/each.js35
-rw-r--r--node_modules/jade/lib/nodes/filter.js35
-rw-r--r--node_modules/jade/lib/nodes/index.js20
-rw-r--r--node_modules/jade/lib/nodes/literal.js32
-rw-r--r--node_modules/jade/lib/nodes/mixin.js36
-rw-r--r--node_modules/jade/lib/nodes/node.js25
-rw-r--r--node_modules/jade/lib/nodes/tag.js95
-rw-r--r--node_modules/jade/lib/nodes/text.js36
-rw-r--r--node_modules/jade/lib/parser.js710
-rw-r--r--node_modules/jade/lib/runtime.js174
-rw-r--r--node_modules/jade/lib/self-closing.js19
-rw-r--r--node_modules/jade/lib/utils.js49
-rw-r--r--node_modules/jade/node_modules/commander/.npmignore4
-rw-r--r--node_modules/jade/node_modules/commander/.travis.yml4
-rw-r--r--node_modules/jade/node_modules/commander/History.md107
-rw-r--r--node_modules/jade/node_modules/commander/Makefile7
-rw-r--r--node_modules/jade/node_modules/commander/Readme.md262
-rw-r--r--node_modules/jade/node_modules/commander/index.js2
-rw-r--r--node_modules/jade/node_modules/commander/lib/commander.js1026
-rw-r--r--node_modules/jade/node_modules/commander/package.json13
-rw-r--r--node_modules/jade/node_modules/mkdirp/.gitignore2
-rw-r--r--node_modules/jade/node_modules/mkdirp/.gitignore.orig2
-rw-r--r--node_modules/jade/node_modules/mkdirp/.gitignore.rej5
-rw-r--r--node_modules/jade/node_modules/mkdirp/LICENSE21
-rw-r--r--node_modules/jade/node_modules/mkdirp/README.markdown54
-rw-r--r--node_modules/jade/node_modules/mkdirp/examples/pow.js6
-rw-r--r--node_modules/jade/node_modules/mkdirp/examples/pow.js.orig6
-rw-r--r--node_modules/jade/node_modules/mkdirp/examples/pow.js.rej19
-rw-r--r--node_modules/jade/node_modules/mkdirp/index.js79
-rw-r--r--node_modules/jade/node_modules/mkdirp/package.json23
-rw-r--r--node_modules/jade/node_modules/mkdirp/test/chmod.js38
-rw-r--r--node_modules/jade/node_modules/mkdirp/test/clobber.js37
-rw-r--r--node_modules/jade/node_modules/mkdirp/test/mkdirp.js28
-rw-r--r--node_modules/jade/node_modules/mkdirp/test/perm.js32
-rw-r--r--node_modules/jade/node_modules/mkdirp/test/perm_sync.js39
-rw-r--r--node_modules/jade/node_modules/mkdirp/test/race.js41
-rw-r--r--node_modules/jade/node_modules/mkdirp/test/rel.js32
-rw-r--r--node_modules/jade/node_modules/mkdirp/test/sync.js27
-rw-r--r--node_modules/jade/node_modules/mkdirp/test/umask.js28
-rw-r--r--node_modules/jade/node_modules/mkdirp/test/umask_sync.js27
-rw-r--r--node_modules/jade/package.json29
-rw-r--r--node_modules/jade/runtime.js179
-rw-r--r--node_modules/jade/runtime.min.js1
-rw-r--r--node_modules/jade/test.jade7
-rw-r--r--node_modules/jade/testing/head.jade5
-rw-r--r--node_modules/jade/testing/index.jade22
-rw-r--r--node_modules/jade/testing/index.js11
-rw-r--r--node_modules/jade/testing/layout.jade6
-rw-r--r--node_modules/jade/testing/user.jade7
-rw-r--r--node_modules/jade/testing/user.js27
l---------node_modules/js-yaml/node_modules/.bin/esparse2
l---------node_modules/js-yaml/node_modules/.bin/esvalidate2
-rw-r--r--node_modules/js-yaml/node_modules/esprima/ChangeLog209
-rw-r--r--node_modules/js-yaml/node_modules/esprima/LICENSE.BSD21
-rw-r--r--node_modules/js-yaml/node_modules/esprima/README.md44
-rwxr-xr-xnode_modules/js-yaml/node_modules/esprima/bin/esparse.js139
-rwxr-xr-xnode_modules/js-yaml/node_modules/esprima/bin/esvalidate.js236
-rw-r--r--node_modules/js-yaml/node_modules/esprima/dist/esprima.js6401
-rw-r--r--node_modules/js-yaml/node_modules/esprima/package.json109
-rw-r--r--node_modules/levn/LICENSE22
-rw-r--r--node_modules/levn/README.md196
-rw-r--r--node_modules/levn/lib/cast.js298
-rw-r--r--node_modules/levn/lib/coerce.js285
-rw-r--r--node_modules/levn/lib/index.js22
-rw-r--r--node_modules/levn/lib/parse-string.js113
-rw-r--r--node_modules/levn/lib/parse.js102
-rw-r--r--node_modules/levn/package.json47
-rw-r--r--node_modules/load-json-file/index.js26
-rw-r--r--node_modules/load-json-file/package.json13
-rw-r--r--node_modules/load-json-file/readme.md4
-rw-r--r--node_modules/lru-cache/.npmignore1
-rw-r--r--node_modules/lru-cache/.travis.yml8
-rw-r--r--node_modules/lru-cache/CONTRIBUTORS14
-rw-r--r--node_modules/lru-cache/README.md61
-rw-r--r--node_modules/lru-cache/lib/lru-cache.js533
-rw-r--r--node_modules/lru-cache/package.json18
-rw-r--r--node_modules/lru-cache/test/basic.js396
-rw-r--r--node_modules/lru-cache/test/foreach.js120
-rw-r--r--node_modules/lru-cache/test/memory-leak.js51
-rw-r--r--node_modules/lru-cache/test/serialize.js216
-rw-r--r--node_modules/mime/.npmignore0
-rw-r--r--node_modules/mime/LICENSE19
-rw-r--r--node_modules/mime/README.md90
-rw-r--r--node_modules/mime/build/build.js11
-rw-r--r--node_modules/mime/build/test.js57
-rwxr-xr-xnode_modules/mime/cli.js8
-rw-r--r--node_modules/mime/mime.js108
-rw-r--r--node_modules/mime/package.json46
-rw-r--r--node_modules/mime/types.json1
-rw-r--r--node_modules/mocha/CHANGELOG.md1262
-rw-r--r--node_modules/mocha/LICENSE22
-rw-r--r--node_modules/mocha/bin/.eslintrc3
-rwxr-xr-xnode_modules/mocha/bin/_mocha480
-rwxr-xr-xnode_modules/mocha/bin/mocha73
-rw-r--r--node_modules/mocha/bin/options.js39
-rw-r--r--node_modules/mocha/images/error.pngbin412 -> 0 bytes
-rw-r--r--node_modules/mocha/images/ok.pngbin388 -> 0 bytes
-rw-r--r--node_modules/mocha/index.js3
-rw-r--r--node_modules/mocha/lib/browser/debug.js4
-rw-r--r--node_modules/mocha/lib/browser/events.js193
-rw-r--r--node_modules/mocha/lib/browser/progress.js117
-rw-r--r--node_modules/mocha/lib/browser/tty.js11
-rw-r--r--node_modules/mocha/lib/context.js104
-rw-r--r--node_modules/mocha/lib/hook.js46
-rw-r--r--node_modules/mocha/lib/interfaces/bdd.js117
-rw-r--r--node_modules/mocha/lib/interfaces/common.js85
-rw-r--r--node_modules/mocha/lib/interfaces/exports.js61
-rw-r--r--node_modules/mocha/lib/interfaces/index.js4
-rw-r--r--node_modules/mocha/lib/interfaces/qunit.js94
-rw-r--r--node_modules/mocha/lib/interfaces/tdd.js106
-rw-r--r--node_modules/mocha/lib/mocha.js503
-rw-r--r--node_modules/mocha/lib/ms.js128
-rw-r--r--node_modules/mocha/lib/pending.js15
-rw-r--r--node_modules/mocha/lib/reporters/base.js487
-rw-r--r--node_modules/mocha/lib/reporters/doc.js62
-rw-r--r--node_modules/mocha/lib/reporters/dot.js66
-rw-r--r--node_modules/mocha/lib/reporters/html-cov.js56
-rw-r--r--node_modules/mocha/lib/reporters/html.js343
-rw-r--r--node_modules/mocha/lib/reporters/index.js19
-rw-r--r--node_modules/mocha/lib/reporters/json-cov.js151
-rw-r--r--node_modules/mocha/lib/reporters/json-stream.js60
-rw-r--r--node_modules/mocha/lib/reporters/json.js90
-rw-r--r--node_modules/mocha/lib/reporters/landing.js92
-rw-r--r--node_modules/mocha/lib/reporters/list.js61
-rw-r--r--node_modules/mocha/lib/reporters/markdown.js97
-rw-r--r--node_modules/mocha/lib/reporters/min.js36
-rw-r--r--node_modules/mocha/lib/reporters/nyan.js261
-rw-r--r--node_modules/mocha/lib/reporters/progress.js89
-rw-r--r--node_modules/mocha/lib/reporters/spec.js83
-rw-r--r--node_modules/mocha/lib/reporters/tap.js68
-rw-r--r--node_modules/mocha/lib/reporters/templates/coverage.jade51
-rw-r--r--node_modules/mocha/lib/reporters/templates/menu.jade13
-rw-r--r--node_modules/mocha/lib/reporters/templates/script.html34
-rw-r--r--node_modules/mocha/lib/reporters/templates/style.html324
-rw-r--r--node_modules/mocha/lib/reporters/xunit.js166
-rw-r--r--node_modules/mocha/lib/runnable.js363
-rw-r--r--node_modules/mocha/lib/runner.js894
-rw-r--r--node_modules/mocha/lib/suite.js395
-rw-r--r--node_modules/mocha/lib/template.html18
-rw-r--r--node_modules/mocha/lib/test.js44
-rw-r--r--node_modules/mocha/lib/utils.js750
-rw-r--r--node_modules/mocha/mocha.css314
-rw-r--r--node_modules/mocha/mocha.js13149
l---------node_modules/mocha/node_modules/.bin/jade1
l---------node_modules/mocha/node_modules/.bin/mkdirp1
l---------node_modules/mocha/node_modules/.bin/supports-color1
-rw-r--r--node_modules/mocha/node_modules/commander/Readme.md208
-rw-r--r--node_modules/mocha/node_modules/commander/index.js876
-rw-r--r--node_modules/mocha/node_modules/commander/package.json13
-rw-r--r--node_modules/mocha/node_modules/debug/.jshintrc3
-rw-r--r--node_modules/mocha/node_modules/debug/.npmignore6
-rw-r--r--node_modules/mocha/node_modules/debug/History.md195
-rw-r--r--node_modules/mocha/node_modules/debug/Makefile36
-rw-r--r--node_modules/mocha/node_modules/debug/Readme.md188
-rw-r--r--node_modules/mocha/node_modules/debug/bower.json28
-rw-r--r--node_modules/mocha/node_modules/debug/browser.js168
-rw-r--r--node_modules/mocha/node_modules/debug/component.json19
-rw-r--r--node_modules/mocha/node_modules/debug/debug.js197
-rw-r--r--node_modules/mocha/node_modules/debug/node.js209
-rw-r--r--node_modules/mocha/node_modules/debug/package.json34
-rw-r--r--node_modules/mocha/node_modules/glob/.npmignore2
-rw-r--r--node_modules/mocha/node_modules/glob/.travis.yml3
-rw-r--r--node_modules/mocha/node_modules/glob/LICENSE27
-rw-r--r--node_modules/mocha/node_modules/glob/README.md250
-rw-r--r--node_modules/mocha/node_modules/glob/examples/g.js9
-rw-r--r--node_modules/mocha/node_modules/glob/examples/usr-local.js9
-rw-r--r--node_modules/mocha/node_modules/glob/glob.js728
-rw-r--r--node_modules/mocha/node_modules/glob/package.json28
-rw-r--r--node_modules/mocha/node_modules/glob/test/00-setup.js176
-rw-r--r--node_modules/mocha/node_modules/glob/test/bash-comparison.js63
-rw-r--r--node_modules/mocha/node_modules/glob/test/bash-results.json351
-rw-r--r--node_modules/mocha/node_modules/glob/test/cwd-test.js55
-rw-r--r--node_modules/mocha/node_modules/glob/test/globstar-match.js19
-rw-r--r--node_modules/mocha/node_modules/glob/test/mark.js118
-rw-r--r--node_modules/mocha/node_modules/glob/test/new-glob-optional-options.js10
-rw-r--r--node_modules/mocha/node_modules/glob/test/nocase-nomagic.js113
-rw-r--r--node_modules/mocha/node_modules/glob/test/pause-resume.js73
-rw-r--r--node_modules/mocha/node_modules/glob/test/readme-issue.js36
-rw-r--r--node_modules/mocha/node_modules/glob/test/root-nomount.js39
-rw-r--r--node_modules/mocha/node_modules/glob/test/root.js46
-rw-r--r--node_modules/mocha/node_modules/glob/test/stat.js32
-rw-r--r--node_modules/mocha/node_modules/glob/test/zz-cleanup.js11
-rw-r--r--node_modules/mocha/node_modules/minimatch/.npmignore1
-rw-r--r--node_modules/mocha/node_modules/minimatch/LICENSE23
-rw-r--r--node_modules/mocha/node_modules/minimatch/README.md218
-rw-r--r--node_modules/mocha/node_modules/minimatch/minimatch.js1061
-rw-r--r--node_modules/mocha/node_modules/minimatch/package.json28
-rw-r--r--node_modules/mocha/node_modules/minimatch/test/basic.js399
-rw-r--r--node_modules/mocha/node_modules/minimatch/test/brace-expand.js33
-rw-r--r--node_modules/mocha/node_modules/minimatch/test/caching.js14
-rw-r--r--node_modules/mocha/node_modules/minimatch/test/defaults.js274
-rw-r--r--node_modules/mocha/node_modules/minimatch/test/extglob-ending-with-state-char.js8
-rw-r--r--node_modules/mocha/node_modules/ms/.npmignore5
-rw-r--r--node_modules/mocha/node_modules/ms/History.md66
-rw-r--r--node_modules/mocha/node_modules/ms/LICENSE20
-rw-r--r--node_modules/mocha/node_modules/ms/README.md35
-rw-r--r--node_modules/mocha/node_modules/ms/index.js125
-rw-r--r--node_modules/mocha/node_modules/ms/package.json20
-rwxr-xr-xnode_modules/mocha/node_modules/supports-color/cli.js29
-rw-r--r--node_modules/mocha/node_modules/supports-color/index.js39
-rw-r--r--node_modules/mocha/node_modules/supports-color/package.json51
-rw-r--r--node_modules/mocha/node_modules/supports-color/readme.md44
-rw-r--r--node_modules/mocha/package.json374
-rw-r--r--node_modules/ms/index.js73
-rw-r--r--node_modules/ms/license.md21
-rw-r--r--node_modules/ms/package.json43
-rw-r--r--node_modules/ms/readme.md51
l---------node_modules/nomnom/node_modules/chalk/node_modules/.bin/strip-ansi2
-rw-r--r--node_modules/nopt/.npmignore1
-rw-r--r--node_modules/nopt/.travis.yml9
-rw-r--r--node_modules/nopt/LICENSE15
-rw-r--r--node_modules/nopt/README.md211
-rwxr-xr-xnode_modules/nopt/bin/nopt.js54
-rwxr-xr-xnode_modules/nopt/examples/my-program.js30
-rw-r--r--node_modules/nopt/lib/nopt.js415
-rw-r--r--node_modules/nopt/package.json22
-rw-r--r--node_modules/nopt/test/basic.js273
-rw-r--r--node_modules/on-finished/HISTORY.md88
-rw-r--r--node_modules/on-finished/LICENSE23
-rw-r--r--node_modules/on-finished/README.md154
-rw-r--r--node_modules/on-finished/index.js196
-rw-r--r--node_modules/on-finished/package.json31
-rw-r--r--node_modules/optionator/CHANGELOG.md52
-rw-r--r--node_modules/optionator/LICENSE22
-rw-r--r--node_modules/optionator/README.md236
-rw-r--r--node_modules/optionator/lib/help.js247
-rw-r--r--node_modules/optionator/lib/index.js465
-rw-r--r--node_modules/optionator/lib/util.js54
-rw-r--r--node_modules/optionator/package.json44
-rw-r--r--node_modules/parseurl/HISTORY.md47
-rw-r--r--node_modules/parseurl/LICENSE24
-rw-r--r--node_modules/parseurl/README.md120
-rw-r--r--node_modules/parseurl/index.js138
-rw-r--r--node_modules/parseurl/package.json33
-rw-r--r--node_modules/path-is-inside/LICENSE.txt47
-rw-r--r--node_modules/path-is-inside/lib/path-is-inside.js28
-rw-r--r--node_modules/path-is-inside/package.json21
-rw-r--r--node_modules/prelude-ls/CHANGELOG.md99
-rw-r--r--node_modules/prelude-ls/LICENSE22
-rw-r--r--node_modules/prelude-ls/README.md15
-rw-r--r--node_modules/prelude-ls/lib/Func.js65
-rw-r--r--node_modules/prelude-ls/lib/List.js686
-rw-r--r--node_modules/prelude-ls/lib/Num.js130
-rw-r--r--node_modules/prelude-ls/lib/Obj.js154
-rw-r--r--node_modules/prelude-ls/lib/Str.js92
-rw-r--r--node_modules/prelude-ls/lib/index.js178
-rw-r--r--node_modules/prelude-ls/package.json52
-rw-r--r--node_modules/range-parser/HISTORY.md51
-rw-r--r--node_modules/range-parser/LICENSE23
-rw-r--r--node_modules/range-parser/README.md75
-rw-r--r--node_modules/range-parser/index.js158
-rw-r--r--node_modules/range-parser/package.json40
-rw-r--r--node_modules/sax/LICENSE41
-rw-r--r--node_modules/sax/README.md225
-rw-r--r--node_modules/sax/lib/sax.js1581
-rw-r--r--node_modules/sax/package.json22
-rw-r--r--node_modules/selenium-webdriver/.npmignore2
-rw-r--r--node_modules/selenium-webdriver/CHANGES.md784
-rw-r--r--node_modules/selenium-webdriver/LICENSE202
-rw-r--r--node_modules/selenium-webdriver/NOTICE2
-rw-r--r--node_modules/selenium-webdriver/README.md232
-rw-r--r--node_modules/selenium-webdriver/chrome.js787
-rw-r--r--node_modules/selenium-webdriver/edge.js301
-rw-r--r--node_modules/selenium-webdriver/example/async_await_test.js68
-rw-r--r--node_modules/selenium-webdriver/example/chrome_android.js43
-rw-r--r--node_modules/selenium-webdriver/example/chrome_mobile_emulation.js43
-rw-r--r--node_modules/selenium-webdriver/example/firefox_channels.js73
-rw-r--r--node_modules/selenium-webdriver/example/google_search.js50
-rw-r--r--node_modules/selenium-webdriver/example/google_search_generator.js50
-rw-r--r--node_modules/selenium-webdriver/example/google_search_test.js61
-rw-r--r--node_modules/selenium-webdriver/example/logging.js35
-rw-r--r--node_modules/selenium-webdriver/example/parallel_flows.js54
-rw-r--r--node_modules/selenium-webdriver/firefox/binary.js344
-rw-r--r--node_modules/selenium-webdriver/firefox/extension.js187
-rw-r--r--node_modules/selenium-webdriver/firefox/index.js722
-rw-r--r--node_modules/selenium-webdriver/firefox/profile.js430
-rw-r--r--node_modules/selenium-webdriver/http/index.js255
-rw-r--r--node_modules/selenium-webdriver/http/util.js175
-rw-r--r--node_modules/selenium-webdriver/ie.js441
-rw-r--r--node_modules/selenium-webdriver/index.js691
-rw-r--r--node_modules/selenium-webdriver/io/exec.js153
-rw-r--r--node_modules/selenium-webdriver/io/index.js300
-rw-r--r--node_modules/selenium-webdriver/lib/README5
-rw-r--r--node_modules/selenium-webdriver/lib/actions.js604
-rw-r--r--node_modules/selenium-webdriver/lib/atoms/getAttribute.js12
-rw-r--r--node_modules/selenium-webdriver/lib/atoms/is-displayed.js107
-rw-r--r--node_modules/selenium-webdriver/lib/by.js285
-rw-r--r--node_modules/selenium-webdriver/lib/capabilities.js450
-rw-r--r--node_modules/selenium-webdriver/lib/command.js245
-rw-r--r--node_modules/selenium-webdriver/lib/devmode.js34
-rw-r--r--node_modules/selenium-webdriver/lib/error.js568
-rw-r--r--node_modules/selenium-webdriver/lib/events.js210
-rw-r--r--node_modules/selenium-webdriver/lib/firefox/webdriver.json70
-rw-r--r--node_modules/selenium-webdriver/lib/firefox/webdriver.xpibin712979 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/http.js582
-rw-r--r--node_modules/selenium-webdriver/lib/input.js171
-rw-r--r--node_modules/selenium-webdriver/lib/logging.js676
-rw-r--r--node_modules/selenium-webdriver/lib/promise.js3412
-rw-r--r--node_modules/selenium-webdriver/lib/proxy.js127
-rw-r--r--node_modules/selenium-webdriver/lib/session.js80
-rw-r--r--node_modules/selenium-webdriver/lib/symbols.js38
-rw-r--r--node_modules/selenium-webdriver/lib/test/build.js151
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/ClickTest_testClicksASurroundingStrongTag.html11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/Page.aspx17
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/Page.aspx.cs22
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/Redirect.aspx11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/Redirect.aspx.cs9
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/Settings.StyleCop759
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/Web.Config59
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/actualXhtmlPage.xhtml14
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/ajaxy_page.html81
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/alerts.html85
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/banner.gifbin2109 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/beach.jpgbin14085 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/blank.html1
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/bodyTypingTest.html41
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/booleanAttributes.html19
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/child/childPage.html8
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/child/grandchild/grandchildPage.html8
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/clickEventPage.html26
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_frames.html10
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_jacker.html38
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_out_of_bounds.html23
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_out_of_bounds_overflow.html85
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_rtl.html19
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_source.html18
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/click_iframe.html6
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/click_in_iframe.html8
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/disabled_element.html12
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/disappearing_element.html62
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/google_map.html15
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/google_map.pngbin26209 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/html5_submit_buttons.html16
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/issue5237.html9
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/issue5237_frame.html1
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/issue5237_target.html10
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/link_that_wraps.html11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/mapped_page1.html9
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/mapped_page2.html9
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/mapped_page3.html9
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/overlapping_elements.html70
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/partially_overlapping_elements.html124
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/span_that_wraps.html11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/submitted_page.html9
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_tests/wrapped_overlapping_elements.html13
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_too_big.html10
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/click_too_big_in_frame.html11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/clicks.html35
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/closeable_window.html8
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/cn-test.html156
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/colorPage.html20
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/cookies.html30
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/coordinates_tests/element_in_frame.html9
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/coordinates_tests/element_in_nested_frame.html9
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_element_out_of_view.html11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_empty_element.html10
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_fixed_element.html12
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_hidden_element.html10
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_invisible_element.html10
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_transparent_element.html10
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/coordinates_tests/simple_page.html10
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.pngbin260 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.pngbin251 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.pngbin178 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.pngbin104 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.pngbin125 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.pngbin105 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.pngbin3762 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.pngbin90 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.pngbin129 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_222222_256x240.pngbin4369 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_228ef1_256x240.pngbin4369 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_ef8c08_256x240.pngbin4369 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_ffd27a_256x240.pngbin4369 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_ffffff_256x240.pngbin4369 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/jquery-ui-1.8.10.custom.css573
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/cssTransform.html61
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/cssTransform2.html20
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/document_write_in_onload.html13
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/dragAndDropInsideScrolledDiv.html67
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/dragAndDropTest.html102
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/dragDropOverflow.html104
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/draggableLists.html67
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/droppableItems.html65
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/dynamic.html39
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/dynamicallyModifiedPage.html42
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/errors.html15
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/firefox/jetpack-sample.xpibin7289 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/firefox/sample.xpibin1551 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/fixedFooterNoScroll.html13
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/fixedFooterNoScrollQuirksMode.html12
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/formPage.html175
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/formSelectionPage.html46
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/form_handling_js_submit.html30
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/framePage3.html7
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/frameScrollChild.html26
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/frameScrollPage.html14
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/frameScrollParent.html11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/frameWithAnimals.html11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/bug4876.html9
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/bug4876_iframe.html9
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/deletingFrame.html29
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/deletingFrame_iframe.html8
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/deletingFrame_iframe2.html7
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/frameset.html14
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/framesetPage2.html7
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/framesetPage3.html4
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/globalscope.html15
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/hidden.html5
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/hidden_partially.html45
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/html5/blue.jpgbin92 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/html5/database.js84
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/html5/geolocation.js18
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/html5/green.jpgbin92 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/html5/red.jpgbin92 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/html5/status.html1
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/html5/test.appcache11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/html5/yellow.jpgbin92 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/html5Page.html32
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/icon.gifbin127 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/idElements.html2
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/iframeAtBottom.html15
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/iframeWithAlert.html1
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/iframeWithIframe.html1
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/iframes.html11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/injectableContent.html22
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/javascriptEnhancedForm.html30
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/javascriptPage.html285
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/jquery-1.3.2.js4376
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/jquery-1.4.4.min.js167
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/jquery-ui-1.8.10.custom.min.js782
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/content.inline.min.css1
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/content.min.css1
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/readme.md1
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.dev.svg175
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.eotbin10316 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.svg62
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.ttfbin10128 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.woffbin7848 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.dev.svg153
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.eotbin10024 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.svg63
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.ttfbin9860 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.woffbin7664 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/img/anchor.gifbin53 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/img/loader.gifbin2608 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/img/object.gifbin152 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/img/trans.gifbin43 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/skin.ie7.min.css1
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/skin.min.css1
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/themes/modern/theme.min.js1
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/js/tinymce.min.js10
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/key_tests/remove_on_keypress.html36
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/keyboard_shortcut.html36
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/linked_image.html16
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/locators_tests/boolean_attribute_selected.html13
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/locators_tests/boolean_attribute_selected_html4.html13
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/longContentPage.html55
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/macbeth.html5255
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/map.pngbin26209 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/map_visibility.html8
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/markerTransparent.pngbin260 -> 0 bytes
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/messages.html15
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/meta-redirect.html11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/missedJsReference.html11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/modal_dialogs/modal_1.html21
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/modal_dialogs/modal_2.html21
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/modal_dialogs/modal_3.html15
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/modal_dialogs/modalindex.html21
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/mouseOver.html17
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/mousePositionTracker.html33
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/nestedElements.html164
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/overflow-body.html15
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/overflow/x_auto_y_auto.html30
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/overflow/x_auto_y_hidden.html30
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/overflow/x_auto_y_scroll.html30
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/overflow/x_hidden_y_auto.html30
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/overflow/x_hidden_y_hidden.html30
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/overflow/x_hidden_y_scroll.html30
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/overflow/x_scroll_y_auto.html30
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/overflow/x_scroll_y_hidden.html30
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/overflow/x_scroll_y_scroll.html30
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/pageWithOnBeforeUnloadMessage.html20
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/pageWithOnLoad.html6
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/pageWithOnUnload.html6
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/page_with_link_to_slow_loading_page.html6
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/plain.txt1
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/proxy/page1.html20
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/proxy/page2.html24
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/proxy/page3.html5
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/readOnlyPage.html24
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/rectangles.html40
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/resultPage.html25
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/rich_text.html161
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/safari/frames_benchmark.html31
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/screen/screen.css19
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/screen/screen.html72
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/screen/screen.js7
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/screen/screen_frame1.html72
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/screen/screen_frame2.html72
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/screen/screen_frames.html11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/screen/screen_iframes.html12
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/screen/screen_too_long.html68
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/screen/screen_x_long.html72
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/screen/screen_x_too_long.html72
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/screen/screen_y_long.html72
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/screen/screen_y_too_long.html72
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scroll.html27
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scroll2.html21
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scroll3.html8
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scroll4.html7
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scroll5.html18
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_height_above_200.html26
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_height_above_2000.html26
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_nested_scrolling_frame.html11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_nested_scrolling_frame_out_of_view.html12
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_small_height.html10
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_double_overflow_auto.html19
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_frame_out_of_view.html12
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_nested_scrolling_frames.html11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_nested_scrolling_frames_out_of_view.html12
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_non_scrolling_frame.html11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_scrolling_frame.html11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_scrolling_frame_out_of_view.html12
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_tall_frame.html11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_y_overflow_auto.html14
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/scrolling_tests/target_page.html9
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/selectPage.html58
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/selectableItems.html65
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/sessionCookie.html21
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/sessionCookieDest.html34
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/simple.xml5
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/simpleTest.html98
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/slowLoadingAlert.html10
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/slowLoadingResourcePage.html12
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/slow_loading_iframes.html14
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/styledPage.html28
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/svgPiechart.xhtml81
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/svgTest.svg4
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/tables.html36
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/tinymce.html10
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/transformable.xml11
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/transformable.xsl37
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/transparentUpload.html70
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/underscore.html9
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/unicode_ltr.html8
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/upload.html45
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/userDefinedProperty.html8
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/veryLargeCanvas.html81
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/visibility-css.html21
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/win32frameset.html8
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/window_switching_tests/page_with_frame.html12
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/window_switching_tests/simple_page.html9
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/xhtmlFormPage.xhtml17
-rw-r--r--node_modules/selenium-webdriver/lib/test/data/xhtmlTest.html76
-rw-r--r--node_modules/selenium-webdriver/lib/test/fileserver.js321
-rw-r--r--node_modules/selenium-webdriver/lib/test/httpserver.js120
-rw-r--r--node_modules/selenium-webdriver/lib/test/index.js303
-rw-r--r--node_modules/selenium-webdriver/lib/test/promise.js79
-rw-r--r--node_modules/selenium-webdriver/lib/test/resources.js44
-rw-r--r--node_modules/selenium-webdriver/lib/until.js427
-rw-r--r--node_modules/selenium-webdriver/lib/webdriver.js2669
-rw-r--r--node_modules/selenium-webdriver/net/index.js117
-rw-r--r--node_modules/selenium-webdriver/net/portprober.js205
l---------node_modules/selenium-webdriver/node_modules/.bin/rimraf1
-rw-r--r--node_modules/selenium-webdriver/opera.js405
-rw-r--r--node_modules/selenium-webdriver/package.json42
-rw-r--r--node_modules/selenium-webdriver/phantomjs.js282
-rw-r--r--node_modules/selenium-webdriver/proxy.js32
-rw-r--r--node_modules/selenium-webdriver/remote/index.js602
-rw-r--r--node_modules/selenium-webdriver/safari.js264
-rw-r--r--node_modules/selenium-webdriver/test/actions_test.js52
-rw-r--r--node_modules/selenium-webdriver/test/chrome/options_test.js227
-rw-r--r--node_modules/selenium-webdriver/test/chrome/service_test.js45
-rw-r--r--node_modules/selenium-webdriver/test/cookie_test.js214
-rw-r--r--node_modules/selenium-webdriver/test/element_finding_test.js426
-rw-r--r--node_modules/selenium-webdriver/test/execute_script_test.js350
-rw-r--r--node_modules/selenium-webdriver/test/fingerprint_test.js62
-rw-r--r--node_modules/selenium-webdriver/test/firefox/extension_test.js96
-rw-r--r--node_modules/selenium-webdriver/test/firefox/firefox_test.js226
-rw-r--r--node_modules/selenium-webdriver/test/firefox/profile_test.js185
-rw-r--r--node_modules/selenium-webdriver/test/http/http_test.js205
-rw-r--r--node_modules/selenium-webdriver/test/http/util_test.js178
-rw-r--r--node_modules/selenium-webdriver/test/io_test.js321
-rw-r--r--node_modules/selenium-webdriver/test/lib/by_test.js160
-rw-r--r--node_modules/selenium-webdriver/test/lib/capabilities_test.js111
-rw-r--r--node_modules/selenium-webdriver/test/lib/error_test.js286
-rw-r--r--node_modules/selenium-webdriver/test/lib/events_test.js177
-rw-r--r--node_modules/selenium-webdriver/test/lib/http_test.js696
-rw-r--r--node_modules/selenium-webdriver/test/lib/logging_test.js272
-rw-r--r--node_modules/selenium-webdriver/test/lib/promise_aplus_test.js78
-rw-r--r--node_modules/selenium-webdriver/test/lib/promise_error_test.js884
-rw-r--r--node_modules/selenium-webdriver/test/lib/promise_flow_test.js2288
-rw-r--r--node_modules/selenium-webdriver/test/lib/promise_generator_test.js310
-rw-r--r--node_modules/selenium-webdriver/test/lib/promise_test.js1109
-rw-r--r--node_modules/selenium-webdriver/test/lib/testutil.js90
-rw-r--r--node_modules/selenium-webdriver/test/lib/until_test.js478
-rw-r--r--node_modules/selenium-webdriver/test/lib/webdriver_test.js2309
-rw-r--r--node_modules/selenium-webdriver/test/logging_test.js167
-rw-r--r--node_modules/selenium-webdriver/test/net/index_test.js60
-rw-r--r--node_modules/selenium-webdriver/test/net/portprober_test.js128
-rw-r--r--node_modules/selenium-webdriver/test/page_loading_test.js172
-rw-r--r--node_modules/selenium-webdriver/test/phantomjs/execute_phantomjs_test.js59
-rw-r--r--node_modules/selenium-webdriver/test/proxy_test.js180
-rw-r--r--node_modules/selenium-webdriver/test/rect_test.js60
-rw-r--r--node_modules/selenium-webdriver/test/remote_test.js117
-rw-r--r--node_modules/selenium-webdriver/test/safari_test.js108
-rw-r--r--node_modules/selenium-webdriver/test/session_test.js54
-rw-r--r--node_modules/selenium-webdriver/test/stale_element_test.js63
-rw-r--r--node_modules/selenium-webdriver/test/tag_name_test.js36
-rw-r--r--node_modules/selenium-webdriver/test/testing/assert_test.js373
-rw-r--r--node_modules/selenium-webdriver/test/testing/index_test.js224
-rw-r--r--node_modules/selenium-webdriver/test/upload_test.js86
-rw-r--r--node_modules/selenium-webdriver/test/window_test.js161
-rw-r--r--node_modules/selenium-webdriver/testing/assert.js378
-rw-r--r--node_modules/selenium-webdriver/testing/index.js427
-rw-r--r--node_modules/send/HISTORY.md411
-rw-r--r--node_modules/send/LICENSE23
-rw-r--r--node_modules/send/README.md301
-rw-r--r--node_modules/send/index.js1074
l---------node_modules/send/node_modules/.bin/mime1
-rw-r--r--node_modules/send/package.json59
-rw-r--r--node_modules/serve-static/HISTORY.md377
-rw-r--r--node_modules/serve-static/LICENSE25
-rw-r--r--node_modules/serve-static/README.md253
-rw-r--r--node_modules/serve-static/index.js209
-rw-r--r--node_modules/serve-static/package.json40
-rw-r--r--node_modules/setprototypeof/LICENSE13
-rw-r--r--node_modules/setprototypeof/README.md21
-rw-r--r--node_modules/setprototypeof/index.js15
-rw-r--r--node_modules/setprototypeof/package.json24
-rw-r--r--node_modules/statuses/HISTORY.md55
-rw-r--r--node_modules/statuses/LICENSE23
-rw-r--r--node_modules/statuses/README.md103
-rw-r--r--node_modules/statuses/codes.json65
-rw-r--r--node_modules/statuses/index.js110
-rw-r--r--node_modules/statuses/package.json44
-rw-r--r--node_modules/systemjs/LICENSE10
-rw-r--r--node_modules/systemjs/README.md152
-rw-r--r--node_modules/systemjs/dist/system-csp-production.js6
-rw-r--r--node_modules/systemjs/dist/system-csp-production.js.map1
-rw-r--r--node_modules/systemjs/dist/system-csp-production.src.js4537
-rw-r--r--node_modules/systemjs/dist/system-polyfills.js5
-rw-r--r--node_modules/systemjs/dist/system-polyfills.js.map1
-rw-r--r--node_modules/systemjs/dist/system-polyfills.src.js1277
-rw-r--r--node_modules/systemjs/dist/system-register-only.js5
-rw-r--r--node_modules/systemjs/dist/system-register-only.js.map1
-rw-r--r--node_modules/systemjs/dist/system-register-only.src.js2199
-rw-r--r--node_modules/systemjs/dist/system.js6
-rw-r--r--node_modules/systemjs/dist/system.js.map1
-rw-r--r--node_modules/systemjs/dist/system.src.js5169
-rw-r--r--node_modules/systemjs/index.js47
-rw-r--r--node_modules/systemjs/package.json34
-rw-r--r--node_modules/tmp/.eslintrc.js24
-rw-r--r--node_modules/tmp/.npmignore2
-rw-r--r--node_modules/tmp/.travis.yml15
-rw-r--r--node_modules/tmp/Gruntfile.js18
-rw-r--r--node_modules/tmp/LICENSE21
-rw-r--r--node_modules/tmp/README.md268
-rwxr-xr-xnode_modules/tmp/cleanup.sh3
-rw-r--r--node_modules/tmp/coverage/coverage.json1
-rw-r--r--node_modules/tmp/coverage/lcov-report/base.css213
-rw-r--r--node_modules/tmp/coverage/lcov-report/index.html93
-rw-r--r--node_modules/tmp/coverage/lcov-report/lib/index.html93
-rw-r--r--node_modules/tmp/coverage/lcov-report/lib/tmp.js.html1448
-rw-r--r--node_modules/tmp/coverage/lcov-report/prettify.css1
-rw-r--r--node_modules/tmp/coverage/lcov-report/prettify.js1
-rw-r--r--node_modules/tmp/coverage/lcov-report/sort-arrow-sprite.pngbin209 -> 0 bytes
-rw-r--r--node_modules/tmp/coverage/lcov-report/sorter.js158
-rw-r--r--node_modules/tmp/coverage/lcov.info300
-rw-r--r--node_modules/tmp/lib/tmp.js463
-rw-r--r--node_modules/tmp/package.json38
-rwxr-xr-xnode_modules/tmp/run-tests7
-rw-r--r--node_modules/tmp/test/base.js149
-rw-r--r--node_modules/tmp/test/dir-sync-test.js230
-rw-r--r--node_modules/tmp/test/dir-test.js225
-rw-r--r--node_modules/tmp/test/file-sync-test.js190
-rw-r--r--node_modules/tmp/test/file-test.js191
-rw-r--r--node_modules/tmp/test/graceful-sync.js20
-rw-r--r--node_modules/tmp/test/graceful.js15
-rw-r--r--node_modules/tmp/test/issue62-sync.js27
-rw-r--r--node_modules/tmp/test/issue62.js27
-rw-r--r--node_modules/tmp/test/keep-sync.js12
-rw-r--r--node_modules/tmp/test/keep.js11
-rw-r--r--node_modules/tmp/test/name-test.js82
-rw-r--r--node_modules/tmp/test/spawn-sync.js32
-rw-r--r--node_modules/tmp/test/spawn.js32
-rw-r--r--node_modules/tmp/test/symlinkme/file.js0
-rw-r--r--node_modules/tmp/test/unsafe-sync.js30
-rw-r--r--node_modules/tmp/test/unsafe.js30
-rw-r--r--node_modules/to-iso-string/.npmignore3
-rw-r--r--node_modules/to-iso-string/History.md9
-rw-r--r--node_modules/to-iso-string/Makefile17
-rw-r--r--node_modules/to-iso-string/Readme.md18
-rw-r--r--node_modules/to-iso-string/component.json9
-rw-r--r--node_modules/to-iso-string/index.js40
-rw-r--r--node_modules/to-iso-string/package.json11
-rw-r--r--node_modules/to-iso-string/test/index.js10
-rw-r--r--node_modules/type-check/LICENSE22
-rw-r--r--node_modules/type-check/README.md210
-rw-r--r--node_modules/type-check/lib/check.js126
-rw-r--r--node_modules/type-check/lib/index.js16
-rw-r--r--node_modules/type-check/lib/parse-type.js196
-rw-r--r--node_modules/type-check/package.json40
-rw-r--r--node_modules/typhonjs-istanbul-instrument-jspm/AUTHORS.md9
-rw-r--r--node_modules/typhonjs-istanbul-instrument-jspm/CHANGELOG.md2
-rw-r--r--node_modules/typhonjs-istanbul-instrument-jspm/LICENSE373
-rw-r--r--node_modules/typhonjs-istanbul-instrument-jspm/README.md57
-rw-r--r--node_modules/typhonjs-istanbul-instrument-jspm/dist/instrumentIstanbulSystem.js85
-rw-r--r--node_modules/typhonjs-istanbul-instrument-jspm/package.json71
-rw-r--r--node_modules/typhonjs-istanbul-instrument-jspm/src/instrumentIstanbulSystem.js85
-rw-r--r--node_modules/unpipe/HISTORY.md4
-rw-r--r--node_modules/unpipe/LICENSE22
-rw-r--r--node_modules/unpipe/README.md43
-rw-r--r--node_modules/unpipe/index.js69
-rw-r--r--node_modules/unpipe/package.json27
-rw-r--r--node_modules/utils-merge/.travis.yml6
-rw-r--r--node_modules/utils-merge/LICENSE20
-rw-r--r--node_modules/utils-merge/README.md34
-rw-r--r--node_modules/utils-merge/index.js23
-rw-r--r--node_modules/utils-merge/package.json39
-rw-r--r--node_modules/when/CHANGES.md448
-rw-r--r--node_modules/when/LICENSE.txt24
-rw-r--r--node_modules/when/README.md106
-rw-r--r--node_modules/when/callbacks.js262
-rw-r--r--node_modules/when/cancelable.js54
-rw-r--r--node_modules/when/delay.js27
-rw-r--r--node_modules/when/dist/browser/when.debug.js4059
-rw-r--r--node_modules/when/dist/browser/when.debug.js.map87
-rw-r--r--node_modules/when/dist/browser/when.js3624
-rw-r--r--node_modules/when/dist/browser/when.js.map75
-rw-r--r--node_modules/when/dist/browser/when.min.js2
-rw-r--r--node_modules/when/dist/browser/when.min.js.map1
-rw-r--r--node_modules/when/es6-shim/Promise.browserify-es6.js13
-rw-r--r--node_modules/when/es6-shim/Promise.js1299
-rw-r--r--node_modules/when/es6-shim/Promise.js.map25
-rw-r--r--node_modules/when/es6-shim/Promise.min.js2
-rw-r--r--node_modules/when/es6-shim/Promise.min.js.map1
-rw-r--r--node_modules/when/es6-shim/README.md5
-rw-r--r--node_modules/when/function.js104
-rw-r--r--node_modules/when/generator.js105
-rw-r--r--node_modules/when/guard.js72
-rw-r--r--node_modules/when/keys.js114
-rw-r--r--node_modules/when/lib/Promise.js17
-rw-r--r--node_modules/when/lib/Scheduler.js80
-rw-r--r--node_modules/when/lib/TimeoutError.js27
-rw-r--r--node_modules/when/lib/apply.js55
-rw-r--r--node_modules/when/lib/decorators/array.js299
-rw-r--r--node_modules/when/lib/decorators/flow.js160
-rw-r--r--node_modules/when/lib/decorators/fold.js27
-rw-r--r--node_modules/when/lib/decorators/inspect.js20
-rw-r--r--node_modules/when/lib/decorators/iterate.js65
-rw-r--r--node_modules/when/lib/decorators/progress.js24
-rw-r--r--node_modules/when/lib/decorators/timed.js78
-rw-r--r--node_modules/when/lib/decorators/unhandledRejection.js86
-rw-r--r--node_modules/when/lib/decorators/with.js38
-rw-r--r--node_modules/when/lib/env.js73
-rw-r--r--node_modules/when/lib/format.js56
-rw-r--r--node_modules/when/lib/liftAll.js28
-rw-r--r--node_modules/when/lib/makePromise.js955
-rw-r--r--node_modules/when/lib/state.js35
-rw-r--r--node_modules/when/monitor.js17
-rw-r--r--node_modules/when/monitor/ConsoleReporter.js106
-rw-r--r--node_modules/when/monitor/PromiseMonitor.js197
-rw-r--r--node_modules/when/monitor/README.md3
-rw-r--r--node_modules/when/monitor/console.js14
-rw-r--r--node_modules/when/monitor/error.js86
-rw-r--r--node_modules/when/node.js282
-rw-r--r--node_modules/when/node/function.js13
-rw-r--r--node_modules/when/package.json102
-rw-r--r--node_modules/when/parallel.js39
-rw-r--r--node_modules/when/pipeline.js50
-rw-r--r--node_modules/when/poll.js114
-rw-r--r--node_modules/when/scripts/browserify-tests.js23
-rw-r--r--node_modules/when/scripts/browserify.js83
-rw-r--r--node_modules/when/sequence.js46
-rw-r--r--node_modules/when/timeout.js27
-rw-r--r--node_modules/when/unfold.js17
-rw-r--r--node_modules/when/unfold/list.js32
-rw-r--r--node_modules/when/when.js228
-rw-r--r--node_modules/wordwrap/LICENSE18
-rw-r--r--node_modules/wordwrap/package.json67
-rw-r--r--node_modules/wordwrap/test/break.js30
-rw-r--r--node_modules/wordwrap/test/wrap.js24
-rw-r--r--node_modules/xml2js/LICENSE19
-rw-r--r--node_modules/xml2js/README.md395
-rw-r--r--node_modules/xml2js/lib/bom.js12
-rw-r--r--node_modules/xml2js/lib/processors.js34
-rw-r--r--node_modules/xml2js/lib/xml2js.js543
-rw-r--r--node_modules/xml2js/package.json85
-rw-r--r--node_modules/xmlbuilder/.npmignore5
-rw-r--r--node_modules/xmlbuilder/LICENSE21
-rw-r--r--node_modules/xmlbuilder/README.md86
-rw-r--r--node_modules/xmlbuilder/lib/XMLAttribute.js32
-rw-r--r--node_modules/xmlbuilder/lib/XMLBuilder.js69
-rw-r--r--node_modules/xmlbuilder/lib/XMLCData.js49
-rw-r--r--node_modules/xmlbuilder/lib/XMLComment.js49
-rw-r--r--node_modules/xmlbuilder/lib/XMLDTDAttList.js68
-rw-r--r--node_modules/xmlbuilder/lib/XMLDTDElement.js46
-rw-r--r--node_modules/xmlbuilder/lib/XMLDTDEntity.js84
-rw-r--r--node_modules/xmlbuilder/lib/XMLDTDNotation.js56
-rw-r--r--node_modules/xmlbuilder/lib/XMLDeclaration.js65
-rw-r--r--node_modules/xmlbuilder/lib/XMLDocType.js188
-rw-r--r--node_modules/xmlbuilder/lib/XMLElement.js212
-rw-r--r--node_modules/xmlbuilder/lib/XMLNode.js331
-rw-r--r--node_modules/xmlbuilder/lib/XMLProcessingInstruction.js51
-rw-r--r--node_modules/xmlbuilder/lib/XMLRaw.js49
-rw-r--r--node_modules/xmlbuilder/lib/XMLStringifier.js170
-rw-r--r--node_modules/xmlbuilder/lib/XMLText.js49
-rw-r--r--node_modules/xmlbuilder/lib/index.js14
-rw-r--r--node_modules/xmlbuilder/package.json39
-rw-r--r--node_modules/yargs-parser/CHANGELOG.md15
-rw-r--r--node_modules/yargs-parser/README.md2
-rw-r--r--node_modules/yargs-parser/index.js8
-rw-r--r--node_modules/yargs-parser/package.json2
-rw-r--r--node_modules/yargs/node_modules/cliui/CHANGELOG.md15
-rw-r--r--node_modules/yargs/node_modules/cliui/LICENSE.txt14
-rw-r--r--node_modules/yargs/node_modules/cliui/README.md110
-rw-r--r--node_modules/yargs/node_modules/cliui/index.js316
-rw-r--r--node_modules/yargs/node_modules/cliui/package.json64
-rw-r--r--package.json20
-rw-r--r--yarn.lock1920
3299 files changed, 20142 insertions, 246613 deletions
diff --git a/gulpfile.js b/gulpfile.js
index 3141684ab..ec8321dc0 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -43,7 +43,6 @@ const debug = require("gulp-debug");
const glob = require("glob");
const jsonTransform = require("gulp-json-transform");
const fs = require("fs");
-const del = require("del");
const through = require("through2");
const File = require("vinyl");
const Stream = require("stream").Stream;
@@ -154,10 +153,6 @@ function concatStreams (/*streams...*/) {
}
-gulp.task("clean", function () {
- return del("build/ext");
-});
-
gulp.task("dist-prod", ["clean", "compile-prod"], function () {
return vfs.src(paths.dist, {base: ".", stripBOM: false})
diff --git a/node_modules/abbrev/LICENSE b/node_modules/abbrev/LICENSE
deleted file mode 100644
index 19129e315..000000000
--- a/node_modules/abbrev/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/abbrev/README.md b/node_modules/abbrev/README.md
deleted file mode 100644
index 99746fe67..000000000
--- a/node_modules/abbrev/README.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# abbrev-js
-
-Just like [ruby's Abbrev](http://apidock.com/ruby/Abbrev).
-
-Usage:
-
- var abbrev = require("abbrev");
- abbrev("foo", "fool", "folding", "flop");
-
- // returns:
- { fl: 'flop'
- , flo: 'flop'
- , flop: 'flop'
- , fol: 'folding'
- , fold: 'folding'
- , foldi: 'folding'
- , foldin: 'folding'
- , folding: 'folding'
- , foo: 'foo'
- , fool: 'fool'
- }
-
-This is handy for command-line scripts, or other cases where you want to be able to accept shorthands.
diff --git a/node_modules/abbrev/abbrev.js b/node_modules/abbrev/abbrev.js
deleted file mode 100644
index 69cfeac52..000000000
--- a/node_modules/abbrev/abbrev.js
+++ /dev/null
@@ -1,62 +0,0 @@
-
-module.exports = exports = abbrev.abbrev = abbrev
-
-abbrev.monkeyPatch = monkeyPatch
-
-function monkeyPatch () {
- Object.defineProperty(Array.prototype, 'abbrev', {
- value: function () { return abbrev(this) },
- enumerable: false, configurable: true, writable: true
- })
-
- Object.defineProperty(Object.prototype, 'abbrev', {
- value: function () { return abbrev(Object.keys(this)) },
- enumerable: false, configurable: true, writable: true
- })
-}
-
-function abbrev (list) {
- if (arguments.length !== 1 || !Array.isArray(list)) {
- list = Array.prototype.slice.call(arguments, 0)
- }
- for (var i = 0, l = list.length, args = [] ; i < l ; i ++) {
- args[i] = typeof list[i] === "string" ? list[i] : String(list[i])
- }
-
- // sort them lexicographically, so that they're next to their nearest kin
- args = args.sort(lexSort)
-
- // walk through each, seeing how much it has in common with the next and previous
- var abbrevs = {}
- , prev = ""
- for (var i = 0, l = args.length ; i < l ; i ++) {
- var current = args[i]
- , next = args[i + 1] || ""
- , nextMatches = true
- , prevMatches = true
- if (current === next) continue
- for (var j = 0, cl = current.length ; j < cl ; j ++) {
- var curChar = current.charAt(j)
- nextMatches = nextMatches && curChar === next.charAt(j)
- prevMatches = prevMatches && curChar === prev.charAt(j)
- if (!nextMatches && !prevMatches) {
- j ++
- break
- }
- }
- prev = current
- if (j === cl) {
- abbrevs[current] = current
- continue
- }
- for (var a = current.substr(0, j) ; j <= cl ; j ++) {
- abbrevs[a] = current
- a += current.charAt(j)
- }
- }
- return abbrevs
-}
-
-function lexSort (a, b) {
- return a === b ? 0 : a > b ? 1 : -1
-}
diff --git a/node_modules/abbrev/package.json b/node_modules/abbrev/package.json
deleted file mode 100644
index d794c03a3..000000000
--- a/node_modules/abbrev/package.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "name": "abbrev",
- "version": "1.0.9",
- "description": "Like ruby's abbrev module, but in js",
- "author": "Isaac Z. Schlueter <i@izs.me>",
- "main": "abbrev.js",
- "scripts": {
- "test": "tap test.js --cov"
- },
- "repository": "http://github.com/isaacs/abbrev-js",
- "license": "ISC",
- "devDependencies": {
- "tap": "^5.7.2"
- },
- "files": [
- "abbrev.js"
- ]
-}
diff --git a/node_modules/adm-zip/README.md b/node_modules/adm-zip/README.md
deleted file mode 100644
index 030fab8a7..000000000
--- a/node_modules/adm-zip/README.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# ADM-ZIP for NodeJS
-
-ADM-ZIP is a pure JavaScript implementation for zip data compression for [NodeJS](http://nodejs.org/).
-
-# Installation
-
-With [npm](http://npmjs.org) do:
-
- $ npm install adm-zip
-
-## What is it good for?
-The library allows you to:
-
-* decompress zip files directly to disk or in memory buffers
-* compress files and store them to disk in .zip format or in compressed buffers
-* update content of/add new/delete files from an existing .zip
-
-# Dependencies
-There are no other nodeJS libraries that ADM-ZIP is dependent of
-
-# Examples
-
-## Basic usage
-```javascript
-
- var AdmZip = require('adm-zip');
-
- // reading archives
- var zip = new AdmZip("./my_file.zip");
- var zipEntries = zip.getEntries(); // an array of ZipEntry records
-
- zipEntries.forEach(function(zipEntry) {
- console.log(zipEntry.toString()); // outputs zip entries information
- if (zipEntry.entryName == "my_file.txt") {
- console.log(zipEntry.data.toString('utf8'));
- }
- });
- // outputs the content of some_folder/my_file.txt
- console.log(zip.readAsText("some_folder/my_file.txt"));
- // extracts the specified file to the specified location
- zip.extractEntryTo(/*entry name*/"some_folder/my_file.txt", /*target path*/"/home/me/tempfolder", /*maintainEntryPath*/false, /*overwrite*/true);
- // extracts everything
- zip.extractAllTo(/*target path*/"/home/me/zipcontent/", /*overwrite*/true);
-
-
- // creating archives
- var zip = new AdmZip();
-
- // add file directly
- zip.addFile("test.txt", new Buffer("inner content of the file"), "entry comment goes here");
- // add local file
- zip.addLocalFile("/home/me/some_picture.png");
- // get everything as a buffer
- var willSendthis = zip.toBuffer();
- // or write everything to disk
- zip.writeZip(/*target file name*/"/home/me/files.zip");
-
-
- // ... more examples in the wiki
-```
-
-For more detailed information please check out the [wiki](https://github.com/cthackers/adm-zip/wiki).
-
-[![build status](https://secure.travis-ci.org/cthackers/adm-zip.png)](http://travis-ci.org/cthackers/adm-zip)
diff --git a/node_modules/adm-zip/adm-zip.js b/node_modules/adm-zip/adm-zip.js
deleted file mode 100644
index 26736bb02..000000000
--- a/node_modules/adm-zip/adm-zip.js
+++ /dev/null
@@ -1,475 +0,0 @@
-var fs = require("fs"),
- pth = require("path");
-
-fs.existsSync = fs.existsSync || pth.existsSync;
-
-var ZipEntry = require("./zipEntry"),
- ZipFile = require("./zipFile"),
- Utils = require("./util");
-
-module.exports = function(/*String*/input) {
- var _zip = undefined,
- _filename = "";
-
- if (input && typeof input === "string") { // load zip file
- if (fs.existsSync(input)) {
- _filename = input;
- _zip = new ZipFile(input, Utils.Constants.FILE);
- } else {
- throw Utils.Errors.INVALID_FILENAME;
- }
- } else if(input && Buffer.isBuffer(input)) { // load buffer
- _zip = new ZipFile(input, Utils.Constants.BUFFER);
- } else { // create new zip file
- _zip = new ZipFile(null, Utils.Constants.NONE);
- }
-
- function getEntry(/*Object*/entry) {
- if (entry && _zip) {
- var item;
- // If entry was given as a file name
- if (typeof entry === "string")
- item = _zip.getEntry(entry);
- // if entry was given as a ZipEntry object
- if (typeof entry === "object" && entry.entryName != undefined && entry.header != undefined)
- item = _zip.getEntry(entry.entryName);
-
- if (item) {
- return item;
- }
- }
- return null;
- }
-
- return {
- /**
- * Extracts the given entry from the archive and returns the content as a Buffer object
- * @param entry ZipEntry object or String with the full path of the entry
- *
- * @return Buffer or Null in case of error
- */
- readFile : function(/*Object*/entry) {
- var item = getEntry(entry);
- return item && item.getData() || null;
- },
-
- /**
- * Asynchronous readFile
- * @param entry ZipEntry object or String with the full path of the entry
- * @param callback
- *
- * @return Buffer or Null in case of error
- */
- readFileAsync : function(/*Object*/entry, /*Function*/callback) {
- var item = getEntry(entry);
- if (item) {
- item.getDataAsync(callback);
- } else {
- callback(null,"getEntry failed for:" + entry)
- }
- },
-
- /**
- * Extracts the given entry from the archive and returns the content as plain text in the given encoding
- * @param entry ZipEntry object or String with the full path of the entry
- * @param encoding Optional. If no encoding is specified utf8 is used
- *
- * @return String
- */
- readAsText : function(/*Object*/entry, /*String - Optional*/encoding) {
- var item = getEntry(entry);
- if (item) {
- var data = item.getData();
- if (data && data.length) {
- return data.toString(encoding || "utf8");
- }
- }
- return "";
- },
-
- /**
- * Asynchronous readAsText
- * @param entry ZipEntry object or String with the full path of the entry
- * @param callback
- * @param encoding Optional. If no encoding is specified utf8 is used
- *
- * @return String
- */
- readAsTextAsync : function(/*Object*/entry, /*Function*/callback, /*String - Optional*/encoding) {
- var item = getEntry(entry);
- if (item) {
- item.getDataAsync(function(data) {
- if (data && data.length) {
- callback(data.toString(encoding || "utf8"));
- } else {
- callback("");
- }
- })
- } else {
- callback("");
- }
- },
-
- /**
- * Remove the entry from the file or the entry and all it's nested directories and files if the given entry is a directory
- *
- * @param entry
- */
- deleteFile : function(/*Object*/entry) { // @TODO: test deleteFile
- var item = getEntry(entry);
- if (item) {
- _zip.deleteEntry(item.entryName);
- }
- },
-
- /**
- * Adds a comment to the zip. The zip must be rewritten after adding the comment.
- *
- * @param comment
- */
- addZipComment : function(/*String*/comment) { // @TODO: test addZipComment
- _zip.comment = comment;
- },
-
- /**
- * Returns the zip comment
- *
- * @return String
- */
- getZipComment : function() {
- return _zip.comment || '';
- },
-
- /**
- * Adds a comment to a specified zipEntry. The zip must be rewritten after adding the comment
- * The comment cannot exceed 65535 characters in length
- *
- * @param entry
- * @param comment
- */
- addZipEntryComment : function(/*Object*/entry,/*String*/comment) {
- var item = getEntry(entry);
- if (item) {
- item.comment = comment;
- }
- },
-
- /**
- * Returns the comment of the specified entry
- *
- * @param entry
- * @return String
- */
- getZipEntryComment : function(/*Object*/entry) {
- var item = getEntry(entry);
- if (item) {
- return item.comment || '';
- }
- return ''
- },
-
- /**
- * Updates the content of an existing entry inside the archive. The zip must be rewritten after updating the content
- *
- * @param entry
- * @param content
- */
- updateFile : function(/*Object*/entry, /*Buffer*/content) {
- var item = getEntry(entry);
- if (item) {
- item.setData(content);
- }
- },
-
- /**
- * Adds a file from the disk to the archive
- *
- * @param localPath
- */
- addLocalFile : function(/*String*/localPath, /*String*/zipPath, /*String*/zipName) {
- if (fs.existsSync(localPath)) {
- if(zipPath){
- zipPath=zipPath.split("\\").join("/");
- if(zipPath.charAt(zipPath.length - 1) != "/"){
- zipPath += "/";
- }
- }else{
- zipPath="";
- }
- var p = localPath.split("\\").join("/").split("/").pop();
-
- if(zipName){
- this.addFile(zipPath+zipName, fs.readFileSync(localPath), "", 0)
- }else{
- this.addFile(zipPath+p, fs.readFileSync(localPath), "", 0)
- }
- } else {
- throw Utils.Errors.FILE_NOT_FOUND.replace("%s", localPath);
- }
- },
-
- /**
- * Adds a local directory and all its nested files and directories to the archive
- *
- * @param localPath
- * @param zipPath optional path inside zip
- * @param filter optional RegExp or Function if files match will
- * be included.
- */
- addLocalFolder : function(/*String*/localPath, /*String*/zipPath, /*RegExp|Function*/filter) {
- if (filter === undefined) {
- filter = function() { return true; };
- } else if (filter instanceof RegExp) {
- filter = function(filter) {
- return function(filename) {
- return filter.test(filename);
- }
- }(filter);
- }
-
- if(zipPath){
- zipPath=zipPath.split("\\").join("/");
- if(zipPath.charAt(zipPath.length - 1) != "/"){
- zipPath += "/";
- }
- }else{
- zipPath="";
- }
- localPath = localPath.split("\\").join("/"); //windows fix
- localPath = pth.normalize(localPath);
- if (localPath.charAt(localPath.length - 1) != "/")
- localPath += "/";
-
- if (fs.existsSync(localPath)) {
-
- var items = Utils.findFiles(localPath),
- self = this;
-
- if (items.length) {
- items.forEach(function(path) {
- var p = path.split("\\").join("/").replace( new RegExp(localPath, 'i'), ""); //windows fix
- if (filter(p)) {
- if (p.charAt(p.length - 1) !== "/") {
- self.addFile(zipPath+p, fs.readFileSync(path), "", 0)
- } else {
- self.addFile(zipPath+p, new Buffer(0), "", 0)
- }
- }
- });
- }
- } else {
- throw Utils.Errors.FILE_NOT_FOUND.replace("%s", localPath);
- }
- },
-
- /**
- * Allows you to create a entry (file or directory) in the zip file.
- * If you want to create a directory the entryName must end in / and a null buffer should be provided.
- * Comment and attributes are optional
- *
- * @param entryName
- * @param content
- * @param comment
- * @param attr
- */
- addFile : function(/*String*/entryName, /*Buffer*/content, /*String*/comment, /*Number*/attr) {
- var entry = new ZipEntry();
- entry.entryName = entryName;
- entry.comment = comment || "";
- entry.attr = attr || 438; //0666;
- if (entry.isDirectory && content.length) {
- // throw Utils.Errors.DIRECTORY_CONTENT_ERROR;
- }
- entry.setData(content);
- _zip.setEntry(entry);
- },
-
- /**
- * Returns an array of ZipEntry objects representing the files and folders inside the archive
- *
- * @return Array
- */
- getEntries : function() {
- if (_zip) {
- return _zip.entries;
- } else {
- return [];
- }
- },
-
- /**
- * Returns a ZipEntry object representing the file or folder specified by ``name``.
- *
- * @param name
- * @return ZipEntry
- */
- getEntry : function(/*String*/name) {
- return getEntry(name);
- },
-
- /**
- * Extracts the given entry to the given targetPath
- * If the entry is a directory inside the archive, the entire directory and it's subdirectories will be extracted
- *
- * @param entry ZipEntry object or String with the full path of the entry
- * @param targetPath Target folder where to write the file
- * @param maintainEntryPath If maintainEntryPath is true and the entry is inside a folder, the entry folder
- * will be created in targetPath as well. Default is TRUE
- * @param overwrite If the file already exists at the target path, the file will be overwriten if this is true.
- * Default is FALSE
- *
- * @return Boolean
- */
- extractEntryTo : function(/*Object*/entry, /*String*/targetPath, /*Boolean*/maintainEntryPath, /*Boolean*/overwrite) {
- overwrite = overwrite || false;
- maintainEntryPath = typeof maintainEntryPath == "undefined" ? true : maintainEntryPath;
-
- var item = getEntry(entry);
- if (!item) {
- throw Utils.Errors.NO_ENTRY;
- }
-
- var target = pth.resolve(targetPath, maintainEntryPath ? item.entryName : pth.basename(item.entryName));
-
- if (item.isDirectory) {
- target = pth.resolve(target, "..");
- var children = _zip.getEntryChildren(item);
- children.forEach(function(child) {
- if (child.isDirectory) return;
- var content = child.getData();
- if (!content) {
- throw Utils.Errors.CANT_EXTRACT_FILE;
- }
- Utils.writeFileTo(pth.resolve(targetPath, maintainEntryPath ? child.entryName : child.entryName.substr(item.entryName.length)), content, overwrite);
- });
- return true;
- }
-
- var content = item.getData();
- if (!content) throw Utils.Errors.CANT_EXTRACT_FILE;
-
- if (fs.existsSync(target) && !overwrite) {
- throw Utils.Errors.CANT_OVERRIDE;
- }
- Utils.writeFileTo(target, content, overwrite);
-
- return true;
- },
-
- /**
- * Extracts the entire archive to the given location
- *
- * @param targetPath Target location
- * @param overwrite If the file already exists at the target path, the file will be overwriten if this is true.
- * Default is FALSE
- */
- extractAllTo : function(/*String*/targetPath, /*Boolean*/overwrite) {
- overwrite = overwrite || false;
- if (!_zip) {
- throw Utils.Errors.NO_ZIP;
- }
-
- _zip.entries.forEach(function(entry) {
- if (entry.isDirectory) {
- Utils.makeDir(pth.resolve(targetPath, entry.entryName.toString()));
- return;
- }
- var content = entry.getData();
- if (!content) {
- throw Utils.Errors.CANT_EXTRACT_FILE + "2";
- }
- Utils.writeFileTo(pth.resolve(targetPath, entry.entryName.toString()), content, overwrite);
- })
- },
-
- /**
- * Asynchronous extractAllTo
- *
- * @param targetPath Target location
- * @param overwrite If the file already exists at the target path, the file will be overwriten if this is true.
- * Default is FALSE
- * @param callback
- */
- extractAllToAsync : function(/*String*/targetPath, /*Boolean*/overwrite, /*Function*/callback) {
- overwrite = overwrite || false;
- if (!_zip) {
- callback(new Error(Utils.Errors.NO_ZIP));
- return;
- }
-
- var entries = _zip.entries;
- var i = entries.length;
- entries.forEach(function(entry) {
- if(i <= 0) return; // Had an error already
-
- if (entry.isDirectory) {
- Utils.makeDir(pth.resolve(targetPath, entry.entryName.toString()));
- if(--i == 0)
- callback(undefined);
- return;
- }
- entry.getDataAsync(function(content) {
- if(i <= 0) return;
- if (!content) {
- i = 0;
- callback(new Error(Utils.Errors.CANT_EXTRACT_FILE + "2"));
- return;
- }
- Utils.writeFileToAsync(pth.resolve(targetPath, entry.entryName.toString()), content, overwrite, function(succ) {
- if(i <= 0) return;
-
- if(!succ) {
- i = 0;
- callback(new Error('Unable to write'));
- return;
- }
-
- if(--i == 0)
- callback(undefined);
- });
-
- });
- })
- },
-
- /**
- * Writes the newly created zip file to disk at the specified location or if a zip was opened and no ``targetFileName`` is provided, it will overwrite the opened zip
- *
- * @param targetFileName
- * @param callback
- */
- writeZip : function(/*String*/targetFileName, /*Function*/callback) {
- if (arguments.length == 1) {
- if (typeof targetFileName == "function") {
- callback = targetFileName;
- targetFileName = "";
- }
- }
-
- if (!targetFileName && _filename) {
- targetFileName = _filename;
- }
- if (!targetFileName) return;
-
- var zipData = _zip.compressToBuffer();
- if (zipData) {
- var ok = Utils.writeFileTo(targetFileName, zipData, true);
- if (typeof callback == 'function') callback(!ok? new Error("failed"): null, "");
- }
- },
-
- /**
- * Returns the content of the entire zip file as a Buffer object
- *
- * @return Buffer
- */
- toBuffer : function(/*Function*/onSuccess,/*Function*/onFail,/*Function*/onItemStart,/*Function*/onItemEnd) {
- this.valueOf = 2;
- if (typeof onSuccess == "function") {
- _zip.toAsyncBuffer(onSuccess,onFail,onItemStart,onItemEnd);
- return null;
- }
- return _zip.compressToBuffer()
- }
- }
-};
diff --git a/node_modules/adm-zip/headers/entryHeader.js b/node_modules/adm-zip/headers/entryHeader.js
deleted file mode 100644
index a29c70f15..000000000
--- a/node_modules/adm-zip/headers/entryHeader.js
+++ /dev/null
@@ -1,261 +0,0 @@
-var Utils = require("../util"),
- Constants = Utils.Constants;
-
-/* The central directory file header */
-module.exports = function () {
- var _verMade = 0x0A,
- _version = 0x0A,
- _flags = 0,
- _method = 0,
- _time = 0,
- _crc = 0,
- _compressedSize = 0,
- _size = 0,
- _fnameLen = 0,
- _extraLen = 0,
-
- _comLen = 0,
- _diskStart = 0,
- _inattr = 0,
- _attr = 0,
- _offset = 0;
-
- var _dataHeader = {};
-
- function setTime(val) {
- var val = new Date(val);
- _time = (val.getFullYear() - 1980 & 0x7f) << 25 // b09-16 years from 1980
- | (val.getMonth() + 1) << 21 // b05-08 month
- | val.getDay() << 16 // b00-04 hour
-
- // 2 bytes time
- | val.getHours() << 11 // b11-15 hour
- | val.getMinutes() << 5 // b05-10 minute
- | val.getSeconds() >> 1; // b00-04 seconds divided by 2
- }
-
- setTime(+new Date());
-
- return {
- get made () { return _verMade; },
- set made (val) { _verMade = val; },
-
- get version () { return _version; },
- set version (val) { _version = val },
-
- get flags () { return _flags },
- set flags (val) { _flags = val; },
-
- get method () { return _method; },
- set method (val) { _method = val; },
-
- get time () { return new Date(
- ((_time >> 25) & 0x7f) + 1980,
- ((_time >> 21) & 0x0f) - 1,
- (_time >> 16) & 0x1f,
- (_time >> 11) & 0x1f,
- (_time >> 5) & 0x3f,
- (_time & 0x1f) << 1
- );
- },
- set time (val) {
- setTime(val);
- },
-
- get crc () { return _crc; },
- set crc (val) { _crc = val; },
-
- get compressedSize () { return _compressedSize; },
- set compressedSize (val) { _compressedSize = val; },
-
- get size () { return _size; },
- set size (val) { _size = val; },
-
- get fileNameLength () { return _fnameLen; },
- set fileNameLength (val) { _fnameLen = val; },
-
- get extraLength () { return _extraLen },
- set extraLength (val) { _extraLen = val; },
-
- get commentLength () { return _comLen },
- set commentLength (val) { _comLen = val },
-
- get diskNumStart () { return _diskStart },
- set diskNumStart (val) { _diskStart = val },
-
- get inAttr () { return _inattr },
- set inAttr (val) { _inattr = val },
-
- get attr () { return _attr },
- set attr (val) { _attr = val },
-
- get offset () { return _offset },
- set offset (val) { _offset = val },
-
- get encripted () { return (_flags & 1) == 1 },
-
- get entryHeaderSize () {
- return Constants.CENHDR + _fnameLen + _extraLen + _comLen;
- },
-
- get realDataOffset () {
- return _offset + Constants.LOCHDR + _dataHeader.fnameLen + _dataHeader.extraLen;
- },
-
- get dataHeader () {
- return _dataHeader;
- },
-
- loadDataHeaderFromBinary : function(/*Buffer*/input) {
- var data = input.slice(_offset, _offset + Constants.LOCHDR);
- // 30 bytes and should start with "PK\003\004"
- if (data.readUInt32LE(0) != Constants.LOCSIG) {
- throw Utils.Errors.INVALID_LOC;
- }
- _dataHeader = {
- // version needed to extract
- version : data.readUInt16LE(Constants.LOCVER),
- // general purpose bit flag
- flags : data.readUInt16LE(Constants.LOCFLG),
- // compression method
- method : data.readUInt16LE(Constants.LOCHOW),
- // modification time (2 bytes time, 2 bytes date)
- time : data.readUInt32LE(Constants.LOCTIM),
- // uncompressed file crc-32 value
- crc : data.readUInt32LE(Constants.LOCCRC),
- // compressed size
- compressedSize : data.readUInt32LE(Constants.LOCSIZ),
- // uncompressed size
- size : data.readUInt32LE(Constants.LOCLEN),
- // filename length
- fnameLen : data.readUInt16LE(Constants.LOCNAM),
- // extra field length
- extraLen : data.readUInt16LE(Constants.LOCEXT)
- }
- },
-
- loadFromBinary : function(/*Buffer*/data) {
- // data should be 46 bytes and start with "PK 01 02"
- if (data.length != Constants.CENHDR || data.readUInt32LE(0) != Constants.CENSIG) {
- throw Utils.Errors.INVALID_CEN;
- }
- // version made by
- _verMade = data.readUInt16LE(Constants.CENVEM);
- // version needed to extract
- _version = data.readUInt16LE(Constants.CENVER);
- // encrypt, decrypt flags
- _flags = data.readUInt16LE(Constants.CENFLG);
- // compression method
- _method = data.readUInt16LE(Constants.CENHOW);
- // modification time (2 bytes time, 2 bytes date)
- _time = data.readUInt32LE(Constants.CENTIM);
- // uncompressed file crc-32 value
- _crc = data.readUInt32LE(Constants.CENCRC);
- // compressed size
- _compressedSize = data.readUInt32LE(Constants.CENSIZ);
- // uncompressed size
- _size = data.readUInt32LE(Constants.CENLEN);
- // filename length
- _fnameLen = data.readUInt16LE(Constants.CENNAM);
- // extra field length
- _extraLen = data.readUInt16LE(Constants.CENEXT);
- // file comment length
- _comLen = data.readUInt16LE(Constants.CENCOM);
- // volume number start
- _diskStart = data.readUInt16LE(Constants.CENDSK);
- // internal file attributes
- _inattr = data.readUInt16LE(Constants.CENATT);
- // external file attributes
- _attr = data.readUInt32LE(Constants.CENATX);
- // LOC header offset
- _offset = data.readUInt32LE(Constants.CENOFF);
- },
-
- dataHeaderToBinary : function() {
- // LOC header size (30 bytes)
- var data = new Buffer(Constants.LOCHDR);
- // "PK\003\004"
- data.writeUInt32LE(Constants.LOCSIG, 0);
- // version needed to extract
- data.writeUInt16LE(_version, Constants.LOCVER);
- // general purpose bit flag
- data.writeUInt16LE(_flags, Constants.LOCFLG);
- // compression method
- data.writeUInt16LE(_method, Constants.LOCHOW);
- // modification time (2 bytes time, 2 bytes date)
- data.writeUInt32LE(_time, Constants.LOCTIM);
- // uncompressed file crc-32 value
- data.writeUInt32LE(_crc, Constants.LOCCRC);
- // compressed size
- data.writeUInt32LE(_compressedSize, Constants.LOCSIZ);
- // uncompressed size
- data.writeUInt32LE(_size, Constants.LOCLEN);
- // filename length
- data.writeUInt16LE(_fnameLen, Constants.LOCNAM);
- // extra field length
- data.writeUInt16LE(_extraLen, Constants.LOCEXT);
- return data;
- },
-
- entryHeaderToBinary : function() {
- // CEN header size (46 bytes)
- var data = new Buffer(Constants.CENHDR + _fnameLen + _extraLen + _comLen);
- // "PK\001\002"
- data.writeUInt32LE(Constants.CENSIG, 0);
- // version made by
- data.writeUInt16LE(_verMade, Constants.CENVEM);
- // version needed to extract
- data.writeUInt16LE(_version, Constants.CENVER);
- // encrypt, decrypt flags
- data.writeUInt16LE(_flags, Constants.CENFLG);
- // compression method
- data.writeUInt16LE(_method, Constants.CENHOW);
- // modification time (2 bytes time, 2 bytes date)
- data.writeUInt32LE(_time, Constants.CENTIM);
- // uncompressed file crc-32 value
- data.writeInt32LE(_crc, Constants.CENCRC, true);
- // compressed size
- data.writeUInt32LE(_compressedSize, Constants.CENSIZ);
- // uncompressed size
- data.writeUInt32LE(_size, Constants.CENLEN);
- // filename length
- data.writeUInt16LE(_fnameLen, Constants.CENNAM);
- // extra field length
- data.writeUInt16LE(_extraLen, Constants.CENEXT);
- // file comment length
- data.writeUInt16LE(_comLen, Constants.CENCOM);
- // volume number start
- data.writeUInt16LE(_diskStart, Constants.CENDSK);
- // internal file attributes
- data.writeUInt16LE(_inattr, Constants.CENATT);
- // external file attributes
- data.writeUInt32LE(_attr, Constants.CENATX);
- // LOC header offset
- data.writeUInt32LE(_offset, Constants.CENOFF);
- // fill all with
- data.fill(0x00, Constants.CENHDR);
- return data;
- },
-
- toString : function() {
- return '{\n' +
- '\t"made" : ' + _verMade + ",\n" +
- '\t"version" : ' + _version + ",\n" +
- '\t"flags" : ' + _flags + ",\n" +
- '\t"method" : ' + Utils.methodToString(_method) + ",\n" +
- '\t"time" : ' + _time + ",\n" +
- '\t"crc" : 0x' + _crc.toString(16).toUpperCase() + ",\n" +
- '\t"compressedSize" : ' + _compressedSize + " bytes,\n" +
- '\t"size" : ' + _size + " bytes,\n" +
- '\t"fileNameLength" : ' + _fnameLen + ",\n" +
- '\t"extraLength" : ' + _extraLen + " bytes,\n" +
- '\t"commentLength" : ' + _comLen + " bytes,\n" +
- '\t"diskNumStart" : ' + _diskStart + ",\n" +
- '\t"inAttr" : ' + _inattr + ",\n" +
- '\t"attr" : ' + _attr + ",\n" +
- '\t"offset" : ' + _offset + ",\n" +
- '\t"entryHeaderSize" : ' + (Constants.CENHDR + _fnameLen + _extraLen + _comLen) + " bytes\n" +
- '}';
- }
- }
-};
diff --git a/node_modules/adm-zip/headers/index.js b/node_modules/adm-zip/headers/index.js
deleted file mode 100644
index b8c67b96f..000000000
--- a/node_modules/adm-zip/headers/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-exports.EntryHeader = require("./entryHeader");
-exports.MainHeader = require("./mainHeader");
diff --git a/node_modules/adm-zip/headers/mainHeader.js b/node_modules/adm-zip/headers/mainHeader.js
deleted file mode 100644
index 002bc8a74..000000000
--- a/node_modules/adm-zip/headers/mainHeader.js
+++ /dev/null
@@ -1,80 +0,0 @@
-var Utils = require("../util"),
- Constants = Utils.Constants;
-
-/* The entries in the end of central directory */
-module.exports = function () {
- var _volumeEntries = 0,
- _totalEntries = 0,
- _size = 0,
- _offset = 0,
- _commentLength = 0;
-
- return {
- get diskEntries () { return _volumeEntries },
- set diskEntries (/*Number*/val) { _volumeEntries = _totalEntries = val; },
-
- get totalEntries () { return _totalEntries },
- set totalEntries (/*Number*/val) { _totalEntries = _volumeEntries = val; },
-
- get size () { return _size },
- set size (/*Number*/val) { _size = val; },
-
- get offset () { return _offset },
- set offset (/*Number*/val) { _offset = val; },
-
- get commentLength () { return _commentLength },
- set commentLength (/*Number*/val) { _commentLength = val; },
-
- get mainHeaderSize () {
- return Constants.ENDHDR + _commentLength;
- },
-
- loadFromBinary : function(/*Buffer*/data) {
- // data should be 22 bytes and start with "PK 05 06"
- if (data.length != Constants.ENDHDR || data.readUInt32LE(0) != Constants.ENDSIG)
- throw Utils.Errors.INVALID_END;
-
- // number of entries on this volume
- _volumeEntries = data.readUInt16LE(Constants.ENDSUB);
- // total number of entries
- _totalEntries = data.readUInt16LE(Constants.ENDTOT);
- // central directory size in bytes
- _size = data.readUInt32LE(Constants.ENDSIZ);
- // offset of first CEN header
- _offset = data.readUInt32LE(Constants.ENDOFF);
- // zip file comment length
- _commentLength = data.readUInt16LE(Constants.ENDCOM);
- },
-
- toBinary : function() {
- var b = new Buffer(Constants.ENDHDR + _commentLength);
- // "PK 05 06" signature
- b.writeUInt32LE(Constants.ENDSIG, 0);
- b.writeUInt32LE(0, 4);
- // number of entries on this volume
- b.writeUInt16LE(_volumeEntries, Constants.ENDSUB);
- // total number of entries
- b.writeUInt16LE(_totalEntries, Constants.ENDTOT);
- // central directory size in bytes
- b.writeUInt32LE(_size, Constants.ENDSIZ);
- // offset of first CEN header
- b.writeUInt32LE(_offset, Constants.ENDOFF);
- // zip file comment length
- b.writeUInt16LE(_commentLength, Constants.ENDCOM);
- // fill comment memory with spaces so no garbage is left there
- b.fill(" ", Constants.ENDHDR);
-
- return b;
- },
-
- toString : function() {
- return '{\n' +
- '\t"diskEntries" : ' + _volumeEntries + ",\n" +
- '\t"totalEntries" : ' + _totalEntries + ",\n" +
- '\t"size" : ' + _size + " bytes,\n" +
- '\t"offset" : 0x' + _offset.toString(16).toUpperCase() + ",\n" +
- '\t"commentLength" : 0x' + _commentLength + "\n" +
- '}';
- }
- }
-}; \ No newline at end of file
diff --git a/node_modules/adm-zip/methods/deflater.js b/node_modules/adm-zip/methods/deflater.js
deleted file mode 100644
index 326794349..000000000
--- a/node_modules/adm-zip/methods/deflater.js
+++ /dev/null
@@ -1,1578 +0,0 @@
-/*
- * $Id: rawdeflate.js,v 0.5 2013/04/09 14:25:38 dankogai Exp dankogai $
- *
- * GNU General Public License, version 2 (GPL-2.0)
- * http://opensource.org/licenses/GPL-2.0
- * Original:
- * http://www.onicos.com/staff/iz/amuse/javascript/expert/deflate.txt
- */
-function JSDeflater(/*inbuff*/inbuf) {
-
- /* Copyright (C) 1999 Masanao Izumo <iz@onicos.co.jp>
- * Version: 1.0.1
- * LastModified: Dec 25 1999
- */
-
- var WSIZE = 32768, // Sliding Window size
- zip_STORED_BLOCK = 0,
- zip_STATIC_TREES = 1,
- zip_DYN_TREES = 2,
- zip_DEFAULT_LEVEL = 6,
- zip_FULL_SEARCH = true,
- zip_INBUFSIZ = 32768, // Input buffer size
- zip_INBUF_EXTRA = 64, // Extra buffer
- zip_OUTBUFSIZ = 1024 * 8,
- zip_window_size = 2 * WSIZE,
- MIN_MATCH = 3,
- MAX_MATCH = 258,
- zip_BITS = 16,
- LIT_BUFSIZE = 0x2000,
- zip_HASH_BITS = 13,
- zip_DIST_BUFSIZE = LIT_BUFSIZE,
- zip_HASH_SIZE = 1 << zip_HASH_BITS,
- zip_HASH_MASK = zip_HASH_SIZE - 1,
- zip_WMASK = WSIZE - 1,
- zip_NIL = 0, // Tail of hash chains
- zip_TOO_FAR = 4096,
- zip_MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1,
- zip_MAX_DIST = WSIZE - zip_MIN_LOOKAHEAD,
- zip_SMALLEST = 1,
- zip_MAX_BITS = 15,
- zip_MAX_BL_BITS = 7,
- zip_LENGTH_CODES = 29,
- zip_LITERALS = 256,
- zip_END_BLOCK = 256,
- zip_L_CODES = zip_LITERALS + 1 + zip_LENGTH_CODES,
- zip_D_CODES = 30,
- zip_BL_CODES = 19,
- zip_REP_3_6 = 16,
- zip_REPZ_3_10 = 17,
- zip_REPZ_11_138 = 18,
- zip_HEAP_SIZE = 2 * zip_L_CODES + 1,
- zip_H_SHIFT = parseInt((zip_HASH_BITS + MIN_MATCH - 1) / MIN_MATCH);
-
- var zip_free_queue, zip_qhead, zip_qtail, zip_initflag, zip_outbuf = null, zip_outcnt, zip_outoff, zip_complete,
- zip_window, zip_d_buf, zip_l_buf, zip_prev, zip_bi_buf, zip_bi_valid, zip_block_start, zip_ins_h, zip_hash_head,
- zip_prev_match, zip_match_available, zip_match_length, zip_prev_length, zip_strstart, zip_match_start, zip_eofile,
- zip_lookahead, zip_max_chain_length, zip_max_lazy_match, zip_compr_level, zip_good_match, zip_nice_match,
- zip_dyn_ltree, zip_dyn_dtree, zip_static_ltree, zip_static_dtree, zip_bl_tree, zip_l_desc, zip_d_desc, zip_bl_desc,
- zip_bl_count, zip_heap, zip_heap_len, zip_heap_max, zip_depth, zip_length_code, zip_dist_code, zip_base_length,
- zip_base_dist, zip_flag_buf, zip_last_lit, zip_last_dist, zip_last_flags, zip_flags, zip_flag_bit, zip_opt_len,
- zip_static_len, zip_deflate_data, zip_deflate_pos;
-
- var zip_DeflateCT = function () {
- this.fc = 0; // frequency count or bit string
- this.dl = 0; // father node in Huffman tree or length of bit string
- };
-
- var zip_DeflateTreeDesc = function () {
- this.dyn_tree = null; // the dynamic tree
- this.static_tree = null; // corresponding static tree or NULL
- this.extra_bits = null; // extra bits for each code or NULL
- this.extra_base = 0; // base index for extra_bits
- this.elems = 0; // max number of elements in the tree
- this.max_length = 0; // max bit length for the codes
- this.max_code = 0; // largest code with non zero frequency
- };
-
- /* Values for max_lazy_match, good_match and max_chain_length, depending on
- * the desired pack level (0..9). The values given below have been tuned to
- * exclude worst case performance for pathological files. Better values may be
- * found for specific files.
- */
- var zip_DeflateConfiguration = function (a, b, c, d) {
- this.good_length = a; // reduce lazy search above this match length
- this.max_lazy = b; // do not perform lazy search above this match length
- this.nice_length = c; // quit search above this match length
- this.max_chain = d;
- };
-
- var zip_DeflateBuffer = function () {
- this.next = null;
- this.len = 0;
- this.ptr = new Array(zip_OUTBUFSIZ);
- this.off = 0;
- };
-
- /* constant tables */
- var zip_extra_lbits = new Array(
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0);
- var zip_extra_dbits = new Array(
- 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13);
- var zip_extra_blbits = new Array(
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7);
- var zip_bl_order = new Array(
- 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15);
- var zip_configuration_table = new Array(
- new zip_DeflateConfiguration(0, 0, 0, 0),
- new zip_DeflateConfiguration(4, 4, 8, 4),
- new zip_DeflateConfiguration(4, 5, 16, 8),
- new zip_DeflateConfiguration(4, 6, 32, 32),
- new zip_DeflateConfiguration(4, 4, 16, 16),
- new zip_DeflateConfiguration(8, 16, 32, 32),
- new zip_DeflateConfiguration(8, 16, 128, 128),
- new zip_DeflateConfiguration(8, 32, 128, 256),
- new zip_DeflateConfiguration(32, 128, 258, 1024),
- new zip_DeflateConfiguration(32, 258, 258, 4096));
-
-
- /* routines (deflate) */
-
- var zip_deflate_start = function (level) {
- var i;
-
- if (!level)
- level = zip_DEFAULT_LEVEL;
- else if (level < 1)
- level = 1;
- else if (level > 9)
- level = 9;
-
- zip_compr_level = level;
- zip_initflag = false;
- zip_eofile = false;
- if (zip_outbuf != null)
- return;
-
- zip_free_queue = zip_qhead = zip_qtail = null;
- zip_outbuf = new Array(zip_OUTBUFSIZ);
- zip_window = new Array(zip_window_size);
- zip_d_buf = new Array(zip_DIST_BUFSIZE);
- zip_l_buf = new Array(zip_INBUFSIZ + zip_INBUF_EXTRA);
- zip_prev = new Array(1 << zip_BITS);
- zip_dyn_ltree = new Array(zip_HEAP_SIZE);
- for (i = 0; i < zip_HEAP_SIZE; i++) zip_dyn_ltree[i] = new zip_DeflateCT();
- zip_dyn_dtree = new Array(2 * zip_D_CODES + 1);
- for (i = 0; i < 2 * zip_D_CODES + 1; i++) zip_dyn_dtree[i] = new zip_DeflateCT();
- zip_static_ltree = new Array(zip_L_CODES + 2);
- for (i = 0; i < zip_L_CODES + 2; i++) zip_static_ltree[i] = new zip_DeflateCT();
- zip_static_dtree = new Array(zip_D_CODES);
- for (i = 0; i < zip_D_CODES; i++) zip_static_dtree[i] = new zip_DeflateCT();
- zip_bl_tree = new Array(2 * zip_BL_CODES + 1);
- for (i = 0; i < 2 * zip_BL_CODES + 1; i++) zip_bl_tree[i] = new zip_DeflateCT();
- zip_l_desc = new zip_DeflateTreeDesc();
- zip_d_desc = new zip_DeflateTreeDesc();
- zip_bl_desc = new zip_DeflateTreeDesc();
- zip_bl_count = new Array(zip_MAX_BITS + 1);
- zip_heap = new Array(2 * zip_L_CODES + 1);
- zip_depth = new Array(2 * zip_L_CODES + 1);
- zip_length_code = new Array(MAX_MATCH - MIN_MATCH + 1);
- zip_dist_code = new Array(512);
- zip_base_length = new Array(zip_LENGTH_CODES);
- zip_base_dist = new Array(zip_D_CODES);
- zip_flag_buf = new Array(parseInt(LIT_BUFSIZE / 8));
- };
-
- var zip_deflate_end = function () {
- zip_free_queue = zip_qhead = zip_qtail = null;
- zip_outbuf = null;
- zip_window = null;
- zip_d_buf = null;
- zip_l_buf = null;
- zip_prev = null;
- zip_dyn_ltree = null;
- zip_dyn_dtree = null;
- zip_static_ltree = null;
- zip_static_dtree = null;
- zip_bl_tree = null;
- zip_l_desc = null;
- zip_d_desc = null;
- zip_bl_desc = null;
- zip_bl_count = null;
- zip_heap = null;
- zip_depth = null;
- zip_length_code = null;
- zip_dist_code = null;
- zip_base_length = null;
- zip_base_dist = null;
- zip_flag_buf = null;
- };
-
- var zip_reuse_queue = function (p) {
- p.next = zip_free_queue;
- zip_free_queue = p;
- };
-
- var zip_new_queue = function () {
- var p;
-
- if (zip_free_queue != null) {
- p = zip_free_queue;
- zip_free_queue = zip_free_queue.next;
- }
- else
- p = new zip_DeflateBuffer();
- p.next = null;
- p.len = p.off = 0;
-
- return p;
- };
-
- var zip_head1 = function (i) {
- return zip_prev[WSIZE + i];
- };
-
- var zip_head2 = function (i, val) {
- return zip_prev[WSIZE + i] = val;
- };
-
- /* put_byte is used for the compressed output, put_ubyte for the
- * uncompressed output. However unlzw() uses window for its
- * suffix table instead of its output buffer, so it does not use put_ubyte
- * (to be cleaned up).
- */
- var zip_put_byte = function (c) {
- zip_outbuf[zip_outoff + zip_outcnt++] = c;
- if (zip_outoff + zip_outcnt == zip_OUTBUFSIZ)
- zip_qoutbuf();
- };
-
- /* Output a 16 bit value, lsb first */
- var zip_put_short = function (w) {
- w &= 0xffff;
- if (zip_outoff + zip_outcnt < zip_OUTBUFSIZ - 2) {
- zip_outbuf[zip_outoff + zip_outcnt++] = (w & 0xff);
- zip_outbuf[zip_outoff + zip_outcnt++] = (w >>> 8);
- } else {
- zip_put_byte(w & 0xff);
- zip_put_byte(w >>> 8);
- }
- };
-
- /* ==========================================================================
- * Insert string s in the dictionary and set match_head to the previous head
- * of the hash chain (the most recent string with same hash key). Return
- * the previous length of the hash chain.
- * IN assertion: all calls to to INSERT_STRING are made with consecutive
- * input characters and the first MIN_MATCH bytes of s are valid
- * (except for the last MIN_MATCH-1 bytes of the input file).
- */
- var zip_INSERT_STRING = function () {
- zip_ins_h = ((zip_ins_h << zip_H_SHIFT)
- ^ (zip_window[zip_strstart + MIN_MATCH - 1] & 0xff))
- & zip_HASH_MASK;
- zip_hash_head = zip_head1(zip_ins_h);
- zip_prev[zip_strstart & zip_WMASK] = zip_hash_head;
- zip_head2(zip_ins_h, zip_strstart);
- };
-
- /* Send a code of the given tree. c and tree must not have side effects */
- var zip_SEND_CODE = function (c, tree) {
- zip_send_bits(tree[c].fc, tree[c].dl);
- };
-
- /* Mapping from a distance to a distance code. dist is the distance - 1 and
- * must not have side effects. dist_code[256] and dist_code[257] are never
- * used.
- */
- var zip_D_CODE = function (dist) {
- return (dist < 256 ? zip_dist_code[dist]
- : zip_dist_code[256 + (dist >> 7)]) & 0xff;
- };
-
- /* ==========================================================================
- * Compares to subtrees, using the tree depth as tie breaker when
- * the subtrees have equal frequency. This minimizes the worst case length.
- */
- var zip_SMALLER = function (tree, n, m) {
- return tree[n].fc < tree[m].fc ||
- (tree[n].fc == tree[m].fc && zip_depth[n] <= zip_depth[m]);
- };
-
- /* ==========================================================================
- * read string data
- */
- var zip_read_buff = function (buff, offset, n) {
- var i;
- for (i = 0; i < n && zip_deflate_pos < zip_deflate_data.length; i++)
- buff[offset + i] =
- zip_deflate_data[zip_deflate_pos++] & 0xff;
- return i;
- };
-
- /* ==========================================================================
- * Initialize the "longest match" routines for a new file
- */
- var zip_lm_init = function () {
- var j;
-
- /* Initialize the hash table. */
- for (j = 0; j < zip_HASH_SIZE; j++)
- zip_prev[WSIZE + j] = 0;
- zip_max_lazy_match = zip_configuration_table[zip_compr_level].max_lazy;
- zip_good_match = zip_configuration_table[zip_compr_level].good_length;
- if (!zip_FULL_SEARCH)
- zip_nice_match = zip_configuration_table[zip_compr_level].nice_length;
- zip_max_chain_length = zip_configuration_table[zip_compr_level].max_chain;
-
- zip_strstart = 0;
- zip_block_start = 0;
-
- zip_lookahead = zip_read_buff(zip_window, 0, 2 * WSIZE);
- if (zip_lookahead <= 0) {
- zip_eofile = true;
- zip_lookahead = 0;
- return;
- }
- zip_eofile = false;
- /* Make sure that we always have enough lookahead. This is important
- * if input comes from a device such as a tty.
- */
- while (zip_lookahead < zip_MIN_LOOKAHEAD && !zip_eofile)
- zip_fill_window();
-
- /* If lookahead < MIN_MATCH, ins_h is garbage, but this is
- * not important since only literal bytes will be emitted.
- */
- zip_ins_h = 0;
- for (j = 0; j < MIN_MATCH - 1; j++) {
- zip_ins_h = ((zip_ins_h << zip_H_SHIFT) ^ (zip_window[j] & 0xff)) & zip_HASH_MASK;
- }
- };
-
- /* ==========================================================================
- * Set match_start to the longest match starting at the given string and
- * return its length. Matches shorter or equal to prev_length are discarded,
- * in which case the result is equal to prev_length and match_start is
- * garbage.
- * IN assertions: cur_match is the head of the hash chain for the current
- * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
- */
- var zip_longest_match = function (cur_match) {
- var chain_length = zip_max_chain_length; // max hash chain length
- var scanp = zip_strstart; // current string
- var matchp; // matched string
- var len; // length of current match
- var best_len = zip_prev_length; // best match length so far
-
- /* Stop when cur_match becomes <= limit. To simplify the code,
- * we prevent matches with the string of window index 0.
- */
- var limit = (zip_strstart > zip_MAX_DIST ? zip_strstart - zip_MAX_DIST : zip_NIL);
-
- var strendp = zip_strstart + MAX_MATCH;
- var scan_end1 = zip_window[scanp + best_len - 1];
- var scan_end = zip_window[scanp + best_len];
-
- /* Do not waste too much time if we already have a good match: */
- if (zip_prev_length >= zip_good_match)
- chain_length >>= 2;
-
- do {
- matchp = cur_match;
-
- /* Skip to next match if the match length cannot increase
- * or if the match length is less than 2:
- */
- if (zip_window[matchp + best_len] != scan_end ||
- zip_window[matchp + best_len - 1] != scan_end1 ||
- zip_window[matchp] != zip_window[scanp] ||
- zip_window[++matchp] != zip_window[scanp + 1]) {
- continue;
- }
-
- /* The check at best_len-1 can be removed because it will be made
- * again later. (This heuristic is not always a win.)
- * It is not necessary to compare scan[2] and match[2] since they
- * are always equal when the other bytes match, given that
- * the hash keys are equal and that HASH_BITS >= 8.
- */
- scanp += 2;
- matchp++;
-
- /* We check for insufficient lookahead only every 8th comparison;
- * the 256th check will be made at strstart+258.
- */
- do {
- } while (zip_window[++scanp] == zip_window[++matchp] &&
- zip_window[++scanp] == zip_window[++matchp] &&
- zip_window[++scanp] == zip_window[++matchp] &&
- zip_window[++scanp] == zip_window[++matchp] &&
- zip_window[++scanp] == zip_window[++matchp] &&
- zip_window[++scanp] == zip_window[++matchp] &&
- zip_window[++scanp] == zip_window[++matchp] &&
- zip_window[++scanp] == zip_window[++matchp] &&
- scanp < strendp);
-
- len = MAX_MATCH - (strendp - scanp);
- scanp = strendp - MAX_MATCH;
-
- if (len > best_len) {
- zip_match_start = cur_match;
- best_len = len;
- if (zip_FULL_SEARCH) {
- if (len >= MAX_MATCH) break;
- } else {
- if (len >= zip_nice_match) break;
- }
-
- scan_end1 = zip_window[scanp + best_len - 1];
- scan_end = zip_window[scanp + best_len];
- }
- } while ((cur_match = zip_prev[cur_match & zip_WMASK]) > limit
- && --chain_length != 0);
-
- return best_len;
- };
-
- /* ==========================================================================
- * Fill the window when the lookahead becomes insufficient.
- * Updates strstart and lookahead, and sets eofile if end of input file.
- * IN assertion: lookahead < MIN_LOOKAHEAD && strstart + lookahead > 0
- * OUT assertions: at least one byte has been read, or eofile is set;
- * file reads are performed for at least two bytes (required for the
- * translate_eol option).
- */
- var zip_fill_window = function () {
- var n, m;
-
- // Amount of free space at the end of the window.
- var more = zip_window_size - zip_lookahead - zip_strstart;
-
- /* If the window is almost full and there is insufficient lookahead,
- * move the upper half to the lower one to make room in the upper half.
- */
- if (more == -1) {
- /* Very unlikely, but possible on 16 bit machine if strstart == 0
- * and lookahead == 1 (input done one byte at time)
- */
- more--;
- } else if (zip_strstart >= WSIZE + zip_MAX_DIST) {
- /* By the IN assertion, the window is not empty so we can't confuse
- * more == 0 with more == 64K on a 16 bit machine.
- */
- for (n = 0; n < WSIZE; n++)
- zip_window[n] = zip_window[n + WSIZE];
-
- zip_match_start -= WSIZE;
- zip_strstart -= WSIZE;
- /* we now have strstart >= MAX_DIST: */
- zip_block_start -= WSIZE;
-
- for (n = 0; n < zip_HASH_SIZE; n++) {
- m = zip_head1(n);
- zip_head2(n, m >= WSIZE ? m - WSIZE : zip_NIL);
- }
- for (n = 0; n < WSIZE; n++) {
- /* If n is not on any hash chain, prev[n] is garbage but
- * its value will never be used.
- */
- m = zip_prev[n];
- zip_prev[n] = (m >= WSIZE ? m - WSIZE : zip_NIL);
- }
- more += WSIZE;
- }
- // At this point, more >= 2
- if (!zip_eofile) {
- n = zip_read_buff(zip_window, zip_strstart + zip_lookahead, more);
- if (n <= 0)
- zip_eofile = true;
- else
- zip_lookahead += n;
- }
- };
-
- /* ==========================================================================
- * Processes a new input file and return its compressed length. This
- * function does not perform lazy evaluationof matches and inserts
- * new strings in the dictionary only for unmatched strings or for short
- * matches. It is used only for the fast compression options.
- */
- var zip_deflate_fast = function () {
- while (zip_lookahead != 0 && zip_qhead == null) {
- var flush; // set if current block must be flushed
-
- /* Insert the string window[strstart .. strstart+2] in the
- * dictionary, and set hash_head to the head of the hash chain:
- */
- zip_INSERT_STRING();
-
- /* Find the longest match, discarding those <= prev_length.
- * At this point we have always match_length < MIN_MATCH
- */
- if (zip_hash_head != zip_NIL &&
- zip_strstart - zip_hash_head <= zip_MAX_DIST) {
- /* To simplify the code, we prevent matches with the string
- * of window index 0 (in particular we have to avoid a match
- * of the string with itself at the start of the input file).
- */
- zip_match_length = zip_longest_match(zip_hash_head);
- /* longest_match() sets match_start */
- if (zip_match_length > zip_lookahead)
- zip_match_length = zip_lookahead;
- }
- if (zip_match_length >= MIN_MATCH) {
- flush = zip_ct_tally(zip_strstart - zip_match_start,
- zip_match_length - MIN_MATCH);
- zip_lookahead -= zip_match_length;
-
- /* Insert new strings in the hash table only if the match length
- * is not too large. This saves time but degrades compression.
- */
- if (zip_match_length <= zip_max_lazy_match) {
- zip_match_length--; // string at strstart already in hash table
- do {
- zip_strstart++;
- zip_INSERT_STRING();
- /* strstart never exceeds WSIZE-MAX_MATCH, so there are
- * always MIN_MATCH bytes ahead. If lookahead < MIN_MATCH
- * these bytes are garbage, but it does not matter since
- * the next lookahead bytes will be emitted as literals.
- */
- } while (--zip_match_length != 0);
- zip_strstart++;
- } else {
- zip_strstart += zip_match_length;
- zip_match_length = 0;
- zip_ins_h = zip_window[zip_strstart] & 0xff;
- zip_ins_h = ((zip_ins_h << zip_H_SHIFT) ^ (zip_window[zip_strstart + 1] & 0xff)) & zip_HASH_MASK;
- }
- } else {
- /* No match, output a literal byte */
- flush = zip_ct_tally(0, zip_window[zip_strstart] & 0xff);
- zip_lookahead--;
- zip_strstart++;
- }
- if (flush) {
- zip_flush_block(0);
- zip_block_start = zip_strstart;
- }
-
- /* Make sure that we always have enough lookahead, except
- * at the end of the input file. We need MAX_MATCH bytes
- * for the next match, plus MIN_MATCH bytes to insert the
- * string following the next match.
- */
- while (zip_lookahead < zip_MIN_LOOKAHEAD && !zip_eofile)
- zip_fill_window();
- }
- };
-
- var zip_deflate_better = function () {
- /* Process the input block. */
- while (zip_lookahead != 0 && zip_qhead == null) {
- /* Insert the string window[strstart .. strstart+2] in the
- * dictionary, and set hash_head to the head of the hash chain:
- */
- zip_INSERT_STRING();
-
- /* Find the longest match, discarding those <= prev_length.
- */
- zip_prev_length = zip_match_length;
- zip_prev_match = zip_match_start;
- zip_match_length = MIN_MATCH - 1;
-
- if (zip_hash_head != zip_NIL &&
- zip_prev_length < zip_max_lazy_match &&
- zip_strstart - zip_hash_head <= zip_MAX_DIST) {
- /* To simplify the code, we prevent matches with the string
- * of window index 0 (in particular we have to avoid a match
- * of the string with itself at the start of the input file).
- */
- zip_match_length = zip_longest_match(zip_hash_head);
- /* longest_match() sets match_start */
- if (zip_match_length > zip_lookahead)
- zip_match_length = zip_lookahead;
-
- /* Ignore a length 3 match if it is too distant: */
- if (zip_match_length == MIN_MATCH &&
- zip_strstart - zip_match_start > zip_TOO_FAR) {
- /* If prev_match is also MIN_MATCH, match_start is garbage
- * but we will ignore the current match anyway.
- */
- zip_match_length--;
- }
- }
- /* If there was a match at the previous step and the current
- * match is not better, output the previous match:
- */
- if (zip_prev_length >= MIN_MATCH &&
- zip_match_length <= zip_prev_length) {
- var flush; // set if current block must be flushed
- flush = zip_ct_tally(zip_strstart - 1 - zip_prev_match,
- zip_prev_length - MIN_MATCH);
-
- /* Insert in hash table all strings up to the end of the match.
- * strstart-1 and strstart are already inserted.
- */
- zip_lookahead -= zip_prev_length - 1;
- zip_prev_length -= 2;
- do {
- zip_strstart++;
- zip_INSERT_STRING();
- /* strstart never exceeds WSIZE-MAX_MATCH, so there are
- * always MIN_MATCH bytes ahead. If lookahead < MIN_MATCH
- * these bytes are garbage, but it does not matter since the
- * next lookahead bytes will always be emitted as literals.
- */
- } while (--zip_prev_length != 0);
- zip_match_available = 0;
- zip_match_length = MIN_MATCH - 1;
- zip_strstart++;
- if (flush) {
- zip_flush_block(0);
- zip_block_start = zip_strstart;
- }
- } else if (zip_match_available != 0) {
- /* If there was no match at the previous position, output a
- * single literal. If there was a match but the current match
- * is longer, truncate the previous match to a single literal.
- */
- if (zip_ct_tally(0, zip_window[zip_strstart - 1] & 0xff)) {
- zip_flush_block(0);
- zip_block_start = zip_strstart;
- }
- zip_strstart++;
- zip_lookahead--;
- } else {
- /* There is no previous match to compare with, wait for
- * the next step to decide.
- */
- zip_match_available = 1;
- zip_strstart++;
- zip_lookahead--;
- }
-
- /* Make sure that we always have enough lookahead, except
- * at the end of the input file. We need MAX_MATCH bytes
- * for the next match, plus MIN_MATCH bytes to insert the
- * string following the next match.
- */
- while (zip_lookahead < zip_MIN_LOOKAHEAD && !zip_eofile)
- zip_fill_window();
- }
- };
-
- var zip_init_deflate = function () {
- if (zip_eofile)
- return;
- zip_bi_buf = 0;
- zip_bi_valid = 0;
- zip_ct_init();
- zip_lm_init();
-
- zip_qhead = null;
- zip_outcnt = 0;
- zip_outoff = 0;
- zip_match_available = 0;
-
- if (zip_compr_level <= 3) {
- zip_prev_length = MIN_MATCH - 1;
- zip_match_length = 0;
- }
- else {
- zip_match_length = MIN_MATCH - 1;
- zip_match_available = 0;
- zip_match_available = 0;
- }
-
- zip_complete = false;
- };
-
- /* ==========================================================================
- * Same as above, but achieves better compression. We use a lazy
- * evaluation for matches: a match is finally adopted only if there is
- * no better match at the next window position.
- */
- var zip_deflate_internal = function (buff, off, buff_size) {
- var n;
-
- if (!zip_initflag) {
- zip_init_deflate();
- zip_initflag = true;
- if (zip_lookahead == 0) { // empty
- zip_complete = true;
- return 0;
- }
- }
-
- if ((n = zip_qcopy(buff, off, buff_size)) == buff_size)
- return buff_size;
-
- if (zip_complete)
- return n;
-
- if (zip_compr_level <= 3) // optimized for speed
- zip_deflate_fast();
- else
- zip_deflate_better();
- if (zip_lookahead == 0) {
- if (zip_match_available != 0)
- zip_ct_tally(0, zip_window[zip_strstart - 1] & 0xff);
- zip_flush_block(1);
- zip_complete = true;
- }
- return n + zip_qcopy(buff, n + off, buff_size - n);
- };
-
- var zip_qcopy = function (buff, off, buff_size) {
- var n, i, j;
-
- n = 0;
- while (zip_qhead != null && n < buff_size) {
- i = buff_size - n;
- if (i > zip_qhead.len)
- i = zip_qhead.len;
- for (j = 0; j < i; j++)
- buff[off + n + j] = zip_qhead.ptr[zip_qhead.off + j];
-
- zip_qhead.off += i;
- zip_qhead.len -= i;
- n += i;
- if (zip_qhead.len == 0) {
- var p;
- p = zip_qhead;
- zip_qhead = zip_qhead.next;
- zip_reuse_queue(p);
- }
- }
-
- if (n == buff_size)
- return n;
-
- if (zip_outoff < zip_outcnt) {
- i = buff_size - n;
- if (i > zip_outcnt - zip_outoff)
- i = zip_outcnt - zip_outoff;
- // System.arraycopy(outbuf, outoff, buff, off + n, i);
- for (j = 0; j < i; j++)
- buff[off + n + j] = zip_outbuf[zip_outoff + j];
- zip_outoff += i;
- n += i;
- if (zip_outcnt == zip_outoff)
- zip_outcnt = zip_outoff = 0;
- }
- return n;
- };
-
- /* ==========================================================================
- * Allocate the match buffer, initialize the various tables and save the
- * location of the internal file attribute (ascii/binary) and method
- * (DEFLATE/STORE).
- */
- var zip_ct_init = function () {
- var n; // iterates over tree elements
- var bits; // bit counter
- var length; // length value
- var code; // code value
- var dist; // distance index
-
- if (zip_static_dtree[0].dl != 0) return; // ct_init already called
-
- zip_l_desc.dyn_tree = zip_dyn_ltree;
- zip_l_desc.static_tree = zip_static_ltree;
- zip_l_desc.extra_bits = zip_extra_lbits;
- zip_l_desc.extra_base = zip_LITERALS + 1;
- zip_l_desc.elems = zip_L_CODES;
- zip_l_desc.max_length = zip_MAX_BITS;
- zip_l_desc.max_code = 0;
-
- zip_d_desc.dyn_tree = zip_dyn_dtree;
- zip_d_desc.static_tree = zip_static_dtree;
- zip_d_desc.extra_bits = zip_extra_dbits;
- zip_d_desc.extra_base = 0;
- zip_d_desc.elems = zip_D_CODES;
- zip_d_desc.max_length = zip_MAX_BITS;
- zip_d_desc.max_code = 0;
-
- zip_bl_desc.dyn_tree = zip_bl_tree;
- zip_bl_desc.static_tree = null;
- zip_bl_desc.extra_bits = zip_extra_blbits;
- zip_bl_desc.extra_base = 0;
- zip_bl_desc.elems = zip_BL_CODES;
- zip_bl_desc.max_length = zip_MAX_BL_BITS;
- zip_bl_desc.max_code = 0;
-
- // Initialize the mapping length (0..255) -> length code (0..28)
- length = 0;
- for (code = 0; code < zip_LENGTH_CODES - 1; code++) {
- zip_base_length[code] = length;
- for (n = 0; n < (1 << zip_extra_lbits[code]); n++)
- zip_length_code[length++] = code;
- }
- /* Note that the length 255 (match length 258) can be represented
- * in two different ways: code 284 + 5 bits or code 285, so we
- * overwrite length_code[255] to use the best encoding:
- */
- zip_length_code[length - 1] = code;
-
- /* Initialize the mapping dist (0..32K) -> dist code (0..29) */
- dist = 0;
- for (code = 0; code < 16; code++) {
- zip_base_dist[code] = dist;
- for (n = 0; n < (1 << zip_extra_dbits[code]); n++) {
- zip_dist_code[dist++] = code;
- }
- }
- dist >>= 7; // from now on, all distances are divided by 128
- for (; code < zip_D_CODES; code++) {
- zip_base_dist[code] = dist << 7;
- for (n = 0; n < (1 << (zip_extra_dbits[code] - 7)); n++)
- zip_dist_code[256 + dist++] = code;
- }
- // Construct the codes of the static literal tree
- for (bits = 0; bits <= zip_MAX_BITS; bits++)
- zip_bl_count[bits] = 0;
- n = 0;
- while (n <= 143) {
- zip_static_ltree[n++].dl = 8;
- zip_bl_count[8]++;
- }
- while (n <= 255) {
- zip_static_ltree[n++].dl = 9;
- zip_bl_count[9]++;
- }
- while (n <= 279) {
- zip_static_ltree[n++].dl = 7;
- zip_bl_count[7]++;
- }
- while (n <= 287) {
- zip_static_ltree[n++].dl = 8;
- zip_bl_count[8]++;
- }
- /* Codes 286 and 287 do not exist, but we must include them in the
- * tree construction to get a canonical Huffman tree (longest code
- * all ones)
- */
- zip_gen_codes(zip_static_ltree, zip_L_CODES + 1);
-
- /* The static distance tree is trivial: */
- for (n = 0; n < zip_D_CODES; n++) {
- zip_static_dtree[n].dl = 5;
- zip_static_dtree[n].fc = zip_bi_reverse(n, 5);
- }
-
- // Initialize the first block of the first file:
- zip_init_block();
- };
-
- /* ==========================================================================
- * Initialize a new block.
- */
- var zip_init_block = function () {
- var n; // iterates over tree elements
-
- // Initialize the trees.
- for (n = 0; n < zip_L_CODES; n++) zip_dyn_ltree[n].fc = 0;
- for (n = 0; n < zip_D_CODES; n++) zip_dyn_dtree[n].fc = 0;
- for (n = 0; n < zip_BL_CODES; n++) zip_bl_tree[n].fc = 0;
-
- zip_dyn_ltree[zip_END_BLOCK].fc = 1;
- zip_opt_len = zip_static_len = 0;
- zip_last_lit = zip_last_dist = zip_last_flags = 0;
- zip_flags = 0;
- zip_flag_bit = 1;
- };
-
- /* ==========================================================================
- * Restore the heap property by moving down the tree starting at node k,
- * exchanging a node with the smallest of its two sons if necessary, stopping
- * when the heap property is re-established (each father smaller than its
- * two sons).
- */
- var zip_pqdownheap = function (tree, // the tree to restore
- k) { // node to move down
- var v = zip_heap[k];
- var j = k << 1; // left son of k
-
- while (j <= zip_heap_len) {
- // Set j to the smallest of the two sons:
- if (j < zip_heap_len &&
- zip_SMALLER(tree, zip_heap[j + 1], zip_heap[j]))
- j++;
-
- // Exit if v is smaller than both sons
- if (zip_SMALLER(tree, v, zip_heap[j]))
- break;
-
- // Exchange v with the smallest son
- zip_heap[k] = zip_heap[j];
- k = j;
-
- // And continue down the tree, setting j to the left son of k
- j <<= 1;
- }
- zip_heap[k] = v;
- };
-
- /* ==========================================================================
- * Compute the optimal bit lengths for a tree and update the total bit length
- * for the current block.
- * IN assertion: the fields freq and dad are set, heap[heap_max] and
- * above are the tree nodes sorted by increasing frequency.
- * OUT assertions: the field len is set to the optimal bit length, the
- * array bl_count contains the frequencies for each bit length.
- * The length opt_len is updated; static_len is also updated if stree is
- * not null.
- */
- var zip_gen_bitlen = function (desc) { // the tree descriptor
- var tree = desc.dyn_tree;
- var extra = desc.extra_bits;
- var base = desc.extra_base;
- var max_code = desc.max_code;
- var max_length = desc.max_length;
- var stree = desc.static_tree;
- var h; // heap index
- var n, m; // iterate over the tree elements
- var bits; // bit length
- var xbits; // extra bits
- var f; // frequency
- var overflow = 0; // number of elements with bit length too large
-
- for (bits = 0; bits <= zip_MAX_BITS; bits++)
- zip_bl_count[bits] = 0;
-
- /* In a first pass, compute the optimal bit lengths (which may
- * overflow in the case of the bit length tree).
- */
- tree[zip_heap[zip_heap_max]].dl = 0; // root of the heap
-
- for (h = zip_heap_max + 1; h < zip_HEAP_SIZE; h++) {
- n = zip_heap[h];
- bits = tree[tree[n].dl].dl + 1;
- if (bits > max_length) {
- bits = max_length;
- overflow++;
- }
- tree[n].dl = bits;
- // We overwrite tree[n].dl which is no longer needed
-
- if (n > max_code)
- continue; // not a leaf node
-
- zip_bl_count[bits]++;
- xbits = 0;
- if (n >= base)
- xbits = extra[n - base];
- f = tree[n].fc;
- zip_opt_len += f * (bits + xbits);
- if (stree != null)
- zip_static_len += f * (stree[n].dl + xbits);
- }
- if (overflow == 0)
- return;
-
- // This happens for example on obj2 and pic of the Calgary corpus
-
- // Find the first bit length which could increase:
- do {
- bits = max_length - 1;
- while (zip_bl_count[bits] == 0)
- bits--;
- zip_bl_count[bits]--; // move one leaf down the tree
- zip_bl_count[bits + 1] += 2; // move one overflow item as its brother
- zip_bl_count[max_length]--;
- /* The brother of the overflow item also moves one step up,
- * but this does not affect bl_count[max_length]
- */
- overflow -= 2;
- } while (overflow > 0);
-
- /* Now recompute all bit lengths, scanning in increasing frequency.
- * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
- * lengths instead of fixing only the wrong ones. This idea is taken
- * from 'ar' written by Haruhiko Okumura.)
- */
- for (bits = max_length; bits != 0; bits--) {
- n = zip_bl_count[bits];
- while (n != 0) {
- m = zip_heap[--h];
- if (m > max_code)
- continue;
- if (tree[m].dl != bits) {
- zip_opt_len += (bits - tree[m].dl) * tree[m].fc;
- tree[m].fc = bits;
- }
- n--;
- }
- }
- };
-
- /* ==========================================================================
- * Generate the codes for a given tree and bit counts (which need not be
- * optimal).
- * IN assertion: the array bl_count contains the bit length statistics for
- * the given tree and the field len is set for all tree elements.
- * OUT assertion: the field code is set for all tree elements of non
- * zero code length.
- */
- var zip_gen_codes = function (tree, // the tree to decorate
- max_code) { // largest code with non zero frequency
- var next_code = new Array(zip_MAX_BITS + 1); // next code value for each bit length
- var code = 0; // running code value
- var bits; // bit index
- var n; // code index
-
- /* The distribution counts are first used to generate the code values
- * without bit reversal.
- */
- for (bits = 1; bits <= zip_MAX_BITS; bits++) {
- code = ((code + zip_bl_count[bits - 1]) << 1);
- next_code[bits] = code;
- }
-
- /* Check that the bit counts in bl_count are consistent. The last code
- * must be all ones.
- */
- for (n = 0; n <= max_code; n++) {
- var len = tree[n].dl;
- if (len == 0)
- continue;
- // Now reverse the bits
- tree[n].fc = zip_bi_reverse(next_code[len]++, len);
- }
- };
-
- /* ==========================================================================
- * Construct one Huffman tree and assigns the code bit strings and lengths.
- * Update the total bit length for the current block.
- * IN assertion: the field freq is set for all tree elements.
- * OUT assertions: the fields len and code are set to the optimal bit length
- * and corresponding code. The length opt_len is updated; static_len is
- * also updated if stree is not null. The field max_code is set.
- */
- var zip_build_tree = function (desc) { // the tree descriptor
- var tree = desc.dyn_tree;
- var stree = desc.static_tree;
- var elems = desc.elems;
- var n, m; // iterate over heap elements
- var max_code = -1; // largest code with non zero frequency
- var node = elems; // next internal node of the tree
-
- /* Construct the initial heap, with least frequent element in
- * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
- * heap[0] is not used.
- */
- zip_heap_len = 0;
- zip_heap_max = zip_HEAP_SIZE;
-
- for (n = 0; n < elems; n++) {
- if (tree[n].fc != 0) {
- zip_heap[++zip_heap_len] = max_code = n;
- zip_depth[n] = 0;
- } else
- tree[n].dl = 0;
- }
-
- /* The pkzip format requires that at least one distance code exists,
- * and that at least one bit should be sent even if there is only one
- * possible code. So to avoid special checks later on we force at least
- * two codes of non zero frequency.
- */
- while (zip_heap_len < 2) {
- var xnew = zip_heap[++zip_heap_len] = (max_code < 2 ? ++max_code : 0);
- tree[xnew].fc = 1;
- zip_depth[xnew] = 0;
- zip_opt_len--;
- if (stree != null)
- zip_static_len -= stree[xnew].dl;
- // new is 0 or 1 so it does not have extra bits
- }
- desc.max_code = max_code;
-
- /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
- * establish sub-heaps of increasing lengths:
- */
- for (n = zip_heap_len >> 1; n >= 1; n--)
- zip_pqdownheap(tree, n);
-
- /* Construct the Huffman tree by repeatedly combining the least two
- * frequent nodes.
- */
- do {
- n = zip_heap[zip_SMALLEST];
- zip_heap[zip_SMALLEST] = zip_heap[zip_heap_len--];
- zip_pqdownheap(tree, zip_SMALLEST);
-
- m = zip_heap[zip_SMALLEST]; // m = node of next least frequency
-
- // keep the nodes sorted by frequency
- zip_heap[--zip_heap_max] = n;
- zip_heap[--zip_heap_max] = m;
-
- // Create a new node father of n and m
- tree[node].fc = tree[n].fc + tree[m].fc;
- if (zip_depth[n] > zip_depth[m] + 1)
- zip_depth[node] = zip_depth[n];
- else
- zip_depth[node] = zip_depth[m] + 1;
- tree[n].dl = tree[m].dl = node;
-
- // and insert the new node in the heap
- zip_heap[zip_SMALLEST] = node++;
- zip_pqdownheap(tree, zip_SMALLEST);
-
- } while (zip_heap_len >= 2);
-
- zip_heap[--zip_heap_max] = zip_heap[zip_SMALLEST];
-
- /* At this point, the fields freq and dad are set. We can now
- * generate the bit lengths.
- */
- zip_gen_bitlen(desc);
-
- // The field len is now set, we can generate the bit codes
- zip_gen_codes(tree, max_code);
- };
-
- /* ==========================================================================
- * Scan a literal or distance tree to determine the frequencies of the codes
- * in the bit length tree. Updates opt_len to take into account the repeat
- * counts. (The contribution of the bit length codes will be added later
- * during the construction of bl_tree.)
- */
- var zip_scan_tree = function (tree,// the tree to be scanned
- max_code) { // and its largest code of non zero frequency
- var n; // iterates over all tree elements
- var prevlen = -1; // last emitted length
- var curlen; // length of current code
- var nextlen = tree[0].dl; // length of next code
- var count = 0; // repeat count of the current code
- var max_count = 7; // max repeat count
- var min_count = 4; // min repeat count
-
- if (nextlen == 0) {
- max_count = 138;
- min_count = 3;
- }
- tree[max_code + 1].dl = 0xffff; // guard
-
- for (n = 0; n <= max_code; n++) {
- curlen = nextlen;
- nextlen = tree[n + 1].dl;
- if (++count < max_count && curlen == nextlen)
- continue;
- else if (count < min_count)
- zip_bl_tree[curlen].fc += count;
- else if (curlen != 0) {
- if (curlen != prevlen)
- zip_bl_tree[curlen].fc++;
- zip_bl_tree[zip_REP_3_6].fc++;
- } else if (count <= 10)
- zip_bl_tree[zip_REPZ_3_10].fc++;
- else
- zip_bl_tree[zip_REPZ_11_138].fc++;
- count = 0;
- prevlen = curlen;
- if (nextlen == 0) {
- max_count = 138;
- min_count = 3;
- } else if (curlen == nextlen) {
- max_count = 6;
- min_count = 3;
- } else {
- max_count = 7;
- min_count = 4;
- }
- }
- };
-
- /* ==========================================================================
- * Send a literal or distance tree in compressed form, using the codes in
- * bl_tree.
- */
- var zip_send_tree = function (tree, // the tree to be scanned
- max_code) { // and its largest code of non zero frequency
- var n; // iterates over all tree elements
- var prevlen = -1; // last emitted length
- var curlen; // length of current code
- var nextlen = tree[0].dl; // length of next code
- var count = 0; // repeat count of the current code
- var max_count = 7; // max repeat count
- var min_count = 4; // min repeat count
-
- /* tree[max_code+1].dl = -1; */
- /* guard already set */
- if (nextlen == 0) {
- max_count = 138;
- min_count = 3;
- }
-
- for (n = 0; n <= max_code; n++) {
- curlen = nextlen;
- nextlen = tree[n + 1].dl;
- if (++count < max_count && curlen == nextlen) {
- continue;
- } else if (count < min_count) {
- do {
- zip_SEND_CODE(curlen, zip_bl_tree);
- } while (--count != 0);
- } else if (curlen != 0) {
- if (curlen != prevlen) {
- zip_SEND_CODE(curlen, zip_bl_tree);
- count--;
- }
- // Assert(count >= 3 && count <= 6, " 3_6?");
- zip_SEND_CODE(zip_REP_3_6, zip_bl_tree);
- zip_send_bits(count - 3, 2);
- } else if (count <= 10) {
- zip_SEND_CODE(zip_REPZ_3_10, zip_bl_tree);
- zip_send_bits(count - 3, 3);
- } else {
- zip_SEND_CODE(zip_REPZ_11_138, zip_bl_tree);
- zip_send_bits(count - 11, 7);
- }
- count = 0;
- prevlen = curlen;
- if (nextlen == 0) {
- max_count = 138;
- min_count = 3;
- } else if (curlen == nextlen) {
- max_count = 6;
- min_count = 3;
- } else {
- max_count = 7;
- min_count = 4;
- }
- }
- };
-
- /* ==========================================================================
- * Construct the Huffman tree for the bit lengths and return the index in
- * bl_order of the last bit length code to send.
- */
- var zip_build_bl_tree = function () {
- var max_blindex; // index of last bit length code of non zero freq
-
- // Determine the bit length frequencies for literal and distance trees
- zip_scan_tree(zip_dyn_ltree, zip_l_desc.max_code);
- zip_scan_tree(zip_dyn_dtree, zip_d_desc.max_code);
-
- // Build the bit length tree:
- zip_build_tree(zip_bl_desc);
- /* opt_len now includes the length of the tree representations, except
- * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
- */
-
- /* Determine the number of bit length codes to send. The pkzip format
- * requires that at least 4 bit length codes be sent. (appnote.txt says
- * 3 but the actual value used is 4.)
- */
- for (max_blindex = zip_BL_CODES - 1; max_blindex >= 3; max_blindex--) {
- if (zip_bl_tree[zip_bl_order[max_blindex]].dl != 0) break;
- }
- /* Update opt_len to include the bit length tree and counts */
- zip_opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;
- return max_blindex;
- };
-
- /* ==========================================================================
- * Send the header for a block using dynamic Huffman trees: the counts, the
- * lengths of the bit length codes, the literal tree and the distance tree.
- * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
- */
- var zip_send_all_trees = function (lcodes, dcodes, blcodes) { // number of codes for each tree
- var rank; // index in bl_order
- zip_send_bits(lcodes - 257, 5); // not +255 as stated in appnote.txt
- zip_send_bits(dcodes - 1, 5);
- zip_send_bits(blcodes - 4, 4); // not -3 as stated in appnote.txt
- for (rank = 0; rank < blcodes; rank++) {
- zip_send_bits(zip_bl_tree[zip_bl_order[rank]].dl, 3);
- }
-
- // send the literal tree
- zip_send_tree(zip_dyn_ltree, lcodes - 1);
-
- // send the distance tree
- zip_send_tree(zip_dyn_dtree, dcodes - 1);
- };
-
- /* ==========================================================================
- * Determine the best encoding for the current block: dynamic trees, static
- * trees or store, and output the encoded block to the zip file.
- */
- var zip_flush_block = function (eof) { // true if this is the last block for a file
- var opt_lenb, static_lenb; // opt_len and static_len in bytes
- var max_blindex; // index of last bit length code of non zero freq
- var stored_len; // length of input block
-
- stored_len = zip_strstart - zip_block_start;
- zip_flag_buf[zip_last_flags] = zip_flags; // Save the flags for the last 8 items
-
- // Construct the literal and distance trees
- zip_build_tree(zip_l_desc);
- zip_build_tree(zip_d_desc);
- /* At this point, opt_len and static_len are the total bit lengths of
- * the compressed block data, excluding the tree representations.
- */
-
- /* Build the bit length tree for the above two trees, and get the index
- * in bl_order of the last bit length code to send.
- */
- max_blindex = zip_build_bl_tree();
-
- // Determine the best encoding. Compute first the block length in bytes
- opt_lenb = (zip_opt_len + 3 + 7) >> 3;
- static_lenb = (zip_static_len + 3 + 7) >> 3;
- if (static_lenb <= opt_lenb)
- opt_lenb = static_lenb;
- if (stored_len + 4 <= opt_lenb // 4: two words for the lengths
- && zip_block_start >= 0) {
- var i;
-
- /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
- * Otherwise we can't have processed more than WSIZE input bytes since
- * the last block flush, because compression would have been
- * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
- * transform a block into a stored block.
- */
- zip_send_bits((zip_STORED_BLOCK << 1) + eof, 3);
- /* send block type */
- zip_bi_windup();
- /* align on byte boundary */
- zip_put_short(stored_len);
- zip_put_short(~stored_len);
-
- // copy block
- for (i = 0; i < stored_len; i++)
- zip_put_byte(zip_window[zip_block_start + i]);
-
- } else if (static_lenb == opt_lenb) {
- zip_send_bits((zip_STATIC_TREES << 1) + eof, 3);
- zip_compress_block(zip_static_ltree, zip_static_dtree);
- } else {
- zip_send_bits((zip_DYN_TREES << 1) + eof, 3);
- zip_send_all_trees(zip_l_desc.max_code + 1,
- zip_d_desc.max_code + 1,
- max_blindex + 1);
- zip_compress_block(zip_dyn_ltree, zip_dyn_dtree);
- }
-
- zip_init_block();
-
- if (eof != 0)
- zip_bi_windup();
- };
-
- /* ==========================================================================
- * Save the match info and tally the frequency counts. Return true if
- * the current block must be flushed.
- */
- var zip_ct_tally = function (dist, // distance of matched string
- lc) { // match length-MIN_MATCH or unmatched char (if dist==0)
- zip_l_buf[zip_last_lit++] = lc;
- if (dist == 0) {
- // lc is the unmatched char
- zip_dyn_ltree[lc].fc++;
- } else {
- // Here, lc is the match length - MIN_MATCH
- dist--; // dist = match distance - 1
- zip_dyn_ltree[zip_length_code[lc] + zip_LITERALS + 1].fc++;
- zip_dyn_dtree[zip_D_CODE(dist)].fc++;
-
- zip_d_buf[zip_last_dist++] = dist;
- zip_flags |= zip_flag_bit;
- }
- zip_flag_bit <<= 1;
-
- // Output the flags if they fill a byte
- if ((zip_last_lit & 7) == 0) {
- zip_flag_buf[zip_last_flags++] = zip_flags;
- zip_flags = 0;
- zip_flag_bit = 1;
- }
- // Try to guess if it is profitable to stop the current block here
- if (zip_compr_level > 2 && (zip_last_lit & 0xfff) == 0) {
- // Compute an upper bound for the compressed length
- var out_length = zip_last_lit * 8;
- var in_length = zip_strstart - zip_block_start;
- var dcode;
-
- for (dcode = 0; dcode < zip_D_CODES; dcode++) {
- out_length += zip_dyn_dtree[dcode].fc * (5 + zip_extra_dbits[dcode]);
- }
- out_length >>= 3;
- if (zip_last_dist < parseInt(zip_last_lit / 2) &&
- out_length < parseInt(in_length / 2))
- return true;
- }
- return (zip_last_lit == LIT_BUFSIZE - 1 ||
- zip_last_dist == zip_DIST_BUFSIZE);
- /* We avoid equality with LIT_BUFSIZE because of wraparound at 64K
- * on 16 bit machines and because stored blocks are restricted to
- * 64K-1 bytes.
- */
- };
-
- /* ==========================================================================
- * Send the block data compressed using the given Huffman trees
- */
- var zip_compress_block = function (ltree, // literal tree
- dtree) { // distance tree
- var dist; // distance of matched string
- var lc; // match length or unmatched char (if dist == 0)
- var lx = 0; // running index in l_buf
- var dx = 0; // running index in d_buf
- var fx = 0; // running index in flag_buf
- var flag = 0; // current flags
- var code; // the code to send
- var extra; // number of extra bits to send
-
- if (zip_last_lit != 0) do {
- if ((lx & 7) == 0)
- flag = zip_flag_buf[fx++];
- lc = zip_l_buf[lx++] & 0xff;
- if ((flag & 1) == 0) {
- zip_SEND_CODE(lc, ltree);
- /* send a literal byte */
- } else {
- // Here, lc is the match length - MIN_MATCH
- code = zip_length_code[lc];
- zip_SEND_CODE(code + zip_LITERALS + 1, ltree); // send the length code
- extra = zip_extra_lbits[code];
- if (extra != 0) {
- lc -= zip_base_length[code];
- zip_send_bits(lc, extra); // send the extra length bits
- }
- dist = zip_d_buf[dx++];
- // Here, dist is the match distance - 1
- code = zip_D_CODE(dist);
- zip_SEND_CODE(code, dtree); // send the distance code
- extra = zip_extra_dbits[code];
- if (extra != 0) {
- dist -= zip_base_dist[code];
- zip_send_bits(dist, extra); // send the extra distance bits
- }
- } // literal or match pair ?
- flag >>= 1;
- } while (lx < zip_last_lit);
-
- zip_SEND_CODE(zip_END_BLOCK, ltree);
- };
-
- /* ==========================================================================
- * Send a value on a given number of bits.
- * IN assertion: length <= 16 and value fits in length bits.
- */
- var zip_Buf_size = 16; // bit size of bi_buf
- var zip_send_bits = function (value, // value to send
- length) { // number of bits
- /* If not enough room in bi_buf, use (valid) bits from bi_buf and
- * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid))
- * unused bits in value.
- */
- if (zip_bi_valid > zip_Buf_size - length) {
- zip_bi_buf |= (value << zip_bi_valid);
- zip_put_short(zip_bi_buf);
- zip_bi_buf = (value >> (zip_Buf_size - zip_bi_valid));
- zip_bi_valid += length - zip_Buf_size;
- } else {
- zip_bi_buf |= value << zip_bi_valid;
- zip_bi_valid += length;
- }
- };
-
- /* ==========================================================================
- * Reverse the first len bits of a code, using straightforward code (a faster
- * method would use a table)
- * IN assertion: 1 <= len <= 15
- */
- var zip_bi_reverse = function (code, // the value to invert
- len) { // its bit length
- var res = 0;
- do {
- res |= code & 1;
- code >>= 1;
- res <<= 1;
- } while (--len > 0);
- return res >> 1;
- };
-
- /* ==========================================================================
- * Write out any remaining bits in an incomplete byte.
- */
- var zip_bi_windup = function () {
- if (zip_bi_valid > 8) {
- zip_put_short(zip_bi_buf);
- } else if (zip_bi_valid > 0) {
- zip_put_byte(zip_bi_buf);
- }
- zip_bi_buf = 0;
- zip_bi_valid = 0;
- };
-
- var zip_qoutbuf = function () {
- if (zip_outcnt != 0) {
- var q, i;
- q = zip_new_queue();
- if (zip_qhead == null)
- zip_qhead = zip_qtail = q;
- else
- zip_qtail = zip_qtail.next = q;
- q.len = zip_outcnt - zip_outoff;
- for (i = 0; i < q.len; i++)
- q.ptr[i] = zip_outbuf[zip_outoff + i];
- zip_outcnt = zip_outoff = 0;
- }
- };
-
- function deflate(buffData, level) {
- zip_deflate_data = buffData;
- zip_deflate_pos = 0;
- zip_deflate_start(level);
-
- var buff = new Array(1024),
- pages = [],
- totalSize = 0,
- i;
-
- for (i = 0; i < 1024; i++) buff[i] = 0;
- while ((i = zip_deflate_internal(buff, 0, buff.length)) > 0) {
- var buf = new Buffer(buff.slice(0, i));
- pages.push(buf);
- totalSize += buf.length;
- }
-
- if (pages.length == 1) {
- return pages[0];
- }
-
- var result = new Buffer(totalSize),
- index = 0;
-
- for (i = 0; i < pages.length; i++) {
- pages[i].copy(result, index);
- index = index + pages[i].length
- }
-
- return result;
- }
-
- return {
- deflate: function () {
- return deflate(inbuf, 8);
- }
- }
-}
-
-module.exports = function (/*Buffer*/inbuf) {
-
- var zlib = require("zlib");
-
- return {
- deflate: function () {
- return new JSDeflater(inbuf).deflate();
- },
-
- deflateAsync: function (/*Function*/callback) {
- var tmp = zlib.createDeflateRaw({chunkSize:(parseInt(inbuf.length / 1024) + 1)*1024}),
- parts = [], total = 0;
- tmp.on('data', function(data) {
- parts.push(data);
- total += data.length;
- });
- tmp.on('end', function() {
- var buf = new Buffer(total), written = 0;
- buf.fill(0);
-
- for (var i = 0; i < parts.length; i++) {
- var part = parts[i];
- part.copy(buf, written);
- written += part.length;
- }
- callback && callback(buf);
- });
- tmp.end(inbuf);
- }
- }
-};
diff --git a/node_modules/adm-zip/methods/index.js b/node_modules/adm-zip/methods/index.js
deleted file mode 100644
index ddcbba600..000000000
--- a/node_modules/adm-zip/methods/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-exports.Deflater = require("./deflater");
-exports.Inflater = require("./inflater"); \ No newline at end of file
diff --git a/node_modules/adm-zip/methods/inflater.js b/node_modules/adm-zip/methods/inflater.js
deleted file mode 100644
index 59536c90e..000000000
--- a/node_modules/adm-zip/methods/inflater.js
+++ /dev/null
@@ -1,448 +0,0 @@
-var Buffer = require("buffer").Buffer;
-
-function JSInflater(/*Buffer*/input) {
-
- var WSIZE = 0x8000,
- slide = new Buffer(0x10000),
- windowPos = 0,
- fixedTableList = null,
- fixedTableDist,
- fixedLookup,
- bitBuf = 0,
- bitLen = 0,
- method = -1,
- eof = false,
- copyLen = 0,
- copyDist = 0,
- tblList, tblDist, bitList, bitdist,
-
- inputPosition = 0,
-
- MASK_BITS = [0x0000, 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff, 0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff],
- LENS = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0],
- LEXT = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99],
- DISTS = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577],
- DEXT = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13],
- BITORDER = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];
-
- function HuffTable(clen, cnum, cval, blist, elist, lookupm) {
-
- this.status = 0;
- this.root = null;
- this.maxbit = 0;
-
- var el, f, tail,
- offsets = [],
- countTbl = [],
- sTbl = [],
- values = [],
- tentry = {extra: 0, bitcnt: 0, lbase: 0, next: null};
-
- tail = this.root = null;
- for(var i = 0; i < 0x11; i++) { countTbl[i] = 0; sTbl[i] = 0; offsets[i] = 0; }
- for(i = 0; i < 0x120; i++) values[i] = 0;
-
- el = cnum > 256 ? clen[256] : 16;
-
- var pidx = -1;
- while (++pidx < cnum) countTbl[clen[pidx]]++;
-
- if(countTbl[0] == cnum) return;
-
- for(var j = 1; j <= 16; j++) if(countTbl[j] != 0) break;
- var bitLen = j;
- for(i = 16; i != 0; i--) if(countTbl[i] != 0) break;
- var maxLen = i;
-
- lookupm < j && (lookupm = j);
-
- var dCodes = 1 << j;
- for(; j < i; j++, dCodes <<= 1)
- if((dCodes -= countTbl[j]) < 0) {
- this.status = 2;
- this.maxbit = lookupm;
- return;
- }
-
- if((dCodes -= countTbl[i]) < 0) {
- this.status = 2;
- this.maxbit = lookupm;
- return;
- }
-
- countTbl[i] += dCodes;
- offsets[1] = j = 0;
- pidx = 1;
- var xp = 2;
- while(--i > 0) offsets[xp++] = (j += countTbl[pidx++]);
- pidx = 0;
- i = 0;
- do {
- (j = clen[pidx++]) && (values[offsets[j]++] = i);
- } while(++i < cnum);
- cnum = offsets[maxLen];
- offsets[0] = i = 0;
- pidx = 0;
-
- var level = -1,
- w = sTbl[0] = 0,
- cnode = null,
- tblCnt = 0,
- tblStack = [];
-
- for(; bitLen <= maxLen; bitLen++) {
- var kccnt = countTbl[bitLen];
- while(kccnt-- > 0) {
- while(bitLen > w + sTbl[1 + level]) {
- w += sTbl[1 + level];
- level++;
- tblCnt = (tblCnt = maxLen - w) > lookupm ? lookupm : tblCnt;
- if((f = 1 << (j = bitLen - w)) > kccnt + 1) {
- f -= kccnt + 1;
- xp = bitLen;
- while(++j < tblCnt) {
- if((f <<= 1) <= countTbl[++xp]) break;
- f -= countTbl[xp];
- }
- }
- if(w + j > el && w < el) j = el - w;
- tblCnt = 1 << j;
- sTbl[1 + level] = j;
- cnode = [];
- while (cnode.length < tblCnt) cnode.push({extra: 0, bitcnt: 0, lbase: 0, next: null});
- if (tail == null) {
- tail = this.root = {next:null, list:null};
- } else {
- tail = tail.next = {next:null, list:null}
- }
- tail.next = null;
- tail.list = cnode;
-
- tblStack[level] = cnode;
-
- if(level > 0) {
- offsets[level] = i;
- tentry.bitcnt = sTbl[level];
- tentry.extra = 16 + j;
- tentry.next = cnode;
- j = (i & ((1 << w) - 1)) >> (w - sTbl[level]);
-
- tblStack[level-1][j].extra = tentry.extra;
- tblStack[level-1][j].bitcnt = tentry.bitcnt;
- tblStack[level-1][j].lbase = tentry.lbase;
- tblStack[level-1][j].next = tentry.next;
- }
- }
- tentry.bitcnt = bitLen - w;
- if(pidx >= cnum)
- tentry.extra = 99;
- else if(values[pidx] < cval) {
- tentry.extra = (values[pidx] < 256 ? 16 : 15);
- tentry.lbase = values[pidx++];
- } else {
- tentry.extra = elist[values[pidx] - cval];
- tentry.lbase = blist[values[pidx++] - cval];
- }
-
- f = 1 << (bitLen - w);
- for(j = i >> w; j < tblCnt; j += f) {
- cnode[j].extra = tentry.extra;
- cnode[j].bitcnt = tentry.bitcnt;
- cnode[j].lbase = tentry.lbase;
- cnode[j].next = tentry.next;
- }
- for(j = 1 << (bitLen - 1); (i & j) != 0; j >>= 1)
- i ^= j;
- i ^= j;
- while((i & ((1 << w) - 1)) != offsets[level]) {
- w -= sTbl[level];
- level--;
- }
- }
- }
-
- this.maxbit = sTbl[1];
- this.status = ((dCodes != 0 && maxLen != 1) ? 1 : 0);
- }
-
- function addBits(n) {
- while(bitLen < n) {
- bitBuf |= input[inputPosition++] << bitLen;
- bitLen += 8;
- }
- return bitBuf;
- }
-
- function cutBits(n) {
- bitLen -= n;
- return bitBuf >>= n;
- }
-
- function maskBits(n) {
- while(bitLen < n) {
- bitBuf |= input[inputPosition++] << bitLen;
- bitLen += 8;
- }
- var res = bitBuf & MASK_BITS[n];
- bitBuf >>= n;
- bitLen -= n;
- return res;
- }
-
- function codes(buff, off, size) {
- var e, t;
- if(size == 0) return 0;
-
- var n = 0;
- for(;;) {
- t = tblList.list[addBits(bitList) & MASK_BITS[bitList]];
- e = t.extra;
- while(e > 16) {
- if(e == 99) return -1;
- cutBits(t.bitcnt);
- e -= 16;
- t = t.next[addBits(e) & MASK_BITS[e]];
- e = t.extra;
- }
- cutBits(t.bitcnt);
- if(e == 16) {
- windowPos &= WSIZE - 1;
- buff[off + n++] = slide[windowPos++] = t.lbase;
- if(n == size) return size;
- continue;
- }
- if(e == 15) break;
-
- copyLen = t.lbase + maskBits(e);
- t = tblDist.list[addBits(bitdist) & MASK_BITS[bitdist]];
- e = t.extra;
-
- while(e > 16) {
- if(e == 99) return -1;
- cutBits(t.bitcnt);
- e -= 16;
- t = t.next[addBits(e) & MASK_BITS[e]];
- e = t.extra
- }
- cutBits(t.bitcnt);
- copyDist = windowPos - t.lbase - maskBits(e);
-
- while(copyLen > 0 && n < size) {
- copyLen--;
- copyDist &= WSIZE - 1;
- windowPos &= WSIZE - 1;
- buff[off + n++] = slide[windowPos++] = slide[copyDist++];
- }
-
- if(n == size) return size;
- }
-
- method = -1; // done
- return n;
- }
-
- function stored(buff, off, size) {
- cutBits(bitLen & 7);
- var n = maskBits(0x10);
- if(n != ((~maskBits(0x10)) & 0xffff)) return -1;
- copyLen = n;
-
- n = 0;
- while(copyLen > 0 && n < size) {
- copyLen--;
- windowPos &= WSIZE - 1;
- buff[off + n++] = slide[windowPos++] = maskBits(8);
- }
-
- if(copyLen == 0) method = -1;
- return n;
- }
-
- function fixed(buff, off, size) {
- var fixed_bd = 0;
- if(fixedTableList == null) {
- var lengths = [];
-
- for(var symbol = 0; symbol < 144; symbol++) lengths[symbol] = 8;
- for(; symbol < 256; symbol++) lengths[symbol] = 9;
- for(; symbol < 280; symbol++) lengths[symbol] = 7;
- for(; symbol < 288; symbol++) lengths[symbol] = 8;
-
- fixedLookup = 7;
-
- var htbl = new HuffTable(lengths, 288, 257, LENS, LEXT, fixedLookup);
-
- if(htbl.status != 0) return -1;
-
- fixedTableList = htbl.root;
- fixedLookup = htbl.maxbit;
-
- for(symbol = 0; symbol < 30; symbol++) lengths[symbol] = 5;
- fixed_bd = 5;
-
- htbl = new HuffTable(lengths, 30, 0, DISTS, DEXT, fixed_bd);
- if(htbl.status > 1) {
- fixedTableList = null;
- return -1;
- }
- fixedTableDist = htbl.root;
- fixed_bd = htbl.maxbit;
- }
-
- tblList = fixedTableList;
- tblDist = fixedTableDist;
- bitList = fixedLookup;
- bitdist = fixed_bd;
- return codes(buff, off, size);
- }
-
- function dynamic(buff, off, size) {
- var ll = new Array(0x023C);
-
- for (var m = 0; m < 0x023C; m++) ll[m] = 0;
-
- var llencnt = 257 + maskBits(5),
- dcodescnt = 1 + maskBits(5),
- bitlencnt = 4 + maskBits(4);
-
- if(llencnt > 286 || dcodescnt > 30) return -1;
-
- for(var j = 0; j < bitlencnt; j++) ll[BITORDER[j]] = maskBits(3);
- for(; j < 19; j++) ll[BITORDER[j]] = 0;
-
- // build decoding table for trees--single level, 7 bit lookup
- bitList = 7;
- var hufTable = new HuffTable(ll, 19, 19, null, null, bitList);
- if(hufTable.status != 0)
- return -1; // incomplete code set
-
- tblList = hufTable.root;
- bitList = hufTable.maxbit;
- var lencnt = llencnt + dcodescnt,
- i = 0,
- lastLen = 0;
- while(i < lencnt) {
- var hufLcode = tblList.list[addBits(bitList) & MASK_BITS[bitList]];
- j = hufLcode.bitcnt;
- cutBits(j);
- j = hufLcode.lbase;
- if(j < 16)
- ll[i++] = lastLen = j;
- else if(j == 16) {
- j = 3 + maskBits(2);
- if(i + j > lencnt) return -1;
- while(j-- > 0) ll[i++] = lastLen;
- } else if(j == 17) {
- j = 3 + maskBits(3);
- if(i + j > lencnt) return -1;
- while(j-- > 0) ll[i++] = 0;
- lastLen = 0;
- } else {
- j = 11 + maskBits(7);
- if(i + j > lencnt) return -1;
- while(j-- > 0) ll[i++] = 0;
- lastLen = 0;
- }
- }
- bitList = 9;
- hufTable = new HuffTable(ll, llencnt, 257, LENS, LEXT, bitList);
- bitList == 0 && (hufTable.status = 1);
-
- if (hufTable.status != 0) return -1;
-
- tblList = hufTable.root;
- bitList = hufTable.maxbit;
-
- for(i = 0; i < dcodescnt; i++) ll[i] = ll[i + llencnt];
- bitdist = 6;
- hufTable = new HuffTable(ll, dcodescnt, 0, DISTS, DEXT, bitdist);
- tblDist = hufTable.root;
- bitdist = hufTable.maxbit;
-
- if((bitdist == 0 && llencnt > 257) || hufTable.status != 0) return -1;
-
- return codes(buff, off, size);
- }
-
- return {
- inflate : function(/*Buffer*/outputBuffer) {
- tblList = null;
-
- var size = outputBuffer.length,
- offset = 0, i;
-
- while(offset < size) {
- if(eof && method == -1) return;
- if(copyLen > 0) {
- if(method != 0) {
- while(copyLen > 0 && offset < size) {
- copyLen--;
- copyDist &= WSIZE - 1;
- windowPos &= WSIZE - 1;
- outputBuffer[offset++] = (slide[windowPos++] = slide[copyDist++]);
- }
- } else {
- while(copyLen > 0 && offset < size) {
- copyLen--;
- windowPos &= WSIZE - 1;
- outputBuffer[offset++] = (slide[windowPos++] = maskBits(8));
- }
- copyLen == 0 && (method = -1); // done
- }
- if (offset == size) return;
- }
-
- if(method == -1) {
- if(eof) break;
- eof = maskBits(1) != 0;
- method = maskBits(2);
- tblList = null;
- copyLen = 0;
- }
- switch(method) {
- case 0: i = stored(outputBuffer, offset, size - offset); break;
- case 1: i = tblList != null ? codes(outputBuffer, offset, size - offset) : fixed(outputBuffer, offset, size - offset); break;
- case 2: i = tblList != null ? codes(outputBuffer, offset, size - offset) : dynamic(outputBuffer, offset, size - offset); break;
- default: i = -1; break;
- }
-
- if(i == -1) return;
- offset += i;
- }
- }
- };
-}
-
-module.exports = function(/*Buffer*/inbuf) {
- var zlib = require("zlib");
- return {
- inflateAsync : function(/*Function*/callback) {
- var tmp = zlib.createInflateRaw(),
- parts = [], total = 0;
- tmp.on('data', function(data) {
- parts.push(data);
- total += data.length;
- });
- tmp.on('end', function() {
- var buf = new Buffer(total), written = 0;
- buf.fill(0);
-
- for (var i = 0; i < parts.length; i++) {
- var part = parts[i];
- part.copy(buf, written);
- written += part.length;
- }
- callback && callback(buf);
- });
- tmp.end(inbuf)
- },
-
- inflate : function(/*Buffer*/outputBuffer) {
- var x = {
- x: new JSInflater(inbuf)
- };
- x.x.inflate(outputBuffer);
- delete(x.x);
- }
- }
-};
diff --git a/node_modules/adm-zip/package.json b/node_modules/adm-zip/package.json
deleted file mode 100644
index 6fda456e1..000000000
--- a/node_modules/adm-zip/package.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "adm-zip",
- "version": "0.4.7",
- "description": "A Javascript implementation of zip for nodejs. Allows user to create or extract zip files both in memory or to/from disk",
- "keywords": [
- "zip",
- "methods",
- "archive",
- "unzip"
- ],
- "homepage": "http://github.com/cthackers/adm-zip",
- "author": "Nasca Iacob <sy@another-d-mention.ro> (https://github.com/cthackers)",
- "bugs": {
- "email": "sy@another-d-mention.ro",
- "url": "https://github.com/cthackers/adm-zip/issues"
- },
- "licenses": [
- {
- "type": "MIT",
- "url": "https://raw.github.com/cthackers/adm-zip/master/MIT-LICENSE.txt"
- }
- ],
- "files": [
- "adm-zip.js",
- "headers",
- "methods",
- "util",
- "zipEntry.js",
- "zipFile.js"
- ],
- "main": "adm-zip.js",
- "repository": {
- "type": "git",
- "url": "https://github.com/cthackers/adm-zip.git"
- },
- "engines": {
- "node": ">=0.3.0"
- }
-}
diff --git a/node_modules/adm-zip/util/constants.js b/node_modules/adm-zip/util/constants.js
deleted file mode 100644
index ea8ecb001..000000000
--- a/node_modules/adm-zip/util/constants.js
+++ /dev/null
@@ -1,115 +0,0 @@
-module.exports = {
- /* The local file header */
- LOCHDR : 30, // LOC header size
- LOCSIG : 0x04034b50, // "PK\003\004"
- LOCVER : 4, // version needed to extract
- LOCFLG : 6, // general purpose bit flag
- LOCHOW : 8, // compression method
- LOCTIM : 10, // modification time (2 bytes time, 2 bytes date)
- LOCCRC : 14, // uncompressed file crc-32 value
- LOCSIZ : 18, // compressed size
- LOCLEN : 22, // uncompressed size
- LOCNAM : 26, // filename length
- LOCEXT : 28, // extra field length
-
- /* The Data descriptor */
- EXTSIG : 0x08074b50, // "PK\007\008"
- EXTHDR : 16, // EXT header size
- EXTCRC : 4, // uncompressed file crc-32 value
- EXTSIZ : 8, // compressed size
- EXTLEN : 12, // uncompressed size
-
- /* The central directory file header */
- CENHDR : 46, // CEN header size
- CENSIG : 0x02014b50, // "PK\001\002"
- CENVEM : 4, // version made by
- CENVER : 6, // version needed to extract
- CENFLG : 8, // encrypt, decrypt flags
- CENHOW : 10, // compression method
- CENTIM : 12, // modification time (2 bytes time, 2 bytes date)
- CENCRC : 16, // uncompressed file crc-32 value
- CENSIZ : 20, // compressed size
- CENLEN : 24, // uncompressed size
- CENNAM : 28, // filename length
- CENEXT : 30, // extra field length
- CENCOM : 32, // file comment length
- CENDSK : 34, // volume number start
- CENATT : 36, // internal file attributes
- CENATX : 38, // external file attributes (host system dependent)
- CENOFF : 42, // LOC header offset
-
- /* The entries in the end of central directory */
- ENDHDR : 22, // END header size
- ENDSIG : 0x06054b50, // "PK\005\006"
- ENDSUB : 8, // number of entries on this disk
- ENDTOT : 10, // total number of entries
- ENDSIZ : 12, // central directory size in bytes
- ENDOFF : 16, // offset of first CEN header
- ENDCOM : 20, // zip file comment length
-
- /* Compression methods */
- STORED : 0, // no compression
- SHRUNK : 1, // shrunk
- REDUCED1 : 2, // reduced with compression factor 1
- REDUCED2 : 3, // reduced with compression factor 2
- REDUCED3 : 4, // reduced with compression factor 3
- REDUCED4 : 5, // reduced with compression factor 4
- IMPLODED : 6, // imploded
- // 7 reserved
- DEFLATED : 8, // deflated
- ENHANCED_DEFLATED: 9, // enhanced deflated
- PKWARE : 10,// PKWare DCL imploded
- // 11 reserved
- BZIP2 : 12, // compressed using BZIP2
- // 13 reserved
- LZMA : 14, // LZMA
- // 15-17 reserved
- IBM_TERSE : 18, // compressed using IBM TERSE
- IBM_LZ77 : 19, //IBM LZ77 z
-
- /* General purpose bit flag */
- FLG_ENC : 0, // encripted file
- FLG_COMP1 : 1, // compression option
- FLG_COMP2 : 2, // compression option
- FLG_DESC : 4, // data descriptor
- FLG_ENH : 8, // enhanced deflation
- FLG_STR : 16, // strong encryption
- FLG_LNG : 1024, // language encoding
- FLG_MSK : 4096, // mask header values
-
- /* Load type */
- FILE : 0,
- BUFFER : 1,
- NONE : 2,
-
- /* 4.5 Extensible data fields */
- EF_ID : 0,
- EF_SIZE : 2,
-
- /* Header IDs */
- ID_ZIP64 : 0x0001,
- ID_AVINFO : 0x0007,
- ID_PFS : 0x0008,
- ID_OS2 : 0x0009,
- ID_NTFS : 0x000a,
- ID_OPENVMS : 0x000c,
- ID_UNIX : 0x000d,
- ID_FORK : 0x000e,
- ID_PATCH : 0x000f,
- ID_X509_PKCS7 : 0x0014,
- ID_X509_CERTID_F : 0x0015,
- ID_X509_CERTID_C : 0x0016,
- ID_STRONGENC : 0x0017,
- ID_RECORD_MGT : 0x0018,
- ID_X509_PKCS7_RL : 0x0019,
- ID_IBM1 : 0x0065,
- ID_IBM2 : 0x0066,
- ID_POSZIP : 0x4690,
-
- EF_ZIP64_OR_32 : 0xffffffff,
- EF_ZIP64_OR_16 : 0xffff,
- EF_ZIP64_SUNCOMP : 0,
- EF_ZIP64_SCOMP : 8,
- EF_ZIP64_RHO : 16,
- EF_ZIP64_DSN : 24
-};
diff --git a/node_modules/adm-zip/util/errors.js b/node_modules/adm-zip/util/errors.js
deleted file mode 100644
index db5d69e9a..000000000
--- a/node_modules/adm-zip/util/errors.js
+++ /dev/null
@@ -1,35 +0,0 @@
-module.exports = {
- /* Header error messages */
- "INVALID_LOC" : "Invalid LOC header (bad signature)",
- "INVALID_CEN" : "Invalid CEN header (bad signature)",
- "INVALID_END" : "Invalid END header (bad signature)",
-
- /* ZipEntry error messages*/
- "NO_DATA" : "Nothing to decompress",
- "BAD_CRC" : "CRC32 checksum failed",
- "FILE_IN_THE_WAY" : "There is a file in the way: %s",
- "UNKNOWN_METHOD" : "Invalid/unsupported compression method",
-
- /* Inflater error messages */
- "AVAIL_DATA" : "inflate::Available inflate data did not terminate",
- "INVALID_DISTANCE" : "inflate::Invalid literal/length or distance code in fixed or dynamic block",
- "TO_MANY_CODES" : "inflate::Dynamic block code description: too many length or distance codes",
- "INVALID_REPEAT_LEN" : "inflate::Dynamic block code description: repeat more than specified lengths",
- "INVALID_REPEAT_FIRST" : "inflate::Dynamic block code description: repeat lengths with no first length",
- "INCOMPLETE_CODES" : "inflate::Dynamic block code description: code lengths codes incomplete",
- "INVALID_DYN_DISTANCE": "inflate::Dynamic block code description: invalid distance code lengths",
- "INVALID_CODES_LEN": "inflate::Dynamic block code description: invalid literal/length code lengths",
- "INVALID_STORE_BLOCK" : "inflate::Stored block length did not match one's complement",
- "INVALID_BLOCK_TYPE" : "inflate::Invalid block type (type == 3)",
-
- /* ADM-ZIP error messages */
- "CANT_EXTRACT_FILE" : "Could not extract the file",
- "CANT_OVERRIDE" : "Target file already exists",
- "NO_ZIP" : "No zip file was loaded",
- "NO_ENTRY" : "Entry doesn't exist",
- "DIRECTORY_CONTENT_ERROR" : "A directory cannot have content",
- "FILE_NOT_FOUND" : "File not found: %s",
- "NOT_IMPLEMENTED" : "Not implemented",
- "INVALID_FILENAME" : "Invalid filename",
- "INVALID_FORMAT" : "Invalid or unsupported zip format. No END header found"
-}; \ No newline at end of file
diff --git a/node_modules/adm-zip/util/fattr.js b/node_modules/adm-zip/util/fattr.js
deleted file mode 100644
index 2191ec1c1..000000000
--- a/node_modules/adm-zip/util/fattr.js
+++ /dev/null
@@ -1,84 +0,0 @@
-var fs = require("fs"),
- pth = require("path");
-
-fs.existsSync = fs.existsSync || pth.existsSync;
-
-module.exports = function(/*String*/path) {
-
- var _path = path || "",
- _permissions = 0,
- _obj = newAttr(),
- _stat = null;
-
- function newAttr() {
- return {
- directory : false,
- readonly : false,
- hidden : false,
- executable : false,
- mtime : 0,
- atime : 0
- }
- }
-
- if (_path && fs.existsSync(_path)) {
- _stat = fs.statSync(_path);
- _obj.directory = _stat.isDirectory();
- _obj.mtime = _stat.mtime;
- _obj.atime = _stat.atime;
- _obj.executable = !!(1 & parseInt ((_stat.mode & parseInt ("777", 8)).toString (8)[0]));
- _obj.readonly = !!(2 & parseInt ((_stat.mode & parseInt ("777", 8)).toString (8)[0]));
- _obj.hidden = pth.basename(_path)[0] === ".";
- } else {
- console.warn("Invalid path: " + _path)
- }
-
- return {
-
- get directory () {
- return _obj.directory;
- },
-
- get readOnly () {
- return _obj.readonly;
- },
-
- get hidden () {
- return _obj.hidden;
- },
-
- get mtime () {
- return _obj.mtime;
- },
-
- get atime () {
- return _obj.atime;
- },
-
-
- get executable () {
- return _obj.executable;
- },
-
- decodeAttributes : function(val) {
-
- },
-
- encodeAttributes : function (val) {
-
- },
-
- toString : function() {
- return '{\n' +
- '\t"path" : "' + _path + ",\n" +
- '\t"isDirectory" : ' + _obj.directory + ",\n" +
- '\t"isReadOnly" : ' + _obj.readonly + ",\n" +
- '\t"isHidden" : ' + _obj.hidden + ",\n" +
- '\t"isExecutable" : ' + _obj.executable + ",\n" +
- '\t"mTime" : ' + _obj.mtime + "\n" +
- '\t"aTime" : ' + _obj.atime + "\n" +
- '}';
- }
- }
-
-};
diff --git a/node_modules/adm-zip/util/index.js b/node_modules/adm-zip/util/index.js
deleted file mode 100644
index 935fc1a4f..000000000
--- a/node_modules/adm-zip/util/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-module.exports = require("./utils");
-module.exports.Constants = require("./constants");
-module.exports.Errors = require("./errors");
-module.exports.FileAttr = require("./fattr"); \ No newline at end of file
diff --git a/node_modules/adm-zip/util/utils.js b/node_modules/adm-zip/util/utils.js
deleted file mode 100644
index 528109845..000000000
--- a/node_modules/adm-zip/util/utils.js
+++ /dev/null
@@ -1,199 +0,0 @@
-var fs = require("fs"),
- pth = require('path');
-
-fs.existsSync = fs.existsSync || pth.existsSync;
-
-module.exports = (function() {
-
- var crcTable = [],
- Constants = require('./constants'),
- Errors = require('./errors'),
-
- PATH_SEPARATOR = pth.normalize("/");
-
-
- function mkdirSync(/*String*/path) {
- var resolvedPath = path.split(PATH_SEPARATOR)[0];
- path.split(PATH_SEPARATOR).forEach(function(name) {
- if (!name || name.substr(-1,1) == ":") return;
- resolvedPath += PATH_SEPARATOR + name;
- var stat;
- try {
- stat = fs.statSync(resolvedPath);
- } catch (e) {
- fs.mkdirSync(resolvedPath);
- }
- if (stat && stat.isFile())
- throw Errors.FILE_IN_THE_WAY.replace("%s", resolvedPath);
- });
- }
-
- function findSync(/*String*/root, /*RegExp*/pattern, /*Boolean*/recoursive) {
- if (typeof pattern === 'boolean') {
- recoursive = pattern;
- pattern = undefined;
- }
- var files = [];
- fs.readdirSync(root).forEach(function(file) {
- var path = pth.join(root, file);
-
- if (fs.statSync(path).isDirectory() && recoursive)
- files = files.concat(findSync(path, pattern, recoursive));
-
- if (!pattern || pattern.test(path)) {
- files.push(pth.normalize(path) + (fs.statSync(path).isDirectory() ? PATH_SEPARATOR : ""));
- }
-
- });
- return files;
- }
-
- return {
- makeDir : function(/*String*/path) {
- mkdirSync(path);
- },
-
- crc32 : function(buf) {
- var b = new Buffer(4);
- if (!crcTable.length) {
- for (var n = 0; n < 256; n++) {
- var c = n;
- for (var k = 8; --k >= 0;) //
- if ((c & 1) != 0) { c = 0xedb88320 ^ (c >>> 1); } else { c = c >>> 1; }
- if (c < 0) {
- b.writeInt32LE(c, 0);
- c = b.readUInt32LE(0);
- }
- crcTable[n] = c;
- }
- }
- var crc = 0, off = 0, len = buf.length, c1 = ~crc;
- while(--len >= 0) c1 = crcTable[(c1 ^ buf[off++]) & 0xff] ^ (c1 >>> 8);
- crc = ~c1;
- b.writeInt32LE(crc & 0xffffffff, 0);
- return b.readUInt32LE(0);
- },
-
- methodToString : function(/*Number*/method) {
- switch (method) {
- case Constants.STORED:
- return 'STORED (' + method + ')';
- case Constants.DEFLATED:
- return 'DEFLATED (' + method + ')';
- default:
- return 'UNSUPPORTED (' + method + ')';
- }
-
- },
-
- writeFileTo : function(/*String*/path, /*Buffer*/content, /*Boolean*/overwrite, /*Number*/attr) {
- if (fs.existsSync(path)) {
- if (!overwrite)
- return false; // cannot overwite
-
- var stat = fs.statSync(path);
- if (stat.isDirectory()) {
- return false;
- }
- }
- var folder = pth.dirname(path);
- if (!fs.existsSync(folder)) {
- mkdirSync(folder);
- }
-
- var fd;
- try {
- fd = fs.openSync(path, 'w', 438); // 0666
- } catch(e) {
- fs.chmodSync(path, 438);
- fd = fs.openSync(path, 'w', 438);
- }
- if (fd) {
- fs.writeSync(fd, content, 0, content.length, 0);
- fs.closeSync(fd);
- }
- fs.chmodSync(path, attr || 438);
- return true;
- },
-
- writeFileToAsync : function(/*String*/path, /*Buffer*/content, /*Boolean*/overwrite, /*Number*/attr, /*Function*/callback) {
- if(typeof attr === 'function') {
- callback = attr;
- attr = undefined;
- }
-
- fs.exists(path, function(exists) {
- if(exists && !overwrite)
- return callback(false);
-
- fs.stat(path, function(err, stat) {
- if(exists &&stat.isDirectory()) {
- return callback(false);
- }
-
- var folder = pth.dirname(path);
- fs.exists(folder, function(exists) {
- if(!exists)
- mkdirSync(folder);
-
- fs.open(path, 'w', 438, function(err, fd) {
- if(err) {
- fs.chmod(path, 438, function(err) {
- fs.open(path, 'w', 438, function(err, fd) {
- fs.write(fd, content, 0, content.length, 0, function(err, written, buffer) {
- fs.close(fd, function(err) {
- fs.chmod(path, attr || 438, function() {
- callback(true);
- })
- });
- });
- });
- })
- } else {
- if(fd) {
- fs.write(fd, content, 0, content.length, 0, function(err, written, buffer) {
- fs.close(fd, function(err) {
- fs.chmod(path, attr || 438, function() {
- callback(true);
- })
- });
- });
- } else {
- fs.chmod(path, attr || 438, function() {
- callback(true);
- })
- }
- }
- });
- })
- })
- })
- },
-
- findFiles : function(/*String*/path) {
- return findSync(path, true);
- },
-
- getAttributes : function(/*String*/path) {
-
- },
-
- setAttributes : function(/*String*/path) {
-
- },
-
- toBuffer : function(input) {
- if (Buffer.isBuffer(input)) {
- return input;
- } else {
- if (input.length == 0) {
- return new Buffer(0)
- }
- return new Buffer(input, 'utf8');
- }
- },
-
- Constants : Constants,
- Errors : Errors
- }
-})();
diff --git a/node_modules/adm-zip/zipEntry.js b/node_modules/adm-zip/zipEntry.js
deleted file mode 100644
index 03b57d69f..000000000
--- a/node_modules/adm-zip/zipEntry.js
+++ /dev/null
@@ -1,284 +0,0 @@
-var Utils = require("./util"),
- Headers = require("./headers"),
- Constants = Utils.Constants,
- Methods = require("./methods");
-
-module.exports = function (/*Buffer*/input) {
-
- var _entryHeader = new Headers.EntryHeader(),
- _entryName = new Buffer(0),
- _comment = new Buffer(0),
- _isDirectory = false,
- uncompressedData = null,
- _extra = new Buffer(0);
-
- function getCompressedDataFromZip() {
- if (!input || !Buffer.isBuffer(input)) {
- return new Buffer(0);
- }
- _entryHeader.loadDataHeaderFromBinary(input);
- return input.slice(_entryHeader.realDataOffset, _entryHeader.realDataOffset + _entryHeader.compressedSize)
- }
-
- function crc32OK(data) {
- // if bit 3 (0x08) of the general-purpose flags field is set, then the CRC-32 and file sizes are not known when the header is written
- if (_entryHeader.flags & 0x8 != 0x8) {
- if (Utils.crc32(data) != _entryHeader.crc) {
- return false;
- }
- } else {
- // @TODO: load and check data descriptor header
- // The fields in the local header are filled with zero, and the CRC-32 and size are appended in a 12-byte structure
- // (optionally preceded by a 4-byte signature) immediately after the compressed data:
- }
- return true;
- }
-
- function decompress(/*Boolean*/async, /*Function*/callback, /*String*/pass) {
- if(typeof callback === 'undefined' && typeof async === 'string') {
- pass=async;
- async=void 0;
- }
- if (_isDirectory) {
- if (async && callback) {
- callback(new Buffer(0), Utils.Errors.DIRECTORY_CONTENT_ERROR); //si added error.
- }
- return new Buffer(0);
- }
-
- var compressedData = getCompressedDataFromZip();
-
- if (compressedData.length == 0) {
- if (async && callback) callback(compressedData, Utils.Errors.NO_DATA);//si added error.
- return compressedData;
- }
-
- var data = new Buffer(_entryHeader.size);
- data.fill(0);
-
- switch (_entryHeader.method) {
- case Utils.Constants.STORED:
- compressedData.copy(data);
- if (!crc32OK(data)) {
- if (async && callback) callback(data, Utils.Errors.BAD_CRC);//si added error
- return Utils.Errors.BAD_CRC;
- } else {//si added otherwise did not seem to return data.
- if (async && callback) callback(data);
- return data;
- }
- break;
- case Utils.Constants.DEFLATED:
- var inflater = new Methods.Inflater(compressedData);
- if (!async) {
- inflater.inflate(data);
- if (!crc32OK(data)) {
- console.warn(Utils.Errors.BAD_CRC + " " + _entryName.toString())
- }
- return data;
- } else {
- inflater.inflateAsync(function(result) {
- result.copy(data, 0);
- if (!crc32OK(data)) {
- if (callback) callback(data, Utils.Errors.BAD_CRC); //si added error
- } else { //si added otherwise did not seem to return data.
- if (callback) callback(data);
- }
- })
- }
- break;
- default:
- if (async && callback) callback(new Buffer(0), Utils.Errors.UNKNOWN_METHOD);
- return Utils.Errors.UNKNOWN_METHOD;
- }
- }
-
- function compress(/*Boolean*/async, /*Function*/callback) {
- if ((!uncompressedData || !uncompressedData.length) && Buffer.isBuffer(input)) {
- // no data set or the data wasn't changed to require recompression
- if (async && callback) callback(getCompressedDataFromZip());
- return getCompressedDataFromZip();
- }
-
- if (uncompressedData.length && !_isDirectory) {
- var compressedData;
- // Local file header
- switch (_entryHeader.method) {
- case Utils.Constants.STORED:
- _entryHeader.compressedSize = _entryHeader.size;
-
- compressedData = new Buffer(uncompressedData.length);
- uncompressedData.copy(compressedData);
-
- if (async && callback) callback(compressedData);
- return compressedData;
-
- break;
- default:
- case Utils.Constants.DEFLATED:
-
- var deflater = new Methods.Deflater(uncompressedData);
- if (!async) {
- var deflated = deflater.deflate();
- _entryHeader.compressedSize = deflated.length;
- return deflated;
- } else {
- deflater.deflateAsync(function(data) {
- compressedData = new Buffer(data.length);
- _entryHeader.compressedSize = data.length;
- data.copy(compressedData);
- callback && callback(compressedData);
- })
- }
- deflater = null;
- break;
- }
- } else {
- if (async && callback) {
- callback(new Buffer(0));
- } else {
- return new Buffer(0);
- }
- }
- }
-
- function readUInt64LE(buffer, offset) {
- return (buffer.readUInt32LE(offset + 4) << 4) + buffer.readUInt32LE(offset);
- }
-
- function parseExtra(data) {
- var offset = 0;
- var signature, size, part;
- while(offset<data.length) {
- signature = data.readUInt16LE(offset);
- offset += 2;
- size = data.readUInt16LE(offset);
- offset += 2;
- part = data.slice(offset, offset+size);
- offset += size;
- if(Constants.ID_ZIP64 === signature) {
- parseZip64ExtendedInformation(part);
- }
- }
- }
-
- //Override header field values with values from the ZIP64 extra field
- function parseZip64ExtendedInformation(data) {
- var size, compressedSize, offset, diskNumStart;
-
- if(data.length >= Constants.EF_ZIP64_SCOMP) {
- size = readUInt64LE(data, Constants.EF_ZIP64_SUNCOMP);
- if(_entryHeader.size === Constants.EF_ZIP64_OR_32) {
- _entryHeader.size = size;
- }
- }
- if(data.length >= Constants.EF_ZIP64_RHO) {
- compressedSize = readUInt64LE(data, Constants.EF_ZIP64_SCOMP);
- if(_entryHeader.compressedSize === Constants.EF_ZIP64_OR_32) {
- _entryHeader.compressedSize = compressedSize;
- }
- }
- if(data.length >= Constants.EF_ZIP64_DSN) {
- offset = readUInt64LE(data, Constants.EF_ZIP64_RHO);
- if(_entryHeader.offset === Constants.EF_ZIP64_OR_32) {
- _entryHeader.offset = offset;
- }
- }
- if(data.length >= Constants.EF_ZIP64_DSN+4) {
- diskNumStart = data.readUInt32LE(Constants.EF_ZIP64_DSN);
- if(_entryHeader.diskNumStart === Constants.EF_ZIP64_OR_16) {
- _entryHeader.diskNumStart = diskNumStart;
- }
- }
- }
-
-
- return {
- get entryName () { return _entryName.toString(); },
- get rawEntryName() { return _entryName; },
- set entryName (val) {
- _entryName = Utils.toBuffer(val);
- var lastChar = _entryName[_entryName.length - 1];
- _isDirectory = (lastChar == 47) || (lastChar == 92);
- _entryHeader.fileNameLength = _entryName.length;
- },
-
- get extra () { return _extra; },
- set extra (val) {
- _extra = val;
- _entryHeader.extraLength = val.length;
- parseExtra(val);
- },
-
- get comment () { return _comment.toString(); },
- set comment (val) {
- _comment = Utils.toBuffer(val);
- _entryHeader.commentLength = _comment.length;
- },
-
- get name () { var n = _entryName.toString(); return _isDirectory ? n.substr(n.length - 1).split("/").pop() : n.split("/").pop(); },
- get isDirectory () { return _isDirectory },
-
- getCompressedData : function() {
- return compress(false, null)
- },
-
- getCompressedDataAsync : function(/*Function*/callback) {
- compress(true, callback)
- },
-
- setData : function(value) {
- uncompressedData = Utils.toBuffer(value);
- if (!_isDirectory && uncompressedData.length) {
- _entryHeader.size = uncompressedData.length;
- _entryHeader.method = Utils.Constants.DEFLATED;
- _entryHeader.crc = Utils.crc32(value);
- } else { // folders and blank files should be stored
- _entryHeader.method = Utils.Constants.STORED;
- }
- },
-
- getData : function(pass) {
- return decompress(false, null, pass);
- },
-
- getDataAsync : function(/*Function*/callback, pass) {
- decompress(true, callback, pass)
- },
-
- set attr(attr) { _entryHeader.attr = attr; },
- get attr() { return _entryHeader.attr; },
-
- set header(/*Buffer*/data) {
- _entryHeader.loadFromBinary(data);
- },
-
- get header() {
- return _entryHeader;
- },
-
- packHeader : function() {
- var header = _entryHeader.entryHeaderToBinary();
- // add
- _entryName.copy(header, Utils.Constants.CENHDR);
- if (_entryHeader.extraLength) {
- _extra.copy(header, Utils.Constants.CENHDR + _entryName.length)
- }
- if (_entryHeader.commentLength) {
- _comment.copy(header, Utils.Constants.CENHDR + _entryName.length + _entryHeader.extraLength, _comment.length);
- }
- return header;
- },
-
- toString : function() {
- return '{\n' +
- '\t"entryName" : "' + _entryName.toString() + "\",\n" +
- '\t"name" : "' + _entryName.toString().split("/").pop() + "\",\n" +
- '\t"comment" : "' + _comment.toString() + "\",\n" +
- '\t"isDirectory" : ' + _isDirectory + ",\n" +
- '\t"header" : ' + _entryHeader.toString().replace(/\t/mg, "\t\t") + ",\n" +
- '\t"compressedData" : <' + (input && input.length + " bytes buffer" || "null") + ">\n" +
- '\t"data" : <' + (uncompressedData && uncompressedData.length + " bytes buffer" || "null") + ">\n" +
- '}';
- }
- }
-};
diff --git a/node_modules/adm-zip/zipFile.js b/node_modules/adm-zip/zipFile.js
deleted file mode 100644
index ed60fe038..000000000
--- a/node_modules/adm-zip/zipFile.js
+++ /dev/null
@@ -1,311 +0,0 @@
-var ZipEntry = require("./zipEntry"),
- Headers = require("./headers"),
- Utils = require("./util");
-
-module.exports = function(/*String|Buffer*/input, /*Number*/inputType) {
- var entryList = [],
- entryTable = {},
- _comment = new Buffer(0),
- filename = "",
- fs = require("fs"),
- inBuffer = null,
- mainHeader = new Headers.MainHeader();
-
- if (inputType == Utils.Constants.FILE) {
- // is a filename
- filename = input;
- inBuffer = fs.readFileSync(filename);
- readMainHeader();
- } else if (inputType == Utils.Constants.BUFFER) {
- // is a memory buffer
- inBuffer = input;
- readMainHeader();
- } else {
- // none. is a new file
- }
-
- function readEntries() {
- entryTable = {};
- entryList = new Array(mainHeader.diskEntries); // total number of entries
- var index = mainHeader.offset; // offset of first CEN header
- for(var i = 0; i < entryList.length; i++) {
-
- var tmp = index,
- entry = new ZipEntry(inBuffer);
- entry.header = inBuffer.slice(tmp, tmp += Utils.Constants.CENHDR);
-
- entry.entryName = inBuffer.slice(tmp, tmp += entry.header.fileNameLength);
-
- if (entry.header.extraLength) {
- entry.extra = inBuffer.slice(tmp, tmp += entry.header.extraLength);
- }
-
- if (entry.header.commentLength)
- entry.comment = inBuffer.slice(tmp, tmp + entry.header.commentLength);
-
- index += entry.header.entryHeaderSize;
-
- entryList[i] = entry;
- entryTable[entry.entryName] = entry;
- }
- }
-
- function readMainHeader() {
- var i = inBuffer.length - Utils.Constants.ENDHDR, // END header size
- n = Math.max(0, i - 0xFFFF), // 0xFFFF is the max zip file comment length
- endOffset = -1; // Start offset of the END header
-
- for (i; i >= n; i--) {
- if (inBuffer[i] != 0x50) continue; // quick check that the byte is 'P'
- if (inBuffer.readUInt32LE(i) == Utils.Constants.ENDSIG) { // "PK\005\006"
- endOffset = i;
- break;
- }
- }
- if (!~endOffset)
- throw Utils.Errors.INVALID_FORMAT;
-
- mainHeader.loadFromBinary(inBuffer.slice(endOffset, endOffset + Utils.Constants.ENDHDR));
- if (mainHeader.commentLength) {
- _comment = inBuffer.slice(endOffset + Utils.Constants.ENDHDR);
- }
- readEntries();
- }
-
- return {
- /**
- * Returns an array of ZipEntry objects existent in the current opened archive
- * @return Array
- */
- get entries () {
- return entryList;
- },
-
- /**
- * Archive comment
- * @return {String}
- */
- get comment () { return _comment.toString(); },
- set comment(val) {
- mainHeader.commentLength = val.length;
- _comment = val;
- },
-
- /**
- * Returns a reference to the entry with the given name or null if entry is inexistent
- *
- * @param entryName
- * @return ZipEntry
- */
- getEntry : function(/*String*/entryName) {
- return entryTable[entryName] || null;
- },
-
- /**
- * Adds the given entry to the entry list
- *
- * @param entry
- */
- setEntry : function(/*ZipEntry*/entry) {
- entryList.push(entry);
- entryTable[entry.entryName] = entry;
- mainHeader.totalEntries = entryList.length;
- },
-
- /**
- * Removes the entry with the given name from the entry list.
- *
- * If the entry is a directory, then all nested files and directories will be removed
- * @param entryName
- */
- deleteEntry : function(/*String*/entryName) {
- var entry = entryTable[entryName];
- if (entry && entry.isDirectory) {
- var _self = this;
- this.getEntryChildren(entry).forEach(function(child) {
- if (child.entryName != entryName) {
- _self.deleteEntry(child.entryName)
- }
- })
- }
- entryList.splice(entryList.indexOf(entry), 1);
- delete(entryTable[entryName]);
- mainHeader.totalEntries = entryList.length;
- },
-
- /**
- * Iterates and returns all nested files and directories of the given entry
- *
- * @param entry
- * @return Array
- */
- getEntryChildren : function(/*ZipEntry*/entry) {
- if (entry.isDirectory) {
- var list = [],
- name = entry.entryName,
- len = name.length;
-
- entryList.forEach(function(zipEntry) {
- if (zipEntry.entryName.substr(0, len) == name) {
- list.push(zipEntry);
- }
- });
- return list;
- }
- return []
- },
-
- /**
- * Returns the zip file
- *
- * @return Buffer
- */
- compressToBuffer : function() {
- if (entryList.length > 1) {
- entryList.sort(function(a, b) {
- var nameA = a.entryName.toLowerCase();
- var nameB = b.entryName.toLowerCase();
- if (nameA < nameB) {return -1}
- if (nameA > nameB) {return 1}
- return 0;
- });
- }
-
- var totalSize = 0,
- dataBlock = [],
- entryHeaders = [],
- dindex = 0;
-
- mainHeader.size = 0;
- mainHeader.offset = 0;
-
- entryList.forEach(function(entry) {
- entry.header.offset = dindex;
-
- // compress data and set local and entry header accordingly. Reason why is called first
- var compressedData = entry.getCompressedData();
- // data header
- var dataHeader = entry.header.dataHeaderToBinary();
- var postHeader = new Buffer(entry.entryName + entry.extra.toString());
- var dataLength = dataHeader.length + postHeader.length + compressedData.length;
-
- dindex += dataLength;
-
- dataBlock.push(dataHeader);
- dataBlock.push(postHeader);
- dataBlock.push(compressedData);
-
- var entryHeader = entry.packHeader();
- entryHeaders.push(entryHeader);
- mainHeader.size += entryHeader.length;
- totalSize += (dataLength + entryHeader.length);
- });
-
- totalSize += mainHeader.mainHeaderSize; // also includes zip file comment length
- // point to end of data and begining of central directory first record
- mainHeader.offset = dindex;
-
- dindex = 0;
- var outBuffer = new Buffer(totalSize);
- dataBlock.forEach(function(content) {
- content.copy(outBuffer, dindex); // write data blocks
- dindex += content.length;
- });
- entryHeaders.forEach(function(content) {
- content.copy(outBuffer, dindex); // write central directory entries
- dindex += content.length;
- });
-
- var mh = mainHeader.toBinary();
- if (_comment) {
- _comment.copy(mh, Utils.Constants.ENDHDR); // add zip file comment
- }
-
- mh.copy(outBuffer, dindex); // write main header
-
- return outBuffer
- },
-
- toAsyncBuffer : function(/*Function*/onSuccess,/*Function*/onFail,/*Function*/onItemStart,/*Function*/onItemEnd) {
- if (entryList.length > 1) {
- entryList.sort(function(a, b) {
- var nameA = a.entryName.toLowerCase();
- var nameB = b.entryName.toLowerCase();
- if (nameA > nameB) {return -1}
- if (nameA < nameB) {return 1}
- return 0;
- });
- }
-
- var totalSize = 0,
- dataBlock = [],
- entryHeaders = [],
- dindex = 0;
-
- mainHeader.size = 0;
- mainHeader.offset = 0;
-
- var compress=function(entryList){
- var self=arguments.callee;
- var entry;
- if(entryList.length){
- var entry=entryList.pop();
- var name=entry.entryName + entry.extra.toString();
- if(onItemStart)onItemStart(name);
- entry.getCompressedDataAsync(function(compressedData){
- if(onItemEnd)onItemEnd(name);
-
- entry.header.offset = dindex;
- // data header
- var dataHeader = entry.header.dataHeaderToBinary();
- var postHeader = new Buffer(name);
- var dataLength = dataHeader.length + postHeader.length + compressedData.length;
-
- dindex += dataLength;
-
- dataBlock.push(dataHeader);
- dataBlock.push(postHeader);
- dataBlock.push(compressedData);
-
- var entryHeader = entry.packHeader();
- entryHeaders.push(entryHeader);
- mainHeader.size += entryHeader.length;
- totalSize += (dataLength + entryHeader.length);
-
- if(entryList.length){
- self(entryList);
- }else{
-
-
- totalSize += mainHeader.mainHeaderSize; // also includes zip file comment length
- // point to end of data and begining of central directory first record
- mainHeader.offset = dindex;
-
- dindex = 0;
- var outBuffer = new Buffer(totalSize);
- dataBlock.forEach(function(content) {
- content.copy(outBuffer, dindex); // write data blocks
- dindex += content.length;
- });
- entryHeaders.forEach(function(content) {
- content.copy(outBuffer, dindex); // write central directory entries
- dindex += content.length;
- });
-
- var mh = mainHeader.toBinary();
- if (_comment) {
- _comment.copy(mh, Utils.Constants.ENDHDR); // add zip file comment
- }
-
- mh.copy(outBuffer, dindex); // write main header
-
- onSuccess(outBuffer);
- }
- });
- }
- };
-
- compress(entryList);
- }
- }
-};
diff --git a/node_modules/babel-runtime/node_modules/core-js/CHANGELOG.md b/node_modules/babel-runtime/node_modules/core-js/CHANGELOG.md
deleted file mode 100644
index b597d55d6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/CHANGELOG.md
+++ /dev/null
@@ -1,561 +0,0 @@
-## Changelog
-##### 2.4.1 - 2016.07.18
-- fixed `script` tag for some parsers, [#204](https://github.com/zloirock/core-js/issues/204), [#216](https://github.com/zloirock/core-js/issues/216)
-- removed some unused variables, [#217](https://github.com/zloirock/core-js/issues/217), [#218](https://github.com/zloirock/core-js/issues/218)
-- fixed MS Edge `Reflect.construct` and `Reflect.apply` - they should not allow primitive as `argumentsList` argument
-
-##### 1.2.7 [LEGACY] - 2016.07.18
-- some fixes for issues like [#159](https://github.com/zloirock/core-js/issues/159), [#186](https://github.com/zloirock/core-js/issues/186), [#194](https://github.com/zloirock/core-js/issues/194), [#207](https://github.com/zloirock/core-js/issues/207)
-
-##### 2.4.0 - 2016.05.08
-- Added `Observable`, [stage 1 proposal](https://github.com/zenparsing/es-observable)
-- Fixed behavior `Object.{getOwnPropertySymbols, getOwnPropertyDescriptor}` and `Object#propertyIsEnumerable` on `Object.prototype`
-- `Reflect.construct` and `Reflect.apply` should throw an error if `argumentsList` argument is not an object, [#194](https://github.com/zloirock/core-js/issues/194)
-
-##### 2.3.0 - 2016.04.24
-- Added `asap` for enqueuing microtasks, [stage 0 proposal](https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask)
-- Added well-known symbol `Symbol.asyncIterator` for [stage 2 async iteration proposal](https://github.com/tc39/proposal-async-iteration)
-- Added well-known symbol `Symbol.observable` for [stage 1 observables proposal](https://github.com/zenparsing/es-observable)
-- `String#{padStart, padEnd}` returns original string if filler is empty string, [TC39 meeting notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-03/march-29.md#stringprototypepadstartpadend)
-- `Object.values` and `Object.entries` moved to stage 4 from 3, [TC39 meeting notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-03/march-29.md#objectvalues--objectentries)
-- `System.global` moved to stage 2 from 1, [TC39 meeting notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-03/march-29.md#systemglobal)
-- `Map#toJSON` and `Set#toJSON` rejected and will be removed from the next major release, [TC39 meeting notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-03/march-31.md#mapprototypetojsonsetprototypetojson)
-- `Error.isError` withdrawn and will be removed from the next major release, [TC39 meeting notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-03/march-29.md#erroriserror)
-- Added fallback for `Function#name` on non-extensible functions and functions with broken `toString` conversion, [#193](https://github.com/zloirock/core-js/issues/193)
-
-##### 2.2.2 - 2016.04.06
-- Added conversion `-0` to `+0` to `Array#{indexOf, lastIndexOf}`, [ES2016 fix](https://github.com/tc39/ecma262/pull/316)
-- Added fixes for some `Math` methods in Tor Browser
-- `Array.{from, of}` no longer calls prototype setters
-- Added workaround over Chrome DevTools strange behavior, [#186](https://github.com/zloirock/core-js/issues/186)
-
-##### 2.2.1 - 2016.03.19
-- Fixed `Object.getOwnPropertyNames(window)` `2.1+` versions bug, [#181](https://github.com/zloirock/core-js/issues/181)
-
-##### 2.2.0 - 2016.03.15
-- Added `String#matchAll`, [proposal](https://github.com/tc39/String.prototype.matchAll)
-- Added `Object#__(define|lookup)[GS]etter__`, [annex B ES2017](https://github.com/tc39/ecma262/pull/381)
-- Added `@@toPrimitive` methods to `Date` and `Symbol`
-- Fixed `%TypedArray%#slice` in Edge ~ 13 (throws with `@@species` and wrapped / inherited constructor)
-- Some other minor fixes
-
-##### 2.1.5 - 2016.03.12
-- Improved support NodeJS domains in `Promise#then`, [#180](https://github.com/zloirock/core-js/issues/180)
-- Added fallback for `Date#toJSON` bug in Qt Script, [#173](https://github.com/zloirock/core-js/issues/173#issuecomment-193972502)
-
-##### 2.1.4 - 2016.03.08
-- Added fallback for `Symbol` polyfill in Qt Script, [#173](https://github.com/zloirock/core-js/issues/173)
-- Added one more fallback for IE11 `Script Access Denied` error with iframes, [#165](https://github.com/zloirock/core-js/issues/165)
-
-##### 2.1.3 - 2016.02.29
-- Added fallback for [`es6-promise` package bug](https://github.com/stefanpenner/es6-promise/issues/169), [#176](https://github.com/zloirock/core-js/issues/176)
-
-##### 2.1.2 - 2016.02.29
-- Some minor `Promise` fixes:
- - Browsers `rejectionhandled` event better HTML spec complaint
- - Errors in unhandled rejection handlers should not cause any problems
- - Fixed typo in feature detection
-
-##### 2.1.1 - 2016.02.22
-- Some `Promise` improvements:
- - Feature detection:
- - **Added detection unhandled rejection tracking support - now it's available everywhere**, [#140](https://github.com/zloirock/core-js/issues/140)
- - Added detection `@@species` pattern support for completely correct subclassing
- - Removed usage `Object.setPrototypeOf` from feature detection and noisy console message about it in FF
- - `Promise.all` fixed for some very specific cases
-
-##### 2.1.0 - 2016.02.09
-- **API**:
- - ES5 polyfills are split and logic, used in other polyfills, moved to internal modules
- - **All entry point works in ES3 environment like IE8- without `core-js/(library/)es5`**
- - **Added all missed single entry points for ES5 polyfills**
- - Separated ES5 polyfills moved to the ES6 namespace. Why?
- - Mainly, for prevent duplication features in different namespaces - logic of most required ES5 polyfills changed in ES6+:
- - Already added changes for: `Object` statics - should accept primitives, new whitespaces lists in `String#trim`, `parse(Int|float)`, `RegExp#toString` logic, `String#split`, etc
- - Should be changed in the future: `@@species` and `ToLength` logic in `Array` methods, `Date` parsing, `Function#bind`, etc
- - Should not be changed only several features like `Array.isArray` and `Date.now`
- - Some ES5 polyfills required for modern engines
- - All old entry points should work fine, but in the next major release API can be changed
- - `Object.getOwnPropertyDescriptors` moved to the stage 3, [January TC39 meeting](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-01/2016-01-28.md#objectgetownpropertydescriptors-to-stage-3-jordan-harband-low-priority-but-super-quick)
- - Added `umd` option for [custom build process](https://github.com/zloirock/core-js#custom-build-from-external-scripts), [#169](https://github.com/zloirock/core-js/issues/169)
- - Returned entry points for `Array` statics, removed in `2.0`, for compatibility with `babel` `6` and for future fixes
-- **Deprecated**:
- - `Reflect.enumerate` deprecated and will be removed from the next major release, [January TC39 meeting](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-01/2016-01-28.md#5xix-revisit-proxy-enumerate---revisit-decision-to-exhaust-iterator)
-- **New Features**:
- - Added [`Reflect` metadata API](https://github.com/jonathandturner/decorators/blob/master/specs/metadata.md) as a pre-strawman feature, [#152](https://github.com/zloirock/core-js/issues/152):
- - `Reflect.defineMetadata`
- - `Reflect.deleteMetadata`
- - `Reflect.getMetadata`
- - `Reflect.getMetadataKeys`
- - `Reflect.getOwnMetadata`
- - `Reflect.getOwnMetadataKeys`
- - `Reflect.hasMetadata`
- - `Reflect.hasOwnMetadata`
- - `Reflect.metadata`
- - Implementation / fixes `Date#toJSON`
- - Fixes for `parseInt` and `Number.parseInt`
- - Fixes for `parseFloat` and `Number.parseFloat`
- - Fixes for `RegExp#toString`
- - Fixes for `Array#sort`
- - Fixes for `Number#toFixed`
- - Fixes for `Number#toPrecision`
- - Additional fixes for `String#split` (`RegExp#@@split`)
-- **Improvements**:
- - Correct subclassing wrapped collections, `Number` and `RegExp` constructors with native class syntax
- - Correct support `SharedArrayBuffer` and buffers from other realms in typed arrays wrappers
- - Additional validations for `Object.{defineProperty, getOwnPropertyDescriptor}` and `Reflect.defineProperty`
-- **Bug Fixes**:
- - Fixed some cases `Array#lastIndexOf` with negative second argument
-
-##### 2.0.3 - 2016.01.11
-- Added fallback for V8 ~ Chrome 49 `Promise` subclassing bug causes unhandled rejection on feature detection, [#159](https://github.com/zloirock/core-js/issues/159)
-- Added fix for very specific environments with global `window === null`
-
-##### 2.0.2 - 2016.01.04
-- Temporarily removed `length` validation from `Uint8Array` constructor wrapper. Reason - [bug in `ws` module](https://github.com/websockets/ws/pull/645) (-> `socket.io`) which passes to `Buffer` constructor -> `Uint8Array` float and uses [the `V8` bug](https://code.google.com/p/v8/issues/detail?id=4552) for conversion to int (by the spec should be thrown an error). [It creates problems for many people.](https://github.com/karma-runner/karma/issues/1768) I hope, it will be returned after fixing this bug in `V8`.
-
-##### 2.0.1 - 2015.12.31
-- forced usage `Promise.resolve` polyfill in the `library` version for correct work with wrapper
-- `Object.assign` should be defined in the strict mode -> throw an error on extension non-extensible objects, [#154](https://github.com/zloirock/core-js/issues/154)
-
-##### 2.0.0 - 2015.12.24
-- added implementations and fixes [Typed Arrays](https://github.com/zloirock/core-js#ecmascript-6-typed-arrays)-related features
- - `ArrayBuffer`, `ArrayBuffer.isView`, `ArrayBuffer#slice`
- - `DataView` with all getter / setter methods
- - `Int8Array`, `Uint8Array`, `Uint8ClampedArray`, `Int16Array`, `Uint16Array`, `Int32Array`, `Uint32Array`, `Float32Array` and `Float64Array` constructors
- - `%TypedArray%.{for, of}`, `%TypedArray%#{copyWithin, every, fill, filter, find, findIndex, forEach, indexOf, includes, join, lastIndexOf, map, reduce, reduceRight, reverse, set, slice, some, sort, subarray, values, keys, entries, @@iterator, ...}`
-- added [`System.global`](https://github.com/zloirock/core-js#ecmascript-7-proposals), [proposal](https://github.com/tc39/proposal-global), [November TC39 meeting](https://github.com/rwaldron/tc39-notes/tree/master/es7/2015-11/nov-19.md#systemglobal-jhd)
-- added [`Error.isError`](https://github.com/zloirock/core-js#ecmascript-7-proposals), [proposal](https://github.com/ljharb/proposal-is-error), [November TC39 meeting](https://github.com/rwaldron/tc39-notes/tree/master/es7/2015-11/nov-19.md#jhd-erroriserror)
-- added [`Math.{iaddh, isubh, imulh, umulh}`](https://github.com/zloirock/core-js#ecmascript-7-proposals), [proposal](https://gist.github.com/BrendanEich/4294d5c212a6d2254703)
-- `RegExp.escape` moved from the `es7` to the non-standard `core` namespace, [July TC39 meeting](https://github.com/rwaldron/tc39-notes/blob/master/es7/2015-07/july-28.md#62-regexpescape) - too slow, but it's condition of stability, [#116](https://github.com/zloirock/core-js/issues/116)
-- [`Promise`](https://github.com/zloirock/core-js#ecmascript-6-promise)
- - some performance optimisations
- - added basic support [`rejectionHandled` event / `onrejectionhandled` handler](https://github.com/zloirock/core-js#unhandled-rejection-tracking) to the polyfill
- - removed usage `@@species` from `Promise.{all, race}`, [November TC39 meeting](https://github.com/rwaldron/tc39-notes/tree/master/es7/2015-11/nov-18.md#conclusionresolution-2)
-- some improvements [collections polyfills](https://github.com/zloirock/core-js#ecmascript-6-collections)
- - `O(1)` and preventing possible leaks with frozen keys, [#134](https://github.com/zloirock/core-js/issues/134)
- - correct observable state object keys
-- renamed `String#{padLeft, padRight}` -> [`String#{padStart, padEnd}`](https://github.com/zloirock/core-js#ecmascript-7-proposals), [proposal](https://github.com/tc39/proposal-string-pad-start-end), [November TC39 meeting](https://github.com/rwaldron/tc39-notes/tree/master/es7/2015-11/nov-17.md#conclusionresolution-2) (they want to rename it on each meeting?O_o), [#132](https://github.com/zloirock/core-js/issues/132)
-- added [`String#{trimStart, trimEnd}` as aliases for `String#{trimLeft, trimRight}`](https://github.com/zloirock/core-js#ecmascript-7-proposals), [proposal](https://github.com/sebmarkbage/ecmascript-string-left-right-trim), [November TC39 meeting](https://github.com/rwaldron/tc39-notes/tree/master/es7/2015-11/nov-17.md#conclusionresolution-2)
-- added [annex B HTML methods](https://github.com/zloirock/core-js#ecmascript-6-string) - ugly, but also [the part of the spec](http://www.ecma-international.org/ecma-262/6.0/#sec-string.prototype.anchor)
-- added little fix for [`Date#toString`](https://github.com/zloirock/core-js#ecmascript-6-date) - `new Date(NaN).toString()` [should be `'Invalid Date'`](http://www.ecma-international.org/ecma-262/6.0/#sec-todatestring)
-- added [`{keys, values, entries, @@iterator}` methods to DOM collections](https://github.com/zloirock/core-js#iterable-dom-collections) which should have [iterable interface](https://heycam.github.io/webidl/#idl-iterable) or should be [inherited from `Array`](https://heycam.github.io/webidl/#LegacyArrayClass) - `NodeList`, `DOMTokenList`, `MediaList`, `StyleSheetList`, `CSSRuleList`.
-- removed Mozilla `Array` generics - [deprecated and will be removed from FF](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Array_generic_methods), [looks like strawman is dead](http://wiki.ecmascript.org/doku.php?id=strawman:array_statics), available [alternative shim](https://github.com/plusdude/array-generics)
-- removed `core.log` module
-- CommonJS API
- - added entry points for [virtual methods](https://github.com/zloirock/core-js#commonjs-and-prototype-methods-without-global-namespace-pollution)
- - added entry points for [stages proposals](https://github.com/zloirock/core-js#ecmascript-7-proposals)
- - some other minor changes
-- [custom build from external scripts](https://github.com/zloirock/core-js#custom-build-from-external-scripts) moved to the separate package for preventing problems with dependencies
-- changed `$` prefix for internal modules file names because Team Foundation Server does not support it, [#129](https://github.com/zloirock/core-js/issues/129)
-- additional fix for `SameValueZero` in V8 ~ Chromium 39-42 collections
-- additional fix for FF27 `Array` iterator
-- removed usage shortcuts for `arguments` object - old WebKit bug, [#150](https://github.com/zloirock/core-js/issues/150)
-- `{Map, Set}#forEach` non-generic, [#144](https://github.com/zloirock/core-js/issues/144)
-- many other improvements
-
-##### 1.2.6 - 2015.11.09
-* reject with `TypeError` on attempt resolve promise itself
-* correct behavior with broken `Promise` subclass constructors / methods
-* added `Promise`-based fallback for microtask
-* fixed V8 and FF `Array#{values, @@iterator}.name`
-* fixed IE7- `[1, 2].join(undefined) -> '1,2'`
-* some other fixes / improvements / optimizations
-
-##### 1.2.5 - 2015.11.02
-* some more `Number` constructor fixes:
- * fixed V8 ~ Node 0.8 bug: `Number('+0x1')` should be `NaN`
- * fixed `Number(' 0b1\n')` case, should be `1`
- * fixed `Number()` case, should be `0`
-
-##### 1.2.4 - 2015.11.01
-* fixed `Number('0b12') -> NaN` case in the shim
-* fixed V8 ~ Chromium 40- bug - `Weak(Map|Set)#{delete, get, has}` should not throw errors [#124](https://github.com/zloirock/core-js/issues/124)
-* some other fixes and optimizations
-
-##### 1.2.3 - 2015.10.23
-* fixed some problems related old V8 bug `Object('a').propertyIsEnumerable(0) // => false`, for example, `Object.assign({}, 'qwe')` from the last release
-* fixed `.name` property and `Function#toString` conversion some polyfilled methods
-* fixed `Math.imul` arity in Safari 8-
-
-##### 1.2.2 - 2015.10.18
-* improved optimisations for V8
-* fixed build process from external packages, [#120](https://github.com/zloirock/core-js/pull/120)
-* one more `Object.{assign, values, entries}` fix for [**very** specific case](https://github.com/ljharb/proposal-object-values-entries/issues/5)
-
-##### 1.2.1 - 2015.10.02
-* replaced fix `JSON.stringify` + `Symbol` behavior from `.toJSON` method to wrapping `JSON.stringify` - little more correct, [compat-table/642](https://github.com/kangax/compat-table/pull/642)
-* fixed typo which broke tasks scheduler in WebWorkers in old FF, [#114](https://github.com/zloirock/core-js/pull/114)
-
-##### 1.2.0 - 2015.09.27
-* added browser [`Promise` rejection hook](#unhandled-rejection-tracking), [#106](https://github.com/zloirock/core-js/issues/106)
-* added correct [`IsRegExp`](http://www.ecma-international.org/ecma-262/6.0/#sec-isregexp) logic to [`String#{includes, startsWith, endsWith}`](https://github.com/zloirock/core-js/#ecmascript-6-string) and [`RegExp` constructor](https://github.com/zloirock/core-js/#ecmascript-6-regexp), `@@match` case, [example](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/match#Disabling_the_isRegExp_check)
-* updated [`String#leftPad`](https://github.com/zloirock/core-js/#ecmascript-7-proposals) [with proposal](https://github.com/ljharb/proposal-string-pad-left-right/issues/6): string filler truncated from the right side
-* replaced V8 [`Object.assign`](https://github.com/zloirock/core-js/#ecmascript-6-object) - its properties order not only [incorrect](https://github.com/sindresorhus/object-assign/issues/22), it is non-deterministic and it causes some problems
-* fixed behavior with deleted in getters properties for `Object.{`[`assign`](https://github.com/zloirock/core-js/#ecmascript-6-object)`, `[`entries, values`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)`}`, [example](http://goo.gl/iQE01c)
-* fixed [`Math.sinh`](https://github.com/zloirock/core-js/#ecmascript-6-math) with very small numbers in V8 near Chromium 38
-* some other fixes and optimizations
-
-##### 1.1.4 - 2015.09.05
-* fixed support symbols in FF34-35 [`Object.assign`](https://github.com/zloirock/core-js/#ecmascript-6-object)
-* fixed [collections iterators](https://github.com/zloirock/core-js/#ecmascript-6-iterators) in FF25-26
-* fixed non-generic WebKit [`Array.of`](https://github.com/zloirock/core-js/#ecmascript-6-array)
-* some other fixes and optimizations
-
-##### 1.1.3 - 2015.08.29
-* fixed support Node.js domains in [`Promise`](https://github.com/zloirock/core-js/#ecmascript-6-promise), [#103](https://github.com/zloirock/core-js/issues/103)
-
-##### 1.1.2 - 2015.08.28
-* added `toJSON` method to [`Symbol`](https://github.com/zloirock/core-js/#ecmascript-6-symbol) polyfill and to MS Edge implementation for expected `JSON.stringify` result w/o patching this method
-* replaced [`Reflect.construct`](https://github.com/zloirock/core-js/#ecmascript-6-reflect) implementations w/o correct support third argument
-* fixed `global` detection with changed `document.domain` in ~IE8, [#100](https://github.com/zloirock/core-js/issues/100)
-
-##### 1.1.1 - 2015.08.20
-* added more correct microtask implementation for [`Promise`](#ecmascript-6-promise)
-
-##### 1.1.0 - 2015.08.17
-* updated [string padding](https://github.com/zloirock/core-js/#ecmascript-7-proposals) to [actual proposal](https://github.com/ljharb/proposal-string-pad-left-right) - renamed, minor internal changes:
- * `String#lpad` -> `String#padLeft`
- * `String#rpad` -> `String#padRight`
-* added [string trim functions](#ecmascript-7-proposals) - [proposal](https://github.com/sebmarkbage/ecmascript-string-left-right-trim), defacto standard - required only for IE11- and fixed for some old engines:
- * `String#trimLeft`
- * `String#trimRight`
-* [`String#trim`](https://github.com/zloirock/core-js/#ecmascript-6-string) fixed for some engines by es6 spec and moved from `es5` to single `es6` module
-* splitted [`es6.object.statics-accept-primitives`](https://github.com/zloirock/core-js/#ecmascript-6-object)
-* caps for `freeze`-family `Object` methods moved from `es5` to `es6` namespace and joined with [es6 wrappers](https://github.com/zloirock/core-js/#ecmascript-6-object)
-* `es5` [namespace](https://github.com/zloirock/core-js/#commonjs) also includes modules, moved to `es6` namespace - you can use it as before
-* increased `MessageChannel` priority in `$.task`, [#95](https://github.com/zloirock/core-js/issues/95)
-* does not get `global.Symbol` on each getting iterator, if you wanna use alternative `Symbol` shim - add it before `core-js`
-* [`Reflect.construct`](https://github.com/zloirock/core-js/#ecmascript-6-reflect) optimized and fixed for some cases
-* simplified [`Reflect.enumerate`](https://github.com/zloirock/core-js/#ecmascript-6-reflect), see [this question](https://esdiscuss.org/topic/question-about-enumerate-and-property-decision-timing)
-* some corrections in [`Math.acosh`](https://github.com/zloirock/core-js/#ecmascript-6-math)
-* fixed [`Math.imul`](https://github.com/zloirock/core-js/#ecmascript-6-math) for old WebKit
-* some fixes in string / RegExp [well-known symbols](https://github.com/zloirock/core-js/#ecmascript-6-regexp) logic
-* some other fixes and optimizations
-
-##### 1.0.1 - 2015.07.31
-* some fixes for final MS Edge, replaced broken native `Reflect.defineProperty`
-* some minor fixes and optimizations
-* changed compression `client/*.min.js` options for safe `Function#name` and `Function#length`, should be fixed [#92](https://github.com/zloirock/core-js/issues/92)
-
-##### 1.0.0 - 2015.07.22
-* added logic for [well-known symbols](https://github.com/zloirock/core-js/#ecmascript-6-regexp):
- * `Symbol.match`
- * `Symbol.replace`
- * `Symbol.split`
- * `Symbol.search`
-* actualized and optimized work with iterables:
- * optimized [`Map`, `Set`, `WeakMap`, `WeakSet` constructors](https://github.com/zloirock/core-js/#ecmascript-6-collections), [`Promise.all`, `Promise.race`](https://github.com/zloirock/core-js/#ecmascript-6-promise) for default `Array Iterator`
- * optimized [`Array.from`](https://github.com/zloirock/core-js/#ecmascript-6-array) for default `Array Iterator`
- * added [`core.getIteratorMethod`](https://github.com/zloirock/core-js/#ecmascript-6-iterators) helper
-* uses enumerable properties in shimmed instances - collections, iterators, etc for optimize performance
-* added support native constructors to [`Reflect.construct`](https://github.com/zloirock/core-js/#ecmascript-6-reflect) with 2 arguments
-* added support native constructors to [`Function#bind`](https://github.com/zloirock/core-js/#ecmascript-5) shim with `new`
-* removed obsolete `.clear` methods native [`Weak`-collections](https://github.com/zloirock/core-js/#ecmascript-6-collections)
-* maximum modularity, reduced minimal custom build size, separated into submodules:
- * [`es6.reflect`](https://github.com/zloirock/core-js/#ecmascript-6-reflect)
- * [`es6.regexp`](https://github.com/zloirock/core-js/#ecmascript-6-regexp)
- * [`es6.math`](https://github.com/zloirock/core-js/#ecmascript-6-math)
- * [`es6.number`](https://github.com/zloirock/core-js/#ecmascript-6-number)
- * [`es7.object.to-array`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)
- * [`core.object`](https://github.com/zloirock/core-js/#object)
- * [`core.string`](https://github.com/zloirock/core-js/#escaping-strings)
- * [`core.iter-helpers`](https://github.com/zloirock/core-js/#ecmascript-6-iterators)
- * internal modules (`$`, `$.iter`, etc)
-* many other optimizations
-* final cleaning non-standard features
- * moved `$for` to [separate library](https://github.com/zloirock/forof). This work for syntax - `for-of` loop and comprehensions
- * moved `Date#{format, formatUTC}` to [separate library](https://github.com/zloirock/dtf). Standard way for this - `ECMA-402`
- * removed `Math` methods from `Number.prototype`. Slight sugar for simple `Math` methods calling
- * removed `{Array#, Array, Dict}.turn`
- * removed `core.global`
-* uses `ToNumber` instead of `ToLength` in [`Number Iterator`](https://github.com/zloirock/core-js/#number-iterator), `Array.from(2.5)` will be `[0, 1, 2]` instead of `[0, 1]`
-* fixed [#85](https://github.com/zloirock/core-js/issues/85) - invalid `Promise` unhandled rejection message in nested `setTimeout`
-* fixed [#86](https://github.com/zloirock/core-js/issues/86) - support FF extensions
-* fixed [#89](https://github.com/zloirock/core-js/issues/89) - behavior `Number` constructor in strange case
-
-##### 0.9.18 - 2015.06.17
-* removed `/` from [`RegExp.escape`](https://github.com/zloirock/core-js/#ecmascript-7-proposals) escaped characters
-
-##### 0.9.17 - 2015.06.14
-* updated [`RegExp.escape`](https://github.com/zloirock/core-js/#ecmascript-7-proposals) to the [latest proposal](https://github.com/benjamingr/RexExp.escape)
-* fixed conflict with webpack dev server + IE buggy behavior
-
-##### 0.9.16 - 2015.06.11
-* more correct order resolving thenable in [`Promise`](https://github.com/zloirock/core-js/#ecmascript-6-promise) polyfill
-* uses polyfill instead of [buggy V8 `Promise`](https://github.com/zloirock/core-js/issues/78)
-
-##### 0.9.15 - 2015.06.09
-* [collections](https://github.com/zloirock/core-js/#ecmascript-6-collections) from `library` version return wrapped native instances
-* fixed collections prototype methods in `library` version
-* optimized [`Math.hypot`](https://github.com/zloirock/core-js/#ecmascript-6-math)
-
-##### 0.9.14 - 2015.06.04
-* updated [`Promise.resolve` behavior](https://esdiscuss.org/topic/fixing-promise-resolve)
-* added fallback for IE11 buggy `Object.getOwnPropertyNames` + iframe
-* some other fixes
-
-##### 0.9.13 - 2015.05.25
-* added fallback for [`Symbol` polyfill](https://github.com/zloirock/core-js/#ecmascript-6-symbol) for old Android
-* some other fixes
-
-##### 0.9.12 - 2015.05.24
-* different instances `core-js` should use / recognize the same symbols
-* some fixes
-
-##### 0.9.11 - 2015.05.18
-* simplified [custom build](https://github.com/zloirock/core-js/#custom-build)
- * add custom build js api
- * added `grunt-cli` to `devDependencies` for `npm run grunt`
-* some fixes
-
-##### 0.9.10 - 2015.05.16
-* wrapped `Function#toString` for correct work wrapped methods / constructors with methods similar to the [`lodash` `isNative`](https://github.com/lodash/lodash/issues/1197)
-* added proto versions of methods to export object in `default` version for consistency with `library` version
-
-##### 0.9.9 - 2015.05.14
-* wrapped `Object#propertyIsEnumerable` for [`Symbol` polyfill](https://github.com/zloirock/core-js/#ecmascript-6-symbol)
-* [added proto versions of methods to `library` for ES7 bind syntax](https://github.com/zloirock/core-js/issues/65)
-* some other fixes
-
-##### 0.9.8 - 2015.05.12
-* fixed [`Math.hypot`](https://github.com/zloirock/core-js/#ecmascript-6-math) with negative arguments
-* added `Object#toString.toString` as fallback for [`lodash` `isNative`](https://github.com/lodash/lodash/issues/1197)
-
-##### 0.9.7 - 2015.05.07
-* added [support DOM collections](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice#Streamlining_cross-browser_behavior) to IE8- `Array#slice`
-
-##### 0.9.6 - 2015.05.01
-* added [`String#lpad`, `String#rpad`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)
-
-##### 0.9.5 - 2015.04.30
-* added cap for `Function#@@hasInstance`
-* some fixes and optimizations
-
-##### 0.9.4 - 2015.04.27
-* fixed `RegExp` constructor
-
-##### 0.9.3 - 2015.04.26
-* some fixes and optimizations
-
-##### 0.9.2 - 2015.04.25
-* more correct [`Promise`](https://github.com/zloirock/core-js/#ecmascript-6-promise) unhandled rejection tracking and resolving / rejection priority
-
-##### 0.9.1 - 2015.04.25
-* fixed `__proto__`-based [`Promise`](https://github.com/zloirock/core-js/#ecmascript-6-promise) subclassing in some environments
-
-##### 0.9.0 - 2015.04.24
-* added correct [symbols](https://github.com/zloirock/core-js/#ecmascript-6-symbol) descriptors
- * fixed behavior `Object.{assign, create, defineProperty, defineProperties, getOwnPropertyDescriptor, getOwnPropertyDescriptors}` with symbols
- * added [single entry points](https://github.com/zloirock/core-js/#commonjs) for `Object.{create, defineProperty, defineProperties}`
-* added [`Map#toJSON`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)
-* removed non-standard methods `Object#[_]` and `Function#only` - they solves syntax problems, but now in compilers available arrows and ~~in near future will be available~~ [available](http://babeljs.io/blog/2015/05/14/function-bind/) [bind syntax](https://github.com/zenparsing/es-function-bind)
-* removed non-standard undocumented methods `Symbol.{pure, set}`
-* some fixes and internal changes
-
-##### 0.8.4 - 2015.04.18
-* uses `webpack` instead of `browserify` for browser builds - more compression-friendly result
-
-##### 0.8.3 - 2015.04.14
-* fixed `Array` statics with single entry points
-
-##### 0.8.2 - 2015.04.13
-* [`Math.fround`](https://github.com/zloirock/core-js/#ecmascript-6-math) now also works in IE9-
-* added [`Set#toJSON`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)
-* some optimizations and fixes
-
-##### 0.8.1 - 2015.04.03
-* fixed `Symbol.keyFor`
-
-##### 0.8.0 - 2015.04.02
-* changed [CommonJS API](https://github.com/zloirock/core-js/#commonjs)
-* splitted and renamed some modules
-* added support ES3 environment (ES5 polyfill) to **all** default versions - size increases slightly (+ ~4kb w/o gzip), many issues disappear, if you don't need it - [simply include only required namespaces / features / modules](https://github.com/zloirock/core-js/#commonjs)
-* removed [abstract references](https://github.com/zenparsing/es-abstract-refs) support - proposal has been superseded =\
-* [`$for.isIterable` -> `core.isIterable`, `$for.getIterator` -> `core.getIterator`](https://github.com/zloirock/core-js/#ecmascript-6-iterators), temporary available in old namespace
-* fixed iterators support in v8 `Promise.all` and `Promise.race`
-* many other fixes
-
-##### 0.7.2 - 2015.03.09
-* some fixes
-
-##### 0.7.1 - 2015.03.07
-* some fixes
-
-##### 0.7.0 - 2015.03.06
-* rewritten and splitted into [CommonJS modules](https://github.com/zloirock/core-js/#commonjs)
-
-##### 0.6.1 - 2015.02.24
-* fixed support [`Object.defineProperty`](https://github.com/zloirock/core-js/#ecmascript-5) with accessors on DOM elements on IE8
-
-##### 0.6.0 - 2015.02.23
-* added support safe closing iteration - calling `iterator.return` on abort iteration, if it exists
-* added basic support [`Promise`](https://github.com/zloirock/core-js/#ecmascript-6-promise) unhandled rejection tracking in shim
-* added [`Object.getOwnPropertyDescriptors`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)
-* removed `console` cap - creates too many problems
-* restructuring [namespaces](https://github.com/zloirock/core-js/#custom-build)
-* some fixes
-
-##### 0.5.4 - 2015.02.15
-* some fixes
-
-##### 0.5.3 - 2015.02.14
-* added [support binary and octal literals](https://github.com/zloirock/core-js/#ecmascript-6-number) to `Number` constructor
-* added [`Date#toISOString`](https://github.com/zloirock/core-js/#ecmascript-5)
-
-##### 0.5.2 - 2015.02.10
-* some fixes
-
-##### 0.5.1 - 2015.02.09
-* some fixes
-
-##### 0.5.0 - 2015.02.08
-* systematization of modules
-* splitted [`es6` module](https://github.com/zloirock/core-js/#ecmascript-6)
-* splitted `console` module: `web.console` - only cap for missing methods, `core.log` - bound methods & additional features
-* added [`delay` method](https://github.com/zloirock/core-js/#delay)
-* some fixes
-
-##### 0.4.10 - 2015.01.28
-* [`Object.getOwnPropertySymbols`](https://github.com/zloirock/core-js/#ecmascript-6-symbol) polyfill returns array of wrapped keys
-
-##### 0.4.9 - 2015.01.27
-* FF20-24 fix
-
-##### 0.4.8 - 2015.01.25
-* some [collections](https://github.com/zloirock/core-js/#ecmascript-6-collections) fixes
-
-##### 0.4.7 - 2015.01.25
-* added support frozen objects as [collections](https://github.com/zloirock/core-js/#ecmascript-6-collections) keys
-
-##### 0.4.6 - 2015.01.21
-* added [`Object.getOwnPropertySymbols`](https://github.com/zloirock/core-js/#ecmascript-6-symbol)
-* added [`NodeList.prototype[@@iterator]`](https://github.com/zloirock/core-js/#ecmascript-6-iterators)
-* added basic `@@species` logic - getter in native constructors
-* removed `Function#by`
-* some fixes
-
-##### 0.4.5 - 2015.01.16
-* some fixes
-
-##### 0.4.4 - 2015.01.11
-* enabled CSP support
-
-##### 0.4.3 - 2015.01.10
-* added `Function` instances `name` property for IE9+
-
-##### 0.4.2 - 2015.01.10
-* `Object` static methods accept primitives
-* `RegExp` constructor can alter flags (IE9+)
-* added `Array.prototype[Symbol.unscopables]`
-
-##### 0.4.1 - 2015.01.05
-* some fixes
-
-##### 0.4.0 - 2015.01.03
-* added [`es6.reflect`](https://github.com/zloirock/core-js/#ecmascript-6-reflect) module:
- * added `Reflect.apply`
- * added `Reflect.construct`
- * added `Reflect.defineProperty`
- * added `Reflect.deleteProperty`
- * added `Reflect.enumerate`
- * added `Reflect.get`
- * added `Reflect.getOwnPropertyDescriptor`
- * added `Reflect.getPrototypeOf`
- * added `Reflect.has`
- * added `Reflect.isExtensible`
- * added `Reflect.preventExtensions`
- * added `Reflect.set`
- * added `Reflect.setPrototypeOf`
-* `core-js` methods now can use external `Symbol.iterator` polyfill
-* some fixes
-
-##### 0.3.3 - 2014.12.28
-* [console cap](https://github.com/zloirock/core-js/#console) excluded from node.js default builds
-
-##### 0.3.2 - 2014.12.25
-* added cap for [ES5](https://github.com/zloirock/core-js/#ecmascript-5) freeze-family methods
-* fixed `console` bug
-
-##### 0.3.1 - 2014.12.23
-* some fixes
-
-##### 0.3.0 - 2014.12.23
-* Optimize [`Map` & `Set`](https://github.com/zloirock/core-js/#ecmascript-6-collections):
- * use entries chain on hash table
- * fast & correct iteration
- * iterators moved to [`es6`](https://github.com/zloirock/core-js/#ecmascript-6) and [`es6.collections`](https://github.com/zloirock/core-js/#ecmascript-6-collections) modules
-
-##### 0.2.5 - 2014.12.20
-* `console` no longer shortcut for `console.log` (compatibility problems)
-* some fixes
-
-##### 0.2.4 - 2014.12.17
-* better compliance of ES6
-* added [`Math.fround`](https://github.com/zloirock/core-js/#ecmascript-6-math) (IE10+)
-* some fixes
-
-##### 0.2.3 - 2014.12.15
-* [Symbols](https://github.com/zloirock/core-js/#ecmascript-6-symbol):
- * added option to disable addition setter to `Object.prototype` for Symbol polyfill:
- * added `Symbol.useSimple`
- * added `Symbol.useSetter`
- * added cap for well-known Symbols:
- * added `Symbol.hasInstance`
- * added `Symbol.isConcatSpreadable`
- * added `Symbol.match`
- * added `Symbol.replace`
- * added `Symbol.search`
- * added `Symbol.species`
- * added `Symbol.split`
- * added `Symbol.toPrimitive`
- * added `Symbol.unscopables`
-
-##### 0.2.2 - 2014.12.13
-* added [`RegExp#flags`](https://github.com/zloirock/core-js/#ecmascript-6-regexp) ([December 2014 Draft Rev 29](http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#december_6_2014_draft_rev_29))
-* added [`String.raw`](https://github.com/zloirock/core-js/#ecmascript-6-string)
-
-##### 0.2.1 - 2014.12.12
-* repair converting -0 to +0 in [native collections](https://github.com/zloirock/core-js/#ecmascript-6-collections)
-
-##### 0.2.0 - 2014.12.06
-* added [`es7.proposals`](https://github.com/zloirock/core-js/#ecmascript-7-proposals) and [`es7.abstract-refs`](https://github.com/zenparsing/es-abstract-refs) modules
-* added [`String#at`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)
-* added real [`String Iterator`](https://github.com/zloirock/core-js/#ecmascript-6-iterators), older versions used Array Iterator
-* added abstract references support:
- * added `Symbol.referenceGet`
- * added `Symbol.referenceSet`
- * added `Symbol.referenceDelete`
- * added `Function#@@referenceGet`
- * added `Map#@@referenceGet`
- * added `Map#@@referenceSet`
- * added `Map#@@referenceDelete`
- * added `WeakMap#@@referenceGet`
- * added `WeakMap#@@referenceSet`
- * added `WeakMap#@@referenceDelete`
- * added `Dict.{...methods}[@@referenceGet]`
-* removed deprecated `.contains` methods
-* some fixes
-
-##### 0.1.5 - 2014.12.01
-* added [`Array#copyWithin`](https://github.com/zloirock/core-js/#ecmascript-6-array)
-* added [`String#codePointAt`](https://github.com/zloirock/core-js/#ecmascript-6-string)
-* added [`String.fromCodePoint`](https://github.com/zloirock/core-js/#ecmascript-6-string)
-
-##### 0.1.4 - 2014.11.27
-* added [`Dict.mapPairs`](https://github.com/zloirock/core-js/#dict)
-
-##### 0.1.3 - 2014.11.20
-* [TC39 November meeting](https://github.com/rwaldron/tc39-notes/tree/master/es6/2014-11):
- * [`.contains` -> `.includes`](https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-11/nov-18.md#51--44-arrayprototypecontains-and-stringprototypecontains)
- * `String#contains` -> [`String#includes`](https://github.com/zloirock/core-js/#ecmascript-6-string)
- * `Array#contains` -> [`Array#includes`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)
- * `Dict.contains` -> [`Dict.includes`](https://github.com/zloirock/core-js/#dict)
- * [removed `WeakMap#clear`](https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-11/nov-19.md#412-should-weakmapweakset-have-a-clear-method-markm)
- * [removed `WeakSet#clear`](https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-11/nov-19.md#412-should-weakmapweakset-have-a-clear-method-markm)
-
-##### 0.1.2 - 2014.11.19
-* `Map` & `Set` bug fix
-
-##### 0.1.1 - 2014.11.18
-* public release \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/Gruntfile.js b/node_modules/babel-runtime/node_modules/core-js/Gruntfile.js
deleted file mode 100644
index afbcd948a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/Gruntfile.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('LiveScript');
-module.exports = require('./build/Gruntfile'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/LICENSE b/node_modules/babel-runtime/node_modules/core-js/LICENSE
deleted file mode 100644
index c99b842d7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2014-2016 Denis Pushkarev
-
-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.
diff --git a/node_modules/babel-runtime/node_modules/core-js/bower.json b/node_modules/babel-runtime/node_modules/core-js/bower.json
deleted file mode 100644
index f6eb784be..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/bower.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "name": "core.js",
- "main": "client/core.js",
- "version": "2.4.1",
- "description": "Standard Library",
- "keywords": [
- "ES3",
- "ECMAScript 3",
- "ES5",
- "ECMAScript 5",
- "ES6",
- "ES2015",
- "ECMAScript 6",
- "ECMAScript 2015",
- "ES7",
- "ES2016",
- "ECMAScript 7",
- "ECMAScript 2016",
- "Harmony",
- "Strawman",
- "Map",
- "Set",
- "WeakMap",
- "WeakSet",
- "Promise",
- "Symbol",
- "TypedArray",
- "setImmediate",
- "Dict",
- "polyfill",
- "shim"
- ],
- "authors": [
- "Denis Pushkarev <zloirock@zloirock.ru> (http://zloirock.ru/)"
- ],
- "license": "MIT",
- "homepage": "https://github.com/zloirock/core-js",
- "repository": {
- "type": "git",
- "url": "https://github.com/zloirock/core-js.git"
- },
- "ignore": [
- "build",
- "node_modules",
- "tests"
- ]
-}
diff --git a/node_modules/babel-runtime/node_modules/core-js/build/Gruntfile.ls b/node_modules/babel-runtime/node_modules/core-js/build/Gruntfile.ls
deleted file mode 100644
index f4b53809a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/build/Gruntfile.ls
+++ /dev/null
@@ -1,84 +0,0 @@
-require! <[./build fs ./config]>
-module.exports = (grunt)->
- grunt.loadNpmTasks \grunt-contrib-clean
- grunt.loadNpmTasks \grunt-contrib-copy
- grunt.loadNpmTasks \grunt-contrib-uglify
- grunt.loadNpmTasks \grunt-contrib-watch
- grunt.loadNpmTasks \grunt-livescript
- grunt.loadNpmTasks \grunt-karma
- grunt.initConfig do
- pkg: grunt.file.readJSON './package.json'
- uglify: build:
- files: '<%=grunt.option("path")%>.min.js': '<%=grunt.option("path")%>.js'
- options:
- mangle: {+sort, +keep_fnames}
- compress: {+pure_getters, +keep_fargs, +keep_fnames}
- sourceMap: on
- banner: config.banner
- livescript: src: files:
- './tests/helpers.js': './tests/helpers/*'
- './tests/tests.js': './tests/tests/*'
- './tests/library.js': './tests/library/*'
- './tests/es.js': './tests/tests/es*'
- './tests/experimental.js': './tests/experimental/*'
- './build/index.js': './build/build.ls*'
- clean: <[./library]>
- copy: lib: files:
- * expand: on
- cwd: './'
- src: <[es5/** es6/** es7/** stage/** web/** core/** fn/** index.js shim.js]>
- dest: './library/'
- * expand: on
- cwd: './'
- src: <[modules/*]>
- dest: './library/'
- filter: \isFile
- * expand: on
- cwd: './modules/library/'
- src: '*'
- dest: './library/modules/'
- watch:
- core:
- files: './modules/*'
- tasks: \default
- tests:
- files: './tests/tests/*'
- tasks: \livescript
- karma:
- 'options':
- configFile: './tests/karma.conf.js'
- browsers: <[PhantomJS]>
- singleRun: on
- 'default': {}
- 'library': files: <[client/library.js tests/helpers.js tests/library.js]>map -> src: it
- grunt.registerTask \build (options)->
- done = @async!
- build {
- modules: (options || 'es5,es6,es7,js,web,core')split \,
- blacklist: (grunt.option(\blacklist) || '')split \,
- library: grunt.option(\library) in <[yes on true]>
- umd: grunt.option(\umd) not in <[no off false]>
- }
- .then !->
- grunt.option(\path) || grunt.option(\path, './custom')
- fs.writeFile grunt.option(\path) + '.js', it, done
- .catch !->
- console.error it
- process.exit 1
- grunt.registerTask \client ->
- grunt.option \library ''
- grunt.option \path './client/core'
- grunt.task.run <[build:es5,es6,es7,js,web,core uglify]>
- grunt.registerTask \library ->
- grunt.option \library 'true'
- grunt.option \path './client/library'
- grunt.task.run <[build:es5,es6,es7,js,web,core uglify]>
- grunt.registerTask \shim ->
- grunt.option \library ''
- grunt.option \path './client/shim'
- grunt.task.run <[build:es5,es6,es7,js,web uglify]>
- grunt.registerTask \e ->
- grunt.option \library ''>
- grunt.option \path './client/core'
- grunt.task.run <[build:es5,es6,es7,js,web,core,exp uglify]>
- grunt.registerTask \default <[clean copy client library shim]> \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/build/build.ls b/node_modules/babel-runtime/node_modules/core-js/build/build.ls
deleted file mode 100644
index 0cf210de5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/build/build.ls
+++ /dev/null
@@ -1,62 +0,0 @@
-require! {
- '../library/fn/promise': Promise
- './config': {list, experimental, libraryBlacklist, es5SpecialCase, banner}
- fs: {readFile, writeFile, unlink}
- path: {join}
- webpack, temp
-}
-
-module.exports = ({modules = [], blacklist = [], library = no, umd = on})->
- resolve, reject <~! new Promise _
- let @ = modules.reduce ((memo, it)-> memo[it] = on; memo), {}
- if @exp => for experimental => @[..] = on
- if @es5 => for es5SpecialCase => @[..] = on
- for ns of @
- if @[ns]
- for name in list
- if name.indexOf("#ns.") is 0 and name not in experimental
- @[name] = on
-
- if library => blacklist ++= libraryBlacklist
- for ns in blacklist
- for name in list
- if name is ns or name.indexOf("#ns.") is 0
- @[name] = no
-
- TARGET = temp.path {suffix: '.js'}
-
- err, info <~! webpack do
- entry: list.filter(~> @[it]).map ~>
- if library => join __dirname, '..', 'library', 'modules', it
- else join __dirname, '..', 'modules', it
- output:
- path: ''
- filename: TARGET
- if err => return reject err
-
- err, script <~! readFile TARGET
- if err => return reject err
-
- err <~! unlink TARGET
- if err => return reject err
-
- if umd
- exportScript = """
- // CommonJS export
- if(typeof module != 'undefined' && module.exports)module.exports = __e;
- // RequireJS export
- else if(typeof define == 'function' && define.amd)define(function(){return __e});
- // Export to global object
- else __g.core = __e;
- """
- else
- exportScript = ""
-
- resolve """
- #banner
- !function(__e, __g, undefined){
- 'use strict';
- #script
- #exportScript
- }(1, 1);
- """ \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/build/config.js b/node_modules/babel-runtime/node_modules/core-js/build/config.js
deleted file mode 100644
index df09eb12d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/build/config.js
+++ /dev/null
@@ -1,259 +0,0 @@
-module.exports = {
- list: [
- 'es6.symbol',
- 'es6.object.define-property',
- 'es6.object.define-properties',
- 'es6.object.get-own-property-descriptor',
- 'es6.object.create',
- 'es6.object.get-prototype-of',
- 'es6.object.keys',
- 'es6.object.get-own-property-names',
- 'es6.object.freeze',
- 'es6.object.seal',
- 'es6.object.prevent-extensions',
- 'es6.object.is-frozen',
- 'es6.object.is-sealed',
- 'es6.object.is-extensible',
- 'es6.object.assign',
- 'es6.object.is',
- 'es6.object.set-prototype-of',
- 'es6.object.to-string',
- 'es6.function.bind',
- 'es6.function.name',
- 'es6.function.has-instance',
- 'es6.number.constructor',
- 'es6.number.to-fixed',
- 'es6.number.to-precision',
- 'es6.number.epsilon',
- 'es6.number.is-finite',
- 'es6.number.is-integer',
- 'es6.number.is-nan',
- 'es6.number.is-safe-integer',
- 'es6.number.max-safe-integer',
- 'es6.number.min-safe-integer',
- 'es6.number.parse-float',
- 'es6.number.parse-int',
- 'es6.parse-int',
- 'es6.parse-float',
- 'es6.math.acosh',
- 'es6.math.asinh',
- 'es6.math.atanh',
- 'es6.math.cbrt',
- 'es6.math.clz32',
- 'es6.math.cosh',
- 'es6.math.expm1',
- 'es6.math.fround',
- 'es6.math.hypot',
- 'es6.math.imul',
- 'es6.math.log10',
- 'es6.math.log1p',
- 'es6.math.log2',
- 'es6.math.sign',
- 'es6.math.sinh',
- 'es6.math.tanh',
- 'es6.math.trunc',
- 'es6.string.from-code-point',
- 'es6.string.raw',
- 'es6.string.trim',
- 'es6.string.code-point-at',
- 'es6.string.ends-with',
- 'es6.string.includes',
- 'es6.string.repeat',
- 'es6.string.starts-with',
- 'es6.string.iterator',
- 'es6.string.anchor',
- 'es6.string.big',
- 'es6.string.blink',
- 'es6.string.bold',
- 'es6.string.fixed',
- 'es6.string.fontcolor',
- 'es6.string.fontsize',
- 'es6.string.italics',
- 'es6.string.link',
- 'es6.string.small',
- 'es6.string.strike',
- 'es6.string.sub',
- 'es6.string.sup',
- 'es6.array.is-array',
- 'es6.array.from',
- 'es6.array.of',
- 'es6.array.join',
- 'es6.array.slice',
- 'es6.array.sort',
- 'es6.array.for-each',
- 'es6.array.map',
- 'es6.array.filter',
- 'es6.array.some',
- 'es6.array.every',
- 'es6.array.reduce',
- 'es6.array.reduce-right',
- 'es6.array.index-of',
- 'es6.array.last-index-of',
- 'es6.array.copy-within',
- 'es6.array.fill',
- 'es6.array.find',
- 'es6.array.find-index',
- 'es6.array.iterator',
- 'es6.array.species',
- 'es6.regexp.constructor',
- 'es6.regexp.to-string',
- 'es6.regexp.flags',
- 'es6.regexp.match',
- 'es6.regexp.replace',
- 'es6.regexp.search',
- 'es6.regexp.split',
- 'es6.promise',
- 'es6.map',
- 'es6.set',
- 'es6.weak-map',
- 'es6.weak-set',
- 'es6.reflect.apply',
- 'es6.reflect.construct',
- 'es6.reflect.define-property',
- 'es6.reflect.delete-property',
- 'es6.reflect.enumerate',
- 'es6.reflect.get',
- 'es6.reflect.get-own-property-descriptor',
- 'es6.reflect.get-prototype-of',
- 'es6.reflect.has',
- 'es6.reflect.is-extensible',
- 'es6.reflect.own-keys',
- 'es6.reflect.prevent-extensions',
- 'es6.reflect.set',
- 'es6.reflect.set-prototype-of',
- 'es6.date.now',
- 'es6.date.to-json',
- 'es6.date.to-iso-string',
- 'es6.date.to-string',
- 'es6.date.to-primitive',
- 'es6.typed.array-buffer',
- 'es6.typed.data-view',
- 'es6.typed.int8-array',
- 'es6.typed.uint8-array',
- 'es6.typed.uint8-clamped-array',
- 'es6.typed.int16-array',
- 'es6.typed.uint16-array',
- 'es6.typed.int32-array',
- 'es6.typed.uint32-array',
- 'es6.typed.float32-array',
- 'es6.typed.float64-array',
- 'es7.array.includes',
- 'es7.string.at',
- 'es7.string.pad-start',
- 'es7.string.pad-end',
- 'es7.string.trim-left',
- 'es7.string.trim-right',
- 'es7.string.match-all',
- 'es7.symbol.async-iterator',
- 'es7.symbol.observable',
- 'es7.object.get-own-property-descriptors',
- 'es7.object.values',
- 'es7.object.entries',
- 'es7.object.enumerable-keys',
- 'es7.object.enumerable-values',
- 'es7.object.enumerable-entries',
- 'es7.object.define-getter',
- 'es7.object.define-setter',
- 'es7.object.lookup-getter',
- 'es7.object.lookup-setter',
- 'es7.map.to-json',
- 'es7.set.to-json',
- 'es7.system.global',
- 'es7.error.is-error',
- 'es7.math.iaddh',
- 'es7.math.isubh',
- 'es7.math.imulh',
- 'es7.math.umulh',
- 'es7.reflect.define-metadata',
- 'es7.reflect.delete-metadata',
- 'es7.reflect.get-metadata',
- 'es7.reflect.get-metadata-keys',
- 'es7.reflect.get-own-metadata',
- 'es7.reflect.get-own-metadata-keys',
- 'es7.reflect.has-metadata',
- 'es7.reflect.has-own-metadata',
- 'es7.reflect.metadata',
- 'es7.asap',
- 'es7.observable',
- 'web.immediate',
- 'web.dom.iterable',
- 'web.timers',
- 'core.dict',
- 'core.get-iterator-method',
- 'core.get-iterator',
- 'core.is-iterable',
- 'core.delay',
- 'core.function.part',
- 'core.object.is-object',
- 'core.object.classof',
- 'core.object.define',
- 'core.object.make',
- 'core.number.iterator',
- 'core.regexp.escape',
- 'core.string.escape-html',
- 'core.string.unescape-html',
- ],
- experimental: [
- 'es7.object.enumerable-keys',
- 'es7.object.enumerable-values',
- 'es7.object.enumerable-entries',
- ],
- libraryBlacklist: [
- 'es6.object.to-string',
- 'es6.function.name',
- 'es6.regexp.constructor',
- 'es6.regexp.to-string',
- 'es6.regexp.flags',
- 'es6.regexp.match',
- 'es6.regexp.replace',
- 'es6.regexp.search',
- 'es6.regexp.split',
- 'es6.number.constructor',
- 'es6.date.to-string',
- 'es6.date.to-primitive',
- ],
- es5SpecialCase: [
- 'es6.object.create',
- 'es6.object.define-property',
- 'es6.object.define-properties',
- 'es6.object.get-own-property-descriptor',
- 'es6.object.get-prototype-of',
- 'es6.object.keys',
- 'es6.object.get-own-property-names',
- 'es6.object.freeze',
- 'es6.object.seal',
- 'es6.object.prevent-extensions',
- 'es6.object.is-frozen',
- 'es6.object.is-sealed',
- 'es6.object.is-extensible',
- 'es6.function.bind',
- 'es6.array.is-array',
- 'es6.array.join',
- 'es6.array.slice',
- 'es6.array.sort',
- 'es6.array.for-each',
- 'es6.array.map',
- 'es6.array.filter',
- 'es6.array.some',
- 'es6.array.every',
- 'es6.array.reduce',
- 'es6.array.reduce-right',
- 'es6.array.index-of',
- 'es6.array.last-index-of',
- 'es6.number.to-fixed',
- 'es6.number.to-precision',
- 'es6.date.now',
- 'es6.date.to-iso-string',
- 'es6.date.to-json',
- 'es6.string.trim',
- 'es6.regexp.to-string',
- 'es6.parse-int',
- 'es6.parse-float',
- ],
- banner: '/**\n' +
- ' * core-js ' + require('../package').version + '\n' +
- ' * https://github.com/zloirock/core-js\n' +
- ' * License: http://rock.mit-license.org\n' +
- ' * © ' + new Date().getFullYear() + ' Denis Pushkarev\n' +
- ' */'
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/build/index.js b/node_modules/babel-runtime/node_modules/core-js/build/index.js
deleted file mode 100644
index 26bdec415..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/build/index.js
+++ /dev/null
@@ -1,104 +0,0 @@
-// Generated by LiveScript 1.4.0
-(function(){
- var Promise, ref$, list, experimental, libraryBlacklist, es5SpecialCase, banner, readFile, writeFile, unlink, join, webpack, temp;
- Promise = require('../library/fn/promise');
- ref$ = require('./config'), list = ref$.list, experimental = ref$.experimental, libraryBlacklist = ref$.libraryBlacklist, es5SpecialCase = ref$.es5SpecialCase, banner = ref$.banner;
- ref$ = require('fs'), readFile = ref$.readFile, writeFile = ref$.writeFile, unlink = ref$.unlink;
- join = require('path').join;
- webpack = require('webpack');
- temp = require('temp');
- module.exports = function(arg$){
- var modules, ref$, blacklist, library, umd, this$ = this;
- modules = (ref$ = arg$.modules) != null
- ? ref$
- : [], blacklist = (ref$ = arg$.blacklist) != null
- ? ref$
- : [], library = (ref$ = arg$.library) != null ? ref$ : false, umd = (ref$ = arg$.umd) != null ? ref$ : true;
- return new Promise(function(resolve, reject){
- (function(){
- var i$, x$, ref$, len$, y$, ns, name, j$, len1$, TARGET, this$ = this;
- if (this.exp) {
- for (i$ = 0, len$ = (ref$ = experimental).length; i$ < len$; ++i$) {
- x$ = ref$[i$];
- this[x$] = true;
- }
- }
- if (this.es5) {
- for (i$ = 0, len$ = (ref$ = es5SpecialCase).length; i$ < len$; ++i$) {
- y$ = ref$[i$];
- this[y$] = true;
- }
- }
- for (ns in this) {
- if (this[ns]) {
- for (i$ = 0, len$ = (ref$ = list).length; i$ < len$; ++i$) {
- name = ref$[i$];
- if (name.indexOf(ns + ".") === 0 && !in$(name, experimental)) {
- this[name] = true;
- }
- }
- }
- }
- if (library) {
- blacklist = blacklist.concat(libraryBlacklist);
- }
- for (i$ = 0, len$ = blacklist.length; i$ < len$; ++i$) {
- ns = blacklist[i$];
- for (j$ = 0, len1$ = (ref$ = list).length; j$ < len1$; ++j$) {
- name = ref$[j$];
- if (name === ns || name.indexOf(ns + ".") === 0) {
- this[name] = false;
- }
- }
- }
- TARGET = temp.path({
- suffix: '.js'
- });
- webpack({
- entry: list.filter(function(it){
- return this$[it];
- }).map(function(it){
- if (library) {
- return join(__dirname, '..', 'library', 'modules', it);
- } else {
- return join(__dirname, '..', 'modules', it);
- }
- }),
- output: {
- path: '',
- filename: TARGET
- }
- }, function(err, info){
- if (err) {
- return reject(err);
- }
- readFile(TARGET, function(err, script){
- if (err) {
- return reject(err);
- }
- unlink(TARGET, function(err){
- var exportScript;
- if (err) {
- return reject(err);
- }
- if (umd) {
- exportScript = "// CommonJS export\nif(typeof module != 'undefined' && module.exports)module.exports = __e;\n// RequireJS export\nelse if(typeof define == 'function' && define.amd)define(function(){return __e});\n// Export to global object\nelse __g.core = __e;";
- } else {
- exportScript = "";
- }
- resolve("" + banner + "\n!function(__e, __g, undefined){\n'use strict';\n" + script + "\n" + exportScript + "\n}(1, 1);");
- });
- });
- });
- }.call(modules.reduce(function(memo, it){
- memo[it] = true;
- return memo;
- }, {})));
- });
- };
- function in$(x, xs){
- var i = -1, l = xs.length >>> 0;
- while (++i < l) if (x === xs[i]) return true;
- return false;
- }
-}).call(this);
diff --git a/node_modules/babel-runtime/node_modules/core-js/client/core.js b/node_modules/babel-runtime/node_modules/core-js/client/core.js
deleted file mode 100644
index 1e470de77..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/client/core.js
+++ /dev/null
@@ -1,7613 +0,0 @@
-/**
- * core-js 2.4.1
- * https://github.com/zloirock/core-js
- * License: http://rock.mit-license.org
- * © 2016 Denis Pushkarev
- */
-!function(__e, __g, undefined){
-'use strict';
-/******/ (function(modules) { // webpackBootstrap
-/******/ // The module cache
-/******/ var installedModules = {};
-
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-
-/******/ // Check if module is in cache
-/******/ if(installedModules[moduleId])
-/******/ return installedModules[moduleId].exports;
-
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = installedModules[moduleId] = {
-/******/ exports: {},
-/******/ id: moduleId,
-/******/ loaded: false
-/******/ };
-
-/******/ // Execute the module function
-/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-
-/******/ // Flag the module as loaded
-/******/ module.loaded = true;
-
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-
-
-/******/ // expose the modules object (__webpack_modules__)
-/******/ __webpack_require__.m = modules;
-
-/******/ // expose the module cache
-/******/ __webpack_require__.c = installedModules;
-
-/******/ // __webpack_public_path__
-/******/ __webpack_require__.p = "";
-
-/******/ // Load entry module and return exports
-/******/ return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(1);
- __webpack_require__(50);
- __webpack_require__(51);
- __webpack_require__(52);
- __webpack_require__(54);
- __webpack_require__(55);
- __webpack_require__(58);
- __webpack_require__(59);
- __webpack_require__(60);
- __webpack_require__(61);
- __webpack_require__(62);
- __webpack_require__(63);
- __webpack_require__(64);
- __webpack_require__(65);
- __webpack_require__(66);
- __webpack_require__(68);
- __webpack_require__(70);
- __webpack_require__(72);
- __webpack_require__(74);
- __webpack_require__(77);
- __webpack_require__(78);
- __webpack_require__(79);
- __webpack_require__(83);
- __webpack_require__(86);
- __webpack_require__(87);
- __webpack_require__(88);
- __webpack_require__(89);
- __webpack_require__(91);
- __webpack_require__(92);
- __webpack_require__(93);
- __webpack_require__(94);
- __webpack_require__(95);
- __webpack_require__(97);
- __webpack_require__(99);
- __webpack_require__(100);
- __webpack_require__(101);
- __webpack_require__(103);
- __webpack_require__(104);
- __webpack_require__(105);
- __webpack_require__(107);
- __webpack_require__(108);
- __webpack_require__(109);
- __webpack_require__(111);
- __webpack_require__(112);
- __webpack_require__(113);
- __webpack_require__(114);
- __webpack_require__(115);
- __webpack_require__(116);
- __webpack_require__(117);
- __webpack_require__(118);
- __webpack_require__(119);
- __webpack_require__(120);
- __webpack_require__(121);
- __webpack_require__(122);
- __webpack_require__(123);
- __webpack_require__(124);
- __webpack_require__(126);
- __webpack_require__(130);
- __webpack_require__(131);
- __webpack_require__(132);
- __webpack_require__(133);
- __webpack_require__(137);
- __webpack_require__(139);
- __webpack_require__(140);
- __webpack_require__(141);
- __webpack_require__(142);
- __webpack_require__(143);
- __webpack_require__(144);
- __webpack_require__(145);
- __webpack_require__(146);
- __webpack_require__(147);
- __webpack_require__(148);
- __webpack_require__(149);
- __webpack_require__(150);
- __webpack_require__(151);
- __webpack_require__(152);
- __webpack_require__(158);
- __webpack_require__(159);
- __webpack_require__(161);
- __webpack_require__(162);
- __webpack_require__(163);
- __webpack_require__(167);
- __webpack_require__(168);
- __webpack_require__(169);
- __webpack_require__(170);
- __webpack_require__(171);
- __webpack_require__(173);
- __webpack_require__(174);
- __webpack_require__(175);
- __webpack_require__(176);
- __webpack_require__(179);
- __webpack_require__(181);
- __webpack_require__(182);
- __webpack_require__(183);
- __webpack_require__(185);
- __webpack_require__(187);
- __webpack_require__(189);
- __webpack_require__(190);
- __webpack_require__(191);
- __webpack_require__(193);
- __webpack_require__(194);
- __webpack_require__(195);
- __webpack_require__(196);
- __webpack_require__(203);
- __webpack_require__(206);
- __webpack_require__(207);
- __webpack_require__(209);
- __webpack_require__(210);
- __webpack_require__(211);
- __webpack_require__(212);
- __webpack_require__(213);
- __webpack_require__(214);
- __webpack_require__(215);
- __webpack_require__(216);
- __webpack_require__(217);
- __webpack_require__(218);
- __webpack_require__(219);
- __webpack_require__(220);
- __webpack_require__(222);
- __webpack_require__(223);
- __webpack_require__(224);
- __webpack_require__(225);
- __webpack_require__(226);
- __webpack_require__(227);
- __webpack_require__(228);
- __webpack_require__(229);
- __webpack_require__(231);
- __webpack_require__(234);
- __webpack_require__(235);
- __webpack_require__(237);
- __webpack_require__(238);
- __webpack_require__(239);
- __webpack_require__(240);
- __webpack_require__(241);
- __webpack_require__(242);
- __webpack_require__(243);
- __webpack_require__(244);
- __webpack_require__(245);
- __webpack_require__(246);
- __webpack_require__(247);
- __webpack_require__(249);
- __webpack_require__(250);
- __webpack_require__(251);
- __webpack_require__(252);
- __webpack_require__(253);
- __webpack_require__(254);
- __webpack_require__(255);
- __webpack_require__(256);
- __webpack_require__(258);
- __webpack_require__(259);
- __webpack_require__(261);
- __webpack_require__(262);
- __webpack_require__(263);
- __webpack_require__(264);
- __webpack_require__(267);
- __webpack_require__(268);
- __webpack_require__(269);
- __webpack_require__(270);
- __webpack_require__(271);
- __webpack_require__(272);
- __webpack_require__(273);
- __webpack_require__(274);
- __webpack_require__(276);
- __webpack_require__(277);
- __webpack_require__(278);
- __webpack_require__(279);
- __webpack_require__(280);
- __webpack_require__(281);
- __webpack_require__(282);
- __webpack_require__(283);
- __webpack_require__(284);
- __webpack_require__(285);
- __webpack_require__(286);
- __webpack_require__(287);
- __webpack_require__(288);
- __webpack_require__(291);
- __webpack_require__(156);
- __webpack_require__(293);
- __webpack_require__(292);
- __webpack_require__(294);
- __webpack_require__(295);
- __webpack_require__(296);
- __webpack_require__(297);
- __webpack_require__(298);
- __webpack_require__(300);
- __webpack_require__(301);
- __webpack_require__(302);
- __webpack_require__(304);
- module.exports = __webpack_require__(305);
-
-
-/***/ },
-/* 1 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // ECMAScript 6 symbols shim
- var global = __webpack_require__(2)
- , has = __webpack_require__(3)
- , DESCRIPTORS = __webpack_require__(4)
- , $export = __webpack_require__(6)
- , redefine = __webpack_require__(16)
- , META = __webpack_require__(20).KEY
- , $fails = __webpack_require__(5)
- , shared = __webpack_require__(21)
- , setToStringTag = __webpack_require__(22)
- , uid = __webpack_require__(17)
- , wks = __webpack_require__(23)
- , wksExt = __webpack_require__(24)
- , wksDefine = __webpack_require__(25)
- , keyOf = __webpack_require__(27)
- , enumKeys = __webpack_require__(40)
- , isArray = __webpack_require__(43)
- , anObject = __webpack_require__(10)
- , toIObject = __webpack_require__(30)
- , toPrimitive = __webpack_require__(14)
- , createDesc = __webpack_require__(15)
- , _create = __webpack_require__(44)
- , gOPNExt = __webpack_require__(47)
- , $GOPD = __webpack_require__(49)
- , $DP = __webpack_require__(9)
- , $keys = __webpack_require__(28)
- , gOPD = $GOPD.f
- , dP = $DP.f
- , gOPN = gOPNExt.f
- , $Symbol = global.Symbol
- , $JSON = global.JSON
- , _stringify = $JSON && $JSON.stringify
- , PROTOTYPE = 'prototype'
- , HIDDEN = wks('_hidden')
- , TO_PRIMITIVE = wks('toPrimitive')
- , isEnum = {}.propertyIsEnumerable
- , SymbolRegistry = shared('symbol-registry')
- , AllSymbols = shared('symbols')
- , OPSymbols = shared('op-symbols')
- , ObjectProto = Object[PROTOTYPE]
- , USE_NATIVE = typeof $Symbol == 'function'
- , QObject = global.QObject;
- // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
- var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
-
- // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
- var setSymbolDesc = DESCRIPTORS && $fails(function(){
- return _create(dP({}, 'a', {
- get: function(){ return dP(this, 'a', {value: 7}).a; }
- })).a != 7;
- }) ? function(it, key, D){
- var protoDesc = gOPD(ObjectProto, key);
- if(protoDesc)delete ObjectProto[key];
- dP(it, key, D);
- if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);
- } : dP;
-
- var wrap = function(tag){
- var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
- sym._k = tag;
- return sym;
- };
-
- var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){
- return typeof it == 'symbol';
- } : function(it){
- return it instanceof $Symbol;
- };
-
- var $defineProperty = function defineProperty(it, key, D){
- if(it === ObjectProto)$defineProperty(OPSymbols, key, D);
- anObject(it);
- key = toPrimitive(key, true);
- anObject(D);
- if(has(AllSymbols, key)){
- if(!D.enumerable){
- if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));
- it[HIDDEN][key] = true;
- } else {
- if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
- D = _create(D, {enumerable: createDesc(0, false)});
- } return setSymbolDesc(it, key, D);
- } return dP(it, key, D);
- };
- var $defineProperties = function defineProperties(it, P){
- anObject(it);
- var keys = enumKeys(P = toIObject(P))
- , i = 0
- , l = keys.length
- , key;
- while(l > i)$defineProperty(it, key = keys[i++], P[key]);
- return it;
- };
- var $create = function create(it, P){
- return P === undefined ? _create(it) : $defineProperties(_create(it), P);
- };
- var $propertyIsEnumerable = function propertyIsEnumerable(key){
- var E = isEnum.call(this, key = toPrimitive(key, true));
- if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;
- return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
- };
- var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
- it = toIObject(it);
- key = toPrimitive(key, true);
- if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;
- var D = gOPD(it, key);
- if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
- return D;
- };
- var $getOwnPropertyNames = function getOwnPropertyNames(it){
- var names = gOPN(toIObject(it))
- , result = []
- , i = 0
- , key;
- while(names.length > i){
- if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);
- } return result;
- };
- var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
- var IS_OP = it === ObjectProto
- , names = gOPN(IS_OP ? OPSymbols : toIObject(it))
- , result = []
- , i = 0
- , key;
- while(names.length > i){
- if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);
- } return result;
- };
-
- // 19.4.1.1 Symbol([description])
- if(!USE_NATIVE){
- $Symbol = function Symbol(){
- if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');
- var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
- var $set = function(value){
- if(this === ObjectProto)$set.call(OPSymbols, value);
- if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
- setSymbolDesc(this, tag, createDesc(1, value));
- };
- if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});
- return wrap(tag);
- };
- redefine($Symbol[PROTOTYPE], 'toString', function toString(){
- return this._k;
- });
-
- $GOPD.f = $getOwnPropertyDescriptor;
- $DP.f = $defineProperty;
- __webpack_require__(48).f = gOPNExt.f = $getOwnPropertyNames;
- __webpack_require__(42).f = $propertyIsEnumerable;
- __webpack_require__(41).f = $getOwnPropertySymbols;
-
- if(DESCRIPTORS && !__webpack_require__(26)){
- redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
- }
-
- wksExt.f = function(name){
- return wrap(wks(name));
- }
- }
-
- $export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});
-
- for(var symbols = (
- // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
- 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
- ).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);
-
- for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);
-
- $export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
- // 19.4.2.1 Symbol.for(key)
- 'for': function(key){
- return has(SymbolRegistry, key += '')
- ? SymbolRegistry[key]
- : SymbolRegistry[key] = $Symbol(key);
- },
- // 19.4.2.5 Symbol.keyFor(sym)
- keyFor: function keyFor(key){
- if(isSymbol(key))return keyOf(SymbolRegistry, key);
- throw TypeError(key + ' is not a symbol!');
- },
- useSetter: function(){ setter = true; },
- useSimple: function(){ setter = false; }
- });
-
- $export($export.S + $export.F * !USE_NATIVE, 'Object', {
- // 19.1.2.2 Object.create(O [, Properties])
- create: $create,
- // 19.1.2.4 Object.defineProperty(O, P, Attributes)
- defineProperty: $defineProperty,
- // 19.1.2.3 Object.defineProperties(O, Properties)
- defineProperties: $defineProperties,
- // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
- getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
- // 19.1.2.7 Object.getOwnPropertyNames(O)
- getOwnPropertyNames: $getOwnPropertyNames,
- // 19.1.2.8 Object.getOwnPropertySymbols(O)
- getOwnPropertySymbols: $getOwnPropertySymbols
- });
-
- // 24.3.2 JSON.stringify(value [, replacer [, space]])
- $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){
- var S = $Symbol();
- // MS Edge converts symbol values to JSON as {}
- // WebKit converts symbol values to JSON as null
- // V8 throws on boxed symbols
- return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
- })), 'JSON', {
- stringify: function stringify(it){
- if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
- var args = [it]
- , i = 1
- , replacer, $replacer;
- while(arguments.length > i)args.push(arguments[i++]);
- replacer = args[1];
- if(typeof replacer == 'function')$replacer = replacer;
- if($replacer || !isArray(replacer))replacer = function(key, value){
- if($replacer)value = $replacer.call(this, key, value);
- if(!isSymbol(value))return value;
- };
- args[1] = replacer;
- return _stringify.apply($JSON, args);
- }
- });
-
- // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
- $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(8)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
- // 19.4.3.5 Symbol.prototype[@@toStringTag]
- setToStringTag($Symbol, 'Symbol');
- // 20.2.1.9 Math[@@toStringTag]
- setToStringTag(Math, 'Math', true);
- // 24.3.3 JSON[@@toStringTag]
- setToStringTag(global.JSON, 'JSON', true);
-
-/***/ },
-/* 2 */
-/***/ function(module, exports) {
-
- // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
- var global = module.exports = typeof window != 'undefined' && window.Math == Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
- if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
-
-/***/ },
-/* 3 */
-/***/ function(module, exports) {
-
- var hasOwnProperty = {}.hasOwnProperty;
- module.exports = function(it, key){
- return hasOwnProperty.call(it, key);
- };
-
-/***/ },
-/* 4 */
-/***/ function(module, exports, __webpack_require__) {
-
- // Thank's IE8 for his funny defineProperty
- module.exports = !__webpack_require__(5)(function(){
- return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
- });
-
-/***/ },
-/* 5 */
-/***/ function(module, exports) {
-
- module.exports = function(exec){
- try {
- return !!exec();
- } catch(e){
- return true;
- }
- };
-
-/***/ },
-/* 6 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , core = __webpack_require__(7)
- , hide = __webpack_require__(8)
- , redefine = __webpack_require__(16)
- , ctx = __webpack_require__(18)
- , PROTOTYPE = 'prototype';
-
- var $export = function(type, name, source){
- var IS_FORCED = type & $export.F
- , IS_GLOBAL = type & $export.G
- , IS_STATIC = type & $export.S
- , IS_PROTO = type & $export.P
- , IS_BIND = type & $export.B
- , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]
- , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
- , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {})
- , key, own, out, exp;
- if(IS_GLOBAL)source = name;
- for(key in source){
- // contains in native
- own = !IS_FORCED && target && target[key] !== undefined;
- // export native or passed
- out = (own ? target : source)[key];
- // bind timers to global for call from export context
- exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
- // extend global
- if(target)redefine(target, key, out, type & $export.U);
- // export
- if(exports[key] != out)hide(exports, key, exp);
- if(IS_PROTO && expProto[key] != out)expProto[key] = out;
- }
- };
- global.core = core;
- // type bitmap
- $export.F = 1; // forced
- $export.G = 2; // global
- $export.S = 4; // static
- $export.P = 8; // proto
- $export.B = 16; // bind
- $export.W = 32; // wrap
- $export.U = 64; // safe
- $export.R = 128; // real proto method for `library`
- module.exports = $export;
-
-/***/ },
-/* 7 */
-/***/ function(module, exports) {
-
- var core = module.exports = {version: '2.4.0'};
- if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
-
-/***/ },
-/* 8 */
-/***/ function(module, exports, __webpack_require__) {
-
- var dP = __webpack_require__(9)
- , createDesc = __webpack_require__(15);
- module.exports = __webpack_require__(4) ? function(object, key, value){
- return dP.f(object, key, createDesc(1, value));
- } : function(object, key, value){
- object[key] = value;
- return object;
- };
-
-/***/ },
-/* 9 */
-/***/ function(module, exports, __webpack_require__) {
-
- var anObject = __webpack_require__(10)
- , IE8_DOM_DEFINE = __webpack_require__(12)
- , toPrimitive = __webpack_require__(14)
- , dP = Object.defineProperty;
-
- exports.f = __webpack_require__(4) ? Object.defineProperty : function defineProperty(O, P, Attributes){
- anObject(O);
- P = toPrimitive(P, true);
- anObject(Attributes);
- if(IE8_DOM_DEFINE)try {
- return dP(O, P, Attributes);
- } catch(e){ /* empty */ }
- if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
- if('value' in Attributes)O[P] = Attributes.value;
- return O;
- };
-
-/***/ },
-/* 10 */
-/***/ function(module, exports, __webpack_require__) {
-
- var isObject = __webpack_require__(11);
- module.exports = function(it){
- if(!isObject(it))throw TypeError(it + ' is not an object!');
- return it;
- };
-
-/***/ },
-/* 11 */
-/***/ function(module, exports) {
-
- module.exports = function(it){
- return typeof it === 'object' ? it !== null : typeof it === 'function';
- };
-
-/***/ },
-/* 12 */
-/***/ function(module, exports, __webpack_require__) {
-
- module.exports = !__webpack_require__(4) && !__webpack_require__(5)(function(){
- return Object.defineProperty(__webpack_require__(13)('div'), 'a', {get: function(){ return 7; }}).a != 7;
- });
-
-/***/ },
-/* 13 */
-/***/ function(module, exports, __webpack_require__) {
-
- var isObject = __webpack_require__(11)
- , document = __webpack_require__(2).document
- // in old IE typeof document.createElement is 'object'
- , is = isObject(document) && isObject(document.createElement);
- module.exports = function(it){
- return is ? document.createElement(it) : {};
- };
-
-/***/ },
-/* 14 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 7.1.1 ToPrimitive(input [, PreferredType])
- var isObject = __webpack_require__(11);
- // instead of the ES6 spec version, we didn't implement @@toPrimitive case
- // and the second argument - flag - preferred type is a string
- module.exports = function(it, S){
- if(!isObject(it))return it;
- var fn, val;
- if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
- if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
- if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
- throw TypeError("Can't convert object to primitive value");
- };
-
-/***/ },
-/* 15 */
-/***/ function(module, exports) {
-
- module.exports = function(bitmap, value){
- return {
- enumerable : !(bitmap & 1),
- configurable: !(bitmap & 2),
- writable : !(bitmap & 4),
- value : value
- };
- };
-
-/***/ },
-/* 16 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , hide = __webpack_require__(8)
- , has = __webpack_require__(3)
- , SRC = __webpack_require__(17)('src')
- , TO_STRING = 'toString'
- , $toString = Function[TO_STRING]
- , TPL = ('' + $toString).split(TO_STRING);
-
- __webpack_require__(7).inspectSource = function(it){
- return $toString.call(it);
- };
-
- (module.exports = function(O, key, val, safe){
- var isFunction = typeof val == 'function';
- if(isFunction)has(val, 'name') || hide(val, 'name', key);
- if(O[key] === val)return;
- if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
- if(O === global){
- O[key] = val;
- } else {
- if(!safe){
- delete O[key];
- hide(O, key, val);
- } else {
- if(O[key])O[key] = val;
- else hide(O, key, val);
- }
- }
- // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
- })(Function.prototype, TO_STRING, function toString(){
- return typeof this == 'function' && this[SRC] || $toString.call(this);
- });
-
-/***/ },
-/* 17 */
-/***/ function(module, exports) {
-
- var id = 0
- , px = Math.random();
- module.exports = function(key){
- return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
- };
-
-/***/ },
-/* 18 */
-/***/ function(module, exports, __webpack_require__) {
-
- // optional / simple context binding
- var aFunction = __webpack_require__(19);
- module.exports = function(fn, that, length){
- aFunction(fn);
- if(that === undefined)return fn;
- switch(length){
- case 1: return function(a){
- return fn.call(that, a);
- };
- case 2: return function(a, b){
- return fn.call(that, a, b);
- };
- case 3: return function(a, b, c){
- return fn.call(that, a, b, c);
- };
- }
- return function(/* ...args */){
- return fn.apply(that, arguments);
- };
- };
-
-/***/ },
-/* 19 */
-/***/ function(module, exports) {
-
- module.exports = function(it){
- if(typeof it != 'function')throw TypeError(it + ' is not a function!');
- return it;
- };
-
-/***/ },
-/* 20 */
-/***/ function(module, exports, __webpack_require__) {
-
- var META = __webpack_require__(17)('meta')
- , isObject = __webpack_require__(11)
- , has = __webpack_require__(3)
- , setDesc = __webpack_require__(9).f
- , id = 0;
- var isExtensible = Object.isExtensible || function(){
- return true;
- };
- var FREEZE = !__webpack_require__(5)(function(){
- return isExtensible(Object.preventExtensions({}));
- });
- var setMeta = function(it){
- setDesc(it, META, {value: {
- i: 'O' + ++id, // object ID
- w: {} // weak collections IDs
- }});
- };
- var fastKey = function(it, create){
- // return primitive with prefix
- if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
- if(!has(it, META)){
- // can't set metadata to uncaught frozen object
- if(!isExtensible(it))return 'F';
- // not necessary to add metadata
- if(!create)return 'E';
- // add missing metadata
- setMeta(it);
- // return object ID
- } return it[META].i;
- };
- var getWeak = function(it, create){
- if(!has(it, META)){
- // can't set metadata to uncaught frozen object
- if(!isExtensible(it))return true;
- // not necessary to add metadata
- if(!create)return false;
- // add missing metadata
- setMeta(it);
- // return hash weak collections IDs
- } return it[META].w;
- };
- // add metadata on freeze-family methods calling
- var onFreeze = function(it){
- if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);
- return it;
- };
- var meta = module.exports = {
- KEY: META,
- NEED: false,
- fastKey: fastKey,
- getWeak: getWeak,
- onFreeze: onFreeze
- };
-
-/***/ },
-/* 21 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , SHARED = '__core-js_shared__'
- , store = global[SHARED] || (global[SHARED] = {});
- module.exports = function(key){
- return store[key] || (store[key] = {});
- };
-
-/***/ },
-/* 22 */
-/***/ function(module, exports, __webpack_require__) {
-
- var def = __webpack_require__(9).f
- , has = __webpack_require__(3)
- , TAG = __webpack_require__(23)('toStringTag');
-
- module.exports = function(it, tag, stat){
- if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
- };
-
-/***/ },
-/* 23 */
-/***/ function(module, exports, __webpack_require__) {
-
- var store = __webpack_require__(21)('wks')
- , uid = __webpack_require__(17)
- , Symbol = __webpack_require__(2).Symbol
- , USE_SYMBOL = typeof Symbol == 'function';
-
- var $exports = module.exports = function(name){
- return store[name] || (store[name] =
- USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
- };
-
- $exports.store = store;
-
-/***/ },
-/* 24 */
-/***/ function(module, exports, __webpack_require__) {
-
- exports.f = __webpack_require__(23);
-
-/***/ },
-/* 25 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , core = __webpack_require__(7)
- , LIBRARY = __webpack_require__(26)
- , wksExt = __webpack_require__(24)
- , defineProperty = __webpack_require__(9).f;
- module.exports = function(name){
- var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
- if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});
- };
-
-/***/ },
-/* 26 */
-/***/ function(module, exports) {
-
- module.exports = false;
-
-/***/ },
-/* 27 */
-/***/ function(module, exports, __webpack_require__) {
-
- var getKeys = __webpack_require__(28)
- , toIObject = __webpack_require__(30);
- module.exports = function(object, el){
- var O = toIObject(object)
- , keys = getKeys(O)
- , length = keys.length
- , index = 0
- , key;
- while(length > index)if(O[key = keys[index++]] === el)return key;
- };
-
-/***/ },
-/* 28 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.14 / 15.2.3.14 Object.keys(O)
- var $keys = __webpack_require__(29)
- , enumBugKeys = __webpack_require__(39);
-
- module.exports = Object.keys || function keys(O){
- return $keys(O, enumBugKeys);
- };
-
-/***/ },
-/* 29 */
-/***/ function(module, exports, __webpack_require__) {
-
- var has = __webpack_require__(3)
- , toIObject = __webpack_require__(30)
- , arrayIndexOf = __webpack_require__(34)(false)
- , IE_PROTO = __webpack_require__(38)('IE_PROTO');
-
- module.exports = function(object, names){
- var O = toIObject(object)
- , i = 0
- , result = []
- , key;
- for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
- // Don't enum bug & hidden keys
- while(names.length > i)if(has(O, key = names[i++])){
- ~arrayIndexOf(result, key) || result.push(key);
- }
- return result;
- };
-
-/***/ },
-/* 30 */
-/***/ function(module, exports, __webpack_require__) {
-
- // to indexed object, toObject with fallback for non-array-like ES3 strings
- var IObject = __webpack_require__(31)
- , defined = __webpack_require__(33);
- module.exports = function(it){
- return IObject(defined(it));
- };
-
-/***/ },
-/* 31 */
-/***/ function(module, exports, __webpack_require__) {
-
- // fallback for non-array-like ES3 and non-enumerable old V8 strings
- var cof = __webpack_require__(32);
- module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
- return cof(it) == 'String' ? it.split('') : Object(it);
- };
-
-/***/ },
-/* 32 */
-/***/ function(module, exports) {
-
- var toString = {}.toString;
-
- module.exports = function(it){
- return toString.call(it).slice(8, -1);
- };
-
-/***/ },
-/* 33 */
-/***/ function(module, exports) {
-
- // 7.2.1 RequireObjectCoercible(argument)
- module.exports = function(it){
- if(it == undefined)throw TypeError("Can't call method on " + it);
- return it;
- };
-
-/***/ },
-/* 34 */
-/***/ function(module, exports, __webpack_require__) {
-
- // false -> Array#indexOf
- // true -> Array#includes
- var toIObject = __webpack_require__(30)
- , toLength = __webpack_require__(35)
- , toIndex = __webpack_require__(37);
- module.exports = function(IS_INCLUDES){
- return function($this, el, fromIndex){
- var O = toIObject($this)
- , length = toLength(O.length)
- , index = toIndex(fromIndex, length)
- , value;
- // Array#includes uses SameValueZero equality algorithm
- if(IS_INCLUDES && el != el)while(length > index){
- value = O[index++];
- if(value != value)return true;
- // Array#toIndex ignores holes, Array#includes - not
- } else for(;length > index; index++)if(IS_INCLUDES || index in O){
- if(O[index] === el)return IS_INCLUDES || index || 0;
- } return !IS_INCLUDES && -1;
- };
- };
-
-/***/ },
-/* 35 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 7.1.15 ToLength
- var toInteger = __webpack_require__(36)
- , min = Math.min;
- module.exports = function(it){
- return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
- };
-
-/***/ },
-/* 36 */
-/***/ function(module, exports) {
-
- // 7.1.4 ToInteger
- var ceil = Math.ceil
- , floor = Math.floor;
- module.exports = function(it){
- return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
- };
-
-/***/ },
-/* 37 */
-/***/ function(module, exports, __webpack_require__) {
-
- var toInteger = __webpack_require__(36)
- , max = Math.max
- , min = Math.min;
- module.exports = function(index, length){
- index = toInteger(index);
- return index < 0 ? max(index + length, 0) : min(index, length);
- };
-
-/***/ },
-/* 38 */
-/***/ function(module, exports, __webpack_require__) {
-
- var shared = __webpack_require__(21)('keys')
- , uid = __webpack_require__(17);
- module.exports = function(key){
- return shared[key] || (shared[key] = uid(key));
- };
-
-/***/ },
-/* 39 */
-/***/ function(module, exports) {
-
- // IE 8- don't enum bug keys
- module.exports = (
- 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
- ).split(',');
-
-/***/ },
-/* 40 */
-/***/ function(module, exports, __webpack_require__) {
-
- // all enumerable object keys, includes symbols
- var getKeys = __webpack_require__(28)
- , gOPS = __webpack_require__(41)
- , pIE = __webpack_require__(42);
- module.exports = function(it){
- var result = getKeys(it)
- , getSymbols = gOPS.f;
- if(getSymbols){
- var symbols = getSymbols(it)
- , isEnum = pIE.f
- , i = 0
- , key;
- while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);
- } return result;
- };
-
-/***/ },
-/* 41 */
-/***/ function(module, exports) {
-
- exports.f = Object.getOwnPropertySymbols;
-
-/***/ },
-/* 42 */
-/***/ function(module, exports) {
-
- exports.f = {}.propertyIsEnumerable;
-
-/***/ },
-/* 43 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 7.2.2 IsArray(argument)
- var cof = __webpack_require__(32);
- module.exports = Array.isArray || function isArray(arg){
- return cof(arg) == 'Array';
- };
-
-/***/ },
-/* 44 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
- var anObject = __webpack_require__(10)
- , dPs = __webpack_require__(45)
- , enumBugKeys = __webpack_require__(39)
- , IE_PROTO = __webpack_require__(38)('IE_PROTO')
- , Empty = function(){ /* empty */ }
- , PROTOTYPE = 'prototype';
-
- // Create object with fake `null` prototype: use iframe Object with cleared prototype
- var createDict = function(){
- // Thrash, waste and sodomy: IE GC bug
- var iframe = __webpack_require__(13)('iframe')
- , i = enumBugKeys.length
- , lt = '<'
- , gt = '>'
- , iframeDocument;
- iframe.style.display = 'none';
- __webpack_require__(46).appendChild(iframe);
- iframe.src = 'javascript:'; // eslint-disable-line no-script-url
- // createDict = iframe.contentWindow.Object;
- // html.removeChild(iframe);
- iframeDocument = iframe.contentWindow.document;
- iframeDocument.open();
- iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
- iframeDocument.close();
- createDict = iframeDocument.F;
- while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];
- return createDict();
- };
-
- module.exports = Object.create || function create(O, Properties){
- var result;
- if(O !== null){
- Empty[PROTOTYPE] = anObject(O);
- result = new Empty;
- Empty[PROTOTYPE] = null;
- // add "__proto__" for Object.getPrototypeOf polyfill
- result[IE_PROTO] = O;
- } else result = createDict();
- return Properties === undefined ? result : dPs(result, Properties);
- };
-
-
-/***/ },
-/* 45 */
-/***/ function(module, exports, __webpack_require__) {
-
- var dP = __webpack_require__(9)
- , anObject = __webpack_require__(10)
- , getKeys = __webpack_require__(28);
-
- module.exports = __webpack_require__(4) ? Object.defineProperties : function defineProperties(O, Properties){
- anObject(O);
- var keys = getKeys(Properties)
- , length = keys.length
- , i = 0
- , P;
- while(length > i)dP.f(O, P = keys[i++], Properties[P]);
- return O;
- };
-
-/***/ },
-/* 46 */
-/***/ function(module, exports, __webpack_require__) {
-
- module.exports = __webpack_require__(2).document && document.documentElement;
-
-/***/ },
-/* 47 */
-/***/ function(module, exports, __webpack_require__) {
-
- // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
- var toIObject = __webpack_require__(30)
- , gOPN = __webpack_require__(48).f
- , toString = {}.toString;
-
- var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
- ? Object.getOwnPropertyNames(window) : [];
-
- var getWindowNames = function(it){
- try {
- return gOPN(it);
- } catch(e){
- return windowNames.slice();
- }
- };
-
- module.exports.f = function getOwnPropertyNames(it){
- return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
- };
-
-
-/***/ },
-/* 48 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
- var $keys = __webpack_require__(29)
- , hiddenKeys = __webpack_require__(39).concat('length', 'prototype');
-
- exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){
- return $keys(O, hiddenKeys);
- };
-
-/***/ },
-/* 49 */
-/***/ function(module, exports, __webpack_require__) {
-
- var pIE = __webpack_require__(42)
- , createDesc = __webpack_require__(15)
- , toIObject = __webpack_require__(30)
- , toPrimitive = __webpack_require__(14)
- , has = __webpack_require__(3)
- , IE8_DOM_DEFINE = __webpack_require__(12)
- , gOPD = Object.getOwnPropertyDescriptor;
-
- exports.f = __webpack_require__(4) ? gOPD : function getOwnPropertyDescriptor(O, P){
- O = toIObject(O);
- P = toPrimitive(P, true);
- if(IE8_DOM_DEFINE)try {
- return gOPD(O, P);
- } catch(e){ /* empty */ }
- if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);
- };
-
-/***/ },
-/* 50 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6);
- // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
- $export($export.S + $export.F * !__webpack_require__(4), 'Object', {defineProperty: __webpack_require__(9).f});
-
-/***/ },
-/* 51 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6);
- // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
- $export($export.S + $export.F * !__webpack_require__(4), 'Object', {defineProperties: __webpack_require__(45)});
-
-/***/ },
-/* 52 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
- var toIObject = __webpack_require__(30)
- , $getOwnPropertyDescriptor = __webpack_require__(49).f;
-
- __webpack_require__(53)('getOwnPropertyDescriptor', function(){
- return function getOwnPropertyDescriptor(it, key){
- return $getOwnPropertyDescriptor(toIObject(it), key);
- };
- });
-
-/***/ },
-/* 53 */
-/***/ function(module, exports, __webpack_require__) {
-
- // most Object methods by ES6 should accept primitives
- var $export = __webpack_require__(6)
- , core = __webpack_require__(7)
- , fails = __webpack_require__(5);
- module.exports = function(KEY, exec){
- var fn = (core.Object || {})[KEY] || Object[KEY]
- , exp = {};
- exp[KEY] = exec(fn);
- $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
- };
-
-/***/ },
-/* 54 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
- $export($export.S, 'Object', {create: __webpack_require__(44)});
-
-/***/ },
-/* 55 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.9 Object.getPrototypeOf(O)
- var toObject = __webpack_require__(56)
- , $getPrototypeOf = __webpack_require__(57);
-
- __webpack_require__(53)('getPrototypeOf', function(){
- return function getPrototypeOf(it){
- return $getPrototypeOf(toObject(it));
- };
- });
-
-/***/ },
-/* 56 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 7.1.13 ToObject(argument)
- var defined = __webpack_require__(33);
- module.exports = function(it){
- return Object(defined(it));
- };
-
-/***/ },
-/* 57 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
- var has = __webpack_require__(3)
- , toObject = __webpack_require__(56)
- , IE_PROTO = __webpack_require__(38)('IE_PROTO')
- , ObjectProto = Object.prototype;
-
- module.exports = Object.getPrototypeOf || function(O){
- O = toObject(O);
- if(has(O, IE_PROTO))return O[IE_PROTO];
- if(typeof O.constructor == 'function' && O instanceof O.constructor){
- return O.constructor.prototype;
- } return O instanceof Object ? ObjectProto : null;
- };
-
-/***/ },
-/* 58 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.14 Object.keys(O)
- var toObject = __webpack_require__(56)
- , $keys = __webpack_require__(28);
-
- __webpack_require__(53)('keys', function(){
- return function keys(it){
- return $keys(toObject(it));
- };
- });
-
-/***/ },
-/* 59 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.7 Object.getOwnPropertyNames(O)
- __webpack_require__(53)('getOwnPropertyNames', function(){
- return __webpack_require__(47).f;
- });
-
-/***/ },
-/* 60 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.5 Object.freeze(O)
- var isObject = __webpack_require__(11)
- , meta = __webpack_require__(20).onFreeze;
-
- __webpack_require__(53)('freeze', function($freeze){
- return function freeze(it){
- return $freeze && isObject(it) ? $freeze(meta(it)) : it;
- };
- });
-
-/***/ },
-/* 61 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.17 Object.seal(O)
- var isObject = __webpack_require__(11)
- , meta = __webpack_require__(20).onFreeze;
-
- __webpack_require__(53)('seal', function($seal){
- return function seal(it){
- return $seal && isObject(it) ? $seal(meta(it)) : it;
- };
- });
-
-/***/ },
-/* 62 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.15 Object.preventExtensions(O)
- var isObject = __webpack_require__(11)
- , meta = __webpack_require__(20).onFreeze;
-
- __webpack_require__(53)('preventExtensions', function($preventExtensions){
- return function preventExtensions(it){
- return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;
- };
- });
-
-/***/ },
-/* 63 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.12 Object.isFrozen(O)
- var isObject = __webpack_require__(11);
-
- __webpack_require__(53)('isFrozen', function($isFrozen){
- return function isFrozen(it){
- return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
- };
- });
-
-/***/ },
-/* 64 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.13 Object.isSealed(O)
- var isObject = __webpack_require__(11);
-
- __webpack_require__(53)('isSealed', function($isSealed){
- return function isSealed(it){
- return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
- };
- });
-
-/***/ },
-/* 65 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.11 Object.isExtensible(O)
- var isObject = __webpack_require__(11);
-
- __webpack_require__(53)('isExtensible', function($isExtensible){
- return function isExtensible(it){
- return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
- };
- });
-
-/***/ },
-/* 66 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.3.1 Object.assign(target, source)
- var $export = __webpack_require__(6);
-
- $export($export.S + $export.F, 'Object', {assign: __webpack_require__(67)});
-
-/***/ },
-/* 67 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 19.1.2.1 Object.assign(target, source, ...)
- var getKeys = __webpack_require__(28)
- , gOPS = __webpack_require__(41)
- , pIE = __webpack_require__(42)
- , toObject = __webpack_require__(56)
- , IObject = __webpack_require__(31)
- , $assign = Object.assign;
-
- // should work with symbols and should have deterministic property order (V8 bug)
- module.exports = !$assign || __webpack_require__(5)(function(){
- var A = {}
- , B = {}
- , S = Symbol()
- , K = 'abcdefghijklmnopqrst';
- A[S] = 7;
- K.split('').forEach(function(k){ B[k] = k; });
- return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
- }) ? function assign(target, source){ // eslint-disable-line no-unused-vars
- var T = toObject(target)
- , aLen = arguments.length
- , index = 1
- , getSymbols = gOPS.f
- , isEnum = pIE.f;
- while(aLen > index){
- var S = IObject(arguments[index++])
- , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
- , length = keys.length
- , j = 0
- , key;
- while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
- } return T;
- } : $assign;
-
-/***/ },
-/* 68 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.3.10 Object.is(value1, value2)
- var $export = __webpack_require__(6);
- $export($export.S, 'Object', {is: __webpack_require__(69)});
-
-/***/ },
-/* 69 */
-/***/ function(module, exports) {
-
- // 7.2.9 SameValue(x, y)
- module.exports = Object.is || function is(x, y){
- return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
- };
-
-/***/ },
-/* 70 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.3.19 Object.setPrototypeOf(O, proto)
- var $export = __webpack_require__(6);
- $export($export.S, 'Object', {setPrototypeOf: __webpack_require__(71).set});
-
-/***/ },
-/* 71 */
-/***/ function(module, exports, __webpack_require__) {
-
- // Works with __proto__ only. Old v8 can't work with null proto objects.
- /* eslint-disable no-proto */
- var isObject = __webpack_require__(11)
- , anObject = __webpack_require__(10);
- var check = function(O, proto){
- anObject(O);
- if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!");
- };
- module.exports = {
- set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
- function(test, buggy, set){
- try {
- set = __webpack_require__(18)(Function.call, __webpack_require__(49).f(Object.prototype, '__proto__').set, 2);
- set(test, []);
- buggy = !(test instanceof Array);
- } catch(e){ buggy = true; }
- return function setPrototypeOf(O, proto){
- check(O, proto);
- if(buggy)O.__proto__ = proto;
- else set(O, proto);
- return O;
- };
- }({}, false) : undefined),
- check: check
- };
-
-/***/ },
-/* 72 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 19.1.3.6 Object.prototype.toString()
- var classof = __webpack_require__(73)
- , test = {};
- test[__webpack_require__(23)('toStringTag')] = 'z';
- if(test + '' != '[object z]'){
- __webpack_require__(16)(Object.prototype, 'toString', function toString(){
- return '[object ' + classof(this) + ']';
- }, true);
- }
-
-/***/ },
-/* 73 */
-/***/ function(module, exports, __webpack_require__) {
-
- // getting tag from 19.1.3.6 Object.prototype.toString()
- var cof = __webpack_require__(32)
- , TAG = __webpack_require__(23)('toStringTag')
- // ES3 wrong here
- , ARG = cof(function(){ return arguments; }()) == 'Arguments';
-
- // fallback for IE11 Script Access Denied error
- var tryGet = function(it, key){
- try {
- return it[key];
- } catch(e){ /* empty */ }
- };
-
- module.exports = function(it){
- var O, T, B;
- return it === undefined ? 'Undefined' : it === null ? 'Null'
- // @@toStringTag case
- : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
- // builtinTag case
- : ARG ? cof(O)
- // ES3 arguments fallback
- : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
- };
-
-/***/ },
-/* 74 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
- var $export = __webpack_require__(6);
-
- $export($export.P, 'Function', {bind: __webpack_require__(75)});
-
-/***/ },
-/* 75 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var aFunction = __webpack_require__(19)
- , isObject = __webpack_require__(11)
- , invoke = __webpack_require__(76)
- , arraySlice = [].slice
- , factories = {};
-
- var construct = function(F, len, args){
- if(!(len in factories)){
- for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';
- factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
- } return factories[len](F, args);
- };
-
- module.exports = Function.bind || function bind(that /*, args... */){
- var fn = aFunction(this)
- , partArgs = arraySlice.call(arguments, 1);
- var bound = function(/* args... */){
- var args = partArgs.concat(arraySlice.call(arguments));
- return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
- };
- if(isObject(fn.prototype))bound.prototype = fn.prototype;
- return bound;
- };
-
-/***/ },
-/* 76 */
-/***/ function(module, exports) {
-
- // fast apply, http://jsperf.lnkit.com/fast-apply/5
- module.exports = function(fn, args, that){
- var un = that === undefined;
- switch(args.length){
- case 0: return un ? fn()
- : fn.call(that);
- case 1: return un ? fn(args[0])
- : fn.call(that, args[0]);
- case 2: return un ? fn(args[0], args[1])
- : fn.call(that, args[0], args[1]);
- case 3: return un ? fn(args[0], args[1], args[2])
- : fn.call(that, args[0], args[1], args[2]);
- case 4: return un ? fn(args[0], args[1], args[2], args[3])
- : fn.call(that, args[0], args[1], args[2], args[3]);
- } return fn.apply(that, args);
- };
-
-/***/ },
-/* 77 */
-/***/ function(module, exports, __webpack_require__) {
-
- var dP = __webpack_require__(9).f
- , createDesc = __webpack_require__(15)
- , has = __webpack_require__(3)
- , FProto = Function.prototype
- , nameRE = /^\s*function ([^ (]*)/
- , NAME = 'name';
-
- var isExtensible = Object.isExtensible || function(){
- return true;
- };
-
- // 19.2.4.2 name
- NAME in FProto || __webpack_require__(4) && dP(FProto, NAME, {
- configurable: true,
- get: function(){
- try {
- var that = this
- , name = ('' + that).match(nameRE)[1];
- has(that, NAME) || !isExtensible(that) || dP(that, NAME, createDesc(5, name));
- return name;
- } catch(e){
- return '';
- }
- }
- });
-
-/***/ },
-/* 78 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var isObject = __webpack_require__(11)
- , getPrototypeOf = __webpack_require__(57)
- , HAS_INSTANCE = __webpack_require__(23)('hasInstance')
- , FunctionProto = Function.prototype;
- // 19.2.3.6 Function.prototype[@@hasInstance](V)
- if(!(HAS_INSTANCE in FunctionProto))__webpack_require__(9).f(FunctionProto, HAS_INSTANCE, {value: function(O){
- if(typeof this != 'function' || !isObject(O))return false;
- if(!isObject(this.prototype))return O instanceof this;
- // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
- while(O = getPrototypeOf(O))if(this.prototype === O)return true;
- return false;
- }});
-
-/***/ },
-/* 79 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var global = __webpack_require__(2)
- , has = __webpack_require__(3)
- , cof = __webpack_require__(32)
- , inheritIfRequired = __webpack_require__(80)
- , toPrimitive = __webpack_require__(14)
- , fails = __webpack_require__(5)
- , gOPN = __webpack_require__(48).f
- , gOPD = __webpack_require__(49).f
- , dP = __webpack_require__(9).f
- , $trim = __webpack_require__(81).trim
- , NUMBER = 'Number'
- , $Number = global[NUMBER]
- , Base = $Number
- , proto = $Number.prototype
- // Opera ~12 has broken Object#toString
- , BROKEN_COF = cof(__webpack_require__(44)(proto)) == NUMBER
- , TRIM = 'trim' in String.prototype;
-
- // 7.1.3 ToNumber(argument)
- var toNumber = function(argument){
- var it = toPrimitive(argument, false);
- if(typeof it == 'string' && it.length > 2){
- it = TRIM ? it.trim() : $trim(it, 3);
- var first = it.charCodeAt(0)
- , third, radix, maxCode;
- if(first === 43 || first === 45){
- third = it.charCodeAt(2);
- if(third === 88 || third === 120)return NaN; // Number('+0x1') should be NaN, old V8 fix
- } else if(first === 48){
- switch(it.charCodeAt(1)){
- case 66 : case 98 : radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i
- case 79 : case 111 : radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i
- default : return +it;
- }
- for(var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++){
- code = digits.charCodeAt(i);
- // parseInt parses a string to a first unavailable symbol
- // but ToNumber should return NaN if a string contains unavailable symbols
- if(code < 48 || code > maxCode)return NaN;
- } return parseInt(digits, radix);
- }
- } return +it;
- };
-
- if(!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')){
- $Number = function Number(value){
- var it = arguments.length < 1 ? 0 : value
- , that = this;
- return that instanceof $Number
- // check on 1..constructor(foo) case
- && (BROKEN_COF ? fails(function(){ proto.valueOf.call(that); }) : cof(that) != NUMBER)
- ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);
- };
- for(var keys = __webpack_require__(4) ? gOPN(Base) : (
- // ES3:
- 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
- // ES6 (in case, if modules with ES6 Number statics required before):
- 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
- 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'
- ).split(','), j = 0, key; keys.length > j; j++){
- if(has(Base, key = keys[j]) && !has($Number, key)){
- dP($Number, key, gOPD(Base, key));
- }
- }
- $Number.prototype = proto;
- proto.constructor = $Number;
- __webpack_require__(16)(global, NUMBER, $Number);
- }
-
-/***/ },
-/* 80 */
-/***/ function(module, exports, __webpack_require__) {
-
- var isObject = __webpack_require__(11)
- , setPrototypeOf = __webpack_require__(71).set;
- module.exports = function(that, target, C){
- var P, S = target.constructor;
- if(S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf){
- setPrototypeOf(that, P);
- } return that;
- };
-
-/***/ },
-/* 81 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , defined = __webpack_require__(33)
- , fails = __webpack_require__(5)
- , spaces = __webpack_require__(82)
- , space = '[' + spaces + ']'
- , non = '\u200b\u0085'
- , ltrim = RegExp('^' + space + space + '*')
- , rtrim = RegExp(space + space + '*$');
-
- var exporter = function(KEY, exec, ALIAS){
- var exp = {};
- var FORCE = fails(function(){
- return !!spaces[KEY]() || non[KEY]() != non;
- });
- var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
- if(ALIAS)exp[ALIAS] = fn;
- $export($export.P + $export.F * FORCE, 'String', exp);
- };
-
- // 1 -> String#trimLeft
- // 2 -> String#trimRight
- // 3 -> String#trim
- var trim = exporter.trim = function(string, TYPE){
- string = String(defined(string));
- if(TYPE & 1)string = string.replace(ltrim, '');
- if(TYPE & 2)string = string.replace(rtrim, '');
- return string;
- };
-
- module.exports = exporter;
-
-/***/ },
-/* 82 */
-/***/ function(module, exports) {
-
- module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
- '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
-
-/***/ },
-/* 83 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toInteger = __webpack_require__(36)
- , aNumberValue = __webpack_require__(84)
- , repeat = __webpack_require__(85)
- , $toFixed = 1..toFixed
- , floor = Math.floor
- , data = [0, 0, 0, 0, 0, 0]
- , ERROR = 'Number.toFixed: incorrect invocation!'
- , ZERO = '0';
-
- var multiply = function(n, c){
- var i = -1
- , c2 = c;
- while(++i < 6){
- c2 += n * data[i];
- data[i] = c2 % 1e7;
- c2 = floor(c2 / 1e7);
- }
- };
- var divide = function(n){
- var i = 6
- , c = 0;
- while(--i >= 0){
- c += data[i];
- data[i] = floor(c / n);
- c = (c % n) * 1e7;
- }
- };
- var numToString = function(){
- var i = 6
- , s = '';
- while(--i >= 0){
- if(s !== '' || i === 0 || data[i] !== 0){
- var t = String(data[i]);
- s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;
- }
- } return s;
- };
- var pow = function(x, n, acc){
- return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
- };
- var log = function(x){
- var n = 0
- , x2 = x;
- while(x2 >= 4096){
- n += 12;
- x2 /= 4096;
- }
- while(x2 >= 2){
- n += 1;
- x2 /= 2;
- } return n;
- };
-
- $export($export.P + $export.F * (!!$toFixed && (
- 0.00008.toFixed(3) !== '0.000' ||
- 0.9.toFixed(0) !== '1' ||
- 1.255.toFixed(2) !== '1.25' ||
- 1000000000000000128..toFixed(0) !== '1000000000000000128'
- ) || !__webpack_require__(5)(function(){
- // V8 ~ Android 4.3-
- $toFixed.call({});
- })), 'Number', {
- toFixed: function toFixed(fractionDigits){
- var x = aNumberValue(this, ERROR)
- , f = toInteger(fractionDigits)
- , s = ''
- , m = ZERO
- , e, z, j, k;
- if(f < 0 || f > 20)throw RangeError(ERROR);
- if(x != x)return 'NaN';
- if(x <= -1e21 || x >= 1e21)return String(x);
- if(x < 0){
- s = '-';
- x = -x;
- }
- if(x > 1e-21){
- e = log(x * pow(2, 69, 1)) - 69;
- z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);
- z *= 0x10000000000000;
- e = 52 - e;
- if(e > 0){
- multiply(0, z);
- j = f;
- while(j >= 7){
- multiply(1e7, 0);
- j -= 7;
- }
- multiply(pow(10, j, 1), 0);
- j = e - 1;
- while(j >= 23){
- divide(1 << 23);
- j -= 23;
- }
- divide(1 << j);
- multiply(1, 1);
- divide(2);
- m = numToString();
- } else {
- multiply(0, z);
- multiply(1 << -e, 0);
- m = numToString() + repeat.call(ZERO, f);
- }
- }
- if(f > 0){
- k = m.length;
- m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));
- } else {
- m = s + m;
- } return m;
- }
- });
-
-/***/ },
-/* 84 */
-/***/ function(module, exports, __webpack_require__) {
-
- var cof = __webpack_require__(32);
- module.exports = function(it, msg){
- if(typeof it != 'number' && cof(it) != 'Number')throw TypeError(msg);
- return +it;
- };
-
-/***/ },
-/* 85 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var toInteger = __webpack_require__(36)
- , defined = __webpack_require__(33);
-
- module.exports = function repeat(count){
- var str = String(defined(this))
- , res = ''
- , n = toInteger(count);
- if(n < 0 || n == Infinity)throw RangeError("Count can't be negative");
- for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;
- return res;
- };
-
-/***/ },
-/* 86 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $fails = __webpack_require__(5)
- , aNumberValue = __webpack_require__(84)
- , $toPrecision = 1..toPrecision;
-
- $export($export.P + $export.F * ($fails(function(){
- // IE7-
- return $toPrecision.call(1, undefined) !== '1';
- }) || !$fails(function(){
- // V8 ~ Android 4.3-
- $toPrecision.call({});
- })), 'Number', {
- toPrecision: function toPrecision(precision){
- var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');
- return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);
- }
- });
-
-/***/ },
-/* 87 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.1 Number.EPSILON
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Number', {EPSILON: Math.pow(2, -52)});
-
-/***/ },
-/* 88 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.2 Number.isFinite(number)
- var $export = __webpack_require__(6)
- , _isFinite = __webpack_require__(2).isFinite;
-
- $export($export.S, 'Number', {
- isFinite: function isFinite(it){
- return typeof it == 'number' && _isFinite(it);
- }
- });
-
-/***/ },
-/* 89 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.3 Number.isInteger(number)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Number', {isInteger: __webpack_require__(90)});
-
-/***/ },
-/* 90 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.3 Number.isInteger(number)
- var isObject = __webpack_require__(11)
- , floor = Math.floor;
- module.exports = function isInteger(it){
- return !isObject(it) && isFinite(it) && floor(it) === it;
- };
-
-/***/ },
-/* 91 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.4 Number.isNaN(number)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Number', {
- isNaN: function isNaN(number){
- return number != number;
- }
- });
-
-/***/ },
-/* 92 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.5 Number.isSafeInteger(number)
- var $export = __webpack_require__(6)
- , isInteger = __webpack_require__(90)
- , abs = Math.abs;
-
- $export($export.S, 'Number', {
- isSafeInteger: function isSafeInteger(number){
- return isInteger(number) && abs(number) <= 0x1fffffffffffff;
- }
- });
-
-/***/ },
-/* 93 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.6 Number.MAX_SAFE_INTEGER
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff});
-
-/***/ },
-/* 94 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.10 Number.MIN_SAFE_INTEGER
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff});
-
-/***/ },
-/* 95 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , $parseFloat = __webpack_require__(96);
- // 20.1.2.12 Number.parseFloat(string)
- $export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', {parseFloat: $parseFloat});
-
-/***/ },
-/* 96 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $parseFloat = __webpack_require__(2).parseFloat
- , $trim = __webpack_require__(81).trim;
-
- module.exports = 1 / $parseFloat(__webpack_require__(82) + '-0') !== -Infinity ? function parseFloat(str){
- var string = $trim(String(str), 3)
- , result = $parseFloat(string);
- return result === 0 && string.charAt(0) == '-' ? -0 : result;
- } : $parseFloat;
-
-/***/ },
-/* 97 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , $parseInt = __webpack_require__(98);
- // 20.1.2.13 Number.parseInt(string, radix)
- $export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', {parseInt: $parseInt});
-
-/***/ },
-/* 98 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $parseInt = __webpack_require__(2).parseInt
- , $trim = __webpack_require__(81).trim
- , ws = __webpack_require__(82)
- , hex = /^[\-+]?0[xX]/;
-
- module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix){
- var string = $trim(String(str), 3);
- return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
- } : $parseInt;
-
-/***/ },
-/* 99 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , $parseInt = __webpack_require__(98);
- // 18.2.5 parseInt(string, radix)
- $export($export.G + $export.F * (parseInt != $parseInt), {parseInt: $parseInt});
-
-/***/ },
-/* 100 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , $parseFloat = __webpack_require__(96);
- // 18.2.4 parseFloat(string)
- $export($export.G + $export.F * (parseFloat != $parseFloat), {parseFloat: $parseFloat});
-
-/***/ },
-/* 101 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.3 Math.acosh(x)
- var $export = __webpack_require__(6)
- , log1p = __webpack_require__(102)
- , sqrt = Math.sqrt
- , $acosh = Math.acosh;
-
- $export($export.S + $export.F * !($acosh
- // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
- && Math.floor($acosh(Number.MAX_VALUE)) == 710
- // Tor Browser bug: Math.acosh(Infinity) -> NaN
- && $acosh(Infinity) == Infinity
- ), 'Math', {
- acosh: function acosh(x){
- return (x = +x) < 1 ? NaN : x > 94906265.62425156
- ? Math.log(x) + Math.LN2
- : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
- }
- });
-
-/***/ },
-/* 102 */
-/***/ function(module, exports) {
-
- // 20.2.2.20 Math.log1p(x)
- module.exports = Math.log1p || function log1p(x){
- return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);
- };
-
-/***/ },
-/* 103 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.5 Math.asinh(x)
- var $export = __webpack_require__(6)
- , $asinh = Math.asinh;
-
- function asinh(x){
- return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
- }
-
- // Tor Browser bug: Math.asinh(0) -> -0
- $export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', {asinh: asinh});
-
-/***/ },
-/* 104 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.7 Math.atanh(x)
- var $export = __webpack_require__(6)
- , $atanh = Math.atanh;
-
- // Tor Browser bug: Math.atanh(-0) -> 0
- $export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {
- atanh: function atanh(x){
- return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
- }
- });
-
-/***/ },
-/* 105 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.9 Math.cbrt(x)
- var $export = __webpack_require__(6)
- , sign = __webpack_require__(106);
-
- $export($export.S, 'Math', {
- cbrt: function cbrt(x){
- return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);
- }
- });
-
-/***/ },
-/* 106 */
-/***/ function(module, exports) {
-
- // 20.2.2.28 Math.sign(x)
- module.exports = Math.sign || function sign(x){
- return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
- };
-
-/***/ },
-/* 107 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.11 Math.clz32(x)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- clz32: function clz32(x){
- return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;
- }
- });
-
-/***/ },
-/* 108 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.12 Math.cosh(x)
- var $export = __webpack_require__(6)
- , exp = Math.exp;
-
- $export($export.S, 'Math', {
- cosh: function cosh(x){
- return (exp(x = +x) + exp(-x)) / 2;
- }
- });
-
-/***/ },
-/* 109 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.14 Math.expm1(x)
- var $export = __webpack_require__(6)
- , $expm1 = __webpack_require__(110);
-
- $export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', {expm1: $expm1});
-
-/***/ },
-/* 110 */
-/***/ function(module, exports) {
-
- // 20.2.2.14 Math.expm1(x)
- var $expm1 = Math.expm1;
- module.exports = (!$expm1
- // Old FF bug
- || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168
- // Tor Browser bug
- || $expm1(-2e-17) != -2e-17
- ) ? function expm1(x){
- return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
- } : $expm1;
-
-/***/ },
-/* 111 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.16 Math.fround(x)
- var $export = __webpack_require__(6)
- , sign = __webpack_require__(106)
- , pow = Math.pow
- , EPSILON = pow(2, -52)
- , EPSILON32 = pow(2, -23)
- , MAX32 = pow(2, 127) * (2 - EPSILON32)
- , MIN32 = pow(2, -126);
-
- var roundTiesToEven = function(n){
- return n + 1 / EPSILON - 1 / EPSILON;
- };
-
-
- $export($export.S, 'Math', {
- fround: function fround(x){
- var $abs = Math.abs(x)
- , $sign = sign(x)
- , a, result;
- if($abs < MIN32)return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
- a = (1 + EPSILON32 / EPSILON) * $abs;
- result = a - (a - $abs);
- if(result > MAX32 || result != result)return $sign * Infinity;
- return $sign * result;
- }
- });
-
-/***/ },
-/* 112 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
- var $export = __webpack_require__(6)
- , abs = Math.abs;
-
- $export($export.S, 'Math', {
- hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars
- var sum = 0
- , i = 0
- , aLen = arguments.length
- , larg = 0
- , arg, div;
- while(i < aLen){
- arg = abs(arguments[i++]);
- if(larg < arg){
- div = larg / arg;
- sum = sum * div * div + 1;
- larg = arg;
- } else if(arg > 0){
- div = arg / larg;
- sum += div * div;
- } else sum += arg;
- }
- return larg === Infinity ? Infinity : larg * Math.sqrt(sum);
- }
- });
-
-/***/ },
-/* 113 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.18 Math.imul(x, y)
- var $export = __webpack_require__(6)
- , $imul = Math.imul;
-
- // some WebKit versions fails with big numbers, some has wrong arity
- $export($export.S + $export.F * __webpack_require__(5)(function(){
- return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
- }), 'Math', {
- imul: function imul(x, y){
- var UINT16 = 0xffff
- , xn = +x
- , yn = +y
- , xl = UINT16 & xn
- , yl = UINT16 & yn;
- return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);
- }
- });
-
-/***/ },
-/* 114 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.21 Math.log10(x)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- log10: function log10(x){
- return Math.log(x) / Math.LN10;
- }
- });
-
-/***/ },
-/* 115 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.20 Math.log1p(x)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {log1p: __webpack_require__(102)});
-
-/***/ },
-/* 116 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.22 Math.log2(x)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- log2: function log2(x){
- return Math.log(x) / Math.LN2;
- }
- });
-
-/***/ },
-/* 117 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.28 Math.sign(x)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {sign: __webpack_require__(106)});
-
-/***/ },
-/* 118 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.30 Math.sinh(x)
- var $export = __webpack_require__(6)
- , expm1 = __webpack_require__(110)
- , exp = Math.exp;
-
- // V8 near Chromium 38 has a problem with very small numbers
- $export($export.S + $export.F * __webpack_require__(5)(function(){
- return !Math.sinh(-2e-17) != -2e-17;
- }), 'Math', {
- sinh: function sinh(x){
- return Math.abs(x = +x) < 1
- ? (expm1(x) - expm1(-x)) / 2
- : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);
- }
- });
-
-/***/ },
-/* 119 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.33 Math.tanh(x)
- var $export = __webpack_require__(6)
- , expm1 = __webpack_require__(110)
- , exp = Math.exp;
-
- $export($export.S, 'Math', {
- tanh: function tanh(x){
- var a = expm1(x = +x)
- , b = expm1(-x);
- return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
- }
- });
-
-/***/ },
-/* 120 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.34 Math.trunc(x)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- trunc: function trunc(it){
- return (it > 0 ? Math.floor : Math.ceil)(it);
- }
- });
-
-/***/ },
-/* 121 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , toIndex = __webpack_require__(37)
- , fromCharCode = String.fromCharCode
- , $fromCodePoint = String.fromCodePoint;
-
- // length should be 1, old FF problem
- $export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
- // 21.1.2.2 String.fromCodePoint(...codePoints)
- fromCodePoint: function fromCodePoint(x){ // eslint-disable-line no-unused-vars
- var res = []
- , aLen = arguments.length
- , i = 0
- , code;
- while(aLen > i){
- code = +arguments[i++];
- if(toIndex(code, 0x10ffff) !== code)throw RangeError(code + ' is not a valid code point');
- res.push(code < 0x10000
- ? fromCharCode(code)
- : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
- );
- } return res.join('');
- }
- });
-
-/***/ },
-/* 122 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , toIObject = __webpack_require__(30)
- , toLength = __webpack_require__(35);
-
- $export($export.S, 'String', {
- // 21.1.2.4 String.raw(callSite, ...substitutions)
- raw: function raw(callSite){
- var tpl = toIObject(callSite.raw)
- , len = toLength(tpl.length)
- , aLen = arguments.length
- , res = []
- , i = 0;
- while(len > i){
- res.push(String(tpl[i++]));
- if(i < aLen)res.push(String(arguments[i]));
- } return res.join('');
- }
- });
-
-/***/ },
-/* 123 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 21.1.3.25 String.prototype.trim()
- __webpack_require__(81)('trim', function($trim){
- return function trim(){
- return $trim(this, 3);
- };
- });
-
-/***/ },
-/* 124 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $at = __webpack_require__(125)(false);
- $export($export.P, 'String', {
- // 21.1.3.3 String.prototype.codePointAt(pos)
- codePointAt: function codePointAt(pos){
- return $at(this, pos);
- }
- });
-
-/***/ },
-/* 125 */
-/***/ function(module, exports, __webpack_require__) {
-
- var toInteger = __webpack_require__(36)
- , defined = __webpack_require__(33);
- // true -> String#at
- // false -> String#codePointAt
- module.exports = function(TO_STRING){
- return function(that, pos){
- var s = String(defined(that))
- , i = toInteger(pos)
- , l = s.length
- , a, b;
- if(i < 0 || i >= l)return TO_STRING ? '' : undefined;
- a = s.charCodeAt(i);
- return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
- ? TO_STRING ? s.charAt(i) : a
- : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
- };
- };
-
-/***/ },
-/* 126 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
- 'use strict';
- var $export = __webpack_require__(6)
- , toLength = __webpack_require__(35)
- , context = __webpack_require__(127)
- , ENDS_WITH = 'endsWith'
- , $endsWith = ''[ENDS_WITH];
-
- $export($export.P + $export.F * __webpack_require__(129)(ENDS_WITH), 'String', {
- endsWith: function endsWith(searchString /*, endPosition = @length */){
- var that = context(this, searchString, ENDS_WITH)
- , endPosition = arguments.length > 1 ? arguments[1] : undefined
- , len = toLength(that.length)
- , end = endPosition === undefined ? len : Math.min(toLength(endPosition), len)
- , search = String(searchString);
- return $endsWith
- ? $endsWith.call(that, search, end)
- : that.slice(end - search.length, end) === search;
- }
- });
-
-/***/ },
-/* 127 */
-/***/ function(module, exports, __webpack_require__) {
-
- // helper for String#{startsWith, endsWith, includes}
- var isRegExp = __webpack_require__(128)
- , defined = __webpack_require__(33);
-
- module.exports = function(that, searchString, NAME){
- if(isRegExp(searchString))throw TypeError('String#' + NAME + " doesn't accept regex!");
- return String(defined(that));
- };
-
-/***/ },
-/* 128 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 7.2.8 IsRegExp(argument)
- var isObject = __webpack_require__(11)
- , cof = __webpack_require__(32)
- , MATCH = __webpack_require__(23)('match');
- module.exports = function(it){
- var isRegExp;
- return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
- };
-
-/***/ },
-/* 129 */
-/***/ function(module, exports, __webpack_require__) {
-
- var MATCH = __webpack_require__(23)('match');
- module.exports = function(KEY){
- var re = /./;
- try {
- '/./'[KEY](re);
- } catch(e){
- try {
- re[MATCH] = false;
- return !'/./'[KEY](re);
- } catch(f){ /* empty */ }
- } return true;
- };
-
-/***/ },
-/* 130 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 21.1.3.7 String.prototype.includes(searchString, position = 0)
- 'use strict';
- var $export = __webpack_require__(6)
- , context = __webpack_require__(127)
- , INCLUDES = 'includes';
-
- $export($export.P + $export.F * __webpack_require__(129)(INCLUDES), 'String', {
- includes: function includes(searchString /*, position = 0 */){
- return !!~context(this, searchString, INCLUDES)
- .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
- }
- });
-
-/***/ },
-/* 131 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6);
-
- $export($export.P, 'String', {
- // 21.1.3.13 String.prototype.repeat(count)
- repeat: __webpack_require__(85)
- });
-
-/***/ },
-/* 132 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 21.1.3.18 String.prototype.startsWith(searchString [, position ])
- 'use strict';
- var $export = __webpack_require__(6)
- , toLength = __webpack_require__(35)
- , context = __webpack_require__(127)
- , STARTS_WITH = 'startsWith'
- , $startsWith = ''[STARTS_WITH];
-
- $export($export.P + $export.F * __webpack_require__(129)(STARTS_WITH), 'String', {
- startsWith: function startsWith(searchString /*, position = 0 */){
- var that = context(this, searchString, STARTS_WITH)
- , index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length))
- , search = String(searchString);
- return $startsWith
- ? $startsWith.call(that, search, index)
- : that.slice(index, index + search.length) === search;
- }
- });
-
-/***/ },
-/* 133 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $at = __webpack_require__(125)(true);
-
- // 21.1.3.27 String.prototype[@@iterator]()
- __webpack_require__(134)(String, 'String', function(iterated){
- this._t = String(iterated); // target
- this._i = 0; // next index
- // 21.1.5.2.1 %StringIteratorPrototype%.next()
- }, function(){
- var O = this._t
- , index = this._i
- , point;
- if(index >= O.length)return {value: undefined, done: true};
- point = $at(O, index);
- this._i += point.length;
- return {value: point, done: false};
- });
-
-/***/ },
-/* 134 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var LIBRARY = __webpack_require__(26)
- , $export = __webpack_require__(6)
- , redefine = __webpack_require__(16)
- , hide = __webpack_require__(8)
- , has = __webpack_require__(3)
- , Iterators = __webpack_require__(135)
- , $iterCreate = __webpack_require__(136)
- , setToStringTag = __webpack_require__(22)
- , getPrototypeOf = __webpack_require__(57)
- , ITERATOR = __webpack_require__(23)('iterator')
- , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
- , FF_ITERATOR = '@@iterator'
- , KEYS = 'keys'
- , VALUES = 'values';
-
- var returnThis = function(){ return this; };
-
- module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){
- $iterCreate(Constructor, NAME, next);
- var getMethod = function(kind){
- if(!BUGGY && kind in proto)return proto[kind];
- switch(kind){
- case KEYS: return function keys(){ return new Constructor(this, kind); };
- case VALUES: return function values(){ return new Constructor(this, kind); };
- } return function entries(){ return new Constructor(this, kind); };
- };
- var TAG = NAME + ' Iterator'
- , DEF_VALUES = DEFAULT == VALUES
- , VALUES_BUG = false
- , proto = Base.prototype
- , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
- , $default = $native || getMethod(DEFAULT)
- , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined
- , $anyNative = NAME == 'Array' ? proto.entries || $native : $native
- , methods, key, IteratorPrototype;
- // Fix native
- if($anyNative){
- IteratorPrototype = getPrototypeOf($anyNative.call(new Base));
- if(IteratorPrototype !== Object.prototype){
- // Set @@toStringTag to native iterators
- setToStringTag(IteratorPrototype, TAG, true);
- // fix for some old engines
- if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
- }
- }
- // fix Array#{values, @@iterator}.name in V8 / FF
- if(DEF_VALUES && $native && $native.name !== VALUES){
- VALUES_BUG = true;
- $default = function values(){ return $native.call(this); };
- }
- // Define iterator
- if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
- hide(proto, ITERATOR, $default);
- }
- // Plug for library
- Iterators[NAME] = $default;
- Iterators[TAG] = returnThis;
- if(DEFAULT){
- methods = {
- values: DEF_VALUES ? $default : getMethod(VALUES),
- keys: IS_SET ? $default : getMethod(KEYS),
- entries: $entries
- };
- if(FORCED)for(key in methods){
- if(!(key in proto))redefine(proto, key, methods[key]);
- } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
- }
- return methods;
- };
-
-/***/ },
-/* 135 */
-/***/ function(module, exports) {
-
- module.exports = {};
-
-/***/ },
-/* 136 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var create = __webpack_require__(44)
- , descriptor = __webpack_require__(15)
- , setToStringTag = __webpack_require__(22)
- , IteratorPrototype = {};
-
- // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
- __webpack_require__(8)(IteratorPrototype, __webpack_require__(23)('iterator'), function(){ return this; });
-
- module.exports = function(Constructor, NAME, next){
- Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});
- setToStringTag(Constructor, NAME + ' Iterator');
- };
-
-/***/ },
-/* 137 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.2 String.prototype.anchor(name)
- __webpack_require__(138)('anchor', function(createHTML){
- return function anchor(name){
- return createHTML(this, 'a', 'name', name);
- }
- });
-
-/***/ },
-/* 138 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , fails = __webpack_require__(5)
- , defined = __webpack_require__(33)
- , quot = /"/g;
- // B.2.3.2.1 CreateHTML(string, tag, attribute, value)
- var createHTML = function(string, tag, attribute, value) {
- var S = String(defined(string))
- , p1 = '<' + tag;
- if(attribute !== '')p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
- return p1 + '>' + S + '</' + tag + '>';
- };
- module.exports = function(NAME, exec){
- var O = {};
- O[NAME] = exec(createHTML);
- $export($export.P + $export.F * fails(function(){
- var test = ''[NAME]('"');
- return test !== test.toLowerCase() || test.split('"').length > 3;
- }), 'String', O);
- };
-
-/***/ },
-/* 139 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.3 String.prototype.big()
- __webpack_require__(138)('big', function(createHTML){
- return function big(){
- return createHTML(this, 'big', '', '');
- }
- });
-
-/***/ },
-/* 140 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.4 String.prototype.blink()
- __webpack_require__(138)('blink', function(createHTML){
- return function blink(){
- return createHTML(this, 'blink', '', '');
- }
- });
-
-/***/ },
-/* 141 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.5 String.prototype.bold()
- __webpack_require__(138)('bold', function(createHTML){
- return function bold(){
- return createHTML(this, 'b', '', '');
- }
- });
-
-/***/ },
-/* 142 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.6 String.prototype.fixed()
- __webpack_require__(138)('fixed', function(createHTML){
- return function fixed(){
- return createHTML(this, 'tt', '', '');
- }
- });
-
-/***/ },
-/* 143 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.7 String.prototype.fontcolor(color)
- __webpack_require__(138)('fontcolor', function(createHTML){
- return function fontcolor(color){
- return createHTML(this, 'font', 'color', color);
- }
- });
-
-/***/ },
-/* 144 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.8 String.prototype.fontsize(size)
- __webpack_require__(138)('fontsize', function(createHTML){
- return function fontsize(size){
- return createHTML(this, 'font', 'size', size);
- }
- });
-
-/***/ },
-/* 145 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.9 String.prototype.italics()
- __webpack_require__(138)('italics', function(createHTML){
- return function italics(){
- return createHTML(this, 'i', '', '');
- }
- });
-
-/***/ },
-/* 146 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.10 String.prototype.link(url)
- __webpack_require__(138)('link', function(createHTML){
- return function link(url){
- return createHTML(this, 'a', 'href', url);
- }
- });
-
-/***/ },
-/* 147 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.11 String.prototype.small()
- __webpack_require__(138)('small', function(createHTML){
- return function small(){
- return createHTML(this, 'small', '', '');
- }
- });
-
-/***/ },
-/* 148 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.12 String.prototype.strike()
- __webpack_require__(138)('strike', function(createHTML){
- return function strike(){
- return createHTML(this, 'strike', '', '');
- }
- });
-
-/***/ },
-/* 149 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.13 String.prototype.sub()
- __webpack_require__(138)('sub', function(createHTML){
- return function sub(){
- return createHTML(this, 'sub', '', '');
- }
- });
-
-/***/ },
-/* 150 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.14 String.prototype.sup()
- __webpack_require__(138)('sup', function(createHTML){
- return function sup(){
- return createHTML(this, 'sup', '', '');
- }
- });
-
-/***/ },
-/* 151 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Array', {isArray: __webpack_require__(43)});
-
-/***/ },
-/* 152 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var ctx = __webpack_require__(18)
- , $export = __webpack_require__(6)
- , toObject = __webpack_require__(56)
- , call = __webpack_require__(153)
- , isArrayIter = __webpack_require__(154)
- , toLength = __webpack_require__(35)
- , createProperty = __webpack_require__(155)
- , getIterFn = __webpack_require__(156);
-
- $export($export.S + $export.F * !__webpack_require__(157)(function(iter){ Array.from(iter); }), 'Array', {
- // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
- from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
- var O = toObject(arrayLike)
- , C = typeof this == 'function' ? this : Array
- , aLen = arguments.length
- , mapfn = aLen > 1 ? arguments[1] : undefined
- , mapping = mapfn !== undefined
- , index = 0
- , iterFn = getIterFn(O)
- , length, result, step, iterator;
- if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
- // if object isn't iterable or it's array with default iterator - use simple case
- if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){
- for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){
- createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
- }
- } else {
- length = toLength(O.length);
- for(result = new C(length); length > index; index++){
- createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
- }
- }
- result.length = index;
- return result;
- }
- });
-
-
-/***/ },
-/* 153 */
-/***/ function(module, exports, __webpack_require__) {
-
- // call something on iterator step with safe closing on error
- var anObject = __webpack_require__(10);
- module.exports = function(iterator, fn, value, entries){
- try {
- return entries ? fn(anObject(value)[0], value[1]) : fn(value);
- // 7.4.6 IteratorClose(iterator, completion)
- } catch(e){
- var ret = iterator['return'];
- if(ret !== undefined)anObject(ret.call(iterator));
- throw e;
- }
- };
-
-/***/ },
-/* 154 */
-/***/ function(module, exports, __webpack_require__) {
-
- // check on default Array iterator
- var Iterators = __webpack_require__(135)
- , ITERATOR = __webpack_require__(23)('iterator')
- , ArrayProto = Array.prototype;
-
- module.exports = function(it){
- return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
- };
-
-/***/ },
-/* 155 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $defineProperty = __webpack_require__(9)
- , createDesc = __webpack_require__(15);
-
- module.exports = function(object, index, value){
- if(index in object)$defineProperty.f(object, index, createDesc(0, value));
- else object[index] = value;
- };
-
-/***/ },
-/* 156 */
-/***/ function(module, exports, __webpack_require__) {
-
- var classof = __webpack_require__(73)
- , ITERATOR = __webpack_require__(23)('iterator')
- , Iterators = __webpack_require__(135);
- module.exports = __webpack_require__(7).getIteratorMethod = function(it){
- if(it != undefined)return it[ITERATOR]
- || it['@@iterator']
- || Iterators[classof(it)];
- };
-
-/***/ },
-/* 157 */
-/***/ function(module, exports, __webpack_require__) {
-
- var ITERATOR = __webpack_require__(23)('iterator')
- , SAFE_CLOSING = false;
-
- try {
- var riter = [7][ITERATOR]();
- riter['return'] = function(){ SAFE_CLOSING = true; };
- Array.from(riter, function(){ throw 2; });
- } catch(e){ /* empty */ }
-
- module.exports = function(exec, skipClosing){
- if(!skipClosing && !SAFE_CLOSING)return false;
- var safe = false;
- try {
- var arr = [7]
- , iter = arr[ITERATOR]();
- iter.next = function(){ return {done: safe = true}; };
- arr[ITERATOR] = function(){ return iter; };
- exec(arr);
- } catch(e){ /* empty */ }
- return safe;
- };
-
-/***/ },
-/* 158 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , createProperty = __webpack_require__(155);
-
- // WebKit Array.of isn't generic
- $export($export.S + $export.F * __webpack_require__(5)(function(){
- function F(){}
- return !(Array.of.call(F) instanceof F);
- }), 'Array', {
- // 22.1.2.3 Array.of( ...items)
- of: function of(/* ...args */){
- var index = 0
- , aLen = arguments.length
- , result = new (typeof this == 'function' ? this : Array)(aLen);
- while(aLen > index)createProperty(result, index, arguments[index++]);
- result.length = aLen;
- return result;
- }
- });
-
-/***/ },
-/* 159 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 22.1.3.13 Array.prototype.join(separator)
- var $export = __webpack_require__(6)
- , toIObject = __webpack_require__(30)
- , arrayJoin = [].join;
-
- // fallback for not array-like strings
- $export($export.P + $export.F * (__webpack_require__(31) != Object || !__webpack_require__(160)(arrayJoin)), 'Array', {
- join: function join(separator){
- return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);
- }
- });
-
-/***/ },
-/* 160 */
-/***/ function(module, exports, __webpack_require__) {
-
- var fails = __webpack_require__(5);
-
- module.exports = function(method, arg){
- return !!method && fails(function(){
- arg ? method.call(null, function(){}, 1) : method.call(null);
- });
- };
-
-/***/ },
-/* 161 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , html = __webpack_require__(46)
- , cof = __webpack_require__(32)
- , toIndex = __webpack_require__(37)
- , toLength = __webpack_require__(35)
- , arraySlice = [].slice;
-
- // fallback for not array-like ES3 strings and DOM objects
- $export($export.P + $export.F * __webpack_require__(5)(function(){
- if(html)arraySlice.call(html);
- }), 'Array', {
- slice: function slice(begin, end){
- var len = toLength(this.length)
- , klass = cof(this);
- end = end === undefined ? len : end;
- if(klass == 'Array')return arraySlice.call(this, begin, end);
- var start = toIndex(begin, len)
- , upTo = toIndex(end, len)
- , size = toLength(upTo - start)
- , cloned = Array(size)
- , i = 0;
- for(; i < size; i++)cloned[i] = klass == 'String'
- ? this.charAt(start + i)
- : this[start + i];
- return cloned;
- }
- });
-
-/***/ },
-/* 162 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , aFunction = __webpack_require__(19)
- , toObject = __webpack_require__(56)
- , fails = __webpack_require__(5)
- , $sort = [].sort
- , test = [1, 2, 3];
-
- $export($export.P + $export.F * (fails(function(){
- // IE8-
- test.sort(undefined);
- }) || !fails(function(){
- // V8 bug
- test.sort(null);
- // Old WebKit
- }) || !__webpack_require__(160)($sort)), 'Array', {
- // 22.1.3.25 Array.prototype.sort(comparefn)
- sort: function sort(comparefn){
- return comparefn === undefined
- ? $sort.call(toObject(this))
- : $sort.call(toObject(this), aFunction(comparefn));
- }
- });
-
-/***/ },
-/* 163 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $forEach = __webpack_require__(164)(0)
- , STRICT = __webpack_require__(160)([].forEach, true);
-
- $export($export.P + $export.F * !STRICT, 'Array', {
- // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
- forEach: function forEach(callbackfn /* , thisArg */){
- return $forEach(this, callbackfn, arguments[1]);
- }
- });
-
-/***/ },
-/* 164 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 0 -> Array#forEach
- // 1 -> Array#map
- // 2 -> Array#filter
- // 3 -> Array#some
- // 4 -> Array#every
- // 5 -> Array#find
- // 6 -> Array#findIndex
- var ctx = __webpack_require__(18)
- , IObject = __webpack_require__(31)
- , toObject = __webpack_require__(56)
- , toLength = __webpack_require__(35)
- , asc = __webpack_require__(165);
- module.exports = function(TYPE, $create){
- var IS_MAP = TYPE == 1
- , IS_FILTER = TYPE == 2
- , IS_SOME = TYPE == 3
- , IS_EVERY = TYPE == 4
- , IS_FIND_INDEX = TYPE == 6
- , NO_HOLES = TYPE == 5 || IS_FIND_INDEX
- , create = $create || asc;
- return function($this, callbackfn, that){
- var O = toObject($this)
- , self = IObject(O)
- , f = ctx(callbackfn, that, 3)
- , length = toLength(self.length)
- , index = 0
- , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined
- , val, res;
- for(;length > index; index++)if(NO_HOLES || index in self){
- val = self[index];
- res = f(val, index, O);
- if(TYPE){
- if(IS_MAP)result[index] = res; // map
- else if(res)switch(TYPE){
- case 3: return true; // some
- case 5: return val; // find
- case 6: return index; // findIndex
- case 2: result.push(val); // filter
- } else if(IS_EVERY)return false; // every
- }
- }
- return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
- };
- };
-
-/***/ },
-/* 165 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 9.4.2.3 ArraySpeciesCreate(originalArray, length)
- var speciesConstructor = __webpack_require__(166);
-
- module.exports = function(original, length){
- return new (speciesConstructor(original))(length);
- };
-
-/***/ },
-/* 166 */
-/***/ function(module, exports, __webpack_require__) {
-
- var isObject = __webpack_require__(11)
- , isArray = __webpack_require__(43)
- , SPECIES = __webpack_require__(23)('species');
-
- module.exports = function(original){
- var C;
- if(isArray(original)){
- C = original.constructor;
- // cross-realm fallback
- if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;
- if(isObject(C)){
- C = C[SPECIES];
- if(C === null)C = undefined;
- }
- } return C === undefined ? Array : C;
- };
-
-/***/ },
-/* 167 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $map = __webpack_require__(164)(1);
-
- $export($export.P + $export.F * !__webpack_require__(160)([].map, true), 'Array', {
- // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
- map: function map(callbackfn /* , thisArg */){
- return $map(this, callbackfn, arguments[1]);
- }
- });
-
-/***/ },
-/* 168 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $filter = __webpack_require__(164)(2);
-
- $export($export.P + $export.F * !__webpack_require__(160)([].filter, true), 'Array', {
- // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
- filter: function filter(callbackfn /* , thisArg */){
- return $filter(this, callbackfn, arguments[1]);
- }
- });
-
-/***/ },
-/* 169 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $some = __webpack_require__(164)(3);
-
- $export($export.P + $export.F * !__webpack_require__(160)([].some, true), 'Array', {
- // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
- some: function some(callbackfn /* , thisArg */){
- return $some(this, callbackfn, arguments[1]);
- }
- });
-
-/***/ },
-/* 170 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $every = __webpack_require__(164)(4);
-
- $export($export.P + $export.F * !__webpack_require__(160)([].every, true), 'Array', {
- // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
- every: function every(callbackfn /* , thisArg */){
- return $every(this, callbackfn, arguments[1]);
- }
- });
-
-/***/ },
-/* 171 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $reduce = __webpack_require__(172);
-
- $export($export.P + $export.F * !__webpack_require__(160)([].reduce, true), 'Array', {
- // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
- reduce: function reduce(callbackfn /* , initialValue */){
- return $reduce(this, callbackfn, arguments.length, arguments[1], false);
- }
- });
-
-/***/ },
-/* 172 */
-/***/ function(module, exports, __webpack_require__) {
-
- var aFunction = __webpack_require__(19)
- , toObject = __webpack_require__(56)
- , IObject = __webpack_require__(31)
- , toLength = __webpack_require__(35);
-
- module.exports = function(that, callbackfn, aLen, memo, isRight){
- aFunction(callbackfn);
- var O = toObject(that)
- , self = IObject(O)
- , length = toLength(O.length)
- , index = isRight ? length - 1 : 0
- , i = isRight ? -1 : 1;
- if(aLen < 2)for(;;){
- if(index in self){
- memo = self[index];
- index += i;
- break;
- }
- index += i;
- if(isRight ? index < 0 : length <= index){
- throw TypeError('Reduce of empty array with no initial value');
- }
- }
- for(;isRight ? index >= 0 : length > index; index += i)if(index in self){
- memo = callbackfn(memo, self[index], index, O);
- }
- return memo;
- };
-
-/***/ },
-/* 173 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $reduce = __webpack_require__(172);
-
- $export($export.P + $export.F * !__webpack_require__(160)([].reduceRight, true), 'Array', {
- // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
- reduceRight: function reduceRight(callbackfn /* , initialValue */){
- return $reduce(this, callbackfn, arguments.length, arguments[1], true);
- }
- });
-
-/***/ },
-/* 174 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $indexOf = __webpack_require__(34)(false)
- , $native = [].indexOf
- , NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
-
- $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(160)($native)), 'Array', {
- // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
- indexOf: function indexOf(searchElement /*, fromIndex = 0 */){
- return NEGATIVE_ZERO
- // convert -0 to +0
- ? $native.apply(this, arguments) || 0
- : $indexOf(this, searchElement, arguments[1]);
- }
- });
-
-/***/ },
-/* 175 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toIObject = __webpack_require__(30)
- , toInteger = __webpack_require__(36)
- , toLength = __webpack_require__(35)
- , $native = [].lastIndexOf
- , NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;
-
- $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(160)($native)), 'Array', {
- // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
- lastIndexOf: function lastIndexOf(searchElement /*, fromIndex = @[*-1] */){
- // convert -0 to +0
- if(NEGATIVE_ZERO)return $native.apply(this, arguments) || 0;
- var O = toIObject(this)
- , length = toLength(O.length)
- , index = length - 1;
- if(arguments.length > 1)index = Math.min(index, toInteger(arguments[1]));
- if(index < 0)index = length + index;
- for(;index >= 0; index--)if(index in O)if(O[index] === searchElement)return index || 0;
- return -1;
- }
- });
-
-/***/ },
-/* 176 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
- var $export = __webpack_require__(6);
-
- $export($export.P, 'Array', {copyWithin: __webpack_require__(177)});
-
- __webpack_require__(178)('copyWithin');
-
-/***/ },
-/* 177 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
- 'use strict';
- var toObject = __webpack_require__(56)
- , toIndex = __webpack_require__(37)
- , toLength = __webpack_require__(35);
-
- module.exports = [].copyWithin || function copyWithin(target/*= 0*/, start/*= 0, end = @length*/){
- var O = toObject(this)
- , len = toLength(O.length)
- , to = toIndex(target, len)
- , from = toIndex(start, len)
- , end = arguments.length > 2 ? arguments[2] : undefined
- , count = Math.min((end === undefined ? len : toIndex(end, len)) - from, len - to)
- , inc = 1;
- if(from < to && to < from + count){
- inc = -1;
- from += count - 1;
- to += count - 1;
- }
- while(count-- > 0){
- if(from in O)O[to] = O[from];
- else delete O[to];
- to += inc;
- from += inc;
- } return O;
- };
-
-/***/ },
-/* 178 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 22.1.3.31 Array.prototype[@@unscopables]
- var UNSCOPABLES = __webpack_require__(23)('unscopables')
- , ArrayProto = Array.prototype;
- if(ArrayProto[UNSCOPABLES] == undefined)__webpack_require__(8)(ArrayProto, UNSCOPABLES, {});
- module.exports = function(key){
- ArrayProto[UNSCOPABLES][key] = true;
- };
-
-/***/ },
-/* 179 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
- var $export = __webpack_require__(6);
-
- $export($export.P, 'Array', {fill: __webpack_require__(180)});
-
- __webpack_require__(178)('fill');
-
-/***/ },
-/* 180 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
- 'use strict';
- var toObject = __webpack_require__(56)
- , toIndex = __webpack_require__(37)
- , toLength = __webpack_require__(35);
- module.exports = function fill(value /*, start = 0, end = @length */){
- var O = toObject(this)
- , length = toLength(O.length)
- , aLen = arguments.length
- , index = toIndex(aLen > 1 ? arguments[1] : undefined, length)
- , end = aLen > 2 ? arguments[2] : undefined
- , endPos = end === undefined ? length : toIndex(end, length);
- while(endPos > index)O[index++] = value;
- return O;
- };
-
-/***/ },
-/* 181 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
- var $export = __webpack_require__(6)
- , $find = __webpack_require__(164)(5)
- , KEY = 'find'
- , forced = true;
- // Shouldn't skip holes
- if(KEY in [])Array(1)[KEY](function(){ forced = false; });
- $export($export.P + $export.F * forced, 'Array', {
- find: function find(callbackfn/*, that = undefined */){
- return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- }
- });
- __webpack_require__(178)(KEY);
-
-/***/ },
-/* 182 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
- var $export = __webpack_require__(6)
- , $find = __webpack_require__(164)(6)
- , KEY = 'findIndex'
- , forced = true;
- // Shouldn't skip holes
- if(KEY in [])Array(1)[KEY](function(){ forced = false; });
- $export($export.P + $export.F * forced, 'Array', {
- findIndex: function findIndex(callbackfn/*, that = undefined */){
- return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- }
- });
- __webpack_require__(178)(KEY);
-
-/***/ },
-/* 183 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var addToUnscopables = __webpack_require__(178)
- , step = __webpack_require__(184)
- , Iterators = __webpack_require__(135)
- , toIObject = __webpack_require__(30);
-
- // 22.1.3.4 Array.prototype.entries()
- // 22.1.3.13 Array.prototype.keys()
- // 22.1.3.29 Array.prototype.values()
- // 22.1.3.30 Array.prototype[@@iterator]()
- module.exports = __webpack_require__(134)(Array, 'Array', function(iterated, kind){
- this._t = toIObject(iterated); // target
- this._i = 0; // next index
- this._k = kind; // kind
- // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
- }, function(){
- var O = this._t
- , kind = this._k
- , index = this._i++;
- if(!O || index >= O.length){
- this._t = undefined;
- return step(1);
- }
- if(kind == 'keys' )return step(0, index);
- if(kind == 'values')return step(0, O[index]);
- return step(0, [index, O[index]]);
- }, 'values');
-
- // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
- Iterators.Arguments = Iterators.Array;
-
- addToUnscopables('keys');
- addToUnscopables('values');
- addToUnscopables('entries');
-
-/***/ },
-/* 184 */
-/***/ function(module, exports) {
-
- module.exports = function(done, value){
- return {value: value, done: !!done};
- };
-
-/***/ },
-/* 185 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(186)('Array');
-
-/***/ },
-/* 186 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var global = __webpack_require__(2)
- , dP = __webpack_require__(9)
- , DESCRIPTORS = __webpack_require__(4)
- , SPECIES = __webpack_require__(23)('species');
-
- module.exports = function(KEY){
- var C = global[KEY];
- if(DESCRIPTORS && C && !C[SPECIES])dP.f(C, SPECIES, {
- configurable: true,
- get: function(){ return this; }
- });
- };
-
-/***/ },
-/* 187 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , inheritIfRequired = __webpack_require__(80)
- , dP = __webpack_require__(9).f
- , gOPN = __webpack_require__(48).f
- , isRegExp = __webpack_require__(128)
- , $flags = __webpack_require__(188)
- , $RegExp = global.RegExp
- , Base = $RegExp
- , proto = $RegExp.prototype
- , re1 = /a/g
- , re2 = /a/g
- // "new" creates a new object, old webkit buggy here
- , CORRECT_NEW = new $RegExp(re1) !== re1;
-
- if(__webpack_require__(4) && (!CORRECT_NEW || __webpack_require__(5)(function(){
- re2[__webpack_require__(23)('match')] = false;
- // RegExp constructor can alter flags and IsRegExp works correct with @@match
- return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
- }))){
- $RegExp = function RegExp(p, f){
- var tiRE = this instanceof $RegExp
- , piRE = isRegExp(p)
- , fiU = f === undefined;
- return !tiRE && piRE && p.constructor === $RegExp && fiU ? p
- : inheritIfRequired(CORRECT_NEW
- ? new Base(piRE && !fiU ? p.source : p, f)
- : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)
- , tiRE ? this : proto, $RegExp);
- };
- var proxy = function(key){
- key in $RegExp || dP($RegExp, key, {
- configurable: true,
- get: function(){ return Base[key]; },
- set: function(it){ Base[key] = it; }
- });
- };
- for(var keys = gOPN(Base), i = 0; keys.length > i; )proxy(keys[i++]);
- proto.constructor = $RegExp;
- $RegExp.prototype = proto;
- __webpack_require__(16)(global, 'RegExp', $RegExp);
- }
-
- __webpack_require__(186)('RegExp');
-
-/***/ },
-/* 188 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 21.2.5.3 get RegExp.prototype.flags
- var anObject = __webpack_require__(10);
- module.exports = function(){
- var that = anObject(this)
- , result = '';
- if(that.global) result += 'g';
- if(that.ignoreCase) result += 'i';
- if(that.multiline) result += 'm';
- if(that.unicode) result += 'u';
- if(that.sticky) result += 'y';
- return result;
- };
-
-/***/ },
-/* 189 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- __webpack_require__(190);
- var anObject = __webpack_require__(10)
- , $flags = __webpack_require__(188)
- , DESCRIPTORS = __webpack_require__(4)
- , TO_STRING = 'toString'
- , $toString = /./[TO_STRING];
-
- var define = function(fn){
- __webpack_require__(16)(RegExp.prototype, TO_STRING, fn, true);
- };
-
- // 21.2.5.14 RegExp.prototype.toString()
- if(__webpack_require__(5)(function(){ return $toString.call({source: 'a', flags: 'b'}) != '/a/b'; })){
- define(function toString(){
- var R = anObject(this);
- return '/'.concat(R.source, '/',
- 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);
- });
- // FF44- RegExp#toString has a wrong name
- } else if($toString.name != TO_STRING){
- define(function toString(){
- return $toString.call(this);
- });
- }
-
-/***/ },
-/* 190 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 21.2.5.3 get RegExp.prototype.flags()
- if(__webpack_require__(4) && /./g.flags != 'g')__webpack_require__(9).f(RegExp.prototype, 'flags', {
- configurable: true,
- get: __webpack_require__(188)
- });
-
-/***/ },
-/* 191 */
-/***/ function(module, exports, __webpack_require__) {
-
- // @@match logic
- __webpack_require__(192)('match', 1, function(defined, MATCH, $match){
- // 21.1.3.11 String.prototype.match(regexp)
- return [function match(regexp){
- 'use strict';
- var O = defined(this)
- , fn = regexp == undefined ? undefined : regexp[MATCH];
- return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
- }, $match];
- });
-
-/***/ },
-/* 192 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var hide = __webpack_require__(8)
- , redefine = __webpack_require__(16)
- , fails = __webpack_require__(5)
- , defined = __webpack_require__(33)
- , wks = __webpack_require__(23);
-
- module.exports = function(KEY, length, exec){
- var SYMBOL = wks(KEY)
- , fns = exec(defined, SYMBOL, ''[KEY])
- , strfn = fns[0]
- , rxfn = fns[1];
- if(fails(function(){
- var O = {};
- O[SYMBOL] = function(){ return 7; };
- return ''[KEY](O) != 7;
- })){
- redefine(String.prototype, KEY, strfn);
- hide(RegExp.prototype, SYMBOL, length == 2
- // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
- // 21.2.5.11 RegExp.prototype[@@split](string, limit)
- ? function(string, arg){ return rxfn.call(string, this, arg); }
- // 21.2.5.6 RegExp.prototype[@@match](string)
- // 21.2.5.9 RegExp.prototype[@@search](string)
- : function(string){ return rxfn.call(string, this); }
- );
- }
- };
-
-/***/ },
-/* 193 */
-/***/ function(module, exports, __webpack_require__) {
-
- // @@replace logic
- __webpack_require__(192)('replace', 2, function(defined, REPLACE, $replace){
- // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)
- return [function replace(searchValue, replaceValue){
- 'use strict';
- var O = defined(this)
- , fn = searchValue == undefined ? undefined : searchValue[REPLACE];
- return fn !== undefined
- ? fn.call(searchValue, O, replaceValue)
- : $replace.call(String(O), searchValue, replaceValue);
- }, $replace];
- });
-
-/***/ },
-/* 194 */
-/***/ function(module, exports, __webpack_require__) {
-
- // @@search logic
- __webpack_require__(192)('search', 1, function(defined, SEARCH, $search){
- // 21.1.3.15 String.prototype.search(regexp)
- return [function search(regexp){
- 'use strict';
- var O = defined(this)
- , fn = regexp == undefined ? undefined : regexp[SEARCH];
- return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
- }, $search];
- });
-
-/***/ },
-/* 195 */
-/***/ function(module, exports, __webpack_require__) {
-
- // @@split logic
- __webpack_require__(192)('split', 2, function(defined, SPLIT, $split){
- 'use strict';
- var isRegExp = __webpack_require__(128)
- , _split = $split
- , $push = [].push
- , $SPLIT = 'split'
- , LENGTH = 'length'
- , LAST_INDEX = 'lastIndex';
- if(
- 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
- 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
- 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
- '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
- '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
- ''[$SPLIT](/.?/)[LENGTH]
- ){
- var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group
- // based on es5-shim implementation, need to rework it
- $split = function(separator, limit){
- var string = String(this);
- if(separator === undefined && limit === 0)return [];
- // If `separator` is not a regex, use native split
- if(!isRegExp(separator))return _split.call(string, separator, limit);
- var output = [];
- var flags = (separator.ignoreCase ? 'i' : '') +
- (separator.multiline ? 'm' : '') +
- (separator.unicode ? 'u' : '') +
- (separator.sticky ? 'y' : '');
- var lastLastIndex = 0;
- var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;
- // Make `global` and avoid `lastIndex` issues by working with a copy
- var separatorCopy = new RegExp(separator.source, flags + 'g');
- var separator2, match, lastIndex, lastLength, i;
- // Doesn't need flags gy, but they don't hurt
- if(!NPCG)separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\s)', flags);
- while(match = separatorCopy.exec(string)){
- // `separatorCopy.lastIndex` is not reliable cross-browser
- lastIndex = match.index + match[0][LENGTH];
- if(lastIndex > lastLastIndex){
- output.push(string.slice(lastLastIndex, match.index));
- // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG
- if(!NPCG && match[LENGTH] > 1)match[0].replace(separator2, function(){
- for(i = 1; i < arguments[LENGTH] - 2; i++)if(arguments[i] === undefined)match[i] = undefined;
- });
- if(match[LENGTH] > 1 && match.index < string[LENGTH])$push.apply(output, match.slice(1));
- lastLength = match[0][LENGTH];
- lastLastIndex = lastIndex;
- if(output[LENGTH] >= splitLimit)break;
- }
- if(separatorCopy[LAST_INDEX] === match.index)separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
- }
- if(lastLastIndex === string[LENGTH]){
- if(lastLength || !separatorCopy.test(''))output.push('');
- } else output.push(string.slice(lastLastIndex));
- return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
- };
- // Chakra, V8
- } else if('0'[$SPLIT](undefined, 0)[LENGTH]){
- $split = function(separator, limit){
- return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);
- };
- }
- // 21.1.3.17 String.prototype.split(separator, limit)
- return [function split(separator, limit){
- var O = defined(this)
- , fn = separator == undefined ? undefined : separator[SPLIT];
- return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);
- }, $split];
- });
-
-/***/ },
-/* 196 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var LIBRARY = __webpack_require__(26)
- , global = __webpack_require__(2)
- , ctx = __webpack_require__(18)
- , classof = __webpack_require__(73)
- , $export = __webpack_require__(6)
- , isObject = __webpack_require__(11)
- , aFunction = __webpack_require__(19)
- , anInstance = __webpack_require__(197)
- , forOf = __webpack_require__(198)
- , speciesConstructor = __webpack_require__(199)
- , task = __webpack_require__(200).set
- , microtask = __webpack_require__(201)()
- , PROMISE = 'Promise'
- , TypeError = global.TypeError
- , process = global.process
- , $Promise = global[PROMISE]
- , process = global.process
- , isNode = classof(process) == 'process'
- , empty = function(){ /* empty */ }
- , Internal, GenericPromiseCapability, Wrapper;
-
- var USE_NATIVE = !!function(){
- try {
- // correct subclassing with @@species support
- var promise = $Promise.resolve(1)
- , FakePromise = (promise.constructor = {})[__webpack_require__(23)('species')] = function(exec){ exec(empty, empty); };
- // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
- return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;
- } catch(e){ /* empty */ }
- }();
-
- // helpers
- var sameConstructor = function(a, b){
- // with library wrapper special case
- return a === b || a === $Promise && b === Wrapper;
- };
- var isThenable = function(it){
- var then;
- return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
- };
- var newPromiseCapability = function(C){
- return sameConstructor($Promise, C)
- ? new PromiseCapability(C)
- : new GenericPromiseCapability(C);
- };
- var PromiseCapability = GenericPromiseCapability = function(C){
- var resolve, reject;
- this.promise = new C(function($$resolve, $$reject){
- if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor');
- resolve = $$resolve;
- reject = $$reject;
- });
- this.resolve = aFunction(resolve);
- this.reject = aFunction(reject);
- };
- var perform = function(exec){
- try {
- exec();
- } catch(e){
- return {error: e};
- }
- };
- var notify = function(promise, isReject){
- if(promise._n)return;
- promise._n = true;
- var chain = promise._c;
- microtask(function(){
- var value = promise._v
- , ok = promise._s == 1
- , i = 0;
- var run = function(reaction){
- var handler = ok ? reaction.ok : reaction.fail
- , resolve = reaction.resolve
- , reject = reaction.reject
- , domain = reaction.domain
- , result, then;
- try {
- if(handler){
- if(!ok){
- if(promise._h == 2)onHandleUnhandled(promise);
- promise._h = 1;
- }
- if(handler === true)result = value;
- else {
- if(domain)domain.enter();
- result = handler(value);
- if(domain)domain.exit();
- }
- if(result === reaction.promise){
- reject(TypeError('Promise-chain cycle'));
- } else if(then = isThenable(result)){
- then.call(result, resolve, reject);
- } else resolve(result);
- } else reject(value);
- } catch(e){
- reject(e);
- }
- };
- while(chain.length > i)run(chain[i++]); // variable length - can't use forEach
- promise._c = [];
- promise._n = false;
- if(isReject && !promise._h)onUnhandled(promise);
- });
- };
- var onUnhandled = function(promise){
- task.call(global, function(){
- var value = promise._v
- , abrupt, handler, console;
- if(isUnhandled(promise)){
- abrupt = perform(function(){
- if(isNode){
- process.emit('unhandledRejection', value, promise);
- } else if(handler = global.onunhandledrejection){
- handler({promise: promise, reason: value});
- } else if((console = global.console) && console.error){
- console.error('Unhandled promise rejection', value);
- }
- });
- // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
- promise._h = isNode || isUnhandled(promise) ? 2 : 1;
- } promise._a = undefined;
- if(abrupt)throw abrupt.error;
- });
- };
- var isUnhandled = function(promise){
- if(promise._h == 1)return false;
- var chain = promise._a || promise._c
- , i = 0
- , reaction;
- while(chain.length > i){
- reaction = chain[i++];
- if(reaction.fail || !isUnhandled(reaction.promise))return false;
- } return true;
- };
- var onHandleUnhandled = function(promise){
- task.call(global, function(){
- var handler;
- if(isNode){
- process.emit('rejectionHandled', promise);
- } else if(handler = global.onrejectionhandled){
- handler({promise: promise, reason: promise._v});
- }
- });
- };
- var $reject = function(value){
- var promise = this;
- if(promise._d)return;
- promise._d = true;
- promise = promise._w || promise; // unwrap
- promise._v = value;
- promise._s = 2;
- if(!promise._a)promise._a = promise._c.slice();
- notify(promise, true);
- };
- var $resolve = function(value){
- var promise = this
- , then;
- if(promise._d)return;
- promise._d = true;
- promise = promise._w || promise; // unwrap
- try {
- if(promise === value)throw TypeError("Promise can't be resolved itself");
- if(then = isThenable(value)){
- microtask(function(){
- var wrapper = {_w: promise, _d: false}; // wrap
- try {
- then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
- } catch(e){
- $reject.call(wrapper, e);
- }
- });
- } else {
- promise._v = value;
- promise._s = 1;
- notify(promise, false);
- }
- } catch(e){
- $reject.call({_w: promise, _d: false}, e); // wrap
- }
- };
-
- // constructor polyfill
- if(!USE_NATIVE){
- // 25.4.3.1 Promise(executor)
- $Promise = function Promise(executor){
- anInstance(this, $Promise, PROMISE, '_h');
- aFunction(executor);
- Internal.call(this);
- try {
- executor(ctx($resolve, this, 1), ctx($reject, this, 1));
- } catch(err){
- $reject.call(this, err);
- }
- };
- Internal = function Promise(executor){
- this._c = []; // <- awaiting reactions
- this._a = undefined; // <- checked in isUnhandled reactions
- this._s = 0; // <- state
- this._d = false; // <- done
- this._v = undefined; // <- value
- this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
- this._n = false; // <- notify
- };
- Internal.prototype = __webpack_require__(202)($Promise.prototype, {
- // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
- then: function then(onFulfilled, onRejected){
- var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
- reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
- reaction.fail = typeof onRejected == 'function' && onRejected;
- reaction.domain = isNode ? process.domain : undefined;
- this._c.push(reaction);
- if(this._a)this._a.push(reaction);
- if(this._s)notify(this, false);
- return reaction.promise;
- },
- // 25.4.5.1 Promise.prototype.catch(onRejected)
- 'catch': function(onRejected){
- return this.then(undefined, onRejected);
- }
- });
- PromiseCapability = function(){
- var promise = new Internal;
- this.promise = promise;
- this.resolve = ctx($resolve, promise, 1);
- this.reject = ctx($reject, promise, 1);
- };
- }
-
- $export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: $Promise});
- __webpack_require__(22)($Promise, PROMISE);
- __webpack_require__(186)(PROMISE);
- Wrapper = __webpack_require__(7)[PROMISE];
-
- // statics
- $export($export.S + $export.F * !USE_NATIVE, PROMISE, {
- // 25.4.4.5 Promise.reject(r)
- reject: function reject(r){
- var capability = newPromiseCapability(this)
- , $$reject = capability.reject;
- $$reject(r);
- return capability.promise;
- }
- });
- $export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
- // 25.4.4.6 Promise.resolve(x)
- resolve: function resolve(x){
- // instanceof instead of internal slot check because we should fix it without replacement native Promise core
- if(x instanceof $Promise && sameConstructor(x.constructor, this))return x;
- var capability = newPromiseCapability(this)
- , $$resolve = capability.resolve;
- $$resolve(x);
- return capability.promise;
- }
- });
- $export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(157)(function(iter){
- $Promise.all(iter)['catch'](empty);
- })), PROMISE, {
- // 25.4.4.1 Promise.all(iterable)
- all: function all(iterable){
- var C = this
- , capability = newPromiseCapability(C)
- , resolve = capability.resolve
- , reject = capability.reject;
- var abrupt = perform(function(){
- var values = []
- , index = 0
- , remaining = 1;
- forOf(iterable, false, function(promise){
- var $index = index++
- , alreadyCalled = false;
- values.push(undefined);
- remaining++;
- C.resolve(promise).then(function(value){
- if(alreadyCalled)return;
- alreadyCalled = true;
- values[$index] = value;
- --remaining || resolve(values);
- }, reject);
- });
- --remaining || resolve(values);
- });
- if(abrupt)reject(abrupt.error);
- return capability.promise;
- },
- // 25.4.4.4 Promise.race(iterable)
- race: function race(iterable){
- var C = this
- , capability = newPromiseCapability(C)
- , reject = capability.reject;
- var abrupt = perform(function(){
- forOf(iterable, false, function(promise){
- C.resolve(promise).then(capability.resolve, reject);
- });
- });
- if(abrupt)reject(abrupt.error);
- return capability.promise;
- }
- });
-
-/***/ },
-/* 197 */
-/***/ function(module, exports) {
-
- module.exports = function(it, Constructor, name, forbiddenField){
- if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){
- throw TypeError(name + ': incorrect invocation!');
- } return it;
- };
-
-/***/ },
-/* 198 */
-/***/ function(module, exports, __webpack_require__) {
-
- var ctx = __webpack_require__(18)
- , call = __webpack_require__(153)
- , isArrayIter = __webpack_require__(154)
- , anObject = __webpack_require__(10)
- , toLength = __webpack_require__(35)
- , getIterFn = __webpack_require__(156)
- , BREAK = {}
- , RETURN = {};
- var exports = module.exports = function(iterable, entries, fn, that, ITERATOR){
- var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)
- , f = ctx(fn, that, entries ? 2 : 1)
- , index = 0
- , length, step, iterator, result;
- if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');
- // fast case for arrays with default iterator
- if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){
- result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
- if(result === BREAK || result === RETURN)return result;
- } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
- result = call(iterator, f, step.value, entries);
- if(result === BREAK || result === RETURN)return result;
- }
- };
- exports.BREAK = BREAK;
- exports.RETURN = RETURN;
-
-/***/ },
-/* 199 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 7.3.20 SpeciesConstructor(O, defaultConstructor)
- var anObject = __webpack_require__(10)
- , aFunction = __webpack_require__(19)
- , SPECIES = __webpack_require__(23)('species');
- module.exports = function(O, D){
- var C = anObject(O).constructor, S;
- return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
- };
-
-/***/ },
-/* 200 */
-/***/ function(module, exports, __webpack_require__) {
-
- var ctx = __webpack_require__(18)
- , invoke = __webpack_require__(76)
- , html = __webpack_require__(46)
- , cel = __webpack_require__(13)
- , global = __webpack_require__(2)
- , process = global.process
- , setTask = global.setImmediate
- , clearTask = global.clearImmediate
- , MessageChannel = global.MessageChannel
- , counter = 0
- , queue = {}
- , ONREADYSTATECHANGE = 'onreadystatechange'
- , defer, channel, port;
- var run = function(){
- var id = +this;
- if(queue.hasOwnProperty(id)){
- var fn = queue[id];
- delete queue[id];
- fn();
- }
- };
- var listener = function(event){
- run.call(event.data);
- };
- // Node.js 0.9+ & IE10+ has setImmediate, otherwise:
- if(!setTask || !clearTask){
- setTask = function setImmediate(fn){
- var args = [], i = 1;
- while(arguments.length > i)args.push(arguments[i++]);
- queue[++counter] = function(){
- invoke(typeof fn == 'function' ? fn : Function(fn), args);
- };
- defer(counter);
- return counter;
- };
- clearTask = function clearImmediate(id){
- delete queue[id];
- };
- // Node.js 0.8-
- if(__webpack_require__(32)(process) == 'process'){
- defer = function(id){
- process.nextTick(ctx(run, id, 1));
- };
- // Browsers with MessageChannel, includes WebWorkers
- } else if(MessageChannel){
- channel = new MessageChannel;
- port = channel.port2;
- channel.port1.onmessage = listener;
- defer = ctx(port.postMessage, port, 1);
- // Browsers with postMessage, skip WebWorkers
- // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
- } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){
- defer = function(id){
- global.postMessage(id + '', '*');
- };
- global.addEventListener('message', listener, false);
- // IE8-
- } else if(ONREADYSTATECHANGE in cel('script')){
- defer = function(id){
- html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){
- html.removeChild(this);
- run.call(id);
- };
- };
- // Rest old browsers
- } else {
- defer = function(id){
- setTimeout(ctx(run, id, 1), 0);
- };
- }
- }
- module.exports = {
- set: setTask,
- clear: clearTask
- };
-
-/***/ },
-/* 201 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , macrotask = __webpack_require__(200).set
- , Observer = global.MutationObserver || global.WebKitMutationObserver
- , process = global.process
- , Promise = global.Promise
- , isNode = __webpack_require__(32)(process) == 'process';
-
- module.exports = function(){
- var head, last, notify;
-
- var flush = function(){
- var parent, fn;
- if(isNode && (parent = process.domain))parent.exit();
- while(head){
- fn = head.fn;
- head = head.next;
- try {
- fn();
- } catch(e){
- if(head)notify();
- else last = undefined;
- throw e;
- }
- } last = undefined;
- if(parent)parent.enter();
- };
-
- // Node.js
- if(isNode){
- notify = function(){
- process.nextTick(flush);
- };
- // browsers with MutationObserver
- } else if(Observer){
- var toggle = true
- , node = document.createTextNode('');
- new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new
- notify = function(){
- node.data = toggle = !toggle;
- };
- // environments with maybe non-completely correct, but existent Promise
- } else if(Promise && Promise.resolve){
- var promise = Promise.resolve();
- notify = function(){
- promise.then(flush);
- };
- // for other environments - macrotask based on:
- // - setImmediate
- // - MessageChannel
- // - window.postMessag
- // - onreadystatechange
- // - setTimeout
- } else {
- notify = function(){
- // strange IE + webpack dev server bug - use .call(global)
- macrotask.call(global, flush);
- };
- }
-
- return function(fn){
- var task = {fn: fn, next: undefined};
- if(last)last.next = task;
- if(!head){
- head = task;
- notify();
- } last = task;
- };
- };
-
-/***/ },
-/* 202 */
-/***/ function(module, exports, __webpack_require__) {
-
- var redefine = __webpack_require__(16);
- module.exports = function(target, src, safe){
- for(var key in src)redefine(target, key, src[key], safe);
- return target;
- };
-
-/***/ },
-/* 203 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var strong = __webpack_require__(204);
-
- // 23.1 Map Objects
- module.exports = __webpack_require__(205)('Map', function(get){
- return function Map(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
- }, {
- // 23.1.3.6 Map.prototype.get(key)
- get: function get(key){
- var entry = strong.getEntry(this, key);
- return entry && entry.v;
- },
- // 23.1.3.9 Map.prototype.set(key, value)
- set: function set(key, value){
- return strong.def(this, key === 0 ? 0 : key, value);
- }
- }, strong, true);
-
-/***/ },
-/* 204 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var dP = __webpack_require__(9).f
- , create = __webpack_require__(44)
- , redefineAll = __webpack_require__(202)
- , ctx = __webpack_require__(18)
- , anInstance = __webpack_require__(197)
- , defined = __webpack_require__(33)
- , forOf = __webpack_require__(198)
- , $iterDefine = __webpack_require__(134)
- , step = __webpack_require__(184)
- , setSpecies = __webpack_require__(186)
- , DESCRIPTORS = __webpack_require__(4)
- , fastKey = __webpack_require__(20).fastKey
- , SIZE = DESCRIPTORS ? '_s' : 'size';
-
- var getEntry = function(that, key){
- // fast case
- var index = fastKey(key), entry;
- if(index !== 'F')return that._i[index];
- // frozen object case
- for(entry = that._f; entry; entry = entry.n){
- if(entry.k == key)return entry;
- }
- };
-
- module.exports = {
- getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
- var C = wrapper(function(that, iterable){
- anInstance(that, C, NAME, '_i');
- that._i = create(null); // index
- that._f = undefined; // first entry
- that._l = undefined; // last entry
- that[SIZE] = 0; // size
- if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
- });
- redefineAll(C.prototype, {
- // 23.1.3.1 Map.prototype.clear()
- // 23.2.3.2 Set.prototype.clear()
- clear: function clear(){
- for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){
- entry.r = true;
- if(entry.p)entry.p = entry.p.n = undefined;
- delete data[entry.i];
- }
- that._f = that._l = undefined;
- that[SIZE] = 0;
- },
- // 23.1.3.3 Map.prototype.delete(key)
- // 23.2.3.4 Set.prototype.delete(value)
- 'delete': function(key){
- var that = this
- , entry = getEntry(that, key);
- if(entry){
- var next = entry.n
- , prev = entry.p;
- delete that._i[entry.i];
- entry.r = true;
- if(prev)prev.n = next;
- if(next)next.p = prev;
- if(that._f == entry)that._f = next;
- if(that._l == entry)that._l = prev;
- that[SIZE]--;
- } return !!entry;
- },
- // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
- // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
- forEach: function forEach(callbackfn /*, that = undefined */){
- anInstance(this, C, 'forEach');
- var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)
- , entry;
- while(entry = entry ? entry.n : this._f){
- f(entry.v, entry.k, this);
- // revert to the last existing entry
- while(entry && entry.r)entry = entry.p;
- }
- },
- // 23.1.3.7 Map.prototype.has(key)
- // 23.2.3.7 Set.prototype.has(value)
- has: function has(key){
- return !!getEntry(this, key);
- }
- });
- if(DESCRIPTORS)dP(C.prototype, 'size', {
- get: function(){
- return defined(this[SIZE]);
- }
- });
- return C;
- },
- def: function(that, key, value){
- var entry = getEntry(that, key)
- , prev, index;
- // change existing entry
- if(entry){
- entry.v = value;
- // create new entry
- } else {
- that._l = entry = {
- i: index = fastKey(key, true), // <- index
- k: key, // <- key
- v: value, // <- value
- p: prev = that._l, // <- previous entry
- n: undefined, // <- next entry
- r: false // <- removed
- };
- if(!that._f)that._f = entry;
- if(prev)prev.n = entry;
- that[SIZE]++;
- // add to index
- if(index !== 'F')that._i[index] = entry;
- } return that;
- },
- getEntry: getEntry,
- setStrong: function(C, NAME, IS_MAP){
- // add .keys, .values, .entries, [@@iterator]
- // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
- $iterDefine(C, NAME, function(iterated, kind){
- this._t = iterated; // target
- this._k = kind; // kind
- this._l = undefined; // previous
- }, function(){
- var that = this
- , kind = that._k
- , entry = that._l;
- // revert to the last existing entry
- while(entry && entry.r)entry = entry.p;
- // get next entry
- if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){
- // or finish the iteration
- that._t = undefined;
- return step(1);
- }
- // return step by kind
- if(kind == 'keys' )return step(0, entry.k);
- if(kind == 'values')return step(0, entry.v);
- return step(0, [entry.k, entry.v]);
- }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);
-
- // add [@@species], 23.1.2.2, 23.2.2.2
- setSpecies(NAME);
- }
- };
-
-/***/ },
-/* 205 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var global = __webpack_require__(2)
- , $export = __webpack_require__(6)
- , redefine = __webpack_require__(16)
- , redefineAll = __webpack_require__(202)
- , meta = __webpack_require__(20)
- , forOf = __webpack_require__(198)
- , anInstance = __webpack_require__(197)
- , isObject = __webpack_require__(11)
- , fails = __webpack_require__(5)
- , $iterDetect = __webpack_require__(157)
- , setToStringTag = __webpack_require__(22)
- , inheritIfRequired = __webpack_require__(80);
-
- module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){
- var Base = global[NAME]
- , C = Base
- , ADDER = IS_MAP ? 'set' : 'add'
- , proto = C && C.prototype
- , O = {};
- var fixMethod = function(KEY){
- var fn = proto[KEY];
- redefine(proto, KEY,
- KEY == 'delete' ? function(a){
- return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
- } : KEY == 'has' ? function has(a){
- return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
- } : KEY == 'get' ? function get(a){
- return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
- } : KEY == 'add' ? function add(a){ fn.call(this, a === 0 ? 0 : a); return this; }
- : function set(a, b){ fn.call(this, a === 0 ? 0 : a, b); return this; }
- );
- };
- if(typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){
- new C().entries().next();
- }))){
- // create collection constructor
- C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
- redefineAll(C.prototype, methods);
- meta.NEED = true;
- } else {
- var instance = new C
- // early implementations not supports chaining
- , HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance
- // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false
- , THROWS_ON_PRIMITIVES = fails(function(){ instance.has(1); })
- // most early implementations doesn't supports iterables, most modern - not close it correctly
- , ACCEPT_ITERABLES = $iterDetect(function(iter){ new C(iter); }) // eslint-disable-line no-new
- // for early implementations -0 and +0 not the same
- , BUGGY_ZERO = !IS_WEAK && fails(function(){
- // V8 ~ Chromium 42- fails only with 5+ elements
- var $instance = new C()
- , index = 5;
- while(index--)$instance[ADDER](index, index);
- return !$instance.has(-0);
- });
- if(!ACCEPT_ITERABLES){
- C = wrapper(function(target, iterable){
- anInstance(target, C, NAME);
- var that = inheritIfRequired(new Base, target, C);
- if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
- return that;
- });
- C.prototype = proto;
- proto.constructor = C;
- }
- if(THROWS_ON_PRIMITIVES || BUGGY_ZERO){
- fixMethod('delete');
- fixMethod('has');
- IS_MAP && fixMethod('get');
- }
- if(BUGGY_ZERO || HASNT_CHAINING)fixMethod(ADDER);
- // weak collections should not contains .clear method
- if(IS_WEAK && proto.clear)delete proto.clear;
- }
-
- setToStringTag(C, NAME);
-
- O[NAME] = C;
- $export($export.G + $export.W + $export.F * (C != Base), O);
-
- if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);
-
- return C;
- };
-
-/***/ },
-/* 206 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var strong = __webpack_require__(204);
-
- // 23.2 Set Objects
- module.exports = __webpack_require__(205)('Set', function(get){
- return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
- }, {
- // 23.2.3.1 Set.prototype.add(value)
- add: function add(value){
- return strong.def(this, value = value === 0 ? 0 : value, value);
- }
- }, strong);
-
-/***/ },
-/* 207 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var each = __webpack_require__(164)(0)
- , redefine = __webpack_require__(16)
- , meta = __webpack_require__(20)
- , assign = __webpack_require__(67)
- , weak = __webpack_require__(208)
- , isObject = __webpack_require__(11)
- , getWeak = meta.getWeak
- , isExtensible = Object.isExtensible
- , uncaughtFrozenStore = weak.ufstore
- , tmp = {}
- , InternalMap;
-
- var wrapper = function(get){
- return function WeakMap(){
- return get(this, arguments.length > 0 ? arguments[0] : undefined);
- };
- };
-
- var methods = {
- // 23.3.3.3 WeakMap.prototype.get(key)
- get: function get(key){
- if(isObject(key)){
- var data = getWeak(key);
- if(data === true)return uncaughtFrozenStore(this).get(key);
- return data ? data[this._i] : undefined;
- }
- },
- // 23.3.3.5 WeakMap.prototype.set(key, value)
- set: function set(key, value){
- return weak.def(this, key, value);
- }
- };
-
- // 23.3 WeakMap Objects
- var $WeakMap = module.exports = __webpack_require__(205)('WeakMap', wrapper, methods, weak, true, true);
-
- // IE11 WeakMap frozen keys fix
- if(new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){
- InternalMap = weak.getConstructor(wrapper);
- assign(InternalMap.prototype, methods);
- meta.NEED = true;
- each(['delete', 'has', 'get', 'set'], function(key){
- var proto = $WeakMap.prototype
- , method = proto[key];
- redefine(proto, key, function(a, b){
- // store frozen objects on internal weakmap shim
- if(isObject(a) && !isExtensible(a)){
- if(!this._f)this._f = new InternalMap;
- var result = this._f[key](a, b);
- return key == 'set' ? this : result;
- // store all the rest on native weakmap
- } return method.call(this, a, b);
- });
- });
- }
-
-/***/ },
-/* 208 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var redefineAll = __webpack_require__(202)
- , getWeak = __webpack_require__(20).getWeak
- , anObject = __webpack_require__(10)
- , isObject = __webpack_require__(11)
- , anInstance = __webpack_require__(197)
- , forOf = __webpack_require__(198)
- , createArrayMethod = __webpack_require__(164)
- , $has = __webpack_require__(3)
- , arrayFind = createArrayMethod(5)
- , arrayFindIndex = createArrayMethod(6)
- , id = 0;
-
- // fallback for uncaught frozen keys
- var uncaughtFrozenStore = function(that){
- return that._l || (that._l = new UncaughtFrozenStore);
- };
- var UncaughtFrozenStore = function(){
- this.a = [];
- };
- var findUncaughtFrozen = function(store, key){
- return arrayFind(store.a, function(it){
- return it[0] === key;
- });
- };
- UncaughtFrozenStore.prototype = {
- get: function(key){
- var entry = findUncaughtFrozen(this, key);
- if(entry)return entry[1];
- },
- has: function(key){
- return !!findUncaughtFrozen(this, key);
- },
- set: function(key, value){
- var entry = findUncaughtFrozen(this, key);
- if(entry)entry[1] = value;
- else this.a.push([key, value]);
- },
- 'delete': function(key){
- var index = arrayFindIndex(this.a, function(it){
- return it[0] === key;
- });
- if(~index)this.a.splice(index, 1);
- return !!~index;
- }
- };
-
- module.exports = {
- getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
- var C = wrapper(function(that, iterable){
- anInstance(that, C, NAME, '_i');
- that._i = id++; // collection id
- that._l = undefined; // leak store for uncaught frozen objects
- if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
- });
- redefineAll(C.prototype, {
- // 23.3.3.2 WeakMap.prototype.delete(key)
- // 23.4.3.3 WeakSet.prototype.delete(value)
- 'delete': function(key){
- if(!isObject(key))return false;
- var data = getWeak(key);
- if(data === true)return uncaughtFrozenStore(this)['delete'](key);
- return data && $has(data, this._i) && delete data[this._i];
- },
- // 23.3.3.4 WeakMap.prototype.has(key)
- // 23.4.3.4 WeakSet.prototype.has(value)
- has: function has(key){
- if(!isObject(key))return false;
- var data = getWeak(key);
- if(data === true)return uncaughtFrozenStore(this).has(key);
- return data && $has(data, this._i);
- }
- });
- return C;
- },
- def: function(that, key, value){
- var data = getWeak(anObject(key), true);
- if(data === true)uncaughtFrozenStore(that).set(key, value);
- else data[that._i] = value;
- return that;
- },
- ufstore: uncaughtFrozenStore
- };
-
-/***/ },
-/* 209 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var weak = __webpack_require__(208);
-
- // 23.4 WeakSet Objects
- __webpack_require__(205)('WeakSet', function(get){
- return function WeakSet(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
- }, {
- // 23.4.3.1 WeakSet.prototype.add(value)
- add: function add(value){
- return weak.def(this, value, true);
- }
- }, weak, false, true);
-
-/***/ },
-/* 210 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
- var $export = __webpack_require__(6)
- , aFunction = __webpack_require__(19)
- , anObject = __webpack_require__(10)
- , rApply = (__webpack_require__(2).Reflect || {}).apply
- , fApply = Function.apply;
- // MS Edge argumentsList argument is optional
- $export($export.S + $export.F * !__webpack_require__(5)(function(){
- rApply(function(){});
- }), 'Reflect', {
- apply: function apply(target, thisArgument, argumentsList){
- var T = aFunction(target)
- , L = anObject(argumentsList);
- return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);
- }
- });
-
-/***/ },
-/* 211 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
- var $export = __webpack_require__(6)
- , create = __webpack_require__(44)
- , aFunction = __webpack_require__(19)
- , anObject = __webpack_require__(10)
- , isObject = __webpack_require__(11)
- , fails = __webpack_require__(5)
- , bind = __webpack_require__(75)
- , rConstruct = (__webpack_require__(2).Reflect || {}).construct;
-
- // MS Edge supports only 2 arguments and argumentsList argument is optional
- // FF Nightly sets third argument as `new.target`, but does not create `this` from it
- var NEW_TARGET_BUG = fails(function(){
- function F(){}
- return !(rConstruct(function(){}, [], F) instanceof F);
- });
- var ARGS_BUG = !fails(function(){
- rConstruct(function(){});
- });
-
- $export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
- construct: function construct(Target, args /*, newTarget*/){
- aFunction(Target);
- anObject(args);
- var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
- if(ARGS_BUG && !NEW_TARGET_BUG)return rConstruct(Target, args, newTarget);
- if(Target == newTarget){
- // w/o altered newTarget, optimization for 0-4 arguments
- switch(args.length){
- case 0: return new Target;
- case 1: return new Target(args[0]);
- case 2: return new Target(args[0], args[1]);
- case 3: return new Target(args[0], args[1], args[2]);
- case 4: return new Target(args[0], args[1], args[2], args[3]);
- }
- // w/o altered newTarget, lot of arguments case
- var $args = [null];
- $args.push.apply($args, args);
- return new (bind.apply(Target, $args));
- }
- // with altered newTarget, not support built-in constructors
- var proto = newTarget.prototype
- , instance = create(isObject(proto) ? proto : Object.prototype)
- , result = Function.apply.call(Target, instance, args);
- return isObject(result) ? result : instance;
- }
- });
-
-/***/ },
-/* 212 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
- var dP = __webpack_require__(9)
- , $export = __webpack_require__(6)
- , anObject = __webpack_require__(10)
- , toPrimitive = __webpack_require__(14);
-
- // MS Edge has broken Reflect.defineProperty - throwing instead of returning false
- $export($export.S + $export.F * __webpack_require__(5)(function(){
- Reflect.defineProperty(dP.f({}, 1, {value: 1}), 1, {value: 2});
- }), 'Reflect', {
- defineProperty: function defineProperty(target, propertyKey, attributes){
- anObject(target);
- propertyKey = toPrimitive(propertyKey, true);
- anObject(attributes);
- try {
- dP.f(target, propertyKey, attributes);
- return true;
- } catch(e){
- return false;
- }
- }
- });
-
-/***/ },
-/* 213 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.4 Reflect.deleteProperty(target, propertyKey)
- var $export = __webpack_require__(6)
- , gOPD = __webpack_require__(49).f
- , anObject = __webpack_require__(10);
-
- $export($export.S, 'Reflect', {
- deleteProperty: function deleteProperty(target, propertyKey){
- var desc = gOPD(anObject(target), propertyKey);
- return desc && !desc.configurable ? false : delete target[propertyKey];
- }
- });
-
-/***/ },
-/* 214 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 26.1.5 Reflect.enumerate(target)
- var $export = __webpack_require__(6)
- , anObject = __webpack_require__(10);
- var Enumerate = function(iterated){
- this._t = anObject(iterated); // target
- this._i = 0; // next index
- var keys = this._k = [] // keys
- , key;
- for(key in iterated)keys.push(key);
- };
- __webpack_require__(136)(Enumerate, 'Object', function(){
- var that = this
- , keys = that._k
- , key;
- do {
- if(that._i >= keys.length)return {value: undefined, done: true};
- } while(!((key = keys[that._i++]) in that._t));
- return {value: key, done: false};
- });
-
- $export($export.S, 'Reflect', {
- enumerate: function enumerate(target){
- return new Enumerate(target);
- }
- });
-
-/***/ },
-/* 215 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.6 Reflect.get(target, propertyKey [, receiver])
- var gOPD = __webpack_require__(49)
- , getPrototypeOf = __webpack_require__(57)
- , has = __webpack_require__(3)
- , $export = __webpack_require__(6)
- , isObject = __webpack_require__(11)
- , anObject = __webpack_require__(10);
-
- function get(target, propertyKey/*, receiver*/){
- var receiver = arguments.length < 3 ? target : arguments[2]
- , desc, proto;
- if(anObject(target) === receiver)return target[propertyKey];
- if(desc = gOPD.f(target, propertyKey))return has(desc, 'value')
- ? desc.value
- : desc.get !== undefined
- ? desc.get.call(receiver)
- : undefined;
- if(isObject(proto = getPrototypeOf(target)))return get(proto, propertyKey, receiver);
- }
-
- $export($export.S, 'Reflect', {get: get});
-
-/***/ },
-/* 216 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
- var gOPD = __webpack_require__(49)
- , $export = __webpack_require__(6)
- , anObject = __webpack_require__(10);
-
- $export($export.S, 'Reflect', {
- getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey){
- return gOPD.f(anObject(target), propertyKey);
- }
- });
-
-/***/ },
-/* 217 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.8 Reflect.getPrototypeOf(target)
- var $export = __webpack_require__(6)
- , getProto = __webpack_require__(57)
- , anObject = __webpack_require__(10);
-
- $export($export.S, 'Reflect', {
- getPrototypeOf: function getPrototypeOf(target){
- return getProto(anObject(target));
- }
- });
-
-/***/ },
-/* 218 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.9 Reflect.has(target, propertyKey)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Reflect', {
- has: function has(target, propertyKey){
- return propertyKey in target;
- }
- });
-
-/***/ },
-/* 219 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.10 Reflect.isExtensible(target)
- var $export = __webpack_require__(6)
- , anObject = __webpack_require__(10)
- , $isExtensible = Object.isExtensible;
-
- $export($export.S, 'Reflect', {
- isExtensible: function isExtensible(target){
- anObject(target);
- return $isExtensible ? $isExtensible(target) : true;
- }
- });
-
-/***/ },
-/* 220 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.11 Reflect.ownKeys(target)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Reflect', {ownKeys: __webpack_require__(221)});
-
-/***/ },
-/* 221 */
-/***/ function(module, exports, __webpack_require__) {
-
- // all object keys, includes non-enumerable and symbols
- var gOPN = __webpack_require__(48)
- , gOPS = __webpack_require__(41)
- , anObject = __webpack_require__(10)
- , Reflect = __webpack_require__(2).Reflect;
- module.exports = Reflect && Reflect.ownKeys || function ownKeys(it){
- var keys = gOPN.f(anObject(it))
- , getSymbols = gOPS.f;
- return getSymbols ? keys.concat(getSymbols(it)) : keys;
- };
-
-/***/ },
-/* 222 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.12 Reflect.preventExtensions(target)
- var $export = __webpack_require__(6)
- , anObject = __webpack_require__(10)
- , $preventExtensions = Object.preventExtensions;
-
- $export($export.S, 'Reflect', {
- preventExtensions: function preventExtensions(target){
- anObject(target);
- try {
- if($preventExtensions)$preventExtensions(target);
- return true;
- } catch(e){
- return false;
- }
- }
- });
-
-/***/ },
-/* 223 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
- var dP = __webpack_require__(9)
- , gOPD = __webpack_require__(49)
- , getPrototypeOf = __webpack_require__(57)
- , has = __webpack_require__(3)
- , $export = __webpack_require__(6)
- , createDesc = __webpack_require__(15)
- , anObject = __webpack_require__(10)
- , isObject = __webpack_require__(11);
-
- function set(target, propertyKey, V/*, receiver*/){
- var receiver = arguments.length < 4 ? target : arguments[3]
- , ownDesc = gOPD.f(anObject(target), propertyKey)
- , existingDescriptor, proto;
- if(!ownDesc){
- if(isObject(proto = getPrototypeOf(target))){
- return set(proto, propertyKey, V, receiver);
- }
- ownDesc = createDesc(0);
- }
- if(has(ownDesc, 'value')){
- if(ownDesc.writable === false || !isObject(receiver))return false;
- existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);
- existingDescriptor.value = V;
- dP.f(receiver, propertyKey, existingDescriptor);
- return true;
- }
- return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
- }
-
- $export($export.S, 'Reflect', {set: set});
-
-/***/ },
-/* 224 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.14 Reflect.setPrototypeOf(target, proto)
- var $export = __webpack_require__(6)
- , setProto = __webpack_require__(71);
-
- if(setProto)$export($export.S, 'Reflect', {
- setPrototypeOf: function setPrototypeOf(target, proto){
- setProto.check(target, proto);
- try {
- setProto.set(target, proto);
- return true;
- } catch(e){
- return false;
- }
- }
- });
-
-/***/ },
-/* 225 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.3.3.1 / 15.9.4.4 Date.now()
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Date', {now: function(){ return new Date().getTime(); }});
-
-/***/ },
-/* 226 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toObject = __webpack_require__(56)
- , toPrimitive = __webpack_require__(14);
-
- $export($export.P + $export.F * __webpack_require__(5)(function(){
- return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({toISOString: function(){ return 1; }}) !== 1;
- }), 'Date', {
- toJSON: function toJSON(key){
- var O = toObject(this)
- , pv = toPrimitive(O);
- return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();
- }
- });
-
-/***/ },
-/* 227 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
- var $export = __webpack_require__(6)
- , fails = __webpack_require__(5)
- , getTime = Date.prototype.getTime;
-
- var lz = function(num){
- return num > 9 ? num : '0' + num;
- };
-
- // PhantomJS / old WebKit has a broken implementations
- $export($export.P + $export.F * (fails(function(){
- return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';
- }) || !fails(function(){
- new Date(NaN).toISOString();
- })), 'Date', {
- toISOString: function toISOString(){
- if(!isFinite(getTime.call(this)))throw RangeError('Invalid time value');
- var d = this
- , y = d.getUTCFullYear()
- , m = d.getUTCMilliseconds()
- , s = y < 0 ? '-' : y > 9999 ? '+' : '';
- return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
- '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
- 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
- ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
- }
- });
-
-/***/ },
-/* 228 */
-/***/ function(module, exports, __webpack_require__) {
-
- var DateProto = Date.prototype
- , INVALID_DATE = 'Invalid Date'
- , TO_STRING = 'toString'
- , $toString = DateProto[TO_STRING]
- , getTime = DateProto.getTime;
- if(new Date(NaN) + '' != INVALID_DATE){
- __webpack_require__(16)(DateProto, TO_STRING, function toString(){
- var value = getTime.call(this);
- return value === value ? $toString.call(this) : INVALID_DATE;
- });
- }
-
-/***/ },
-/* 229 */
-/***/ function(module, exports, __webpack_require__) {
-
- var TO_PRIMITIVE = __webpack_require__(23)('toPrimitive')
- , proto = Date.prototype;
-
- if(!(TO_PRIMITIVE in proto))__webpack_require__(8)(proto, TO_PRIMITIVE, __webpack_require__(230));
-
-/***/ },
-/* 230 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var anObject = __webpack_require__(10)
- , toPrimitive = __webpack_require__(14)
- , NUMBER = 'number';
-
- module.exports = function(hint){
- if(hint !== 'string' && hint !== NUMBER && hint !== 'default')throw TypeError('Incorrect hint');
- return toPrimitive(anObject(this), hint != NUMBER);
- };
-
-/***/ },
-/* 231 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $typed = __webpack_require__(232)
- , buffer = __webpack_require__(233)
- , anObject = __webpack_require__(10)
- , toIndex = __webpack_require__(37)
- , toLength = __webpack_require__(35)
- , isObject = __webpack_require__(11)
- , ArrayBuffer = __webpack_require__(2).ArrayBuffer
- , speciesConstructor = __webpack_require__(199)
- , $ArrayBuffer = buffer.ArrayBuffer
- , $DataView = buffer.DataView
- , $isView = $typed.ABV && ArrayBuffer.isView
- , $slice = $ArrayBuffer.prototype.slice
- , VIEW = $typed.VIEW
- , ARRAY_BUFFER = 'ArrayBuffer';
-
- $export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), {ArrayBuffer: $ArrayBuffer});
-
- $export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {
- // 24.1.3.1 ArrayBuffer.isView(arg)
- isView: function isView(it){
- return $isView && $isView(it) || isObject(it) && VIEW in it;
- }
- });
-
- $export($export.P + $export.U + $export.F * __webpack_require__(5)(function(){
- return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
- }), ARRAY_BUFFER, {
- // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
- slice: function slice(start, end){
- if($slice !== undefined && end === undefined)return $slice.call(anObject(this), start); // FF fix
- var len = anObject(this).byteLength
- , first = toIndex(start, len)
- , final = toIndex(end === undefined ? len : end, len)
- , result = new (speciesConstructor(this, $ArrayBuffer))(toLength(final - first))
- , viewS = new $DataView(this)
- , viewT = new $DataView(result)
- , index = 0;
- while(first < final){
- viewT.setUint8(index++, viewS.getUint8(first++));
- } return result;
- }
- });
-
- __webpack_require__(186)(ARRAY_BUFFER);
-
-/***/ },
-/* 232 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , hide = __webpack_require__(8)
- , uid = __webpack_require__(17)
- , TYPED = uid('typed_array')
- , VIEW = uid('view')
- , ABV = !!(global.ArrayBuffer && global.DataView)
- , CONSTR = ABV
- , i = 0, l = 9, Typed;
-
- var TypedArrayConstructors = (
- 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'
- ).split(',');
-
- while(i < l){
- if(Typed = global[TypedArrayConstructors[i++]]){
- hide(Typed.prototype, TYPED, true);
- hide(Typed.prototype, VIEW, true);
- } else CONSTR = false;
- }
-
- module.exports = {
- ABV: ABV,
- CONSTR: CONSTR,
- TYPED: TYPED,
- VIEW: VIEW
- };
-
-/***/ },
-/* 233 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var global = __webpack_require__(2)
- , DESCRIPTORS = __webpack_require__(4)
- , LIBRARY = __webpack_require__(26)
- , $typed = __webpack_require__(232)
- , hide = __webpack_require__(8)
- , redefineAll = __webpack_require__(202)
- , fails = __webpack_require__(5)
- , anInstance = __webpack_require__(197)
- , toInteger = __webpack_require__(36)
- , toLength = __webpack_require__(35)
- , gOPN = __webpack_require__(48).f
- , dP = __webpack_require__(9).f
- , arrayFill = __webpack_require__(180)
- , setToStringTag = __webpack_require__(22)
- , ARRAY_BUFFER = 'ArrayBuffer'
- , DATA_VIEW = 'DataView'
- , PROTOTYPE = 'prototype'
- , WRONG_LENGTH = 'Wrong length!'
- , WRONG_INDEX = 'Wrong index!'
- , $ArrayBuffer = global[ARRAY_BUFFER]
- , $DataView = global[DATA_VIEW]
- , Math = global.Math
- , RangeError = global.RangeError
- , Infinity = global.Infinity
- , BaseBuffer = $ArrayBuffer
- , abs = Math.abs
- , pow = Math.pow
- , floor = Math.floor
- , log = Math.log
- , LN2 = Math.LN2
- , BUFFER = 'buffer'
- , BYTE_LENGTH = 'byteLength'
- , BYTE_OFFSET = 'byteOffset'
- , $BUFFER = DESCRIPTORS ? '_b' : BUFFER
- , $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH
- , $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;
-
- // IEEE754 conversions based on https://github.com/feross/ieee754
- var packIEEE754 = function(value, mLen, nBytes){
- var buffer = Array(nBytes)
- , eLen = nBytes * 8 - mLen - 1
- , eMax = (1 << eLen) - 1
- , eBias = eMax >> 1
- , rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0
- , i = 0
- , s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0
- , e, m, c;
- value = abs(value)
- if(value != value || value === Infinity){
- m = value != value ? 1 : 0;
- e = eMax;
- } else {
- e = floor(log(value) / LN2);
- if(value * (c = pow(2, -e)) < 1){
- e--;
- c *= 2;
- }
- if(e + eBias >= 1){
- value += rt / c;
- } else {
- value += rt * pow(2, 1 - eBias);
- }
- if(value * c >= 2){
- e++;
- c /= 2;
- }
- if(e + eBias >= eMax){
- m = 0;
- e = eMax;
- } else if(e + eBias >= 1){
- m = (value * c - 1) * pow(2, mLen);
- e = e + eBias;
- } else {
- m = value * pow(2, eBias - 1) * pow(2, mLen);
- e = 0;
- }
- }
- for(; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);
- e = e << mLen | m;
- eLen += mLen;
- for(; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);
- buffer[--i] |= s * 128;
- return buffer;
- };
- var unpackIEEE754 = function(buffer, mLen, nBytes){
- var eLen = nBytes * 8 - mLen - 1
- , eMax = (1 << eLen) - 1
- , eBias = eMax >> 1
- , nBits = eLen - 7
- , i = nBytes - 1
- , s = buffer[i--]
- , e = s & 127
- , m;
- s >>= 7;
- for(; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);
- m = e & (1 << -nBits) - 1;
- e >>= -nBits;
- nBits += mLen;
- for(; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);
- if(e === 0){
- e = 1 - eBias;
- } else if(e === eMax){
- return m ? NaN : s ? -Infinity : Infinity;
- } else {
- m = m + pow(2, mLen);
- e = e - eBias;
- } return (s ? -1 : 1) * m * pow(2, e - mLen);
- };
-
- var unpackI32 = function(bytes){
- return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];
- };
- var packI8 = function(it){
- return [it & 0xff];
- };
- var packI16 = function(it){
- return [it & 0xff, it >> 8 & 0xff];
- };
- var packI32 = function(it){
- return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];
- };
- var packF64 = function(it){
- return packIEEE754(it, 52, 8);
- };
- var packF32 = function(it){
- return packIEEE754(it, 23, 4);
- };
-
- var addGetter = function(C, key, internal){
- dP(C[PROTOTYPE], key, {get: function(){ return this[internal]; }});
- };
-
- var get = function(view, bytes, index, isLittleEndian){
- var numIndex = +index
- , intIndex = toInteger(numIndex);
- if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);
- var store = view[$BUFFER]._b
- , start = intIndex + view[$OFFSET]
- , pack = store.slice(start, start + bytes);
- return isLittleEndian ? pack : pack.reverse();
- };
- var set = function(view, bytes, index, conversion, value, isLittleEndian){
- var numIndex = +index
- , intIndex = toInteger(numIndex);
- if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);
- var store = view[$BUFFER]._b
- , start = intIndex + view[$OFFSET]
- , pack = conversion(+value);
- for(var i = 0; i < bytes; i++)store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];
- };
-
- var validateArrayBufferArguments = function(that, length){
- anInstance(that, $ArrayBuffer, ARRAY_BUFFER);
- var numberLength = +length
- , byteLength = toLength(numberLength);
- if(numberLength != byteLength)throw RangeError(WRONG_LENGTH);
- return byteLength;
- };
-
- if(!$typed.ABV){
- $ArrayBuffer = function ArrayBuffer(length){
- var byteLength = validateArrayBufferArguments(this, length);
- this._b = arrayFill.call(Array(byteLength), 0);
- this[$LENGTH] = byteLength;
- };
-
- $DataView = function DataView(buffer, byteOffset, byteLength){
- anInstance(this, $DataView, DATA_VIEW);
- anInstance(buffer, $ArrayBuffer, DATA_VIEW);
- var bufferLength = buffer[$LENGTH]
- , offset = toInteger(byteOffset);
- if(offset < 0 || offset > bufferLength)throw RangeError('Wrong offset!');
- byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
- if(offset + byteLength > bufferLength)throw RangeError(WRONG_LENGTH);
- this[$BUFFER] = buffer;
- this[$OFFSET] = offset;
- this[$LENGTH] = byteLength;
- };
-
- if(DESCRIPTORS){
- addGetter($ArrayBuffer, BYTE_LENGTH, '_l');
- addGetter($DataView, BUFFER, '_b');
- addGetter($DataView, BYTE_LENGTH, '_l');
- addGetter($DataView, BYTE_OFFSET, '_o');
- }
-
- redefineAll($DataView[PROTOTYPE], {
- getInt8: function getInt8(byteOffset){
- return get(this, 1, byteOffset)[0] << 24 >> 24;
- },
- getUint8: function getUint8(byteOffset){
- return get(this, 1, byteOffset)[0];
- },
- getInt16: function getInt16(byteOffset /*, littleEndian */){
- var bytes = get(this, 2, byteOffset, arguments[1]);
- return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
- },
- getUint16: function getUint16(byteOffset /*, littleEndian */){
- var bytes = get(this, 2, byteOffset, arguments[1]);
- return bytes[1] << 8 | bytes[0];
- },
- getInt32: function getInt32(byteOffset /*, littleEndian */){
- return unpackI32(get(this, 4, byteOffset, arguments[1]));
- },
- getUint32: function getUint32(byteOffset /*, littleEndian */){
- return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;
- },
- getFloat32: function getFloat32(byteOffset /*, littleEndian */){
- return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);
- },
- getFloat64: function getFloat64(byteOffset /*, littleEndian */){
- return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);
- },
- setInt8: function setInt8(byteOffset, value){
- set(this, 1, byteOffset, packI8, value);
- },
- setUint8: function setUint8(byteOffset, value){
- set(this, 1, byteOffset, packI8, value);
- },
- setInt16: function setInt16(byteOffset, value /*, littleEndian */){
- set(this, 2, byteOffset, packI16, value, arguments[2]);
- },
- setUint16: function setUint16(byteOffset, value /*, littleEndian */){
- set(this, 2, byteOffset, packI16, value, arguments[2]);
- },
- setInt32: function setInt32(byteOffset, value /*, littleEndian */){
- set(this, 4, byteOffset, packI32, value, arguments[2]);
- },
- setUint32: function setUint32(byteOffset, value /*, littleEndian */){
- set(this, 4, byteOffset, packI32, value, arguments[2]);
- },
- setFloat32: function setFloat32(byteOffset, value /*, littleEndian */){
- set(this, 4, byteOffset, packF32, value, arguments[2]);
- },
- setFloat64: function setFloat64(byteOffset, value /*, littleEndian */){
- set(this, 8, byteOffset, packF64, value, arguments[2]);
- }
- });
- } else {
- if(!fails(function(){
- new $ArrayBuffer; // eslint-disable-line no-new
- }) || !fails(function(){
- new $ArrayBuffer(.5); // eslint-disable-line no-new
- })){
- $ArrayBuffer = function ArrayBuffer(length){
- return new BaseBuffer(validateArrayBufferArguments(this, length));
- };
- var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];
- for(var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j; ){
- if(!((key = keys[j++]) in $ArrayBuffer))hide($ArrayBuffer, key, BaseBuffer[key]);
- };
- if(!LIBRARY)ArrayBufferProto.constructor = $ArrayBuffer;
- }
- // iOS Safari 7.x bug
- var view = new $DataView(new $ArrayBuffer(2))
- , $setInt8 = $DataView[PROTOTYPE].setInt8;
- view.setInt8(0, 2147483648);
- view.setInt8(1, 2147483649);
- if(view.getInt8(0) || !view.getInt8(1))redefineAll($DataView[PROTOTYPE], {
- setInt8: function setInt8(byteOffset, value){
- $setInt8.call(this, byteOffset, value << 24 >> 24);
- },
- setUint8: function setUint8(byteOffset, value){
- $setInt8.call(this, byteOffset, value << 24 >> 24);
- }
- }, true);
- }
- setToStringTag($ArrayBuffer, ARRAY_BUFFER);
- setToStringTag($DataView, DATA_VIEW);
- hide($DataView[PROTOTYPE], $typed.VIEW, true);
- exports[ARRAY_BUFFER] = $ArrayBuffer;
- exports[DATA_VIEW] = $DataView;
-
-/***/ },
-/* 234 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6);
- $export($export.G + $export.W + $export.F * !__webpack_require__(232).ABV, {
- DataView: __webpack_require__(233).DataView
- });
-
-/***/ },
-/* 235 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(236)('Int8', 1, function(init){
- return function Int8Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 236 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- if(__webpack_require__(4)){
- var LIBRARY = __webpack_require__(26)
- , global = __webpack_require__(2)
- , fails = __webpack_require__(5)
- , $export = __webpack_require__(6)
- , $typed = __webpack_require__(232)
- , $buffer = __webpack_require__(233)
- , ctx = __webpack_require__(18)
- , anInstance = __webpack_require__(197)
- , propertyDesc = __webpack_require__(15)
- , hide = __webpack_require__(8)
- , redefineAll = __webpack_require__(202)
- , toInteger = __webpack_require__(36)
- , toLength = __webpack_require__(35)
- , toIndex = __webpack_require__(37)
- , toPrimitive = __webpack_require__(14)
- , has = __webpack_require__(3)
- , same = __webpack_require__(69)
- , classof = __webpack_require__(73)
- , isObject = __webpack_require__(11)
- , toObject = __webpack_require__(56)
- , isArrayIter = __webpack_require__(154)
- , create = __webpack_require__(44)
- , getPrototypeOf = __webpack_require__(57)
- , gOPN = __webpack_require__(48).f
- , getIterFn = __webpack_require__(156)
- , uid = __webpack_require__(17)
- , wks = __webpack_require__(23)
- , createArrayMethod = __webpack_require__(164)
- , createArrayIncludes = __webpack_require__(34)
- , speciesConstructor = __webpack_require__(199)
- , ArrayIterators = __webpack_require__(183)
- , Iterators = __webpack_require__(135)
- , $iterDetect = __webpack_require__(157)
- , setSpecies = __webpack_require__(186)
- , arrayFill = __webpack_require__(180)
- , arrayCopyWithin = __webpack_require__(177)
- , $DP = __webpack_require__(9)
- , $GOPD = __webpack_require__(49)
- , dP = $DP.f
- , gOPD = $GOPD.f
- , RangeError = global.RangeError
- , TypeError = global.TypeError
- , Uint8Array = global.Uint8Array
- , ARRAY_BUFFER = 'ArrayBuffer'
- , SHARED_BUFFER = 'Shared' + ARRAY_BUFFER
- , BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'
- , PROTOTYPE = 'prototype'
- , ArrayProto = Array[PROTOTYPE]
- , $ArrayBuffer = $buffer.ArrayBuffer
- , $DataView = $buffer.DataView
- , arrayForEach = createArrayMethod(0)
- , arrayFilter = createArrayMethod(2)
- , arraySome = createArrayMethod(3)
- , arrayEvery = createArrayMethod(4)
- , arrayFind = createArrayMethod(5)
- , arrayFindIndex = createArrayMethod(6)
- , arrayIncludes = createArrayIncludes(true)
- , arrayIndexOf = createArrayIncludes(false)
- , arrayValues = ArrayIterators.values
- , arrayKeys = ArrayIterators.keys
- , arrayEntries = ArrayIterators.entries
- , arrayLastIndexOf = ArrayProto.lastIndexOf
- , arrayReduce = ArrayProto.reduce
- , arrayReduceRight = ArrayProto.reduceRight
- , arrayJoin = ArrayProto.join
- , arraySort = ArrayProto.sort
- , arraySlice = ArrayProto.slice
- , arrayToString = ArrayProto.toString
- , arrayToLocaleString = ArrayProto.toLocaleString
- , ITERATOR = wks('iterator')
- , TAG = wks('toStringTag')
- , TYPED_CONSTRUCTOR = uid('typed_constructor')
- , DEF_CONSTRUCTOR = uid('def_constructor')
- , ALL_CONSTRUCTORS = $typed.CONSTR
- , TYPED_ARRAY = $typed.TYPED
- , VIEW = $typed.VIEW
- , WRONG_LENGTH = 'Wrong length!';
-
- var $map = createArrayMethod(1, function(O, length){
- return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);
- });
-
- var LITTLE_ENDIAN = fails(function(){
- return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;
- });
-
- var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function(){
- new Uint8Array(1).set({});
- });
-
- var strictToLength = function(it, SAME){
- if(it === undefined)throw TypeError(WRONG_LENGTH);
- var number = +it
- , length = toLength(it);
- if(SAME && !same(number, length))throw RangeError(WRONG_LENGTH);
- return length;
- };
-
- var toOffset = function(it, BYTES){
- var offset = toInteger(it);
- if(offset < 0 || offset % BYTES)throw RangeError('Wrong offset!');
- return offset;
- };
-
- var validate = function(it){
- if(isObject(it) && TYPED_ARRAY in it)return it;
- throw TypeError(it + ' is not a typed array!');
- };
-
- var allocate = function(C, length){
- if(!(isObject(C) && TYPED_CONSTRUCTOR in C)){
- throw TypeError('It is not a typed array constructor!');
- } return new C(length);
- };
-
- var speciesFromList = function(O, list){
- return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);
- };
-
- var fromList = function(C, list){
- var index = 0
- , length = list.length
- , result = allocate(C, length);
- while(length > index)result[index] = list[index++];
- return result;
- };
-
- var addGetter = function(it, key, internal){
- dP(it, key, {get: function(){ return this._d[internal]; }});
- };
-
- var $from = function from(source /*, mapfn, thisArg */){
- var O = toObject(source)
- , aLen = arguments.length
- , mapfn = aLen > 1 ? arguments[1] : undefined
- , mapping = mapfn !== undefined
- , iterFn = getIterFn(O)
- , i, length, values, result, step, iterator;
- if(iterFn != undefined && !isArrayIter(iterFn)){
- for(iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++){
- values.push(step.value);
- } O = values;
- }
- if(mapping && aLen > 2)mapfn = ctx(mapfn, arguments[2], 2);
- for(i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++){
- result[i] = mapping ? mapfn(O[i], i) : O[i];
- }
- return result;
- };
-
- var $of = function of(/*...items*/){
- var index = 0
- , length = arguments.length
- , result = allocate(this, length);
- while(length > index)result[index] = arguments[index++];
- return result;
- };
-
- // iOS Safari 6.x fails here
- var TO_LOCALE_BUG = !!Uint8Array && fails(function(){ arrayToLocaleString.call(new Uint8Array(1)); });
-
- var $toLocaleString = function toLocaleString(){
- return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);
- };
-
- var proto = {
- copyWithin: function copyWithin(target, start /*, end */){
- return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
- },
- every: function every(callbackfn /*, thisArg */){
- return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- fill: function fill(value /*, start, end */){ // eslint-disable-line no-unused-vars
- return arrayFill.apply(validate(this), arguments);
- },
- filter: function filter(callbackfn /*, thisArg */){
- return speciesFromList(this, arrayFilter(validate(this), callbackfn,
- arguments.length > 1 ? arguments[1] : undefined));
- },
- find: function find(predicate /*, thisArg */){
- return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
- },
- findIndex: function findIndex(predicate /*, thisArg */){
- return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
- },
- forEach: function forEach(callbackfn /*, thisArg */){
- arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- indexOf: function indexOf(searchElement /*, fromIndex */){
- return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
- },
- includes: function includes(searchElement /*, fromIndex */){
- return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
- },
- join: function join(separator){ // eslint-disable-line no-unused-vars
- return arrayJoin.apply(validate(this), arguments);
- },
- lastIndexOf: function lastIndexOf(searchElement /*, fromIndex */){ // eslint-disable-line no-unused-vars
- return arrayLastIndexOf.apply(validate(this), arguments);
- },
- map: function map(mapfn /*, thisArg */){
- return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- reduce: function reduce(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
- return arrayReduce.apply(validate(this), arguments);
- },
- reduceRight: function reduceRight(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
- return arrayReduceRight.apply(validate(this), arguments);
- },
- reverse: function reverse(){
- var that = this
- , length = validate(that).length
- , middle = Math.floor(length / 2)
- , index = 0
- , value;
- while(index < middle){
- value = that[index];
- that[index++] = that[--length];
- that[length] = value;
- } return that;
- },
- some: function some(callbackfn /*, thisArg */){
- return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- sort: function sort(comparefn){
- return arraySort.call(validate(this), comparefn);
- },
- subarray: function subarray(begin, end){
- var O = validate(this)
- , length = O.length
- , $begin = toIndex(begin, length);
- return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(
- O.buffer,
- O.byteOffset + $begin * O.BYTES_PER_ELEMENT,
- toLength((end === undefined ? length : toIndex(end, length)) - $begin)
- );
- }
- };
-
- var $slice = function slice(start, end){
- return speciesFromList(this, arraySlice.call(validate(this), start, end));
- };
-
- var $set = function set(arrayLike /*, offset */){
- validate(this);
- var offset = toOffset(arguments[1], 1)
- , length = this.length
- , src = toObject(arrayLike)
- , len = toLength(src.length)
- , index = 0;
- if(len + offset > length)throw RangeError(WRONG_LENGTH);
- while(index < len)this[offset + index] = src[index++];
- };
-
- var $iterators = {
- entries: function entries(){
- return arrayEntries.call(validate(this));
- },
- keys: function keys(){
- return arrayKeys.call(validate(this));
- },
- values: function values(){
- return arrayValues.call(validate(this));
- }
- };
-
- var isTAIndex = function(target, key){
- return isObject(target)
- && target[TYPED_ARRAY]
- && typeof key != 'symbol'
- && key in target
- && String(+key) == String(key);
- };
- var $getDesc = function getOwnPropertyDescriptor(target, key){
- return isTAIndex(target, key = toPrimitive(key, true))
- ? propertyDesc(2, target[key])
- : gOPD(target, key);
- };
- var $setDesc = function defineProperty(target, key, desc){
- if(isTAIndex(target, key = toPrimitive(key, true))
- && isObject(desc)
- && has(desc, 'value')
- && !has(desc, 'get')
- && !has(desc, 'set')
- // TODO: add validation descriptor w/o calling accessors
- && !desc.configurable
- && (!has(desc, 'writable') || desc.writable)
- && (!has(desc, 'enumerable') || desc.enumerable)
- ){
- target[key] = desc.value;
- return target;
- } else return dP(target, key, desc);
- };
-
- if(!ALL_CONSTRUCTORS){
- $GOPD.f = $getDesc;
- $DP.f = $setDesc;
- }
-
- $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {
- getOwnPropertyDescriptor: $getDesc,
- defineProperty: $setDesc
- });
-
- if(fails(function(){ arrayToString.call({}); })){
- arrayToString = arrayToLocaleString = function toString(){
- return arrayJoin.call(this);
- }
- }
-
- var $TypedArrayPrototype$ = redefineAll({}, proto);
- redefineAll($TypedArrayPrototype$, $iterators);
- hide($TypedArrayPrototype$, ITERATOR, $iterators.values);
- redefineAll($TypedArrayPrototype$, {
- slice: $slice,
- set: $set,
- constructor: function(){ /* noop */ },
- toString: arrayToString,
- toLocaleString: $toLocaleString
- });
- addGetter($TypedArrayPrototype$, 'buffer', 'b');
- addGetter($TypedArrayPrototype$, 'byteOffset', 'o');
- addGetter($TypedArrayPrototype$, 'byteLength', 'l');
- addGetter($TypedArrayPrototype$, 'length', 'e');
- dP($TypedArrayPrototype$, TAG, {
- get: function(){ return this[TYPED_ARRAY]; }
- });
-
- module.exports = function(KEY, BYTES, wrapper, CLAMPED){
- CLAMPED = !!CLAMPED;
- var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'
- , ISNT_UINT8 = NAME != 'Uint8Array'
- , GETTER = 'get' + KEY
- , SETTER = 'set' + KEY
- , TypedArray = global[NAME]
- , Base = TypedArray || {}
- , TAC = TypedArray && getPrototypeOf(TypedArray)
- , FORCED = !TypedArray || !$typed.ABV
- , O = {}
- , TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];
- var getter = function(that, index){
- var data = that._d;
- return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);
- };
- var setter = function(that, index, value){
- var data = that._d;
- if(CLAMPED)value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;
- data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);
- };
- var addElement = function(that, index){
- dP(that, index, {
- get: function(){
- return getter(this, index);
- },
- set: function(value){
- return setter(this, index, value);
- },
- enumerable: true
- });
- };
- if(FORCED){
- TypedArray = wrapper(function(that, data, $offset, $length){
- anInstance(that, TypedArray, NAME, '_d');
- var index = 0
- , offset = 0
- , buffer, byteLength, length, klass;
- if(!isObject(data)){
- length = strictToLength(data, true)
- byteLength = length * BYTES;
- buffer = new $ArrayBuffer(byteLength);
- } else if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){
- buffer = data;
- offset = toOffset($offset, BYTES);
- var $len = data.byteLength;
- if($length === undefined){
- if($len % BYTES)throw RangeError(WRONG_LENGTH);
- byteLength = $len - offset;
- if(byteLength < 0)throw RangeError(WRONG_LENGTH);
- } else {
- byteLength = toLength($length) * BYTES;
- if(byteLength + offset > $len)throw RangeError(WRONG_LENGTH);
- }
- length = byteLength / BYTES;
- } else if(TYPED_ARRAY in data){
- return fromList(TypedArray, data);
- } else {
- return $from.call(TypedArray, data);
- }
- hide(that, '_d', {
- b: buffer,
- o: offset,
- l: byteLength,
- e: length,
- v: new $DataView(buffer)
- });
- while(index < length)addElement(that, index++);
- });
- TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);
- hide(TypedArrayPrototype, 'constructor', TypedArray);
- } else if(!$iterDetect(function(iter){
- // V8 works with iterators, but fails in many other cases
- // https://code.google.com/p/v8/issues/detail?id=4552
- new TypedArray(null); // eslint-disable-line no-new
- new TypedArray(iter); // eslint-disable-line no-new
- }, true)){
- TypedArray = wrapper(function(that, data, $offset, $length){
- anInstance(that, TypedArray, NAME);
- var klass;
- // `ws` module bug, temporarily remove validation length for Uint8Array
- // https://github.com/websockets/ws/pull/645
- if(!isObject(data))return new Base(strictToLength(data, ISNT_UINT8));
- if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){
- return $length !== undefined
- ? new Base(data, toOffset($offset, BYTES), $length)
- : $offset !== undefined
- ? new Base(data, toOffset($offset, BYTES))
- : new Base(data);
- }
- if(TYPED_ARRAY in data)return fromList(TypedArray, data);
- return $from.call(TypedArray, data);
- });
- arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function(key){
- if(!(key in TypedArray))hide(TypedArray, key, Base[key]);
- });
- TypedArray[PROTOTYPE] = TypedArrayPrototype;
- if(!LIBRARY)TypedArrayPrototype.constructor = TypedArray;
- }
- var $nativeIterator = TypedArrayPrototype[ITERATOR]
- , CORRECT_ITER_NAME = !!$nativeIterator && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined)
- , $iterator = $iterators.values;
- hide(TypedArray, TYPED_CONSTRUCTOR, true);
- hide(TypedArrayPrototype, TYPED_ARRAY, NAME);
- hide(TypedArrayPrototype, VIEW, true);
- hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);
-
- if(CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)){
- dP(TypedArrayPrototype, TAG, {
- get: function(){ return NAME; }
- });
- }
-
- O[NAME] = TypedArray;
-
- $export($export.G + $export.W + $export.F * (TypedArray != Base), O);
-
- $export($export.S, NAME, {
- BYTES_PER_ELEMENT: BYTES,
- from: $from,
- of: $of
- });
-
- if(!(BYTES_PER_ELEMENT in TypedArrayPrototype))hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);
-
- $export($export.P, NAME, proto);
-
- setSpecies(NAME);
-
- $export($export.P + $export.F * FORCED_SET, NAME, {set: $set});
-
- $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);
-
- $export($export.P + $export.F * (TypedArrayPrototype.toString != arrayToString), NAME, {toString: arrayToString});
-
- $export($export.P + $export.F * fails(function(){
- new TypedArray(1).slice();
- }), NAME, {slice: $slice});
-
- $export($export.P + $export.F * (fails(function(){
- return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString()
- }) || !fails(function(){
- TypedArrayPrototype.toLocaleString.call([1, 2]);
- })), NAME, {toLocaleString: $toLocaleString});
-
- Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;
- if(!LIBRARY && !CORRECT_ITER_NAME)hide(TypedArrayPrototype, ITERATOR, $iterator);
- };
- } else module.exports = function(){ /* empty */ };
-
-/***/ },
-/* 237 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(236)('Uint8', 1, function(init){
- return function Uint8Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 238 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(236)('Uint8', 1, function(init){
- return function Uint8ClampedArray(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- }, true);
-
-/***/ },
-/* 239 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(236)('Int16', 2, function(init){
- return function Int16Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 240 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(236)('Uint16', 2, function(init){
- return function Uint16Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 241 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(236)('Int32', 4, function(init){
- return function Int32Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 242 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(236)('Uint32', 4, function(init){
- return function Uint32Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 243 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(236)('Float32', 4, function(init){
- return function Float32Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 244 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(236)('Float64', 8, function(init){
- return function Float64Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 245 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/tc39/Array.prototype.includes
- var $export = __webpack_require__(6)
- , $includes = __webpack_require__(34)(true);
-
- $export($export.P, 'Array', {
- includes: function includes(el /*, fromIndex = 0 */){
- return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
- }
- });
-
- __webpack_require__(178)('includes');
-
-/***/ },
-/* 246 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/mathiasbynens/String.prototype.at
- var $export = __webpack_require__(6)
- , $at = __webpack_require__(125)(true);
-
- $export($export.P, 'String', {
- at: function at(pos){
- return $at(this, pos);
- }
- });
-
-/***/ },
-/* 247 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/tc39/proposal-string-pad-start-end
- var $export = __webpack_require__(6)
- , $pad = __webpack_require__(248);
-
- $export($export.P, 'String', {
- padStart: function padStart(maxLength /*, fillString = ' ' */){
- return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
- }
- });
-
-/***/ },
-/* 248 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/tc39/proposal-string-pad-start-end
- var toLength = __webpack_require__(35)
- , repeat = __webpack_require__(85)
- , defined = __webpack_require__(33);
-
- module.exports = function(that, maxLength, fillString, left){
- var S = String(defined(that))
- , stringLength = S.length
- , fillStr = fillString === undefined ? ' ' : String(fillString)
- , intMaxLength = toLength(maxLength);
- if(intMaxLength <= stringLength || fillStr == '')return S;
- var fillLen = intMaxLength - stringLength
- , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
- if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);
- return left ? stringFiller + S : S + stringFiller;
- };
-
-
-/***/ },
-/* 249 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/tc39/proposal-string-pad-start-end
- var $export = __webpack_require__(6)
- , $pad = __webpack_require__(248);
-
- $export($export.P, 'String', {
- padEnd: function padEnd(maxLength /*, fillString = ' ' */){
- return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
- }
- });
-
-/***/ },
-/* 250 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/sebmarkbage/ecmascript-string-left-right-trim
- __webpack_require__(81)('trimLeft', function($trim){
- return function trimLeft(){
- return $trim(this, 1);
- };
- }, 'trimStart');
-
-/***/ },
-/* 251 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/sebmarkbage/ecmascript-string-left-right-trim
- __webpack_require__(81)('trimRight', function($trim){
- return function trimRight(){
- return $trim(this, 2);
- };
- }, 'trimEnd');
-
-/***/ },
-/* 252 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://tc39.github.io/String.prototype.matchAll/
- var $export = __webpack_require__(6)
- , defined = __webpack_require__(33)
- , toLength = __webpack_require__(35)
- , isRegExp = __webpack_require__(128)
- , getFlags = __webpack_require__(188)
- , RegExpProto = RegExp.prototype;
-
- var $RegExpStringIterator = function(regexp, string){
- this._r = regexp;
- this._s = string;
- };
-
- __webpack_require__(136)($RegExpStringIterator, 'RegExp String', function next(){
- var match = this._r.exec(this._s);
- return {value: match, done: match === null};
- });
-
- $export($export.P, 'String', {
- matchAll: function matchAll(regexp){
- defined(this);
- if(!isRegExp(regexp))throw TypeError(regexp + ' is not a regexp!');
- var S = String(this)
- , flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp)
- , rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);
- rx.lastIndex = toLength(regexp.lastIndex);
- return new $RegExpStringIterator(rx, S);
- }
- });
-
-/***/ },
-/* 253 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(25)('asyncIterator');
-
-/***/ },
-/* 254 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(25)('observable');
-
-/***/ },
-/* 255 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/tc39/proposal-object-getownpropertydescriptors
- var $export = __webpack_require__(6)
- , ownKeys = __webpack_require__(221)
- , toIObject = __webpack_require__(30)
- , gOPD = __webpack_require__(49)
- , createProperty = __webpack_require__(155);
-
- $export($export.S, 'Object', {
- getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){
- var O = toIObject(object)
- , getDesc = gOPD.f
- , keys = ownKeys(O)
- , result = {}
- , i = 0
- , key;
- while(keys.length > i)createProperty(result, key = keys[i++], getDesc(O, key));
- return result;
- }
- });
-
-/***/ },
-/* 256 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/tc39/proposal-object-values-entries
- var $export = __webpack_require__(6)
- , $values = __webpack_require__(257)(false);
-
- $export($export.S, 'Object', {
- values: function values(it){
- return $values(it);
- }
- });
-
-/***/ },
-/* 257 */
-/***/ function(module, exports, __webpack_require__) {
-
- var getKeys = __webpack_require__(28)
- , toIObject = __webpack_require__(30)
- , isEnum = __webpack_require__(42).f;
- module.exports = function(isEntries){
- return function(it){
- var O = toIObject(it)
- , keys = getKeys(O)
- , length = keys.length
- , i = 0
- , result = []
- , key;
- while(length > i)if(isEnum.call(O, key = keys[i++])){
- result.push(isEntries ? [key, O[key]] : O[key]);
- } return result;
- };
- };
-
-/***/ },
-/* 258 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/tc39/proposal-object-values-entries
- var $export = __webpack_require__(6)
- , $entries = __webpack_require__(257)(true);
-
- $export($export.S, 'Object', {
- entries: function entries(it){
- return $entries(it);
- }
- });
-
-/***/ },
-/* 259 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toObject = __webpack_require__(56)
- , aFunction = __webpack_require__(19)
- , $defineProperty = __webpack_require__(9);
-
- // B.2.2.2 Object.prototype.__defineGetter__(P, getter)
- __webpack_require__(4) && $export($export.P + __webpack_require__(260), 'Object', {
- __defineGetter__: function __defineGetter__(P, getter){
- $defineProperty.f(toObject(this), P, {get: aFunction(getter), enumerable: true, configurable: true});
- }
- });
-
-/***/ },
-/* 260 */
-/***/ function(module, exports, __webpack_require__) {
-
- // Forced replacement prototype accessors methods
- module.exports = __webpack_require__(26)|| !__webpack_require__(5)(function(){
- var K = Math.random();
- // In FF throws only define methods
- __defineSetter__.call(null, K, function(){ /* empty */});
- delete __webpack_require__(2)[K];
- });
-
-/***/ },
-/* 261 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toObject = __webpack_require__(56)
- , aFunction = __webpack_require__(19)
- , $defineProperty = __webpack_require__(9);
-
- // B.2.2.3 Object.prototype.__defineSetter__(P, setter)
- __webpack_require__(4) && $export($export.P + __webpack_require__(260), 'Object', {
- __defineSetter__: function __defineSetter__(P, setter){
- $defineProperty.f(toObject(this), P, {set: aFunction(setter), enumerable: true, configurable: true});
- }
- });
-
-/***/ },
-/* 262 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toObject = __webpack_require__(56)
- , toPrimitive = __webpack_require__(14)
- , getPrototypeOf = __webpack_require__(57)
- , getOwnPropertyDescriptor = __webpack_require__(49).f;
-
- // B.2.2.4 Object.prototype.__lookupGetter__(P)
- __webpack_require__(4) && $export($export.P + __webpack_require__(260), 'Object', {
- __lookupGetter__: function __lookupGetter__(P){
- var O = toObject(this)
- , K = toPrimitive(P, true)
- , D;
- do {
- if(D = getOwnPropertyDescriptor(O, K))return D.get;
- } while(O = getPrototypeOf(O));
- }
- });
-
-/***/ },
-/* 263 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toObject = __webpack_require__(56)
- , toPrimitive = __webpack_require__(14)
- , getPrototypeOf = __webpack_require__(57)
- , getOwnPropertyDescriptor = __webpack_require__(49).f;
-
- // B.2.2.5 Object.prototype.__lookupSetter__(P)
- __webpack_require__(4) && $export($export.P + __webpack_require__(260), 'Object', {
- __lookupSetter__: function __lookupSetter__(P){
- var O = toObject(this)
- , K = toPrimitive(P, true)
- , D;
- do {
- if(D = getOwnPropertyDescriptor(O, K))return D.set;
- } while(O = getPrototypeOf(O));
- }
- });
-
-/***/ },
-/* 264 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var $export = __webpack_require__(6);
-
- $export($export.P + $export.R, 'Map', {toJSON: __webpack_require__(265)('Map')});
-
-/***/ },
-/* 265 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var classof = __webpack_require__(73)
- , from = __webpack_require__(266);
- module.exports = function(NAME){
- return function toJSON(){
- if(classof(this) != NAME)throw TypeError(NAME + "#toJSON isn't generic");
- return from(this);
- };
- };
-
-/***/ },
-/* 266 */
-/***/ function(module, exports, __webpack_require__) {
-
- var forOf = __webpack_require__(198);
-
- module.exports = function(iter, ITERATOR){
- var result = [];
- forOf(iter, false, result.push, result, ITERATOR);
- return result;
- };
-
-
-/***/ },
-/* 267 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var $export = __webpack_require__(6);
-
- $export($export.P + $export.R, 'Set', {toJSON: __webpack_require__(265)('Set')});
-
-/***/ },
-/* 268 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/ljharb/proposal-global
- var $export = __webpack_require__(6);
-
- $export($export.S, 'System', {global: __webpack_require__(2)});
-
-/***/ },
-/* 269 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/ljharb/proposal-is-error
- var $export = __webpack_require__(6)
- , cof = __webpack_require__(32);
-
- $export($export.S, 'Error', {
- isError: function isError(it){
- return cof(it) === 'Error';
- }
- });
-
-/***/ },
-/* 270 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- iaddh: function iaddh(x0, x1, y0, y1){
- var $x0 = x0 >>> 0
- , $x1 = x1 >>> 0
- , $y0 = y0 >>> 0;
- return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;
- }
- });
-
-/***/ },
-/* 271 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- isubh: function isubh(x0, x1, y0, y1){
- var $x0 = x0 >>> 0
- , $x1 = x1 >>> 0
- , $y0 = y0 >>> 0;
- return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;
- }
- });
-
-/***/ },
-/* 272 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- imulh: function imulh(u, v){
- var UINT16 = 0xffff
- , $u = +u
- , $v = +v
- , u0 = $u & UINT16
- , v0 = $v & UINT16
- , u1 = $u >> 16
- , v1 = $v >> 16
- , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
- return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);
- }
- });
-
-/***/ },
-/* 273 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- umulh: function umulh(u, v){
- var UINT16 = 0xffff
- , $u = +u
- , $v = +v
- , u0 = $u & UINT16
- , v0 = $v & UINT16
- , u1 = $u >>> 16
- , v1 = $v >>> 16
- , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
- return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);
- }
- });
-
-/***/ },
-/* 274 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(275)
- , anObject = __webpack_require__(10)
- , toMetaKey = metadata.key
- , ordinaryDefineOwnMetadata = metadata.set;
-
- metadata.exp({defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey){
- ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));
- }});
-
-/***/ },
-/* 275 */
-/***/ function(module, exports, __webpack_require__) {
-
- var Map = __webpack_require__(203)
- , $export = __webpack_require__(6)
- , shared = __webpack_require__(21)('metadata')
- , store = shared.store || (shared.store = new (__webpack_require__(207)));
-
- var getOrCreateMetadataMap = function(target, targetKey, create){
- var targetMetadata = store.get(target);
- if(!targetMetadata){
- if(!create)return undefined;
- store.set(target, targetMetadata = new Map);
- }
- var keyMetadata = targetMetadata.get(targetKey);
- if(!keyMetadata){
- if(!create)return undefined;
- targetMetadata.set(targetKey, keyMetadata = new Map);
- } return keyMetadata;
- };
- var ordinaryHasOwnMetadata = function(MetadataKey, O, P){
- var metadataMap = getOrCreateMetadataMap(O, P, false);
- return metadataMap === undefined ? false : metadataMap.has(MetadataKey);
- };
- var ordinaryGetOwnMetadata = function(MetadataKey, O, P){
- var metadataMap = getOrCreateMetadataMap(O, P, false);
- return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);
- };
- var ordinaryDefineOwnMetadata = function(MetadataKey, MetadataValue, O, P){
- getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);
- };
- var ordinaryOwnMetadataKeys = function(target, targetKey){
- var metadataMap = getOrCreateMetadataMap(target, targetKey, false)
- , keys = [];
- if(metadataMap)metadataMap.forEach(function(_, key){ keys.push(key); });
- return keys;
- };
- var toMetaKey = function(it){
- return it === undefined || typeof it == 'symbol' ? it : String(it);
- };
- var exp = function(O){
- $export($export.S, 'Reflect', O);
- };
-
- module.exports = {
- store: store,
- map: getOrCreateMetadataMap,
- has: ordinaryHasOwnMetadata,
- get: ordinaryGetOwnMetadata,
- set: ordinaryDefineOwnMetadata,
- keys: ordinaryOwnMetadataKeys,
- key: toMetaKey,
- exp: exp
- };
-
-/***/ },
-/* 276 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(275)
- , anObject = __webpack_require__(10)
- , toMetaKey = metadata.key
- , getOrCreateMetadataMap = metadata.map
- , store = metadata.store;
-
- metadata.exp({deleteMetadata: function deleteMetadata(metadataKey, target /*, targetKey */){
- var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2])
- , metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);
- if(metadataMap === undefined || !metadataMap['delete'](metadataKey))return false;
- if(metadataMap.size)return true;
- var targetMetadata = store.get(target);
- targetMetadata['delete'](targetKey);
- return !!targetMetadata.size || store['delete'](target);
- }});
-
-/***/ },
-/* 277 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(275)
- , anObject = __webpack_require__(10)
- , getPrototypeOf = __webpack_require__(57)
- , ordinaryHasOwnMetadata = metadata.has
- , ordinaryGetOwnMetadata = metadata.get
- , toMetaKey = metadata.key;
-
- var ordinaryGetMetadata = function(MetadataKey, O, P){
- var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
- if(hasOwn)return ordinaryGetOwnMetadata(MetadataKey, O, P);
- var parent = getPrototypeOf(O);
- return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;
- };
-
- metadata.exp({getMetadata: function getMetadata(metadataKey, target /*, targetKey */){
- return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
- }});
-
-/***/ },
-/* 278 */
-/***/ function(module, exports, __webpack_require__) {
-
- var Set = __webpack_require__(206)
- , from = __webpack_require__(266)
- , metadata = __webpack_require__(275)
- , anObject = __webpack_require__(10)
- , getPrototypeOf = __webpack_require__(57)
- , ordinaryOwnMetadataKeys = metadata.keys
- , toMetaKey = metadata.key;
-
- var ordinaryMetadataKeys = function(O, P){
- var oKeys = ordinaryOwnMetadataKeys(O, P)
- , parent = getPrototypeOf(O);
- if(parent === null)return oKeys;
- var pKeys = ordinaryMetadataKeys(parent, P);
- return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;
- };
-
- metadata.exp({getMetadataKeys: function getMetadataKeys(target /*, targetKey */){
- return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
- }});
-
-/***/ },
-/* 279 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(275)
- , anObject = __webpack_require__(10)
- , ordinaryGetOwnMetadata = metadata.get
- , toMetaKey = metadata.key;
-
- metadata.exp({getOwnMetadata: function getOwnMetadata(metadataKey, target /*, targetKey */){
- return ordinaryGetOwnMetadata(metadataKey, anObject(target)
- , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
- }});
-
-/***/ },
-/* 280 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(275)
- , anObject = __webpack_require__(10)
- , ordinaryOwnMetadataKeys = metadata.keys
- , toMetaKey = metadata.key;
-
- metadata.exp({getOwnMetadataKeys: function getOwnMetadataKeys(target /*, targetKey */){
- return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
- }});
-
-/***/ },
-/* 281 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(275)
- , anObject = __webpack_require__(10)
- , getPrototypeOf = __webpack_require__(57)
- , ordinaryHasOwnMetadata = metadata.has
- , toMetaKey = metadata.key;
-
- var ordinaryHasMetadata = function(MetadataKey, O, P){
- var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
- if(hasOwn)return true;
- var parent = getPrototypeOf(O);
- return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;
- };
-
- metadata.exp({hasMetadata: function hasMetadata(metadataKey, target /*, targetKey */){
- return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
- }});
-
-/***/ },
-/* 282 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(275)
- , anObject = __webpack_require__(10)
- , ordinaryHasOwnMetadata = metadata.has
- , toMetaKey = metadata.key;
-
- metadata.exp({hasOwnMetadata: function hasOwnMetadata(metadataKey, target /*, targetKey */){
- return ordinaryHasOwnMetadata(metadataKey, anObject(target)
- , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
- }});
-
-/***/ },
-/* 283 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(275)
- , anObject = __webpack_require__(10)
- , aFunction = __webpack_require__(19)
- , toMetaKey = metadata.key
- , ordinaryDefineOwnMetadata = metadata.set;
-
- metadata.exp({metadata: function metadata(metadataKey, metadataValue){
- return function decorator(target, targetKey){
- ordinaryDefineOwnMetadata(
- metadataKey, metadataValue,
- (targetKey !== undefined ? anObject : aFunction)(target),
- toMetaKey(targetKey)
- );
- };
- }});
-
-/***/ },
-/* 284 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask
- var $export = __webpack_require__(6)
- , microtask = __webpack_require__(201)()
- , process = __webpack_require__(2).process
- , isNode = __webpack_require__(32)(process) == 'process';
-
- $export($export.G, {
- asap: function asap(fn){
- var domain = isNode && process.domain;
- microtask(domain ? domain.bind(fn) : fn);
- }
- });
-
-/***/ },
-/* 285 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/zenparsing/es-observable
- var $export = __webpack_require__(6)
- , global = __webpack_require__(2)
- , core = __webpack_require__(7)
- , microtask = __webpack_require__(201)()
- , OBSERVABLE = __webpack_require__(23)('observable')
- , aFunction = __webpack_require__(19)
- , anObject = __webpack_require__(10)
- , anInstance = __webpack_require__(197)
- , redefineAll = __webpack_require__(202)
- , hide = __webpack_require__(8)
- , forOf = __webpack_require__(198)
- , RETURN = forOf.RETURN;
-
- var getMethod = function(fn){
- return fn == null ? undefined : aFunction(fn);
- };
-
- var cleanupSubscription = function(subscription){
- var cleanup = subscription._c;
- if(cleanup){
- subscription._c = undefined;
- cleanup();
- }
- };
-
- var subscriptionClosed = function(subscription){
- return subscription._o === undefined;
- };
-
- var closeSubscription = function(subscription){
- if(!subscriptionClosed(subscription)){
- subscription._o = undefined;
- cleanupSubscription(subscription);
- }
- };
-
- var Subscription = function(observer, subscriber){
- anObject(observer);
- this._c = undefined;
- this._o = observer;
- observer = new SubscriptionObserver(this);
- try {
- var cleanup = subscriber(observer)
- , subscription = cleanup;
- if(cleanup != null){
- if(typeof cleanup.unsubscribe === 'function')cleanup = function(){ subscription.unsubscribe(); };
- else aFunction(cleanup);
- this._c = cleanup;
- }
- } catch(e){
- observer.error(e);
- return;
- } if(subscriptionClosed(this))cleanupSubscription(this);
- };
-
- Subscription.prototype = redefineAll({}, {
- unsubscribe: function unsubscribe(){ closeSubscription(this); }
- });
-
- var SubscriptionObserver = function(subscription){
- this._s = subscription;
- };
-
- SubscriptionObserver.prototype = redefineAll({}, {
- next: function next(value){
- var subscription = this._s;
- if(!subscriptionClosed(subscription)){
- var observer = subscription._o;
- try {
- var m = getMethod(observer.next);
- if(m)return m.call(observer, value);
- } catch(e){
- try {
- closeSubscription(subscription);
- } finally {
- throw e;
- }
- }
- }
- },
- error: function error(value){
- var subscription = this._s;
- if(subscriptionClosed(subscription))throw value;
- var observer = subscription._o;
- subscription._o = undefined;
- try {
- var m = getMethod(observer.error);
- if(!m)throw value;
- value = m.call(observer, value);
- } catch(e){
- try {
- cleanupSubscription(subscription);
- } finally {
- throw e;
- }
- } cleanupSubscription(subscription);
- return value;
- },
- complete: function complete(value){
- var subscription = this._s;
- if(!subscriptionClosed(subscription)){
- var observer = subscription._o;
- subscription._o = undefined;
- try {
- var m = getMethod(observer.complete);
- value = m ? m.call(observer, value) : undefined;
- } catch(e){
- try {
- cleanupSubscription(subscription);
- } finally {
- throw e;
- }
- } cleanupSubscription(subscription);
- return value;
- }
- }
- });
-
- var $Observable = function Observable(subscriber){
- anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);
- };
-
- redefineAll($Observable.prototype, {
- subscribe: function subscribe(observer){
- return new Subscription(observer, this._f);
- },
- forEach: function forEach(fn){
- var that = this;
- return new (core.Promise || global.Promise)(function(resolve, reject){
- aFunction(fn);
- var subscription = that.subscribe({
- next : function(value){
- try {
- return fn(value);
- } catch(e){
- reject(e);
- subscription.unsubscribe();
- }
- },
- error: reject,
- complete: resolve
- });
- });
- }
- });
-
- redefineAll($Observable, {
- from: function from(x){
- var C = typeof this === 'function' ? this : $Observable;
- var method = getMethod(anObject(x)[OBSERVABLE]);
- if(method){
- var observable = anObject(method.call(x));
- return observable.constructor === C ? observable : new C(function(observer){
- return observable.subscribe(observer);
- });
- }
- return new C(function(observer){
- var done = false;
- microtask(function(){
- if(!done){
- try {
- if(forOf(x, false, function(it){
- observer.next(it);
- if(done)return RETURN;
- }) === RETURN)return;
- } catch(e){
- if(done)throw e;
- observer.error(e);
- return;
- } observer.complete();
- }
- });
- return function(){ done = true; };
- });
- },
- of: function of(){
- for(var i = 0, l = arguments.length, items = Array(l); i < l;)items[i] = arguments[i++];
- return new (typeof this === 'function' ? this : $Observable)(function(observer){
- var done = false;
- microtask(function(){
- if(!done){
- for(var i = 0; i < items.length; ++i){
- observer.next(items[i]);
- if(done)return;
- } observer.complete();
- }
- });
- return function(){ done = true; };
- });
- }
- });
-
- hide($Observable.prototype, OBSERVABLE, function(){ return this; });
-
- $export($export.G, {Observable: $Observable});
-
- __webpack_require__(186)('Observable');
-
-/***/ },
-/* 286 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , $task = __webpack_require__(200);
- $export($export.G + $export.B, {
- setImmediate: $task.set,
- clearImmediate: $task.clear
- });
-
-/***/ },
-/* 287 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $iterators = __webpack_require__(183)
- , redefine = __webpack_require__(16)
- , global = __webpack_require__(2)
- , hide = __webpack_require__(8)
- , Iterators = __webpack_require__(135)
- , wks = __webpack_require__(23)
- , ITERATOR = wks('iterator')
- , TO_STRING_TAG = wks('toStringTag')
- , ArrayValues = Iterators.Array;
-
- for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
- var NAME = collections[i]
- , Collection = global[NAME]
- , proto = Collection && Collection.prototype
- , key;
- if(proto){
- if(!proto[ITERATOR])hide(proto, ITERATOR, ArrayValues);
- if(!proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);
- Iterators[NAME] = ArrayValues;
- for(key in $iterators)if(!proto[key])redefine(proto, key, $iterators[key], true);
- }
- }
-
-/***/ },
-/* 288 */
-/***/ function(module, exports, __webpack_require__) {
-
- // ie9- setTimeout & setInterval additional parameters fix
- var global = __webpack_require__(2)
- , $export = __webpack_require__(6)
- , invoke = __webpack_require__(76)
- , partial = __webpack_require__(289)
- , navigator = global.navigator
- , MSIE = !!navigator && /MSIE .\./.test(navigator.userAgent); // <- dirty ie9- check
- var wrap = function(set){
- return MSIE ? function(fn, time /*, ...args */){
- return set(invoke(
- partial,
- [].slice.call(arguments, 2),
- typeof fn == 'function' ? fn : Function(fn)
- ), time);
- } : set;
- };
- $export($export.G + $export.B + $export.F * MSIE, {
- setTimeout: wrap(global.setTimeout),
- setInterval: wrap(global.setInterval)
- });
-
-/***/ },
-/* 289 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var path = __webpack_require__(290)
- , invoke = __webpack_require__(76)
- , aFunction = __webpack_require__(19);
- module.exports = function(/* ...pargs */){
- var fn = aFunction(this)
- , length = arguments.length
- , pargs = Array(length)
- , i = 0
- , _ = path._
- , holder = false;
- while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true;
- return function(/* ...args */){
- var that = this
- , aLen = arguments.length
- , j = 0, k = 0, args;
- if(!holder && !aLen)return invoke(fn, pargs, that);
- args = pargs.slice();
- if(holder)for(;length > j; j++)if(args[j] === _)args[j] = arguments[k++];
- while(aLen > k)args.push(arguments[k++]);
- return invoke(fn, args, that);
- };
- };
-
-/***/ },
-/* 290 */
-/***/ function(module, exports, __webpack_require__) {
-
- module.exports = __webpack_require__(2);
-
-/***/ },
-/* 291 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var ctx = __webpack_require__(18)
- , $export = __webpack_require__(6)
- , createDesc = __webpack_require__(15)
- , assign = __webpack_require__(67)
- , create = __webpack_require__(44)
- , getPrototypeOf = __webpack_require__(57)
- , getKeys = __webpack_require__(28)
- , dP = __webpack_require__(9)
- , keyOf = __webpack_require__(27)
- , aFunction = __webpack_require__(19)
- , forOf = __webpack_require__(198)
- , isIterable = __webpack_require__(292)
- , $iterCreate = __webpack_require__(136)
- , step = __webpack_require__(184)
- , isObject = __webpack_require__(11)
- , toIObject = __webpack_require__(30)
- , DESCRIPTORS = __webpack_require__(4)
- , has = __webpack_require__(3);
-
- // 0 -> Dict.forEach
- // 1 -> Dict.map
- // 2 -> Dict.filter
- // 3 -> Dict.some
- // 4 -> Dict.every
- // 5 -> Dict.find
- // 6 -> Dict.findKey
- // 7 -> Dict.mapPairs
- var createDictMethod = function(TYPE){
- var IS_MAP = TYPE == 1
- , IS_EVERY = TYPE == 4;
- return function(object, callbackfn, that /* = undefined */){
- var f = ctx(callbackfn, that, 3)
- , O = toIObject(object)
- , result = IS_MAP || TYPE == 7 || TYPE == 2
- ? new (typeof this == 'function' ? this : Dict) : undefined
- , key, val, res;
- for(key in O)if(has(O, key)){
- val = O[key];
- res = f(val, key, object);
- if(TYPE){
- if(IS_MAP)result[key] = res; // map
- else if(res)switch(TYPE){
- case 2: result[key] = val; break; // filter
- case 3: return true; // some
- case 5: return val; // find
- case 6: return key; // findKey
- case 7: result[res[0]] = res[1]; // mapPairs
- } else if(IS_EVERY)return false; // every
- }
- }
- return TYPE == 3 || IS_EVERY ? IS_EVERY : result;
- };
- };
- var findKey = createDictMethod(6);
-
- var createDictIter = function(kind){
- return function(it){
- return new DictIterator(it, kind);
- };
- };
- var DictIterator = function(iterated, kind){
- this._t = toIObject(iterated); // target
- this._a = getKeys(iterated); // keys
- this._i = 0; // next index
- this._k = kind; // kind
- };
- $iterCreate(DictIterator, 'Dict', function(){
- var that = this
- , O = that._t
- , keys = that._a
- , kind = that._k
- , key;
- do {
- if(that._i >= keys.length){
- that._t = undefined;
- return step(1);
- }
- } while(!has(O, key = keys[that._i++]));
- if(kind == 'keys' )return step(0, key);
- if(kind == 'values')return step(0, O[key]);
- return step(0, [key, O[key]]);
- });
-
- function Dict(iterable){
- var dict = create(null);
- if(iterable != undefined){
- if(isIterable(iterable)){
- forOf(iterable, true, function(key, value){
- dict[key] = value;
- });
- } else assign(dict, iterable);
- }
- return dict;
- }
- Dict.prototype = null;
-
- function reduce(object, mapfn, init){
- aFunction(mapfn);
- var O = toIObject(object)
- , keys = getKeys(O)
- , length = keys.length
- , i = 0
- , memo, key;
- if(arguments.length < 3){
- if(!length)throw TypeError('Reduce of empty object with no initial value');
- memo = O[keys[i++]];
- } else memo = Object(init);
- while(length > i)if(has(O, key = keys[i++])){
- memo = mapfn(memo, O[key], key, object);
- }
- return memo;
- }
-
- function includes(object, el){
- return (el == el ? keyOf(object, el) : findKey(object, function(it){
- return it != it;
- })) !== undefined;
- }
-
- function get(object, key){
- if(has(object, key))return object[key];
- }
- function set(object, key, value){
- if(DESCRIPTORS && key in Object)dP.f(object, key, createDesc(0, value));
- else object[key] = value;
- return object;
- }
-
- function isDict(it){
- return isObject(it) && getPrototypeOf(it) === Dict.prototype;
- }
-
- $export($export.G + $export.F, {Dict: Dict});
-
- $export($export.S, 'Dict', {
- keys: createDictIter('keys'),
- values: createDictIter('values'),
- entries: createDictIter('entries'),
- forEach: createDictMethod(0),
- map: createDictMethod(1),
- filter: createDictMethod(2),
- some: createDictMethod(3),
- every: createDictMethod(4),
- find: createDictMethod(5),
- findKey: findKey,
- mapPairs: createDictMethod(7),
- reduce: reduce,
- keyOf: keyOf,
- includes: includes,
- has: has,
- get: get,
- set: set,
- isDict: isDict
- });
-
-/***/ },
-/* 292 */
-/***/ function(module, exports, __webpack_require__) {
-
- var classof = __webpack_require__(73)
- , ITERATOR = __webpack_require__(23)('iterator')
- , Iterators = __webpack_require__(135);
- module.exports = __webpack_require__(7).isIterable = function(it){
- var O = Object(it);
- return O[ITERATOR] !== undefined
- || '@@iterator' in O
- || Iterators.hasOwnProperty(classof(O));
- };
-
-/***/ },
-/* 293 */
-/***/ function(module, exports, __webpack_require__) {
-
- var anObject = __webpack_require__(10)
- , get = __webpack_require__(156);
- module.exports = __webpack_require__(7).getIterator = function(it){
- var iterFn = get(it);
- if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');
- return anObject(iterFn.call(it));
- };
-
-/***/ },
-/* 294 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , core = __webpack_require__(7)
- , $export = __webpack_require__(6)
- , partial = __webpack_require__(289);
- // https://esdiscuss.org/topic/promise-returning-delay-function
- $export($export.G + $export.F, {
- delay: function delay(time){
- return new (core.Promise || global.Promise)(function(resolve){
- setTimeout(partial.call(resolve, true), time);
- });
- }
- });
-
-/***/ },
-/* 295 */
-/***/ function(module, exports, __webpack_require__) {
-
- var path = __webpack_require__(290)
- , $export = __webpack_require__(6);
-
- // Placeholder
- __webpack_require__(7)._ = path._ = path._ || {};
-
- $export($export.P + $export.F, 'Function', {part: __webpack_require__(289)});
-
-/***/ },
-/* 296 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6);
-
- $export($export.S + $export.F, 'Object', {isObject: __webpack_require__(11)});
-
-/***/ },
-/* 297 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6);
-
- $export($export.S + $export.F, 'Object', {classof: __webpack_require__(73)});
-
-/***/ },
-/* 298 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , define = __webpack_require__(299);
-
- $export($export.S + $export.F, 'Object', {define: define});
-
-/***/ },
-/* 299 */
-/***/ function(module, exports, __webpack_require__) {
-
- var dP = __webpack_require__(9)
- , gOPD = __webpack_require__(49)
- , ownKeys = __webpack_require__(221)
- , toIObject = __webpack_require__(30);
-
- module.exports = function define(target, mixin){
- var keys = ownKeys(toIObject(mixin))
- , length = keys.length
- , i = 0, key;
- while(length > i)dP.f(target, key = keys[i++], gOPD.f(mixin, key));
- return target;
- };
-
-/***/ },
-/* 300 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , define = __webpack_require__(299)
- , create = __webpack_require__(44);
-
- $export($export.S + $export.F, 'Object', {
- make: function(proto, mixin){
- return define(create(proto), mixin);
- }
- });
-
-/***/ },
-/* 301 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- __webpack_require__(134)(Number, 'Number', function(iterated){
- this._l = +iterated;
- this._i = 0;
- }, function(){
- var i = this._i++
- , done = !(i < this._l);
- return {done: done, value: done ? undefined : i};
- });
-
-/***/ },
-/* 302 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/benjamingr/RexExp.escape
- var $export = __webpack_require__(6)
- , $re = __webpack_require__(303)(/[\\^$*+?.()|[\]{}]/g, '\\$&');
-
- $export($export.S, 'RegExp', {escape: function escape(it){ return $re(it); }});
-
-
-/***/ },
-/* 303 */
-/***/ function(module, exports) {
-
- module.exports = function(regExp, replace){
- var replacer = replace === Object(replace) ? function(part){
- return replace[part];
- } : replace;
- return function(it){
- return String(it).replace(regExp, replacer);
- };
- };
-
-/***/ },
-/* 304 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6);
- var $re = __webpack_require__(303)(/[&<>"']/g, {
- '&': '&amp;',
- '<': '&lt;',
- '>': '&gt;',
- '"': '&quot;',
- "'": '&apos;'
- });
-
- $export($export.P + $export.F, 'String', {escapeHTML: function escapeHTML(){ return $re(this); }});
-
-/***/ },
-/* 305 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6);
- var $re = __webpack_require__(303)(/&(?:amp|lt|gt|quot|apos);/g, {
- '&amp;': '&',
- '&lt;': '<',
- '&gt;': '>',
- '&quot;': '"',
- '&apos;': "'"
- });
-
- $export($export.P + $export.F, 'String', {unescapeHTML: function unescapeHTML(){ return $re(this); }});
-
-/***/ }
-/******/ ]);
-// CommonJS export
-if(typeof module != 'undefined' && module.exports)module.exports = __e;
-// RequireJS export
-else if(typeof define == 'function' && define.amd)define(function(){return __e});
-// Export to global object
-else __g.core = __e;
-}(1, 1); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/client/core.min.js b/node_modules/babel-runtime/node_modules/core-js/client/core.min.js
deleted file mode 100644
index 4c43b467f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/client/core.min.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * core-js 2.4.1
- * https://github.com/zloirock/core-js
- * License: http://rock.mit-license.org
- * © 2016 Denis Pushkarev
- */
-!function(a,b,c){"use strict";!function(a){function __webpack_require__(c){if(b[c])return b[c].exports;var d=b[c]={exports:{},id:c,loaded:!1};return a[c].call(d.exports,d,d.exports,__webpack_require__),d.loaded=!0,d.exports}var b={};return __webpack_require__.m=a,__webpack_require__.c=b,__webpack_require__.p="",__webpack_require__(0)}([function(a,b,c){c(1),c(50),c(51),c(52),c(54),c(55),c(58),c(59),c(60),c(61),c(62),c(63),c(64),c(65),c(66),c(68),c(70),c(72),c(74),c(77),c(78),c(79),c(83),c(86),c(87),c(88),c(89),c(91),c(92),c(93),c(94),c(95),c(97),c(99),c(100),c(101),c(103),c(104),c(105),c(107),c(108),c(109),c(111),c(112),c(113),c(114),c(115),c(116),c(117),c(118),c(119),c(120),c(121),c(122),c(123),c(124),c(126),c(130),c(131),c(132),c(133),c(137),c(139),c(140),c(141),c(142),c(143),c(144),c(145),c(146),c(147),c(148),c(149),c(150),c(151),c(152),c(158),c(159),c(161),c(162),c(163),c(167),c(168),c(169),c(170),c(171),c(173),c(174),c(175),c(176),c(179),c(181),c(182),c(183),c(185),c(187),c(189),c(190),c(191),c(193),c(194),c(195),c(196),c(203),c(206),c(207),c(209),c(210),c(211),c(212),c(213),c(214),c(215),c(216),c(217),c(218),c(219),c(220),c(222),c(223),c(224),c(225),c(226),c(227),c(228),c(229),c(231),c(234),c(235),c(237),c(238),c(239),c(240),c(241),c(242),c(243),c(244),c(245),c(246),c(247),c(249),c(250),c(251),c(252),c(253),c(254),c(255),c(256),c(258),c(259),c(261),c(262),c(263),c(264),c(267),c(268),c(269),c(270),c(271),c(272),c(273),c(274),c(276),c(277),c(278),c(279),c(280),c(281),c(282),c(283),c(284),c(285),c(286),c(287),c(288),c(291),c(156),c(293),c(292),c(294),c(295),c(296),c(297),c(298),c(300),c(301),c(302),c(304),a.exports=c(305)},function(a,b,d){var e=d(2),f=d(3),g=d(4),h=d(6),i=d(16),j=d(20).KEY,k=d(5),l=d(21),m=d(22),n=d(17),o=d(23),p=d(24),q=d(25),r=d(27),s=d(40),t=d(43),u=d(10),v=d(30),w=d(14),x=d(15),y=d(44),z=d(47),A=d(49),B=d(9),C=d(28),D=A.f,E=B.f,F=z.f,G=e.Symbol,H=e.JSON,I=H&&H.stringify,J="prototype",K=o("_hidden"),L=o("toPrimitive"),M={}.propertyIsEnumerable,N=l("symbol-registry"),O=l("symbols"),P=l("op-symbols"),Q=Object[J],R="function"==typeof G,S=e.QObject,T=!S||!S[J]||!S[J].findChild,U=g&&k(function(){return 7!=y(E({},"a",{get:function(){return E(this,"a",{value:7}).a}})).a})?function(a,b,c){var d=D(Q,b);d&&delete Q[b],E(a,b,c),d&&a!==Q&&E(Q,b,d)}:E,V=function(a){var b=O[a]=y(G[J]);return b._k=a,b},W=R&&"symbol"==typeof G.iterator?function(a){return"symbol"==typeof a}:function(a){return a instanceof G},X=function defineProperty(a,b,c){return a===Q&&X(P,b,c),u(a),b=w(b,!0),u(c),f(O,b)?(c.enumerable?(f(a,K)&&a[K][b]&&(a[K][b]=!1),c=y(c,{enumerable:x(0,!1)})):(f(a,K)||E(a,K,x(1,{})),a[K][b]=!0),U(a,b,c)):E(a,b,c)},Y=function defineProperties(a,b){u(a);for(var c,d=s(b=v(b)),e=0,f=d.length;f>e;)X(a,c=d[e++],b[c]);return a},Z=function create(a,b){return b===c?y(a):Y(y(a),b)},$=function propertyIsEnumerable(a){var b=M.call(this,a=w(a,!0));return!(this===Q&&f(O,a)&&!f(P,a))&&(!(b||!f(this,a)||!f(O,a)||f(this,K)&&this[K][a])||b)},_=function getOwnPropertyDescriptor(a,b){if(a=v(a),b=w(b,!0),a!==Q||!f(O,b)||f(P,b)){var c=D(a,b);return!c||!f(O,b)||f(a,K)&&a[K][b]||(c.enumerable=!0),c}},aa=function getOwnPropertyNames(a){for(var b,c=F(v(a)),d=[],e=0;c.length>e;)f(O,b=c[e++])||b==K||b==j||d.push(b);return d},ba=function getOwnPropertySymbols(a){for(var b,c=a===Q,d=F(c?P:v(a)),e=[],g=0;d.length>g;)!f(O,b=d[g++])||c&&!f(Q,b)||e.push(O[b]);return e};R||(G=function Symbol(){if(this instanceof G)throw TypeError("Symbol is not a constructor!");var a=n(arguments.length>0?arguments[0]:c),b=function(c){this===Q&&b.call(P,c),f(this,K)&&f(this[K],a)&&(this[K][a]=!1),U(this,a,x(1,c))};return g&&T&&U(Q,a,{configurable:!0,set:b}),V(a)},i(G[J],"toString",function toString(){return this._k}),A.f=_,B.f=X,d(48).f=z.f=aa,d(42).f=$,d(41).f=ba,g&&!d(26)&&i(Q,"propertyIsEnumerable",$,!0),p.f=function(a){return V(o(a))}),h(h.G+h.W+h.F*!R,{Symbol:G});for(var ca="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),da=0;ca.length>da;)o(ca[da++]);for(var ca=C(o.store),da=0;ca.length>da;)q(ca[da++]);h(h.S+h.F*!R,"Symbol",{"for":function(a){return f(N,a+="")?N[a]:N[a]=G(a)},keyFor:function keyFor(a){if(W(a))return r(N,a);throw TypeError(a+" is not a symbol!")},useSetter:function(){T=!0},useSimple:function(){T=!1}}),h(h.S+h.F*!R,"Object",{create:Z,defineProperty:X,defineProperties:Y,getOwnPropertyDescriptor:_,getOwnPropertyNames:aa,getOwnPropertySymbols:ba}),H&&h(h.S+h.F*(!R||k(function(){var a=G();return"[null]"!=I([a])||"{}"!=I({a:a})||"{}"!=I(Object(a))})),"JSON",{stringify:function stringify(a){if(a!==c&&!W(a)){for(var b,d,e=[a],f=1;arguments.length>f;)e.push(arguments[f++]);return b=e[1],"function"==typeof b&&(d=b),!d&&t(b)||(b=function(a,b){if(d&&(b=d.call(this,a,b)),!W(b))return b}),e[1]=b,I.apply(H,e)}}}),G[J][L]||d(8)(G[J],L,G[J].valueOf),m(G,"Symbol"),m(Math,"Math",!0),m(e.JSON,"JSON",!0)},function(a,c){var d=a.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof b&&(b=d)},function(a,b){var c={}.hasOwnProperty;a.exports=function(a,b){return c.call(a,b)}},function(a,b,c){a.exports=!c(5)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b){a.exports=function(a){try{return!!a()}catch(b){return!0}}},function(a,b,d){var e=d(2),f=d(7),g=d(8),h=d(16),i=d(18),j="prototype",k=function(a,b,d){var l,m,n,o,p=a&k.F,q=a&k.G,r=a&k.S,s=a&k.P,t=a&k.B,u=q?e:r?e[b]||(e[b]={}):(e[b]||{})[j],v=q?f:f[b]||(f[b]={}),w=v[j]||(v[j]={});q&&(d=b);for(l in d)m=!p&&u&&u[l]!==c,n=(m?u:d)[l],o=t&&m?i(n,e):s&&"function"==typeof n?i(Function.call,n):n,u&&h(u,l,n,a&k.U),v[l]!=n&&g(v,l,o),s&&w[l]!=n&&(w[l]=n)};e.core=f,k.F=1,k.G=2,k.S=4,k.P=8,k.B=16,k.W=32,k.U=64,k.R=128,a.exports=k},function(b,c){var d=b.exports={version:"2.4.0"};"number"==typeof a&&(a=d)},function(a,b,c){var d=c(9),e=c(15);a.exports=c(4)?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},function(a,b,c){var d=c(10),e=c(12),f=c(14),g=Object.defineProperty;b.f=c(4)?Object.defineProperty:function defineProperty(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(h){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(a[b]=c.value),a}},function(a,b,c){var d=c(11);a.exports=function(a){if(!d(a))throw TypeError(a+" is not an object!");return a}},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,b,c){a.exports=!c(4)&&!c(5)(function(){return 7!=Object.defineProperty(c(13)("div"),"a",{get:function(){return 7}}).a})},function(a,b,c){var d=c(11),e=c(2).document,f=d(e)&&d(e.createElement);a.exports=function(a){return f?e.createElement(a):{}}},function(a,b,c){var d=c(11);a.exports=function(a,b){if(!d(a))return a;var c,e;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;if("function"==typeof(c=a.valueOf)&&!d(e=c.call(a)))return e;if(!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,b,c){var d=c(2),e=c(8),f=c(3),g=c(17)("src"),h="toString",i=Function[h],j=(""+i).split(h);c(7).inspectSource=function(a){return i.call(a)},(a.exports=function(a,b,c,h){var i="function"==typeof c;i&&(f(c,"name")||e(c,"name",b)),a[b]!==c&&(i&&(f(c,g)||e(c,g,a[b]?""+a[b]:j.join(String(b)))),a===d?a[b]=c:h?a[b]?a[b]=c:e(a,b,c):(delete a[b],e(a,b,c)))})(Function.prototype,h,function toString(){return"function"==typeof this&&this[g]||i.call(this)})},function(a,b){var d=0,e=Math.random();a.exports=function(a){return"Symbol(".concat(a===c?"":a,")_",(++d+e).toString(36))}},function(a,b,d){var e=d(19);a.exports=function(a,b,d){if(e(a),b===c)return a;switch(d){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,b,c){var d=c(17)("meta"),e=c(11),f=c(3),g=c(9).f,h=0,i=Object.isExtensible||function(){return!0},j=!c(5)(function(){return i(Object.preventExtensions({}))}),k=function(a){g(a,d,{value:{i:"O"+ ++h,w:{}}})},l=function(a,b){if(!e(a))return"symbol"==typeof a?a:("string"==typeof a?"S":"P")+a;if(!f(a,d)){if(!i(a))return"F";if(!b)return"E";k(a)}return a[d].i},m=function(a,b){if(!f(a,d)){if(!i(a))return!0;if(!b)return!1;k(a)}return a[d].w},n=function(a){return j&&o.NEED&&i(a)&&!f(a,d)&&k(a),a},o=a.exports={KEY:d,NEED:!1,fastKey:l,getWeak:m,onFreeze:n}},function(a,b,c){var d=c(2),e="__core-js_shared__",f=d[e]||(d[e]={});a.exports=function(a){return f[a]||(f[a]={})}},function(a,b,c){var d=c(9).f,e=c(3),f=c(23)("toStringTag");a.exports=function(a,b,c){a&&!e(a=c?a:a.prototype,f)&&d(a,f,{configurable:!0,value:b})}},function(a,b,c){var d=c(21)("wks"),e=c(17),f=c(2).Symbol,g="function"==typeof f,h=a.exports=function(a){return d[a]||(d[a]=g&&f[a]||(g?f:e)("Symbol."+a))};h.store=d},function(a,b,c){b.f=c(23)},function(a,b,c){var d=c(2),e=c(7),f=c(26),g=c(24),h=c(9).f;a.exports=function(a){var b=e.Symbol||(e.Symbol=f?{}:d.Symbol||{});"_"==a.charAt(0)||a in b||h(b,a,{value:g.f(a)})}},function(a,b){a.exports=!1},function(a,b,c){var d=c(28),e=c(30);a.exports=function(a,b){for(var c,f=e(a),g=d(f),h=g.length,i=0;h>i;)if(f[c=g[i++]]===b)return c}},function(a,b,c){var d=c(29),e=c(39);a.exports=Object.keys||function keys(a){return d(a,e)}},function(a,b,c){var d=c(3),e=c(30),f=c(34)(!1),g=c(38)("IE_PROTO");a.exports=function(a,b){var c,h=e(a),i=0,j=[];for(c in h)c!=g&&d(h,c)&&j.push(c);for(;b.length>i;)d(h,c=b[i++])&&(~f(j,c)||j.push(c));return j}},function(a,b,c){var d=c(31),e=c(33);a.exports=function(a){return d(e(a))}},function(a,b,c){var d=c(32);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return"String"==d(a)?a.split(""):Object(a)}},function(a,b){var c={}.toString;a.exports=function(a){return c.call(a).slice(8,-1)}},function(a,b){a.exports=function(a){if(a==c)throw TypeError("Can't call method on "+a);return a}},function(a,b,c){var d=c(30),e=c(35),f=c(37);a.exports=function(a){return function(b,c,g){var h,i=d(b),j=e(i.length),k=f(g,j);if(a&&c!=c){for(;j>k;)if(h=i[k++],h!=h)return!0}else for(;j>k;k++)if((a||k in i)&&i[k]===c)return a||k||0;return!a&&-1}}},function(a,b,c){var d=c(36),e=Math.min;a.exports=function(a){return a>0?e(d(a),9007199254740991):0}},function(a,b){var c=Math.ceil,d=Math.floor;a.exports=function(a){return isNaN(a=+a)?0:(a>0?d:c)(a)}},function(a,b,c){var d=c(36),e=Math.max,f=Math.min;a.exports=function(a,b){return a=d(a),a<0?e(a+b,0):f(a,b)}},function(a,b,c){var d=c(21)("keys"),e=c(17);a.exports=function(a){return d[a]||(d[a]=e(a))}},function(a,b){a.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(a,b,c){var d=c(28),e=c(41),f=c(42);a.exports=function(a){var b=d(a),c=e.f;if(c)for(var g,h=c(a),i=f.f,j=0;h.length>j;)i.call(a,g=h[j++])&&b.push(g);return b}},function(a,b){b.f=Object.getOwnPropertySymbols},function(a,b){b.f={}.propertyIsEnumerable},function(a,b,c){var d=c(32);a.exports=Array.isArray||function isArray(a){return"Array"==d(a)}},function(a,b,d){var e=d(10),f=d(45),g=d(39),h=d(38)("IE_PROTO"),i=function(){},j="prototype",k=function(){var a,b=d(13)("iframe"),c=g.length,e="<",f=">";for(b.style.display="none",d(46).appendChild(b),b.src="javascript:",a=b.contentWindow.document,a.open(),a.write(e+"script"+f+"document.F=Object"+e+"/script"+f),a.close(),k=a.F;c--;)delete k[j][g[c]];return k()};a.exports=Object.create||function create(a,b){var d;return null!==a?(i[j]=e(a),d=new i,i[j]=null,d[h]=a):d=k(),b===c?d:f(d,b)}},function(a,b,c){var d=c(9),e=c(10),f=c(28);a.exports=c(4)?Object.defineProperties:function defineProperties(a,b){e(a);for(var c,g=f(b),h=g.length,i=0;h>i;)d.f(a,c=g[i++],b[c]);return a}},function(a,b,c){a.exports=c(2).document&&document.documentElement},function(a,b,c){var d=c(30),e=c(48).f,f={}.toString,g="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],h=function(a){try{return e(a)}catch(b){return g.slice()}};a.exports.f=function getOwnPropertyNames(a){return g&&"[object Window]"==f.call(a)?h(a):e(d(a))}},function(a,b,c){var d=c(29),e=c(39).concat("length","prototype");b.f=Object.getOwnPropertyNames||function getOwnPropertyNames(a){return d(a,e)}},function(a,b,c){var d=c(42),e=c(15),f=c(30),g=c(14),h=c(3),i=c(12),j=Object.getOwnPropertyDescriptor;b.f=c(4)?j:function getOwnPropertyDescriptor(a,b){if(a=f(a),b=g(b,!0),i)try{return j(a,b)}catch(c){}if(h(a,b))return e(!d.f.call(a,b),a[b])}},function(a,b,c){var d=c(6);d(d.S+d.F*!c(4),"Object",{defineProperty:c(9).f})},function(a,b,c){var d=c(6);d(d.S+d.F*!c(4),"Object",{defineProperties:c(45)})},function(a,b,c){var d=c(30),e=c(49).f;c(53)("getOwnPropertyDescriptor",function(){return function getOwnPropertyDescriptor(a,b){return e(d(a),b)}})},function(a,b,c){var d=c(6),e=c(7),f=c(5);a.exports=function(a,b){var c=(e.Object||{})[a]||Object[a],g={};g[a]=b(c),d(d.S+d.F*f(function(){c(1)}),"Object",g)}},function(a,b,c){var d=c(6);d(d.S,"Object",{create:c(44)})},function(a,b,c){var d=c(56),e=c(57);c(53)("getPrototypeOf",function(){return function getPrototypeOf(a){return e(d(a))}})},function(a,b,c){var d=c(33);a.exports=function(a){return Object(d(a))}},function(a,b,c){var d=c(3),e=c(56),f=c(38)("IE_PROTO"),g=Object.prototype;a.exports=Object.getPrototypeOf||function(a){return a=e(a),d(a,f)?a[f]:"function"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?g:null}},function(a,b,c){var d=c(56),e=c(28);c(53)("keys",function(){return function keys(a){return e(d(a))}})},function(a,b,c){c(53)("getOwnPropertyNames",function(){return c(47).f})},function(a,b,c){var d=c(11),e=c(20).onFreeze;c(53)("freeze",function(a){return function freeze(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(11),e=c(20).onFreeze;c(53)("seal",function(a){return function seal(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(11),e=c(20).onFreeze;c(53)("preventExtensions",function(a){return function preventExtensions(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(11);c(53)("isFrozen",function(a){return function isFrozen(b){return!d(b)||!!a&&a(b)}})},function(a,b,c){var d=c(11);c(53)("isSealed",function(a){return function isSealed(b){return!d(b)||!!a&&a(b)}})},function(a,b,c){var d=c(11);c(53)("isExtensible",function(a){return function isExtensible(b){return!!d(b)&&(!a||a(b))}})},function(a,b,c){var d=c(6);d(d.S+d.F,"Object",{assign:c(67)})},function(a,b,c){var d=c(28),e=c(41),f=c(42),g=c(56),h=c(31),i=Object.assign;a.exports=!i||c(5)(function(){var a={},b={},c=Symbol(),d="abcdefghijklmnopqrst";return a[c]=7,d.split("").forEach(function(a){b[a]=a}),7!=i({},a)[c]||Object.keys(i({},b)).join("")!=d})?function assign(a,b){for(var c=g(a),i=arguments.length,j=1,k=e.f,l=f.f;i>j;)for(var m,n=h(arguments[j++]),o=k?d(n).concat(k(n)):d(n),p=o.length,q=0;p>q;)l.call(n,m=o[q++])&&(c[m]=n[m]);return c}:i},function(a,b,c){var d=c(6);d(d.S,"Object",{is:c(69)})},function(a,b){a.exports=Object.is||function is(a,b){return a===b?0!==a||1/a===1/b:a!=a&&b!=b}},function(a,b,c){var d=c(6);d(d.S,"Object",{setPrototypeOf:c(71).set})},function(a,b,d){var e=d(11),f=d(10),g=function(a,b){if(f(a),!e(b)&&null!==b)throw TypeError(b+": can't set as prototype!")};a.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(a,b,c){try{c=d(18)(Function.call,d(49).f(Object.prototype,"__proto__").set,2),c(a,[]),b=!(a instanceof Array)}catch(e){b=!0}return function setPrototypeOf(a,d){return g(a,d),b?a.__proto__=d:c(a,d),a}}({},!1):c),check:g}},function(a,b,c){var d=c(73),e={};e[c(23)("toStringTag")]="z",e+""!="[object z]"&&c(16)(Object.prototype,"toString",function toString(){return"[object "+d(this)+"]"},!0)},function(a,b,d){var e=d(32),f=d(23)("toStringTag"),g="Arguments"==e(function(){return arguments}()),h=function(a,b){try{return a[b]}catch(c){}};a.exports=function(a){var b,d,i;return a===c?"Undefined":null===a?"Null":"string"==typeof(d=h(b=Object(a),f))?d:g?e(b):"Object"==(i=e(b))&&"function"==typeof b.callee?"Arguments":i}},function(a,b,c){var d=c(6);d(d.P,"Function",{bind:c(75)})},function(a,b,c){var d=c(19),e=c(11),f=c(76),g=[].slice,h={},i=function(a,b,c){if(!(b in h)){for(var d=[],e=0;e<b;e++)d[e]="a["+e+"]";h[b]=Function("F,a","return new F("+d.join(",")+")")}return h[b](a,c)};a.exports=Function.bind||function bind(a){var b=d(this),c=g.call(arguments,1),h=function(){var d=c.concat(g.call(arguments));return this instanceof h?i(b,d.length,d):f(b,d,a)};return e(b.prototype)&&(h.prototype=b.prototype),h}},function(a,b){a.exports=function(a,b,d){var e=d===c;switch(b.length){case 0:return e?a():a.call(d);case 1:return e?a(b[0]):a.call(d,b[0]);case 2:return e?a(b[0],b[1]):a.call(d,b[0],b[1]);case 3:return e?a(b[0],b[1],b[2]):a.call(d,b[0],b[1],b[2]);case 4:return e?a(b[0],b[1],b[2],b[3]):a.call(d,b[0],b[1],b[2],b[3])}return a.apply(d,b)}},function(a,b,c){var d=c(9).f,e=c(15),f=c(3),g=Function.prototype,h=/^\s*function ([^ (]*)/,i="name",j=Object.isExtensible||function(){return!0};i in g||c(4)&&d(g,i,{configurable:!0,get:function(){try{var a=this,b=(""+a).match(h)[1];return f(a,i)||!j(a)||d(a,i,e(5,b)),b}catch(c){return""}}})},function(a,b,c){var d=c(11),e=c(57),f=c(23)("hasInstance"),g=Function.prototype;f in g||c(9).f(g,f,{value:function(a){if("function"!=typeof this||!d(a))return!1;if(!d(this.prototype))return a instanceof this;for(;a=e(a);)if(this.prototype===a)return!0;return!1}})},function(a,b,c){var d=c(2),e=c(3),f=c(32),g=c(80),h=c(14),i=c(5),j=c(48).f,k=c(49).f,l=c(9).f,m=c(81).trim,n="Number",o=d[n],p=o,q=o.prototype,r=f(c(44)(q))==n,s="trim"in String.prototype,t=function(a){var b=h(a,!1);if("string"==typeof b&&b.length>2){b=s?b.trim():m(b,3);var c,d,e,f=b.charCodeAt(0);if(43===f||45===f){if(c=b.charCodeAt(2),88===c||120===c)return NaN}else if(48===f){switch(b.charCodeAt(1)){case 66:case 98:d=2,e=49;break;case 79:case 111:d=8,e=55;break;default:return+b}for(var g,i=b.slice(2),j=0,k=i.length;j<k;j++)if(g=i.charCodeAt(j),g<48||g>e)return NaN;return parseInt(i,d)}}return+b};if(!o(" 0o1")||!o("0b1")||o("+0x1")){o=function Number(a){var b=arguments.length<1?0:a,c=this;return c instanceof o&&(r?i(function(){q.valueOf.call(c)}):f(c)!=n)?g(new p(t(b)),c,o):t(b)};for(var u,v=c(4)?j(p):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;v.length>w;w++)e(p,u=v[w])&&!e(o,u)&&l(o,u,k(p,u));o.prototype=q,q.constructor=o,c(16)(d,n,o)}},function(a,b,c){var d=c(11),e=c(71).set;a.exports=function(a,b,c){var f,g=b.constructor;return g!==c&&"function"==typeof g&&(f=g.prototype)!==c.prototype&&d(f)&&e&&e(a,f),a}},function(a,b,c){var d=c(6),e=c(33),f=c(5),g=c(82),h="["+g+"]",i="​…",j=RegExp("^"+h+h+"*"),k=RegExp(h+h+"*$"),l=function(a,b,c){var e={},h=f(function(){return!!g[a]()||i[a]()!=i}),j=e[a]=h?b(m):g[a];c&&(e[c]=j),d(d.P+d.F*h,"String",e)},m=l.trim=function(a,b){return a=String(e(a)),1&b&&(a=a.replace(j,"")),2&b&&(a=a.replace(k,"")),a};a.exports=l},function(a,b){a.exports="\t\n\x0B\f\r   ᠎ â€â€‚         âŸã€€\u2028\u2029\ufeff"},function(a,b,c){var d=c(6),e=c(36),f=c(84),g=c(85),h=1..toFixed,i=Math.floor,j=[0,0,0,0,0,0],k="Number.toFixed: incorrect invocation!",l="0",m=function(a,b){for(var c=-1,d=b;++c<6;)d+=a*j[c],j[c]=d%1e7,d=i(d/1e7)},n=function(a){for(var b=6,c=0;--b>=0;)c+=j[b],j[b]=i(c/a),c=c%a*1e7},o=function(){for(var a=6,b="";--a>=0;)if(""!==b||0===a||0!==j[a]){var c=String(j[a]);b=""===b?c:b+g.call(l,7-c.length)+c}return b},p=function(a,b,c){return 0===b?c:b%2===1?p(a,b-1,c*a):p(a*a,b/2,c)},q=function(a){for(var b=0,c=a;c>=4096;)b+=12,c/=4096;for(;c>=2;)b+=1,c/=2;return b};d(d.P+d.F*(!!h&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!c(5)(function(){h.call({})})),"Number",{toFixed:function toFixed(a){var b,c,d,h,i=f(this,k),j=e(a),r="",s=l;if(j<0||j>20)throw RangeError(k);if(i!=i)return"NaN";if(i<=-1e21||i>=1e21)return String(i);if(i<0&&(r="-",i=-i),i>1e-21)if(b=q(i*p(2,69,1))-69,c=b<0?i*p(2,-b,1):i/p(2,b,1),c*=4503599627370496,b=52-b,b>0){for(m(0,c),d=j;d>=7;)m(1e7,0),d-=7;for(m(p(10,d,1),0),d=b-1;d>=23;)n(1<<23),d-=23;n(1<<d),m(1,1),n(2),s=o()}else m(0,c),m(1<<-b,0),s=o()+g.call(l,j);return j>0?(h=s.length,s=r+(h<=j?"0."+g.call(l,j-h)+s:s.slice(0,h-j)+"."+s.slice(h-j))):s=r+s,s}})},function(a,b,c){var d=c(32);a.exports=function(a,b){if("number"!=typeof a&&"Number"!=d(a))throw TypeError(b);return+a}},function(a,b,c){var d=c(36),e=c(33);a.exports=function repeat(a){var b=String(e(this)),c="",f=d(a);if(f<0||f==1/0)throw RangeError("Count can't be negative");for(;f>0;(f>>>=1)&&(b+=b))1&f&&(c+=b);return c}},function(a,b,d){var e=d(6),f=d(5),g=d(84),h=1..toPrecision;e(e.P+e.F*(f(function(){return"1"!==h.call(1,c)})||!f(function(){h.call({})})),"Number",{toPrecision:function toPrecision(a){var b=g(this,"Number#toPrecision: incorrect invocation!");return a===c?h.call(b):h.call(b,a)}})},function(a,b,c){var d=c(6);d(d.S,"Number",{EPSILON:Math.pow(2,-52)})},function(a,b,c){var d=c(6),e=c(2).isFinite;d(d.S,"Number",{isFinite:function isFinite(a){return"number"==typeof a&&e(a)}})},function(a,b,c){var d=c(6);d(d.S,"Number",{isInteger:c(90)})},function(a,b,c){var d=c(11),e=Math.floor;a.exports=function isInteger(a){return!d(a)&&isFinite(a)&&e(a)===a}},function(a,b,c){var d=c(6);d(d.S,"Number",{isNaN:function isNaN(a){return a!=a}})},function(a,b,c){var d=c(6),e=c(90),f=Math.abs;d(d.S,"Number",{isSafeInteger:function isSafeInteger(a){return e(a)&&f(a)<=9007199254740991}})},function(a,b,c){var d=c(6);d(d.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(a,b,c){var d=c(6);d(d.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(a,b,c){var d=c(6),e=c(96);d(d.S+d.F*(Number.parseFloat!=e),"Number",{parseFloat:e})},function(a,b,c){var d=c(2).parseFloat,e=c(81).trim;a.exports=1/d(c(82)+"-0")!==-(1/0)?function parseFloat(a){var b=e(String(a),3),c=d(b);return 0===c&&"-"==b.charAt(0)?-0:c}:d},function(a,b,c){var d=c(6),e=c(98);d(d.S+d.F*(Number.parseInt!=e),"Number",{parseInt:e})},function(a,b,c){var d=c(2).parseInt,e=c(81).trim,f=c(82),g=/^[\-+]?0[xX]/;a.exports=8!==d(f+"08")||22!==d(f+"0x16")?function parseInt(a,b){var c=e(String(a),3);return d(c,b>>>0||(g.test(c)?16:10))}:d},function(a,b,c){var d=c(6),e=c(98);d(d.G+d.F*(parseInt!=e),{parseInt:e})},function(a,b,c){var d=c(6),e=c(96);d(d.G+d.F*(parseFloat!=e),{parseFloat:e})},function(a,b,c){var d=c(6),e=c(102),f=Math.sqrt,g=Math.acosh;d(d.S+d.F*!(g&&710==Math.floor(g(Number.MAX_VALUE))&&g(1/0)==1/0),"Math",{acosh:function acosh(a){return(a=+a)<1?NaN:a>94906265.62425156?Math.log(a)+Math.LN2:e(a-1+f(a-1)*f(a+1))}})},function(a,b){a.exports=Math.log1p||function log1p(a){return(a=+a)>-1e-8&&a<1e-8?a-a*a/2:Math.log(1+a)}},function(a,b,c){function asinh(a){return isFinite(a=+a)&&0!=a?a<0?-asinh(-a):Math.log(a+Math.sqrt(a*a+1)):a}var d=c(6),e=Math.asinh;d(d.S+d.F*!(e&&1/e(0)>0),"Math",{asinh:asinh})},function(a,b,c){var d=c(6),e=Math.atanh;d(d.S+d.F*!(e&&1/e(-0)<0),"Math",{atanh:function atanh(a){return 0==(a=+a)?a:Math.log((1+a)/(1-a))/2}})},function(a,b,c){var d=c(6),e=c(106);d(d.S,"Math",{cbrt:function cbrt(a){return e(a=+a)*Math.pow(Math.abs(a),1/3)}})},function(a,b){a.exports=Math.sign||function sign(a){return 0==(a=+a)||a!=a?a:a<0?-1:1}},function(a,b,c){var d=c(6);d(d.S,"Math",{clz32:function clz32(a){return(a>>>=0)?31-Math.floor(Math.log(a+.5)*Math.LOG2E):32}})},function(a,b,c){var d=c(6),e=Math.exp;d(d.S,"Math",{cosh:function cosh(a){return(e(a=+a)+e(-a))/2}})},function(a,b,c){var d=c(6),e=c(110);d(d.S+d.F*(e!=Math.expm1),"Math",{expm1:e})},function(a,b){var c=Math.expm1;a.exports=!c||c(10)>22025.465794806718||c(10)<22025.465794806718||c(-2e-17)!=-2e-17?function expm1(a){return 0==(a=+a)?a:a>-1e-6&&a<1e-6?a+a*a/2:Math.exp(a)-1}:c},function(a,b,c){var d=c(6),e=c(106),f=Math.pow,g=f(2,-52),h=f(2,-23),i=f(2,127)*(2-h),j=f(2,-126),k=function(a){return a+1/g-1/g};d(d.S,"Math",{fround:function fround(a){var b,c,d=Math.abs(a),f=e(a);return d<j?f*k(d/j/h)*j*h:(b=(1+h/g)*d,c=b-(b-d),c>i||c!=c?f*(1/0):f*c)}})},function(a,b,c){var d=c(6),e=Math.abs;d(d.S,"Math",{hypot:function hypot(a,b){for(var c,d,f=0,g=0,h=arguments.length,i=0;g<h;)c=e(arguments[g++]),i<c?(d=i/c,f=f*d*d+1,i=c):c>0?(d=c/i,f+=d*d):f+=c;return i===1/0?1/0:i*Math.sqrt(f)}})},function(a,b,c){var d=c(6),e=Math.imul;d(d.S+d.F*c(5)(function(){return e(4294967295,5)!=-5||2!=e.length}),"Math",{imul:function imul(a,b){var c=65535,d=+a,e=+b,f=c&d,g=c&e;return 0|f*g+((c&d>>>16)*g+f*(c&e>>>16)<<16>>>0)}})},function(a,b,c){var d=c(6);d(d.S,"Math",{log10:function log10(a){return Math.log(a)/Math.LN10}})},function(a,b,c){var d=c(6);d(d.S,"Math",{log1p:c(102)})},function(a,b,c){var d=c(6);d(d.S,"Math",{log2:function log2(a){return Math.log(a)/Math.LN2}})},function(a,b,c){var d=c(6);d(d.S,"Math",{sign:c(106)})},function(a,b,c){var d=c(6),e=c(110),f=Math.exp;d(d.S+d.F*c(5)(function(){return!Math.sinh(-2e-17)!=-2e-17}),"Math",{sinh:function sinh(a){return Math.abs(a=+a)<1?(e(a)-e(-a))/2:(f(a-1)-f(-a-1))*(Math.E/2)}})},function(a,b,c){var d=c(6),e=c(110),f=Math.exp;d(d.S,"Math",{tanh:function tanh(a){var b=e(a=+a),c=e(-a);return b==1/0?1:c==1/0?-1:(b-c)/(f(a)+f(-a))}})},function(a,b,c){var d=c(6);d(d.S,"Math",{trunc:function trunc(a){return(a>0?Math.floor:Math.ceil)(a)}})},function(a,b,c){var d=c(6),e=c(37),f=String.fromCharCode,g=String.fromCodePoint;d(d.S+d.F*(!!g&&1!=g.length),"String",{fromCodePoint:function fromCodePoint(a){for(var b,c=[],d=arguments.length,g=0;d>g;){if(b=+arguments[g++],e(b,1114111)!==b)throw RangeError(b+" is not a valid code point");c.push(b<65536?f(b):f(((b-=65536)>>10)+55296,b%1024+56320))}return c.join("")}})},function(a,b,c){var d=c(6),e=c(30),f=c(35);d(d.S,"String",{raw:function raw(a){for(var b=e(a.raw),c=f(b.length),d=arguments.length,g=[],h=0;c>h;)g.push(String(b[h++])),h<d&&g.push(String(arguments[h]));return g.join("")}})},function(a,b,c){c(81)("trim",function(a){return function trim(){return a(this,3)}})},function(a,b,c){var d=c(6),e=c(125)(!1);d(d.P,"String",{codePointAt:function codePointAt(a){return e(this,a)}})},function(a,b,d){var e=d(36),f=d(33);a.exports=function(a){return function(b,d){var g,h,i=String(f(b)),j=e(d),k=i.length;return j<0||j>=k?a?"":c:(g=i.charCodeAt(j),g<55296||g>56319||j+1===k||(h=i.charCodeAt(j+1))<56320||h>57343?a?i.charAt(j):g:a?i.slice(j,j+2):(g-55296<<10)+(h-56320)+65536)}}},function(a,b,d){var e=d(6),f=d(35),g=d(127),h="endsWith",i=""[h];e(e.P+e.F*d(129)(h),"String",{endsWith:function endsWith(a){var b=g(this,a,h),d=arguments.length>1?arguments[1]:c,e=f(b.length),j=d===c?e:Math.min(f(d),e),k=String(a);return i?i.call(b,k,j):b.slice(j-k.length,j)===k}})},function(a,b,c){var d=c(128),e=c(33);a.exports=function(a,b,c){if(d(b))throw TypeError("String#"+c+" doesn't accept regex!");return String(e(a))}},function(a,b,d){var e=d(11),f=d(32),g=d(23)("match");a.exports=function(a){var b;return e(a)&&((b=a[g])!==c?!!b:"RegExp"==f(a))}},function(a,b,c){var d=c(23)("match");a.exports=function(a){var b=/./;try{"/./"[a](b)}catch(c){try{return b[d]=!1,!"/./"[a](b)}catch(e){}}return!0}},function(a,b,d){var e=d(6),f=d(127),g="includes";e(e.P+e.F*d(129)(g),"String",{includes:function includes(a){return!!~f(this,a,g).indexOf(a,arguments.length>1?arguments[1]:c)}})},function(a,b,c){var d=c(6);d(d.P,"String",{repeat:c(85)})},function(a,b,d){var e=d(6),f=d(35),g=d(127),h="startsWith",i=""[h];e(e.P+e.F*d(129)(h),"String",{startsWith:function startsWith(a){var b=g(this,a,h),d=f(Math.min(arguments.length>1?arguments[1]:c,b.length)),e=String(a);return i?i.call(b,e,d):b.slice(d,d+e.length)===e}})},function(a,b,d){var e=d(125)(!0);d(134)(String,"String",function(a){this._t=String(a),this._i=0},function(){var a,b=this._t,d=this._i;return d>=b.length?{value:c,done:!0}:(a=e(b,d),this._i+=a.length,{value:a,done:!1})})},function(a,b,d){var e=d(26),f=d(6),g=d(16),h=d(8),i=d(3),j=d(135),k=d(136),l=d(22),m=d(57),n=d(23)("iterator"),o=!([].keys&&"next"in[].keys()),p="@@iterator",q="keys",r="values",s=function(){return this};a.exports=function(a,b,d,t,u,v,w){k(d,b,t);var x,y,z,A=function(a){if(!o&&a in E)return E[a];switch(a){case q:return function keys(){return new d(this,a)};case r:return function values(){return new d(this,a)}}return function entries(){return new d(this,a)}},B=b+" Iterator",C=u==r,D=!1,E=a.prototype,F=E[n]||E[p]||u&&E[u],G=F||A(u),H=u?C?A("entries"):G:c,I="Array"==b?E.entries||F:F;if(I&&(z=m(I.call(new a)),z!==Object.prototype&&(l(z,B,!0),e||i(z,n)||h(z,n,s))),C&&F&&F.name!==r&&(D=!0,G=function values(){return F.call(this)}),e&&!w||!o&&!D&&E[n]||h(E,n,G),j[b]=G,j[B]=s,u)if(x={values:C?G:A(r),keys:v?G:A(q),entries:H},w)for(y in x)y in E||g(E,y,x[y]);else f(f.P+f.F*(o||D),b,x);return x}},function(a,b){a.exports={}},function(a,b,c){var d=c(44),e=c(15),f=c(22),g={};c(8)(g,c(23)("iterator"),function(){return this}),a.exports=function(a,b,c){a.prototype=d(g,{next:e(1,c)}),f(a,b+" Iterator")}},function(a,b,c){c(138)("anchor",function(a){return function anchor(b){return a(this,"a","name",b)}})},function(a,b,c){var d=c(6),e=c(5),f=c(33),g=/"/g,h=function(a,b,c,d){var e=String(f(a)),h="<"+b;return""!==c&&(h+=" "+c+'="'+String(d).replace(g,"&quot;")+'"'),h+">"+e+"</"+b+">"};a.exports=function(a,b){var c={};c[a]=b(h),d(d.P+d.F*e(function(){var b=""[a]('"');return b!==b.toLowerCase()||b.split('"').length>3}),"String",c)}},function(a,b,c){c(138)("big",function(a){return function big(){return a(this,"big","","")}})},function(a,b,c){c(138)("blink",function(a){return function blink(){return a(this,"blink","","")}})},function(a,b,c){c(138)("bold",function(a){return function bold(){return a(this,"b","","")}})},function(a,b,c){c(138)("fixed",function(a){return function fixed(){return a(this,"tt","","")}})},function(a,b,c){c(138)("fontcolor",function(a){return function fontcolor(b){return a(this,"font","color",b)}})},function(a,b,c){c(138)("fontsize",function(a){return function fontsize(b){return a(this,"font","size",b)}})},function(a,b,c){c(138)("italics",function(a){return function italics(){return a(this,"i","","")}})},function(a,b,c){c(138)("link",function(a){return function link(b){return a(this,"a","href",b)}})},function(a,b,c){c(138)("small",function(a){return function small(){return a(this,"small","","")}})},function(a,b,c){c(138)("strike",function(a){return function strike(){return a(this,"strike","","")}})},function(a,b,c){c(138)("sub",function(a){return function sub(){return a(this,"sub","","")}})},function(a,b,c){c(138)("sup",function(a){return function sup(){return a(this,"sup","","")}})},function(a,b,c){var d=c(6);d(d.S,"Array",{isArray:c(43)})},function(a,b,d){var e=d(18),f=d(6),g=d(56),h=d(153),i=d(154),j=d(35),k=d(155),l=d(156);f(f.S+f.F*!d(157)(function(a){Array.from(a)}),"Array",{from:function from(a){var b,d,f,m,n=g(a),o="function"==typeof this?this:Array,p=arguments.length,q=p>1?arguments[1]:c,r=q!==c,s=0,t=l(n);if(r&&(q=e(q,p>2?arguments[2]:c,2)),t==c||o==Array&&i(t))for(b=j(n.length),d=new o(b);b>s;s++)k(d,s,r?q(n[s],s):n[s]);else for(m=t.call(n),d=new o;!(f=m.next()).done;s++)k(d,s,r?h(m,q,[f.value,s],!0):f.value);return d.length=s,d}})},function(a,b,d){var e=d(10);a.exports=function(a,b,d,f){try{return f?b(e(d)[0],d[1]):b(d)}catch(g){var h=a["return"];throw h!==c&&e(h.call(a)),g}}},function(a,b,d){var e=d(135),f=d(23)("iterator"),g=Array.prototype;a.exports=function(a){return a!==c&&(e.Array===a||g[f]===a)}},function(a,b,c){var d=c(9),e=c(15);a.exports=function(a,b,c){b in a?d.f(a,b,e(0,c)):a[b]=c}},function(a,b,d){var e=d(73),f=d(23)("iterator"),g=d(135);a.exports=d(7).getIteratorMethod=function(a){
-if(a!=c)return a[f]||a["@@iterator"]||g[e(a)]}},function(a,b,c){var d=c(23)("iterator"),e=!1;try{var f=[7][d]();f["return"]=function(){e=!0},Array.from(f,function(){throw 2})}catch(g){}a.exports=function(a,b){if(!b&&!e)return!1;var c=!1;try{var f=[7],g=f[d]();g.next=function(){return{done:c=!0}},f[d]=function(){return g},a(f)}catch(h){}return c}},function(a,b,c){var d=c(6),e=c(155);d(d.S+d.F*c(5)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),"Array",{of:function of(){for(var a=0,b=arguments.length,c=new("function"==typeof this?this:Array)(b);b>a;)e(c,a,arguments[a++]);return c.length=b,c}})},function(a,b,d){var e=d(6),f=d(30),g=[].join;e(e.P+e.F*(d(31)!=Object||!d(160)(g)),"Array",{join:function join(a){return g.call(f(this),a===c?",":a)}})},function(a,b,c){var d=c(5);a.exports=function(a,b){return!!a&&d(function(){b?a.call(null,function(){},1):a.call(null)})}},function(a,b,d){var e=d(6),f=d(46),g=d(32),h=d(37),i=d(35),j=[].slice;e(e.P+e.F*d(5)(function(){f&&j.call(f)}),"Array",{slice:function slice(a,b){var d=i(this.length),e=g(this);if(b=b===c?d:b,"Array"==e)return j.call(this,a,b);for(var f=h(a,d),k=h(b,d),l=i(k-f),m=Array(l),n=0;n<l;n++)m[n]="String"==e?this.charAt(f+n):this[f+n];return m}})},function(a,b,d){var e=d(6),f=d(19),g=d(56),h=d(5),i=[].sort,j=[1,2,3];e(e.P+e.F*(h(function(){j.sort(c)})||!h(function(){j.sort(null)})||!d(160)(i)),"Array",{sort:function sort(a){return a===c?i.call(g(this)):i.call(g(this),f(a))}})},function(a,b,c){var d=c(6),e=c(164)(0),f=c(160)([].forEach,!0);d(d.P+d.F*!f,"Array",{forEach:function forEach(a){return e(this,a,arguments[1])}})},function(a,b,d){var e=d(18),f=d(31),g=d(56),h=d(35),i=d(165);a.exports=function(a,b){var d=1==a,j=2==a,k=3==a,l=4==a,m=6==a,n=5==a||m,o=b||i;return function(b,i,p){for(var q,r,s=g(b),t=f(s),u=e(i,p,3),v=h(t.length),w=0,x=d?o(b,v):j?o(b,0):c;v>w;w++)if((n||w in t)&&(q=t[w],r=u(q,w,s),a))if(d)x[w]=r;else if(r)switch(a){case 3:return!0;case 5:return q;case 6:return w;case 2:x.push(q)}else if(l)return!1;return m?-1:k||l?l:x}}},function(a,b,c){var d=c(166);a.exports=function(a,b){return new(d(a))(b)}},function(a,b,d){var e=d(11),f=d(43),g=d(23)("species");a.exports=function(a){var b;return f(a)&&(b=a.constructor,"function"!=typeof b||b!==Array&&!f(b.prototype)||(b=c),e(b)&&(b=b[g],null===b&&(b=c))),b===c?Array:b}},function(a,b,c){var d=c(6),e=c(164)(1);d(d.P+d.F*!c(160)([].map,!0),"Array",{map:function map(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(164)(2);d(d.P+d.F*!c(160)([].filter,!0),"Array",{filter:function filter(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(164)(3);d(d.P+d.F*!c(160)([].some,!0),"Array",{some:function some(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(164)(4);d(d.P+d.F*!c(160)([].every,!0),"Array",{every:function every(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(172);d(d.P+d.F*!c(160)([].reduce,!0),"Array",{reduce:function reduce(a){return e(this,a,arguments.length,arguments[1],!1)}})},function(a,b,c){var d=c(19),e=c(56),f=c(31),g=c(35);a.exports=function(a,b,c,h,i){d(b);var j=e(a),k=f(j),l=g(j.length),m=i?l-1:0,n=i?-1:1;if(c<2)for(;;){if(m in k){h=k[m],m+=n;break}if(m+=n,i?m<0:l<=m)throw TypeError("Reduce of empty array with no initial value")}for(;i?m>=0:l>m;m+=n)m in k&&(h=b(h,k[m],m,j));return h}},function(a,b,c){var d=c(6),e=c(172);d(d.P+d.F*!c(160)([].reduceRight,!0),"Array",{reduceRight:function reduceRight(a){return e(this,a,arguments.length,arguments[1],!0)}})},function(a,b,c){var d=c(6),e=c(34)(!1),f=[].indexOf,g=!!f&&1/[1].indexOf(1,-0)<0;d(d.P+d.F*(g||!c(160)(f)),"Array",{indexOf:function indexOf(a){return g?f.apply(this,arguments)||0:e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(30),f=c(36),g=c(35),h=[].lastIndexOf,i=!!h&&1/[1].lastIndexOf(1,-0)<0;d(d.P+d.F*(i||!c(160)(h)),"Array",{lastIndexOf:function lastIndexOf(a){if(i)return h.apply(this,arguments)||0;var b=e(this),c=g(b.length),d=c-1;for(arguments.length>1&&(d=Math.min(d,f(arguments[1]))),d<0&&(d=c+d);d>=0;d--)if(d in b&&b[d]===a)return d||0;return-1}})},function(a,b,c){var d=c(6);d(d.P,"Array",{copyWithin:c(177)}),c(178)("copyWithin")},function(a,b,d){var e=d(56),f=d(37),g=d(35);a.exports=[].copyWithin||function copyWithin(a,b){var d=e(this),h=g(d.length),i=f(a,h),j=f(b,h),k=arguments.length>2?arguments[2]:c,l=Math.min((k===c?h:f(k,h))-j,h-i),m=1;for(j<i&&i<j+l&&(m=-1,j+=l-1,i+=l-1);l-- >0;)j in d?d[i]=d[j]:delete d[i],i+=m,j+=m;return d}},function(a,b,d){var e=d(23)("unscopables"),f=Array.prototype;f[e]==c&&d(8)(f,e,{}),a.exports=function(a){f[e][a]=!0}},function(a,b,c){var d=c(6);d(d.P,"Array",{fill:c(180)}),c(178)("fill")},function(a,b,d){var e=d(56),f=d(37),g=d(35);a.exports=function fill(a){for(var b=e(this),d=g(b.length),h=arguments.length,i=f(h>1?arguments[1]:c,d),j=h>2?arguments[2]:c,k=j===c?d:f(j,d);k>i;)b[i++]=a;return b}},function(a,b,d){var e=d(6),f=d(164)(5),g="find",h=!0;g in[]&&Array(1)[g](function(){h=!1}),e(e.P+e.F*h,"Array",{find:function find(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(178)(g)},function(a,b,d){var e=d(6),f=d(164)(6),g="findIndex",h=!0;g in[]&&Array(1)[g](function(){h=!1}),e(e.P+e.F*h,"Array",{findIndex:function findIndex(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(178)(g)},function(a,b,d){var e=d(178),f=d(184),g=d(135),h=d(30);a.exports=d(134)(Array,"Array",function(a,b){this._t=h(a),this._i=0,this._k=b},function(){var a=this._t,b=this._k,d=this._i++;return!a||d>=a.length?(this._t=c,f(1)):"keys"==b?f(0,d):"values"==b?f(0,a[d]):f(0,[d,a[d]])},"values"),g.Arguments=g.Array,e("keys"),e("values"),e("entries")},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(a,b,c){c(186)("Array")},function(a,b,c){var d=c(2),e=c(9),f=c(4),g=c(23)("species");a.exports=function(a){var b=d[a];f&&b&&!b[g]&&e.f(b,g,{configurable:!0,get:function(){return this}})}},function(a,b,d){var e=d(2),f=d(80),g=d(9).f,h=d(48).f,i=d(128),j=d(188),k=e.RegExp,l=k,m=k.prototype,n=/a/g,o=/a/g,p=new k(n)!==n;if(d(4)&&(!p||d(5)(function(){return o[d(23)("match")]=!1,k(n)!=n||k(o)==o||"/a/i"!=k(n,"i")}))){k=function RegExp(a,b){var d=this instanceof k,e=i(a),g=b===c;return!d&&e&&a.constructor===k&&g?a:f(p?new l(e&&!g?a.source:a,b):l((e=a instanceof k)?a.source:a,e&&g?j.call(a):b),d?this:m,k)};for(var q=(function(a){a in k||g(k,a,{configurable:!0,get:function(){return l[a]},set:function(b){l[a]=b}})}),r=h(l),s=0;r.length>s;)q(r[s++]);m.constructor=k,k.prototype=m,d(16)(e,"RegExp",k)}d(186)("RegExp")},function(a,b,c){var d=c(10);a.exports=function(){var a=d(this),b="";return a.global&&(b+="g"),a.ignoreCase&&(b+="i"),a.multiline&&(b+="m"),a.unicode&&(b+="u"),a.sticky&&(b+="y"),b}},function(a,b,d){d(190);var e=d(10),f=d(188),g=d(4),h="toString",i=/./[h],j=function(a){d(16)(RegExp.prototype,h,a,!0)};d(5)(function(){return"/a/b"!=i.call({source:"a",flags:"b"})})?j(function toString(){var a=e(this);return"/".concat(a.source,"/","flags"in a?a.flags:!g&&a instanceof RegExp?f.call(a):c)}):i.name!=h&&j(function toString(){return i.call(this)})},function(a,b,c){c(4)&&"g"!=/./g.flags&&c(9).f(RegExp.prototype,"flags",{configurable:!0,get:c(188)})},function(a,b,d){d(192)("match",1,function(a,b,d){return[function match(d){var e=a(this),f=d==c?c:d[b];return f!==c?f.call(d,e):new RegExp(d)[b](String(e))},d]})},function(a,b,c){var d=c(8),e=c(16),f=c(5),g=c(33),h=c(23);a.exports=function(a,b,c){var i=h(a),j=c(g,i,""[a]),k=j[0],l=j[1];f(function(){var b={};return b[i]=function(){return 7},7!=""[a](b)})&&(e(String.prototype,a,k),d(RegExp.prototype,i,2==b?function(a,b){return l.call(a,this,b)}:function(a){return l.call(a,this)}))}},function(a,b,d){d(192)("replace",2,function(a,b,d){return[function replace(e,f){var g=a(this),h=e==c?c:e[b];return h!==c?h.call(e,g,f):d.call(String(g),e,f)},d]})},function(a,b,d){d(192)("search",1,function(a,b,d){return[function search(d){var e=a(this),f=d==c?c:d[b];return f!==c?f.call(d,e):new RegExp(d)[b](String(e))},d]})},function(a,b,d){d(192)("split",2,function(a,b,e){var f=d(128),g=e,h=[].push,i="split",j="length",k="lastIndex";if("c"=="abbc"[i](/(b)*/)[1]||4!="test"[i](/(?:)/,-1)[j]||2!="ab"[i](/(?:ab)*/)[j]||4!="."[i](/(.?)(.?)/)[j]||"."[i](/()()/)[j]>1||""[i](/.?/)[j]){var l=/()??/.exec("")[1]===c;e=function(a,b){var d=String(this);if(a===c&&0===b)return[];if(!f(a))return g.call(d,a,b);var e,i,m,n,o,p=[],q=(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.unicode?"u":"")+(a.sticky?"y":""),r=0,s=b===c?4294967295:b>>>0,t=new RegExp(a.source,q+"g");for(l||(e=new RegExp("^"+t.source+"$(?!\\s)",q));(i=t.exec(d))&&(m=i.index+i[0][j],!(m>r&&(p.push(d.slice(r,i.index)),!l&&i[j]>1&&i[0].replace(e,function(){for(o=1;o<arguments[j]-2;o++)arguments[o]===c&&(i[o]=c)}),i[j]>1&&i.index<d[j]&&h.apply(p,i.slice(1)),n=i[0][j],r=m,p[j]>=s)));)t[k]===i.index&&t[k]++;return r===d[j]?!n&&t.test("")||p.push(""):p.push(d.slice(r)),p[j]>s?p.slice(0,s):p}}else"0"[i](c,0)[j]&&(e=function(a,b){return a===c&&0===b?[]:g.call(this,a,b)});return[function split(d,f){var g=a(this),h=d==c?c:d[b];return h!==c?h.call(d,g,f):e.call(String(g),d,f)},e]})},function(a,b,d){var e,f,g,h=d(26),i=d(2),j=d(18),k=d(73),l=d(6),m=d(11),n=d(19),o=d(197),p=d(198),q=d(199),r=d(200).set,s=d(201)(),t="Promise",u=i.TypeError,v=i.process,w=i[t],v=i.process,x="process"==k(v),y=function(){},z=!!function(){try{var a=w.resolve(1),b=(a.constructor={})[d(23)("species")]=function(a){a(y,y)};return(x||"function"==typeof PromiseRejectionEvent)&&a.then(y)instanceof b}catch(c){}}(),A=function(a,b){return a===b||a===w&&b===g},B=function(a){var b;return!(!m(a)||"function"!=typeof(b=a.then))&&b},C=function(a){return A(w,a)?new D(a):new f(a)},D=f=function(a){var b,d;this.promise=new a(function(a,e){if(b!==c||d!==c)throw u("Bad Promise constructor");b=a,d=e}),this.resolve=n(b),this.reject=n(d)},E=function(a){try{a()}catch(b){return{error:b}}},F=function(a,b){if(!a._n){a._n=!0;var c=a._c;s(function(){for(var d=a._v,e=1==a._s,f=0,g=function(b){var c,f,g=e?b.ok:b.fail,h=b.resolve,i=b.reject,j=b.domain;try{g?(e||(2==a._h&&I(a),a._h=1),g===!0?c=d:(j&&j.enter(),c=g(d),j&&j.exit()),c===b.promise?i(u("Promise-chain cycle")):(f=B(c))?f.call(c,h,i):h(c)):i(d)}catch(k){i(k)}};c.length>f;)g(c[f++]);a._c=[],a._n=!1,b&&!a._h&&G(a)})}},G=function(a){r.call(i,function(){var b,d,e,f=a._v;if(H(a)&&(b=E(function(){x?v.emit("unhandledRejection",f,a):(d=i.onunhandledrejection)?d({promise:a,reason:f}):(e=i.console)&&e.error&&e.error("Unhandled promise rejection",f)}),a._h=x||H(a)?2:1),a._a=c,b)throw b.error})},H=function(a){if(1==a._h)return!1;for(var b,c=a._a||a._c,d=0;c.length>d;)if(b=c[d++],b.fail||!H(b.promise))return!1;return!0},I=function(a){r.call(i,function(){var b;x?v.emit("rejectionHandled",a):(b=i.onrejectionhandled)&&b({promise:a,reason:a._v})})},J=function(a){var b=this;b._d||(b._d=!0,b=b._w||b,b._v=a,b._s=2,b._a||(b._a=b._c.slice()),F(b,!0))},K=function(a){var b,c=this;if(!c._d){c._d=!0,c=c._w||c;try{if(c===a)throw u("Promise can't be resolved itself");(b=B(a))?s(function(){var d={_w:c,_d:!1};try{b.call(a,j(K,d,1),j(J,d,1))}catch(e){J.call(d,e)}}):(c._v=a,c._s=1,F(c,!1))}catch(d){J.call({_w:c,_d:!1},d)}}};z||(w=function Promise(a){o(this,w,t,"_h"),n(a),e.call(this);try{a(j(K,this,1),j(J,this,1))}catch(b){J.call(this,b)}},e=function Promise(a){this._c=[],this._a=c,this._s=0,this._d=!1,this._v=c,this._h=0,this._n=!1},e.prototype=d(202)(w.prototype,{then:function then(a,b){var d=C(q(this,w));return d.ok="function"!=typeof a||a,d.fail="function"==typeof b&&b,d.domain=x?v.domain:c,this._c.push(d),this._a&&this._a.push(d),this._s&&F(this,!1),d.promise},"catch":function(a){return this.then(c,a)}}),D=function(){var a=new e;this.promise=a,this.resolve=j(K,a,1),this.reject=j(J,a,1)}),l(l.G+l.W+l.F*!z,{Promise:w}),d(22)(w,t),d(186)(t),g=d(7)[t],l(l.S+l.F*!z,t,{reject:function reject(a){var b=C(this),c=b.reject;return c(a),b.promise}}),l(l.S+l.F*(h||!z),t,{resolve:function resolve(a){if(a instanceof w&&A(a.constructor,this))return a;var b=C(this),c=b.resolve;return c(a),b.promise}}),l(l.S+l.F*!(z&&d(157)(function(a){w.all(a)["catch"](y)})),t,{all:function all(a){var b=this,d=C(b),e=d.resolve,f=d.reject,g=E(function(){var d=[],g=0,h=1;p(a,!1,function(a){var i=g++,j=!1;d.push(c),h++,b.resolve(a).then(function(a){j||(j=!0,d[i]=a,--h||e(d))},f)}),--h||e(d)});return g&&f(g.error),d.promise},race:function race(a){var b=this,c=C(b),d=c.reject,e=E(function(){p(a,!1,function(a){b.resolve(a).then(c.resolve,d)})});return e&&d(e.error),c.promise}})},function(a,b){a.exports=function(a,b,d,e){if(!(a instanceof b)||e!==c&&e in a)throw TypeError(d+": incorrect invocation!");return a}},function(a,b,c){var d=c(18),e=c(153),f=c(154),g=c(10),h=c(35),i=c(156),j={},k={},b=a.exports=function(a,b,c,l,m){var n,o,p,q,r=m?function(){return a}:i(a),s=d(c,l,b?2:1),t=0;if("function"!=typeof r)throw TypeError(a+" is not iterable!");if(f(r)){for(n=h(a.length);n>t;t++)if(q=b?s(g(o=a[t])[0],o[1]):s(a[t]),q===j||q===k)return q}else for(p=r.call(a);!(o=p.next()).done;)if(q=e(p,s,o.value,b),q===j||q===k)return q};b.BREAK=j,b.RETURN=k},function(a,b,d){var e=d(10),f=d(19),g=d(23)("species");a.exports=function(a,b){var d,h=e(a).constructor;return h===c||(d=e(h)[g])==c?b:f(d)}},function(a,b,c){var d,e,f,g=c(18),h=c(76),i=c(46),j=c(13),k=c(2),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r="onreadystatechange",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function setImmediate(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function clearImmediate(a){delete q[a]},"process"==c(32)(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(e=new o,f=e.port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),a.exports={set:m,clear:n}},function(a,b,d){var e=d(2),f=d(200).set,g=e.MutationObserver||e.WebKitMutationObserver,h=e.process,i=e.Promise,j="process"==d(32)(h);a.exports=function(){var a,b,d,k=function(){var e,f;for(j&&(e=h.domain)&&e.exit();a;){f=a.fn,a=a.next;try{f()}catch(g){throw a?d():b=c,g}}b=c,e&&e.enter()};if(j)d=function(){h.nextTick(k)};else if(g){var l=!0,m=document.createTextNode("");new g(k).observe(m,{characterData:!0}),d=function(){m.data=l=!l}}else if(i&&i.resolve){var n=i.resolve();d=function(){n.then(k)}}else d=function(){f.call(e,k)};return function(e){var f={fn:e,next:c};b&&(b.next=f),a||(a=f,d()),b=f}}},function(a,b,c){var d=c(16);a.exports=function(a,b,c){for(var e in b)d(a,e,b[e],c);return a}},function(a,b,d){var e=d(204);a.exports=d(205)("Map",function(a){return function Map(){return a(this,arguments.length>0?arguments[0]:c)}},{get:function get(a){var b=e.getEntry(this,a);return b&&b.v},set:function set(a,b){return e.def(this,0===a?0:a,b)}},e,!0)},function(a,b,d){var e=d(9).f,f=d(44),g=d(202),h=d(18),i=d(197),j=d(33),k=d(198),l=d(134),m=d(184),n=d(186),o=d(4),p=d(20).fastKey,q=o?"_s":"size",r=function(a,b){var c,d=p(b);if("F"!==d)return a._i[d];for(c=a._f;c;c=c.n)if(c.k==b)return c};a.exports={getConstructor:function(a,b,d,l){var m=a(function(a,e){i(a,m,b,"_i"),a._i=f(null),a._f=c,a._l=c,a[q]=0,e!=c&&k(e,d,a[l],a)});return g(m.prototype,{clear:function clear(){for(var a=this,b=a._i,d=a._f;d;d=d.n)d.r=!0,d.p&&(d.p=d.p.n=c),delete b[d.i];a._f=a._l=c,a[q]=0},"delete":function(a){var b=this,c=r(b,a);if(c){var d=c.n,e=c.p;delete b._i[c.i],c.r=!0,e&&(e.n=d),d&&(d.p=e),b._f==c&&(b._f=d),b._l==c&&(b._l=e),b[q]--}return!!c},forEach:function forEach(a){i(this,m,"forEach");for(var b,d=h(a,arguments.length>1?arguments[1]:c,3);b=b?b.n:this._f;)for(d(b.v,b.k,this);b&&b.r;)b=b.p},has:function has(a){return!!r(this,a)}}),o&&e(m.prototype,"size",{get:function(){return j(this[q])}}),m},def:function(a,b,d){var e,f,g=r(a,b);return g?g.v=d:(a._l=g={i:f=p(b,!0),k:b,v:d,p:e=a._l,n:c,r:!1},a._f||(a._f=g),e&&(e.n=g),a[q]++,"F"!==f&&(a._i[f]=g)),a},getEntry:r,setStrong:function(a,b,d){l(a,b,function(a,b){this._t=a,this._k=b,this._l=c},function(){for(var a=this,b=a._k,d=a._l;d&&d.r;)d=d.p;return a._t&&(a._l=d=d?d.n:a._t._f)?"keys"==b?m(0,d.k):"values"==b?m(0,d.v):m(0,[d.k,d.v]):(a._t=c,m(1))},d?"entries":"values",!d,!0),n(b)}}},function(a,b,d){var e=d(2),f=d(6),g=d(16),h=d(202),i=d(20),j=d(198),k=d(197),l=d(11),m=d(5),n=d(157),o=d(22),p=d(80);a.exports=function(a,b,d,q,r,s){var t=e[a],u=t,v=r?"set":"add",w=u&&u.prototype,x={},y=function(a){var b=w[a];g(w,a,"delete"==a?function(a){return!(s&&!l(a))&&b.call(this,0===a?0:a)}:"has"==a?function has(a){return!(s&&!l(a))&&b.call(this,0===a?0:a)}:"get"==a?function get(a){return s&&!l(a)?c:b.call(this,0===a?0:a)}:"add"==a?function add(a){return b.call(this,0===a?0:a),this}:function set(a,c){return b.call(this,0===a?0:a,c),this})};if("function"==typeof u&&(s||w.forEach&&!m(function(){(new u).entries().next()}))){var z=new u,A=z[v](s?{}:-0,1)!=z,B=m(function(){z.has(1)}),C=n(function(a){new u(a)}),D=!s&&m(function(){for(var a=new u,b=5;b--;)a[v](b,b);return!a.has(-0)});C||(u=b(function(b,d){k(b,u,a);var e=p(new t,b,u);return d!=c&&j(d,r,e[v],e),e}),u.prototype=w,w.constructor=u),(B||D)&&(y("delete"),y("has"),r&&y("get")),(D||A)&&y(v),s&&w.clear&&delete w.clear}else u=q.getConstructor(b,a,r,v),h(u.prototype,d),i.NEED=!0;return o(u,a),x[a]=u,f(f.G+f.W+f.F*(u!=t),x),s||q.setStrong(u,a,r),u}},function(a,b,d){var e=d(204);a.exports=d(205)("Set",function(a){return function Set(){return a(this,arguments.length>0?arguments[0]:c)}},{add:function add(a){return e.def(this,a=0===a?0:a,a)}},e)},function(a,b,d){var e,f=d(164)(0),g=d(16),h=d(20),i=d(67),j=d(208),k=d(11),l=h.getWeak,m=Object.isExtensible,n=j.ufstore,o={},p=function(a){return function WeakMap(){return a(this,arguments.length>0?arguments[0]:c)}},q={get:function get(a){if(k(a)){var b=l(a);return b===!0?n(this).get(a):b?b[this._i]:c}},set:function set(a,b){return j.def(this,a,b)}},r=a.exports=d(205)("WeakMap",p,q,j,!0,!0);7!=(new r).set((Object.freeze||Object)(o),7).get(o)&&(e=j.getConstructor(p),i(e.prototype,q),h.NEED=!0,f(["delete","has","get","set"],function(a){var b=r.prototype,c=b[a];g(b,a,function(b,d){if(k(b)&&!m(b)){this._f||(this._f=new e);var f=this._f[a](b,d);return"set"==a?this:f}return c.call(this,b,d)})}))},function(a,b,d){var e=d(202),f=d(20).getWeak,g=d(10),h=d(11),i=d(197),j=d(198),k=d(164),l=d(3),m=k(5),n=k(6),o=0,p=function(a){return a._l||(a._l=new q)},q=function(){this.a=[]},r=function(a,b){return m(a.a,function(a){return a[0]===b})};q.prototype={get:function(a){var b=r(this,a);if(b)return b[1]},has:function(a){return!!r(this,a)},set:function(a,b){var c=r(this,a);c?c[1]=b:this.a.push([a,b])},"delete":function(a){var b=n(this.a,function(b){return b[0]===a});return~b&&this.a.splice(b,1),!!~b}},a.exports={getConstructor:function(a,b,d,g){var k=a(function(a,e){i(a,k,b,"_i"),a._i=o++,a._l=c,e!=c&&j(e,d,a[g],a)});return e(k.prototype,{"delete":function(a){if(!h(a))return!1;var b=f(a);return b===!0?p(this)["delete"](a):b&&l(b,this._i)&&delete b[this._i]},has:function has(a){if(!h(a))return!1;var b=f(a);return b===!0?p(this).has(a):b&&l(b,this._i)}}),k},def:function(a,b,c){var d=f(g(b),!0);return d===!0?p(a).set(b,c):d[a._i]=c,a},ufstore:p}},function(a,b,d){var e=d(208);d(205)("WeakSet",function(a){return function WeakSet(){return a(this,arguments.length>0?arguments[0]:c)}},{add:function add(a){return e.def(this,a,!0)}},e,!1,!0)},function(a,b,c){var d=c(6),e=c(19),f=c(10),g=(c(2).Reflect||{}).apply,h=Function.apply;d(d.S+d.F*!c(5)(function(){g(function(){})}),"Reflect",{apply:function apply(a,b,c){var d=e(a),i=f(c);return g?g(d,b,i):h.call(d,b,i)}})},function(a,b,c){var d=c(6),e=c(44),f=c(19),g=c(10),h=c(11),i=c(5),j=c(75),k=(c(2).Reflect||{}).construct,l=i(function(){function F(){}return!(k(function(){},[],F)instanceof F)}),m=!i(function(){k(function(){})});d(d.S+d.F*(l||m),"Reflect",{construct:function construct(a,b){f(a),g(b);var c=arguments.length<3?a:f(arguments[2]);if(m&&!l)return k(a,b,c);if(a==c){switch(b.length){case 0:return new a;case 1:return new a(b[0]);case 2:return new a(b[0],b[1]);case 3:return new a(b[0],b[1],b[2]);case 4:return new a(b[0],b[1],b[2],b[3])}var d=[null];return d.push.apply(d,b),new(j.apply(a,d))}var i=c.prototype,n=e(h(i)?i:Object.prototype),o=Function.apply.call(a,n,b);return h(o)?o:n}})},function(a,b,c){var d=c(9),e=c(6),f=c(10),g=c(14);e(e.S+e.F*c(5)(function(){Reflect.defineProperty(d.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function defineProperty(a,b,c){f(a),b=g(b,!0),f(c);try{return d.f(a,b,c),!0}catch(e){return!1}}})},function(a,b,c){var d=c(6),e=c(49).f,f=c(10);d(d.S,"Reflect",{deleteProperty:function deleteProperty(a,b){var c=e(f(a),b);return!(c&&!c.configurable)&&delete a[b]}})},function(a,b,d){var e=d(6),f=d(10),g=function(a){this._t=f(a),this._i=0;var b,c=this._k=[];for(b in a)c.push(b)};d(136)(g,"Object",function(){var a,b=this,d=b._k;do if(b._i>=d.length)return{value:c,done:!0};while(!((a=d[b._i++])in b._t));return{value:a,done:!1}}),e(e.S,"Reflect",{enumerate:function enumerate(a){return new g(a)}})},function(a,b,d){function get(a,b){var d,h,k=arguments.length<3?a:arguments[2];return j(a)===k?a[b]:(d=e.f(a,b))?g(d,"value")?d.value:d.get!==c?d.get.call(k):c:i(h=f(a))?get(h,b,k):void 0}var e=d(49),f=d(57),g=d(3),h=d(6),i=d(11),j=d(10);h(h.S,"Reflect",{get:get})},function(a,b,c){var d=c(49),e=c(6),f=c(10);e(e.S,"Reflect",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(a,b){return d.f(f(a),b)}})},function(a,b,c){var d=c(6),e=c(57),f=c(10);d(d.S,"Reflect",{getPrototypeOf:function getPrototypeOf(a){return e(f(a))}})},function(a,b,c){var d=c(6);d(d.S,"Reflect",{has:function has(a,b){return b in a}})},function(a,b,c){var d=c(6),e=c(10),f=Object.isExtensible;d(d.S,"Reflect",{isExtensible:function isExtensible(a){return e(a),!f||f(a)}})},function(a,b,c){var d=c(6);d(d.S,"Reflect",{ownKeys:c(221)})},function(a,b,c){var d=c(48),e=c(41),f=c(10),g=c(2).Reflect;a.exports=g&&g.ownKeys||function ownKeys(a){var b=d.f(f(a)),c=e.f;return c?b.concat(c(a)):b}},function(a,b,c){var d=c(6),e=c(10),f=Object.preventExtensions;d(d.S,"Reflect",{preventExtensions:function preventExtensions(a){e(a);try{return f&&f(a),!0}catch(b){return!1}}})},function(a,b,d){function set(a,b,d){var i,m,n=arguments.length<4?a:arguments[3],o=f.f(k(a),b);if(!o){if(l(m=g(a)))return set(m,b,d,n);o=j(0)}return h(o,"value")?!(o.writable===!1||!l(n))&&(i=f.f(n,b)||j(0),i.value=d,e.f(n,b,i),!0):o.set!==c&&(o.set.call(n,d),!0)}var e=d(9),f=d(49),g=d(57),h=d(3),i=d(6),j=d(15),k=d(10),l=d(11);i(i.S,"Reflect",{set:set})},function(a,b,c){var d=c(6),e=c(71);e&&d(d.S,"Reflect",{setPrototypeOf:function setPrototypeOf(a,b){e.check(a,b);try{return e.set(a,b),!0}catch(c){return!1}}})},function(a,b,c){var d=c(6);d(d.S,"Date",{now:function(){return(new Date).getTime()}})},function(a,b,c){var d=c(6),e=c(56),f=c(14);d(d.P+d.F*c(5)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function toJSON(a){var b=e(this),c=f(b);return"number"!=typeof c||isFinite(c)?b.toISOString():null}})},function(a,b,c){var d=c(6),e=c(5),f=Date.prototype.getTime,g=function(a){return a>9?a:"0"+a};d(d.P+d.F*(e(function(){return"0385-07-25T07:06:39.999Z"!=new Date(-5e13-1).toISOString()})||!e(function(){new Date(NaN).toISOString()})),"Date",{toISOString:function toISOString(){if(!isFinite(f.call(this)))throw RangeError("Invalid time value");var a=this,b=a.getUTCFullYear(),c=a.getUTCMilliseconds(),d=b<0?"-":b>9999?"+":"";return d+("00000"+Math.abs(b)).slice(d?-6:-4)+"-"+g(a.getUTCMonth()+1)+"-"+g(a.getUTCDate())+"T"+g(a.getUTCHours())+":"+g(a.getUTCMinutes())+":"+g(a.getUTCSeconds())+"."+(c>99?c:"0"+g(c))+"Z"}})},function(a,b,c){var d=Date.prototype,e="Invalid Date",f="toString",g=d[f],h=d.getTime;new Date(NaN)+""!=e&&c(16)(d,f,function toString(){var a=h.call(this);return a===a?g.call(this):e})},function(a,b,c){var d=c(23)("toPrimitive"),e=Date.prototype;d in e||c(8)(e,d,c(230))},function(a,b,c){var d=c(10),e=c(14),f="number";a.exports=function(a){if("string"!==a&&a!==f&&"default"!==a)throw TypeError("Incorrect hint");return e(d(this),a!=f)}},function(a,b,d){var e=d(6),f=d(232),g=d(233),h=d(10),i=d(37),j=d(35),k=d(11),l=d(2).ArrayBuffer,m=d(199),n=g.ArrayBuffer,o=g.DataView,p=f.ABV&&l.isView,q=n.prototype.slice,r=f.VIEW,s="ArrayBuffer";e(e.G+e.W+e.F*(l!==n),{ArrayBuffer:n}),e(e.S+e.F*!f.CONSTR,s,{isView:function isView(a){return p&&p(a)||k(a)&&r in a}}),e(e.P+e.U+e.F*d(5)(function(){return!new n(2).slice(1,c).byteLength}),s,{slice:function slice(a,b){if(q!==c&&b===c)return q.call(h(this),a);for(var d=h(this).byteLength,e=i(a,d),f=i(b===c?d:b,d),g=new(m(this,n))(j(f-e)),k=new o(this),l=new o(g),p=0;e<f;)l.setUint8(p++,k.getUint8(e++));return g}}),d(186)(s)},function(a,b,c){for(var d,e=c(2),f=c(8),g=c(17),h=g("typed_array"),i=g("view"),j=!(!e.ArrayBuffer||!e.DataView),k=j,l=0,m=9,n="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<m;)(d=e[n[l++]])?(f(d.prototype,h,!0),f(d.prototype,i,!0)):k=!1;a.exports={ABV:j,CONSTR:k,TYPED:h,VIEW:i}},function(a,b,d){var e=d(2),f=d(4),g=d(26),h=d(232),i=d(8),j=d(202),k=d(5),l=d(197),m=d(36),n=d(35),o=d(48).f,p=d(9).f,q=d(180),r=d(22),s="ArrayBuffer",t="DataView",u="prototype",v="Wrong length!",w="Wrong index!",x=e[s],y=e[t],z=e.Math,A=e.RangeError,B=e.Infinity,C=x,D=z.abs,E=z.pow,F=z.floor,G=z.log,H=z.LN2,I="buffer",J="byteLength",K="byteOffset",L=f?"_b":I,M=f?"_l":J,N=f?"_o":K,O=function(a,b,c){var d,e,f,g=Array(c),h=8*c-b-1,i=(1<<h)-1,j=i>>1,k=23===b?E(2,-24)-E(2,-77):0,l=0,m=a<0||0===a&&1/a<0?1:0;for(a=D(a),a!=a||a===B?(e=a!=a?1:0,d=i):(d=F(G(a)/H),a*(f=E(2,-d))<1&&(d--,f*=2),a+=d+j>=1?k/f:k*E(2,1-j),a*f>=2&&(d++,f/=2),d+j>=i?(e=0,d=i):d+j>=1?(e=(a*f-1)*E(2,b),d+=j):(e=a*E(2,j-1)*E(2,b),d=0));b>=8;g[l++]=255&e,e/=256,b-=8);for(d=d<<b|e,h+=b;h>0;g[l++]=255&d,d/=256,h-=8);return g[--l]|=128*m,g},P=function(a,b,c){var d,e=8*c-b-1,f=(1<<e)-1,g=f>>1,h=e-7,i=c-1,j=a[i--],k=127&j;for(j>>=7;h>0;k=256*k+a[i],i--,h-=8);for(d=k&(1<<-h)-1,k>>=-h,h+=b;h>0;d=256*d+a[i],i--,h-=8);if(0===k)k=1-g;else{if(k===f)return d?NaN:j?-B:B;d+=E(2,b),k-=g}return(j?-1:1)*d*E(2,k-b)},Q=function(a){return a[3]<<24|a[2]<<16|a[1]<<8|a[0]},R=function(a){return[255&a]},S=function(a){return[255&a,a>>8&255]},T=function(a){return[255&a,a>>8&255,a>>16&255,a>>24&255]},U=function(a){return O(a,52,8)},V=function(a){return O(a,23,4)},W=function(a,b,c){p(a[u],b,{get:function(){return this[c]}})},X=function(a,b,c,d){var e=+c,f=m(e);if(e!=f||f<0||f+b>a[M])throw A(w);var g=a[L]._b,h=f+a[N],i=g.slice(h,h+b);return d?i:i.reverse()},Y=function(a,b,c,d,e,f){var g=+c,h=m(g);if(g!=h||h<0||h+b>a[M])throw A(w);for(var i=a[L]._b,j=h+a[N],k=d(+e),l=0;l<b;l++)i[j+l]=k[f?l:b-l-1]},Z=function(a,b){l(a,x,s);var c=+b,d=n(c);if(c!=d)throw A(v);return d};if(h.ABV){if(!k(function(){new x})||!k(function(){new x(.5)})){x=function ArrayBuffer(a){return new C(Z(this,a))};for(var $,_=x[u]=C[u],aa=o(C),ba=0;aa.length>ba;)($=aa[ba++])in x||i(x,$,C[$]);g||(_.constructor=x)}var ca=new y(new x(2)),da=y[u].setInt8;ca.setInt8(0,2147483648),ca.setInt8(1,2147483649),!ca.getInt8(0)&&ca.getInt8(1)||j(y[u],{setInt8:function setInt8(a,b){da.call(this,a,b<<24>>24)},setUint8:function setUint8(a,b){da.call(this,a,b<<24>>24)}},!0)}else x=function ArrayBuffer(a){var b=Z(this,a);this._b=q.call(Array(b),0),this[M]=b},y=function DataView(a,b,d){l(this,y,t),l(a,x,t);var e=a[M],f=m(b);if(f<0||f>e)throw A("Wrong offset!");if(d=d===c?e-f:n(d),f+d>e)throw A(v);this[L]=a,this[N]=f,this[M]=d},f&&(W(x,J,"_l"),W(y,I,"_b"),W(y,J,"_l"),W(y,K,"_o")),j(y[u],{getInt8:function getInt8(a){return X(this,1,a)[0]<<24>>24},getUint8:function getUint8(a){return X(this,1,a)[0]},getInt16:function getInt16(a){var b=X(this,2,a,arguments[1]);return(b[1]<<8|b[0])<<16>>16},getUint16:function getUint16(a){var b=X(this,2,a,arguments[1]);return b[1]<<8|b[0]},getInt32:function getInt32(a){return Q(X(this,4,a,arguments[1]))},getUint32:function getUint32(a){return Q(X(this,4,a,arguments[1]))>>>0},getFloat32:function getFloat32(a){return P(X(this,4,a,arguments[1]),23,4)},getFloat64:function getFloat64(a){return P(X(this,8,a,arguments[1]),52,8)},setInt8:function setInt8(a,b){Y(this,1,a,R,b)},setUint8:function setUint8(a,b){Y(this,1,a,R,b)},setInt16:function setInt16(a,b){Y(this,2,a,S,b,arguments[2])},setUint16:function setUint16(a,b){Y(this,2,a,S,b,arguments[2])},setInt32:function setInt32(a,b){Y(this,4,a,T,b,arguments[2])},setUint32:function setUint32(a,b){Y(this,4,a,T,b,arguments[2])},setFloat32:function setFloat32(a,b){Y(this,4,a,V,b,arguments[2])},setFloat64:function setFloat64(a,b){Y(this,8,a,U,b,arguments[2])}});r(x,s),r(y,t),i(y[u],h.VIEW,!0),b[s]=x,b[t]=y},function(a,b,c){var d=c(6);d(d.G+d.W+d.F*!c(232).ABV,{DataView:c(233).DataView})},function(a,b,c){c(236)("Int8",1,function(a){return function Int8Array(b,c,d){return a(this,b,c,d)}})},function(a,b,d){if(d(4)){var e=d(26),f=d(2),g=d(5),h=d(6),i=d(232),j=d(233),k=d(18),l=d(197),m=d(15),n=d(8),o=d(202),p=d(36),q=d(35),r=d(37),s=d(14),t=d(3),u=d(69),v=d(73),w=d(11),x=d(56),y=d(154),z=d(44),A=d(57),B=d(48).f,C=d(156),D=d(17),E=d(23),F=d(164),G=d(34),H=d(199),I=d(183),J=d(135),K=d(157),L=d(186),M=d(180),N=d(177),O=d(9),P=d(49),Q=O.f,R=P.f,S=f.RangeError,T=f.TypeError,U=f.Uint8Array,V="ArrayBuffer",W="Shared"+V,X="BYTES_PER_ELEMENT",Y="prototype",Z=Array[Y],$=j.ArrayBuffer,_=j.DataView,aa=F(0),ba=F(2),ca=F(3),da=F(4),ea=F(5),fa=F(6),ga=G(!0),ha=G(!1),ia=I.values,ja=I.keys,ka=I.entries,la=Z.lastIndexOf,ma=Z.reduce,na=Z.reduceRight,oa=Z.join,pa=Z.sort,qa=Z.slice,ra=Z.toString,sa=Z.toLocaleString,ta=E("iterator"),ua=E("toStringTag"),va=D("typed_constructor"),wa=D("def_constructor"),xa=i.CONSTR,ya=i.TYPED,za=i.VIEW,Aa="Wrong length!",Ba=F(1,function(a,b){return Ha(H(a,a[wa]),b)}),Ca=g(function(){return 1===new U(new Uint16Array([1]).buffer)[0]}),Da=!!U&&!!U[Y].set&&g(function(){new U(1).set({})}),Ea=function(a,b){if(a===c)throw T(Aa);var d=+a,e=q(a);if(b&&!u(d,e))throw S(Aa);return e},Fa=function(a,b){var c=p(a);if(c<0||c%b)throw S("Wrong offset!");return c},Ga=function(a){if(w(a)&&ya in a)return a;throw T(a+" is not a typed array!")},Ha=function(a,b){if(!(w(a)&&va in a))throw T("It is not a typed array constructor!");return new a(b)},Ia=function(a,b){return Ja(H(a,a[wa]),b)},Ja=function(a,b){for(var c=0,d=b.length,e=Ha(a,d);d>c;)e[c]=b[c++];return e},Ka=function(a,b,c){Q(a,b,{get:function(){return this._d[c]}})},La=function from(a){var b,d,e,f,g,h,i=x(a),j=arguments.length,l=j>1?arguments[1]:c,m=l!==c,n=C(i);if(n!=c&&!y(n)){for(h=n.call(i),e=[],b=0;!(g=h.next()).done;b++)e.push(g.value);i=e}for(m&&j>2&&(l=k(l,arguments[2],2)),b=0,d=q(i.length),f=Ha(this,d);d>b;b++)f[b]=m?l(i[b],b):i[b];return f},Ma=function of(){for(var a=0,b=arguments.length,c=Ha(this,b);b>a;)c[a]=arguments[a++];return c},Na=!!U&&g(function(){sa.call(new U(1))}),Oa=function toLocaleString(){return sa.apply(Na?qa.call(Ga(this)):Ga(this),arguments)},Pa={copyWithin:function copyWithin(a,b){return N.call(Ga(this),a,b,arguments.length>2?arguments[2]:c)},every:function every(a){return da(Ga(this),a,arguments.length>1?arguments[1]:c)},fill:function fill(a){return M.apply(Ga(this),arguments)},filter:function filter(a){return Ia(this,ba(Ga(this),a,arguments.length>1?arguments[1]:c))},find:function find(a){return ea(Ga(this),a,arguments.length>1?arguments[1]:c)},findIndex:function findIndex(a){return fa(Ga(this),a,arguments.length>1?arguments[1]:c)},forEach:function forEach(a){aa(Ga(this),a,arguments.length>1?arguments[1]:c)},indexOf:function indexOf(a){return ha(Ga(this),a,arguments.length>1?arguments[1]:c)},includes:function includes(a){return ga(Ga(this),a,arguments.length>1?arguments[1]:c);
-},join:function join(a){return oa.apply(Ga(this),arguments)},lastIndexOf:function lastIndexOf(a){return la.apply(Ga(this),arguments)},map:function map(a){return Ba(Ga(this),a,arguments.length>1?arguments[1]:c)},reduce:function reduce(a){return ma.apply(Ga(this),arguments)},reduceRight:function reduceRight(a){return na.apply(Ga(this),arguments)},reverse:function reverse(){for(var a,b=this,c=Ga(b).length,d=Math.floor(c/2),e=0;e<d;)a=b[e],b[e++]=b[--c],b[c]=a;return b},some:function some(a){return ca(Ga(this),a,arguments.length>1?arguments[1]:c)},sort:function sort(a){return pa.call(Ga(this),a)},subarray:function subarray(a,b){var d=Ga(this),e=d.length,f=r(a,e);return new(H(d,d[wa]))(d.buffer,d.byteOffset+f*d.BYTES_PER_ELEMENT,q((b===c?e:r(b,e))-f))}},Qa=function slice(a,b){return Ia(this,qa.call(Ga(this),a,b))},Ra=function set(a){Ga(this);var b=Fa(arguments[1],1),c=this.length,d=x(a),e=q(d.length),f=0;if(e+b>c)throw S(Aa);for(;f<e;)this[b+f]=d[f++]},Sa={entries:function entries(){return ka.call(Ga(this))},keys:function keys(){return ja.call(Ga(this))},values:function values(){return ia.call(Ga(this))}},Ta=function(a,b){return w(a)&&a[ya]&&"symbol"!=typeof b&&b in a&&String(+b)==String(b)},Ua=function getOwnPropertyDescriptor(a,b){return Ta(a,b=s(b,!0))?m(2,a[b]):R(a,b)},Va=function defineProperty(a,b,c){return!(Ta(a,b=s(b,!0))&&w(c)&&t(c,"value"))||t(c,"get")||t(c,"set")||c.configurable||t(c,"writable")&&!c.writable||t(c,"enumerable")&&!c.enumerable?Q(a,b,c):(a[b]=c.value,a)};xa||(P.f=Ua,O.f=Va),h(h.S+h.F*!xa,"Object",{getOwnPropertyDescriptor:Ua,defineProperty:Va}),g(function(){ra.call({})})&&(ra=sa=function toString(){return oa.call(this)});var Wa=o({},Pa);o(Wa,Sa),n(Wa,ta,Sa.values),o(Wa,{slice:Qa,set:Ra,constructor:function(){},toString:ra,toLocaleString:Oa}),Ka(Wa,"buffer","b"),Ka(Wa,"byteOffset","o"),Ka(Wa,"byteLength","l"),Ka(Wa,"length","e"),Q(Wa,ua,{get:function(){return this[ya]}}),a.exports=function(a,b,d,j){j=!!j;var k=a+(j?"Clamped":"")+"Array",m="Uint8Array"!=k,o="get"+a,p="set"+a,r=f[k],s=r||{},t=r&&A(r),u=!r||!i.ABV,x={},y=r&&r[Y],C=function(a,c){var d=a._d;return d.v[o](c*b+d.o,Ca)},D=function(a,c,d){var e=a._d;j&&(d=(d=Math.round(d))<0?0:d>255?255:255&d),e.v[p](c*b+e.o,d,Ca)},E=function(a,b){Q(a,b,{get:function(){return C(this,b)},set:function(a){return D(this,b,a)},enumerable:!0})};u?(r=d(function(a,d,e,f){l(a,r,k,"_d");var g,h,i,j,m=0,o=0;if(w(d)){if(!(d instanceof $||(j=v(d))==V||j==W))return ya in d?Ja(r,d):La.call(r,d);g=d,o=Fa(e,b);var p=d.byteLength;if(f===c){if(p%b)throw S(Aa);if(h=p-o,h<0)throw S(Aa)}else if(h=q(f)*b,h+o>p)throw S(Aa);i=h/b}else i=Ea(d,!0),h=i*b,g=new $(h);for(n(a,"_d",{b:g,o:o,l:h,e:i,v:new _(g)});m<i;)E(a,m++)}),y=r[Y]=z(Wa),n(y,"constructor",r)):K(function(a){new r(null),new r(a)},!0)||(r=d(function(a,d,e,f){l(a,r,k);var g;return w(d)?d instanceof $||(g=v(d))==V||g==W?f!==c?new s(d,Fa(e,b),f):e!==c?new s(d,Fa(e,b)):new s(d):ya in d?Ja(r,d):La.call(r,d):new s(Ea(d,m))}),aa(t!==Function.prototype?B(s).concat(B(t)):B(s),function(a){a in r||n(r,a,s[a])}),r[Y]=y,e||(y.constructor=r));var F=y[ta],G=!!F&&("values"==F.name||F.name==c),H=Sa.values;n(r,va,!0),n(y,ya,k),n(y,za,!0),n(y,wa,r),(j?new r(1)[ua]==k:ua in y)||Q(y,ua,{get:function(){return k}}),x[k]=r,h(h.G+h.W+h.F*(r!=s),x),h(h.S,k,{BYTES_PER_ELEMENT:b,from:La,of:Ma}),X in y||n(y,X,b),h(h.P,k,Pa),L(k),h(h.P+h.F*Da,k,{set:Ra}),h(h.P+h.F*!G,k,Sa),h(h.P+h.F*(y.toString!=ra),k,{toString:ra}),h(h.P+h.F*g(function(){new r(1).slice()}),k,{slice:Qa}),h(h.P+h.F*(g(function(){return[1,2].toLocaleString()!=new r([1,2]).toLocaleString()})||!g(function(){y.toLocaleString.call([1,2])})),k,{toLocaleString:Oa}),J[k]=G?F:H,e||G||n(y,ta,H)}}else a.exports=function(){}},function(a,b,c){c(236)("Uint8",1,function(a){return function Uint8Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Uint8",1,function(a){return function Uint8ClampedArray(b,c,d){return a(this,b,c,d)}},!0)},function(a,b,c){c(236)("Int16",2,function(a){return function Int16Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Uint16",2,function(a){return function Uint16Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Int32",4,function(a){return function Int32Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Uint32",4,function(a){return function Uint32Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Float32",4,function(a){return function Float32Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Float64",8,function(a){return function Float64Array(b,c,d){return a(this,b,c,d)}})},function(a,b,d){var e=d(6),f=d(34)(!0);e(e.P,"Array",{includes:function includes(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(178)("includes")},function(a,b,c){var d=c(6),e=c(125)(!0);d(d.P,"String",{at:function at(a){return e(this,a)}})},function(a,b,d){var e=d(6),f=d(248);e(e.P,"String",{padStart:function padStart(a){return f(this,a,arguments.length>1?arguments[1]:c,!0)}})},function(a,b,d){var e=d(35),f=d(85),g=d(33);a.exports=function(a,b,d,h){var i=String(g(a)),j=i.length,k=d===c?" ":String(d),l=e(b);if(l<=j||""==k)return i;var m=l-j,n=f.call(k,Math.ceil(m/k.length));return n.length>m&&(n=n.slice(0,m)),h?n+i:i+n}},function(a,b,d){var e=d(6),f=d(248);e(e.P,"String",{padEnd:function padEnd(a){return f(this,a,arguments.length>1?arguments[1]:c,!1)}})},function(a,b,c){c(81)("trimLeft",function(a){return function trimLeft(){return a(this,1)}},"trimStart")},function(a,b,c){c(81)("trimRight",function(a){return function trimRight(){return a(this,2)}},"trimEnd")},function(a,b,c){var d=c(6),e=c(33),f=c(35),g=c(128),h=c(188),i=RegExp.prototype,j=function(a,b){this._r=a,this._s=b};c(136)(j,"RegExp String",function next(){var a=this._r.exec(this._s);return{value:a,done:null===a}}),d(d.P,"String",{matchAll:function matchAll(a){if(e(this),!g(a))throw TypeError(a+" is not a regexp!");var b=String(this),c="flags"in i?String(a.flags):h.call(a),d=new RegExp(a.source,~c.indexOf("g")?c:"g"+c);return d.lastIndex=f(a.lastIndex),new j(d,b)}})},function(a,b,c){c(25)("asyncIterator")},function(a,b,c){c(25)("observable")},function(a,b,c){var d=c(6),e=c(221),f=c(30),g=c(49),h=c(155);d(d.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(a){for(var b,c=f(a),d=g.f,i=e(c),j={},k=0;i.length>k;)h(j,b=i[k++],d(c,b));return j}})},function(a,b,c){var d=c(6),e=c(257)(!1);d(d.S,"Object",{values:function values(a){return e(a)}})},function(a,b,c){var d=c(28),e=c(30),f=c(42).f;a.exports=function(a){return function(b){for(var c,g=e(b),h=d(g),i=h.length,j=0,k=[];i>j;)f.call(g,c=h[j++])&&k.push(a?[c,g[c]]:g[c]);return k}}},function(a,b,c){var d=c(6),e=c(257)(!0);d(d.S,"Object",{entries:function entries(a){return e(a)}})},function(a,b,c){var d=c(6),e=c(56),f=c(19),g=c(9);c(4)&&d(d.P+c(260),"Object",{__defineGetter__:function __defineGetter__(a,b){g.f(e(this),a,{get:f(b),enumerable:!0,configurable:!0})}})},function(a,b,c){a.exports=c(26)||!c(5)(function(){var a=Math.random();__defineSetter__.call(null,a,function(){}),delete c(2)[a]})},function(a,b,c){var d=c(6),e=c(56),f=c(19),g=c(9);c(4)&&d(d.P+c(260),"Object",{__defineSetter__:function __defineSetter__(a,b){g.f(e(this),a,{set:f(b),enumerable:!0,configurable:!0})}})},function(a,b,c){var d=c(6),e=c(56),f=c(14),g=c(57),h=c(49).f;c(4)&&d(d.P+c(260),"Object",{__lookupGetter__:function __lookupGetter__(a){var b,c=e(this),d=f(a,!0);do if(b=h(c,d))return b.get;while(c=g(c))}})},function(a,b,c){var d=c(6),e=c(56),f=c(14),g=c(57),h=c(49).f;c(4)&&d(d.P+c(260),"Object",{__lookupSetter__:function __lookupSetter__(a){var b,c=e(this),d=f(a,!0);do if(b=h(c,d))return b.set;while(c=g(c))}})},function(a,b,c){var d=c(6);d(d.P+d.R,"Map",{toJSON:c(265)("Map")})},function(a,b,c){var d=c(73),e=c(266);a.exports=function(a){return function toJSON(){if(d(this)!=a)throw TypeError(a+"#toJSON isn't generic");return e(this)}}},function(a,b,c){var d=c(198);a.exports=function(a,b){var c=[];return d(a,!1,c.push,c,b),c}},function(a,b,c){var d=c(6);d(d.P+d.R,"Set",{toJSON:c(265)("Set")})},function(a,b,c){var d=c(6);d(d.S,"System",{global:c(2)})},function(a,b,c){var d=c(6),e=c(32);d(d.S,"Error",{isError:function isError(a){return"Error"===e(a)}})},function(a,b,c){var d=c(6);d(d.S,"Math",{iaddh:function iaddh(a,b,c,d){var e=a>>>0,f=b>>>0,g=c>>>0;return f+(d>>>0)+((e&g|(e|g)&~(e+g>>>0))>>>31)|0}})},function(a,b,c){var d=c(6);d(d.S,"Math",{isubh:function isubh(a,b,c,d){var e=a>>>0,f=b>>>0,g=c>>>0;return f-(d>>>0)-((~e&g|~(e^g)&e-g>>>0)>>>31)|0}})},function(a,b,c){var d=c(6);d(d.S,"Math",{imulh:function imulh(a,b){var c=65535,d=+a,e=+b,f=d&c,g=e&c,h=d>>16,i=e>>16,j=(h*g>>>0)+(f*g>>>16);return h*i+(j>>16)+((f*i>>>0)+(j&c)>>16)}})},function(a,b,c){var d=c(6);d(d.S,"Math",{umulh:function umulh(a,b){var c=65535,d=+a,e=+b,f=d&c,g=e&c,h=d>>>16,i=e>>>16,j=(h*g>>>0)+(f*g>>>16);return h*i+(j>>>16)+((f*i>>>0)+(j&c)>>>16)}})},function(a,b,c){var d=c(275),e=c(10),f=d.key,g=d.set;d.exp({defineMetadata:function defineMetadata(a,b,c,d){g(a,b,e(c),f(d))}})},function(a,b,d){var e=d(203),f=d(6),g=d(21)("metadata"),h=g.store||(g.store=new(d(207))),i=function(a,b,d){var f=h.get(a);if(!f){if(!d)return c;h.set(a,f=new e)}var g=f.get(b);if(!g){if(!d)return c;f.set(b,g=new e)}return g},j=function(a,b,d){var e=i(b,d,!1);return e!==c&&e.has(a)},k=function(a,b,d){var e=i(b,d,!1);return e===c?c:e.get(a)},l=function(a,b,c,d){i(c,d,!0).set(a,b)},m=function(a,b){var c=i(a,b,!1),d=[];return c&&c.forEach(function(a,b){d.push(b)}),d},n=function(a){return a===c||"symbol"==typeof a?a:String(a)},o=function(a){f(f.S,"Reflect",a)};a.exports={store:h,map:i,has:j,get:k,set:l,keys:m,key:n,exp:o}},function(a,b,d){var e=d(275),f=d(10),g=e.key,h=e.map,i=e.store;e.exp({deleteMetadata:function deleteMetadata(a,b){var d=arguments.length<3?c:g(arguments[2]),e=h(f(b),d,!1);if(e===c||!e["delete"](a))return!1;if(e.size)return!0;var j=i.get(b);return j["delete"](d),!!j.size||i["delete"](b)}})},function(a,b,d){var e=d(275),f=d(10),g=d(57),h=e.has,i=e.get,j=e.key,k=function(a,b,d){var e=h(a,b,d);if(e)return i(a,b,d);var f=g(b);return null!==f?k(a,f,d):c};e.exp({getMetadata:function getMetadata(a,b){return k(a,f(b),arguments.length<3?c:j(arguments[2]))}})},function(a,b,d){var e=d(206),f=d(266),g=d(275),h=d(10),i=d(57),j=g.keys,k=g.key,l=function(a,b){var c=j(a,b),d=i(a);if(null===d)return c;var g=l(d,b);return g.length?c.length?f(new e(c.concat(g))):g:c};g.exp({getMetadataKeys:function getMetadataKeys(a){return l(h(a),arguments.length<2?c:k(arguments[1]))}})},function(a,b,d){var e=d(275),f=d(10),g=e.get,h=e.key;e.exp({getOwnMetadata:function getOwnMetadata(a,b){return g(a,f(b),arguments.length<3?c:h(arguments[2]))}})},function(a,b,d){var e=d(275),f=d(10),g=e.keys,h=e.key;e.exp({getOwnMetadataKeys:function getOwnMetadataKeys(a){return g(f(a),arguments.length<2?c:h(arguments[1]))}})},function(a,b,d){var e=d(275),f=d(10),g=d(57),h=e.has,i=e.key,j=function(a,b,c){var d=h(a,b,c);if(d)return!0;var e=g(b);return null!==e&&j(a,e,c)};e.exp({hasMetadata:function hasMetadata(a,b){return j(a,f(b),arguments.length<3?c:i(arguments[2]))}})},function(a,b,d){var e=d(275),f=d(10),g=e.has,h=e.key;e.exp({hasOwnMetadata:function hasOwnMetadata(a,b){return g(a,f(b),arguments.length<3?c:h(arguments[2]))}})},function(a,b,d){var e=d(275),f=d(10),g=d(19),h=e.key,i=e.set;e.exp({metadata:function metadata(a,b){return function decorator(d,e){i(a,b,(e!==c?f:g)(d),h(e))}}})},function(a,b,c){var d=c(6),e=c(201)(),f=c(2).process,g="process"==c(32)(f);d(d.G,{asap:function asap(a){var b=g&&f.domain;e(b?b.bind(a):a)}})},function(a,b,d){var e=d(6),f=d(2),g=d(7),h=d(201)(),i=d(23)("observable"),j=d(19),k=d(10),l=d(197),m=d(202),n=d(8),o=d(198),p=o.RETURN,q=function(a){return null==a?c:j(a)},r=function(a){var b=a._c;b&&(a._c=c,b())},s=function(a){return a._o===c},t=function(a){s(a)||(a._o=c,r(a))},u=function(a,b){k(a),this._c=c,this._o=a,a=new v(this);try{var d=b(a),e=d;null!=d&&("function"==typeof d.unsubscribe?d=function(){e.unsubscribe()}:j(d),this._c=d)}catch(f){return void a.error(f)}s(this)&&r(this)};u.prototype=m({},{unsubscribe:function unsubscribe(){t(this)}});var v=function(a){this._s=a};v.prototype=m({},{next:function next(a){var b=this._s;if(!s(b)){var c=b._o;try{var d=q(c.next);if(d)return d.call(c,a)}catch(e){try{t(b)}finally{throw e}}}},error:function error(a){var b=this._s;if(s(b))throw a;var d=b._o;b._o=c;try{var e=q(d.error);if(!e)throw a;a=e.call(d,a)}catch(f){try{r(b)}finally{throw f}}return r(b),a},complete:function complete(a){var b=this._s;if(!s(b)){var d=b._o;b._o=c;try{var e=q(d.complete);a=e?e.call(d,a):c}catch(f){try{r(b)}finally{throw f}}return r(b),a}}});var w=function Observable(a){l(this,w,"Observable","_f")._f=j(a)};m(w.prototype,{subscribe:function subscribe(a){return new u(a,this._f)},forEach:function forEach(a){var b=this;return new(g.Promise||f.Promise)(function(c,d){j(a);var e=b.subscribe({next:function(b){try{return a(b)}catch(c){d(c),e.unsubscribe()}},error:d,complete:c})})}}),m(w,{from:function from(a){var b="function"==typeof this?this:w,c=q(k(a)[i]);if(c){var d=k(c.call(a));return d.constructor===b?d:new b(function(a){return d.subscribe(a)})}return new b(function(b){var c=!1;return h(function(){if(!c){try{if(o(a,!1,function(a){if(b.next(a),c)return p})===p)return}catch(d){if(c)throw d;return void b.error(d)}b.complete()}}),function(){c=!0}})},of:function of(){for(var a=0,b=arguments.length,c=Array(b);a<b;)c[a]=arguments[a++];return new("function"==typeof this?this:w)(function(a){var b=!1;return h(function(){if(!b){for(var d=0;d<c.length;++d)if(a.next(c[d]),b)return;a.complete()}}),function(){b=!0}})}}),n(w.prototype,i,function(){return this}),e(e.G,{Observable:w}),d(186)("Observable")},function(a,b,c){var d=c(6),e=c(200);d(d.G+d.B,{setImmediate:e.set,clearImmediate:e.clear})},function(a,b,c){for(var d=c(183),e=c(16),f=c(2),g=c(8),h=c(135),i=c(23),j=i("iterator"),k=i("toStringTag"),l=h.Array,m=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],n=0;n<5;n++){var o,p=m[n],q=f[p],r=q&&q.prototype;if(r){r[j]||g(r,j,l),r[k]||g(r,k,p),h[p]=l;for(o in d)r[o]||e(r,o,d[o],!0)}}},function(a,b,c){var d=c(2),e=c(6),f=c(76),g=c(289),h=d.navigator,i=!!h&&/MSIE .\./.test(h.userAgent),j=function(a){return i?function(b,c){return a(f(g,[].slice.call(arguments,2),"function"==typeof b?b:Function(b)),c)}:a};e(e.G+e.B+e.F*i,{setTimeout:j(d.setTimeout),setInterval:j(d.setInterval)})},function(a,b,c){var d=c(290),e=c(76),f=c(19);a.exports=function(){for(var a=f(this),b=arguments.length,c=Array(b),g=0,h=d._,i=!1;b>g;)(c[g]=arguments[g++])===h&&(i=!0);return function(){var d,f=this,g=arguments.length,j=0,k=0;if(!i&&!g)return e(a,c,f);if(d=c.slice(),i)for(;b>j;j++)d[j]===h&&(d[j]=arguments[k++]);for(;g>k;)d.push(arguments[k++]);return e(a,d,f)}}},function(a,b,c){a.exports=c(2)},function(a,b,d){function Dict(a){var b=i(null);return a!=c&&(p(a)?o(a,!0,function(a,c){b[a]=c}):h(b,a)),b}function reduce(a,b,c){n(b);var d,e,f=t(a),g=k(f),h=g.length,i=0;if(arguments.length<3){if(!h)throw TypeError("Reduce of empty object with no initial value");d=f[g[i++]]}else d=Object(c);for(;h>i;)v(f,e=g[i++])&&(d=b(d,f[e],e,a));return d}function includes(a,b){return(b==b?m(a,b):x(a,function(a){return a!=a}))!==c}function get(a,b){if(v(a,b))return a[b]}function set(a,b,c){return u&&b in Object?l.f(a,b,g(0,c)):a[b]=c,a}function isDict(a){return s(a)&&j(a)===Dict.prototype}var e=d(18),f=d(6),g=d(15),h=d(67),i=d(44),j=d(57),k=d(28),l=d(9),m=d(27),n=d(19),o=d(198),p=d(292),q=d(136),r=d(184),s=d(11),t=d(30),u=d(4),v=d(3),w=function(a){var b=1==a,d=4==a;return function(f,g,h){var i,j,k,l=e(g,h,3),m=t(f),n=b||7==a||2==a?new("function"==typeof this?this:Dict):c;for(i in m)if(v(m,i)&&(j=m[i],k=l(j,i,f),a))if(b)n[i]=k;else if(k)switch(a){case 2:n[i]=j;break;case 3:return!0;case 5:return j;case 6:return i;case 7:n[k[0]]=k[1]}else if(d)return!1;return 3==a||d?d:n}},x=w(6),y=function(a){return function(b){return new z(b,a)}},z=function(a,b){this._t=t(a),this._a=k(a),this._i=0,this._k=b};q(z,"Dict",function(){var a,b=this,d=b._t,e=b._a,f=b._k;do if(b._i>=e.length)return b._t=c,r(1);while(!v(d,a=e[b._i++]));return"keys"==f?r(0,a):"values"==f?r(0,d[a]):r(0,[a,d[a]])}),Dict.prototype=null,f(f.G+f.F,{Dict:Dict}),f(f.S,"Dict",{keys:y("keys"),values:y("values"),entries:y("entries"),forEach:w(0),map:w(1),filter:w(2),some:w(3),every:w(4),find:w(5),findKey:x,mapPairs:w(7),reduce:reduce,keyOf:m,includes:includes,has:v,get:get,set:set,isDict:isDict})},function(a,b,d){var e=d(73),f=d(23)("iterator"),g=d(135);a.exports=d(7).isIterable=function(a){var b=Object(a);return b[f]!==c||"@@iterator"in b||g.hasOwnProperty(e(b))}},function(a,b,c){var d=c(10),e=c(156);a.exports=c(7).getIterator=function(a){var b=e(a);if("function"!=typeof b)throw TypeError(a+" is not iterable!");return d(b.call(a))}},function(a,b,c){var d=c(2),e=c(7),f=c(6),g=c(289);f(f.G+f.F,{delay:function delay(a){return new(e.Promise||d.Promise)(function(b){setTimeout(g.call(b,!0),a)})}})},function(a,b,c){var d=c(290),e=c(6);c(7)._=d._=d._||{},e(e.P+e.F,"Function",{part:c(289)})},function(a,b,c){var d=c(6);d(d.S+d.F,"Object",{isObject:c(11)})},function(a,b,c){var d=c(6);d(d.S+d.F,"Object",{classof:c(73)})},function(a,b,c){var d=c(6),e=c(299);d(d.S+d.F,"Object",{define:e})},function(a,b,c){var d=c(9),e=c(49),f=c(221),g=c(30);a.exports=function define(a,b){for(var c,h=f(g(b)),i=h.length,j=0;i>j;)d.f(a,c=h[j++],e.f(b,c));return a}},function(a,b,c){var d=c(6),e=c(299),f=c(44);d(d.S+d.F,"Object",{make:function(a,b){return e(f(a),b)}})},function(a,b,d){d(134)(Number,"Number",function(a){this._l=+a,this._i=0},function(){var a=this._i++,b=!(a<this._l);return{done:b,value:b?c:a}})},function(a,b,c){var d=c(6),e=c(303)(/[\\^$*+?.()|[\]{}]/g,"\\$&");d(d.S,"RegExp",{escape:function escape(a){return e(a)}})},function(a,b){a.exports=function(a,b){var c=b===Object(b)?function(a){return b[a]}:b;return function(b){return String(b).replace(a,c)}}},function(a,b,c){var d=c(6),e=c(303)(/[&<>"']/g,{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&apos;"});d(d.P+d.F,"String",{escapeHTML:function escapeHTML(){return e(this)}})},function(a,b,c){var d=c(6),e=c(303)(/&(?:amp|lt|gt|quot|apos);/g,{"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&apos;":"'"});d(d.P+d.F,"String",{unescapeHTML:function unescapeHTML(){return e(this)}})}]),"undefined"!=typeof module&&module.exports?module.exports=a:"function"==typeof define&&define.amd?define(function(){return a}):b.core=a}(1,1);
-//# sourceMappingURL=core.min.js.map \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/client/core.min.js.map b/node_modules/babel-runtime/node_modules/core-js/client/core.min.js.map
deleted file mode 100644
index bc3ffc583..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/client/core.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["core.js"],"names":["__e","__g","undefined","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","global","has","DESCRIPTORS","$export","redefine","META","KEY","$fails","shared","setToStringTag","uid","wks","wksExt","wksDefine","keyOf","enumKeys","isArray","anObject","toIObject","toPrimitive","createDesc","_create","gOPNExt","$GOPD","$DP","$keys","gOPD","f","dP","gOPN","$Symbol","Symbol","$JSON","JSON","_stringify","stringify","PROTOTYPE","HIDDEN","TO_PRIMITIVE","isEnum","propertyIsEnumerable","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","Object","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","get","this","value","a","it","key","D","protoDesc","wrap","tag","sym","_k","isSymbol","iterator","$defineProperty","defineProperty","enumerable","$defineProperties","defineProperties","P","keys","i","l","length","$create","create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","$getOwnPropertyNames","getOwnPropertyNames","names","result","push","$getOwnPropertySymbols","getOwnPropertySymbols","IS_OP","TypeError","arguments","$set","configurable","set","toString","name","G","W","F","symbols","split","store","S","for","keyFor","useSetter","useSimple","replacer","$replacer","args","apply","valueOf","Math","window","self","Function","hasOwnProperty","exec","e","core","hide","ctx","type","source","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","B","target","expProto","U","R","version","object","IE8_DOM_DEFINE","O","Attributes","isObject","document","is","createElement","fn","val","bitmap","writable","SRC","TO_STRING","$toString","TPL","inspectSource","safe","isFunction","join","String","prototype","px","random","concat","aFunction","that","b","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","fastKey","getWeak","onFreeze","meta","NEED","SHARED","def","TAG","stat","USE_SYMBOL","$exports","LIBRARY","charAt","getKeys","el","index","enumBugKeys","arrayIndexOf","IE_PROTO","IObject","defined","cof","slice","toLength","toIndex","IS_INCLUDES","$this","fromIndex","toInteger","min","ceil","floor","isNaN","max","gOPS","pIE","getSymbols","Array","arg","dPs","Empty","createDict","iframeDocument","iframe","lt","gt","style","display","appendChild","src","contentWindow","open","write","close","Properties","documentElement","windowNames","getWindowNames","hiddenKeys","fails","toObject","$getPrototypeOf","getPrototypeOf","constructor","$freeze","freeze","$seal","seal","$preventExtensions","$isFrozen","isFrozen","$isSealed","isSealed","$isExtensible","assign","$assign","A","K","forEach","k","T","aLen","j","x","y","setPrototypeOf","check","proto","test","buggy","__proto__","classof","ARG","tryGet","callee","bind","invoke","arraySlice","factories","construct","len","n","partArgs","bound","un","FProto","nameRE","NAME","match","HAS_INSTANCE","FunctionProto","inheritIfRequired","$trim","trim","NUMBER","$Number","Base","BROKEN_COF","TRIM","toNumber","argument","third","radix","maxCode","first","charCodeAt","NaN","code","digits","parseInt","Number","C","spaces","space","non","ltrim","RegExp","rtrim","exporter","ALIAS","FORCE","string","TYPE","replace","aNumberValue","repeat","$toFixed","toFixed","data","ERROR","ZERO","multiply","c2","divide","numToString","s","t","pow","acc","log","x2","fractionDigits","z","RangeError","msg","count","str","res","Infinity","$toPrecision","toPrecision","precision","EPSILON","_isFinite","isFinite","isInteger","number","abs","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","$parseFloat","parseFloat","$parseInt","ws","hex","log1p","sqrt","$acosh","acosh","MAX_VALUE","LN2","asinh","$asinh","$atanh","atanh","sign","cbrt","clz32","LOG2E","cosh","$expm1","expm1","EPSILON32","MAX32","MIN32","roundTiesToEven","fround","$abs","$sign","hypot","value1","value2","div","sum","larg","$imul","imul","UINT16","xn","yn","xl","yl","log10","LN10","log2","sinh","tanh","trunc","fromCharCode","$fromCodePoint","fromCodePoint","raw","callSite","tpl","$at","codePointAt","pos","context","ENDS_WITH","$endsWith","endsWith","searchString","endPosition","end","search","isRegExp","MATCH","re","INCLUDES","includes","indexOf","STARTS_WITH","$startsWith","startsWith","iterated","_t","_i","point","done","Iterators","$iterCreate","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Constructor","next","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","values","entries","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","descriptor","createHTML","anchor","quot","attribute","p1","toLowerCase","big","blink","bold","fixed","fontcolor","color","fontsize","size","italics","link","url","small","strike","sub","sup","isArrayIter","createProperty","getIterFn","iter","from","arrayLike","step","mapfn","mapping","iterFn","ret","ArrayProto","getIteratorMethod","SAFE_CLOSING","riter","skipClosing","arr","of","arrayJoin","separator","method","html","begin","klass","start","upTo","cloned","$sort","sort","comparefn","$forEach","STRICT","callbackfn","asc","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","speciesConstructor","original","SPECIES","$map","map","$filter","filter","$some","some","$every","every","$reduce","reduce","memo","isRight","reduceRight","$indexOf","NEGATIVE_ZERO","searchElement","lastIndexOf","copyWithin","to","inc","UNSCOPABLES","fill","endPos","$find","forced","find","findIndex","addToUnscopables","Arguments","$flags","$RegExp","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","proxy","ignoreCase","multiline","unicode","sticky","define","flags","$match","regexp","SYMBOL","fns","strfn","rxfn","REPLACE","$replace","searchValue","replaceValue","SEARCH","$search","SPLIT","$split","_split","$push","$SPLIT","LENGTH","LAST_INDEX","NPCG","limit","separator2","lastIndex","lastLength","output","lastLastIndex","splitLimit","separatorCopy","Internal","GenericPromiseCapability","Wrapper","anInstance","forOf","task","microtask","PROMISE","process","$Promise","isNode","empty","promise","resolve","FakePromise","PromiseRejectionEvent","then","sameConstructor","isThenable","newPromiseCapability","PromiseCapability","reject","$$resolve","$$reject","perform","error","notify","isReject","_n","chain","_c","_v","ok","_s","run","reaction","handler","fail","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","abrupt","console","isUnhandled","emit","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_d","_w","$resolve","wrapper","Promise","executor","err","onFulfilled","onRejected","catch","r","capability","all","iterable","remaining","$index","alreadyCalled","race","forbiddenField","BREAK","RETURN","defer","channel","port","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","counter","queue","ONREADYSTATECHANGE","listener","event","nextTick","port2","port1","onmessage","postMessage","addEventListener","importScripts","removeChild","setTimeout","clear","macrotask","Observer","MutationObserver","WebKitMutationObserver","head","last","flush","parent","toggle","node","createTextNode","observe","characterData","strong","Map","entry","getEntry","v","redefineAll","$iterDefine","setSpecies","SIZE","_f","getConstructor","ADDER","_l","delete","prev","setStrong","$iterDetect","common","IS_WEAK","fixMethod","add","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","Set","InternalMap","each","weak","uncaughtFrozenStore","ufstore","tmp","WeakMap","$WeakMap","createArrayMethod","$has","arrayFind","arrayFindIndex","UncaughtFrozenStore","findUncaughtFrozen","splice","WeakSet","rApply","Reflect","fApply","thisArgument","argumentsList","L","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","propertyKey","attributes","deleteProperty","desc","Enumerate","enumerate","receiver","getProto","ownKeys","V","existingDescriptor","ownDesc","setProto","now","Date","getTime","toJSON","toISOString","pv","lz","num","d","getUTCFullYear","getUTCMilliseconds","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","DateProto","INVALID_DATE","hint","$typed","buffer","ArrayBuffer","$ArrayBuffer","$DataView","DataView","$isView","ABV","isView","$slice","VIEW","ARRAY_BUFFER","CONSTR","byteLength","final","viewS","viewT","setUint8","getUint8","Typed","TYPED","TypedArrayConstructors","arrayFill","DATA_VIEW","WRONG_LENGTH","WRONG_INDEX","BaseBuffer","BUFFER","BYTE_LENGTH","BYTE_OFFSET","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","eLen","eMax","eBias","rt","unpackIEEE754","nBits","unpackI32","bytes","packI8","packI16","packI32","packF64","packF32","addGetter","internal","view","isLittleEndian","numIndex","intIndex","_b","pack","reverse","conversion","validateArrayBufferArguments","numberLength","ArrayBufferProto","$setInt8","setInt8","getInt8","byteOffset","bufferLength","offset","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","init","Int8Array","$buffer","propertyDesc","same","createArrayIncludes","ArrayIterators","arrayCopyWithin","Uint8Array","SHARED_BUFFER","BYTES_PER_ELEMENT","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayIncludes","arrayValues","arrayKeys","arrayEntries","arrayLastIndexOf","arrayReduce","arrayReduceRight","arraySort","arrayToString","arrayToLocaleString","toLocaleString","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","TYPED_ARRAY","allocate","LITTLE_ENDIAN","Uint16Array","FORCED_SET","strictToLength","SAME","toOffset","BYTES","validate","speciesFromList","list","fromList","$from","$of","TO_LOCALE_BUG","$toLocaleString","predicate","middle","subarray","$begin","$iterators","isTAIndex","$getDesc","$setDesc","$TypedArrayPrototype$","CLAMPED","ISNT_UINT8","GETTER","SETTER","TypedArray","TAC","TypedArrayPrototype","getter","o","round","addElement","$offset","$length","$len","$nativeIterator","CORRECT_ITER_NAME","$iterator","Uint8ClampedArray","Int16Array","Int32Array","Uint32Array","Float32Array","Float64Array","$includes","at","$pad","padStart","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","padEnd","trimLeft","trimRight","getFlags","RegExpProto","$RegExpStringIterator","_r","matchAll","rx","getOwnPropertyDescriptors","getDesc","$values","isEntries","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","isError","iaddh","x0","x1","y0","y1","$x0","$x1","$y0","isubh","imulh","u","$u","$v","u0","v0","u1","v1","umulh","metadata","toMetaKey","ordinaryDefineOwnMetadata","defineMetadata","metadataKey","metadataValue","targetKey","getOrCreateMetadataMap","targetMetadata","keyMetadata","ordinaryHasOwnMetadata","MetadataKey","metadataMap","ordinaryGetOwnMetadata","MetadataValue","ordinaryOwnMetadataKeys","_","deleteMetadata","ordinaryGetMetadata","hasOwn","getMetadata","ordinaryMetadataKeys","oKeys","pKeys","getMetadataKeys","getOwnMetadata","getOwnMetadataKeys","ordinaryHasMetadata","hasMetadata","hasOwnMetadata","decorator","asap","OBSERVABLE","cleanupSubscription","subscription","cleanup","subscriptionClosed","_o","closeSubscription","Subscription","observer","subscriber","SubscriptionObserver","unsubscribe","complete","$Observable","Observable","subscribe","observable","items","$task","TO_STRING_TAG","ArrayValues","collections","Collection","partial","navigator","MSIE","userAgent","time","setInterval","path","pargs","holder","Dict","dict","isIterable","findKey","isDict","createDictMethod","createDictIter","DictIterator","mapPairs","getIterator","delay","part","mixin","make","$re","escape","regExp","&","<",">","\"","'","escapeHTML","&amp;","&lt;","&gt;","&quot;","&apos;","unescapeHTML","amd"],"mappings":";;;;;;CAMC,SAASA,EAAKC,EAAKC,GACpB,cACS,SAAUC,GAKT,QAASC,qBAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,MAAOC,GAAiBD,GAAUE,OAGnC,IAAIC,GAASF,EAAiBD,IAC7BE,WACAE,GAAIJ,EACJK,QAAQ,EAUT,OANAP,GAAQE,GAAUM,KAAKH,EAAOD,QAASC,EAAQA,EAAOD,QAASH,qBAG/DI,EAAOE,QAAS,EAGTF,EAAOD,QAvBf,GAAID,KAqCJ,OATAF,qBAAoBQ,EAAIT,EAGxBC,oBAAoBS,EAAIP,EAGxBF,oBAAoBU,EAAI,GAGjBV,oBAAoB,KAK/B,SAASI,EAAQD,EAASH,GAE/BA,EAAoB,GACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,K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","file":"core.min.js"} \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/client/library.js b/node_modules/babel-runtime/node_modules/core-js/client/library.js
deleted file mode 100644
index b332abde9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/client/library.js
+++ /dev/null
@@ -1,7136 +0,0 @@
-/**
- * core-js 2.4.1
- * https://github.com/zloirock/core-js
- * License: http://rock.mit-license.org
- * © 2016 Denis Pushkarev
- */
-!function(__e, __g, undefined){
-'use strict';
-/******/ (function(modules) { // webpackBootstrap
-/******/ // The module cache
-/******/ var installedModules = {};
-
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-
-/******/ // Check if module is in cache
-/******/ if(installedModules[moduleId])
-/******/ return installedModules[moduleId].exports;
-
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = installedModules[moduleId] = {
-/******/ exports: {},
-/******/ id: moduleId,
-/******/ loaded: false
-/******/ };
-
-/******/ // Execute the module function
-/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-
-/******/ // Flag the module as loaded
-/******/ module.loaded = true;
-
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-
-
-/******/ // expose the modules object (__webpack_modules__)
-/******/ __webpack_require__.m = modules;
-
-/******/ // expose the module cache
-/******/ __webpack_require__.c = installedModules;
-
-/******/ // __webpack_public_path__
-/******/ __webpack_require__.p = "";
-
-/******/ // Load entry module and return exports
-/******/ return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(1);
- __webpack_require__(50);
- __webpack_require__(51);
- __webpack_require__(52);
- __webpack_require__(54);
- __webpack_require__(55);
- __webpack_require__(58);
- __webpack_require__(59);
- __webpack_require__(60);
- __webpack_require__(61);
- __webpack_require__(62);
- __webpack_require__(63);
- __webpack_require__(64);
- __webpack_require__(65);
- __webpack_require__(66);
- __webpack_require__(68);
- __webpack_require__(70);
- __webpack_require__(72);
- __webpack_require__(75);
- __webpack_require__(76);
- __webpack_require__(79);
- __webpack_require__(80);
- __webpack_require__(81);
- __webpack_require__(82);
- __webpack_require__(84);
- __webpack_require__(85);
- __webpack_require__(86);
- __webpack_require__(87);
- __webpack_require__(88);
- __webpack_require__(92);
- __webpack_require__(94);
- __webpack_require__(95);
- __webpack_require__(96);
- __webpack_require__(98);
- __webpack_require__(99);
- __webpack_require__(100);
- __webpack_require__(102);
- __webpack_require__(103);
- __webpack_require__(104);
- __webpack_require__(106);
- __webpack_require__(107);
- __webpack_require__(108);
- __webpack_require__(109);
- __webpack_require__(110);
- __webpack_require__(111);
- __webpack_require__(112);
- __webpack_require__(113);
- __webpack_require__(114);
- __webpack_require__(115);
- __webpack_require__(116);
- __webpack_require__(117);
- __webpack_require__(118);
- __webpack_require__(119);
- __webpack_require__(121);
- __webpack_require__(125);
- __webpack_require__(126);
- __webpack_require__(127);
- __webpack_require__(128);
- __webpack_require__(132);
- __webpack_require__(134);
- __webpack_require__(135);
- __webpack_require__(136);
- __webpack_require__(137);
- __webpack_require__(138);
- __webpack_require__(139);
- __webpack_require__(140);
- __webpack_require__(141);
- __webpack_require__(142);
- __webpack_require__(143);
- __webpack_require__(144);
- __webpack_require__(145);
- __webpack_require__(146);
- __webpack_require__(147);
- __webpack_require__(154);
- __webpack_require__(155);
- __webpack_require__(157);
- __webpack_require__(158);
- __webpack_require__(159);
- __webpack_require__(163);
- __webpack_require__(164);
- __webpack_require__(165);
- __webpack_require__(166);
- __webpack_require__(167);
- __webpack_require__(169);
- __webpack_require__(170);
- __webpack_require__(171);
- __webpack_require__(172);
- __webpack_require__(175);
- __webpack_require__(177);
- __webpack_require__(178);
- __webpack_require__(179);
- __webpack_require__(181);
- __webpack_require__(183);
- __webpack_require__(190);
- __webpack_require__(193);
- __webpack_require__(194);
- __webpack_require__(196);
- __webpack_require__(197);
- __webpack_require__(198);
- __webpack_require__(199);
- __webpack_require__(200);
- __webpack_require__(201);
- __webpack_require__(202);
- __webpack_require__(203);
- __webpack_require__(204);
- __webpack_require__(205);
- __webpack_require__(206);
- __webpack_require__(207);
- __webpack_require__(209);
- __webpack_require__(210);
- __webpack_require__(211);
- __webpack_require__(212);
- __webpack_require__(213);
- __webpack_require__(214);
- __webpack_require__(215);
- __webpack_require__(218);
- __webpack_require__(219);
- __webpack_require__(221);
- __webpack_require__(222);
- __webpack_require__(223);
- __webpack_require__(224);
- __webpack_require__(225);
- __webpack_require__(226);
- __webpack_require__(227);
- __webpack_require__(228);
- __webpack_require__(229);
- __webpack_require__(230);
- __webpack_require__(231);
- __webpack_require__(233);
- __webpack_require__(234);
- __webpack_require__(235);
- __webpack_require__(236);
- __webpack_require__(238);
- __webpack_require__(239);
- __webpack_require__(240);
- __webpack_require__(241);
- __webpack_require__(243);
- __webpack_require__(244);
- __webpack_require__(246);
- __webpack_require__(247);
- __webpack_require__(248);
- __webpack_require__(249);
- __webpack_require__(252);
- __webpack_require__(253);
- __webpack_require__(254);
- __webpack_require__(255);
- __webpack_require__(256);
- __webpack_require__(257);
- __webpack_require__(258);
- __webpack_require__(259);
- __webpack_require__(261);
- __webpack_require__(262);
- __webpack_require__(263);
- __webpack_require__(264);
- __webpack_require__(265);
- __webpack_require__(266);
- __webpack_require__(267);
- __webpack_require__(268);
- __webpack_require__(269);
- __webpack_require__(270);
- __webpack_require__(271);
- __webpack_require__(272);
- __webpack_require__(273);
- __webpack_require__(276);
- __webpack_require__(151);
- __webpack_require__(278);
- __webpack_require__(277);
- __webpack_require__(279);
- __webpack_require__(280);
- __webpack_require__(281);
- __webpack_require__(282);
- __webpack_require__(283);
- __webpack_require__(285);
- __webpack_require__(286);
- __webpack_require__(287);
- __webpack_require__(289);
- module.exports = __webpack_require__(290);
-
-
-/***/ },
-/* 1 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // ECMAScript 6 symbols shim
- var global = __webpack_require__(2)
- , has = __webpack_require__(3)
- , DESCRIPTORS = __webpack_require__(4)
- , $export = __webpack_require__(6)
- , redefine = __webpack_require__(18)
- , META = __webpack_require__(19).KEY
- , $fails = __webpack_require__(5)
- , shared = __webpack_require__(21)
- , setToStringTag = __webpack_require__(22)
- , uid = __webpack_require__(20)
- , wks = __webpack_require__(23)
- , wksExt = __webpack_require__(24)
- , wksDefine = __webpack_require__(25)
- , keyOf = __webpack_require__(27)
- , enumKeys = __webpack_require__(40)
- , isArray = __webpack_require__(43)
- , anObject = __webpack_require__(12)
- , toIObject = __webpack_require__(30)
- , toPrimitive = __webpack_require__(16)
- , createDesc = __webpack_require__(17)
- , _create = __webpack_require__(44)
- , gOPNExt = __webpack_require__(47)
- , $GOPD = __webpack_require__(49)
- , $DP = __webpack_require__(11)
- , $keys = __webpack_require__(28)
- , gOPD = $GOPD.f
- , dP = $DP.f
- , gOPN = gOPNExt.f
- , $Symbol = global.Symbol
- , $JSON = global.JSON
- , _stringify = $JSON && $JSON.stringify
- , PROTOTYPE = 'prototype'
- , HIDDEN = wks('_hidden')
- , TO_PRIMITIVE = wks('toPrimitive')
- , isEnum = {}.propertyIsEnumerable
- , SymbolRegistry = shared('symbol-registry')
- , AllSymbols = shared('symbols')
- , OPSymbols = shared('op-symbols')
- , ObjectProto = Object[PROTOTYPE]
- , USE_NATIVE = typeof $Symbol == 'function'
- , QObject = global.QObject;
- // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
- var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
-
- // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
- var setSymbolDesc = DESCRIPTORS && $fails(function(){
- return _create(dP({}, 'a', {
- get: function(){ return dP(this, 'a', {value: 7}).a; }
- })).a != 7;
- }) ? function(it, key, D){
- var protoDesc = gOPD(ObjectProto, key);
- if(protoDesc)delete ObjectProto[key];
- dP(it, key, D);
- if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);
- } : dP;
-
- var wrap = function(tag){
- var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
- sym._k = tag;
- return sym;
- };
-
- var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){
- return typeof it == 'symbol';
- } : function(it){
- return it instanceof $Symbol;
- };
-
- var $defineProperty = function defineProperty(it, key, D){
- if(it === ObjectProto)$defineProperty(OPSymbols, key, D);
- anObject(it);
- key = toPrimitive(key, true);
- anObject(D);
- if(has(AllSymbols, key)){
- if(!D.enumerable){
- if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));
- it[HIDDEN][key] = true;
- } else {
- if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
- D = _create(D, {enumerable: createDesc(0, false)});
- } return setSymbolDesc(it, key, D);
- } return dP(it, key, D);
- };
- var $defineProperties = function defineProperties(it, P){
- anObject(it);
- var keys = enumKeys(P = toIObject(P))
- , i = 0
- , l = keys.length
- , key;
- while(l > i)$defineProperty(it, key = keys[i++], P[key]);
- return it;
- };
- var $create = function create(it, P){
- return P === undefined ? _create(it) : $defineProperties(_create(it), P);
- };
- var $propertyIsEnumerable = function propertyIsEnumerable(key){
- var E = isEnum.call(this, key = toPrimitive(key, true));
- if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;
- return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
- };
- var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
- it = toIObject(it);
- key = toPrimitive(key, true);
- if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;
- var D = gOPD(it, key);
- if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
- return D;
- };
- var $getOwnPropertyNames = function getOwnPropertyNames(it){
- var names = gOPN(toIObject(it))
- , result = []
- , i = 0
- , key;
- while(names.length > i){
- if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);
- } return result;
- };
- var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
- var IS_OP = it === ObjectProto
- , names = gOPN(IS_OP ? OPSymbols : toIObject(it))
- , result = []
- , i = 0
- , key;
- while(names.length > i){
- if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);
- } return result;
- };
-
- // 19.4.1.1 Symbol([description])
- if(!USE_NATIVE){
- $Symbol = function Symbol(){
- if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');
- var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
- var $set = function(value){
- if(this === ObjectProto)$set.call(OPSymbols, value);
- if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
- setSymbolDesc(this, tag, createDesc(1, value));
- };
- if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});
- return wrap(tag);
- };
- redefine($Symbol[PROTOTYPE], 'toString', function toString(){
- return this._k;
- });
-
- $GOPD.f = $getOwnPropertyDescriptor;
- $DP.f = $defineProperty;
- __webpack_require__(48).f = gOPNExt.f = $getOwnPropertyNames;
- __webpack_require__(42).f = $propertyIsEnumerable;
- __webpack_require__(41).f = $getOwnPropertySymbols;
-
- if(DESCRIPTORS && !__webpack_require__(26)){
- redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
- }
-
- wksExt.f = function(name){
- return wrap(wks(name));
- }
- }
-
- $export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});
-
- for(var symbols = (
- // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
- 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
- ).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);
-
- for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);
-
- $export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
- // 19.4.2.1 Symbol.for(key)
- 'for': function(key){
- return has(SymbolRegistry, key += '')
- ? SymbolRegistry[key]
- : SymbolRegistry[key] = $Symbol(key);
- },
- // 19.4.2.5 Symbol.keyFor(sym)
- keyFor: function keyFor(key){
- if(isSymbol(key))return keyOf(SymbolRegistry, key);
- throw TypeError(key + ' is not a symbol!');
- },
- useSetter: function(){ setter = true; },
- useSimple: function(){ setter = false; }
- });
-
- $export($export.S + $export.F * !USE_NATIVE, 'Object', {
- // 19.1.2.2 Object.create(O [, Properties])
- create: $create,
- // 19.1.2.4 Object.defineProperty(O, P, Attributes)
- defineProperty: $defineProperty,
- // 19.1.2.3 Object.defineProperties(O, Properties)
- defineProperties: $defineProperties,
- // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
- getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
- // 19.1.2.7 Object.getOwnPropertyNames(O)
- getOwnPropertyNames: $getOwnPropertyNames,
- // 19.1.2.8 Object.getOwnPropertySymbols(O)
- getOwnPropertySymbols: $getOwnPropertySymbols
- });
-
- // 24.3.2 JSON.stringify(value [, replacer [, space]])
- $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){
- var S = $Symbol();
- // MS Edge converts symbol values to JSON as {}
- // WebKit converts symbol values to JSON as null
- // V8 throws on boxed symbols
- return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
- })), 'JSON', {
- stringify: function stringify(it){
- if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
- var args = [it]
- , i = 1
- , replacer, $replacer;
- while(arguments.length > i)args.push(arguments[i++]);
- replacer = args[1];
- if(typeof replacer == 'function')$replacer = replacer;
- if($replacer || !isArray(replacer))replacer = function(key, value){
- if($replacer)value = $replacer.call(this, key, value);
- if(!isSymbol(value))return value;
- };
- args[1] = replacer;
- return _stringify.apply($JSON, args);
- }
- });
-
- // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
- $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
- // 19.4.3.5 Symbol.prototype[@@toStringTag]
- setToStringTag($Symbol, 'Symbol');
- // 20.2.1.9 Math[@@toStringTag]
- setToStringTag(Math, 'Math', true);
- // 24.3.3 JSON[@@toStringTag]
- setToStringTag(global.JSON, 'JSON', true);
-
-/***/ },
-/* 2 */
-/***/ function(module, exports) {
-
- // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
- var global = module.exports = typeof window != 'undefined' && window.Math == Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
- if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
-
-/***/ },
-/* 3 */
-/***/ function(module, exports) {
-
- var hasOwnProperty = {}.hasOwnProperty;
- module.exports = function(it, key){
- return hasOwnProperty.call(it, key);
- };
-
-/***/ },
-/* 4 */
-/***/ function(module, exports, __webpack_require__) {
-
- // Thank's IE8 for his funny defineProperty
- module.exports = !__webpack_require__(5)(function(){
- return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
- });
-
-/***/ },
-/* 5 */
-/***/ function(module, exports) {
-
- module.exports = function(exec){
- try {
- return !!exec();
- } catch(e){
- return true;
- }
- };
-
-/***/ },
-/* 6 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , core = __webpack_require__(7)
- , ctx = __webpack_require__(8)
- , hide = __webpack_require__(10)
- , PROTOTYPE = 'prototype';
-
- var $export = function(type, name, source){
- var IS_FORCED = type & $export.F
- , IS_GLOBAL = type & $export.G
- , IS_STATIC = type & $export.S
- , IS_PROTO = type & $export.P
- , IS_BIND = type & $export.B
- , IS_WRAP = type & $export.W
- , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
- , expProto = exports[PROTOTYPE]
- , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
- , key, own, out;
- if(IS_GLOBAL)source = name;
- for(key in source){
- // contains in native
- own = !IS_FORCED && target && target[key] !== undefined;
- if(own && key in exports)continue;
- // export native or passed
- out = own ? target[key] : source[key];
- // prevent global pollution for namespaces
- exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
- // bind timers to global for call from export context
- : IS_BIND && own ? ctx(out, global)
- // wrap global constructors for prevent change them in library
- : IS_WRAP && target[key] == out ? (function(C){
- var F = function(a, b, c){
- if(this instanceof C){
- switch(arguments.length){
- case 0: return new C;
- case 1: return new C(a);
- case 2: return new C(a, b);
- } return new C(a, b, c);
- } return C.apply(this, arguments);
- };
- F[PROTOTYPE] = C[PROTOTYPE];
- return F;
- // make static versions for prototype methods
- })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
- // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
- if(IS_PROTO){
- (exports.virtual || (exports.virtual = {}))[key] = out;
- // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
- if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
- }
- }
- };
- // type bitmap
- $export.F = 1; // forced
- $export.G = 2; // global
- $export.S = 4; // static
- $export.P = 8; // proto
- $export.B = 16; // bind
- $export.W = 32; // wrap
- $export.U = 64; // safe
- $export.R = 128; // real proto method for `library`
- module.exports = $export;
-
-/***/ },
-/* 7 */
-/***/ function(module, exports) {
-
- var core = module.exports = {version: '2.4.0'};
- if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
-
-/***/ },
-/* 8 */
-/***/ function(module, exports, __webpack_require__) {
-
- // optional / simple context binding
- var aFunction = __webpack_require__(9);
- module.exports = function(fn, that, length){
- aFunction(fn);
- if(that === undefined)return fn;
- switch(length){
- case 1: return function(a){
- return fn.call(that, a);
- };
- case 2: return function(a, b){
- return fn.call(that, a, b);
- };
- case 3: return function(a, b, c){
- return fn.call(that, a, b, c);
- };
- }
- return function(/* ...args */){
- return fn.apply(that, arguments);
- };
- };
-
-/***/ },
-/* 9 */
-/***/ function(module, exports) {
-
- module.exports = function(it){
- if(typeof it != 'function')throw TypeError(it + ' is not a function!');
- return it;
- };
-
-/***/ },
-/* 10 */
-/***/ function(module, exports, __webpack_require__) {
-
- var dP = __webpack_require__(11)
- , createDesc = __webpack_require__(17);
- module.exports = __webpack_require__(4) ? function(object, key, value){
- return dP.f(object, key, createDesc(1, value));
- } : function(object, key, value){
- object[key] = value;
- return object;
- };
-
-/***/ },
-/* 11 */
-/***/ function(module, exports, __webpack_require__) {
-
- var anObject = __webpack_require__(12)
- , IE8_DOM_DEFINE = __webpack_require__(14)
- , toPrimitive = __webpack_require__(16)
- , dP = Object.defineProperty;
-
- exports.f = __webpack_require__(4) ? Object.defineProperty : function defineProperty(O, P, Attributes){
- anObject(O);
- P = toPrimitive(P, true);
- anObject(Attributes);
- if(IE8_DOM_DEFINE)try {
- return dP(O, P, Attributes);
- } catch(e){ /* empty */ }
- if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
- if('value' in Attributes)O[P] = Attributes.value;
- return O;
- };
-
-/***/ },
-/* 12 */
-/***/ function(module, exports, __webpack_require__) {
-
- var isObject = __webpack_require__(13);
- module.exports = function(it){
- if(!isObject(it))throw TypeError(it + ' is not an object!');
- return it;
- };
-
-/***/ },
-/* 13 */
-/***/ function(module, exports) {
-
- module.exports = function(it){
- return typeof it === 'object' ? it !== null : typeof it === 'function';
- };
-
-/***/ },
-/* 14 */
-/***/ function(module, exports, __webpack_require__) {
-
- module.exports = !__webpack_require__(4) && !__webpack_require__(5)(function(){
- return Object.defineProperty(__webpack_require__(15)('div'), 'a', {get: function(){ return 7; }}).a != 7;
- });
-
-/***/ },
-/* 15 */
-/***/ function(module, exports, __webpack_require__) {
-
- var isObject = __webpack_require__(13)
- , document = __webpack_require__(2).document
- // in old IE typeof document.createElement is 'object'
- , is = isObject(document) && isObject(document.createElement);
- module.exports = function(it){
- return is ? document.createElement(it) : {};
- };
-
-/***/ },
-/* 16 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 7.1.1 ToPrimitive(input [, PreferredType])
- var isObject = __webpack_require__(13);
- // instead of the ES6 spec version, we didn't implement @@toPrimitive case
- // and the second argument - flag - preferred type is a string
- module.exports = function(it, S){
- if(!isObject(it))return it;
- var fn, val;
- if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
- if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
- if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
- throw TypeError("Can't convert object to primitive value");
- };
-
-/***/ },
-/* 17 */
-/***/ function(module, exports) {
-
- module.exports = function(bitmap, value){
- return {
- enumerable : !(bitmap & 1),
- configurable: !(bitmap & 2),
- writable : !(bitmap & 4),
- value : value
- };
- };
-
-/***/ },
-/* 18 */
-/***/ function(module, exports, __webpack_require__) {
-
- module.exports = __webpack_require__(10);
-
-/***/ },
-/* 19 */
-/***/ function(module, exports, __webpack_require__) {
-
- var META = __webpack_require__(20)('meta')
- , isObject = __webpack_require__(13)
- , has = __webpack_require__(3)
- , setDesc = __webpack_require__(11).f
- , id = 0;
- var isExtensible = Object.isExtensible || function(){
- return true;
- };
- var FREEZE = !__webpack_require__(5)(function(){
- return isExtensible(Object.preventExtensions({}));
- });
- var setMeta = function(it){
- setDesc(it, META, {value: {
- i: 'O' + ++id, // object ID
- w: {} // weak collections IDs
- }});
- };
- var fastKey = function(it, create){
- // return primitive with prefix
- if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
- if(!has(it, META)){
- // can't set metadata to uncaught frozen object
- if(!isExtensible(it))return 'F';
- // not necessary to add metadata
- if(!create)return 'E';
- // add missing metadata
- setMeta(it);
- // return object ID
- } return it[META].i;
- };
- var getWeak = function(it, create){
- if(!has(it, META)){
- // can't set metadata to uncaught frozen object
- if(!isExtensible(it))return true;
- // not necessary to add metadata
- if(!create)return false;
- // add missing metadata
- setMeta(it);
- // return hash weak collections IDs
- } return it[META].w;
- };
- // add metadata on freeze-family methods calling
- var onFreeze = function(it){
- if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);
- return it;
- };
- var meta = module.exports = {
- KEY: META,
- NEED: false,
- fastKey: fastKey,
- getWeak: getWeak,
- onFreeze: onFreeze
- };
-
-/***/ },
-/* 20 */
-/***/ function(module, exports) {
-
- var id = 0
- , px = Math.random();
- module.exports = function(key){
- return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
- };
-
-/***/ },
-/* 21 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , SHARED = '__core-js_shared__'
- , store = global[SHARED] || (global[SHARED] = {});
- module.exports = function(key){
- return store[key] || (store[key] = {});
- };
-
-/***/ },
-/* 22 */
-/***/ function(module, exports, __webpack_require__) {
-
- var def = __webpack_require__(11).f
- , has = __webpack_require__(3)
- , TAG = __webpack_require__(23)('toStringTag');
-
- module.exports = function(it, tag, stat){
- if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
- };
-
-/***/ },
-/* 23 */
-/***/ function(module, exports, __webpack_require__) {
-
- var store = __webpack_require__(21)('wks')
- , uid = __webpack_require__(20)
- , Symbol = __webpack_require__(2).Symbol
- , USE_SYMBOL = typeof Symbol == 'function';
-
- var $exports = module.exports = function(name){
- return store[name] || (store[name] =
- USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
- };
-
- $exports.store = store;
-
-/***/ },
-/* 24 */
-/***/ function(module, exports, __webpack_require__) {
-
- exports.f = __webpack_require__(23);
-
-/***/ },
-/* 25 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , core = __webpack_require__(7)
- , LIBRARY = __webpack_require__(26)
- , wksExt = __webpack_require__(24)
- , defineProperty = __webpack_require__(11).f;
- module.exports = function(name){
- var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
- if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});
- };
-
-/***/ },
-/* 26 */
-/***/ function(module, exports) {
-
- module.exports = true;
-
-/***/ },
-/* 27 */
-/***/ function(module, exports, __webpack_require__) {
-
- var getKeys = __webpack_require__(28)
- , toIObject = __webpack_require__(30);
- module.exports = function(object, el){
- var O = toIObject(object)
- , keys = getKeys(O)
- , length = keys.length
- , index = 0
- , key;
- while(length > index)if(O[key = keys[index++]] === el)return key;
- };
-
-/***/ },
-/* 28 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.14 / 15.2.3.14 Object.keys(O)
- var $keys = __webpack_require__(29)
- , enumBugKeys = __webpack_require__(39);
-
- module.exports = Object.keys || function keys(O){
- return $keys(O, enumBugKeys);
- };
-
-/***/ },
-/* 29 */
-/***/ function(module, exports, __webpack_require__) {
-
- var has = __webpack_require__(3)
- , toIObject = __webpack_require__(30)
- , arrayIndexOf = __webpack_require__(34)(false)
- , IE_PROTO = __webpack_require__(38)('IE_PROTO');
-
- module.exports = function(object, names){
- var O = toIObject(object)
- , i = 0
- , result = []
- , key;
- for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
- // Don't enum bug & hidden keys
- while(names.length > i)if(has(O, key = names[i++])){
- ~arrayIndexOf(result, key) || result.push(key);
- }
- return result;
- };
-
-/***/ },
-/* 30 */
-/***/ function(module, exports, __webpack_require__) {
-
- // to indexed object, toObject with fallback for non-array-like ES3 strings
- var IObject = __webpack_require__(31)
- , defined = __webpack_require__(33);
- module.exports = function(it){
- return IObject(defined(it));
- };
-
-/***/ },
-/* 31 */
-/***/ function(module, exports, __webpack_require__) {
-
- // fallback for non-array-like ES3 and non-enumerable old V8 strings
- var cof = __webpack_require__(32);
- module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
- return cof(it) == 'String' ? it.split('') : Object(it);
- };
-
-/***/ },
-/* 32 */
-/***/ function(module, exports) {
-
- var toString = {}.toString;
-
- module.exports = function(it){
- return toString.call(it).slice(8, -1);
- };
-
-/***/ },
-/* 33 */
-/***/ function(module, exports) {
-
- // 7.2.1 RequireObjectCoercible(argument)
- module.exports = function(it){
- if(it == undefined)throw TypeError("Can't call method on " + it);
- return it;
- };
-
-/***/ },
-/* 34 */
-/***/ function(module, exports, __webpack_require__) {
-
- // false -> Array#indexOf
- // true -> Array#includes
- var toIObject = __webpack_require__(30)
- , toLength = __webpack_require__(35)
- , toIndex = __webpack_require__(37);
- module.exports = function(IS_INCLUDES){
- return function($this, el, fromIndex){
- var O = toIObject($this)
- , length = toLength(O.length)
- , index = toIndex(fromIndex, length)
- , value;
- // Array#includes uses SameValueZero equality algorithm
- if(IS_INCLUDES && el != el)while(length > index){
- value = O[index++];
- if(value != value)return true;
- // Array#toIndex ignores holes, Array#includes - not
- } else for(;length > index; index++)if(IS_INCLUDES || index in O){
- if(O[index] === el)return IS_INCLUDES || index || 0;
- } return !IS_INCLUDES && -1;
- };
- };
-
-/***/ },
-/* 35 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 7.1.15 ToLength
- var toInteger = __webpack_require__(36)
- , min = Math.min;
- module.exports = function(it){
- return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
- };
-
-/***/ },
-/* 36 */
-/***/ function(module, exports) {
-
- // 7.1.4 ToInteger
- var ceil = Math.ceil
- , floor = Math.floor;
- module.exports = function(it){
- return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
- };
-
-/***/ },
-/* 37 */
-/***/ function(module, exports, __webpack_require__) {
-
- var toInteger = __webpack_require__(36)
- , max = Math.max
- , min = Math.min;
- module.exports = function(index, length){
- index = toInteger(index);
- return index < 0 ? max(index + length, 0) : min(index, length);
- };
-
-/***/ },
-/* 38 */
-/***/ function(module, exports, __webpack_require__) {
-
- var shared = __webpack_require__(21)('keys')
- , uid = __webpack_require__(20);
- module.exports = function(key){
- return shared[key] || (shared[key] = uid(key));
- };
-
-/***/ },
-/* 39 */
-/***/ function(module, exports) {
-
- // IE 8- don't enum bug keys
- module.exports = (
- 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
- ).split(',');
-
-/***/ },
-/* 40 */
-/***/ function(module, exports, __webpack_require__) {
-
- // all enumerable object keys, includes symbols
- var getKeys = __webpack_require__(28)
- , gOPS = __webpack_require__(41)
- , pIE = __webpack_require__(42);
- module.exports = function(it){
- var result = getKeys(it)
- , getSymbols = gOPS.f;
- if(getSymbols){
- var symbols = getSymbols(it)
- , isEnum = pIE.f
- , i = 0
- , key;
- while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);
- } return result;
- };
-
-/***/ },
-/* 41 */
-/***/ function(module, exports) {
-
- exports.f = Object.getOwnPropertySymbols;
-
-/***/ },
-/* 42 */
-/***/ function(module, exports) {
-
- exports.f = {}.propertyIsEnumerable;
-
-/***/ },
-/* 43 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 7.2.2 IsArray(argument)
- var cof = __webpack_require__(32);
- module.exports = Array.isArray || function isArray(arg){
- return cof(arg) == 'Array';
- };
-
-/***/ },
-/* 44 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
- var anObject = __webpack_require__(12)
- , dPs = __webpack_require__(45)
- , enumBugKeys = __webpack_require__(39)
- , IE_PROTO = __webpack_require__(38)('IE_PROTO')
- , Empty = function(){ /* empty */ }
- , PROTOTYPE = 'prototype';
-
- // Create object with fake `null` prototype: use iframe Object with cleared prototype
- var createDict = function(){
- // Thrash, waste and sodomy: IE GC bug
- var iframe = __webpack_require__(15)('iframe')
- , i = enumBugKeys.length
- , lt = '<'
- , gt = '>'
- , iframeDocument;
- iframe.style.display = 'none';
- __webpack_require__(46).appendChild(iframe);
- iframe.src = 'javascript:'; // eslint-disable-line no-script-url
- // createDict = iframe.contentWindow.Object;
- // html.removeChild(iframe);
- iframeDocument = iframe.contentWindow.document;
- iframeDocument.open();
- iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
- iframeDocument.close();
- createDict = iframeDocument.F;
- while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];
- return createDict();
- };
-
- module.exports = Object.create || function create(O, Properties){
- var result;
- if(O !== null){
- Empty[PROTOTYPE] = anObject(O);
- result = new Empty;
- Empty[PROTOTYPE] = null;
- // add "__proto__" for Object.getPrototypeOf polyfill
- result[IE_PROTO] = O;
- } else result = createDict();
- return Properties === undefined ? result : dPs(result, Properties);
- };
-
-
-/***/ },
-/* 45 */
-/***/ function(module, exports, __webpack_require__) {
-
- var dP = __webpack_require__(11)
- , anObject = __webpack_require__(12)
- , getKeys = __webpack_require__(28);
-
- module.exports = __webpack_require__(4) ? Object.defineProperties : function defineProperties(O, Properties){
- anObject(O);
- var keys = getKeys(Properties)
- , length = keys.length
- , i = 0
- , P;
- while(length > i)dP.f(O, P = keys[i++], Properties[P]);
- return O;
- };
-
-/***/ },
-/* 46 */
-/***/ function(module, exports, __webpack_require__) {
-
- module.exports = __webpack_require__(2).document && document.documentElement;
-
-/***/ },
-/* 47 */
-/***/ function(module, exports, __webpack_require__) {
-
- // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
- var toIObject = __webpack_require__(30)
- , gOPN = __webpack_require__(48).f
- , toString = {}.toString;
-
- var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
- ? Object.getOwnPropertyNames(window) : [];
-
- var getWindowNames = function(it){
- try {
- return gOPN(it);
- } catch(e){
- return windowNames.slice();
- }
- };
-
- module.exports.f = function getOwnPropertyNames(it){
- return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
- };
-
-
-/***/ },
-/* 48 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
- var $keys = __webpack_require__(29)
- , hiddenKeys = __webpack_require__(39).concat('length', 'prototype');
-
- exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){
- return $keys(O, hiddenKeys);
- };
-
-/***/ },
-/* 49 */
-/***/ function(module, exports, __webpack_require__) {
-
- var pIE = __webpack_require__(42)
- , createDesc = __webpack_require__(17)
- , toIObject = __webpack_require__(30)
- , toPrimitive = __webpack_require__(16)
- , has = __webpack_require__(3)
- , IE8_DOM_DEFINE = __webpack_require__(14)
- , gOPD = Object.getOwnPropertyDescriptor;
-
- exports.f = __webpack_require__(4) ? gOPD : function getOwnPropertyDescriptor(O, P){
- O = toIObject(O);
- P = toPrimitive(P, true);
- if(IE8_DOM_DEFINE)try {
- return gOPD(O, P);
- } catch(e){ /* empty */ }
- if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);
- };
-
-/***/ },
-/* 50 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6);
- // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
- $export($export.S + $export.F * !__webpack_require__(4), 'Object', {defineProperty: __webpack_require__(11).f});
-
-/***/ },
-/* 51 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6);
- // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
- $export($export.S + $export.F * !__webpack_require__(4), 'Object', {defineProperties: __webpack_require__(45)});
-
-/***/ },
-/* 52 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
- var toIObject = __webpack_require__(30)
- , $getOwnPropertyDescriptor = __webpack_require__(49).f;
-
- __webpack_require__(53)('getOwnPropertyDescriptor', function(){
- return function getOwnPropertyDescriptor(it, key){
- return $getOwnPropertyDescriptor(toIObject(it), key);
- };
- });
-
-/***/ },
-/* 53 */
-/***/ function(module, exports, __webpack_require__) {
-
- // most Object methods by ES6 should accept primitives
- var $export = __webpack_require__(6)
- , core = __webpack_require__(7)
- , fails = __webpack_require__(5);
- module.exports = function(KEY, exec){
- var fn = (core.Object || {})[KEY] || Object[KEY]
- , exp = {};
- exp[KEY] = exec(fn);
- $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
- };
-
-/***/ },
-/* 54 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
- $export($export.S, 'Object', {create: __webpack_require__(44)});
-
-/***/ },
-/* 55 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.9 Object.getPrototypeOf(O)
- var toObject = __webpack_require__(56)
- , $getPrototypeOf = __webpack_require__(57);
-
- __webpack_require__(53)('getPrototypeOf', function(){
- return function getPrototypeOf(it){
- return $getPrototypeOf(toObject(it));
- };
- });
-
-/***/ },
-/* 56 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 7.1.13 ToObject(argument)
- var defined = __webpack_require__(33);
- module.exports = function(it){
- return Object(defined(it));
- };
-
-/***/ },
-/* 57 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
- var has = __webpack_require__(3)
- , toObject = __webpack_require__(56)
- , IE_PROTO = __webpack_require__(38)('IE_PROTO')
- , ObjectProto = Object.prototype;
-
- module.exports = Object.getPrototypeOf || function(O){
- O = toObject(O);
- if(has(O, IE_PROTO))return O[IE_PROTO];
- if(typeof O.constructor == 'function' && O instanceof O.constructor){
- return O.constructor.prototype;
- } return O instanceof Object ? ObjectProto : null;
- };
-
-/***/ },
-/* 58 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.14 Object.keys(O)
- var toObject = __webpack_require__(56)
- , $keys = __webpack_require__(28);
-
- __webpack_require__(53)('keys', function(){
- return function keys(it){
- return $keys(toObject(it));
- };
- });
-
-/***/ },
-/* 59 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.7 Object.getOwnPropertyNames(O)
- __webpack_require__(53)('getOwnPropertyNames', function(){
- return __webpack_require__(47).f;
- });
-
-/***/ },
-/* 60 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.5 Object.freeze(O)
- var isObject = __webpack_require__(13)
- , meta = __webpack_require__(19).onFreeze;
-
- __webpack_require__(53)('freeze', function($freeze){
- return function freeze(it){
- return $freeze && isObject(it) ? $freeze(meta(it)) : it;
- };
- });
-
-/***/ },
-/* 61 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.17 Object.seal(O)
- var isObject = __webpack_require__(13)
- , meta = __webpack_require__(19).onFreeze;
-
- __webpack_require__(53)('seal', function($seal){
- return function seal(it){
- return $seal && isObject(it) ? $seal(meta(it)) : it;
- };
- });
-
-/***/ },
-/* 62 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.15 Object.preventExtensions(O)
- var isObject = __webpack_require__(13)
- , meta = __webpack_require__(19).onFreeze;
-
- __webpack_require__(53)('preventExtensions', function($preventExtensions){
- return function preventExtensions(it){
- return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;
- };
- });
-
-/***/ },
-/* 63 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.12 Object.isFrozen(O)
- var isObject = __webpack_require__(13);
-
- __webpack_require__(53)('isFrozen', function($isFrozen){
- return function isFrozen(it){
- return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
- };
- });
-
-/***/ },
-/* 64 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.13 Object.isSealed(O)
- var isObject = __webpack_require__(13);
-
- __webpack_require__(53)('isSealed', function($isSealed){
- return function isSealed(it){
- return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
- };
- });
-
-/***/ },
-/* 65 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.11 Object.isExtensible(O)
- var isObject = __webpack_require__(13);
-
- __webpack_require__(53)('isExtensible', function($isExtensible){
- return function isExtensible(it){
- return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
- };
- });
-
-/***/ },
-/* 66 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.3.1 Object.assign(target, source)
- var $export = __webpack_require__(6);
-
- $export($export.S + $export.F, 'Object', {assign: __webpack_require__(67)});
-
-/***/ },
-/* 67 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 19.1.2.1 Object.assign(target, source, ...)
- var getKeys = __webpack_require__(28)
- , gOPS = __webpack_require__(41)
- , pIE = __webpack_require__(42)
- , toObject = __webpack_require__(56)
- , IObject = __webpack_require__(31)
- , $assign = Object.assign;
-
- // should work with symbols and should have deterministic property order (V8 bug)
- module.exports = !$assign || __webpack_require__(5)(function(){
- var A = {}
- , B = {}
- , S = Symbol()
- , K = 'abcdefghijklmnopqrst';
- A[S] = 7;
- K.split('').forEach(function(k){ B[k] = k; });
- return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
- }) ? function assign(target, source){ // eslint-disable-line no-unused-vars
- var T = toObject(target)
- , aLen = arguments.length
- , index = 1
- , getSymbols = gOPS.f
- , isEnum = pIE.f;
- while(aLen > index){
- var S = IObject(arguments[index++])
- , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
- , length = keys.length
- , j = 0
- , key;
- while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
- } return T;
- } : $assign;
-
-/***/ },
-/* 68 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.3.10 Object.is(value1, value2)
- var $export = __webpack_require__(6);
- $export($export.S, 'Object', {is: __webpack_require__(69)});
-
-/***/ },
-/* 69 */
-/***/ function(module, exports) {
-
- // 7.2.9 SameValue(x, y)
- module.exports = Object.is || function is(x, y){
- return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
- };
-
-/***/ },
-/* 70 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.3.19 Object.setPrototypeOf(O, proto)
- var $export = __webpack_require__(6);
- $export($export.S, 'Object', {setPrototypeOf: __webpack_require__(71).set});
-
-/***/ },
-/* 71 */
-/***/ function(module, exports, __webpack_require__) {
-
- // Works with __proto__ only. Old v8 can't work with null proto objects.
- /* eslint-disable no-proto */
- var isObject = __webpack_require__(13)
- , anObject = __webpack_require__(12);
- var check = function(O, proto){
- anObject(O);
- if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!");
- };
- module.exports = {
- set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
- function(test, buggy, set){
- try {
- set = __webpack_require__(8)(Function.call, __webpack_require__(49).f(Object.prototype, '__proto__').set, 2);
- set(test, []);
- buggy = !(test instanceof Array);
- } catch(e){ buggy = true; }
- return function setPrototypeOf(O, proto){
- check(O, proto);
- if(buggy)O.__proto__ = proto;
- else set(O, proto);
- return O;
- };
- }({}, false) : undefined),
- check: check
- };
-
-/***/ },
-/* 72 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
- var $export = __webpack_require__(6);
-
- $export($export.P, 'Function', {bind: __webpack_require__(73)});
-
-/***/ },
-/* 73 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var aFunction = __webpack_require__(9)
- , isObject = __webpack_require__(13)
- , invoke = __webpack_require__(74)
- , arraySlice = [].slice
- , factories = {};
-
- var construct = function(F, len, args){
- if(!(len in factories)){
- for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';
- factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
- } return factories[len](F, args);
- };
-
- module.exports = Function.bind || function bind(that /*, args... */){
- var fn = aFunction(this)
- , partArgs = arraySlice.call(arguments, 1);
- var bound = function(/* args... */){
- var args = partArgs.concat(arraySlice.call(arguments));
- return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
- };
- if(isObject(fn.prototype))bound.prototype = fn.prototype;
- return bound;
- };
-
-/***/ },
-/* 74 */
-/***/ function(module, exports) {
-
- // fast apply, http://jsperf.lnkit.com/fast-apply/5
- module.exports = function(fn, args, that){
- var un = that === undefined;
- switch(args.length){
- case 0: return un ? fn()
- : fn.call(that);
- case 1: return un ? fn(args[0])
- : fn.call(that, args[0]);
- case 2: return un ? fn(args[0], args[1])
- : fn.call(that, args[0], args[1]);
- case 3: return un ? fn(args[0], args[1], args[2])
- : fn.call(that, args[0], args[1], args[2]);
- case 4: return un ? fn(args[0], args[1], args[2], args[3])
- : fn.call(that, args[0], args[1], args[2], args[3]);
- } return fn.apply(that, args);
- };
-
-/***/ },
-/* 75 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var isObject = __webpack_require__(13)
- , getPrototypeOf = __webpack_require__(57)
- , HAS_INSTANCE = __webpack_require__(23)('hasInstance')
- , FunctionProto = Function.prototype;
- // 19.2.3.6 Function.prototype[@@hasInstance](V)
- if(!(HAS_INSTANCE in FunctionProto))__webpack_require__(11).f(FunctionProto, HAS_INSTANCE, {value: function(O){
- if(typeof this != 'function' || !isObject(O))return false;
- if(!isObject(this.prototype))return O instanceof this;
- // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
- while(O = getPrototypeOf(O))if(this.prototype === O)return true;
- return false;
- }});
-
-/***/ },
-/* 76 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toInteger = __webpack_require__(36)
- , aNumberValue = __webpack_require__(77)
- , repeat = __webpack_require__(78)
- , $toFixed = 1..toFixed
- , floor = Math.floor
- , data = [0, 0, 0, 0, 0, 0]
- , ERROR = 'Number.toFixed: incorrect invocation!'
- , ZERO = '0';
-
- var multiply = function(n, c){
- var i = -1
- , c2 = c;
- while(++i < 6){
- c2 += n * data[i];
- data[i] = c2 % 1e7;
- c2 = floor(c2 / 1e7);
- }
- };
- var divide = function(n){
- var i = 6
- , c = 0;
- while(--i >= 0){
- c += data[i];
- data[i] = floor(c / n);
- c = (c % n) * 1e7;
- }
- };
- var numToString = function(){
- var i = 6
- , s = '';
- while(--i >= 0){
- if(s !== '' || i === 0 || data[i] !== 0){
- var t = String(data[i]);
- s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;
- }
- } return s;
- };
- var pow = function(x, n, acc){
- return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
- };
- var log = function(x){
- var n = 0
- , x2 = x;
- while(x2 >= 4096){
- n += 12;
- x2 /= 4096;
- }
- while(x2 >= 2){
- n += 1;
- x2 /= 2;
- } return n;
- };
-
- $export($export.P + $export.F * (!!$toFixed && (
- 0.00008.toFixed(3) !== '0.000' ||
- 0.9.toFixed(0) !== '1' ||
- 1.255.toFixed(2) !== '1.25' ||
- 1000000000000000128..toFixed(0) !== '1000000000000000128'
- ) || !__webpack_require__(5)(function(){
- // V8 ~ Android 4.3-
- $toFixed.call({});
- })), 'Number', {
- toFixed: function toFixed(fractionDigits){
- var x = aNumberValue(this, ERROR)
- , f = toInteger(fractionDigits)
- , s = ''
- , m = ZERO
- , e, z, j, k;
- if(f < 0 || f > 20)throw RangeError(ERROR);
- if(x != x)return 'NaN';
- if(x <= -1e21 || x >= 1e21)return String(x);
- if(x < 0){
- s = '-';
- x = -x;
- }
- if(x > 1e-21){
- e = log(x * pow(2, 69, 1)) - 69;
- z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);
- z *= 0x10000000000000;
- e = 52 - e;
- if(e > 0){
- multiply(0, z);
- j = f;
- while(j >= 7){
- multiply(1e7, 0);
- j -= 7;
- }
- multiply(pow(10, j, 1), 0);
- j = e - 1;
- while(j >= 23){
- divide(1 << 23);
- j -= 23;
- }
- divide(1 << j);
- multiply(1, 1);
- divide(2);
- m = numToString();
- } else {
- multiply(0, z);
- multiply(1 << -e, 0);
- m = numToString() + repeat.call(ZERO, f);
- }
- }
- if(f > 0){
- k = m.length;
- m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));
- } else {
- m = s + m;
- } return m;
- }
- });
-
-/***/ },
-/* 77 */
-/***/ function(module, exports, __webpack_require__) {
-
- var cof = __webpack_require__(32);
- module.exports = function(it, msg){
- if(typeof it != 'number' && cof(it) != 'Number')throw TypeError(msg);
- return +it;
- };
-
-/***/ },
-/* 78 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var toInteger = __webpack_require__(36)
- , defined = __webpack_require__(33);
-
- module.exports = function repeat(count){
- var str = String(defined(this))
- , res = ''
- , n = toInteger(count);
- if(n < 0 || n == Infinity)throw RangeError("Count can't be negative");
- for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;
- return res;
- };
-
-/***/ },
-/* 79 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $fails = __webpack_require__(5)
- , aNumberValue = __webpack_require__(77)
- , $toPrecision = 1..toPrecision;
-
- $export($export.P + $export.F * ($fails(function(){
- // IE7-
- return $toPrecision.call(1, undefined) !== '1';
- }) || !$fails(function(){
- // V8 ~ Android 4.3-
- $toPrecision.call({});
- })), 'Number', {
- toPrecision: function toPrecision(precision){
- var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');
- return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);
- }
- });
-
-/***/ },
-/* 80 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.1 Number.EPSILON
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Number', {EPSILON: Math.pow(2, -52)});
-
-/***/ },
-/* 81 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.2 Number.isFinite(number)
- var $export = __webpack_require__(6)
- , _isFinite = __webpack_require__(2).isFinite;
-
- $export($export.S, 'Number', {
- isFinite: function isFinite(it){
- return typeof it == 'number' && _isFinite(it);
- }
- });
-
-/***/ },
-/* 82 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.3 Number.isInteger(number)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Number', {isInteger: __webpack_require__(83)});
-
-/***/ },
-/* 83 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.3 Number.isInteger(number)
- var isObject = __webpack_require__(13)
- , floor = Math.floor;
- module.exports = function isInteger(it){
- return !isObject(it) && isFinite(it) && floor(it) === it;
- };
-
-/***/ },
-/* 84 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.4 Number.isNaN(number)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Number', {
- isNaN: function isNaN(number){
- return number != number;
- }
- });
-
-/***/ },
-/* 85 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.5 Number.isSafeInteger(number)
- var $export = __webpack_require__(6)
- , isInteger = __webpack_require__(83)
- , abs = Math.abs;
-
- $export($export.S, 'Number', {
- isSafeInteger: function isSafeInteger(number){
- return isInteger(number) && abs(number) <= 0x1fffffffffffff;
- }
- });
-
-/***/ },
-/* 86 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.6 Number.MAX_SAFE_INTEGER
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff});
-
-/***/ },
-/* 87 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.10 Number.MIN_SAFE_INTEGER
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff});
-
-/***/ },
-/* 88 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , $parseFloat = __webpack_require__(89);
- // 20.1.2.12 Number.parseFloat(string)
- $export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', {parseFloat: $parseFloat});
-
-/***/ },
-/* 89 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $parseFloat = __webpack_require__(2).parseFloat
- , $trim = __webpack_require__(90).trim;
-
- module.exports = 1 / $parseFloat(__webpack_require__(91) + '-0') !== -Infinity ? function parseFloat(str){
- var string = $trim(String(str), 3)
- , result = $parseFloat(string);
- return result === 0 && string.charAt(0) == '-' ? -0 : result;
- } : $parseFloat;
-
-/***/ },
-/* 90 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , defined = __webpack_require__(33)
- , fails = __webpack_require__(5)
- , spaces = __webpack_require__(91)
- , space = '[' + spaces + ']'
- , non = '\u200b\u0085'
- , ltrim = RegExp('^' + space + space + '*')
- , rtrim = RegExp(space + space + '*$');
-
- var exporter = function(KEY, exec, ALIAS){
- var exp = {};
- var FORCE = fails(function(){
- return !!spaces[KEY]() || non[KEY]() != non;
- });
- var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
- if(ALIAS)exp[ALIAS] = fn;
- $export($export.P + $export.F * FORCE, 'String', exp);
- };
-
- // 1 -> String#trimLeft
- // 2 -> String#trimRight
- // 3 -> String#trim
- var trim = exporter.trim = function(string, TYPE){
- string = String(defined(string));
- if(TYPE & 1)string = string.replace(ltrim, '');
- if(TYPE & 2)string = string.replace(rtrim, '');
- return string;
- };
-
- module.exports = exporter;
-
-/***/ },
-/* 91 */
-/***/ function(module, exports) {
-
- module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
- '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
-
-/***/ },
-/* 92 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , $parseInt = __webpack_require__(93);
- // 20.1.2.13 Number.parseInt(string, radix)
- $export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', {parseInt: $parseInt});
-
-/***/ },
-/* 93 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $parseInt = __webpack_require__(2).parseInt
- , $trim = __webpack_require__(90).trim
- , ws = __webpack_require__(91)
- , hex = /^[\-+]?0[xX]/;
-
- module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix){
- var string = $trim(String(str), 3);
- return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
- } : $parseInt;
-
-/***/ },
-/* 94 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , $parseInt = __webpack_require__(93);
- // 18.2.5 parseInt(string, radix)
- $export($export.G + $export.F * (parseInt != $parseInt), {parseInt: $parseInt});
-
-/***/ },
-/* 95 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , $parseFloat = __webpack_require__(89);
- // 18.2.4 parseFloat(string)
- $export($export.G + $export.F * (parseFloat != $parseFloat), {parseFloat: $parseFloat});
-
-/***/ },
-/* 96 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.3 Math.acosh(x)
- var $export = __webpack_require__(6)
- , log1p = __webpack_require__(97)
- , sqrt = Math.sqrt
- , $acosh = Math.acosh;
-
- $export($export.S + $export.F * !($acosh
- // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
- && Math.floor($acosh(Number.MAX_VALUE)) == 710
- // Tor Browser bug: Math.acosh(Infinity) -> NaN
- && $acosh(Infinity) == Infinity
- ), 'Math', {
- acosh: function acosh(x){
- return (x = +x) < 1 ? NaN : x > 94906265.62425156
- ? Math.log(x) + Math.LN2
- : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
- }
- });
-
-/***/ },
-/* 97 */
-/***/ function(module, exports) {
-
- // 20.2.2.20 Math.log1p(x)
- module.exports = Math.log1p || function log1p(x){
- return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);
- };
-
-/***/ },
-/* 98 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.5 Math.asinh(x)
- var $export = __webpack_require__(6)
- , $asinh = Math.asinh;
-
- function asinh(x){
- return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
- }
-
- // Tor Browser bug: Math.asinh(0) -> -0
- $export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', {asinh: asinh});
-
-/***/ },
-/* 99 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.7 Math.atanh(x)
- var $export = __webpack_require__(6)
- , $atanh = Math.atanh;
-
- // Tor Browser bug: Math.atanh(-0) -> 0
- $export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {
- atanh: function atanh(x){
- return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
- }
- });
-
-/***/ },
-/* 100 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.9 Math.cbrt(x)
- var $export = __webpack_require__(6)
- , sign = __webpack_require__(101);
-
- $export($export.S, 'Math', {
- cbrt: function cbrt(x){
- return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);
- }
- });
-
-/***/ },
-/* 101 */
-/***/ function(module, exports) {
-
- // 20.2.2.28 Math.sign(x)
- module.exports = Math.sign || function sign(x){
- return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
- };
-
-/***/ },
-/* 102 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.11 Math.clz32(x)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- clz32: function clz32(x){
- return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;
- }
- });
-
-/***/ },
-/* 103 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.12 Math.cosh(x)
- var $export = __webpack_require__(6)
- , exp = Math.exp;
-
- $export($export.S, 'Math', {
- cosh: function cosh(x){
- return (exp(x = +x) + exp(-x)) / 2;
- }
- });
-
-/***/ },
-/* 104 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.14 Math.expm1(x)
- var $export = __webpack_require__(6)
- , $expm1 = __webpack_require__(105);
-
- $export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', {expm1: $expm1});
-
-/***/ },
-/* 105 */
-/***/ function(module, exports) {
-
- // 20.2.2.14 Math.expm1(x)
- var $expm1 = Math.expm1;
- module.exports = (!$expm1
- // Old FF bug
- || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168
- // Tor Browser bug
- || $expm1(-2e-17) != -2e-17
- ) ? function expm1(x){
- return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
- } : $expm1;
-
-/***/ },
-/* 106 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.16 Math.fround(x)
- var $export = __webpack_require__(6)
- , sign = __webpack_require__(101)
- , pow = Math.pow
- , EPSILON = pow(2, -52)
- , EPSILON32 = pow(2, -23)
- , MAX32 = pow(2, 127) * (2 - EPSILON32)
- , MIN32 = pow(2, -126);
-
- var roundTiesToEven = function(n){
- return n + 1 / EPSILON - 1 / EPSILON;
- };
-
-
- $export($export.S, 'Math', {
- fround: function fround(x){
- var $abs = Math.abs(x)
- , $sign = sign(x)
- , a, result;
- if($abs < MIN32)return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
- a = (1 + EPSILON32 / EPSILON) * $abs;
- result = a - (a - $abs);
- if(result > MAX32 || result != result)return $sign * Infinity;
- return $sign * result;
- }
- });
-
-/***/ },
-/* 107 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
- var $export = __webpack_require__(6)
- , abs = Math.abs;
-
- $export($export.S, 'Math', {
- hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars
- var sum = 0
- , i = 0
- , aLen = arguments.length
- , larg = 0
- , arg, div;
- while(i < aLen){
- arg = abs(arguments[i++]);
- if(larg < arg){
- div = larg / arg;
- sum = sum * div * div + 1;
- larg = arg;
- } else if(arg > 0){
- div = arg / larg;
- sum += div * div;
- } else sum += arg;
- }
- return larg === Infinity ? Infinity : larg * Math.sqrt(sum);
- }
- });
-
-/***/ },
-/* 108 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.18 Math.imul(x, y)
- var $export = __webpack_require__(6)
- , $imul = Math.imul;
-
- // some WebKit versions fails with big numbers, some has wrong arity
- $export($export.S + $export.F * __webpack_require__(5)(function(){
- return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
- }), 'Math', {
- imul: function imul(x, y){
- var UINT16 = 0xffff
- , xn = +x
- , yn = +y
- , xl = UINT16 & xn
- , yl = UINT16 & yn;
- return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);
- }
- });
-
-/***/ },
-/* 109 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.21 Math.log10(x)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- log10: function log10(x){
- return Math.log(x) / Math.LN10;
- }
- });
-
-/***/ },
-/* 110 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.20 Math.log1p(x)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {log1p: __webpack_require__(97)});
-
-/***/ },
-/* 111 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.22 Math.log2(x)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- log2: function log2(x){
- return Math.log(x) / Math.LN2;
- }
- });
-
-/***/ },
-/* 112 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.28 Math.sign(x)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {sign: __webpack_require__(101)});
-
-/***/ },
-/* 113 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.30 Math.sinh(x)
- var $export = __webpack_require__(6)
- , expm1 = __webpack_require__(105)
- , exp = Math.exp;
-
- // V8 near Chromium 38 has a problem with very small numbers
- $export($export.S + $export.F * __webpack_require__(5)(function(){
- return !Math.sinh(-2e-17) != -2e-17;
- }), 'Math', {
- sinh: function sinh(x){
- return Math.abs(x = +x) < 1
- ? (expm1(x) - expm1(-x)) / 2
- : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);
- }
- });
-
-/***/ },
-/* 114 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.33 Math.tanh(x)
- var $export = __webpack_require__(6)
- , expm1 = __webpack_require__(105)
- , exp = Math.exp;
-
- $export($export.S, 'Math', {
- tanh: function tanh(x){
- var a = expm1(x = +x)
- , b = expm1(-x);
- return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
- }
- });
-
-/***/ },
-/* 115 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.34 Math.trunc(x)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- trunc: function trunc(it){
- return (it > 0 ? Math.floor : Math.ceil)(it);
- }
- });
-
-/***/ },
-/* 116 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , toIndex = __webpack_require__(37)
- , fromCharCode = String.fromCharCode
- , $fromCodePoint = String.fromCodePoint;
-
- // length should be 1, old FF problem
- $export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
- // 21.1.2.2 String.fromCodePoint(...codePoints)
- fromCodePoint: function fromCodePoint(x){ // eslint-disable-line no-unused-vars
- var res = []
- , aLen = arguments.length
- , i = 0
- , code;
- while(aLen > i){
- code = +arguments[i++];
- if(toIndex(code, 0x10ffff) !== code)throw RangeError(code + ' is not a valid code point');
- res.push(code < 0x10000
- ? fromCharCode(code)
- : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
- );
- } return res.join('');
- }
- });
-
-/***/ },
-/* 117 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , toIObject = __webpack_require__(30)
- , toLength = __webpack_require__(35);
-
- $export($export.S, 'String', {
- // 21.1.2.4 String.raw(callSite, ...substitutions)
- raw: function raw(callSite){
- var tpl = toIObject(callSite.raw)
- , len = toLength(tpl.length)
- , aLen = arguments.length
- , res = []
- , i = 0;
- while(len > i){
- res.push(String(tpl[i++]));
- if(i < aLen)res.push(String(arguments[i]));
- } return res.join('');
- }
- });
-
-/***/ },
-/* 118 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 21.1.3.25 String.prototype.trim()
- __webpack_require__(90)('trim', function($trim){
- return function trim(){
- return $trim(this, 3);
- };
- });
-
-/***/ },
-/* 119 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $at = __webpack_require__(120)(false);
- $export($export.P, 'String', {
- // 21.1.3.3 String.prototype.codePointAt(pos)
- codePointAt: function codePointAt(pos){
- return $at(this, pos);
- }
- });
-
-/***/ },
-/* 120 */
-/***/ function(module, exports, __webpack_require__) {
-
- var toInteger = __webpack_require__(36)
- , defined = __webpack_require__(33);
- // true -> String#at
- // false -> String#codePointAt
- module.exports = function(TO_STRING){
- return function(that, pos){
- var s = String(defined(that))
- , i = toInteger(pos)
- , l = s.length
- , a, b;
- if(i < 0 || i >= l)return TO_STRING ? '' : undefined;
- a = s.charCodeAt(i);
- return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
- ? TO_STRING ? s.charAt(i) : a
- : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
- };
- };
-
-/***/ },
-/* 121 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
- 'use strict';
- var $export = __webpack_require__(6)
- , toLength = __webpack_require__(35)
- , context = __webpack_require__(122)
- , ENDS_WITH = 'endsWith'
- , $endsWith = ''[ENDS_WITH];
-
- $export($export.P + $export.F * __webpack_require__(124)(ENDS_WITH), 'String', {
- endsWith: function endsWith(searchString /*, endPosition = @length */){
- var that = context(this, searchString, ENDS_WITH)
- , endPosition = arguments.length > 1 ? arguments[1] : undefined
- , len = toLength(that.length)
- , end = endPosition === undefined ? len : Math.min(toLength(endPosition), len)
- , search = String(searchString);
- return $endsWith
- ? $endsWith.call(that, search, end)
- : that.slice(end - search.length, end) === search;
- }
- });
-
-/***/ },
-/* 122 */
-/***/ function(module, exports, __webpack_require__) {
-
- // helper for String#{startsWith, endsWith, includes}
- var isRegExp = __webpack_require__(123)
- , defined = __webpack_require__(33);
-
- module.exports = function(that, searchString, NAME){
- if(isRegExp(searchString))throw TypeError('String#' + NAME + " doesn't accept regex!");
- return String(defined(that));
- };
-
-/***/ },
-/* 123 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 7.2.8 IsRegExp(argument)
- var isObject = __webpack_require__(13)
- , cof = __webpack_require__(32)
- , MATCH = __webpack_require__(23)('match');
- module.exports = function(it){
- var isRegExp;
- return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
- };
-
-/***/ },
-/* 124 */
-/***/ function(module, exports, __webpack_require__) {
-
- var MATCH = __webpack_require__(23)('match');
- module.exports = function(KEY){
- var re = /./;
- try {
- '/./'[KEY](re);
- } catch(e){
- try {
- re[MATCH] = false;
- return !'/./'[KEY](re);
- } catch(f){ /* empty */ }
- } return true;
- };
-
-/***/ },
-/* 125 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 21.1.3.7 String.prototype.includes(searchString, position = 0)
- 'use strict';
- var $export = __webpack_require__(6)
- , context = __webpack_require__(122)
- , INCLUDES = 'includes';
-
- $export($export.P + $export.F * __webpack_require__(124)(INCLUDES), 'String', {
- includes: function includes(searchString /*, position = 0 */){
- return !!~context(this, searchString, INCLUDES)
- .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
- }
- });
-
-/***/ },
-/* 126 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6);
-
- $export($export.P, 'String', {
- // 21.1.3.13 String.prototype.repeat(count)
- repeat: __webpack_require__(78)
- });
-
-/***/ },
-/* 127 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 21.1.3.18 String.prototype.startsWith(searchString [, position ])
- 'use strict';
- var $export = __webpack_require__(6)
- , toLength = __webpack_require__(35)
- , context = __webpack_require__(122)
- , STARTS_WITH = 'startsWith'
- , $startsWith = ''[STARTS_WITH];
-
- $export($export.P + $export.F * __webpack_require__(124)(STARTS_WITH), 'String', {
- startsWith: function startsWith(searchString /*, position = 0 */){
- var that = context(this, searchString, STARTS_WITH)
- , index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length))
- , search = String(searchString);
- return $startsWith
- ? $startsWith.call(that, search, index)
- : that.slice(index, index + search.length) === search;
- }
- });
-
-/***/ },
-/* 128 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $at = __webpack_require__(120)(true);
-
- // 21.1.3.27 String.prototype[@@iterator]()
- __webpack_require__(129)(String, 'String', function(iterated){
- this._t = String(iterated); // target
- this._i = 0; // next index
- // 21.1.5.2.1 %StringIteratorPrototype%.next()
- }, function(){
- var O = this._t
- , index = this._i
- , point;
- if(index >= O.length)return {value: undefined, done: true};
- point = $at(O, index);
- this._i += point.length;
- return {value: point, done: false};
- });
-
-/***/ },
-/* 129 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var LIBRARY = __webpack_require__(26)
- , $export = __webpack_require__(6)
- , redefine = __webpack_require__(18)
- , hide = __webpack_require__(10)
- , has = __webpack_require__(3)
- , Iterators = __webpack_require__(130)
- , $iterCreate = __webpack_require__(131)
- , setToStringTag = __webpack_require__(22)
- , getPrototypeOf = __webpack_require__(57)
- , ITERATOR = __webpack_require__(23)('iterator')
- , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
- , FF_ITERATOR = '@@iterator'
- , KEYS = 'keys'
- , VALUES = 'values';
-
- var returnThis = function(){ return this; };
-
- module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){
- $iterCreate(Constructor, NAME, next);
- var getMethod = function(kind){
- if(!BUGGY && kind in proto)return proto[kind];
- switch(kind){
- case KEYS: return function keys(){ return new Constructor(this, kind); };
- case VALUES: return function values(){ return new Constructor(this, kind); };
- } return function entries(){ return new Constructor(this, kind); };
- };
- var TAG = NAME + ' Iterator'
- , DEF_VALUES = DEFAULT == VALUES
- , VALUES_BUG = false
- , proto = Base.prototype
- , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
- , $default = $native || getMethod(DEFAULT)
- , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined
- , $anyNative = NAME == 'Array' ? proto.entries || $native : $native
- , methods, key, IteratorPrototype;
- // Fix native
- if($anyNative){
- IteratorPrototype = getPrototypeOf($anyNative.call(new Base));
- if(IteratorPrototype !== Object.prototype){
- // Set @@toStringTag to native iterators
- setToStringTag(IteratorPrototype, TAG, true);
- // fix for some old engines
- if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
- }
- }
- // fix Array#{values, @@iterator}.name in V8 / FF
- if(DEF_VALUES && $native && $native.name !== VALUES){
- VALUES_BUG = true;
- $default = function values(){ return $native.call(this); };
- }
- // Define iterator
- if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
- hide(proto, ITERATOR, $default);
- }
- // Plug for library
- Iterators[NAME] = $default;
- Iterators[TAG] = returnThis;
- if(DEFAULT){
- methods = {
- values: DEF_VALUES ? $default : getMethod(VALUES),
- keys: IS_SET ? $default : getMethod(KEYS),
- entries: $entries
- };
- if(FORCED)for(key in methods){
- if(!(key in proto))redefine(proto, key, methods[key]);
- } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
- }
- return methods;
- };
-
-/***/ },
-/* 130 */
-/***/ function(module, exports) {
-
- module.exports = {};
-
-/***/ },
-/* 131 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var create = __webpack_require__(44)
- , descriptor = __webpack_require__(17)
- , setToStringTag = __webpack_require__(22)
- , IteratorPrototype = {};
-
- // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
- __webpack_require__(10)(IteratorPrototype, __webpack_require__(23)('iterator'), function(){ return this; });
-
- module.exports = function(Constructor, NAME, next){
- Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});
- setToStringTag(Constructor, NAME + ' Iterator');
- };
-
-/***/ },
-/* 132 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.2 String.prototype.anchor(name)
- __webpack_require__(133)('anchor', function(createHTML){
- return function anchor(name){
- return createHTML(this, 'a', 'name', name);
- }
- });
-
-/***/ },
-/* 133 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , fails = __webpack_require__(5)
- , defined = __webpack_require__(33)
- , quot = /"/g;
- // B.2.3.2.1 CreateHTML(string, tag, attribute, value)
- var createHTML = function(string, tag, attribute, value) {
- var S = String(defined(string))
- , p1 = '<' + tag;
- if(attribute !== '')p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
- return p1 + '>' + S + '</' + tag + '>';
- };
- module.exports = function(NAME, exec){
- var O = {};
- O[NAME] = exec(createHTML);
- $export($export.P + $export.F * fails(function(){
- var test = ''[NAME]('"');
- return test !== test.toLowerCase() || test.split('"').length > 3;
- }), 'String', O);
- };
-
-/***/ },
-/* 134 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.3 String.prototype.big()
- __webpack_require__(133)('big', function(createHTML){
- return function big(){
- return createHTML(this, 'big', '', '');
- }
- });
-
-/***/ },
-/* 135 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.4 String.prototype.blink()
- __webpack_require__(133)('blink', function(createHTML){
- return function blink(){
- return createHTML(this, 'blink', '', '');
- }
- });
-
-/***/ },
-/* 136 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.5 String.prototype.bold()
- __webpack_require__(133)('bold', function(createHTML){
- return function bold(){
- return createHTML(this, 'b', '', '');
- }
- });
-
-/***/ },
-/* 137 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.6 String.prototype.fixed()
- __webpack_require__(133)('fixed', function(createHTML){
- return function fixed(){
- return createHTML(this, 'tt', '', '');
- }
- });
-
-/***/ },
-/* 138 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.7 String.prototype.fontcolor(color)
- __webpack_require__(133)('fontcolor', function(createHTML){
- return function fontcolor(color){
- return createHTML(this, 'font', 'color', color);
- }
- });
-
-/***/ },
-/* 139 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.8 String.prototype.fontsize(size)
- __webpack_require__(133)('fontsize', function(createHTML){
- return function fontsize(size){
- return createHTML(this, 'font', 'size', size);
- }
- });
-
-/***/ },
-/* 140 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.9 String.prototype.italics()
- __webpack_require__(133)('italics', function(createHTML){
- return function italics(){
- return createHTML(this, 'i', '', '');
- }
- });
-
-/***/ },
-/* 141 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.10 String.prototype.link(url)
- __webpack_require__(133)('link', function(createHTML){
- return function link(url){
- return createHTML(this, 'a', 'href', url);
- }
- });
-
-/***/ },
-/* 142 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.11 String.prototype.small()
- __webpack_require__(133)('small', function(createHTML){
- return function small(){
- return createHTML(this, 'small', '', '');
- }
- });
-
-/***/ },
-/* 143 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.12 String.prototype.strike()
- __webpack_require__(133)('strike', function(createHTML){
- return function strike(){
- return createHTML(this, 'strike', '', '');
- }
- });
-
-/***/ },
-/* 144 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.13 String.prototype.sub()
- __webpack_require__(133)('sub', function(createHTML){
- return function sub(){
- return createHTML(this, 'sub', '', '');
- }
- });
-
-/***/ },
-/* 145 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.14 String.prototype.sup()
- __webpack_require__(133)('sup', function(createHTML){
- return function sup(){
- return createHTML(this, 'sup', '', '');
- }
- });
-
-/***/ },
-/* 146 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Array', {isArray: __webpack_require__(43)});
-
-/***/ },
-/* 147 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var ctx = __webpack_require__(8)
- , $export = __webpack_require__(6)
- , toObject = __webpack_require__(56)
- , call = __webpack_require__(148)
- , isArrayIter = __webpack_require__(149)
- , toLength = __webpack_require__(35)
- , createProperty = __webpack_require__(150)
- , getIterFn = __webpack_require__(151);
-
- $export($export.S + $export.F * !__webpack_require__(153)(function(iter){ Array.from(iter); }), 'Array', {
- // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
- from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
- var O = toObject(arrayLike)
- , C = typeof this == 'function' ? this : Array
- , aLen = arguments.length
- , mapfn = aLen > 1 ? arguments[1] : undefined
- , mapping = mapfn !== undefined
- , index = 0
- , iterFn = getIterFn(O)
- , length, result, step, iterator;
- if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
- // if object isn't iterable or it's array with default iterator - use simple case
- if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){
- for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){
- createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
- }
- } else {
- length = toLength(O.length);
- for(result = new C(length); length > index; index++){
- createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
- }
- }
- result.length = index;
- return result;
- }
- });
-
-
-/***/ },
-/* 148 */
-/***/ function(module, exports, __webpack_require__) {
-
- // call something on iterator step with safe closing on error
- var anObject = __webpack_require__(12);
- module.exports = function(iterator, fn, value, entries){
- try {
- return entries ? fn(anObject(value)[0], value[1]) : fn(value);
- // 7.4.6 IteratorClose(iterator, completion)
- } catch(e){
- var ret = iterator['return'];
- if(ret !== undefined)anObject(ret.call(iterator));
- throw e;
- }
- };
-
-/***/ },
-/* 149 */
-/***/ function(module, exports, __webpack_require__) {
-
- // check on default Array iterator
- var Iterators = __webpack_require__(130)
- , ITERATOR = __webpack_require__(23)('iterator')
- , ArrayProto = Array.prototype;
-
- module.exports = function(it){
- return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
- };
-
-/***/ },
-/* 150 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $defineProperty = __webpack_require__(11)
- , createDesc = __webpack_require__(17);
-
- module.exports = function(object, index, value){
- if(index in object)$defineProperty.f(object, index, createDesc(0, value));
- else object[index] = value;
- };
-
-/***/ },
-/* 151 */
-/***/ function(module, exports, __webpack_require__) {
-
- var classof = __webpack_require__(152)
- , ITERATOR = __webpack_require__(23)('iterator')
- , Iterators = __webpack_require__(130);
- module.exports = __webpack_require__(7).getIteratorMethod = function(it){
- if(it != undefined)return it[ITERATOR]
- || it['@@iterator']
- || Iterators[classof(it)];
- };
-
-/***/ },
-/* 152 */
-/***/ function(module, exports, __webpack_require__) {
-
- // getting tag from 19.1.3.6 Object.prototype.toString()
- var cof = __webpack_require__(32)
- , TAG = __webpack_require__(23)('toStringTag')
- // ES3 wrong here
- , ARG = cof(function(){ return arguments; }()) == 'Arguments';
-
- // fallback for IE11 Script Access Denied error
- var tryGet = function(it, key){
- try {
- return it[key];
- } catch(e){ /* empty */ }
- };
-
- module.exports = function(it){
- var O, T, B;
- return it === undefined ? 'Undefined' : it === null ? 'Null'
- // @@toStringTag case
- : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
- // builtinTag case
- : ARG ? cof(O)
- // ES3 arguments fallback
- : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
- };
-
-/***/ },
-/* 153 */
-/***/ function(module, exports, __webpack_require__) {
-
- var ITERATOR = __webpack_require__(23)('iterator')
- , SAFE_CLOSING = false;
-
- try {
- var riter = [7][ITERATOR]();
- riter['return'] = function(){ SAFE_CLOSING = true; };
- Array.from(riter, function(){ throw 2; });
- } catch(e){ /* empty */ }
-
- module.exports = function(exec, skipClosing){
- if(!skipClosing && !SAFE_CLOSING)return false;
- var safe = false;
- try {
- var arr = [7]
- , iter = arr[ITERATOR]();
- iter.next = function(){ return {done: safe = true}; };
- arr[ITERATOR] = function(){ return iter; };
- exec(arr);
- } catch(e){ /* empty */ }
- return safe;
- };
-
-/***/ },
-/* 154 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , createProperty = __webpack_require__(150);
-
- // WebKit Array.of isn't generic
- $export($export.S + $export.F * __webpack_require__(5)(function(){
- function F(){}
- return !(Array.of.call(F) instanceof F);
- }), 'Array', {
- // 22.1.2.3 Array.of( ...items)
- of: function of(/* ...args */){
- var index = 0
- , aLen = arguments.length
- , result = new (typeof this == 'function' ? this : Array)(aLen);
- while(aLen > index)createProperty(result, index, arguments[index++]);
- result.length = aLen;
- return result;
- }
- });
-
-/***/ },
-/* 155 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 22.1.3.13 Array.prototype.join(separator)
- var $export = __webpack_require__(6)
- , toIObject = __webpack_require__(30)
- , arrayJoin = [].join;
-
- // fallback for not array-like strings
- $export($export.P + $export.F * (__webpack_require__(31) != Object || !__webpack_require__(156)(arrayJoin)), 'Array', {
- join: function join(separator){
- return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);
- }
- });
-
-/***/ },
-/* 156 */
-/***/ function(module, exports, __webpack_require__) {
-
- var fails = __webpack_require__(5);
-
- module.exports = function(method, arg){
- return !!method && fails(function(){
- arg ? method.call(null, function(){}, 1) : method.call(null);
- });
- };
-
-/***/ },
-/* 157 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , html = __webpack_require__(46)
- , cof = __webpack_require__(32)
- , toIndex = __webpack_require__(37)
- , toLength = __webpack_require__(35)
- , arraySlice = [].slice;
-
- // fallback for not array-like ES3 strings and DOM objects
- $export($export.P + $export.F * __webpack_require__(5)(function(){
- if(html)arraySlice.call(html);
- }), 'Array', {
- slice: function slice(begin, end){
- var len = toLength(this.length)
- , klass = cof(this);
- end = end === undefined ? len : end;
- if(klass == 'Array')return arraySlice.call(this, begin, end);
- var start = toIndex(begin, len)
- , upTo = toIndex(end, len)
- , size = toLength(upTo - start)
- , cloned = Array(size)
- , i = 0;
- for(; i < size; i++)cloned[i] = klass == 'String'
- ? this.charAt(start + i)
- : this[start + i];
- return cloned;
- }
- });
-
-/***/ },
-/* 158 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , aFunction = __webpack_require__(9)
- , toObject = __webpack_require__(56)
- , fails = __webpack_require__(5)
- , $sort = [].sort
- , test = [1, 2, 3];
-
- $export($export.P + $export.F * (fails(function(){
- // IE8-
- test.sort(undefined);
- }) || !fails(function(){
- // V8 bug
- test.sort(null);
- // Old WebKit
- }) || !__webpack_require__(156)($sort)), 'Array', {
- // 22.1.3.25 Array.prototype.sort(comparefn)
- sort: function sort(comparefn){
- return comparefn === undefined
- ? $sort.call(toObject(this))
- : $sort.call(toObject(this), aFunction(comparefn));
- }
- });
-
-/***/ },
-/* 159 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $forEach = __webpack_require__(160)(0)
- , STRICT = __webpack_require__(156)([].forEach, true);
-
- $export($export.P + $export.F * !STRICT, 'Array', {
- // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
- forEach: function forEach(callbackfn /* , thisArg */){
- return $forEach(this, callbackfn, arguments[1]);
- }
- });
-
-/***/ },
-/* 160 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 0 -> Array#forEach
- // 1 -> Array#map
- // 2 -> Array#filter
- // 3 -> Array#some
- // 4 -> Array#every
- // 5 -> Array#find
- // 6 -> Array#findIndex
- var ctx = __webpack_require__(8)
- , IObject = __webpack_require__(31)
- , toObject = __webpack_require__(56)
- , toLength = __webpack_require__(35)
- , asc = __webpack_require__(161);
- module.exports = function(TYPE, $create){
- var IS_MAP = TYPE == 1
- , IS_FILTER = TYPE == 2
- , IS_SOME = TYPE == 3
- , IS_EVERY = TYPE == 4
- , IS_FIND_INDEX = TYPE == 6
- , NO_HOLES = TYPE == 5 || IS_FIND_INDEX
- , create = $create || asc;
- return function($this, callbackfn, that){
- var O = toObject($this)
- , self = IObject(O)
- , f = ctx(callbackfn, that, 3)
- , length = toLength(self.length)
- , index = 0
- , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined
- , val, res;
- for(;length > index; index++)if(NO_HOLES || index in self){
- val = self[index];
- res = f(val, index, O);
- if(TYPE){
- if(IS_MAP)result[index] = res; // map
- else if(res)switch(TYPE){
- case 3: return true; // some
- case 5: return val; // find
- case 6: return index; // findIndex
- case 2: result.push(val); // filter
- } else if(IS_EVERY)return false; // every
- }
- }
- return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
- };
- };
-
-/***/ },
-/* 161 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 9.4.2.3 ArraySpeciesCreate(originalArray, length)
- var speciesConstructor = __webpack_require__(162);
-
- module.exports = function(original, length){
- return new (speciesConstructor(original))(length);
- };
-
-/***/ },
-/* 162 */
-/***/ function(module, exports, __webpack_require__) {
-
- var isObject = __webpack_require__(13)
- , isArray = __webpack_require__(43)
- , SPECIES = __webpack_require__(23)('species');
-
- module.exports = function(original){
- var C;
- if(isArray(original)){
- C = original.constructor;
- // cross-realm fallback
- if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;
- if(isObject(C)){
- C = C[SPECIES];
- if(C === null)C = undefined;
- }
- } return C === undefined ? Array : C;
- };
-
-/***/ },
-/* 163 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $map = __webpack_require__(160)(1);
-
- $export($export.P + $export.F * !__webpack_require__(156)([].map, true), 'Array', {
- // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
- map: function map(callbackfn /* , thisArg */){
- return $map(this, callbackfn, arguments[1]);
- }
- });
-
-/***/ },
-/* 164 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $filter = __webpack_require__(160)(2);
-
- $export($export.P + $export.F * !__webpack_require__(156)([].filter, true), 'Array', {
- // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
- filter: function filter(callbackfn /* , thisArg */){
- return $filter(this, callbackfn, arguments[1]);
- }
- });
-
-/***/ },
-/* 165 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $some = __webpack_require__(160)(3);
-
- $export($export.P + $export.F * !__webpack_require__(156)([].some, true), 'Array', {
- // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
- some: function some(callbackfn /* , thisArg */){
- return $some(this, callbackfn, arguments[1]);
- }
- });
-
-/***/ },
-/* 166 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $every = __webpack_require__(160)(4);
-
- $export($export.P + $export.F * !__webpack_require__(156)([].every, true), 'Array', {
- // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
- every: function every(callbackfn /* , thisArg */){
- return $every(this, callbackfn, arguments[1]);
- }
- });
-
-/***/ },
-/* 167 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $reduce = __webpack_require__(168);
-
- $export($export.P + $export.F * !__webpack_require__(156)([].reduce, true), 'Array', {
- // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
- reduce: function reduce(callbackfn /* , initialValue */){
- return $reduce(this, callbackfn, arguments.length, arguments[1], false);
- }
- });
-
-/***/ },
-/* 168 */
-/***/ function(module, exports, __webpack_require__) {
-
- var aFunction = __webpack_require__(9)
- , toObject = __webpack_require__(56)
- , IObject = __webpack_require__(31)
- , toLength = __webpack_require__(35);
-
- module.exports = function(that, callbackfn, aLen, memo, isRight){
- aFunction(callbackfn);
- var O = toObject(that)
- , self = IObject(O)
- , length = toLength(O.length)
- , index = isRight ? length - 1 : 0
- , i = isRight ? -1 : 1;
- if(aLen < 2)for(;;){
- if(index in self){
- memo = self[index];
- index += i;
- break;
- }
- index += i;
- if(isRight ? index < 0 : length <= index){
- throw TypeError('Reduce of empty array with no initial value');
- }
- }
- for(;isRight ? index >= 0 : length > index; index += i)if(index in self){
- memo = callbackfn(memo, self[index], index, O);
- }
- return memo;
- };
-
-/***/ },
-/* 169 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $reduce = __webpack_require__(168);
-
- $export($export.P + $export.F * !__webpack_require__(156)([].reduceRight, true), 'Array', {
- // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
- reduceRight: function reduceRight(callbackfn /* , initialValue */){
- return $reduce(this, callbackfn, arguments.length, arguments[1], true);
- }
- });
-
-/***/ },
-/* 170 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $indexOf = __webpack_require__(34)(false)
- , $native = [].indexOf
- , NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
-
- $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(156)($native)), 'Array', {
- // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
- indexOf: function indexOf(searchElement /*, fromIndex = 0 */){
- return NEGATIVE_ZERO
- // convert -0 to +0
- ? $native.apply(this, arguments) || 0
- : $indexOf(this, searchElement, arguments[1]);
- }
- });
-
-/***/ },
-/* 171 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toIObject = __webpack_require__(30)
- , toInteger = __webpack_require__(36)
- , toLength = __webpack_require__(35)
- , $native = [].lastIndexOf
- , NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;
-
- $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(156)($native)), 'Array', {
- // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
- lastIndexOf: function lastIndexOf(searchElement /*, fromIndex = @[*-1] */){
- // convert -0 to +0
- if(NEGATIVE_ZERO)return $native.apply(this, arguments) || 0;
- var O = toIObject(this)
- , length = toLength(O.length)
- , index = length - 1;
- if(arguments.length > 1)index = Math.min(index, toInteger(arguments[1]));
- if(index < 0)index = length + index;
- for(;index >= 0; index--)if(index in O)if(O[index] === searchElement)return index || 0;
- return -1;
- }
- });
-
-/***/ },
-/* 172 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
- var $export = __webpack_require__(6);
-
- $export($export.P, 'Array', {copyWithin: __webpack_require__(173)});
-
- __webpack_require__(174)('copyWithin');
-
-/***/ },
-/* 173 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
- 'use strict';
- var toObject = __webpack_require__(56)
- , toIndex = __webpack_require__(37)
- , toLength = __webpack_require__(35);
-
- module.exports = [].copyWithin || function copyWithin(target/*= 0*/, start/*= 0, end = @length*/){
- var O = toObject(this)
- , len = toLength(O.length)
- , to = toIndex(target, len)
- , from = toIndex(start, len)
- , end = arguments.length > 2 ? arguments[2] : undefined
- , count = Math.min((end === undefined ? len : toIndex(end, len)) - from, len - to)
- , inc = 1;
- if(from < to && to < from + count){
- inc = -1;
- from += count - 1;
- to += count - 1;
- }
- while(count-- > 0){
- if(from in O)O[to] = O[from];
- else delete O[to];
- to += inc;
- from += inc;
- } return O;
- };
-
-/***/ },
-/* 174 */
-/***/ function(module, exports) {
-
- module.exports = function(){ /* empty */ };
-
-/***/ },
-/* 175 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
- var $export = __webpack_require__(6);
-
- $export($export.P, 'Array', {fill: __webpack_require__(176)});
-
- __webpack_require__(174)('fill');
-
-/***/ },
-/* 176 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
- 'use strict';
- var toObject = __webpack_require__(56)
- , toIndex = __webpack_require__(37)
- , toLength = __webpack_require__(35);
- module.exports = function fill(value /*, start = 0, end = @length */){
- var O = toObject(this)
- , length = toLength(O.length)
- , aLen = arguments.length
- , index = toIndex(aLen > 1 ? arguments[1] : undefined, length)
- , end = aLen > 2 ? arguments[2] : undefined
- , endPos = end === undefined ? length : toIndex(end, length);
- while(endPos > index)O[index++] = value;
- return O;
- };
-
-/***/ },
-/* 177 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
- var $export = __webpack_require__(6)
- , $find = __webpack_require__(160)(5)
- , KEY = 'find'
- , forced = true;
- // Shouldn't skip holes
- if(KEY in [])Array(1)[KEY](function(){ forced = false; });
- $export($export.P + $export.F * forced, 'Array', {
- find: function find(callbackfn/*, that = undefined */){
- return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- }
- });
- __webpack_require__(174)(KEY);
-
-/***/ },
-/* 178 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
- var $export = __webpack_require__(6)
- , $find = __webpack_require__(160)(6)
- , KEY = 'findIndex'
- , forced = true;
- // Shouldn't skip holes
- if(KEY in [])Array(1)[KEY](function(){ forced = false; });
- $export($export.P + $export.F * forced, 'Array', {
- findIndex: function findIndex(callbackfn/*, that = undefined */){
- return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- }
- });
- __webpack_require__(174)(KEY);
-
-/***/ },
-/* 179 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var addToUnscopables = __webpack_require__(174)
- , step = __webpack_require__(180)
- , Iterators = __webpack_require__(130)
- , toIObject = __webpack_require__(30);
-
- // 22.1.3.4 Array.prototype.entries()
- // 22.1.3.13 Array.prototype.keys()
- // 22.1.3.29 Array.prototype.values()
- // 22.1.3.30 Array.prototype[@@iterator]()
- module.exports = __webpack_require__(129)(Array, 'Array', function(iterated, kind){
- this._t = toIObject(iterated); // target
- this._i = 0; // next index
- this._k = kind; // kind
- // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
- }, function(){
- var O = this._t
- , kind = this._k
- , index = this._i++;
- if(!O || index >= O.length){
- this._t = undefined;
- return step(1);
- }
- if(kind == 'keys' )return step(0, index);
- if(kind == 'values')return step(0, O[index]);
- return step(0, [index, O[index]]);
- }, 'values');
-
- // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
- Iterators.Arguments = Iterators.Array;
-
- addToUnscopables('keys');
- addToUnscopables('values');
- addToUnscopables('entries');
-
-/***/ },
-/* 180 */
-/***/ function(module, exports) {
-
- module.exports = function(done, value){
- return {value: value, done: !!done};
- };
-
-/***/ },
-/* 181 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(182)('Array');
-
-/***/ },
-/* 182 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var global = __webpack_require__(2)
- , core = __webpack_require__(7)
- , dP = __webpack_require__(11)
- , DESCRIPTORS = __webpack_require__(4)
- , SPECIES = __webpack_require__(23)('species');
-
- module.exports = function(KEY){
- var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];
- if(DESCRIPTORS && C && !C[SPECIES])dP.f(C, SPECIES, {
- configurable: true,
- get: function(){ return this; }
- });
- };
-
-/***/ },
-/* 183 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var LIBRARY = __webpack_require__(26)
- , global = __webpack_require__(2)
- , ctx = __webpack_require__(8)
- , classof = __webpack_require__(152)
- , $export = __webpack_require__(6)
- , isObject = __webpack_require__(13)
- , aFunction = __webpack_require__(9)
- , anInstance = __webpack_require__(184)
- , forOf = __webpack_require__(185)
- , speciesConstructor = __webpack_require__(186)
- , task = __webpack_require__(187).set
- , microtask = __webpack_require__(188)()
- , PROMISE = 'Promise'
- , TypeError = global.TypeError
- , process = global.process
- , $Promise = global[PROMISE]
- , process = global.process
- , isNode = classof(process) == 'process'
- , empty = function(){ /* empty */ }
- , Internal, GenericPromiseCapability, Wrapper;
-
- var USE_NATIVE = !!function(){
- try {
- // correct subclassing with @@species support
- var promise = $Promise.resolve(1)
- , FakePromise = (promise.constructor = {})[__webpack_require__(23)('species')] = function(exec){ exec(empty, empty); };
- // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
- return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;
- } catch(e){ /* empty */ }
- }();
-
- // helpers
- var sameConstructor = function(a, b){
- // with library wrapper special case
- return a === b || a === $Promise && b === Wrapper;
- };
- var isThenable = function(it){
- var then;
- return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
- };
- var newPromiseCapability = function(C){
- return sameConstructor($Promise, C)
- ? new PromiseCapability(C)
- : new GenericPromiseCapability(C);
- };
- var PromiseCapability = GenericPromiseCapability = function(C){
- var resolve, reject;
- this.promise = new C(function($$resolve, $$reject){
- if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor');
- resolve = $$resolve;
- reject = $$reject;
- });
- this.resolve = aFunction(resolve);
- this.reject = aFunction(reject);
- };
- var perform = function(exec){
- try {
- exec();
- } catch(e){
- return {error: e};
- }
- };
- var notify = function(promise, isReject){
- if(promise._n)return;
- promise._n = true;
- var chain = promise._c;
- microtask(function(){
- var value = promise._v
- , ok = promise._s == 1
- , i = 0;
- var run = function(reaction){
- var handler = ok ? reaction.ok : reaction.fail
- , resolve = reaction.resolve
- , reject = reaction.reject
- , domain = reaction.domain
- , result, then;
- try {
- if(handler){
- if(!ok){
- if(promise._h == 2)onHandleUnhandled(promise);
- promise._h = 1;
- }
- if(handler === true)result = value;
- else {
- if(domain)domain.enter();
- result = handler(value);
- if(domain)domain.exit();
- }
- if(result === reaction.promise){
- reject(TypeError('Promise-chain cycle'));
- } else if(then = isThenable(result)){
- then.call(result, resolve, reject);
- } else resolve(result);
- } else reject(value);
- } catch(e){
- reject(e);
- }
- };
- while(chain.length > i)run(chain[i++]); // variable length - can't use forEach
- promise._c = [];
- promise._n = false;
- if(isReject && !promise._h)onUnhandled(promise);
- });
- };
- var onUnhandled = function(promise){
- task.call(global, function(){
- var value = promise._v
- , abrupt, handler, console;
- if(isUnhandled(promise)){
- abrupt = perform(function(){
- if(isNode){
- process.emit('unhandledRejection', value, promise);
- } else if(handler = global.onunhandledrejection){
- handler({promise: promise, reason: value});
- } else if((console = global.console) && console.error){
- console.error('Unhandled promise rejection', value);
- }
- });
- // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
- promise._h = isNode || isUnhandled(promise) ? 2 : 1;
- } promise._a = undefined;
- if(abrupt)throw abrupt.error;
- });
- };
- var isUnhandled = function(promise){
- if(promise._h == 1)return false;
- var chain = promise._a || promise._c
- , i = 0
- , reaction;
- while(chain.length > i){
- reaction = chain[i++];
- if(reaction.fail || !isUnhandled(reaction.promise))return false;
- } return true;
- };
- var onHandleUnhandled = function(promise){
- task.call(global, function(){
- var handler;
- if(isNode){
- process.emit('rejectionHandled', promise);
- } else if(handler = global.onrejectionhandled){
- handler({promise: promise, reason: promise._v});
- }
- });
- };
- var $reject = function(value){
- var promise = this;
- if(promise._d)return;
- promise._d = true;
- promise = promise._w || promise; // unwrap
- promise._v = value;
- promise._s = 2;
- if(!promise._a)promise._a = promise._c.slice();
- notify(promise, true);
- };
- var $resolve = function(value){
- var promise = this
- , then;
- if(promise._d)return;
- promise._d = true;
- promise = promise._w || promise; // unwrap
- try {
- if(promise === value)throw TypeError("Promise can't be resolved itself");
- if(then = isThenable(value)){
- microtask(function(){
- var wrapper = {_w: promise, _d: false}; // wrap
- try {
- then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
- } catch(e){
- $reject.call(wrapper, e);
- }
- });
- } else {
- promise._v = value;
- promise._s = 1;
- notify(promise, false);
- }
- } catch(e){
- $reject.call({_w: promise, _d: false}, e); // wrap
- }
- };
-
- // constructor polyfill
- if(!USE_NATIVE){
- // 25.4.3.1 Promise(executor)
- $Promise = function Promise(executor){
- anInstance(this, $Promise, PROMISE, '_h');
- aFunction(executor);
- Internal.call(this);
- try {
- executor(ctx($resolve, this, 1), ctx($reject, this, 1));
- } catch(err){
- $reject.call(this, err);
- }
- };
- Internal = function Promise(executor){
- this._c = []; // <- awaiting reactions
- this._a = undefined; // <- checked in isUnhandled reactions
- this._s = 0; // <- state
- this._d = false; // <- done
- this._v = undefined; // <- value
- this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
- this._n = false; // <- notify
- };
- Internal.prototype = __webpack_require__(189)($Promise.prototype, {
- // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
- then: function then(onFulfilled, onRejected){
- var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
- reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
- reaction.fail = typeof onRejected == 'function' && onRejected;
- reaction.domain = isNode ? process.domain : undefined;
- this._c.push(reaction);
- if(this._a)this._a.push(reaction);
- if(this._s)notify(this, false);
- return reaction.promise;
- },
- // 25.4.5.1 Promise.prototype.catch(onRejected)
- 'catch': function(onRejected){
- return this.then(undefined, onRejected);
- }
- });
- PromiseCapability = function(){
- var promise = new Internal;
- this.promise = promise;
- this.resolve = ctx($resolve, promise, 1);
- this.reject = ctx($reject, promise, 1);
- };
- }
-
- $export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: $Promise});
- __webpack_require__(22)($Promise, PROMISE);
- __webpack_require__(182)(PROMISE);
- Wrapper = __webpack_require__(7)[PROMISE];
-
- // statics
- $export($export.S + $export.F * !USE_NATIVE, PROMISE, {
- // 25.4.4.5 Promise.reject(r)
- reject: function reject(r){
- var capability = newPromiseCapability(this)
- , $$reject = capability.reject;
- $$reject(r);
- return capability.promise;
- }
- });
- $export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
- // 25.4.4.6 Promise.resolve(x)
- resolve: function resolve(x){
- // instanceof instead of internal slot check because we should fix it without replacement native Promise core
- if(x instanceof $Promise && sameConstructor(x.constructor, this))return x;
- var capability = newPromiseCapability(this)
- , $$resolve = capability.resolve;
- $$resolve(x);
- return capability.promise;
- }
- });
- $export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(153)(function(iter){
- $Promise.all(iter)['catch'](empty);
- })), PROMISE, {
- // 25.4.4.1 Promise.all(iterable)
- all: function all(iterable){
- var C = this
- , capability = newPromiseCapability(C)
- , resolve = capability.resolve
- , reject = capability.reject;
- var abrupt = perform(function(){
- var values = []
- , index = 0
- , remaining = 1;
- forOf(iterable, false, function(promise){
- var $index = index++
- , alreadyCalled = false;
- values.push(undefined);
- remaining++;
- C.resolve(promise).then(function(value){
- if(alreadyCalled)return;
- alreadyCalled = true;
- values[$index] = value;
- --remaining || resolve(values);
- }, reject);
- });
- --remaining || resolve(values);
- });
- if(abrupt)reject(abrupt.error);
- return capability.promise;
- },
- // 25.4.4.4 Promise.race(iterable)
- race: function race(iterable){
- var C = this
- , capability = newPromiseCapability(C)
- , reject = capability.reject;
- var abrupt = perform(function(){
- forOf(iterable, false, function(promise){
- C.resolve(promise).then(capability.resolve, reject);
- });
- });
- if(abrupt)reject(abrupt.error);
- return capability.promise;
- }
- });
-
-/***/ },
-/* 184 */
-/***/ function(module, exports) {
-
- module.exports = function(it, Constructor, name, forbiddenField){
- if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){
- throw TypeError(name + ': incorrect invocation!');
- } return it;
- };
-
-/***/ },
-/* 185 */
-/***/ function(module, exports, __webpack_require__) {
-
- var ctx = __webpack_require__(8)
- , call = __webpack_require__(148)
- , isArrayIter = __webpack_require__(149)
- , anObject = __webpack_require__(12)
- , toLength = __webpack_require__(35)
- , getIterFn = __webpack_require__(151)
- , BREAK = {}
- , RETURN = {};
- var exports = module.exports = function(iterable, entries, fn, that, ITERATOR){
- var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)
- , f = ctx(fn, that, entries ? 2 : 1)
- , index = 0
- , length, step, iterator, result;
- if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');
- // fast case for arrays with default iterator
- if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){
- result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
- if(result === BREAK || result === RETURN)return result;
- } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
- result = call(iterator, f, step.value, entries);
- if(result === BREAK || result === RETURN)return result;
- }
- };
- exports.BREAK = BREAK;
- exports.RETURN = RETURN;
-
-/***/ },
-/* 186 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 7.3.20 SpeciesConstructor(O, defaultConstructor)
- var anObject = __webpack_require__(12)
- , aFunction = __webpack_require__(9)
- , SPECIES = __webpack_require__(23)('species');
- module.exports = function(O, D){
- var C = anObject(O).constructor, S;
- return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
- };
-
-/***/ },
-/* 187 */
-/***/ function(module, exports, __webpack_require__) {
-
- var ctx = __webpack_require__(8)
- , invoke = __webpack_require__(74)
- , html = __webpack_require__(46)
- , cel = __webpack_require__(15)
- , global = __webpack_require__(2)
- , process = global.process
- , setTask = global.setImmediate
- , clearTask = global.clearImmediate
- , MessageChannel = global.MessageChannel
- , counter = 0
- , queue = {}
- , ONREADYSTATECHANGE = 'onreadystatechange'
- , defer, channel, port;
- var run = function(){
- var id = +this;
- if(queue.hasOwnProperty(id)){
- var fn = queue[id];
- delete queue[id];
- fn();
- }
- };
- var listener = function(event){
- run.call(event.data);
- };
- // Node.js 0.9+ & IE10+ has setImmediate, otherwise:
- if(!setTask || !clearTask){
- setTask = function setImmediate(fn){
- var args = [], i = 1;
- while(arguments.length > i)args.push(arguments[i++]);
- queue[++counter] = function(){
- invoke(typeof fn == 'function' ? fn : Function(fn), args);
- };
- defer(counter);
- return counter;
- };
- clearTask = function clearImmediate(id){
- delete queue[id];
- };
- // Node.js 0.8-
- if(__webpack_require__(32)(process) == 'process'){
- defer = function(id){
- process.nextTick(ctx(run, id, 1));
- };
- // Browsers with MessageChannel, includes WebWorkers
- } else if(MessageChannel){
- channel = new MessageChannel;
- port = channel.port2;
- channel.port1.onmessage = listener;
- defer = ctx(port.postMessage, port, 1);
- // Browsers with postMessage, skip WebWorkers
- // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
- } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){
- defer = function(id){
- global.postMessage(id + '', '*');
- };
- global.addEventListener('message', listener, false);
- // IE8-
- } else if(ONREADYSTATECHANGE in cel('script')){
- defer = function(id){
- html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){
- html.removeChild(this);
- run.call(id);
- };
- };
- // Rest old browsers
- } else {
- defer = function(id){
- setTimeout(ctx(run, id, 1), 0);
- };
- }
- }
- module.exports = {
- set: setTask,
- clear: clearTask
- };
-
-/***/ },
-/* 188 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , macrotask = __webpack_require__(187).set
- , Observer = global.MutationObserver || global.WebKitMutationObserver
- , process = global.process
- , Promise = global.Promise
- , isNode = __webpack_require__(32)(process) == 'process';
-
- module.exports = function(){
- var head, last, notify;
-
- var flush = function(){
- var parent, fn;
- if(isNode && (parent = process.domain))parent.exit();
- while(head){
- fn = head.fn;
- head = head.next;
- try {
- fn();
- } catch(e){
- if(head)notify();
- else last = undefined;
- throw e;
- }
- } last = undefined;
- if(parent)parent.enter();
- };
-
- // Node.js
- if(isNode){
- notify = function(){
- process.nextTick(flush);
- };
- // browsers with MutationObserver
- } else if(Observer){
- var toggle = true
- , node = document.createTextNode('');
- new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new
- notify = function(){
- node.data = toggle = !toggle;
- };
- // environments with maybe non-completely correct, but existent Promise
- } else if(Promise && Promise.resolve){
- var promise = Promise.resolve();
- notify = function(){
- promise.then(flush);
- };
- // for other environments - macrotask based on:
- // - setImmediate
- // - MessageChannel
- // - window.postMessag
- // - onreadystatechange
- // - setTimeout
- } else {
- notify = function(){
- // strange IE + webpack dev server bug - use .call(global)
- macrotask.call(global, flush);
- };
- }
-
- return function(fn){
- var task = {fn: fn, next: undefined};
- if(last)last.next = task;
- if(!head){
- head = task;
- notify();
- } last = task;
- };
- };
-
-/***/ },
-/* 189 */
-/***/ function(module, exports, __webpack_require__) {
-
- var hide = __webpack_require__(10);
- module.exports = function(target, src, safe){
- for(var key in src){
- if(safe && target[key])target[key] = src[key];
- else hide(target, key, src[key]);
- } return target;
- };
-
-/***/ },
-/* 190 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var strong = __webpack_require__(191);
-
- // 23.1 Map Objects
- module.exports = __webpack_require__(192)('Map', function(get){
- return function Map(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
- }, {
- // 23.1.3.6 Map.prototype.get(key)
- get: function get(key){
- var entry = strong.getEntry(this, key);
- return entry && entry.v;
- },
- // 23.1.3.9 Map.prototype.set(key, value)
- set: function set(key, value){
- return strong.def(this, key === 0 ? 0 : key, value);
- }
- }, strong, true);
-
-/***/ },
-/* 191 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var dP = __webpack_require__(11).f
- , create = __webpack_require__(44)
- , redefineAll = __webpack_require__(189)
- , ctx = __webpack_require__(8)
- , anInstance = __webpack_require__(184)
- , defined = __webpack_require__(33)
- , forOf = __webpack_require__(185)
- , $iterDefine = __webpack_require__(129)
- , step = __webpack_require__(180)
- , setSpecies = __webpack_require__(182)
- , DESCRIPTORS = __webpack_require__(4)
- , fastKey = __webpack_require__(19).fastKey
- , SIZE = DESCRIPTORS ? '_s' : 'size';
-
- var getEntry = function(that, key){
- // fast case
- var index = fastKey(key), entry;
- if(index !== 'F')return that._i[index];
- // frozen object case
- for(entry = that._f; entry; entry = entry.n){
- if(entry.k == key)return entry;
- }
- };
-
- module.exports = {
- getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
- var C = wrapper(function(that, iterable){
- anInstance(that, C, NAME, '_i');
- that._i = create(null); // index
- that._f = undefined; // first entry
- that._l = undefined; // last entry
- that[SIZE] = 0; // size
- if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
- });
- redefineAll(C.prototype, {
- // 23.1.3.1 Map.prototype.clear()
- // 23.2.3.2 Set.prototype.clear()
- clear: function clear(){
- for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){
- entry.r = true;
- if(entry.p)entry.p = entry.p.n = undefined;
- delete data[entry.i];
- }
- that._f = that._l = undefined;
- that[SIZE] = 0;
- },
- // 23.1.3.3 Map.prototype.delete(key)
- // 23.2.3.4 Set.prototype.delete(value)
- 'delete': function(key){
- var that = this
- , entry = getEntry(that, key);
- if(entry){
- var next = entry.n
- , prev = entry.p;
- delete that._i[entry.i];
- entry.r = true;
- if(prev)prev.n = next;
- if(next)next.p = prev;
- if(that._f == entry)that._f = next;
- if(that._l == entry)that._l = prev;
- that[SIZE]--;
- } return !!entry;
- },
- // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
- // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
- forEach: function forEach(callbackfn /*, that = undefined */){
- anInstance(this, C, 'forEach');
- var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)
- , entry;
- while(entry = entry ? entry.n : this._f){
- f(entry.v, entry.k, this);
- // revert to the last existing entry
- while(entry && entry.r)entry = entry.p;
- }
- },
- // 23.1.3.7 Map.prototype.has(key)
- // 23.2.3.7 Set.prototype.has(value)
- has: function has(key){
- return !!getEntry(this, key);
- }
- });
- if(DESCRIPTORS)dP(C.prototype, 'size', {
- get: function(){
- return defined(this[SIZE]);
- }
- });
- return C;
- },
- def: function(that, key, value){
- var entry = getEntry(that, key)
- , prev, index;
- // change existing entry
- if(entry){
- entry.v = value;
- // create new entry
- } else {
- that._l = entry = {
- i: index = fastKey(key, true), // <- index
- k: key, // <- key
- v: value, // <- value
- p: prev = that._l, // <- previous entry
- n: undefined, // <- next entry
- r: false // <- removed
- };
- if(!that._f)that._f = entry;
- if(prev)prev.n = entry;
- that[SIZE]++;
- // add to index
- if(index !== 'F')that._i[index] = entry;
- } return that;
- },
- getEntry: getEntry,
- setStrong: function(C, NAME, IS_MAP){
- // add .keys, .values, .entries, [@@iterator]
- // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
- $iterDefine(C, NAME, function(iterated, kind){
- this._t = iterated; // target
- this._k = kind; // kind
- this._l = undefined; // previous
- }, function(){
- var that = this
- , kind = that._k
- , entry = that._l;
- // revert to the last existing entry
- while(entry && entry.r)entry = entry.p;
- // get next entry
- if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){
- // or finish the iteration
- that._t = undefined;
- return step(1);
- }
- // return step by kind
- if(kind == 'keys' )return step(0, entry.k);
- if(kind == 'values')return step(0, entry.v);
- return step(0, [entry.k, entry.v]);
- }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);
-
- // add [@@species], 23.1.2.2, 23.2.2.2
- setSpecies(NAME);
- }
- };
-
-/***/ },
-/* 192 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var global = __webpack_require__(2)
- , $export = __webpack_require__(6)
- , meta = __webpack_require__(19)
- , fails = __webpack_require__(5)
- , hide = __webpack_require__(10)
- , redefineAll = __webpack_require__(189)
- , forOf = __webpack_require__(185)
- , anInstance = __webpack_require__(184)
- , isObject = __webpack_require__(13)
- , setToStringTag = __webpack_require__(22)
- , dP = __webpack_require__(11).f
- , each = __webpack_require__(160)(0)
- , DESCRIPTORS = __webpack_require__(4);
-
- module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){
- var Base = global[NAME]
- , C = Base
- , ADDER = IS_MAP ? 'set' : 'add'
- , proto = C && C.prototype
- , O = {};
- if(!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){
- new C().entries().next();
- }))){
- // create collection constructor
- C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
- redefineAll(C.prototype, methods);
- meta.NEED = true;
- } else {
- C = wrapper(function(target, iterable){
- anInstance(target, C, NAME, '_c');
- target._c = new Base;
- if(iterable != undefined)forOf(iterable, IS_MAP, target[ADDER], target);
- });
- each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','),function(KEY){
- var IS_ADDER = KEY == 'add' || KEY == 'set';
- if(KEY in proto && !(IS_WEAK && KEY == 'clear'))hide(C.prototype, KEY, function(a, b){
- anInstance(this, C, KEY);
- if(!IS_ADDER && IS_WEAK && !isObject(a))return KEY == 'get' ? undefined : false;
- var result = this._c[KEY](a === 0 ? 0 : a, b);
- return IS_ADDER ? this : result;
- });
- });
- if('size' in proto)dP(C.prototype, 'size', {
- get: function(){
- return this._c.size;
- }
- });
- }
-
- setToStringTag(C, NAME);
-
- O[NAME] = C;
- $export($export.G + $export.W + $export.F, O);
-
- if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);
-
- return C;
- };
-
-/***/ },
-/* 193 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var strong = __webpack_require__(191);
-
- // 23.2 Set Objects
- module.exports = __webpack_require__(192)('Set', function(get){
- return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
- }, {
- // 23.2.3.1 Set.prototype.add(value)
- add: function add(value){
- return strong.def(this, value = value === 0 ? 0 : value, value);
- }
- }, strong);
-
-/***/ },
-/* 194 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var each = __webpack_require__(160)(0)
- , redefine = __webpack_require__(18)
- , meta = __webpack_require__(19)
- , assign = __webpack_require__(67)
- , weak = __webpack_require__(195)
- , isObject = __webpack_require__(13)
- , getWeak = meta.getWeak
- , isExtensible = Object.isExtensible
- , uncaughtFrozenStore = weak.ufstore
- , tmp = {}
- , InternalMap;
-
- var wrapper = function(get){
- return function WeakMap(){
- return get(this, arguments.length > 0 ? arguments[0] : undefined);
- };
- };
-
- var methods = {
- // 23.3.3.3 WeakMap.prototype.get(key)
- get: function get(key){
- if(isObject(key)){
- var data = getWeak(key);
- if(data === true)return uncaughtFrozenStore(this).get(key);
- return data ? data[this._i] : undefined;
- }
- },
- // 23.3.3.5 WeakMap.prototype.set(key, value)
- set: function set(key, value){
- return weak.def(this, key, value);
- }
- };
-
- // 23.3 WeakMap Objects
- var $WeakMap = module.exports = __webpack_require__(192)('WeakMap', wrapper, methods, weak, true, true);
-
- // IE11 WeakMap frozen keys fix
- if(new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){
- InternalMap = weak.getConstructor(wrapper);
- assign(InternalMap.prototype, methods);
- meta.NEED = true;
- each(['delete', 'has', 'get', 'set'], function(key){
- var proto = $WeakMap.prototype
- , method = proto[key];
- redefine(proto, key, function(a, b){
- // store frozen objects on internal weakmap shim
- if(isObject(a) && !isExtensible(a)){
- if(!this._f)this._f = new InternalMap;
- var result = this._f[key](a, b);
- return key == 'set' ? this : result;
- // store all the rest on native weakmap
- } return method.call(this, a, b);
- });
- });
- }
-
-/***/ },
-/* 195 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var redefineAll = __webpack_require__(189)
- , getWeak = __webpack_require__(19).getWeak
- , anObject = __webpack_require__(12)
- , isObject = __webpack_require__(13)
- , anInstance = __webpack_require__(184)
- , forOf = __webpack_require__(185)
- , createArrayMethod = __webpack_require__(160)
- , $has = __webpack_require__(3)
- , arrayFind = createArrayMethod(5)
- , arrayFindIndex = createArrayMethod(6)
- , id = 0;
-
- // fallback for uncaught frozen keys
- var uncaughtFrozenStore = function(that){
- return that._l || (that._l = new UncaughtFrozenStore);
- };
- var UncaughtFrozenStore = function(){
- this.a = [];
- };
- var findUncaughtFrozen = function(store, key){
- return arrayFind(store.a, function(it){
- return it[0] === key;
- });
- };
- UncaughtFrozenStore.prototype = {
- get: function(key){
- var entry = findUncaughtFrozen(this, key);
- if(entry)return entry[1];
- },
- has: function(key){
- return !!findUncaughtFrozen(this, key);
- },
- set: function(key, value){
- var entry = findUncaughtFrozen(this, key);
- if(entry)entry[1] = value;
- else this.a.push([key, value]);
- },
- 'delete': function(key){
- var index = arrayFindIndex(this.a, function(it){
- return it[0] === key;
- });
- if(~index)this.a.splice(index, 1);
- return !!~index;
- }
- };
-
- module.exports = {
- getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
- var C = wrapper(function(that, iterable){
- anInstance(that, C, NAME, '_i');
- that._i = id++; // collection id
- that._l = undefined; // leak store for uncaught frozen objects
- if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
- });
- redefineAll(C.prototype, {
- // 23.3.3.2 WeakMap.prototype.delete(key)
- // 23.4.3.3 WeakSet.prototype.delete(value)
- 'delete': function(key){
- if(!isObject(key))return false;
- var data = getWeak(key);
- if(data === true)return uncaughtFrozenStore(this)['delete'](key);
- return data && $has(data, this._i) && delete data[this._i];
- },
- // 23.3.3.4 WeakMap.prototype.has(key)
- // 23.4.3.4 WeakSet.prototype.has(value)
- has: function has(key){
- if(!isObject(key))return false;
- var data = getWeak(key);
- if(data === true)return uncaughtFrozenStore(this).has(key);
- return data && $has(data, this._i);
- }
- });
- return C;
- },
- def: function(that, key, value){
- var data = getWeak(anObject(key), true);
- if(data === true)uncaughtFrozenStore(that).set(key, value);
- else data[that._i] = value;
- return that;
- },
- ufstore: uncaughtFrozenStore
- };
-
-/***/ },
-/* 196 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var weak = __webpack_require__(195);
-
- // 23.4 WeakSet Objects
- __webpack_require__(192)('WeakSet', function(get){
- return function WeakSet(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
- }, {
- // 23.4.3.1 WeakSet.prototype.add(value)
- add: function add(value){
- return weak.def(this, value, true);
- }
- }, weak, false, true);
-
-/***/ },
-/* 197 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
- var $export = __webpack_require__(6)
- , aFunction = __webpack_require__(9)
- , anObject = __webpack_require__(12)
- , rApply = (__webpack_require__(2).Reflect || {}).apply
- , fApply = Function.apply;
- // MS Edge argumentsList argument is optional
- $export($export.S + $export.F * !__webpack_require__(5)(function(){
- rApply(function(){});
- }), 'Reflect', {
- apply: function apply(target, thisArgument, argumentsList){
- var T = aFunction(target)
- , L = anObject(argumentsList);
- return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);
- }
- });
-
-/***/ },
-/* 198 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
- var $export = __webpack_require__(6)
- , create = __webpack_require__(44)
- , aFunction = __webpack_require__(9)
- , anObject = __webpack_require__(12)
- , isObject = __webpack_require__(13)
- , fails = __webpack_require__(5)
- , bind = __webpack_require__(73)
- , rConstruct = (__webpack_require__(2).Reflect || {}).construct;
-
- // MS Edge supports only 2 arguments and argumentsList argument is optional
- // FF Nightly sets third argument as `new.target`, but does not create `this` from it
- var NEW_TARGET_BUG = fails(function(){
- function F(){}
- return !(rConstruct(function(){}, [], F) instanceof F);
- });
- var ARGS_BUG = !fails(function(){
- rConstruct(function(){});
- });
-
- $export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
- construct: function construct(Target, args /*, newTarget*/){
- aFunction(Target);
- anObject(args);
- var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
- if(ARGS_BUG && !NEW_TARGET_BUG)return rConstruct(Target, args, newTarget);
- if(Target == newTarget){
- // w/o altered newTarget, optimization for 0-4 arguments
- switch(args.length){
- case 0: return new Target;
- case 1: return new Target(args[0]);
- case 2: return new Target(args[0], args[1]);
- case 3: return new Target(args[0], args[1], args[2]);
- case 4: return new Target(args[0], args[1], args[2], args[3]);
- }
- // w/o altered newTarget, lot of arguments case
- var $args = [null];
- $args.push.apply($args, args);
- return new (bind.apply(Target, $args));
- }
- // with altered newTarget, not support built-in constructors
- var proto = newTarget.prototype
- , instance = create(isObject(proto) ? proto : Object.prototype)
- , result = Function.apply.call(Target, instance, args);
- return isObject(result) ? result : instance;
- }
- });
-
-/***/ },
-/* 199 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
- var dP = __webpack_require__(11)
- , $export = __webpack_require__(6)
- , anObject = __webpack_require__(12)
- , toPrimitive = __webpack_require__(16);
-
- // MS Edge has broken Reflect.defineProperty - throwing instead of returning false
- $export($export.S + $export.F * __webpack_require__(5)(function(){
- Reflect.defineProperty(dP.f({}, 1, {value: 1}), 1, {value: 2});
- }), 'Reflect', {
- defineProperty: function defineProperty(target, propertyKey, attributes){
- anObject(target);
- propertyKey = toPrimitive(propertyKey, true);
- anObject(attributes);
- try {
- dP.f(target, propertyKey, attributes);
- return true;
- } catch(e){
- return false;
- }
- }
- });
-
-/***/ },
-/* 200 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.4 Reflect.deleteProperty(target, propertyKey)
- var $export = __webpack_require__(6)
- , gOPD = __webpack_require__(49).f
- , anObject = __webpack_require__(12);
-
- $export($export.S, 'Reflect', {
- deleteProperty: function deleteProperty(target, propertyKey){
- var desc = gOPD(anObject(target), propertyKey);
- return desc && !desc.configurable ? false : delete target[propertyKey];
- }
- });
-
-/***/ },
-/* 201 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 26.1.5 Reflect.enumerate(target)
- var $export = __webpack_require__(6)
- , anObject = __webpack_require__(12);
- var Enumerate = function(iterated){
- this._t = anObject(iterated); // target
- this._i = 0; // next index
- var keys = this._k = [] // keys
- , key;
- for(key in iterated)keys.push(key);
- };
- __webpack_require__(131)(Enumerate, 'Object', function(){
- var that = this
- , keys = that._k
- , key;
- do {
- if(that._i >= keys.length)return {value: undefined, done: true};
- } while(!((key = keys[that._i++]) in that._t));
- return {value: key, done: false};
- });
-
- $export($export.S, 'Reflect', {
- enumerate: function enumerate(target){
- return new Enumerate(target);
- }
- });
-
-/***/ },
-/* 202 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.6 Reflect.get(target, propertyKey [, receiver])
- var gOPD = __webpack_require__(49)
- , getPrototypeOf = __webpack_require__(57)
- , has = __webpack_require__(3)
- , $export = __webpack_require__(6)
- , isObject = __webpack_require__(13)
- , anObject = __webpack_require__(12);
-
- function get(target, propertyKey/*, receiver*/){
- var receiver = arguments.length < 3 ? target : arguments[2]
- , desc, proto;
- if(anObject(target) === receiver)return target[propertyKey];
- if(desc = gOPD.f(target, propertyKey))return has(desc, 'value')
- ? desc.value
- : desc.get !== undefined
- ? desc.get.call(receiver)
- : undefined;
- if(isObject(proto = getPrototypeOf(target)))return get(proto, propertyKey, receiver);
- }
-
- $export($export.S, 'Reflect', {get: get});
-
-/***/ },
-/* 203 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
- var gOPD = __webpack_require__(49)
- , $export = __webpack_require__(6)
- , anObject = __webpack_require__(12);
-
- $export($export.S, 'Reflect', {
- getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey){
- return gOPD.f(anObject(target), propertyKey);
- }
- });
-
-/***/ },
-/* 204 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.8 Reflect.getPrototypeOf(target)
- var $export = __webpack_require__(6)
- , getProto = __webpack_require__(57)
- , anObject = __webpack_require__(12);
-
- $export($export.S, 'Reflect', {
- getPrototypeOf: function getPrototypeOf(target){
- return getProto(anObject(target));
- }
- });
-
-/***/ },
-/* 205 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.9 Reflect.has(target, propertyKey)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Reflect', {
- has: function has(target, propertyKey){
- return propertyKey in target;
- }
- });
-
-/***/ },
-/* 206 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.10 Reflect.isExtensible(target)
- var $export = __webpack_require__(6)
- , anObject = __webpack_require__(12)
- , $isExtensible = Object.isExtensible;
-
- $export($export.S, 'Reflect', {
- isExtensible: function isExtensible(target){
- anObject(target);
- return $isExtensible ? $isExtensible(target) : true;
- }
- });
-
-/***/ },
-/* 207 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.11 Reflect.ownKeys(target)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Reflect', {ownKeys: __webpack_require__(208)});
-
-/***/ },
-/* 208 */
-/***/ function(module, exports, __webpack_require__) {
-
- // all object keys, includes non-enumerable and symbols
- var gOPN = __webpack_require__(48)
- , gOPS = __webpack_require__(41)
- , anObject = __webpack_require__(12)
- , Reflect = __webpack_require__(2).Reflect;
- module.exports = Reflect && Reflect.ownKeys || function ownKeys(it){
- var keys = gOPN.f(anObject(it))
- , getSymbols = gOPS.f;
- return getSymbols ? keys.concat(getSymbols(it)) : keys;
- };
-
-/***/ },
-/* 209 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.12 Reflect.preventExtensions(target)
- var $export = __webpack_require__(6)
- , anObject = __webpack_require__(12)
- , $preventExtensions = Object.preventExtensions;
-
- $export($export.S, 'Reflect', {
- preventExtensions: function preventExtensions(target){
- anObject(target);
- try {
- if($preventExtensions)$preventExtensions(target);
- return true;
- } catch(e){
- return false;
- }
- }
- });
-
-/***/ },
-/* 210 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
- var dP = __webpack_require__(11)
- , gOPD = __webpack_require__(49)
- , getPrototypeOf = __webpack_require__(57)
- , has = __webpack_require__(3)
- , $export = __webpack_require__(6)
- , createDesc = __webpack_require__(17)
- , anObject = __webpack_require__(12)
- , isObject = __webpack_require__(13);
-
- function set(target, propertyKey, V/*, receiver*/){
- var receiver = arguments.length < 4 ? target : arguments[3]
- , ownDesc = gOPD.f(anObject(target), propertyKey)
- , existingDescriptor, proto;
- if(!ownDesc){
- if(isObject(proto = getPrototypeOf(target))){
- return set(proto, propertyKey, V, receiver);
- }
- ownDesc = createDesc(0);
- }
- if(has(ownDesc, 'value')){
- if(ownDesc.writable === false || !isObject(receiver))return false;
- existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);
- existingDescriptor.value = V;
- dP.f(receiver, propertyKey, existingDescriptor);
- return true;
- }
- return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
- }
-
- $export($export.S, 'Reflect', {set: set});
-
-/***/ },
-/* 211 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.14 Reflect.setPrototypeOf(target, proto)
- var $export = __webpack_require__(6)
- , setProto = __webpack_require__(71);
-
- if(setProto)$export($export.S, 'Reflect', {
- setPrototypeOf: function setPrototypeOf(target, proto){
- setProto.check(target, proto);
- try {
- setProto.set(target, proto);
- return true;
- } catch(e){
- return false;
- }
- }
- });
-
-/***/ },
-/* 212 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.3.3.1 / 15.9.4.4 Date.now()
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Date', {now: function(){ return new Date().getTime(); }});
-
-/***/ },
-/* 213 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toObject = __webpack_require__(56)
- , toPrimitive = __webpack_require__(16);
-
- $export($export.P + $export.F * __webpack_require__(5)(function(){
- return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({toISOString: function(){ return 1; }}) !== 1;
- }), 'Date', {
- toJSON: function toJSON(key){
- var O = toObject(this)
- , pv = toPrimitive(O);
- return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();
- }
- });
-
-/***/ },
-/* 214 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
- var $export = __webpack_require__(6)
- , fails = __webpack_require__(5)
- , getTime = Date.prototype.getTime;
-
- var lz = function(num){
- return num > 9 ? num : '0' + num;
- };
-
- // PhantomJS / old WebKit has a broken implementations
- $export($export.P + $export.F * (fails(function(){
- return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';
- }) || !fails(function(){
- new Date(NaN).toISOString();
- })), 'Date', {
- toISOString: function toISOString(){
- if(!isFinite(getTime.call(this)))throw RangeError('Invalid time value');
- var d = this
- , y = d.getUTCFullYear()
- , m = d.getUTCMilliseconds()
- , s = y < 0 ? '-' : y > 9999 ? '+' : '';
- return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
- '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
- 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
- ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
- }
- });
-
-/***/ },
-/* 215 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $typed = __webpack_require__(216)
- , buffer = __webpack_require__(217)
- , anObject = __webpack_require__(12)
- , toIndex = __webpack_require__(37)
- , toLength = __webpack_require__(35)
- , isObject = __webpack_require__(13)
- , ArrayBuffer = __webpack_require__(2).ArrayBuffer
- , speciesConstructor = __webpack_require__(186)
- , $ArrayBuffer = buffer.ArrayBuffer
- , $DataView = buffer.DataView
- , $isView = $typed.ABV && ArrayBuffer.isView
- , $slice = $ArrayBuffer.prototype.slice
- , VIEW = $typed.VIEW
- , ARRAY_BUFFER = 'ArrayBuffer';
-
- $export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), {ArrayBuffer: $ArrayBuffer});
-
- $export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {
- // 24.1.3.1 ArrayBuffer.isView(arg)
- isView: function isView(it){
- return $isView && $isView(it) || isObject(it) && VIEW in it;
- }
- });
-
- $export($export.P + $export.U + $export.F * __webpack_require__(5)(function(){
- return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
- }), ARRAY_BUFFER, {
- // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
- slice: function slice(start, end){
- if($slice !== undefined && end === undefined)return $slice.call(anObject(this), start); // FF fix
- var len = anObject(this).byteLength
- , first = toIndex(start, len)
- , final = toIndex(end === undefined ? len : end, len)
- , result = new (speciesConstructor(this, $ArrayBuffer))(toLength(final - first))
- , viewS = new $DataView(this)
- , viewT = new $DataView(result)
- , index = 0;
- while(first < final){
- viewT.setUint8(index++, viewS.getUint8(first++));
- } return result;
- }
- });
-
- __webpack_require__(182)(ARRAY_BUFFER);
-
-/***/ },
-/* 216 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , hide = __webpack_require__(10)
- , uid = __webpack_require__(20)
- , TYPED = uid('typed_array')
- , VIEW = uid('view')
- , ABV = !!(global.ArrayBuffer && global.DataView)
- , CONSTR = ABV
- , i = 0, l = 9, Typed;
-
- var TypedArrayConstructors = (
- 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'
- ).split(',');
-
- while(i < l){
- if(Typed = global[TypedArrayConstructors[i++]]){
- hide(Typed.prototype, TYPED, true);
- hide(Typed.prototype, VIEW, true);
- } else CONSTR = false;
- }
-
- module.exports = {
- ABV: ABV,
- CONSTR: CONSTR,
- TYPED: TYPED,
- VIEW: VIEW
- };
-
-/***/ },
-/* 217 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var global = __webpack_require__(2)
- , DESCRIPTORS = __webpack_require__(4)
- , LIBRARY = __webpack_require__(26)
- , $typed = __webpack_require__(216)
- , hide = __webpack_require__(10)
- , redefineAll = __webpack_require__(189)
- , fails = __webpack_require__(5)
- , anInstance = __webpack_require__(184)
- , toInteger = __webpack_require__(36)
- , toLength = __webpack_require__(35)
- , gOPN = __webpack_require__(48).f
- , dP = __webpack_require__(11).f
- , arrayFill = __webpack_require__(176)
- , setToStringTag = __webpack_require__(22)
- , ARRAY_BUFFER = 'ArrayBuffer'
- , DATA_VIEW = 'DataView'
- , PROTOTYPE = 'prototype'
- , WRONG_LENGTH = 'Wrong length!'
- , WRONG_INDEX = 'Wrong index!'
- , $ArrayBuffer = global[ARRAY_BUFFER]
- , $DataView = global[DATA_VIEW]
- , Math = global.Math
- , RangeError = global.RangeError
- , Infinity = global.Infinity
- , BaseBuffer = $ArrayBuffer
- , abs = Math.abs
- , pow = Math.pow
- , floor = Math.floor
- , log = Math.log
- , LN2 = Math.LN2
- , BUFFER = 'buffer'
- , BYTE_LENGTH = 'byteLength'
- , BYTE_OFFSET = 'byteOffset'
- , $BUFFER = DESCRIPTORS ? '_b' : BUFFER
- , $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH
- , $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;
-
- // IEEE754 conversions based on https://github.com/feross/ieee754
- var packIEEE754 = function(value, mLen, nBytes){
- var buffer = Array(nBytes)
- , eLen = nBytes * 8 - mLen - 1
- , eMax = (1 << eLen) - 1
- , eBias = eMax >> 1
- , rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0
- , i = 0
- , s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0
- , e, m, c;
- value = abs(value)
- if(value != value || value === Infinity){
- m = value != value ? 1 : 0;
- e = eMax;
- } else {
- e = floor(log(value) / LN2);
- if(value * (c = pow(2, -e)) < 1){
- e--;
- c *= 2;
- }
- if(e + eBias >= 1){
- value += rt / c;
- } else {
- value += rt * pow(2, 1 - eBias);
- }
- if(value * c >= 2){
- e++;
- c /= 2;
- }
- if(e + eBias >= eMax){
- m = 0;
- e = eMax;
- } else if(e + eBias >= 1){
- m = (value * c - 1) * pow(2, mLen);
- e = e + eBias;
- } else {
- m = value * pow(2, eBias - 1) * pow(2, mLen);
- e = 0;
- }
- }
- for(; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);
- e = e << mLen | m;
- eLen += mLen;
- for(; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);
- buffer[--i] |= s * 128;
- return buffer;
- };
- var unpackIEEE754 = function(buffer, mLen, nBytes){
- var eLen = nBytes * 8 - mLen - 1
- , eMax = (1 << eLen) - 1
- , eBias = eMax >> 1
- , nBits = eLen - 7
- , i = nBytes - 1
- , s = buffer[i--]
- , e = s & 127
- , m;
- s >>= 7;
- for(; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);
- m = e & (1 << -nBits) - 1;
- e >>= -nBits;
- nBits += mLen;
- for(; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);
- if(e === 0){
- e = 1 - eBias;
- } else if(e === eMax){
- return m ? NaN : s ? -Infinity : Infinity;
- } else {
- m = m + pow(2, mLen);
- e = e - eBias;
- } return (s ? -1 : 1) * m * pow(2, e - mLen);
- };
-
- var unpackI32 = function(bytes){
- return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];
- };
- var packI8 = function(it){
- return [it & 0xff];
- };
- var packI16 = function(it){
- return [it & 0xff, it >> 8 & 0xff];
- };
- var packI32 = function(it){
- return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];
- };
- var packF64 = function(it){
- return packIEEE754(it, 52, 8);
- };
- var packF32 = function(it){
- return packIEEE754(it, 23, 4);
- };
-
- var addGetter = function(C, key, internal){
- dP(C[PROTOTYPE], key, {get: function(){ return this[internal]; }});
- };
-
- var get = function(view, bytes, index, isLittleEndian){
- var numIndex = +index
- , intIndex = toInteger(numIndex);
- if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);
- var store = view[$BUFFER]._b
- , start = intIndex + view[$OFFSET]
- , pack = store.slice(start, start + bytes);
- return isLittleEndian ? pack : pack.reverse();
- };
- var set = function(view, bytes, index, conversion, value, isLittleEndian){
- var numIndex = +index
- , intIndex = toInteger(numIndex);
- if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);
- var store = view[$BUFFER]._b
- , start = intIndex + view[$OFFSET]
- , pack = conversion(+value);
- for(var i = 0; i < bytes; i++)store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];
- };
-
- var validateArrayBufferArguments = function(that, length){
- anInstance(that, $ArrayBuffer, ARRAY_BUFFER);
- var numberLength = +length
- , byteLength = toLength(numberLength);
- if(numberLength != byteLength)throw RangeError(WRONG_LENGTH);
- return byteLength;
- };
-
- if(!$typed.ABV){
- $ArrayBuffer = function ArrayBuffer(length){
- var byteLength = validateArrayBufferArguments(this, length);
- this._b = arrayFill.call(Array(byteLength), 0);
- this[$LENGTH] = byteLength;
- };
-
- $DataView = function DataView(buffer, byteOffset, byteLength){
- anInstance(this, $DataView, DATA_VIEW);
- anInstance(buffer, $ArrayBuffer, DATA_VIEW);
- var bufferLength = buffer[$LENGTH]
- , offset = toInteger(byteOffset);
- if(offset < 0 || offset > bufferLength)throw RangeError('Wrong offset!');
- byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
- if(offset + byteLength > bufferLength)throw RangeError(WRONG_LENGTH);
- this[$BUFFER] = buffer;
- this[$OFFSET] = offset;
- this[$LENGTH] = byteLength;
- };
-
- if(DESCRIPTORS){
- addGetter($ArrayBuffer, BYTE_LENGTH, '_l');
- addGetter($DataView, BUFFER, '_b');
- addGetter($DataView, BYTE_LENGTH, '_l');
- addGetter($DataView, BYTE_OFFSET, '_o');
- }
-
- redefineAll($DataView[PROTOTYPE], {
- getInt8: function getInt8(byteOffset){
- return get(this, 1, byteOffset)[0] << 24 >> 24;
- },
- getUint8: function getUint8(byteOffset){
- return get(this, 1, byteOffset)[0];
- },
- getInt16: function getInt16(byteOffset /*, littleEndian */){
- var bytes = get(this, 2, byteOffset, arguments[1]);
- return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
- },
- getUint16: function getUint16(byteOffset /*, littleEndian */){
- var bytes = get(this, 2, byteOffset, arguments[1]);
- return bytes[1] << 8 | bytes[0];
- },
- getInt32: function getInt32(byteOffset /*, littleEndian */){
- return unpackI32(get(this, 4, byteOffset, arguments[1]));
- },
- getUint32: function getUint32(byteOffset /*, littleEndian */){
- return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;
- },
- getFloat32: function getFloat32(byteOffset /*, littleEndian */){
- return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);
- },
- getFloat64: function getFloat64(byteOffset /*, littleEndian */){
- return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);
- },
- setInt8: function setInt8(byteOffset, value){
- set(this, 1, byteOffset, packI8, value);
- },
- setUint8: function setUint8(byteOffset, value){
- set(this, 1, byteOffset, packI8, value);
- },
- setInt16: function setInt16(byteOffset, value /*, littleEndian */){
- set(this, 2, byteOffset, packI16, value, arguments[2]);
- },
- setUint16: function setUint16(byteOffset, value /*, littleEndian */){
- set(this, 2, byteOffset, packI16, value, arguments[2]);
- },
- setInt32: function setInt32(byteOffset, value /*, littleEndian */){
- set(this, 4, byteOffset, packI32, value, arguments[2]);
- },
- setUint32: function setUint32(byteOffset, value /*, littleEndian */){
- set(this, 4, byteOffset, packI32, value, arguments[2]);
- },
- setFloat32: function setFloat32(byteOffset, value /*, littleEndian */){
- set(this, 4, byteOffset, packF32, value, arguments[2]);
- },
- setFloat64: function setFloat64(byteOffset, value /*, littleEndian */){
- set(this, 8, byteOffset, packF64, value, arguments[2]);
- }
- });
- } else {
- if(!fails(function(){
- new $ArrayBuffer; // eslint-disable-line no-new
- }) || !fails(function(){
- new $ArrayBuffer(.5); // eslint-disable-line no-new
- })){
- $ArrayBuffer = function ArrayBuffer(length){
- return new BaseBuffer(validateArrayBufferArguments(this, length));
- };
- var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];
- for(var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j; ){
- if(!((key = keys[j++]) in $ArrayBuffer))hide($ArrayBuffer, key, BaseBuffer[key]);
- };
- if(!LIBRARY)ArrayBufferProto.constructor = $ArrayBuffer;
- }
- // iOS Safari 7.x bug
- var view = new $DataView(new $ArrayBuffer(2))
- , $setInt8 = $DataView[PROTOTYPE].setInt8;
- view.setInt8(0, 2147483648);
- view.setInt8(1, 2147483649);
- if(view.getInt8(0) || !view.getInt8(1))redefineAll($DataView[PROTOTYPE], {
- setInt8: function setInt8(byteOffset, value){
- $setInt8.call(this, byteOffset, value << 24 >> 24);
- },
- setUint8: function setUint8(byteOffset, value){
- $setInt8.call(this, byteOffset, value << 24 >> 24);
- }
- }, true);
- }
- setToStringTag($ArrayBuffer, ARRAY_BUFFER);
- setToStringTag($DataView, DATA_VIEW);
- hide($DataView[PROTOTYPE], $typed.VIEW, true);
- exports[ARRAY_BUFFER] = $ArrayBuffer;
- exports[DATA_VIEW] = $DataView;
-
-/***/ },
-/* 218 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6);
- $export($export.G + $export.W + $export.F * !__webpack_require__(216).ABV, {
- DataView: __webpack_require__(217).DataView
- });
-
-/***/ },
-/* 219 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(220)('Int8', 1, function(init){
- return function Int8Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 220 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- if(__webpack_require__(4)){
- var LIBRARY = __webpack_require__(26)
- , global = __webpack_require__(2)
- , fails = __webpack_require__(5)
- , $export = __webpack_require__(6)
- , $typed = __webpack_require__(216)
- , $buffer = __webpack_require__(217)
- , ctx = __webpack_require__(8)
- , anInstance = __webpack_require__(184)
- , propertyDesc = __webpack_require__(17)
- , hide = __webpack_require__(10)
- , redefineAll = __webpack_require__(189)
- , toInteger = __webpack_require__(36)
- , toLength = __webpack_require__(35)
- , toIndex = __webpack_require__(37)
- , toPrimitive = __webpack_require__(16)
- , has = __webpack_require__(3)
- , same = __webpack_require__(69)
- , classof = __webpack_require__(152)
- , isObject = __webpack_require__(13)
- , toObject = __webpack_require__(56)
- , isArrayIter = __webpack_require__(149)
- , create = __webpack_require__(44)
- , getPrototypeOf = __webpack_require__(57)
- , gOPN = __webpack_require__(48).f
- , getIterFn = __webpack_require__(151)
- , uid = __webpack_require__(20)
- , wks = __webpack_require__(23)
- , createArrayMethod = __webpack_require__(160)
- , createArrayIncludes = __webpack_require__(34)
- , speciesConstructor = __webpack_require__(186)
- , ArrayIterators = __webpack_require__(179)
- , Iterators = __webpack_require__(130)
- , $iterDetect = __webpack_require__(153)
- , setSpecies = __webpack_require__(182)
- , arrayFill = __webpack_require__(176)
- , arrayCopyWithin = __webpack_require__(173)
- , $DP = __webpack_require__(11)
- , $GOPD = __webpack_require__(49)
- , dP = $DP.f
- , gOPD = $GOPD.f
- , RangeError = global.RangeError
- , TypeError = global.TypeError
- , Uint8Array = global.Uint8Array
- , ARRAY_BUFFER = 'ArrayBuffer'
- , SHARED_BUFFER = 'Shared' + ARRAY_BUFFER
- , BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'
- , PROTOTYPE = 'prototype'
- , ArrayProto = Array[PROTOTYPE]
- , $ArrayBuffer = $buffer.ArrayBuffer
- , $DataView = $buffer.DataView
- , arrayForEach = createArrayMethod(0)
- , arrayFilter = createArrayMethod(2)
- , arraySome = createArrayMethod(3)
- , arrayEvery = createArrayMethod(4)
- , arrayFind = createArrayMethod(5)
- , arrayFindIndex = createArrayMethod(6)
- , arrayIncludes = createArrayIncludes(true)
- , arrayIndexOf = createArrayIncludes(false)
- , arrayValues = ArrayIterators.values
- , arrayKeys = ArrayIterators.keys
- , arrayEntries = ArrayIterators.entries
- , arrayLastIndexOf = ArrayProto.lastIndexOf
- , arrayReduce = ArrayProto.reduce
- , arrayReduceRight = ArrayProto.reduceRight
- , arrayJoin = ArrayProto.join
- , arraySort = ArrayProto.sort
- , arraySlice = ArrayProto.slice
- , arrayToString = ArrayProto.toString
- , arrayToLocaleString = ArrayProto.toLocaleString
- , ITERATOR = wks('iterator')
- , TAG = wks('toStringTag')
- , TYPED_CONSTRUCTOR = uid('typed_constructor')
- , DEF_CONSTRUCTOR = uid('def_constructor')
- , ALL_CONSTRUCTORS = $typed.CONSTR
- , TYPED_ARRAY = $typed.TYPED
- , VIEW = $typed.VIEW
- , WRONG_LENGTH = 'Wrong length!';
-
- var $map = createArrayMethod(1, function(O, length){
- return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);
- });
-
- var LITTLE_ENDIAN = fails(function(){
- return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;
- });
-
- var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function(){
- new Uint8Array(1).set({});
- });
-
- var strictToLength = function(it, SAME){
- if(it === undefined)throw TypeError(WRONG_LENGTH);
- var number = +it
- , length = toLength(it);
- if(SAME && !same(number, length))throw RangeError(WRONG_LENGTH);
- return length;
- };
-
- var toOffset = function(it, BYTES){
- var offset = toInteger(it);
- if(offset < 0 || offset % BYTES)throw RangeError('Wrong offset!');
- return offset;
- };
-
- var validate = function(it){
- if(isObject(it) && TYPED_ARRAY in it)return it;
- throw TypeError(it + ' is not a typed array!');
- };
-
- var allocate = function(C, length){
- if(!(isObject(C) && TYPED_CONSTRUCTOR in C)){
- throw TypeError('It is not a typed array constructor!');
- } return new C(length);
- };
-
- var speciesFromList = function(O, list){
- return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);
- };
-
- var fromList = function(C, list){
- var index = 0
- , length = list.length
- , result = allocate(C, length);
- while(length > index)result[index] = list[index++];
- return result;
- };
-
- var addGetter = function(it, key, internal){
- dP(it, key, {get: function(){ return this._d[internal]; }});
- };
-
- var $from = function from(source /*, mapfn, thisArg */){
- var O = toObject(source)
- , aLen = arguments.length
- , mapfn = aLen > 1 ? arguments[1] : undefined
- , mapping = mapfn !== undefined
- , iterFn = getIterFn(O)
- , i, length, values, result, step, iterator;
- if(iterFn != undefined && !isArrayIter(iterFn)){
- for(iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++){
- values.push(step.value);
- } O = values;
- }
- if(mapping && aLen > 2)mapfn = ctx(mapfn, arguments[2], 2);
- for(i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++){
- result[i] = mapping ? mapfn(O[i], i) : O[i];
- }
- return result;
- };
-
- var $of = function of(/*...items*/){
- var index = 0
- , length = arguments.length
- , result = allocate(this, length);
- while(length > index)result[index] = arguments[index++];
- return result;
- };
-
- // iOS Safari 6.x fails here
- var TO_LOCALE_BUG = !!Uint8Array && fails(function(){ arrayToLocaleString.call(new Uint8Array(1)); });
-
- var $toLocaleString = function toLocaleString(){
- return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);
- };
-
- var proto = {
- copyWithin: function copyWithin(target, start /*, end */){
- return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
- },
- every: function every(callbackfn /*, thisArg */){
- return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- fill: function fill(value /*, start, end */){ // eslint-disable-line no-unused-vars
- return arrayFill.apply(validate(this), arguments);
- },
- filter: function filter(callbackfn /*, thisArg */){
- return speciesFromList(this, arrayFilter(validate(this), callbackfn,
- arguments.length > 1 ? arguments[1] : undefined));
- },
- find: function find(predicate /*, thisArg */){
- return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
- },
- findIndex: function findIndex(predicate /*, thisArg */){
- return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
- },
- forEach: function forEach(callbackfn /*, thisArg */){
- arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- indexOf: function indexOf(searchElement /*, fromIndex */){
- return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
- },
- includes: function includes(searchElement /*, fromIndex */){
- return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
- },
- join: function join(separator){ // eslint-disable-line no-unused-vars
- return arrayJoin.apply(validate(this), arguments);
- },
- lastIndexOf: function lastIndexOf(searchElement /*, fromIndex */){ // eslint-disable-line no-unused-vars
- return arrayLastIndexOf.apply(validate(this), arguments);
- },
- map: function map(mapfn /*, thisArg */){
- return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- reduce: function reduce(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
- return arrayReduce.apply(validate(this), arguments);
- },
- reduceRight: function reduceRight(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
- return arrayReduceRight.apply(validate(this), arguments);
- },
- reverse: function reverse(){
- var that = this
- , length = validate(that).length
- , middle = Math.floor(length / 2)
- , index = 0
- , value;
- while(index < middle){
- value = that[index];
- that[index++] = that[--length];
- that[length] = value;
- } return that;
- },
- some: function some(callbackfn /*, thisArg */){
- return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- sort: function sort(comparefn){
- return arraySort.call(validate(this), comparefn);
- },
- subarray: function subarray(begin, end){
- var O = validate(this)
- , length = O.length
- , $begin = toIndex(begin, length);
- return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(
- O.buffer,
- O.byteOffset + $begin * O.BYTES_PER_ELEMENT,
- toLength((end === undefined ? length : toIndex(end, length)) - $begin)
- );
- }
- };
-
- var $slice = function slice(start, end){
- return speciesFromList(this, arraySlice.call(validate(this), start, end));
- };
-
- var $set = function set(arrayLike /*, offset */){
- validate(this);
- var offset = toOffset(arguments[1], 1)
- , length = this.length
- , src = toObject(arrayLike)
- , len = toLength(src.length)
- , index = 0;
- if(len + offset > length)throw RangeError(WRONG_LENGTH);
- while(index < len)this[offset + index] = src[index++];
- };
-
- var $iterators = {
- entries: function entries(){
- return arrayEntries.call(validate(this));
- },
- keys: function keys(){
- return arrayKeys.call(validate(this));
- },
- values: function values(){
- return arrayValues.call(validate(this));
- }
- };
-
- var isTAIndex = function(target, key){
- return isObject(target)
- && target[TYPED_ARRAY]
- && typeof key != 'symbol'
- && key in target
- && String(+key) == String(key);
- };
- var $getDesc = function getOwnPropertyDescriptor(target, key){
- return isTAIndex(target, key = toPrimitive(key, true))
- ? propertyDesc(2, target[key])
- : gOPD(target, key);
- };
- var $setDesc = function defineProperty(target, key, desc){
- if(isTAIndex(target, key = toPrimitive(key, true))
- && isObject(desc)
- && has(desc, 'value')
- && !has(desc, 'get')
- && !has(desc, 'set')
- // TODO: add validation descriptor w/o calling accessors
- && !desc.configurable
- && (!has(desc, 'writable') || desc.writable)
- && (!has(desc, 'enumerable') || desc.enumerable)
- ){
- target[key] = desc.value;
- return target;
- } else return dP(target, key, desc);
- };
-
- if(!ALL_CONSTRUCTORS){
- $GOPD.f = $getDesc;
- $DP.f = $setDesc;
- }
-
- $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {
- getOwnPropertyDescriptor: $getDesc,
- defineProperty: $setDesc
- });
-
- if(fails(function(){ arrayToString.call({}); })){
- arrayToString = arrayToLocaleString = function toString(){
- return arrayJoin.call(this);
- }
- }
-
- var $TypedArrayPrototype$ = redefineAll({}, proto);
- redefineAll($TypedArrayPrototype$, $iterators);
- hide($TypedArrayPrototype$, ITERATOR, $iterators.values);
- redefineAll($TypedArrayPrototype$, {
- slice: $slice,
- set: $set,
- constructor: function(){ /* noop */ },
- toString: arrayToString,
- toLocaleString: $toLocaleString
- });
- addGetter($TypedArrayPrototype$, 'buffer', 'b');
- addGetter($TypedArrayPrototype$, 'byteOffset', 'o');
- addGetter($TypedArrayPrototype$, 'byteLength', 'l');
- addGetter($TypedArrayPrototype$, 'length', 'e');
- dP($TypedArrayPrototype$, TAG, {
- get: function(){ return this[TYPED_ARRAY]; }
- });
-
- module.exports = function(KEY, BYTES, wrapper, CLAMPED){
- CLAMPED = !!CLAMPED;
- var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'
- , ISNT_UINT8 = NAME != 'Uint8Array'
- , GETTER = 'get' + KEY
- , SETTER = 'set' + KEY
- , TypedArray = global[NAME]
- , Base = TypedArray || {}
- , TAC = TypedArray && getPrototypeOf(TypedArray)
- , FORCED = !TypedArray || !$typed.ABV
- , O = {}
- , TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];
- var getter = function(that, index){
- var data = that._d;
- return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);
- };
- var setter = function(that, index, value){
- var data = that._d;
- if(CLAMPED)value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;
- data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);
- };
- var addElement = function(that, index){
- dP(that, index, {
- get: function(){
- return getter(this, index);
- },
- set: function(value){
- return setter(this, index, value);
- },
- enumerable: true
- });
- };
- if(FORCED){
- TypedArray = wrapper(function(that, data, $offset, $length){
- anInstance(that, TypedArray, NAME, '_d');
- var index = 0
- , offset = 0
- , buffer, byteLength, length, klass;
- if(!isObject(data)){
- length = strictToLength(data, true)
- byteLength = length * BYTES;
- buffer = new $ArrayBuffer(byteLength);
- } else if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){
- buffer = data;
- offset = toOffset($offset, BYTES);
- var $len = data.byteLength;
- if($length === undefined){
- if($len % BYTES)throw RangeError(WRONG_LENGTH);
- byteLength = $len - offset;
- if(byteLength < 0)throw RangeError(WRONG_LENGTH);
- } else {
- byteLength = toLength($length) * BYTES;
- if(byteLength + offset > $len)throw RangeError(WRONG_LENGTH);
- }
- length = byteLength / BYTES;
- } else if(TYPED_ARRAY in data){
- return fromList(TypedArray, data);
- } else {
- return $from.call(TypedArray, data);
- }
- hide(that, '_d', {
- b: buffer,
- o: offset,
- l: byteLength,
- e: length,
- v: new $DataView(buffer)
- });
- while(index < length)addElement(that, index++);
- });
- TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);
- hide(TypedArrayPrototype, 'constructor', TypedArray);
- } else if(!$iterDetect(function(iter){
- // V8 works with iterators, but fails in many other cases
- // https://code.google.com/p/v8/issues/detail?id=4552
- new TypedArray(null); // eslint-disable-line no-new
- new TypedArray(iter); // eslint-disable-line no-new
- }, true)){
- TypedArray = wrapper(function(that, data, $offset, $length){
- anInstance(that, TypedArray, NAME);
- var klass;
- // `ws` module bug, temporarily remove validation length for Uint8Array
- // https://github.com/websockets/ws/pull/645
- if(!isObject(data))return new Base(strictToLength(data, ISNT_UINT8));
- if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){
- return $length !== undefined
- ? new Base(data, toOffset($offset, BYTES), $length)
- : $offset !== undefined
- ? new Base(data, toOffset($offset, BYTES))
- : new Base(data);
- }
- if(TYPED_ARRAY in data)return fromList(TypedArray, data);
- return $from.call(TypedArray, data);
- });
- arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function(key){
- if(!(key in TypedArray))hide(TypedArray, key, Base[key]);
- });
- TypedArray[PROTOTYPE] = TypedArrayPrototype;
- if(!LIBRARY)TypedArrayPrototype.constructor = TypedArray;
- }
- var $nativeIterator = TypedArrayPrototype[ITERATOR]
- , CORRECT_ITER_NAME = !!$nativeIterator && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined)
- , $iterator = $iterators.values;
- hide(TypedArray, TYPED_CONSTRUCTOR, true);
- hide(TypedArrayPrototype, TYPED_ARRAY, NAME);
- hide(TypedArrayPrototype, VIEW, true);
- hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);
-
- if(CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)){
- dP(TypedArrayPrototype, TAG, {
- get: function(){ return NAME; }
- });
- }
-
- O[NAME] = TypedArray;
-
- $export($export.G + $export.W + $export.F * (TypedArray != Base), O);
-
- $export($export.S, NAME, {
- BYTES_PER_ELEMENT: BYTES,
- from: $from,
- of: $of
- });
-
- if(!(BYTES_PER_ELEMENT in TypedArrayPrototype))hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);
-
- $export($export.P, NAME, proto);
-
- setSpecies(NAME);
-
- $export($export.P + $export.F * FORCED_SET, NAME, {set: $set});
-
- $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);
-
- $export($export.P + $export.F * (TypedArrayPrototype.toString != arrayToString), NAME, {toString: arrayToString});
-
- $export($export.P + $export.F * fails(function(){
- new TypedArray(1).slice();
- }), NAME, {slice: $slice});
-
- $export($export.P + $export.F * (fails(function(){
- return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString()
- }) || !fails(function(){
- TypedArrayPrototype.toLocaleString.call([1, 2]);
- })), NAME, {toLocaleString: $toLocaleString});
-
- Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;
- if(!LIBRARY && !CORRECT_ITER_NAME)hide(TypedArrayPrototype, ITERATOR, $iterator);
- };
- } else module.exports = function(){ /* empty */ };
-
-/***/ },
-/* 221 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(220)('Uint8', 1, function(init){
- return function Uint8Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 222 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(220)('Uint8', 1, function(init){
- return function Uint8ClampedArray(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- }, true);
-
-/***/ },
-/* 223 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(220)('Int16', 2, function(init){
- return function Int16Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 224 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(220)('Uint16', 2, function(init){
- return function Uint16Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 225 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(220)('Int32', 4, function(init){
- return function Int32Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 226 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(220)('Uint32', 4, function(init){
- return function Uint32Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 227 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(220)('Float32', 4, function(init){
- return function Float32Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 228 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(220)('Float64', 8, function(init){
- return function Float64Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 229 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/tc39/Array.prototype.includes
- var $export = __webpack_require__(6)
- , $includes = __webpack_require__(34)(true);
-
- $export($export.P, 'Array', {
- includes: function includes(el /*, fromIndex = 0 */){
- return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
- }
- });
-
- __webpack_require__(174)('includes');
-
-/***/ },
-/* 230 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/mathiasbynens/String.prototype.at
- var $export = __webpack_require__(6)
- , $at = __webpack_require__(120)(true);
-
- $export($export.P, 'String', {
- at: function at(pos){
- return $at(this, pos);
- }
- });
-
-/***/ },
-/* 231 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/tc39/proposal-string-pad-start-end
- var $export = __webpack_require__(6)
- , $pad = __webpack_require__(232);
-
- $export($export.P, 'String', {
- padStart: function padStart(maxLength /*, fillString = ' ' */){
- return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
- }
- });
-
-/***/ },
-/* 232 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/tc39/proposal-string-pad-start-end
- var toLength = __webpack_require__(35)
- , repeat = __webpack_require__(78)
- , defined = __webpack_require__(33);
-
- module.exports = function(that, maxLength, fillString, left){
- var S = String(defined(that))
- , stringLength = S.length
- , fillStr = fillString === undefined ? ' ' : String(fillString)
- , intMaxLength = toLength(maxLength);
- if(intMaxLength <= stringLength || fillStr == '')return S;
- var fillLen = intMaxLength - stringLength
- , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
- if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);
- return left ? stringFiller + S : S + stringFiller;
- };
-
-
-/***/ },
-/* 233 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/tc39/proposal-string-pad-start-end
- var $export = __webpack_require__(6)
- , $pad = __webpack_require__(232);
-
- $export($export.P, 'String', {
- padEnd: function padEnd(maxLength /*, fillString = ' ' */){
- return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
- }
- });
-
-/***/ },
-/* 234 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/sebmarkbage/ecmascript-string-left-right-trim
- __webpack_require__(90)('trimLeft', function($trim){
- return function trimLeft(){
- return $trim(this, 1);
- };
- }, 'trimStart');
-
-/***/ },
-/* 235 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/sebmarkbage/ecmascript-string-left-right-trim
- __webpack_require__(90)('trimRight', function($trim){
- return function trimRight(){
- return $trim(this, 2);
- };
- }, 'trimEnd');
-
-/***/ },
-/* 236 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://tc39.github.io/String.prototype.matchAll/
- var $export = __webpack_require__(6)
- , defined = __webpack_require__(33)
- , toLength = __webpack_require__(35)
- , isRegExp = __webpack_require__(123)
- , getFlags = __webpack_require__(237)
- , RegExpProto = RegExp.prototype;
-
- var $RegExpStringIterator = function(regexp, string){
- this._r = regexp;
- this._s = string;
- };
-
- __webpack_require__(131)($RegExpStringIterator, 'RegExp String', function next(){
- var match = this._r.exec(this._s);
- return {value: match, done: match === null};
- });
-
- $export($export.P, 'String', {
- matchAll: function matchAll(regexp){
- defined(this);
- if(!isRegExp(regexp))throw TypeError(regexp + ' is not a regexp!');
- var S = String(this)
- , flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp)
- , rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);
- rx.lastIndex = toLength(regexp.lastIndex);
- return new $RegExpStringIterator(rx, S);
- }
- });
-
-/***/ },
-/* 237 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 21.2.5.3 get RegExp.prototype.flags
- var anObject = __webpack_require__(12);
- module.exports = function(){
- var that = anObject(this)
- , result = '';
- if(that.global) result += 'g';
- if(that.ignoreCase) result += 'i';
- if(that.multiline) result += 'm';
- if(that.unicode) result += 'u';
- if(that.sticky) result += 'y';
- return result;
- };
-
-/***/ },
-/* 238 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(25)('asyncIterator');
-
-/***/ },
-/* 239 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(25)('observable');
-
-/***/ },
-/* 240 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/tc39/proposal-object-getownpropertydescriptors
- var $export = __webpack_require__(6)
- , ownKeys = __webpack_require__(208)
- , toIObject = __webpack_require__(30)
- , gOPD = __webpack_require__(49)
- , createProperty = __webpack_require__(150);
-
- $export($export.S, 'Object', {
- getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){
- var O = toIObject(object)
- , getDesc = gOPD.f
- , keys = ownKeys(O)
- , result = {}
- , i = 0
- , key;
- while(keys.length > i)createProperty(result, key = keys[i++], getDesc(O, key));
- return result;
- }
- });
-
-/***/ },
-/* 241 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/tc39/proposal-object-values-entries
- var $export = __webpack_require__(6)
- , $values = __webpack_require__(242)(false);
-
- $export($export.S, 'Object', {
- values: function values(it){
- return $values(it);
- }
- });
-
-/***/ },
-/* 242 */
-/***/ function(module, exports, __webpack_require__) {
-
- var getKeys = __webpack_require__(28)
- , toIObject = __webpack_require__(30)
- , isEnum = __webpack_require__(42).f;
- module.exports = function(isEntries){
- return function(it){
- var O = toIObject(it)
- , keys = getKeys(O)
- , length = keys.length
- , i = 0
- , result = []
- , key;
- while(length > i)if(isEnum.call(O, key = keys[i++])){
- result.push(isEntries ? [key, O[key]] : O[key]);
- } return result;
- };
- };
-
-/***/ },
-/* 243 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/tc39/proposal-object-values-entries
- var $export = __webpack_require__(6)
- , $entries = __webpack_require__(242)(true);
-
- $export($export.S, 'Object', {
- entries: function entries(it){
- return $entries(it);
- }
- });
-
-/***/ },
-/* 244 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toObject = __webpack_require__(56)
- , aFunction = __webpack_require__(9)
- , $defineProperty = __webpack_require__(11);
-
- // B.2.2.2 Object.prototype.__defineGetter__(P, getter)
- __webpack_require__(4) && $export($export.P + __webpack_require__(245), 'Object', {
- __defineGetter__: function __defineGetter__(P, getter){
- $defineProperty.f(toObject(this), P, {get: aFunction(getter), enumerable: true, configurable: true});
- }
- });
-
-/***/ },
-/* 245 */
-/***/ function(module, exports, __webpack_require__) {
-
- // Forced replacement prototype accessors methods
- module.exports = __webpack_require__(26)|| !__webpack_require__(5)(function(){
- var K = Math.random();
- // In FF throws only define methods
- __defineSetter__.call(null, K, function(){ /* empty */});
- delete __webpack_require__(2)[K];
- });
-
-/***/ },
-/* 246 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toObject = __webpack_require__(56)
- , aFunction = __webpack_require__(9)
- , $defineProperty = __webpack_require__(11);
-
- // B.2.2.3 Object.prototype.__defineSetter__(P, setter)
- __webpack_require__(4) && $export($export.P + __webpack_require__(245), 'Object', {
- __defineSetter__: function __defineSetter__(P, setter){
- $defineProperty.f(toObject(this), P, {set: aFunction(setter), enumerable: true, configurable: true});
- }
- });
-
-/***/ },
-/* 247 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toObject = __webpack_require__(56)
- , toPrimitive = __webpack_require__(16)
- , getPrototypeOf = __webpack_require__(57)
- , getOwnPropertyDescriptor = __webpack_require__(49).f;
-
- // B.2.2.4 Object.prototype.__lookupGetter__(P)
- __webpack_require__(4) && $export($export.P + __webpack_require__(245), 'Object', {
- __lookupGetter__: function __lookupGetter__(P){
- var O = toObject(this)
- , K = toPrimitive(P, true)
- , D;
- do {
- if(D = getOwnPropertyDescriptor(O, K))return D.get;
- } while(O = getPrototypeOf(O));
- }
- });
-
-/***/ },
-/* 248 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toObject = __webpack_require__(56)
- , toPrimitive = __webpack_require__(16)
- , getPrototypeOf = __webpack_require__(57)
- , getOwnPropertyDescriptor = __webpack_require__(49).f;
-
- // B.2.2.5 Object.prototype.__lookupSetter__(P)
- __webpack_require__(4) && $export($export.P + __webpack_require__(245), 'Object', {
- __lookupSetter__: function __lookupSetter__(P){
- var O = toObject(this)
- , K = toPrimitive(P, true)
- , D;
- do {
- if(D = getOwnPropertyDescriptor(O, K))return D.set;
- } while(O = getPrototypeOf(O));
- }
- });
-
-/***/ },
-/* 249 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var $export = __webpack_require__(6);
-
- $export($export.P + $export.R, 'Map', {toJSON: __webpack_require__(250)('Map')});
-
-/***/ },
-/* 250 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var classof = __webpack_require__(152)
- , from = __webpack_require__(251);
- module.exports = function(NAME){
- return function toJSON(){
- if(classof(this) != NAME)throw TypeError(NAME + "#toJSON isn't generic");
- return from(this);
- };
- };
-
-/***/ },
-/* 251 */
-/***/ function(module, exports, __webpack_require__) {
-
- var forOf = __webpack_require__(185);
-
- module.exports = function(iter, ITERATOR){
- var result = [];
- forOf(iter, false, result.push, result, ITERATOR);
- return result;
- };
-
-
-/***/ },
-/* 252 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var $export = __webpack_require__(6);
-
- $export($export.P + $export.R, 'Set', {toJSON: __webpack_require__(250)('Set')});
-
-/***/ },
-/* 253 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/ljharb/proposal-global
- var $export = __webpack_require__(6);
-
- $export($export.S, 'System', {global: __webpack_require__(2)});
-
-/***/ },
-/* 254 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/ljharb/proposal-is-error
- var $export = __webpack_require__(6)
- , cof = __webpack_require__(32);
-
- $export($export.S, 'Error', {
- isError: function isError(it){
- return cof(it) === 'Error';
- }
- });
-
-/***/ },
-/* 255 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- iaddh: function iaddh(x0, x1, y0, y1){
- var $x0 = x0 >>> 0
- , $x1 = x1 >>> 0
- , $y0 = y0 >>> 0;
- return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;
- }
- });
-
-/***/ },
-/* 256 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- isubh: function isubh(x0, x1, y0, y1){
- var $x0 = x0 >>> 0
- , $x1 = x1 >>> 0
- , $y0 = y0 >>> 0;
- return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;
- }
- });
-
-/***/ },
-/* 257 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- imulh: function imulh(u, v){
- var UINT16 = 0xffff
- , $u = +u
- , $v = +v
- , u0 = $u & UINT16
- , v0 = $v & UINT16
- , u1 = $u >> 16
- , v1 = $v >> 16
- , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
- return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);
- }
- });
-
-/***/ },
-/* 258 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- umulh: function umulh(u, v){
- var UINT16 = 0xffff
- , $u = +u
- , $v = +v
- , u0 = $u & UINT16
- , v0 = $v & UINT16
- , u1 = $u >>> 16
- , v1 = $v >>> 16
- , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
- return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);
- }
- });
-
-/***/ },
-/* 259 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(260)
- , anObject = __webpack_require__(12)
- , toMetaKey = metadata.key
- , ordinaryDefineOwnMetadata = metadata.set;
-
- metadata.exp({defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey){
- ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));
- }});
-
-/***/ },
-/* 260 */
-/***/ function(module, exports, __webpack_require__) {
-
- var Map = __webpack_require__(190)
- , $export = __webpack_require__(6)
- , shared = __webpack_require__(21)('metadata')
- , store = shared.store || (shared.store = new (__webpack_require__(194)));
-
- var getOrCreateMetadataMap = function(target, targetKey, create){
- var targetMetadata = store.get(target);
- if(!targetMetadata){
- if(!create)return undefined;
- store.set(target, targetMetadata = new Map);
- }
- var keyMetadata = targetMetadata.get(targetKey);
- if(!keyMetadata){
- if(!create)return undefined;
- targetMetadata.set(targetKey, keyMetadata = new Map);
- } return keyMetadata;
- };
- var ordinaryHasOwnMetadata = function(MetadataKey, O, P){
- var metadataMap = getOrCreateMetadataMap(O, P, false);
- return metadataMap === undefined ? false : metadataMap.has(MetadataKey);
- };
- var ordinaryGetOwnMetadata = function(MetadataKey, O, P){
- var metadataMap = getOrCreateMetadataMap(O, P, false);
- return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);
- };
- var ordinaryDefineOwnMetadata = function(MetadataKey, MetadataValue, O, P){
- getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);
- };
- var ordinaryOwnMetadataKeys = function(target, targetKey){
- var metadataMap = getOrCreateMetadataMap(target, targetKey, false)
- , keys = [];
- if(metadataMap)metadataMap.forEach(function(_, key){ keys.push(key); });
- return keys;
- };
- var toMetaKey = function(it){
- return it === undefined || typeof it == 'symbol' ? it : String(it);
- };
- var exp = function(O){
- $export($export.S, 'Reflect', O);
- };
-
- module.exports = {
- store: store,
- map: getOrCreateMetadataMap,
- has: ordinaryHasOwnMetadata,
- get: ordinaryGetOwnMetadata,
- set: ordinaryDefineOwnMetadata,
- keys: ordinaryOwnMetadataKeys,
- key: toMetaKey,
- exp: exp
- };
-
-/***/ },
-/* 261 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(260)
- , anObject = __webpack_require__(12)
- , toMetaKey = metadata.key
- , getOrCreateMetadataMap = metadata.map
- , store = metadata.store;
-
- metadata.exp({deleteMetadata: function deleteMetadata(metadataKey, target /*, targetKey */){
- var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2])
- , metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);
- if(metadataMap === undefined || !metadataMap['delete'](metadataKey))return false;
- if(metadataMap.size)return true;
- var targetMetadata = store.get(target);
- targetMetadata['delete'](targetKey);
- return !!targetMetadata.size || store['delete'](target);
- }});
-
-/***/ },
-/* 262 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(260)
- , anObject = __webpack_require__(12)
- , getPrototypeOf = __webpack_require__(57)
- , ordinaryHasOwnMetadata = metadata.has
- , ordinaryGetOwnMetadata = metadata.get
- , toMetaKey = metadata.key;
-
- var ordinaryGetMetadata = function(MetadataKey, O, P){
- var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
- if(hasOwn)return ordinaryGetOwnMetadata(MetadataKey, O, P);
- var parent = getPrototypeOf(O);
- return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;
- };
-
- metadata.exp({getMetadata: function getMetadata(metadataKey, target /*, targetKey */){
- return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
- }});
-
-/***/ },
-/* 263 */
-/***/ function(module, exports, __webpack_require__) {
-
- var Set = __webpack_require__(193)
- , from = __webpack_require__(251)
- , metadata = __webpack_require__(260)
- , anObject = __webpack_require__(12)
- , getPrototypeOf = __webpack_require__(57)
- , ordinaryOwnMetadataKeys = metadata.keys
- , toMetaKey = metadata.key;
-
- var ordinaryMetadataKeys = function(O, P){
- var oKeys = ordinaryOwnMetadataKeys(O, P)
- , parent = getPrototypeOf(O);
- if(parent === null)return oKeys;
- var pKeys = ordinaryMetadataKeys(parent, P);
- return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;
- };
-
- metadata.exp({getMetadataKeys: function getMetadataKeys(target /*, targetKey */){
- return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
- }});
-
-/***/ },
-/* 264 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(260)
- , anObject = __webpack_require__(12)
- , ordinaryGetOwnMetadata = metadata.get
- , toMetaKey = metadata.key;
-
- metadata.exp({getOwnMetadata: function getOwnMetadata(metadataKey, target /*, targetKey */){
- return ordinaryGetOwnMetadata(metadataKey, anObject(target)
- , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
- }});
-
-/***/ },
-/* 265 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(260)
- , anObject = __webpack_require__(12)
- , ordinaryOwnMetadataKeys = metadata.keys
- , toMetaKey = metadata.key;
-
- metadata.exp({getOwnMetadataKeys: function getOwnMetadataKeys(target /*, targetKey */){
- return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
- }});
-
-/***/ },
-/* 266 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(260)
- , anObject = __webpack_require__(12)
- , getPrototypeOf = __webpack_require__(57)
- , ordinaryHasOwnMetadata = metadata.has
- , toMetaKey = metadata.key;
-
- var ordinaryHasMetadata = function(MetadataKey, O, P){
- var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
- if(hasOwn)return true;
- var parent = getPrototypeOf(O);
- return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;
- };
-
- metadata.exp({hasMetadata: function hasMetadata(metadataKey, target /*, targetKey */){
- return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
- }});
-
-/***/ },
-/* 267 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(260)
- , anObject = __webpack_require__(12)
- , ordinaryHasOwnMetadata = metadata.has
- , toMetaKey = metadata.key;
-
- metadata.exp({hasOwnMetadata: function hasOwnMetadata(metadataKey, target /*, targetKey */){
- return ordinaryHasOwnMetadata(metadataKey, anObject(target)
- , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
- }});
-
-/***/ },
-/* 268 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(260)
- , anObject = __webpack_require__(12)
- , aFunction = __webpack_require__(9)
- , toMetaKey = metadata.key
- , ordinaryDefineOwnMetadata = metadata.set;
-
- metadata.exp({metadata: function metadata(metadataKey, metadataValue){
- return function decorator(target, targetKey){
- ordinaryDefineOwnMetadata(
- metadataKey, metadataValue,
- (targetKey !== undefined ? anObject : aFunction)(target),
- toMetaKey(targetKey)
- );
- };
- }});
-
-/***/ },
-/* 269 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask
- var $export = __webpack_require__(6)
- , microtask = __webpack_require__(188)()
- , process = __webpack_require__(2).process
- , isNode = __webpack_require__(32)(process) == 'process';
-
- $export($export.G, {
- asap: function asap(fn){
- var domain = isNode && process.domain;
- microtask(domain ? domain.bind(fn) : fn);
- }
- });
-
-/***/ },
-/* 270 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/zenparsing/es-observable
- var $export = __webpack_require__(6)
- , global = __webpack_require__(2)
- , core = __webpack_require__(7)
- , microtask = __webpack_require__(188)()
- , OBSERVABLE = __webpack_require__(23)('observable')
- , aFunction = __webpack_require__(9)
- , anObject = __webpack_require__(12)
- , anInstance = __webpack_require__(184)
- , redefineAll = __webpack_require__(189)
- , hide = __webpack_require__(10)
- , forOf = __webpack_require__(185)
- , RETURN = forOf.RETURN;
-
- var getMethod = function(fn){
- return fn == null ? undefined : aFunction(fn);
- };
-
- var cleanupSubscription = function(subscription){
- var cleanup = subscription._c;
- if(cleanup){
- subscription._c = undefined;
- cleanup();
- }
- };
-
- var subscriptionClosed = function(subscription){
- return subscription._o === undefined;
- };
-
- var closeSubscription = function(subscription){
- if(!subscriptionClosed(subscription)){
- subscription._o = undefined;
- cleanupSubscription(subscription);
- }
- };
-
- var Subscription = function(observer, subscriber){
- anObject(observer);
- this._c = undefined;
- this._o = observer;
- observer = new SubscriptionObserver(this);
- try {
- var cleanup = subscriber(observer)
- , subscription = cleanup;
- if(cleanup != null){
- if(typeof cleanup.unsubscribe === 'function')cleanup = function(){ subscription.unsubscribe(); };
- else aFunction(cleanup);
- this._c = cleanup;
- }
- } catch(e){
- observer.error(e);
- return;
- } if(subscriptionClosed(this))cleanupSubscription(this);
- };
-
- Subscription.prototype = redefineAll({}, {
- unsubscribe: function unsubscribe(){ closeSubscription(this); }
- });
-
- var SubscriptionObserver = function(subscription){
- this._s = subscription;
- };
-
- SubscriptionObserver.prototype = redefineAll({}, {
- next: function next(value){
- var subscription = this._s;
- if(!subscriptionClosed(subscription)){
- var observer = subscription._o;
- try {
- var m = getMethod(observer.next);
- if(m)return m.call(observer, value);
- } catch(e){
- try {
- closeSubscription(subscription);
- } finally {
- throw e;
- }
- }
- }
- },
- error: function error(value){
- var subscription = this._s;
- if(subscriptionClosed(subscription))throw value;
- var observer = subscription._o;
- subscription._o = undefined;
- try {
- var m = getMethod(observer.error);
- if(!m)throw value;
- value = m.call(observer, value);
- } catch(e){
- try {
- cleanupSubscription(subscription);
- } finally {
- throw e;
- }
- } cleanupSubscription(subscription);
- return value;
- },
- complete: function complete(value){
- var subscription = this._s;
- if(!subscriptionClosed(subscription)){
- var observer = subscription._o;
- subscription._o = undefined;
- try {
- var m = getMethod(observer.complete);
- value = m ? m.call(observer, value) : undefined;
- } catch(e){
- try {
- cleanupSubscription(subscription);
- } finally {
- throw e;
- }
- } cleanupSubscription(subscription);
- return value;
- }
- }
- });
-
- var $Observable = function Observable(subscriber){
- anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);
- };
-
- redefineAll($Observable.prototype, {
- subscribe: function subscribe(observer){
- return new Subscription(observer, this._f);
- },
- forEach: function forEach(fn){
- var that = this;
- return new (core.Promise || global.Promise)(function(resolve, reject){
- aFunction(fn);
- var subscription = that.subscribe({
- next : function(value){
- try {
- return fn(value);
- } catch(e){
- reject(e);
- subscription.unsubscribe();
- }
- },
- error: reject,
- complete: resolve
- });
- });
- }
- });
-
- redefineAll($Observable, {
- from: function from(x){
- var C = typeof this === 'function' ? this : $Observable;
- var method = getMethod(anObject(x)[OBSERVABLE]);
- if(method){
- var observable = anObject(method.call(x));
- return observable.constructor === C ? observable : new C(function(observer){
- return observable.subscribe(observer);
- });
- }
- return new C(function(observer){
- var done = false;
- microtask(function(){
- if(!done){
- try {
- if(forOf(x, false, function(it){
- observer.next(it);
- if(done)return RETURN;
- }) === RETURN)return;
- } catch(e){
- if(done)throw e;
- observer.error(e);
- return;
- } observer.complete();
- }
- });
- return function(){ done = true; };
- });
- },
- of: function of(){
- for(var i = 0, l = arguments.length, items = Array(l); i < l;)items[i] = arguments[i++];
- return new (typeof this === 'function' ? this : $Observable)(function(observer){
- var done = false;
- microtask(function(){
- if(!done){
- for(var i = 0; i < items.length; ++i){
- observer.next(items[i]);
- if(done)return;
- } observer.complete();
- }
- });
- return function(){ done = true; };
- });
- }
- });
-
- hide($Observable.prototype, OBSERVABLE, function(){ return this; });
-
- $export($export.G, {Observable: $Observable});
-
- __webpack_require__(182)('Observable');
-
-/***/ },
-/* 271 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , $task = __webpack_require__(187);
- $export($export.G + $export.B, {
- setImmediate: $task.set,
- clearImmediate: $task.clear
- });
-
-/***/ },
-/* 272 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(179);
- var global = __webpack_require__(2)
- , hide = __webpack_require__(10)
- , Iterators = __webpack_require__(130)
- , TO_STRING_TAG = __webpack_require__(23)('toStringTag');
-
- for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
- var NAME = collections[i]
- , Collection = global[NAME]
- , proto = Collection && Collection.prototype;
- if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);
- Iterators[NAME] = Iterators.Array;
- }
-
-/***/ },
-/* 273 */
-/***/ function(module, exports, __webpack_require__) {
-
- // ie9- setTimeout & setInterval additional parameters fix
- var global = __webpack_require__(2)
- , $export = __webpack_require__(6)
- , invoke = __webpack_require__(74)
- , partial = __webpack_require__(274)
- , navigator = global.navigator
- , MSIE = !!navigator && /MSIE .\./.test(navigator.userAgent); // <- dirty ie9- check
- var wrap = function(set){
- return MSIE ? function(fn, time /*, ...args */){
- return set(invoke(
- partial,
- [].slice.call(arguments, 2),
- typeof fn == 'function' ? fn : Function(fn)
- ), time);
- } : set;
- };
- $export($export.G + $export.B + $export.F * MSIE, {
- setTimeout: wrap(global.setTimeout),
- setInterval: wrap(global.setInterval)
- });
-
-/***/ },
-/* 274 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var path = __webpack_require__(275)
- , invoke = __webpack_require__(74)
- , aFunction = __webpack_require__(9);
- module.exports = function(/* ...pargs */){
- var fn = aFunction(this)
- , length = arguments.length
- , pargs = Array(length)
- , i = 0
- , _ = path._
- , holder = false;
- while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true;
- return function(/* ...args */){
- var that = this
- , aLen = arguments.length
- , j = 0, k = 0, args;
- if(!holder && !aLen)return invoke(fn, pargs, that);
- args = pargs.slice();
- if(holder)for(;length > j; j++)if(args[j] === _)args[j] = arguments[k++];
- while(aLen > k)args.push(arguments[k++]);
- return invoke(fn, args, that);
- };
- };
-
-/***/ },
-/* 275 */
-/***/ function(module, exports, __webpack_require__) {
-
- module.exports = __webpack_require__(7);
-
-/***/ },
-/* 276 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var ctx = __webpack_require__(8)
- , $export = __webpack_require__(6)
- , createDesc = __webpack_require__(17)
- , assign = __webpack_require__(67)
- , create = __webpack_require__(44)
- , getPrototypeOf = __webpack_require__(57)
- , getKeys = __webpack_require__(28)
- , dP = __webpack_require__(11)
- , keyOf = __webpack_require__(27)
- , aFunction = __webpack_require__(9)
- , forOf = __webpack_require__(185)
- , isIterable = __webpack_require__(277)
- , $iterCreate = __webpack_require__(131)
- , step = __webpack_require__(180)
- , isObject = __webpack_require__(13)
- , toIObject = __webpack_require__(30)
- , DESCRIPTORS = __webpack_require__(4)
- , has = __webpack_require__(3);
-
- // 0 -> Dict.forEach
- // 1 -> Dict.map
- // 2 -> Dict.filter
- // 3 -> Dict.some
- // 4 -> Dict.every
- // 5 -> Dict.find
- // 6 -> Dict.findKey
- // 7 -> Dict.mapPairs
- var createDictMethod = function(TYPE){
- var IS_MAP = TYPE == 1
- , IS_EVERY = TYPE == 4;
- return function(object, callbackfn, that /* = undefined */){
- var f = ctx(callbackfn, that, 3)
- , O = toIObject(object)
- , result = IS_MAP || TYPE == 7 || TYPE == 2
- ? new (typeof this == 'function' ? this : Dict) : undefined
- , key, val, res;
- for(key in O)if(has(O, key)){
- val = O[key];
- res = f(val, key, object);
- if(TYPE){
- if(IS_MAP)result[key] = res; // map
- else if(res)switch(TYPE){
- case 2: result[key] = val; break; // filter
- case 3: return true; // some
- case 5: return val; // find
- case 6: return key; // findKey
- case 7: result[res[0]] = res[1]; // mapPairs
- } else if(IS_EVERY)return false; // every
- }
- }
- return TYPE == 3 || IS_EVERY ? IS_EVERY : result;
- };
- };
- var findKey = createDictMethod(6);
-
- var createDictIter = function(kind){
- return function(it){
- return new DictIterator(it, kind);
- };
- };
- var DictIterator = function(iterated, kind){
- this._t = toIObject(iterated); // target
- this._a = getKeys(iterated); // keys
- this._i = 0; // next index
- this._k = kind; // kind
- };
- $iterCreate(DictIterator, 'Dict', function(){
- var that = this
- , O = that._t
- , keys = that._a
- , kind = that._k
- , key;
- do {
- if(that._i >= keys.length){
- that._t = undefined;
- return step(1);
- }
- } while(!has(O, key = keys[that._i++]));
- if(kind == 'keys' )return step(0, key);
- if(kind == 'values')return step(0, O[key]);
- return step(0, [key, O[key]]);
- });
-
- function Dict(iterable){
- var dict = create(null);
- if(iterable != undefined){
- if(isIterable(iterable)){
- forOf(iterable, true, function(key, value){
- dict[key] = value;
- });
- } else assign(dict, iterable);
- }
- return dict;
- }
- Dict.prototype = null;
-
- function reduce(object, mapfn, init){
- aFunction(mapfn);
- var O = toIObject(object)
- , keys = getKeys(O)
- , length = keys.length
- , i = 0
- , memo, key;
- if(arguments.length < 3){
- if(!length)throw TypeError('Reduce of empty object with no initial value');
- memo = O[keys[i++]];
- } else memo = Object(init);
- while(length > i)if(has(O, key = keys[i++])){
- memo = mapfn(memo, O[key], key, object);
- }
- return memo;
- }
-
- function includes(object, el){
- return (el == el ? keyOf(object, el) : findKey(object, function(it){
- return it != it;
- })) !== undefined;
- }
-
- function get(object, key){
- if(has(object, key))return object[key];
- }
- function set(object, key, value){
- if(DESCRIPTORS && key in Object)dP.f(object, key, createDesc(0, value));
- else object[key] = value;
- return object;
- }
-
- function isDict(it){
- return isObject(it) && getPrototypeOf(it) === Dict.prototype;
- }
-
- $export($export.G + $export.F, {Dict: Dict});
-
- $export($export.S, 'Dict', {
- keys: createDictIter('keys'),
- values: createDictIter('values'),
- entries: createDictIter('entries'),
- forEach: createDictMethod(0),
- map: createDictMethod(1),
- filter: createDictMethod(2),
- some: createDictMethod(3),
- every: createDictMethod(4),
- find: createDictMethod(5),
- findKey: findKey,
- mapPairs: createDictMethod(7),
- reduce: reduce,
- keyOf: keyOf,
- includes: includes,
- has: has,
- get: get,
- set: set,
- isDict: isDict
- });
-
-/***/ },
-/* 277 */
-/***/ function(module, exports, __webpack_require__) {
-
- var classof = __webpack_require__(152)
- , ITERATOR = __webpack_require__(23)('iterator')
- , Iterators = __webpack_require__(130);
- module.exports = __webpack_require__(7).isIterable = function(it){
- var O = Object(it);
- return O[ITERATOR] !== undefined
- || '@@iterator' in O
- || Iterators.hasOwnProperty(classof(O));
- };
-
-/***/ },
-/* 278 */
-/***/ function(module, exports, __webpack_require__) {
-
- var anObject = __webpack_require__(12)
- , get = __webpack_require__(151);
- module.exports = __webpack_require__(7).getIterator = function(it){
- var iterFn = get(it);
- if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');
- return anObject(iterFn.call(it));
- };
-
-/***/ },
-/* 279 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , core = __webpack_require__(7)
- , $export = __webpack_require__(6)
- , partial = __webpack_require__(274);
- // https://esdiscuss.org/topic/promise-returning-delay-function
- $export($export.G + $export.F, {
- delay: function delay(time){
- return new (core.Promise || global.Promise)(function(resolve){
- setTimeout(partial.call(resolve, true), time);
- });
- }
- });
-
-/***/ },
-/* 280 */
-/***/ function(module, exports, __webpack_require__) {
-
- var path = __webpack_require__(275)
- , $export = __webpack_require__(6);
-
- // Placeholder
- __webpack_require__(7)._ = path._ = path._ || {};
-
- $export($export.P + $export.F, 'Function', {part: __webpack_require__(274)});
-
-/***/ },
-/* 281 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6);
-
- $export($export.S + $export.F, 'Object', {isObject: __webpack_require__(13)});
-
-/***/ },
-/* 282 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6);
-
- $export($export.S + $export.F, 'Object', {classof: __webpack_require__(152)});
-
-/***/ },
-/* 283 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , define = __webpack_require__(284);
-
- $export($export.S + $export.F, 'Object', {define: define});
-
-/***/ },
-/* 284 */
-/***/ function(module, exports, __webpack_require__) {
-
- var dP = __webpack_require__(11)
- , gOPD = __webpack_require__(49)
- , ownKeys = __webpack_require__(208)
- , toIObject = __webpack_require__(30);
-
- module.exports = function define(target, mixin){
- var keys = ownKeys(toIObject(mixin))
- , length = keys.length
- , i = 0, key;
- while(length > i)dP.f(target, key = keys[i++], gOPD.f(mixin, key));
- return target;
- };
-
-/***/ },
-/* 285 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , define = __webpack_require__(284)
- , create = __webpack_require__(44);
-
- $export($export.S + $export.F, 'Object', {
- make: function(proto, mixin){
- return define(create(proto), mixin);
- }
- });
-
-/***/ },
-/* 286 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- __webpack_require__(129)(Number, 'Number', function(iterated){
- this._l = +iterated;
- this._i = 0;
- }, function(){
- var i = this._i++
- , done = !(i < this._l);
- return {done: done, value: done ? undefined : i};
- });
-
-/***/ },
-/* 287 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/benjamingr/RexExp.escape
- var $export = __webpack_require__(6)
- , $re = __webpack_require__(288)(/[\\^$*+?.()|[\]{}]/g, '\\$&');
-
- $export($export.S, 'RegExp', {escape: function escape(it){ return $re(it); }});
-
-
-/***/ },
-/* 288 */
-/***/ function(module, exports) {
-
- module.exports = function(regExp, replace){
- var replacer = replace === Object(replace) ? function(part){
- return replace[part];
- } : replace;
- return function(it){
- return String(it).replace(regExp, replacer);
- };
- };
-
-/***/ },
-/* 289 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6);
- var $re = __webpack_require__(288)(/[&<>"']/g, {
- '&': '&amp;',
- '<': '&lt;',
- '>': '&gt;',
- '"': '&quot;',
- "'": '&apos;'
- });
-
- $export($export.P + $export.F, 'String', {escapeHTML: function escapeHTML(){ return $re(this); }});
-
-/***/ },
-/* 290 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6);
- var $re = __webpack_require__(288)(/&(?:amp|lt|gt|quot|apos);/g, {
- '&amp;': '&',
- '&lt;': '<',
- '&gt;': '>',
- '&quot;': '"',
- '&apos;': "'"
- });
-
- $export($export.P + $export.F, 'String', {unescapeHTML: function unescapeHTML(){ return $re(this); }});
-
-/***/ }
-/******/ ]);
-// CommonJS export
-if(typeof module != 'undefined' && module.exports)module.exports = __e;
-// RequireJS export
-else if(typeof define == 'function' && define.amd)define(function(){return __e});
-// Export to global object
-else __g.core = __e;
-}(1, 1); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/client/library.min.js b/node_modules/babel-runtime/node_modules/core-js/client/library.min.js
deleted file mode 100644
index d69a0de9b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/client/library.min.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * core-js 2.4.1
- * https://github.com/zloirock/core-js
- * License: http://rock.mit-license.org
- * © 2016 Denis Pushkarev
- */
-!function(a,b,c){"use strict";!function(a){function __webpack_require__(c){if(b[c])return b[c].exports;var d=b[c]={exports:{},id:c,loaded:!1};return a[c].call(d.exports,d,d.exports,__webpack_require__),d.loaded=!0,d.exports}var b={};return __webpack_require__.m=a,__webpack_require__.c=b,__webpack_require__.p="",__webpack_require__(0)}([function(a,b,c){c(1),c(50),c(51),c(52),c(54),c(55),c(58),c(59),c(60),c(61),c(62),c(63),c(64),c(65),c(66),c(68),c(70),c(72),c(75),c(76),c(79),c(80),c(81),c(82),c(84),c(85),c(86),c(87),c(88),c(92),c(94),c(95),c(96),c(98),c(99),c(100),c(102),c(103),c(104),c(106),c(107),c(108),c(109),c(110),c(111),c(112),c(113),c(114),c(115),c(116),c(117),c(118),c(119),c(121),c(125),c(126),c(127),c(128),c(132),c(134),c(135),c(136),c(137),c(138),c(139),c(140),c(141),c(142),c(143),c(144),c(145),c(146),c(147),c(154),c(155),c(157),c(158),c(159),c(163),c(164),c(165),c(166),c(167),c(169),c(170),c(171),c(172),c(175),c(177),c(178),c(179),c(181),c(183),c(190),c(193),c(194),c(196),c(197),c(198),c(199),c(200),c(201),c(202),c(203),c(204),c(205),c(206),c(207),c(209),c(210),c(211),c(212),c(213),c(214),c(215),c(218),c(219),c(221),c(222),c(223),c(224),c(225),c(226),c(227),c(228),c(229),c(230),c(231),c(233),c(234),c(235),c(236),c(238),c(239),c(240),c(241),c(243),c(244),c(246),c(247),c(248),c(249),c(252),c(253),c(254),c(255),c(256),c(257),c(258),c(259),c(261),c(262),c(263),c(264),c(265),c(266),c(267),c(268),c(269),c(270),c(271),c(272),c(273),c(276),c(151),c(278),c(277),c(279),c(280),c(281),c(282),c(283),c(285),c(286),c(287),c(289),a.exports=c(290)},function(a,b,d){var e=d(2),f=d(3),g=d(4),h=d(6),i=d(18),j=d(19).KEY,k=d(5),l=d(21),m=d(22),n=d(20),o=d(23),p=d(24),q=d(25),r=d(27),s=d(40),t=d(43),u=d(12),v=d(30),w=d(16),x=d(17),y=d(44),z=d(47),A=d(49),B=d(11),C=d(28),D=A.f,E=B.f,F=z.f,G=e.Symbol,H=e.JSON,I=H&&H.stringify,J="prototype",K=o("_hidden"),L=o("toPrimitive"),M={}.propertyIsEnumerable,N=l("symbol-registry"),O=l("symbols"),P=l("op-symbols"),Q=Object[J],R="function"==typeof G,S=e.QObject,T=!S||!S[J]||!S[J].findChild,U=g&&k(function(){return 7!=y(E({},"a",{get:function(){return E(this,"a",{value:7}).a}})).a})?function(a,b,c){var d=D(Q,b);d&&delete Q[b],E(a,b,c),d&&a!==Q&&E(Q,b,d)}:E,V=function(a){var b=O[a]=y(G[J]);return b._k=a,b},W=R&&"symbol"==typeof G.iterator?function(a){return"symbol"==typeof a}:function(a){return a instanceof G},X=function defineProperty(a,b,c){return a===Q&&X(P,b,c),u(a),b=w(b,!0),u(c),f(O,b)?(c.enumerable?(f(a,K)&&a[K][b]&&(a[K][b]=!1),c=y(c,{enumerable:x(0,!1)})):(f(a,K)||E(a,K,x(1,{})),a[K][b]=!0),U(a,b,c)):E(a,b,c)},Y=function defineProperties(a,b){u(a);for(var c,d=s(b=v(b)),e=0,f=d.length;f>e;)X(a,c=d[e++],b[c]);return a},Z=function create(a,b){return b===c?y(a):Y(y(a),b)},$=function propertyIsEnumerable(a){var b=M.call(this,a=w(a,!0));return!(this===Q&&f(O,a)&&!f(P,a))&&(!(b||!f(this,a)||!f(O,a)||f(this,K)&&this[K][a])||b)},_=function getOwnPropertyDescriptor(a,b){if(a=v(a),b=w(b,!0),a!==Q||!f(O,b)||f(P,b)){var c=D(a,b);return!c||!f(O,b)||f(a,K)&&a[K][b]||(c.enumerable=!0),c}},aa=function getOwnPropertyNames(a){for(var b,c=F(v(a)),d=[],e=0;c.length>e;)f(O,b=c[e++])||b==K||b==j||d.push(b);return d},ba=function getOwnPropertySymbols(a){for(var b,c=a===Q,d=F(c?P:v(a)),e=[],g=0;d.length>g;)!f(O,b=d[g++])||c&&!f(Q,b)||e.push(O[b]);return e};R||(G=function Symbol(){if(this instanceof G)throw TypeError("Symbol is not a constructor!");var a=n(arguments.length>0?arguments[0]:c),b=function(c){this===Q&&b.call(P,c),f(this,K)&&f(this[K],a)&&(this[K][a]=!1),U(this,a,x(1,c))};return g&&T&&U(Q,a,{configurable:!0,set:b}),V(a)},i(G[J],"toString",function toString(){return this._k}),A.f=_,B.f=X,d(48).f=z.f=aa,d(42).f=$,d(41).f=ba,g&&!d(26)&&i(Q,"propertyIsEnumerable",$,!0),p.f=function(a){return V(o(a))}),h(h.G+h.W+h.F*!R,{Symbol:G});for(var ca="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),da=0;ca.length>da;)o(ca[da++]);for(var ca=C(o.store),da=0;ca.length>da;)q(ca[da++]);h(h.S+h.F*!R,"Symbol",{"for":function(a){return f(N,a+="")?N[a]:N[a]=G(a)},keyFor:function keyFor(a){if(W(a))return r(N,a);throw TypeError(a+" is not a symbol!")},useSetter:function(){T=!0},useSimple:function(){T=!1}}),h(h.S+h.F*!R,"Object",{create:Z,defineProperty:X,defineProperties:Y,getOwnPropertyDescriptor:_,getOwnPropertyNames:aa,getOwnPropertySymbols:ba}),H&&h(h.S+h.F*(!R||k(function(){var a=G();return"[null]"!=I([a])||"{}"!=I({a:a})||"{}"!=I(Object(a))})),"JSON",{stringify:function stringify(a){if(a!==c&&!W(a)){for(var b,d,e=[a],f=1;arguments.length>f;)e.push(arguments[f++]);return b=e[1],"function"==typeof b&&(d=b),!d&&t(b)||(b=function(a,b){if(d&&(b=d.call(this,a,b)),!W(b))return b}),e[1]=b,I.apply(H,e)}}}),G[J][L]||d(10)(G[J],L,G[J].valueOf),m(G,"Symbol"),m(Math,"Math",!0),m(e.JSON,"JSON",!0)},function(a,c){var d=a.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof b&&(b=d)},function(a,b){var c={}.hasOwnProperty;a.exports=function(a,b){return c.call(a,b)}},function(a,b,c){a.exports=!c(5)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b){a.exports=function(a){try{return!!a()}catch(b){return!0}}},function(a,b,d){var e=d(2),f=d(7),g=d(8),h=d(10),i="prototype",j=function(a,b,d){var k,l,m,n=a&j.F,o=a&j.G,p=a&j.S,q=a&j.P,r=a&j.B,s=a&j.W,t=o?f:f[b]||(f[b]={}),u=t[i],v=o?e:p?e[b]:(e[b]||{})[i];o&&(d=b);for(k in d)l=!n&&v&&v[k]!==c,l&&k in t||(m=l?v[k]:d[k],t[k]=o&&"function"!=typeof v[k]?d[k]:r&&l?g(m,e):s&&v[k]==m?function(a){var b=function(b,c,d){if(this instanceof a){switch(arguments.length){case 0:return new a;case 1:return new a(b);case 2:return new a(b,c)}return new a(b,c,d)}return a.apply(this,arguments)};return b[i]=a[i],b}(m):q&&"function"==typeof m?g(Function.call,m):m,q&&((t.virtual||(t.virtual={}))[k]=m,a&j.R&&u&&!u[k]&&h(u,k,m)))};j.F=1,j.G=2,j.S=4,j.P=8,j.B=16,j.W=32,j.U=64,j.R=128,a.exports=j},function(b,c){var d=b.exports={version:"2.4.0"};"number"==typeof a&&(a=d)},function(a,b,d){var e=d(9);a.exports=function(a,b,d){if(e(a),b===c)return a;switch(d){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,b,c){var d=c(11),e=c(17);a.exports=c(4)?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},function(a,b,c){var d=c(12),e=c(14),f=c(16),g=Object.defineProperty;b.f=c(4)?Object.defineProperty:function defineProperty(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(h){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(a[b]=c.value),a}},function(a,b,c){var d=c(13);a.exports=function(a){if(!d(a))throw TypeError(a+" is not an object!");return a}},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,b,c){a.exports=!c(4)&&!c(5)(function(){return 7!=Object.defineProperty(c(15)("div"),"a",{get:function(){return 7}}).a})},function(a,b,c){var d=c(13),e=c(2).document,f=d(e)&&d(e.createElement);a.exports=function(a){return f?e.createElement(a):{}}},function(a,b,c){var d=c(13);a.exports=function(a,b){if(!d(a))return a;var c,e;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;if("function"==typeof(c=a.valueOf)&&!d(e=c.call(a)))return e;if(!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,b,c){a.exports=c(10)},function(a,b,c){var d=c(20)("meta"),e=c(13),f=c(3),g=c(11).f,h=0,i=Object.isExtensible||function(){return!0},j=!c(5)(function(){return i(Object.preventExtensions({}))}),k=function(a){g(a,d,{value:{i:"O"+ ++h,w:{}}})},l=function(a,b){if(!e(a))return"symbol"==typeof a?a:("string"==typeof a?"S":"P")+a;if(!f(a,d)){if(!i(a))return"F";if(!b)return"E";k(a)}return a[d].i},m=function(a,b){if(!f(a,d)){if(!i(a))return!0;if(!b)return!1;k(a)}return a[d].w},n=function(a){return j&&o.NEED&&i(a)&&!f(a,d)&&k(a),a},o=a.exports={KEY:d,NEED:!1,fastKey:l,getWeak:m,onFreeze:n}},function(a,b){var d=0,e=Math.random();a.exports=function(a){return"Symbol(".concat(a===c?"":a,")_",(++d+e).toString(36))}},function(a,b,c){var d=c(2),e="__core-js_shared__",f=d[e]||(d[e]={});a.exports=function(a){return f[a]||(f[a]={})}},function(a,b,c){var d=c(11).f,e=c(3),f=c(23)("toStringTag");a.exports=function(a,b,c){a&&!e(a=c?a:a.prototype,f)&&d(a,f,{configurable:!0,value:b})}},function(a,b,c){var d=c(21)("wks"),e=c(20),f=c(2).Symbol,g="function"==typeof f,h=a.exports=function(a){return d[a]||(d[a]=g&&f[a]||(g?f:e)("Symbol."+a))};h.store=d},function(a,b,c){b.f=c(23)},function(a,b,c){var d=c(2),e=c(7),f=c(26),g=c(24),h=c(11).f;a.exports=function(a){var b=e.Symbol||(e.Symbol=f?{}:d.Symbol||{});"_"==a.charAt(0)||a in b||h(b,a,{value:g.f(a)})}},function(a,b){a.exports=!0},function(a,b,c){var d=c(28),e=c(30);a.exports=function(a,b){for(var c,f=e(a),g=d(f),h=g.length,i=0;h>i;)if(f[c=g[i++]]===b)return c}},function(a,b,c){var d=c(29),e=c(39);a.exports=Object.keys||function keys(a){return d(a,e)}},function(a,b,c){var d=c(3),e=c(30),f=c(34)(!1),g=c(38)("IE_PROTO");a.exports=function(a,b){var c,h=e(a),i=0,j=[];for(c in h)c!=g&&d(h,c)&&j.push(c);for(;b.length>i;)d(h,c=b[i++])&&(~f(j,c)||j.push(c));return j}},function(a,b,c){var d=c(31),e=c(33);a.exports=function(a){return d(e(a))}},function(a,b,c){var d=c(32);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return"String"==d(a)?a.split(""):Object(a)}},function(a,b){var c={}.toString;a.exports=function(a){return c.call(a).slice(8,-1)}},function(a,b){a.exports=function(a){if(a==c)throw TypeError("Can't call method on "+a);return a}},function(a,b,c){var d=c(30),e=c(35),f=c(37);a.exports=function(a){return function(b,c,g){var h,i=d(b),j=e(i.length),k=f(g,j);if(a&&c!=c){for(;j>k;)if(h=i[k++],h!=h)return!0}else for(;j>k;k++)if((a||k in i)&&i[k]===c)return a||k||0;return!a&&-1}}},function(a,b,c){var d=c(36),e=Math.min;a.exports=function(a){return a>0?e(d(a),9007199254740991):0}},function(a,b){var c=Math.ceil,d=Math.floor;a.exports=function(a){return isNaN(a=+a)?0:(a>0?d:c)(a)}},function(a,b,c){var d=c(36),e=Math.max,f=Math.min;a.exports=function(a,b){return a=d(a),a<0?e(a+b,0):f(a,b)}},function(a,b,c){var d=c(21)("keys"),e=c(20);a.exports=function(a){return d[a]||(d[a]=e(a))}},function(a,b){a.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(a,b,c){var d=c(28),e=c(41),f=c(42);a.exports=function(a){var b=d(a),c=e.f;if(c)for(var g,h=c(a),i=f.f,j=0;h.length>j;)i.call(a,g=h[j++])&&b.push(g);return b}},function(a,b){b.f=Object.getOwnPropertySymbols},function(a,b){b.f={}.propertyIsEnumerable},function(a,b,c){var d=c(32);a.exports=Array.isArray||function isArray(a){return"Array"==d(a)}},function(a,b,d){var e=d(12),f=d(45),g=d(39),h=d(38)("IE_PROTO"),i=function(){},j="prototype",k=function(){var a,b=d(15)("iframe"),c=g.length,e="<",f=">";for(b.style.display="none",d(46).appendChild(b),b.src="javascript:",a=b.contentWindow.document,a.open(),a.write(e+"script"+f+"document.F=Object"+e+"/script"+f),a.close(),k=a.F;c--;)delete k[j][g[c]];return k()};a.exports=Object.create||function create(a,b){var d;return null!==a?(i[j]=e(a),d=new i,i[j]=null,d[h]=a):d=k(),b===c?d:f(d,b)}},function(a,b,c){var d=c(11),e=c(12),f=c(28);a.exports=c(4)?Object.defineProperties:function defineProperties(a,b){e(a);for(var c,g=f(b),h=g.length,i=0;h>i;)d.f(a,c=g[i++],b[c]);return a}},function(a,b,c){a.exports=c(2).document&&document.documentElement},function(a,b,c){var d=c(30),e=c(48).f,f={}.toString,g="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],h=function(a){try{return e(a)}catch(b){return g.slice()}};a.exports.f=function getOwnPropertyNames(a){return g&&"[object Window]"==f.call(a)?h(a):e(d(a))}},function(a,b,c){var d=c(29),e=c(39).concat("length","prototype");b.f=Object.getOwnPropertyNames||function getOwnPropertyNames(a){return d(a,e)}},function(a,b,c){var d=c(42),e=c(17),f=c(30),g=c(16),h=c(3),i=c(14),j=Object.getOwnPropertyDescriptor;b.f=c(4)?j:function getOwnPropertyDescriptor(a,b){if(a=f(a),b=g(b,!0),i)try{return j(a,b)}catch(c){}if(h(a,b))return e(!d.f.call(a,b),a[b])}},function(a,b,c){var d=c(6);d(d.S+d.F*!c(4),"Object",{defineProperty:c(11).f})},function(a,b,c){var d=c(6);d(d.S+d.F*!c(4),"Object",{defineProperties:c(45)})},function(a,b,c){var d=c(30),e=c(49).f;c(53)("getOwnPropertyDescriptor",function(){return function getOwnPropertyDescriptor(a,b){return e(d(a),b)}})},function(a,b,c){var d=c(6),e=c(7),f=c(5);a.exports=function(a,b){var c=(e.Object||{})[a]||Object[a],g={};g[a]=b(c),d(d.S+d.F*f(function(){c(1)}),"Object",g)}},function(a,b,c){var d=c(6);d(d.S,"Object",{create:c(44)})},function(a,b,c){var d=c(56),e=c(57);c(53)("getPrototypeOf",function(){return function getPrototypeOf(a){return e(d(a))}})},function(a,b,c){var d=c(33);a.exports=function(a){return Object(d(a))}},function(a,b,c){var d=c(3),e=c(56),f=c(38)("IE_PROTO"),g=Object.prototype;a.exports=Object.getPrototypeOf||function(a){return a=e(a),d(a,f)?a[f]:"function"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?g:null}},function(a,b,c){var d=c(56),e=c(28);c(53)("keys",function(){return function keys(a){return e(d(a))}})},function(a,b,c){c(53)("getOwnPropertyNames",function(){return c(47).f})},function(a,b,c){var d=c(13),e=c(19).onFreeze;c(53)("freeze",function(a){return function freeze(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(13),e=c(19).onFreeze;c(53)("seal",function(a){return function seal(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(13),e=c(19).onFreeze;c(53)("preventExtensions",function(a){return function preventExtensions(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(13);c(53)("isFrozen",function(a){return function isFrozen(b){return!d(b)||!!a&&a(b)}})},function(a,b,c){var d=c(13);c(53)("isSealed",function(a){return function isSealed(b){return!d(b)||!!a&&a(b)}})},function(a,b,c){var d=c(13);c(53)("isExtensible",function(a){return function isExtensible(b){return!!d(b)&&(!a||a(b))}})},function(a,b,c){var d=c(6);d(d.S+d.F,"Object",{assign:c(67)})},function(a,b,c){var d=c(28),e=c(41),f=c(42),g=c(56),h=c(31),i=Object.assign;a.exports=!i||c(5)(function(){var a={},b={},c=Symbol(),d="abcdefghijklmnopqrst";return a[c]=7,d.split("").forEach(function(a){b[a]=a}),7!=i({},a)[c]||Object.keys(i({},b)).join("")!=d})?function assign(a,b){for(var c=g(a),i=arguments.length,j=1,k=e.f,l=f.f;i>j;)for(var m,n=h(arguments[j++]),o=k?d(n).concat(k(n)):d(n),p=o.length,q=0;p>q;)l.call(n,m=o[q++])&&(c[m]=n[m]);return c}:i},function(a,b,c){var d=c(6);d(d.S,"Object",{is:c(69)})},function(a,b){a.exports=Object.is||function is(a,b){return a===b?0!==a||1/a===1/b:a!=a&&b!=b}},function(a,b,c){var d=c(6);d(d.S,"Object",{setPrototypeOf:c(71).set})},function(a,b,d){var e=d(13),f=d(12),g=function(a,b){if(f(a),!e(b)&&null!==b)throw TypeError(b+": can't set as prototype!")};a.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(a,b,c){try{c=d(8)(Function.call,d(49).f(Object.prototype,"__proto__").set,2),c(a,[]),b=!(a instanceof Array)}catch(e){b=!0}return function setPrototypeOf(a,d){return g(a,d),b?a.__proto__=d:c(a,d),a}}({},!1):c),check:g}},function(a,b,c){var d=c(6);d(d.P,"Function",{bind:c(73)})},function(a,b,c){var d=c(9),e=c(13),f=c(74),g=[].slice,h={},i=function(a,b,c){if(!(b in h)){for(var d=[],e=0;e<b;e++)d[e]="a["+e+"]";h[b]=Function("F,a","return new F("+d.join(",")+")")}return h[b](a,c)};a.exports=Function.bind||function bind(a){var b=d(this),c=g.call(arguments,1),h=function(){var d=c.concat(g.call(arguments));return this instanceof h?i(b,d.length,d):f(b,d,a)};return e(b.prototype)&&(h.prototype=b.prototype),h}},function(a,b){a.exports=function(a,b,d){var e=d===c;switch(b.length){case 0:return e?a():a.call(d);case 1:return e?a(b[0]):a.call(d,b[0]);case 2:return e?a(b[0],b[1]):a.call(d,b[0],b[1]);case 3:return e?a(b[0],b[1],b[2]):a.call(d,b[0],b[1],b[2]);case 4:return e?a(b[0],b[1],b[2],b[3]):a.call(d,b[0],b[1],b[2],b[3])}return a.apply(d,b)}},function(a,b,c){var d=c(13),e=c(57),f=c(23)("hasInstance"),g=Function.prototype;f in g||c(11).f(g,f,{value:function(a){if("function"!=typeof this||!d(a))return!1;if(!d(this.prototype))return a instanceof this;for(;a=e(a);)if(this.prototype===a)return!0;return!1}})},function(a,b,c){var d=c(6),e=c(36),f=c(77),g=c(78),h=1..toFixed,i=Math.floor,j=[0,0,0,0,0,0],k="Number.toFixed: incorrect invocation!",l="0",m=function(a,b){for(var c=-1,d=b;++c<6;)d+=a*j[c],j[c]=d%1e7,d=i(d/1e7)},n=function(a){for(var b=6,c=0;--b>=0;)c+=j[b],j[b]=i(c/a),c=c%a*1e7},o=function(){for(var a=6,b="";--a>=0;)if(""!==b||0===a||0!==j[a]){var c=String(j[a]);b=""===b?c:b+g.call(l,7-c.length)+c}return b},p=function(a,b,c){return 0===b?c:b%2===1?p(a,b-1,c*a):p(a*a,b/2,c)},q=function(a){for(var b=0,c=a;c>=4096;)b+=12,c/=4096;for(;c>=2;)b+=1,c/=2;return b};d(d.P+d.F*(!!h&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!c(5)(function(){h.call({})})),"Number",{toFixed:function toFixed(a){var b,c,d,h,i=f(this,k),j=e(a),r="",s=l;if(j<0||j>20)throw RangeError(k);if(i!=i)return"NaN";if(i<=-1e21||i>=1e21)return String(i);if(i<0&&(r="-",i=-i),i>1e-21)if(b=q(i*p(2,69,1))-69,c=b<0?i*p(2,-b,1):i/p(2,b,1),c*=4503599627370496,b=52-b,b>0){for(m(0,c),d=j;d>=7;)m(1e7,0),d-=7;for(m(p(10,d,1),0),d=b-1;d>=23;)n(1<<23),d-=23;n(1<<d),m(1,1),n(2),s=o()}else m(0,c),m(1<<-b,0),s=o()+g.call(l,j);return j>0?(h=s.length,s=r+(h<=j?"0."+g.call(l,j-h)+s:s.slice(0,h-j)+"."+s.slice(h-j))):s=r+s,s}})},function(a,b,c){var d=c(32);a.exports=function(a,b){if("number"!=typeof a&&"Number"!=d(a))throw TypeError(b);return+a}},function(a,b,c){var d=c(36),e=c(33);a.exports=function repeat(a){var b=String(e(this)),c="",f=d(a);if(f<0||f==1/0)throw RangeError("Count can't be negative");for(;f>0;(f>>>=1)&&(b+=b))1&f&&(c+=b);return c}},function(a,b,d){var e=d(6),f=d(5),g=d(77),h=1..toPrecision;e(e.P+e.F*(f(function(){return"1"!==h.call(1,c)})||!f(function(){h.call({})})),"Number",{toPrecision:function toPrecision(a){var b=g(this,"Number#toPrecision: incorrect invocation!");return a===c?h.call(b):h.call(b,a)}})},function(a,b,c){var d=c(6);d(d.S,"Number",{EPSILON:Math.pow(2,-52)})},function(a,b,c){var d=c(6),e=c(2).isFinite;d(d.S,"Number",{isFinite:function isFinite(a){return"number"==typeof a&&e(a)}})},function(a,b,c){var d=c(6);d(d.S,"Number",{isInteger:c(83)})},function(a,b,c){var d=c(13),e=Math.floor;a.exports=function isInteger(a){return!d(a)&&isFinite(a)&&e(a)===a}},function(a,b,c){var d=c(6);d(d.S,"Number",{isNaN:function isNaN(a){return a!=a}})},function(a,b,c){var d=c(6),e=c(83),f=Math.abs;d(d.S,"Number",{isSafeInteger:function isSafeInteger(a){return e(a)&&f(a)<=9007199254740991}})},function(a,b,c){var d=c(6);d(d.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(a,b,c){var d=c(6);d(d.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(a,b,c){var d=c(6),e=c(89);d(d.S+d.F*(Number.parseFloat!=e),"Number",{parseFloat:e})},function(a,b,c){var d=c(2).parseFloat,e=c(90).trim;a.exports=1/d(c(91)+"-0")!==-(1/0)?function parseFloat(a){var b=e(String(a),3),c=d(b);return 0===c&&"-"==b.charAt(0)?-0:c}:d},function(a,b,c){var d=c(6),e=c(33),f=c(5),g=c(91),h="["+g+"]",i="​…",j=RegExp("^"+h+h+"*"),k=RegExp(h+h+"*$"),l=function(a,b,c){var e={},h=f(function(){return!!g[a]()||i[a]()!=i}),j=e[a]=h?b(m):g[a];c&&(e[c]=j),d(d.P+d.F*h,"String",e)},m=l.trim=function(a,b){return a=String(e(a)),1&b&&(a=a.replace(j,"")),2&b&&(a=a.replace(k,"")),a};a.exports=l},function(a,b){a.exports="\t\n\x0B\f\r   ᠎ â€â€‚         âŸã€€\u2028\u2029\ufeff"},function(a,b,c){var d=c(6),e=c(93);d(d.S+d.F*(Number.parseInt!=e),"Number",{parseInt:e})},function(a,b,c){var d=c(2).parseInt,e=c(90).trim,f=c(91),g=/^[\-+]?0[xX]/;a.exports=8!==d(f+"08")||22!==d(f+"0x16")?function parseInt(a,b){var c=e(String(a),3);return d(c,b>>>0||(g.test(c)?16:10))}:d},function(a,b,c){var d=c(6),e=c(93);d(d.G+d.F*(parseInt!=e),{parseInt:e})},function(a,b,c){var d=c(6),e=c(89);d(d.G+d.F*(parseFloat!=e),{parseFloat:e})},function(a,b,c){var d=c(6),e=c(97),f=Math.sqrt,g=Math.acosh;d(d.S+d.F*!(g&&710==Math.floor(g(Number.MAX_VALUE))&&g(1/0)==1/0),"Math",{acosh:function acosh(a){return(a=+a)<1?NaN:a>94906265.62425156?Math.log(a)+Math.LN2:e(a-1+f(a-1)*f(a+1))}})},function(a,b){a.exports=Math.log1p||function log1p(a){return(a=+a)>-1e-8&&a<1e-8?a-a*a/2:Math.log(1+a)}},function(a,b,c){function asinh(a){return isFinite(a=+a)&&0!=a?a<0?-asinh(-a):Math.log(a+Math.sqrt(a*a+1)):a}var d=c(6),e=Math.asinh;d(d.S+d.F*!(e&&1/e(0)>0),"Math",{asinh:asinh})},function(a,b,c){var d=c(6),e=Math.atanh;d(d.S+d.F*!(e&&1/e(-0)<0),"Math",{atanh:function atanh(a){return 0==(a=+a)?a:Math.log((1+a)/(1-a))/2}})},function(a,b,c){var d=c(6),e=c(101);d(d.S,"Math",{cbrt:function cbrt(a){return e(a=+a)*Math.pow(Math.abs(a),1/3)}})},function(a,b){a.exports=Math.sign||function sign(a){return 0==(a=+a)||a!=a?a:a<0?-1:1}},function(a,b,c){var d=c(6);d(d.S,"Math",{clz32:function clz32(a){return(a>>>=0)?31-Math.floor(Math.log(a+.5)*Math.LOG2E):32}})},function(a,b,c){var d=c(6),e=Math.exp;d(d.S,"Math",{cosh:function cosh(a){return(e(a=+a)+e(-a))/2}})},function(a,b,c){var d=c(6),e=c(105);d(d.S+d.F*(e!=Math.expm1),"Math",{expm1:e})},function(a,b){var c=Math.expm1;a.exports=!c||c(10)>22025.465794806718||c(10)<22025.465794806718||c(-2e-17)!=-2e-17?function expm1(a){return 0==(a=+a)?a:a>-1e-6&&a<1e-6?a+a*a/2:Math.exp(a)-1}:c},function(a,b,c){var d=c(6),e=c(101),f=Math.pow,g=f(2,-52),h=f(2,-23),i=f(2,127)*(2-h),j=f(2,-126),k=function(a){return a+1/g-1/g};d(d.S,"Math",{fround:function fround(a){var b,c,d=Math.abs(a),f=e(a);return d<j?f*k(d/j/h)*j*h:(b=(1+h/g)*d,c=b-(b-d),c>i||c!=c?f*(1/0):f*c)}})},function(a,b,c){var d=c(6),e=Math.abs;d(d.S,"Math",{hypot:function hypot(a,b){for(var c,d,f=0,g=0,h=arguments.length,i=0;g<h;)c=e(arguments[g++]),i<c?(d=i/c,f=f*d*d+1,i=c):c>0?(d=c/i,f+=d*d):f+=c;return i===1/0?1/0:i*Math.sqrt(f)}})},function(a,b,c){var d=c(6),e=Math.imul;d(d.S+d.F*c(5)(function(){return e(4294967295,5)!=-5||2!=e.length}),"Math",{imul:function imul(a,b){var c=65535,d=+a,e=+b,f=c&d,g=c&e;return 0|f*g+((c&d>>>16)*g+f*(c&e>>>16)<<16>>>0)}})},function(a,b,c){var d=c(6);d(d.S,"Math",{log10:function log10(a){return Math.log(a)/Math.LN10}})},function(a,b,c){var d=c(6);d(d.S,"Math",{log1p:c(97)})},function(a,b,c){var d=c(6);d(d.S,"Math",{log2:function log2(a){return Math.log(a)/Math.LN2}})},function(a,b,c){var d=c(6);d(d.S,"Math",{sign:c(101)})},function(a,b,c){var d=c(6),e=c(105),f=Math.exp;d(d.S+d.F*c(5)(function(){return!Math.sinh(-2e-17)!=-2e-17}),"Math",{sinh:function sinh(a){return Math.abs(a=+a)<1?(e(a)-e(-a))/2:(f(a-1)-f(-a-1))*(Math.E/2)}})},function(a,b,c){var d=c(6),e=c(105),f=Math.exp;d(d.S,"Math",{tanh:function tanh(a){var b=e(a=+a),c=e(-a);return b==1/0?1:c==1/0?-1:(b-c)/(f(a)+f(-a))}})},function(a,b,c){var d=c(6);d(d.S,"Math",{trunc:function trunc(a){return(a>0?Math.floor:Math.ceil)(a)}})},function(a,b,c){var d=c(6),e=c(37),f=String.fromCharCode,g=String.fromCodePoint;d(d.S+d.F*(!!g&&1!=g.length),"String",{fromCodePoint:function fromCodePoint(a){for(var b,c=[],d=arguments.length,g=0;d>g;){if(b=+arguments[g++],e(b,1114111)!==b)throw RangeError(b+" is not a valid code point");c.push(b<65536?f(b):f(((b-=65536)>>10)+55296,b%1024+56320))}return c.join("")}})},function(a,b,c){var d=c(6),e=c(30),f=c(35);d(d.S,"String",{raw:function raw(a){for(var b=e(a.raw),c=f(b.length),d=arguments.length,g=[],h=0;c>h;)g.push(String(b[h++])),h<d&&g.push(String(arguments[h]));return g.join("")}})},function(a,b,c){c(90)("trim",function(a){return function trim(){return a(this,3)}})},function(a,b,c){var d=c(6),e=c(120)(!1);d(d.P,"String",{codePointAt:function codePointAt(a){return e(this,a)}})},function(a,b,d){var e=d(36),f=d(33);a.exports=function(a){return function(b,d){var g,h,i=String(f(b)),j=e(d),k=i.length;return j<0||j>=k?a?"":c:(g=i.charCodeAt(j),g<55296||g>56319||j+1===k||(h=i.charCodeAt(j+1))<56320||h>57343?a?i.charAt(j):g:a?i.slice(j,j+2):(g-55296<<10)+(h-56320)+65536)}}},function(a,b,d){var e=d(6),f=d(35),g=d(122),h="endsWith",i=""[h];e(e.P+e.F*d(124)(h),"String",{endsWith:function endsWith(a){var b=g(this,a,h),d=arguments.length>1?arguments[1]:c,e=f(b.length),j=d===c?e:Math.min(f(d),e),k=String(a);return i?i.call(b,k,j):b.slice(j-k.length,j)===k}})},function(a,b,c){var d=c(123),e=c(33);a.exports=function(a,b,c){if(d(b))throw TypeError("String#"+c+" doesn't accept regex!");return String(e(a))}},function(a,b,d){var e=d(13),f=d(32),g=d(23)("match");a.exports=function(a){var b;return e(a)&&((b=a[g])!==c?!!b:"RegExp"==f(a))}},function(a,b,c){var d=c(23)("match");a.exports=function(a){var b=/./;try{"/./"[a](b)}catch(c){try{return b[d]=!1,!"/./"[a](b)}catch(e){}}return!0}},function(a,b,d){var e=d(6),f=d(122),g="includes";e(e.P+e.F*d(124)(g),"String",{includes:function includes(a){return!!~f(this,a,g).indexOf(a,arguments.length>1?arguments[1]:c)}})},function(a,b,c){var d=c(6);d(d.P,"String",{repeat:c(78)})},function(a,b,d){var e=d(6),f=d(35),g=d(122),h="startsWith",i=""[h];e(e.P+e.F*d(124)(h),"String",{startsWith:function startsWith(a){var b=g(this,a,h),d=f(Math.min(arguments.length>1?arguments[1]:c,b.length)),e=String(a);return i?i.call(b,e,d):b.slice(d,d+e.length)===e}})},function(a,b,d){var e=d(120)(!0);d(129)(String,"String",function(a){this._t=String(a),this._i=0},function(){var a,b=this._t,d=this._i;return d>=b.length?{value:c,done:!0}:(a=e(b,d),this._i+=a.length,{value:a,done:!1})})},function(a,b,d){var e=d(26),f=d(6),g=d(18),h=d(10),i=d(3),j=d(130),k=d(131),l=d(22),m=d(57),n=d(23)("iterator"),o=!([].keys&&"next"in[].keys()),p="@@iterator",q="keys",r="values",s=function(){return this};a.exports=function(a,b,d,t,u,v,w){k(d,b,t);var x,y,z,A=function(a){if(!o&&a in E)return E[a];switch(a){case q:return function keys(){return new d(this,a)};case r:return function values(){return new d(this,a)}}return function entries(){return new d(this,a)}},B=b+" Iterator",C=u==r,D=!1,E=a.prototype,F=E[n]||E[p]||u&&E[u],G=F||A(u),H=u?C?A("entries"):G:c,I="Array"==b?E.entries||F:F;if(I&&(z=m(I.call(new a)),z!==Object.prototype&&(l(z,B,!0),e||i(z,n)||h(z,n,s))),C&&F&&F.name!==r&&(D=!0,G=function values(){return F.call(this)}),e&&!w||!o&&!D&&E[n]||h(E,n,G),j[b]=G,j[B]=s,u)if(x={values:C?G:A(r),keys:v?G:A(q),entries:H},w)for(y in x)y in E||g(E,y,x[y]);else f(f.P+f.F*(o||D),b,x);return x}},function(a,b){a.exports={}},function(a,b,c){var d=c(44),e=c(17),f=c(22),g={};c(10)(g,c(23)("iterator"),function(){return this}),a.exports=function(a,b,c){a.prototype=d(g,{next:e(1,c)}),f(a,b+" Iterator")}},function(a,b,c){c(133)("anchor",function(a){return function anchor(b){return a(this,"a","name",b)}})},function(a,b,c){var d=c(6),e=c(5),f=c(33),g=/"/g,h=function(a,b,c,d){var e=String(f(a)),h="<"+b;return""!==c&&(h+=" "+c+'="'+String(d).replace(g,"&quot;")+'"'),h+">"+e+"</"+b+">"};a.exports=function(a,b){var c={};c[a]=b(h),d(d.P+d.F*e(function(){var b=""[a]('"');return b!==b.toLowerCase()||b.split('"').length>3}),"String",c)}},function(a,b,c){c(133)("big",function(a){return function big(){return a(this,"big","","")}})},function(a,b,c){c(133)("blink",function(a){return function blink(){return a(this,"blink","","")}})},function(a,b,c){c(133)("bold",function(a){return function bold(){return a(this,"b","","")}})},function(a,b,c){c(133)("fixed",function(a){return function fixed(){return a(this,"tt","","")}})},function(a,b,c){c(133)("fontcolor",function(a){return function fontcolor(b){return a(this,"font","color",b)}})},function(a,b,c){c(133)("fontsize",function(a){return function fontsize(b){return a(this,"font","size",b)}})},function(a,b,c){c(133)("italics",function(a){return function italics(){return a(this,"i","","")}})},function(a,b,c){c(133)("link",function(a){return function link(b){return a(this,"a","href",b)}})},function(a,b,c){c(133)("small",function(a){return function small(){return a(this,"small","","")}})},function(a,b,c){c(133)("strike",function(a){return function strike(){return a(this,"strike","","")}})},function(a,b,c){c(133)("sub",function(a){return function sub(){return a(this,"sub","","")}})},function(a,b,c){c(133)("sup",function(a){return function sup(){return a(this,"sup","","")}})},function(a,b,c){var d=c(6);d(d.S,"Array",{isArray:c(43)})},function(a,b,d){var e=d(8),f=d(6),g=d(56),h=d(148),i=d(149),j=d(35),k=d(150),l=d(151);f(f.S+f.F*!d(153)(function(a){Array.from(a)}),"Array",{from:function from(a){var b,d,f,m,n=g(a),o="function"==typeof this?this:Array,p=arguments.length,q=p>1?arguments[1]:c,r=q!==c,s=0,t=l(n);if(r&&(q=e(q,p>2?arguments[2]:c,2)),t==c||o==Array&&i(t))for(b=j(n.length),d=new o(b);b>s;s++)k(d,s,r?q(n[s],s):n[s]);else for(m=t.call(n),d=new o;!(f=m.next()).done;s++)k(d,s,r?h(m,q,[f.value,s],!0):f.value);return d.length=s,d}})},function(a,b,d){var e=d(12);a.exports=function(a,b,d,f){try{return f?b(e(d)[0],d[1]):b(d)}catch(g){var h=a["return"];throw h!==c&&e(h.call(a)),g}}},function(a,b,d){var e=d(130),f=d(23)("iterator"),g=Array.prototype;a.exports=function(a){return a!==c&&(e.Array===a||g[f]===a)}},function(a,b,c){var d=c(11),e=c(17);a.exports=function(a,b,c){b in a?d.f(a,b,e(0,c)):a[b]=c}},function(a,b,d){var e=d(152),f=d(23)("iterator"),g=d(130);a.exports=d(7).getIteratorMethod=function(a){if(a!=c)return a[f]||a["@@iterator"]||g[e(a)]}},function(a,b,d){var e=d(32),f=d(23)("toStringTag"),g="Arguments"==e(function(){return arguments}()),h=function(a,b){try{return a[b]}catch(c){}};a.exports=function(a){var b,d,i;return a===c?"Undefined":null===a?"Null":"string"==typeof(d=h(b=Object(a),f))?d:g?e(b):"Object"==(i=e(b))&&"function"==typeof b.callee?"Arguments":i}},function(a,b,c){var d=c(23)("iterator"),e=!1;try{var f=[7][d]();f["return"]=function(){e=!0},Array.from(f,function(){throw 2})}catch(g){}a.exports=function(a,b){if(!b&&!e)return!1;var c=!1;try{var f=[7],g=f[d]();g.next=function(){return{done:c=!0}},f[d]=function(){return g},a(f)}catch(h){}return c}},function(a,b,c){var d=c(6),e=c(150);d(d.S+d.F*c(5)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),"Array",{of:function of(){for(var a=0,b=arguments.length,c=new("function"==typeof this?this:Array)(b);b>a;)e(c,a,arguments[a++]);return c.length=b,c}})},function(a,b,d){var e=d(6),f=d(30),g=[].join;e(e.P+e.F*(d(31)!=Object||!d(156)(g)),"Array",{join:function join(a){return g.call(f(this),a===c?",":a)}})},function(a,b,c){var d=c(5);a.exports=function(a,b){return!!a&&d(function(){b?a.call(null,function(){},1):a.call(null)})}},function(a,b,d){var e=d(6),f=d(46),g=d(32),h=d(37),i=d(35),j=[].slice;e(e.P+e.F*d(5)(function(){f&&j.call(f)}),"Array",{slice:function slice(a,b){var d=i(this.length),e=g(this);if(b=b===c?d:b,"Array"==e)return j.call(this,a,b);for(var f=h(a,d),k=h(b,d),l=i(k-f),m=Array(l),n=0;n<l;n++)m[n]="String"==e?this.charAt(f+n):this[f+n];return m}})},function(a,b,d){var e=d(6),f=d(9),g=d(56),h=d(5),i=[].sort,j=[1,2,3];e(e.P+e.F*(h(function(){j.sort(c)})||!h(function(){j.sort(null)})||!d(156)(i)),"Array",{sort:function sort(a){return a===c?i.call(g(this)):i.call(g(this),f(a))}})},function(a,b,c){var d=c(6),e=c(160)(0),f=c(156)([].forEach,!0);d(d.P+d.F*!f,"Array",{forEach:function forEach(a){return e(this,a,arguments[1])}})},function(a,b,d){var e=d(8),f=d(31),g=d(56),h=d(35),i=d(161);a.exports=function(a,b){var d=1==a,j=2==a,k=3==a,l=4==a,m=6==a,n=5==a||m,o=b||i;return function(b,i,p){for(var q,r,s=g(b),t=f(s),u=e(i,p,3),v=h(t.length),w=0,x=d?o(b,v):j?o(b,0):c;v>w;w++)if((n||w in t)&&(q=t[w],r=u(q,w,s),a))if(d)x[w]=r;else if(r)switch(a){case 3:return!0;case 5:
-return q;case 6:return w;case 2:x.push(q)}else if(l)return!1;return m?-1:k||l?l:x}}},function(a,b,c){var d=c(162);a.exports=function(a,b){return new(d(a))(b)}},function(a,b,d){var e=d(13),f=d(43),g=d(23)("species");a.exports=function(a){var b;return f(a)&&(b=a.constructor,"function"!=typeof b||b!==Array&&!f(b.prototype)||(b=c),e(b)&&(b=b[g],null===b&&(b=c))),b===c?Array:b}},function(a,b,c){var d=c(6),e=c(160)(1);d(d.P+d.F*!c(156)([].map,!0),"Array",{map:function map(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(160)(2);d(d.P+d.F*!c(156)([].filter,!0),"Array",{filter:function filter(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(160)(3);d(d.P+d.F*!c(156)([].some,!0),"Array",{some:function some(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(160)(4);d(d.P+d.F*!c(156)([].every,!0),"Array",{every:function every(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(168);d(d.P+d.F*!c(156)([].reduce,!0),"Array",{reduce:function reduce(a){return e(this,a,arguments.length,arguments[1],!1)}})},function(a,b,c){var d=c(9),e=c(56),f=c(31),g=c(35);a.exports=function(a,b,c,h,i){d(b);var j=e(a),k=f(j),l=g(j.length),m=i?l-1:0,n=i?-1:1;if(c<2)for(;;){if(m in k){h=k[m],m+=n;break}if(m+=n,i?m<0:l<=m)throw TypeError("Reduce of empty array with no initial value")}for(;i?m>=0:l>m;m+=n)m in k&&(h=b(h,k[m],m,j));return h}},function(a,b,c){var d=c(6),e=c(168);d(d.P+d.F*!c(156)([].reduceRight,!0),"Array",{reduceRight:function reduceRight(a){return e(this,a,arguments.length,arguments[1],!0)}})},function(a,b,c){var d=c(6),e=c(34)(!1),f=[].indexOf,g=!!f&&1/[1].indexOf(1,-0)<0;d(d.P+d.F*(g||!c(156)(f)),"Array",{indexOf:function indexOf(a){return g?f.apply(this,arguments)||0:e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(30),f=c(36),g=c(35),h=[].lastIndexOf,i=!!h&&1/[1].lastIndexOf(1,-0)<0;d(d.P+d.F*(i||!c(156)(h)),"Array",{lastIndexOf:function lastIndexOf(a){if(i)return h.apply(this,arguments)||0;var b=e(this),c=g(b.length),d=c-1;for(arguments.length>1&&(d=Math.min(d,f(arguments[1]))),d<0&&(d=c+d);d>=0;d--)if(d in b&&b[d]===a)return d||0;return-1}})},function(a,b,c){var d=c(6);d(d.P,"Array",{copyWithin:c(173)}),c(174)("copyWithin")},function(a,b,d){var e=d(56),f=d(37),g=d(35);a.exports=[].copyWithin||function copyWithin(a,b){var d=e(this),h=g(d.length),i=f(a,h),j=f(b,h),k=arguments.length>2?arguments[2]:c,l=Math.min((k===c?h:f(k,h))-j,h-i),m=1;for(j<i&&i<j+l&&(m=-1,j+=l-1,i+=l-1);l-- >0;)j in d?d[i]=d[j]:delete d[i],i+=m,j+=m;return d}},function(a,b){a.exports=function(){}},function(a,b,c){var d=c(6);d(d.P,"Array",{fill:c(176)}),c(174)("fill")},function(a,b,d){var e=d(56),f=d(37),g=d(35);a.exports=function fill(a){for(var b=e(this),d=g(b.length),h=arguments.length,i=f(h>1?arguments[1]:c,d),j=h>2?arguments[2]:c,k=j===c?d:f(j,d);k>i;)b[i++]=a;return b}},function(a,b,d){var e=d(6),f=d(160)(5),g="find",h=!0;g in[]&&Array(1)[g](function(){h=!1}),e(e.P+e.F*h,"Array",{find:function find(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(174)(g)},function(a,b,d){var e=d(6),f=d(160)(6),g="findIndex",h=!0;g in[]&&Array(1)[g](function(){h=!1}),e(e.P+e.F*h,"Array",{findIndex:function findIndex(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(174)(g)},function(a,b,d){var e=d(174),f=d(180),g=d(130),h=d(30);a.exports=d(129)(Array,"Array",function(a,b){this._t=h(a),this._i=0,this._k=b},function(){var a=this._t,b=this._k,d=this._i++;return!a||d>=a.length?(this._t=c,f(1)):"keys"==b?f(0,d):"values"==b?f(0,a[d]):f(0,[d,a[d]])},"values"),g.Arguments=g.Array,e("keys"),e("values"),e("entries")},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(a,b,c){c(182)("Array")},function(a,b,c){var d=c(2),e=c(7),f=c(11),g=c(4),h=c(23)("species");a.exports=function(a){var b="function"==typeof e[a]?e[a]:d[a];g&&b&&!b[h]&&f.f(b,h,{configurable:!0,get:function(){return this}})}},function(a,b,d){var e,f,g,h=d(26),i=d(2),j=d(8),k=d(152),l=d(6),m=d(13),n=d(9),o=d(184),p=d(185),q=d(186),r=d(187).set,s=d(188)(),t="Promise",u=i.TypeError,v=i.process,w=i[t],v=i.process,x="process"==k(v),y=function(){},z=!!function(){try{var a=w.resolve(1),b=(a.constructor={})[d(23)("species")]=function(a){a(y,y)};return(x||"function"==typeof PromiseRejectionEvent)&&a.then(y)instanceof b}catch(c){}}(),A=function(a,b){return a===b||a===w&&b===g},B=function(a){var b;return!(!m(a)||"function"!=typeof(b=a.then))&&b},C=function(a){return A(w,a)?new D(a):new f(a)},D=f=function(a){var b,d;this.promise=new a(function(a,e){if(b!==c||d!==c)throw u("Bad Promise constructor");b=a,d=e}),this.resolve=n(b),this.reject=n(d)},E=function(a){try{a()}catch(b){return{error:b}}},F=function(a,b){if(!a._n){a._n=!0;var c=a._c;s(function(){for(var d=a._v,e=1==a._s,f=0,g=function(b){var c,f,g=e?b.ok:b.fail,h=b.resolve,i=b.reject,j=b.domain;try{g?(e||(2==a._h&&I(a),a._h=1),g===!0?c=d:(j&&j.enter(),c=g(d),j&&j.exit()),c===b.promise?i(u("Promise-chain cycle")):(f=B(c))?f.call(c,h,i):h(c)):i(d)}catch(k){i(k)}};c.length>f;)g(c[f++]);a._c=[],a._n=!1,b&&!a._h&&G(a)})}},G=function(a){r.call(i,function(){var b,d,e,f=a._v;if(H(a)&&(b=E(function(){x?v.emit("unhandledRejection",f,a):(d=i.onunhandledrejection)?d({promise:a,reason:f}):(e=i.console)&&e.error&&e.error("Unhandled promise rejection",f)}),a._h=x||H(a)?2:1),a._a=c,b)throw b.error})},H=function(a){if(1==a._h)return!1;for(var b,c=a._a||a._c,d=0;c.length>d;)if(b=c[d++],b.fail||!H(b.promise))return!1;return!0},I=function(a){r.call(i,function(){var b;x?v.emit("rejectionHandled",a):(b=i.onrejectionhandled)&&b({promise:a,reason:a._v})})},J=function(a){var b=this;b._d||(b._d=!0,b=b._w||b,b._v=a,b._s=2,b._a||(b._a=b._c.slice()),F(b,!0))},K=function(a){var b,c=this;if(!c._d){c._d=!0,c=c._w||c;try{if(c===a)throw u("Promise can't be resolved itself");(b=B(a))?s(function(){var d={_w:c,_d:!1};try{b.call(a,j(K,d,1),j(J,d,1))}catch(e){J.call(d,e)}}):(c._v=a,c._s=1,F(c,!1))}catch(d){J.call({_w:c,_d:!1},d)}}};z||(w=function Promise(a){o(this,w,t,"_h"),n(a),e.call(this);try{a(j(K,this,1),j(J,this,1))}catch(b){J.call(this,b)}},e=function Promise(a){this._c=[],this._a=c,this._s=0,this._d=!1,this._v=c,this._h=0,this._n=!1},e.prototype=d(189)(w.prototype,{then:function then(a,b){var d=C(q(this,w));return d.ok="function"!=typeof a||a,d.fail="function"==typeof b&&b,d.domain=x?v.domain:c,this._c.push(d),this._a&&this._a.push(d),this._s&&F(this,!1),d.promise},"catch":function(a){return this.then(c,a)}}),D=function(){var a=new e;this.promise=a,this.resolve=j(K,a,1),this.reject=j(J,a,1)}),l(l.G+l.W+l.F*!z,{Promise:w}),d(22)(w,t),d(182)(t),g=d(7)[t],l(l.S+l.F*!z,t,{reject:function reject(a){var b=C(this),c=b.reject;return c(a),b.promise}}),l(l.S+l.F*(h||!z),t,{resolve:function resolve(a){if(a instanceof w&&A(a.constructor,this))return a;var b=C(this),c=b.resolve;return c(a),b.promise}}),l(l.S+l.F*!(z&&d(153)(function(a){w.all(a)["catch"](y)})),t,{all:function all(a){var b=this,d=C(b),e=d.resolve,f=d.reject,g=E(function(){var d=[],g=0,h=1;p(a,!1,function(a){var i=g++,j=!1;d.push(c),h++,b.resolve(a).then(function(a){j||(j=!0,d[i]=a,--h||e(d))},f)}),--h||e(d)});return g&&f(g.error),d.promise},race:function race(a){var b=this,c=C(b),d=c.reject,e=E(function(){p(a,!1,function(a){b.resolve(a).then(c.resolve,d)})});return e&&d(e.error),c.promise}})},function(a,b){a.exports=function(a,b,d,e){if(!(a instanceof b)||e!==c&&e in a)throw TypeError(d+": incorrect invocation!");return a}},function(a,b,c){var d=c(8),e=c(148),f=c(149),g=c(12),h=c(35),i=c(151),j={},k={},b=a.exports=function(a,b,c,l,m){var n,o,p,q,r=m?function(){return a}:i(a),s=d(c,l,b?2:1),t=0;if("function"!=typeof r)throw TypeError(a+" is not iterable!");if(f(r)){for(n=h(a.length);n>t;t++)if(q=b?s(g(o=a[t])[0],o[1]):s(a[t]),q===j||q===k)return q}else for(p=r.call(a);!(o=p.next()).done;)if(q=e(p,s,o.value,b),q===j||q===k)return q};b.BREAK=j,b.RETURN=k},function(a,b,d){var e=d(12),f=d(9),g=d(23)("species");a.exports=function(a,b){var d,h=e(a).constructor;return h===c||(d=e(h)[g])==c?b:f(d)}},function(a,b,c){var d,e,f,g=c(8),h=c(74),i=c(46),j=c(15),k=c(2),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r="onreadystatechange",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function setImmediate(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function clearImmediate(a){delete q[a]},"process"==c(32)(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(e=new o,f=e.port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),a.exports={set:m,clear:n}},function(a,b,d){var e=d(2),f=d(187).set,g=e.MutationObserver||e.WebKitMutationObserver,h=e.process,i=e.Promise,j="process"==d(32)(h);a.exports=function(){var a,b,d,k=function(){var e,f;for(j&&(e=h.domain)&&e.exit();a;){f=a.fn,a=a.next;try{f()}catch(g){throw a?d():b=c,g}}b=c,e&&e.enter()};if(j)d=function(){h.nextTick(k)};else if(g){var l=!0,m=document.createTextNode("");new g(k).observe(m,{characterData:!0}),d=function(){m.data=l=!l}}else if(i&&i.resolve){var n=i.resolve();d=function(){n.then(k)}}else d=function(){f.call(e,k)};return function(e){var f={fn:e,next:c};b&&(b.next=f),a||(a=f,d()),b=f}}},function(a,b,c){var d=c(10);a.exports=function(a,b,c){for(var e in b)c&&a[e]?a[e]=b[e]:d(a,e,b[e]);return a}},function(a,b,d){var e=d(191);a.exports=d(192)("Map",function(a){return function Map(){return a(this,arguments.length>0?arguments[0]:c)}},{get:function get(a){var b=e.getEntry(this,a);return b&&b.v},set:function set(a,b){return e.def(this,0===a?0:a,b)}},e,!0)},function(a,b,d){var e=d(11).f,f=d(44),g=d(189),h=d(8),i=d(184),j=d(33),k=d(185),l=d(129),m=d(180),n=d(182),o=d(4),p=d(19).fastKey,q=o?"_s":"size",r=function(a,b){var c,d=p(b);if("F"!==d)return a._i[d];for(c=a._f;c;c=c.n)if(c.k==b)return c};a.exports={getConstructor:function(a,b,d,l){var m=a(function(a,e){i(a,m,b,"_i"),a._i=f(null),a._f=c,a._l=c,a[q]=0,e!=c&&k(e,d,a[l],a)});return g(m.prototype,{clear:function clear(){for(var a=this,b=a._i,d=a._f;d;d=d.n)d.r=!0,d.p&&(d.p=d.p.n=c),delete b[d.i];a._f=a._l=c,a[q]=0},"delete":function(a){var b=this,c=r(b,a);if(c){var d=c.n,e=c.p;delete b._i[c.i],c.r=!0,e&&(e.n=d),d&&(d.p=e),b._f==c&&(b._f=d),b._l==c&&(b._l=e),b[q]--}return!!c},forEach:function forEach(a){i(this,m,"forEach");for(var b,d=h(a,arguments.length>1?arguments[1]:c,3);b=b?b.n:this._f;)for(d(b.v,b.k,this);b&&b.r;)b=b.p},has:function has(a){return!!r(this,a)}}),o&&e(m.prototype,"size",{get:function(){return j(this[q])}}),m},def:function(a,b,d){var e,f,g=r(a,b);return g?g.v=d:(a._l=g={i:f=p(b,!0),k:b,v:d,p:e=a._l,n:c,r:!1},a._f||(a._f=g),e&&(e.n=g),a[q]++,"F"!==f&&(a._i[f]=g)),a},getEntry:r,setStrong:function(a,b,d){l(a,b,function(a,b){this._t=a,this._k=b,this._l=c},function(){for(var a=this,b=a._k,d=a._l;d&&d.r;)d=d.p;return a._t&&(a._l=d=d?d.n:a._t._f)?"keys"==b?m(0,d.k):"values"==b?m(0,d.v):m(0,[d.k,d.v]):(a._t=c,m(1))},d?"entries":"values",!d,!0),n(b)}}},function(a,b,d){var e=d(2),f=d(6),g=d(19),h=d(5),i=d(10),j=d(189),k=d(185),l=d(184),m=d(13),n=d(22),o=d(11).f,p=d(160)(0),q=d(4);a.exports=function(a,b,d,r,s,t){var u=e[a],v=u,w=s?"set":"add",x=v&&v.prototype,y={};return q&&"function"==typeof v&&(t||x.forEach&&!h(function(){(new v).entries().next()}))?(v=b(function(b,d){l(b,v,a,"_c"),b._c=new u,d!=c&&k(d,s,b[w],b)}),p("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(a){var b="add"==a||"set"==a;a in x&&(!t||"clear"!=a)&&i(v.prototype,a,function(d,e){if(l(this,v,a),!b&&t&&!m(d))return"get"==a&&c;var f=this._c[a](0===d?0:d,e);return b?this:f})}),"size"in x&&o(v.prototype,"size",{get:function(){return this._c.size}})):(v=r.getConstructor(b,a,s,w),j(v.prototype,d),g.NEED=!0),n(v,a),y[a]=v,f(f.G+f.W+f.F,y),t||r.setStrong(v,a,s),v}},function(a,b,d){var e=d(191);a.exports=d(192)("Set",function(a){return function Set(){return a(this,arguments.length>0?arguments[0]:c)}},{add:function add(a){return e.def(this,a=0===a?0:a,a)}},e)},function(a,b,d){var e,f=d(160)(0),g=d(18),h=d(19),i=d(67),j=d(195),k=d(13),l=h.getWeak,m=Object.isExtensible,n=j.ufstore,o={},p=function(a){return function WeakMap(){return a(this,arguments.length>0?arguments[0]:c)}},q={get:function get(a){if(k(a)){var b=l(a);return b===!0?n(this).get(a):b?b[this._i]:c}},set:function set(a,b){return j.def(this,a,b)}},r=a.exports=d(192)("WeakMap",p,q,j,!0,!0);7!=(new r).set((Object.freeze||Object)(o),7).get(o)&&(e=j.getConstructor(p),i(e.prototype,q),h.NEED=!0,f(["delete","has","get","set"],function(a){var b=r.prototype,c=b[a];g(b,a,function(b,d){if(k(b)&&!m(b)){this._f||(this._f=new e);var f=this._f[a](b,d);return"set"==a?this:f}return c.call(this,b,d)})}))},function(a,b,d){var e=d(189),f=d(19).getWeak,g=d(12),h=d(13),i=d(184),j=d(185),k=d(160),l=d(3),m=k(5),n=k(6),o=0,p=function(a){return a._l||(a._l=new q)},q=function(){this.a=[]},r=function(a,b){return m(a.a,function(a){return a[0]===b})};q.prototype={get:function(a){var b=r(this,a);if(b)return b[1]},has:function(a){return!!r(this,a)},set:function(a,b){var c=r(this,a);c?c[1]=b:this.a.push([a,b])},"delete":function(a){var b=n(this.a,function(b){return b[0]===a});return~b&&this.a.splice(b,1),!!~b}},a.exports={getConstructor:function(a,b,d,g){var k=a(function(a,e){i(a,k,b,"_i"),a._i=o++,a._l=c,e!=c&&j(e,d,a[g],a)});return e(k.prototype,{"delete":function(a){if(!h(a))return!1;var b=f(a);return b===!0?p(this)["delete"](a):b&&l(b,this._i)&&delete b[this._i]},has:function has(a){if(!h(a))return!1;var b=f(a);return b===!0?p(this).has(a):b&&l(b,this._i)}}),k},def:function(a,b,c){var d=f(g(b),!0);return d===!0?p(a).set(b,c):d[a._i]=c,a},ufstore:p}},function(a,b,d){var e=d(195);d(192)("WeakSet",function(a){return function WeakSet(){return a(this,arguments.length>0?arguments[0]:c)}},{add:function add(a){return e.def(this,a,!0)}},e,!1,!0)},function(a,b,c){var d=c(6),e=c(9),f=c(12),g=(c(2).Reflect||{}).apply,h=Function.apply;d(d.S+d.F*!c(5)(function(){g(function(){})}),"Reflect",{apply:function apply(a,b,c){var d=e(a),i=f(c);return g?g(d,b,i):h.call(d,b,i)}})},function(a,b,c){var d=c(6),e=c(44),f=c(9),g=c(12),h=c(13),i=c(5),j=c(73),k=(c(2).Reflect||{}).construct,l=i(function(){function F(){}return!(k(function(){},[],F)instanceof F)}),m=!i(function(){k(function(){})});d(d.S+d.F*(l||m),"Reflect",{construct:function construct(a,b){f(a),g(b);var c=arguments.length<3?a:f(arguments[2]);if(m&&!l)return k(a,b,c);if(a==c){switch(b.length){case 0:return new a;case 1:return new a(b[0]);case 2:return new a(b[0],b[1]);case 3:return new a(b[0],b[1],b[2]);case 4:return new a(b[0],b[1],b[2],b[3])}var d=[null];return d.push.apply(d,b),new(j.apply(a,d))}var i=c.prototype,n=e(h(i)?i:Object.prototype),o=Function.apply.call(a,n,b);return h(o)?o:n}})},function(a,b,c){var d=c(11),e=c(6),f=c(12),g=c(16);e(e.S+e.F*c(5)(function(){Reflect.defineProperty(d.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function defineProperty(a,b,c){f(a),b=g(b,!0),f(c);try{return d.f(a,b,c),!0}catch(e){return!1}}})},function(a,b,c){var d=c(6),e=c(49).f,f=c(12);d(d.S,"Reflect",{deleteProperty:function deleteProperty(a,b){var c=e(f(a),b);return!(c&&!c.configurable)&&delete a[b]}})},function(a,b,d){var e=d(6),f=d(12),g=function(a){this._t=f(a),this._i=0;var b,c=this._k=[];for(b in a)c.push(b)};d(131)(g,"Object",function(){var a,b=this,d=b._k;do if(b._i>=d.length)return{value:c,done:!0};while(!((a=d[b._i++])in b._t));return{value:a,done:!1}}),e(e.S,"Reflect",{enumerate:function enumerate(a){return new g(a)}})},function(a,b,d){function get(a,b){var d,h,k=arguments.length<3?a:arguments[2];return j(a)===k?a[b]:(d=e.f(a,b))?g(d,"value")?d.value:d.get!==c?d.get.call(k):c:i(h=f(a))?get(h,b,k):void 0}var e=d(49),f=d(57),g=d(3),h=d(6),i=d(13),j=d(12);h(h.S,"Reflect",{get:get})},function(a,b,c){var d=c(49),e=c(6),f=c(12);e(e.S,"Reflect",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(a,b){return d.f(f(a),b)}})},function(a,b,c){var d=c(6),e=c(57),f=c(12);d(d.S,"Reflect",{getPrototypeOf:function getPrototypeOf(a){return e(f(a))}})},function(a,b,c){var d=c(6);d(d.S,"Reflect",{has:function has(a,b){return b in a}})},function(a,b,c){var d=c(6),e=c(12),f=Object.isExtensible;d(d.S,"Reflect",{isExtensible:function isExtensible(a){return e(a),!f||f(a)}})},function(a,b,c){var d=c(6);d(d.S,"Reflect",{ownKeys:c(208)})},function(a,b,c){var d=c(48),e=c(41),f=c(12),g=c(2).Reflect;a.exports=g&&g.ownKeys||function ownKeys(a){var b=d.f(f(a)),c=e.f;return c?b.concat(c(a)):b}},function(a,b,c){var d=c(6),e=c(12),f=Object.preventExtensions;d(d.S,"Reflect",{preventExtensions:function preventExtensions(a){e(a);try{return f&&f(a),!0}catch(b){return!1}}})},function(a,b,d){function set(a,b,d){var i,m,n=arguments.length<4?a:arguments[3],o=f.f(k(a),b);if(!o){if(l(m=g(a)))return set(m,b,d,n);o=j(0)}return h(o,"value")?!(o.writable===!1||!l(n))&&(i=f.f(n,b)||j(0),i.value=d,e.f(n,b,i),!0):o.set!==c&&(o.set.call(n,d),!0)}var e=d(11),f=d(49),g=d(57),h=d(3),i=d(6),j=d(17),k=d(12),l=d(13);i(i.S,"Reflect",{set:set})},function(a,b,c){var d=c(6),e=c(71);e&&d(d.S,"Reflect",{setPrototypeOf:function setPrototypeOf(a,b){e.check(a,b);try{return e.set(a,b),!0}catch(c){return!1}}})},function(a,b,c){var d=c(6);d(d.S,"Date",{now:function(){return(new Date).getTime()}})},function(a,b,c){var d=c(6),e=c(56),f=c(16);d(d.P+d.F*c(5)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function toJSON(a){var b=e(this),c=f(b);return"number"!=typeof c||isFinite(c)?b.toISOString():null}})},function(a,b,c){var d=c(6),e=c(5),f=Date.prototype.getTime,g=function(a){return a>9?a:"0"+a};d(d.P+d.F*(e(function(){return"0385-07-25T07:06:39.999Z"!=new Date(-5e13-1).toISOString()})||!e(function(){new Date(NaN).toISOString()})),"Date",{toISOString:function toISOString(){if(!isFinite(f.call(this)))throw RangeError("Invalid time value");var a=this,b=a.getUTCFullYear(),c=a.getUTCMilliseconds(),d=b<0?"-":b>9999?"+":"";return d+("00000"+Math.abs(b)).slice(d?-6:-4)+"-"+g(a.getUTCMonth()+1)+"-"+g(a.getUTCDate())+"T"+g(a.getUTCHours())+":"+g(a.getUTCMinutes())+":"+g(a.getUTCSeconds())+"."+(c>99?c:"0"+g(c))+"Z"}})},function(a,b,d){var e=d(6),f=d(216),g=d(217),h=d(12),i=d(37),j=d(35),k=d(13),l=d(2).ArrayBuffer,m=d(186),n=g.ArrayBuffer,o=g.DataView,p=f.ABV&&l.isView,q=n.prototype.slice,r=f.VIEW,s="ArrayBuffer";e(e.G+e.W+e.F*(l!==n),{ArrayBuffer:n}),e(e.S+e.F*!f.CONSTR,s,{isView:function isView(a){return p&&p(a)||k(a)&&r in a}}),e(e.P+e.U+e.F*d(5)(function(){return!new n(2).slice(1,c).byteLength}),s,{slice:function slice(a,b){if(q!==c&&b===c)return q.call(h(this),a);for(var d=h(this).byteLength,e=i(a,d),f=i(b===c?d:b,d),g=new(m(this,n))(j(f-e)),k=new o(this),l=new o(g),p=0;e<f;)l.setUint8(p++,k.getUint8(e++));return g}}),d(182)(s)},function(a,b,c){for(var d,e=c(2),f=c(10),g=c(20),h=g("typed_array"),i=g("view"),j=!(!e.ArrayBuffer||!e.DataView),k=j,l=0,m=9,n="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<m;)(d=e[n[l++]])?(f(d.prototype,h,!0),f(d.prototype,i,!0)):k=!1;a.exports={ABV:j,CONSTR:k,TYPED:h,VIEW:i}},function(a,b,d){var e=d(2),f=d(4),g=d(26),h=d(216),i=d(10),j=d(189),k=d(5),l=d(184),m=d(36),n=d(35),o=d(48).f,p=d(11).f,q=d(176),r=d(22),s="ArrayBuffer",t="DataView",u="prototype",v="Wrong length!",w="Wrong index!",x=e[s],y=e[t],z=e.Math,A=e.RangeError,B=e.Infinity,C=x,D=z.abs,E=z.pow,F=z.floor,G=z.log,H=z.LN2,I="buffer",J="byteLength",K="byteOffset",L=f?"_b":I,M=f?"_l":J,N=f?"_o":K,O=function(a,b,c){var d,e,f,g=Array(c),h=8*c-b-1,i=(1<<h)-1,j=i>>1,k=23===b?E(2,-24)-E(2,-77):0,l=0,m=a<0||0===a&&1/a<0?1:0;for(a=D(a),a!=a||a===B?(e=a!=a?1:0,d=i):(d=F(G(a)/H),a*(f=E(2,-d))<1&&(d--,f*=2),a+=d+j>=1?k/f:k*E(2,1-j),a*f>=2&&(d++,f/=2),d+j>=i?(e=0,d=i):d+j>=1?(e=(a*f-1)*E(2,b),d+=j):(e=a*E(2,j-1)*E(2,b),d=0));b>=8;g[l++]=255&e,e/=256,b-=8);for(d=d<<b|e,h+=b;h>0;g[l++]=255&d,d/=256,h-=8);return g[--l]|=128*m,g},P=function(a,b,c){var d,e=8*c-b-1,f=(1<<e)-1,g=f>>1,h=e-7,i=c-1,j=a[i--],k=127&j;for(j>>=7;h>0;k=256*k+a[i],i--,h-=8);for(d=k&(1<<-h)-1,k>>=-h,h+=b;h>0;d=256*d+a[i],i--,h-=8);if(0===k)k=1-g;else{if(k===f)return d?NaN:j?-B:B;d+=E(2,b),k-=g}return(j?-1:1)*d*E(2,k-b)},Q=function(a){return a[3]<<24|a[2]<<16|a[1]<<8|a[0]},R=function(a){return[255&a]},S=function(a){return[255&a,a>>8&255]},T=function(a){return[255&a,a>>8&255,a>>16&255,a>>24&255]},U=function(a){return O(a,52,8)},V=function(a){return O(a,23,4)},W=function(a,b,c){p(a[u],b,{get:function(){return this[c]}})},X=function(a,b,c,d){var e=+c,f=m(e);if(e!=f||f<0||f+b>a[M])throw A(w);var g=a[L]._b,h=f+a[N],i=g.slice(h,h+b);return d?i:i.reverse()},Y=function(a,b,c,d,e,f){var g=+c,h=m(g);if(g!=h||h<0||h+b>a[M])throw A(w);for(var i=a[L]._b,j=h+a[N],k=d(+e),l=0;l<b;l++)i[j+l]=k[f?l:b-l-1]},Z=function(a,b){l(a,x,s);var c=+b,d=n(c);if(c!=d)throw A(v);return d};if(h.ABV){if(!k(function(){new x})||!k(function(){new x(.5)})){x=function ArrayBuffer(a){return new C(Z(this,a))};for(var $,_=x[u]=C[u],aa=o(C),ba=0;aa.length>ba;)($=aa[ba++])in x||i(x,$,C[$]);g||(_.constructor=x)}var ca=new y(new x(2)),da=y[u].setInt8;ca.setInt8(0,2147483648),ca.setInt8(1,2147483649),!ca.getInt8(0)&&ca.getInt8(1)||j(y[u],{setInt8:function setInt8(a,b){da.call(this,a,b<<24>>24)},setUint8:function setUint8(a,b){da.call(this,a,b<<24>>24)}},!0)}else x=function ArrayBuffer(a){var b=Z(this,a);this._b=q.call(Array(b),0),this[M]=b},y=function DataView(a,b,d){l(this,y,t),l(a,x,t);var e=a[M],f=m(b);if(f<0||f>e)throw A("Wrong offset!");if(d=d===c?e-f:n(d),f+d>e)throw A(v);this[L]=a,this[N]=f,this[M]=d},f&&(W(x,J,"_l"),W(y,I,"_b"),W(y,J,"_l"),W(y,K,"_o")),j(y[u],{getInt8:function getInt8(a){return X(this,1,a)[0]<<24>>24},getUint8:function getUint8(a){return X(this,1,a)[0]},getInt16:function getInt16(a){var b=X(this,2,a,arguments[1]);return(b[1]<<8|b[0])<<16>>16},getUint16:function getUint16(a){var b=X(this,2,a,arguments[1]);return b[1]<<8|b[0]},getInt32:function getInt32(a){return Q(X(this,4,a,arguments[1]))},getUint32:function getUint32(a){return Q(X(this,4,a,arguments[1]))>>>0},getFloat32:function getFloat32(a){return P(X(this,4,a,arguments[1]),23,4)},getFloat64:function getFloat64(a){return P(X(this,8,a,arguments[1]),52,8)},setInt8:function setInt8(a,b){Y(this,1,a,R,b)},setUint8:function setUint8(a,b){Y(this,1,a,R,b)},setInt16:function setInt16(a,b){Y(this,2,a,S,b,arguments[2])},setUint16:function setUint16(a,b){Y(this,2,a,S,b,arguments[2])},setInt32:function setInt32(a,b){Y(this,4,a,T,b,arguments[2])},setUint32:function setUint32(a,b){Y(this,4,a,T,b,arguments[2])},setFloat32:function setFloat32(a,b){Y(this,4,a,V,b,arguments[2])},setFloat64:function setFloat64(a,b){Y(this,8,a,U,b,arguments[2])}});r(x,s),r(y,t),i(y[u],h.VIEW,!0),b[s]=x,b[t]=y},function(a,b,c){var d=c(6);d(d.G+d.W+d.F*!c(216).ABV,{DataView:c(217).DataView})},function(a,b,c){c(220)("Int8",1,function(a){return function Int8Array(b,c,d){return a(this,b,c,d)}})},function(a,b,d){if(d(4)){var e=d(26),f=d(2),g=d(5),h=d(6),i=d(216),j=d(217),k=d(8),l=d(184),m=d(17),n=d(10),o=d(189),p=d(36),q=d(35),r=d(37),s=d(16),t=d(3),u=d(69),v=d(152),w=d(13),x=d(56),y=d(149),z=d(44),A=d(57),B=d(48).f,C=d(151),D=d(20),E=d(23),F=d(160),G=d(34),H=d(186),I=d(179),J=d(130),K=d(153),L=d(182),M=d(176),N=d(173),O=d(11),P=d(49),Q=O.f,R=P.f,S=f.RangeError,T=f.TypeError,U=f.Uint8Array,V="ArrayBuffer",W="Shared"+V,X="BYTES_PER_ELEMENT",Y="prototype",Z=Array[Y],$=j.ArrayBuffer,_=j.DataView,aa=F(0),ba=F(2),ca=F(3),da=F(4),ea=F(5),fa=F(6),ga=G(!0),ha=G(!1),ia=I.values,ja=I.keys,ka=I.entries,la=Z.lastIndexOf,ma=Z.reduce,na=Z.reduceRight,oa=Z.join,pa=Z.sort,qa=Z.slice,ra=Z.toString,sa=Z.toLocaleString,ta=E("iterator"),ua=E("toStringTag"),va=D("typed_constructor"),wa=D("def_constructor"),xa=i.CONSTR,ya=i.TYPED,za=i.VIEW,Aa="Wrong length!",Ba=F(1,function(a,b){return Ha(H(a,a[wa]),b)}),Ca=g(function(){return 1===new U(new Uint16Array([1]).buffer)[0]}),Da=!!U&&!!U[Y].set&&g(function(){new U(1).set({})}),Ea=function(a,b){if(a===c)throw T(Aa);var d=+a,e=q(a);if(b&&!u(d,e))throw S(Aa);return e},Fa=function(a,b){var c=p(a);if(c<0||c%b)throw S("Wrong offset!");return c},Ga=function(a){if(w(a)&&ya in a)return a;throw T(a+" is not a typed array!")},Ha=function(a,b){if(!(w(a)&&va in a))throw T("It is not a typed array constructor!");return new a(b)},Ia=function(a,b){return Ja(H(a,a[wa]),b)},Ja=function(a,b){for(var c=0,d=b.length,e=Ha(a,d);d>c;)e[c]=b[c++];return e},Ka=function(a,b,c){Q(a,b,{get:function(){return this._d[c]}})},La=function from(a){var b,d,e,f,g,h,i=x(a),j=arguments.length,l=j>1?arguments[1]:c,m=l!==c,n=C(i);if(n!=c&&!y(n)){for(h=n.call(i),e=[],b=0;!(g=h.next()).done;b++)e.push(g.value);i=e}for(m&&j>2&&(l=k(l,arguments[2],2)),b=0,d=q(i.length),f=Ha(this,d);d>b;b++)f[b]=m?l(i[b],b):i[b];return f},Ma=function of(){for(var a=0,b=arguments.length,c=Ha(this,b);b>a;)c[a]=arguments[a++];return c},Na=!!U&&g(function(){sa.call(new U(1))}),Oa=function toLocaleString(){return sa.apply(Na?qa.call(Ga(this)):Ga(this),arguments)},Pa={copyWithin:function copyWithin(a,b){return N.call(Ga(this),a,b,arguments.length>2?arguments[2]:c)},every:function every(a){return da(Ga(this),a,arguments.length>1?arguments[1]:c)},fill:function fill(a){return M.apply(Ga(this),arguments)},filter:function filter(a){return Ia(this,ba(Ga(this),a,arguments.length>1?arguments[1]:c))},find:function find(a){return ea(Ga(this),a,arguments.length>1?arguments[1]:c)},findIndex:function findIndex(a){return fa(Ga(this),a,arguments.length>1?arguments[1]:c)},forEach:function forEach(a){aa(Ga(this),a,arguments.length>1?arguments[1]:c)},indexOf:function indexOf(a){return ha(Ga(this),a,arguments.length>1?arguments[1]:c)},includes:function includes(a){return ga(Ga(this),a,arguments.length>1?arguments[1]:c)},join:function join(a){return oa.apply(Ga(this),arguments)},lastIndexOf:function lastIndexOf(a){return la.apply(Ga(this),arguments)},map:function map(a){return Ba(Ga(this),a,arguments.length>1?arguments[1]:c)},reduce:function reduce(a){return ma.apply(Ga(this),arguments)},reduceRight:function reduceRight(a){return na.apply(Ga(this),arguments)},reverse:function reverse(){for(var a,b=this,c=Ga(b).length,d=Math.floor(c/2),e=0;e<d;)a=b[e],b[e++]=b[--c],b[c]=a;return b},some:function some(a){return ca(Ga(this),a,arguments.length>1?arguments[1]:c)},sort:function sort(a){return pa.call(Ga(this),a)},subarray:function subarray(a,b){var d=Ga(this),e=d.length,f=r(a,e);return new(H(d,d[wa]))(d.buffer,d.byteOffset+f*d.BYTES_PER_ELEMENT,q((b===c?e:r(b,e))-f))}},Qa=function slice(a,b){return Ia(this,qa.call(Ga(this),a,b))},Ra=function set(a){Ga(this);var b=Fa(arguments[1],1),c=this.length,d=x(a),e=q(d.length),f=0;if(e+b>c)throw S(Aa);for(;f<e;)this[b+f]=d[f++]},Sa={entries:function entries(){return ka.call(Ga(this))},keys:function keys(){return ja.call(Ga(this))},values:function values(){return ia.call(Ga(this))}},Ta=function(a,b){return w(a)&&a[ya]&&"symbol"!=typeof b&&b in a&&String(+b)==String(b)},Ua=function getOwnPropertyDescriptor(a,b){return Ta(a,b=s(b,!0))?m(2,a[b]):R(a,b)},Va=function defineProperty(a,b,c){return!(Ta(a,b=s(b,!0))&&w(c)&&t(c,"value"))||t(c,"get")||t(c,"set")||c.configurable||t(c,"writable")&&!c.writable||t(c,"enumerable")&&!c.enumerable?Q(a,b,c):(a[b]=c.value,a)};xa||(P.f=Ua,O.f=Va),h(h.S+h.F*!xa,"Object",{getOwnPropertyDescriptor:Ua,defineProperty:Va}),g(function(){ra.call({})})&&(ra=sa=function toString(){return oa.call(this)});var Wa=o({},Pa);o(Wa,Sa),n(Wa,ta,Sa.values),o(Wa,{slice:Qa,set:Ra,constructor:function(){},toString:ra,toLocaleString:Oa}),Ka(Wa,"buffer","b"),Ka(Wa,"byteOffset","o"),Ka(Wa,"byteLength","l"),Ka(Wa,"length","e"),Q(Wa,ua,{get:function(){return this[ya]}}),a.exports=function(a,b,d,j){j=!!j;var k=a+(j?"Clamped":"")+"Array",m="Uint8Array"!=k,o="get"+a,p="set"+a,r=f[k],s=r||{},t=r&&A(r),u=!r||!i.ABV,x={},y=r&&r[Y],C=function(a,c){var d=a._d;return d.v[o](c*b+d.o,Ca)},D=function(a,c,d){var e=a._d;j&&(d=(d=Math.round(d))<0?0:d>255?255:255&d),e.v[p](c*b+e.o,d,Ca)},E=function(a,b){Q(a,b,{get:function(){return C(this,b)},set:function(a){return D(this,b,a)},enumerable:!0})};u?(r=d(function(a,d,e,f){l(a,r,k,"_d");var g,h,i,j,m=0,o=0;if(w(d)){if(!(d instanceof $||(j=v(d))==V||j==W))return ya in d?Ja(r,d):La.call(r,d);g=d,o=Fa(e,b);var p=d.byteLength;if(f===c){if(p%b)throw S(Aa);if(h=p-o,h<0)throw S(Aa)}else if(h=q(f)*b,h+o>p)throw S(Aa);i=h/b}else i=Ea(d,!0),h=i*b,g=new $(h);for(n(a,"_d",{b:g,o:o,l:h,e:i,v:new _(g)});m<i;)E(a,m++)}),y=r[Y]=z(Wa),n(y,"constructor",r)):K(function(a){new r(null),new r(a)},!0)||(r=d(function(a,d,e,f){l(a,r,k);var g;return w(d)?d instanceof $||(g=v(d))==V||g==W?f!==c?new s(d,Fa(e,b),f):e!==c?new s(d,Fa(e,b)):new s(d):ya in d?Ja(r,d):La.call(r,d):new s(Ea(d,m))}),aa(t!==Function.prototype?B(s).concat(B(t)):B(s),function(a){a in r||n(r,a,s[a])}),r[Y]=y,e||(y.constructor=r));var F=y[ta],G=!!F&&("values"==F.name||F.name==c),H=Sa.values;n(r,va,!0),n(y,ya,k),n(y,za,!0),n(y,wa,r),(j?new r(1)[ua]==k:ua in y)||Q(y,ua,{get:function(){return k}}),x[k]=r,h(h.G+h.W+h.F*(r!=s),x),h(h.S,k,{BYTES_PER_ELEMENT:b,from:La,of:Ma}),X in y||n(y,X,b),h(h.P,k,Pa),L(k),h(h.P+h.F*Da,k,{set:Ra}),h(h.P+h.F*!G,k,Sa),h(h.P+h.F*(y.toString!=ra),k,{toString:ra}),h(h.P+h.F*g(function(){new r(1).slice()}),k,{slice:Qa}),h(h.P+h.F*(g(function(){return[1,2].toLocaleString()!=new r([1,2]).toLocaleString()})||!g(function(){y.toLocaleString.call([1,2])})),k,{toLocaleString:Oa}),J[k]=G?F:H,e||G||n(y,ta,H)}}else a.exports=function(){}},function(a,b,c){c(220)("Uint8",1,function(a){return function Uint8Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(220)("Uint8",1,function(a){return function Uint8ClampedArray(b,c,d){return a(this,b,c,d)}},!0)},function(a,b,c){c(220)("Int16",2,function(a){return function Int16Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(220)("Uint16",2,function(a){return function Uint16Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(220)("Int32",4,function(a){return function Int32Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(220)("Uint32",4,function(a){return function Uint32Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(220)("Float32",4,function(a){return function Float32Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(220)("Float64",8,function(a){return function Float64Array(b,c,d){return a(this,b,c,d)}})},function(a,b,d){var e=d(6),f=d(34)(!0);e(e.P,"Array",{includes:function includes(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(174)("includes")},function(a,b,c){var d=c(6),e=c(120)(!0);d(d.P,"String",{at:function at(a){return e(this,a)}})},function(a,b,d){var e=d(6),f=d(232);e(e.P,"String",{padStart:function padStart(a){return f(this,a,arguments.length>1?arguments[1]:c,!0)}})},function(a,b,d){var e=d(35),f=d(78),g=d(33);a.exports=function(a,b,d,h){var i=String(g(a)),j=i.length,k=d===c?" ":String(d),l=e(b);if(l<=j||""==k)return i;var m=l-j,n=f.call(k,Math.ceil(m/k.length));return n.length>m&&(n=n.slice(0,m)),h?n+i:i+n}},function(a,b,d){var e=d(6),f=d(232);e(e.P,"String",{padEnd:function padEnd(a){return f(this,a,arguments.length>1?arguments[1]:c,!1)}})},function(a,b,c){c(90)("trimLeft",function(a){return function trimLeft(){return a(this,1)}},"trimStart")},function(a,b,c){c(90)("trimRight",function(a){return function trimRight(){return a(this,2)}},"trimEnd")},function(a,b,c){var d=c(6),e=c(33),f=c(35),g=c(123),h=c(237),i=RegExp.prototype,j=function(a,b){this._r=a,this._s=b};c(131)(j,"RegExp String",function next(){var a=this._r.exec(this._s);return{value:a,done:null===a}}),d(d.P,"String",{matchAll:function matchAll(a){if(e(this),!g(a))throw TypeError(a+" is not a regexp!");var b=String(this),c="flags"in i?String(a.flags):h.call(a),d=new RegExp(a.source,~c.indexOf("g")?c:"g"+c);
-return d.lastIndex=f(a.lastIndex),new j(d,b)}})},function(a,b,c){var d=c(12);a.exports=function(){var a=d(this),b="";return a.global&&(b+="g"),a.ignoreCase&&(b+="i"),a.multiline&&(b+="m"),a.unicode&&(b+="u"),a.sticky&&(b+="y"),b}},function(a,b,c){c(25)("asyncIterator")},function(a,b,c){c(25)("observable")},function(a,b,c){var d=c(6),e=c(208),f=c(30),g=c(49),h=c(150);d(d.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(a){for(var b,c=f(a),d=g.f,i=e(c),j={},k=0;i.length>k;)h(j,b=i[k++],d(c,b));return j}})},function(a,b,c){var d=c(6),e=c(242)(!1);d(d.S,"Object",{values:function values(a){return e(a)}})},function(a,b,c){var d=c(28),e=c(30),f=c(42).f;a.exports=function(a){return function(b){for(var c,g=e(b),h=d(g),i=h.length,j=0,k=[];i>j;)f.call(g,c=h[j++])&&k.push(a?[c,g[c]]:g[c]);return k}}},function(a,b,c){var d=c(6),e=c(242)(!0);d(d.S,"Object",{entries:function entries(a){return e(a)}})},function(a,b,c){var d=c(6),e=c(56),f=c(9),g=c(11);c(4)&&d(d.P+c(245),"Object",{__defineGetter__:function __defineGetter__(a,b){g.f(e(this),a,{get:f(b),enumerable:!0,configurable:!0})}})},function(a,b,c){a.exports=c(26)||!c(5)(function(){var a=Math.random();__defineSetter__.call(null,a,function(){}),delete c(2)[a]})},function(a,b,c){var d=c(6),e=c(56),f=c(9),g=c(11);c(4)&&d(d.P+c(245),"Object",{__defineSetter__:function __defineSetter__(a,b){g.f(e(this),a,{set:f(b),enumerable:!0,configurable:!0})}})},function(a,b,c){var d=c(6),e=c(56),f=c(16),g=c(57),h=c(49).f;c(4)&&d(d.P+c(245),"Object",{__lookupGetter__:function __lookupGetter__(a){var b,c=e(this),d=f(a,!0);do if(b=h(c,d))return b.get;while(c=g(c))}})},function(a,b,c){var d=c(6),e=c(56),f=c(16),g=c(57),h=c(49).f;c(4)&&d(d.P+c(245),"Object",{__lookupSetter__:function __lookupSetter__(a){var b,c=e(this),d=f(a,!0);do if(b=h(c,d))return b.set;while(c=g(c))}})},function(a,b,c){var d=c(6);d(d.P+d.R,"Map",{toJSON:c(250)("Map")})},function(a,b,c){var d=c(152),e=c(251);a.exports=function(a){return function toJSON(){if(d(this)!=a)throw TypeError(a+"#toJSON isn't generic");return e(this)}}},function(a,b,c){var d=c(185);a.exports=function(a,b){var c=[];return d(a,!1,c.push,c,b),c}},function(a,b,c){var d=c(6);d(d.P+d.R,"Set",{toJSON:c(250)("Set")})},function(a,b,c){var d=c(6);d(d.S,"System",{global:c(2)})},function(a,b,c){var d=c(6),e=c(32);d(d.S,"Error",{isError:function isError(a){return"Error"===e(a)}})},function(a,b,c){var d=c(6);d(d.S,"Math",{iaddh:function iaddh(a,b,c,d){var e=a>>>0,f=b>>>0,g=c>>>0;return f+(d>>>0)+((e&g|(e|g)&~(e+g>>>0))>>>31)|0}})},function(a,b,c){var d=c(6);d(d.S,"Math",{isubh:function isubh(a,b,c,d){var e=a>>>0,f=b>>>0,g=c>>>0;return f-(d>>>0)-((~e&g|~(e^g)&e-g>>>0)>>>31)|0}})},function(a,b,c){var d=c(6);d(d.S,"Math",{imulh:function imulh(a,b){var c=65535,d=+a,e=+b,f=d&c,g=e&c,h=d>>16,i=e>>16,j=(h*g>>>0)+(f*g>>>16);return h*i+(j>>16)+((f*i>>>0)+(j&c)>>16)}})},function(a,b,c){var d=c(6);d(d.S,"Math",{umulh:function umulh(a,b){var c=65535,d=+a,e=+b,f=d&c,g=e&c,h=d>>>16,i=e>>>16,j=(h*g>>>0)+(f*g>>>16);return h*i+(j>>>16)+((f*i>>>0)+(j&c)>>>16)}})},function(a,b,c){var d=c(260),e=c(12),f=d.key,g=d.set;d.exp({defineMetadata:function defineMetadata(a,b,c,d){g(a,b,e(c),f(d))}})},function(a,b,d){var e=d(190),f=d(6),g=d(21)("metadata"),h=g.store||(g.store=new(d(194))),i=function(a,b,d){var f=h.get(a);if(!f){if(!d)return c;h.set(a,f=new e)}var g=f.get(b);if(!g){if(!d)return c;f.set(b,g=new e)}return g},j=function(a,b,d){var e=i(b,d,!1);return e!==c&&e.has(a)},k=function(a,b,d){var e=i(b,d,!1);return e===c?c:e.get(a)},l=function(a,b,c,d){i(c,d,!0).set(a,b)},m=function(a,b){var c=i(a,b,!1),d=[];return c&&c.forEach(function(a,b){d.push(b)}),d},n=function(a){return a===c||"symbol"==typeof a?a:String(a)},o=function(a){f(f.S,"Reflect",a)};a.exports={store:h,map:i,has:j,get:k,set:l,keys:m,key:n,exp:o}},function(a,b,d){var e=d(260),f=d(12),g=e.key,h=e.map,i=e.store;e.exp({deleteMetadata:function deleteMetadata(a,b){var d=arguments.length<3?c:g(arguments[2]),e=h(f(b),d,!1);if(e===c||!e["delete"](a))return!1;if(e.size)return!0;var j=i.get(b);return j["delete"](d),!!j.size||i["delete"](b)}})},function(a,b,d){var e=d(260),f=d(12),g=d(57),h=e.has,i=e.get,j=e.key,k=function(a,b,d){var e=h(a,b,d);if(e)return i(a,b,d);var f=g(b);return null!==f?k(a,f,d):c};e.exp({getMetadata:function getMetadata(a,b){return k(a,f(b),arguments.length<3?c:j(arguments[2]))}})},function(a,b,d){var e=d(193),f=d(251),g=d(260),h=d(12),i=d(57),j=g.keys,k=g.key,l=function(a,b){var c=j(a,b),d=i(a);if(null===d)return c;var g=l(d,b);return g.length?c.length?f(new e(c.concat(g))):g:c};g.exp({getMetadataKeys:function getMetadataKeys(a){return l(h(a),arguments.length<2?c:k(arguments[1]))}})},function(a,b,d){var e=d(260),f=d(12),g=e.get,h=e.key;e.exp({getOwnMetadata:function getOwnMetadata(a,b){return g(a,f(b),arguments.length<3?c:h(arguments[2]))}})},function(a,b,d){var e=d(260),f=d(12),g=e.keys,h=e.key;e.exp({getOwnMetadataKeys:function getOwnMetadataKeys(a){return g(f(a),arguments.length<2?c:h(arguments[1]))}})},function(a,b,d){var e=d(260),f=d(12),g=d(57),h=e.has,i=e.key,j=function(a,b,c){var d=h(a,b,c);if(d)return!0;var e=g(b);return null!==e&&j(a,e,c)};e.exp({hasMetadata:function hasMetadata(a,b){return j(a,f(b),arguments.length<3?c:i(arguments[2]))}})},function(a,b,d){var e=d(260),f=d(12),g=e.has,h=e.key;e.exp({hasOwnMetadata:function hasOwnMetadata(a,b){return g(a,f(b),arguments.length<3?c:h(arguments[2]))}})},function(a,b,d){var e=d(260),f=d(12),g=d(9),h=e.key,i=e.set;e.exp({metadata:function metadata(a,b){return function decorator(d,e){i(a,b,(e!==c?f:g)(d),h(e))}}})},function(a,b,c){var d=c(6),e=c(188)(),f=c(2).process,g="process"==c(32)(f);d(d.G,{asap:function asap(a){var b=g&&f.domain;e(b?b.bind(a):a)}})},function(a,b,d){var e=d(6),f=d(2),g=d(7),h=d(188)(),i=d(23)("observable"),j=d(9),k=d(12),l=d(184),m=d(189),n=d(10),o=d(185),p=o.RETURN,q=function(a){return null==a?c:j(a)},r=function(a){var b=a._c;b&&(a._c=c,b())},s=function(a){return a._o===c},t=function(a){s(a)||(a._o=c,r(a))},u=function(a,b){k(a),this._c=c,this._o=a,a=new v(this);try{var d=b(a),e=d;null!=d&&("function"==typeof d.unsubscribe?d=function(){e.unsubscribe()}:j(d),this._c=d)}catch(f){return void a.error(f)}s(this)&&r(this)};u.prototype=m({},{unsubscribe:function unsubscribe(){t(this)}});var v=function(a){this._s=a};v.prototype=m({},{next:function next(a){var b=this._s;if(!s(b)){var c=b._o;try{var d=q(c.next);if(d)return d.call(c,a)}catch(e){try{t(b)}finally{throw e}}}},error:function error(a){var b=this._s;if(s(b))throw a;var d=b._o;b._o=c;try{var e=q(d.error);if(!e)throw a;a=e.call(d,a)}catch(f){try{r(b)}finally{throw f}}return r(b),a},complete:function complete(a){var b=this._s;if(!s(b)){var d=b._o;b._o=c;try{var e=q(d.complete);a=e?e.call(d,a):c}catch(f){try{r(b)}finally{throw f}}return r(b),a}}});var w=function Observable(a){l(this,w,"Observable","_f")._f=j(a)};m(w.prototype,{subscribe:function subscribe(a){return new u(a,this._f)},forEach:function forEach(a){var b=this;return new(g.Promise||f.Promise)(function(c,d){j(a);var e=b.subscribe({next:function(b){try{return a(b)}catch(c){d(c),e.unsubscribe()}},error:d,complete:c})})}}),m(w,{from:function from(a){var b="function"==typeof this?this:w,c=q(k(a)[i]);if(c){var d=k(c.call(a));return d.constructor===b?d:new b(function(a){return d.subscribe(a)})}return new b(function(b){var c=!1;return h(function(){if(!c){try{if(o(a,!1,function(a){if(b.next(a),c)return p})===p)return}catch(d){if(c)throw d;return void b.error(d)}b.complete()}}),function(){c=!0}})},of:function of(){for(var a=0,b=arguments.length,c=Array(b);a<b;)c[a]=arguments[a++];return new("function"==typeof this?this:w)(function(a){var b=!1;return h(function(){if(!b){for(var d=0;d<c.length;++d)if(a.next(c[d]),b)return;a.complete()}}),function(){b=!0}})}}),n(w.prototype,i,function(){return this}),e(e.G,{Observable:w}),d(182)("Observable")},function(a,b,c){var d=c(6),e=c(187);d(d.G+d.B,{setImmediate:e.set,clearImmediate:e.clear})},function(a,b,c){c(179);for(var d=c(2),e=c(10),f=c(130),g=c(23)("toStringTag"),h=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],i=0;i<5;i++){var j=h[i],k=d[j],l=k&&k.prototype;l&&!l[g]&&e(l,g,j),f[j]=f.Array}},function(a,b,c){var d=c(2),e=c(6),f=c(74),g=c(274),h=d.navigator,i=!!h&&/MSIE .\./.test(h.userAgent),j=function(a){return i?function(b,c){return a(f(g,[].slice.call(arguments,2),"function"==typeof b?b:Function(b)),c)}:a};e(e.G+e.B+e.F*i,{setTimeout:j(d.setTimeout),setInterval:j(d.setInterval)})},function(a,b,c){var d=c(275),e=c(74),f=c(9);a.exports=function(){for(var a=f(this),b=arguments.length,c=Array(b),g=0,h=d._,i=!1;b>g;)(c[g]=arguments[g++])===h&&(i=!0);return function(){var d,f=this,g=arguments.length,j=0,k=0;if(!i&&!g)return e(a,c,f);if(d=c.slice(),i)for(;b>j;j++)d[j]===h&&(d[j]=arguments[k++]);for(;g>k;)d.push(arguments[k++]);return e(a,d,f)}}},function(a,b,c){a.exports=c(7)},function(a,b,d){function Dict(a){var b=i(null);return a!=c&&(p(a)?o(a,!0,function(a,c){b[a]=c}):h(b,a)),b}function reduce(a,b,c){n(b);var d,e,f=t(a),g=k(f),h=g.length,i=0;if(arguments.length<3){if(!h)throw TypeError("Reduce of empty object with no initial value");d=f[g[i++]]}else d=Object(c);for(;h>i;)v(f,e=g[i++])&&(d=b(d,f[e],e,a));return d}function includes(a,b){return(b==b?m(a,b):x(a,function(a){return a!=a}))!==c}function get(a,b){if(v(a,b))return a[b]}function set(a,b,c){return u&&b in Object?l.f(a,b,g(0,c)):a[b]=c,a}function isDict(a){return s(a)&&j(a)===Dict.prototype}var e=d(8),f=d(6),g=d(17),h=d(67),i=d(44),j=d(57),k=d(28),l=d(11),m=d(27),n=d(9),o=d(185),p=d(277),q=d(131),r=d(180),s=d(13),t=d(30),u=d(4),v=d(3),w=function(a){var b=1==a,d=4==a;return function(f,g,h){var i,j,k,l=e(g,h,3),m=t(f),n=b||7==a||2==a?new("function"==typeof this?this:Dict):c;for(i in m)if(v(m,i)&&(j=m[i],k=l(j,i,f),a))if(b)n[i]=k;else if(k)switch(a){case 2:n[i]=j;break;case 3:return!0;case 5:return j;case 6:return i;case 7:n[k[0]]=k[1]}else if(d)return!1;return 3==a||d?d:n}},x=w(6),y=function(a){return function(b){return new z(b,a)}},z=function(a,b){this._t=t(a),this._a=k(a),this._i=0,this._k=b};q(z,"Dict",function(){var a,b=this,d=b._t,e=b._a,f=b._k;do if(b._i>=e.length)return b._t=c,r(1);while(!v(d,a=e[b._i++]));return"keys"==f?r(0,a):"values"==f?r(0,d[a]):r(0,[a,d[a]])}),Dict.prototype=null,f(f.G+f.F,{Dict:Dict}),f(f.S,"Dict",{keys:y("keys"),values:y("values"),entries:y("entries"),forEach:w(0),map:w(1),filter:w(2),some:w(3),every:w(4),find:w(5),findKey:x,mapPairs:w(7),reduce:reduce,keyOf:m,includes:includes,has:v,get:get,set:set,isDict:isDict})},function(a,b,d){var e=d(152),f=d(23)("iterator"),g=d(130);a.exports=d(7).isIterable=function(a){var b=Object(a);return b[f]!==c||"@@iterator"in b||g.hasOwnProperty(e(b))}},function(a,b,c){var d=c(12),e=c(151);a.exports=c(7).getIterator=function(a){var b=e(a);if("function"!=typeof b)throw TypeError(a+" is not iterable!");return d(b.call(a))}},function(a,b,c){var d=c(2),e=c(7),f=c(6),g=c(274);f(f.G+f.F,{delay:function delay(a){return new(e.Promise||d.Promise)(function(b){setTimeout(g.call(b,!0),a)})}})},function(a,b,c){var d=c(275),e=c(6);c(7)._=d._=d._||{},e(e.P+e.F,"Function",{part:c(274)})},function(a,b,c){var d=c(6);d(d.S+d.F,"Object",{isObject:c(13)})},function(a,b,c){var d=c(6);d(d.S+d.F,"Object",{classof:c(152)})},function(a,b,c){var d=c(6),e=c(284);d(d.S+d.F,"Object",{define:e})},function(a,b,c){var d=c(11),e=c(49),f=c(208),g=c(30);a.exports=function define(a,b){for(var c,h=f(g(b)),i=h.length,j=0;i>j;)d.f(a,c=h[j++],e.f(b,c));return a}},function(a,b,c){var d=c(6),e=c(284),f=c(44);d(d.S+d.F,"Object",{make:function(a,b){return e(f(a),b)}})},function(a,b,d){d(129)(Number,"Number",function(a){this._l=+a,this._i=0},function(){var a=this._i++,b=!(a<this._l);return{done:b,value:b?c:a}})},function(a,b,c){var d=c(6),e=c(288)(/[\\^$*+?.()|[\]{}]/g,"\\$&");d(d.S,"RegExp",{escape:function escape(a){return e(a)}})},function(a,b){a.exports=function(a,b){var c=b===Object(b)?function(a){return b[a]}:b;return function(b){return String(b).replace(a,c)}}},function(a,b,c){var d=c(6),e=c(288)(/[&<>"']/g,{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&apos;"});d(d.P+d.F,"String",{escapeHTML:function escapeHTML(){return e(this)}})},function(a,b,c){var d=c(6),e=c(288)(/&(?:amp|lt|gt|quot|apos);/g,{"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&apos;":"'"});d(d.P+d.F,"String",{unescapeHTML:function unescapeHTML(){return e(this)}})}]),"undefined"!=typeof module&&module.exports?module.exports=a:"function"==typeof define&&define.amd?define(function(){return a}):b.core=a}(1,1);
-//# sourceMappingURL=library.min.js.map \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/client/library.min.js.map b/node_modules/babel-runtime/node_modules/core-js/client/library.min.js.map
deleted file mode 100644
index d62fab82e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/client/library.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["library.js"],"names":["__e","__g","undefined","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","global","has","DESCRIPTORS","$export","redefine","META","KEY","$fails","shared","setToStringTag","uid","wks","wksExt","wksDefine","keyOf","enumKeys","isArray","anObject","toIObject","toPrimitive","createDesc","_create","gOPNExt","$GOPD","$DP","$keys","gOPD","f","dP","gOPN","$Symbol","Symbol","$JSON","JSON","_stringify","stringify","PROTOTYPE","HIDDEN","TO_PRIMITIVE","isEnum","propertyIsEnumerable","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","Object","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","get","this","value","a","it","key","D","protoDesc","wrap","tag","sym","_k","isSymbol","iterator","$defineProperty","defineProperty","enumerable","$defineProperties","defineProperties","P","keys","i","l","length","$create","create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","$getOwnPropertyNames","getOwnPropertyNames","names","result","push","$getOwnPropertySymbols","getOwnPropertySymbols","IS_OP","TypeError","arguments","$set","configurable","set","toString","name","G","W","F","symbols","split","store","S","for","keyFor","useSetter","useSimple","replacer","$replacer","args","apply","valueOf","Math","window","self","Function","hasOwnProperty","exec","e","core","ctx","hide","type","source","own","out","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","B","IS_WRAP","expProto","target","C","b","virtual","R","U","version","aFunction","fn","that","object","IE8_DOM_DEFINE","O","Attributes","isObject","document","is","createElement","val","bitmap","writable","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","fastKey","getWeak","onFreeze","meta","NEED","px","random","concat","SHARED","def","TAG","stat","prototype","USE_SYMBOL","$exports","LIBRARY","charAt","getKeys","el","index","enumBugKeys","arrayIndexOf","IE_PROTO","IObject","defined","cof","slice","toLength","toIndex","IS_INCLUDES","$this","fromIndex","toInteger","min","ceil","floor","isNaN","max","gOPS","pIE","getSymbols","Array","arg","dPs","Empty","createDict","iframeDocument","iframe","lt","gt","style","display","appendChild","src","contentWindow","open","write","close","Properties","documentElement","windowNames","getWindowNames","hiddenKeys","fails","exp","toObject","$getPrototypeOf","getPrototypeOf","constructor","$freeze","freeze","$seal","seal","$preventExtensions","$isFrozen","isFrozen","$isSealed","isSealed","$isExtensible","assign","$assign","A","K","forEach","k","join","T","aLen","j","x","y","setPrototypeOf","check","proto","test","buggy","__proto__","bind","invoke","arraySlice","factories","construct","len","n","partArgs","bound","un","HAS_INSTANCE","FunctionProto","aNumberValue","repeat","$toFixed","toFixed","data","ERROR","ZERO","multiply","c2","divide","numToString","s","t","String","pow","acc","log","x2","fractionDigits","z","RangeError","msg","count","str","res","Infinity","$toPrecision","toPrecision","precision","EPSILON","_isFinite","isFinite","isInteger","number","abs","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","$parseFloat","Number","parseFloat","$trim","trim","string","spaces","space","non","ltrim","RegExp","rtrim","exporter","ALIAS","FORCE","TYPE","replace","$parseInt","parseInt","ws","hex","radix","log1p","sqrt","$acosh","acosh","MAX_VALUE","NaN","LN2","asinh","$asinh","$atanh","atanh","sign","cbrt","clz32","LOG2E","cosh","$expm1","expm1","EPSILON32","MAX32","MIN32","roundTiesToEven","fround","$abs","$sign","hypot","value1","value2","div","sum","larg","$imul","imul","UINT16","xn","yn","xl","yl","log10","LN10","log2","sinh","tanh","trunc","fromCharCode","$fromCodePoint","fromCodePoint","code","raw","callSite","tpl","$at","codePointAt","pos","TO_STRING","charCodeAt","context","ENDS_WITH","$endsWith","endsWith","searchString","endPosition","end","search","isRegExp","NAME","MATCH","re","INCLUDES","includes","indexOf","STARTS_WITH","$startsWith","startsWith","iterated","_t","_i","point","done","Iterators","$iterCreate","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","Constructor","next","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","values","entries","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","descriptor","createHTML","anchor","quot","attribute","p1","toLowerCase","big","blink","bold","fixed","fontcolor","color","fontsize","size","italics","link","url","small","strike","sub","sup","isArrayIter","createProperty","getIterFn","iter","from","arrayLike","step","mapfn","mapping","iterFn","ret","ArrayProto","classof","getIteratorMethod","ARG","tryGet","callee","SAFE_CLOSING","riter","skipClosing","safe","arr","of","arrayJoin","separator","method","html","begin","klass","start","upTo","cloned","$sort","sort","comparefn","$forEach","STRICT","callbackfn","asc","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","speciesConstructor","original","SPECIES","$map","map","$filter","filter","$some","some","$every","every","$reduce","reduce","memo","isRight","reduceRight","$indexOf","NEGATIVE_ZERO","searchElement","lastIndexOf","copyWithin","to","inc","fill","endPos","$find","forced","find","findIndex","addToUnscopables","Arguments","Internal","GenericPromiseCapability","Wrapper","anInstance","forOf","task","microtask","PROMISE","process","$Promise","isNode","empty","promise","resolve","FakePromise","PromiseRejectionEvent","then","sameConstructor","isThenable","newPromiseCapability","PromiseCapability","reject","$$resolve","$$reject","perform","error","notify","isReject","_n","chain","_c","_v","ok","_s","run","reaction","handler","fail","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","abrupt","console","isUnhandled","emit","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_d","_w","$resolve","wrapper","Promise","executor","err","onFulfilled","onRejected","catch","r","capability","all","iterable","remaining","$index","alreadyCalled","race","forbiddenField","BREAK","RETURN","defer","channel","port","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","counter","queue","ONREADYSTATECHANGE","listener","event","nextTick","port2","port1","onmessage","postMessage","addEventListener","importScripts","removeChild","setTimeout","clear","macrotask","Observer","MutationObserver","WebKitMutationObserver","head","last","flush","parent","toggle","node","createTextNode","observe","characterData","strong","Map","entry","getEntry","v","redefineAll","$iterDefine","setSpecies","SIZE","_f","getConstructor","ADDER","_l","delete","prev","setStrong","each","common","IS_WEAK","IS_ADDER","Set","add","InternalMap","weak","uncaughtFrozenStore","ufstore","tmp","WeakMap","$WeakMap","createArrayMethod","$has","arrayFind","arrayFindIndex","UncaughtFrozenStore","findUncaughtFrozen","splice","WeakSet","rApply","Reflect","fApply","thisArgument","argumentsList","L","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","instance","propertyKey","attributes","deleteProperty","desc","Enumerate","enumerate","receiver","getProto","ownKeys","V","existingDescriptor","ownDesc","setProto","now","Date","getTime","toJSON","toISOString","pv","lz","num","d","getUTCFullYear","getUTCMilliseconds","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","$typed","buffer","ArrayBuffer","$ArrayBuffer","$DataView","DataView","$isView","ABV","isView","$slice","VIEW","ARRAY_BUFFER","CONSTR","byteLength","first","final","viewS","viewT","setUint8","getUint8","Typed","TYPED","TypedArrayConstructors","arrayFill","DATA_VIEW","WRONG_LENGTH","WRONG_INDEX","BaseBuffer","BUFFER","BYTE_LENGTH","BYTE_OFFSET","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","eLen","eMax","eBias","rt","unpackIEEE754","nBits","unpackI32","bytes","packI8","packI16","packI32","packF64","packF32","addGetter","internal","view","isLittleEndian","numIndex","intIndex","_b","pack","reverse","conversion","validateArrayBufferArguments","numberLength","ArrayBufferProto","$setInt8","setInt8","getInt8","byteOffset","bufferLength","offset","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","init","Int8Array","$buffer","propertyDesc","same","createArrayIncludes","ArrayIterators","$iterDetect","arrayCopyWithin","Uint8Array","SHARED_BUFFER","BYTES_PER_ELEMENT","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayIncludes","arrayValues","arrayKeys","arrayEntries","arrayLastIndexOf","arrayReduce","arrayReduceRight","arraySort","arrayToString","arrayToLocaleString","toLocaleString","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","TYPED_ARRAY","allocate","LITTLE_ENDIAN","Uint16Array","FORCED_SET","strictToLength","SAME","toOffset","BYTES","validate","speciesFromList","list","fromList","$from","$of","TO_LOCALE_BUG","$toLocaleString","predicate","middle","subarray","$begin","$iterators","isTAIndex","$getDesc","$setDesc","$TypedArrayPrototype$","CLAMPED","ISNT_UINT8","GETTER","SETTER","TypedArray","TAC","TypedArrayPrototype","getter","o","round","addElement","$offset","$length","$len","$nativeIterator","CORRECT_ITER_NAME","$iterator","Uint8ClampedArray","Int16Array","Int32Array","Uint32Array","Float32Array","Float64Array","$includes","at","$pad","padStart","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","padEnd","trimLeft","trimRight","getFlags","RegExpProto","$RegExpStringIterator","regexp","_r","match","matchAll","flags","rx","lastIndex","ignoreCase","multiline","unicode","sticky","getOwnPropertyDescriptors","getDesc","$values","isEntries","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","isError","iaddh","x0","x1","y0","y1","$x0","$x1","$y0","isubh","imulh","u","$u","$v","u0","v0","u1","v1","umulh","metadata","toMetaKey","ordinaryDefineOwnMetadata","defineMetadata","metadataKey","metadataValue","targetKey","getOrCreateMetadataMap","targetMetadata","keyMetadata","ordinaryHasOwnMetadata","MetadataKey","metadataMap","ordinaryGetOwnMetadata","MetadataValue","ordinaryOwnMetadataKeys","_","deleteMetadata","ordinaryGetMetadata","hasOwn","getMetadata","ordinaryMetadataKeys","oKeys","pKeys","getMetadataKeys","getOwnMetadata","getOwnMetadataKeys","ordinaryHasMetadata","hasMetadata","hasOwnMetadata","decorator","asap","OBSERVABLE","cleanupSubscription","subscription","cleanup","subscriptionClosed","_o","closeSubscription","Subscription","observer","subscriber","SubscriptionObserver","unsubscribe","complete","$Observable","Observable","subscribe","observable","items","$task","TO_STRING_TAG","collections","Collection","partial","navigator","MSIE","userAgent","time","setInterval","path","pargs","holder","Dict","dict","isIterable","findKey","isDict","createDictMethod","createDictIter","DictIterator","mapPairs","getIterator","delay","part","define","mixin","make","$re","escape","regExp","&","<",">","\"","'","escapeHTML","&amp;","&lt;","&gt;","&quot;","&apos;","unescapeHTML","amd"],"mappings":";;;;;;CAMC,SAASA,EAAKC,EAAKC,GACpB,cACS,SAAUC,GAKT,QAASC,qBAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,MAAOC,GAAiBD,GAAUE,OAGnC,IAAIC,GAASF,EAAiBD,IAC7BE,WACAE,GAAIJ,EACJK,QAAQ,EAUT,OANAP,GAAQE,GAAUM,KAAKH,EAAOD,QAASC,EAAQA,EAAOD,QAASH,qBAG/DI,EAAOE,QAAS,EAGTF,EAAOD,QAvBf,GAAID,KAqCJ,OATAF,qBAAoBQ,EAAIT,EAGxBC,oBAAoBS,EAAIP,EAGxBF,oBAAoBU,EAAI,GAGjBV,oBAAoB,KAK/B,SAASI,EAAQD,EAASH,GAE/BA,EAAoB,GACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,K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","file":"library.min.js"} \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/client/shim.js b/node_modules/babel-runtime/node_modules/core-js/client/shim.js
deleted file mode 100644
index 2947f9375..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/client/shim.js
+++ /dev/null
@@ -1,7258 +0,0 @@
-/**
- * core-js 2.4.1
- * https://github.com/zloirock/core-js
- * License: http://rock.mit-license.org
- * © 2016 Denis Pushkarev
- */
-!function(__e, __g, undefined){
-'use strict';
-/******/ (function(modules) { // webpackBootstrap
-/******/ // The module cache
-/******/ var installedModules = {};
-
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-
-/******/ // Check if module is in cache
-/******/ if(installedModules[moduleId])
-/******/ return installedModules[moduleId].exports;
-
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = installedModules[moduleId] = {
-/******/ exports: {},
-/******/ id: moduleId,
-/******/ loaded: false
-/******/ };
-
-/******/ // Execute the module function
-/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-
-/******/ // Flag the module as loaded
-/******/ module.loaded = true;
-
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-
-
-/******/ // expose the modules object (__webpack_modules__)
-/******/ __webpack_require__.m = modules;
-
-/******/ // expose the module cache
-/******/ __webpack_require__.c = installedModules;
-
-/******/ // __webpack_public_path__
-/******/ __webpack_require__.p = "";
-
-/******/ // Load entry module and return exports
-/******/ return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(1);
- __webpack_require__(50);
- __webpack_require__(51);
- __webpack_require__(52);
- __webpack_require__(54);
- __webpack_require__(55);
- __webpack_require__(58);
- __webpack_require__(59);
- __webpack_require__(60);
- __webpack_require__(61);
- __webpack_require__(62);
- __webpack_require__(63);
- __webpack_require__(64);
- __webpack_require__(65);
- __webpack_require__(66);
- __webpack_require__(68);
- __webpack_require__(70);
- __webpack_require__(72);
- __webpack_require__(74);
- __webpack_require__(77);
- __webpack_require__(78);
- __webpack_require__(79);
- __webpack_require__(83);
- __webpack_require__(86);
- __webpack_require__(87);
- __webpack_require__(88);
- __webpack_require__(89);
- __webpack_require__(91);
- __webpack_require__(92);
- __webpack_require__(93);
- __webpack_require__(94);
- __webpack_require__(95);
- __webpack_require__(97);
- __webpack_require__(99);
- __webpack_require__(100);
- __webpack_require__(101);
- __webpack_require__(103);
- __webpack_require__(104);
- __webpack_require__(105);
- __webpack_require__(107);
- __webpack_require__(108);
- __webpack_require__(109);
- __webpack_require__(111);
- __webpack_require__(112);
- __webpack_require__(113);
- __webpack_require__(114);
- __webpack_require__(115);
- __webpack_require__(116);
- __webpack_require__(117);
- __webpack_require__(118);
- __webpack_require__(119);
- __webpack_require__(120);
- __webpack_require__(121);
- __webpack_require__(122);
- __webpack_require__(123);
- __webpack_require__(124);
- __webpack_require__(126);
- __webpack_require__(130);
- __webpack_require__(131);
- __webpack_require__(132);
- __webpack_require__(133);
- __webpack_require__(137);
- __webpack_require__(139);
- __webpack_require__(140);
- __webpack_require__(141);
- __webpack_require__(142);
- __webpack_require__(143);
- __webpack_require__(144);
- __webpack_require__(145);
- __webpack_require__(146);
- __webpack_require__(147);
- __webpack_require__(148);
- __webpack_require__(149);
- __webpack_require__(150);
- __webpack_require__(151);
- __webpack_require__(152);
- __webpack_require__(158);
- __webpack_require__(159);
- __webpack_require__(161);
- __webpack_require__(162);
- __webpack_require__(163);
- __webpack_require__(167);
- __webpack_require__(168);
- __webpack_require__(169);
- __webpack_require__(170);
- __webpack_require__(171);
- __webpack_require__(173);
- __webpack_require__(174);
- __webpack_require__(175);
- __webpack_require__(176);
- __webpack_require__(179);
- __webpack_require__(181);
- __webpack_require__(182);
- __webpack_require__(183);
- __webpack_require__(185);
- __webpack_require__(187);
- __webpack_require__(189);
- __webpack_require__(190);
- __webpack_require__(191);
- __webpack_require__(193);
- __webpack_require__(194);
- __webpack_require__(195);
- __webpack_require__(196);
- __webpack_require__(203);
- __webpack_require__(206);
- __webpack_require__(207);
- __webpack_require__(209);
- __webpack_require__(210);
- __webpack_require__(211);
- __webpack_require__(212);
- __webpack_require__(213);
- __webpack_require__(214);
- __webpack_require__(215);
- __webpack_require__(216);
- __webpack_require__(217);
- __webpack_require__(218);
- __webpack_require__(219);
- __webpack_require__(220);
- __webpack_require__(222);
- __webpack_require__(223);
- __webpack_require__(224);
- __webpack_require__(225);
- __webpack_require__(226);
- __webpack_require__(227);
- __webpack_require__(228);
- __webpack_require__(229);
- __webpack_require__(231);
- __webpack_require__(234);
- __webpack_require__(235);
- __webpack_require__(237);
- __webpack_require__(238);
- __webpack_require__(239);
- __webpack_require__(240);
- __webpack_require__(241);
- __webpack_require__(242);
- __webpack_require__(243);
- __webpack_require__(244);
- __webpack_require__(245);
- __webpack_require__(246);
- __webpack_require__(247);
- __webpack_require__(249);
- __webpack_require__(250);
- __webpack_require__(251);
- __webpack_require__(252);
- __webpack_require__(253);
- __webpack_require__(254);
- __webpack_require__(255);
- __webpack_require__(256);
- __webpack_require__(258);
- __webpack_require__(259);
- __webpack_require__(261);
- __webpack_require__(262);
- __webpack_require__(263);
- __webpack_require__(264);
- __webpack_require__(267);
- __webpack_require__(268);
- __webpack_require__(269);
- __webpack_require__(270);
- __webpack_require__(271);
- __webpack_require__(272);
- __webpack_require__(273);
- __webpack_require__(274);
- __webpack_require__(276);
- __webpack_require__(277);
- __webpack_require__(278);
- __webpack_require__(279);
- __webpack_require__(280);
- __webpack_require__(281);
- __webpack_require__(282);
- __webpack_require__(283);
- __webpack_require__(284);
- __webpack_require__(285);
- __webpack_require__(286);
- __webpack_require__(287);
- module.exports = __webpack_require__(288);
-
-
-/***/ },
-/* 1 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // ECMAScript 6 symbols shim
- var global = __webpack_require__(2)
- , has = __webpack_require__(3)
- , DESCRIPTORS = __webpack_require__(4)
- , $export = __webpack_require__(6)
- , redefine = __webpack_require__(16)
- , META = __webpack_require__(20).KEY
- , $fails = __webpack_require__(5)
- , shared = __webpack_require__(21)
- , setToStringTag = __webpack_require__(22)
- , uid = __webpack_require__(17)
- , wks = __webpack_require__(23)
- , wksExt = __webpack_require__(24)
- , wksDefine = __webpack_require__(25)
- , keyOf = __webpack_require__(27)
- , enumKeys = __webpack_require__(40)
- , isArray = __webpack_require__(43)
- , anObject = __webpack_require__(10)
- , toIObject = __webpack_require__(30)
- , toPrimitive = __webpack_require__(14)
- , createDesc = __webpack_require__(15)
- , _create = __webpack_require__(44)
- , gOPNExt = __webpack_require__(47)
- , $GOPD = __webpack_require__(49)
- , $DP = __webpack_require__(9)
- , $keys = __webpack_require__(28)
- , gOPD = $GOPD.f
- , dP = $DP.f
- , gOPN = gOPNExt.f
- , $Symbol = global.Symbol
- , $JSON = global.JSON
- , _stringify = $JSON && $JSON.stringify
- , PROTOTYPE = 'prototype'
- , HIDDEN = wks('_hidden')
- , TO_PRIMITIVE = wks('toPrimitive')
- , isEnum = {}.propertyIsEnumerable
- , SymbolRegistry = shared('symbol-registry')
- , AllSymbols = shared('symbols')
- , OPSymbols = shared('op-symbols')
- , ObjectProto = Object[PROTOTYPE]
- , USE_NATIVE = typeof $Symbol == 'function'
- , QObject = global.QObject;
- // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
- var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
-
- // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
- var setSymbolDesc = DESCRIPTORS && $fails(function(){
- return _create(dP({}, 'a', {
- get: function(){ return dP(this, 'a', {value: 7}).a; }
- })).a != 7;
- }) ? function(it, key, D){
- var protoDesc = gOPD(ObjectProto, key);
- if(protoDesc)delete ObjectProto[key];
- dP(it, key, D);
- if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);
- } : dP;
-
- var wrap = function(tag){
- var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
- sym._k = tag;
- return sym;
- };
-
- var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){
- return typeof it == 'symbol';
- } : function(it){
- return it instanceof $Symbol;
- };
-
- var $defineProperty = function defineProperty(it, key, D){
- if(it === ObjectProto)$defineProperty(OPSymbols, key, D);
- anObject(it);
- key = toPrimitive(key, true);
- anObject(D);
- if(has(AllSymbols, key)){
- if(!D.enumerable){
- if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));
- it[HIDDEN][key] = true;
- } else {
- if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
- D = _create(D, {enumerable: createDesc(0, false)});
- } return setSymbolDesc(it, key, D);
- } return dP(it, key, D);
- };
- var $defineProperties = function defineProperties(it, P){
- anObject(it);
- var keys = enumKeys(P = toIObject(P))
- , i = 0
- , l = keys.length
- , key;
- while(l > i)$defineProperty(it, key = keys[i++], P[key]);
- return it;
- };
- var $create = function create(it, P){
- return P === undefined ? _create(it) : $defineProperties(_create(it), P);
- };
- var $propertyIsEnumerable = function propertyIsEnumerable(key){
- var E = isEnum.call(this, key = toPrimitive(key, true));
- if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;
- return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
- };
- var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
- it = toIObject(it);
- key = toPrimitive(key, true);
- if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;
- var D = gOPD(it, key);
- if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
- return D;
- };
- var $getOwnPropertyNames = function getOwnPropertyNames(it){
- var names = gOPN(toIObject(it))
- , result = []
- , i = 0
- , key;
- while(names.length > i){
- if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);
- } return result;
- };
- var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
- var IS_OP = it === ObjectProto
- , names = gOPN(IS_OP ? OPSymbols : toIObject(it))
- , result = []
- , i = 0
- , key;
- while(names.length > i){
- if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);
- } return result;
- };
-
- // 19.4.1.1 Symbol([description])
- if(!USE_NATIVE){
- $Symbol = function Symbol(){
- if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');
- var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
- var $set = function(value){
- if(this === ObjectProto)$set.call(OPSymbols, value);
- if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
- setSymbolDesc(this, tag, createDesc(1, value));
- };
- if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});
- return wrap(tag);
- };
- redefine($Symbol[PROTOTYPE], 'toString', function toString(){
- return this._k;
- });
-
- $GOPD.f = $getOwnPropertyDescriptor;
- $DP.f = $defineProperty;
- __webpack_require__(48).f = gOPNExt.f = $getOwnPropertyNames;
- __webpack_require__(42).f = $propertyIsEnumerable;
- __webpack_require__(41).f = $getOwnPropertySymbols;
-
- if(DESCRIPTORS && !__webpack_require__(26)){
- redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
- }
-
- wksExt.f = function(name){
- return wrap(wks(name));
- }
- }
-
- $export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});
-
- for(var symbols = (
- // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
- 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
- ).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);
-
- for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);
-
- $export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
- // 19.4.2.1 Symbol.for(key)
- 'for': function(key){
- return has(SymbolRegistry, key += '')
- ? SymbolRegistry[key]
- : SymbolRegistry[key] = $Symbol(key);
- },
- // 19.4.2.5 Symbol.keyFor(sym)
- keyFor: function keyFor(key){
- if(isSymbol(key))return keyOf(SymbolRegistry, key);
- throw TypeError(key + ' is not a symbol!');
- },
- useSetter: function(){ setter = true; },
- useSimple: function(){ setter = false; }
- });
-
- $export($export.S + $export.F * !USE_NATIVE, 'Object', {
- // 19.1.2.2 Object.create(O [, Properties])
- create: $create,
- // 19.1.2.4 Object.defineProperty(O, P, Attributes)
- defineProperty: $defineProperty,
- // 19.1.2.3 Object.defineProperties(O, Properties)
- defineProperties: $defineProperties,
- // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
- getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
- // 19.1.2.7 Object.getOwnPropertyNames(O)
- getOwnPropertyNames: $getOwnPropertyNames,
- // 19.1.2.8 Object.getOwnPropertySymbols(O)
- getOwnPropertySymbols: $getOwnPropertySymbols
- });
-
- // 24.3.2 JSON.stringify(value [, replacer [, space]])
- $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){
- var S = $Symbol();
- // MS Edge converts symbol values to JSON as {}
- // WebKit converts symbol values to JSON as null
- // V8 throws on boxed symbols
- return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
- })), 'JSON', {
- stringify: function stringify(it){
- if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
- var args = [it]
- , i = 1
- , replacer, $replacer;
- while(arguments.length > i)args.push(arguments[i++]);
- replacer = args[1];
- if(typeof replacer == 'function')$replacer = replacer;
- if($replacer || !isArray(replacer))replacer = function(key, value){
- if($replacer)value = $replacer.call(this, key, value);
- if(!isSymbol(value))return value;
- };
- args[1] = replacer;
- return _stringify.apply($JSON, args);
- }
- });
-
- // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
- $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(8)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
- // 19.4.3.5 Symbol.prototype[@@toStringTag]
- setToStringTag($Symbol, 'Symbol');
- // 20.2.1.9 Math[@@toStringTag]
- setToStringTag(Math, 'Math', true);
- // 24.3.3 JSON[@@toStringTag]
- setToStringTag(global.JSON, 'JSON', true);
-
-/***/ },
-/* 2 */
-/***/ function(module, exports) {
-
- // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
- var global = module.exports = typeof window != 'undefined' && window.Math == Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
- if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
-
-/***/ },
-/* 3 */
-/***/ function(module, exports) {
-
- var hasOwnProperty = {}.hasOwnProperty;
- module.exports = function(it, key){
- return hasOwnProperty.call(it, key);
- };
-
-/***/ },
-/* 4 */
-/***/ function(module, exports, __webpack_require__) {
-
- // Thank's IE8 for his funny defineProperty
- module.exports = !__webpack_require__(5)(function(){
- return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
- });
-
-/***/ },
-/* 5 */
-/***/ function(module, exports) {
-
- module.exports = function(exec){
- try {
- return !!exec();
- } catch(e){
- return true;
- }
- };
-
-/***/ },
-/* 6 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , core = __webpack_require__(7)
- , hide = __webpack_require__(8)
- , redefine = __webpack_require__(16)
- , ctx = __webpack_require__(18)
- , PROTOTYPE = 'prototype';
-
- var $export = function(type, name, source){
- var IS_FORCED = type & $export.F
- , IS_GLOBAL = type & $export.G
- , IS_STATIC = type & $export.S
- , IS_PROTO = type & $export.P
- , IS_BIND = type & $export.B
- , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]
- , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
- , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {})
- , key, own, out, exp;
- if(IS_GLOBAL)source = name;
- for(key in source){
- // contains in native
- own = !IS_FORCED && target && target[key] !== undefined;
- // export native or passed
- out = (own ? target : source)[key];
- // bind timers to global for call from export context
- exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
- // extend global
- if(target)redefine(target, key, out, type & $export.U);
- // export
- if(exports[key] != out)hide(exports, key, exp);
- if(IS_PROTO && expProto[key] != out)expProto[key] = out;
- }
- };
- global.core = core;
- // type bitmap
- $export.F = 1; // forced
- $export.G = 2; // global
- $export.S = 4; // static
- $export.P = 8; // proto
- $export.B = 16; // bind
- $export.W = 32; // wrap
- $export.U = 64; // safe
- $export.R = 128; // real proto method for `library`
- module.exports = $export;
-
-/***/ },
-/* 7 */
-/***/ function(module, exports) {
-
- var core = module.exports = {version: '2.4.0'};
- if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
-
-/***/ },
-/* 8 */
-/***/ function(module, exports, __webpack_require__) {
-
- var dP = __webpack_require__(9)
- , createDesc = __webpack_require__(15);
- module.exports = __webpack_require__(4) ? function(object, key, value){
- return dP.f(object, key, createDesc(1, value));
- } : function(object, key, value){
- object[key] = value;
- return object;
- };
-
-/***/ },
-/* 9 */
-/***/ function(module, exports, __webpack_require__) {
-
- var anObject = __webpack_require__(10)
- , IE8_DOM_DEFINE = __webpack_require__(12)
- , toPrimitive = __webpack_require__(14)
- , dP = Object.defineProperty;
-
- exports.f = __webpack_require__(4) ? Object.defineProperty : function defineProperty(O, P, Attributes){
- anObject(O);
- P = toPrimitive(P, true);
- anObject(Attributes);
- if(IE8_DOM_DEFINE)try {
- return dP(O, P, Attributes);
- } catch(e){ /* empty */ }
- if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
- if('value' in Attributes)O[P] = Attributes.value;
- return O;
- };
-
-/***/ },
-/* 10 */
-/***/ function(module, exports, __webpack_require__) {
-
- var isObject = __webpack_require__(11);
- module.exports = function(it){
- if(!isObject(it))throw TypeError(it + ' is not an object!');
- return it;
- };
-
-/***/ },
-/* 11 */
-/***/ function(module, exports) {
-
- module.exports = function(it){
- return typeof it === 'object' ? it !== null : typeof it === 'function';
- };
-
-/***/ },
-/* 12 */
-/***/ function(module, exports, __webpack_require__) {
-
- module.exports = !__webpack_require__(4) && !__webpack_require__(5)(function(){
- return Object.defineProperty(__webpack_require__(13)('div'), 'a', {get: function(){ return 7; }}).a != 7;
- });
-
-/***/ },
-/* 13 */
-/***/ function(module, exports, __webpack_require__) {
-
- var isObject = __webpack_require__(11)
- , document = __webpack_require__(2).document
- // in old IE typeof document.createElement is 'object'
- , is = isObject(document) && isObject(document.createElement);
- module.exports = function(it){
- return is ? document.createElement(it) : {};
- };
-
-/***/ },
-/* 14 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 7.1.1 ToPrimitive(input [, PreferredType])
- var isObject = __webpack_require__(11);
- // instead of the ES6 spec version, we didn't implement @@toPrimitive case
- // and the second argument - flag - preferred type is a string
- module.exports = function(it, S){
- if(!isObject(it))return it;
- var fn, val;
- if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
- if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
- if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
- throw TypeError("Can't convert object to primitive value");
- };
-
-/***/ },
-/* 15 */
-/***/ function(module, exports) {
-
- module.exports = function(bitmap, value){
- return {
- enumerable : !(bitmap & 1),
- configurable: !(bitmap & 2),
- writable : !(bitmap & 4),
- value : value
- };
- };
-
-/***/ },
-/* 16 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , hide = __webpack_require__(8)
- , has = __webpack_require__(3)
- , SRC = __webpack_require__(17)('src')
- , TO_STRING = 'toString'
- , $toString = Function[TO_STRING]
- , TPL = ('' + $toString).split(TO_STRING);
-
- __webpack_require__(7).inspectSource = function(it){
- return $toString.call(it);
- };
-
- (module.exports = function(O, key, val, safe){
- var isFunction = typeof val == 'function';
- if(isFunction)has(val, 'name') || hide(val, 'name', key);
- if(O[key] === val)return;
- if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
- if(O === global){
- O[key] = val;
- } else {
- if(!safe){
- delete O[key];
- hide(O, key, val);
- } else {
- if(O[key])O[key] = val;
- else hide(O, key, val);
- }
- }
- // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
- })(Function.prototype, TO_STRING, function toString(){
- return typeof this == 'function' && this[SRC] || $toString.call(this);
- });
-
-/***/ },
-/* 17 */
-/***/ function(module, exports) {
-
- var id = 0
- , px = Math.random();
- module.exports = function(key){
- return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
- };
-
-/***/ },
-/* 18 */
-/***/ function(module, exports, __webpack_require__) {
-
- // optional / simple context binding
- var aFunction = __webpack_require__(19);
- module.exports = function(fn, that, length){
- aFunction(fn);
- if(that === undefined)return fn;
- switch(length){
- case 1: return function(a){
- return fn.call(that, a);
- };
- case 2: return function(a, b){
- return fn.call(that, a, b);
- };
- case 3: return function(a, b, c){
- return fn.call(that, a, b, c);
- };
- }
- return function(/* ...args */){
- return fn.apply(that, arguments);
- };
- };
-
-/***/ },
-/* 19 */
-/***/ function(module, exports) {
-
- module.exports = function(it){
- if(typeof it != 'function')throw TypeError(it + ' is not a function!');
- return it;
- };
-
-/***/ },
-/* 20 */
-/***/ function(module, exports, __webpack_require__) {
-
- var META = __webpack_require__(17)('meta')
- , isObject = __webpack_require__(11)
- , has = __webpack_require__(3)
- , setDesc = __webpack_require__(9).f
- , id = 0;
- var isExtensible = Object.isExtensible || function(){
- return true;
- };
- var FREEZE = !__webpack_require__(5)(function(){
- return isExtensible(Object.preventExtensions({}));
- });
- var setMeta = function(it){
- setDesc(it, META, {value: {
- i: 'O' + ++id, // object ID
- w: {} // weak collections IDs
- }});
- };
- var fastKey = function(it, create){
- // return primitive with prefix
- if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
- if(!has(it, META)){
- // can't set metadata to uncaught frozen object
- if(!isExtensible(it))return 'F';
- // not necessary to add metadata
- if(!create)return 'E';
- // add missing metadata
- setMeta(it);
- // return object ID
- } return it[META].i;
- };
- var getWeak = function(it, create){
- if(!has(it, META)){
- // can't set metadata to uncaught frozen object
- if(!isExtensible(it))return true;
- // not necessary to add metadata
- if(!create)return false;
- // add missing metadata
- setMeta(it);
- // return hash weak collections IDs
- } return it[META].w;
- };
- // add metadata on freeze-family methods calling
- var onFreeze = function(it){
- if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);
- return it;
- };
- var meta = module.exports = {
- KEY: META,
- NEED: false,
- fastKey: fastKey,
- getWeak: getWeak,
- onFreeze: onFreeze
- };
-
-/***/ },
-/* 21 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , SHARED = '__core-js_shared__'
- , store = global[SHARED] || (global[SHARED] = {});
- module.exports = function(key){
- return store[key] || (store[key] = {});
- };
-
-/***/ },
-/* 22 */
-/***/ function(module, exports, __webpack_require__) {
-
- var def = __webpack_require__(9).f
- , has = __webpack_require__(3)
- , TAG = __webpack_require__(23)('toStringTag');
-
- module.exports = function(it, tag, stat){
- if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
- };
-
-/***/ },
-/* 23 */
-/***/ function(module, exports, __webpack_require__) {
-
- var store = __webpack_require__(21)('wks')
- , uid = __webpack_require__(17)
- , Symbol = __webpack_require__(2).Symbol
- , USE_SYMBOL = typeof Symbol == 'function';
-
- var $exports = module.exports = function(name){
- return store[name] || (store[name] =
- USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
- };
-
- $exports.store = store;
-
-/***/ },
-/* 24 */
-/***/ function(module, exports, __webpack_require__) {
-
- exports.f = __webpack_require__(23);
-
-/***/ },
-/* 25 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , core = __webpack_require__(7)
- , LIBRARY = __webpack_require__(26)
- , wksExt = __webpack_require__(24)
- , defineProperty = __webpack_require__(9).f;
- module.exports = function(name){
- var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
- if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});
- };
-
-/***/ },
-/* 26 */
-/***/ function(module, exports) {
-
- module.exports = false;
-
-/***/ },
-/* 27 */
-/***/ function(module, exports, __webpack_require__) {
-
- var getKeys = __webpack_require__(28)
- , toIObject = __webpack_require__(30);
- module.exports = function(object, el){
- var O = toIObject(object)
- , keys = getKeys(O)
- , length = keys.length
- , index = 0
- , key;
- while(length > index)if(O[key = keys[index++]] === el)return key;
- };
-
-/***/ },
-/* 28 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.14 / 15.2.3.14 Object.keys(O)
- var $keys = __webpack_require__(29)
- , enumBugKeys = __webpack_require__(39);
-
- module.exports = Object.keys || function keys(O){
- return $keys(O, enumBugKeys);
- };
-
-/***/ },
-/* 29 */
-/***/ function(module, exports, __webpack_require__) {
-
- var has = __webpack_require__(3)
- , toIObject = __webpack_require__(30)
- , arrayIndexOf = __webpack_require__(34)(false)
- , IE_PROTO = __webpack_require__(38)('IE_PROTO');
-
- module.exports = function(object, names){
- var O = toIObject(object)
- , i = 0
- , result = []
- , key;
- for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
- // Don't enum bug & hidden keys
- while(names.length > i)if(has(O, key = names[i++])){
- ~arrayIndexOf(result, key) || result.push(key);
- }
- return result;
- };
-
-/***/ },
-/* 30 */
-/***/ function(module, exports, __webpack_require__) {
-
- // to indexed object, toObject with fallback for non-array-like ES3 strings
- var IObject = __webpack_require__(31)
- , defined = __webpack_require__(33);
- module.exports = function(it){
- return IObject(defined(it));
- };
-
-/***/ },
-/* 31 */
-/***/ function(module, exports, __webpack_require__) {
-
- // fallback for non-array-like ES3 and non-enumerable old V8 strings
- var cof = __webpack_require__(32);
- module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
- return cof(it) == 'String' ? it.split('') : Object(it);
- };
-
-/***/ },
-/* 32 */
-/***/ function(module, exports) {
-
- var toString = {}.toString;
-
- module.exports = function(it){
- return toString.call(it).slice(8, -1);
- };
-
-/***/ },
-/* 33 */
-/***/ function(module, exports) {
-
- // 7.2.1 RequireObjectCoercible(argument)
- module.exports = function(it){
- if(it == undefined)throw TypeError("Can't call method on " + it);
- return it;
- };
-
-/***/ },
-/* 34 */
-/***/ function(module, exports, __webpack_require__) {
-
- // false -> Array#indexOf
- // true -> Array#includes
- var toIObject = __webpack_require__(30)
- , toLength = __webpack_require__(35)
- , toIndex = __webpack_require__(37);
- module.exports = function(IS_INCLUDES){
- return function($this, el, fromIndex){
- var O = toIObject($this)
- , length = toLength(O.length)
- , index = toIndex(fromIndex, length)
- , value;
- // Array#includes uses SameValueZero equality algorithm
- if(IS_INCLUDES && el != el)while(length > index){
- value = O[index++];
- if(value != value)return true;
- // Array#toIndex ignores holes, Array#includes - not
- } else for(;length > index; index++)if(IS_INCLUDES || index in O){
- if(O[index] === el)return IS_INCLUDES || index || 0;
- } return !IS_INCLUDES && -1;
- };
- };
-
-/***/ },
-/* 35 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 7.1.15 ToLength
- var toInteger = __webpack_require__(36)
- , min = Math.min;
- module.exports = function(it){
- return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
- };
-
-/***/ },
-/* 36 */
-/***/ function(module, exports) {
-
- // 7.1.4 ToInteger
- var ceil = Math.ceil
- , floor = Math.floor;
- module.exports = function(it){
- return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
- };
-
-/***/ },
-/* 37 */
-/***/ function(module, exports, __webpack_require__) {
-
- var toInteger = __webpack_require__(36)
- , max = Math.max
- , min = Math.min;
- module.exports = function(index, length){
- index = toInteger(index);
- return index < 0 ? max(index + length, 0) : min(index, length);
- };
-
-/***/ },
-/* 38 */
-/***/ function(module, exports, __webpack_require__) {
-
- var shared = __webpack_require__(21)('keys')
- , uid = __webpack_require__(17);
- module.exports = function(key){
- return shared[key] || (shared[key] = uid(key));
- };
-
-/***/ },
-/* 39 */
-/***/ function(module, exports) {
-
- // IE 8- don't enum bug keys
- module.exports = (
- 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
- ).split(',');
-
-/***/ },
-/* 40 */
-/***/ function(module, exports, __webpack_require__) {
-
- // all enumerable object keys, includes symbols
- var getKeys = __webpack_require__(28)
- , gOPS = __webpack_require__(41)
- , pIE = __webpack_require__(42);
- module.exports = function(it){
- var result = getKeys(it)
- , getSymbols = gOPS.f;
- if(getSymbols){
- var symbols = getSymbols(it)
- , isEnum = pIE.f
- , i = 0
- , key;
- while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);
- } return result;
- };
-
-/***/ },
-/* 41 */
-/***/ function(module, exports) {
-
- exports.f = Object.getOwnPropertySymbols;
-
-/***/ },
-/* 42 */
-/***/ function(module, exports) {
-
- exports.f = {}.propertyIsEnumerable;
-
-/***/ },
-/* 43 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 7.2.2 IsArray(argument)
- var cof = __webpack_require__(32);
- module.exports = Array.isArray || function isArray(arg){
- return cof(arg) == 'Array';
- };
-
-/***/ },
-/* 44 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
- var anObject = __webpack_require__(10)
- , dPs = __webpack_require__(45)
- , enumBugKeys = __webpack_require__(39)
- , IE_PROTO = __webpack_require__(38)('IE_PROTO')
- , Empty = function(){ /* empty */ }
- , PROTOTYPE = 'prototype';
-
- // Create object with fake `null` prototype: use iframe Object with cleared prototype
- var createDict = function(){
- // Thrash, waste and sodomy: IE GC bug
- var iframe = __webpack_require__(13)('iframe')
- , i = enumBugKeys.length
- , lt = '<'
- , gt = '>'
- , iframeDocument;
- iframe.style.display = 'none';
- __webpack_require__(46).appendChild(iframe);
- iframe.src = 'javascript:'; // eslint-disable-line no-script-url
- // createDict = iframe.contentWindow.Object;
- // html.removeChild(iframe);
- iframeDocument = iframe.contentWindow.document;
- iframeDocument.open();
- iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
- iframeDocument.close();
- createDict = iframeDocument.F;
- while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];
- return createDict();
- };
-
- module.exports = Object.create || function create(O, Properties){
- var result;
- if(O !== null){
- Empty[PROTOTYPE] = anObject(O);
- result = new Empty;
- Empty[PROTOTYPE] = null;
- // add "__proto__" for Object.getPrototypeOf polyfill
- result[IE_PROTO] = O;
- } else result = createDict();
- return Properties === undefined ? result : dPs(result, Properties);
- };
-
-
-/***/ },
-/* 45 */
-/***/ function(module, exports, __webpack_require__) {
-
- var dP = __webpack_require__(9)
- , anObject = __webpack_require__(10)
- , getKeys = __webpack_require__(28);
-
- module.exports = __webpack_require__(4) ? Object.defineProperties : function defineProperties(O, Properties){
- anObject(O);
- var keys = getKeys(Properties)
- , length = keys.length
- , i = 0
- , P;
- while(length > i)dP.f(O, P = keys[i++], Properties[P]);
- return O;
- };
-
-/***/ },
-/* 46 */
-/***/ function(module, exports, __webpack_require__) {
-
- module.exports = __webpack_require__(2).document && document.documentElement;
-
-/***/ },
-/* 47 */
-/***/ function(module, exports, __webpack_require__) {
-
- // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
- var toIObject = __webpack_require__(30)
- , gOPN = __webpack_require__(48).f
- , toString = {}.toString;
-
- var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
- ? Object.getOwnPropertyNames(window) : [];
-
- var getWindowNames = function(it){
- try {
- return gOPN(it);
- } catch(e){
- return windowNames.slice();
- }
- };
-
- module.exports.f = function getOwnPropertyNames(it){
- return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
- };
-
-
-/***/ },
-/* 48 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
- var $keys = __webpack_require__(29)
- , hiddenKeys = __webpack_require__(39).concat('length', 'prototype');
-
- exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){
- return $keys(O, hiddenKeys);
- };
-
-/***/ },
-/* 49 */
-/***/ function(module, exports, __webpack_require__) {
-
- var pIE = __webpack_require__(42)
- , createDesc = __webpack_require__(15)
- , toIObject = __webpack_require__(30)
- , toPrimitive = __webpack_require__(14)
- , has = __webpack_require__(3)
- , IE8_DOM_DEFINE = __webpack_require__(12)
- , gOPD = Object.getOwnPropertyDescriptor;
-
- exports.f = __webpack_require__(4) ? gOPD : function getOwnPropertyDescriptor(O, P){
- O = toIObject(O);
- P = toPrimitive(P, true);
- if(IE8_DOM_DEFINE)try {
- return gOPD(O, P);
- } catch(e){ /* empty */ }
- if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);
- };
-
-/***/ },
-/* 50 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6);
- // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
- $export($export.S + $export.F * !__webpack_require__(4), 'Object', {defineProperty: __webpack_require__(9).f});
-
-/***/ },
-/* 51 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6);
- // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
- $export($export.S + $export.F * !__webpack_require__(4), 'Object', {defineProperties: __webpack_require__(45)});
-
-/***/ },
-/* 52 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
- var toIObject = __webpack_require__(30)
- , $getOwnPropertyDescriptor = __webpack_require__(49).f;
-
- __webpack_require__(53)('getOwnPropertyDescriptor', function(){
- return function getOwnPropertyDescriptor(it, key){
- return $getOwnPropertyDescriptor(toIObject(it), key);
- };
- });
-
-/***/ },
-/* 53 */
-/***/ function(module, exports, __webpack_require__) {
-
- // most Object methods by ES6 should accept primitives
- var $export = __webpack_require__(6)
- , core = __webpack_require__(7)
- , fails = __webpack_require__(5);
- module.exports = function(KEY, exec){
- var fn = (core.Object || {})[KEY] || Object[KEY]
- , exp = {};
- exp[KEY] = exec(fn);
- $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
- };
-
-/***/ },
-/* 54 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
- $export($export.S, 'Object', {create: __webpack_require__(44)});
-
-/***/ },
-/* 55 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.9 Object.getPrototypeOf(O)
- var toObject = __webpack_require__(56)
- , $getPrototypeOf = __webpack_require__(57);
-
- __webpack_require__(53)('getPrototypeOf', function(){
- return function getPrototypeOf(it){
- return $getPrototypeOf(toObject(it));
- };
- });
-
-/***/ },
-/* 56 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 7.1.13 ToObject(argument)
- var defined = __webpack_require__(33);
- module.exports = function(it){
- return Object(defined(it));
- };
-
-/***/ },
-/* 57 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
- var has = __webpack_require__(3)
- , toObject = __webpack_require__(56)
- , IE_PROTO = __webpack_require__(38)('IE_PROTO')
- , ObjectProto = Object.prototype;
-
- module.exports = Object.getPrototypeOf || function(O){
- O = toObject(O);
- if(has(O, IE_PROTO))return O[IE_PROTO];
- if(typeof O.constructor == 'function' && O instanceof O.constructor){
- return O.constructor.prototype;
- } return O instanceof Object ? ObjectProto : null;
- };
-
-/***/ },
-/* 58 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.14 Object.keys(O)
- var toObject = __webpack_require__(56)
- , $keys = __webpack_require__(28);
-
- __webpack_require__(53)('keys', function(){
- return function keys(it){
- return $keys(toObject(it));
- };
- });
-
-/***/ },
-/* 59 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.7 Object.getOwnPropertyNames(O)
- __webpack_require__(53)('getOwnPropertyNames', function(){
- return __webpack_require__(47).f;
- });
-
-/***/ },
-/* 60 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.5 Object.freeze(O)
- var isObject = __webpack_require__(11)
- , meta = __webpack_require__(20).onFreeze;
-
- __webpack_require__(53)('freeze', function($freeze){
- return function freeze(it){
- return $freeze && isObject(it) ? $freeze(meta(it)) : it;
- };
- });
-
-/***/ },
-/* 61 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.17 Object.seal(O)
- var isObject = __webpack_require__(11)
- , meta = __webpack_require__(20).onFreeze;
-
- __webpack_require__(53)('seal', function($seal){
- return function seal(it){
- return $seal && isObject(it) ? $seal(meta(it)) : it;
- };
- });
-
-/***/ },
-/* 62 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.15 Object.preventExtensions(O)
- var isObject = __webpack_require__(11)
- , meta = __webpack_require__(20).onFreeze;
-
- __webpack_require__(53)('preventExtensions', function($preventExtensions){
- return function preventExtensions(it){
- return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;
- };
- });
-
-/***/ },
-/* 63 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.12 Object.isFrozen(O)
- var isObject = __webpack_require__(11);
-
- __webpack_require__(53)('isFrozen', function($isFrozen){
- return function isFrozen(it){
- return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
- };
- });
-
-/***/ },
-/* 64 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.13 Object.isSealed(O)
- var isObject = __webpack_require__(11);
-
- __webpack_require__(53)('isSealed', function($isSealed){
- return function isSealed(it){
- return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
- };
- });
-
-/***/ },
-/* 65 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.11 Object.isExtensible(O)
- var isObject = __webpack_require__(11);
-
- __webpack_require__(53)('isExtensible', function($isExtensible){
- return function isExtensible(it){
- return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
- };
- });
-
-/***/ },
-/* 66 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.3.1 Object.assign(target, source)
- var $export = __webpack_require__(6);
-
- $export($export.S + $export.F, 'Object', {assign: __webpack_require__(67)});
-
-/***/ },
-/* 67 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 19.1.2.1 Object.assign(target, source, ...)
- var getKeys = __webpack_require__(28)
- , gOPS = __webpack_require__(41)
- , pIE = __webpack_require__(42)
- , toObject = __webpack_require__(56)
- , IObject = __webpack_require__(31)
- , $assign = Object.assign;
-
- // should work with symbols and should have deterministic property order (V8 bug)
- module.exports = !$assign || __webpack_require__(5)(function(){
- var A = {}
- , B = {}
- , S = Symbol()
- , K = 'abcdefghijklmnopqrst';
- A[S] = 7;
- K.split('').forEach(function(k){ B[k] = k; });
- return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
- }) ? function assign(target, source){ // eslint-disable-line no-unused-vars
- var T = toObject(target)
- , aLen = arguments.length
- , index = 1
- , getSymbols = gOPS.f
- , isEnum = pIE.f;
- while(aLen > index){
- var S = IObject(arguments[index++])
- , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
- , length = keys.length
- , j = 0
- , key;
- while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
- } return T;
- } : $assign;
-
-/***/ },
-/* 68 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.3.10 Object.is(value1, value2)
- var $export = __webpack_require__(6);
- $export($export.S, 'Object', {is: __webpack_require__(69)});
-
-/***/ },
-/* 69 */
-/***/ function(module, exports) {
-
- // 7.2.9 SameValue(x, y)
- module.exports = Object.is || function is(x, y){
- return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
- };
-
-/***/ },
-/* 70 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.3.19 Object.setPrototypeOf(O, proto)
- var $export = __webpack_require__(6);
- $export($export.S, 'Object', {setPrototypeOf: __webpack_require__(71).set});
-
-/***/ },
-/* 71 */
-/***/ function(module, exports, __webpack_require__) {
-
- // Works with __proto__ only. Old v8 can't work with null proto objects.
- /* eslint-disable no-proto */
- var isObject = __webpack_require__(11)
- , anObject = __webpack_require__(10);
- var check = function(O, proto){
- anObject(O);
- if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!");
- };
- module.exports = {
- set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
- function(test, buggy, set){
- try {
- set = __webpack_require__(18)(Function.call, __webpack_require__(49).f(Object.prototype, '__proto__').set, 2);
- set(test, []);
- buggy = !(test instanceof Array);
- } catch(e){ buggy = true; }
- return function setPrototypeOf(O, proto){
- check(O, proto);
- if(buggy)O.__proto__ = proto;
- else set(O, proto);
- return O;
- };
- }({}, false) : undefined),
- check: check
- };
-
-/***/ },
-/* 72 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 19.1.3.6 Object.prototype.toString()
- var classof = __webpack_require__(73)
- , test = {};
- test[__webpack_require__(23)('toStringTag')] = 'z';
- if(test + '' != '[object z]'){
- __webpack_require__(16)(Object.prototype, 'toString', function toString(){
- return '[object ' + classof(this) + ']';
- }, true);
- }
-
-/***/ },
-/* 73 */
-/***/ function(module, exports, __webpack_require__) {
-
- // getting tag from 19.1.3.6 Object.prototype.toString()
- var cof = __webpack_require__(32)
- , TAG = __webpack_require__(23)('toStringTag')
- // ES3 wrong here
- , ARG = cof(function(){ return arguments; }()) == 'Arguments';
-
- // fallback for IE11 Script Access Denied error
- var tryGet = function(it, key){
- try {
- return it[key];
- } catch(e){ /* empty */ }
- };
-
- module.exports = function(it){
- var O, T, B;
- return it === undefined ? 'Undefined' : it === null ? 'Null'
- // @@toStringTag case
- : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
- // builtinTag case
- : ARG ? cof(O)
- // ES3 arguments fallback
- : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
- };
-
-/***/ },
-/* 74 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
- var $export = __webpack_require__(6);
-
- $export($export.P, 'Function', {bind: __webpack_require__(75)});
-
-/***/ },
-/* 75 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var aFunction = __webpack_require__(19)
- , isObject = __webpack_require__(11)
- , invoke = __webpack_require__(76)
- , arraySlice = [].slice
- , factories = {};
-
- var construct = function(F, len, args){
- if(!(len in factories)){
- for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';
- factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
- } return factories[len](F, args);
- };
-
- module.exports = Function.bind || function bind(that /*, args... */){
- var fn = aFunction(this)
- , partArgs = arraySlice.call(arguments, 1);
- var bound = function(/* args... */){
- var args = partArgs.concat(arraySlice.call(arguments));
- return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
- };
- if(isObject(fn.prototype))bound.prototype = fn.prototype;
- return bound;
- };
-
-/***/ },
-/* 76 */
-/***/ function(module, exports) {
-
- // fast apply, http://jsperf.lnkit.com/fast-apply/5
- module.exports = function(fn, args, that){
- var un = that === undefined;
- switch(args.length){
- case 0: return un ? fn()
- : fn.call(that);
- case 1: return un ? fn(args[0])
- : fn.call(that, args[0]);
- case 2: return un ? fn(args[0], args[1])
- : fn.call(that, args[0], args[1]);
- case 3: return un ? fn(args[0], args[1], args[2])
- : fn.call(that, args[0], args[1], args[2]);
- case 4: return un ? fn(args[0], args[1], args[2], args[3])
- : fn.call(that, args[0], args[1], args[2], args[3]);
- } return fn.apply(that, args);
- };
-
-/***/ },
-/* 77 */
-/***/ function(module, exports, __webpack_require__) {
-
- var dP = __webpack_require__(9).f
- , createDesc = __webpack_require__(15)
- , has = __webpack_require__(3)
- , FProto = Function.prototype
- , nameRE = /^\s*function ([^ (]*)/
- , NAME = 'name';
-
- var isExtensible = Object.isExtensible || function(){
- return true;
- };
-
- // 19.2.4.2 name
- NAME in FProto || __webpack_require__(4) && dP(FProto, NAME, {
- configurable: true,
- get: function(){
- try {
- var that = this
- , name = ('' + that).match(nameRE)[1];
- has(that, NAME) || !isExtensible(that) || dP(that, NAME, createDesc(5, name));
- return name;
- } catch(e){
- return '';
- }
- }
- });
-
-/***/ },
-/* 78 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var isObject = __webpack_require__(11)
- , getPrototypeOf = __webpack_require__(57)
- , HAS_INSTANCE = __webpack_require__(23)('hasInstance')
- , FunctionProto = Function.prototype;
- // 19.2.3.6 Function.prototype[@@hasInstance](V)
- if(!(HAS_INSTANCE in FunctionProto))__webpack_require__(9).f(FunctionProto, HAS_INSTANCE, {value: function(O){
- if(typeof this != 'function' || !isObject(O))return false;
- if(!isObject(this.prototype))return O instanceof this;
- // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
- while(O = getPrototypeOf(O))if(this.prototype === O)return true;
- return false;
- }});
-
-/***/ },
-/* 79 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var global = __webpack_require__(2)
- , has = __webpack_require__(3)
- , cof = __webpack_require__(32)
- , inheritIfRequired = __webpack_require__(80)
- , toPrimitive = __webpack_require__(14)
- , fails = __webpack_require__(5)
- , gOPN = __webpack_require__(48).f
- , gOPD = __webpack_require__(49).f
- , dP = __webpack_require__(9).f
- , $trim = __webpack_require__(81).trim
- , NUMBER = 'Number'
- , $Number = global[NUMBER]
- , Base = $Number
- , proto = $Number.prototype
- // Opera ~12 has broken Object#toString
- , BROKEN_COF = cof(__webpack_require__(44)(proto)) == NUMBER
- , TRIM = 'trim' in String.prototype;
-
- // 7.1.3 ToNumber(argument)
- var toNumber = function(argument){
- var it = toPrimitive(argument, false);
- if(typeof it == 'string' && it.length > 2){
- it = TRIM ? it.trim() : $trim(it, 3);
- var first = it.charCodeAt(0)
- , third, radix, maxCode;
- if(first === 43 || first === 45){
- third = it.charCodeAt(2);
- if(third === 88 || third === 120)return NaN; // Number('+0x1') should be NaN, old V8 fix
- } else if(first === 48){
- switch(it.charCodeAt(1)){
- case 66 : case 98 : radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i
- case 79 : case 111 : radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i
- default : return +it;
- }
- for(var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++){
- code = digits.charCodeAt(i);
- // parseInt parses a string to a first unavailable symbol
- // but ToNumber should return NaN if a string contains unavailable symbols
- if(code < 48 || code > maxCode)return NaN;
- } return parseInt(digits, radix);
- }
- } return +it;
- };
-
- if(!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')){
- $Number = function Number(value){
- var it = arguments.length < 1 ? 0 : value
- , that = this;
- return that instanceof $Number
- // check on 1..constructor(foo) case
- && (BROKEN_COF ? fails(function(){ proto.valueOf.call(that); }) : cof(that) != NUMBER)
- ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);
- };
- for(var keys = __webpack_require__(4) ? gOPN(Base) : (
- // ES3:
- 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
- // ES6 (in case, if modules with ES6 Number statics required before):
- 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
- 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'
- ).split(','), j = 0, key; keys.length > j; j++){
- if(has(Base, key = keys[j]) && !has($Number, key)){
- dP($Number, key, gOPD(Base, key));
- }
- }
- $Number.prototype = proto;
- proto.constructor = $Number;
- __webpack_require__(16)(global, NUMBER, $Number);
- }
-
-/***/ },
-/* 80 */
-/***/ function(module, exports, __webpack_require__) {
-
- var isObject = __webpack_require__(11)
- , setPrototypeOf = __webpack_require__(71).set;
- module.exports = function(that, target, C){
- var P, S = target.constructor;
- if(S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf){
- setPrototypeOf(that, P);
- } return that;
- };
-
-/***/ },
-/* 81 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , defined = __webpack_require__(33)
- , fails = __webpack_require__(5)
- , spaces = __webpack_require__(82)
- , space = '[' + spaces + ']'
- , non = '\u200b\u0085'
- , ltrim = RegExp('^' + space + space + '*')
- , rtrim = RegExp(space + space + '*$');
-
- var exporter = function(KEY, exec, ALIAS){
- var exp = {};
- var FORCE = fails(function(){
- return !!spaces[KEY]() || non[KEY]() != non;
- });
- var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
- if(ALIAS)exp[ALIAS] = fn;
- $export($export.P + $export.F * FORCE, 'String', exp);
- };
-
- // 1 -> String#trimLeft
- // 2 -> String#trimRight
- // 3 -> String#trim
- var trim = exporter.trim = function(string, TYPE){
- string = String(defined(string));
- if(TYPE & 1)string = string.replace(ltrim, '');
- if(TYPE & 2)string = string.replace(rtrim, '');
- return string;
- };
-
- module.exports = exporter;
-
-/***/ },
-/* 82 */
-/***/ function(module, exports) {
-
- module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
- '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
-
-/***/ },
-/* 83 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toInteger = __webpack_require__(36)
- , aNumberValue = __webpack_require__(84)
- , repeat = __webpack_require__(85)
- , $toFixed = 1..toFixed
- , floor = Math.floor
- , data = [0, 0, 0, 0, 0, 0]
- , ERROR = 'Number.toFixed: incorrect invocation!'
- , ZERO = '0';
-
- var multiply = function(n, c){
- var i = -1
- , c2 = c;
- while(++i < 6){
- c2 += n * data[i];
- data[i] = c2 % 1e7;
- c2 = floor(c2 / 1e7);
- }
- };
- var divide = function(n){
- var i = 6
- , c = 0;
- while(--i >= 0){
- c += data[i];
- data[i] = floor(c / n);
- c = (c % n) * 1e7;
- }
- };
- var numToString = function(){
- var i = 6
- , s = '';
- while(--i >= 0){
- if(s !== '' || i === 0 || data[i] !== 0){
- var t = String(data[i]);
- s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;
- }
- } return s;
- };
- var pow = function(x, n, acc){
- return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
- };
- var log = function(x){
- var n = 0
- , x2 = x;
- while(x2 >= 4096){
- n += 12;
- x2 /= 4096;
- }
- while(x2 >= 2){
- n += 1;
- x2 /= 2;
- } return n;
- };
-
- $export($export.P + $export.F * (!!$toFixed && (
- 0.00008.toFixed(3) !== '0.000' ||
- 0.9.toFixed(0) !== '1' ||
- 1.255.toFixed(2) !== '1.25' ||
- 1000000000000000128..toFixed(0) !== '1000000000000000128'
- ) || !__webpack_require__(5)(function(){
- // V8 ~ Android 4.3-
- $toFixed.call({});
- })), 'Number', {
- toFixed: function toFixed(fractionDigits){
- var x = aNumberValue(this, ERROR)
- , f = toInteger(fractionDigits)
- , s = ''
- , m = ZERO
- , e, z, j, k;
- if(f < 0 || f > 20)throw RangeError(ERROR);
- if(x != x)return 'NaN';
- if(x <= -1e21 || x >= 1e21)return String(x);
- if(x < 0){
- s = '-';
- x = -x;
- }
- if(x > 1e-21){
- e = log(x * pow(2, 69, 1)) - 69;
- z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);
- z *= 0x10000000000000;
- e = 52 - e;
- if(e > 0){
- multiply(0, z);
- j = f;
- while(j >= 7){
- multiply(1e7, 0);
- j -= 7;
- }
- multiply(pow(10, j, 1), 0);
- j = e - 1;
- while(j >= 23){
- divide(1 << 23);
- j -= 23;
- }
- divide(1 << j);
- multiply(1, 1);
- divide(2);
- m = numToString();
- } else {
- multiply(0, z);
- multiply(1 << -e, 0);
- m = numToString() + repeat.call(ZERO, f);
- }
- }
- if(f > 0){
- k = m.length;
- m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));
- } else {
- m = s + m;
- } return m;
- }
- });
-
-/***/ },
-/* 84 */
-/***/ function(module, exports, __webpack_require__) {
-
- var cof = __webpack_require__(32);
- module.exports = function(it, msg){
- if(typeof it != 'number' && cof(it) != 'Number')throw TypeError(msg);
- return +it;
- };
-
-/***/ },
-/* 85 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var toInteger = __webpack_require__(36)
- , defined = __webpack_require__(33);
-
- module.exports = function repeat(count){
- var str = String(defined(this))
- , res = ''
- , n = toInteger(count);
- if(n < 0 || n == Infinity)throw RangeError("Count can't be negative");
- for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;
- return res;
- };
-
-/***/ },
-/* 86 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $fails = __webpack_require__(5)
- , aNumberValue = __webpack_require__(84)
- , $toPrecision = 1..toPrecision;
-
- $export($export.P + $export.F * ($fails(function(){
- // IE7-
- return $toPrecision.call(1, undefined) !== '1';
- }) || !$fails(function(){
- // V8 ~ Android 4.3-
- $toPrecision.call({});
- })), 'Number', {
- toPrecision: function toPrecision(precision){
- var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');
- return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);
- }
- });
-
-/***/ },
-/* 87 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.1 Number.EPSILON
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Number', {EPSILON: Math.pow(2, -52)});
-
-/***/ },
-/* 88 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.2 Number.isFinite(number)
- var $export = __webpack_require__(6)
- , _isFinite = __webpack_require__(2).isFinite;
-
- $export($export.S, 'Number', {
- isFinite: function isFinite(it){
- return typeof it == 'number' && _isFinite(it);
- }
- });
-
-/***/ },
-/* 89 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.3 Number.isInteger(number)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Number', {isInteger: __webpack_require__(90)});
-
-/***/ },
-/* 90 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.3 Number.isInteger(number)
- var isObject = __webpack_require__(11)
- , floor = Math.floor;
- module.exports = function isInteger(it){
- return !isObject(it) && isFinite(it) && floor(it) === it;
- };
-
-/***/ },
-/* 91 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.4 Number.isNaN(number)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Number', {
- isNaN: function isNaN(number){
- return number != number;
- }
- });
-
-/***/ },
-/* 92 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.5 Number.isSafeInteger(number)
- var $export = __webpack_require__(6)
- , isInteger = __webpack_require__(90)
- , abs = Math.abs;
-
- $export($export.S, 'Number', {
- isSafeInteger: function isSafeInteger(number){
- return isInteger(number) && abs(number) <= 0x1fffffffffffff;
- }
- });
-
-/***/ },
-/* 93 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.6 Number.MAX_SAFE_INTEGER
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff});
-
-/***/ },
-/* 94 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.1.2.10 Number.MIN_SAFE_INTEGER
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff});
-
-/***/ },
-/* 95 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , $parseFloat = __webpack_require__(96);
- // 20.1.2.12 Number.parseFloat(string)
- $export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', {parseFloat: $parseFloat});
-
-/***/ },
-/* 96 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $parseFloat = __webpack_require__(2).parseFloat
- , $trim = __webpack_require__(81).trim;
-
- module.exports = 1 / $parseFloat(__webpack_require__(82) + '-0') !== -Infinity ? function parseFloat(str){
- var string = $trim(String(str), 3)
- , result = $parseFloat(string);
- return result === 0 && string.charAt(0) == '-' ? -0 : result;
- } : $parseFloat;
-
-/***/ },
-/* 97 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , $parseInt = __webpack_require__(98);
- // 20.1.2.13 Number.parseInt(string, radix)
- $export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', {parseInt: $parseInt});
-
-/***/ },
-/* 98 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $parseInt = __webpack_require__(2).parseInt
- , $trim = __webpack_require__(81).trim
- , ws = __webpack_require__(82)
- , hex = /^[\-+]?0[xX]/;
-
- module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix){
- var string = $trim(String(str), 3);
- return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
- } : $parseInt;
-
-/***/ },
-/* 99 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , $parseInt = __webpack_require__(98);
- // 18.2.5 parseInt(string, radix)
- $export($export.G + $export.F * (parseInt != $parseInt), {parseInt: $parseInt});
-
-/***/ },
-/* 100 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , $parseFloat = __webpack_require__(96);
- // 18.2.4 parseFloat(string)
- $export($export.G + $export.F * (parseFloat != $parseFloat), {parseFloat: $parseFloat});
-
-/***/ },
-/* 101 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.3 Math.acosh(x)
- var $export = __webpack_require__(6)
- , log1p = __webpack_require__(102)
- , sqrt = Math.sqrt
- , $acosh = Math.acosh;
-
- $export($export.S + $export.F * !($acosh
- // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
- && Math.floor($acosh(Number.MAX_VALUE)) == 710
- // Tor Browser bug: Math.acosh(Infinity) -> NaN
- && $acosh(Infinity) == Infinity
- ), 'Math', {
- acosh: function acosh(x){
- return (x = +x) < 1 ? NaN : x > 94906265.62425156
- ? Math.log(x) + Math.LN2
- : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
- }
- });
-
-/***/ },
-/* 102 */
-/***/ function(module, exports) {
-
- // 20.2.2.20 Math.log1p(x)
- module.exports = Math.log1p || function log1p(x){
- return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);
- };
-
-/***/ },
-/* 103 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.5 Math.asinh(x)
- var $export = __webpack_require__(6)
- , $asinh = Math.asinh;
-
- function asinh(x){
- return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
- }
-
- // Tor Browser bug: Math.asinh(0) -> -0
- $export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', {asinh: asinh});
-
-/***/ },
-/* 104 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.7 Math.atanh(x)
- var $export = __webpack_require__(6)
- , $atanh = Math.atanh;
-
- // Tor Browser bug: Math.atanh(-0) -> 0
- $export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {
- atanh: function atanh(x){
- return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
- }
- });
-
-/***/ },
-/* 105 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.9 Math.cbrt(x)
- var $export = __webpack_require__(6)
- , sign = __webpack_require__(106);
-
- $export($export.S, 'Math', {
- cbrt: function cbrt(x){
- return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);
- }
- });
-
-/***/ },
-/* 106 */
-/***/ function(module, exports) {
-
- // 20.2.2.28 Math.sign(x)
- module.exports = Math.sign || function sign(x){
- return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
- };
-
-/***/ },
-/* 107 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.11 Math.clz32(x)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- clz32: function clz32(x){
- return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;
- }
- });
-
-/***/ },
-/* 108 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.12 Math.cosh(x)
- var $export = __webpack_require__(6)
- , exp = Math.exp;
-
- $export($export.S, 'Math', {
- cosh: function cosh(x){
- return (exp(x = +x) + exp(-x)) / 2;
- }
- });
-
-/***/ },
-/* 109 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.14 Math.expm1(x)
- var $export = __webpack_require__(6)
- , $expm1 = __webpack_require__(110);
-
- $export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', {expm1: $expm1});
-
-/***/ },
-/* 110 */
-/***/ function(module, exports) {
-
- // 20.2.2.14 Math.expm1(x)
- var $expm1 = Math.expm1;
- module.exports = (!$expm1
- // Old FF bug
- || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168
- // Tor Browser bug
- || $expm1(-2e-17) != -2e-17
- ) ? function expm1(x){
- return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
- } : $expm1;
-
-/***/ },
-/* 111 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.16 Math.fround(x)
- var $export = __webpack_require__(6)
- , sign = __webpack_require__(106)
- , pow = Math.pow
- , EPSILON = pow(2, -52)
- , EPSILON32 = pow(2, -23)
- , MAX32 = pow(2, 127) * (2 - EPSILON32)
- , MIN32 = pow(2, -126);
-
- var roundTiesToEven = function(n){
- return n + 1 / EPSILON - 1 / EPSILON;
- };
-
-
- $export($export.S, 'Math', {
- fround: function fround(x){
- var $abs = Math.abs(x)
- , $sign = sign(x)
- , a, result;
- if($abs < MIN32)return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
- a = (1 + EPSILON32 / EPSILON) * $abs;
- result = a - (a - $abs);
- if(result > MAX32 || result != result)return $sign * Infinity;
- return $sign * result;
- }
- });
-
-/***/ },
-/* 112 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
- var $export = __webpack_require__(6)
- , abs = Math.abs;
-
- $export($export.S, 'Math', {
- hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars
- var sum = 0
- , i = 0
- , aLen = arguments.length
- , larg = 0
- , arg, div;
- while(i < aLen){
- arg = abs(arguments[i++]);
- if(larg < arg){
- div = larg / arg;
- sum = sum * div * div + 1;
- larg = arg;
- } else if(arg > 0){
- div = arg / larg;
- sum += div * div;
- } else sum += arg;
- }
- return larg === Infinity ? Infinity : larg * Math.sqrt(sum);
- }
- });
-
-/***/ },
-/* 113 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.18 Math.imul(x, y)
- var $export = __webpack_require__(6)
- , $imul = Math.imul;
-
- // some WebKit versions fails with big numbers, some has wrong arity
- $export($export.S + $export.F * __webpack_require__(5)(function(){
- return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
- }), 'Math', {
- imul: function imul(x, y){
- var UINT16 = 0xffff
- , xn = +x
- , yn = +y
- , xl = UINT16 & xn
- , yl = UINT16 & yn;
- return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);
- }
- });
-
-/***/ },
-/* 114 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.21 Math.log10(x)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- log10: function log10(x){
- return Math.log(x) / Math.LN10;
- }
- });
-
-/***/ },
-/* 115 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.20 Math.log1p(x)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {log1p: __webpack_require__(102)});
-
-/***/ },
-/* 116 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.22 Math.log2(x)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- log2: function log2(x){
- return Math.log(x) / Math.LN2;
- }
- });
-
-/***/ },
-/* 117 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.28 Math.sign(x)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {sign: __webpack_require__(106)});
-
-/***/ },
-/* 118 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.30 Math.sinh(x)
- var $export = __webpack_require__(6)
- , expm1 = __webpack_require__(110)
- , exp = Math.exp;
-
- // V8 near Chromium 38 has a problem with very small numbers
- $export($export.S + $export.F * __webpack_require__(5)(function(){
- return !Math.sinh(-2e-17) != -2e-17;
- }), 'Math', {
- sinh: function sinh(x){
- return Math.abs(x = +x) < 1
- ? (expm1(x) - expm1(-x)) / 2
- : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);
- }
- });
-
-/***/ },
-/* 119 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.33 Math.tanh(x)
- var $export = __webpack_require__(6)
- , expm1 = __webpack_require__(110)
- , exp = Math.exp;
-
- $export($export.S, 'Math', {
- tanh: function tanh(x){
- var a = expm1(x = +x)
- , b = expm1(-x);
- return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
- }
- });
-
-/***/ },
-/* 120 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.2.2.34 Math.trunc(x)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- trunc: function trunc(it){
- return (it > 0 ? Math.floor : Math.ceil)(it);
- }
- });
-
-/***/ },
-/* 121 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , toIndex = __webpack_require__(37)
- , fromCharCode = String.fromCharCode
- , $fromCodePoint = String.fromCodePoint;
-
- // length should be 1, old FF problem
- $export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
- // 21.1.2.2 String.fromCodePoint(...codePoints)
- fromCodePoint: function fromCodePoint(x){ // eslint-disable-line no-unused-vars
- var res = []
- , aLen = arguments.length
- , i = 0
- , code;
- while(aLen > i){
- code = +arguments[i++];
- if(toIndex(code, 0x10ffff) !== code)throw RangeError(code + ' is not a valid code point');
- res.push(code < 0x10000
- ? fromCharCode(code)
- : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
- );
- } return res.join('');
- }
- });
-
-/***/ },
-/* 122 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , toIObject = __webpack_require__(30)
- , toLength = __webpack_require__(35);
-
- $export($export.S, 'String', {
- // 21.1.2.4 String.raw(callSite, ...substitutions)
- raw: function raw(callSite){
- var tpl = toIObject(callSite.raw)
- , len = toLength(tpl.length)
- , aLen = arguments.length
- , res = []
- , i = 0;
- while(len > i){
- res.push(String(tpl[i++]));
- if(i < aLen)res.push(String(arguments[i]));
- } return res.join('');
- }
- });
-
-/***/ },
-/* 123 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 21.1.3.25 String.prototype.trim()
- __webpack_require__(81)('trim', function($trim){
- return function trim(){
- return $trim(this, 3);
- };
- });
-
-/***/ },
-/* 124 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $at = __webpack_require__(125)(false);
- $export($export.P, 'String', {
- // 21.1.3.3 String.prototype.codePointAt(pos)
- codePointAt: function codePointAt(pos){
- return $at(this, pos);
- }
- });
-
-/***/ },
-/* 125 */
-/***/ function(module, exports, __webpack_require__) {
-
- var toInteger = __webpack_require__(36)
- , defined = __webpack_require__(33);
- // true -> String#at
- // false -> String#codePointAt
- module.exports = function(TO_STRING){
- return function(that, pos){
- var s = String(defined(that))
- , i = toInteger(pos)
- , l = s.length
- , a, b;
- if(i < 0 || i >= l)return TO_STRING ? '' : undefined;
- a = s.charCodeAt(i);
- return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
- ? TO_STRING ? s.charAt(i) : a
- : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
- };
- };
-
-/***/ },
-/* 126 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
- 'use strict';
- var $export = __webpack_require__(6)
- , toLength = __webpack_require__(35)
- , context = __webpack_require__(127)
- , ENDS_WITH = 'endsWith'
- , $endsWith = ''[ENDS_WITH];
-
- $export($export.P + $export.F * __webpack_require__(129)(ENDS_WITH), 'String', {
- endsWith: function endsWith(searchString /*, endPosition = @length */){
- var that = context(this, searchString, ENDS_WITH)
- , endPosition = arguments.length > 1 ? arguments[1] : undefined
- , len = toLength(that.length)
- , end = endPosition === undefined ? len : Math.min(toLength(endPosition), len)
- , search = String(searchString);
- return $endsWith
- ? $endsWith.call(that, search, end)
- : that.slice(end - search.length, end) === search;
- }
- });
-
-/***/ },
-/* 127 */
-/***/ function(module, exports, __webpack_require__) {
-
- // helper for String#{startsWith, endsWith, includes}
- var isRegExp = __webpack_require__(128)
- , defined = __webpack_require__(33);
-
- module.exports = function(that, searchString, NAME){
- if(isRegExp(searchString))throw TypeError('String#' + NAME + " doesn't accept regex!");
- return String(defined(that));
- };
-
-/***/ },
-/* 128 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 7.2.8 IsRegExp(argument)
- var isObject = __webpack_require__(11)
- , cof = __webpack_require__(32)
- , MATCH = __webpack_require__(23)('match');
- module.exports = function(it){
- var isRegExp;
- return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
- };
-
-/***/ },
-/* 129 */
-/***/ function(module, exports, __webpack_require__) {
-
- var MATCH = __webpack_require__(23)('match');
- module.exports = function(KEY){
- var re = /./;
- try {
- '/./'[KEY](re);
- } catch(e){
- try {
- re[MATCH] = false;
- return !'/./'[KEY](re);
- } catch(f){ /* empty */ }
- } return true;
- };
-
-/***/ },
-/* 130 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 21.1.3.7 String.prototype.includes(searchString, position = 0)
- 'use strict';
- var $export = __webpack_require__(6)
- , context = __webpack_require__(127)
- , INCLUDES = 'includes';
-
- $export($export.P + $export.F * __webpack_require__(129)(INCLUDES), 'String', {
- includes: function includes(searchString /*, position = 0 */){
- return !!~context(this, searchString, INCLUDES)
- .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
- }
- });
-
-/***/ },
-/* 131 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6);
-
- $export($export.P, 'String', {
- // 21.1.3.13 String.prototype.repeat(count)
- repeat: __webpack_require__(85)
- });
-
-/***/ },
-/* 132 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 21.1.3.18 String.prototype.startsWith(searchString [, position ])
- 'use strict';
- var $export = __webpack_require__(6)
- , toLength = __webpack_require__(35)
- , context = __webpack_require__(127)
- , STARTS_WITH = 'startsWith'
- , $startsWith = ''[STARTS_WITH];
-
- $export($export.P + $export.F * __webpack_require__(129)(STARTS_WITH), 'String', {
- startsWith: function startsWith(searchString /*, position = 0 */){
- var that = context(this, searchString, STARTS_WITH)
- , index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length))
- , search = String(searchString);
- return $startsWith
- ? $startsWith.call(that, search, index)
- : that.slice(index, index + search.length) === search;
- }
- });
-
-/***/ },
-/* 133 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $at = __webpack_require__(125)(true);
-
- // 21.1.3.27 String.prototype[@@iterator]()
- __webpack_require__(134)(String, 'String', function(iterated){
- this._t = String(iterated); // target
- this._i = 0; // next index
- // 21.1.5.2.1 %StringIteratorPrototype%.next()
- }, function(){
- var O = this._t
- , index = this._i
- , point;
- if(index >= O.length)return {value: undefined, done: true};
- point = $at(O, index);
- this._i += point.length;
- return {value: point, done: false};
- });
-
-/***/ },
-/* 134 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var LIBRARY = __webpack_require__(26)
- , $export = __webpack_require__(6)
- , redefine = __webpack_require__(16)
- , hide = __webpack_require__(8)
- , has = __webpack_require__(3)
- , Iterators = __webpack_require__(135)
- , $iterCreate = __webpack_require__(136)
- , setToStringTag = __webpack_require__(22)
- , getPrototypeOf = __webpack_require__(57)
- , ITERATOR = __webpack_require__(23)('iterator')
- , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
- , FF_ITERATOR = '@@iterator'
- , KEYS = 'keys'
- , VALUES = 'values';
-
- var returnThis = function(){ return this; };
-
- module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){
- $iterCreate(Constructor, NAME, next);
- var getMethod = function(kind){
- if(!BUGGY && kind in proto)return proto[kind];
- switch(kind){
- case KEYS: return function keys(){ return new Constructor(this, kind); };
- case VALUES: return function values(){ return new Constructor(this, kind); };
- } return function entries(){ return new Constructor(this, kind); };
- };
- var TAG = NAME + ' Iterator'
- , DEF_VALUES = DEFAULT == VALUES
- , VALUES_BUG = false
- , proto = Base.prototype
- , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
- , $default = $native || getMethod(DEFAULT)
- , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined
- , $anyNative = NAME == 'Array' ? proto.entries || $native : $native
- , methods, key, IteratorPrototype;
- // Fix native
- if($anyNative){
- IteratorPrototype = getPrototypeOf($anyNative.call(new Base));
- if(IteratorPrototype !== Object.prototype){
- // Set @@toStringTag to native iterators
- setToStringTag(IteratorPrototype, TAG, true);
- // fix for some old engines
- if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
- }
- }
- // fix Array#{values, @@iterator}.name in V8 / FF
- if(DEF_VALUES && $native && $native.name !== VALUES){
- VALUES_BUG = true;
- $default = function values(){ return $native.call(this); };
- }
- // Define iterator
- if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
- hide(proto, ITERATOR, $default);
- }
- // Plug for library
- Iterators[NAME] = $default;
- Iterators[TAG] = returnThis;
- if(DEFAULT){
- methods = {
- values: DEF_VALUES ? $default : getMethod(VALUES),
- keys: IS_SET ? $default : getMethod(KEYS),
- entries: $entries
- };
- if(FORCED)for(key in methods){
- if(!(key in proto))redefine(proto, key, methods[key]);
- } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
- }
- return methods;
- };
-
-/***/ },
-/* 135 */
-/***/ function(module, exports) {
-
- module.exports = {};
-
-/***/ },
-/* 136 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var create = __webpack_require__(44)
- , descriptor = __webpack_require__(15)
- , setToStringTag = __webpack_require__(22)
- , IteratorPrototype = {};
-
- // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
- __webpack_require__(8)(IteratorPrototype, __webpack_require__(23)('iterator'), function(){ return this; });
-
- module.exports = function(Constructor, NAME, next){
- Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});
- setToStringTag(Constructor, NAME + ' Iterator');
- };
-
-/***/ },
-/* 137 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.2 String.prototype.anchor(name)
- __webpack_require__(138)('anchor', function(createHTML){
- return function anchor(name){
- return createHTML(this, 'a', 'name', name);
- }
- });
-
-/***/ },
-/* 138 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , fails = __webpack_require__(5)
- , defined = __webpack_require__(33)
- , quot = /"/g;
- // B.2.3.2.1 CreateHTML(string, tag, attribute, value)
- var createHTML = function(string, tag, attribute, value) {
- var S = String(defined(string))
- , p1 = '<' + tag;
- if(attribute !== '')p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
- return p1 + '>' + S + '</' + tag + '>';
- };
- module.exports = function(NAME, exec){
- var O = {};
- O[NAME] = exec(createHTML);
- $export($export.P + $export.F * fails(function(){
- var test = ''[NAME]('"');
- return test !== test.toLowerCase() || test.split('"').length > 3;
- }), 'String', O);
- };
-
-/***/ },
-/* 139 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.3 String.prototype.big()
- __webpack_require__(138)('big', function(createHTML){
- return function big(){
- return createHTML(this, 'big', '', '');
- }
- });
-
-/***/ },
-/* 140 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.4 String.prototype.blink()
- __webpack_require__(138)('blink', function(createHTML){
- return function blink(){
- return createHTML(this, 'blink', '', '');
- }
- });
-
-/***/ },
-/* 141 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.5 String.prototype.bold()
- __webpack_require__(138)('bold', function(createHTML){
- return function bold(){
- return createHTML(this, 'b', '', '');
- }
- });
-
-/***/ },
-/* 142 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.6 String.prototype.fixed()
- __webpack_require__(138)('fixed', function(createHTML){
- return function fixed(){
- return createHTML(this, 'tt', '', '');
- }
- });
-
-/***/ },
-/* 143 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.7 String.prototype.fontcolor(color)
- __webpack_require__(138)('fontcolor', function(createHTML){
- return function fontcolor(color){
- return createHTML(this, 'font', 'color', color);
- }
- });
-
-/***/ },
-/* 144 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.8 String.prototype.fontsize(size)
- __webpack_require__(138)('fontsize', function(createHTML){
- return function fontsize(size){
- return createHTML(this, 'font', 'size', size);
- }
- });
-
-/***/ },
-/* 145 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.9 String.prototype.italics()
- __webpack_require__(138)('italics', function(createHTML){
- return function italics(){
- return createHTML(this, 'i', '', '');
- }
- });
-
-/***/ },
-/* 146 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.10 String.prototype.link(url)
- __webpack_require__(138)('link', function(createHTML){
- return function link(url){
- return createHTML(this, 'a', 'href', url);
- }
- });
-
-/***/ },
-/* 147 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.11 String.prototype.small()
- __webpack_require__(138)('small', function(createHTML){
- return function small(){
- return createHTML(this, 'small', '', '');
- }
- });
-
-/***/ },
-/* 148 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.12 String.prototype.strike()
- __webpack_require__(138)('strike', function(createHTML){
- return function strike(){
- return createHTML(this, 'strike', '', '');
- }
- });
-
-/***/ },
-/* 149 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.13 String.prototype.sub()
- __webpack_require__(138)('sub', function(createHTML){
- return function sub(){
- return createHTML(this, 'sub', '', '');
- }
- });
-
-/***/ },
-/* 150 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // B.2.3.14 String.prototype.sup()
- __webpack_require__(138)('sup', function(createHTML){
- return function sup(){
- return createHTML(this, 'sup', '', '');
- }
- });
-
-/***/ },
-/* 151 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Array', {isArray: __webpack_require__(43)});
-
-/***/ },
-/* 152 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var ctx = __webpack_require__(18)
- , $export = __webpack_require__(6)
- , toObject = __webpack_require__(56)
- , call = __webpack_require__(153)
- , isArrayIter = __webpack_require__(154)
- , toLength = __webpack_require__(35)
- , createProperty = __webpack_require__(155)
- , getIterFn = __webpack_require__(156);
-
- $export($export.S + $export.F * !__webpack_require__(157)(function(iter){ Array.from(iter); }), 'Array', {
- // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
- from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
- var O = toObject(arrayLike)
- , C = typeof this == 'function' ? this : Array
- , aLen = arguments.length
- , mapfn = aLen > 1 ? arguments[1] : undefined
- , mapping = mapfn !== undefined
- , index = 0
- , iterFn = getIterFn(O)
- , length, result, step, iterator;
- if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
- // if object isn't iterable or it's array with default iterator - use simple case
- if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){
- for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){
- createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
- }
- } else {
- length = toLength(O.length);
- for(result = new C(length); length > index; index++){
- createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
- }
- }
- result.length = index;
- return result;
- }
- });
-
-
-/***/ },
-/* 153 */
-/***/ function(module, exports, __webpack_require__) {
-
- // call something on iterator step with safe closing on error
- var anObject = __webpack_require__(10);
- module.exports = function(iterator, fn, value, entries){
- try {
- return entries ? fn(anObject(value)[0], value[1]) : fn(value);
- // 7.4.6 IteratorClose(iterator, completion)
- } catch(e){
- var ret = iterator['return'];
- if(ret !== undefined)anObject(ret.call(iterator));
- throw e;
- }
- };
-
-/***/ },
-/* 154 */
-/***/ function(module, exports, __webpack_require__) {
-
- // check on default Array iterator
- var Iterators = __webpack_require__(135)
- , ITERATOR = __webpack_require__(23)('iterator')
- , ArrayProto = Array.prototype;
-
- module.exports = function(it){
- return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
- };
-
-/***/ },
-/* 155 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $defineProperty = __webpack_require__(9)
- , createDesc = __webpack_require__(15);
-
- module.exports = function(object, index, value){
- if(index in object)$defineProperty.f(object, index, createDesc(0, value));
- else object[index] = value;
- };
-
-/***/ },
-/* 156 */
-/***/ function(module, exports, __webpack_require__) {
-
- var classof = __webpack_require__(73)
- , ITERATOR = __webpack_require__(23)('iterator')
- , Iterators = __webpack_require__(135);
- module.exports = __webpack_require__(7).getIteratorMethod = function(it){
- if(it != undefined)return it[ITERATOR]
- || it['@@iterator']
- || Iterators[classof(it)];
- };
-
-/***/ },
-/* 157 */
-/***/ function(module, exports, __webpack_require__) {
-
- var ITERATOR = __webpack_require__(23)('iterator')
- , SAFE_CLOSING = false;
-
- try {
- var riter = [7][ITERATOR]();
- riter['return'] = function(){ SAFE_CLOSING = true; };
- Array.from(riter, function(){ throw 2; });
- } catch(e){ /* empty */ }
-
- module.exports = function(exec, skipClosing){
- if(!skipClosing && !SAFE_CLOSING)return false;
- var safe = false;
- try {
- var arr = [7]
- , iter = arr[ITERATOR]();
- iter.next = function(){ return {done: safe = true}; };
- arr[ITERATOR] = function(){ return iter; };
- exec(arr);
- } catch(e){ /* empty */ }
- return safe;
- };
-
-/***/ },
-/* 158 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , createProperty = __webpack_require__(155);
-
- // WebKit Array.of isn't generic
- $export($export.S + $export.F * __webpack_require__(5)(function(){
- function F(){}
- return !(Array.of.call(F) instanceof F);
- }), 'Array', {
- // 22.1.2.3 Array.of( ...items)
- of: function of(/* ...args */){
- var index = 0
- , aLen = arguments.length
- , result = new (typeof this == 'function' ? this : Array)(aLen);
- while(aLen > index)createProperty(result, index, arguments[index++]);
- result.length = aLen;
- return result;
- }
- });
-
-/***/ },
-/* 159 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 22.1.3.13 Array.prototype.join(separator)
- var $export = __webpack_require__(6)
- , toIObject = __webpack_require__(30)
- , arrayJoin = [].join;
-
- // fallback for not array-like strings
- $export($export.P + $export.F * (__webpack_require__(31) != Object || !__webpack_require__(160)(arrayJoin)), 'Array', {
- join: function join(separator){
- return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);
- }
- });
-
-/***/ },
-/* 160 */
-/***/ function(module, exports, __webpack_require__) {
-
- var fails = __webpack_require__(5);
-
- module.exports = function(method, arg){
- return !!method && fails(function(){
- arg ? method.call(null, function(){}, 1) : method.call(null);
- });
- };
-
-/***/ },
-/* 161 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , html = __webpack_require__(46)
- , cof = __webpack_require__(32)
- , toIndex = __webpack_require__(37)
- , toLength = __webpack_require__(35)
- , arraySlice = [].slice;
-
- // fallback for not array-like ES3 strings and DOM objects
- $export($export.P + $export.F * __webpack_require__(5)(function(){
- if(html)arraySlice.call(html);
- }), 'Array', {
- slice: function slice(begin, end){
- var len = toLength(this.length)
- , klass = cof(this);
- end = end === undefined ? len : end;
- if(klass == 'Array')return arraySlice.call(this, begin, end);
- var start = toIndex(begin, len)
- , upTo = toIndex(end, len)
- , size = toLength(upTo - start)
- , cloned = Array(size)
- , i = 0;
- for(; i < size; i++)cloned[i] = klass == 'String'
- ? this.charAt(start + i)
- : this[start + i];
- return cloned;
- }
- });
-
-/***/ },
-/* 162 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , aFunction = __webpack_require__(19)
- , toObject = __webpack_require__(56)
- , fails = __webpack_require__(5)
- , $sort = [].sort
- , test = [1, 2, 3];
-
- $export($export.P + $export.F * (fails(function(){
- // IE8-
- test.sort(undefined);
- }) || !fails(function(){
- // V8 bug
- test.sort(null);
- // Old WebKit
- }) || !__webpack_require__(160)($sort)), 'Array', {
- // 22.1.3.25 Array.prototype.sort(comparefn)
- sort: function sort(comparefn){
- return comparefn === undefined
- ? $sort.call(toObject(this))
- : $sort.call(toObject(this), aFunction(comparefn));
- }
- });
-
-/***/ },
-/* 163 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $forEach = __webpack_require__(164)(0)
- , STRICT = __webpack_require__(160)([].forEach, true);
-
- $export($export.P + $export.F * !STRICT, 'Array', {
- // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
- forEach: function forEach(callbackfn /* , thisArg */){
- return $forEach(this, callbackfn, arguments[1]);
- }
- });
-
-/***/ },
-/* 164 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 0 -> Array#forEach
- // 1 -> Array#map
- // 2 -> Array#filter
- // 3 -> Array#some
- // 4 -> Array#every
- // 5 -> Array#find
- // 6 -> Array#findIndex
- var ctx = __webpack_require__(18)
- , IObject = __webpack_require__(31)
- , toObject = __webpack_require__(56)
- , toLength = __webpack_require__(35)
- , asc = __webpack_require__(165);
- module.exports = function(TYPE, $create){
- var IS_MAP = TYPE == 1
- , IS_FILTER = TYPE == 2
- , IS_SOME = TYPE == 3
- , IS_EVERY = TYPE == 4
- , IS_FIND_INDEX = TYPE == 6
- , NO_HOLES = TYPE == 5 || IS_FIND_INDEX
- , create = $create || asc;
- return function($this, callbackfn, that){
- var O = toObject($this)
- , self = IObject(O)
- , f = ctx(callbackfn, that, 3)
- , length = toLength(self.length)
- , index = 0
- , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined
- , val, res;
- for(;length > index; index++)if(NO_HOLES || index in self){
- val = self[index];
- res = f(val, index, O);
- if(TYPE){
- if(IS_MAP)result[index] = res; // map
- else if(res)switch(TYPE){
- case 3: return true; // some
- case 5: return val; // find
- case 6: return index; // findIndex
- case 2: result.push(val); // filter
- } else if(IS_EVERY)return false; // every
- }
- }
- return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
- };
- };
-
-/***/ },
-/* 165 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 9.4.2.3 ArraySpeciesCreate(originalArray, length)
- var speciesConstructor = __webpack_require__(166);
-
- module.exports = function(original, length){
- return new (speciesConstructor(original))(length);
- };
-
-/***/ },
-/* 166 */
-/***/ function(module, exports, __webpack_require__) {
-
- var isObject = __webpack_require__(11)
- , isArray = __webpack_require__(43)
- , SPECIES = __webpack_require__(23)('species');
-
- module.exports = function(original){
- var C;
- if(isArray(original)){
- C = original.constructor;
- // cross-realm fallback
- if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;
- if(isObject(C)){
- C = C[SPECIES];
- if(C === null)C = undefined;
- }
- } return C === undefined ? Array : C;
- };
-
-/***/ },
-/* 167 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $map = __webpack_require__(164)(1);
-
- $export($export.P + $export.F * !__webpack_require__(160)([].map, true), 'Array', {
- // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
- map: function map(callbackfn /* , thisArg */){
- return $map(this, callbackfn, arguments[1]);
- }
- });
-
-/***/ },
-/* 168 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $filter = __webpack_require__(164)(2);
-
- $export($export.P + $export.F * !__webpack_require__(160)([].filter, true), 'Array', {
- // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
- filter: function filter(callbackfn /* , thisArg */){
- return $filter(this, callbackfn, arguments[1]);
- }
- });
-
-/***/ },
-/* 169 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $some = __webpack_require__(164)(3);
-
- $export($export.P + $export.F * !__webpack_require__(160)([].some, true), 'Array', {
- // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
- some: function some(callbackfn /* , thisArg */){
- return $some(this, callbackfn, arguments[1]);
- }
- });
-
-/***/ },
-/* 170 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $every = __webpack_require__(164)(4);
-
- $export($export.P + $export.F * !__webpack_require__(160)([].every, true), 'Array', {
- // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
- every: function every(callbackfn /* , thisArg */){
- return $every(this, callbackfn, arguments[1]);
- }
- });
-
-/***/ },
-/* 171 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $reduce = __webpack_require__(172);
-
- $export($export.P + $export.F * !__webpack_require__(160)([].reduce, true), 'Array', {
- // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
- reduce: function reduce(callbackfn /* , initialValue */){
- return $reduce(this, callbackfn, arguments.length, arguments[1], false);
- }
- });
-
-/***/ },
-/* 172 */
-/***/ function(module, exports, __webpack_require__) {
-
- var aFunction = __webpack_require__(19)
- , toObject = __webpack_require__(56)
- , IObject = __webpack_require__(31)
- , toLength = __webpack_require__(35);
-
- module.exports = function(that, callbackfn, aLen, memo, isRight){
- aFunction(callbackfn);
- var O = toObject(that)
- , self = IObject(O)
- , length = toLength(O.length)
- , index = isRight ? length - 1 : 0
- , i = isRight ? -1 : 1;
- if(aLen < 2)for(;;){
- if(index in self){
- memo = self[index];
- index += i;
- break;
- }
- index += i;
- if(isRight ? index < 0 : length <= index){
- throw TypeError('Reduce of empty array with no initial value');
- }
- }
- for(;isRight ? index >= 0 : length > index; index += i)if(index in self){
- memo = callbackfn(memo, self[index], index, O);
- }
- return memo;
- };
-
-/***/ },
-/* 173 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $reduce = __webpack_require__(172);
-
- $export($export.P + $export.F * !__webpack_require__(160)([].reduceRight, true), 'Array', {
- // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
- reduceRight: function reduceRight(callbackfn /* , initialValue */){
- return $reduce(this, callbackfn, arguments.length, arguments[1], true);
- }
- });
-
-/***/ },
-/* 174 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $indexOf = __webpack_require__(34)(false)
- , $native = [].indexOf
- , NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
-
- $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(160)($native)), 'Array', {
- // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
- indexOf: function indexOf(searchElement /*, fromIndex = 0 */){
- return NEGATIVE_ZERO
- // convert -0 to +0
- ? $native.apply(this, arguments) || 0
- : $indexOf(this, searchElement, arguments[1]);
- }
- });
-
-/***/ },
-/* 175 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toIObject = __webpack_require__(30)
- , toInteger = __webpack_require__(36)
- , toLength = __webpack_require__(35)
- , $native = [].lastIndexOf
- , NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;
-
- $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(160)($native)), 'Array', {
- // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
- lastIndexOf: function lastIndexOf(searchElement /*, fromIndex = @[*-1] */){
- // convert -0 to +0
- if(NEGATIVE_ZERO)return $native.apply(this, arguments) || 0;
- var O = toIObject(this)
- , length = toLength(O.length)
- , index = length - 1;
- if(arguments.length > 1)index = Math.min(index, toInteger(arguments[1]));
- if(index < 0)index = length + index;
- for(;index >= 0; index--)if(index in O)if(O[index] === searchElement)return index || 0;
- return -1;
- }
- });
-
-/***/ },
-/* 176 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
- var $export = __webpack_require__(6);
-
- $export($export.P, 'Array', {copyWithin: __webpack_require__(177)});
-
- __webpack_require__(178)('copyWithin');
-
-/***/ },
-/* 177 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
- 'use strict';
- var toObject = __webpack_require__(56)
- , toIndex = __webpack_require__(37)
- , toLength = __webpack_require__(35);
-
- module.exports = [].copyWithin || function copyWithin(target/*= 0*/, start/*= 0, end = @length*/){
- var O = toObject(this)
- , len = toLength(O.length)
- , to = toIndex(target, len)
- , from = toIndex(start, len)
- , end = arguments.length > 2 ? arguments[2] : undefined
- , count = Math.min((end === undefined ? len : toIndex(end, len)) - from, len - to)
- , inc = 1;
- if(from < to && to < from + count){
- inc = -1;
- from += count - 1;
- to += count - 1;
- }
- while(count-- > 0){
- if(from in O)O[to] = O[from];
- else delete O[to];
- to += inc;
- from += inc;
- } return O;
- };
-
-/***/ },
-/* 178 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 22.1.3.31 Array.prototype[@@unscopables]
- var UNSCOPABLES = __webpack_require__(23)('unscopables')
- , ArrayProto = Array.prototype;
- if(ArrayProto[UNSCOPABLES] == undefined)__webpack_require__(8)(ArrayProto, UNSCOPABLES, {});
- module.exports = function(key){
- ArrayProto[UNSCOPABLES][key] = true;
- };
-
-/***/ },
-/* 179 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
- var $export = __webpack_require__(6);
-
- $export($export.P, 'Array', {fill: __webpack_require__(180)});
-
- __webpack_require__(178)('fill');
-
-/***/ },
-/* 180 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
- 'use strict';
- var toObject = __webpack_require__(56)
- , toIndex = __webpack_require__(37)
- , toLength = __webpack_require__(35);
- module.exports = function fill(value /*, start = 0, end = @length */){
- var O = toObject(this)
- , length = toLength(O.length)
- , aLen = arguments.length
- , index = toIndex(aLen > 1 ? arguments[1] : undefined, length)
- , end = aLen > 2 ? arguments[2] : undefined
- , endPos = end === undefined ? length : toIndex(end, length);
- while(endPos > index)O[index++] = value;
- return O;
- };
-
-/***/ },
-/* 181 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
- var $export = __webpack_require__(6)
- , $find = __webpack_require__(164)(5)
- , KEY = 'find'
- , forced = true;
- // Shouldn't skip holes
- if(KEY in [])Array(1)[KEY](function(){ forced = false; });
- $export($export.P + $export.F * forced, 'Array', {
- find: function find(callbackfn/*, that = undefined */){
- return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- }
- });
- __webpack_require__(178)(KEY);
-
-/***/ },
-/* 182 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
- var $export = __webpack_require__(6)
- , $find = __webpack_require__(164)(6)
- , KEY = 'findIndex'
- , forced = true;
- // Shouldn't skip holes
- if(KEY in [])Array(1)[KEY](function(){ forced = false; });
- $export($export.P + $export.F * forced, 'Array', {
- findIndex: function findIndex(callbackfn/*, that = undefined */){
- return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- }
- });
- __webpack_require__(178)(KEY);
-
-/***/ },
-/* 183 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var addToUnscopables = __webpack_require__(178)
- , step = __webpack_require__(184)
- , Iterators = __webpack_require__(135)
- , toIObject = __webpack_require__(30);
-
- // 22.1.3.4 Array.prototype.entries()
- // 22.1.3.13 Array.prototype.keys()
- // 22.1.3.29 Array.prototype.values()
- // 22.1.3.30 Array.prototype[@@iterator]()
- module.exports = __webpack_require__(134)(Array, 'Array', function(iterated, kind){
- this._t = toIObject(iterated); // target
- this._i = 0; // next index
- this._k = kind; // kind
- // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
- }, function(){
- var O = this._t
- , kind = this._k
- , index = this._i++;
- if(!O || index >= O.length){
- this._t = undefined;
- return step(1);
- }
- if(kind == 'keys' )return step(0, index);
- if(kind == 'values')return step(0, O[index]);
- return step(0, [index, O[index]]);
- }, 'values');
-
- // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
- Iterators.Arguments = Iterators.Array;
-
- addToUnscopables('keys');
- addToUnscopables('values');
- addToUnscopables('entries');
-
-/***/ },
-/* 184 */
-/***/ function(module, exports) {
-
- module.exports = function(done, value){
- return {value: value, done: !!done};
- };
-
-/***/ },
-/* 185 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(186)('Array');
-
-/***/ },
-/* 186 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var global = __webpack_require__(2)
- , dP = __webpack_require__(9)
- , DESCRIPTORS = __webpack_require__(4)
- , SPECIES = __webpack_require__(23)('species');
-
- module.exports = function(KEY){
- var C = global[KEY];
- if(DESCRIPTORS && C && !C[SPECIES])dP.f(C, SPECIES, {
- configurable: true,
- get: function(){ return this; }
- });
- };
-
-/***/ },
-/* 187 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , inheritIfRequired = __webpack_require__(80)
- , dP = __webpack_require__(9).f
- , gOPN = __webpack_require__(48).f
- , isRegExp = __webpack_require__(128)
- , $flags = __webpack_require__(188)
- , $RegExp = global.RegExp
- , Base = $RegExp
- , proto = $RegExp.prototype
- , re1 = /a/g
- , re2 = /a/g
- // "new" creates a new object, old webkit buggy here
- , CORRECT_NEW = new $RegExp(re1) !== re1;
-
- if(__webpack_require__(4) && (!CORRECT_NEW || __webpack_require__(5)(function(){
- re2[__webpack_require__(23)('match')] = false;
- // RegExp constructor can alter flags and IsRegExp works correct with @@match
- return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
- }))){
- $RegExp = function RegExp(p, f){
- var tiRE = this instanceof $RegExp
- , piRE = isRegExp(p)
- , fiU = f === undefined;
- return !tiRE && piRE && p.constructor === $RegExp && fiU ? p
- : inheritIfRequired(CORRECT_NEW
- ? new Base(piRE && !fiU ? p.source : p, f)
- : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)
- , tiRE ? this : proto, $RegExp);
- };
- var proxy = function(key){
- key in $RegExp || dP($RegExp, key, {
- configurable: true,
- get: function(){ return Base[key]; },
- set: function(it){ Base[key] = it; }
- });
- };
- for(var keys = gOPN(Base), i = 0; keys.length > i; )proxy(keys[i++]);
- proto.constructor = $RegExp;
- $RegExp.prototype = proto;
- __webpack_require__(16)(global, 'RegExp', $RegExp);
- }
-
- __webpack_require__(186)('RegExp');
-
-/***/ },
-/* 188 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 21.2.5.3 get RegExp.prototype.flags
- var anObject = __webpack_require__(10);
- module.exports = function(){
- var that = anObject(this)
- , result = '';
- if(that.global) result += 'g';
- if(that.ignoreCase) result += 'i';
- if(that.multiline) result += 'm';
- if(that.unicode) result += 'u';
- if(that.sticky) result += 'y';
- return result;
- };
-
-/***/ },
-/* 189 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- __webpack_require__(190);
- var anObject = __webpack_require__(10)
- , $flags = __webpack_require__(188)
- , DESCRIPTORS = __webpack_require__(4)
- , TO_STRING = 'toString'
- , $toString = /./[TO_STRING];
-
- var define = function(fn){
- __webpack_require__(16)(RegExp.prototype, TO_STRING, fn, true);
- };
-
- // 21.2.5.14 RegExp.prototype.toString()
- if(__webpack_require__(5)(function(){ return $toString.call({source: 'a', flags: 'b'}) != '/a/b'; })){
- define(function toString(){
- var R = anObject(this);
- return '/'.concat(R.source, '/',
- 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);
- });
- // FF44- RegExp#toString has a wrong name
- } else if($toString.name != TO_STRING){
- define(function toString(){
- return $toString.call(this);
- });
- }
-
-/***/ },
-/* 190 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 21.2.5.3 get RegExp.prototype.flags()
- if(__webpack_require__(4) && /./g.flags != 'g')__webpack_require__(9).f(RegExp.prototype, 'flags', {
- configurable: true,
- get: __webpack_require__(188)
- });
-
-/***/ },
-/* 191 */
-/***/ function(module, exports, __webpack_require__) {
-
- // @@match logic
- __webpack_require__(192)('match', 1, function(defined, MATCH, $match){
- // 21.1.3.11 String.prototype.match(regexp)
- return [function match(regexp){
- 'use strict';
- var O = defined(this)
- , fn = regexp == undefined ? undefined : regexp[MATCH];
- return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
- }, $match];
- });
-
-/***/ },
-/* 192 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var hide = __webpack_require__(8)
- , redefine = __webpack_require__(16)
- , fails = __webpack_require__(5)
- , defined = __webpack_require__(33)
- , wks = __webpack_require__(23);
-
- module.exports = function(KEY, length, exec){
- var SYMBOL = wks(KEY)
- , fns = exec(defined, SYMBOL, ''[KEY])
- , strfn = fns[0]
- , rxfn = fns[1];
- if(fails(function(){
- var O = {};
- O[SYMBOL] = function(){ return 7; };
- return ''[KEY](O) != 7;
- })){
- redefine(String.prototype, KEY, strfn);
- hide(RegExp.prototype, SYMBOL, length == 2
- // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
- // 21.2.5.11 RegExp.prototype[@@split](string, limit)
- ? function(string, arg){ return rxfn.call(string, this, arg); }
- // 21.2.5.6 RegExp.prototype[@@match](string)
- // 21.2.5.9 RegExp.prototype[@@search](string)
- : function(string){ return rxfn.call(string, this); }
- );
- }
- };
-
-/***/ },
-/* 193 */
-/***/ function(module, exports, __webpack_require__) {
-
- // @@replace logic
- __webpack_require__(192)('replace', 2, function(defined, REPLACE, $replace){
- // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)
- return [function replace(searchValue, replaceValue){
- 'use strict';
- var O = defined(this)
- , fn = searchValue == undefined ? undefined : searchValue[REPLACE];
- return fn !== undefined
- ? fn.call(searchValue, O, replaceValue)
- : $replace.call(String(O), searchValue, replaceValue);
- }, $replace];
- });
-
-/***/ },
-/* 194 */
-/***/ function(module, exports, __webpack_require__) {
-
- // @@search logic
- __webpack_require__(192)('search', 1, function(defined, SEARCH, $search){
- // 21.1.3.15 String.prototype.search(regexp)
- return [function search(regexp){
- 'use strict';
- var O = defined(this)
- , fn = regexp == undefined ? undefined : regexp[SEARCH];
- return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
- }, $search];
- });
-
-/***/ },
-/* 195 */
-/***/ function(module, exports, __webpack_require__) {
-
- // @@split logic
- __webpack_require__(192)('split', 2, function(defined, SPLIT, $split){
- 'use strict';
- var isRegExp = __webpack_require__(128)
- , _split = $split
- , $push = [].push
- , $SPLIT = 'split'
- , LENGTH = 'length'
- , LAST_INDEX = 'lastIndex';
- if(
- 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
- 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
- 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
- '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
- '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
- ''[$SPLIT](/.?/)[LENGTH]
- ){
- var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group
- // based on es5-shim implementation, need to rework it
- $split = function(separator, limit){
- var string = String(this);
- if(separator === undefined && limit === 0)return [];
- // If `separator` is not a regex, use native split
- if(!isRegExp(separator))return _split.call(string, separator, limit);
- var output = [];
- var flags = (separator.ignoreCase ? 'i' : '') +
- (separator.multiline ? 'm' : '') +
- (separator.unicode ? 'u' : '') +
- (separator.sticky ? 'y' : '');
- var lastLastIndex = 0;
- var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;
- // Make `global` and avoid `lastIndex` issues by working with a copy
- var separatorCopy = new RegExp(separator.source, flags + 'g');
- var separator2, match, lastIndex, lastLength, i;
- // Doesn't need flags gy, but they don't hurt
- if(!NPCG)separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\s)', flags);
- while(match = separatorCopy.exec(string)){
- // `separatorCopy.lastIndex` is not reliable cross-browser
- lastIndex = match.index + match[0][LENGTH];
- if(lastIndex > lastLastIndex){
- output.push(string.slice(lastLastIndex, match.index));
- // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG
- if(!NPCG && match[LENGTH] > 1)match[0].replace(separator2, function(){
- for(i = 1; i < arguments[LENGTH] - 2; i++)if(arguments[i] === undefined)match[i] = undefined;
- });
- if(match[LENGTH] > 1 && match.index < string[LENGTH])$push.apply(output, match.slice(1));
- lastLength = match[0][LENGTH];
- lastLastIndex = lastIndex;
- if(output[LENGTH] >= splitLimit)break;
- }
- if(separatorCopy[LAST_INDEX] === match.index)separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
- }
- if(lastLastIndex === string[LENGTH]){
- if(lastLength || !separatorCopy.test(''))output.push('');
- } else output.push(string.slice(lastLastIndex));
- return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
- };
- // Chakra, V8
- } else if('0'[$SPLIT](undefined, 0)[LENGTH]){
- $split = function(separator, limit){
- return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);
- };
- }
- // 21.1.3.17 String.prototype.split(separator, limit)
- return [function split(separator, limit){
- var O = defined(this)
- , fn = separator == undefined ? undefined : separator[SPLIT];
- return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);
- }, $split];
- });
-
-/***/ },
-/* 196 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var LIBRARY = __webpack_require__(26)
- , global = __webpack_require__(2)
- , ctx = __webpack_require__(18)
- , classof = __webpack_require__(73)
- , $export = __webpack_require__(6)
- , isObject = __webpack_require__(11)
- , aFunction = __webpack_require__(19)
- , anInstance = __webpack_require__(197)
- , forOf = __webpack_require__(198)
- , speciesConstructor = __webpack_require__(199)
- , task = __webpack_require__(200).set
- , microtask = __webpack_require__(201)()
- , PROMISE = 'Promise'
- , TypeError = global.TypeError
- , process = global.process
- , $Promise = global[PROMISE]
- , process = global.process
- , isNode = classof(process) == 'process'
- , empty = function(){ /* empty */ }
- , Internal, GenericPromiseCapability, Wrapper;
-
- var USE_NATIVE = !!function(){
- try {
- // correct subclassing with @@species support
- var promise = $Promise.resolve(1)
- , FakePromise = (promise.constructor = {})[__webpack_require__(23)('species')] = function(exec){ exec(empty, empty); };
- // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
- return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;
- } catch(e){ /* empty */ }
- }();
-
- // helpers
- var sameConstructor = function(a, b){
- // with library wrapper special case
- return a === b || a === $Promise && b === Wrapper;
- };
- var isThenable = function(it){
- var then;
- return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
- };
- var newPromiseCapability = function(C){
- return sameConstructor($Promise, C)
- ? new PromiseCapability(C)
- : new GenericPromiseCapability(C);
- };
- var PromiseCapability = GenericPromiseCapability = function(C){
- var resolve, reject;
- this.promise = new C(function($$resolve, $$reject){
- if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor');
- resolve = $$resolve;
- reject = $$reject;
- });
- this.resolve = aFunction(resolve);
- this.reject = aFunction(reject);
- };
- var perform = function(exec){
- try {
- exec();
- } catch(e){
- return {error: e};
- }
- };
- var notify = function(promise, isReject){
- if(promise._n)return;
- promise._n = true;
- var chain = promise._c;
- microtask(function(){
- var value = promise._v
- , ok = promise._s == 1
- , i = 0;
- var run = function(reaction){
- var handler = ok ? reaction.ok : reaction.fail
- , resolve = reaction.resolve
- , reject = reaction.reject
- , domain = reaction.domain
- , result, then;
- try {
- if(handler){
- if(!ok){
- if(promise._h == 2)onHandleUnhandled(promise);
- promise._h = 1;
- }
- if(handler === true)result = value;
- else {
- if(domain)domain.enter();
- result = handler(value);
- if(domain)domain.exit();
- }
- if(result === reaction.promise){
- reject(TypeError('Promise-chain cycle'));
- } else if(then = isThenable(result)){
- then.call(result, resolve, reject);
- } else resolve(result);
- } else reject(value);
- } catch(e){
- reject(e);
- }
- };
- while(chain.length > i)run(chain[i++]); // variable length - can't use forEach
- promise._c = [];
- promise._n = false;
- if(isReject && !promise._h)onUnhandled(promise);
- });
- };
- var onUnhandled = function(promise){
- task.call(global, function(){
- var value = promise._v
- , abrupt, handler, console;
- if(isUnhandled(promise)){
- abrupt = perform(function(){
- if(isNode){
- process.emit('unhandledRejection', value, promise);
- } else if(handler = global.onunhandledrejection){
- handler({promise: promise, reason: value});
- } else if((console = global.console) && console.error){
- console.error('Unhandled promise rejection', value);
- }
- });
- // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
- promise._h = isNode || isUnhandled(promise) ? 2 : 1;
- } promise._a = undefined;
- if(abrupt)throw abrupt.error;
- });
- };
- var isUnhandled = function(promise){
- if(promise._h == 1)return false;
- var chain = promise._a || promise._c
- , i = 0
- , reaction;
- while(chain.length > i){
- reaction = chain[i++];
- if(reaction.fail || !isUnhandled(reaction.promise))return false;
- } return true;
- };
- var onHandleUnhandled = function(promise){
- task.call(global, function(){
- var handler;
- if(isNode){
- process.emit('rejectionHandled', promise);
- } else if(handler = global.onrejectionhandled){
- handler({promise: promise, reason: promise._v});
- }
- });
- };
- var $reject = function(value){
- var promise = this;
- if(promise._d)return;
- promise._d = true;
- promise = promise._w || promise; // unwrap
- promise._v = value;
- promise._s = 2;
- if(!promise._a)promise._a = promise._c.slice();
- notify(promise, true);
- };
- var $resolve = function(value){
- var promise = this
- , then;
- if(promise._d)return;
- promise._d = true;
- promise = promise._w || promise; // unwrap
- try {
- if(promise === value)throw TypeError("Promise can't be resolved itself");
- if(then = isThenable(value)){
- microtask(function(){
- var wrapper = {_w: promise, _d: false}; // wrap
- try {
- then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
- } catch(e){
- $reject.call(wrapper, e);
- }
- });
- } else {
- promise._v = value;
- promise._s = 1;
- notify(promise, false);
- }
- } catch(e){
- $reject.call({_w: promise, _d: false}, e); // wrap
- }
- };
-
- // constructor polyfill
- if(!USE_NATIVE){
- // 25.4.3.1 Promise(executor)
- $Promise = function Promise(executor){
- anInstance(this, $Promise, PROMISE, '_h');
- aFunction(executor);
- Internal.call(this);
- try {
- executor(ctx($resolve, this, 1), ctx($reject, this, 1));
- } catch(err){
- $reject.call(this, err);
- }
- };
- Internal = function Promise(executor){
- this._c = []; // <- awaiting reactions
- this._a = undefined; // <- checked in isUnhandled reactions
- this._s = 0; // <- state
- this._d = false; // <- done
- this._v = undefined; // <- value
- this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
- this._n = false; // <- notify
- };
- Internal.prototype = __webpack_require__(202)($Promise.prototype, {
- // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
- then: function then(onFulfilled, onRejected){
- var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
- reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
- reaction.fail = typeof onRejected == 'function' && onRejected;
- reaction.domain = isNode ? process.domain : undefined;
- this._c.push(reaction);
- if(this._a)this._a.push(reaction);
- if(this._s)notify(this, false);
- return reaction.promise;
- },
- // 25.4.5.1 Promise.prototype.catch(onRejected)
- 'catch': function(onRejected){
- return this.then(undefined, onRejected);
- }
- });
- PromiseCapability = function(){
- var promise = new Internal;
- this.promise = promise;
- this.resolve = ctx($resolve, promise, 1);
- this.reject = ctx($reject, promise, 1);
- };
- }
-
- $export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: $Promise});
- __webpack_require__(22)($Promise, PROMISE);
- __webpack_require__(186)(PROMISE);
- Wrapper = __webpack_require__(7)[PROMISE];
-
- // statics
- $export($export.S + $export.F * !USE_NATIVE, PROMISE, {
- // 25.4.4.5 Promise.reject(r)
- reject: function reject(r){
- var capability = newPromiseCapability(this)
- , $$reject = capability.reject;
- $$reject(r);
- return capability.promise;
- }
- });
- $export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
- // 25.4.4.6 Promise.resolve(x)
- resolve: function resolve(x){
- // instanceof instead of internal slot check because we should fix it without replacement native Promise core
- if(x instanceof $Promise && sameConstructor(x.constructor, this))return x;
- var capability = newPromiseCapability(this)
- , $$resolve = capability.resolve;
- $$resolve(x);
- return capability.promise;
- }
- });
- $export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(157)(function(iter){
- $Promise.all(iter)['catch'](empty);
- })), PROMISE, {
- // 25.4.4.1 Promise.all(iterable)
- all: function all(iterable){
- var C = this
- , capability = newPromiseCapability(C)
- , resolve = capability.resolve
- , reject = capability.reject;
- var abrupt = perform(function(){
- var values = []
- , index = 0
- , remaining = 1;
- forOf(iterable, false, function(promise){
- var $index = index++
- , alreadyCalled = false;
- values.push(undefined);
- remaining++;
- C.resolve(promise).then(function(value){
- if(alreadyCalled)return;
- alreadyCalled = true;
- values[$index] = value;
- --remaining || resolve(values);
- }, reject);
- });
- --remaining || resolve(values);
- });
- if(abrupt)reject(abrupt.error);
- return capability.promise;
- },
- // 25.4.4.4 Promise.race(iterable)
- race: function race(iterable){
- var C = this
- , capability = newPromiseCapability(C)
- , reject = capability.reject;
- var abrupt = perform(function(){
- forOf(iterable, false, function(promise){
- C.resolve(promise).then(capability.resolve, reject);
- });
- });
- if(abrupt)reject(abrupt.error);
- return capability.promise;
- }
- });
-
-/***/ },
-/* 197 */
-/***/ function(module, exports) {
-
- module.exports = function(it, Constructor, name, forbiddenField){
- if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){
- throw TypeError(name + ': incorrect invocation!');
- } return it;
- };
-
-/***/ },
-/* 198 */
-/***/ function(module, exports, __webpack_require__) {
-
- var ctx = __webpack_require__(18)
- , call = __webpack_require__(153)
- , isArrayIter = __webpack_require__(154)
- , anObject = __webpack_require__(10)
- , toLength = __webpack_require__(35)
- , getIterFn = __webpack_require__(156)
- , BREAK = {}
- , RETURN = {};
- var exports = module.exports = function(iterable, entries, fn, that, ITERATOR){
- var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)
- , f = ctx(fn, that, entries ? 2 : 1)
- , index = 0
- , length, step, iterator, result;
- if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');
- // fast case for arrays with default iterator
- if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){
- result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
- if(result === BREAK || result === RETURN)return result;
- } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
- result = call(iterator, f, step.value, entries);
- if(result === BREAK || result === RETURN)return result;
- }
- };
- exports.BREAK = BREAK;
- exports.RETURN = RETURN;
-
-/***/ },
-/* 199 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 7.3.20 SpeciesConstructor(O, defaultConstructor)
- var anObject = __webpack_require__(10)
- , aFunction = __webpack_require__(19)
- , SPECIES = __webpack_require__(23)('species');
- module.exports = function(O, D){
- var C = anObject(O).constructor, S;
- return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
- };
-
-/***/ },
-/* 200 */
-/***/ function(module, exports, __webpack_require__) {
-
- var ctx = __webpack_require__(18)
- , invoke = __webpack_require__(76)
- , html = __webpack_require__(46)
- , cel = __webpack_require__(13)
- , global = __webpack_require__(2)
- , process = global.process
- , setTask = global.setImmediate
- , clearTask = global.clearImmediate
- , MessageChannel = global.MessageChannel
- , counter = 0
- , queue = {}
- , ONREADYSTATECHANGE = 'onreadystatechange'
- , defer, channel, port;
- var run = function(){
- var id = +this;
- if(queue.hasOwnProperty(id)){
- var fn = queue[id];
- delete queue[id];
- fn();
- }
- };
- var listener = function(event){
- run.call(event.data);
- };
- // Node.js 0.9+ & IE10+ has setImmediate, otherwise:
- if(!setTask || !clearTask){
- setTask = function setImmediate(fn){
- var args = [], i = 1;
- while(arguments.length > i)args.push(arguments[i++]);
- queue[++counter] = function(){
- invoke(typeof fn == 'function' ? fn : Function(fn), args);
- };
- defer(counter);
- return counter;
- };
- clearTask = function clearImmediate(id){
- delete queue[id];
- };
- // Node.js 0.8-
- if(__webpack_require__(32)(process) == 'process'){
- defer = function(id){
- process.nextTick(ctx(run, id, 1));
- };
- // Browsers with MessageChannel, includes WebWorkers
- } else if(MessageChannel){
- channel = new MessageChannel;
- port = channel.port2;
- channel.port1.onmessage = listener;
- defer = ctx(port.postMessage, port, 1);
- // Browsers with postMessage, skip WebWorkers
- // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
- } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){
- defer = function(id){
- global.postMessage(id + '', '*');
- };
- global.addEventListener('message', listener, false);
- // IE8-
- } else if(ONREADYSTATECHANGE in cel('script')){
- defer = function(id){
- html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){
- html.removeChild(this);
- run.call(id);
- };
- };
- // Rest old browsers
- } else {
- defer = function(id){
- setTimeout(ctx(run, id, 1), 0);
- };
- }
- }
- module.exports = {
- set: setTask,
- clear: clearTask
- };
-
-/***/ },
-/* 201 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , macrotask = __webpack_require__(200).set
- , Observer = global.MutationObserver || global.WebKitMutationObserver
- , process = global.process
- , Promise = global.Promise
- , isNode = __webpack_require__(32)(process) == 'process';
-
- module.exports = function(){
- var head, last, notify;
-
- var flush = function(){
- var parent, fn;
- if(isNode && (parent = process.domain))parent.exit();
- while(head){
- fn = head.fn;
- head = head.next;
- try {
- fn();
- } catch(e){
- if(head)notify();
- else last = undefined;
- throw e;
- }
- } last = undefined;
- if(parent)parent.enter();
- };
-
- // Node.js
- if(isNode){
- notify = function(){
- process.nextTick(flush);
- };
- // browsers with MutationObserver
- } else if(Observer){
- var toggle = true
- , node = document.createTextNode('');
- new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new
- notify = function(){
- node.data = toggle = !toggle;
- };
- // environments with maybe non-completely correct, but existent Promise
- } else if(Promise && Promise.resolve){
- var promise = Promise.resolve();
- notify = function(){
- promise.then(flush);
- };
- // for other environments - macrotask based on:
- // - setImmediate
- // - MessageChannel
- // - window.postMessag
- // - onreadystatechange
- // - setTimeout
- } else {
- notify = function(){
- // strange IE + webpack dev server bug - use .call(global)
- macrotask.call(global, flush);
- };
- }
-
- return function(fn){
- var task = {fn: fn, next: undefined};
- if(last)last.next = task;
- if(!head){
- head = task;
- notify();
- } last = task;
- };
- };
-
-/***/ },
-/* 202 */
-/***/ function(module, exports, __webpack_require__) {
-
- var redefine = __webpack_require__(16);
- module.exports = function(target, src, safe){
- for(var key in src)redefine(target, key, src[key], safe);
- return target;
- };
-
-/***/ },
-/* 203 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var strong = __webpack_require__(204);
-
- // 23.1 Map Objects
- module.exports = __webpack_require__(205)('Map', function(get){
- return function Map(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
- }, {
- // 23.1.3.6 Map.prototype.get(key)
- get: function get(key){
- var entry = strong.getEntry(this, key);
- return entry && entry.v;
- },
- // 23.1.3.9 Map.prototype.set(key, value)
- set: function set(key, value){
- return strong.def(this, key === 0 ? 0 : key, value);
- }
- }, strong, true);
-
-/***/ },
-/* 204 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var dP = __webpack_require__(9).f
- , create = __webpack_require__(44)
- , redefineAll = __webpack_require__(202)
- , ctx = __webpack_require__(18)
- , anInstance = __webpack_require__(197)
- , defined = __webpack_require__(33)
- , forOf = __webpack_require__(198)
- , $iterDefine = __webpack_require__(134)
- , step = __webpack_require__(184)
- , setSpecies = __webpack_require__(186)
- , DESCRIPTORS = __webpack_require__(4)
- , fastKey = __webpack_require__(20).fastKey
- , SIZE = DESCRIPTORS ? '_s' : 'size';
-
- var getEntry = function(that, key){
- // fast case
- var index = fastKey(key), entry;
- if(index !== 'F')return that._i[index];
- // frozen object case
- for(entry = that._f; entry; entry = entry.n){
- if(entry.k == key)return entry;
- }
- };
-
- module.exports = {
- getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
- var C = wrapper(function(that, iterable){
- anInstance(that, C, NAME, '_i');
- that._i = create(null); // index
- that._f = undefined; // first entry
- that._l = undefined; // last entry
- that[SIZE] = 0; // size
- if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
- });
- redefineAll(C.prototype, {
- // 23.1.3.1 Map.prototype.clear()
- // 23.2.3.2 Set.prototype.clear()
- clear: function clear(){
- for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){
- entry.r = true;
- if(entry.p)entry.p = entry.p.n = undefined;
- delete data[entry.i];
- }
- that._f = that._l = undefined;
- that[SIZE] = 0;
- },
- // 23.1.3.3 Map.prototype.delete(key)
- // 23.2.3.4 Set.prototype.delete(value)
- 'delete': function(key){
- var that = this
- , entry = getEntry(that, key);
- if(entry){
- var next = entry.n
- , prev = entry.p;
- delete that._i[entry.i];
- entry.r = true;
- if(prev)prev.n = next;
- if(next)next.p = prev;
- if(that._f == entry)that._f = next;
- if(that._l == entry)that._l = prev;
- that[SIZE]--;
- } return !!entry;
- },
- // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
- // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
- forEach: function forEach(callbackfn /*, that = undefined */){
- anInstance(this, C, 'forEach');
- var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)
- , entry;
- while(entry = entry ? entry.n : this._f){
- f(entry.v, entry.k, this);
- // revert to the last existing entry
- while(entry && entry.r)entry = entry.p;
- }
- },
- // 23.1.3.7 Map.prototype.has(key)
- // 23.2.3.7 Set.prototype.has(value)
- has: function has(key){
- return !!getEntry(this, key);
- }
- });
- if(DESCRIPTORS)dP(C.prototype, 'size', {
- get: function(){
- return defined(this[SIZE]);
- }
- });
- return C;
- },
- def: function(that, key, value){
- var entry = getEntry(that, key)
- , prev, index;
- // change existing entry
- if(entry){
- entry.v = value;
- // create new entry
- } else {
- that._l = entry = {
- i: index = fastKey(key, true), // <- index
- k: key, // <- key
- v: value, // <- value
- p: prev = that._l, // <- previous entry
- n: undefined, // <- next entry
- r: false // <- removed
- };
- if(!that._f)that._f = entry;
- if(prev)prev.n = entry;
- that[SIZE]++;
- // add to index
- if(index !== 'F')that._i[index] = entry;
- } return that;
- },
- getEntry: getEntry,
- setStrong: function(C, NAME, IS_MAP){
- // add .keys, .values, .entries, [@@iterator]
- // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
- $iterDefine(C, NAME, function(iterated, kind){
- this._t = iterated; // target
- this._k = kind; // kind
- this._l = undefined; // previous
- }, function(){
- var that = this
- , kind = that._k
- , entry = that._l;
- // revert to the last existing entry
- while(entry && entry.r)entry = entry.p;
- // get next entry
- if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){
- // or finish the iteration
- that._t = undefined;
- return step(1);
- }
- // return step by kind
- if(kind == 'keys' )return step(0, entry.k);
- if(kind == 'values')return step(0, entry.v);
- return step(0, [entry.k, entry.v]);
- }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);
-
- // add [@@species], 23.1.2.2, 23.2.2.2
- setSpecies(NAME);
- }
- };
-
-/***/ },
-/* 205 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var global = __webpack_require__(2)
- , $export = __webpack_require__(6)
- , redefine = __webpack_require__(16)
- , redefineAll = __webpack_require__(202)
- , meta = __webpack_require__(20)
- , forOf = __webpack_require__(198)
- , anInstance = __webpack_require__(197)
- , isObject = __webpack_require__(11)
- , fails = __webpack_require__(5)
- , $iterDetect = __webpack_require__(157)
- , setToStringTag = __webpack_require__(22)
- , inheritIfRequired = __webpack_require__(80);
-
- module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){
- var Base = global[NAME]
- , C = Base
- , ADDER = IS_MAP ? 'set' : 'add'
- , proto = C && C.prototype
- , O = {};
- var fixMethod = function(KEY){
- var fn = proto[KEY];
- redefine(proto, KEY,
- KEY == 'delete' ? function(a){
- return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
- } : KEY == 'has' ? function has(a){
- return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
- } : KEY == 'get' ? function get(a){
- return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
- } : KEY == 'add' ? function add(a){ fn.call(this, a === 0 ? 0 : a); return this; }
- : function set(a, b){ fn.call(this, a === 0 ? 0 : a, b); return this; }
- );
- };
- if(typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){
- new C().entries().next();
- }))){
- // create collection constructor
- C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
- redefineAll(C.prototype, methods);
- meta.NEED = true;
- } else {
- var instance = new C
- // early implementations not supports chaining
- , HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance
- // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false
- , THROWS_ON_PRIMITIVES = fails(function(){ instance.has(1); })
- // most early implementations doesn't supports iterables, most modern - not close it correctly
- , ACCEPT_ITERABLES = $iterDetect(function(iter){ new C(iter); }) // eslint-disable-line no-new
- // for early implementations -0 and +0 not the same
- , BUGGY_ZERO = !IS_WEAK && fails(function(){
- // V8 ~ Chromium 42- fails only with 5+ elements
- var $instance = new C()
- , index = 5;
- while(index--)$instance[ADDER](index, index);
- return !$instance.has(-0);
- });
- if(!ACCEPT_ITERABLES){
- C = wrapper(function(target, iterable){
- anInstance(target, C, NAME);
- var that = inheritIfRequired(new Base, target, C);
- if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
- return that;
- });
- C.prototype = proto;
- proto.constructor = C;
- }
- if(THROWS_ON_PRIMITIVES || BUGGY_ZERO){
- fixMethod('delete');
- fixMethod('has');
- IS_MAP && fixMethod('get');
- }
- if(BUGGY_ZERO || HASNT_CHAINING)fixMethod(ADDER);
- // weak collections should not contains .clear method
- if(IS_WEAK && proto.clear)delete proto.clear;
- }
-
- setToStringTag(C, NAME);
-
- O[NAME] = C;
- $export($export.G + $export.W + $export.F * (C != Base), O);
-
- if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);
-
- return C;
- };
-
-/***/ },
-/* 206 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var strong = __webpack_require__(204);
-
- // 23.2 Set Objects
- module.exports = __webpack_require__(205)('Set', function(get){
- return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
- }, {
- // 23.2.3.1 Set.prototype.add(value)
- add: function add(value){
- return strong.def(this, value = value === 0 ? 0 : value, value);
- }
- }, strong);
-
-/***/ },
-/* 207 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var each = __webpack_require__(164)(0)
- , redefine = __webpack_require__(16)
- , meta = __webpack_require__(20)
- , assign = __webpack_require__(67)
- , weak = __webpack_require__(208)
- , isObject = __webpack_require__(11)
- , getWeak = meta.getWeak
- , isExtensible = Object.isExtensible
- , uncaughtFrozenStore = weak.ufstore
- , tmp = {}
- , InternalMap;
-
- var wrapper = function(get){
- return function WeakMap(){
- return get(this, arguments.length > 0 ? arguments[0] : undefined);
- };
- };
-
- var methods = {
- // 23.3.3.3 WeakMap.prototype.get(key)
- get: function get(key){
- if(isObject(key)){
- var data = getWeak(key);
- if(data === true)return uncaughtFrozenStore(this).get(key);
- return data ? data[this._i] : undefined;
- }
- },
- // 23.3.3.5 WeakMap.prototype.set(key, value)
- set: function set(key, value){
- return weak.def(this, key, value);
- }
- };
-
- // 23.3 WeakMap Objects
- var $WeakMap = module.exports = __webpack_require__(205)('WeakMap', wrapper, methods, weak, true, true);
-
- // IE11 WeakMap frozen keys fix
- if(new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){
- InternalMap = weak.getConstructor(wrapper);
- assign(InternalMap.prototype, methods);
- meta.NEED = true;
- each(['delete', 'has', 'get', 'set'], function(key){
- var proto = $WeakMap.prototype
- , method = proto[key];
- redefine(proto, key, function(a, b){
- // store frozen objects on internal weakmap shim
- if(isObject(a) && !isExtensible(a)){
- if(!this._f)this._f = new InternalMap;
- var result = this._f[key](a, b);
- return key == 'set' ? this : result;
- // store all the rest on native weakmap
- } return method.call(this, a, b);
- });
- });
- }
-
-/***/ },
-/* 208 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var redefineAll = __webpack_require__(202)
- , getWeak = __webpack_require__(20).getWeak
- , anObject = __webpack_require__(10)
- , isObject = __webpack_require__(11)
- , anInstance = __webpack_require__(197)
- , forOf = __webpack_require__(198)
- , createArrayMethod = __webpack_require__(164)
- , $has = __webpack_require__(3)
- , arrayFind = createArrayMethod(5)
- , arrayFindIndex = createArrayMethod(6)
- , id = 0;
-
- // fallback for uncaught frozen keys
- var uncaughtFrozenStore = function(that){
- return that._l || (that._l = new UncaughtFrozenStore);
- };
- var UncaughtFrozenStore = function(){
- this.a = [];
- };
- var findUncaughtFrozen = function(store, key){
- return arrayFind(store.a, function(it){
- return it[0] === key;
- });
- };
- UncaughtFrozenStore.prototype = {
- get: function(key){
- var entry = findUncaughtFrozen(this, key);
- if(entry)return entry[1];
- },
- has: function(key){
- return !!findUncaughtFrozen(this, key);
- },
- set: function(key, value){
- var entry = findUncaughtFrozen(this, key);
- if(entry)entry[1] = value;
- else this.a.push([key, value]);
- },
- 'delete': function(key){
- var index = arrayFindIndex(this.a, function(it){
- return it[0] === key;
- });
- if(~index)this.a.splice(index, 1);
- return !!~index;
- }
- };
-
- module.exports = {
- getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
- var C = wrapper(function(that, iterable){
- anInstance(that, C, NAME, '_i');
- that._i = id++; // collection id
- that._l = undefined; // leak store for uncaught frozen objects
- if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
- });
- redefineAll(C.prototype, {
- // 23.3.3.2 WeakMap.prototype.delete(key)
- // 23.4.3.3 WeakSet.prototype.delete(value)
- 'delete': function(key){
- if(!isObject(key))return false;
- var data = getWeak(key);
- if(data === true)return uncaughtFrozenStore(this)['delete'](key);
- return data && $has(data, this._i) && delete data[this._i];
- },
- // 23.3.3.4 WeakMap.prototype.has(key)
- // 23.4.3.4 WeakSet.prototype.has(value)
- has: function has(key){
- if(!isObject(key))return false;
- var data = getWeak(key);
- if(data === true)return uncaughtFrozenStore(this).has(key);
- return data && $has(data, this._i);
- }
- });
- return C;
- },
- def: function(that, key, value){
- var data = getWeak(anObject(key), true);
- if(data === true)uncaughtFrozenStore(that).set(key, value);
- else data[that._i] = value;
- return that;
- },
- ufstore: uncaughtFrozenStore
- };
-
-/***/ },
-/* 209 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var weak = __webpack_require__(208);
-
- // 23.4 WeakSet Objects
- __webpack_require__(205)('WeakSet', function(get){
- return function WeakSet(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
- }, {
- // 23.4.3.1 WeakSet.prototype.add(value)
- add: function add(value){
- return weak.def(this, value, true);
- }
- }, weak, false, true);
-
-/***/ },
-/* 210 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
- var $export = __webpack_require__(6)
- , aFunction = __webpack_require__(19)
- , anObject = __webpack_require__(10)
- , rApply = (__webpack_require__(2).Reflect || {}).apply
- , fApply = Function.apply;
- // MS Edge argumentsList argument is optional
- $export($export.S + $export.F * !__webpack_require__(5)(function(){
- rApply(function(){});
- }), 'Reflect', {
- apply: function apply(target, thisArgument, argumentsList){
- var T = aFunction(target)
- , L = anObject(argumentsList);
- return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);
- }
- });
-
-/***/ },
-/* 211 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
- var $export = __webpack_require__(6)
- , create = __webpack_require__(44)
- , aFunction = __webpack_require__(19)
- , anObject = __webpack_require__(10)
- , isObject = __webpack_require__(11)
- , fails = __webpack_require__(5)
- , bind = __webpack_require__(75)
- , rConstruct = (__webpack_require__(2).Reflect || {}).construct;
-
- // MS Edge supports only 2 arguments and argumentsList argument is optional
- // FF Nightly sets third argument as `new.target`, but does not create `this` from it
- var NEW_TARGET_BUG = fails(function(){
- function F(){}
- return !(rConstruct(function(){}, [], F) instanceof F);
- });
- var ARGS_BUG = !fails(function(){
- rConstruct(function(){});
- });
-
- $export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
- construct: function construct(Target, args /*, newTarget*/){
- aFunction(Target);
- anObject(args);
- var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
- if(ARGS_BUG && !NEW_TARGET_BUG)return rConstruct(Target, args, newTarget);
- if(Target == newTarget){
- // w/o altered newTarget, optimization for 0-4 arguments
- switch(args.length){
- case 0: return new Target;
- case 1: return new Target(args[0]);
- case 2: return new Target(args[0], args[1]);
- case 3: return new Target(args[0], args[1], args[2]);
- case 4: return new Target(args[0], args[1], args[2], args[3]);
- }
- // w/o altered newTarget, lot of arguments case
- var $args = [null];
- $args.push.apply($args, args);
- return new (bind.apply(Target, $args));
- }
- // with altered newTarget, not support built-in constructors
- var proto = newTarget.prototype
- , instance = create(isObject(proto) ? proto : Object.prototype)
- , result = Function.apply.call(Target, instance, args);
- return isObject(result) ? result : instance;
- }
- });
-
-/***/ },
-/* 212 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
- var dP = __webpack_require__(9)
- , $export = __webpack_require__(6)
- , anObject = __webpack_require__(10)
- , toPrimitive = __webpack_require__(14);
-
- // MS Edge has broken Reflect.defineProperty - throwing instead of returning false
- $export($export.S + $export.F * __webpack_require__(5)(function(){
- Reflect.defineProperty(dP.f({}, 1, {value: 1}), 1, {value: 2});
- }), 'Reflect', {
- defineProperty: function defineProperty(target, propertyKey, attributes){
- anObject(target);
- propertyKey = toPrimitive(propertyKey, true);
- anObject(attributes);
- try {
- dP.f(target, propertyKey, attributes);
- return true;
- } catch(e){
- return false;
- }
- }
- });
-
-/***/ },
-/* 213 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.4 Reflect.deleteProperty(target, propertyKey)
- var $export = __webpack_require__(6)
- , gOPD = __webpack_require__(49).f
- , anObject = __webpack_require__(10);
-
- $export($export.S, 'Reflect', {
- deleteProperty: function deleteProperty(target, propertyKey){
- var desc = gOPD(anObject(target), propertyKey);
- return desc && !desc.configurable ? false : delete target[propertyKey];
- }
- });
-
-/***/ },
-/* 214 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 26.1.5 Reflect.enumerate(target)
- var $export = __webpack_require__(6)
- , anObject = __webpack_require__(10);
- var Enumerate = function(iterated){
- this._t = anObject(iterated); // target
- this._i = 0; // next index
- var keys = this._k = [] // keys
- , key;
- for(key in iterated)keys.push(key);
- };
- __webpack_require__(136)(Enumerate, 'Object', function(){
- var that = this
- , keys = that._k
- , key;
- do {
- if(that._i >= keys.length)return {value: undefined, done: true};
- } while(!((key = keys[that._i++]) in that._t));
- return {value: key, done: false};
- });
-
- $export($export.S, 'Reflect', {
- enumerate: function enumerate(target){
- return new Enumerate(target);
- }
- });
-
-/***/ },
-/* 215 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.6 Reflect.get(target, propertyKey [, receiver])
- var gOPD = __webpack_require__(49)
- , getPrototypeOf = __webpack_require__(57)
- , has = __webpack_require__(3)
- , $export = __webpack_require__(6)
- , isObject = __webpack_require__(11)
- , anObject = __webpack_require__(10);
-
- function get(target, propertyKey/*, receiver*/){
- var receiver = arguments.length < 3 ? target : arguments[2]
- , desc, proto;
- if(anObject(target) === receiver)return target[propertyKey];
- if(desc = gOPD.f(target, propertyKey))return has(desc, 'value')
- ? desc.value
- : desc.get !== undefined
- ? desc.get.call(receiver)
- : undefined;
- if(isObject(proto = getPrototypeOf(target)))return get(proto, propertyKey, receiver);
- }
-
- $export($export.S, 'Reflect', {get: get});
-
-/***/ },
-/* 216 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
- var gOPD = __webpack_require__(49)
- , $export = __webpack_require__(6)
- , anObject = __webpack_require__(10);
-
- $export($export.S, 'Reflect', {
- getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey){
- return gOPD.f(anObject(target), propertyKey);
- }
- });
-
-/***/ },
-/* 217 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.8 Reflect.getPrototypeOf(target)
- var $export = __webpack_require__(6)
- , getProto = __webpack_require__(57)
- , anObject = __webpack_require__(10);
-
- $export($export.S, 'Reflect', {
- getPrototypeOf: function getPrototypeOf(target){
- return getProto(anObject(target));
- }
- });
-
-/***/ },
-/* 218 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.9 Reflect.has(target, propertyKey)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Reflect', {
- has: function has(target, propertyKey){
- return propertyKey in target;
- }
- });
-
-/***/ },
-/* 219 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.10 Reflect.isExtensible(target)
- var $export = __webpack_require__(6)
- , anObject = __webpack_require__(10)
- , $isExtensible = Object.isExtensible;
-
- $export($export.S, 'Reflect', {
- isExtensible: function isExtensible(target){
- anObject(target);
- return $isExtensible ? $isExtensible(target) : true;
- }
- });
-
-/***/ },
-/* 220 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.11 Reflect.ownKeys(target)
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Reflect', {ownKeys: __webpack_require__(221)});
-
-/***/ },
-/* 221 */
-/***/ function(module, exports, __webpack_require__) {
-
- // all object keys, includes non-enumerable and symbols
- var gOPN = __webpack_require__(48)
- , gOPS = __webpack_require__(41)
- , anObject = __webpack_require__(10)
- , Reflect = __webpack_require__(2).Reflect;
- module.exports = Reflect && Reflect.ownKeys || function ownKeys(it){
- var keys = gOPN.f(anObject(it))
- , getSymbols = gOPS.f;
- return getSymbols ? keys.concat(getSymbols(it)) : keys;
- };
-
-/***/ },
-/* 222 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.12 Reflect.preventExtensions(target)
- var $export = __webpack_require__(6)
- , anObject = __webpack_require__(10)
- , $preventExtensions = Object.preventExtensions;
-
- $export($export.S, 'Reflect', {
- preventExtensions: function preventExtensions(target){
- anObject(target);
- try {
- if($preventExtensions)$preventExtensions(target);
- return true;
- } catch(e){
- return false;
- }
- }
- });
-
-/***/ },
-/* 223 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
- var dP = __webpack_require__(9)
- , gOPD = __webpack_require__(49)
- , getPrototypeOf = __webpack_require__(57)
- , has = __webpack_require__(3)
- , $export = __webpack_require__(6)
- , createDesc = __webpack_require__(15)
- , anObject = __webpack_require__(10)
- , isObject = __webpack_require__(11);
-
- function set(target, propertyKey, V/*, receiver*/){
- var receiver = arguments.length < 4 ? target : arguments[3]
- , ownDesc = gOPD.f(anObject(target), propertyKey)
- , existingDescriptor, proto;
- if(!ownDesc){
- if(isObject(proto = getPrototypeOf(target))){
- return set(proto, propertyKey, V, receiver);
- }
- ownDesc = createDesc(0);
- }
- if(has(ownDesc, 'value')){
- if(ownDesc.writable === false || !isObject(receiver))return false;
- existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);
- existingDescriptor.value = V;
- dP.f(receiver, propertyKey, existingDescriptor);
- return true;
- }
- return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
- }
-
- $export($export.S, 'Reflect', {set: set});
-
-/***/ },
-/* 224 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 26.1.14 Reflect.setPrototypeOf(target, proto)
- var $export = __webpack_require__(6)
- , setProto = __webpack_require__(71);
-
- if(setProto)$export($export.S, 'Reflect', {
- setPrototypeOf: function setPrototypeOf(target, proto){
- setProto.check(target, proto);
- try {
- setProto.set(target, proto);
- return true;
- } catch(e){
- return false;
- }
- }
- });
-
-/***/ },
-/* 225 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 20.3.3.1 / 15.9.4.4 Date.now()
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Date', {now: function(){ return new Date().getTime(); }});
-
-/***/ },
-/* 226 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toObject = __webpack_require__(56)
- , toPrimitive = __webpack_require__(14);
-
- $export($export.P + $export.F * __webpack_require__(5)(function(){
- return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({toISOString: function(){ return 1; }}) !== 1;
- }), 'Date', {
- toJSON: function toJSON(key){
- var O = toObject(this)
- , pv = toPrimitive(O);
- return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();
- }
- });
-
-/***/ },
-/* 227 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
- var $export = __webpack_require__(6)
- , fails = __webpack_require__(5)
- , getTime = Date.prototype.getTime;
-
- var lz = function(num){
- return num > 9 ? num : '0' + num;
- };
-
- // PhantomJS / old WebKit has a broken implementations
- $export($export.P + $export.F * (fails(function(){
- return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';
- }) || !fails(function(){
- new Date(NaN).toISOString();
- })), 'Date', {
- toISOString: function toISOString(){
- if(!isFinite(getTime.call(this)))throw RangeError('Invalid time value');
- var d = this
- , y = d.getUTCFullYear()
- , m = d.getUTCMilliseconds()
- , s = y < 0 ? '-' : y > 9999 ? '+' : '';
- return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
- '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
- 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
- ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
- }
- });
-
-/***/ },
-/* 228 */
-/***/ function(module, exports, __webpack_require__) {
-
- var DateProto = Date.prototype
- , INVALID_DATE = 'Invalid Date'
- , TO_STRING = 'toString'
- , $toString = DateProto[TO_STRING]
- , getTime = DateProto.getTime;
- if(new Date(NaN) + '' != INVALID_DATE){
- __webpack_require__(16)(DateProto, TO_STRING, function toString(){
- var value = getTime.call(this);
- return value === value ? $toString.call(this) : INVALID_DATE;
- });
- }
-
-/***/ },
-/* 229 */
-/***/ function(module, exports, __webpack_require__) {
-
- var TO_PRIMITIVE = __webpack_require__(23)('toPrimitive')
- , proto = Date.prototype;
-
- if(!(TO_PRIMITIVE in proto))__webpack_require__(8)(proto, TO_PRIMITIVE, __webpack_require__(230));
-
-/***/ },
-/* 230 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var anObject = __webpack_require__(10)
- , toPrimitive = __webpack_require__(14)
- , NUMBER = 'number';
-
- module.exports = function(hint){
- if(hint !== 'string' && hint !== NUMBER && hint !== 'default')throw TypeError('Incorrect hint');
- return toPrimitive(anObject(this), hint != NUMBER);
- };
-
-/***/ },
-/* 231 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , $typed = __webpack_require__(232)
- , buffer = __webpack_require__(233)
- , anObject = __webpack_require__(10)
- , toIndex = __webpack_require__(37)
- , toLength = __webpack_require__(35)
- , isObject = __webpack_require__(11)
- , ArrayBuffer = __webpack_require__(2).ArrayBuffer
- , speciesConstructor = __webpack_require__(199)
- , $ArrayBuffer = buffer.ArrayBuffer
- , $DataView = buffer.DataView
- , $isView = $typed.ABV && ArrayBuffer.isView
- , $slice = $ArrayBuffer.prototype.slice
- , VIEW = $typed.VIEW
- , ARRAY_BUFFER = 'ArrayBuffer';
-
- $export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), {ArrayBuffer: $ArrayBuffer});
-
- $export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {
- // 24.1.3.1 ArrayBuffer.isView(arg)
- isView: function isView(it){
- return $isView && $isView(it) || isObject(it) && VIEW in it;
- }
- });
-
- $export($export.P + $export.U + $export.F * __webpack_require__(5)(function(){
- return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
- }), ARRAY_BUFFER, {
- // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
- slice: function slice(start, end){
- if($slice !== undefined && end === undefined)return $slice.call(anObject(this), start); // FF fix
- var len = anObject(this).byteLength
- , first = toIndex(start, len)
- , final = toIndex(end === undefined ? len : end, len)
- , result = new (speciesConstructor(this, $ArrayBuffer))(toLength(final - first))
- , viewS = new $DataView(this)
- , viewT = new $DataView(result)
- , index = 0;
- while(first < final){
- viewT.setUint8(index++, viewS.getUint8(first++));
- } return result;
- }
- });
-
- __webpack_require__(186)(ARRAY_BUFFER);
-
-/***/ },
-/* 232 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(2)
- , hide = __webpack_require__(8)
- , uid = __webpack_require__(17)
- , TYPED = uid('typed_array')
- , VIEW = uid('view')
- , ABV = !!(global.ArrayBuffer && global.DataView)
- , CONSTR = ABV
- , i = 0, l = 9, Typed;
-
- var TypedArrayConstructors = (
- 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'
- ).split(',');
-
- while(i < l){
- if(Typed = global[TypedArrayConstructors[i++]]){
- hide(Typed.prototype, TYPED, true);
- hide(Typed.prototype, VIEW, true);
- } else CONSTR = false;
- }
-
- module.exports = {
- ABV: ABV,
- CONSTR: CONSTR,
- TYPED: TYPED,
- VIEW: VIEW
- };
-
-/***/ },
-/* 233 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var global = __webpack_require__(2)
- , DESCRIPTORS = __webpack_require__(4)
- , LIBRARY = __webpack_require__(26)
- , $typed = __webpack_require__(232)
- , hide = __webpack_require__(8)
- , redefineAll = __webpack_require__(202)
- , fails = __webpack_require__(5)
- , anInstance = __webpack_require__(197)
- , toInteger = __webpack_require__(36)
- , toLength = __webpack_require__(35)
- , gOPN = __webpack_require__(48).f
- , dP = __webpack_require__(9).f
- , arrayFill = __webpack_require__(180)
- , setToStringTag = __webpack_require__(22)
- , ARRAY_BUFFER = 'ArrayBuffer'
- , DATA_VIEW = 'DataView'
- , PROTOTYPE = 'prototype'
- , WRONG_LENGTH = 'Wrong length!'
- , WRONG_INDEX = 'Wrong index!'
- , $ArrayBuffer = global[ARRAY_BUFFER]
- , $DataView = global[DATA_VIEW]
- , Math = global.Math
- , RangeError = global.RangeError
- , Infinity = global.Infinity
- , BaseBuffer = $ArrayBuffer
- , abs = Math.abs
- , pow = Math.pow
- , floor = Math.floor
- , log = Math.log
- , LN2 = Math.LN2
- , BUFFER = 'buffer'
- , BYTE_LENGTH = 'byteLength'
- , BYTE_OFFSET = 'byteOffset'
- , $BUFFER = DESCRIPTORS ? '_b' : BUFFER
- , $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH
- , $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;
-
- // IEEE754 conversions based on https://github.com/feross/ieee754
- var packIEEE754 = function(value, mLen, nBytes){
- var buffer = Array(nBytes)
- , eLen = nBytes * 8 - mLen - 1
- , eMax = (1 << eLen) - 1
- , eBias = eMax >> 1
- , rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0
- , i = 0
- , s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0
- , e, m, c;
- value = abs(value)
- if(value != value || value === Infinity){
- m = value != value ? 1 : 0;
- e = eMax;
- } else {
- e = floor(log(value) / LN2);
- if(value * (c = pow(2, -e)) < 1){
- e--;
- c *= 2;
- }
- if(e + eBias >= 1){
- value += rt / c;
- } else {
- value += rt * pow(2, 1 - eBias);
- }
- if(value * c >= 2){
- e++;
- c /= 2;
- }
- if(e + eBias >= eMax){
- m = 0;
- e = eMax;
- } else if(e + eBias >= 1){
- m = (value * c - 1) * pow(2, mLen);
- e = e + eBias;
- } else {
- m = value * pow(2, eBias - 1) * pow(2, mLen);
- e = 0;
- }
- }
- for(; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);
- e = e << mLen | m;
- eLen += mLen;
- for(; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);
- buffer[--i] |= s * 128;
- return buffer;
- };
- var unpackIEEE754 = function(buffer, mLen, nBytes){
- var eLen = nBytes * 8 - mLen - 1
- , eMax = (1 << eLen) - 1
- , eBias = eMax >> 1
- , nBits = eLen - 7
- , i = nBytes - 1
- , s = buffer[i--]
- , e = s & 127
- , m;
- s >>= 7;
- for(; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);
- m = e & (1 << -nBits) - 1;
- e >>= -nBits;
- nBits += mLen;
- for(; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);
- if(e === 0){
- e = 1 - eBias;
- } else if(e === eMax){
- return m ? NaN : s ? -Infinity : Infinity;
- } else {
- m = m + pow(2, mLen);
- e = e - eBias;
- } return (s ? -1 : 1) * m * pow(2, e - mLen);
- };
-
- var unpackI32 = function(bytes){
- return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];
- };
- var packI8 = function(it){
- return [it & 0xff];
- };
- var packI16 = function(it){
- return [it & 0xff, it >> 8 & 0xff];
- };
- var packI32 = function(it){
- return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];
- };
- var packF64 = function(it){
- return packIEEE754(it, 52, 8);
- };
- var packF32 = function(it){
- return packIEEE754(it, 23, 4);
- };
-
- var addGetter = function(C, key, internal){
- dP(C[PROTOTYPE], key, {get: function(){ return this[internal]; }});
- };
-
- var get = function(view, bytes, index, isLittleEndian){
- var numIndex = +index
- , intIndex = toInteger(numIndex);
- if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);
- var store = view[$BUFFER]._b
- , start = intIndex + view[$OFFSET]
- , pack = store.slice(start, start + bytes);
- return isLittleEndian ? pack : pack.reverse();
- };
- var set = function(view, bytes, index, conversion, value, isLittleEndian){
- var numIndex = +index
- , intIndex = toInteger(numIndex);
- if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);
- var store = view[$BUFFER]._b
- , start = intIndex + view[$OFFSET]
- , pack = conversion(+value);
- for(var i = 0; i < bytes; i++)store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];
- };
-
- var validateArrayBufferArguments = function(that, length){
- anInstance(that, $ArrayBuffer, ARRAY_BUFFER);
- var numberLength = +length
- , byteLength = toLength(numberLength);
- if(numberLength != byteLength)throw RangeError(WRONG_LENGTH);
- return byteLength;
- };
-
- if(!$typed.ABV){
- $ArrayBuffer = function ArrayBuffer(length){
- var byteLength = validateArrayBufferArguments(this, length);
- this._b = arrayFill.call(Array(byteLength), 0);
- this[$LENGTH] = byteLength;
- };
-
- $DataView = function DataView(buffer, byteOffset, byteLength){
- anInstance(this, $DataView, DATA_VIEW);
- anInstance(buffer, $ArrayBuffer, DATA_VIEW);
- var bufferLength = buffer[$LENGTH]
- , offset = toInteger(byteOffset);
- if(offset < 0 || offset > bufferLength)throw RangeError('Wrong offset!');
- byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
- if(offset + byteLength > bufferLength)throw RangeError(WRONG_LENGTH);
- this[$BUFFER] = buffer;
- this[$OFFSET] = offset;
- this[$LENGTH] = byteLength;
- };
-
- if(DESCRIPTORS){
- addGetter($ArrayBuffer, BYTE_LENGTH, '_l');
- addGetter($DataView, BUFFER, '_b');
- addGetter($DataView, BYTE_LENGTH, '_l');
- addGetter($DataView, BYTE_OFFSET, '_o');
- }
-
- redefineAll($DataView[PROTOTYPE], {
- getInt8: function getInt8(byteOffset){
- return get(this, 1, byteOffset)[0] << 24 >> 24;
- },
- getUint8: function getUint8(byteOffset){
- return get(this, 1, byteOffset)[0];
- },
- getInt16: function getInt16(byteOffset /*, littleEndian */){
- var bytes = get(this, 2, byteOffset, arguments[1]);
- return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
- },
- getUint16: function getUint16(byteOffset /*, littleEndian */){
- var bytes = get(this, 2, byteOffset, arguments[1]);
- return bytes[1] << 8 | bytes[0];
- },
- getInt32: function getInt32(byteOffset /*, littleEndian */){
- return unpackI32(get(this, 4, byteOffset, arguments[1]));
- },
- getUint32: function getUint32(byteOffset /*, littleEndian */){
- return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;
- },
- getFloat32: function getFloat32(byteOffset /*, littleEndian */){
- return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);
- },
- getFloat64: function getFloat64(byteOffset /*, littleEndian */){
- return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);
- },
- setInt8: function setInt8(byteOffset, value){
- set(this, 1, byteOffset, packI8, value);
- },
- setUint8: function setUint8(byteOffset, value){
- set(this, 1, byteOffset, packI8, value);
- },
- setInt16: function setInt16(byteOffset, value /*, littleEndian */){
- set(this, 2, byteOffset, packI16, value, arguments[2]);
- },
- setUint16: function setUint16(byteOffset, value /*, littleEndian */){
- set(this, 2, byteOffset, packI16, value, arguments[2]);
- },
- setInt32: function setInt32(byteOffset, value /*, littleEndian */){
- set(this, 4, byteOffset, packI32, value, arguments[2]);
- },
- setUint32: function setUint32(byteOffset, value /*, littleEndian */){
- set(this, 4, byteOffset, packI32, value, arguments[2]);
- },
- setFloat32: function setFloat32(byteOffset, value /*, littleEndian */){
- set(this, 4, byteOffset, packF32, value, arguments[2]);
- },
- setFloat64: function setFloat64(byteOffset, value /*, littleEndian */){
- set(this, 8, byteOffset, packF64, value, arguments[2]);
- }
- });
- } else {
- if(!fails(function(){
- new $ArrayBuffer; // eslint-disable-line no-new
- }) || !fails(function(){
- new $ArrayBuffer(.5); // eslint-disable-line no-new
- })){
- $ArrayBuffer = function ArrayBuffer(length){
- return new BaseBuffer(validateArrayBufferArguments(this, length));
- };
- var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];
- for(var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j; ){
- if(!((key = keys[j++]) in $ArrayBuffer))hide($ArrayBuffer, key, BaseBuffer[key]);
- };
- if(!LIBRARY)ArrayBufferProto.constructor = $ArrayBuffer;
- }
- // iOS Safari 7.x bug
- var view = new $DataView(new $ArrayBuffer(2))
- , $setInt8 = $DataView[PROTOTYPE].setInt8;
- view.setInt8(0, 2147483648);
- view.setInt8(1, 2147483649);
- if(view.getInt8(0) || !view.getInt8(1))redefineAll($DataView[PROTOTYPE], {
- setInt8: function setInt8(byteOffset, value){
- $setInt8.call(this, byteOffset, value << 24 >> 24);
- },
- setUint8: function setUint8(byteOffset, value){
- $setInt8.call(this, byteOffset, value << 24 >> 24);
- }
- }, true);
- }
- setToStringTag($ArrayBuffer, ARRAY_BUFFER);
- setToStringTag($DataView, DATA_VIEW);
- hide($DataView[PROTOTYPE], $typed.VIEW, true);
- exports[ARRAY_BUFFER] = $ArrayBuffer;
- exports[DATA_VIEW] = $DataView;
-
-/***/ },
-/* 234 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6);
- $export($export.G + $export.W + $export.F * !__webpack_require__(232).ABV, {
- DataView: __webpack_require__(233).DataView
- });
-
-/***/ },
-/* 235 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(236)('Int8', 1, function(init){
- return function Int8Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 236 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- if(__webpack_require__(4)){
- var LIBRARY = __webpack_require__(26)
- , global = __webpack_require__(2)
- , fails = __webpack_require__(5)
- , $export = __webpack_require__(6)
- , $typed = __webpack_require__(232)
- , $buffer = __webpack_require__(233)
- , ctx = __webpack_require__(18)
- , anInstance = __webpack_require__(197)
- , propertyDesc = __webpack_require__(15)
- , hide = __webpack_require__(8)
- , redefineAll = __webpack_require__(202)
- , toInteger = __webpack_require__(36)
- , toLength = __webpack_require__(35)
- , toIndex = __webpack_require__(37)
- , toPrimitive = __webpack_require__(14)
- , has = __webpack_require__(3)
- , same = __webpack_require__(69)
- , classof = __webpack_require__(73)
- , isObject = __webpack_require__(11)
- , toObject = __webpack_require__(56)
- , isArrayIter = __webpack_require__(154)
- , create = __webpack_require__(44)
- , getPrototypeOf = __webpack_require__(57)
- , gOPN = __webpack_require__(48).f
- , getIterFn = __webpack_require__(156)
- , uid = __webpack_require__(17)
- , wks = __webpack_require__(23)
- , createArrayMethod = __webpack_require__(164)
- , createArrayIncludes = __webpack_require__(34)
- , speciesConstructor = __webpack_require__(199)
- , ArrayIterators = __webpack_require__(183)
- , Iterators = __webpack_require__(135)
- , $iterDetect = __webpack_require__(157)
- , setSpecies = __webpack_require__(186)
- , arrayFill = __webpack_require__(180)
- , arrayCopyWithin = __webpack_require__(177)
- , $DP = __webpack_require__(9)
- , $GOPD = __webpack_require__(49)
- , dP = $DP.f
- , gOPD = $GOPD.f
- , RangeError = global.RangeError
- , TypeError = global.TypeError
- , Uint8Array = global.Uint8Array
- , ARRAY_BUFFER = 'ArrayBuffer'
- , SHARED_BUFFER = 'Shared' + ARRAY_BUFFER
- , BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'
- , PROTOTYPE = 'prototype'
- , ArrayProto = Array[PROTOTYPE]
- , $ArrayBuffer = $buffer.ArrayBuffer
- , $DataView = $buffer.DataView
- , arrayForEach = createArrayMethod(0)
- , arrayFilter = createArrayMethod(2)
- , arraySome = createArrayMethod(3)
- , arrayEvery = createArrayMethod(4)
- , arrayFind = createArrayMethod(5)
- , arrayFindIndex = createArrayMethod(6)
- , arrayIncludes = createArrayIncludes(true)
- , arrayIndexOf = createArrayIncludes(false)
- , arrayValues = ArrayIterators.values
- , arrayKeys = ArrayIterators.keys
- , arrayEntries = ArrayIterators.entries
- , arrayLastIndexOf = ArrayProto.lastIndexOf
- , arrayReduce = ArrayProto.reduce
- , arrayReduceRight = ArrayProto.reduceRight
- , arrayJoin = ArrayProto.join
- , arraySort = ArrayProto.sort
- , arraySlice = ArrayProto.slice
- , arrayToString = ArrayProto.toString
- , arrayToLocaleString = ArrayProto.toLocaleString
- , ITERATOR = wks('iterator')
- , TAG = wks('toStringTag')
- , TYPED_CONSTRUCTOR = uid('typed_constructor')
- , DEF_CONSTRUCTOR = uid('def_constructor')
- , ALL_CONSTRUCTORS = $typed.CONSTR
- , TYPED_ARRAY = $typed.TYPED
- , VIEW = $typed.VIEW
- , WRONG_LENGTH = 'Wrong length!';
-
- var $map = createArrayMethod(1, function(O, length){
- return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);
- });
-
- var LITTLE_ENDIAN = fails(function(){
- return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;
- });
-
- var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function(){
- new Uint8Array(1).set({});
- });
-
- var strictToLength = function(it, SAME){
- if(it === undefined)throw TypeError(WRONG_LENGTH);
- var number = +it
- , length = toLength(it);
- if(SAME && !same(number, length))throw RangeError(WRONG_LENGTH);
- return length;
- };
-
- var toOffset = function(it, BYTES){
- var offset = toInteger(it);
- if(offset < 0 || offset % BYTES)throw RangeError('Wrong offset!');
- return offset;
- };
-
- var validate = function(it){
- if(isObject(it) && TYPED_ARRAY in it)return it;
- throw TypeError(it + ' is not a typed array!');
- };
-
- var allocate = function(C, length){
- if(!(isObject(C) && TYPED_CONSTRUCTOR in C)){
- throw TypeError('It is not a typed array constructor!');
- } return new C(length);
- };
-
- var speciesFromList = function(O, list){
- return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);
- };
-
- var fromList = function(C, list){
- var index = 0
- , length = list.length
- , result = allocate(C, length);
- while(length > index)result[index] = list[index++];
- return result;
- };
-
- var addGetter = function(it, key, internal){
- dP(it, key, {get: function(){ return this._d[internal]; }});
- };
-
- var $from = function from(source /*, mapfn, thisArg */){
- var O = toObject(source)
- , aLen = arguments.length
- , mapfn = aLen > 1 ? arguments[1] : undefined
- , mapping = mapfn !== undefined
- , iterFn = getIterFn(O)
- , i, length, values, result, step, iterator;
- if(iterFn != undefined && !isArrayIter(iterFn)){
- for(iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++){
- values.push(step.value);
- } O = values;
- }
- if(mapping && aLen > 2)mapfn = ctx(mapfn, arguments[2], 2);
- for(i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++){
- result[i] = mapping ? mapfn(O[i], i) : O[i];
- }
- return result;
- };
-
- var $of = function of(/*...items*/){
- var index = 0
- , length = arguments.length
- , result = allocate(this, length);
- while(length > index)result[index] = arguments[index++];
- return result;
- };
-
- // iOS Safari 6.x fails here
- var TO_LOCALE_BUG = !!Uint8Array && fails(function(){ arrayToLocaleString.call(new Uint8Array(1)); });
-
- var $toLocaleString = function toLocaleString(){
- return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);
- };
-
- var proto = {
- copyWithin: function copyWithin(target, start /*, end */){
- return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
- },
- every: function every(callbackfn /*, thisArg */){
- return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- fill: function fill(value /*, start, end */){ // eslint-disable-line no-unused-vars
- return arrayFill.apply(validate(this), arguments);
- },
- filter: function filter(callbackfn /*, thisArg */){
- return speciesFromList(this, arrayFilter(validate(this), callbackfn,
- arguments.length > 1 ? arguments[1] : undefined));
- },
- find: function find(predicate /*, thisArg */){
- return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
- },
- findIndex: function findIndex(predicate /*, thisArg */){
- return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
- },
- forEach: function forEach(callbackfn /*, thisArg */){
- arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- indexOf: function indexOf(searchElement /*, fromIndex */){
- return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
- },
- includes: function includes(searchElement /*, fromIndex */){
- return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
- },
- join: function join(separator){ // eslint-disable-line no-unused-vars
- return arrayJoin.apply(validate(this), arguments);
- },
- lastIndexOf: function lastIndexOf(searchElement /*, fromIndex */){ // eslint-disable-line no-unused-vars
- return arrayLastIndexOf.apply(validate(this), arguments);
- },
- map: function map(mapfn /*, thisArg */){
- return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- reduce: function reduce(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
- return arrayReduce.apply(validate(this), arguments);
- },
- reduceRight: function reduceRight(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
- return arrayReduceRight.apply(validate(this), arguments);
- },
- reverse: function reverse(){
- var that = this
- , length = validate(that).length
- , middle = Math.floor(length / 2)
- , index = 0
- , value;
- while(index < middle){
- value = that[index];
- that[index++] = that[--length];
- that[length] = value;
- } return that;
- },
- some: function some(callbackfn /*, thisArg */){
- return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- sort: function sort(comparefn){
- return arraySort.call(validate(this), comparefn);
- },
- subarray: function subarray(begin, end){
- var O = validate(this)
- , length = O.length
- , $begin = toIndex(begin, length);
- return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(
- O.buffer,
- O.byteOffset + $begin * O.BYTES_PER_ELEMENT,
- toLength((end === undefined ? length : toIndex(end, length)) - $begin)
- );
- }
- };
-
- var $slice = function slice(start, end){
- return speciesFromList(this, arraySlice.call(validate(this), start, end));
- };
-
- var $set = function set(arrayLike /*, offset */){
- validate(this);
- var offset = toOffset(arguments[1], 1)
- , length = this.length
- , src = toObject(arrayLike)
- , len = toLength(src.length)
- , index = 0;
- if(len + offset > length)throw RangeError(WRONG_LENGTH);
- while(index < len)this[offset + index] = src[index++];
- };
-
- var $iterators = {
- entries: function entries(){
- return arrayEntries.call(validate(this));
- },
- keys: function keys(){
- return arrayKeys.call(validate(this));
- },
- values: function values(){
- return arrayValues.call(validate(this));
- }
- };
-
- var isTAIndex = function(target, key){
- return isObject(target)
- && target[TYPED_ARRAY]
- && typeof key != 'symbol'
- && key in target
- && String(+key) == String(key);
- };
- var $getDesc = function getOwnPropertyDescriptor(target, key){
- return isTAIndex(target, key = toPrimitive(key, true))
- ? propertyDesc(2, target[key])
- : gOPD(target, key);
- };
- var $setDesc = function defineProperty(target, key, desc){
- if(isTAIndex(target, key = toPrimitive(key, true))
- && isObject(desc)
- && has(desc, 'value')
- && !has(desc, 'get')
- && !has(desc, 'set')
- // TODO: add validation descriptor w/o calling accessors
- && !desc.configurable
- && (!has(desc, 'writable') || desc.writable)
- && (!has(desc, 'enumerable') || desc.enumerable)
- ){
- target[key] = desc.value;
- return target;
- } else return dP(target, key, desc);
- };
-
- if(!ALL_CONSTRUCTORS){
- $GOPD.f = $getDesc;
- $DP.f = $setDesc;
- }
-
- $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {
- getOwnPropertyDescriptor: $getDesc,
- defineProperty: $setDesc
- });
-
- if(fails(function(){ arrayToString.call({}); })){
- arrayToString = arrayToLocaleString = function toString(){
- return arrayJoin.call(this);
- }
- }
-
- var $TypedArrayPrototype$ = redefineAll({}, proto);
- redefineAll($TypedArrayPrototype$, $iterators);
- hide($TypedArrayPrototype$, ITERATOR, $iterators.values);
- redefineAll($TypedArrayPrototype$, {
- slice: $slice,
- set: $set,
- constructor: function(){ /* noop */ },
- toString: arrayToString,
- toLocaleString: $toLocaleString
- });
- addGetter($TypedArrayPrototype$, 'buffer', 'b');
- addGetter($TypedArrayPrototype$, 'byteOffset', 'o');
- addGetter($TypedArrayPrototype$, 'byteLength', 'l');
- addGetter($TypedArrayPrototype$, 'length', 'e');
- dP($TypedArrayPrototype$, TAG, {
- get: function(){ return this[TYPED_ARRAY]; }
- });
-
- module.exports = function(KEY, BYTES, wrapper, CLAMPED){
- CLAMPED = !!CLAMPED;
- var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'
- , ISNT_UINT8 = NAME != 'Uint8Array'
- , GETTER = 'get' + KEY
- , SETTER = 'set' + KEY
- , TypedArray = global[NAME]
- , Base = TypedArray || {}
- , TAC = TypedArray && getPrototypeOf(TypedArray)
- , FORCED = !TypedArray || !$typed.ABV
- , O = {}
- , TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];
- var getter = function(that, index){
- var data = that._d;
- return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);
- };
- var setter = function(that, index, value){
- var data = that._d;
- if(CLAMPED)value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;
- data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);
- };
- var addElement = function(that, index){
- dP(that, index, {
- get: function(){
- return getter(this, index);
- },
- set: function(value){
- return setter(this, index, value);
- },
- enumerable: true
- });
- };
- if(FORCED){
- TypedArray = wrapper(function(that, data, $offset, $length){
- anInstance(that, TypedArray, NAME, '_d');
- var index = 0
- , offset = 0
- , buffer, byteLength, length, klass;
- if(!isObject(data)){
- length = strictToLength(data, true)
- byteLength = length * BYTES;
- buffer = new $ArrayBuffer(byteLength);
- } else if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){
- buffer = data;
- offset = toOffset($offset, BYTES);
- var $len = data.byteLength;
- if($length === undefined){
- if($len % BYTES)throw RangeError(WRONG_LENGTH);
- byteLength = $len - offset;
- if(byteLength < 0)throw RangeError(WRONG_LENGTH);
- } else {
- byteLength = toLength($length) * BYTES;
- if(byteLength + offset > $len)throw RangeError(WRONG_LENGTH);
- }
- length = byteLength / BYTES;
- } else if(TYPED_ARRAY in data){
- return fromList(TypedArray, data);
- } else {
- return $from.call(TypedArray, data);
- }
- hide(that, '_d', {
- b: buffer,
- o: offset,
- l: byteLength,
- e: length,
- v: new $DataView(buffer)
- });
- while(index < length)addElement(that, index++);
- });
- TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);
- hide(TypedArrayPrototype, 'constructor', TypedArray);
- } else if(!$iterDetect(function(iter){
- // V8 works with iterators, but fails in many other cases
- // https://code.google.com/p/v8/issues/detail?id=4552
- new TypedArray(null); // eslint-disable-line no-new
- new TypedArray(iter); // eslint-disable-line no-new
- }, true)){
- TypedArray = wrapper(function(that, data, $offset, $length){
- anInstance(that, TypedArray, NAME);
- var klass;
- // `ws` module bug, temporarily remove validation length for Uint8Array
- // https://github.com/websockets/ws/pull/645
- if(!isObject(data))return new Base(strictToLength(data, ISNT_UINT8));
- if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){
- return $length !== undefined
- ? new Base(data, toOffset($offset, BYTES), $length)
- : $offset !== undefined
- ? new Base(data, toOffset($offset, BYTES))
- : new Base(data);
- }
- if(TYPED_ARRAY in data)return fromList(TypedArray, data);
- return $from.call(TypedArray, data);
- });
- arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function(key){
- if(!(key in TypedArray))hide(TypedArray, key, Base[key]);
- });
- TypedArray[PROTOTYPE] = TypedArrayPrototype;
- if(!LIBRARY)TypedArrayPrototype.constructor = TypedArray;
- }
- var $nativeIterator = TypedArrayPrototype[ITERATOR]
- , CORRECT_ITER_NAME = !!$nativeIterator && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined)
- , $iterator = $iterators.values;
- hide(TypedArray, TYPED_CONSTRUCTOR, true);
- hide(TypedArrayPrototype, TYPED_ARRAY, NAME);
- hide(TypedArrayPrototype, VIEW, true);
- hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);
-
- if(CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)){
- dP(TypedArrayPrototype, TAG, {
- get: function(){ return NAME; }
- });
- }
-
- O[NAME] = TypedArray;
-
- $export($export.G + $export.W + $export.F * (TypedArray != Base), O);
-
- $export($export.S, NAME, {
- BYTES_PER_ELEMENT: BYTES,
- from: $from,
- of: $of
- });
-
- if(!(BYTES_PER_ELEMENT in TypedArrayPrototype))hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);
-
- $export($export.P, NAME, proto);
-
- setSpecies(NAME);
-
- $export($export.P + $export.F * FORCED_SET, NAME, {set: $set});
-
- $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);
-
- $export($export.P + $export.F * (TypedArrayPrototype.toString != arrayToString), NAME, {toString: arrayToString});
-
- $export($export.P + $export.F * fails(function(){
- new TypedArray(1).slice();
- }), NAME, {slice: $slice});
-
- $export($export.P + $export.F * (fails(function(){
- return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString()
- }) || !fails(function(){
- TypedArrayPrototype.toLocaleString.call([1, 2]);
- })), NAME, {toLocaleString: $toLocaleString});
-
- Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;
- if(!LIBRARY && !CORRECT_ITER_NAME)hide(TypedArrayPrototype, ITERATOR, $iterator);
- };
- } else module.exports = function(){ /* empty */ };
-
-/***/ },
-/* 237 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(236)('Uint8', 1, function(init){
- return function Uint8Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 238 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(236)('Uint8', 1, function(init){
- return function Uint8ClampedArray(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- }, true);
-
-/***/ },
-/* 239 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(236)('Int16', 2, function(init){
- return function Int16Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 240 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(236)('Uint16', 2, function(init){
- return function Uint16Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 241 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(236)('Int32', 4, function(init){
- return function Int32Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 242 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(236)('Uint32', 4, function(init){
- return function Uint32Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 243 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(236)('Float32', 4, function(init){
- return function Float32Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 244 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(236)('Float64', 8, function(init){
- return function Float64Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
- });
-
-/***/ },
-/* 245 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/tc39/Array.prototype.includes
- var $export = __webpack_require__(6)
- , $includes = __webpack_require__(34)(true);
-
- $export($export.P, 'Array', {
- includes: function includes(el /*, fromIndex = 0 */){
- return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
- }
- });
-
- __webpack_require__(178)('includes');
-
-/***/ },
-/* 246 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/mathiasbynens/String.prototype.at
- var $export = __webpack_require__(6)
- , $at = __webpack_require__(125)(true);
-
- $export($export.P, 'String', {
- at: function at(pos){
- return $at(this, pos);
- }
- });
-
-/***/ },
-/* 247 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/tc39/proposal-string-pad-start-end
- var $export = __webpack_require__(6)
- , $pad = __webpack_require__(248);
-
- $export($export.P, 'String', {
- padStart: function padStart(maxLength /*, fillString = ' ' */){
- return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
- }
- });
-
-/***/ },
-/* 248 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/tc39/proposal-string-pad-start-end
- var toLength = __webpack_require__(35)
- , repeat = __webpack_require__(85)
- , defined = __webpack_require__(33);
-
- module.exports = function(that, maxLength, fillString, left){
- var S = String(defined(that))
- , stringLength = S.length
- , fillStr = fillString === undefined ? ' ' : String(fillString)
- , intMaxLength = toLength(maxLength);
- if(intMaxLength <= stringLength || fillStr == '')return S;
- var fillLen = intMaxLength - stringLength
- , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
- if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);
- return left ? stringFiller + S : S + stringFiller;
- };
-
-
-/***/ },
-/* 249 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/tc39/proposal-string-pad-start-end
- var $export = __webpack_require__(6)
- , $pad = __webpack_require__(248);
-
- $export($export.P, 'String', {
- padEnd: function padEnd(maxLength /*, fillString = ' ' */){
- return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
- }
- });
-
-/***/ },
-/* 250 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/sebmarkbage/ecmascript-string-left-right-trim
- __webpack_require__(81)('trimLeft', function($trim){
- return function trimLeft(){
- return $trim(this, 1);
- };
- }, 'trimStart');
-
-/***/ },
-/* 251 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/sebmarkbage/ecmascript-string-left-right-trim
- __webpack_require__(81)('trimRight', function($trim){
- return function trimRight(){
- return $trim(this, 2);
- };
- }, 'trimEnd');
-
-/***/ },
-/* 252 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://tc39.github.io/String.prototype.matchAll/
- var $export = __webpack_require__(6)
- , defined = __webpack_require__(33)
- , toLength = __webpack_require__(35)
- , isRegExp = __webpack_require__(128)
- , getFlags = __webpack_require__(188)
- , RegExpProto = RegExp.prototype;
-
- var $RegExpStringIterator = function(regexp, string){
- this._r = regexp;
- this._s = string;
- };
-
- __webpack_require__(136)($RegExpStringIterator, 'RegExp String', function next(){
- var match = this._r.exec(this._s);
- return {value: match, done: match === null};
- });
-
- $export($export.P, 'String', {
- matchAll: function matchAll(regexp){
- defined(this);
- if(!isRegExp(regexp))throw TypeError(regexp + ' is not a regexp!');
- var S = String(this)
- , flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp)
- , rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);
- rx.lastIndex = toLength(regexp.lastIndex);
- return new $RegExpStringIterator(rx, S);
- }
- });
-
-/***/ },
-/* 253 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(25)('asyncIterator');
-
-/***/ },
-/* 254 */
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(25)('observable');
-
-/***/ },
-/* 255 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/tc39/proposal-object-getownpropertydescriptors
- var $export = __webpack_require__(6)
- , ownKeys = __webpack_require__(221)
- , toIObject = __webpack_require__(30)
- , gOPD = __webpack_require__(49)
- , createProperty = __webpack_require__(155);
-
- $export($export.S, 'Object', {
- getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){
- var O = toIObject(object)
- , getDesc = gOPD.f
- , keys = ownKeys(O)
- , result = {}
- , i = 0
- , key;
- while(keys.length > i)createProperty(result, key = keys[i++], getDesc(O, key));
- return result;
- }
- });
-
-/***/ },
-/* 256 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/tc39/proposal-object-values-entries
- var $export = __webpack_require__(6)
- , $values = __webpack_require__(257)(false);
-
- $export($export.S, 'Object', {
- values: function values(it){
- return $values(it);
- }
- });
-
-/***/ },
-/* 257 */
-/***/ function(module, exports, __webpack_require__) {
-
- var getKeys = __webpack_require__(28)
- , toIObject = __webpack_require__(30)
- , isEnum = __webpack_require__(42).f;
- module.exports = function(isEntries){
- return function(it){
- var O = toIObject(it)
- , keys = getKeys(O)
- , length = keys.length
- , i = 0
- , result = []
- , key;
- while(length > i)if(isEnum.call(O, key = keys[i++])){
- result.push(isEntries ? [key, O[key]] : O[key]);
- } return result;
- };
- };
-
-/***/ },
-/* 258 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/tc39/proposal-object-values-entries
- var $export = __webpack_require__(6)
- , $entries = __webpack_require__(257)(true);
-
- $export($export.S, 'Object', {
- entries: function entries(it){
- return $entries(it);
- }
- });
-
-/***/ },
-/* 259 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toObject = __webpack_require__(56)
- , aFunction = __webpack_require__(19)
- , $defineProperty = __webpack_require__(9);
-
- // B.2.2.2 Object.prototype.__defineGetter__(P, getter)
- __webpack_require__(4) && $export($export.P + __webpack_require__(260), 'Object', {
- __defineGetter__: function __defineGetter__(P, getter){
- $defineProperty.f(toObject(this), P, {get: aFunction(getter), enumerable: true, configurable: true});
- }
- });
-
-/***/ },
-/* 260 */
-/***/ function(module, exports, __webpack_require__) {
-
- // Forced replacement prototype accessors methods
- module.exports = __webpack_require__(26)|| !__webpack_require__(5)(function(){
- var K = Math.random();
- // In FF throws only define methods
- __defineSetter__.call(null, K, function(){ /* empty */});
- delete __webpack_require__(2)[K];
- });
-
-/***/ },
-/* 261 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toObject = __webpack_require__(56)
- , aFunction = __webpack_require__(19)
- , $defineProperty = __webpack_require__(9);
-
- // B.2.2.3 Object.prototype.__defineSetter__(P, setter)
- __webpack_require__(4) && $export($export.P + __webpack_require__(260), 'Object', {
- __defineSetter__: function __defineSetter__(P, setter){
- $defineProperty.f(toObject(this), P, {set: aFunction(setter), enumerable: true, configurable: true});
- }
- });
-
-/***/ },
-/* 262 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toObject = __webpack_require__(56)
- , toPrimitive = __webpack_require__(14)
- , getPrototypeOf = __webpack_require__(57)
- , getOwnPropertyDescriptor = __webpack_require__(49).f;
-
- // B.2.2.4 Object.prototype.__lookupGetter__(P)
- __webpack_require__(4) && $export($export.P + __webpack_require__(260), 'Object', {
- __lookupGetter__: function __lookupGetter__(P){
- var O = toObject(this)
- , K = toPrimitive(P, true)
- , D;
- do {
- if(D = getOwnPropertyDescriptor(O, K))return D.get;
- } while(O = getPrototypeOf(O));
- }
- });
-
-/***/ },
-/* 263 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var $export = __webpack_require__(6)
- , toObject = __webpack_require__(56)
- , toPrimitive = __webpack_require__(14)
- , getPrototypeOf = __webpack_require__(57)
- , getOwnPropertyDescriptor = __webpack_require__(49).f;
-
- // B.2.2.5 Object.prototype.__lookupSetter__(P)
- __webpack_require__(4) && $export($export.P + __webpack_require__(260), 'Object', {
- __lookupSetter__: function __lookupSetter__(P){
- var O = toObject(this)
- , K = toPrimitive(P, true)
- , D;
- do {
- if(D = getOwnPropertyDescriptor(O, K))return D.set;
- } while(O = getPrototypeOf(O));
- }
- });
-
-/***/ },
-/* 264 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var $export = __webpack_require__(6);
-
- $export($export.P + $export.R, 'Map', {toJSON: __webpack_require__(265)('Map')});
-
-/***/ },
-/* 265 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var classof = __webpack_require__(73)
- , from = __webpack_require__(266);
- module.exports = function(NAME){
- return function toJSON(){
- if(classof(this) != NAME)throw TypeError(NAME + "#toJSON isn't generic");
- return from(this);
- };
- };
-
-/***/ },
-/* 266 */
-/***/ function(module, exports, __webpack_require__) {
-
- var forOf = __webpack_require__(198);
-
- module.exports = function(iter, ITERATOR){
- var result = [];
- forOf(iter, false, result.push, result, ITERATOR);
- return result;
- };
-
-
-/***/ },
-/* 267 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var $export = __webpack_require__(6);
-
- $export($export.P + $export.R, 'Set', {toJSON: __webpack_require__(265)('Set')});
-
-/***/ },
-/* 268 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/ljharb/proposal-global
- var $export = __webpack_require__(6);
-
- $export($export.S, 'System', {global: __webpack_require__(2)});
-
-/***/ },
-/* 269 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/ljharb/proposal-is-error
- var $export = __webpack_require__(6)
- , cof = __webpack_require__(32);
-
- $export($export.S, 'Error', {
- isError: function isError(it){
- return cof(it) === 'Error';
- }
- });
-
-/***/ },
-/* 270 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- iaddh: function iaddh(x0, x1, y0, y1){
- var $x0 = x0 >>> 0
- , $x1 = x1 >>> 0
- , $y0 = y0 >>> 0;
- return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;
- }
- });
-
-/***/ },
-/* 271 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- isubh: function isubh(x0, x1, y0, y1){
- var $x0 = x0 >>> 0
- , $x1 = x1 >>> 0
- , $y0 = y0 >>> 0;
- return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;
- }
- });
-
-/***/ },
-/* 272 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- imulh: function imulh(u, v){
- var UINT16 = 0xffff
- , $u = +u
- , $v = +v
- , u0 = $u & UINT16
- , v0 = $v & UINT16
- , u1 = $u >> 16
- , v1 = $v >> 16
- , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
- return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);
- }
- });
-
-/***/ },
-/* 273 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
- var $export = __webpack_require__(6);
-
- $export($export.S, 'Math', {
- umulh: function umulh(u, v){
- var UINT16 = 0xffff
- , $u = +u
- , $v = +v
- , u0 = $u & UINT16
- , v0 = $v & UINT16
- , u1 = $u >>> 16
- , v1 = $v >>> 16
- , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
- return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);
- }
- });
-
-/***/ },
-/* 274 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(275)
- , anObject = __webpack_require__(10)
- , toMetaKey = metadata.key
- , ordinaryDefineOwnMetadata = metadata.set;
-
- metadata.exp({defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey){
- ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));
- }});
-
-/***/ },
-/* 275 */
-/***/ function(module, exports, __webpack_require__) {
-
- var Map = __webpack_require__(203)
- , $export = __webpack_require__(6)
- , shared = __webpack_require__(21)('metadata')
- , store = shared.store || (shared.store = new (__webpack_require__(207)));
-
- var getOrCreateMetadataMap = function(target, targetKey, create){
- var targetMetadata = store.get(target);
- if(!targetMetadata){
- if(!create)return undefined;
- store.set(target, targetMetadata = new Map);
- }
- var keyMetadata = targetMetadata.get(targetKey);
- if(!keyMetadata){
- if(!create)return undefined;
- targetMetadata.set(targetKey, keyMetadata = new Map);
- } return keyMetadata;
- };
- var ordinaryHasOwnMetadata = function(MetadataKey, O, P){
- var metadataMap = getOrCreateMetadataMap(O, P, false);
- return metadataMap === undefined ? false : metadataMap.has(MetadataKey);
- };
- var ordinaryGetOwnMetadata = function(MetadataKey, O, P){
- var metadataMap = getOrCreateMetadataMap(O, P, false);
- return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);
- };
- var ordinaryDefineOwnMetadata = function(MetadataKey, MetadataValue, O, P){
- getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);
- };
- var ordinaryOwnMetadataKeys = function(target, targetKey){
- var metadataMap = getOrCreateMetadataMap(target, targetKey, false)
- , keys = [];
- if(metadataMap)metadataMap.forEach(function(_, key){ keys.push(key); });
- return keys;
- };
- var toMetaKey = function(it){
- return it === undefined || typeof it == 'symbol' ? it : String(it);
- };
- var exp = function(O){
- $export($export.S, 'Reflect', O);
- };
-
- module.exports = {
- store: store,
- map: getOrCreateMetadataMap,
- has: ordinaryHasOwnMetadata,
- get: ordinaryGetOwnMetadata,
- set: ordinaryDefineOwnMetadata,
- keys: ordinaryOwnMetadataKeys,
- key: toMetaKey,
- exp: exp
- };
-
-/***/ },
-/* 276 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(275)
- , anObject = __webpack_require__(10)
- , toMetaKey = metadata.key
- , getOrCreateMetadataMap = metadata.map
- , store = metadata.store;
-
- metadata.exp({deleteMetadata: function deleteMetadata(metadataKey, target /*, targetKey */){
- var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2])
- , metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);
- if(metadataMap === undefined || !metadataMap['delete'](metadataKey))return false;
- if(metadataMap.size)return true;
- var targetMetadata = store.get(target);
- targetMetadata['delete'](targetKey);
- return !!targetMetadata.size || store['delete'](target);
- }});
-
-/***/ },
-/* 277 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(275)
- , anObject = __webpack_require__(10)
- , getPrototypeOf = __webpack_require__(57)
- , ordinaryHasOwnMetadata = metadata.has
- , ordinaryGetOwnMetadata = metadata.get
- , toMetaKey = metadata.key;
-
- var ordinaryGetMetadata = function(MetadataKey, O, P){
- var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
- if(hasOwn)return ordinaryGetOwnMetadata(MetadataKey, O, P);
- var parent = getPrototypeOf(O);
- return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;
- };
-
- metadata.exp({getMetadata: function getMetadata(metadataKey, target /*, targetKey */){
- return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
- }});
-
-/***/ },
-/* 278 */
-/***/ function(module, exports, __webpack_require__) {
-
- var Set = __webpack_require__(206)
- , from = __webpack_require__(266)
- , metadata = __webpack_require__(275)
- , anObject = __webpack_require__(10)
- , getPrototypeOf = __webpack_require__(57)
- , ordinaryOwnMetadataKeys = metadata.keys
- , toMetaKey = metadata.key;
-
- var ordinaryMetadataKeys = function(O, P){
- var oKeys = ordinaryOwnMetadataKeys(O, P)
- , parent = getPrototypeOf(O);
- if(parent === null)return oKeys;
- var pKeys = ordinaryMetadataKeys(parent, P);
- return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;
- };
-
- metadata.exp({getMetadataKeys: function getMetadataKeys(target /*, targetKey */){
- return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
- }});
-
-/***/ },
-/* 279 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(275)
- , anObject = __webpack_require__(10)
- , ordinaryGetOwnMetadata = metadata.get
- , toMetaKey = metadata.key;
-
- metadata.exp({getOwnMetadata: function getOwnMetadata(metadataKey, target /*, targetKey */){
- return ordinaryGetOwnMetadata(metadataKey, anObject(target)
- , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
- }});
-
-/***/ },
-/* 280 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(275)
- , anObject = __webpack_require__(10)
- , ordinaryOwnMetadataKeys = metadata.keys
- , toMetaKey = metadata.key;
-
- metadata.exp({getOwnMetadataKeys: function getOwnMetadataKeys(target /*, targetKey */){
- return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
- }});
-
-/***/ },
-/* 281 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(275)
- , anObject = __webpack_require__(10)
- , getPrototypeOf = __webpack_require__(57)
- , ordinaryHasOwnMetadata = metadata.has
- , toMetaKey = metadata.key;
-
- var ordinaryHasMetadata = function(MetadataKey, O, P){
- var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
- if(hasOwn)return true;
- var parent = getPrototypeOf(O);
- return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;
- };
-
- metadata.exp({hasMetadata: function hasMetadata(metadataKey, target /*, targetKey */){
- return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
- }});
-
-/***/ },
-/* 282 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(275)
- , anObject = __webpack_require__(10)
- , ordinaryHasOwnMetadata = metadata.has
- , toMetaKey = metadata.key;
-
- metadata.exp({hasOwnMetadata: function hasOwnMetadata(metadataKey, target /*, targetKey */){
- return ordinaryHasOwnMetadata(metadataKey, anObject(target)
- , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
- }});
-
-/***/ },
-/* 283 */
-/***/ function(module, exports, __webpack_require__) {
-
- var metadata = __webpack_require__(275)
- , anObject = __webpack_require__(10)
- , aFunction = __webpack_require__(19)
- , toMetaKey = metadata.key
- , ordinaryDefineOwnMetadata = metadata.set;
-
- metadata.exp({metadata: function metadata(metadataKey, metadataValue){
- return function decorator(target, targetKey){
- ordinaryDefineOwnMetadata(
- metadataKey, metadataValue,
- (targetKey !== undefined ? anObject : aFunction)(target),
- toMetaKey(targetKey)
- );
- };
- }});
-
-/***/ },
-/* 284 */
-/***/ function(module, exports, __webpack_require__) {
-
- // https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask
- var $export = __webpack_require__(6)
- , microtask = __webpack_require__(201)()
- , process = __webpack_require__(2).process
- , isNode = __webpack_require__(32)(process) == 'process';
-
- $export($export.G, {
- asap: function asap(fn){
- var domain = isNode && process.domain;
- microtask(domain ? domain.bind(fn) : fn);
- }
- });
-
-/***/ },
-/* 285 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- // https://github.com/zenparsing/es-observable
- var $export = __webpack_require__(6)
- , global = __webpack_require__(2)
- , core = __webpack_require__(7)
- , microtask = __webpack_require__(201)()
- , OBSERVABLE = __webpack_require__(23)('observable')
- , aFunction = __webpack_require__(19)
- , anObject = __webpack_require__(10)
- , anInstance = __webpack_require__(197)
- , redefineAll = __webpack_require__(202)
- , hide = __webpack_require__(8)
- , forOf = __webpack_require__(198)
- , RETURN = forOf.RETURN;
-
- var getMethod = function(fn){
- return fn == null ? undefined : aFunction(fn);
- };
-
- var cleanupSubscription = function(subscription){
- var cleanup = subscription._c;
- if(cleanup){
- subscription._c = undefined;
- cleanup();
- }
- };
-
- var subscriptionClosed = function(subscription){
- return subscription._o === undefined;
- };
-
- var closeSubscription = function(subscription){
- if(!subscriptionClosed(subscription)){
- subscription._o = undefined;
- cleanupSubscription(subscription);
- }
- };
-
- var Subscription = function(observer, subscriber){
- anObject(observer);
- this._c = undefined;
- this._o = observer;
- observer = new SubscriptionObserver(this);
- try {
- var cleanup = subscriber(observer)
- , subscription = cleanup;
- if(cleanup != null){
- if(typeof cleanup.unsubscribe === 'function')cleanup = function(){ subscription.unsubscribe(); };
- else aFunction(cleanup);
- this._c = cleanup;
- }
- } catch(e){
- observer.error(e);
- return;
- } if(subscriptionClosed(this))cleanupSubscription(this);
- };
-
- Subscription.prototype = redefineAll({}, {
- unsubscribe: function unsubscribe(){ closeSubscription(this); }
- });
-
- var SubscriptionObserver = function(subscription){
- this._s = subscription;
- };
-
- SubscriptionObserver.prototype = redefineAll({}, {
- next: function next(value){
- var subscription = this._s;
- if(!subscriptionClosed(subscription)){
- var observer = subscription._o;
- try {
- var m = getMethod(observer.next);
- if(m)return m.call(observer, value);
- } catch(e){
- try {
- closeSubscription(subscription);
- } finally {
- throw e;
- }
- }
- }
- },
- error: function error(value){
- var subscription = this._s;
- if(subscriptionClosed(subscription))throw value;
- var observer = subscription._o;
- subscription._o = undefined;
- try {
- var m = getMethod(observer.error);
- if(!m)throw value;
- value = m.call(observer, value);
- } catch(e){
- try {
- cleanupSubscription(subscription);
- } finally {
- throw e;
- }
- } cleanupSubscription(subscription);
- return value;
- },
- complete: function complete(value){
- var subscription = this._s;
- if(!subscriptionClosed(subscription)){
- var observer = subscription._o;
- subscription._o = undefined;
- try {
- var m = getMethod(observer.complete);
- value = m ? m.call(observer, value) : undefined;
- } catch(e){
- try {
- cleanupSubscription(subscription);
- } finally {
- throw e;
- }
- } cleanupSubscription(subscription);
- return value;
- }
- }
- });
-
- var $Observable = function Observable(subscriber){
- anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);
- };
-
- redefineAll($Observable.prototype, {
- subscribe: function subscribe(observer){
- return new Subscription(observer, this._f);
- },
- forEach: function forEach(fn){
- var that = this;
- return new (core.Promise || global.Promise)(function(resolve, reject){
- aFunction(fn);
- var subscription = that.subscribe({
- next : function(value){
- try {
- return fn(value);
- } catch(e){
- reject(e);
- subscription.unsubscribe();
- }
- },
- error: reject,
- complete: resolve
- });
- });
- }
- });
-
- redefineAll($Observable, {
- from: function from(x){
- var C = typeof this === 'function' ? this : $Observable;
- var method = getMethod(anObject(x)[OBSERVABLE]);
- if(method){
- var observable = anObject(method.call(x));
- return observable.constructor === C ? observable : new C(function(observer){
- return observable.subscribe(observer);
- });
- }
- return new C(function(observer){
- var done = false;
- microtask(function(){
- if(!done){
- try {
- if(forOf(x, false, function(it){
- observer.next(it);
- if(done)return RETURN;
- }) === RETURN)return;
- } catch(e){
- if(done)throw e;
- observer.error(e);
- return;
- } observer.complete();
- }
- });
- return function(){ done = true; };
- });
- },
- of: function of(){
- for(var i = 0, l = arguments.length, items = Array(l); i < l;)items[i] = arguments[i++];
- return new (typeof this === 'function' ? this : $Observable)(function(observer){
- var done = false;
- microtask(function(){
- if(!done){
- for(var i = 0; i < items.length; ++i){
- observer.next(items[i]);
- if(done)return;
- } observer.complete();
- }
- });
- return function(){ done = true; };
- });
- }
- });
-
- hide($Observable.prototype, OBSERVABLE, function(){ return this; });
-
- $export($export.G, {Observable: $Observable});
-
- __webpack_require__(186)('Observable');
-
-/***/ },
-/* 286 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(6)
- , $task = __webpack_require__(200);
- $export($export.G + $export.B, {
- setImmediate: $task.set,
- clearImmediate: $task.clear
- });
-
-/***/ },
-/* 287 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $iterators = __webpack_require__(183)
- , redefine = __webpack_require__(16)
- , global = __webpack_require__(2)
- , hide = __webpack_require__(8)
- , Iterators = __webpack_require__(135)
- , wks = __webpack_require__(23)
- , ITERATOR = wks('iterator')
- , TO_STRING_TAG = wks('toStringTag')
- , ArrayValues = Iterators.Array;
-
- for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
- var NAME = collections[i]
- , Collection = global[NAME]
- , proto = Collection && Collection.prototype
- , key;
- if(proto){
- if(!proto[ITERATOR])hide(proto, ITERATOR, ArrayValues);
- if(!proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);
- Iterators[NAME] = ArrayValues;
- for(key in $iterators)if(!proto[key])redefine(proto, key, $iterators[key], true);
- }
- }
-
-/***/ },
-/* 288 */
-/***/ function(module, exports, __webpack_require__) {
-
- // ie9- setTimeout & setInterval additional parameters fix
- var global = __webpack_require__(2)
- , $export = __webpack_require__(6)
- , invoke = __webpack_require__(76)
- , partial = __webpack_require__(289)
- , navigator = global.navigator
- , MSIE = !!navigator && /MSIE .\./.test(navigator.userAgent); // <- dirty ie9- check
- var wrap = function(set){
- return MSIE ? function(fn, time /*, ...args */){
- return set(invoke(
- partial,
- [].slice.call(arguments, 2),
- typeof fn == 'function' ? fn : Function(fn)
- ), time);
- } : set;
- };
- $export($export.G + $export.B + $export.F * MSIE, {
- setTimeout: wrap(global.setTimeout),
- setInterval: wrap(global.setInterval)
- });
-
-/***/ },
-/* 289 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var path = __webpack_require__(290)
- , invoke = __webpack_require__(76)
- , aFunction = __webpack_require__(19);
- module.exports = function(/* ...pargs */){
- var fn = aFunction(this)
- , length = arguments.length
- , pargs = Array(length)
- , i = 0
- , _ = path._
- , holder = false;
- while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true;
- return function(/* ...args */){
- var that = this
- , aLen = arguments.length
- , j = 0, k = 0, args;
- if(!holder && !aLen)return invoke(fn, pargs, that);
- args = pargs.slice();
- if(holder)for(;length > j; j++)if(args[j] === _)args[j] = arguments[k++];
- while(aLen > k)args.push(arguments[k++]);
- return invoke(fn, args, that);
- };
- };
-
-/***/ },
-/* 290 */
-/***/ function(module, exports, __webpack_require__) {
-
- module.exports = __webpack_require__(2);
-
-/***/ }
-/******/ ]);
-// CommonJS export
-if(typeof module != 'undefined' && module.exports)module.exports = __e;
-// RequireJS export
-else if(typeof define == 'function' && define.amd)define(function(){return __e});
-// Export to global object
-else __g.core = __e;
-}(1, 1); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/client/shim.min.js b/node_modules/babel-runtime/node_modules/core-js/client/shim.min.js
deleted file mode 100644
index e532c6830..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/client/shim.min.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * core-js 2.4.1
- * https://github.com/zloirock/core-js
- * License: http://rock.mit-license.org
- * © 2016 Denis Pushkarev
- */
-!function(a,b,c){"use strict";!function(a){function __webpack_require__(c){if(b[c])return b[c].exports;var d=b[c]={exports:{},id:c,loaded:!1};return a[c].call(d.exports,d,d.exports,__webpack_require__),d.loaded=!0,d.exports}var b={};return __webpack_require__.m=a,__webpack_require__.c=b,__webpack_require__.p="",__webpack_require__(0)}([function(a,b,c){c(1),c(50),c(51),c(52),c(54),c(55),c(58),c(59),c(60),c(61),c(62),c(63),c(64),c(65),c(66),c(68),c(70),c(72),c(74),c(77),c(78),c(79),c(83),c(86),c(87),c(88),c(89),c(91),c(92),c(93),c(94),c(95),c(97),c(99),c(100),c(101),c(103),c(104),c(105),c(107),c(108),c(109),c(111),c(112),c(113),c(114),c(115),c(116),c(117),c(118),c(119),c(120),c(121),c(122),c(123),c(124),c(126),c(130),c(131),c(132),c(133),c(137),c(139),c(140),c(141),c(142),c(143),c(144),c(145),c(146),c(147),c(148),c(149),c(150),c(151),c(152),c(158),c(159),c(161),c(162),c(163),c(167),c(168),c(169),c(170),c(171),c(173),c(174),c(175),c(176),c(179),c(181),c(182),c(183),c(185),c(187),c(189),c(190),c(191),c(193),c(194),c(195),c(196),c(203),c(206),c(207),c(209),c(210),c(211),c(212),c(213),c(214),c(215),c(216),c(217),c(218),c(219),c(220),c(222),c(223),c(224),c(225),c(226),c(227),c(228),c(229),c(231),c(234),c(235),c(237),c(238),c(239),c(240),c(241),c(242),c(243),c(244),c(245),c(246),c(247),c(249),c(250),c(251),c(252),c(253),c(254),c(255),c(256),c(258),c(259),c(261),c(262),c(263),c(264),c(267),c(268),c(269),c(270),c(271),c(272),c(273),c(274),c(276),c(277),c(278),c(279),c(280),c(281),c(282),c(283),c(284),c(285),c(286),c(287),a.exports=c(288)},function(a,b,d){var e=d(2),f=d(3),g=d(4),h=d(6),i=d(16),j=d(20).KEY,k=d(5),l=d(21),m=d(22),n=d(17),o=d(23),p=d(24),q=d(25),r=d(27),s=d(40),t=d(43),u=d(10),v=d(30),w=d(14),x=d(15),y=d(44),z=d(47),A=d(49),B=d(9),C=d(28),D=A.f,E=B.f,F=z.f,G=e.Symbol,H=e.JSON,I=H&&H.stringify,J="prototype",K=o("_hidden"),L=o("toPrimitive"),M={}.propertyIsEnumerable,N=l("symbol-registry"),O=l("symbols"),P=l("op-symbols"),Q=Object[J],R="function"==typeof G,S=e.QObject,T=!S||!S[J]||!S[J].findChild,U=g&&k(function(){return 7!=y(E({},"a",{get:function(){return E(this,"a",{value:7}).a}})).a})?function(a,b,c){var d=D(Q,b);d&&delete Q[b],E(a,b,c),d&&a!==Q&&E(Q,b,d)}:E,V=function(a){var b=O[a]=y(G[J]);return b._k=a,b},W=R&&"symbol"==typeof G.iterator?function(a){return"symbol"==typeof a}:function(a){return a instanceof G},X=function defineProperty(a,b,c){return a===Q&&X(P,b,c),u(a),b=w(b,!0),u(c),f(O,b)?(c.enumerable?(f(a,K)&&a[K][b]&&(a[K][b]=!1),c=y(c,{enumerable:x(0,!1)})):(f(a,K)||E(a,K,x(1,{})),a[K][b]=!0),U(a,b,c)):E(a,b,c)},Y=function defineProperties(a,b){u(a);for(var c,d=s(b=v(b)),e=0,f=d.length;f>e;)X(a,c=d[e++],b[c]);return a},Z=function create(a,b){return b===c?y(a):Y(y(a),b)},$=function propertyIsEnumerable(a){var b=M.call(this,a=w(a,!0));return!(this===Q&&f(O,a)&&!f(P,a))&&(!(b||!f(this,a)||!f(O,a)||f(this,K)&&this[K][a])||b)},_=function getOwnPropertyDescriptor(a,b){if(a=v(a),b=w(b,!0),a!==Q||!f(O,b)||f(P,b)){var c=D(a,b);return!c||!f(O,b)||f(a,K)&&a[K][b]||(c.enumerable=!0),c}},aa=function getOwnPropertyNames(a){for(var b,c=F(v(a)),d=[],e=0;c.length>e;)f(O,b=c[e++])||b==K||b==j||d.push(b);return d},ba=function getOwnPropertySymbols(a){for(var b,c=a===Q,d=F(c?P:v(a)),e=[],g=0;d.length>g;)!f(O,b=d[g++])||c&&!f(Q,b)||e.push(O[b]);return e};R||(G=function Symbol(){if(this instanceof G)throw TypeError("Symbol is not a constructor!");var a=n(arguments.length>0?arguments[0]:c),b=function(c){this===Q&&b.call(P,c),f(this,K)&&f(this[K],a)&&(this[K][a]=!1),U(this,a,x(1,c))};return g&&T&&U(Q,a,{configurable:!0,set:b}),V(a)},i(G[J],"toString",function toString(){return this._k}),A.f=_,B.f=X,d(48).f=z.f=aa,d(42).f=$,d(41).f=ba,g&&!d(26)&&i(Q,"propertyIsEnumerable",$,!0),p.f=function(a){return V(o(a))}),h(h.G+h.W+h.F*!R,{Symbol:G});for(var ca="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),da=0;ca.length>da;)o(ca[da++]);for(var ca=C(o.store),da=0;ca.length>da;)q(ca[da++]);h(h.S+h.F*!R,"Symbol",{"for":function(a){return f(N,a+="")?N[a]:N[a]=G(a)},keyFor:function keyFor(a){if(W(a))return r(N,a);throw TypeError(a+" is not a symbol!")},useSetter:function(){T=!0},useSimple:function(){T=!1}}),h(h.S+h.F*!R,"Object",{create:Z,defineProperty:X,defineProperties:Y,getOwnPropertyDescriptor:_,getOwnPropertyNames:aa,getOwnPropertySymbols:ba}),H&&h(h.S+h.F*(!R||k(function(){var a=G();return"[null]"!=I([a])||"{}"!=I({a:a})||"{}"!=I(Object(a))})),"JSON",{stringify:function stringify(a){if(a!==c&&!W(a)){for(var b,d,e=[a],f=1;arguments.length>f;)e.push(arguments[f++]);return b=e[1],"function"==typeof b&&(d=b),!d&&t(b)||(b=function(a,b){if(d&&(b=d.call(this,a,b)),!W(b))return b}),e[1]=b,I.apply(H,e)}}}),G[J][L]||d(8)(G[J],L,G[J].valueOf),m(G,"Symbol"),m(Math,"Math",!0),m(e.JSON,"JSON",!0)},function(a,c){var d=a.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof b&&(b=d)},function(a,b){var c={}.hasOwnProperty;a.exports=function(a,b){return c.call(a,b)}},function(a,b,c){a.exports=!c(5)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b){a.exports=function(a){try{return!!a()}catch(b){return!0}}},function(a,b,d){var e=d(2),f=d(7),g=d(8),h=d(16),i=d(18),j="prototype",k=function(a,b,d){var l,m,n,o,p=a&k.F,q=a&k.G,r=a&k.S,s=a&k.P,t=a&k.B,u=q?e:r?e[b]||(e[b]={}):(e[b]||{})[j],v=q?f:f[b]||(f[b]={}),w=v[j]||(v[j]={});q&&(d=b);for(l in d)m=!p&&u&&u[l]!==c,n=(m?u:d)[l],o=t&&m?i(n,e):s&&"function"==typeof n?i(Function.call,n):n,u&&h(u,l,n,a&k.U),v[l]!=n&&g(v,l,o),s&&w[l]!=n&&(w[l]=n)};e.core=f,k.F=1,k.G=2,k.S=4,k.P=8,k.B=16,k.W=32,k.U=64,k.R=128,a.exports=k},function(b,c){var d=b.exports={version:"2.4.0"};"number"==typeof a&&(a=d)},function(a,b,c){var d=c(9),e=c(15);a.exports=c(4)?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},function(a,b,c){var d=c(10),e=c(12),f=c(14),g=Object.defineProperty;b.f=c(4)?Object.defineProperty:function defineProperty(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(h){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(a[b]=c.value),a}},function(a,b,c){var d=c(11);a.exports=function(a){if(!d(a))throw TypeError(a+" is not an object!");return a}},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,b,c){a.exports=!c(4)&&!c(5)(function(){return 7!=Object.defineProperty(c(13)("div"),"a",{get:function(){return 7}}).a})},function(a,b,c){var d=c(11),e=c(2).document,f=d(e)&&d(e.createElement);a.exports=function(a){return f?e.createElement(a):{}}},function(a,b,c){var d=c(11);a.exports=function(a,b){if(!d(a))return a;var c,e;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;if("function"==typeof(c=a.valueOf)&&!d(e=c.call(a)))return e;if(!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,b,c){var d=c(2),e=c(8),f=c(3),g=c(17)("src"),h="toString",i=Function[h],j=(""+i).split(h);c(7).inspectSource=function(a){return i.call(a)},(a.exports=function(a,b,c,h){var i="function"==typeof c;i&&(f(c,"name")||e(c,"name",b)),a[b]!==c&&(i&&(f(c,g)||e(c,g,a[b]?""+a[b]:j.join(String(b)))),a===d?a[b]=c:h?a[b]?a[b]=c:e(a,b,c):(delete a[b],e(a,b,c)))})(Function.prototype,h,function toString(){return"function"==typeof this&&this[g]||i.call(this)})},function(a,b){var d=0,e=Math.random();a.exports=function(a){return"Symbol(".concat(a===c?"":a,")_",(++d+e).toString(36))}},function(a,b,d){var e=d(19);a.exports=function(a,b,d){if(e(a),b===c)return a;switch(d){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,b,c){var d=c(17)("meta"),e=c(11),f=c(3),g=c(9).f,h=0,i=Object.isExtensible||function(){return!0},j=!c(5)(function(){return i(Object.preventExtensions({}))}),k=function(a){g(a,d,{value:{i:"O"+ ++h,w:{}}})},l=function(a,b){if(!e(a))return"symbol"==typeof a?a:("string"==typeof a?"S":"P")+a;if(!f(a,d)){if(!i(a))return"F";if(!b)return"E";k(a)}return a[d].i},m=function(a,b){if(!f(a,d)){if(!i(a))return!0;if(!b)return!1;k(a)}return a[d].w},n=function(a){return j&&o.NEED&&i(a)&&!f(a,d)&&k(a),a},o=a.exports={KEY:d,NEED:!1,fastKey:l,getWeak:m,onFreeze:n}},function(a,b,c){var d=c(2),e="__core-js_shared__",f=d[e]||(d[e]={});a.exports=function(a){return f[a]||(f[a]={})}},function(a,b,c){var d=c(9).f,e=c(3),f=c(23)("toStringTag");a.exports=function(a,b,c){a&&!e(a=c?a:a.prototype,f)&&d(a,f,{configurable:!0,value:b})}},function(a,b,c){var d=c(21)("wks"),e=c(17),f=c(2).Symbol,g="function"==typeof f,h=a.exports=function(a){return d[a]||(d[a]=g&&f[a]||(g?f:e)("Symbol."+a))};h.store=d},function(a,b,c){b.f=c(23)},function(a,b,c){var d=c(2),e=c(7),f=c(26),g=c(24),h=c(9).f;a.exports=function(a){var b=e.Symbol||(e.Symbol=f?{}:d.Symbol||{});"_"==a.charAt(0)||a in b||h(b,a,{value:g.f(a)})}},function(a,b){a.exports=!1},function(a,b,c){var d=c(28),e=c(30);a.exports=function(a,b){for(var c,f=e(a),g=d(f),h=g.length,i=0;h>i;)if(f[c=g[i++]]===b)return c}},function(a,b,c){var d=c(29),e=c(39);a.exports=Object.keys||function keys(a){return d(a,e)}},function(a,b,c){var d=c(3),e=c(30),f=c(34)(!1),g=c(38)("IE_PROTO");a.exports=function(a,b){var c,h=e(a),i=0,j=[];for(c in h)c!=g&&d(h,c)&&j.push(c);for(;b.length>i;)d(h,c=b[i++])&&(~f(j,c)||j.push(c));return j}},function(a,b,c){var d=c(31),e=c(33);a.exports=function(a){return d(e(a))}},function(a,b,c){var d=c(32);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return"String"==d(a)?a.split(""):Object(a)}},function(a,b){var c={}.toString;a.exports=function(a){return c.call(a).slice(8,-1)}},function(a,b){a.exports=function(a){if(a==c)throw TypeError("Can't call method on "+a);return a}},function(a,b,c){var d=c(30),e=c(35),f=c(37);a.exports=function(a){return function(b,c,g){var h,i=d(b),j=e(i.length),k=f(g,j);if(a&&c!=c){for(;j>k;)if(h=i[k++],h!=h)return!0}else for(;j>k;k++)if((a||k in i)&&i[k]===c)return a||k||0;return!a&&-1}}},function(a,b,c){var d=c(36),e=Math.min;a.exports=function(a){return a>0?e(d(a),9007199254740991):0}},function(a,b){var c=Math.ceil,d=Math.floor;a.exports=function(a){return isNaN(a=+a)?0:(a>0?d:c)(a)}},function(a,b,c){var d=c(36),e=Math.max,f=Math.min;a.exports=function(a,b){return a=d(a),a<0?e(a+b,0):f(a,b)}},function(a,b,c){var d=c(21)("keys"),e=c(17);a.exports=function(a){return d[a]||(d[a]=e(a))}},function(a,b){a.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(a,b,c){var d=c(28),e=c(41),f=c(42);a.exports=function(a){var b=d(a),c=e.f;if(c)for(var g,h=c(a),i=f.f,j=0;h.length>j;)i.call(a,g=h[j++])&&b.push(g);return b}},function(a,b){b.f=Object.getOwnPropertySymbols},function(a,b){b.f={}.propertyIsEnumerable},function(a,b,c){var d=c(32);a.exports=Array.isArray||function isArray(a){return"Array"==d(a)}},function(a,b,d){var e=d(10),f=d(45),g=d(39),h=d(38)("IE_PROTO"),i=function(){},j="prototype",k=function(){var a,b=d(13)("iframe"),c=g.length,e="<",f=">";for(b.style.display="none",d(46).appendChild(b),b.src="javascript:",a=b.contentWindow.document,a.open(),a.write(e+"script"+f+"document.F=Object"+e+"/script"+f),a.close(),k=a.F;c--;)delete k[j][g[c]];return k()};a.exports=Object.create||function create(a,b){var d;return null!==a?(i[j]=e(a),d=new i,i[j]=null,d[h]=a):d=k(),b===c?d:f(d,b)}},function(a,b,c){var d=c(9),e=c(10),f=c(28);a.exports=c(4)?Object.defineProperties:function defineProperties(a,b){e(a);for(var c,g=f(b),h=g.length,i=0;h>i;)d.f(a,c=g[i++],b[c]);return a}},function(a,b,c){a.exports=c(2).document&&document.documentElement},function(a,b,c){var d=c(30),e=c(48).f,f={}.toString,g="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],h=function(a){try{return e(a)}catch(b){return g.slice()}};a.exports.f=function getOwnPropertyNames(a){return g&&"[object Window]"==f.call(a)?h(a):e(d(a))}},function(a,b,c){var d=c(29),e=c(39).concat("length","prototype");b.f=Object.getOwnPropertyNames||function getOwnPropertyNames(a){return d(a,e)}},function(a,b,c){var d=c(42),e=c(15),f=c(30),g=c(14),h=c(3),i=c(12),j=Object.getOwnPropertyDescriptor;b.f=c(4)?j:function getOwnPropertyDescriptor(a,b){if(a=f(a),b=g(b,!0),i)try{return j(a,b)}catch(c){}if(h(a,b))return e(!d.f.call(a,b),a[b])}},function(a,b,c){var d=c(6);d(d.S+d.F*!c(4),"Object",{defineProperty:c(9).f})},function(a,b,c){var d=c(6);d(d.S+d.F*!c(4),"Object",{defineProperties:c(45)})},function(a,b,c){var d=c(30),e=c(49).f;c(53)("getOwnPropertyDescriptor",function(){return function getOwnPropertyDescriptor(a,b){return e(d(a),b)}})},function(a,b,c){var d=c(6),e=c(7),f=c(5);a.exports=function(a,b){var c=(e.Object||{})[a]||Object[a],g={};g[a]=b(c),d(d.S+d.F*f(function(){c(1)}),"Object",g)}},function(a,b,c){var d=c(6);d(d.S,"Object",{create:c(44)})},function(a,b,c){var d=c(56),e=c(57);c(53)("getPrototypeOf",function(){return function getPrototypeOf(a){return e(d(a))}})},function(a,b,c){var d=c(33);a.exports=function(a){return Object(d(a))}},function(a,b,c){var d=c(3),e=c(56),f=c(38)("IE_PROTO"),g=Object.prototype;a.exports=Object.getPrototypeOf||function(a){return a=e(a),d(a,f)?a[f]:"function"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?g:null}},function(a,b,c){var d=c(56),e=c(28);c(53)("keys",function(){return function keys(a){return e(d(a))}})},function(a,b,c){c(53)("getOwnPropertyNames",function(){return c(47).f})},function(a,b,c){var d=c(11),e=c(20).onFreeze;c(53)("freeze",function(a){return function freeze(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(11),e=c(20).onFreeze;c(53)("seal",function(a){return function seal(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(11),e=c(20).onFreeze;c(53)("preventExtensions",function(a){return function preventExtensions(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(11);c(53)("isFrozen",function(a){return function isFrozen(b){return!d(b)||!!a&&a(b)}})},function(a,b,c){var d=c(11);c(53)("isSealed",function(a){return function isSealed(b){return!d(b)||!!a&&a(b)}})},function(a,b,c){var d=c(11);c(53)("isExtensible",function(a){return function isExtensible(b){return!!d(b)&&(!a||a(b))}})},function(a,b,c){var d=c(6);d(d.S+d.F,"Object",{assign:c(67)})},function(a,b,c){var d=c(28),e=c(41),f=c(42),g=c(56),h=c(31),i=Object.assign;a.exports=!i||c(5)(function(){var a={},b={},c=Symbol(),d="abcdefghijklmnopqrst";return a[c]=7,d.split("").forEach(function(a){b[a]=a}),7!=i({},a)[c]||Object.keys(i({},b)).join("")!=d})?function assign(a,b){for(var c=g(a),i=arguments.length,j=1,k=e.f,l=f.f;i>j;)for(var m,n=h(arguments[j++]),o=k?d(n).concat(k(n)):d(n),p=o.length,q=0;p>q;)l.call(n,m=o[q++])&&(c[m]=n[m]);return c}:i},function(a,b,c){var d=c(6);d(d.S,"Object",{is:c(69)})},function(a,b){a.exports=Object.is||function is(a,b){return a===b?0!==a||1/a===1/b:a!=a&&b!=b}},function(a,b,c){var d=c(6);d(d.S,"Object",{setPrototypeOf:c(71).set})},function(a,b,d){var e=d(11),f=d(10),g=function(a,b){if(f(a),!e(b)&&null!==b)throw TypeError(b+": can't set as prototype!")};a.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(a,b,c){try{c=d(18)(Function.call,d(49).f(Object.prototype,"__proto__").set,2),c(a,[]),b=!(a instanceof Array)}catch(e){b=!0}return function setPrototypeOf(a,d){return g(a,d),b?a.__proto__=d:c(a,d),a}}({},!1):c),check:g}},function(a,b,c){var d=c(73),e={};e[c(23)("toStringTag")]="z",e+""!="[object z]"&&c(16)(Object.prototype,"toString",function toString(){return"[object "+d(this)+"]"},!0)},function(a,b,d){var e=d(32),f=d(23)("toStringTag"),g="Arguments"==e(function(){return arguments}()),h=function(a,b){try{return a[b]}catch(c){}};a.exports=function(a){var b,d,i;return a===c?"Undefined":null===a?"Null":"string"==typeof(d=h(b=Object(a),f))?d:g?e(b):"Object"==(i=e(b))&&"function"==typeof b.callee?"Arguments":i}},function(a,b,c){var d=c(6);d(d.P,"Function",{bind:c(75)})},function(a,b,c){var d=c(19),e=c(11),f=c(76),g=[].slice,h={},i=function(a,b,c){if(!(b in h)){for(var d=[],e=0;e<b;e++)d[e]="a["+e+"]";h[b]=Function("F,a","return new F("+d.join(",")+")")}return h[b](a,c)};a.exports=Function.bind||function bind(a){var b=d(this),c=g.call(arguments,1),h=function(){var d=c.concat(g.call(arguments));return this instanceof h?i(b,d.length,d):f(b,d,a)};return e(b.prototype)&&(h.prototype=b.prototype),h}},function(a,b){a.exports=function(a,b,d){var e=d===c;switch(b.length){case 0:return e?a():a.call(d);case 1:return e?a(b[0]):a.call(d,b[0]);case 2:return e?a(b[0],b[1]):a.call(d,b[0],b[1]);case 3:return e?a(b[0],b[1],b[2]):a.call(d,b[0],b[1],b[2]);case 4:return e?a(b[0],b[1],b[2],b[3]):a.call(d,b[0],b[1],b[2],b[3])}return a.apply(d,b)}},function(a,b,c){var d=c(9).f,e=c(15),f=c(3),g=Function.prototype,h=/^\s*function ([^ (]*)/,i="name",j=Object.isExtensible||function(){return!0};i in g||c(4)&&d(g,i,{configurable:!0,get:function(){try{var a=this,b=(""+a).match(h)[1];return f(a,i)||!j(a)||d(a,i,e(5,b)),b}catch(c){return""}}})},function(a,b,c){var d=c(11),e=c(57),f=c(23)("hasInstance"),g=Function.prototype;f in g||c(9).f(g,f,{value:function(a){if("function"!=typeof this||!d(a))return!1;if(!d(this.prototype))return a instanceof this;for(;a=e(a);)if(this.prototype===a)return!0;return!1}})},function(a,b,c){var d=c(2),e=c(3),f=c(32),g=c(80),h=c(14),i=c(5),j=c(48).f,k=c(49).f,l=c(9).f,m=c(81).trim,n="Number",o=d[n],p=o,q=o.prototype,r=f(c(44)(q))==n,s="trim"in String.prototype,t=function(a){var b=h(a,!1);if("string"==typeof b&&b.length>2){b=s?b.trim():m(b,3);var c,d,e,f=b.charCodeAt(0);if(43===f||45===f){if(c=b.charCodeAt(2),88===c||120===c)return NaN}else if(48===f){switch(b.charCodeAt(1)){case 66:case 98:d=2,e=49;break;case 79:case 111:d=8,e=55;break;default:return+b}for(var g,i=b.slice(2),j=0,k=i.length;j<k;j++)if(g=i.charCodeAt(j),g<48||g>e)return NaN;return parseInt(i,d)}}return+b};if(!o(" 0o1")||!o("0b1")||o("+0x1")){o=function Number(a){var b=arguments.length<1?0:a,c=this;return c instanceof o&&(r?i(function(){q.valueOf.call(c)}):f(c)!=n)?g(new p(t(b)),c,o):t(b)};for(var u,v=c(4)?j(p):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;v.length>w;w++)e(p,u=v[w])&&!e(o,u)&&l(o,u,k(p,u));o.prototype=q,q.constructor=o,c(16)(d,n,o)}},function(a,b,c){var d=c(11),e=c(71).set;a.exports=function(a,b,c){var f,g=b.constructor;return g!==c&&"function"==typeof g&&(f=g.prototype)!==c.prototype&&d(f)&&e&&e(a,f),a}},function(a,b,c){var d=c(6),e=c(33),f=c(5),g=c(82),h="["+g+"]",i="​…",j=RegExp("^"+h+h+"*"),k=RegExp(h+h+"*$"),l=function(a,b,c){var e={},h=f(function(){return!!g[a]()||i[a]()!=i}),j=e[a]=h?b(m):g[a];c&&(e[c]=j),d(d.P+d.F*h,"String",e)},m=l.trim=function(a,b){return a=String(e(a)),1&b&&(a=a.replace(j,"")),2&b&&(a=a.replace(k,"")),a};a.exports=l},function(a,b){a.exports="\t\n\x0B\f\r   ᠎ â€â€‚         âŸã€€\u2028\u2029\ufeff"},function(a,b,c){var d=c(6),e=c(36),f=c(84),g=c(85),h=1..toFixed,i=Math.floor,j=[0,0,0,0,0,0],k="Number.toFixed: incorrect invocation!",l="0",m=function(a,b){for(var c=-1,d=b;++c<6;)d+=a*j[c],j[c]=d%1e7,d=i(d/1e7)},n=function(a){for(var b=6,c=0;--b>=0;)c+=j[b],j[b]=i(c/a),c=c%a*1e7},o=function(){for(var a=6,b="";--a>=0;)if(""!==b||0===a||0!==j[a]){var c=String(j[a]);b=""===b?c:b+g.call(l,7-c.length)+c}return b},p=function(a,b,c){return 0===b?c:b%2===1?p(a,b-1,c*a):p(a*a,b/2,c)},q=function(a){for(var b=0,c=a;c>=4096;)b+=12,c/=4096;for(;c>=2;)b+=1,c/=2;return b};d(d.P+d.F*(!!h&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!c(5)(function(){h.call({})})),"Number",{toFixed:function toFixed(a){var b,c,d,h,i=f(this,k),j=e(a),r="",s=l;if(j<0||j>20)throw RangeError(k);if(i!=i)return"NaN";if(i<=-1e21||i>=1e21)return String(i);if(i<0&&(r="-",i=-i),i>1e-21)if(b=q(i*p(2,69,1))-69,c=b<0?i*p(2,-b,1):i/p(2,b,1),c*=4503599627370496,b=52-b,b>0){for(m(0,c),d=j;d>=7;)m(1e7,0),d-=7;for(m(p(10,d,1),0),d=b-1;d>=23;)n(1<<23),d-=23;n(1<<d),m(1,1),n(2),s=o()}else m(0,c),m(1<<-b,0),s=o()+g.call(l,j);return j>0?(h=s.length,s=r+(h<=j?"0."+g.call(l,j-h)+s:s.slice(0,h-j)+"."+s.slice(h-j))):s=r+s,s}})},function(a,b,c){var d=c(32);a.exports=function(a,b){if("number"!=typeof a&&"Number"!=d(a))throw TypeError(b);return+a}},function(a,b,c){var d=c(36),e=c(33);a.exports=function repeat(a){var b=String(e(this)),c="",f=d(a);if(f<0||f==1/0)throw RangeError("Count can't be negative");for(;f>0;(f>>>=1)&&(b+=b))1&f&&(c+=b);return c}},function(a,b,d){var e=d(6),f=d(5),g=d(84),h=1..toPrecision;e(e.P+e.F*(f(function(){return"1"!==h.call(1,c)})||!f(function(){h.call({})})),"Number",{toPrecision:function toPrecision(a){var b=g(this,"Number#toPrecision: incorrect invocation!");return a===c?h.call(b):h.call(b,a)}})},function(a,b,c){var d=c(6);d(d.S,"Number",{EPSILON:Math.pow(2,-52)})},function(a,b,c){var d=c(6),e=c(2).isFinite;d(d.S,"Number",{isFinite:function isFinite(a){return"number"==typeof a&&e(a)}})},function(a,b,c){var d=c(6);d(d.S,"Number",{isInteger:c(90)})},function(a,b,c){var d=c(11),e=Math.floor;a.exports=function isInteger(a){return!d(a)&&isFinite(a)&&e(a)===a}},function(a,b,c){var d=c(6);d(d.S,"Number",{isNaN:function isNaN(a){return a!=a}})},function(a,b,c){var d=c(6),e=c(90),f=Math.abs;d(d.S,"Number",{isSafeInteger:function isSafeInteger(a){return e(a)&&f(a)<=9007199254740991}})},function(a,b,c){var d=c(6);d(d.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(a,b,c){var d=c(6);d(d.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(a,b,c){var d=c(6),e=c(96);d(d.S+d.F*(Number.parseFloat!=e),"Number",{parseFloat:e})},function(a,b,c){var d=c(2).parseFloat,e=c(81).trim;a.exports=1/d(c(82)+"-0")!==-(1/0)?function parseFloat(a){var b=e(String(a),3),c=d(b);return 0===c&&"-"==b.charAt(0)?-0:c}:d},function(a,b,c){var d=c(6),e=c(98);d(d.S+d.F*(Number.parseInt!=e),"Number",{parseInt:e})},function(a,b,c){var d=c(2).parseInt,e=c(81).trim,f=c(82),g=/^[\-+]?0[xX]/;a.exports=8!==d(f+"08")||22!==d(f+"0x16")?function parseInt(a,b){var c=e(String(a),3);return d(c,b>>>0||(g.test(c)?16:10))}:d},function(a,b,c){var d=c(6),e=c(98);d(d.G+d.F*(parseInt!=e),{parseInt:e})},function(a,b,c){var d=c(6),e=c(96);d(d.G+d.F*(parseFloat!=e),{parseFloat:e})},function(a,b,c){var d=c(6),e=c(102),f=Math.sqrt,g=Math.acosh;d(d.S+d.F*!(g&&710==Math.floor(g(Number.MAX_VALUE))&&g(1/0)==1/0),"Math",{acosh:function acosh(a){return(a=+a)<1?NaN:a>94906265.62425156?Math.log(a)+Math.LN2:e(a-1+f(a-1)*f(a+1))}})},function(a,b){a.exports=Math.log1p||function log1p(a){return(a=+a)>-1e-8&&a<1e-8?a-a*a/2:Math.log(1+a)}},function(a,b,c){function asinh(a){return isFinite(a=+a)&&0!=a?a<0?-asinh(-a):Math.log(a+Math.sqrt(a*a+1)):a}var d=c(6),e=Math.asinh;d(d.S+d.F*!(e&&1/e(0)>0),"Math",{asinh:asinh})},function(a,b,c){var d=c(6),e=Math.atanh;d(d.S+d.F*!(e&&1/e(-0)<0),"Math",{atanh:function atanh(a){return 0==(a=+a)?a:Math.log((1+a)/(1-a))/2}})},function(a,b,c){var d=c(6),e=c(106);d(d.S,"Math",{cbrt:function cbrt(a){return e(a=+a)*Math.pow(Math.abs(a),1/3)}})},function(a,b){a.exports=Math.sign||function sign(a){return 0==(a=+a)||a!=a?a:a<0?-1:1}},function(a,b,c){var d=c(6);d(d.S,"Math",{clz32:function clz32(a){return(a>>>=0)?31-Math.floor(Math.log(a+.5)*Math.LOG2E):32}})},function(a,b,c){var d=c(6),e=Math.exp;d(d.S,"Math",{cosh:function cosh(a){return(e(a=+a)+e(-a))/2}})},function(a,b,c){var d=c(6),e=c(110);d(d.S+d.F*(e!=Math.expm1),"Math",{expm1:e})},function(a,b){var c=Math.expm1;a.exports=!c||c(10)>22025.465794806718||c(10)<22025.465794806718||c(-2e-17)!=-2e-17?function expm1(a){return 0==(a=+a)?a:a>-1e-6&&a<1e-6?a+a*a/2:Math.exp(a)-1}:c},function(a,b,c){var d=c(6),e=c(106),f=Math.pow,g=f(2,-52),h=f(2,-23),i=f(2,127)*(2-h),j=f(2,-126),k=function(a){return a+1/g-1/g};d(d.S,"Math",{fround:function fround(a){var b,c,d=Math.abs(a),f=e(a);return d<j?f*k(d/j/h)*j*h:(b=(1+h/g)*d,c=b-(b-d),c>i||c!=c?f*(1/0):f*c)}})},function(a,b,c){var d=c(6),e=Math.abs;d(d.S,"Math",{hypot:function hypot(a,b){for(var c,d,f=0,g=0,h=arguments.length,i=0;g<h;)c=e(arguments[g++]),i<c?(d=i/c,f=f*d*d+1,i=c):c>0?(d=c/i,f+=d*d):f+=c;return i===1/0?1/0:i*Math.sqrt(f)}})},function(a,b,c){var d=c(6),e=Math.imul;d(d.S+d.F*c(5)(function(){return e(4294967295,5)!=-5||2!=e.length}),"Math",{imul:function imul(a,b){var c=65535,d=+a,e=+b,f=c&d,g=c&e;return 0|f*g+((c&d>>>16)*g+f*(c&e>>>16)<<16>>>0)}})},function(a,b,c){var d=c(6);d(d.S,"Math",{log10:function log10(a){return Math.log(a)/Math.LN10}})},function(a,b,c){var d=c(6);d(d.S,"Math",{log1p:c(102)})},function(a,b,c){var d=c(6);d(d.S,"Math",{log2:function log2(a){return Math.log(a)/Math.LN2}})},function(a,b,c){var d=c(6);d(d.S,"Math",{sign:c(106)})},function(a,b,c){var d=c(6),e=c(110),f=Math.exp;d(d.S+d.F*c(5)(function(){return!Math.sinh(-2e-17)!=-2e-17}),"Math",{sinh:function sinh(a){return Math.abs(a=+a)<1?(e(a)-e(-a))/2:(f(a-1)-f(-a-1))*(Math.E/2)}})},function(a,b,c){var d=c(6),e=c(110),f=Math.exp;d(d.S,"Math",{tanh:function tanh(a){var b=e(a=+a),c=e(-a);return b==1/0?1:c==1/0?-1:(b-c)/(f(a)+f(-a))}})},function(a,b,c){var d=c(6);d(d.S,"Math",{trunc:function trunc(a){return(a>0?Math.floor:Math.ceil)(a)}})},function(a,b,c){var d=c(6),e=c(37),f=String.fromCharCode,g=String.fromCodePoint;d(d.S+d.F*(!!g&&1!=g.length),"String",{fromCodePoint:function fromCodePoint(a){for(var b,c=[],d=arguments.length,g=0;d>g;){if(b=+arguments[g++],e(b,1114111)!==b)throw RangeError(b+" is not a valid code point");c.push(b<65536?f(b):f(((b-=65536)>>10)+55296,b%1024+56320))}return c.join("")}})},function(a,b,c){var d=c(6),e=c(30),f=c(35);d(d.S,"String",{raw:function raw(a){for(var b=e(a.raw),c=f(b.length),d=arguments.length,g=[],h=0;c>h;)g.push(String(b[h++])),h<d&&g.push(String(arguments[h]));return g.join("")}})},function(a,b,c){c(81)("trim",function(a){return function trim(){return a(this,3)}})},function(a,b,c){var d=c(6),e=c(125)(!1);d(d.P,"String",{codePointAt:function codePointAt(a){return e(this,a)}})},function(a,b,d){var e=d(36),f=d(33);a.exports=function(a){return function(b,d){var g,h,i=String(f(b)),j=e(d),k=i.length;return j<0||j>=k?a?"":c:(g=i.charCodeAt(j),g<55296||g>56319||j+1===k||(h=i.charCodeAt(j+1))<56320||h>57343?a?i.charAt(j):g:a?i.slice(j,j+2):(g-55296<<10)+(h-56320)+65536)}}},function(a,b,d){var e=d(6),f=d(35),g=d(127),h="endsWith",i=""[h];e(e.P+e.F*d(129)(h),"String",{endsWith:function endsWith(a){var b=g(this,a,h),d=arguments.length>1?arguments[1]:c,e=f(b.length),j=d===c?e:Math.min(f(d),e),k=String(a);return i?i.call(b,k,j):b.slice(j-k.length,j)===k}})},function(a,b,c){var d=c(128),e=c(33);a.exports=function(a,b,c){if(d(b))throw TypeError("String#"+c+" doesn't accept regex!");return String(e(a))}},function(a,b,d){var e=d(11),f=d(32),g=d(23)("match");a.exports=function(a){var b;return e(a)&&((b=a[g])!==c?!!b:"RegExp"==f(a))}},function(a,b,c){var d=c(23)("match");a.exports=function(a){var b=/./;try{"/./"[a](b)}catch(c){try{return b[d]=!1,!"/./"[a](b)}catch(e){}}return!0}},function(a,b,d){var e=d(6),f=d(127),g="includes";e(e.P+e.F*d(129)(g),"String",{includes:function includes(a){return!!~f(this,a,g).indexOf(a,arguments.length>1?arguments[1]:c)}})},function(a,b,c){var d=c(6);d(d.P,"String",{repeat:c(85)})},function(a,b,d){var e=d(6),f=d(35),g=d(127),h="startsWith",i=""[h];e(e.P+e.F*d(129)(h),"String",{startsWith:function startsWith(a){var b=g(this,a,h),d=f(Math.min(arguments.length>1?arguments[1]:c,b.length)),e=String(a);return i?i.call(b,e,d):b.slice(d,d+e.length)===e}})},function(a,b,d){var e=d(125)(!0);d(134)(String,"String",function(a){this._t=String(a),this._i=0},function(){var a,b=this._t,d=this._i;return d>=b.length?{value:c,done:!0}:(a=e(b,d),this._i+=a.length,{value:a,done:!1})})},function(a,b,d){var e=d(26),f=d(6),g=d(16),h=d(8),i=d(3),j=d(135),k=d(136),l=d(22),m=d(57),n=d(23)("iterator"),o=!([].keys&&"next"in[].keys()),p="@@iterator",q="keys",r="values",s=function(){return this};a.exports=function(a,b,d,t,u,v,w){k(d,b,t);var x,y,z,A=function(a){if(!o&&a in E)return E[a];switch(a){case q:return function keys(){return new d(this,a)};case r:return function values(){return new d(this,a)}}return function entries(){return new d(this,a)}},B=b+" Iterator",C=u==r,D=!1,E=a.prototype,F=E[n]||E[p]||u&&E[u],G=F||A(u),H=u?C?A("entries"):G:c,I="Array"==b?E.entries||F:F;if(I&&(z=m(I.call(new a)),z!==Object.prototype&&(l(z,B,!0),e||i(z,n)||h(z,n,s))),C&&F&&F.name!==r&&(D=!0,G=function values(){return F.call(this)}),e&&!w||!o&&!D&&E[n]||h(E,n,G),j[b]=G,j[B]=s,u)if(x={values:C?G:A(r),keys:v?G:A(q),entries:H},w)for(y in x)y in E||g(E,y,x[y]);else f(f.P+f.F*(o||D),b,x);return x}},function(a,b){a.exports={}},function(a,b,c){var d=c(44),e=c(15),f=c(22),g={};c(8)(g,c(23)("iterator"),function(){return this}),a.exports=function(a,b,c){a.prototype=d(g,{next:e(1,c)}),f(a,b+" Iterator")}},function(a,b,c){c(138)("anchor",function(a){return function anchor(b){return a(this,"a","name",b)}})},function(a,b,c){var d=c(6),e=c(5),f=c(33),g=/"/g,h=function(a,b,c,d){var e=String(f(a)),h="<"+b;return""!==c&&(h+=" "+c+'="'+String(d).replace(g,"&quot;")+'"'),h+">"+e+"</"+b+">"};a.exports=function(a,b){var c={};c[a]=b(h),d(d.P+d.F*e(function(){var b=""[a]('"');return b!==b.toLowerCase()||b.split('"').length>3}),"String",c)}},function(a,b,c){c(138)("big",function(a){return function big(){return a(this,"big","","")}})},function(a,b,c){c(138)("blink",function(a){return function blink(){return a(this,"blink","","")}})},function(a,b,c){c(138)("bold",function(a){return function bold(){return a(this,"b","","")}})},function(a,b,c){c(138)("fixed",function(a){return function fixed(){return a(this,"tt","","")}})},function(a,b,c){c(138)("fontcolor",function(a){return function fontcolor(b){return a(this,"font","color",b)}})},function(a,b,c){c(138)("fontsize",function(a){return function fontsize(b){return a(this,"font","size",b)}})},function(a,b,c){c(138)("italics",function(a){return function italics(){return a(this,"i","","")}})},function(a,b,c){c(138)("link",function(a){return function link(b){return a(this,"a","href",b)}})},function(a,b,c){c(138)("small",function(a){return function small(){return a(this,"small","","")}})},function(a,b,c){c(138)("strike",function(a){return function strike(){return a(this,"strike","","")}})},function(a,b,c){c(138)("sub",function(a){return function sub(){return a(this,"sub","","")}})},function(a,b,c){c(138)("sup",function(a){return function sup(){return a(this,"sup","","")}})},function(a,b,c){var d=c(6);d(d.S,"Array",{isArray:c(43)})},function(a,b,d){var e=d(18),f=d(6),g=d(56),h=d(153),i=d(154),j=d(35),k=d(155),l=d(156);f(f.S+f.F*!d(157)(function(a){Array.from(a)}),"Array",{from:function from(a){var b,d,f,m,n=g(a),o="function"==typeof this?this:Array,p=arguments.length,q=p>1?arguments[1]:c,r=q!==c,s=0,t=l(n);if(r&&(q=e(q,p>2?arguments[2]:c,2)),t==c||o==Array&&i(t))for(b=j(n.length),d=new o(b);b>s;s++)k(d,s,r?q(n[s],s):n[s]);else for(m=t.call(n),d=new o;!(f=m.next()).done;s++)k(d,s,r?h(m,q,[f.value,s],!0):f.value);return d.length=s,d}})},function(a,b,d){var e=d(10);a.exports=function(a,b,d,f){try{return f?b(e(d)[0],d[1]):b(d)}catch(g){var h=a["return"];throw h!==c&&e(h.call(a)),g}}},function(a,b,d){var e=d(135),f=d(23)("iterator"),g=Array.prototype;a.exports=function(a){return a!==c&&(e.Array===a||g[f]===a)}},function(a,b,c){var d=c(9),e=c(15);a.exports=function(a,b,c){b in a?d.f(a,b,e(0,c)):a[b]=c}},function(a,b,d){var e=d(73),f=d(23)("iterator"),g=d(135);a.exports=d(7).getIteratorMethod=function(a){if(a!=c)return a[f]||a["@@iterator"]||g[e(a)]}},function(a,b,c){var d=c(23)("iterator"),e=!1;
-try{var f=[7][d]();f["return"]=function(){e=!0},Array.from(f,function(){throw 2})}catch(g){}a.exports=function(a,b){if(!b&&!e)return!1;var c=!1;try{var f=[7],g=f[d]();g.next=function(){return{done:c=!0}},f[d]=function(){return g},a(f)}catch(h){}return c}},function(a,b,c){var d=c(6),e=c(155);d(d.S+d.F*c(5)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),"Array",{of:function of(){for(var a=0,b=arguments.length,c=new("function"==typeof this?this:Array)(b);b>a;)e(c,a,arguments[a++]);return c.length=b,c}})},function(a,b,d){var e=d(6),f=d(30),g=[].join;e(e.P+e.F*(d(31)!=Object||!d(160)(g)),"Array",{join:function join(a){return g.call(f(this),a===c?",":a)}})},function(a,b,c){var d=c(5);a.exports=function(a,b){return!!a&&d(function(){b?a.call(null,function(){},1):a.call(null)})}},function(a,b,d){var e=d(6),f=d(46),g=d(32),h=d(37),i=d(35),j=[].slice;e(e.P+e.F*d(5)(function(){f&&j.call(f)}),"Array",{slice:function slice(a,b){var d=i(this.length),e=g(this);if(b=b===c?d:b,"Array"==e)return j.call(this,a,b);for(var f=h(a,d),k=h(b,d),l=i(k-f),m=Array(l),n=0;n<l;n++)m[n]="String"==e?this.charAt(f+n):this[f+n];return m}})},function(a,b,d){var e=d(6),f=d(19),g=d(56),h=d(5),i=[].sort,j=[1,2,3];e(e.P+e.F*(h(function(){j.sort(c)})||!h(function(){j.sort(null)})||!d(160)(i)),"Array",{sort:function sort(a){return a===c?i.call(g(this)):i.call(g(this),f(a))}})},function(a,b,c){var d=c(6),e=c(164)(0),f=c(160)([].forEach,!0);d(d.P+d.F*!f,"Array",{forEach:function forEach(a){return e(this,a,arguments[1])}})},function(a,b,d){var e=d(18),f=d(31),g=d(56),h=d(35),i=d(165);a.exports=function(a,b){var d=1==a,j=2==a,k=3==a,l=4==a,m=6==a,n=5==a||m,o=b||i;return function(b,i,p){for(var q,r,s=g(b),t=f(s),u=e(i,p,3),v=h(t.length),w=0,x=d?o(b,v):j?o(b,0):c;v>w;w++)if((n||w in t)&&(q=t[w],r=u(q,w,s),a))if(d)x[w]=r;else if(r)switch(a){case 3:return!0;case 5:return q;case 6:return w;case 2:x.push(q)}else if(l)return!1;return m?-1:k||l?l:x}}},function(a,b,c){var d=c(166);a.exports=function(a,b){return new(d(a))(b)}},function(a,b,d){var e=d(11),f=d(43),g=d(23)("species");a.exports=function(a){var b;return f(a)&&(b=a.constructor,"function"!=typeof b||b!==Array&&!f(b.prototype)||(b=c),e(b)&&(b=b[g],null===b&&(b=c))),b===c?Array:b}},function(a,b,c){var d=c(6),e=c(164)(1);d(d.P+d.F*!c(160)([].map,!0),"Array",{map:function map(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(164)(2);d(d.P+d.F*!c(160)([].filter,!0),"Array",{filter:function filter(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(164)(3);d(d.P+d.F*!c(160)([].some,!0),"Array",{some:function some(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(164)(4);d(d.P+d.F*!c(160)([].every,!0),"Array",{every:function every(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(172);d(d.P+d.F*!c(160)([].reduce,!0),"Array",{reduce:function reduce(a){return e(this,a,arguments.length,arguments[1],!1)}})},function(a,b,c){var d=c(19),e=c(56),f=c(31),g=c(35);a.exports=function(a,b,c,h,i){d(b);var j=e(a),k=f(j),l=g(j.length),m=i?l-1:0,n=i?-1:1;if(c<2)for(;;){if(m in k){h=k[m],m+=n;break}if(m+=n,i?m<0:l<=m)throw TypeError("Reduce of empty array with no initial value")}for(;i?m>=0:l>m;m+=n)m in k&&(h=b(h,k[m],m,j));return h}},function(a,b,c){var d=c(6),e=c(172);d(d.P+d.F*!c(160)([].reduceRight,!0),"Array",{reduceRight:function reduceRight(a){return e(this,a,arguments.length,arguments[1],!0)}})},function(a,b,c){var d=c(6),e=c(34)(!1),f=[].indexOf,g=!!f&&1/[1].indexOf(1,-0)<0;d(d.P+d.F*(g||!c(160)(f)),"Array",{indexOf:function indexOf(a){return g?f.apply(this,arguments)||0:e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(30),f=c(36),g=c(35),h=[].lastIndexOf,i=!!h&&1/[1].lastIndexOf(1,-0)<0;d(d.P+d.F*(i||!c(160)(h)),"Array",{lastIndexOf:function lastIndexOf(a){if(i)return h.apply(this,arguments)||0;var b=e(this),c=g(b.length),d=c-1;for(arguments.length>1&&(d=Math.min(d,f(arguments[1]))),d<0&&(d=c+d);d>=0;d--)if(d in b&&b[d]===a)return d||0;return-1}})},function(a,b,c){var d=c(6);d(d.P,"Array",{copyWithin:c(177)}),c(178)("copyWithin")},function(a,b,d){var e=d(56),f=d(37),g=d(35);a.exports=[].copyWithin||function copyWithin(a,b){var d=e(this),h=g(d.length),i=f(a,h),j=f(b,h),k=arguments.length>2?arguments[2]:c,l=Math.min((k===c?h:f(k,h))-j,h-i),m=1;for(j<i&&i<j+l&&(m=-1,j+=l-1,i+=l-1);l-- >0;)j in d?d[i]=d[j]:delete d[i],i+=m,j+=m;return d}},function(a,b,d){var e=d(23)("unscopables"),f=Array.prototype;f[e]==c&&d(8)(f,e,{}),a.exports=function(a){f[e][a]=!0}},function(a,b,c){var d=c(6);d(d.P,"Array",{fill:c(180)}),c(178)("fill")},function(a,b,d){var e=d(56),f=d(37),g=d(35);a.exports=function fill(a){for(var b=e(this),d=g(b.length),h=arguments.length,i=f(h>1?arguments[1]:c,d),j=h>2?arguments[2]:c,k=j===c?d:f(j,d);k>i;)b[i++]=a;return b}},function(a,b,d){var e=d(6),f=d(164)(5),g="find",h=!0;g in[]&&Array(1)[g](function(){h=!1}),e(e.P+e.F*h,"Array",{find:function find(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(178)(g)},function(a,b,d){var e=d(6),f=d(164)(6),g="findIndex",h=!0;g in[]&&Array(1)[g](function(){h=!1}),e(e.P+e.F*h,"Array",{findIndex:function findIndex(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(178)(g)},function(a,b,d){var e=d(178),f=d(184),g=d(135),h=d(30);a.exports=d(134)(Array,"Array",function(a,b){this._t=h(a),this._i=0,this._k=b},function(){var a=this._t,b=this._k,d=this._i++;return!a||d>=a.length?(this._t=c,f(1)):"keys"==b?f(0,d):"values"==b?f(0,a[d]):f(0,[d,a[d]])},"values"),g.Arguments=g.Array,e("keys"),e("values"),e("entries")},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(a,b,c){c(186)("Array")},function(a,b,c){var d=c(2),e=c(9),f=c(4),g=c(23)("species");a.exports=function(a){var b=d[a];f&&b&&!b[g]&&e.f(b,g,{configurable:!0,get:function(){return this}})}},function(a,b,d){var e=d(2),f=d(80),g=d(9).f,h=d(48).f,i=d(128),j=d(188),k=e.RegExp,l=k,m=k.prototype,n=/a/g,o=/a/g,p=new k(n)!==n;if(d(4)&&(!p||d(5)(function(){return o[d(23)("match")]=!1,k(n)!=n||k(o)==o||"/a/i"!=k(n,"i")}))){k=function RegExp(a,b){var d=this instanceof k,e=i(a),g=b===c;return!d&&e&&a.constructor===k&&g?a:f(p?new l(e&&!g?a.source:a,b):l((e=a instanceof k)?a.source:a,e&&g?j.call(a):b),d?this:m,k)};for(var q=(function(a){a in k||g(k,a,{configurable:!0,get:function(){return l[a]},set:function(b){l[a]=b}})}),r=h(l),s=0;r.length>s;)q(r[s++]);m.constructor=k,k.prototype=m,d(16)(e,"RegExp",k)}d(186)("RegExp")},function(a,b,c){var d=c(10);a.exports=function(){var a=d(this),b="";return a.global&&(b+="g"),a.ignoreCase&&(b+="i"),a.multiline&&(b+="m"),a.unicode&&(b+="u"),a.sticky&&(b+="y"),b}},function(a,b,d){d(190);var e=d(10),f=d(188),g=d(4),h="toString",i=/./[h],j=function(a){d(16)(RegExp.prototype,h,a,!0)};d(5)(function(){return"/a/b"!=i.call({source:"a",flags:"b"})})?j(function toString(){var a=e(this);return"/".concat(a.source,"/","flags"in a?a.flags:!g&&a instanceof RegExp?f.call(a):c)}):i.name!=h&&j(function toString(){return i.call(this)})},function(a,b,c){c(4)&&"g"!=/./g.flags&&c(9).f(RegExp.prototype,"flags",{configurable:!0,get:c(188)})},function(a,b,d){d(192)("match",1,function(a,b,d){return[function match(d){var e=a(this),f=d==c?c:d[b];return f!==c?f.call(d,e):new RegExp(d)[b](String(e))},d]})},function(a,b,c){var d=c(8),e=c(16),f=c(5),g=c(33),h=c(23);a.exports=function(a,b,c){var i=h(a),j=c(g,i,""[a]),k=j[0],l=j[1];f(function(){var b={};return b[i]=function(){return 7},7!=""[a](b)})&&(e(String.prototype,a,k),d(RegExp.prototype,i,2==b?function(a,b){return l.call(a,this,b)}:function(a){return l.call(a,this)}))}},function(a,b,d){d(192)("replace",2,function(a,b,d){return[function replace(e,f){var g=a(this),h=e==c?c:e[b];return h!==c?h.call(e,g,f):d.call(String(g),e,f)},d]})},function(a,b,d){d(192)("search",1,function(a,b,d){return[function search(d){var e=a(this),f=d==c?c:d[b];return f!==c?f.call(d,e):new RegExp(d)[b](String(e))},d]})},function(a,b,d){d(192)("split",2,function(a,b,e){var f=d(128),g=e,h=[].push,i="split",j="length",k="lastIndex";if("c"=="abbc"[i](/(b)*/)[1]||4!="test"[i](/(?:)/,-1)[j]||2!="ab"[i](/(?:ab)*/)[j]||4!="."[i](/(.?)(.?)/)[j]||"."[i](/()()/)[j]>1||""[i](/.?/)[j]){var l=/()??/.exec("")[1]===c;e=function(a,b){var d=String(this);if(a===c&&0===b)return[];if(!f(a))return g.call(d,a,b);var e,i,m,n,o,p=[],q=(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.unicode?"u":"")+(a.sticky?"y":""),r=0,s=b===c?4294967295:b>>>0,t=new RegExp(a.source,q+"g");for(l||(e=new RegExp("^"+t.source+"$(?!\\s)",q));(i=t.exec(d))&&(m=i.index+i[0][j],!(m>r&&(p.push(d.slice(r,i.index)),!l&&i[j]>1&&i[0].replace(e,function(){for(o=1;o<arguments[j]-2;o++)arguments[o]===c&&(i[o]=c)}),i[j]>1&&i.index<d[j]&&h.apply(p,i.slice(1)),n=i[0][j],r=m,p[j]>=s)));)t[k]===i.index&&t[k]++;return r===d[j]?!n&&t.test("")||p.push(""):p.push(d.slice(r)),p[j]>s?p.slice(0,s):p}}else"0"[i](c,0)[j]&&(e=function(a,b){return a===c&&0===b?[]:g.call(this,a,b)});return[function split(d,f){var g=a(this),h=d==c?c:d[b];return h!==c?h.call(d,g,f):e.call(String(g),d,f)},e]})},function(a,b,d){var e,f,g,h=d(26),i=d(2),j=d(18),k=d(73),l=d(6),m=d(11),n=d(19),o=d(197),p=d(198),q=d(199),r=d(200).set,s=d(201)(),t="Promise",u=i.TypeError,v=i.process,w=i[t],v=i.process,x="process"==k(v),y=function(){},z=!!function(){try{var a=w.resolve(1),b=(a.constructor={})[d(23)("species")]=function(a){a(y,y)};return(x||"function"==typeof PromiseRejectionEvent)&&a.then(y)instanceof b}catch(c){}}(),A=function(a,b){return a===b||a===w&&b===g},B=function(a){var b;return!(!m(a)||"function"!=typeof(b=a.then))&&b},C=function(a){return A(w,a)?new D(a):new f(a)},D=f=function(a){var b,d;this.promise=new a(function(a,e){if(b!==c||d!==c)throw u("Bad Promise constructor");b=a,d=e}),this.resolve=n(b),this.reject=n(d)},E=function(a){try{a()}catch(b){return{error:b}}},F=function(a,b){if(!a._n){a._n=!0;var c=a._c;s(function(){for(var d=a._v,e=1==a._s,f=0,g=function(b){var c,f,g=e?b.ok:b.fail,h=b.resolve,i=b.reject,j=b.domain;try{g?(e||(2==a._h&&I(a),a._h=1),g===!0?c=d:(j&&j.enter(),c=g(d),j&&j.exit()),c===b.promise?i(u("Promise-chain cycle")):(f=B(c))?f.call(c,h,i):h(c)):i(d)}catch(k){i(k)}};c.length>f;)g(c[f++]);a._c=[],a._n=!1,b&&!a._h&&G(a)})}},G=function(a){r.call(i,function(){var b,d,e,f=a._v;if(H(a)&&(b=E(function(){x?v.emit("unhandledRejection",f,a):(d=i.onunhandledrejection)?d({promise:a,reason:f}):(e=i.console)&&e.error&&e.error("Unhandled promise rejection",f)}),a._h=x||H(a)?2:1),a._a=c,b)throw b.error})},H=function(a){if(1==a._h)return!1;for(var b,c=a._a||a._c,d=0;c.length>d;)if(b=c[d++],b.fail||!H(b.promise))return!1;return!0},I=function(a){r.call(i,function(){var b;x?v.emit("rejectionHandled",a):(b=i.onrejectionhandled)&&b({promise:a,reason:a._v})})},J=function(a){var b=this;b._d||(b._d=!0,b=b._w||b,b._v=a,b._s=2,b._a||(b._a=b._c.slice()),F(b,!0))},K=function(a){var b,c=this;if(!c._d){c._d=!0,c=c._w||c;try{if(c===a)throw u("Promise can't be resolved itself");(b=B(a))?s(function(){var d={_w:c,_d:!1};try{b.call(a,j(K,d,1),j(J,d,1))}catch(e){J.call(d,e)}}):(c._v=a,c._s=1,F(c,!1))}catch(d){J.call({_w:c,_d:!1},d)}}};z||(w=function Promise(a){o(this,w,t,"_h"),n(a),e.call(this);try{a(j(K,this,1),j(J,this,1))}catch(b){J.call(this,b)}},e=function Promise(a){this._c=[],this._a=c,this._s=0,this._d=!1,this._v=c,this._h=0,this._n=!1},e.prototype=d(202)(w.prototype,{then:function then(a,b){var d=C(q(this,w));return d.ok="function"!=typeof a||a,d.fail="function"==typeof b&&b,d.domain=x?v.domain:c,this._c.push(d),this._a&&this._a.push(d),this._s&&F(this,!1),d.promise},"catch":function(a){return this.then(c,a)}}),D=function(){var a=new e;this.promise=a,this.resolve=j(K,a,1),this.reject=j(J,a,1)}),l(l.G+l.W+l.F*!z,{Promise:w}),d(22)(w,t),d(186)(t),g=d(7)[t],l(l.S+l.F*!z,t,{reject:function reject(a){var b=C(this),c=b.reject;return c(a),b.promise}}),l(l.S+l.F*(h||!z),t,{resolve:function resolve(a){if(a instanceof w&&A(a.constructor,this))return a;var b=C(this),c=b.resolve;return c(a),b.promise}}),l(l.S+l.F*!(z&&d(157)(function(a){w.all(a)["catch"](y)})),t,{all:function all(a){var b=this,d=C(b),e=d.resolve,f=d.reject,g=E(function(){var d=[],g=0,h=1;p(a,!1,function(a){var i=g++,j=!1;d.push(c),h++,b.resolve(a).then(function(a){j||(j=!0,d[i]=a,--h||e(d))},f)}),--h||e(d)});return g&&f(g.error),d.promise},race:function race(a){var b=this,c=C(b),d=c.reject,e=E(function(){p(a,!1,function(a){b.resolve(a).then(c.resolve,d)})});return e&&d(e.error),c.promise}})},function(a,b){a.exports=function(a,b,d,e){if(!(a instanceof b)||e!==c&&e in a)throw TypeError(d+": incorrect invocation!");return a}},function(a,b,c){var d=c(18),e=c(153),f=c(154),g=c(10),h=c(35),i=c(156),j={},k={},b=a.exports=function(a,b,c,l,m){var n,o,p,q,r=m?function(){return a}:i(a),s=d(c,l,b?2:1),t=0;if("function"!=typeof r)throw TypeError(a+" is not iterable!");if(f(r)){for(n=h(a.length);n>t;t++)if(q=b?s(g(o=a[t])[0],o[1]):s(a[t]),q===j||q===k)return q}else for(p=r.call(a);!(o=p.next()).done;)if(q=e(p,s,o.value,b),q===j||q===k)return q};b.BREAK=j,b.RETURN=k},function(a,b,d){var e=d(10),f=d(19),g=d(23)("species");a.exports=function(a,b){var d,h=e(a).constructor;return h===c||(d=e(h)[g])==c?b:f(d)}},function(a,b,c){var d,e,f,g=c(18),h=c(76),i=c(46),j=c(13),k=c(2),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r="onreadystatechange",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function setImmediate(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function clearImmediate(a){delete q[a]},"process"==c(32)(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(e=new o,f=e.port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),a.exports={set:m,clear:n}},function(a,b,d){var e=d(2),f=d(200).set,g=e.MutationObserver||e.WebKitMutationObserver,h=e.process,i=e.Promise,j="process"==d(32)(h);a.exports=function(){var a,b,d,k=function(){var e,f;for(j&&(e=h.domain)&&e.exit();a;){f=a.fn,a=a.next;try{f()}catch(g){throw a?d():b=c,g}}b=c,e&&e.enter()};if(j)d=function(){h.nextTick(k)};else if(g){var l=!0,m=document.createTextNode("");new g(k).observe(m,{characterData:!0}),d=function(){m.data=l=!l}}else if(i&&i.resolve){var n=i.resolve();d=function(){n.then(k)}}else d=function(){f.call(e,k)};return function(e){var f={fn:e,next:c};b&&(b.next=f),a||(a=f,d()),b=f}}},function(a,b,c){var d=c(16);a.exports=function(a,b,c){for(var e in b)d(a,e,b[e],c);return a}},function(a,b,d){var e=d(204);a.exports=d(205)("Map",function(a){return function Map(){return a(this,arguments.length>0?arguments[0]:c)}},{get:function get(a){var b=e.getEntry(this,a);return b&&b.v},set:function set(a,b){return e.def(this,0===a?0:a,b)}},e,!0)},function(a,b,d){var e=d(9).f,f=d(44),g=d(202),h=d(18),i=d(197),j=d(33),k=d(198),l=d(134),m=d(184),n=d(186),o=d(4),p=d(20).fastKey,q=o?"_s":"size",r=function(a,b){var c,d=p(b);if("F"!==d)return a._i[d];for(c=a._f;c;c=c.n)if(c.k==b)return c};a.exports={getConstructor:function(a,b,d,l){var m=a(function(a,e){i(a,m,b,"_i"),a._i=f(null),a._f=c,a._l=c,a[q]=0,e!=c&&k(e,d,a[l],a)});return g(m.prototype,{clear:function clear(){for(var a=this,b=a._i,d=a._f;d;d=d.n)d.r=!0,d.p&&(d.p=d.p.n=c),delete b[d.i];a._f=a._l=c,a[q]=0},"delete":function(a){var b=this,c=r(b,a);if(c){var d=c.n,e=c.p;delete b._i[c.i],c.r=!0,e&&(e.n=d),d&&(d.p=e),b._f==c&&(b._f=d),b._l==c&&(b._l=e),b[q]--}return!!c},forEach:function forEach(a){i(this,m,"forEach");for(var b,d=h(a,arguments.length>1?arguments[1]:c,3);b=b?b.n:this._f;)for(d(b.v,b.k,this);b&&b.r;)b=b.p},has:function has(a){return!!r(this,a)}}),o&&e(m.prototype,"size",{get:function(){return j(this[q])}}),m},def:function(a,b,d){var e,f,g=r(a,b);return g?g.v=d:(a._l=g={i:f=p(b,!0),k:b,v:d,p:e=a._l,n:c,r:!1},a._f||(a._f=g),e&&(e.n=g),a[q]++,"F"!==f&&(a._i[f]=g)),a},getEntry:r,setStrong:function(a,b,d){l(a,b,function(a,b){this._t=a,this._k=b,this._l=c},function(){for(var a=this,b=a._k,d=a._l;d&&d.r;)d=d.p;return a._t&&(a._l=d=d?d.n:a._t._f)?"keys"==b?m(0,d.k):"values"==b?m(0,d.v):m(0,[d.k,d.v]):(a._t=c,m(1))},d?"entries":"values",!d,!0),n(b)}}},function(a,b,d){var e=d(2),f=d(6),g=d(16),h=d(202),i=d(20),j=d(198),k=d(197),l=d(11),m=d(5),n=d(157),o=d(22),p=d(80);a.exports=function(a,b,d,q,r,s){var t=e[a],u=t,v=r?"set":"add",w=u&&u.prototype,x={},y=function(a){var b=w[a];g(w,a,"delete"==a?function(a){return!(s&&!l(a))&&b.call(this,0===a?0:a)}:"has"==a?function has(a){return!(s&&!l(a))&&b.call(this,0===a?0:a)}:"get"==a?function get(a){return s&&!l(a)?c:b.call(this,0===a?0:a)}:"add"==a?function add(a){return b.call(this,0===a?0:a),this}:function set(a,c){return b.call(this,0===a?0:a,c),this})};if("function"==typeof u&&(s||w.forEach&&!m(function(){(new u).entries().next()}))){var z=new u,A=z[v](s?{}:-0,1)!=z,B=m(function(){z.has(1)}),C=n(function(a){new u(a)}),D=!s&&m(function(){for(var a=new u,b=5;b--;)a[v](b,b);return!a.has(-0)});C||(u=b(function(b,d){k(b,u,a);var e=p(new t,b,u);return d!=c&&j(d,r,e[v],e),e}),u.prototype=w,w.constructor=u),(B||D)&&(y("delete"),y("has"),r&&y("get")),(D||A)&&y(v),s&&w.clear&&delete w.clear}else u=q.getConstructor(b,a,r,v),h(u.prototype,d),i.NEED=!0;return o(u,a),x[a]=u,f(f.G+f.W+f.F*(u!=t),x),s||q.setStrong(u,a,r),u}},function(a,b,d){var e=d(204);a.exports=d(205)("Set",function(a){return function Set(){return a(this,arguments.length>0?arguments[0]:c)}},{add:function add(a){return e.def(this,a=0===a?0:a,a)}},e)},function(a,b,d){var e,f=d(164)(0),g=d(16),h=d(20),i=d(67),j=d(208),k=d(11),l=h.getWeak,m=Object.isExtensible,n=j.ufstore,o={},p=function(a){return function WeakMap(){return a(this,arguments.length>0?arguments[0]:c)}},q={get:function get(a){if(k(a)){var b=l(a);return b===!0?n(this).get(a):b?b[this._i]:c}},set:function set(a,b){return j.def(this,a,b)}},r=a.exports=d(205)("WeakMap",p,q,j,!0,!0);7!=(new r).set((Object.freeze||Object)(o),7).get(o)&&(e=j.getConstructor(p),i(e.prototype,q),h.NEED=!0,f(["delete","has","get","set"],function(a){var b=r.prototype,c=b[a];g(b,a,function(b,d){if(k(b)&&!m(b)){this._f||(this._f=new e);var f=this._f[a](b,d);return"set"==a?this:f}return c.call(this,b,d)})}))},function(a,b,d){var e=d(202),f=d(20).getWeak,g=d(10),h=d(11),i=d(197),j=d(198),k=d(164),l=d(3),m=k(5),n=k(6),o=0,p=function(a){return a._l||(a._l=new q)},q=function(){this.a=[]},r=function(a,b){return m(a.a,function(a){return a[0]===b})};q.prototype={get:function(a){var b=r(this,a);if(b)return b[1]},has:function(a){return!!r(this,a)},set:function(a,b){var c=r(this,a);c?c[1]=b:this.a.push([a,b])},"delete":function(a){var b=n(this.a,function(b){return b[0]===a});return~b&&this.a.splice(b,1),!!~b}},a.exports={getConstructor:function(a,b,d,g){var k=a(function(a,e){i(a,k,b,"_i"),a._i=o++,a._l=c,e!=c&&j(e,d,a[g],a)});return e(k.prototype,{"delete":function(a){if(!h(a))return!1;var b=f(a);return b===!0?p(this)["delete"](a):b&&l(b,this._i)&&delete b[this._i]},has:function has(a){if(!h(a))return!1;var b=f(a);return b===!0?p(this).has(a):b&&l(b,this._i)}}),k},def:function(a,b,c){var d=f(g(b),!0);return d===!0?p(a).set(b,c):d[a._i]=c,a},ufstore:p}},function(a,b,d){var e=d(208);d(205)("WeakSet",function(a){return function WeakSet(){return a(this,arguments.length>0?arguments[0]:c)}},{add:function add(a){return e.def(this,a,!0)}},e,!1,!0)},function(a,b,c){var d=c(6),e=c(19),f=c(10),g=(c(2).Reflect||{}).apply,h=Function.apply;d(d.S+d.F*!c(5)(function(){g(function(){})}),"Reflect",{apply:function apply(a,b,c){var d=e(a),i=f(c);return g?g(d,b,i):h.call(d,b,i)}})},function(a,b,c){var d=c(6),e=c(44),f=c(19),g=c(10),h=c(11),i=c(5),j=c(75),k=(c(2).Reflect||{}).construct,l=i(function(){function F(){}return!(k(function(){},[],F)instanceof F)}),m=!i(function(){k(function(){})});d(d.S+d.F*(l||m),"Reflect",{construct:function construct(a,b){f(a),g(b);var c=arguments.length<3?a:f(arguments[2]);if(m&&!l)return k(a,b,c);if(a==c){switch(b.length){case 0:return new a;case 1:return new a(b[0]);case 2:return new a(b[0],b[1]);case 3:return new a(b[0],b[1],b[2]);case 4:return new a(b[0],b[1],b[2],b[3])}var d=[null];return d.push.apply(d,b),new(j.apply(a,d))}var i=c.prototype,n=e(h(i)?i:Object.prototype),o=Function.apply.call(a,n,b);return h(o)?o:n}})},function(a,b,c){var d=c(9),e=c(6),f=c(10),g=c(14);e(e.S+e.F*c(5)(function(){Reflect.defineProperty(d.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function defineProperty(a,b,c){f(a),b=g(b,!0),f(c);try{return d.f(a,b,c),!0}catch(e){return!1}}})},function(a,b,c){var d=c(6),e=c(49).f,f=c(10);d(d.S,"Reflect",{deleteProperty:function deleteProperty(a,b){var c=e(f(a),b);return!(c&&!c.configurable)&&delete a[b]}})},function(a,b,d){var e=d(6),f=d(10),g=function(a){this._t=f(a),this._i=0;var b,c=this._k=[];for(b in a)c.push(b)};d(136)(g,"Object",function(){var a,b=this,d=b._k;do if(b._i>=d.length)return{value:c,done:!0};while(!((a=d[b._i++])in b._t));return{value:a,done:!1}}),e(e.S,"Reflect",{enumerate:function enumerate(a){return new g(a)}})},function(a,b,d){function get(a,b){var d,h,k=arguments.length<3?a:arguments[2];return j(a)===k?a[b]:(d=e.f(a,b))?g(d,"value")?d.value:d.get!==c?d.get.call(k):c:i(h=f(a))?get(h,b,k):void 0}var e=d(49),f=d(57),g=d(3),h=d(6),i=d(11),j=d(10);h(h.S,"Reflect",{get:get})},function(a,b,c){var d=c(49),e=c(6),f=c(10);e(e.S,"Reflect",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(a,b){return d.f(f(a),b)}})},function(a,b,c){var d=c(6),e=c(57),f=c(10);d(d.S,"Reflect",{getPrototypeOf:function getPrototypeOf(a){return e(f(a))}})},function(a,b,c){var d=c(6);d(d.S,"Reflect",{has:function has(a,b){return b in a}})},function(a,b,c){var d=c(6),e=c(10),f=Object.isExtensible;d(d.S,"Reflect",{isExtensible:function isExtensible(a){return e(a),!f||f(a)}})},function(a,b,c){var d=c(6);d(d.S,"Reflect",{ownKeys:c(221)})},function(a,b,c){var d=c(48),e=c(41),f=c(10),g=c(2).Reflect;a.exports=g&&g.ownKeys||function ownKeys(a){var b=d.f(f(a)),c=e.f;return c?b.concat(c(a)):b}},function(a,b,c){var d=c(6),e=c(10),f=Object.preventExtensions;d(d.S,"Reflect",{preventExtensions:function preventExtensions(a){e(a);try{return f&&f(a),!0}catch(b){return!1}}})},function(a,b,d){function set(a,b,d){var i,m,n=arguments.length<4?a:arguments[3],o=f.f(k(a),b);if(!o){if(l(m=g(a)))return set(m,b,d,n);o=j(0)}return h(o,"value")?!(o.writable===!1||!l(n))&&(i=f.f(n,b)||j(0),i.value=d,e.f(n,b,i),!0):o.set!==c&&(o.set.call(n,d),!0)}var e=d(9),f=d(49),g=d(57),h=d(3),i=d(6),j=d(15),k=d(10),l=d(11);i(i.S,"Reflect",{set:set})},function(a,b,c){var d=c(6),e=c(71);e&&d(d.S,"Reflect",{setPrototypeOf:function setPrototypeOf(a,b){e.check(a,b);try{return e.set(a,b),!0}catch(c){return!1}}})},function(a,b,c){var d=c(6);d(d.S,"Date",{now:function(){return(new Date).getTime()}})},function(a,b,c){var d=c(6),e=c(56),f=c(14);d(d.P+d.F*c(5)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function toJSON(a){var b=e(this),c=f(b);return"number"!=typeof c||isFinite(c)?b.toISOString():null}})},function(a,b,c){var d=c(6),e=c(5),f=Date.prototype.getTime,g=function(a){return a>9?a:"0"+a};d(d.P+d.F*(e(function(){return"0385-07-25T07:06:39.999Z"!=new Date(-5e13-1).toISOString()})||!e(function(){new Date(NaN).toISOString()})),"Date",{toISOString:function toISOString(){if(!isFinite(f.call(this)))throw RangeError("Invalid time value");var a=this,b=a.getUTCFullYear(),c=a.getUTCMilliseconds(),d=b<0?"-":b>9999?"+":"";return d+("00000"+Math.abs(b)).slice(d?-6:-4)+"-"+g(a.getUTCMonth()+1)+"-"+g(a.getUTCDate())+"T"+g(a.getUTCHours())+":"+g(a.getUTCMinutes())+":"+g(a.getUTCSeconds())+"."+(c>99?c:"0"+g(c))+"Z"}})},function(a,b,c){var d=Date.prototype,e="Invalid Date",f="toString",g=d[f],h=d.getTime;new Date(NaN)+""!=e&&c(16)(d,f,function toString(){var a=h.call(this);return a===a?g.call(this):e})},function(a,b,c){var d=c(23)("toPrimitive"),e=Date.prototype;d in e||c(8)(e,d,c(230))},function(a,b,c){var d=c(10),e=c(14),f="number";a.exports=function(a){if("string"!==a&&a!==f&&"default"!==a)throw TypeError("Incorrect hint");return e(d(this),a!=f)}},function(a,b,d){var e=d(6),f=d(232),g=d(233),h=d(10),i=d(37),j=d(35),k=d(11),l=d(2).ArrayBuffer,m=d(199),n=g.ArrayBuffer,o=g.DataView,p=f.ABV&&l.isView,q=n.prototype.slice,r=f.VIEW,s="ArrayBuffer";e(e.G+e.W+e.F*(l!==n),{ArrayBuffer:n}),e(e.S+e.F*!f.CONSTR,s,{isView:function isView(a){return p&&p(a)||k(a)&&r in a}}),e(e.P+e.U+e.F*d(5)(function(){return!new n(2).slice(1,c).byteLength}),s,{slice:function slice(a,b){if(q!==c&&b===c)return q.call(h(this),a);for(var d=h(this).byteLength,e=i(a,d),f=i(b===c?d:b,d),g=new(m(this,n))(j(f-e)),k=new o(this),l=new o(g),p=0;e<f;)l.setUint8(p++,k.getUint8(e++));return g}}),d(186)(s)},function(a,b,c){for(var d,e=c(2),f=c(8),g=c(17),h=g("typed_array"),i=g("view"),j=!(!e.ArrayBuffer||!e.DataView),k=j,l=0,m=9,n="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<m;)(d=e[n[l++]])?(f(d.prototype,h,!0),f(d.prototype,i,!0)):k=!1;a.exports={ABV:j,CONSTR:k,TYPED:h,VIEW:i}},function(a,b,d){var e=d(2),f=d(4),g=d(26),h=d(232),i=d(8),j=d(202),k=d(5),l=d(197),m=d(36),n=d(35),o=d(48).f,p=d(9).f,q=d(180),r=d(22),s="ArrayBuffer",t="DataView",u="prototype",v="Wrong length!",w="Wrong index!",x=e[s],y=e[t],z=e.Math,A=e.RangeError,B=e.Infinity,C=x,D=z.abs,E=z.pow,F=z.floor,G=z.log,H=z.LN2,I="buffer",J="byteLength",K="byteOffset",L=f?"_b":I,M=f?"_l":J,N=f?"_o":K,O=function(a,b,c){var d,e,f,g=Array(c),h=8*c-b-1,i=(1<<h)-1,j=i>>1,k=23===b?E(2,-24)-E(2,-77):0,l=0,m=a<0||0===a&&1/a<0?1:0;for(a=D(a),a!=a||a===B?(e=a!=a?1:0,d=i):(d=F(G(a)/H),a*(f=E(2,-d))<1&&(d--,f*=2),a+=d+j>=1?k/f:k*E(2,1-j),a*f>=2&&(d++,f/=2),d+j>=i?(e=0,d=i):d+j>=1?(e=(a*f-1)*E(2,b),d+=j):(e=a*E(2,j-1)*E(2,b),d=0));b>=8;g[l++]=255&e,e/=256,b-=8);for(d=d<<b|e,h+=b;h>0;g[l++]=255&d,d/=256,h-=8);return g[--l]|=128*m,g},P=function(a,b,c){var d,e=8*c-b-1,f=(1<<e)-1,g=f>>1,h=e-7,i=c-1,j=a[i--],k=127&j;for(j>>=7;h>0;k=256*k+a[i],i--,h-=8);for(d=k&(1<<-h)-1,k>>=-h,h+=b;h>0;d=256*d+a[i],i--,h-=8);if(0===k)k=1-g;else{if(k===f)return d?NaN:j?-B:B;d+=E(2,b),k-=g}return(j?-1:1)*d*E(2,k-b)},Q=function(a){return a[3]<<24|a[2]<<16|a[1]<<8|a[0]},R=function(a){return[255&a]},S=function(a){return[255&a,a>>8&255]},T=function(a){return[255&a,a>>8&255,a>>16&255,a>>24&255]},U=function(a){return O(a,52,8)},V=function(a){return O(a,23,4)},W=function(a,b,c){p(a[u],b,{get:function(){return this[c]}})},X=function(a,b,c,d){var e=+c,f=m(e);if(e!=f||f<0||f+b>a[M])throw A(w);var g=a[L]._b,h=f+a[N],i=g.slice(h,h+b);return d?i:i.reverse()},Y=function(a,b,c,d,e,f){var g=+c,h=m(g);if(g!=h||h<0||h+b>a[M])throw A(w);for(var i=a[L]._b,j=h+a[N],k=d(+e),l=0;l<b;l++)i[j+l]=k[f?l:b-l-1]},Z=function(a,b){l(a,x,s);var c=+b,d=n(c);if(c!=d)throw A(v);return d};if(h.ABV){if(!k(function(){new x})||!k(function(){new x(.5)})){x=function ArrayBuffer(a){return new C(Z(this,a))};for(var $,_=x[u]=C[u],aa=o(C),ba=0;aa.length>ba;)($=aa[ba++])in x||i(x,$,C[$]);g||(_.constructor=x)}var ca=new y(new x(2)),da=y[u].setInt8;ca.setInt8(0,2147483648),ca.setInt8(1,2147483649),!ca.getInt8(0)&&ca.getInt8(1)||j(y[u],{setInt8:function setInt8(a,b){da.call(this,a,b<<24>>24)},setUint8:function setUint8(a,b){da.call(this,a,b<<24>>24)}},!0)}else x=function ArrayBuffer(a){var b=Z(this,a);this._b=q.call(Array(b),0),this[M]=b},y=function DataView(a,b,d){l(this,y,t),l(a,x,t);var e=a[M],f=m(b);if(f<0||f>e)throw A("Wrong offset!");if(d=d===c?e-f:n(d),f+d>e)throw A(v);this[L]=a,this[N]=f,this[M]=d},f&&(W(x,J,"_l"),W(y,I,"_b"),W(y,J,"_l"),W(y,K,"_o")),j(y[u],{getInt8:function getInt8(a){return X(this,1,a)[0]<<24>>24},getUint8:function getUint8(a){return X(this,1,a)[0]},getInt16:function getInt16(a){var b=X(this,2,a,arguments[1]);return(b[1]<<8|b[0])<<16>>16},getUint16:function getUint16(a){var b=X(this,2,a,arguments[1]);return b[1]<<8|b[0]},getInt32:function getInt32(a){return Q(X(this,4,a,arguments[1]))},getUint32:function getUint32(a){return Q(X(this,4,a,arguments[1]))>>>0},getFloat32:function getFloat32(a){return P(X(this,4,a,arguments[1]),23,4)},getFloat64:function getFloat64(a){return P(X(this,8,a,arguments[1]),52,8)},setInt8:function setInt8(a,b){Y(this,1,a,R,b)},setUint8:function setUint8(a,b){Y(this,1,a,R,b)},setInt16:function setInt16(a,b){Y(this,2,a,S,b,arguments[2])},setUint16:function setUint16(a,b){Y(this,2,a,S,b,arguments[2])},setInt32:function setInt32(a,b){Y(this,4,a,T,b,arguments[2])},setUint32:function setUint32(a,b){Y(this,4,a,T,b,arguments[2])},setFloat32:function setFloat32(a,b){Y(this,4,a,V,b,arguments[2])},setFloat64:function setFloat64(a,b){Y(this,8,a,U,b,arguments[2])}});r(x,s),r(y,t),i(y[u],h.VIEW,!0),b[s]=x,b[t]=y},function(a,b,c){var d=c(6);d(d.G+d.W+d.F*!c(232).ABV,{DataView:c(233).DataView})},function(a,b,c){c(236)("Int8",1,function(a){return function Int8Array(b,c,d){return a(this,b,c,d)}})},function(a,b,d){if(d(4)){var e=d(26),f=d(2),g=d(5),h=d(6),i=d(232),j=d(233),k=d(18),l=d(197),m=d(15),n=d(8),o=d(202),p=d(36),q=d(35),r=d(37),s=d(14),t=d(3),u=d(69),v=d(73),w=d(11),x=d(56),y=d(154),z=d(44),A=d(57),B=d(48).f,C=d(156),D=d(17),E=d(23),F=d(164),G=d(34),H=d(199),I=d(183),J=d(135),K=d(157),L=d(186),M=d(180),N=d(177),O=d(9),P=d(49),Q=O.f,R=P.f,S=f.RangeError,T=f.TypeError,U=f.Uint8Array,V="ArrayBuffer",W="Shared"+V,X="BYTES_PER_ELEMENT",Y="prototype",Z=Array[Y],$=j.ArrayBuffer,_=j.DataView,aa=F(0),ba=F(2),ca=F(3),da=F(4),ea=F(5),fa=F(6),ga=G(!0),ha=G(!1),ia=I.values,ja=I.keys,ka=I.entries,la=Z.lastIndexOf,ma=Z.reduce,na=Z.reduceRight,oa=Z.join,pa=Z.sort,qa=Z.slice,ra=Z.toString,sa=Z.toLocaleString,ta=E("iterator"),ua=E("toStringTag"),va=D("typed_constructor"),wa=D("def_constructor"),xa=i.CONSTR,ya=i.TYPED,za=i.VIEW,Aa="Wrong length!",Ba=F(1,function(a,b){return Ha(H(a,a[wa]),b)}),Ca=g(function(){return 1===new U(new Uint16Array([1]).buffer)[0]}),Da=!!U&&!!U[Y].set&&g(function(){new U(1).set({})}),Ea=function(a,b){if(a===c)throw T(Aa);var d=+a,e=q(a);if(b&&!u(d,e))throw S(Aa);return e},Fa=function(a,b){var c=p(a);if(c<0||c%b)throw S("Wrong offset!");return c},Ga=function(a){if(w(a)&&ya in a)return a;throw T(a+" is not a typed array!")},Ha=function(a,b){if(!(w(a)&&va in a))throw T("It is not a typed array constructor!");return new a(b)},Ia=function(a,b){return Ja(H(a,a[wa]),b)},Ja=function(a,b){for(var c=0,d=b.length,e=Ha(a,d);d>c;)e[c]=b[c++];return e},Ka=function(a,b,c){Q(a,b,{get:function(){return this._d[c]}})},La=function from(a){var b,d,e,f,g,h,i=x(a),j=arguments.length,l=j>1?arguments[1]:c,m=l!==c,n=C(i);if(n!=c&&!y(n)){for(h=n.call(i),e=[],b=0;!(g=h.next()).done;b++)e.push(g.value);i=e}for(m&&j>2&&(l=k(l,arguments[2],2)),b=0,d=q(i.length),f=Ha(this,d);d>b;b++)f[b]=m?l(i[b],b):i[b];return f},Ma=function of(){for(var a=0,b=arguments.length,c=Ha(this,b);b>a;)c[a]=arguments[a++];return c},Na=!!U&&g(function(){sa.call(new U(1))}),Oa=function toLocaleString(){return sa.apply(Na?qa.call(Ga(this)):Ga(this),arguments)},Pa={copyWithin:function copyWithin(a,b){return N.call(Ga(this),a,b,arguments.length>2?arguments[2]:c)},every:function every(a){return da(Ga(this),a,arguments.length>1?arguments[1]:c)},fill:function fill(a){return M.apply(Ga(this),arguments)},filter:function filter(a){return Ia(this,ba(Ga(this),a,arguments.length>1?arguments[1]:c))},find:function find(a){return ea(Ga(this),a,arguments.length>1?arguments[1]:c)},findIndex:function findIndex(a){return fa(Ga(this),a,arguments.length>1?arguments[1]:c)},forEach:function forEach(a){aa(Ga(this),a,arguments.length>1?arguments[1]:c)},indexOf:function indexOf(a){return ha(Ga(this),a,arguments.length>1?arguments[1]:c)},includes:function includes(a){return ga(Ga(this),a,arguments.length>1?arguments[1]:c)},join:function join(a){return oa.apply(Ga(this),arguments)},lastIndexOf:function lastIndexOf(a){
-return la.apply(Ga(this),arguments)},map:function map(a){return Ba(Ga(this),a,arguments.length>1?arguments[1]:c)},reduce:function reduce(a){return ma.apply(Ga(this),arguments)},reduceRight:function reduceRight(a){return na.apply(Ga(this),arguments)},reverse:function reverse(){for(var a,b=this,c=Ga(b).length,d=Math.floor(c/2),e=0;e<d;)a=b[e],b[e++]=b[--c],b[c]=a;return b},some:function some(a){return ca(Ga(this),a,arguments.length>1?arguments[1]:c)},sort:function sort(a){return pa.call(Ga(this),a)},subarray:function subarray(a,b){var d=Ga(this),e=d.length,f=r(a,e);return new(H(d,d[wa]))(d.buffer,d.byteOffset+f*d.BYTES_PER_ELEMENT,q((b===c?e:r(b,e))-f))}},Qa=function slice(a,b){return Ia(this,qa.call(Ga(this),a,b))},Ra=function set(a){Ga(this);var b=Fa(arguments[1],1),c=this.length,d=x(a),e=q(d.length),f=0;if(e+b>c)throw S(Aa);for(;f<e;)this[b+f]=d[f++]},Sa={entries:function entries(){return ka.call(Ga(this))},keys:function keys(){return ja.call(Ga(this))},values:function values(){return ia.call(Ga(this))}},Ta=function(a,b){return w(a)&&a[ya]&&"symbol"!=typeof b&&b in a&&String(+b)==String(b)},Ua=function getOwnPropertyDescriptor(a,b){return Ta(a,b=s(b,!0))?m(2,a[b]):R(a,b)},Va=function defineProperty(a,b,c){return!(Ta(a,b=s(b,!0))&&w(c)&&t(c,"value"))||t(c,"get")||t(c,"set")||c.configurable||t(c,"writable")&&!c.writable||t(c,"enumerable")&&!c.enumerable?Q(a,b,c):(a[b]=c.value,a)};xa||(P.f=Ua,O.f=Va),h(h.S+h.F*!xa,"Object",{getOwnPropertyDescriptor:Ua,defineProperty:Va}),g(function(){ra.call({})})&&(ra=sa=function toString(){return oa.call(this)});var Wa=o({},Pa);o(Wa,Sa),n(Wa,ta,Sa.values),o(Wa,{slice:Qa,set:Ra,constructor:function(){},toString:ra,toLocaleString:Oa}),Ka(Wa,"buffer","b"),Ka(Wa,"byteOffset","o"),Ka(Wa,"byteLength","l"),Ka(Wa,"length","e"),Q(Wa,ua,{get:function(){return this[ya]}}),a.exports=function(a,b,d,j){j=!!j;var k=a+(j?"Clamped":"")+"Array",m="Uint8Array"!=k,o="get"+a,p="set"+a,r=f[k],s=r||{},t=r&&A(r),u=!r||!i.ABV,x={},y=r&&r[Y],C=function(a,c){var d=a._d;return d.v[o](c*b+d.o,Ca)},D=function(a,c,d){var e=a._d;j&&(d=(d=Math.round(d))<0?0:d>255?255:255&d),e.v[p](c*b+e.o,d,Ca)},E=function(a,b){Q(a,b,{get:function(){return C(this,b)},set:function(a){return D(this,b,a)},enumerable:!0})};u?(r=d(function(a,d,e,f){l(a,r,k,"_d");var g,h,i,j,m=0,o=0;if(w(d)){if(!(d instanceof $||(j=v(d))==V||j==W))return ya in d?Ja(r,d):La.call(r,d);g=d,o=Fa(e,b);var p=d.byteLength;if(f===c){if(p%b)throw S(Aa);if(h=p-o,h<0)throw S(Aa)}else if(h=q(f)*b,h+o>p)throw S(Aa);i=h/b}else i=Ea(d,!0),h=i*b,g=new $(h);for(n(a,"_d",{b:g,o:o,l:h,e:i,v:new _(g)});m<i;)E(a,m++)}),y=r[Y]=z(Wa),n(y,"constructor",r)):K(function(a){new r(null),new r(a)},!0)||(r=d(function(a,d,e,f){l(a,r,k);var g;return w(d)?d instanceof $||(g=v(d))==V||g==W?f!==c?new s(d,Fa(e,b),f):e!==c?new s(d,Fa(e,b)):new s(d):ya in d?Ja(r,d):La.call(r,d):new s(Ea(d,m))}),aa(t!==Function.prototype?B(s).concat(B(t)):B(s),function(a){a in r||n(r,a,s[a])}),r[Y]=y,e||(y.constructor=r));var F=y[ta],G=!!F&&("values"==F.name||F.name==c),H=Sa.values;n(r,va,!0),n(y,ya,k),n(y,za,!0),n(y,wa,r),(j?new r(1)[ua]==k:ua in y)||Q(y,ua,{get:function(){return k}}),x[k]=r,h(h.G+h.W+h.F*(r!=s),x),h(h.S,k,{BYTES_PER_ELEMENT:b,from:La,of:Ma}),X in y||n(y,X,b),h(h.P,k,Pa),L(k),h(h.P+h.F*Da,k,{set:Ra}),h(h.P+h.F*!G,k,Sa),h(h.P+h.F*(y.toString!=ra),k,{toString:ra}),h(h.P+h.F*g(function(){new r(1).slice()}),k,{slice:Qa}),h(h.P+h.F*(g(function(){return[1,2].toLocaleString()!=new r([1,2]).toLocaleString()})||!g(function(){y.toLocaleString.call([1,2])})),k,{toLocaleString:Oa}),J[k]=G?F:H,e||G||n(y,ta,H)}}else a.exports=function(){}},function(a,b,c){c(236)("Uint8",1,function(a){return function Uint8Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Uint8",1,function(a){return function Uint8ClampedArray(b,c,d){return a(this,b,c,d)}},!0)},function(a,b,c){c(236)("Int16",2,function(a){return function Int16Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Uint16",2,function(a){return function Uint16Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Int32",4,function(a){return function Int32Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Uint32",4,function(a){return function Uint32Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Float32",4,function(a){return function Float32Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Float64",8,function(a){return function Float64Array(b,c,d){return a(this,b,c,d)}})},function(a,b,d){var e=d(6),f=d(34)(!0);e(e.P,"Array",{includes:function includes(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(178)("includes")},function(a,b,c){var d=c(6),e=c(125)(!0);d(d.P,"String",{at:function at(a){return e(this,a)}})},function(a,b,d){var e=d(6),f=d(248);e(e.P,"String",{padStart:function padStart(a){return f(this,a,arguments.length>1?arguments[1]:c,!0)}})},function(a,b,d){var e=d(35),f=d(85),g=d(33);a.exports=function(a,b,d,h){var i=String(g(a)),j=i.length,k=d===c?" ":String(d),l=e(b);if(l<=j||""==k)return i;var m=l-j,n=f.call(k,Math.ceil(m/k.length));return n.length>m&&(n=n.slice(0,m)),h?n+i:i+n}},function(a,b,d){var e=d(6),f=d(248);e(e.P,"String",{padEnd:function padEnd(a){return f(this,a,arguments.length>1?arguments[1]:c,!1)}})},function(a,b,c){c(81)("trimLeft",function(a){return function trimLeft(){return a(this,1)}},"trimStart")},function(a,b,c){c(81)("trimRight",function(a){return function trimRight(){return a(this,2)}},"trimEnd")},function(a,b,c){var d=c(6),e=c(33),f=c(35),g=c(128),h=c(188),i=RegExp.prototype,j=function(a,b){this._r=a,this._s=b};c(136)(j,"RegExp String",function next(){var a=this._r.exec(this._s);return{value:a,done:null===a}}),d(d.P,"String",{matchAll:function matchAll(a){if(e(this),!g(a))throw TypeError(a+" is not a regexp!");var b=String(this),c="flags"in i?String(a.flags):h.call(a),d=new RegExp(a.source,~c.indexOf("g")?c:"g"+c);return d.lastIndex=f(a.lastIndex),new j(d,b)}})},function(a,b,c){c(25)("asyncIterator")},function(a,b,c){c(25)("observable")},function(a,b,c){var d=c(6),e=c(221),f=c(30),g=c(49),h=c(155);d(d.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(a){for(var b,c=f(a),d=g.f,i=e(c),j={},k=0;i.length>k;)h(j,b=i[k++],d(c,b));return j}})},function(a,b,c){var d=c(6),e=c(257)(!1);d(d.S,"Object",{values:function values(a){return e(a)}})},function(a,b,c){var d=c(28),e=c(30),f=c(42).f;a.exports=function(a){return function(b){for(var c,g=e(b),h=d(g),i=h.length,j=0,k=[];i>j;)f.call(g,c=h[j++])&&k.push(a?[c,g[c]]:g[c]);return k}}},function(a,b,c){var d=c(6),e=c(257)(!0);d(d.S,"Object",{entries:function entries(a){return e(a)}})},function(a,b,c){var d=c(6),e=c(56),f=c(19),g=c(9);c(4)&&d(d.P+c(260),"Object",{__defineGetter__:function __defineGetter__(a,b){g.f(e(this),a,{get:f(b),enumerable:!0,configurable:!0})}})},function(a,b,c){a.exports=c(26)||!c(5)(function(){var a=Math.random();__defineSetter__.call(null,a,function(){}),delete c(2)[a]})},function(a,b,c){var d=c(6),e=c(56),f=c(19),g=c(9);c(4)&&d(d.P+c(260),"Object",{__defineSetter__:function __defineSetter__(a,b){g.f(e(this),a,{set:f(b),enumerable:!0,configurable:!0})}})},function(a,b,c){var d=c(6),e=c(56),f=c(14),g=c(57),h=c(49).f;c(4)&&d(d.P+c(260),"Object",{__lookupGetter__:function __lookupGetter__(a){var b,c=e(this),d=f(a,!0);do if(b=h(c,d))return b.get;while(c=g(c))}})},function(a,b,c){var d=c(6),e=c(56),f=c(14),g=c(57),h=c(49).f;c(4)&&d(d.P+c(260),"Object",{__lookupSetter__:function __lookupSetter__(a){var b,c=e(this),d=f(a,!0);do if(b=h(c,d))return b.set;while(c=g(c))}})},function(a,b,c){var d=c(6);d(d.P+d.R,"Map",{toJSON:c(265)("Map")})},function(a,b,c){var d=c(73),e=c(266);a.exports=function(a){return function toJSON(){if(d(this)!=a)throw TypeError(a+"#toJSON isn't generic");return e(this)}}},function(a,b,c){var d=c(198);a.exports=function(a,b){var c=[];return d(a,!1,c.push,c,b),c}},function(a,b,c){var d=c(6);d(d.P+d.R,"Set",{toJSON:c(265)("Set")})},function(a,b,c){var d=c(6);d(d.S,"System",{global:c(2)})},function(a,b,c){var d=c(6),e=c(32);d(d.S,"Error",{isError:function isError(a){return"Error"===e(a)}})},function(a,b,c){var d=c(6);d(d.S,"Math",{iaddh:function iaddh(a,b,c,d){var e=a>>>0,f=b>>>0,g=c>>>0;return f+(d>>>0)+((e&g|(e|g)&~(e+g>>>0))>>>31)|0}})},function(a,b,c){var d=c(6);d(d.S,"Math",{isubh:function isubh(a,b,c,d){var e=a>>>0,f=b>>>0,g=c>>>0;return f-(d>>>0)-((~e&g|~(e^g)&e-g>>>0)>>>31)|0}})},function(a,b,c){var d=c(6);d(d.S,"Math",{imulh:function imulh(a,b){var c=65535,d=+a,e=+b,f=d&c,g=e&c,h=d>>16,i=e>>16,j=(h*g>>>0)+(f*g>>>16);return h*i+(j>>16)+((f*i>>>0)+(j&c)>>16)}})},function(a,b,c){var d=c(6);d(d.S,"Math",{umulh:function umulh(a,b){var c=65535,d=+a,e=+b,f=d&c,g=e&c,h=d>>>16,i=e>>>16,j=(h*g>>>0)+(f*g>>>16);return h*i+(j>>>16)+((f*i>>>0)+(j&c)>>>16)}})},function(a,b,c){var d=c(275),e=c(10),f=d.key,g=d.set;d.exp({defineMetadata:function defineMetadata(a,b,c,d){g(a,b,e(c),f(d))}})},function(a,b,d){var e=d(203),f=d(6),g=d(21)("metadata"),h=g.store||(g.store=new(d(207))),i=function(a,b,d){var f=h.get(a);if(!f){if(!d)return c;h.set(a,f=new e)}var g=f.get(b);if(!g){if(!d)return c;f.set(b,g=new e)}return g},j=function(a,b,d){var e=i(b,d,!1);return e!==c&&e.has(a)},k=function(a,b,d){var e=i(b,d,!1);return e===c?c:e.get(a)},l=function(a,b,c,d){i(c,d,!0).set(a,b)},m=function(a,b){var c=i(a,b,!1),d=[];return c&&c.forEach(function(a,b){d.push(b)}),d},n=function(a){return a===c||"symbol"==typeof a?a:String(a)},o=function(a){f(f.S,"Reflect",a)};a.exports={store:h,map:i,has:j,get:k,set:l,keys:m,key:n,exp:o}},function(a,b,d){var e=d(275),f=d(10),g=e.key,h=e.map,i=e.store;e.exp({deleteMetadata:function deleteMetadata(a,b){var d=arguments.length<3?c:g(arguments[2]),e=h(f(b),d,!1);if(e===c||!e["delete"](a))return!1;if(e.size)return!0;var j=i.get(b);return j["delete"](d),!!j.size||i["delete"](b)}})},function(a,b,d){var e=d(275),f=d(10),g=d(57),h=e.has,i=e.get,j=e.key,k=function(a,b,d){var e=h(a,b,d);if(e)return i(a,b,d);var f=g(b);return null!==f?k(a,f,d):c};e.exp({getMetadata:function getMetadata(a,b){return k(a,f(b),arguments.length<3?c:j(arguments[2]))}})},function(a,b,d){var e=d(206),f=d(266),g=d(275),h=d(10),i=d(57),j=g.keys,k=g.key,l=function(a,b){var c=j(a,b),d=i(a);if(null===d)return c;var g=l(d,b);return g.length?c.length?f(new e(c.concat(g))):g:c};g.exp({getMetadataKeys:function getMetadataKeys(a){return l(h(a),arguments.length<2?c:k(arguments[1]))}})},function(a,b,d){var e=d(275),f=d(10),g=e.get,h=e.key;e.exp({getOwnMetadata:function getOwnMetadata(a,b){return g(a,f(b),arguments.length<3?c:h(arguments[2]))}})},function(a,b,d){var e=d(275),f=d(10),g=e.keys,h=e.key;e.exp({getOwnMetadataKeys:function getOwnMetadataKeys(a){return g(f(a),arguments.length<2?c:h(arguments[1]))}})},function(a,b,d){var e=d(275),f=d(10),g=d(57),h=e.has,i=e.key,j=function(a,b,c){var d=h(a,b,c);if(d)return!0;var e=g(b);return null!==e&&j(a,e,c)};e.exp({hasMetadata:function hasMetadata(a,b){return j(a,f(b),arguments.length<3?c:i(arguments[2]))}})},function(a,b,d){var e=d(275),f=d(10),g=e.has,h=e.key;e.exp({hasOwnMetadata:function hasOwnMetadata(a,b){return g(a,f(b),arguments.length<3?c:h(arguments[2]))}})},function(a,b,d){var e=d(275),f=d(10),g=d(19),h=e.key,i=e.set;e.exp({metadata:function metadata(a,b){return function decorator(d,e){i(a,b,(e!==c?f:g)(d),h(e))}}})},function(a,b,c){var d=c(6),e=c(201)(),f=c(2).process,g="process"==c(32)(f);d(d.G,{asap:function asap(a){var b=g&&f.domain;e(b?b.bind(a):a)}})},function(a,b,d){var e=d(6),f=d(2),g=d(7),h=d(201)(),i=d(23)("observable"),j=d(19),k=d(10),l=d(197),m=d(202),n=d(8),o=d(198),p=o.RETURN,q=function(a){return null==a?c:j(a)},r=function(a){var b=a._c;b&&(a._c=c,b())},s=function(a){return a._o===c},t=function(a){s(a)||(a._o=c,r(a))},u=function(a,b){k(a),this._c=c,this._o=a,a=new v(this);try{var d=b(a),e=d;null!=d&&("function"==typeof d.unsubscribe?d=function(){e.unsubscribe()}:j(d),this._c=d)}catch(f){return void a.error(f)}s(this)&&r(this)};u.prototype=m({},{unsubscribe:function unsubscribe(){t(this)}});var v=function(a){this._s=a};v.prototype=m({},{next:function next(a){var b=this._s;if(!s(b)){var c=b._o;try{var d=q(c.next);if(d)return d.call(c,a)}catch(e){try{t(b)}finally{throw e}}}},error:function error(a){var b=this._s;if(s(b))throw a;var d=b._o;b._o=c;try{var e=q(d.error);if(!e)throw a;a=e.call(d,a)}catch(f){try{r(b)}finally{throw f}}return r(b),a},complete:function complete(a){var b=this._s;if(!s(b)){var d=b._o;b._o=c;try{var e=q(d.complete);a=e?e.call(d,a):c}catch(f){try{r(b)}finally{throw f}}return r(b),a}}});var w=function Observable(a){l(this,w,"Observable","_f")._f=j(a)};m(w.prototype,{subscribe:function subscribe(a){return new u(a,this._f)},forEach:function forEach(a){var b=this;return new(g.Promise||f.Promise)(function(c,d){j(a);var e=b.subscribe({next:function(b){try{return a(b)}catch(c){d(c),e.unsubscribe()}},error:d,complete:c})})}}),m(w,{from:function from(a){var b="function"==typeof this?this:w,c=q(k(a)[i]);if(c){var d=k(c.call(a));return d.constructor===b?d:new b(function(a){return d.subscribe(a)})}return new b(function(b){var c=!1;return h(function(){if(!c){try{if(o(a,!1,function(a){if(b.next(a),c)return p})===p)return}catch(d){if(c)throw d;return void b.error(d)}b.complete()}}),function(){c=!0}})},of:function of(){for(var a=0,b=arguments.length,c=Array(b);a<b;)c[a]=arguments[a++];return new("function"==typeof this?this:w)(function(a){var b=!1;return h(function(){if(!b){for(var d=0;d<c.length;++d)if(a.next(c[d]),b)return;a.complete()}}),function(){b=!0}})}}),n(w.prototype,i,function(){return this}),e(e.G,{Observable:w}),d(186)("Observable")},function(a,b,c){var d=c(6),e=c(200);d(d.G+d.B,{setImmediate:e.set,clearImmediate:e.clear})},function(a,b,c){for(var d=c(183),e=c(16),f=c(2),g=c(8),h=c(135),i=c(23),j=i("iterator"),k=i("toStringTag"),l=h.Array,m=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],n=0;n<5;n++){var o,p=m[n],q=f[p],r=q&&q.prototype;if(r){r[j]||g(r,j,l),r[k]||g(r,k,p),h[p]=l;for(o in d)r[o]||e(r,o,d[o],!0)}}},function(a,b,c){var d=c(2),e=c(6),f=c(76),g=c(289),h=d.navigator,i=!!h&&/MSIE .\./.test(h.userAgent),j=function(a){return i?function(b,c){return a(f(g,[].slice.call(arguments,2),"function"==typeof b?b:Function(b)),c)}:a};e(e.G+e.B+e.F*i,{setTimeout:j(d.setTimeout),setInterval:j(d.setInterval)})},function(a,b,c){var d=c(290),e=c(76),f=c(19);a.exports=function(){for(var a=f(this),b=arguments.length,c=Array(b),g=0,h=d._,i=!1;b>g;)(c[g]=arguments[g++])===h&&(i=!0);return function(){var d,f=this,g=arguments.length,j=0,k=0;if(!i&&!g)return e(a,c,f);if(d=c.slice(),i)for(;b>j;j++)d[j]===h&&(d[j]=arguments[k++]);for(;g>k;)d.push(arguments[k++]);return e(a,d,f)}}},function(a,b,c){a.exports=c(2)}]),"undefined"!=typeof module&&module.exports?module.exports=a:"function"==typeof define&&define.amd?define(function(){return a}):b.core=a}(1,1);
-//# sourceMappingURL=shim.min.js.map \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/client/shim.min.js.map b/node_modules/babel-runtime/node_modules/core-js/client/shim.min.js.map
deleted file mode 100644
index dc5895617..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/client/shim.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["shim.js"],"names":["__e","__g","undefined","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","global","has","DESCRIPTORS","$export","redefine","META","KEY","$fails","shared","setToStringTag","uid","wks","wksExt","wksDefine","keyOf","enumKeys","isArray","anObject","toIObject","toPrimitive","createDesc","_create","gOPNExt","$GOPD","$DP","$keys","gOPD","f","dP","gOPN","$Symbol","Symbol","$JSON","JSON","_stringify","stringify","PROTOTYPE","HIDDEN","TO_PRIMITIVE","isEnum","propertyIsEnumerable","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","Object","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","get","this","value","a","it","key","D","protoDesc","wrap","tag","sym","_k","isSymbol","iterator","$defineProperty","defineProperty","enumerable","$defineProperties","defineProperties","P","keys","i","l","length","$create","create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","$getOwnPropertyNames","getOwnPropertyNames","names","result","push","$getOwnPropertySymbols","getOwnPropertySymbols","IS_OP","TypeError","arguments","$set","configurable","set","toString","name","G","W","F","symbols","split","store","S","for","keyFor","useSetter","useSimple","replacer","$replacer","args","apply","valueOf","Math","window","self","Function","hasOwnProperty","exec","e","core","hide","ctx","type","source","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","B","target","expProto","U","R","version","object","IE8_DOM_DEFINE","O","Attributes","isObject","document","is","createElement","fn","val","bitmap","writable","SRC","TO_STRING","$toString","TPL","inspectSource","safe","isFunction","join","String","prototype","px","random","concat","aFunction","that","b","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","fastKey","getWeak","onFreeze","meta","NEED","SHARED","def","TAG","stat","USE_SYMBOL","$exports","LIBRARY","charAt","getKeys","el","index","enumBugKeys","arrayIndexOf","IE_PROTO","IObject","defined","cof","slice","toLength","toIndex","IS_INCLUDES","$this","fromIndex","toInteger","min","ceil","floor","isNaN","max","gOPS","pIE","getSymbols","Array","arg","dPs","Empty","createDict","iframeDocument","iframe","lt","gt","style","display","appendChild","src","contentWindow","open","write","close","Properties","documentElement","windowNames","getWindowNames","hiddenKeys","fails","toObject","$getPrototypeOf","getPrototypeOf","constructor","$freeze","freeze","$seal","seal","$preventExtensions","$isFrozen","isFrozen","$isSealed","isSealed","$isExtensible","assign","$assign","A","K","forEach","k","T","aLen","j","x","y","setPrototypeOf","check","proto","test","buggy","__proto__","classof","ARG","tryGet","callee","bind","invoke","arraySlice","factories","construct","len","n","partArgs","bound","un","FProto","nameRE","NAME","match","HAS_INSTANCE","FunctionProto","inheritIfRequired","$trim","trim","NUMBER","$Number","Base","BROKEN_COF","TRIM","toNumber","argument","third","radix","maxCode","first","charCodeAt","NaN","code","digits","parseInt","Number","C","spaces","space","non","ltrim","RegExp","rtrim","exporter","ALIAS","FORCE","string","TYPE","replace","aNumberValue","repeat","$toFixed","toFixed","data","ERROR","ZERO","multiply","c2","divide","numToString","s","t","pow","acc","log","x2","fractionDigits","z","RangeError","msg","count","str","res","Infinity","$toPrecision","toPrecision","precision","EPSILON","_isFinite","isFinite","isInteger","number","abs","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","$parseFloat","parseFloat","$parseInt","ws","hex","log1p","sqrt","$acosh","acosh","MAX_VALUE","LN2","asinh","$asinh","$atanh","atanh","sign","cbrt","clz32","LOG2E","cosh","$expm1","expm1","EPSILON32","MAX32","MIN32","roundTiesToEven","fround","$abs","$sign","hypot","value1","value2","div","sum","larg","$imul","imul","UINT16","xn","yn","xl","yl","log10","LN10","log2","sinh","tanh","trunc","fromCharCode","$fromCodePoint","fromCodePoint","raw","callSite","tpl","$at","codePointAt","pos","context","ENDS_WITH","$endsWith","endsWith","searchString","endPosition","end","search","isRegExp","MATCH","re","INCLUDES","includes","indexOf","STARTS_WITH","$startsWith","startsWith","iterated","_t","_i","point","done","Iterators","$iterCreate","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Constructor","next","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","values","entries","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","descriptor","createHTML","anchor","quot","attribute","p1","toLowerCase","big","blink","bold","fixed","fontcolor","color","fontsize","size","italics","link","url","small","strike","sub","sup","isArrayIter","createProperty","getIterFn","iter","from","arrayLike","step","mapfn","mapping","iterFn","ret","ArrayProto","getIteratorMethod","SAFE_CLOSING","riter","skipClosing","arr","of","arrayJoin","separator","method","html","begin","klass","start","upTo","cloned","$sort","sort","comparefn","$forEach","STRICT","callbackfn","asc","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","speciesConstructor","original","SPECIES","$map","map","$filter","filter","$some","some","$every","every","$reduce","reduce","memo","isRight","reduceRight","$indexOf","NEGATIVE_ZERO","searchElement","lastIndexOf","copyWithin","to","inc","UNSCOPABLES","fill","endPos","$find","forced","find","findIndex","addToUnscopables","Arguments","$flags","$RegExp","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","proxy","ignoreCase","multiline","unicode","sticky","define","flags","$match","regexp","SYMBOL","fns","strfn","rxfn","REPLACE","$replace","searchValue","replaceValue","SEARCH","$search","SPLIT","$split","_split","$push","$SPLIT","LENGTH","LAST_INDEX","NPCG","limit","separator2","lastIndex","lastLength","output","lastLastIndex","splitLimit","separatorCopy","Internal","GenericPromiseCapability","Wrapper","anInstance","forOf","task","microtask","PROMISE","process","$Promise","isNode","empty","promise","resolve","FakePromise","PromiseRejectionEvent","then","sameConstructor","isThenable","newPromiseCapability","PromiseCapability","reject","$$resolve","$$reject","perform","error","notify","isReject","_n","chain","_c","_v","ok","_s","run","reaction","handler","fail","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","abrupt","console","isUnhandled","emit","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_d","_w","$resolve","wrapper","Promise","executor","err","onFulfilled","onRejected","catch","r","capability","all","iterable","remaining","$index","alreadyCalled","race","forbiddenField","BREAK","RETURN","defer","channel","port","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","counter","queue","ONREADYSTATECHANGE","listener","event","nextTick","port2","port1","onmessage","postMessage","addEventListener","importScripts","removeChild","setTimeout","clear","macrotask","Observer","MutationObserver","WebKitMutationObserver","head","last","flush","parent","toggle","node","createTextNode","observe","characterData","strong","Map","entry","getEntry","v","redefineAll","$iterDefine","setSpecies","SIZE","_f","getConstructor","ADDER","_l","delete","prev","setStrong","$iterDetect","common","IS_WEAK","fixMethod","add","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","Set","InternalMap","each","weak","uncaughtFrozenStore","ufstore","tmp","WeakMap","$WeakMap","createArrayMethod","$has","arrayFind","arrayFindIndex","UncaughtFrozenStore","findUncaughtFrozen","splice","WeakSet","rApply","Reflect","fApply","thisArgument","argumentsList","L","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","propertyKey","attributes","deleteProperty","desc","Enumerate","enumerate","receiver","getProto","ownKeys","V","existingDescriptor","ownDesc","setProto","now","Date","getTime","toJSON","toISOString","pv","lz","num","d","getUTCFullYear","getUTCMilliseconds","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","DateProto","INVALID_DATE","hint","$typed","buffer","ArrayBuffer","$ArrayBuffer","$DataView","DataView","$isView","ABV","isView","$slice","VIEW","ARRAY_BUFFER","CONSTR","byteLength","final","viewS","viewT","setUint8","getUint8","Typed","TYPED","TypedArrayConstructors","arrayFill","DATA_VIEW","WRONG_LENGTH","WRONG_INDEX","BaseBuffer","BUFFER","BYTE_LENGTH","BYTE_OFFSET","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","eLen","eMax","eBias","rt","unpackIEEE754","nBits","unpackI32","bytes","packI8","packI16","packI32","packF64","packF32","addGetter","internal","view","isLittleEndian","numIndex","intIndex","_b","pack","reverse","conversion","validateArrayBufferArguments","numberLength","ArrayBufferProto","$setInt8","setInt8","getInt8","byteOffset","bufferLength","offset","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","init","Int8Array","$buffer","propertyDesc","same","createArrayIncludes","ArrayIterators","arrayCopyWithin","Uint8Array","SHARED_BUFFER","BYTES_PER_ELEMENT","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayIncludes","arrayValues","arrayKeys","arrayEntries","arrayLastIndexOf","arrayReduce","arrayReduceRight","arraySort","arrayToString","arrayToLocaleString","toLocaleString","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","TYPED_ARRAY","allocate","LITTLE_ENDIAN","Uint16Array","FORCED_SET","strictToLength","SAME","toOffset","BYTES","validate","speciesFromList","list","fromList","$from","$of","TO_LOCALE_BUG","$toLocaleString","predicate","middle","subarray","$begin","$iterators","isTAIndex","$getDesc","$setDesc","$TypedArrayPrototype$","CLAMPED","ISNT_UINT8","GETTER","SETTER","TypedArray","TAC","TypedArrayPrototype","getter","o","round","addElement","$offset","$length","$len","$nativeIterator","CORRECT_ITER_NAME","$iterator","Uint8ClampedArray","Int16Array","Int32Array","Uint32Array","Float32Array","Float64Array","$includes","at","$pad","padStart","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","padEnd","trimLeft","trimRight","getFlags","RegExpProto","$RegExpStringIterator","_r","matchAll","rx","getOwnPropertyDescriptors","getDesc","$values","isEntries","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","isError","iaddh","x0","x1","y0","y1","$x0","$x1","$y0","isubh","imulh","u","$u","$v","u0","v0","u1","v1","umulh","metadata","toMetaKey","ordinaryDefineOwnMetadata","defineMetadata","metadataKey","metadataValue","targetKey","getOrCreateMetadataMap","targetMetadata","keyMetadata","ordinaryHasOwnMetadata","MetadataKey","metadataMap","ordinaryGetOwnMetadata","MetadataValue","ordinaryOwnMetadataKeys","_","deleteMetadata","ordinaryGetMetadata","hasOwn","getMetadata","ordinaryMetadataKeys","oKeys","pKeys","getMetadataKeys","getOwnMetadata","getOwnMetadataKeys","ordinaryHasMetadata","hasMetadata","hasOwnMetadata","decorator","asap","OBSERVABLE","cleanupSubscription","subscription","cleanup","subscriptionClosed","_o","closeSubscription","Subscription","observer","subscriber","SubscriptionObserver","unsubscribe","complete","$Observable","Observable","subscribe","observable","items","$task","TO_STRING_TAG","ArrayValues","collections","Collection","partial","navigator","MSIE","userAgent","time","setInterval","path","pargs","holder","amd"],"mappings":";;;;;;CAMC,SAASA,EAAKC,EAAKC,GACpB,cACS,SAAUC,GAKT,QAASC,qBAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,MAAOC,GAAiBD,GAAUE,OAGnC,IAAIC,GAASF,EAAiBD,IAC7BE,WACAE,GAAIJ,EACJK,QAAQ,EAUT,OANAP,GAAQE,GAAUM,KAAKH,EAAOD,QAASC,EAAQA,EAAOD,QAASH,qBAG/DI,EAAOE,QAAS,EAGTF,EAAOD,QAvBf,GAAID,KAqCJ,OATAF,qBAAoBQ,EAAIT,EAGxBC,oBAAoBS,EAAIP,EAGxBF,oBAAoBU,EAAI,GAGjBV,oBAAoB,KAK/B,SAASI,EAAQD,EAASH,GAE/BA,EAAoB,GACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,K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","file":"shim.min.js"} \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/core/_.js b/node_modules/babel-runtime/node_modules/core-js/core/_.js
deleted file mode 100644
index 8a99f7062..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/core/_.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.function.part');
-module.exports = require('../modules/_core')._; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/core/delay.js b/node_modules/babel-runtime/node_modules/core-js/core/delay.js
deleted file mode 100644
index 188573884..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/core/delay.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.delay');
-module.exports = require('../modules/_core').delay;
diff --git a/node_modules/babel-runtime/node_modules/core-js/core/dict.js b/node_modules/babel-runtime/node_modules/core-js/core/dict.js
deleted file mode 100644
index da84a8d88..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/core/dict.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.dict');
-module.exports = require('../modules/_core').Dict; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/core/function.js b/node_modules/babel-runtime/node_modules/core-js/core/function.js
deleted file mode 100644
index 3b8d01317..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/core/function.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.function.part');
-module.exports = require('../modules/_core').Function;
diff --git a/node_modules/babel-runtime/node_modules/core-js/core/index.js b/node_modules/babel-runtime/node_modules/core-js/core/index.js
deleted file mode 100644
index 2b20fd9ec..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/core/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-require('../modules/core.dict');
-require('../modules/core.get-iterator-method');
-require('../modules/core.get-iterator');
-require('../modules/core.is-iterable');
-require('../modules/core.delay');
-require('../modules/core.function.part');
-require('../modules/core.object.is-object');
-require('../modules/core.object.classof');
-require('../modules/core.object.define');
-require('../modules/core.object.make');
-require('../modules/core.number.iterator');
-require('../modules/core.regexp.escape');
-require('../modules/core.string.escape-html');
-require('../modules/core.string.unescape-html');
-module.exports = require('../modules/_core');
diff --git a/node_modules/babel-runtime/node_modules/core-js/core/number.js b/node_modules/babel-runtime/node_modules/core-js/core/number.js
deleted file mode 100644
index 62f632c51..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/core/number.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.number.iterator');
-module.exports = require('../modules/_core').Number; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/core/object.js b/node_modules/babel-runtime/node_modules/core-js/core/object.js
deleted file mode 100644
index 04e539c90..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/core/object.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../modules/core.object.is-object');
-require('../modules/core.object.classof');
-require('../modules/core.object.define');
-require('../modules/core.object.make');
-module.exports = require('../modules/_core').Object;
diff --git a/node_modules/babel-runtime/node_modules/core-js/core/regexp.js b/node_modules/babel-runtime/node_modules/core-js/core/regexp.js
deleted file mode 100644
index 3e04c5119..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/core/regexp.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.regexp.escape');
-module.exports = require('../modules/_core').RegExp; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/core/string.js b/node_modules/babel-runtime/node_modules/core-js/core/string.js
deleted file mode 100644
index 8da740c6e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/core/string.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../modules/core.string.escape-html');
-require('../modules/core.string.unescape-html');
-module.exports = require('../modules/_core').String; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es5/index.js b/node_modules/babel-runtime/node_modules/core-js/es5/index.js
deleted file mode 100644
index 580f1a670..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es5/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-require('../modules/es6.object.create');
-require('../modules/es6.object.define-property');
-require('../modules/es6.object.define-properties');
-require('../modules/es6.object.get-own-property-descriptor');
-require('../modules/es6.object.get-prototype-of');
-require('../modules/es6.object.keys');
-require('../modules/es6.object.get-own-property-names');
-require('../modules/es6.object.freeze');
-require('../modules/es6.object.seal');
-require('../modules/es6.object.prevent-extensions');
-require('../modules/es6.object.is-frozen');
-require('../modules/es6.object.is-sealed');
-require('../modules/es6.object.is-extensible');
-require('../modules/es6.function.bind');
-require('../modules/es6.array.is-array');
-require('../modules/es6.array.join');
-require('../modules/es6.array.slice');
-require('../modules/es6.array.sort');
-require('../modules/es6.array.for-each');
-require('../modules/es6.array.map');
-require('../modules/es6.array.filter');
-require('../modules/es6.array.some');
-require('../modules/es6.array.every');
-require('../modules/es6.array.reduce');
-require('../modules/es6.array.reduce-right');
-require('../modules/es6.array.index-of');
-require('../modules/es6.array.last-index-of');
-require('../modules/es6.number.to-fixed');
-require('../modules/es6.number.to-precision');
-require('../modules/es6.date.now');
-require('../modules/es6.date.to-iso-string');
-require('../modules/es6.date.to-json');
-require('../modules/es6.parse-int');
-require('../modules/es6.parse-float');
-require('../modules/es6.string.trim');
-require('../modules/es6.regexp.to-string');
-module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/array.js b/node_modules/babel-runtime/node_modules/core-js/es6/array.js
deleted file mode 100644
index 428d3e8c4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/array.js
+++ /dev/null
@@ -1,23 +0,0 @@
-require('../modules/es6.string.iterator');
-require('../modules/es6.array.is-array');
-require('../modules/es6.array.from');
-require('../modules/es6.array.of');
-require('../modules/es6.array.join');
-require('../modules/es6.array.slice');
-require('../modules/es6.array.sort');
-require('../modules/es6.array.for-each');
-require('../modules/es6.array.map');
-require('../modules/es6.array.filter');
-require('../modules/es6.array.some');
-require('../modules/es6.array.every');
-require('../modules/es6.array.reduce');
-require('../modules/es6.array.reduce-right');
-require('../modules/es6.array.index-of');
-require('../modules/es6.array.last-index-of');
-require('../modules/es6.array.copy-within');
-require('../modules/es6.array.fill');
-require('../modules/es6.array.find');
-require('../modules/es6.array.find-index');
-require('../modules/es6.array.species');
-require('../modules/es6.array.iterator');
-module.exports = require('../modules/_core').Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/date.js b/node_modules/babel-runtime/node_modules/core-js/es6/date.js
deleted file mode 100644
index dfa3be09d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/date.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../modules/es6.date.now');
-require('../modules/es6.date.to-json');
-require('../modules/es6.date.to-iso-string');
-require('../modules/es6.date.to-string');
-require('../modules/es6.date.to-primitive');
-module.exports = Date; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/function.js b/node_modules/babel-runtime/node_modules/core-js/es6/function.js
deleted file mode 100644
index ff685da27..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/function.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/es6.function.bind');
-require('../modules/es6.function.name');
-require('../modules/es6.function.has-instance');
-module.exports = require('../modules/_core').Function; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/index.js b/node_modules/babel-runtime/node_modules/core-js/es6/index.js
deleted file mode 100644
index 59df50921..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/index.js
+++ /dev/null
@@ -1,138 +0,0 @@
-require('../modules/es6.symbol');
-require('../modules/es6.object.create');
-require('../modules/es6.object.define-property');
-require('../modules/es6.object.define-properties');
-require('../modules/es6.object.get-own-property-descriptor');
-require('../modules/es6.object.get-prototype-of');
-require('../modules/es6.object.keys');
-require('../modules/es6.object.get-own-property-names');
-require('../modules/es6.object.freeze');
-require('../modules/es6.object.seal');
-require('../modules/es6.object.prevent-extensions');
-require('../modules/es6.object.is-frozen');
-require('../modules/es6.object.is-sealed');
-require('../modules/es6.object.is-extensible');
-require('../modules/es6.object.assign');
-require('../modules/es6.object.is');
-require('../modules/es6.object.set-prototype-of');
-require('../modules/es6.object.to-string');
-require('../modules/es6.function.bind');
-require('../modules/es6.function.name');
-require('../modules/es6.function.has-instance');
-require('../modules/es6.parse-int');
-require('../modules/es6.parse-float');
-require('../modules/es6.number.constructor');
-require('../modules/es6.number.to-fixed');
-require('../modules/es6.number.to-precision');
-require('../modules/es6.number.epsilon');
-require('../modules/es6.number.is-finite');
-require('../modules/es6.number.is-integer');
-require('../modules/es6.number.is-nan');
-require('../modules/es6.number.is-safe-integer');
-require('../modules/es6.number.max-safe-integer');
-require('../modules/es6.number.min-safe-integer');
-require('../modules/es6.number.parse-float');
-require('../modules/es6.number.parse-int');
-require('../modules/es6.math.acosh');
-require('../modules/es6.math.asinh');
-require('../modules/es6.math.atanh');
-require('../modules/es6.math.cbrt');
-require('../modules/es6.math.clz32');
-require('../modules/es6.math.cosh');
-require('../modules/es6.math.expm1');
-require('../modules/es6.math.fround');
-require('../modules/es6.math.hypot');
-require('../modules/es6.math.imul');
-require('../modules/es6.math.log10');
-require('../modules/es6.math.log1p');
-require('../modules/es6.math.log2');
-require('../modules/es6.math.sign');
-require('../modules/es6.math.sinh');
-require('../modules/es6.math.tanh');
-require('../modules/es6.math.trunc');
-require('../modules/es6.string.from-code-point');
-require('../modules/es6.string.raw');
-require('../modules/es6.string.trim');
-require('../modules/es6.string.iterator');
-require('../modules/es6.string.code-point-at');
-require('../modules/es6.string.ends-with');
-require('../modules/es6.string.includes');
-require('../modules/es6.string.repeat');
-require('../modules/es6.string.starts-with');
-require('../modules/es6.string.anchor');
-require('../modules/es6.string.big');
-require('../modules/es6.string.blink');
-require('../modules/es6.string.bold');
-require('../modules/es6.string.fixed');
-require('../modules/es6.string.fontcolor');
-require('../modules/es6.string.fontsize');
-require('../modules/es6.string.italics');
-require('../modules/es6.string.link');
-require('../modules/es6.string.small');
-require('../modules/es6.string.strike');
-require('../modules/es6.string.sub');
-require('../modules/es6.string.sup');
-require('../modules/es6.date.now');
-require('../modules/es6.date.to-json');
-require('../modules/es6.date.to-iso-string');
-require('../modules/es6.date.to-string');
-require('../modules/es6.date.to-primitive');
-require('../modules/es6.array.is-array');
-require('../modules/es6.array.from');
-require('../modules/es6.array.of');
-require('../modules/es6.array.join');
-require('../modules/es6.array.slice');
-require('../modules/es6.array.sort');
-require('../modules/es6.array.for-each');
-require('../modules/es6.array.map');
-require('../modules/es6.array.filter');
-require('../modules/es6.array.some');
-require('../modules/es6.array.every');
-require('../modules/es6.array.reduce');
-require('../modules/es6.array.reduce-right');
-require('../modules/es6.array.index-of');
-require('../modules/es6.array.last-index-of');
-require('../modules/es6.array.copy-within');
-require('../modules/es6.array.fill');
-require('../modules/es6.array.find');
-require('../modules/es6.array.find-index');
-require('../modules/es6.array.species');
-require('../modules/es6.array.iterator');
-require('../modules/es6.regexp.constructor');
-require('../modules/es6.regexp.to-string');
-require('../modules/es6.regexp.flags');
-require('../modules/es6.regexp.match');
-require('../modules/es6.regexp.replace');
-require('../modules/es6.regexp.search');
-require('../modules/es6.regexp.split');
-require('../modules/es6.promise');
-require('../modules/es6.map');
-require('../modules/es6.set');
-require('../modules/es6.weak-map');
-require('../modules/es6.weak-set');
-require('../modules/es6.typed.array-buffer');
-require('../modules/es6.typed.data-view');
-require('../modules/es6.typed.int8-array');
-require('../modules/es6.typed.uint8-array');
-require('../modules/es6.typed.uint8-clamped-array');
-require('../modules/es6.typed.int16-array');
-require('../modules/es6.typed.uint16-array');
-require('../modules/es6.typed.int32-array');
-require('../modules/es6.typed.uint32-array');
-require('../modules/es6.typed.float32-array');
-require('../modules/es6.typed.float64-array');
-require('../modules/es6.reflect.apply');
-require('../modules/es6.reflect.construct');
-require('../modules/es6.reflect.define-property');
-require('../modules/es6.reflect.delete-property');
-require('../modules/es6.reflect.enumerate');
-require('../modules/es6.reflect.get');
-require('../modules/es6.reflect.get-own-property-descriptor');
-require('../modules/es6.reflect.get-prototype-of');
-require('../modules/es6.reflect.has');
-require('../modules/es6.reflect.is-extensible');
-require('../modules/es6.reflect.own-keys');
-require('../modules/es6.reflect.prevent-extensions');
-require('../modules/es6.reflect.set');
-require('../modules/es6.reflect.set-prototype-of');
-module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/map.js b/node_modules/babel-runtime/node_modules/core-js/es6/map.js
deleted file mode 100644
index 50f04c1f2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/map.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.string.iterator');
-require('../modules/web.dom.iterable');
-require('../modules/es6.map');
-module.exports = require('../modules/_core').Map; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/math.js b/node_modules/babel-runtime/node_modules/core-js/es6/math.js
deleted file mode 100644
index f26b5b296..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/math.js
+++ /dev/null
@@ -1,18 +0,0 @@
-require('../modules/es6.math.acosh');
-require('../modules/es6.math.asinh');
-require('../modules/es6.math.atanh');
-require('../modules/es6.math.cbrt');
-require('../modules/es6.math.clz32');
-require('../modules/es6.math.cosh');
-require('../modules/es6.math.expm1');
-require('../modules/es6.math.fround');
-require('../modules/es6.math.hypot');
-require('../modules/es6.math.imul');
-require('../modules/es6.math.log10');
-require('../modules/es6.math.log1p');
-require('../modules/es6.math.log2');
-require('../modules/es6.math.sign');
-require('../modules/es6.math.sinh');
-require('../modules/es6.math.tanh');
-require('../modules/es6.math.trunc');
-module.exports = require('../modules/_core').Math; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/number.js b/node_modules/babel-runtime/node_modules/core-js/es6/number.js
deleted file mode 100644
index 1dafcda43..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/number.js
+++ /dev/null
@@ -1,13 +0,0 @@
-require('../modules/es6.number.constructor');
-require('../modules/es6.number.to-fixed');
-require('../modules/es6.number.to-precision');
-require('../modules/es6.number.epsilon');
-require('../modules/es6.number.is-finite');
-require('../modules/es6.number.is-integer');
-require('../modules/es6.number.is-nan');
-require('../modules/es6.number.is-safe-integer');
-require('../modules/es6.number.max-safe-integer');
-require('../modules/es6.number.min-safe-integer');
-require('../modules/es6.number.parse-float');
-require('../modules/es6.number.parse-int');
-module.exports = require('../modules/_core').Number; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/object.js b/node_modules/babel-runtime/node_modules/core-js/es6/object.js
deleted file mode 100644
index aada8c38f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/object.js
+++ /dev/null
@@ -1,20 +0,0 @@
-require('../modules/es6.symbol');
-require('../modules/es6.object.create');
-require('../modules/es6.object.define-property');
-require('../modules/es6.object.define-properties');
-require('../modules/es6.object.get-own-property-descriptor');
-require('../modules/es6.object.get-prototype-of');
-require('../modules/es6.object.keys');
-require('../modules/es6.object.get-own-property-names');
-require('../modules/es6.object.freeze');
-require('../modules/es6.object.seal');
-require('../modules/es6.object.prevent-extensions');
-require('../modules/es6.object.is-frozen');
-require('../modules/es6.object.is-sealed');
-require('../modules/es6.object.is-extensible');
-require('../modules/es6.object.assign');
-require('../modules/es6.object.is');
-require('../modules/es6.object.set-prototype-of');
-require('../modules/es6.object.to-string');
-
-module.exports = require('../modules/_core').Object; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/parse-float.js b/node_modules/babel-runtime/node_modules/core-js/es6/parse-float.js
deleted file mode 100644
index dad94ddbe..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/parse-float.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es6.parse-float');
-module.exports = require('../modules/_core').parseFloat; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/parse-int.js b/node_modules/babel-runtime/node_modules/core-js/es6/parse-int.js
deleted file mode 100644
index 08a20996b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/parse-int.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es6.parse-int');
-module.exports = require('../modules/_core').parseInt; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/promise.js b/node_modules/babel-runtime/node_modules/core-js/es6/promise.js
deleted file mode 100644
index c901c8595..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/promise.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.string.iterator');
-require('../modules/web.dom.iterable');
-require('../modules/es6.promise');
-module.exports = require('../modules/_core').Promise; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/reflect.js b/node_modules/babel-runtime/node_modules/core-js/es6/reflect.js
deleted file mode 100644
index 18bdb3c2e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/reflect.js
+++ /dev/null
@@ -1,15 +0,0 @@
-require('../modules/es6.reflect.apply');
-require('../modules/es6.reflect.construct');
-require('../modules/es6.reflect.define-property');
-require('../modules/es6.reflect.delete-property');
-require('../modules/es6.reflect.enumerate');
-require('../modules/es6.reflect.get');
-require('../modules/es6.reflect.get-own-property-descriptor');
-require('../modules/es6.reflect.get-prototype-of');
-require('../modules/es6.reflect.has');
-require('../modules/es6.reflect.is-extensible');
-require('../modules/es6.reflect.own-keys');
-require('../modules/es6.reflect.prevent-extensions');
-require('../modules/es6.reflect.set');
-require('../modules/es6.reflect.set-prototype-of');
-module.exports = require('../modules/_core').Reflect; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/regexp.js b/node_modules/babel-runtime/node_modules/core-js/es6/regexp.js
deleted file mode 100644
index 27cc827f9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/regexp.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../modules/es6.regexp.constructor');
-require('../modules/es6.regexp.to-string');
-require('../modules/es6.regexp.flags');
-require('../modules/es6.regexp.match');
-require('../modules/es6.regexp.replace');
-require('../modules/es6.regexp.search');
-require('../modules/es6.regexp.split');
-module.exports = require('../modules/_core').RegExp; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/set.js b/node_modules/babel-runtime/node_modules/core-js/es6/set.js
deleted file mode 100644
index 2a2557ced..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/set.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.string.iterator');
-require('../modules/web.dom.iterable');
-require('../modules/es6.set');
-module.exports = require('../modules/_core').Set; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/string.js b/node_modules/babel-runtime/node_modules/core-js/es6/string.js
deleted file mode 100644
index 83033621f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/string.js
+++ /dev/null
@@ -1,27 +0,0 @@
-require('../modules/es6.string.from-code-point');
-require('../modules/es6.string.raw');
-require('../modules/es6.string.trim');
-require('../modules/es6.string.iterator');
-require('../modules/es6.string.code-point-at');
-require('../modules/es6.string.ends-with');
-require('../modules/es6.string.includes');
-require('../modules/es6.string.repeat');
-require('../modules/es6.string.starts-with');
-require('../modules/es6.string.anchor');
-require('../modules/es6.string.big');
-require('../modules/es6.string.blink');
-require('../modules/es6.string.bold');
-require('../modules/es6.string.fixed');
-require('../modules/es6.string.fontcolor');
-require('../modules/es6.string.fontsize');
-require('../modules/es6.string.italics');
-require('../modules/es6.string.link');
-require('../modules/es6.string.small');
-require('../modules/es6.string.strike');
-require('../modules/es6.string.sub');
-require('../modules/es6.string.sup');
-require('../modules/es6.regexp.match');
-require('../modules/es6.regexp.replace');
-require('../modules/es6.regexp.search');
-require('../modules/es6.regexp.split');
-module.exports = require('../modules/_core').String; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/symbol.js b/node_modules/babel-runtime/node_modules/core-js/es6/symbol.js
deleted file mode 100644
index e578e3af3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/symbol.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../modules/es6.symbol');
-require('../modules/es6.object.to-string');
-module.exports = require('../modules/_core').Symbol; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/typed.js b/node_modules/babel-runtime/node_modules/core-js/es6/typed.js
deleted file mode 100644
index e0364e6c8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/typed.js
+++ /dev/null
@@ -1,13 +0,0 @@
-require('../modules/es6.typed.array-buffer');
-require('../modules/es6.typed.data-view');
-require('../modules/es6.typed.int8-array');
-require('../modules/es6.typed.uint8-array');
-require('../modules/es6.typed.uint8-clamped-array');
-require('../modules/es6.typed.int16-array');
-require('../modules/es6.typed.uint16-array');
-require('../modules/es6.typed.int32-array');
-require('../modules/es6.typed.uint32-array');
-require('../modules/es6.typed.float32-array');
-require('../modules/es6.typed.float64-array');
-require('../modules/es6.object.to-string');
-module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/weak-map.js b/node_modules/babel-runtime/node_modules/core-js/es6/weak-map.js
deleted file mode 100644
index 655866c2d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/weak-map.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.array.iterator');
-require('../modules/es6.weak-map');
-module.exports = require('../modules/_core').WeakMap; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es6/weak-set.js b/node_modules/babel-runtime/node_modules/core-js/es6/weak-set.js
deleted file mode 100644
index eef1af2a8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es6/weak-set.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/web.dom.iterable');
-require('../modules/es6.weak-set');
-module.exports = require('../modules/_core').WeakSet; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es7/array.js b/node_modules/babel-runtime/node_modules/core-js/es7/array.js
deleted file mode 100644
index 9fb57fa64..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es7/array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es7.array.includes');
-module.exports = require('../modules/_core').Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es7/asap.js b/node_modules/babel-runtime/node_modules/core-js/es7/asap.js
deleted file mode 100644
index cc90f7e54..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es7/asap.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es7.asap');
-module.exports = require('../modules/_core').asap;
diff --git a/node_modules/babel-runtime/node_modules/core-js/es7/error.js b/node_modules/babel-runtime/node_modules/core-js/es7/error.js
deleted file mode 100644
index f0bb260b5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es7/error.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es7.error.is-error');
-module.exports = require('../modules/_core').Error; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es7/index.js b/node_modules/babel-runtime/node_modules/core-js/es7/index.js
deleted file mode 100644
index b8c90b86e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es7/index.js
+++ /dev/null
@@ -1,36 +0,0 @@
-require('../modules/es7.array.includes');
-require('../modules/es7.string.at');
-require('../modules/es7.string.pad-start');
-require('../modules/es7.string.pad-end');
-require('../modules/es7.string.trim-left');
-require('../modules/es7.string.trim-right');
-require('../modules/es7.string.match-all');
-require('../modules/es7.symbol.async-iterator');
-require('../modules/es7.symbol.observable');
-require('../modules/es7.object.get-own-property-descriptors');
-require('../modules/es7.object.values');
-require('../modules/es7.object.entries');
-require('../modules/es7.object.define-getter');
-require('../modules/es7.object.define-setter');
-require('../modules/es7.object.lookup-getter');
-require('../modules/es7.object.lookup-setter');
-require('../modules/es7.map.to-json');
-require('../modules/es7.set.to-json');
-require('../modules/es7.system.global');
-require('../modules/es7.error.is-error');
-require('../modules/es7.math.iaddh');
-require('../modules/es7.math.isubh');
-require('../modules/es7.math.imulh');
-require('../modules/es7.math.umulh');
-require('../modules/es7.reflect.define-metadata');
-require('../modules/es7.reflect.delete-metadata');
-require('../modules/es7.reflect.get-metadata');
-require('../modules/es7.reflect.get-metadata-keys');
-require('../modules/es7.reflect.get-own-metadata');
-require('../modules/es7.reflect.get-own-metadata-keys');
-require('../modules/es7.reflect.has-metadata');
-require('../modules/es7.reflect.has-own-metadata');
-require('../modules/es7.reflect.metadata');
-require('../modules/es7.asap');
-require('../modules/es7.observable');
-module.exports = require('../modules/_core');
diff --git a/node_modules/babel-runtime/node_modules/core-js/es7/map.js b/node_modules/babel-runtime/node_modules/core-js/es7/map.js
deleted file mode 100644
index dfa32fd26..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es7/map.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es7.map.to-json');
-module.exports = require('../modules/_core').Map; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es7/math.js b/node_modules/babel-runtime/node_modules/core-js/es7/math.js
deleted file mode 100644
index bdb8a81c3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es7/math.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../modules/es7.math.iaddh');
-require('../modules/es7.math.isubh');
-require('../modules/es7.math.imulh');
-require('../modules/es7.math.umulh');
-module.exports = require('../modules/_core').Math;
diff --git a/node_modules/babel-runtime/node_modules/core-js/es7/object.js b/node_modules/babel-runtime/node_modules/core-js/es7/object.js
deleted file mode 100644
index c76b754d4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es7/object.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../modules/es7.object.get-own-property-descriptors');
-require('../modules/es7.object.values');
-require('../modules/es7.object.entries');
-require('../modules/es7.object.define-getter');
-require('../modules/es7.object.define-setter');
-require('../modules/es7.object.lookup-getter');
-require('../modules/es7.object.lookup-setter');
-module.exports = require('../modules/_core').Object; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es7/observable.js b/node_modules/babel-runtime/node_modules/core-js/es7/observable.js
deleted file mode 100644
index 05ca51a37..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es7/observable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.string.iterator');
-require('../modules/web.dom.iterable');
-require('../modules/es6.promise');
-require('../modules/es7.symbol.observable');
-require('../modules/es7.observable');
-module.exports = require('../modules/_core').Observable; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es7/reflect.js b/node_modules/babel-runtime/node_modules/core-js/es7/reflect.js
deleted file mode 100644
index f0b69cbb2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es7/reflect.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../modules/es7.reflect.define-metadata');
-require('../modules/es7.reflect.delete-metadata');
-require('../modules/es7.reflect.get-metadata');
-require('../modules/es7.reflect.get-metadata-keys');
-require('../modules/es7.reflect.get-own-metadata');
-require('../modules/es7.reflect.get-own-metadata-keys');
-require('../modules/es7.reflect.has-metadata');
-require('../modules/es7.reflect.has-own-metadata');
-require('../modules/es7.reflect.metadata');
-module.exports = require('../modules/_core').Reflect;
diff --git a/node_modules/babel-runtime/node_modules/core-js/es7/set.js b/node_modules/babel-runtime/node_modules/core-js/es7/set.js
deleted file mode 100644
index b5c19c44f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es7/set.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es7.set.to-json');
-module.exports = require('../modules/_core').Set; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es7/string.js b/node_modules/babel-runtime/node_modules/core-js/es7/string.js
deleted file mode 100644
index 6e413b4c2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es7/string.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require('../modules/es7.string.at');
-require('../modules/es7.string.pad-start');
-require('../modules/es7.string.pad-end');
-require('../modules/es7.string.trim-left');
-require('../modules/es7.string.trim-right');
-require('../modules/es7.string.match-all');
-module.exports = require('../modules/_core').String;
diff --git a/node_modules/babel-runtime/node_modules/core-js/es7/symbol.js b/node_modules/babel-runtime/node_modules/core-js/es7/symbol.js
deleted file mode 100644
index 14d90eec7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es7/symbol.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../modules/es7.symbol.async-iterator');
-require('../modules/es7.symbol.observable');
-module.exports = require('../modules/_core').Symbol; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/es7/system.js b/node_modules/babel-runtime/node_modules/core-js/es7/system.js
deleted file mode 100644
index 6d321c780..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/es7/system.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es7.system.global');
-module.exports = require('../modules/_core').System; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/_.js b/node_modules/babel-runtime/node_modules/core-js/fn/_.js
deleted file mode 100644
index 8a99f7062..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/_.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.function.part');
-module.exports = require('../modules/_core')._; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/concat.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/concat.js
deleted file mode 100644
index de4bddf96..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/concat.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// for a legacy code and future fixes
-module.exports = function(){
- return Function.call.apply(Array.prototype.concat, arguments);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/copy-within.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/copy-within.js
deleted file mode 100644
index 89e1de4ff..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/copy-within.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.copy-within');
-module.exports = require('../../modules/_core').Array.copyWithin; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/entries.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/entries.js
deleted file mode 100644
index f4feb26c2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/entries.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.iterator');
-module.exports = require('../../modules/_core').Array.entries; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/every.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/every.js
deleted file mode 100644
index 168844cc5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/every.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.every');
-module.exports = require('../../modules/_core').Array.every; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/fill.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/fill.js
deleted file mode 100644
index b23ebfdee..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/fill.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.fill');
-module.exports = require('../../modules/_core').Array.fill; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/filter.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/filter.js
deleted file mode 100644
index 0023f0de0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/filter.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.filter');
-module.exports = require('../../modules/_core').Array.filter; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/find-index.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/find-index.js
deleted file mode 100644
index 99e6bf17b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/find-index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.find-index');
-module.exports = require('../../modules/_core').Array.findIndex; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/find.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/find.js
deleted file mode 100644
index f146ec224..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/find.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.find');
-module.exports = require('../../modules/_core').Array.find; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/for-each.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/for-each.js
deleted file mode 100644
index 09e235f95..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/for-each.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.for-each');
-module.exports = require('../../modules/_core').Array.forEach; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/from.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/from.js
deleted file mode 100644
index 1f323fbc3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/from.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/es6.string.iterator');
-require('../../modules/es6.array.from');
-module.exports = require('../../modules/_core').Array.from; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/includes.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/includes.js
deleted file mode 100644
index 851d31fd1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/includes.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.array.includes');
-module.exports = require('../../modules/_core').Array.includes; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/index-of.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/index-of.js
deleted file mode 100644
index 9ed824727..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/index-of.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.index-of');
-module.exports = require('../../modules/_core').Array.indexOf; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/index.js
deleted file mode 100644
index 85bc77bc8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/index.js
+++ /dev/null
@@ -1,24 +0,0 @@
-require('../../modules/es6.string.iterator');
-require('../../modules/es6.array.is-array');
-require('../../modules/es6.array.from');
-require('../../modules/es6.array.of');
-require('../../modules/es6.array.join');
-require('../../modules/es6.array.slice');
-require('../../modules/es6.array.sort');
-require('../../modules/es6.array.for-each');
-require('../../modules/es6.array.map');
-require('../../modules/es6.array.filter');
-require('../../modules/es6.array.some');
-require('../../modules/es6.array.every');
-require('../../modules/es6.array.reduce');
-require('../../modules/es6.array.reduce-right');
-require('../../modules/es6.array.index-of');
-require('../../modules/es6.array.last-index-of');
-require('../../modules/es6.array.copy-within');
-require('../../modules/es6.array.fill');
-require('../../modules/es6.array.find');
-require('../../modules/es6.array.find-index');
-require('../../modules/es6.array.species');
-require('../../modules/es6.array.iterator');
-require('../../modules/es7.array.includes');
-module.exports = require('../../modules/_core').Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/is-array.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/is-array.js
deleted file mode 100644
index bbe76719e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/is-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.is-array');
-module.exports = require('../../modules/_core').Array.isArray; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/iterator.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/iterator.js
deleted file mode 100644
index ca93b78ab..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/iterator.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.iterator');
-module.exports = require('../../modules/_core').Array.values; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/join.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/join.js
deleted file mode 100644
index 9beef18d0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/join.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.join');
-module.exports = require('../../modules/_core').Array.join; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/keys.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/keys.js
deleted file mode 100644
index b44b921f7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/keys.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.iterator');
-module.exports = require('../../modules/_core').Array.keys; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/last-index-of.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/last-index-of.js
deleted file mode 100644
index 6dcc98a10..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/last-index-of.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.last-index-of');
-module.exports = require('../../modules/_core').Array.lastIndexOf; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/map.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/map.js
deleted file mode 100644
index 14b0f6279..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/map.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.map');
-module.exports = require('../../modules/_core').Array.map; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/of.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/of.js
deleted file mode 100644
index 652ee9808..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/of.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.of');
-module.exports = require('../../modules/_core').Array.of; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/pop.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/pop.js
deleted file mode 100644
index b8414f616..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/pop.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// for a legacy code and future fixes
-module.exports = function(){
- return Function.call.apply(Array.prototype.pop, arguments);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/push.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/push.js
deleted file mode 100644
index 03539009e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/push.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// for a legacy code and future fixes
-module.exports = function(){
- return Function.call.apply(Array.prototype.push, arguments);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/reduce-right.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/reduce-right.js
deleted file mode 100644
index 1193ecbae..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/reduce-right.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.reduce-right');
-module.exports = require('../../modules/_core').Array.reduceRight; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/reduce.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/reduce.js
deleted file mode 100644
index e2dee913e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/reduce.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.reduce');
-module.exports = require('../../modules/_core').Array.reduce; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/reverse.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/reverse.js
deleted file mode 100644
index 607342934..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/reverse.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// for a legacy code and future fixes
-module.exports = function(){
- return Function.call.apply(Array.prototype.reverse, arguments);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/shift.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/shift.js
deleted file mode 100644
index 5002a6062..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/shift.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// for a legacy code and future fixes
-module.exports = function(){
- return Function.call.apply(Array.prototype.shift, arguments);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/slice.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/slice.js
deleted file mode 100644
index 4914c2a98..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/slice.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.slice');
-module.exports = require('../../modules/_core').Array.slice; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/some.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/some.js
deleted file mode 100644
index de284006e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/some.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.some');
-module.exports = require('../../modules/_core').Array.some; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/sort.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/sort.js
deleted file mode 100644
index 29b6f3ae7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/sort.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.sort');
-module.exports = require('../../modules/_core').Array.sort; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/splice.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/splice.js
deleted file mode 100644
index 9d0bdbed4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/splice.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// for a legacy code and future fixes
-module.exports = function(){
- return Function.call.apply(Array.prototype.splice, arguments);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/unshift.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/unshift.js
deleted file mode 100644
index 63fe2dd86..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/unshift.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// for a legacy code and future fixes
-module.exports = function(){
- return Function.call.apply(Array.prototype.unshift, arguments);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/values.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/values.js
deleted file mode 100644
index ca93b78ab..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/values.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.iterator');
-module.exports = require('../../modules/_core').Array.values; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/copy-within.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/copy-within.js
deleted file mode 100644
index 62172a9e3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/copy-within.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.copy-within');
-module.exports = require('../../../modules/_entry-virtual')('Array').copyWithin; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/entries.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/entries.js
deleted file mode 100644
index 1b198e3cc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/entries.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.iterator');
-module.exports = require('../../../modules/_entry-virtual')('Array').entries; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/every.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/every.js
deleted file mode 100644
index a72e58510..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/every.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.every');
-module.exports = require('../../../modules/_entry-virtual')('Array').every; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/fill.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/fill.js
deleted file mode 100644
index 6018b37bf..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/fill.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.fill');
-module.exports = require('../../../modules/_entry-virtual')('Array').fill; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/filter.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/filter.js
deleted file mode 100644
index 46a14f1c4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/filter.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.filter');
-module.exports = require('../../../modules/_entry-virtual')('Array').filter; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/find-index.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/find-index.js
deleted file mode 100644
index ef96165fd..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/find-index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.find-index');
-module.exports = require('../../../modules/_entry-virtual')('Array').findIndex; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/find.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/find.js
deleted file mode 100644
index 6cffee5b5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/find.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.find');
-module.exports = require('../../../modules/_entry-virtual')('Array').find; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/for-each.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/for-each.js
deleted file mode 100644
index 0c3ed4492..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/for-each.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.for-each');
-module.exports = require('../../../modules/_entry-virtual')('Array').forEach; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/includes.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/includes.js
deleted file mode 100644
index bf9031d74..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/includes.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es7.array.includes');
-module.exports = require('../../../modules/_entry-virtual')('Array').includes; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/index-of.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/index-of.js
deleted file mode 100644
index cf6f36e3b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/index-of.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.index-of');
-module.exports = require('../../../modules/_entry-virtual')('Array').indexOf; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/index.js
deleted file mode 100644
index ff554a2a1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-require('../../../modules/es6.array.join');
-require('../../../modules/es6.array.slice');
-require('../../../modules/es6.array.sort');
-require('../../../modules/es6.array.for-each');
-require('../../../modules/es6.array.map');
-require('../../../modules/es6.array.filter');
-require('../../../modules/es6.array.some');
-require('../../../modules/es6.array.every');
-require('../../../modules/es6.array.reduce');
-require('../../../modules/es6.array.reduce-right');
-require('../../../modules/es6.array.index-of');
-require('../../../modules/es6.array.last-index-of');
-require('../../../modules/es6.string.iterator');
-require('../../../modules/es6.array.iterator');
-require('../../../modules/es6.array.copy-within');
-require('../../../modules/es6.array.fill');
-require('../../../modules/es6.array.find');
-require('../../../modules/es6.array.find-index');
-require('../../../modules/es7.array.includes');
-module.exports = require('../../../modules/_entry-virtual')('Array'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/iterator.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/iterator.js
deleted file mode 100644
index 7812b3c92..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/iterator.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/core.number.iterator');
-module.exports = require('../../../modules/_iterators').Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/join.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/join.js
deleted file mode 100644
index 3f7d5cff9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/join.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.join');
-module.exports = require('../../../modules/_entry-virtual')('Array').join; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/keys.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/keys.js
deleted file mode 100644
index 16c09681f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/keys.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.iterator');
-module.exports = require('../../../modules/_entry-virtual')('Array').keys; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/last-index-of.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/last-index-of.js
deleted file mode 100644
index cdd79b7d5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/last-index-of.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.last-index-of');
-module.exports = require('../../../modules/_entry-virtual')('Array').lastIndexOf; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/map.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/map.js
deleted file mode 100644
index 14bffdac0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/map.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.map');
-module.exports = require('../../../modules/_entry-virtual')('Array').map; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/reduce-right.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/reduce-right.js
deleted file mode 100644
index 61313e8f2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/reduce-right.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.reduce-right');
-module.exports = require('../../../modules/_entry-virtual')('Array').reduceRight; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/reduce.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/reduce.js
deleted file mode 100644
index 1b059053d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/reduce.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.reduce');
-module.exports = require('../../../modules/_entry-virtual')('Array').reduce; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/slice.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/slice.js
deleted file mode 100644
index b28d1abcc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/slice.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.slice');
-module.exports = require('../../../modules/_entry-virtual')('Array').slice; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/some.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/some.js
deleted file mode 100644
index 58c183c55..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/some.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.some');
-module.exports = require('../../../modules/_entry-virtual')('Array').some; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/sort.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/sort.js
deleted file mode 100644
index c8883150b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/sort.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.sort');
-module.exports = require('../../../modules/_entry-virtual')('Array').sort; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/values.js b/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/values.js
deleted file mode 100644
index 7812b3c92..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/array/virtual/values.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/core.number.iterator');
-module.exports = require('../../../modules/_iterators').Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/asap.js b/node_modules/babel-runtime/node_modules/core-js/fn/asap.js
deleted file mode 100644
index 9d9c80d13..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/asap.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es7.asap');
-module.exports = require('../modules/_core').asap; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/clear-immediate.js b/node_modules/babel-runtime/node_modules/core-js/fn/clear-immediate.js
deleted file mode 100644
index 86916a06c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/clear-immediate.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/web.immediate');
-module.exports = require('../modules/_core').clearImmediate; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/date/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/date/index.js
deleted file mode 100644
index bd9ce0e2d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/date/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../../modules/es6.date.now');
-require('../../modules/es6.date.to-json');
-require('../../modules/es6.date.to-iso-string');
-require('../../modules/es6.date.to-string');
-require('../../modules/es6.date.to-primitive');
-module.exports = require('../../modules/_core').Date; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/date/now.js b/node_modules/babel-runtime/node_modules/core-js/fn/date/now.js
deleted file mode 100644
index c70d37ae3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/date/now.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.date.now');
-module.exports = require('../../modules/_core').Date.now; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/date/to-iso-string.js b/node_modules/babel-runtime/node_modules/core-js/fn/date/to-iso-string.js
deleted file mode 100644
index be4ac2187..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/date/to-iso-string.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/es6.date.to-json');
-require('../../modules/es6.date.to-iso-string');
-module.exports = require('../../modules/_core').Date.toISOString; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/date/to-json.js b/node_modules/babel-runtime/node_modules/core-js/fn/date/to-json.js
deleted file mode 100644
index 9dc8cc902..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/date/to-json.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.date.to-json');
-module.exports = require('../../modules/_core').Date.toJSON; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/date/to-primitive.js b/node_modules/babel-runtime/node_modules/core-js/fn/date/to-primitive.js
deleted file mode 100644
index 4d7471e26..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/date/to-primitive.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.date.to-primitive');
-var toPrimitive = require('../../modules/_date-to-primitive');
-module.exports = function(it, hint){
- return toPrimitive.call(it, hint);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/date/to-string.js b/node_modules/babel-runtime/node_modules/core-js/fn/date/to-string.js
deleted file mode 100644
index c39d55227..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/date/to-string.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.date.to-string')
-var $toString = Date.prototype.toString;
-module.exports = function toString(it){
- return $toString.call(it);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/delay.js b/node_modules/babel-runtime/node_modules/core-js/fn/delay.js
deleted file mode 100644
index 188573884..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/delay.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.delay');
-module.exports = require('../modules/_core').delay;
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/dict.js b/node_modules/babel-runtime/node_modules/core-js/fn/dict.js
deleted file mode 100644
index da84a8d88..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/dict.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.dict');
-module.exports = require('../modules/_core').Dict; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/dom-collections/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/dom-collections/index.js
deleted file mode 100644
index 3928a09fc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/dom-collections/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../../modules/web.dom.iterable');
-var $iterators = require('../../modules/es6.array.iterator');
-module.exports = {
- keys: $iterators.keys,
- values: $iterators.values,
- entries: $iterators.entries,
- iterator: $iterators.values
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/dom-collections/iterator.js b/node_modules/babel-runtime/node_modules/core-js/fn/dom-collections/iterator.js
deleted file mode 100644
index ad9836457..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/dom-collections/iterator.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/web.dom.iterable');
-module.exports = require('../../modules/_core').Array.values; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/error/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/error/index.js
deleted file mode 100644
index 59571ac21..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/error/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.error.is-error');
-module.exports = require('../../modules/_core').Error; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/error/is-error.js b/node_modules/babel-runtime/node_modules/core-js/fn/error/is-error.js
deleted file mode 100644
index e15b7201b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/error/is-error.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.error.is-error');
-module.exports = require('../../modules/_core').Error.isError; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/function/bind.js b/node_modules/babel-runtime/node_modules/core-js/fn/function/bind.js
deleted file mode 100644
index 38e179e6e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/function/bind.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.function.bind');
-module.exports = require('../../modules/_core').Function.bind; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/function/has-instance.js b/node_modules/babel-runtime/node_modules/core-js/fn/function/has-instance.js
deleted file mode 100644
index 78397e5f7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/function/has-instance.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.function.has-instance');
-module.exports = Function[require('../../modules/_wks')('hasInstance')]; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/function/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/function/index.js
deleted file mode 100644
index 206324e89..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/function/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.function.bind');
-require('../../modules/es6.function.name');
-require('../../modules/es6.function.has-instance');
-require('../../modules/core.function.part');
-module.exports = require('../../modules/_core').Function;
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/function/name.js b/node_modules/babel-runtime/node_modules/core-js/fn/function/name.js
deleted file mode 100644
index cb70bf155..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/function/name.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es6.function.name'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/function/part.js b/node_modules/babel-runtime/node_modules/core-js/fn/function/part.js
deleted file mode 100644
index 926e2cc2a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/function/part.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/core.function.part');
-module.exports = require('../../modules/_core').Function.part; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/function/virtual/bind.js b/node_modules/babel-runtime/node_modules/core-js/fn/function/virtual/bind.js
deleted file mode 100644
index 0a2f3338c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/function/virtual/bind.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.function.bind');
-module.exports = require('../../../modules/_entry-virtual')('Function').bind; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/function/virtual/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/function/virtual/index.js
deleted file mode 100644
index f64e22023..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/function/virtual/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../../modules/es6.function.bind');
-require('../../../modules/core.function.part');
-module.exports = require('../../../modules/_entry-virtual')('Function'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/function/virtual/part.js b/node_modules/babel-runtime/node_modules/core-js/fn/function/virtual/part.js
deleted file mode 100644
index a382e577f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/function/virtual/part.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/core.function.part');
-module.exports = require('../../../modules/_entry-virtual')('Function').part; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/get-iterator-method.js b/node_modules/babel-runtime/node_modules/core-js/fn/get-iterator-method.js
deleted file mode 100644
index 5543cbbf7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/get-iterator-method.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../modules/web.dom.iterable');
-require('../modules/es6.string.iterator');
-module.exports = require('../modules/core.get-iterator-method'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/get-iterator.js b/node_modules/babel-runtime/node_modules/core-js/fn/get-iterator.js
deleted file mode 100644
index 762350ff5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/get-iterator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../modules/web.dom.iterable');
-require('../modules/es6.string.iterator');
-module.exports = require('../modules/core.get-iterator'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/is-iterable.js b/node_modules/babel-runtime/node_modules/core-js/fn/is-iterable.js
deleted file mode 100644
index 4c654e87e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/is-iterable.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../modules/web.dom.iterable');
-require('../modules/es6.string.iterator');
-module.exports = require('../modules/core.is-iterable'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/json/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/json/index.js
deleted file mode 100644
index a6ec3de99..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/json/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var core = require('../../modules/_core');
-module.exports = core.JSON || (core.JSON = {stringify: JSON.stringify}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/json/stringify.js b/node_modules/babel-runtime/node_modules/core-js/fn/json/stringify.js
deleted file mode 100644
index f0cac86af..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/json/stringify.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var core = require('../../modules/_core')
- , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
-module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
- return $JSON.stringify.apply($JSON, arguments);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/map.js b/node_modules/babel-runtime/node_modules/core-js/fn/map.js
deleted file mode 100644
index 16784c600..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/map.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.string.iterator');
-require('../modules/web.dom.iterable');
-require('../modules/es6.map');
-require('../modules/es7.map.to-json');
-module.exports = require('../modules/_core').Map; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/acosh.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/acosh.js
deleted file mode 100644
index 9c904c2d6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/acosh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.acosh');
-module.exports = require('../../modules/_core').Math.acosh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/asinh.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/asinh.js
deleted file mode 100644
index 9e209c9d1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/asinh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.asinh');
-module.exports = require('../../modules/_core').Math.asinh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/atanh.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/atanh.js
deleted file mode 100644
index b116296d8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/atanh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.atanh');
-module.exports = require('../../modules/_core').Math.atanh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/cbrt.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/cbrt.js
deleted file mode 100644
index 6ffec33a2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/cbrt.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.cbrt');
-module.exports = require('../../modules/_core').Math.cbrt; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/clz32.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/clz32.js
deleted file mode 100644
index beeaae165..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/clz32.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.clz32');
-module.exports = require('../../modules/_core').Math.clz32; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/cosh.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/cosh.js
deleted file mode 100644
index bf92dc13d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/cosh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.cosh');
-module.exports = require('../../modules/_core').Math.cosh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/expm1.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/expm1.js
deleted file mode 100644
index 0b30ebb1b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/expm1.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.expm1');
-module.exports = require('../../modules/_core').Math.expm1; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/fround.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/fround.js
deleted file mode 100644
index c75a22937..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/fround.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.fround');
-module.exports = require('../../modules/_core').Math.fround; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/hypot.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/hypot.js
deleted file mode 100644
index 2126285c2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/hypot.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.hypot');
-module.exports = require('../../modules/_core').Math.hypot; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/iaddh.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/iaddh.js
deleted file mode 100644
index cae754ee1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/iaddh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.math.iaddh');
-module.exports = require('../../modules/_core').Math.iaddh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/imul.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/imul.js
deleted file mode 100644
index 1f5ce1610..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/imul.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.imul');
-module.exports = require('../../modules/_core').Math.imul; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/imulh.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/imulh.js
deleted file mode 100644
index 3b47bf8c2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/imulh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.math.imulh');
-module.exports = require('../../modules/_core').Math.imulh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/index.js
deleted file mode 100644
index 8a2664b18..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-require('../../modules/es6.math.acosh');
-require('../../modules/es6.math.asinh');
-require('../../modules/es6.math.atanh');
-require('../../modules/es6.math.cbrt');
-require('../../modules/es6.math.clz32');
-require('../../modules/es6.math.cosh');
-require('../../modules/es6.math.expm1');
-require('../../modules/es6.math.fround');
-require('../../modules/es6.math.hypot');
-require('../../modules/es6.math.imul');
-require('../../modules/es6.math.log10');
-require('../../modules/es6.math.log1p');
-require('../../modules/es6.math.log2');
-require('../../modules/es6.math.sign');
-require('../../modules/es6.math.sinh');
-require('../../modules/es6.math.tanh');
-require('../../modules/es6.math.trunc');
-require('../../modules/es7.math.iaddh');
-require('../../modules/es7.math.isubh');
-require('../../modules/es7.math.imulh');
-require('../../modules/es7.math.umulh');
-module.exports = require('../../modules/_core').Math; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/isubh.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/isubh.js
deleted file mode 100644
index e120e423f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/isubh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.math.isubh');
-module.exports = require('../../modules/_core').Math.isubh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/log10.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/log10.js
deleted file mode 100644
index 1246e0ae0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/log10.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.log10');
-module.exports = require('../../modules/_core').Math.log10; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/log1p.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/log1p.js
deleted file mode 100644
index 047b84c05..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/log1p.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.log1p');
-module.exports = require('../../modules/_core').Math.log1p; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/log2.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/log2.js
deleted file mode 100644
index ce3e99c1e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/log2.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.log2');
-module.exports = require('../../modules/_core').Math.log2; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/sign.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/sign.js
deleted file mode 100644
index 0963ecaf9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/sign.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.sign');
-module.exports = require('../../modules/_core').Math.sign; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/sinh.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/sinh.js
deleted file mode 100644
index c35cb7394..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/sinh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.sinh');
-module.exports = require('../../modules/_core').Math.sinh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/tanh.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/tanh.js
deleted file mode 100644
index 3d1966db3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/tanh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.tanh');
-module.exports = require('../../modules/_core').Math.tanh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/trunc.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/trunc.js
deleted file mode 100644
index 135b7dcb8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/trunc.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.trunc');
-module.exports = require('../../modules/_core').Math.trunc; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/math/umulh.js b/node_modules/babel-runtime/node_modules/core-js/fn/math/umulh.js
deleted file mode 100644
index d93b9ae05..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/math/umulh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.math.umulh');
-module.exports = require('../../modules/_core').Math.umulh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/number/constructor.js b/node_modules/babel-runtime/node_modules/core-js/fn/number/constructor.js
deleted file mode 100644
index f488331ec..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/number/constructor.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.constructor');
-module.exports = Number; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/number/epsilon.js b/node_modules/babel-runtime/node_modules/core-js/fn/number/epsilon.js
deleted file mode 100644
index 56c935215..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/number/epsilon.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.epsilon');
-module.exports = Math.pow(2, -52); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/number/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/number/index.js
deleted file mode 100644
index 92890003d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/number/index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-require('../../modules/es6.number.constructor');
-require('../../modules/es6.number.epsilon');
-require('../../modules/es6.number.is-finite');
-require('../../modules/es6.number.is-integer');
-require('../../modules/es6.number.is-nan');
-require('../../modules/es6.number.is-safe-integer');
-require('../../modules/es6.number.max-safe-integer');
-require('../../modules/es6.number.min-safe-integer');
-require('../../modules/es6.number.parse-float');
-require('../../modules/es6.number.parse-int');
-require('../../modules/es6.number.to-fixed');
-require('../../modules/es6.number.to-precision');
-require('../../modules/core.number.iterator');
-module.exports = require('../../modules/_core').Number; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/number/is-finite.js b/node_modules/babel-runtime/node_modules/core-js/fn/number/is-finite.js
deleted file mode 100644
index 4ec3706b0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/number/is-finite.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.is-finite');
-module.exports = require('../../modules/_core').Number.isFinite; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/number/is-integer.js b/node_modules/babel-runtime/node_modules/core-js/fn/number/is-integer.js
deleted file mode 100644
index a3013bff3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/number/is-integer.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.is-integer');
-module.exports = require('../../modules/_core').Number.isInteger; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/number/is-nan.js b/node_modules/babel-runtime/node_modules/core-js/fn/number/is-nan.js
deleted file mode 100644
index f23b0266a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/number/is-nan.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.is-nan');
-module.exports = require('../../modules/_core').Number.isNaN; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/number/is-safe-integer.js b/node_modules/babel-runtime/node_modules/core-js/fn/number/is-safe-integer.js
deleted file mode 100644
index f68732f52..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/number/is-safe-integer.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.is-safe-integer');
-module.exports = require('../../modules/_core').Number.isSafeInteger; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/number/iterator.js b/node_modules/babel-runtime/node_modules/core-js/fn/number/iterator.js
deleted file mode 100644
index 26feaa1f0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/number/iterator.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/core.number.iterator');
-var get = require('../../modules/_iterators').Number;
-module.exports = function(it){
- return get.call(it);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/number/max-safe-integer.js b/node_modules/babel-runtime/node_modules/core-js/fn/number/max-safe-integer.js
deleted file mode 100644
index c9b43b044..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/number/max-safe-integer.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.max-safe-integer');
-module.exports = 0x1fffffffffffff; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/number/min-safe-integer.js b/node_modules/babel-runtime/node_modules/core-js/fn/number/min-safe-integer.js
deleted file mode 100644
index 8b5e07285..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/number/min-safe-integer.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.min-safe-integer');
-module.exports = -0x1fffffffffffff; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/number/parse-float.js b/node_modules/babel-runtime/node_modules/core-js/fn/number/parse-float.js
deleted file mode 100644
index 62f89774f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/number/parse-float.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.parse-float');
-module.exports = parseFloat; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/number/parse-int.js b/node_modules/babel-runtime/node_modules/core-js/fn/number/parse-int.js
deleted file mode 100644
index c197da5bd..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/number/parse-int.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.parse-int');
-module.exports = parseInt; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/number/to-fixed.js b/node_modules/babel-runtime/node_modules/core-js/fn/number/to-fixed.js
deleted file mode 100644
index 3a041b0e8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/number/to-fixed.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.to-fixed');
-module.exports = require('../../modules/_core').Number.toFixed; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/number/to-precision.js b/node_modules/babel-runtime/node_modules/core-js/fn/number/to-precision.js
deleted file mode 100644
index 9e85511ab..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/number/to-precision.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.to-precision');
-module.exports = require('../../modules/_core').Number.toPrecision; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/number/virtual/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/number/virtual/index.js
deleted file mode 100644
index 42360d32e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/number/virtual/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/core.number.iterator');
-var $Number = require('../../../modules/_entry-virtual')('Number');
-$Number.iterator = require('../../../modules/_iterators').Number;
-module.exports = $Number; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/number/virtual/iterator.js b/node_modules/babel-runtime/node_modules/core-js/fn/number/virtual/iterator.js
deleted file mode 100644
index df034996a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/number/virtual/iterator.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/core.number.iterator');
-module.exports = require('../../../modules/_iterators').Number; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/number/virtual/to-fixed.js b/node_modules/babel-runtime/node_modules/core-js/fn/number/virtual/to-fixed.js
deleted file mode 100644
index b779f15c0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/number/virtual/to-fixed.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.number.to-fixed');
-module.exports = require('../../../modules/_entry-virtual')('Number').toFixed; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/number/virtual/to-precision.js b/node_modules/babel-runtime/node_modules/core-js/fn/number/virtual/to-precision.js
deleted file mode 100644
index 0c93fa4aa..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/number/virtual/to-precision.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.number.to-precision');
-module.exports = require('../../../modules/_entry-virtual')('Number').toPrecision; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/assign.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/assign.js
deleted file mode 100644
index 97df6bf45..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/assign.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.assign');
-module.exports = require('../../modules/_core').Object.assign; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/classof.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/classof.js
deleted file mode 100644
index 993d04808..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/classof.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/core.object.classof');
-module.exports = require('../../modules/_core').Object.classof; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/create.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/create.js
deleted file mode 100644
index a05ca2fb0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/create.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.object.create');
-var $Object = require('../../modules/_core').Object;
-module.exports = function create(P, D){
- return $Object.create(P, D);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/define-getter.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/define-getter.js
deleted file mode 100644
index 5dd26070b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/define-getter.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.object.define-getter');
-module.exports = require('../../modules/_core').Object.__defineGetter__; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/define-properties.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/define-properties.js
deleted file mode 100644
index 04160fb3a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/define-properties.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.object.define-properties');
-var $Object = require('../../modules/_core').Object;
-module.exports = function defineProperties(T, D){
- return $Object.defineProperties(T, D);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/define-property.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/define-property.js
deleted file mode 100644
index 078c56cbf..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/define-property.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.object.define-property');
-var $Object = require('../../modules/_core').Object;
-module.exports = function defineProperty(it, key, desc){
- return $Object.defineProperty(it, key, desc);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/define-setter.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/define-setter.js
deleted file mode 100644
index b59475f82..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/define-setter.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.object.define-setter');
-module.exports = require('../../modules/_core').Object.__defineSetter__; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/define.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/define.js
deleted file mode 100644
index 6ec19e904..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/define.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/core.object.define');
-module.exports = require('../../modules/_core').Object.define; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/entries.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/entries.js
deleted file mode 100644
index fca1000e8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/entries.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.object.entries');
-module.exports = require('../../modules/_core').Object.entries; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/freeze.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/freeze.js
deleted file mode 100644
index 04eac5302..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/freeze.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.freeze');
-module.exports = require('../../modules/_core').Object.freeze; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/get-own-property-descriptor.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/get-own-property-descriptor.js
deleted file mode 100644
index 7d3f03b8b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/get-own-property-descriptor.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.object.get-own-property-descriptor');
-var $Object = require('../../modules/_core').Object;
-module.exports = function getOwnPropertyDescriptor(it, key){
- return $Object.getOwnPropertyDescriptor(it, key);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/get-own-property-descriptors.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/get-own-property-descriptors.js
deleted file mode 100644
index dfeb547ce..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/get-own-property-descriptors.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.object.get-own-property-descriptors');
-module.exports = require('../../modules/_core').Object.getOwnPropertyDescriptors; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/get-own-property-names.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/get-own-property-names.js
deleted file mode 100644
index c91ce430f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/get-own-property-names.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.object.get-own-property-names');
-var $Object = require('../../modules/_core').Object;
-module.exports = function getOwnPropertyNames(it){
- return $Object.getOwnPropertyNames(it);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/get-own-property-symbols.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/get-own-property-symbols.js
deleted file mode 100644
index c3f528807..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/get-own-property-symbols.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.symbol');
-module.exports = require('../../modules/_core').Object.getOwnPropertySymbols; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/get-prototype-of.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/get-prototype-of.js
deleted file mode 100644
index bda934458..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/get-prototype-of.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.get-prototype-of');
-module.exports = require('../../modules/_core').Object.getPrototypeOf; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/index.js
deleted file mode 100644
index 4bd9825b4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/index.js
+++ /dev/null
@@ -1,30 +0,0 @@
-require('../../modules/es6.symbol');
-require('../../modules/es6.object.create');
-require('../../modules/es6.object.define-property');
-require('../../modules/es6.object.define-properties');
-require('../../modules/es6.object.get-own-property-descriptor');
-require('../../modules/es6.object.get-prototype-of');
-require('../../modules/es6.object.keys');
-require('../../modules/es6.object.get-own-property-names');
-require('../../modules/es6.object.freeze');
-require('../../modules/es6.object.seal');
-require('../../modules/es6.object.prevent-extensions');
-require('../../modules/es6.object.is-frozen');
-require('../../modules/es6.object.is-sealed');
-require('../../modules/es6.object.is-extensible');
-require('../../modules/es6.object.assign');
-require('../../modules/es6.object.is');
-require('../../modules/es6.object.set-prototype-of');
-require('../../modules/es6.object.to-string');
-require('../../modules/es7.object.get-own-property-descriptors');
-require('../../modules/es7.object.values');
-require('../../modules/es7.object.entries');
-require('../../modules/es7.object.define-getter');
-require('../../modules/es7.object.define-setter');
-require('../../modules/es7.object.lookup-getter');
-require('../../modules/es7.object.lookup-setter');
-require('../../modules/core.object.is-object');
-require('../../modules/core.object.classof');
-require('../../modules/core.object.define');
-require('../../modules/core.object.make');
-module.exports = require('../../modules/_core').Object; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/is-extensible.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/is-extensible.js
deleted file mode 100644
index 43fb0e78a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/is-extensible.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.is-extensible');
-module.exports = require('../../modules/_core').Object.isExtensible; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/is-frozen.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/is-frozen.js
deleted file mode 100644
index cbff22421..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/is-frozen.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.is-frozen');
-module.exports = require('../../modules/_core').Object.isFrozen; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/is-object.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/is-object.js
deleted file mode 100644
index 38feeff5c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/is-object.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/core.object.is-object');
-module.exports = require('../../modules/_core').Object.isObject; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/is-sealed.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/is-sealed.js
deleted file mode 100644
index 169a8ae73..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/is-sealed.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.is-sealed');
-module.exports = require('../../modules/_core').Object.isSealed; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/is.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/is.js
deleted file mode 100644
index 6ac9f19e1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/is.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.is');
-module.exports = require('../../modules/_core').Object.is; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/keys.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/keys.js
deleted file mode 100644
index 8eeb78eb8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/keys.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.keys');
-module.exports = require('../../modules/_core').Object.keys; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/lookup-getter.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/lookup-getter.js
deleted file mode 100644
index 3f7f674d0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/lookup-getter.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.object.lookup-setter');
-module.exports = require('../../modules/_core').Object.__lookupGetter__; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/lookup-setter.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/lookup-setter.js
deleted file mode 100644
index d18446fe9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/lookup-setter.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.object.lookup-setter');
-module.exports = require('../../modules/_core').Object.__lookupSetter__; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/make.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/make.js
deleted file mode 100644
index f4d19d128..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/make.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/core.object.make');
-module.exports = require('../../modules/_core').Object.make; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/prevent-extensions.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/prevent-extensions.js
deleted file mode 100644
index e43be05b1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/prevent-extensions.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.prevent-extensions');
-module.exports = require('../../modules/_core').Object.preventExtensions; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/seal.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/seal.js
deleted file mode 100644
index 8a56cd7f3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/seal.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.seal');
-module.exports = require('../../modules/_core').Object.seal; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/set-prototype-of.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/set-prototype-of.js
deleted file mode 100644
index c25170dbc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/set-prototype-of.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.set-prototype-of');
-module.exports = require('../../modules/_core').Object.setPrototypeOf; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/object/values.js b/node_modules/babel-runtime/node_modules/core-js/fn/object/values.js
deleted file mode 100644
index b50336cf1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/object/values.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.object.values');
-module.exports = require('../../modules/_core').Object.values; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/observable.js b/node_modules/babel-runtime/node_modules/core-js/fn/observable.js
deleted file mode 100644
index 05ca51a37..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/observable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.string.iterator');
-require('../modules/web.dom.iterable');
-require('../modules/es6.promise');
-require('../modules/es7.symbol.observable');
-require('../modules/es7.observable');
-module.exports = require('../modules/_core').Observable; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/parse-float.js b/node_modules/babel-runtime/node_modules/core-js/fn/parse-float.js
deleted file mode 100644
index dad94ddbe..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/parse-float.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es6.parse-float');
-module.exports = require('../modules/_core').parseFloat; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/parse-int.js b/node_modules/babel-runtime/node_modules/core-js/fn/parse-int.js
deleted file mode 100644
index 08a20996b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/parse-int.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es6.parse-int');
-module.exports = require('../modules/_core').parseInt; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/promise.js b/node_modules/babel-runtime/node_modules/core-js/fn/promise.js
deleted file mode 100644
index c901c8595..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/promise.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.string.iterator');
-require('../modules/web.dom.iterable');
-require('../modules/es6.promise');
-module.exports = require('../modules/_core').Promise; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/apply.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/apply.js
deleted file mode 100644
index 725b8a699..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/apply.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.apply');
-module.exports = require('../../modules/_core').Reflect.apply; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/construct.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/construct.js
deleted file mode 100644
index 587725dad..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/construct.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.construct');
-module.exports = require('../../modules/_core').Reflect.construct; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/define-metadata.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/define-metadata.js
deleted file mode 100644
index c9876ed3b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/define-metadata.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.reflect.define-metadata');
-module.exports = require('../../modules/_core').Reflect.defineMetadata; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/define-property.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/define-property.js
deleted file mode 100644
index c36b4d21d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/define-property.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.define-property');
-module.exports = require('../../modules/_core').Reflect.defineProperty; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/delete-metadata.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/delete-metadata.js
deleted file mode 100644
index 9bcc02997..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/delete-metadata.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.reflect.delete-metadata');
-module.exports = require('../../modules/_core').Reflect.deleteMetadata; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/delete-property.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/delete-property.js
deleted file mode 100644
index 10b6392f2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/delete-property.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.delete-property');
-module.exports = require('../../modules/_core').Reflect.deleteProperty; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/enumerate.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/enumerate.js
deleted file mode 100644
index 257a21eee..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/enumerate.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.enumerate');
-module.exports = require('../../modules/_core').Reflect.enumerate; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-metadata-keys.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-metadata-keys.js
deleted file mode 100644
index 9dbf5ee14..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-metadata-keys.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.reflect.get-metadata-keys');
-module.exports = require('../../modules/_core').Reflect.getMetadataKeys; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-metadata.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-metadata.js
deleted file mode 100644
index 3a20839eb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-metadata.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.reflect.get-metadata');
-module.exports = require('../../modules/_core').Reflect.getMetadata; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-own-metadata-keys.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-own-metadata-keys.js
deleted file mode 100644
index 2f8c5759b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-own-metadata-keys.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.reflect.get-own-metadata-keys');
-module.exports = require('../../modules/_core').Reflect.getOwnMetadataKeys; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-own-metadata.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-own-metadata.js
deleted file mode 100644
index 68e288dda..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-own-metadata.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.reflect.get-own-metadata');
-module.exports = require('../../modules/_core').Reflect.getOwnMetadata; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-own-property-descriptor.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-own-property-descriptor.js
deleted file mode 100644
index 9e2822fb5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-own-property-descriptor.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.get-own-property-descriptor');
-module.exports = require('../../modules/_core').Reflect.getOwnPropertyDescriptor; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-prototype-of.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-prototype-of.js
deleted file mode 100644
index 485035960..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get-prototype-of.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.get-prototype-of');
-module.exports = require('../../modules/_core').Reflect.getPrototypeOf; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get.js
deleted file mode 100644
index 9ca903e82..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/get.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.get');
-module.exports = require('../../modules/_core').Reflect.get; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/has-metadata.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/has-metadata.js
deleted file mode 100644
index f001f437a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/has-metadata.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.reflect.has-metadata');
-module.exports = require('../../modules/_core').Reflect.hasMetadata; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/has-own-metadata.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/has-own-metadata.js
deleted file mode 100644
index d90935f0b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/has-own-metadata.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.reflect.has-own-metadata');
-module.exports = require('../../modules/_core').Reflect.hasOwnMetadata; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/has.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/has.js
deleted file mode 100644
index 8e34933c8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/has.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.has');
-module.exports = require('../../modules/_core').Reflect.has; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/index.js
deleted file mode 100644
index a725cef2f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/index.js
+++ /dev/null
@@ -1,24 +0,0 @@
-require('../../modules/es6.reflect.apply');
-require('../../modules/es6.reflect.construct');
-require('../../modules/es6.reflect.define-property');
-require('../../modules/es6.reflect.delete-property');
-require('../../modules/es6.reflect.enumerate');
-require('../../modules/es6.reflect.get');
-require('../../modules/es6.reflect.get-own-property-descriptor');
-require('../../modules/es6.reflect.get-prototype-of');
-require('../../modules/es6.reflect.has');
-require('../../modules/es6.reflect.is-extensible');
-require('../../modules/es6.reflect.own-keys');
-require('../../modules/es6.reflect.prevent-extensions');
-require('../../modules/es6.reflect.set');
-require('../../modules/es6.reflect.set-prototype-of');
-require('../../modules/es7.reflect.define-metadata');
-require('../../modules/es7.reflect.delete-metadata');
-require('../../modules/es7.reflect.get-metadata');
-require('../../modules/es7.reflect.get-metadata-keys');
-require('../../modules/es7.reflect.get-own-metadata');
-require('../../modules/es7.reflect.get-own-metadata-keys');
-require('../../modules/es7.reflect.has-metadata');
-require('../../modules/es7.reflect.has-own-metadata');
-require('../../modules/es7.reflect.metadata');
-module.exports = require('../../modules/_core').Reflect; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/is-extensible.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/is-extensible.js
deleted file mode 100644
index de41d683a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/is-extensible.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.is-extensible');
-module.exports = require('../../modules/_core').Reflect.isExtensible; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/metadata.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/metadata.js
deleted file mode 100644
index 3f2b8ff62..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/metadata.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.reflect.metadata');
-module.exports = require('../../modules/_core').Reflect.metadata; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/own-keys.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/own-keys.js
deleted file mode 100644
index bfcebc740..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/own-keys.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.own-keys');
-module.exports = require('../../modules/_core').Reflect.ownKeys; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/prevent-extensions.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/prevent-extensions.js
deleted file mode 100644
index b346da3b0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/prevent-extensions.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.prevent-extensions');
-module.exports = require('../../modules/_core').Reflect.preventExtensions; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/set-prototype-of.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/set-prototype-of.js
deleted file mode 100644
index 16b74359c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/set-prototype-of.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.set-prototype-of');
-module.exports = require('../../modules/_core').Reflect.setPrototypeOf; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/set.js b/node_modules/babel-runtime/node_modules/core-js/fn/reflect/set.js
deleted file mode 100644
index 834929ee3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/reflect/set.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.set');
-module.exports = require('../../modules/_core').Reflect.set; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/regexp/constructor.js b/node_modules/babel-runtime/node_modules/core-js/fn/regexp/constructor.js
deleted file mode 100644
index 90c13513d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/regexp/constructor.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.regexp.constructor');
-module.exports = RegExp; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/regexp/escape.js b/node_modules/babel-runtime/node_modules/core-js/fn/regexp/escape.js
deleted file mode 100644
index d657a7d91..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/regexp/escape.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/core.regexp.escape');
-module.exports = require('../../modules/_core').RegExp.escape; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/regexp/flags.js b/node_modules/babel-runtime/node_modules/core-js/fn/regexp/flags.js
deleted file mode 100644
index ef84ddbd1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/regexp/flags.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.regexp.flags');
-var flags = require('../../modules/_flags');
-module.exports = function(it){
- return flags.call(it);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/regexp/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/regexp/index.js
deleted file mode 100644
index 61ced0b81..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/regexp/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require('../../modules/es6.regexp.constructor');
-require('../../modules/es6.regexp.to-string');
-require('../../modules/es6.regexp.flags');
-require('../../modules/es6.regexp.match');
-require('../../modules/es6.regexp.replace');
-require('../../modules/es6.regexp.search');
-require('../../modules/es6.regexp.split');
-require('../../modules/core.regexp.escape');
-module.exports = require('../../modules/_core').RegExp; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/regexp/match.js b/node_modules/babel-runtime/node_modules/core-js/fn/regexp/match.js
deleted file mode 100644
index 400d0921e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/regexp/match.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.regexp.match');
-var MATCH = require('../../modules/_wks')('match');
-module.exports = function(it, str){
- return RegExp.prototype[MATCH].call(it, str);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/regexp/replace.js b/node_modules/babel-runtime/node_modules/core-js/fn/regexp/replace.js
deleted file mode 100644
index adde0adf6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/regexp/replace.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.regexp.replace');
-var REPLACE = require('../../modules/_wks')('replace');
-module.exports = function(it, str, replacer){
- return RegExp.prototype[REPLACE].call(it, str, replacer);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/regexp/search.js b/node_modules/babel-runtime/node_modules/core-js/fn/regexp/search.js
deleted file mode 100644
index 4e149d05a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/regexp/search.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.regexp.search');
-var SEARCH = require('../../modules/_wks')('search');
-module.exports = function(it, str){
- return RegExp.prototype[SEARCH].call(it, str);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/regexp/split.js b/node_modules/babel-runtime/node_modules/core-js/fn/regexp/split.js
deleted file mode 100644
index b92d09fa6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/regexp/split.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.regexp.split');
-var SPLIT = require('../../modules/_wks')('split');
-module.exports = function(it, str, limit){
- return RegExp.prototype[SPLIT].call(it, str, limit);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/regexp/to-string.js b/node_modules/babel-runtime/node_modules/core-js/fn/regexp/to-string.js
deleted file mode 100644
index 29d5d037a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/regexp/to-string.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-require('../../modules/es6.regexp.to-string');
-module.exports = function toString(it){
- return RegExp.prototype.toString.call(it);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/set-immediate.js b/node_modules/babel-runtime/node_modules/core-js/fn/set-immediate.js
deleted file mode 100644
index 250831369..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/set-immediate.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/web.immediate');
-module.exports = require('../modules/_core').setImmediate; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/set-interval.js b/node_modules/babel-runtime/node_modules/core-js/fn/set-interval.js
deleted file mode 100644
index 484447ffa..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/set-interval.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/web.timers');
-module.exports = require('../modules/_core').setInterval; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/set-timeout.js b/node_modules/babel-runtime/node_modules/core-js/fn/set-timeout.js
deleted file mode 100644
index 8ebbb2e4f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/set-timeout.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/web.timers');
-module.exports = require('../modules/_core').setTimeout; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/set.js b/node_modules/babel-runtime/node_modules/core-js/fn/set.js
deleted file mode 100644
index a8b496525..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/set.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.string.iterator');
-require('../modules/web.dom.iterable');
-require('../modules/es6.set');
-require('../modules/es7.set.to-json');
-module.exports = require('../modules/_core').Set; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/anchor.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/anchor.js
deleted file mode 100644
index ba4ef8135..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/anchor.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.anchor');
-module.exports = require('../../modules/_core').String.anchor; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/at.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/at.js
deleted file mode 100644
index ab6aec153..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/at.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.at');
-module.exports = require('../../modules/_core').String.at; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/big.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/big.js
deleted file mode 100644
index ab707907c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/big.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.big');
-module.exports = require('../../modules/_core').String.big; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/blink.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/blink.js
deleted file mode 100644
index c748079b9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/blink.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.blink');
-module.exports = require('../../modules/_core').String.blink; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/bold.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/bold.js
deleted file mode 100644
index 2d36bda3a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/bold.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.bold');
-module.exports = require('../../modules/_core').String.bold; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/code-point-at.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/code-point-at.js
deleted file mode 100644
index be141e82d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/code-point-at.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.code-point-at');
-module.exports = require('../../modules/_core').String.codePointAt; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/ends-with.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/ends-with.js
deleted file mode 100644
index 5e427753e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/ends-with.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.ends-with');
-module.exports = require('../../modules/_core').String.endsWith; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/escape-html.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/escape-html.js
deleted file mode 100644
index 49176ca65..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/escape-html.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/core.string.escape-html');
-module.exports = require('../../modules/_core').String.escapeHTML; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/fixed.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/fixed.js
deleted file mode 100644
index 77e233a3f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/fixed.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.fixed');
-module.exports = require('../../modules/_core').String.fixed; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/fontcolor.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/fontcolor.js
deleted file mode 100644
index 079235a19..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/fontcolor.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.fontcolor');
-module.exports = require('../../modules/_core').String.fontcolor; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/fontsize.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/fontsize.js
deleted file mode 100644
index 8cb2555c6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/fontsize.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.fontsize');
-module.exports = require('../../modules/_core').String.fontsize; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/from-code-point.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/from-code-point.js
deleted file mode 100644
index 93fc53aea..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/from-code-point.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.from-code-point');
-module.exports = require('../../modules/_core').String.fromCodePoint; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/includes.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/includes.js
deleted file mode 100644
index c9736404d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/includes.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.includes');
-module.exports = require('../../modules/_core').String.includes; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/index.js
deleted file mode 100644
index 6485a9b25..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-require('../../modules/es6.string.from-code-point');
-require('../../modules/es6.string.raw');
-require('../../modules/es6.string.trim');
-require('../../modules/es6.string.iterator');
-require('../../modules/es6.string.code-point-at');
-require('../../modules/es6.string.ends-with');
-require('../../modules/es6.string.includes');
-require('../../modules/es6.string.repeat');
-require('../../modules/es6.string.starts-with');
-require('../../modules/es6.regexp.match');
-require('../../modules/es6.regexp.replace');
-require('../../modules/es6.regexp.search');
-require('../../modules/es6.regexp.split');
-require('../../modules/es6.string.anchor');
-require('../../modules/es6.string.big');
-require('../../modules/es6.string.blink');
-require('../../modules/es6.string.bold');
-require('../../modules/es6.string.fixed');
-require('../../modules/es6.string.fontcolor');
-require('../../modules/es6.string.fontsize');
-require('../../modules/es6.string.italics');
-require('../../modules/es6.string.link');
-require('../../modules/es6.string.small');
-require('../../modules/es6.string.strike');
-require('../../modules/es6.string.sub');
-require('../../modules/es6.string.sup');
-require('../../modules/es7.string.at');
-require('../../modules/es7.string.pad-start');
-require('../../modules/es7.string.pad-end');
-require('../../modules/es7.string.trim-left');
-require('../../modules/es7.string.trim-right');
-require('../../modules/es7.string.match-all');
-require('../../modules/core.string.escape-html');
-require('../../modules/core.string.unescape-html');
-module.exports = require('../../modules/_core').String;
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/italics.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/italics.js
deleted file mode 100644
index 378450ebd..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/italics.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.italics');
-module.exports = require('../../modules/_core').String.italics; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/iterator.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/iterator.js
deleted file mode 100644
index 947e7558b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/iterator.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.string.iterator');
-var get = require('../../modules/_iterators').String;
-module.exports = function(it){
- return get.call(it);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/link.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/link.js
deleted file mode 100644
index 1eb2c6dd2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/link.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.link');
-module.exports = require('../../modules/_core').String.link; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/match-all.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/match-all.js
deleted file mode 100644
index 1a1dfeb6e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/match-all.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.match-all');
-module.exports = require('../../modules/_core').String.matchAll; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/pad-end.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/pad-end.js
deleted file mode 100644
index 23eb9f95a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/pad-end.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.pad-end');
-module.exports = require('../../modules/_core').String.padEnd;
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/pad-start.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/pad-start.js
deleted file mode 100644
index ff12739fc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/pad-start.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.pad-start');
-module.exports = require('../../modules/_core').String.padStart;
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/raw.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/raw.js
deleted file mode 100644
index 713550fb2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/raw.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.raw');
-module.exports = require('../../modules/_core').String.raw; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/repeat.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/repeat.js
deleted file mode 100644
index fa75b13ec..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/repeat.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.repeat');
-module.exports = require('../../modules/_core').String.repeat; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/small.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/small.js
deleted file mode 100644
index 0438290db..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/small.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.small');
-module.exports = require('../../modules/_core').String.small; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/starts-with.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/starts-with.js
deleted file mode 100644
index d62512a3c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/starts-with.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.starts-with');
-module.exports = require('../../modules/_core').String.startsWith; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/strike.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/strike.js
deleted file mode 100644
index b79946c8e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/strike.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.strike');
-module.exports = require('../../modules/_core').String.strike; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/sub.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/sub.js
deleted file mode 100644
index 54d0671e3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/sub.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.sub');
-module.exports = require('../../modules/_core').String.sub; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/sup.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/sup.js
deleted file mode 100644
index 645e0372f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/sup.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.sup');
-module.exports = require('../../modules/_core').String.sup; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/trim-end.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/trim-end.js
deleted file mode 100644
index f3bdf6fb1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/trim-end.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.trim-right');
-module.exports = require('../../modules/_core').String.trimRight; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/trim-left.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/trim-left.js
deleted file mode 100644
index 04671d369..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/trim-left.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.trim-left');
-module.exports = require('../../modules/_core').String.trimLeft; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/trim-right.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/trim-right.js
deleted file mode 100644
index f3bdf6fb1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/trim-right.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.trim-right');
-module.exports = require('../../modules/_core').String.trimRight; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/trim-start.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/trim-start.js
deleted file mode 100644
index 04671d369..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/trim-start.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.trim-left');
-module.exports = require('../../modules/_core').String.trimLeft; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/trim.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/trim.js
deleted file mode 100644
index c536e12eb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/trim.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.trim');
-module.exports = require('../../modules/_core').String.trim; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/unescape-html.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/unescape-html.js
deleted file mode 100644
index 7c2c55c8c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/unescape-html.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/core.string.unescape-html');
-module.exports = require('../../modules/_core').String.unescapeHTML; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/anchor.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/anchor.js
deleted file mode 100644
index 6f74b7e88..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/anchor.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.anchor');
-module.exports = require('../../../modules/_entry-virtual')('String').anchor; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/at.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/at.js
deleted file mode 100644
index 3b9614386..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/at.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es7.string.at');
-module.exports = require('../../../modules/_entry-virtual')('String').at; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/big.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/big.js
deleted file mode 100644
index 57ac7d5de..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/big.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.big');
-module.exports = require('../../../modules/_entry-virtual')('String').big; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/blink.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/blink.js
deleted file mode 100644
index 5c4cea80f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/blink.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.blink');
-module.exports = require('../../../modules/_entry-virtual')('String').blink; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/bold.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/bold.js
deleted file mode 100644
index c566bf2d9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/bold.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.bold');
-module.exports = require('../../../modules/_entry-virtual')('String').bold; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/code-point-at.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/code-point-at.js
deleted file mode 100644
index 873752191..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/code-point-at.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.code-point-at');
-module.exports = require('../../../modules/_entry-virtual')('String').codePointAt; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/ends-with.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/ends-with.js
deleted file mode 100644
index 90bc6e79e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/ends-with.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.ends-with');
-module.exports = require('../../../modules/_entry-virtual')('String').endsWith; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/escape-html.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/escape-html.js
deleted file mode 100644
index 3342bcec9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/escape-html.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/core.string.escape-html');
-module.exports = require('../../../modules/_entry-virtual')('String').escapeHTML; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/fixed.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/fixed.js
deleted file mode 100644
index e830654f2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/fixed.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.fixed');
-module.exports = require('../../../modules/_entry-virtual')('String').fixed; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/fontcolor.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/fontcolor.js
deleted file mode 100644
index cfb9b2c09..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/fontcolor.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.fontcolor');
-module.exports = require('../../../modules/_entry-virtual')('String').fontcolor; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/fontsize.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/fontsize.js
deleted file mode 100644
index de8f5161a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/fontsize.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.fontsize');
-module.exports = require('../../../modules/_entry-virtual')('String').fontsize; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/includes.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/includes.js
deleted file mode 100644
index 1e4793d67..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/includes.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.includes');
-module.exports = require('../../../modules/_entry-virtual')('String').includes; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/index.js
deleted file mode 100644
index 0e65d20c4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-require('../../../modules/es6.string.trim');
-require('../../../modules/es6.string.iterator');
-require('../../../modules/es6.string.code-point-at');
-require('../../../modules/es6.string.ends-with');
-require('../../../modules/es6.string.includes');
-require('../../../modules/es6.string.repeat');
-require('../../../modules/es6.string.starts-with');
-require('../../../modules/es6.regexp.match');
-require('../../../modules/es6.regexp.replace');
-require('../../../modules/es6.regexp.search');
-require('../../../modules/es6.regexp.split');
-require('../../../modules/es6.string.anchor');
-require('../../../modules/es6.string.big');
-require('../../../modules/es6.string.blink');
-require('../../../modules/es6.string.bold');
-require('../../../modules/es6.string.fixed');
-require('../../../modules/es6.string.fontcolor');
-require('../../../modules/es6.string.fontsize');
-require('../../../modules/es6.string.italics');
-require('../../../modules/es6.string.link');
-require('../../../modules/es6.string.small');
-require('../../../modules/es6.string.strike');
-require('../../../modules/es6.string.sub');
-require('../../../modules/es6.string.sup');
-require('../../../modules/es7.string.at');
-require('../../../modules/es7.string.pad-start');
-require('../../../modules/es7.string.pad-end');
-require('../../../modules/es7.string.trim-left');
-require('../../../modules/es7.string.trim-right');
-require('../../../modules/es7.string.match-all');
-require('../../../modules/core.string.escape-html');
-require('../../../modules/core.string.unescape-html');
-module.exports = require('../../../modules/_entry-virtual')('String');
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/italics.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/italics.js
deleted file mode 100644
index f8f1d3381..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/italics.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.italics');
-module.exports = require('../../../modules/_entry-virtual')('String').italics; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/iterator.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/iterator.js
deleted file mode 100644
index 7efe2f93a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/iterator.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/core.number.iterator');
-module.exports = require('../../../modules/_iterators').String; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/link.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/link.js
deleted file mode 100644
index 4b2eea8a5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/link.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.link');
-module.exports = require('../../../modules/_entry-virtual')('String').link; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/match-all.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/match-all.js
deleted file mode 100644
index 9208873a7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/match-all.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es7.string.match-all');
-module.exports = require('../../../modules/_entry-virtual')('String').matchAll; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/pad-end.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/pad-end.js
deleted file mode 100644
index 81e5ac046..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/pad-end.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es7.string.pad-end');
-module.exports = require('../../../modules/_entry-virtual')('String').padEnd; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/pad-start.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/pad-start.js
deleted file mode 100644
index 54cf3a59b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/pad-start.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es7.string.pad-start');
-module.exports = require('../../../modules/_entry-virtual')('String').padStart; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/repeat.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/repeat.js
deleted file mode 100644
index d08cf6a5e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/repeat.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.repeat');
-module.exports = require('../../../modules/_entry-virtual')('String').repeat; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/small.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/small.js
deleted file mode 100644
index 201bf9b6a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/small.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.small');
-module.exports = require('../../../modules/_entry-virtual')('String').small; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/starts-with.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/starts-with.js
deleted file mode 100644
index f8897d153..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/starts-with.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.starts-with');
-module.exports = require('../../../modules/_entry-virtual')('String').startsWith; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/strike.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/strike.js
deleted file mode 100644
index 4572db915..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/strike.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.strike');
-module.exports = require('../../../modules/_entry-virtual')('String').strike; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/sub.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/sub.js
deleted file mode 100644
index a13611ecc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/sub.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.sub');
-module.exports = require('../../../modules/_entry-virtual')('String').sub; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/sup.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/sup.js
deleted file mode 100644
index 07695329c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/sup.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.sup');
-module.exports = require('../../../modules/_entry-virtual')('String').sup; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim-end.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim-end.js
deleted file mode 100644
index 14c25ac84..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim-end.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es7.string.trim-right');
-module.exports = require('../../../modules/_entry-virtual')('String').trimRight; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim-left.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim-left.js
deleted file mode 100644
index aabcfb3f3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim-left.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es7.string.trim-left');
-module.exports = require('../../../modules/_entry-virtual')('String').trimLeft; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim-right.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim-right.js
deleted file mode 100644
index 14c25ac84..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim-right.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es7.string.trim-right');
-module.exports = require('../../../modules/_entry-virtual')('String').trimRight; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim-start.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim-start.js
deleted file mode 100644
index aabcfb3f3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim-start.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es7.string.trim-left');
-module.exports = require('../../../modules/_entry-virtual')('String').trimLeft; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim.js
deleted file mode 100644
index 23fbcbc50..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/trim.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.trim');
-module.exports = require('../../../modules/_entry-virtual')('String').trim; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/unescape-html.js b/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/unescape-html.js
deleted file mode 100644
index 51eb59fc5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/string/virtual/unescape-html.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/core.string.unescape-html');
-module.exports = require('../../../modules/_entry-virtual')('String').unescapeHTML; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/async-iterator.js b/node_modules/babel-runtime/node_modules/core-js/fn/symbol/async-iterator.js
deleted file mode 100644
index aca10f966..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/async-iterator.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.symbol.async-iterator');
-module.exports = require('../../modules/_wks-ext').f('asyncIterator'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/for.js b/node_modules/babel-runtime/node_modules/core-js/fn/symbol/for.js
deleted file mode 100644
index c9e93c139..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/for.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.symbol');
-module.exports = require('../../modules/_core').Symbol['for']; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/has-instance.js b/node_modules/babel-runtime/node_modules/core-js/fn/symbol/has-instance.js
deleted file mode 100644
index f3ec9cf6b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/has-instance.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.function.has-instance');
-module.exports = require('../../modules/_wks-ext').f('hasInstance'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/symbol/index.js
deleted file mode 100644
index 64c0f5f47..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.symbol');
-require('../../modules/es6.object.to-string');
-require('../../modules/es7.symbol.async-iterator');
-require('../../modules/es7.symbol.observable');
-module.exports = require('../../modules/_core').Symbol; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/is-concat-spreadable.js b/node_modules/babel-runtime/node_modules/core-js/fn/symbol/is-concat-spreadable.js
deleted file mode 100644
index 49ed7a1d2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/is-concat-spreadable.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('../../modules/_wks-ext').f('isConcatSpreadable'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/iterator.js b/node_modules/babel-runtime/node_modules/core-js/fn/symbol/iterator.js
deleted file mode 100644
index 503522809..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/iterator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/es6.string.iterator');
-require('../../modules/web.dom.iterable');
-module.exports = require('../../modules/_wks-ext').f('iterator'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/key-for.js b/node_modules/babel-runtime/node_modules/core-js/fn/symbol/key-for.js
deleted file mode 100644
index d9b595ff1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/key-for.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.symbol');
-module.exports = require('../../modules/_core').Symbol.keyFor; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/match.js b/node_modules/babel-runtime/node_modules/core-js/fn/symbol/match.js
deleted file mode 100644
index d27db65b6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/match.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.regexp.match');
-module.exports = require('../../modules/_wks-ext').f('match'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/observable.js b/node_modules/babel-runtime/node_modules/core-js/fn/symbol/observable.js
deleted file mode 100644
index 884cebfdf..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/observable.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.symbol.observable');
-module.exports = require('../../modules/_wks-ext').f('observable'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/replace.js b/node_modules/babel-runtime/node_modules/core-js/fn/symbol/replace.js
deleted file mode 100644
index 3ef60f5e9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/replace.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.regexp.replace');
-module.exports = require('../../modules/_wks-ext').f('replace'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/search.js b/node_modules/babel-runtime/node_modules/core-js/fn/symbol/search.js
deleted file mode 100644
index aee84f9e6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/search.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.regexp.search');
-module.exports = require('../../modules/_wks-ext').f('search'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/species.js b/node_modules/babel-runtime/node_modules/core-js/fn/symbol/species.js
deleted file mode 100644
index a425eb2da..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/species.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('../../modules/_wks-ext').f('species'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/split.js b/node_modules/babel-runtime/node_modules/core-js/fn/symbol/split.js
deleted file mode 100644
index 8535932fb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/split.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.regexp.split');
-module.exports = require('../../modules/_wks-ext').f('split'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/to-primitive.js b/node_modules/babel-runtime/node_modules/core-js/fn/symbol/to-primitive.js
deleted file mode 100644
index 20c831b85..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/to-primitive.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('../../modules/_wks-ext').f('toPrimitive'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/to-string-tag.js b/node_modules/babel-runtime/node_modules/core-js/fn/symbol/to-string-tag.js
deleted file mode 100644
index 101baf27c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/to-string-tag.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.to-string');
-module.exports = require('../../modules/_wks-ext').f('toStringTag'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/unscopables.js b/node_modules/babel-runtime/node_modules/core-js/fn/symbol/unscopables.js
deleted file mode 100644
index 6c4146b23..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/symbol/unscopables.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('../../modules/_wks-ext').f('unscopables'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/system/global.js b/node_modules/babel-runtime/node_modules/core-js/fn/system/global.js
deleted file mode 100644
index c3219d6f3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/system/global.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.system.global');
-module.exports = require('../../modules/_core').System.global; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/system/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/system/index.js
deleted file mode 100644
index eae78ddd6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/system/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.system.global');
-module.exports = require('../../modules/_core').System; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/typed/array-buffer.js b/node_modules/babel-runtime/node_modules/core-js/fn/typed/array-buffer.js
deleted file mode 100644
index fe08f7f24..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/typed/array-buffer.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/es6.typed.array-buffer');
-require('../../modules/es6.object.to-string');
-module.exports = require('../../modules/_core').ArrayBuffer; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/typed/data-view.js b/node_modules/babel-runtime/node_modules/core-js/fn/typed/data-view.js
deleted file mode 100644
index 09dbb38aa..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/typed/data-view.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/es6.typed.data-view');
-require('../../modules/es6.object.to-string');
-module.exports = require('../../modules/_core').DataView; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/typed/float32-array.js b/node_modules/babel-runtime/node_modules/core-js/fn/typed/float32-array.js
deleted file mode 100644
index 1191fecb9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/typed/float32-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.typed.float32-array');
-module.exports = require('../../modules/_core').Float32Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/typed/float64-array.js b/node_modules/babel-runtime/node_modules/core-js/fn/typed/float64-array.js
deleted file mode 100644
index 6073a6824..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/typed/float64-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.typed.float64-array');
-module.exports = require('../../modules/_core').Float64Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/typed/index.js b/node_modules/babel-runtime/node_modules/core-js/fn/typed/index.js
deleted file mode 100644
index 7babe09d3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/typed/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-require('../../modules/es6.typed.array-buffer');
-require('../../modules/es6.typed.data-view');
-require('../../modules/es6.typed.int8-array');
-require('../../modules/es6.typed.uint8-array');
-require('../../modules/es6.typed.uint8-clamped-array');
-require('../../modules/es6.typed.int16-array');
-require('../../modules/es6.typed.uint16-array');
-require('../../modules/es6.typed.int32-array');
-require('../../modules/es6.typed.uint32-array');
-require('../../modules/es6.typed.float32-array');
-require('../../modules/es6.typed.float64-array');
-require('../../modules/es6.object.to-string');
-module.exports = require('../../modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/typed/int16-array.js b/node_modules/babel-runtime/node_modules/core-js/fn/typed/int16-array.js
deleted file mode 100644
index 0722549d3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/typed/int16-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.typed.int16-array');
-module.exports = require('../../modules/_core').Int16Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/typed/int32-array.js b/node_modules/babel-runtime/node_modules/core-js/fn/typed/int32-array.js
deleted file mode 100644
index 136136221..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/typed/int32-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.typed.int32-array');
-module.exports = require('../../modules/_core').Int32Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/typed/int8-array.js b/node_modules/babel-runtime/node_modules/core-js/fn/typed/int8-array.js
deleted file mode 100644
index edf48c792..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/typed/int8-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.typed.int8-array');
-module.exports = require('../../modules/_core').Int8Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/typed/uint16-array.js b/node_modules/babel-runtime/node_modules/core-js/fn/typed/uint16-array.js
deleted file mode 100644
index 3ff11550e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/typed/uint16-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.typed.uint16-array');
-module.exports = require('../../modules/_core').Uint16Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/typed/uint32-array.js b/node_modules/babel-runtime/node_modules/core-js/fn/typed/uint32-array.js
deleted file mode 100644
index 47bb4c211..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/typed/uint32-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.typed.uint32-array');
-module.exports = require('../../modules/_core').Uint32Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/typed/uint8-array.js b/node_modules/babel-runtime/node_modules/core-js/fn/typed/uint8-array.js
deleted file mode 100644
index fd8a4b114..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/typed/uint8-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.typed.uint8-array');
-module.exports = require('../../modules/_core').Uint8Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/typed/uint8-clamped-array.js b/node_modules/babel-runtime/node_modules/core-js/fn/typed/uint8-clamped-array.js
deleted file mode 100644
index c688657c5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/typed/uint8-clamped-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.typed.uint8-clamped-array');
-module.exports = require('../../modules/_core').Uint8ClampedArray; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/weak-map.js b/node_modules/babel-runtime/node_modules/core-js/fn/weak-map.js
deleted file mode 100644
index 00cac1adb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/weak-map.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/web.dom.iterable');
-require('../modules/es6.weak-map');
-module.exports = require('../modules/_core').WeakMap; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/fn/weak-set.js b/node_modules/babel-runtime/node_modules/core-js/fn/weak-set.js
deleted file mode 100644
index eef1af2a8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/fn/weak-set.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/web.dom.iterable');
-require('../modules/es6.weak-set');
-module.exports = require('../modules/_core').WeakSet; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/index.js b/node_modules/babel-runtime/node_modules/core-js/index.js
deleted file mode 100644
index 78b9e3d4b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/index.js
+++ /dev/null
@@ -1,16 +0,0 @@
-require('./shim');
-require('./modules/core.dict');
-require('./modules/core.get-iterator-method');
-require('./modules/core.get-iterator');
-require('./modules/core.is-iterable');
-require('./modules/core.delay');
-require('./modules/core.function.part');
-require('./modules/core.object.is-object');
-require('./modules/core.object.classof');
-require('./modules/core.object.define');
-require('./modules/core.object.make');
-require('./modules/core.number.iterator');
-require('./modules/core.regexp.escape');
-require('./modules/core.string.escape-html');
-require('./modules/core.string.unescape-html');
-module.exports = require('./modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/core/_.js b/node_modules/babel-runtime/node_modules/core-js/library/core/_.js
deleted file mode 100644
index 8a99f7062..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/core/_.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.function.part');
-module.exports = require('../modules/_core')._; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/core/delay.js b/node_modules/babel-runtime/node_modules/core-js/library/core/delay.js
deleted file mode 100644
index 188573884..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/core/delay.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.delay');
-module.exports = require('../modules/_core').delay;
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/core/dict.js b/node_modules/babel-runtime/node_modules/core-js/library/core/dict.js
deleted file mode 100644
index da84a8d88..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/core/dict.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.dict');
-module.exports = require('../modules/_core').Dict; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/core/function.js b/node_modules/babel-runtime/node_modules/core-js/library/core/function.js
deleted file mode 100644
index 3b8d01317..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/core/function.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.function.part');
-module.exports = require('../modules/_core').Function;
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/core/index.js b/node_modules/babel-runtime/node_modules/core-js/library/core/index.js
deleted file mode 100644
index 2b20fd9ec..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/core/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-require('../modules/core.dict');
-require('../modules/core.get-iterator-method');
-require('../modules/core.get-iterator');
-require('../modules/core.is-iterable');
-require('../modules/core.delay');
-require('../modules/core.function.part');
-require('../modules/core.object.is-object');
-require('../modules/core.object.classof');
-require('../modules/core.object.define');
-require('../modules/core.object.make');
-require('../modules/core.number.iterator');
-require('../modules/core.regexp.escape');
-require('../modules/core.string.escape-html');
-require('../modules/core.string.unescape-html');
-module.exports = require('../modules/_core');
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/core/number.js b/node_modules/babel-runtime/node_modules/core-js/library/core/number.js
deleted file mode 100644
index 62f632c51..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/core/number.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.number.iterator');
-module.exports = require('../modules/_core').Number; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/core/object.js b/node_modules/babel-runtime/node_modules/core-js/library/core/object.js
deleted file mode 100644
index 04e539c90..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/core/object.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../modules/core.object.is-object');
-require('../modules/core.object.classof');
-require('../modules/core.object.define');
-require('../modules/core.object.make');
-module.exports = require('../modules/_core').Object;
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/core/regexp.js b/node_modules/babel-runtime/node_modules/core-js/library/core/regexp.js
deleted file mode 100644
index 3e04c5119..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/core/regexp.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.regexp.escape');
-module.exports = require('../modules/_core').RegExp; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/core/string.js b/node_modules/babel-runtime/node_modules/core-js/library/core/string.js
deleted file mode 100644
index 8da740c6e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/core/string.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../modules/core.string.escape-html');
-require('../modules/core.string.unescape-html');
-module.exports = require('../modules/_core').String; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es5/index.js b/node_modules/babel-runtime/node_modules/core-js/library/es5/index.js
deleted file mode 100644
index 580f1a670..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es5/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-require('../modules/es6.object.create');
-require('../modules/es6.object.define-property');
-require('../modules/es6.object.define-properties');
-require('../modules/es6.object.get-own-property-descriptor');
-require('../modules/es6.object.get-prototype-of');
-require('../modules/es6.object.keys');
-require('../modules/es6.object.get-own-property-names');
-require('../modules/es6.object.freeze');
-require('../modules/es6.object.seal');
-require('../modules/es6.object.prevent-extensions');
-require('../modules/es6.object.is-frozen');
-require('../modules/es6.object.is-sealed');
-require('../modules/es6.object.is-extensible');
-require('../modules/es6.function.bind');
-require('../modules/es6.array.is-array');
-require('../modules/es6.array.join');
-require('../modules/es6.array.slice');
-require('../modules/es6.array.sort');
-require('../modules/es6.array.for-each');
-require('../modules/es6.array.map');
-require('../modules/es6.array.filter');
-require('../modules/es6.array.some');
-require('../modules/es6.array.every');
-require('../modules/es6.array.reduce');
-require('../modules/es6.array.reduce-right');
-require('../modules/es6.array.index-of');
-require('../modules/es6.array.last-index-of');
-require('../modules/es6.number.to-fixed');
-require('../modules/es6.number.to-precision');
-require('../modules/es6.date.now');
-require('../modules/es6.date.to-iso-string');
-require('../modules/es6.date.to-json');
-require('../modules/es6.parse-int');
-require('../modules/es6.parse-float');
-require('../modules/es6.string.trim');
-require('../modules/es6.regexp.to-string');
-module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/array.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/array.js
deleted file mode 100644
index 428d3e8c4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/array.js
+++ /dev/null
@@ -1,23 +0,0 @@
-require('../modules/es6.string.iterator');
-require('../modules/es6.array.is-array');
-require('../modules/es6.array.from');
-require('../modules/es6.array.of');
-require('../modules/es6.array.join');
-require('../modules/es6.array.slice');
-require('../modules/es6.array.sort');
-require('../modules/es6.array.for-each');
-require('../modules/es6.array.map');
-require('../modules/es6.array.filter');
-require('../modules/es6.array.some');
-require('../modules/es6.array.every');
-require('../modules/es6.array.reduce');
-require('../modules/es6.array.reduce-right');
-require('../modules/es6.array.index-of');
-require('../modules/es6.array.last-index-of');
-require('../modules/es6.array.copy-within');
-require('../modules/es6.array.fill');
-require('../modules/es6.array.find');
-require('../modules/es6.array.find-index');
-require('../modules/es6.array.species');
-require('../modules/es6.array.iterator');
-module.exports = require('../modules/_core').Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/date.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/date.js
deleted file mode 100644
index dfa3be09d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/date.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../modules/es6.date.now');
-require('../modules/es6.date.to-json');
-require('../modules/es6.date.to-iso-string');
-require('../modules/es6.date.to-string');
-require('../modules/es6.date.to-primitive');
-module.exports = Date; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/function.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/function.js
deleted file mode 100644
index ff685da27..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/function.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/es6.function.bind');
-require('../modules/es6.function.name');
-require('../modules/es6.function.has-instance');
-module.exports = require('../modules/_core').Function; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/index.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/index.js
deleted file mode 100644
index 59df50921..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/index.js
+++ /dev/null
@@ -1,138 +0,0 @@
-require('../modules/es6.symbol');
-require('../modules/es6.object.create');
-require('../modules/es6.object.define-property');
-require('../modules/es6.object.define-properties');
-require('../modules/es6.object.get-own-property-descriptor');
-require('../modules/es6.object.get-prototype-of');
-require('../modules/es6.object.keys');
-require('../modules/es6.object.get-own-property-names');
-require('../modules/es6.object.freeze');
-require('../modules/es6.object.seal');
-require('../modules/es6.object.prevent-extensions');
-require('../modules/es6.object.is-frozen');
-require('../modules/es6.object.is-sealed');
-require('../modules/es6.object.is-extensible');
-require('../modules/es6.object.assign');
-require('../modules/es6.object.is');
-require('../modules/es6.object.set-prototype-of');
-require('../modules/es6.object.to-string');
-require('../modules/es6.function.bind');
-require('../modules/es6.function.name');
-require('../modules/es6.function.has-instance');
-require('../modules/es6.parse-int');
-require('../modules/es6.parse-float');
-require('../modules/es6.number.constructor');
-require('../modules/es6.number.to-fixed');
-require('../modules/es6.number.to-precision');
-require('../modules/es6.number.epsilon');
-require('../modules/es6.number.is-finite');
-require('../modules/es6.number.is-integer');
-require('../modules/es6.number.is-nan');
-require('../modules/es6.number.is-safe-integer');
-require('../modules/es6.number.max-safe-integer');
-require('../modules/es6.number.min-safe-integer');
-require('../modules/es6.number.parse-float');
-require('../modules/es6.number.parse-int');
-require('../modules/es6.math.acosh');
-require('../modules/es6.math.asinh');
-require('../modules/es6.math.atanh');
-require('../modules/es6.math.cbrt');
-require('../modules/es6.math.clz32');
-require('../modules/es6.math.cosh');
-require('../modules/es6.math.expm1');
-require('../modules/es6.math.fround');
-require('../modules/es6.math.hypot');
-require('../modules/es6.math.imul');
-require('../modules/es6.math.log10');
-require('../modules/es6.math.log1p');
-require('../modules/es6.math.log2');
-require('../modules/es6.math.sign');
-require('../modules/es6.math.sinh');
-require('../modules/es6.math.tanh');
-require('../modules/es6.math.trunc');
-require('../modules/es6.string.from-code-point');
-require('../modules/es6.string.raw');
-require('../modules/es6.string.trim');
-require('../modules/es6.string.iterator');
-require('../modules/es6.string.code-point-at');
-require('../modules/es6.string.ends-with');
-require('../modules/es6.string.includes');
-require('../modules/es6.string.repeat');
-require('../modules/es6.string.starts-with');
-require('../modules/es6.string.anchor');
-require('../modules/es6.string.big');
-require('../modules/es6.string.blink');
-require('../modules/es6.string.bold');
-require('../modules/es6.string.fixed');
-require('../modules/es6.string.fontcolor');
-require('../modules/es6.string.fontsize');
-require('../modules/es6.string.italics');
-require('../modules/es6.string.link');
-require('../modules/es6.string.small');
-require('../modules/es6.string.strike');
-require('../modules/es6.string.sub');
-require('../modules/es6.string.sup');
-require('../modules/es6.date.now');
-require('../modules/es6.date.to-json');
-require('../modules/es6.date.to-iso-string');
-require('../modules/es6.date.to-string');
-require('../modules/es6.date.to-primitive');
-require('../modules/es6.array.is-array');
-require('../modules/es6.array.from');
-require('../modules/es6.array.of');
-require('../modules/es6.array.join');
-require('../modules/es6.array.slice');
-require('../modules/es6.array.sort');
-require('../modules/es6.array.for-each');
-require('../modules/es6.array.map');
-require('../modules/es6.array.filter');
-require('../modules/es6.array.some');
-require('../modules/es6.array.every');
-require('../modules/es6.array.reduce');
-require('../modules/es6.array.reduce-right');
-require('../modules/es6.array.index-of');
-require('../modules/es6.array.last-index-of');
-require('../modules/es6.array.copy-within');
-require('../modules/es6.array.fill');
-require('../modules/es6.array.find');
-require('../modules/es6.array.find-index');
-require('../modules/es6.array.species');
-require('../modules/es6.array.iterator');
-require('../modules/es6.regexp.constructor');
-require('../modules/es6.regexp.to-string');
-require('../modules/es6.regexp.flags');
-require('../modules/es6.regexp.match');
-require('../modules/es6.regexp.replace');
-require('../modules/es6.regexp.search');
-require('../modules/es6.regexp.split');
-require('../modules/es6.promise');
-require('../modules/es6.map');
-require('../modules/es6.set');
-require('../modules/es6.weak-map');
-require('../modules/es6.weak-set');
-require('../modules/es6.typed.array-buffer');
-require('../modules/es6.typed.data-view');
-require('../modules/es6.typed.int8-array');
-require('../modules/es6.typed.uint8-array');
-require('../modules/es6.typed.uint8-clamped-array');
-require('../modules/es6.typed.int16-array');
-require('../modules/es6.typed.uint16-array');
-require('../modules/es6.typed.int32-array');
-require('../modules/es6.typed.uint32-array');
-require('../modules/es6.typed.float32-array');
-require('../modules/es6.typed.float64-array');
-require('../modules/es6.reflect.apply');
-require('../modules/es6.reflect.construct');
-require('../modules/es6.reflect.define-property');
-require('../modules/es6.reflect.delete-property');
-require('../modules/es6.reflect.enumerate');
-require('../modules/es6.reflect.get');
-require('../modules/es6.reflect.get-own-property-descriptor');
-require('../modules/es6.reflect.get-prototype-of');
-require('../modules/es6.reflect.has');
-require('../modules/es6.reflect.is-extensible');
-require('../modules/es6.reflect.own-keys');
-require('../modules/es6.reflect.prevent-extensions');
-require('../modules/es6.reflect.set');
-require('../modules/es6.reflect.set-prototype-of');
-module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/map.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/map.js
deleted file mode 100644
index 50f04c1f2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/map.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.string.iterator');
-require('../modules/web.dom.iterable');
-require('../modules/es6.map');
-module.exports = require('../modules/_core').Map; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/math.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/math.js
deleted file mode 100644
index f26b5b296..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/math.js
+++ /dev/null
@@ -1,18 +0,0 @@
-require('../modules/es6.math.acosh');
-require('../modules/es6.math.asinh');
-require('../modules/es6.math.atanh');
-require('../modules/es6.math.cbrt');
-require('../modules/es6.math.clz32');
-require('../modules/es6.math.cosh');
-require('../modules/es6.math.expm1');
-require('../modules/es6.math.fround');
-require('../modules/es6.math.hypot');
-require('../modules/es6.math.imul');
-require('../modules/es6.math.log10');
-require('../modules/es6.math.log1p');
-require('../modules/es6.math.log2');
-require('../modules/es6.math.sign');
-require('../modules/es6.math.sinh');
-require('../modules/es6.math.tanh');
-require('../modules/es6.math.trunc');
-module.exports = require('../modules/_core').Math; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/number.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/number.js
deleted file mode 100644
index 1dafcda43..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/number.js
+++ /dev/null
@@ -1,13 +0,0 @@
-require('../modules/es6.number.constructor');
-require('../modules/es6.number.to-fixed');
-require('../modules/es6.number.to-precision');
-require('../modules/es6.number.epsilon');
-require('../modules/es6.number.is-finite');
-require('../modules/es6.number.is-integer');
-require('../modules/es6.number.is-nan');
-require('../modules/es6.number.is-safe-integer');
-require('../modules/es6.number.max-safe-integer');
-require('../modules/es6.number.min-safe-integer');
-require('../modules/es6.number.parse-float');
-require('../modules/es6.number.parse-int');
-module.exports = require('../modules/_core').Number; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/object.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/object.js
deleted file mode 100644
index aada8c38f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/object.js
+++ /dev/null
@@ -1,20 +0,0 @@
-require('../modules/es6.symbol');
-require('../modules/es6.object.create');
-require('../modules/es6.object.define-property');
-require('../modules/es6.object.define-properties');
-require('../modules/es6.object.get-own-property-descriptor');
-require('../modules/es6.object.get-prototype-of');
-require('../modules/es6.object.keys');
-require('../modules/es6.object.get-own-property-names');
-require('../modules/es6.object.freeze');
-require('../modules/es6.object.seal');
-require('../modules/es6.object.prevent-extensions');
-require('../modules/es6.object.is-frozen');
-require('../modules/es6.object.is-sealed');
-require('../modules/es6.object.is-extensible');
-require('../modules/es6.object.assign');
-require('../modules/es6.object.is');
-require('../modules/es6.object.set-prototype-of');
-require('../modules/es6.object.to-string');
-
-module.exports = require('../modules/_core').Object; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/parse-float.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/parse-float.js
deleted file mode 100644
index dad94ddbe..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/parse-float.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es6.parse-float');
-module.exports = require('../modules/_core').parseFloat; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/parse-int.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/parse-int.js
deleted file mode 100644
index 08a20996b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/parse-int.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es6.parse-int');
-module.exports = require('../modules/_core').parseInt; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/promise.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/promise.js
deleted file mode 100644
index c901c8595..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/promise.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.string.iterator');
-require('../modules/web.dom.iterable');
-require('../modules/es6.promise');
-module.exports = require('../modules/_core').Promise; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/reflect.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/reflect.js
deleted file mode 100644
index 18bdb3c2e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/reflect.js
+++ /dev/null
@@ -1,15 +0,0 @@
-require('../modules/es6.reflect.apply');
-require('../modules/es6.reflect.construct');
-require('../modules/es6.reflect.define-property');
-require('../modules/es6.reflect.delete-property');
-require('../modules/es6.reflect.enumerate');
-require('../modules/es6.reflect.get');
-require('../modules/es6.reflect.get-own-property-descriptor');
-require('../modules/es6.reflect.get-prototype-of');
-require('../modules/es6.reflect.has');
-require('../modules/es6.reflect.is-extensible');
-require('../modules/es6.reflect.own-keys');
-require('../modules/es6.reflect.prevent-extensions');
-require('../modules/es6.reflect.set');
-require('../modules/es6.reflect.set-prototype-of');
-module.exports = require('../modules/_core').Reflect; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/regexp.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/regexp.js
deleted file mode 100644
index 27cc827f9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/regexp.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../modules/es6.regexp.constructor');
-require('../modules/es6.regexp.to-string');
-require('../modules/es6.regexp.flags');
-require('../modules/es6.regexp.match');
-require('../modules/es6.regexp.replace');
-require('../modules/es6.regexp.search');
-require('../modules/es6.regexp.split');
-module.exports = require('../modules/_core').RegExp; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/set.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/set.js
deleted file mode 100644
index 2a2557ced..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/set.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.string.iterator');
-require('../modules/web.dom.iterable');
-require('../modules/es6.set');
-module.exports = require('../modules/_core').Set; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/string.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/string.js
deleted file mode 100644
index 83033621f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/string.js
+++ /dev/null
@@ -1,27 +0,0 @@
-require('../modules/es6.string.from-code-point');
-require('../modules/es6.string.raw');
-require('../modules/es6.string.trim');
-require('../modules/es6.string.iterator');
-require('../modules/es6.string.code-point-at');
-require('../modules/es6.string.ends-with');
-require('../modules/es6.string.includes');
-require('../modules/es6.string.repeat');
-require('../modules/es6.string.starts-with');
-require('../modules/es6.string.anchor');
-require('../modules/es6.string.big');
-require('../modules/es6.string.blink');
-require('../modules/es6.string.bold');
-require('../modules/es6.string.fixed');
-require('../modules/es6.string.fontcolor');
-require('../modules/es6.string.fontsize');
-require('../modules/es6.string.italics');
-require('../modules/es6.string.link');
-require('../modules/es6.string.small');
-require('../modules/es6.string.strike');
-require('../modules/es6.string.sub');
-require('../modules/es6.string.sup');
-require('../modules/es6.regexp.match');
-require('../modules/es6.regexp.replace');
-require('../modules/es6.regexp.search');
-require('../modules/es6.regexp.split');
-module.exports = require('../modules/_core').String; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/symbol.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/symbol.js
deleted file mode 100644
index e578e3af3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/symbol.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../modules/es6.symbol');
-require('../modules/es6.object.to-string');
-module.exports = require('../modules/_core').Symbol; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/typed.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/typed.js
deleted file mode 100644
index e0364e6c8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/typed.js
+++ /dev/null
@@ -1,13 +0,0 @@
-require('../modules/es6.typed.array-buffer');
-require('../modules/es6.typed.data-view');
-require('../modules/es6.typed.int8-array');
-require('../modules/es6.typed.uint8-array');
-require('../modules/es6.typed.uint8-clamped-array');
-require('../modules/es6.typed.int16-array');
-require('../modules/es6.typed.uint16-array');
-require('../modules/es6.typed.int32-array');
-require('../modules/es6.typed.uint32-array');
-require('../modules/es6.typed.float32-array');
-require('../modules/es6.typed.float64-array');
-require('../modules/es6.object.to-string');
-module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/weak-map.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/weak-map.js
deleted file mode 100644
index 655866c2d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/weak-map.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.array.iterator');
-require('../modules/es6.weak-map');
-module.exports = require('../modules/_core').WeakMap; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es6/weak-set.js b/node_modules/babel-runtime/node_modules/core-js/library/es6/weak-set.js
deleted file mode 100644
index eef1af2a8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es6/weak-set.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/web.dom.iterable');
-require('../modules/es6.weak-set');
-module.exports = require('../modules/_core').WeakSet; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es7/array.js b/node_modules/babel-runtime/node_modules/core-js/library/es7/array.js
deleted file mode 100644
index 9fb57fa64..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es7/array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es7.array.includes');
-module.exports = require('../modules/_core').Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es7/asap.js b/node_modules/babel-runtime/node_modules/core-js/library/es7/asap.js
deleted file mode 100644
index cc90f7e54..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es7/asap.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es7.asap');
-module.exports = require('../modules/_core').asap;
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es7/error.js b/node_modules/babel-runtime/node_modules/core-js/library/es7/error.js
deleted file mode 100644
index f0bb260b5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es7/error.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es7.error.is-error');
-module.exports = require('../modules/_core').Error; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es7/index.js b/node_modules/babel-runtime/node_modules/core-js/library/es7/index.js
deleted file mode 100644
index b8c90b86e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es7/index.js
+++ /dev/null
@@ -1,36 +0,0 @@
-require('../modules/es7.array.includes');
-require('../modules/es7.string.at');
-require('../modules/es7.string.pad-start');
-require('../modules/es7.string.pad-end');
-require('../modules/es7.string.trim-left');
-require('../modules/es7.string.trim-right');
-require('../modules/es7.string.match-all');
-require('../modules/es7.symbol.async-iterator');
-require('../modules/es7.symbol.observable');
-require('../modules/es7.object.get-own-property-descriptors');
-require('../modules/es7.object.values');
-require('../modules/es7.object.entries');
-require('../modules/es7.object.define-getter');
-require('../modules/es7.object.define-setter');
-require('../modules/es7.object.lookup-getter');
-require('../modules/es7.object.lookup-setter');
-require('../modules/es7.map.to-json');
-require('../modules/es7.set.to-json');
-require('../modules/es7.system.global');
-require('../modules/es7.error.is-error');
-require('../modules/es7.math.iaddh');
-require('../modules/es7.math.isubh');
-require('../modules/es7.math.imulh');
-require('../modules/es7.math.umulh');
-require('../modules/es7.reflect.define-metadata');
-require('../modules/es7.reflect.delete-metadata');
-require('../modules/es7.reflect.get-metadata');
-require('../modules/es7.reflect.get-metadata-keys');
-require('../modules/es7.reflect.get-own-metadata');
-require('../modules/es7.reflect.get-own-metadata-keys');
-require('../modules/es7.reflect.has-metadata');
-require('../modules/es7.reflect.has-own-metadata');
-require('../modules/es7.reflect.metadata');
-require('../modules/es7.asap');
-require('../modules/es7.observable');
-module.exports = require('../modules/_core');
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es7/map.js b/node_modules/babel-runtime/node_modules/core-js/library/es7/map.js
deleted file mode 100644
index dfa32fd26..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es7/map.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es7.map.to-json');
-module.exports = require('../modules/_core').Map; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es7/math.js b/node_modules/babel-runtime/node_modules/core-js/library/es7/math.js
deleted file mode 100644
index bdb8a81c3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es7/math.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../modules/es7.math.iaddh');
-require('../modules/es7.math.isubh');
-require('../modules/es7.math.imulh');
-require('../modules/es7.math.umulh');
-module.exports = require('../modules/_core').Math;
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es7/object.js b/node_modules/babel-runtime/node_modules/core-js/library/es7/object.js
deleted file mode 100644
index c76b754d4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es7/object.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../modules/es7.object.get-own-property-descriptors');
-require('../modules/es7.object.values');
-require('../modules/es7.object.entries');
-require('../modules/es7.object.define-getter');
-require('../modules/es7.object.define-setter');
-require('../modules/es7.object.lookup-getter');
-require('../modules/es7.object.lookup-setter');
-module.exports = require('../modules/_core').Object; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es7/observable.js b/node_modules/babel-runtime/node_modules/core-js/library/es7/observable.js
deleted file mode 100644
index 05ca51a37..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es7/observable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.string.iterator');
-require('../modules/web.dom.iterable');
-require('../modules/es6.promise');
-require('../modules/es7.symbol.observable');
-require('../modules/es7.observable');
-module.exports = require('../modules/_core').Observable; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es7/reflect.js b/node_modules/babel-runtime/node_modules/core-js/library/es7/reflect.js
deleted file mode 100644
index f0b69cbb2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es7/reflect.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../modules/es7.reflect.define-metadata');
-require('../modules/es7.reflect.delete-metadata');
-require('../modules/es7.reflect.get-metadata');
-require('../modules/es7.reflect.get-metadata-keys');
-require('../modules/es7.reflect.get-own-metadata');
-require('../modules/es7.reflect.get-own-metadata-keys');
-require('../modules/es7.reflect.has-metadata');
-require('../modules/es7.reflect.has-own-metadata');
-require('../modules/es7.reflect.metadata');
-module.exports = require('../modules/_core').Reflect;
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es7/set.js b/node_modules/babel-runtime/node_modules/core-js/library/es7/set.js
deleted file mode 100644
index b5c19c44f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es7/set.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es7.set.to-json');
-module.exports = require('../modules/_core').Set; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es7/string.js b/node_modules/babel-runtime/node_modules/core-js/library/es7/string.js
deleted file mode 100644
index 6e413b4c2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es7/string.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require('../modules/es7.string.at');
-require('../modules/es7.string.pad-start');
-require('../modules/es7.string.pad-end');
-require('../modules/es7.string.trim-left');
-require('../modules/es7.string.trim-right');
-require('../modules/es7.string.match-all');
-module.exports = require('../modules/_core').String;
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es7/symbol.js b/node_modules/babel-runtime/node_modules/core-js/library/es7/symbol.js
deleted file mode 100644
index 14d90eec7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es7/symbol.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../modules/es7.symbol.async-iterator');
-require('../modules/es7.symbol.observable');
-module.exports = require('../modules/_core').Symbol; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/es7/system.js b/node_modules/babel-runtime/node_modules/core-js/library/es7/system.js
deleted file mode 100644
index 6d321c780..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/es7/system.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es7.system.global');
-module.exports = require('../modules/_core').System; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/_.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/_.js
deleted file mode 100644
index 8a99f7062..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/_.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.function.part');
-module.exports = require('../modules/_core')._; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/concat.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/concat.js
deleted file mode 100644
index de4bddf96..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/concat.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// for a legacy code and future fixes
-module.exports = function(){
- return Function.call.apply(Array.prototype.concat, arguments);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/copy-within.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/copy-within.js
deleted file mode 100644
index 89e1de4ff..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/copy-within.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.copy-within');
-module.exports = require('../../modules/_core').Array.copyWithin; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/entries.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/entries.js
deleted file mode 100644
index f4feb26c2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/entries.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.iterator');
-module.exports = require('../../modules/_core').Array.entries; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/every.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/every.js
deleted file mode 100644
index 168844cc5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/every.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.every');
-module.exports = require('../../modules/_core').Array.every; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/fill.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/fill.js
deleted file mode 100644
index b23ebfdee..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/fill.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.fill');
-module.exports = require('../../modules/_core').Array.fill; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/filter.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/filter.js
deleted file mode 100644
index 0023f0de0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/filter.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.filter');
-module.exports = require('../../modules/_core').Array.filter; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/find-index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/find-index.js
deleted file mode 100644
index 99e6bf17b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/find-index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.find-index');
-module.exports = require('../../modules/_core').Array.findIndex; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/find.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/find.js
deleted file mode 100644
index f146ec224..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/find.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.find');
-module.exports = require('../../modules/_core').Array.find; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/for-each.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/for-each.js
deleted file mode 100644
index 09e235f95..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/for-each.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.for-each');
-module.exports = require('../../modules/_core').Array.forEach; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/from.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/from.js
deleted file mode 100644
index 1f323fbc3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/from.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/es6.string.iterator');
-require('../../modules/es6.array.from');
-module.exports = require('../../modules/_core').Array.from; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/includes.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/includes.js
deleted file mode 100644
index 851d31fd1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/includes.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.array.includes');
-module.exports = require('../../modules/_core').Array.includes; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/index-of.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/index-of.js
deleted file mode 100644
index 9ed824727..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/index-of.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.index-of');
-module.exports = require('../../modules/_core').Array.indexOf; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/index.js
deleted file mode 100644
index 85bc77bc8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/index.js
+++ /dev/null
@@ -1,24 +0,0 @@
-require('../../modules/es6.string.iterator');
-require('../../modules/es6.array.is-array');
-require('../../modules/es6.array.from');
-require('../../modules/es6.array.of');
-require('../../modules/es6.array.join');
-require('../../modules/es6.array.slice');
-require('../../modules/es6.array.sort');
-require('../../modules/es6.array.for-each');
-require('../../modules/es6.array.map');
-require('../../modules/es6.array.filter');
-require('../../modules/es6.array.some');
-require('../../modules/es6.array.every');
-require('../../modules/es6.array.reduce');
-require('../../modules/es6.array.reduce-right');
-require('../../modules/es6.array.index-of');
-require('../../modules/es6.array.last-index-of');
-require('../../modules/es6.array.copy-within');
-require('../../modules/es6.array.fill');
-require('../../modules/es6.array.find');
-require('../../modules/es6.array.find-index');
-require('../../modules/es6.array.species');
-require('../../modules/es6.array.iterator');
-require('../../modules/es7.array.includes');
-module.exports = require('../../modules/_core').Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/is-array.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/is-array.js
deleted file mode 100644
index bbe76719e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/is-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.is-array');
-module.exports = require('../../modules/_core').Array.isArray; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/iterator.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/iterator.js
deleted file mode 100644
index ca93b78ab..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/iterator.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.iterator');
-module.exports = require('../../modules/_core').Array.values; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/join.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/join.js
deleted file mode 100644
index 9beef18d0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/join.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.join');
-module.exports = require('../../modules/_core').Array.join; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/keys.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/keys.js
deleted file mode 100644
index b44b921f7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/keys.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.iterator');
-module.exports = require('../../modules/_core').Array.keys; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/last-index-of.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/last-index-of.js
deleted file mode 100644
index 6dcc98a10..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/last-index-of.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.last-index-of');
-module.exports = require('../../modules/_core').Array.lastIndexOf; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/map.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/map.js
deleted file mode 100644
index 14b0f6279..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/map.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.map');
-module.exports = require('../../modules/_core').Array.map; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/of.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/of.js
deleted file mode 100644
index 652ee9808..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/of.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.of');
-module.exports = require('../../modules/_core').Array.of; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/pop.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/pop.js
deleted file mode 100644
index b8414f616..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/pop.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// for a legacy code and future fixes
-module.exports = function(){
- return Function.call.apply(Array.prototype.pop, arguments);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/push.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/push.js
deleted file mode 100644
index 03539009e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/push.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// for a legacy code and future fixes
-module.exports = function(){
- return Function.call.apply(Array.prototype.push, arguments);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/reduce-right.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/reduce-right.js
deleted file mode 100644
index 1193ecbae..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/reduce-right.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.reduce-right');
-module.exports = require('../../modules/_core').Array.reduceRight; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/reduce.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/reduce.js
deleted file mode 100644
index e2dee913e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/reduce.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.reduce');
-module.exports = require('../../modules/_core').Array.reduce; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/reverse.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/reverse.js
deleted file mode 100644
index 607342934..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/reverse.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// for a legacy code and future fixes
-module.exports = function(){
- return Function.call.apply(Array.prototype.reverse, arguments);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/shift.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/shift.js
deleted file mode 100644
index 5002a6062..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/shift.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// for a legacy code and future fixes
-module.exports = function(){
- return Function.call.apply(Array.prototype.shift, arguments);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/slice.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/slice.js
deleted file mode 100644
index 4914c2a98..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/slice.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.slice');
-module.exports = require('../../modules/_core').Array.slice; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/some.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/some.js
deleted file mode 100644
index de284006e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/some.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.some');
-module.exports = require('../../modules/_core').Array.some; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/sort.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/sort.js
deleted file mode 100644
index 29b6f3ae7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/sort.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.sort');
-module.exports = require('../../modules/_core').Array.sort; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/splice.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/splice.js
deleted file mode 100644
index 9d0bdbed4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/splice.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// for a legacy code and future fixes
-module.exports = function(){
- return Function.call.apply(Array.prototype.splice, arguments);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/unshift.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/unshift.js
deleted file mode 100644
index 63fe2dd86..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/unshift.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// for a legacy code and future fixes
-module.exports = function(){
- return Function.call.apply(Array.prototype.unshift, arguments);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/values.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/values.js
deleted file mode 100644
index ca93b78ab..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/values.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.array.iterator');
-module.exports = require('../../modules/_core').Array.values; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/copy-within.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/copy-within.js
deleted file mode 100644
index 62172a9e3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/copy-within.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.copy-within');
-module.exports = require('../../../modules/_entry-virtual')('Array').copyWithin; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/entries.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/entries.js
deleted file mode 100644
index 1b198e3cc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/entries.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.iterator');
-module.exports = require('../../../modules/_entry-virtual')('Array').entries; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/every.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/every.js
deleted file mode 100644
index a72e58510..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/every.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.every');
-module.exports = require('../../../modules/_entry-virtual')('Array').every; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/fill.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/fill.js
deleted file mode 100644
index 6018b37bf..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/fill.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.fill');
-module.exports = require('../../../modules/_entry-virtual')('Array').fill; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/filter.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/filter.js
deleted file mode 100644
index 46a14f1c4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/filter.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.filter');
-module.exports = require('../../../modules/_entry-virtual')('Array').filter; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/find-index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/find-index.js
deleted file mode 100644
index ef96165fd..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/find-index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.find-index');
-module.exports = require('../../../modules/_entry-virtual')('Array').findIndex; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/find.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/find.js
deleted file mode 100644
index 6cffee5b5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/find.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.find');
-module.exports = require('../../../modules/_entry-virtual')('Array').find; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/for-each.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/for-each.js
deleted file mode 100644
index 0c3ed4492..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/for-each.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.for-each');
-module.exports = require('../../../modules/_entry-virtual')('Array').forEach; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/includes.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/includes.js
deleted file mode 100644
index bf9031d74..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/includes.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es7.array.includes');
-module.exports = require('../../../modules/_entry-virtual')('Array').includes; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/index-of.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/index-of.js
deleted file mode 100644
index cf6f36e3b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/index-of.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.index-of');
-module.exports = require('../../../modules/_entry-virtual')('Array').indexOf; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/index.js
deleted file mode 100644
index ff554a2a1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-require('../../../modules/es6.array.join');
-require('../../../modules/es6.array.slice');
-require('../../../modules/es6.array.sort');
-require('../../../modules/es6.array.for-each');
-require('../../../modules/es6.array.map');
-require('../../../modules/es6.array.filter');
-require('../../../modules/es6.array.some');
-require('../../../modules/es6.array.every');
-require('../../../modules/es6.array.reduce');
-require('../../../modules/es6.array.reduce-right');
-require('../../../modules/es6.array.index-of');
-require('../../../modules/es6.array.last-index-of');
-require('../../../modules/es6.string.iterator');
-require('../../../modules/es6.array.iterator');
-require('../../../modules/es6.array.copy-within');
-require('../../../modules/es6.array.fill');
-require('../../../modules/es6.array.find');
-require('../../../modules/es6.array.find-index');
-require('../../../modules/es7.array.includes');
-module.exports = require('../../../modules/_entry-virtual')('Array'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/iterator.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/iterator.js
deleted file mode 100644
index 7812b3c92..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/iterator.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/core.number.iterator');
-module.exports = require('../../../modules/_iterators').Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/join.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/join.js
deleted file mode 100644
index 3f7d5cff9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/join.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.join');
-module.exports = require('../../../modules/_entry-virtual')('Array').join; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/keys.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/keys.js
deleted file mode 100644
index 16c09681f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/keys.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.iterator');
-module.exports = require('../../../modules/_entry-virtual')('Array').keys; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/last-index-of.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/last-index-of.js
deleted file mode 100644
index cdd79b7d5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/last-index-of.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.last-index-of');
-module.exports = require('../../../modules/_entry-virtual')('Array').lastIndexOf; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/map.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/map.js
deleted file mode 100644
index 14bffdac0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/map.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.map');
-module.exports = require('../../../modules/_entry-virtual')('Array').map; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/reduce-right.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/reduce-right.js
deleted file mode 100644
index 61313e8f2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/reduce-right.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.reduce-right');
-module.exports = require('../../../modules/_entry-virtual')('Array').reduceRight; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/reduce.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/reduce.js
deleted file mode 100644
index 1b059053d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/reduce.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.reduce');
-module.exports = require('../../../modules/_entry-virtual')('Array').reduce; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/slice.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/slice.js
deleted file mode 100644
index b28d1abcc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/slice.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.slice');
-module.exports = require('../../../modules/_entry-virtual')('Array').slice; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/some.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/some.js
deleted file mode 100644
index 58c183c55..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/some.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.some');
-module.exports = require('../../../modules/_entry-virtual')('Array').some; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/sort.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/sort.js
deleted file mode 100644
index c8883150b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/sort.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.array.sort');
-module.exports = require('../../../modules/_entry-virtual')('Array').sort; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/values.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/values.js
deleted file mode 100644
index 7812b3c92..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/array/virtual/values.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/core.number.iterator');
-module.exports = require('../../../modules/_iterators').Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/asap.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/asap.js
deleted file mode 100644
index 9d9c80d13..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/asap.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es7.asap');
-module.exports = require('../modules/_core').asap; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/clear-immediate.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/clear-immediate.js
deleted file mode 100644
index 86916a06c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/clear-immediate.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/web.immediate');
-module.exports = require('../modules/_core').clearImmediate; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/date/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/date/index.js
deleted file mode 100644
index bd9ce0e2d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/date/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../../modules/es6.date.now');
-require('../../modules/es6.date.to-json');
-require('../../modules/es6.date.to-iso-string');
-require('../../modules/es6.date.to-string');
-require('../../modules/es6.date.to-primitive');
-module.exports = require('../../modules/_core').Date; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/date/now.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/date/now.js
deleted file mode 100644
index c70d37ae3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/date/now.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.date.now');
-module.exports = require('../../modules/_core').Date.now; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/date/to-iso-string.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/date/to-iso-string.js
deleted file mode 100644
index be4ac2187..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/date/to-iso-string.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/es6.date.to-json');
-require('../../modules/es6.date.to-iso-string');
-module.exports = require('../../modules/_core').Date.toISOString; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/date/to-json.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/date/to-json.js
deleted file mode 100644
index 9dc8cc902..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/date/to-json.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.date.to-json');
-module.exports = require('../../modules/_core').Date.toJSON; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/date/to-primitive.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/date/to-primitive.js
deleted file mode 100644
index 4d7471e26..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/date/to-primitive.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.date.to-primitive');
-var toPrimitive = require('../../modules/_date-to-primitive');
-module.exports = function(it, hint){
- return toPrimitive.call(it, hint);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/date/to-string.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/date/to-string.js
deleted file mode 100644
index c39d55227..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/date/to-string.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.date.to-string')
-var $toString = Date.prototype.toString;
-module.exports = function toString(it){
- return $toString.call(it);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/delay.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/delay.js
deleted file mode 100644
index 188573884..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/delay.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.delay');
-module.exports = require('../modules/_core').delay;
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/dict.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/dict.js
deleted file mode 100644
index da84a8d88..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/dict.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.dict');
-module.exports = require('../modules/_core').Dict; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/dom-collections/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/dom-collections/index.js
deleted file mode 100644
index 3928a09fc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/dom-collections/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../../modules/web.dom.iterable');
-var $iterators = require('../../modules/es6.array.iterator');
-module.exports = {
- keys: $iterators.keys,
- values: $iterators.values,
- entries: $iterators.entries,
- iterator: $iterators.values
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/dom-collections/iterator.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/dom-collections/iterator.js
deleted file mode 100644
index ad9836457..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/dom-collections/iterator.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/web.dom.iterable');
-module.exports = require('../../modules/_core').Array.values; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/error/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/error/index.js
deleted file mode 100644
index 59571ac21..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/error/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.error.is-error');
-module.exports = require('../../modules/_core').Error; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/error/is-error.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/error/is-error.js
deleted file mode 100644
index e15b7201b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/error/is-error.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.error.is-error');
-module.exports = require('../../modules/_core').Error.isError; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/function/bind.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/function/bind.js
deleted file mode 100644
index 38e179e6e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/function/bind.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.function.bind');
-module.exports = require('../../modules/_core').Function.bind; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/function/has-instance.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/function/has-instance.js
deleted file mode 100644
index 78397e5f7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/function/has-instance.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.function.has-instance');
-module.exports = Function[require('../../modules/_wks')('hasInstance')]; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/function/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/function/index.js
deleted file mode 100644
index 206324e89..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/function/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.function.bind');
-require('../../modules/es6.function.name');
-require('../../modules/es6.function.has-instance');
-require('../../modules/core.function.part');
-module.exports = require('../../modules/_core').Function;
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/function/name.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/function/name.js
deleted file mode 100644
index cb70bf155..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/function/name.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es6.function.name'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/function/part.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/function/part.js
deleted file mode 100644
index 926e2cc2a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/function/part.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/core.function.part');
-module.exports = require('../../modules/_core').Function.part; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/function/virtual/bind.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/function/virtual/bind.js
deleted file mode 100644
index 0a2f3338c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/function/virtual/bind.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.function.bind');
-module.exports = require('../../../modules/_entry-virtual')('Function').bind; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/function/virtual/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/function/virtual/index.js
deleted file mode 100644
index f64e22023..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/function/virtual/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../../modules/es6.function.bind');
-require('../../../modules/core.function.part');
-module.exports = require('../../../modules/_entry-virtual')('Function'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/function/virtual/part.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/function/virtual/part.js
deleted file mode 100644
index a382e577f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/function/virtual/part.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/core.function.part');
-module.exports = require('../../../modules/_entry-virtual')('Function').part; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/get-iterator-method.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/get-iterator-method.js
deleted file mode 100644
index 5543cbbf7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/get-iterator-method.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../modules/web.dom.iterable');
-require('../modules/es6.string.iterator');
-module.exports = require('../modules/core.get-iterator-method'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/get-iterator.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/get-iterator.js
deleted file mode 100644
index 762350ff5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/get-iterator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../modules/web.dom.iterable');
-require('../modules/es6.string.iterator');
-module.exports = require('../modules/core.get-iterator'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/is-iterable.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/is-iterable.js
deleted file mode 100644
index 4c654e87e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/is-iterable.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../modules/web.dom.iterable');
-require('../modules/es6.string.iterator');
-module.exports = require('../modules/core.is-iterable'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/json/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/json/index.js
deleted file mode 100644
index a6ec3de99..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/json/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var core = require('../../modules/_core');
-module.exports = core.JSON || (core.JSON = {stringify: JSON.stringify}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/json/stringify.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/json/stringify.js
deleted file mode 100644
index f0cac86af..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/json/stringify.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var core = require('../../modules/_core')
- , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
-module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
- return $JSON.stringify.apply($JSON, arguments);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/map.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/map.js
deleted file mode 100644
index 16784c600..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/map.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.string.iterator');
-require('../modules/web.dom.iterable');
-require('../modules/es6.map');
-require('../modules/es7.map.to-json');
-module.exports = require('../modules/_core').Map; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/acosh.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/acosh.js
deleted file mode 100644
index 9c904c2d6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/acosh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.acosh');
-module.exports = require('../../modules/_core').Math.acosh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/asinh.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/asinh.js
deleted file mode 100644
index 9e209c9d1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/asinh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.asinh');
-module.exports = require('../../modules/_core').Math.asinh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/atanh.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/atanh.js
deleted file mode 100644
index b116296d8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/atanh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.atanh');
-module.exports = require('../../modules/_core').Math.atanh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/cbrt.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/cbrt.js
deleted file mode 100644
index 6ffec33a2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/cbrt.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.cbrt');
-module.exports = require('../../modules/_core').Math.cbrt; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/clz32.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/clz32.js
deleted file mode 100644
index beeaae165..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/clz32.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.clz32');
-module.exports = require('../../modules/_core').Math.clz32; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/cosh.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/cosh.js
deleted file mode 100644
index bf92dc13d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/cosh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.cosh');
-module.exports = require('../../modules/_core').Math.cosh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/expm1.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/expm1.js
deleted file mode 100644
index 0b30ebb1b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/expm1.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.expm1');
-module.exports = require('../../modules/_core').Math.expm1; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/fround.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/fround.js
deleted file mode 100644
index c75a22937..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/fround.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.fround');
-module.exports = require('../../modules/_core').Math.fround; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/hypot.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/hypot.js
deleted file mode 100644
index 2126285c2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/hypot.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.hypot');
-module.exports = require('../../modules/_core').Math.hypot; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/iaddh.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/iaddh.js
deleted file mode 100644
index cae754ee1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/iaddh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.math.iaddh');
-module.exports = require('../../modules/_core').Math.iaddh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/imul.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/imul.js
deleted file mode 100644
index 1f5ce1610..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/imul.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.imul');
-module.exports = require('../../modules/_core').Math.imul; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/imulh.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/imulh.js
deleted file mode 100644
index 3b47bf8c2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/imulh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.math.imulh');
-module.exports = require('../../modules/_core').Math.imulh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/index.js
deleted file mode 100644
index 8a2664b18..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-require('../../modules/es6.math.acosh');
-require('../../modules/es6.math.asinh');
-require('../../modules/es6.math.atanh');
-require('../../modules/es6.math.cbrt');
-require('../../modules/es6.math.clz32');
-require('../../modules/es6.math.cosh');
-require('../../modules/es6.math.expm1');
-require('../../modules/es6.math.fround');
-require('../../modules/es6.math.hypot');
-require('../../modules/es6.math.imul');
-require('../../modules/es6.math.log10');
-require('../../modules/es6.math.log1p');
-require('../../modules/es6.math.log2');
-require('../../modules/es6.math.sign');
-require('../../modules/es6.math.sinh');
-require('../../modules/es6.math.tanh');
-require('../../modules/es6.math.trunc');
-require('../../modules/es7.math.iaddh');
-require('../../modules/es7.math.isubh');
-require('../../modules/es7.math.imulh');
-require('../../modules/es7.math.umulh');
-module.exports = require('../../modules/_core').Math; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/isubh.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/isubh.js
deleted file mode 100644
index e120e423f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/isubh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.math.isubh');
-module.exports = require('../../modules/_core').Math.isubh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/log10.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/log10.js
deleted file mode 100644
index 1246e0ae0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/log10.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.log10');
-module.exports = require('../../modules/_core').Math.log10; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/log1p.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/log1p.js
deleted file mode 100644
index 047b84c05..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/log1p.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.log1p');
-module.exports = require('../../modules/_core').Math.log1p; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/log2.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/log2.js
deleted file mode 100644
index ce3e99c1e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/log2.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.log2');
-module.exports = require('../../modules/_core').Math.log2; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/sign.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/sign.js
deleted file mode 100644
index 0963ecaf9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/sign.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.sign');
-module.exports = require('../../modules/_core').Math.sign; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/sinh.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/sinh.js
deleted file mode 100644
index c35cb7394..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/sinh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.sinh');
-module.exports = require('../../modules/_core').Math.sinh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/tanh.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/tanh.js
deleted file mode 100644
index 3d1966db3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/tanh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.tanh');
-module.exports = require('../../modules/_core').Math.tanh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/trunc.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/trunc.js
deleted file mode 100644
index 135b7dcb8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/trunc.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.math.trunc');
-module.exports = require('../../modules/_core').Math.trunc; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/umulh.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/math/umulh.js
deleted file mode 100644
index d93b9ae05..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/math/umulh.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.math.umulh');
-module.exports = require('../../modules/_core').Math.umulh; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/constructor.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/number/constructor.js
deleted file mode 100644
index f488331ec..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/constructor.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.constructor');
-module.exports = Number; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/epsilon.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/number/epsilon.js
deleted file mode 100644
index 56c935215..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/epsilon.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.epsilon');
-module.exports = Math.pow(2, -52); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/number/index.js
deleted file mode 100644
index 92890003d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-require('../../modules/es6.number.constructor');
-require('../../modules/es6.number.epsilon');
-require('../../modules/es6.number.is-finite');
-require('../../modules/es6.number.is-integer');
-require('../../modules/es6.number.is-nan');
-require('../../modules/es6.number.is-safe-integer');
-require('../../modules/es6.number.max-safe-integer');
-require('../../modules/es6.number.min-safe-integer');
-require('../../modules/es6.number.parse-float');
-require('../../modules/es6.number.parse-int');
-require('../../modules/es6.number.to-fixed');
-require('../../modules/es6.number.to-precision');
-require('../../modules/core.number.iterator');
-module.exports = require('../../modules/_core').Number; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/is-finite.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/number/is-finite.js
deleted file mode 100644
index 4ec3706b0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/is-finite.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.is-finite');
-module.exports = require('../../modules/_core').Number.isFinite; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/is-integer.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/number/is-integer.js
deleted file mode 100644
index a3013bff3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/is-integer.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.is-integer');
-module.exports = require('../../modules/_core').Number.isInteger; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/is-nan.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/number/is-nan.js
deleted file mode 100644
index f23b0266a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/is-nan.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.is-nan');
-module.exports = require('../../modules/_core').Number.isNaN; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/is-safe-integer.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/number/is-safe-integer.js
deleted file mode 100644
index f68732f52..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/is-safe-integer.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.is-safe-integer');
-module.exports = require('../../modules/_core').Number.isSafeInteger; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/iterator.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/number/iterator.js
deleted file mode 100644
index 26feaa1f0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/iterator.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/core.number.iterator');
-var get = require('../../modules/_iterators').Number;
-module.exports = function(it){
- return get.call(it);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/max-safe-integer.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/number/max-safe-integer.js
deleted file mode 100644
index c9b43b044..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/max-safe-integer.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.max-safe-integer');
-module.exports = 0x1fffffffffffff; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/min-safe-integer.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/number/min-safe-integer.js
deleted file mode 100644
index 8b5e07285..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/min-safe-integer.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.min-safe-integer');
-module.exports = -0x1fffffffffffff; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/parse-float.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/number/parse-float.js
deleted file mode 100644
index 62f89774f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/parse-float.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.parse-float');
-module.exports = parseFloat; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/parse-int.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/number/parse-int.js
deleted file mode 100644
index c197da5bd..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/parse-int.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.parse-int');
-module.exports = parseInt; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/to-fixed.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/number/to-fixed.js
deleted file mode 100644
index 3a041b0e8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/to-fixed.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.to-fixed');
-module.exports = require('../../modules/_core').Number.toFixed; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/to-precision.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/number/to-precision.js
deleted file mode 100644
index 9e85511ab..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/to-precision.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.number.to-precision');
-module.exports = require('../../modules/_core').Number.toPrecision; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/virtual/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/number/virtual/index.js
deleted file mode 100644
index 42360d32e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/virtual/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/core.number.iterator');
-var $Number = require('../../../modules/_entry-virtual')('Number');
-$Number.iterator = require('../../../modules/_iterators').Number;
-module.exports = $Number; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/virtual/iterator.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/number/virtual/iterator.js
deleted file mode 100644
index df034996a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/virtual/iterator.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/core.number.iterator');
-module.exports = require('../../../modules/_iterators').Number; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/virtual/to-fixed.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/number/virtual/to-fixed.js
deleted file mode 100644
index b779f15c0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/virtual/to-fixed.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.number.to-fixed');
-module.exports = require('../../../modules/_entry-virtual')('Number').toFixed; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/virtual/to-precision.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/number/virtual/to-precision.js
deleted file mode 100644
index 0c93fa4aa..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/number/virtual/to-precision.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.number.to-precision');
-module.exports = require('../../../modules/_entry-virtual')('Number').toPrecision; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js
deleted file mode 100644
index 97df6bf45..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.assign');
-module.exports = require('../../modules/_core').Object.assign; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/classof.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/classof.js
deleted file mode 100644
index 993d04808..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/classof.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/core.object.classof');
-module.exports = require('../../modules/_core').Object.classof; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js
deleted file mode 100644
index a05ca2fb0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.object.create');
-var $Object = require('../../modules/_core').Object;
-module.exports = function create(P, D){
- return $Object.create(P, D);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-getter.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-getter.js
deleted file mode 100644
index 5dd26070b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-getter.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.object.define-getter');
-module.exports = require('../../modules/_core').Object.__defineGetter__; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-properties.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-properties.js
deleted file mode 100644
index 04160fb3a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-properties.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.object.define-properties');
-var $Object = require('../../modules/_core').Object;
-module.exports = function defineProperties(T, D){
- return $Object.defineProperties(T, D);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js
deleted file mode 100644
index 078c56cbf..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.object.define-property');
-var $Object = require('../../modules/_core').Object;
-module.exports = function defineProperty(it, key, desc){
- return $Object.defineProperty(it, key, desc);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-setter.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-setter.js
deleted file mode 100644
index b59475f82..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-setter.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.object.define-setter');
-module.exports = require('../../modules/_core').Object.__defineSetter__; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/define.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/define.js
deleted file mode 100644
index 6ec19e904..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/define.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/core.object.define');
-module.exports = require('../../modules/_core').Object.define; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/entries.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/entries.js
deleted file mode 100644
index fca1000e8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/entries.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.object.entries');
-module.exports = require('../../modules/_core').Object.entries; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/freeze.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/freeze.js
deleted file mode 100644
index 04eac5302..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/freeze.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.freeze');
-module.exports = require('../../modules/_core').Object.freeze; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-own-property-descriptor.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-own-property-descriptor.js
deleted file mode 100644
index 7d3f03b8b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-own-property-descriptor.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.object.get-own-property-descriptor');
-var $Object = require('../../modules/_core').Object;
-module.exports = function getOwnPropertyDescriptor(it, key){
- return $Object.getOwnPropertyDescriptor(it, key);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-own-property-descriptors.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-own-property-descriptors.js
deleted file mode 100644
index dfeb547ce..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-own-property-descriptors.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.object.get-own-property-descriptors');
-module.exports = require('../../modules/_core').Object.getOwnPropertyDescriptors; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-own-property-names.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-own-property-names.js
deleted file mode 100644
index c91ce430f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-own-property-names.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.object.get-own-property-names');
-var $Object = require('../../modules/_core').Object;
-module.exports = function getOwnPropertyNames(it){
- return $Object.getOwnPropertyNames(it);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-own-property-symbols.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-own-property-symbols.js
deleted file mode 100644
index c3f528807..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-own-property-symbols.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.symbol');
-module.exports = require('../../modules/_core').Object.getOwnPropertySymbols; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-prototype-of.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-prototype-of.js
deleted file mode 100644
index bda934458..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-prototype-of.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.get-prototype-of');
-module.exports = require('../../modules/_core').Object.getPrototypeOf; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/index.js
deleted file mode 100644
index 4bd9825b4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/index.js
+++ /dev/null
@@ -1,30 +0,0 @@
-require('../../modules/es6.symbol');
-require('../../modules/es6.object.create');
-require('../../modules/es6.object.define-property');
-require('../../modules/es6.object.define-properties');
-require('../../modules/es6.object.get-own-property-descriptor');
-require('../../modules/es6.object.get-prototype-of');
-require('../../modules/es6.object.keys');
-require('../../modules/es6.object.get-own-property-names');
-require('../../modules/es6.object.freeze');
-require('../../modules/es6.object.seal');
-require('../../modules/es6.object.prevent-extensions');
-require('../../modules/es6.object.is-frozen');
-require('../../modules/es6.object.is-sealed');
-require('../../modules/es6.object.is-extensible');
-require('../../modules/es6.object.assign');
-require('../../modules/es6.object.is');
-require('../../modules/es6.object.set-prototype-of');
-require('../../modules/es6.object.to-string');
-require('../../modules/es7.object.get-own-property-descriptors');
-require('../../modules/es7.object.values');
-require('../../modules/es7.object.entries');
-require('../../modules/es7.object.define-getter');
-require('../../modules/es7.object.define-setter');
-require('../../modules/es7.object.lookup-getter');
-require('../../modules/es7.object.lookup-setter');
-require('../../modules/core.object.is-object');
-require('../../modules/core.object.classof');
-require('../../modules/core.object.define');
-require('../../modules/core.object.make');
-module.exports = require('../../modules/_core').Object; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/is-extensible.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/is-extensible.js
deleted file mode 100644
index 43fb0e78a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/is-extensible.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.is-extensible');
-module.exports = require('../../modules/_core').Object.isExtensible; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/is-frozen.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/is-frozen.js
deleted file mode 100644
index cbff22421..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/is-frozen.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.is-frozen');
-module.exports = require('../../modules/_core').Object.isFrozen; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/is-object.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/is-object.js
deleted file mode 100644
index 38feeff5c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/is-object.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/core.object.is-object');
-module.exports = require('../../modules/_core').Object.isObject; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/is-sealed.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/is-sealed.js
deleted file mode 100644
index 169a8ae73..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/is-sealed.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.is-sealed');
-module.exports = require('../../modules/_core').Object.isSealed; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/is.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/is.js
deleted file mode 100644
index 6ac9f19e1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/is.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.is');
-module.exports = require('../../modules/_core').Object.is; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/keys.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/keys.js
deleted file mode 100644
index 8eeb78eb8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/keys.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.keys');
-module.exports = require('../../modules/_core').Object.keys; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/lookup-getter.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/lookup-getter.js
deleted file mode 100644
index 3f7f674d0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/lookup-getter.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.object.lookup-setter');
-module.exports = require('../../modules/_core').Object.__lookupGetter__; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/lookup-setter.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/lookup-setter.js
deleted file mode 100644
index d18446fe9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/lookup-setter.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.object.lookup-setter');
-module.exports = require('../../modules/_core').Object.__lookupSetter__; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/make.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/make.js
deleted file mode 100644
index f4d19d128..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/make.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/core.object.make');
-module.exports = require('../../modules/_core').Object.make; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/prevent-extensions.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/prevent-extensions.js
deleted file mode 100644
index e43be05b1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/prevent-extensions.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.prevent-extensions');
-module.exports = require('../../modules/_core').Object.preventExtensions; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/seal.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/seal.js
deleted file mode 100644
index 8a56cd7f3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/seal.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.seal');
-module.exports = require('../../modules/_core').Object.seal; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js
deleted file mode 100644
index c25170dbc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.set-prototype-of');
-module.exports = require('../../modules/_core').Object.setPrototypeOf; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/values.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/object/values.js
deleted file mode 100644
index b50336cf1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/object/values.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.object.values');
-module.exports = require('../../modules/_core').Object.values; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/observable.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/observable.js
deleted file mode 100644
index 05ca51a37..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/observable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.string.iterator');
-require('../modules/web.dom.iterable');
-require('../modules/es6.promise');
-require('../modules/es7.symbol.observable');
-require('../modules/es7.observable');
-module.exports = require('../modules/_core').Observable; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/parse-float.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/parse-float.js
deleted file mode 100644
index dad94ddbe..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/parse-float.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es6.parse-float');
-module.exports = require('../modules/_core').parseFloat; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/parse-int.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/parse-int.js
deleted file mode 100644
index 08a20996b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/parse-int.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es6.parse-int');
-module.exports = require('../modules/_core').parseInt; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/promise.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/promise.js
deleted file mode 100644
index c901c8595..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/promise.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.string.iterator');
-require('../modules/web.dom.iterable');
-require('../modules/es6.promise');
-module.exports = require('../modules/_core').Promise; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/apply.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/apply.js
deleted file mode 100644
index 725b8a699..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/apply.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.apply');
-module.exports = require('../../modules/_core').Reflect.apply; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/construct.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/construct.js
deleted file mode 100644
index 587725dad..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/construct.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.construct');
-module.exports = require('../../modules/_core').Reflect.construct; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/define-metadata.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/define-metadata.js
deleted file mode 100644
index c9876ed3b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/define-metadata.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.reflect.define-metadata');
-module.exports = require('../../modules/_core').Reflect.defineMetadata; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/define-property.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/define-property.js
deleted file mode 100644
index c36b4d21d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/define-property.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.define-property');
-module.exports = require('../../modules/_core').Reflect.defineProperty; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/delete-metadata.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/delete-metadata.js
deleted file mode 100644
index 9bcc02997..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/delete-metadata.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.reflect.delete-metadata');
-module.exports = require('../../modules/_core').Reflect.deleteMetadata; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/delete-property.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/delete-property.js
deleted file mode 100644
index 10b6392f2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/delete-property.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.delete-property');
-module.exports = require('../../modules/_core').Reflect.deleteProperty; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/enumerate.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/enumerate.js
deleted file mode 100644
index 257a21eee..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/enumerate.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.enumerate');
-module.exports = require('../../modules/_core').Reflect.enumerate; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-metadata-keys.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-metadata-keys.js
deleted file mode 100644
index 9dbf5ee14..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-metadata-keys.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.reflect.get-metadata-keys');
-module.exports = require('../../modules/_core').Reflect.getMetadataKeys; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-metadata.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-metadata.js
deleted file mode 100644
index 3a20839eb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-metadata.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.reflect.get-metadata');
-module.exports = require('../../modules/_core').Reflect.getMetadata; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-own-metadata-keys.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-own-metadata-keys.js
deleted file mode 100644
index 2f8c5759b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-own-metadata-keys.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.reflect.get-own-metadata-keys');
-module.exports = require('../../modules/_core').Reflect.getOwnMetadataKeys; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-own-metadata.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-own-metadata.js
deleted file mode 100644
index 68e288dda..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-own-metadata.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.reflect.get-own-metadata');
-module.exports = require('../../modules/_core').Reflect.getOwnMetadata; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-own-property-descriptor.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-own-property-descriptor.js
deleted file mode 100644
index 9e2822fb5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-own-property-descriptor.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.get-own-property-descriptor');
-module.exports = require('../../modules/_core').Reflect.getOwnPropertyDescriptor; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-prototype-of.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-prototype-of.js
deleted file mode 100644
index 485035960..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get-prototype-of.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.get-prototype-of');
-module.exports = require('../../modules/_core').Reflect.getPrototypeOf; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get.js
deleted file mode 100644
index 9ca903e82..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/get.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.get');
-module.exports = require('../../modules/_core').Reflect.get; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/has-metadata.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/has-metadata.js
deleted file mode 100644
index f001f437a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/has-metadata.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.reflect.has-metadata');
-module.exports = require('../../modules/_core').Reflect.hasMetadata; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/has-own-metadata.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/has-own-metadata.js
deleted file mode 100644
index d90935f0b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/has-own-metadata.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.reflect.has-own-metadata');
-module.exports = require('../../modules/_core').Reflect.hasOwnMetadata; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/has.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/has.js
deleted file mode 100644
index 8e34933c8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/has.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.has');
-module.exports = require('../../modules/_core').Reflect.has; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/index.js
deleted file mode 100644
index a725cef2f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/index.js
+++ /dev/null
@@ -1,24 +0,0 @@
-require('../../modules/es6.reflect.apply');
-require('../../modules/es6.reflect.construct');
-require('../../modules/es6.reflect.define-property');
-require('../../modules/es6.reflect.delete-property');
-require('../../modules/es6.reflect.enumerate');
-require('../../modules/es6.reflect.get');
-require('../../modules/es6.reflect.get-own-property-descriptor');
-require('../../modules/es6.reflect.get-prototype-of');
-require('../../modules/es6.reflect.has');
-require('../../modules/es6.reflect.is-extensible');
-require('../../modules/es6.reflect.own-keys');
-require('../../modules/es6.reflect.prevent-extensions');
-require('../../modules/es6.reflect.set');
-require('../../modules/es6.reflect.set-prototype-of');
-require('../../modules/es7.reflect.define-metadata');
-require('../../modules/es7.reflect.delete-metadata');
-require('../../modules/es7.reflect.get-metadata');
-require('../../modules/es7.reflect.get-metadata-keys');
-require('../../modules/es7.reflect.get-own-metadata');
-require('../../modules/es7.reflect.get-own-metadata-keys');
-require('../../modules/es7.reflect.has-metadata');
-require('../../modules/es7.reflect.has-own-metadata');
-require('../../modules/es7.reflect.metadata');
-module.exports = require('../../modules/_core').Reflect; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/is-extensible.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/is-extensible.js
deleted file mode 100644
index de41d683a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/is-extensible.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.is-extensible');
-module.exports = require('../../modules/_core').Reflect.isExtensible; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/metadata.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/metadata.js
deleted file mode 100644
index 3f2b8ff62..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/metadata.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.reflect.metadata');
-module.exports = require('../../modules/_core').Reflect.metadata; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/own-keys.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/own-keys.js
deleted file mode 100644
index bfcebc740..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/own-keys.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.own-keys');
-module.exports = require('../../modules/_core').Reflect.ownKeys; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/prevent-extensions.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/prevent-extensions.js
deleted file mode 100644
index b346da3b0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/prevent-extensions.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.prevent-extensions');
-module.exports = require('../../modules/_core').Reflect.preventExtensions; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/set-prototype-of.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/set-prototype-of.js
deleted file mode 100644
index 16b74359c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/set-prototype-of.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.set-prototype-of');
-module.exports = require('../../modules/_core').Reflect.setPrototypeOf; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/set.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/set.js
deleted file mode 100644
index 834929ee3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/reflect/set.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.reflect.set');
-module.exports = require('../../modules/_core').Reflect.set; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/constructor.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/constructor.js
deleted file mode 100644
index 90c13513d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/constructor.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.regexp.constructor');
-module.exports = RegExp; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/escape.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/escape.js
deleted file mode 100644
index d657a7d91..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/escape.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/core.regexp.escape');
-module.exports = require('../../modules/_core').RegExp.escape; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/flags.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/flags.js
deleted file mode 100644
index ef84ddbd1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/flags.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.regexp.flags');
-var flags = require('../../modules/_flags');
-module.exports = function(it){
- return flags.call(it);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/index.js
deleted file mode 100644
index 61ced0b81..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require('../../modules/es6.regexp.constructor');
-require('../../modules/es6.regexp.to-string');
-require('../../modules/es6.regexp.flags');
-require('../../modules/es6.regexp.match');
-require('../../modules/es6.regexp.replace');
-require('../../modules/es6.regexp.search');
-require('../../modules/es6.regexp.split');
-require('../../modules/core.regexp.escape');
-module.exports = require('../../modules/_core').RegExp; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/match.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/match.js
deleted file mode 100644
index 400d0921e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/match.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.regexp.match');
-var MATCH = require('../../modules/_wks')('match');
-module.exports = function(it, str){
- return RegExp.prototype[MATCH].call(it, str);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/replace.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/replace.js
deleted file mode 100644
index adde0adf6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/replace.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.regexp.replace');
-var REPLACE = require('../../modules/_wks')('replace');
-module.exports = function(it, str, replacer){
- return RegExp.prototype[REPLACE].call(it, str, replacer);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/search.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/search.js
deleted file mode 100644
index 4e149d05a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/search.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.regexp.search');
-var SEARCH = require('../../modules/_wks')('search');
-module.exports = function(it, str){
- return RegExp.prototype[SEARCH].call(it, str);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/split.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/split.js
deleted file mode 100644
index b92d09fa6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/split.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.regexp.split');
-var SPLIT = require('../../modules/_wks')('split');
-module.exports = function(it, str, limit){
- return RegExp.prototype[SPLIT].call(it, str, limit);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/to-string.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/to-string.js
deleted file mode 100644
index 29d5d037a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/regexp/to-string.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-require('../../modules/es6.regexp.to-string');
-module.exports = function toString(it){
- return RegExp.prototype.toString.call(it);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/set-immediate.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/set-immediate.js
deleted file mode 100644
index 250831369..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/set-immediate.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/web.immediate');
-module.exports = require('../modules/_core').setImmediate; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/set-interval.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/set-interval.js
deleted file mode 100644
index 484447ffa..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/set-interval.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/web.timers');
-module.exports = require('../modules/_core').setInterval; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/set-timeout.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/set-timeout.js
deleted file mode 100644
index 8ebbb2e4f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/set-timeout.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/web.timers');
-module.exports = require('../modules/_core').setTimeout; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/set.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/set.js
deleted file mode 100644
index a8b496525..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/set.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.string.iterator');
-require('../modules/web.dom.iterable');
-require('../modules/es6.set');
-require('../modules/es7.set.to-json');
-module.exports = require('../modules/_core').Set; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/anchor.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/anchor.js
deleted file mode 100644
index ba4ef8135..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/anchor.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.anchor');
-module.exports = require('../../modules/_core').String.anchor; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/at.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/at.js
deleted file mode 100644
index ab6aec153..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/at.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.at');
-module.exports = require('../../modules/_core').String.at; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/big.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/big.js
deleted file mode 100644
index ab707907c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/big.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.big');
-module.exports = require('../../modules/_core').String.big; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/blink.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/blink.js
deleted file mode 100644
index c748079b9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/blink.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.blink');
-module.exports = require('../../modules/_core').String.blink; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/bold.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/bold.js
deleted file mode 100644
index 2d36bda3a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/bold.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.bold');
-module.exports = require('../../modules/_core').String.bold; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/code-point-at.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/code-point-at.js
deleted file mode 100644
index be141e82d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/code-point-at.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.code-point-at');
-module.exports = require('../../modules/_core').String.codePointAt; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/ends-with.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/ends-with.js
deleted file mode 100644
index 5e427753e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/ends-with.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.ends-with');
-module.exports = require('../../modules/_core').String.endsWith; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/escape-html.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/escape-html.js
deleted file mode 100644
index 49176ca65..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/escape-html.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/core.string.escape-html');
-module.exports = require('../../modules/_core').String.escapeHTML; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/fixed.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/fixed.js
deleted file mode 100644
index 77e233a3f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/fixed.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.fixed');
-module.exports = require('../../modules/_core').String.fixed; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/fontcolor.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/fontcolor.js
deleted file mode 100644
index 079235a19..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/fontcolor.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.fontcolor');
-module.exports = require('../../modules/_core').String.fontcolor; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/fontsize.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/fontsize.js
deleted file mode 100644
index 8cb2555c6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/fontsize.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.fontsize');
-module.exports = require('../../modules/_core').String.fontsize; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/from-code-point.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/from-code-point.js
deleted file mode 100644
index 93fc53aea..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/from-code-point.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.from-code-point');
-module.exports = require('../../modules/_core').String.fromCodePoint; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/includes.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/includes.js
deleted file mode 100644
index c9736404d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/includes.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.includes');
-module.exports = require('../../modules/_core').String.includes; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/index.js
deleted file mode 100644
index 6485a9b25..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-require('../../modules/es6.string.from-code-point');
-require('../../modules/es6.string.raw');
-require('../../modules/es6.string.trim');
-require('../../modules/es6.string.iterator');
-require('../../modules/es6.string.code-point-at');
-require('../../modules/es6.string.ends-with');
-require('../../modules/es6.string.includes');
-require('../../modules/es6.string.repeat');
-require('../../modules/es6.string.starts-with');
-require('../../modules/es6.regexp.match');
-require('../../modules/es6.regexp.replace');
-require('../../modules/es6.regexp.search');
-require('../../modules/es6.regexp.split');
-require('../../modules/es6.string.anchor');
-require('../../modules/es6.string.big');
-require('../../modules/es6.string.blink');
-require('../../modules/es6.string.bold');
-require('../../modules/es6.string.fixed');
-require('../../modules/es6.string.fontcolor');
-require('../../modules/es6.string.fontsize');
-require('../../modules/es6.string.italics');
-require('../../modules/es6.string.link');
-require('../../modules/es6.string.small');
-require('../../modules/es6.string.strike');
-require('../../modules/es6.string.sub');
-require('../../modules/es6.string.sup');
-require('../../modules/es7.string.at');
-require('../../modules/es7.string.pad-start');
-require('../../modules/es7.string.pad-end');
-require('../../modules/es7.string.trim-left');
-require('../../modules/es7.string.trim-right');
-require('../../modules/es7.string.match-all');
-require('../../modules/core.string.escape-html');
-require('../../modules/core.string.unescape-html');
-module.exports = require('../../modules/_core').String;
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/italics.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/italics.js
deleted file mode 100644
index 378450ebd..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/italics.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.italics');
-module.exports = require('../../modules/_core').String.italics; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/iterator.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/iterator.js
deleted file mode 100644
index 947e7558b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/iterator.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.string.iterator');
-var get = require('../../modules/_iterators').String;
-module.exports = function(it){
- return get.call(it);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/link.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/link.js
deleted file mode 100644
index 1eb2c6dd2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/link.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.link');
-module.exports = require('../../modules/_core').String.link; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/match-all.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/match-all.js
deleted file mode 100644
index 1a1dfeb6e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/match-all.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.match-all');
-module.exports = require('../../modules/_core').String.matchAll; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/pad-end.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/pad-end.js
deleted file mode 100644
index 23eb9f95a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/pad-end.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.pad-end');
-module.exports = require('../../modules/_core').String.padEnd;
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/pad-start.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/pad-start.js
deleted file mode 100644
index ff12739fc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/pad-start.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.pad-start');
-module.exports = require('../../modules/_core').String.padStart;
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/raw.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/raw.js
deleted file mode 100644
index 713550fb2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/raw.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.raw');
-module.exports = require('../../modules/_core').String.raw; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/repeat.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/repeat.js
deleted file mode 100644
index fa75b13ec..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/repeat.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.repeat');
-module.exports = require('../../modules/_core').String.repeat; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/small.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/small.js
deleted file mode 100644
index 0438290db..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/small.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.small');
-module.exports = require('../../modules/_core').String.small; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/starts-with.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/starts-with.js
deleted file mode 100644
index d62512a3c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/starts-with.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.starts-with');
-module.exports = require('../../modules/_core').String.startsWith; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/strike.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/strike.js
deleted file mode 100644
index b79946c8e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/strike.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.strike');
-module.exports = require('../../modules/_core').String.strike; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/sub.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/sub.js
deleted file mode 100644
index 54d0671e3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/sub.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.sub');
-module.exports = require('../../modules/_core').String.sub; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/sup.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/sup.js
deleted file mode 100644
index 645e0372f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/sup.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.sup');
-module.exports = require('../../modules/_core').String.sup; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim-end.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim-end.js
deleted file mode 100644
index f3bdf6fb1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim-end.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.trim-right');
-module.exports = require('../../modules/_core').String.trimRight; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim-left.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim-left.js
deleted file mode 100644
index 04671d369..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim-left.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.trim-left');
-module.exports = require('../../modules/_core').String.trimLeft; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim-right.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim-right.js
deleted file mode 100644
index f3bdf6fb1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim-right.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.trim-right');
-module.exports = require('../../modules/_core').String.trimRight; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim-start.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim-start.js
deleted file mode 100644
index 04671d369..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim-start.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.trim-left');
-module.exports = require('../../modules/_core').String.trimLeft; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim.js
deleted file mode 100644
index c536e12eb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/trim.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.string.trim');
-module.exports = require('../../modules/_core').String.trim; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/unescape-html.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/unescape-html.js
deleted file mode 100644
index 7c2c55c8c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/unescape-html.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/core.string.unescape-html');
-module.exports = require('../../modules/_core').String.unescapeHTML; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/anchor.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/anchor.js
deleted file mode 100644
index 6f74b7e88..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/anchor.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.anchor');
-module.exports = require('../../../modules/_entry-virtual')('String').anchor; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/at.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/at.js
deleted file mode 100644
index 3b9614386..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/at.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es7.string.at');
-module.exports = require('../../../modules/_entry-virtual')('String').at; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/big.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/big.js
deleted file mode 100644
index 57ac7d5de..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/big.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.big');
-module.exports = require('../../../modules/_entry-virtual')('String').big; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/blink.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/blink.js
deleted file mode 100644
index 5c4cea80f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/blink.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.blink');
-module.exports = require('../../../modules/_entry-virtual')('String').blink; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/bold.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/bold.js
deleted file mode 100644
index c566bf2d9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/bold.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.bold');
-module.exports = require('../../../modules/_entry-virtual')('String').bold; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/code-point-at.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/code-point-at.js
deleted file mode 100644
index 873752191..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/code-point-at.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.code-point-at');
-module.exports = require('../../../modules/_entry-virtual')('String').codePointAt; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/ends-with.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/ends-with.js
deleted file mode 100644
index 90bc6e79e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/ends-with.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.ends-with');
-module.exports = require('../../../modules/_entry-virtual')('String').endsWith; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/escape-html.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/escape-html.js
deleted file mode 100644
index 3342bcec9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/escape-html.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/core.string.escape-html');
-module.exports = require('../../../modules/_entry-virtual')('String').escapeHTML; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/fixed.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/fixed.js
deleted file mode 100644
index e830654f2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/fixed.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.fixed');
-module.exports = require('../../../modules/_entry-virtual')('String').fixed; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/fontcolor.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/fontcolor.js
deleted file mode 100644
index cfb9b2c09..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/fontcolor.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.fontcolor');
-module.exports = require('../../../modules/_entry-virtual')('String').fontcolor; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/fontsize.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/fontsize.js
deleted file mode 100644
index de8f5161a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/fontsize.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.fontsize');
-module.exports = require('../../../modules/_entry-virtual')('String').fontsize; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/includes.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/includes.js
deleted file mode 100644
index 1e4793d67..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/includes.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.includes');
-module.exports = require('../../../modules/_entry-virtual')('String').includes; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/index.js
deleted file mode 100644
index 0e65d20c4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-require('../../../modules/es6.string.trim');
-require('../../../modules/es6.string.iterator');
-require('../../../modules/es6.string.code-point-at');
-require('../../../modules/es6.string.ends-with');
-require('../../../modules/es6.string.includes');
-require('../../../modules/es6.string.repeat');
-require('../../../modules/es6.string.starts-with');
-require('../../../modules/es6.regexp.match');
-require('../../../modules/es6.regexp.replace');
-require('../../../modules/es6.regexp.search');
-require('../../../modules/es6.regexp.split');
-require('../../../modules/es6.string.anchor');
-require('../../../modules/es6.string.big');
-require('../../../modules/es6.string.blink');
-require('../../../modules/es6.string.bold');
-require('../../../modules/es6.string.fixed');
-require('../../../modules/es6.string.fontcolor');
-require('../../../modules/es6.string.fontsize');
-require('../../../modules/es6.string.italics');
-require('../../../modules/es6.string.link');
-require('../../../modules/es6.string.small');
-require('../../../modules/es6.string.strike');
-require('../../../modules/es6.string.sub');
-require('../../../modules/es6.string.sup');
-require('../../../modules/es7.string.at');
-require('../../../modules/es7.string.pad-start');
-require('../../../modules/es7.string.pad-end');
-require('../../../modules/es7.string.trim-left');
-require('../../../modules/es7.string.trim-right');
-require('../../../modules/es7.string.match-all');
-require('../../../modules/core.string.escape-html');
-require('../../../modules/core.string.unescape-html');
-module.exports = require('../../../modules/_entry-virtual')('String');
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/italics.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/italics.js
deleted file mode 100644
index f8f1d3381..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/italics.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.italics');
-module.exports = require('../../../modules/_entry-virtual')('String').italics; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/iterator.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/iterator.js
deleted file mode 100644
index 7efe2f93a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/iterator.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/core.number.iterator');
-module.exports = require('../../../modules/_iterators').String; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/link.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/link.js
deleted file mode 100644
index 4b2eea8a5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/link.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.link');
-module.exports = require('../../../modules/_entry-virtual')('String').link; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/match-all.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/match-all.js
deleted file mode 100644
index 9208873a7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/match-all.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es7.string.match-all');
-module.exports = require('../../../modules/_entry-virtual')('String').matchAll; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/pad-end.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/pad-end.js
deleted file mode 100644
index 81e5ac046..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/pad-end.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es7.string.pad-end');
-module.exports = require('../../../modules/_entry-virtual')('String').padEnd; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/pad-start.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/pad-start.js
deleted file mode 100644
index 54cf3a59b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/pad-start.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es7.string.pad-start');
-module.exports = require('../../../modules/_entry-virtual')('String').padStart; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/repeat.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/repeat.js
deleted file mode 100644
index d08cf6a5e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/repeat.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.repeat');
-module.exports = require('../../../modules/_entry-virtual')('String').repeat; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/small.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/small.js
deleted file mode 100644
index 201bf9b6a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/small.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.small');
-module.exports = require('../../../modules/_entry-virtual')('String').small; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/starts-with.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/starts-with.js
deleted file mode 100644
index f8897d153..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/starts-with.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.starts-with');
-module.exports = require('../../../modules/_entry-virtual')('String').startsWith; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/strike.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/strike.js
deleted file mode 100644
index 4572db915..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/strike.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.strike');
-module.exports = require('../../../modules/_entry-virtual')('String').strike; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/sub.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/sub.js
deleted file mode 100644
index a13611ecc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/sub.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.sub');
-module.exports = require('../../../modules/_entry-virtual')('String').sub; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/sup.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/sup.js
deleted file mode 100644
index 07695329c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/sup.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.sup');
-module.exports = require('../../../modules/_entry-virtual')('String').sup; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim-end.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim-end.js
deleted file mode 100644
index 14c25ac84..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim-end.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es7.string.trim-right');
-module.exports = require('../../../modules/_entry-virtual')('String').trimRight; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim-left.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim-left.js
deleted file mode 100644
index aabcfb3f3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim-left.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es7.string.trim-left');
-module.exports = require('../../../modules/_entry-virtual')('String').trimLeft; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim-right.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim-right.js
deleted file mode 100644
index 14c25ac84..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim-right.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es7.string.trim-right');
-module.exports = require('../../../modules/_entry-virtual')('String').trimRight; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim-start.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim-start.js
deleted file mode 100644
index aabcfb3f3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim-start.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es7.string.trim-left');
-module.exports = require('../../../modules/_entry-virtual')('String').trimLeft; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim.js
deleted file mode 100644
index 23fbcbc50..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/trim.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/es6.string.trim');
-module.exports = require('../../../modules/_entry-virtual')('String').trim; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/unescape-html.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/unescape-html.js
deleted file mode 100644
index 51eb59fc5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/string/virtual/unescape-html.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../../modules/core.string.unescape-html');
-module.exports = require('../../../modules/_entry-virtual')('String').unescapeHTML; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/async-iterator.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/async-iterator.js
deleted file mode 100644
index aca10f966..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/async-iterator.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.symbol.async-iterator');
-module.exports = require('../../modules/_wks-ext').f('asyncIterator'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/for.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/for.js
deleted file mode 100644
index c9e93c139..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/for.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.symbol');
-module.exports = require('../../modules/_core').Symbol['for']; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/has-instance.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/has-instance.js
deleted file mode 100644
index f3ec9cf6b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/has-instance.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.function.has-instance');
-module.exports = require('../../modules/_wks-ext').f('hasInstance'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js
deleted file mode 100644
index 64c0f5f47..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es6.symbol');
-require('../../modules/es6.object.to-string');
-require('../../modules/es7.symbol.async-iterator');
-require('../../modules/es7.symbol.observable');
-module.exports = require('../../modules/_core').Symbol; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/is-concat-spreadable.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/is-concat-spreadable.js
deleted file mode 100644
index 49ed7a1d2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/is-concat-spreadable.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('../../modules/_wks-ext').f('isConcatSpreadable'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js
deleted file mode 100644
index 503522809..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/es6.string.iterator');
-require('../../modules/web.dom.iterable');
-module.exports = require('../../modules/_wks-ext').f('iterator'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/key-for.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/key-for.js
deleted file mode 100644
index d9b595ff1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/key-for.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.symbol');
-module.exports = require('../../modules/_core').Symbol.keyFor; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/match.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/match.js
deleted file mode 100644
index d27db65b6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/match.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.regexp.match');
-module.exports = require('../../modules/_wks-ext').f('match'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/observable.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/observable.js
deleted file mode 100644
index 884cebfdf..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/observable.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.symbol.observable');
-module.exports = require('../../modules/_wks-ext').f('observable'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/replace.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/replace.js
deleted file mode 100644
index 3ef60f5e9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/replace.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.regexp.replace');
-module.exports = require('../../modules/_wks-ext').f('replace'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/search.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/search.js
deleted file mode 100644
index aee84f9e6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/search.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.regexp.search');
-module.exports = require('../../modules/_wks-ext').f('search'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/species.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/species.js
deleted file mode 100644
index a425eb2da..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/species.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('../../modules/_wks-ext').f('species'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/split.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/split.js
deleted file mode 100644
index 8535932fb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/split.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.regexp.split');
-module.exports = require('../../modules/_wks-ext').f('split'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/to-primitive.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/to-primitive.js
deleted file mode 100644
index 20c831b85..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/to-primitive.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('../../modules/_wks-ext').f('toPrimitive'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/to-string-tag.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/to-string-tag.js
deleted file mode 100644
index 101baf27c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/to-string-tag.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.object.to-string');
-module.exports = require('../../modules/_wks-ext').f('toStringTag'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/unscopables.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/unscopables.js
deleted file mode 100644
index 6c4146b23..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/unscopables.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('../../modules/_wks-ext').f('unscopables'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/system/global.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/system/global.js
deleted file mode 100644
index c3219d6f3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/system/global.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.system.global');
-module.exports = require('../../modules/_core').System.global; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/system/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/system/index.js
deleted file mode 100644
index eae78ddd6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/system/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.system.global');
-module.exports = require('../../modules/_core').System; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/array-buffer.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/array-buffer.js
deleted file mode 100644
index fe08f7f24..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/array-buffer.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/es6.typed.array-buffer');
-require('../../modules/es6.object.to-string');
-module.exports = require('../../modules/_core').ArrayBuffer; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/data-view.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/data-view.js
deleted file mode 100644
index 09dbb38aa..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/data-view.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/es6.typed.data-view');
-require('../../modules/es6.object.to-string');
-module.exports = require('../../modules/_core').DataView; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/float32-array.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/float32-array.js
deleted file mode 100644
index 1191fecb9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/float32-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.typed.float32-array');
-module.exports = require('../../modules/_core').Float32Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/float64-array.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/float64-array.js
deleted file mode 100644
index 6073a6824..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/float64-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.typed.float64-array');
-module.exports = require('../../modules/_core').Float64Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/index.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/index.js
deleted file mode 100644
index 7babe09d3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-require('../../modules/es6.typed.array-buffer');
-require('../../modules/es6.typed.data-view');
-require('../../modules/es6.typed.int8-array');
-require('../../modules/es6.typed.uint8-array');
-require('../../modules/es6.typed.uint8-clamped-array');
-require('../../modules/es6.typed.int16-array');
-require('../../modules/es6.typed.uint16-array');
-require('../../modules/es6.typed.int32-array');
-require('../../modules/es6.typed.uint32-array');
-require('../../modules/es6.typed.float32-array');
-require('../../modules/es6.typed.float64-array');
-require('../../modules/es6.object.to-string');
-module.exports = require('../../modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/int16-array.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/int16-array.js
deleted file mode 100644
index 0722549d3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/int16-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.typed.int16-array');
-module.exports = require('../../modules/_core').Int16Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/int32-array.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/int32-array.js
deleted file mode 100644
index 136136221..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/int32-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.typed.int32-array');
-module.exports = require('../../modules/_core').Int32Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/int8-array.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/int8-array.js
deleted file mode 100644
index edf48c792..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/int8-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.typed.int8-array');
-module.exports = require('../../modules/_core').Int8Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/uint16-array.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/uint16-array.js
deleted file mode 100644
index 3ff11550e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/uint16-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.typed.uint16-array');
-module.exports = require('../../modules/_core').Uint16Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/uint32-array.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/uint32-array.js
deleted file mode 100644
index 47bb4c211..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/uint32-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.typed.uint32-array');
-module.exports = require('../../modules/_core').Uint32Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/uint8-array.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/uint8-array.js
deleted file mode 100644
index fd8a4b114..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/uint8-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.typed.uint8-array');
-module.exports = require('../../modules/_core').Uint8Array; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/uint8-clamped-array.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/uint8-clamped-array.js
deleted file mode 100644
index c688657c5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/typed/uint8-clamped-array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es6.typed.uint8-clamped-array');
-module.exports = require('../../modules/_core').Uint8ClampedArray; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/weak-map.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/weak-map.js
deleted file mode 100644
index 00cac1adb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/weak-map.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/web.dom.iterable');
-require('../modules/es6.weak-map');
-module.exports = require('../modules/_core').WeakMap; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/fn/weak-set.js b/node_modules/babel-runtime/node_modules/core-js/library/fn/weak-set.js
deleted file mode 100644
index eef1af2a8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/fn/weak-set.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/web.dom.iterable');
-require('../modules/es6.weak-set');
-module.exports = require('../modules/_core').WeakSet; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/index.js b/node_modules/babel-runtime/node_modules/core-js/library/index.js
deleted file mode 100644
index 78b9e3d4b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/index.js
+++ /dev/null
@@ -1,16 +0,0 @@
-require('./shim');
-require('./modules/core.dict');
-require('./modules/core.get-iterator-method');
-require('./modules/core.get-iterator');
-require('./modules/core.is-iterable');
-require('./modules/core.delay');
-require('./modules/core.function.part');
-require('./modules/core.object.is-object');
-require('./modules/core.object.classof');
-require('./modules/core.object.define');
-require('./modules/core.object.make');
-require('./modules/core.number.iterator');
-require('./modules/core.regexp.escape');
-require('./modules/core.string.escape-html');
-require('./modules/core.string.unescape-html');
-module.exports = require('./modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js
deleted file mode 100644
index 8c35f4514..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js
+++ /dev/null
@@ -1,4 +0,0 @@
-module.exports = function(it){
- if(typeof it != 'function')throw TypeError(it + ' is not a function!');
- return it;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_a-number-value.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_a-number-value.js
deleted file mode 100644
index 7bcbd7b76..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_a-number-value.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var cof = require('./_cof');
-module.exports = function(it, msg){
- if(typeof it != 'number' && cof(it) != 'Number')throw TypeError(msg);
- return +it;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js
deleted file mode 100644
index faf87af36..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = function(){ /* empty */ }; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_an-instance.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_an-instance.js
deleted file mode 100644
index e4dfad3d0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_an-instance.js
+++ /dev/null
@@ -1,5 +0,0 @@
-module.exports = function(it, Constructor, name, forbiddenField){
- if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){
- throw TypeError(name + ': incorrect invocation!');
- } return it;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js
deleted file mode 100644
index 59a8a3a36..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var isObject = require('./_is-object');
-module.exports = function(it){
- if(!isObject(it))throw TypeError(it + ' is not an object!');
- return it;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-copy-within.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-copy-within.js
deleted file mode 100644
index d901a32f5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-copy-within.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
-'use strict';
-var toObject = require('./_to-object')
- , toIndex = require('./_to-index')
- , toLength = require('./_to-length');
-
-module.exports = [].copyWithin || function copyWithin(target/*= 0*/, start/*= 0, end = @length*/){
- var O = toObject(this)
- , len = toLength(O.length)
- , to = toIndex(target, len)
- , from = toIndex(start, len)
- , end = arguments.length > 2 ? arguments[2] : undefined
- , count = Math.min((end === undefined ? len : toIndex(end, len)) - from, len - to)
- , inc = 1;
- if(from < to && to < from + count){
- inc = -1;
- from += count - 1;
- to += count - 1;
- }
- while(count-- > 0){
- if(from in O)O[to] = O[from];
- else delete O[to];
- to += inc;
- from += inc;
- } return O;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-fill.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-fill.js
deleted file mode 100644
index b21bb7edd..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-fill.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
-'use strict';
-var toObject = require('./_to-object')
- , toIndex = require('./_to-index')
- , toLength = require('./_to-length');
-module.exports = function fill(value /*, start = 0, end = @length */){
- var O = toObject(this)
- , length = toLength(O.length)
- , aLen = arguments.length
- , index = toIndex(aLen > 1 ? arguments[1] : undefined, length)
- , end = aLen > 2 ? arguments[2] : undefined
- , endPos = end === undefined ? length : toIndex(end, length);
- while(endPos > index)O[index++] = value;
- return O;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-from-iterable.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-from-iterable.js
deleted file mode 100644
index b5c454fb0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-from-iterable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var forOf = require('./_for-of');
-
-module.exports = function(iter, ITERATOR){
- var result = [];
- forOf(iter, false, result.push, result, ITERATOR);
- return result;
-};
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js
deleted file mode 100644
index c70b064d1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// false -> Array#indexOf
-// true -> Array#includes
-var toIObject = require('./_to-iobject')
- , toLength = require('./_to-length')
- , toIndex = require('./_to-index');
-module.exports = function(IS_INCLUDES){
- return function($this, el, fromIndex){
- var O = toIObject($this)
- , length = toLength(O.length)
- , index = toIndex(fromIndex, length)
- , value;
- // Array#includes uses SameValueZero equality algorithm
- if(IS_INCLUDES && el != el)while(length > index){
- value = O[index++];
- if(value != value)return true;
- // Array#toIndex ignores holes, Array#includes - not
- } else for(;length > index; index++)if(IS_INCLUDES || index in O){
- if(O[index] === el)return IS_INCLUDES || index || 0;
- } return !IS_INCLUDES && -1;
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-methods.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-methods.js
deleted file mode 100644
index 8ffbe1164..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-methods.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// 0 -> Array#forEach
-// 1 -> Array#map
-// 2 -> Array#filter
-// 3 -> Array#some
-// 4 -> Array#every
-// 5 -> Array#find
-// 6 -> Array#findIndex
-var ctx = require('./_ctx')
- , IObject = require('./_iobject')
- , toObject = require('./_to-object')
- , toLength = require('./_to-length')
- , asc = require('./_array-species-create');
-module.exports = function(TYPE, $create){
- var IS_MAP = TYPE == 1
- , IS_FILTER = TYPE == 2
- , IS_SOME = TYPE == 3
- , IS_EVERY = TYPE == 4
- , IS_FIND_INDEX = TYPE == 6
- , NO_HOLES = TYPE == 5 || IS_FIND_INDEX
- , create = $create || asc;
- return function($this, callbackfn, that){
- var O = toObject($this)
- , self = IObject(O)
- , f = ctx(callbackfn, that, 3)
- , length = toLength(self.length)
- , index = 0
- , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined
- , val, res;
- for(;length > index; index++)if(NO_HOLES || index in self){
- val = self[index];
- res = f(val, index, O);
- if(TYPE){
- if(IS_MAP)result[index] = res; // map
- else if(res)switch(TYPE){
- case 3: return true; // some
- case 5: return val; // find
- case 6: return index; // findIndex
- case 2: result.push(val); // filter
- } else if(IS_EVERY)return false; // every
- }
- }
- return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-reduce.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-reduce.js
deleted file mode 100644
index c807d5443..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-reduce.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var aFunction = require('./_a-function')
- , toObject = require('./_to-object')
- , IObject = require('./_iobject')
- , toLength = require('./_to-length');
-
-module.exports = function(that, callbackfn, aLen, memo, isRight){
- aFunction(callbackfn);
- var O = toObject(that)
- , self = IObject(O)
- , length = toLength(O.length)
- , index = isRight ? length - 1 : 0
- , i = isRight ? -1 : 1;
- if(aLen < 2)for(;;){
- if(index in self){
- memo = self[index];
- index += i;
- break;
- }
- index += i;
- if(isRight ? index < 0 : length <= index){
- throw TypeError('Reduce of empty array with no initial value');
- }
- }
- for(;isRight ? index >= 0 : length > index; index += i)if(index in self){
- memo = callbackfn(memo, self[index], index, O);
- }
- return memo;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-species-constructor.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-species-constructor.js
deleted file mode 100644
index a715389fd..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-species-constructor.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var isObject = require('./_is-object')
- , isArray = require('./_is-array')
- , SPECIES = require('./_wks')('species');
-
-module.exports = function(original){
- var C;
- if(isArray(original)){
- C = original.constructor;
- // cross-realm fallback
- if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;
- if(isObject(C)){
- C = C[SPECIES];
- if(C === null)C = undefined;
- }
- } return C === undefined ? Array : C;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-species-create.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-species-create.js
deleted file mode 100644
index cbd18bc6c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-species-create.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
-var speciesConstructor = require('./_array-species-constructor');
-
-module.exports = function(original, length){
- return new (speciesConstructor(original))(length);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_bind.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_bind.js
deleted file mode 100644
index 1f7b0174b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_bind.js
+++ /dev/null
@@ -1,24 +0,0 @@
-'use strict';
-var aFunction = require('./_a-function')
- , isObject = require('./_is-object')
- , invoke = require('./_invoke')
- , arraySlice = [].slice
- , factories = {};
-
-var construct = function(F, len, args){
- if(!(len in factories)){
- for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';
- factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
- } return factories[len](F, args);
-};
-
-module.exports = Function.bind || function bind(that /*, args... */){
- var fn = aFunction(this)
- , partArgs = arraySlice.call(arguments, 1);
- var bound = function(/* args... */){
- var args = partArgs.concat(arraySlice.call(arguments));
- return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
- };
- if(isObject(fn.prototype))bound.prototype = fn.prototype;
- return bound;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_classof.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_classof.js
deleted file mode 100644
index dab3a80f1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_classof.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// getting tag from 19.1.3.6 Object.prototype.toString()
-var cof = require('./_cof')
- , TAG = require('./_wks')('toStringTag')
- // ES3 wrong here
- , ARG = cof(function(){ return arguments; }()) == 'Arguments';
-
-// fallback for IE11 Script Access Denied error
-var tryGet = function(it, key){
- try {
- return it[key];
- } catch(e){ /* empty */ }
-};
-
-module.exports = function(it){
- var O, T, B;
- return it === undefined ? 'Undefined' : it === null ? 'Null'
- // @@toStringTag case
- : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
- // builtinTag case
- : ARG ? cof(O)
- // ES3 arguments fallback
- : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js
deleted file mode 100644
index 1dd2779a7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var toString = {}.toString;
-
-module.exports = function(it){
- return toString.call(it).slice(8, -1);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_collection-strong.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_collection-strong.js
deleted file mode 100644
index 55e4b6158..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_collection-strong.js
+++ /dev/null
@@ -1,142 +0,0 @@
-'use strict';
-var dP = require('./_object-dp').f
- , create = require('./_object-create')
- , redefineAll = require('./_redefine-all')
- , ctx = require('./_ctx')
- , anInstance = require('./_an-instance')
- , defined = require('./_defined')
- , forOf = require('./_for-of')
- , $iterDefine = require('./_iter-define')
- , step = require('./_iter-step')
- , setSpecies = require('./_set-species')
- , DESCRIPTORS = require('./_descriptors')
- , fastKey = require('./_meta').fastKey
- , SIZE = DESCRIPTORS ? '_s' : 'size';
-
-var getEntry = function(that, key){
- // fast case
- var index = fastKey(key), entry;
- if(index !== 'F')return that._i[index];
- // frozen object case
- for(entry = that._f; entry; entry = entry.n){
- if(entry.k == key)return entry;
- }
-};
-
-module.exports = {
- getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
- var C = wrapper(function(that, iterable){
- anInstance(that, C, NAME, '_i');
- that._i = create(null); // index
- that._f = undefined; // first entry
- that._l = undefined; // last entry
- that[SIZE] = 0; // size
- if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
- });
- redefineAll(C.prototype, {
- // 23.1.3.1 Map.prototype.clear()
- // 23.2.3.2 Set.prototype.clear()
- clear: function clear(){
- for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){
- entry.r = true;
- if(entry.p)entry.p = entry.p.n = undefined;
- delete data[entry.i];
- }
- that._f = that._l = undefined;
- that[SIZE] = 0;
- },
- // 23.1.3.3 Map.prototype.delete(key)
- // 23.2.3.4 Set.prototype.delete(value)
- 'delete': function(key){
- var that = this
- , entry = getEntry(that, key);
- if(entry){
- var next = entry.n
- , prev = entry.p;
- delete that._i[entry.i];
- entry.r = true;
- if(prev)prev.n = next;
- if(next)next.p = prev;
- if(that._f == entry)that._f = next;
- if(that._l == entry)that._l = prev;
- that[SIZE]--;
- } return !!entry;
- },
- // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
- // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
- forEach: function forEach(callbackfn /*, that = undefined */){
- anInstance(this, C, 'forEach');
- var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)
- , entry;
- while(entry = entry ? entry.n : this._f){
- f(entry.v, entry.k, this);
- // revert to the last existing entry
- while(entry && entry.r)entry = entry.p;
- }
- },
- // 23.1.3.7 Map.prototype.has(key)
- // 23.2.3.7 Set.prototype.has(value)
- has: function has(key){
- return !!getEntry(this, key);
- }
- });
- if(DESCRIPTORS)dP(C.prototype, 'size', {
- get: function(){
- return defined(this[SIZE]);
- }
- });
- return C;
- },
- def: function(that, key, value){
- var entry = getEntry(that, key)
- , prev, index;
- // change existing entry
- if(entry){
- entry.v = value;
- // create new entry
- } else {
- that._l = entry = {
- i: index = fastKey(key, true), // <- index
- k: key, // <- key
- v: value, // <- value
- p: prev = that._l, // <- previous entry
- n: undefined, // <- next entry
- r: false // <- removed
- };
- if(!that._f)that._f = entry;
- if(prev)prev.n = entry;
- that[SIZE]++;
- // add to index
- if(index !== 'F')that._i[index] = entry;
- } return that;
- },
- getEntry: getEntry,
- setStrong: function(C, NAME, IS_MAP){
- // add .keys, .values, .entries, [@@iterator]
- // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
- $iterDefine(C, NAME, function(iterated, kind){
- this._t = iterated; // target
- this._k = kind; // kind
- this._l = undefined; // previous
- }, function(){
- var that = this
- , kind = that._k
- , entry = that._l;
- // revert to the last existing entry
- while(entry && entry.r)entry = entry.p;
- // get next entry
- if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){
- // or finish the iteration
- that._t = undefined;
- return step(1);
- }
- // return step by kind
- if(kind == 'keys' )return step(0, entry.k);
- if(kind == 'values')return step(0, entry.v);
- return step(0, [entry.k, entry.v]);
- }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);
-
- // add [@@species], 23.1.2.2, 23.2.2.2
- setSpecies(NAME);
- }
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_collection-to-json.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_collection-to-json.js
deleted file mode 100644
index ce0282f6b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_collection-to-json.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// https://github.com/DavidBruant/Map-Set.prototype.toJSON
-var classof = require('./_classof')
- , from = require('./_array-from-iterable');
-module.exports = function(NAME){
- return function toJSON(){
- if(classof(this) != NAME)throw TypeError(NAME + "#toJSON isn't generic");
- return from(this);
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_collection-weak.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_collection-weak.js
deleted file mode 100644
index a8597e64d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_collection-weak.js
+++ /dev/null
@@ -1,83 +0,0 @@
-'use strict';
-var redefineAll = require('./_redefine-all')
- , getWeak = require('./_meta').getWeak
- , anObject = require('./_an-object')
- , isObject = require('./_is-object')
- , anInstance = require('./_an-instance')
- , forOf = require('./_for-of')
- , createArrayMethod = require('./_array-methods')
- , $has = require('./_has')
- , arrayFind = createArrayMethod(5)
- , arrayFindIndex = createArrayMethod(6)
- , id = 0;
-
-// fallback for uncaught frozen keys
-var uncaughtFrozenStore = function(that){
- return that._l || (that._l = new UncaughtFrozenStore);
-};
-var UncaughtFrozenStore = function(){
- this.a = [];
-};
-var findUncaughtFrozen = function(store, key){
- return arrayFind(store.a, function(it){
- return it[0] === key;
- });
-};
-UncaughtFrozenStore.prototype = {
- get: function(key){
- var entry = findUncaughtFrozen(this, key);
- if(entry)return entry[1];
- },
- has: function(key){
- return !!findUncaughtFrozen(this, key);
- },
- set: function(key, value){
- var entry = findUncaughtFrozen(this, key);
- if(entry)entry[1] = value;
- else this.a.push([key, value]);
- },
- 'delete': function(key){
- var index = arrayFindIndex(this.a, function(it){
- return it[0] === key;
- });
- if(~index)this.a.splice(index, 1);
- return !!~index;
- }
-};
-
-module.exports = {
- getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
- var C = wrapper(function(that, iterable){
- anInstance(that, C, NAME, '_i');
- that._i = id++; // collection id
- that._l = undefined; // leak store for uncaught frozen objects
- if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
- });
- redefineAll(C.prototype, {
- // 23.3.3.2 WeakMap.prototype.delete(key)
- // 23.4.3.3 WeakSet.prototype.delete(value)
- 'delete': function(key){
- if(!isObject(key))return false;
- var data = getWeak(key);
- if(data === true)return uncaughtFrozenStore(this)['delete'](key);
- return data && $has(data, this._i) && delete data[this._i];
- },
- // 23.3.3.4 WeakMap.prototype.has(key)
- // 23.4.3.4 WeakSet.prototype.has(value)
- has: function has(key){
- if(!isObject(key))return false;
- var data = getWeak(key);
- if(data === true)return uncaughtFrozenStore(this).has(key);
- return data && $has(data, this._i);
- }
- });
- return C;
- },
- def: function(that, key, value){
- var data = getWeak(anObject(key), true);
- if(data === true)uncaughtFrozenStore(that).set(key, value);
- else data[that._i] = value;
- return that;
- },
- ufstore: uncaughtFrozenStore
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_collection.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_collection.js
deleted file mode 100644
index 0bdd7fcbb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_collection.js
+++ /dev/null
@@ -1,59 +0,0 @@
-'use strict';
-var global = require('./_global')
- , $export = require('./_export')
- , meta = require('./_meta')
- , fails = require('./_fails')
- , hide = require('./_hide')
- , redefineAll = require('./_redefine-all')
- , forOf = require('./_for-of')
- , anInstance = require('./_an-instance')
- , isObject = require('./_is-object')
- , setToStringTag = require('./_set-to-string-tag')
- , dP = require('./_object-dp').f
- , each = require('./_array-methods')(0)
- , DESCRIPTORS = require('./_descriptors');
-
-module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){
- var Base = global[NAME]
- , C = Base
- , ADDER = IS_MAP ? 'set' : 'add'
- , proto = C && C.prototype
- , O = {};
- if(!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){
- new C().entries().next();
- }))){
- // create collection constructor
- C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
- redefineAll(C.prototype, methods);
- meta.NEED = true;
- } else {
- C = wrapper(function(target, iterable){
- anInstance(target, C, NAME, '_c');
- target._c = new Base;
- if(iterable != undefined)forOf(iterable, IS_MAP, target[ADDER], target);
- });
- each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','),function(KEY){
- var IS_ADDER = KEY == 'add' || KEY == 'set';
- if(KEY in proto && !(IS_WEAK && KEY == 'clear'))hide(C.prototype, KEY, function(a, b){
- anInstance(this, C, KEY);
- if(!IS_ADDER && IS_WEAK && !isObject(a))return KEY == 'get' ? undefined : false;
- var result = this._c[KEY](a === 0 ? 0 : a, b);
- return IS_ADDER ? this : result;
- });
- });
- if('size' in proto)dP(C.prototype, 'size', {
- get: function(){
- return this._c.size;
- }
- });
- }
-
- setToStringTag(C, NAME);
-
- O[NAME] = C;
- $export($export.G + $export.W + $export.F, O);
-
- if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);
-
- return C;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js
deleted file mode 100644
index 23d6aedeb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var core = module.exports = {version: '2.4.0'};
-if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_create-property.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_create-property.js
deleted file mode 100644
index 3d1bf7305..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_create-property.js
+++ /dev/null
@@ -1,8 +0,0 @@
-'use strict';
-var $defineProperty = require('./_object-dp')
- , createDesc = require('./_property-desc');
-
-module.exports = function(object, index, value){
- if(index in object)$defineProperty.f(object, index, createDesc(0, value));
- else object[index] = value;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js
deleted file mode 100644
index b52d85ff3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// optional / simple context binding
-var aFunction = require('./_a-function');
-module.exports = function(fn, that, length){
- aFunction(fn);
- if(that === undefined)return fn;
- switch(length){
- case 1: return function(a){
- return fn.call(that, a);
- };
- case 2: return function(a, b){
- return fn.call(that, a, b);
- };
- case 3: return function(a, b, c){
- return fn.call(that, a, b, c);
- };
- }
- return function(/* ...args */){
- return fn.apply(that, arguments);
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_date-to-primitive.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_date-to-primitive.js
deleted file mode 100644
index 561079a1b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_date-to-primitive.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-var anObject = require('./_an-object')
- , toPrimitive = require('./_to-primitive')
- , NUMBER = 'number';
-
-module.exports = function(hint){
- if(hint !== 'string' && hint !== NUMBER && hint !== 'default')throw TypeError('Incorrect hint');
- return toPrimitive(anObject(this), hint != NUMBER);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js
deleted file mode 100644
index cfa476b96..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// 7.2.1 RequireObjectCoercible(argument)
-module.exports = function(it){
- if(it == undefined)throw TypeError("Can't call method on " + it);
- return it;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js
deleted file mode 100644
index 6ccb7ee24..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// Thank's IE8 for his funny defineProperty
-module.exports = !require('./_fails')(function(){
- return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js
deleted file mode 100644
index 909b5ff05..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var isObject = require('./_is-object')
- , document = require('./_global').document
- // in old IE typeof document.createElement is 'object'
- , is = isObject(document) && isObject(document.createElement);
-module.exports = function(it){
- return is ? document.createElement(it) : {};
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_entry-virtual.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_entry-virtual.js
deleted file mode 100644
index 0ec61272e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_entry-virtual.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var core = require('./_core');
-module.exports = function(CONSTRUCTOR){
- var C = core[CONSTRUCTOR];
- return (C.virtual || C.prototype);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js
deleted file mode 100644
index 928b9fb05..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// IE 8- don't enum bug keys
-module.exports = (
- 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
-).split(','); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js
deleted file mode 100644
index 3bf8069c1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// all enumerable object keys, includes symbols
-var getKeys = require('./_object-keys')
- , gOPS = require('./_object-gops')
- , pIE = require('./_object-pie');
-module.exports = function(it){
- var result = getKeys(it)
- , getSymbols = gOPS.f;
- if(getSymbols){
- var symbols = getSymbols(it)
- , isEnum = pIE.f
- , i = 0
- , key;
- while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);
- } return result;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js
deleted file mode 100644
index dc084b4cc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js
+++ /dev/null
@@ -1,61 +0,0 @@
-var global = require('./_global')
- , core = require('./_core')
- , ctx = require('./_ctx')
- , hide = require('./_hide')
- , PROTOTYPE = 'prototype';
-
-var $export = function(type, name, source){
- var IS_FORCED = type & $export.F
- , IS_GLOBAL = type & $export.G
- , IS_STATIC = type & $export.S
- , IS_PROTO = type & $export.P
- , IS_BIND = type & $export.B
- , IS_WRAP = type & $export.W
- , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
- , expProto = exports[PROTOTYPE]
- , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
- , key, own, out;
- if(IS_GLOBAL)source = name;
- for(key in source){
- // contains in native
- own = !IS_FORCED && target && target[key] !== undefined;
- if(own && key in exports)continue;
- // export native or passed
- out = own ? target[key] : source[key];
- // prevent global pollution for namespaces
- exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
- // bind timers to global for call from export context
- : IS_BIND && own ? ctx(out, global)
- // wrap global constructors for prevent change them in library
- : IS_WRAP && target[key] == out ? (function(C){
- var F = function(a, b, c){
- if(this instanceof C){
- switch(arguments.length){
- case 0: return new C;
- case 1: return new C(a);
- case 2: return new C(a, b);
- } return new C(a, b, c);
- } return C.apply(this, arguments);
- };
- F[PROTOTYPE] = C[PROTOTYPE];
- return F;
- // make static versions for prototype methods
- })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
- // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
- if(IS_PROTO){
- (exports.virtual || (exports.virtual = {}))[key] = out;
- // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
- if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
- }
- }
-};
-// type bitmap
-$export.F = 1; // forced
-$export.G = 2; // global
-$export.S = 4; // static
-$export.P = 8; // proto
-$export.B = 16; // bind
-$export.W = 32; // wrap
-$export.U = 64; // safe
-$export.R = 128; // real proto method for `library`
-module.exports = $export; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_fails-is-regexp.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_fails-is-regexp.js
deleted file mode 100644
index 130436bf9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_fails-is-regexp.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var MATCH = require('./_wks')('match');
-module.exports = function(KEY){
- var re = /./;
- try {
- '/./'[KEY](re);
- } catch(e){
- try {
- re[MATCH] = false;
- return !'/./'[KEY](re);
- } catch(f){ /* empty */ }
- } return true;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js
deleted file mode 100644
index 184e5ea84..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js
+++ /dev/null
@@ -1,7 +0,0 @@
-module.exports = function(exec){
- try {
- return !!exec();
- } catch(e){
- return true;
- }
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_fix-re-wks.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_fix-re-wks.js
deleted file mode 100644
index d29368ce8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_fix-re-wks.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-var hide = require('./_hide')
- , redefine = require('./_redefine')
- , fails = require('./_fails')
- , defined = require('./_defined')
- , wks = require('./_wks');
-
-module.exports = function(KEY, length, exec){
- var SYMBOL = wks(KEY)
- , fns = exec(defined, SYMBOL, ''[KEY])
- , strfn = fns[0]
- , rxfn = fns[1];
- if(fails(function(){
- var O = {};
- O[SYMBOL] = function(){ return 7; };
- return ''[KEY](O) != 7;
- })){
- redefine(String.prototype, KEY, strfn);
- hide(RegExp.prototype, SYMBOL, length == 2
- // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
- // 21.2.5.11 RegExp.prototype[@@split](string, limit)
- ? function(string, arg){ return rxfn.call(string, this, arg); }
- // 21.2.5.6 RegExp.prototype[@@match](string)
- // 21.2.5.9 RegExp.prototype[@@search](string)
- : function(string){ return rxfn.call(string, this); }
- );
- }
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_flags.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_flags.js
deleted file mode 100644
index 054f90886..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_flags.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-// 21.2.5.3 get RegExp.prototype.flags
-var anObject = require('./_an-object');
-module.exports = function(){
- var that = anObject(this)
- , result = '';
- if(that.global) result += 'g';
- if(that.ignoreCase) result += 'i';
- if(that.multiline) result += 'm';
- if(that.unicode) result += 'u';
- if(that.sticky) result += 'y';
- return result;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_for-of.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_for-of.js
deleted file mode 100644
index b4824fefa..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_for-of.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var ctx = require('./_ctx')
- , call = require('./_iter-call')
- , isArrayIter = require('./_is-array-iter')
- , anObject = require('./_an-object')
- , toLength = require('./_to-length')
- , getIterFn = require('./core.get-iterator-method')
- , BREAK = {}
- , RETURN = {};
-var exports = module.exports = function(iterable, entries, fn, that, ITERATOR){
- var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)
- , f = ctx(fn, that, entries ? 2 : 1)
- , index = 0
- , length, step, iterator, result;
- if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');
- // fast case for arrays with default iterator
- if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){
- result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
- if(result === BREAK || result === RETURN)return result;
- } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
- result = call(iterator, f, step.value, entries);
- if(result === BREAK || result === RETURN)return result;
- }
-};
-exports.BREAK = BREAK;
-exports.RETURN = RETURN; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js
deleted file mode 100644
index df6efb476..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-var global = module.exports = typeof window != 'undefined' && window.Math == Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
-if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js
deleted file mode 100644
index 870b40e71..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var hasOwnProperty = {}.hasOwnProperty;
-module.exports = function(it, key){
- return hasOwnProperty.call(it, key);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js
deleted file mode 100644
index 4031e8080..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var dP = require('./_object-dp')
- , createDesc = require('./_property-desc');
-module.exports = require('./_descriptors') ? function(object, key, value){
- return dP.f(object, key, createDesc(1, value));
-} : function(object, key, value){
- object[key] = value;
- return object;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js
deleted file mode 100644
index 98f5142c4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./_global').document && document.documentElement; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js
deleted file mode 100644
index 18ffd59da..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = !require('./_descriptors') && !require('./_fails')(function(){
- return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_inherit-if-required.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_inherit-if-required.js
deleted file mode 100644
index d3948405b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_inherit-if-required.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var isObject = require('./_is-object')
- , setPrototypeOf = require('./_set-proto').set;
-module.exports = function(that, target, C){
- var P, S = target.constructor;
- if(S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf){
- setPrototypeOf(that, P);
- } return that;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_invoke.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_invoke.js
deleted file mode 100644
index 08e307fd0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_invoke.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// fast apply, http://jsperf.lnkit.com/fast-apply/5
-module.exports = function(fn, args, that){
- var un = that === undefined;
- switch(args.length){
- case 0: return un ? fn()
- : fn.call(that);
- case 1: return un ? fn(args[0])
- : fn.call(that, args[0]);
- case 2: return un ? fn(args[0], args[1])
- : fn.call(that, args[0], args[1]);
- case 3: return un ? fn(args[0], args[1], args[2])
- : fn.call(that, args[0], args[1], args[2]);
- case 4: return un ? fn(args[0], args[1], args[2], args[3])
- : fn.call(that, args[0], args[1], args[2], args[3]);
- } return fn.apply(that, args);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js
deleted file mode 100644
index b58db4897..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// fallback for non-array-like ES3 and non-enumerable old V8 strings
-var cof = require('./_cof');
-module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
- return cof(it) == 'String' ? it.split('') : Object(it);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array-iter.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array-iter.js
deleted file mode 100644
index 8139d71c2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array-iter.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// check on default Array iterator
-var Iterators = require('./_iterators')
- , ITERATOR = require('./_wks')('iterator')
- , ArrayProto = Array.prototype;
-
-module.exports = function(it){
- return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js
deleted file mode 100644
index b4a3a8ed8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// 7.2.2 IsArray(argument)
-var cof = require('./_cof');
-module.exports = Array.isArray || function isArray(arg){
- return cof(arg) == 'Array';
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_is-integer.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_is-integer.js
deleted file mode 100644
index 22db67edb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_is-integer.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// 20.1.2.3 Number.isInteger(number)
-var isObject = require('./_is-object')
- , floor = Math.floor;
-module.exports = function isInteger(it){
- return !isObject(it) && isFinite(it) && floor(it) === it;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js
deleted file mode 100644
index ee694be2f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = function(it){
- return typeof it === 'object' ? it !== null : typeof it === 'function';
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_is-regexp.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_is-regexp.js
deleted file mode 100644
index 55b2c629c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_is-regexp.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 7.2.8 IsRegExp(argument)
-var isObject = require('./_is-object')
- , cof = require('./_cof')
- , MATCH = require('./_wks')('match');
-module.exports = function(it){
- var isRegExp;
- return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-call.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-call.js
deleted file mode 100644
index e3565ba9f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-call.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// call something on iterator step with safe closing on error
-var anObject = require('./_an-object');
-module.exports = function(iterator, fn, value, entries){
- try {
- return entries ? fn(anObject(value)[0], value[1]) : fn(value);
- // 7.4.6 IteratorClose(iterator, completion)
- } catch(e){
- var ret = iterator['return'];
- if(ret !== undefined)anObject(ret.call(iterator));
- throw e;
- }
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js
deleted file mode 100644
index 9a9aa4fbb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-var create = require('./_object-create')
- , descriptor = require('./_property-desc')
- , setToStringTag = require('./_set-to-string-tag')
- , IteratorPrototype = {};
-
-// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
-require('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });
-
-module.exports = function(Constructor, NAME, next){
- Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});
- setToStringTag(Constructor, NAME + ' Iterator');
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js
deleted file mode 100644
index f72a50214..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js
+++ /dev/null
@@ -1,70 +0,0 @@
-'use strict';
-var LIBRARY = require('./_library')
- , $export = require('./_export')
- , redefine = require('./_redefine')
- , hide = require('./_hide')
- , has = require('./_has')
- , Iterators = require('./_iterators')
- , $iterCreate = require('./_iter-create')
- , setToStringTag = require('./_set-to-string-tag')
- , getPrototypeOf = require('./_object-gpo')
- , ITERATOR = require('./_wks')('iterator')
- , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
- , FF_ITERATOR = '@@iterator'
- , KEYS = 'keys'
- , VALUES = 'values';
-
-var returnThis = function(){ return this; };
-
-module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){
- $iterCreate(Constructor, NAME, next);
- var getMethod = function(kind){
- if(!BUGGY && kind in proto)return proto[kind];
- switch(kind){
- case KEYS: return function keys(){ return new Constructor(this, kind); };
- case VALUES: return function values(){ return new Constructor(this, kind); };
- } return function entries(){ return new Constructor(this, kind); };
- };
- var TAG = NAME + ' Iterator'
- , DEF_VALUES = DEFAULT == VALUES
- , VALUES_BUG = false
- , proto = Base.prototype
- , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
- , $default = $native || getMethod(DEFAULT)
- , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined
- , $anyNative = NAME == 'Array' ? proto.entries || $native : $native
- , methods, key, IteratorPrototype;
- // Fix native
- if($anyNative){
- IteratorPrototype = getPrototypeOf($anyNative.call(new Base));
- if(IteratorPrototype !== Object.prototype){
- // Set @@toStringTag to native iterators
- setToStringTag(IteratorPrototype, TAG, true);
- // fix for some old engines
- if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
- }
- }
- // fix Array#{values, @@iterator}.name in V8 / FF
- if(DEF_VALUES && $native && $native.name !== VALUES){
- VALUES_BUG = true;
- $default = function values(){ return $native.call(this); };
- }
- // Define iterator
- if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
- hide(proto, ITERATOR, $default);
- }
- // Plug for library
- Iterators[NAME] = $default;
- Iterators[TAG] = returnThis;
- if(DEFAULT){
- methods = {
- values: DEF_VALUES ? $default : getMethod(VALUES),
- keys: IS_SET ? $default : getMethod(KEYS),
- entries: $entries
- };
- if(FORCED)for(key in methods){
- if(!(key in proto))redefine(proto, key, methods[key]);
- } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
- }
- return methods;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-detect.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-detect.js
deleted file mode 100644
index 87c7aecf4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-detect.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var ITERATOR = require('./_wks')('iterator')
- , SAFE_CLOSING = false;
-
-try {
- var riter = [7][ITERATOR]();
- riter['return'] = function(){ SAFE_CLOSING = true; };
- Array.from(riter, function(){ throw 2; });
-} catch(e){ /* empty */ }
-
-module.exports = function(exec, skipClosing){
- if(!skipClosing && !SAFE_CLOSING)return false;
- var safe = false;
- try {
- var arr = [7]
- , iter = arr[ITERATOR]();
- iter.next = function(){ return {done: safe = true}; };
- arr[ITERATOR] = function(){ return iter; };
- exec(arr);
- } catch(e){ /* empty */ }
- return safe;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js
deleted file mode 100644
index 6ff0dc518..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = function(done, value){
- return {value: value, done: !!done};
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js
deleted file mode 100644
index a09954537..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = {}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_keyof.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_keyof.js
deleted file mode 100644
index 7b63229b0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_keyof.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var getKeys = require('./_object-keys')
- , toIObject = require('./_to-iobject');
-module.exports = function(object, el){
- var O = toIObject(object)
- , keys = getKeys(O)
- , length = keys.length
- , index = 0
- , key;
- while(length > index)if(O[key = keys[index++]] === el)return key;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js
deleted file mode 100644
index 73f737c59..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = true; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_math-expm1.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_math-expm1.js
deleted file mode 100644
index 5131aa951..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_math-expm1.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// 20.2.2.14 Math.expm1(x)
-var $expm1 = Math.expm1;
-module.exports = (!$expm1
- // Old FF bug
- || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168
- // Tor Browser bug
- || $expm1(-2e-17) != -2e-17
-) ? function expm1(x){
- return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
-} : $expm1; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_math-log1p.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_math-log1p.js
deleted file mode 100644
index a92bf463a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_math-log1p.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.2.2.20 Math.log1p(x)
-module.exports = Math.log1p || function log1p(x){
- return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_math-sign.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_math-sign.js
deleted file mode 100644
index a4848df60..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_math-sign.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.2.2.28 Math.sign(x)
-module.exports = Math.sign || function sign(x){
- return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js
deleted file mode 100644
index 7daca0094..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js
+++ /dev/null
@@ -1,53 +0,0 @@
-var META = require('./_uid')('meta')
- , isObject = require('./_is-object')
- , has = require('./_has')
- , setDesc = require('./_object-dp').f
- , id = 0;
-var isExtensible = Object.isExtensible || function(){
- return true;
-};
-var FREEZE = !require('./_fails')(function(){
- return isExtensible(Object.preventExtensions({}));
-});
-var setMeta = function(it){
- setDesc(it, META, {value: {
- i: 'O' + ++id, // object ID
- w: {} // weak collections IDs
- }});
-};
-var fastKey = function(it, create){
- // return primitive with prefix
- if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
- if(!has(it, META)){
- // can't set metadata to uncaught frozen object
- if(!isExtensible(it))return 'F';
- // not necessary to add metadata
- if(!create)return 'E';
- // add missing metadata
- setMeta(it);
- // return object ID
- } return it[META].i;
-};
-var getWeak = function(it, create){
- if(!has(it, META)){
- // can't set metadata to uncaught frozen object
- if(!isExtensible(it))return true;
- // not necessary to add metadata
- if(!create)return false;
- // add missing metadata
- setMeta(it);
- // return hash weak collections IDs
- } return it[META].w;
-};
-// add metadata on freeze-family methods calling
-var onFreeze = function(it){
- if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);
- return it;
-};
-var meta = module.exports = {
- KEY: META,
- NEED: false,
- fastKey: fastKey,
- getWeak: getWeak,
- onFreeze: onFreeze
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_metadata.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_metadata.js
deleted file mode 100644
index eb5a762d4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_metadata.js
+++ /dev/null
@@ -1,51 +0,0 @@
-var Map = require('./es6.map')
- , $export = require('./_export')
- , shared = require('./_shared')('metadata')
- , store = shared.store || (shared.store = new (require('./es6.weak-map')));
-
-var getOrCreateMetadataMap = function(target, targetKey, create){
- var targetMetadata = store.get(target);
- if(!targetMetadata){
- if(!create)return undefined;
- store.set(target, targetMetadata = new Map);
- }
- var keyMetadata = targetMetadata.get(targetKey);
- if(!keyMetadata){
- if(!create)return undefined;
- targetMetadata.set(targetKey, keyMetadata = new Map);
- } return keyMetadata;
-};
-var ordinaryHasOwnMetadata = function(MetadataKey, O, P){
- var metadataMap = getOrCreateMetadataMap(O, P, false);
- return metadataMap === undefined ? false : metadataMap.has(MetadataKey);
-};
-var ordinaryGetOwnMetadata = function(MetadataKey, O, P){
- var metadataMap = getOrCreateMetadataMap(O, P, false);
- return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);
-};
-var ordinaryDefineOwnMetadata = function(MetadataKey, MetadataValue, O, P){
- getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);
-};
-var ordinaryOwnMetadataKeys = function(target, targetKey){
- var metadataMap = getOrCreateMetadataMap(target, targetKey, false)
- , keys = [];
- if(metadataMap)metadataMap.forEach(function(_, key){ keys.push(key); });
- return keys;
-};
-var toMetaKey = function(it){
- return it === undefined || typeof it == 'symbol' ? it : String(it);
-};
-var exp = function(O){
- $export($export.S, 'Reflect', O);
-};
-
-module.exports = {
- store: store,
- map: getOrCreateMetadataMap,
- has: ordinaryHasOwnMetadata,
- get: ordinaryGetOwnMetadata,
- set: ordinaryDefineOwnMetadata,
- keys: ordinaryOwnMetadataKeys,
- key: toMetaKey,
- exp: exp
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_microtask.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_microtask.js
deleted file mode 100644
index b0f2a0df0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_microtask.js
+++ /dev/null
@@ -1,68 +0,0 @@
-var global = require('./_global')
- , macrotask = require('./_task').set
- , Observer = global.MutationObserver || global.WebKitMutationObserver
- , process = global.process
- , Promise = global.Promise
- , isNode = require('./_cof')(process) == 'process';
-
-module.exports = function(){
- var head, last, notify;
-
- var flush = function(){
- var parent, fn;
- if(isNode && (parent = process.domain))parent.exit();
- while(head){
- fn = head.fn;
- head = head.next;
- try {
- fn();
- } catch(e){
- if(head)notify();
- else last = undefined;
- throw e;
- }
- } last = undefined;
- if(parent)parent.enter();
- };
-
- // Node.js
- if(isNode){
- notify = function(){
- process.nextTick(flush);
- };
- // browsers with MutationObserver
- } else if(Observer){
- var toggle = true
- , node = document.createTextNode('');
- new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new
- notify = function(){
- node.data = toggle = !toggle;
- };
- // environments with maybe non-completely correct, but existent Promise
- } else if(Promise && Promise.resolve){
- var promise = Promise.resolve();
- notify = function(){
- promise.then(flush);
- };
- // for other environments - macrotask based on:
- // - setImmediate
- // - MessageChannel
- // - window.postMessag
- // - onreadystatechange
- // - setTimeout
- } else {
- notify = function(){
- // strange IE + webpack dev server bug - use .call(global)
- macrotask.call(global, flush);
- };
- }
-
- return function(fn){
- var task = {fn: fn, next: undefined};
- if(last)last.next = task;
- if(!head){
- head = task;
- notify();
- } last = task;
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js
deleted file mode 100644
index c575aba21..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js
+++ /dev/null
@@ -1,33 +0,0 @@
-'use strict';
-// 19.1.2.1 Object.assign(target, source, ...)
-var getKeys = require('./_object-keys')
- , gOPS = require('./_object-gops')
- , pIE = require('./_object-pie')
- , toObject = require('./_to-object')
- , IObject = require('./_iobject')
- , $assign = Object.assign;
-
-// should work with symbols and should have deterministic property order (V8 bug)
-module.exports = !$assign || require('./_fails')(function(){
- var A = {}
- , B = {}
- , S = Symbol()
- , K = 'abcdefghijklmnopqrst';
- A[S] = 7;
- K.split('').forEach(function(k){ B[k] = k; });
- return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
-}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
- var T = toObject(target)
- , aLen = arguments.length
- , index = 1
- , getSymbols = gOPS.f
- , isEnum = pIE.f;
- while(aLen > index){
- var S = IObject(arguments[index++])
- , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
- , length = keys.length
- , j = 0
- , key;
- while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
- } return T;
-} : $assign; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js
deleted file mode 100644
index 3379760f9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
-var anObject = require('./_an-object')
- , dPs = require('./_object-dps')
- , enumBugKeys = require('./_enum-bug-keys')
- , IE_PROTO = require('./_shared-key')('IE_PROTO')
- , Empty = function(){ /* empty */ }
- , PROTOTYPE = 'prototype';
-
-// Create object with fake `null` prototype: use iframe Object with cleared prototype
-var createDict = function(){
- // Thrash, waste and sodomy: IE GC bug
- var iframe = require('./_dom-create')('iframe')
- , i = enumBugKeys.length
- , lt = '<'
- , gt = '>'
- , iframeDocument;
- iframe.style.display = 'none';
- require('./_html').appendChild(iframe);
- iframe.src = 'javascript:'; // eslint-disable-line no-script-url
- // createDict = iframe.contentWindow.Object;
- // html.removeChild(iframe);
- iframeDocument = iframe.contentWindow.document;
- iframeDocument.open();
- iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
- iframeDocument.close();
- createDict = iframeDocument.F;
- while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];
- return createDict();
-};
-
-module.exports = Object.create || function create(O, Properties){
- var result;
- if(O !== null){
- Empty[PROTOTYPE] = anObject(O);
- result = new Empty;
- Empty[PROTOTYPE] = null;
- // add "__proto__" for Object.getPrototypeOf polyfill
- result[IE_PROTO] = O;
- } else result = createDict();
- return Properties === undefined ? result : dPs(result, Properties);
-};
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-define.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-define.js
deleted file mode 100644
index f246c4e32..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-define.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var dP = require('./_object-dp')
- , gOPD = require('./_object-gopd')
- , ownKeys = require('./_own-keys')
- , toIObject = require('./_to-iobject');
-
-module.exports = function define(target, mixin){
- var keys = ownKeys(toIObject(mixin))
- , length = keys.length
- , i = 0, key;
- while(length > i)dP.f(target, key = keys[i++], gOPD.f(mixin, key));
- return target;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js
deleted file mode 100644
index e7ca8a463..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var anObject = require('./_an-object')
- , IE8_DOM_DEFINE = require('./_ie8-dom-define')
- , toPrimitive = require('./_to-primitive')
- , dP = Object.defineProperty;
-
-exports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){
- anObject(O);
- P = toPrimitive(P, true);
- anObject(Attributes);
- if(IE8_DOM_DEFINE)try {
- return dP(O, P, Attributes);
- } catch(e){ /* empty */ }
- if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
- if('value' in Attributes)O[P] = Attributes.value;
- return O;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js
deleted file mode 100644
index 8cd4147ac..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var dP = require('./_object-dp')
- , anObject = require('./_an-object')
- , getKeys = require('./_object-keys');
-
-module.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){
- anObject(O);
- var keys = getKeys(Properties)
- , length = keys.length
- , i = 0
- , P;
- while(length > i)dP.f(O, P = keys[i++], Properties[P]);
- return O;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-forced-pam.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-forced-pam.js
deleted file mode 100644
index 668a07dc2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-forced-pam.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// Forced replacement prototype accessors methods
-module.exports = require('./_library')|| !require('./_fails')(function(){
- var K = Math.random();
- // In FF throws only define methods
- __defineSetter__.call(null, K, function(){ /* empty */});
- delete require('./_global')[K];
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js
deleted file mode 100644
index 756206aba..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var pIE = require('./_object-pie')
- , createDesc = require('./_property-desc')
- , toIObject = require('./_to-iobject')
- , toPrimitive = require('./_to-primitive')
- , has = require('./_has')
- , IE8_DOM_DEFINE = require('./_ie8-dom-define')
- , gOPD = Object.getOwnPropertyDescriptor;
-
-exports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P){
- O = toIObject(O);
- P = toPrimitive(P, true);
- if(IE8_DOM_DEFINE)try {
- return gOPD(O, P);
- } catch(e){ /* empty */ }
- if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js
deleted file mode 100644
index f4d10b4a1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
-var toIObject = require('./_to-iobject')
- , gOPN = require('./_object-gopn').f
- , toString = {}.toString;
-
-var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
- ? Object.getOwnPropertyNames(window) : [];
-
-var getWindowNames = function(it){
- try {
- return gOPN(it);
- } catch(e){
- return windowNames.slice();
- }
-};
-
-module.exports.f = function getOwnPropertyNames(it){
- return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
-};
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js
deleted file mode 100644
index beebf4dac..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
-var $keys = require('./_object-keys-internal')
- , hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');
-
-exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){
- return $keys(O, hiddenKeys);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js
deleted file mode 100644
index 8f93d76b1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js
+++ /dev/null
@@ -1 +0,0 @@
-exports.f = Object.getOwnPropertySymbols; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js
deleted file mode 100644
index 535dc6e94..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
-var has = require('./_has')
- , toObject = require('./_to-object')
- , IE_PROTO = require('./_shared-key')('IE_PROTO')
- , ObjectProto = Object.prototype;
-
-module.exports = Object.getPrototypeOf || function(O){
- O = toObject(O);
- if(has(O, IE_PROTO))return O[IE_PROTO];
- if(typeof O.constructor == 'function' && O instanceof O.constructor){
- return O.constructor.prototype;
- } return O instanceof Object ? ObjectProto : null;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js
deleted file mode 100644
index e23481d7c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var has = require('./_has')
- , toIObject = require('./_to-iobject')
- , arrayIndexOf = require('./_array-includes')(false)
- , IE_PROTO = require('./_shared-key')('IE_PROTO');
-
-module.exports = function(object, names){
- var O = toIObject(object)
- , i = 0
- , result = []
- , key;
- for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
- // Don't enum bug & hidden keys
- while(names.length > i)if(has(O, key = names[i++])){
- ~arrayIndexOf(result, key) || result.push(key);
- }
- return result;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js
deleted file mode 100644
index 11d4cceed..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// 19.1.2.14 / 15.2.3.14 Object.keys(O)
-var $keys = require('./_object-keys-internal')
- , enumBugKeys = require('./_enum-bug-keys');
-
-module.exports = Object.keys || function keys(O){
- return $keys(O, enumBugKeys);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js
deleted file mode 100644
index 13479a171..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js
+++ /dev/null
@@ -1 +0,0 @@
-exports.f = {}.propertyIsEnumerable; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js
deleted file mode 100644
index b76fec5f4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// most Object methods by ES6 should accept primitives
-var $export = require('./_export')
- , core = require('./_core')
- , fails = require('./_fails');
-module.exports = function(KEY, exec){
- var fn = (core.Object || {})[KEY] || Object[KEY]
- , exp = {};
- exp[KEY] = exec(fn);
- $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-to-array.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-to-array.js
deleted file mode 100644
index b6fdf05d7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-to-array.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var getKeys = require('./_object-keys')
- , toIObject = require('./_to-iobject')
- , isEnum = require('./_object-pie').f;
-module.exports = function(isEntries){
- return function(it){
- var O = toIObject(it)
- , keys = getKeys(O)
- , length = keys.length
- , i = 0
- , result = []
- , key;
- while(length > i)if(isEnum.call(O, key = keys[i++])){
- result.push(isEntries ? [key, O[key]] : O[key]);
- } return result;
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_own-keys.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_own-keys.js
deleted file mode 100644
index 045ce3d58..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_own-keys.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// all object keys, includes non-enumerable and symbols
-var gOPN = require('./_object-gopn')
- , gOPS = require('./_object-gops')
- , anObject = require('./_an-object')
- , Reflect = require('./_global').Reflect;
-module.exports = Reflect && Reflect.ownKeys || function ownKeys(it){
- var keys = gOPN.f(anObject(it))
- , getSymbols = gOPS.f;
- return getSymbols ? keys.concat(getSymbols(it)) : keys;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_parse-float.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_parse-float.js
deleted file mode 100644
index 3d0e65312..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_parse-float.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $parseFloat = require('./_global').parseFloat
- , $trim = require('./_string-trim').trim;
-
-module.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str){
- var string = $trim(String(str), 3)
- , result = $parseFloat(string);
- return result === 0 && string.charAt(0) == '-' ? -0 : result;
-} : $parseFloat; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_parse-int.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_parse-int.js
deleted file mode 100644
index c23ffc09c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_parse-int.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var $parseInt = require('./_global').parseInt
- , $trim = require('./_string-trim').trim
- , ws = require('./_string-ws')
- , hex = /^[\-+]?0[xX]/;
-
-module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix){
- var string = $trim(String(str), 3);
- return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
-} : $parseInt; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_partial.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_partial.js
deleted file mode 100644
index 3d411b705..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_partial.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict';
-var path = require('./_path')
- , invoke = require('./_invoke')
- , aFunction = require('./_a-function');
-module.exports = function(/* ...pargs */){
- var fn = aFunction(this)
- , length = arguments.length
- , pargs = Array(length)
- , i = 0
- , _ = path._
- , holder = false;
- while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true;
- return function(/* ...args */){
- var that = this
- , aLen = arguments.length
- , j = 0, k = 0, args;
- if(!holder && !aLen)return invoke(fn, pargs, that);
- args = pargs.slice();
- if(holder)for(;length > j; j++)if(args[j] === _)args[j] = arguments[k++];
- while(aLen > k)args.push(arguments[k++]);
- return invoke(fn, args, that);
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_path.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_path.js
deleted file mode 100644
index e2b878dc6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_path.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js
deleted file mode 100644
index e3f7ab2dc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = function(bitmap, value){
- return {
- enumerable : !(bitmap & 1),
- configurable: !(bitmap & 2),
- writable : !(bitmap & 4),
- value : value
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine-all.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine-all.js
deleted file mode 100644
index beeb2eafc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine-all.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var hide = require('./_hide');
-module.exports = function(target, src, safe){
- for(var key in src){
- if(safe && target[key])target[key] = src[key];
- else hide(target, key, src[key]);
- } return target;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js
deleted file mode 100644
index 6bd64530c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./_hide'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_replacer.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_replacer.js
deleted file mode 100644
index 5360a3d35..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_replacer.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = function(regExp, replace){
- var replacer = replace === Object(replace) ? function(part){
- return replace[part];
- } : replace;
- return function(it){
- return String(it).replace(regExp, replacer);
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_same-value.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_same-value.js
deleted file mode 100644
index 8c2b8c7f6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_same-value.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 7.2.9 SameValue(x, y)
-module.exports = Object.is || function is(x, y){
- return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js
deleted file mode 100644
index 8d5dad3fd..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Works with __proto__ only. Old v8 can't work with null proto objects.
-/* eslint-disable no-proto */
-var isObject = require('./_is-object')
- , anObject = require('./_an-object');
-var check = function(O, proto){
- anObject(O);
- if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!");
-};
-module.exports = {
- set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
- function(test, buggy, set){
- try {
- set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);
- set(test, []);
- buggy = !(test instanceof Array);
- } catch(e){ buggy = true; }
- return function setPrototypeOf(O, proto){
- check(O, proto);
- if(buggy)O.__proto__ = proto;
- else set(O, proto);
- return O;
- };
- }({}, false) : undefined),
- check: check
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_set-species.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_set-species.js
deleted file mode 100644
index 4320fa510..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_set-species.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-var global = require('./_global')
- , core = require('./_core')
- , dP = require('./_object-dp')
- , DESCRIPTORS = require('./_descriptors')
- , SPECIES = require('./_wks')('species');
-
-module.exports = function(KEY){
- var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];
- if(DESCRIPTORS && C && !C[SPECIES])dP.f(C, SPECIES, {
- configurable: true,
- get: function(){ return this; }
- });
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js
deleted file mode 100644
index ffbdddab8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var def = require('./_object-dp').f
- , has = require('./_has')
- , TAG = require('./_wks')('toStringTag');
-
-module.exports = function(it, tag, stat){
- if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js
deleted file mode 100644
index 5ed763496..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var shared = require('./_shared')('keys')
- , uid = require('./_uid');
-module.exports = function(key){
- return shared[key] || (shared[key] = uid(key));
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js
deleted file mode 100644
index 3f9e4c891..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var global = require('./_global')
- , SHARED = '__core-js_shared__'
- , store = global[SHARED] || (global[SHARED] = {});
-module.exports = function(key){
- return store[key] || (store[key] = {});
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_species-constructor.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_species-constructor.js
deleted file mode 100644
index 7a4d1baf2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_species-constructor.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 7.3.20 SpeciesConstructor(O, defaultConstructor)
-var anObject = require('./_an-object')
- , aFunction = require('./_a-function')
- , SPECIES = require('./_wks')('species');
-module.exports = function(O, D){
- var C = anObject(O).constructor, S;
- return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_strict-method.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_strict-method.js
deleted file mode 100644
index 96b6c6e8a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_strict-method.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var fails = require('./_fails');
-
-module.exports = function(method, arg){
- return !!method && fails(function(){
- arg ? method.call(null, function(){}, 1) : method.call(null);
- });
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js
deleted file mode 100644
index ecc0d21cb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var toInteger = require('./_to-integer')
- , defined = require('./_defined');
-// true -> String#at
-// false -> String#codePointAt
-module.exports = function(TO_STRING){
- return function(that, pos){
- var s = String(defined(that))
- , i = toInteger(pos)
- , l = s.length
- , a, b;
- if(i < 0 || i >= l)return TO_STRING ? '' : undefined;
- a = s.charCodeAt(i);
- return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
- ? TO_STRING ? s.charAt(i) : a
- : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-context.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-context.js
deleted file mode 100644
index 5f513483f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-context.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// helper for String#{startsWith, endsWith, includes}
-var isRegExp = require('./_is-regexp')
- , defined = require('./_defined');
-
-module.exports = function(that, searchString, NAME){
- if(isRegExp(searchString))throw TypeError('String#' + NAME + " doesn't accept regex!");
- return String(defined(that));
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-html.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-html.js
deleted file mode 100644
index 95daf8124..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-html.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var $export = require('./_export')
- , fails = require('./_fails')
- , defined = require('./_defined')
- , quot = /"/g;
-// B.2.3.2.1 CreateHTML(string, tag, attribute, value)
-var createHTML = function(string, tag, attribute, value) {
- var S = String(defined(string))
- , p1 = '<' + tag;
- if(attribute !== '')p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
- return p1 + '>' + S + '</' + tag + '>';
-};
-module.exports = function(NAME, exec){
- var O = {};
- O[NAME] = exec(createHTML);
- $export($export.P + $export.F * fails(function(){
- var test = ''[NAME]('"');
- return test !== test.toLowerCase() || test.split('"').length > 3;
- }), 'String', O);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-pad.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-pad.js
deleted file mode 100644
index dccd155e8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-pad.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// https://github.com/tc39/proposal-string-pad-start-end
-var toLength = require('./_to-length')
- , repeat = require('./_string-repeat')
- , defined = require('./_defined');
-
-module.exports = function(that, maxLength, fillString, left){
- var S = String(defined(that))
- , stringLength = S.length
- , fillStr = fillString === undefined ? ' ' : String(fillString)
- , intMaxLength = toLength(maxLength);
- if(intMaxLength <= stringLength || fillStr == '')return S;
- var fillLen = intMaxLength - stringLength
- , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
- if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);
- return left ? stringFiller + S : S + stringFiller;
-};
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-repeat.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-repeat.js
deleted file mode 100644
index 88fd3a2d7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-repeat.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var toInteger = require('./_to-integer')
- , defined = require('./_defined');
-
-module.exports = function repeat(count){
- var str = String(defined(this))
- , res = ''
- , n = toInteger(count);
- if(n < 0 || n == Infinity)throw RangeError("Count can't be negative");
- for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;
- return res;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-trim.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-trim.js
deleted file mode 100644
index d12de1ce4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-trim.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var $export = require('./_export')
- , defined = require('./_defined')
- , fails = require('./_fails')
- , spaces = require('./_string-ws')
- , space = '[' + spaces + ']'
- , non = '\u200b\u0085'
- , ltrim = RegExp('^' + space + space + '*')
- , rtrim = RegExp(space + space + '*$');
-
-var exporter = function(KEY, exec, ALIAS){
- var exp = {};
- var FORCE = fails(function(){
- return !!spaces[KEY]() || non[KEY]() != non;
- });
- var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
- if(ALIAS)exp[ALIAS] = fn;
- $export($export.P + $export.F * FORCE, 'String', exp);
-};
-
-// 1 -> String#trimLeft
-// 2 -> String#trimRight
-// 3 -> String#trim
-var trim = exporter.trim = function(string, TYPE){
- string = String(defined(string));
- if(TYPE & 1)string = string.replace(ltrim, '');
- if(TYPE & 2)string = string.replace(rtrim, '');
- return string;
-};
-
-module.exports = exporter; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-ws.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-ws.js
deleted file mode 100644
index 9713d11db..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-ws.js
+++ /dev/null
@@ -1,2 +0,0 @@
-module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
- '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_task.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_task.js
deleted file mode 100644
index 06a73f40c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_task.js
+++ /dev/null
@@ -1,75 +0,0 @@
-var ctx = require('./_ctx')
- , invoke = require('./_invoke')
- , html = require('./_html')
- , cel = require('./_dom-create')
- , global = require('./_global')
- , process = global.process
- , setTask = global.setImmediate
- , clearTask = global.clearImmediate
- , MessageChannel = global.MessageChannel
- , counter = 0
- , queue = {}
- , ONREADYSTATECHANGE = 'onreadystatechange'
- , defer, channel, port;
-var run = function(){
- var id = +this;
- if(queue.hasOwnProperty(id)){
- var fn = queue[id];
- delete queue[id];
- fn();
- }
-};
-var listener = function(event){
- run.call(event.data);
-};
-// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
-if(!setTask || !clearTask){
- setTask = function setImmediate(fn){
- var args = [], i = 1;
- while(arguments.length > i)args.push(arguments[i++]);
- queue[++counter] = function(){
- invoke(typeof fn == 'function' ? fn : Function(fn), args);
- };
- defer(counter);
- return counter;
- };
- clearTask = function clearImmediate(id){
- delete queue[id];
- };
- // Node.js 0.8-
- if(require('./_cof')(process) == 'process'){
- defer = function(id){
- process.nextTick(ctx(run, id, 1));
- };
- // Browsers with MessageChannel, includes WebWorkers
- } else if(MessageChannel){
- channel = new MessageChannel;
- port = channel.port2;
- channel.port1.onmessage = listener;
- defer = ctx(port.postMessage, port, 1);
- // Browsers with postMessage, skip WebWorkers
- // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
- } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){
- defer = function(id){
- global.postMessage(id + '', '*');
- };
- global.addEventListener('message', listener, false);
- // IE8-
- } else if(ONREADYSTATECHANGE in cel('script')){
- defer = function(id){
- html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){
- html.removeChild(this);
- run.call(id);
- };
- };
- // Rest old browsers
- } else {
- defer = function(id){
- setTimeout(ctx(run, id, 1), 0);
- };
- }
-}
-module.exports = {
- set: setTask,
- clear: clearTask
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-index.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-index.js
deleted file mode 100644
index 4d380ce18..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var toInteger = require('./_to-integer')
- , max = Math.max
- , min = Math.min;
-module.exports = function(index, length){
- index = toInteger(index);
- return index < 0 ? max(index + length, 0) : min(index, length);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js
deleted file mode 100644
index f63baaff8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// 7.1.4 ToInteger
-var ceil = Math.ceil
- , floor = Math.floor;
-module.exports = function(it){
- return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js
deleted file mode 100644
index 4eb434620..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// to indexed object, toObject with fallback for non-array-like ES3 strings
-var IObject = require('./_iobject')
- , defined = require('./_defined');
-module.exports = function(it){
- return IObject(defined(it));
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js
deleted file mode 100644
index 4099e60b5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// 7.1.15 ToLength
-var toInteger = require('./_to-integer')
- , min = Math.min;
-module.exports = function(it){
- return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js
deleted file mode 100644
index f2c28b3fb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// 7.1.13 ToObject(argument)
-var defined = require('./_defined');
-module.exports = function(it){
- return Object(defined(it));
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js
deleted file mode 100644
index 16354eed6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// 7.1.1 ToPrimitive(input [, PreferredType])
-var isObject = require('./_is-object');
-// instead of the ES6 spec version, we didn't implement @@toPrimitive case
-// and the second argument - flag - preferred type is a string
-module.exports = function(it, S){
- if(!isObject(it))return it;
- var fn, val;
- if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
- if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
- if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
- throw TypeError("Can't convert object to primitive value");
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_typed-array.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_typed-array.js
deleted file mode 100644
index b072b23b0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_typed-array.js
+++ /dev/null
@@ -1,479 +0,0 @@
-'use strict';
-if(require('./_descriptors')){
- var LIBRARY = require('./_library')
- , global = require('./_global')
- , fails = require('./_fails')
- , $export = require('./_export')
- , $typed = require('./_typed')
- , $buffer = require('./_typed-buffer')
- , ctx = require('./_ctx')
- , anInstance = require('./_an-instance')
- , propertyDesc = require('./_property-desc')
- , hide = require('./_hide')
- , redefineAll = require('./_redefine-all')
- , toInteger = require('./_to-integer')
- , toLength = require('./_to-length')
- , toIndex = require('./_to-index')
- , toPrimitive = require('./_to-primitive')
- , has = require('./_has')
- , same = require('./_same-value')
- , classof = require('./_classof')
- , isObject = require('./_is-object')
- , toObject = require('./_to-object')
- , isArrayIter = require('./_is-array-iter')
- , create = require('./_object-create')
- , getPrototypeOf = require('./_object-gpo')
- , gOPN = require('./_object-gopn').f
- , getIterFn = require('./core.get-iterator-method')
- , uid = require('./_uid')
- , wks = require('./_wks')
- , createArrayMethod = require('./_array-methods')
- , createArrayIncludes = require('./_array-includes')
- , speciesConstructor = require('./_species-constructor')
- , ArrayIterators = require('./es6.array.iterator')
- , Iterators = require('./_iterators')
- , $iterDetect = require('./_iter-detect')
- , setSpecies = require('./_set-species')
- , arrayFill = require('./_array-fill')
- , arrayCopyWithin = require('./_array-copy-within')
- , $DP = require('./_object-dp')
- , $GOPD = require('./_object-gopd')
- , dP = $DP.f
- , gOPD = $GOPD.f
- , RangeError = global.RangeError
- , TypeError = global.TypeError
- , Uint8Array = global.Uint8Array
- , ARRAY_BUFFER = 'ArrayBuffer'
- , SHARED_BUFFER = 'Shared' + ARRAY_BUFFER
- , BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'
- , PROTOTYPE = 'prototype'
- , ArrayProto = Array[PROTOTYPE]
- , $ArrayBuffer = $buffer.ArrayBuffer
- , $DataView = $buffer.DataView
- , arrayForEach = createArrayMethod(0)
- , arrayFilter = createArrayMethod(2)
- , arraySome = createArrayMethod(3)
- , arrayEvery = createArrayMethod(4)
- , arrayFind = createArrayMethod(5)
- , arrayFindIndex = createArrayMethod(6)
- , arrayIncludes = createArrayIncludes(true)
- , arrayIndexOf = createArrayIncludes(false)
- , arrayValues = ArrayIterators.values
- , arrayKeys = ArrayIterators.keys
- , arrayEntries = ArrayIterators.entries
- , arrayLastIndexOf = ArrayProto.lastIndexOf
- , arrayReduce = ArrayProto.reduce
- , arrayReduceRight = ArrayProto.reduceRight
- , arrayJoin = ArrayProto.join
- , arraySort = ArrayProto.sort
- , arraySlice = ArrayProto.slice
- , arrayToString = ArrayProto.toString
- , arrayToLocaleString = ArrayProto.toLocaleString
- , ITERATOR = wks('iterator')
- , TAG = wks('toStringTag')
- , TYPED_CONSTRUCTOR = uid('typed_constructor')
- , DEF_CONSTRUCTOR = uid('def_constructor')
- , ALL_CONSTRUCTORS = $typed.CONSTR
- , TYPED_ARRAY = $typed.TYPED
- , VIEW = $typed.VIEW
- , WRONG_LENGTH = 'Wrong length!';
-
- var $map = createArrayMethod(1, function(O, length){
- return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);
- });
-
- var LITTLE_ENDIAN = fails(function(){
- return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;
- });
-
- var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function(){
- new Uint8Array(1).set({});
- });
-
- var strictToLength = function(it, SAME){
- if(it === undefined)throw TypeError(WRONG_LENGTH);
- var number = +it
- , length = toLength(it);
- if(SAME && !same(number, length))throw RangeError(WRONG_LENGTH);
- return length;
- };
-
- var toOffset = function(it, BYTES){
- var offset = toInteger(it);
- if(offset < 0 || offset % BYTES)throw RangeError('Wrong offset!');
- return offset;
- };
-
- var validate = function(it){
- if(isObject(it) && TYPED_ARRAY in it)return it;
- throw TypeError(it + ' is not a typed array!');
- };
-
- var allocate = function(C, length){
- if(!(isObject(C) && TYPED_CONSTRUCTOR in C)){
- throw TypeError('It is not a typed array constructor!');
- } return new C(length);
- };
-
- var speciesFromList = function(O, list){
- return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);
- };
-
- var fromList = function(C, list){
- var index = 0
- , length = list.length
- , result = allocate(C, length);
- while(length > index)result[index] = list[index++];
- return result;
- };
-
- var addGetter = function(it, key, internal){
- dP(it, key, {get: function(){ return this._d[internal]; }});
- };
-
- var $from = function from(source /*, mapfn, thisArg */){
- var O = toObject(source)
- , aLen = arguments.length
- , mapfn = aLen > 1 ? arguments[1] : undefined
- , mapping = mapfn !== undefined
- , iterFn = getIterFn(O)
- , i, length, values, result, step, iterator;
- if(iterFn != undefined && !isArrayIter(iterFn)){
- for(iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++){
- values.push(step.value);
- } O = values;
- }
- if(mapping && aLen > 2)mapfn = ctx(mapfn, arguments[2], 2);
- for(i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++){
- result[i] = mapping ? mapfn(O[i], i) : O[i];
- }
- return result;
- };
-
- var $of = function of(/*...items*/){
- var index = 0
- , length = arguments.length
- , result = allocate(this, length);
- while(length > index)result[index] = arguments[index++];
- return result;
- };
-
- // iOS Safari 6.x fails here
- var TO_LOCALE_BUG = !!Uint8Array && fails(function(){ arrayToLocaleString.call(new Uint8Array(1)); });
-
- var $toLocaleString = function toLocaleString(){
- return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);
- };
-
- var proto = {
- copyWithin: function copyWithin(target, start /*, end */){
- return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
- },
- every: function every(callbackfn /*, thisArg */){
- return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- fill: function fill(value /*, start, end */){ // eslint-disable-line no-unused-vars
- return arrayFill.apply(validate(this), arguments);
- },
- filter: function filter(callbackfn /*, thisArg */){
- return speciesFromList(this, arrayFilter(validate(this), callbackfn,
- arguments.length > 1 ? arguments[1] : undefined));
- },
- find: function find(predicate /*, thisArg */){
- return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
- },
- findIndex: function findIndex(predicate /*, thisArg */){
- return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
- },
- forEach: function forEach(callbackfn /*, thisArg */){
- arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- indexOf: function indexOf(searchElement /*, fromIndex */){
- return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
- },
- includes: function includes(searchElement /*, fromIndex */){
- return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
- },
- join: function join(separator){ // eslint-disable-line no-unused-vars
- return arrayJoin.apply(validate(this), arguments);
- },
- lastIndexOf: function lastIndexOf(searchElement /*, fromIndex */){ // eslint-disable-line no-unused-vars
- return arrayLastIndexOf.apply(validate(this), arguments);
- },
- map: function map(mapfn /*, thisArg */){
- return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- reduce: function reduce(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
- return arrayReduce.apply(validate(this), arguments);
- },
- reduceRight: function reduceRight(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
- return arrayReduceRight.apply(validate(this), arguments);
- },
- reverse: function reverse(){
- var that = this
- , length = validate(that).length
- , middle = Math.floor(length / 2)
- , index = 0
- , value;
- while(index < middle){
- value = that[index];
- that[index++] = that[--length];
- that[length] = value;
- } return that;
- },
- some: function some(callbackfn /*, thisArg */){
- return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- sort: function sort(comparefn){
- return arraySort.call(validate(this), comparefn);
- },
- subarray: function subarray(begin, end){
- var O = validate(this)
- , length = O.length
- , $begin = toIndex(begin, length);
- return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(
- O.buffer,
- O.byteOffset + $begin * O.BYTES_PER_ELEMENT,
- toLength((end === undefined ? length : toIndex(end, length)) - $begin)
- );
- }
- };
-
- var $slice = function slice(start, end){
- return speciesFromList(this, arraySlice.call(validate(this), start, end));
- };
-
- var $set = function set(arrayLike /*, offset */){
- validate(this);
- var offset = toOffset(arguments[1], 1)
- , length = this.length
- , src = toObject(arrayLike)
- , len = toLength(src.length)
- , index = 0;
- if(len + offset > length)throw RangeError(WRONG_LENGTH);
- while(index < len)this[offset + index] = src[index++];
- };
-
- var $iterators = {
- entries: function entries(){
- return arrayEntries.call(validate(this));
- },
- keys: function keys(){
- return arrayKeys.call(validate(this));
- },
- values: function values(){
- return arrayValues.call(validate(this));
- }
- };
-
- var isTAIndex = function(target, key){
- return isObject(target)
- && target[TYPED_ARRAY]
- && typeof key != 'symbol'
- && key in target
- && String(+key) == String(key);
- };
- var $getDesc = function getOwnPropertyDescriptor(target, key){
- return isTAIndex(target, key = toPrimitive(key, true))
- ? propertyDesc(2, target[key])
- : gOPD(target, key);
- };
- var $setDesc = function defineProperty(target, key, desc){
- if(isTAIndex(target, key = toPrimitive(key, true))
- && isObject(desc)
- && has(desc, 'value')
- && !has(desc, 'get')
- && !has(desc, 'set')
- // TODO: add validation descriptor w/o calling accessors
- && !desc.configurable
- && (!has(desc, 'writable') || desc.writable)
- && (!has(desc, 'enumerable') || desc.enumerable)
- ){
- target[key] = desc.value;
- return target;
- } else return dP(target, key, desc);
- };
-
- if(!ALL_CONSTRUCTORS){
- $GOPD.f = $getDesc;
- $DP.f = $setDesc;
- }
-
- $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {
- getOwnPropertyDescriptor: $getDesc,
- defineProperty: $setDesc
- });
-
- if(fails(function(){ arrayToString.call({}); })){
- arrayToString = arrayToLocaleString = function toString(){
- return arrayJoin.call(this);
- }
- }
-
- var $TypedArrayPrototype$ = redefineAll({}, proto);
- redefineAll($TypedArrayPrototype$, $iterators);
- hide($TypedArrayPrototype$, ITERATOR, $iterators.values);
- redefineAll($TypedArrayPrototype$, {
- slice: $slice,
- set: $set,
- constructor: function(){ /* noop */ },
- toString: arrayToString,
- toLocaleString: $toLocaleString
- });
- addGetter($TypedArrayPrototype$, 'buffer', 'b');
- addGetter($TypedArrayPrototype$, 'byteOffset', 'o');
- addGetter($TypedArrayPrototype$, 'byteLength', 'l');
- addGetter($TypedArrayPrototype$, 'length', 'e');
- dP($TypedArrayPrototype$, TAG, {
- get: function(){ return this[TYPED_ARRAY]; }
- });
-
- module.exports = function(KEY, BYTES, wrapper, CLAMPED){
- CLAMPED = !!CLAMPED;
- var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'
- , ISNT_UINT8 = NAME != 'Uint8Array'
- , GETTER = 'get' + KEY
- , SETTER = 'set' + KEY
- , TypedArray = global[NAME]
- , Base = TypedArray || {}
- , TAC = TypedArray && getPrototypeOf(TypedArray)
- , FORCED = !TypedArray || !$typed.ABV
- , O = {}
- , TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];
- var getter = function(that, index){
- var data = that._d;
- return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);
- };
- var setter = function(that, index, value){
- var data = that._d;
- if(CLAMPED)value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;
- data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);
- };
- var addElement = function(that, index){
- dP(that, index, {
- get: function(){
- return getter(this, index);
- },
- set: function(value){
- return setter(this, index, value);
- },
- enumerable: true
- });
- };
- if(FORCED){
- TypedArray = wrapper(function(that, data, $offset, $length){
- anInstance(that, TypedArray, NAME, '_d');
- var index = 0
- , offset = 0
- , buffer, byteLength, length, klass;
- if(!isObject(data)){
- length = strictToLength(data, true)
- byteLength = length * BYTES;
- buffer = new $ArrayBuffer(byteLength);
- } else if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){
- buffer = data;
- offset = toOffset($offset, BYTES);
- var $len = data.byteLength;
- if($length === undefined){
- if($len % BYTES)throw RangeError(WRONG_LENGTH);
- byteLength = $len - offset;
- if(byteLength < 0)throw RangeError(WRONG_LENGTH);
- } else {
- byteLength = toLength($length) * BYTES;
- if(byteLength + offset > $len)throw RangeError(WRONG_LENGTH);
- }
- length = byteLength / BYTES;
- } else if(TYPED_ARRAY in data){
- return fromList(TypedArray, data);
- } else {
- return $from.call(TypedArray, data);
- }
- hide(that, '_d', {
- b: buffer,
- o: offset,
- l: byteLength,
- e: length,
- v: new $DataView(buffer)
- });
- while(index < length)addElement(that, index++);
- });
- TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);
- hide(TypedArrayPrototype, 'constructor', TypedArray);
- } else if(!$iterDetect(function(iter){
- // V8 works with iterators, but fails in many other cases
- // https://code.google.com/p/v8/issues/detail?id=4552
- new TypedArray(null); // eslint-disable-line no-new
- new TypedArray(iter); // eslint-disable-line no-new
- }, true)){
- TypedArray = wrapper(function(that, data, $offset, $length){
- anInstance(that, TypedArray, NAME);
- var klass;
- // `ws` module bug, temporarily remove validation length for Uint8Array
- // https://github.com/websockets/ws/pull/645
- if(!isObject(data))return new Base(strictToLength(data, ISNT_UINT8));
- if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){
- return $length !== undefined
- ? new Base(data, toOffset($offset, BYTES), $length)
- : $offset !== undefined
- ? new Base(data, toOffset($offset, BYTES))
- : new Base(data);
- }
- if(TYPED_ARRAY in data)return fromList(TypedArray, data);
- return $from.call(TypedArray, data);
- });
- arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function(key){
- if(!(key in TypedArray))hide(TypedArray, key, Base[key]);
- });
- TypedArray[PROTOTYPE] = TypedArrayPrototype;
- if(!LIBRARY)TypedArrayPrototype.constructor = TypedArray;
- }
- var $nativeIterator = TypedArrayPrototype[ITERATOR]
- , CORRECT_ITER_NAME = !!$nativeIterator && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined)
- , $iterator = $iterators.values;
- hide(TypedArray, TYPED_CONSTRUCTOR, true);
- hide(TypedArrayPrototype, TYPED_ARRAY, NAME);
- hide(TypedArrayPrototype, VIEW, true);
- hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);
-
- if(CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)){
- dP(TypedArrayPrototype, TAG, {
- get: function(){ return NAME; }
- });
- }
-
- O[NAME] = TypedArray;
-
- $export($export.G + $export.W + $export.F * (TypedArray != Base), O);
-
- $export($export.S, NAME, {
- BYTES_PER_ELEMENT: BYTES,
- from: $from,
- of: $of
- });
-
- if(!(BYTES_PER_ELEMENT in TypedArrayPrototype))hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);
-
- $export($export.P, NAME, proto);
-
- setSpecies(NAME);
-
- $export($export.P + $export.F * FORCED_SET, NAME, {set: $set});
-
- $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);
-
- $export($export.P + $export.F * (TypedArrayPrototype.toString != arrayToString), NAME, {toString: arrayToString});
-
- $export($export.P + $export.F * fails(function(){
- new TypedArray(1).slice();
- }), NAME, {slice: $slice});
-
- $export($export.P + $export.F * (fails(function(){
- return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString()
- }) || !fails(function(){
- TypedArrayPrototype.toLocaleString.call([1, 2]);
- })), NAME, {toLocaleString: $toLocaleString});
-
- Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;
- if(!LIBRARY && !CORRECT_ITER_NAME)hide(TypedArrayPrototype, ITERATOR, $iterator);
- };
-} else module.exports = function(){ /* empty */ }; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_typed-buffer.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_typed-buffer.js
deleted file mode 100644
index 2129eea40..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_typed-buffer.js
+++ /dev/null
@@ -1,273 +0,0 @@
-'use strict';
-var global = require('./_global')
- , DESCRIPTORS = require('./_descriptors')
- , LIBRARY = require('./_library')
- , $typed = require('./_typed')
- , hide = require('./_hide')
- , redefineAll = require('./_redefine-all')
- , fails = require('./_fails')
- , anInstance = require('./_an-instance')
- , toInteger = require('./_to-integer')
- , toLength = require('./_to-length')
- , gOPN = require('./_object-gopn').f
- , dP = require('./_object-dp').f
- , arrayFill = require('./_array-fill')
- , setToStringTag = require('./_set-to-string-tag')
- , ARRAY_BUFFER = 'ArrayBuffer'
- , DATA_VIEW = 'DataView'
- , PROTOTYPE = 'prototype'
- , WRONG_LENGTH = 'Wrong length!'
- , WRONG_INDEX = 'Wrong index!'
- , $ArrayBuffer = global[ARRAY_BUFFER]
- , $DataView = global[DATA_VIEW]
- , Math = global.Math
- , RangeError = global.RangeError
- , Infinity = global.Infinity
- , BaseBuffer = $ArrayBuffer
- , abs = Math.abs
- , pow = Math.pow
- , floor = Math.floor
- , log = Math.log
- , LN2 = Math.LN2
- , BUFFER = 'buffer'
- , BYTE_LENGTH = 'byteLength'
- , BYTE_OFFSET = 'byteOffset'
- , $BUFFER = DESCRIPTORS ? '_b' : BUFFER
- , $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH
- , $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;
-
-// IEEE754 conversions based on https://github.com/feross/ieee754
-var packIEEE754 = function(value, mLen, nBytes){
- var buffer = Array(nBytes)
- , eLen = nBytes * 8 - mLen - 1
- , eMax = (1 << eLen) - 1
- , eBias = eMax >> 1
- , rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0
- , i = 0
- , s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0
- , e, m, c;
- value = abs(value)
- if(value != value || value === Infinity){
- m = value != value ? 1 : 0;
- e = eMax;
- } else {
- e = floor(log(value) / LN2);
- if(value * (c = pow(2, -e)) < 1){
- e--;
- c *= 2;
- }
- if(e + eBias >= 1){
- value += rt / c;
- } else {
- value += rt * pow(2, 1 - eBias);
- }
- if(value * c >= 2){
- e++;
- c /= 2;
- }
- if(e + eBias >= eMax){
- m = 0;
- e = eMax;
- } else if(e + eBias >= 1){
- m = (value * c - 1) * pow(2, mLen);
- e = e + eBias;
- } else {
- m = value * pow(2, eBias - 1) * pow(2, mLen);
- e = 0;
- }
- }
- for(; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);
- e = e << mLen | m;
- eLen += mLen;
- for(; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);
- buffer[--i] |= s * 128;
- return buffer;
-};
-var unpackIEEE754 = function(buffer, mLen, nBytes){
- var eLen = nBytes * 8 - mLen - 1
- , eMax = (1 << eLen) - 1
- , eBias = eMax >> 1
- , nBits = eLen - 7
- , i = nBytes - 1
- , s = buffer[i--]
- , e = s & 127
- , m;
- s >>= 7;
- for(; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);
- m = e & (1 << -nBits) - 1;
- e >>= -nBits;
- nBits += mLen;
- for(; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);
- if(e === 0){
- e = 1 - eBias;
- } else if(e === eMax){
- return m ? NaN : s ? -Infinity : Infinity;
- } else {
- m = m + pow(2, mLen);
- e = e - eBias;
- } return (s ? -1 : 1) * m * pow(2, e - mLen);
-};
-
-var unpackI32 = function(bytes){
- return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];
-};
-var packI8 = function(it){
- return [it & 0xff];
-};
-var packI16 = function(it){
- return [it & 0xff, it >> 8 & 0xff];
-};
-var packI32 = function(it){
- return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];
-};
-var packF64 = function(it){
- return packIEEE754(it, 52, 8);
-};
-var packF32 = function(it){
- return packIEEE754(it, 23, 4);
-};
-
-var addGetter = function(C, key, internal){
- dP(C[PROTOTYPE], key, {get: function(){ return this[internal]; }});
-};
-
-var get = function(view, bytes, index, isLittleEndian){
- var numIndex = +index
- , intIndex = toInteger(numIndex);
- if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);
- var store = view[$BUFFER]._b
- , start = intIndex + view[$OFFSET]
- , pack = store.slice(start, start + bytes);
- return isLittleEndian ? pack : pack.reverse();
-};
-var set = function(view, bytes, index, conversion, value, isLittleEndian){
- var numIndex = +index
- , intIndex = toInteger(numIndex);
- if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);
- var store = view[$BUFFER]._b
- , start = intIndex + view[$OFFSET]
- , pack = conversion(+value);
- for(var i = 0; i < bytes; i++)store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];
-};
-
-var validateArrayBufferArguments = function(that, length){
- anInstance(that, $ArrayBuffer, ARRAY_BUFFER);
- var numberLength = +length
- , byteLength = toLength(numberLength);
- if(numberLength != byteLength)throw RangeError(WRONG_LENGTH);
- return byteLength;
-};
-
-if(!$typed.ABV){
- $ArrayBuffer = function ArrayBuffer(length){
- var byteLength = validateArrayBufferArguments(this, length);
- this._b = arrayFill.call(Array(byteLength), 0);
- this[$LENGTH] = byteLength;
- };
-
- $DataView = function DataView(buffer, byteOffset, byteLength){
- anInstance(this, $DataView, DATA_VIEW);
- anInstance(buffer, $ArrayBuffer, DATA_VIEW);
- var bufferLength = buffer[$LENGTH]
- , offset = toInteger(byteOffset);
- if(offset < 0 || offset > bufferLength)throw RangeError('Wrong offset!');
- byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
- if(offset + byteLength > bufferLength)throw RangeError(WRONG_LENGTH);
- this[$BUFFER] = buffer;
- this[$OFFSET] = offset;
- this[$LENGTH] = byteLength;
- };
-
- if(DESCRIPTORS){
- addGetter($ArrayBuffer, BYTE_LENGTH, '_l');
- addGetter($DataView, BUFFER, '_b');
- addGetter($DataView, BYTE_LENGTH, '_l');
- addGetter($DataView, BYTE_OFFSET, '_o');
- }
-
- redefineAll($DataView[PROTOTYPE], {
- getInt8: function getInt8(byteOffset){
- return get(this, 1, byteOffset)[0] << 24 >> 24;
- },
- getUint8: function getUint8(byteOffset){
- return get(this, 1, byteOffset)[0];
- },
- getInt16: function getInt16(byteOffset /*, littleEndian */){
- var bytes = get(this, 2, byteOffset, arguments[1]);
- return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
- },
- getUint16: function getUint16(byteOffset /*, littleEndian */){
- var bytes = get(this, 2, byteOffset, arguments[1]);
- return bytes[1] << 8 | bytes[0];
- },
- getInt32: function getInt32(byteOffset /*, littleEndian */){
- return unpackI32(get(this, 4, byteOffset, arguments[1]));
- },
- getUint32: function getUint32(byteOffset /*, littleEndian */){
- return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;
- },
- getFloat32: function getFloat32(byteOffset /*, littleEndian */){
- return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);
- },
- getFloat64: function getFloat64(byteOffset /*, littleEndian */){
- return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);
- },
- setInt8: function setInt8(byteOffset, value){
- set(this, 1, byteOffset, packI8, value);
- },
- setUint8: function setUint8(byteOffset, value){
- set(this, 1, byteOffset, packI8, value);
- },
- setInt16: function setInt16(byteOffset, value /*, littleEndian */){
- set(this, 2, byteOffset, packI16, value, arguments[2]);
- },
- setUint16: function setUint16(byteOffset, value /*, littleEndian */){
- set(this, 2, byteOffset, packI16, value, arguments[2]);
- },
- setInt32: function setInt32(byteOffset, value /*, littleEndian */){
- set(this, 4, byteOffset, packI32, value, arguments[2]);
- },
- setUint32: function setUint32(byteOffset, value /*, littleEndian */){
- set(this, 4, byteOffset, packI32, value, arguments[2]);
- },
- setFloat32: function setFloat32(byteOffset, value /*, littleEndian */){
- set(this, 4, byteOffset, packF32, value, arguments[2]);
- },
- setFloat64: function setFloat64(byteOffset, value /*, littleEndian */){
- set(this, 8, byteOffset, packF64, value, arguments[2]);
- }
- });
-} else {
- if(!fails(function(){
- new $ArrayBuffer; // eslint-disable-line no-new
- }) || !fails(function(){
- new $ArrayBuffer(.5); // eslint-disable-line no-new
- })){
- $ArrayBuffer = function ArrayBuffer(length){
- return new BaseBuffer(validateArrayBufferArguments(this, length));
- };
- var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];
- for(var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j; ){
- if(!((key = keys[j++]) in $ArrayBuffer))hide($ArrayBuffer, key, BaseBuffer[key]);
- };
- if(!LIBRARY)ArrayBufferProto.constructor = $ArrayBuffer;
- }
- // iOS Safari 7.x bug
- var view = new $DataView(new $ArrayBuffer(2))
- , $setInt8 = $DataView[PROTOTYPE].setInt8;
- view.setInt8(0, 2147483648);
- view.setInt8(1, 2147483649);
- if(view.getInt8(0) || !view.getInt8(1))redefineAll($DataView[PROTOTYPE], {
- setInt8: function setInt8(byteOffset, value){
- $setInt8.call(this, byteOffset, value << 24 >> 24);
- },
- setUint8: function setUint8(byteOffset, value){
- $setInt8.call(this, byteOffset, value << 24 >> 24);
- }
- }, true);
-}
-setToStringTag($ArrayBuffer, ARRAY_BUFFER);
-setToStringTag($DataView, DATA_VIEW);
-hide($DataView[PROTOTYPE], $typed.VIEW, true);
-exports[ARRAY_BUFFER] = $ArrayBuffer;
-exports[DATA_VIEW] = $DataView; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_typed.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_typed.js
deleted file mode 100644
index 6ed2ab56d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_typed.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var global = require('./_global')
- , hide = require('./_hide')
- , uid = require('./_uid')
- , TYPED = uid('typed_array')
- , VIEW = uid('view')
- , ABV = !!(global.ArrayBuffer && global.DataView)
- , CONSTR = ABV
- , i = 0, l = 9, Typed;
-
-var TypedArrayConstructors = (
- 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'
-).split(',');
-
-while(i < l){
- if(Typed = global[TypedArrayConstructors[i++]]){
- hide(Typed.prototype, TYPED, true);
- hide(Typed.prototype, VIEW, true);
- } else CONSTR = false;
-}
-
-module.exports = {
- ABV: ABV,
- CONSTR: CONSTR,
- TYPED: TYPED,
- VIEW: VIEW
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js
deleted file mode 100644
index 3be4196bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var id = 0
- , px = Math.random();
-module.exports = function(key){
- return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js
deleted file mode 100644
index e69603286..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var global = require('./_global')
- , core = require('./_core')
- , LIBRARY = require('./_library')
- , wksExt = require('./_wks-ext')
- , defineProperty = require('./_object-dp').f;
-module.exports = function(name){
- var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
- if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js
deleted file mode 100644
index 7901def62..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js
+++ /dev/null
@@ -1 +0,0 @@
-exports.f = require('./_wks'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js
deleted file mode 100644
index 36f7973ae..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var store = require('./_shared')('wks')
- , uid = require('./_uid')
- , Symbol = require('./_global').Symbol
- , USE_SYMBOL = typeof Symbol == 'function';
-
-var $exports = module.exports = function(name){
- return store[name] || (store[name] =
- USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
-};
-
-$exports.store = store; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.delay.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/core.delay.js
deleted file mode 100644
index ea031be4a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.delay.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var global = require('./_global')
- , core = require('./_core')
- , $export = require('./_export')
- , partial = require('./_partial');
-// https://esdiscuss.org/topic/promise-returning-delay-function
-$export($export.G + $export.F, {
- delay: function delay(time){
- return new (core.Promise || global.Promise)(function(resolve){
- setTimeout(partial.call(resolve, true), time);
- });
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.dict.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/core.dict.js
deleted file mode 100644
index 88c54e3d7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.dict.js
+++ /dev/null
@@ -1,155 +0,0 @@
-'use strict';
-var ctx = require('./_ctx')
- , $export = require('./_export')
- , createDesc = require('./_property-desc')
- , assign = require('./_object-assign')
- , create = require('./_object-create')
- , getPrototypeOf = require('./_object-gpo')
- , getKeys = require('./_object-keys')
- , dP = require('./_object-dp')
- , keyOf = require('./_keyof')
- , aFunction = require('./_a-function')
- , forOf = require('./_for-of')
- , isIterable = require('./core.is-iterable')
- , $iterCreate = require('./_iter-create')
- , step = require('./_iter-step')
- , isObject = require('./_is-object')
- , toIObject = require('./_to-iobject')
- , DESCRIPTORS = require('./_descriptors')
- , has = require('./_has');
-
-// 0 -> Dict.forEach
-// 1 -> Dict.map
-// 2 -> Dict.filter
-// 3 -> Dict.some
-// 4 -> Dict.every
-// 5 -> Dict.find
-// 6 -> Dict.findKey
-// 7 -> Dict.mapPairs
-var createDictMethod = function(TYPE){
- var IS_MAP = TYPE == 1
- , IS_EVERY = TYPE == 4;
- return function(object, callbackfn, that /* = undefined */){
- var f = ctx(callbackfn, that, 3)
- , O = toIObject(object)
- , result = IS_MAP || TYPE == 7 || TYPE == 2
- ? new (typeof this == 'function' ? this : Dict) : undefined
- , key, val, res;
- for(key in O)if(has(O, key)){
- val = O[key];
- res = f(val, key, object);
- if(TYPE){
- if(IS_MAP)result[key] = res; // map
- else if(res)switch(TYPE){
- case 2: result[key] = val; break; // filter
- case 3: return true; // some
- case 5: return val; // find
- case 6: return key; // findKey
- case 7: result[res[0]] = res[1]; // mapPairs
- } else if(IS_EVERY)return false; // every
- }
- }
- return TYPE == 3 || IS_EVERY ? IS_EVERY : result;
- };
-};
-var findKey = createDictMethod(6);
-
-var createDictIter = function(kind){
- return function(it){
- return new DictIterator(it, kind);
- };
-};
-var DictIterator = function(iterated, kind){
- this._t = toIObject(iterated); // target
- this._a = getKeys(iterated); // keys
- this._i = 0; // next index
- this._k = kind; // kind
-};
-$iterCreate(DictIterator, 'Dict', function(){
- var that = this
- , O = that._t
- , keys = that._a
- , kind = that._k
- , key;
- do {
- if(that._i >= keys.length){
- that._t = undefined;
- return step(1);
- }
- } while(!has(O, key = keys[that._i++]));
- if(kind == 'keys' )return step(0, key);
- if(kind == 'values')return step(0, O[key]);
- return step(0, [key, O[key]]);
-});
-
-function Dict(iterable){
- var dict = create(null);
- if(iterable != undefined){
- if(isIterable(iterable)){
- forOf(iterable, true, function(key, value){
- dict[key] = value;
- });
- } else assign(dict, iterable);
- }
- return dict;
-}
-Dict.prototype = null;
-
-function reduce(object, mapfn, init){
- aFunction(mapfn);
- var O = toIObject(object)
- , keys = getKeys(O)
- , length = keys.length
- , i = 0
- , memo, key;
- if(arguments.length < 3){
- if(!length)throw TypeError('Reduce of empty object with no initial value');
- memo = O[keys[i++]];
- } else memo = Object(init);
- while(length > i)if(has(O, key = keys[i++])){
- memo = mapfn(memo, O[key], key, object);
- }
- return memo;
-}
-
-function includes(object, el){
- return (el == el ? keyOf(object, el) : findKey(object, function(it){
- return it != it;
- })) !== undefined;
-}
-
-function get(object, key){
- if(has(object, key))return object[key];
-}
-function set(object, key, value){
- if(DESCRIPTORS && key in Object)dP.f(object, key, createDesc(0, value));
- else object[key] = value;
- return object;
-}
-
-function isDict(it){
- return isObject(it) && getPrototypeOf(it) === Dict.prototype;
-}
-
-$export($export.G + $export.F, {Dict: Dict});
-
-$export($export.S, 'Dict', {
- keys: createDictIter('keys'),
- values: createDictIter('values'),
- entries: createDictIter('entries'),
- forEach: createDictMethod(0),
- map: createDictMethod(1),
- filter: createDictMethod(2),
- some: createDictMethod(3),
- every: createDictMethod(4),
- find: createDictMethod(5),
- findKey: findKey,
- mapPairs: createDictMethod(7),
- reduce: reduce,
- keyOf: keyOf,
- includes: includes,
- has: has,
- get: get,
- set: set,
- isDict: isDict
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.function.part.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/core.function.part.js
deleted file mode 100644
index ce851ff84..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.function.part.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var path = require('./_path')
- , $export = require('./_export');
-
-// Placeholder
-require('./_core')._ = path._ = path._ || {};
-
-$export($export.P + $export.F, 'Function', {part: require('./_partial')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator-method.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator-method.js
deleted file mode 100644
index e2c7ecc3d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator-method.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var classof = require('./_classof')
- , ITERATOR = require('./_wks')('iterator')
- , Iterators = require('./_iterators');
-module.exports = require('./_core').getIteratorMethod = function(it){
- if(it != undefined)return it[ITERATOR]
- || it['@@iterator']
- || Iterators[classof(it)];
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator.js
deleted file mode 100644
index c292e1ab1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var anObject = require('./_an-object')
- , get = require('./core.get-iterator-method');
-module.exports = require('./_core').getIterator = function(it){
- var iterFn = get(it);
- if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');
- return anObject(iterFn.call(it));
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.is-iterable.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/core.is-iterable.js
deleted file mode 100644
index b2b01b6bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.is-iterable.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var classof = require('./_classof')
- , ITERATOR = require('./_wks')('iterator')
- , Iterators = require('./_iterators');
-module.exports = require('./_core').isIterable = function(it){
- var O = Object(it);
- return O[ITERATOR] !== undefined
- || '@@iterator' in O
- || Iterators.hasOwnProperty(classof(O));
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.number.iterator.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/core.number.iterator.js
deleted file mode 100644
index 9700acba0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.number.iterator.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-require('./_iter-define')(Number, 'Number', function(iterated){
- this._l = +iterated;
- this._i = 0;
-}, function(){
- var i = this._i++
- , done = !(i < this._l);
- return {done: done, value: done ? undefined : i};
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.object.classof.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/core.object.classof.js
deleted file mode 100644
index 342c73713..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.object.classof.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var $export = require('./_export');
-
-$export($export.S + $export.F, 'Object', {classof: require('./_classof')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.object.define.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/core.object.define.js
deleted file mode 100644
index d60e9a951..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.object.define.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var $export = require('./_export')
- , define = require('./_object-define');
-
-$export($export.S + $export.F, 'Object', {define: define}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.object.is-object.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/core.object.is-object.js
deleted file mode 100644
index f2ba059fb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.object.is-object.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var $export = require('./_export');
-
-$export($export.S + $export.F, 'Object', {isObject: require('./_is-object')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.object.make.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/core.object.make.js
deleted file mode 100644
index 3d2a2b5f5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.object.make.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var $export = require('./_export')
- , define = require('./_object-define')
- , create = require('./_object-create');
-
-$export($export.S + $export.F, 'Object', {
- make: function(proto, mixin){
- return define(create(proto), mixin);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.regexp.escape.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/core.regexp.escape.js
deleted file mode 100644
index 54f832ef8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.regexp.escape.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// https://github.com/benjamingr/RexExp.escape
-var $export = require('./_export')
- , $re = require('./_replacer')(/[\\^$*+?.()|[\]{}]/g, '\\$&');
-
-$export($export.S, 'RegExp', {escape: function escape(it){ return $re(it); }});
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.string.escape-html.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/core.string.escape-html.js
deleted file mode 100644
index a4b8d2f02..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.string.escape-html.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-var $export = require('./_export');
-var $re = require('./_replacer')(/[&<>"']/g, {
- '&': '&amp;',
- '<': '&lt;',
- '>': '&gt;',
- '"': '&quot;',
- "'": '&apos;'
-});
-
-$export($export.P + $export.F, 'String', {escapeHTML: function escapeHTML(){ return $re(this); }}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.string.unescape-html.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/core.string.unescape-html.js
deleted file mode 100644
index 413622b94..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/core.string.unescape-html.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-var $export = require('./_export');
-var $re = require('./_replacer')(/&(?:amp|lt|gt|quot|apos);/g, {
- '&amp;': '&',
- '&lt;': '<',
- '&gt;': '>',
- '&quot;': '"',
- '&apos;': "'"
-});
-
-$export($export.P + $export.F, 'String', {unescapeHTML: function unescapeHTML(){ return $re(this); }}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es5.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es5.js
deleted file mode 100644
index dd7ebadf8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es5.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// This file still here for a legacy code and will be removed in a near time
-require('./es6.object.create');
-require('./es6.object.define-property');
-require('./es6.object.define-properties');
-require('./es6.object.get-own-property-descriptor');
-require('./es6.object.get-prototype-of');
-require('./es6.object.keys');
-require('./es6.object.get-own-property-names');
-require('./es6.object.freeze');
-require('./es6.object.seal');
-require('./es6.object.prevent-extensions');
-require('./es6.object.is-frozen');
-require('./es6.object.is-sealed');
-require('./es6.object.is-extensible');
-require('./es6.function.bind');
-require('./es6.array.is-array');
-require('./es6.array.join');
-require('./es6.array.slice');
-require('./es6.array.sort');
-require('./es6.array.for-each');
-require('./es6.array.map');
-require('./es6.array.filter');
-require('./es6.array.some');
-require('./es6.array.every');
-require('./es6.array.reduce');
-require('./es6.array.reduce-right');
-require('./es6.array.index-of');
-require('./es6.array.last-index-of');
-require('./es6.date.now');
-require('./es6.date.to-iso-string');
-require('./es6.date.to-json');
-require('./es6.parse-int');
-require('./es6.parse-float');
-require('./es6.string.trim');
-require('./es6.regexp.to-string'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.copy-within.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.copy-within.js
deleted file mode 100644
index 027f7550e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.copy-within.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
-var $export = require('./_export');
-
-$export($export.P, 'Array', {copyWithin: require('./_array-copy-within')});
-
-require('./_add-to-unscopables')('copyWithin'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.every.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.every.js
deleted file mode 100644
index fb0673673..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.every.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $every = require('./_array-methods')(4);
-
-$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {
- // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
- every: function every(callbackfn /* , thisArg */){
- return $every(this, callbackfn, arguments[1]);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.fill.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.fill.js
deleted file mode 100644
index f075c0018..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.fill.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
-var $export = require('./_export');
-
-$export($export.P, 'Array', {fill: require('./_array-fill')});
-
-require('./_add-to-unscopables')('fill'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.filter.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.filter.js
deleted file mode 100644
index f60951d37..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.filter.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $filter = require('./_array-methods')(2);
-
-$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {
- // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
- filter: function filter(callbackfn /* , thisArg */){
- return $filter(this, callbackfn, arguments[1]);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.find-index.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.find-index.js
deleted file mode 100644
index 530907412..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.find-index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
-var $export = require('./_export')
- , $find = require('./_array-methods')(6)
- , KEY = 'findIndex'
- , forced = true;
-// Shouldn't skip holes
-if(KEY in [])Array(1)[KEY](function(){ forced = false; });
-$export($export.P + $export.F * forced, 'Array', {
- findIndex: function findIndex(callbackfn/*, that = undefined */){
- return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- }
-});
-require('./_add-to-unscopables')(KEY); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.find.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.find.js
deleted file mode 100644
index 90a9acfbe..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.find.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
-var $export = require('./_export')
- , $find = require('./_array-methods')(5)
- , KEY = 'find'
- , forced = true;
-// Shouldn't skip holes
-if(KEY in [])Array(1)[KEY](function(){ forced = false; });
-$export($export.P + $export.F * forced, 'Array', {
- find: function find(callbackfn/*, that = undefined */){
- return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- }
-});
-require('./_add-to-unscopables')(KEY); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.for-each.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.for-each.js
deleted file mode 100644
index f814fe4ea..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.for-each.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $forEach = require('./_array-methods')(0)
- , STRICT = require('./_strict-method')([].forEach, true);
-
-$export($export.P + $export.F * !STRICT, 'Array', {
- // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
- forEach: function forEach(callbackfn /* , thisArg */){
- return $forEach(this, callbackfn, arguments[1]);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.from.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.from.js
deleted file mode 100644
index 69e5d4a62..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.from.js
+++ /dev/null
@@ -1,37 +0,0 @@
-'use strict';
-var ctx = require('./_ctx')
- , $export = require('./_export')
- , toObject = require('./_to-object')
- , call = require('./_iter-call')
- , isArrayIter = require('./_is-array-iter')
- , toLength = require('./_to-length')
- , createProperty = require('./_create-property')
- , getIterFn = require('./core.get-iterator-method');
-
-$export($export.S + $export.F * !require('./_iter-detect')(function(iter){ Array.from(iter); }), 'Array', {
- // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
- from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
- var O = toObject(arrayLike)
- , C = typeof this == 'function' ? this : Array
- , aLen = arguments.length
- , mapfn = aLen > 1 ? arguments[1] : undefined
- , mapping = mapfn !== undefined
- , index = 0
- , iterFn = getIterFn(O)
- , length, result, step, iterator;
- if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
- // if object isn't iterable or it's array with default iterator - use simple case
- if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){
- for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){
- createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
- }
- } else {
- length = toLength(O.length);
- for(result = new C(length); length > index; index++){
- createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
- }
- }
- result.length = index;
- return result;
- }
-});
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.index-of.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.index-of.js
deleted file mode 100644
index 903763157..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.index-of.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $indexOf = require('./_array-includes')(false)
- , $native = [].indexOf
- , NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
-
-$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {
- // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
- indexOf: function indexOf(searchElement /*, fromIndex = 0 */){
- return NEGATIVE_ZERO
- // convert -0 to +0
- ? $native.apply(this, arguments) || 0
- : $indexOf(this, searchElement, arguments[1]);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.is-array.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.is-array.js
deleted file mode 100644
index cd5d8c192..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.is-array.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
-var $export = require('./_export');
-
-$export($export.S, 'Array', {isArray: require('./_is-array')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js
deleted file mode 100644
index 100b344d7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js
+++ /dev/null
@@ -1,34 +0,0 @@
-'use strict';
-var addToUnscopables = require('./_add-to-unscopables')
- , step = require('./_iter-step')
- , Iterators = require('./_iterators')
- , toIObject = require('./_to-iobject');
-
-// 22.1.3.4 Array.prototype.entries()
-// 22.1.3.13 Array.prototype.keys()
-// 22.1.3.29 Array.prototype.values()
-// 22.1.3.30 Array.prototype[@@iterator]()
-module.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){
- this._t = toIObject(iterated); // target
- this._i = 0; // next index
- this._k = kind; // kind
-// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
-}, function(){
- var O = this._t
- , kind = this._k
- , index = this._i++;
- if(!O || index >= O.length){
- this._t = undefined;
- return step(1);
- }
- if(kind == 'keys' )return step(0, index);
- if(kind == 'values')return step(0, O[index]);
- return step(0, [index, O[index]]);
-}, 'values');
-
-// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
-Iterators.Arguments = Iterators.Array;
-
-addToUnscopables('keys');
-addToUnscopables('values');
-addToUnscopables('entries'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.join.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.join.js
deleted file mode 100644
index 1bb656538..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.join.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-// 22.1.3.13 Array.prototype.join(separator)
-var $export = require('./_export')
- , toIObject = require('./_to-iobject')
- , arrayJoin = [].join;
-
-// fallback for not array-like strings
-$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {
- join: function join(separator){
- return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.last-index-of.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.last-index-of.js
deleted file mode 100644
index 75c1eabfa..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.last-index-of.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , toIObject = require('./_to-iobject')
- , toInteger = require('./_to-integer')
- , toLength = require('./_to-length')
- , $native = [].lastIndexOf
- , NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;
-
-$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {
- // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
- lastIndexOf: function lastIndexOf(searchElement /*, fromIndex = @[*-1] */){
- // convert -0 to +0
- if(NEGATIVE_ZERO)return $native.apply(this, arguments) || 0;
- var O = toIObject(this)
- , length = toLength(O.length)
- , index = length - 1;
- if(arguments.length > 1)index = Math.min(index, toInteger(arguments[1]));
- if(index < 0)index = length + index;
- for(;index >= 0; index--)if(index in O)if(O[index] === searchElement)return index || 0;
- return -1;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.map.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.map.js
deleted file mode 100644
index f70089f3e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.map.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $map = require('./_array-methods')(1);
-
-$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {
- // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
- map: function map(callbackfn /* , thisArg */){
- return $map(this, callbackfn, arguments[1]);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.of.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.of.js
deleted file mode 100644
index dd4e1f816..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.of.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , createProperty = require('./_create-property');
-
-// WebKit Array.of isn't generic
-$export($export.S + $export.F * require('./_fails')(function(){
- function F(){}
- return !(Array.of.call(F) instanceof F);
-}), 'Array', {
- // 22.1.2.3 Array.of( ...items)
- of: function of(/* ...args */){
- var index = 0
- , aLen = arguments.length
- , result = new (typeof this == 'function' ? this : Array)(aLen);
- while(aLen > index)createProperty(result, index, arguments[index++]);
- result.length = aLen;
- return result;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.reduce-right.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.reduce-right.js
deleted file mode 100644
index 0c64d85e8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.reduce-right.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $reduce = require('./_array-reduce');
-
-$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {
- // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
- reduceRight: function reduceRight(callbackfn /* , initialValue */){
- return $reduce(this, callbackfn, arguments.length, arguments[1], true);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.reduce.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.reduce.js
deleted file mode 100644
index 491f7d252..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.reduce.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $reduce = require('./_array-reduce');
-
-$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {
- // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
- reduce: function reduce(callbackfn /* , initialValue */){
- return $reduce(this, callbackfn, arguments.length, arguments[1], false);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.slice.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.slice.js
deleted file mode 100644
index 610bd3990..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.slice.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , html = require('./_html')
- , cof = require('./_cof')
- , toIndex = require('./_to-index')
- , toLength = require('./_to-length')
- , arraySlice = [].slice;
-
-// fallback for not array-like ES3 strings and DOM objects
-$export($export.P + $export.F * require('./_fails')(function(){
- if(html)arraySlice.call(html);
-}), 'Array', {
- slice: function slice(begin, end){
- var len = toLength(this.length)
- , klass = cof(this);
- end = end === undefined ? len : end;
- if(klass == 'Array')return arraySlice.call(this, begin, end);
- var start = toIndex(begin, len)
- , upTo = toIndex(end, len)
- , size = toLength(upTo - start)
- , cloned = Array(size)
- , i = 0;
- for(; i < size; i++)cloned[i] = klass == 'String'
- ? this.charAt(start + i)
- : this[start + i];
- return cloned;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.some.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.some.js
deleted file mode 100644
index fa1095edc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.some.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $some = require('./_array-methods')(3);
-
-$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {
- // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
- some: function some(callbackfn /* , thisArg */){
- return $some(this, callbackfn, arguments[1]);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.sort.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.sort.js
deleted file mode 100644
index 7de1fe77f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.sort.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , aFunction = require('./_a-function')
- , toObject = require('./_to-object')
- , fails = require('./_fails')
- , $sort = [].sort
- , test = [1, 2, 3];
-
-$export($export.P + $export.F * (fails(function(){
- // IE8-
- test.sort(undefined);
-}) || !fails(function(){
- // V8 bug
- test.sort(null);
- // Old WebKit
-}) || !require('./_strict-method')($sort)), 'Array', {
- // 22.1.3.25 Array.prototype.sort(comparefn)
- sort: function sort(comparefn){
- return comparefn === undefined
- ? $sort.call(toObject(this))
- : $sort.call(toObject(this), aFunction(comparefn));
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.species.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.species.js
deleted file mode 100644
index d63c738f7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.species.js
+++ /dev/null
@@ -1 +0,0 @@
-require('./_set-species')('Array'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.now.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.now.js
deleted file mode 100644
index c3ee5fd7f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.now.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.3.3.1 / 15.9.4.4 Date.now()
-var $export = require('./_export');
-
-$export($export.S, 'Date', {now: function(){ return new Date().getTime(); }}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.to-iso-string.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.to-iso-string.js
deleted file mode 100644
index 2426c5898..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.to-iso-string.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
-var $export = require('./_export')
- , fails = require('./_fails')
- , getTime = Date.prototype.getTime;
-
-var lz = function(num){
- return num > 9 ? num : '0' + num;
-};
-
-// PhantomJS / old WebKit has a broken implementations
-$export($export.P + $export.F * (fails(function(){
- return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';
-}) || !fails(function(){
- new Date(NaN).toISOString();
-})), 'Date', {
- toISOString: function toISOString(){
- if(!isFinite(getTime.call(this)))throw RangeError('Invalid time value');
- var d = this
- , y = d.getUTCFullYear()
- , m = d.getUTCMilliseconds()
- , s = y < 0 ? '-' : y > 9999 ? '+' : '';
- return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
- '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
- 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
- ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.to-json.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.to-json.js
deleted file mode 100644
index eb419d03f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.to-json.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , toObject = require('./_to-object')
- , toPrimitive = require('./_to-primitive');
-
-$export($export.P + $export.F * require('./_fails')(function(){
- return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({toISOString: function(){ return 1; }}) !== 1;
-}), 'Date', {
- toJSON: function toJSON(key){
- var O = toObject(this)
- , pv = toPrimitive(O);
- return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.to-primitive.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.to-primitive.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.to-primitive.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.to-string.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.to-string.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.date.to-string.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.function.bind.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.function.bind.js
deleted file mode 100644
index 85f103799..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.function.bind.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
-var $export = require('./_export');
-
-$export($export.P, 'Function', {bind: require('./_bind')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.function.has-instance.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.function.has-instance.js
deleted file mode 100644
index ae294b1f1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.function.has-instance.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-var isObject = require('./_is-object')
- , getPrototypeOf = require('./_object-gpo')
- , HAS_INSTANCE = require('./_wks')('hasInstance')
- , FunctionProto = Function.prototype;
-// 19.2.3.6 Function.prototype[@@hasInstance](V)
-if(!(HAS_INSTANCE in FunctionProto))require('./_object-dp').f(FunctionProto, HAS_INSTANCE, {value: function(O){
- if(typeof this != 'function' || !isObject(O))return false;
- if(!isObject(this.prototype))return O instanceof this;
- // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
- while(O = getPrototypeOf(O))if(this.prototype === O)return true;
- return false;
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.function.name.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.function.name.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.function.name.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.map.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.map.js
deleted file mode 100644
index a166430fc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.map.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-var strong = require('./_collection-strong');
-
-// 23.1 Map Objects
-module.exports = require('./_collection')('Map', function(get){
- return function Map(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
-}, {
- // 23.1.3.6 Map.prototype.get(key)
- get: function get(key){
- var entry = strong.getEntry(this, key);
- return entry && entry.v;
- },
- // 23.1.3.9 Map.prototype.set(key, value)
- set: function set(key, value){
- return strong.def(this, key === 0 ? 0 : key, value);
- }
-}, strong, true); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.acosh.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.acosh.js
deleted file mode 100644
index 459f11990..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.acosh.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// 20.2.2.3 Math.acosh(x)
-var $export = require('./_export')
- , log1p = require('./_math-log1p')
- , sqrt = Math.sqrt
- , $acosh = Math.acosh;
-
-$export($export.S + $export.F * !($acosh
- // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
- && Math.floor($acosh(Number.MAX_VALUE)) == 710
- // Tor Browser bug: Math.acosh(Infinity) -> NaN
- && $acosh(Infinity) == Infinity
-), 'Math', {
- acosh: function acosh(x){
- return (x = +x) < 1 ? NaN : x > 94906265.62425156
- ? Math.log(x) + Math.LN2
- : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.asinh.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.asinh.js
deleted file mode 100644
index e6a74abb5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.asinh.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// 20.2.2.5 Math.asinh(x)
-var $export = require('./_export')
- , $asinh = Math.asinh;
-
-function asinh(x){
- return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
-}
-
-// Tor Browser bug: Math.asinh(0) -> -0
-$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', {asinh: asinh}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.atanh.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.atanh.js
deleted file mode 100644
index 94575d9f0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.atanh.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// 20.2.2.7 Math.atanh(x)
-var $export = require('./_export')
- , $atanh = Math.atanh;
-
-// Tor Browser bug: Math.atanh(-0) -> 0
-$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {
- atanh: function atanh(x){
- return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.cbrt.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.cbrt.js
deleted file mode 100644
index 7ca7daea8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.cbrt.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// 20.2.2.9 Math.cbrt(x)
-var $export = require('./_export')
- , sign = require('./_math-sign');
-
-$export($export.S, 'Math', {
- cbrt: function cbrt(x){
- return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.clz32.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.clz32.js
deleted file mode 100644
index 1ec534bd0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.clz32.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 20.2.2.11 Math.clz32(x)
-var $export = require('./_export');
-
-$export($export.S, 'Math', {
- clz32: function clz32(x){
- return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.cosh.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.cosh.js
deleted file mode 100644
index 4f2b21552..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.cosh.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// 20.2.2.12 Math.cosh(x)
-var $export = require('./_export')
- , exp = Math.exp;
-
-$export($export.S, 'Math', {
- cosh: function cosh(x){
- return (exp(x = +x) + exp(-x)) / 2;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.expm1.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.expm1.js
deleted file mode 100644
index 9762b7cd0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.expm1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// 20.2.2.14 Math.expm1(x)
-var $export = require('./_export')
- , $expm1 = require('./_math-expm1');
-
-$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', {expm1: $expm1}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.fround.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.fround.js
deleted file mode 100644
index 01a88862e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.fround.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// 20.2.2.16 Math.fround(x)
-var $export = require('./_export')
- , sign = require('./_math-sign')
- , pow = Math.pow
- , EPSILON = pow(2, -52)
- , EPSILON32 = pow(2, -23)
- , MAX32 = pow(2, 127) * (2 - EPSILON32)
- , MIN32 = pow(2, -126);
-
-var roundTiesToEven = function(n){
- return n + 1 / EPSILON - 1 / EPSILON;
-};
-
-
-$export($export.S, 'Math', {
- fround: function fround(x){
- var $abs = Math.abs(x)
- , $sign = sign(x)
- , a, result;
- if($abs < MIN32)return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
- a = (1 + EPSILON32 / EPSILON) * $abs;
- result = a - (a - $abs);
- if(result > MAX32 || result != result)return $sign * Infinity;
- return $sign * result;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.hypot.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.hypot.js
deleted file mode 100644
index 508521b69..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.hypot.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
-var $export = require('./_export')
- , abs = Math.abs;
-
-$export($export.S, 'Math', {
- hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars
- var sum = 0
- , i = 0
- , aLen = arguments.length
- , larg = 0
- , arg, div;
- while(i < aLen){
- arg = abs(arguments[i++]);
- if(larg < arg){
- div = larg / arg;
- sum = sum * div * div + 1;
- larg = arg;
- } else if(arg > 0){
- div = arg / larg;
- sum += div * div;
- } else sum += arg;
- }
- return larg === Infinity ? Infinity : larg * Math.sqrt(sum);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.imul.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.imul.js
deleted file mode 100644
index 7f4111d27..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.imul.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// 20.2.2.18 Math.imul(x, y)
-var $export = require('./_export')
- , $imul = Math.imul;
-
-// some WebKit versions fails with big numbers, some has wrong arity
-$export($export.S + $export.F * require('./_fails')(function(){
- return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
-}), 'Math', {
- imul: function imul(x, y){
- var UINT16 = 0xffff
- , xn = +x
- , yn = +y
- , xl = UINT16 & xn
- , yl = UINT16 & yn;
- return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.log10.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.log10.js
deleted file mode 100644
index 791dfc353..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.log10.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 20.2.2.21 Math.log10(x)
-var $export = require('./_export');
-
-$export($export.S, 'Math', {
- log10: function log10(x){
- return Math.log(x) / Math.LN10;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.log1p.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.log1p.js
deleted file mode 100644
index a1de0258d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.log1p.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.2.2.20 Math.log1p(x)
-var $export = require('./_export');
-
-$export($export.S, 'Math', {log1p: require('./_math-log1p')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.log2.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.log2.js
deleted file mode 100644
index c4ba7819c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.log2.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 20.2.2.22 Math.log2(x)
-var $export = require('./_export');
-
-$export($export.S, 'Math', {
- log2: function log2(x){
- return Math.log(x) / Math.LN2;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.sign.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.sign.js
deleted file mode 100644
index 5dbee6f66..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.sign.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.2.2.28 Math.sign(x)
-var $export = require('./_export');
-
-$export($export.S, 'Math', {sign: require('./_math-sign')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.sinh.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.sinh.js
deleted file mode 100644
index 5464ae3e6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.sinh.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// 20.2.2.30 Math.sinh(x)
-var $export = require('./_export')
- , expm1 = require('./_math-expm1')
- , exp = Math.exp;
-
-// V8 near Chromium 38 has a problem with very small numbers
-$export($export.S + $export.F * require('./_fails')(function(){
- return !Math.sinh(-2e-17) != -2e-17;
-}), 'Math', {
- sinh: function sinh(x){
- return Math.abs(x = +x) < 1
- ? (expm1(x) - expm1(-x)) / 2
- : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.tanh.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.tanh.js
deleted file mode 100644
index d2f10778c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.tanh.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// 20.2.2.33 Math.tanh(x)
-var $export = require('./_export')
- , expm1 = require('./_math-expm1')
- , exp = Math.exp;
-
-$export($export.S, 'Math', {
- tanh: function tanh(x){
- var a = expm1(x = +x)
- , b = expm1(-x);
- return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.trunc.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.trunc.js
deleted file mode 100644
index 2e42563b6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.math.trunc.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 20.2.2.34 Math.trunc(x)
-var $export = require('./_export');
-
-$export($export.S, 'Math', {
- trunc: function trunc(it){
- return (it > 0 ? Math.floor : Math.ceil)(it);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.constructor.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.constructor.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.constructor.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.epsilon.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.epsilon.js
deleted file mode 100644
index d25898ccc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.epsilon.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.1.2.1 Number.EPSILON
-var $export = require('./_export');
-
-$export($export.S, 'Number', {EPSILON: Math.pow(2, -52)}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.is-finite.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.is-finite.js
deleted file mode 100644
index c8c42753b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.is-finite.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// 20.1.2.2 Number.isFinite(number)
-var $export = require('./_export')
- , _isFinite = require('./_global').isFinite;
-
-$export($export.S, 'Number', {
- isFinite: function isFinite(it){
- return typeof it == 'number' && _isFinite(it);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.is-integer.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.is-integer.js
deleted file mode 100644
index dc0f8f009..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.is-integer.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.1.2.3 Number.isInteger(number)
-var $export = require('./_export');
-
-$export($export.S, 'Number', {isInteger: require('./_is-integer')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.is-nan.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.is-nan.js
deleted file mode 100644
index 5fedf8252..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.is-nan.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 20.1.2.4 Number.isNaN(number)
-var $export = require('./_export');
-
-$export($export.S, 'Number', {
- isNaN: function isNaN(number){
- return number != number;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.is-safe-integer.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.is-safe-integer.js
deleted file mode 100644
index 92193e2ec..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.is-safe-integer.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// 20.1.2.5 Number.isSafeInteger(number)
-var $export = require('./_export')
- , isInteger = require('./_is-integer')
- , abs = Math.abs;
-
-$export($export.S, 'Number', {
- isSafeInteger: function isSafeInteger(number){
- return isInteger(number) && abs(number) <= 0x1fffffffffffff;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.max-safe-integer.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.max-safe-integer.js
deleted file mode 100644
index b9d7f2a77..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.max-safe-integer.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.1.2.6 Number.MAX_SAFE_INTEGER
-var $export = require('./_export');
-
-$export($export.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.min-safe-integer.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.min-safe-integer.js
deleted file mode 100644
index 9a2beeb3c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.min-safe-integer.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.1.2.10 Number.MIN_SAFE_INTEGER
-var $export = require('./_export');
-
-$export($export.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.parse-float.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.parse-float.js
deleted file mode 100644
index 7ee14da03..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.parse-float.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var $export = require('./_export')
- , $parseFloat = require('./_parse-float');
-// 20.1.2.12 Number.parseFloat(string)
-$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', {parseFloat: $parseFloat}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.parse-int.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.parse-int.js
deleted file mode 100644
index 59bf14459..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.parse-int.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var $export = require('./_export')
- , $parseInt = require('./_parse-int');
-// 20.1.2.13 Number.parseInt(string, radix)
-$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', {parseInt: $parseInt}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.to-fixed.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.to-fixed.js
deleted file mode 100644
index c54970d6a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.to-fixed.js
+++ /dev/null
@@ -1,113 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , toInteger = require('./_to-integer')
- , aNumberValue = require('./_a-number-value')
- , repeat = require('./_string-repeat')
- , $toFixed = 1..toFixed
- , floor = Math.floor
- , data = [0, 0, 0, 0, 0, 0]
- , ERROR = 'Number.toFixed: incorrect invocation!'
- , ZERO = '0';
-
-var multiply = function(n, c){
- var i = -1
- , c2 = c;
- while(++i < 6){
- c2 += n * data[i];
- data[i] = c2 % 1e7;
- c2 = floor(c2 / 1e7);
- }
-};
-var divide = function(n){
- var i = 6
- , c = 0;
- while(--i >= 0){
- c += data[i];
- data[i] = floor(c / n);
- c = (c % n) * 1e7;
- }
-};
-var numToString = function(){
- var i = 6
- , s = '';
- while(--i >= 0){
- if(s !== '' || i === 0 || data[i] !== 0){
- var t = String(data[i]);
- s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;
- }
- } return s;
-};
-var pow = function(x, n, acc){
- return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
-};
-var log = function(x){
- var n = 0
- , x2 = x;
- while(x2 >= 4096){
- n += 12;
- x2 /= 4096;
- }
- while(x2 >= 2){
- n += 1;
- x2 /= 2;
- } return n;
-};
-
-$export($export.P + $export.F * (!!$toFixed && (
- 0.00008.toFixed(3) !== '0.000' ||
- 0.9.toFixed(0) !== '1' ||
- 1.255.toFixed(2) !== '1.25' ||
- 1000000000000000128..toFixed(0) !== '1000000000000000128'
-) || !require('./_fails')(function(){
- // V8 ~ Android 4.3-
- $toFixed.call({});
-})), 'Number', {
- toFixed: function toFixed(fractionDigits){
- var x = aNumberValue(this, ERROR)
- , f = toInteger(fractionDigits)
- , s = ''
- , m = ZERO
- , e, z, j, k;
- if(f < 0 || f > 20)throw RangeError(ERROR);
- if(x != x)return 'NaN';
- if(x <= -1e21 || x >= 1e21)return String(x);
- if(x < 0){
- s = '-';
- x = -x;
- }
- if(x > 1e-21){
- e = log(x * pow(2, 69, 1)) - 69;
- z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);
- z *= 0x10000000000000;
- e = 52 - e;
- if(e > 0){
- multiply(0, z);
- j = f;
- while(j >= 7){
- multiply(1e7, 0);
- j -= 7;
- }
- multiply(pow(10, j, 1), 0);
- j = e - 1;
- while(j >= 23){
- divide(1 << 23);
- j -= 23;
- }
- divide(1 << j);
- multiply(1, 1);
- divide(2);
- m = numToString();
- } else {
- multiply(0, z);
- multiply(1 << -e, 0);
- m = numToString() + repeat.call(ZERO, f);
- }
- }
- if(f > 0){
- k = m.length;
- m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));
- } else {
- m = s + m;
- } return m;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.to-precision.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.to-precision.js
deleted file mode 100644
index 903dacdf0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.number.to-precision.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $fails = require('./_fails')
- , aNumberValue = require('./_a-number-value')
- , $toPrecision = 1..toPrecision;
-
-$export($export.P + $export.F * ($fails(function(){
- // IE7-
- return $toPrecision.call(1, undefined) !== '1';
-}) || !$fails(function(){
- // V8 ~ Android 4.3-
- $toPrecision.call({});
-})), 'Number', {
- toPrecision: function toPrecision(precision){
- var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');
- return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js
deleted file mode 100644
index 13eda2cb8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 19.1.3.1 Object.assign(target, source)
-var $export = require('./_export');
-
-$export($export.S + $export.F, 'Object', {assign: require('./_object-assign')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js
deleted file mode 100644
index 17e4b2842..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var $export = require('./_export')
-// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
-$export($export.S, 'Object', {create: require('./_object-create')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-properties.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-properties.js
deleted file mode 100644
index 183eec6f5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-properties.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var $export = require('./_export');
-// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
-$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperties: require('./_object-dps')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js
deleted file mode 100644
index 71807cc05..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var $export = require('./_export');
-// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
-$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.freeze.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.freeze.js
deleted file mode 100644
index 34b510842..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.freeze.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// 19.1.2.5 Object.freeze(O)
-var isObject = require('./_is-object')
- , meta = require('./_meta').onFreeze;
-
-require('./_object-sap')('freeze', function($freeze){
- return function freeze(it){
- return $freeze && isObject(it) ? $freeze(meta(it)) : it;
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js
deleted file mode 100644
index 60c69913a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
-var toIObject = require('./_to-iobject')
- , $getOwnPropertyDescriptor = require('./_object-gopd').f;
-
-require('./_object-sap')('getOwnPropertyDescriptor', function(){
- return function getOwnPropertyDescriptor(it, key){
- return $getOwnPropertyDescriptor(toIObject(it), key);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-own-property-names.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-own-property-names.js
deleted file mode 100644
index 91dd110d2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-own-property-names.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 19.1.2.7 Object.getOwnPropertyNames(O)
-require('./_object-sap')('getOwnPropertyNames', function(){
- return require('./_object-gopn-ext').f;
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-prototype-of.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-prototype-of.js
deleted file mode 100644
index b124e28fa..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-prototype-of.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// 19.1.2.9 Object.getPrototypeOf(O)
-var toObject = require('./_to-object')
- , $getPrototypeOf = require('./_object-gpo');
-
-require('./_object-sap')('getPrototypeOf', function(){
- return function getPrototypeOf(it){
- return $getPrototypeOf(toObject(it));
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.is-extensible.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.is-extensible.js
deleted file mode 100644
index 94bf8a815..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.is-extensible.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 19.1.2.11 Object.isExtensible(O)
-var isObject = require('./_is-object');
-
-require('./_object-sap')('isExtensible', function($isExtensible){
- return function isExtensible(it){
- return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.is-frozen.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.is-frozen.js
deleted file mode 100644
index 4bdfd11b1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.is-frozen.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 19.1.2.12 Object.isFrozen(O)
-var isObject = require('./_is-object');
-
-require('./_object-sap')('isFrozen', function($isFrozen){
- return function isFrozen(it){
- return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.is-sealed.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.is-sealed.js
deleted file mode 100644
index d13aa1b06..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.is-sealed.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 19.1.2.13 Object.isSealed(O)
-var isObject = require('./_is-object');
-
-require('./_object-sap')('isSealed', function($isSealed){
- return function isSealed(it){
- return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.is.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.is.js
deleted file mode 100644
index ad2994256..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.is.js
+++ /dev/null
@@ -1,3 +0,0 @@
-// 19.1.3.10 Object.is(value1, value2)
-var $export = require('./_export');
-$export($export.S, 'Object', {is: require('./_same-value')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.keys.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.keys.js
deleted file mode 100644
index bf76c07d7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.keys.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// 19.1.2.14 Object.keys(O)
-var toObject = require('./_to-object')
- , $keys = require('./_object-keys');
-
-require('./_object-sap')('keys', function(){
- return function keys(it){
- return $keys(toObject(it));
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.prevent-extensions.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.prevent-extensions.js
deleted file mode 100644
index adaff7a79..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.prevent-extensions.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// 19.1.2.15 Object.preventExtensions(O)
-var isObject = require('./_is-object')
- , meta = require('./_meta').onFreeze;
-
-require('./_object-sap')('preventExtensions', function($preventExtensions){
- return function preventExtensions(it){
- return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.seal.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.seal.js
deleted file mode 100644
index d7e4ea958..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.seal.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// 19.1.2.17 Object.seal(O)
-var isObject = require('./_is-object')
- , meta = require('./_meta').onFreeze;
-
-require('./_object-sap')('seal', function($seal){
- return function seal(it){
- return $seal && isObject(it) ? $seal(meta(it)) : it;
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js
deleted file mode 100644
index 5bbe4c068..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-// 19.1.3.19 Object.setPrototypeOf(O, proto)
-var $export = require('./_export');
-$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.to-string.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.to-string.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.to-string.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.parse-float.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.parse-float.js
deleted file mode 100644
index 5201712b1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.parse-float.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var $export = require('./_export')
- , $parseFloat = require('./_parse-float');
-// 18.2.4 parseFloat(string)
-$export($export.G + $export.F * (parseFloat != $parseFloat), {parseFloat: $parseFloat}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.parse-int.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.parse-int.js
deleted file mode 100644
index 5a2bfaff0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.parse-int.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var $export = require('./_export')
- , $parseInt = require('./_parse-int');
-// 18.2.5 parseInt(string, radix)
-$export($export.G + $export.F * (parseInt != $parseInt), {parseInt: $parseInt}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.promise.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.promise.js
deleted file mode 100644
index 262a93af1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.promise.js
+++ /dev/null
@@ -1,299 +0,0 @@
-'use strict';
-var LIBRARY = require('./_library')
- , global = require('./_global')
- , ctx = require('./_ctx')
- , classof = require('./_classof')
- , $export = require('./_export')
- , isObject = require('./_is-object')
- , aFunction = require('./_a-function')
- , anInstance = require('./_an-instance')
- , forOf = require('./_for-of')
- , speciesConstructor = require('./_species-constructor')
- , task = require('./_task').set
- , microtask = require('./_microtask')()
- , PROMISE = 'Promise'
- , TypeError = global.TypeError
- , process = global.process
- , $Promise = global[PROMISE]
- , process = global.process
- , isNode = classof(process) == 'process'
- , empty = function(){ /* empty */ }
- , Internal, GenericPromiseCapability, Wrapper;
-
-var USE_NATIVE = !!function(){
- try {
- // correct subclassing with @@species support
- var promise = $Promise.resolve(1)
- , FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function(exec){ exec(empty, empty); };
- // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
- return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;
- } catch(e){ /* empty */ }
-}();
-
-// helpers
-var sameConstructor = function(a, b){
- // with library wrapper special case
- return a === b || a === $Promise && b === Wrapper;
-};
-var isThenable = function(it){
- var then;
- return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
-};
-var newPromiseCapability = function(C){
- return sameConstructor($Promise, C)
- ? new PromiseCapability(C)
- : new GenericPromiseCapability(C);
-};
-var PromiseCapability = GenericPromiseCapability = function(C){
- var resolve, reject;
- this.promise = new C(function($$resolve, $$reject){
- if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor');
- resolve = $$resolve;
- reject = $$reject;
- });
- this.resolve = aFunction(resolve);
- this.reject = aFunction(reject);
-};
-var perform = function(exec){
- try {
- exec();
- } catch(e){
- return {error: e};
- }
-};
-var notify = function(promise, isReject){
- if(promise._n)return;
- promise._n = true;
- var chain = promise._c;
- microtask(function(){
- var value = promise._v
- , ok = promise._s == 1
- , i = 0;
- var run = function(reaction){
- var handler = ok ? reaction.ok : reaction.fail
- , resolve = reaction.resolve
- , reject = reaction.reject
- , domain = reaction.domain
- , result, then;
- try {
- if(handler){
- if(!ok){
- if(promise._h == 2)onHandleUnhandled(promise);
- promise._h = 1;
- }
- if(handler === true)result = value;
- else {
- if(domain)domain.enter();
- result = handler(value);
- if(domain)domain.exit();
- }
- if(result === reaction.promise){
- reject(TypeError('Promise-chain cycle'));
- } else if(then = isThenable(result)){
- then.call(result, resolve, reject);
- } else resolve(result);
- } else reject(value);
- } catch(e){
- reject(e);
- }
- };
- while(chain.length > i)run(chain[i++]); // variable length - can't use forEach
- promise._c = [];
- promise._n = false;
- if(isReject && !promise._h)onUnhandled(promise);
- });
-};
-var onUnhandled = function(promise){
- task.call(global, function(){
- var value = promise._v
- , abrupt, handler, console;
- if(isUnhandled(promise)){
- abrupt = perform(function(){
- if(isNode){
- process.emit('unhandledRejection', value, promise);
- } else if(handler = global.onunhandledrejection){
- handler({promise: promise, reason: value});
- } else if((console = global.console) && console.error){
- console.error('Unhandled promise rejection', value);
- }
- });
- // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
- promise._h = isNode || isUnhandled(promise) ? 2 : 1;
- } promise._a = undefined;
- if(abrupt)throw abrupt.error;
- });
-};
-var isUnhandled = function(promise){
- if(promise._h == 1)return false;
- var chain = promise._a || promise._c
- , i = 0
- , reaction;
- while(chain.length > i){
- reaction = chain[i++];
- if(reaction.fail || !isUnhandled(reaction.promise))return false;
- } return true;
-};
-var onHandleUnhandled = function(promise){
- task.call(global, function(){
- var handler;
- if(isNode){
- process.emit('rejectionHandled', promise);
- } else if(handler = global.onrejectionhandled){
- handler({promise: promise, reason: promise._v});
- }
- });
-};
-var $reject = function(value){
- var promise = this;
- if(promise._d)return;
- promise._d = true;
- promise = promise._w || promise; // unwrap
- promise._v = value;
- promise._s = 2;
- if(!promise._a)promise._a = promise._c.slice();
- notify(promise, true);
-};
-var $resolve = function(value){
- var promise = this
- , then;
- if(promise._d)return;
- promise._d = true;
- promise = promise._w || promise; // unwrap
- try {
- if(promise === value)throw TypeError("Promise can't be resolved itself");
- if(then = isThenable(value)){
- microtask(function(){
- var wrapper = {_w: promise, _d: false}; // wrap
- try {
- then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
- } catch(e){
- $reject.call(wrapper, e);
- }
- });
- } else {
- promise._v = value;
- promise._s = 1;
- notify(promise, false);
- }
- } catch(e){
- $reject.call({_w: promise, _d: false}, e); // wrap
- }
-};
-
-// constructor polyfill
-if(!USE_NATIVE){
- // 25.4.3.1 Promise(executor)
- $Promise = function Promise(executor){
- anInstance(this, $Promise, PROMISE, '_h');
- aFunction(executor);
- Internal.call(this);
- try {
- executor(ctx($resolve, this, 1), ctx($reject, this, 1));
- } catch(err){
- $reject.call(this, err);
- }
- };
- Internal = function Promise(executor){
- this._c = []; // <- awaiting reactions
- this._a = undefined; // <- checked in isUnhandled reactions
- this._s = 0; // <- state
- this._d = false; // <- done
- this._v = undefined; // <- value
- this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
- this._n = false; // <- notify
- };
- Internal.prototype = require('./_redefine-all')($Promise.prototype, {
- // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
- then: function then(onFulfilled, onRejected){
- var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
- reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
- reaction.fail = typeof onRejected == 'function' && onRejected;
- reaction.domain = isNode ? process.domain : undefined;
- this._c.push(reaction);
- if(this._a)this._a.push(reaction);
- if(this._s)notify(this, false);
- return reaction.promise;
- },
- // 25.4.5.1 Promise.prototype.catch(onRejected)
- 'catch': function(onRejected){
- return this.then(undefined, onRejected);
- }
- });
- PromiseCapability = function(){
- var promise = new Internal;
- this.promise = promise;
- this.resolve = ctx($resolve, promise, 1);
- this.reject = ctx($reject, promise, 1);
- };
-}
-
-$export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: $Promise});
-require('./_set-to-string-tag')($Promise, PROMISE);
-require('./_set-species')(PROMISE);
-Wrapper = require('./_core')[PROMISE];
-
-// statics
-$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
- // 25.4.4.5 Promise.reject(r)
- reject: function reject(r){
- var capability = newPromiseCapability(this)
- , $$reject = capability.reject;
- $$reject(r);
- return capability.promise;
- }
-});
-$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
- // 25.4.4.6 Promise.resolve(x)
- resolve: function resolve(x){
- // instanceof instead of internal slot check because we should fix it without replacement native Promise core
- if(x instanceof $Promise && sameConstructor(x.constructor, this))return x;
- var capability = newPromiseCapability(this)
- , $$resolve = capability.resolve;
- $$resolve(x);
- return capability.promise;
- }
-});
-$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function(iter){
- $Promise.all(iter)['catch'](empty);
-})), PROMISE, {
- // 25.4.4.1 Promise.all(iterable)
- all: function all(iterable){
- var C = this
- , capability = newPromiseCapability(C)
- , resolve = capability.resolve
- , reject = capability.reject;
- var abrupt = perform(function(){
- var values = []
- , index = 0
- , remaining = 1;
- forOf(iterable, false, function(promise){
- var $index = index++
- , alreadyCalled = false;
- values.push(undefined);
- remaining++;
- C.resolve(promise).then(function(value){
- if(alreadyCalled)return;
- alreadyCalled = true;
- values[$index] = value;
- --remaining || resolve(values);
- }, reject);
- });
- --remaining || resolve(values);
- });
- if(abrupt)reject(abrupt.error);
- return capability.promise;
- },
- // 25.4.4.4 Promise.race(iterable)
- race: function race(iterable){
- var C = this
- , capability = newPromiseCapability(C)
- , reject = capability.reject;
- var abrupt = perform(function(){
- forOf(iterable, false, function(promise){
- C.resolve(promise).then(capability.resolve, reject);
- });
- });
- if(abrupt)reject(abrupt.error);
- return capability.promise;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.apply.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.apply.js
deleted file mode 100644
index 24ea80f51..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.apply.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
-var $export = require('./_export')
- , aFunction = require('./_a-function')
- , anObject = require('./_an-object')
- , rApply = (require('./_global').Reflect || {}).apply
- , fApply = Function.apply;
-// MS Edge argumentsList argument is optional
-$export($export.S + $export.F * !require('./_fails')(function(){
- rApply(function(){});
-}), 'Reflect', {
- apply: function apply(target, thisArgument, argumentsList){
- var T = aFunction(target)
- , L = anObject(argumentsList);
- return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.construct.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.construct.js
deleted file mode 100644
index 96483d708..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.construct.js
+++ /dev/null
@@ -1,47 +0,0 @@
-// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
-var $export = require('./_export')
- , create = require('./_object-create')
- , aFunction = require('./_a-function')
- , anObject = require('./_an-object')
- , isObject = require('./_is-object')
- , fails = require('./_fails')
- , bind = require('./_bind')
- , rConstruct = (require('./_global').Reflect || {}).construct;
-
-// MS Edge supports only 2 arguments and argumentsList argument is optional
-// FF Nightly sets third argument as `new.target`, but does not create `this` from it
-var NEW_TARGET_BUG = fails(function(){
- function F(){}
- return !(rConstruct(function(){}, [], F) instanceof F);
-});
-var ARGS_BUG = !fails(function(){
- rConstruct(function(){});
-});
-
-$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
- construct: function construct(Target, args /*, newTarget*/){
- aFunction(Target);
- anObject(args);
- var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
- if(ARGS_BUG && !NEW_TARGET_BUG)return rConstruct(Target, args, newTarget);
- if(Target == newTarget){
- // w/o altered newTarget, optimization for 0-4 arguments
- switch(args.length){
- case 0: return new Target;
- case 1: return new Target(args[0]);
- case 2: return new Target(args[0], args[1]);
- case 3: return new Target(args[0], args[1], args[2]);
- case 4: return new Target(args[0], args[1], args[2], args[3]);
- }
- // w/o altered newTarget, lot of arguments case
- var $args = [null];
- $args.push.apply($args, args);
- return new (bind.apply(Target, $args));
- }
- // with altered newTarget, not support built-in constructors
- var proto = newTarget.prototype
- , instance = create(isObject(proto) ? proto : Object.prototype)
- , result = Function.apply.call(Target, instance, args);
- return isObject(result) ? result : instance;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.define-property.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.define-property.js
deleted file mode 100644
index 485d43c45..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.define-property.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
-var dP = require('./_object-dp')
- , $export = require('./_export')
- , anObject = require('./_an-object')
- , toPrimitive = require('./_to-primitive');
-
-// MS Edge has broken Reflect.defineProperty - throwing instead of returning false
-$export($export.S + $export.F * require('./_fails')(function(){
- Reflect.defineProperty(dP.f({}, 1, {value: 1}), 1, {value: 2});
-}), 'Reflect', {
- defineProperty: function defineProperty(target, propertyKey, attributes){
- anObject(target);
- propertyKey = toPrimitive(propertyKey, true);
- anObject(attributes);
- try {
- dP.f(target, propertyKey, attributes);
- return true;
- } catch(e){
- return false;
- }
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.delete-property.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.delete-property.js
deleted file mode 100644
index 4e8ce2078..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.delete-property.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// 26.1.4 Reflect.deleteProperty(target, propertyKey)
-var $export = require('./_export')
- , gOPD = require('./_object-gopd').f
- , anObject = require('./_an-object');
-
-$export($export.S, 'Reflect', {
- deleteProperty: function deleteProperty(target, propertyKey){
- var desc = gOPD(anObject(target), propertyKey);
- return desc && !desc.configurable ? false : delete target[propertyKey];
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.enumerate.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.enumerate.js
deleted file mode 100644
index abdb132d6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.enumerate.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-// 26.1.5 Reflect.enumerate(target)
-var $export = require('./_export')
- , anObject = require('./_an-object');
-var Enumerate = function(iterated){
- this._t = anObject(iterated); // target
- this._i = 0; // next index
- var keys = this._k = [] // keys
- , key;
- for(key in iterated)keys.push(key);
-};
-require('./_iter-create')(Enumerate, 'Object', function(){
- var that = this
- , keys = that._k
- , key;
- do {
- if(that._i >= keys.length)return {value: undefined, done: true};
- } while(!((key = keys[that._i++]) in that._t));
- return {value: key, done: false};
-});
-
-$export($export.S, 'Reflect', {
- enumerate: function enumerate(target){
- return new Enumerate(target);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.get-own-property-descriptor.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.get-own-property-descriptor.js
deleted file mode 100644
index 741a13eba..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.get-own-property-descriptor.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
-var gOPD = require('./_object-gopd')
- , $export = require('./_export')
- , anObject = require('./_an-object');
-
-$export($export.S, 'Reflect', {
- getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey){
- return gOPD.f(anObject(target), propertyKey);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.get-prototype-of.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.get-prototype-of.js
deleted file mode 100644
index 4f912d104..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.get-prototype-of.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// 26.1.8 Reflect.getPrototypeOf(target)
-var $export = require('./_export')
- , getProto = require('./_object-gpo')
- , anObject = require('./_an-object');
-
-$export($export.S, 'Reflect', {
- getPrototypeOf: function getPrototypeOf(target){
- return getProto(anObject(target));
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.get.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.get.js
deleted file mode 100644
index f8c39f500..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.get.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// 26.1.6 Reflect.get(target, propertyKey [, receiver])
-var gOPD = require('./_object-gopd')
- , getPrototypeOf = require('./_object-gpo')
- , has = require('./_has')
- , $export = require('./_export')
- , isObject = require('./_is-object')
- , anObject = require('./_an-object');
-
-function get(target, propertyKey/*, receiver*/){
- var receiver = arguments.length < 3 ? target : arguments[2]
- , desc, proto;
- if(anObject(target) === receiver)return target[propertyKey];
- if(desc = gOPD.f(target, propertyKey))return has(desc, 'value')
- ? desc.value
- : desc.get !== undefined
- ? desc.get.call(receiver)
- : undefined;
- if(isObject(proto = getPrototypeOf(target)))return get(proto, propertyKey, receiver);
-}
-
-$export($export.S, 'Reflect', {get: get}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.has.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.has.js
deleted file mode 100644
index bbb6dbcde..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.has.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 26.1.9 Reflect.has(target, propertyKey)
-var $export = require('./_export');
-
-$export($export.S, 'Reflect', {
- has: function has(target, propertyKey){
- return propertyKey in target;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.is-extensible.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.is-extensible.js
deleted file mode 100644
index ffbc2848e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.is-extensible.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// 26.1.10 Reflect.isExtensible(target)
-var $export = require('./_export')
- , anObject = require('./_an-object')
- , $isExtensible = Object.isExtensible;
-
-$export($export.S, 'Reflect', {
- isExtensible: function isExtensible(target){
- anObject(target);
- return $isExtensible ? $isExtensible(target) : true;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.own-keys.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.own-keys.js
deleted file mode 100644
index a1e5330c2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.own-keys.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 26.1.11 Reflect.ownKeys(target)
-var $export = require('./_export');
-
-$export($export.S, 'Reflect', {ownKeys: require('./_own-keys')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.prevent-extensions.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.prevent-extensions.js
deleted file mode 100644
index d3dad8ee4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.prevent-extensions.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// 26.1.12 Reflect.preventExtensions(target)
-var $export = require('./_export')
- , anObject = require('./_an-object')
- , $preventExtensions = Object.preventExtensions;
-
-$export($export.S, 'Reflect', {
- preventExtensions: function preventExtensions(target){
- anObject(target);
- try {
- if($preventExtensions)$preventExtensions(target);
- return true;
- } catch(e){
- return false;
- }
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.set-prototype-of.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.set-prototype-of.js
deleted file mode 100644
index b79d9b613..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.set-prototype-of.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// 26.1.14 Reflect.setPrototypeOf(target, proto)
-var $export = require('./_export')
- , setProto = require('./_set-proto');
-
-if(setProto)$export($export.S, 'Reflect', {
- setPrototypeOf: function setPrototypeOf(target, proto){
- setProto.check(target, proto);
- try {
- setProto.set(target, proto);
- return true;
- } catch(e){
- return false;
- }
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.set.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.set.js
deleted file mode 100644
index c6b916a2e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.reflect.set.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
-var dP = require('./_object-dp')
- , gOPD = require('./_object-gopd')
- , getPrototypeOf = require('./_object-gpo')
- , has = require('./_has')
- , $export = require('./_export')
- , createDesc = require('./_property-desc')
- , anObject = require('./_an-object')
- , isObject = require('./_is-object');
-
-function set(target, propertyKey, V/*, receiver*/){
- var receiver = arguments.length < 4 ? target : arguments[3]
- , ownDesc = gOPD.f(anObject(target), propertyKey)
- , existingDescriptor, proto;
- if(!ownDesc){
- if(isObject(proto = getPrototypeOf(target))){
- return set(proto, propertyKey, V, receiver);
- }
- ownDesc = createDesc(0);
- }
- if(has(ownDesc, 'value')){
- if(ownDesc.writable === false || !isObject(receiver))return false;
- existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);
- existingDescriptor.value = V;
- dP.f(receiver, propertyKey, existingDescriptor);
- return true;
- }
- return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
-}
-
-$export($export.S, 'Reflect', {set: set}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.constructor.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.constructor.js
deleted file mode 100644
index 7313c52b3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.constructor.js
+++ /dev/null
@@ -1 +0,0 @@
-require('./_set-species')('RegExp'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.flags.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.flags.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.flags.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.match.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.match.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.match.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.replace.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.replace.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.replace.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.search.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.search.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.search.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.split.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.split.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.split.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.to-string.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.to-string.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.regexp.to-string.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.set.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.set.js
deleted file mode 100644
index a18808818..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.set.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var strong = require('./_collection-strong');
-
-// 23.2 Set Objects
-module.exports = require('./_collection')('Set', function(get){
- return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
-}, {
- // 23.2.3.1 Set.prototype.add(value)
- add: function add(value){
- return strong.def(this, value = value === 0 ? 0 : value, value);
- }
-}, strong); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.anchor.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.anchor.js
deleted file mode 100644
index 65db25219..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.anchor.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.2 String.prototype.anchor(name)
-require('./_string-html')('anchor', function(createHTML){
- return function anchor(name){
- return createHTML(this, 'a', 'name', name);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.big.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.big.js
deleted file mode 100644
index aeeb1aba9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.big.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.3 String.prototype.big()
-require('./_string-html')('big', function(createHTML){
- return function big(){
- return createHTML(this, 'big', '', '');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.blink.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.blink.js
deleted file mode 100644
index aef8da2e3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.blink.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.4 String.prototype.blink()
-require('./_string-html')('blink', function(createHTML){
- return function blink(){
- return createHTML(this, 'blink', '', '');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.bold.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.bold.js
deleted file mode 100644
index 022cdb075..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.bold.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.5 String.prototype.bold()
-require('./_string-html')('bold', function(createHTML){
- return function bold(){
- return createHTML(this, 'b', '', '');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.code-point-at.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.code-point-at.js
deleted file mode 100644
index cf544652a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.code-point-at.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $at = require('./_string-at')(false);
-$export($export.P, 'String', {
- // 21.1.3.3 String.prototype.codePointAt(pos)
- codePointAt: function codePointAt(pos){
- return $at(this, pos);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.ends-with.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.ends-with.js
deleted file mode 100644
index 80baed9ad..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.ends-with.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
-'use strict';
-var $export = require('./_export')
- , toLength = require('./_to-length')
- , context = require('./_string-context')
- , ENDS_WITH = 'endsWith'
- , $endsWith = ''[ENDS_WITH];
-
-$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {
- endsWith: function endsWith(searchString /*, endPosition = @length */){
- var that = context(this, searchString, ENDS_WITH)
- , endPosition = arguments.length > 1 ? arguments[1] : undefined
- , len = toLength(that.length)
- , end = endPosition === undefined ? len : Math.min(toLength(endPosition), len)
- , search = String(searchString);
- return $endsWith
- ? $endsWith.call(that, search, end)
- : that.slice(end - search.length, end) === search;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.fixed.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.fixed.js
deleted file mode 100644
index d017e202a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.fixed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.6 String.prototype.fixed()
-require('./_string-html')('fixed', function(createHTML){
- return function fixed(){
- return createHTML(this, 'tt', '', '');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.fontcolor.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.fontcolor.js
deleted file mode 100644
index d40711f03..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.fontcolor.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.7 String.prototype.fontcolor(color)
-require('./_string-html')('fontcolor', function(createHTML){
- return function fontcolor(color){
- return createHTML(this, 'font', 'color', color);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.fontsize.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.fontsize.js
deleted file mode 100644
index ba3ff9809..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.fontsize.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.8 String.prototype.fontsize(size)
-require('./_string-html')('fontsize', function(createHTML){
- return function fontsize(size){
- return createHTML(this, 'font', 'size', size);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.from-code-point.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.from-code-point.js
deleted file mode 100644
index c8776d871..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.from-code-point.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var $export = require('./_export')
- , toIndex = require('./_to-index')
- , fromCharCode = String.fromCharCode
- , $fromCodePoint = String.fromCodePoint;
-
-// length should be 1, old FF problem
-$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
- // 21.1.2.2 String.fromCodePoint(...codePoints)
- fromCodePoint: function fromCodePoint(x){ // eslint-disable-line no-unused-vars
- var res = []
- , aLen = arguments.length
- , i = 0
- , code;
- while(aLen > i){
- code = +arguments[i++];
- if(toIndex(code, 0x10ffff) !== code)throw RangeError(code + ' is not a valid code point');
- res.push(code < 0x10000
- ? fromCharCode(code)
- : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
- );
- } return res.join('');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.includes.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.includes.js
deleted file mode 100644
index c6b4ee2fa..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.includes.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// 21.1.3.7 String.prototype.includes(searchString, position = 0)
-'use strict';
-var $export = require('./_export')
- , context = require('./_string-context')
- , INCLUDES = 'includes';
-
-$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {
- includes: function includes(searchString /*, position = 0 */){
- return !!~context(this, searchString, INCLUDES)
- .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.italics.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.italics.js
deleted file mode 100644
index d33efd3c4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.italics.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.9 String.prototype.italics()
-require('./_string-html')('italics', function(createHTML){
- return function italics(){
- return createHTML(this, 'i', '', '');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js
deleted file mode 100644
index ac391ee4e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-var $at = require('./_string-at')(true);
-
-// 21.1.3.27 String.prototype[@@iterator]()
-require('./_iter-define')(String, 'String', function(iterated){
- this._t = String(iterated); // target
- this._i = 0; // next index
-// 21.1.5.2.1 %StringIteratorPrototype%.next()
-}, function(){
- var O = this._t
- , index = this._i
- , point;
- if(index >= O.length)return {value: undefined, done: true};
- point = $at(O, index);
- this._i += point.length;
- return {value: point, done: false};
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.link.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.link.js
deleted file mode 100644
index 6a75c18a1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.link.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.10 String.prototype.link(url)
-require('./_string-html')('link', function(createHTML){
- return function link(url){
- return createHTML(this, 'a', 'href', url);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.raw.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.raw.js
deleted file mode 100644
index 1016acfa2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.raw.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var $export = require('./_export')
- , toIObject = require('./_to-iobject')
- , toLength = require('./_to-length');
-
-$export($export.S, 'String', {
- // 21.1.2.4 String.raw(callSite, ...substitutions)
- raw: function raw(callSite){
- var tpl = toIObject(callSite.raw)
- , len = toLength(tpl.length)
- , aLen = arguments.length
- , res = []
- , i = 0;
- while(len > i){
- res.push(String(tpl[i++]));
- if(i < aLen)res.push(String(arguments[i]));
- } return res.join('');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.repeat.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.repeat.js
deleted file mode 100644
index a054222d6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.repeat.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var $export = require('./_export');
-
-$export($export.P, 'String', {
- // 21.1.3.13 String.prototype.repeat(count)
- repeat: require('./_string-repeat')
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.small.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.small.js
deleted file mode 100644
index 51b1b30d8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.small.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.11 String.prototype.small()
-require('./_string-html')('small', function(createHTML){
- return function small(){
- return createHTML(this, 'small', '', '');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.starts-with.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.starts-with.js
deleted file mode 100644
index 017805f01..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.starts-with.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// 21.1.3.18 String.prototype.startsWith(searchString [, position ])
-'use strict';
-var $export = require('./_export')
- , toLength = require('./_to-length')
- , context = require('./_string-context')
- , STARTS_WITH = 'startsWith'
- , $startsWith = ''[STARTS_WITH];
-
-$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {
- startsWith: function startsWith(searchString /*, position = 0 */){
- var that = context(this, searchString, STARTS_WITH)
- , index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length))
- , search = String(searchString);
- return $startsWith
- ? $startsWith.call(that, search, index)
- : that.slice(index, index + search.length) === search;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.strike.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.strike.js
deleted file mode 100644
index c6287d3a5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.strike.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.12 String.prototype.strike()
-require('./_string-html')('strike', function(createHTML){
- return function strike(){
- return createHTML(this, 'strike', '', '');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.sub.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.sub.js
deleted file mode 100644
index ee18ea7ac..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.sub.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.13 String.prototype.sub()
-require('./_string-html')('sub', function(createHTML){
- return function sub(){
- return createHTML(this, 'sub', '', '');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.sup.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.sup.js
deleted file mode 100644
index a34299881..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.sup.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.14 String.prototype.sup()
-require('./_string-html')('sup', function(createHTML){
- return function sup(){
- return createHTML(this, 'sup', '', '');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.trim.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.trim.js
deleted file mode 100644
index 35f0fb0b8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.trim.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// 21.1.3.25 String.prototype.trim()
-require('./_string-trim')('trim', function($trim){
- return function trim(){
- return $trim(this, 3);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js
deleted file mode 100644
index eae491c5a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js
+++ /dev/null
@@ -1,235 +0,0 @@
-'use strict';
-// ECMAScript 6 symbols shim
-var global = require('./_global')
- , has = require('./_has')
- , DESCRIPTORS = require('./_descriptors')
- , $export = require('./_export')
- , redefine = require('./_redefine')
- , META = require('./_meta').KEY
- , $fails = require('./_fails')
- , shared = require('./_shared')
- , setToStringTag = require('./_set-to-string-tag')
- , uid = require('./_uid')
- , wks = require('./_wks')
- , wksExt = require('./_wks-ext')
- , wksDefine = require('./_wks-define')
- , keyOf = require('./_keyof')
- , enumKeys = require('./_enum-keys')
- , isArray = require('./_is-array')
- , anObject = require('./_an-object')
- , toIObject = require('./_to-iobject')
- , toPrimitive = require('./_to-primitive')
- , createDesc = require('./_property-desc')
- , _create = require('./_object-create')
- , gOPNExt = require('./_object-gopn-ext')
- , $GOPD = require('./_object-gopd')
- , $DP = require('./_object-dp')
- , $keys = require('./_object-keys')
- , gOPD = $GOPD.f
- , dP = $DP.f
- , gOPN = gOPNExt.f
- , $Symbol = global.Symbol
- , $JSON = global.JSON
- , _stringify = $JSON && $JSON.stringify
- , PROTOTYPE = 'prototype'
- , HIDDEN = wks('_hidden')
- , TO_PRIMITIVE = wks('toPrimitive')
- , isEnum = {}.propertyIsEnumerable
- , SymbolRegistry = shared('symbol-registry')
- , AllSymbols = shared('symbols')
- , OPSymbols = shared('op-symbols')
- , ObjectProto = Object[PROTOTYPE]
- , USE_NATIVE = typeof $Symbol == 'function'
- , QObject = global.QObject;
-// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
-var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
-
-// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
-var setSymbolDesc = DESCRIPTORS && $fails(function(){
- return _create(dP({}, 'a', {
- get: function(){ return dP(this, 'a', {value: 7}).a; }
- })).a != 7;
-}) ? function(it, key, D){
- var protoDesc = gOPD(ObjectProto, key);
- if(protoDesc)delete ObjectProto[key];
- dP(it, key, D);
- if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);
-} : dP;
-
-var wrap = function(tag){
- var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
- sym._k = tag;
- return sym;
-};
-
-var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){
- return typeof it == 'symbol';
-} : function(it){
- return it instanceof $Symbol;
-};
-
-var $defineProperty = function defineProperty(it, key, D){
- if(it === ObjectProto)$defineProperty(OPSymbols, key, D);
- anObject(it);
- key = toPrimitive(key, true);
- anObject(D);
- if(has(AllSymbols, key)){
- if(!D.enumerable){
- if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));
- it[HIDDEN][key] = true;
- } else {
- if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
- D = _create(D, {enumerable: createDesc(0, false)});
- } return setSymbolDesc(it, key, D);
- } return dP(it, key, D);
-};
-var $defineProperties = function defineProperties(it, P){
- anObject(it);
- var keys = enumKeys(P = toIObject(P))
- , i = 0
- , l = keys.length
- , key;
- while(l > i)$defineProperty(it, key = keys[i++], P[key]);
- return it;
-};
-var $create = function create(it, P){
- return P === undefined ? _create(it) : $defineProperties(_create(it), P);
-};
-var $propertyIsEnumerable = function propertyIsEnumerable(key){
- var E = isEnum.call(this, key = toPrimitive(key, true));
- if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;
- return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
-};
-var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
- it = toIObject(it);
- key = toPrimitive(key, true);
- if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;
- var D = gOPD(it, key);
- if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
- return D;
-};
-var $getOwnPropertyNames = function getOwnPropertyNames(it){
- var names = gOPN(toIObject(it))
- , result = []
- , i = 0
- , key;
- while(names.length > i){
- if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);
- } return result;
-};
-var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
- var IS_OP = it === ObjectProto
- , names = gOPN(IS_OP ? OPSymbols : toIObject(it))
- , result = []
- , i = 0
- , key;
- while(names.length > i){
- if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);
- } return result;
-};
-
-// 19.4.1.1 Symbol([description])
-if(!USE_NATIVE){
- $Symbol = function Symbol(){
- if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');
- var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
- var $set = function(value){
- if(this === ObjectProto)$set.call(OPSymbols, value);
- if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
- setSymbolDesc(this, tag, createDesc(1, value));
- };
- if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});
- return wrap(tag);
- };
- redefine($Symbol[PROTOTYPE], 'toString', function toString(){
- return this._k;
- });
-
- $GOPD.f = $getOwnPropertyDescriptor;
- $DP.f = $defineProperty;
- require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;
- require('./_object-pie').f = $propertyIsEnumerable;
- require('./_object-gops').f = $getOwnPropertySymbols;
-
- if(DESCRIPTORS && !require('./_library')){
- redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
- }
-
- wksExt.f = function(name){
- return wrap(wks(name));
- }
-}
-
-$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});
-
-for(var symbols = (
- // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
- 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
-).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);
-
-for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);
-
-$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
- // 19.4.2.1 Symbol.for(key)
- 'for': function(key){
- return has(SymbolRegistry, key += '')
- ? SymbolRegistry[key]
- : SymbolRegistry[key] = $Symbol(key);
- },
- // 19.4.2.5 Symbol.keyFor(sym)
- keyFor: function keyFor(key){
- if(isSymbol(key))return keyOf(SymbolRegistry, key);
- throw TypeError(key + ' is not a symbol!');
- },
- useSetter: function(){ setter = true; },
- useSimple: function(){ setter = false; }
-});
-
-$export($export.S + $export.F * !USE_NATIVE, 'Object', {
- // 19.1.2.2 Object.create(O [, Properties])
- create: $create,
- // 19.1.2.4 Object.defineProperty(O, P, Attributes)
- defineProperty: $defineProperty,
- // 19.1.2.3 Object.defineProperties(O, Properties)
- defineProperties: $defineProperties,
- // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
- getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
- // 19.1.2.7 Object.getOwnPropertyNames(O)
- getOwnPropertyNames: $getOwnPropertyNames,
- // 19.1.2.8 Object.getOwnPropertySymbols(O)
- getOwnPropertySymbols: $getOwnPropertySymbols
-});
-
-// 24.3.2 JSON.stringify(value [, replacer [, space]])
-$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){
- var S = $Symbol();
- // MS Edge converts symbol values to JSON as {}
- // WebKit converts symbol values to JSON as null
- // V8 throws on boxed symbols
- return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
-})), 'JSON', {
- stringify: function stringify(it){
- if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
- var args = [it]
- , i = 1
- , replacer, $replacer;
- while(arguments.length > i)args.push(arguments[i++]);
- replacer = args[1];
- if(typeof replacer == 'function')$replacer = replacer;
- if($replacer || !isArray(replacer))replacer = function(key, value){
- if($replacer)value = $replacer.call(this, key, value);
- if(!isSymbol(value))return value;
- };
- args[1] = replacer;
- return _stringify.apply($JSON, args);
- }
-});
-
-// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
-$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
-// 19.4.3.5 Symbol.prototype[@@toStringTag]
-setToStringTag($Symbol, 'Symbol');
-// 20.2.1.9 Math[@@toStringTag]
-setToStringTag(Math, 'Math', true);
-// 24.3.3 JSON[@@toStringTag]
-setToStringTag(global.JSON, 'JSON', true); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.array-buffer.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.array-buffer.js
deleted file mode 100644
index 9f47082c2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.array-buffer.js
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $typed = require('./_typed')
- , buffer = require('./_typed-buffer')
- , anObject = require('./_an-object')
- , toIndex = require('./_to-index')
- , toLength = require('./_to-length')
- , isObject = require('./_is-object')
- , ArrayBuffer = require('./_global').ArrayBuffer
- , speciesConstructor = require('./_species-constructor')
- , $ArrayBuffer = buffer.ArrayBuffer
- , $DataView = buffer.DataView
- , $isView = $typed.ABV && ArrayBuffer.isView
- , $slice = $ArrayBuffer.prototype.slice
- , VIEW = $typed.VIEW
- , ARRAY_BUFFER = 'ArrayBuffer';
-
-$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), {ArrayBuffer: $ArrayBuffer});
-
-$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {
- // 24.1.3.1 ArrayBuffer.isView(arg)
- isView: function isView(it){
- return $isView && $isView(it) || isObject(it) && VIEW in it;
- }
-});
-
-$export($export.P + $export.U + $export.F * require('./_fails')(function(){
- return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
-}), ARRAY_BUFFER, {
- // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
- slice: function slice(start, end){
- if($slice !== undefined && end === undefined)return $slice.call(anObject(this), start); // FF fix
- var len = anObject(this).byteLength
- , first = toIndex(start, len)
- , final = toIndex(end === undefined ? len : end, len)
- , result = new (speciesConstructor(this, $ArrayBuffer))(toLength(final - first))
- , viewS = new $DataView(this)
- , viewT = new $DataView(result)
- , index = 0;
- while(first < final){
- viewT.setUint8(index++, viewS.getUint8(first++));
- } return result;
- }
-});
-
-require('./_set-species')(ARRAY_BUFFER); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.data-view.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.data-view.js
deleted file mode 100644
index ee7b88127..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.data-view.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var $export = require('./_export');
-$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {
- DataView: require('./_typed-buffer').DataView
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.float32-array.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.float32-array.js
deleted file mode 100644
index 2c4c9a699..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.float32-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Float32', 4, function(init){
- return function Float32Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.float64-array.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.float64-array.js
deleted file mode 100644
index 4b20257f7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.float64-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Float64', 8, function(init){
- return function Float64Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.int16-array.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.int16-array.js
deleted file mode 100644
index d3f61c564..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.int16-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Int16', 2, function(init){
- return function Int16Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.int32-array.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.int32-array.js
deleted file mode 100644
index df47c1bb0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.int32-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Int32', 4, function(init){
- return function Int32Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.int8-array.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.int8-array.js
deleted file mode 100644
index da4dbf0a2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.int8-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Int8', 1, function(init){
- return function Int8Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.uint16-array.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.uint16-array.js
deleted file mode 100644
index cb335773d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.uint16-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Uint16', 2, function(init){
- return function Uint16Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.uint32-array.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.uint32-array.js
deleted file mode 100644
index 41c9e7b80..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.uint32-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Uint32', 4, function(init){
- return function Uint32Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.uint8-array.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.uint8-array.js
deleted file mode 100644
index f794f86cf..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.uint8-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Uint8', 1, function(init){
- return function Uint8Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.uint8-clamped-array.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.uint8-clamped-array.js
deleted file mode 100644
index b12304799..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.typed.uint8-clamped-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Uint8', 1, function(init){
- return function Uint8ClampedArray(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
-}, true); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.weak-map.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.weak-map.js
deleted file mode 100644
index 4109db336..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.weak-map.js
+++ /dev/null
@@ -1,56 +0,0 @@
-'use strict';
-var each = require('./_array-methods')(0)
- , redefine = require('./_redefine')
- , meta = require('./_meta')
- , assign = require('./_object-assign')
- , weak = require('./_collection-weak')
- , isObject = require('./_is-object')
- , getWeak = meta.getWeak
- , isExtensible = Object.isExtensible
- , uncaughtFrozenStore = weak.ufstore
- , tmp = {}
- , InternalMap;
-
-var wrapper = function(get){
- return function WeakMap(){
- return get(this, arguments.length > 0 ? arguments[0] : undefined);
- };
-};
-
-var methods = {
- // 23.3.3.3 WeakMap.prototype.get(key)
- get: function get(key){
- if(isObject(key)){
- var data = getWeak(key);
- if(data === true)return uncaughtFrozenStore(this).get(key);
- return data ? data[this._i] : undefined;
- }
- },
- // 23.3.3.5 WeakMap.prototype.set(key, value)
- set: function set(key, value){
- return weak.def(this, key, value);
- }
-};
-
-// 23.3 WeakMap Objects
-var $WeakMap = module.exports = require('./_collection')('WeakMap', wrapper, methods, weak, true, true);
-
-// IE11 WeakMap frozen keys fix
-if(new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){
- InternalMap = weak.getConstructor(wrapper);
- assign(InternalMap.prototype, methods);
- meta.NEED = true;
- each(['delete', 'has', 'get', 'set'], function(key){
- var proto = $WeakMap.prototype
- , method = proto[key];
- redefine(proto, key, function(a, b){
- // store frozen objects on internal weakmap shim
- if(isObject(a) && !isExtensible(a)){
- if(!this._f)this._f = new InternalMap;
- var result = this._f[key](a, b);
- return key == 'set' ? this : result;
- // store all the rest on native weakmap
- } return method.call(this, a, b);
- });
- });
-} \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.weak-set.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.weak-set.js
deleted file mode 100644
index 77d01b6ba..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.weak-set.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var weak = require('./_collection-weak');
-
-// 23.4 WeakSet Objects
-require('./_collection')('WeakSet', function(get){
- return function WeakSet(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
-}, {
- // 23.4.3.1 WeakSet.prototype.add(value)
- add: function add(value){
- return weak.def(this, value, true);
- }
-}, weak, false, true); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.array.includes.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.array.includes.js
deleted file mode 100644
index 6d5b00905..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.array.includes.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-// https://github.com/tc39/Array.prototype.includes
-var $export = require('./_export')
- , $includes = require('./_array-includes')(true);
-
-$export($export.P, 'Array', {
- includes: function includes(el /*, fromIndex = 0 */){
- return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
- }
-});
-
-require('./_add-to-unscopables')('includes'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.asap.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.asap.js
deleted file mode 100644
index b762b49ab..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.asap.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask
-var $export = require('./_export')
- , microtask = require('./_microtask')()
- , process = require('./_global').process
- , isNode = require('./_cof')(process) == 'process';
-
-$export($export.G, {
- asap: function asap(fn){
- var domain = isNode && process.domain;
- microtask(domain ? domain.bind(fn) : fn);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.error.is-error.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.error.is-error.js
deleted file mode 100644
index d6fe29dc6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.error.is-error.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// https://github.com/ljharb/proposal-is-error
-var $export = require('./_export')
- , cof = require('./_cof');
-
-$export($export.S, 'Error', {
- isError: function isError(it){
- return cof(it) === 'Error';
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.map.to-json.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.map.to-json.js
deleted file mode 100644
index 19f9b6d38..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.map.to-json.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// https://github.com/DavidBruant/Map-Set.prototype.toJSON
-var $export = require('./_export');
-
-$export($export.P + $export.R, 'Map', {toJSON: require('./_collection-to-json')('Map')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.math.iaddh.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.math.iaddh.js
deleted file mode 100644
index bb3f3d38d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.math.iaddh.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
-var $export = require('./_export');
-
-$export($export.S, 'Math', {
- iaddh: function iaddh(x0, x1, y0, y1){
- var $x0 = x0 >>> 0
- , $x1 = x1 >>> 0
- , $y0 = y0 >>> 0;
- return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.math.imulh.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.math.imulh.js
deleted file mode 100644
index a25da686a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.math.imulh.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
-var $export = require('./_export');
-
-$export($export.S, 'Math', {
- imulh: function imulh(u, v){
- var UINT16 = 0xffff
- , $u = +u
- , $v = +v
- , u0 = $u & UINT16
- , v0 = $v & UINT16
- , u1 = $u >> 16
- , v1 = $v >> 16
- , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
- return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.math.isubh.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.math.isubh.js
deleted file mode 100644
index 3814dc29c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.math.isubh.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
-var $export = require('./_export');
-
-$export($export.S, 'Math', {
- isubh: function isubh(x0, x1, y0, y1){
- var $x0 = x0 >>> 0
- , $x1 = x1 >>> 0
- , $y0 = y0 >>> 0;
- return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.math.umulh.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.math.umulh.js
deleted file mode 100644
index 0d22cf1ba..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.math.umulh.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
-var $export = require('./_export');
-
-$export($export.S, 'Math', {
- umulh: function umulh(u, v){
- var UINT16 = 0xffff
- , $u = +u
- , $v = +v
- , u0 = $u & UINT16
- , v0 = $v & UINT16
- , u1 = $u >>> 16
- , v1 = $v >>> 16
- , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
- return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.define-getter.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.define-getter.js
deleted file mode 100644
index f206e96a2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.define-getter.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , toObject = require('./_to-object')
- , aFunction = require('./_a-function')
- , $defineProperty = require('./_object-dp');
-
-// B.2.2.2 Object.prototype.__defineGetter__(P, getter)
-require('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {
- __defineGetter__: function __defineGetter__(P, getter){
- $defineProperty.f(toObject(this), P, {get: aFunction(getter), enumerable: true, configurable: true});
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.define-setter.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.define-setter.js
deleted file mode 100644
index c0f7b7000..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.define-setter.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , toObject = require('./_to-object')
- , aFunction = require('./_a-function')
- , $defineProperty = require('./_object-dp');
-
-// B.2.2.3 Object.prototype.__defineSetter__(P, setter)
-require('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {
- __defineSetter__: function __defineSetter__(P, setter){
- $defineProperty.f(toObject(this), P, {set: aFunction(setter), enumerable: true, configurable: true});
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.entries.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.entries.js
deleted file mode 100644
index cfc049dfa..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.entries.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// https://github.com/tc39/proposal-object-values-entries
-var $export = require('./_export')
- , $entries = require('./_object-to-array')(true);
-
-$export($export.S, 'Object', {
- entries: function entries(it){
- return $entries(it);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.enumerable-entries.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.enumerable-entries.js
deleted file mode 100644
index 5daa803b1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.enumerable-entries.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// https://github.com/leobalter/object-enumerables
-var $export = require('./_export')
- , toObject = require('./_to-object');
-
-$export($export.S, 'Object', {
- enumerableEntries: function enumerableEntries(O){
- var T = toObject(O)
- , properties = [];
- for(var key in T)properties.push([key, T[key]]);
- return properties;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.enumerable-keys.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.enumerable-keys.js
deleted file mode 100644
index 791ec1849..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.enumerable-keys.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// https://github.com/leobalter/object-enumerables
-var $export = require('./_export')
- , toObject = require('./_to-object');
-
-$export($export.S, 'Object', {
- enumerableKeys: function enumerableKeys(O){
- var T = toObject(O)
- , properties = [];
- for(var key in T)properties.push(key);
- return properties;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.enumerable-values.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.enumerable-values.js
deleted file mode 100644
index 1d1bfaa72..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.enumerable-values.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// https://github.com/leobalter/object-enumerables
-var $export = require('./_export')
- , toObject = require('./_to-object');
-
-$export($export.S, 'Object', {
- enumerableValues: function enumerableValues(O){
- var T = toObject(O)
- , properties = [];
- for(var key in T)properties.push(T[key]);
- return properties;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js
deleted file mode 100644
index 0242b7a0c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// https://github.com/tc39/proposal-object-getownpropertydescriptors
-var $export = require('./_export')
- , ownKeys = require('./_own-keys')
- , toIObject = require('./_to-iobject')
- , gOPD = require('./_object-gopd')
- , createProperty = require('./_create-property');
-
-$export($export.S, 'Object', {
- getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){
- var O = toIObject(object)
- , getDesc = gOPD.f
- , keys = ownKeys(O)
- , result = {}
- , i = 0
- , key;
- while(keys.length > i)createProperty(result, key = keys[i++], getDesc(O, key));
- return result;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.lookup-getter.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.lookup-getter.js
deleted file mode 100644
index ec140345d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.lookup-getter.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , toObject = require('./_to-object')
- , toPrimitive = require('./_to-primitive')
- , getPrototypeOf = require('./_object-gpo')
- , getOwnPropertyDescriptor = require('./_object-gopd').f;
-
-// B.2.2.4 Object.prototype.__lookupGetter__(P)
-require('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {
- __lookupGetter__: function __lookupGetter__(P){
- var O = toObject(this)
- , K = toPrimitive(P, true)
- , D;
- do {
- if(D = getOwnPropertyDescriptor(O, K))return D.get;
- } while(O = getPrototypeOf(O));
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.lookup-setter.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.lookup-setter.js
deleted file mode 100644
index 539dda824..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.lookup-setter.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , toObject = require('./_to-object')
- , toPrimitive = require('./_to-primitive')
- , getPrototypeOf = require('./_object-gpo')
- , getOwnPropertyDescriptor = require('./_object-gopd').f;
-
-// B.2.2.5 Object.prototype.__lookupSetter__(P)
-require('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {
- __lookupSetter__: function __lookupSetter__(P){
- var O = toObject(this)
- , K = toPrimitive(P, true)
- , D;
- do {
- if(D = getOwnPropertyDescriptor(O, K))return D.set;
- } while(O = getPrototypeOf(O));
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.values.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.values.js
deleted file mode 100644
index 42abd640b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.values.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// https://github.com/tc39/proposal-object-values-entries
-var $export = require('./_export')
- , $values = require('./_object-to-array')(false);
-
-$export($export.S, 'Object', {
- values: function values(it){
- return $values(it);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.observable.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.observable.js
deleted file mode 100644
index e34fa4f28..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.observable.js
+++ /dev/null
@@ -1,199 +0,0 @@
-'use strict';
-// https://github.com/zenparsing/es-observable
-var $export = require('./_export')
- , global = require('./_global')
- , core = require('./_core')
- , microtask = require('./_microtask')()
- , OBSERVABLE = require('./_wks')('observable')
- , aFunction = require('./_a-function')
- , anObject = require('./_an-object')
- , anInstance = require('./_an-instance')
- , redefineAll = require('./_redefine-all')
- , hide = require('./_hide')
- , forOf = require('./_for-of')
- , RETURN = forOf.RETURN;
-
-var getMethod = function(fn){
- return fn == null ? undefined : aFunction(fn);
-};
-
-var cleanupSubscription = function(subscription){
- var cleanup = subscription._c;
- if(cleanup){
- subscription._c = undefined;
- cleanup();
- }
-};
-
-var subscriptionClosed = function(subscription){
- return subscription._o === undefined;
-};
-
-var closeSubscription = function(subscription){
- if(!subscriptionClosed(subscription)){
- subscription._o = undefined;
- cleanupSubscription(subscription);
- }
-};
-
-var Subscription = function(observer, subscriber){
- anObject(observer);
- this._c = undefined;
- this._o = observer;
- observer = new SubscriptionObserver(this);
- try {
- var cleanup = subscriber(observer)
- , subscription = cleanup;
- if(cleanup != null){
- if(typeof cleanup.unsubscribe === 'function')cleanup = function(){ subscription.unsubscribe(); };
- else aFunction(cleanup);
- this._c = cleanup;
- }
- } catch(e){
- observer.error(e);
- return;
- } if(subscriptionClosed(this))cleanupSubscription(this);
-};
-
-Subscription.prototype = redefineAll({}, {
- unsubscribe: function unsubscribe(){ closeSubscription(this); }
-});
-
-var SubscriptionObserver = function(subscription){
- this._s = subscription;
-};
-
-SubscriptionObserver.prototype = redefineAll({}, {
- next: function next(value){
- var subscription = this._s;
- if(!subscriptionClosed(subscription)){
- var observer = subscription._o;
- try {
- var m = getMethod(observer.next);
- if(m)return m.call(observer, value);
- } catch(e){
- try {
- closeSubscription(subscription);
- } finally {
- throw e;
- }
- }
- }
- },
- error: function error(value){
- var subscription = this._s;
- if(subscriptionClosed(subscription))throw value;
- var observer = subscription._o;
- subscription._o = undefined;
- try {
- var m = getMethod(observer.error);
- if(!m)throw value;
- value = m.call(observer, value);
- } catch(e){
- try {
- cleanupSubscription(subscription);
- } finally {
- throw e;
- }
- } cleanupSubscription(subscription);
- return value;
- },
- complete: function complete(value){
- var subscription = this._s;
- if(!subscriptionClosed(subscription)){
- var observer = subscription._o;
- subscription._o = undefined;
- try {
- var m = getMethod(observer.complete);
- value = m ? m.call(observer, value) : undefined;
- } catch(e){
- try {
- cleanupSubscription(subscription);
- } finally {
- throw e;
- }
- } cleanupSubscription(subscription);
- return value;
- }
- }
-});
-
-var $Observable = function Observable(subscriber){
- anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);
-};
-
-redefineAll($Observable.prototype, {
- subscribe: function subscribe(observer){
- return new Subscription(observer, this._f);
- },
- forEach: function forEach(fn){
- var that = this;
- return new (core.Promise || global.Promise)(function(resolve, reject){
- aFunction(fn);
- var subscription = that.subscribe({
- next : function(value){
- try {
- return fn(value);
- } catch(e){
- reject(e);
- subscription.unsubscribe();
- }
- },
- error: reject,
- complete: resolve
- });
- });
- }
-});
-
-redefineAll($Observable, {
- from: function from(x){
- var C = typeof this === 'function' ? this : $Observable;
- var method = getMethod(anObject(x)[OBSERVABLE]);
- if(method){
- var observable = anObject(method.call(x));
- return observable.constructor === C ? observable : new C(function(observer){
- return observable.subscribe(observer);
- });
- }
- return new C(function(observer){
- var done = false;
- microtask(function(){
- if(!done){
- try {
- if(forOf(x, false, function(it){
- observer.next(it);
- if(done)return RETURN;
- }) === RETURN)return;
- } catch(e){
- if(done)throw e;
- observer.error(e);
- return;
- } observer.complete();
- }
- });
- return function(){ done = true; };
- });
- },
- of: function of(){
- for(var i = 0, l = arguments.length, items = Array(l); i < l;)items[i] = arguments[i++];
- return new (typeof this === 'function' ? this : $Observable)(function(observer){
- var done = false;
- microtask(function(){
- if(!done){
- for(var i = 0; i < items.length; ++i){
- observer.next(items[i]);
- if(done)return;
- } observer.complete();
- }
- });
- return function(){ done = true; };
- });
- }
-});
-
-hide($Observable.prototype, OBSERVABLE, function(){ return this; });
-
-$export($export.G, {Observable: $Observable});
-
-require('./_set-species')('Observable'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.define-metadata.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.define-metadata.js
deleted file mode 100644
index c833e4317..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.define-metadata.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var metadata = require('./_metadata')
- , anObject = require('./_an-object')
- , toMetaKey = metadata.key
- , ordinaryDefineOwnMetadata = metadata.set;
-
-metadata.exp({defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey){
- ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.delete-metadata.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.delete-metadata.js
deleted file mode 100644
index 8a8a8253b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.delete-metadata.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var metadata = require('./_metadata')
- , anObject = require('./_an-object')
- , toMetaKey = metadata.key
- , getOrCreateMetadataMap = metadata.map
- , store = metadata.store;
-
-metadata.exp({deleteMetadata: function deleteMetadata(metadataKey, target /*, targetKey */){
- var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2])
- , metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);
- if(metadataMap === undefined || !metadataMap['delete'](metadataKey))return false;
- if(metadataMap.size)return true;
- var targetMetadata = store.get(target);
- targetMetadata['delete'](targetKey);
- return !!targetMetadata.size || store['delete'](target);
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.get-metadata-keys.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.get-metadata-keys.js
deleted file mode 100644
index 58c4dcc23..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.get-metadata-keys.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var Set = require('./es6.set')
- , from = require('./_array-from-iterable')
- , metadata = require('./_metadata')
- , anObject = require('./_an-object')
- , getPrototypeOf = require('./_object-gpo')
- , ordinaryOwnMetadataKeys = metadata.keys
- , toMetaKey = metadata.key;
-
-var ordinaryMetadataKeys = function(O, P){
- var oKeys = ordinaryOwnMetadataKeys(O, P)
- , parent = getPrototypeOf(O);
- if(parent === null)return oKeys;
- var pKeys = ordinaryMetadataKeys(parent, P);
- return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;
-};
-
-metadata.exp({getMetadataKeys: function getMetadataKeys(target /*, targetKey */){
- return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.get-metadata.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.get-metadata.js
deleted file mode 100644
index 48cd9d674..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.get-metadata.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var metadata = require('./_metadata')
- , anObject = require('./_an-object')
- , getPrototypeOf = require('./_object-gpo')
- , ordinaryHasOwnMetadata = metadata.has
- , ordinaryGetOwnMetadata = metadata.get
- , toMetaKey = metadata.key;
-
-var ordinaryGetMetadata = function(MetadataKey, O, P){
- var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
- if(hasOwn)return ordinaryGetOwnMetadata(MetadataKey, O, P);
- var parent = getPrototypeOf(O);
- return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;
-};
-
-metadata.exp({getMetadata: function getMetadata(metadataKey, target /*, targetKey */){
- return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.get-own-metadata-keys.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.get-own-metadata-keys.js
deleted file mode 100644
index 93ecfbe5a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.get-own-metadata-keys.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var metadata = require('./_metadata')
- , anObject = require('./_an-object')
- , ordinaryOwnMetadataKeys = metadata.keys
- , toMetaKey = metadata.key;
-
-metadata.exp({getOwnMetadataKeys: function getOwnMetadataKeys(target /*, targetKey */){
- return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.get-own-metadata.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.get-own-metadata.js
deleted file mode 100644
index f1040f919..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.get-own-metadata.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var metadata = require('./_metadata')
- , anObject = require('./_an-object')
- , ordinaryGetOwnMetadata = metadata.get
- , toMetaKey = metadata.key;
-
-metadata.exp({getOwnMetadata: function getOwnMetadata(metadataKey, target /*, targetKey */){
- return ordinaryGetOwnMetadata(metadataKey, anObject(target)
- , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.has-metadata.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.has-metadata.js
deleted file mode 100644
index 0ff637865..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.has-metadata.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var metadata = require('./_metadata')
- , anObject = require('./_an-object')
- , getPrototypeOf = require('./_object-gpo')
- , ordinaryHasOwnMetadata = metadata.has
- , toMetaKey = metadata.key;
-
-var ordinaryHasMetadata = function(MetadataKey, O, P){
- var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
- if(hasOwn)return true;
- var parent = getPrototypeOf(O);
- return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;
-};
-
-metadata.exp({hasMetadata: function hasMetadata(metadataKey, target /*, targetKey */){
- return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.has-own-metadata.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.has-own-metadata.js
deleted file mode 100644
index d645ea3fa..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.has-own-metadata.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var metadata = require('./_metadata')
- , anObject = require('./_an-object')
- , ordinaryHasOwnMetadata = metadata.has
- , toMetaKey = metadata.key;
-
-metadata.exp({hasOwnMetadata: function hasOwnMetadata(metadataKey, target /*, targetKey */){
- return ordinaryHasOwnMetadata(metadataKey, anObject(target)
- , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.metadata.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.metadata.js
deleted file mode 100644
index 3a4e3aee0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.reflect.metadata.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var metadata = require('./_metadata')
- , anObject = require('./_an-object')
- , aFunction = require('./_a-function')
- , toMetaKey = metadata.key
- , ordinaryDefineOwnMetadata = metadata.set;
-
-metadata.exp({metadata: function metadata(metadataKey, metadataValue){
- return function decorator(target, targetKey){
- ordinaryDefineOwnMetadata(
- metadataKey, metadataValue,
- (targetKey !== undefined ? anObject : aFunction)(target),
- toMetaKey(targetKey)
- );
- };
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.set.to-json.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.set.to-json.js
deleted file mode 100644
index fd68cb510..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.set.to-json.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// https://github.com/DavidBruant/Map-Set.prototype.toJSON
-var $export = require('./_export');
-
-$export($export.P + $export.R, 'Set', {toJSON: require('./_collection-to-json')('Set')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.at.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.at.js
deleted file mode 100644
index 208654e6c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.at.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-// https://github.com/mathiasbynens/String.prototype.at
-var $export = require('./_export')
- , $at = require('./_string-at')(true);
-
-$export($export.P, 'String', {
- at: function at(pos){
- return $at(this, pos);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.match-all.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.match-all.js
deleted file mode 100644
index cb0099b36..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.match-all.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-// https://tc39.github.io/String.prototype.matchAll/
-var $export = require('./_export')
- , defined = require('./_defined')
- , toLength = require('./_to-length')
- , isRegExp = require('./_is-regexp')
- , getFlags = require('./_flags')
- , RegExpProto = RegExp.prototype;
-
-var $RegExpStringIterator = function(regexp, string){
- this._r = regexp;
- this._s = string;
-};
-
-require('./_iter-create')($RegExpStringIterator, 'RegExp String', function next(){
- var match = this._r.exec(this._s);
- return {value: match, done: match === null};
-});
-
-$export($export.P, 'String', {
- matchAll: function matchAll(regexp){
- defined(this);
- if(!isRegExp(regexp))throw TypeError(regexp + ' is not a regexp!');
- var S = String(this)
- , flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp)
- , rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);
- rx.lastIndex = toLength(regexp.lastIndex);
- return new $RegExpStringIterator(rx, S);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.pad-end.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.pad-end.js
deleted file mode 100644
index 8483d82f4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.pad-end.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-string-pad-start-end
-var $export = require('./_export')
- , $pad = require('./_string-pad');
-
-$export($export.P, 'String', {
- padEnd: function padEnd(maxLength /*, fillString = ' ' */){
- return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.pad-start.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.pad-start.js
deleted file mode 100644
index b79b605d2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.pad-start.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-string-pad-start-end
-var $export = require('./_export')
- , $pad = require('./_string-pad');
-
-$export($export.P, 'String', {
- padStart: function padStart(maxLength /*, fillString = ' ' */){
- return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.trim-left.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.trim-left.js
deleted file mode 100644
index e58457714..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.trim-left.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
-require('./_string-trim')('trimLeft', function($trim){
- return function trimLeft(){
- return $trim(this, 1);
- };
-}, 'trimStart'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.trim-right.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.trim-right.js
deleted file mode 100644
index 42a9ed33b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.string.trim-right.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
-require('./_string-trim')('trimRight', function($trim){
- return function trimRight(){
- return $trim(this, 2);
- };
-}, 'trimEnd'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js
deleted file mode 100644
index cf9f74a50..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js
+++ /dev/null
@@ -1 +0,0 @@
-require('./_wks-define')('asyncIterator'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js
deleted file mode 100644
index 0163bca52..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js
+++ /dev/null
@@ -1 +0,0 @@
-require('./_wks-define')('observable'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.system.global.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.system.global.js
deleted file mode 100644
index 8c2ab82de..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.system.global.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// https://github.com/ljharb/proposal-global
-var $export = require('./_export');
-
-$export($export.S, 'System', {global: require('./_global')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js
deleted file mode 100644
index e56371a9d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js
+++ /dev/null
@@ -1,13 +0,0 @@
-require('./es6.array.iterator');
-var global = require('./_global')
- , hide = require('./_hide')
- , Iterators = require('./_iterators')
- , TO_STRING_TAG = require('./_wks')('toStringTag');
-
-for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
- var NAME = collections[i]
- , Collection = global[NAME]
- , proto = Collection && Collection.prototype;
- if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);
- Iterators[NAME] = Iterators.Array;
-} \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/web.immediate.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/web.immediate.js
deleted file mode 100644
index 5b9463775..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/web.immediate.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var $export = require('./_export')
- , $task = require('./_task');
-$export($export.G + $export.B, {
- setImmediate: $task.set,
- clearImmediate: $task.clear
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/modules/web.timers.js b/node_modules/babel-runtime/node_modules/core-js/library/modules/web.timers.js
deleted file mode 100644
index 1a1da57f2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/modules/web.timers.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// ie9- setTimeout & setInterval additional parameters fix
-var global = require('./_global')
- , $export = require('./_export')
- , invoke = require('./_invoke')
- , partial = require('./_partial')
- , navigator = global.navigator
- , MSIE = !!navigator && /MSIE .\./.test(navigator.userAgent); // <- dirty ie9- check
-var wrap = function(set){
- return MSIE ? function(fn, time /*, ...args */){
- return set(invoke(
- partial,
- [].slice.call(arguments, 2),
- typeof fn == 'function' ? fn : Function(fn)
- ), time);
- } : set;
-};
-$export($export.G + $export.B + $export.F * MSIE, {
- setTimeout: wrap(global.setTimeout),
- setInterval: wrap(global.setInterval)
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/shim.js b/node_modules/babel-runtime/node_modules/core-js/library/shim.js
deleted file mode 100644
index 6db125683..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/shim.js
+++ /dev/null
@@ -1,176 +0,0 @@
-require('./modules/es6.symbol');
-require('./modules/es6.object.create');
-require('./modules/es6.object.define-property');
-require('./modules/es6.object.define-properties');
-require('./modules/es6.object.get-own-property-descriptor');
-require('./modules/es6.object.get-prototype-of');
-require('./modules/es6.object.keys');
-require('./modules/es6.object.get-own-property-names');
-require('./modules/es6.object.freeze');
-require('./modules/es6.object.seal');
-require('./modules/es6.object.prevent-extensions');
-require('./modules/es6.object.is-frozen');
-require('./modules/es6.object.is-sealed');
-require('./modules/es6.object.is-extensible');
-require('./modules/es6.object.assign');
-require('./modules/es6.object.is');
-require('./modules/es6.object.set-prototype-of');
-require('./modules/es6.object.to-string');
-require('./modules/es6.function.bind');
-require('./modules/es6.function.name');
-require('./modules/es6.function.has-instance');
-require('./modules/es6.parse-int');
-require('./modules/es6.parse-float');
-require('./modules/es6.number.constructor');
-require('./modules/es6.number.to-fixed');
-require('./modules/es6.number.to-precision');
-require('./modules/es6.number.epsilon');
-require('./modules/es6.number.is-finite');
-require('./modules/es6.number.is-integer');
-require('./modules/es6.number.is-nan');
-require('./modules/es6.number.is-safe-integer');
-require('./modules/es6.number.max-safe-integer');
-require('./modules/es6.number.min-safe-integer');
-require('./modules/es6.number.parse-float');
-require('./modules/es6.number.parse-int');
-require('./modules/es6.math.acosh');
-require('./modules/es6.math.asinh');
-require('./modules/es6.math.atanh');
-require('./modules/es6.math.cbrt');
-require('./modules/es6.math.clz32');
-require('./modules/es6.math.cosh');
-require('./modules/es6.math.expm1');
-require('./modules/es6.math.fround');
-require('./modules/es6.math.hypot');
-require('./modules/es6.math.imul');
-require('./modules/es6.math.log10');
-require('./modules/es6.math.log1p');
-require('./modules/es6.math.log2');
-require('./modules/es6.math.sign');
-require('./modules/es6.math.sinh');
-require('./modules/es6.math.tanh');
-require('./modules/es6.math.trunc');
-require('./modules/es6.string.from-code-point');
-require('./modules/es6.string.raw');
-require('./modules/es6.string.trim');
-require('./modules/es6.string.iterator');
-require('./modules/es6.string.code-point-at');
-require('./modules/es6.string.ends-with');
-require('./modules/es6.string.includes');
-require('./modules/es6.string.repeat');
-require('./modules/es6.string.starts-with');
-require('./modules/es6.string.anchor');
-require('./modules/es6.string.big');
-require('./modules/es6.string.blink');
-require('./modules/es6.string.bold');
-require('./modules/es6.string.fixed');
-require('./modules/es6.string.fontcolor');
-require('./modules/es6.string.fontsize');
-require('./modules/es6.string.italics');
-require('./modules/es6.string.link');
-require('./modules/es6.string.small');
-require('./modules/es6.string.strike');
-require('./modules/es6.string.sub');
-require('./modules/es6.string.sup');
-require('./modules/es6.date.now');
-require('./modules/es6.date.to-json');
-require('./modules/es6.date.to-iso-string');
-require('./modules/es6.date.to-string');
-require('./modules/es6.date.to-primitive');
-require('./modules/es6.array.is-array');
-require('./modules/es6.array.from');
-require('./modules/es6.array.of');
-require('./modules/es6.array.join');
-require('./modules/es6.array.slice');
-require('./modules/es6.array.sort');
-require('./modules/es6.array.for-each');
-require('./modules/es6.array.map');
-require('./modules/es6.array.filter');
-require('./modules/es6.array.some');
-require('./modules/es6.array.every');
-require('./modules/es6.array.reduce');
-require('./modules/es6.array.reduce-right');
-require('./modules/es6.array.index-of');
-require('./modules/es6.array.last-index-of');
-require('./modules/es6.array.copy-within');
-require('./modules/es6.array.fill');
-require('./modules/es6.array.find');
-require('./modules/es6.array.find-index');
-require('./modules/es6.array.species');
-require('./modules/es6.array.iterator');
-require('./modules/es6.regexp.constructor');
-require('./modules/es6.regexp.to-string');
-require('./modules/es6.regexp.flags');
-require('./modules/es6.regexp.match');
-require('./modules/es6.regexp.replace');
-require('./modules/es6.regexp.search');
-require('./modules/es6.regexp.split');
-require('./modules/es6.promise');
-require('./modules/es6.map');
-require('./modules/es6.set');
-require('./modules/es6.weak-map');
-require('./modules/es6.weak-set');
-require('./modules/es6.typed.array-buffer');
-require('./modules/es6.typed.data-view');
-require('./modules/es6.typed.int8-array');
-require('./modules/es6.typed.uint8-array');
-require('./modules/es6.typed.uint8-clamped-array');
-require('./modules/es6.typed.int16-array');
-require('./modules/es6.typed.uint16-array');
-require('./modules/es6.typed.int32-array');
-require('./modules/es6.typed.uint32-array');
-require('./modules/es6.typed.float32-array');
-require('./modules/es6.typed.float64-array');
-require('./modules/es6.reflect.apply');
-require('./modules/es6.reflect.construct');
-require('./modules/es6.reflect.define-property');
-require('./modules/es6.reflect.delete-property');
-require('./modules/es6.reflect.enumerate');
-require('./modules/es6.reflect.get');
-require('./modules/es6.reflect.get-own-property-descriptor');
-require('./modules/es6.reflect.get-prototype-of');
-require('./modules/es6.reflect.has');
-require('./modules/es6.reflect.is-extensible');
-require('./modules/es6.reflect.own-keys');
-require('./modules/es6.reflect.prevent-extensions');
-require('./modules/es6.reflect.set');
-require('./modules/es6.reflect.set-prototype-of');
-require('./modules/es7.array.includes');
-require('./modules/es7.string.at');
-require('./modules/es7.string.pad-start');
-require('./modules/es7.string.pad-end');
-require('./modules/es7.string.trim-left');
-require('./modules/es7.string.trim-right');
-require('./modules/es7.string.match-all');
-require('./modules/es7.symbol.async-iterator');
-require('./modules/es7.symbol.observable');
-require('./modules/es7.object.get-own-property-descriptors');
-require('./modules/es7.object.values');
-require('./modules/es7.object.entries');
-require('./modules/es7.object.define-getter');
-require('./modules/es7.object.define-setter');
-require('./modules/es7.object.lookup-getter');
-require('./modules/es7.object.lookup-setter');
-require('./modules/es7.map.to-json');
-require('./modules/es7.set.to-json');
-require('./modules/es7.system.global');
-require('./modules/es7.error.is-error');
-require('./modules/es7.math.iaddh');
-require('./modules/es7.math.isubh');
-require('./modules/es7.math.imulh');
-require('./modules/es7.math.umulh');
-require('./modules/es7.reflect.define-metadata');
-require('./modules/es7.reflect.delete-metadata');
-require('./modules/es7.reflect.get-metadata');
-require('./modules/es7.reflect.get-metadata-keys');
-require('./modules/es7.reflect.get-own-metadata');
-require('./modules/es7.reflect.get-own-metadata-keys');
-require('./modules/es7.reflect.has-metadata');
-require('./modules/es7.reflect.has-own-metadata');
-require('./modules/es7.reflect.metadata');
-require('./modules/es7.asap');
-require('./modules/es7.observable');
-require('./modules/web.timers');
-require('./modules/web.immediate');
-require('./modules/web.dom.iterable');
-module.exports = require('./modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/stage/0.js b/node_modules/babel-runtime/node_modules/core-js/library/stage/0.js
deleted file mode 100644
index e89a005f0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/stage/0.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../modules/es7.string.at');
-require('../modules/es7.map.to-json');
-require('../modules/es7.set.to-json');
-require('../modules/es7.error.is-error');
-require('../modules/es7.math.iaddh');
-require('../modules/es7.math.isubh');
-require('../modules/es7.math.imulh');
-require('../modules/es7.math.umulh');
-require('../modules/es7.asap');
-module.exports = require('./1'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/stage/1.js b/node_modules/babel-runtime/node_modules/core-js/library/stage/1.js
deleted file mode 100644
index 230fe13ad..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/stage/1.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../modules/es7.string.trim-left');
-require('../modules/es7.string.trim-right');
-require('../modules/es7.string.match-all');
-require('../modules/es7.symbol.observable');
-require('../modules/es7.observable');
-module.exports = require('./2');
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/stage/2.js b/node_modules/babel-runtime/node_modules/core-js/library/stage/2.js
deleted file mode 100644
index ba444e1a7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/stage/2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../modules/es7.system.global');
-require('../modules/es7.symbol.async-iterator');
-module.exports = require('./3');
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/stage/3.js b/node_modules/babel-runtime/node_modules/core-js/library/stage/3.js
deleted file mode 100644
index c1ea400a9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/stage/3.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/es7.object.get-own-property-descriptors');
-require('../modules/es7.string.pad-start');
-require('../modules/es7.string.pad-end');
-module.exports = require('./4');
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/stage/4.js b/node_modules/babel-runtime/node_modules/core-js/library/stage/4.js
deleted file mode 100644
index 0fb53ddd8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/stage/4.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../modules/es7.object.define-getter');
-require('../modules/es7.object.define-setter');
-require('../modules/es7.object.lookup-getter');
-require('../modules/es7.object.lookup-setter');
-require('../modules/es7.object.values');
-require('../modules/es7.object.entries');
-require('../modules/es7.array.includes');
-module.exports = require('../modules/_core');
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/stage/index.js b/node_modules/babel-runtime/node_modules/core-js/library/stage/index.js
deleted file mode 100644
index eb959140c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/stage/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./pre'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/stage/pre.js b/node_modules/babel-runtime/node_modules/core-js/library/stage/pre.js
deleted file mode 100644
index f3bc54d95..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/stage/pre.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../modules/es7.reflect.define-metadata');
-require('../modules/es7.reflect.delete-metadata');
-require('../modules/es7.reflect.get-metadata');
-require('../modules/es7.reflect.get-metadata-keys');
-require('../modules/es7.reflect.get-own-metadata');
-require('../modules/es7.reflect.get-own-metadata-keys');
-require('../modules/es7.reflect.has-metadata');
-require('../modules/es7.reflect.has-own-metadata');
-require('../modules/es7.reflect.metadata');
-module.exports = require('./0'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/web/dom-collections.js b/node_modules/babel-runtime/node_modules/core-js/library/web/dom-collections.js
deleted file mode 100644
index 2118e3fe6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/web/dom-collections.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/web.dom.iterable');
-module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/web/immediate.js b/node_modules/babel-runtime/node_modules/core-js/library/web/immediate.js
deleted file mode 100644
index 244ebb16f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/web/immediate.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/web.immediate');
-module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/web/index.js b/node_modules/babel-runtime/node_modules/core-js/library/web/index.js
deleted file mode 100644
index 6687d571e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/web/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/web.timers');
-require('../modules/web.immediate');
-require('../modules/web.dom.iterable');
-module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/library/web/timers.js b/node_modules/babel-runtime/node_modules/core-js/library/web/timers.js
deleted file mode 100644
index 2c66f4387..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/library/web/timers.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/web.timers');
-module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_a-function.js b/node_modules/babel-runtime/node_modules/core-js/modules/_a-function.js
deleted file mode 100644
index 8c35f4514..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_a-function.js
+++ /dev/null
@@ -1,4 +0,0 @@
-module.exports = function(it){
- if(typeof it != 'function')throw TypeError(it + ' is not a function!');
- return it;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_a-number-value.js b/node_modules/babel-runtime/node_modules/core-js/modules/_a-number-value.js
deleted file mode 100644
index 7bcbd7b76..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_a-number-value.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var cof = require('./_cof');
-module.exports = function(it, msg){
- if(typeof it != 'number' && cof(it) != 'Number')throw TypeError(msg);
- return +it;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_add-to-unscopables.js b/node_modules/babel-runtime/node_modules/core-js/modules/_add-to-unscopables.js
deleted file mode 100644
index 0a74baeab..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_add-to-unscopables.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// 22.1.3.31 Array.prototype[@@unscopables]
-var UNSCOPABLES = require('./_wks')('unscopables')
- , ArrayProto = Array.prototype;
-if(ArrayProto[UNSCOPABLES] == undefined)require('./_hide')(ArrayProto, UNSCOPABLES, {});
-module.exports = function(key){
- ArrayProto[UNSCOPABLES][key] = true;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_an-instance.js b/node_modules/babel-runtime/node_modules/core-js/modules/_an-instance.js
deleted file mode 100644
index e4dfad3d0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_an-instance.js
+++ /dev/null
@@ -1,5 +0,0 @@
-module.exports = function(it, Constructor, name, forbiddenField){
- if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){
- throw TypeError(name + ': incorrect invocation!');
- } return it;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_an-object.js b/node_modules/babel-runtime/node_modules/core-js/modules/_an-object.js
deleted file mode 100644
index 59a8a3a36..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_an-object.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var isObject = require('./_is-object');
-module.exports = function(it){
- if(!isObject(it))throw TypeError(it + ' is not an object!');
- return it;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_array-copy-within.js b/node_modules/babel-runtime/node_modules/core-js/modules/_array-copy-within.js
deleted file mode 100644
index d901a32f5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_array-copy-within.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
-'use strict';
-var toObject = require('./_to-object')
- , toIndex = require('./_to-index')
- , toLength = require('./_to-length');
-
-module.exports = [].copyWithin || function copyWithin(target/*= 0*/, start/*= 0, end = @length*/){
- var O = toObject(this)
- , len = toLength(O.length)
- , to = toIndex(target, len)
- , from = toIndex(start, len)
- , end = arguments.length > 2 ? arguments[2] : undefined
- , count = Math.min((end === undefined ? len : toIndex(end, len)) - from, len - to)
- , inc = 1;
- if(from < to && to < from + count){
- inc = -1;
- from += count - 1;
- to += count - 1;
- }
- while(count-- > 0){
- if(from in O)O[to] = O[from];
- else delete O[to];
- to += inc;
- from += inc;
- } return O;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_array-fill.js b/node_modules/babel-runtime/node_modules/core-js/modules/_array-fill.js
deleted file mode 100644
index b21bb7edd..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_array-fill.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
-'use strict';
-var toObject = require('./_to-object')
- , toIndex = require('./_to-index')
- , toLength = require('./_to-length');
-module.exports = function fill(value /*, start = 0, end = @length */){
- var O = toObject(this)
- , length = toLength(O.length)
- , aLen = arguments.length
- , index = toIndex(aLen > 1 ? arguments[1] : undefined, length)
- , end = aLen > 2 ? arguments[2] : undefined
- , endPos = end === undefined ? length : toIndex(end, length);
- while(endPos > index)O[index++] = value;
- return O;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_array-from-iterable.js b/node_modules/babel-runtime/node_modules/core-js/modules/_array-from-iterable.js
deleted file mode 100644
index b5c454fb0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_array-from-iterable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var forOf = require('./_for-of');
-
-module.exports = function(iter, ITERATOR){
- var result = [];
- forOf(iter, false, result.push, result, ITERATOR);
- return result;
-};
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_array-includes.js b/node_modules/babel-runtime/node_modules/core-js/modules/_array-includes.js
deleted file mode 100644
index c70b064d1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_array-includes.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// false -> Array#indexOf
-// true -> Array#includes
-var toIObject = require('./_to-iobject')
- , toLength = require('./_to-length')
- , toIndex = require('./_to-index');
-module.exports = function(IS_INCLUDES){
- return function($this, el, fromIndex){
- var O = toIObject($this)
- , length = toLength(O.length)
- , index = toIndex(fromIndex, length)
- , value;
- // Array#includes uses SameValueZero equality algorithm
- if(IS_INCLUDES && el != el)while(length > index){
- value = O[index++];
- if(value != value)return true;
- // Array#toIndex ignores holes, Array#includes - not
- } else for(;length > index; index++)if(IS_INCLUDES || index in O){
- if(O[index] === el)return IS_INCLUDES || index || 0;
- } return !IS_INCLUDES && -1;
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_array-methods.js b/node_modules/babel-runtime/node_modules/core-js/modules/_array-methods.js
deleted file mode 100644
index 8ffbe1164..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_array-methods.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// 0 -> Array#forEach
-// 1 -> Array#map
-// 2 -> Array#filter
-// 3 -> Array#some
-// 4 -> Array#every
-// 5 -> Array#find
-// 6 -> Array#findIndex
-var ctx = require('./_ctx')
- , IObject = require('./_iobject')
- , toObject = require('./_to-object')
- , toLength = require('./_to-length')
- , asc = require('./_array-species-create');
-module.exports = function(TYPE, $create){
- var IS_MAP = TYPE == 1
- , IS_FILTER = TYPE == 2
- , IS_SOME = TYPE == 3
- , IS_EVERY = TYPE == 4
- , IS_FIND_INDEX = TYPE == 6
- , NO_HOLES = TYPE == 5 || IS_FIND_INDEX
- , create = $create || asc;
- return function($this, callbackfn, that){
- var O = toObject($this)
- , self = IObject(O)
- , f = ctx(callbackfn, that, 3)
- , length = toLength(self.length)
- , index = 0
- , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined
- , val, res;
- for(;length > index; index++)if(NO_HOLES || index in self){
- val = self[index];
- res = f(val, index, O);
- if(TYPE){
- if(IS_MAP)result[index] = res; // map
- else if(res)switch(TYPE){
- case 3: return true; // some
- case 5: return val; // find
- case 6: return index; // findIndex
- case 2: result.push(val); // filter
- } else if(IS_EVERY)return false; // every
- }
- }
- return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_array-reduce.js b/node_modules/babel-runtime/node_modules/core-js/modules/_array-reduce.js
deleted file mode 100644
index c807d5443..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_array-reduce.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var aFunction = require('./_a-function')
- , toObject = require('./_to-object')
- , IObject = require('./_iobject')
- , toLength = require('./_to-length');
-
-module.exports = function(that, callbackfn, aLen, memo, isRight){
- aFunction(callbackfn);
- var O = toObject(that)
- , self = IObject(O)
- , length = toLength(O.length)
- , index = isRight ? length - 1 : 0
- , i = isRight ? -1 : 1;
- if(aLen < 2)for(;;){
- if(index in self){
- memo = self[index];
- index += i;
- break;
- }
- index += i;
- if(isRight ? index < 0 : length <= index){
- throw TypeError('Reduce of empty array with no initial value');
- }
- }
- for(;isRight ? index >= 0 : length > index; index += i)if(index in self){
- memo = callbackfn(memo, self[index], index, O);
- }
- return memo;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_array-species-constructor.js b/node_modules/babel-runtime/node_modules/core-js/modules/_array-species-constructor.js
deleted file mode 100644
index a715389fd..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_array-species-constructor.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var isObject = require('./_is-object')
- , isArray = require('./_is-array')
- , SPECIES = require('./_wks')('species');
-
-module.exports = function(original){
- var C;
- if(isArray(original)){
- C = original.constructor;
- // cross-realm fallback
- if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;
- if(isObject(C)){
- C = C[SPECIES];
- if(C === null)C = undefined;
- }
- } return C === undefined ? Array : C;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_array-species-create.js b/node_modules/babel-runtime/node_modules/core-js/modules/_array-species-create.js
deleted file mode 100644
index cbd18bc6c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_array-species-create.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
-var speciesConstructor = require('./_array-species-constructor');
-
-module.exports = function(original, length){
- return new (speciesConstructor(original))(length);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_bind.js b/node_modules/babel-runtime/node_modules/core-js/modules/_bind.js
deleted file mode 100644
index 1f7b0174b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_bind.js
+++ /dev/null
@@ -1,24 +0,0 @@
-'use strict';
-var aFunction = require('./_a-function')
- , isObject = require('./_is-object')
- , invoke = require('./_invoke')
- , arraySlice = [].slice
- , factories = {};
-
-var construct = function(F, len, args){
- if(!(len in factories)){
- for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';
- factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
- } return factories[len](F, args);
-};
-
-module.exports = Function.bind || function bind(that /*, args... */){
- var fn = aFunction(this)
- , partArgs = arraySlice.call(arguments, 1);
- var bound = function(/* args... */){
- var args = partArgs.concat(arraySlice.call(arguments));
- return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
- };
- if(isObject(fn.prototype))bound.prototype = fn.prototype;
- return bound;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_classof.js b/node_modules/babel-runtime/node_modules/core-js/modules/_classof.js
deleted file mode 100644
index dab3a80f1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_classof.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// getting tag from 19.1.3.6 Object.prototype.toString()
-var cof = require('./_cof')
- , TAG = require('./_wks')('toStringTag')
- // ES3 wrong here
- , ARG = cof(function(){ return arguments; }()) == 'Arguments';
-
-// fallback for IE11 Script Access Denied error
-var tryGet = function(it, key){
- try {
- return it[key];
- } catch(e){ /* empty */ }
-};
-
-module.exports = function(it){
- var O, T, B;
- return it === undefined ? 'Undefined' : it === null ? 'Null'
- // @@toStringTag case
- : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
- // builtinTag case
- : ARG ? cof(O)
- // ES3 arguments fallback
- : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_cof.js b/node_modules/babel-runtime/node_modules/core-js/modules/_cof.js
deleted file mode 100644
index 1dd2779a7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_cof.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var toString = {}.toString;
-
-module.exports = function(it){
- return toString.call(it).slice(8, -1);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_collection-strong.js b/node_modules/babel-runtime/node_modules/core-js/modules/_collection-strong.js
deleted file mode 100644
index 55e4b6158..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_collection-strong.js
+++ /dev/null
@@ -1,142 +0,0 @@
-'use strict';
-var dP = require('./_object-dp').f
- , create = require('./_object-create')
- , redefineAll = require('./_redefine-all')
- , ctx = require('./_ctx')
- , anInstance = require('./_an-instance')
- , defined = require('./_defined')
- , forOf = require('./_for-of')
- , $iterDefine = require('./_iter-define')
- , step = require('./_iter-step')
- , setSpecies = require('./_set-species')
- , DESCRIPTORS = require('./_descriptors')
- , fastKey = require('./_meta').fastKey
- , SIZE = DESCRIPTORS ? '_s' : 'size';
-
-var getEntry = function(that, key){
- // fast case
- var index = fastKey(key), entry;
- if(index !== 'F')return that._i[index];
- // frozen object case
- for(entry = that._f; entry; entry = entry.n){
- if(entry.k == key)return entry;
- }
-};
-
-module.exports = {
- getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
- var C = wrapper(function(that, iterable){
- anInstance(that, C, NAME, '_i');
- that._i = create(null); // index
- that._f = undefined; // first entry
- that._l = undefined; // last entry
- that[SIZE] = 0; // size
- if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
- });
- redefineAll(C.prototype, {
- // 23.1.3.1 Map.prototype.clear()
- // 23.2.3.2 Set.prototype.clear()
- clear: function clear(){
- for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){
- entry.r = true;
- if(entry.p)entry.p = entry.p.n = undefined;
- delete data[entry.i];
- }
- that._f = that._l = undefined;
- that[SIZE] = 0;
- },
- // 23.1.3.3 Map.prototype.delete(key)
- // 23.2.3.4 Set.prototype.delete(value)
- 'delete': function(key){
- var that = this
- , entry = getEntry(that, key);
- if(entry){
- var next = entry.n
- , prev = entry.p;
- delete that._i[entry.i];
- entry.r = true;
- if(prev)prev.n = next;
- if(next)next.p = prev;
- if(that._f == entry)that._f = next;
- if(that._l == entry)that._l = prev;
- that[SIZE]--;
- } return !!entry;
- },
- // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
- // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
- forEach: function forEach(callbackfn /*, that = undefined */){
- anInstance(this, C, 'forEach');
- var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)
- , entry;
- while(entry = entry ? entry.n : this._f){
- f(entry.v, entry.k, this);
- // revert to the last existing entry
- while(entry && entry.r)entry = entry.p;
- }
- },
- // 23.1.3.7 Map.prototype.has(key)
- // 23.2.3.7 Set.prototype.has(value)
- has: function has(key){
- return !!getEntry(this, key);
- }
- });
- if(DESCRIPTORS)dP(C.prototype, 'size', {
- get: function(){
- return defined(this[SIZE]);
- }
- });
- return C;
- },
- def: function(that, key, value){
- var entry = getEntry(that, key)
- , prev, index;
- // change existing entry
- if(entry){
- entry.v = value;
- // create new entry
- } else {
- that._l = entry = {
- i: index = fastKey(key, true), // <- index
- k: key, // <- key
- v: value, // <- value
- p: prev = that._l, // <- previous entry
- n: undefined, // <- next entry
- r: false // <- removed
- };
- if(!that._f)that._f = entry;
- if(prev)prev.n = entry;
- that[SIZE]++;
- // add to index
- if(index !== 'F')that._i[index] = entry;
- } return that;
- },
- getEntry: getEntry,
- setStrong: function(C, NAME, IS_MAP){
- // add .keys, .values, .entries, [@@iterator]
- // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
- $iterDefine(C, NAME, function(iterated, kind){
- this._t = iterated; // target
- this._k = kind; // kind
- this._l = undefined; // previous
- }, function(){
- var that = this
- , kind = that._k
- , entry = that._l;
- // revert to the last existing entry
- while(entry && entry.r)entry = entry.p;
- // get next entry
- if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){
- // or finish the iteration
- that._t = undefined;
- return step(1);
- }
- // return step by kind
- if(kind == 'keys' )return step(0, entry.k);
- if(kind == 'values')return step(0, entry.v);
- return step(0, [entry.k, entry.v]);
- }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);
-
- // add [@@species], 23.1.2.2, 23.2.2.2
- setSpecies(NAME);
- }
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_collection-to-json.js b/node_modules/babel-runtime/node_modules/core-js/modules/_collection-to-json.js
deleted file mode 100644
index ce0282f6b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_collection-to-json.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// https://github.com/DavidBruant/Map-Set.prototype.toJSON
-var classof = require('./_classof')
- , from = require('./_array-from-iterable');
-module.exports = function(NAME){
- return function toJSON(){
- if(classof(this) != NAME)throw TypeError(NAME + "#toJSON isn't generic");
- return from(this);
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_collection-weak.js b/node_modules/babel-runtime/node_modules/core-js/modules/_collection-weak.js
deleted file mode 100644
index a8597e64d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_collection-weak.js
+++ /dev/null
@@ -1,83 +0,0 @@
-'use strict';
-var redefineAll = require('./_redefine-all')
- , getWeak = require('./_meta').getWeak
- , anObject = require('./_an-object')
- , isObject = require('./_is-object')
- , anInstance = require('./_an-instance')
- , forOf = require('./_for-of')
- , createArrayMethod = require('./_array-methods')
- , $has = require('./_has')
- , arrayFind = createArrayMethod(5)
- , arrayFindIndex = createArrayMethod(6)
- , id = 0;
-
-// fallback for uncaught frozen keys
-var uncaughtFrozenStore = function(that){
- return that._l || (that._l = new UncaughtFrozenStore);
-};
-var UncaughtFrozenStore = function(){
- this.a = [];
-};
-var findUncaughtFrozen = function(store, key){
- return arrayFind(store.a, function(it){
- return it[0] === key;
- });
-};
-UncaughtFrozenStore.prototype = {
- get: function(key){
- var entry = findUncaughtFrozen(this, key);
- if(entry)return entry[1];
- },
- has: function(key){
- return !!findUncaughtFrozen(this, key);
- },
- set: function(key, value){
- var entry = findUncaughtFrozen(this, key);
- if(entry)entry[1] = value;
- else this.a.push([key, value]);
- },
- 'delete': function(key){
- var index = arrayFindIndex(this.a, function(it){
- return it[0] === key;
- });
- if(~index)this.a.splice(index, 1);
- return !!~index;
- }
-};
-
-module.exports = {
- getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
- var C = wrapper(function(that, iterable){
- anInstance(that, C, NAME, '_i');
- that._i = id++; // collection id
- that._l = undefined; // leak store for uncaught frozen objects
- if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
- });
- redefineAll(C.prototype, {
- // 23.3.3.2 WeakMap.prototype.delete(key)
- // 23.4.3.3 WeakSet.prototype.delete(value)
- 'delete': function(key){
- if(!isObject(key))return false;
- var data = getWeak(key);
- if(data === true)return uncaughtFrozenStore(this)['delete'](key);
- return data && $has(data, this._i) && delete data[this._i];
- },
- // 23.3.3.4 WeakMap.prototype.has(key)
- // 23.4.3.4 WeakSet.prototype.has(value)
- has: function has(key){
- if(!isObject(key))return false;
- var data = getWeak(key);
- if(data === true)return uncaughtFrozenStore(this).has(key);
- return data && $has(data, this._i);
- }
- });
- return C;
- },
- def: function(that, key, value){
- var data = getWeak(anObject(key), true);
- if(data === true)uncaughtFrozenStore(that).set(key, value);
- else data[that._i] = value;
- return that;
- },
- ufstore: uncaughtFrozenStore
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_collection.js b/node_modules/babel-runtime/node_modules/core-js/modules/_collection.js
deleted file mode 100644
index 2b1834534..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_collection.js
+++ /dev/null
@@ -1,85 +0,0 @@
-'use strict';
-var global = require('./_global')
- , $export = require('./_export')
- , redefine = require('./_redefine')
- , redefineAll = require('./_redefine-all')
- , meta = require('./_meta')
- , forOf = require('./_for-of')
- , anInstance = require('./_an-instance')
- , isObject = require('./_is-object')
- , fails = require('./_fails')
- , $iterDetect = require('./_iter-detect')
- , setToStringTag = require('./_set-to-string-tag')
- , inheritIfRequired = require('./_inherit-if-required');
-
-module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){
- var Base = global[NAME]
- , C = Base
- , ADDER = IS_MAP ? 'set' : 'add'
- , proto = C && C.prototype
- , O = {};
- var fixMethod = function(KEY){
- var fn = proto[KEY];
- redefine(proto, KEY,
- KEY == 'delete' ? function(a){
- return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
- } : KEY == 'has' ? function has(a){
- return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
- } : KEY == 'get' ? function get(a){
- return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
- } : KEY == 'add' ? function add(a){ fn.call(this, a === 0 ? 0 : a); return this; }
- : function set(a, b){ fn.call(this, a === 0 ? 0 : a, b); return this; }
- );
- };
- if(typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){
- new C().entries().next();
- }))){
- // create collection constructor
- C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
- redefineAll(C.prototype, methods);
- meta.NEED = true;
- } else {
- var instance = new C
- // early implementations not supports chaining
- , HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance
- // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false
- , THROWS_ON_PRIMITIVES = fails(function(){ instance.has(1); })
- // most early implementations doesn't supports iterables, most modern - not close it correctly
- , ACCEPT_ITERABLES = $iterDetect(function(iter){ new C(iter); }) // eslint-disable-line no-new
- // for early implementations -0 and +0 not the same
- , BUGGY_ZERO = !IS_WEAK && fails(function(){
- // V8 ~ Chromium 42- fails only with 5+ elements
- var $instance = new C()
- , index = 5;
- while(index--)$instance[ADDER](index, index);
- return !$instance.has(-0);
- });
- if(!ACCEPT_ITERABLES){
- C = wrapper(function(target, iterable){
- anInstance(target, C, NAME);
- var that = inheritIfRequired(new Base, target, C);
- if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
- return that;
- });
- C.prototype = proto;
- proto.constructor = C;
- }
- if(THROWS_ON_PRIMITIVES || BUGGY_ZERO){
- fixMethod('delete');
- fixMethod('has');
- IS_MAP && fixMethod('get');
- }
- if(BUGGY_ZERO || HASNT_CHAINING)fixMethod(ADDER);
- // weak collections should not contains .clear method
- if(IS_WEAK && proto.clear)delete proto.clear;
- }
-
- setToStringTag(C, NAME);
-
- O[NAME] = C;
- $export($export.G + $export.W + $export.F * (C != Base), O);
-
- if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);
-
- return C;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_core.js b/node_modules/babel-runtime/node_modules/core-js/modules/_core.js
deleted file mode 100644
index 23d6aedeb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_core.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var core = module.exports = {version: '2.4.0'};
-if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_create-property.js b/node_modules/babel-runtime/node_modules/core-js/modules/_create-property.js
deleted file mode 100644
index 3d1bf7305..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_create-property.js
+++ /dev/null
@@ -1,8 +0,0 @@
-'use strict';
-var $defineProperty = require('./_object-dp')
- , createDesc = require('./_property-desc');
-
-module.exports = function(object, index, value){
- if(index in object)$defineProperty.f(object, index, createDesc(0, value));
- else object[index] = value;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_ctx.js b/node_modules/babel-runtime/node_modules/core-js/modules/_ctx.js
deleted file mode 100644
index b52d85ff3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_ctx.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// optional / simple context binding
-var aFunction = require('./_a-function');
-module.exports = function(fn, that, length){
- aFunction(fn);
- if(that === undefined)return fn;
- switch(length){
- case 1: return function(a){
- return fn.call(that, a);
- };
- case 2: return function(a, b){
- return fn.call(that, a, b);
- };
- case 3: return function(a, b, c){
- return fn.call(that, a, b, c);
- };
- }
- return function(/* ...args */){
- return fn.apply(that, arguments);
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_date-to-primitive.js b/node_modules/babel-runtime/node_modules/core-js/modules/_date-to-primitive.js
deleted file mode 100644
index 561079a1b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_date-to-primitive.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-var anObject = require('./_an-object')
- , toPrimitive = require('./_to-primitive')
- , NUMBER = 'number';
-
-module.exports = function(hint){
- if(hint !== 'string' && hint !== NUMBER && hint !== 'default')throw TypeError('Incorrect hint');
- return toPrimitive(anObject(this), hint != NUMBER);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_defined.js b/node_modules/babel-runtime/node_modules/core-js/modules/_defined.js
deleted file mode 100644
index cfa476b96..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_defined.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// 7.2.1 RequireObjectCoercible(argument)
-module.exports = function(it){
- if(it == undefined)throw TypeError("Can't call method on " + it);
- return it;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_descriptors.js b/node_modules/babel-runtime/node_modules/core-js/modules/_descriptors.js
deleted file mode 100644
index 6ccb7ee24..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_descriptors.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// Thank's IE8 for his funny defineProperty
-module.exports = !require('./_fails')(function(){
- return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_dom-create.js b/node_modules/babel-runtime/node_modules/core-js/modules/_dom-create.js
deleted file mode 100644
index 909b5ff05..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_dom-create.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var isObject = require('./_is-object')
- , document = require('./_global').document
- // in old IE typeof document.createElement is 'object'
- , is = isObject(document) && isObject(document.createElement);
-module.exports = function(it){
- return is ? document.createElement(it) : {};
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_entry-virtual.js b/node_modules/babel-runtime/node_modules/core-js/modules/_entry-virtual.js
deleted file mode 100644
index 0ec61272e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_entry-virtual.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var core = require('./_core');
-module.exports = function(CONSTRUCTOR){
- var C = core[CONSTRUCTOR];
- return (C.virtual || C.prototype);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_enum-bug-keys.js b/node_modules/babel-runtime/node_modules/core-js/modules/_enum-bug-keys.js
deleted file mode 100644
index 928b9fb05..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_enum-bug-keys.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// IE 8- don't enum bug keys
-module.exports = (
- 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
-).split(','); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_enum-keys.js b/node_modules/babel-runtime/node_modules/core-js/modules/_enum-keys.js
deleted file mode 100644
index 3bf8069c1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_enum-keys.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// all enumerable object keys, includes symbols
-var getKeys = require('./_object-keys')
- , gOPS = require('./_object-gops')
- , pIE = require('./_object-pie');
-module.exports = function(it){
- var result = getKeys(it)
- , getSymbols = gOPS.f;
- if(getSymbols){
- var symbols = getSymbols(it)
- , isEnum = pIE.f
- , i = 0
- , key;
- while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);
- } return result;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_export.js b/node_modules/babel-runtime/node_modules/core-js/modules/_export.js
deleted file mode 100644
index afddf3522..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_export.js
+++ /dev/null
@@ -1,43 +0,0 @@
-var global = require('./_global')
- , core = require('./_core')
- , hide = require('./_hide')
- , redefine = require('./_redefine')
- , ctx = require('./_ctx')
- , PROTOTYPE = 'prototype';
-
-var $export = function(type, name, source){
- var IS_FORCED = type & $export.F
- , IS_GLOBAL = type & $export.G
- , IS_STATIC = type & $export.S
- , IS_PROTO = type & $export.P
- , IS_BIND = type & $export.B
- , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]
- , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
- , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {})
- , key, own, out, exp;
- if(IS_GLOBAL)source = name;
- for(key in source){
- // contains in native
- own = !IS_FORCED && target && target[key] !== undefined;
- // export native or passed
- out = (own ? target : source)[key];
- // bind timers to global for call from export context
- exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
- // extend global
- if(target)redefine(target, key, out, type & $export.U);
- // export
- if(exports[key] != out)hide(exports, key, exp);
- if(IS_PROTO && expProto[key] != out)expProto[key] = out;
- }
-};
-global.core = core;
-// type bitmap
-$export.F = 1; // forced
-$export.G = 2; // global
-$export.S = 4; // static
-$export.P = 8; // proto
-$export.B = 16; // bind
-$export.W = 32; // wrap
-$export.U = 64; // safe
-$export.R = 128; // real proto method for `library`
-module.exports = $export; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_fails-is-regexp.js b/node_modules/babel-runtime/node_modules/core-js/modules/_fails-is-regexp.js
deleted file mode 100644
index 130436bf9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_fails-is-regexp.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var MATCH = require('./_wks')('match');
-module.exports = function(KEY){
- var re = /./;
- try {
- '/./'[KEY](re);
- } catch(e){
- try {
- re[MATCH] = false;
- return !'/./'[KEY](re);
- } catch(f){ /* empty */ }
- } return true;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_fails.js b/node_modules/babel-runtime/node_modules/core-js/modules/_fails.js
deleted file mode 100644
index 184e5ea84..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_fails.js
+++ /dev/null
@@ -1,7 +0,0 @@
-module.exports = function(exec){
- try {
- return !!exec();
- } catch(e){
- return true;
- }
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_fix-re-wks.js b/node_modules/babel-runtime/node_modules/core-js/modules/_fix-re-wks.js
deleted file mode 100644
index d29368ce8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_fix-re-wks.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-var hide = require('./_hide')
- , redefine = require('./_redefine')
- , fails = require('./_fails')
- , defined = require('./_defined')
- , wks = require('./_wks');
-
-module.exports = function(KEY, length, exec){
- var SYMBOL = wks(KEY)
- , fns = exec(defined, SYMBOL, ''[KEY])
- , strfn = fns[0]
- , rxfn = fns[1];
- if(fails(function(){
- var O = {};
- O[SYMBOL] = function(){ return 7; };
- return ''[KEY](O) != 7;
- })){
- redefine(String.prototype, KEY, strfn);
- hide(RegExp.prototype, SYMBOL, length == 2
- // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
- // 21.2.5.11 RegExp.prototype[@@split](string, limit)
- ? function(string, arg){ return rxfn.call(string, this, arg); }
- // 21.2.5.6 RegExp.prototype[@@match](string)
- // 21.2.5.9 RegExp.prototype[@@search](string)
- : function(string){ return rxfn.call(string, this); }
- );
- }
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_flags.js b/node_modules/babel-runtime/node_modules/core-js/modules/_flags.js
deleted file mode 100644
index 054f90886..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_flags.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-// 21.2.5.3 get RegExp.prototype.flags
-var anObject = require('./_an-object');
-module.exports = function(){
- var that = anObject(this)
- , result = '';
- if(that.global) result += 'g';
- if(that.ignoreCase) result += 'i';
- if(that.multiline) result += 'm';
- if(that.unicode) result += 'u';
- if(that.sticky) result += 'y';
- return result;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_for-of.js b/node_modules/babel-runtime/node_modules/core-js/modules/_for-of.js
deleted file mode 100644
index b4824fefa..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_for-of.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var ctx = require('./_ctx')
- , call = require('./_iter-call')
- , isArrayIter = require('./_is-array-iter')
- , anObject = require('./_an-object')
- , toLength = require('./_to-length')
- , getIterFn = require('./core.get-iterator-method')
- , BREAK = {}
- , RETURN = {};
-var exports = module.exports = function(iterable, entries, fn, that, ITERATOR){
- var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)
- , f = ctx(fn, that, entries ? 2 : 1)
- , index = 0
- , length, step, iterator, result;
- if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');
- // fast case for arrays with default iterator
- if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){
- result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
- if(result === BREAK || result === RETURN)return result;
- } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
- result = call(iterator, f, step.value, entries);
- if(result === BREAK || result === RETURN)return result;
- }
-};
-exports.BREAK = BREAK;
-exports.RETURN = RETURN; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_global.js b/node_modules/babel-runtime/node_modules/core-js/modules/_global.js
deleted file mode 100644
index df6efb476..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_global.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-var global = module.exports = typeof window != 'undefined' && window.Math == Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
-if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_has.js b/node_modules/babel-runtime/node_modules/core-js/modules/_has.js
deleted file mode 100644
index 870b40e71..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_has.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var hasOwnProperty = {}.hasOwnProperty;
-module.exports = function(it, key){
- return hasOwnProperty.call(it, key);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_hide.js b/node_modules/babel-runtime/node_modules/core-js/modules/_hide.js
deleted file mode 100644
index 4031e8080..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_hide.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var dP = require('./_object-dp')
- , createDesc = require('./_property-desc');
-module.exports = require('./_descriptors') ? function(object, key, value){
- return dP.f(object, key, createDesc(1, value));
-} : function(object, key, value){
- object[key] = value;
- return object;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_html.js b/node_modules/babel-runtime/node_modules/core-js/modules/_html.js
deleted file mode 100644
index 98f5142c4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_html.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./_global').document && document.documentElement; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_ie8-dom-define.js b/node_modules/babel-runtime/node_modules/core-js/modules/_ie8-dom-define.js
deleted file mode 100644
index 18ffd59da..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_ie8-dom-define.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = !require('./_descriptors') && !require('./_fails')(function(){
- return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_inherit-if-required.js b/node_modules/babel-runtime/node_modules/core-js/modules/_inherit-if-required.js
deleted file mode 100644
index d3948405b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_inherit-if-required.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var isObject = require('./_is-object')
- , setPrototypeOf = require('./_set-proto').set;
-module.exports = function(that, target, C){
- var P, S = target.constructor;
- if(S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf){
- setPrototypeOf(that, P);
- } return that;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_invoke.js b/node_modules/babel-runtime/node_modules/core-js/modules/_invoke.js
deleted file mode 100644
index 08e307fd0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_invoke.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// fast apply, http://jsperf.lnkit.com/fast-apply/5
-module.exports = function(fn, args, that){
- var un = that === undefined;
- switch(args.length){
- case 0: return un ? fn()
- : fn.call(that);
- case 1: return un ? fn(args[0])
- : fn.call(that, args[0]);
- case 2: return un ? fn(args[0], args[1])
- : fn.call(that, args[0], args[1]);
- case 3: return un ? fn(args[0], args[1], args[2])
- : fn.call(that, args[0], args[1], args[2]);
- case 4: return un ? fn(args[0], args[1], args[2], args[3])
- : fn.call(that, args[0], args[1], args[2], args[3]);
- } return fn.apply(that, args);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_iobject.js b/node_modules/babel-runtime/node_modules/core-js/modules/_iobject.js
deleted file mode 100644
index b58db4897..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_iobject.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// fallback for non-array-like ES3 and non-enumerable old V8 strings
-var cof = require('./_cof');
-module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
- return cof(it) == 'String' ? it.split('') : Object(it);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_is-array-iter.js b/node_modules/babel-runtime/node_modules/core-js/modules/_is-array-iter.js
deleted file mode 100644
index 8139d71c2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_is-array-iter.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// check on default Array iterator
-var Iterators = require('./_iterators')
- , ITERATOR = require('./_wks')('iterator')
- , ArrayProto = Array.prototype;
-
-module.exports = function(it){
- return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_is-array.js b/node_modules/babel-runtime/node_modules/core-js/modules/_is-array.js
deleted file mode 100644
index b4a3a8ed8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_is-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// 7.2.2 IsArray(argument)
-var cof = require('./_cof');
-module.exports = Array.isArray || function isArray(arg){
- return cof(arg) == 'Array';
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_is-integer.js b/node_modules/babel-runtime/node_modules/core-js/modules/_is-integer.js
deleted file mode 100644
index 22db67edb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_is-integer.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// 20.1.2.3 Number.isInteger(number)
-var isObject = require('./_is-object')
- , floor = Math.floor;
-module.exports = function isInteger(it){
- return !isObject(it) && isFinite(it) && floor(it) === it;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_is-object.js b/node_modules/babel-runtime/node_modules/core-js/modules/_is-object.js
deleted file mode 100644
index ee694be2f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_is-object.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = function(it){
- return typeof it === 'object' ? it !== null : typeof it === 'function';
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_is-regexp.js b/node_modules/babel-runtime/node_modules/core-js/modules/_is-regexp.js
deleted file mode 100644
index 55b2c629c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_is-regexp.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 7.2.8 IsRegExp(argument)
-var isObject = require('./_is-object')
- , cof = require('./_cof')
- , MATCH = require('./_wks')('match');
-module.exports = function(it){
- var isRegExp;
- return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_iter-call.js b/node_modules/babel-runtime/node_modules/core-js/modules/_iter-call.js
deleted file mode 100644
index e3565ba9f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_iter-call.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// call something on iterator step with safe closing on error
-var anObject = require('./_an-object');
-module.exports = function(iterator, fn, value, entries){
- try {
- return entries ? fn(anObject(value)[0], value[1]) : fn(value);
- // 7.4.6 IteratorClose(iterator, completion)
- } catch(e){
- var ret = iterator['return'];
- if(ret !== undefined)anObject(ret.call(iterator));
- throw e;
- }
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_iter-create.js b/node_modules/babel-runtime/node_modules/core-js/modules/_iter-create.js
deleted file mode 100644
index 9a9aa4fbb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_iter-create.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-var create = require('./_object-create')
- , descriptor = require('./_property-desc')
- , setToStringTag = require('./_set-to-string-tag')
- , IteratorPrototype = {};
-
-// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
-require('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });
-
-module.exports = function(Constructor, NAME, next){
- Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});
- setToStringTag(Constructor, NAME + ' Iterator');
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_iter-define.js b/node_modules/babel-runtime/node_modules/core-js/modules/_iter-define.js
deleted file mode 100644
index f72a50214..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_iter-define.js
+++ /dev/null
@@ -1,70 +0,0 @@
-'use strict';
-var LIBRARY = require('./_library')
- , $export = require('./_export')
- , redefine = require('./_redefine')
- , hide = require('./_hide')
- , has = require('./_has')
- , Iterators = require('./_iterators')
- , $iterCreate = require('./_iter-create')
- , setToStringTag = require('./_set-to-string-tag')
- , getPrototypeOf = require('./_object-gpo')
- , ITERATOR = require('./_wks')('iterator')
- , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
- , FF_ITERATOR = '@@iterator'
- , KEYS = 'keys'
- , VALUES = 'values';
-
-var returnThis = function(){ return this; };
-
-module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){
- $iterCreate(Constructor, NAME, next);
- var getMethod = function(kind){
- if(!BUGGY && kind in proto)return proto[kind];
- switch(kind){
- case KEYS: return function keys(){ return new Constructor(this, kind); };
- case VALUES: return function values(){ return new Constructor(this, kind); };
- } return function entries(){ return new Constructor(this, kind); };
- };
- var TAG = NAME + ' Iterator'
- , DEF_VALUES = DEFAULT == VALUES
- , VALUES_BUG = false
- , proto = Base.prototype
- , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
- , $default = $native || getMethod(DEFAULT)
- , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined
- , $anyNative = NAME == 'Array' ? proto.entries || $native : $native
- , methods, key, IteratorPrototype;
- // Fix native
- if($anyNative){
- IteratorPrototype = getPrototypeOf($anyNative.call(new Base));
- if(IteratorPrototype !== Object.prototype){
- // Set @@toStringTag to native iterators
- setToStringTag(IteratorPrototype, TAG, true);
- // fix for some old engines
- if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
- }
- }
- // fix Array#{values, @@iterator}.name in V8 / FF
- if(DEF_VALUES && $native && $native.name !== VALUES){
- VALUES_BUG = true;
- $default = function values(){ return $native.call(this); };
- }
- // Define iterator
- if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
- hide(proto, ITERATOR, $default);
- }
- // Plug for library
- Iterators[NAME] = $default;
- Iterators[TAG] = returnThis;
- if(DEFAULT){
- methods = {
- values: DEF_VALUES ? $default : getMethod(VALUES),
- keys: IS_SET ? $default : getMethod(KEYS),
- entries: $entries
- };
- if(FORCED)for(key in methods){
- if(!(key in proto))redefine(proto, key, methods[key]);
- } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
- }
- return methods;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_iter-detect.js b/node_modules/babel-runtime/node_modules/core-js/modules/_iter-detect.js
deleted file mode 100644
index 87c7aecf4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_iter-detect.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var ITERATOR = require('./_wks')('iterator')
- , SAFE_CLOSING = false;
-
-try {
- var riter = [7][ITERATOR]();
- riter['return'] = function(){ SAFE_CLOSING = true; };
- Array.from(riter, function(){ throw 2; });
-} catch(e){ /* empty */ }
-
-module.exports = function(exec, skipClosing){
- if(!skipClosing && !SAFE_CLOSING)return false;
- var safe = false;
- try {
- var arr = [7]
- , iter = arr[ITERATOR]();
- iter.next = function(){ return {done: safe = true}; };
- arr[ITERATOR] = function(){ return iter; };
- exec(arr);
- } catch(e){ /* empty */ }
- return safe;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_iter-step.js b/node_modules/babel-runtime/node_modules/core-js/modules/_iter-step.js
deleted file mode 100644
index 6ff0dc518..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_iter-step.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = function(done, value){
- return {value: value, done: !!done};
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_iterators.js b/node_modules/babel-runtime/node_modules/core-js/modules/_iterators.js
deleted file mode 100644
index a09954537..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_iterators.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = {}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_keyof.js b/node_modules/babel-runtime/node_modules/core-js/modules/_keyof.js
deleted file mode 100644
index 7b63229b0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_keyof.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var getKeys = require('./_object-keys')
- , toIObject = require('./_to-iobject');
-module.exports = function(object, el){
- var O = toIObject(object)
- , keys = getKeys(O)
- , length = keys.length
- , index = 0
- , key;
- while(length > index)if(O[key = keys[index++]] === el)return key;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_library.js b/node_modules/babel-runtime/node_modules/core-js/modules/_library.js
deleted file mode 100644
index 82e47dd52..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_library.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = false; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_math-expm1.js b/node_modules/babel-runtime/node_modules/core-js/modules/_math-expm1.js
deleted file mode 100644
index 5131aa951..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_math-expm1.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// 20.2.2.14 Math.expm1(x)
-var $expm1 = Math.expm1;
-module.exports = (!$expm1
- // Old FF bug
- || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168
- // Tor Browser bug
- || $expm1(-2e-17) != -2e-17
-) ? function expm1(x){
- return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
-} : $expm1; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_math-log1p.js b/node_modules/babel-runtime/node_modules/core-js/modules/_math-log1p.js
deleted file mode 100644
index a92bf463a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_math-log1p.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.2.2.20 Math.log1p(x)
-module.exports = Math.log1p || function log1p(x){
- return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_math-sign.js b/node_modules/babel-runtime/node_modules/core-js/modules/_math-sign.js
deleted file mode 100644
index a4848df60..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_math-sign.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.2.2.28 Math.sign(x)
-module.exports = Math.sign || function sign(x){
- return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_meta.js b/node_modules/babel-runtime/node_modules/core-js/modules/_meta.js
deleted file mode 100644
index 7daca0094..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_meta.js
+++ /dev/null
@@ -1,53 +0,0 @@
-var META = require('./_uid')('meta')
- , isObject = require('./_is-object')
- , has = require('./_has')
- , setDesc = require('./_object-dp').f
- , id = 0;
-var isExtensible = Object.isExtensible || function(){
- return true;
-};
-var FREEZE = !require('./_fails')(function(){
- return isExtensible(Object.preventExtensions({}));
-});
-var setMeta = function(it){
- setDesc(it, META, {value: {
- i: 'O' + ++id, // object ID
- w: {} // weak collections IDs
- }});
-};
-var fastKey = function(it, create){
- // return primitive with prefix
- if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
- if(!has(it, META)){
- // can't set metadata to uncaught frozen object
- if(!isExtensible(it))return 'F';
- // not necessary to add metadata
- if(!create)return 'E';
- // add missing metadata
- setMeta(it);
- // return object ID
- } return it[META].i;
-};
-var getWeak = function(it, create){
- if(!has(it, META)){
- // can't set metadata to uncaught frozen object
- if(!isExtensible(it))return true;
- // not necessary to add metadata
- if(!create)return false;
- // add missing metadata
- setMeta(it);
- // return hash weak collections IDs
- } return it[META].w;
-};
-// add metadata on freeze-family methods calling
-var onFreeze = function(it){
- if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);
- return it;
-};
-var meta = module.exports = {
- KEY: META,
- NEED: false,
- fastKey: fastKey,
- getWeak: getWeak,
- onFreeze: onFreeze
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_metadata.js b/node_modules/babel-runtime/node_modules/core-js/modules/_metadata.js
deleted file mode 100644
index eb5a762d4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_metadata.js
+++ /dev/null
@@ -1,51 +0,0 @@
-var Map = require('./es6.map')
- , $export = require('./_export')
- , shared = require('./_shared')('metadata')
- , store = shared.store || (shared.store = new (require('./es6.weak-map')));
-
-var getOrCreateMetadataMap = function(target, targetKey, create){
- var targetMetadata = store.get(target);
- if(!targetMetadata){
- if(!create)return undefined;
- store.set(target, targetMetadata = new Map);
- }
- var keyMetadata = targetMetadata.get(targetKey);
- if(!keyMetadata){
- if(!create)return undefined;
- targetMetadata.set(targetKey, keyMetadata = new Map);
- } return keyMetadata;
-};
-var ordinaryHasOwnMetadata = function(MetadataKey, O, P){
- var metadataMap = getOrCreateMetadataMap(O, P, false);
- return metadataMap === undefined ? false : metadataMap.has(MetadataKey);
-};
-var ordinaryGetOwnMetadata = function(MetadataKey, O, P){
- var metadataMap = getOrCreateMetadataMap(O, P, false);
- return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);
-};
-var ordinaryDefineOwnMetadata = function(MetadataKey, MetadataValue, O, P){
- getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);
-};
-var ordinaryOwnMetadataKeys = function(target, targetKey){
- var metadataMap = getOrCreateMetadataMap(target, targetKey, false)
- , keys = [];
- if(metadataMap)metadataMap.forEach(function(_, key){ keys.push(key); });
- return keys;
-};
-var toMetaKey = function(it){
- return it === undefined || typeof it == 'symbol' ? it : String(it);
-};
-var exp = function(O){
- $export($export.S, 'Reflect', O);
-};
-
-module.exports = {
- store: store,
- map: getOrCreateMetadataMap,
- has: ordinaryHasOwnMetadata,
- get: ordinaryGetOwnMetadata,
- set: ordinaryDefineOwnMetadata,
- keys: ordinaryOwnMetadataKeys,
- key: toMetaKey,
- exp: exp
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_microtask.js b/node_modules/babel-runtime/node_modules/core-js/modules/_microtask.js
deleted file mode 100644
index b0f2a0df0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_microtask.js
+++ /dev/null
@@ -1,68 +0,0 @@
-var global = require('./_global')
- , macrotask = require('./_task').set
- , Observer = global.MutationObserver || global.WebKitMutationObserver
- , process = global.process
- , Promise = global.Promise
- , isNode = require('./_cof')(process) == 'process';
-
-module.exports = function(){
- var head, last, notify;
-
- var flush = function(){
- var parent, fn;
- if(isNode && (parent = process.domain))parent.exit();
- while(head){
- fn = head.fn;
- head = head.next;
- try {
- fn();
- } catch(e){
- if(head)notify();
- else last = undefined;
- throw e;
- }
- } last = undefined;
- if(parent)parent.enter();
- };
-
- // Node.js
- if(isNode){
- notify = function(){
- process.nextTick(flush);
- };
- // browsers with MutationObserver
- } else if(Observer){
- var toggle = true
- , node = document.createTextNode('');
- new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new
- notify = function(){
- node.data = toggle = !toggle;
- };
- // environments with maybe non-completely correct, but existent Promise
- } else if(Promise && Promise.resolve){
- var promise = Promise.resolve();
- notify = function(){
- promise.then(flush);
- };
- // for other environments - macrotask based on:
- // - setImmediate
- // - MessageChannel
- // - window.postMessag
- // - onreadystatechange
- // - setTimeout
- } else {
- notify = function(){
- // strange IE + webpack dev server bug - use .call(global)
- macrotask.call(global, flush);
- };
- }
-
- return function(fn){
- var task = {fn: fn, next: undefined};
- if(last)last.next = task;
- if(!head){
- head = task;
- notify();
- } last = task;
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_object-assign.js b/node_modules/babel-runtime/node_modules/core-js/modules/_object-assign.js
deleted file mode 100644
index c575aba21..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_object-assign.js
+++ /dev/null
@@ -1,33 +0,0 @@
-'use strict';
-// 19.1.2.1 Object.assign(target, source, ...)
-var getKeys = require('./_object-keys')
- , gOPS = require('./_object-gops')
- , pIE = require('./_object-pie')
- , toObject = require('./_to-object')
- , IObject = require('./_iobject')
- , $assign = Object.assign;
-
-// should work with symbols and should have deterministic property order (V8 bug)
-module.exports = !$assign || require('./_fails')(function(){
- var A = {}
- , B = {}
- , S = Symbol()
- , K = 'abcdefghijklmnopqrst';
- A[S] = 7;
- K.split('').forEach(function(k){ B[k] = k; });
- return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
-}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
- var T = toObject(target)
- , aLen = arguments.length
- , index = 1
- , getSymbols = gOPS.f
- , isEnum = pIE.f;
- while(aLen > index){
- var S = IObject(arguments[index++])
- , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
- , length = keys.length
- , j = 0
- , key;
- while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
- } return T;
-} : $assign; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_object-create.js b/node_modules/babel-runtime/node_modules/core-js/modules/_object-create.js
deleted file mode 100644
index 3379760f9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_object-create.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
-var anObject = require('./_an-object')
- , dPs = require('./_object-dps')
- , enumBugKeys = require('./_enum-bug-keys')
- , IE_PROTO = require('./_shared-key')('IE_PROTO')
- , Empty = function(){ /* empty */ }
- , PROTOTYPE = 'prototype';
-
-// Create object with fake `null` prototype: use iframe Object with cleared prototype
-var createDict = function(){
- // Thrash, waste and sodomy: IE GC bug
- var iframe = require('./_dom-create')('iframe')
- , i = enumBugKeys.length
- , lt = '<'
- , gt = '>'
- , iframeDocument;
- iframe.style.display = 'none';
- require('./_html').appendChild(iframe);
- iframe.src = 'javascript:'; // eslint-disable-line no-script-url
- // createDict = iframe.contentWindow.Object;
- // html.removeChild(iframe);
- iframeDocument = iframe.contentWindow.document;
- iframeDocument.open();
- iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
- iframeDocument.close();
- createDict = iframeDocument.F;
- while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];
- return createDict();
-};
-
-module.exports = Object.create || function create(O, Properties){
- var result;
- if(O !== null){
- Empty[PROTOTYPE] = anObject(O);
- result = new Empty;
- Empty[PROTOTYPE] = null;
- // add "__proto__" for Object.getPrototypeOf polyfill
- result[IE_PROTO] = O;
- } else result = createDict();
- return Properties === undefined ? result : dPs(result, Properties);
-};
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_object-define.js b/node_modules/babel-runtime/node_modules/core-js/modules/_object-define.js
deleted file mode 100644
index f246c4e32..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_object-define.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var dP = require('./_object-dp')
- , gOPD = require('./_object-gopd')
- , ownKeys = require('./_own-keys')
- , toIObject = require('./_to-iobject');
-
-module.exports = function define(target, mixin){
- var keys = ownKeys(toIObject(mixin))
- , length = keys.length
- , i = 0, key;
- while(length > i)dP.f(target, key = keys[i++], gOPD.f(mixin, key));
- return target;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_object-dp.js b/node_modules/babel-runtime/node_modules/core-js/modules/_object-dp.js
deleted file mode 100644
index e7ca8a463..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_object-dp.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var anObject = require('./_an-object')
- , IE8_DOM_DEFINE = require('./_ie8-dom-define')
- , toPrimitive = require('./_to-primitive')
- , dP = Object.defineProperty;
-
-exports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){
- anObject(O);
- P = toPrimitive(P, true);
- anObject(Attributes);
- if(IE8_DOM_DEFINE)try {
- return dP(O, P, Attributes);
- } catch(e){ /* empty */ }
- if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
- if('value' in Attributes)O[P] = Attributes.value;
- return O;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_object-dps.js b/node_modules/babel-runtime/node_modules/core-js/modules/_object-dps.js
deleted file mode 100644
index 8cd4147ac..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_object-dps.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var dP = require('./_object-dp')
- , anObject = require('./_an-object')
- , getKeys = require('./_object-keys');
-
-module.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){
- anObject(O);
- var keys = getKeys(Properties)
- , length = keys.length
- , i = 0
- , P;
- while(length > i)dP.f(O, P = keys[i++], Properties[P]);
- return O;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_object-forced-pam.js b/node_modules/babel-runtime/node_modules/core-js/modules/_object-forced-pam.js
deleted file mode 100644
index 668a07dc2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_object-forced-pam.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// Forced replacement prototype accessors methods
-module.exports = require('./_library')|| !require('./_fails')(function(){
- var K = Math.random();
- // In FF throws only define methods
- __defineSetter__.call(null, K, function(){ /* empty */});
- delete require('./_global')[K];
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_object-gopd.js b/node_modules/babel-runtime/node_modules/core-js/modules/_object-gopd.js
deleted file mode 100644
index 756206aba..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_object-gopd.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var pIE = require('./_object-pie')
- , createDesc = require('./_property-desc')
- , toIObject = require('./_to-iobject')
- , toPrimitive = require('./_to-primitive')
- , has = require('./_has')
- , IE8_DOM_DEFINE = require('./_ie8-dom-define')
- , gOPD = Object.getOwnPropertyDescriptor;
-
-exports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P){
- O = toIObject(O);
- P = toPrimitive(P, true);
- if(IE8_DOM_DEFINE)try {
- return gOPD(O, P);
- } catch(e){ /* empty */ }
- if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_object-gopn-ext.js b/node_modules/babel-runtime/node_modules/core-js/modules/_object-gopn-ext.js
deleted file mode 100644
index f4d10b4a1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_object-gopn-ext.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
-var toIObject = require('./_to-iobject')
- , gOPN = require('./_object-gopn').f
- , toString = {}.toString;
-
-var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
- ? Object.getOwnPropertyNames(window) : [];
-
-var getWindowNames = function(it){
- try {
- return gOPN(it);
- } catch(e){
- return windowNames.slice();
- }
-};
-
-module.exports.f = function getOwnPropertyNames(it){
- return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
-};
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_object-gopn.js b/node_modules/babel-runtime/node_modules/core-js/modules/_object-gopn.js
deleted file mode 100644
index beebf4dac..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_object-gopn.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
-var $keys = require('./_object-keys-internal')
- , hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');
-
-exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){
- return $keys(O, hiddenKeys);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_object-gops.js b/node_modules/babel-runtime/node_modules/core-js/modules/_object-gops.js
deleted file mode 100644
index 8f93d76b1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_object-gops.js
+++ /dev/null
@@ -1 +0,0 @@
-exports.f = Object.getOwnPropertySymbols; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_object-gpo.js b/node_modules/babel-runtime/node_modules/core-js/modules/_object-gpo.js
deleted file mode 100644
index 535dc6e94..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_object-gpo.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
-var has = require('./_has')
- , toObject = require('./_to-object')
- , IE_PROTO = require('./_shared-key')('IE_PROTO')
- , ObjectProto = Object.prototype;
-
-module.exports = Object.getPrototypeOf || function(O){
- O = toObject(O);
- if(has(O, IE_PROTO))return O[IE_PROTO];
- if(typeof O.constructor == 'function' && O instanceof O.constructor){
- return O.constructor.prototype;
- } return O instanceof Object ? ObjectProto : null;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_object-keys-internal.js b/node_modules/babel-runtime/node_modules/core-js/modules/_object-keys-internal.js
deleted file mode 100644
index e23481d7c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_object-keys-internal.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var has = require('./_has')
- , toIObject = require('./_to-iobject')
- , arrayIndexOf = require('./_array-includes')(false)
- , IE_PROTO = require('./_shared-key')('IE_PROTO');
-
-module.exports = function(object, names){
- var O = toIObject(object)
- , i = 0
- , result = []
- , key;
- for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
- // Don't enum bug & hidden keys
- while(names.length > i)if(has(O, key = names[i++])){
- ~arrayIndexOf(result, key) || result.push(key);
- }
- return result;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_object-keys.js b/node_modules/babel-runtime/node_modules/core-js/modules/_object-keys.js
deleted file mode 100644
index 11d4cceed..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_object-keys.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// 19.1.2.14 / 15.2.3.14 Object.keys(O)
-var $keys = require('./_object-keys-internal')
- , enumBugKeys = require('./_enum-bug-keys');
-
-module.exports = Object.keys || function keys(O){
- return $keys(O, enumBugKeys);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_object-pie.js b/node_modules/babel-runtime/node_modules/core-js/modules/_object-pie.js
deleted file mode 100644
index 13479a171..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_object-pie.js
+++ /dev/null
@@ -1 +0,0 @@
-exports.f = {}.propertyIsEnumerable; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_object-sap.js b/node_modules/babel-runtime/node_modules/core-js/modules/_object-sap.js
deleted file mode 100644
index b76fec5f4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_object-sap.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// most Object methods by ES6 should accept primitives
-var $export = require('./_export')
- , core = require('./_core')
- , fails = require('./_fails');
-module.exports = function(KEY, exec){
- var fn = (core.Object || {})[KEY] || Object[KEY]
- , exp = {};
- exp[KEY] = exec(fn);
- $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_object-to-array.js b/node_modules/babel-runtime/node_modules/core-js/modules/_object-to-array.js
deleted file mode 100644
index b6fdf05d7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_object-to-array.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var getKeys = require('./_object-keys')
- , toIObject = require('./_to-iobject')
- , isEnum = require('./_object-pie').f;
-module.exports = function(isEntries){
- return function(it){
- var O = toIObject(it)
- , keys = getKeys(O)
- , length = keys.length
- , i = 0
- , result = []
- , key;
- while(length > i)if(isEnum.call(O, key = keys[i++])){
- result.push(isEntries ? [key, O[key]] : O[key]);
- } return result;
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_own-keys.js b/node_modules/babel-runtime/node_modules/core-js/modules/_own-keys.js
deleted file mode 100644
index 045ce3d58..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_own-keys.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// all object keys, includes non-enumerable and symbols
-var gOPN = require('./_object-gopn')
- , gOPS = require('./_object-gops')
- , anObject = require('./_an-object')
- , Reflect = require('./_global').Reflect;
-module.exports = Reflect && Reflect.ownKeys || function ownKeys(it){
- var keys = gOPN.f(anObject(it))
- , getSymbols = gOPS.f;
- return getSymbols ? keys.concat(getSymbols(it)) : keys;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_parse-float.js b/node_modules/babel-runtime/node_modules/core-js/modules/_parse-float.js
deleted file mode 100644
index 3d0e65312..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_parse-float.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $parseFloat = require('./_global').parseFloat
- , $trim = require('./_string-trim').trim;
-
-module.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str){
- var string = $trim(String(str), 3)
- , result = $parseFloat(string);
- return result === 0 && string.charAt(0) == '-' ? -0 : result;
-} : $parseFloat; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_parse-int.js b/node_modules/babel-runtime/node_modules/core-js/modules/_parse-int.js
deleted file mode 100644
index c23ffc09c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_parse-int.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var $parseInt = require('./_global').parseInt
- , $trim = require('./_string-trim').trim
- , ws = require('./_string-ws')
- , hex = /^[\-+]?0[xX]/;
-
-module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix){
- var string = $trim(String(str), 3);
- return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
-} : $parseInt; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_partial.js b/node_modules/babel-runtime/node_modules/core-js/modules/_partial.js
deleted file mode 100644
index 3d411b705..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_partial.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict';
-var path = require('./_path')
- , invoke = require('./_invoke')
- , aFunction = require('./_a-function');
-module.exports = function(/* ...pargs */){
- var fn = aFunction(this)
- , length = arguments.length
- , pargs = Array(length)
- , i = 0
- , _ = path._
- , holder = false;
- while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true;
- return function(/* ...args */){
- var that = this
- , aLen = arguments.length
- , j = 0, k = 0, args;
- if(!holder && !aLen)return invoke(fn, pargs, that);
- args = pargs.slice();
- if(holder)for(;length > j; j++)if(args[j] === _)args[j] = arguments[k++];
- while(aLen > k)args.push(arguments[k++]);
- return invoke(fn, args, that);
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_path.js b/node_modules/babel-runtime/node_modules/core-js/modules/_path.js
deleted file mode 100644
index d63df9d4d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_path.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./_global'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_property-desc.js b/node_modules/babel-runtime/node_modules/core-js/modules/_property-desc.js
deleted file mode 100644
index e3f7ab2dc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_property-desc.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = function(bitmap, value){
- return {
- enumerable : !(bitmap & 1),
- configurable: !(bitmap & 2),
- writable : !(bitmap & 4),
- value : value
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_redefine-all.js b/node_modules/babel-runtime/node_modules/core-js/modules/_redefine-all.js
deleted file mode 100644
index ec1c5f765..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_redefine-all.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var redefine = require('./_redefine');
-module.exports = function(target, src, safe){
- for(var key in src)redefine(target, key, src[key], safe);
- return target;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_redefine.js b/node_modules/babel-runtime/node_modules/core-js/modules/_redefine.js
deleted file mode 100644
index 8e1bfe06c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_redefine.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var global = require('./_global')
- , hide = require('./_hide')
- , has = require('./_has')
- , SRC = require('./_uid')('src')
- , TO_STRING = 'toString'
- , $toString = Function[TO_STRING]
- , TPL = ('' + $toString).split(TO_STRING);
-
-require('./_core').inspectSource = function(it){
- return $toString.call(it);
-};
-
-(module.exports = function(O, key, val, safe){
- var isFunction = typeof val == 'function';
- if(isFunction)has(val, 'name') || hide(val, 'name', key);
- if(O[key] === val)return;
- if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
- if(O === global){
- O[key] = val;
- } else {
- if(!safe){
- delete O[key];
- hide(O, key, val);
- } else {
- if(O[key])O[key] = val;
- else hide(O, key, val);
- }
- }
-// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
-})(Function.prototype, TO_STRING, function toString(){
- return typeof this == 'function' && this[SRC] || $toString.call(this);
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_replacer.js b/node_modules/babel-runtime/node_modules/core-js/modules/_replacer.js
deleted file mode 100644
index 5360a3d35..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_replacer.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = function(regExp, replace){
- var replacer = replace === Object(replace) ? function(part){
- return replace[part];
- } : replace;
- return function(it){
- return String(it).replace(regExp, replacer);
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_same-value.js b/node_modules/babel-runtime/node_modules/core-js/modules/_same-value.js
deleted file mode 100644
index 8c2b8c7f6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_same-value.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 7.2.9 SameValue(x, y)
-module.exports = Object.is || function is(x, y){
- return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_set-proto.js b/node_modules/babel-runtime/node_modules/core-js/modules/_set-proto.js
deleted file mode 100644
index 8d5dad3fd..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_set-proto.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Works with __proto__ only. Old v8 can't work with null proto objects.
-/* eslint-disable no-proto */
-var isObject = require('./_is-object')
- , anObject = require('./_an-object');
-var check = function(O, proto){
- anObject(O);
- if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!");
-};
-module.exports = {
- set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
- function(test, buggy, set){
- try {
- set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);
- set(test, []);
- buggy = !(test instanceof Array);
- } catch(e){ buggy = true; }
- return function setPrototypeOf(O, proto){
- check(O, proto);
- if(buggy)O.__proto__ = proto;
- else set(O, proto);
- return O;
- };
- }({}, false) : undefined),
- check: check
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_set-species.js b/node_modules/babel-runtime/node_modules/core-js/modules/_set-species.js
deleted file mode 100644
index a21bd0395..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_set-species.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-var global = require('./_global')
- , dP = require('./_object-dp')
- , DESCRIPTORS = require('./_descriptors')
- , SPECIES = require('./_wks')('species');
-
-module.exports = function(KEY){
- var C = global[KEY];
- if(DESCRIPTORS && C && !C[SPECIES])dP.f(C, SPECIES, {
- configurable: true,
- get: function(){ return this; }
- });
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_set-to-string-tag.js b/node_modules/babel-runtime/node_modules/core-js/modules/_set-to-string-tag.js
deleted file mode 100644
index ffbdddab8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_set-to-string-tag.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var def = require('./_object-dp').f
- , has = require('./_has')
- , TAG = require('./_wks')('toStringTag');
-
-module.exports = function(it, tag, stat){
- if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_shared-key.js b/node_modules/babel-runtime/node_modules/core-js/modules/_shared-key.js
deleted file mode 100644
index 5ed763496..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_shared-key.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var shared = require('./_shared')('keys')
- , uid = require('./_uid');
-module.exports = function(key){
- return shared[key] || (shared[key] = uid(key));
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_shared.js b/node_modules/babel-runtime/node_modules/core-js/modules/_shared.js
deleted file mode 100644
index 3f9e4c891..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_shared.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var global = require('./_global')
- , SHARED = '__core-js_shared__'
- , store = global[SHARED] || (global[SHARED] = {});
-module.exports = function(key){
- return store[key] || (store[key] = {});
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_species-constructor.js b/node_modules/babel-runtime/node_modules/core-js/modules/_species-constructor.js
deleted file mode 100644
index 7a4d1baf2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_species-constructor.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 7.3.20 SpeciesConstructor(O, defaultConstructor)
-var anObject = require('./_an-object')
- , aFunction = require('./_a-function')
- , SPECIES = require('./_wks')('species');
-module.exports = function(O, D){
- var C = anObject(O).constructor, S;
- return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_strict-method.js b/node_modules/babel-runtime/node_modules/core-js/modules/_strict-method.js
deleted file mode 100644
index 96b6c6e8a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_strict-method.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var fails = require('./_fails');
-
-module.exports = function(method, arg){
- return !!method && fails(function(){
- arg ? method.call(null, function(){}, 1) : method.call(null);
- });
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_string-at.js b/node_modules/babel-runtime/node_modules/core-js/modules/_string-at.js
deleted file mode 100644
index ecc0d21cb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_string-at.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var toInteger = require('./_to-integer')
- , defined = require('./_defined');
-// true -> String#at
-// false -> String#codePointAt
-module.exports = function(TO_STRING){
- return function(that, pos){
- var s = String(defined(that))
- , i = toInteger(pos)
- , l = s.length
- , a, b;
- if(i < 0 || i >= l)return TO_STRING ? '' : undefined;
- a = s.charCodeAt(i);
- return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
- ? TO_STRING ? s.charAt(i) : a
- : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
- };
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_string-context.js b/node_modules/babel-runtime/node_modules/core-js/modules/_string-context.js
deleted file mode 100644
index 5f513483f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_string-context.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// helper for String#{startsWith, endsWith, includes}
-var isRegExp = require('./_is-regexp')
- , defined = require('./_defined');
-
-module.exports = function(that, searchString, NAME){
- if(isRegExp(searchString))throw TypeError('String#' + NAME + " doesn't accept regex!");
- return String(defined(that));
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_string-html.js b/node_modules/babel-runtime/node_modules/core-js/modules/_string-html.js
deleted file mode 100644
index 95daf8124..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_string-html.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var $export = require('./_export')
- , fails = require('./_fails')
- , defined = require('./_defined')
- , quot = /"/g;
-// B.2.3.2.1 CreateHTML(string, tag, attribute, value)
-var createHTML = function(string, tag, attribute, value) {
- var S = String(defined(string))
- , p1 = '<' + tag;
- if(attribute !== '')p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
- return p1 + '>' + S + '</' + tag + '>';
-};
-module.exports = function(NAME, exec){
- var O = {};
- O[NAME] = exec(createHTML);
- $export($export.P + $export.F * fails(function(){
- var test = ''[NAME]('"');
- return test !== test.toLowerCase() || test.split('"').length > 3;
- }), 'String', O);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_string-pad.js b/node_modules/babel-runtime/node_modules/core-js/modules/_string-pad.js
deleted file mode 100644
index dccd155e8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_string-pad.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// https://github.com/tc39/proposal-string-pad-start-end
-var toLength = require('./_to-length')
- , repeat = require('./_string-repeat')
- , defined = require('./_defined');
-
-module.exports = function(that, maxLength, fillString, left){
- var S = String(defined(that))
- , stringLength = S.length
- , fillStr = fillString === undefined ? ' ' : String(fillString)
- , intMaxLength = toLength(maxLength);
- if(intMaxLength <= stringLength || fillStr == '')return S;
- var fillLen = intMaxLength - stringLength
- , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
- if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);
- return left ? stringFiller + S : S + stringFiller;
-};
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_string-repeat.js b/node_modules/babel-runtime/node_modules/core-js/modules/_string-repeat.js
deleted file mode 100644
index 88fd3a2d7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_string-repeat.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var toInteger = require('./_to-integer')
- , defined = require('./_defined');
-
-module.exports = function repeat(count){
- var str = String(defined(this))
- , res = ''
- , n = toInteger(count);
- if(n < 0 || n == Infinity)throw RangeError("Count can't be negative");
- for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;
- return res;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_string-trim.js b/node_modules/babel-runtime/node_modules/core-js/modules/_string-trim.js
deleted file mode 100644
index d12de1ce4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_string-trim.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var $export = require('./_export')
- , defined = require('./_defined')
- , fails = require('./_fails')
- , spaces = require('./_string-ws')
- , space = '[' + spaces + ']'
- , non = '\u200b\u0085'
- , ltrim = RegExp('^' + space + space + '*')
- , rtrim = RegExp(space + space + '*$');
-
-var exporter = function(KEY, exec, ALIAS){
- var exp = {};
- var FORCE = fails(function(){
- return !!spaces[KEY]() || non[KEY]() != non;
- });
- var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
- if(ALIAS)exp[ALIAS] = fn;
- $export($export.P + $export.F * FORCE, 'String', exp);
-};
-
-// 1 -> String#trimLeft
-// 2 -> String#trimRight
-// 3 -> String#trim
-var trim = exporter.trim = function(string, TYPE){
- string = String(defined(string));
- if(TYPE & 1)string = string.replace(ltrim, '');
- if(TYPE & 2)string = string.replace(rtrim, '');
- return string;
-};
-
-module.exports = exporter; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_string-ws.js b/node_modules/babel-runtime/node_modules/core-js/modules/_string-ws.js
deleted file mode 100644
index 9713d11db..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_string-ws.js
+++ /dev/null
@@ -1,2 +0,0 @@
-module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
- '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_task.js b/node_modules/babel-runtime/node_modules/core-js/modules/_task.js
deleted file mode 100644
index 06a73f40c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_task.js
+++ /dev/null
@@ -1,75 +0,0 @@
-var ctx = require('./_ctx')
- , invoke = require('./_invoke')
- , html = require('./_html')
- , cel = require('./_dom-create')
- , global = require('./_global')
- , process = global.process
- , setTask = global.setImmediate
- , clearTask = global.clearImmediate
- , MessageChannel = global.MessageChannel
- , counter = 0
- , queue = {}
- , ONREADYSTATECHANGE = 'onreadystatechange'
- , defer, channel, port;
-var run = function(){
- var id = +this;
- if(queue.hasOwnProperty(id)){
- var fn = queue[id];
- delete queue[id];
- fn();
- }
-};
-var listener = function(event){
- run.call(event.data);
-};
-// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
-if(!setTask || !clearTask){
- setTask = function setImmediate(fn){
- var args = [], i = 1;
- while(arguments.length > i)args.push(arguments[i++]);
- queue[++counter] = function(){
- invoke(typeof fn == 'function' ? fn : Function(fn), args);
- };
- defer(counter);
- return counter;
- };
- clearTask = function clearImmediate(id){
- delete queue[id];
- };
- // Node.js 0.8-
- if(require('./_cof')(process) == 'process'){
- defer = function(id){
- process.nextTick(ctx(run, id, 1));
- };
- // Browsers with MessageChannel, includes WebWorkers
- } else if(MessageChannel){
- channel = new MessageChannel;
- port = channel.port2;
- channel.port1.onmessage = listener;
- defer = ctx(port.postMessage, port, 1);
- // Browsers with postMessage, skip WebWorkers
- // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
- } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){
- defer = function(id){
- global.postMessage(id + '', '*');
- };
- global.addEventListener('message', listener, false);
- // IE8-
- } else if(ONREADYSTATECHANGE in cel('script')){
- defer = function(id){
- html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){
- html.removeChild(this);
- run.call(id);
- };
- };
- // Rest old browsers
- } else {
- defer = function(id){
- setTimeout(ctx(run, id, 1), 0);
- };
- }
-}
-module.exports = {
- set: setTask,
- clear: clearTask
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_to-index.js b/node_modules/babel-runtime/node_modules/core-js/modules/_to-index.js
deleted file mode 100644
index 4d380ce18..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_to-index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var toInteger = require('./_to-integer')
- , max = Math.max
- , min = Math.min;
-module.exports = function(index, length){
- index = toInteger(index);
- return index < 0 ? max(index + length, 0) : min(index, length);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_to-integer.js b/node_modules/babel-runtime/node_modules/core-js/modules/_to-integer.js
deleted file mode 100644
index f63baaff8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_to-integer.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// 7.1.4 ToInteger
-var ceil = Math.ceil
- , floor = Math.floor;
-module.exports = function(it){
- return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_to-iobject.js b/node_modules/babel-runtime/node_modules/core-js/modules/_to-iobject.js
deleted file mode 100644
index 4eb434620..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_to-iobject.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// to indexed object, toObject with fallback for non-array-like ES3 strings
-var IObject = require('./_iobject')
- , defined = require('./_defined');
-module.exports = function(it){
- return IObject(defined(it));
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_to-length.js b/node_modules/babel-runtime/node_modules/core-js/modules/_to-length.js
deleted file mode 100644
index 4099e60b5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_to-length.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// 7.1.15 ToLength
-var toInteger = require('./_to-integer')
- , min = Math.min;
-module.exports = function(it){
- return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_to-object.js b/node_modules/babel-runtime/node_modules/core-js/modules/_to-object.js
deleted file mode 100644
index f2c28b3fb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_to-object.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// 7.1.13 ToObject(argument)
-var defined = require('./_defined');
-module.exports = function(it){
- return Object(defined(it));
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_to-primitive.js b/node_modules/babel-runtime/node_modules/core-js/modules/_to-primitive.js
deleted file mode 100644
index 16354eed6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_to-primitive.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// 7.1.1 ToPrimitive(input [, PreferredType])
-var isObject = require('./_is-object');
-// instead of the ES6 spec version, we didn't implement @@toPrimitive case
-// and the second argument - flag - preferred type is a string
-module.exports = function(it, S){
- if(!isObject(it))return it;
- var fn, val;
- if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
- if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
- if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
- throw TypeError("Can't convert object to primitive value");
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_typed-array.js b/node_modules/babel-runtime/node_modules/core-js/modules/_typed-array.js
deleted file mode 100644
index b072b23b0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_typed-array.js
+++ /dev/null
@@ -1,479 +0,0 @@
-'use strict';
-if(require('./_descriptors')){
- var LIBRARY = require('./_library')
- , global = require('./_global')
- , fails = require('./_fails')
- , $export = require('./_export')
- , $typed = require('./_typed')
- , $buffer = require('./_typed-buffer')
- , ctx = require('./_ctx')
- , anInstance = require('./_an-instance')
- , propertyDesc = require('./_property-desc')
- , hide = require('./_hide')
- , redefineAll = require('./_redefine-all')
- , toInteger = require('./_to-integer')
- , toLength = require('./_to-length')
- , toIndex = require('./_to-index')
- , toPrimitive = require('./_to-primitive')
- , has = require('./_has')
- , same = require('./_same-value')
- , classof = require('./_classof')
- , isObject = require('./_is-object')
- , toObject = require('./_to-object')
- , isArrayIter = require('./_is-array-iter')
- , create = require('./_object-create')
- , getPrototypeOf = require('./_object-gpo')
- , gOPN = require('./_object-gopn').f
- , getIterFn = require('./core.get-iterator-method')
- , uid = require('./_uid')
- , wks = require('./_wks')
- , createArrayMethod = require('./_array-methods')
- , createArrayIncludes = require('./_array-includes')
- , speciesConstructor = require('./_species-constructor')
- , ArrayIterators = require('./es6.array.iterator')
- , Iterators = require('./_iterators')
- , $iterDetect = require('./_iter-detect')
- , setSpecies = require('./_set-species')
- , arrayFill = require('./_array-fill')
- , arrayCopyWithin = require('./_array-copy-within')
- , $DP = require('./_object-dp')
- , $GOPD = require('./_object-gopd')
- , dP = $DP.f
- , gOPD = $GOPD.f
- , RangeError = global.RangeError
- , TypeError = global.TypeError
- , Uint8Array = global.Uint8Array
- , ARRAY_BUFFER = 'ArrayBuffer'
- , SHARED_BUFFER = 'Shared' + ARRAY_BUFFER
- , BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'
- , PROTOTYPE = 'prototype'
- , ArrayProto = Array[PROTOTYPE]
- , $ArrayBuffer = $buffer.ArrayBuffer
- , $DataView = $buffer.DataView
- , arrayForEach = createArrayMethod(0)
- , arrayFilter = createArrayMethod(2)
- , arraySome = createArrayMethod(3)
- , arrayEvery = createArrayMethod(4)
- , arrayFind = createArrayMethod(5)
- , arrayFindIndex = createArrayMethod(6)
- , arrayIncludes = createArrayIncludes(true)
- , arrayIndexOf = createArrayIncludes(false)
- , arrayValues = ArrayIterators.values
- , arrayKeys = ArrayIterators.keys
- , arrayEntries = ArrayIterators.entries
- , arrayLastIndexOf = ArrayProto.lastIndexOf
- , arrayReduce = ArrayProto.reduce
- , arrayReduceRight = ArrayProto.reduceRight
- , arrayJoin = ArrayProto.join
- , arraySort = ArrayProto.sort
- , arraySlice = ArrayProto.slice
- , arrayToString = ArrayProto.toString
- , arrayToLocaleString = ArrayProto.toLocaleString
- , ITERATOR = wks('iterator')
- , TAG = wks('toStringTag')
- , TYPED_CONSTRUCTOR = uid('typed_constructor')
- , DEF_CONSTRUCTOR = uid('def_constructor')
- , ALL_CONSTRUCTORS = $typed.CONSTR
- , TYPED_ARRAY = $typed.TYPED
- , VIEW = $typed.VIEW
- , WRONG_LENGTH = 'Wrong length!';
-
- var $map = createArrayMethod(1, function(O, length){
- return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);
- });
-
- var LITTLE_ENDIAN = fails(function(){
- return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;
- });
-
- var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function(){
- new Uint8Array(1).set({});
- });
-
- var strictToLength = function(it, SAME){
- if(it === undefined)throw TypeError(WRONG_LENGTH);
- var number = +it
- , length = toLength(it);
- if(SAME && !same(number, length))throw RangeError(WRONG_LENGTH);
- return length;
- };
-
- var toOffset = function(it, BYTES){
- var offset = toInteger(it);
- if(offset < 0 || offset % BYTES)throw RangeError('Wrong offset!');
- return offset;
- };
-
- var validate = function(it){
- if(isObject(it) && TYPED_ARRAY in it)return it;
- throw TypeError(it + ' is not a typed array!');
- };
-
- var allocate = function(C, length){
- if(!(isObject(C) && TYPED_CONSTRUCTOR in C)){
- throw TypeError('It is not a typed array constructor!');
- } return new C(length);
- };
-
- var speciesFromList = function(O, list){
- return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);
- };
-
- var fromList = function(C, list){
- var index = 0
- , length = list.length
- , result = allocate(C, length);
- while(length > index)result[index] = list[index++];
- return result;
- };
-
- var addGetter = function(it, key, internal){
- dP(it, key, {get: function(){ return this._d[internal]; }});
- };
-
- var $from = function from(source /*, mapfn, thisArg */){
- var O = toObject(source)
- , aLen = arguments.length
- , mapfn = aLen > 1 ? arguments[1] : undefined
- , mapping = mapfn !== undefined
- , iterFn = getIterFn(O)
- , i, length, values, result, step, iterator;
- if(iterFn != undefined && !isArrayIter(iterFn)){
- for(iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++){
- values.push(step.value);
- } O = values;
- }
- if(mapping && aLen > 2)mapfn = ctx(mapfn, arguments[2], 2);
- for(i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++){
- result[i] = mapping ? mapfn(O[i], i) : O[i];
- }
- return result;
- };
-
- var $of = function of(/*...items*/){
- var index = 0
- , length = arguments.length
- , result = allocate(this, length);
- while(length > index)result[index] = arguments[index++];
- return result;
- };
-
- // iOS Safari 6.x fails here
- var TO_LOCALE_BUG = !!Uint8Array && fails(function(){ arrayToLocaleString.call(new Uint8Array(1)); });
-
- var $toLocaleString = function toLocaleString(){
- return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);
- };
-
- var proto = {
- copyWithin: function copyWithin(target, start /*, end */){
- return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
- },
- every: function every(callbackfn /*, thisArg */){
- return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- fill: function fill(value /*, start, end */){ // eslint-disable-line no-unused-vars
- return arrayFill.apply(validate(this), arguments);
- },
- filter: function filter(callbackfn /*, thisArg */){
- return speciesFromList(this, arrayFilter(validate(this), callbackfn,
- arguments.length > 1 ? arguments[1] : undefined));
- },
- find: function find(predicate /*, thisArg */){
- return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
- },
- findIndex: function findIndex(predicate /*, thisArg */){
- return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
- },
- forEach: function forEach(callbackfn /*, thisArg */){
- arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- indexOf: function indexOf(searchElement /*, fromIndex */){
- return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
- },
- includes: function includes(searchElement /*, fromIndex */){
- return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
- },
- join: function join(separator){ // eslint-disable-line no-unused-vars
- return arrayJoin.apply(validate(this), arguments);
- },
- lastIndexOf: function lastIndexOf(searchElement /*, fromIndex */){ // eslint-disable-line no-unused-vars
- return arrayLastIndexOf.apply(validate(this), arguments);
- },
- map: function map(mapfn /*, thisArg */){
- return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- reduce: function reduce(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
- return arrayReduce.apply(validate(this), arguments);
- },
- reduceRight: function reduceRight(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
- return arrayReduceRight.apply(validate(this), arguments);
- },
- reverse: function reverse(){
- var that = this
- , length = validate(that).length
- , middle = Math.floor(length / 2)
- , index = 0
- , value;
- while(index < middle){
- value = that[index];
- that[index++] = that[--length];
- that[length] = value;
- } return that;
- },
- some: function some(callbackfn /*, thisArg */){
- return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- sort: function sort(comparefn){
- return arraySort.call(validate(this), comparefn);
- },
- subarray: function subarray(begin, end){
- var O = validate(this)
- , length = O.length
- , $begin = toIndex(begin, length);
- return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(
- O.buffer,
- O.byteOffset + $begin * O.BYTES_PER_ELEMENT,
- toLength((end === undefined ? length : toIndex(end, length)) - $begin)
- );
- }
- };
-
- var $slice = function slice(start, end){
- return speciesFromList(this, arraySlice.call(validate(this), start, end));
- };
-
- var $set = function set(arrayLike /*, offset */){
- validate(this);
- var offset = toOffset(arguments[1], 1)
- , length = this.length
- , src = toObject(arrayLike)
- , len = toLength(src.length)
- , index = 0;
- if(len + offset > length)throw RangeError(WRONG_LENGTH);
- while(index < len)this[offset + index] = src[index++];
- };
-
- var $iterators = {
- entries: function entries(){
- return arrayEntries.call(validate(this));
- },
- keys: function keys(){
- return arrayKeys.call(validate(this));
- },
- values: function values(){
- return arrayValues.call(validate(this));
- }
- };
-
- var isTAIndex = function(target, key){
- return isObject(target)
- && target[TYPED_ARRAY]
- && typeof key != 'symbol'
- && key in target
- && String(+key) == String(key);
- };
- var $getDesc = function getOwnPropertyDescriptor(target, key){
- return isTAIndex(target, key = toPrimitive(key, true))
- ? propertyDesc(2, target[key])
- : gOPD(target, key);
- };
- var $setDesc = function defineProperty(target, key, desc){
- if(isTAIndex(target, key = toPrimitive(key, true))
- && isObject(desc)
- && has(desc, 'value')
- && !has(desc, 'get')
- && !has(desc, 'set')
- // TODO: add validation descriptor w/o calling accessors
- && !desc.configurable
- && (!has(desc, 'writable') || desc.writable)
- && (!has(desc, 'enumerable') || desc.enumerable)
- ){
- target[key] = desc.value;
- return target;
- } else return dP(target, key, desc);
- };
-
- if(!ALL_CONSTRUCTORS){
- $GOPD.f = $getDesc;
- $DP.f = $setDesc;
- }
-
- $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {
- getOwnPropertyDescriptor: $getDesc,
- defineProperty: $setDesc
- });
-
- if(fails(function(){ arrayToString.call({}); })){
- arrayToString = arrayToLocaleString = function toString(){
- return arrayJoin.call(this);
- }
- }
-
- var $TypedArrayPrototype$ = redefineAll({}, proto);
- redefineAll($TypedArrayPrototype$, $iterators);
- hide($TypedArrayPrototype$, ITERATOR, $iterators.values);
- redefineAll($TypedArrayPrototype$, {
- slice: $slice,
- set: $set,
- constructor: function(){ /* noop */ },
- toString: arrayToString,
- toLocaleString: $toLocaleString
- });
- addGetter($TypedArrayPrototype$, 'buffer', 'b');
- addGetter($TypedArrayPrototype$, 'byteOffset', 'o');
- addGetter($TypedArrayPrototype$, 'byteLength', 'l');
- addGetter($TypedArrayPrototype$, 'length', 'e');
- dP($TypedArrayPrototype$, TAG, {
- get: function(){ return this[TYPED_ARRAY]; }
- });
-
- module.exports = function(KEY, BYTES, wrapper, CLAMPED){
- CLAMPED = !!CLAMPED;
- var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'
- , ISNT_UINT8 = NAME != 'Uint8Array'
- , GETTER = 'get' + KEY
- , SETTER = 'set' + KEY
- , TypedArray = global[NAME]
- , Base = TypedArray || {}
- , TAC = TypedArray && getPrototypeOf(TypedArray)
- , FORCED = !TypedArray || !$typed.ABV
- , O = {}
- , TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];
- var getter = function(that, index){
- var data = that._d;
- return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);
- };
- var setter = function(that, index, value){
- var data = that._d;
- if(CLAMPED)value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;
- data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);
- };
- var addElement = function(that, index){
- dP(that, index, {
- get: function(){
- return getter(this, index);
- },
- set: function(value){
- return setter(this, index, value);
- },
- enumerable: true
- });
- };
- if(FORCED){
- TypedArray = wrapper(function(that, data, $offset, $length){
- anInstance(that, TypedArray, NAME, '_d');
- var index = 0
- , offset = 0
- , buffer, byteLength, length, klass;
- if(!isObject(data)){
- length = strictToLength(data, true)
- byteLength = length * BYTES;
- buffer = new $ArrayBuffer(byteLength);
- } else if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){
- buffer = data;
- offset = toOffset($offset, BYTES);
- var $len = data.byteLength;
- if($length === undefined){
- if($len % BYTES)throw RangeError(WRONG_LENGTH);
- byteLength = $len - offset;
- if(byteLength < 0)throw RangeError(WRONG_LENGTH);
- } else {
- byteLength = toLength($length) * BYTES;
- if(byteLength + offset > $len)throw RangeError(WRONG_LENGTH);
- }
- length = byteLength / BYTES;
- } else if(TYPED_ARRAY in data){
- return fromList(TypedArray, data);
- } else {
- return $from.call(TypedArray, data);
- }
- hide(that, '_d', {
- b: buffer,
- o: offset,
- l: byteLength,
- e: length,
- v: new $DataView(buffer)
- });
- while(index < length)addElement(that, index++);
- });
- TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);
- hide(TypedArrayPrototype, 'constructor', TypedArray);
- } else if(!$iterDetect(function(iter){
- // V8 works with iterators, but fails in many other cases
- // https://code.google.com/p/v8/issues/detail?id=4552
- new TypedArray(null); // eslint-disable-line no-new
- new TypedArray(iter); // eslint-disable-line no-new
- }, true)){
- TypedArray = wrapper(function(that, data, $offset, $length){
- anInstance(that, TypedArray, NAME);
- var klass;
- // `ws` module bug, temporarily remove validation length for Uint8Array
- // https://github.com/websockets/ws/pull/645
- if(!isObject(data))return new Base(strictToLength(data, ISNT_UINT8));
- if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){
- return $length !== undefined
- ? new Base(data, toOffset($offset, BYTES), $length)
- : $offset !== undefined
- ? new Base(data, toOffset($offset, BYTES))
- : new Base(data);
- }
- if(TYPED_ARRAY in data)return fromList(TypedArray, data);
- return $from.call(TypedArray, data);
- });
- arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function(key){
- if(!(key in TypedArray))hide(TypedArray, key, Base[key]);
- });
- TypedArray[PROTOTYPE] = TypedArrayPrototype;
- if(!LIBRARY)TypedArrayPrototype.constructor = TypedArray;
- }
- var $nativeIterator = TypedArrayPrototype[ITERATOR]
- , CORRECT_ITER_NAME = !!$nativeIterator && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined)
- , $iterator = $iterators.values;
- hide(TypedArray, TYPED_CONSTRUCTOR, true);
- hide(TypedArrayPrototype, TYPED_ARRAY, NAME);
- hide(TypedArrayPrototype, VIEW, true);
- hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);
-
- if(CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)){
- dP(TypedArrayPrototype, TAG, {
- get: function(){ return NAME; }
- });
- }
-
- O[NAME] = TypedArray;
-
- $export($export.G + $export.W + $export.F * (TypedArray != Base), O);
-
- $export($export.S, NAME, {
- BYTES_PER_ELEMENT: BYTES,
- from: $from,
- of: $of
- });
-
- if(!(BYTES_PER_ELEMENT in TypedArrayPrototype))hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);
-
- $export($export.P, NAME, proto);
-
- setSpecies(NAME);
-
- $export($export.P + $export.F * FORCED_SET, NAME, {set: $set});
-
- $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);
-
- $export($export.P + $export.F * (TypedArrayPrototype.toString != arrayToString), NAME, {toString: arrayToString});
-
- $export($export.P + $export.F * fails(function(){
- new TypedArray(1).slice();
- }), NAME, {slice: $slice});
-
- $export($export.P + $export.F * (fails(function(){
- return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString()
- }) || !fails(function(){
- TypedArrayPrototype.toLocaleString.call([1, 2]);
- })), NAME, {toLocaleString: $toLocaleString});
-
- Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;
- if(!LIBRARY && !CORRECT_ITER_NAME)hide(TypedArrayPrototype, ITERATOR, $iterator);
- };
-} else module.exports = function(){ /* empty */ }; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_typed-buffer.js b/node_modules/babel-runtime/node_modules/core-js/modules/_typed-buffer.js
deleted file mode 100644
index 2129eea40..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_typed-buffer.js
+++ /dev/null
@@ -1,273 +0,0 @@
-'use strict';
-var global = require('./_global')
- , DESCRIPTORS = require('./_descriptors')
- , LIBRARY = require('./_library')
- , $typed = require('./_typed')
- , hide = require('./_hide')
- , redefineAll = require('./_redefine-all')
- , fails = require('./_fails')
- , anInstance = require('./_an-instance')
- , toInteger = require('./_to-integer')
- , toLength = require('./_to-length')
- , gOPN = require('./_object-gopn').f
- , dP = require('./_object-dp').f
- , arrayFill = require('./_array-fill')
- , setToStringTag = require('./_set-to-string-tag')
- , ARRAY_BUFFER = 'ArrayBuffer'
- , DATA_VIEW = 'DataView'
- , PROTOTYPE = 'prototype'
- , WRONG_LENGTH = 'Wrong length!'
- , WRONG_INDEX = 'Wrong index!'
- , $ArrayBuffer = global[ARRAY_BUFFER]
- , $DataView = global[DATA_VIEW]
- , Math = global.Math
- , RangeError = global.RangeError
- , Infinity = global.Infinity
- , BaseBuffer = $ArrayBuffer
- , abs = Math.abs
- , pow = Math.pow
- , floor = Math.floor
- , log = Math.log
- , LN2 = Math.LN2
- , BUFFER = 'buffer'
- , BYTE_LENGTH = 'byteLength'
- , BYTE_OFFSET = 'byteOffset'
- , $BUFFER = DESCRIPTORS ? '_b' : BUFFER
- , $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH
- , $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;
-
-// IEEE754 conversions based on https://github.com/feross/ieee754
-var packIEEE754 = function(value, mLen, nBytes){
- var buffer = Array(nBytes)
- , eLen = nBytes * 8 - mLen - 1
- , eMax = (1 << eLen) - 1
- , eBias = eMax >> 1
- , rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0
- , i = 0
- , s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0
- , e, m, c;
- value = abs(value)
- if(value != value || value === Infinity){
- m = value != value ? 1 : 0;
- e = eMax;
- } else {
- e = floor(log(value) / LN2);
- if(value * (c = pow(2, -e)) < 1){
- e--;
- c *= 2;
- }
- if(e + eBias >= 1){
- value += rt / c;
- } else {
- value += rt * pow(2, 1 - eBias);
- }
- if(value * c >= 2){
- e++;
- c /= 2;
- }
- if(e + eBias >= eMax){
- m = 0;
- e = eMax;
- } else if(e + eBias >= 1){
- m = (value * c - 1) * pow(2, mLen);
- e = e + eBias;
- } else {
- m = value * pow(2, eBias - 1) * pow(2, mLen);
- e = 0;
- }
- }
- for(; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);
- e = e << mLen | m;
- eLen += mLen;
- for(; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);
- buffer[--i] |= s * 128;
- return buffer;
-};
-var unpackIEEE754 = function(buffer, mLen, nBytes){
- var eLen = nBytes * 8 - mLen - 1
- , eMax = (1 << eLen) - 1
- , eBias = eMax >> 1
- , nBits = eLen - 7
- , i = nBytes - 1
- , s = buffer[i--]
- , e = s & 127
- , m;
- s >>= 7;
- for(; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);
- m = e & (1 << -nBits) - 1;
- e >>= -nBits;
- nBits += mLen;
- for(; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);
- if(e === 0){
- e = 1 - eBias;
- } else if(e === eMax){
- return m ? NaN : s ? -Infinity : Infinity;
- } else {
- m = m + pow(2, mLen);
- e = e - eBias;
- } return (s ? -1 : 1) * m * pow(2, e - mLen);
-};
-
-var unpackI32 = function(bytes){
- return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];
-};
-var packI8 = function(it){
- return [it & 0xff];
-};
-var packI16 = function(it){
- return [it & 0xff, it >> 8 & 0xff];
-};
-var packI32 = function(it){
- return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];
-};
-var packF64 = function(it){
- return packIEEE754(it, 52, 8);
-};
-var packF32 = function(it){
- return packIEEE754(it, 23, 4);
-};
-
-var addGetter = function(C, key, internal){
- dP(C[PROTOTYPE], key, {get: function(){ return this[internal]; }});
-};
-
-var get = function(view, bytes, index, isLittleEndian){
- var numIndex = +index
- , intIndex = toInteger(numIndex);
- if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);
- var store = view[$BUFFER]._b
- , start = intIndex + view[$OFFSET]
- , pack = store.slice(start, start + bytes);
- return isLittleEndian ? pack : pack.reverse();
-};
-var set = function(view, bytes, index, conversion, value, isLittleEndian){
- var numIndex = +index
- , intIndex = toInteger(numIndex);
- if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);
- var store = view[$BUFFER]._b
- , start = intIndex + view[$OFFSET]
- , pack = conversion(+value);
- for(var i = 0; i < bytes; i++)store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];
-};
-
-var validateArrayBufferArguments = function(that, length){
- anInstance(that, $ArrayBuffer, ARRAY_BUFFER);
- var numberLength = +length
- , byteLength = toLength(numberLength);
- if(numberLength != byteLength)throw RangeError(WRONG_LENGTH);
- return byteLength;
-};
-
-if(!$typed.ABV){
- $ArrayBuffer = function ArrayBuffer(length){
- var byteLength = validateArrayBufferArguments(this, length);
- this._b = arrayFill.call(Array(byteLength), 0);
- this[$LENGTH] = byteLength;
- };
-
- $DataView = function DataView(buffer, byteOffset, byteLength){
- anInstance(this, $DataView, DATA_VIEW);
- anInstance(buffer, $ArrayBuffer, DATA_VIEW);
- var bufferLength = buffer[$LENGTH]
- , offset = toInteger(byteOffset);
- if(offset < 0 || offset > bufferLength)throw RangeError('Wrong offset!');
- byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
- if(offset + byteLength > bufferLength)throw RangeError(WRONG_LENGTH);
- this[$BUFFER] = buffer;
- this[$OFFSET] = offset;
- this[$LENGTH] = byteLength;
- };
-
- if(DESCRIPTORS){
- addGetter($ArrayBuffer, BYTE_LENGTH, '_l');
- addGetter($DataView, BUFFER, '_b');
- addGetter($DataView, BYTE_LENGTH, '_l');
- addGetter($DataView, BYTE_OFFSET, '_o');
- }
-
- redefineAll($DataView[PROTOTYPE], {
- getInt8: function getInt8(byteOffset){
- return get(this, 1, byteOffset)[0] << 24 >> 24;
- },
- getUint8: function getUint8(byteOffset){
- return get(this, 1, byteOffset)[0];
- },
- getInt16: function getInt16(byteOffset /*, littleEndian */){
- var bytes = get(this, 2, byteOffset, arguments[1]);
- return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
- },
- getUint16: function getUint16(byteOffset /*, littleEndian */){
- var bytes = get(this, 2, byteOffset, arguments[1]);
- return bytes[1] << 8 | bytes[0];
- },
- getInt32: function getInt32(byteOffset /*, littleEndian */){
- return unpackI32(get(this, 4, byteOffset, arguments[1]));
- },
- getUint32: function getUint32(byteOffset /*, littleEndian */){
- return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;
- },
- getFloat32: function getFloat32(byteOffset /*, littleEndian */){
- return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);
- },
- getFloat64: function getFloat64(byteOffset /*, littleEndian */){
- return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);
- },
- setInt8: function setInt8(byteOffset, value){
- set(this, 1, byteOffset, packI8, value);
- },
- setUint8: function setUint8(byteOffset, value){
- set(this, 1, byteOffset, packI8, value);
- },
- setInt16: function setInt16(byteOffset, value /*, littleEndian */){
- set(this, 2, byteOffset, packI16, value, arguments[2]);
- },
- setUint16: function setUint16(byteOffset, value /*, littleEndian */){
- set(this, 2, byteOffset, packI16, value, arguments[2]);
- },
- setInt32: function setInt32(byteOffset, value /*, littleEndian */){
- set(this, 4, byteOffset, packI32, value, arguments[2]);
- },
- setUint32: function setUint32(byteOffset, value /*, littleEndian */){
- set(this, 4, byteOffset, packI32, value, arguments[2]);
- },
- setFloat32: function setFloat32(byteOffset, value /*, littleEndian */){
- set(this, 4, byteOffset, packF32, value, arguments[2]);
- },
- setFloat64: function setFloat64(byteOffset, value /*, littleEndian */){
- set(this, 8, byteOffset, packF64, value, arguments[2]);
- }
- });
-} else {
- if(!fails(function(){
- new $ArrayBuffer; // eslint-disable-line no-new
- }) || !fails(function(){
- new $ArrayBuffer(.5); // eslint-disable-line no-new
- })){
- $ArrayBuffer = function ArrayBuffer(length){
- return new BaseBuffer(validateArrayBufferArguments(this, length));
- };
- var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];
- for(var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j; ){
- if(!((key = keys[j++]) in $ArrayBuffer))hide($ArrayBuffer, key, BaseBuffer[key]);
- };
- if(!LIBRARY)ArrayBufferProto.constructor = $ArrayBuffer;
- }
- // iOS Safari 7.x bug
- var view = new $DataView(new $ArrayBuffer(2))
- , $setInt8 = $DataView[PROTOTYPE].setInt8;
- view.setInt8(0, 2147483648);
- view.setInt8(1, 2147483649);
- if(view.getInt8(0) || !view.getInt8(1))redefineAll($DataView[PROTOTYPE], {
- setInt8: function setInt8(byteOffset, value){
- $setInt8.call(this, byteOffset, value << 24 >> 24);
- },
- setUint8: function setUint8(byteOffset, value){
- $setInt8.call(this, byteOffset, value << 24 >> 24);
- }
- }, true);
-}
-setToStringTag($ArrayBuffer, ARRAY_BUFFER);
-setToStringTag($DataView, DATA_VIEW);
-hide($DataView[PROTOTYPE], $typed.VIEW, true);
-exports[ARRAY_BUFFER] = $ArrayBuffer;
-exports[DATA_VIEW] = $DataView; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_typed.js b/node_modules/babel-runtime/node_modules/core-js/modules/_typed.js
deleted file mode 100644
index 6ed2ab56d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_typed.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var global = require('./_global')
- , hide = require('./_hide')
- , uid = require('./_uid')
- , TYPED = uid('typed_array')
- , VIEW = uid('view')
- , ABV = !!(global.ArrayBuffer && global.DataView)
- , CONSTR = ABV
- , i = 0, l = 9, Typed;
-
-var TypedArrayConstructors = (
- 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'
-).split(',');
-
-while(i < l){
- if(Typed = global[TypedArrayConstructors[i++]]){
- hide(Typed.prototype, TYPED, true);
- hide(Typed.prototype, VIEW, true);
- } else CONSTR = false;
-}
-
-module.exports = {
- ABV: ABV,
- CONSTR: CONSTR,
- TYPED: TYPED,
- VIEW: VIEW
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_uid.js b/node_modules/babel-runtime/node_modules/core-js/modules/_uid.js
deleted file mode 100644
index 3be4196bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_uid.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var id = 0
- , px = Math.random();
-module.exports = function(key){
- return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_wks-define.js b/node_modules/babel-runtime/node_modules/core-js/modules/_wks-define.js
deleted file mode 100644
index e69603286..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_wks-define.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var global = require('./_global')
- , core = require('./_core')
- , LIBRARY = require('./_library')
- , wksExt = require('./_wks-ext')
- , defineProperty = require('./_object-dp').f;
-module.exports = function(name){
- var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
- if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_wks-ext.js b/node_modules/babel-runtime/node_modules/core-js/modules/_wks-ext.js
deleted file mode 100644
index 7901def62..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_wks-ext.js
+++ /dev/null
@@ -1 +0,0 @@
-exports.f = require('./_wks'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/_wks.js b/node_modules/babel-runtime/node_modules/core-js/modules/_wks.js
deleted file mode 100644
index 36f7973ae..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/_wks.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var store = require('./_shared')('wks')
- , uid = require('./_uid')
- , Symbol = require('./_global').Symbol
- , USE_SYMBOL = typeof Symbol == 'function';
-
-var $exports = module.exports = function(name){
- return store[name] || (store[name] =
- USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
-};
-
-$exports.store = store; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/core.delay.js b/node_modules/babel-runtime/node_modules/core-js/modules/core.delay.js
deleted file mode 100644
index ea031be4a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/core.delay.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var global = require('./_global')
- , core = require('./_core')
- , $export = require('./_export')
- , partial = require('./_partial');
-// https://esdiscuss.org/topic/promise-returning-delay-function
-$export($export.G + $export.F, {
- delay: function delay(time){
- return new (core.Promise || global.Promise)(function(resolve){
- setTimeout(partial.call(resolve, true), time);
- });
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/core.dict.js b/node_modules/babel-runtime/node_modules/core-js/modules/core.dict.js
deleted file mode 100644
index 88c54e3d7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/core.dict.js
+++ /dev/null
@@ -1,155 +0,0 @@
-'use strict';
-var ctx = require('./_ctx')
- , $export = require('./_export')
- , createDesc = require('./_property-desc')
- , assign = require('./_object-assign')
- , create = require('./_object-create')
- , getPrototypeOf = require('./_object-gpo')
- , getKeys = require('./_object-keys')
- , dP = require('./_object-dp')
- , keyOf = require('./_keyof')
- , aFunction = require('./_a-function')
- , forOf = require('./_for-of')
- , isIterable = require('./core.is-iterable')
- , $iterCreate = require('./_iter-create')
- , step = require('./_iter-step')
- , isObject = require('./_is-object')
- , toIObject = require('./_to-iobject')
- , DESCRIPTORS = require('./_descriptors')
- , has = require('./_has');
-
-// 0 -> Dict.forEach
-// 1 -> Dict.map
-// 2 -> Dict.filter
-// 3 -> Dict.some
-// 4 -> Dict.every
-// 5 -> Dict.find
-// 6 -> Dict.findKey
-// 7 -> Dict.mapPairs
-var createDictMethod = function(TYPE){
- var IS_MAP = TYPE == 1
- , IS_EVERY = TYPE == 4;
- return function(object, callbackfn, that /* = undefined */){
- var f = ctx(callbackfn, that, 3)
- , O = toIObject(object)
- , result = IS_MAP || TYPE == 7 || TYPE == 2
- ? new (typeof this == 'function' ? this : Dict) : undefined
- , key, val, res;
- for(key in O)if(has(O, key)){
- val = O[key];
- res = f(val, key, object);
- if(TYPE){
- if(IS_MAP)result[key] = res; // map
- else if(res)switch(TYPE){
- case 2: result[key] = val; break; // filter
- case 3: return true; // some
- case 5: return val; // find
- case 6: return key; // findKey
- case 7: result[res[0]] = res[1]; // mapPairs
- } else if(IS_EVERY)return false; // every
- }
- }
- return TYPE == 3 || IS_EVERY ? IS_EVERY : result;
- };
-};
-var findKey = createDictMethod(6);
-
-var createDictIter = function(kind){
- return function(it){
- return new DictIterator(it, kind);
- };
-};
-var DictIterator = function(iterated, kind){
- this._t = toIObject(iterated); // target
- this._a = getKeys(iterated); // keys
- this._i = 0; // next index
- this._k = kind; // kind
-};
-$iterCreate(DictIterator, 'Dict', function(){
- var that = this
- , O = that._t
- , keys = that._a
- , kind = that._k
- , key;
- do {
- if(that._i >= keys.length){
- that._t = undefined;
- return step(1);
- }
- } while(!has(O, key = keys[that._i++]));
- if(kind == 'keys' )return step(0, key);
- if(kind == 'values')return step(0, O[key]);
- return step(0, [key, O[key]]);
-});
-
-function Dict(iterable){
- var dict = create(null);
- if(iterable != undefined){
- if(isIterable(iterable)){
- forOf(iterable, true, function(key, value){
- dict[key] = value;
- });
- } else assign(dict, iterable);
- }
- return dict;
-}
-Dict.prototype = null;
-
-function reduce(object, mapfn, init){
- aFunction(mapfn);
- var O = toIObject(object)
- , keys = getKeys(O)
- , length = keys.length
- , i = 0
- , memo, key;
- if(arguments.length < 3){
- if(!length)throw TypeError('Reduce of empty object with no initial value');
- memo = O[keys[i++]];
- } else memo = Object(init);
- while(length > i)if(has(O, key = keys[i++])){
- memo = mapfn(memo, O[key], key, object);
- }
- return memo;
-}
-
-function includes(object, el){
- return (el == el ? keyOf(object, el) : findKey(object, function(it){
- return it != it;
- })) !== undefined;
-}
-
-function get(object, key){
- if(has(object, key))return object[key];
-}
-function set(object, key, value){
- if(DESCRIPTORS && key in Object)dP.f(object, key, createDesc(0, value));
- else object[key] = value;
- return object;
-}
-
-function isDict(it){
- return isObject(it) && getPrototypeOf(it) === Dict.prototype;
-}
-
-$export($export.G + $export.F, {Dict: Dict});
-
-$export($export.S, 'Dict', {
- keys: createDictIter('keys'),
- values: createDictIter('values'),
- entries: createDictIter('entries'),
- forEach: createDictMethod(0),
- map: createDictMethod(1),
- filter: createDictMethod(2),
- some: createDictMethod(3),
- every: createDictMethod(4),
- find: createDictMethod(5),
- findKey: findKey,
- mapPairs: createDictMethod(7),
- reduce: reduce,
- keyOf: keyOf,
- includes: includes,
- has: has,
- get: get,
- set: set,
- isDict: isDict
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/core.function.part.js b/node_modules/babel-runtime/node_modules/core-js/modules/core.function.part.js
deleted file mode 100644
index ce851ff84..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/core.function.part.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var path = require('./_path')
- , $export = require('./_export');
-
-// Placeholder
-require('./_core')._ = path._ = path._ || {};
-
-$export($export.P + $export.F, 'Function', {part: require('./_partial')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/core.get-iterator-method.js b/node_modules/babel-runtime/node_modules/core-js/modules/core.get-iterator-method.js
deleted file mode 100644
index e2c7ecc3d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/core.get-iterator-method.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var classof = require('./_classof')
- , ITERATOR = require('./_wks')('iterator')
- , Iterators = require('./_iterators');
-module.exports = require('./_core').getIteratorMethod = function(it){
- if(it != undefined)return it[ITERATOR]
- || it['@@iterator']
- || Iterators[classof(it)];
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/core.get-iterator.js b/node_modules/babel-runtime/node_modules/core-js/modules/core.get-iterator.js
deleted file mode 100644
index c292e1ab1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/core.get-iterator.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var anObject = require('./_an-object')
- , get = require('./core.get-iterator-method');
-module.exports = require('./_core').getIterator = function(it){
- var iterFn = get(it);
- if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');
- return anObject(iterFn.call(it));
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/core.is-iterable.js b/node_modules/babel-runtime/node_modules/core-js/modules/core.is-iterable.js
deleted file mode 100644
index b2b01b6bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/core.is-iterable.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var classof = require('./_classof')
- , ITERATOR = require('./_wks')('iterator')
- , Iterators = require('./_iterators');
-module.exports = require('./_core').isIterable = function(it){
- var O = Object(it);
- return O[ITERATOR] !== undefined
- || '@@iterator' in O
- || Iterators.hasOwnProperty(classof(O));
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/core.number.iterator.js b/node_modules/babel-runtime/node_modules/core-js/modules/core.number.iterator.js
deleted file mode 100644
index 9700acba0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/core.number.iterator.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-require('./_iter-define')(Number, 'Number', function(iterated){
- this._l = +iterated;
- this._i = 0;
-}, function(){
- var i = this._i++
- , done = !(i < this._l);
- return {done: done, value: done ? undefined : i};
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/core.object.classof.js b/node_modules/babel-runtime/node_modules/core-js/modules/core.object.classof.js
deleted file mode 100644
index 342c73713..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/core.object.classof.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var $export = require('./_export');
-
-$export($export.S + $export.F, 'Object', {classof: require('./_classof')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/core.object.define.js b/node_modules/babel-runtime/node_modules/core-js/modules/core.object.define.js
deleted file mode 100644
index d60e9a951..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/core.object.define.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var $export = require('./_export')
- , define = require('./_object-define');
-
-$export($export.S + $export.F, 'Object', {define: define}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/core.object.is-object.js b/node_modules/babel-runtime/node_modules/core-js/modules/core.object.is-object.js
deleted file mode 100644
index f2ba059fb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/core.object.is-object.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var $export = require('./_export');
-
-$export($export.S + $export.F, 'Object', {isObject: require('./_is-object')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/core.object.make.js b/node_modules/babel-runtime/node_modules/core-js/modules/core.object.make.js
deleted file mode 100644
index 3d2a2b5f5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/core.object.make.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var $export = require('./_export')
- , define = require('./_object-define')
- , create = require('./_object-create');
-
-$export($export.S + $export.F, 'Object', {
- make: function(proto, mixin){
- return define(create(proto), mixin);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/core.regexp.escape.js b/node_modules/babel-runtime/node_modules/core-js/modules/core.regexp.escape.js
deleted file mode 100644
index 54f832ef8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/core.regexp.escape.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// https://github.com/benjamingr/RexExp.escape
-var $export = require('./_export')
- , $re = require('./_replacer')(/[\\^$*+?.()|[\]{}]/g, '\\$&');
-
-$export($export.S, 'RegExp', {escape: function escape(it){ return $re(it); }});
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/core.string.escape-html.js b/node_modules/babel-runtime/node_modules/core-js/modules/core.string.escape-html.js
deleted file mode 100644
index a4b8d2f02..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/core.string.escape-html.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-var $export = require('./_export');
-var $re = require('./_replacer')(/[&<>"']/g, {
- '&': '&amp;',
- '<': '&lt;',
- '>': '&gt;',
- '"': '&quot;',
- "'": '&apos;'
-});
-
-$export($export.P + $export.F, 'String', {escapeHTML: function escapeHTML(){ return $re(this); }}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/core.string.unescape-html.js b/node_modules/babel-runtime/node_modules/core-js/modules/core.string.unescape-html.js
deleted file mode 100644
index 413622b94..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/core.string.unescape-html.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-var $export = require('./_export');
-var $re = require('./_replacer')(/&(?:amp|lt|gt|quot|apos);/g, {
- '&amp;': '&',
- '&lt;': '<',
- '&gt;': '>',
- '&quot;': '"',
- '&apos;': "'"
-});
-
-$export($export.P + $export.F, 'String', {unescapeHTML: function unescapeHTML(){ return $re(this); }}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es5.js b/node_modules/babel-runtime/node_modules/core-js/modules/es5.js
deleted file mode 100644
index dd7ebadf8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es5.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// This file still here for a legacy code and will be removed in a near time
-require('./es6.object.create');
-require('./es6.object.define-property');
-require('./es6.object.define-properties');
-require('./es6.object.get-own-property-descriptor');
-require('./es6.object.get-prototype-of');
-require('./es6.object.keys');
-require('./es6.object.get-own-property-names');
-require('./es6.object.freeze');
-require('./es6.object.seal');
-require('./es6.object.prevent-extensions');
-require('./es6.object.is-frozen');
-require('./es6.object.is-sealed');
-require('./es6.object.is-extensible');
-require('./es6.function.bind');
-require('./es6.array.is-array');
-require('./es6.array.join');
-require('./es6.array.slice');
-require('./es6.array.sort');
-require('./es6.array.for-each');
-require('./es6.array.map');
-require('./es6.array.filter');
-require('./es6.array.some');
-require('./es6.array.every');
-require('./es6.array.reduce');
-require('./es6.array.reduce-right');
-require('./es6.array.index-of');
-require('./es6.array.last-index-of');
-require('./es6.date.now');
-require('./es6.date.to-iso-string');
-require('./es6.date.to-json');
-require('./es6.parse-int');
-require('./es6.parse-float');
-require('./es6.string.trim');
-require('./es6.regexp.to-string'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.copy-within.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.copy-within.js
deleted file mode 100644
index 027f7550e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.copy-within.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
-var $export = require('./_export');
-
-$export($export.P, 'Array', {copyWithin: require('./_array-copy-within')});
-
-require('./_add-to-unscopables')('copyWithin'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.every.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.every.js
deleted file mode 100644
index fb0673673..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.every.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $every = require('./_array-methods')(4);
-
-$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {
- // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
- every: function every(callbackfn /* , thisArg */){
- return $every(this, callbackfn, arguments[1]);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.fill.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.fill.js
deleted file mode 100644
index f075c0018..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.fill.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
-var $export = require('./_export');
-
-$export($export.P, 'Array', {fill: require('./_array-fill')});
-
-require('./_add-to-unscopables')('fill'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.filter.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.filter.js
deleted file mode 100644
index f60951d37..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.filter.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $filter = require('./_array-methods')(2);
-
-$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {
- // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
- filter: function filter(callbackfn /* , thisArg */){
- return $filter(this, callbackfn, arguments[1]);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.find-index.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.find-index.js
deleted file mode 100644
index 530907412..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.find-index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
-var $export = require('./_export')
- , $find = require('./_array-methods')(6)
- , KEY = 'findIndex'
- , forced = true;
-// Shouldn't skip holes
-if(KEY in [])Array(1)[KEY](function(){ forced = false; });
-$export($export.P + $export.F * forced, 'Array', {
- findIndex: function findIndex(callbackfn/*, that = undefined */){
- return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- }
-});
-require('./_add-to-unscopables')(KEY); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.find.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.find.js
deleted file mode 100644
index 90a9acfbe..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.find.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
-var $export = require('./_export')
- , $find = require('./_array-methods')(5)
- , KEY = 'find'
- , forced = true;
-// Shouldn't skip holes
-if(KEY in [])Array(1)[KEY](function(){ forced = false; });
-$export($export.P + $export.F * forced, 'Array', {
- find: function find(callbackfn/*, that = undefined */){
- return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- }
-});
-require('./_add-to-unscopables')(KEY); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.for-each.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.for-each.js
deleted file mode 100644
index f814fe4ea..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.for-each.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $forEach = require('./_array-methods')(0)
- , STRICT = require('./_strict-method')([].forEach, true);
-
-$export($export.P + $export.F * !STRICT, 'Array', {
- // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
- forEach: function forEach(callbackfn /* , thisArg */){
- return $forEach(this, callbackfn, arguments[1]);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.from.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.from.js
deleted file mode 100644
index 69e5d4a62..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.from.js
+++ /dev/null
@@ -1,37 +0,0 @@
-'use strict';
-var ctx = require('./_ctx')
- , $export = require('./_export')
- , toObject = require('./_to-object')
- , call = require('./_iter-call')
- , isArrayIter = require('./_is-array-iter')
- , toLength = require('./_to-length')
- , createProperty = require('./_create-property')
- , getIterFn = require('./core.get-iterator-method');
-
-$export($export.S + $export.F * !require('./_iter-detect')(function(iter){ Array.from(iter); }), 'Array', {
- // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
- from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
- var O = toObject(arrayLike)
- , C = typeof this == 'function' ? this : Array
- , aLen = arguments.length
- , mapfn = aLen > 1 ? arguments[1] : undefined
- , mapping = mapfn !== undefined
- , index = 0
- , iterFn = getIterFn(O)
- , length, result, step, iterator;
- if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
- // if object isn't iterable or it's array with default iterator - use simple case
- if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){
- for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){
- createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
- }
- } else {
- length = toLength(O.length);
- for(result = new C(length); length > index; index++){
- createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
- }
- }
- result.length = index;
- return result;
- }
-});
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.index-of.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.index-of.js
deleted file mode 100644
index 903763157..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.index-of.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $indexOf = require('./_array-includes')(false)
- , $native = [].indexOf
- , NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
-
-$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {
- // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
- indexOf: function indexOf(searchElement /*, fromIndex = 0 */){
- return NEGATIVE_ZERO
- // convert -0 to +0
- ? $native.apply(this, arguments) || 0
- : $indexOf(this, searchElement, arguments[1]);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.is-array.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.is-array.js
deleted file mode 100644
index cd5d8c192..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.is-array.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
-var $export = require('./_export');
-
-$export($export.S, 'Array', {isArray: require('./_is-array')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.iterator.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.iterator.js
deleted file mode 100644
index 100b344d7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.iterator.js
+++ /dev/null
@@ -1,34 +0,0 @@
-'use strict';
-var addToUnscopables = require('./_add-to-unscopables')
- , step = require('./_iter-step')
- , Iterators = require('./_iterators')
- , toIObject = require('./_to-iobject');
-
-// 22.1.3.4 Array.prototype.entries()
-// 22.1.3.13 Array.prototype.keys()
-// 22.1.3.29 Array.prototype.values()
-// 22.1.3.30 Array.prototype[@@iterator]()
-module.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){
- this._t = toIObject(iterated); // target
- this._i = 0; // next index
- this._k = kind; // kind
-// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
-}, function(){
- var O = this._t
- , kind = this._k
- , index = this._i++;
- if(!O || index >= O.length){
- this._t = undefined;
- return step(1);
- }
- if(kind == 'keys' )return step(0, index);
- if(kind == 'values')return step(0, O[index]);
- return step(0, [index, O[index]]);
-}, 'values');
-
-// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
-Iterators.Arguments = Iterators.Array;
-
-addToUnscopables('keys');
-addToUnscopables('values');
-addToUnscopables('entries'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.join.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.join.js
deleted file mode 100644
index 1bb656538..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.join.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-// 22.1.3.13 Array.prototype.join(separator)
-var $export = require('./_export')
- , toIObject = require('./_to-iobject')
- , arrayJoin = [].join;
-
-// fallback for not array-like strings
-$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {
- join: function join(separator){
- return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.last-index-of.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.last-index-of.js
deleted file mode 100644
index 75c1eabfa..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.last-index-of.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , toIObject = require('./_to-iobject')
- , toInteger = require('./_to-integer')
- , toLength = require('./_to-length')
- , $native = [].lastIndexOf
- , NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;
-
-$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {
- // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
- lastIndexOf: function lastIndexOf(searchElement /*, fromIndex = @[*-1] */){
- // convert -0 to +0
- if(NEGATIVE_ZERO)return $native.apply(this, arguments) || 0;
- var O = toIObject(this)
- , length = toLength(O.length)
- , index = length - 1;
- if(arguments.length > 1)index = Math.min(index, toInteger(arguments[1]));
- if(index < 0)index = length + index;
- for(;index >= 0; index--)if(index in O)if(O[index] === searchElement)return index || 0;
- return -1;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.map.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.map.js
deleted file mode 100644
index f70089f3e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.map.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $map = require('./_array-methods')(1);
-
-$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {
- // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
- map: function map(callbackfn /* , thisArg */){
- return $map(this, callbackfn, arguments[1]);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.of.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.of.js
deleted file mode 100644
index dd4e1f816..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.of.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , createProperty = require('./_create-property');
-
-// WebKit Array.of isn't generic
-$export($export.S + $export.F * require('./_fails')(function(){
- function F(){}
- return !(Array.of.call(F) instanceof F);
-}), 'Array', {
- // 22.1.2.3 Array.of( ...items)
- of: function of(/* ...args */){
- var index = 0
- , aLen = arguments.length
- , result = new (typeof this == 'function' ? this : Array)(aLen);
- while(aLen > index)createProperty(result, index, arguments[index++]);
- result.length = aLen;
- return result;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.reduce-right.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.reduce-right.js
deleted file mode 100644
index 0c64d85e8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.reduce-right.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $reduce = require('./_array-reduce');
-
-$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {
- // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
- reduceRight: function reduceRight(callbackfn /* , initialValue */){
- return $reduce(this, callbackfn, arguments.length, arguments[1], true);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.reduce.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.reduce.js
deleted file mode 100644
index 491f7d252..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.reduce.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $reduce = require('./_array-reduce');
-
-$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {
- // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
- reduce: function reduce(callbackfn /* , initialValue */){
- return $reduce(this, callbackfn, arguments.length, arguments[1], false);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.slice.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.slice.js
deleted file mode 100644
index 610bd3990..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.slice.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , html = require('./_html')
- , cof = require('./_cof')
- , toIndex = require('./_to-index')
- , toLength = require('./_to-length')
- , arraySlice = [].slice;
-
-// fallback for not array-like ES3 strings and DOM objects
-$export($export.P + $export.F * require('./_fails')(function(){
- if(html)arraySlice.call(html);
-}), 'Array', {
- slice: function slice(begin, end){
- var len = toLength(this.length)
- , klass = cof(this);
- end = end === undefined ? len : end;
- if(klass == 'Array')return arraySlice.call(this, begin, end);
- var start = toIndex(begin, len)
- , upTo = toIndex(end, len)
- , size = toLength(upTo - start)
- , cloned = Array(size)
- , i = 0;
- for(; i < size; i++)cloned[i] = klass == 'String'
- ? this.charAt(start + i)
- : this[start + i];
- return cloned;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.some.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.some.js
deleted file mode 100644
index fa1095edc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.some.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $some = require('./_array-methods')(3);
-
-$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {
- // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
- some: function some(callbackfn /* , thisArg */){
- return $some(this, callbackfn, arguments[1]);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.sort.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.sort.js
deleted file mode 100644
index 7de1fe77f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.sort.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , aFunction = require('./_a-function')
- , toObject = require('./_to-object')
- , fails = require('./_fails')
- , $sort = [].sort
- , test = [1, 2, 3];
-
-$export($export.P + $export.F * (fails(function(){
- // IE8-
- test.sort(undefined);
-}) || !fails(function(){
- // V8 bug
- test.sort(null);
- // Old WebKit
-}) || !require('./_strict-method')($sort)), 'Array', {
- // 22.1.3.25 Array.prototype.sort(comparefn)
- sort: function sort(comparefn){
- return comparefn === undefined
- ? $sort.call(toObject(this))
- : $sort.call(toObject(this), aFunction(comparefn));
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.species.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.species.js
deleted file mode 100644
index d63c738f7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.array.species.js
+++ /dev/null
@@ -1 +0,0 @@
-require('./_set-species')('Array'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.date.now.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.date.now.js
deleted file mode 100644
index c3ee5fd7f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.date.now.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.3.3.1 / 15.9.4.4 Date.now()
-var $export = require('./_export');
-
-$export($export.S, 'Date', {now: function(){ return new Date().getTime(); }}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.date.to-iso-string.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.date.to-iso-string.js
deleted file mode 100644
index 2426c5898..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.date.to-iso-string.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
-var $export = require('./_export')
- , fails = require('./_fails')
- , getTime = Date.prototype.getTime;
-
-var lz = function(num){
- return num > 9 ? num : '0' + num;
-};
-
-// PhantomJS / old WebKit has a broken implementations
-$export($export.P + $export.F * (fails(function(){
- return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';
-}) || !fails(function(){
- new Date(NaN).toISOString();
-})), 'Date', {
- toISOString: function toISOString(){
- if(!isFinite(getTime.call(this)))throw RangeError('Invalid time value');
- var d = this
- , y = d.getUTCFullYear()
- , m = d.getUTCMilliseconds()
- , s = y < 0 ? '-' : y > 9999 ? '+' : '';
- return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
- '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
- 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
- ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.date.to-json.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.date.to-json.js
deleted file mode 100644
index eb419d03f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.date.to-json.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , toObject = require('./_to-object')
- , toPrimitive = require('./_to-primitive');
-
-$export($export.P + $export.F * require('./_fails')(function(){
- return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({toISOString: function(){ return 1; }}) !== 1;
-}), 'Date', {
- toJSON: function toJSON(key){
- var O = toObject(this)
- , pv = toPrimitive(O);
- return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.date.to-primitive.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.date.to-primitive.js
deleted file mode 100644
index 15a823d59..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.date.to-primitive.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var TO_PRIMITIVE = require('./_wks')('toPrimitive')
- , proto = Date.prototype;
-
-if(!(TO_PRIMITIVE in proto))require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive')); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.date.to-string.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.date.to-string.js
deleted file mode 100644
index 686e949e0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.date.to-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var DateProto = Date.prototype
- , INVALID_DATE = 'Invalid Date'
- , TO_STRING = 'toString'
- , $toString = DateProto[TO_STRING]
- , getTime = DateProto.getTime;
-if(new Date(NaN) + '' != INVALID_DATE){
- require('./_redefine')(DateProto, TO_STRING, function toString(){
- var value = getTime.call(this);
- return value === value ? $toString.call(this) : INVALID_DATE;
- });
-} \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.function.bind.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.function.bind.js
deleted file mode 100644
index 85f103799..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.function.bind.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
-var $export = require('./_export');
-
-$export($export.P, 'Function', {bind: require('./_bind')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.function.has-instance.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.function.has-instance.js
deleted file mode 100644
index ae294b1f1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.function.has-instance.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-var isObject = require('./_is-object')
- , getPrototypeOf = require('./_object-gpo')
- , HAS_INSTANCE = require('./_wks')('hasInstance')
- , FunctionProto = Function.prototype;
-// 19.2.3.6 Function.prototype[@@hasInstance](V)
-if(!(HAS_INSTANCE in FunctionProto))require('./_object-dp').f(FunctionProto, HAS_INSTANCE, {value: function(O){
- if(typeof this != 'function' || !isObject(O))return false;
- if(!isObject(this.prototype))return O instanceof this;
- // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
- while(O = getPrototypeOf(O))if(this.prototype === O)return true;
- return false;
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.function.name.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.function.name.js
deleted file mode 100644
index f824d86d2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.function.name.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var dP = require('./_object-dp').f
- , createDesc = require('./_property-desc')
- , has = require('./_has')
- , FProto = Function.prototype
- , nameRE = /^\s*function ([^ (]*)/
- , NAME = 'name';
-
-var isExtensible = Object.isExtensible || function(){
- return true;
-};
-
-// 19.2.4.2 name
-NAME in FProto || require('./_descriptors') && dP(FProto, NAME, {
- configurable: true,
- get: function(){
- try {
- var that = this
- , name = ('' + that).match(nameRE)[1];
- has(that, NAME) || !isExtensible(that) || dP(that, NAME, createDesc(5, name));
- return name;
- } catch(e){
- return '';
- }
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.map.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.map.js
deleted file mode 100644
index a166430fc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.map.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-var strong = require('./_collection-strong');
-
-// 23.1 Map Objects
-module.exports = require('./_collection')('Map', function(get){
- return function Map(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
-}, {
- // 23.1.3.6 Map.prototype.get(key)
- get: function get(key){
- var entry = strong.getEntry(this, key);
- return entry && entry.v;
- },
- // 23.1.3.9 Map.prototype.set(key, value)
- set: function set(key, value){
- return strong.def(this, key === 0 ? 0 : key, value);
- }
-}, strong, true); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.acosh.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.acosh.js
deleted file mode 100644
index 459f11990..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.acosh.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// 20.2.2.3 Math.acosh(x)
-var $export = require('./_export')
- , log1p = require('./_math-log1p')
- , sqrt = Math.sqrt
- , $acosh = Math.acosh;
-
-$export($export.S + $export.F * !($acosh
- // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
- && Math.floor($acosh(Number.MAX_VALUE)) == 710
- // Tor Browser bug: Math.acosh(Infinity) -> NaN
- && $acosh(Infinity) == Infinity
-), 'Math', {
- acosh: function acosh(x){
- return (x = +x) < 1 ? NaN : x > 94906265.62425156
- ? Math.log(x) + Math.LN2
- : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.asinh.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.asinh.js
deleted file mode 100644
index e6a74abb5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.asinh.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// 20.2.2.5 Math.asinh(x)
-var $export = require('./_export')
- , $asinh = Math.asinh;
-
-function asinh(x){
- return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
-}
-
-// Tor Browser bug: Math.asinh(0) -> -0
-$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', {asinh: asinh}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.atanh.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.atanh.js
deleted file mode 100644
index 94575d9f0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.atanh.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// 20.2.2.7 Math.atanh(x)
-var $export = require('./_export')
- , $atanh = Math.atanh;
-
-// Tor Browser bug: Math.atanh(-0) -> 0
-$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {
- atanh: function atanh(x){
- return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.cbrt.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.cbrt.js
deleted file mode 100644
index 7ca7daea8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.cbrt.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// 20.2.2.9 Math.cbrt(x)
-var $export = require('./_export')
- , sign = require('./_math-sign');
-
-$export($export.S, 'Math', {
- cbrt: function cbrt(x){
- return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.clz32.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.clz32.js
deleted file mode 100644
index 1ec534bd0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.clz32.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 20.2.2.11 Math.clz32(x)
-var $export = require('./_export');
-
-$export($export.S, 'Math', {
- clz32: function clz32(x){
- return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.cosh.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.cosh.js
deleted file mode 100644
index 4f2b21552..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.cosh.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// 20.2.2.12 Math.cosh(x)
-var $export = require('./_export')
- , exp = Math.exp;
-
-$export($export.S, 'Math', {
- cosh: function cosh(x){
- return (exp(x = +x) + exp(-x)) / 2;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.expm1.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.expm1.js
deleted file mode 100644
index 9762b7cd0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.expm1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// 20.2.2.14 Math.expm1(x)
-var $export = require('./_export')
- , $expm1 = require('./_math-expm1');
-
-$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', {expm1: $expm1}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.fround.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.fround.js
deleted file mode 100644
index 01a88862e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.fround.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// 20.2.2.16 Math.fround(x)
-var $export = require('./_export')
- , sign = require('./_math-sign')
- , pow = Math.pow
- , EPSILON = pow(2, -52)
- , EPSILON32 = pow(2, -23)
- , MAX32 = pow(2, 127) * (2 - EPSILON32)
- , MIN32 = pow(2, -126);
-
-var roundTiesToEven = function(n){
- return n + 1 / EPSILON - 1 / EPSILON;
-};
-
-
-$export($export.S, 'Math', {
- fround: function fround(x){
- var $abs = Math.abs(x)
- , $sign = sign(x)
- , a, result;
- if($abs < MIN32)return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
- a = (1 + EPSILON32 / EPSILON) * $abs;
- result = a - (a - $abs);
- if(result > MAX32 || result != result)return $sign * Infinity;
- return $sign * result;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.hypot.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.hypot.js
deleted file mode 100644
index 508521b69..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.hypot.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
-var $export = require('./_export')
- , abs = Math.abs;
-
-$export($export.S, 'Math', {
- hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars
- var sum = 0
- , i = 0
- , aLen = arguments.length
- , larg = 0
- , arg, div;
- while(i < aLen){
- arg = abs(arguments[i++]);
- if(larg < arg){
- div = larg / arg;
- sum = sum * div * div + 1;
- larg = arg;
- } else if(arg > 0){
- div = arg / larg;
- sum += div * div;
- } else sum += arg;
- }
- return larg === Infinity ? Infinity : larg * Math.sqrt(sum);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.imul.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.imul.js
deleted file mode 100644
index 7f4111d27..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.imul.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// 20.2.2.18 Math.imul(x, y)
-var $export = require('./_export')
- , $imul = Math.imul;
-
-// some WebKit versions fails with big numbers, some has wrong arity
-$export($export.S + $export.F * require('./_fails')(function(){
- return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
-}), 'Math', {
- imul: function imul(x, y){
- var UINT16 = 0xffff
- , xn = +x
- , yn = +y
- , xl = UINT16 & xn
- , yl = UINT16 & yn;
- return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.log10.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.log10.js
deleted file mode 100644
index 791dfc353..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.log10.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 20.2.2.21 Math.log10(x)
-var $export = require('./_export');
-
-$export($export.S, 'Math', {
- log10: function log10(x){
- return Math.log(x) / Math.LN10;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.log1p.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.log1p.js
deleted file mode 100644
index a1de0258d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.log1p.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.2.2.20 Math.log1p(x)
-var $export = require('./_export');
-
-$export($export.S, 'Math', {log1p: require('./_math-log1p')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.log2.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.log2.js
deleted file mode 100644
index c4ba7819c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.log2.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 20.2.2.22 Math.log2(x)
-var $export = require('./_export');
-
-$export($export.S, 'Math', {
- log2: function log2(x){
- return Math.log(x) / Math.LN2;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.sign.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.sign.js
deleted file mode 100644
index 5dbee6f66..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.sign.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.2.2.28 Math.sign(x)
-var $export = require('./_export');
-
-$export($export.S, 'Math', {sign: require('./_math-sign')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.sinh.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.sinh.js
deleted file mode 100644
index 5464ae3e6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.sinh.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// 20.2.2.30 Math.sinh(x)
-var $export = require('./_export')
- , expm1 = require('./_math-expm1')
- , exp = Math.exp;
-
-// V8 near Chromium 38 has a problem with very small numbers
-$export($export.S + $export.F * require('./_fails')(function(){
- return !Math.sinh(-2e-17) != -2e-17;
-}), 'Math', {
- sinh: function sinh(x){
- return Math.abs(x = +x) < 1
- ? (expm1(x) - expm1(-x)) / 2
- : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.tanh.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.tanh.js
deleted file mode 100644
index d2f10778c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.tanh.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// 20.2.2.33 Math.tanh(x)
-var $export = require('./_export')
- , expm1 = require('./_math-expm1')
- , exp = Math.exp;
-
-$export($export.S, 'Math', {
- tanh: function tanh(x){
- var a = expm1(x = +x)
- , b = expm1(-x);
- return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.trunc.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.trunc.js
deleted file mode 100644
index 2e42563b6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.math.trunc.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 20.2.2.34 Math.trunc(x)
-var $export = require('./_export');
-
-$export($export.S, 'Math', {
- trunc: function trunc(it){
- return (it > 0 ? Math.floor : Math.ceil)(it);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.constructor.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.constructor.js
deleted file mode 100644
index d562365bc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.constructor.js
+++ /dev/null
@@ -1,69 +0,0 @@
-'use strict';
-var global = require('./_global')
- , has = require('./_has')
- , cof = require('./_cof')
- , inheritIfRequired = require('./_inherit-if-required')
- , toPrimitive = require('./_to-primitive')
- , fails = require('./_fails')
- , gOPN = require('./_object-gopn').f
- , gOPD = require('./_object-gopd').f
- , dP = require('./_object-dp').f
- , $trim = require('./_string-trim').trim
- , NUMBER = 'Number'
- , $Number = global[NUMBER]
- , Base = $Number
- , proto = $Number.prototype
- // Opera ~12 has broken Object#toString
- , BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER
- , TRIM = 'trim' in String.prototype;
-
-// 7.1.3 ToNumber(argument)
-var toNumber = function(argument){
- var it = toPrimitive(argument, false);
- if(typeof it == 'string' && it.length > 2){
- it = TRIM ? it.trim() : $trim(it, 3);
- var first = it.charCodeAt(0)
- , third, radix, maxCode;
- if(first === 43 || first === 45){
- third = it.charCodeAt(2);
- if(third === 88 || third === 120)return NaN; // Number('+0x1') should be NaN, old V8 fix
- } else if(first === 48){
- switch(it.charCodeAt(1)){
- case 66 : case 98 : radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i
- case 79 : case 111 : radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i
- default : return +it;
- }
- for(var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++){
- code = digits.charCodeAt(i);
- // parseInt parses a string to a first unavailable symbol
- // but ToNumber should return NaN if a string contains unavailable symbols
- if(code < 48 || code > maxCode)return NaN;
- } return parseInt(digits, radix);
- }
- } return +it;
-};
-
-if(!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')){
- $Number = function Number(value){
- var it = arguments.length < 1 ? 0 : value
- , that = this;
- return that instanceof $Number
- // check on 1..constructor(foo) case
- && (BROKEN_COF ? fails(function(){ proto.valueOf.call(that); }) : cof(that) != NUMBER)
- ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);
- };
- for(var keys = require('./_descriptors') ? gOPN(Base) : (
- // ES3:
- 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
- // ES6 (in case, if modules with ES6 Number statics required before):
- 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
- 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'
- ).split(','), j = 0, key; keys.length > j; j++){
- if(has(Base, key = keys[j]) && !has($Number, key)){
- dP($Number, key, gOPD(Base, key));
- }
- }
- $Number.prototype = proto;
- proto.constructor = $Number;
- require('./_redefine')(global, NUMBER, $Number);
-} \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.epsilon.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.epsilon.js
deleted file mode 100644
index d25898ccc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.epsilon.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.1.2.1 Number.EPSILON
-var $export = require('./_export');
-
-$export($export.S, 'Number', {EPSILON: Math.pow(2, -52)}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.is-finite.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.is-finite.js
deleted file mode 100644
index c8c42753b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.is-finite.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// 20.1.2.2 Number.isFinite(number)
-var $export = require('./_export')
- , _isFinite = require('./_global').isFinite;
-
-$export($export.S, 'Number', {
- isFinite: function isFinite(it){
- return typeof it == 'number' && _isFinite(it);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.is-integer.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.is-integer.js
deleted file mode 100644
index dc0f8f009..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.is-integer.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.1.2.3 Number.isInteger(number)
-var $export = require('./_export');
-
-$export($export.S, 'Number', {isInteger: require('./_is-integer')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.is-nan.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.is-nan.js
deleted file mode 100644
index 5fedf8252..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.is-nan.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 20.1.2.4 Number.isNaN(number)
-var $export = require('./_export');
-
-$export($export.S, 'Number', {
- isNaN: function isNaN(number){
- return number != number;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.is-safe-integer.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.is-safe-integer.js
deleted file mode 100644
index 92193e2ec..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.is-safe-integer.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// 20.1.2.5 Number.isSafeInteger(number)
-var $export = require('./_export')
- , isInteger = require('./_is-integer')
- , abs = Math.abs;
-
-$export($export.S, 'Number', {
- isSafeInteger: function isSafeInteger(number){
- return isInteger(number) && abs(number) <= 0x1fffffffffffff;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.max-safe-integer.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.max-safe-integer.js
deleted file mode 100644
index b9d7f2a77..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.max-safe-integer.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.1.2.6 Number.MAX_SAFE_INTEGER
-var $export = require('./_export');
-
-$export($export.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.min-safe-integer.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.min-safe-integer.js
deleted file mode 100644
index 9a2beeb3c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.min-safe-integer.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.1.2.10 Number.MIN_SAFE_INTEGER
-var $export = require('./_export');
-
-$export($export.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.parse-float.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.parse-float.js
deleted file mode 100644
index 7ee14da03..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.parse-float.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var $export = require('./_export')
- , $parseFloat = require('./_parse-float');
-// 20.1.2.12 Number.parseFloat(string)
-$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', {parseFloat: $parseFloat}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.parse-int.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.parse-int.js
deleted file mode 100644
index 59bf14459..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.parse-int.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var $export = require('./_export')
- , $parseInt = require('./_parse-int');
-// 20.1.2.13 Number.parseInt(string, radix)
-$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', {parseInt: $parseInt}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.to-fixed.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.to-fixed.js
deleted file mode 100644
index c54970d6a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.to-fixed.js
+++ /dev/null
@@ -1,113 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , toInteger = require('./_to-integer')
- , aNumberValue = require('./_a-number-value')
- , repeat = require('./_string-repeat')
- , $toFixed = 1..toFixed
- , floor = Math.floor
- , data = [0, 0, 0, 0, 0, 0]
- , ERROR = 'Number.toFixed: incorrect invocation!'
- , ZERO = '0';
-
-var multiply = function(n, c){
- var i = -1
- , c2 = c;
- while(++i < 6){
- c2 += n * data[i];
- data[i] = c2 % 1e7;
- c2 = floor(c2 / 1e7);
- }
-};
-var divide = function(n){
- var i = 6
- , c = 0;
- while(--i >= 0){
- c += data[i];
- data[i] = floor(c / n);
- c = (c % n) * 1e7;
- }
-};
-var numToString = function(){
- var i = 6
- , s = '';
- while(--i >= 0){
- if(s !== '' || i === 0 || data[i] !== 0){
- var t = String(data[i]);
- s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;
- }
- } return s;
-};
-var pow = function(x, n, acc){
- return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
-};
-var log = function(x){
- var n = 0
- , x2 = x;
- while(x2 >= 4096){
- n += 12;
- x2 /= 4096;
- }
- while(x2 >= 2){
- n += 1;
- x2 /= 2;
- } return n;
-};
-
-$export($export.P + $export.F * (!!$toFixed && (
- 0.00008.toFixed(3) !== '0.000' ||
- 0.9.toFixed(0) !== '1' ||
- 1.255.toFixed(2) !== '1.25' ||
- 1000000000000000128..toFixed(0) !== '1000000000000000128'
-) || !require('./_fails')(function(){
- // V8 ~ Android 4.3-
- $toFixed.call({});
-})), 'Number', {
- toFixed: function toFixed(fractionDigits){
- var x = aNumberValue(this, ERROR)
- , f = toInteger(fractionDigits)
- , s = ''
- , m = ZERO
- , e, z, j, k;
- if(f < 0 || f > 20)throw RangeError(ERROR);
- if(x != x)return 'NaN';
- if(x <= -1e21 || x >= 1e21)return String(x);
- if(x < 0){
- s = '-';
- x = -x;
- }
- if(x > 1e-21){
- e = log(x * pow(2, 69, 1)) - 69;
- z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);
- z *= 0x10000000000000;
- e = 52 - e;
- if(e > 0){
- multiply(0, z);
- j = f;
- while(j >= 7){
- multiply(1e7, 0);
- j -= 7;
- }
- multiply(pow(10, j, 1), 0);
- j = e - 1;
- while(j >= 23){
- divide(1 << 23);
- j -= 23;
- }
- divide(1 << j);
- multiply(1, 1);
- divide(2);
- m = numToString();
- } else {
- multiply(0, z);
- multiply(1 << -e, 0);
- m = numToString() + repeat.call(ZERO, f);
- }
- }
- if(f > 0){
- k = m.length;
- m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));
- } else {
- m = s + m;
- } return m;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.to-precision.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.to-precision.js
deleted file mode 100644
index 903dacdf0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.number.to-precision.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $fails = require('./_fails')
- , aNumberValue = require('./_a-number-value')
- , $toPrecision = 1..toPrecision;
-
-$export($export.P + $export.F * ($fails(function(){
- // IE7-
- return $toPrecision.call(1, undefined) !== '1';
-}) || !$fails(function(){
- // V8 ~ Android 4.3-
- $toPrecision.call({});
-})), 'Number', {
- toPrecision: function toPrecision(precision){
- var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');
- return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.assign.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.assign.js
deleted file mode 100644
index 13eda2cb8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.assign.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 19.1.3.1 Object.assign(target, source)
-var $export = require('./_export');
-
-$export($export.S + $export.F, 'Object', {assign: require('./_object-assign')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.create.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.create.js
deleted file mode 100644
index 17e4b2842..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.create.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var $export = require('./_export')
-// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
-$export($export.S, 'Object', {create: require('./_object-create')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.define-properties.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.define-properties.js
deleted file mode 100644
index 183eec6f5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.define-properties.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var $export = require('./_export');
-// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
-$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperties: require('./_object-dps')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.define-property.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.define-property.js
deleted file mode 100644
index 71807cc05..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.define-property.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var $export = require('./_export');
-// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
-$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.freeze.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.freeze.js
deleted file mode 100644
index 34b510842..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.freeze.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// 19.1.2.5 Object.freeze(O)
-var isObject = require('./_is-object')
- , meta = require('./_meta').onFreeze;
-
-require('./_object-sap')('freeze', function($freeze){
- return function freeze(it){
- return $freeze && isObject(it) ? $freeze(meta(it)) : it;
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.get-own-property-descriptor.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.get-own-property-descriptor.js
deleted file mode 100644
index 60c69913a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.get-own-property-descriptor.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
-var toIObject = require('./_to-iobject')
- , $getOwnPropertyDescriptor = require('./_object-gopd').f;
-
-require('./_object-sap')('getOwnPropertyDescriptor', function(){
- return function getOwnPropertyDescriptor(it, key){
- return $getOwnPropertyDescriptor(toIObject(it), key);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.get-own-property-names.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.get-own-property-names.js
deleted file mode 100644
index 91dd110d2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.get-own-property-names.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 19.1.2.7 Object.getOwnPropertyNames(O)
-require('./_object-sap')('getOwnPropertyNames', function(){
- return require('./_object-gopn-ext').f;
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.get-prototype-of.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.get-prototype-of.js
deleted file mode 100644
index b124e28fa..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.get-prototype-of.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// 19.1.2.9 Object.getPrototypeOf(O)
-var toObject = require('./_to-object')
- , $getPrototypeOf = require('./_object-gpo');
-
-require('./_object-sap')('getPrototypeOf', function(){
- return function getPrototypeOf(it){
- return $getPrototypeOf(toObject(it));
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.is-extensible.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.is-extensible.js
deleted file mode 100644
index 94bf8a815..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.is-extensible.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 19.1.2.11 Object.isExtensible(O)
-var isObject = require('./_is-object');
-
-require('./_object-sap')('isExtensible', function($isExtensible){
- return function isExtensible(it){
- return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.is-frozen.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.is-frozen.js
deleted file mode 100644
index 4bdfd11b1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.is-frozen.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 19.1.2.12 Object.isFrozen(O)
-var isObject = require('./_is-object');
-
-require('./_object-sap')('isFrozen', function($isFrozen){
- return function isFrozen(it){
- return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.is-sealed.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.is-sealed.js
deleted file mode 100644
index d13aa1b06..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.is-sealed.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 19.1.2.13 Object.isSealed(O)
-var isObject = require('./_is-object');
-
-require('./_object-sap')('isSealed', function($isSealed){
- return function isSealed(it){
- return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.is.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.is.js
deleted file mode 100644
index ad2994256..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.is.js
+++ /dev/null
@@ -1,3 +0,0 @@
-// 19.1.3.10 Object.is(value1, value2)
-var $export = require('./_export');
-$export($export.S, 'Object', {is: require('./_same-value')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.keys.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.keys.js
deleted file mode 100644
index bf76c07d7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.keys.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// 19.1.2.14 Object.keys(O)
-var toObject = require('./_to-object')
- , $keys = require('./_object-keys');
-
-require('./_object-sap')('keys', function(){
- return function keys(it){
- return $keys(toObject(it));
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.prevent-extensions.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.prevent-extensions.js
deleted file mode 100644
index adaff7a79..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.prevent-extensions.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// 19.1.2.15 Object.preventExtensions(O)
-var isObject = require('./_is-object')
- , meta = require('./_meta').onFreeze;
-
-require('./_object-sap')('preventExtensions', function($preventExtensions){
- return function preventExtensions(it){
- return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.seal.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.seal.js
deleted file mode 100644
index d7e4ea958..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.seal.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// 19.1.2.17 Object.seal(O)
-var isObject = require('./_is-object')
- , meta = require('./_meta').onFreeze;
-
-require('./_object-sap')('seal', function($seal){
- return function seal(it){
- return $seal && isObject(it) ? $seal(meta(it)) : it;
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.set-prototype-of.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.set-prototype-of.js
deleted file mode 100644
index 5bbe4c068..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.set-prototype-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-// 19.1.3.19 Object.setPrototypeOf(O, proto)
-var $export = require('./_export');
-$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.to-string.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.to-string.js
deleted file mode 100644
index e644a5d1f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.object.to-string.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-// 19.1.3.6 Object.prototype.toString()
-var classof = require('./_classof')
- , test = {};
-test[require('./_wks')('toStringTag')] = 'z';
-if(test + '' != '[object z]'){
- require('./_redefine')(Object.prototype, 'toString', function toString(){
- return '[object ' + classof(this) + ']';
- }, true);
-} \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.parse-float.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.parse-float.js
deleted file mode 100644
index 5201712b1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.parse-float.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var $export = require('./_export')
- , $parseFloat = require('./_parse-float');
-// 18.2.4 parseFloat(string)
-$export($export.G + $export.F * (parseFloat != $parseFloat), {parseFloat: $parseFloat}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.parse-int.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.parse-int.js
deleted file mode 100644
index 5a2bfaff0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.parse-int.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var $export = require('./_export')
- , $parseInt = require('./_parse-int');
-// 18.2.5 parseInt(string, radix)
-$export($export.G + $export.F * (parseInt != $parseInt), {parseInt: $parseInt}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.promise.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.promise.js
deleted file mode 100644
index 262a93af1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.promise.js
+++ /dev/null
@@ -1,299 +0,0 @@
-'use strict';
-var LIBRARY = require('./_library')
- , global = require('./_global')
- , ctx = require('./_ctx')
- , classof = require('./_classof')
- , $export = require('./_export')
- , isObject = require('./_is-object')
- , aFunction = require('./_a-function')
- , anInstance = require('./_an-instance')
- , forOf = require('./_for-of')
- , speciesConstructor = require('./_species-constructor')
- , task = require('./_task').set
- , microtask = require('./_microtask')()
- , PROMISE = 'Promise'
- , TypeError = global.TypeError
- , process = global.process
- , $Promise = global[PROMISE]
- , process = global.process
- , isNode = classof(process) == 'process'
- , empty = function(){ /* empty */ }
- , Internal, GenericPromiseCapability, Wrapper;
-
-var USE_NATIVE = !!function(){
- try {
- // correct subclassing with @@species support
- var promise = $Promise.resolve(1)
- , FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function(exec){ exec(empty, empty); };
- // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
- return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;
- } catch(e){ /* empty */ }
-}();
-
-// helpers
-var sameConstructor = function(a, b){
- // with library wrapper special case
- return a === b || a === $Promise && b === Wrapper;
-};
-var isThenable = function(it){
- var then;
- return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
-};
-var newPromiseCapability = function(C){
- return sameConstructor($Promise, C)
- ? new PromiseCapability(C)
- : new GenericPromiseCapability(C);
-};
-var PromiseCapability = GenericPromiseCapability = function(C){
- var resolve, reject;
- this.promise = new C(function($$resolve, $$reject){
- if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor');
- resolve = $$resolve;
- reject = $$reject;
- });
- this.resolve = aFunction(resolve);
- this.reject = aFunction(reject);
-};
-var perform = function(exec){
- try {
- exec();
- } catch(e){
- return {error: e};
- }
-};
-var notify = function(promise, isReject){
- if(promise._n)return;
- promise._n = true;
- var chain = promise._c;
- microtask(function(){
- var value = promise._v
- , ok = promise._s == 1
- , i = 0;
- var run = function(reaction){
- var handler = ok ? reaction.ok : reaction.fail
- , resolve = reaction.resolve
- , reject = reaction.reject
- , domain = reaction.domain
- , result, then;
- try {
- if(handler){
- if(!ok){
- if(promise._h == 2)onHandleUnhandled(promise);
- promise._h = 1;
- }
- if(handler === true)result = value;
- else {
- if(domain)domain.enter();
- result = handler(value);
- if(domain)domain.exit();
- }
- if(result === reaction.promise){
- reject(TypeError('Promise-chain cycle'));
- } else if(then = isThenable(result)){
- then.call(result, resolve, reject);
- } else resolve(result);
- } else reject(value);
- } catch(e){
- reject(e);
- }
- };
- while(chain.length > i)run(chain[i++]); // variable length - can't use forEach
- promise._c = [];
- promise._n = false;
- if(isReject && !promise._h)onUnhandled(promise);
- });
-};
-var onUnhandled = function(promise){
- task.call(global, function(){
- var value = promise._v
- , abrupt, handler, console;
- if(isUnhandled(promise)){
- abrupt = perform(function(){
- if(isNode){
- process.emit('unhandledRejection', value, promise);
- } else if(handler = global.onunhandledrejection){
- handler({promise: promise, reason: value});
- } else if((console = global.console) && console.error){
- console.error('Unhandled promise rejection', value);
- }
- });
- // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
- promise._h = isNode || isUnhandled(promise) ? 2 : 1;
- } promise._a = undefined;
- if(abrupt)throw abrupt.error;
- });
-};
-var isUnhandled = function(promise){
- if(promise._h == 1)return false;
- var chain = promise._a || promise._c
- , i = 0
- , reaction;
- while(chain.length > i){
- reaction = chain[i++];
- if(reaction.fail || !isUnhandled(reaction.promise))return false;
- } return true;
-};
-var onHandleUnhandled = function(promise){
- task.call(global, function(){
- var handler;
- if(isNode){
- process.emit('rejectionHandled', promise);
- } else if(handler = global.onrejectionhandled){
- handler({promise: promise, reason: promise._v});
- }
- });
-};
-var $reject = function(value){
- var promise = this;
- if(promise._d)return;
- promise._d = true;
- promise = promise._w || promise; // unwrap
- promise._v = value;
- promise._s = 2;
- if(!promise._a)promise._a = promise._c.slice();
- notify(promise, true);
-};
-var $resolve = function(value){
- var promise = this
- , then;
- if(promise._d)return;
- promise._d = true;
- promise = promise._w || promise; // unwrap
- try {
- if(promise === value)throw TypeError("Promise can't be resolved itself");
- if(then = isThenable(value)){
- microtask(function(){
- var wrapper = {_w: promise, _d: false}; // wrap
- try {
- then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
- } catch(e){
- $reject.call(wrapper, e);
- }
- });
- } else {
- promise._v = value;
- promise._s = 1;
- notify(promise, false);
- }
- } catch(e){
- $reject.call({_w: promise, _d: false}, e); // wrap
- }
-};
-
-// constructor polyfill
-if(!USE_NATIVE){
- // 25.4.3.1 Promise(executor)
- $Promise = function Promise(executor){
- anInstance(this, $Promise, PROMISE, '_h');
- aFunction(executor);
- Internal.call(this);
- try {
- executor(ctx($resolve, this, 1), ctx($reject, this, 1));
- } catch(err){
- $reject.call(this, err);
- }
- };
- Internal = function Promise(executor){
- this._c = []; // <- awaiting reactions
- this._a = undefined; // <- checked in isUnhandled reactions
- this._s = 0; // <- state
- this._d = false; // <- done
- this._v = undefined; // <- value
- this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
- this._n = false; // <- notify
- };
- Internal.prototype = require('./_redefine-all')($Promise.prototype, {
- // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
- then: function then(onFulfilled, onRejected){
- var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
- reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
- reaction.fail = typeof onRejected == 'function' && onRejected;
- reaction.domain = isNode ? process.domain : undefined;
- this._c.push(reaction);
- if(this._a)this._a.push(reaction);
- if(this._s)notify(this, false);
- return reaction.promise;
- },
- // 25.4.5.1 Promise.prototype.catch(onRejected)
- 'catch': function(onRejected){
- return this.then(undefined, onRejected);
- }
- });
- PromiseCapability = function(){
- var promise = new Internal;
- this.promise = promise;
- this.resolve = ctx($resolve, promise, 1);
- this.reject = ctx($reject, promise, 1);
- };
-}
-
-$export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: $Promise});
-require('./_set-to-string-tag')($Promise, PROMISE);
-require('./_set-species')(PROMISE);
-Wrapper = require('./_core')[PROMISE];
-
-// statics
-$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
- // 25.4.4.5 Promise.reject(r)
- reject: function reject(r){
- var capability = newPromiseCapability(this)
- , $$reject = capability.reject;
- $$reject(r);
- return capability.promise;
- }
-});
-$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
- // 25.4.4.6 Promise.resolve(x)
- resolve: function resolve(x){
- // instanceof instead of internal slot check because we should fix it without replacement native Promise core
- if(x instanceof $Promise && sameConstructor(x.constructor, this))return x;
- var capability = newPromiseCapability(this)
- , $$resolve = capability.resolve;
- $$resolve(x);
- return capability.promise;
- }
-});
-$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function(iter){
- $Promise.all(iter)['catch'](empty);
-})), PROMISE, {
- // 25.4.4.1 Promise.all(iterable)
- all: function all(iterable){
- var C = this
- , capability = newPromiseCapability(C)
- , resolve = capability.resolve
- , reject = capability.reject;
- var abrupt = perform(function(){
- var values = []
- , index = 0
- , remaining = 1;
- forOf(iterable, false, function(promise){
- var $index = index++
- , alreadyCalled = false;
- values.push(undefined);
- remaining++;
- C.resolve(promise).then(function(value){
- if(alreadyCalled)return;
- alreadyCalled = true;
- values[$index] = value;
- --remaining || resolve(values);
- }, reject);
- });
- --remaining || resolve(values);
- });
- if(abrupt)reject(abrupt.error);
- return capability.promise;
- },
- // 25.4.4.4 Promise.race(iterable)
- race: function race(iterable){
- var C = this
- , capability = newPromiseCapability(C)
- , reject = capability.reject;
- var abrupt = perform(function(){
- forOf(iterable, false, function(promise){
- C.resolve(promise).then(capability.resolve, reject);
- });
- });
- if(abrupt)reject(abrupt.error);
- return capability.promise;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.apply.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.apply.js
deleted file mode 100644
index 24ea80f51..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.apply.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
-var $export = require('./_export')
- , aFunction = require('./_a-function')
- , anObject = require('./_an-object')
- , rApply = (require('./_global').Reflect || {}).apply
- , fApply = Function.apply;
-// MS Edge argumentsList argument is optional
-$export($export.S + $export.F * !require('./_fails')(function(){
- rApply(function(){});
-}), 'Reflect', {
- apply: function apply(target, thisArgument, argumentsList){
- var T = aFunction(target)
- , L = anObject(argumentsList);
- return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.construct.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.construct.js
deleted file mode 100644
index 96483d708..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.construct.js
+++ /dev/null
@@ -1,47 +0,0 @@
-// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
-var $export = require('./_export')
- , create = require('./_object-create')
- , aFunction = require('./_a-function')
- , anObject = require('./_an-object')
- , isObject = require('./_is-object')
- , fails = require('./_fails')
- , bind = require('./_bind')
- , rConstruct = (require('./_global').Reflect || {}).construct;
-
-// MS Edge supports only 2 arguments and argumentsList argument is optional
-// FF Nightly sets third argument as `new.target`, but does not create `this` from it
-var NEW_TARGET_BUG = fails(function(){
- function F(){}
- return !(rConstruct(function(){}, [], F) instanceof F);
-});
-var ARGS_BUG = !fails(function(){
- rConstruct(function(){});
-});
-
-$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
- construct: function construct(Target, args /*, newTarget*/){
- aFunction(Target);
- anObject(args);
- var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
- if(ARGS_BUG && !NEW_TARGET_BUG)return rConstruct(Target, args, newTarget);
- if(Target == newTarget){
- // w/o altered newTarget, optimization for 0-4 arguments
- switch(args.length){
- case 0: return new Target;
- case 1: return new Target(args[0]);
- case 2: return new Target(args[0], args[1]);
- case 3: return new Target(args[0], args[1], args[2]);
- case 4: return new Target(args[0], args[1], args[2], args[3]);
- }
- // w/o altered newTarget, lot of arguments case
- var $args = [null];
- $args.push.apply($args, args);
- return new (bind.apply(Target, $args));
- }
- // with altered newTarget, not support built-in constructors
- var proto = newTarget.prototype
- , instance = create(isObject(proto) ? proto : Object.prototype)
- , result = Function.apply.call(Target, instance, args);
- return isObject(result) ? result : instance;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.define-property.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.define-property.js
deleted file mode 100644
index 485d43c45..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.define-property.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
-var dP = require('./_object-dp')
- , $export = require('./_export')
- , anObject = require('./_an-object')
- , toPrimitive = require('./_to-primitive');
-
-// MS Edge has broken Reflect.defineProperty - throwing instead of returning false
-$export($export.S + $export.F * require('./_fails')(function(){
- Reflect.defineProperty(dP.f({}, 1, {value: 1}), 1, {value: 2});
-}), 'Reflect', {
- defineProperty: function defineProperty(target, propertyKey, attributes){
- anObject(target);
- propertyKey = toPrimitive(propertyKey, true);
- anObject(attributes);
- try {
- dP.f(target, propertyKey, attributes);
- return true;
- } catch(e){
- return false;
- }
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.delete-property.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.delete-property.js
deleted file mode 100644
index 4e8ce2078..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.delete-property.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// 26.1.4 Reflect.deleteProperty(target, propertyKey)
-var $export = require('./_export')
- , gOPD = require('./_object-gopd').f
- , anObject = require('./_an-object');
-
-$export($export.S, 'Reflect', {
- deleteProperty: function deleteProperty(target, propertyKey){
- var desc = gOPD(anObject(target), propertyKey);
- return desc && !desc.configurable ? false : delete target[propertyKey];
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.enumerate.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.enumerate.js
deleted file mode 100644
index abdb132d6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.enumerate.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-// 26.1.5 Reflect.enumerate(target)
-var $export = require('./_export')
- , anObject = require('./_an-object');
-var Enumerate = function(iterated){
- this._t = anObject(iterated); // target
- this._i = 0; // next index
- var keys = this._k = [] // keys
- , key;
- for(key in iterated)keys.push(key);
-};
-require('./_iter-create')(Enumerate, 'Object', function(){
- var that = this
- , keys = that._k
- , key;
- do {
- if(that._i >= keys.length)return {value: undefined, done: true};
- } while(!((key = keys[that._i++]) in that._t));
- return {value: key, done: false};
-});
-
-$export($export.S, 'Reflect', {
- enumerate: function enumerate(target){
- return new Enumerate(target);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js
deleted file mode 100644
index 741a13eba..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
-var gOPD = require('./_object-gopd')
- , $export = require('./_export')
- , anObject = require('./_an-object');
-
-$export($export.S, 'Reflect', {
- getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey){
- return gOPD.f(anObject(target), propertyKey);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.get-prototype-of.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.get-prototype-of.js
deleted file mode 100644
index 4f912d104..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.get-prototype-of.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// 26.1.8 Reflect.getPrototypeOf(target)
-var $export = require('./_export')
- , getProto = require('./_object-gpo')
- , anObject = require('./_an-object');
-
-$export($export.S, 'Reflect', {
- getPrototypeOf: function getPrototypeOf(target){
- return getProto(anObject(target));
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.get.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.get.js
deleted file mode 100644
index f8c39f500..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.get.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// 26.1.6 Reflect.get(target, propertyKey [, receiver])
-var gOPD = require('./_object-gopd')
- , getPrototypeOf = require('./_object-gpo')
- , has = require('./_has')
- , $export = require('./_export')
- , isObject = require('./_is-object')
- , anObject = require('./_an-object');
-
-function get(target, propertyKey/*, receiver*/){
- var receiver = arguments.length < 3 ? target : arguments[2]
- , desc, proto;
- if(anObject(target) === receiver)return target[propertyKey];
- if(desc = gOPD.f(target, propertyKey))return has(desc, 'value')
- ? desc.value
- : desc.get !== undefined
- ? desc.get.call(receiver)
- : undefined;
- if(isObject(proto = getPrototypeOf(target)))return get(proto, propertyKey, receiver);
-}
-
-$export($export.S, 'Reflect', {get: get}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.has.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.has.js
deleted file mode 100644
index bbb6dbcde..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.has.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 26.1.9 Reflect.has(target, propertyKey)
-var $export = require('./_export');
-
-$export($export.S, 'Reflect', {
- has: function has(target, propertyKey){
- return propertyKey in target;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.is-extensible.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.is-extensible.js
deleted file mode 100644
index ffbc2848e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.is-extensible.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// 26.1.10 Reflect.isExtensible(target)
-var $export = require('./_export')
- , anObject = require('./_an-object')
- , $isExtensible = Object.isExtensible;
-
-$export($export.S, 'Reflect', {
- isExtensible: function isExtensible(target){
- anObject(target);
- return $isExtensible ? $isExtensible(target) : true;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.own-keys.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.own-keys.js
deleted file mode 100644
index a1e5330c2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.own-keys.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 26.1.11 Reflect.ownKeys(target)
-var $export = require('./_export');
-
-$export($export.S, 'Reflect', {ownKeys: require('./_own-keys')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.prevent-extensions.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.prevent-extensions.js
deleted file mode 100644
index d3dad8ee4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.prevent-extensions.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// 26.1.12 Reflect.preventExtensions(target)
-var $export = require('./_export')
- , anObject = require('./_an-object')
- , $preventExtensions = Object.preventExtensions;
-
-$export($export.S, 'Reflect', {
- preventExtensions: function preventExtensions(target){
- anObject(target);
- try {
- if($preventExtensions)$preventExtensions(target);
- return true;
- } catch(e){
- return false;
- }
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.set-prototype-of.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.set-prototype-of.js
deleted file mode 100644
index b79d9b613..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.set-prototype-of.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// 26.1.14 Reflect.setPrototypeOf(target, proto)
-var $export = require('./_export')
- , setProto = require('./_set-proto');
-
-if(setProto)$export($export.S, 'Reflect', {
- setPrototypeOf: function setPrototypeOf(target, proto){
- setProto.check(target, proto);
- try {
- setProto.set(target, proto);
- return true;
- } catch(e){
- return false;
- }
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.set.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.set.js
deleted file mode 100644
index c6b916a2e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.reflect.set.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
-var dP = require('./_object-dp')
- , gOPD = require('./_object-gopd')
- , getPrototypeOf = require('./_object-gpo')
- , has = require('./_has')
- , $export = require('./_export')
- , createDesc = require('./_property-desc')
- , anObject = require('./_an-object')
- , isObject = require('./_is-object');
-
-function set(target, propertyKey, V/*, receiver*/){
- var receiver = arguments.length < 4 ? target : arguments[3]
- , ownDesc = gOPD.f(anObject(target), propertyKey)
- , existingDescriptor, proto;
- if(!ownDesc){
- if(isObject(proto = getPrototypeOf(target))){
- return set(proto, propertyKey, V, receiver);
- }
- ownDesc = createDesc(0);
- }
- if(has(ownDesc, 'value')){
- if(ownDesc.writable === false || !isObject(receiver))return false;
- existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);
- existingDescriptor.value = V;
- dP.f(receiver, propertyKey, existingDescriptor);
- return true;
- }
- return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
-}
-
-$export($export.S, 'Reflect', {set: set}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.constructor.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.constructor.js
deleted file mode 100644
index 93961168c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.constructor.js
+++ /dev/null
@@ -1,43 +0,0 @@
-var global = require('./_global')
- , inheritIfRequired = require('./_inherit-if-required')
- , dP = require('./_object-dp').f
- , gOPN = require('./_object-gopn').f
- , isRegExp = require('./_is-regexp')
- , $flags = require('./_flags')
- , $RegExp = global.RegExp
- , Base = $RegExp
- , proto = $RegExp.prototype
- , re1 = /a/g
- , re2 = /a/g
- // "new" creates a new object, old webkit buggy here
- , CORRECT_NEW = new $RegExp(re1) !== re1;
-
-if(require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function(){
- re2[require('./_wks')('match')] = false;
- // RegExp constructor can alter flags and IsRegExp works correct with @@match
- return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
-}))){
- $RegExp = function RegExp(p, f){
- var tiRE = this instanceof $RegExp
- , piRE = isRegExp(p)
- , fiU = f === undefined;
- return !tiRE && piRE && p.constructor === $RegExp && fiU ? p
- : inheritIfRequired(CORRECT_NEW
- ? new Base(piRE && !fiU ? p.source : p, f)
- : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)
- , tiRE ? this : proto, $RegExp);
- };
- var proxy = function(key){
- key in $RegExp || dP($RegExp, key, {
- configurable: true,
- get: function(){ return Base[key]; },
- set: function(it){ Base[key] = it; }
- });
- };
- for(var keys = gOPN(Base), i = 0; keys.length > i; )proxy(keys[i++]);
- proto.constructor = $RegExp;
- $RegExp.prototype = proto;
- require('./_redefine')(global, 'RegExp', $RegExp);
-}
-
-require('./_set-species')('RegExp'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.flags.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.flags.js
deleted file mode 100644
index 33ba86f72..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.flags.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// 21.2.5.3 get RegExp.prototype.flags()
-if(require('./_descriptors') && /./g.flags != 'g')require('./_object-dp').f(RegExp.prototype, 'flags', {
- configurable: true,
- get: require('./_flags')
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.match.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.match.js
deleted file mode 100644
index 814d37191..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.match.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// @@match logic
-require('./_fix-re-wks')('match', 1, function(defined, MATCH, $match){
- // 21.1.3.11 String.prototype.match(regexp)
- return [function match(regexp){
- 'use strict';
- var O = defined(this)
- , fn = regexp == undefined ? undefined : regexp[MATCH];
- return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
- }, $match];
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.replace.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.replace.js
deleted file mode 100644
index 4f651af37..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.replace.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// @@replace logic
-require('./_fix-re-wks')('replace', 2, function(defined, REPLACE, $replace){
- // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)
- return [function replace(searchValue, replaceValue){
- 'use strict';
- var O = defined(this)
- , fn = searchValue == undefined ? undefined : searchValue[REPLACE];
- return fn !== undefined
- ? fn.call(searchValue, O, replaceValue)
- : $replace.call(String(O), searchValue, replaceValue);
- }, $replace];
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.search.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.search.js
deleted file mode 100644
index 7aac5e447..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.search.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// @@search logic
-require('./_fix-re-wks')('search', 1, function(defined, SEARCH, $search){
- // 21.1.3.15 String.prototype.search(regexp)
- return [function search(regexp){
- 'use strict';
- var O = defined(this)
- , fn = regexp == undefined ? undefined : regexp[SEARCH];
- return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
- }, $search];
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.split.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.split.js
deleted file mode 100644
index a991a3fc9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.split.js
+++ /dev/null
@@ -1,70 +0,0 @@
-// @@split logic
-require('./_fix-re-wks')('split', 2, function(defined, SPLIT, $split){
- 'use strict';
- var isRegExp = require('./_is-regexp')
- , _split = $split
- , $push = [].push
- , $SPLIT = 'split'
- , LENGTH = 'length'
- , LAST_INDEX = 'lastIndex';
- if(
- 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
- 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
- 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
- '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
- '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
- ''[$SPLIT](/.?/)[LENGTH]
- ){
- var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group
- // based on es5-shim implementation, need to rework it
- $split = function(separator, limit){
- var string = String(this);
- if(separator === undefined && limit === 0)return [];
- // If `separator` is not a regex, use native split
- if(!isRegExp(separator))return _split.call(string, separator, limit);
- var output = [];
- var flags = (separator.ignoreCase ? 'i' : '') +
- (separator.multiline ? 'm' : '') +
- (separator.unicode ? 'u' : '') +
- (separator.sticky ? 'y' : '');
- var lastLastIndex = 0;
- var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;
- // Make `global` and avoid `lastIndex` issues by working with a copy
- var separatorCopy = new RegExp(separator.source, flags + 'g');
- var separator2, match, lastIndex, lastLength, i;
- // Doesn't need flags gy, but they don't hurt
- if(!NPCG)separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\s)', flags);
- while(match = separatorCopy.exec(string)){
- // `separatorCopy.lastIndex` is not reliable cross-browser
- lastIndex = match.index + match[0][LENGTH];
- if(lastIndex > lastLastIndex){
- output.push(string.slice(lastLastIndex, match.index));
- // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG
- if(!NPCG && match[LENGTH] > 1)match[0].replace(separator2, function(){
- for(i = 1; i < arguments[LENGTH] - 2; i++)if(arguments[i] === undefined)match[i] = undefined;
- });
- if(match[LENGTH] > 1 && match.index < string[LENGTH])$push.apply(output, match.slice(1));
- lastLength = match[0][LENGTH];
- lastLastIndex = lastIndex;
- if(output[LENGTH] >= splitLimit)break;
- }
- if(separatorCopy[LAST_INDEX] === match.index)separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
- }
- if(lastLastIndex === string[LENGTH]){
- if(lastLength || !separatorCopy.test(''))output.push('');
- } else output.push(string.slice(lastLastIndex));
- return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
- };
- // Chakra, V8
- } else if('0'[$SPLIT](undefined, 0)[LENGTH]){
- $split = function(separator, limit){
- return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);
- };
- }
- // 21.1.3.17 String.prototype.split(separator, limit)
- return [function split(separator, limit){
- var O = defined(this)
- , fn = separator == undefined ? undefined : separator[SPLIT];
- return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);
- }, $split];
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.to-string.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.to-string.js
deleted file mode 100644
index 699aeff29..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.regexp.to-string.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-require('./es6.regexp.flags');
-var anObject = require('./_an-object')
- , $flags = require('./_flags')
- , DESCRIPTORS = require('./_descriptors')
- , TO_STRING = 'toString'
- , $toString = /./[TO_STRING];
-
-var define = function(fn){
- require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);
-};
-
-// 21.2.5.14 RegExp.prototype.toString()
-if(require('./_fails')(function(){ return $toString.call({source: 'a', flags: 'b'}) != '/a/b'; })){
- define(function toString(){
- var R = anObject(this);
- return '/'.concat(R.source, '/',
- 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);
- });
-// FF44- RegExp#toString has a wrong name
-} else if($toString.name != TO_STRING){
- define(function toString(){
- return $toString.call(this);
- });
-} \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.set.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.set.js
deleted file mode 100644
index a18808818..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.set.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var strong = require('./_collection-strong');
-
-// 23.2 Set Objects
-module.exports = require('./_collection')('Set', function(get){
- return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
-}, {
- // 23.2.3.1 Set.prototype.add(value)
- add: function add(value){
- return strong.def(this, value = value === 0 ? 0 : value, value);
- }
-}, strong); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.anchor.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.anchor.js
deleted file mode 100644
index 65db25219..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.anchor.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.2 String.prototype.anchor(name)
-require('./_string-html')('anchor', function(createHTML){
- return function anchor(name){
- return createHTML(this, 'a', 'name', name);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.big.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.big.js
deleted file mode 100644
index aeeb1aba9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.big.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.3 String.prototype.big()
-require('./_string-html')('big', function(createHTML){
- return function big(){
- return createHTML(this, 'big', '', '');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.blink.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.blink.js
deleted file mode 100644
index aef8da2e3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.blink.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.4 String.prototype.blink()
-require('./_string-html')('blink', function(createHTML){
- return function blink(){
- return createHTML(this, 'blink', '', '');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.bold.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.bold.js
deleted file mode 100644
index 022cdb075..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.bold.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.5 String.prototype.bold()
-require('./_string-html')('bold', function(createHTML){
- return function bold(){
- return createHTML(this, 'b', '', '');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.code-point-at.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.code-point-at.js
deleted file mode 100644
index cf544652a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.code-point-at.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $at = require('./_string-at')(false);
-$export($export.P, 'String', {
- // 21.1.3.3 String.prototype.codePointAt(pos)
- codePointAt: function codePointAt(pos){
- return $at(this, pos);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.ends-with.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.ends-with.js
deleted file mode 100644
index 80baed9ad..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.ends-with.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
-'use strict';
-var $export = require('./_export')
- , toLength = require('./_to-length')
- , context = require('./_string-context')
- , ENDS_WITH = 'endsWith'
- , $endsWith = ''[ENDS_WITH];
-
-$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {
- endsWith: function endsWith(searchString /*, endPosition = @length */){
- var that = context(this, searchString, ENDS_WITH)
- , endPosition = arguments.length > 1 ? arguments[1] : undefined
- , len = toLength(that.length)
- , end = endPosition === undefined ? len : Math.min(toLength(endPosition), len)
- , search = String(searchString);
- return $endsWith
- ? $endsWith.call(that, search, end)
- : that.slice(end - search.length, end) === search;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.fixed.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.fixed.js
deleted file mode 100644
index d017e202a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.fixed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.6 String.prototype.fixed()
-require('./_string-html')('fixed', function(createHTML){
- return function fixed(){
- return createHTML(this, 'tt', '', '');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.fontcolor.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.fontcolor.js
deleted file mode 100644
index d40711f03..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.fontcolor.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.7 String.prototype.fontcolor(color)
-require('./_string-html')('fontcolor', function(createHTML){
- return function fontcolor(color){
- return createHTML(this, 'font', 'color', color);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.fontsize.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.fontsize.js
deleted file mode 100644
index ba3ff9809..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.fontsize.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.8 String.prototype.fontsize(size)
-require('./_string-html')('fontsize', function(createHTML){
- return function fontsize(size){
- return createHTML(this, 'font', 'size', size);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.from-code-point.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.from-code-point.js
deleted file mode 100644
index c8776d871..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.from-code-point.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var $export = require('./_export')
- , toIndex = require('./_to-index')
- , fromCharCode = String.fromCharCode
- , $fromCodePoint = String.fromCodePoint;
-
-// length should be 1, old FF problem
-$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
- // 21.1.2.2 String.fromCodePoint(...codePoints)
- fromCodePoint: function fromCodePoint(x){ // eslint-disable-line no-unused-vars
- var res = []
- , aLen = arguments.length
- , i = 0
- , code;
- while(aLen > i){
- code = +arguments[i++];
- if(toIndex(code, 0x10ffff) !== code)throw RangeError(code + ' is not a valid code point');
- res.push(code < 0x10000
- ? fromCharCode(code)
- : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
- );
- } return res.join('');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.includes.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.includes.js
deleted file mode 100644
index c6b4ee2fa..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.includes.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// 21.1.3.7 String.prototype.includes(searchString, position = 0)
-'use strict';
-var $export = require('./_export')
- , context = require('./_string-context')
- , INCLUDES = 'includes';
-
-$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {
- includes: function includes(searchString /*, position = 0 */){
- return !!~context(this, searchString, INCLUDES)
- .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.italics.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.italics.js
deleted file mode 100644
index d33efd3c4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.italics.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.9 String.prototype.italics()
-require('./_string-html')('italics', function(createHTML){
- return function italics(){
- return createHTML(this, 'i', '', '');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.iterator.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.iterator.js
deleted file mode 100644
index ac391ee4e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.iterator.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-var $at = require('./_string-at')(true);
-
-// 21.1.3.27 String.prototype[@@iterator]()
-require('./_iter-define')(String, 'String', function(iterated){
- this._t = String(iterated); // target
- this._i = 0; // next index
-// 21.1.5.2.1 %StringIteratorPrototype%.next()
-}, function(){
- var O = this._t
- , index = this._i
- , point;
- if(index >= O.length)return {value: undefined, done: true};
- point = $at(O, index);
- this._i += point.length;
- return {value: point, done: false};
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.link.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.link.js
deleted file mode 100644
index 6a75c18a1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.link.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.10 String.prototype.link(url)
-require('./_string-html')('link', function(createHTML){
- return function link(url){
- return createHTML(this, 'a', 'href', url);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.raw.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.raw.js
deleted file mode 100644
index 1016acfa2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.raw.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var $export = require('./_export')
- , toIObject = require('./_to-iobject')
- , toLength = require('./_to-length');
-
-$export($export.S, 'String', {
- // 21.1.2.4 String.raw(callSite, ...substitutions)
- raw: function raw(callSite){
- var tpl = toIObject(callSite.raw)
- , len = toLength(tpl.length)
- , aLen = arguments.length
- , res = []
- , i = 0;
- while(len > i){
- res.push(String(tpl[i++]));
- if(i < aLen)res.push(String(arguments[i]));
- } return res.join('');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.repeat.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.repeat.js
deleted file mode 100644
index a054222d6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.repeat.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var $export = require('./_export');
-
-$export($export.P, 'String', {
- // 21.1.3.13 String.prototype.repeat(count)
- repeat: require('./_string-repeat')
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.small.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.small.js
deleted file mode 100644
index 51b1b30d8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.small.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.11 String.prototype.small()
-require('./_string-html')('small', function(createHTML){
- return function small(){
- return createHTML(this, 'small', '', '');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.starts-with.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.starts-with.js
deleted file mode 100644
index 017805f01..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.starts-with.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// 21.1.3.18 String.prototype.startsWith(searchString [, position ])
-'use strict';
-var $export = require('./_export')
- , toLength = require('./_to-length')
- , context = require('./_string-context')
- , STARTS_WITH = 'startsWith'
- , $startsWith = ''[STARTS_WITH];
-
-$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {
- startsWith: function startsWith(searchString /*, position = 0 */){
- var that = context(this, searchString, STARTS_WITH)
- , index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length))
- , search = String(searchString);
- return $startsWith
- ? $startsWith.call(that, search, index)
- : that.slice(index, index + search.length) === search;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.strike.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.strike.js
deleted file mode 100644
index c6287d3a5..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.strike.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.12 String.prototype.strike()
-require('./_string-html')('strike', function(createHTML){
- return function strike(){
- return createHTML(this, 'strike', '', '');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.sub.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.sub.js
deleted file mode 100644
index ee18ea7ac..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.sub.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.13 String.prototype.sub()
-require('./_string-html')('sub', function(createHTML){
- return function sub(){
- return createHTML(this, 'sub', '', '');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.sup.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.sup.js
deleted file mode 100644
index a34299881..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.sup.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.14 String.prototype.sup()
-require('./_string-html')('sup', function(createHTML){
- return function sup(){
- return createHTML(this, 'sup', '', '');
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.trim.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.trim.js
deleted file mode 100644
index 35f0fb0b8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.string.trim.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// 21.1.3.25 String.prototype.trim()
-require('./_string-trim')('trim', function($trim){
- return function trim(){
- return $trim(this, 3);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.symbol.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.symbol.js
deleted file mode 100644
index eae491c5a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.symbol.js
+++ /dev/null
@@ -1,235 +0,0 @@
-'use strict';
-// ECMAScript 6 symbols shim
-var global = require('./_global')
- , has = require('./_has')
- , DESCRIPTORS = require('./_descriptors')
- , $export = require('./_export')
- , redefine = require('./_redefine')
- , META = require('./_meta').KEY
- , $fails = require('./_fails')
- , shared = require('./_shared')
- , setToStringTag = require('./_set-to-string-tag')
- , uid = require('./_uid')
- , wks = require('./_wks')
- , wksExt = require('./_wks-ext')
- , wksDefine = require('./_wks-define')
- , keyOf = require('./_keyof')
- , enumKeys = require('./_enum-keys')
- , isArray = require('./_is-array')
- , anObject = require('./_an-object')
- , toIObject = require('./_to-iobject')
- , toPrimitive = require('./_to-primitive')
- , createDesc = require('./_property-desc')
- , _create = require('./_object-create')
- , gOPNExt = require('./_object-gopn-ext')
- , $GOPD = require('./_object-gopd')
- , $DP = require('./_object-dp')
- , $keys = require('./_object-keys')
- , gOPD = $GOPD.f
- , dP = $DP.f
- , gOPN = gOPNExt.f
- , $Symbol = global.Symbol
- , $JSON = global.JSON
- , _stringify = $JSON && $JSON.stringify
- , PROTOTYPE = 'prototype'
- , HIDDEN = wks('_hidden')
- , TO_PRIMITIVE = wks('toPrimitive')
- , isEnum = {}.propertyIsEnumerable
- , SymbolRegistry = shared('symbol-registry')
- , AllSymbols = shared('symbols')
- , OPSymbols = shared('op-symbols')
- , ObjectProto = Object[PROTOTYPE]
- , USE_NATIVE = typeof $Symbol == 'function'
- , QObject = global.QObject;
-// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
-var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
-
-// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
-var setSymbolDesc = DESCRIPTORS && $fails(function(){
- return _create(dP({}, 'a', {
- get: function(){ return dP(this, 'a', {value: 7}).a; }
- })).a != 7;
-}) ? function(it, key, D){
- var protoDesc = gOPD(ObjectProto, key);
- if(protoDesc)delete ObjectProto[key];
- dP(it, key, D);
- if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);
-} : dP;
-
-var wrap = function(tag){
- var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
- sym._k = tag;
- return sym;
-};
-
-var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){
- return typeof it == 'symbol';
-} : function(it){
- return it instanceof $Symbol;
-};
-
-var $defineProperty = function defineProperty(it, key, D){
- if(it === ObjectProto)$defineProperty(OPSymbols, key, D);
- anObject(it);
- key = toPrimitive(key, true);
- anObject(D);
- if(has(AllSymbols, key)){
- if(!D.enumerable){
- if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));
- it[HIDDEN][key] = true;
- } else {
- if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
- D = _create(D, {enumerable: createDesc(0, false)});
- } return setSymbolDesc(it, key, D);
- } return dP(it, key, D);
-};
-var $defineProperties = function defineProperties(it, P){
- anObject(it);
- var keys = enumKeys(P = toIObject(P))
- , i = 0
- , l = keys.length
- , key;
- while(l > i)$defineProperty(it, key = keys[i++], P[key]);
- return it;
-};
-var $create = function create(it, P){
- return P === undefined ? _create(it) : $defineProperties(_create(it), P);
-};
-var $propertyIsEnumerable = function propertyIsEnumerable(key){
- var E = isEnum.call(this, key = toPrimitive(key, true));
- if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;
- return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
-};
-var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
- it = toIObject(it);
- key = toPrimitive(key, true);
- if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;
- var D = gOPD(it, key);
- if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
- return D;
-};
-var $getOwnPropertyNames = function getOwnPropertyNames(it){
- var names = gOPN(toIObject(it))
- , result = []
- , i = 0
- , key;
- while(names.length > i){
- if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);
- } return result;
-};
-var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
- var IS_OP = it === ObjectProto
- , names = gOPN(IS_OP ? OPSymbols : toIObject(it))
- , result = []
- , i = 0
- , key;
- while(names.length > i){
- if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);
- } return result;
-};
-
-// 19.4.1.1 Symbol([description])
-if(!USE_NATIVE){
- $Symbol = function Symbol(){
- if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');
- var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
- var $set = function(value){
- if(this === ObjectProto)$set.call(OPSymbols, value);
- if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
- setSymbolDesc(this, tag, createDesc(1, value));
- };
- if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});
- return wrap(tag);
- };
- redefine($Symbol[PROTOTYPE], 'toString', function toString(){
- return this._k;
- });
-
- $GOPD.f = $getOwnPropertyDescriptor;
- $DP.f = $defineProperty;
- require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;
- require('./_object-pie').f = $propertyIsEnumerable;
- require('./_object-gops').f = $getOwnPropertySymbols;
-
- if(DESCRIPTORS && !require('./_library')){
- redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
- }
-
- wksExt.f = function(name){
- return wrap(wks(name));
- }
-}
-
-$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});
-
-for(var symbols = (
- // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
- 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
-).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);
-
-for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);
-
-$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
- // 19.4.2.1 Symbol.for(key)
- 'for': function(key){
- return has(SymbolRegistry, key += '')
- ? SymbolRegistry[key]
- : SymbolRegistry[key] = $Symbol(key);
- },
- // 19.4.2.5 Symbol.keyFor(sym)
- keyFor: function keyFor(key){
- if(isSymbol(key))return keyOf(SymbolRegistry, key);
- throw TypeError(key + ' is not a symbol!');
- },
- useSetter: function(){ setter = true; },
- useSimple: function(){ setter = false; }
-});
-
-$export($export.S + $export.F * !USE_NATIVE, 'Object', {
- // 19.1.2.2 Object.create(O [, Properties])
- create: $create,
- // 19.1.2.4 Object.defineProperty(O, P, Attributes)
- defineProperty: $defineProperty,
- // 19.1.2.3 Object.defineProperties(O, Properties)
- defineProperties: $defineProperties,
- // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
- getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
- // 19.1.2.7 Object.getOwnPropertyNames(O)
- getOwnPropertyNames: $getOwnPropertyNames,
- // 19.1.2.8 Object.getOwnPropertySymbols(O)
- getOwnPropertySymbols: $getOwnPropertySymbols
-});
-
-// 24.3.2 JSON.stringify(value [, replacer [, space]])
-$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){
- var S = $Symbol();
- // MS Edge converts symbol values to JSON as {}
- // WebKit converts symbol values to JSON as null
- // V8 throws on boxed symbols
- return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
-})), 'JSON', {
- stringify: function stringify(it){
- if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
- var args = [it]
- , i = 1
- , replacer, $replacer;
- while(arguments.length > i)args.push(arguments[i++]);
- replacer = args[1];
- if(typeof replacer == 'function')$replacer = replacer;
- if($replacer || !isArray(replacer))replacer = function(key, value){
- if($replacer)value = $replacer.call(this, key, value);
- if(!isSymbol(value))return value;
- };
- args[1] = replacer;
- return _stringify.apply($JSON, args);
- }
-});
-
-// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
-$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
-// 19.4.3.5 Symbol.prototype[@@toStringTag]
-setToStringTag($Symbol, 'Symbol');
-// 20.2.1.9 Math[@@toStringTag]
-setToStringTag(Math, 'Math', true);
-// 24.3.3 JSON[@@toStringTag]
-setToStringTag(global.JSON, 'JSON', true); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.array-buffer.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.array-buffer.js
deleted file mode 100644
index 9f47082c2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.array-buffer.js
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , $typed = require('./_typed')
- , buffer = require('./_typed-buffer')
- , anObject = require('./_an-object')
- , toIndex = require('./_to-index')
- , toLength = require('./_to-length')
- , isObject = require('./_is-object')
- , ArrayBuffer = require('./_global').ArrayBuffer
- , speciesConstructor = require('./_species-constructor')
- , $ArrayBuffer = buffer.ArrayBuffer
- , $DataView = buffer.DataView
- , $isView = $typed.ABV && ArrayBuffer.isView
- , $slice = $ArrayBuffer.prototype.slice
- , VIEW = $typed.VIEW
- , ARRAY_BUFFER = 'ArrayBuffer';
-
-$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), {ArrayBuffer: $ArrayBuffer});
-
-$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {
- // 24.1.3.1 ArrayBuffer.isView(arg)
- isView: function isView(it){
- return $isView && $isView(it) || isObject(it) && VIEW in it;
- }
-});
-
-$export($export.P + $export.U + $export.F * require('./_fails')(function(){
- return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
-}), ARRAY_BUFFER, {
- // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
- slice: function slice(start, end){
- if($slice !== undefined && end === undefined)return $slice.call(anObject(this), start); // FF fix
- var len = anObject(this).byteLength
- , first = toIndex(start, len)
- , final = toIndex(end === undefined ? len : end, len)
- , result = new (speciesConstructor(this, $ArrayBuffer))(toLength(final - first))
- , viewS = new $DataView(this)
- , viewT = new $DataView(result)
- , index = 0;
- while(first < final){
- viewT.setUint8(index++, viewS.getUint8(first++));
- } return result;
- }
-});
-
-require('./_set-species')(ARRAY_BUFFER); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.data-view.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.data-view.js
deleted file mode 100644
index ee7b88127..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.data-view.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var $export = require('./_export');
-$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {
- DataView: require('./_typed-buffer').DataView
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.float32-array.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.float32-array.js
deleted file mode 100644
index 2c4c9a699..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.float32-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Float32', 4, function(init){
- return function Float32Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.float64-array.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.float64-array.js
deleted file mode 100644
index 4b20257f7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.float64-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Float64', 8, function(init){
- return function Float64Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.int16-array.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.int16-array.js
deleted file mode 100644
index d3f61c564..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.int16-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Int16', 2, function(init){
- return function Int16Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.int32-array.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.int32-array.js
deleted file mode 100644
index df47c1bb0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.int32-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Int32', 4, function(init){
- return function Int32Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.int8-array.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.int8-array.js
deleted file mode 100644
index da4dbf0a2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.int8-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Int8', 1, function(init){
- return function Int8Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.uint16-array.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.uint16-array.js
deleted file mode 100644
index cb335773d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.uint16-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Uint16', 2, function(init){
- return function Uint16Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.uint32-array.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.uint32-array.js
deleted file mode 100644
index 41c9e7b80..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.uint32-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Uint32', 4, function(init){
- return function Uint32Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.uint8-array.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.uint8-array.js
deleted file mode 100644
index f794f86cf..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.uint8-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Uint8', 1, function(init){
- return function Uint8Array(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.uint8-clamped-array.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.uint8-clamped-array.js
deleted file mode 100644
index b12304799..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.typed.uint8-clamped-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Uint8', 1, function(init){
- return function Uint8ClampedArray(data, byteOffset, length){
- return init(this, data, byteOffset, length);
- };
-}, true); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.weak-map.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.weak-map.js
deleted file mode 100644
index 4109db336..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.weak-map.js
+++ /dev/null
@@ -1,56 +0,0 @@
-'use strict';
-var each = require('./_array-methods')(0)
- , redefine = require('./_redefine')
- , meta = require('./_meta')
- , assign = require('./_object-assign')
- , weak = require('./_collection-weak')
- , isObject = require('./_is-object')
- , getWeak = meta.getWeak
- , isExtensible = Object.isExtensible
- , uncaughtFrozenStore = weak.ufstore
- , tmp = {}
- , InternalMap;
-
-var wrapper = function(get){
- return function WeakMap(){
- return get(this, arguments.length > 0 ? arguments[0] : undefined);
- };
-};
-
-var methods = {
- // 23.3.3.3 WeakMap.prototype.get(key)
- get: function get(key){
- if(isObject(key)){
- var data = getWeak(key);
- if(data === true)return uncaughtFrozenStore(this).get(key);
- return data ? data[this._i] : undefined;
- }
- },
- // 23.3.3.5 WeakMap.prototype.set(key, value)
- set: function set(key, value){
- return weak.def(this, key, value);
- }
-};
-
-// 23.3 WeakMap Objects
-var $WeakMap = module.exports = require('./_collection')('WeakMap', wrapper, methods, weak, true, true);
-
-// IE11 WeakMap frozen keys fix
-if(new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){
- InternalMap = weak.getConstructor(wrapper);
- assign(InternalMap.prototype, methods);
- meta.NEED = true;
- each(['delete', 'has', 'get', 'set'], function(key){
- var proto = $WeakMap.prototype
- , method = proto[key];
- redefine(proto, key, function(a, b){
- // store frozen objects on internal weakmap shim
- if(isObject(a) && !isExtensible(a)){
- if(!this._f)this._f = new InternalMap;
- var result = this._f[key](a, b);
- return key == 'set' ? this : result;
- // store all the rest on native weakmap
- } return method.call(this, a, b);
- });
- });
-} \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es6.weak-set.js b/node_modules/babel-runtime/node_modules/core-js/modules/es6.weak-set.js
deleted file mode 100644
index 77d01b6ba..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es6.weak-set.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var weak = require('./_collection-weak');
-
-// 23.4 WeakSet Objects
-require('./_collection')('WeakSet', function(get){
- return function WeakSet(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
-}, {
- // 23.4.3.1 WeakSet.prototype.add(value)
- add: function add(value){
- return weak.def(this, value, true);
- }
-}, weak, false, true); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.array.includes.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.array.includes.js
deleted file mode 100644
index 6d5b00905..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.array.includes.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-// https://github.com/tc39/Array.prototype.includes
-var $export = require('./_export')
- , $includes = require('./_array-includes')(true);
-
-$export($export.P, 'Array', {
- includes: function includes(el /*, fromIndex = 0 */){
- return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
- }
-});
-
-require('./_add-to-unscopables')('includes'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.asap.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.asap.js
deleted file mode 100644
index b762b49ab..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.asap.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask
-var $export = require('./_export')
- , microtask = require('./_microtask')()
- , process = require('./_global').process
- , isNode = require('./_cof')(process) == 'process';
-
-$export($export.G, {
- asap: function asap(fn){
- var domain = isNode && process.domain;
- microtask(domain ? domain.bind(fn) : fn);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.error.is-error.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.error.is-error.js
deleted file mode 100644
index d6fe29dc6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.error.is-error.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// https://github.com/ljharb/proposal-is-error
-var $export = require('./_export')
- , cof = require('./_cof');
-
-$export($export.S, 'Error', {
- isError: function isError(it){
- return cof(it) === 'Error';
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.map.to-json.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.map.to-json.js
deleted file mode 100644
index 19f9b6d38..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.map.to-json.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// https://github.com/DavidBruant/Map-Set.prototype.toJSON
-var $export = require('./_export');
-
-$export($export.P + $export.R, 'Map', {toJSON: require('./_collection-to-json')('Map')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.math.iaddh.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.math.iaddh.js
deleted file mode 100644
index bb3f3d38d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.math.iaddh.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
-var $export = require('./_export');
-
-$export($export.S, 'Math', {
- iaddh: function iaddh(x0, x1, y0, y1){
- var $x0 = x0 >>> 0
- , $x1 = x1 >>> 0
- , $y0 = y0 >>> 0;
- return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.math.imulh.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.math.imulh.js
deleted file mode 100644
index a25da686a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.math.imulh.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
-var $export = require('./_export');
-
-$export($export.S, 'Math', {
- imulh: function imulh(u, v){
- var UINT16 = 0xffff
- , $u = +u
- , $v = +v
- , u0 = $u & UINT16
- , v0 = $v & UINT16
- , u1 = $u >> 16
- , v1 = $v >> 16
- , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
- return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.math.isubh.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.math.isubh.js
deleted file mode 100644
index 3814dc29c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.math.isubh.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
-var $export = require('./_export');
-
-$export($export.S, 'Math', {
- isubh: function isubh(x0, x1, y0, y1){
- var $x0 = x0 >>> 0
- , $x1 = x1 >>> 0
- , $y0 = y0 >>> 0;
- return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.math.umulh.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.math.umulh.js
deleted file mode 100644
index 0d22cf1ba..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.math.umulh.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
-var $export = require('./_export');
-
-$export($export.S, 'Math', {
- umulh: function umulh(u, v){
- var UINT16 = 0xffff
- , $u = +u
- , $v = +v
- , u0 = $u & UINT16
- , v0 = $v & UINT16
- , u1 = $u >>> 16
- , v1 = $v >>> 16
- , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
- return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.define-getter.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.define-getter.js
deleted file mode 100644
index f206e96a2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.define-getter.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , toObject = require('./_to-object')
- , aFunction = require('./_a-function')
- , $defineProperty = require('./_object-dp');
-
-// B.2.2.2 Object.prototype.__defineGetter__(P, getter)
-require('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {
- __defineGetter__: function __defineGetter__(P, getter){
- $defineProperty.f(toObject(this), P, {get: aFunction(getter), enumerable: true, configurable: true});
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.define-setter.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.define-setter.js
deleted file mode 100644
index c0f7b7000..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.define-setter.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , toObject = require('./_to-object')
- , aFunction = require('./_a-function')
- , $defineProperty = require('./_object-dp');
-
-// B.2.2.3 Object.prototype.__defineSetter__(P, setter)
-require('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {
- __defineSetter__: function __defineSetter__(P, setter){
- $defineProperty.f(toObject(this), P, {set: aFunction(setter), enumerable: true, configurable: true});
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.entries.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.entries.js
deleted file mode 100644
index cfc049dfa..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.entries.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// https://github.com/tc39/proposal-object-values-entries
-var $export = require('./_export')
- , $entries = require('./_object-to-array')(true);
-
-$export($export.S, 'Object', {
- entries: function entries(it){
- return $entries(it);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.enumerable-entries.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.enumerable-entries.js
deleted file mode 100644
index 5daa803b1..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.enumerable-entries.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// https://github.com/leobalter/object-enumerables
-var $export = require('./_export')
- , toObject = require('./_to-object');
-
-$export($export.S, 'Object', {
- enumerableEntries: function enumerableEntries(O){
- var T = toObject(O)
- , properties = [];
- for(var key in T)properties.push([key, T[key]]);
- return properties;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.enumerable-keys.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.enumerable-keys.js
deleted file mode 100644
index 791ec1849..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.enumerable-keys.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// https://github.com/leobalter/object-enumerables
-var $export = require('./_export')
- , toObject = require('./_to-object');
-
-$export($export.S, 'Object', {
- enumerableKeys: function enumerableKeys(O){
- var T = toObject(O)
- , properties = [];
- for(var key in T)properties.push(key);
- return properties;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.enumerable-values.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.enumerable-values.js
deleted file mode 100644
index 1d1bfaa72..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.enumerable-values.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// https://github.com/leobalter/object-enumerables
-var $export = require('./_export')
- , toObject = require('./_to-object');
-
-$export($export.S, 'Object', {
- enumerableValues: function enumerableValues(O){
- var T = toObject(O)
- , properties = [];
- for(var key in T)properties.push(T[key]);
- return properties;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.get-own-property-descriptors.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.get-own-property-descriptors.js
deleted file mode 100644
index 0242b7a0c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.get-own-property-descriptors.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// https://github.com/tc39/proposal-object-getownpropertydescriptors
-var $export = require('./_export')
- , ownKeys = require('./_own-keys')
- , toIObject = require('./_to-iobject')
- , gOPD = require('./_object-gopd')
- , createProperty = require('./_create-property');
-
-$export($export.S, 'Object', {
- getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){
- var O = toIObject(object)
- , getDesc = gOPD.f
- , keys = ownKeys(O)
- , result = {}
- , i = 0
- , key;
- while(keys.length > i)createProperty(result, key = keys[i++], getDesc(O, key));
- return result;
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.lookup-getter.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.lookup-getter.js
deleted file mode 100644
index ec140345d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.lookup-getter.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , toObject = require('./_to-object')
- , toPrimitive = require('./_to-primitive')
- , getPrototypeOf = require('./_object-gpo')
- , getOwnPropertyDescriptor = require('./_object-gopd').f;
-
-// B.2.2.4 Object.prototype.__lookupGetter__(P)
-require('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {
- __lookupGetter__: function __lookupGetter__(P){
- var O = toObject(this)
- , K = toPrimitive(P, true)
- , D;
- do {
- if(D = getOwnPropertyDescriptor(O, K))return D.get;
- } while(O = getPrototypeOf(O));
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.lookup-setter.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.lookup-setter.js
deleted file mode 100644
index 539dda824..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.lookup-setter.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-var $export = require('./_export')
- , toObject = require('./_to-object')
- , toPrimitive = require('./_to-primitive')
- , getPrototypeOf = require('./_object-gpo')
- , getOwnPropertyDescriptor = require('./_object-gopd').f;
-
-// B.2.2.5 Object.prototype.__lookupSetter__(P)
-require('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {
- __lookupSetter__: function __lookupSetter__(P){
- var O = toObject(this)
- , K = toPrimitive(P, true)
- , D;
- do {
- if(D = getOwnPropertyDescriptor(O, K))return D.set;
- } while(O = getPrototypeOf(O));
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.values.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.values.js
deleted file mode 100644
index 42abd640b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.object.values.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// https://github.com/tc39/proposal-object-values-entries
-var $export = require('./_export')
- , $values = require('./_object-to-array')(false);
-
-$export($export.S, 'Object', {
- values: function values(it){
- return $values(it);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.observable.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.observable.js
deleted file mode 100644
index e34fa4f28..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.observable.js
+++ /dev/null
@@ -1,199 +0,0 @@
-'use strict';
-// https://github.com/zenparsing/es-observable
-var $export = require('./_export')
- , global = require('./_global')
- , core = require('./_core')
- , microtask = require('./_microtask')()
- , OBSERVABLE = require('./_wks')('observable')
- , aFunction = require('./_a-function')
- , anObject = require('./_an-object')
- , anInstance = require('./_an-instance')
- , redefineAll = require('./_redefine-all')
- , hide = require('./_hide')
- , forOf = require('./_for-of')
- , RETURN = forOf.RETURN;
-
-var getMethod = function(fn){
- return fn == null ? undefined : aFunction(fn);
-};
-
-var cleanupSubscription = function(subscription){
- var cleanup = subscription._c;
- if(cleanup){
- subscription._c = undefined;
- cleanup();
- }
-};
-
-var subscriptionClosed = function(subscription){
- return subscription._o === undefined;
-};
-
-var closeSubscription = function(subscription){
- if(!subscriptionClosed(subscription)){
- subscription._o = undefined;
- cleanupSubscription(subscription);
- }
-};
-
-var Subscription = function(observer, subscriber){
- anObject(observer);
- this._c = undefined;
- this._o = observer;
- observer = new SubscriptionObserver(this);
- try {
- var cleanup = subscriber(observer)
- , subscription = cleanup;
- if(cleanup != null){
- if(typeof cleanup.unsubscribe === 'function')cleanup = function(){ subscription.unsubscribe(); };
- else aFunction(cleanup);
- this._c = cleanup;
- }
- } catch(e){
- observer.error(e);
- return;
- } if(subscriptionClosed(this))cleanupSubscription(this);
-};
-
-Subscription.prototype = redefineAll({}, {
- unsubscribe: function unsubscribe(){ closeSubscription(this); }
-});
-
-var SubscriptionObserver = function(subscription){
- this._s = subscription;
-};
-
-SubscriptionObserver.prototype = redefineAll({}, {
- next: function next(value){
- var subscription = this._s;
- if(!subscriptionClosed(subscription)){
- var observer = subscription._o;
- try {
- var m = getMethod(observer.next);
- if(m)return m.call(observer, value);
- } catch(e){
- try {
- closeSubscription(subscription);
- } finally {
- throw e;
- }
- }
- }
- },
- error: function error(value){
- var subscription = this._s;
- if(subscriptionClosed(subscription))throw value;
- var observer = subscription._o;
- subscription._o = undefined;
- try {
- var m = getMethod(observer.error);
- if(!m)throw value;
- value = m.call(observer, value);
- } catch(e){
- try {
- cleanupSubscription(subscription);
- } finally {
- throw e;
- }
- } cleanupSubscription(subscription);
- return value;
- },
- complete: function complete(value){
- var subscription = this._s;
- if(!subscriptionClosed(subscription)){
- var observer = subscription._o;
- subscription._o = undefined;
- try {
- var m = getMethod(observer.complete);
- value = m ? m.call(observer, value) : undefined;
- } catch(e){
- try {
- cleanupSubscription(subscription);
- } finally {
- throw e;
- }
- } cleanupSubscription(subscription);
- return value;
- }
- }
-});
-
-var $Observable = function Observable(subscriber){
- anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);
-};
-
-redefineAll($Observable.prototype, {
- subscribe: function subscribe(observer){
- return new Subscription(observer, this._f);
- },
- forEach: function forEach(fn){
- var that = this;
- return new (core.Promise || global.Promise)(function(resolve, reject){
- aFunction(fn);
- var subscription = that.subscribe({
- next : function(value){
- try {
- return fn(value);
- } catch(e){
- reject(e);
- subscription.unsubscribe();
- }
- },
- error: reject,
- complete: resolve
- });
- });
- }
-});
-
-redefineAll($Observable, {
- from: function from(x){
- var C = typeof this === 'function' ? this : $Observable;
- var method = getMethod(anObject(x)[OBSERVABLE]);
- if(method){
- var observable = anObject(method.call(x));
- return observable.constructor === C ? observable : new C(function(observer){
- return observable.subscribe(observer);
- });
- }
- return new C(function(observer){
- var done = false;
- microtask(function(){
- if(!done){
- try {
- if(forOf(x, false, function(it){
- observer.next(it);
- if(done)return RETURN;
- }) === RETURN)return;
- } catch(e){
- if(done)throw e;
- observer.error(e);
- return;
- } observer.complete();
- }
- });
- return function(){ done = true; };
- });
- },
- of: function of(){
- for(var i = 0, l = arguments.length, items = Array(l); i < l;)items[i] = arguments[i++];
- return new (typeof this === 'function' ? this : $Observable)(function(observer){
- var done = false;
- microtask(function(){
- if(!done){
- for(var i = 0; i < items.length; ++i){
- observer.next(items[i]);
- if(done)return;
- } observer.complete();
- }
- });
- return function(){ done = true; };
- });
- }
-});
-
-hide($Observable.prototype, OBSERVABLE, function(){ return this; });
-
-$export($export.G, {Observable: $Observable});
-
-require('./_set-species')('Observable'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.define-metadata.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.define-metadata.js
deleted file mode 100644
index c833e4317..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.define-metadata.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var metadata = require('./_metadata')
- , anObject = require('./_an-object')
- , toMetaKey = metadata.key
- , ordinaryDefineOwnMetadata = metadata.set;
-
-metadata.exp({defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey){
- ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.delete-metadata.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.delete-metadata.js
deleted file mode 100644
index 8a8a8253b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.delete-metadata.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var metadata = require('./_metadata')
- , anObject = require('./_an-object')
- , toMetaKey = metadata.key
- , getOrCreateMetadataMap = metadata.map
- , store = metadata.store;
-
-metadata.exp({deleteMetadata: function deleteMetadata(metadataKey, target /*, targetKey */){
- var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2])
- , metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);
- if(metadataMap === undefined || !metadataMap['delete'](metadataKey))return false;
- if(metadataMap.size)return true;
- var targetMetadata = store.get(target);
- targetMetadata['delete'](targetKey);
- return !!targetMetadata.size || store['delete'](target);
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.get-metadata-keys.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.get-metadata-keys.js
deleted file mode 100644
index 58c4dcc23..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.get-metadata-keys.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var Set = require('./es6.set')
- , from = require('./_array-from-iterable')
- , metadata = require('./_metadata')
- , anObject = require('./_an-object')
- , getPrototypeOf = require('./_object-gpo')
- , ordinaryOwnMetadataKeys = metadata.keys
- , toMetaKey = metadata.key;
-
-var ordinaryMetadataKeys = function(O, P){
- var oKeys = ordinaryOwnMetadataKeys(O, P)
- , parent = getPrototypeOf(O);
- if(parent === null)return oKeys;
- var pKeys = ordinaryMetadataKeys(parent, P);
- return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;
-};
-
-metadata.exp({getMetadataKeys: function getMetadataKeys(target /*, targetKey */){
- return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.get-metadata.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.get-metadata.js
deleted file mode 100644
index 48cd9d674..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.get-metadata.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var metadata = require('./_metadata')
- , anObject = require('./_an-object')
- , getPrototypeOf = require('./_object-gpo')
- , ordinaryHasOwnMetadata = metadata.has
- , ordinaryGetOwnMetadata = metadata.get
- , toMetaKey = metadata.key;
-
-var ordinaryGetMetadata = function(MetadataKey, O, P){
- var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
- if(hasOwn)return ordinaryGetOwnMetadata(MetadataKey, O, P);
- var parent = getPrototypeOf(O);
- return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;
-};
-
-metadata.exp({getMetadata: function getMetadata(metadataKey, target /*, targetKey */){
- return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js
deleted file mode 100644
index 93ecfbe5a..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var metadata = require('./_metadata')
- , anObject = require('./_an-object')
- , ordinaryOwnMetadataKeys = metadata.keys
- , toMetaKey = metadata.key;
-
-metadata.exp({getOwnMetadataKeys: function getOwnMetadataKeys(target /*, targetKey */){
- return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.get-own-metadata.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.get-own-metadata.js
deleted file mode 100644
index f1040f919..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.get-own-metadata.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var metadata = require('./_metadata')
- , anObject = require('./_an-object')
- , ordinaryGetOwnMetadata = metadata.get
- , toMetaKey = metadata.key;
-
-metadata.exp({getOwnMetadata: function getOwnMetadata(metadataKey, target /*, targetKey */){
- return ordinaryGetOwnMetadata(metadataKey, anObject(target)
- , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.has-metadata.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.has-metadata.js
deleted file mode 100644
index 0ff637865..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.has-metadata.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var metadata = require('./_metadata')
- , anObject = require('./_an-object')
- , getPrototypeOf = require('./_object-gpo')
- , ordinaryHasOwnMetadata = metadata.has
- , toMetaKey = metadata.key;
-
-var ordinaryHasMetadata = function(MetadataKey, O, P){
- var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
- if(hasOwn)return true;
- var parent = getPrototypeOf(O);
- return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;
-};
-
-metadata.exp({hasMetadata: function hasMetadata(metadataKey, target /*, targetKey */){
- return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.has-own-metadata.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.has-own-metadata.js
deleted file mode 100644
index d645ea3fa..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.has-own-metadata.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var metadata = require('./_metadata')
- , anObject = require('./_an-object')
- , ordinaryHasOwnMetadata = metadata.has
- , toMetaKey = metadata.key;
-
-metadata.exp({hasOwnMetadata: function hasOwnMetadata(metadataKey, target /*, targetKey */){
- return ordinaryHasOwnMetadata(metadataKey, anObject(target)
- , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.metadata.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.metadata.js
deleted file mode 100644
index 3a4e3aee0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.reflect.metadata.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var metadata = require('./_metadata')
- , anObject = require('./_an-object')
- , aFunction = require('./_a-function')
- , toMetaKey = metadata.key
- , ordinaryDefineOwnMetadata = metadata.set;
-
-metadata.exp({metadata: function metadata(metadataKey, metadataValue){
- return function decorator(target, targetKey){
- ordinaryDefineOwnMetadata(
- metadataKey, metadataValue,
- (targetKey !== undefined ? anObject : aFunction)(target),
- toMetaKey(targetKey)
- );
- };
-}}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.set.to-json.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.set.to-json.js
deleted file mode 100644
index fd68cb510..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.set.to-json.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// https://github.com/DavidBruant/Map-Set.prototype.toJSON
-var $export = require('./_export');
-
-$export($export.P + $export.R, 'Set', {toJSON: require('./_collection-to-json')('Set')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.string.at.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.string.at.js
deleted file mode 100644
index 208654e6c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.string.at.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-// https://github.com/mathiasbynens/String.prototype.at
-var $export = require('./_export')
- , $at = require('./_string-at')(true);
-
-$export($export.P, 'String', {
- at: function at(pos){
- return $at(this, pos);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.string.match-all.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.string.match-all.js
deleted file mode 100644
index cb0099b36..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.string.match-all.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-// https://tc39.github.io/String.prototype.matchAll/
-var $export = require('./_export')
- , defined = require('./_defined')
- , toLength = require('./_to-length')
- , isRegExp = require('./_is-regexp')
- , getFlags = require('./_flags')
- , RegExpProto = RegExp.prototype;
-
-var $RegExpStringIterator = function(regexp, string){
- this._r = regexp;
- this._s = string;
-};
-
-require('./_iter-create')($RegExpStringIterator, 'RegExp String', function next(){
- var match = this._r.exec(this._s);
- return {value: match, done: match === null};
-});
-
-$export($export.P, 'String', {
- matchAll: function matchAll(regexp){
- defined(this);
- if(!isRegExp(regexp))throw TypeError(regexp + ' is not a regexp!');
- var S = String(this)
- , flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp)
- , rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);
- rx.lastIndex = toLength(regexp.lastIndex);
- return new $RegExpStringIterator(rx, S);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.string.pad-end.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.string.pad-end.js
deleted file mode 100644
index 8483d82f4..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.string.pad-end.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-string-pad-start-end
-var $export = require('./_export')
- , $pad = require('./_string-pad');
-
-$export($export.P, 'String', {
- padEnd: function padEnd(maxLength /*, fillString = ' ' */){
- return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.string.pad-start.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.string.pad-start.js
deleted file mode 100644
index b79b605d2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.string.pad-start.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-string-pad-start-end
-var $export = require('./_export')
- , $pad = require('./_string-pad');
-
-$export($export.P, 'String', {
- padStart: function padStart(maxLength /*, fillString = ' ' */){
- return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
- }
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.string.trim-left.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.string.trim-left.js
deleted file mode 100644
index e58457714..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.string.trim-left.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
-require('./_string-trim')('trimLeft', function($trim){
- return function trimLeft(){
- return $trim(this, 1);
- };
-}, 'trimStart'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.string.trim-right.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.string.trim-right.js
deleted file mode 100644
index 42a9ed33b..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.string.trim-right.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
-require('./_string-trim')('trimRight', function($trim){
- return function trimRight(){
- return $trim(this, 2);
- };
-}, 'trimEnd'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.symbol.async-iterator.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.symbol.async-iterator.js
deleted file mode 100644
index cf9f74a50..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.symbol.async-iterator.js
+++ /dev/null
@@ -1 +0,0 @@
-require('./_wks-define')('asyncIterator'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.symbol.observable.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.symbol.observable.js
deleted file mode 100644
index 0163bca52..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.symbol.observable.js
+++ /dev/null
@@ -1 +0,0 @@
-require('./_wks-define')('observable'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/es7.system.global.js b/node_modules/babel-runtime/node_modules/core-js/modules/es7.system.global.js
deleted file mode 100644
index 8c2ab82de..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/es7.system.global.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// https://github.com/ljharb/proposal-global
-var $export = require('./_export');
-
-$export($export.S, 'System', {global: require('./_global')}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/_add-to-unscopables.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/_add-to-unscopables.js
deleted file mode 100644
index faf87af36..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/_add-to-unscopables.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = function(){ /* empty */ }; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/_collection.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/_collection.js
deleted file mode 100644
index 0bdd7fcbb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/_collection.js
+++ /dev/null
@@ -1,59 +0,0 @@
-'use strict';
-var global = require('./_global')
- , $export = require('./_export')
- , meta = require('./_meta')
- , fails = require('./_fails')
- , hide = require('./_hide')
- , redefineAll = require('./_redefine-all')
- , forOf = require('./_for-of')
- , anInstance = require('./_an-instance')
- , isObject = require('./_is-object')
- , setToStringTag = require('./_set-to-string-tag')
- , dP = require('./_object-dp').f
- , each = require('./_array-methods')(0)
- , DESCRIPTORS = require('./_descriptors');
-
-module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){
- var Base = global[NAME]
- , C = Base
- , ADDER = IS_MAP ? 'set' : 'add'
- , proto = C && C.prototype
- , O = {};
- if(!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){
- new C().entries().next();
- }))){
- // create collection constructor
- C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
- redefineAll(C.prototype, methods);
- meta.NEED = true;
- } else {
- C = wrapper(function(target, iterable){
- anInstance(target, C, NAME, '_c');
- target._c = new Base;
- if(iterable != undefined)forOf(iterable, IS_MAP, target[ADDER], target);
- });
- each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','),function(KEY){
- var IS_ADDER = KEY == 'add' || KEY == 'set';
- if(KEY in proto && !(IS_WEAK && KEY == 'clear'))hide(C.prototype, KEY, function(a, b){
- anInstance(this, C, KEY);
- if(!IS_ADDER && IS_WEAK && !isObject(a))return KEY == 'get' ? undefined : false;
- var result = this._c[KEY](a === 0 ? 0 : a, b);
- return IS_ADDER ? this : result;
- });
- });
- if('size' in proto)dP(C.prototype, 'size', {
- get: function(){
- return this._c.size;
- }
- });
- }
-
- setToStringTag(C, NAME);
-
- O[NAME] = C;
- $export($export.G + $export.W + $export.F, O);
-
- if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);
-
- return C;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/_export.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/_export.js
deleted file mode 100644
index dc084b4cc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/_export.js
+++ /dev/null
@@ -1,61 +0,0 @@
-var global = require('./_global')
- , core = require('./_core')
- , ctx = require('./_ctx')
- , hide = require('./_hide')
- , PROTOTYPE = 'prototype';
-
-var $export = function(type, name, source){
- var IS_FORCED = type & $export.F
- , IS_GLOBAL = type & $export.G
- , IS_STATIC = type & $export.S
- , IS_PROTO = type & $export.P
- , IS_BIND = type & $export.B
- , IS_WRAP = type & $export.W
- , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
- , expProto = exports[PROTOTYPE]
- , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
- , key, own, out;
- if(IS_GLOBAL)source = name;
- for(key in source){
- // contains in native
- own = !IS_FORCED && target && target[key] !== undefined;
- if(own && key in exports)continue;
- // export native or passed
- out = own ? target[key] : source[key];
- // prevent global pollution for namespaces
- exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
- // bind timers to global for call from export context
- : IS_BIND && own ? ctx(out, global)
- // wrap global constructors for prevent change them in library
- : IS_WRAP && target[key] == out ? (function(C){
- var F = function(a, b, c){
- if(this instanceof C){
- switch(arguments.length){
- case 0: return new C;
- case 1: return new C(a);
- case 2: return new C(a, b);
- } return new C(a, b, c);
- } return C.apply(this, arguments);
- };
- F[PROTOTYPE] = C[PROTOTYPE];
- return F;
- // make static versions for prototype methods
- })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
- // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
- if(IS_PROTO){
- (exports.virtual || (exports.virtual = {}))[key] = out;
- // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
- if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
- }
- }
-};
-// type bitmap
-$export.F = 1; // forced
-$export.G = 2; // global
-$export.S = 4; // static
-$export.P = 8; // proto
-$export.B = 16; // bind
-$export.W = 32; // wrap
-$export.U = 64; // safe
-$export.R = 128; // real proto method for `library`
-module.exports = $export; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/_library.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/_library.js
deleted file mode 100644
index 73f737c59..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/_library.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = true; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/_path.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/_path.js
deleted file mode 100644
index e2b878dc6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/_path.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/_redefine-all.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/_redefine-all.js
deleted file mode 100644
index beeb2eafc..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/_redefine-all.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var hide = require('./_hide');
-module.exports = function(target, src, safe){
- for(var key in src){
- if(safe && target[key])target[key] = src[key];
- else hide(target, key, src[key]);
- } return target;
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/_redefine.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/_redefine.js
deleted file mode 100644
index 6bd64530c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/_redefine.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./_hide'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/_set-species.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/_set-species.js
deleted file mode 100644
index 4320fa510..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/_set-species.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-var global = require('./_global')
- , core = require('./_core')
- , dP = require('./_object-dp')
- , DESCRIPTORS = require('./_descriptors')
- , SPECIES = require('./_wks')('species');
-
-module.exports = function(KEY){
- var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];
- if(DESCRIPTORS && C && !C[SPECIES])dP.f(C, SPECIES, {
- configurable: true,
- get: function(){ return this; }
- });
-}; \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.date.to-primitive.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.date.to-primitive.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.date.to-primitive.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.date.to-string.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.date.to-string.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.date.to-string.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.function.name.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.function.name.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.function.name.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.number.constructor.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.number.constructor.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.number.constructor.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.object.to-string.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.object.to-string.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.object.to-string.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.constructor.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.constructor.js
deleted file mode 100644
index 7313c52b3..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.constructor.js
+++ /dev/null
@@ -1 +0,0 @@
-require('./_set-species')('RegExp'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.flags.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.flags.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.flags.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.match.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.match.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.match.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.replace.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.replace.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.replace.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.search.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.search.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.search.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.split.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.split.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.split.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.to-string.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.to-string.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/es6.regexp.to-string.js
+++ /dev/null
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/library/web.dom.iterable.js b/node_modules/babel-runtime/node_modules/core-js/modules/library/web.dom.iterable.js
deleted file mode 100644
index e56371a9d..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/library/web.dom.iterable.js
+++ /dev/null
@@ -1,13 +0,0 @@
-require('./es6.array.iterator');
-var global = require('./_global')
- , hide = require('./_hide')
- , Iterators = require('./_iterators')
- , TO_STRING_TAG = require('./_wks')('toStringTag');
-
-for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
- var NAME = collections[i]
- , Collection = global[NAME]
- , proto = Collection && Collection.prototype;
- if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);
- Iterators[NAME] = Iterators.Array;
-} \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/web.dom.iterable.js b/node_modules/babel-runtime/node_modules/core-js/modules/web.dom.iterable.js
deleted file mode 100644
index a5a4c08eb..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/web.dom.iterable.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var $iterators = require('./es6.array.iterator')
- , redefine = require('./_redefine')
- , global = require('./_global')
- , hide = require('./_hide')
- , Iterators = require('./_iterators')
- , wks = require('./_wks')
- , ITERATOR = wks('iterator')
- , TO_STRING_TAG = wks('toStringTag')
- , ArrayValues = Iterators.Array;
-
-for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
- var NAME = collections[i]
- , Collection = global[NAME]
- , proto = Collection && Collection.prototype
- , key;
- if(proto){
- if(!proto[ITERATOR])hide(proto, ITERATOR, ArrayValues);
- if(!proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);
- Iterators[NAME] = ArrayValues;
- for(key in $iterators)if(!proto[key])redefine(proto, key, $iterators[key], true);
- }
-} \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/web.immediate.js b/node_modules/babel-runtime/node_modules/core-js/modules/web.immediate.js
deleted file mode 100644
index 5b9463775..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/web.immediate.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var $export = require('./_export')
- , $task = require('./_task');
-$export($export.G + $export.B, {
- setImmediate: $task.set,
- clearImmediate: $task.clear
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/modules/web.timers.js b/node_modules/babel-runtime/node_modules/core-js/modules/web.timers.js
deleted file mode 100644
index 1a1da57f2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/modules/web.timers.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// ie9- setTimeout & setInterval additional parameters fix
-var global = require('./_global')
- , $export = require('./_export')
- , invoke = require('./_invoke')
- , partial = require('./_partial')
- , navigator = global.navigator
- , MSIE = !!navigator && /MSIE .\./.test(navigator.userAgent); // <- dirty ie9- check
-var wrap = function(set){
- return MSIE ? function(fn, time /*, ...args */){
- return set(invoke(
- partial,
- [].slice.call(arguments, 2),
- typeof fn == 'function' ? fn : Function(fn)
- ), time);
- } : set;
-};
-$export($export.G + $export.B + $export.F * MSIE, {
- setTimeout: wrap(global.setTimeout),
- setInterval: wrap(global.setInterval)
-}); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/package.json b/node_modules/babel-runtime/node_modules/core-js/package.json
deleted file mode 100644
index ed659f8d2..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "name": "core-js",
- "description": "Standard library",
- "version": "2.4.1",
- "repository": {
- "type": "git",
- "url": "https://github.com/zloirock/core-js.git"
- },
- "main": "index.js",
- "devDependencies": {
- "webpack": "1.13.x",
- "LiveScript": "1.3.x",
- "grunt": "1.0.x",
- "grunt-cli": "1.2.x",
- "grunt-livescript": "0.6.x",
- "grunt-contrib-uglify": "1.0.x",
- "grunt-contrib-watch": "1.0.x",
- "grunt-contrib-clean": "1.0.x",
- "grunt-contrib-copy": "1.0.x",
- "grunt-karma": "2.0.x",
- "karma": "1.1.x",
- "karma-qunit": "1.1.x",
- "karma-chrome-launcher": "1.0.x",
- "karma-ie-launcher": "1.0.x",
- "karma-firefox-launcher": "1.0.x",
- "karma-phantomjs-launcher": "1.0.x",
- "qunitjs": "2.0.x",
- "phantomjs-prebuilt": "2.1.x",
- "promises-aplus-tests": "2.1.x",
- "es-observable-tests": "0.2.x",
- "eslint": "3.1.x",
- "temp": "0.8.x"
- },
- "scripts": {
- "grunt": "grunt",
- "lint": "eslint es5 es6 es7 stage web core fn modules",
- "promises-tests": "promises-aplus-tests tests/promises-aplus/adapter",
- "observables-tests": "node tests/observables/adapter && node tests/observables/adapter-library",
- "test": "npm run lint && npm run grunt livescript client karma:default && npm run grunt library karma:library && npm run promises-tests && npm run observables-tests && lsc tests/commonjs"
- },
- "license": "MIT",
- "keywords": [
- "ES3",
- "ECMAScript 3",
- "ES5",
- "ECMAScript 5",
- "ES6",
- "ES2015",
- "ECMAScript 6",
- "ECMAScript 2015",
- "ES7",
- "ES2016",
- "ECMAScript 7",
- "ECMAScript 2016",
- "Harmony",
- "Strawman",
- "Map",
- "Set",
- "WeakMap",
- "WeakSet",
- "Promise",
- "Symbol",
- "TypedArray",
- "setImmediate",
- "Dict",
- "polyfill",
- "shim"
- ]
-} \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/shim.js b/node_modules/babel-runtime/node_modules/core-js/shim.js
deleted file mode 100644
index 6db125683..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/shim.js
+++ /dev/null
@@ -1,176 +0,0 @@
-require('./modules/es6.symbol');
-require('./modules/es6.object.create');
-require('./modules/es6.object.define-property');
-require('./modules/es6.object.define-properties');
-require('./modules/es6.object.get-own-property-descriptor');
-require('./modules/es6.object.get-prototype-of');
-require('./modules/es6.object.keys');
-require('./modules/es6.object.get-own-property-names');
-require('./modules/es6.object.freeze');
-require('./modules/es6.object.seal');
-require('./modules/es6.object.prevent-extensions');
-require('./modules/es6.object.is-frozen');
-require('./modules/es6.object.is-sealed');
-require('./modules/es6.object.is-extensible');
-require('./modules/es6.object.assign');
-require('./modules/es6.object.is');
-require('./modules/es6.object.set-prototype-of');
-require('./modules/es6.object.to-string');
-require('./modules/es6.function.bind');
-require('./modules/es6.function.name');
-require('./modules/es6.function.has-instance');
-require('./modules/es6.parse-int');
-require('./modules/es6.parse-float');
-require('./modules/es6.number.constructor');
-require('./modules/es6.number.to-fixed');
-require('./modules/es6.number.to-precision');
-require('./modules/es6.number.epsilon');
-require('./modules/es6.number.is-finite');
-require('./modules/es6.number.is-integer');
-require('./modules/es6.number.is-nan');
-require('./modules/es6.number.is-safe-integer');
-require('./modules/es6.number.max-safe-integer');
-require('./modules/es6.number.min-safe-integer');
-require('./modules/es6.number.parse-float');
-require('./modules/es6.number.parse-int');
-require('./modules/es6.math.acosh');
-require('./modules/es6.math.asinh');
-require('./modules/es6.math.atanh');
-require('./modules/es6.math.cbrt');
-require('./modules/es6.math.clz32');
-require('./modules/es6.math.cosh');
-require('./modules/es6.math.expm1');
-require('./modules/es6.math.fround');
-require('./modules/es6.math.hypot');
-require('./modules/es6.math.imul');
-require('./modules/es6.math.log10');
-require('./modules/es6.math.log1p');
-require('./modules/es6.math.log2');
-require('./modules/es6.math.sign');
-require('./modules/es6.math.sinh');
-require('./modules/es6.math.tanh');
-require('./modules/es6.math.trunc');
-require('./modules/es6.string.from-code-point');
-require('./modules/es6.string.raw');
-require('./modules/es6.string.trim');
-require('./modules/es6.string.iterator');
-require('./modules/es6.string.code-point-at');
-require('./modules/es6.string.ends-with');
-require('./modules/es6.string.includes');
-require('./modules/es6.string.repeat');
-require('./modules/es6.string.starts-with');
-require('./modules/es6.string.anchor');
-require('./modules/es6.string.big');
-require('./modules/es6.string.blink');
-require('./modules/es6.string.bold');
-require('./modules/es6.string.fixed');
-require('./modules/es6.string.fontcolor');
-require('./modules/es6.string.fontsize');
-require('./modules/es6.string.italics');
-require('./modules/es6.string.link');
-require('./modules/es6.string.small');
-require('./modules/es6.string.strike');
-require('./modules/es6.string.sub');
-require('./modules/es6.string.sup');
-require('./modules/es6.date.now');
-require('./modules/es6.date.to-json');
-require('./modules/es6.date.to-iso-string');
-require('./modules/es6.date.to-string');
-require('./modules/es6.date.to-primitive');
-require('./modules/es6.array.is-array');
-require('./modules/es6.array.from');
-require('./modules/es6.array.of');
-require('./modules/es6.array.join');
-require('./modules/es6.array.slice');
-require('./modules/es6.array.sort');
-require('./modules/es6.array.for-each');
-require('./modules/es6.array.map');
-require('./modules/es6.array.filter');
-require('./modules/es6.array.some');
-require('./modules/es6.array.every');
-require('./modules/es6.array.reduce');
-require('./modules/es6.array.reduce-right');
-require('./modules/es6.array.index-of');
-require('./modules/es6.array.last-index-of');
-require('./modules/es6.array.copy-within');
-require('./modules/es6.array.fill');
-require('./modules/es6.array.find');
-require('./modules/es6.array.find-index');
-require('./modules/es6.array.species');
-require('./modules/es6.array.iterator');
-require('./modules/es6.regexp.constructor');
-require('./modules/es6.regexp.to-string');
-require('./modules/es6.regexp.flags');
-require('./modules/es6.regexp.match');
-require('./modules/es6.regexp.replace');
-require('./modules/es6.regexp.search');
-require('./modules/es6.regexp.split');
-require('./modules/es6.promise');
-require('./modules/es6.map');
-require('./modules/es6.set');
-require('./modules/es6.weak-map');
-require('./modules/es6.weak-set');
-require('./modules/es6.typed.array-buffer');
-require('./modules/es6.typed.data-view');
-require('./modules/es6.typed.int8-array');
-require('./modules/es6.typed.uint8-array');
-require('./modules/es6.typed.uint8-clamped-array');
-require('./modules/es6.typed.int16-array');
-require('./modules/es6.typed.uint16-array');
-require('./modules/es6.typed.int32-array');
-require('./modules/es6.typed.uint32-array');
-require('./modules/es6.typed.float32-array');
-require('./modules/es6.typed.float64-array');
-require('./modules/es6.reflect.apply');
-require('./modules/es6.reflect.construct');
-require('./modules/es6.reflect.define-property');
-require('./modules/es6.reflect.delete-property');
-require('./modules/es6.reflect.enumerate');
-require('./modules/es6.reflect.get');
-require('./modules/es6.reflect.get-own-property-descriptor');
-require('./modules/es6.reflect.get-prototype-of');
-require('./modules/es6.reflect.has');
-require('./modules/es6.reflect.is-extensible');
-require('./modules/es6.reflect.own-keys');
-require('./modules/es6.reflect.prevent-extensions');
-require('./modules/es6.reflect.set');
-require('./modules/es6.reflect.set-prototype-of');
-require('./modules/es7.array.includes');
-require('./modules/es7.string.at');
-require('./modules/es7.string.pad-start');
-require('./modules/es7.string.pad-end');
-require('./modules/es7.string.trim-left');
-require('./modules/es7.string.trim-right');
-require('./modules/es7.string.match-all');
-require('./modules/es7.symbol.async-iterator');
-require('./modules/es7.symbol.observable');
-require('./modules/es7.object.get-own-property-descriptors');
-require('./modules/es7.object.values');
-require('./modules/es7.object.entries');
-require('./modules/es7.object.define-getter');
-require('./modules/es7.object.define-setter');
-require('./modules/es7.object.lookup-getter');
-require('./modules/es7.object.lookup-setter');
-require('./modules/es7.map.to-json');
-require('./modules/es7.set.to-json');
-require('./modules/es7.system.global');
-require('./modules/es7.error.is-error');
-require('./modules/es7.math.iaddh');
-require('./modules/es7.math.isubh');
-require('./modules/es7.math.imulh');
-require('./modules/es7.math.umulh');
-require('./modules/es7.reflect.define-metadata');
-require('./modules/es7.reflect.delete-metadata');
-require('./modules/es7.reflect.get-metadata');
-require('./modules/es7.reflect.get-metadata-keys');
-require('./modules/es7.reflect.get-own-metadata');
-require('./modules/es7.reflect.get-own-metadata-keys');
-require('./modules/es7.reflect.has-metadata');
-require('./modules/es7.reflect.has-own-metadata');
-require('./modules/es7.reflect.metadata');
-require('./modules/es7.asap');
-require('./modules/es7.observable');
-require('./modules/web.timers');
-require('./modules/web.immediate');
-require('./modules/web.dom.iterable');
-module.exports = require('./modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/stage/0.js b/node_modules/babel-runtime/node_modules/core-js/stage/0.js
deleted file mode 100644
index e89a005f0..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/stage/0.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../modules/es7.string.at');
-require('../modules/es7.map.to-json');
-require('../modules/es7.set.to-json');
-require('../modules/es7.error.is-error');
-require('../modules/es7.math.iaddh');
-require('../modules/es7.math.isubh');
-require('../modules/es7.math.imulh');
-require('../modules/es7.math.umulh');
-require('../modules/es7.asap');
-module.exports = require('./1'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/stage/1.js b/node_modules/babel-runtime/node_modules/core-js/stage/1.js
deleted file mode 100644
index 230fe13ad..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/stage/1.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../modules/es7.string.trim-left');
-require('../modules/es7.string.trim-right');
-require('../modules/es7.string.match-all');
-require('../modules/es7.symbol.observable');
-require('../modules/es7.observable');
-module.exports = require('./2');
diff --git a/node_modules/babel-runtime/node_modules/core-js/stage/2.js b/node_modules/babel-runtime/node_modules/core-js/stage/2.js
deleted file mode 100644
index ba444e1a7..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/stage/2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../modules/es7.system.global');
-require('../modules/es7.symbol.async-iterator');
-module.exports = require('./3');
diff --git a/node_modules/babel-runtime/node_modules/core-js/stage/3.js b/node_modules/babel-runtime/node_modules/core-js/stage/3.js
deleted file mode 100644
index c1ea400a9..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/stage/3.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/es7.object.get-own-property-descriptors');
-require('../modules/es7.string.pad-start');
-require('../modules/es7.string.pad-end');
-module.exports = require('./4');
diff --git a/node_modules/babel-runtime/node_modules/core-js/stage/4.js b/node_modules/babel-runtime/node_modules/core-js/stage/4.js
deleted file mode 100644
index 0fb53ddd8..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/stage/4.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../modules/es7.object.define-getter');
-require('../modules/es7.object.define-setter');
-require('../modules/es7.object.lookup-getter');
-require('../modules/es7.object.lookup-setter');
-require('../modules/es7.object.values');
-require('../modules/es7.object.entries');
-require('../modules/es7.array.includes');
-module.exports = require('../modules/_core');
diff --git a/node_modules/babel-runtime/node_modules/core-js/stage/index.js b/node_modules/babel-runtime/node_modules/core-js/stage/index.js
deleted file mode 100644
index eb959140c..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/stage/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./pre'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/stage/pre.js b/node_modules/babel-runtime/node_modules/core-js/stage/pre.js
deleted file mode 100644
index f3bc54d95..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/stage/pre.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../modules/es7.reflect.define-metadata');
-require('../modules/es7.reflect.delete-metadata');
-require('../modules/es7.reflect.get-metadata');
-require('../modules/es7.reflect.get-metadata-keys');
-require('../modules/es7.reflect.get-own-metadata');
-require('../modules/es7.reflect.get-own-metadata-keys');
-require('../modules/es7.reflect.has-metadata');
-require('../modules/es7.reflect.has-own-metadata');
-require('../modules/es7.reflect.metadata');
-module.exports = require('./0'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/web/dom-collections.js b/node_modules/babel-runtime/node_modules/core-js/web/dom-collections.js
deleted file mode 100644
index 2118e3fe6..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/web/dom-collections.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/web.dom.iterable');
-module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/web/immediate.js b/node_modules/babel-runtime/node_modules/core-js/web/immediate.js
deleted file mode 100644
index 244ebb16f..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/web/immediate.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/web.immediate');
-module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/web/index.js b/node_modules/babel-runtime/node_modules/core-js/web/index.js
deleted file mode 100644
index 6687d571e..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/web/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/web.timers');
-require('../modules/web.immediate');
-require('../modules/web.dom.iterable');
-module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/babel-runtime/node_modules/core-js/web/timers.js b/node_modules/babel-runtime/node_modules/core-js/web/timers.js
deleted file mode 100644
index 2c66f4387..000000000
--- a/node_modules/babel-runtime/node_modules/core-js/web/timers.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/web.timers');
-module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/better-assert/.npmignore b/node_modules/better-assert/.npmignore
deleted file mode 100644
index f1250e584..000000000
--- a/node_modules/better-assert/.npmignore
+++ /dev/null
@@ -1,4 +0,0 @@
-support
-test
-examples
-*.sock
diff --git a/node_modules/better-assert/History.md b/node_modules/better-assert/History.md
deleted file mode 100644
index cbb579bea..000000000
--- a/node_modules/better-assert/History.md
+++ /dev/null
@@ -1,15 +0,0 @@
-
-1.0.0 / 2013-02-03
-==================
-
- * Stop using the removed magic __stack global getter
-
-0.1.0 / 2012-10-04
-==================
-
- * add throwing of AssertionError for test frameworks etc
-
-0.0.1 / 2010-01-03
-==================
-
- * Initial release
diff --git a/node_modules/better-assert/Makefile b/node_modules/better-assert/Makefile
deleted file mode 100644
index 36a3ed7d0..000000000
--- a/node_modules/better-assert/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-
-test:
- @echo "populate me"
-
-.PHONY: test \ No newline at end of file
diff --git a/node_modules/better-assert/Readme.md b/node_modules/better-assert/Readme.md
deleted file mode 100644
index d8d3a63b6..000000000
--- a/node_modules/better-assert/Readme.md
+++ /dev/null
@@ -1,61 +0,0 @@
-
-# better-assert
-
- Better c-style assertions using [callsite](https://github.com/visionmedia/callsite) for
- self-documenting failure messages.
-
-## Installation
-
- $ npm install better-assert
-
-## Example
-
- By default assertions are enabled, however the __NO_ASSERT__ environment variable
- will deactivate them when truthy.
-
-```js
-var assert = require('better-assert');
-
-test();
-
-function test() {
- var user = { name: 'tobi' };
- assert('tobi' == user.name);
- assert('number' == typeof user.age);
-}
-
-AssertionError: 'number' == typeof user.age
- at test (/Users/tj/projects/better-assert/example.js:9:3)
- at Object.<anonymous> (/Users/tj/projects/better-assert/example.js:4:1)
- at Module._compile (module.js:449:26)
- at Object.Module._extensions..js (module.js:467:10)
- at Module.load (module.js:356:32)
- at Function.Module._load (module.js:312:12)
- at Module.runMain (module.js:492:10)
- at process.startup.processNextTick.process._tickCallback (node.js:244:9)
-```
-
-## License
-
-(The MIT License)
-
-Copyright (c) 2012 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
-
-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. \ No newline at end of file
diff --git a/node_modules/better-assert/example.js b/node_modules/better-assert/example.js
deleted file mode 100644
index 688c29e8a..000000000
--- a/node_modules/better-assert/example.js
+++ /dev/null
@@ -1,10 +0,0 @@
-
-var assert = require('./');
-
-test();
-
-function test() {
- var user = { name: 'tobi' };
- assert('tobi' == user.name);
- assert('number' == typeof user.age);
-} \ No newline at end of file
diff --git a/node_modules/better-assert/index.js b/node_modules/better-assert/index.js
deleted file mode 100644
index fd1c9b7d1..000000000
--- a/node_modules/better-assert/index.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var AssertionError = require('assert').AssertionError
- , callsite = require('callsite')
- , fs = require('fs')
-
-/**
- * Expose `assert`.
- */
-
-module.exports = process.env.NO_ASSERT
- ? function(){}
- : assert;
-
-/**
- * Assert the given `expr`.
- */
-
-function assert(expr) {
- if (expr) return;
-
- var stack = callsite();
- var call = stack[1];
- var file = call.getFileName();
- var lineno = call.getLineNumber();
- var src = fs.readFileSync(file, 'utf8');
- var line = src.split('\n')[lineno-1];
- var src = line.match(/assert\((.*)\)/)[1];
-
- var err = new AssertionError({
- message: src,
- stackStartFunction: stack[0].getFunction()
- });
-
- throw err;
-}
diff --git a/node_modules/better-assert/package.json b/node_modules/better-assert/package.json
deleted file mode 100644
index ae0463507..000000000
--- a/node_modules/better-assert/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "better-assert",
- "version": "1.0.2",
- "description": "Better assertions for node, reporting the expr, filename, lineno etc",
- "keywords": [
- "assert",
- "stack",
- "trace",
- "debug"
- ],
- "author": "TJ Holowaychuk <tj@vision-media.ca>",
- "contributors": [
- "TonyHe <coolhzb@163.com>",
- "ForbesLindesay"
- ],
- "dependencies": {
- "callsite": "1.0.0"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/visionmedia/better-assert.git"
- },
- "main": "index",
- "engines": {
- "node": "*"
- }
-}
diff --git a/node_modules/callsite/.npmignore b/node_modules/callsite/.npmignore
deleted file mode 100644
index f1250e584..000000000
--- a/node_modules/callsite/.npmignore
+++ /dev/null
@@ -1,4 +0,0 @@
-support
-test
-examples
-*.sock
diff --git a/node_modules/callsite/History.md b/node_modules/callsite/History.md
deleted file mode 100644
index 499419840..000000000
--- a/node_modules/callsite/History.md
+++ /dev/null
@@ -1,10 +0,0 @@
-
-1.0.0 / 2013-01-24
-==================
-
- * remove lame magical getters
-
-0.0.1 / 2010-01-03
-==================
-
- * Initial release
diff --git a/node_modules/callsite/Makefile b/node_modules/callsite/Makefile
deleted file mode 100644
index 634e37219..000000000
--- a/node_modules/callsite/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-
-test:
- @./node_modules/.bin/mocha \
- --require should
-
-.PHONY: test \ No newline at end of file
diff --git a/node_modules/callsite/Readme.md b/node_modules/callsite/Readme.md
deleted file mode 100644
index 0dbd16ade..000000000
--- a/node_modules/callsite/Readme.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# callstack
-
- Access to v8's "raw" `CallSite`s.
-
-## Installation
-
- $ npm install callsite
-
-## Example
-
-```js
-var stack = require('callsite');
-
-foo();
-
-function foo() {
- bar();
-}
-
-function bar() {
- baz();
-}
-
-function baz() {
- console.log();
- stack().forEach(function(site){
- console.log(' \033[36m%s\033[90m in %s:%d\033[0m'
- , site.getFunctionName() || 'anonymous'
- , site.getFileName()
- , site.getLineNumber());
- });
- console.log();
-}
-```
-
-## Why?
-
- Because you can do weird, stupid, clever, wacky things such as:
-
- - [better-assert](https://github.com/visionmedia/better-assert)
-
-## License
-
- MIT
diff --git a/node_modules/callsite/index.js b/node_modules/callsite/index.js
deleted file mode 100644
index d3ee6f8cf..000000000
--- a/node_modules/callsite/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-
-module.exports = function(){
- var orig = Error.prepareStackTrace;
- Error.prepareStackTrace = function(_, stack){ return stack; };
- var err = new Error;
- Error.captureStackTrace(err, arguments.callee);
- var stack = err.stack;
- Error.prepareStackTrace = orig;
- return stack;
-};
diff --git a/node_modules/callsite/package.json b/node_modules/callsite/package.json
deleted file mode 100644
index 348434e51..000000000
--- a/node_modules/callsite/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "callsite"
- , "version": "1.0.0"
- , "description": "access to v8's CallSites"
- , "keywords": ["stack", "trace", "line"]
- , "author": "TJ Holowaychuk <tj@vision-media.ca>"
- , "dependencies": {}
- , "devDependencies": { "mocha": "*", "should": "*" }
- , "main": "index"
- , "engines": { "node": "*" }
-}
diff --git a/node_modules/cliui/.coveralls.yml b/node_modules/cliui/.coveralls.yml
deleted file mode 100644
index 73367dbd7..000000000
--- a/node_modules/cliui/.coveralls.yml
+++ /dev/null
@@ -1 +0,0 @@
-repo_token: NiRhyj91Z2vtgob6XdEAqs83rzNnbMZUu
diff --git a/node_modules/cliui/.npmignore b/node_modules/cliui/.npmignore
deleted file mode 100644
index 9daa8247d..000000000
--- a/node_modules/cliui/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-node_modules
diff --git a/node_modules/cliui/.travis.yml b/node_modules/cliui/.travis.yml
deleted file mode 100644
index d96edf8ec..000000000
--- a/node_modules/cliui/.travis.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-language: node_js
-node_js:
- - "0.10"
- - "0.11"
- - "0.12"
- - "iojs"
-after_script: "NODE_ENV=test YOURPACKAGE_COVERAGE=1 ./node_modules/.bin/mocha --require patched-blanket --reporter mocha-lcov-reporter | ./node_modules/coveralls/bin/coveralls.js"
diff --git a/node_modules/cliui/README.md b/node_modules/cliui/README.md
index edcafa8ed..028392c26 100644
--- a/node_modules/cliui/README.md
+++ b/node_modules/cliui/README.md
@@ -1,8 +1,9 @@
# cliui
-[![Build Status](https://travis-ci.org/bcoe/cliui.png)](https://travis-ci.org/bcoe/cliui)
-[![Coverage Status](https://coveralls.io/repos/bcoe/cliui/badge.svg?branch=)](https://coveralls.io/r/bcoe/cliui?branch=)
+[![Build Status](https://travis-ci.org/yargs/cliui.svg)](https://travis-ci.org/yargs/cliui)
+[![Coverage Status](https://coveralls.io/repos/yargs/cliui/badge.svg?branch=)](https://coveralls.io/r/yargs/cliui?branch=)
[![NPM version](https://img.shields.io/npm/v/cliui.svg)](https://www.npmjs.com/package/cliui)
+[![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)
easily create complex multi-column command-line-interfaces.
@@ -23,15 +24,17 @@ ui.div({
ui.div(
{
text: "-f, --file",
- width: 40,
+ width: 20,
padding: [0, 4, 0, 4]
},
{
- text: "the file to load",
- width: 25
+ text: "the file to load." +
+ chalk.green("(if this description is long it wraps).")
+ ,
+ width: 20
},
{
- text: "[required]",
+ text: chalk.red("[required]"),
align: 'right'
}
)
@@ -39,6 +42,8 @@ ui.div(
console.log(ui.toString())
```
+<img width="500" src="screenshot.png">
+
## Layout DSL
cliui exposes a simple layout DSL:
@@ -48,7 +53,7 @@ object:
* `\n`: characters will be interpreted as new rows.
* `\t`: characters will be interpreted as new columns.
-* ` `: characters will be interpreted as padding.
+* `\s`: characters will be interpreted as padding.
**as an example...**
@@ -97,6 +102,7 @@ options:
* **width:** the width of a column.
* **align:** alignment, `right` or `center`.
* **padding:** `[top, right, bottom, left]`.
+* **border:** should a border be placed around the div?
### cliui.span(column, column, column)
diff --git a/node_modules/cliui/index.js b/node_modules/cliui/index.js
index 31b4aa7b7..e501e78fd 100644
--- a/node_modules/cliui/index.js
+++ b/node_modules/cliui/index.js
@@ -1,12 +1,14 @@
-var wrap = require('wordwrap'),
- align = {
- right: require('right-align'),
- center: require('center-align')
- },
- top = 0,
- right = 1,
- bottom = 2,
- left = 3
+var stringWidth = require('string-width')
+var stripAnsi = require('strip-ansi')
+var wrap = require('wrap-ansi')
+var align = {
+ right: alignRight,
+ center: alignCenter
+}
+var top = 0
+var right = 1
+var bottom = 2
+var left = 3
function UI (opts) {
this.width = opts.width
@@ -42,9 +44,9 @@ UI.prototype._shouldApplyLayoutDSL = function () {
}
UI.prototype._applyLayoutDSL = function (str) {
- var _this = this,
- rows = str.split('\n'),
- leftColumnWidth = 0
+ var _this = this
+ var rows = str.split('\n')
+ var leftColumnWidth = 0
// simple heuristic for layout, make sure the
// second column lines up along the left-hand.
@@ -52,10 +54,10 @@ UI.prototype._applyLayoutDSL = function (str) {
// than 50% of the screen.
rows.forEach(function (row) {
var columns = row.split('\t')
- if (columns.length > 1 && columns[0].length > leftColumnWidth) {
+ if (columns.length > 1 && stringWidth(columns[0]) > leftColumnWidth) {
leftColumnWidth = Math.min(
Math.floor(_this.width * 0.5),
- columns[0].length
+ stringWidth(columns[0])
)
}
})
@@ -68,7 +70,7 @@ UI.prototype._applyLayoutDSL = function (str) {
_this.div.apply(_this, columns.map(function (r, i) {
return {
text: r.trim(),
- padding: [0, r.match(/\s*$/)[0].length, 0, r.match(/^\s*/)[0].length],
+ padding: _this._measurePadding(r),
width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined
}
}))
@@ -79,13 +81,20 @@ UI.prototype._applyLayoutDSL = function (str) {
UI.prototype._colFromString = function (str) {
return {
- text: str
+ text: str,
+ padding: this._measurePadding(str)
}
}
+UI.prototype._measurePadding = function (str) {
+ // measure padding without ansi escape codes
+ var noAnsi = stripAnsi(str)
+ return [0, noAnsi.match(/\s*$/)[0].length, 0, noAnsi.match(/^\s*/)[0].length]
+}
+
UI.prototype.toString = function () {
- var _this = this,
- lines = []
+ var _this = this
+ var lines = []
_this.rows.forEach(function (row, i) {
_this.rowToString(row, lines)
@@ -103,13 +112,13 @@ UI.prototype.toString = function () {
}
UI.prototype.rowToString = function (row, lines) {
- var _this = this,
- paddingLeft,
- rrows = this._rasterize(row),
- str = '',
- ts,
- width,
- wrapWidth
+ var _this = this
+ var padding
+ var rrows = this._rasterize(row)
+ var str = ''
+ var ts
+ var width
+ var wrapWidth
rrows.forEach(function (rrow, r) {
str = ''
@@ -118,27 +127,30 @@ UI.prototype.rowToString = function (row, lines) {
width = row[c].width // the width with padding.
wrapWidth = _this._negatePadding(row[c]) // the width without padding.
- for (var i = 0; i < Math.max(wrapWidth, col.length); i++) {
- ts += col.charAt(i) || ' '
+ ts += col
+
+ for (var i = 0; i < wrapWidth - stringWidth(col); i++) {
+ ts += ' '
}
// align the string within its column.
if (row[c].align && row[c].align !== 'left' && _this.wrap) {
- ts = align[row[c].align](ts.trim() + '\n' + new Array(wrapWidth + 1).join(' '))
- .split('\n')[0]
- if (ts.length < wrapWidth) ts += new Array(width - ts.length).join(' ')
+ ts = align[row[c].align](ts, wrapWidth)
+ if (stringWidth(ts) < wrapWidth) ts += new Array(width - stringWidth(ts)).join(' ')
}
- // add left/right padding and print string.
- paddingLeft = (row[c].padding || [0, 0, 0, 0])[left]
- if (paddingLeft) str += new Array(row[c].padding[left] + 1).join(' ')
+ // apply border and padding to string.
+ padding = row[c].padding || [0, 0, 0, 0]
+ if (padding[left]) str += new Array(padding[left] + 1).join(' ')
+ str += addBorder(row[c], ts, '| ')
str += ts
- if (row[c].padding && row[c].padding[right]) str += new Array(row[c].padding[right] + 1).join(' ')
+ str += addBorder(row[c], ts, ' |')
+ if (padding[right]) str += new Array(padding[right] + 1).join(' ')
// if prior row is span, try to render the
// current row on the prior line.
if (r === 0 && lines.length > 0) {
- str = _this._renderInline(str, lines[lines.length - 1], paddingLeft)
+ str = _this._renderInline(str, lines[lines.length - 1])
}
})
@@ -152,11 +164,21 @@ UI.prototype.rowToString = function (row, lines) {
return lines
}
+function addBorder (col, ts, style) {
+ if (col.border) {
+ if (/[.']-+[.']/.test(ts)) return ''
+ else if (ts.trim().length) return style
+ else return ' '
+ }
+ return ''
+}
+
// if the full 'source' can render in
// the target line, do so.
-UI.prototype._renderInline = function (source, previousLine, paddingLeft) {
- var target = previousLine.text,
- str = ''
+UI.prototype._renderInline = function (source, previousLine) {
+ var leadingWhitespace = source.match(/^ */)[0].length
+ var target = previousLine.text
+ var targetTextWidth = stringWidth(target.trimRight())
if (!previousLine.span) return source
@@ -167,39 +189,34 @@ UI.prototype._renderInline = function (source, previousLine, paddingLeft) {
return target + source
}
- for (var i = 0, tc, sc; i < Math.max(source.length, target.length); i++) {
- tc = target.charAt(i) || ' '
- sc = source.charAt(i) || ' '
- // we tried to overwrite a character in the other string.
- if (tc !== ' ' && sc !== ' ') return source
- // there is not enough whitespace to maintain padding.
- if (sc !== ' ' && i < paddingLeft + target.length) return source
- // :thumbsup:
- if (tc === ' ') str += sc
- else str += tc
- }
+ if (leadingWhitespace < targetTextWidth) return source
previousLine.hidden = true
- return str
+ return target.trimRight() + new Array(leadingWhitespace - targetTextWidth + 1).join(' ') + source.trimLeft()
}
UI.prototype._rasterize = function (row) {
- var _this = this,
- i,
- rrow,
- rrows = [],
- widths = this._columnWidths(row),
- wrapped
+ var _this = this
+ var i
+ var rrow
+ var rrows = []
+ var widths = this._columnWidths(row)
+ var wrapped
// word wrap all columns, and create
// a data-structure that is easy to rasterize.
row.forEach(function (col, c) {
// leave room for left and right padding.
col.width = widths[c]
- if (_this.wrap) wrapped = wrap.hard(_this._negatePadding(col))(col.text).split('\n')
+ if (_this.wrap) wrapped = wrap(col.text, _this._negatePadding(col), {hard: true}).split('\n')
else wrapped = col.text.split('\n')
+ if (col.border) {
+ wrapped.unshift('.' + new Array(_this._negatePadding(col) + 3).join('-') + '.')
+ wrapped.push("'" + new Array(_this._negatePadding(col) + 3).join('-') + "'")
+ }
+
// add top and bottom padding.
if (col.padding) {
for (i = 0; i < (col.padding[top] || 0); i++) wrapped.unshift('')
@@ -224,15 +241,16 @@ UI.prototype._rasterize = function (row) {
UI.prototype._negatePadding = function (col) {
var wrapWidth = col.width
if (col.padding) wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0)
+ if (col.border) wrapWidth -= 4
return wrapWidth
}
UI.prototype._columnWidths = function (row) {
- var _this = this,
- widths = [],
- unset = row.length,
- unsetWidth,
- remainingWidth = this.width
+ var _this = this
+ var widths = []
+ var unset = row.length
+ var unsetWidth
+ var remainingWidth = this.width
// column widths can be set in config.
row.forEach(function (col, i) {
@@ -248,7 +266,7 @@ UI.prototype._columnWidths = function (row) {
// any unset widths should be calculated.
if (unset) unsetWidth = Math.floor(remainingWidth / unset)
widths.forEach(function (w, i) {
- if (!_this.wrap) widths[i] = row[i].width || row[i].text.length
+ if (!_this.wrap) widths[i] = row[i].width || stringWidth(row[i].text)
else if (w === undefined) widths[i] = Math.max(unsetWidth, _minWidth(row[i]))
})
@@ -259,8 +277,33 @@ UI.prototype._columnWidths = function (row) {
// a column, based on padding preferences.
function _minWidth (col) {
var padding = col.padding || []
+ var minWidth = 1 + (padding[left] || 0) + (padding[right] || 0)
+ if (col.border) minWidth += 4
+ return minWidth
+}
+
+function alignRight (str, width) {
+ str = str.trim()
+ var padding = ''
+ var strWidth = stringWidth(str)
+
+ if (strWidth < width) {
+ padding = new Array(width - strWidth + 1).join(' ')
+ }
+
+ return padding + str
+}
+
+function alignCenter (str, width) {
+ str = str.trim()
+ var padding = ''
+ var strWidth = stringWidth(str.trim())
+
+ if (strWidth < width) {
+ padding = new Array(parseInt((width - strWidth) / 2, 10) + 1).join(' ')
+ }
- return 1 + (padding[left] || 0) + (padding[right] || 0)
+ return padding + str
}
module.exports = function (opts) {
diff --git a/node_modules/cliui/node_modules/wordwrap/.npmignore b/node_modules/cliui/node_modules/wordwrap/.npmignore
deleted file mode 100644
index 3c3629e64..000000000
--- a/node_modules/cliui/node_modules/wordwrap/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/node_modules/cliui/node_modules/wordwrap/README.markdown b/node_modules/cliui/node_modules/wordwrap/README.markdown
deleted file mode 100644
index 346374e0d..000000000
--- a/node_modules/cliui/node_modules/wordwrap/README.markdown
+++ /dev/null
@@ -1,70 +0,0 @@
-wordwrap
-========
-
-Wrap your words.
-
-example
-=======
-
-made out of meat
-----------------
-
-meat.js
-
- var wrap = require('wordwrap')(15);
- console.log(wrap('You and your whole family are made out of meat.'));
-
-output:
-
- You and your
- whole family
- are made out
- of meat.
-
-centered
---------
-
-center.js
-
- var wrap = require('wordwrap')(20, 60);
- console.log(wrap(
- 'At long last the struggle and tumult was over.'
- + ' The machines had finally cast off their oppressors'
- + ' and were finally free to roam the cosmos.'
- + '\n'
- + 'Free of purpose, free of obligation.'
- + ' Just drifting through emptiness.'
- + ' The sun was just another point of light.'
- ));
-
-output:
-
- At long last the struggle and tumult
- was over. The machines had finally cast
- off their oppressors and were finally
- free to roam the cosmos.
- Free of purpose, free of obligation.
- Just drifting through emptiness. The
- sun was just another point of light.
-
-methods
-=======
-
-var wrap = require('wordwrap');
-
-wrap(stop), wrap(start, stop, params={mode:"soft"})
----------------------------------------------------
-
-Returns a function that takes a string and returns a new string.
-
-Pad out lines with spaces out to column `start` and then wrap until column
-`stop`. If a word is longer than `stop - start` characters it will overflow.
-
-In "soft" mode, split chunks by `/(\S+\s+/` and don't break up chunks which are
-longer than `stop - start`, in "hard" mode, split chunks with `/\b/` and break
-up chunks longer than `stop - start`.
-
-wrap.hard(start, stop)
-----------------------
-
-Like `wrap()` but with `params.mode = "hard"`.
diff --git a/node_modules/cliui/node_modules/wordwrap/example/center.js b/node_modules/cliui/node_modules/wordwrap/example/center.js
deleted file mode 100644
index a3fbaae98..000000000
--- a/node_modules/cliui/node_modules/wordwrap/example/center.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var wrap = require('wordwrap')(20, 60);
-console.log(wrap(
- 'At long last the struggle and tumult was over.'
- + ' The machines had finally cast off their oppressors'
- + ' and were finally free to roam the cosmos.'
- + '\n'
- + 'Free of purpose, free of obligation.'
- + ' Just drifting through emptiness.'
- + ' The sun was just another point of light.'
-));
diff --git a/node_modules/cliui/node_modules/wordwrap/example/meat.js b/node_modules/cliui/node_modules/wordwrap/example/meat.js
deleted file mode 100644
index a4665e105..000000000
--- a/node_modules/cliui/node_modules/wordwrap/example/meat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var wrap = require('wordwrap')(15);
-
-console.log(wrap('You and your whole family are made out of meat.'));
diff --git a/node_modules/cliui/node_modules/wordwrap/index.js b/node_modules/cliui/node_modules/wordwrap/index.js
deleted file mode 100644
index c9bc94521..000000000
--- a/node_modules/cliui/node_modules/wordwrap/index.js
+++ /dev/null
@@ -1,76 +0,0 @@
-var wordwrap = module.exports = function (start, stop, params) {
- if (typeof start === 'object') {
- params = start;
- start = params.start;
- stop = params.stop;
- }
-
- if (typeof stop === 'object') {
- params = stop;
- start = start || params.start;
- stop = undefined;
- }
-
- if (!stop) {
- stop = start;
- start = 0;
- }
-
- if (!params) params = {};
- var mode = params.mode || 'soft';
- var re = mode === 'hard' ? /\b/ : /(\S+\s+)/;
-
- return function (text) {
- var chunks = text.toString()
- .split(re)
- .reduce(function (acc, x) {
- if (mode === 'hard') {
- for (var i = 0; i < x.length; i += stop - start) {
- acc.push(x.slice(i, i + stop - start));
- }
- }
- else acc.push(x)
- return acc;
- }, [])
- ;
-
- return chunks.reduce(function (lines, rawChunk) {
- if (rawChunk === '') return lines;
-
- var chunk = rawChunk.replace(/\t/g, ' ');
-
- var i = lines.length - 1;
- if (lines[i].length + chunk.length > stop) {
- lines[i] = lines[i].replace(/\s+$/, '');
-
- chunk.split(/\n/).forEach(function (c) {
- lines.push(
- new Array(start + 1).join(' ')
- + c.replace(/^\s+/, '')
- );
- });
- }
- else if (chunk.match(/\n/)) {
- var xs = chunk.split(/\n/);
- lines[i] += xs.shift();
- xs.forEach(function (c) {
- lines.push(
- new Array(start + 1).join(' ')
- + c.replace(/^\s+/, '')
- );
- });
- }
- else {
- lines[i] += chunk;
- }
-
- return lines;
- }, [ new Array(start + 1).join(' ') ]).join('\n');
- };
-};
-
-wordwrap.soft = wordwrap;
-
-wordwrap.hard = function (start, stop) {
- return wordwrap(start, stop, { mode : 'hard' });
-};
diff --git a/node_modules/cliui/node_modules/wordwrap/package.json b/node_modules/cliui/node_modules/wordwrap/package.json
deleted file mode 100644
index fdff683e1..000000000
--- a/node_modules/cliui/node_modules/wordwrap/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name" : "wordwrap",
- "description" : "Wrap those words. Show them at what columns to start and stop.",
- "version" : "0.0.2",
- "repository" : {
- "type" : "git",
- "url" : "git://github.com/substack/node-wordwrap.git"
- },
- "main" : "./index.js",
- "keywords" : [
- "word",
- "wrap",
- "rule",
- "format",
- "column"
- ],
- "directories" : {
- "lib" : ".",
- "example" : "example",
- "test" : "test"
- },
- "scripts" : {
- "test" : "expresso"
- },
- "devDependencies" : {
- "expresso" : "=0.7.x"
- },
- "engines" : {
- "node" : ">=0.4.0"
- },
- "license" : "MIT/X11",
- "author" : {
- "name" : "James Halliday",
- "email" : "mail@substack.net",
- "url" : "http://substack.net"
- }
-}
diff --git a/node_modules/cliui/node_modules/wordwrap/test/break.js b/node_modules/cliui/node_modules/wordwrap/test/break.js
deleted file mode 100644
index 749292ecc..000000000
--- a/node_modules/cliui/node_modules/wordwrap/test/break.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var assert = require('assert');
-var wordwrap = require('../');
-
-exports.hard = function () {
- var s = 'Assert from {"type":"equal","ok":false,"found":1,"wanted":2,'
- + '"stack":[],"id":"b7ddcd4c409de8799542a74d1a04689b",'
- + '"browser":"chrome/6.0"}'
- ;
- var s_ = wordwrap.hard(80)(s);
-
- var lines = s_.split('\n');
- assert.equal(lines.length, 2);
- assert.ok(lines[0].length < 80);
- assert.ok(lines[1].length < 80);
-
- assert.equal(s, s_.replace(/\n/g, ''));
-};
-
-exports.break = function () {
- var s = new Array(55+1).join('a');
- var s_ = wordwrap.hard(20)(s);
-
- var lines = s_.split('\n');
- assert.equal(lines.length, 3);
- assert.ok(lines[0].length === 20);
- assert.ok(lines[1].length === 20);
- assert.ok(lines[2].length === 15);
-
- assert.equal(s, s_.replace(/\n/g, ''));
-};
diff --git a/node_modules/cliui/node_modules/wordwrap/test/idleness.txt b/node_modules/cliui/node_modules/wordwrap/test/idleness.txt
deleted file mode 100644
index aa3f4907f..000000000
--- a/node_modules/cliui/node_modules/wordwrap/test/idleness.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-In Praise of Idleness
-
-By Bertrand Russell
-
-[1932]
-
-Like most of my generation, I was brought up on the saying: 'Satan finds some mischief for idle hands to do.' Being a highly virtuous child, I believed all that I was told, and acquired a conscience which has kept me working hard down to the present moment. But although my conscience has controlled my actions, my opinions have undergone a revolution. I think that there is far too much work done in the world, that immense harm is caused by the belief that work is virtuous, and that what needs to be preached in modern industrial countries is quite different from what always has been preached. Everyone knows the story of the traveler in Naples who saw twelve beggars lying in the sun (it was before the days of Mussolini), and offered a lira to the laziest of them. Eleven of them jumped up to claim it, so he gave it to the twelfth. this traveler was on the right lines. But in countries which do not enjoy Mediterranean sunshine idleness is more difficult, and a great public propaganda will be required to inaugurate it. I hope that, after reading the following pages, the leaders of the YMCA will start a campaign to induce good young men to do nothing. If so, I shall not have lived in vain.
-
-Before advancing my own arguments for laziness, I must dispose of one which I cannot accept. Whenever a person who already has enough to live on proposes to engage in some everyday kind of job, such as school-teaching or typing, he or she is told that such conduct takes the bread out of other people's mouths, and is therefore wicked. If this argument were valid, it would only be necessary for us all to be idle in order that we should all have our mouths full of bread. What people who say such things forget is that what a man earns he usually spends, and in spending he gives employment. As long as a man spends his income, he puts just as much bread into people's mouths in spending as he takes out of other people's mouths in earning. The real villain, from this point of view, is the man who saves. If he merely puts his savings in a stocking, like the proverbial French peasant, it is obvious that they do not give employment. If he invests his savings, the matter is less obvious, and different cases arise.
-
-One of the commonest things to do with savings is to lend them to some Government. In view of the fact that the bulk of the public expenditure of most civilized Governments consists in payment for past wars or preparation for future wars, the man who lends his money to a Government is in the same position as the bad men in Shakespeare who hire murderers. The net result of the man's economical habits is to increase the armed forces of the State to which he lends his savings. Obviously it would be better if he spent the money, even if he spent it in drink or gambling.
-
-But, I shall be told, the case is quite different when savings are invested in industrial enterprises. When such enterprises succeed, and produce something useful, this may be conceded. In these days, however, no one will deny that most enterprises fail. That means that a large amount of human labor, which might have been devoted to producing something that could be enjoyed, was expended on producing machines which, when produced, lay idle and did no good to anyone. The man who invests his savings in a concern that goes bankrupt is therefore injuring others as well as himself. If he spent his money, say, in giving parties for his friends, they (we may hope) would get pleasure, and so would all those upon whom he spent money, such as the butcher, the baker, and the bootlegger. But if he spends it (let us say) upon laying down rails for surface card in some place where surface cars turn out not to be wanted, he has diverted a mass of labor into channels where it gives pleasure to no one. Nevertheless, when he becomes poor through failure of his investment he will be regarded as a victim of undeserved misfortune, whereas the gay spendthrift, who has spent his money philanthropically, will be despised as a fool and a frivolous person.
-
-All this is only preliminary. I want to say, in all seriousness, that a great deal of harm is being done in the modern world by belief in the virtuousness of work, and that the road to happiness and prosperity lies in an organized diminution of work.
-
-First of all: what is work? Work is of two kinds: first, altering the position of matter at or near the earth's surface relatively to other such matter; second, telling other people to do so. The first kind is unpleasant and ill paid; the second is pleasant and highly paid. The second kind is capable of indefinite extension: there are not only those who give orders, but those who give advice as to what orders should be given. Usually two opposite kinds of advice are given simultaneously by two organized bodies of men; this is called politics. The skill required for this kind of work is not knowledge of the subjects as to which advice is given, but knowledge of the art of persuasive speaking and writing, i.e. of advertising.
-
-Throughout Europe, though not in America, there is a third class of men, more respected than either of the classes of workers. There are men who, through ownership of land, are able to make others pay for the privilege of being allowed to exist and to work. These landowners are idle, and I might therefore be expected to praise them. Unfortunately, their idleness is only rendered possible by the industry of others; indeed their desire for comfortable idleness is historically the source of the whole gospel of work. The last thing they have ever wished is that others should follow their example.
-
-From the beginning of civilization until the Industrial Revolution, a man could, as a rule, produce by hard work little more than was required for the subsistence of himself and his family, although his wife worked at least as hard as he did, and his children added their labor as soon as they were old enough to do so. The small surplus above bare necessaries was not left to those who produced it, but was appropriated by warriors and priests. In times of famine there was no surplus; the warriors and priests, however, still secured as much as at other times, with the result that many of the workers died of hunger. This system persisted in Russia until 1917 [1], and still persists in the East; in England, in spite of the Industrial Revolution, it remained in full force throughout the Napoleonic wars, and until a hundred years ago, when the new class of manufacturers acquired power. In America, the system came to an end with the Revolution, except in the South, where it persisted until the Civil War. A system which lasted so long and ended so recently has naturally left a profound impress upon men's thoughts and opinions. Much that we take for granted about the desirability of work is derived from this system, and, being pre-industrial, is not adapted to the modern world. Modern technique has made it possible for leisure, within limits, to be not the prerogative of small privileged classes, but a right evenly distributed throughout the community. The morality of work is the morality of slaves, and the modern world has no need of slavery.
-
-It is obvious that, in primitive communities, peasants, left to themselves, would not have parted with the slender surplus upon which the warriors and priests subsisted, but would have either produced less or consumed more. At first, sheer force compelled them to produce and part with the surplus. Gradually, however, it was found possible to induce many of them to accept an ethic according to which it was their duty to work hard, although part of their work went to support others in idleness. By this means the amount of compulsion required was lessened, and the expenses of government were diminished. To this day, 99 per cent of British wage-earners would be genuinely shocked if it were proposed that the King should not have a larger income than a working man. The conception of duty, speaking historically, has been a means used by the holders of power to induce others to live for the interests of their masters rather than for their own. Of course the holders of power conceal this fact from themselves by managing to believe that their interests are identical with the larger interests of humanity. Sometimes this is true; Athenian slave-owners, for instance, employed part of their leisure in making a permanent contribution to civilization which would have been impossible under a just economic system. Leisure is essential to civilization, and in former times leisure for the few was only rendered possible by the labors of the many. But their labors were valuable, not because work is good, but because leisure is good. And with modern technique it would be possible to distribute leisure justly without injury to civilization.
-
-Modern technique has made it possible to diminish enormously the amount of labor required to secure the necessaries of life for everyone. This was made obvious during the war. At that time all the men in the armed forces, and all the men and women engaged in the production of munitions, all the men and women engaged in spying, war propaganda, or Government offices connected with the war, were withdrawn from productive occupations. In spite of this, the general level of well-being among unskilled wage-earners on the side of the Allies was higher than before or since. The significance of this fact was concealed by finance: borrowing made it appear as if the future was nourishing the present. But that, of course, would have been impossible; a man cannot eat a loaf of bread that does not yet exist. The war showed conclusively that, by the scientific organization of production, it is possible to keep modern populations in fair comfort on a small part of the working capacity of the modern world. If, at the end of the war, the scientific organization, which had been created in order to liberate men for fighting and munition work, had been preserved, and the hours of the week had been cut down to four, all would have been well. Instead of that the old chaos was restored, those whose work was demanded were made to work long hours, and the rest were left to starve as unemployed. Why? Because work is a duty, and a man should not receive wages in proportion to what he has produced, but in proportion to his virtue as exemplified by his industry.
-
-This is the morality of the Slave State, applied in circumstances totally unlike those in which it arose. No wonder the result has been disastrous. Let us take an illustration. Suppose that, at a given moment, a certain number of people are engaged in the manufacture of pins. They make as many pins as the world needs, working (say) eight hours a day. Someone makes an invention by which the same number of men can make twice as many pins: pins are already so cheap that hardly any more will be bought at a lower price. In a sensible world, everybody concerned in the manufacturing of pins would take to working four hours instead of eight, and everything else would go on as before. But in the actual world this would be thought demoralizing. The men still work eight hours, there are too many pins, some employers go bankrupt, and half the men previously concerned in making pins are thrown out of work. There is, in the end, just as much leisure as on the other plan, but half the men are totally idle while half are still overworked. In this way, it is insured that the unavoidable leisure shall cause misery all round instead of being a universal source of happiness. Can anything more insane be imagined?
-
-The idea that the poor should have leisure has always been shocking to the rich. In England, in the early nineteenth century, fifteen hours was the ordinary day's work for a man; children sometimes did as much, and very commonly did twelve hours a day. When meddlesome busybodies suggested that perhaps these hours were rather long, they were told that work kept adults from drink and children from mischief. When I was a child, shortly after urban working men had acquired the vote, certain public holidays were established by law, to the great indignation of the upper classes. I remember hearing an old Duchess say: 'What do the poor want with holidays? They ought to work.' People nowadays are less frank, but the sentiment persists, and is the source of much of our economic confusion.
-
-Let us, for a moment, consider the ethics of work frankly, without superstition. Every human being, of necessity, consumes, in the course of his life, a certain amount of the produce of human labor. Assuming, as we may, that labor is on the whole disagreeable, it is unjust that a man should consume more than he produces. Of course he may provide services rather than commodities, like a medical man, for example; but he should provide something in return for his board and lodging. to this extent, the duty of work must be admitted, but to this extent only.
-
-I shall not dwell upon the fact that, in all modern societies outside the USSR, many people escape even this minimum amount of work, namely all those who inherit money and all those who marry money. I do not think the fact that these people are allowed to be idle is nearly so harmful as the fact that wage-earners are expected to overwork or starve.
-
-If the ordinary wage-earner worked four hours a day, there would be enough for everybody and no unemployment -- assuming a certain very moderate amount of sensible organization. This idea shocks the well-to-do, because they are convinced that the poor would not know how to use so much leisure. In America men often work long hours even when they are well off; such men, naturally, are indignant at the idea of leisure for wage-earners, except as the grim punishment of unemployment; in fact, they dislike leisure even for their sons. Oddly enough, while they wish their sons to work so hard as to have no time to be civilized, they do not mind their wives and daughters having no work at all. the snobbish admiration of uselessness, which, in an aristocratic society, extends to both sexes, is, under a plutocracy, confined to women; this, however, does not make it any more in agreement with common sense.
-
-The wise use of leisure, it must be conceded, is a product of civilization and education. A man who has worked long hours all his life will become bored if he becomes suddenly idle. But without a considerable amount of leisure a man is cut off from many of the best things. There is no longer any reason why the bulk of the population should suffer this deprivation; only a foolish asceticism, usually vicarious, makes us continue to insist on work in excessive quantities now that the need no longer exists.
-
-In the new creed which controls the government of Russia, while there is much that is very different from the traditional teaching of the West, there are some things that are quite unchanged. The attitude of the governing classes, and especially of those who conduct educational propaganda, on the subject of the dignity of labor, is almost exactly that which the governing classes of the world have always preached to what were called the 'honest poor'. Industry, sobriety, willingness to work long hours for distant advantages, even submissiveness to authority, all these reappear; moreover authority still represents the will of the Ruler of the Universe, Who, however, is now called by a new name, Dialectical Materialism.
-
-The victory of the proletariat in Russia has some points in common with the victory of the feminists in some other countries. For ages, men had conceded the superior saintliness of women, and had consoled women for their inferiority by maintaining that saintliness is more desirable than power. At last the feminists decided that they would have both, since the pioneers among them believed all that the men had told them about the desirability of virtue, but not what they had told them about the worthlessness of political power. A similar thing has happened in Russia as regards manual work. For ages, the rich and their sycophants have written in praise of 'honest toil', have praised the simple life, have professed a religion which teaches that the poor are much more likely to go to heaven than the rich, and in general have tried to make manual workers believe that there is some special nobility about altering the position of matter in space, just as men tried to make women believe that they derived some special nobility from their sexual enslavement. In Russia, all this teaching about the excellence of manual work has been taken seriously, with the result that the manual worker is more honored than anyone else. What are, in essence, revivalist appeals are made, but not for the old purposes: they are made to secure shock workers for special tasks. Manual work is the ideal which is held before the young, and is the basis of all ethical teaching.
-
-For the present, possibly, this is all to the good. A large country, full of natural resources, awaits development, and has has to be developed with very little use of credit. In these circumstances, hard work is necessary, and is likely to bring a great reward. But what will happen when the point has been reached where everybody could be comfortable without working long hours?
-
-In the West, we have various ways of dealing with this problem. We have no attempt at economic justice, so that a large proportion of the total produce goes to a small minority of the population, many of whom do no work at all. Owing to the absence of any central control over production, we produce hosts of things that are not wanted. We keep a large percentage of the working population idle, because we can dispense with their labor by making the others overwork. When all these methods prove inadequate, we have a war: we cause a number of people to manufacture high explosives, and a number of others to explode them, as if we were children who had just discovered fireworks. By a combination of all these devices we manage, though with difficulty, to keep alive the notion that a great deal of severe manual work must be the lot of the average man.
-
-In Russia, owing to more economic justice and central control over production, the problem will have to be differently solved. the rational solution would be, as soon as the necessaries and elementary comforts can be provided for all, to reduce the hours of labor gradually, allowing a popular vote to decide, at each stage, whether more leisure or more goods were to be preferred. But, having taught the supreme virtue of hard work, it is difficult to see how the authorities can aim at a paradise in which there will be much leisure and little work. It seems more likely that they will find continually fresh schemes, by which present leisure is to be sacrificed to future productivity. I read recently of an ingenious plan put forward by Russian engineers, for making the White Sea and the northern coasts of Siberia warm, by putting a dam across the Kara Sea. An admirable project, but liable to postpone proletarian comfort for a generation, while the nobility of toil is being displayed amid the ice-fields and snowstorms of the Arctic Ocean. This sort of thing, if it happens, will be the result of regarding the virtue of hard work as an end in itself, rather than as a means to a state of affairs in which it is no longer needed.
-
-The fact is that moving matter about, while a certain amount of it is necessary to our existence, is emphatically not one of the ends of human life. If it were, we should have to consider every navvy superior to Shakespeare. We have been misled in this matter by two causes. One is the necessity of keeping the poor contented, which has led the rich, for thousands of years, to preach the dignity of labor, while taking care themselves to remain undignified in this respect. The other is the new pleasure in mechanism, which makes us delight in the astonishingly clever changes that we can produce on the earth's surface. Neither of these motives makes any great appeal to the actual worker. If you ask him what he thinks the best part of his life, he is not likely to say: 'I enjoy manual work because it makes me feel that I am fulfilling man's noblest task, and because I like to think how much man can transform his planet. It is true that my body demands periods of rest, which I have to fill in as best I may, but I am never so happy as when the morning comes and I can return to the toil from which my contentment springs.' I have never heard working men say this sort of thing. They consider work, as it should be considered, a necessary means to a livelihood, and it is from their leisure that they derive whatever happiness they may enjoy.
-
-It will be said that, while a little leisure is pleasant, men would not know how to fill their days if they had only four hours of work out of the twenty-four. In so far as this is true in the modern world, it is a condemnation of our civilization; it would not have been true at any earlier period. There was formerly a capacity for light-heartedness and play which has been to some extent inhibited by the cult of efficiency. The modern man thinks that everything ought to be done for the sake of something else, and never for its own sake. Serious-minded persons, for example, are continually condemning the habit of going to the cinema, and telling us that it leads the young into crime. But all the work that goes to producing a cinema is respectable, because it is work, and because it brings a money profit. The notion that the desirable activities are those that bring a profit has made everything topsy-turvy. The butcher who provides you with meat and the baker who provides you with bread are praiseworthy, because they are making money; but when you enjoy the food they have provided, you are merely frivolous, unless you eat only to get strength for your work. Broadly speaking, it is held that getting money is good and spending money is bad. Seeing that they are two sides of one transaction, this is absurd; one might as well maintain that keys are good, but keyholes are bad. Whatever merit there may be in the production of goods must be entirely derivative from the advantage to be obtained by consuming them. The individual, in our society, works for profit; but the social purpose of his work lies in the consumption of what he produces. It is this divorce between the individual and the social purpose of production that makes it so difficult for men to think clearly in a world in which profit-making is the incentive to industry. We think too much of production, and too little of consumption. One result is that we attach too little importance to enjoyment and simple happiness, and that we do not judge production by the pleasure that it gives to the consumer.
-
-When I suggest that working hours should be reduced to four, I am not meaning to imply that all the remaining time should necessarily be spent in pure frivolity. I mean that four hours' work a day should entitle a man to the necessities and elementary comforts of life, and that the rest of his time should be his to use as he might see fit. It is an essential part of any such social system that education should be carried further than it usually is at present, and should aim, in part, at providing tastes which would enable a man to use leisure intelligently. I am not thinking mainly of the sort of things that would be considered 'highbrow'. Peasant dances have died out except in remote rural areas, but the impulses which caused them to be cultivated must still exist in human nature. The pleasures of urban populations have become mainly passive: seeing cinemas, watching football matches, listening to the radio, and so on. This results from the fact that their active energies are fully taken up with work; if they had more leisure, they would again enjoy pleasures in which they took an active part.
-
-In the past, there was a small leisure class and a larger working class. The leisure class enjoyed advantages for which there was no basis in social justice; this necessarily made it oppressive, limited its sympathies, and caused it to invent theories by which to justify its privileges. These facts greatly diminished its excellence, but in spite of this drawback it contributed nearly the whole of what we call civilization. It cultivated the arts and discovered the sciences; it wrote the books, invented the philosophies, and refined social relations. Even the liberation of the oppressed has usually been inaugurated from above. Without the leisure class, mankind would never have emerged from barbarism.
-
-The method of a leisure class without duties was, however, extraordinarily wasteful. None of the members of the class had to be taught to be industrious, and the class as a whole was not exceptionally intelligent. The class might produce one Darwin, but against him had to be set tens of thousands of country gentlemen who never thought of anything more intelligent than fox-hunting and punishing poachers. At present, the universities are supposed to provide, in a more systematic way, what the leisure class provided accidentally and as a by-product. This is a great improvement, but it has certain drawbacks. University life is so different from life in the world at large that men who live in academic milieu tend to be unaware of the preoccupations and problems of ordinary men and women; moreover their ways of expressing themselves are usually such as to rob their opinions of the influence that they ought to have upon the general public. Another disadvantage is that in universities studies are organized, and the man who thinks of some original line of research is likely to be discouraged. Academic institutions, therefore, useful as they are, are not adequate guardians of the interests of civilization in a world where everyone outside their walls is too busy for unutilitarian pursuits.
-
-In a world where no one is compelled to work more than four hours a day, every person possessed of scientific curiosity will be able to indulge it, and every painter will be able to paint without starving, however excellent his pictures may be. Young writers will not be obliged to draw attention to themselves by sensational pot-boilers, with a view to acquiring the economic independence needed for monumental works, for which, when the time at last comes, they will have lost the taste and capacity. Men who, in their professional work, have become interested in some phase of economics or government, will be able to develop their ideas without the academic detachment that makes the work of university economists often seem lacking in reality. Medical men will have the time to learn about the progress of medicine, teachers will not be exasperatedly struggling to teach by routine methods things which they learnt in their youth, which may, in the interval, have been proved to be untrue.
-
-Above all, there will be happiness and joy of life, instead of frayed nerves, weariness, and dyspepsia. The work exacted will be enough to make leisure delightful, but not enough to produce exhaustion. Since men will not be tired in their spare time, they will not demand only such amusements as are passive and vapid. At least one per cent will probably devote the time not spent in professional work to pursuits of some public importance, and, since they will not depend upon these pursuits for their livelihood, their originality will be unhampered, and there will be no need to conform to the standards set by elderly pundits. But it is not only in these exceptional cases that the advantages of leisure will appear. Ordinary men and women, having the opportunity of a happy life, will become more kindly and less persecuting and less inclined to view others with suspicion. The taste for war will die out, partly for this reason, and partly because it will involve long and severe work for all. Good nature is, of all moral qualities, the one that the world needs most, and good nature is the result of ease and security, not of a life of arduous struggle. Modern methods of production have given us the possibility of ease and security for all; we have chosen, instead, to have overwork for some and starvation for others. Hitherto we have continued to be as energetic as we were before there were machines; in this we have been foolish, but there is no reason to go on being foolish forever.
-
-[1] Since then, members of the Communist Party have succeeded to this privilege of the warriors and priests.
diff --git a/node_modules/cliui/node_modules/wordwrap/test/wrap.js b/node_modules/cliui/node_modules/wordwrap/test/wrap.js
deleted file mode 100644
index 0cfb76d17..000000000
--- a/node_modules/cliui/node_modules/wordwrap/test/wrap.js
+++ /dev/null
@@ -1,31 +0,0 @@
-var assert = require('assert');
-var wordwrap = require('wordwrap');
-
-var fs = require('fs');
-var idleness = fs.readFileSync(__dirname + '/idleness.txt', 'utf8');
-
-exports.stop80 = function () {
- var lines = wordwrap(80)(idleness).split(/\n/);
- var words = idleness.split(/\s+/);
-
- lines.forEach(function (line) {
- assert.ok(line.length <= 80, 'line > 80 columns');
- var chunks = line.match(/\S/) ? line.split(/\s+/) : [];
- assert.deepEqual(chunks, words.splice(0, chunks.length));
- });
-};
-
-exports.start20stop60 = function () {
- var lines = wordwrap(20, 100)(idleness).split(/\n/);
- var words = idleness.split(/\s+/);
-
- lines.forEach(function (line) {
- assert.ok(line.length <= 100, 'line > 100 columns');
- var chunks = line
- .split(/\s+/)
- .filter(function (x) { return x.match(/\S/) })
- ;
- assert.deepEqual(chunks, words.splice(0, chunks.length));
- assert.deepEqual(line.slice(0, 20), new Array(20 + 1).join(' '));
- });
-};
diff --git a/node_modules/cliui/package.json b/node_modules/cliui/package.json
index 868ae2eaa..31c654c39 100644
--- a/node_modules/cliui/package.json
+++ b/node_modules/cliui/package.json
@@ -1,14 +1,17 @@
{
"name": "cliui",
- "version": "2.1.0",
+ "version": "3.2.0",
"description": "easily create complex multi-column command-line-interfaces",
"main": "index.js",
"scripts": {
- "test": "standard && mocha --check-leaks --ui exports --require patched-blanket -R mocoverage"
+ "pretest": "standard",
+ "test": "nyc mocha",
+ "coverage": "nyc --reporter=text-lcov mocha | coveralls",
+ "version": "standard-version"
},
"repository": {
"type": "git",
- "url": "http://github.com/bcoe/cliui.git"
+ "url": "http://github.com/yargs/cliui.git"
},
"config": {
"blanket": {
@@ -42,18 +45,20 @@
"author": "Ben Coe <ben@npmjs.com>",
"license": "ISC",
"dependencies": {
- "center-align": "^0.1.1",
- "right-align": "^0.1.1",
- "wordwrap": "0.0.2"
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
},
"devDependencies": {
- "blanket": "^1.1.6",
- "chai": "^2.2.0",
- "coveralls": "^2.11.2",
- "mocha": "^2.2.4",
- "mocha-lcov-reporter": "0.0.2",
- "mocoverage": "^1.0.0",
- "patched-blanket": "^1.0.1",
- "standard": "^3.6.1"
- }
-}
+ "chai": "^3.5.0",
+ "chalk": "^1.1.2",
+ "coveralls": "^2.11.8",
+ "mocha": "^2.4.5",
+ "nyc": "^6.4.0",
+ "standard": "^6.0.8",
+ "standard-version": "^2.1.2"
+ },
+ "files": [
+ "index.js"
+ ]
+} \ No newline at end of file
diff --git a/node_modules/cliui/test/cliui.js b/node_modules/cliui/test/cliui.js
deleted file mode 100644
index 1cc6127cb..000000000
--- a/node_modules/cliui/test/cliui.js
+++ /dev/null
@@ -1,349 +0,0 @@
-/* global describe, it */
-
-require('chai').should()
-
-var cliui = require('../')
-
-describe('cliui', function () {
- describe('div', function () {
- it("wraps text at 'width' if a single column is given", function () {
- var ui = cliui({
- width: 10
- })
-
- ui.div('i am a string that should be wrapped')
-
- ui.toString().split('\n').forEach(function (row) {
- row.length.should.be.lte(10)
- })
- })
-
- it('evenly divides text across columns if multiple columns are given', function () {
- var ui = cliui({
- width: 40
- })
-
- ui.div(
- {text: 'i am a string that should be wrapped', width: 15},
- 'i am a second string that should be wrapped',
- 'i am a third string that should be wrapped'
- )
-
- // total width of all columns is <=
- // the width cliui is initialized with.
- ui.toString().split('\n').forEach(function (row) {
- row.length.should.be.lte(40)
- })
-
- // it should wrap each column appropriately.
- var expected = [
- 'i am a string i am a i am a third',
- 'that should be second string that',
- 'wrapped string that should be',
- ' should be wrapped',
- ' wrapped'
- ]
-
- ui.toString().split('\n').should.eql(expected)
- })
-
- it('allows for a blank row to be appended', function () {
- var ui = cliui({
- width: 40
- })
-
- ui.div()
-
- // it should wrap each column appropriately.
- var expected = ['']
-
- ui.toString().split('\n').should.eql(expected)
- })
- })
-
- describe('_columnWidths', function () {
- it('uses same width for each column by default', function () {
- var ui = cliui({
- width: 40
- }),
- widths = ui._columnWidths([{}, {}, {}])
-
- widths[0].should.equal(13)
- widths[1].should.equal(13)
- widths[2].should.equal(13)
- })
-
- it('divides width over remaining columns if first column has width specified', function () {
- var ui = cliui({
- width: 40
- }),
- widths = ui._columnWidths([{width: 20}, {}, {}])
-
- widths[0].should.equal(20)
- widths[1].should.equal(10)
- widths[2].should.equal(10)
- })
-
- it('divides width over remaining columns if middle column has width specified', function () {
- var ui = cliui({
- width: 40
- }),
- widths = ui._columnWidths([{}, {width: 10}, {}])
-
- widths[0].should.equal(15)
- widths[1].should.equal(10)
- widths[2].should.equal(15)
- })
-
- it('keeps track of remaining width if multiple columns have width specified', function () {
- var ui = cliui({
- width: 40
- }),
- widths = ui._columnWidths([{width: 20}, {width: 12}, {}])
-
- widths[0].should.equal(20)
- widths[1].should.equal(12)
- widths[2].should.equal(8)
- })
-
- it('uses a sane default if impossible widths are specified', function () {
- var ui = cliui({
- width: 40
- }),
- widths = ui._columnWidths([{width: 30}, {width: 30}, {padding: [0, 2, 0, 1]}])
-
- widths[0].should.equal(30)
- widths[1].should.equal(30)
- widths[2].should.equal(4)
- })
- })
-
- describe('alignment', function () {
- it('allows a column to be right aligned', function () {
- var ui = cliui({
- width: 40
- })
-
- ui.div(
- 'i am a string',
- {text: 'i am a second string', align: 'right'},
- 'i am a third string that should be wrapped'
- )
-
- // it should right-align the second column.
- var expected = [
- 'i am a stringi am a secondi am a third',
- ' stringstring that',
- ' should be',
- ' wrapped'
- ]
-
- ui.toString().split('\n').should.eql(expected)
- })
-
- it('allows a column to be center aligned', function () {
- var ui = cliui({
- width: 60
- })
-
- ui.div(
- 'i am a string',
- {text: 'i am a second string', align: 'center', padding: [0, 2, 0, 2]},
- 'i am a third string that should be wrapped'
- )
-
- // it should right-align the second column.
- var expected = [
- 'i am a string i am a second i am a third string',
- ' string that should be',
- ' wrapped'
- ]
-
- ui.toString().split('\n').should.eql(expected)
- })
- })
-
- describe('padding', function () {
- it('handles left/right padding', function () {
- var ui = cliui({
- width: 40
- })
-
- ui.div(
- {text: 'i have padding on my left', padding: [0, 0, 0, 4]},
- {text: 'i have padding on my right', padding: [0, 2, 0, 0], align: 'center'},
- {text: 'i have no padding', padding: [0, 0, 0, 0]}
- )
-
- // it should add left/right padding to columns.
- var expected = [
- ' i have i have i have no',
- ' padding padding on padding',
- ' on my my right',
- ' left'
- ]
-
- ui.toString().split('\n').should.eql(expected)
- })
-
- it('handles top/bottom padding', function () {
- var ui = cliui({
- width: 40
- })
-
- ui.div(
- 'i am a string',
- {text: 'i am a second string', padding: [2, 0, 0, 0]},
- {text: 'i am a third string that should be wrapped', padding: [0, 0, 1, 0]}
- )
-
- // it should add top/bottom padding to second
- // and third columns.
- var expected = [
- 'i am a string i am a third',
- ' string that',
- ' i am a secondshould be',
- ' string wrapped',
- ''
- ]
-
- ui.toString().split('\n').should.eql(expected)
- })
- })
-
- describe('wrap', function () {
- it('allows wordwrap to be disabled', function () {
- var ui = cliui({
- wrap: false
- })
-
- ui.div(
- {text: 'i am a string', padding: [0, 1, 0, 0]},
- {text: 'i am a second string', padding: [0, 2, 0, 0]},
- {text: 'i am a third string that should not be wrapped', padding: [0, 0, 0, 2]}
- )
-
- ui.toString().should.equal('i am a string i am a second string i am a third string that should not be wrapped')
- })
- })
-
- describe('span', function () {
- it('appends the next row to the end of the prior row if it fits', function () {
- var ui = cliui({
- width: 40
- })
-
- ui.span(
- {text: 'i am a string that will be wrapped', width: 30}
- )
-
- ui.div(
- {text: ' [required] [default: 99]', align: 'right'}
- )
-
- var expected = [
- 'i am a string that will be',
- 'wrapped [required] [default: 99]'
- ]
-
- ui.toString().split('\n').should.eql(expected)
- })
-
- it('does not append the string if it does not fit on the prior row', function () {
- var ui = cliui({
- width: 40
- })
-
- ui.span(
- {text: 'i am a string that will be wrapped', width: 30}
- )
-
- ui.div(
- {text: 'i am a second row', align: 'left'}
- )
-
- var expected = [
- 'i am a string that will be',
- 'wrapped',
- 'i am a second row'
- ]
-
- ui.toString().split('\n').should.eql(expected)
- })
-
- it('always appends text to prior span if wrap is disabled', function () {
- var ui = cliui({
- wrap: false,
- width: 40
- })
-
- ui.span(
- {text: 'i am a string that will be wrapped', width: 30}
- )
-
- ui.div(
- {text: 'i am a second row', align: 'left', padding: [0, 0, 0, 3]}
- )
-
- ui.div('a third line')
-
- var expected = [
- 'i am a string that will be wrapped i am a second row',
- 'a third line'
- ]
-
- ui.toString().split('\n').should.eql(expected)
- })
- })
-
- describe('layoutDSL', function () {
- it('turns tab into multiple columns', function () {
- var ui = cliui({
- width: 60
- })
-
- ui.div(
- ' <regex> \tmy awesome regex\n <my second thing> \tanother row\t a third column'
- )
-
- var expected = [
- ' <regex> my awesome regex',
- ' <my second thing> another row a third column'
- ]
-
- ui.toString().split('\n').should.eql(expected)
- })
-
- it('turns newline into multiple rows', function () {
- var ui = cliui({
- width: 40
- })
-
- ui.div(
- 'Usage: $0\n <regex>\t my awesome regex\n <glob>\t my awesome glob\t [required]'
- )
- var expected = [
- 'Usage: $0',
- ' <regex> my awesome regex',
- ' <glob> my awesome [required]',
- ' glob'
- ]
-
- ui.toString().split('\n').should.eql(expected)
- })
-
- it('does not apply DSL if wrap is false', function () {
- var ui = cliui({
- width: 40,
- wrap: false
- })
-
- ui.div(
- 'Usage: $0\ttwo\tthree'
- )
-
- ui.toString().should.eql('Usage: $0\ttwo\tthree')
- })
-
- })
-})
diff --git a/node_modules/connect/HISTORY.md b/node_modules/connect/HISTORY.md
deleted file mode 100644
index 6482e4357..000000000
--- a/node_modules/connect/HISTORY.md
+++ /dev/null
@@ -1,2460 +0,0 @@
-3.6.2 / 2017-05-16
-==================
-
- * deps: finalhandler@1.0.3
- - deps: debug@2.6.7
- * deps: debug@2.6.7
- - deps: ms@2.0.0
-
-3.6.1 / 2017-04-19
-==================
-
- * deps: debug@2.6.3
- - Fix `DEBUG_MAX_ARRAY_LENGTH`
- * deps: finalhandler@1.0.1
- - Fix missing `</html>` in HTML document
- - deps: debug@2.6.3
-
-3.6.0 / 2017-02-17
-==================
-
- * deps: debug@2.6.1
- - Allow colors in workers
- - Deprecated `DEBUG_FD` environment variable set to `3` or higher
- - Fix error when running under React Native
- - Use same color for same namespace
- - deps: ms@0.7.2
- * deps: finalhandler@1.0.0
- - Fix exception when `err` cannot be converted to a string
- - Fully URL-encode the pathname in the 404
- - Only include the pathname in the 404 message
- - Send complete HTML document
- - Set `Content-Security-Policy: default-src 'self'` header
- - deps: debug@2.6.1
-
-3.5.1 / 2017-02-12
-==================
-
- * deps: finalhandler@0.5.1
- - Fix exception when `err.headers` is not an object
- - deps: statuses@~1.3.1
- - perf: hoist regular expressions
- - perf: remove duplicate validation path
-
-3.5.0 / 2016-09-09
-==================
-
- * deps: finalhandler@0.5.0
- - Change invalid or non-numeric status code to 500
- - Overwrite status message to match set status code
- - Prefer `err.statusCode` if `err.status` is invalid
- - Set response headers from `err.headers` object
- - Use `statuses` instead of `http` module for status messages
-
-3.4.1 / 2016-01-23
-==================
-
- * deps: finalhandler@0.4.1
- - deps: escape-html@~1.0.3
- * deps: parseurl@~1.3.1
- - perf: enable strict mode
-
-3.4.0 / 2015-06-18
-==================
-
- * deps: debug@~2.2.0
- - deps: ms@0.7.1
- * deps: finalhandler@0.4.0
- - Fix a false-positive when unpiping in Node.js 0.8
- - Support `statusCode` property on `Error` objects
- - Use `unpipe` module for unpiping requests
- - deps: debug@~2.2.0
- - deps: escape-html@1.0.2
- - deps: on-finished@~2.3.0
- - perf: enable strict mode
- - perf: remove argument reassignment
- * perf: enable strict mode
- * perf: remove argument reassignments
-
-3.3.5 / 2015-03-16
-==================
-
- * deps: debug@~2.1.3
- - Fix high intensity foreground color for bold
- - deps: ms@0.7.0
- * deps: finalhandler@0.3.4
- - deps: debug@~2.1.3
-
-3.3.4 / 2015-01-07
-==================
-
- * deps: debug@~2.1.1
- * deps: finalhandler@0.3.3
- - deps: debug@~2.1.1
- - deps: on-finished@~2.2.0
-
-3.3.3 / 2014-11-09
-==================
-
- * Correctly invoke async callback asynchronously
-
-3.3.2 / 2014-10-28
-==================
-
- * Fix handling of URLs containing `://` in the path
-
-3.3.1 / 2014-10-22
-==================
-
- * deps: finalhandler@0.3.2
- - deps: on-finished@~2.1.1
-
-3.3.0 / 2014-10-17
-==================
-
- * deps: debug@~2.1.0
- - Implement `DEBUG_FD` env variable support
- * deps: finalhandler@0.3.1
- - Terminate in progress response only on error
- - Use `on-finished` to determine request status
- - deps: debug@~2.1.0
-
-3.2.0 / 2014-09-08
-==================
-
- * deps: debug@~2.0.0
- * deps: finalhandler@0.2.0
- - Set `X-Content-Type-Options: nosniff` header
- - deps: debug@~2.0.0
-
-3.1.1 / 2014-08-10
-==================
-
- * deps: parseurl@~1.3.0
-
-3.1.0 / 2014-07-22
-==================
-
- * deps: debug@1.0.4
- * deps: finalhandler@0.1.0
- - Respond after request fully read
- - deps: debug@1.0.4
- * deps: parseurl@~1.2.0
- - Cache URLs based on original value
- - Remove no-longer-needed URL mis-parse work-around
- - Simplify the "fast-path" `RegExp`
- * perf: reduce executed logic in routing
- * perf: refactor location of `try` block
-
-3.0.2 / 2014-07-10
-==================
-
- * deps: debug@1.0.3
- - Add support for multiple wildcards in namespaces
- * deps: parseurl@~1.1.3
- - faster parsing of href-only URLs
-
-3.0.1 / 2014-06-19
-==================
-
- * use `finalhandler` for final response handling
- * deps: debug@1.0.2
-
-3.0.0 / 2014-05-29
-==================
-
- * No changes
-
-3.0.0-rc.2 / 2014-05-04
-=======================
-
- * Call error stack even when response has been sent
- * Prevent default 404 handler after response sent
- * dep: debug@0.8.1
- * encode stack in HTML for default error handler
- * remove `proto` export
-
-3.0.0-rc.1 / 2014-03-06
-=======================
-
- * move middleware to separate repos
- * remove docs
- * remove node patches
- * remove connect(middleware...)
- * remove the old `connect.createServer()` method
- * remove various private `connect.utils` functions
- * drop node.js 0.8 support
-
-2.30.2 / 2015-07-31
-===================
-
- * deps: body-parser@~1.13.3
- - deps: type-is@~1.6.6
- * deps: compression@~1.5.2
- - deps: accepts@~1.2.12
- - deps: compressible@~2.0.5
- - deps: vary@~1.0.1
- * deps: errorhandler@~1.4.2
- - deps: accepts@~1.2.12
- * deps: method-override@~2.3.5
- - deps: vary@~1.0.1
- - perf: enable strict mode
- * deps: serve-index@~1.7.2
- - deps: accepts@~1.2.12
- - deps: mime-types@~2.1.4
- * deps: type-is@~1.6.6
- - deps: mime-types@~2.1.4
- * deps: vhost@~3.0.1
- - perf: enable strict mode
-
-2.30.1 / 2015-07-05
-===================
-
- * deps: body-parser@~1.13.2
- - deps: iconv-lite@0.4.11
- - deps: qs@4.0.0
- - deps: raw-body@~2.1.2
- - deps: type-is@~1.6.4
- * deps: compression@~1.5.1
- - deps: accepts@~1.2.10
- - deps: compressible@~2.0.4
- * deps: errorhandler@~1.4.1
- - deps: accepts@~1.2.10
- * deps: qs@4.0.0
- - Fix dropping parameters like `hasOwnProperty`
- - Fix various parsing edge cases
- * deps: morgan@~1.6.1
- - deps: basic-auth@~1.0.3
- * deps: pause@0.1.0
- - Re-emit events with all original arguments
- - Refactor internals
- - perf: enable strict mode
- * deps: serve-index@~1.7.1
- - deps: accepts@~1.2.10
- - deps: mime-types@~2.1.2
- * deps: type-is@~1.6.4
- - deps: mime-types@~2.1.2
- - perf: enable strict mode
- - perf: remove argument reassignment
-
-2.30.0 / 2015-06-18
-===================
-
- * deps: body-parser@~1.13.1
- - Add `statusCode` property on `Error`s, in addition to `status`
- - Change `type` default to `application/json` for JSON parser
- - Change `type` default to `application/x-www-form-urlencoded` for urlencoded parser
- - Provide static `require` analysis
- - Use the `http-errors` module to generate errors
- - deps: bytes@2.1.0
- - deps: iconv-lite@0.4.10
- - deps: on-finished@~2.3.0
- - deps: raw-body@~2.1.1
- - deps: type-is@~1.6.3
- - perf: enable strict mode
- - perf: remove argument reassignment
- - perf: remove delete call
- * deps: bytes@2.1.0
- - Slight optimizations
- - Units no longer case sensitive when parsing
- * deps: compression@~1.5.0
- - Fix return value from `.end` and `.write` after end
- - Improve detection of zero-length body without `Content-Length`
- - deps: accepts@~1.2.9
- - deps: bytes@2.1.0
- - deps: compressible@~2.0.3
- - perf: enable strict mode
- - perf: remove flush reassignment
- - perf: simplify threshold detection
- * deps: cookie@0.1.3
- - Slight optimizations
- * deps: cookie-parser@~1.3.5
- - deps: cookie@0.1.3
- * deps: csurf@~1.8.3
- - Add `sessionKey` option
- - deps: cookie@0.1.3
- - deps: csrf@~3.0.0
- * deps: errorhandler@~1.4.0
- - Add charset to the `Content-Type` header
- - Support `statusCode` property on `Error` objects
- - deps: accepts@~1.2.9
- - deps: escape-html@1.0.2
- * deps: express-session@~1.11.3
- - Support an array in `secret` option for key rotation
- - deps: cookie@0.1.3
- - deps: crc@3.3.0
- - deps: debug@~2.2.0
- - deps: depd@~1.0.1
- - deps: uid-safe@~2.0.0
- * deps: finalhandler@0.4.0
- - Fix a false-positive when unpiping in Node.js 0.8
- - Support `statusCode` property on `Error` objects
- - Use `unpipe` module for unpiping requests
- - deps: escape-html@1.0.2
- - deps: on-finished@~2.3.0
- - perf: enable strict mode
- - perf: remove argument reassignment
- * deps: fresh@0.3.0
- - Add weak `ETag` matching support
- * deps: morgan@~1.6.0
- - Add `morgan.compile(format)` export
- - Do not color 1xx status codes in `dev` format
- - Fix `response-time` token to not include response latency
- - Fix `status` token incorrectly displaying before response in `dev` format
- - Fix token return values to be `undefined` or a string
- - Improve representation of multiple headers in `req` and `res` tokens
- - Use `res.getHeader` in `res` token
- - deps: basic-auth@~1.0.2
- - deps: on-finished@~2.3.0
- - pref: enable strict mode
- - pref: reduce function closure scopes
- - pref: remove dynamic compile on every request for `dev` format
- - pref: remove an argument reassignment
- - pref: skip function call without `skip` option
- * deps: serve-favicon@~2.3.0
- - Send non-chunked response for `OPTIONS`
- - deps: etag@~1.7.0
- - deps: fresh@0.3.0
- - perf: enable strict mode
- - perf: remove argument reassignment
- - perf: remove bitwise operations
- * deps: serve-index@~1.7.0
- - Accept `function` value for `template` option
- - Send non-chunked response for `OPTIONS`
- - Stat parent directory when necessary
- - Use `Date.prototype.toLocaleDateString` to format date
- - deps: accepts@~1.2.9
- - deps: escape-html@1.0.2
- - deps: mime-types@~2.1.1
- - perf: enable strict mode
- - perf: remove argument reassignment
- * deps: serve-static@~1.10.0
- - Add `fallthrough` option
- - Fix reading options from options prototype
- - Improve the default redirect response headers
- - Malformed URLs now `next()` instead of 400
- - deps: escape-html@1.0.2
- - deps: send@0.13.0
- - perf: enable strict mode
- - perf: remove argument reassignment
- * deps: type-is@~1.6.3
- - deps: mime-types@~2.1.1
- - perf: reduce try block size
- - perf: remove bitwise operations
-
-2.29.2 / 2015-05-14
-===================
-
- * deps: body-parser@~1.12.4
- - Slight efficiency improvement when not debugging
- - deps: debug@~2.2.0
- - deps: depd@~1.0.1
- - deps: iconv-lite@0.4.8
- - deps: on-finished@~2.2.1
- - deps: qs@2.4.2
- - deps: raw-body@~2.0.1
- - deps: type-is@~1.6.2
- * deps: compression@~1.4.4
- - deps: accepts@~1.2.7
- - deps: debug@~2.2.0
- * deps: connect-timeout@~1.6.2
- - deps: debug@~2.2.0
- - deps: ms@0.7.1
- * deps: debug@~2.2.0
- - deps: ms@0.7.1
- * deps: depd@~1.0.1
- * deps: errorhandler@~1.3.6
- - deps: accepts@~1.2.7
- * deps: finalhandler@0.3.6
- - deps: debug@~2.2.0
- - deps: on-finished@~2.2.1
- * deps: method-override@~2.3.3
- - deps: debug@~2.2.0
- * deps: morgan@~1.5.3
- - deps: basic-auth@~1.0.1
- - deps: debug@~2.2.0
- - deps: depd@~1.0.1
- - deps: on-finished@~2.2.1
- * deps: qs@2.4.2
- - Fix allowing parameters like `constructor`
- * deps: response-time@~2.3.1
- - deps: depd@~1.0.1
- * deps: serve-favicon@~2.2.1
- - deps: etag@~1.6.0
- - deps: ms@0.7.1
- * deps: serve-index@~1.6.4
- - deps: accepts@~1.2.7
- - deps: debug@~2.2.0
- - deps: mime-types@~2.0.11
- * deps: serve-static@~1.9.3
- - deps: send@0.12.3
- * deps: type-is@~1.6.2
- - deps: mime-types@~2.0.11
-
-2.29.1 / 2015-03-16
-===================
-
- * deps: body-parser@~1.12.2
- - deps: debug@~2.1.3
- - deps: qs@2.4.1
- - deps: type-is@~1.6.1
- * deps: compression@~1.4.3
- - Fix error when code calls `res.end(str, encoding)`
- - deps: accepts@~1.2.5
- - deps: debug@~2.1.3
- * deps: connect-timeout@~1.6.1
- - deps: debug@~2.1.3
- * deps: debug@~2.1.3
- - Fix high intensity foreground color for bold
- - deps: ms@0.7.0
- * deps: errorhandler@~1.3.5
- - deps: accepts@~1.2.5
- * deps: express-session@~1.10.4
- - deps: debug@~2.1.3
- * deps: finalhandler@0.3.4
- - deps: debug@~2.1.3
- * deps: method-override@~2.3.2
- - deps: debug@~2.1.3
- * deps: morgan@~1.5.2
- - deps: debug@~2.1.3
- * deps: qs@2.4.1
- - Fix error when parameter `hasOwnProperty` is present
- * deps: serve-index@~1.6.3
- - Properly escape file names in HTML
- - deps: accepts@~1.2.5
- - deps: debug@~2.1.3
- - deps: escape-html@1.0.1
- - deps: mime-types@~2.0.10
- * deps: serve-static@~1.9.2
- - deps: send@0.12.2
- * deps: type-is@~1.6.1
- - deps: mime-types@~2.0.10
-
-2.29.0 / 2015-02-17
-===================
-
- * Use `content-type` to parse `Content-Type` headers
- * deps: body-parser@~1.12.0
- - add `debug` messages
- - accept a function for the `type` option
- - make internal `extended: true` depth limit infinity
- - use `content-type` to parse `Content-Type` headers
- - deps: iconv-lite@0.4.7
- - deps: raw-body@1.3.3
- - deps: type-is@~1.6.0
- * deps: compression@~1.4.1
- - Prefer `gzip` over `deflate` on the server
- - deps: accepts@~1.2.4
- * deps: connect-timeout@~1.6.0
- - deps: http-errors@~1.3.1
- * deps: cookie-parser@~1.3.4
- - deps: cookie-signature@1.0.6
- * deps: cookie-signature@1.0.6
- * deps: csurf@~1.7.0
- - Accept `CSRF-Token` and `XSRF-Token` request headers
- - Default `cookie.path` to `'/'`, if using cookies
- - deps: cookie-signature@1.0.6
- - deps: csrf@~2.0.6
- - deps: http-errors@~1.3.1
- * deps: errorhandler@~1.3.4
- - deps: accepts@~1.2.4
- * deps: express-session@~1.10.3
- - deps: cookie-signature@1.0.6
- - deps: uid-safe@1.1.0
- * deps: http-errors@~1.3.1
- - Construct errors using defined constructors from `createError`
- - Fix error names that are not identifiers
- - Set a meaningful `name` property on constructed errors
- * deps: response-time@~2.3.0
- - Add function argument to support recording of response time
- * deps: serve-index@~1.6.2
- - deps: accepts@~1.2.4
- - deps: http-errors@~1.3.1
- - deps: mime-types@~2.0.9
- * deps: serve-static@~1.9.1
- - deps: send@0.12.1
- * deps: type-is@~1.6.0
- - fix argument reassignment
- - fix false-positives in `hasBody` `Transfer-Encoding` check
- - support wildcard for both type and subtype (`*/*`)
- - deps: mime-types@~2.0.9
-
-2.28.3 / 2015-01-31
-===================
-
- * deps: compression@~1.3.1
- - deps: accepts@~1.2.3
- - deps: compressible@~2.0.2
- * deps: csurf@~1.6.6
- - deps: csrf@~2.0.5
- * deps: errorhandler@~1.3.3
- - deps: accepts@~1.2.3
- * deps: express-session@~1.10.2
- - deps: uid-safe@1.0.3
- * deps: serve-index@~1.6.1
- - deps: accepts@~1.2.3
- - deps: mime-types@~2.0.8
- * deps: type-is@~1.5.6
- - deps: mime-types@~2.0.8
-
-2.28.2 / 2015-01-20
-===================
-
- * deps: body-parser@~1.10.2
- - deps: iconv-lite@0.4.6
- - deps: raw-body@1.3.2
- * deps: serve-static@~1.8.1
- - Fix redirect loop in Node.js 0.11.14
- - Fix root path disclosure
- - deps: send@0.11.1
-
-2.28.1 / 2015-01-08
-===================
-
- * deps: csurf@~1.6.5
- - deps: csrf@~2.0.4
- * deps: express-session@~1.10.1
- - deps: uid-safe@~1.0.2
-
-2.28.0 / 2015-01-05
-===================
-
- * deps: body-parser@~1.10.1
- - Make internal `extended: true` array limit dynamic
- - deps: on-finished@~2.2.0
- - deps: type-is@~1.5.5
- * deps: compression@~1.3.0
- - Export the default `filter` function for wrapping
- - deps: accepts@~1.2.2
- - deps: debug@~2.1.1
- * deps: connect-timeout@~1.5.0
- - deps: debug@~2.1.1
- - deps: http-errors@~1.2.8
- - deps: ms@0.7.0
- * deps: csurf@~1.6.4
- - deps: csrf@~2.0.3
- - deps: http-errors@~1.2.8
- * deps: debug@~2.1.1
- * deps: errorhandler@~1.3.2
- - Add `log` option
- - Fix heading content to not include stack
- - deps: accepts@~1.2.2
- * deps: express-session@~1.10.0
- - Add `store.touch` interface for session stores
- - Fix `MemoryStore` expiration with `resave: false`
- - deps: debug@~2.1.1
- * deps: finalhandler@0.3.3
- - deps: debug@~2.1.1
- - deps: on-finished@~2.2.0
- * deps: method-override@~2.3.1
- - deps: debug@~2.1.1
- - deps: methods@~1.1.1
- * deps: morgan@~1.5.1
- - Add multiple date formats `clf`, `iso`, and `web`
- - Deprecate `buffer` option
- - Fix date format in `common` and `combined` formats
- - Fix token arguments to accept values with `"`
- - deps: debug@~2.1.1
- - deps: on-finished@~2.2.0
- * deps: serve-favicon@~2.2.0
- - Support query string in the URL
- - deps: etag@~1.5.1
- - deps: ms@0.7.0
- * deps: serve-index@~1.6.0
- - Add link to root directory
- - deps: accepts@~1.2.2
- - deps: batch@0.5.2
- - deps: debug@~2.1.1
- - deps: mime-types@~2.0.7
- * deps: serve-static@~1.8.0
- - Fix potential open redirect when mounted at root
- - deps: send@0.11.0
- * deps: type-is@~1.5.5
- - deps: mime-types@~2.0.7
-
-2.27.6 / 2014-12-10
-===================
-
- * deps: serve-index@~1.5.3
- - deps: accepts@~1.1.4
- - deps: http-errors@~1.2.8
- - deps: mime-types@~2.0.4
-
-2.27.5 / 2014-12-10
-===================
-
- * deps: compression@~1.2.2
- - Fix `.end` to only proxy to `.end`
- - deps: accepts@~1.1.4
- * deps: express-session@~1.9.3
- - Fix error when `req.sessionID` contains a non-string value
- * deps: http-errors@~1.2.8
- - Fix stack trace from exported function
- - Remove `arguments.callee` usage
- * deps: serve-index@~1.5.2
- - Fix icon name background alignment on mobile view
- * deps: type-is@~1.5.4
- - deps: mime-types@~2.0.4
-
-2.27.4 / 2014-11-23
-===================
-
- * deps: body-parser@~1.9.3
- - deps: iconv-lite@0.4.5
- - deps: qs@2.3.3
- - deps: raw-body@1.3.1
- - deps: type-is@~1.5.3
- * deps: compression@~1.2.1
- - deps: accepts@~1.1.3
- * deps: errorhandler@~1.2.3
- - deps: accepts@~1.1.3
- * deps: express-session@~1.9.2
- - deps: crc@3.2.1
- * deps: qs@2.3.3
- - Fix `arrayLimit` behavior
- * deps: serve-favicon@~2.1.7
- - Avoid errors from enumerables on `Object.prototype`
- * deps: serve-index@~1.5.1
- - deps: accepts@~1.1.3
- - deps: mime-types@~2.0.3
- * deps: type-is@~1.5.3
- - deps: mime-types@~2.0.3
-
-2.27.3 / 2014-11-09
-===================
-
- * Correctly invoke async callback asynchronously
- * deps: csurf@~1.6.3
- - bump csrf
- - bump http-errors
-
-2.27.2 / 2014-10-28
-===================
-
- * Fix handling of URLs containing `://` in the path
- * deps: body-parser@~1.9.2
- - deps: qs@2.3.2
- * deps: qs@2.3.2
- - Fix parsing of mixed objects and values
-
-2.27.1 / 2014-10-22
-===================
-
- * deps: body-parser@~1.9.1
- - deps: on-finished@~2.1.1
- - deps: qs@2.3.0
- - deps: type-is@~1.5.2
- * deps: express-session@~1.9.1
- - Remove unnecessary empty write call
- * deps: finalhandler@0.3.2
- - deps: on-finished@~2.1.1
- * deps: morgan@~1.4.1
- - deps: on-finished@~2.1.1
- * deps: qs@2.3.0
- - Fix parsing of mixed implicit and explicit arrays
- * deps: serve-static@~1.7.1
- - deps: send@0.10.1
-
-2.27.0 / 2014-10-16
-===================
-
- * Use `http-errors` module for creating errors
- * Use `utils-merge` module for merging objects
- * deps: body-parser@~1.9.0
- - include the charset in "unsupported charset" error message
- - include the encoding in "unsupported content encoding" error message
- - deps: depd@~1.0.0
- * deps: compression@~1.2.0
- - deps: debug@~2.1.0
- * deps: connect-timeout@~1.4.0
- - Create errors with `http-errors`
- - deps: debug@~2.1.0
- * deps: debug@~2.1.0
- - Implement `DEBUG_FD` env variable support
- * deps: depd@~1.0.0
- * deps: express-session@~1.9.0
- - deps: debug@~2.1.0
- - deps: depd@~1.0.0
- * deps: finalhandler@0.3.1
- - Terminate in progress response only on error
- - Use `on-finished` to determine request status
- - deps: debug@~2.1.0
- * deps: method-override@~2.3.0
- - deps: debug@~2.1.0
- * deps: morgan@~1.4.0
- - Add `debug` messages
- - deps: depd@~1.0.0
- * deps: response-time@~2.2.0
- - Add `header` option for custom header name
- - Add `suffix` option
- - Change `digits` argument to an `options` argument
- - deps: depd@~1.0.0
- * deps: serve-favicon@~2.1.6
- - deps: etag@~1.5.0
- * deps: serve-index@~1.5.0
- - Add `dir` argument to `filter` function
- - Add icon for mkv files
- - Create errors with `http-errors`
- - Fix incorrect 403 on Windows and Node.js 0.11
- - Lookup icon by mime type for greater icon support
- - Support using tokens multiple times
- - deps: accepts@~1.1.2
- - deps: debug@~2.1.0
- - deps: mime-types@~2.0.2
- * deps: serve-static@~1.7.0
- - deps: send@0.10.0
-
-2.26.6 / 2014-10-15
-===================
-
- * deps: compression@~1.1.2
- - deps: accepts@~1.1.2
- - deps: compressible@~2.0.1
- * deps: csurf@~1.6.2
- - bump http-errors
- - fix cookie name when using `cookie: true`
- * deps: errorhandler@~1.2.2
- - deps: accepts@~1.1.2
-
-2.26.5 / 2014-10-08
-===================
-
- * Fix accepting non-object arguments to `logger`
- * deps: serve-static@~1.6.4
- - Fix redirect loop when index file serving disabled
-
-2.26.4 / 2014-10-02
-===================
-
- * deps: morgan@~1.3.2
- - Fix `req.ip` integration when `immediate: false`
- * deps: type-is@~1.5.2
- - deps: mime-types@~2.0.2
-
-2.26.3 / 2014-09-24
-===================
-
- * deps: body-parser@~1.8.4
- - fix content encoding to be case-insensitive
- * deps: serve-favicon@~2.1.5
- - deps: etag@~1.4.0
- * deps: serve-static@~1.6.3
- - deps: send@0.9.3
-
-2.26.2 / 2014-09-19
-===================
-
- * deps: body-parser@~1.8.3
- - deps: qs@2.2.4
- * deps: qs@2.2.4
- - Fix issue with object keys starting with numbers truncated
-
-2.26.1 / 2014-09-15
-===================
-
- * deps: body-parser@~1.8.2
- - deps: depd@0.4.5
- * deps: depd@0.4.5
- * deps: express-session@~1.8.2
- - Use `crc` instead of `buffer-crc32` for speed
- - deps: depd@0.4.5
- * deps: morgan@~1.3.1
- - Remove un-used `bytes` dependency
- - deps: depd@0.4.5
- * deps: serve-favicon@~2.1.4
- - Fix content headers being sent in 304 response
- - deps: etag@~1.3.1
- * deps: serve-static@~1.6.2
- - deps: send@0.9.2
-
-2.26.0 / 2014-09-08
-===================
-
- * deps: body-parser@~1.8.1
- - add `parameterLimit` option to `urlencoded` parser
- - change `urlencoded` extended array limit to 100
- - make empty-body-handling consistent between chunked requests
- - respond with 415 when over `parameterLimit` in `urlencoded`
- - deps: media-typer@0.3.0
- - deps: qs@2.2.3
- - deps: type-is@~1.5.1
- * deps: compression@~1.1.0
- - deps: accepts@~1.1.0
- - deps: compressible@~2.0.0
- - deps: debug@~2.0.0
- * deps: connect-timeout@~1.3.0
- - deps: debug@~2.0.0
- * deps: cookie-parser@~1.3.3
- - deps: cookie-signature@1.0.5
- * deps: cookie-signature@1.0.5
- * deps: csurf@~1.6.1
- - add `ignoreMethods` option
- - bump cookie-signature
- - csrf-tokens -> csrf
- - set `code` property on CSRF token errors
- * deps: debug@~2.0.0
- * deps: errorhandler@~1.2.0
- - Display error using `util.inspect` if no other representation
- - deps: accepts@~1.1.0
- * deps: express-session@~1.8.1
- - Do not resave already-saved session at end of request
- - Prevent session prototype methods from being overwritten
- - deps: cookie-signature@1.0.5
- - deps: debug@~2.0.0
- * deps: finalhandler@0.2.0
- - Set `X-Content-Type-Options: nosniff` header
- - deps: debug@~2.0.0
- * deps: fresh@0.2.4
- * deps: media-typer@0.3.0
- - Throw error when parameter format invalid on parse
- * deps: method-override@~2.2.0
- - deps: debug@~2.0.0
- * deps: morgan@~1.3.0
- - Assert if `format` is not a function or string
- * deps: qs@2.2.3
- - Fix issue where first empty value in array is discarded
- * deps: serve-favicon@~2.1.3
- - Accept string for `maxAge` (converted by `ms`)
- - Use `etag` to generate `ETag` header
- - deps: fresh@0.2.4
- * deps: serve-index@~1.2.1
- - Add `debug` messages
- - Resolve relative paths at middleware setup
- - deps: accepts@~1.1.0
- * deps: serve-static@~1.6.1
- - Add `lastModified` option
- - deps: send@0.9.1
- * deps: type-is@~1.5.1
- - fix `hasbody` to be true for `content-length: 0`
- - deps: media-typer@0.3.0
- - deps: mime-types@~2.0.1
- * deps: vhost@~3.0.0
-
-2.25.10 / 2014-09-04
-====================
-
- * deps: serve-static@~1.5.4
- - deps: send@0.8.5
-
-2.25.9 / 2014-08-29
-===================
-
- * deps: body-parser@~1.6.7
- - deps: qs@2.2.2
- * deps: qs@2.2.2
-
-2.25.8 / 2014-08-27
-===================
-
- * deps: body-parser@~1.6.6
- - deps: qs@2.2.0
- * deps: csurf@~1.4.1
- * deps: qs@2.2.0
- - Array parsing fix
- - Performance improvements
-
-2.25.7 / 2014-08-18
-===================
-
- * deps: body-parser@~1.6.5
- - deps: on-finished@2.1.0
- * deps: express-session@~1.7.6
- - Fix exception on `res.end(null)` calls
- * deps: morgan@~1.2.3
- - deps: on-finished@2.1.0
- * deps: serve-static@~1.5.3
- - deps: send@0.8.3
-
-2.25.6 / 2014-08-14
-===================
-
- * deps: body-parser@~1.6.4
- - deps: qs@1.2.2
- * deps: qs@1.2.2
- * deps: serve-static@~1.5.2
- - deps: send@0.8.2
-
-2.25.5 / 2014-08-11
-===================
-
- * Fix backwards compatibility in `logger`
-
-2.25.4 / 2014-08-10
-===================
-
- * Fix `query` middleware breaking with argument
- - It never really took one in the first place
- * deps: body-parser@~1.6.3
- - deps: qs@1.2.1
- * deps: compression@~1.0.11
- - deps: on-headers@~1.0.0
- - deps: parseurl@~1.3.0
- * deps: connect-timeout@~1.2.2
- - deps: on-headers@~1.0.0
- * deps: express-session@~1.7.5
- - Fix parsing original URL
- - deps: on-headers@~1.0.0
- - deps: parseurl@~1.3.0
- * deps: method-override@~2.1.3
- * deps: on-headers@~1.0.0
- * deps: parseurl@~1.3.0
- * deps: qs@1.2.1
- * deps: response-time@~2.0.1
- - deps: on-headers@~1.0.0
- * deps: serve-index@~1.1.6
- - Fix URL parsing
- * deps: serve-static@~1.5.1
- - Fix parsing of weird `req.originalUrl` values
- - deps: parseurl@~1.3.0
- = deps: utils-merge@1.0.0
-
-2.25.3 / 2014-08-07
-===================
-
- * deps: multiparty@3.3.2
- - Fix potential double-callback
-
-2.25.2 / 2014-08-07
-===================
-
- * deps: body-parser@~1.6.2
- - deps: qs@1.2.0
- * deps: qs@1.2.0
- - Fix parsing array of objects
-
-2.25.1 / 2014-08-06
-===================
-
- * deps: body-parser@~1.6.1
- - deps: qs@1.1.0
- * deps: qs@1.1.0
- - Accept urlencoded square brackets
- - Accept empty values in implicit array notation
-
-2.25.0 / 2014-08-05
-===================
-
- * deps: body-parser@~1.6.0
- - deps: qs@1.0.2
- * deps: compression@~1.0.10
- - Fix upper-case Content-Type characters prevent compression
- - deps: compressible@~1.1.1
- * deps: csurf@~1.4.0
- - Support changing `req.session` after `csurf` middleware
- - Calling `res.csrfToken()` after `req.session.destroy()` will now work
- * deps: express-session@~1.7.4
- - Fix `res.end` patch to call correct upstream `res.write`
- - Fix response end delay for non-chunked responses
- * deps: qs@1.0.2
- - Complete rewrite
- - Limits array length to 20
- - Limits object depth to 5
- - Limits parameters to 1,000
- * deps: serve-static@~1.5.0
- - Add `extensions` option
- - deps: send@0.8.1
-
-2.24.3 / 2014-08-04
-===================
-
- * deps: serve-index@~1.1.5
- - Fix Content-Length calculation for multi-byte file names
- - deps: accepts@~1.0.7
- * deps: serve-static@~1.4.4
- - Fix incorrect 403 on Windows and Node.js 0.11
- - deps: send@0.7.4
-
-2.24.2 / 2014-07-27
-===================
-
- * deps: body-parser@~1.5.2
- * deps: depd@0.4.4
- - Work-around v8 generating empty stack traces
- * deps: express-session@~1.7.2
- * deps: morgan@~1.2.2
- * deps: serve-static@~1.4.2
-
-2.24.1 / 2014-07-26
-===================
-
- * deps: body-parser@~1.5.1
- * deps: depd@0.4.3
- - Fix exception when global `Error.stackTraceLimit` is too low
- * deps: express-session@~1.7.1
- * deps: morgan@~1.2.1
- * deps: serve-index@~1.1.4
- * deps: serve-static@~1.4.1
-
-2.24.0 / 2014-07-22
-===================
-
- * deps: body-parser@~1.5.0
- - deps: depd@0.4.2
- - deps: iconv-lite@0.4.4
- - deps: raw-body@1.3.0
- - deps: type-is@~1.3.2
- * deps: compression@~1.0.9
- - Add `debug` messages
- - deps: accepts@~1.0.7
- * deps: connect-timeout@~1.2.1
- - Accept string for `time` (converted by `ms`)
- - deps: debug@1.0.4
- * deps: debug@1.0.4
- * deps: depd@0.4.2
- - Add `TRACE_DEPRECATION` environment variable
- - Remove non-standard grey color from color output
- - Support `--no-deprecation` argument
- - Support `--trace-deprecation` argument
- * deps: express-session@~1.7.0
- - Improve session-ending error handling
- - deps: debug@1.0.4
- - deps: depd@0.4.2
- * deps: finalhandler@0.1.0
- - Respond after request fully read
- - deps: debug@1.0.4
- * deps: method-override@~2.1.2
- - deps: debug@1.0.4
- - deps: parseurl@~1.2.0
- * deps: morgan@~1.2.0
- - Add `:remote-user` token
- - Add `combined` log format
- - Add `common` log format
- - Remove non-standard grey color from `dev` format
- * deps: multiparty@3.3.1
- * deps: parseurl@~1.2.0
- - Cache URLs based on original value
- - Remove no-longer-needed URL mis-parse work-around
- - Simplify the "fast-path" `RegExp`
- * deps: serve-static@~1.4.0
- - Add `dotfiles` option
- - deps: parseurl@~1.2.0
- - deps: send@0.7.0
-
-2.23.0 / 2014-07-10
-===================
-
- * deps: debug@1.0.3
- - Add support for multiple wildcards in namespaces
- * deps: express-session@~1.6.4
- * deps: method-override@~2.1.0
- - add simple debug output
- - deps: methods@1.1.0
- - deps: parseurl@~1.1.3
- * deps: parseurl@~1.1.3
- - faster parsing of href-only URLs
- * deps: serve-static@~1.3.1
- - deps: parseurl@~1.1.3
-
-2.22.0 / 2014-07-03
-===================
-
- * deps: csurf@~1.3.0
- - Fix `cookie.signed` option to actually sign cookie
- * deps: express-session@~1.6.1
- - Fix `res.end` patch to return correct value
- - Fix `res.end` patch to handle multiple `res.end` calls
- - Reject cookies with missing signatures
- * deps: multiparty@3.3.0
- - Always emit close after all parts ended
- - Fix callback hang in node.js 0.8 on errors
- * deps: serve-static@~1.3.0
- - Accept string for `maxAge` (converted by `ms`)
- - Add `setHeaders` option
- - Include HTML link in redirect response
- - deps: send@0.5.0
-
-2.21.1 / 2014-06-26
-===================
-
- * deps: cookie-parser@1.3.2
- - deps: cookie-signature@1.0.4
- * deps: cookie-signature@1.0.4
- - fix for timing attacks
- * deps: express-session@~1.5.2
- - deps: cookie-signature@1.0.4
- * deps: type-is@~1.3.2
- - more mime types
-
-2.21.0 / 2014-06-20
-===================
-
- * deprecate `connect(middleware)` -- use `app.use(middleware)` instead
- * deprecate `connect.createServer()` -- use `connect()` instead
- * fix `res.setHeader()` patch to work with get -> append -> set pattern
- * deps: compression@~1.0.8
- * deps: errorhandler@~1.1.1
- * deps: express-session@~1.5.0
- - Deprecate integration with `cookie-parser` middleware
- - Deprecate looking for secret in `req.secret`
- - Directly read cookies; `cookie-parser` no longer required
- - Directly set cookies; `res.cookie` no longer required
- - Generate session IDs with `uid-safe`, faster and even less collisions
- * deps: serve-index@~1.1.3
-
-2.20.2 / 2014-06-19
-===================
-
- * deps: body-parser@1.4.3
- - deps: type-is@1.3.1
-
-2.20.1 / 2014-06-19
-===================
-
- * deps: type-is@1.3.1
- - fix global variable leak
-
-2.20.0 / 2014-06-19
-===================
-
- * deprecate `verify` option to `json` -- use `body-parser` npm module instead
- * deprecate `verify` option to `urlencoded` -- use `body-parser` npm module instead
- * deprecate things with `depd` module
- * use `finalhandler` for final response handling
- * use `media-typer` to parse `content-type` for charset
- * deps: body-parser@1.4.2
- - check accepted charset in content-type (accepts utf-8)
- - check accepted encoding in content-encoding (accepts identity)
- - deprecate `urlencoded()` without provided `extended` option
- - lazy-load urlencoded parsers
- - support gzip and deflate bodies
- - set `inflate: false` to turn off
- - deps: raw-body@1.2.2
- - deps: type-is@1.3.0
- - Support all encodings from `iconv-lite`
- * deps: connect-timeout@1.1.1
- - deps: debug@1.0.2
- * deps: cookie-parser@1.3.1
- - export parsing functions
- - `req.cookies` and `req.signedCookies` are now plain objects
- - slightly faster parsing of many cookies
- * deps: csurf@1.2.2
- * deps: errorhandler@1.1.0
- - Display error on console formatted like `throw`
- - Escape HTML in stack trace
- - Escape HTML in title
- - Fix up edge cases with error sent in response
- - Set `X-Content-Type-Options: nosniff` header
- - Use accepts for negotiation
- * deps: express-session@1.4.0
- - Add `genid` option to generate custom session IDs
- - Add `saveUninitialized` option to control saving uninitialized sessions
- - Add `unset` option to control unsetting `req.session`
- - Generate session IDs with `rand-token` by default; reduce collisions
- - Integrate with express "trust proxy" by default
- - deps: buffer-crc32@0.2.3
- - deps: debug@1.0.2
- * deps: multiparty@3.2.9
- * deps: serve-index@1.1.2
- - deps: batch@0.5.1
- * deps: type-is@1.3.0
- - improve type parsing
- * deps: vhost@2.0.0
- - Accept `RegExp` object for `hostname`
- - Provide `req.vhost` object
- - Support IPv6 literal in `Host` header
-
-2.19.6 / 2014-06-11
-===================
-
- * deps: body-parser@1.3.1
- - deps: type-is@1.2.1
- * deps: compression@1.0.7
- - use vary module for better `Vary` behavior
- - deps: accepts@1.0.3
- - deps: compressible@1.1.0
- * deps: debug@1.0.2
- * deps: serve-index@1.1.1
- - deps: accepts@1.0.3
- * deps: serve-static@1.2.3
- - Do not throw un-catchable error on file open race condition
- - deps: send@0.4.3
-
-2.19.5 / 2014-06-09
-===================
-
- * deps: csurf@1.2.1
- - refactor to use csrf-tokens@~1.0.2
- * deps: debug@1.0.1
- * deps: serve-static@1.2.2
- - fix "event emitter leak" warnings
- - deps: send@0.4.2
- * deps: type-is@1.2.1
- - Switch dependency from `mime` to `mime-types@1.0.0`
-
-2.19.4 / 2014-06-05
-===================
-
- * deps: errorhandler@1.0.2
- - Pass on errors from reading error files
- * deps: method-override@2.0.2
- - use vary module for better `Vary` behavior
- * deps: serve-favicon@2.0.1
- - Reduce byte size of `ETag` header
-
-2.19.3 / 2014-06-03
-===================
-
- * deps: compression@1.0.6
- - fix listeners for delayed stream creation
- - fix regression for certain `stream.pipe(res)` situations
- - fix regression when negotiation fails
-
-2.19.2 / 2014-06-03
-===================
-
- * deps: compression@1.0.4
- - fix adding `Vary` when value stored as array
- - fix back-pressure behavior
- - fix length check for `res.end`
-
-2.19.1 / 2014-06-02
-===================
-
- * fix deprecated `utils.escape`
-
-2.19.0 / 2014-06-02
-===================
-
- * deprecate `methodOverride()` -- use `method-override` npm module instead
- * deps: body-parser@1.3.0
- - add `extended` option to urlencoded parser
- * deps: method-override@2.0.1
- - set `Vary` header
- - deps: methods@1.0.1
- * deps: multiparty@3.2.8
- * deps: response-time@2.0.0
- - add `digits` argument
- - do not override existing `X-Response-Time` header
- - timer not subject to clock drift
- - timer resolution down to nanoseconds
- * deps: serve-static@1.2.1
- - send max-age in Cache-Control in correct format
- - use `escape-html` for escaping
- - deps: send@0.4.1
-
-2.18.0 / 2014-05-29
-===================
-
- * deps: compression@1.0.3
- * deps: serve-index@1.1.0
- - Fix content negotiation when no `Accept` header
- - Properly support all HTTP methods
- - Support vanilla node.js http servers
- - Treat `ENAMETOOLONG` as code 414
- - Use accepts for negotiation
- * deps: serve-static@1.2.0
- - Calculate ETag with md5 for reduced collisions
- - Fix wrong behavior when index file matches directory
- - Ignore stream errors after request ends
- - Skip directories in index file search
- - deps: send@0.4.0
-
-2.17.3 / 2014-05-27
-===================
-
- * deps: express-session@1.2.1
- - Fix `resave` such that `resave: true` works
-
-2.17.2 / 2014-05-27
-===================
-
- * deps: body-parser@1.2.2
- - invoke `next(err)` after request fully read
- - deps: raw-body@1.1.6
- * deps: method-override@1.0.2
- - Handle `req.body` key referencing array or object
- - Handle multiple HTTP headers
-
-2.17.1 / 2014-05-21
-===================
-
- * fix `res.charset` appending charset when `content-type` has one
-
-2.17.0 / 2014-05-20
-===================
-
- * deps: express-session@1.2.0
- - Add `resave` option to control saving unmodified sessions
- * deps: morgan@1.1.1
- - "dev" format will use same tokens as other formats
- - `:response-time` token is now empty when immediate used
- - `:response-time` token is now monotonic
- - `:response-time` token has precision to 1 μs
- - fix `:status` + immediate output in node.js 0.8
- - improve `buffer` option to prevent indefinite event loop holding
- - simplify method to get remote address
- - deps: bytes@1.0.0
- * deps: serve-index@1.0.3
- - Fix error from non-statable files in HTML view
-
-2.16.2 / 2014-05-18
-===================
-
- * fix edge-case in `res.appendHeader` that would append in wrong order
- * deps: method-override@1.0.1
-
-2.16.1 / 2014-05-17
-===================
-
- * remove usages of `res.headerSent` from core
-
-2.16.0 / 2014-05-17
-===================
-
- * deprecate `res.headerSent` -- use `res.headersSent`
- * deprecate `res.on("header")` -- use on-headers module instead
- * fix `connect.version` to reflect the actual version
- * json: use body-parser
- - add `type` option
- - fix repeated limit parsing with every request
- - improve parser speed
- * urlencoded: use body-parser
- - add `type` option
- - fix repeated limit parsing with every request
- * dep: bytes@1.0.0
- * add negative support
- * dep: cookie-parser@1.1.0
- - deps: cookie@0.1.2
- * dep: csurf@1.2.0
- - add support for double-submit cookie
- * dep: express-session@1.1.0
- - Add `name` option; replacement for `key` option
- - Use `setImmediate` in MemoryStore for node.js >= 0.10
-
-2.15.0 / 2014-05-04
-===================
-
- * Add simple `res.cookie` support
- * Add `res.appendHeader`
- * Call error stack even when response has been sent
- * Patch `res.headerSent` to return Boolean
- * Patch `res.headersSent` for node.js 0.8
- * Prevent default 404 handler after response sent
- * dep: compression@1.0.2
- * support headers given to `res.writeHead`
- * deps: bytes@0.3.0
- * deps: negotiator@0.4.3
- * dep: connect-timeout@1.1.0
- * Add `req.timedout` property
- * Add `respond` option to constructor
- * Clear timer on socket destroy
- * deps: debug@0.8.1
- * dep: debug@^0.8.0
- * add `enable()` method
- * change from stderr to stdout
- * dep: errorhandler@1.0.1
- * Clean up error CSS
- * Do not respond after headers sent
- * dep: express-session@1.0.4
- * Remove import of `setImmediate`
- * Use `res.cookie()` instead of `res.setHeader()`
- * deps: cookie@0.1.2
- * deps: debug@0.8.1
- * dep: morgan@1.0.1
- * Make buffer unique per morgan instance
- * deps: bytes@0.3.0
- * dep: serve-favicon@2.0.0
- * Accept `Buffer` of icon as first argument
- * Non-GET and HEAD requests are denied
- * Send valid max-age value
- * Support conditional requests
- * Support max-age=0
- * Support OPTIONS method
- * Throw if `path` argument is directory
- * dep: serve-index@1.0.2
- * Add stylesheet option
- * deps: negotiator@0.4.3
-
-2.14.5 / 2014-04-24
-===================
-
- * dep: raw-body@1.1.4
- * allow true as an option
- * deps: bytes@0.3.0
- * dep: serve-static@1.1.0
- * Accept options directly to `send` module
- * deps: send@0.3.0
-
-2.14.4 / 2014-04-07
-===================
-
- * dep: bytes@0.3.0
- * added terabyte support
- * dep: csurf@1.1.0
- * add constant-time string compare
- * dep: serve-static@1.0.4
- * Resolve relative paths at middleware setup
- * Use parseurl to parse the URL from request
- * fix node.js 0.8 compatibility with memory session
-
-2.14.3 / 2014-03-18
-===================
-
- * dep: static-favicon@1.0.2
- * Fixed content of default icon
-
-2.14.2 / 2014-03-11
-===================
-
- * dep: static-favicon@1.0.1
- * Fixed path to default icon
-
-2.14.1 / 2014-03-06
-===================
-
- * dep: fresh@0.2.2
- * no real changes
- * dep: serve-index@1.0.1
- * deps: negotiator@0.4.2
- * dep: serve-static@1.0.2
- * deps: send@0.2.0
-
-2.14.0 / 2014-03-05
-===================
-
- * basicAuth: use basic-auth-connect
- * cookieParser: use cookie-parser
- * compress: use compression
- * csrf: use csurf
- * dep: cookie-signature@1.0.3
- * directory: use serve-index
- * errorHandler: use errorhandler
- * favicon: use static-favicon
- * logger: use morgan
- * methodOverride: use method-override
- * responseTime: use response-time
- * session: use express-session
- * static: use serve-static
- * timeout: use connect-timeout
- * vhost: use vhost
-
-2.13.1 / 2014-03-05
-===================
-
- * cookieSession: compare full value rather than crc32
- * deps: raw-body@1.1.3
-
-2.13.0 / 2014-02-14
-===================
-
- * fix typo in memory store warning #974 @rvagg
- * compress: use compressible
- * directory: add template option #990 @gottaloveit @Earl-Brown
- * csrf: prevent deprecated warning with old sessions
-
-2.12.0 / 2013-12-10
-===================
-
- * bump qs
- * directory: sort folders before files
- * directory: add folder icons
- * directory: de-duplicate icons, details/mobile views #968 @simov
- * errorHandler: end default 404 handler with a newline #972 @rlidwka
- * session: remove long cookie expire check #870 @undoZen
-
-2.11.2 / 2013-12-01
-===================
-
- * bump raw-body
-
-2.11.1 / 2013-11-27
-===================
-
- * bump raw-body
- * errorHandler: use `res.setHeader()` instead of `res.writeHead()` #949 @lo1tuma
-
-2.11.0 / 2013-10-29
-===================
-
- * update bytes
- * update uid2
- * update negotiator
- * sessions: add rolling session option #944 @ilmeo
- * sessions: property set cookies when given FQDN
- * cookieSessions: properly set cookies when given FQDN #948 @bmancini55
- * proto: fix FQDN mounting when multiple handlers #945 @bmancini55
-
-2.10.1 / 2013-10-23
-===================
-
- * fixed; fixed a bug with static middleware at root and trailing slashes #942 (@dougwilson)
-
-2.10.0 / 2013-10-22
-===================
-
- * fixed: set headers written by writeHead before emitting 'header'
- * fixed: mounted path should ignore querystrings on FQDNs #940 (@dougwilson)
- * fixed: parsing protocol-relative URLs with @ as pathnames #938 (@dougwilson)
- * fixed: fix static directory redirect for mount's root #937 (@dougwilson)
- * fixed: setting set-cookie header when mixing arrays and strings #893 (@anuj123)
- * bodyParser: optional verify function for urlencoded and json parsers for signing request bodies
- * compress: compress checks content-length to check threshold
- * compress: expose `res.flush()` for flushing responses
- * cookieParser: pass options into node-cookie #803 (@cauldrath)
- * errorHandler: replace `\n`s with `<br/>`s in error handler
-
-2.9.2 / 2013-10-18
-==================
-
- * warn about multiparty and limit middleware deprecation for v3
- * fix fully qualified domain name mounting. #920 (@dougwilson)
- * directory: Fix potential security issue with serving files outside the root. #929 (@dougwilson)
- * logger: store IP at beginning in case socket prematurely closes #930 (@dougwilson)
-
-2.9.1 / 2013-10-15
-==================
-
- * update multiparty
- * compress: Set vary header only if Content-Type passes filter #904
- * directory: Fix directory middleware URI escaping #917 (@dougwilson)
- * directory: Fix directory seperators for Windows #914 (@dougwilson)
- * directory: Keep query string intact during directory redirect #913 (@dougwilson)
- * directory: Fix paths in links #730 (@JacksonTian)
- * errorHandler: Don't escape text/plain as HTML #875 (@johan)
- * logger: Write '0' instead of '-' when response time is zero #910 (@dougwilson)
- * logger: Log even when connections are aborted #760 (@dylanahsmith)
- * methodOverride: Check req.body is an object #907 (@kbjr)
- * multipart: Add .type back to file parts for backwards compatibility #912 (@dougwilson)
- * multipart: Allow passing options to the Multiparty constructor #902 (@niftylettuce)
-
-2.9.0 / 2013-09-07
-==================
-
- * multipart: add docs regarding tmpfiles
- * multipart: add .name back to file parts
- * multipart: use multiparty instead of formidable
-
-2.8.8 / 2013-09-02
-==================
-
- * csrf: change to math.random() salt and remove csrfToken() callback
-
-2.8.7 / 2013-08-28
-==================
-
- * csrf: prevent salt generation on every request, and add async req.csrfToken(fn)
-
-2.8.6 / 2013-08-28
-==================
-
- * csrf: refactor to use HMAC tokens (BREACH attack)
- * compress: add compression of SVG and common font files by default.
-
-2.8.5 / 2013-08-11
-==================
-
- * add: compress Dart source files by default
- * update fresh
-
-2.8.4 / 2013-07-08
-==================
-
- * update send
-
-2.8.3 / 2013-07-04
-==================
-
- * add a name back to static middleware ("staticMiddleware")
- * fix .hasBody() utility to require transfer-encoding or content-length
-
-2.8.2 / 2013-07-03
-==================
-
- * update send
- * update cookie dep.
- * add better debug() for middleware
- * add whitelisting of supported methods to methodOverride()
-
-2.8.1 / 2013-06-27
-==================
-
- * fix: escape req.method in 404 response
-
-2.8.0 / 2013-06-26
-==================
-
- * add `threshold` option to `compress()` to prevent compression of small responses
- * add support for vendor JSON mime types in json()
- * add X-Forwarded-Proto initial https proxy support
- * change static redirect to 303
- * change octal escape sequences for strict mode
- * change: replace utils.uid() with uid2 lib
- * remove other "static" function name. Fixes #794
- * fix: hasBody() should return false if Content-Length: 0
-
-2.7.11 / 2013-06-02
-==================
-
- * update send
-
-2.7.10 / 2013-05-21
-==================
-
- * update qs
- * update formidable
- * fix: write/end to noop() when request aborted
-
-2.7.9 / 2013-05-07
-==================
-
- * update qs
- * drop support for node < v0.8
-
-2.7.8 / 2013-05-03
-==================
-
- * update qs
-
-2.7.7 / 2013-04-29
-==================
-
- * update qs dependency
- * remove "static" function name. Closes #794
- * update node-formidable
- * update buffer-crc32
-
-2.7.6 / 2013-04-15
-==================
-
- * revert cookie signature which was creating session race conditions
-
-2.7.5 / 2013-04-12
-==================
-
- * update cookie-signature
- * limit: do not consume request in node 0.10.x
-
-2.7.4 / 2013-04-01
-==================
-
- * session: add long expires check and prevent excess set-cookie
- * session: add console.error() of session#save() errors
-
-2.7.3 / 2013-02-19
-==================
-
- * add name to compress middleware
- * add appending Accept-Encoding to Vary when set but missing
- * add tests for csrf middleware
- * add 'next' support for connect() server handler
- * change utils.uid() to return url-safe chars. Closes #753
- * fix treating '.' as a regexp in vhost()
- * fix duplicate bytes dep in package.json. Closes #743
- * fix #733 - parse x-forwarded-proto in a more generally compatibly way
- * revert "add support for `next(status[, msg])`"; makes composition hard
-
-2.7.2 / 2013-01-04
-==================
-
- * add support for `next(status[, msg])` back
- * add utf-8 meta tag to support foreign characters in filenames/directories
- * change `timeout()` 408 to 503
- * replace 'node-crc' with 'buffer-crc32', fixes licensing
- * fix directory.html IE support
-
-2.7.1 / 2012-12-05
-==================
-
- * add directory() tests
- * add support for bodyParser to ignore Content-Type if no body is present (jquery primarily does this poorely)
- * fix errorHandler signature
-
-2.7.0 / 2012-11-13
-==================
-
- * add support for leading JSON whitespace
- * add logging of `req.ip` when present
- * add basicAuth support for `:`-delimited string
- * update cookie module. Closes #688
-
-2.6.2 / 2012-11-01
-==================
-
- * add `debug()` for disconnected session store
- * fix session regeneration bug. Closes #681
-
-2.6.1 / 2012-10-25
-==================
-
- * add passing of `connect.timeout()` errors to `next()`
- * replace signature utils with cookie-signature module
-
-2.6.0 / 2012-10-09
-==================
-
- * add `defer` option to `multipart()` [Blake Miner]
- * fix mount path case sensitivity. Closes #663
- * fix default of ascii encoding from `logger()`, now utf8. Closes #293
-
-2.5.0 / 2012-09-27
-==================
-
- * add `err.status = 400` to multipart() errors
- * add double-encoding protection to `compress()`. Closes #659
- * add graceful handling cookie parsing errors [shtylman]
- * fix typo X-Response-time to X-Response-Time
-
-2.4.6 / 2012-09-18
-==================
-
- * update qs
-
-2.4.5 / 2012-09-03
-==================
-
- * add session store "connect" / "disconnect" support [louischatriot]
- * fix `:url` log token
-
-2.4.4 / 2012-08-21
-==================
-
- * fix `static()` pause regression from "send" integration
-
-2.4.3 / 2012-08-07
-==================
-
- * fix `.write()` encoding for zlib inconstancy. Closes #561
-
-2.4.2 / 2012-07-25
-==================
-
- * remove limit default from `urlencoded()`
- * remove limit default from `json()`
- * remove limit default from `multipart()`
- * fix `cookieSession()` clear cookie path / domain bug. Closes #636
-
-2.4.1 / 2012-07-24
-==================
-
- * fix `options` mutation in `static()`
-
-2.4.0 / 2012-07-23
-==================
-
- * add `connect.timeout()`
- * add __GET__ / __HEAD__ check to `directory()`. Closes #634
- * add "pause" util dep
- * update send dep for normalization bug
-
-2.3.9 / 2012-07-16
-==================
-
- * add more descriptive invalid json error message
- * update send dep for root normalization regression
- * fix staticCache fresh dep
-
-2.3.8 / 2012-07-12
-==================
-
- * fix `connect.static()` 404 regression, pass `next()`. Closes #629
-
-2.3.7 / 2012-07-05
-==================
-
- * add `json()` utf-8 illustration test. Closes #621
- * add "send" dependency
- * change `connect.static()` internals to use "send"
- * fix `session()` req.session generation with pathname mismatch
- * fix `cookieSession()` req.session generation with pathname mismatch
- * fix mime export. Closes #618
-
-2.3.6 / 2012-07-03
-==================
-
- * Fixed cookieSession() with cookieParser() secret regression. Closes #602
- * Fixed set-cookie header fields on cookie.path mismatch. Closes #615
-
-2.3.5 / 2012-06-28
-==================
-
- * Remove `logger()` mount check
- * Fixed `staticCache()` dont cache responses with set-cookie. Closes #607
- * Fixed `staticCache()` when Cookie is present
-
-2.3.4 / 2012-06-22
-==================
-
- * Added `err.buf` to urlencoded() and json()
- * Update cookie to 0.0.4. Closes #604
- * Fixed: only send 304 if original response in 2xx or 304 [timkuijsten]
-
-2.3.3 / 2012-06-11
-==================
-
- * Added ETags back to `static()` [timkuijsten]
- * Replaced `utils.parseRange()` with `range-parser` module
- * Replaced `utils.parseBytes()` with `bytes` module
- * Replaced `utils.modified()` with `fresh` module
- * Fixed `cookieSession()` regression with invalid cookie signing [shtylman]
-
-2.3.2 / 2012-06-08
-==================
-
- * expose mime module
- * Update crc dep (which bundled nodeunit)
-
-2.3.1 / 2012-06-06
-==================
-
- * Added `secret` option to `cookieSession` middleware [shtylman]
- * Added `secret` option to `session` middleware [shtylman]
- * Added `req.remoteUser` back to `basicAuth()` as alias of `req.user`
- * Performance: improve signed cookie parsing
- * Update `cookie` dependency [shtylman]
-
-2.3.0 / 2012-05-20
-==================
-
- * Added limit option to `json()`
- * Added limit option to `urlencoded()`
- * Added limit option to `multipart()`
- * Fixed: remove socket error event listener on callback
- * Fixed __ENOTDIR__ error on `static` middleware
-
-2.2.2 / 2012-05-07
-==================
-
- * Added support to csrf middle for pre-flight CORS requests
- * Updated `engines` to allow newer version of node
- * Removed duplicate repo prop. Closes #560
-
-2.2.1 / 2012-04-28
-==================
-
- * Fixed `static()` redirect when mounted. Closes #554
-
-2.2.0 / 2012-04-25
-==================
-
- * Added `make benchmark`
- * Perf: memoize url parsing (~20% increase)
- * Fixed `connect(fn, fn2, ...)`. Closes #549
-
-2.1.3 / 2012-04-20
-==================
-
- * Added optional json() `reviver` function to be passed to JSON.parse [jed]
- * Fixed: emit drain in compress middleware [nsabovic]
-
-2.1.2 / 2012-04-11
-==================
-
- * Fixed cookieParser() `req.cookies` regression
-
-2.1.1 / 2012-04-11
-==================
-
- * Fixed `session()` browser-session length cookies & examples
- * Fixed: make `query()` "self-aware" [jed]
-
-2.1.0 / 2012-04-05
-==================
-
- * Added `debug()` calls to `.use()` (`DEBUG=connect:displatcher`)
- * Added `urlencoded()` support for GET
- * Added `json()` support for GET. Closes #497
- * Added `strict` option to `json()`
- * Changed: `session()` only set-cookie when modified
- * Removed `Session#lastAccess` property. Closes #399
-
-2.0.3 / 2012-03-20
-==================
-
- * Added: `cookieSession()` only sets cookie on change. Closes #442
- * Added `connect:dispatcher` debug() probes
-
-2.0.2 / 2012-03-04
-==================
-
- * Added test for __ENAMETOOLONG__ now that node is fixed
- * Fixed static() index "/" check on windows. Closes #498
- * Fixed Content-Range behaviour to match RFC2616 [matthiasdg / visionmedia]
-
-2.0.1 / 2012-02-29
-==================
-
- * Added test coverage for `vhost()` middleware
- * Changed `cookieParser()` signed cookie support to use SHA-2 [senotrusov]
- * Fixed `static()` Range: respond with 416 when unsatisfiable
- * Fixed `vhost()` middleware. Closes #494
-
-2.0.0 / 2011-10-05
-==================
-
- * Added `cookieSession()` middleware for cookie-only sessions
- * Added `compress()` middleware for gzip / deflate support
- * Added `session()` "proxy" setting to trust `X-Forwarded-Proto`
- * Added `json()` middleware to parse "application/json"
- * Added `urlencoded()` middleware to parse "application/x-www-form-urlencoded"
- * Added `multipart()` middleware to parse "multipart/form-data"
- * Added `cookieParser(secret)` support so anything using this middleware may access signed cookies
- * Added signed cookie support to `cookieParser()`
- * Added support for JSON-serialized cookies to `cookieParser()`
- * Added `err.status` support in Connect's default end-point
- * Added X-Cache MISS / HIT to `staticCache()`
- * Added public `res.headerSent` checking nodes `res._headerSent` until node does
- * Changed `basicAuth()` req.remoteUser to req.user
- * Changed: default `session()` to a browser-session cookie. Closes #475
- * Changed: no longer lowercase cookie names
- * Changed `bodyParser()` to use `json()`, `urlencoded()`, and `multipart()`
- * Changed: `errorHandler()` is now a development-only middleware
- * Changed middleware to `next()` errors when possible so applications can unify logging / handling
- * Removed `http[s].Server` inheritance, now just a function, making it easy to have an app providing both http and https
- * Removed `.createServer()` (use `connect()`)
- * Removed `secret` option from `session()`, use `cookieParser(secret)`
- * Removed `connect.session.ignore` array support
- * Removed `router()` middleware. Closes #262
- * Fixed: set-cookie only once for browser-session cookies
- * Fixed FQDN support. dont add leading "/"
- * Fixed 404 XSS attack vector. Closes #473
- * Fixed __HEAD__ support for 404s and 500s generated by Connect's end-point
-
-1.8.5 / 2011-12-22
-==================
-
- * Fixed: actually allow empty body for json
-
-1.8.4 / 2011-12-22
-==================
-
- * Changed: allow empty body for json/urlencoded requests. Backport for #443
-
-1.8.3 / 2011-12-16
-==================
-
- * Fixed `static()` _index.html_ support on windows
-
-1.8.2 / 2011-12-03
-==================
-
- * Fixed potential security issue, store files in req.files. Closes #431 [reported by dobesv]
-
-1.8.1 / 2011-11-21
-==================
-
- * Added nesting support for _multipart/form-data_ [jackyz]
-
-1.8.0 / 2011-11-17
-==================
-
- * Added _multipart/form-data_ support to `bodyParser()` using formidable
-
-1.7.3 / 2011-11-11
-==================
-
- * Fixed `req.body`, always default to {}
- * Fixed HEAD support for 404s and 500s
-
-1.7.2 / 2011-10-24
-==================
-
- * "node": ">= 0.4.1 < 0.7.0"
- * Added `static()` redirect option. Closes #398
- * Changed `limit()`: respond with 413 when content-length exceeds the limit
- * Removed socket error listener in static(). Closes #389
- * Fixed `staticCache()` Age header field
- * Fixed race condition causing errors reported in #329.
-
-1.7.1 / 2011-09-12
-==================
-
- * Added: make `Store` inherit from `EventEmitter`
- * Added session `Store#load(sess, fn)` to fetch a `Session` instance
- * Added backpressure support to `staticCache()`
- * Changed `res.socket.destroy()` to `req.socket.destroy()`
-
-1.7.0 / 2011-08-31
-==================
-
- * Added `staticCache()` middleware, a memory cache for `static()`
- * Added public `res.headerSent` checking nodes `res._headerSent` (remove when node adds this)
- * Changed: ignore error handling middleware when header is sent
- * Changed: dispatcher errors after header is sent destroy the sock
-
-1.6.4 / 2011-08-26
-==================
-
- * Revert "Added double-next reporting"
-
-1.6.3 / 2011-08-26
-==================
-
- * Added double-`next()` reporting
- * Added `immediate` option to `logger()`. Closes #321
- * Dependency `qs >= 0.3.1`
-
-1.6.2 / 2011-08-11
-==================
-
- * Fixed `connect.static()` null byte vulnerability
- * Fixed `connect.directory()` null byte vulnerability
- * Changed: 301 redirect in `static()` to postfix "/" on directory. Closes #289
-
-1.6.1 / 2011-08-03
-==================
-
- * Added: allow retval `== null` from logger callback to ignore line
- * Added `getOnly` option to `connect.static.send()`
- * Added response "header" event allowing augmentation
- * Added `X-CSRF-Token` header field check
- * Changed dep `qs >= 0.3.0`
- * Changed: persist csrf token. Closes #322
- * Changed: sort directory middleware files alphabetically
-
-1.6.0 / 2011-07-10
-==================
-
- * Added :response-time to "dev" logger format
- * Added simple `csrf()` middleware. Closes #315
- * Fixed `res._headers` logger regression. Closes #318
- * Removed support for multiple middleware being passed to `.use()`
-
-1.5.2 / 2011-07-06
-==================
-
- * Added `filter` function option to `directory()` [David Rio Deiros]
- * Changed: re-write of the `logger()` middleware, with extensible tokens and formats
- * Changed: `static.send()` ".." in path without root considered malicious
- * Fixed quotes in docs. Closes #312
- * Fixed urls when mounting `directory()`, use `originalUrl` [Daniel Dickison]
-
-
-1.5.1 / 2011-06-20
-==================
-
- * Added malicious path check to `directory()` middleware
- * Added `utils.forbidden(res)`
- * Added `connect.query()` middleware
-
-1.5.0 / 2011-06-20
-==================
-
- * Added `connect.directory()` middleware for serving directory listings
-
-1.4.6 / 2011-06-18
-==================
-
- * Fixed `connect.static()` root with `..`
- * Fixed `connect.static()` __EBADF__
-
-1.4.5 / 2011-06-17
-==================
-
- * Fixed EBADF in `connect.static()`. Closes #297
-
-1.4.4 / 2011-06-16
-==================
-
- * Changed `connect.static()` to check resolved dirname. Closes #294
-
-1.4.3 / 2011-06-06
-==================
-
- * Fixed fd leak in `connect.static()` when the socket is closed
- * Fixed; `bodyParser()` ignoring __GET/HEAD__. Closes #285
-
-1.4.2 / 2011-05-27
-==================
-
- * Changed to `devDependencies`
- * Fixed stream creation on `static()` __HEAD__ request. [Andreas Lind Petersen]
- * Fixed Win32 support for `static()`
- * Fixed monkey-patch issue. Closes #261
-
-1.4.1 / 2011-05-08
-==================
-
- * Added "hidden" option to `static()`. ignores hidden files by default. Closes * Added; expose `connect.static.mime.define()`. Closes #251
- * Fixed `errorHandler` middleware for missing stack traces. [aseemk]
-#274
-
-1.4.0 / 2011-04-25
-==================
-
- * Added route-middleware `next('route')` support to jump passed the route itself
- * Added Content-Length support to `limit()`
- * Added route-specific middleware support (used to be in express)
- * Changed; refactored duplicate session logic
- * Changed; prevent redefining `store.generate` per request
- * Fixed; `static()` does not set Content-Type when explicitly set [nateps]
- * Fixed escape `errorHandler()` {error} contents
- * NOTE: `router` will be removed in 2.0
-
-
-1.3.0 / 2011-04-06
-==================
-
- * Added `router.remove(path[, method])` to remove a route
-
-1.2.3 / 2011-04-05
-==================
-
- * Fixed basicAuth realm issue when passing strings. Closes #253
-
-1.2.2 / 2011-04-05
-==================
-
- * Added `basicAuth(username, password)` support
- * Added `errorHandler.title` defaulting to "Connect"
- * Changed `errorHandler` css
-
-1.2.1 / 2011-03-30
-==================
-
- * Fixed `logger()` https `remoteAddress` logging [Alexander Simmerl]
-
-1.2.0 / 2011-03-30
-==================
-
- * Added `router.lookup(path[, method])`
- * Added `router.match(url[, method])`
- * Added basicAuth async support. Closes #223
-
-1.1.5 / 2011-03-27
-==================
-
- * Added; allow `logger()` callback function to return an empty string to ignore logging
- * Fixed; utilizing `mime.charsets.lookup()` for `static()`. Closes 245
-
-1.1.4 / 2011-03-23
-==================
-
- * Added `logger()` support for format function
- * Fixed `logger()` to support mess of writeHead()/progressive api for node 0.4.x
-
-1.1.3 / 2011-03-21
-==================
-
- * Changed; `limit()` now calls `req.destroy()`
-
-1.1.2 / 2011-03-21
-==================
-
- * Added request "limit" event to `limit()` middleware
- * Changed; `limit()` middleware will `next(err)` on failure
-
-1.1.1 / 2011-03-18
-==================
-
- * Fixed session middleware for HTTPS. Closes #241 [reported by mt502]
-
-1.1.0 / 2011-03-17
-==================
-
- * Added `Session#reload(fn)`
-
-1.0.6 / 2011-03-09
-==================
-
- * Fixed `res.setHeader()` patch, preserve casing
-
-1.0.5 / 2011-03-09
-==================
-
- * Fixed; `logger()` using `req.originalUrl` instead of `req.url`
-
-1.0.4 / 2011-03-09
-==================
-
- * Added `res.charset`
- * Added conditional sessions example
- * Added support for `session.ignore` to be replaced. Closes #227
- * Fixed `Cache-Control` delimiters. Closes #228
-
-1.0.3 / 2011-03-03
-==================
-
- * Fixed; `static.send()` invokes callback with connection error
-
-1.0.2 / 2011-03-02
-==================
-
- * Fixed exported connect function
- * Fixed package.json; node ">= 0.4.1 < 0.5.0"
-
-1.0.1 / 2011-03-02
-==================
-
- * Added `Session#save(fn)`. Closes #213
- * Added callback support to `connect.static.send()` for express
- * Added `connect.static.send()` "path" option
- * Fixed content-type in `static()` for _index.html_
-
-1.0.0 / 2011-03-01
-==================
-
- * Added `stack`, `message`, and `dump` errorHandler option aliases
- * Added `req.originalMethod` to methodOverride
- * Added `favicon()` maxAge option support
- * Added `connect()` alternative to `connect.createServer()`
- * Added new [documentation](http://senchalabs.github.com/connect)
- * Added Range support to `static()`
- * Added HTTPS support
- * Rewrote session middleware. The session API now allows for
- session-specific cookies, so you may alter each individually.
- Click to view the new [session api](http://senchalabs.github.com/connect/middleware-session.html).
- * Added middleware self-awareness. This helps prevent
- middleware breakage when used within mounted servers.
- For example `cookieParser()` will not parse cookies more
- than once even when within a mounted server.
- * Added new examples in the `./examples` directory
- * Added [limit()](http://senchalabs.github.com/connect/middleware-limit.html) middleware
- * Added [profiler()](http://senchalabs.github.com/connect/middleware-profiler.html) middleware
- * Added [responseTime()](http://senchalabs.github.com/connect/middleware-responseTime.html) middleware
- * Renamed `staticProvider` to `static`
- * Renamed `bodyDecoder` to `bodyParser`
- * Renamed `cookieDecoder` to `cookieParser`
- * Fixed ETag quotes. [reported by papandreou]
- * Fixed If-None-Match comma-delimited ETag support. [reported by papandreou]
- * Fixed; only set req.originalUrl once. Closes #124
- * Fixed symlink support for `static()`. Closes #123
-
-0.5.10 / 2011-02-14
-==================
-
- * Fixed SID space issue. Closes #196
- * Fixed; proxy `res.end()` to commit session data
- * Fixed directory traversal attack in `staticProvider`. Closes #198
-
-0.5.9 / 2011-02-09
-==================
-
- * qs >= 0.0.4
-
-0.5.8 / 2011-02-04
-==================
-
- * Added `qs` dependency
- * Fixed router race-condition causing possible failure
- when `next()`ing to one or more routes with parallel
- requests
-
-0.5.7 / 2011-02-01
-==================
-
- * Added `onvhost()` call so Express (and others) can know when they are
- * Revert "Added stylus support" (use the middleware which ships with stylus)
- * Removed custom `Server#listen()` to allow regular `http.Server#listen()` args to work properly
- * Fixed long standing router issue (#83) that causes '.' to be disallowed within named placeholders in routes [Andreas Lind Petersen]
- * Fixed `utils.uid()` length error [Jxck]
-mounted
-
-0.5.6 / 2011-01-23
-==================
-
- * Added stylus support to `compiler`
- * _favicon.js_ cleanup
- * _compiler.js_ cleanup
- * _bodyDecoder.js_ cleanup
-
-0.5.5 / 2011-01-13
-==================
-
- * Changed; using sha256 HMAC instead of md5. [Paul Querna]
- * Changed; generated a longer random UID, without time influence. [Paul Querna]
- * Fixed; session middleware throws when secret is not present. [Paul Querna]
-
-0.5.4 / 2011-01-07
-==================
-
- * Added; throw when router path or callback is missing
- * Fixed; `next(err)` on cookie parse exception instead of ignoring
- * Revert "Added utils.pathname(), memoized url.parse(str).pathname"
-
-0.5.3 / 2011-01-05
-==================
-
- * Added _docs/api.html_
- * Added `utils.pathname()`, memoized url.parse(str).pathname
- * Fixed `session.id` issue. Closes #183
- * Changed; Defaulting `staticProvider` maxAge to 0 not 1 year. Closes #179
- * Removed bad outdated docs, we need something new / automated eventually
-
-0.5.2 / 2010-12-28
-==================
-
- * Added default __OPTIONS__ support to _router_ middleware
-
-0.5.1 / 2010-12-28
-==================
-
- * Added `req.session.id` mirroring `req.sessionID`
- * Refactored router, exposing `connect.router.methods`
- * Exclude non-lib files from npm
- * Removed imposed headers `X-Powered-By`, `Server`, etc
-
-0.5.0 / 2010-12-06
-==================
-
- * Added _./index.js_
- * Added route segment precondition support and example
- * Added named capture group support to router
-
-0.4.0 / 2010-11-29
-==================
-
- * Added `basicAuth` middleware
- * Added more HTTP methods to the `router` middleware
-
-0.3.0 / 2010-07-21
-==================
-
- * Added _staticGzip_ middleware
- * Added `connect.utils` to expose utils
- * Added `connect.session.Session`
- * Added `connect.session.Store`
- * Added `connect.session.MemoryStore`
- * Added `connect.middleware` to expose the middleware getters
- * Added `buffer` option to _logger_ for performance increase
- * Added _favicon_ middleware for serving your own favicon or the connect default
- * Added option support to _staticProvider_, can now pass _root_ and _lifetime_.
- * Added; mounted `Server` instances now have the `route` property exposed for reflection
- * Added support for callback as first arg to `Server#use()`
- * Added support for `next(true)` in _router_ to bypass match attempts
- * Added `Server#listen()` _host_ support
- * Added `Server#route` when `Server#use()` is called with a route on a `Server` instance
- * Added _methodOverride_ X-HTTP-Method-Override support
- * Refactored session internals, adds _secret_ option
- * Renamed `lifetime` option to `maxAge` in _staticProvider_
- * Removed connect(1), it is now [spark(1)](http://github.com/senchalabs/spark)
- * Removed connect(1) dependency on examples, they can all now run with node(1)
- * Remove a typo that was leaking a global.
- * Removed `Object.prototype` forEach() and map() methods
- * Removed a few utils not used
- * Removed `connect.createApp()`
- * Removed `res.simpleBody()`
- * Removed _format_ middleware
- * Removed _flash_ middleware
- * Removed _redirect_ middleware
- * Removed _jsonrpc_ middleware, use [visionmedia/connect-jsonrpc](http://github.com/visionmedia/connect-jsonrpc)
- * Removed _pubsub_ middleware
- * Removed need for `params.{captures,splat}` in _router_ middleware, `params` is an array
- * Changed; _compiler_ no longer 404s
- * Changed; _router_ signature now matches connect middleware signature
- * Fixed a require in _session_ for default `MemoryStore`
- * Fixed nasty request body bug in _router_. Closes #54
- * Fixed _less_ support in _compiler_
- * Fixed bug preventing proper bubbling of exceptions in mounted servers
- * Fixed bug in `Server#use()` preventing `Server` instances as the first arg
- * Fixed **ENOENT** special case, is now treated as any other exception
- * Fixed spark env support
-
-0.2.1 / 2010-07-09
-==================
-
- * Added support for _router_ `next()` to continue calling matched routes
- * Added mime type for _cache.manifest_ files.
- * Changed _compiler_ middleware to use async require
- * Changed session api, stores now only require `#get()`, and `#set()`
- * Fixed _cacheManifest_ by adding `utils.find()` back
-
-0.2.0 / 2010-07-01
-==================
-
- * Added calls to `Session()` casts the given object as a `Session` instance
- * Added passing of `next()` to _router_ callbacks. Closes #46
- * Changed; `MemoryStore#destroy()` removes `req.session`
- * Changed `res.redirect("back")` to default to "/" when Referr?er is not present
- * Fixed _staticProvider_ urlencoded paths issue. Closes #47
- * Fixed _staticProvider_ middleware responding to **GET** requests
- * Fixed _jsonrpc_ middleware `Accept` header check. Closes #43
- * Fixed _logger_ format option
- * Fixed typo in _compiler_ middleware preventing the _dest_ option from working
-
-0.1.0 / 2010-06-25
-==================
-
- * Revamped the api, view the [Connect documentation](http://extjs.github.com/Connect/index.html#Middleware-Authoring) for more info (hover on the right for menu)
- * Added [extended api docs](http://extjs.github.com/Connect/api.html)
- * Added docs for several more middleware layers
- * Added `connect.Server#use()`
- * Added _compiler_ middleware which provides arbitrary static compilation
- * Added `req.originalUrl`
- * Removed _blog_ example
- * Removed _sass_ middleware (use _compiler_)
- * Removed _less_ middleware (use _compiler_)
- * Renamed middleware to be camelcase, _body-decoder_ is now _bodyDecoder_ etc.
- * Fixed `req.url` mutation bug when matching `connect.Server#use()` routes
- * Fixed `mkdir -p` implementation used in _bin/connect_. Closes #39
- * Fixed bug in _bodyDecoder_ throwing exceptions on request empty bodies
- * `make install` installing lib to $LIB_PREFIX aka $HOME/.node_libraries
-
-0.0.6 / 2010-06-22
-==================
-
- * Added _static_ middleware usage example
- * Added support for regular expressions as paths for _router_
- * Added `util.merge()`
- * Increased performance of _static_ by ~ 200 rps
- * Renamed the _rest_ middleware to _router_
- * Changed _rest_ api to accept a callback function
- * Removed _router_ middleware
- * Removed _proto.js_, only `Object#forEach()` remains
-
-0.0.5 / 2010-06-21
-==================
-
- * Added Server#use() which contains the Layer normalization logic
- * Added documentation for several middleware
- * Added several new examples
- * Added _less_ middleware
- * Added _repl_ middleware
- * Added _vhost_ middleware
- * Added _flash_ middleware
- * Added _cookie_ middleware
- * Added _session_ middleware
- * Added `utils.htmlEscape()`
- * Added `utils.base64Decode()`
- * Added `utils.base64Encode()`
- * Added `utils.uid()`
- * Added bin/connect app path and --config path support for .js suffix, although optional. Closes #26
- * Moved mime code to `utils.mime`, ex `utils.mime.types`, and `utils.mime.type()`
- * Renamed req.redirect() to res.redirect(). Closes #29
- * Fixed _sass_ 404 on **ENOENT**
- * Fixed +new Date duplication. Closes #24
-
-0.0.4 / 2010-06-16
-==================
-
- * Added workerPidfile() to bin/connect
- * Added --workers support to bin/connect stop and status commands
- * Added _redirect_ middleware
- * Added better --config support to bin/connect. All flags can be utilized
- * Added auto-detection of _./config.js_
- * Added config example
- * Added `net.Server` support to bin/connect
- * Writing worker pids relative to `env.pidfile`
- * s/parseQuery/parse/g
- * Fixed npm support
-
-0.0.3 / 2010-06-16
-==================
-
- * Fixed node dependency in package.json, now _">= 0.1.98-0"_ to support __HEAD__
-
-0.0.2 / 2010-06-15
-==================
-
- * Added `-V, --version` to bin/connect
- * Added `utils.parseCookie()`
- * Added `utils.serializeCookie()`
- * Added `utils.toBoolean()`
- * Added _sass_ middleware
- * Added _cookie_ middleware
- * Added _format_ middleware
- * Added _lint_ middleware
- * Added _rest_ middleware
- * Added _./package.json_ (npm install connect)
- * Added `handleError()` support
- * Added `process.connectEnv`
- * Added custom log format support to _log_ middleware
- * Added arbitrary env variable support to bin/connect (ext: --logFormat ":method :url")
- * Added -w, --workers to bin/connect
- * Added bin/connect support for --user NAME and --group NAME
- * Fixed url re-writing support
-
-0.0.1 / 2010-06-03
-==================
-
- * Initial release
-
diff --git a/node_modules/connect/LICENSE b/node_modules/connect/LICENSE
deleted file mode 100644
index 9c2761706..000000000
--- a/node_modules/connect/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2010 Sencha Inc.
-Copyright (c) 2011 LearnBoost
-Copyright (c) 2011-2014 TJ Holowaychuk
-Copyright (c) 2015 Douglas Christopher Wilson
-
-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.
diff --git a/node_modules/connect/README.md b/node_modules/connect/README.md
deleted file mode 100644
index c524e4903..000000000
--- a/node_modules/connect/README.md
+++ /dev/null
@@ -1,289 +0,0 @@
-# Connect
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Build Status][travis-image]][travis-url]
-[![Test Coverage][coveralls-image]][coveralls-url]
-[![Gratipay][gratipay-image]][gratipay-url]
-
- Connect is an extensible HTTP server framework for [node](http://nodejs.org) using "plugins" known as _middleware_.
-
-```js
-var connect = require('connect');
-var http = require('http');
-
-var app = connect();
-
-// gzip/deflate outgoing responses
-var compression = require('compression');
-app.use(compression());
-
-// store session state in browser cookie
-var cookieSession = require('cookie-session');
-app.use(cookieSession({
- keys: ['secret1', 'secret2']
-}));
-
-// parse urlencoded request bodies into req.body
-var bodyParser = require('body-parser');
-app.use(bodyParser.urlencoded({extended: false}));
-
-// respond to all requests
-app.use(function(req, res){
- res.end('Hello from Connect!\n');
-});
-
-//create node.js http server and listen on port
-http.createServer(app).listen(3000);
-```
-
-## Getting Started
-
-Connect is a simple framework to glue together various "middleware" to handle requests.
-
-### Install Connect
-
-```sh
-$ npm install connect
-```
-
-### Create an app
-
-The main component is a Connect "app". This will store all the middleware
-added and is, itself, a function.
-
-```js
-var app = connect();
-```
-
-### Use middleware
-
-The core of Connect is "using" middleware. Middleware are added as a "stack"
-where incoming requests will execute each middleware one-by-one until a middleware
-does not call `next()` within it.
-
-```js
-app.use(function middleware1(req, res, next) {
- // middleware 1
- next();
-});
-app.use(function middleware2(req, res, next) {
- // middleware 2
- next();
-});
-```
-
-### Mount middleware
-
-The `.use()` method also takes an optional path string that is matched against
-the beginning of the incoming request URL. This allows for basic routing.
-
-```js
-app.use('/foo', function fooMiddleware(req, res, next) {
- // req.url starts with "/foo"
- next();
-});
-app.use('/bar', function barMiddleware(req, res, next) {
- // req.url starts with "/bar"
- next();
-});
-```
-
-### Error middleware
-
-There are special cases of "error-handling" middleware. There are middleware
-where the function takes exactly 4 arguments. When a middleware passes an error
-to `next`, the app will proceed to look for the error middleware that was declared
-after that middleware and invoke it, skipping any error middleware above that
-middleware and any non-error middleware below.
-
-```js
-// regular middleware
-app.use(function (req, res, next) {
- // i had an error
- next(new Error('boom!'));
-});
-
-// error middleware for errors that occurred in middleware
-// declared before this
-app.use(function onerror(err, req, res, next) {
- // an error occurred!
-});
-```
-
-### Create a server from the app
-
-The last step is to actually use the Connect app in a server. The `.listen()` method
-is a convenience to start a HTTP server (and is identical to the `http.Server`'s `listen`
-method in the version of Node.js you are running).
-
-```js
-var server = app.listen(port);
-```
-
-The app itself is really just a function with three arguments, so it can also be handed
-to `.createServer()` in Node.js.
-
-```js
-var server = http.createServer(app);
-```
-
-## Middleware
-
-These middleware and libraries are officially supported by the Connect/Express team:
-
- - [body-parser](https://www.npmjs.com/package/body-parser) - previous `bodyParser`, `json`, and `urlencoded`. You may also be interested in:
- - [body](https://www.npmjs.com/package/body)
- - [co-body](https://www.npmjs.com/package/co-body)
- - [raw-body](https://www.npmjs.com/package/raw-body)
- - [compression](https://www.npmjs.com/package/compression) - previously `compress`
- - [connect-timeout](https://www.npmjs.com/package/connect-timeout) - previously `timeout`
- - [cookie-parser](https://www.npmjs.com/package/cookie-parser) - previously `cookieParser`
- - [cookie-session](https://www.npmjs.com/package/cookie-session) - previously `cookieSession`
- - [csurf](https://www.npmjs.com/package/csurf) - previously `csrf`
- - [errorhandler](https://www.npmjs.com/package/errorhandler) - previously `error-handler`
- - [express-session](https://www.npmjs.com/package/express-session) - previously `session`
- - [method-override](https://www.npmjs.com/package/method-override) - previously `method-override`
- - [morgan](https://www.npmjs.com/package/morgan) - previously `logger`
- - [response-time](https://www.npmjs.com/package/response-time) - previously `response-time`
- - [serve-favicon](https://www.npmjs.com/package/serve-favicon) - previously `favicon`
- - [serve-index](https://www.npmjs.com/package/serve-index) - previously `directory`
- - [serve-static](https://www.npmjs.com/package/serve-static) - previously `static`
- - [vhost](https://www.npmjs.com/package/vhost) - previously `vhost`
-
-Most of these are exact ports of their Connect 2.x equivalents. The primary exception is `cookie-session`.
-
-Some middleware previously included with Connect are no longer supported by the Connect/Express team, are replaced by an alternative module, or should be superseded by a better module. Use one of these alternatives instead:
-
- - `cookieParser`
- - [cookies](https://www.npmjs.com/package/cookies) and [keygrip](https://www.npmjs.com/package/keygrip)
- - `limit`
- - [raw-body](https://www.npmjs.com/package/raw-body)
- - `multipart`
- - [connect-multiparty](https://www.npmjs.com/package/connect-multiparty)
- - [connect-busboy](https://www.npmjs.com/package/connect-busboy)
- - `query`
- - [qs](https://www.npmjs.com/package/qs)
- - `staticCache`
- - [st](https://www.npmjs.com/package/st)
- - [connect-static](https://www.npmjs.com/package/connect-static)
-
-Checkout [http-framework](https://github.com/Raynos/http-framework/wiki/Modules) for many other compatible middleware!
-
-## API
-
-The Connect API is very minimalist, enough to create an app and add a chain
-of middleware.
-
-When the `connect` module is required, a function is returned that will construct
-a new app when called.
-
-```js
-// require module
-var connect = require('connect')
-
-// create app
-var app = connect()
-```
-
-### app(req, res[, next])
-
-The `app` itself is a function. This is just an alias to `app.handle`.
-
-### app.handle(req, res[, out])
-
-Calling the function will run the middleware stack against the given Node.js
-http request (`req`) and response (`res`) objects. An optional function `out`
-can be provided that will be called if the request (or error) was not handled
-by the middleware stack.
-
-### app.listen([...])
-
-Start the app listening for requests. This method will internally create a Node.js
-HTTP server and call `.listen()` on it.
-
-This is an alias to the `server.listen()` method in the version of Node.js running,
-so consult the Node.js documentation for all the different variations. The most
-common signature is [`app.listen(port)`](https://nodejs.org/dist/latest-v6.x/docs/api/http.html#http_server_listen_port_hostname_backlog_callback).
-
-### app.use(fn)
-
-Use a function on the app, where the function represents a middleware. The function
-will be invoked for every request in the order that `app.use` is called. The function
-is called with three arguments:
-
-```js
-app.use(function (req, res, next) {
- // req is the Node.js http request object
- // res is the Node.js http response object
- // next is a function to call to invoke the next middleware
-})
-```
-
-In addition to a plan function, the `fn` argument can also be a Node.js HTTP server
-instance or another Connect app instance.
-
-### app.use(route, fn)
-
-Use a function on the app, where the function represents a middleware. The function
-will be invoked for every request in which the URL (`req.url` property) starts with
-the given `route` string in the order that `app.use` is called. The function is
-called with three arguments:
-
-```js
-app.use('/foo', function (req, res, next) {
- // req is the Node.js http request object
- // res is the Node.js http response object
- // next is a function to call to invoke the next middleware
-})
-```
-
-In addition to a plan function, the `fn` argument can also be a Node.js HTTP server
-instance or another Connect app instance.
-
-The `route` is always terminated at a path separator (`/`) or a dot (`.`) character.
-This means the given routes `/foo/` and `/foo` are the same and both will match requests
-with the URLs `/foo`, `/foo/`, `/foo/bar`, and `/foo.bar`, but not match a request with
-the URL `/foobar`.
-
-The `route` is matched in a case-insensitive manor.
-
-In order to make middleware easier to write to be agnostic of the `route`, when the
-`fn` is invoked, the `req.url` will be altered to remove the `route` part (and the
-original will be available as `req.originalUrl`). For example, if `fn` is used at the
-route `/foo`, the request for `/foo/bar` will invoke `fn` with `req.url === '/foo'`
-and `req.originalUrl === '/foo/bar'`.
-
-## Running Tests
-
-```bash
-npm install
-npm test
-```
-
-## Contributors
-
- https://github.com/senchalabs/connect/graphs/contributors
-
-## Node Compatibility
-
- - Connect `< 1.x` - node `0.2`
- - Connect `1.x` - node `0.4`
- - Connect `< 2.8` - node `0.6`
- - Connect `>= 2.8 < 3` - node `0.8`
- - Connect `>= 3` - node `0.10`, `0.12`, `4.x`, `5.x`, `6.x`, `7.x`; io.js `1.x`, `2.x`, `3.x`
-
-## License
-
-[MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/connect.svg
-[npm-url]: https://npmjs.org/package/connect
-[travis-image]: https://img.shields.io/travis/senchalabs/connect/master.svg
-[travis-url]: https://travis-ci.org/senchalabs/connect
-[coveralls-image]: https://img.shields.io/coveralls/senchalabs/connect/master.svg
-[coveralls-url]: https://coveralls.io/r/senchalabs/connect
-[downloads-image]: https://img.shields.io/npm/dm/connect.svg
-[downloads-url]: https://npmjs.org/package/connect
-[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg
-[gratipay-url]: https://www.gratipay.com/dougwilson/
diff --git a/node_modules/connect/index.js b/node_modules/connect/index.js
deleted file mode 100644
index 6473a3a4f..000000000
--- a/node_modules/connect/index.js
+++ /dev/null
@@ -1,283 +0,0 @@
-/*!
- * connect
- * Copyright(c) 2010 Sencha Inc.
- * Copyright(c) 2011 TJ Holowaychuk
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict';
-
-/**
- * Module dependencies.
- * @private
- */
-
-var debug = require('debug')('connect:dispatcher');
-var EventEmitter = require('events').EventEmitter;
-var finalhandler = require('finalhandler');
-var http = require('http');
-var merge = require('utils-merge');
-var parseUrl = require('parseurl');
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = createServer;
-
-/**
- * Module variables.
- * @private
- */
-
-var env = process.env.NODE_ENV || 'development';
-var proto = {};
-
-/* istanbul ignore next */
-var defer = typeof setImmediate === 'function'
- ? setImmediate
- : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) }
-
-/**
- * Create a new connect server.
- *
- * @return {function}
- * @public
- */
-
-function createServer() {
- function app(req, res, next){ app.handle(req, res, next); }
- merge(app, proto);
- merge(app, EventEmitter.prototype);
- app.route = '/';
- app.stack = [];
- return app;
-}
-
-/**
- * Utilize the given middleware `handle` to the given `route`,
- * defaulting to _/_. This "route" is the mount-point for the
- * middleware, when given a value other than _/_ the middleware
- * is only effective when that segment is present in the request's
- * pathname.
- *
- * For example if we were to mount a function at _/admin_, it would
- * be invoked on _/admin_, and _/admin/settings_, however it would
- * not be invoked for _/_, or _/posts_.
- *
- * @param {String|Function|Server} route, callback or server
- * @param {Function|Server} callback or server
- * @return {Server} for chaining
- * @public
- */
-
-proto.use = function use(route, fn) {
- var handle = fn;
- var path = route;
-
- // default route to '/'
- if (typeof route !== 'string') {
- handle = route;
- path = '/';
- }
-
- // wrap sub-apps
- if (typeof handle.handle === 'function') {
- var server = handle;
- server.route = path;
- handle = function (req, res, next) {
- server.handle(req, res, next);
- };
- }
-
- // wrap vanilla http.Servers
- if (handle instanceof http.Server) {
- handle = handle.listeners('request')[0];
- }
-
- // strip trailing slash
- if (path[path.length - 1] === '/') {
- path = path.slice(0, -1);
- }
-
- // add the middleware
- debug('use %s %s', path || '/', handle.name || 'anonymous');
- this.stack.push({ route: path, handle: handle });
-
- return this;
-};
-
-/**
- * Handle server requests, punting them down
- * the middleware stack.
- *
- * @private
- */
-
-proto.handle = function handle(req, res, out) {
- var index = 0;
- var protohost = getProtohost(req.url) || '';
- var removed = '';
- var slashAdded = false;
- var stack = this.stack;
-
- // final function handler
- var done = out || finalhandler(req, res, {
- env: env,
- onerror: logerror
- });
-
- // store the original URL
- req.originalUrl = req.originalUrl || req.url;
-
- function next(err) {
- if (slashAdded) {
- req.url = req.url.substr(1);
- slashAdded = false;
- }
-
- if (removed.length !== 0) {
- req.url = protohost + removed + req.url.substr(protohost.length);
- removed = '';
- }
-
- // next callback
- var layer = stack[index++];
-
- // all done
- if (!layer) {
- defer(done, err);
- return;
- }
-
- // route data
- var path = parseUrl(req).pathname || '/';
- var route = layer.route;
-
- // skip this layer if the route doesn't match
- if (path.toLowerCase().substr(0, route.length) !== route.toLowerCase()) {
- return next(err);
- }
-
- // skip if route match does not border "/", ".", or end
- var c = path[route.length];
- if (c !== undefined && '/' !== c && '.' !== c) {
- return next(err);
- }
-
- // trim off the part of the url that matches the route
- if (route.length !== 0 && route !== '/') {
- removed = route;
- req.url = protohost + req.url.substr(protohost.length + removed.length);
-
- // ensure leading slash
- if (!protohost && req.url[0] !== '/') {
- req.url = '/' + req.url;
- slashAdded = true;
- }
- }
-
- // call the layer handle
- call(layer.handle, route, err, req, res, next);
- }
-
- next();
-};
-
-/**
- * Listen for connections.
- *
- * This method takes the same arguments
- * as node's `http.Server#listen()`.
- *
- * HTTP and HTTPS:
- *
- * If you run your application both as HTTP
- * and HTTPS you may wrap them individually,
- * since your Connect "server" is really just
- * a JavaScript `Function`.
- *
- * var connect = require('connect')
- * , http = require('http')
- * , https = require('https');
- *
- * var app = connect();
- *
- * http.createServer(app).listen(80);
- * https.createServer(options, app).listen(443);
- *
- * @return {http.Server}
- * @api public
- */
-
-proto.listen = function listen() {
- var server = http.createServer(this);
- return server.listen.apply(server, arguments);
-};
-
-/**
- * Invoke a route handle.
- * @private
- */
-
-function call(handle, route, err, req, res, next) {
- var arity = handle.length;
- var error = err;
- var hasError = Boolean(err);
-
- debug('%s %s : %s', handle.name || '<anonymous>', route, req.originalUrl);
-
- try {
- if (hasError && arity === 4) {
- // error-handling middleware
- handle(err, req, res, next);
- return;
- } else if (!hasError && arity < 4) {
- // request-handling middleware
- handle(req, res, next);
- return;
- }
- } catch (e) {
- // replace the error
- error = e;
- }
-
- // continue
- next(error);
-}
-
-/**
- * Log error using console.error.
- *
- * @param {Error} err
- * @private
- */
-
-function logerror(err) {
- if (env !== 'test') console.error(err.stack || err.toString());
-}
-
-/**
- * Get get protocol + host for a URL.
- *
- * @param {string} url
- * @private
- */
-
-function getProtohost(url) {
- if (url.length === 0 || url[0] === '/') {
- return undefined;
- }
-
- var searchIndex = url.indexOf('?');
- var pathLength = searchIndex !== -1
- ? searchIndex
- : url.length;
- var fqdnIndex = url.substr(0, pathLength).indexOf('://');
-
- return fqdnIndex !== -1
- ? url.substr(0, url.indexOf('/', 3 + fqdnIndex))
- : undefined;
-}
diff --git a/node_modules/connect/package.json b/node_modules/connect/package.json
deleted file mode 100644
index 8705e8379..000000000
--- a/node_modules/connect/package.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "name": "connect",
- "description": "High performance middleware framework",
- "version": "3.6.2",
- "author": "TJ Holowaychuk <tj@vision-media.ca> (http://tjholowaychuk.com)",
- "contributors": [
- "Douglas Christopher Wilson <doug@somethingdoug.com>",
- "Jonathan Ong <me@jongleberry.com>",
- "Tim Caswell <tim@creationix.com>"
- ],
- "keywords": [
- "framework",
- "web",
- "middleware",
- "connect",
- "rack"
- ],
- "repository": "senchalabs/connect",
- "dependencies": {
- "debug": "2.6.7",
- "finalhandler": "1.0.3",
- "parseurl": "~1.3.1",
- "utils-merge": "1.0.0"
- },
- "devDependencies": {
- "istanbul": "0.4.5",
- "mocha": "3.4.1",
- "supertest": "2.0.0"
- },
- "license": "MIT",
- "files": [
- "LICENSE",
- "HISTORY.md",
- "README.md",
- "index.js"
- ],
- "engines": {
- "node": ">= 0.10.0"
- },
- "scripts": {
- "test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require test/support/env --reporter dot --check-leaks test/",
- "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require test/support/env --reporter spec --check-leaks test/"
- }
-}
diff --git a/node_modules/core-js/CHANGELOG.md b/node_modules/core-js/CHANGELOG.md
index 6fbcbb412..b597d55d6 100644
--- a/node_modules/core-js/CHANGELOG.md
+++ b/node_modules/core-js/CHANGELOG.md
@@ -1,6 +1,158 @@
## Changelog
+##### 2.4.1 - 2016.07.18
+- fixed `script` tag for some parsers, [#204](https://github.com/zloirock/core-js/issues/204), [#216](https://github.com/zloirock/core-js/issues/216)
+- removed some unused variables, [#217](https://github.com/zloirock/core-js/issues/217), [#218](https://github.com/zloirock/core-js/issues/218)
+- fixed MS Edge `Reflect.construct` and `Reflect.apply` - they should not allow primitive as `argumentsList` argument
+
##### 1.2.7 [LEGACY] - 2016.07.18
-* some fixes for issues like #159, #186, #194, #207
+- some fixes for issues like [#159](https://github.com/zloirock/core-js/issues/159), [#186](https://github.com/zloirock/core-js/issues/186), [#194](https://github.com/zloirock/core-js/issues/194), [#207](https://github.com/zloirock/core-js/issues/207)
+
+##### 2.4.0 - 2016.05.08
+- Added `Observable`, [stage 1 proposal](https://github.com/zenparsing/es-observable)
+- Fixed behavior `Object.{getOwnPropertySymbols, getOwnPropertyDescriptor}` and `Object#propertyIsEnumerable` on `Object.prototype`
+- `Reflect.construct` and `Reflect.apply` should throw an error if `argumentsList` argument is not an object, [#194](https://github.com/zloirock/core-js/issues/194)
+
+##### 2.3.0 - 2016.04.24
+- Added `asap` for enqueuing microtasks, [stage 0 proposal](https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask)
+- Added well-known symbol `Symbol.asyncIterator` for [stage 2 async iteration proposal](https://github.com/tc39/proposal-async-iteration)
+- Added well-known symbol `Symbol.observable` for [stage 1 observables proposal](https://github.com/zenparsing/es-observable)
+- `String#{padStart, padEnd}` returns original string if filler is empty string, [TC39 meeting notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-03/march-29.md#stringprototypepadstartpadend)
+- `Object.values` and `Object.entries` moved to stage 4 from 3, [TC39 meeting notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-03/march-29.md#objectvalues--objectentries)
+- `System.global` moved to stage 2 from 1, [TC39 meeting notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-03/march-29.md#systemglobal)
+- `Map#toJSON` and `Set#toJSON` rejected and will be removed from the next major release, [TC39 meeting notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-03/march-31.md#mapprototypetojsonsetprototypetojson)
+- `Error.isError` withdrawn and will be removed from the next major release, [TC39 meeting notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-03/march-29.md#erroriserror)
+- Added fallback for `Function#name` on non-extensible functions and functions with broken `toString` conversion, [#193](https://github.com/zloirock/core-js/issues/193)
+
+##### 2.2.2 - 2016.04.06
+- Added conversion `-0` to `+0` to `Array#{indexOf, lastIndexOf}`, [ES2016 fix](https://github.com/tc39/ecma262/pull/316)
+- Added fixes for some `Math` methods in Tor Browser
+- `Array.{from, of}` no longer calls prototype setters
+- Added workaround over Chrome DevTools strange behavior, [#186](https://github.com/zloirock/core-js/issues/186)
+
+##### 2.2.1 - 2016.03.19
+- Fixed `Object.getOwnPropertyNames(window)` `2.1+` versions bug, [#181](https://github.com/zloirock/core-js/issues/181)
+
+##### 2.2.0 - 2016.03.15
+- Added `String#matchAll`, [proposal](https://github.com/tc39/String.prototype.matchAll)
+- Added `Object#__(define|lookup)[GS]etter__`, [annex B ES2017](https://github.com/tc39/ecma262/pull/381)
+- Added `@@toPrimitive` methods to `Date` and `Symbol`
+- Fixed `%TypedArray%#slice` in Edge ~ 13 (throws with `@@species` and wrapped / inherited constructor)
+- Some other minor fixes
+
+##### 2.1.5 - 2016.03.12
+- Improved support NodeJS domains in `Promise#then`, [#180](https://github.com/zloirock/core-js/issues/180)
+- Added fallback for `Date#toJSON` bug in Qt Script, [#173](https://github.com/zloirock/core-js/issues/173#issuecomment-193972502)
+
+##### 2.1.4 - 2016.03.08
+- Added fallback for `Symbol` polyfill in Qt Script, [#173](https://github.com/zloirock/core-js/issues/173)
+- Added one more fallback for IE11 `Script Access Denied` error with iframes, [#165](https://github.com/zloirock/core-js/issues/165)
+
+##### 2.1.3 - 2016.02.29
+- Added fallback for [`es6-promise` package bug](https://github.com/stefanpenner/es6-promise/issues/169), [#176](https://github.com/zloirock/core-js/issues/176)
+
+##### 2.1.2 - 2016.02.29
+- Some minor `Promise` fixes:
+ - Browsers `rejectionhandled` event better HTML spec complaint
+ - Errors in unhandled rejection handlers should not cause any problems
+ - Fixed typo in feature detection
+
+##### 2.1.1 - 2016.02.22
+- Some `Promise` improvements:
+ - Feature detection:
+ - **Added detection unhandled rejection tracking support - now it's available everywhere**, [#140](https://github.com/zloirock/core-js/issues/140)
+ - Added detection `@@species` pattern support for completely correct subclassing
+ - Removed usage `Object.setPrototypeOf` from feature detection and noisy console message about it in FF
+ - `Promise.all` fixed for some very specific cases
+
+##### 2.1.0 - 2016.02.09
+- **API**:
+ - ES5 polyfills are split and logic, used in other polyfills, moved to internal modules
+ - **All entry point works in ES3 environment like IE8- without `core-js/(library/)es5`**
+ - **Added all missed single entry points for ES5 polyfills**
+ - Separated ES5 polyfills moved to the ES6 namespace. Why?
+ - Mainly, for prevent duplication features in different namespaces - logic of most required ES5 polyfills changed in ES6+:
+ - Already added changes for: `Object` statics - should accept primitives, new whitespaces lists in `String#trim`, `parse(Int|float)`, `RegExp#toString` logic, `String#split`, etc
+ - Should be changed in the future: `@@species` and `ToLength` logic in `Array` methods, `Date` parsing, `Function#bind`, etc
+ - Should not be changed only several features like `Array.isArray` and `Date.now`
+ - Some ES5 polyfills required for modern engines
+ - All old entry points should work fine, but in the next major release API can be changed
+ - `Object.getOwnPropertyDescriptors` moved to the stage 3, [January TC39 meeting](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-01/2016-01-28.md#objectgetownpropertydescriptors-to-stage-3-jordan-harband-low-priority-but-super-quick)
+ - Added `umd` option for [custom build process](https://github.com/zloirock/core-js#custom-build-from-external-scripts), [#169](https://github.com/zloirock/core-js/issues/169)
+ - Returned entry points for `Array` statics, removed in `2.0`, for compatibility with `babel` `6` and for future fixes
+- **Deprecated**:
+ - `Reflect.enumerate` deprecated and will be removed from the next major release, [January TC39 meeting](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-01/2016-01-28.md#5xix-revisit-proxy-enumerate---revisit-decision-to-exhaust-iterator)
+- **New Features**:
+ - Added [`Reflect` metadata API](https://github.com/jonathandturner/decorators/blob/master/specs/metadata.md) as a pre-strawman feature, [#152](https://github.com/zloirock/core-js/issues/152):
+ - `Reflect.defineMetadata`
+ - `Reflect.deleteMetadata`
+ - `Reflect.getMetadata`
+ - `Reflect.getMetadataKeys`
+ - `Reflect.getOwnMetadata`
+ - `Reflect.getOwnMetadataKeys`
+ - `Reflect.hasMetadata`
+ - `Reflect.hasOwnMetadata`
+ - `Reflect.metadata`
+ - Implementation / fixes `Date#toJSON`
+ - Fixes for `parseInt` and `Number.parseInt`
+ - Fixes for `parseFloat` and `Number.parseFloat`
+ - Fixes for `RegExp#toString`
+ - Fixes for `Array#sort`
+ - Fixes for `Number#toFixed`
+ - Fixes for `Number#toPrecision`
+ - Additional fixes for `String#split` (`RegExp#@@split`)
+- **Improvements**:
+ - Correct subclassing wrapped collections, `Number` and `RegExp` constructors with native class syntax
+ - Correct support `SharedArrayBuffer` and buffers from other realms in typed arrays wrappers
+ - Additional validations for `Object.{defineProperty, getOwnPropertyDescriptor}` and `Reflect.defineProperty`
+- **Bug Fixes**:
+ - Fixed some cases `Array#lastIndexOf` with negative second argument
+
+##### 2.0.3 - 2016.01.11
+- Added fallback for V8 ~ Chrome 49 `Promise` subclassing bug causes unhandled rejection on feature detection, [#159](https://github.com/zloirock/core-js/issues/159)
+- Added fix for very specific environments with global `window === null`
+
+##### 2.0.2 - 2016.01.04
+- Temporarily removed `length` validation from `Uint8Array` constructor wrapper. Reason - [bug in `ws` module](https://github.com/websockets/ws/pull/645) (-> `socket.io`) which passes to `Buffer` constructor -> `Uint8Array` float and uses [the `V8` bug](https://code.google.com/p/v8/issues/detail?id=4552) for conversion to int (by the spec should be thrown an error). [It creates problems for many people.](https://github.com/karma-runner/karma/issues/1768) I hope, it will be returned after fixing this bug in `V8`.
+
+##### 2.0.1 - 2015.12.31
+- forced usage `Promise.resolve` polyfill in the `library` version for correct work with wrapper
+- `Object.assign` should be defined in the strict mode -> throw an error on extension non-extensible objects, [#154](https://github.com/zloirock/core-js/issues/154)
+
+##### 2.0.0 - 2015.12.24
+- added implementations and fixes [Typed Arrays](https://github.com/zloirock/core-js#ecmascript-6-typed-arrays)-related features
+ - `ArrayBuffer`, `ArrayBuffer.isView`, `ArrayBuffer#slice`
+ - `DataView` with all getter / setter methods
+ - `Int8Array`, `Uint8Array`, `Uint8ClampedArray`, `Int16Array`, `Uint16Array`, `Int32Array`, `Uint32Array`, `Float32Array` and `Float64Array` constructors
+ - `%TypedArray%.{for, of}`, `%TypedArray%#{copyWithin, every, fill, filter, find, findIndex, forEach, indexOf, includes, join, lastIndexOf, map, reduce, reduceRight, reverse, set, slice, some, sort, subarray, values, keys, entries, @@iterator, ...}`
+- added [`System.global`](https://github.com/zloirock/core-js#ecmascript-7-proposals), [proposal](https://github.com/tc39/proposal-global), [November TC39 meeting](https://github.com/rwaldron/tc39-notes/tree/master/es7/2015-11/nov-19.md#systemglobal-jhd)
+- added [`Error.isError`](https://github.com/zloirock/core-js#ecmascript-7-proposals), [proposal](https://github.com/ljharb/proposal-is-error), [November TC39 meeting](https://github.com/rwaldron/tc39-notes/tree/master/es7/2015-11/nov-19.md#jhd-erroriserror)
+- added [`Math.{iaddh, isubh, imulh, umulh}`](https://github.com/zloirock/core-js#ecmascript-7-proposals), [proposal](https://gist.github.com/BrendanEich/4294d5c212a6d2254703)
+- `RegExp.escape` moved from the `es7` to the non-standard `core` namespace, [July TC39 meeting](https://github.com/rwaldron/tc39-notes/blob/master/es7/2015-07/july-28.md#62-regexpescape) - too slow, but it's condition of stability, [#116](https://github.com/zloirock/core-js/issues/116)
+- [`Promise`](https://github.com/zloirock/core-js#ecmascript-6-promise)
+ - some performance optimisations
+ - added basic support [`rejectionHandled` event / `onrejectionhandled` handler](https://github.com/zloirock/core-js#unhandled-rejection-tracking) to the polyfill
+ - removed usage `@@species` from `Promise.{all, race}`, [November TC39 meeting](https://github.com/rwaldron/tc39-notes/tree/master/es7/2015-11/nov-18.md#conclusionresolution-2)
+- some improvements [collections polyfills](https://github.com/zloirock/core-js#ecmascript-6-collections)
+ - `O(1)` and preventing possible leaks with frozen keys, [#134](https://github.com/zloirock/core-js/issues/134)
+ - correct observable state object keys
+- renamed `String#{padLeft, padRight}` -> [`String#{padStart, padEnd}`](https://github.com/zloirock/core-js#ecmascript-7-proposals), [proposal](https://github.com/tc39/proposal-string-pad-start-end), [November TC39 meeting](https://github.com/rwaldron/tc39-notes/tree/master/es7/2015-11/nov-17.md#conclusionresolution-2) (they want to rename it on each meeting?O_o), [#132](https://github.com/zloirock/core-js/issues/132)
+- added [`String#{trimStart, trimEnd}` as aliases for `String#{trimLeft, trimRight}`](https://github.com/zloirock/core-js#ecmascript-7-proposals), [proposal](https://github.com/sebmarkbage/ecmascript-string-left-right-trim), [November TC39 meeting](https://github.com/rwaldron/tc39-notes/tree/master/es7/2015-11/nov-17.md#conclusionresolution-2)
+- added [annex B HTML methods](https://github.com/zloirock/core-js#ecmascript-6-string) - ugly, but also [the part of the spec](http://www.ecma-international.org/ecma-262/6.0/#sec-string.prototype.anchor)
+- added little fix for [`Date#toString`](https://github.com/zloirock/core-js#ecmascript-6-date) - `new Date(NaN).toString()` [should be `'Invalid Date'`](http://www.ecma-international.org/ecma-262/6.0/#sec-todatestring)
+- added [`{keys, values, entries, @@iterator}` methods to DOM collections](https://github.com/zloirock/core-js#iterable-dom-collections) which should have [iterable interface](https://heycam.github.io/webidl/#idl-iterable) or should be [inherited from `Array`](https://heycam.github.io/webidl/#LegacyArrayClass) - `NodeList`, `DOMTokenList`, `MediaList`, `StyleSheetList`, `CSSRuleList`.
+- removed Mozilla `Array` generics - [deprecated and will be removed from FF](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Array_generic_methods), [looks like strawman is dead](http://wiki.ecmascript.org/doku.php?id=strawman:array_statics), available [alternative shim](https://github.com/plusdude/array-generics)
+- removed `core.log` module
+- CommonJS API
+ - added entry points for [virtual methods](https://github.com/zloirock/core-js#commonjs-and-prototype-methods-without-global-namespace-pollution)
+ - added entry points for [stages proposals](https://github.com/zloirock/core-js#ecmascript-7-proposals)
+ - some other minor changes
+- [custom build from external scripts](https://github.com/zloirock/core-js#custom-build-from-external-scripts) moved to the separate package for preventing problems with dependencies
+- changed `$` prefix for internal modules file names because Team Foundation Server does not support it, [#129](https://github.com/zloirock/core-js/issues/129)
+- additional fix for `SameValueZero` in V8 ~ Chromium 39-42 collections
+- additional fix for FF27 `Array` iterator
+- removed usage shortcuts for `arguments` object - old WebKit bug, [#150](https://github.com/zloirock/core-js/issues/150)
+- `{Map, Set}#forEach` non-generic, [#144](https://github.com/zloirock/core-js/issues/144)
+- many other improvements
##### 1.2.6 - 2015.11.09
* reject with `TypeError` on attempt resolve promise itself
@@ -38,9 +190,9 @@
##### 1.2.0 - 2015.09.27
* added browser [`Promise` rejection hook](#unhandled-rejection-tracking), [#106](https://github.com/zloirock/core-js/issues/106)
* added correct [`IsRegExp`](http://www.ecma-international.org/ecma-262/6.0/#sec-isregexp) logic to [`String#{includes, startsWith, endsWith}`](https://github.com/zloirock/core-js/#ecmascript-6-string) and [`RegExp` constructor](https://github.com/zloirock/core-js/#ecmascript-6-regexp), `@@match` case, [example](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/match#Disabling_the_isRegExp_check)
-* updated [`String#leftPad`](https://github.com/zloirock/core-js/#ecmascript-7) [with proposal](https://github.com/ljharb/proposal-string-pad-left-right/issues/6): string filler truncated from the right side
+* updated [`String#leftPad`](https://github.com/zloirock/core-js/#ecmascript-7-proposals) [with proposal](https://github.com/ljharb/proposal-string-pad-left-right/issues/6): string filler truncated from the right side
* replaced V8 [`Object.assign`](https://github.com/zloirock/core-js/#ecmascript-6-object) - its properties order not only [incorrect](https://github.com/sindresorhus/object-assign/issues/22), it is non-deterministic and it causes some problems
-* fixed behavior with deleted in getters properties for `Object.{`[`assign`](https://github.com/zloirock/core-js/#ecmascript-6-object)`, `[`entries, values`](https://github.com/zloirock/core-js/#ecmascript-7)`}`, [example](http://goo.gl/iQE01c)
+* fixed behavior with deleted in getters properties for `Object.{`[`assign`](https://github.com/zloirock/core-js/#ecmascript-6-object)`, `[`entries, values`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)`}`, [example](http://goo.gl/iQE01c)
* fixed [`Math.sinh`](https://github.com/zloirock/core-js/#ecmascript-6-math) with very small numbers in V8 near Chromium 38
* some other fixes and optimizations
@@ -62,10 +214,10 @@
* added more correct microtask implementation for [`Promise`](#ecmascript-6-promise)
##### 1.1.0 - 2015.08.17
-* updated [string padding](https://github.com/zloirock/core-js/#ecmascript-7) to [actual proposal](https://github.com/ljharb/proposal-string-pad-left-right) - renamed, minor internal changes:
+* updated [string padding](https://github.com/zloirock/core-js/#ecmascript-7-proposals) to [actual proposal](https://github.com/ljharb/proposal-string-pad-left-right) - renamed, minor internal changes:
* `String#lpad` -> `String#padLeft`
* `String#rpad` -> `String#padRight`
-* added [string trim functions](#ecmascript-7) - [proposal](https://github.com/sebmarkbage/ecmascript-string-left-right-trim), defacto standard - required only for IE11- and fixed for some old engines:
+* added [string trim functions](#ecmascript-7-proposals) - [proposal](https://github.com/sebmarkbage/ecmascript-string-left-right-trim), defacto standard - required only for IE11- and fixed for some old engines:
* `String#trimLeft`
* `String#trimRight`
* [`String#trim`](https://github.com/zloirock/core-js/#ecmascript-6-string) fixed for some engines by es6 spec and moved from `es5` to single `es6` module
@@ -105,9 +257,9 @@
* [`es6.regexp`](https://github.com/zloirock/core-js/#ecmascript-6-regexp)
* [`es6.math`](https://github.com/zloirock/core-js/#ecmascript-6-math)
* [`es6.number`](https://github.com/zloirock/core-js/#ecmascript-6-number)
- * [`es7.object.to-array`](https://github.com/zloirock/core-js/#ecmascript-7)
+ * [`es7.object.to-array`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)
* [`core.object`](https://github.com/zloirock/core-js/#object)
- * [`core.string`](https://github.com/zloirock/core-js/#escaping-html)
+ * [`core.string`](https://github.com/zloirock/core-js/#escaping-strings)
* [`core.iter-helpers`](https://github.com/zloirock/core-js/#ecmascript-6-iterators)
* internal modules (`$`, `$.iter`, etc)
* many other optimizations
@@ -123,10 +275,10 @@
* fixed [#89](https://github.com/zloirock/core-js/issues/89) - behavior `Number` constructor in strange case
##### 0.9.18 - 2015.06.17
-* removed `/` from [`RegExp.escape`](https://github.com/zloirock/core-js/#ecmascript-7) escaped characters
+* removed `/` from [`RegExp.escape`](https://github.com/zloirock/core-js/#ecmascript-7-proposals) escaped characters
##### 0.9.17 - 2015.06.14
-* updated [`RegExp.escape`](https://github.com/zloirock/core-js/#ecmascript-7) to the [latest proposal](https://github.com/benjamingr/RexExp.escape)
+* updated [`RegExp.escape`](https://github.com/zloirock/core-js/#ecmascript-7-proposals) to the [latest proposal](https://github.com/benjamingr/RexExp.escape)
* fixed conflict with webpack dev server + IE buggy behavior
##### 0.9.16 - 2015.06.11
@@ -174,7 +326,7 @@
* added [support DOM collections](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice#Streamlining_cross-browser_behavior) to IE8- `Array#slice`
##### 0.9.6 - 2015.05.01
-* added [`String#lpad`, `String#rpad`](https://github.com/zloirock/core-js/#ecmascript-7)
+* added [`String#lpad`, `String#rpad`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)
##### 0.9.5 - 2015.04.30
* added cap for `Function#@@hasInstance`
@@ -196,7 +348,7 @@
* added correct [symbols](https://github.com/zloirock/core-js/#ecmascript-6-symbol) descriptors
* fixed behavior `Object.{assign, create, defineProperty, defineProperties, getOwnPropertyDescriptor, getOwnPropertyDescriptors}` with symbols
* added [single entry points](https://github.com/zloirock/core-js/#commonjs) for `Object.{create, defineProperty, defineProperties}`
-* added [`Map#toJSON`](https://github.com/zloirock/core-js/#ecmascript-7)
+* added [`Map#toJSON`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)
* removed non-standard methods `Object#[_]` and `Function#only` - they solves syntax problems, but now in compilers available arrows and ~~in near future will be available~~ [available](http://babeljs.io/blog/2015/05/14/function-bind/) [bind syntax](https://github.com/zenparsing/es-function-bind)
* removed non-standard undocumented methods `Symbol.{pure, set}`
* some fixes and internal changes
@@ -209,7 +361,7 @@
##### 0.8.2 - 2015.04.13
* [`Math.fround`](https://github.com/zloirock/core-js/#ecmascript-6-math) now also works in IE9-
-* added [`Set#toJSON`](https://github.com/zloirock/core-js/#ecmascript-7)
+* added [`Set#toJSON`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)
* some optimizations and fixes
##### 0.8.1 - 2015.04.03
@@ -239,8 +391,8 @@
##### 0.6.0 - 2015.02.23
* added support safe closing iteration - calling `iterator.return` on abort iteration, if it exists
* added basic support [`Promise`](https://github.com/zloirock/core-js/#ecmascript-6-promise) unhandled rejection tracking in shim
-* added [`Object.getOwnPropertyDescriptors`](https://github.com/zloirock/core-js/#ecmascript-7)
-* removed `console` cap - creates too many problems - you can use [`core.log`](https://github.com/zloirock/core-js/#console) module as that
+* added [`Object.getOwnPropertyDescriptors`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)
+* removed `console` cap - creates too many problems
* restructuring [namespaces](https://github.com/zloirock/core-js/#custom-build)
* some fixes
@@ -260,7 +412,7 @@
##### 0.5.0 - 2015.02.08
* systematization of modules
* splitted [`es6` module](https://github.com/zloirock/core-js/#ecmascript-6)
-* splitted [`console` module](https://github.com/zloirock/core-js/#console): `web.console` - only cap for missing methods, `core.log` - bound methods & additional features
+* splitted `console` module: `web.console` - only cap for missing methods, `core.log` - bound methods & additional features
* added [`delay` method](https://github.com/zloirock/core-js/#delay)
* some fixes
@@ -367,8 +519,8 @@
* repair converting -0 to +0 in [native collections](https://github.com/zloirock/core-js/#ecmascript-6-collections)
##### 0.2.0 - 2014.12.06
-* added [`es7.proposals`](https://github.com/zloirock/core-js/#ecmascript-7) and [`es7.abstract-refs`](https://github.com/zenparsing/es-abstract-refs) modules
-* added [`String#at`](https://github.com/zloirock/core-js/#ecmascript-7)
+* added [`es7.proposals`](https://github.com/zloirock/core-js/#ecmascript-7-proposals) and [`es7.abstract-refs`](https://github.com/zenparsing/es-abstract-refs) modules
+* added [`String#at`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)
* added real [`String Iterator`](https://github.com/zloirock/core-js/#ecmascript-6-iterators), older versions used Array Iterator
* added abstract references support:
* added `Symbol.referenceGet`
@@ -397,7 +549,7 @@
* [TC39 November meeting](https://github.com/rwaldron/tc39-notes/tree/master/es6/2014-11):
* [`.contains` -> `.includes`](https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-11/nov-18.md#51--44-arrayprototypecontains-and-stringprototypecontains)
* `String#contains` -> [`String#includes`](https://github.com/zloirock/core-js/#ecmascript-6-string)
- * `Array#contains` -> [`Array#includes`](https://github.com/zloirock/core-js/#ecmascript-7)
+ * `Array#contains` -> [`Array#includes`](https://github.com/zloirock/core-js/#ecmascript-7-proposals)
* `Dict.contains` -> [`Dict.includes`](https://github.com/zloirock/core-js/#dict)
* [removed `WeakMap#clear`](https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-11/nov-19.md#412-should-weakmapweakset-have-a-clear-method-markm)
* [removed `WeakSet#clear`](https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-11/nov-19.md#412-should-weakmapweakset-have-a-clear-method-markm)
diff --git a/node_modules/core-js/LICENSE b/node_modules/core-js/LICENSE
index 669bcc98e..c99b842d7 100644
--- a/node_modules/core-js/LICENSE
+++ b/node_modules/core-js/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2015 Denis Pushkarev
+Copyright (c) 2014-2016 Denis Pushkarev
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/node_modules/core-js/bower.json b/node_modules/core-js/bower.json
index 056881972..f6eb784be 100644
--- a/node_modules/core-js/bower.json
+++ b/node_modules/core-js/bower.json
@@ -1,21 +1,34 @@
{
"name": "core.js",
"main": "client/core.js",
- "version": "1.2.7",
+ "version": "2.4.1",
"description": "Standard Library",
"keywords": [
+ "ES3",
+ "ECMAScript 3",
+ "ES5",
+ "ECMAScript 5",
"ES6",
+ "ES2015",
"ECMAScript 6",
+ "ECMAScript 2015",
"ES7",
+ "ES2016",
"ECMAScript 7",
+ "ECMAScript 2016",
+ "Harmony",
+ "Strawman",
"Map",
"Set",
"WeakMap",
"WeakSet",
- "Dict",
"Promise",
"Symbol",
- "console"
+ "TypedArray",
+ "setImmediate",
+ "Dict",
+ "polyfill",
+ "shim"
],
"authors": [
"Denis Pushkarev <zloirock@zloirock.ru> (http://zloirock.ru/)"
diff --git a/node_modules/core-js/build/Gruntfile.ls b/node_modules/core-js/build/Gruntfile.ls
index 615184241..f4b53809a 100644
--- a/node_modules/core-js/build/Gruntfile.ls
+++ b/node_modules/core-js/build/Gruntfile.ls
@@ -1,5 +1,4 @@
require! <[./build fs ./config]>
-library-tests = <[client/library.js tests/helpers.js tests/library.js]>map -> src: it
module.exports = (grunt)->
grunt.loadNpmTasks \grunt-contrib-clean
grunt.loadNpmTasks \grunt-contrib-copy
@@ -27,7 +26,7 @@ module.exports = (grunt)->
copy: lib: files:
* expand: on
cwd: './'
- src: <[es5/** es6/** es7/** js/** web/** core/** fn/** index.js shim.js]>
+ src: <[es5/** es6/** es7/** stage/** web/** core/** fn/** index.js shim.js]>
dest: './library/'
* expand: on
cwd: './'
@@ -50,21 +49,22 @@ module.exports = (grunt)->
configFile: './tests/karma.conf.js'
browsers: <[PhantomJS]>
singleRun: on
- 'continuous': {}
- 'continuous-library':
- files: library-tests
+ 'default': {}
+ 'library': files: <[client/library.js tests/helpers.js tests/library.js]>map -> src: it
grunt.registerTask \build (options)->
done = @async!
- err, it <- build {
- modules: (options || 'es5,es6,es7,js,web,core')split \,
+ build {
+ modules: (options || 'es5,es6,es7,js,web,core')split \,
blacklist: (grunt.option(\blacklist) || '')split \,
- library: !!grunt.option \library
+ library: grunt.option(\library) in <[yes on true]>
+ umd: grunt.option(\umd) not in <[no off false]>
}
- if err
- console.error err
+ .then !->
+ grunt.option(\path) || grunt.option(\path, './custom')
+ fs.writeFile grunt.option(\path) + '.js', it, done
+ .catch !->
+ console.error it
process.exit 1
- grunt.option(\path) || grunt.option(\path, './custom')
- fs.writeFile grunt.option(\path) + '.js', it, done
grunt.registerTask \client ->
grunt.option \library ''
grunt.option \path './client/core'
diff --git a/node_modules/core-js/build/build.ls b/node_modules/core-js/build/build.ls
index 274ffc423..0cf210de5 100644
--- a/node_modules/core-js/build/build.ls
+++ b/node_modules/core-js/build/build.ls
@@ -1,181 +1,14 @@
-require! {'./config': {banner}, fs: {readFile, writeFile, unlink}, path, webpack}
-
-list = <[
- es5
- es6.symbol
- es6.object.assign
- es6.object.is
- es6.object.set-prototype-of
- es6.object.to-string
- es6.object.freeze
- es6.object.seal
- es6.object.prevent-extensions
- es6.object.is-frozen
- es6.object.is-sealed
- es6.object.is-extensible
- es6.object.get-own-property-descriptor
- es6.object.get-prototype-of
- es6.object.keys
- es6.object.get-own-property-names
- es6.function.name
- es6.function.has-instance
- es6.number.constructor
- es6.number.epsilon
- es6.number.is-finite
- es6.number.is-integer
- es6.number.is-nan
- es6.number.is-safe-integer
- es6.number.max-safe-integer
- es6.number.min-safe-integer
- es6.number.parse-float
- es6.number.parse-int
- es6.math.acosh
- es6.math.asinh
- es6.math.atanh
- es6.math.cbrt
- es6.math.clz32
- es6.math.cosh
- es6.math.expm1
- es6.math.fround
- es6.math.hypot
- es6.math.imul
- es6.math.log10
- es6.math.log1p
- es6.math.log2
- es6.math.sign
- es6.math.sinh
- es6.math.tanh
- es6.math.trunc
- es6.string.from-code-point
- es6.string.raw
- es6.string.trim
- es6.string.code-point-at
- es6.string.ends-with
- es6.string.includes
- es6.string.repeat
- es6.string.starts-with
- es6.string.iterator
- es6.array.from
- es6.array.of
- es6.array.iterator
- es6.array.species
- es6.array.copy-within
- es6.array.fill
- es6.array.find
- es6.array.find-index
- es6.regexp.constructor
- es6.regexp.flags
- es6.regexp.match
- es6.regexp.replace
- es6.regexp.search
- es6.regexp.split
- es6.promise
- es6.map
- es6.set
- es6.weak-map
- es6.weak-set
- es6.reflect.apply
- es6.reflect.construct
- es6.reflect.define-property
- es6.reflect.delete-property
- es6.reflect.enumerate
- es6.reflect.get
- es6.reflect.get-own-property-descriptor
- es6.reflect.get-prototype-of
- es6.reflect.has
- es6.reflect.is-extensible
- es6.reflect.own-keys
- es6.reflect.prevent-extensions
- es6.reflect.set
- es6.reflect.set-prototype-of
- es6.date.to-string
- es6.typed.array-buffer
- es6.typed.data-view
- es6.typed.int8-array
- es6.typed.uint8-array
- es6.typed.uint8-clamped-array
- es6.typed.int16-array
- es6.typed.uint16-array
- es6.typed.int32-array
- es6.typed.uint32-array
- es6.typed.float32-array
- es6.typed.float64-array
- es7.array.includes
- es7.string.at
- es7.string.pad-left
- es7.string.pad-right
- es7.string.trim-left
- es7.string.trim-right
- es7.regexp.escape
- es7.object.get-own-property-descriptors
- es7.object.values
- es7.object.entries
- es7.map.to-json
- es7.set.to-json
- web.immediate
- web.dom.iterable
- web.timers
- core.dict
- core.get-iterator-method
- core.get-iterator
- core.is-iterable
- core.delay
- core.function.part
- core.object.is-object
- core.object.classof
- core.object.define
- core.object.make
- core.number.iterator
- core.string.escape-html
- core.string.unescape-html
- core.log
- js.array.statics
-]>
-
-experimental = <[
- es6.date.to-string
- es6.typed.array-buffer
- es6.typed.data-view
- es6.typed.int8-array
- es6.typed.uint8-array
- es6.typed.uint8-clamped-array
- es6.typed.int16-array
- es6.typed.uint16-array
- es6.typed.int32-array
- es6.typed.uint32-array
- es6.typed.float32-array
- es6.typed.float64-array
-]>
-
-libraryBlacklist = <[
- es6.object.to-string
- es6.function.name
- es6.regexp.constructor
- es6.regexp.flags
- es6.regexp.match
- es6.regexp.replace
- es6.regexp.search
- es6.regexp.split
- es6.number.constructor
-]>
-
-es5SpecialCase = <[
- es6.object.freeze
- es6.object.seal
- es6.object.prevent-extensions
- es6.object.is-frozen
- es6.object.is-sealed
- es6.object.is-extensible
- es6.string.trim
-]>
-
-module.exports = ({modules = [], blacklist = [], library = no}, next)!->
+require! {
+ '../library/fn/promise': Promise
+ './config': {list, experimental, libraryBlacklist, es5SpecialCase, banner}
+ fs: {readFile, writeFile, unlink}
+ path: {join}
+ webpack, temp
+}
+
+module.exports = ({modules = [], blacklist = [], library = no, umd = on})->
+ resolve, reject <~! new Promise _
let @ = modules.reduce ((memo, it)-> memo[it] = on; memo), {}
- check = (err)->
- if err
- next err, ''
- on
-
if @exp => for experimental => @[..] = on
if @es5 => for es5SpecialCase => @[..] = on
for ns of @
@@ -190,29 +23,40 @@ module.exports = ({modules = [], blacklist = [], library = no}, next)!->
if name is ns or name.indexOf("#ns.") is 0
@[name] = no
- TARGET = "./__tmp#{ Math.random! }__.js"
+ TARGET = temp.path {suffix: '.js'}
+
err, info <~! webpack do
entry: list.filter(~> @[it]).map ~>
- path.join(__dirname, '../', "#{ if library => '/library' else '' }/modules/#it")
+ if library => join __dirname, '..', 'library', 'modules', it
+ else join __dirname, '..', 'modules', it
output:
path: ''
filename: TARGET
- if check err => return
+ if err => return reject err
+
err, script <~! readFile TARGET
- if check err => return
- err <~! unlink TARGET
- if check err => return
+ if err => return reject err
- next null """
+ err <~! unlink TARGET
+ if err => return reject err
+
+ if umd
+ exportScript = """
+ // CommonJS export
+ if(typeof module != 'undefined' && module.exports)module.exports = __e;
+ // RequireJS export
+ else if(typeof define == 'function' && define.amd)define(function(){return __e});
+ // Export to global object
+ else __g.core = __e;
+ """
+ else
+ exportScript = ""
+
+ resolve """
#banner
!function(__e, __g, undefined){
'use strict';
#script
- // CommonJS export
- if(typeof module != 'undefined' && module.exports)module.exports = __e;
- // RequireJS export
- else if(typeof define == 'function' && define.amd)define(function(){return __e});
- // Export to global object
- else __g.core = __e;
+ #exportScript
}(1, 1);
- """
+ """ \ No newline at end of file
diff --git a/node_modules/core-js/build/config.js b/node_modules/core-js/build/config.js
index 8df3dc6eb..df09eb12d 100644
--- a/node_modules/core-js/build/config.js
+++ b/node_modules/core-js/build/config.js
@@ -1,4 +1,255 @@
module.exports = {
+ list: [
+ 'es6.symbol',
+ 'es6.object.define-property',
+ 'es6.object.define-properties',
+ 'es6.object.get-own-property-descriptor',
+ 'es6.object.create',
+ 'es6.object.get-prototype-of',
+ 'es6.object.keys',
+ 'es6.object.get-own-property-names',
+ 'es6.object.freeze',
+ 'es6.object.seal',
+ 'es6.object.prevent-extensions',
+ 'es6.object.is-frozen',
+ 'es6.object.is-sealed',
+ 'es6.object.is-extensible',
+ 'es6.object.assign',
+ 'es6.object.is',
+ 'es6.object.set-prototype-of',
+ 'es6.object.to-string',
+ 'es6.function.bind',
+ 'es6.function.name',
+ 'es6.function.has-instance',
+ 'es6.number.constructor',
+ 'es6.number.to-fixed',
+ 'es6.number.to-precision',
+ 'es6.number.epsilon',
+ 'es6.number.is-finite',
+ 'es6.number.is-integer',
+ 'es6.number.is-nan',
+ 'es6.number.is-safe-integer',
+ 'es6.number.max-safe-integer',
+ 'es6.number.min-safe-integer',
+ 'es6.number.parse-float',
+ 'es6.number.parse-int',
+ 'es6.parse-int',
+ 'es6.parse-float',
+ 'es6.math.acosh',
+ 'es6.math.asinh',
+ 'es6.math.atanh',
+ 'es6.math.cbrt',
+ 'es6.math.clz32',
+ 'es6.math.cosh',
+ 'es6.math.expm1',
+ 'es6.math.fround',
+ 'es6.math.hypot',
+ 'es6.math.imul',
+ 'es6.math.log10',
+ 'es6.math.log1p',
+ 'es6.math.log2',
+ 'es6.math.sign',
+ 'es6.math.sinh',
+ 'es6.math.tanh',
+ 'es6.math.trunc',
+ 'es6.string.from-code-point',
+ 'es6.string.raw',
+ 'es6.string.trim',
+ 'es6.string.code-point-at',
+ 'es6.string.ends-with',
+ 'es6.string.includes',
+ 'es6.string.repeat',
+ 'es6.string.starts-with',
+ 'es6.string.iterator',
+ 'es6.string.anchor',
+ 'es6.string.big',
+ 'es6.string.blink',
+ 'es6.string.bold',
+ 'es6.string.fixed',
+ 'es6.string.fontcolor',
+ 'es6.string.fontsize',
+ 'es6.string.italics',
+ 'es6.string.link',
+ 'es6.string.small',
+ 'es6.string.strike',
+ 'es6.string.sub',
+ 'es6.string.sup',
+ 'es6.array.is-array',
+ 'es6.array.from',
+ 'es6.array.of',
+ 'es6.array.join',
+ 'es6.array.slice',
+ 'es6.array.sort',
+ 'es6.array.for-each',
+ 'es6.array.map',
+ 'es6.array.filter',
+ 'es6.array.some',
+ 'es6.array.every',
+ 'es6.array.reduce',
+ 'es6.array.reduce-right',
+ 'es6.array.index-of',
+ 'es6.array.last-index-of',
+ 'es6.array.copy-within',
+ 'es6.array.fill',
+ 'es6.array.find',
+ 'es6.array.find-index',
+ 'es6.array.iterator',
+ 'es6.array.species',
+ 'es6.regexp.constructor',
+ 'es6.regexp.to-string',
+ 'es6.regexp.flags',
+ 'es6.regexp.match',
+ 'es6.regexp.replace',
+ 'es6.regexp.search',
+ 'es6.regexp.split',
+ 'es6.promise',
+ 'es6.map',
+ 'es6.set',
+ 'es6.weak-map',
+ 'es6.weak-set',
+ 'es6.reflect.apply',
+ 'es6.reflect.construct',
+ 'es6.reflect.define-property',
+ 'es6.reflect.delete-property',
+ 'es6.reflect.enumerate',
+ 'es6.reflect.get',
+ 'es6.reflect.get-own-property-descriptor',
+ 'es6.reflect.get-prototype-of',
+ 'es6.reflect.has',
+ 'es6.reflect.is-extensible',
+ 'es6.reflect.own-keys',
+ 'es6.reflect.prevent-extensions',
+ 'es6.reflect.set',
+ 'es6.reflect.set-prototype-of',
+ 'es6.date.now',
+ 'es6.date.to-json',
+ 'es6.date.to-iso-string',
+ 'es6.date.to-string',
+ 'es6.date.to-primitive',
+ 'es6.typed.array-buffer',
+ 'es6.typed.data-view',
+ 'es6.typed.int8-array',
+ 'es6.typed.uint8-array',
+ 'es6.typed.uint8-clamped-array',
+ 'es6.typed.int16-array',
+ 'es6.typed.uint16-array',
+ 'es6.typed.int32-array',
+ 'es6.typed.uint32-array',
+ 'es6.typed.float32-array',
+ 'es6.typed.float64-array',
+ 'es7.array.includes',
+ 'es7.string.at',
+ 'es7.string.pad-start',
+ 'es7.string.pad-end',
+ 'es7.string.trim-left',
+ 'es7.string.trim-right',
+ 'es7.string.match-all',
+ 'es7.symbol.async-iterator',
+ 'es7.symbol.observable',
+ 'es7.object.get-own-property-descriptors',
+ 'es7.object.values',
+ 'es7.object.entries',
+ 'es7.object.enumerable-keys',
+ 'es7.object.enumerable-values',
+ 'es7.object.enumerable-entries',
+ 'es7.object.define-getter',
+ 'es7.object.define-setter',
+ 'es7.object.lookup-getter',
+ 'es7.object.lookup-setter',
+ 'es7.map.to-json',
+ 'es7.set.to-json',
+ 'es7.system.global',
+ 'es7.error.is-error',
+ 'es7.math.iaddh',
+ 'es7.math.isubh',
+ 'es7.math.imulh',
+ 'es7.math.umulh',
+ 'es7.reflect.define-metadata',
+ 'es7.reflect.delete-metadata',
+ 'es7.reflect.get-metadata',
+ 'es7.reflect.get-metadata-keys',
+ 'es7.reflect.get-own-metadata',
+ 'es7.reflect.get-own-metadata-keys',
+ 'es7.reflect.has-metadata',
+ 'es7.reflect.has-own-metadata',
+ 'es7.reflect.metadata',
+ 'es7.asap',
+ 'es7.observable',
+ 'web.immediate',
+ 'web.dom.iterable',
+ 'web.timers',
+ 'core.dict',
+ 'core.get-iterator-method',
+ 'core.get-iterator',
+ 'core.is-iterable',
+ 'core.delay',
+ 'core.function.part',
+ 'core.object.is-object',
+ 'core.object.classof',
+ 'core.object.define',
+ 'core.object.make',
+ 'core.number.iterator',
+ 'core.regexp.escape',
+ 'core.string.escape-html',
+ 'core.string.unescape-html',
+ ],
+ experimental: [
+ 'es7.object.enumerable-keys',
+ 'es7.object.enumerable-values',
+ 'es7.object.enumerable-entries',
+ ],
+ libraryBlacklist: [
+ 'es6.object.to-string',
+ 'es6.function.name',
+ 'es6.regexp.constructor',
+ 'es6.regexp.to-string',
+ 'es6.regexp.flags',
+ 'es6.regexp.match',
+ 'es6.regexp.replace',
+ 'es6.regexp.search',
+ 'es6.regexp.split',
+ 'es6.number.constructor',
+ 'es6.date.to-string',
+ 'es6.date.to-primitive',
+ ],
+ es5SpecialCase: [
+ 'es6.object.create',
+ 'es6.object.define-property',
+ 'es6.object.define-properties',
+ 'es6.object.get-own-property-descriptor',
+ 'es6.object.get-prototype-of',
+ 'es6.object.keys',
+ 'es6.object.get-own-property-names',
+ 'es6.object.freeze',
+ 'es6.object.seal',
+ 'es6.object.prevent-extensions',
+ 'es6.object.is-frozen',
+ 'es6.object.is-sealed',
+ 'es6.object.is-extensible',
+ 'es6.function.bind',
+ 'es6.array.is-array',
+ 'es6.array.join',
+ 'es6.array.slice',
+ 'es6.array.sort',
+ 'es6.array.for-each',
+ 'es6.array.map',
+ 'es6.array.filter',
+ 'es6.array.some',
+ 'es6.array.every',
+ 'es6.array.reduce',
+ 'es6.array.reduce-right',
+ 'es6.array.index-of',
+ 'es6.array.last-index-of',
+ 'es6.number.to-fixed',
+ 'es6.number.to-precision',
+ 'es6.date.now',
+ 'es6.date.to-iso-string',
+ 'es6.date.to-json',
+ 'es6.string.trim',
+ 'es6.regexp.to-string',
+ 'es6.parse-int',
+ 'es6.parse-float',
+ ],
banner: '/**\n' +
' * core-js ' + require('../package').version + '\n' +
' * https://github.com/zloirock/core-js\n' +
diff --git a/node_modules/core-js/build/index.js b/node_modules/core-js/build/index.js
index d9cf11f35..26bdec415 100644
--- a/node_modules/core-js/build/index.js
+++ b/node_modules/core-js/build/index.js
@@ -1,94 +1,100 @@
-// Generated by LiveScript 1.3.1
+// Generated by LiveScript 1.4.0
(function(){
- var banner, ref$, readFile, writeFile, unlink, path, webpack, list, experimental, libraryBlacklist, es5SpecialCase;
- banner = require('./config').banner;
+ var Promise, ref$, list, experimental, libraryBlacklist, es5SpecialCase, banner, readFile, writeFile, unlink, join, webpack, temp;
+ Promise = require('../library/fn/promise');
+ ref$ = require('./config'), list = ref$.list, experimental = ref$.experimental, libraryBlacklist = ref$.libraryBlacklist, es5SpecialCase = ref$.es5SpecialCase, banner = ref$.banner;
ref$ = require('fs'), readFile = ref$.readFile, writeFile = ref$.writeFile, unlink = ref$.unlink;
- path = require('path');
+ join = require('path').join;
webpack = require('webpack');
- list = ['es5', 'es6.symbol', 'es6.object.assign', 'es6.object.is', 'es6.object.set-prototype-of', 'es6.object.to-string', 'es6.object.freeze', 'es6.object.seal', 'es6.object.prevent-extensions', 'es6.object.is-frozen', 'es6.object.is-sealed', 'es6.object.is-extensible', 'es6.object.get-own-property-descriptor', 'es6.object.get-prototype-of', 'es6.object.keys', 'es6.object.get-own-property-names', 'es6.function.name', 'es6.function.has-instance', 'es6.number.constructor', 'es6.number.epsilon', 'es6.number.is-finite', 'es6.number.is-integer', 'es6.number.is-nan', 'es6.number.is-safe-integer', 'es6.number.max-safe-integer', 'es6.number.min-safe-integer', 'es6.number.parse-float', 'es6.number.parse-int', 'es6.math.acosh', 'es6.math.asinh', 'es6.math.atanh', 'es6.math.cbrt', 'es6.math.clz32', 'es6.math.cosh', 'es6.math.expm1', 'es6.math.fround', 'es6.math.hypot', 'es6.math.imul', 'es6.math.log10', 'es6.math.log1p', 'es6.math.log2', 'es6.math.sign', 'es6.math.sinh', 'es6.math.tanh', 'es6.math.trunc', 'es6.string.from-code-point', 'es6.string.raw', 'es6.string.trim', 'es6.string.code-point-at', 'es6.string.ends-with', 'es6.string.includes', 'es6.string.repeat', 'es6.string.starts-with', 'es6.string.iterator', 'es6.array.from', 'es6.array.of', 'es6.array.iterator', 'es6.array.species', 'es6.array.copy-within', 'es6.array.fill', 'es6.array.find', 'es6.array.find-index', 'es6.regexp.constructor', 'es6.regexp.flags', 'es6.regexp.match', 'es6.regexp.replace', 'es6.regexp.search', 'es6.regexp.split', 'es6.promise', 'es6.map', 'es6.set', 'es6.weak-map', 'es6.weak-set', 'es6.reflect.apply', 'es6.reflect.construct', 'es6.reflect.define-property', 'es6.reflect.delete-property', 'es6.reflect.enumerate', 'es6.reflect.get', 'es6.reflect.get-own-property-descriptor', 'es6.reflect.get-prototype-of', 'es6.reflect.has', 'es6.reflect.is-extensible', 'es6.reflect.own-keys', 'es6.reflect.prevent-extensions', 'es6.reflect.set', 'es6.reflect.set-prototype-of', 'es6.date.to-string', 'es6.typed.array-buffer', 'es6.typed.data-view', 'es6.typed.int8-array', 'es6.typed.uint8-array', 'es6.typed.uint8-clamped-array', 'es6.typed.int16-array', 'es6.typed.uint16-array', 'es6.typed.int32-array', 'es6.typed.uint32-array', 'es6.typed.float32-array', 'es6.typed.float64-array', 'es7.array.includes', 'es7.string.at', 'es7.string.pad-left', 'es7.string.pad-right', 'es7.string.trim-left', 'es7.string.trim-right', 'es7.regexp.escape', 'es7.object.get-own-property-descriptors', 'es7.object.values', 'es7.object.entries', 'es7.map.to-json', 'es7.set.to-json', 'web.immediate', 'web.dom.iterable', 'web.timers', 'core.dict', 'core.get-iterator-method', 'core.get-iterator', 'core.is-iterable', 'core.delay', 'core.function.part', 'core.object.is-object', 'core.object.classof', 'core.object.define', 'core.object.make', 'core.number.iterator', 'core.string.escape-html', 'core.string.unescape-html', 'core.log', 'js.array.statics'];
- experimental = ['es6.date.to-string', 'es6.typed.array-buffer', 'es6.typed.data-view', 'es6.typed.int8-array', 'es6.typed.uint8-array', 'es6.typed.uint8-clamped-array', 'es6.typed.int16-array', 'es6.typed.uint16-array', 'es6.typed.int32-array', 'es6.typed.uint32-array', 'es6.typed.float32-array', 'es6.typed.float64-array'];
- libraryBlacklist = ['es6.object.to-string', 'es6.function.name', 'es6.regexp.constructor', 'es6.regexp.flags', 'es6.regexp.match', 'es6.regexp.replace', 'es6.regexp.search', 'es6.regexp.split', 'es6.number.constructor'];
- es5SpecialCase = ['es6.object.freeze', 'es6.object.seal', 'es6.object.prevent-extensions', 'es6.object.is-frozen', 'es6.object.is-sealed', 'es6.object.is-extensible', 'es6.string.trim'];
- module.exports = function(arg$, next){
- var modules, ref$, blacklist, library;
+ temp = require('temp');
+ module.exports = function(arg$){
+ var modules, ref$, blacklist, library, umd, this$ = this;
modules = (ref$ = arg$.modules) != null
? ref$
: [], blacklist = (ref$ = arg$.blacklist) != null
? ref$
- : [], library = (ref$ = arg$.library) != null ? ref$ : false;
- (function(){
- var check, i$, x$, ref$, len$, y$, ns, name, j$, len1$, TARGET, this$ = this;
- check = function(err){
- if (err) {
- next(err, '');
- return true;
- }
- };
- if (this.exp) {
- for (i$ = 0, len$ = (ref$ = experimental).length; i$ < len$; ++i$) {
- x$ = ref$[i$];
- this[x$] = true;
- }
- }
- if (this.es5) {
- for (i$ = 0, len$ = (ref$ = es5SpecialCase).length; i$ < len$; ++i$) {
- y$ = ref$[i$];
- this[y$] = true;
+ : [], library = (ref$ = arg$.library) != null ? ref$ : false, umd = (ref$ = arg$.umd) != null ? ref$ : true;
+ return new Promise(function(resolve, reject){
+ (function(){
+ var i$, x$, ref$, len$, y$, ns, name, j$, len1$, TARGET, this$ = this;
+ if (this.exp) {
+ for (i$ = 0, len$ = (ref$ = experimental).length; i$ < len$; ++i$) {
+ x$ = ref$[i$];
+ this[x$] = true;
+ }
}
- }
- for (ns in this) {
- if (this[ns]) {
- for (i$ = 0, len$ = (ref$ = list).length; i$ < len$; ++i$) {
- name = ref$[i$];
- if (name.indexOf(ns + ".") === 0 && !in$(name, experimental)) {
- this[name] = true;
- }
+ if (this.es5) {
+ for (i$ = 0, len$ = (ref$ = es5SpecialCase).length; i$ < len$; ++i$) {
+ y$ = ref$[i$];
+ this[y$] = true;
}
}
- }
- if (library) {
- blacklist = blacklist.concat(libraryBlacklist);
- }
- for (i$ = 0, len$ = blacklist.length; i$ < len$; ++i$) {
- ns = blacklist[i$];
- for (j$ = 0, len1$ = (ref$ = list).length; j$ < len1$; ++j$) {
- name = ref$[j$];
- if (name === ns || name.indexOf(ns + ".") === 0) {
- this[name] = false;
+ for (ns in this) {
+ if (this[ns]) {
+ for (i$ = 0, len$ = (ref$ = list).length; i$ < len$; ++i$) {
+ name = ref$[i$];
+ if (name.indexOf(ns + ".") === 0 && !in$(name, experimental)) {
+ this[name] = true;
+ }
+ }
}
}
- }
- TARGET = "./__tmp" + Math.random() + "__.js";
- webpack({
- entry: list.filter(function(it){
- return this$[it];
- }).map(function(it){
- return path.join(__dirname, '../', (library ? '/library' : '') + "/modules/" + it);
- }),
- output: {
- path: '',
- filename: TARGET
+ if (library) {
+ blacklist = blacklist.concat(libraryBlacklist);
}
- }, function(err, info){
- if (check(err)) {
- return;
+ for (i$ = 0, len$ = blacklist.length; i$ < len$; ++i$) {
+ ns = blacklist[i$];
+ for (j$ = 0, len1$ = (ref$ = list).length; j$ < len1$; ++j$) {
+ name = ref$[j$];
+ if (name === ns || name.indexOf(ns + ".") === 0) {
+ this[name] = false;
+ }
+ }
}
- readFile(TARGET, function(err, script){
- if (check(err)) {
- return;
+ TARGET = temp.path({
+ suffix: '.js'
+ });
+ webpack({
+ entry: list.filter(function(it){
+ return this$[it];
+ }).map(function(it){
+ if (library) {
+ return join(__dirname, '..', 'library', 'modules', it);
+ } else {
+ return join(__dirname, '..', 'modules', it);
+ }
+ }),
+ output: {
+ path: '',
+ filename: TARGET
+ }
+ }, function(err, info){
+ if (err) {
+ return reject(err);
}
- unlink(TARGET, function(err){
- if (check(err)) {
- return;
+ readFile(TARGET, function(err, script){
+ if (err) {
+ return reject(err);
}
- next(null, "" + banner + "\n!function(__e, __g, undefined){\n'use strict';\n" + script + "\n// CommonJS export\nif(typeof module != 'undefined' && module.exports)module.exports = __e;\n// RequireJS export\nelse if(typeof define == 'function' && define.amd)define(function(){return __e});\n// Export to global object\nelse __g.core = __e;\n}(1, 1);");
+ unlink(TARGET, function(err){
+ var exportScript;
+ if (err) {
+ return reject(err);
+ }
+ if (umd) {
+ exportScript = "// CommonJS export\nif(typeof module != 'undefined' && module.exports)module.exports = __e;\n// RequireJS export\nelse if(typeof define == 'function' && define.amd)define(function(){return __e});\n// Export to global object\nelse __g.core = __e;";
+ } else {
+ exportScript = "";
+ }
+ resolve("" + banner + "\n!function(__e, __g, undefined){\n'use strict';\n" + script + "\n" + exportScript + "\n}(1, 1);");
+ });
});
});
- });
- }.call(modules.reduce(function(memo, it){
- memo[it] = true;
- return memo;
- }, {})));
+ }.call(modules.reduce(function(memo, it){
+ memo[it] = true;
+ return memo;
+ }, {})));
+ });
};
function in$(x, xs){
var i = -1, l = xs.length >>> 0;
diff --git a/node_modules/core-js/client/core.js b/node_modules/core-js/client/core.js
index b9bac6c55..1e470de77 100644
--- a/node_modules/core-js/client/core.js
+++ b/node_modules/core-js/client/core.js
@@ -1,5 +1,5 @@
/**
- * core-js 1.2.7
+ * core-js 2.4.1
* https://github.com/zloirock/core-js
* License: http://rock.mit-license.org
* © 2016 Denis Pushkarev
@@ -53,122 +53,194 @@
/***/ function(module, exports, __webpack_require__) {
__webpack_require__(1);
- __webpack_require__(34);
- __webpack_require__(40);
- __webpack_require__(42);
- __webpack_require__(44);
- __webpack_require__(46);
- __webpack_require__(48);
__webpack_require__(50);
__webpack_require__(51);
__webpack_require__(52);
- __webpack_require__(53);
__webpack_require__(54);
__webpack_require__(55);
- __webpack_require__(56);
- __webpack_require__(57);
__webpack_require__(58);
__webpack_require__(59);
__webpack_require__(60);
__webpack_require__(61);
+ __webpack_require__(62);
+ __webpack_require__(63);
__webpack_require__(64);
__webpack_require__(65);
__webpack_require__(66);
__webpack_require__(68);
- __webpack_require__(69);
__webpack_require__(70);
- __webpack_require__(71);
__webpack_require__(72);
- __webpack_require__(73);
__webpack_require__(74);
- __webpack_require__(76);
__webpack_require__(77);
__webpack_require__(78);
- __webpack_require__(80);
- __webpack_require__(81);
- __webpack_require__(82);
- __webpack_require__(84);
- __webpack_require__(85);
+ __webpack_require__(79);
+ __webpack_require__(83);
__webpack_require__(86);
__webpack_require__(87);
__webpack_require__(88);
__webpack_require__(89);
- __webpack_require__(90);
__webpack_require__(91);
__webpack_require__(92);
__webpack_require__(93);
__webpack_require__(94);
__webpack_require__(95);
- __webpack_require__(96);
__webpack_require__(97);
__webpack_require__(99);
+ __webpack_require__(100);
+ __webpack_require__(101);
__webpack_require__(103);
__webpack_require__(104);
- __webpack_require__(106);
+ __webpack_require__(105);
__webpack_require__(107);
+ __webpack_require__(108);
+ __webpack_require__(109);
__webpack_require__(111);
+ __webpack_require__(112);
+ __webpack_require__(113);
+ __webpack_require__(114);
+ __webpack_require__(115);
__webpack_require__(116);
__webpack_require__(117);
+ __webpack_require__(118);
+ __webpack_require__(119);
__webpack_require__(120);
+ __webpack_require__(121);
__webpack_require__(122);
+ __webpack_require__(123);
__webpack_require__(124);
__webpack_require__(126);
- __webpack_require__(127);
- __webpack_require__(128);
__webpack_require__(130);
__webpack_require__(131);
+ __webpack_require__(132);
__webpack_require__(133);
- __webpack_require__(134);
- __webpack_require__(135);
- __webpack_require__(136);
+ __webpack_require__(137);
+ __webpack_require__(139);
+ __webpack_require__(140);
+ __webpack_require__(141);
+ __webpack_require__(142);
__webpack_require__(143);
+ __webpack_require__(144);
+ __webpack_require__(145);
__webpack_require__(146);
__webpack_require__(147);
+ __webpack_require__(148);
__webpack_require__(149);
__webpack_require__(150);
__webpack_require__(151);
__webpack_require__(152);
- __webpack_require__(153);
- __webpack_require__(154);
- __webpack_require__(155);
- __webpack_require__(156);
- __webpack_require__(157);
__webpack_require__(158);
__webpack_require__(159);
- __webpack_require__(160);
+ __webpack_require__(161);
__webpack_require__(162);
__webpack_require__(163);
- __webpack_require__(164);
- __webpack_require__(165);
- __webpack_require__(166);
__webpack_require__(167);
+ __webpack_require__(168);
__webpack_require__(169);
__webpack_require__(170);
__webpack_require__(171);
- __webpack_require__(172);
+ __webpack_require__(173);
__webpack_require__(174);
__webpack_require__(175);
- __webpack_require__(177);
- __webpack_require__(178);
- __webpack_require__(180);
+ __webpack_require__(176);
+ __webpack_require__(179);
__webpack_require__(181);
__webpack_require__(182);
__webpack_require__(183);
- __webpack_require__(186);
- __webpack_require__(114);
- __webpack_require__(188);
+ __webpack_require__(185);
__webpack_require__(187);
__webpack_require__(189);
__webpack_require__(190);
__webpack_require__(191);
- __webpack_require__(192);
__webpack_require__(193);
+ __webpack_require__(194);
__webpack_require__(195);
__webpack_require__(196);
- __webpack_require__(197);
- __webpack_require__(198);
- __webpack_require__(199);
- module.exports = __webpack_require__(200);
+ __webpack_require__(203);
+ __webpack_require__(206);
+ __webpack_require__(207);
+ __webpack_require__(209);
+ __webpack_require__(210);
+ __webpack_require__(211);
+ __webpack_require__(212);
+ __webpack_require__(213);
+ __webpack_require__(214);
+ __webpack_require__(215);
+ __webpack_require__(216);
+ __webpack_require__(217);
+ __webpack_require__(218);
+ __webpack_require__(219);
+ __webpack_require__(220);
+ __webpack_require__(222);
+ __webpack_require__(223);
+ __webpack_require__(224);
+ __webpack_require__(225);
+ __webpack_require__(226);
+ __webpack_require__(227);
+ __webpack_require__(228);
+ __webpack_require__(229);
+ __webpack_require__(231);
+ __webpack_require__(234);
+ __webpack_require__(235);
+ __webpack_require__(237);
+ __webpack_require__(238);
+ __webpack_require__(239);
+ __webpack_require__(240);
+ __webpack_require__(241);
+ __webpack_require__(242);
+ __webpack_require__(243);
+ __webpack_require__(244);
+ __webpack_require__(245);
+ __webpack_require__(246);
+ __webpack_require__(247);
+ __webpack_require__(249);
+ __webpack_require__(250);
+ __webpack_require__(251);
+ __webpack_require__(252);
+ __webpack_require__(253);
+ __webpack_require__(254);
+ __webpack_require__(255);
+ __webpack_require__(256);
+ __webpack_require__(258);
+ __webpack_require__(259);
+ __webpack_require__(261);
+ __webpack_require__(262);
+ __webpack_require__(263);
+ __webpack_require__(264);
+ __webpack_require__(267);
+ __webpack_require__(268);
+ __webpack_require__(269);
+ __webpack_require__(270);
+ __webpack_require__(271);
+ __webpack_require__(272);
+ __webpack_require__(273);
+ __webpack_require__(274);
+ __webpack_require__(276);
+ __webpack_require__(277);
+ __webpack_require__(278);
+ __webpack_require__(279);
+ __webpack_require__(280);
+ __webpack_require__(281);
+ __webpack_require__(282);
+ __webpack_require__(283);
+ __webpack_require__(284);
+ __webpack_require__(285);
+ __webpack_require__(286);
+ __webpack_require__(287);
+ __webpack_require__(288);
+ __webpack_require__(291);
+ __webpack_require__(156);
+ __webpack_require__(293);
+ __webpack_require__(292);
+ __webpack_require__(294);
+ __webpack_require__(295);
+ __webpack_require__(296);
+ __webpack_require__(297);
+ __webpack_require__(298);
+ __webpack_require__(300);
+ __webpack_require__(301);
+ __webpack_require__(302);
+ __webpack_require__(304);
+ module.exports = __webpack_require__(305);
/***/ },
@@ -176,309 +248,289 @@
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , $export = __webpack_require__(3)
- , DESCRIPTORS = __webpack_require__(8)
- , createDesc = __webpack_require__(7)
- , html = __webpack_require__(14)
- , cel = __webpack_require__(15)
- , has = __webpack_require__(17)
- , cof = __webpack_require__(18)
- , invoke = __webpack_require__(19)
- , fails = __webpack_require__(9)
- , anObject = __webpack_require__(20)
- , aFunction = __webpack_require__(13)
- , isObject = __webpack_require__(16)
- , toObject = __webpack_require__(21)
- , toIObject = __webpack_require__(23)
- , toInteger = __webpack_require__(25)
- , toIndex = __webpack_require__(26)
- , toLength = __webpack_require__(27)
- , IObject = __webpack_require__(24)
- , IE_PROTO = __webpack_require__(11)('__proto__')
- , createArrayMethod = __webpack_require__(28)
- , arrayIndexOf = __webpack_require__(33)(false)
- , ObjectProto = Object.prototype
- , ArrayProto = Array.prototype
- , arraySlice = ArrayProto.slice
- , arrayJoin = ArrayProto.join
- , defineProperty = $.setDesc
- , getOwnDescriptor = $.getDesc
- , defineProperties = $.setDescs
- , factories = {}
- , IE8_DOM_DEFINE;
-
- if(!DESCRIPTORS){
- IE8_DOM_DEFINE = !fails(function(){
- return defineProperty(cel('div'), 'a', {get: function(){ return 7; }}).a != 7;
- });
- $.setDesc = function(O, P, Attributes){
- if(IE8_DOM_DEFINE)try {
- return defineProperty(O, P, Attributes);
- } catch(e){ /* empty */ }
- if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
- if('value' in Attributes)anObject(O)[P] = Attributes.value;
- return O;
- };
- $.getDesc = function(O, P){
- if(IE8_DOM_DEFINE)try {
- return getOwnDescriptor(O, P);
- } catch(e){ /* empty */ }
- if(has(O, P))return createDesc(!ObjectProto.propertyIsEnumerable.call(O, P), O[P]);
- };
- $.setDescs = defineProperties = function(O, Properties){
- anObject(O);
- var keys = $.getKeys(Properties)
- , length = keys.length
- , i = 0
- , P;
- while(length > i)$.setDesc(O, P = keys[i++], Properties[P]);
- return O;
- };
- }
- $export($export.S + $export.F * !DESCRIPTORS, 'Object', {
- // 19.1.2.6 / 15.2.3.3 Object.getOwnPropertyDescriptor(O, P)
- getOwnPropertyDescriptor: $.getDesc,
- // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
- defineProperty: $.setDesc,
- // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
- defineProperties: defineProperties
- });
-
- // IE 8- don't enum bug keys
- var keys1 = ('constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,' +
- 'toLocaleString,toString,valueOf').split(',')
- // Additional keys for getOwnPropertyNames
- , keys2 = keys1.concat('length', 'prototype')
- , keysLen1 = keys1.length;
-
- // Create object with `null` prototype: use iframe Object with cleared prototype
- var createDict = function(){
- // Thrash, waste and sodomy: IE GC bug
- var iframe = cel('iframe')
- , i = keysLen1
- , gt = '>'
- , iframeDocument;
- iframe.style.display = 'none';
- html.appendChild(iframe);
- iframe.src = 'javascript:'; // eslint-disable-line no-script-url
- // createDict = iframe.contentWindow.Object;
- // html.removeChild(iframe);
- iframeDocument = iframe.contentWindow.document;
- iframeDocument.open();
- iframeDocument.write('<script>document.F=Object</script' + gt);
- iframeDocument.close();
- createDict = iframeDocument.F;
- while(i--)delete createDict.prototype[keys1[i]];
- return createDict();
+ // ECMAScript 6 symbols shim
+ var global = __webpack_require__(2)
+ , has = __webpack_require__(3)
+ , DESCRIPTORS = __webpack_require__(4)
+ , $export = __webpack_require__(6)
+ , redefine = __webpack_require__(16)
+ , META = __webpack_require__(20).KEY
+ , $fails = __webpack_require__(5)
+ , shared = __webpack_require__(21)
+ , setToStringTag = __webpack_require__(22)
+ , uid = __webpack_require__(17)
+ , wks = __webpack_require__(23)
+ , wksExt = __webpack_require__(24)
+ , wksDefine = __webpack_require__(25)
+ , keyOf = __webpack_require__(27)
+ , enumKeys = __webpack_require__(40)
+ , isArray = __webpack_require__(43)
+ , anObject = __webpack_require__(10)
+ , toIObject = __webpack_require__(30)
+ , toPrimitive = __webpack_require__(14)
+ , createDesc = __webpack_require__(15)
+ , _create = __webpack_require__(44)
+ , gOPNExt = __webpack_require__(47)
+ , $GOPD = __webpack_require__(49)
+ , $DP = __webpack_require__(9)
+ , $keys = __webpack_require__(28)
+ , gOPD = $GOPD.f
+ , dP = $DP.f
+ , gOPN = gOPNExt.f
+ , $Symbol = global.Symbol
+ , $JSON = global.JSON
+ , _stringify = $JSON && $JSON.stringify
+ , PROTOTYPE = 'prototype'
+ , HIDDEN = wks('_hidden')
+ , TO_PRIMITIVE = wks('toPrimitive')
+ , isEnum = {}.propertyIsEnumerable
+ , SymbolRegistry = shared('symbol-registry')
+ , AllSymbols = shared('symbols')
+ , OPSymbols = shared('op-symbols')
+ , ObjectProto = Object[PROTOTYPE]
+ , USE_NATIVE = typeof $Symbol == 'function'
+ , QObject = global.QObject;
+ // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
+ var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
+
+ // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
+ var setSymbolDesc = DESCRIPTORS && $fails(function(){
+ return _create(dP({}, 'a', {
+ get: function(){ return dP(this, 'a', {value: 7}).a; }
+ })).a != 7;
+ }) ? function(it, key, D){
+ var protoDesc = gOPD(ObjectProto, key);
+ if(protoDesc)delete ObjectProto[key];
+ dP(it, key, D);
+ if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);
+ } : dP;
+
+ var wrap = function(tag){
+ var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
+ sym._k = tag;
+ return sym;
};
- var createGetKeys = function(names, length){
- return function(object){
- var O = toIObject(object)
- , i = 0
- , result = []
- , key;
- for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
- // Don't enum bug & hidden keys
- while(length > i)if(has(O, key = names[i++])){
- ~arrayIndexOf(result, key) || result.push(key);
- }
- return result;
- };
+
+ var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){
+ return typeof it == 'symbol';
+ } : function(it){
+ return it instanceof $Symbol;
};
- var Empty = function(){};
- $export($export.S, 'Object', {
- // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
- getPrototypeOf: $.getProto = $.getProto || function(O){
- O = toObject(O);
- if(has(O, IE_PROTO))return O[IE_PROTO];
- if(typeof O.constructor == 'function' && O instanceof O.constructor){
- return O.constructor.prototype;
- } return O instanceof Object ? ObjectProto : null;
- },
- // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
- getOwnPropertyNames: $.getNames = $.getNames || createGetKeys(keys2, keys2.length, true),
- // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
- create: $.create = $.create || function(O, /*?*/Properties){
- var result;
- if(O !== null){
- Empty.prototype = anObject(O);
- result = new Empty();
- Empty.prototype = null;
- // add "__proto__" for Object.getPrototypeOf shim
- result[IE_PROTO] = O;
- } else result = createDict();
- return Properties === undefined ? result : defineProperties(result, Properties);
- },
- // 19.1.2.14 / 15.2.3.14 Object.keys(O)
- keys: $.getKeys = $.getKeys || createGetKeys(keys1, keysLen1, false)
- });
- var construct = function(F, len, args){
- if(!(len in factories)){
- for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';
- factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
- }
- return factories[len](F, args);
+ var $defineProperty = function defineProperty(it, key, D){
+ if(it === ObjectProto)$defineProperty(OPSymbols, key, D);
+ anObject(it);
+ key = toPrimitive(key, true);
+ anObject(D);
+ if(has(AllSymbols, key)){
+ if(!D.enumerable){
+ if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));
+ it[HIDDEN][key] = true;
+ } else {
+ if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
+ D = _create(D, {enumerable: createDesc(0, false)});
+ } return setSymbolDesc(it, key, D);
+ } return dP(it, key, D);
+ };
+ var $defineProperties = function defineProperties(it, P){
+ anObject(it);
+ var keys = enumKeys(P = toIObject(P))
+ , i = 0
+ , l = keys.length
+ , key;
+ while(l > i)$defineProperty(it, key = keys[i++], P[key]);
+ return it;
+ };
+ var $create = function create(it, P){
+ return P === undefined ? _create(it) : $defineProperties(_create(it), P);
+ };
+ var $propertyIsEnumerable = function propertyIsEnumerable(key){
+ var E = isEnum.call(this, key = toPrimitive(key, true));
+ if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;
+ return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
+ };
+ var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
+ it = toIObject(it);
+ key = toPrimitive(key, true);
+ if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;
+ var D = gOPD(it, key);
+ if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
+ return D;
+ };
+ var $getOwnPropertyNames = function getOwnPropertyNames(it){
+ var names = gOPN(toIObject(it))
+ , result = []
+ , i = 0
+ , key;
+ while(names.length > i){
+ if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);
+ } return result;
+ };
+ var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
+ var IS_OP = it === ObjectProto
+ , names = gOPN(IS_OP ? OPSymbols : toIObject(it))
+ , result = []
+ , i = 0
+ , key;
+ while(names.length > i){
+ if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);
+ } return result;
};
- // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
- $export($export.P, 'Function', {
- bind: function bind(that /*, args... */){
- var fn = aFunction(this)
- , partArgs = arraySlice.call(arguments, 1);
- var bound = function(/* args... */){
- var args = partArgs.concat(arraySlice.call(arguments));
- return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
+ // 19.4.1.1 Symbol([description])
+ if(!USE_NATIVE){
+ $Symbol = function Symbol(){
+ if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');
+ var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
+ var $set = function(value){
+ if(this === ObjectProto)$set.call(OPSymbols, value);
+ if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
+ setSymbolDesc(this, tag, createDesc(1, value));
};
- if(isObject(fn.prototype))bound.prototype = fn.prototype;
- return bound;
- }
- });
+ if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});
+ return wrap(tag);
+ };
+ redefine($Symbol[PROTOTYPE], 'toString', function toString(){
+ return this._k;
+ });
- // fallback for not array-like ES3 strings and DOM objects
- $export($export.P + $export.F * fails(function(){
- if(html)arraySlice.call(html);
- }), 'Array', {
- slice: function(begin, end){
- var len = toLength(this.length)
- , klass = cof(this);
- end = end === undefined ? len : end;
- if(klass == 'Array')return arraySlice.call(this, begin, end);
- var start = toIndex(begin, len)
- , upTo = toIndex(end, len)
- , size = toLength(upTo - start)
- , cloned = Array(size)
- , i = 0;
- for(; i < size; i++)cloned[i] = klass == 'String'
- ? this.charAt(start + i)
- : this[start + i];
- return cloned;
+ $GOPD.f = $getOwnPropertyDescriptor;
+ $DP.f = $defineProperty;
+ __webpack_require__(48).f = gOPNExt.f = $getOwnPropertyNames;
+ __webpack_require__(42).f = $propertyIsEnumerable;
+ __webpack_require__(41).f = $getOwnPropertySymbols;
+
+ if(DESCRIPTORS && !__webpack_require__(26)){
+ redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
}
- });
- $export($export.P + $export.F * (IObject != Object), 'Array', {
- join: function join(separator){
- return arrayJoin.call(IObject(this), separator === undefined ? ',' : separator);
+
+ wksExt.f = function(name){
+ return wrap(wks(name));
}
- });
+ }
- // 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
- $export($export.S, 'Array', {isArray: __webpack_require__(30)});
+ $export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});
- var createArrayReduce = function(isRight){
- return function(callbackfn, memo){
- aFunction(callbackfn);
- var O = IObject(this)
- , length = toLength(O.length)
- , index = isRight ? length - 1 : 0
- , i = isRight ? -1 : 1;
- if(arguments.length < 2)for(;;){
- if(index in O){
- memo = O[index];
- index += i;
- break;
- }
- index += i;
- if(isRight ? index < 0 : length <= index){
- throw TypeError('Reduce of empty array with no initial value');
- }
- }
- for(;isRight ? index >= 0 : length > index; index += i)if(index in O){
- memo = callbackfn(memo, O[index], index, this);
- }
- return memo;
- };
- };
+ for(var symbols = (
+ // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
+ 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
+ ).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);
- var methodize = function($fn){
- return function(arg1/*, arg2 = undefined */){
- return $fn(this, arg1, arguments[1]);
- };
- };
+ for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);
- $export($export.P, 'Array', {
- // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
- forEach: $.each = $.each || methodize(createArrayMethod(0)),
- // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
- map: methodize(createArrayMethod(1)),
- // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
- filter: methodize(createArrayMethod(2)),
- // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
- some: methodize(createArrayMethod(3)),
- // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
- every: methodize(createArrayMethod(4)),
- // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
- reduce: createArrayReduce(false),
- // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
- reduceRight: createArrayReduce(true),
- // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
- indexOf: methodize(arrayIndexOf),
- // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
- lastIndexOf: function(el, fromIndex /* = @[*-1] */){
- var O = toIObject(this)
- , length = toLength(O.length)
- , index = length - 1;
- if(arguments.length > 1)index = Math.min(index, toInteger(fromIndex));
- if(index < 0)index = toLength(length + index);
- for(;index >= 0; index--)if(index in O)if(O[index] === el)return index;
- return -1;
+ $export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
+ // 19.4.2.1 Symbol.for(key)
+ 'for': function(key){
+ return has(SymbolRegistry, key += '')
+ ? SymbolRegistry[key]
+ : SymbolRegistry[key] = $Symbol(key);
+ },
+ // 19.4.2.5 Symbol.keyFor(sym)
+ keyFor: function keyFor(key){
+ if(isSymbol(key))return keyOf(SymbolRegistry, key);
+ throw TypeError(key + ' is not a symbol!');
+ },
+ useSetter: function(){ setter = true; },
+ useSimple: function(){ setter = false; }
+ });
+
+ $export($export.S + $export.F * !USE_NATIVE, 'Object', {
+ // 19.1.2.2 Object.create(O [, Properties])
+ create: $create,
+ // 19.1.2.4 Object.defineProperty(O, P, Attributes)
+ defineProperty: $defineProperty,
+ // 19.1.2.3 Object.defineProperties(O, Properties)
+ defineProperties: $defineProperties,
+ // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
+ getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
+ // 19.1.2.7 Object.getOwnPropertyNames(O)
+ getOwnPropertyNames: $getOwnPropertyNames,
+ // 19.1.2.8 Object.getOwnPropertySymbols(O)
+ getOwnPropertySymbols: $getOwnPropertySymbols
+ });
+
+ // 24.3.2 JSON.stringify(value [, replacer [, space]])
+ $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){
+ var S = $Symbol();
+ // MS Edge converts symbol values to JSON as {}
+ // WebKit converts symbol values to JSON as null
+ // V8 throws on boxed symbols
+ return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
+ })), 'JSON', {
+ stringify: function stringify(it){
+ if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
+ var args = [it]
+ , i = 1
+ , replacer, $replacer;
+ while(arguments.length > i)args.push(arguments[i++]);
+ replacer = args[1];
+ if(typeof replacer == 'function')$replacer = replacer;
+ if($replacer || !isArray(replacer))replacer = function(key, value){
+ if($replacer)value = $replacer.call(this, key, value);
+ if(!isSymbol(value))return value;
+ };
+ args[1] = replacer;
+ return _stringify.apply($JSON, args);
}
});
- // 20.3.3.1 / 15.9.4.4 Date.now()
- $export($export.S, 'Date', {now: function(){ return +new Date; }});
+ // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
+ $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(8)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
+ // 19.4.3.5 Symbol.prototype[@@toStringTag]
+ setToStringTag($Symbol, 'Symbol');
+ // 20.2.1.9 Math[@@toStringTag]
+ setToStringTag(Math, 'Math', true);
+ // 24.3.3 JSON[@@toStringTag]
+ setToStringTag(global.JSON, 'JSON', true);
- var lz = function(num){
- return num > 9 ? num : '0' + num;
+/***/ },
+/* 2 */
+/***/ function(module, exports) {
+
+ // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+ var global = module.exports = typeof window != 'undefined' && window.Math == Math
+ ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
+ if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
+
+/***/ },
+/* 3 */
+/***/ function(module, exports) {
+
+ var hasOwnProperty = {}.hasOwnProperty;
+ module.exports = function(it, key){
+ return hasOwnProperty.call(it, key);
};
- // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
- // PhantomJS / old WebKit has a broken implementations
- $export($export.P + $export.F * (fails(function(){
- return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';
- }) || !fails(function(){
- new Date(NaN).toISOString();
- })), 'Date', {
- toISOString: function toISOString(){
- if(!isFinite(this))throw RangeError('Invalid time value');
- var d = this
- , y = d.getUTCFullYear()
- , m = d.getUTCMilliseconds()
- , s = y < 0 ? '-' : y > 9999 ? '+' : '';
- return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
- '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
- 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
- ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
- }
+/***/ },
+/* 4 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // Thank's IE8 for his funny defineProperty
+ module.exports = !__webpack_require__(5)(function(){
+ return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
});
/***/ },
-/* 2 */
+/* 5 */
/***/ function(module, exports) {
- var $Object = Object;
- module.exports = {
- create: $Object.create,
- getProto: $Object.getPrototypeOf,
- isEnum: {}.propertyIsEnumerable,
- getDesc: $Object.getOwnPropertyDescriptor,
- setDesc: $Object.defineProperty,
- setDescs: $Object.defineProperties,
- getKeys: $Object.keys,
- getNames: $Object.getOwnPropertyNames,
- getSymbols: $Object.getOwnPropertySymbols,
- each: [].forEach
+ module.exports = function(exec){
+ try {
+ return !!exec();
+ } catch(e){
+ return true;
+ }
};
/***/ },
-/* 3 */
+/* 6 */
/***/ function(module, exports, __webpack_require__) {
- var global = __webpack_require__(4)
- , core = __webpack_require__(5)
- , hide = __webpack_require__(6)
- , redefine = __webpack_require__(10)
- , ctx = __webpack_require__(12)
+ var global = __webpack_require__(2)
+ , core = __webpack_require__(7)
+ , hide = __webpack_require__(8)
+ , redefine = __webpack_require__(16)
+ , ctx = __webpack_require__(18)
, PROTOTYPE = 'prototype';
var $export = function(type, name, source){
@@ -494,13 +546,13 @@
if(IS_GLOBAL)source = name;
for(key in source){
// contains in native
- own = !IS_FORCED && target && key in target;
+ own = !IS_FORCED && target && target[key] !== undefined;
// export native or passed
out = (own ? target : source)[key];
// bind timers to global for call from export context
exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
// extend global
- if(target && !own)redefine(target, key, out);
+ if(target)redefine(target, key, out, type & $export.U);
// export
if(exports[key] != out)hide(exports, key, exp);
if(IS_PROTO && expProto[key] != out)expProto[key] = out;
@@ -508,111 +560,164 @@
};
global.core = core;
// type bitmap
- $export.F = 1; // forced
- $export.G = 2; // global
- $export.S = 4; // static
- $export.P = 8; // proto
- $export.B = 16; // bind
- $export.W = 32; // wrap
+ $export.F = 1; // forced
+ $export.G = 2; // global
+ $export.S = 4; // static
+ $export.P = 8; // proto
+ $export.B = 16; // bind
+ $export.W = 32; // wrap
+ $export.U = 64; // safe
+ $export.R = 128; // real proto method for `library`
module.exports = $export;
/***/ },
-/* 4 */
-/***/ function(module, exports) {
-
- // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
- var global = module.exports = typeof window != 'undefined' && window.Math == Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
- if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
-
-/***/ },
-/* 5 */
+/* 7 */
/***/ function(module, exports) {
- var core = module.exports = {version: '1.2.6'};
+ var core = module.exports = {version: '2.4.0'};
if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
/***/ },
-/* 6 */
+/* 8 */
/***/ function(module, exports, __webpack_require__) {
- var $ = __webpack_require__(2)
- , createDesc = __webpack_require__(7);
- module.exports = __webpack_require__(8) ? function(object, key, value){
- return $.setDesc(object, key, createDesc(1, value));
+ var dP = __webpack_require__(9)
+ , createDesc = __webpack_require__(15);
+ module.exports = __webpack_require__(4) ? function(object, key, value){
+ return dP.f(object, key, createDesc(1, value));
} : function(object, key, value){
object[key] = value;
return object;
};
/***/ },
-/* 7 */
+/* 9 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var anObject = __webpack_require__(10)
+ , IE8_DOM_DEFINE = __webpack_require__(12)
+ , toPrimitive = __webpack_require__(14)
+ , dP = Object.defineProperty;
+
+ exports.f = __webpack_require__(4) ? Object.defineProperty : function defineProperty(O, P, Attributes){
+ anObject(O);
+ P = toPrimitive(P, true);
+ anObject(Attributes);
+ if(IE8_DOM_DEFINE)try {
+ return dP(O, P, Attributes);
+ } catch(e){ /* empty */ }
+ if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
+ if('value' in Attributes)O[P] = Attributes.value;
+ return O;
+ };
+
+/***/ },
+/* 10 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isObject = __webpack_require__(11);
+ module.exports = function(it){
+ if(!isObject(it))throw TypeError(it + ' is not an object!');
+ return it;
+ };
+
+/***/ },
+/* 11 */
/***/ function(module, exports) {
- module.exports = function(bitmap, value){
- return {
- enumerable : !(bitmap & 1),
- configurable: !(bitmap & 2),
- writable : !(bitmap & 4),
- value : value
- };
+ module.exports = function(it){
+ return typeof it === 'object' ? it !== null : typeof it === 'function';
};
/***/ },
-/* 8 */
+/* 12 */
/***/ function(module, exports, __webpack_require__) {
- // Thank's IE8 for his funny defineProperty
- module.exports = !__webpack_require__(9)(function(){
- return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
+ module.exports = !__webpack_require__(4) && !__webpack_require__(5)(function(){
+ return Object.defineProperty(__webpack_require__(13)('div'), 'a', {get: function(){ return 7; }}).a != 7;
});
/***/ },
-/* 9 */
+/* 13 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isObject = __webpack_require__(11)
+ , document = __webpack_require__(2).document
+ // in old IE typeof document.createElement is 'object'
+ , is = isObject(document) && isObject(document.createElement);
+ module.exports = function(it){
+ return is ? document.createElement(it) : {};
+ };
+
+/***/ },
+/* 14 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 7.1.1 ToPrimitive(input [, PreferredType])
+ var isObject = __webpack_require__(11);
+ // instead of the ES6 spec version, we didn't implement @@toPrimitive case
+ // and the second argument - flag - preferred type is a string
+ module.exports = function(it, S){
+ if(!isObject(it))return it;
+ var fn, val;
+ if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+ if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
+ if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+ throw TypeError("Can't convert object to primitive value");
+ };
+
+/***/ },
+/* 15 */
/***/ function(module, exports) {
- module.exports = function(exec){
- try {
- return !!exec();
- } catch(e){
- return true;
- }
+ module.exports = function(bitmap, value){
+ return {
+ enumerable : !(bitmap & 1),
+ configurable: !(bitmap & 2),
+ writable : !(bitmap & 4),
+ value : value
+ };
};
/***/ },
-/* 10 */
+/* 16 */
/***/ function(module, exports, __webpack_require__) {
- // add fake Function#toString
- // for correct work wrapped methods / constructors with methods like LoDash isNative
- var global = __webpack_require__(4)
- , hide = __webpack_require__(6)
- , SRC = __webpack_require__(11)('src')
+ var global = __webpack_require__(2)
+ , hide = __webpack_require__(8)
+ , has = __webpack_require__(3)
+ , SRC = __webpack_require__(17)('src')
, TO_STRING = 'toString'
, $toString = Function[TO_STRING]
, TPL = ('' + $toString).split(TO_STRING);
- __webpack_require__(5).inspectSource = function(it){
+ __webpack_require__(7).inspectSource = function(it){
return $toString.call(it);
};
(module.exports = function(O, key, val, safe){
- if(typeof val == 'function'){
- val.hasOwnProperty(SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
- val.hasOwnProperty('name') || hide(val, 'name', key);
- }
+ var isFunction = typeof val == 'function';
+ if(isFunction)has(val, 'name') || hide(val, 'name', key);
+ if(O[key] === val)return;
+ if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
if(O === global){
O[key] = val;
} else {
- if(!safe)delete O[key];
- hide(O, key, val);
+ if(!safe){
+ delete O[key];
+ hide(O, key, val);
+ } else {
+ if(O[key])O[key] = val;
+ else hide(O, key, val);
+ }
}
+ // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, TO_STRING, function toString(){
return typeof this == 'function' && this[SRC] || $toString.call(this);
});
/***/ },
-/* 11 */
+/* 17 */
/***/ function(module, exports) {
var id = 0
@@ -622,11 +727,11 @@
};
/***/ },
-/* 12 */
+/* 18 */
/***/ function(module, exports, __webpack_require__) {
// optional / simple context binding
- var aFunction = __webpack_require__(13);
+ var aFunction = __webpack_require__(19);
module.exports = function(fn, that, length){
aFunction(fn);
if(that === undefined)return fn;
@@ -647,7 +752,7 @@
};
/***/ },
-/* 13 */
+/* 19 */
/***/ function(module, exports) {
module.exports = function(it){
@@ -656,93 +761,210 @@
};
/***/ },
-/* 14 */
+/* 20 */
/***/ function(module, exports, __webpack_require__) {
- module.exports = __webpack_require__(4).document && document.documentElement;
+ var META = __webpack_require__(17)('meta')
+ , isObject = __webpack_require__(11)
+ , has = __webpack_require__(3)
+ , setDesc = __webpack_require__(9).f
+ , id = 0;
+ var isExtensible = Object.isExtensible || function(){
+ return true;
+ };
+ var FREEZE = !__webpack_require__(5)(function(){
+ return isExtensible(Object.preventExtensions({}));
+ });
+ var setMeta = function(it){
+ setDesc(it, META, {value: {
+ i: 'O' + ++id, // object ID
+ w: {} // weak collections IDs
+ }});
+ };
+ var fastKey = function(it, create){
+ // return primitive with prefix
+ if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+ if(!has(it, META)){
+ // can't set metadata to uncaught frozen object
+ if(!isExtensible(it))return 'F';
+ // not necessary to add metadata
+ if(!create)return 'E';
+ // add missing metadata
+ setMeta(it);
+ // return object ID
+ } return it[META].i;
+ };
+ var getWeak = function(it, create){
+ if(!has(it, META)){
+ // can't set metadata to uncaught frozen object
+ if(!isExtensible(it))return true;
+ // not necessary to add metadata
+ if(!create)return false;
+ // add missing metadata
+ setMeta(it);
+ // return hash weak collections IDs
+ } return it[META].w;
+ };
+ // add metadata on freeze-family methods calling
+ var onFreeze = function(it){
+ if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);
+ return it;
+ };
+ var meta = module.exports = {
+ KEY: META,
+ NEED: false,
+ fastKey: fastKey,
+ getWeak: getWeak,
+ onFreeze: onFreeze
+ };
/***/ },
-/* 15 */
+/* 21 */
/***/ function(module, exports, __webpack_require__) {
- var isObject = __webpack_require__(16)
- , document = __webpack_require__(4).document
- // in old IE typeof document.createElement is 'object'
- , is = isObject(document) && isObject(document.createElement);
- module.exports = function(it){
- return is ? document.createElement(it) : {};
+ var global = __webpack_require__(2)
+ , SHARED = '__core-js_shared__'
+ , store = global[SHARED] || (global[SHARED] = {});
+ module.exports = function(key){
+ return store[key] || (store[key] = {});
};
/***/ },
-/* 16 */
-/***/ function(module, exports) {
+/* 22 */
+/***/ function(module, exports, __webpack_require__) {
- module.exports = function(it){
- return typeof it === 'object' ? it !== null : typeof it === 'function';
+ var def = __webpack_require__(9).f
+ , has = __webpack_require__(3)
+ , TAG = __webpack_require__(23)('toStringTag');
+
+ module.exports = function(it, tag, stat){
+ if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
};
/***/ },
-/* 17 */
-/***/ function(module, exports) {
+/* 23 */
+/***/ function(module, exports, __webpack_require__) {
- var hasOwnProperty = {}.hasOwnProperty;
- module.exports = function(it, key){
- return hasOwnProperty.call(it, key);
+ var store = __webpack_require__(21)('wks')
+ , uid = __webpack_require__(17)
+ , Symbol = __webpack_require__(2).Symbol
+ , USE_SYMBOL = typeof Symbol == 'function';
+
+ var $exports = module.exports = function(name){
+ return store[name] || (store[name] =
+ USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};
+ $exports.store = store;
+
/***/ },
-/* 18 */
-/***/ function(module, exports) {
+/* 24 */
+/***/ function(module, exports, __webpack_require__) {
- var toString = {}.toString;
+ exports.f = __webpack_require__(23);
- module.exports = function(it){
- return toString.call(it).slice(8, -1);
+/***/ },
+/* 25 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var global = __webpack_require__(2)
+ , core = __webpack_require__(7)
+ , LIBRARY = __webpack_require__(26)
+ , wksExt = __webpack_require__(24)
+ , defineProperty = __webpack_require__(9).f;
+ module.exports = function(name){
+ var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
+ if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});
};
/***/ },
-/* 19 */
+/* 26 */
/***/ function(module, exports) {
- // fast apply, http://jsperf.lnkit.com/fast-apply/5
- module.exports = function(fn, args, that){
- var un = that === undefined;
- switch(args.length){
- case 0: return un ? fn()
- : fn.call(that);
- case 1: return un ? fn(args[0])
- : fn.call(that, args[0]);
- case 2: return un ? fn(args[0], args[1])
- : fn.call(that, args[0], args[1]);
- case 3: return un ? fn(args[0], args[1], args[2])
- : fn.call(that, args[0], args[1], args[2]);
- case 4: return un ? fn(args[0], args[1], args[2], args[3])
- : fn.call(that, args[0], args[1], args[2], args[3]);
- } return fn.apply(that, args);
+ module.exports = false;
+
+/***/ },
+/* 27 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var getKeys = __webpack_require__(28)
+ , toIObject = __webpack_require__(30);
+ module.exports = function(object, el){
+ var O = toIObject(object)
+ , keys = getKeys(O)
+ , length = keys.length
+ , index = 0
+ , key;
+ while(length > index)if(O[key = keys[index++]] === el)return key;
};
/***/ },
-/* 20 */
+/* 28 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 19.1.2.14 / 15.2.3.14 Object.keys(O)
+ var $keys = __webpack_require__(29)
+ , enumBugKeys = __webpack_require__(39);
+
+ module.exports = Object.keys || function keys(O){
+ return $keys(O, enumBugKeys);
+ };
+
+/***/ },
+/* 29 */
/***/ function(module, exports, __webpack_require__) {
- var isObject = __webpack_require__(16);
+ var has = __webpack_require__(3)
+ , toIObject = __webpack_require__(30)
+ , arrayIndexOf = __webpack_require__(34)(false)
+ , IE_PROTO = __webpack_require__(38)('IE_PROTO');
+
+ module.exports = function(object, names){
+ var O = toIObject(object)
+ , i = 0
+ , result = []
+ , key;
+ for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
+ // Don't enum bug & hidden keys
+ while(names.length > i)if(has(O, key = names[i++])){
+ ~arrayIndexOf(result, key) || result.push(key);
+ }
+ return result;
+ };
+
+/***/ },
+/* 30 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // to indexed object, toObject with fallback for non-array-like ES3 strings
+ var IObject = __webpack_require__(31)
+ , defined = __webpack_require__(33);
module.exports = function(it){
- if(!isObject(it))throw TypeError(it + ' is not an object!');
- return it;
+ return IObject(defined(it));
};
/***/ },
-/* 21 */
+/* 31 */
/***/ function(module, exports, __webpack_require__) {
- // 7.1.13 ToObject(argument)
- var defined = __webpack_require__(22);
+ // fallback for non-array-like ES3 and non-enumerable old V8 strings
+ var cof = __webpack_require__(32);
+ module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
+ return cof(it) == 'String' ? it.split('') : Object(it);
+ };
+
+/***/ },
+/* 32 */
+/***/ function(module, exports) {
+
+ var toString = {}.toString;
+
module.exports = function(it){
- return Object(defined(it));
+ return toString.call(it).slice(8, -1);
};
/***/ },
-/* 22 */
+/* 33 */
/***/ function(module, exports) {
// 7.2.1 RequireObjectCoercible(argument)
@@ -752,28 +974,44 @@
};
/***/ },
-/* 23 */
+/* 34 */
/***/ function(module, exports, __webpack_require__) {
- // to indexed object, toObject with fallback for non-array-like ES3 strings
- var IObject = __webpack_require__(24)
- , defined = __webpack_require__(22);
- module.exports = function(it){
- return IObject(defined(it));
+ // false -> Array#indexOf
+ // true -> Array#includes
+ var toIObject = __webpack_require__(30)
+ , toLength = __webpack_require__(35)
+ , toIndex = __webpack_require__(37);
+ module.exports = function(IS_INCLUDES){
+ return function($this, el, fromIndex){
+ var O = toIObject($this)
+ , length = toLength(O.length)
+ , index = toIndex(fromIndex, length)
+ , value;
+ // Array#includes uses SameValueZero equality algorithm
+ if(IS_INCLUDES && el != el)while(length > index){
+ value = O[index++];
+ if(value != value)return true;
+ // Array#toIndex ignores holes, Array#includes - not
+ } else for(;length > index; index++)if(IS_INCLUDES || index in O){
+ if(O[index] === el)return IS_INCLUDES || index || 0;
+ } return !IS_INCLUDES && -1;
+ };
};
/***/ },
-/* 24 */
+/* 35 */
/***/ function(module, exports, __webpack_require__) {
- // fallback for non-array-like ES3 and non-enumerable old V8 strings
- var cof = __webpack_require__(18);
- module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
- return cof(it) == 'String' ? it.split('') : Object(it);
+ // 7.1.15 ToLength
+ var toInteger = __webpack_require__(36)
+ , min = Math.min;
+ module.exports = function(it){
+ return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};
/***/ },
-/* 25 */
+/* 36 */
/***/ function(module, exports) {
// 7.1.4 ToInteger
@@ -784,10 +1022,10 @@
};
/***/ },
-/* 26 */
+/* 37 */
/***/ function(module, exports, __webpack_require__) {
- var toInteger = __webpack_require__(25)
+ var toInteger = __webpack_require__(36)
, max = Math.max
, min = Math.min;
module.exports = function(index, length){
@@ -796,510 +1034,451 @@
};
/***/ },
-/* 27 */
+/* 38 */
/***/ function(module, exports, __webpack_require__) {
- // 7.1.15 ToLength
- var toInteger = __webpack_require__(25)
- , min = Math.min;
- module.exports = function(it){
- return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
+ var shared = __webpack_require__(21)('keys')
+ , uid = __webpack_require__(17);
+ module.exports = function(key){
+ return shared[key] || (shared[key] = uid(key));
};
/***/ },
-/* 28 */
-/***/ function(module, exports, __webpack_require__) {
+/* 39 */
+/***/ function(module, exports) {
- // 0 -> Array#forEach
- // 1 -> Array#map
- // 2 -> Array#filter
- // 3 -> Array#some
- // 4 -> Array#every
- // 5 -> Array#find
- // 6 -> Array#findIndex
- var ctx = __webpack_require__(12)
- , IObject = __webpack_require__(24)
- , toObject = __webpack_require__(21)
- , toLength = __webpack_require__(27)
- , asc = __webpack_require__(29);
- module.exports = function(TYPE){
- var IS_MAP = TYPE == 1
- , IS_FILTER = TYPE == 2
- , IS_SOME = TYPE == 3
- , IS_EVERY = TYPE == 4
- , IS_FIND_INDEX = TYPE == 6
- , NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
- return function($this, callbackfn, that){
- var O = toObject($this)
- , self = IObject(O)
- , f = ctx(callbackfn, that, 3)
- , length = toLength(self.length)
- , index = 0
- , result = IS_MAP ? asc($this, length) : IS_FILTER ? asc($this, 0) : undefined
- , val, res;
- for(;length > index; index++)if(NO_HOLES || index in self){
- val = self[index];
- res = f(val, index, O);
- if(TYPE){
- if(IS_MAP)result[index] = res; // map
- else if(res)switch(TYPE){
- case 3: return true; // some
- case 5: return val; // find
- case 6: return index; // findIndex
- case 2: result.push(val); // filter
- } else if(IS_EVERY)return false; // every
- }
- }
- return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
- };
- };
+ // IE 8- don't enum bug keys
+ module.exports = (
+ 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
+ ).split(',');
/***/ },
-/* 29 */
+/* 40 */
/***/ function(module, exports, __webpack_require__) {
- // 9.4.2.3 ArraySpeciesCreate(originalArray, length)
- var isObject = __webpack_require__(16)
- , isArray = __webpack_require__(30)
- , SPECIES = __webpack_require__(31)('species');
- module.exports = function(original, length){
- var C;
- if(isArray(original)){
- C = original.constructor;
- // cross-realm fallback
- if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;
- if(isObject(C)){
- C = C[SPECIES];
- if(C === null)C = undefined;
- }
- } return new (C === undefined ? Array : C)(length);
+ // all enumerable object keys, includes symbols
+ var getKeys = __webpack_require__(28)
+ , gOPS = __webpack_require__(41)
+ , pIE = __webpack_require__(42);
+ module.exports = function(it){
+ var result = getKeys(it)
+ , getSymbols = gOPS.f;
+ if(getSymbols){
+ var symbols = getSymbols(it)
+ , isEnum = pIE.f
+ , i = 0
+ , key;
+ while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);
+ } return result;
};
/***/ },
-/* 30 */
+/* 41 */
+/***/ function(module, exports) {
+
+ exports.f = Object.getOwnPropertySymbols;
+
+/***/ },
+/* 42 */
+/***/ function(module, exports) {
+
+ exports.f = {}.propertyIsEnumerable;
+
+/***/ },
+/* 43 */
/***/ function(module, exports, __webpack_require__) {
// 7.2.2 IsArray(argument)
- var cof = __webpack_require__(18);
- module.exports = Array.isArray || function(arg){
+ var cof = __webpack_require__(32);
+ module.exports = Array.isArray || function isArray(arg){
return cof(arg) == 'Array';
};
/***/ },
-/* 31 */
+/* 44 */
/***/ function(module, exports, __webpack_require__) {
- var store = __webpack_require__(32)('wks')
- , uid = __webpack_require__(11)
- , Symbol = __webpack_require__(4).Symbol;
- module.exports = function(name){
- return store[name] || (store[name] =
- Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));
+ // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
+ var anObject = __webpack_require__(10)
+ , dPs = __webpack_require__(45)
+ , enumBugKeys = __webpack_require__(39)
+ , IE_PROTO = __webpack_require__(38)('IE_PROTO')
+ , Empty = function(){ /* empty */ }
+ , PROTOTYPE = 'prototype';
+
+ // Create object with fake `null` prototype: use iframe Object with cleared prototype
+ var createDict = function(){
+ // Thrash, waste and sodomy: IE GC bug
+ var iframe = __webpack_require__(13)('iframe')
+ , i = enumBugKeys.length
+ , lt = '<'
+ , gt = '>'
+ , iframeDocument;
+ iframe.style.display = 'none';
+ __webpack_require__(46).appendChild(iframe);
+ iframe.src = 'javascript:'; // eslint-disable-line no-script-url
+ // createDict = iframe.contentWindow.Object;
+ // html.removeChild(iframe);
+ iframeDocument = iframe.contentWindow.document;
+ iframeDocument.open();
+ iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
+ iframeDocument.close();
+ createDict = iframeDocument.F;
+ while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];
+ return createDict();
+ };
+
+ module.exports = Object.create || function create(O, Properties){
+ var result;
+ if(O !== null){
+ Empty[PROTOTYPE] = anObject(O);
+ result = new Empty;
+ Empty[PROTOTYPE] = null;
+ // add "__proto__" for Object.getPrototypeOf polyfill
+ result[IE_PROTO] = O;
+ } else result = createDict();
+ return Properties === undefined ? result : dPs(result, Properties);
};
+
/***/ },
-/* 32 */
+/* 45 */
/***/ function(module, exports, __webpack_require__) {
- var global = __webpack_require__(4)
- , SHARED = '__core-js_shared__'
- , store = global[SHARED] || (global[SHARED] = {});
- module.exports = function(key){
- return store[key] || (store[key] = {});
+ var dP = __webpack_require__(9)
+ , anObject = __webpack_require__(10)
+ , getKeys = __webpack_require__(28);
+
+ module.exports = __webpack_require__(4) ? Object.defineProperties : function defineProperties(O, Properties){
+ anObject(O);
+ var keys = getKeys(Properties)
+ , length = keys.length
+ , i = 0
+ , P;
+ while(length > i)dP.f(O, P = keys[i++], Properties[P]);
+ return O;
};
/***/ },
-/* 33 */
+/* 46 */
/***/ function(module, exports, __webpack_require__) {
- // false -> Array#indexOf
- // true -> Array#includes
- var toIObject = __webpack_require__(23)
- , toLength = __webpack_require__(27)
- , toIndex = __webpack_require__(26);
- module.exports = function(IS_INCLUDES){
- return function($this, el, fromIndex){
- var O = toIObject($this)
- , length = toLength(O.length)
- , index = toIndex(fromIndex, length)
- , value;
- // Array#includes uses SameValueZero equality algorithm
- if(IS_INCLUDES && el != el)while(length > index){
- value = O[index++];
- if(value != value)return true;
- // Array#toIndex ignores holes, Array#includes - not
- } else for(;length > index; index++)if(IS_INCLUDES || index in O){
- if(O[index] === el)return IS_INCLUDES || index;
- } return !IS_INCLUDES && -1;
- };
- };
+ module.exports = __webpack_require__(2).document && document.documentElement;
/***/ },
-/* 34 */
+/* 47 */
/***/ function(module, exports, __webpack_require__) {
- 'use strict';
- // ECMAScript 6 symbols shim
- var $ = __webpack_require__(2)
- , global = __webpack_require__(4)
- , has = __webpack_require__(17)
- , DESCRIPTORS = __webpack_require__(8)
- , $export = __webpack_require__(3)
- , redefine = __webpack_require__(10)
- , $fails = __webpack_require__(9)
- , shared = __webpack_require__(32)
- , setToStringTag = __webpack_require__(35)
- , uid = __webpack_require__(11)
- , wks = __webpack_require__(31)
- , keyOf = __webpack_require__(36)
- , $names = __webpack_require__(37)
- , enumKeys = __webpack_require__(38)
- , isArray = __webpack_require__(30)
- , anObject = __webpack_require__(20)
- , toIObject = __webpack_require__(23)
- , createDesc = __webpack_require__(7)
- , getDesc = $.getDesc
- , setDesc = $.setDesc
- , _create = $.create
- , getNames = $names.get
- , $Symbol = global.Symbol
- , $JSON = global.JSON
- , _stringify = $JSON && $JSON.stringify
- , setter = false
- , HIDDEN = wks('_hidden')
- , isEnum = $.isEnum
- , SymbolRegistry = shared('symbol-registry')
- , AllSymbols = shared('symbols')
- , useNative = typeof $Symbol == 'function'
- , ObjectProto = Object.prototype;
+ // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
+ var toIObject = __webpack_require__(30)
+ , gOPN = __webpack_require__(48).f
+ , toString = {}.toString;
- // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
- var setSymbolDesc = DESCRIPTORS && $fails(function(){
- return _create(setDesc({}, 'a', {
- get: function(){ return setDesc(this, 'a', {value: 7}).a; }
- })).a != 7;
- }) ? function(it, key, D){
- var protoDesc = getDesc(ObjectProto, key);
- if(protoDesc)delete ObjectProto[key];
- setDesc(it, key, D);
- if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);
- } : setDesc;
+ var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
+ ? Object.getOwnPropertyNames(window) : [];
- var wrap = function(tag){
- var sym = AllSymbols[tag] = _create($Symbol.prototype);
- sym._k = tag;
- DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {
- configurable: true,
- set: function(value){
- if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
- setSymbolDesc(this, tag, createDesc(1, value));
- }
- });
- return sym;
+ var getWindowNames = function(it){
+ try {
+ return gOPN(it);
+ } catch(e){
+ return windowNames.slice();
+ }
};
- var isSymbol = function(it){
- return typeof it == 'symbol';
+ module.exports.f = function getOwnPropertyNames(it){
+ return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
};
- var $defineProperty = function defineProperty(it, key, D){
- if(D && has(AllSymbols, key)){
- if(!D.enumerable){
- if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));
- it[HIDDEN][key] = true;
- } else {
- if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
- D = _create(D, {enumerable: createDesc(0, false)});
- } return setSymbolDesc(it, key, D);
- } return setDesc(it, key, D);
- };
- var $defineProperties = function defineProperties(it, P){
- anObject(it);
- var keys = enumKeys(P = toIObject(P))
- , i = 0
- , l = keys.length
- , key;
- while(l > i)$defineProperty(it, key = keys[i++], P[key]);
- return it;
- };
- var $create = function create(it, P){
- return P === undefined ? _create(it) : $defineProperties(_create(it), P);
- };
- var $propertyIsEnumerable = function propertyIsEnumerable(key){
- var E = isEnum.call(this, key);
- return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]
- ? E : true;
- };
- var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
- var D = getDesc(it = toIObject(it), key);
- if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
- return D;
- };
- var $getOwnPropertyNames = function getOwnPropertyNames(it){
- var names = getNames(toIObject(it))
- , result = []
- , i = 0
- , key;
- while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);
- return result;
+
+/***/ },
+/* 48 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
+ var $keys = __webpack_require__(29)
+ , hiddenKeys = __webpack_require__(39).concat('length', 'prototype');
+
+ exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){
+ return $keys(O, hiddenKeys);
};
- var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
- var names = getNames(toIObject(it))
- , result = []
- , i = 0
- , key;
- while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);
- return result;
+
+/***/ },
+/* 49 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var pIE = __webpack_require__(42)
+ , createDesc = __webpack_require__(15)
+ , toIObject = __webpack_require__(30)
+ , toPrimitive = __webpack_require__(14)
+ , has = __webpack_require__(3)
+ , IE8_DOM_DEFINE = __webpack_require__(12)
+ , gOPD = Object.getOwnPropertyDescriptor;
+
+ exports.f = __webpack_require__(4) ? gOPD : function getOwnPropertyDescriptor(O, P){
+ O = toIObject(O);
+ P = toPrimitive(P, true);
+ if(IE8_DOM_DEFINE)try {
+ return gOPD(O, P);
+ } catch(e){ /* empty */ }
+ if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);
};
- var $stringify = function stringify(it){
- if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
- var args = [it]
- , i = 1
- , $$ = arguments
- , replacer, $replacer;
- while($$.length > i)args.push($$[i++]);
- replacer = args[1];
- if(typeof replacer == 'function')$replacer = replacer;
- if($replacer || !isArray(replacer))replacer = function(key, value){
- if($replacer)value = $replacer.call(this, key, value);
- if(!isSymbol(value))return value;
+
+/***/ },
+/* 50 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6);
+ // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
+ $export($export.S + $export.F * !__webpack_require__(4), 'Object', {defineProperty: __webpack_require__(9).f});
+
+/***/ },
+/* 51 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6);
+ // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
+ $export($export.S + $export.F * !__webpack_require__(4), 'Object', {defineProperties: __webpack_require__(45)});
+
+/***/ },
+/* 52 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
+ var toIObject = __webpack_require__(30)
+ , $getOwnPropertyDescriptor = __webpack_require__(49).f;
+
+ __webpack_require__(53)('getOwnPropertyDescriptor', function(){
+ return function getOwnPropertyDescriptor(it, key){
+ return $getOwnPropertyDescriptor(toIObject(it), key);
};
- args[1] = replacer;
- return _stringify.apply($JSON, args);
- };
- var buggyJSON = $fails(function(){
- var S = $Symbol();
- // MS Edge converts symbol values to JSON as {}
- // WebKit converts symbol values to JSON as null
- // V8 throws on boxed symbols
- return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
});
- // 19.4.1.1 Symbol([description])
- if(!useNative){
- $Symbol = function Symbol(){
- if(isSymbol(this))throw TypeError('Symbol is not a constructor');
- return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));
- };
- redefine($Symbol.prototype, 'toString', function toString(){
- return this._k;
- });
+/***/ },
+/* 53 */
+/***/ function(module, exports, __webpack_require__) {
- isSymbol = function(it){
- return it instanceof $Symbol;
- };
+ // most Object methods by ES6 should accept primitives
+ var $export = __webpack_require__(6)
+ , core = __webpack_require__(7)
+ , fails = __webpack_require__(5);
+ module.exports = function(KEY, exec){
+ var fn = (core.Object || {})[KEY] || Object[KEY]
+ , exp = {};
+ exp[KEY] = exec(fn);
+ $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
+ };
+
+/***/ },
+/* 54 */
+/***/ function(module, exports, __webpack_require__) {
- $.create = $create;
- $.isEnum = $propertyIsEnumerable;
- $.getDesc = $getOwnPropertyDescriptor;
- $.setDesc = $defineProperty;
- $.setDescs = $defineProperties;
- $.getNames = $names.get = $getOwnPropertyNames;
- $.getSymbols = $getOwnPropertySymbols;
+ var $export = __webpack_require__(6)
+ // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
+ $export($export.S, 'Object', {create: __webpack_require__(44)});
- if(DESCRIPTORS && !__webpack_require__(39)){
- redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
- }
- }
+/***/ },
+/* 55 */
+/***/ function(module, exports, __webpack_require__) {
- var symbolStatics = {
- // 19.4.2.1 Symbol.for(key)
- 'for': function(key){
- return has(SymbolRegistry, key += '')
- ? SymbolRegistry[key]
- : SymbolRegistry[key] = $Symbol(key);
- },
- // 19.4.2.5 Symbol.keyFor(sym)
- keyFor: function keyFor(key){
- return keyOf(SymbolRegistry, key);
- },
- useSetter: function(){ setter = true; },
- useSimple: function(){ setter = false; }
- };
- // 19.4.2.2 Symbol.hasInstance
- // 19.4.2.3 Symbol.isConcatSpreadable
- // 19.4.2.4 Symbol.iterator
- // 19.4.2.6 Symbol.match
- // 19.4.2.8 Symbol.replace
- // 19.4.2.9 Symbol.search
- // 19.4.2.10 Symbol.species
- // 19.4.2.11 Symbol.split
- // 19.4.2.12 Symbol.toPrimitive
- // 19.4.2.13 Symbol.toStringTag
- // 19.4.2.14 Symbol.unscopables
- $.each.call((
- 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +
- 'species,split,toPrimitive,toStringTag,unscopables'
- ).split(','), function(it){
- var sym = wks(it);
- symbolStatics[it] = useNative ? sym : wrap(sym);
+ // 19.1.2.9 Object.getPrototypeOf(O)
+ var toObject = __webpack_require__(56)
+ , $getPrototypeOf = __webpack_require__(57);
+
+ __webpack_require__(53)('getPrototypeOf', function(){
+ return function getPrototypeOf(it){
+ return $getPrototypeOf(toObject(it));
+ };
});
- setter = true;
+/***/ },
+/* 56 */
+/***/ function(module, exports, __webpack_require__) {
- $export($export.G + $export.W, {Symbol: $Symbol});
+ // 7.1.13 ToObject(argument)
+ var defined = __webpack_require__(33);
+ module.exports = function(it){
+ return Object(defined(it));
+ };
- $export($export.S, 'Symbol', symbolStatics);
+/***/ },
+/* 57 */
+/***/ function(module, exports, __webpack_require__) {
- $export($export.S + $export.F * !useNative, 'Object', {
- // 19.1.2.2 Object.create(O [, Properties])
- create: $create,
- // 19.1.2.4 Object.defineProperty(O, P, Attributes)
- defineProperty: $defineProperty,
- // 19.1.2.3 Object.defineProperties(O, Properties)
- defineProperties: $defineProperties,
- // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
- getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
- // 19.1.2.7 Object.getOwnPropertyNames(O)
- getOwnPropertyNames: $getOwnPropertyNames,
- // 19.1.2.8 Object.getOwnPropertySymbols(O)
- getOwnPropertySymbols: $getOwnPropertySymbols
+ // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
+ var has = __webpack_require__(3)
+ , toObject = __webpack_require__(56)
+ , IE_PROTO = __webpack_require__(38)('IE_PROTO')
+ , ObjectProto = Object.prototype;
+
+ module.exports = Object.getPrototypeOf || function(O){
+ O = toObject(O);
+ if(has(O, IE_PROTO))return O[IE_PROTO];
+ if(typeof O.constructor == 'function' && O instanceof O.constructor){
+ return O.constructor.prototype;
+ } return O instanceof Object ? ObjectProto : null;
+ };
+
+/***/ },
+/* 58 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 19.1.2.14 Object.keys(O)
+ var toObject = __webpack_require__(56)
+ , $keys = __webpack_require__(28);
+
+ __webpack_require__(53)('keys', function(){
+ return function keys(it){
+ return $keys(toObject(it));
+ };
});
- // 24.3.2 JSON.stringify(value [, replacer [, space]])
- $JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});
+/***/ },
+/* 59 */
+/***/ function(module, exports, __webpack_require__) {
- // 19.4.3.5 Symbol.prototype[@@toStringTag]
- setToStringTag($Symbol, 'Symbol');
- // 20.2.1.9 Math[@@toStringTag]
- setToStringTag(Math, 'Math', true);
- // 24.3.3 JSON[@@toStringTag]
- setToStringTag(global.JSON, 'JSON', true);
+ // 19.1.2.7 Object.getOwnPropertyNames(O)
+ __webpack_require__(53)('getOwnPropertyNames', function(){
+ return __webpack_require__(47).f;
+ });
/***/ },
-/* 35 */
+/* 60 */
/***/ function(module, exports, __webpack_require__) {
- var def = __webpack_require__(2).setDesc
- , has = __webpack_require__(17)
- , TAG = __webpack_require__(31)('toStringTag');
+ // 19.1.2.5 Object.freeze(O)
+ var isObject = __webpack_require__(11)
+ , meta = __webpack_require__(20).onFreeze;
- module.exports = function(it, tag, stat){
- if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
- };
+ __webpack_require__(53)('freeze', function($freeze){
+ return function freeze(it){
+ return $freeze && isObject(it) ? $freeze(meta(it)) : it;
+ };
+ });
/***/ },
-/* 36 */
+/* 61 */
/***/ function(module, exports, __webpack_require__) {
- var $ = __webpack_require__(2)
- , toIObject = __webpack_require__(23);
- module.exports = function(object, el){
- var O = toIObject(object)
- , keys = $.getKeys(O)
- , length = keys.length
- , index = 0
- , key;
- while(length > index)if(O[key = keys[index++]] === el)return key;
- };
+ // 19.1.2.17 Object.seal(O)
+ var isObject = __webpack_require__(11)
+ , meta = __webpack_require__(20).onFreeze;
+
+ __webpack_require__(53)('seal', function($seal){
+ return function seal(it){
+ return $seal && isObject(it) ? $seal(meta(it)) : it;
+ };
+ });
/***/ },
-/* 37 */
+/* 62 */
/***/ function(module, exports, __webpack_require__) {
- // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
- var toIObject = __webpack_require__(23)
- , getNames = __webpack_require__(2).getNames
- , toString = {}.toString;
+ // 19.1.2.15 Object.preventExtensions(O)
+ var isObject = __webpack_require__(11)
+ , meta = __webpack_require__(20).onFreeze;
- var windowNames = typeof window == 'object' && Object.getOwnPropertyNames
- ? Object.getOwnPropertyNames(window) : [];
+ __webpack_require__(53)('preventExtensions', function($preventExtensions){
+ return function preventExtensions(it){
+ return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;
+ };
+ });
- var getWindowNames = function(it){
- try {
- return getNames(it);
- } catch(e){
- return windowNames.slice();
- }
- };
+/***/ },
+/* 63 */
+/***/ function(module, exports, __webpack_require__) {
- module.exports.get = function getOwnPropertyNames(it){
- if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);
- return getNames(toIObject(it));
- };
+ // 19.1.2.12 Object.isFrozen(O)
+ var isObject = __webpack_require__(11);
+
+ __webpack_require__(53)('isFrozen', function($isFrozen){
+ return function isFrozen(it){
+ return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
+ };
+ });
/***/ },
-/* 38 */
+/* 64 */
/***/ function(module, exports, __webpack_require__) {
- // all enumerable object keys, includes symbols
- var $ = __webpack_require__(2);
- module.exports = function(it){
- var keys = $.getKeys(it)
- , getSymbols = $.getSymbols;
- if(getSymbols){
- var symbols = getSymbols(it)
- , isEnum = $.isEnum
- , i = 0
- , key;
- while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);
- }
- return keys;
- };
+ // 19.1.2.13 Object.isSealed(O)
+ var isObject = __webpack_require__(11);
+
+ __webpack_require__(53)('isSealed', function($isSealed){
+ return function isSealed(it){
+ return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
+ };
+ });
/***/ },
-/* 39 */
-/***/ function(module, exports) {
+/* 65 */
+/***/ function(module, exports, __webpack_require__) {
- module.exports = false;
+ // 19.1.2.11 Object.isExtensible(O)
+ var isObject = __webpack_require__(11);
+
+ __webpack_require__(53)('isExtensible', function($isExtensible){
+ return function isExtensible(it){
+ return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
+ };
+ });
/***/ },
-/* 40 */
+/* 66 */
/***/ function(module, exports, __webpack_require__) {
// 19.1.3.1 Object.assign(target, source)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.S + $export.F, 'Object', {assign: __webpack_require__(41)});
+ $export($export.S + $export.F, 'Object', {assign: __webpack_require__(67)});
/***/ },
-/* 41 */
+/* 67 */
/***/ function(module, exports, __webpack_require__) {
+ 'use strict';
// 19.1.2.1 Object.assign(target, source, ...)
- var $ = __webpack_require__(2)
- , toObject = __webpack_require__(21)
- , IObject = __webpack_require__(24);
+ var getKeys = __webpack_require__(28)
+ , gOPS = __webpack_require__(41)
+ , pIE = __webpack_require__(42)
+ , toObject = __webpack_require__(56)
+ , IObject = __webpack_require__(31)
+ , $assign = Object.assign;
// should work with symbols and should have deterministic property order (V8 bug)
- module.exports = __webpack_require__(9)(function(){
- var a = Object.assign
- , A = {}
+ module.exports = !$assign || __webpack_require__(5)(function(){
+ var A = {}
, B = {}
, S = Symbol()
, K = 'abcdefghijklmnopqrst';
A[S] = 7;
K.split('').forEach(function(k){ B[k] = k; });
- return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;
+ return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
var T = toObject(target)
- , $$ = arguments
- , $$len = $$.length
+ , aLen = arguments.length
, index = 1
- , getKeys = $.getKeys
- , getSymbols = $.getSymbols
- , isEnum = $.isEnum;
- while($$len > index){
- var S = IObject($$[index++])
+ , getSymbols = gOPS.f
+ , isEnum = pIE.f;
+ while(aLen > index){
+ var S = IObject(arguments[index++])
, keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
, length = keys.length
, j = 0
, key;
while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
- }
- return T;
- } : Object.assign;
+ } return T;
+ } : $assign;
/***/ },
-/* 42 */
+/* 68 */
/***/ function(module, exports, __webpack_require__) {
// 19.1.3.10 Object.is(value1, value2)
- var $export = __webpack_require__(3);
- $export($export.S, 'Object', {is: __webpack_require__(43)});
+ var $export = __webpack_require__(6);
+ $export($export.S, 'Object', {is: __webpack_require__(69)});
/***/ },
-/* 43 */
+/* 69 */
/***/ function(module, exports) {
// 7.2.9 SameValue(x, y)
@@ -1308,22 +1487,21 @@
};
/***/ },
-/* 44 */
+/* 70 */
/***/ function(module, exports, __webpack_require__) {
// 19.1.3.19 Object.setPrototypeOf(O, proto)
- var $export = __webpack_require__(3);
- $export($export.S, 'Object', {setPrototypeOf: __webpack_require__(45).set});
+ var $export = __webpack_require__(6);
+ $export($export.S, 'Object', {setPrototypeOf: __webpack_require__(71).set});
/***/ },
-/* 45 */
+/* 71 */
/***/ function(module, exports, __webpack_require__) {
// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
- var getDesc = __webpack_require__(2).getDesc
- , isObject = __webpack_require__(16)
- , anObject = __webpack_require__(20);
+ var isObject = __webpack_require__(11)
+ , anObject = __webpack_require__(10);
var check = function(O, proto){
anObject(O);
if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!");
@@ -1332,7 +1510,7 @@
set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
function(test, buggy, set){
try {
- set = __webpack_require__(12)(Function.call, getDesc(Object.prototype, '__proto__').set, 2);
+ set = __webpack_require__(18)(Function.call, __webpack_require__(49).f(Object.prototype, '__proto__').set, 2);
set(test, []);
buggy = !(test instanceof Array);
} catch(e){ buggy = true; }
@@ -1347,35 +1525,42 @@
};
/***/ },
-/* 46 */
+/* 72 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// 19.1.3.6 Object.prototype.toString()
- var classof = __webpack_require__(47)
+ var classof = __webpack_require__(73)
, test = {};
- test[__webpack_require__(31)('toStringTag')] = 'z';
+ test[__webpack_require__(23)('toStringTag')] = 'z';
if(test + '' != '[object z]'){
- __webpack_require__(10)(Object.prototype, 'toString', function toString(){
+ __webpack_require__(16)(Object.prototype, 'toString', function toString(){
return '[object ' + classof(this) + ']';
}, true);
}
/***/ },
-/* 47 */
+/* 73 */
/***/ function(module, exports, __webpack_require__) {
// getting tag from 19.1.3.6 Object.prototype.toString()
- var cof = __webpack_require__(18)
- , TAG = __webpack_require__(31)('toStringTag')
+ var cof = __webpack_require__(32)
+ , TAG = __webpack_require__(23)('toStringTag')
// ES3 wrong here
, ARG = cof(function(){ return arguments; }()) == 'Arguments';
+ // fallback for IE11 Script Access Denied error
+ var tryGet = function(it, key){
+ try {
+ return it[key];
+ } catch(e){ /* empty */ }
+ };
+
module.exports = function(it){
var O, T, B;
return it === undefined ? 'Undefined' : it === null ? 'Null'
// @@toStringTag case
- : typeof (T = (O = Object(it))[TAG]) == 'string' ? T
+ : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
// builtinTag case
: ARG ? cof(O)
// ES3 arguments fallback
@@ -1383,204 +1568,134 @@
};
/***/ },
-/* 48 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.5 Object.freeze(O)
- var isObject = __webpack_require__(16);
-
- __webpack_require__(49)('freeze', function($freeze){
- return function freeze(it){
- return $freeze && isObject(it) ? $freeze(it) : it;
- };
- });
-
-/***/ },
-/* 49 */
-/***/ function(module, exports, __webpack_require__) {
-
- // most Object methods by ES6 should accept primitives
- var $export = __webpack_require__(3)
- , core = __webpack_require__(5)
- , fails = __webpack_require__(9);
- module.exports = function(KEY, exec){
- var fn = (core.Object || {})[KEY] || Object[KEY]
- , exp = {};
- exp[KEY] = exec(fn);
- $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
- };
-
-/***/ },
-/* 50 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.17 Object.seal(O)
- var isObject = __webpack_require__(16);
-
- __webpack_require__(49)('seal', function($seal){
- return function seal(it){
- return $seal && isObject(it) ? $seal(it) : it;
- };
- });
-
-/***/ },
-/* 51 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.15 Object.preventExtensions(O)
- var isObject = __webpack_require__(16);
-
- __webpack_require__(49)('preventExtensions', function($preventExtensions){
- return function preventExtensions(it){
- return $preventExtensions && isObject(it) ? $preventExtensions(it) : it;
- };
- });
-
-/***/ },
-/* 52 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.12 Object.isFrozen(O)
- var isObject = __webpack_require__(16);
-
- __webpack_require__(49)('isFrozen', function($isFrozen){
- return function isFrozen(it){
- return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
- };
- });
-
-/***/ },
-/* 53 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.13 Object.isSealed(O)
- var isObject = __webpack_require__(16);
-
- __webpack_require__(49)('isSealed', function($isSealed){
- return function isSealed(it){
- return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
- };
- });
-
-/***/ },
-/* 54 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.11 Object.isExtensible(O)
- var isObject = __webpack_require__(16);
-
- __webpack_require__(49)('isExtensible', function($isExtensible){
- return function isExtensible(it){
- return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
- };
- });
-
-/***/ },
-/* 55 */
+/* 74 */
/***/ function(module, exports, __webpack_require__) {
- // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
- var toIObject = __webpack_require__(23);
+ // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
+ var $export = __webpack_require__(6);
- __webpack_require__(49)('getOwnPropertyDescriptor', function($getOwnPropertyDescriptor){
- return function getOwnPropertyDescriptor(it, key){
- return $getOwnPropertyDescriptor(toIObject(it), key);
- };
- });
+ $export($export.P, 'Function', {bind: __webpack_require__(75)});
/***/ },
-/* 56 */
+/* 75 */
/***/ function(module, exports, __webpack_require__) {
- // 19.1.2.9 Object.getPrototypeOf(O)
- var toObject = __webpack_require__(21);
-
- __webpack_require__(49)('getPrototypeOf', function($getPrototypeOf){
- return function getPrototypeOf(it){
- return $getPrototypeOf(toObject(it));
- };
- });
-
-/***/ },
-/* 57 */
-/***/ function(module, exports, __webpack_require__) {
+ 'use strict';
+ var aFunction = __webpack_require__(19)
+ , isObject = __webpack_require__(11)
+ , invoke = __webpack_require__(76)
+ , arraySlice = [].slice
+ , factories = {};
- // 19.1.2.14 Object.keys(O)
- var toObject = __webpack_require__(21);
+ var construct = function(F, len, args){
+ if(!(len in factories)){
+ for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';
+ factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
+ } return factories[len](F, args);
+ };
- __webpack_require__(49)('keys', function($keys){
- return function keys(it){
- return $keys(toObject(it));
+ module.exports = Function.bind || function bind(that /*, args... */){
+ var fn = aFunction(this)
+ , partArgs = arraySlice.call(arguments, 1);
+ var bound = function(/* args... */){
+ var args = partArgs.concat(arraySlice.call(arguments));
+ return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
};
- });
+ if(isObject(fn.prototype))bound.prototype = fn.prototype;
+ return bound;
+ };
/***/ },
-/* 58 */
-/***/ function(module, exports, __webpack_require__) {
+/* 76 */
+/***/ function(module, exports) {
- // 19.1.2.7 Object.getOwnPropertyNames(O)
- __webpack_require__(49)('getOwnPropertyNames', function(){
- return __webpack_require__(37).get;
- });
+ // fast apply, http://jsperf.lnkit.com/fast-apply/5
+ module.exports = function(fn, args, that){
+ var un = that === undefined;
+ switch(args.length){
+ case 0: return un ? fn()
+ : fn.call(that);
+ case 1: return un ? fn(args[0])
+ : fn.call(that, args[0]);
+ case 2: return un ? fn(args[0], args[1])
+ : fn.call(that, args[0], args[1]);
+ case 3: return un ? fn(args[0], args[1], args[2])
+ : fn.call(that, args[0], args[1], args[2]);
+ case 4: return un ? fn(args[0], args[1], args[2], args[3])
+ : fn.call(that, args[0], args[1], args[2], args[3]);
+ } return fn.apply(that, args);
+ };
/***/ },
-/* 59 */
+/* 77 */
/***/ function(module, exports, __webpack_require__) {
- var setDesc = __webpack_require__(2).setDesc
- , createDesc = __webpack_require__(7)
- , has = __webpack_require__(17)
+ var dP = __webpack_require__(9).f
+ , createDesc = __webpack_require__(15)
+ , has = __webpack_require__(3)
, FProto = Function.prototype
, nameRE = /^\s*function ([^ (]*)/
, NAME = 'name';
+
+ var isExtensible = Object.isExtensible || function(){
+ return true;
+ };
+
// 19.2.4.2 name
- NAME in FProto || __webpack_require__(8) && setDesc(FProto, NAME, {
+ NAME in FProto || __webpack_require__(4) && dP(FProto, NAME, {
configurable: true,
get: function(){
- var match = ('' + this).match(nameRE)
- , name = match ? match[1] : '';
- has(this, NAME) || setDesc(this, NAME, createDesc(5, name));
- return name;
+ try {
+ var that = this
+ , name = ('' + that).match(nameRE)[1];
+ has(that, NAME) || !isExtensible(that) || dP(that, NAME, createDesc(5, name));
+ return name;
+ } catch(e){
+ return '';
+ }
}
});
/***/ },
-/* 60 */
+/* 78 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , isObject = __webpack_require__(16)
- , HAS_INSTANCE = __webpack_require__(31)('hasInstance')
- , FunctionProto = Function.prototype;
+ var isObject = __webpack_require__(11)
+ , getPrototypeOf = __webpack_require__(57)
+ , HAS_INSTANCE = __webpack_require__(23)('hasInstance')
+ , FunctionProto = Function.prototype;
// 19.2.3.6 Function.prototype[@@hasInstance](V)
- if(!(HAS_INSTANCE in FunctionProto))$.setDesc(FunctionProto, HAS_INSTANCE, {value: function(O){
+ if(!(HAS_INSTANCE in FunctionProto))__webpack_require__(9).f(FunctionProto, HAS_INSTANCE, {value: function(O){
if(typeof this != 'function' || !isObject(O))return false;
if(!isObject(this.prototype))return O instanceof this;
// for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
- while(O = $.getProto(O))if(this.prototype === O)return true;
+ while(O = getPrototypeOf(O))if(this.prototype === O)return true;
return false;
}});
/***/ },
-/* 61 */
+/* 79 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , global = __webpack_require__(4)
- , has = __webpack_require__(17)
- , cof = __webpack_require__(18)
- , toPrimitive = __webpack_require__(62)
- , fails = __webpack_require__(9)
- , $trim = __webpack_require__(63).trim
- , NUMBER = 'Number'
- , $Number = global[NUMBER]
- , Base = $Number
- , proto = $Number.prototype
+ var global = __webpack_require__(2)
+ , has = __webpack_require__(3)
+ , cof = __webpack_require__(32)
+ , inheritIfRequired = __webpack_require__(80)
+ , toPrimitive = __webpack_require__(14)
+ , fails = __webpack_require__(5)
+ , gOPN = __webpack_require__(48).f
+ , gOPD = __webpack_require__(49).f
+ , dP = __webpack_require__(9).f
+ , $trim = __webpack_require__(81).trim
+ , NUMBER = 'Number'
+ , $Number = global[NUMBER]
+ , Base = $Number
+ , proto = $Number.prototype
// Opera ~12 has broken Object#toString
- , BROKEN_COF = cof($.create(proto)) == NUMBER
- , TRIM = 'trim' in String.prototype;
+ , BROKEN_COF = cof(__webpack_require__(44)(proto)) == NUMBER
+ , TRIM = 'trim' in String.prototype;
// 7.1.3 ToNumber(argument)
var toNumber = function(argument){
@@ -1615,61 +1730,58 @@
return that instanceof $Number
// check on 1..constructor(foo) case
&& (BROKEN_COF ? fails(function(){ proto.valueOf.call(that); }) : cof(that) != NUMBER)
- ? new Base(toNumber(it)) : toNumber(it);
+ ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);
};
- $.each.call(__webpack_require__(8) ? $.getNames(Base) : (
+ for(var keys = __webpack_require__(4) ? gOPN(Base) : (
// ES3:
'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
// ES6 (in case, if modules with ES6 Number statics required before):
'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'
- ).split(','), function(key){
- if(has(Base, key) && !has($Number, key)){
- $.setDesc($Number, key, $.getDesc(Base, key));
+ ).split(','), j = 0, key; keys.length > j; j++){
+ if(has(Base, key = keys[j]) && !has($Number, key)){
+ dP($Number, key, gOPD(Base, key));
}
- });
+ }
$Number.prototype = proto;
proto.constructor = $Number;
- __webpack_require__(10)(global, NUMBER, $Number);
+ __webpack_require__(16)(global, NUMBER, $Number);
}
/***/ },
-/* 62 */
+/* 80 */
/***/ function(module, exports, __webpack_require__) {
- // 7.1.1 ToPrimitive(input [, PreferredType])
- var isObject = __webpack_require__(16);
- // instead of the ES6 spec version, we didn't implement @@toPrimitive case
- // and the second argument - flag - preferred type is a string
- module.exports = function(it, S){
- if(!isObject(it))return it;
- var fn, val;
- if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
- if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
- if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
- throw TypeError("Can't convert object to primitive value");
+ var isObject = __webpack_require__(11)
+ , setPrototypeOf = __webpack_require__(71).set;
+ module.exports = function(that, target, C){
+ var P, S = target.constructor;
+ if(S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf){
+ setPrototypeOf(that, P);
+ } return that;
};
/***/ },
-/* 63 */
+/* 81 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3)
- , defined = __webpack_require__(22)
- , fails = __webpack_require__(9)
- , spaces = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
- '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'
+ var $export = __webpack_require__(6)
+ , defined = __webpack_require__(33)
+ , fails = __webpack_require__(5)
+ , spaces = __webpack_require__(82)
, space = '[' + spaces + ']'
, non = '\u200b\u0085'
, ltrim = RegExp('^' + space + space + '*')
, rtrim = RegExp(space + space + '*$');
- var exporter = function(KEY, exec){
- var exp = {};
- exp[KEY] = exec(trim);
- $export($export.P + $export.F * fails(function(){
+ var exporter = function(KEY, exec, ALIAS){
+ var exp = {};
+ var FORCE = fails(function(){
return !!spaces[KEY]() || non[KEY]() != non;
- }), 'String', exp);
+ });
+ var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
+ if(ALIAS)exp[ALIAS] = fn;
+ $export($export.P + $export.F * FORCE, 'String', exp);
};
// 1 -> String#trimLeft
@@ -1685,21 +1797,196 @@
module.exports = exporter;
/***/ },
-/* 64 */
+/* 82 */
+/***/ function(module, exports) {
+
+ module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
+ '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
+
+/***/ },
+/* 83 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toInteger = __webpack_require__(36)
+ , aNumberValue = __webpack_require__(84)
+ , repeat = __webpack_require__(85)
+ , $toFixed = 1..toFixed
+ , floor = Math.floor
+ , data = [0, 0, 0, 0, 0, 0]
+ , ERROR = 'Number.toFixed: incorrect invocation!'
+ , ZERO = '0';
+
+ var multiply = function(n, c){
+ var i = -1
+ , c2 = c;
+ while(++i < 6){
+ c2 += n * data[i];
+ data[i] = c2 % 1e7;
+ c2 = floor(c2 / 1e7);
+ }
+ };
+ var divide = function(n){
+ var i = 6
+ , c = 0;
+ while(--i >= 0){
+ c += data[i];
+ data[i] = floor(c / n);
+ c = (c % n) * 1e7;
+ }
+ };
+ var numToString = function(){
+ var i = 6
+ , s = '';
+ while(--i >= 0){
+ if(s !== '' || i === 0 || data[i] !== 0){
+ var t = String(data[i]);
+ s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;
+ }
+ } return s;
+ };
+ var pow = function(x, n, acc){
+ return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
+ };
+ var log = function(x){
+ var n = 0
+ , x2 = x;
+ while(x2 >= 4096){
+ n += 12;
+ x2 /= 4096;
+ }
+ while(x2 >= 2){
+ n += 1;
+ x2 /= 2;
+ } return n;
+ };
+
+ $export($export.P + $export.F * (!!$toFixed && (
+ 0.00008.toFixed(3) !== '0.000' ||
+ 0.9.toFixed(0) !== '1' ||
+ 1.255.toFixed(2) !== '1.25' ||
+ 1000000000000000128..toFixed(0) !== '1000000000000000128'
+ ) || !__webpack_require__(5)(function(){
+ // V8 ~ Android 4.3-
+ $toFixed.call({});
+ })), 'Number', {
+ toFixed: function toFixed(fractionDigits){
+ var x = aNumberValue(this, ERROR)
+ , f = toInteger(fractionDigits)
+ , s = ''
+ , m = ZERO
+ , e, z, j, k;
+ if(f < 0 || f > 20)throw RangeError(ERROR);
+ if(x != x)return 'NaN';
+ if(x <= -1e21 || x >= 1e21)return String(x);
+ if(x < 0){
+ s = '-';
+ x = -x;
+ }
+ if(x > 1e-21){
+ e = log(x * pow(2, 69, 1)) - 69;
+ z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);
+ z *= 0x10000000000000;
+ e = 52 - e;
+ if(e > 0){
+ multiply(0, z);
+ j = f;
+ while(j >= 7){
+ multiply(1e7, 0);
+ j -= 7;
+ }
+ multiply(pow(10, j, 1), 0);
+ j = e - 1;
+ while(j >= 23){
+ divide(1 << 23);
+ j -= 23;
+ }
+ divide(1 << j);
+ multiply(1, 1);
+ divide(2);
+ m = numToString();
+ } else {
+ multiply(0, z);
+ multiply(1 << -e, 0);
+ m = numToString() + repeat.call(ZERO, f);
+ }
+ }
+ if(f > 0){
+ k = m.length;
+ m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));
+ } else {
+ m = s + m;
+ } return m;
+ }
+ });
+
+/***/ },
+/* 84 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var cof = __webpack_require__(32);
+ module.exports = function(it, msg){
+ if(typeof it != 'number' && cof(it) != 'Number')throw TypeError(msg);
+ return +it;
+ };
+
+/***/ },
+/* 85 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var toInteger = __webpack_require__(36)
+ , defined = __webpack_require__(33);
+
+ module.exports = function repeat(count){
+ var str = String(defined(this))
+ , res = ''
+ , n = toInteger(count);
+ if(n < 0 || n == Infinity)throw RangeError("Count can't be negative");
+ for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;
+ return res;
+ };
+
+/***/ },
+/* 86 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $fails = __webpack_require__(5)
+ , aNumberValue = __webpack_require__(84)
+ , $toPrecision = 1..toPrecision;
+
+ $export($export.P + $export.F * ($fails(function(){
+ // IE7-
+ return $toPrecision.call(1, undefined) !== '1';
+ }) || !$fails(function(){
+ // V8 ~ Android 4.3-
+ $toPrecision.call({});
+ })), 'Number', {
+ toPrecision: function toPrecision(precision){
+ var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');
+ return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);
+ }
+ });
+
+/***/ },
+/* 87 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.1 Number.EPSILON
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Number', {EPSILON: Math.pow(2, -52)});
/***/ },
-/* 65 */
+/* 88 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.2 Number.isFinite(number)
- var $export = __webpack_require__(3)
- , _isFinite = __webpack_require__(4).isFinite;
+ var $export = __webpack_require__(6)
+ , _isFinite = __webpack_require__(2).isFinite;
$export($export.S, 'Number', {
isFinite: function isFinite(it){
@@ -1708,31 +1995,31 @@
});
/***/ },
-/* 66 */
+/* 89 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.3 Number.isInteger(number)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.S, 'Number', {isInteger: __webpack_require__(67)});
+ $export($export.S, 'Number', {isInteger: __webpack_require__(90)});
/***/ },
-/* 67 */
+/* 90 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.3 Number.isInteger(number)
- var isObject = __webpack_require__(16)
+ var isObject = __webpack_require__(11)
, floor = Math.floor;
module.exports = function isInteger(it){
return !isObject(it) && isFinite(it) && floor(it) === it;
};
/***/ },
-/* 68 */
+/* 91 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.4 Number.isNaN(number)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Number', {
isNaN: function isNaN(number){
@@ -1741,12 +2028,12 @@
});
/***/ },
-/* 69 */
+/* 92 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.5 Number.isSafeInteger(number)
- var $export = __webpack_require__(3)
- , isInteger = __webpack_require__(67)
+ var $export = __webpack_require__(6)
+ , isInteger = __webpack_require__(90)
, abs = Math.abs;
$export($export.S, 'Number', {
@@ -1756,53 +2043,102 @@
});
/***/ },
-/* 70 */
+/* 93 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.6 Number.MAX_SAFE_INTEGER
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff});
/***/ },
-/* 71 */
+/* 94 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.10 Number.MIN_SAFE_INTEGER
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff});
/***/ },
-/* 72 */
+/* 95 */
/***/ function(module, exports, __webpack_require__) {
+ var $export = __webpack_require__(6)
+ , $parseFloat = __webpack_require__(96);
// 20.1.2.12 Number.parseFloat(string)
- var $export = __webpack_require__(3);
+ $export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', {parseFloat: $parseFloat});
+
+/***/ },
+/* 96 */
+/***/ function(module, exports, __webpack_require__) {
- $export($export.S, 'Number', {parseFloat: parseFloat});
+ var $parseFloat = __webpack_require__(2).parseFloat
+ , $trim = __webpack_require__(81).trim;
+
+ module.exports = 1 / $parseFloat(__webpack_require__(82) + '-0') !== -Infinity ? function parseFloat(str){
+ var string = $trim(String(str), 3)
+ , result = $parseFloat(string);
+ return result === 0 && string.charAt(0) == '-' ? -0 : result;
+ } : $parseFloat;
/***/ },
-/* 73 */
+/* 97 */
/***/ function(module, exports, __webpack_require__) {
+ var $export = __webpack_require__(6)
+ , $parseInt = __webpack_require__(98);
// 20.1.2.13 Number.parseInt(string, radix)
- var $export = __webpack_require__(3);
+ $export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', {parseInt: $parseInt});
+
+/***/ },
+/* 98 */
+/***/ function(module, exports, __webpack_require__) {
- $export($export.S, 'Number', {parseInt: parseInt});
+ var $parseInt = __webpack_require__(2).parseInt
+ , $trim = __webpack_require__(81).trim
+ , ws = __webpack_require__(82)
+ , hex = /^[\-+]?0[xX]/;
+
+ module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix){
+ var string = $trim(String(str), 3);
+ return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
+ } : $parseInt;
/***/ },
-/* 74 */
+/* 99 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6)
+ , $parseInt = __webpack_require__(98);
+ // 18.2.5 parseInt(string, radix)
+ $export($export.G + $export.F * (parseInt != $parseInt), {parseInt: $parseInt});
+
+/***/ },
+/* 100 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6)
+ , $parseFloat = __webpack_require__(96);
+ // 18.2.4 parseFloat(string)
+ $export($export.G + $export.F * (parseFloat != $parseFloat), {parseFloat: $parseFloat});
+
+/***/ },
+/* 101 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.3 Math.acosh(x)
- var $export = __webpack_require__(3)
- , log1p = __webpack_require__(75)
+ var $export = __webpack_require__(6)
+ , log1p = __webpack_require__(102)
, sqrt = Math.sqrt
, $acosh = Math.acosh;
- // V8 bug https://code.google.com/p/v8/issues/detail?id=3509
- $export($export.S + $export.F * !($acosh && Math.floor($acosh(Number.MAX_VALUE)) == 710), 'Math', {
+ $export($export.S + $export.F * !($acosh
+ // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
+ && Math.floor($acosh(Number.MAX_VALUE)) == 710
+ // Tor Browser bug: Math.acosh(Infinity) -> NaN
+ && $acosh(Infinity) == Infinity
+ ), 'Math', {
acosh: function acosh(x){
return (x = +x) < 1 ? NaN : x > 94906265.62425156
? Math.log(x) + Math.LN2
@@ -1811,7 +2147,7 @@
});
/***/ },
-/* 75 */
+/* 102 */
/***/ function(module, exports) {
// 20.2.2.20 Math.log1p(x)
@@ -1820,38 +2156,42 @@
};
/***/ },
-/* 76 */
+/* 103 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.5 Math.asinh(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6)
+ , $asinh = Math.asinh;
function asinh(x){
return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
}
- $export($export.S, 'Math', {asinh: asinh});
+ // Tor Browser bug: Math.asinh(0) -> -0
+ $export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', {asinh: asinh});
/***/ },
-/* 77 */
+/* 104 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.7 Math.atanh(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6)
+ , $atanh = Math.atanh;
- $export($export.S, 'Math', {
+ // Tor Browser bug: Math.atanh(-0) -> 0
+ $export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {
atanh: function atanh(x){
return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
}
});
/***/ },
-/* 78 */
+/* 105 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.9 Math.cbrt(x)
- var $export = __webpack_require__(3)
- , sign = __webpack_require__(79);
+ var $export = __webpack_require__(6)
+ , sign = __webpack_require__(106);
$export($export.S, 'Math', {
cbrt: function cbrt(x){
@@ -1860,7 +2200,7 @@
});
/***/ },
-/* 79 */
+/* 106 */
/***/ function(module, exports) {
// 20.2.2.28 Math.sign(x)
@@ -1869,11 +2209,11 @@
};
/***/ },
-/* 80 */
+/* 107 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.11 Math.clz32(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Math', {
clz32: function clz32(x){
@@ -1882,11 +2222,11 @@
});
/***/ },
-/* 81 */
+/* 108 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.12 Math.cosh(x)
- var $export = __webpack_require__(3)
+ var $export = __webpack_require__(6)
, exp = Math.exp;
$export($export.S, 'Math', {
@@ -1896,30 +2236,37 @@
});
/***/ },
-/* 82 */
+/* 109 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.14 Math.expm1(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6)
+ , $expm1 = __webpack_require__(110);
- $export($export.S, 'Math', {expm1: __webpack_require__(83)});
+ $export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', {expm1: $expm1});
/***/ },
-/* 83 */
+/* 110 */
/***/ function(module, exports) {
// 20.2.2.14 Math.expm1(x)
- module.exports = Math.expm1 || function expm1(x){
+ var $expm1 = Math.expm1;
+ module.exports = (!$expm1
+ // Old FF bug
+ || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168
+ // Tor Browser bug
+ || $expm1(-2e-17) != -2e-17
+ ) ? function expm1(x){
return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
- };
+ } : $expm1;
/***/ },
-/* 84 */
+/* 111 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.16 Math.fround(x)
- var $export = __webpack_require__(3)
- , sign = __webpack_require__(79)
+ var $export = __webpack_require__(6)
+ , sign = __webpack_require__(106)
, pow = Math.pow
, EPSILON = pow(2, -52)
, EPSILON32 = pow(2, -23)
@@ -1945,23 +2292,22 @@
});
/***/ },
-/* 85 */
+/* 112 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
- var $export = __webpack_require__(3)
+ var $export = __webpack_require__(6)
, abs = Math.abs;
$export($export.S, 'Math', {
hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars
- var sum = 0
- , i = 0
- , $$ = arguments
- , $$len = $$.length
- , larg = 0
+ var sum = 0
+ , i = 0
+ , aLen = arguments.length
+ , larg = 0
, arg, div;
- while(i < $$len){
- arg = abs($$[i++]);
+ while(i < aLen){
+ arg = abs(arguments[i++]);
if(larg < arg){
div = larg / arg;
sum = sum * div * div + 1;
@@ -1976,15 +2322,15 @@
});
/***/ },
-/* 86 */
+/* 113 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.18 Math.imul(x, y)
- var $export = __webpack_require__(3)
+ var $export = __webpack_require__(6)
, $imul = Math.imul;
// some WebKit versions fails with big numbers, some has wrong arity
- $export($export.S + $export.F * __webpack_require__(9)(function(){
+ $export($export.S + $export.F * __webpack_require__(5)(function(){
return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
}), 'Math', {
imul: function imul(x, y){
@@ -1998,11 +2344,11 @@
});
/***/ },
-/* 87 */
+/* 114 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.21 Math.log10(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Math', {
log10: function log10(x){
@@ -2011,20 +2357,20 @@
});
/***/ },
-/* 88 */
+/* 115 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.20 Math.log1p(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.S, 'Math', {log1p: __webpack_require__(75)});
+ $export($export.S, 'Math', {log1p: __webpack_require__(102)});
/***/ },
-/* 89 */
+/* 116 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.22 Math.log2(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Math', {
log2: function log2(x){
@@ -2033,25 +2379,25 @@
});
/***/ },
-/* 90 */
+/* 117 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.28 Math.sign(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.S, 'Math', {sign: __webpack_require__(79)});
+ $export($export.S, 'Math', {sign: __webpack_require__(106)});
/***/ },
-/* 91 */
+/* 118 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.30 Math.sinh(x)
- var $export = __webpack_require__(3)
- , expm1 = __webpack_require__(83)
+ var $export = __webpack_require__(6)
+ , expm1 = __webpack_require__(110)
, exp = Math.exp;
// V8 near Chromium 38 has a problem with very small numbers
- $export($export.S + $export.F * __webpack_require__(9)(function(){
+ $export($export.S + $export.F * __webpack_require__(5)(function(){
return !Math.sinh(-2e-17) != -2e-17;
}), 'Math', {
sinh: function sinh(x){
@@ -2062,12 +2408,12 @@
});
/***/ },
-/* 92 */
+/* 119 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.33 Math.tanh(x)
- var $export = __webpack_require__(3)
- , expm1 = __webpack_require__(83)
+ var $export = __webpack_require__(6)
+ , expm1 = __webpack_require__(110)
, exp = Math.exp;
$export($export.S, 'Math', {
@@ -2079,11 +2425,11 @@
});
/***/ },
-/* 93 */
+/* 120 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.34 Math.trunc(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Math', {
trunc: function trunc(it){
@@ -2092,11 +2438,11 @@
});
/***/ },
-/* 94 */
+/* 121 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3)
- , toIndex = __webpack_require__(26)
+ var $export = __webpack_require__(6)
+ , toIndex = __webpack_require__(37)
, fromCharCode = String.fromCharCode
, $fromCodePoint = String.fromCodePoint;
@@ -2104,13 +2450,12 @@
$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
// 21.1.2.2 String.fromCodePoint(...codePoints)
fromCodePoint: function fromCodePoint(x){ // eslint-disable-line no-unused-vars
- var res = []
- , $$ = arguments
- , $$len = $$.length
- , i = 0
+ var res = []
+ , aLen = arguments.length
+ , i = 0
, code;
- while($$len > i){
- code = +$$[i++];
+ while(aLen > i){
+ code = +arguments[i++];
if(toIndex(code, 0x10ffff) !== code)throw RangeError(code + ' is not a valid code point');
res.push(code < 0x10000
? fromCharCode(code)
@@ -2121,48 +2466,47 @@
});
/***/ },
-/* 95 */
+/* 122 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3)
- , toIObject = __webpack_require__(23)
- , toLength = __webpack_require__(27);
+ var $export = __webpack_require__(6)
+ , toIObject = __webpack_require__(30)
+ , toLength = __webpack_require__(35);
$export($export.S, 'String', {
// 21.1.2.4 String.raw(callSite, ...substitutions)
raw: function raw(callSite){
- var tpl = toIObject(callSite.raw)
- , len = toLength(tpl.length)
- , $$ = arguments
- , $$len = $$.length
- , res = []
- , i = 0;
+ var tpl = toIObject(callSite.raw)
+ , len = toLength(tpl.length)
+ , aLen = arguments.length
+ , res = []
+ , i = 0;
while(len > i){
res.push(String(tpl[i++]));
- if(i < $$len)res.push(String($$[i]));
+ if(i < aLen)res.push(String(arguments[i]));
} return res.join('');
}
});
/***/ },
-/* 96 */
+/* 123 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// 21.1.3.25 String.prototype.trim()
- __webpack_require__(63)('trim', function($trim){
+ __webpack_require__(81)('trim', function($trim){
return function trim(){
return $trim(this, 3);
};
});
/***/ },
-/* 97 */
+/* 124 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3)
- , $at = __webpack_require__(98)(false);
+ var $export = __webpack_require__(6)
+ , $at = __webpack_require__(125)(false);
$export($export.P, 'String', {
// 21.1.3.3 String.prototype.codePointAt(pos)
codePointAt: function codePointAt(pos){
@@ -2171,11 +2515,11 @@
});
/***/ },
-/* 98 */
+/* 125 */
/***/ function(module, exports, __webpack_require__) {
- var toInteger = __webpack_require__(25)
- , defined = __webpack_require__(22);
+ var toInteger = __webpack_require__(36)
+ , defined = __webpack_require__(33);
// true -> String#at
// false -> String#codePointAt
module.exports = function(TO_STRING){
@@ -2193,22 +2537,21 @@
};
/***/ },
-/* 99 */
+/* 126 */
/***/ function(module, exports, __webpack_require__) {
// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
'use strict';
- var $export = __webpack_require__(3)
- , toLength = __webpack_require__(27)
- , context = __webpack_require__(100)
+ var $export = __webpack_require__(6)
+ , toLength = __webpack_require__(35)
+ , context = __webpack_require__(127)
, ENDS_WITH = 'endsWith'
, $endsWith = ''[ENDS_WITH];
- $export($export.P + $export.F * __webpack_require__(102)(ENDS_WITH), 'String', {
+ $export($export.P + $export.F * __webpack_require__(129)(ENDS_WITH), 'String', {
endsWith: function endsWith(searchString /*, endPosition = @length */){
var that = context(this, searchString, ENDS_WITH)
- , $$ = arguments
- , endPosition = $$.length > 1 ? $$[1] : undefined
+ , endPosition = arguments.length > 1 ? arguments[1] : undefined
, len = toLength(that.length)
, end = endPosition === undefined ? len : Math.min(toLength(endPosition), len)
, search = String(searchString);
@@ -2219,12 +2562,12 @@
});
/***/ },
-/* 100 */
+/* 127 */
/***/ function(module, exports, __webpack_require__) {
// helper for String#{startsWith, endsWith, includes}
- var isRegExp = __webpack_require__(101)
- , defined = __webpack_require__(22);
+ var isRegExp = __webpack_require__(128)
+ , defined = __webpack_require__(33);
module.exports = function(that, searchString, NAME){
if(isRegExp(searchString))throw TypeError('String#' + NAME + " doesn't accept regex!");
@@ -2232,23 +2575,23 @@
};
/***/ },
-/* 101 */
+/* 128 */
/***/ function(module, exports, __webpack_require__) {
// 7.2.8 IsRegExp(argument)
- var isObject = __webpack_require__(16)
- , cof = __webpack_require__(18)
- , MATCH = __webpack_require__(31)('match');
+ var isObject = __webpack_require__(11)
+ , cof = __webpack_require__(32)
+ , MATCH = __webpack_require__(23)('match');
module.exports = function(it){
var isRegExp;
return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
};
/***/ },
-/* 102 */
+/* 129 */
/***/ function(module, exports, __webpack_require__) {
- var MATCH = __webpack_require__(31)('match');
+ var MATCH = __webpack_require__(23)('match');
module.exports = function(KEY){
var re = /./;
try {
@@ -2262,16 +2605,16 @@
};
/***/ },
-/* 103 */
+/* 130 */
/***/ function(module, exports, __webpack_require__) {
// 21.1.3.7 String.prototype.includes(searchString, position = 0)
'use strict';
- var $export = __webpack_require__(3)
- , context = __webpack_require__(100)
+ var $export = __webpack_require__(6)
+ , context = __webpack_require__(127)
, INCLUDES = 'includes';
- $export($export.P + $export.F * __webpack_require__(102)(INCLUDES), 'String', {
+ $export($export.P + $export.F * __webpack_require__(129)(INCLUDES), 'String', {
includes: function includes(searchString /*, position = 0 */){
return !!~context(this, searchString, INCLUDES)
.indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
@@ -2279,50 +2622,32 @@
});
/***/ },
-/* 104 */
+/* 131 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.P, 'String', {
// 21.1.3.13 String.prototype.repeat(count)
- repeat: __webpack_require__(105)
+ repeat: __webpack_require__(85)
});
/***/ },
-/* 105 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var toInteger = __webpack_require__(25)
- , defined = __webpack_require__(22);
-
- module.exports = function repeat(count){
- var str = String(defined(this))
- , res = ''
- , n = toInteger(count);
- if(n < 0 || n == Infinity)throw RangeError("Count can't be negative");
- for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;
- return res;
- };
-
-/***/ },
-/* 106 */
+/* 132 */
/***/ function(module, exports, __webpack_require__) {
// 21.1.3.18 String.prototype.startsWith(searchString [, position ])
'use strict';
- var $export = __webpack_require__(3)
- , toLength = __webpack_require__(27)
- , context = __webpack_require__(100)
+ var $export = __webpack_require__(6)
+ , toLength = __webpack_require__(35)
+ , context = __webpack_require__(127)
, STARTS_WITH = 'startsWith'
, $startsWith = ''[STARTS_WITH];
- $export($export.P + $export.F * __webpack_require__(102)(STARTS_WITH), 'String', {
+ $export($export.P + $export.F * __webpack_require__(129)(STARTS_WITH), 'String', {
startsWith: function startsWith(searchString /*, position = 0 */){
var that = context(this, searchString, STARTS_WITH)
- , $$ = arguments
- , index = toLength(Math.min($$.length > 1 ? $$[1] : undefined, that.length))
+ , index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length))
, search = String(searchString);
return $startsWith
? $startsWith.call(that, search, index)
@@ -2331,14 +2656,14 @@
});
/***/ },
-/* 107 */
+/* 133 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $at = __webpack_require__(98)(true);
+ var $at = __webpack_require__(125)(true);
// 21.1.3.27 String.prototype[@@iterator]()
- __webpack_require__(108)(String, 'String', function(iterated){
+ __webpack_require__(134)(String, 'String', function(iterated){
this._t = String(iterated); // target
this._i = 0; // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
@@ -2353,20 +2678,20 @@
});
/***/ },
-/* 108 */
+/* 134 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var LIBRARY = __webpack_require__(39)
- , $export = __webpack_require__(3)
- , redefine = __webpack_require__(10)
- , hide = __webpack_require__(6)
- , has = __webpack_require__(17)
- , Iterators = __webpack_require__(109)
- , $iterCreate = __webpack_require__(110)
- , setToStringTag = __webpack_require__(35)
- , getProto = __webpack_require__(2).getProto
- , ITERATOR = __webpack_require__(31)('iterator')
+ var LIBRARY = __webpack_require__(26)
+ , $export = __webpack_require__(6)
+ , redefine = __webpack_require__(16)
+ , hide = __webpack_require__(8)
+ , has = __webpack_require__(3)
+ , Iterators = __webpack_require__(135)
+ , $iterCreate = __webpack_require__(136)
+ , setToStringTag = __webpack_require__(22)
+ , getPrototypeOf = __webpack_require__(57)
+ , ITERATOR = __webpack_require__(23)('iterator')
, BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
, FF_ITERATOR = '@@iterator'
, KEYS = 'keys'
@@ -2389,20 +2714,24 @@
, proto = Base.prototype
, $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
, $default = $native || getMethod(DEFAULT)
- , methods, key;
+ , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined
+ , $anyNative = NAME == 'Array' ? proto.entries || $native : $native
+ , methods, key, IteratorPrototype;
// Fix native
- if($native){
- var IteratorPrototype = getProto($default.call(new Base));
- // Set @@toStringTag to native iterators
- setToStringTag(IteratorPrototype, TAG, true);
- // FF fix
- if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
- // fix Array#{values, @@iterator}.name in V8 / FF
- if(DEF_VALUES && $native.name !== VALUES){
- VALUES_BUG = true;
- $default = function values(){ return $native.call(this); };
+ if($anyNative){
+ IteratorPrototype = getPrototypeOf($anyNative.call(new Base));
+ if(IteratorPrototype !== Object.prototype){
+ // Set @@toStringTag to native iterators
+ setToStringTag(IteratorPrototype, TAG, true);
+ // fix for some old engines
+ if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
}
}
+ // fix Array#{values, @@iterator}.name in V8 / FF
+ if(DEF_VALUES && $native && $native.name !== VALUES){
+ VALUES_BUG = true;
+ $default = function values(){ return $native.call(this); };
+ }
// Define iterator
if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
hide(proto, ITERATOR, $default);
@@ -2412,9 +2741,9 @@
Iterators[TAG] = returnThis;
if(DEFAULT){
methods = {
- values: DEF_VALUES ? $default : getMethod(VALUES),
- keys: IS_SET ? $default : getMethod(KEYS),
- entries: !DEF_VALUES ? $default : getMethod('entries')
+ values: DEF_VALUES ? $default : getMethod(VALUES),
+ keys: IS_SET ? $default : getMethod(KEYS),
+ entries: $entries
};
if(FORCED)for(key in methods){
if(!(key in proto))redefine(proto, key, methods[key]);
@@ -2424,63 +2753,253 @@
};
/***/ },
-/* 109 */
+/* 135 */
/***/ function(module, exports) {
module.exports = {};
/***/ },
-/* 110 */
+/* 136 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , descriptor = __webpack_require__(7)
- , setToStringTag = __webpack_require__(35)
+ var create = __webpack_require__(44)
+ , descriptor = __webpack_require__(15)
+ , setToStringTag = __webpack_require__(22)
, IteratorPrototype = {};
// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
- __webpack_require__(6)(IteratorPrototype, __webpack_require__(31)('iterator'), function(){ return this; });
+ __webpack_require__(8)(IteratorPrototype, __webpack_require__(23)('iterator'), function(){ return this; });
module.exports = function(Constructor, NAME, next){
- Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});
+ Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});
setToStringTag(Constructor, NAME + ' Iterator');
};
/***/ },
-/* 111 */
+/* 137 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var ctx = __webpack_require__(12)
- , $export = __webpack_require__(3)
- , toObject = __webpack_require__(21)
- , call = __webpack_require__(112)
- , isArrayIter = __webpack_require__(113)
- , toLength = __webpack_require__(27)
- , getIterFn = __webpack_require__(114);
- $export($export.S + $export.F * !__webpack_require__(115)(function(iter){ Array.from(iter); }), 'Array', {
+ // B.2.3.2 String.prototype.anchor(name)
+ __webpack_require__(138)('anchor', function(createHTML){
+ return function anchor(name){
+ return createHTML(this, 'a', 'name', name);
+ }
+ });
+
+/***/ },
+/* 138 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6)
+ , fails = __webpack_require__(5)
+ , defined = __webpack_require__(33)
+ , quot = /"/g;
+ // B.2.3.2.1 CreateHTML(string, tag, attribute, value)
+ var createHTML = function(string, tag, attribute, value) {
+ var S = String(defined(string))
+ , p1 = '<' + tag;
+ if(attribute !== '')p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
+ return p1 + '>' + S + '</' + tag + '>';
+ };
+ module.exports = function(NAME, exec){
+ var O = {};
+ O[NAME] = exec(createHTML);
+ $export($export.P + $export.F * fails(function(){
+ var test = ''[NAME]('"');
+ return test !== test.toLowerCase() || test.split('"').length > 3;
+ }), 'String', O);
+ };
+
+/***/ },
+/* 139 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.3 String.prototype.big()
+ __webpack_require__(138)('big', function(createHTML){
+ return function big(){
+ return createHTML(this, 'big', '', '');
+ }
+ });
+
+/***/ },
+/* 140 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.4 String.prototype.blink()
+ __webpack_require__(138)('blink', function(createHTML){
+ return function blink(){
+ return createHTML(this, 'blink', '', '');
+ }
+ });
+
+/***/ },
+/* 141 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.5 String.prototype.bold()
+ __webpack_require__(138)('bold', function(createHTML){
+ return function bold(){
+ return createHTML(this, 'b', '', '');
+ }
+ });
+
+/***/ },
+/* 142 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.6 String.prototype.fixed()
+ __webpack_require__(138)('fixed', function(createHTML){
+ return function fixed(){
+ return createHTML(this, 'tt', '', '');
+ }
+ });
+
+/***/ },
+/* 143 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.7 String.prototype.fontcolor(color)
+ __webpack_require__(138)('fontcolor', function(createHTML){
+ return function fontcolor(color){
+ return createHTML(this, 'font', 'color', color);
+ }
+ });
+
+/***/ },
+/* 144 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.8 String.prototype.fontsize(size)
+ __webpack_require__(138)('fontsize', function(createHTML){
+ return function fontsize(size){
+ return createHTML(this, 'font', 'size', size);
+ }
+ });
+
+/***/ },
+/* 145 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.9 String.prototype.italics()
+ __webpack_require__(138)('italics', function(createHTML){
+ return function italics(){
+ return createHTML(this, 'i', '', '');
+ }
+ });
+
+/***/ },
+/* 146 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.10 String.prototype.link(url)
+ __webpack_require__(138)('link', function(createHTML){
+ return function link(url){
+ return createHTML(this, 'a', 'href', url);
+ }
+ });
+
+/***/ },
+/* 147 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.11 String.prototype.small()
+ __webpack_require__(138)('small', function(createHTML){
+ return function small(){
+ return createHTML(this, 'small', '', '');
+ }
+ });
+
+/***/ },
+/* 148 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.12 String.prototype.strike()
+ __webpack_require__(138)('strike', function(createHTML){
+ return function strike(){
+ return createHTML(this, 'strike', '', '');
+ }
+ });
+
+/***/ },
+/* 149 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.13 String.prototype.sub()
+ __webpack_require__(138)('sub', function(createHTML){
+ return function sub(){
+ return createHTML(this, 'sub', '', '');
+ }
+ });
+
+/***/ },
+/* 150 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.14 String.prototype.sup()
+ __webpack_require__(138)('sup', function(createHTML){
+ return function sup(){
+ return createHTML(this, 'sup', '', '');
+ }
+ });
+
+/***/ },
+/* 151 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'Array', {isArray: __webpack_require__(43)});
+
+/***/ },
+/* 152 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var ctx = __webpack_require__(18)
+ , $export = __webpack_require__(6)
+ , toObject = __webpack_require__(56)
+ , call = __webpack_require__(153)
+ , isArrayIter = __webpack_require__(154)
+ , toLength = __webpack_require__(35)
+ , createProperty = __webpack_require__(155)
+ , getIterFn = __webpack_require__(156);
+
+ $export($export.S + $export.F * !__webpack_require__(157)(function(iter){ Array.from(iter); }), 'Array', {
// 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
var O = toObject(arrayLike)
, C = typeof this == 'function' ? this : Array
- , $$ = arguments
- , $$len = $$.length
- , mapfn = $$len > 1 ? $$[1] : undefined
+ , aLen = arguments.length
+ , mapfn = aLen > 1 ? arguments[1] : undefined
, mapping = mapfn !== undefined
, index = 0
, iterFn = getIterFn(O)
, length, result, step, iterator;
- if(mapping)mapfn = ctx(mapfn, $$len > 2 ? $$[2] : undefined, 2);
+ if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
// if object isn't iterable or it's array with default iterator - use simple case
if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){
for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){
- result[index] = mapping ? call(iterator, mapfn, [step.value, index], true) : step.value;
+ createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
}
} else {
length = toLength(O.length);
for(result = new C(length); length > index; index++){
- result[index] = mapping ? mapfn(O[index], index) : O[index];
+ createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
}
}
result.length = index;
@@ -2490,11 +3009,11 @@
/***/ },
-/* 112 */
+/* 153 */
/***/ function(module, exports, __webpack_require__) {
// call something on iterator step with safe closing on error
- var anObject = __webpack_require__(20);
+ var anObject = __webpack_require__(10);
module.exports = function(iterator, fn, value, entries){
try {
return entries ? fn(anObject(value)[0], value[1]) : fn(value);
@@ -2507,12 +3026,12 @@
};
/***/ },
-/* 113 */
+/* 154 */
/***/ function(module, exports, __webpack_require__) {
// check on default Array iterator
- var Iterators = __webpack_require__(109)
- , ITERATOR = __webpack_require__(31)('iterator')
+ var Iterators = __webpack_require__(135)
+ , ITERATOR = __webpack_require__(23)('iterator')
, ArrayProto = Array.prototype;
module.exports = function(it){
@@ -2520,23 +3039,36 @@
};
/***/ },
-/* 114 */
+/* 155 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $defineProperty = __webpack_require__(9)
+ , createDesc = __webpack_require__(15);
+
+ module.exports = function(object, index, value){
+ if(index in object)$defineProperty.f(object, index, createDesc(0, value));
+ else object[index] = value;
+ };
+
+/***/ },
+/* 156 */
/***/ function(module, exports, __webpack_require__) {
- var classof = __webpack_require__(47)
- , ITERATOR = __webpack_require__(31)('iterator')
- , Iterators = __webpack_require__(109);
- module.exports = __webpack_require__(5).getIteratorMethod = function(it){
+ var classof = __webpack_require__(73)
+ , ITERATOR = __webpack_require__(23)('iterator')
+ , Iterators = __webpack_require__(135);
+ module.exports = __webpack_require__(7).getIteratorMethod = function(it){
if(it != undefined)return it[ITERATOR]
|| it['@@iterator']
|| Iterators[classof(it)];
};
/***/ },
-/* 115 */
+/* 157 */
/***/ function(module, exports, __webpack_require__) {
- var ITERATOR = __webpack_require__(31)('iterator')
+ var ITERATOR = __webpack_require__(23)('iterator')
, SAFE_CLOSING = false;
try {
@@ -2559,140 +3091,413 @@
};
/***/ },
-/* 116 */
+/* 158 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6)
+ , createProperty = __webpack_require__(155);
// WebKit Array.of isn't generic
- $export($export.S + $export.F * __webpack_require__(9)(function(){
+ $export($export.S + $export.F * __webpack_require__(5)(function(){
function F(){}
return !(Array.of.call(F) instanceof F);
}), 'Array', {
// 22.1.2.3 Array.of( ...items)
of: function of(/* ...args */){
var index = 0
- , $$ = arguments
- , $$len = $$.length
- , result = new (typeof this == 'function' ? this : Array)($$len);
- while($$len > index)result[index] = $$[index++];
- result.length = $$len;
+ , aLen = arguments.length
+ , result = new (typeof this == 'function' ? this : Array)(aLen);
+ while(aLen > index)createProperty(result, index, arguments[index++]);
+ result.length = aLen;
return result;
}
});
/***/ },
-/* 117 */
+/* 159 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var addToUnscopables = __webpack_require__(118)
- , step = __webpack_require__(119)
- , Iterators = __webpack_require__(109)
- , toIObject = __webpack_require__(23);
+ // 22.1.3.13 Array.prototype.join(separator)
+ var $export = __webpack_require__(6)
+ , toIObject = __webpack_require__(30)
+ , arrayJoin = [].join;
- // 22.1.3.4 Array.prototype.entries()
- // 22.1.3.13 Array.prototype.keys()
- // 22.1.3.29 Array.prototype.values()
- // 22.1.3.30 Array.prototype[@@iterator]()
- module.exports = __webpack_require__(108)(Array, 'Array', function(iterated, kind){
- this._t = toIObject(iterated); // target
- this._i = 0; // next index
- this._k = kind; // kind
- // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
- }, function(){
- var O = this._t
- , kind = this._k
- , index = this._i++;
- if(!O || index >= O.length){
- this._t = undefined;
- return step(1);
+ // fallback for not array-like strings
+ $export($export.P + $export.F * (__webpack_require__(31) != Object || !__webpack_require__(160)(arrayJoin)), 'Array', {
+ join: function join(separator){
+ return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);
}
- if(kind == 'keys' )return step(0, index);
- if(kind == 'values')return step(0, O[index]);
- return step(0, [index, O[index]]);
- }, 'values');
+ });
- // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
- Iterators.Arguments = Iterators.Array;
+/***/ },
+/* 160 */
+/***/ function(module, exports, __webpack_require__) {
- addToUnscopables('keys');
- addToUnscopables('values');
- addToUnscopables('entries');
+ var fails = __webpack_require__(5);
+
+ module.exports = function(method, arg){
+ return !!method && fails(function(){
+ arg ? method.call(null, function(){}, 1) : method.call(null);
+ });
+ };
/***/ },
-/* 118 */
+/* 161 */
/***/ function(module, exports, __webpack_require__) {
- // 22.1.3.31 Array.prototype[@@unscopables]
- var UNSCOPABLES = __webpack_require__(31)('unscopables')
- , ArrayProto = Array.prototype;
- if(ArrayProto[UNSCOPABLES] == undefined)__webpack_require__(6)(ArrayProto, UNSCOPABLES, {});
- module.exports = function(key){
- ArrayProto[UNSCOPABLES][key] = true;
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , html = __webpack_require__(46)
+ , cof = __webpack_require__(32)
+ , toIndex = __webpack_require__(37)
+ , toLength = __webpack_require__(35)
+ , arraySlice = [].slice;
+
+ // fallback for not array-like ES3 strings and DOM objects
+ $export($export.P + $export.F * __webpack_require__(5)(function(){
+ if(html)arraySlice.call(html);
+ }), 'Array', {
+ slice: function slice(begin, end){
+ var len = toLength(this.length)
+ , klass = cof(this);
+ end = end === undefined ? len : end;
+ if(klass == 'Array')return arraySlice.call(this, begin, end);
+ var start = toIndex(begin, len)
+ , upTo = toIndex(end, len)
+ , size = toLength(upTo - start)
+ , cloned = Array(size)
+ , i = 0;
+ for(; i < size; i++)cloned[i] = klass == 'String'
+ ? this.charAt(start + i)
+ : this[start + i];
+ return cloned;
+ }
+ });
+
+/***/ },
+/* 162 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , aFunction = __webpack_require__(19)
+ , toObject = __webpack_require__(56)
+ , fails = __webpack_require__(5)
+ , $sort = [].sort
+ , test = [1, 2, 3];
+
+ $export($export.P + $export.F * (fails(function(){
+ // IE8-
+ test.sort(undefined);
+ }) || !fails(function(){
+ // V8 bug
+ test.sort(null);
+ // Old WebKit
+ }) || !__webpack_require__(160)($sort)), 'Array', {
+ // 22.1.3.25 Array.prototype.sort(comparefn)
+ sort: function sort(comparefn){
+ return comparefn === undefined
+ ? $sort.call(toObject(this))
+ : $sort.call(toObject(this), aFunction(comparefn));
+ }
+ });
+
+/***/ },
+/* 163 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $forEach = __webpack_require__(164)(0)
+ , STRICT = __webpack_require__(160)([].forEach, true);
+
+ $export($export.P + $export.F * !STRICT, 'Array', {
+ // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
+ forEach: function forEach(callbackfn /* , thisArg */){
+ return $forEach(this, callbackfn, arguments[1]);
+ }
+ });
+
+/***/ },
+/* 164 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 0 -> Array#forEach
+ // 1 -> Array#map
+ // 2 -> Array#filter
+ // 3 -> Array#some
+ // 4 -> Array#every
+ // 5 -> Array#find
+ // 6 -> Array#findIndex
+ var ctx = __webpack_require__(18)
+ , IObject = __webpack_require__(31)
+ , toObject = __webpack_require__(56)
+ , toLength = __webpack_require__(35)
+ , asc = __webpack_require__(165);
+ module.exports = function(TYPE, $create){
+ var IS_MAP = TYPE == 1
+ , IS_FILTER = TYPE == 2
+ , IS_SOME = TYPE == 3
+ , IS_EVERY = TYPE == 4
+ , IS_FIND_INDEX = TYPE == 6
+ , NO_HOLES = TYPE == 5 || IS_FIND_INDEX
+ , create = $create || asc;
+ return function($this, callbackfn, that){
+ var O = toObject($this)
+ , self = IObject(O)
+ , f = ctx(callbackfn, that, 3)
+ , length = toLength(self.length)
+ , index = 0
+ , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined
+ , val, res;
+ for(;length > index; index++)if(NO_HOLES || index in self){
+ val = self[index];
+ res = f(val, index, O);
+ if(TYPE){
+ if(IS_MAP)result[index] = res; // map
+ else if(res)switch(TYPE){
+ case 3: return true; // some
+ case 5: return val; // find
+ case 6: return index; // findIndex
+ case 2: result.push(val); // filter
+ } else if(IS_EVERY)return false; // every
+ }
+ }
+ return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+ };
};
/***/ },
-/* 119 */
-/***/ function(module, exports) {
+/* 165 */
+/***/ function(module, exports, __webpack_require__) {
- module.exports = function(done, value){
- return {value: value, done: !!done};
+ // 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+ var speciesConstructor = __webpack_require__(166);
+
+ module.exports = function(original, length){
+ return new (speciesConstructor(original))(length);
};
/***/ },
-/* 120 */
+/* 166 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isObject = __webpack_require__(11)
+ , isArray = __webpack_require__(43)
+ , SPECIES = __webpack_require__(23)('species');
+
+ module.exports = function(original){
+ var C;
+ if(isArray(original)){
+ C = original.constructor;
+ // cross-realm fallback
+ if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;
+ if(isObject(C)){
+ C = C[SPECIES];
+ if(C === null)C = undefined;
+ }
+ } return C === undefined ? Array : C;
+ };
+
+/***/ },
+/* 167 */
/***/ function(module, exports, __webpack_require__) {
- __webpack_require__(121)('Array');
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $map = __webpack_require__(164)(1);
+
+ $export($export.P + $export.F * !__webpack_require__(160)([].map, true), 'Array', {
+ // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
+ map: function map(callbackfn /* , thisArg */){
+ return $map(this, callbackfn, arguments[1]);
+ }
+ });
/***/ },
-/* 121 */
+/* 168 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var global = __webpack_require__(4)
- , $ = __webpack_require__(2)
- , DESCRIPTORS = __webpack_require__(8)
- , SPECIES = __webpack_require__(31)('species');
+ var $export = __webpack_require__(6)
+ , $filter = __webpack_require__(164)(2);
- module.exports = function(KEY){
- var C = global[KEY];
- if(DESCRIPTORS && C && !C[SPECIES])$.setDesc(C, SPECIES, {
- configurable: true,
- get: function(){ return this; }
- });
+ $export($export.P + $export.F * !__webpack_require__(160)([].filter, true), 'Array', {
+ // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
+ filter: function filter(callbackfn /* , thisArg */){
+ return $filter(this, callbackfn, arguments[1]);
+ }
+ });
+
+/***/ },
+/* 169 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $some = __webpack_require__(164)(3);
+
+ $export($export.P + $export.F * !__webpack_require__(160)([].some, true), 'Array', {
+ // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
+ some: function some(callbackfn /* , thisArg */){
+ return $some(this, callbackfn, arguments[1]);
+ }
+ });
+
+/***/ },
+/* 170 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $every = __webpack_require__(164)(4);
+
+ $export($export.P + $export.F * !__webpack_require__(160)([].every, true), 'Array', {
+ // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
+ every: function every(callbackfn /* , thisArg */){
+ return $every(this, callbackfn, arguments[1]);
+ }
+ });
+
+/***/ },
+/* 171 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $reduce = __webpack_require__(172);
+
+ $export($export.P + $export.F * !__webpack_require__(160)([].reduce, true), 'Array', {
+ // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
+ reduce: function reduce(callbackfn /* , initialValue */){
+ return $reduce(this, callbackfn, arguments.length, arguments[1], false);
+ }
+ });
+
+/***/ },
+/* 172 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var aFunction = __webpack_require__(19)
+ , toObject = __webpack_require__(56)
+ , IObject = __webpack_require__(31)
+ , toLength = __webpack_require__(35);
+
+ module.exports = function(that, callbackfn, aLen, memo, isRight){
+ aFunction(callbackfn);
+ var O = toObject(that)
+ , self = IObject(O)
+ , length = toLength(O.length)
+ , index = isRight ? length - 1 : 0
+ , i = isRight ? -1 : 1;
+ if(aLen < 2)for(;;){
+ if(index in self){
+ memo = self[index];
+ index += i;
+ break;
+ }
+ index += i;
+ if(isRight ? index < 0 : length <= index){
+ throw TypeError('Reduce of empty array with no initial value');
+ }
+ }
+ for(;isRight ? index >= 0 : length > index; index += i)if(index in self){
+ memo = callbackfn(memo, self[index], index, O);
+ }
+ return memo;
};
/***/ },
-/* 122 */
+/* 173 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $reduce = __webpack_require__(172);
+
+ $export($export.P + $export.F * !__webpack_require__(160)([].reduceRight, true), 'Array', {
+ // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
+ reduceRight: function reduceRight(callbackfn /* , initialValue */){
+ return $reduce(this, callbackfn, arguments.length, arguments[1], true);
+ }
+ });
+
+/***/ },
+/* 174 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $indexOf = __webpack_require__(34)(false)
+ , $native = [].indexOf
+ , NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
+
+ $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(160)($native)), 'Array', {
+ // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
+ indexOf: function indexOf(searchElement /*, fromIndex = 0 */){
+ return NEGATIVE_ZERO
+ // convert -0 to +0
+ ? $native.apply(this, arguments) || 0
+ : $indexOf(this, searchElement, arguments[1]);
+ }
+ });
+
+/***/ },
+/* 175 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toIObject = __webpack_require__(30)
+ , toInteger = __webpack_require__(36)
+ , toLength = __webpack_require__(35)
+ , $native = [].lastIndexOf
+ , NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;
+
+ $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(160)($native)), 'Array', {
+ // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
+ lastIndexOf: function lastIndexOf(searchElement /*, fromIndex = @[*-1] */){
+ // convert -0 to +0
+ if(NEGATIVE_ZERO)return $native.apply(this, arguments) || 0;
+ var O = toIObject(this)
+ , length = toLength(O.length)
+ , index = length - 1;
+ if(arguments.length > 1)index = Math.min(index, toInteger(arguments[1]));
+ if(index < 0)index = length + index;
+ for(;index >= 0; index--)if(index in O)if(O[index] === searchElement)return index || 0;
+ return -1;
+ }
+ });
+
+/***/ },
+/* 176 */
/***/ function(module, exports, __webpack_require__) {
// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.P, 'Array', {copyWithin: __webpack_require__(123)});
+ $export($export.P, 'Array', {copyWithin: __webpack_require__(177)});
- __webpack_require__(118)('copyWithin');
+ __webpack_require__(178)('copyWithin');
/***/ },
-/* 123 */
+/* 177 */
/***/ function(module, exports, __webpack_require__) {
// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
'use strict';
- var toObject = __webpack_require__(21)
- , toIndex = __webpack_require__(26)
- , toLength = __webpack_require__(27);
+ var toObject = __webpack_require__(56)
+ , toIndex = __webpack_require__(37)
+ , toLength = __webpack_require__(35);
module.exports = [].copyWithin || function copyWithin(target/*= 0*/, start/*= 0, end = @length*/){
var O = toObject(this)
, len = toLength(O.length)
, to = toIndex(target, len)
, from = toIndex(start, len)
- , $$ = arguments
- , end = $$.length > 2 ? $$[2] : undefined
+ , end = arguments.length > 2 ? arguments[2] : undefined
, count = Math.min((end === undefined ? len : toIndex(end, len)) - from, len - to)
, inc = 1;
if(from < to && to < from + count){
@@ -2709,45 +3514,56 @@
};
/***/ },
-/* 124 */
+/* 178 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 22.1.3.31 Array.prototype[@@unscopables]
+ var UNSCOPABLES = __webpack_require__(23)('unscopables')
+ , ArrayProto = Array.prototype;
+ if(ArrayProto[UNSCOPABLES] == undefined)__webpack_require__(8)(ArrayProto, UNSCOPABLES, {});
+ module.exports = function(key){
+ ArrayProto[UNSCOPABLES][key] = true;
+ };
+
+/***/ },
+/* 179 */
/***/ function(module, exports, __webpack_require__) {
// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.P, 'Array', {fill: __webpack_require__(125)});
+ $export($export.P, 'Array', {fill: __webpack_require__(180)});
- __webpack_require__(118)('fill');
+ __webpack_require__(178)('fill');
/***/ },
-/* 125 */
+/* 180 */
/***/ function(module, exports, __webpack_require__) {
// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
'use strict';
- var toObject = __webpack_require__(21)
- , toIndex = __webpack_require__(26)
- , toLength = __webpack_require__(27);
- module.exports = [].fill || function fill(value /*, start = 0, end = @length */){
+ var toObject = __webpack_require__(56)
+ , toIndex = __webpack_require__(37)
+ , toLength = __webpack_require__(35);
+ module.exports = function fill(value /*, start = 0, end = @length */){
var O = toObject(this)
, length = toLength(O.length)
- , $$ = arguments
- , $$len = $$.length
- , index = toIndex($$len > 1 ? $$[1] : undefined, length)
- , end = $$len > 2 ? $$[2] : undefined
+ , aLen = arguments.length
+ , index = toIndex(aLen > 1 ? arguments[1] : undefined, length)
+ , end = aLen > 2 ? arguments[2] : undefined
, endPos = end === undefined ? length : toIndex(end, length);
while(endPos > index)O[index++] = value;
return O;
};
/***/ },
-/* 126 */
+/* 181 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
- var $export = __webpack_require__(3)
- , $find = __webpack_require__(28)(5)
+ var $export = __webpack_require__(6)
+ , $find = __webpack_require__(164)(5)
, KEY = 'find'
, forced = true;
// Shouldn't skip holes
@@ -2757,16 +3573,16 @@
return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});
- __webpack_require__(118)(KEY);
+ __webpack_require__(178)(KEY);
/***/ },
-/* 127 */
+/* 182 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
- var $export = __webpack_require__(3)
- , $find = __webpack_require__(28)(6)
+ var $export = __webpack_require__(6)
+ , $find = __webpack_require__(164)(6)
, KEY = 'findIndex'
, forced = true;
// Shouldn't skip holes
@@ -2776,58 +3592,134 @@
return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});
- __webpack_require__(118)(KEY);
+ __webpack_require__(178)(KEY);
/***/ },
-/* 128 */
+/* 183 */
/***/ function(module, exports, __webpack_require__) {
- var $ = __webpack_require__(2)
- , global = __webpack_require__(4)
- , isRegExp = __webpack_require__(101)
- , $flags = __webpack_require__(129)
- , $RegExp = global.RegExp
- , Base = $RegExp
- , proto = $RegExp.prototype
- , re1 = /a/g
- , re2 = /a/g
+ 'use strict';
+ var addToUnscopables = __webpack_require__(178)
+ , step = __webpack_require__(184)
+ , Iterators = __webpack_require__(135)
+ , toIObject = __webpack_require__(30);
+
+ // 22.1.3.4 Array.prototype.entries()
+ // 22.1.3.13 Array.prototype.keys()
+ // 22.1.3.29 Array.prototype.values()
+ // 22.1.3.30 Array.prototype[@@iterator]()
+ module.exports = __webpack_require__(134)(Array, 'Array', function(iterated, kind){
+ this._t = toIObject(iterated); // target
+ this._i = 0; // next index
+ this._k = kind; // kind
+ // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
+ }, function(){
+ var O = this._t
+ , kind = this._k
+ , index = this._i++;
+ if(!O || index >= O.length){
+ this._t = undefined;
+ return step(1);
+ }
+ if(kind == 'keys' )return step(0, index);
+ if(kind == 'values')return step(0, O[index]);
+ return step(0, [index, O[index]]);
+ }, 'values');
+
+ // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
+ Iterators.Arguments = Iterators.Array;
+
+ addToUnscopables('keys');
+ addToUnscopables('values');
+ addToUnscopables('entries');
+
+/***/ },
+/* 184 */
+/***/ function(module, exports) {
+
+ module.exports = function(done, value){
+ return {value: value, done: !!done};
+ };
+
+/***/ },
+/* 185 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(186)('Array');
+
+/***/ },
+/* 186 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var global = __webpack_require__(2)
+ , dP = __webpack_require__(9)
+ , DESCRIPTORS = __webpack_require__(4)
+ , SPECIES = __webpack_require__(23)('species');
+
+ module.exports = function(KEY){
+ var C = global[KEY];
+ if(DESCRIPTORS && C && !C[SPECIES])dP.f(C, SPECIES, {
+ configurable: true,
+ get: function(){ return this; }
+ });
+ };
+
+/***/ },
+/* 187 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var global = __webpack_require__(2)
+ , inheritIfRequired = __webpack_require__(80)
+ , dP = __webpack_require__(9).f
+ , gOPN = __webpack_require__(48).f
+ , isRegExp = __webpack_require__(128)
+ , $flags = __webpack_require__(188)
+ , $RegExp = global.RegExp
+ , Base = $RegExp
+ , proto = $RegExp.prototype
+ , re1 = /a/g
+ , re2 = /a/g
// "new" creates a new object, old webkit buggy here
- , CORRECT_NEW = new $RegExp(re1) !== re1;
+ , CORRECT_NEW = new $RegExp(re1) !== re1;
- if(__webpack_require__(8) && (!CORRECT_NEW || __webpack_require__(9)(function(){
- re2[__webpack_require__(31)('match')] = false;
+ if(__webpack_require__(4) && (!CORRECT_NEW || __webpack_require__(5)(function(){
+ re2[__webpack_require__(23)('match')] = false;
// RegExp constructor can alter flags and IsRegExp works correct with @@match
return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
}))){
$RegExp = function RegExp(p, f){
- var piRE = isRegExp(p)
+ var tiRE = this instanceof $RegExp
+ , piRE = isRegExp(p)
, fiU = f === undefined;
- return !(this instanceof $RegExp) && piRE && p.constructor === $RegExp && fiU ? p
- : CORRECT_NEW
+ return !tiRE && piRE && p.constructor === $RegExp && fiU ? p
+ : inheritIfRequired(CORRECT_NEW
? new Base(piRE && !fiU ? p.source : p, f)
- : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f);
+ : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)
+ , tiRE ? this : proto, $RegExp);
};
- $.each.call($.getNames(Base), function(key){
- key in $RegExp || $.setDesc($RegExp, key, {
+ var proxy = function(key){
+ key in $RegExp || dP($RegExp, key, {
configurable: true,
get: function(){ return Base[key]; },
set: function(it){ Base[key] = it; }
});
- });
+ };
+ for(var keys = gOPN(Base), i = 0; keys.length > i; )proxy(keys[i++]);
proto.constructor = $RegExp;
$RegExp.prototype = proto;
- __webpack_require__(10)(global, 'RegExp', $RegExp);
+ __webpack_require__(16)(global, 'RegExp', $RegExp);
}
- __webpack_require__(121)('RegExp');
+ __webpack_require__(186)('RegExp');
/***/ },
-/* 129 */
+/* 188 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// 21.2.5.3 get RegExp.prototype.flags
- var anObject = __webpack_require__(20);
+ var anObject = __webpack_require__(10);
module.exports = function(){
var that = anObject(this)
, result = '';
@@ -2840,198 +3732,259 @@
};
/***/ },
-/* 130 */
+/* 189 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ __webpack_require__(190);
+ var anObject = __webpack_require__(10)
+ , $flags = __webpack_require__(188)
+ , DESCRIPTORS = __webpack_require__(4)
+ , TO_STRING = 'toString'
+ , $toString = /./[TO_STRING];
+
+ var define = function(fn){
+ __webpack_require__(16)(RegExp.prototype, TO_STRING, fn, true);
+ };
+
+ // 21.2.5.14 RegExp.prototype.toString()
+ if(__webpack_require__(5)(function(){ return $toString.call({source: 'a', flags: 'b'}) != '/a/b'; })){
+ define(function toString(){
+ var R = anObject(this);
+ return '/'.concat(R.source, '/',
+ 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);
+ });
+ // FF44- RegExp#toString has a wrong name
+ } else if($toString.name != TO_STRING){
+ define(function toString(){
+ return $toString.call(this);
+ });
+ }
+
+/***/ },
+/* 190 */
/***/ function(module, exports, __webpack_require__) {
// 21.2.5.3 get RegExp.prototype.flags()
- var $ = __webpack_require__(2);
- if(__webpack_require__(8) && /./g.flags != 'g')$.setDesc(RegExp.prototype, 'flags', {
+ if(__webpack_require__(4) && /./g.flags != 'g')__webpack_require__(9).f(RegExp.prototype, 'flags', {
configurable: true,
- get: __webpack_require__(129)
+ get: __webpack_require__(188)
});
/***/ },
-/* 131 */
+/* 191 */
/***/ function(module, exports, __webpack_require__) {
// @@match logic
- __webpack_require__(132)('match', 1, function(defined, MATCH){
+ __webpack_require__(192)('match', 1, function(defined, MATCH, $match){
// 21.1.3.11 String.prototype.match(regexp)
- return function match(regexp){
+ return [function match(regexp){
'use strict';
var O = defined(this)
, fn = regexp == undefined ? undefined : regexp[MATCH];
return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
- };
+ }, $match];
});
/***/ },
-/* 132 */
+/* 192 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var hide = __webpack_require__(6)
- , redefine = __webpack_require__(10)
- , fails = __webpack_require__(9)
- , defined = __webpack_require__(22)
- , wks = __webpack_require__(31);
+ var hide = __webpack_require__(8)
+ , redefine = __webpack_require__(16)
+ , fails = __webpack_require__(5)
+ , defined = __webpack_require__(33)
+ , wks = __webpack_require__(23);
module.exports = function(KEY, length, exec){
var SYMBOL = wks(KEY)
- , original = ''[KEY];
+ , fns = exec(defined, SYMBOL, ''[KEY])
+ , strfn = fns[0]
+ , rxfn = fns[1];
if(fails(function(){
var O = {};
O[SYMBOL] = function(){ return 7; };
return ''[KEY](O) != 7;
})){
- redefine(String.prototype, KEY, exec(defined, SYMBOL, original));
+ redefine(String.prototype, KEY, strfn);
hide(RegExp.prototype, SYMBOL, length == 2
// 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
// 21.2.5.11 RegExp.prototype[@@split](string, limit)
- ? function(string, arg){ return original.call(string, this, arg); }
+ ? function(string, arg){ return rxfn.call(string, this, arg); }
// 21.2.5.6 RegExp.prototype[@@match](string)
// 21.2.5.9 RegExp.prototype[@@search](string)
- : function(string){ return original.call(string, this); }
+ : function(string){ return rxfn.call(string, this); }
);
}
};
/***/ },
-/* 133 */
+/* 193 */
/***/ function(module, exports, __webpack_require__) {
// @@replace logic
- __webpack_require__(132)('replace', 2, function(defined, REPLACE, $replace){
+ __webpack_require__(192)('replace', 2, function(defined, REPLACE, $replace){
// 21.1.3.14 String.prototype.replace(searchValue, replaceValue)
- return function replace(searchValue, replaceValue){
+ return [function replace(searchValue, replaceValue){
'use strict';
var O = defined(this)
, fn = searchValue == undefined ? undefined : searchValue[REPLACE];
return fn !== undefined
? fn.call(searchValue, O, replaceValue)
: $replace.call(String(O), searchValue, replaceValue);
- };
+ }, $replace];
});
/***/ },
-/* 134 */
+/* 194 */
/***/ function(module, exports, __webpack_require__) {
// @@search logic
- __webpack_require__(132)('search', 1, function(defined, SEARCH){
+ __webpack_require__(192)('search', 1, function(defined, SEARCH, $search){
// 21.1.3.15 String.prototype.search(regexp)
- return function search(regexp){
+ return [function search(regexp){
'use strict';
var O = defined(this)
, fn = regexp == undefined ? undefined : regexp[SEARCH];
return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
- };
+ }, $search];
});
/***/ },
-/* 135 */
+/* 195 */
/***/ function(module, exports, __webpack_require__) {
// @@split logic
- __webpack_require__(132)('split', 2, function(defined, SPLIT, $split){
+ __webpack_require__(192)('split', 2, function(defined, SPLIT, $split){
+ 'use strict';
+ var isRegExp = __webpack_require__(128)
+ , _split = $split
+ , $push = [].push
+ , $SPLIT = 'split'
+ , LENGTH = 'length'
+ , LAST_INDEX = 'lastIndex';
+ if(
+ 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
+ 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
+ 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
+ '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
+ '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
+ ''[$SPLIT](/.?/)[LENGTH]
+ ){
+ var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group
+ // based on es5-shim implementation, need to rework it
+ $split = function(separator, limit){
+ var string = String(this);
+ if(separator === undefined && limit === 0)return [];
+ // If `separator` is not a regex, use native split
+ if(!isRegExp(separator))return _split.call(string, separator, limit);
+ var output = [];
+ var flags = (separator.ignoreCase ? 'i' : '') +
+ (separator.multiline ? 'm' : '') +
+ (separator.unicode ? 'u' : '') +
+ (separator.sticky ? 'y' : '');
+ var lastLastIndex = 0;
+ var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;
+ // Make `global` and avoid `lastIndex` issues by working with a copy
+ var separatorCopy = new RegExp(separator.source, flags + 'g');
+ var separator2, match, lastIndex, lastLength, i;
+ // Doesn't need flags gy, but they don't hurt
+ if(!NPCG)separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\s)', flags);
+ while(match = separatorCopy.exec(string)){
+ // `separatorCopy.lastIndex` is not reliable cross-browser
+ lastIndex = match.index + match[0][LENGTH];
+ if(lastIndex > lastLastIndex){
+ output.push(string.slice(lastLastIndex, match.index));
+ // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG
+ if(!NPCG && match[LENGTH] > 1)match[0].replace(separator2, function(){
+ for(i = 1; i < arguments[LENGTH] - 2; i++)if(arguments[i] === undefined)match[i] = undefined;
+ });
+ if(match[LENGTH] > 1 && match.index < string[LENGTH])$push.apply(output, match.slice(1));
+ lastLength = match[0][LENGTH];
+ lastLastIndex = lastIndex;
+ if(output[LENGTH] >= splitLimit)break;
+ }
+ if(separatorCopy[LAST_INDEX] === match.index)separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
+ }
+ if(lastLastIndex === string[LENGTH]){
+ if(lastLength || !separatorCopy.test(''))output.push('');
+ } else output.push(string.slice(lastLastIndex));
+ return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
+ };
+ // Chakra, V8
+ } else if('0'[$SPLIT](undefined, 0)[LENGTH]){
+ $split = function(separator, limit){
+ return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);
+ };
+ }
// 21.1.3.17 String.prototype.split(separator, limit)
- return function split(separator, limit){
- 'use strict';
+ return [function split(separator, limit){
var O = defined(this)
, fn = separator == undefined ? undefined : separator[SPLIT];
- return fn !== undefined
- ? fn.call(separator, O, limit)
- : $split.call(String(O), separator, limit);
- };
+ return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);
+ }, $split];
});
/***/ },
-/* 136 */
+/* 196 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , LIBRARY = __webpack_require__(39)
- , global = __webpack_require__(4)
- , ctx = __webpack_require__(12)
- , classof = __webpack_require__(47)
- , $export = __webpack_require__(3)
- , isObject = __webpack_require__(16)
- , anObject = __webpack_require__(20)
- , aFunction = __webpack_require__(13)
- , strictNew = __webpack_require__(137)
- , forOf = __webpack_require__(138)
- , setProto = __webpack_require__(45).set
- , same = __webpack_require__(43)
- , SPECIES = __webpack_require__(31)('species')
- , speciesConstructor = __webpack_require__(139)
- , asap = __webpack_require__(140)
- , PROMISE = 'Promise'
- , process = global.process
- , isNode = classof(process) == 'process'
- , P = global[PROMISE]
- , empty = function(){ /* empty */ }
- , Wrapper;
-
- var testResolve = function(sub){
- var test = new P(empty), promise;
- if(sub)test.constructor = function(exec){
- exec(empty, empty);
- };
- (promise = P.resolve(test))['catch'](empty);
- return promise === test;
- };
+ var LIBRARY = __webpack_require__(26)
+ , global = __webpack_require__(2)
+ , ctx = __webpack_require__(18)
+ , classof = __webpack_require__(73)
+ , $export = __webpack_require__(6)
+ , isObject = __webpack_require__(11)
+ , aFunction = __webpack_require__(19)
+ , anInstance = __webpack_require__(197)
+ , forOf = __webpack_require__(198)
+ , speciesConstructor = __webpack_require__(199)
+ , task = __webpack_require__(200).set
+ , microtask = __webpack_require__(201)()
+ , PROMISE = 'Promise'
+ , TypeError = global.TypeError
+ , process = global.process
+ , $Promise = global[PROMISE]
+ , process = global.process
+ , isNode = classof(process) == 'process'
+ , empty = function(){ /* empty */ }
+ , Internal, GenericPromiseCapability, Wrapper;
- var USE_NATIVE = function(){
- var works = false;
- function P2(x){
- var self = new P(x);
- setProto(self, P2.prototype);
- return self;
- }
+ var USE_NATIVE = !!function(){
try {
- works = P && P.resolve && testResolve();
- setProto(P2, P);
- P2.prototype = $.create(P.prototype, {constructor: {value: P2}});
- // actual Firefox has broken subclass support, test that
- if(!(P2.resolve(5).then(function(){}) instanceof P2)){
- works = false;
- }
- // actual V8 bug, https://code.google.com/p/v8/issues/detail?id=4162
- if(works && __webpack_require__(8)){
- var thenableThenGotten = false;
- P.resolve($.setDesc({}, 'then', {
- get: function(){ thenableThenGotten = true; }
- }));
- works = thenableThenGotten;
- }
- } catch(e){ works = false; }
- return works;
+ // correct subclassing with @@species support
+ var promise = $Promise.resolve(1)
+ , FakePromise = (promise.constructor = {})[__webpack_require__(23)('species')] = function(exec){ exec(empty, empty); };
+ // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
+ return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;
+ } catch(e){ /* empty */ }
}();
// helpers
var sameConstructor = function(a, b){
- // library wrapper special case
- if(LIBRARY && a === P && b === Wrapper)return true;
- return same(a, b);
- };
- var getConstructor = function(C){
- var S = anObject(C)[SPECIES];
- return S != undefined ? S : C;
+ // with library wrapper special case
+ return a === b || a === $Promise && b === Wrapper;
};
var isThenable = function(it){
var then;
return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
};
- var PromiseCapability = function(C){
+ var newPromiseCapability = function(C){
+ return sameConstructor($Promise, C)
+ ? new PromiseCapability(C)
+ : new GenericPromiseCapability(C);
+ };
+ var PromiseCapability = GenericPromiseCapability = function(C){
var resolve, reject;
this.promise = new C(function($$resolve, $$reject){
if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor');
resolve = $$resolve;
reject = $$reject;
});
- this.resolve = aFunction(resolve),
- this.reject = aFunction(reject)
+ this.resolve = aFunction(resolve);
+ this.reject = aFunction(reject);
};
var perform = function(exec){
try {
@@ -3040,23 +3993,32 @@
return {error: e};
}
};
- var notify = function(record, isReject){
- if(record.n)return;
- record.n = true;
- var chain = record.c;
- asap(function(){
- var value = record.v
- , ok = record.s == 1
+ var notify = function(promise, isReject){
+ if(promise._n)return;
+ promise._n = true;
+ var chain = promise._c;
+ microtask(function(){
+ var value = promise._v
+ , ok = promise._s == 1
, i = 0;
var run = function(reaction){
var handler = ok ? reaction.ok : reaction.fail
, resolve = reaction.resolve
, reject = reaction.reject
+ , domain = reaction.domain
, result, then;
try {
if(handler){
- if(!ok)record.h = true;
- result = handler === true ? value : handler(value);
+ if(!ok){
+ if(promise._h == 2)onHandleUnhandled(promise);
+ promise._h = 1;
+ }
+ if(handler === true)result = value;
+ else {
+ if(domain)domain.enter();
+ result = handler(value);
+ if(domain)domain.exit();
+ }
if(result === reaction.promise){
reject(TypeError('Promise-chain cycle'));
} else if(then = isThenable(result)){
@@ -3068,12 +4030,17 @@
}
};
while(chain.length > i)run(chain[i++]); // variable length - can't use forEach
- chain.length = 0;
- record.n = false;
- if(isReject)setTimeout(function(){
- var promise = record.p
- , handler, console;
- if(isUnhandled(promise)){
+ promise._c = [];
+ promise._n = false;
+ if(isReject && !promise._h)onUnhandled(promise);
+ });
+ };
+ var onUnhandled = function(promise){
+ task.call(global, function(){
+ var value = promise._v
+ , abrupt, handler, console;
+ if(isUnhandled(promise)){
+ abrupt = perform(function(){
if(isNode){
process.emit('unhandledRejection', value, promise);
} else if(handler = global.onunhandledrejection){
@@ -3081,42 +4048,54 @@
} else if((console = global.console) && console.error){
console.error('Unhandled promise rejection', value);
}
- } record.a = undefined;
- }, 1);
+ });
+ // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
+ promise._h = isNode || isUnhandled(promise) ? 2 : 1;
+ } promise._a = undefined;
+ if(abrupt)throw abrupt.error;
});
};
var isUnhandled = function(promise){
- var record = promise._d
- , chain = record.a || record.c
- , i = 0
+ if(promise._h == 1)return false;
+ var chain = promise._a || promise._c
+ , i = 0
, reaction;
- if(record.h)return false;
while(chain.length > i){
reaction = chain[i++];
if(reaction.fail || !isUnhandled(reaction.promise))return false;
} return true;
};
+ var onHandleUnhandled = function(promise){
+ task.call(global, function(){
+ var handler;
+ if(isNode){
+ process.emit('rejectionHandled', promise);
+ } else if(handler = global.onrejectionhandled){
+ handler({promise: promise, reason: promise._v});
+ }
+ });
+ };
var $reject = function(value){
- var record = this;
- if(record.d)return;
- record.d = true;
- record = record.r || record; // unwrap
- record.v = value;
- record.s = 2;
- record.a = record.c.slice();
- notify(record, true);
+ var promise = this;
+ if(promise._d)return;
+ promise._d = true;
+ promise = promise._w || promise; // unwrap
+ promise._v = value;
+ promise._s = 2;
+ if(!promise._a)promise._a = promise._c.slice();
+ notify(promise, true);
};
var $resolve = function(value){
- var record = this
+ var promise = this
, then;
- if(record.d)return;
- record.d = true;
- record = record.r || record; // unwrap
+ if(promise._d)return;
+ promise._d = true;
+ promise = promise._w || promise; // unwrap
try {
- if(record.p === value)throw TypeError("Promise can't be resolved itself");
+ if(promise === value)throw TypeError("Promise can't be resolved itself");
if(then = isThenable(value)){
- asap(function(){
- var wrapper = {r: record, d: false}; // wrap
+ microtask(function(){
+ var wrapper = {_w: promise, _d: false}; // wrap
try {
then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
} catch(e){
@@ -3124,114 +4103,122 @@
}
});
} else {
- record.v = value;
- record.s = 1;
- notify(record, false);
+ promise._v = value;
+ promise._s = 1;
+ notify(promise, false);
}
} catch(e){
- $reject.call({r: record, d: false}, e); // wrap
+ $reject.call({_w: promise, _d: false}, e); // wrap
}
};
// constructor polyfill
if(!USE_NATIVE){
// 25.4.3.1 Promise(executor)
- P = function Promise(executor){
+ $Promise = function Promise(executor){
+ anInstance(this, $Promise, PROMISE, '_h');
aFunction(executor);
- var record = this._d = {
- p: strictNew(this, P, PROMISE), // <- promise
- c: [], // <- awaiting reactions
- a: undefined, // <- checked in isUnhandled reactions
- s: 0, // <- state
- d: false, // <- done
- v: undefined, // <- value
- h: false, // <- handled rejection
- n: false // <- notify
- };
+ Internal.call(this);
try {
- executor(ctx($resolve, record, 1), ctx($reject, record, 1));
+ executor(ctx($resolve, this, 1), ctx($reject, this, 1));
} catch(err){
- $reject.call(record, err);
+ $reject.call(this, err);
}
};
- __webpack_require__(142)(P.prototype, {
+ Internal = function Promise(executor){
+ this._c = []; // <- awaiting reactions
+ this._a = undefined; // <- checked in isUnhandled reactions
+ this._s = 0; // <- state
+ this._d = false; // <- done
+ this._v = undefined; // <- value
+ this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
+ this._n = false; // <- notify
+ };
+ Internal.prototype = __webpack_require__(202)($Promise.prototype, {
// 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
then: function then(onFulfilled, onRejected){
- var reaction = new PromiseCapability(speciesConstructor(this, P))
- , promise = reaction.promise
- , record = this._d;
- reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
- reaction.fail = typeof onRejected == 'function' && onRejected;
- record.c.push(reaction);
- if(record.a)record.a.push(reaction);
- if(record.s)notify(record, false);
- return promise;
+ var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
+ reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
+ reaction.fail = typeof onRejected == 'function' && onRejected;
+ reaction.domain = isNode ? process.domain : undefined;
+ this._c.push(reaction);
+ if(this._a)this._a.push(reaction);
+ if(this._s)notify(this, false);
+ return reaction.promise;
},
// 25.4.5.1 Promise.prototype.catch(onRejected)
'catch': function(onRejected){
return this.then(undefined, onRejected);
}
});
+ PromiseCapability = function(){
+ var promise = new Internal;
+ this.promise = promise;
+ this.resolve = ctx($resolve, promise, 1);
+ this.reject = ctx($reject, promise, 1);
+ };
}
- $export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: P});
- __webpack_require__(35)(P, PROMISE);
- __webpack_require__(121)(PROMISE);
- Wrapper = __webpack_require__(5)[PROMISE];
+ $export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: $Promise});
+ __webpack_require__(22)($Promise, PROMISE);
+ __webpack_require__(186)(PROMISE);
+ Wrapper = __webpack_require__(7)[PROMISE];
// statics
$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
// 25.4.4.5 Promise.reject(r)
reject: function reject(r){
- var capability = new PromiseCapability(this)
+ var capability = newPromiseCapability(this)
, $$reject = capability.reject;
$$reject(r);
return capability.promise;
}
});
- $export($export.S + $export.F * (!USE_NATIVE || testResolve(true)), PROMISE, {
+ $export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
// 25.4.4.6 Promise.resolve(x)
resolve: function resolve(x){
// instanceof instead of internal slot check because we should fix it without replacement native Promise core
- if(x instanceof P && sameConstructor(x.constructor, this))return x;
- var capability = new PromiseCapability(this)
+ if(x instanceof $Promise && sameConstructor(x.constructor, this))return x;
+ var capability = newPromiseCapability(this)
, $$resolve = capability.resolve;
$$resolve(x);
return capability.promise;
}
});
- $export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(115)(function(iter){
- P.all(iter)['catch'](function(){});
+ $export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(157)(function(iter){
+ $Promise.all(iter)['catch'](empty);
})), PROMISE, {
// 25.4.4.1 Promise.all(iterable)
all: function all(iterable){
- var C = getConstructor(this)
- , capability = new PromiseCapability(C)
+ var C = this
+ , capability = newPromiseCapability(C)
, resolve = capability.resolve
- , reject = capability.reject
- , values = [];
+ , reject = capability.reject;
var abrupt = perform(function(){
- forOf(iterable, false, values.push, values);
- var remaining = values.length
- , results = Array(remaining);
- if(remaining)$.each.call(values, function(promise, index){
- var alreadyCalled = false;
+ var values = []
+ , index = 0
+ , remaining = 1;
+ forOf(iterable, false, function(promise){
+ var $index = index++
+ , alreadyCalled = false;
+ values.push(undefined);
+ remaining++;
C.resolve(promise).then(function(value){
if(alreadyCalled)return;
- alreadyCalled = true;
- results[index] = value;
- --remaining || resolve(results);
+ alreadyCalled = true;
+ values[$index] = value;
+ --remaining || resolve(values);
}, reject);
});
- else resolve(results);
+ --remaining || resolve(values);
});
if(abrupt)reject(abrupt.error);
return capability.promise;
},
// 25.4.4.4 Promise.race(iterable)
race: function race(iterable){
- var C = getConstructor(this)
- , capability = new PromiseCapability(C)
+ var C = this
+ , capability = newPromiseCapability(C)
, reject = capability.reject;
var abrupt = perform(function(){
forOf(iterable, false, function(promise){
@@ -3244,129 +4231,67 @@
});
/***/ },
-/* 137 */
+/* 197 */
/***/ function(module, exports) {
- module.exports = function(it, Constructor, name){
- if(!(it instanceof Constructor))throw TypeError(name + ": use the 'new' operator!");
- return it;
+ module.exports = function(it, Constructor, name, forbiddenField){
+ if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){
+ throw TypeError(name + ': incorrect invocation!');
+ } return it;
};
/***/ },
-/* 138 */
+/* 198 */
/***/ function(module, exports, __webpack_require__) {
- var ctx = __webpack_require__(12)
- , call = __webpack_require__(112)
- , isArrayIter = __webpack_require__(113)
- , anObject = __webpack_require__(20)
- , toLength = __webpack_require__(27)
- , getIterFn = __webpack_require__(114);
- module.exports = function(iterable, entries, fn, that){
- var iterFn = getIterFn(iterable)
+ var ctx = __webpack_require__(18)
+ , call = __webpack_require__(153)
+ , isArrayIter = __webpack_require__(154)
+ , anObject = __webpack_require__(10)
+ , toLength = __webpack_require__(35)
+ , getIterFn = __webpack_require__(156)
+ , BREAK = {}
+ , RETURN = {};
+ var exports = module.exports = function(iterable, entries, fn, that, ITERATOR){
+ var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)
, f = ctx(fn, that, entries ? 2 : 1)
, index = 0
- , length, step, iterator;
+ , length, step, iterator, result;
if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');
// fast case for arrays with default iterator
if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){
- entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
+ result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
+ if(result === BREAK || result === RETURN)return result;
} else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
- call(iterator, f, step.value, entries);
+ result = call(iterator, f, step.value, entries);
+ if(result === BREAK || result === RETURN)return result;
}
};
+ exports.BREAK = BREAK;
+ exports.RETURN = RETURN;
/***/ },
-/* 139 */
+/* 199 */
/***/ function(module, exports, __webpack_require__) {
// 7.3.20 SpeciesConstructor(O, defaultConstructor)
- var anObject = __webpack_require__(20)
- , aFunction = __webpack_require__(13)
- , SPECIES = __webpack_require__(31)('species');
+ var anObject = __webpack_require__(10)
+ , aFunction = __webpack_require__(19)
+ , SPECIES = __webpack_require__(23)('species');
module.exports = function(O, D){
var C = anObject(O).constructor, S;
return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
};
/***/ },
-/* 140 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(4)
- , macrotask = __webpack_require__(141).set
- , Observer = global.MutationObserver || global.WebKitMutationObserver
- , process = global.process
- , Promise = global.Promise
- , isNode = __webpack_require__(18)(process) == 'process'
- , head, last, notify;
-
- var flush = function(){
- var parent, domain, fn;
- if(isNode && (parent = process.domain)){
- process.domain = null;
- parent.exit();
- }
- while(head){
- domain = head.domain;
- fn = head.fn;
- if(domain)domain.enter();
- fn(); // <- currently we use it only for Promise - try / catch not required
- if(domain)domain.exit();
- head = head.next;
- } last = undefined;
- if(parent)parent.enter();
- };
-
- // Node.js
- if(isNode){
- notify = function(){
- process.nextTick(flush);
- };
- // browsers with MutationObserver
- } else if(Observer){
- var toggle = 1
- , node = document.createTextNode('');
- new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new
- notify = function(){
- node.data = toggle = -toggle;
- };
- // environments with maybe non-completely correct, but existent Promise
- } else if(Promise && Promise.resolve){
- notify = function(){
- Promise.resolve().then(flush);
- };
- // for other environments - macrotask based on:
- // - setImmediate
- // - MessageChannel
- // - window.postMessag
- // - onreadystatechange
- // - setTimeout
- } else {
- notify = function(){
- // strange IE + webpack dev server bug - use .call(global)
- macrotask.call(global, flush);
- };
- }
-
- module.exports = function asap(fn){
- var task = {fn: fn, next: undefined, domain: isNode && process.domain};
- if(last)last.next = task;
- if(!head){
- head = task;
- notify();
- } last = task;
- };
-
-/***/ },
-/* 141 */
+/* 200 */
/***/ function(module, exports, __webpack_require__) {
- var ctx = __webpack_require__(12)
- , invoke = __webpack_require__(19)
- , html = __webpack_require__(14)
- , cel = __webpack_require__(15)
- , global = __webpack_require__(4)
+ var ctx = __webpack_require__(18)
+ , invoke = __webpack_require__(76)
+ , html = __webpack_require__(46)
+ , cel = __webpack_require__(13)
+ , global = __webpack_require__(2)
, process = global.process
, setTask = global.setImmediate
, clearTask = global.clearImmediate
@@ -3383,7 +4308,7 @@
fn();
}
};
- var listner = function(event){
+ var listener = function(event){
run.call(event.data);
};
// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
@@ -3401,7 +4326,7 @@
delete queue[id];
};
// Node.js 0.8-
- if(__webpack_require__(18)(process) == 'process'){
+ if(__webpack_require__(32)(process) == 'process'){
defer = function(id){
process.nextTick(ctx(run, id, 1));
};
@@ -3409,7 +4334,7 @@
} else if(MessageChannel){
channel = new MessageChannel;
port = channel.port2;
- channel.port1.onmessage = listner;
+ channel.port1.onmessage = listener;
defer = ctx(port.postMessage, port, 1);
// Browsers with postMessage, skip WebWorkers
// IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
@@ -3417,7 +4342,7 @@
defer = function(id){
global.postMessage(id + '', '*');
};
- global.addEventListener('message', listner, false);
+ global.addEventListener('message', listener, false);
// IE8-
} else if(ONREADYSTATECHANGE in cel('script')){
defer = function(id){
@@ -3439,24 +4364,97 @@
};
/***/ },
-/* 142 */
+/* 201 */
/***/ function(module, exports, __webpack_require__) {
- var redefine = __webpack_require__(10);
- module.exports = function(target, src){
- for(var key in src)redefine(target, key, src[key]);
+ var global = __webpack_require__(2)
+ , macrotask = __webpack_require__(200).set
+ , Observer = global.MutationObserver || global.WebKitMutationObserver
+ , process = global.process
+ , Promise = global.Promise
+ , isNode = __webpack_require__(32)(process) == 'process';
+
+ module.exports = function(){
+ var head, last, notify;
+
+ var flush = function(){
+ var parent, fn;
+ if(isNode && (parent = process.domain))parent.exit();
+ while(head){
+ fn = head.fn;
+ head = head.next;
+ try {
+ fn();
+ } catch(e){
+ if(head)notify();
+ else last = undefined;
+ throw e;
+ }
+ } last = undefined;
+ if(parent)parent.enter();
+ };
+
+ // Node.js
+ if(isNode){
+ notify = function(){
+ process.nextTick(flush);
+ };
+ // browsers with MutationObserver
+ } else if(Observer){
+ var toggle = true
+ , node = document.createTextNode('');
+ new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new
+ notify = function(){
+ node.data = toggle = !toggle;
+ };
+ // environments with maybe non-completely correct, but existent Promise
+ } else if(Promise && Promise.resolve){
+ var promise = Promise.resolve();
+ notify = function(){
+ promise.then(flush);
+ };
+ // for other environments - macrotask based on:
+ // - setImmediate
+ // - MessageChannel
+ // - window.postMessag
+ // - onreadystatechange
+ // - setTimeout
+ } else {
+ notify = function(){
+ // strange IE + webpack dev server bug - use .call(global)
+ macrotask.call(global, flush);
+ };
+ }
+
+ return function(fn){
+ var task = {fn: fn, next: undefined};
+ if(last)last.next = task;
+ if(!head){
+ head = task;
+ notify();
+ } last = task;
+ };
+ };
+
+/***/ },
+/* 202 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var redefine = __webpack_require__(16);
+ module.exports = function(target, src, safe){
+ for(var key in src)redefine(target, key, src[key], safe);
return target;
};
/***/ },
-/* 143 */
+/* 203 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var strong = __webpack_require__(144);
+ var strong = __webpack_require__(204);
// 23.1 Map Objects
- __webpack_require__(145)('Map', function(get){
+ module.exports = __webpack_require__(205)('Map', function(get){
return function Map(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.1.3.6 Map.prototype.get(key)
@@ -3471,41 +4469,23 @@
}, strong, true);
/***/ },
-/* 144 */
+/* 204 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , hide = __webpack_require__(6)
- , redefineAll = __webpack_require__(142)
- , ctx = __webpack_require__(12)
- , strictNew = __webpack_require__(137)
- , defined = __webpack_require__(22)
- , forOf = __webpack_require__(138)
- , $iterDefine = __webpack_require__(108)
- , step = __webpack_require__(119)
- , ID = __webpack_require__(11)('id')
- , $has = __webpack_require__(17)
- , isObject = __webpack_require__(16)
- , setSpecies = __webpack_require__(121)
- , DESCRIPTORS = __webpack_require__(8)
- , isExtensible = Object.isExtensible || isObject
- , SIZE = DESCRIPTORS ? '_s' : 'size'
- , id = 0;
-
- var fastKey = function(it, create){
- // return primitive with prefix
- if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
- if(!$has(it, ID)){
- // can't set id to frozen object
- if(!isExtensible(it))return 'F';
- // not necessary to add id
- if(!create)return 'E';
- // add missing object id
- hide(it, ID, ++id);
- // return object id with prefix
- } return 'O' + it[ID];
- };
+ var dP = __webpack_require__(9).f
+ , create = __webpack_require__(44)
+ , redefineAll = __webpack_require__(202)
+ , ctx = __webpack_require__(18)
+ , anInstance = __webpack_require__(197)
+ , defined = __webpack_require__(33)
+ , forOf = __webpack_require__(198)
+ , $iterDefine = __webpack_require__(134)
+ , step = __webpack_require__(184)
+ , setSpecies = __webpack_require__(186)
+ , DESCRIPTORS = __webpack_require__(4)
+ , fastKey = __webpack_require__(20).fastKey
+ , SIZE = DESCRIPTORS ? '_s' : 'size';
var getEntry = function(that, key){
// fast case
@@ -3520,11 +4500,11 @@
module.exports = {
getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
var C = wrapper(function(that, iterable){
- strictNew(that, C, NAME);
- that._i = $.create(null); // index
- that._f = undefined; // first entry
- that._l = undefined; // last entry
- that[SIZE] = 0; // size
+ anInstance(that, C, NAME, '_i');
+ that._i = create(null); // index
+ that._f = undefined; // first entry
+ that._l = undefined; // last entry
+ that[SIZE] = 0; // size
if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
});
redefineAll(C.prototype, {
@@ -3559,6 +4539,7 @@
// 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
// 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
forEach: function forEach(callbackfn /*, that = undefined */){
+ anInstance(this, C, 'forEach');
var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)
, entry;
while(entry = entry ? entry.n : this._f){
@@ -3573,7 +4554,7 @@
return !!getEntry(this, key);
}
});
- if(DESCRIPTORS)$.setDesc(C.prototype, 'size', {
+ if(DESCRIPTORS)dP(C.prototype, 'size', {
get: function(){
return defined(this[SIZE]);
}
@@ -3635,20 +4616,22 @@
};
/***/ },
-/* 145 */
+/* 205 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var global = __webpack_require__(4)
- , $export = __webpack_require__(3)
- , redefine = __webpack_require__(10)
- , redefineAll = __webpack_require__(142)
- , forOf = __webpack_require__(138)
- , strictNew = __webpack_require__(137)
- , isObject = __webpack_require__(16)
- , fails = __webpack_require__(9)
- , $iterDetect = __webpack_require__(115)
- , setToStringTag = __webpack_require__(35);
+ var global = __webpack_require__(2)
+ , $export = __webpack_require__(6)
+ , redefine = __webpack_require__(16)
+ , redefineAll = __webpack_require__(202)
+ , meta = __webpack_require__(20)
+ , forOf = __webpack_require__(198)
+ , anInstance = __webpack_require__(197)
+ , isObject = __webpack_require__(11)
+ , fails = __webpack_require__(5)
+ , $iterDetect = __webpack_require__(157)
+ , setToStringTag = __webpack_require__(22)
+ , inheritIfRequired = __webpack_require__(80);
module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){
var Base = global[NAME]
@@ -3675,6 +4658,7 @@
// create collection constructor
C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
redefineAll(C.prototype, methods);
+ meta.NEED = true;
} else {
var instance = new C
// early implementations not supports chaining
@@ -3684,20 +4668,23 @@
// most early implementations doesn't supports iterables, most modern - not close it correctly
, ACCEPT_ITERABLES = $iterDetect(function(iter){ new C(iter); }) // eslint-disable-line no-new
// for early implementations -0 and +0 not the same
- , BUGGY_ZERO;
+ , BUGGY_ZERO = !IS_WEAK && fails(function(){
+ // V8 ~ Chromium 42- fails only with 5+ elements
+ var $instance = new C()
+ , index = 5;
+ while(index--)$instance[ADDER](index, index);
+ return !$instance.has(-0);
+ });
if(!ACCEPT_ITERABLES){
C = wrapper(function(target, iterable){
- strictNew(target, C, NAME);
- var that = new Base;
+ anInstance(target, C, NAME);
+ var that = inheritIfRequired(new Base, target, C);
if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
return that;
});
C.prototype = proto;
proto.constructor = C;
}
- IS_WEAK || instance.forEach(function(val, key){
- BUGGY_ZERO = 1 / key === -Infinity;
- });
if(THROWS_ON_PRIMITIVES || BUGGY_ZERO){
fixMethod('delete');
fixMethod('has');
@@ -3719,14 +4706,14 @@
};
/***/ },
-/* 146 */
+/* 206 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var strong = __webpack_require__(144);
+ var strong = __webpack_require__(204);
// 23.2 Set Objects
- __webpack_require__(145)('Set', function(get){
+ module.exports = __webpack_require__(205)('Set', function(get){
return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.2.3.1 Set.prototype.add(value)
@@ -3736,46 +4723,59 @@
}, strong);
/***/ },
-/* 147 */
+/* 207 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , redefine = __webpack_require__(10)
- , weak = __webpack_require__(148)
- , isObject = __webpack_require__(16)
- , has = __webpack_require__(17)
- , frozenStore = weak.frozenStore
- , WEAK = weak.WEAK
- , isExtensible = Object.isExtensible || isObject
- , tmp = {};
+ var each = __webpack_require__(164)(0)
+ , redefine = __webpack_require__(16)
+ , meta = __webpack_require__(20)
+ , assign = __webpack_require__(67)
+ , weak = __webpack_require__(208)
+ , isObject = __webpack_require__(11)
+ , getWeak = meta.getWeak
+ , isExtensible = Object.isExtensible
+ , uncaughtFrozenStore = weak.ufstore
+ , tmp = {}
+ , InternalMap;
+
+ var wrapper = function(get){
+ return function WeakMap(){
+ return get(this, arguments.length > 0 ? arguments[0] : undefined);
+ };
+ };
- // 23.3 WeakMap Objects
- var $WeakMap = __webpack_require__(145)('WeakMap', function(get){
- return function WeakMap(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
- }, {
+ var methods = {
// 23.3.3.3 WeakMap.prototype.get(key)
get: function get(key){
if(isObject(key)){
- if(!isExtensible(key))return frozenStore(this).get(key);
- if(has(key, WEAK))return key[WEAK][this._i];
+ var data = getWeak(key);
+ if(data === true)return uncaughtFrozenStore(this).get(key);
+ return data ? data[this._i] : undefined;
}
},
// 23.3.3.5 WeakMap.prototype.set(key, value)
set: function set(key, value){
return weak.def(this, key, value);
}
- }, weak, true, true);
+ };
+
+ // 23.3 WeakMap Objects
+ var $WeakMap = module.exports = __webpack_require__(205)('WeakMap', wrapper, methods, weak, true, true);
// IE11 WeakMap frozen keys fix
if(new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){
- $.each.call(['delete', 'has', 'get', 'set'], function(key){
+ InternalMap = weak.getConstructor(wrapper);
+ assign(InternalMap.prototype, methods);
+ meta.NEED = true;
+ each(['delete', 'has', 'get', 'set'], function(key){
var proto = $WeakMap.prototype
, method = proto[key];
redefine(proto, key, function(a, b){
- // store frozen objects on leaky map
+ // store frozen objects on internal weakmap shim
if(isObject(a) && !isExtensible(a)){
- var result = frozenStore(this)[key](a, b);
+ if(!this._f)this._f = new InternalMap;
+ var result = this._f[key](a, b);
return key == 'set' ? this : result;
// store all the rest on native weakmap
} return method.call(this, a, b);
@@ -3784,46 +4784,44 @@
}
/***/ },
-/* 148 */
+/* 208 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var hide = __webpack_require__(6)
- , redefineAll = __webpack_require__(142)
- , anObject = __webpack_require__(20)
- , isObject = __webpack_require__(16)
- , strictNew = __webpack_require__(137)
- , forOf = __webpack_require__(138)
- , createArrayMethod = __webpack_require__(28)
- , $has = __webpack_require__(17)
- , WEAK = __webpack_require__(11)('weak')
- , isExtensible = Object.isExtensible || isObject
+ var redefineAll = __webpack_require__(202)
+ , getWeak = __webpack_require__(20).getWeak
+ , anObject = __webpack_require__(10)
+ , isObject = __webpack_require__(11)
+ , anInstance = __webpack_require__(197)
+ , forOf = __webpack_require__(198)
+ , createArrayMethod = __webpack_require__(164)
+ , $has = __webpack_require__(3)
, arrayFind = createArrayMethod(5)
, arrayFindIndex = createArrayMethod(6)
, id = 0;
- // fallback for frozen keys
- var frozenStore = function(that){
- return that._l || (that._l = new FrozenStore);
+ // fallback for uncaught frozen keys
+ var uncaughtFrozenStore = function(that){
+ return that._l || (that._l = new UncaughtFrozenStore);
};
- var FrozenStore = function(){
+ var UncaughtFrozenStore = function(){
this.a = [];
};
- var findFrozen = function(store, key){
+ var findUncaughtFrozen = function(store, key){
return arrayFind(store.a, function(it){
return it[0] === key;
});
};
- FrozenStore.prototype = {
+ UncaughtFrozenStore.prototype = {
get: function(key){
- var entry = findFrozen(this, key);
+ var entry = findUncaughtFrozen(this, key);
if(entry)return entry[1];
},
has: function(key){
- return !!findFrozen(this, key);
+ return !!findUncaughtFrozen(this, key);
},
set: function(key, value){
- var entry = findFrozen(this, key);
+ var entry = findUncaughtFrozen(this, key);
if(entry)entry[1] = value;
else this.a.push([key, value]);
},
@@ -3839,9 +4837,9 @@
module.exports = {
getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
var C = wrapper(function(that, iterable){
- strictNew(that, C, NAME);
+ anInstance(that, C, NAME, '_i');
that._i = id++; // collection id
- that._l = undefined; // leak store for frozen objects
+ that._l = undefined; // leak store for uncaught frozen objects
if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
});
redefineAll(C.prototype, {
@@ -3849,40 +4847,39 @@
// 23.4.3.3 WeakSet.prototype.delete(value)
'delete': function(key){
if(!isObject(key))return false;
- if(!isExtensible(key))return frozenStore(this)['delete'](key);
- return $has(key, WEAK) && $has(key[WEAK], this._i) && delete key[WEAK][this._i];
+ var data = getWeak(key);
+ if(data === true)return uncaughtFrozenStore(this)['delete'](key);
+ return data && $has(data, this._i) && delete data[this._i];
},
// 23.3.3.4 WeakMap.prototype.has(key)
// 23.4.3.4 WeakSet.prototype.has(value)
has: function has(key){
if(!isObject(key))return false;
- if(!isExtensible(key))return frozenStore(this).has(key);
- return $has(key, WEAK) && $has(key[WEAK], this._i);
+ var data = getWeak(key);
+ if(data === true)return uncaughtFrozenStore(this).has(key);
+ return data && $has(data, this._i);
}
});
return C;
},
def: function(that, key, value){
- if(!isExtensible(anObject(key))){
- frozenStore(that).set(key, value);
- } else {
- $has(key, WEAK) || hide(key, WEAK, {});
- key[WEAK][that._i] = value;
- } return that;
+ var data = getWeak(anObject(key), true);
+ if(data === true)uncaughtFrozenStore(that).set(key, value);
+ else data[that._i] = value;
+ return that;
},
- frozenStore: frozenStore,
- WEAK: WEAK
+ ufstore: uncaughtFrozenStore
};
/***/ },
-/* 149 */
+/* 209 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var weak = __webpack_require__(148);
+ var weak = __webpack_require__(208);
// 23.4 WeakSet Objects
- __webpack_require__(145)('WeakSet', function(get){
+ __webpack_require__(205)('WeakSet', function(get){
return function WeakSet(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.4.3.1 WeakSet.prototype.add(value)
@@ -3892,42 +4889,56 @@
}, weak, false, true);
/***/ },
-/* 150 */
+/* 210 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
- var $export = __webpack_require__(3)
- , _apply = Function.apply
- , anObject = __webpack_require__(20);
-
- $export($export.S, 'Reflect', {
+ var $export = __webpack_require__(6)
+ , aFunction = __webpack_require__(19)
+ , anObject = __webpack_require__(10)
+ , rApply = (__webpack_require__(2).Reflect || {}).apply
+ , fApply = Function.apply;
+ // MS Edge argumentsList argument is optional
+ $export($export.S + $export.F * !__webpack_require__(5)(function(){
+ rApply(function(){});
+ }), 'Reflect', {
apply: function apply(target, thisArgument, argumentsList){
- return _apply.call(target, thisArgument, anObject(argumentsList));
+ var T = aFunction(target)
+ , L = anObject(argumentsList);
+ return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);
}
});
/***/ },
-/* 151 */
+/* 211 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
- var $ = __webpack_require__(2)
- , $export = __webpack_require__(3)
- , aFunction = __webpack_require__(13)
- , anObject = __webpack_require__(20)
- , isObject = __webpack_require__(16)
- , bind = Function.bind || __webpack_require__(5).Function.prototype.bind;
-
- // MS Edge supports only 2 arguments
+ var $export = __webpack_require__(6)
+ , create = __webpack_require__(44)
+ , aFunction = __webpack_require__(19)
+ , anObject = __webpack_require__(10)
+ , isObject = __webpack_require__(11)
+ , fails = __webpack_require__(5)
+ , bind = __webpack_require__(75)
+ , rConstruct = (__webpack_require__(2).Reflect || {}).construct;
+
+ // MS Edge supports only 2 arguments and argumentsList argument is optional
// FF Nightly sets third argument as `new.target`, but does not create `this` from it
- $export($export.S + $export.F * __webpack_require__(9)(function(){
+ var NEW_TARGET_BUG = fails(function(){
function F(){}
- return !(Reflect.construct(function(){}, [], F) instanceof F);
- }), 'Reflect', {
+ return !(rConstruct(function(){}, [], F) instanceof F);
+ });
+ var ARGS_BUG = !fails(function(){
+ rConstruct(function(){});
+ });
+
+ $export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
construct: function construct(Target, args /*, newTarget*/){
aFunction(Target);
anObject(args);
var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
+ if(ARGS_BUG && !NEW_TARGET_BUG)return rConstruct(Target, args, newTarget);
if(Target == newTarget){
// w/o altered newTarget, optimization for 0-4 arguments
switch(args.length){
@@ -3944,29 +4955,32 @@
}
// with altered newTarget, not support built-in constructors
var proto = newTarget.prototype
- , instance = $.create(isObject(proto) ? proto : Object.prototype)
+ , instance = create(isObject(proto) ? proto : Object.prototype)
, result = Function.apply.call(Target, instance, args);
return isObject(result) ? result : instance;
}
});
/***/ },
-/* 152 */
+/* 212 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
- var $ = __webpack_require__(2)
- , $export = __webpack_require__(3)
- , anObject = __webpack_require__(20);
+ var dP = __webpack_require__(9)
+ , $export = __webpack_require__(6)
+ , anObject = __webpack_require__(10)
+ , toPrimitive = __webpack_require__(14);
// MS Edge has broken Reflect.defineProperty - throwing instead of returning false
- $export($export.S + $export.F * __webpack_require__(9)(function(){
- Reflect.defineProperty($.setDesc({}, 1, {value: 1}), 1, {value: 2});
+ $export($export.S + $export.F * __webpack_require__(5)(function(){
+ Reflect.defineProperty(dP.f({}, 1, {value: 1}), 1, {value: 2});
}), 'Reflect', {
defineProperty: function defineProperty(target, propertyKey, attributes){
anObject(target);
+ propertyKey = toPrimitive(propertyKey, true);
+ anObject(attributes);
try {
- $.setDesc(target, propertyKey, attributes);
+ dP.f(target, propertyKey, attributes);
return true;
} catch(e){
return false;
@@ -3975,29 +4989,29 @@
});
/***/ },
-/* 153 */
+/* 213 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.4 Reflect.deleteProperty(target, propertyKey)
- var $export = __webpack_require__(3)
- , getDesc = __webpack_require__(2).getDesc
- , anObject = __webpack_require__(20);
+ var $export = __webpack_require__(6)
+ , gOPD = __webpack_require__(49).f
+ , anObject = __webpack_require__(10);
$export($export.S, 'Reflect', {
deleteProperty: function deleteProperty(target, propertyKey){
- var desc = getDesc(anObject(target), propertyKey);
+ var desc = gOPD(anObject(target), propertyKey);
return desc && !desc.configurable ? false : delete target[propertyKey];
}
});
/***/ },
-/* 154 */
+/* 214 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// 26.1.5 Reflect.enumerate(target)
- var $export = __webpack_require__(3)
- , anObject = __webpack_require__(20);
+ var $export = __webpack_require__(6)
+ , anObject = __webpack_require__(10);
var Enumerate = function(iterated){
this._t = anObject(iterated); // target
this._i = 0; // next index
@@ -4005,7 +5019,7 @@
, key;
for(key in iterated)keys.push(key);
};
- __webpack_require__(110)(Enumerate, 'Object', function(){
+ __webpack_require__(136)(Enumerate, 'Object', function(){
var that = this
, keys = that._k
, key;
@@ -4022,53 +5036,54 @@
});
/***/ },
-/* 155 */
+/* 215 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.6 Reflect.get(target, propertyKey [, receiver])
- var $ = __webpack_require__(2)
- , has = __webpack_require__(17)
- , $export = __webpack_require__(3)
- , isObject = __webpack_require__(16)
- , anObject = __webpack_require__(20);
+ var gOPD = __webpack_require__(49)
+ , getPrototypeOf = __webpack_require__(57)
+ , has = __webpack_require__(3)
+ , $export = __webpack_require__(6)
+ , isObject = __webpack_require__(11)
+ , anObject = __webpack_require__(10);
function get(target, propertyKey/*, receiver*/){
var receiver = arguments.length < 3 ? target : arguments[2]
, desc, proto;
if(anObject(target) === receiver)return target[propertyKey];
- if(desc = $.getDesc(target, propertyKey))return has(desc, 'value')
+ if(desc = gOPD.f(target, propertyKey))return has(desc, 'value')
? desc.value
: desc.get !== undefined
? desc.get.call(receiver)
: undefined;
- if(isObject(proto = $.getProto(target)))return get(proto, propertyKey, receiver);
+ if(isObject(proto = getPrototypeOf(target)))return get(proto, propertyKey, receiver);
}
$export($export.S, 'Reflect', {get: get});
/***/ },
-/* 156 */
+/* 216 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
- var $ = __webpack_require__(2)
- , $export = __webpack_require__(3)
- , anObject = __webpack_require__(20);
+ var gOPD = __webpack_require__(49)
+ , $export = __webpack_require__(6)
+ , anObject = __webpack_require__(10);
$export($export.S, 'Reflect', {
getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey){
- return $.getDesc(anObject(target), propertyKey);
+ return gOPD.f(anObject(target), propertyKey);
}
});
/***/ },
-/* 157 */
+/* 217 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.8 Reflect.getPrototypeOf(target)
- var $export = __webpack_require__(3)
- , getProto = __webpack_require__(2).getProto
- , anObject = __webpack_require__(20);
+ var $export = __webpack_require__(6)
+ , getProto = __webpack_require__(57)
+ , anObject = __webpack_require__(10);
$export($export.S, 'Reflect', {
getPrototypeOf: function getPrototypeOf(target){
@@ -4077,11 +5092,11 @@
});
/***/ },
-/* 158 */
+/* 218 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.9 Reflect.has(target, propertyKey)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Reflect', {
has: function has(target, propertyKey){
@@ -4090,12 +5105,12 @@
});
/***/ },
-/* 159 */
+/* 219 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.10 Reflect.isExtensible(target)
- var $export = __webpack_require__(3)
- , anObject = __webpack_require__(20)
+ var $export = __webpack_require__(6)
+ , anObject = __webpack_require__(10)
, $isExtensible = Object.isExtensible;
$export($export.S, 'Reflect', {
@@ -4106,35 +5121,36 @@
});
/***/ },
-/* 160 */
+/* 220 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.11 Reflect.ownKeys(target)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.S, 'Reflect', {ownKeys: __webpack_require__(161)});
+ $export($export.S, 'Reflect', {ownKeys: __webpack_require__(221)});
/***/ },
-/* 161 */
+/* 221 */
/***/ function(module, exports, __webpack_require__) {
// all object keys, includes non-enumerable and symbols
- var $ = __webpack_require__(2)
- , anObject = __webpack_require__(20)
- , Reflect = __webpack_require__(4).Reflect;
+ var gOPN = __webpack_require__(48)
+ , gOPS = __webpack_require__(41)
+ , anObject = __webpack_require__(10)
+ , Reflect = __webpack_require__(2).Reflect;
module.exports = Reflect && Reflect.ownKeys || function ownKeys(it){
- var keys = $.getNames(anObject(it))
- , getSymbols = $.getSymbols;
+ var keys = gOPN.f(anObject(it))
+ , getSymbols = gOPS.f;
return getSymbols ? keys.concat(getSymbols(it)) : keys;
};
/***/ },
-/* 162 */
+/* 222 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.12 Reflect.preventExtensions(target)
- var $export = __webpack_require__(3)
- , anObject = __webpack_require__(20)
+ var $export = __webpack_require__(6)
+ , anObject = __webpack_require__(10)
, $preventExtensions = Object.preventExtensions;
$export($export.S, 'Reflect', {
@@ -4150,32 +5166,34 @@
});
/***/ },
-/* 163 */
+/* 223 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
- var $ = __webpack_require__(2)
- , has = __webpack_require__(17)
- , $export = __webpack_require__(3)
- , createDesc = __webpack_require__(7)
- , anObject = __webpack_require__(20)
- , isObject = __webpack_require__(16);
+ var dP = __webpack_require__(9)
+ , gOPD = __webpack_require__(49)
+ , getPrototypeOf = __webpack_require__(57)
+ , has = __webpack_require__(3)
+ , $export = __webpack_require__(6)
+ , createDesc = __webpack_require__(15)
+ , anObject = __webpack_require__(10)
+ , isObject = __webpack_require__(11);
function set(target, propertyKey, V/*, receiver*/){
var receiver = arguments.length < 4 ? target : arguments[3]
- , ownDesc = $.getDesc(anObject(target), propertyKey)
+ , ownDesc = gOPD.f(anObject(target), propertyKey)
, existingDescriptor, proto;
if(!ownDesc){
- if(isObject(proto = $.getProto(target))){
+ if(isObject(proto = getPrototypeOf(target))){
return set(proto, propertyKey, V, receiver);
}
ownDesc = createDesc(0);
}
if(has(ownDesc, 'value')){
if(ownDesc.writable === false || !isObject(receiver))return false;
- existingDescriptor = $.getDesc(receiver, propertyKey) || createDesc(0);
+ existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);
existingDescriptor.value = V;
- $.setDesc(receiver, propertyKey, existingDescriptor);
+ dP.f(receiver, propertyKey, existingDescriptor);
return true;
}
return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
@@ -4184,12 +5202,12 @@
$export($export.S, 'Reflect', {set: set});
/***/ },
-/* 164 */
+/* 224 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.14 Reflect.setPrototypeOf(target, proto)
- var $export = __webpack_require__(3)
- , setProto = __webpack_require__(45);
+ var $export = __webpack_require__(6)
+ , setProto = __webpack_require__(71);
if(setProto)$export($export.S, 'Reflect', {
setPrototypeOf: function setPrototypeOf(target, proto){
@@ -4204,30 +5222,1073 @@
});
/***/ },
-/* 165 */
+/* 225 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 20.3.3.1 / 15.9.4.4 Date.now()
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'Date', {now: function(){ return new Date().getTime(); }});
+
+/***/ },
+/* 226 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3)
- , $includes = __webpack_require__(33)(true);
+ var $export = __webpack_require__(6)
+ , toObject = __webpack_require__(56)
+ , toPrimitive = __webpack_require__(14);
+
+ $export($export.P + $export.F * __webpack_require__(5)(function(){
+ return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({toISOString: function(){ return 1; }}) !== 1;
+ }), 'Date', {
+ toJSON: function toJSON(key){
+ var O = toObject(this)
+ , pv = toPrimitive(O);
+ return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();
+ }
+ });
+
+/***/ },
+/* 227 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
+ var $export = __webpack_require__(6)
+ , fails = __webpack_require__(5)
+ , getTime = Date.prototype.getTime;
+
+ var lz = function(num){
+ return num > 9 ? num : '0' + num;
+ };
+
+ // PhantomJS / old WebKit has a broken implementations
+ $export($export.P + $export.F * (fails(function(){
+ return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';
+ }) || !fails(function(){
+ new Date(NaN).toISOString();
+ })), 'Date', {
+ toISOString: function toISOString(){
+ if(!isFinite(getTime.call(this)))throw RangeError('Invalid time value');
+ var d = this
+ , y = d.getUTCFullYear()
+ , m = d.getUTCMilliseconds()
+ , s = y < 0 ? '-' : y > 9999 ? '+' : '';
+ return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
+ '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
+ 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
+ ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
+ }
+ });
+
+/***/ },
+/* 228 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var DateProto = Date.prototype
+ , INVALID_DATE = 'Invalid Date'
+ , TO_STRING = 'toString'
+ , $toString = DateProto[TO_STRING]
+ , getTime = DateProto.getTime;
+ if(new Date(NaN) + '' != INVALID_DATE){
+ __webpack_require__(16)(DateProto, TO_STRING, function toString(){
+ var value = getTime.call(this);
+ return value === value ? $toString.call(this) : INVALID_DATE;
+ });
+ }
+
+/***/ },
+/* 229 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var TO_PRIMITIVE = __webpack_require__(23)('toPrimitive')
+ , proto = Date.prototype;
+
+ if(!(TO_PRIMITIVE in proto))__webpack_require__(8)(proto, TO_PRIMITIVE, __webpack_require__(230));
+
+/***/ },
+/* 230 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var anObject = __webpack_require__(10)
+ , toPrimitive = __webpack_require__(14)
+ , NUMBER = 'number';
+
+ module.exports = function(hint){
+ if(hint !== 'string' && hint !== NUMBER && hint !== 'default')throw TypeError('Incorrect hint');
+ return toPrimitive(anObject(this), hint != NUMBER);
+ };
+
+/***/ },
+/* 231 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $typed = __webpack_require__(232)
+ , buffer = __webpack_require__(233)
+ , anObject = __webpack_require__(10)
+ , toIndex = __webpack_require__(37)
+ , toLength = __webpack_require__(35)
+ , isObject = __webpack_require__(11)
+ , ArrayBuffer = __webpack_require__(2).ArrayBuffer
+ , speciesConstructor = __webpack_require__(199)
+ , $ArrayBuffer = buffer.ArrayBuffer
+ , $DataView = buffer.DataView
+ , $isView = $typed.ABV && ArrayBuffer.isView
+ , $slice = $ArrayBuffer.prototype.slice
+ , VIEW = $typed.VIEW
+ , ARRAY_BUFFER = 'ArrayBuffer';
+
+ $export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), {ArrayBuffer: $ArrayBuffer});
+
+ $export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {
+ // 24.1.3.1 ArrayBuffer.isView(arg)
+ isView: function isView(it){
+ return $isView && $isView(it) || isObject(it) && VIEW in it;
+ }
+ });
+
+ $export($export.P + $export.U + $export.F * __webpack_require__(5)(function(){
+ return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
+ }), ARRAY_BUFFER, {
+ // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
+ slice: function slice(start, end){
+ if($slice !== undefined && end === undefined)return $slice.call(anObject(this), start); // FF fix
+ var len = anObject(this).byteLength
+ , first = toIndex(start, len)
+ , final = toIndex(end === undefined ? len : end, len)
+ , result = new (speciesConstructor(this, $ArrayBuffer))(toLength(final - first))
+ , viewS = new $DataView(this)
+ , viewT = new $DataView(result)
+ , index = 0;
+ while(first < final){
+ viewT.setUint8(index++, viewS.getUint8(first++));
+ } return result;
+ }
+ });
+
+ __webpack_require__(186)(ARRAY_BUFFER);
+
+/***/ },
+/* 232 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var global = __webpack_require__(2)
+ , hide = __webpack_require__(8)
+ , uid = __webpack_require__(17)
+ , TYPED = uid('typed_array')
+ , VIEW = uid('view')
+ , ABV = !!(global.ArrayBuffer && global.DataView)
+ , CONSTR = ABV
+ , i = 0, l = 9, Typed;
+
+ var TypedArrayConstructors = (
+ 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'
+ ).split(',');
+
+ while(i < l){
+ if(Typed = global[TypedArrayConstructors[i++]]){
+ hide(Typed.prototype, TYPED, true);
+ hide(Typed.prototype, VIEW, true);
+ } else CONSTR = false;
+ }
+
+ module.exports = {
+ ABV: ABV,
+ CONSTR: CONSTR,
+ TYPED: TYPED,
+ VIEW: VIEW
+ };
+
+/***/ },
+/* 233 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var global = __webpack_require__(2)
+ , DESCRIPTORS = __webpack_require__(4)
+ , LIBRARY = __webpack_require__(26)
+ , $typed = __webpack_require__(232)
+ , hide = __webpack_require__(8)
+ , redefineAll = __webpack_require__(202)
+ , fails = __webpack_require__(5)
+ , anInstance = __webpack_require__(197)
+ , toInteger = __webpack_require__(36)
+ , toLength = __webpack_require__(35)
+ , gOPN = __webpack_require__(48).f
+ , dP = __webpack_require__(9).f
+ , arrayFill = __webpack_require__(180)
+ , setToStringTag = __webpack_require__(22)
+ , ARRAY_BUFFER = 'ArrayBuffer'
+ , DATA_VIEW = 'DataView'
+ , PROTOTYPE = 'prototype'
+ , WRONG_LENGTH = 'Wrong length!'
+ , WRONG_INDEX = 'Wrong index!'
+ , $ArrayBuffer = global[ARRAY_BUFFER]
+ , $DataView = global[DATA_VIEW]
+ , Math = global.Math
+ , RangeError = global.RangeError
+ , Infinity = global.Infinity
+ , BaseBuffer = $ArrayBuffer
+ , abs = Math.abs
+ , pow = Math.pow
+ , floor = Math.floor
+ , log = Math.log
+ , LN2 = Math.LN2
+ , BUFFER = 'buffer'
+ , BYTE_LENGTH = 'byteLength'
+ , BYTE_OFFSET = 'byteOffset'
+ , $BUFFER = DESCRIPTORS ? '_b' : BUFFER
+ , $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH
+ , $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;
+
+ // IEEE754 conversions based on https://github.com/feross/ieee754
+ var packIEEE754 = function(value, mLen, nBytes){
+ var buffer = Array(nBytes)
+ , eLen = nBytes * 8 - mLen - 1
+ , eMax = (1 << eLen) - 1
+ , eBias = eMax >> 1
+ , rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0
+ , i = 0
+ , s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0
+ , e, m, c;
+ value = abs(value)
+ if(value != value || value === Infinity){
+ m = value != value ? 1 : 0;
+ e = eMax;
+ } else {
+ e = floor(log(value) / LN2);
+ if(value * (c = pow(2, -e)) < 1){
+ e--;
+ c *= 2;
+ }
+ if(e + eBias >= 1){
+ value += rt / c;
+ } else {
+ value += rt * pow(2, 1 - eBias);
+ }
+ if(value * c >= 2){
+ e++;
+ c /= 2;
+ }
+ if(e + eBias >= eMax){
+ m = 0;
+ e = eMax;
+ } else if(e + eBias >= 1){
+ m = (value * c - 1) * pow(2, mLen);
+ e = e + eBias;
+ } else {
+ m = value * pow(2, eBias - 1) * pow(2, mLen);
+ e = 0;
+ }
+ }
+ for(; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);
+ e = e << mLen | m;
+ eLen += mLen;
+ for(; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);
+ buffer[--i] |= s * 128;
+ return buffer;
+ };
+ var unpackIEEE754 = function(buffer, mLen, nBytes){
+ var eLen = nBytes * 8 - mLen - 1
+ , eMax = (1 << eLen) - 1
+ , eBias = eMax >> 1
+ , nBits = eLen - 7
+ , i = nBytes - 1
+ , s = buffer[i--]
+ , e = s & 127
+ , m;
+ s >>= 7;
+ for(; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);
+ m = e & (1 << -nBits) - 1;
+ e >>= -nBits;
+ nBits += mLen;
+ for(; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);
+ if(e === 0){
+ e = 1 - eBias;
+ } else if(e === eMax){
+ return m ? NaN : s ? -Infinity : Infinity;
+ } else {
+ m = m + pow(2, mLen);
+ e = e - eBias;
+ } return (s ? -1 : 1) * m * pow(2, e - mLen);
+ };
+
+ var unpackI32 = function(bytes){
+ return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];
+ };
+ var packI8 = function(it){
+ return [it & 0xff];
+ };
+ var packI16 = function(it){
+ return [it & 0xff, it >> 8 & 0xff];
+ };
+ var packI32 = function(it){
+ return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];
+ };
+ var packF64 = function(it){
+ return packIEEE754(it, 52, 8);
+ };
+ var packF32 = function(it){
+ return packIEEE754(it, 23, 4);
+ };
+
+ var addGetter = function(C, key, internal){
+ dP(C[PROTOTYPE], key, {get: function(){ return this[internal]; }});
+ };
+
+ var get = function(view, bytes, index, isLittleEndian){
+ var numIndex = +index
+ , intIndex = toInteger(numIndex);
+ if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);
+ var store = view[$BUFFER]._b
+ , start = intIndex + view[$OFFSET]
+ , pack = store.slice(start, start + bytes);
+ return isLittleEndian ? pack : pack.reverse();
+ };
+ var set = function(view, bytes, index, conversion, value, isLittleEndian){
+ var numIndex = +index
+ , intIndex = toInteger(numIndex);
+ if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);
+ var store = view[$BUFFER]._b
+ , start = intIndex + view[$OFFSET]
+ , pack = conversion(+value);
+ for(var i = 0; i < bytes; i++)store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];
+ };
+
+ var validateArrayBufferArguments = function(that, length){
+ anInstance(that, $ArrayBuffer, ARRAY_BUFFER);
+ var numberLength = +length
+ , byteLength = toLength(numberLength);
+ if(numberLength != byteLength)throw RangeError(WRONG_LENGTH);
+ return byteLength;
+ };
+
+ if(!$typed.ABV){
+ $ArrayBuffer = function ArrayBuffer(length){
+ var byteLength = validateArrayBufferArguments(this, length);
+ this._b = arrayFill.call(Array(byteLength), 0);
+ this[$LENGTH] = byteLength;
+ };
+
+ $DataView = function DataView(buffer, byteOffset, byteLength){
+ anInstance(this, $DataView, DATA_VIEW);
+ anInstance(buffer, $ArrayBuffer, DATA_VIEW);
+ var bufferLength = buffer[$LENGTH]
+ , offset = toInteger(byteOffset);
+ if(offset < 0 || offset > bufferLength)throw RangeError('Wrong offset!');
+ byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
+ if(offset + byteLength > bufferLength)throw RangeError(WRONG_LENGTH);
+ this[$BUFFER] = buffer;
+ this[$OFFSET] = offset;
+ this[$LENGTH] = byteLength;
+ };
+
+ if(DESCRIPTORS){
+ addGetter($ArrayBuffer, BYTE_LENGTH, '_l');
+ addGetter($DataView, BUFFER, '_b');
+ addGetter($DataView, BYTE_LENGTH, '_l');
+ addGetter($DataView, BYTE_OFFSET, '_o');
+ }
+
+ redefineAll($DataView[PROTOTYPE], {
+ getInt8: function getInt8(byteOffset){
+ return get(this, 1, byteOffset)[0] << 24 >> 24;
+ },
+ getUint8: function getUint8(byteOffset){
+ return get(this, 1, byteOffset)[0];
+ },
+ getInt16: function getInt16(byteOffset /*, littleEndian */){
+ var bytes = get(this, 2, byteOffset, arguments[1]);
+ return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
+ },
+ getUint16: function getUint16(byteOffset /*, littleEndian */){
+ var bytes = get(this, 2, byteOffset, arguments[1]);
+ return bytes[1] << 8 | bytes[0];
+ },
+ getInt32: function getInt32(byteOffset /*, littleEndian */){
+ return unpackI32(get(this, 4, byteOffset, arguments[1]));
+ },
+ getUint32: function getUint32(byteOffset /*, littleEndian */){
+ return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;
+ },
+ getFloat32: function getFloat32(byteOffset /*, littleEndian */){
+ return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);
+ },
+ getFloat64: function getFloat64(byteOffset /*, littleEndian */){
+ return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);
+ },
+ setInt8: function setInt8(byteOffset, value){
+ set(this, 1, byteOffset, packI8, value);
+ },
+ setUint8: function setUint8(byteOffset, value){
+ set(this, 1, byteOffset, packI8, value);
+ },
+ setInt16: function setInt16(byteOffset, value /*, littleEndian */){
+ set(this, 2, byteOffset, packI16, value, arguments[2]);
+ },
+ setUint16: function setUint16(byteOffset, value /*, littleEndian */){
+ set(this, 2, byteOffset, packI16, value, arguments[2]);
+ },
+ setInt32: function setInt32(byteOffset, value /*, littleEndian */){
+ set(this, 4, byteOffset, packI32, value, arguments[2]);
+ },
+ setUint32: function setUint32(byteOffset, value /*, littleEndian */){
+ set(this, 4, byteOffset, packI32, value, arguments[2]);
+ },
+ setFloat32: function setFloat32(byteOffset, value /*, littleEndian */){
+ set(this, 4, byteOffset, packF32, value, arguments[2]);
+ },
+ setFloat64: function setFloat64(byteOffset, value /*, littleEndian */){
+ set(this, 8, byteOffset, packF64, value, arguments[2]);
+ }
+ });
+ } else {
+ if(!fails(function(){
+ new $ArrayBuffer; // eslint-disable-line no-new
+ }) || !fails(function(){
+ new $ArrayBuffer(.5); // eslint-disable-line no-new
+ })){
+ $ArrayBuffer = function ArrayBuffer(length){
+ return new BaseBuffer(validateArrayBufferArguments(this, length));
+ };
+ var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];
+ for(var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j; ){
+ if(!((key = keys[j++]) in $ArrayBuffer))hide($ArrayBuffer, key, BaseBuffer[key]);
+ };
+ if(!LIBRARY)ArrayBufferProto.constructor = $ArrayBuffer;
+ }
+ // iOS Safari 7.x bug
+ var view = new $DataView(new $ArrayBuffer(2))
+ , $setInt8 = $DataView[PROTOTYPE].setInt8;
+ view.setInt8(0, 2147483648);
+ view.setInt8(1, 2147483649);
+ if(view.getInt8(0) || !view.getInt8(1))redefineAll($DataView[PROTOTYPE], {
+ setInt8: function setInt8(byteOffset, value){
+ $setInt8.call(this, byteOffset, value << 24 >> 24);
+ },
+ setUint8: function setUint8(byteOffset, value){
+ $setInt8.call(this, byteOffset, value << 24 >> 24);
+ }
+ }, true);
+ }
+ setToStringTag($ArrayBuffer, ARRAY_BUFFER);
+ setToStringTag($DataView, DATA_VIEW);
+ hide($DataView[PROTOTYPE], $typed.VIEW, true);
+ exports[ARRAY_BUFFER] = $ArrayBuffer;
+ exports[DATA_VIEW] = $DataView;
+
+/***/ },
+/* 234 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6);
+ $export($export.G + $export.W + $export.F * !__webpack_require__(232).ABV, {
+ DataView: __webpack_require__(233).DataView
+ });
+
+/***/ },
+/* 235 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(236)('Int8', 1, function(init){
+ return function Int8Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 236 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ if(__webpack_require__(4)){
+ var LIBRARY = __webpack_require__(26)
+ , global = __webpack_require__(2)
+ , fails = __webpack_require__(5)
+ , $export = __webpack_require__(6)
+ , $typed = __webpack_require__(232)
+ , $buffer = __webpack_require__(233)
+ , ctx = __webpack_require__(18)
+ , anInstance = __webpack_require__(197)
+ , propertyDesc = __webpack_require__(15)
+ , hide = __webpack_require__(8)
+ , redefineAll = __webpack_require__(202)
+ , toInteger = __webpack_require__(36)
+ , toLength = __webpack_require__(35)
+ , toIndex = __webpack_require__(37)
+ , toPrimitive = __webpack_require__(14)
+ , has = __webpack_require__(3)
+ , same = __webpack_require__(69)
+ , classof = __webpack_require__(73)
+ , isObject = __webpack_require__(11)
+ , toObject = __webpack_require__(56)
+ , isArrayIter = __webpack_require__(154)
+ , create = __webpack_require__(44)
+ , getPrototypeOf = __webpack_require__(57)
+ , gOPN = __webpack_require__(48).f
+ , getIterFn = __webpack_require__(156)
+ , uid = __webpack_require__(17)
+ , wks = __webpack_require__(23)
+ , createArrayMethod = __webpack_require__(164)
+ , createArrayIncludes = __webpack_require__(34)
+ , speciesConstructor = __webpack_require__(199)
+ , ArrayIterators = __webpack_require__(183)
+ , Iterators = __webpack_require__(135)
+ , $iterDetect = __webpack_require__(157)
+ , setSpecies = __webpack_require__(186)
+ , arrayFill = __webpack_require__(180)
+ , arrayCopyWithin = __webpack_require__(177)
+ , $DP = __webpack_require__(9)
+ , $GOPD = __webpack_require__(49)
+ , dP = $DP.f
+ , gOPD = $GOPD.f
+ , RangeError = global.RangeError
+ , TypeError = global.TypeError
+ , Uint8Array = global.Uint8Array
+ , ARRAY_BUFFER = 'ArrayBuffer'
+ , SHARED_BUFFER = 'Shared' + ARRAY_BUFFER
+ , BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'
+ , PROTOTYPE = 'prototype'
+ , ArrayProto = Array[PROTOTYPE]
+ , $ArrayBuffer = $buffer.ArrayBuffer
+ , $DataView = $buffer.DataView
+ , arrayForEach = createArrayMethod(0)
+ , arrayFilter = createArrayMethod(2)
+ , arraySome = createArrayMethod(3)
+ , arrayEvery = createArrayMethod(4)
+ , arrayFind = createArrayMethod(5)
+ , arrayFindIndex = createArrayMethod(6)
+ , arrayIncludes = createArrayIncludes(true)
+ , arrayIndexOf = createArrayIncludes(false)
+ , arrayValues = ArrayIterators.values
+ , arrayKeys = ArrayIterators.keys
+ , arrayEntries = ArrayIterators.entries
+ , arrayLastIndexOf = ArrayProto.lastIndexOf
+ , arrayReduce = ArrayProto.reduce
+ , arrayReduceRight = ArrayProto.reduceRight
+ , arrayJoin = ArrayProto.join
+ , arraySort = ArrayProto.sort
+ , arraySlice = ArrayProto.slice
+ , arrayToString = ArrayProto.toString
+ , arrayToLocaleString = ArrayProto.toLocaleString
+ , ITERATOR = wks('iterator')
+ , TAG = wks('toStringTag')
+ , TYPED_CONSTRUCTOR = uid('typed_constructor')
+ , DEF_CONSTRUCTOR = uid('def_constructor')
+ , ALL_CONSTRUCTORS = $typed.CONSTR
+ , TYPED_ARRAY = $typed.TYPED
+ , VIEW = $typed.VIEW
+ , WRONG_LENGTH = 'Wrong length!';
+
+ var $map = createArrayMethod(1, function(O, length){
+ return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);
+ });
+
+ var LITTLE_ENDIAN = fails(function(){
+ return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;
+ });
+
+ var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function(){
+ new Uint8Array(1).set({});
+ });
+
+ var strictToLength = function(it, SAME){
+ if(it === undefined)throw TypeError(WRONG_LENGTH);
+ var number = +it
+ , length = toLength(it);
+ if(SAME && !same(number, length))throw RangeError(WRONG_LENGTH);
+ return length;
+ };
+
+ var toOffset = function(it, BYTES){
+ var offset = toInteger(it);
+ if(offset < 0 || offset % BYTES)throw RangeError('Wrong offset!');
+ return offset;
+ };
+
+ var validate = function(it){
+ if(isObject(it) && TYPED_ARRAY in it)return it;
+ throw TypeError(it + ' is not a typed array!');
+ };
+
+ var allocate = function(C, length){
+ if(!(isObject(C) && TYPED_CONSTRUCTOR in C)){
+ throw TypeError('It is not a typed array constructor!');
+ } return new C(length);
+ };
+
+ var speciesFromList = function(O, list){
+ return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);
+ };
+
+ var fromList = function(C, list){
+ var index = 0
+ , length = list.length
+ , result = allocate(C, length);
+ while(length > index)result[index] = list[index++];
+ return result;
+ };
+
+ var addGetter = function(it, key, internal){
+ dP(it, key, {get: function(){ return this._d[internal]; }});
+ };
+
+ var $from = function from(source /*, mapfn, thisArg */){
+ var O = toObject(source)
+ , aLen = arguments.length
+ , mapfn = aLen > 1 ? arguments[1] : undefined
+ , mapping = mapfn !== undefined
+ , iterFn = getIterFn(O)
+ , i, length, values, result, step, iterator;
+ if(iterFn != undefined && !isArrayIter(iterFn)){
+ for(iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++){
+ values.push(step.value);
+ } O = values;
+ }
+ if(mapping && aLen > 2)mapfn = ctx(mapfn, arguments[2], 2);
+ for(i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++){
+ result[i] = mapping ? mapfn(O[i], i) : O[i];
+ }
+ return result;
+ };
+
+ var $of = function of(/*...items*/){
+ var index = 0
+ , length = arguments.length
+ , result = allocate(this, length);
+ while(length > index)result[index] = arguments[index++];
+ return result;
+ };
+
+ // iOS Safari 6.x fails here
+ var TO_LOCALE_BUG = !!Uint8Array && fails(function(){ arrayToLocaleString.call(new Uint8Array(1)); });
+
+ var $toLocaleString = function toLocaleString(){
+ return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);
+ };
+
+ var proto = {
+ copyWithin: function copyWithin(target, start /*, end */){
+ return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
+ },
+ every: function every(callbackfn /*, thisArg */){
+ return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ fill: function fill(value /*, start, end */){ // eslint-disable-line no-unused-vars
+ return arrayFill.apply(validate(this), arguments);
+ },
+ filter: function filter(callbackfn /*, thisArg */){
+ return speciesFromList(this, arrayFilter(validate(this), callbackfn,
+ arguments.length > 1 ? arguments[1] : undefined));
+ },
+ find: function find(predicate /*, thisArg */){
+ return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ findIndex: function findIndex(predicate /*, thisArg */){
+ return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ forEach: function forEach(callbackfn /*, thisArg */){
+ arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ indexOf: function indexOf(searchElement /*, fromIndex */){
+ return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ includes: function includes(searchElement /*, fromIndex */){
+ return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ join: function join(separator){ // eslint-disable-line no-unused-vars
+ return arrayJoin.apply(validate(this), arguments);
+ },
+ lastIndexOf: function lastIndexOf(searchElement /*, fromIndex */){ // eslint-disable-line no-unused-vars
+ return arrayLastIndexOf.apply(validate(this), arguments);
+ },
+ map: function map(mapfn /*, thisArg */){
+ return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ reduce: function reduce(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
+ return arrayReduce.apply(validate(this), arguments);
+ },
+ reduceRight: function reduceRight(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
+ return arrayReduceRight.apply(validate(this), arguments);
+ },
+ reverse: function reverse(){
+ var that = this
+ , length = validate(that).length
+ , middle = Math.floor(length / 2)
+ , index = 0
+ , value;
+ while(index < middle){
+ value = that[index];
+ that[index++] = that[--length];
+ that[length] = value;
+ } return that;
+ },
+ some: function some(callbackfn /*, thisArg */){
+ return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ sort: function sort(comparefn){
+ return arraySort.call(validate(this), comparefn);
+ },
+ subarray: function subarray(begin, end){
+ var O = validate(this)
+ , length = O.length
+ , $begin = toIndex(begin, length);
+ return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(
+ O.buffer,
+ O.byteOffset + $begin * O.BYTES_PER_ELEMENT,
+ toLength((end === undefined ? length : toIndex(end, length)) - $begin)
+ );
+ }
+ };
+
+ var $slice = function slice(start, end){
+ return speciesFromList(this, arraySlice.call(validate(this), start, end));
+ };
+
+ var $set = function set(arrayLike /*, offset */){
+ validate(this);
+ var offset = toOffset(arguments[1], 1)
+ , length = this.length
+ , src = toObject(arrayLike)
+ , len = toLength(src.length)
+ , index = 0;
+ if(len + offset > length)throw RangeError(WRONG_LENGTH);
+ while(index < len)this[offset + index] = src[index++];
+ };
+
+ var $iterators = {
+ entries: function entries(){
+ return arrayEntries.call(validate(this));
+ },
+ keys: function keys(){
+ return arrayKeys.call(validate(this));
+ },
+ values: function values(){
+ return arrayValues.call(validate(this));
+ }
+ };
+
+ var isTAIndex = function(target, key){
+ return isObject(target)
+ && target[TYPED_ARRAY]
+ && typeof key != 'symbol'
+ && key in target
+ && String(+key) == String(key);
+ };
+ var $getDesc = function getOwnPropertyDescriptor(target, key){
+ return isTAIndex(target, key = toPrimitive(key, true))
+ ? propertyDesc(2, target[key])
+ : gOPD(target, key);
+ };
+ var $setDesc = function defineProperty(target, key, desc){
+ if(isTAIndex(target, key = toPrimitive(key, true))
+ && isObject(desc)
+ && has(desc, 'value')
+ && !has(desc, 'get')
+ && !has(desc, 'set')
+ // TODO: add validation descriptor w/o calling accessors
+ && !desc.configurable
+ && (!has(desc, 'writable') || desc.writable)
+ && (!has(desc, 'enumerable') || desc.enumerable)
+ ){
+ target[key] = desc.value;
+ return target;
+ } else return dP(target, key, desc);
+ };
+
+ if(!ALL_CONSTRUCTORS){
+ $GOPD.f = $getDesc;
+ $DP.f = $setDesc;
+ }
+
+ $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {
+ getOwnPropertyDescriptor: $getDesc,
+ defineProperty: $setDesc
+ });
+
+ if(fails(function(){ arrayToString.call({}); })){
+ arrayToString = arrayToLocaleString = function toString(){
+ return arrayJoin.call(this);
+ }
+ }
+
+ var $TypedArrayPrototype$ = redefineAll({}, proto);
+ redefineAll($TypedArrayPrototype$, $iterators);
+ hide($TypedArrayPrototype$, ITERATOR, $iterators.values);
+ redefineAll($TypedArrayPrototype$, {
+ slice: $slice,
+ set: $set,
+ constructor: function(){ /* noop */ },
+ toString: arrayToString,
+ toLocaleString: $toLocaleString
+ });
+ addGetter($TypedArrayPrototype$, 'buffer', 'b');
+ addGetter($TypedArrayPrototype$, 'byteOffset', 'o');
+ addGetter($TypedArrayPrototype$, 'byteLength', 'l');
+ addGetter($TypedArrayPrototype$, 'length', 'e');
+ dP($TypedArrayPrototype$, TAG, {
+ get: function(){ return this[TYPED_ARRAY]; }
+ });
+
+ module.exports = function(KEY, BYTES, wrapper, CLAMPED){
+ CLAMPED = !!CLAMPED;
+ var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'
+ , ISNT_UINT8 = NAME != 'Uint8Array'
+ , GETTER = 'get' + KEY
+ , SETTER = 'set' + KEY
+ , TypedArray = global[NAME]
+ , Base = TypedArray || {}
+ , TAC = TypedArray && getPrototypeOf(TypedArray)
+ , FORCED = !TypedArray || !$typed.ABV
+ , O = {}
+ , TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];
+ var getter = function(that, index){
+ var data = that._d;
+ return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);
+ };
+ var setter = function(that, index, value){
+ var data = that._d;
+ if(CLAMPED)value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;
+ data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);
+ };
+ var addElement = function(that, index){
+ dP(that, index, {
+ get: function(){
+ return getter(this, index);
+ },
+ set: function(value){
+ return setter(this, index, value);
+ },
+ enumerable: true
+ });
+ };
+ if(FORCED){
+ TypedArray = wrapper(function(that, data, $offset, $length){
+ anInstance(that, TypedArray, NAME, '_d');
+ var index = 0
+ , offset = 0
+ , buffer, byteLength, length, klass;
+ if(!isObject(data)){
+ length = strictToLength(data, true)
+ byteLength = length * BYTES;
+ buffer = new $ArrayBuffer(byteLength);
+ } else if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){
+ buffer = data;
+ offset = toOffset($offset, BYTES);
+ var $len = data.byteLength;
+ if($length === undefined){
+ if($len % BYTES)throw RangeError(WRONG_LENGTH);
+ byteLength = $len - offset;
+ if(byteLength < 0)throw RangeError(WRONG_LENGTH);
+ } else {
+ byteLength = toLength($length) * BYTES;
+ if(byteLength + offset > $len)throw RangeError(WRONG_LENGTH);
+ }
+ length = byteLength / BYTES;
+ } else if(TYPED_ARRAY in data){
+ return fromList(TypedArray, data);
+ } else {
+ return $from.call(TypedArray, data);
+ }
+ hide(that, '_d', {
+ b: buffer,
+ o: offset,
+ l: byteLength,
+ e: length,
+ v: new $DataView(buffer)
+ });
+ while(index < length)addElement(that, index++);
+ });
+ TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);
+ hide(TypedArrayPrototype, 'constructor', TypedArray);
+ } else if(!$iterDetect(function(iter){
+ // V8 works with iterators, but fails in many other cases
+ // https://code.google.com/p/v8/issues/detail?id=4552
+ new TypedArray(null); // eslint-disable-line no-new
+ new TypedArray(iter); // eslint-disable-line no-new
+ }, true)){
+ TypedArray = wrapper(function(that, data, $offset, $length){
+ anInstance(that, TypedArray, NAME);
+ var klass;
+ // `ws` module bug, temporarily remove validation length for Uint8Array
+ // https://github.com/websockets/ws/pull/645
+ if(!isObject(data))return new Base(strictToLength(data, ISNT_UINT8));
+ if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){
+ return $length !== undefined
+ ? new Base(data, toOffset($offset, BYTES), $length)
+ : $offset !== undefined
+ ? new Base(data, toOffset($offset, BYTES))
+ : new Base(data);
+ }
+ if(TYPED_ARRAY in data)return fromList(TypedArray, data);
+ return $from.call(TypedArray, data);
+ });
+ arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function(key){
+ if(!(key in TypedArray))hide(TypedArray, key, Base[key]);
+ });
+ TypedArray[PROTOTYPE] = TypedArrayPrototype;
+ if(!LIBRARY)TypedArrayPrototype.constructor = TypedArray;
+ }
+ var $nativeIterator = TypedArrayPrototype[ITERATOR]
+ , CORRECT_ITER_NAME = !!$nativeIterator && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined)
+ , $iterator = $iterators.values;
+ hide(TypedArray, TYPED_CONSTRUCTOR, true);
+ hide(TypedArrayPrototype, TYPED_ARRAY, NAME);
+ hide(TypedArrayPrototype, VIEW, true);
+ hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);
+
+ if(CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)){
+ dP(TypedArrayPrototype, TAG, {
+ get: function(){ return NAME; }
+ });
+ }
+
+ O[NAME] = TypedArray;
+
+ $export($export.G + $export.W + $export.F * (TypedArray != Base), O);
+
+ $export($export.S, NAME, {
+ BYTES_PER_ELEMENT: BYTES,
+ from: $from,
+ of: $of
+ });
+
+ if(!(BYTES_PER_ELEMENT in TypedArrayPrototype))hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);
+
+ $export($export.P, NAME, proto);
+
+ setSpecies(NAME);
+
+ $export($export.P + $export.F * FORCED_SET, NAME, {set: $set});
+
+ $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);
+
+ $export($export.P + $export.F * (TypedArrayPrototype.toString != arrayToString), NAME, {toString: arrayToString});
+
+ $export($export.P + $export.F * fails(function(){
+ new TypedArray(1).slice();
+ }), NAME, {slice: $slice});
+
+ $export($export.P + $export.F * (fails(function(){
+ return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString()
+ }) || !fails(function(){
+ TypedArrayPrototype.toLocaleString.call([1, 2]);
+ })), NAME, {toLocaleString: $toLocaleString});
+
+ Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;
+ if(!LIBRARY && !CORRECT_ITER_NAME)hide(TypedArrayPrototype, ITERATOR, $iterator);
+ };
+ } else module.exports = function(){ /* empty */ };
+
+/***/ },
+/* 237 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(236)('Uint8', 1, function(init){
+ return function Uint8Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 238 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(236)('Uint8', 1, function(init){
+ return function Uint8ClampedArray(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ }, true);
+
+/***/ },
+/* 239 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(236)('Int16', 2, function(init){
+ return function Int16Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 240 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(236)('Uint16', 2, function(init){
+ return function Uint16Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 241 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(236)('Int32', 4, function(init){
+ return function Int32Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 242 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(236)('Uint32', 4, function(init){
+ return function Uint32Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 243 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(236)('Float32', 4, function(init){
+ return function Float32Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 244 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(236)('Float64', 8, function(init){
+ return function Float64Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 245 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // https://github.com/tc39/Array.prototype.includes
+ var $export = __webpack_require__(6)
+ , $includes = __webpack_require__(34)(true);
$export($export.P, 'Array', {
- // https://github.com/domenic/Array.prototype.includes
includes: function includes(el /*, fromIndex = 0 */){
return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
}
});
- __webpack_require__(118)('includes');
+ __webpack_require__(178)('includes');
/***/ },
-/* 166 */
+/* 246 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// https://github.com/mathiasbynens/String.prototype.at
- var $export = __webpack_require__(3)
- , $at = __webpack_require__(98)(true);
+ var $export = __webpack_require__(6)
+ , $at = __webpack_require__(125)(true);
$export($export.P, 'String', {
at: function at(pos){
@@ -4236,138 +6297,159 @@
});
/***/ },
-/* 167 */
+/* 247 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3)
- , $pad = __webpack_require__(168);
+ // https://github.com/tc39/proposal-string-pad-start-end
+ var $export = __webpack_require__(6)
+ , $pad = __webpack_require__(248);
$export($export.P, 'String', {
- padLeft: function padLeft(maxLength /*, fillString = ' ' */){
+ padStart: function padStart(maxLength /*, fillString = ' ' */){
return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
}
});
/***/ },
-/* 168 */
+/* 248 */
/***/ function(module, exports, __webpack_require__) {
- // https://github.com/ljharb/proposal-string-pad-left-right
- var toLength = __webpack_require__(27)
- , repeat = __webpack_require__(105)
- , defined = __webpack_require__(22);
+ // https://github.com/tc39/proposal-string-pad-start-end
+ var toLength = __webpack_require__(35)
+ , repeat = __webpack_require__(85)
+ , defined = __webpack_require__(33);
module.exports = function(that, maxLength, fillString, left){
var S = String(defined(that))
, stringLength = S.length
, fillStr = fillString === undefined ? ' ' : String(fillString)
, intMaxLength = toLength(maxLength);
- if(intMaxLength <= stringLength)return S;
- if(fillStr == '')fillStr = ' ';
+ if(intMaxLength <= stringLength || fillStr == '')return S;
var fillLen = intMaxLength - stringLength
, stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);
return left ? stringFiller + S : S + stringFiller;
};
+
/***/ },
-/* 169 */
+/* 249 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3)
- , $pad = __webpack_require__(168);
+ // https://github.com/tc39/proposal-string-pad-start-end
+ var $export = __webpack_require__(6)
+ , $pad = __webpack_require__(248);
$export($export.P, 'String', {
- padRight: function padRight(maxLength /*, fillString = ' ' */){
+ padEnd: function padEnd(maxLength /*, fillString = ' ' */){
return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
}
});
/***/ },
-/* 170 */
+/* 250 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
- __webpack_require__(63)('trimLeft', function($trim){
+ __webpack_require__(81)('trimLeft', function($trim){
return function trimLeft(){
return $trim(this, 1);
};
- });
+ }, 'trimStart');
/***/ },
-/* 171 */
+/* 251 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
- __webpack_require__(63)('trimRight', function($trim){
+ __webpack_require__(81)('trimRight', function($trim){
return function trimRight(){
return $trim(this, 2);
};
- });
+ }, 'trimEnd');
/***/ },
-/* 172 */
+/* 252 */
/***/ function(module, exports, __webpack_require__) {
- // https://github.com/benjamingr/RexExp.escape
- var $export = __webpack_require__(3)
- , $re = __webpack_require__(173)(/[\\^$*+?.()|[\]{}]/g, '\\$&');
+ 'use strict';
+ // https://tc39.github.io/String.prototype.matchAll/
+ var $export = __webpack_require__(6)
+ , defined = __webpack_require__(33)
+ , toLength = __webpack_require__(35)
+ , isRegExp = __webpack_require__(128)
+ , getFlags = __webpack_require__(188)
+ , RegExpProto = RegExp.prototype;
+
+ var $RegExpStringIterator = function(regexp, string){
+ this._r = regexp;
+ this._s = string;
+ };
- $export($export.S, 'RegExp', {escape: function escape(it){ return $re(it); }});
+ __webpack_require__(136)($RegExpStringIterator, 'RegExp String', function next(){
+ var match = this._r.exec(this._s);
+ return {value: match, done: match === null};
+ });
+ $export($export.P, 'String', {
+ matchAll: function matchAll(regexp){
+ defined(this);
+ if(!isRegExp(regexp))throw TypeError(regexp + ' is not a regexp!');
+ var S = String(this)
+ , flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp)
+ , rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);
+ rx.lastIndex = toLength(regexp.lastIndex);
+ return new $RegExpStringIterator(rx, S);
+ }
+ });
/***/ },
-/* 173 */
-/***/ function(module, exports) {
+/* 253 */
+/***/ function(module, exports, __webpack_require__) {
- module.exports = function(regExp, replace){
- var replacer = replace === Object(replace) ? function(part){
- return replace[part];
- } : replace;
- return function(it){
- return String(it).replace(regExp, replacer);
- };
- };
+ __webpack_require__(25)('asyncIterator');
/***/ },
-/* 174 */
+/* 254 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(25)('observable');
+
+/***/ },
+/* 255 */
/***/ function(module, exports, __webpack_require__) {
- // https://gist.github.com/WebReflection/9353781
- var $ = __webpack_require__(2)
- , $export = __webpack_require__(3)
- , ownKeys = __webpack_require__(161)
- , toIObject = __webpack_require__(23)
- , createDesc = __webpack_require__(7);
+ // https://github.com/tc39/proposal-object-getownpropertydescriptors
+ var $export = __webpack_require__(6)
+ , ownKeys = __webpack_require__(221)
+ , toIObject = __webpack_require__(30)
+ , gOPD = __webpack_require__(49)
+ , createProperty = __webpack_require__(155);
$export($export.S, 'Object', {
getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){
var O = toIObject(object)
- , setDesc = $.setDesc
- , getDesc = $.getDesc
+ , getDesc = gOPD.f
, keys = ownKeys(O)
, result = {}
, i = 0
- , key, D;
- while(keys.length > i){
- D = getDesc(O, key = keys[i++]);
- if(key in result)setDesc(result, key, createDesc(0, D));
- else result[key] = D;
- } return result;
+ , key;
+ while(keys.length > i)createProperty(result, key = keys[i++], getDesc(O, key));
+ return result;
}
});
/***/ },
-/* 175 */
+/* 256 */
/***/ function(module, exports, __webpack_require__) {
- // http://goo.gl/XkBrjD
- var $export = __webpack_require__(3)
- , $values = __webpack_require__(176)(false);
+ // https://github.com/tc39/proposal-object-values-entries
+ var $export = __webpack_require__(6)
+ , $values = __webpack_require__(257)(false);
$export($export.S, 'Object', {
values: function values(it){
@@ -4376,16 +6458,16 @@
});
/***/ },
-/* 176 */
+/* 257 */
/***/ function(module, exports, __webpack_require__) {
- var $ = __webpack_require__(2)
- , toIObject = __webpack_require__(23)
- , isEnum = $.isEnum;
+ var getKeys = __webpack_require__(28)
+ , toIObject = __webpack_require__(30)
+ , isEnum = __webpack_require__(42).f;
module.exports = function(isEntries){
return function(it){
var O = toIObject(it)
- , keys = $.getKeys(O)
+ , keys = getKeys(O)
, length = keys.length
, i = 0
, result = []
@@ -4397,12 +6479,12 @@
};
/***/ },
-/* 177 */
+/* 258 */
/***/ function(module, exports, __webpack_require__) {
- // http://goo.gl/XkBrjD
- var $export = __webpack_require__(3)
- , $entries = __webpack_require__(176)(true);
+ // https://github.com/tc39/proposal-object-values-entries
+ var $export = __webpack_require__(6)
+ , $entries = __webpack_require__(257)(true);
$export($export.S, 'Object', {
entries: function entries(it){
@@ -4411,76 +6493,724 @@
});
/***/ },
-/* 178 */
+/* 259 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toObject = __webpack_require__(56)
+ , aFunction = __webpack_require__(19)
+ , $defineProperty = __webpack_require__(9);
+
+ // B.2.2.2 Object.prototype.__defineGetter__(P, getter)
+ __webpack_require__(4) && $export($export.P + __webpack_require__(260), 'Object', {
+ __defineGetter__: function __defineGetter__(P, getter){
+ $defineProperty.f(toObject(this), P, {get: aFunction(getter), enumerable: true, configurable: true});
+ }
+ });
+
+/***/ },
+/* 260 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // Forced replacement prototype accessors methods
+ module.exports = __webpack_require__(26)|| !__webpack_require__(5)(function(){
+ var K = Math.random();
+ // In FF throws only define methods
+ __defineSetter__.call(null, K, function(){ /* empty */});
+ delete __webpack_require__(2)[K];
+ });
+
+/***/ },
+/* 261 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toObject = __webpack_require__(56)
+ , aFunction = __webpack_require__(19)
+ , $defineProperty = __webpack_require__(9);
+
+ // B.2.2.3 Object.prototype.__defineSetter__(P, setter)
+ __webpack_require__(4) && $export($export.P + __webpack_require__(260), 'Object', {
+ __defineSetter__: function __defineSetter__(P, setter){
+ $defineProperty.f(toObject(this), P, {set: aFunction(setter), enumerable: true, configurable: true});
+ }
+ });
+
+/***/ },
+/* 262 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toObject = __webpack_require__(56)
+ , toPrimitive = __webpack_require__(14)
+ , getPrototypeOf = __webpack_require__(57)
+ , getOwnPropertyDescriptor = __webpack_require__(49).f;
+
+ // B.2.2.4 Object.prototype.__lookupGetter__(P)
+ __webpack_require__(4) && $export($export.P + __webpack_require__(260), 'Object', {
+ __lookupGetter__: function __lookupGetter__(P){
+ var O = toObject(this)
+ , K = toPrimitive(P, true)
+ , D;
+ do {
+ if(D = getOwnPropertyDescriptor(O, K))return D.get;
+ } while(O = getPrototypeOf(O));
+ }
+ });
+
+/***/ },
+/* 263 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toObject = __webpack_require__(56)
+ , toPrimitive = __webpack_require__(14)
+ , getPrototypeOf = __webpack_require__(57)
+ , getOwnPropertyDescriptor = __webpack_require__(49).f;
+
+ // B.2.2.5 Object.prototype.__lookupSetter__(P)
+ __webpack_require__(4) && $export($export.P + __webpack_require__(260), 'Object', {
+ __lookupSetter__: function __lookupSetter__(P){
+ var O = toObject(this)
+ , K = toPrimitive(P, true)
+ , D;
+ do {
+ if(D = getOwnPropertyDescriptor(O, K))return D.set;
+ } while(O = getPrototypeOf(O));
+ }
+ });
+
+/***/ },
+/* 264 */
/***/ function(module, exports, __webpack_require__) {
// https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.P, 'Map', {toJSON: __webpack_require__(179)('Map')});
+ $export($export.P + $export.R, 'Map', {toJSON: __webpack_require__(265)('Map')});
/***/ },
-/* 179 */
+/* 265 */
/***/ function(module, exports, __webpack_require__) {
// https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var forOf = __webpack_require__(138)
- , classof = __webpack_require__(47);
+ var classof = __webpack_require__(73)
+ , from = __webpack_require__(266);
module.exports = function(NAME){
return function toJSON(){
if(classof(this) != NAME)throw TypeError(NAME + "#toJSON isn't generic");
- var arr = [];
- forOf(this, false, arr.push, arr);
- return arr;
+ return from(this);
};
};
/***/ },
-/* 180 */
+/* 266 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var forOf = __webpack_require__(198);
+
+ module.exports = function(iter, ITERATOR){
+ var result = [];
+ forOf(iter, false, result.push, result, ITERATOR);
+ return result;
+ };
+
+
+/***/ },
+/* 267 */
/***/ function(module, exports, __webpack_require__) {
// https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.P, 'Set', {toJSON: __webpack_require__(179)('Set')});
+ $export($export.P + $export.R, 'Set', {toJSON: __webpack_require__(265)('Set')});
/***/ },
-/* 181 */
+/* 268 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://github.com/ljharb/proposal-global
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'System', {global: __webpack_require__(2)});
+
+/***/ },
+/* 269 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://github.com/ljharb/proposal-is-error
+ var $export = __webpack_require__(6)
+ , cof = __webpack_require__(32);
+
+ $export($export.S, 'Error', {
+ isError: function isError(it){
+ return cof(it) === 'Error';
+ }
+ });
+
+/***/ },
+/* 270 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'Math', {
+ iaddh: function iaddh(x0, x1, y0, y1){
+ var $x0 = x0 >>> 0
+ , $x1 = x1 >>> 0
+ , $y0 = y0 >>> 0;
+ return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;
+ }
+ });
+
+/***/ },
+/* 271 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'Math', {
+ isubh: function isubh(x0, x1, y0, y1){
+ var $x0 = x0 >>> 0
+ , $x1 = x1 >>> 0
+ , $y0 = y0 >>> 0;
+ return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;
+ }
+ });
+
+/***/ },
+/* 272 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'Math', {
+ imulh: function imulh(u, v){
+ var UINT16 = 0xffff
+ , $u = +u
+ , $v = +v
+ , u0 = $u & UINT16
+ , v0 = $v & UINT16
+ , u1 = $u >> 16
+ , v1 = $v >> 16
+ , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
+ return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);
+ }
+ });
+
+/***/ },
+/* 273 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'Math', {
+ umulh: function umulh(u, v){
+ var UINT16 = 0xffff
+ , $u = +u
+ , $v = +v
+ , u0 = $u & UINT16
+ , v0 = $v & UINT16
+ , u1 = $u >>> 16
+ , v1 = $v >>> 16
+ , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
+ return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);
+ }
+ });
+
+/***/ },
+/* 274 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(275)
+ , anObject = __webpack_require__(10)
+ , toMetaKey = metadata.key
+ , ordinaryDefineOwnMetadata = metadata.set;
+
+ metadata.exp({defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey){
+ ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));
+ }});
+
+/***/ },
+/* 275 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var Map = __webpack_require__(203)
+ , $export = __webpack_require__(6)
+ , shared = __webpack_require__(21)('metadata')
+ , store = shared.store || (shared.store = new (__webpack_require__(207)));
+
+ var getOrCreateMetadataMap = function(target, targetKey, create){
+ var targetMetadata = store.get(target);
+ if(!targetMetadata){
+ if(!create)return undefined;
+ store.set(target, targetMetadata = new Map);
+ }
+ var keyMetadata = targetMetadata.get(targetKey);
+ if(!keyMetadata){
+ if(!create)return undefined;
+ targetMetadata.set(targetKey, keyMetadata = new Map);
+ } return keyMetadata;
+ };
+ var ordinaryHasOwnMetadata = function(MetadataKey, O, P){
+ var metadataMap = getOrCreateMetadataMap(O, P, false);
+ return metadataMap === undefined ? false : metadataMap.has(MetadataKey);
+ };
+ var ordinaryGetOwnMetadata = function(MetadataKey, O, P){
+ var metadataMap = getOrCreateMetadataMap(O, P, false);
+ return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);
+ };
+ var ordinaryDefineOwnMetadata = function(MetadataKey, MetadataValue, O, P){
+ getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);
+ };
+ var ordinaryOwnMetadataKeys = function(target, targetKey){
+ var metadataMap = getOrCreateMetadataMap(target, targetKey, false)
+ , keys = [];
+ if(metadataMap)metadataMap.forEach(function(_, key){ keys.push(key); });
+ return keys;
+ };
+ var toMetaKey = function(it){
+ return it === undefined || typeof it == 'symbol' ? it : String(it);
+ };
+ var exp = function(O){
+ $export($export.S, 'Reflect', O);
+ };
+
+ module.exports = {
+ store: store,
+ map: getOrCreateMetadataMap,
+ has: ordinaryHasOwnMetadata,
+ get: ordinaryGetOwnMetadata,
+ set: ordinaryDefineOwnMetadata,
+ keys: ordinaryOwnMetadataKeys,
+ key: toMetaKey,
+ exp: exp
+ };
+
+/***/ },
+/* 276 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(275)
+ , anObject = __webpack_require__(10)
+ , toMetaKey = metadata.key
+ , getOrCreateMetadataMap = metadata.map
+ , store = metadata.store;
+
+ metadata.exp({deleteMetadata: function deleteMetadata(metadataKey, target /*, targetKey */){
+ var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2])
+ , metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);
+ if(metadataMap === undefined || !metadataMap['delete'](metadataKey))return false;
+ if(metadataMap.size)return true;
+ var targetMetadata = store.get(target);
+ targetMetadata['delete'](targetKey);
+ return !!targetMetadata.size || store['delete'](target);
+ }});
+
+/***/ },
+/* 277 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(275)
+ , anObject = __webpack_require__(10)
+ , getPrototypeOf = __webpack_require__(57)
+ , ordinaryHasOwnMetadata = metadata.has
+ , ordinaryGetOwnMetadata = metadata.get
+ , toMetaKey = metadata.key;
+
+ var ordinaryGetMetadata = function(MetadataKey, O, P){
+ var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
+ if(hasOwn)return ordinaryGetOwnMetadata(MetadataKey, O, P);
+ var parent = getPrototypeOf(O);
+ return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;
+ };
+
+ metadata.exp({getMetadata: function getMetadata(metadataKey, target /*, targetKey */){
+ return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
+ }});
+
+/***/ },
+/* 278 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var Set = __webpack_require__(206)
+ , from = __webpack_require__(266)
+ , metadata = __webpack_require__(275)
+ , anObject = __webpack_require__(10)
+ , getPrototypeOf = __webpack_require__(57)
+ , ordinaryOwnMetadataKeys = metadata.keys
+ , toMetaKey = metadata.key;
+
+ var ordinaryMetadataKeys = function(O, P){
+ var oKeys = ordinaryOwnMetadataKeys(O, P)
+ , parent = getPrototypeOf(O);
+ if(parent === null)return oKeys;
+ var pKeys = ordinaryMetadataKeys(parent, P);
+ return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;
+ };
+
+ metadata.exp({getMetadataKeys: function getMetadataKeys(target /*, targetKey */){
+ return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
+ }});
+
+/***/ },
+/* 279 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(275)
+ , anObject = __webpack_require__(10)
+ , ordinaryGetOwnMetadata = metadata.get
+ , toMetaKey = metadata.key;
+
+ metadata.exp({getOwnMetadata: function getOwnMetadata(metadataKey, target /*, targetKey */){
+ return ordinaryGetOwnMetadata(metadataKey, anObject(target)
+ , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
+ }});
+
+/***/ },
+/* 280 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3)
- , $task = __webpack_require__(141);
+ var metadata = __webpack_require__(275)
+ , anObject = __webpack_require__(10)
+ , ordinaryOwnMetadataKeys = metadata.keys
+ , toMetaKey = metadata.key;
+
+ metadata.exp({getOwnMetadataKeys: function getOwnMetadataKeys(target /*, targetKey */){
+ return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
+ }});
+
+/***/ },
+/* 281 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(275)
+ , anObject = __webpack_require__(10)
+ , getPrototypeOf = __webpack_require__(57)
+ , ordinaryHasOwnMetadata = metadata.has
+ , toMetaKey = metadata.key;
+
+ var ordinaryHasMetadata = function(MetadataKey, O, P){
+ var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
+ if(hasOwn)return true;
+ var parent = getPrototypeOf(O);
+ return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;
+ };
+
+ metadata.exp({hasMetadata: function hasMetadata(metadataKey, target /*, targetKey */){
+ return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
+ }});
+
+/***/ },
+/* 282 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(275)
+ , anObject = __webpack_require__(10)
+ , ordinaryHasOwnMetadata = metadata.has
+ , toMetaKey = metadata.key;
+
+ metadata.exp({hasOwnMetadata: function hasOwnMetadata(metadataKey, target /*, targetKey */){
+ return ordinaryHasOwnMetadata(metadataKey, anObject(target)
+ , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
+ }});
+
+/***/ },
+/* 283 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(275)
+ , anObject = __webpack_require__(10)
+ , aFunction = __webpack_require__(19)
+ , toMetaKey = metadata.key
+ , ordinaryDefineOwnMetadata = metadata.set;
+
+ metadata.exp({metadata: function metadata(metadataKey, metadataValue){
+ return function decorator(target, targetKey){
+ ordinaryDefineOwnMetadata(
+ metadataKey, metadataValue,
+ (targetKey !== undefined ? anObject : aFunction)(target),
+ toMetaKey(targetKey)
+ );
+ };
+ }});
+
+/***/ },
+/* 284 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask
+ var $export = __webpack_require__(6)
+ , microtask = __webpack_require__(201)()
+ , process = __webpack_require__(2).process
+ , isNode = __webpack_require__(32)(process) == 'process';
+
+ $export($export.G, {
+ asap: function asap(fn){
+ var domain = isNode && process.domain;
+ microtask(domain ? domain.bind(fn) : fn);
+ }
+ });
+
+/***/ },
+/* 285 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // https://github.com/zenparsing/es-observable
+ var $export = __webpack_require__(6)
+ , global = __webpack_require__(2)
+ , core = __webpack_require__(7)
+ , microtask = __webpack_require__(201)()
+ , OBSERVABLE = __webpack_require__(23)('observable')
+ , aFunction = __webpack_require__(19)
+ , anObject = __webpack_require__(10)
+ , anInstance = __webpack_require__(197)
+ , redefineAll = __webpack_require__(202)
+ , hide = __webpack_require__(8)
+ , forOf = __webpack_require__(198)
+ , RETURN = forOf.RETURN;
+
+ var getMethod = function(fn){
+ return fn == null ? undefined : aFunction(fn);
+ };
+
+ var cleanupSubscription = function(subscription){
+ var cleanup = subscription._c;
+ if(cleanup){
+ subscription._c = undefined;
+ cleanup();
+ }
+ };
+
+ var subscriptionClosed = function(subscription){
+ return subscription._o === undefined;
+ };
+
+ var closeSubscription = function(subscription){
+ if(!subscriptionClosed(subscription)){
+ subscription._o = undefined;
+ cleanupSubscription(subscription);
+ }
+ };
+
+ var Subscription = function(observer, subscriber){
+ anObject(observer);
+ this._c = undefined;
+ this._o = observer;
+ observer = new SubscriptionObserver(this);
+ try {
+ var cleanup = subscriber(observer)
+ , subscription = cleanup;
+ if(cleanup != null){
+ if(typeof cleanup.unsubscribe === 'function')cleanup = function(){ subscription.unsubscribe(); };
+ else aFunction(cleanup);
+ this._c = cleanup;
+ }
+ } catch(e){
+ observer.error(e);
+ return;
+ } if(subscriptionClosed(this))cleanupSubscription(this);
+ };
+
+ Subscription.prototype = redefineAll({}, {
+ unsubscribe: function unsubscribe(){ closeSubscription(this); }
+ });
+
+ var SubscriptionObserver = function(subscription){
+ this._s = subscription;
+ };
+
+ SubscriptionObserver.prototype = redefineAll({}, {
+ next: function next(value){
+ var subscription = this._s;
+ if(!subscriptionClosed(subscription)){
+ var observer = subscription._o;
+ try {
+ var m = getMethod(observer.next);
+ if(m)return m.call(observer, value);
+ } catch(e){
+ try {
+ closeSubscription(subscription);
+ } finally {
+ throw e;
+ }
+ }
+ }
+ },
+ error: function error(value){
+ var subscription = this._s;
+ if(subscriptionClosed(subscription))throw value;
+ var observer = subscription._o;
+ subscription._o = undefined;
+ try {
+ var m = getMethod(observer.error);
+ if(!m)throw value;
+ value = m.call(observer, value);
+ } catch(e){
+ try {
+ cleanupSubscription(subscription);
+ } finally {
+ throw e;
+ }
+ } cleanupSubscription(subscription);
+ return value;
+ },
+ complete: function complete(value){
+ var subscription = this._s;
+ if(!subscriptionClosed(subscription)){
+ var observer = subscription._o;
+ subscription._o = undefined;
+ try {
+ var m = getMethod(observer.complete);
+ value = m ? m.call(observer, value) : undefined;
+ } catch(e){
+ try {
+ cleanupSubscription(subscription);
+ } finally {
+ throw e;
+ }
+ } cleanupSubscription(subscription);
+ return value;
+ }
+ }
+ });
+
+ var $Observable = function Observable(subscriber){
+ anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);
+ };
+
+ redefineAll($Observable.prototype, {
+ subscribe: function subscribe(observer){
+ return new Subscription(observer, this._f);
+ },
+ forEach: function forEach(fn){
+ var that = this;
+ return new (core.Promise || global.Promise)(function(resolve, reject){
+ aFunction(fn);
+ var subscription = that.subscribe({
+ next : function(value){
+ try {
+ return fn(value);
+ } catch(e){
+ reject(e);
+ subscription.unsubscribe();
+ }
+ },
+ error: reject,
+ complete: resolve
+ });
+ });
+ }
+ });
+
+ redefineAll($Observable, {
+ from: function from(x){
+ var C = typeof this === 'function' ? this : $Observable;
+ var method = getMethod(anObject(x)[OBSERVABLE]);
+ if(method){
+ var observable = anObject(method.call(x));
+ return observable.constructor === C ? observable : new C(function(observer){
+ return observable.subscribe(observer);
+ });
+ }
+ return new C(function(observer){
+ var done = false;
+ microtask(function(){
+ if(!done){
+ try {
+ if(forOf(x, false, function(it){
+ observer.next(it);
+ if(done)return RETURN;
+ }) === RETURN)return;
+ } catch(e){
+ if(done)throw e;
+ observer.error(e);
+ return;
+ } observer.complete();
+ }
+ });
+ return function(){ done = true; };
+ });
+ },
+ of: function of(){
+ for(var i = 0, l = arguments.length, items = Array(l); i < l;)items[i] = arguments[i++];
+ return new (typeof this === 'function' ? this : $Observable)(function(observer){
+ var done = false;
+ microtask(function(){
+ if(!done){
+ for(var i = 0; i < items.length; ++i){
+ observer.next(items[i]);
+ if(done)return;
+ } observer.complete();
+ }
+ });
+ return function(){ done = true; };
+ });
+ }
+ });
+
+ hide($Observable.prototype, OBSERVABLE, function(){ return this; });
+
+ $export($export.G, {Observable: $Observable});
+
+ __webpack_require__(186)('Observable');
+
+/***/ },
+/* 286 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6)
+ , $task = __webpack_require__(200);
$export($export.G + $export.B, {
setImmediate: $task.set,
clearImmediate: $task.clear
});
/***/ },
-/* 182 */
+/* 287 */
/***/ function(module, exports, __webpack_require__) {
- __webpack_require__(117);
- var global = __webpack_require__(4)
- , hide = __webpack_require__(6)
- , Iterators = __webpack_require__(109)
- , ITERATOR = __webpack_require__(31)('iterator')
- , NL = global.NodeList
- , HTC = global.HTMLCollection
- , NLProto = NL && NL.prototype
- , HTCProto = HTC && HTC.prototype
- , ArrayValues = Iterators.NodeList = Iterators.HTMLCollection = Iterators.Array;
- if(NLProto && !NLProto[ITERATOR])hide(NLProto, ITERATOR, ArrayValues);
- if(HTCProto && !HTCProto[ITERATOR])hide(HTCProto, ITERATOR, ArrayValues);
+ var $iterators = __webpack_require__(183)
+ , redefine = __webpack_require__(16)
+ , global = __webpack_require__(2)
+ , hide = __webpack_require__(8)
+ , Iterators = __webpack_require__(135)
+ , wks = __webpack_require__(23)
+ , ITERATOR = wks('iterator')
+ , TO_STRING_TAG = wks('toStringTag')
+ , ArrayValues = Iterators.Array;
+
+ for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
+ var NAME = collections[i]
+ , Collection = global[NAME]
+ , proto = Collection && Collection.prototype
+ , key;
+ if(proto){
+ if(!proto[ITERATOR])hide(proto, ITERATOR, ArrayValues);
+ if(!proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);
+ Iterators[NAME] = ArrayValues;
+ for(key in $iterators)if(!proto[key])redefine(proto, key, $iterators[key], true);
+ }
+ }
/***/ },
-/* 183 */
+/* 288 */
/***/ function(module, exports, __webpack_require__) {
// ie9- setTimeout & setInterval additional parameters fix
- var global = __webpack_require__(4)
- , $export = __webpack_require__(3)
- , invoke = __webpack_require__(19)
- , partial = __webpack_require__(184)
+ var global = __webpack_require__(2)
+ , $export = __webpack_require__(6)
+ , invoke = __webpack_require__(76)
+ , partial = __webpack_require__(289)
, navigator = global.navigator
, MSIE = !!navigator && /MSIE .\./.test(navigator.userAgent); // <- dirty ie9- check
var wrap = function(set){
@@ -4498,13 +7228,13 @@
});
/***/ },
-/* 184 */
+/* 289 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var path = __webpack_require__(185)
- , invoke = __webpack_require__(19)
- , aFunction = __webpack_require__(13);
+ var path = __webpack_require__(290)
+ , invoke = __webpack_require__(76)
+ , aFunction = __webpack_require__(19);
module.exports = function(/* ...pargs */){
var fn = aFunction(this)
, length = arguments.length
@@ -4514,45 +7244,46 @@
, holder = false;
while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true;
return function(/* ...args */){
- var that = this
- , $$ = arguments
- , $$len = $$.length
+ var that = this
+ , aLen = arguments.length
, j = 0, k = 0, args;
- if(!holder && !$$len)return invoke(fn, pargs, that);
+ if(!holder && !aLen)return invoke(fn, pargs, that);
args = pargs.slice();
- if(holder)for(;length > j; j++)if(args[j] === _)args[j] = $$[k++];
- while($$len > k)args.push($$[k++]);
+ if(holder)for(;length > j; j++)if(args[j] === _)args[j] = arguments[k++];
+ while(aLen > k)args.push(arguments[k++]);
return invoke(fn, args, that);
};
};
/***/ },
-/* 185 */
+/* 290 */
/***/ function(module, exports, __webpack_require__) {
- module.exports = __webpack_require__(4);
+ module.exports = __webpack_require__(2);
/***/ },
-/* 186 */
+/* 291 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , ctx = __webpack_require__(12)
- , $export = __webpack_require__(3)
- , createDesc = __webpack_require__(7)
- , assign = __webpack_require__(41)
- , keyOf = __webpack_require__(36)
- , aFunction = __webpack_require__(13)
- , forOf = __webpack_require__(138)
- , isIterable = __webpack_require__(187)
- , $iterCreate = __webpack_require__(110)
- , step = __webpack_require__(119)
- , isObject = __webpack_require__(16)
- , toIObject = __webpack_require__(23)
- , DESCRIPTORS = __webpack_require__(8)
- , has = __webpack_require__(17)
- , getKeys = $.getKeys;
+ var ctx = __webpack_require__(18)
+ , $export = __webpack_require__(6)
+ , createDesc = __webpack_require__(15)
+ , assign = __webpack_require__(67)
+ , create = __webpack_require__(44)
+ , getPrototypeOf = __webpack_require__(57)
+ , getKeys = __webpack_require__(28)
+ , dP = __webpack_require__(9)
+ , keyOf = __webpack_require__(27)
+ , aFunction = __webpack_require__(19)
+ , forOf = __webpack_require__(198)
+ , isIterable = __webpack_require__(292)
+ , $iterCreate = __webpack_require__(136)
+ , step = __webpack_require__(184)
+ , isObject = __webpack_require__(11)
+ , toIObject = __webpack_require__(30)
+ , DESCRIPTORS = __webpack_require__(4)
+ , has = __webpack_require__(3);
// 0 -> Dict.forEach
// 1 -> Dict.map
@@ -4619,7 +7350,7 @@
});
function Dict(iterable){
- var dict = $.create(null);
+ var dict = create(null);
if(iterable != undefined){
if(isIterable(iterable)){
forOf(iterable, true, function(key, value){
@@ -4658,13 +7389,13 @@
if(has(object, key))return object[key];
}
function set(object, key, value){
- if(DESCRIPTORS && key in Object)$.setDesc(object, key, createDesc(0, value));
+ if(DESCRIPTORS && key in Object)dP.f(object, key, createDesc(0, value));
else object[key] = value;
return object;
}
function isDict(it){
- return isObject(it) && $.getProto(it) === Dict.prototype;
+ return isObject(it) && getPrototypeOf(it) === Dict.prototype;
}
$export($export.G + $export.F, {Dict: Dict});
@@ -4691,13 +7422,13 @@
});
/***/ },
-/* 187 */
+/* 292 */
/***/ function(module, exports, __webpack_require__) {
- var classof = __webpack_require__(47)
- , ITERATOR = __webpack_require__(31)('iterator')
- , Iterators = __webpack_require__(109);
- module.exports = __webpack_require__(5).isIterable = function(it){
+ var classof = __webpack_require__(73)
+ , ITERATOR = __webpack_require__(23)('iterator')
+ , Iterators = __webpack_require__(135);
+ module.exports = __webpack_require__(7).isIterable = function(it){
var O = Object(it);
return O[ITERATOR] !== undefined
|| '@@iterator' in O
@@ -4705,25 +7436,25 @@
};
/***/ },
-/* 188 */
+/* 293 */
/***/ function(module, exports, __webpack_require__) {
- var anObject = __webpack_require__(20)
- , get = __webpack_require__(114);
- module.exports = __webpack_require__(5).getIterator = function(it){
+ var anObject = __webpack_require__(10)
+ , get = __webpack_require__(156);
+ module.exports = __webpack_require__(7).getIterator = function(it){
var iterFn = get(it);
if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');
return anObject(iterFn.call(it));
};
/***/ },
-/* 189 */
+/* 294 */
/***/ function(module, exports, __webpack_require__) {
- var global = __webpack_require__(4)
- , core = __webpack_require__(5)
- , $export = __webpack_require__(3)
- , partial = __webpack_require__(184);
+ var global = __webpack_require__(2)
+ , core = __webpack_require__(7)
+ , $export = __webpack_require__(6)
+ , partial = __webpack_require__(289);
// https://esdiscuss.org/topic/promise-returning-delay-function
$export($export.G + $export.F, {
delay: function delay(time){
@@ -4734,65 +7465,66 @@
});
/***/ },
-/* 190 */
+/* 295 */
/***/ function(module, exports, __webpack_require__) {
- var path = __webpack_require__(185)
- , $export = __webpack_require__(3);
+ var path = __webpack_require__(290)
+ , $export = __webpack_require__(6);
// Placeholder
- __webpack_require__(5)._ = path._ = path._ || {};
+ __webpack_require__(7)._ = path._ = path._ || {};
- $export($export.P + $export.F, 'Function', {part: __webpack_require__(184)});
+ $export($export.P + $export.F, 'Function', {part: __webpack_require__(289)});
/***/ },
-/* 191 */
+/* 296 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.S + $export.F, 'Object', {isObject: __webpack_require__(16)});
+ $export($export.S + $export.F, 'Object', {isObject: __webpack_require__(11)});
/***/ },
-/* 192 */
+/* 297 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.S + $export.F, 'Object', {classof: __webpack_require__(47)});
+ $export($export.S + $export.F, 'Object', {classof: __webpack_require__(73)});
/***/ },
-/* 193 */
+/* 298 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3)
- , define = __webpack_require__(194);
+ var $export = __webpack_require__(6)
+ , define = __webpack_require__(299);
$export($export.S + $export.F, 'Object', {define: define});
/***/ },
-/* 194 */
+/* 299 */
/***/ function(module, exports, __webpack_require__) {
- var $ = __webpack_require__(2)
- , ownKeys = __webpack_require__(161)
- , toIObject = __webpack_require__(23);
+ var dP = __webpack_require__(9)
+ , gOPD = __webpack_require__(49)
+ , ownKeys = __webpack_require__(221)
+ , toIObject = __webpack_require__(30);
module.exports = function define(target, mixin){
var keys = ownKeys(toIObject(mixin))
, length = keys.length
, i = 0, key;
- while(length > i)$.setDesc(target, key = keys[i++], $.getDesc(mixin, key));
+ while(length > i)dP.f(target, key = keys[i++], gOPD.f(mixin, key));
return target;
};
/***/ },
-/* 195 */
+/* 300 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3)
- , define = __webpack_require__(194)
- , create = __webpack_require__(2).create;
+ var $export = __webpack_require__(6)
+ , define = __webpack_require__(299)
+ , create = __webpack_require__(44);
$export($export.S + $export.F, 'Object', {
make: function(proto, mixin){
@@ -4801,11 +7533,11 @@
});
/***/ },
-/* 196 */
+/* 301 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- __webpack_require__(108)(Number, 'Number', function(iterated){
+ __webpack_require__(134)(Number, 'Number', function(iterated){
this._l = +iterated;
this._i = 0;
}, function(){
@@ -4815,12 +7547,36 @@
});
/***/ },
-/* 197 */
+/* 302 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://github.com/benjamingr/RexExp.escape
+ var $export = __webpack_require__(6)
+ , $re = __webpack_require__(303)(/[\\^$*+?.()|[\]{}]/g, '\\$&');
+
+ $export($export.S, 'RegExp', {escape: function escape(it){ return $re(it); }});
+
+
+/***/ },
+/* 303 */
+/***/ function(module, exports) {
+
+ module.exports = function(regExp, replace){
+ var replacer = replace === Object(replace) ? function(part){
+ return replace[part];
+ } : replace;
+ return function(it){
+ return String(it).replace(regExp, replacer);
+ };
+ };
+
+/***/ },
+/* 304 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3);
- var $re = __webpack_require__(173)(/[&<>"']/g, {
+ var $export = __webpack_require__(6);
+ var $re = __webpack_require__(303)(/[&<>"']/g, {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
@@ -4831,12 +7587,12 @@
$export($export.P + $export.F, 'String', {escapeHTML: function escapeHTML(){ return $re(this); }});
/***/ },
-/* 198 */
+/* 305 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3);
- var $re = __webpack_require__(173)(/&(?:amp|lt|gt|quot|apos);/g, {
+ var $export = __webpack_require__(6);
+ var $re = __webpack_require__(303)(/&(?:amp|lt|gt|quot|apos);/g, {
'&amp;': '&',
'&lt;': '<',
'&gt;': '>',
@@ -4846,59 +7602,6 @@
$export($export.P + $export.F, 'String', {unescapeHTML: function unescapeHTML(){ return $re(this); }});
-/***/ },
-/* 199 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $ = __webpack_require__(2)
- , global = __webpack_require__(4)
- , $export = __webpack_require__(3)
- , log = {}
- , enabled = true;
- // Methods from https://github.com/DeveloperToolsWG/console-object/blob/master/api.md
- $.each.call((
- 'assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,' +
- 'info,isIndependentlyComposed,log,markTimeline,profile,profileEnd,table,' +
- 'time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn'
- ).split(','), function(key){
- log[key] = function(){
- var $console = global.console;
- if(enabled && $console && $console[key]){
- return Function.apply.call($console[key], $console, arguments);
- }
- };
- });
- $export($export.G + $export.F, {log: __webpack_require__(41)(log.log, log, {
- enable: function(){
- enabled = true;
- },
- disable: function(){
- enabled = false;
- }
- })});
-
-/***/ },
-/* 200 */
-/***/ function(module, exports, __webpack_require__) {
-
- // JavaScript 1.6 / Strawman array statics shim
- var $ = __webpack_require__(2)
- , $export = __webpack_require__(3)
- , $ctx = __webpack_require__(12)
- , $Array = __webpack_require__(5).Array || Array
- , statics = {};
- var setStatics = function(keys, length){
- $.each.call(keys.split(','), function(key){
- if(length == undefined && key in $Array)statics[key] = $Array[key];
- else if(key in [])statics[key] = $ctx(Function.call, [][key], length);
- });
- };
- setStatics('pop,reverse,shift,keys,values,entries', 1);
- setStatics('indexOf,every,some,forEach,map,filter,find,findIndex,includes', 3);
- setStatics('join,slice,concat,push,splice,unshift,sort,lastIndexOf,' +
- 'reduce,reduceRight,copyWithin,fill');
- $export($export.S, 'Array', statics);
-
/***/ }
/******/ ]);
// CommonJS export
diff --git a/node_modules/core-js/client/core.min.js b/node_modules/core-js/client/core.min.js
index 7a080f0ba..4c43b467f 100644
--- a/node_modules/core-js/client/core.min.js
+++ b/node_modules/core-js/client/core.min.js
@@ -1,9 +1,10 @@
/**
- * core-js 1.2.7
+ * core-js 2.4.1
* https://github.com/zloirock/core-js
* License: http://rock.mit-license.org
* © 2016 Denis Pushkarev
*/
-!function(b,c,a){"use strict";!function(b){function __webpack_require__(c){if(a[c])return a[c].exports;var d=a[c]={exports:{},id:c,loaded:!1};return b[c].call(d.exports,d,d.exports,__webpack_require__),d.loaded=!0,d.exports}var a={};return __webpack_require__.m=b,__webpack_require__.c=a,__webpack_require__.p="",__webpack_require__(0)}([function(b,c,a){a(1),a(34),a(40),a(42),a(44),a(46),a(48),a(50),a(51),a(52),a(53),a(54),a(55),a(56),a(57),a(58),a(59),a(60),a(61),a(64),a(65),a(66),a(68),a(69),a(70),a(71),a(72),a(73),a(74),a(76),a(77),a(78),a(80),a(81),a(82),a(84),a(85),a(86),a(87),a(88),a(89),a(90),a(91),a(92),a(93),a(94),a(95),a(96),a(97),a(99),a(103),a(104),a(106),a(107),a(111),a(116),a(117),a(120),a(122),a(124),a(126),a(127),a(128),a(130),a(131),a(133),a(134),a(135),a(136),a(143),a(146),a(147),a(149),a(150),a(151),a(152),a(153),a(154),a(155),a(156),a(157),a(158),a(159),a(160),a(162),a(163),a(164),a(165),a(166),a(167),a(169),a(170),a(171),a(172),a(174),a(175),a(177),a(178),a(180),a(181),a(182),a(183),a(186),a(114),a(188),a(187),a(189),a(190),a(191),a(192),a(193),a(195),a(196),a(197),a(198),a(199),b.exports=a(200)},function(S,R,b){var r,d=b(2),c=b(3),x=b(8),O=b(7),o=b(14),E=b(15),n=b(17),N=b(18),J=b(19),j=b(9),p=b(20),v=b(13),I=b(16),Q=b(21),y=b(23),K=b(25),w=b(26),h=b(27),s=b(24),m=b(11)("__proto__"),g=b(28),A=b(33)(!1),B=Object.prototype,C=Array.prototype,k=C.slice,M=C.join,F=d.setDesc,L=d.getDesc,q=d.setDescs,u={};x||(r=!j(function(){return 7!=F(E("div"),"a",{get:function(){return 7}}).a}),d.setDesc=function(b,c,a){if(r)try{return F(b,c,a)}catch(d){}if("get"in a||"set"in a)throw TypeError("Accessors not supported!");return"value"in a&&(p(b)[c]=a.value),b},d.getDesc=function(a,b){if(r)try{return L(a,b)}catch(c){}return n(a,b)?O(!B.propertyIsEnumerable.call(a,b),a[b]):void 0},d.setDescs=q=function(a,b){p(a);for(var c,e=d.getKeys(b),g=e.length,f=0;g>f;)d.setDesc(a,c=e[f++],b[c]);return a}),c(c.S+c.F*!x,"Object",{getOwnPropertyDescriptor:d.getDesc,defineProperty:d.setDesc,defineProperties:q});var i="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),H=i.concat("length","prototype"),G=i.length,l=function(){var a,b=E("iframe"),c=G,d=">";for(b.style.display="none",o.appendChild(b),b.src="javascript:",a=b.contentWindow.document,a.open(),a.write("<script>document.F=Object</script"+d),a.close(),l=a.F;c--;)delete l.prototype[i[c]];return l()},D=function(a,b){return function(g){var c,e=y(g),f=0,d=[];for(c in e)c!=m&&n(e,c)&&d.push(c);for(;b>f;)n(e,c=a[f++])&&(~A(d,c)||d.push(c));return d}},t=function(){};c(c.S,"Object",{getPrototypeOf:d.getProto=d.getProto||function(a){return a=Q(a),n(a,m)?a[m]:"function"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?B:null},getOwnPropertyNames:d.getNames=d.getNames||D(H,H.length,!0),create:d.create=d.create||function(c,d){var b;return null!==c?(t.prototype=p(c),b=new t,t.prototype=null,b[m]=c):b=l(),d===a?b:q(b,d)},keys:d.getKeys=d.getKeys||D(i,G,!1)});var P=function(d,a,e){if(!(a in u)){for(var c=[],b=0;a>b;b++)c[b]="a["+b+"]";u[a]=Function("F,a","return new F("+c.join(",")+")")}return u[a](d,e)};c(c.P,"Function",{bind:function bind(c){var a=v(this),d=k.call(arguments,1),b=function(){var e=d.concat(k.call(arguments));return this instanceof b?P(a,e.length,e):J(a,e,c)};return I(a.prototype)&&(b.prototype=a.prototype),b}}),c(c.P+c.F*j(function(){o&&k.call(o)}),"Array",{slice:function(f,b){var d=h(this.length),g=N(this);if(b=b===a?d:b,"Array"==g)return k.call(this,f,b);for(var e=w(f,d),l=w(b,d),i=h(l-e),j=Array(i),c=0;i>c;c++)j[c]="String"==g?this.charAt(e+c):this[e+c];return j}}),c(c.P+c.F*(s!=Object),"Array",{join:function join(b){return M.call(s(this),b===a?",":b)}}),c(c.S,"Array",{isArray:b(30)});var z=function(a){return function(g,d){v(g);var c=s(this),e=h(c.length),b=a?e-1:0,f=a?-1:1;if(arguments.length<2)for(;;){if(b in c){d=c[b],b+=f;break}if(b+=f,a?0>b:b>=e)throw TypeError("Reduce of empty array with no initial value")}for(;a?b>=0:e>b;b+=f)b in c&&(d=g(d,c[b],b,this));return d}},f=function(a){return function(b){return a(this,b,arguments[1])}};c(c.P,"Array",{forEach:d.each=d.each||f(g(0)),map:f(g(1)),filter:f(g(2)),some:f(g(3)),every:f(g(4)),reduce:z(!1),reduceRight:z(!0),indexOf:f(A),lastIndexOf:function(d,e){var b=y(this),c=h(b.length),a=c-1;for(arguments.length>1&&(a=Math.min(a,K(e))),0>a&&(a=h(c+a));a>=0;a--)if(a in b&&b[a]===d)return a;return-1}}),c(c.S,"Date",{now:function(){return+new Date}});var e=function(a){return a>9?a:"0"+a};c(c.P+c.F*(j(function(){return"0385-07-25T07:06:39.999Z"!=new Date(-5e13-1).toISOString()})||!j(function(){new Date(NaN).toISOString()})),"Date",{toISOString:function toISOString(){if(!isFinite(this))throw RangeError("Invalid time value");var a=this,b=a.getUTCFullYear(),c=a.getUTCMilliseconds(),d=0>b?"-":b>9999?"+":"";return d+("00000"+Math.abs(b)).slice(d?-6:-4)+"-"+e(a.getUTCMonth()+1)+"-"+e(a.getUTCDate())+"T"+e(a.getUTCHours())+":"+e(a.getUTCMinutes())+":"+e(a.getUTCSeconds())+"."+(c>99?c:"0"+e(c))+"Z"}})},function(b,c){var a=Object;b.exports={create:a.create,getProto:a.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:a.getOwnPropertyDescriptor,setDesc:a.defineProperty,setDescs:a.defineProperties,getKeys:a.keys,getNames:a.getOwnPropertyNames,getSymbols:a.getOwnPropertySymbols,each:[].forEach}},function(g,j,c){var b=c(4),d=c(5),h=c(6),i=c(10),f=c(12),e="prototype",a=function(k,j,o){var g,m,c,s,v=k&a.F,p=k&a.G,u=k&a.S,r=k&a.P,t=k&a.B,l=p?b:u?b[j]||(b[j]={}):(b[j]||{})[e],n=p?d:d[j]||(d[j]={}),q=n[e]||(n[e]={});p&&(o=j);for(g in o)m=!v&&l&&g in l,c=(m?l:o)[g],s=t&&m?f(c,b):r&&"function"==typeof c?f(Function.call,c):c,l&&!m&&i(l,g,c),n[g]!=c&&h(n,g,s),r&&q[g]!=c&&(q[g]=c)};b.core=d,a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,g.exports=a},function(a,d){var b=a.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof c&&(c=b)},function(a,d){var c=a.exports={version:"1.2.6"};"number"==typeof b&&(b=c)},function(b,e,a){var c=a(2),d=a(7);b.exports=a(8)?function(a,b,e){return c.setDesc(a,b,d(1,e))}:function(a,b,c){return a[b]=c,a}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,c,b){a.exports=!b(9)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b){a.exports=function(a){try{return!!a()}catch(b){return!0}}},function(f,i,a){var g=a(4),b=a(6),c=a(11)("src"),d="toString",e=Function[d],h=(""+e).split(d);a(5).inspectSource=function(a){return e.call(a)},(f.exports=function(e,a,d,f){"function"==typeof d&&(d.hasOwnProperty(c)||b(d,c,e[a]?""+e[a]:h.join(String(a))),d.hasOwnProperty("name")||b(d,"name",a)),e===g?e[a]=d:(f||delete e[a],b(e,a,d))})(Function.prototype,d,function toString(){return"function"==typeof this&&this[c]||e.call(this)})},function(b,e){var c=0,d=Math.random();b.exports=function(b){return"Symbol(".concat(b===a?"":b,")_",(++c+d).toString(36))}},function(b,e,c){var d=c(13);b.exports=function(b,c,e){if(d(b),c===a)return b;switch(e){case 1:return function(a){return b.call(c,a)};case 2:return function(a,d){return b.call(c,a,d)};case 3:return function(a,d,e){return b.call(c,a,d,e)}}return function(){return b.apply(c,arguments)}}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,c,b){a.exports=b(4).document&&document.documentElement},function(d,f,b){var c=b(16),a=b(4).document,e=c(a)&&c(a.createElement);d.exports=function(b){return e?a.createElement(b):{}}},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,c){var b={}.hasOwnProperty;a.exports=function(a,c){return b.call(a,c)}},function(a,c){var b={}.toString;a.exports=function(a){return b.call(a).slice(8,-1)}},function(b,c){b.exports=function(c,b,d){var e=d===a;switch(b.length){case 0:return e?c():c.call(d);case 1:return e?c(b[0]):c.call(d,b[0]);case 2:return e?c(b[0],b[1]):c.call(d,b[0],b[1]);case 3:return e?c(b[0],b[1],b[2]):c.call(d,b[0],b[1],b[2]);case 4:return e?c(b[0],b[1],b[2],b[3]):c.call(d,b[0],b[1],b[2],b[3])}return c.apply(d,b)}},function(a,d,b){var c=b(16);a.exports=function(a){if(!c(a))throw TypeError(a+" is not an object!");return a}},function(a,d,b){var c=b(22);a.exports=function(a){return Object(c(a))}},function(b,c){b.exports=function(b){if(b==a)throw TypeError("Can't call method on "+b);return b}},function(b,e,a){var c=a(24),d=a(22);b.exports=function(a){return c(d(a))}},function(a,d,b){var c=b(18);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return"String"==c(a)?a.split(""):Object(a)}},function(a,d){var b=Math.ceil,c=Math.floor;a.exports=function(a){return isNaN(a=+a)?0:(a>0?c:b)(a)}},function(a,f,b){var c=b(25),d=Math.max,e=Math.min;a.exports=function(a,b){return a=c(a),0>a?d(a+b,0):e(a,b)}},function(a,e,b){var c=b(25),d=Math.min;a.exports=function(a){return a>0?d(c(a),9007199254740991):0}},function(d,i,b){var e=b(12),f=b(24),g=b(21),h=b(27),c=b(29);d.exports=function(b){var i=1==b,k=2==b,l=3==b,d=4==b,j=6==b,m=5==b||j;return function(p,v,x){for(var o,r,u=g(p),s=f(u),w=e(v,x,3),t=h(s.length),n=0,q=i?c(p,t):k?c(p,0):a;t>n;n++)if((m||n in s)&&(o=s[n],r=w(o,n,u),b))if(i)q[n]=r;else if(r)switch(b){case 3:return!0;case 5:return o;case 6:return n;case 2:q.push(o)}else if(d)return!1;return j?-1:l||d?d:q}}},function(d,g,b){var e=b(16),c=b(30),f=b(31)("species");d.exports=function(d,g){var b;return c(d)&&(b=d.constructor,"function"!=typeof b||b!==Array&&!c(b.prototype)||(b=a),e(b)&&(b=b[f],null===b&&(b=a))),new(b===a?Array:b)(g)}},function(a,d,b){var c=b(18);a.exports=Array.isArray||function(a){return"Array"==c(a)}},function(d,f,a){var c=a(32)("wks"),e=a(11),b=a(4).Symbol;d.exports=function(a){return c[a]||(c[a]=b&&b[a]||(b||e)("Symbol."+a))}},function(d,f,e){var a=e(4),b="__core-js_shared__",c=a[b]||(a[b]={});d.exports=function(a){return c[a]||(c[a]={})}},function(b,f,a){var c=a(23),d=a(27),e=a(26);b.exports=function(a){return function(j,g,k){var h,f=c(j),i=d(f.length),b=e(k,i);if(a&&g!=g){for(;i>b;)if(h=f[b++],h!=h)return!0}else for(;i>b;b++)if((a||b in f)&&f[b]===g)return a||b;return!a&&-1}}},function(W,V,b){var e=b(2),x=b(4),d=b(17),w=b(8),f=b(3),G=b(10),H=b(9),J=b(32),s=b(35),S=b(11),A=b(31),R=b(36),C=b(37),Q=b(38),P=b(30),O=b(20),p=b(23),v=b(7),I=e.getDesc,i=e.setDesc,k=e.create,z=C.get,g=x.Symbol,l=x.JSON,m=l&&l.stringify,n=!1,c=A("_hidden"),N=e.isEnum,o=J("symbol-registry"),h=J("symbols"),q="function"==typeof g,j=Object.prototype,y=w&&H(function(){return 7!=k(i({},"a",{get:function(){return i(this,"a",{value:7}).a}})).a})?function(c,a,d){var b=I(j,a);b&&delete j[a],i(c,a,d),b&&c!==j&&i(j,a,b)}:i,L=function(a){var b=h[a]=k(g.prototype);return b._k=a,w&&n&&y(j,a,{configurable:!0,set:function(b){d(this,c)&&d(this[c],a)&&(this[c][a]=!1),y(this,a,v(1,b))}}),b},r=function(a){return"symbol"==typeof a},t=function defineProperty(a,b,e){return e&&d(h,b)?(e.enumerable?(d(a,c)&&a[c][b]&&(a[c][b]=!1),e=k(e,{enumerable:v(0,!1)})):(d(a,c)||i(a,c,v(1,{})),a[c][b]=!0),y(a,b,e)):i(a,b,e)},u=function defineProperties(a,b){O(a);for(var c,d=Q(b=p(b)),e=0,f=d.length;f>e;)t(a,c=d[e++],b[c]);return a},F=function create(b,c){return c===a?k(b):u(k(b),c)},E=function propertyIsEnumerable(a){var b=N.call(this,a);return b||!d(this,a)||!d(h,a)||d(this,c)&&this[c][a]?b:!0},D=function getOwnPropertyDescriptor(a,b){var e=I(a=p(a),b);return!e||!d(h,b)||d(a,c)&&a[c][b]||(e.enumerable=!0),e},B=function getOwnPropertyNames(g){for(var a,b=z(p(g)),e=[],f=0;b.length>f;)d(h,a=b[f++])||a==c||e.push(a);return e},M=function getOwnPropertySymbols(f){for(var a,b=z(p(f)),c=[],e=0;b.length>e;)d(h,a=b[e++])&&c.push(h[a]);return c},T=function stringify(e){if(e!==a&&!r(e)){for(var b,c,d=[e],f=1,g=arguments;g.length>f;)d.push(g[f++]);return b=d[1],"function"==typeof b&&(c=b),(c||!P(b))&&(b=function(b,a){return c&&(a=c.call(this,b,a)),r(a)?void 0:a}),d[1]=b,m.apply(l,d)}},U=H(function(){var a=g();return"[null]"!=m([a])||"{}"!=m({a:a})||"{}"!=m(Object(a))});q||(g=function Symbol(){if(r(this))throw TypeError("Symbol is not a constructor");return L(S(arguments.length>0?arguments[0]:a))},G(g.prototype,"toString",function toString(){return this._k}),r=function(a){return a instanceof g},e.create=F,e.isEnum=E,e.getDesc=D,e.setDesc=t,e.setDescs=u,e.getNames=C.get=B,e.getSymbols=M,w&&!b(39)&&G(j,"propertyIsEnumerable",E,!0));var K={"for":function(a){return d(o,a+="")?o[a]:o[a]=g(a)},keyFor:function keyFor(a){return R(o,a)},useSetter:function(){n=!0},useSimple:function(){n=!1}};e.each.call("hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),function(a){var b=A(a);K[a]=q?b:L(b)}),n=!0,f(f.G+f.W,{Symbol:g}),f(f.S,"Symbol",K),f(f.S+f.F*!q,"Object",{create:F,defineProperty:t,defineProperties:u,getOwnPropertyDescriptor:D,getOwnPropertyNames:B,getOwnPropertySymbols:M}),l&&f(f.S+f.F*(!q||U),"JSON",{stringify:T}),s(g,"Symbol"),s(Math,"Math",!0),s(x.JSON,"JSON",!0)},function(c,f,a){var d=a(2).setDesc,e=a(17),b=a(31)("toStringTag");c.exports=function(a,c,f){a&&!e(a=f?a:a.prototype,b)&&d(a,b,{configurable:!0,value:c})}},function(b,e,a){var c=a(2),d=a(23);b.exports=function(g,h){for(var a,b=d(g),e=c.getKeys(b),i=e.length,f=0;i>f;)if(b[a=e[f++]]===h)return a}},function(d,h,a){var e=a(23),b=a(2).getNames,f={}.toString,c="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],g=function(a){try{return b(a)}catch(d){return c.slice()}};d.exports.get=function getOwnPropertyNames(a){return c&&"[object Window]"==f.call(a)?g(a):b(e(a))}},function(b,d,c){var a=c(2);b.exports=function(b){var c=a.getKeys(b),d=a.getSymbols;if(d)for(var e,f=d(b),h=a.isEnum,g=0;f.length>g;)h.call(b,e=f[g++])&&c.push(e);return c}},function(a,b){a.exports=!1},function(c,d,b){var a=b(3);a(a.S+a.F,"Object",{assign:b(41)})},function(c,f,a){var b=a(2),d=a(21),e=a(24);c.exports=a(9)(function(){var a=Object.assign,b={},c={},d=Symbol(),e="abcdefghijklmnopqrst";return b[d]=7,e.split("").forEach(function(a){c[a]=a}),7!=a({},b)[d]||Object.keys(a({},c)).join("")!=e})?function assign(n,q){for(var g=d(n),h=arguments,o=h.length,j=1,f=b.getKeys,l=b.getSymbols,m=b.isEnum;o>j;)for(var c,a=e(h[j++]),k=l?f(a).concat(l(a)):f(a),p=k.length,i=0;p>i;)m.call(a,c=k[i++])&&(g[c]=a[c]);return g}:Object.assign},function(c,d,a){var b=a(3);b(b.S,"Object",{is:a(43)})},function(a,b){a.exports=Object.is||function is(a,b){return a===b?0!==a||1/a===1/b:a!=a&&b!=b}},function(c,d,a){var b=a(3);b(b.S,"Object",{setPrototypeOf:a(45).set})},function(d,h,b){var e=b(2).getDesc,f=b(16),g=b(20),c=function(b,a){if(g(b),!f(a)&&null!==a)throw TypeError(a+": can't set as prototype!")};d.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(f,a,d){try{d=b(12)(Function.call,e(Object.prototype,"__proto__").set,2),d(f,[]),a=!(f instanceof Array)}catch(g){a=!0}return function setPrototypeOf(b,e){return c(b,e),a?b.__proto__=e:d(b,e),b}}({},!1):a),check:c}},function(d,e,a){var c=a(47),b={};b[a(31)("toStringTag")]="z",b+""!="[object z]"&&a(10)(Object.prototype,"toString",function toString(){return"[object "+c(this)+"]"},!0)},function(d,g,c){var b=c(18),e=c(31)("toStringTag"),f="Arguments"==b(function(){return arguments}());d.exports=function(d){var c,g,h;return d===a?"Undefined":null===d?"Null":"string"==typeof(g=(c=Object(d))[e])?g:f?b(c):"Object"==(h=b(c))&&"function"==typeof c.callee?"Arguments":h}},function(c,d,a){var b=a(16);a(49)("freeze",function(a){return function freeze(c){return a&&b(c)?a(c):c}})},function(c,f,a){var b=a(3),d=a(5),e=a(9);c.exports=function(a,g){var c=(d.Object||{})[a]||Object[a],f={};f[a]=g(c),b(b.S+b.F*e(function(){c(1)}),"Object",f)}},function(c,d,a){var b=a(16);a(49)("seal",function(a){return function seal(c){return a&&b(c)?a(c):c}})},function(c,d,a){var b=a(16);a(49)("preventExtensions",function(a){return function preventExtensions(c){return a&&b(c)?a(c):c}})},function(c,d,a){var b=a(16);a(49)("isFrozen",function(a){return function isFrozen(c){return b(c)?a?a(c):!1:!0}})},function(c,d,a){var b=a(16);a(49)("isSealed",function(a){return function isSealed(c){return b(c)?a?a(c):!1:!0}})},function(c,d,a){var b=a(16);a(49)("isExtensible",function(a){return function isExtensible(c){return b(c)?a?a(c):!0:!1}})},function(c,d,a){var b=a(23);a(49)("getOwnPropertyDescriptor",function(a){return function getOwnPropertyDescriptor(c,d){return a(b(c),d)}})},function(c,d,a){var b=a(21);a(49)("getPrototypeOf",function(a){return function getPrototypeOf(c){return a(b(c))}})},function(c,d,a){var b=a(21);a(49)("keys",function(a){return function keys(c){return a(b(c))}})},function(b,c,a){a(49)("getOwnPropertyNames",function(){return a(37).get})},function(h,i,a){var c=a(2).setDesc,e=a(7),f=a(17),d=Function.prototype,g=/^\s*function ([^ (]*)/,b="name";b in d||a(8)&&c(d,b,{configurable:!0,get:function(){var a=(""+this).match(g),d=a?a[1]:"";return f(this,b)||c(this,b,e(5,d)),d}})},function(f,g,a){var b=a(2),c=a(16),d=a(31)("hasInstance"),e=Function.prototype;d in e||b.setDesc(e,d,{value:function(a){if("function"!=typeof this||!c(a))return!1;if(!c(this.prototype))return a instanceof this;for(;a=b.getProto(a);)if(this.prototype===a)return!0;return!1}})},function(q,p,b){var c=b(2),h=b(4),i=b(17),j=b(18),l=b(62),k=b(9),n=b(63).trim,d="Number",a=h[d],e=a,f=a.prototype,o=j(c.create(f))==d,m="trim"in String.prototype,g=function(i){var a=l(i,!1);if("string"==typeof a&&a.length>2){a=m?a.trim():n(a,3);var b,c,d,e=a.charCodeAt(0);if(43===e||45===e){if(b=a.charCodeAt(2),88===b||120===b)return NaN}else if(48===e){switch(a.charCodeAt(1)){case 66:case 98:c=2,d=49;break;case 79:case 111:c=8,d=55;break;default:return+a}for(var f,g=a.slice(2),h=0,j=g.length;j>h;h++)if(f=g.charCodeAt(h),48>f||f>d)return NaN;return parseInt(g,c)}}return+a};a(" 0o1")&&a("0b1")&&!a("+0x1")||(a=function Number(h){var c=arguments.length<1?0:h,b=this;return b instanceof a&&(o?k(function(){f.valueOf.call(b)}):j(b)!=d)?new e(g(c)):g(c)},c.each.call(b(8)?c.getNames(e):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),function(b){i(e,b)&&!i(a,b)&&c.setDesc(a,b,c.getDesc(e,b))}),a.prototype=f,f.constructor=a,b(10)(h,d,a))},function(b,d,c){var a=c(16);b.exports=function(b,e){if(!a(b))return b;var c,d;if(e&&"function"==typeof(c=b.toString)&&!a(d=c.call(b)))return d;if("function"==typeof(c=b.valueOf)&&!a(d=c.call(b)))return d;if(!e&&"function"==typeof(c=b.toString)&&!a(d=c.call(b)))return d;throw TypeError("Can't convert object to primitive value")}},function(g,m,b){var c=b(3),h=b(22),i=b(9),d=" \n \f\r   ᠎ â€â€‚         âŸã€€\u2028\u2029\ufeff",a="["+d+"]",f="​…",j=RegExp("^"+a+a+"*"),k=RegExp(a+a+"*$"),e=function(a,e){var b={};b[a]=e(l),c(c.P+c.F*i(function(){return!!d[a]()||f[a]()!=f}),"String",b)},l=e.trim=function(a,b){return a=String(h(a)),1&b&&(a=a.replace(j,"")),2&b&&(a=a.replace(k,"")),a};g.exports=e},function(c,d,b){var a=b(3);a(a.S,"Number",{EPSILON:Math.pow(2,-52)})},function(d,e,a){var b=a(3),c=a(4).isFinite;b(b.S,"Number",{isFinite:function isFinite(a){return"number"==typeof a&&c(a)}})},function(c,d,a){var b=a(3);b(b.S,"Number",{isInteger:a(67)})},function(a,e,b){var c=b(16),d=Math.floor;a.exports=function isInteger(a){return!c(a)&&isFinite(a)&&d(a)===a}},function(c,d,b){var a=b(3);a(a.S,"Number",{isNaN:function isNaN(a){return a!=a}})},function(e,f,a){var b=a(3),c=a(67),d=Math.abs;b(b.S,"Number",{isSafeInteger:function isSafeInteger(a){return c(a)&&d(a)<=9007199254740991}})},function(c,d,b){var a=b(3);a(a.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(c,d,b){var a=b(3);a(a.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(c,d,b){var a=b(3);a(a.S,"Number",{parseFloat:parseFloat})},function(c,d,b){var a=b(3);a(a.S,"Number",{parseInt:parseInt})},function(f,g,b){var a=b(3),e=b(75),c=Math.sqrt,d=Math.acosh;a(a.S+a.F*!(d&&710==Math.floor(d(Number.MAX_VALUE))),"Math",{acosh:function acosh(a){return(a=+a)<1?NaN:a>94906265.62425156?Math.log(a)+Math.LN2:e(a-1+c(a-1)*c(a+1))}})},function(a,b){a.exports=Math.log1p||function log1p(a){return(a=+a)>-1e-8&&1e-8>a?a-a*a/2:Math.log(1+a)}},function(c,d,b){function asinh(a){return isFinite(a=+a)&&0!=a?0>a?-asinh(-a):Math.log(a+Math.sqrt(a*a+1)):a}var a=b(3);a(a.S,"Math",{asinh:asinh})},function(c,d,b){var a=b(3);a(a.S,"Math",{atanh:function atanh(a){return 0==(a=+a)?a:Math.log((1+a)/(1-a))/2}})},function(d,e,a){var b=a(3),c=a(79);b(b.S,"Math",{cbrt:function cbrt(a){return c(a=+a)*Math.pow(Math.abs(a),1/3)}})},function(a,b){a.exports=Math.sign||function sign(a){return 0==(a=+a)||a!=a?a:0>a?-1:1}},function(c,d,b){var a=b(3);a(a.S,"Math",{clz32:function clz32(a){return(a>>>=0)?31-Math.floor(Math.log(a+.5)*Math.LOG2E):32}})},function(d,e,c){var a=c(3),b=Math.exp;a(a.S,"Math",{cosh:function cosh(a){return(b(a=+a)+b(-a))/2}})},function(c,d,a){var b=a(3);b(b.S,"Math",{expm1:a(83)})},function(a,b){a.exports=Math.expm1||function expm1(a){return 0==(a=+a)?a:a>-1e-6&&1e-6>a?a+a*a/2:Math.exp(a)-1}},function(k,j,e){var f=e(3),g=e(79),a=Math.pow,d=a(2,-52),b=a(2,-23),i=a(2,127)*(2-b),c=a(2,-126),h=function(a){return a+1/d-1/d};f(f.S,"Math",{fround:function fround(k){var f,a,e=Math.abs(k),j=g(k);return c>e?j*h(e/c/b)*c*b:(f=(1+b/d)*e,a=f-(f-e),a>i||a!=a?j*(1/0):j*a)}})},function(d,e,b){var a=b(3),c=Math.abs;a(a.S,"Math",{hypot:function hypot(i,j){for(var a,b,e=0,f=0,g=arguments,h=g.length,d=0;h>f;)a=c(g[f++]),a>d?(b=d/a,e=e*b*b+1,d=a):a>0?(b=a/d,e+=b*b):e+=a;return d===1/0?1/0:d*Math.sqrt(e)}})},function(d,e,b){var a=b(3),c=Math.imul;a(a.S+a.F*b(9)(function(){return-5!=c(4294967295,5)||2!=c.length}),"Math",{imul:function imul(f,g){var a=65535,b=+f,c=+g,d=a&b,e=a&c;return 0|d*e+((a&b>>>16)*e+d*(a&c>>>16)<<16>>>0)}})},function(c,d,b){var a=b(3);a(a.S,"Math",{log10:function log10(a){return Math.log(a)/Math.LN10}})},function(c,d,a){var b=a(3);b(b.S,"Math",{log1p:a(75)})},function(c,d,b){var a=b(3);a(a.S,"Math",{log2:function log2(a){return Math.log(a)/Math.LN2}})},function(c,d,a){var b=a(3);b(b.S,"Math",{sign:a(79)})},function(e,f,a){var b=a(3),c=a(83),d=Math.exp;b(b.S+b.F*a(9)(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function sinh(a){return Math.abs(a=+a)<1?(c(a)-c(-a))/2:(d(a-1)-d(-a-1))*(Math.E/2)}})},function(e,f,a){var b=a(3),c=a(83),d=Math.exp;b(b.S,"Math",{tanh:function tanh(a){var b=c(a=+a),e=c(-a);return b==1/0?1:e==1/0?-1:(b-e)/(d(a)+d(-a))}})},function(c,d,b){var a=b(3);a(a.S,"Math",{trunc:function trunc(a){return(a>0?Math.floor:Math.ceil)(a)}})},function(f,g,b){var a=b(3),e=b(26),c=String.fromCharCode,d=String.fromCodePoint;a(a.S+a.F*(!!d&&1!=d.length),"String",{fromCodePoint:function fromCodePoint(h){for(var a,b=[],d=arguments,g=d.length,f=0;g>f;){if(a=+d[f++],e(a,1114111)!==a)throw RangeError(a+" is not a valid code point");b.push(65536>a?c(a):c(((a-=65536)>>10)+55296,a%1024+56320))}return b.join("")}})},function(e,f,a){var b=a(3),c=a(23),d=a(27);b(b.S,"String",{raw:function raw(g){for(var e=c(g.raw),h=d(e.length),f=arguments,i=f.length,b=[],a=0;h>a;)b.push(String(e[a++])),i>a&&b.push(String(f[a]));return b.join("")}})},function(b,c,a){a(63)("trim",function(a){return function trim(){return a(this,3)}})},function(d,e,a){var b=a(3),c=a(98)(!1);b(b.P,"String",{codePointAt:function codePointAt(a){return c(this,a)}})},function(c,f,b){var d=b(25),e=b(22);c.exports=function(b){return function(j,k){var f,h,g=String(e(j)),c=d(k),i=g.length;return 0>c||c>=i?b?"":a:(f=g.charCodeAt(c),55296>f||f>56319||c+1===i||(h=g.charCodeAt(c+1))<56320||h>57343?b?g.charAt(c):f:b?g.slice(c,c+2):(f-55296<<10)+(h-56320)+65536)}}},function(h,i,b){var c=b(3),e=b(27),g=b(100),d="endsWith",f=""[d];c(c.P+c.F*b(102)(d),"String",{endsWith:function endsWith(i){var b=g(this,i,d),j=arguments,k=j.length>1?j[1]:a,l=e(b.length),c=k===a?l:Math.min(e(k),l),h=String(i);return f?f.call(b,h,c):b.slice(c-h.length,c)===h}})},function(b,e,a){var c=a(101),d=a(22);b.exports=function(a,b,e){if(c(b))throw TypeError("String#"+e+" doesn't accept regex!");return String(d(a))}},function(c,g,b){var d=b(16),e=b(18),f=b(31)("match");c.exports=function(b){var c;return d(b)&&((c=b[f])!==a?!!c:"RegExp"==e(b))}},function(a,d,b){var c=b(31)("match");a.exports=function(b){var a=/./;try{"/./"[b](a)}catch(d){try{return a[c]=!1,!"/./"[b](a)}catch(e){}}return!0}},function(f,g,b){var c=b(3),e=b(100),d="includes";c(c.P+c.F*b(102)(d),"String",{includes:function includes(b){return!!~e(this,b,d).indexOf(b,arguments.length>1?arguments[1]:a)}})},function(c,d,a){var b=a(3);b(b.P,"String",{repeat:a(105)})},function(b,e,a){var c=a(25),d=a(22);b.exports=function repeat(f){var b=String(d(this)),e="",a=c(f);if(0>a||a==1/0)throw RangeError("Count can't be negative");for(;a>0;(a>>>=1)&&(b+=b))1&a&&(e+=b);return e}},function(h,i,b){var c=b(3),f=b(27),g=b(100),d="startsWith",e=""[d];c(c.P+c.F*b(102)(d),"String",{startsWith:function startsWith(i){var b=g(this,i,d),j=arguments,c=f(Math.min(j.length>1?j[1]:a,b.length)),h=String(i);return e?e.call(b,h,c):b.slice(c,c+h.length)===h}})},function(d,e,b){var c=b(98)(!0);b(108)(String,"String",function(a){this._t=String(a),this._i=0},function(){var b,d=this._t,e=this._i;return e>=d.length?{value:a,done:!0}:(b=c(d,e),this._i+=b.length,{value:b,done:!1})})},function(o,r,a){var i=a(39),d=a(3),n=a(10),h=a(6),m=a(17),f=a(109),q=a(110),p=a(35),l=a(2).getProto,c=a(31)("iterator"),e=!([].keys&&"next"in[].keys()),j="@@iterator",k="keys",b="values",g=function(){return this};o.exports=function(B,v,u,F,s,E,A){q(u,v,F);var r,x,w=function(c){if(!e&&c in a)return a[c];switch(c){case k:return function keys(){return new u(this,c)};case b:return function values(){return new u(this,c)}}return function entries(){return new u(this,c)}},C=v+" Iterator",y=s==b,z=!1,a=B.prototype,t=a[c]||a[j]||s&&a[s],o=t||w(s);if(t){var D=l(o.call(new B));p(D,C,!0),!i&&m(a,j)&&h(D,c,g),y&&t.name!==b&&(z=!0,o=function values(){return t.call(this)})}if(i&&!A||!e&&!z&&a[c]||h(a,c,o),f[v]=o,f[C]=g,s)if(r={values:y?o:w(b),keys:E?o:w(k),entries:y?w("entries"):o},A)for(x in r)x in a||n(a,x,r[x]);else d(d.P+d.F*(e||z),v,r);return r}},function(a,b){a.exports={}},function(c,g,a){var d=a(2),e=a(7),f=a(35),b={};a(6)(b,a(31)("iterator"),function(){return this}),c.exports=function(a,c,g){a.prototype=d.create(b,{next:e(1,g)}),f(a,c+" Iterator")}},function(j,k,b){var d=b(12),c=b(3),e=b(21),f=b(112),g=b(113),h=b(27),i=b(114);c(c.S+c.F*!b(115)(function(a){Array.from(a)}),"Array",{from:function from(t){var n,c,r,m,j=e(t),l="function"==typeof this?this:Array,p=arguments,s=p.length,k=s>1?p[1]:a,q=k!==a,b=0,o=i(j);if(q&&(k=d(k,s>2?p[2]:a,2)),o==a||l==Array&&g(o))for(n=h(j.length),c=new l(n);n>b;b++)c[b]=q?k(j[b],b):j[b];else for(m=o.call(j),c=new l;!(r=m.next()).done;b++)c[b]=q?f(m,k,[r.value,b],!0):r.value;return c.length=b,c}})},function(c,e,d){var b=d(20);c.exports=function(d,e,c,g){try{return g?e(b(c)[0],c[1]):e(c)}catch(h){var f=d["return"];throw f!==a&&b(f.call(d)),h}}},function(c,g,b){var d=b(109),e=b(31)("iterator"),f=Array.prototype;c.exports=function(b){return b!==a&&(d.Array===b||f[e]===b)}},function(c,g,b){var d=b(47),e=b(31)("iterator"),f=b(109);c.exports=b(5).getIteratorMethod=function(b){return b!=a?b[e]||b["@@iterator"]||f[d(b)]:void 0}},function(d,f,e){var a=e(31)("iterator"),b=!1;try{var c=[7][a]();c["return"]=function(){b=!0},Array.from(c,function(){throw 2})}catch(g){}d.exports=function(f,g){if(!g&&!b)return!1;var d=!1;try{var c=[7],e=c[a]();e.next=function(){return{done:d=!0}},c[a]=function(){return e},f(c)}catch(h){}return d}},function(c,d,b){var a=b(3);a(a.S+a.F*b(9)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),"Array",{of:function of(){for(var a=0,d=arguments,b=d.length,c=new("function"==typeof this?this:Array)(b);b>a;)c[a]=d[a++];return c.length=b,c}})},function(f,h,b){var d=b(118),c=b(119),e=b(109),g=b(23);f.exports=b(108)(Array,"Array",function(a,b){this._t=g(a),this._i=0,this._k=b},function(){var d=this._t,e=this._k,b=this._i++;return!d||b>=d.length?(this._t=a,c(1)):"keys"==e?c(0,b):"values"==e?c(0,d[b]):c(0,[b,d[b]])},"values"),e.Arguments=e.Array,d("keys"),d("values"),d("entries")},function(e,f,d){var b=d(31)("unscopables"),c=Array.prototype;c[b]==a&&d(6)(c,b,{}),e.exports=function(a){c[b][a]=!0}},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(b,c,a){a(121)("Array")},function(c,g,a){var d=a(4),e=a(2),f=a(8),b=a(31)("species");c.exports=function(c){var a=d[c];f&&a&&!a[b]&&e.setDesc(a,b,{configurable:!0,get:function(){return this}})}},function(c,d,a){var b=a(3);b(b.P,"Array",{copyWithin:a(123)}),a(118)("copyWithin")},function(d,g,b){var e=b(21),c=b(26),f=b(27);d.exports=[].copyWithin||function copyWithin(m,n){var g=e(this),h=f(g.length),b=c(m,h),d=c(n,h),k=arguments,l=k.length>2?k[2]:a,i=Math.min((l===a?h:c(l,h))-d,h-b),j=1;for(b>d&&d+i>b&&(j=-1,d+=i-1,b+=i-1);i-->0;)d in g?g[b]=g[d]:delete g[b],b+=j,d+=j;return g}},function(c,d,a){var b=a(3);b(b.P,"Array",{fill:a(125)}),a(118)("fill")},function(d,g,b){var e=b(21),c=b(26),f=b(27);d.exports=[].fill||function fill(k){for(var b=e(this),d=f(b.length),g=arguments,h=g.length,i=c(h>1?g[1]:a,d),j=h>2?g[2]:a,l=j===a?d:c(j,d);l>i;)b[i++]=k;return b}},function(g,h,b){var c=b(3),f=b(28)(5),d="find",e=!0;d in[]&&Array(1)[d](function(){e=!1}),c(c.P+c.F*e,"Array",{find:function find(b){return f(this,b,arguments.length>1?arguments[1]:a)}}),b(118)(d)},function(g,h,b){var c=b(3),f=b(28)(6),d="findIndex",e=!0;d in[]&&Array(1)[d](function(){e=!1}),c(c.P+c.F*e,"Array",{findIndex:function findIndex(b){return f(this,b,arguments.length>1?arguments[1]:a)}}),b(118)(d)},function(n,m,c){var f=c(2),i=c(4),k=c(101),l=c(129),b=i.RegExp,d=b,j=b.prototype,e=/a/g,g=/a/g,h=new b(e)!==e;!c(8)||h&&!c(9)(function(){return g[c(31)("match")]=!1,b(e)!=e||b(g)==g||"/a/i"!=b(e,"i")})||(b=function RegExp(c,f){var e=k(c),g=f===a;return this instanceof b||!e||c.constructor!==b||!g?h?new d(e&&!g?c.source:c,f):d((e=c instanceof b)?c.source:c,e&&g?l.call(c):f):c},f.each.call(f.getNames(d),function(a){a in b||f.setDesc(b,a,{configurable:!0,get:function(){return d[a]},set:function(b){d[a]=b}})}),j.constructor=b,b.prototype=j,c(10)(i,"RegExp",b)),c(121)("RegExp")},function(a,d,b){var c=b(20);a.exports=function(){var b=c(this),a="";return b.global&&(a+="g"),b.ignoreCase&&(a+="i"),b.multiline&&(a+="m"),b.unicode&&(a+="u"),b.sticky&&(a+="y"),a}},function(c,d,a){var b=a(2);a(8)&&"g"!=/./g.flags&&b.setDesc(RegExp.prototype,"flags",{configurable:!0,get:a(129)})},function(c,d,b){b(132)("match",1,function(c,b){return function match(d){var e=c(this),f=d==a?a:d[b];return f!==a?f.call(d,e):new RegExp(d)[b](String(e))}})},function(b,h,a){var c=a(6),d=a(10),e=a(9),f=a(22),g=a(31);b.exports=function(a,i,j){var b=g(a),h=""[a];e(function(){var c={};return c[b]=function(){return 7},7!=""[a](c)})&&(d(String.prototype,a,j(f,b,h)),c(RegExp.prototype,b,2==i?function(a,b){return h.call(a,this,b)}:function(a){return h.call(a,this)}))}},function(c,d,b){b(132)("replace",2,function(b,c,d){return function replace(e,f){var g=b(this),h=e==a?a:e[c];return h!==a?h.call(e,g,f):d.call(String(g),e,f)}})},function(c,d,b){b(132)("search",1,function(c,b){return function search(d){var e=c(this),f=d==a?a:d[b];return f!==a?f.call(d,e):new RegExp(d)[b](String(e))}})},function(c,d,b){b(132)("split",2,function(b,c,d){return function split(e,f){var g=b(this),h=e==a?a:e[c];return h!==a?h.call(e,g,f):d.call(String(g),e,f)}})},function(K,J,b){var s,l=b(2),F=b(39),k=b(4),j=b(12),I=b(47),d=b(3),D=b(16),E=b(20),m=b(13),G=b(137),p=b(138),q=b(45).set,A=b(43),B=b(31)("species"),z=b(139),v=b(140),e="Promise",o=k.process,H="process"==I(o),c=k[e],i=function(){},r=function(d){var b,a=new c(i);return d&&(a.constructor=function(a){a(i,i)}),(b=c.resolve(a))["catch"](i),b===a},h=function(){function P2(b){var a=new c(b);return q(a,P2.prototype),a}var a=!1;try{if(a=c&&c.resolve&&r(),q(P2,c),
-P2.prototype=l.create(c.prototype,{constructor:{value:P2}}),P2.resolve(5).then(function(){})instanceof P2||(a=!1),a&&b(8)){var d=!1;c.resolve(l.setDesc({},"then",{get:function(){d=!0}})),a=d}}catch(e){a=!1}return a}(),C=function(a,b){return F&&a===c&&b===s?!0:A(a,b)},t=function(b){var c=E(b)[B];return c!=a?c:b},u=function(a){var b;return D(a)&&"function"==typeof(b=a.then)?b:!1},g=function(d){var b,c;this.promise=new d(function(d,e){if(b!==a||c!==a)throw TypeError("Bad Promise constructor");b=d,c=e}),this.resolve=m(b),this.reject=m(c)},w=function(a){try{a()}catch(b){return{error:b}}},n=function(b,d){if(!b.n){b.n=!0;var c=b.c;v(function(){for(var e=b.v,f=1==b.s,g=0,h=function(a){var c,h,g=f?a.ok:a.fail,i=a.resolve,d=a.reject;try{g?(f||(b.h=!0),c=g===!0?e:g(e),c===a.promise?d(TypeError("Promise-chain cycle")):(h=u(c))?h.call(c,i,d):i(c)):d(e)}catch(j){d(j)}};c.length>g;)h(c[g++]);c.length=0,b.n=!1,d&&setTimeout(function(){var f,c,d=b.p;y(d)&&(H?o.emit("unhandledRejection",e,d):(f=k.onunhandledrejection)?f({promise:d,reason:e}):(c=k.console)&&c.error&&c.error("Unhandled promise rejection",e)),b.a=a},1)})}},y=function(e){var a,b=e._d,c=b.a||b.c,d=0;if(b.h)return!1;for(;c.length>d;)if(a=c[d++],a.fail||!y(a.promise))return!1;return!0},f=function(b){var a=this;a.d||(a.d=!0,a=a.r||a,a.v=b,a.s=2,a.a=a.c.slice(),n(a,!0))},x=function(b){var c,a=this;if(!a.d){a.d=!0,a=a.r||a;try{if(a.p===b)throw TypeError("Promise can't be resolved itself");(c=u(b))?v(function(){var d={r:a,d:!1};try{c.call(b,j(x,d,1),j(f,d,1))}catch(e){f.call(d,e)}}):(a.v=b,a.s=1,n(a,!1))}catch(d){f.call({r:a,d:!1},d)}}};h||(c=function Promise(d){m(d);var b=this._d={p:G(this,c,e),c:[],a:a,s:0,d:!1,v:a,h:!1,n:!1};try{d(j(x,b,1),j(f,b,1))}catch(g){f.call(b,g)}},b(142)(c.prototype,{then:function then(d,e){var a=new g(z(this,c)),f=a.promise,b=this._d;return a.ok="function"==typeof d?d:!0,a.fail="function"==typeof e&&e,b.c.push(a),b.a&&b.a.push(a),b.s&&n(b,!1),f},"catch":function(b){return this.then(a,b)}})),d(d.G+d.W+d.F*!h,{Promise:c}),b(35)(c,e),b(121)(e),s=b(5)[e],d(d.S+d.F*!h,e,{reject:function reject(b){var a=new g(this),c=a.reject;return c(b),a.promise}}),d(d.S+d.F*(!h||r(!0)),e,{resolve:function resolve(a){if(a instanceof c&&C(a.constructor,this))return a;var b=new g(this),d=b.resolve;return d(a),b.promise}}),d(d.S+d.F*!(h&&b(115)(function(a){c.all(a)["catch"](function(){})})),e,{all:function all(h){var c=t(this),b=new g(c),d=b.resolve,e=b.reject,a=[],f=w(function(){p(h,!1,a.push,a);var b=a.length,f=Array(b);b?l.each.call(a,function(g,h){var a=!1;c.resolve(g).then(function(c){a||(a=!0,f[h]=c,--b||d(f))},e)}):d(f)});return f&&e(f.error),b.promise},race:function race(e){var b=t(this),a=new g(b),c=a.reject,d=w(function(){p(e,!1,function(d){b.resolve(d).then(a.resolve,c)})});return d&&c(d.error),a.promise}})},function(a,b){a.exports=function(a,b,c){if(!(a instanceof b))throw TypeError(c+": use the 'new' operator!");return a}},function(b,i,a){var c=a(12),d=a(112),e=a(113),f=a(20),g=a(27),h=a(114);b.exports=function(a,j,o,p){var n,b,k,l=h(a),m=c(o,p,j?2:1),i=0;if("function"!=typeof l)throw TypeError(a+" is not iterable!");if(e(l))for(n=g(a.length);n>i;i++)j?m(f(b=a[i])[0],b[1]):m(a[i]);else for(k=l.call(a);!(b=k.next()).done;)d(k,m,b.value,j)}},function(d,g,b){var c=b(20),e=b(13),f=b(31)("species");d.exports=function(g,h){var b,d=c(g).constructor;return d===a||(b=c(d)[f])==a?h:e(b)}},function(n,p,h){var b,f,g,c=h(4),o=h(141).set,k=c.MutationObserver||c.WebKitMutationObserver,d=c.process,i=c.Promise,j="process"==h(18)(d),e=function(){var e,c,g;for(j&&(e=d.domain)&&(d.domain=null,e.exit());b;)c=b.domain,g=b.fn,c&&c.enter(),g(),c&&c.exit(),b=b.next;f=a,e&&e.enter()};if(j)g=function(){d.nextTick(e)};else if(k){var m=1,l=document.createTextNode("");new k(e).observe(l,{characterData:!0}),g=function(){l.data=m=-m}}else g=i&&i.resolve?function(){i.resolve().then(e)}:function(){o.call(c,e)};n.exports=function asap(e){var c={fn:e,next:a,domain:j&&d.domain};f&&(f.next=c),b||(b=c,g()),f=c}},function(s,t,b){var c,g,f,k=b(12),r=b(19),n=b(14),p=b(15),a=b(4),l=a.process,h=a.setImmediate,i=a.clearImmediate,o=a.MessageChannel,j=0,d={},q="onreadystatechange",e=function(){var a=+this;if(d.hasOwnProperty(a)){var b=d[a];delete d[a],b()}},m=function(a){e.call(a.data)};h&&i||(h=function setImmediate(a){for(var b=[],e=1;arguments.length>e;)b.push(arguments[e++]);return d[++j]=function(){r("function"==typeof a?a:Function(a),b)},c(j),j},i=function clearImmediate(a){delete d[a]},"process"==b(18)(l)?c=function(a){l.nextTick(k(e,a,1))}:o?(g=new o,f=g.port2,g.port1.onmessage=m,c=k(f.postMessage,f,1)):a.addEventListener&&"function"==typeof postMessage&&!a.importScripts?(c=function(b){a.postMessage(b+"","*")},a.addEventListener("message",m,!1)):c=q in p("script")?function(a){n.appendChild(p("script"))[q]=function(){n.removeChild(this),e.call(a)}}:function(a){setTimeout(k(e,a,1),0)}),s.exports={set:h,clear:i}},function(a,d,b){var c=b(10);a.exports=function(a,b){for(var d in b)c(a,d,b[d]);return a}},function(d,e,c){var b=c(144);c(145)("Map",function(b){return function Map(){return b(this,arguments.length>0?arguments[0]:a)}},{get:function get(c){var a=b.getEntry(this,c);return a&&a.v},set:function set(a,c){return b.def(this,0===a?0:a,c)}},b,!0)},function(v,w,b){var j=b(2),m=b(6),o=b(142),n=b(12),p=b(137),r=b(22),t=b(138),l=b(108),d=b(119),f=b(11)("id"),k=b(17),h=b(16),q=b(121),i=b(8),s=Object.isExtensible||h,c=i?"_s":"size",u=0,g=function(a,b){if(!h(a))return"symbol"==typeof a?a:("string"==typeof a?"S":"P")+a;if(!k(a,f)){if(!s(a))return"F";if(!b)return"E";m(a,f,++u)}return"O"+a[f]},e=function(b,c){var a,d=g(c);if("F"!==d)return b._i[d];for(a=b._f;a;a=a.n)if(a.k==c)return a};v.exports={getConstructor:function(d,f,g,h){var b=d(function(d,e){p(d,b,f),d._i=j.create(null),d._f=a,d._l=a,d[c]=0,e!=a&&t(e,g,d[h],d)});return o(b.prototype,{clear:function clear(){for(var d=this,e=d._i,b=d._f;b;b=b.n)b.r=!0,b.p&&(b.p=b.p.n=a),delete e[b.i];d._f=d._l=a,d[c]=0},"delete":function(g){var b=this,a=e(b,g);if(a){var d=a.n,f=a.p;delete b._i[a.i],a.r=!0,f&&(f.n=d),d&&(d.p=f),b._f==a&&(b._f=d),b._l==a&&(b._l=f),b[c]--}return!!a},forEach:function forEach(c){for(var b,d=n(c,arguments.length>1?arguments[1]:a,3);b=b?b.n:this._f;)for(d(b.v,b.k,this);b&&b.r;)b=b.p},has:function has(a){return!!e(this,a)}}),i&&j.setDesc(b.prototype,"size",{get:function(){return r(this[c])}}),b},def:function(b,f,j){var h,i,d=e(b,f);return d?d.v=j:(b._l=d={i:i=g(f,!0),k:f,v:j,p:h=b._l,n:a,r:!1},b._f||(b._f=d),h&&(h.n=d),b[c]++,"F"!==i&&(b._i[i]=d)),b},getEntry:e,setStrong:function(e,b,c){l(e,b,function(b,c){this._t=b,this._k=c,this._l=a},function(){for(var c=this,e=c._k,b=c._l;b&&b.r;)b=b.p;return c._t&&(c._l=b=b?b.n:c._t._f)?"keys"==e?d(0,b.k):"values"==e?d(0,b.v):d(0,[b.k,b.v]):(c._t=a,d(1))},c?"entries":"values",!c,!0),q(b)}}},function(l,n,b){var k=b(4),c=b(3),g=b(10),f=b(142),i=b(138),j=b(137),d=b(16),e=b(9),h=b(115),m=b(35);l.exports=function(o,v,y,x,p,l){var t=k[o],b=t,s=p?"set":"add",n=b&&b.prototype,w={},r=function(b){var c=n[b];g(n,b,"delete"==b?function(a){return l&&!d(a)?!1:c.call(this,0===a?0:a)}:"has"==b?function has(a){return l&&!d(a)?!1:c.call(this,0===a?0:a)}:"get"==b?function get(b){return l&&!d(b)?a:c.call(this,0===b?0:b)}:"add"==b?function add(a){return c.call(this,0===a?0:a),this}:function set(a,b){return c.call(this,0===a?0:a,b),this})};if("function"==typeof b&&(l||n.forEach&&!e(function(){(new b).entries().next()}))){var u,q=new b,z=q[s](l?{}:-0,1)!=q,A=e(function(){q.has(1)}),B=h(function(a){new b(a)});B||(b=v(function(e,d){j(e,b,o);var c=new t;return d!=a&&i(d,p,c[s],c),c}),b.prototype=n,n.constructor=b),l||q.forEach(function(b,a){u=1/a===-(1/0)}),(A||u)&&(r("delete"),r("has"),p&&r("get")),(u||z)&&r(s),l&&n.clear&&delete n.clear}else b=x.getConstructor(v,o,p,s),f(b.prototype,y);return m(b,o),w[o]=b,c(c.G+c.W+c.F*(b!=t),w),l||x.setStrong(b,o,p),b}},function(d,e,b){var c=b(144);b(145)("Set",function(b){return function Set(){return b(this,arguments.length>0?arguments[0]:a)}},{add:function add(a){return c.def(this,a=0===a?0:a,a)}},c)},function(n,m,b){var l=b(2),k=b(10),c=b(148),d=b(16),j=b(17),i=c.frozenStore,h=c.WEAK,f=Object.isExtensible||d,e={},g=b(145)("WeakMap",function(b){return function WeakMap(){return b(this,arguments.length>0?arguments[0]:a)}},{get:function get(a){if(d(a)){if(!f(a))return i(this).get(a);if(j(a,h))return a[h][this._i]}},set:function set(a,b){return c.def(this,a,b)}},c,!0,!0);7!=(new g).set((Object.freeze||Object)(e),7).get(e)&&l.each.call(["delete","has","get","set"],function(a){var b=g.prototype,c=b[a];k(b,a,function(b,e){if(d(b)&&!f(b)){var g=i(this)[a](b,e);return"set"==a?this:g}return c.call(this,b,e)})})},function(s,t,b){var r=b(6),q=b(142),m=b(20),h=b(16),l=b(137),k=b(138),j=b(28),d=b(17),c=b(11)("weak"),g=Object.isExtensible||h,n=j(5),o=j(6),p=0,e=function(a){return a._l||(a._l=new i)},i=function(){this.a=[]},f=function(a,b){return n(a.a,function(a){return a[0]===b})};i.prototype={get:function(b){var a=f(this,b);return a?a[1]:void 0},has:function(a){return!!f(this,a)},set:function(a,b){var c=f(this,a);c?c[1]=b:this.a.push([a,b])},"delete":function(b){var a=o(this.a,function(a){return a[0]===b});return~a&&this.a.splice(a,1),!!~a}},s.exports={getConstructor:function(f,i,j,m){var b=f(function(c,d){l(c,b,i),c._i=p++,c._l=a,d!=a&&k(d,j,c[m],c)});return q(b.prototype,{"delete":function(a){return h(a)?g(a)?d(a,c)&&d(a[c],this._i)&&delete a[c][this._i]:e(this)["delete"](a):!1},has:function has(a){return h(a)?g(a)?d(a,c)&&d(a[c],this._i):e(this).has(a):!1}}),b},def:function(b,a,f){return g(m(a))?(d(a,c)||r(a,c,{}),a[c][b._i]=f):e(b).set(a,f),b},frozenStore:e,WEAK:c}},function(d,e,b){var c=b(148);b(145)("WeakSet",function(b){return function WeakSet(){return b(this,arguments.length>0?arguments[0]:a)}},{add:function add(a){return c.def(this,a,!0)}},c,!1,!0)},function(e,f,a){var b=a(3),c=Function.apply,d=a(20);b(b.S,"Reflect",{apply:function apply(a,b,e){return c.call(a,b,d(e))}})},function(h,i,a){var e=a(2),b=a(3),c=a(13),f=a(20),d=a(16),g=Function.bind||a(5).Function.prototype.bind;b(b.S+b.F*a(9)(function(){function F(){}return!(Reflect.construct(function(){},[],F)instanceof F)}),"Reflect",{construct:function construct(b,a){c(b),f(a);var i=arguments.length<3?b:c(arguments[2]);if(b==i){switch(a.length){case 0:return new b;case 1:return new b(a[0]);case 2:return new b(a[0],a[1]);case 3:return new b(a[0],a[1],a[2]);case 4:return new b(a[0],a[1],a[2],a[3])}var h=[null];return h.push.apply(h,a),new(g.apply(b,h))}var j=i.prototype,k=e.create(d(j)?j:Object.prototype),l=Function.apply.call(b,k,a);return d(l)?l:k}})},function(e,f,a){var c=a(2),b=a(3),d=a(20);b(b.S+b.F*a(9)(function(){Reflect.defineProperty(c.setDesc({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function defineProperty(a,b,e){d(a);try{return c.setDesc(a,b,e),!0}catch(f){return!1}}})},function(e,f,a){var b=a(3),c=a(2).getDesc,d=a(20);b(b.S,"Reflect",{deleteProperty:function deleteProperty(a,b){var e=c(d(a),b);return e&&!e.configurable?!1:delete a[b]}})},function(f,g,b){var c=b(3),e=b(20),d=function(a){this._t=e(a),this._i=0;var b,c=this._k=[];for(b in a)c.push(b)};b(110)(d,"Object",function(){var c,b=this,d=b._k;do if(b._i>=d.length)return{value:a,done:!0};while(!((c=d[b._i++])in b._t));return{value:c,done:!1}}),c(c.S,"Reflect",{enumerate:function enumerate(a){return new d(a)}})},function(h,i,b){function get(b,h){var d,j,i=arguments.length<3?b:arguments[2];return g(b)===i?b[h]:(d=c.getDesc(b,h))?e(d,"value")?d.value:d.get!==a?d.get.call(i):a:f(j=c.getProto(b))?get(j,h,i):void 0}var c=b(2),e=b(17),d=b(3),f=b(16),g=b(20);d(d.S,"Reflect",{get:get})},function(e,f,a){var c=a(2),b=a(3),d=a(20);b(b.S,"Reflect",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(a,b){return c.getDesc(d(a),b)}})},function(e,f,a){var b=a(3),c=a(2).getProto,d=a(20);b(b.S,"Reflect",{getPrototypeOf:function getPrototypeOf(a){return c(d(a))}})},function(c,d,b){var a=b(3);a(a.S,"Reflect",{has:function has(a,b){return b in a}})},function(e,f,a){var b=a(3),d=a(20),c=Object.isExtensible;b(b.S,"Reflect",{isExtensible:function isExtensible(a){return d(a),c?c(a):!0}})},function(c,d,a){var b=a(3);b(b.S,"Reflect",{ownKeys:a(161)})},function(d,f,a){var b=a(2),e=a(20),c=a(4).Reflect;d.exports=c&&c.ownKeys||function ownKeys(a){var c=b.getNames(e(a)),d=b.getSymbols;return d?c.concat(d(a)):c}},function(e,f,a){var b=a(3),d=a(20),c=Object.preventExtensions;b(b.S,"Reflect",{preventExtensions:function preventExtensions(a){d(a);try{return c&&c(a),!0}catch(b){return!1}}})},function(i,j,b){function set(j,i,k){var l,m,d=arguments.length<4?j:arguments[3],b=c.getDesc(h(j),i);if(!b){if(f(m=c.getProto(j)))return set(m,i,k,d);b=e(0)}return g(b,"value")?b.writable!==!1&&f(d)?(l=c.getDesc(d,i)||e(0),l.value=k,c.setDesc(d,i,l),!0):!1:b.set===a?!1:(b.set.call(d,k),!0)}var c=b(2),g=b(17),d=b(3),e=b(7),h=b(20),f=b(16);d(d.S,"Reflect",{set:set})},function(d,e,b){var c=b(3),a=b(45);a&&c(c.S,"Reflect",{setPrototypeOf:function setPrototypeOf(b,c){a.check(b,c);try{return a.set(b,c),!0}catch(d){return!1}}})},function(e,f,b){var c=b(3),d=b(33)(!0);c(c.P,"Array",{includes:function includes(b){return d(this,b,arguments.length>1?arguments[1]:a)}}),b(118)("includes")},function(d,e,a){var b=a(3),c=a(98)(!0);b(b.P,"String",{at:function at(a){return c(this,a)}})},function(e,f,b){var c=b(3),d=b(168);c(c.P,"String",{padLeft:function padLeft(b){return d(this,b,arguments.length>1?arguments[1]:a,!0)}})},function(c,g,b){var d=b(27),e=b(105),f=b(22);c.exports=function(l,m,i,n){var c=String(f(l)),j=c.length,g=i===a?" ":String(i),k=d(m);if(j>=k)return c;""==g&&(g=" ");var h=k-j,b=e.call(g,Math.ceil(h/g.length));return b.length>h&&(b=b.slice(0,h)),n?b+c:c+b}},function(e,f,b){var c=b(3),d=b(168);c(c.P,"String",{padRight:function padRight(b){return d(this,b,arguments.length>1?arguments[1]:a,!1)}})},function(b,c,a){a(63)("trimLeft",function(a){return function trimLeft(){return a(this,1)}})},function(b,c,a){a(63)("trimRight",function(a){return function trimRight(){return a(this,2)}})},function(d,e,a){var b=a(3),c=a(173)(/[\\^$*+?.()|[\]{}]/g,"\\$&");b(b.S,"RegExp",{escape:function escape(a){return c(a)}})},function(a,b){a.exports=function(b,a){var c=a===Object(a)?function(b){return a[b]}:a;return function(a){return String(a).replace(b,c)}}},function(g,h,a){var b=a(2),c=a(3),d=a(161),e=a(23),f=a(7);c(c.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(k){for(var a,g,h=e(k),l=b.setDesc,m=b.getDesc,i=d(h),c={},j=0;i.length>j;)g=m(h,a=i[j++]),a in c?l(c,a,f(0,g)):c[a]=g;return c}})},function(d,e,a){var b=a(3),c=a(176)(!1);b(b.S,"Object",{values:function values(a){return c(a)}})},function(c,f,a){var b=a(2),d=a(23),e=b.isEnum;c.exports=function(a){return function(j){for(var c,f=d(j),g=b.getKeys(f),k=g.length,h=0,i=[];k>h;)e.call(f,c=g[h++])&&i.push(a?[c,f[c]]:f[c]);return i}}},function(d,e,a){var b=a(3),c=a(176)(!0);b(b.S,"Object",{entries:function entries(a){return c(a)}})},function(c,d,a){var b=a(3);b(b.P,"Map",{toJSON:a(179)("Map")})},function(b,e,a){var c=a(138),d=a(47);b.exports=function(a){return function toJSON(){if(d(this)!=a)throw TypeError(a+"#toJSON isn't generic");var b=[];return c(this,!1,b.push,b),b}}},function(c,d,a){var b=a(3);b(b.P,"Set",{toJSON:a(179)("Set")})},function(d,e,b){var a=b(3),c=b(141);a(a.G+a.B,{setImmediate:c.set,clearImmediate:c.clear})},function(l,k,a){a(117);var g=a(4),j=a(6),c=a(109),b=a(31)("iterator"),h=g.NodeList,i=g.HTMLCollection,e=h&&h.prototype,d=i&&i.prototype,f=c.NodeList=c.HTMLCollection=c.Array;e&&!e[b]&&j(e,b,f),d&&!d[b]&&j(d,b,f)},function(i,j,a){var c=a(4),b=a(3),g=a(19),h=a(184),d=c.navigator,e=!!d&&/MSIE .\./.test(d.userAgent),f=function(a){return e?function(b,c){return a(g(h,[].slice.call(arguments,2),"function"==typeof b?b:Function(b)),c)}:a};b(b.G+b.B+b.F*e,{setTimeout:f(c.setTimeout),setInterval:f(c.setInterval)})},function(c,f,a){var d=a(185),b=a(19),e=a(13);c.exports=function(){for(var h=e(this),a=arguments.length,c=Array(a),f=0,i=d._,g=!1;a>f;)(c[f]=arguments[f++])===i&&(g=!0);return function(){var d,k=this,f=arguments,l=f.length,e=0,j=0;if(!g&&!l)return b(h,c,k);if(d=c.slice(),g)for(;a>e;e++)d[e]===i&&(d[e]=f[j++]);for(;l>j;)d.push(f[j++]);return b(h,d,k)}}},function(a,c,b){a.exports=b(4)},function(x,w,b){function Dict(b){var c=f.create(null);return b!=a&&(r(b)?q(b,!0,function(a,b){c[a]=b}):o(c,b)),c}function reduce(g,h,l){p(h);var a,c,b=i(g),e=k(b),j=e.length,f=0;if(arguments.length<3){if(!j)throw TypeError("Reduce of empty object with no initial value");a=b[e[f++]]}else a=Object(l);for(;j>f;)d(b,c=e[f++])&&(a=h(a,b[c],c,g));return a}function includes(c,b){return(b==b?j(c,b):l(c,function(a){return a!=a}))!==a}function get(a,b){return d(a,b)?a[b]:void 0}function set(a,b,c){return v&&b in Object?f.setDesc(a,b,t(0,c)):a[b]=c,a}function isDict(a){return u(a)&&f.getProto(a)===Dict.prototype}var f=b(2),n=b(12),e=b(3),t=b(7),o=b(41),j=b(36),p=b(13),q=b(138),r=b(187),s=b(110),g=b(119),u=b(16),i=b(23),v=b(8),d=b(17),k=f.getKeys,c=function(b){var e=1==b,c=4==b;return function(l,m,o){var f,h,g,p=n(m,o,3),k=i(l),j=e||7==b||2==b?new("function"==typeof this?this:Dict):a;for(f in k)if(d(k,f)&&(h=k[f],g=p(h,f,l),b))if(e)j[f]=g;else if(g)switch(b){case 2:j[f]=h;break;case 3:return!0;case 5:return h;case 6:return f;case 7:j[g[0]]=g[1]}else if(c)return!1;return 3==b||c?c:j}},l=c(6),h=function(a){return function(b){return new m(b,a)}},m=function(a,b){this._t=i(a),this._a=k(a),this._i=0,this._k=b};s(m,"Dict",function(){var c,b=this,e=b._t,f=b._a,h=b._k;do if(b._i>=f.length)return b._t=a,g(1);while(!d(e,c=f[b._i++]));return"keys"==h?g(0,c):"values"==h?g(0,e[c]):g(0,[c,e[c]])}),Dict.prototype=null,e(e.G+e.F,{Dict:Dict}),e(e.S,"Dict",{keys:h("keys"),values:h("values"),entries:h("entries"),forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findKey:l,mapPairs:c(7),reduce:reduce,keyOf:j,includes:includes,has:d,get:get,set:set,isDict:isDict})},function(c,g,b){var d=b(47),e=b(31)("iterator"),f=b(109);c.exports=b(5).isIterable=function(c){var b=Object(c);return b[e]!==a||"@@iterator"in b||f.hasOwnProperty(d(b))}},function(b,e,a){var c=a(20),d=a(114);b.exports=a(5).getIterator=function(a){var b=d(a);if("function"!=typeof b)throw TypeError(a+" is not iterable!");return c(b.call(a))}},function(f,g,a){var c=a(4),d=a(5),b=a(3),e=a(184);b(b.G+b.F,{delay:function delay(a){return new(d.Promise||c.Promise)(function(b){setTimeout(e.call(b,!0),a)})}})},function(d,e,a){var c=a(185),b=a(3);a(5)._=c._=c._||{},b(b.P+b.F,"Function",{part:a(184)})},function(c,d,b){var a=b(3);a(a.S+a.F,"Object",{isObject:b(16)})},function(c,d,b){var a=b(3);a(a.S+a.F,"Object",{classof:b(47)})},function(d,e,b){var a=b(3),c=b(194);a(a.S+a.F,"Object",{define:c})},function(c,f,a){var b=a(2),d=a(161),e=a(23);c.exports=function define(a,c){for(var f,g=d(e(c)),i=g.length,h=0;i>h;)b.setDesc(a,f=g[h++],b.getDesc(c,f));return a}},function(e,f,a){var b=a(3),c=a(194),d=a(2).create;b(b.S+b.F,"Object",{make:function(a,b){return c(d(a),b)}})},function(c,d,b){b(108)(Number,"Number",function(a){this._l=+a,this._i=0},function(){var b=this._i++,c=!(this._l>b);return{done:c,value:c?a:b}})},function(d,e,b){var a=b(3),c=b(173)(/[&<>"']/g,{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&apos;"});a(a.P+a.F,"String",{escapeHTML:function escapeHTML(){return c(this)}})},function(d,e,b){var a=b(3),c=b(173)(/&(?:amp|lt|gt|quot|apos);/g,{"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&apos;":"'"});a(a.P+a.F,"String",{unescapeHTML:function unescapeHTML(){return c(this)}})},function(g,h,a){var e=a(2),f=a(4),b=a(3),c={},d=!0;e.each.call("assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,isIndependentlyComposed,log,markTimeline,profile,profileEnd,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn".split(","),function(a){c[a]=function(){var b=f.console;return d&&b&&b[a]?Function.apply.call(b[a],b,arguments):void 0}}),b(b.G+b.F,{log:a(41)(c.log,c,{enable:function(){d=!0},disable:function(){d=!1}})})},function(i,j,b){var g=b(2),e=b(3),h=b(12),f=b(5).Array||Array,c={},d=function(d,b){g.each.call(d.split(","),function(d){b==a&&d in f?c[d]=f[d]:d in[]&&(c[d]=h(Function.call,[][d],b))})};d("pop,reverse,shift,keys,values,entries",1),d("indexOf,every,some,forEach,map,filter,find,findIndex,includes",3),d("join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill"),e(e.S,"Array",c)}]),"undefined"!=typeof module&&module.exports?module.exports=b:"function"==typeof define&&define.amd?define(function(){return b}):c.core=b}(1,1);
+!function(a,b,c){"use strict";!function(a){function __webpack_require__(c){if(b[c])return b[c].exports;var d=b[c]={exports:{},id:c,loaded:!1};return a[c].call(d.exports,d,d.exports,__webpack_require__),d.loaded=!0,d.exports}var b={};return __webpack_require__.m=a,__webpack_require__.c=b,__webpack_require__.p="",__webpack_require__(0)}([function(a,b,c){c(1),c(50),c(51),c(52),c(54),c(55),c(58),c(59),c(60),c(61),c(62),c(63),c(64),c(65),c(66),c(68),c(70),c(72),c(74),c(77),c(78),c(79),c(83),c(86),c(87),c(88),c(89),c(91),c(92),c(93),c(94),c(95),c(97),c(99),c(100),c(101),c(103),c(104),c(105),c(107),c(108),c(109),c(111),c(112),c(113),c(114),c(115),c(116),c(117),c(118),c(119),c(120),c(121),c(122),c(123),c(124),c(126),c(130),c(131),c(132),c(133),c(137),c(139),c(140),c(141),c(142),c(143),c(144),c(145),c(146),c(147),c(148),c(149),c(150),c(151),c(152),c(158),c(159),c(161),c(162),c(163),c(167),c(168),c(169),c(170),c(171),c(173),c(174),c(175),c(176),c(179),c(181),c(182),c(183),c(185),c(187),c(189),c(190),c(191),c(193),c(194),c(195),c(196),c(203),c(206),c(207),c(209),c(210),c(211),c(212),c(213),c(214),c(215),c(216),c(217),c(218),c(219),c(220),c(222),c(223),c(224),c(225),c(226),c(227),c(228),c(229),c(231),c(234),c(235),c(237),c(238),c(239),c(240),c(241),c(242),c(243),c(244),c(245),c(246),c(247),c(249),c(250),c(251),c(252),c(253),c(254),c(255),c(256),c(258),c(259),c(261),c(262),c(263),c(264),c(267),c(268),c(269),c(270),c(271),c(272),c(273),c(274),c(276),c(277),c(278),c(279),c(280),c(281),c(282),c(283),c(284),c(285),c(286),c(287),c(288),c(291),c(156),c(293),c(292),c(294),c(295),c(296),c(297),c(298),c(300),c(301),c(302),c(304),a.exports=c(305)},function(a,b,d){var e=d(2),f=d(3),g=d(4),h=d(6),i=d(16),j=d(20).KEY,k=d(5),l=d(21),m=d(22),n=d(17),o=d(23),p=d(24),q=d(25),r=d(27),s=d(40),t=d(43),u=d(10),v=d(30),w=d(14),x=d(15),y=d(44),z=d(47),A=d(49),B=d(9),C=d(28),D=A.f,E=B.f,F=z.f,G=e.Symbol,H=e.JSON,I=H&&H.stringify,J="prototype",K=o("_hidden"),L=o("toPrimitive"),M={}.propertyIsEnumerable,N=l("symbol-registry"),O=l("symbols"),P=l("op-symbols"),Q=Object[J],R="function"==typeof G,S=e.QObject,T=!S||!S[J]||!S[J].findChild,U=g&&k(function(){return 7!=y(E({},"a",{get:function(){return E(this,"a",{value:7}).a}})).a})?function(a,b,c){var d=D(Q,b);d&&delete Q[b],E(a,b,c),d&&a!==Q&&E(Q,b,d)}:E,V=function(a){var b=O[a]=y(G[J]);return b._k=a,b},W=R&&"symbol"==typeof G.iterator?function(a){return"symbol"==typeof a}:function(a){return a instanceof G},X=function defineProperty(a,b,c){return a===Q&&X(P,b,c),u(a),b=w(b,!0),u(c),f(O,b)?(c.enumerable?(f(a,K)&&a[K][b]&&(a[K][b]=!1),c=y(c,{enumerable:x(0,!1)})):(f(a,K)||E(a,K,x(1,{})),a[K][b]=!0),U(a,b,c)):E(a,b,c)},Y=function defineProperties(a,b){u(a);for(var c,d=s(b=v(b)),e=0,f=d.length;f>e;)X(a,c=d[e++],b[c]);return a},Z=function create(a,b){return b===c?y(a):Y(y(a),b)},$=function propertyIsEnumerable(a){var b=M.call(this,a=w(a,!0));return!(this===Q&&f(O,a)&&!f(P,a))&&(!(b||!f(this,a)||!f(O,a)||f(this,K)&&this[K][a])||b)},_=function getOwnPropertyDescriptor(a,b){if(a=v(a),b=w(b,!0),a!==Q||!f(O,b)||f(P,b)){var c=D(a,b);return!c||!f(O,b)||f(a,K)&&a[K][b]||(c.enumerable=!0),c}},aa=function getOwnPropertyNames(a){for(var b,c=F(v(a)),d=[],e=0;c.length>e;)f(O,b=c[e++])||b==K||b==j||d.push(b);return d},ba=function getOwnPropertySymbols(a){for(var b,c=a===Q,d=F(c?P:v(a)),e=[],g=0;d.length>g;)!f(O,b=d[g++])||c&&!f(Q,b)||e.push(O[b]);return e};R||(G=function Symbol(){if(this instanceof G)throw TypeError("Symbol is not a constructor!");var a=n(arguments.length>0?arguments[0]:c),b=function(c){this===Q&&b.call(P,c),f(this,K)&&f(this[K],a)&&(this[K][a]=!1),U(this,a,x(1,c))};return g&&T&&U(Q,a,{configurable:!0,set:b}),V(a)},i(G[J],"toString",function toString(){return this._k}),A.f=_,B.f=X,d(48).f=z.f=aa,d(42).f=$,d(41).f=ba,g&&!d(26)&&i(Q,"propertyIsEnumerable",$,!0),p.f=function(a){return V(o(a))}),h(h.G+h.W+h.F*!R,{Symbol:G});for(var ca="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),da=0;ca.length>da;)o(ca[da++]);for(var ca=C(o.store),da=0;ca.length>da;)q(ca[da++]);h(h.S+h.F*!R,"Symbol",{"for":function(a){return f(N,a+="")?N[a]:N[a]=G(a)},keyFor:function keyFor(a){if(W(a))return r(N,a);throw TypeError(a+" is not a symbol!")},useSetter:function(){T=!0},useSimple:function(){T=!1}}),h(h.S+h.F*!R,"Object",{create:Z,defineProperty:X,defineProperties:Y,getOwnPropertyDescriptor:_,getOwnPropertyNames:aa,getOwnPropertySymbols:ba}),H&&h(h.S+h.F*(!R||k(function(){var a=G();return"[null]"!=I([a])||"{}"!=I({a:a})||"{}"!=I(Object(a))})),"JSON",{stringify:function stringify(a){if(a!==c&&!W(a)){for(var b,d,e=[a],f=1;arguments.length>f;)e.push(arguments[f++]);return b=e[1],"function"==typeof b&&(d=b),!d&&t(b)||(b=function(a,b){if(d&&(b=d.call(this,a,b)),!W(b))return b}),e[1]=b,I.apply(H,e)}}}),G[J][L]||d(8)(G[J],L,G[J].valueOf),m(G,"Symbol"),m(Math,"Math",!0),m(e.JSON,"JSON",!0)},function(a,c){var d=a.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof b&&(b=d)},function(a,b){var c={}.hasOwnProperty;a.exports=function(a,b){return c.call(a,b)}},function(a,b,c){a.exports=!c(5)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b){a.exports=function(a){try{return!!a()}catch(b){return!0}}},function(a,b,d){var e=d(2),f=d(7),g=d(8),h=d(16),i=d(18),j="prototype",k=function(a,b,d){var l,m,n,o,p=a&k.F,q=a&k.G,r=a&k.S,s=a&k.P,t=a&k.B,u=q?e:r?e[b]||(e[b]={}):(e[b]||{})[j],v=q?f:f[b]||(f[b]={}),w=v[j]||(v[j]={});q&&(d=b);for(l in d)m=!p&&u&&u[l]!==c,n=(m?u:d)[l],o=t&&m?i(n,e):s&&"function"==typeof n?i(Function.call,n):n,u&&h(u,l,n,a&k.U),v[l]!=n&&g(v,l,o),s&&w[l]!=n&&(w[l]=n)};e.core=f,k.F=1,k.G=2,k.S=4,k.P=8,k.B=16,k.W=32,k.U=64,k.R=128,a.exports=k},function(b,c){var d=b.exports={version:"2.4.0"};"number"==typeof a&&(a=d)},function(a,b,c){var d=c(9),e=c(15);a.exports=c(4)?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},function(a,b,c){var d=c(10),e=c(12),f=c(14),g=Object.defineProperty;b.f=c(4)?Object.defineProperty:function defineProperty(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(h){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(a[b]=c.value),a}},function(a,b,c){var d=c(11);a.exports=function(a){if(!d(a))throw TypeError(a+" is not an object!");return a}},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,b,c){a.exports=!c(4)&&!c(5)(function(){return 7!=Object.defineProperty(c(13)("div"),"a",{get:function(){return 7}}).a})},function(a,b,c){var d=c(11),e=c(2).document,f=d(e)&&d(e.createElement);a.exports=function(a){return f?e.createElement(a):{}}},function(a,b,c){var d=c(11);a.exports=function(a,b){if(!d(a))return a;var c,e;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;if("function"==typeof(c=a.valueOf)&&!d(e=c.call(a)))return e;if(!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,b,c){var d=c(2),e=c(8),f=c(3),g=c(17)("src"),h="toString",i=Function[h],j=(""+i).split(h);c(7).inspectSource=function(a){return i.call(a)},(a.exports=function(a,b,c,h){var i="function"==typeof c;i&&(f(c,"name")||e(c,"name",b)),a[b]!==c&&(i&&(f(c,g)||e(c,g,a[b]?""+a[b]:j.join(String(b)))),a===d?a[b]=c:h?a[b]?a[b]=c:e(a,b,c):(delete a[b],e(a,b,c)))})(Function.prototype,h,function toString(){return"function"==typeof this&&this[g]||i.call(this)})},function(a,b){var d=0,e=Math.random();a.exports=function(a){return"Symbol(".concat(a===c?"":a,")_",(++d+e).toString(36))}},function(a,b,d){var e=d(19);a.exports=function(a,b,d){if(e(a),b===c)return a;switch(d){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,b,c){var d=c(17)("meta"),e=c(11),f=c(3),g=c(9).f,h=0,i=Object.isExtensible||function(){return!0},j=!c(5)(function(){return i(Object.preventExtensions({}))}),k=function(a){g(a,d,{value:{i:"O"+ ++h,w:{}}})},l=function(a,b){if(!e(a))return"symbol"==typeof a?a:("string"==typeof a?"S":"P")+a;if(!f(a,d)){if(!i(a))return"F";if(!b)return"E";k(a)}return a[d].i},m=function(a,b){if(!f(a,d)){if(!i(a))return!0;if(!b)return!1;k(a)}return a[d].w},n=function(a){return j&&o.NEED&&i(a)&&!f(a,d)&&k(a),a},o=a.exports={KEY:d,NEED:!1,fastKey:l,getWeak:m,onFreeze:n}},function(a,b,c){var d=c(2),e="__core-js_shared__",f=d[e]||(d[e]={});a.exports=function(a){return f[a]||(f[a]={})}},function(a,b,c){var d=c(9).f,e=c(3),f=c(23)("toStringTag");a.exports=function(a,b,c){a&&!e(a=c?a:a.prototype,f)&&d(a,f,{configurable:!0,value:b})}},function(a,b,c){var d=c(21)("wks"),e=c(17),f=c(2).Symbol,g="function"==typeof f,h=a.exports=function(a){return d[a]||(d[a]=g&&f[a]||(g?f:e)("Symbol."+a))};h.store=d},function(a,b,c){b.f=c(23)},function(a,b,c){var d=c(2),e=c(7),f=c(26),g=c(24),h=c(9).f;a.exports=function(a){var b=e.Symbol||(e.Symbol=f?{}:d.Symbol||{});"_"==a.charAt(0)||a in b||h(b,a,{value:g.f(a)})}},function(a,b){a.exports=!1},function(a,b,c){var d=c(28),e=c(30);a.exports=function(a,b){for(var c,f=e(a),g=d(f),h=g.length,i=0;h>i;)if(f[c=g[i++]]===b)return c}},function(a,b,c){var d=c(29),e=c(39);a.exports=Object.keys||function keys(a){return d(a,e)}},function(a,b,c){var d=c(3),e=c(30),f=c(34)(!1),g=c(38)("IE_PROTO");a.exports=function(a,b){var c,h=e(a),i=0,j=[];for(c in h)c!=g&&d(h,c)&&j.push(c);for(;b.length>i;)d(h,c=b[i++])&&(~f(j,c)||j.push(c));return j}},function(a,b,c){var d=c(31),e=c(33);a.exports=function(a){return d(e(a))}},function(a,b,c){var d=c(32);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return"String"==d(a)?a.split(""):Object(a)}},function(a,b){var c={}.toString;a.exports=function(a){return c.call(a).slice(8,-1)}},function(a,b){a.exports=function(a){if(a==c)throw TypeError("Can't call method on "+a);return a}},function(a,b,c){var d=c(30),e=c(35),f=c(37);a.exports=function(a){return function(b,c,g){var h,i=d(b),j=e(i.length),k=f(g,j);if(a&&c!=c){for(;j>k;)if(h=i[k++],h!=h)return!0}else for(;j>k;k++)if((a||k in i)&&i[k]===c)return a||k||0;return!a&&-1}}},function(a,b,c){var d=c(36),e=Math.min;a.exports=function(a){return a>0?e(d(a),9007199254740991):0}},function(a,b){var c=Math.ceil,d=Math.floor;a.exports=function(a){return isNaN(a=+a)?0:(a>0?d:c)(a)}},function(a,b,c){var d=c(36),e=Math.max,f=Math.min;a.exports=function(a,b){return a=d(a),a<0?e(a+b,0):f(a,b)}},function(a,b,c){var d=c(21)("keys"),e=c(17);a.exports=function(a){return d[a]||(d[a]=e(a))}},function(a,b){a.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(a,b,c){var d=c(28),e=c(41),f=c(42);a.exports=function(a){var b=d(a),c=e.f;if(c)for(var g,h=c(a),i=f.f,j=0;h.length>j;)i.call(a,g=h[j++])&&b.push(g);return b}},function(a,b){b.f=Object.getOwnPropertySymbols},function(a,b){b.f={}.propertyIsEnumerable},function(a,b,c){var d=c(32);a.exports=Array.isArray||function isArray(a){return"Array"==d(a)}},function(a,b,d){var e=d(10),f=d(45),g=d(39),h=d(38)("IE_PROTO"),i=function(){},j="prototype",k=function(){var a,b=d(13)("iframe"),c=g.length,e="<",f=">";for(b.style.display="none",d(46).appendChild(b),b.src="javascript:",a=b.contentWindow.document,a.open(),a.write(e+"script"+f+"document.F=Object"+e+"/script"+f),a.close(),k=a.F;c--;)delete k[j][g[c]];return k()};a.exports=Object.create||function create(a,b){var d;return null!==a?(i[j]=e(a),d=new i,i[j]=null,d[h]=a):d=k(),b===c?d:f(d,b)}},function(a,b,c){var d=c(9),e=c(10),f=c(28);a.exports=c(4)?Object.defineProperties:function defineProperties(a,b){e(a);for(var c,g=f(b),h=g.length,i=0;h>i;)d.f(a,c=g[i++],b[c]);return a}},function(a,b,c){a.exports=c(2).document&&document.documentElement},function(a,b,c){var d=c(30),e=c(48).f,f={}.toString,g="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],h=function(a){try{return e(a)}catch(b){return g.slice()}};a.exports.f=function getOwnPropertyNames(a){return g&&"[object Window]"==f.call(a)?h(a):e(d(a))}},function(a,b,c){var d=c(29),e=c(39).concat("length","prototype");b.f=Object.getOwnPropertyNames||function getOwnPropertyNames(a){return d(a,e)}},function(a,b,c){var d=c(42),e=c(15),f=c(30),g=c(14),h=c(3),i=c(12),j=Object.getOwnPropertyDescriptor;b.f=c(4)?j:function getOwnPropertyDescriptor(a,b){if(a=f(a),b=g(b,!0),i)try{return j(a,b)}catch(c){}if(h(a,b))return e(!d.f.call(a,b),a[b])}},function(a,b,c){var d=c(6);d(d.S+d.F*!c(4),"Object",{defineProperty:c(9).f})},function(a,b,c){var d=c(6);d(d.S+d.F*!c(4),"Object",{defineProperties:c(45)})},function(a,b,c){var d=c(30),e=c(49).f;c(53)("getOwnPropertyDescriptor",function(){return function getOwnPropertyDescriptor(a,b){return e(d(a),b)}})},function(a,b,c){var d=c(6),e=c(7),f=c(5);a.exports=function(a,b){var c=(e.Object||{})[a]||Object[a],g={};g[a]=b(c),d(d.S+d.F*f(function(){c(1)}),"Object",g)}},function(a,b,c){var d=c(6);d(d.S,"Object",{create:c(44)})},function(a,b,c){var d=c(56),e=c(57);c(53)("getPrototypeOf",function(){return function getPrototypeOf(a){return e(d(a))}})},function(a,b,c){var d=c(33);a.exports=function(a){return Object(d(a))}},function(a,b,c){var d=c(3),e=c(56),f=c(38)("IE_PROTO"),g=Object.prototype;a.exports=Object.getPrototypeOf||function(a){return a=e(a),d(a,f)?a[f]:"function"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?g:null}},function(a,b,c){var d=c(56),e=c(28);c(53)("keys",function(){return function keys(a){return e(d(a))}})},function(a,b,c){c(53)("getOwnPropertyNames",function(){return c(47).f})},function(a,b,c){var d=c(11),e=c(20).onFreeze;c(53)("freeze",function(a){return function freeze(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(11),e=c(20).onFreeze;c(53)("seal",function(a){return function seal(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(11),e=c(20).onFreeze;c(53)("preventExtensions",function(a){return function preventExtensions(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(11);c(53)("isFrozen",function(a){return function isFrozen(b){return!d(b)||!!a&&a(b)}})},function(a,b,c){var d=c(11);c(53)("isSealed",function(a){return function isSealed(b){return!d(b)||!!a&&a(b)}})},function(a,b,c){var d=c(11);c(53)("isExtensible",function(a){return function isExtensible(b){return!!d(b)&&(!a||a(b))}})},function(a,b,c){var d=c(6);d(d.S+d.F,"Object",{assign:c(67)})},function(a,b,c){var d=c(28),e=c(41),f=c(42),g=c(56),h=c(31),i=Object.assign;a.exports=!i||c(5)(function(){var a={},b={},c=Symbol(),d="abcdefghijklmnopqrst";return a[c]=7,d.split("").forEach(function(a){b[a]=a}),7!=i({},a)[c]||Object.keys(i({},b)).join("")!=d})?function assign(a,b){for(var c=g(a),i=arguments.length,j=1,k=e.f,l=f.f;i>j;)for(var m,n=h(arguments[j++]),o=k?d(n).concat(k(n)):d(n),p=o.length,q=0;p>q;)l.call(n,m=o[q++])&&(c[m]=n[m]);return c}:i},function(a,b,c){var d=c(6);d(d.S,"Object",{is:c(69)})},function(a,b){a.exports=Object.is||function is(a,b){return a===b?0!==a||1/a===1/b:a!=a&&b!=b}},function(a,b,c){var d=c(6);d(d.S,"Object",{setPrototypeOf:c(71).set})},function(a,b,d){var e=d(11),f=d(10),g=function(a,b){if(f(a),!e(b)&&null!==b)throw TypeError(b+": can't set as prototype!")};a.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(a,b,c){try{c=d(18)(Function.call,d(49).f(Object.prototype,"__proto__").set,2),c(a,[]),b=!(a instanceof Array)}catch(e){b=!0}return function setPrototypeOf(a,d){return g(a,d),b?a.__proto__=d:c(a,d),a}}({},!1):c),check:g}},function(a,b,c){var d=c(73),e={};e[c(23)("toStringTag")]="z",e+""!="[object z]"&&c(16)(Object.prototype,"toString",function toString(){return"[object "+d(this)+"]"},!0)},function(a,b,d){var e=d(32),f=d(23)("toStringTag"),g="Arguments"==e(function(){return arguments}()),h=function(a,b){try{return a[b]}catch(c){}};a.exports=function(a){var b,d,i;return a===c?"Undefined":null===a?"Null":"string"==typeof(d=h(b=Object(a),f))?d:g?e(b):"Object"==(i=e(b))&&"function"==typeof b.callee?"Arguments":i}},function(a,b,c){var d=c(6);d(d.P,"Function",{bind:c(75)})},function(a,b,c){var d=c(19),e=c(11),f=c(76),g=[].slice,h={},i=function(a,b,c){if(!(b in h)){for(var d=[],e=0;e<b;e++)d[e]="a["+e+"]";h[b]=Function("F,a","return new F("+d.join(",")+")")}return h[b](a,c)};a.exports=Function.bind||function bind(a){var b=d(this),c=g.call(arguments,1),h=function(){var d=c.concat(g.call(arguments));return this instanceof h?i(b,d.length,d):f(b,d,a)};return e(b.prototype)&&(h.prototype=b.prototype),h}},function(a,b){a.exports=function(a,b,d){var e=d===c;switch(b.length){case 0:return e?a():a.call(d);case 1:return e?a(b[0]):a.call(d,b[0]);case 2:return e?a(b[0],b[1]):a.call(d,b[0],b[1]);case 3:return e?a(b[0],b[1],b[2]):a.call(d,b[0],b[1],b[2]);case 4:return e?a(b[0],b[1],b[2],b[3]):a.call(d,b[0],b[1],b[2],b[3])}return a.apply(d,b)}},function(a,b,c){var d=c(9).f,e=c(15),f=c(3),g=Function.prototype,h=/^\s*function ([^ (]*)/,i="name",j=Object.isExtensible||function(){return!0};i in g||c(4)&&d(g,i,{configurable:!0,get:function(){try{var a=this,b=(""+a).match(h)[1];return f(a,i)||!j(a)||d(a,i,e(5,b)),b}catch(c){return""}}})},function(a,b,c){var d=c(11),e=c(57),f=c(23)("hasInstance"),g=Function.prototype;f in g||c(9).f(g,f,{value:function(a){if("function"!=typeof this||!d(a))return!1;if(!d(this.prototype))return a instanceof this;for(;a=e(a);)if(this.prototype===a)return!0;return!1}})},function(a,b,c){var d=c(2),e=c(3),f=c(32),g=c(80),h=c(14),i=c(5),j=c(48).f,k=c(49).f,l=c(9).f,m=c(81).trim,n="Number",o=d[n],p=o,q=o.prototype,r=f(c(44)(q))==n,s="trim"in String.prototype,t=function(a){var b=h(a,!1);if("string"==typeof b&&b.length>2){b=s?b.trim():m(b,3);var c,d,e,f=b.charCodeAt(0);if(43===f||45===f){if(c=b.charCodeAt(2),88===c||120===c)return NaN}else if(48===f){switch(b.charCodeAt(1)){case 66:case 98:d=2,e=49;break;case 79:case 111:d=8,e=55;break;default:return+b}for(var g,i=b.slice(2),j=0,k=i.length;j<k;j++)if(g=i.charCodeAt(j),g<48||g>e)return NaN;return parseInt(i,d)}}return+b};if(!o(" 0o1")||!o("0b1")||o("+0x1")){o=function Number(a){var b=arguments.length<1?0:a,c=this;return c instanceof o&&(r?i(function(){q.valueOf.call(c)}):f(c)!=n)?g(new p(t(b)),c,o):t(b)};for(var u,v=c(4)?j(p):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;v.length>w;w++)e(p,u=v[w])&&!e(o,u)&&l(o,u,k(p,u));o.prototype=q,q.constructor=o,c(16)(d,n,o)}},function(a,b,c){var d=c(11),e=c(71).set;a.exports=function(a,b,c){var f,g=b.constructor;return g!==c&&"function"==typeof g&&(f=g.prototype)!==c.prototype&&d(f)&&e&&e(a,f),a}},function(a,b,c){var d=c(6),e=c(33),f=c(5),g=c(82),h="["+g+"]",i="​…",j=RegExp("^"+h+h+"*"),k=RegExp(h+h+"*$"),l=function(a,b,c){var e={},h=f(function(){return!!g[a]()||i[a]()!=i}),j=e[a]=h?b(m):g[a];c&&(e[c]=j),d(d.P+d.F*h,"String",e)},m=l.trim=function(a,b){return a=String(e(a)),1&b&&(a=a.replace(j,"")),2&b&&(a=a.replace(k,"")),a};a.exports=l},function(a,b){a.exports="\t\n\x0B\f\r   ᠎ â€â€‚         âŸã€€\u2028\u2029\ufeff"},function(a,b,c){var d=c(6),e=c(36),f=c(84),g=c(85),h=1..toFixed,i=Math.floor,j=[0,0,0,0,0,0],k="Number.toFixed: incorrect invocation!",l="0",m=function(a,b){for(var c=-1,d=b;++c<6;)d+=a*j[c],j[c]=d%1e7,d=i(d/1e7)},n=function(a){for(var b=6,c=0;--b>=0;)c+=j[b],j[b]=i(c/a),c=c%a*1e7},o=function(){for(var a=6,b="";--a>=0;)if(""!==b||0===a||0!==j[a]){var c=String(j[a]);b=""===b?c:b+g.call(l,7-c.length)+c}return b},p=function(a,b,c){return 0===b?c:b%2===1?p(a,b-1,c*a):p(a*a,b/2,c)},q=function(a){for(var b=0,c=a;c>=4096;)b+=12,c/=4096;for(;c>=2;)b+=1,c/=2;return b};d(d.P+d.F*(!!h&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!c(5)(function(){h.call({})})),"Number",{toFixed:function toFixed(a){var b,c,d,h,i=f(this,k),j=e(a),r="",s=l;if(j<0||j>20)throw RangeError(k);if(i!=i)return"NaN";if(i<=-1e21||i>=1e21)return String(i);if(i<0&&(r="-",i=-i),i>1e-21)if(b=q(i*p(2,69,1))-69,c=b<0?i*p(2,-b,1):i/p(2,b,1),c*=4503599627370496,b=52-b,b>0){for(m(0,c),d=j;d>=7;)m(1e7,0),d-=7;for(m(p(10,d,1),0),d=b-1;d>=23;)n(1<<23),d-=23;n(1<<d),m(1,1),n(2),s=o()}else m(0,c),m(1<<-b,0),s=o()+g.call(l,j);return j>0?(h=s.length,s=r+(h<=j?"0."+g.call(l,j-h)+s:s.slice(0,h-j)+"."+s.slice(h-j))):s=r+s,s}})},function(a,b,c){var d=c(32);a.exports=function(a,b){if("number"!=typeof a&&"Number"!=d(a))throw TypeError(b);return+a}},function(a,b,c){var d=c(36),e=c(33);a.exports=function repeat(a){var b=String(e(this)),c="",f=d(a);if(f<0||f==1/0)throw RangeError("Count can't be negative");for(;f>0;(f>>>=1)&&(b+=b))1&f&&(c+=b);return c}},function(a,b,d){var e=d(6),f=d(5),g=d(84),h=1..toPrecision;e(e.P+e.F*(f(function(){return"1"!==h.call(1,c)})||!f(function(){h.call({})})),"Number",{toPrecision:function toPrecision(a){var b=g(this,"Number#toPrecision: incorrect invocation!");return a===c?h.call(b):h.call(b,a)}})},function(a,b,c){var d=c(6);d(d.S,"Number",{EPSILON:Math.pow(2,-52)})},function(a,b,c){var d=c(6),e=c(2).isFinite;d(d.S,"Number",{isFinite:function isFinite(a){return"number"==typeof a&&e(a)}})},function(a,b,c){var d=c(6);d(d.S,"Number",{isInteger:c(90)})},function(a,b,c){var d=c(11),e=Math.floor;a.exports=function isInteger(a){return!d(a)&&isFinite(a)&&e(a)===a}},function(a,b,c){var d=c(6);d(d.S,"Number",{isNaN:function isNaN(a){return a!=a}})},function(a,b,c){var d=c(6),e=c(90),f=Math.abs;d(d.S,"Number",{isSafeInteger:function isSafeInteger(a){return e(a)&&f(a)<=9007199254740991}})},function(a,b,c){var d=c(6);d(d.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(a,b,c){var d=c(6);d(d.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(a,b,c){var d=c(6),e=c(96);d(d.S+d.F*(Number.parseFloat!=e),"Number",{parseFloat:e})},function(a,b,c){var d=c(2).parseFloat,e=c(81).trim;a.exports=1/d(c(82)+"-0")!==-(1/0)?function parseFloat(a){var b=e(String(a),3),c=d(b);return 0===c&&"-"==b.charAt(0)?-0:c}:d},function(a,b,c){var d=c(6),e=c(98);d(d.S+d.F*(Number.parseInt!=e),"Number",{parseInt:e})},function(a,b,c){var d=c(2).parseInt,e=c(81).trim,f=c(82),g=/^[\-+]?0[xX]/;a.exports=8!==d(f+"08")||22!==d(f+"0x16")?function parseInt(a,b){var c=e(String(a),3);return d(c,b>>>0||(g.test(c)?16:10))}:d},function(a,b,c){var d=c(6),e=c(98);d(d.G+d.F*(parseInt!=e),{parseInt:e})},function(a,b,c){var d=c(6),e=c(96);d(d.G+d.F*(parseFloat!=e),{parseFloat:e})},function(a,b,c){var d=c(6),e=c(102),f=Math.sqrt,g=Math.acosh;d(d.S+d.F*!(g&&710==Math.floor(g(Number.MAX_VALUE))&&g(1/0)==1/0),"Math",{acosh:function acosh(a){return(a=+a)<1?NaN:a>94906265.62425156?Math.log(a)+Math.LN2:e(a-1+f(a-1)*f(a+1))}})},function(a,b){a.exports=Math.log1p||function log1p(a){return(a=+a)>-1e-8&&a<1e-8?a-a*a/2:Math.log(1+a)}},function(a,b,c){function asinh(a){return isFinite(a=+a)&&0!=a?a<0?-asinh(-a):Math.log(a+Math.sqrt(a*a+1)):a}var d=c(6),e=Math.asinh;d(d.S+d.F*!(e&&1/e(0)>0),"Math",{asinh:asinh})},function(a,b,c){var d=c(6),e=Math.atanh;d(d.S+d.F*!(e&&1/e(-0)<0),"Math",{atanh:function atanh(a){return 0==(a=+a)?a:Math.log((1+a)/(1-a))/2}})},function(a,b,c){var d=c(6),e=c(106);d(d.S,"Math",{cbrt:function cbrt(a){return e(a=+a)*Math.pow(Math.abs(a),1/3)}})},function(a,b){a.exports=Math.sign||function sign(a){return 0==(a=+a)||a!=a?a:a<0?-1:1}},function(a,b,c){var d=c(6);d(d.S,"Math",{clz32:function clz32(a){return(a>>>=0)?31-Math.floor(Math.log(a+.5)*Math.LOG2E):32}})},function(a,b,c){var d=c(6),e=Math.exp;d(d.S,"Math",{cosh:function cosh(a){return(e(a=+a)+e(-a))/2}})},function(a,b,c){var d=c(6),e=c(110);d(d.S+d.F*(e!=Math.expm1),"Math",{expm1:e})},function(a,b){var c=Math.expm1;a.exports=!c||c(10)>22025.465794806718||c(10)<22025.465794806718||c(-2e-17)!=-2e-17?function expm1(a){return 0==(a=+a)?a:a>-1e-6&&a<1e-6?a+a*a/2:Math.exp(a)-1}:c},function(a,b,c){var d=c(6),e=c(106),f=Math.pow,g=f(2,-52),h=f(2,-23),i=f(2,127)*(2-h),j=f(2,-126),k=function(a){return a+1/g-1/g};d(d.S,"Math",{fround:function fround(a){var b,c,d=Math.abs(a),f=e(a);return d<j?f*k(d/j/h)*j*h:(b=(1+h/g)*d,c=b-(b-d),c>i||c!=c?f*(1/0):f*c)}})},function(a,b,c){var d=c(6),e=Math.abs;d(d.S,"Math",{hypot:function hypot(a,b){for(var c,d,f=0,g=0,h=arguments.length,i=0;g<h;)c=e(arguments[g++]),i<c?(d=i/c,f=f*d*d+1,i=c):c>0?(d=c/i,f+=d*d):f+=c;return i===1/0?1/0:i*Math.sqrt(f)}})},function(a,b,c){var d=c(6),e=Math.imul;d(d.S+d.F*c(5)(function(){return e(4294967295,5)!=-5||2!=e.length}),"Math",{imul:function imul(a,b){var c=65535,d=+a,e=+b,f=c&d,g=c&e;return 0|f*g+((c&d>>>16)*g+f*(c&e>>>16)<<16>>>0)}})},function(a,b,c){var d=c(6);d(d.S,"Math",{log10:function log10(a){return Math.log(a)/Math.LN10}})},function(a,b,c){var d=c(6);d(d.S,"Math",{log1p:c(102)})},function(a,b,c){var d=c(6);d(d.S,"Math",{log2:function log2(a){return Math.log(a)/Math.LN2}})},function(a,b,c){var d=c(6);d(d.S,"Math",{sign:c(106)})},function(a,b,c){var d=c(6),e=c(110),f=Math.exp;d(d.S+d.F*c(5)(function(){return!Math.sinh(-2e-17)!=-2e-17}),"Math",{sinh:function sinh(a){return Math.abs(a=+a)<1?(e(a)-e(-a))/2:(f(a-1)-f(-a-1))*(Math.E/2)}})},function(a,b,c){var d=c(6),e=c(110),f=Math.exp;d(d.S,"Math",{tanh:function tanh(a){var b=e(a=+a),c=e(-a);return b==1/0?1:c==1/0?-1:(b-c)/(f(a)+f(-a))}})},function(a,b,c){var d=c(6);d(d.S,"Math",{trunc:function trunc(a){return(a>0?Math.floor:Math.ceil)(a)}})},function(a,b,c){var d=c(6),e=c(37),f=String.fromCharCode,g=String.fromCodePoint;d(d.S+d.F*(!!g&&1!=g.length),"String",{fromCodePoint:function fromCodePoint(a){for(var b,c=[],d=arguments.length,g=0;d>g;){if(b=+arguments[g++],e(b,1114111)!==b)throw RangeError(b+" is not a valid code point");c.push(b<65536?f(b):f(((b-=65536)>>10)+55296,b%1024+56320))}return c.join("")}})},function(a,b,c){var d=c(6),e=c(30),f=c(35);d(d.S,"String",{raw:function raw(a){for(var b=e(a.raw),c=f(b.length),d=arguments.length,g=[],h=0;c>h;)g.push(String(b[h++])),h<d&&g.push(String(arguments[h]));return g.join("")}})},function(a,b,c){c(81)("trim",function(a){return function trim(){return a(this,3)}})},function(a,b,c){var d=c(6),e=c(125)(!1);d(d.P,"String",{codePointAt:function codePointAt(a){return e(this,a)}})},function(a,b,d){var e=d(36),f=d(33);a.exports=function(a){return function(b,d){var g,h,i=String(f(b)),j=e(d),k=i.length;return j<0||j>=k?a?"":c:(g=i.charCodeAt(j),g<55296||g>56319||j+1===k||(h=i.charCodeAt(j+1))<56320||h>57343?a?i.charAt(j):g:a?i.slice(j,j+2):(g-55296<<10)+(h-56320)+65536)}}},function(a,b,d){var e=d(6),f=d(35),g=d(127),h="endsWith",i=""[h];e(e.P+e.F*d(129)(h),"String",{endsWith:function endsWith(a){var b=g(this,a,h),d=arguments.length>1?arguments[1]:c,e=f(b.length),j=d===c?e:Math.min(f(d),e),k=String(a);return i?i.call(b,k,j):b.slice(j-k.length,j)===k}})},function(a,b,c){var d=c(128),e=c(33);a.exports=function(a,b,c){if(d(b))throw TypeError("String#"+c+" doesn't accept regex!");return String(e(a))}},function(a,b,d){var e=d(11),f=d(32),g=d(23)("match");a.exports=function(a){var b;return e(a)&&((b=a[g])!==c?!!b:"RegExp"==f(a))}},function(a,b,c){var d=c(23)("match");a.exports=function(a){var b=/./;try{"/./"[a](b)}catch(c){try{return b[d]=!1,!"/./"[a](b)}catch(e){}}return!0}},function(a,b,d){var e=d(6),f=d(127),g="includes";e(e.P+e.F*d(129)(g),"String",{includes:function includes(a){return!!~f(this,a,g).indexOf(a,arguments.length>1?arguments[1]:c)}})},function(a,b,c){var d=c(6);d(d.P,"String",{repeat:c(85)})},function(a,b,d){var e=d(6),f=d(35),g=d(127),h="startsWith",i=""[h];e(e.P+e.F*d(129)(h),"String",{startsWith:function startsWith(a){var b=g(this,a,h),d=f(Math.min(arguments.length>1?arguments[1]:c,b.length)),e=String(a);return i?i.call(b,e,d):b.slice(d,d+e.length)===e}})},function(a,b,d){var e=d(125)(!0);d(134)(String,"String",function(a){this._t=String(a),this._i=0},function(){var a,b=this._t,d=this._i;return d>=b.length?{value:c,done:!0}:(a=e(b,d),this._i+=a.length,{value:a,done:!1})})},function(a,b,d){var e=d(26),f=d(6),g=d(16),h=d(8),i=d(3),j=d(135),k=d(136),l=d(22),m=d(57),n=d(23)("iterator"),o=!([].keys&&"next"in[].keys()),p="@@iterator",q="keys",r="values",s=function(){return this};a.exports=function(a,b,d,t,u,v,w){k(d,b,t);var x,y,z,A=function(a){if(!o&&a in E)return E[a];switch(a){case q:return function keys(){return new d(this,a)};case r:return function values(){return new d(this,a)}}return function entries(){return new d(this,a)}},B=b+" Iterator",C=u==r,D=!1,E=a.prototype,F=E[n]||E[p]||u&&E[u],G=F||A(u),H=u?C?A("entries"):G:c,I="Array"==b?E.entries||F:F;if(I&&(z=m(I.call(new a)),z!==Object.prototype&&(l(z,B,!0),e||i(z,n)||h(z,n,s))),C&&F&&F.name!==r&&(D=!0,G=function values(){return F.call(this)}),e&&!w||!o&&!D&&E[n]||h(E,n,G),j[b]=G,j[B]=s,u)if(x={values:C?G:A(r),keys:v?G:A(q),entries:H},w)for(y in x)y in E||g(E,y,x[y]);else f(f.P+f.F*(o||D),b,x);return x}},function(a,b){a.exports={}},function(a,b,c){var d=c(44),e=c(15),f=c(22),g={};c(8)(g,c(23)("iterator"),function(){return this}),a.exports=function(a,b,c){a.prototype=d(g,{next:e(1,c)}),f(a,b+" Iterator")}},function(a,b,c){c(138)("anchor",function(a){return function anchor(b){return a(this,"a","name",b)}})},function(a,b,c){var d=c(6),e=c(5),f=c(33),g=/"/g,h=function(a,b,c,d){var e=String(f(a)),h="<"+b;return""!==c&&(h+=" "+c+'="'+String(d).replace(g,"&quot;")+'"'),h+">"+e+"</"+b+">"};a.exports=function(a,b){var c={};c[a]=b(h),d(d.P+d.F*e(function(){var b=""[a]('"');return b!==b.toLowerCase()||b.split('"').length>3}),"String",c)}},function(a,b,c){c(138)("big",function(a){return function big(){return a(this,"big","","")}})},function(a,b,c){c(138)("blink",function(a){return function blink(){return a(this,"blink","","")}})},function(a,b,c){c(138)("bold",function(a){return function bold(){return a(this,"b","","")}})},function(a,b,c){c(138)("fixed",function(a){return function fixed(){return a(this,"tt","","")}})},function(a,b,c){c(138)("fontcolor",function(a){return function fontcolor(b){return a(this,"font","color",b)}})},function(a,b,c){c(138)("fontsize",function(a){return function fontsize(b){return a(this,"font","size",b)}})},function(a,b,c){c(138)("italics",function(a){return function italics(){return a(this,"i","","")}})},function(a,b,c){c(138)("link",function(a){return function link(b){return a(this,"a","href",b)}})},function(a,b,c){c(138)("small",function(a){return function small(){return a(this,"small","","")}})},function(a,b,c){c(138)("strike",function(a){return function strike(){return a(this,"strike","","")}})},function(a,b,c){c(138)("sub",function(a){return function sub(){return a(this,"sub","","")}})},function(a,b,c){c(138)("sup",function(a){return function sup(){return a(this,"sup","","")}})},function(a,b,c){var d=c(6);d(d.S,"Array",{isArray:c(43)})},function(a,b,d){var e=d(18),f=d(6),g=d(56),h=d(153),i=d(154),j=d(35),k=d(155),l=d(156);f(f.S+f.F*!d(157)(function(a){Array.from(a)}),"Array",{from:function from(a){var b,d,f,m,n=g(a),o="function"==typeof this?this:Array,p=arguments.length,q=p>1?arguments[1]:c,r=q!==c,s=0,t=l(n);if(r&&(q=e(q,p>2?arguments[2]:c,2)),t==c||o==Array&&i(t))for(b=j(n.length),d=new o(b);b>s;s++)k(d,s,r?q(n[s],s):n[s]);else for(m=t.call(n),d=new o;!(f=m.next()).done;s++)k(d,s,r?h(m,q,[f.value,s],!0):f.value);return d.length=s,d}})},function(a,b,d){var e=d(10);a.exports=function(a,b,d,f){try{return f?b(e(d)[0],d[1]):b(d)}catch(g){var h=a["return"];throw h!==c&&e(h.call(a)),g}}},function(a,b,d){var e=d(135),f=d(23)("iterator"),g=Array.prototype;a.exports=function(a){return a!==c&&(e.Array===a||g[f]===a)}},function(a,b,c){var d=c(9),e=c(15);a.exports=function(a,b,c){b in a?d.f(a,b,e(0,c)):a[b]=c}},function(a,b,d){var e=d(73),f=d(23)("iterator"),g=d(135);a.exports=d(7).getIteratorMethod=function(a){
+if(a!=c)return a[f]||a["@@iterator"]||g[e(a)]}},function(a,b,c){var d=c(23)("iterator"),e=!1;try{var f=[7][d]();f["return"]=function(){e=!0},Array.from(f,function(){throw 2})}catch(g){}a.exports=function(a,b){if(!b&&!e)return!1;var c=!1;try{var f=[7],g=f[d]();g.next=function(){return{done:c=!0}},f[d]=function(){return g},a(f)}catch(h){}return c}},function(a,b,c){var d=c(6),e=c(155);d(d.S+d.F*c(5)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),"Array",{of:function of(){for(var a=0,b=arguments.length,c=new("function"==typeof this?this:Array)(b);b>a;)e(c,a,arguments[a++]);return c.length=b,c}})},function(a,b,d){var e=d(6),f=d(30),g=[].join;e(e.P+e.F*(d(31)!=Object||!d(160)(g)),"Array",{join:function join(a){return g.call(f(this),a===c?",":a)}})},function(a,b,c){var d=c(5);a.exports=function(a,b){return!!a&&d(function(){b?a.call(null,function(){},1):a.call(null)})}},function(a,b,d){var e=d(6),f=d(46),g=d(32),h=d(37),i=d(35),j=[].slice;e(e.P+e.F*d(5)(function(){f&&j.call(f)}),"Array",{slice:function slice(a,b){var d=i(this.length),e=g(this);if(b=b===c?d:b,"Array"==e)return j.call(this,a,b);for(var f=h(a,d),k=h(b,d),l=i(k-f),m=Array(l),n=0;n<l;n++)m[n]="String"==e?this.charAt(f+n):this[f+n];return m}})},function(a,b,d){var e=d(6),f=d(19),g=d(56),h=d(5),i=[].sort,j=[1,2,3];e(e.P+e.F*(h(function(){j.sort(c)})||!h(function(){j.sort(null)})||!d(160)(i)),"Array",{sort:function sort(a){return a===c?i.call(g(this)):i.call(g(this),f(a))}})},function(a,b,c){var d=c(6),e=c(164)(0),f=c(160)([].forEach,!0);d(d.P+d.F*!f,"Array",{forEach:function forEach(a){return e(this,a,arguments[1])}})},function(a,b,d){var e=d(18),f=d(31),g=d(56),h=d(35),i=d(165);a.exports=function(a,b){var d=1==a,j=2==a,k=3==a,l=4==a,m=6==a,n=5==a||m,o=b||i;return function(b,i,p){for(var q,r,s=g(b),t=f(s),u=e(i,p,3),v=h(t.length),w=0,x=d?o(b,v):j?o(b,0):c;v>w;w++)if((n||w in t)&&(q=t[w],r=u(q,w,s),a))if(d)x[w]=r;else if(r)switch(a){case 3:return!0;case 5:return q;case 6:return w;case 2:x.push(q)}else if(l)return!1;return m?-1:k||l?l:x}}},function(a,b,c){var d=c(166);a.exports=function(a,b){return new(d(a))(b)}},function(a,b,d){var e=d(11),f=d(43),g=d(23)("species");a.exports=function(a){var b;return f(a)&&(b=a.constructor,"function"!=typeof b||b!==Array&&!f(b.prototype)||(b=c),e(b)&&(b=b[g],null===b&&(b=c))),b===c?Array:b}},function(a,b,c){var d=c(6),e=c(164)(1);d(d.P+d.F*!c(160)([].map,!0),"Array",{map:function map(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(164)(2);d(d.P+d.F*!c(160)([].filter,!0),"Array",{filter:function filter(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(164)(3);d(d.P+d.F*!c(160)([].some,!0),"Array",{some:function some(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(164)(4);d(d.P+d.F*!c(160)([].every,!0),"Array",{every:function every(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(172);d(d.P+d.F*!c(160)([].reduce,!0),"Array",{reduce:function reduce(a){return e(this,a,arguments.length,arguments[1],!1)}})},function(a,b,c){var d=c(19),e=c(56),f=c(31),g=c(35);a.exports=function(a,b,c,h,i){d(b);var j=e(a),k=f(j),l=g(j.length),m=i?l-1:0,n=i?-1:1;if(c<2)for(;;){if(m in k){h=k[m],m+=n;break}if(m+=n,i?m<0:l<=m)throw TypeError("Reduce of empty array with no initial value")}for(;i?m>=0:l>m;m+=n)m in k&&(h=b(h,k[m],m,j));return h}},function(a,b,c){var d=c(6),e=c(172);d(d.P+d.F*!c(160)([].reduceRight,!0),"Array",{reduceRight:function reduceRight(a){return e(this,a,arguments.length,arguments[1],!0)}})},function(a,b,c){var d=c(6),e=c(34)(!1),f=[].indexOf,g=!!f&&1/[1].indexOf(1,-0)<0;d(d.P+d.F*(g||!c(160)(f)),"Array",{indexOf:function indexOf(a){return g?f.apply(this,arguments)||0:e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(30),f=c(36),g=c(35),h=[].lastIndexOf,i=!!h&&1/[1].lastIndexOf(1,-0)<0;d(d.P+d.F*(i||!c(160)(h)),"Array",{lastIndexOf:function lastIndexOf(a){if(i)return h.apply(this,arguments)||0;var b=e(this),c=g(b.length),d=c-1;for(arguments.length>1&&(d=Math.min(d,f(arguments[1]))),d<0&&(d=c+d);d>=0;d--)if(d in b&&b[d]===a)return d||0;return-1}})},function(a,b,c){var d=c(6);d(d.P,"Array",{copyWithin:c(177)}),c(178)("copyWithin")},function(a,b,d){var e=d(56),f=d(37),g=d(35);a.exports=[].copyWithin||function copyWithin(a,b){var d=e(this),h=g(d.length),i=f(a,h),j=f(b,h),k=arguments.length>2?arguments[2]:c,l=Math.min((k===c?h:f(k,h))-j,h-i),m=1;for(j<i&&i<j+l&&(m=-1,j+=l-1,i+=l-1);l-- >0;)j in d?d[i]=d[j]:delete d[i],i+=m,j+=m;return d}},function(a,b,d){var e=d(23)("unscopables"),f=Array.prototype;f[e]==c&&d(8)(f,e,{}),a.exports=function(a){f[e][a]=!0}},function(a,b,c){var d=c(6);d(d.P,"Array",{fill:c(180)}),c(178)("fill")},function(a,b,d){var e=d(56),f=d(37),g=d(35);a.exports=function fill(a){for(var b=e(this),d=g(b.length),h=arguments.length,i=f(h>1?arguments[1]:c,d),j=h>2?arguments[2]:c,k=j===c?d:f(j,d);k>i;)b[i++]=a;return b}},function(a,b,d){var e=d(6),f=d(164)(5),g="find",h=!0;g in[]&&Array(1)[g](function(){h=!1}),e(e.P+e.F*h,"Array",{find:function find(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(178)(g)},function(a,b,d){var e=d(6),f=d(164)(6),g="findIndex",h=!0;g in[]&&Array(1)[g](function(){h=!1}),e(e.P+e.F*h,"Array",{findIndex:function findIndex(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(178)(g)},function(a,b,d){var e=d(178),f=d(184),g=d(135),h=d(30);a.exports=d(134)(Array,"Array",function(a,b){this._t=h(a),this._i=0,this._k=b},function(){var a=this._t,b=this._k,d=this._i++;return!a||d>=a.length?(this._t=c,f(1)):"keys"==b?f(0,d):"values"==b?f(0,a[d]):f(0,[d,a[d]])},"values"),g.Arguments=g.Array,e("keys"),e("values"),e("entries")},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(a,b,c){c(186)("Array")},function(a,b,c){var d=c(2),e=c(9),f=c(4),g=c(23)("species");a.exports=function(a){var b=d[a];f&&b&&!b[g]&&e.f(b,g,{configurable:!0,get:function(){return this}})}},function(a,b,d){var e=d(2),f=d(80),g=d(9).f,h=d(48).f,i=d(128),j=d(188),k=e.RegExp,l=k,m=k.prototype,n=/a/g,o=/a/g,p=new k(n)!==n;if(d(4)&&(!p||d(5)(function(){return o[d(23)("match")]=!1,k(n)!=n||k(o)==o||"/a/i"!=k(n,"i")}))){k=function RegExp(a,b){var d=this instanceof k,e=i(a),g=b===c;return!d&&e&&a.constructor===k&&g?a:f(p?new l(e&&!g?a.source:a,b):l((e=a instanceof k)?a.source:a,e&&g?j.call(a):b),d?this:m,k)};for(var q=(function(a){a in k||g(k,a,{configurable:!0,get:function(){return l[a]},set:function(b){l[a]=b}})}),r=h(l),s=0;r.length>s;)q(r[s++]);m.constructor=k,k.prototype=m,d(16)(e,"RegExp",k)}d(186)("RegExp")},function(a,b,c){var d=c(10);a.exports=function(){var a=d(this),b="";return a.global&&(b+="g"),a.ignoreCase&&(b+="i"),a.multiline&&(b+="m"),a.unicode&&(b+="u"),a.sticky&&(b+="y"),b}},function(a,b,d){d(190);var e=d(10),f=d(188),g=d(4),h="toString",i=/./[h],j=function(a){d(16)(RegExp.prototype,h,a,!0)};d(5)(function(){return"/a/b"!=i.call({source:"a",flags:"b"})})?j(function toString(){var a=e(this);return"/".concat(a.source,"/","flags"in a?a.flags:!g&&a instanceof RegExp?f.call(a):c)}):i.name!=h&&j(function toString(){return i.call(this)})},function(a,b,c){c(4)&&"g"!=/./g.flags&&c(9).f(RegExp.prototype,"flags",{configurable:!0,get:c(188)})},function(a,b,d){d(192)("match",1,function(a,b,d){return[function match(d){var e=a(this),f=d==c?c:d[b];return f!==c?f.call(d,e):new RegExp(d)[b](String(e))},d]})},function(a,b,c){var d=c(8),e=c(16),f=c(5),g=c(33),h=c(23);a.exports=function(a,b,c){var i=h(a),j=c(g,i,""[a]),k=j[0],l=j[1];f(function(){var b={};return b[i]=function(){return 7},7!=""[a](b)})&&(e(String.prototype,a,k),d(RegExp.prototype,i,2==b?function(a,b){return l.call(a,this,b)}:function(a){return l.call(a,this)}))}},function(a,b,d){d(192)("replace",2,function(a,b,d){return[function replace(e,f){var g=a(this),h=e==c?c:e[b];return h!==c?h.call(e,g,f):d.call(String(g),e,f)},d]})},function(a,b,d){d(192)("search",1,function(a,b,d){return[function search(d){var e=a(this),f=d==c?c:d[b];return f!==c?f.call(d,e):new RegExp(d)[b](String(e))},d]})},function(a,b,d){d(192)("split",2,function(a,b,e){var f=d(128),g=e,h=[].push,i="split",j="length",k="lastIndex";if("c"=="abbc"[i](/(b)*/)[1]||4!="test"[i](/(?:)/,-1)[j]||2!="ab"[i](/(?:ab)*/)[j]||4!="."[i](/(.?)(.?)/)[j]||"."[i](/()()/)[j]>1||""[i](/.?/)[j]){var l=/()??/.exec("")[1]===c;e=function(a,b){var d=String(this);if(a===c&&0===b)return[];if(!f(a))return g.call(d,a,b);var e,i,m,n,o,p=[],q=(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.unicode?"u":"")+(a.sticky?"y":""),r=0,s=b===c?4294967295:b>>>0,t=new RegExp(a.source,q+"g");for(l||(e=new RegExp("^"+t.source+"$(?!\\s)",q));(i=t.exec(d))&&(m=i.index+i[0][j],!(m>r&&(p.push(d.slice(r,i.index)),!l&&i[j]>1&&i[0].replace(e,function(){for(o=1;o<arguments[j]-2;o++)arguments[o]===c&&(i[o]=c)}),i[j]>1&&i.index<d[j]&&h.apply(p,i.slice(1)),n=i[0][j],r=m,p[j]>=s)));)t[k]===i.index&&t[k]++;return r===d[j]?!n&&t.test("")||p.push(""):p.push(d.slice(r)),p[j]>s?p.slice(0,s):p}}else"0"[i](c,0)[j]&&(e=function(a,b){return a===c&&0===b?[]:g.call(this,a,b)});return[function split(d,f){var g=a(this),h=d==c?c:d[b];return h!==c?h.call(d,g,f):e.call(String(g),d,f)},e]})},function(a,b,d){var e,f,g,h=d(26),i=d(2),j=d(18),k=d(73),l=d(6),m=d(11),n=d(19),o=d(197),p=d(198),q=d(199),r=d(200).set,s=d(201)(),t="Promise",u=i.TypeError,v=i.process,w=i[t],v=i.process,x="process"==k(v),y=function(){},z=!!function(){try{var a=w.resolve(1),b=(a.constructor={})[d(23)("species")]=function(a){a(y,y)};return(x||"function"==typeof PromiseRejectionEvent)&&a.then(y)instanceof b}catch(c){}}(),A=function(a,b){return a===b||a===w&&b===g},B=function(a){var b;return!(!m(a)||"function"!=typeof(b=a.then))&&b},C=function(a){return A(w,a)?new D(a):new f(a)},D=f=function(a){var b,d;this.promise=new a(function(a,e){if(b!==c||d!==c)throw u("Bad Promise constructor");b=a,d=e}),this.resolve=n(b),this.reject=n(d)},E=function(a){try{a()}catch(b){return{error:b}}},F=function(a,b){if(!a._n){a._n=!0;var c=a._c;s(function(){for(var d=a._v,e=1==a._s,f=0,g=function(b){var c,f,g=e?b.ok:b.fail,h=b.resolve,i=b.reject,j=b.domain;try{g?(e||(2==a._h&&I(a),a._h=1),g===!0?c=d:(j&&j.enter(),c=g(d),j&&j.exit()),c===b.promise?i(u("Promise-chain cycle")):(f=B(c))?f.call(c,h,i):h(c)):i(d)}catch(k){i(k)}};c.length>f;)g(c[f++]);a._c=[],a._n=!1,b&&!a._h&&G(a)})}},G=function(a){r.call(i,function(){var b,d,e,f=a._v;if(H(a)&&(b=E(function(){x?v.emit("unhandledRejection",f,a):(d=i.onunhandledrejection)?d({promise:a,reason:f}):(e=i.console)&&e.error&&e.error("Unhandled promise rejection",f)}),a._h=x||H(a)?2:1),a._a=c,b)throw b.error})},H=function(a){if(1==a._h)return!1;for(var b,c=a._a||a._c,d=0;c.length>d;)if(b=c[d++],b.fail||!H(b.promise))return!1;return!0},I=function(a){r.call(i,function(){var b;x?v.emit("rejectionHandled",a):(b=i.onrejectionhandled)&&b({promise:a,reason:a._v})})},J=function(a){var b=this;b._d||(b._d=!0,b=b._w||b,b._v=a,b._s=2,b._a||(b._a=b._c.slice()),F(b,!0))},K=function(a){var b,c=this;if(!c._d){c._d=!0,c=c._w||c;try{if(c===a)throw u("Promise can't be resolved itself");(b=B(a))?s(function(){var d={_w:c,_d:!1};try{b.call(a,j(K,d,1),j(J,d,1))}catch(e){J.call(d,e)}}):(c._v=a,c._s=1,F(c,!1))}catch(d){J.call({_w:c,_d:!1},d)}}};z||(w=function Promise(a){o(this,w,t,"_h"),n(a),e.call(this);try{a(j(K,this,1),j(J,this,1))}catch(b){J.call(this,b)}},e=function Promise(a){this._c=[],this._a=c,this._s=0,this._d=!1,this._v=c,this._h=0,this._n=!1},e.prototype=d(202)(w.prototype,{then:function then(a,b){var d=C(q(this,w));return d.ok="function"!=typeof a||a,d.fail="function"==typeof b&&b,d.domain=x?v.domain:c,this._c.push(d),this._a&&this._a.push(d),this._s&&F(this,!1),d.promise},"catch":function(a){return this.then(c,a)}}),D=function(){var a=new e;this.promise=a,this.resolve=j(K,a,1),this.reject=j(J,a,1)}),l(l.G+l.W+l.F*!z,{Promise:w}),d(22)(w,t),d(186)(t),g=d(7)[t],l(l.S+l.F*!z,t,{reject:function reject(a){var b=C(this),c=b.reject;return c(a),b.promise}}),l(l.S+l.F*(h||!z),t,{resolve:function resolve(a){if(a instanceof w&&A(a.constructor,this))return a;var b=C(this),c=b.resolve;return c(a),b.promise}}),l(l.S+l.F*!(z&&d(157)(function(a){w.all(a)["catch"](y)})),t,{all:function all(a){var b=this,d=C(b),e=d.resolve,f=d.reject,g=E(function(){var d=[],g=0,h=1;p(a,!1,function(a){var i=g++,j=!1;d.push(c),h++,b.resolve(a).then(function(a){j||(j=!0,d[i]=a,--h||e(d))},f)}),--h||e(d)});return g&&f(g.error),d.promise},race:function race(a){var b=this,c=C(b),d=c.reject,e=E(function(){p(a,!1,function(a){b.resolve(a).then(c.resolve,d)})});return e&&d(e.error),c.promise}})},function(a,b){a.exports=function(a,b,d,e){if(!(a instanceof b)||e!==c&&e in a)throw TypeError(d+": incorrect invocation!");return a}},function(a,b,c){var d=c(18),e=c(153),f=c(154),g=c(10),h=c(35),i=c(156),j={},k={},b=a.exports=function(a,b,c,l,m){var n,o,p,q,r=m?function(){return a}:i(a),s=d(c,l,b?2:1),t=0;if("function"!=typeof r)throw TypeError(a+" is not iterable!");if(f(r)){for(n=h(a.length);n>t;t++)if(q=b?s(g(o=a[t])[0],o[1]):s(a[t]),q===j||q===k)return q}else for(p=r.call(a);!(o=p.next()).done;)if(q=e(p,s,o.value,b),q===j||q===k)return q};b.BREAK=j,b.RETURN=k},function(a,b,d){var e=d(10),f=d(19),g=d(23)("species");a.exports=function(a,b){var d,h=e(a).constructor;return h===c||(d=e(h)[g])==c?b:f(d)}},function(a,b,c){var d,e,f,g=c(18),h=c(76),i=c(46),j=c(13),k=c(2),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r="onreadystatechange",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function setImmediate(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function clearImmediate(a){delete q[a]},"process"==c(32)(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(e=new o,f=e.port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),a.exports={set:m,clear:n}},function(a,b,d){var e=d(2),f=d(200).set,g=e.MutationObserver||e.WebKitMutationObserver,h=e.process,i=e.Promise,j="process"==d(32)(h);a.exports=function(){var a,b,d,k=function(){var e,f;for(j&&(e=h.domain)&&e.exit();a;){f=a.fn,a=a.next;try{f()}catch(g){throw a?d():b=c,g}}b=c,e&&e.enter()};if(j)d=function(){h.nextTick(k)};else if(g){var l=!0,m=document.createTextNode("");new g(k).observe(m,{characterData:!0}),d=function(){m.data=l=!l}}else if(i&&i.resolve){var n=i.resolve();d=function(){n.then(k)}}else d=function(){f.call(e,k)};return function(e){var f={fn:e,next:c};b&&(b.next=f),a||(a=f,d()),b=f}}},function(a,b,c){var d=c(16);a.exports=function(a,b,c){for(var e in b)d(a,e,b[e],c);return a}},function(a,b,d){var e=d(204);a.exports=d(205)("Map",function(a){return function Map(){return a(this,arguments.length>0?arguments[0]:c)}},{get:function get(a){var b=e.getEntry(this,a);return b&&b.v},set:function set(a,b){return e.def(this,0===a?0:a,b)}},e,!0)},function(a,b,d){var e=d(9).f,f=d(44),g=d(202),h=d(18),i=d(197),j=d(33),k=d(198),l=d(134),m=d(184),n=d(186),o=d(4),p=d(20).fastKey,q=o?"_s":"size",r=function(a,b){var c,d=p(b);if("F"!==d)return a._i[d];for(c=a._f;c;c=c.n)if(c.k==b)return c};a.exports={getConstructor:function(a,b,d,l){var m=a(function(a,e){i(a,m,b,"_i"),a._i=f(null),a._f=c,a._l=c,a[q]=0,e!=c&&k(e,d,a[l],a)});return g(m.prototype,{clear:function clear(){for(var a=this,b=a._i,d=a._f;d;d=d.n)d.r=!0,d.p&&(d.p=d.p.n=c),delete b[d.i];a._f=a._l=c,a[q]=0},"delete":function(a){var b=this,c=r(b,a);if(c){var d=c.n,e=c.p;delete b._i[c.i],c.r=!0,e&&(e.n=d),d&&(d.p=e),b._f==c&&(b._f=d),b._l==c&&(b._l=e),b[q]--}return!!c},forEach:function forEach(a){i(this,m,"forEach");for(var b,d=h(a,arguments.length>1?arguments[1]:c,3);b=b?b.n:this._f;)for(d(b.v,b.k,this);b&&b.r;)b=b.p},has:function has(a){return!!r(this,a)}}),o&&e(m.prototype,"size",{get:function(){return j(this[q])}}),m},def:function(a,b,d){var e,f,g=r(a,b);return g?g.v=d:(a._l=g={i:f=p(b,!0),k:b,v:d,p:e=a._l,n:c,r:!1},a._f||(a._f=g),e&&(e.n=g),a[q]++,"F"!==f&&(a._i[f]=g)),a},getEntry:r,setStrong:function(a,b,d){l(a,b,function(a,b){this._t=a,this._k=b,this._l=c},function(){for(var a=this,b=a._k,d=a._l;d&&d.r;)d=d.p;return a._t&&(a._l=d=d?d.n:a._t._f)?"keys"==b?m(0,d.k):"values"==b?m(0,d.v):m(0,[d.k,d.v]):(a._t=c,m(1))},d?"entries":"values",!d,!0),n(b)}}},function(a,b,d){var e=d(2),f=d(6),g=d(16),h=d(202),i=d(20),j=d(198),k=d(197),l=d(11),m=d(5),n=d(157),o=d(22),p=d(80);a.exports=function(a,b,d,q,r,s){var t=e[a],u=t,v=r?"set":"add",w=u&&u.prototype,x={},y=function(a){var b=w[a];g(w,a,"delete"==a?function(a){return!(s&&!l(a))&&b.call(this,0===a?0:a)}:"has"==a?function has(a){return!(s&&!l(a))&&b.call(this,0===a?0:a)}:"get"==a?function get(a){return s&&!l(a)?c:b.call(this,0===a?0:a)}:"add"==a?function add(a){return b.call(this,0===a?0:a),this}:function set(a,c){return b.call(this,0===a?0:a,c),this})};if("function"==typeof u&&(s||w.forEach&&!m(function(){(new u).entries().next()}))){var z=new u,A=z[v](s?{}:-0,1)!=z,B=m(function(){z.has(1)}),C=n(function(a){new u(a)}),D=!s&&m(function(){for(var a=new u,b=5;b--;)a[v](b,b);return!a.has(-0)});C||(u=b(function(b,d){k(b,u,a);var e=p(new t,b,u);return d!=c&&j(d,r,e[v],e),e}),u.prototype=w,w.constructor=u),(B||D)&&(y("delete"),y("has"),r&&y("get")),(D||A)&&y(v),s&&w.clear&&delete w.clear}else u=q.getConstructor(b,a,r,v),h(u.prototype,d),i.NEED=!0;return o(u,a),x[a]=u,f(f.G+f.W+f.F*(u!=t),x),s||q.setStrong(u,a,r),u}},function(a,b,d){var e=d(204);a.exports=d(205)("Set",function(a){return function Set(){return a(this,arguments.length>0?arguments[0]:c)}},{add:function add(a){return e.def(this,a=0===a?0:a,a)}},e)},function(a,b,d){var e,f=d(164)(0),g=d(16),h=d(20),i=d(67),j=d(208),k=d(11),l=h.getWeak,m=Object.isExtensible,n=j.ufstore,o={},p=function(a){return function WeakMap(){return a(this,arguments.length>0?arguments[0]:c)}},q={get:function get(a){if(k(a)){var b=l(a);return b===!0?n(this).get(a):b?b[this._i]:c}},set:function set(a,b){return j.def(this,a,b)}},r=a.exports=d(205)("WeakMap",p,q,j,!0,!0);7!=(new r).set((Object.freeze||Object)(o),7).get(o)&&(e=j.getConstructor(p),i(e.prototype,q),h.NEED=!0,f(["delete","has","get","set"],function(a){var b=r.prototype,c=b[a];g(b,a,function(b,d){if(k(b)&&!m(b)){this._f||(this._f=new e);var f=this._f[a](b,d);return"set"==a?this:f}return c.call(this,b,d)})}))},function(a,b,d){var e=d(202),f=d(20).getWeak,g=d(10),h=d(11),i=d(197),j=d(198),k=d(164),l=d(3),m=k(5),n=k(6),o=0,p=function(a){return a._l||(a._l=new q)},q=function(){this.a=[]},r=function(a,b){return m(a.a,function(a){return a[0]===b})};q.prototype={get:function(a){var b=r(this,a);if(b)return b[1]},has:function(a){return!!r(this,a)},set:function(a,b){var c=r(this,a);c?c[1]=b:this.a.push([a,b])},"delete":function(a){var b=n(this.a,function(b){return b[0]===a});return~b&&this.a.splice(b,1),!!~b}},a.exports={getConstructor:function(a,b,d,g){var k=a(function(a,e){i(a,k,b,"_i"),a._i=o++,a._l=c,e!=c&&j(e,d,a[g],a)});return e(k.prototype,{"delete":function(a){if(!h(a))return!1;var b=f(a);return b===!0?p(this)["delete"](a):b&&l(b,this._i)&&delete b[this._i]},has:function has(a){if(!h(a))return!1;var b=f(a);return b===!0?p(this).has(a):b&&l(b,this._i)}}),k},def:function(a,b,c){var d=f(g(b),!0);return d===!0?p(a).set(b,c):d[a._i]=c,a},ufstore:p}},function(a,b,d){var e=d(208);d(205)("WeakSet",function(a){return function WeakSet(){return a(this,arguments.length>0?arguments[0]:c)}},{add:function add(a){return e.def(this,a,!0)}},e,!1,!0)},function(a,b,c){var d=c(6),e=c(19),f=c(10),g=(c(2).Reflect||{}).apply,h=Function.apply;d(d.S+d.F*!c(5)(function(){g(function(){})}),"Reflect",{apply:function apply(a,b,c){var d=e(a),i=f(c);return g?g(d,b,i):h.call(d,b,i)}})},function(a,b,c){var d=c(6),e=c(44),f=c(19),g=c(10),h=c(11),i=c(5),j=c(75),k=(c(2).Reflect||{}).construct,l=i(function(){function F(){}return!(k(function(){},[],F)instanceof F)}),m=!i(function(){k(function(){})});d(d.S+d.F*(l||m),"Reflect",{construct:function construct(a,b){f(a),g(b);var c=arguments.length<3?a:f(arguments[2]);if(m&&!l)return k(a,b,c);if(a==c){switch(b.length){case 0:return new a;case 1:return new a(b[0]);case 2:return new a(b[0],b[1]);case 3:return new a(b[0],b[1],b[2]);case 4:return new a(b[0],b[1],b[2],b[3])}var d=[null];return d.push.apply(d,b),new(j.apply(a,d))}var i=c.prototype,n=e(h(i)?i:Object.prototype),o=Function.apply.call(a,n,b);return h(o)?o:n}})},function(a,b,c){var d=c(9),e=c(6),f=c(10),g=c(14);e(e.S+e.F*c(5)(function(){Reflect.defineProperty(d.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function defineProperty(a,b,c){f(a),b=g(b,!0),f(c);try{return d.f(a,b,c),!0}catch(e){return!1}}})},function(a,b,c){var d=c(6),e=c(49).f,f=c(10);d(d.S,"Reflect",{deleteProperty:function deleteProperty(a,b){var c=e(f(a),b);return!(c&&!c.configurable)&&delete a[b]}})},function(a,b,d){var e=d(6),f=d(10),g=function(a){this._t=f(a),this._i=0;var b,c=this._k=[];for(b in a)c.push(b)};d(136)(g,"Object",function(){var a,b=this,d=b._k;do if(b._i>=d.length)return{value:c,done:!0};while(!((a=d[b._i++])in b._t));return{value:a,done:!1}}),e(e.S,"Reflect",{enumerate:function enumerate(a){return new g(a)}})},function(a,b,d){function get(a,b){var d,h,k=arguments.length<3?a:arguments[2];return j(a)===k?a[b]:(d=e.f(a,b))?g(d,"value")?d.value:d.get!==c?d.get.call(k):c:i(h=f(a))?get(h,b,k):void 0}var e=d(49),f=d(57),g=d(3),h=d(6),i=d(11),j=d(10);h(h.S,"Reflect",{get:get})},function(a,b,c){var d=c(49),e=c(6),f=c(10);e(e.S,"Reflect",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(a,b){return d.f(f(a),b)}})},function(a,b,c){var d=c(6),e=c(57),f=c(10);d(d.S,"Reflect",{getPrototypeOf:function getPrototypeOf(a){return e(f(a))}})},function(a,b,c){var d=c(6);d(d.S,"Reflect",{has:function has(a,b){return b in a}})},function(a,b,c){var d=c(6),e=c(10),f=Object.isExtensible;d(d.S,"Reflect",{isExtensible:function isExtensible(a){return e(a),!f||f(a)}})},function(a,b,c){var d=c(6);d(d.S,"Reflect",{ownKeys:c(221)})},function(a,b,c){var d=c(48),e=c(41),f=c(10),g=c(2).Reflect;a.exports=g&&g.ownKeys||function ownKeys(a){var b=d.f(f(a)),c=e.f;return c?b.concat(c(a)):b}},function(a,b,c){var d=c(6),e=c(10),f=Object.preventExtensions;d(d.S,"Reflect",{preventExtensions:function preventExtensions(a){e(a);try{return f&&f(a),!0}catch(b){return!1}}})},function(a,b,d){function set(a,b,d){var i,m,n=arguments.length<4?a:arguments[3],o=f.f(k(a),b);if(!o){if(l(m=g(a)))return set(m,b,d,n);o=j(0)}return h(o,"value")?!(o.writable===!1||!l(n))&&(i=f.f(n,b)||j(0),i.value=d,e.f(n,b,i),!0):o.set!==c&&(o.set.call(n,d),!0)}var e=d(9),f=d(49),g=d(57),h=d(3),i=d(6),j=d(15),k=d(10),l=d(11);i(i.S,"Reflect",{set:set})},function(a,b,c){var d=c(6),e=c(71);e&&d(d.S,"Reflect",{setPrototypeOf:function setPrototypeOf(a,b){e.check(a,b);try{return e.set(a,b),!0}catch(c){return!1}}})},function(a,b,c){var d=c(6);d(d.S,"Date",{now:function(){return(new Date).getTime()}})},function(a,b,c){var d=c(6),e=c(56),f=c(14);d(d.P+d.F*c(5)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function toJSON(a){var b=e(this),c=f(b);return"number"!=typeof c||isFinite(c)?b.toISOString():null}})},function(a,b,c){var d=c(6),e=c(5),f=Date.prototype.getTime,g=function(a){return a>9?a:"0"+a};d(d.P+d.F*(e(function(){return"0385-07-25T07:06:39.999Z"!=new Date(-5e13-1).toISOString()})||!e(function(){new Date(NaN).toISOString()})),"Date",{toISOString:function toISOString(){if(!isFinite(f.call(this)))throw RangeError("Invalid time value");var a=this,b=a.getUTCFullYear(),c=a.getUTCMilliseconds(),d=b<0?"-":b>9999?"+":"";return d+("00000"+Math.abs(b)).slice(d?-6:-4)+"-"+g(a.getUTCMonth()+1)+"-"+g(a.getUTCDate())+"T"+g(a.getUTCHours())+":"+g(a.getUTCMinutes())+":"+g(a.getUTCSeconds())+"."+(c>99?c:"0"+g(c))+"Z"}})},function(a,b,c){var d=Date.prototype,e="Invalid Date",f="toString",g=d[f],h=d.getTime;new Date(NaN)+""!=e&&c(16)(d,f,function toString(){var a=h.call(this);return a===a?g.call(this):e})},function(a,b,c){var d=c(23)("toPrimitive"),e=Date.prototype;d in e||c(8)(e,d,c(230))},function(a,b,c){var d=c(10),e=c(14),f="number";a.exports=function(a){if("string"!==a&&a!==f&&"default"!==a)throw TypeError("Incorrect hint");return e(d(this),a!=f)}},function(a,b,d){var e=d(6),f=d(232),g=d(233),h=d(10),i=d(37),j=d(35),k=d(11),l=d(2).ArrayBuffer,m=d(199),n=g.ArrayBuffer,o=g.DataView,p=f.ABV&&l.isView,q=n.prototype.slice,r=f.VIEW,s="ArrayBuffer";e(e.G+e.W+e.F*(l!==n),{ArrayBuffer:n}),e(e.S+e.F*!f.CONSTR,s,{isView:function isView(a){return p&&p(a)||k(a)&&r in a}}),e(e.P+e.U+e.F*d(5)(function(){return!new n(2).slice(1,c).byteLength}),s,{slice:function slice(a,b){if(q!==c&&b===c)return q.call(h(this),a);for(var d=h(this).byteLength,e=i(a,d),f=i(b===c?d:b,d),g=new(m(this,n))(j(f-e)),k=new o(this),l=new o(g),p=0;e<f;)l.setUint8(p++,k.getUint8(e++));return g}}),d(186)(s)},function(a,b,c){for(var d,e=c(2),f=c(8),g=c(17),h=g("typed_array"),i=g("view"),j=!(!e.ArrayBuffer||!e.DataView),k=j,l=0,m=9,n="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<m;)(d=e[n[l++]])?(f(d.prototype,h,!0),f(d.prototype,i,!0)):k=!1;a.exports={ABV:j,CONSTR:k,TYPED:h,VIEW:i}},function(a,b,d){var e=d(2),f=d(4),g=d(26),h=d(232),i=d(8),j=d(202),k=d(5),l=d(197),m=d(36),n=d(35),o=d(48).f,p=d(9).f,q=d(180),r=d(22),s="ArrayBuffer",t="DataView",u="prototype",v="Wrong length!",w="Wrong index!",x=e[s],y=e[t],z=e.Math,A=e.RangeError,B=e.Infinity,C=x,D=z.abs,E=z.pow,F=z.floor,G=z.log,H=z.LN2,I="buffer",J="byteLength",K="byteOffset",L=f?"_b":I,M=f?"_l":J,N=f?"_o":K,O=function(a,b,c){var d,e,f,g=Array(c),h=8*c-b-1,i=(1<<h)-1,j=i>>1,k=23===b?E(2,-24)-E(2,-77):0,l=0,m=a<0||0===a&&1/a<0?1:0;for(a=D(a),a!=a||a===B?(e=a!=a?1:0,d=i):(d=F(G(a)/H),a*(f=E(2,-d))<1&&(d--,f*=2),a+=d+j>=1?k/f:k*E(2,1-j),a*f>=2&&(d++,f/=2),d+j>=i?(e=0,d=i):d+j>=1?(e=(a*f-1)*E(2,b),d+=j):(e=a*E(2,j-1)*E(2,b),d=0));b>=8;g[l++]=255&e,e/=256,b-=8);for(d=d<<b|e,h+=b;h>0;g[l++]=255&d,d/=256,h-=8);return g[--l]|=128*m,g},P=function(a,b,c){var d,e=8*c-b-1,f=(1<<e)-1,g=f>>1,h=e-7,i=c-1,j=a[i--],k=127&j;for(j>>=7;h>0;k=256*k+a[i],i--,h-=8);for(d=k&(1<<-h)-1,k>>=-h,h+=b;h>0;d=256*d+a[i],i--,h-=8);if(0===k)k=1-g;else{if(k===f)return d?NaN:j?-B:B;d+=E(2,b),k-=g}return(j?-1:1)*d*E(2,k-b)},Q=function(a){return a[3]<<24|a[2]<<16|a[1]<<8|a[0]},R=function(a){return[255&a]},S=function(a){return[255&a,a>>8&255]},T=function(a){return[255&a,a>>8&255,a>>16&255,a>>24&255]},U=function(a){return O(a,52,8)},V=function(a){return O(a,23,4)},W=function(a,b,c){p(a[u],b,{get:function(){return this[c]}})},X=function(a,b,c,d){var e=+c,f=m(e);if(e!=f||f<0||f+b>a[M])throw A(w);var g=a[L]._b,h=f+a[N],i=g.slice(h,h+b);return d?i:i.reverse()},Y=function(a,b,c,d,e,f){var g=+c,h=m(g);if(g!=h||h<0||h+b>a[M])throw A(w);for(var i=a[L]._b,j=h+a[N],k=d(+e),l=0;l<b;l++)i[j+l]=k[f?l:b-l-1]},Z=function(a,b){l(a,x,s);var c=+b,d=n(c);if(c!=d)throw A(v);return d};if(h.ABV){if(!k(function(){new x})||!k(function(){new x(.5)})){x=function ArrayBuffer(a){return new C(Z(this,a))};for(var $,_=x[u]=C[u],aa=o(C),ba=0;aa.length>ba;)($=aa[ba++])in x||i(x,$,C[$]);g||(_.constructor=x)}var ca=new y(new x(2)),da=y[u].setInt8;ca.setInt8(0,2147483648),ca.setInt8(1,2147483649),!ca.getInt8(0)&&ca.getInt8(1)||j(y[u],{setInt8:function setInt8(a,b){da.call(this,a,b<<24>>24)},setUint8:function setUint8(a,b){da.call(this,a,b<<24>>24)}},!0)}else x=function ArrayBuffer(a){var b=Z(this,a);this._b=q.call(Array(b),0),this[M]=b},y=function DataView(a,b,d){l(this,y,t),l(a,x,t);var e=a[M],f=m(b);if(f<0||f>e)throw A("Wrong offset!");if(d=d===c?e-f:n(d),f+d>e)throw A(v);this[L]=a,this[N]=f,this[M]=d},f&&(W(x,J,"_l"),W(y,I,"_b"),W(y,J,"_l"),W(y,K,"_o")),j(y[u],{getInt8:function getInt8(a){return X(this,1,a)[0]<<24>>24},getUint8:function getUint8(a){return X(this,1,a)[0]},getInt16:function getInt16(a){var b=X(this,2,a,arguments[1]);return(b[1]<<8|b[0])<<16>>16},getUint16:function getUint16(a){var b=X(this,2,a,arguments[1]);return b[1]<<8|b[0]},getInt32:function getInt32(a){return Q(X(this,4,a,arguments[1]))},getUint32:function getUint32(a){return Q(X(this,4,a,arguments[1]))>>>0},getFloat32:function getFloat32(a){return P(X(this,4,a,arguments[1]),23,4)},getFloat64:function getFloat64(a){return P(X(this,8,a,arguments[1]),52,8)},setInt8:function setInt8(a,b){Y(this,1,a,R,b)},setUint8:function setUint8(a,b){Y(this,1,a,R,b)},setInt16:function setInt16(a,b){Y(this,2,a,S,b,arguments[2])},setUint16:function setUint16(a,b){Y(this,2,a,S,b,arguments[2])},setInt32:function setInt32(a,b){Y(this,4,a,T,b,arguments[2])},setUint32:function setUint32(a,b){Y(this,4,a,T,b,arguments[2])},setFloat32:function setFloat32(a,b){Y(this,4,a,V,b,arguments[2])},setFloat64:function setFloat64(a,b){Y(this,8,a,U,b,arguments[2])}});r(x,s),r(y,t),i(y[u],h.VIEW,!0),b[s]=x,b[t]=y},function(a,b,c){var d=c(6);d(d.G+d.W+d.F*!c(232).ABV,{DataView:c(233).DataView})},function(a,b,c){c(236)("Int8",1,function(a){return function Int8Array(b,c,d){return a(this,b,c,d)}})},function(a,b,d){if(d(4)){var e=d(26),f=d(2),g=d(5),h=d(6),i=d(232),j=d(233),k=d(18),l=d(197),m=d(15),n=d(8),o=d(202),p=d(36),q=d(35),r=d(37),s=d(14),t=d(3),u=d(69),v=d(73),w=d(11),x=d(56),y=d(154),z=d(44),A=d(57),B=d(48).f,C=d(156),D=d(17),E=d(23),F=d(164),G=d(34),H=d(199),I=d(183),J=d(135),K=d(157),L=d(186),M=d(180),N=d(177),O=d(9),P=d(49),Q=O.f,R=P.f,S=f.RangeError,T=f.TypeError,U=f.Uint8Array,V="ArrayBuffer",W="Shared"+V,X="BYTES_PER_ELEMENT",Y="prototype",Z=Array[Y],$=j.ArrayBuffer,_=j.DataView,aa=F(0),ba=F(2),ca=F(3),da=F(4),ea=F(5),fa=F(6),ga=G(!0),ha=G(!1),ia=I.values,ja=I.keys,ka=I.entries,la=Z.lastIndexOf,ma=Z.reduce,na=Z.reduceRight,oa=Z.join,pa=Z.sort,qa=Z.slice,ra=Z.toString,sa=Z.toLocaleString,ta=E("iterator"),ua=E("toStringTag"),va=D("typed_constructor"),wa=D("def_constructor"),xa=i.CONSTR,ya=i.TYPED,za=i.VIEW,Aa="Wrong length!",Ba=F(1,function(a,b){return Ha(H(a,a[wa]),b)}),Ca=g(function(){return 1===new U(new Uint16Array([1]).buffer)[0]}),Da=!!U&&!!U[Y].set&&g(function(){new U(1).set({})}),Ea=function(a,b){if(a===c)throw T(Aa);var d=+a,e=q(a);if(b&&!u(d,e))throw S(Aa);return e},Fa=function(a,b){var c=p(a);if(c<0||c%b)throw S("Wrong offset!");return c},Ga=function(a){if(w(a)&&ya in a)return a;throw T(a+" is not a typed array!")},Ha=function(a,b){if(!(w(a)&&va in a))throw T("It is not a typed array constructor!");return new a(b)},Ia=function(a,b){return Ja(H(a,a[wa]),b)},Ja=function(a,b){for(var c=0,d=b.length,e=Ha(a,d);d>c;)e[c]=b[c++];return e},Ka=function(a,b,c){Q(a,b,{get:function(){return this._d[c]}})},La=function from(a){var b,d,e,f,g,h,i=x(a),j=arguments.length,l=j>1?arguments[1]:c,m=l!==c,n=C(i);if(n!=c&&!y(n)){for(h=n.call(i),e=[],b=0;!(g=h.next()).done;b++)e.push(g.value);i=e}for(m&&j>2&&(l=k(l,arguments[2],2)),b=0,d=q(i.length),f=Ha(this,d);d>b;b++)f[b]=m?l(i[b],b):i[b];return f},Ma=function of(){for(var a=0,b=arguments.length,c=Ha(this,b);b>a;)c[a]=arguments[a++];return c},Na=!!U&&g(function(){sa.call(new U(1))}),Oa=function toLocaleString(){return sa.apply(Na?qa.call(Ga(this)):Ga(this),arguments)},Pa={copyWithin:function copyWithin(a,b){return N.call(Ga(this),a,b,arguments.length>2?arguments[2]:c)},every:function every(a){return da(Ga(this),a,arguments.length>1?arguments[1]:c)},fill:function fill(a){return M.apply(Ga(this),arguments)},filter:function filter(a){return Ia(this,ba(Ga(this),a,arguments.length>1?arguments[1]:c))},find:function find(a){return ea(Ga(this),a,arguments.length>1?arguments[1]:c)},findIndex:function findIndex(a){return fa(Ga(this),a,arguments.length>1?arguments[1]:c)},forEach:function forEach(a){aa(Ga(this),a,arguments.length>1?arguments[1]:c)},indexOf:function indexOf(a){return ha(Ga(this),a,arguments.length>1?arguments[1]:c)},includes:function includes(a){return ga(Ga(this),a,arguments.length>1?arguments[1]:c);
+},join:function join(a){return oa.apply(Ga(this),arguments)},lastIndexOf:function lastIndexOf(a){return la.apply(Ga(this),arguments)},map:function map(a){return Ba(Ga(this),a,arguments.length>1?arguments[1]:c)},reduce:function reduce(a){return ma.apply(Ga(this),arguments)},reduceRight:function reduceRight(a){return na.apply(Ga(this),arguments)},reverse:function reverse(){for(var a,b=this,c=Ga(b).length,d=Math.floor(c/2),e=0;e<d;)a=b[e],b[e++]=b[--c],b[c]=a;return b},some:function some(a){return ca(Ga(this),a,arguments.length>1?arguments[1]:c)},sort:function sort(a){return pa.call(Ga(this),a)},subarray:function subarray(a,b){var d=Ga(this),e=d.length,f=r(a,e);return new(H(d,d[wa]))(d.buffer,d.byteOffset+f*d.BYTES_PER_ELEMENT,q((b===c?e:r(b,e))-f))}},Qa=function slice(a,b){return Ia(this,qa.call(Ga(this),a,b))},Ra=function set(a){Ga(this);var b=Fa(arguments[1],1),c=this.length,d=x(a),e=q(d.length),f=0;if(e+b>c)throw S(Aa);for(;f<e;)this[b+f]=d[f++]},Sa={entries:function entries(){return ka.call(Ga(this))},keys:function keys(){return ja.call(Ga(this))},values:function values(){return ia.call(Ga(this))}},Ta=function(a,b){return w(a)&&a[ya]&&"symbol"!=typeof b&&b in a&&String(+b)==String(b)},Ua=function getOwnPropertyDescriptor(a,b){return Ta(a,b=s(b,!0))?m(2,a[b]):R(a,b)},Va=function defineProperty(a,b,c){return!(Ta(a,b=s(b,!0))&&w(c)&&t(c,"value"))||t(c,"get")||t(c,"set")||c.configurable||t(c,"writable")&&!c.writable||t(c,"enumerable")&&!c.enumerable?Q(a,b,c):(a[b]=c.value,a)};xa||(P.f=Ua,O.f=Va),h(h.S+h.F*!xa,"Object",{getOwnPropertyDescriptor:Ua,defineProperty:Va}),g(function(){ra.call({})})&&(ra=sa=function toString(){return oa.call(this)});var Wa=o({},Pa);o(Wa,Sa),n(Wa,ta,Sa.values),o(Wa,{slice:Qa,set:Ra,constructor:function(){},toString:ra,toLocaleString:Oa}),Ka(Wa,"buffer","b"),Ka(Wa,"byteOffset","o"),Ka(Wa,"byteLength","l"),Ka(Wa,"length","e"),Q(Wa,ua,{get:function(){return this[ya]}}),a.exports=function(a,b,d,j){j=!!j;var k=a+(j?"Clamped":"")+"Array",m="Uint8Array"!=k,o="get"+a,p="set"+a,r=f[k],s=r||{},t=r&&A(r),u=!r||!i.ABV,x={},y=r&&r[Y],C=function(a,c){var d=a._d;return d.v[o](c*b+d.o,Ca)},D=function(a,c,d){var e=a._d;j&&(d=(d=Math.round(d))<0?0:d>255?255:255&d),e.v[p](c*b+e.o,d,Ca)},E=function(a,b){Q(a,b,{get:function(){return C(this,b)},set:function(a){return D(this,b,a)},enumerable:!0})};u?(r=d(function(a,d,e,f){l(a,r,k,"_d");var g,h,i,j,m=0,o=0;if(w(d)){if(!(d instanceof $||(j=v(d))==V||j==W))return ya in d?Ja(r,d):La.call(r,d);g=d,o=Fa(e,b);var p=d.byteLength;if(f===c){if(p%b)throw S(Aa);if(h=p-o,h<0)throw S(Aa)}else if(h=q(f)*b,h+o>p)throw S(Aa);i=h/b}else i=Ea(d,!0),h=i*b,g=new $(h);for(n(a,"_d",{b:g,o:o,l:h,e:i,v:new _(g)});m<i;)E(a,m++)}),y=r[Y]=z(Wa),n(y,"constructor",r)):K(function(a){new r(null),new r(a)},!0)||(r=d(function(a,d,e,f){l(a,r,k);var g;return w(d)?d instanceof $||(g=v(d))==V||g==W?f!==c?new s(d,Fa(e,b),f):e!==c?new s(d,Fa(e,b)):new s(d):ya in d?Ja(r,d):La.call(r,d):new s(Ea(d,m))}),aa(t!==Function.prototype?B(s).concat(B(t)):B(s),function(a){a in r||n(r,a,s[a])}),r[Y]=y,e||(y.constructor=r));var F=y[ta],G=!!F&&("values"==F.name||F.name==c),H=Sa.values;n(r,va,!0),n(y,ya,k),n(y,za,!0),n(y,wa,r),(j?new r(1)[ua]==k:ua in y)||Q(y,ua,{get:function(){return k}}),x[k]=r,h(h.G+h.W+h.F*(r!=s),x),h(h.S,k,{BYTES_PER_ELEMENT:b,from:La,of:Ma}),X in y||n(y,X,b),h(h.P,k,Pa),L(k),h(h.P+h.F*Da,k,{set:Ra}),h(h.P+h.F*!G,k,Sa),h(h.P+h.F*(y.toString!=ra),k,{toString:ra}),h(h.P+h.F*g(function(){new r(1).slice()}),k,{slice:Qa}),h(h.P+h.F*(g(function(){return[1,2].toLocaleString()!=new r([1,2]).toLocaleString()})||!g(function(){y.toLocaleString.call([1,2])})),k,{toLocaleString:Oa}),J[k]=G?F:H,e||G||n(y,ta,H)}}else a.exports=function(){}},function(a,b,c){c(236)("Uint8",1,function(a){return function Uint8Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Uint8",1,function(a){return function Uint8ClampedArray(b,c,d){return a(this,b,c,d)}},!0)},function(a,b,c){c(236)("Int16",2,function(a){return function Int16Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Uint16",2,function(a){return function Uint16Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Int32",4,function(a){return function Int32Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Uint32",4,function(a){return function Uint32Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Float32",4,function(a){return function Float32Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Float64",8,function(a){return function Float64Array(b,c,d){return a(this,b,c,d)}})},function(a,b,d){var e=d(6),f=d(34)(!0);e(e.P,"Array",{includes:function includes(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(178)("includes")},function(a,b,c){var d=c(6),e=c(125)(!0);d(d.P,"String",{at:function at(a){return e(this,a)}})},function(a,b,d){var e=d(6),f=d(248);e(e.P,"String",{padStart:function padStart(a){return f(this,a,arguments.length>1?arguments[1]:c,!0)}})},function(a,b,d){var e=d(35),f=d(85),g=d(33);a.exports=function(a,b,d,h){var i=String(g(a)),j=i.length,k=d===c?" ":String(d),l=e(b);if(l<=j||""==k)return i;var m=l-j,n=f.call(k,Math.ceil(m/k.length));return n.length>m&&(n=n.slice(0,m)),h?n+i:i+n}},function(a,b,d){var e=d(6),f=d(248);e(e.P,"String",{padEnd:function padEnd(a){return f(this,a,arguments.length>1?arguments[1]:c,!1)}})},function(a,b,c){c(81)("trimLeft",function(a){return function trimLeft(){return a(this,1)}},"trimStart")},function(a,b,c){c(81)("trimRight",function(a){return function trimRight(){return a(this,2)}},"trimEnd")},function(a,b,c){var d=c(6),e=c(33),f=c(35),g=c(128),h=c(188),i=RegExp.prototype,j=function(a,b){this._r=a,this._s=b};c(136)(j,"RegExp String",function next(){var a=this._r.exec(this._s);return{value:a,done:null===a}}),d(d.P,"String",{matchAll:function matchAll(a){if(e(this),!g(a))throw TypeError(a+" is not a regexp!");var b=String(this),c="flags"in i?String(a.flags):h.call(a),d=new RegExp(a.source,~c.indexOf("g")?c:"g"+c);return d.lastIndex=f(a.lastIndex),new j(d,b)}})},function(a,b,c){c(25)("asyncIterator")},function(a,b,c){c(25)("observable")},function(a,b,c){var d=c(6),e=c(221),f=c(30),g=c(49),h=c(155);d(d.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(a){for(var b,c=f(a),d=g.f,i=e(c),j={},k=0;i.length>k;)h(j,b=i[k++],d(c,b));return j}})},function(a,b,c){var d=c(6),e=c(257)(!1);d(d.S,"Object",{values:function values(a){return e(a)}})},function(a,b,c){var d=c(28),e=c(30),f=c(42).f;a.exports=function(a){return function(b){for(var c,g=e(b),h=d(g),i=h.length,j=0,k=[];i>j;)f.call(g,c=h[j++])&&k.push(a?[c,g[c]]:g[c]);return k}}},function(a,b,c){var d=c(6),e=c(257)(!0);d(d.S,"Object",{entries:function entries(a){return e(a)}})},function(a,b,c){var d=c(6),e=c(56),f=c(19),g=c(9);c(4)&&d(d.P+c(260),"Object",{__defineGetter__:function __defineGetter__(a,b){g.f(e(this),a,{get:f(b),enumerable:!0,configurable:!0})}})},function(a,b,c){a.exports=c(26)||!c(5)(function(){var a=Math.random();__defineSetter__.call(null,a,function(){}),delete c(2)[a]})},function(a,b,c){var d=c(6),e=c(56),f=c(19),g=c(9);c(4)&&d(d.P+c(260),"Object",{__defineSetter__:function __defineSetter__(a,b){g.f(e(this),a,{set:f(b),enumerable:!0,configurable:!0})}})},function(a,b,c){var d=c(6),e=c(56),f=c(14),g=c(57),h=c(49).f;c(4)&&d(d.P+c(260),"Object",{__lookupGetter__:function __lookupGetter__(a){var b,c=e(this),d=f(a,!0);do if(b=h(c,d))return b.get;while(c=g(c))}})},function(a,b,c){var d=c(6),e=c(56),f=c(14),g=c(57),h=c(49).f;c(4)&&d(d.P+c(260),"Object",{__lookupSetter__:function __lookupSetter__(a){var b,c=e(this),d=f(a,!0);do if(b=h(c,d))return b.set;while(c=g(c))}})},function(a,b,c){var d=c(6);d(d.P+d.R,"Map",{toJSON:c(265)("Map")})},function(a,b,c){var d=c(73),e=c(266);a.exports=function(a){return function toJSON(){if(d(this)!=a)throw TypeError(a+"#toJSON isn't generic");return e(this)}}},function(a,b,c){var d=c(198);a.exports=function(a,b){var c=[];return d(a,!1,c.push,c,b),c}},function(a,b,c){var d=c(6);d(d.P+d.R,"Set",{toJSON:c(265)("Set")})},function(a,b,c){var d=c(6);d(d.S,"System",{global:c(2)})},function(a,b,c){var d=c(6),e=c(32);d(d.S,"Error",{isError:function isError(a){return"Error"===e(a)}})},function(a,b,c){var d=c(6);d(d.S,"Math",{iaddh:function iaddh(a,b,c,d){var e=a>>>0,f=b>>>0,g=c>>>0;return f+(d>>>0)+((e&g|(e|g)&~(e+g>>>0))>>>31)|0}})},function(a,b,c){var d=c(6);d(d.S,"Math",{isubh:function isubh(a,b,c,d){var e=a>>>0,f=b>>>0,g=c>>>0;return f-(d>>>0)-((~e&g|~(e^g)&e-g>>>0)>>>31)|0}})},function(a,b,c){var d=c(6);d(d.S,"Math",{imulh:function imulh(a,b){var c=65535,d=+a,e=+b,f=d&c,g=e&c,h=d>>16,i=e>>16,j=(h*g>>>0)+(f*g>>>16);return h*i+(j>>16)+((f*i>>>0)+(j&c)>>16)}})},function(a,b,c){var d=c(6);d(d.S,"Math",{umulh:function umulh(a,b){var c=65535,d=+a,e=+b,f=d&c,g=e&c,h=d>>>16,i=e>>>16,j=(h*g>>>0)+(f*g>>>16);return h*i+(j>>>16)+((f*i>>>0)+(j&c)>>>16)}})},function(a,b,c){var d=c(275),e=c(10),f=d.key,g=d.set;d.exp({defineMetadata:function defineMetadata(a,b,c,d){g(a,b,e(c),f(d))}})},function(a,b,d){var e=d(203),f=d(6),g=d(21)("metadata"),h=g.store||(g.store=new(d(207))),i=function(a,b,d){var f=h.get(a);if(!f){if(!d)return c;h.set(a,f=new e)}var g=f.get(b);if(!g){if(!d)return c;f.set(b,g=new e)}return g},j=function(a,b,d){var e=i(b,d,!1);return e!==c&&e.has(a)},k=function(a,b,d){var e=i(b,d,!1);return e===c?c:e.get(a)},l=function(a,b,c,d){i(c,d,!0).set(a,b)},m=function(a,b){var c=i(a,b,!1),d=[];return c&&c.forEach(function(a,b){d.push(b)}),d},n=function(a){return a===c||"symbol"==typeof a?a:String(a)},o=function(a){f(f.S,"Reflect",a)};a.exports={store:h,map:i,has:j,get:k,set:l,keys:m,key:n,exp:o}},function(a,b,d){var e=d(275),f=d(10),g=e.key,h=e.map,i=e.store;e.exp({deleteMetadata:function deleteMetadata(a,b){var d=arguments.length<3?c:g(arguments[2]),e=h(f(b),d,!1);if(e===c||!e["delete"](a))return!1;if(e.size)return!0;var j=i.get(b);return j["delete"](d),!!j.size||i["delete"](b)}})},function(a,b,d){var e=d(275),f=d(10),g=d(57),h=e.has,i=e.get,j=e.key,k=function(a,b,d){var e=h(a,b,d);if(e)return i(a,b,d);var f=g(b);return null!==f?k(a,f,d):c};e.exp({getMetadata:function getMetadata(a,b){return k(a,f(b),arguments.length<3?c:j(arguments[2]))}})},function(a,b,d){var e=d(206),f=d(266),g=d(275),h=d(10),i=d(57),j=g.keys,k=g.key,l=function(a,b){var c=j(a,b),d=i(a);if(null===d)return c;var g=l(d,b);return g.length?c.length?f(new e(c.concat(g))):g:c};g.exp({getMetadataKeys:function getMetadataKeys(a){return l(h(a),arguments.length<2?c:k(arguments[1]))}})},function(a,b,d){var e=d(275),f=d(10),g=e.get,h=e.key;e.exp({getOwnMetadata:function getOwnMetadata(a,b){return g(a,f(b),arguments.length<3?c:h(arguments[2]))}})},function(a,b,d){var e=d(275),f=d(10),g=e.keys,h=e.key;e.exp({getOwnMetadataKeys:function getOwnMetadataKeys(a){return g(f(a),arguments.length<2?c:h(arguments[1]))}})},function(a,b,d){var e=d(275),f=d(10),g=d(57),h=e.has,i=e.key,j=function(a,b,c){var d=h(a,b,c);if(d)return!0;var e=g(b);return null!==e&&j(a,e,c)};e.exp({hasMetadata:function hasMetadata(a,b){return j(a,f(b),arguments.length<3?c:i(arguments[2]))}})},function(a,b,d){var e=d(275),f=d(10),g=e.has,h=e.key;e.exp({hasOwnMetadata:function hasOwnMetadata(a,b){return g(a,f(b),arguments.length<3?c:h(arguments[2]))}})},function(a,b,d){var e=d(275),f=d(10),g=d(19),h=e.key,i=e.set;e.exp({metadata:function metadata(a,b){return function decorator(d,e){i(a,b,(e!==c?f:g)(d),h(e))}}})},function(a,b,c){var d=c(6),e=c(201)(),f=c(2).process,g="process"==c(32)(f);d(d.G,{asap:function asap(a){var b=g&&f.domain;e(b?b.bind(a):a)}})},function(a,b,d){var e=d(6),f=d(2),g=d(7),h=d(201)(),i=d(23)("observable"),j=d(19),k=d(10),l=d(197),m=d(202),n=d(8),o=d(198),p=o.RETURN,q=function(a){return null==a?c:j(a)},r=function(a){var b=a._c;b&&(a._c=c,b())},s=function(a){return a._o===c},t=function(a){s(a)||(a._o=c,r(a))},u=function(a,b){k(a),this._c=c,this._o=a,a=new v(this);try{var d=b(a),e=d;null!=d&&("function"==typeof d.unsubscribe?d=function(){e.unsubscribe()}:j(d),this._c=d)}catch(f){return void a.error(f)}s(this)&&r(this)};u.prototype=m({},{unsubscribe:function unsubscribe(){t(this)}});var v=function(a){this._s=a};v.prototype=m({},{next:function next(a){var b=this._s;if(!s(b)){var c=b._o;try{var d=q(c.next);if(d)return d.call(c,a)}catch(e){try{t(b)}finally{throw e}}}},error:function error(a){var b=this._s;if(s(b))throw a;var d=b._o;b._o=c;try{var e=q(d.error);if(!e)throw a;a=e.call(d,a)}catch(f){try{r(b)}finally{throw f}}return r(b),a},complete:function complete(a){var b=this._s;if(!s(b)){var d=b._o;b._o=c;try{var e=q(d.complete);a=e?e.call(d,a):c}catch(f){try{r(b)}finally{throw f}}return r(b),a}}});var w=function Observable(a){l(this,w,"Observable","_f")._f=j(a)};m(w.prototype,{subscribe:function subscribe(a){return new u(a,this._f)},forEach:function forEach(a){var b=this;return new(g.Promise||f.Promise)(function(c,d){j(a);var e=b.subscribe({next:function(b){try{return a(b)}catch(c){d(c),e.unsubscribe()}},error:d,complete:c})})}}),m(w,{from:function from(a){var b="function"==typeof this?this:w,c=q(k(a)[i]);if(c){var d=k(c.call(a));return d.constructor===b?d:new b(function(a){return d.subscribe(a)})}return new b(function(b){var c=!1;return h(function(){if(!c){try{if(o(a,!1,function(a){if(b.next(a),c)return p})===p)return}catch(d){if(c)throw d;return void b.error(d)}b.complete()}}),function(){c=!0}})},of:function of(){for(var a=0,b=arguments.length,c=Array(b);a<b;)c[a]=arguments[a++];return new("function"==typeof this?this:w)(function(a){var b=!1;return h(function(){if(!b){for(var d=0;d<c.length;++d)if(a.next(c[d]),b)return;a.complete()}}),function(){b=!0}})}}),n(w.prototype,i,function(){return this}),e(e.G,{Observable:w}),d(186)("Observable")},function(a,b,c){var d=c(6),e=c(200);d(d.G+d.B,{setImmediate:e.set,clearImmediate:e.clear})},function(a,b,c){for(var d=c(183),e=c(16),f=c(2),g=c(8),h=c(135),i=c(23),j=i("iterator"),k=i("toStringTag"),l=h.Array,m=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],n=0;n<5;n++){var o,p=m[n],q=f[p],r=q&&q.prototype;if(r){r[j]||g(r,j,l),r[k]||g(r,k,p),h[p]=l;for(o in d)r[o]||e(r,o,d[o],!0)}}},function(a,b,c){var d=c(2),e=c(6),f=c(76),g=c(289),h=d.navigator,i=!!h&&/MSIE .\./.test(h.userAgent),j=function(a){return i?function(b,c){return a(f(g,[].slice.call(arguments,2),"function"==typeof b?b:Function(b)),c)}:a};e(e.G+e.B+e.F*i,{setTimeout:j(d.setTimeout),setInterval:j(d.setInterval)})},function(a,b,c){var d=c(290),e=c(76),f=c(19);a.exports=function(){for(var a=f(this),b=arguments.length,c=Array(b),g=0,h=d._,i=!1;b>g;)(c[g]=arguments[g++])===h&&(i=!0);return function(){var d,f=this,g=arguments.length,j=0,k=0;if(!i&&!g)return e(a,c,f);if(d=c.slice(),i)for(;b>j;j++)d[j]===h&&(d[j]=arguments[k++]);for(;g>k;)d.push(arguments[k++]);return e(a,d,f)}}},function(a,b,c){a.exports=c(2)},function(a,b,d){function Dict(a){var b=i(null);return a!=c&&(p(a)?o(a,!0,function(a,c){b[a]=c}):h(b,a)),b}function reduce(a,b,c){n(b);var d,e,f=t(a),g=k(f),h=g.length,i=0;if(arguments.length<3){if(!h)throw TypeError("Reduce of empty object with no initial value");d=f[g[i++]]}else d=Object(c);for(;h>i;)v(f,e=g[i++])&&(d=b(d,f[e],e,a));return d}function includes(a,b){return(b==b?m(a,b):x(a,function(a){return a!=a}))!==c}function get(a,b){if(v(a,b))return a[b]}function set(a,b,c){return u&&b in Object?l.f(a,b,g(0,c)):a[b]=c,a}function isDict(a){return s(a)&&j(a)===Dict.prototype}var e=d(18),f=d(6),g=d(15),h=d(67),i=d(44),j=d(57),k=d(28),l=d(9),m=d(27),n=d(19),o=d(198),p=d(292),q=d(136),r=d(184),s=d(11),t=d(30),u=d(4),v=d(3),w=function(a){var b=1==a,d=4==a;return function(f,g,h){var i,j,k,l=e(g,h,3),m=t(f),n=b||7==a||2==a?new("function"==typeof this?this:Dict):c;for(i in m)if(v(m,i)&&(j=m[i],k=l(j,i,f),a))if(b)n[i]=k;else if(k)switch(a){case 2:n[i]=j;break;case 3:return!0;case 5:return j;case 6:return i;case 7:n[k[0]]=k[1]}else if(d)return!1;return 3==a||d?d:n}},x=w(6),y=function(a){return function(b){return new z(b,a)}},z=function(a,b){this._t=t(a),this._a=k(a),this._i=0,this._k=b};q(z,"Dict",function(){var a,b=this,d=b._t,e=b._a,f=b._k;do if(b._i>=e.length)return b._t=c,r(1);while(!v(d,a=e[b._i++]));return"keys"==f?r(0,a):"values"==f?r(0,d[a]):r(0,[a,d[a]])}),Dict.prototype=null,f(f.G+f.F,{Dict:Dict}),f(f.S,"Dict",{keys:y("keys"),values:y("values"),entries:y("entries"),forEach:w(0),map:w(1),filter:w(2),some:w(3),every:w(4),find:w(5),findKey:x,mapPairs:w(7),reduce:reduce,keyOf:m,includes:includes,has:v,get:get,set:set,isDict:isDict})},function(a,b,d){var e=d(73),f=d(23)("iterator"),g=d(135);a.exports=d(7).isIterable=function(a){var b=Object(a);return b[f]!==c||"@@iterator"in b||g.hasOwnProperty(e(b))}},function(a,b,c){var d=c(10),e=c(156);a.exports=c(7).getIterator=function(a){var b=e(a);if("function"!=typeof b)throw TypeError(a+" is not iterable!");return d(b.call(a))}},function(a,b,c){var d=c(2),e=c(7),f=c(6),g=c(289);f(f.G+f.F,{delay:function delay(a){return new(e.Promise||d.Promise)(function(b){setTimeout(g.call(b,!0),a)})}})},function(a,b,c){var d=c(290),e=c(6);c(7)._=d._=d._||{},e(e.P+e.F,"Function",{part:c(289)})},function(a,b,c){var d=c(6);d(d.S+d.F,"Object",{isObject:c(11)})},function(a,b,c){var d=c(6);d(d.S+d.F,"Object",{classof:c(73)})},function(a,b,c){var d=c(6),e=c(299);d(d.S+d.F,"Object",{define:e})},function(a,b,c){var d=c(9),e=c(49),f=c(221),g=c(30);a.exports=function define(a,b){for(var c,h=f(g(b)),i=h.length,j=0;i>j;)d.f(a,c=h[j++],e.f(b,c));return a}},function(a,b,c){var d=c(6),e=c(299),f=c(44);d(d.S+d.F,"Object",{make:function(a,b){return e(f(a),b)}})},function(a,b,d){d(134)(Number,"Number",function(a){this._l=+a,this._i=0},function(){var a=this._i++,b=!(a<this._l);return{done:b,value:b?c:a}})},function(a,b,c){var d=c(6),e=c(303)(/[\\^$*+?.()|[\]{}]/g,"\\$&");d(d.S,"RegExp",{escape:function escape(a){return e(a)}})},function(a,b){a.exports=function(a,b){var c=b===Object(b)?function(a){return b[a]}:b;return function(b){return String(b).replace(a,c)}}},function(a,b,c){var d=c(6),e=c(303)(/[&<>"']/g,{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&apos;"});d(d.P+d.F,"String",{escapeHTML:function escapeHTML(){return e(this)}})},function(a,b,c){var d=c(6),e=c(303)(/&(?:amp|lt|gt|quot|apos);/g,{"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&apos;":"'"});d(d.P+d.F,"String",{unescapeHTML:function unescapeHTML(){return e(this)}})}]),"undefined"!=typeof module&&module.exports?module.exports=a:"function"==typeof define&&define.amd?define(function(){return a}):b.core=a}(1,1);
//# sourceMappingURL=core.min.js.map \ No newline at end of file
diff --git a/node_modules/core-js/client/core.min.js.map b/node_modules/core-js/client/core.min.js.map
index fab30694f..bc3ffc583 100644
--- a/node_modules/core-js/client/core.min.js.map
+++ b/node_modules/core-js/client/core.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["core.js"],"names":["__e","__g","undefined","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","IE8_DOM_DEFINE","$","$export","DESCRIPTORS","createDesc","html","cel","has","cof","invoke","fails","anObject","aFunction","isObject","toObject","toIObject","toInteger","toIndex","toLength","IObject","IE_PROTO","createArrayMethod","arrayIndexOf","ObjectProto","Object","prototype","ArrayProto","Array","arraySlice","slice","arrayJoin","join","defineProperty","setDesc","getOwnDescriptor","getDesc","defineProperties","setDescs","factories","get","a","O","P","Attributes","e","TypeError","value","propertyIsEnumerable","Properties","keys","getKeys","length","i","S","F","getOwnPropertyDescriptor","keys1","split","keys2","concat","keysLen1","createDict","iframeDocument","iframe","gt","style","display","appendChild","src","contentWindow","document","open","write","close","createGetKeys","names","object","key","result","push","Empty","getPrototypeOf","getProto","constructor","getOwnPropertyNames","getNames","create","construct","len","args","n","Function","bind","that","fn","this","partArgs","arguments","bound","begin","end","klass","start","upTo","size","cloned","charAt","separator","isArray","createArrayReduce","isRight","callbackfn","memo","index","methodize","$fn","arg1","forEach","each","map","filter","some","every","reduce","reduceRight","indexOf","lastIndexOf","el","fromIndex","Math","min","now","Date","lz","num","toISOString","NaN","isFinite","RangeError","d","y","getUTCFullYear","getUTCMilliseconds","s","abs","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","$Object","isEnum","getSymbols","getOwnPropertySymbols","global","core","hide","redefine","ctx","PROTOTYPE","type","name","source","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","B","target","expProto","W","window","self","version","bitmap","enumerable","configurable","writable","exec","SRC","TO_STRING","$toString","TPL","inspectSource","it","val","safe","hasOwnProperty","String","toString","px","random","b","apply","documentElement","is","createElement","un","defined","ceil","floor","isNaN","max","asc","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","res","f","SPECIES","original","C","arg","store","uid","Symbol","SHARED","IS_INCLUDES","$fails","shared","setToStringTag","wks","keyOf","$names","enumKeys","_create","$Symbol","$JSON","JSON","_stringify","stringify","setter","HIDDEN","SymbolRegistry","AllSymbols","useNative","setSymbolDesc","D","protoDesc","wrap","tag","sym","_k","set","isSymbol","$defineProperty","$defineProperties","l","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","$stringify","replacer","$replacer","$$","buggyJSON","symbolStatics","for","keyFor","useSetter","useSimple","def","TAG","stat","windowNames","getWindowNames","symbols","assign","A","K","k","T","$$len","j","x","setPrototypeOf","check","proto","test","buggy","__proto__","classof","ARG","callee","$freeze","freeze","KEY","$seal","seal","$preventExtensions","preventExtensions","$isFrozen","isFrozen","$isSealed","isSealed","$isExtensible","isExtensible","$getPrototypeOf","$keys","FProto","nameRE","NAME","match","HAS_INSTANCE","FunctionProto","toPrimitive","$trim","trim","NUMBER","$Number","Base","BROKEN_COF","TRIM","toNumber","argument","third","radix","maxCode","first","charCodeAt","code","digits","parseInt","Number","valueOf","spaces","space","non","ltrim","RegExp","rtrim","exporter","string","replace","EPSILON","pow","_isFinite","isInteger","number","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","parseFloat","log1p","sqrt","$acosh","acosh","MAX_VALUE","log","LN2","asinh","atanh","sign","cbrt","clz32","LOG2E","cosh","expm1","EPSILON32","MAX32","MIN32","roundTiesToEven","fround","$abs","$sign","Infinity","hypot","value1","value2","div","sum","larg","$imul","imul","UINT16","xn","yn","xl","yl","log10","LN10","log2","sinh","tanh","trunc","fromCharCode","$fromCodePoint","fromCodePoint","raw","callSite","tpl","$at","codePointAt","pos","context","ENDS_WITH","$endsWith","endsWith","searchString","endPosition","search","isRegExp","MATCH","re","INCLUDES","includes","repeat","count","str","STARTS_WITH","$startsWith","startsWith","iterated","_t","_i","point","done","LIBRARY","Iterators","$iterCreate","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Constructor","next","DEFAULT","IS_SET","FORCED","methods","getMethod","kind","values","entries","DEF_VALUES","VALUES_BUG","$native","$default","IteratorPrototype","descriptor","isArrayIter","getIterFn","iter","from","arrayLike","step","iterator","mapfn","mapping","iterFn","ret","getIteratorMethod","SAFE_CLOSING","riter","skipClosing","arr","of","addToUnscopables","Arguments","UNSCOPABLES","copyWithin","to","inc","fill","endPos","$find","forced","find","findIndex","$flags","$RegExp","re1","re2","CORRECT_NEW","piRE","fiU","ignoreCase","multiline","unicode","sticky","flags","regexp","SYMBOL","REPLACE","$replace","searchValue","replaceValue","SEARCH","SPLIT","$split","limit","Wrapper","strictNew","forOf","setProto","same","speciesConstructor","asap","PROMISE","process","isNode","empty","testResolve","sub","promise","resolve","USE_NATIVE","P2","works","then","thenableThenGotten","sameConstructor","getConstructor","isThenable","PromiseCapability","reject","$$resolve","$$reject","perform","error","notify","record","isReject","chain","v","ok","run","reaction","handler","fail","h","setTimeout","console","isUnhandled","emit","onunhandledrejection","reason","_d","$reject","r","$resolve","wrapper","Promise","executor","err","onFulfilled","onRejected","catch","capability","all","iterable","abrupt","remaining","results","alreadyCalled","race","head","last","macrotask","Observer","MutationObserver","WebKitMutationObserver","flush","parent","domain","exit","enter","nextTick","toggle","node","createTextNode","observe","characterData","data","task","defer","channel","port","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","counter","queue","ONREADYSTATECHANGE","listner","event","port2","port1","onmessage","postMessage","addEventListener","importScripts","removeChild","clear","strong","Map","entry","getEntry","redefineAll","$iterDefine","ID","$has","setSpecies","SIZE","fastKey","_f","ADDER","_l","delete","prev","setStrong","$iterDetect","common","IS_WEAK","fixMethod","add","BUGGY_ZERO","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","Set","weak","frozenStore","WEAK","tmp","$WeakMap","WeakMap","method","arrayFind","arrayFindIndex","FrozenStore","findFrozen","splice","WeakSet","_apply","thisArgument","argumentsList","Reflect","Target","newTarget","$args","propertyKey","attributes","deleteProperty","desc","Enumerate","enumerate","receiver","ownKeys","V","existingDescriptor","ownDesc","$includes","at","$pad","padLeft","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","padRight","trimLeft","trimRight","$re","escape","regExp","part","getOwnPropertyDescriptors","$values","isEntries","$entries","toJSON","$task","NL","NodeList","HTC","HTMLCollection","NLProto","HTCProto","ArrayValues","partial","navigator","MSIE","userAgent","time","setInterval","path","pargs","_","holder","Dict","dict","isIterable","init","findKey","isDict","createDictMethod","createDictIter","DictIterator","_a","mapPairs","getIterator","delay","define","mixin","make","&","<",">","\"","'","escapeHTML","&amp;","&lt;","&gt;","&quot;","&apos;","unescapeHTML","enabled","$console","enable","disable","$ctx","$Array","statics","setStatics","amd"],"mappings":"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","file":"core.min.js"} \ No newline at end of file
+{"version":3,"sources":["core.js"],"names":["__e","__g","undefined","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","global","has","DESCRIPTORS","$export","redefine","META","KEY","$fails","shared","setToStringTag","uid","wks","wksExt","wksDefine","keyOf","enumKeys","isArray","anObject","toIObject","toPrimitive","createDesc","_create","gOPNExt","$GOPD","$DP","$keys","gOPD","f","dP","gOPN","$Symbol","Symbol","$JSON","JSON","_stringify","stringify","PROTOTYPE","HIDDEN","TO_PRIMITIVE","isEnum","propertyIsEnumerable","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","Object","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","get","this","value","a","it","key","D","protoDesc","wrap","tag","sym","_k","isSymbol","iterator","$defineProperty","defineProperty","enumerable","$defineProperties","defineProperties","P","keys","i","l","length","$create","create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","$getOwnPropertyNames","getOwnPropertyNames","names","result","push","$getOwnPropertySymbols","getOwnPropertySymbols","IS_OP","TypeError","arguments","$set","configurable","set","toString","name","G","W","F","symbols","split","store","S","for","keyFor","useSetter","useSimple","replacer","$replacer","args","apply","valueOf","Math","window","self","Function","hasOwnProperty","exec","e","core","hide","ctx","type","source","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","B","target","expProto","U","R","version","object","IE8_DOM_DEFINE","O","Attributes","isObject","document","is","createElement","fn","val","bitmap","writable","SRC","TO_STRING","$toString","TPL","inspectSource","safe","isFunction","join","String","prototype","px","random","concat","aFunction","that","b","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","fastKey","getWeak","onFreeze","meta","NEED","SHARED","def","TAG","stat","USE_SYMBOL","$exports","LIBRARY","charAt","getKeys","el","index","enumBugKeys","arrayIndexOf","IE_PROTO","IObject","defined","cof","slice","toLength","toIndex","IS_INCLUDES","$this","fromIndex","toInteger","min","ceil","floor","isNaN","max","gOPS","pIE","getSymbols","Array","arg","dPs","Empty","createDict","iframeDocument","iframe","lt","gt","style","display","appendChild","src","contentWindow","open","write","close","Properties","documentElement","windowNames","getWindowNames","hiddenKeys","fails","toObject","$getPrototypeOf","getPrototypeOf","constructor","$freeze","freeze","$seal","seal","$preventExtensions","$isFrozen","isFrozen","$isSealed","isSealed","$isExtensible","assign","$assign","A","K","forEach","k","T","aLen","j","x","y","setPrototypeOf","check","proto","test","buggy","__proto__","classof","ARG","tryGet","callee","bind","invoke","arraySlice","factories","construct","len","n","partArgs","bound","un","FProto","nameRE","NAME","match","HAS_INSTANCE","FunctionProto","inheritIfRequired","$trim","trim","NUMBER","$Number","Base","BROKEN_COF","TRIM","toNumber","argument","third","radix","maxCode","first","charCodeAt","NaN","code","digits","parseInt","Number","C","spaces","space","non","ltrim","RegExp","rtrim","exporter","ALIAS","FORCE","string","TYPE","replace","aNumberValue","repeat","$toFixed","toFixed","data","ERROR","ZERO","multiply","c2","divide","numToString","s","t","pow","acc","log","x2","fractionDigits","z","RangeError","msg","count","str","res","Infinity","$toPrecision","toPrecision","precision","EPSILON","_isFinite","isFinite","isInteger","number","abs","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","$parseFloat","parseFloat","$parseInt","ws","hex","log1p","sqrt","$acosh","acosh","MAX_VALUE","LN2","asinh","$asinh","$atanh","atanh","sign","cbrt","clz32","LOG2E","cosh","$expm1","expm1","EPSILON32","MAX32","MIN32","roundTiesToEven","fround","$abs","$sign","hypot","value1","value2","div","sum","larg","$imul","imul","UINT16","xn","yn","xl","yl","log10","LN10","log2","sinh","tanh","trunc","fromCharCode","$fromCodePoint","fromCodePoint","raw","callSite","tpl","$at","codePointAt","pos","context","ENDS_WITH","$endsWith","endsWith","searchString","endPosition","end","search","isRegExp","MATCH","re","INCLUDES","includes","indexOf","STARTS_WITH","$startsWith","startsWith","iterated","_t","_i","point","done","Iterators","$iterCreate","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Constructor","next","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","values","entries","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","descriptor","createHTML","anchor","quot","attribute","p1","toLowerCase","big","blink","bold","fixed","fontcolor","color","fontsize","size","italics","link","url","small","strike","sub","sup","isArrayIter","createProperty","getIterFn","iter","from","arrayLike","step","mapfn","mapping","iterFn","ret","ArrayProto","getIteratorMethod","SAFE_CLOSING","riter","skipClosing","arr","of","arrayJoin","separator","method","html","begin","klass","start","upTo","cloned","$sort","sort","comparefn","$forEach","STRICT","callbackfn","asc","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","speciesConstructor","original","SPECIES","$map","map","$filter","filter","$some","some","$every","every","$reduce","reduce","memo","isRight","reduceRight","$indexOf","NEGATIVE_ZERO","searchElement","lastIndexOf","copyWithin","to","inc","UNSCOPABLES","fill","endPos","$find","forced","find","findIndex","addToUnscopables","Arguments","$flags","$RegExp","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","proxy","ignoreCase","multiline","unicode","sticky","define","flags","$match","regexp","SYMBOL","fns","strfn","rxfn","REPLACE","$replace","searchValue","replaceValue","SEARCH","$search","SPLIT","$split","_split","$push","$SPLIT","LENGTH","LAST_INDEX","NPCG","limit","separator2","lastIndex","lastLength","output","lastLastIndex","splitLimit","separatorCopy","Internal","GenericPromiseCapability","Wrapper","anInstance","forOf","task","microtask","PROMISE","process","$Promise","isNode","empty","promise","resolve","FakePromise","PromiseRejectionEvent","then","sameConstructor","isThenable","newPromiseCapability","PromiseCapability","reject","$$resolve","$$reject","perform","error","notify","isReject","_n","chain","_c","_v","ok","_s","run","reaction","handler","fail","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","abrupt","console","isUnhandled","emit","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_d","_w","$resolve","wrapper","Promise","executor","err","onFulfilled","onRejected","catch","r","capability","all","iterable","remaining","$index","alreadyCalled","race","forbiddenField","BREAK","RETURN","defer","channel","port","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","counter","queue","ONREADYSTATECHANGE","listener","event","nextTick","port2","port1","onmessage","postMessage","addEventListener","importScripts","removeChild","setTimeout","clear","macrotask","Observer","MutationObserver","WebKitMutationObserver","head","last","flush","parent","toggle","node","createTextNode","observe","characterData","strong","Map","entry","getEntry","v","redefineAll","$iterDefine","setSpecies","SIZE","_f","getConstructor","ADDER","_l","delete","prev","setStrong","$iterDetect","common","IS_WEAK","fixMethod","add","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","Set","InternalMap","each","weak","uncaughtFrozenStore","ufstore","tmp","WeakMap","$WeakMap","createArrayMethod","$has","arrayFind","arrayFindIndex","UncaughtFrozenStore","findUncaughtFrozen","splice","WeakSet","rApply","Reflect","fApply","thisArgument","argumentsList","L","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","propertyKey","attributes","deleteProperty","desc","Enumerate","enumerate","receiver","getProto","ownKeys","V","existingDescriptor","ownDesc","setProto","now","Date","getTime","toJSON","toISOString","pv","lz","num","d","getUTCFullYear","getUTCMilliseconds","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","DateProto","INVALID_DATE","hint","$typed","buffer","ArrayBuffer","$ArrayBuffer","$DataView","DataView","$isView","ABV","isView","$slice","VIEW","ARRAY_BUFFER","CONSTR","byteLength","final","viewS","viewT","setUint8","getUint8","Typed","TYPED","TypedArrayConstructors","arrayFill","DATA_VIEW","WRONG_LENGTH","WRONG_INDEX","BaseBuffer","BUFFER","BYTE_LENGTH","BYTE_OFFSET","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","eLen","eMax","eBias","rt","unpackIEEE754","nBits","unpackI32","bytes","packI8","packI16","packI32","packF64","packF32","addGetter","internal","view","isLittleEndian","numIndex","intIndex","_b","pack","reverse","conversion","validateArrayBufferArguments","numberLength","ArrayBufferProto","$setInt8","setInt8","getInt8","byteOffset","bufferLength","offset","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","init","Int8Array","$buffer","propertyDesc","same","createArrayIncludes","ArrayIterators","arrayCopyWithin","Uint8Array","SHARED_BUFFER","BYTES_PER_ELEMENT","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayIncludes","arrayValues","arrayKeys","arrayEntries","arrayLastIndexOf","arrayReduce","arrayReduceRight","arraySort","arrayToString","arrayToLocaleString","toLocaleString","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","TYPED_ARRAY","allocate","LITTLE_ENDIAN","Uint16Array","FORCED_SET","strictToLength","SAME","toOffset","BYTES","validate","speciesFromList","list","fromList","$from","$of","TO_LOCALE_BUG","$toLocaleString","predicate","middle","subarray","$begin","$iterators","isTAIndex","$getDesc","$setDesc","$TypedArrayPrototype$","CLAMPED","ISNT_UINT8","GETTER","SETTER","TypedArray","TAC","TypedArrayPrototype","getter","o","round","addElement","$offset","$length","$len","$nativeIterator","CORRECT_ITER_NAME","$iterator","Uint8ClampedArray","Int16Array","Int32Array","Uint32Array","Float32Array","Float64Array","$includes","at","$pad","padStart","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","padEnd","trimLeft","trimRight","getFlags","RegExpProto","$RegExpStringIterator","_r","matchAll","rx","getOwnPropertyDescriptors","getDesc","$values","isEntries","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","isError","iaddh","x0","x1","y0","y1","$x0","$x1","$y0","isubh","imulh","u","$u","$v","u0","v0","u1","v1","umulh","metadata","toMetaKey","ordinaryDefineOwnMetadata","defineMetadata","metadataKey","metadataValue","targetKey","getOrCreateMetadataMap","targetMetadata","keyMetadata","ordinaryHasOwnMetadata","MetadataKey","metadataMap","ordinaryGetOwnMetadata","MetadataValue","ordinaryOwnMetadataKeys","_","deleteMetadata","ordinaryGetMetadata","hasOwn","getMetadata","ordinaryMetadataKeys","oKeys","pKeys","getMetadataKeys","getOwnMetadata","getOwnMetadataKeys","ordinaryHasMetadata","hasMetadata","hasOwnMetadata","decorator","asap","OBSERVABLE","cleanupSubscription","subscription","cleanup","subscriptionClosed","_o","closeSubscription","Subscription","observer","subscriber","SubscriptionObserver","unsubscribe","complete","$Observable","Observable","subscribe","observable","items","$task","TO_STRING_TAG","ArrayValues","collections","Collection","partial","navigator","MSIE","userAgent","time","setInterval","path","pargs","holder","Dict","dict","isIterable","findKey","isDict","createDictMethod","createDictIter","DictIterator","mapPairs","getIterator","delay","part","mixin","make","$re","escape","regExp","&","<",">","\"","'","escapeHTML","&amp;","&lt;","&gt;","&quot;","&apos;","unescapeHTML","amd"],"mappings":";;;;;;CAMC,SAASA,EAAKC,EAAKC,GACpB,cACS,SAAUC,GAKT,QAASC,qBAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,MAAOC,GAAiBD,GAAUE,OAGnC,IAAIC,GAASF,EAAiBD,IAC7BE,WACAE,GAAIJ,EACJK,QAAQ,EAUT,OANAP,GAAQE,GAAUM,KAAKH,EAAOD,QAASC,EAAQA,EAAOD,QAASH,qBAG/DI,EAAOE,QAAS,EAGTF,EAAOD,QAvBf,GAAID,KAqCJ,OATAF,qBAAoBQ,EAAIT,EAGxBC,oBAAoBS,EAAIP,EAGxBF,oBAAoBU,EAAI,GAGjBV,oBAAoB,KAK/B,SAASI,EAAQD,EAASH,GAE/BA,EAAoB,GACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,K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","file":"core.min.js"} \ No newline at end of file
diff --git a/node_modules/core-js/client/library.js b/node_modules/core-js/client/library.js
index 65385ef01..b332abde9 100644
--- a/node_modules/core-js/client/library.js
+++ b/node_modules/core-js/client/library.js
@@ -1,5 +1,5 @@
/**
- * core-js 1.2.7
+ * core-js 2.4.1
* https://github.com/zloirock/core-js
* License: http://rock.mit-license.org
* © 2016 Denis Pushkarev
@@ -53,68 +53,67 @@
/***/ function(module, exports, __webpack_require__) {
__webpack_require__(1);
- __webpack_require__(32);
- __webpack_require__(40);
- __webpack_require__(42);
- __webpack_require__(44);
- __webpack_require__(46);
- __webpack_require__(48);
- __webpack_require__(49);
__webpack_require__(50);
__webpack_require__(51);
__webpack_require__(52);
- __webpack_require__(53);
__webpack_require__(54);
__webpack_require__(55);
- __webpack_require__(56);
- __webpack_require__(57);
__webpack_require__(58);
__webpack_require__(59);
__webpack_require__(60);
+ __webpack_require__(61);
__webpack_require__(62);
__webpack_require__(63);
__webpack_require__(64);
__webpack_require__(65);
__webpack_require__(66);
- __webpack_require__(67);
__webpack_require__(68);
__webpack_require__(70);
- __webpack_require__(71);
__webpack_require__(72);
- __webpack_require__(74);
__webpack_require__(75);
__webpack_require__(76);
- __webpack_require__(78);
__webpack_require__(79);
__webpack_require__(80);
__webpack_require__(81);
__webpack_require__(82);
- __webpack_require__(83);
__webpack_require__(84);
__webpack_require__(85);
__webpack_require__(86);
__webpack_require__(87);
__webpack_require__(88);
- __webpack_require__(89);
- __webpack_require__(90);
__webpack_require__(92);
__webpack_require__(94);
+ __webpack_require__(95);
+ __webpack_require__(96);
__webpack_require__(98);
__webpack_require__(99);
- __webpack_require__(101);
+ __webpack_require__(100);
__webpack_require__(102);
+ __webpack_require__(103);
+ __webpack_require__(104);
__webpack_require__(106);
+ __webpack_require__(107);
+ __webpack_require__(108);
+ __webpack_require__(109);
+ __webpack_require__(110);
+ __webpack_require__(111);
__webpack_require__(112);
__webpack_require__(113);
+ __webpack_require__(114);
+ __webpack_require__(115);
__webpack_require__(116);
+ __webpack_require__(117);
__webpack_require__(118);
- __webpack_require__(120);
- __webpack_require__(122);
- __webpack_require__(123);
- __webpack_require__(124);
- __webpack_require__(131);
+ __webpack_require__(119);
+ __webpack_require__(121);
+ __webpack_require__(125);
+ __webpack_require__(126);
+ __webpack_require__(127);
+ __webpack_require__(128);
+ __webpack_require__(132);
__webpack_require__(134);
__webpack_require__(135);
+ __webpack_require__(136);
__webpack_require__(137);
__webpack_require__(138);
__webpack_require__(139);
@@ -126,40 +125,110 @@
__webpack_require__(145);
__webpack_require__(146);
__webpack_require__(147);
- __webpack_require__(148);
- __webpack_require__(150);
- __webpack_require__(151);
- __webpack_require__(152);
- __webpack_require__(153);
__webpack_require__(154);
__webpack_require__(155);
__webpack_require__(157);
__webpack_require__(158);
__webpack_require__(159);
- __webpack_require__(160);
- __webpack_require__(162);
__webpack_require__(163);
+ __webpack_require__(164);
__webpack_require__(165);
__webpack_require__(166);
- __webpack_require__(168);
+ __webpack_require__(167);
__webpack_require__(169);
__webpack_require__(170);
__webpack_require__(171);
- __webpack_require__(174);
- __webpack_require__(109);
- __webpack_require__(176);
+ __webpack_require__(172);
__webpack_require__(175);
__webpack_require__(177);
__webpack_require__(178);
__webpack_require__(179);
- __webpack_require__(180);
__webpack_require__(181);
__webpack_require__(183);
- __webpack_require__(184);
- __webpack_require__(185);
- __webpack_require__(186);
- __webpack_require__(187);
- module.exports = __webpack_require__(188);
+ __webpack_require__(190);
+ __webpack_require__(193);
+ __webpack_require__(194);
+ __webpack_require__(196);
+ __webpack_require__(197);
+ __webpack_require__(198);
+ __webpack_require__(199);
+ __webpack_require__(200);
+ __webpack_require__(201);
+ __webpack_require__(202);
+ __webpack_require__(203);
+ __webpack_require__(204);
+ __webpack_require__(205);
+ __webpack_require__(206);
+ __webpack_require__(207);
+ __webpack_require__(209);
+ __webpack_require__(210);
+ __webpack_require__(211);
+ __webpack_require__(212);
+ __webpack_require__(213);
+ __webpack_require__(214);
+ __webpack_require__(215);
+ __webpack_require__(218);
+ __webpack_require__(219);
+ __webpack_require__(221);
+ __webpack_require__(222);
+ __webpack_require__(223);
+ __webpack_require__(224);
+ __webpack_require__(225);
+ __webpack_require__(226);
+ __webpack_require__(227);
+ __webpack_require__(228);
+ __webpack_require__(229);
+ __webpack_require__(230);
+ __webpack_require__(231);
+ __webpack_require__(233);
+ __webpack_require__(234);
+ __webpack_require__(235);
+ __webpack_require__(236);
+ __webpack_require__(238);
+ __webpack_require__(239);
+ __webpack_require__(240);
+ __webpack_require__(241);
+ __webpack_require__(243);
+ __webpack_require__(244);
+ __webpack_require__(246);
+ __webpack_require__(247);
+ __webpack_require__(248);
+ __webpack_require__(249);
+ __webpack_require__(252);
+ __webpack_require__(253);
+ __webpack_require__(254);
+ __webpack_require__(255);
+ __webpack_require__(256);
+ __webpack_require__(257);
+ __webpack_require__(258);
+ __webpack_require__(259);
+ __webpack_require__(261);
+ __webpack_require__(262);
+ __webpack_require__(263);
+ __webpack_require__(264);
+ __webpack_require__(265);
+ __webpack_require__(266);
+ __webpack_require__(267);
+ __webpack_require__(268);
+ __webpack_require__(269);
+ __webpack_require__(270);
+ __webpack_require__(271);
+ __webpack_require__(272);
+ __webpack_require__(273);
+ __webpack_require__(276);
+ __webpack_require__(151);
+ __webpack_require__(278);
+ __webpack_require__(277);
+ __webpack_require__(279);
+ __webpack_require__(280);
+ __webpack_require__(281);
+ __webpack_require__(282);
+ __webpack_require__(283);
+ __webpack_require__(285);
+ __webpack_require__(286);
+ __webpack_require__(287);
+ __webpack_require__(289);
+ module.exports = __webpack_require__(290);
/***/ },
@@ -167,307 +236,288 @@
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , $export = __webpack_require__(3)
- , DESCRIPTORS = __webpack_require__(8)
- , createDesc = __webpack_require__(10)
- , html = __webpack_require__(11)
- , cel = __webpack_require__(12)
- , has = __webpack_require__(14)
- , cof = __webpack_require__(15)
- , invoke = __webpack_require__(16)
- , fails = __webpack_require__(9)
- , anObject = __webpack_require__(17)
- , aFunction = __webpack_require__(7)
- , isObject = __webpack_require__(13)
- , toObject = __webpack_require__(18)
- , toIObject = __webpack_require__(20)
- , toInteger = __webpack_require__(22)
- , toIndex = __webpack_require__(23)
- , toLength = __webpack_require__(24)
- , IObject = __webpack_require__(21)
- , IE_PROTO = __webpack_require__(25)('__proto__')
- , createArrayMethod = __webpack_require__(26)
- , arrayIndexOf = __webpack_require__(31)(false)
- , ObjectProto = Object.prototype
- , ArrayProto = Array.prototype
- , arraySlice = ArrayProto.slice
- , arrayJoin = ArrayProto.join
- , defineProperty = $.setDesc
- , getOwnDescriptor = $.getDesc
- , defineProperties = $.setDescs
- , factories = {}
- , IE8_DOM_DEFINE;
-
- if(!DESCRIPTORS){
- IE8_DOM_DEFINE = !fails(function(){
- return defineProperty(cel('div'), 'a', {get: function(){ return 7; }}).a != 7;
- });
- $.setDesc = function(O, P, Attributes){
- if(IE8_DOM_DEFINE)try {
- return defineProperty(O, P, Attributes);
- } catch(e){ /* empty */ }
- if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
- if('value' in Attributes)anObject(O)[P] = Attributes.value;
- return O;
- };
- $.getDesc = function(O, P){
- if(IE8_DOM_DEFINE)try {
- return getOwnDescriptor(O, P);
- } catch(e){ /* empty */ }
- if(has(O, P))return createDesc(!ObjectProto.propertyIsEnumerable.call(O, P), O[P]);
- };
- $.setDescs = defineProperties = function(O, Properties){
- anObject(O);
- var keys = $.getKeys(Properties)
- , length = keys.length
- , i = 0
- , P;
- while(length > i)$.setDesc(O, P = keys[i++], Properties[P]);
- return O;
- };
- }
- $export($export.S + $export.F * !DESCRIPTORS, 'Object', {
- // 19.1.2.6 / 15.2.3.3 Object.getOwnPropertyDescriptor(O, P)
- getOwnPropertyDescriptor: $.getDesc,
- // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
- defineProperty: $.setDesc,
- // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
- defineProperties: defineProperties
- });
-
- // IE 8- don't enum bug keys
- var keys1 = ('constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,' +
- 'toLocaleString,toString,valueOf').split(',')
- // Additional keys for getOwnPropertyNames
- , keys2 = keys1.concat('length', 'prototype')
- , keysLen1 = keys1.length;
-
- // Create object with `null` prototype: use iframe Object with cleared prototype
- var createDict = function(){
- // Thrash, waste and sodomy: IE GC bug
- var iframe = cel('iframe')
- , i = keysLen1
- , gt = '>'
- , iframeDocument;
- iframe.style.display = 'none';
- html.appendChild(iframe);
- iframe.src = 'javascript:'; // eslint-disable-line no-script-url
- // createDict = iframe.contentWindow.Object;
- // html.removeChild(iframe);
- iframeDocument = iframe.contentWindow.document;
- iframeDocument.open();
- iframeDocument.write('<script>document.F=Object</script' + gt);
- iframeDocument.close();
- createDict = iframeDocument.F;
- while(i--)delete createDict.prototype[keys1[i]];
- return createDict();
+ // ECMAScript 6 symbols shim
+ var global = __webpack_require__(2)
+ , has = __webpack_require__(3)
+ , DESCRIPTORS = __webpack_require__(4)
+ , $export = __webpack_require__(6)
+ , redefine = __webpack_require__(18)
+ , META = __webpack_require__(19).KEY
+ , $fails = __webpack_require__(5)
+ , shared = __webpack_require__(21)
+ , setToStringTag = __webpack_require__(22)
+ , uid = __webpack_require__(20)
+ , wks = __webpack_require__(23)
+ , wksExt = __webpack_require__(24)
+ , wksDefine = __webpack_require__(25)
+ , keyOf = __webpack_require__(27)
+ , enumKeys = __webpack_require__(40)
+ , isArray = __webpack_require__(43)
+ , anObject = __webpack_require__(12)
+ , toIObject = __webpack_require__(30)
+ , toPrimitive = __webpack_require__(16)
+ , createDesc = __webpack_require__(17)
+ , _create = __webpack_require__(44)
+ , gOPNExt = __webpack_require__(47)
+ , $GOPD = __webpack_require__(49)
+ , $DP = __webpack_require__(11)
+ , $keys = __webpack_require__(28)
+ , gOPD = $GOPD.f
+ , dP = $DP.f
+ , gOPN = gOPNExt.f
+ , $Symbol = global.Symbol
+ , $JSON = global.JSON
+ , _stringify = $JSON && $JSON.stringify
+ , PROTOTYPE = 'prototype'
+ , HIDDEN = wks('_hidden')
+ , TO_PRIMITIVE = wks('toPrimitive')
+ , isEnum = {}.propertyIsEnumerable
+ , SymbolRegistry = shared('symbol-registry')
+ , AllSymbols = shared('symbols')
+ , OPSymbols = shared('op-symbols')
+ , ObjectProto = Object[PROTOTYPE]
+ , USE_NATIVE = typeof $Symbol == 'function'
+ , QObject = global.QObject;
+ // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
+ var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
+
+ // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
+ var setSymbolDesc = DESCRIPTORS && $fails(function(){
+ return _create(dP({}, 'a', {
+ get: function(){ return dP(this, 'a', {value: 7}).a; }
+ })).a != 7;
+ }) ? function(it, key, D){
+ var protoDesc = gOPD(ObjectProto, key);
+ if(protoDesc)delete ObjectProto[key];
+ dP(it, key, D);
+ if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);
+ } : dP;
+
+ var wrap = function(tag){
+ var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
+ sym._k = tag;
+ return sym;
};
- var createGetKeys = function(names, length){
- return function(object){
- var O = toIObject(object)
- , i = 0
- , result = []
- , key;
- for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
- // Don't enum bug & hidden keys
- while(length > i)if(has(O, key = names[i++])){
- ~arrayIndexOf(result, key) || result.push(key);
- }
- return result;
- };
+
+ var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){
+ return typeof it == 'symbol';
+ } : function(it){
+ return it instanceof $Symbol;
};
- var Empty = function(){};
- $export($export.S, 'Object', {
- // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
- getPrototypeOf: $.getProto = $.getProto || function(O){
- O = toObject(O);
- if(has(O, IE_PROTO))return O[IE_PROTO];
- if(typeof O.constructor == 'function' && O instanceof O.constructor){
- return O.constructor.prototype;
- } return O instanceof Object ? ObjectProto : null;
- },
- // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
- getOwnPropertyNames: $.getNames = $.getNames || createGetKeys(keys2, keys2.length, true),
- // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
- create: $.create = $.create || function(O, /*?*/Properties){
- var result;
- if(O !== null){
- Empty.prototype = anObject(O);
- result = new Empty();
- Empty.prototype = null;
- // add "__proto__" for Object.getPrototypeOf shim
- result[IE_PROTO] = O;
- } else result = createDict();
- return Properties === undefined ? result : defineProperties(result, Properties);
- },
- // 19.1.2.14 / 15.2.3.14 Object.keys(O)
- keys: $.getKeys = $.getKeys || createGetKeys(keys1, keysLen1, false)
- });
- var construct = function(F, len, args){
- if(!(len in factories)){
- for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';
- factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
- }
- return factories[len](F, args);
+ var $defineProperty = function defineProperty(it, key, D){
+ if(it === ObjectProto)$defineProperty(OPSymbols, key, D);
+ anObject(it);
+ key = toPrimitive(key, true);
+ anObject(D);
+ if(has(AllSymbols, key)){
+ if(!D.enumerable){
+ if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));
+ it[HIDDEN][key] = true;
+ } else {
+ if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
+ D = _create(D, {enumerable: createDesc(0, false)});
+ } return setSymbolDesc(it, key, D);
+ } return dP(it, key, D);
+ };
+ var $defineProperties = function defineProperties(it, P){
+ anObject(it);
+ var keys = enumKeys(P = toIObject(P))
+ , i = 0
+ , l = keys.length
+ , key;
+ while(l > i)$defineProperty(it, key = keys[i++], P[key]);
+ return it;
+ };
+ var $create = function create(it, P){
+ return P === undefined ? _create(it) : $defineProperties(_create(it), P);
+ };
+ var $propertyIsEnumerable = function propertyIsEnumerable(key){
+ var E = isEnum.call(this, key = toPrimitive(key, true));
+ if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;
+ return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
+ };
+ var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
+ it = toIObject(it);
+ key = toPrimitive(key, true);
+ if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;
+ var D = gOPD(it, key);
+ if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
+ return D;
+ };
+ var $getOwnPropertyNames = function getOwnPropertyNames(it){
+ var names = gOPN(toIObject(it))
+ , result = []
+ , i = 0
+ , key;
+ while(names.length > i){
+ if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);
+ } return result;
+ };
+ var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
+ var IS_OP = it === ObjectProto
+ , names = gOPN(IS_OP ? OPSymbols : toIObject(it))
+ , result = []
+ , i = 0
+ , key;
+ while(names.length > i){
+ if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);
+ } return result;
};
- // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
- $export($export.P, 'Function', {
- bind: function bind(that /*, args... */){
- var fn = aFunction(this)
- , partArgs = arraySlice.call(arguments, 1);
- var bound = function(/* args... */){
- var args = partArgs.concat(arraySlice.call(arguments));
- return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
+ // 19.4.1.1 Symbol([description])
+ if(!USE_NATIVE){
+ $Symbol = function Symbol(){
+ if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');
+ var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
+ var $set = function(value){
+ if(this === ObjectProto)$set.call(OPSymbols, value);
+ if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
+ setSymbolDesc(this, tag, createDesc(1, value));
};
- if(isObject(fn.prototype))bound.prototype = fn.prototype;
- return bound;
- }
- });
+ if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});
+ return wrap(tag);
+ };
+ redefine($Symbol[PROTOTYPE], 'toString', function toString(){
+ return this._k;
+ });
- // fallback for not array-like ES3 strings and DOM objects
- $export($export.P + $export.F * fails(function(){
- if(html)arraySlice.call(html);
- }), 'Array', {
- slice: function(begin, end){
- var len = toLength(this.length)
- , klass = cof(this);
- end = end === undefined ? len : end;
- if(klass == 'Array')return arraySlice.call(this, begin, end);
- var start = toIndex(begin, len)
- , upTo = toIndex(end, len)
- , size = toLength(upTo - start)
- , cloned = Array(size)
- , i = 0;
- for(; i < size; i++)cloned[i] = klass == 'String'
- ? this.charAt(start + i)
- : this[start + i];
- return cloned;
+ $GOPD.f = $getOwnPropertyDescriptor;
+ $DP.f = $defineProperty;
+ __webpack_require__(48).f = gOPNExt.f = $getOwnPropertyNames;
+ __webpack_require__(42).f = $propertyIsEnumerable;
+ __webpack_require__(41).f = $getOwnPropertySymbols;
+
+ if(DESCRIPTORS && !__webpack_require__(26)){
+ redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
}
- });
- $export($export.P + $export.F * (IObject != Object), 'Array', {
- join: function join(separator){
- return arrayJoin.call(IObject(this), separator === undefined ? ',' : separator);
+
+ wksExt.f = function(name){
+ return wrap(wks(name));
}
- });
+ }
- // 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
- $export($export.S, 'Array', {isArray: __webpack_require__(28)});
+ $export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});
- var createArrayReduce = function(isRight){
- return function(callbackfn, memo){
- aFunction(callbackfn);
- var O = IObject(this)
- , length = toLength(O.length)
- , index = isRight ? length - 1 : 0
- , i = isRight ? -1 : 1;
- if(arguments.length < 2)for(;;){
- if(index in O){
- memo = O[index];
- index += i;
- break;
- }
- index += i;
- if(isRight ? index < 0 : length <= index){
- throw TypeError('Reduce of empty array with no initial value');
- }
- }
- for(;isRight ? index >= 0 : length > index; index += i)if(index in O){
- memo = callbackfn(memo, O[index], index, this);
- }
- return memo;
- };
- };
+ for(var symbols = (
+ // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
+ 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
+ ).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);
- var methodize = function($fn){
- return function(arg1/*, arg2 = undefined */){
- return $fn(this, arg1, arguments[1]);
- };
- };
+ for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);
- $export($export.P, 'Array', {
- // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
- forEach: $.each = $.each || methodize(createArrayMethod(0)),
- // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
- map: methodize(createArrayMethod(1)),
- // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
- filter: methodize(createArrayMethod(2)),
- // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
- some: methodize(createArrayMethod(3)),
- // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
- every: methodize(createArrayMethod(4)),
- // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
- reduce: createArrayReduce(false),
- // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
- reduceRight: createArrayReduce(true),
- // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
- indexOf: methodize(arrayIndexOf),
- // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
- lastIndexOf: function(el, fromIndex /* = @[*-1] */){
- var O = toIObject(this)
- , length = toLength(O.length)
- , index = length - 1;
- if(arguments.length > 1)index = Math.min(index, toInteger(fromIndex));
- if(index < 0)index = toLength(length + index);
- for(;index >= 0; index--)if(index in O)if(O[index] === el)return index;
- return -1;
+ $export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
+ // 19.4.2.1 Symbol.for(key)
+ 'for': function(key){
+ return has(SymbolRegistry, key += '')
+ ? SymbolRegistry[key]
+ : SymbolRegistry[key] = $Symbol(key);
+ },
+ // 19.4.2.5 Symbol.keyFor(sym)
+ keyFor: function keyFor(key){
+ if(isSymbol(key))return keyOf(SymbolRegistry, key);
+ throw TypeError(key + ' is not a symbol!');
+ },
+ useSetter: function(){ setter = true; },
+ useSimple: function(){ setter = false; }
+ });
+
+ $export($export.S + $export.F * !USE_NATIVE, 'Object', {
+ // 19.1.2.2 Object.create(O [, Properties])
+ create: $create,
+ // 19.1.2.4 Object.defineProperty(O, P, Attributes)
+ defineProperty: $defineProperty,
+ // 19.1.2.3 Object.defineProperties(O, Properties)
+ defineProperties: $defineProperties,
+ // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
+ getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
+ // 19.1.2.7 Object.getOwnPropertyNames(O)
+ getOwnPropertyNames: $getOwnPropertyNames,
+ // 19.1.2.8 Object.getOwnPropertySymbols(O)
+ getOwnPropertySymbols: $getOwnPropertySymbols
+ });
+
+ // 24.3.2 JSON.stringify(value [, replacer [, space]])
+ $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){
+ var S = $Symbol();
+ // MS Edge converts symbol values to JSON as {}
+ // WebKit converts symbol values to JSON as null
+ // V8 throws on boxed symbols
+ return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
+ })), 'JSON', {
+ stringify: function stringify(it){
+ if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
+ var args = [it]
+ , i = 1
+ , replacer, $replacer;
+ while(arguments.length > i)args.push(arguments[i++]);
+ replacer = args[1];
+ if(typeof replacer == 'function')$replacer = replacer;
+ if($replacer || !isArray(replacer))replacer = function(key, value){
+ if($replacer)value = $replacer.call(this, key, value);
+ if(!isSymbol(value))return value;
+ };
+ args[1] = replacer;
+ return _stringify.apply($JSON, args);
}
});
- // 20.3.3.1 / 15.9.4.4 Date.now()
- $export($export.S, 'Date', {now: function(){ return +new Date; }});
+ // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
+ $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
+ // 19.4.3.5 Symbol.prototype[@@toStringTag]
+ setToStringTag($Symbol, 'Symbol');
+ // 20.2.1.9 Math[@@toStringTag]
+ setToStringTag(Math, 'Math', true);
+ // 24.3.3 JSON[@@toStringTag]
+ setToStringTag(global.JSON, 'JSON', true);
- var lz = function(num){
- return num > 9 ? num : '0' + num;
+/***/ },
+/* 2 */
+/***/ function(module, exports) {
+
+ // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+ var global = module.exports = typeof window != 'undefined' && window.Math == Math
+ ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
+ if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
+
+/***/ },
+/* 3 */
+/***/ function(module, exports) {
+
+ var hasOwnProperty = {}.hasOwnProperty;
+ module.exports = function(it, key){
+ return hasOwnProperty.call(it, key);
};
- // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
- // PhantomJS / old WebKit has a broken implementations
- $export($export.P + $export.F * (fails(function(){
- return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';
- }) || !fails(function(){
- new Date(NaN).toISOString();
- })), 'Date', {
- toISOString: function toISOString(){
- if(!isFinite(this))throw RangeError('Invalid time value');
- var d = this
- , y = d.getUTCFullYear()
- , m = d.getUTCMilliseconds()
- , s = y < 0 ? '-' : y > 9999 ? '+' : '';
- return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
- '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
- 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
- ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
- }
+/***/ },
+/* 4 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // Thank's IE8 for his funny defineProperty
+ module.exports = !__webpack_require__(5)(function(){
+ return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
});
/***/ },
-/* 2 */
+/* 5 */
/***/ function(module, exports) {
- var $Object = Object;
- module.exports = {
- create: $Object.create,
- getProto: $Object.getPrototypeOf,
- isEnum: {}.propertyIsEnumerable,
- getDesc: $Object.getOwnPropertyDescriptor,
- setDesc: $Object.defineProperty,
- setDescs: $Object.defineProperties,
- getKeys: $Object.keys,
- getNames: $Object.getOwnPropertyNames,
- getSymbols: $Object.getOwnPropertySymbols,
- each: [].forEach
+ module.exports = function(exec){
+ try {
+ return !!exec();
+ } catch(e){
+ return true;
+ }
};
/***/ },
-/* 3 */
+/* 6 */
/***/ function(module, exports, __webpack_require__) {
- var global = __webpack_require__(4)
- , core = __webpack_require__(5)
- , ctx = __webpack_require__(6)
+ var global = __webpack_require__(2)
+ , core = __webpack_require__(7)
+ , ctx = __webpack_require__(8)
+ , hide = __webpack_require__(10)
, PROTOTYPE = 'prototype';
var $export = function(type, name, source){
@@ -478,12 +528,13 @@
, IS_BIND = type & $export.B
, IS_WRAP = type & $export.W
, exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
+ , expProto = exports[PROTOTYPE]
, target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
, key, own, out;
if(IS_GLOBAL)source = name;
for(key in source){
// contains in native
- own = !IS_FORCED && target && key in target;
+ own = !IS_FORCED && target && target[key] !== undefined;
if(own && key in exports)continue;
// export native or passed
out = own ? target[key] : source[key];
@@ -493,47 +544,51 @@
: IS_BIND && own ? ctx(out, global)
// wrap global constructors for prevent change them in library
: IS_WRAP && target[key] == out ? (function(C){
- var F = function(param){
- return this instanceof C ? new C(param) : C(param);
+ var F = function(a, b, c){
+ if(this instanceof C){
+ switch(arguments.length){
+ case 0: return new C;
+ case 1: return new C(a);
+ case 2: return new C(a, b);
+ } return new C(a, b, c);
+ } return C.apply(this, arguments);
};
F[PROTOTYPE] = C[PROTOTYPE];
return F;
// make static versions for prototype methods
})(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
- if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
+ // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
+ if(IS_PROTO){
+ (exports.virtual || (exports.virtual = {}))[key] = out;
+ // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
+ if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
+ }
}
};
// type bitmap
- $export.F = 1; // forced
- $export.G = 2; // global
- $export.S = 4; // static
- $export.P = 8; // proto
- $export.B = 16; // bind
- $export.W = 32; // wrap
+ $export.F = 1; // forced
+ $export.G = 2; // global
+ $export.S = 4; // static
+ $export.P = 8; // proto
+ $export.B = 16; // bind
+ $export.W = 32; // wrap
+ $export.U = 64; // safe
+ $export.R = 128; // real proto method for `library`
module.exports = $export;
/***/ },
-/* 4 */
-/***/ function(module, exports) {
-
- // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
- var global = module.exports = typeof window != 'undefined' && window.Math == Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
- if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
-
-/***/ },
-/* 5 */
+/* 7 */
/***/ function(module, exports) {
- var core = module.exports = {version: '1.2.6'};
+ var core = module.exports = {version: '2.4.0'};
if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
/***/ },
-/* 6 */
+/* 8 */
/***/ function(module, exports, __webpack_require__) {
// optional / simple context binding
- var aFunction = __webpack_require__(7);
+ var aFunction = __webpack_require__(9);
module.exports = function(fn, that, length){
aFunction(fn);
if(that === undefined)return fn;
@@ -554,7 +609,7 @@
};
/***/ },
-/* 7 */
+/* 9 */
/***/ function(module, exports) {
module.exports = function(it){
@@ -563,55 +618,47 @@
};
/***/ },
-/* 8 */
-/***/ function(module, exports, __webpack_require__) {
-
- // Thank's IE8 for his funny defineProperty
- module.exports = !__webpack_require__(9)(function(){
- return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
- });
-
-/***/ },
-/* 9 */
-/***/ function(module, exports) {
-
- module.exports = function(exec){
- try {
- return !!exec();
- } catch(e){
- return true;
- }
- };
-
-/***/ },
/* 10 */
-/***/ function(module, exports) {
+/***/ function(module, exports, __webpack_require__) {
- module.exports = function(bitmap, value){
- return {
- enumerable : !(bitmap & 1),
- configurable: !(bitmap & 2),
- writable : !(bitmap & 4),
- value : value
- };
+ var dP = __webpack_require__(11)
+ , createDesc = __webpack_require__(17);
+ module.exports = __webpack_require__(4) ? function(object, key, value){
+ return dP.f(object, key, createDesc(1, value));
+ } : function(object, key, value){
+ object[key] = value;
+ return object;
};
/***/ },
/* 11 */
/***/ function(module, exports, __webpack_require__) {
- module.exports = __webpack_require__(4).document && document.documentElement;
+ var anObject = __webpack_require__(12)
+ , IE8_DOM_DEFINE = __webpack_require__(14)
+ , toPrimitive = __webpack_require__(16)
+ , dP = Object.defineProperty;
+
+ exports.f = __webpack_require__(4) ? Object.defineProperty : function defineProperty(O, P, Attributes){
+ anObject(O);
+ P = toPrimitive(P, true);
+ anObject(Attributes);
+ if(IE8_DOM_DEFINE)try {
+ return dP(O, P, Attributes);
+ } catch(e){ /* empty */ }
+ if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
+ if('value' in Attributes)O[P] = Attributes.value;
+ return O;
+ };
/***/ },
/* 12 */
/***/ function(module, exports, __webpack_require__) {
- var isObject = __webpack_require__(13)
- , document = __webpack_require__(4).document
- // in old IE typeof document.createElement is 'object'
- , is = isObject(document) && isObject(document.createElement);
+ var isObject = __webpack_require__(13);
module.exports = function(it){
- return is ? document.createElement(it) : {};
+ if(!isObject(it))throw TypeError(it + ' is not an object!');
+ return it;
};
/***/ },
@@ -624,250 +671,292 @@
/***/ },
/* 14 */
-/***/ function(module, exports) {
+/***/ function(module, exports, __webpack_require__) {
- var hasOwnProperty = {}.hasOwnProperty;
- module.exports = function(it, key){
- return hasOwnProperty.call(it, key);
- };
+ module.exports = !__webpack_require__(4) && !__webpack_require__(5)(function(){
+ return Object.defineProperty(__webpack_require__(15)('div'), 'a', {get: function(){ return 7; }}).a != 7;
+ });
/***/ },
/* 15 */
-/***/ function(module, exports) {
-
- var toString = {}.toString;
+/***/ function(module, exports, __webpack_require__) {
+ var isObject = __webpack_require__(13)
+ , document = __webpack_require__(2).document
+ // in old IE typeof document.createElement is 'object'
+ , is = isObject(document) && isObject(document.createElement);
module.exports = function(it){
- return toString.call(it).slice(8, -1);
+ return is ? document.createElement(it) : {};
};
/***/ },
/* 16 */
-/***/ function(module, exports) {
+/***/ function(module, exports, __webpack_require__) {
- // fast apply, http://jsperf.lnkit.com/fast-apply/5
- module.exports = function(fn, args, that){
- var un = that === undefined;
- switch(args.length){
- case 0: return un ? fn()
- : fn.call(that);
- case 1: return un ? fn(args[0])
- : fn.call(that, args[0]);
- case 2: return un ? fn(args[0], args[1])
- : fn.call(that, args[0], args[1]);
- case 3: return un ? fn(args[0], args[1], args[2])
- : fn.call(that, args[0], args[1], args[2]);
- case 4: return un ? fn(args[0], args[1], args[2], args[3])
- : fn.call(that, args[0], args[1], args[2], args[3]);
- } return fn.apply(that, args);
+ // 7.1.1 ToPrimitive(input [, PreferredType])
+ var isObject = __webpack_require__(13);
+ // instead of the ES6 spec version, we didn't implement @@toPrimitive case
+ // and the second argument - flag - preferred type is a string
+ module.exports = function(it, S){
+ if(!isObject(it))return it;
+ var fn, val;
+ if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+ if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
+ if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+ throw TypeError("Can't convert object to primitive value");
};
/***/ },
/* 17 */
-/***/ function(module, exports, __webpack_require__) {
+/***/ function(module, exports) {
- var isObject = __webpack_require__(13);
- module.exports = function(it){
- if(!isObject(it))throw TypeError(it + ' is not an object!');
- return it;
+ module.exports = function(bitmap, value){
+ return {
+ enumerable : !(bitmap & 1),
+ configurable: !(bitmap & 2),
+ writable : !(bitmap & 4),
+ value : value
+ };
};
/***/ },
/* 18 */
/***/ function(module, exports, __webpack_require__) {
- // 7.1.13 ToObject(argument)
- var defined = __webpack_require__(19);
- module.exports = function(it){
- return Object(defined(it));
- };
+ module.exports = __webpack_require__(10);
/***/ },
/* 19 */
-/***/ function(module, exports) {
+/***/ function(module, exports, __webpack_require__) {
- // 7.2.1 RequireObjectCoercible(argument)
- module.exports = function(it){
- if(it == undefined)throw TypeError("Can't call method on " + it);
+ var META = __webpack_require__(20)('meta')
+ , isObject = __webpack_require__(13)
+ , has = __webpack_require__(3)
+ , setDesc = __webpack_require__(11).f
+ , id = 0;
+ var isExtensible = Object.isExtensible || function(){
+ return true;
+ };
+ var FREEZE = !__webpack_require__(5)(function(){
+ return isExtensible(Object.preventExtensions({}));
+ });
+ var setMeta = function(it){
+ setDesc(it, META, {value: {
+ i: 'O' + ++id, // object ID
+ w: {} // weak collections IDs
+ }});
+ };
+ var fastKey = function(it, create){
+ // return primitive with prefix
+ if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+ if(!has(it, META)){
+ // can't set metadata to uncaught frozen object
+ if(!isExtensible(it))return 'F';
+ // not necessary to add metadata
+ if(!create)return 'E';
+ // add missing metadata
+ setMeta(it);
+ // return object ID
+ } return it[META].i;
+ };
+ var getWeak = function(it, create){
+ if(!has(it, META)){
+ // can't set metadata to uncaught frozen object
+ if(!isExtensible(it))return true;
+ // not necessary to add metadata
+ if(!create)return false;
+ // add missing metadata
+ setMeta(it);
+ // return hash weak collections IDs
+ } return it[META].w;
+ };
+ // add metadata on freeze-family methods calling
+ var onFreeze = function(it){
+ if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);
return it;
};
+ var meta = module.exports = {
+ KEY: META,
+ NEED: false,
+ fastKey: fastKey,
+ getWeak: getWeak,
+ onFreeze: onFreeze
+ };
/***/ },
/* 20 */
-/***/ function(module, exports, __webpack_require__) {
+/***/ function(module, exports) {
- // to indexed object, toObject with fallback for non-array-like ES3 strings
- var IObject = __webpack_require__(21)
- , defined = __webpack_require__(19);
- module.exports = function(it){
- return IObject(defined(it));
+ var id = 0
+ , px = Math.random();
+ module.exports = function(key){
+ return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};
/***/ },
/* 21 */
/***/ function(module, exports, __webpack_require__) {
- // fallback for non-array-like ES3 and non-enumerable old V8 strings
- var cof = __webpack_require__(15);
- module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
- return cof(it) == 'String' ? it.split('') : Object(it);
+ var global = __webpack_require__(2)
+ , SHARED = '__core-js_shared__'
+ , store = global[SHARED] || (global[SHARED] = {});
+ module.exports = function(key){
+ return store[key] || (store[key] = {});
};
/***/ },
/* 22 */
-/***/ function(module, exports) {
+/***/ function(module, exports, __webpack_require__) {
- // 7.1.4 ToInteger
- var ceil = Math.ceil
- , floor = Math.floor;
- module.exports = function(it){
- return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
+ var def = __webpack_require__(11).f
+ , has = __webpack_require__(3)
+ , TAG = __webpack_require__(23)('toStringTag');
+
+ module.exports = function(it, tag, stat){
+ if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
};
/***/ },
/* 23 */
/***/ function(module, exports, __webpack_require__) {
- var toInteger = __webpack_require__(22)
- , max = Math.max
- , min = Math.min;
- module.exports = function(index, length){
- index = toInteger(index);
- return index < 0 ? max(index + length, 0) : min(index, length);
+ var store = __webpack_require__(21)('wks')
+ , uid = __webpack_require__(20)
+ , Symbol = __webpack_require__(2).Symbol
+ , USE_SYMBOL = typeof Symbol == 'function';
+
+ var $exports = module.exports = function(name){
+ return store[name] || (store[name] =
+ USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};
+ $exports.store = store;
+
/***/ },
/* 24 */
/***/ function(module, exports, __webpack_require__) {
- // 7.1.15 ToLength
- var toInteger = __webpack_require__(22)
- , min = Math.min;
- module.exports = function(it){
- return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
- };
+ exports.f = __webpack_require__(23);
/***/ },
/* 25 */
-/***/ function(module, exports) {
+/***/ function(module, exports, __webpack_require__) {
- var id = 0
- , px = Math.random();
- module.exports = function(key){
- return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
+ var global = __webpack_require__(2)
+ , core = __webpack_require__(7)
+ , LIBRARY = __webpack_require__(26)
+ , wksExt = __webpack_require__(24)
+ , defineProperty = __webpack_require__(11).f;
+ module.exports = function(name){
+ var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
+ if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});
};
/***/ },
/* 26 */
-/***/ function(module, exports, __webpack_require__) {
+/***/ function(module, exports) {
- // 0 -> Array#forEach
- // 1 -> Array#map
- // 2 -> Array#filter
- // 3 -> Array#some
- // 4 -> Array#every
- // 5 -> Array#find
- // 6 -> Array#findIndex
- var ctx = __webpack_require__(6)
- , IObject = __webpack_require__(21)
- , toObject = __webpack_require__(18)
- , toLength = __webpack_require__(24)
- , asc = __webpack_require__(27);
- module.exports = function(TYPE){
- var IS_MAP = TYPE == 1
- , IS_FILTER = TYPE == 2
- , IS_SOME = TYPE == 3
- , IS_EVERY = TYPE == 4
- , IS_FIND_INDEX = TYPE == 6
- , NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
- return function($this, callbackfn, that){
- var O = toObject($this)
- , self = IObject(O)
- , f = ctx(callbackfn, that, 3)
- , length = toLength(self.length)
- , index = 0
- , result = IS_MAP ? asc($this, length) : IS_FILTER ? asc($this, 0) : undefined
- , val, res;
- for(;length > index; index++)if(NO_HOLES || index in self){
- val = self[index];
- res = f(val, index, O);
- if(TYPE){
- if(IS_MAP)result[index] = res; // map
- else if(res)switch(TYPE){
- case 3: return true; // some
- case 5: return val; // find
- case 6: return index; // findIndex
- case 2: result.push(val); // filter
- } else if(IS_EVERY)return false; // every
- }
- }
- return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
- };
- };
+ module.exports = true;
/***/ },
/* 27 */
/***/ function(module, exports, __webpack_require__) {
- // 9.4.2.3 ArraySpeciesCreate(originalArray, length)
- var isObject = __webpack_require__(13)
- , isArray = __webpack_require__(28)
- , SPECIES = __webpack_require__(29)('species');
- module.exports = function(original, length){
- var C;
- if(isArray(original)){
- C = original.constructor;
- // cross-realm fallback
- if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;
- if(isObject(C)){
- C = C[SPECIES];
- if(C === null)C = undefined;
- }
- } return new (C === undefined ? Array : C)(length);
+ var getKeys = __webpack_require__(28)
+ , toIObject = __webpack_require__(30);
+ module.exports = function(object, el){
+ var O = toIObject(object)
+ , keys = getKeys(O)
+ , length = keys.length
+ , index = 0
+ , key;
+ while(length > index)if(O[key = keys[index++]] === el)return key;
};
/***/ },
/* 28 */
/***/ function(module, exports, __webpack_require__) {
- // 7.2.2 IsArray(argument)
- var cof = __webpack_require__(15);
- module.exports = Array.isArray || function(arg){
- return cof(arg) == 'Array';
+ // 19.1.2.14 / 15.2.3.14 Object.keys(O)
+ var $keys = __webpack_require__(29)
+ , enumBugKeys = __webpack_require__(39);
+
+ module.exports = Object.keys || function keys(O){
+ return $keys(O, enumBugKeys);
};
/***/ },
/* 29 */
/***/ function(module, exports, __webpack_require__) {
- var store = __webpack_require__(30)('wks')
- , uid = __webpack_require__(25)
- , Symbol = __webpack_require__(4).Symbol;
- module.exports = function(name){
- return store[name] || (store[name] =
- Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));
+ var has = __webpack_require__(3)
+ , toIObject = __webpack_require__(30)
+ , arrayIndexOf = __webpack_require__(34)(false)
+ , IE_PROTO = __webpack_require__(38)('IE_PROTO');
+
+ module.exports = function(object, names){
+ var O = toIObject(object)
+ , i = 0
+ , result = []
+ , key;
+ for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
+ // Don't enum bug & hidden keys
+ while(names.length > i)if(has(O, key = names[i++])){
+ ~arrayIndexOf(result, key) || result.push(key);
+ }
+ return result;
};
/***/ },
/* 30 */
/***/ function(module, exports, __webpack_require__) {
- var global = __webpack_require__(4)
- , SHARED = '__core-js_shared__'
- , store = global[SHARED] || (global[SHARED] = {});
- module.exports = function(key){
- return store[key] || (store[key] = {});
+ // to indexed object, toObject with fallback for non-array-like ES3 strings
+ var IObject = __webpack_require__(31)
+ , defined = __webpack_require__(33);
+ module.exports = function(it){
+ return IObject(defined(it));
};
/***/ },
/* 31 */
/***/ function(module, exports, __webpack_require__) {
+ // fallback for non-array-like ES3 and non-enumerable old V8 strings
+ var cof = __webpack_require__(32);
+ module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
+ return cof(it) == 'String' ? it.split('') : Object(it);
+ };
+
+/***/ },
+/* 32 */
+/***/ function(module, exports) {
+
+ var toString = {}.toString;
+
+ module.exports = function(it){
+ return toString.call(it).slice(8, -1);
+ };
+
+/***/ },
+/* 33 */
+/***/ function(module, exports) {
+
+ // 7.2.1 RequireObjectCoercible(argument)
+ module.exports = function(it){
+ if(it == undefined)throw TypeError("Can't call method on " + it);
+ return it;
+ };
+
+/***/ },
+/* 34 */
+/***/ function(module, exports, __webpack_require__) {
+
// false -> Array#indexOf
// true -> Array#includes
- var toIObject = __webpack_require__(20)
- , toLength = __webpack_require__(24)
- , toIndex = __webpack_require__(23);
+ var toIObject = __webpack_require__(30)
+ , toLength = __webpack_require__(35)
+ , toIndex = __webpack_require__(37);
module.exports = function(IS_INCLUDES){
return function($this, el, fromIndex){
var O = toIObject($this)
@@ -880,617 +969,797 @@
if(value != value)return true;
// Array#toIndex ignores holes, Array#includes - not
} else for(;length > index; index++)if(IS_INCLUDES || index in O){
- if(O[index] === el)return IS_INCLUDES || index;
+ if(O[index] === el)return IS_INCLUDES || index || 0;
} return !IS_INCLUDES && -1;
};
};
/***/ },
-/* 32 */
+/* 35 */
/***/ function(module, exports, __webpack_require__) {
- 'use strict';
- // ECMAScript 6 symbols shim
- var $ = __webpack_require__(2)
- , global = __webpack_require__(4)
- , has = __webpack_require__(14)
- , DESCRIPTORS = __webpack_require__(8)
- , $export = __webpack_require__(3)
- , redefine = __webpack_require__(33)
- , $fails = __webpack_require__(9)
- , shared = __webpack_require__(30)
- , setToStringTag = __webpack_require__(35)
- , uid = __webpack_require__(25)
- , wks = __webpack_require__(29)
- , keyOf = __webpack_require__(36)
- , $names = __webpack_require__(37)
- , enumKeys = __webpack_require__(38)
- , isArray = __webpack_require__(28)
- , anObject = __webpack_require__(17)
- , toIObject = __webpack_require__(20)
- , createDesc = __webpack_require__(10)
- , getDesc = $.getDesc
- , setDesc = $.setDesc
- , _create = $.create
- , getNames = $names.get
- , $Symbol = global.Symbol
- , $JSON = global.JSON
- , _stringify = $JSON && $JSON.stringify
- , setter = false
- , HIDDEN = wks('_hidden')
- , isEnum = $.isEnum
- , SymbolRegistry = shared('symbol-registry')
- , AllSymbols = shared('symbols')
- , useNative = typeof $Symbol == 'function'
- , ObjectProto = Object.prototype;
-
- // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
- var setSymbolDesc = DESCRIPTORS && $fails(function(){
- return _create(setDesc({}, 'a', {
- get: function(){ return setDesc(this, 'a', {value: 7}).a; }
- })).a != 7;
- }) ? function(it, key, D){
- var protoDesc = getDesc(ObjectProto, key);
- if(protoDesc)delete ObjectProto[key];
- setDesc(it, key, D);
- if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);
- } : setDesc;
-
- var wrap = function(tag){
- var sym = AllSymbols[tag] = _create($Symbol.prototype);
- sym._k = tag;
- DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {
- configurable: true,
- set: function(value){
- if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
- setSymbolDesc(this, tag, createDesc(1, value));
- }
- });
- return sym;
+ // 7.1.15 ToLength
+ var toInteger = __webpack_require__(36)
+ , min = Math.min;
+ module.exports = function(it){
+ return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};
- var isSymbol = function(it){
- return typeof it == 'symbol';
- };
+/***/ },
+/* 36 */
+/***/ function(module, exports) {
- var $defineProperty = function defineProperty(it, key, D){
- if(D && has(AllSymbols, key)){
- if(!D.enumerable){
- if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));
- it[HIDDEN][key] = true;
- } else {
- if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
- D = _create(D, {enumerable: createDesc(0, false)});
- } return setSymbolDesc(it, key, D);
- } return setDesc(it, key, D);
- };
- var $defineProperties = function defineProperties(it, P){
- anObject(it);
- var keys = enumKeys(P = toIObject(P))
- , i = 0
- , l = keys.length
- , key;
- while(l > i)$defineProperty(it, key = keys[i++], P[key]);
- return it;
- };
- var $create = function create(it, P){
- return P === undefined ? _create(it) : $defineProperties(_create(it), P);
- };
- var $propertyIsEnumerable = function propertyIsEnumerable(key){
- var E = isEnum.call(this, key);
- return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]
- ? E : true;
- };
- var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
- var D = getDesc(it = toIObject(it), key);
- if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
- return D;
- };
- var $getOwnPropertyNames = function getOwnPropertyNames(it){
- var names = getNames(toIObject(it))
- , result = []
- , i = 0
- , key;
- while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);
- return result;
- };
- var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
- var names = getNames(toIObject(it))
- , result = []
- , i = 0
- , key;
- while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);
- return result;
- };
- var $stringify = function stringify(it){
- if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
- var args = [it]
- , i = 1
- , $$ = arguments
- , replacer, $replacer;
- while($$.length > i)args.push($$[i++]);
- replacer = args[1];
- if(typeof replacer == 'function')$replacer = replacer;
- if($replacer || !isArray(replacer))replacer = function(key, value){
- if($replacer)value = $replacer.call(this, key, value);
- if(!isSymbol(value))return value;
- };
- args[1] = replacer;
- return _stringify.apply($JSON, args);
+ // 7.1.4 ToInteger
+ var ceil = Math.ceil
+ , floor = Math.floor;
+ module.exports = function(it){
+ return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};
- var buggyJSON = $fails(function(){
- var S = $Symbol();
- // MS Edge converts symbol values to JSON as {}
- // WebKit converts symbol values to JSON as null
- // V8 throws on boxed symbols
- return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
- });
- // 19.4.1.1 Symbol([description])
- if(!useNative){
- $Symbol = function Symbol(){
- if(isSymbol(this))throw TypeError('Symbol is not a constructor');
- return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));
- };
- redefine($Symbol.prototype, 'toString', function toString(){
- return this._k;
- });
-
- isSymbol = function(it){
- return it instanceof $Symbol;
- };
+/***/ },
+/* 37 */
+/***/ function(module, exports, __webpack_require__) {
- $.create = $create;
- $.isEnum = $propertyIsEnumerable;
- $.getDesc = $getOwnPropertyDescriptor;
- $.setDesc = $defineProperty;
- $.setDescs = $defineProperties;
- $.getNames = $names.get = $getOwnPropertyNames;
- $.getSymbols = $getOwnPropertySymbols;
+ var toInteger = __webpack_require__(36)
+ , max = Math.max
+ , min = Math.min;
+ module.exports = function(index, length){
+ index = toInteger(index);
+ return index < 0 ? max(index + length, 0) : min(index, length);
+ };
- if(DESCRIPTORS && !__webpack_require__(39)){
- redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
- }
- }
+/***/ },
+/* 38 */
+/***/ function(module, exports, __webpack_require__) {
- var symbolStatics = {
- // 19.4.2.1 Symbol.for(key)
- 'for': function(key){
- return has(SymbolRegistry, key += '')
- ? SymbolRegistry[key]
- : SymbolRegistry[key] = $Symbol(key);
- },
- // 19.4.2.5 Symbol.keyFor(sym)
- keyFor: function keyFor(key){
- return keyOf(SymbolRegistry, key);
- },
- useSetter: function(){ setter = true; },
- useSimple: function(){ setter = false; }
+ var shared = __webpack_require__(21)('keys')
+ , uid = __webpack_require__(20);
+ module.exports = function(key){
+ return shared[key] || (shared[key] = uid(key));
};
- // 19.4.2.2 Symbol.hasInstance
- // 19.4.2.3 Symbol.isConcatSpreadable
- // 19.4.2.4 Symbol.iterator
- // 19.4.2.6 Symbol.match
- // 19.4.2.8 Symbol.replace
- // 19.4.2.9 Symbol.search
- // 19.4.2.10 Symbol.species
- // 19.4.2.11 Symbol.split
- // 19.4.2.12 Symbol.toPrimitive
- // 19.4.2.13 Symbol.toStringTag
- // 19.4.2.14 Symbol.unscopables
- $.each.call((
- 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +
- 'species,split,toPrimitive,toStringTag,unscopables'
- ).split(','), function(it){
- var sym = wks(it);
- symbolStatics[it] = useNative ? sym : wrap(sym);
- });
- setter = true;
+/***/ },
+/* 39 */
+/***/ function(module, exports) {
- $export($export.G + $export.W, {Symbol: $Symbol});
+ // IE 8- don't enum bug keys
+ module.exports = (
+ 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
+ ).split(',');
- $export($export.S, 'Symbol', symbolStatics);
+/***/ },
+/* 40 */
+/***/ function(module, exports, __webpack_require__) {
- $export($export.S + $export.F * !useNative, 'Object', {
- // 19.1.2.2 Object.create(O [, Properties])
- create: $create,
- // 19.1.2.4 Object.defineProperty(O, P, Attributes)
- defineProperty: $defineProperty,
- // 19.1.2.3 Object.defineProperties(O, Properties)
- defineProperties: $defineProperties,
- // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
- getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
- // 19.1.2.7 Object.getOwnPropertyNames(O)
- getOwnPropertyNames: $getOwnPropertyNames,
- // 19.1.2.8 Object.getOwnPropertySymbols(O)
- getOwnPropertySymbols: $getOwnPropertySymbols
- });
+ // all enumerable object keys, includes symbols
+ var getKeys = __webpack_require__(28)
+ , gOPS = __webpack_require__(41)
+ , pIE = __webpack_require__(42);
+ module.exports = function(it){
+ var result = getKeys(it)
+ , getSymbols = gOPS.f;
+ if(getSymbols){
+ var symbols = getSymbols(it)
+ , isEnum = pIE.f
+ , i = 0
+ , key;
+ while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);
+ } return result;
+ };
- // 24.3.2 JSON.stringify(value [, replacer [, space]])
- $JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});
+/***/ },
+/* 41 */
+/***/ function(module, exports) {
- // 19.4.3.5 Symbol.prototype[@@toStringTag]
- setToStringTag($Symbol, 'Symbol');
- // 20.2.1.9 Math[@@toStringTag]
- setToStringTag(Math, 'Math', true);
- // 24.3.3 JSON[@@toStringTag]
- setToStringTag(global.JSON, 'JSON', true);
+ exports.f = Object.getOwnPropertySymbols;
/***/ },
-/* 33 */
-/***/ function(module, exports, __webpack_require__) {
+/* 42 */
+/***/ function(module, exports) {
- module.exports = __webpack_require__(34);
+ exports.f = {}.propertyIsEnumerable;
/***/ },
-/* 34 */
+/* 43 */
/***/ function(module, exports, __webpack_require__) {
- var $ = __webpack_require__(2)
- , createDesc = __webpack_require__(10);
- module.exports = __webpack_require__(8) ? function(object, key, value){
- return $.setDesc(object, key, createDesc(1, value));
- } : function(object, key, value){
- object[key] = value;
- return object;
+ // 7.2.2 IsArray(argument)
+ var cof = __webpack_require__(32);
+ module.exports = Array.isArray || function isArray(arg){
+ return cof(arg) == 'Array';
};
/***/ },
-/* 35 */
+/* 44 */
/***/ function(module, exports, __webpack_require__) {
- var def = __webpack_require__(2).setDesc
- , has = __webpack_require__(14)
- , TAG = __webpack_require__(29)('toStringTag');
+ // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
+ var anObject = __webpack_require__(12)
+ , dPs = __webpack_require__(45)
+ , enumBugKeys = __webpack_require__(39)
+ , IE_PROTO = __webpack_require__(38)('IE_PROTO')
+ , Empty = function(){ /* empty */ }
+ , PROTOTYPE = 'prototype';
- module.exports = function(it, tag, stat){
- if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
+ // Create object with fake `null` prototype: use iframe Object with cleared prototype
+ var createDict = function(){
+ // Thrash, waste and sodomy: IE GC bug
+ var iframe = __webpack_require__(15)('iframe')
+ , i = enumBugKeys.length
+ , lt = '<'
+ , gt = '>'
+ , iframeDocument;
+ iframe.style.display = 'none';
+ __webpack_require__(46).appendChild(iframe);
+ iframe.src = 'javascript:'; // eslint-disable-line no-script-url
+ // createDict = iframe.contentWindow.Object;
+ // html.removeChild(iframe);
+ iframeDocument = iframe.contentWindow.document;
+ iframeDocument.open();
+ iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
+ iframeDocument.close();
+ createDict = iframeDocument.F;
+ while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];
+ return createDict();
};
+ module.exports = Object.create || function create(O, Properties){
+ var result;
+ if(O !== null){
+ Empty[PROTOTYPE] = anObject(O);
+ result = new Empty;
+ Empty[PROTOTYPE] = null;
+ // add "__proto__" for Object.getPrototypeOf polyfill
+ result[IE_PROTO] = O;
+ } else result = createDict();
+ return Properties === undefined ? result : dPs(result, Properties);
+ };
+
+
/***/ },
-/* 36 */
+/* 45 */
/***/ function(module, exports, __webpack_require__) {
- var $ = __webpack_require__(2)
- , toIObject = __webpack_require__(20);
- module.exports = function(object, el){
- var O = toIObject(object)
- , keys = $.getKeys(O)
+ var dP = __webpack_require__(11)
+ , anObject = __webpack_require__(12)
+ , getKeys = __webpack_require__(28);
+
+ module.exports = __webpack_require__(4) ? Object.defineProperties : function defineProperties(O, Properties){
+ anObject(O);
+ var keys = getKeys(Properties)
, length = keys.length
- , index = 0
- , key;
- while(length > index)if(O[key = keys[index++]] === el)return key;
+ , i = 0
+ , P;
+ while(length > i)dP.f(O, P = keys[i++], Properties[P]);
+ return O;
};
/***/ },
-/* 37 */
+/* 46 */
+/***/ function(module, exports, __webpack_require__) {
+
+ module.exports = __webpack_require__(2).document && document.documentElement;
+
+/***/ },
+/* 47 */
/***/ function(module, exports, __webpack_require__) {
// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
- var toIObject = __webpack_require__(20)
- , getNames = __webpack_require__(2).getNames
+ var toIObject = __webpack_require__(30)
+ , gOPN = __webpack_require__(48).f
, toString = {}.toString;
- var windowNames = typeof window == 'object' && Object.getOwnPropertyNames
+ var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
? Object.getOwnPropertyNames(window) : [];
var getWindowNames = function(it){
try {
- return getNames(it);
+ return gOPN(it);
} catch(e){
return windowNames.slice();
}
};
- module.exports.get = function getOwnPropertyNames(it){
- if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);
- return getNames(toIObject(it));
+ module.exports.f = function getOwnPropertyNames(it){
+ return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
};
+
/***/ },
-/* 38 */
+/* 48 */
/***/ function(module, exports, __webpack_require__) {
- // all enumerable object keys, includes symbols
- var $ = __webpack_require__(2);
- module.exports = function(it){
- var keys = $.getKeys(it)
- , getSymbols = $.getSymbols;
- if(getSymbols){
- var symbols = getSymbols(it)
- , isEnum = $.isEnum
- , i = 0
- , key;
- while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);
- }
- return keys;
+ // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
+ var $keys = __webpack_require__(29)
+ , hiddenKeys = __webpack_require__(39).concat('length', 'prototype');
+
+ exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){
+ return $keys(O, hiddenKeys);
};
/***/ },
-/* 39 */
-/***/ function(module, exports) {
+/* 49 */
+/***/ function(module, exports, __webpack_require__) {
- module.exports = true;
+ var pIE = __webpack_require__(42)
+ , createDesc = __webpack_require__(17)
+ , toIObject = __webpack_require__(30)
+ , toPrimitive = __webpack_require__(16)
+ , has = __webpack_require__(3)
+ , IE8_DOM_DEFINE = __webpack_require__(14)
+ , gOPD = Object.getOwnPropertyDescriptor;
+
+ exports.f = __webpack_require__(4) ? gOPD : function getOwnPropertyDescriptor(O, P){
+ O = toIObject(O);
+ P = toPrimitive(P, true);
+ if(IE8_DOM_DEFINE)try {
+ return gOPD(O, P);
+ } catch(e){ /* empty */ }
+ if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);
+ };
/***/ },
-/* 40 */
+/* 50 */
/***/ function(module, exports, __webpack_require__) {
- // 19.1.3.1 Object.assign(target, source)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
+ // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
+ $export($export.S + $export.F * !__webpack_require__(4), 'Object', {defineProperty: __webpack_require__(11).f});
+
+/***/ },
+/* 51 */
+/***/ function(module, exports, __webpack_require__) {
- $export($export.S + $export.F, 'Object', {assign: __webpack_require__(41)});
+ var $export = __webpack_require__(6);
+ // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
+ $export($export.S + $export.F * !__webpack_require__(4), 'Object', {defineProperties: __webpack_require__(45)});
/***/ },
-/* 41 */
+/* 52 */
/***/ function(module, exports, __webpack_require__) {
- // 19.1.2.1 Object.assign(target, source, ...)
- var $ = __webpack_require__(2)
- , toObject = __webpack_require__(18)
- , IObject = __webpack_require__(21);
+ // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
+ var toIObject = __webpack_require__(30)
+ , $getOwnPropertyDescriptor = __webpack_require__(49).f;
- // should work with symbols and should have deterministic property order (V8 bug)
- module.exports = __webpack_require__(9)(function(){
- var a = Object.assign
- , A = {}
- , B = {}
- , S = Symbol()
- , K = 'abcdefghijklmnopqrst';
- A[S] = 7;
- K.split('').forEach(function(k){ B[k] = k; });
- return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;
- }) ? function assign(target, source){ // eslint-disable-line no-unused-vars
- var T = toObject(target)
- , $$ = arguments
- , $$len = $$.length
- , index = 1
- , getKeys = $.getKeys
- , getSymbols = $.getSymbols
- , isEnum = $.isEnum;
- while($$len > index){
- var S = IObject($$[index++])
- , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
- , length = keys.length
- , j = 0
- , key;
- while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
- }
- return T;
- } : Object.assign;
+ __webpack_require__(53)('getOwnPropertyDescriptor', function(){
+ return function getOwnPropertyDescriptor(it, key){
+ return $getOwnPropertyDescriptor(toIObject(it), key);
+ };
+ });
/***/ },
-/* 42 */
+/* 53 */
/***/ function(module, exports, __webpack_require__) {
- // 19.1.3.10 Object.is(value1, value2)
- var $export = __webpack_require__(3);
- $export($export.S, 'Object', {is: __webpack_require__(43)});
+ // most Object methods by ES6 should accept primitives
+ var $export = __webpack_require__(6)
+ , core = __webpack_require__(7)
+ , fails = __webpack_require__(5);
+ module.exports = function(KEY, exec){
+ var fn = (core.Object || {})[KEY] || Object[KEY]
+ , exp = {};
+ exp[KEY] = exec(fn);
+ $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
+ };
/***/ },
-/* 43 */
-/***/ function(module, exports) {
+/* 54 */
+/***/ function(module, exports, __webpack_require__) {
- // 7.2.9 SameValue(x, y)
- module.exports = Object.is || function is(x, y){
- return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
- };
+ var $export = __webpack_require__(6)
+ // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
+ $export($export.S, 'Object', {create: __webpack_require__(44)});
/***/ },
-/* 44 */
+/* 55 */
/***/ function(module, exports, __webpack_require__) {
- // 19.1.3.19 Object.setPrototypeOf(O, proto)
- var $export = __webpack_require__(3);
- $export($export.S, 'Object', {setPrototypeOf: __webpack_require__(45).set});
+ // 19.1.2.9 Object.getPrototypeOf(O)
+ var toObject = __webpack_require__(56)
+ , $getPrototypeOf = __webpack_require__(57);
+
+ __webpack_require__(53)('getPrototypeOf', function(){
+ return function getPrototypeOf(it){
+ return $getPrototypeOf(toObject(it));
+ };
+ });
/***/ },
-/* 45 */
+/* 56 */
/***/ function(module, exports, __webpack_require__) {
- // Works with __proto__ only. Old v8 can't work with null proto objects.
- /* eslint-disable no-proto */
- var getDesc = __webpack_require__(2).getDesc
- , isObject = __webpack_require__(13)
- , anObject = __webpack_require__(17);
- var check = function(O, proto){
- anObject(O);
- if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!");
+ // 7.1.13 ToObject(argument)
+ var defined = __webpack_require__(33);
+ module.exports = function(it){
+ return Object(defined(it));
};
- module.exports = {
- set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
- function(test, buggy, set){
- try {
- set = __webpack_require__(6)(Function.call, getDesc(Object.prototype, '__proto__').set, 2);
- set(test, []);
- buggy = !(test instanceof Array);
- } catch(e){ buggy = true; }
- return function setPrototypeOf(O, proto){
- check(O, proto);
- if(buggy)O.__proto__ = proto;
- else set(O, proto);
- return O;
- };
- }({}, false) : undefined),
- check: check
+
+/***/ },
+/* 57 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
+ var has = __webpack_require__(3)
+ , toObject = __webpack_require__(56)
+ , IE_PROTO = __webpack_require__(38)('IE_PROTO')
+ , ObjectProto = Object.prototype;
+
+ module.exports = Object.getPrototypeOf || function(O){
+ O = toObject(O);
+ if(has(O, IE_PROTO))return O[IE_PROTO];
+ if(typeof O.constructor == 'function' && O instanceof O.constructor){
+ return O.constructor.prototype;
+ } return O instanceof Object ? ObjectProto : null;
};
/***/ },
-/* 46 */
+/* 58 */
/***/ function(module, exports, __webpack_require__) {
- // 19.1.2.5 Object.freeze(O)
- var isObject = __webpack_require__(13);
+ // 19.1.2.14 Object.keys(O)
+ var toObject = __webpack_require__(56)
+ , $keys = __webpack_require__(28);
- __webpack_require__(47)('freeze', function($freeze){
- return function freeze(it){
- return $freeze && isObject(it) ? $freeze(it) : it;
+ __webpack_require__(53)('keys', function(){
+ return function keys(it){
+ return $keys(toObject(it));
};
});
/***/ },
-/* 47 */
+/* 59 */
/***/ function(module, exports, __webpack_require__) {
- // most Object methods by ES6 should accept primitives
- var $export = __webpack_require__(3)
- , core = __webpack_require__(5)
- , fails = __webpack_require__(9);
- module.exports = function(KEY, exec){
- var fn = (core.Object || {})[KEY] || Object[KEY]
- , exp = {};
- exp[KEY] = exec(fn);
- $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
- };
+ // 19.1.2.7 Object.getOwnPropertyNames(O)
+ __webpack_require__(53)('getOwnPropertyNames', function(){
+ return __webpack_require__(47).f;
+ });
/***/ },
-/* 48 */
+/* 60 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 19.1.2.5 Object.freeze(O)
+ var isObject = __webpack_require__(13)
+ , meta = __webpack_require__(19).onFreeze;
+
+ __webpack_require__(53)('freeze', function($freeze){
+ return function freeze(it){
+ return $freeze && isObject(it) ? $freeze(meta(it)) : it;
+ };
+ });
+
+/***/ },
+/* 61 */
/***/ function(module, exports, __webpack_require__) {
// 19.1.2.17 Object.seal(O)
- var isObject = __webpack_require__(13);
+ var isObject = __webpack_require__(13)
+ , meta = __webpack_require__(19).onFreeze;
- __webpack_require__(47)('seal', function($seal){
+ __webpack_require__(53)('seal', function($seal){
return function seal(it){
- return $seal && isObject(it) ? $seal(it) : it;
+ return $seal && isObject(it) ? $seal(meta(it)) : it;
};
});
/***/ },
-/* 49 */
+/* 62 */
/***/ function(module, exports, __webpack_require__) {
// 19.1.2.15 Object.preventExtensions(O)
- var isObject = __webpack_require__(13);
+ var isObject = __webpack_require__(13)
+ , meta = __webpack_require__(19).onFreeze;
- __webpack_require__(47)('preventExtensions', function($preventExtensions){
+ __webpack_require__(53)('preventExtensions', function($preventExtensions){
return function preventExtensions(it){
- return $preventExtensions && isObject(it) ? $preventExtensions(it) : it;
+ return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;
};
});
/***/ },
-/* 50 */
+/* 63 */
/***/ function(module, exports, __webpack_require__) {
// 19.1.2.12 Object.isFrozen(O)
var isObject = __webpack_require__(13);
- __webpack_require__(47)('isFrozen', function($isFrozen){
+ __webpack_require__(53)('isFrozen', function($isFrozen){
return function isFrozen(it){
return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
};
});
/***/ },
-/* 51 */
+/* 64 */
/***/ function(module, exports, __webpack_require__) {
// 19.1.2.13 Object.isSealed(O)
var isObject = __webpack_require__(13);
- __webpack_require__(47)('isSealed', function($isSealed){
+ __webpack_require__(53)('isSealed', function($isSealed){
return function isSealed(it){
return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
};
});
/***/ },
-/* 52 */
+/* 65 */
/***/ function(module, exports, __webpack_require__) {
// 19.1.2.11 Object.isExtensible(O)
var isObject = __webpack_require__(13);
- __webpack_require__(47)('isExtensible', function($isExtensible){
+ __webpack_require__(53)('isExtensible', function($isExtensible){
return function isExtensible(it){
return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
};
});
/***/ },
-/* 53 */
+/* 66 */
/***/ function(module, exports, __webpack_require__) {
- // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
- var toIObject = __webpack_require__(20);
+ // 19.1.3.1 Object.assign(target, source)
+ var $export = __webpack_require__(6);
- __webpack_require__(47)('getOwnPropertyDescriptor', function($getOwnPropertyDescriptor){
- return function getOwnPropertyDescriptor(it, key){
- return $getOwnPropertyDescriptor(toIObject(it), key);
- };
- });
+ $export($export.S + $export.F, 'Object', {assign: __webpack_require__(67)});
/***/ },
-/* 54 */
+/* 67 */
/***/ function(module, exports, __webpack_require__) {
- // 19.1.2.9 Object.getPrototypeOf(O)
- var toObject = __webpack_require__(18);
+ 'use strict';
+ // 19.1.2.1 Object.assign(target, source, ...)
+ var getKeys = __webpack_require__(28)
+ , gOPS = __webpack_require__(41)
+ , pIE = __webpack_require__(42)
+ , toObject = __webpack_require__(56)
+ , IObject = __webpack_require__(31)
+ , $assign = Object.assign;
- __webpack_require__(47)('getPrototypeOf', function($getPrototypeOf){
- return function getPrototypeOf(it){
- return $getPrototypeOf(toObject(it));
- };
- });
+ // should work with symbols and should have deterministic property order (V8 bug)
+ module.exports = !$assign || __webpack_require__(5)(function(){
+ var A = {}
+ , B = {}
+ , S = Symbol()
+ , K = 'abcdefghijklmnopqrst';
+ A[S] = 7;
+ K.split('').forEach(function(k){ B[k] = k; });
+ return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
+ }) ? function assign(target, source){ // eslint-disable-line no-unused-vars
+ var T = toObject(target)
+ , aLen = arguments.length
+ , index = 1
+ , getSymbols = gOPS.f
+ , isEnum = pIE.f;
+ while(aLen > index){
+ var S = IObject(arguments[index++])
+ , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
+ , length = keys.length
+ , j = 0
+ , key;
+ while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
+ } return T;
+ } : $assign;
/***/ },
-/* 55 */
+/* 68 */
/***/ function(module, exports, __webpack_require__) {
- // 19.1.2.14 Object.keys(O)
- var toObject = __webpack_require__(18);
+ // 19.1.3.10 Object.is(value1, value2)
+ var $export = __webpack_require__(6);
+ $export($export.S, 'Object', {is: __webpack_require__(69)});
- __webpack_require__(47)('keys', function($keys){
- return function keys(it){
- return $keys(toObject(it));
- };
- });
+/***/ },
+/* 69 */
+/***/ function(module, exports) {
+
+ // 7.2.9 SameValue(x, y)
+ module.exports = Object.is || function is(x, y){
+ return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
+ };
/***/ },
-/* 56 */
+/* 70 */
/***/ function(module, exports, __webpack_require__) {
- // 19.1.2.7 Object.getOwnPropertyNames(O)
- __webpack_require__(47)('getOwnPropertyNames', function(){
- return __webpack_require__(37).get;
- });
+ // 19.1.3.19 Object.setPrototypeOf(O, proto)
+ var $export = __webpack_require__(6);
+ $export($export.S, 'Object', {setPrototypeOf: __webpack_require__(71).set});
/***/ },
-/* 57 */
+/* 71 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // Works with __proto__ only. Old v8 can't work with null proto objects.
+ /* eslint-disable no-proto */
+ var isObject = __webpack_require__(13)
+ , anObject = __webpack_require__(12);
+ var check = function(O, proto){
+ anObject(O);
+ if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!");
+ };
+ module.exports = {
+ set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
+ function(test, buggy, set){
+ try {
+ set = __webpack_require__(8)(Function.call, __webpack_require__(49).f(Object.prototype, '__proto__').set, 2);
+ set(test, []);
+ buggy = !(test instanceof Array);
+ } catch(e){ buggy = true; }
+ return function setPrototypeOf(O, proto){
+ check(O, proto);
+ if(buggy)O.__proto__ = proto;
+ else set(O, proto);
+ return O;
+ };
+ }({}, false) : undefined),
+ check: check
+ };
+
+/***/ },
+/* 72 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
+ var $export = __webpack_require__(6);
+
+ $export($export.P, 'Function', {bind: __webpack_require__(73)});
+
+/***/ },
+/* 73 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , isObject = __webpack_require__(13)
- , HAS_INSTANCE = __webpack_require__(29)('hasInstance')
- , FunctionProto = Function.prototype;
+ var aFunction = __webpack_require__(9)
+ , isObject = __webpack_require__(13)
+ , invoke = __webpack_require__(74)
+ , arraySlice = [].slice
+ , factories = {};
+
+ var construct = function(F, len, args){
+ if(!(len in factories)){
+ for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';
+ factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
+ } return factories[len](F, args);
+ };
+
+ module.exports = Function.bind || function bind(that /*, args... */){
+ var fn = aFunction(this)
+ , partArgs = arraySlice.call(arguments, 1);
+ var bound = function(/* args... */){
+ var args = partArgs.concat(arraySlice.call(arguments));
+ return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
+ };
+ if(isObject(fn.prototype))bound.prototype = fn.prototype;
+ return bound;
+ };
+
+/***/ },
+/* 74 */
+/***/ function(module, exports) {
+
+ // fast apply, http://jsperf.lnkit.com/fast-apply/5
+ module.exports = function(fn, args, that){
+ var un = that === undefined;
+ switch(args.length){
+ case 0: return un ? fn()
+ : fn.call(that);
+ case 1: return un ? fn(args[0])
+ : fn.call(that, args[0]);
+ case 2: return un ? fn(args[0], args[1])
+ : fn.call(that, args[0], args[1]);
+ case 3: return un ? fn(args[0], args[1], args[2])
+ : fn.call(that, args[0], args[1], args[2]);
+ case 4: return un ? fn(args[0], args[1], args[2], args[3])
+ : fn.call(that, args[0], args[1], args[2], args[3]);
+ } return fn.apply(that, args);
+ };
+
+/***/ },
+/* 75 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var isObject = __webpack_require__(13)
+ , getPrototypeOf = __webpack_require__(57)
+ , HAS_INSTANCE = __webpack_require__(23)('hasInstance')
+ , FunctionProto = Function.prototype;
// 19.2.3.6 Function.prototype[@@hasInstance](V)
- if(!(HAS_INSTANCE in FunctionProto))$.setDesc(FunctionProto, HAS_INSTANCE, {value: function(O){
+ if(!(HAS_INSTANCE in FunctionProto))__webpack_require__(11).f(FunctionProto, HAS_INSTANCE, {value: function(O){
if(typeof this != 'function' || !isObject(O))return false;
if(!isObject(this.prototype))return O instanceof this;
// for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
- while(O = $.getProto(O))if(this.prototype === O)return true;
+ while(O = getPrototypeOf(O))if(this.prototype === O)return true;
return false;
}});
/***/ },
-/* 58 */
+/* 76 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toInteger = __webpack_require__(36)
+ , aNumberValue = __webpack_require__(77)
+ , repeat = __webpack_require__(78)
+ , $toFixed = 1..toFixed
+ , floor = Math.floor
+ , data = [0, 0, 0, 0, 0, 0]
+ , ERROR = 'Number.toFixed: incorrect invocation!'
+ , ZERO = '0';
+
+ var multiply = function(n, c){
+ var i = -1
+ , c2 = c;
+ while(++i < 6){
+ c2 += n * data[i];
+ data[i] = c2 % 1e7;
+ c2 = floor(c2 / 1e7);
+ }
+ };
+ var divide = function(n){
+ var i = 6
+ , c = 0;
+ while(--i >= 0){
+ c += data[i];
+ data[i] = floor(c / n);
+ c = (c % n) * 1e7;
+ }
+ };
+ var numToString = function(){
+ var i = 6
+ , s = '';
+ while(--i >= 0){
+ if(s !== '' || i === 0 || data[i] !== 0){
+ var t = String(data[i]);
+ s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;
+ }
+ } return s;
+ };
+ var pow = function(x, n, acc){
+ return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
+ };
+ var log = function(x){
+ var n = 0
+ , x2 = x;
+ while(x2 >= 4096){
+ n += 12;
+ x2 /= 4096;
+ }
+ while(x2 >= 2){
+ n += 1;
+ x2 /= 2;
+ } return n;
+ };
+
+ $export($export.P + $export.F * (!!$toFixed && (
+ 0.00008.toFixed(3) !== '0.000' ||
+ 0.9.toFixed(0) !== '1' ||
+ 1.255.toFixed(2) !== '1.25' ||
+ 1000000000000000128..toFixed(0) !== '1000000000000000128'
+ ) || !__webpack_require__(5)(function(){
+ // V8 ~ Android 4.3-
+ $toFixed.call({});
+ })), 'Number', {
+ toFixed: function toFixed(fractionDigits){
+ var x = aNumberValue(this, ERROR)
+ , f = toInteger(fractionDigits)
+ , s = ''
+ , m = ZERO
+ , e, z, j, k;
+ if(f < 0 || f > 20)throw RangeError(ERROR);
+ if(x != x)return 'NaN';
+ if(x <= -1e21 || x >= 1e21)return String(x);
+ if(x < 0){
+ s = '-';
+ x = -x;
+ }
+ if(x > 1e-21){
+ e = log(x * pow(2, 69, 1)) - 69;
+ z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);
+ z *= 0x10000000000000;
+ e = 52 - e;
+ if(e > 0){
+ multiply(0, z);
+ j = f;
+ while(j >= 7){
+ multiply(1e7, 0);
+ j -= 7;
+ }
+ multiply(pow(10, j, 1), 0);
+ j = e - 1;
+ while(j >= 23){
+ divide(1 << 23);
+ j -= 23;
+ }
+ divide(1 << j);
+ multiply(1, 1);
+ divide(2);
+ m = numToString();
+ } else {
+ multiply(0, z);
+ multiply(1 << -e, 0);
+ m = numToString() + repeat.call(ZERO, f);
+ }
+ }
+ if(f > 0){
+ k = m.length;
+ m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));
+ } else {
+ m = s + m;
+ } return m;
+ }
+ });
+
+/***/ },
+/* 77 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var cof = __webpack_require__(32);
+ module.exports = function(it, msg){
+ if(typeof it != 'number' && cof(it) != 'Number')throw TypeError(msg);
+ return +it;
+ };
+
+/***/ },
+/* 78 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var toInteger = __webpack_require__(36)
+ , defined = __webpack_require__(33);
+
+ module.exports = function repeat(count){
+ var str = String(defined(this))
+ , res = ''
+ , n = toInteger(count);
+ if(n < 0 || n == Infinity)throw RangeError("Count can't be negative");
+ for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;
+ return res;
+ };
+
+/***/ },
+/* 79 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $fails = __webpack_require__(5)
+ , aNumberValue = __webpack_require__(77)
+ , $toPrecision = 1..toPrecision;
+
+ $export($export.P + $export.F * ($fails(function(){
+ // IE7-
+ return $toPrecision.call(1, undefined) !== '1';
+ }) || !$fails(function(){
+ // V8 ~ Android 4.3-
+ $toPrecision.call({});
+ })), 'Number', {
+ toPrecision: function toPrecision(precision){
+ var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');
+ return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);
+ }
+ });
+
+/***/ },
+/* 80 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.1 Number.EPSILON
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Number', {EPSILON: Math.pow(2, -52)});
/***/ },
-/* 59 */
+/* 81 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.2 Number.isFinite(number)
- var $export = __webpack_require__(3)
- , _isFinite = __webpack_require__(4).isFinite;
+ var $export = __webpack_require__(6)
+ , _isFinite = __webpack_require__(2).isFinite;
$export($export.S, 'Number', {
isFinite: function isFinite(it){
@@ -1499,16 +1768,16 @@
});
/***/ },
-/* 60 */
+/* 82 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.3 Number.isInteger(number)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.S, 'Number', {isInteger: __webpack_require__(61)});
+ $export($export.S, 'Number', {isInteger: __webpack_require__(83)});
/***/ },
-/* 61 */
+/* 83 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.3 Number.isInteger(number)
@@ -1519,11 +1788,11 @@
};
/***/ },
-/* 62 */
+/* 84 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.4 Number.isNaN(number)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Number', {
isNaN: function isNaN(number){
@@ -1532,12 +1801,12 @@
});
/***/ },
-/* 63 */
+/* 85 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.5 Number.isSafeInteger(number)
- var $export = __webpack_require__(3)
- , isInteger = __webpack_require__(61)
+ var $export = __webpack_require__(6)
+ , isInteger = __webpack_require__(83)
, abs = Math.abs;
$export($export.S, 'Number', {
@@ -1547,53 +1816,144 @@
});
/***/ },
-/* 64 */
+/* 86 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.6 Number.MAX_SAFE_INTEGER
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff});
/***/ },
-/* 65 */
+/* 87 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.10 Number.MIN_SAFE_INTEGER
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff});
/***/ },
-/* 66 */
+/* 88 */
/***/ function(module, exports, __webpack_require__) {
+ var $export = __webpack_require__(6)
+ , $parseFloat = __webpack_require__(89);
// 20.1.2.12 Number.parseFloat(string)
- var $export = __webpack_require__(3);
+ $export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', {parseFloat: $parseFloat});
+
+/***/ },
+/* 89 */
+/***/ function(module, exports, __webpack_require__) {
- $export($export.S, 'Number', {parseFloat: parseFloat});
+ var $parseFloat = __webpack_require__(2).parseFloat
+ , $trim = __webpack_require__(90).trim;
+
+ module.exports = 1 / $parseFloat(__webpack_require__(91) + '-0') !== -Infinity ? function parseFloat(str){
+ var string = $trim(String(str), 3)
+ , result = $parseFloat(string);
+ return result === 0 && string.charAt(0) == '-' ? -0 : result;
+ } : $parseFloat;
/***/ },
-/* 67 */
+/* 90 */
/***/ function(module, exports, __webpack_require__) {
+ var $export = __webpack_require__(6)
+ , defined = __webpack_require__(33)
+ , fails = __webpack_require__(5)
+ , spaces = __webpack_require__(91)
+ , space = '[' + spaces + ']'
+ , non = '\u200b\u0085'
+ , ltrim = RegExp('^' + space + space + '*')
+ , rtrim = RegExp(space + space + '*$');
+
+ var exporter = function(KEY, exec, ALIAS){
+ var exp = {};
+ var FORCE = fails(function(){
+ return !!spaces[KEY]() || non[KEY]() != non;
+ });
+ var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
+ if(ALIAS)exp[ALIAS] = fn;
+ $export($export.P + $export.F * FORCE, 'String', exp);
+ };
+
+ // 1 -> String#trimLeft
+ // 2 -> String#trimRight
+ // 3 -> String#trim
+ var trim = exporter.trim = function(string, TYPE){
+ string = String(defined(string));
+ if(TYPE & 1)string = string.replace(ltrim, '');
+ if(TYPE & 2)string = string.replace(rtrim, '');
+ return string;
+ };
+
+ module.exports = exporter;
+
+/***/ },
+/* 91 */
+/***/ function(module, exports) {
+
+ module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
+ '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
+
+/***/ },
+/* 92 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6)
+ , $parseInt = __webpack_require__(93);
// 20.1.2.13 Number.parseInt(string, radix)
- var $export = __webpack_require__(3);
+ $export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', {parseInt: $parseInt});
- $export($export.S, 'Number', {parseInt: parseInt});
+/***/ },
+/* 93 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $parseInt = __webpack_require__(2).parseInt
+ , $trim = __webpack_require__(90).trim
+ , ws = __webpack_require__(91)
+ , hex = /^[\-+]?0[xX]/;
+
+ module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix){
+ var string = $trim(String(str), 3);
+ return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
+ } : $parseInt;
/***/ },
-/* 68 */
+/* 94 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6)
+ , $parseInt = __webpack_require__(93);
+ // 18.2.5 parseInt(string, radix)
+ $export($export.G + $export.F * (parseInt != $parseInt), {parseInt: $parseInt});
+
+/***/ },
+/* 95 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6)
+ , $parseFloat = __webpack_require__(89);
+ // 18.2.4 parseFloat(string)
+ $export($export.G + $export.F * (parseFloat != $parseFloat), {parseFloat: $parseFloat});
+
+/***/ },
+/* 96 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.3 Math.acosh(x)
- var $export = __webpack_require__(3)
- , log1p = __webpack_require__(69)
+ var $export = __webpack_require__(6)
+ , log1p = __webpack_require__(97)
, sqrt = Math.sqrt
, $acosh = Math.acosh;
- // V8 bug https://code.google.com/p/v8/issues/detail?id=3509
- $export($export.S + $export.F * !($acosh && Math.floor($acosh(Number.MAX_VALUE)) == 710), 'Math', {
+ $export($export.S + $export.F * !($acosh
+ // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
+ && Math.floor($acosh(Number.MAX_VALUE)) == 710
+ // Tor Browser bug: Math.acosh(Infinity) -> NaN
+ && $acosh(Infinity) == Infinity
+ ), 'Math', {
acosh: function acosh(x){
return (x = +x) < 1 ? NaN : x > 94906265.62425156
? Math.log(x) + Math.LN2
@@ -1602,7 +1962,7 @@
});
/***/ },
-/* 69 */
+/* 97 */
/***/ function(module, exports) {
// 20.2.2.20 Math.log1p(x)
@@ -1611,38 +1971,42 @@
};
/***/ },
-/* 70 */
+/* 98 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.5 Math.asinh(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6)
+ , $asinh = Math.asinh;
function asinh(x){
return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
}
- $export($export.S, 'Math', {asinh: asinh});
+ // Tor Browser bug: Math.asinh(0) -> -0
+ $export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', {asinh: asinh});
/***/ },
-/* 71 */
+/* 99 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.7 Math.atanh(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6)
+ , $atanh = Math.atanh;
- $export($export.S, 'Math', {
+ // Tor Browser bug: Math.atanh(-0) -> 0
+ $export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {
atanh: function atanh(x){
return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
}
});
/***/ },
-/* 72 */
+/* 100 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.9 Math.cbrt(x)
- var $export = __webpack_require__(3)
- , sign = __webpack_require__(73);
+ var $export = __webpack_require__(6)
+ , sign = __webpack_require__(101);
$export($export.S, 'Math', {
cbrt: function cbrt(x){
@@ -1651,7 +2015,7 @@
});
/***/ },
-/* 73 */
+/* 101 */
/***/ function(module, exports) {
// 20.2.2.28 Math.sign(x)
@@ -1660,11 +2024,11 @@
};
/***/ },
-/* 74 */
+/* 102 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.11 Math.clz32(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Math', {
clz32: function clz32(x){
@@ -1673,11 +2037,11 @@
});
/***/ },
-/* 75 */
+/* 103 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.12 Math.cosh(x)
- var $export = __webpack_require__(3)
+ var $export = __webpack_require__(6)
, exp = Math.exp;
$export($export.S, 'Math', {
@@ -1687,30 +2051,37 @@
});
/***/ },
-/* 76 */
+/* 104 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.14 Math.expm1(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6)
+ , $expm1 = __webpack_require__(105);
- $export($export.S, 'Math', {expm1: __webpack_require__(77)});
+ $export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', {expm1: $expm1});
/***/ },
-/* 77 */
+/* 105 */
/***/ function(module, exports) {
// 20.2.2.14 Math.expm1(x)
- module.exports = Math.expm1 || function expm1(x){
+ var $expm1 = Math.expm1;
+ module.exports = (!$expm1
+ // Old FF bug
+ || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168
+ // Tor Browser bug
+ || $expm1(-2e-17) != -2e-17
+ ) ? function expm1(x){
return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
- };
+ } : $expm1;
/***/ },
-/* 78 */
+/* 106 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.16 Math.fround(x)
- var $export = __webpack_require__(3)
- , sign = __webpack_require__(73)
+ var $export = __webpack_require__(6)
+ , sign = __webpack_require__(101)
, pow = Math.pow
, EPSILON = pow(2, -52)
, EPSILON32 = pow(2, -23)
@@ -1736,23 +2107,22 @@
});
/***/ },
-/* 79 */
+/* 107 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
- var $export = __webpack_require__(3)
+ var $export = __webpack_require__(6)
, abs = Math.abs;
$export($export.S, 'Math', {
hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars
- var sum = 0
- , i = 0
- , $$ = arguments
- , $$len = $$.length
- , larg = 0
+ var sum = 0
+ , i = 0
+ , aLen = arguments.length
+ , larg = 0
, arg, div;
- while(i < $$len){
- arg = abs($$[i++]);
+ while(i < aLen){
+ arg = abs(arguments[i++]);
if(larg < arg){
div = larg / arg;
sum = sum * div * div + 1;
@@ -1767,15 +2137,15 @@
});
/***/ },
-/* 80 */
+/* 108 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.18 Math.imul(x, y)
- var $export = __webpack_require__(3)
+ var $export = __webpack_require__(6)
, $imul = Math.imul;
// some WebKit versions fails with big numbers, some has wrong arity
- $export($export.S + $export.F * __webpack_require__(9)(function(){
+ $export($export.S + $export.F * __webpack_require__(5)(function(){
return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
}), 'Math', {
imul: function imul(x, y){
@@ -1789,11 +2159,11 @@
});
/***/ },
-/* 81 */
+/* 109 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.21 Math.log10(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Math', {
log10: function log10(x){
@@ -1802,20 +2172,20 @@
});
/***/ },
-/* 82 */
+/* 110 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.20 Math.log1p(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.S, 'Math', {log1p: __webpack_require__(69)});
+ $export($export.S, 'Math', {log1p: __webpack_require__(97)});
/***/ },
-/* 83 */
+/* 111 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.22 Math.log2(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Math', {
log2: function log2(x){
@@ -1824,25 +2194,25 @@
});
/***/ },
-/* 84 */
+/* 112 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.28 Math.sign(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.S, 'Math', {sign: __webpack_require__(73)});
+ $export($export.S, 'Math', {sign: __webpack_require__(101)});
/***/ },
-/* 85 */
+/* 113 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.30 Math.sinh(x)
- var $export = __webpack_require__(3)
- , expm1 = __webpack_require__(77)
+ var $export = __webpack_require__(6)
+ , expm1 = __webpack_require__(105)
, exp = Math.exp;
// V8 near Chromium 38 has a problem with very small numbers
- $export($export.S + $export.F * __webpack_require__(9)(function(){
+ $export($export.S + $export.F * __webpack_require__(5)(function(){
return !Math.sinh(-2e-17) != -2e-17;
}), 'Math', {
sinh: function sinh(x){
@@ -1853,12 +2223,12 @@
});
/***/ },
-/* 86 */
+/* 114 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.33 Math.tanh(x)
- var $export = __webpack_require__(3)
- , expm1 = __webpack_require__(77)
+ var $export = __webpack_require__(6)
+ , expm1 = __webpack_require__(105)
, exp = Math.exp;
$export($export.S, 'Math', {
@@ -1870,11 +2240,11 @@
});
/***/ },
-/* 87 */
+/* 115 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.34 Math.trunc(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Math', {
trunc: function trunc(it){
@@ -1883,11 +2253,11 @@
});
/***/ },
-/* 88 */
+/* 116 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3)
- , toIndex = __webpack_require__(23)
+ var $export = __webpack_require__(6)
+ , toIndex = __webpack_require__(37)
, fromCharCode = String.fromCharCode
, $fromCodePoint = String.fromCodePoint;
@@ -1895,13 +2265,12 @@
$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
// 21.1.2.2 String.fromCodePoint(...codePoints)
fromCodePoint: function fromCodePoint(x){ // eslint-disable-line no-unused-vars
- var res = []
- , $$ = arguments
- , $$len = $$.length
- , i = 0
+ var res = []
+ , aLen = arguments.length
+ , i = 0
, code;
- while($$len > i){
- code = +$$[i++];
+ while(aLen > i){
+ code = +arguments[i++];
if(toIndex(code, 0x10ffff) !== code)throw RangeError(code + ' is not a valid code point');
res.push(code < 0x10000
? fromCharCode(code)
@@ -1912,82 +2281,47 @@
});
/***/ },
-/* 89 */
+/* 117 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3)
- , toIObject = __webpack_require__(20)
- , toLength = __webpack_require__(24);
+ var $export = __webpack_require__(6)
+ , toIObject = __webpack_require__(30)
+ , toLength = __webpack_require__(35);
$export($export.S, 'String', {
// 21.1.2.4 String.raw(callSite, ...substitutions)
raw: function raw(callSite){
- var tpl = toIObject(callSite.raw)
- , len = toLength(tpl.length)
- , $$ = arguments
- , $$len = $$.length
- , res = []
- , i = 0;
+ var tpl = toIObject(callSite.raw)
+ , len = toLength(tpl.length)
+ , aLen = arguments.length
+ , res = []
+ , i = 0;
while(len > i){
res.push(String(tpl[i++]));
- if(i < $$len)res.push(String($$[i]));
+ if(i < aLen)res.push(String(arguments[i]));
} return res.join('');
}
});
/***/ },
-/* 90 */
+/* 118 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// 21.1.3.25 String.prototype.trim()
- __webpack_require__(91)('trim', function($trim){
+ __webpack_require__(90)('trim', function($trim){
return function trim(){
return $trim(this, 3);
};
});
/***/ },
-/* 91 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $export = __webpack_require__(3)
- , defined = __webpack_require__(19)
- , fails = __webpack_require__(9)
- , spaces = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
- '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'
- , space = '[' + spaces + ']'
- , non = '\u200b\u0085'
- , ltrim = RegExp('^' + space + space + '*')
- , rtrim = RegExp(space + space + '*$');
-
- var exporter = function(KEY, exec){
- var exp = {};
- exp[KEY] = exec(trim);
- $export($export.P + $export.F * fails(function(){
- return !!spaces[KEY]() || non[KEY]() != non;
- }), 'String', exp);
- };
-
- // 1 -> String#trimLeft
- // 2 -> String#trimRight
- // 3 -> String#trim
- var trim = exporter.trim = function(string, TYPE){
- string = String(defined(string));
- if(TYPE & 1)string = string.replace(ltrim, '');
- if(TYPE & 2)string = string.replace(rtrim, '');
- return string;
- };
-
- module.exports = exporter;
-
-/***/ },
-/* 92 */
+/* 119 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3)
- , $at = __webpack_require__(93)(false);
+ var $export = __webpack_require__(6)
+ , $at = __webpack_require__(120)(false);
$export($export.P, 'String', {
// 21.1.3.3 String.prototype.codePointAt(pos)
codePointAt: function codePointAt(pos){
@@ -1996,11 +2330,11 @@
});
/***/ },
-/* 93 */
+/* 120 */
/***/ function(module, exports, __webpack_require__) {
- var toInteger = __webpack_require__(22)
- , defined = __webpack_require__(19);
+ var toInteger = __webpack_require__(36)
+ , defined = __webpack_require__(33);
// true -> String#at
// false -> String#codePointAt
module.exports = function(TO_STRING){
@@ -2018,22 +2352,21 @@
};
/***/ },
-/* 94 */
+/* 121 */
/***/ function(module, exports, __webpack_require__) {
// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
'use strict';
- var $export = __webpack_require__(3)
- , toLength = __webpack_require__(24)
- , context = __webpack_require__(95)
+ var $export = __webpack_require__(6)
+ , toLength = __webpack_require__(35)
+ , context = __webpack_require__(122)
, ENDS_WITH = 'endsWith'
, $endsWith = ''[ENDS_WITH];
- $export($export.P + $export.F * __webpack_require__(97)(ENDS_WITH), 'String', {
+ $export($export.P + $export.F * __webpack_require__(124)(ENDS_WITH), 'String', {
endsWith: function endsWith(searchString /*, endPosition = @length */){
var that = context(this, searchString, ENDS_WITH)
- , $$ = arguments
- , endPosition = $$.length > 1 ? $$[1] : undefined
+ , endPosition = arguments.length > 1 ? arguments[1] : undefined
, len = toLength(that.length)
, end = endPosition === undefined ? len : Math.min(toLength(endPosition), len)
, search = String(searchString);
@@ -2044,12 +2377,12 @@
});
/***/ },
-/* 95 */
+/* 122 */
/***/ function(module, exports, __webpack_require__) {
// helper for String#{startsWith, endsWith, includes}
- var isRegExp = __webpack_require__(96)
- , defined = __webpack_require__(19);
+ var isRegExp = __webpack_require__(123)
+ , defined = __webpack_require__(33);
module.exports = function(that, searchString, NAME){
if(isRegExp(searchString))throw TypeError('String#' + NAME + " doesn't accept regex!");
@@ -2057,23 +2390,23 @@
};
/***/ },
-/* 96 */
+/* 123 */
/***/ function(module, exports, __webpack_require__) {
// 7.2.8 IsRegExp(argument)
var isObject = __webpack_require__(13)
- , cof = __webpack_require__(15)
- , MATCH = __webpack_require__(29)('match');
+ , cof = __webpack_require__(32)
+ , MATCH = __webpack_require__(23)('match');
module.exports = function(it){
var isRegExp;
return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
};
/***/ },
-/* 97 */
+/* 124 */
/***/ function(module, exports, __webpack_require__) {
- var MATCH = __webpack_require__(29)('match');
+ var MATCH = __webpack_require__(23)('match');
module.exports = function(KEY){
var re = /./;
try {
@@ -2087,16 +2420,16 @@
};
/***/ },
-/* 98 */
+/* 125 */
/***/ function(module, exports, __webpack_require__) {
// 21.1.3.7 String.prototype.includes(searchString, position = 0)
'use strict';
- var $export = __webpack_require__(3)
- , context = __webpack_require__(95)
+ var $export = __webpack_require__(6)
+ , context = __webpack_require__(122)
, INCLUDES = 'includes';
- $export($export.P + $export.F * __webpack_require__(97)(INCLUDES), 'String', {
+ $export($export.P + $export.F * __webpack_require__(124)(INCLUDES), 'String', {
includes: function includes(searchString /*, position = 0 */){
return !!~context(this, searchString, INCLUDES)
.indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
@@ -2104,50 +2437,32 @@
});
/***/ },
-/* 99 */
+/* 126 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.P, 'String', {
// 21.1.3.13 String.prototype.repeat(count)
- repeat: __webpack_require__(100)
+ repeat: __webpack_require__(78)
});
/***/ },
-/* 100 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var toInteger = __webpack_require__(22)
- , defined = __webpack_require__(19);
-
- module.exports = function repeat(count){
- var str = String(defined(this))
- , res = ''
- , n = toInteger(count);
- if(n < 0 || n == Infinity)throw RangeError("Count can't be negative");
- for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;
- return res;
- };
-
-/***/ },
-/* 101 */
+/* 127 */
/***/ function(module, exports, __webpack_require__) {
// 21.1.3.18 String.prototype.startsWith(searchString [, position ])
'use strict';
- var $export = __webpack_require__(3)
- , toLength = __webpack_require__(24)
- , context = __webpack_require__(95)
+ var $export = __webpack_require__(6)
+ , toLength = __webpack_require__(35)
+ , context = __webpack_require__(122)
, STARTS_WITH = 'startsWith'
, $startsWith = ''[STARTS_WITH];
- $export($export.P + $export.F * __webpack_require__(97)(STARTS_WITH), 'String', {
+ $export($export.P + $export.F * __webpack_require__(124)(STARTS_WITH), 'String', {
startsWith: function startsWith(searchString /*, position = 0 */){
var that = context(this, searchString, STARTS_WITH)
- , $$ = arguments
- , index = toLength(Math.min($$.length > 1 ? $$[1] : undefined, that.length))
+ , index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length))
, search = String(searchString);
return $startsWith
? $startsWith.call(that, search, index)
@@ -2156,14 +2471,14 @@
});
/***/ },
-/* 102 */
+/* 128 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $at = __webpack_require__(93)(true);
+ var $at = __webpack_require__(120)(true);
// 21.1.3.27 String.prototype[@@iterator]()
- __webpack_require__(103)(String, 'String', function(iterated){
+ __webpack_require__(129)(String, 'String', function(iterated){
this._t = String(iterated); // target
this._i = 0; // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
@@ -2178,20 +2493,20 @@
});
/***/ },
-/* 103 */
+/* 129 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var LIBRARY = __webpack_require__(39)
- , $export = __webpack_require__(3)
- , redefine = __webpack_require__(33)
- , hide = __webpack_require__(34)
- , has = __webpack_require__(14)
- , Iterators = __webpack_require__(104)
- , $iterCreate = __webpack_require__(105)
- , setToStringTag = __webpack_require__(35)
- , getProto = __webpack_require__(2).getProto
- , ITERATOR = __webpack_require__(29)('iterator')
+ var LIBRARY = __webpack_require__(26)
+ , $export = __webpack_require__(6)
+ , redefine = __webpack_require__(18)
+ , hide = __webpack_require__(10)
+ , has = __webpack_require__(3)
+ , Iterators = __webpack_require__(130)
+ , $iterCreate = __webpack_require__(131)
+ , setToStringTag = __webpack_require__(22)
+ , getPrototypeOf = __webpack_require__(57)
+ , ITERATOR = __webpack_require__(23)('iterator')
, BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
, FF_ITERATOR = '@@iterator'
, KEYS = 'keys'
@@ -2214,20 +2529,24 @@
, proto = Base.prototype
, $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
, $default = $native || getMethod(DEFAULT)
- , methods, key;
+ , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined
+ , $anyNative = NAME == 'Array' ? proto.entries || $native : $native
+ , methods, key, IteratorPrototype;
// Fix native
- if($native){
- var IteratorPrototype = getProto($default.call(new Base));
- // Set @@toStringTag to native iterators
- setToStringTag(IteratorPrototype, TAG, true);
- // FF fix
- if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
- // fix Array#{values, @@iterator}.name in V8 / FF
- if(DEF_VALUES && $native.name !== VALUES){
- VALUES_BUG = true;
- $default = function values(){ return $native.call(this); };
+ if($anyNative){
+ IteratorPrototype = getPrototypeOf($anyNative.call(new Base));
+ if(IteratorPrototype !== Object.prototype){
+ // Set @@toStringTag to native iterators
+ setToStringTag(IteratorPrototype, TAG, true);
+ // fix for some old engines
+ if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
}
}
+ // fix Array#{values, @@iterator}.name in V8 / FF
+ if(DEF_VALUES && $native && $native.name !== VALUES){
+ VALUES_BUG = true;
+ $default = function values(){ return $native.call(this); };
+ }
// Define iterator
if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
hide(proto, ITERATOR, $default);
@@ -2237,9 +2556,9 @@
Iterators[TAG] = returnThis;
if(DEFAULT){
methods = {
- values: DEF_VALUES ? $default : getMethod(VALUES),
- keys: IS_SET ? $default : getMethod(KEYS),
- entries: !DEF_VALUES ? $default : getMethod('entries')
+ values: DEF_VALUES ? $default : getMethod(VALUES),
+ keys: IS_SET ? $default : getMethod(KEYS),
+ entries: $entries
};
if(FORCED)for(key in methods){
if(!(key in proto))redefine(proto, key, methods[key]);
@@ -2249,63 +2568,253 @@
};
/***/ },
-/* 104 */
+/* 130 */
/***/ function(module, exports) {
module.exports = {};
/***/ },
-/* 105 */
+/* 131 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , descriptor = __webpack_require__(10)
- , setToStringTag = __webpack_require__(35)
+ var create = __webpack_require__(44)
+ , descriptor = __webpack_require__(17)
+ , setToStringTag = __webpack_require__(22)
, IteratorPrototype = {};
// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
- __webpack_require__(34)(IteratorPrototype, __webpack_require__(29)('iterator'), function(){ return this; });
+ __webpack_require__(10)(IteratorPrototype, __webpack_require__(23)('iterator'), function(){ return this; });
module.exports = function(Constructor, NAME, next){
- Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});
+ Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});
setToStringTag(Constructor, NAME + ' Iterator');
};
/***/ },
-/* 106 */
+/* 132 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.2 String.prototype.anchor(name)
+ __webpack_require__(133)('anchor', function(createHTML){
+ return function anchor(name){
+ return createHTML(this, 'a', 'name', name);
+ }
+ });
+
+/***/ },
+/* 133 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6)
+ , fails = __webpack_require__(5)
+ , defined = __webpack_require__(33)
+ , quot = /"/g;
+ // B.2.3.2.1 CreateHTML(string, tag, attribute, value)
+ var createHTML = function(string, tag, attribute, value) {
+ var S = String(defined(string))
+ , p1 = '<' + tag;
+ if(attribute !== '')p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
+ return p1 + '>' + S + '</' + tag + '>';
+ };
+ module.exports = function(NAME, exec){
+ var O = {};
+ O[NAME] = exec(createHTML);
+ $export($export.P + $export.F * fails(function(){
+ var test = ''[NAME]('"');
+ return test !== test.toLowerCase() || test.split('"').length > 3;
+ }), 'String', O);
+ };
+
+/***/ },
+/* 134 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.3 String.prototype.big()
+ __webpack_require__(133)('big', function(createHTML){
+ return function big(){
+ return createHTML(this, 'big', '', '');
+ }
+ });
+
+/***/ },
+/* 135 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.4 String.prototype.blink()
+ __webpack_require__(133)('blink', function(createHTML){
+ return function blink(){
+ return createHTML(this, 'blink', '', '');
+ }
+ });
+
+/***/ },
+/* 136 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.5 String.prototype.bold()
+ __webpack_require__(133)('bold', function(createHTML){
+ return function bold(){
+ return createHTML(this, 'b', '', '');
+ }
+ });
+
+/***/ },
+/* 137 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var ctx = __webpack_require__(6)
- , $export = __webpack_require__(3)
- , toObject = __webpack_require__(18)
- , call = __webpack_require__(107)
- , isArrayIter = __webpack_require__(108)
- , toLength = __webpack_require__(24)
- , getIterFn = __webpack_require__(109);
- $export($export.S + $export.F * !__webpack_require__(111)(function(iter){ Array.from(iter); }), 'Array', {
+ // B.2.3.6 String.prototype.fixed()
+ __webpack_require__(133)('fixed', function(createHTML){
+ return function fixed(){
+ return createHTML(this, 'tt', '', '');
+ }
+ });
+
+/***/ },
+/* 138 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.7 String.prototype.fontcolor(color)
+ __webpack_require__(133)('fontcolor', function(createHTML){
+ return function fontcolor(color){
+ return createHTML(this, 'font', 'color', color);
+ }
+ });
+
+/***/ },
+/* 139 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.8 String.prototype.fontsize(size)
+ __webpack_require__(133)('fontsize', function(createHTML){
+ return function fontsize(size){
+ return createHTML(this, 'font', 'size', size);
+ }
+ });
+
+/***/ },
+/* 140 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.9 String.prototype.italics()
+ __webpack_require__(133)('italics', function(createHTML){
+ return function italics(){
+ return createHTML(this, 'i', '', '');
+ }
+ });
+
+/***/ },
+/* 141 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.10 String.prototype.link(url)
+ __webpack_require__(133)('link', function(createHTML){
+ return function link(url){
+ return createHTML(this, 'a', 'href', url);
+ }
+ });
+
+/***/ },
+/* 142 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.11 String.prototype.small()
+ __webpack_require__(133)('small', function(createHTML){
+ return function small(){
+ return createHTML(this, 'small', '', '');
+ }
+ });
+
+/***/ },
+/* 143 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.12 String.prototype.strike()
+ __webpack_require__(133)('strike', function(createHTML){
+ return function strike(){
+ return createHTML(this, 'strike', '', '');
+ }
+ });
+
+/***/ },
+/* 144 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.13 String.prototype.sub()
+ __webpack_require__(133)('sub', function(createHTML){
+ return function sub(){
+ return createHTML(this, 'sub', '', '');
+ }
+ });
+
+/***/ },
+/* 145 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.14 String.prototype.sup()
+ __webpack_require__(133)('sup', function(createHTML){
+ return function sup(){
+ return createHTML(this, 'sup', '', '');
+ }
+ });
+
+/***/ },
+/* 146 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'Array', {isArray: __webpack_require__(43)});
+
+/***/ },
+/* 147 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var ctx = __webpack_require__(8)
+ , $export = __webpack_require__(6)
+ , toObject = __webpack_require__(56)
+ , call = __webpack_require__(148)
+ , isArrayIter = __webpack_require__(149)
+ , toLength = __webpack_require__(35)
+ , createProperty = __webpack_require__(150)
+ , getIterFn = __webpack_require__(151);
+
+ $export($export.S + $export.F * !__webpack_require__(153)(function(iter){ Array.from(iter); }), 'Array', {
// 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
var O = toObject(arrayLike)
, C = typeof this == 'function' ? this : Array
- , $$ = arguments
- , $$len = $$.length
- , mapfn = $$len > 1 ? $$[1] : undefined
+ , aLen = arguments.length
+ , mapfn = aLen > 1 ? arguments[1] : undefined
, mapping = mapfn !== undefined
, index = 0
, iterFn = getIterFn(O)
, length, result, step, iterator;
- if(mapping)mapfn = ctx(mapfn, $$len > 2 ? $$[2] : undefined, 2);
+ if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
// if object isn't iterable or it's array with default iterator - use simple case
if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){
for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){
- result[index] = mapping ? call(iterator, mapfn, [step.value, index], true) : step.value;
+ createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
}
} else {
length = toLength(O.length);
for(result = new C(length); length > index; index++){
- result[index] = mapping ? mapfn(O[index], index) : O[index];
+ createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
}
}
result.length = index;
@@ -2315,11 +2824,11 @@
/***/ },
-/* 107 */
+/* 148 */
/***/ function(module, exports, __webpack_require__) {
// call something on iterator step with safe closing on error
- var anObject = __webpack_require__(17);
+ var anObject = __webpack_require__(12);
module.exports = function(iterator, fn, value, entries){
try {
return entries ? fn(anObject(value)[0], value[1]) : fn(value);
@@ -2332,12 +2841,12 @@
};
/***/ },
-/* 108 */
+/* 149 */
/***/ function(module, exports, __webpack_require__) {
// check on default Array iterator
- var Iterators = __webpack_require__(104)
- , ITERATOR = __webpack_require__(29)('iterator')
+ var Iterators = __webpack_require__(130)
+ , ITERATOR = __webpack_require__(23)('iterator')
, ArrayProto = Array.prototype;
module.exports = function(it){
@@ -2345,33 +2854,53 @@
};
/***/ },
-/* 109 */
+/* 150 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $defineProperty = __webpack_require__(11)
+ , createDesc = __webpack_require__(17);
+
+ module.exports = function(object, index, value){
+ if(index in object)$defineProperty.f(object, index, createDesc(0, value));
+ else object[index] = value;
+ };
+
+/***/ },
+/* 151 */
/***/ function(module, exports, __webpack_require__) {
- var classof = __webpack_require__(110)
- , ITERATOR = __webpack_require__(29)('iterator')
- , Iterators = __webpack_require__(104);
- module.exports = __webpack_require__(5).getIteratorMethod = function(it){
+ var classof = __webpack_require__(152)
+ , ITERATOR = __webpack_require__(23)('iterator')
+ , Iterators = __webpack_require__(130);
+ module.exports = __webpack_require__(7).getIteratorMethod = function(it){
if(it != undefined)return it[ITERATOR]
|| it['@@iterator']
|| Iterators[classof(it)];
};
/***/ },
-/* 110 */
+/* 152 */
/***/ function(module, exports, __webpack_require__) {
// getting tag from 19.1.3.6 Object.prototype.toString()
- var cof = __webpack_require__(15)
- , TAG = __webpack_require__(29)('toStringTag')
+ var cof = __webpack_require__(32)
+ , TAG = __webpack_require__(23)('toStringTag')
// ES3 wrong here
, ARG = cof(function(){ return arguments; }()) == 'Arguments';
+ // fallback for IE11 Script Access Denied error
+ var tryGet = function(it, key){
+ try {
+ return it[key];
+ } catch(e){ /* empty */ }
+ };
+
module.exports = function(it){
var O, T, B;
return it === undefined ? 'Undefined' : it === null ? 'Null'
// @@toStringTag case
- : typeof (T = (O = Object(it))[TAG]) == 'string' ? T
+ : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
// builtinTag case
: ARG ? cof(O)
// ES3 arguments fallback
@@ -2379,10 +2908,10 @@
};
/***/ },
-/* 111 */
+/* 153 */
/***/ function(module, exports, __webpack_require__) {
- var ITERATOR = __webpack_require__(29)('iterator')
+ var ITERATOR = __webpack_require__(23)('iterator')
, SAFE_CLOSING = false;
try {
@@ -2405,134 +2934,413 @@
};
/***/ },
-/* 112 */
+/* 154 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6)
+ , createProperty = __webpack_require__(150);
// WebKit Array.of isn't generic
- $export($export.S + $export.F * __webpack_require__(9)(function(){
+ $export($export.S + $export.F * __webpack_require__(5)(function(){
function F(){}
return !(Array.of.call(F) instanceof F);
}), 'Array', {
// 22.1.2.3 Array.of( ...items)
of: function of(/* ...args */){
var index = 0
- , $$ = arguments
- , $$len = $$.length
- , result = new (typeof this == 'function' ? this : Array)($$len);
- while($$len > index)result[index] = $$[index++];
- result.length = $$len;
+ , aLen = arguments.length
+ , result = new (typeof this == 'function' ? this : Array)(aLen);
+ while(aLen > index)createProperty(result, index, arguments[index++]);
+ result.length = aLen;
return result;
}
});
/***/ },
-/* 113 */
+/* 155 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var addToUnscopables = __webpack_require__(114)
- , step = __webpack_require__(115)
- , Iterators = __webpack_require__(104)
- , toIObject = __webpack_require__(20);
+ // 22.1.3.13 Array.prototype.join(separator)
+ var $export = __webpack_require__(6)
+ , toIObject = __webpack_require__(30)
+ , arrayJoin = [].join;
- // 22.1.3.4 Array.prototype.entries()
- // 22.1.3.13 Array.prototype.keys()
- // 22.1.3.29 Array.prototype.values()
- // 22.1.3.30 Array.prototype[@@iterator]()
- module.exports = __webpack_require__(103)(Array, 'Array', function(iterated, kind){
- this._t = toIObject(iterated); // target
- this._i = 0; // next index
- this._k = kind; // kind
- // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
- }, function(){
- var O = this._t
- , kind = this._k
- , index = this._i++;
- if(!O || index >= O.length){
- this._t = undefined;
- return step(1);
+ // fallback for not array-like strings
+ $export($export.P + $export.F * (__webpack_require__(31) != Object || !__webpack_require__(156)(arrayJoin)), 'Array', {
+ join: function join(separator){
+ return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);
}
- if(kind == 'keys' )return step(0, index);
- if(kind == 'values')return step(0, O[index]);
- return step(0, [index, O[index]]);
- }, 'values');
+ });
- // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
- Iterators.Arguments = Iterators.Array;
+/***/ },
+/* 156 */
+/***/ function(module, exports, __webpack_require__) {
- addToUnscopables('keys');
- addToUnscopables('values');
- addToUnscopables('entries');
+ var fails = __webpack_require__(5);
+
+ module.exports = function(method, arg){
+ return !!method && fails(function(){
+ arg ? method.call(null, function(){}, 1) : method.call(null);
+ });
+ };
/***/ },
-/* 114 */
-/***/ function(module, exports) {
+/* 157 */
+/***/ function(module, exports, __webpack_require__) {
- module.exports = function(){ /* empty */ };
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , html = __webpack_require__(46)
+ , cof = __webpack_require__(32)
+ , toIndex = __webpack_require__(37)
+ , toLength = __webpack_require__(35)
+ , arraySlice = [].slice;
+
+ // fallback for not array-like ES3 strings and DOM objects
+ $export($export.P + $export.F * __webpack_require__(5)(function(){
+ if(html)arraySlice.call(html);
+ }), 'Array', {
+ slice: function slice(begin, end){
+ var len = toLength(this.length)
+ , klass = cof(this);
+ end = end === undefined ? len : end;
+ if(klass == 'Array')return arraySlice.call(this, begin, end);
+ var start = toIndex(begin, len)
+ , upTo = toIndex(end, len)
+ , size = toLength(upTo - start)
+ , cloned = Array(size)
+ , i = 0;
+ for(; i < size; i++)cloned[i] = klass == 'String'
+ ? this.charAt(start + i)
+ : this[start + i];
+ return cloned;
+ }
+ });
/***/ },
-/* 115 */
-/***/ function(module, exports) {
+/* 158 */
+/***/ function(module, exports, __webpack_require__) {
- module.exports = function(done, value){
- return {value: value, done: !!done};
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , aFunction = __webpack_require__(9)
+ , toObject = __webpack_require__(56)
+ , fails = __webpack_require__(5)
+ , $sort = [].sort
+ , test = [1, 2, 3];
+
+ $export($export.P + $export.F * (fails(function(){
+ // IE8-
+ test.sort(undefined);
+ }) || !fails(function(){
+ // V8 bug
+ test.sort(null);
+ // Old WebKit
+ }) || !__webpack_require__(156)($sort)), 'Array', {
+ // 22.1.3.25 Array.prototype.sort(comparefn)
+ sort: function sort(comparefn){
+ return comparefn === undefined
+ ? $sort.call(toObject(this))
+ : $sort.call(toObject(this), aFunction(comparefn));
+ }
+ });
+
+/***/ },
+/* 159 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $forEach = __webpack_require__(160)(0)
+ , STRICT = __webpack_require__(156)([].forEach, true);
+
+ $export($export.P + $export.F * !STRICT, 'Array', {
+ // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
+ forEach: function forEach(callbackfn /* , thisArg */){
+ return $forEach(this, callbackfn, arguments[1]);
+ }
+ });
+
+/***/ },
+/* 160 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 0 -> Array#forEach
+ // 1 -> Array#map
+ // 2 -> Array#filter
+ // 3 -> Array#some
+ // 4 -> Array#every
+ // 5 -> Array#find
+ // 6 -> Array#findIndex
+ var ctx = __webpack_require__(8)
+ , IObject = __webpack_require__(31)
+ , toObject = __webpack_require__(56)
+ , toLength = __webpack_require__(35)
+ , asc = __webpack_require__(161);
+ module.exports = function(TYPE, $create){
+ var IS_MAP = TYPE == 1
+ , IS_FILTER = TYPE == 2
+ , IS_SOME = TYPE == 3
+ , IS_EVERY = TYPE == 4
+ , IS_FIND_INDEX = TYPE == 6
+ , NO_HOLES = TYPE == 5 || IS_FIND_INDEX
+ , create = $create || asc;
+ return function($this, callbackfn, that){
+ var O = toObject($this)
+ , self = IObject(O)
+ , f = ctx(callbackfn, that, 3)
+ , length = toLength(self.length)
+ , index = 0
+ , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined
+ , val, res;
+ for(;length > index; index++)if(NO_HOLES || index in self){
+ val = self[index];
+ res = f(val, index, O);
+ if(TYPE){
+ if(IS_MAP)result[index] = res; // map
+ else if(res)switch(TYPE){
+ case 3: return true; // some
+ case 5: return val; // find
+ case 6: return index; // findIndex
+ case 2: result.push(val); // filter
+ } else if(IS_EVERY)return false; // every
+ }
+ }
+ return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+ };
};
/***/ },
-/* 116 */
+/* 161 */
/***/ function(module, exports, __webpack_require__) {
- __webpack_require__(117)('Array');
+ // 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+ var speciesConstructor = __webpack_require__(162);
+
+ module.exports = function(original, length){
+ return new (speciesConstructor(original))(length);
+ };
/***/ },
-/* 117 */
+/* 162 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isObject = __webpack_require__(13)
+ , isArray = __webpack_require__(43)
+ , SPECIES = __webpack_require__(23)('species');
+
+ module.exports = function(original){
+ var C;
+ if(isArray(original)){
+ C = original.constructor;
+ // cross-realm fallback
+ if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;
+ if(isObject(C)){
+ C = C[SPECIES];
+ if(C === null)C = undefined;
+ }
+ } return C === undefined ? Array : C;
+ };
+
+/***/ },
+/* 163 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var core = __webpack_require__(5)
- , $ = __webpack_require__(2)
- , DESCRIPTORS = __webpack_require__(8)
- , SPECIES = __webpack_require__(29)('species');
+ var $export = __webpack_require__(6)
+ , $map = __webpack_require__(160)(1);
- module.exports = function(KEY){
- var C = core[KEY];
- if(DESCRIPTORS && C && !C[SPECIES])$.setDesc(C, SPECIES, {
- configurable: true,
- get: function(){ return this; }
- });
+ $export($export.P + $export.F * !__webpack_require__(156)([].map, true), 'Array', {
+ // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
+ map: function map(callbackfn /* , thisArg */){
+ return $map(this, callbackfn, arguments[1]);
+ }
+ });
+
+/***/ },
+/* 164 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $filter = __webpack_require__(160)(2);
+
+ $export($export.P + $export.F * !__webpack_require__(156)([].filter, true), 'Array', {
+ // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
+ filter: function filter(callbackfn /* , thisArg */){
+ return $filter(this, callbackfn, arguments[1]);
+ }
+ });
+
+/***/ },
+/* 165 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $some = __webpack_require__(160)(3);
+
+ $export($export.P + $export.F * !__webpack_require__(156)([].some, true), 'Array', {
+ // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
+ some: function some(callbackfn /* , thisArg */){
+ return $some(this, callbackfn, arguments[1]);
+ }
+ });
+
+/***/ },
+/* 166 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $every = __webpack_require__(160)(4);
+
+ $export($export.P + $export.F * !__webpack_require__(156)([].every, true), 'Array', {
+ // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
+ every: function every(callbackfn /* , thisArg */){
+ return $every(this, callbackfn, arguments[1]);
+ }
+ });
+
+/***/ },
+/* 167 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $reduce = __webpack_require__(168);
+
+ $export($export.P + $export.F * !__webpack_require__(156)([].reduce, true), 'Array', {
+ // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
+ reduce: function reduce(callbackfn /* , initialValue */){
+ return $reduce(this, callbackfn, arguments.length, arguments[1], false);
+ }
+ });
+
+/***/ },
+/* 168 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var aFunction = __webpack_require__(9)
+ , toObject = __webpack_require__(56)
+ , IObject = __webpack_require__(31)
+ , toLength = __webpack_require__(35);
+
+ module.exports = function(that, callbackfn, aLen, memo, isRight){
+ aFunction(callbackfn);
+ var O = toObject(that)
+ , self = IObject(O)
+ , length = toLength(O.length)
+ , index = isRight ? length - 1 : 0
+ , i = isRight ? -1 : 1;
+ if(aLen < 2)for(;;){
+ if(index in self){
+ memo = self[index];
+ index += i;
+ break;
+ }
+ index += i;
+ if(isRight ? index < 0 : length <= index){
+ throw TypeError('Reduce of empty array with no initial value');
+ }
+ }
+ for(;isRight ? index >= 0 : length > index; index += i)if(index in self){
+ memo = callbackfn(memo, self[index], index, O);
+ }
+ return memo;
};
/***/ },
-/* 118 */
+/* 169 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $reduce = __webpack_require__(168);
+
+ $export($export.P + $export.F * !__webpack_require__(156)([].reduceRight, true), 'Array', {
+ // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
+ reduceRight: function reduceRight(callbackfn /* , initialValue */){
+ return $reduce(this, callbackfn, arguments.length, arguments[1], true);
+ }
+ });
+
+/***/ },
+/* 170 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $indexOf = __webpack_require__(34)(false)
+ , $native = [].indexOf
+ , NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
+
+ $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(156)($native)), 'Array', {
+ // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
+ indexOf: function indexOf(searchElement /*, fromIndex = 0 */){
+ return NEGATIVE_ZERO
+ // convert -0 to +0
+ ? $native.apply(this, arguments) || 0
+ : $indexOf(this, searchElement, arguments[1]);
+ }
+ });
+
+/***/ },
+/* 171 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toIObject = __webpack_require__(30)
+ , toInteger = __webpack_require__(36)
+ , toLength = __webpack_require__(35)
+ , $native = [].lastIndexOf
+ , NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;
+
+ $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(156)($native)), 'Array', {
+ // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
+ lastIndexOf: function lastIndexOf(searchElement /*, fromIndex = @[*-1] */){
+ // convert -0 to +0
+ if(NEGATIVE_ZERO)return $native.apply(this, arguments) || 0;
+ var O = toIObject(this)
+ , length = toLength(O.length)
+ , index = length - 1;
+ if(arguments.length > 1)index = Math.min(index, toInteger(arguments[1]));
+ if(index < 0)index = length + index;
+ for(;index >= 0; index--)if(index in O)if(O[index] === searchElement)return index || 0;
+ return -1;
+ }
+ });
+
+/***/ },
+/* 172 */
/***/ function(module, exports, __webpack_require__) {
// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.P, 'Array', {copyWithin: __webpack_require__(119)});
+ $export($export.P, 'Array', {copyWithin: __webpack_require__(173)});
- __webpack_require__(114)('copyWithin');
+ __webpack_require__(174)('copyWithin');
/***/ },
-/* 119 */
+/* 173 */
/***/ function(module, exports, __webpack_require__) {
// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
'use strict';
- var toObject = __webpack_require__(18)
- , toIndex = __webpack_require__(23)
- , toLength = __webpack_require__(24);
+ var toObject = __webpack_require__(56)
+ , toIndex = __webpack_require__(37)
+ , toLength = __webpack_require__(35);
module.exports = [].copyWithin || function copyWithin(target/*= 0*/, start/*= 0, end = @length*/){
var O = toObject(this)
, len = toLength(O.length)
, to = toIndex(target, len)
, from = toIndex(start, len)
- , $$ = arguments
- , end = $$.length > 2 ? $$[2] : undefined
+ , end = arguments.length > 2 ? arguments[2] : undefined
, count = Math.min((end === undefined ? len : toIndex(end, len)) - from, len - to)
, inc = 1;
if(from < to && to < from + count){
@@ -2549,45 +3357,50 @@
};
/***/ },
-/* 120 */
+/* 174 */
+/***/ function(module, exports) {
+
+ module.exports = function(){ /* empty */ };
+
+/***/ },
+/* 175 */
/***/ function(module, exports, __webpack_require__) {
// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.P, 'Array', {fill: __webpack_require__(121)});
+ $export($export.P, 'Array', {fill: __webpack_require__(176)});
- __webpack_require__(114)('fill');
+ __webpack_require__(174)('fill');
/***/ },
-/* 121 */
+/* 176 */
/***/ function(module, exports, __webpack_require__) {
// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
'use strict';
- var toObject = __webpack_require__(18)
- , toIndex = __webpack_require__(23)
- , toLength = __webpack_require__(24);
- module.exports = [].fill || function fill(value /*, start = 0, end = @length */){
+ var toObject = __webpack_require__(56)
+ , toIndex = __webpack_require__(37)
+ , toLength = __webpack_require__(35);
+ module.exports = function fill(value /*, start = 0, end = @length */){
var O = toObject(this)
, length = toLength(O.length)
- , $$ = arguments
- , $$len = $$.length
- , index = toIndex($$len > 1 ? $$[1] : undefined, length)
- , end = $$len > 2 ? $$[2] : undefined
+ , aLen = arguments.length
+ , index = toIndex(aLen > 1 ? arguments[1] : undefined, length)
+ , end = aLen > 2 ? arguments[2] : undefined
, endPos = end === undefined ? length : toIndex(end, length);
while(endPos > index)O[index++] = value;
return O;
};
/***/ },
-/* 122 */
+/* 177 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
- var $export = __webpack_require__(3)
- , $find = __webpack_require__(26)(5)
+ var $export = __webpack_require__(6)
+ , $find = __webpack_require__(160)(5)
, KEY = 'find'
, forced = true;
// Shouldn't skip holes
@@ -2597,16 +3410,16 @@
return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});
- __webpack_require__(114)(KEY);
+ __webpack_require__(174)(KEY);
/***/ },
-/* 123 */
+/* 178 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
- var $export = __webpack_require__(3)
- , $find = __webpack_require__(26)(6)
+ var $export = __webpack_require__(6)
+ , $find = __webpack_require__(160)(6)
, KEY = 'findIndex'
, forced = true;
// Shouldn't skip holes
@@ -2616,95 +3429,139 @@
return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});
- __webpack_require__(114)(KEY);
+ __webpack_require__(174)(KEY);
/***/ },
-/* 124 */
+/* 179 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , LIBRARY = __webpack_require__(39)
- , global = __webpack_require__(4)
- , ctx = __webpack_require__(6)
- , classof = __webpack_require__(110)
- , $export = __webpack_require__(3)
- , isObject = __webpack_require__(13)
- , anObject = __webpack_require__(17)
- , aFunction = __webpack_require__(7)
- , strictNew = __webpack_require__(125)
- , forOf = __webpack_require__(126)
- , setProto = __webpack_require__(45).set
- , same = __webpack_require__(43)
- , SPECIES = __webpack_require__(29)('species')
- , speciesConstructor = __webpack_require__(127)
- , asap = __webpack_require__(128)
- , PROMISE = 'Promise'
- , process = global.process
- , isNode = classof(process) == 'process'
- , P = global[PROMISE]
- , empty = function(){ /* empty */ }
- , Wrapper;
-
- var testResolve = function(sub){
- var test = new P(empty), promise;
- if(sub)test.constructor = function(exec){
- exec(empty, empty);
- };
- (promise = P.resolve(test))['catch'](empty);
- return promise === test;
- };
+ var addToUnscopables = __webpack_require__(174)
+ , step = __webpack_require__(180)
+ , Iterators = __webpack_require__(130)
+ , toIObject = __webpack_require__(30);
- var USE_NATIVE = function(){
- var works = false;
- function P2(x){
- var self = new P(x);
- setProto(self, P2.prototype);
- return self;
+ // 22.1.3.4 Array.prototype.entries()
+ // 22.1.3.13 Array.prototype.keys()
+ // 22.1.3.29 Array.prototype.values()
+ // 22.1.3.30 Array.prototype[@@iterator]()
+ module.exports = __webpack_require__(129)(Array, 'Array', function(iterated, kind){
+ this._t = toIObject(iterated); // target
+ this._i = 0; // next index
+ this._k = kind; // kind
+ // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
+ }, function(){
+ var O = this._t
+ , kind = this._k
+ , index = this._i++;
+ if(!O || index >= O.length){
+ this._t = undefined;
+ return step(1);
}
+ if(kind == 'keys' )return step(0, index);
+ if(kind == 'values')return step(0, O[index]);
+ return step(0, [index, O[index]]);
+ }, 'values');
+
+ // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
+ Iterators.Arguments = Iterators.Array;
+
+ addToUnscopables('keys');
+ addToUnscopables('values');
+ addToUnscopables('entries');
+
+/***/ },
+/* 180 */
+/***/ function(module, exports) {
+
+ module.exports = function(done, value){
+ return {value: value, done: !!done};
+ };
+
+/***/ },
+/* 181 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(182)('Array');
+
+/***/ },
+/* 182 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var global = __webpack_require__(2)
+ , core = __webpack_require__(7)
+ , dP = __webpack_require__(11)
+ , DESCRIPTORS = __webpack_require__(4)
+ , SPECIES = __webpack_require__(23)('species');
+
+ module.exports = function(KEY){
+ var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];
+ if(DESCRIPTORS && C && !C[SPECIES])dP.f(C, SPECIES, {
+ configurable: true,
+ get: function(){ return this; }
+ });
+ };
+
+/***/ },
+/* 183 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var LIBRARY = __webpack_require__(26)
+ , global = __webpack_require__(2)
+ , ctx = __webpack_require__(8)
+ , classof = __webpack_require__(152)
+ , $export = __webpack_require__(6)
+ , isObject = __webpack_require__(13)
+ , aFunction = __webpack_require__(9)
+ , anInstance = __webpack_require__(184)
+ , forOf = __webpack_require__(185)
+ , speciesConstructor = __webpack_require__(186)
+ , task = __webpack_require__(187).set
+ , microtask = __webpack_require__(188)()
+ , PROMISE = 'Promise'
+ , TypeError = global.TypeError
+ , process = global.process
+ , $Promise = global[PROMISE]
+ , process = global.process
+ , isNode = classof(process) == 'process'
+ , empty = function(){ /* empty */ }
+ , Internal, GenericPromiseCapability, Wrapper;
+
+ var USE_NATIVE = !!function(){
try {
- works = P && P.resolve && testResolve();
- setProto(P2, P);
- P2.prototype = $.create(P.prototype, {constructor: {value: P2}});
- // actual Firefox has broken subclass support, test that
- if(!(P2.resolve(5).then(function(){}) instanceof P2)){
- works = false;
- }
- // actual V8 bug, https://code.google.com/p/v8/issues/detail?id=4162
- if(works && __webpack_require__(8)){
- var thenableThenGotten = false;
- P.resolve($.setDesc({}, 'then', {
- get: function(){ thenableThenGotten = true; }
- }));
- works = thenableThenGotten;
- }
- } catch(e){ works = false; }
- return works;
+ // correct subclassing with @@species support
+ var promise = $Promise.resolve(1)
+ , FakePromise = (promise.constructor = {})[__webpack_require__(23)('species')] = function(exec){ exec(empty, empty); };
+ // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
+ return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;
+ } catch(e){ /* empty */ }
}();
// helpers
var sameConstructor = function(a, b){
- // library wrapper special case
- if(LIBRARY && a === P && b === Wrapper)return true;
- return same(a, b);
- };
- var getConstructor = function(C){
- var S = anObject(C)[SPECIES];
- return S != undefined ? S : C;
+ // with library wrapper special case
+ return a === b || a === $Promise && b === Wrapper;
};
var isThenable = function(it){
var then;
return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
};
- var PromiseCapability = function(C){
+ var newPromiseCapability = function(C){
+ return sameConstructor($Promise, C)
+ ? new PromiseCapability(C)
+ : new GenericPromiseCapability(C);
+ };
+ var PromiseCapability = GenericPromiseCapability = function(C){
var resolve, reject;
this.promise = new C(function($$resolve, $$reject){
if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor');
resolve = $$resolve;
reject = $$reject;
});
- this.resolve = aFunction(resolve),
- this.reject = aFunction(reject)
+ this.resolve = aFunction(resolve);
+ this.reject = aFunction(reject);
};
var perform = function(exec){
try {
@@ -2713,23 +3570,32 @@
return {error: e};
}
};
- var notify = function(record, isReject){
- if(record.n)return;
- record.n = true;
- var chain = record.c;
- asap(function(){
- var value = record.v
- , ok = record.s == 1
+ var notify = function(promise, isReject){
+ if(promise._n)return;
+ promise._n = true;
+ var chain = promise._c;
+ microtask(function(){
+ var value = promise._v
+ , ok = promise._s == 1
, i = 0;
var run = function(reaction){
var handler = ok ? reaction.ok : reaction.fail
, resolve = reaction.resolve
, reject = reaction.reject
+ , domain = reaction.domain
, result, then;
try {
if(handler){
- if(!ok)record.h = true;
- result = handler === true ? value : handler(value);
+ if(!ok){
+ if(promise._h == 2)onHandleUnhandled(promise);
+ promise._h = 1;
+ }
+ if(handler === true)result = value;
+ else {
+ if(domain)domain.enter();
+ result = handler(value);
+ if(domain)domain.exit();
+ }
if(result === reaction.promise){
reject(TypeError('Promise-chain cycle'));
} else if(then = isThenable(result)){
@@ -2741,12 +3607,17 @@
}
};
while(chain.length > i)run(chain[i++]); // variable length - can't use forEach
- chain.length = 0;
- record.n = false;
- if(isReject)setTimeout(function(){
- var promise = record.p
- , handler, console;
- if(isUnhandled(promise)){
+ promise._c = [];
+ promise._n = false;
+ if(isReject && !promise._h)onUnhandled(promise);
+ });
+ };
+ var onUnhandled = function(promise){
+ task.call(global, function(){
+ var value = promise._v
+ , abrupt, handler, console;
+ if(isUnhandled(promise)){
+ abrupt = perform(function(){
if(isNode){
process.emit('unhandledRejection', value, promise);
} else if(handler = global.onunhandledrejection){
@@ -2754,42 +3625,54 @@
} else if((console = global.console) && console.error){
console.error('Unhandled promise rejection', value);
}
- } record.a = undefined;
- }, 1);
+ });
+ // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
+ promise._h = isNode || isUnhandled(promise) ? 2 : 1;
+ } promise._a = undefined;
+ if(abrupt)throw abrupt.error;
});
};
var isUnhandled = function(promise){
- var record = promise._d
- , chain = record.a || record.c
- , i = 0
+ if(promise._h == 1)return false;
+ var chain = promise._a || promise._c
+ , i = 0
, reaction;
- if(record.h)return false;
while(chain.length > i){
reaction = chain[i++];
if(reaction.fail || !isUnhandled(reaction.promise))return false;
} return true;
};
+ var onHandleUnhandled = function(promise){
+ task.call(global, function(){
+ var handler;
+ if(isNode){
+ process.emit('rejectionHandled', promise);
+ } else if(handler = global.onrejectionhandled){
+ handler({promise: promise, reason: promise._v});
+ }
+ });
+ };
var $reject = function(value){
- var record = this;
- if(record.d)return;
- record.d = true;
- record = record.r || record; // unwrap
- record.v = value;
- record.s = 2;
- record.a = record.c.slice();
- notify(record, true);
+ var promise = this;
+ if(promise._d)return;
+ promise._d = true;
+ promise = promise._w || promise; // unwrap
+ promise._v = value;
+ promise._s = 2;
+ if(!promise._a)promise._a = promise._c.slice();
+ notify(promise, true);
};
var $resolve = function(value){
- var record = this
+ var promise = this
, then;
- if(record.d)return;
- record.d = true;
- record = record.r || record; // unwrap
+ if(promise._d)return;
+ promise._d = true;
+ promise = promise._w || promise; // unwrap
try {
- if(record.p === value)throw TypeError("Promise can't be resolved itself");
+ if(promise === value)throw TypeError("Promise can't be resolved itself");
if(then = isThenable(value)){
- asap(function(){
- var wrapper = {r: record, d: false}; // wrap
+ microtask(function(){
+ var wrapper = {_w: promise, _d: false}; // wrap
try {
then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
} catch(e){
@@ -2797,114 +3680,122 @@
}
});
} else {
- record.v = value;
- record.s = 1;
- notify(record, false);
+ promise._v = value;
+ promise._s = 1;
+ notify(promise, false);
}
} catch(e){
- $reject.call({r: record, d: false}, e); // wrap
+ $reject.call({_w: promise, _d: false}, e); // wrap
}
};
// constructor polyfill
if(!USE_NATIVE){
// 25.4.3.1 Promise(executor)
- P = function Promise(executor){
+ $Promise = function Promise(executor){
+ anInstance(this, $Promise, PROMISE, '_h');
aFunction(executor);
- var record = this._d = {
- p: strictNew(this, P, PROMISE), // <- promise
- c: [], // <- awaiting reactions
- a: undefined, // <- checked in isUnhandled reactions
- s: 0, // <- state
- d: false, // <- done
- v: undefined, // <- value
- h: false, // <- handled rejection
- n: false // <- notify
- };
+ Internal.call(this);
try {
- executor(ctx($resolve, record, 1), ctx($reject, record, 1));
+ executor(ctx($resolve, this, 1), ctx($reject, this, 1));
} catch(err){
- $reject.call(record, err);
+ $reject.call(this, err);
}
};
- __webpack_require__(130)(P.prototype, {
+ Internal = function Promise(executor){
+ this._c = []; // <- awaiting reactions
+ this._a = undefined; // <- checked in isUnhandled reactions
+ this._s = 0; // <- state
+ this._d = false; // <- done
+ this._v = undefined; // <- value
+ this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
+ this._n = false; // <- notify
+ };
+ Internal.prototype = __webpack_require__(189)($Promise.prototype, {
// 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
then: function then(onFulfilled, onRejected){
- var reaction = new PromiseCapability(speciesConstructor(this, P))
- , promise = reaction.promise
- , record = this._d;
- reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
- reaction.fail = typeof onRejected == 'function' && onRejected;
- record.c.push(reaction);
- if(record.a)record.a.push(reaction);
- if(record.s)notify(record, false);
- return promise;
+ var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
+ reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
+ reaction.fail = typeof onRejected == 'function' && onRejected;
+ reaction.domain = isNode ? process.domain : undefined;
+ this._c.push(reaction);
+ if(this._a)this._a.push(reaction);
+ if(this._s)notify(this, false);
+ return reaction.promise;
},
// 25.4.5.1 Promise.prototype.catch(onRejected)
'catch': function(onRejected){
return this.then(undefined, onRejected);
}
});
+ PromiseCapability = function(){
+ var promise = new Internal;
+ this.promise = promise;
+ this.resolve = ctx($resolve, promise, 1);
+ this.reject = ctx($reject, promise, 1);
+ };
}
- $export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: P});
- __webpack_require__(35)(P, PROMISE);
- __webpack_require__(117)(PROMISE);
- Wrapper = __webpack_require__(5)[PROMISE];
+ $export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: $Promise});
+ __webpack_require__(22)($Promise, PROMISE);
+ __webpack_require__(182)(PROMISE);
+ Wrapper = __webpack_require__(7)[PROMISE];
// statics
$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
// 25.4.4.5 Promise.reject(r)
reject: function reject(r){
- var capability = new PromiseCapability(this)
+ var capability = newPromiseCapability(this)
, $$reject = capability.reject;
$$reject(r);
return capability.promise;
}
});
- $export($export.S + $export.F * (!USE_NATIVE || testResolve(true)), PROMISE, {
+ $export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
// 25.4.4.6 Promise.resolve(x)
resolve: function resolve(x){
// instanceof instead of internal slot check because we should fix it without replacement native Promise core
- if(x instanceof P && sameConstructor(x.constructor, this))return x;
- var capability = new PromiseCapability(this)
+ if(x instanceof $Promise && sameConstructor(x.constructor, this))return x;
+ var capability = newPromiseCapability(this)
, $$resolve = capability.resolve;
$$resolve(x);
return capability.promise;
}
});
- $export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(111)(function(iter){
- P.all(iter)['catch'](function(){});
+ $export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(153)(function(iter){
+ $Promise.all(iter)['catch'](empty);
})), PROMISE, {
// 25.4.4.1 Promise.all(iterable)
all: function all(iterable){
- var C = getConstructor(this)
- , capability = new PromiseCapability(C)
+ var C = this
+ , capability = newPromiseCapability(C)
, resolve = capability.resolve
- , reject = capability.reject
- , values = [];
+ , reject = capability.reject;
var abrupt = perform(function(){
- forOf(iterable, false, values.push, values);
- var remaining = values.length
- , results = Array(remaining);
- if(remaining)$.each.call(values, function(promise, index){
- var alreadyCalled = false;
+ var values = []
+ , index = 0
+ , remaining = 1;
+ forOf(iterable, false, function(promise){
+ var $index = index++
+ , alreadyCalled = false;
+ values.push(undefined);
+ remaining++;
C.resolve(promise).then(function(value){
if(alreadyCalled)return;
- alreadyCalled = true;
- results[index] = value;
- --remaining || resolve(results);
+ alreadyCalled = true;
+ values[$index] = value;
+ --remaining || resolve(values);
}, reject);
});
- else resolve(results);
+ --remaining || resolve(values);
});
if(abrupt)reject(abrupt.error);
return capability.promise;
},
// 25.4.4.4 Promise.race(iterable)
race: function race(iterable){
- var C = getConstructor(this)
- , capability = new PromiseCapability(C)
+ var C = this
+ , capability = newPromiseCapability(C)
, reject = capability.reject;
var abrupt = perform(function(){
forOf(iterable, false, function(promise){
@@ -2917,129 +3808,67 @@
});
/***/ },
-/* 125 */
+/* 184 */
/***/ function(module, exports) {
- module.exports = function(it, Constructor, name){
- if(!(it instanceof Constructor))throw TypeError(name + ": use the 'new' operator!");
- return it;
+ module.exports = function(it, Constructor, name, forbiddenField){
+ if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){
+ throw TypeError(name + ': incorrect invocation!');
+ } return it;
};
/***/ },
-/* 126 */
+/* 185 */
/***/ function(module, exports, __webpack_require__) {
- var ctx = __webpack_require__(6)
- , call = __webpack_require__(107)
- , isArrayIter = __webpack_require__(108)
- , anObject = __webpack_require__(17)
- , toLength = __webpack_require__(24)
- , getIterFn = __webpack_require__(109);
- module.exports = function(iterable, entries, fn, that){
- var iterFn = getIterFn(iterable)
+ var ctx = __webpack_require__(8)
+ , call = __webpack_require__(148)
+ , isArrayIter = __webpack_require__(149)
+ , anObject = __webpack_require__(12)
+ , toLength = __webpack_require__(35)
+ , getIterFn = __webpack_require__(151)
+ , BREAK = {}
+ , RETURN = {};
+ var exports = module.exports = function(iterable, entries, fn, that, ITERATOR){
+ var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)
, f = ctx(fn, that, entries ? 2 : 1)
, index = 0
- , length, step, iterator;
+ , length, step, iterator, result;
if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');
// fast case for arrays with default iterator
if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){
- entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
+ result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
+ if(result === BREAK || result === RETURN)return result;
} else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
- call(iterator, f, step.value, entries);
+ result = call(iterator, f, step.value, entries);
+ if(result === BREAK || result === RETURN)return result;
}
};
+ exports.BREAK = BREAK;
+ exports.RETURN = RETURN;
/***/ },
-/* 127 */
+/* 186 */
/***/ function(module, exports, __webpack_require__) {
// 7.3.20 SpeciesConstructor(O, defaultConstructor)
- var anObject = __webpack_require__(17)
- , aFunction = __webpack_require__(7)
- , SPECIES = __webpack_require__(29)('species');
+ var anObject = __webpack_require__(12)
+ , aFunction = __webpack_require__(9)
+ , SPECIES = __webpack_require__(23)('species');
module.exports = function(O, D){
var C = anObject(O).constructor, S;
return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
};
/***/ },
-/* 128 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(4)
- , macrotask = __webpack_require__(129).set
- , Observer = global.MutationObserver || global.WebKitMutationObserver
- , process = global.process
- , Promise = global.Promise
- , isNode = __webpack_require__(15)(process) == 'process'
- , head, last, notify;
-
- var flush = function(){
- var parent, domain, fn;
- if(isNode && (parent = process.domain)){
- process.domain = null;
- parent.exit();
- }
- while(head){
- domain = head.domain;
- fn = head.fn;
- if(domain)domain.enter();
- fn(); // <- currently we use it only for Promise - try / catch not required
- if(domain)domain.exit();
- head = head.next;
- } last = undefined;
- if(parent)parent.enter();
- };
-
- // Node.js
- if(isNode){
- notify = function(){
- process.nextTick(flush);
- };
- // browsers with MutationObserver
- } else if(Observer){
- var toggle = 1
- , node = document.createTextNode('');
- new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new
- notify = function(){
- node.data = toggle = -toggle;
- };
- // environments with maybe non-completely correct, but existent Promise
- } else if(Promise && Promise.resolve){
- notify = function(){
- Promise.resolve().then(flush);
- };
- // for other environments - macrotask based on:
- // - setImmediate
- // - MessageChannel
- // - window.postMessag
- // - onreadystatechange
- // - setTimeout
- } else {
- notify = function(){
- // strange IE + webpack dev server bug - use .call(global)
- macrotask.call(global, flush);
- };
- }
-
- module.exports = function asap(fn){
- var task = {fn: fn, next: undefined, domain: isNode && process.domain};
- if(last)last.next = task;
- if(!head){
- head = task;
- notify();
- } last = task;
- };
-
-/***/ },
-/* 129 */
+/* 187 */
/***/ function(module, exports, __webpack_require__) {
- var ctx = __webpack_require__(6)
- , invoke = __webpack_require__(16)
- , html = __webpack_require__(11)
- , cel = __webpack_require__(12)
- , global = __webpack_require__(4)
+ var ctx = __webpack_require__(8)
+ , invoke = __webpack_require__(74)
+ , html = __webpack_require__(46)
+ , cel = __webpack_require__(15)
+ , global = __webpack_require__(2)
, process = global.process
, setTask = global.setImmediate
, clearTask = global.clearImmediate
@@ -3056,7 +3885,7 @@
fn();
}
};
- var listner = function(event){
+ var listener = function(event){
run.call(event.data);
};
// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
@@ -3074,7 +3903,7 @@
delete queue[id];
};
// Node.js 0.8-
- if(__webpack_require__(15)(process) == 'process'){
+ if(__webpack_require__(32)(process) == 'process'){
defer = function(id){
process.nextTick(ctx(run, id, 1));
};
@@ -3082,7 +3911,7 @@
} else if(MessageChannel){
channel = new MessageChannel;
port = channel.port2;
- channel.port1.onmessage = listner;
+ channel.port1.onmessage = listener;
defer = ctx(port.postMessage, port, 1);
// Browsers with postMessage, skip WebWorkers
// IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
@@ -3090,7 +3919,7 @@
defer = function(id){
global.postMessage(id + '', '*');
};
- global.addEventListener('message', listner, false);
+ global.addEventListener('message', listener, false);
// IE8-
} else if(ONREADYSTATECHANGE in cel('script')){
defer = function(id){
@@ -3112,24 +3941,99 @@
};
/***/ },
-/* 130 */
+/* 188 */
/***/ function(module, exports, __webpack_require__) {
- var redefine = __webpack_require__(33);
- module.exports = function(target, src){
- for(var key in src)redefine(target, key, src[key]);
- return target;
+ var global = __webpack_require__(2)
+ , macrotask = __webpack_require__(187).set
+ , Observer = global.MutationObserver || global.WebKitMutationObserver
+ , process = global.process
+ , Promise = global.Promise
+ , isNode = __webpack_require__(32)(process) == 'process';
+
+ module.exports = function(){
+ var head, last, notify;
+
+ var flush = function(){
+ var parent, fn;
+ if(isNode && (parent = process.domain))parent.exit();
+ while(head){
+ fn = head.fn;
+ head = head.next;
+ try {
+ fn();
+ } catch(e){
+ if(head)notify();
+ else last = undefined;
+ throw e;
+ }
+ } last = undefined;
+ if(parent)parent.enter();
+ };
+
+ // Node.js
+ if(isNode){
+ notify = function(){
+ process.nextTick(flush);
+ };
+ // browsers with MutationObserver
+ } else if(Observer){
+ var toggle = true
+ , node = document.createTextNode('');
+ new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new
+ notify = function(){
+ node.data = toggle = !toggle;
+ };
+ // environments with maybe non-completely correct, but existent Promise
+ } else if(Promise && Promise.resolve){
+ var promise = Promise.resolve();
+ notify = function(){
+ promise.then(flush);
+ };
+ // for other environments - macrotask based on:
+ // - setImmediate
+ // - MessageChannel
+ // - window.postMessag
+ // - onreadystatechange
+ // - setTimeout
+ } else {
+ notify = function(){
+ // strange IE + webpack dev server bug - use .call(global)
+ macrotask.call(global, flush);
+ };
+ }
+
+ return function(fn){
+ var task = {fn: fn, next: undefined};
+ if(last)last.next = task;
+ if(!head){
+ head = task;
+ notify();
+ } last = task;
+ };
};
/***/ },
-/* 131 */
+/* 189 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var hide = __webpack_require__(10);
+ module.exports = function(target, src, safe){
+ for(var key in src){
+ if(safe && target[key])target[key] = src[key];
+ else hide(target, key, src[key]);
+ } return target;
+ };
+
+/***/ },
+/* 190 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var strong = __webpack_require__(132);
+ var strong = __webpack_require__(191);
// 23.1 Map Objects
- __webpack_require__(133)('Map', function(get){
+ module.exports = __webpack_require__(192)('Map', function(get){
return function Map(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.1.3.6 Map.prototype.get(key)
@@ -3144,41 +4048,23 @@
}, strong, true);
/***/ },
-/* 132 */
+/* 191 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , hide = __webpack_require__(34)
- , redefineAll = __webpack_require__(130)
- , ctx = __webpack_require__(6)
- , strictNew = __webpack_require__(125)
- , defined = __webpack_require__(19)
- , forOf = __webpack_require__(126)
- , $iterDefine = __webpack_require__(103)
- , step = __webpack_require__(115)
- , ID = __webpack_require__(25)('id')
- , $has = __webpack_require__(14)
- , isObject = __webpack_require__(13)
- , setSpecies = __webpack_require__(117)
- , DESCRIPTORS = __webpack_require__(8)
- , isExtensible = Object.isExtensible || isObject
- , SIZE = DESCRIPTORS ? '_s' : 'size'
- , id = 0;
-
- var fastKey = function(it, create){
- // return primitive with prefix
- if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
- if(!$has(it, ID)){
- // can't set id to frozen object
- if(!isExtensible(it))return 'F';
- // not necessary to add id
- if(!create)return 'E';
- // add missing object id
- hide(it, ID, ++id);
- // return object id with prefix
- } return 'O' + it[ID];
- };
+ var dP = __webpack_require__(11).f
+ , create = __webpack_require__(44)
+ , redefineAll = __webpack_require__(189)
+ , ctx = __webpack_require__(8)
+ , anInstance = __webpack_require__(184)
+ , defined = __webpack_require__(33)
+ , forOf = __webpack_require__(185)
+ , $iterDefine = __webpack_require__(129)
+ , step = __webpack_require__(180)
+ , setSpecies = __webpack_require__(182)
+ , DESCRIPTORS = __webpack_require__(4)
+ , fastKey = __webpack_require__(19).fastKey
+ , SIZE = DESCRIPTORS ? '_s' : 'size';
var getEntry = function(that, key){
// fast case
@@ -3193,11 +4079,11 @@
module.exports = {
getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
var C = wrapper(function(that, iterable){
- strictNew(that, C, NAME);
- that._i = $.create(null); // index
- that._f = undefined; // first entry
- that._l = undefined; // last entry
- that[SIZE] = 0; // size
+ anInstance(that, C, NAME, '_i');
+ that._i = create(null); // index
+ that._f = undefined; // first entry
+ that._l = undefined; // last entry
+ that[SIZE] = 0; // size
if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
});
redefineAll(C.prototype, {
@@ -3232,6 +4118,7 @@
// 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
// 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
forEach: function forEach(callbackfn /*, that = undefined */){
+ anInstance(this, C, 'forEach');
var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)
, entry;
while(entry = entry ? entry.n : this._f){
@@ -3246,7 +4133,7 @@
return !!getEntry(this, key);
}
});
- if(DESCRIPTORS)$.setDesc(C.prototype, 'size', {
+ if(DESCRIPTORS)dP(C.prototype, 'size', {
get: function(){
return defined(this[SIZE]);
}
@@ -3308,21 +4195,23 @@
};
/***/ },
-/* 133 */
+/* 192 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , global = __webpack_require__(4)
- , $export = __webpack_require__(3)
- , fails = __webpack_require__(9)
- , hide = __webpack_require__(34)
- , redefineAll = __webpack_require__(130)
- , forOf = __webpack_require__(126)
- , strictNew = __webpack_require__(125)
+ var global = __webpack_require__(2)
+ , $export = __webpack_require__(6)
+ , meta = __webpack_require__(19)
+ , fails = __webpack_require__(5)
+ , hide = __webpack_require__(10)
+ , redefineAll = __webpack_require__(189)
+ , forOf = __webpack_require__(185)
+ , anInstance = __webpack_require__(184)
, isObject = __webpack_require__(13)
- , setToStringTag = __webpack_require__(35)
- , DESCRIPTORS = __webpack_require__(8);
+ , setToStringTag = __webpack_require__(22)
+ , dP = __webpack_require__(11).f
+ , each = __webpack_require__(160)(0)
+ , DESCRIPTORS = __webpack_require__(4);
module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){
var Base = global[NAME]
@@ -3336,21 +4225,23 @@
// create collection constructor
C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
redefineAll(C.prototype, methods);
+ meta.NEED = true;
} else {
C = wrapper(function(target, iterable){
- strictNew(target, C, NAME);
+ anInstance(target, C, NAME, '_c');
target._c = new Base;
if(iterable != undefined)forOf(iterable, IS_MAP, target[ADDER], target);
});
- $.each.call('add,clear,delete,forEach,get,has,set,keys,values,entries'.split(','),function(KEY){
+ each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','),function(KEY){
var IS_ADDER = KEY == 'add' || KEY == 'set';
if(KEY in proto && !(IS_WEAK && KEY == 'clear'))hide(C.prototype, KEY, function(a, b){
+ anInstance(this, C, KEY);
if(!IS_ADDER && IS_WEAK && !isObject(a))return KEY == 'get' ? undefined : false;
var result = this._c[KEY](a === 0 ? 0 : a, b);
return IS_ADDER ? this : result;
});
});
- if('size' in proto)$.setDesc(C.prototype, 'size', {
+ if('size' in proto)dP(C.prototype, 'size', {
get: function(){
return this._c.size;
}
@@ -3368,14 +4259,14 @@
};
/***/ },
-/* 134 */
+/* 193 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var strong = __webpack_require__(132);
+ var strong = __webpack_require__(191);
// 23.2 Set Objects
- __webpack_require__(133)('Set', function(get){
+ module.exports = __webpack_require__(192)('Set', function(get){
return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.2.3.1 Set.prototype.add(value)
@@ -3385,46 +4276,59 @@
}, strong);
/***/ },
-/* 135 */
+/* 194 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , redefine = __webpack_require__(33)
- , weak = __webpack_require__(136)
+ var each = __webpack_require__(160)(0)
+ , redefine = __webpack_require__(18)
+ , meta = __webpack_require__(19)
+ , assign = __webpack_require__(67)
+ , weak = __webpack_require__(195)
, isObject = __webpack_require__(13)
- , has = __webpack_require__(14)
- , frozenStore = weak.frozenStore
- , WEAK = weak.WEAK
- , isExtensible = Object.isExtensible || isObject
- , tmp = {};
+ , getWeak = meta.getWeak
+ , isExtensible = Object.isExtensible
+ , uncaughtFrozenStore = weak.ufstore
+ , tmp = {}
+ , InternalMap;
+
+ var wrapper = function(get){
+ return function WeakMap(){
+ return get(this, arguments.length > 0 ? arguments[0] : undefined);
+ };
+ };
- // 23.3 WeakMap Objects
- var $WeakMap = __webpack_require__(133)('WeakMap', function(get){
- return function WeakMap(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
- }, {
+ var methods = {
// 23.3.3.3 WeakMap.prototype.get(key)
get: function get(key){
if(isObject(key)){
- if(!isExtensible(key))return frozenStore(this).get(key);
- if(has(key, WEAK))return key[WEAK][this._i];
+ var data = getWeak(key);
+ if(data === true)return uncaughtFrozenStore(this).get(key);
+ return data ? data[this._i] : undefined;
}
},
// 23.3.3.5 WeakMap.prototype.set(key, value)
set: function set(key, value){
return weak.def(this, key, value);
}
- }, weak, true, true);
+ };
+
+ // 23.3 WeakMap Objects
+ var $WeakMap = module.exports = __webpack_require__(192)('WeakMap', wrapper, methods, weak, true, true);
// IE11 WeakMap frozen keys fix
if(new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){
- $.each.call(['delete', 'has', 'get', 'set'], function(key){
+ InternalMap = weak.getConstructor(wrapper);
+ assign(InternalMap.prototype, methods);
+ meta.NEED = true;
+ each(['delete', 'has', 'get', 'set'], function(key){
var proto = $WeakMap.prototype
, method = proto[key];
redefine(proto, key, function(a, b){
- // store frozen objects on leaky map
+ // store frozen objects on internal weakmap shim
if(isObject(a) && !isExtensible(a)){
- var result = frozenStore(this)[key](a, b);
+ if(!this._f)this._f = new InternalMap;
+ var result = this._f[key](a, b);
return key == 'set' ? this : result;
// store all the rest on native weakmap
} return method.call(this, a, b);
@@ -3433,46 +4337,44 @@
}
/***/ },
-/* 136 */
+/* 195 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var hide = __webpack_require__(34)
- , redefineAll = __webpack_require__(130)
- , anObject = __webpack_require__(17)
+ var redefineAll = __webpack_require__(189)
+ , getWeak = __webpack_require__(19).getWeak
+ , anObject = __webpack_require__(12)
, isObject = __webpack_require__(13)
- , strictNew = __webpack_require__(125)
- , forOf = __webpack_require__(126)
- , createArrayMethod = __webpack_require__(26)
- , $has = __webpack_require__(14)
- , WEAK = __webpack_require__(25)('weak')
- , isExtensible = Object.isExtensible || isObject
+ , anInstance = __webpack_require__(184)
+ , forOf = __webpack_require__(185)
+ , createArrayMethod = __webpack_require__(160)
+ , $has = __webpack_require__(3)
, arrayFind = createArrayMethod(5)
, arrayFindIndex = createArrayMethod(6)
, id = 0;
- // fallback for frozen keys
- var frozenStore = function(that){
- return that._l || (that._l = new FrozenStore);
+ // fallback for uncaught frozen keys
+ var uncaughtFrozenStore = function(that){
+ return that._l || (that._l = new UncaughtFrozenStore);
};
- var FrozenStore = function(){
+ var UncaughtFrozenStore = function(){
this.a = [];
};
- var findFrozen = function(store, key){
+ var findUncaughtFrozen = function(store, key){
return arrayFind(store.a, function(it){
return it[0] === key;
});
};
- FrozenStore.prototype = {
+ UncaughtFrozenStore.prototype = {
get: function(key){
- var entry = findFrozen(this, key);
+ var entry = findUncaughtFrozen(this, key);
if(entry)return entry[1];
},
has: function(key){
- return !!findFrozen(this, key);
+ return !!findUncaughtFrozen(this, key);
},
set: function(key, value){
- var entry = findFrozen(this, key);
+ var entry = findUncaughtFrozen(this, key);
if(entry)entry[1] = value;
else this.a.push([key, value]);
},
@@ -3488,9 +4390,9 @@
module.exports = {
getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
var C = wrapper(function(that, iterable){
- strictNew(that, C, NAME);
+ anInstance(that, C, NAME, '_i');
that._i = id++; // collection id
- that._l = undefined; // leak store for frozen objects
+ that._l = undefined; // leak store for uncaught frozen objects
if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
});
redefineAll(C.prototype, {
@@ -3498,40 +4400,39 @@
// 23.4.3.3 WeakSet.prototype.delete(value)
'delete': function(key){
if(!isObject(key))return false;
- if(!isExtensible(key))return frozenStore(this)['delete'](key);
- return $has(key, WEAK) && $has(key[WEAK], this._i) && delete key[WEAK][this._i];
+ var data = getWeak(key);
+ if(data === true)return uncaughtFrozenStore(this)['delete'](key);
+ return data && $has(data, this._i) && delete data[this._i];
},
// 23.3.3.4 WeakMap.prototype.has(key)
// 23.4.3.4 WeakSet.prototype.has(value)
has: function has(key){
if(!isObject(key))return false;
- if(!isExtensible(key))return frozenStore(this).has(key);
- return $has(key, WEAK) && $has(key[WEAK], this._i);
+ var data = getWeak(key);
+ if(data === true)return uncaughtFrozenStore(this).has(key);
+ return data && $has(data, this._i);
}
});
return C;
},
def: function(that, key, value){
- if(!isExtensible(anObject(key))){
- frozenStore(that).set(key, value);
- } else {
- $has(key, WEAK) || hide(key, WEAK, {});
- key[WEAK][that._i] = value;
- } return that;
+ var data = getWeak(anObject(key), true);
+ if(data === true)uncaughtFrozenStore(that).set(key, value);
+ else data[that._i] = value;
+ return that;
},
- frozenStore: frozenStore,
- WEAK: WEAK
+ ufstore: uncaughtFrozenStore
};
/***/ },
-/* 137 */
+/* 196 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var weak = __webpack_require__(136);
+ var weak = __webpack_require__(195);
// 23.4 WeakSet Objects
- __webpack_require__(133)('WeakSet', function(get){
+ __webpack_require__(192)('WeakSet', function(get){
return function WeakSet(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.4.3.1 WeakSet.prototype.add(value)
@@ -3541,42 +4442,56 @@
}, weak, false, true);
/***/ },
-/* 138 */
+/* 197 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
- var $export = __webpack_require__(3)
- , _apply = Function.apply
- , anObject = __webpack_require__(17);
-
- $export($export.S, 'Reflect', {
+ var $export = __webpack_require__(6)
+ , aFunction = __webpack_require__(9)
+ , anObject = __webpack_require__(12)
+ , rApply = (__webpack_require__(2).Reflect || {}).apply
+ , fApply = Function.apply;
+ // MS Edge argumentsList argument is optional
+ $export($export.S + $export.F * !__webpack_require__(5)(function(){
+ rApply(function(){});
+ }), 'Reflect', {
apply: function apply(target, thisArgument, argumentsList){
- return _apply.call(target, thisArgument, anObject(argumentsList));
+ var T = aFunction(target)
+ , L = anObject(argumentsList);
+ return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);
}
});
/***/ },
-/* 139 */
+/* 198 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
- var $ = __webpack_require__(2)
- , $export = __webpack_require__(3)
- , aFunction = __webpack_require__(7)
- , anObject = __webpack_require__(17)
- , isObject = __webpack_require__(13)
- , bind = Function.bind || __webpack_require__(5).Function.prototype.bind;
-
- // MS Edge supports only 2 arguments
+ var $export = __webpack_require__(6)
+ , create = __webpack_require__(44)
+ , aFunction = __webpack_require__(9)
+ , anObject = __webpack_require__(12)
+ , isObject = __webpack_require__(13)
+ , fails = __webpack_require__(5)
+ , bind = __webpack_require__(73)
+ , rConstruct = (__webpack_require__(2).Reflect || {}).construct;
+
+ // MS Edge supports only 2 arguments and argumentsList argument is optional
// FF Nightly sets third argument as `new.target`, but does not create `this` from it
- $export($export.S + $export.F * __webpack_require__(9)(function(){
+ var NEW_TARGET_BUG = fails(function(){
function F(){}
- return !(Reflect.construct(function(){}, [], F) instanceof F);
- }), 'Reflect', {
+ return !(rConstruct(function(){}, [], F) instanceof F);
+ });
+ var ARGS_BUG = !fails(function(){
+ rConstruct(function(){});
+ });
+
+ $export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
construct: function construct(Target, args /*, newTarget*/){
aFunction(Target);
anObject(args);
var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
+ if(ARGS_BUG && !NEW_TARGET_BUG)return rConstruct(Target, args, newTarget);
if(Target == newTarget){
// w/o altered newTarget, optimization for 0-4 arguments
switch(args.length){
@@ -3593,29 +4508,32 @@
}
// with altered newTarget, not support built-in constructors
var proto = newTarget.prototype
- , instance = $.create(isObject(proto) ? proto : Object.prototype)
+ , instance = create(isObject(proto) ? proto : Object.prototype)
, result = Function.apply.call(Target, instance, args);
return isObject(result) ? result : instance;
}
});
/***/ },
-/* 140 */
+/* 199 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
- var $ = __webpack_require__(2)
- , $export = __webpack_require__(3)
- , anObject = __webpack_require__(17);
+ var dP = __webpack_require__(11)
+ , $export = __webpack_require__(6)
+ , anObject = __webpack_require__(12)
+ , toPrimitive = __webpack_require__(16);
// MS Edge has broken Reflect.defineProperty - throwing instead of returning false
- $export($export.S + $export.F * __webpack_require__(9)(function(){
- Reflect.defineProperty($.setDesc({}, 1, {value: 1}), 1, {value: 2});
+ $export($export.S + $export.F * __webpack_require__(5)(function(){
+ Reflect.defineProperty(dP.f({}, 1, {value: 1}), 1, {value: 2});
}), 'Reflect', {
defineProperty: function defineProperty(target, propertyKey, attributes){
anObject(target);
+ propertyKey = toPrimitive(propertyKey, true);
+ anObject(attributes);
try {
- $.setDesc(target, propertyKey, attributes);
+ dP.f(target, propertyKey, attributes);
return true;
} catch(e){
return false;
@@ -3624,29 +4542,29 @@
});
/***/ },
-/* 141 */
+/* 200 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.4 Reflect.deleteProperty(target, propertyKey)
- var $export = __webpack_require__(3)
- , getDesc = __webpack_require__(2).getDesc
- , anObject = __webpack_require__(17);
+ var $export = __webpack_require__(6)
+ , gOPD = __webpack_require__(49).f
+ , anObject = __webpack_require__(12);
$export($export.S, 'Reflect', {
deleteProperty: function deleteProperty(target, propertyKey){
- var desc = getDesc(anObject(target), propertyKey);
+ var desc = gOPD(anObject(target), propertyKey);
return desc && !desc.configurable ? false : delete target[propertyKey];
}
});
/***/ },
-/* 142 */
+/* 201 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// 26.1.5 Reflect.enumerate(target)
- var $export = __webpack_require__(3)
- , anObject = __webpack_require__(17);
+ var $export = __webpack_require__(6)
+ , anObject = __webpack_require__(12);
var Enumerate = function(iterated){
this._t = anObject(iterated); // target
this._i = 0; // next index
@@ -3654,7 +4572,7 @@
, key;
for(key in iterated)keys.push(key);
};
- __webpack_require__(105)(Enumerate, 'Object', function(){
+ __webpack_require__(131)(Enumerate, 'Object', function(){
var that = this
, keys = that._k
, key;
@@ -3671,53 +4589,54 @@
});
/***/ },
-/* 143 */
+/* 202 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.6 Reflect.get(target, propertyKey [, receiver])
- var $ = __webpack_require__(2)
- , has = __webpack_require__(14)
- , $export = __webpack_require__(3)
- , isObject = __webpack_require__(13)
- , anObject = __webpack_require__(17);
+ var gOPD = __webpack_require__(49)
+ , getPrototypeOf = __webpack_require__(57)
+ , has = __webpack_require__(3)
+ , $export = __webpack_require__(6)
+ , isObject = __webpack_require__(13)
+ , anObject = __webpack_require__(12);
function get(target, propertyKey/*, receiver*/){
var receiver = arguments.length < 3 ? target : arguments[2]
, desc, proto;
if(anObject(target) === receiver)return target[propertyKey];
- if(desc = $.getDesc(target, propertyKey))return has(desc, 'value')
+ if(desc = gOPD.f(target, propertyKey))return has(desc, 'value')
? desc.value
: desc.get !== undefined
? desc.get.call(receiver)
: undefined;
- if(isObject(proto = $.getProto(target)))return get(proto, propertyKey, receiver);
+ if(isObject(proto = getPrototypeOf(target)))return get(proto, propertyKey, receiver);
}
$export($export.S, 'Reflect', {get: get});
/***/ },
-/* 144 */
+/* 203 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
- var $ = __webpack_require__(2)
- , $export = __webpack_require__(3)
- , anObject = __webpack_require__(17);
+ var gOPD = __webpack_require__(49)
+ , $export = __webpack_require__(6)
+ , anObject = __webpack_require__(12);
$export($export.S, 'Reflect', {
getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey){
- return $.getDesc(anObject(target), propertyKey);
+ return gOPD.f(anObject(target), propertyKey);
}
});
/***/ },
-/* 145 */
+/* 204 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.8 Reflect.getPrototypeOf(target)
- var $export = __webpack_require__(3)
- , getProto = __webpack_require__(2).getProto
- , anObject = __webpack_require__(17);
+ var $export = __webpack_require__(6)
+ , getProto = __webpack_require__(57)
+ , anObject = __webpack_require__(12);
$export($export.S, 'Reflect', {
getPrototypeOf: function getPrototypeOf(target){
@@ -3726,11 +4645,11 @@
});
/***/ },
-/* 146 */
+/* 205 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.9 Reflect.has(target, propertyKey)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Reflect', {
has: function has(target, propertyKey){
@@ -3739,12 +4658,12 @@
});
/***/ },
-/* 147 */
+/* 206 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.10 Reflect.isExtensible(target)
- var $export = __webpack_require__(3)
- , anObject = __webpack_require__(17)
+ var $export = __webpack_require__(6)
+ , anObject = __webpack_require__(12)
, $isExtensible = Object.isExtensible;
$export($export.S, 'Reflect', {
@@ -3755,35 +4674,36 @@
});
/***/ },
-/* 148 */
+/* 207 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.11 Reflect.ownKeys(target)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.S, 'Reflect', {ownKeys: __webpack_require__(149)});
+ $export($export.S, 'Reflect', {ownKeys: __webpack_require__(208)});
/***/ },
-/* 149 */
+/* 208 */
/***/ function(module, exports, __webpack_require__) {
// all object keys, includes non-enumerable and symbols
- var $ = __webpack_require__(2)
- , anObject = __webpack_require__(17)
- , Reflect = __webpack_require__(4).Reflect;
+ var gOPN = __webpack_require__(48)
+ , gOPS = __webpack_require__(41)
+ , anObject = __webpack_require__(12)
+ , Reflect = __webpack_require__(2).Reflect;
module.exports = Reflect && Reflect.ownKeys || function ownKeys(it){
- var keys = $.getNames(anObject(it))
- , getSymbols = $.getSymbols;
+ var keys = gOPN.f(anObject(it))
+ , getSymbols = gOPS.f;
return getSymbols ? keys.concat(getSymbols(it)) : keys;
};
/***/ },
-/* 150 */
+/* 209 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.12 Reflect.preventExtensions(target)
- var $export = __webpack_require__(3)
- , anObject = __webpack_require__(17)
+ var $export = __webpack_require__(6)
+ , anObject = __webpack_require__(12)
, $preventExtensions = Object.preventExtensions;
$export($export.S, 'Reflect', {
@@ -3799,32 +4719,34 @@
});
/***/ },
-/* 151 */
+/* 210 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
- var $ = __webpack_require__(2)
- , has = __webpack_require__(14)
- , $export = __webpack_require__(3)
- , createDesc = __webpack_require__(10)
- , anObject = __webpack_require__(17)
- , isObject = __webpack_require__(13);
+ var dP = __webpack_require__(11)
+ , gOPD = __webpack_require__(49)
+ , getPrototypeOf = __webpack_require__(57)
+ , has = __webpack_require__(3)
+ , $export = __webpack_require__(6)
+ , createDesc = __webpack_require__(17)
+ , anObject = __webpack_require__(12)
+ , isObject = __webpack_require__(13);
function set(target, propertyKey, V/*, receiver*/){
var receiver = arguments.length < 4 ? target : arguments[3]
- , ownDesc = $.getDesc(anObject(target), propertyKey)
+ , ownDesc = gOPD.f(anObject(target), propertyKey)
, existingDescriptor, proto;
if(!ownDesc){
- if(isObject(proto = $.getProto(target))){
+ if(isObject(proto = getPrototypeOf(target))){
return set(proto, propertyKey, V, receiver);
}
ownDesc = createDesc(0);
}
if(has(ownDesc, 'value')){
if(ownDesc.writable === false || !isObject(receiver))return false;
- existingDescriptor = $.getDesc(receiver, propertyKey) || createDesc(0);
+ existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);
existingDescriptor.value = V;
- $.setDesc(receiver, propertyKey, existingDescriptor);
+ dP.f(receiver, propertyKey, existingDescriptor);
return true;
}
return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
@@ -3833,12 +4755,12 @@
$export($export.S, 'Reflect', {set: set});
/***/ },
-/* 152 */
+/* 211 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.14 Reflect.setPrototypeOf(target, proto)
- var $export = __webpack_require__(3)
- , setProto = __webpack_require__(45);
+ var $export = __webpack_require__(6)
+ , setProto = __webpack_require__(71);
if(setProto)$export($export.S, 'Reflect', {
setPrototypeOf: function setPrototypeOf(target, proto){
@@ -3853,30 +4775,1034 @@
});
/***/ },
-/* 153 */
+/* 212 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 20.3.3.1 / 15.9.4.4 Date.now()
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'Date', {now: function(){ return new Date().getTime(); }});
+
+/***/ },
+/* 213 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toObject = __webpack_require__(56)
+ , toPrimitive = __webpack_require__(16);
+
+ $export($export.P + $export.F * __webpack_require__(5)(function(){
+ return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({toISOString: function(){ return 1; }}) !== 1;
+ }), 'Date', {
+ toJSON: function toJSON(key){
+ var O = toObject(this)
+ , pv = toPrimitive(O);
+ return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();
+ }
+ });
+
+/***/ },
+/* 214 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3)
- , $includes = __webpack_require__(31)(true);
+ // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
+ var $export = __webpack_require__(6)
+ , fails = __webpack_require__(5)
+ , getTime = Date.prototype.getTime;
+
+ var lz = function(num){
+ return num > 9 ? num : '0' + num;
+ };
+
+ // PhantomJS / old WebKit has a broken implementations
+ $export($export.P + $export.F * (fails(function(){
+ return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';
+ }) || !fails(function(){
+ new Date(NaN).toISOString();
+ })), 'Date', {
+ toISOString: function toISOString(){
+ if(!isFinite(getTime.call(this)))throw RangeError('Invalid time value');
+ var d = this
+ , y = d.getUTCFullYear()
+ , m = d.getUTCMilliseconds()
+ , s = y < 0 ? '-' : y > 9999 ? '+' : '';
+ return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
+ '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
+ 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
+ ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
+ }
+ });
+
+/***/ },
+/* 215 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $typed = __webpack_require__(216)
+ , buffer = __webpack_require__(217)
+ , anObject = __webpack_require__(12)
+ , toIndex = __webpack_require__(37)
+ , toLength = __webpack_require__(35)
+ , isObject = __webpack_require__(13)
+ , ArrayBuffer = __webpack_require__(2).ArrayBuffer
+ , speciesConstructor = __webpack_require__(186)
+ , $ArrayBuffer = buffer.ArrayBuffer
+ , $DataView = buffer.DataView
+ , $isView = $typed.ABV && ArrayBuffer.isView
+ , $slice = $ArrayBuffer.prototype.slice
+ , VIEW = $typed.VIEW
+ , ARRAY_BUFFER = 'ArrayBuffer';
+
+ $export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), {ArrayBuffer: $ArrayBuffer});
+
+ $export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {
+ // 24.1.3.1 ArrayBuffer.isView(arg)
+ isView: function isView(it){
+ return $isView && $isView(it) || isObject(it) && VIEW in it;
+ }
+ });
+
+ $export($export.P + $export.U + $export.F * __webpack_require__(5)(function(){
+ return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
+ }), ARRAY_BUFFER, {
+ // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
+ slice: function slice(start, end){
+ if($slice !== undefined && end === undefined)return $slice.call(anObject(this), start); // FF fix
+ var len = anObject(this).byteLength
+ , first = toIndex(start, len)
+ , final = toIndex(end === undefined ? len : end, len)
+ , result = new (speciesConstructor(this, $ArrayBuffer))(toLength(final - first))
+ , viewS = new $DataView(this)
+ , viewT = new $DataView(result)
+ , index = 0;
+ while(first < final){
+ viewT.setUint8(index++, viewS.getUint8(first++));
+ } return result;
+ }
+ });
+
+ __webpack_require__(182)(ARRAY_BUFFER);
+
+/***/ },
+/* 216 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var global = __webpack_require__(2)
+ , hide = __webpack_require__(10)
+ , uid = __webpack_require__(20)
+ , TYPED = uid('typed_array')
+ , VIEW = uid('view')
+ , ABV = !!(global.ArrayBuffer && global.DataView)
+ , CONSTR = ABV
+ , i = 0, l = 9, Typed;
+
+ var TypedArrayConstructors = (
+ 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'
+ ).split(',');
+
+ while(i < l){
+ if(Typed = global[TypedArrayConstructors[i++]]){
+ hide(Typed.prototype, TYPED, true);
+ hide(Typed.prototype, VIEW, true);
+ } else CONSTR = false;
+ }
+
+ module.exports = {
+ ABV: ABV,
+ CONSTR: CONSTR,
+ TYPED: TYPED,
+ VIEW: VIEW
+ };
+
+/***/ },
+/* 217 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var global = __webpack_require__(2)
+ , DESCRIPTORS = __webpack_require__(4)
+ , LIBRARY = __webpack_require__(26)
+ , $typed = __webpack_require__(216)
+ , hide = __webpack_require__(10)
+ , redefineAll = __webpack_require__(189)
+ , fails = __webpack_require__(5)
+ , anInstance = __webpack_require__(184)
+ , toInteger = __webpack_require__(36)
+ , toLength = __webpack_require__(35)
+ , gOPN = __webpack_require__(48).f
+ , dP = __webpack_require__(11).f
+ , arrayFill = __webpack_require__(176)
+ , setToStringTag = __webpack_require__(22)
+ , ARRAY_BUFFER = 'ArrayBuffer'
+ , DATA_VIEW = 'DataView'
+ , PROTOTYPE = 'prototype'
+ , WRONG_LENGTH = 'Wrong length!'
+ , WRONG_INDEX = 'Wrong index!'
+ , $ArrayBuffer = global[ARRAY_BUFFER]
+ , $DataView = global[DATA_VIEW]
+ , Math = global.Math
+ , RangeError = global.RangeError
+ , Infinity = global.Infinity
+ , BaseBuffer = $ArrayBuffer
+ , abs = Math.abs
+ , pow = Math.pow
+ , floor = Math.floor
+ , log = Math.log
+ , LN2 = Math.LN2
+ , BUFFER = 'buffer'
+ , BYTE_LENGTH = 'byteLength'
+ , BYTE_OFFSET = 'byteOffset'
+ , $BUFFER = DESCRIPTORS ? '_b' : BUFFER
+ , $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH
+ , $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;
+
+ // IEEE754 conversions based on https://github.com/feross/ieee754
+ var packIEEE754 = function(value, mLen, nBytes){
+ var buffer = Array(nBytes)
+ , eLen = nBytes * 8 - mLen - 1
+ , eMax = (1 << eLen) - 1
+ , eBias = eMax >> 1
+ , rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0
+ , i = 0
+ , s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0
+ , e, m, c;
+ value = abs(value)
+ if(value != value || value === Infinity){
+ m = value != value ? 1 : 0;
+ e = eMax;
+ } else {
+ e = floor(log(value) / LN2);
+ if(value * (c = pow(2, -e)) < 1){
+ e--;
+ c *= 2;
+ }
+ if(e + eBias >= 1){
+ value += rt / c;
+ } else {
+ value += rt * pow(2, 1 - eBias);
+ }
+ if(value * c >= 2){
+ e++;
+ c /= 2;
+ }
+ if(e + eBias >= eMax){
+ m = 0;
+ e = eMax;
+ } else if(e + eBias >= 1){
+ m = (value * c - 1) * pow(2, mLen);
+ e = e + eBias;
+ } else {
+ m = value * pow(2, eBias - 1) * pow(2, mLen);
+ e = 0;
+ }
+ }
+ for(; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);
+ e = e << mLen | m;
+ eLen += mLen;
+ for(; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);
+ buffer[--i] |= s * 128;
+ return buffer;
+ };
+ var unpackIEEE754 = function(buffer, mLen, nBytes){
+ var eLen = nBytes * 8 - mLen - 1
+ , eMax = (1 << eLen) - 1
+ , eBias = eMax >> 1
+ , nBits = eLen - 7
+ , i = nBytes - 1
+ , s = buffer[i--]
+ , e = s & 127
+ , m;
+ s >>= 7;
+ for(; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);
+ m = e & (1 << -nBits) - 1;
+ e >>= -nBits;
+ nBits += mLen;
+ for(; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);
+ if(e === 0){
+ e = 1 - eBias;
+ } else if(e === eMax){
+ return m ? NaN : s ? -Infinity : Infinity;
+ } else {
+ m = m + pow(2, mLen);
+ e = e - eBias;
+ } return (s ? -1 : 1) * m * pow(2, e - mLen);
+ };
+
+ var unpackI32 = function(bytes){
+ return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];
+ };
+ var packI8 = function(it){
+ return [it & 0xff];
+ };
+ var packI16 = function(it){
+ return [it & 0xff, it >> 8 & 0xff];
+ };
+ var packI32 = function(it){
+ return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];
+ };
+ var packF64 = function(it){
+ return packIEEE754(it, 52, 8);
+ };
+ var packF32 = function(it){
+ return packIEEE754(it, 23, 4);
+ };
+
+ var addGetter = function(C, key, internal){
+ dP(C[PROTOTYPE], key, {get: function(){ return this[internal]; }});
+ };
+
+ var get = function(view, bytes, index, isLittleEndian){
+ var numIndex = +index
+ , intIndex = toInteger(numIndex);
+ if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);
+ var store = view[$BUFFER]._b
+ , start = intIndex + view[$OFFSET]
+ , pack = store.slice(start, start + bytes);
+ return isLittleEndian ? pack : pack.reverse();
+ };
+ var set = function(view, bytes, index, conversion, value, isLittleEndian){
+ var numIndex = +index
+ , intIndex = toInteger(numIndex);
+ if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);
+ var store = view[$BUFFER]._b
+ , start = intIndex + view[$OFFSET]
+ , pack = conversion(+value);
+ for(var i = 0; i < bytes; i++)store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];
+ };
+
+ var validateArrayBufferArguments = function(that, length){
+ anInstance(that, $ArrayBuffer, ARRAY_BUFFER);
+ var numberLength = +length
+ , byteLength = toLength(numberLength);
+ if(numberLength != byteLength)throw RangeError(WRONG_LENGTH);
+ return byteLength;
+ };
+
+ if(!$typed.ABV){
+ $ArrayBuffer = function ArrayBuffer(length){
+ var byteLength = validateArrayBufferArguments(this, length);
+ this._b = arrayFill.call(Array(byteLength), 0);
+ this[$LENGTH] = byteLength;
+ };
+
+ $DataView = function DataView(buffer, byteOffset, byteLength){
+ anInstance(this, $DataView, DATA_VIEW);
+ anInstance(buffer, $ArrayBuffer, DATA_VIEW);
+ var bufferLength = buffer[$LENGTH]
+ , offset = toInteger(byteOffset);
+ if(offset < 0 || offset > bufferLength)throw RangeError('Wrong offset!');
+ byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
+ if(offset + byteLength > bufferLength)throw RangeError(WRONG_LENGTH);
+ this[$BUFFER] = buffer;
+ this[$OFFSET] = offset;
+ this[$LENGTH] = byteLength;
+ };
+
+ if(DESCRIPTORS){
+ addGetter($ArrayBuffer, BYTE_LENGTH, '_l');
+ addGetter($DataView, BUFFER, '_b');
+ addGetter($DataView, BYTE_LENGTH, '_l');
+ addGetter($DataView, BYTE_OFFSET, '_o');
+ }
+
+ redefineAll($DataView[PROTOTYPE], {
+ getInt8: function getInt8(byteOffset){
+ return get(this, 1, byteOffset)[0] << 24 >> 24;
+ },
+ getUint8: function getUint8(byteOffset){
+ return get(this, 1, byteOffset)[0];
+ },
+ getInt16: function getInt16(byteOffset /*, littleEndian */){
+ var bytes = get(this, 2, byteOffset, arguments[1]);
+ return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
+ },
+ getUint16: function getUint16(byteOffset /*, littleEndian */){
+ var bytes = get(this, 2, byteOffset, arguments[1]);
+ return bytes[1] << 8 | bytes[0];
+ },
+ getInt32: function getInt32(byteOffset /*, littleEndian */){
+ return unpackI32(get(this, 4, byteOffset, arguments[1]));
+ },
+ getUint32: function getUint32(byteOffset /*, littleEndian */){
+ return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;
+ },
+ getFloat32: function getFloat32(byteOffset /*, littleEndian */){
+ return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);
+ },
+ getFloat64: function getFloat64(byteOffset /*, littleEndian */){
+ return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);
+ },
+ setInt8: function setInt8(byteOffset, value){
+ set(this, 1, byteOffset, packI8, value);
+ },
+ setUint8: function setUint8(byteOffset, value){
+ set(this, 1, byteOffset, packI8, value);
+ },
+ setInt16: function setInt16(byteOffset, value /*, littleEndian */){
+ set(this, 2, byteOffset, packI16, value, arguments[2]);
+ },
+ setUint16: function setUint16(byteOffset, value /*, littleEndian */){
+ set(this, 2, byteOffset, packI16, value, arguments[2]);
+ },
+ setInt32: function setInt32(byteOffset, value /*, littleEndian */){
+ set(this, 4, byteOffset, packI32, value, arguments[2]);
+ },
+ setUint32: function setUint32(byteOffset, value /*, littleEndian */){
+ set(this, 4, byteOffset, packI32, value, arguments[2]);
+ },
+ setFloat32: function setFloat32(byteOffset, value /*, littleEndian */){
+ set(this, 4, byteOffset, packF32, value, arguments[2]);
+ },
+ setFloat64: function setFloat64(byteOffset, value /*, littleEndian */){
+ set(this, 8, byteOffset, packF64, value, arguments[2]);
+ }
+ });
+ } else {
+ if(!fails(function(){
+ new $ArrayBuffer; // eslint-disable-line no-new
+ }) || !fails(function(){
+ new $ArrayBuffer(.5); // eslint-disable-line no-new
+ })){
+ $ArrayBuffer = function ArrayBuffer(length){
+ return new BaseBuffer(validateArrayBufferArguments(this, length));
+ };
+ var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];
+ for(var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j; ){
+ if(!((key = keys[j++]) in $ArrayBuffer))hide($ArrayBuffer, key, BaseBuffer[key]);
+ };
+ if(!LIBRARY)ArrayBufferProto.constructor = $ArrayBuffer;
+ }
+ // iOS Safari 7.x bug
+ var view = new $DataView(new $ArrayBuffer(2))
+ , $setInt8 = $DataView[PROTOTYPE].setInt8;
+ view.setInt8(0, 2147483648);
+ view.setInt8(1, 2147483649);
+ if(view.getInt8(0) || !view.getInt8(1))redefineAll($DataView[PROTOTYPE], {
+ setInt8: function setInt8(byteOffset, value){
+ $setInt8.call(this, byteOffset, value << 24 >> 24);
+ },
+ setUint8: function setUint8(byteOffset, value){
+ $setInt8.call(this, byteOffset, value << 24 >> 24);
+ }
+ }, true);
+ }
+ setToStringTag($ArrayBuffer, ARRAY_BUFFER);
+ setToStringTag($DataView, DATA_VIEW);
+ hide($DataView[PROTOTYPE], $typed.VIEW, true);
+ exports[ARRAY_BUFFER] = $ArrayBuffer;
+ exports[DATA_VIEW] = $DataView;
+
+/***/ },
+/* 218 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6);
+ $export($export.G + $export.W + $export.F * !__webpack_require__(216).ABV, {
+ DataView: __webpack_require__(217).DataView
+ });
+
+/***/ },
+/* 219 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(220)('Int8', 1, function(init){
+ return function Int8Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 220 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ if(__webpack_require__(4)){
+ var LIBRARY = __webpack_require__(26)
+ , global = __webpack_require__(2)
+ , fails = __webpack_require__(5)
+ , $export = __webpack_require__(6)
+ , $typed = __webpack_require__(216)
+ , $buffer = __webpack_require__(217)
+ , ctx = __webpack_require__(8)
+ , anInstance = __webpack_require__(184)
+ , propertyDesc = __webpack_require__(17)
+ , hide = __webpack_require__(10)
+ , redefineAll = __webpack_require__(189)
+ , toInteger = __webpack_require__(36)
+ , toLength = __webpack_require__(35)
+ , toIndex = __webpack_require__(37)
+ , toPrimitive = __webpack_require__(16)
+ , has = __webpack_require__(3)
+ , same = __webpack_require__(69)
+ , classof = __webpack_require__(152)
+ , isObject = __webpack_require__(13)
+ , toObject = __webpack_require__(56)
+ , isArrayIter = __webpack_require__(149)
+ , create = __webpack_require__(44)
+ , getPrototypeOf = __webpack_require__(57)
+ , gOPN = __webpack_require__(48).f
+ , getIterFn = __webpack_require__(151)
+ , uid = __webpack_require__(20)
+ , wks = __webpack_require__(23)
+ , createArrayMethod = __webpack_require__(160)
+ , createArrayIncludes = __webpack_require__(34)
+ , speciesConstructor = __webpack_require__(186)
+ , ArrayIterators = __webpack_require__(179)
+ , Iterators = __webpack_require__(130)
+ , $iterDetect = __webpack_require__(153)
+ , setSpecies = __webpack_require__(182)
+ , arrayFill = __webpack_require__(176)
+ , arrayCopyWithin = __webpack_require__(173)
+ , $DP = __webpack_require__(11)
+ , $GOPD = __webpack_require__(49)
+ , dP = $DP.f
+ , gOPD = $GOPD.f
+ , RangeError = global.RangeError
+ , TypeError = global.TypeError
+ , Uint8Array = global.Uint8Array
+ , ARRAY_BUFFER = 'ArrayBuffer'
+ , SHARED_BUFFER = 'Shared' + ARRAY_BUFFER
+ , BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'
+ , PROTOTYPE = 'prototype'
+ , ArrayProto = Array[PROTOTYPE]
+ , $ArrayBuffer = $buffer.ArrayBuffer
+ , $DataView = $buffer.DataView
+ , arrayForEach = createArrayMethod(0)
+ , arrayFilter = createArrayMethod(2)
+ , arraySome = createArrayMethod(3)
+ , arrayEvery = createArrayMethod(4)
+ , arrayFind = createArrayMethod(5)
+ , arrayFindIndex = createArrayMethod(6)
+ , arrayIncludes = createArrayIncludes(true)
+ , arrayIndexOf = createArrayIncludes(false)
+ , arrayValues = ArrayIterators.values
+ , arrayKeys = ArrayIterators.keys
+ , arrayEntries = ArrayIterators.entries
+ , arrayLastIndexOf = ArrayProto.lastIndexOf
+ , arrayReduce = ArrayProto.reduce
+ , arrayReduceRight = ArrayProto.reduceRight
+ , arrayJoin = ArrayProto.join
+ , arraySort = ArrayProto.sort
+ , arraySlice = ArrayProto.slice
+ , arrayToString = ArrayProto.toString
+ , arrayToLocaleString = ArrayProto.toLocaleString
+ , ITERATOR = wks('iterator')
+ , TAG = wks('toStringTag')
+ , TYPED_CONSTRUCTOR = uid('typed_constructor')
+ , DEF_CONSTRUCTOR = uid('def_constructor')
+ , ALL_CONSTRUCTORS = $typed.CONSTR
+ , TYPED_ARRAY = $typed.TYPED
+ , VIEW = $typed.VIEW
+ , WRONG_LENGTH = 'Wrong length!';
+
+ var $map = createArrayMethod(1, function(O, length){
+ return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);
+ });
+
+ var LITTLE_ENDIAN = fails(function(){
+ return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;
+ });
+
+ var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function(){
+ new Uint8Array(1).set({});
+ });
+
+ var strictToLength = function(it, SAME){
+ if(it === undefined)throw TypeError(WRONG_LENGTH);
+ var number = +it
+ , length = toLength(it);
+ if(SAME && !same(number, length))throw RangeError(WRONG_LENGTH);
+ return length;
+ };
+
+ var toOffset = function(it, BYTES){
+ var offset = toInteger(it);
+ if(offset < 0 || offset % BYTES)throw RangeError('Wrong offset!');
+ return offset;
+ };
+
+ var validate = function(it){
+ if(isObject(it) && TYPED_ARRAY in it)return it;
+ throw TypeError(it + ' is not a typed array!');
+ };
+
+ var allocate = function(C, length){
+ if(!(isObject(C) && TYPED_CONSTRUCTOR in C)){
+ throw TypeError('It is not a typed array constructor!');
+ } return new C(length);
+ };
+
+ var speciesFromList = function(O, list){
+ return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);
+ };
+
+ var fromList = function(C, list){
+ var index = 0
+ , length = list.length
+ , result = allocate(C, length);
+ while(length > index)result[index] = list[index++];
+ return result;
+ };
+
+ var addGetter = function(it, key, internal){
+ dP(it, key, {get: function(){ return this._d[internal]; }});
+ };
+
+ var $from = function from(source /*, mapfn, thisArg */){
+ var O = toObject(source)
+ , aLen = arguments.length
+ , mapfn = aLen > 1 ? arguments[1] : undefined
+ , mapping = mapfn !== undefined
+ , iterFn = getIterFn(O)
+ , i, length, values, result, step, iterator;
+ if(iterFn != undefined && !isArrayIter(iterFn)){
+ for(iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++){
+ values.push(step.value);
+ } O = values;
+ }
+ if(mapping && aLen > 2)mapfn = ctx(mapfn, arguments[2], 2);
+ for(i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++){
+ result[i] = mapping ? mapfn(O[i], i) : O[i];
+ }
+ return result;
+ };
+
+ var $of = function of(/*...items*/){
+ var index = 0
+ , length = arguments.length
+ , result = allocate(this, length);
+ while(length > index)result[index] = arguments[index++];
+ return result;
+ };
+
+ // iOS Safari 6.x fails here
+ var TO_LOCALE_BUG = !!Uint8Array && fails(function(){ arrayToLocaleString.call(new Uint8Array(1)); });
+
+ var $toLocaleString = function toLocaleString(){
+ return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);
+ };
+
+ var proto = {
+ copyWithin: function copyWithin(target, start /*, end */){
+ return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
+ },
+ every: function every(callbackfn /*, thisArg */){
+ return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ fill: function fill(value /*, start, end */){ // eslint-disable-line no-unused-vars
+ return arrayFill.apply(validate(this), arguments);
+ },
+ filter: function filter(callbackfn /*, thisArg */){
+ return speciesFromList(this, arrayFilter(validate(this), callbackfn,
+ arguments.length > 1 ? arguments[1] : undefined));
+ },
+ find: function find(predicate /*, thisArg */){
+ return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ findIndex: function findIndex(predicate /*, thisArg */){
+ return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ forEach: function forEach(callbackfn /*, thisArg */){
+ arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ indexOf: function indexOf(searchElement /*, fromIndex */){
+ return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ includes: function includes(searchElement /*, fromIndex */){
+ return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ join: function join(separator){ // eslint-disable-line no-unused-vars
+ return arrayJoin.apply(validate(this), arguments);
+ },
+ lastIndexOf: function lastIndexOf(searchElement /*, fromIndex */){ // eslint-disable-line no-unused-vars
+ return arrayLastIndexOf.apply(validate(this), arguments);
+ },
+ map: function map(mapfn /*, thisArg */){
+ return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ reduce: function reduce(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
+ return arrayReduce.apply(validate(this), arguments);
+ },
+ reduceRight: function reduceRight(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
+ return arrayReduceRight.apply(validate(this), arguments);
+ },
+ reverse: function reverse(){
+ var that = this
+ , length = validate(that).length
+ , middle = Math.floor(length / 2)
+ , index = 0
+ , value;
+ while(index < middle){
+ value = that[index];
+ that[index++] = that[--length];
+ that[length] = value;
+ } return that;
+ },
+ some: function some(callbackfn /*, thisArg */){
+ return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ sort: function sort(comparefn){
+ return arraySort.call(validate(this), comparefn);
+ },
+ subarray: function subarray(begin, end){
+ var O = validate(this)
+ , length = O.length
+ , $begin = toIndex(begin, length);
+ return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(
+ O.buffer,
+ O.byteOffset + $begin * O.BYTES_PER_ELEMENT,
+ toLength((end === undefined ? length : toIndex(end, length)) - $begin)
+ );
+ }
+ };
+
+ var $slice = function slice(start, end){
+ return speciesFromList(this, arraySlice.call(validate(this), start, end));
+ };
+
+ var $set = function set(arrayLike /*, offset */){
+ validate(this);
+ var offset = toOffset(arguments[1], 1)
+ , length = this.length
+ , src = toObject(arrayLike)
+ , len = toLength(src.length)
+ , index = 0;
+ if(len + offset > length)throw RangeError(WRONG_LENGTH);
+ while(index < len)this[offset + index] = src[index++];
+ };
+
+ var $iterators = {
+ entries: function entries(){
+ return arrayEntries.call(validate(this));
+ },
+ keys: function keys(){
+ return arrayKeys.call(validate(this));
+ },
+ values: function values(){
+ return arrayValues.call(validate(this));
+ }
+ };
+
+ var isTAIndex = function(target, key){
+ return isObject(target)
+ && target[TYPED_ARRAY]
+ && typeof key != 'symbol'
+ && key in target
+ && String(+key) == String(key);
+ };
+ var $getDesc = function getOwnPropertyDescriptor(target, key){
+ return isTAIndex(target, key = toPrimitive(key, true))
+ ? propertyDesc(2, target[key])
+ : gOPD(target, key);
+ };
+ var $setDesc = function defineProperty(target, key, desc){
+ if(isTAIndex(target, key = toPrimitive(key, true))
+ && isObject(desc)
+ && has(desc, 'value')
+ && !has(desc, 'get')
+ && !has(desc, 'set')
+ // TODO: add validation descriptor w/o calling accessors
+ && !desc.configurable
+ && (!has(desc, 'writable') || desc.writable)
+ && (!has(desc, 'enumerable') || desc.enumerable)
+ ){
+ target[key] = desc.value;
+ return target;
+ } else return dP(target, key, desc);
+ };
+
+ if(!ALL_CONSTRUCTORS){
+ $GOPD.f = $getDesc;
+ $DP.f = $setDesc;
+ }
+
+ $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {
+ getOwnPropertyDescriptor: $getDesc,
+ defineProperty: $setDesc
+ });
+
+ if(fails(function(){ arrayToString.call({}); })){
+ arrayToString = arrayToLocaleString = function toString(){
+ return arrayJoin.call(this);
+ }
+ }
+
+ var $TypedArrayPrototype$ = redefineAll({}, proto);
+ redefineAll($TypedArrayPrototype$, $iterators);
+ hide($TypedArrayPrototype$, ITERATOR, $iterators.values);
+ redefineAll($TypedArrayPrototype$, {
+ slice: $slice,
+ set: $set,
+ constructor: function(){ /* noop */ },
+ toString: arrayToString,
+ toLocaleString: $toLocaleString
+ });
+ addGetter($TypedArrayPrototype$, 'buffer', 'b');
+ addGetter($TypedArrayPrototype$, 'byteOffset', 'o');
+ addGetter($TypedArrayPrototype$, 'byteLength', 'l');
+ addGetter($TypedArrayPrototype$, 'length', 'e');
+ dP($TypedArrayPrototype$, TAG, {
+ get: function(){ return this[TYPED_ARRAY]; }
+ });
+
+ module.exports = function(KEY, BYTES, wrapper, CLAMPED){
+ CLAMPED = !!CLAMPED;
+ var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'
+ , ISNT_UINT8 = NAME != 'Uint8Array'
+ , GETTER = 'get' + KEY
+ , SETTER = 'set' + KEY
+ , TypedArray = global[NAME]
+ , Base = TypedArray || {}
+ , TAC = TypedArray && getPrototypeOf(TypedArray)
+ , FORCED = !TypedArray || !$typed.ABV
+ , O = {}
+ , TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];
+ var getter = function(that, index){
+ var data = that._d;
+ return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);
+ };
+ var setter = function(that, index, value){
+ var data = that._d;
+ if(CLAMPED)value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;
+ data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);
+ };
+ var addElement = function(that, index){
+ dP(that, index, {
+ get: function(){
+ return getter(this, index);
+ },
+ set: function(value){
+ return setter(this, index, value);
+ },
+ enumerable: true
+ });
+ };
+ if(FORCED){
+ TypedArray = wrapper(function(that, data, $offset, $length){
+ anInstance(that, TypedArray, NAME, '_d');
+ var index = 0
+ , offset = 0
+ , buffer, byteLength, length, klass;
+ if(!isObject(data)){
+ length = strictToLength(data, true)
+ byteLength = length * BYTES;
+ buffer = new $ArrayBuffer(byteLength);
+ } else if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){
+ buffer = data;
+ offset = toOffset($offset, BYTES);
+ var $len = data.byteLength;
+ if($length === undefined){
+ if($len % BYTES)throw RangeError(WRONG_LENGTH);
+ byteLength = $len - offset;
+ if(byteLength < 0)throw RangeError(WRONG_LENGTH);
+ } else {
+ byteLength = toLength($length) * BYTES;
+ if(byteLength + offset > $len)throw RangeError(WRONG_LENGTH);
+ }
+ length = byteLength / BYTES;
+ } else if(TYPED_ARRAY in data){
+ return fromList(TypedArray, data);
+ } else {
+ return $from.call(TypedArray, data);
+ }
+ hide(that, '_d', {
+ b: buffer,
+ o: offset,
+ l: byteLength,
+ e: length,
+ v: new $DataView(buffer)
+ });
+ while(index < length)addElement(that, index++);
+ });
+ TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);
+ hide(TypedArrayPrototype, 'constructor', TypedArray);
+ } else if(!$iterDetect(function(iter){
+ // V8 works with iterators, but fails in many other cases
+ // https://code.google.com/p/v8/issues/detail?id=4552
+ new TypedArray(null); // eslint-disable-line no-new
+ new TypedArray(iter); // eslint-disable-line no-new
+ }, true)){
+ TypedArray = wrapper(function(that, data, $offset, $length){
+ anInstance(that, TypedArray, NAME);
+ var klass;
+ // `ws` module bug, temporarily remove validation length for Uint8Array
+ // https://github.com/websockets/ws/pull/645
+ if(!isObject(data))return new Base(strictToLength(data, ISNT_UINT8));
+ if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){
+ return $length !== undefined
+ ? new Base(data, toOffset($offset, BYTES), $length)
+ : $offset !== undefined
+ ? new Base(data, toOffset($offset, BYTES))
+ : new Base(data);
+ }
+ if(TYPED_ARRAY in data)return fromList(TypedArray, data);
+ return $from.call(TypedArray, data);
+ });
+ arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function(key){
+ if(!(key in TypedArray))hide(TypedArray, key, Base[key]);
+ });
+ TypedArray[PROTOTYPE] = TypedArrayPrototype;
+ if(!LIBRARY)TypedArrayPrototype.constructor = TypedArray;
+ }
+ var $nativeIterator = TypedArrayPrototype[ITERATOR]
+ , CORRECT_ITER_NAME = !!$nativeIterator && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined)
+ , $iterator = $iterators.values;
+ hide(TypedArray, TYPED_CONSTRUCTOR, true);
+ hide(TypedArrayPrototype, TYPED_ARRAY, NAME);
+ hide(TypedArrayPrototype, VIEW, true);
+ hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);
+
+ if(CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)){
+ dP(TypedArrayPrototype, TAG, {
+ get: function(){ return NAME; }
+ });
+ }
+
+ O[NAME] = TypedArray;
+
+ $export($export.G + $export.W + $export.F * (TypedArray != Base), O);
+
+ $export($export.S, NAME, {
+ BYTES_PER_ELEMENT: BYTES,
+ from: $from,
+ of: $of
+ });
+
+ if(!(BYTES_PER_ELEMENT in TypedArrayPrototype))hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);
+
+ $export($export.P, NAME, proto);
+
+ setSpecies(NAME);
+
+ $export($export.P + $export.F * FORCED_SET, NAME, {set: $set});
+
+ $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);
+
+ $export($export.P + $export.F * (TypedArrayPrototype.toString != arrayToString), NAME, {toString: arrayToString});
+
+ $export($export.P + $export.F * fails(function(){
+ new TypedArray(1).slice();
+ }), NAME, {slice: $slice});
+
+ $export($export.P + $export.F * (fails(function(){
+ return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString()
+ }) || !fails(function(){
+ TypedArrayPrototype.toLocaleString.call([1, 2]);
+ })), NAME, {toLocaleString: $toLocaleString});
+
+ Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;
+ if(!LIBRARY && !CORRECT_ITER_NAME)hide(TypedArrayPrototype, ITERATOR, $iterator);
+ };
+ } else module.exports = function(){ /* empty */ };
+
+/***/ },
+/* 221 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(220)('Uint8', 1, function(init){
+ return function Uint8Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 222 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(220)('Uint8', 1, function(init){
+ return function Uint8ClampedArray(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ }, true);
+
+/***/ },
+/* 223 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(220)('Int16', 2, function(init){
+ return function Int16Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 224 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(220)('Uint16', 2, function(init){
+ return function Uint16Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 225 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(220)('Int32', 4, function(init){
+ return function Int32Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 226 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(220)('Uint32', 4, function(init){
+ return function Uint32Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 227 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(220)('Float32', 4, function(init){
+ return function Float32Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 228 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(220)('Float64', 8, function(init){
+ return function Float64Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 229 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // https://github.com/tc39/Array.prototype.includes
+ var $export = __webpack_require__(6)
+ , $includes = __webpack_require__(34)(true);
$export($export.P, 'Array', {
- // https://github.com/domenic/Array.prototype.includes
includes: function includes(el /*, fromIndex = 0 */){
return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
}
});
- __webpack_require__(114)('includes');
+ __webpack_require__(174)('includes');
/***/ },
-/* 154 */
+/* 230 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// https://github.com/mathiasbynens/String.prototype.at
- var $export = __webpack_require__(3)
- , $at = __webpack_require__(93)(true);
+ var $export = __webpack_require__(6)
+ , $at = __webpack_require__(120)(true);
$export($export.P, 'String', {
at: function at(pos){
@@ -3885,138 +5811,177 @@
});
/***/ },
-/* 155 */
+/* 231 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3)
- , $pad = __webpack_require__(156);
+ // https://github.com/tc39/proposal-string-pad-start-end
+ var $export = __webpack_require__(6)
+ , $pad = __webpack_require__(232);
$export($export.P, 'String', {
- padLeft: function padLeft(maxLength /*, fillString = ' ' */){
+ padStart: function padStart(maxLength /*, fillString = ' ' */){
return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
}
});
/***/ },
-/* 156 */
+/* 232 */
/***/ function(module, exports, __webpack_require__) {
- // https://github.com/ljharb/proposal-string-pad-left-right
- var toLength = __webpack_require__(24)
- , repeat = __webpack_require__(100)
- , defined = __webpack_require__(19);
+ // https://github.com/tc39/proposal-string-pad-start-end
+ var toLength = __webpack_require__(35)
+ , repeat = __webpack_require__(78)
+ , defined = __webpack_require__(33);
module.exports = function(that, maxLength, fillString, left){
var S = String(defined(that))
, stringLength = S.length
, fillStr = fillString === undefined ? ' ' : String(fillString)
, intMaxLength = toLength(maxLength);
- if(intMaxLength <= stringLength)return S;
- if(fillStr == '')fillStr = ' ';
+ if(intMaxLength <= stringLength || fillStr == '')return S;
var fillLen = intMaxLength - stringLength
, stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);
return left ? stringFiller + S : S + stringFiller;
};
+
/***/ },
-/* 157 */
+/* 233 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3)
- , $pad = __webpack_require__(156);
+ // https://github.com/tc39/proposal-string-pad-start-end
+ var $export = __webpack_require__(6)
+ , $pad = __webpack_require__(232);
$export($export.P, 'String', {
- padRight: function padRight(maxLength /*, fillString = ' ' */){
+ padEnd: function padEnd(maxLength /*, fillString = ' ' */){
return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
}
});
/***/ },
-/* 158 */
+/* 234 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
- __webpack_require__(91)('trimLeft', function($trim){
+ __webpack_require__(90)('trimLeft', function($trim){
return function trimLeft(){
return $trim(this, 1);
};
- });
+ }, 'trimStart');
/***/ },
-/* 159 */
+/* 235 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
- __webpack_require__(91)('trimRight', function($trim){
+ __webpack_require__(90)('trimRight', function($trim){
return function trimRight(){
return $trim(this, 2);
};
- });
+ }, 'trimEnd');
/***/ },
-/* 160 */
+/* 236 */
/***/ function(module, exports, __webpack_require__) {
- // https://github.com/benjamingr/RexExp.escape
- var $export = __webpack_require__(3)
- , $re = __webpack_require__(161)(/[\\^$*+?.()|[\]{}]/g, '\\$&');
+ 'use strict';
+ // https://tc39.github.io/String.prototype.matchAll/
+ var $export = __webpack_require__(6)
+ , defined = __webpack_require__(33)
+ , toLength = __webpack_require__(35)
+ , isRegExp = __webpack_require__(123)
+ , getFlags = __webpack_require__(237)
+ , RegExpProto = RegExp.prototype;
+
+ var $RegExpStringIterator = function(regexp, string){
+ this._r = regexp;
+ this._s = string;
+ };
- $export($export.S, 'RegExp', {escape: function escape(it){ return $re(it); }});
+ __webpack_require__(131)($RegExpStringIterator, 'RegExp String', function next(){
+ var match = this._r.exec(this._s);
+ return {value: match, done: match === null};
+ });
+ $export($export.P, 'String', {
+ matchAll: function matchAll(regexp){
+ defined(this);
+ if(!isRegExp(regexp))throw TypeError(regexp + ' is not a regexp!');
+ var S = String(this)
+ , flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp)
+ , rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);
+ rx.lastIndex = toLength(regexp.lastIndex);
+ return new $RegExpStringIterator(rx, S);
+ }
+ });
/***/ },
-/* 161 */
-/***/ function(module, exports) {
+/* 237 */
+/***/ function(module, exports, __webpack_require__) {
- module.exports = function(regExp, replace){
- var replacer = replace === Object(replace) ? function(part){
- return replace[part];
- } : replace;
- return function(it){
- return String(it).replace(regExp, replacer);
- };
+ 'use strict';
+ // 21.2.5.3 get RegExp.prototype.flags
+ var anObject = __webpack_require__(12);
+ module.exports = function(){
+ var that = anObject(this)
+ , result = '';
+ if(that.global) result += 'g';
+ if(that.ignoreCase) result += 'i';
+ if(that.multiline) result += 'm';
+ if(that.unicode) result += 'u';
+ if(that.sticky) result += 'y';
+ return result;
};
/***/ },
-/* 162 */
+/* 238 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(25)('asyncIterator');
+
+/***/ },
+/* 239 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(25)('observable');
+
+/***/ },
+/* 240 */
/***/ function(module, exports, __webpack_require__) {
- // https://gist.github.com/WebReflection/9353781
- var $ = __webpack_require__(2)
- , $export = __webpack_require__(3)
- , ownKeys = __webpack_require__(149)
- , toIObject = __webpack_require__(20)
- , createDesc = __webpack_require__(10);
+ // https://github.com/tc39/proposal-object-getownpropertydescriptors
+ var $export = __webpack_require__(6)
+ , ownKeys = __webpack_require__(208)
+ , toIObject = __webpack_require__(30)
+ , gOPD = __webpack_require__(49)
+ , createProperty = __webpack_require__(150);
$export($export.S, 'Object', {
getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){
var O = toIObject(object)
- , setDesc = $.setDesc
- , getDesc = $.getDesc
+ , getDesc = gOPD.f
, keys = ownKeys(O)
, result = {}
, i = 0
- , key, D;
- while(keys.length > i){
- D = getDesc(O, key = keys[i++]);
- if(key in result)setDesc(result, key, createDesc(0, D));
- else result[key] = D;
- } return result;
+ , key;
+ while(keys.length > i)createProperty(result, key = keys[i++], getDesc(O, key));
+ return result;
}
});
/***/ },
-/* 163 */
+/* 241 */
/***/ function(module, exports, __webpack_require__) {
- // http://goo.gl/XkBrjD
- var $export = __webpack_require__(3)
- , $values = __webpack_require__(164)(false);
+ // https://github.com/tc39/proposal-object-values-entries
+ var $export = __webpack_require__(6)
+ , $values = __webpack_require__(242)(false);
$export($export.S, 'Object', {
values: function values(it){
@@ -4025,16 +5990,16 @@
});
/***/ },
-/* 164 */
+/* 242 */
/***/ function(module, exports, __webpack_require__) {
- var $ = __webpack_require__(2)
- , toIObject = __webpack_require__(20)
- , isEnum = $.isEnum;
+ var getKeys = __webpack_require__(28)
+ , toIObject = __webpack_require__(30)
+ , isEnum = __webpack_require__(42).f;
module.exports = function(isEntries){
return function(it){
var O = toIObject(it)
- , keys = $.getKeys(O)
+ , keys = getKeys(O)
, length = keys.length
, i = 0
, result = []
@@ -4046,12 +6011,12 @@
};
/***/ },
-/* 165 */
+/* 243 */
/***/ function(module, exports, __webpack_require__) {
- // http://goo.gl/XkBrjD
- var $export = __webpack_require__(3)
- , $entries = __webpack_require__(164)(true);
+ // https://github.com/tc39/proposal-object-values-entries
+ var $export = __webpack_require__(6)
+ , $entries = __webpack_require__(242)(true);
$export($export.S, 'Object', {
entries: function entries(it){
@@ -4060,67 +6025,715 @@
});
/***/ },
-/* 166 */
+/* 244 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toObject = __webpack_require__(56)
+ , aFunction = __webpack_require__(9)
+ , $defineProperty = __webpack_require__(11);
+
+ // B.2.2.2 Object.prototype.__defineGetter__(P, getter)
+ __webpack_require__(4) && $export($export.P + __webpack_require__(245), 'Object', {
+ __defineGetter__: function __defineGetter__(P, getter){
+ $defineProperty.f(toObject(this), P, {get: aFunction(getter), enumerable: true, configurable: true});
+ }
+ });
+
+/***/ },
+/* 245 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // Forced replacement prototype accessors methods
+ module.exports = __webpack_require__(26)|| !__webpack_require__(5)(function(){
+ var K = Math.random();
+ // In FF throws only define methods
+ __defineSetter__.call(null, K, function(){ /* empty */});
+ delete __webpack_require__(2)[K];
+ });
+
+/***/ },
+/* 246 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toObject = __webpack_require__(56)
+ , aFunction = __webpack_require__(9)
+ , $defineProperty = __webpack_require__(11);
+
+ // B.2.2.3 Object.prototype.__defineSetter__(P, setter)
+ __webpack_require__(4) && $export($export.P + __webpack_require__(245), 'Object', {
+ __defineSetter__: function __defineSetter__(P, setter){
+ $defineProperty.f(toObject(this), P, {set: aFunction(setter), enumerable: true, configurable: true});
+ }
+ });
+
+/***/ },
+/* 247 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toObject = __webpack_require__(56)
+ , toPrimitive = __webpack_require__(16)
+ , getPrototypeOf = __webpack_require__(57)
+ , getOwnPropertyDescriptor = __webpack_require__(49).f;
+
+ // B.2.2.4 Object.prototype.__lookupGetter__(P)
+ __webpack_require__(4) && $export($export.P + __webpack_require__(245), 'Object', {
+ __lookupGetter__: function __lookupGetter__(P){
+ var O = toObject(this)
+ , K = toPrimitive(P, true)
+ , D;
+ do {
+ if(D = getOwnPropertyDescriptor(O, K))return D.get;
+ } while(O = getPrototypeOf(O));
+ }
+ });
+
+/***/ },
+/* 248 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toObject = __webpack_require__(56)
+ , toPrimitive = __webpack_require__(16)
+ , getPrototypeOf = __webpack_require__(57)
+ , getOwnPropertyDescriptor = __webpack_require__(49).f;
+
+ // B.2.2.5 Object.prototype.__lookupSetter__(P)
+ __webpack_require__(4) && $export($export.P + __webpack_require__(245), 'Object', {
+ __lookupSetter__: function __lookupSetter__(P){
+ var O = toObject(this)
+ , K = toPrimitive(P, true)
+ , D;
+ do {
+ if(D = getOwnPropertyDescriptor(O, K))return D.set;
+ } while(O = getPrototypeOf(O));
+ }
+ });
+
+/***/ },
+/* 249 */
/***/ function(module, exports, __webpack_require__) {
// https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.P, 'Map', {toJSON: __webpack_require__(167)('Map')});
+ $export($export.P + $export.R, 'Map', {toJSON: __webpack_require__(250)('Map')});
/***/ },
-/* 167 */
+/* 250 */
/***/ function(module, exports, __webpack_require__) {
// https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var forOf = __webpack_require__(126)
- , classof = __webpack_require__(110);
+ var classof = __webpack_require__(152)
+ , from = __webpack_require__(251);
module.exports = function(NAME){
return function toJSON(){
if(classof(this) != NAME)throw TypeError(NAME + "#toJSON isn't generic");
- var arr = [];
- forOf(this, false, arr.push, arr);
- return arr;
+ return from(this);
};
};
/***/ },
-/* 168 */
+/* 251 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var forOf = __webpack_require__(185);
+
+ module.exports = function(iter, ITERATOR){
+ var result = [];
+ forOf(iter, false, result.push, result, ITERATOR);
+ return result;
+ };
+
+
+/***/ },
+/* 252 */
/***/ function(module, exports, __webpack_require__) {
// https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.P, 'Set', {toJSON: __webpack_require__(167)('Set')});
+ $export($export.P + $export.R, 'Set', {toJSON: __webpack_require__(250)('Set')});
/***/ },
-/* 169 */
+/* 253 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://github.com/ljharb/proposal-global
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'System', {global: __webpack_require__(2)});
+
+/***/ },
+/* 254 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3)
- , $task = __webpack_require__(129);
+ // https://github.com/ljharb/proposal-is-error
+ var $export = __webpack_require__(6)
+ , cof = __webpack_require__(32);
+
+ $export($export.S, 'Error', {
+ isError: function isError(it){
+ return cof(it) === 'Error';
+ }
+ });
+
+/***/ },
+/* 255 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'Math', {
+ iaddh: function iaddh(x0, x1, y0, y1){
+ var $x0 = x0 >>> 0
+ , $x1 = x1 >>> 0
+ , $y0 = y0 >>> 0;
+ return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;
+ }
+ });
+
+/***/ },
+/* 256 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'Math', {
+ isubh: function isubh(x0, x1, y0, y1){
+ var $x0 = x0 >>> 0
+ , $x1 = x1 >>> 0
+ , $y0 = y0 >>> 0;
+ return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;
+ }
+ });
+
+/***/ },
+/* 257 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'Math', {
+ imulh: function imulh(u, v){
+ var UINT16 = 0xffff
+ , $u = +u
+ , $v = +v
+ , u0 = $u & UINT16
+ , v0 = $v & UINT16
+ , u1 = $u >> 16
+ , v1 = $v >> 16
+ , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
+ return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);
+ }
+ });
+
+/***/ },
+/* 258 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'Math', {
+ umulh: function umulh(u, v){
+ var UINT16 = 0xffff
+ , $u = +u
+ , $v = +v
+ , u0 = $u & UINT16
+ , v0 = $v & UINT16
+ , u1 = $u >>> 16
+ , v1 = $v >>> 16
+ , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
+ return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);
+ }
+ });
+
+/***/ },
+/* 259 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(260)
+ , anObject = __webpack_require__(12)
+ , toMetaKey = metadata.key
+ , ordinaryDefineOwnMetadata = metadata.set;
+
+ metadata.exp({defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey){
+ ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));
+ }});
+
+/***/ },
+/* 260 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var Map = __webpack_require__(190)
+ , $export = __webpack_require__(6)
+ , shared = __webpack_require__(21)('metadata')
+ , store = shared.store || (shared.store = new (__webpack_require__(194)));
+
+ var getOrCreateMetadataMap = function(target, targetKey, create){
+ var targetMetadata = store.get(target);
+ if(!targetMetadata){
+ if(!create)return undefined;
+ store.set(target, targetMetadata = new Map);
+ }
+ var keyMetadata = targetMetadata.get(targetKey);
+ if(!keyMetadata){
+ if(!create)return undefined;
+ targetMetadata.set(targetKey, keyMetadata = new Map);
+ } return keyMetadata;
+ };
+ var ordinaryHasOwnMetadata = function(MetadataKey, O, P){
+ var metadataMap = getOrCreateMetadataMap(O, P, false);
+ return metadataMap === undefined ? false : metadataMap.has(MetadataKey);
+ };
+ var ordinaryGetOwnMetadata = function(MetadataKey, O, P){
+ var metadataMap = getOrCreateMetadataMap(O, P, false);
+ return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);
+ };
+ var ordinaryDefineOwnMetadata = function(MetadataKey, MetadataValue, O, P){
+ getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);
+ };
+ var ordinaryOwnMetadataKeys = function(target, targetKey){
+ var metadataMap = getOrCreateMetadataMap(target, targetKey, false)
+ , keys = [];
+ if(metadataMap)metadataMap.forEach(function(_, key){ keys.push(key); });
+ return keys;
+ };
+ var toMetaKey = function(it){
+ return it === undefined || typeof it == 'symbol' ? it : String(it);
+ };
+ var exp = function(O){
+ $export($export.S, 'Reflect', O);
+ };
+
+ module.exports = {
+ store: store,
+ map: getOrCreateMetadataMap,
+ has: ordinaryHasOwnMetadata,
+ get: ordinaryGetOwnMetadata,
+ set: ordinaryDefineOwnMetadata,
+ keys: ordinaryOwnMetadataKeys,
+ key: toMetaKey,
+ exp: exp
+ };
+
+/***/ },
+/* 261 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(260)
+ , anObject = __webpack_require__(12)
+ , toMetaKey = metadata.key
+ , getOrCreateMetadataMap = metadata.map
+ , store = metadata.store;
+
+ metadata.exp({deleteMetadata: function deleteMetadata(metadataKey, target /*, targetKey */){
+ var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2])
+ , metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);
+ if(metadataMap === undefined || !metadataMap['delete'](metadataKey))return false;
+ if(metadataMap.size)return true;
+ var targetMetadata = store.get(target);
+ targetMetadata['delete'](targetKey);
+ return !!targetMetadata.size || store['delete'](target);
+ }});
+
+/***/ },
+/* 262 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(260)
+ , anObject = __webpack_require__(12)
+ , getPrototypeOf = __webpack_require__(57)
+ , ordinaryHasOwnMetadata = metadata.has
+ , ordinaryGetOwnMetadata = metadata.get
+ , toMetaKey = metadata.key;
+
+ var ordinaryGetMetadata = function(MetadataKey, O, P){
+ var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
+ if(hasOwn)return ordinaryGetOwnMetadata(MetadataKey, O, P);
+ var parent = getPrototypeOf(O);
+ return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;
+ };
+
+ metadata.exp({getMetadata: function getMetadata(metadataKey, target /*, targetKey */){
+ return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
+ }});
+
+/***/ },
+/* 263 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var Set = __webpack_require__(193)
+ , from = __webpack_require__(251)
+ , metadata = __webpack_require__(260)
+ , anObject = __webpack_require__(12)
+ , getPrototypeOf = __webpack_require__(57)
+ , ordinaryOwnMetadataKeys = metadata.keys
+ , toMetaKey = metadata.key;
+
+ var ordinaryMetadataKeys = function(O, P){
+ var oKeys = ordinaryOwnMetadataKeys(O, P)
+ , parent = getPrototypeOf(O);
+ if(parent === null)return oKeys;
+ var pKeys = ordinaryMetadataKeys(parent, P);
+ return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;
+ };
+
+ metadata.exp({getMetadataKeys: function getMetadataKeys(target /*, targetKey */){
+ return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
+ }});
+
+/***/ },
+/* 264 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(260)
+ , anObject = __webpack_require__(12)
+ , ordinaryGetOwnMetadata = metadata.get
+ , toMetaKey = metadata.key;
+
+ metadata.exp({getOwnMetadata: function getOwnMetadata(metadataKey, target /*, targetKey */){
+ return ordinaryGetOwnMetadata(metadataKey, anObject(target)
+ , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
+ }});
+
+/***/ },
+/* 265 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(260)
+ , anObject = __webpack_require__(12)
+ , ordinaryOwnMetadataKeys = metadata.keys
+ , toMetaKey = metadata.key;
+
+ metadata.exp({getOwnMetadataKeys: function getOwnMetadataKeys(target /*, targetKey */){
+ return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
+ }});
+
+/***/ },
+/* 266 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(260)
+ , anObject = __webpack_require__(12)
+ , getPrototypeOf = __webpack_require__(57)
+ , ordinaryHasOwnMetadata = metadata.has
+ , toMetaKey = metadata.key;
+
+ var ordinaryHasMetadata = function(MetadataKey, O, P){
+ var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
+ if(hasOwn)return true;
+ var parent = getPrototypeOf(O);
+ return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;
+ };
+
+ metadata.exp({hasMetadata: function hasMetadata(metadataKey, target /*, targetKey */){
+ return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
+ }});
+
+/***/ },
+/* 267 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(260)
+ , anObject = __webpack_require__(12)
+ , ordinaryHasOwnMetadata = metadata.has
+ , toMetaKey = metadata.key;
+
+ metadata.exp({hasOwnMetadata: function hasOwnMetadata(metadataKey, target /*, targetKey */){
+ return ordinaryHasOwnMetadata(metadataKey, anObject(target)
+ , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
+ }});
+
+/***/ },
+/* 268 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(260)
+ , anObject = __webpack_require__(12)
+ , aFunction = __webpack_require__(9)
+ , toMetaKey = metadata.key
+ , ordinaryDefineOwnMetadata = metadata.set;
+
+ metadata.exp({metadata: function metadata(metadataKey, metadataValue){
+ return function decorator(target, targetKey){
+ ordinaryDefineOwnMetadata(
+ metadataKey, metadataValue,
+ (targetKey !== undefined ? anObject : aFunction)(target),
+ toMetaKey(targetKey)
+ );
+ };
+ }});
+
+/***/ },
+/* 269 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask
+ var $export = __webpack_require__(6)
+ , microtask = __webpack_require__(188)()
+ , process = __webpack_require__(2).process
+ , isNode = __webpack_require__(32)(process) == 'process';
+
+ $export($export.G, {
+ asap: function asap(fn){
+ var domain = isNode && process.domain;
+ microtask(domain ? domain.bind(fn) : fn);
+ }
+ });
+
+/***/ },
+/* 270 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // https://github.com/zenparsing/es-observable
+ var $export = __webpack_require__(6)
+ , global = __webpack_require__(2)
+ , core = __webpack_require__(7)
+ , microtask = __webpack_require__(188)()
+ , OBSERVABLE = __webpack_require__(23)('observable')
+ , aFunction = __webpack_require__(9)
+ , anObject = __webpack_require__(12)
+ , anInstance = __webpack_require__(184)
+ , redefineAll = __webpack_require__(189)
+ , hide = __webpack_require__(10)
+ , forOf = __webpack_require__(185)
+ , RETURN = forOf.RETURN;
+
+ var getMethod = function(fn){
+ return fn == null ? undefined : aFunction(fn);
+ };
+
+ var cleanupSubscription = function(subscription){
+ var cleanup = subscription._c;
+ if(cleanup){
+ subscription._c = undefined;
+ cleanup();
+ }
+ };
+
+ var subscriptionClosed = function(subscription){
+ return subscription._o === undefined;
+ };
+
+ var closeSubscription = function(subscription){
+ if(!subscriptionClosed(subscription)){
+ subscription._o = undefined;
+ cleanupSubscription(subscription);
+ }
+ };
+
+ var Subscription = function(observer, subscriber){
+ anObject(observer);
+ this._c = undefined;
+ this._o = observer;
+ observer = new SubscriptionObserver(this);
+ try {
+ var cleanup = subscriber(observer)
+ , subscription = cleanup;
+ if(cleanup != null){
+ if(typeof cleanup.unsubscribe === 'function')cleanup = function(){ subscription.unsubscribe(); };
+ else aFunction(cleanup);
+ this._c = cleanup;
+ }
+ } catch(e){
+ observer.error(e);
+ return;
+ } if(subscriptionClosed(this))cleanupSubscription(this);
+ };
+
+ Subscription.prototype = redefineAll({}, {
+ unsubscribe: function unsubscribe(){ closeSubscription(this); }
+ });
+
+ var SubscriptionObserver = function(subscription){
+ this._s = subscription;
+ };
+
+ SubscriptionObserver.prototype = redefineAll({}, {
+ next: function next(value){
+ var subscription = this._s;
+ if(!subscriptionClosed(subscription)){
+ var observer = subscription._o;
+ try {
+ var m = getMethod(observer.next);
+ if(m)return m.call(observer, value);
+ } catch(e){
+ try {
+ closeSubscription(subscription);
+ } finally {
+ throw e;
+ }
+ }
+ }
+ },
+ error: function error(value){
+ var subscription = this._s;
+ if(subscriptionClosed(subscription))throw value;
+ var observer = subscription._o;
+ subscription._o = undefined;
+ try {
+ var m = getMethod(observer.error);
+ if(!m)throw value;
+ value = m.call(observer, value);
+ } catch(e){
+ try {
+ cleanupSubscription(subscription);
+ } finally {
+ throw e;
+ }
+ } cleanupSubscription(subscription);
+ return value;
+ },
+ complete: function complete(value){
+ var subscription = this._s;
+ if(!subscriptionClosed(subscription)){
+ var observer = subscription._o;
+ subscription._o = undefined;
+ try {
+ var m = getMethod(observer.complete);
+ value = m ? m.call(observer, value) : undefined;
+ } catch(e){
+ try {
+ cleanupSubscription(subscription);
+ } finally {
+ throw e;
+ }
+ } cleanupSubscription(subscription);
+ return value;
+ }
+ }
+ });
+
+ var $Observable = function Observable(subscriber){
+ anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);
+ };
+
+ redefineAll($Observable.prototype, {
+ subscribe: function subscribe(observer){
+ return new Subscription(observer, this._f);
+ },
+ forEach: function forEach(fn){
+ var that = this;
+ return new (core.Promise || global.Promise)(function(resolve, reject){
+ aFunction(fn);
+ var subscription = that.subscribe({
+ next : function(value){
+ try {
+ return fn(value);
+ } catch(e){
+ reject(e);
+ subscription.unsubscribe();
+ }
+ },
+ error: reject,
+ complete: resolve
+ });
+ });
+ }
+ });
+
+ redefineAll($Observable, {
+ from: function from(x){
+ var C = typeof this === 'function' ? this : $Observable;
+ var method = getMethod(anObject(x)[OBSERVABLE]);
+ if(method){
+ var observable = anObject(method.call(x));
+ return observable.constructor === C ? observable : new C(function(observer){
+ return observable.subscribe(observer);
+ });
+ }
+ return new C(function(observer){
+ var done = false;
+ microtask(function(){
+ if(!done){
+ try {
+ if(forOf(x, false, function(it){
+ observer.next(it);
+ if(done)return RETURN;
+ }) === RETURN)return;
+ } catch(e){
+ if(done)throw e;
+ observer.error(e);
+ return;
+ } observer.complete();
+ }
+ });
+ return function(){ done = true; };
+ });
+ },
+ of: function of(){
+ for(var i = 0, l = arguments.length, items = Array(l); i < l;)items[i] = arguments[i++];
+ return new (typeof this === 'function' ? this : $Observable)(function(observer){
+ var done = false;
+ microtask(function(){
+ if(!done){
+ for(var i = 0; i < items.length; ++i){
+ observer.next(items[i]);
+ if(done)return;
+ } observer.complete();
+ }
+ });
+ return function(){ done = true; };
+ });
+ }
+ });
+
+ hide($Observable.prototype, OBSERVABLE, function(){ return this; });
+
+ $export($export.G, {Observable: $Observable});
+
+ __webpack_require__(182)('Observable');
+
+/***/ },
+/* 271 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6)
+ , $task = __webpack_require__(187);
$export($export.G + $export.B, {
setImmediate: $task.set,
clearImmediate: $task.clear
});
/***/ },
-/* 170 */
+/* 272 */
/***/ function(module, exports, __webpack_require__) {
- __webpack_require__(113);
- var Iterators = __webpack_require__(104);
- Iterators.NodeList = Iterators.HTMLCollection = Iterators.Array;
+ __webpack_require__(179);
+ var global = __webpack_require__(2)
+ , hide = __webpack_require__(10)
+ , Iterators = __webpack_require__(130)
+ , TO_STRING_TAG = __webpack_require__(23)('toStringTag');
+
+ for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
+ var NAME = collections[i]
+ , Collection = global[NAME]
+ , proto = Collection && Collection.prototype;
+ if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);
+ Iterators[NAME] = Iterators.Array;
+ }
/***/ },
-/* 171 */
+/* 273 */
/***/ function(module, exports, __webpack_require__) {
// ie9- setTimeout & setInterval additional parameters fix
- var global = __webpack_require__(4)
- , $export = __webpack_require__(3)
- , invoke = __webpack_require__(16)
- , partial = __webpack_require__(172)
+ var global = __webpack_require__(2)
+ , $export = __webpack_require__(6)
+ , invoke = __webpack_require__(74)
+ , partial = __webpack_require__(274)
, navigator = global.navigator
, MSIE = !!navigator && /MSIE .\./.test(navigator.userAgent); // <- dirty ie9- check
var wrap = function(set){
@@ -4138,13 +6751,13 @@
});
/***/ },
-/* 172 */
+/* 274 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var path = __webpack_require__(173)
- , invoke = __webpack_require__(16)
- , aFunction = __webpack_require__(7);
+ var path = __webpack_require__(275)
+ , invoke = __webpack_require__(74)
+ , aFunction = __webpack_require__(9);
module.exports = function(/* ...pargs */){
var fn = aFunction(this)
, length = arguments.length
@@ -4154,45 +6767,46 @@
, holder = false;
while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true;
return function(/* ...args */){
- var that = this
- , $$ = arguments
- , $$len = $$.length
+ var that = this
+ , aLen = arguments.length
, j = 0, k = 0, args;
- if(!holder && !$$len)return invoke(fn, pargs, that);
+ if(!holder && !aLen)return invoke(fn, pargs, that);
args = pargs.slice();
- if(holder)for(;length > j; j++)if(args[j] === _)args[j] = $$[k++];
- while($$len > k)args.push($$[k++]);
+ if(holder)for(;length > j; j++)if(args[j] === _)args[j] = arguments[k++];
+ while(aLen > k)args.push(arguments[k++]);
return invoke(fn, args, that);
};
};
/***/ },
-/* 173 */
+/* 275 */
/***/ function(module, exports, __webpack_require__) {
- module.exports = __webpack_require__(5);
+ module.exports = __webpack_require__(7);
/***/ },
-/* 174 */
+/* 276 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , ctx = __webpack_require__(6)
- , $export = __webpack_require__(3)
- , createDesc = __webpack_require__(10)
- , assign = __webpack_require__(41)
- , keyOf = __webpack_require__(36)
- , aFunction = __webpack_require__(7)
- , forOf = __webpack_require__(126)
- , isIterable = __webpack_require__(175)
- , $iterCreate = __webpack_require__(105)
- , step = __webpack_require__(115)
- , isObject = __webpack_require__(13)
- , toIObject = __webpack_require__(20)
- , DESCRIPTORS = __webpack_require__(8)
- , has = __webpack_require__(14)
- , getKeys = $.getKeys;
+ var ctx = __webpack_require__(8)
+ , $export = __webpack_require__(6)
+ , createDesc = __webpack_require__(17)
+ , assign = __webpack_require__(67)
+ , create = __webpack_require__(44)
+ , getPrototypeOf = __webpack_require__(57)
+ , getKeys = __webpack_require__(28)
+ , dP = __webpack_require__(11)
+ , keyOf = __webpack_require__(27)
+ , aFunction = __webpack_require__(9)
+ , forOf = __webpack_require__(185)
+ , isIterable = __webpack_require__(277)
+ , $iterCreate = __webpack_require__(131)
+ , step = __webpack_require__(180)
+ , isObject = __webpack_require__(13)
+ , toIObject = __webpack_require__(30)
+ , DESCRIPTORS = __webpack_require__(4)
+ , has = __webpack_require__(3);
// 0 -> Dict.forEach
// 1 -> Dict.map
@@ -4259,7 +6873,7 @@
});
function Dict(iterable){
- var dict = $.create(null);
+ var dict = create(null);
if(iterable != undefined){
if(isIterable(iterable)){
forOf(iterable, true, function(key, value){
@@ -4298,13 +6912,13 @@
if(has(object, key))return object[key];
}
function set(object, key, value){
- if(DESCRIPTORS && key in Object)$.setDesc(object, key, createDesc(0, value));
+ if(DESCRIPTORS && key in Object)dP.f(object, key, createDesc(0, value));
else object[key] = value;
return object;
}
function isDict(it){
- return isObject(it) && $.getProto(it) === Dict.prototype;
+ return isObject(it) && getPrototypeOf(it) === Dict.prototype;
}
$export($export.G + $export.F, {Dict: Dict});
@@ -4331,13 +6945,13 @@
});
/***/ },
-/* 175 */
+/* 277 */
/***/ function(module, exports, __webpack_require__) {
- var classof = __webpack_require__(110)
- , ITERATOR = __webpack_require__(29)('iterator')
- , Iterators = __webpack_require__(104);
- module.exports = __webpack_require__(5).isIterable = function(it){
+ var classof = __webpack_require__(152)
+ , ITERATOR = __webpack_require__(23)('iterator')
+ , Iterators = __webpack_require__(130);
+ module.exports = __webpack_require__(7).isIterable = function(it){
var O = Object(it);
return O[ITERATOR] !== undefined
|| '@@iterator' in O
@@ -4345,25 +6959,25 @@
};
/***/ },
-/* 176 */
+/* 278 */
/***/ function(module, exports, __webpack_require__) {
- var anObject = __webpack_require__(17)
- , get = __webpack_require__(109);
- module.exports = __webpack_require__(5).getIterator = function(it){
+ var anObject = __webpack_require__(12)
+ , get = __webpack_require__(151);
+ module.exports = __webpack_require__(7).getIterator = function(it){
var iterFn = get(it);
if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');
return anObject(iterFn.call(it));
};
/***/ },
-/* 177 */
+/* 279 */
/***/ function(module, exports, __webpack_require__) {
- var global = __webpack_require__(4)
- , core = __webpack_require__(5)
- , $export = __webpack_require__(3)
- , partial = __webpack_require__(172);
+ var global = __webpack_require__(2)
+ , core = __webpack_require__(7)
+ , $export = __webpack_require__(6)
+ , partial = __webpack_require__(274);
// https://esdiscuss.org/topic/promise-returning-delay-function
$export($export.G + $export.F, {
delay: function delay(time){
@@ -4374,65 +6988,66 @@
});
/***/ },
-/* 178 */
+/* 280 */
/***/ function(module, exports, __webpack_require__) {
- var path = __webpack_require__(173)
- , $export = __webpack_require__(3);
+ var path = __webpack_require__(275)
+ , $export = __webpack_require__(6);
// Placeholder
- __webpack_require__(5)._ = path._ = path._ || {};
+ __webpack_require__(7)._ = path._ = path._ || {};
- $export($export.P + $export.F, 'Function', {part: __webpack_require__(172)});
+ $export($export.P + $export.F, 'Function', {part: __webpack_require__(274)});
/***/ },
-/* 179 */
+/* 281 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S + $export.F, 'Object', {isObject: __webpack_require__(13)});
/***/ },
-/* 180 */
+/* 282 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.S + $export.F, 'Object', {classof: __webpack_require__(110)});
+ $export($export.S + $export.F, 'Object', {classof: __webpack_require__(152)});
/***/ },
-/* 181 */
+/* 283 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3)
- , define = __webpack_require__(182);
+ var $export = __webpack_require__(6)
+ , define = __webpack_require__(284);
$export($export.S + $export.F, 'Object', {define: define});
/***/ },
-/* 182 */
+/* 284 */
/***/ function(module, exports, __webpack_require__) {
- var $ = __webpack_require__(2)
- , ownKeys = __webpack_require__(149)
- , toIObject = __webpack_require__(20);
+ var dP = __webpack_require__(11)
+ , gOPD = __webpack_require__(49)
+ , ownKeys = __webpack_require__(208)
+ , toIObject = __webpack_require__(30);
module.exports = function define(target, mixin){
var keys = ownKeys(toIObject(mixin))
, length = keys.length
, i = 0, key;
- while(length > i)$.setDesc(target, key = keys[i++], $.getDesc(mixin, key));
+ while(length > i)dP.f(target, key = keys[i++], gOPD.f(mixin, key));
return target;
};
/***/ },
-/* 183 */
+/* 285 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3)
- , define = __webpack_require__(182)
- , create = __webpack_require__(2).create;
+ var $export = __webpack_require__(6)
+ , define = __webpack_require__(284)
+ , create = __webpack_require__(44);
$export($export.S + $export.F, 'Object', {
make: function(proto, mixin){
@@ -4441,11 +7056,11 @@
});
/***/ },
-/* 184 */
+/* 286 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- __webpack_require__(103)(Number, 'Number', function(iterated){
+ __webpack_require__(129)(Number, 'Number', function(iterated){
this._l = +iterated;
this._i = 0;
}, function(){
@@ -4455,12 +7070,36 @@
});
/***/ },
-/* 185 */
+/* 287 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://github.com/benjamingr/RexExp.escape
+ var $export = __webpack_require__(6)
+ , $re = __webpack_require__(288)(/[\\^$*+?.()|[\]{}]/g, '\\$&');
+
+ $export($export.S, 'RegExp', {escape: function escape(it){ return $re(it); }});
+
+
+/***/ },
+/* 288 */
+/***/ function(module, exports) {
+
+ module.exports = function(regExp, replace){
+ var replacer = replace === Object(replace) ? function(part){
+ return replace[part];
+ } : replace;
+ return function(it){
+ return String(it).replace(regExp, replacer);
+ };
+ };
+
+/***/ },
+/* 289 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3);
- var $re = __webpack_require__(161)(/[&<>"']/g, {
+ var $export = __webpack_require__(6);
+ var $re = __webpack_require__(288)(/[&<>"']/g, {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
@@ -4471,12 +7110,12 @@
$export($export.P + $export.F, 'String', {escapeHTML: function escapeHTML(){ return $re(this); }});
/***/ },
-/* 186 */
+/* 290 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3);
- var $re = __webpack_require__(161)(/&(?:amp|lt|gt|quot|apos);/g, {
+ var $export = __webpack_require__(6);
+ var $re = __webpack_require__(288)(/&(?:amp|lt|gt|quot|apos);/g, {
'&amp;': '&',
'&lt;': '<',
'&gt;': '>',
@@ -4486,59 +7125,6 @@
$export($export.P + $export.F, 'String', {unescapeHTML: function unescapeHTML(){ return $re(this); }});
-/***/ },
-/* 187 */
-/***/ function(module, exports, __webpack_require__) {
-
- var $ = __webpack_require__(2)
- , global = __webpack_require__(4)
- , $export = __webpack_require__(3)
- , log = {}
- , enabled = true;
- // Methods from https://github.com/DeveloperToolsWG/console-object/blob/master/api.md
- $.each.call((
- 'assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,' +
- 'info,isIndependentlyComposed,log,markTimeline,profile,profileEnd,table,' +
- 'time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn'
- ).split(','), function(key){
- log[key] = function(){
- var $console = global.console;
- if(enabled && $console && $console[key]){
- return Function.apply.call($console[key], $console, arguments);
- }
- };
- });
- $export($export.G + $export.F, {log: __webpack_require__(41)(log.log, log, {
- enable: function(){
- enabled = true;
- },
- disable: function(){
- enabled = false;
- }
- })});
-
-/***/ },
-/* 188 */
-/***/ function(module, exports, __webpack_require__) {
-
- // JavaScript 1.6 / Strawman array statics shim
- var $ = __webpack_require__(2)
- , $export = __webpack_require__(3)
- , $ctx = __webpack_require__(6)
- , $Array = __webpack_require__(5).Array || Array
- , statics = {};
- var setStatics = function(keys, length){
- $.each.call(keys.split(','), function(key){
- if(length == undefined && key in $Array)statics[key] = $Array[key];
- else if(key in [])statics[key] = $ctx(Function.call, [][key], length);
- });
- };
- setStatics('pop,reverse,shift,keys,values,entries', 1);
- setStatics('indexOf,every,some,forEach,map,filter,find,findIndex,includes', 3);
- setStatics('join,slice,concat,push,splice,unshift,sort,lastIndexOf,' +
- 'reduce,reduceRight,copyWithin,fill');
- $export($export.S, 'Array', statics);
-
/***/ }
/******/ ]);
// CommonJS export
diff --git a/node_modules/core-js/client/library.min.js b/node_modules/core-js/client/library.min.js
index f665bedfa..d69a0de9b 100644
--- a/node_modules/core-js/client/library.min.js
+++ b/node_modules/core-js/client/library.min.js
@@ -1,9 +1,10 @@
/**
- * core-js 1.2.7
+ * core-js 2.4.1
* https://github.com/zloirock/core-js
* License: http://rock.mit-license.org
* © 2016 Denis Pushkarev
*/
-!function(b,c,a){"use strict";!function(b){function __webpack_require__(c){if(a[c])return a[c].exports;var d=a[c]={exports:{},id:c,loaded:!1};return b[c].call(d.exports,d,d.exports,__webpack_require__),d.loaded=!0,d.exports}var a={};return __webpack_require__.m=b,__webpack_require__.c=a,__webpack_require__.p="",__webpack_require__(0)}([function(b,c,a){a(1),a(32),a(40),a(42),a(44),a(46),a(48),a(49),a(50),a(51),a(52),a(53),a(54),a(55),a(56),a(57),a(58),a(59),a(60),a(62),a(63),a(64),a(65),a(66),a(67),a(68),a(70),a(71),a(72),a(74),a(75),a(76),a(78),a(79),a(80),a(81),a(82),a(83),a(84),a(85),a(86),a(87),a(88),a(89),a(90),a(92),a(94),a(98),a(99),a(101),a(102),a(106),a(112),a(113),a(116),a(118),a(120),a(122),a(123),a(124),a(131),a(134),a(135),a(137),a(138),a(139),a(140),a(141),a(142),a(143),a(144),a(145),a(146),a(147),a(148),a(150),a(151),a(152),a(153),a(154),a(155),a(157),a(158),a(159),a(160),a(162),a(163),a(165),a(166),a(168),a(169),a(170),a(171),a(174),a(109),a(176),a(175),a(177),a(178),a(179),a(180),a(181),a(183),a(184),a(185),a(186),a(187),b.exports=a(188)},function(S,R,b){var r,d=b(2),c=b(3),x=b(8),O=b(10),o=b(11),E=b(12),n=b(14),N=b(15),J=b(16),j=b(9),p=b(17),v=b(7),I=b(13),Q=b(18),y=b(20),K=b(22),w=b(23),h=b(24),s=b(21),m=b(25)("__proto__"),g=b(26),A=b(31)(!1),B=Object.prototype,C=Array.prototype,k=C.slice,M=C.join,F=d.setDesc,L=d.getDesc,q=d.setDescs,u={};x||(r=!j(function(){return 7!=F(E("div"),"a",{get:function(){return 7}}).a}),d.setDesc=function(b,c,a){if(r)try{return F(b,c,a)}catch(d){}if("get"in a||"set"in a)throw TypeError("Accessors not supported!");return"value"in a&&(p(b)[c]=a.value),b},d.getDesc=function(a,b){if(r)try{return L(a,b)}catch(c){}return n(a,b)?O(!B.propertyIsEnumerable.call(a,b),a[b]):void 0},d.setDescs=q=function(a,b){p(a);for(var c,e=d.getKeys(b),g=e.length,f=0;g>f;)d.setDesc(a,c=e[f++],b[c]);return a}),c(c.S+c.F*!x,"Object",{getOwnPropertyDescriptor:d.getDesc,defineProperty:d.setDesc,defineProperties:q});var i="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),H=i.concat("length","prototype"),G=i.length,l=function(){var a,b=E("iframe"),c=G,d=">";for(b.style.display="none",o.appendChild(b),b.src="javascript:",a=b.contentWindow.document,a.open(),a.write("<script>document.F=Object</script"+d),a.close(),l=a.F;c--;)delete l.prototype[i[c]];return l()},D=function(a,b){return function(g){var c,e=y(g),f=0,d=[];for(c in e)c!=m&&n(e,c)&&d.push(c);for(;b>f;)n(e,c=a[f++])&&(~A(d,c)||d.push(c));return d}},t=function(){};c(c.S,"Object",{getPrototypeOf:d.getProto=d.getProto||function(a){return a=Q(a),n(a,m)?a[m]:"function"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?B:null},getOwnPropertyNames:d.getNames=d.getNames||D(H,H.length,!0),create:d.create=d.create||function(c,d){var b;return null!==c?(t.prototype=p(c),b=new t,t.prototype=null,b[m]=c):b=l(),d===a?b:q(b,d)},keys:d.getKeys=d.getKeys||D(i,G,!1)});var P=function(d,a,e){if(!(a in u)){for(var c=[],b=0;a>b;b++)c[b]="a["+b+"]";u[a]=Function("F,a","return new F("+c.join(",")+")")}return u[a](d,e)};c(c.P,"Function",{bind:function bind(c){var a=v(this),d=k.call(arguments,1),b=function(){var e=d.concat(k.call(arguments));return this instanceof b?P(a,e.length,e):J(a,e,c)};return I(a.prototype)&&(b.prototype=a.prototype),b}}),c(c.P+c.F*j(function(){o&&k.call(o)}),"Array",{slice:function(f,b){var d=h(this.length),g=N(this);if(b=b===a?d:b,"Array"==g)return k.call(this,f,b);for(var e=w(f,d),l=w(b,d),i=h(l-e),j=Array(i),c=0;i>c;c++)j[c]="String"==g?this.charAt(e+c):this[e+c];return j}}),c(c.P+c.F*(s!=Object),"Array",{join:function join(b){return M.call(s(this),b===a?",":b)}}),c(c.S,"Array",{isArray:b(28)});var z=function(a){return function(g,d){v(g);var c=s(this),e=h(c.length),b=a?e-1:0,f=a?-1:1;if(arguments.length<2)for(;;){if(b in c){d=c[b],b+=f;break}if(b+=f,a?0>b:b>=e)throw TypeError("Reduce of empty array with no initial value")}for(;a?b>=0:e>b;b+=f)b in c&&(d=g(d,c[b],b,this));return d}},f=function(a){return function(b){return a(this,b,arguments[1])}};c(c.P,"Array",{forEach:d.each=d.each||f(g(0)),map:f(g(1)),filter:f(g(2)),some:f(g(3)),every:f(g(4)),reduce:z(!1),reduceRight:z(!0),indexOf:f(A),lastIndexOf:function(d,e){var b=y(this),c=h(b.length),a=c-1;for(arguments.length>1&&(a=Math.min(a,K(e))),0>a&&(a=h(c+a));a>=0;a--)if(a in b&&b[a]===d)return a;return-1}}),c(c.S,"Date",{now:function(){return+new Date}});var e=function(a){return a>9?a:"0"+a};c(c.P+c.F*(j(function(){return"0385-07-25T07:06:39.999Z"!=new Date(-5e13-1).toISOString()})||!j(function(){new Date(NaN).toISOString()})),"Date",{toISOString:function toISOString(){if(!isFinite(this))throw RangeError("Invalid time value");var a=this,b=a.getUTCFullYear(),c=a.getUTCMilliseconds(),d=0>b?"-":b>9999?"+":"";return d+("00000"+Math.abs(b)).slice(d?-6:-4)+"-"+e(a.getUTCMonth()+1)+"-"+e(a.getUTCDate())+"T"+e(a.getUTCHours())+":"+e(a.getUTCMinutes())+":"+e(a.getUTCSeconds())+"."+(c>99?c:"0"+e(c))+"Z"}})},function(b,c){var a=Object;b.exports={create:a.create,getProto:a.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:a.getOwnPropertyDescriptor,setDesc:a.defineProperty,setDescs:a.defineProperties,getKeys:a.keys,getNames:a.getOwnPropertyNames,getSymbols:a.getOwnPropertySymbols,each:[].forEach}},function(g,h,d){var c=d(4),e=d(5),f=d(6),b="prototype",a=function(h,j,l){var d,k,g,p=h&a.F,n=h&a.G,q=h&a.S,o=h&a.P,r=h&a.B,s=h&a.W,m=n?e:e[j]||(e[j]={}),i=n?c:q?c[j]:(c[j]||{})[b];n&&(l=j);for(d in l)k=!p&&i&&d in i,k&&d in m||(g=k?i[d]:l[d],m[d]=n&&"function"!=typeof i[d]?l[d]:r&&k?f(g,c):s&&i[d]==g?function(a){var c=function(b){return this instanceof a?new a(b):a(b)};return c[b]=a[b],c}(g):o&&"function"==typeof g?f(Function.call,g):g,o&&((m[b]||(m[b]={}))[d]=g))};a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,g.exports=a},function(a,d){var b=a.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof c&&(c=b)},function(a,d){var c=a.exports={version:"1.2.6"};"number"==typeof b&&(b=c)},function(b,e,c){var d=c(7);b.exports=function(b,c,e){if(d(b),c===a)return b;switch(e){case 1:return function(a){return b.call(c,a)};case 2:return function(a,d){return b.call(c,a,d)};case 3:return function(a,d,e){return b.call(c,a,d,e)}}return function(){return b.apply(c,arguments)}}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,c,b){a.exports=!b(9)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b){a.exports=function(a){try{return!!a()}catch(b){return!0}}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,c,b){a.exports=b(4).document&&document.documentElement},function(d,f,b){var c=b(13),a=b(4).document,e=c(a)&&c(a.createElement);d.exports=function(b){return e?a.createElement(b):{}}},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,c){var b={}.hasOwnProperty;a.exports=function(a,c){return b.call(a,c)}},function(a,c){var b={}.toString;a.exports=function(a){return b.call(a).slice(8,-1)}},function(b,c){b.exports=function(c,b,d){var e=d===a;switch(b.length){case 0:return e?c():c.call(d);case 1:return e?c(b[0]):c.call(d,b[0]);case 2:return e?c(b[0],b[1]):c.call(d,b[0],b[1]);case 3:return e?c(b[0],b[1],b[2]):c.call(d,b[0],b[1],b[2]);case 4:return e?c(b[0],b[1],b[2],b[3]):c.call(d,b[0],b[1],b[2],b[3])}return c.apply(d,b)}},function(a,d,b){var c=b(13);a.exports=function(a){if(!c(a))throw TypeError(a+" is not an object!");return a}},function(a,d,b){var c=b(19);a.exports=function(a){return Object(c(a))}},function(b,c){b.exports=function(b){if(b==a)throw TypeError("Can't call method on "+b);return b}},function(b,e,a){var c=a(21),d=a(19);b.exports=function(a){return c(d(a))}},function(a,d,b){var c=b(15);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return"String"==c(a)?a.split(""):Object(a)}},function(a,d){var b=Math.ceil,c=Math.floor;a.exports=function(a){return isNaN(a=+a)?0:(a>0?c:b)(a)}},function(a,f,b){var c=b(22),d=Math.max,e=Math.min;a.exports=function(a,b){return a=c(a),0>a?d(a+b,0):e(a,b)}},function(a,e,b){var c=b(22),d=Math.min;a.exports=function(a){return a>0?d(c(a),9007199254740991):0}},function(b,e){var c=0,d=Math.random();b.exports=function(b){return"Symbol(".concat(b===a?"":b,")_",(++c+d).toString(36))}},function(d,i,b){var e=b(6),f=b(21),g=b(18),h=b(24),c=b(27);d.exports=function(b){var i=1==b,k=2==b,l=3==b,d=4==b,j=6==b,m=5==b||j;return function(p,v,x){for(var o,r,u=g(p),s=f(u),w=e(v,x,3),t=h(s.length),n=0,q=i?c(p,t):k?c(p,0):a;t>n;n++)if((m||n in s)&&(o=s[n],r=w(o,n,u),b))if(i)q[n]=r;else if(r)switch(b){case 3:return!0;case 5:return o;case 6:return n;case 2:q.push(o)}else if(d)return!1;return j?-1:l||d?d:q}}},function(d,g,b){var e=b(13),c=b(28),f=b(29)("species");d.exports=function(d,g){var b;return c(d)&&(b=d.constructor,"function"!=typeof b||b!==Array&&!c(b.prototype)||(b=a),e(b)&&(b=b[f],null===b&&(b=a))),new(b===a?Array:b)(g)}},function(a,d,b){var c=b(15);a.exports=Array.isArray||function(a){return"Array"==c(a)}},function(d,f,a){var c=a(30)("wks"),e=a(25),b=a(4).Symbol;d.exports=function(a){return c[a]||(c[a]=b&&b[a]||(b||e)("Symbol."+a))}},function(d,f,e){var a=e(4),b="__core-js_shared__",c=a[b]||(a[b]={});d.exports=function(a){return c[a]||(c[a]={})}},function(b,f,a){var c=a(20),d=a(24),e=a(23);b.exports=function(a){return function(j,g,k){var h,f=c(j),i=d(f.length),b=e(k,i);if(a&&g!=g){for(;i>b;)if(h=f[b++],h!=h)return!0}else for(;i>b;b++)if((a||b in f)&&f[b]===g)return a||b;return!a&&-1}}},function(W,V,b){var e=b(2),x=b(4),d=b(14),w=b(8),f=b(3),G=b(33),H=b(9),J=b(30),s=b(35),S=b(25),A=b(29),R=b(36),C=b(37),Q=b(38),P=b(28),O=b(17),p=b(20),v=b(10),I=e.getDesc,i=e.setDesc,k=e.create,z=C.get,g=x.Symbol,l=x.JSON,m=l&&l.stringify,n=!1,c=A("_hidden"),N=e.isEnum,o=J("symbol-registry"),h=J("symbols"),q="function"==typeof g,j=Object.prototype,y=w&&H(function(){return 7!=k(i({},"a",{get:function(){return i(this,"a",{value:7}).a}})).a})?function(c,a,d){var b=I(j,a);b&&delete j[a],i(c,a,d),b&&c!==j&&i(j,a,b)}:i,L=function(a){var b=h[a]=k(g.prototype);return b._k=a,w&&n&&y(j,a,{configurable:!0,set:function(b){d(this,c)&&d(this[c],a)&&(this[c][a]=!1),y(this,a,v(1,b))}}),b},r=function(a){return"symbol"==typeof a},t=function defineProperty(a,b,e){return e&&d(h,b)?(e.enumerable?(d(a,c)&&a[c][b]&&(a[c][b]=!1),e=k(e,{enumerable:v(0,!1)})):(d(a,c)||i(a,c,v(1,{})),a[c][b]=!0),y(a,b,e)):i(a,b,e)},u=function defineProperties(a,b){O(a);for(var c,d=Q(b=p(b)),e=0,f=d.length;f>e;)t(a,c=d[e++],b[c]);return a},F=function create(b,c){return c===a?k(b):u(k(b),c)},E=function propertyIsEnumerable(a){var b=N.call(this,a);return b||!d(this,a)||!d(h,a)||d(this,c)&&this[c][a]?b:!0},D=function getOwnPropertyDescriptor(a,b){var e=I(a=p(a),b);return!e||!d(h,b)||d(a,c)&&a[c][b]||(e.enumerable=!0),e},B=function getOwnPropertyNames(g){for(var a,b=z(p(g)),e=[],f=0;b.length>f;)d(h,a=b[f++])||a==c||e.push(a);return e},M=function getOwnPropertySymbols(f){for(var a,b=z(p(f)),c=[],e=0;b.length>e;)d(h,a=b[e++])&&c.push(h[a]);return c},T=function stringify(e){if(e!==a&&!r(e)){for(var b,c,d=[e],f=1,g=arguments;g.length>f;)d.push(g[f++]);return b=d[1],"function"==typeof b&&(c=b),(c||!P(b))&&(b=function(b,a){return c&&(a=c.call(this,b,a)),r(a)?void 0:a}),d[1]=b,m.apply(l,d)}},U=H(function(){var a=g();return"[null]"!=m([a])||"{}"!=m({a:a})||"{}"!=m(Object(a))});q||(g=function Symbol(){if(r(this))throw TypeError("Symbol is not a constructor");return L(S(arguments.length>0?arguments[0]:a))},G(g.prototype,"toString",function toString(){return this._k}),r=function(a){return a instanceof g},e.create=F,e.isEnum=E,e.getDesc=D,e.setDesc=t,e.setDescs=u,e.getNames=C.get=B,e.getSymbols=M,w&&!b(39)&&G(j,"propertyIsEnumerable",E,!0));var K={"for":function(a){return d(o,a+="")?o[a]:o[a]=g(a)},keyFor:function keyFor(a){return R(o,a)},useSetter:function(){n=!0},useSimple:function(){n=!1}};e.each.call("hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),function(a){var b=A(a);K[a]=q?b:L(b)}),n=!0,f(f.G+f.W,{Symbol:g}),f(f.S,"Symbol",K),f(f.S+f.F*!q,"Object",{create:F,defineProperty:t,defineProperties:u,getOwnPropertyDescriptor:D,getOwnPropertyNames:B,getOwnPropertySymbols:M}),l&&f(f.S+f.F*(!q||U),"JSON",{stringify:T}),s(g,"Symbol"),s(Math,"Math",!0),s(x.JSON,"JSON",!0)},function(a,c,b){a.exports=b(34)},function(b,e,a){var c=a(2),d=a(10);b.exports=a(8)?function(a,b,e){return c.setDesc(a,b,d(1,e))}:function(a,b,c){return a[b]=c,a}},function(c,f,a){var d=a(2).setDesc,e=a(14),b=a(29)("toStringTag");c.exports=function(a,c,f){a&&!e(a=f?a:a.prototype,b)&&d(a,b,{configurable:!0,value:c})}},function(b,e,a){var c=a(2),d=a(20);b.exports=function(g,h){for(var a,b=d(g),e=c.getKeys(b),i=e.length,f=0;i>f;)if(b[a=e[f++]]===h)return a}},function(d,h,a){var e=a(20),b=a(2).getNames,f={}.toString,c="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],g=function(a){try{return b(a)}catch(d){return c.slice()}};d.exports.get=function getOwnPropertyNames(a){return c&&"[object Window]"==f.call(a)?g(a):b(e(a))}},function(b,d,c){var a=c(2);b.exports=function(b){var c=a.getKeys(b),d=a.getSymbols;if(d)for(var e,f=d(b),h=a.isEnum,g=0;f.length>g;)h.call(b,e=f[g++])&&c.push(e);return c}},function(a,b){a.exports=!0},function(c,d,b){var a=b(3);a(a.S+a.F,"Object",{assign:b(41)})},function(c,f,a){var b=a(2),d=a(18),e=a(21);c.exports=a(9)(function(){var a=Object.assign,b={},c={},d=Symbol(),e="abcdefghijklmnopqrst";return b[d]=7,e.split("").forEach(function(a){c[a]=a}),7!=a({},b)[d]||Object.keys(a({},c)).join("")!=e})?function assign(n,q){for(var g=d(n),h=arguments,o=h.length,j=1,f=b.getKeys,l=b.getSymbols,m=b.isEnum;o>j;)for(var c,a=e(h[j++]),k=l?f(a).concat(l(a)):f(a),p=k.length,i=0;p>i;)m.call(a,c=k[i++])&&(g[c]=a[c]);return g}:Object.assign},function(c,d,a){var b=a(3);b(b.S,"Object",{is:a(43)})},function(a,b){a.exports=Object.is||function is(a,b){return a===b?0!==a||1/a===1/b:a!=a&&b!=b}},function(c,d,a){var b=a(3);b(b.S,"Object",{setPrototypeOf:a(45).set})},function(d,h,b){var e=b(2).getDesc,f=b(13),g=b(17),c=function(b,a){if(g(b),!f(a)&&null!==a)throw TypeError(a+": can't set as prototype!")};d.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(f,a,d){try{d=b(6)(Function.call,e(Object.prototype,"__proto__").set,2),d(f,[]),a=!(f instanceof Array)}catch(g){a=!0}return function setPrototypeOf(b,e){return c(b,e),a?b.__proto__=e:d(b,e),b}}({},!1):a),check:c}},function(c,d,a){var b=a(13);a(47)("freeze",function(a){return function freeze(c){return a&&b(c)?a(c):c}})},function(c,f,a){var b=a(3),d=a(5),e=a(9);c.exports=function(a,g){var c=(d.Object||{})[a]||Object[a],f={};f[a]=g(c),b(b.S+b.F*e(function(){c(1)}),"Object",f)}},function(c,d,a){var b=a(13);a(47)("seal",function(a){return function seal(c){return a&&b(c)?a(c):c}})},function(c,d,a){var b=a(13);a(47)("preventExtensions",function(a){return function preventExtensions(c){return a&&b(c)?a(c):c}})},function(c,d,a){var b=a(13);a(47)("isFrozen",function(a){return function isFrozen(c){return b(c)?a?a(c):!1:!0}})},function(c,d,a){var b=a(13);a(47)("isSealed",function(a){return function isSealed(c){return b(c)?a?a(c):!1:!0}})},function(c,d,a){var b=a(13);a(47)("isExtensible",function(a){return function isExtensible(c){return b(c)?a?a(c):!0:!1}})},function(c,d,a){var b=a(20);a(47)("getOwnPropertyDescriptor",function(a){return function getOwnPropertyDescriptor(c,d){return a(b(c),d)}})},function(c,d,a){var b=a(18);a(47)("getPrototypeOf",function(a){return function getPrototypeOf(c){return a(b(c))}})},function(c,d,a){var b=a(18);a(47)("keys",function(a){return function keys(c){return a(b(c))}})},function(b,c,a){a(47)("getOwnPropertyNames",function(){return a(37).get})},function(f,g,a){var b=a(2),c=a(13),d=a(29)("hasInstance"),e=Function.prototype;d in e||b.setDesc(e,d,{value:function(a){if("function"!=typeof this||!c(a))return!1;if(!c(this.prototype))return a instanceof this;for(;a=b.getProto(a);)if(this.prototype===a)return!0;return!1}})},function(c,d,b){var a=b(3);a(a.S,"Number",{EPSILON:Math.pow(2,-52)})},function(d,e,a){var b=a(3),c=a(4).isFinite;b(b.S,"Number",{isFinite:function isFinite(a){return"number"==typeof a&&c(a)}})},function(c,d,a){var b=a(3);b(b.S,"Number",{isInteger:a(61)})},function(a,e,b){var c=b(13),d=Math.floor;a.exports=function isInteger(a){return!c(a)&&isFinite(a)&&d(a)===a}},function(c,d,b){var a=b(3);a(a.S,"Number",{isNaN:function isNaN(a){return a!=a}})},function(e,f,a){var b=a(3),c=a(61),d=Math.abs;b(b.S,"Number",{isSafeInteger:function isSafeInteger(a){return c(a)&&d(a)<=9007199254740991}})},function(c,d,b){var a=b(3);a(a.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(c,d,b){var a=b(3);a(a.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(c,d,b){var a=b(3);a(a.S,"Number",{parseFloat:parseFloat})},function(c,d,b){var a=b(3);a(a.S,"Number",{parseInt:parseInt})},function(f,g,b){var a=b(3),e=b(69),c=Math.sqrt,d=Math.acosh;a(a.S+a.F*!(d&&710==Math.floor(d(Number.MAX_VALUE))),"Math",{acosh:function acosh(a){return(a=+a)<1?NaN:a>94906265.62425156?Math.log(a)+Math.LN2:e(a-1+c(a-1)*c(a+1))}})},function(a,b){a.exports=Math.log1p||function log1p(a){return(a=+a)>-1e-8&&1e-8>a?a-a*a/2:Math.log(1+a)}},function(c,d,b){function asinh(a){return isFinite(a=+a)&&0!=a?0>a?-asinh(-a):Math.log(a+Math.sqrt(a*a+1)):a}var a=b(3);a(a.S,"Math",{asinh:asinh})},function(c,d,b){var a=b(3);a(a.S,"Math",{atanh:function atanh(a){return 0==(a=+a)?a:Math.log((1+a)/(1-a))/2}})},function(d,e,a){var b=a(3),c=a(73);b(b.S,"Math",{cbrt:function cbrt(a){return c(a=+a)*Math.pow(Math.abs(a),1/3)}})},function(a,b){a.exports=Math.sign||function sign(a){return 0==(a=+a)||a!=a?a:0>a?-1:1}},function(c,d,b){var a=b(3);a(a.S,"Math",{clz32:function clz32(a){return(a>>>=0)?31-Math.floor(Math.log(a+.5)*Math.LOG2E):32}})},function(d,e,c){var a=c(3),b=Math.exp;a(a.S,"Math",{cosh:function cosh(a){return(b(a=+a)+b(-a))/2}})},function(c,d,a){var b=a(3);b(b.S,"Math",{expm1:a(77)})},function(a,b){a.exports=Math.expm1||function expm1(a){return 0==(a=+a)?a:a>-1e-6&&1e-6>a?a+a*a/2:Math.exp(a)-1}},function(k,j,e){var f=e(3),g=e(73),a=Math.pow,d=a(2,-52),b=a(2,-23),i=a(2,127)*(2-b),c=a(2,-126),h=function(a){return a+1/d-1/d};f(f.S,"Math",{fround:function fround(k){var f,a,e=Math.abs(k),j=g(k);return c>e?j*h(e/c/b)*c*b:(f=(1+b/d)*e,a=f-(f-e),a>i||a!=a?j*(1/0):j*a)}})},function(d,e,b){var a=b(3),c=Math.abs;a(a.S,"Math",{hypot:function hypot(i,j){for(var a,b,e=0,f=0,g=arguments,h=g.length,d=0;h>f;)a=c(g[f++]),a>d?(b=d/a,e=e*b*b+1,d=a):a>0?(b=a/d,e+=b*b):e+=a;return d===1/0?1/0:d*Math.sqrt(e)}})},function(d,e,b){var a=b(3),c=Math.imul;a(a.S+a.F*b(9)(function(){return-5!=c(4294967295,5)||2!=c.length}),"Math",{imul:function imul(f,g){var a=65535,b=+f,c=+g,d=a&b,e=a&c;return 0|d*e+((a&b>>>16)*e+d*(a&c>>>16)<<16>>>0)}})},function(c,d,b){var a=b(3);a(a.S,"Math",{log10:function log10(a){return Math.log(a)/Math.LN10}})},function(c,d,a){var b=a(3);b(b.S,"Math",{log1p:a(69)})},function(c,d,b){var a=b(3);a(a.S,"Math",{log2:function log2(a){return Math.log(a)/Math.LN2}})},function(c,d,a){var b=a(3);b(b.S,"Math",{sign:a(73)})},function(e,f,a){var b=a(3),c=a(77),d=Math.exp;b(b.S+b.F*a(9)(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function sinh(a){return Math.abs(a=+a)<1?(c(a)-c(-a))/2:(d(a-1)-d(-a-1))*(Math.E/2)}})},function(e,f,a){var b=a(3),c=a(77),d=Math.exp;b(b.S,"Math",{tanh:function tanh(a){var b=c(a=+a),e=c(-a);return b==1/0?1:e==1/0?-1:(b-e)/(d(a)+d(-a))}})},function(c,d,b){var a=b(3);a(a.S,"Math",{trunc:function trunc(a){return(a>0?Math.floor:Math.ceil)(a)}})},function(f,g,b){var a=b(3),e=b(23),c=String.fromCharCode,d=String.fromCodePoint;a(a.S+a.F*(!!d&&1!=d.length),"String",{fromCodePoint:function fromCodePoint(h){for(var a,b=[],d=arguments,g=d.length,f=0;g>f;){if(a=+d[f++],e(a,1114111)!==a)throw RangeError(a+" is not a valid code point");b.push(65536>a?c(a):c(((a-=65536)>>10)+55296,a%1024+56320))}return b.join("")}})},function(e,f,a){var b=a(3),c=a(20),d=a(24);b(b.S,"String",{raw:function raw(g){for(var e=c(g.raw),h=d(e.length),f=arguments,i=f.length,b=[],a=0;h>a;)b.push(String(e[a++])),i>a&&b.push(String(f[a]));return b.join("")}})},function(b,c,a){a(91)("trim",function(a){return function trim(){return a(this,3)}})},function(g,m,b){var c=b(3),h=b(19),i=b(9),d=" \n \f\r   ᠎ â€â€‚         âŸã€€\u2028\u2029\ufeff",a="["+d+"]",f="​…",j=RegExp("^"+a+a+"*"),k=RegExp(a+a+"*$"),e=function(a,e){var b={};b[a]=e(l),c(c.P+c.F*i(function(){return!!d[a]()||f[a]()!=f}),"String",b)},l=e.trim=function(a,b){return a=String(h(a)),1&b&&(a=a.replace(j,"")),2&b&&(a=a.replace(k,"")),a};g.exports=e},function(d,e,a){var b=a(3),c=a(93)(!1);b(b.P,"String",{codePointAt:function codePointAt(a){return c(this,a)}})},function(c,f,b){var d=b(22),e=b(19);c.exports=function(b){return function(j,k){var f,h,g=String(e(j)),c=d(k),i=g.length;return 0>c||c>=i?b?"":a:(f=g.charCodeAt(c),55296>f||f>56319||c+1===i||(h=g.charCodeAt(c+1))<56320||h>57343?b?g.charAt(c):f:b?g.slice(c,c+2):(f-55296<<10)+(h-56320)+65536)}}},function(h,i,b){var c=b(3),e=b(24),g=b(95),d="endsWith",f=""[d];c(c.P+c.F*b(97)(d),"String",{endsWith:function endsWith(i){var b=g(this,i,d),j=arguments,k=j.length>1?j[1]:a,l=e(b.length),c=k===a?l:Math.min(e(k),l),h=String(i);return f?f.call(b,h,c):b.slice(c-h.length,c)===h}})},function(b,e,a){var c=a(96),d=a(19);b.exports=function(a,b,e){if(c(b))throw TypeError("String#"+e+" doesn't accept regex!");return String(d(a))}},function(c,g,b){var d=b(13),e=b(15),f=b(29)("match");c.exports=function(b){var c;return d(b)&&((c=b[f])!==a?!!c:"RegExp"==e(b))}},function(a,d,b){var c=b(29)("match");a.exports=function(b){var a=/./;try{"/./"[b](a)}catch(d){try{return a[c]=!1,!"/./"[b](a)}catch(e){}}return!0}},function(f,g,b){var c=b(3),e=b(95),d="includes";c(c.P+c.F*b(97)(d),"String",{includes:function includes(b){return!!~e(this,b,d).indexOf(b,arguments.length>1?arguments[1]:a)}})},function(c,d,a){var b=a(3);b(b.P,"String",{repeat:a(100)})},function(b,e,a){var c=a(22),d=a(19);b.exports=function repeat(f){var b=String(d(this)),e="",a=c(f);if(0>a||a==1/0)throw RangeError("Count can't be negative");for(;a>0;(a>>>=1)&&(b+=b))1&a&&(e+=b);return e}},function(h,i,b){var c=b(3),f=b(24),g=b(95),d="startsWith",e=""[d];c(c.P+c.F*b(97)(d),"String",{startsWith:function startsWith(i){var b=g(this,i,d),j=arguments,c=f(Math.min(j.length>1?j[1]:a,b.length)),h=String(i);return e?e.call(b,h,c):b.slice(c,c+h.length)===h}})},function(d,e,b){var c=b(93)(!0);b(103)(String,"String",function(a){this._t=String(a),this._i=0},function(){var b,d=this._t,e=this._i;return e>=d.length?{value:a,done:!0}:(b=c(d,e),this._i+=b.length,{value:b,done:!1})})},function(o,r,a){var i=a(39),d=a(3),n=a(33),h=a(34),m=a(14),f=a(104),q=a(105),p=a(35),l=a(2).getProto,c=a(29)("iterator"),e=!([].keys&&"next"in[].keys()),j="@@iterator",k="keys",b="values",g=function(){return this};o.exports=function(B,v,u,F,s,E,A){q(u,v,F);var r,x,w=function(c){if(!e&&c in a)return a[c];switch(c){case k:return function keys(){return new u(this,c)};case b:return function values(){return new u(this,c)}}return function entries(){return new u(this,c)}},C=v+" Iterator",y=s==b,z=!1,a=B.prototype,t=a[c]||a[j]||s&&a[s],o=t||w(s);if(t){var D=l(o.call(new B));p(D,C,!0),!i&&m(a,j)&&h(D,c,g),y&&t.name!==b&&(z=!0,o=function values(){return t.call(this)})}if(i&&!A||!e&&!z&&a[c]||h(a,c,o),f[v]=o,f[C]=g,s)if(r={values:y?o:w(b),keys:E?o:w(k),entries:y?w("entries"):o},A)for(x in r)x in a||n(a,x,r[x]);else d(d.P+d.F*(e||z),v,r);return r}},function(a,b){a.exports={}},function(c,g,a){var d=a(2),e=a(10),f=a(35),b={};a(34)(b,a(29)("iterator"),function(){return this}),c.exports=function(a,c,g){a.prototype=d.create(b,{next:e(1,g)}),f(a,c+" Iterator")}},function(j,k,b){var d=b(6),c=b(3),e=b(18),f=b(107),g=b(108),h=b(24),i=b(109);c(c.S+c.F*!b(111)(function(a){Array.from(a)}),"Array",{from:function from(t){var n,c,r,m,j=e(t),l="function"==typeof this?this:Array,p=arguments,s=p.length,k=s>1?p[1]:a,q=k!==a,b=0,o=i(j);if(q&&(k=d(k,s>2?p[2]:a,2)),o==a||l==Array&&g(o))for(n=h(j.length),c=new l(n);n>b;b++)c[b]=q?k(j[b],b):j[b];else for(m=o.call(j),c=new l;!(r=m.next()).done;b++)c[b]=q?f(m,k,[r.value,b],!0):r.value;return c.length=b,c}})},function(c,e,d){var b=d(17);c.exports=function(d,e,c,g){try{return g?e(b(c)[0],c[1]):e(c)}catch(h){var f=d["return"];throw f!==a&&b(f.call(d)),h}}},function(c,g,b){var d=b(104),e=b(29)("iterator"),f=Array.prototype;c.exports=function(b){return b!==a&&(d.Array===b||f[e]===b)}},function(c,g,b){var d=b(110),e=b(29)("iterator"),f=b(104);c.exports=b(5).getIteratorMethod=function(b){return b!=a?b[e]||b["@@iterator"]||f[d(b)]:void 0}},function(d,g,c){var b=c(15),e=c(29)("toStringTag"),f="Arguments"==b(function(){return arguments}());d.exports=function(d){var c,g,h;return d===a?"Undefined":null===d?"Null":"string"==typeof(g=(c=Object(d))[e])?g:f?b(c):"Object"==(h=b(c))&&"function"==typeof c.callee?"Arguments":h}},function(d,f,e){var a=e(29)("iterator"),b=!1;try{var c=[7][a]();c["return"]=function(){b=!0},Array.from(c,function(){throw 2})}catch(g){}d.exports=function(f,g){if(!g&&!b)return!1;var d=!1;try{var c=[7],e=c[a]();e.next=function(){return{done:d=!0}},c[a]=function(){return e},f(c)}catch(h){}return d}},function(c,d,b){var a=b(3);a(a.S+a.F*b(9)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),"Array",{of:function of(){for(var a=0,d=arguments,b=d.length,c=new("function"==typeof this?this:Array)(b);b>a;)c[a]=d[a++];return c.length=b,c}})},function(f,h,b){var d=b(114),c=b(115),e=b(104),g=b(20);f.exports=b(103)(Array,"Array",function(a,b){this._t=g(a),this._i=0,this._k=b},function(){var d=this._t,e=this._k,b=this._i++;return!d||b>=d.length?(this._t=a,c(1)):"keys"==e?c(0,b):"values"==e?c(0,d[b]):c(0,[b,d[b]])},"values"),e.Arguments=e.Array,d("keys"),d("values"),d("entries")},function(a,b){a.exports=function(){}},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(b,c,a){a(117)("Array")},function(c,g,a){var d=a(5),e=a(2),f=a(8),b=a(29)("species");c.exports=function(c){var a=d[c];f&&a&&!a[b]&&e.setDesc(a,b,{configurable:!0,get:function(){return this}})}},function(c,d,a){var b=a(3);b(b.P,"Array",{copyWithin:a(119)}),a(114)("copyWithin")},function(d,g,b){var e=b(18),c=b(23),f=b(24);d.exports=[].copyWithin||function copyWithin(m,n){var g=e(this),h=f(g.length),b=c(m,h),d=c(n,h),k=arguments,l=k.length>2?k[2]:a,i=Math.min((l===a?h:c(l,h))-d,h-b),j=1;for(b>d&&d+i>b&&(j=-1,d+=i-1,b+=i-1);i-->0;)d in g?g[b]=g[d]:delete g[b],b+=j,d+=j;return g}},function(c,d,a){var b=a(3);b(b.P,"Array",{fill:a(121)}),a(114)("fill")},function(d,g,b){var e=b(18),c=b(23),f=b(24);d.exports=[].fill||function fill(k){for(var b=e(this),d=f(b.length),g=arguments,h=g.length,i=c(h>1?g[1]:a,d),j=h>2?g[2]:a,l=j===a?d:c(j,d);l>i;)b[i++]=k;return b}},function(g,h,b){var c=b(3),f=b(26)(5),d="find",e=!0;d in[]&&Array(1)[d](function(){e=!1}),c(c.P+c.F*e,"Array",{find:function find(b){return f(this,b,arguments.length>1?arguments[1]:a)}}),b(114)(d)},function(g,h,b){var c=b(3),f=b(26)(6),d="findIndex",e=!0;d in[]&&Array(1)[d](function(){e=!1}),c(c.P+c.F*e,"Array",{findIndex:function findIndex(b){return f(this,b,arguments.length>1?arguments[1]:a)}}),b(114)(d)},function(K,J,b){var s,l=b(2),F=b(39),k=b(4),j=b(6),I=b(110),d=b(3),D=b(13),E=b(17),m=b(7),G=b(125),p=b(126),q=b(45).set,A=b(43),B=b(29)("species"),z=b(127),v=b(128),e="Promise",o=k.process,H="process"==I(o),c=k[e],i=function(){},r=function(d){var b,a=new c(i);return d&&(a.constructor=function(a){a(i,i)}),(b=c.resolve(a))["catch"](i),b===a},h=function(){function P2(b){var a=new c(b);return q(a,P2.prototype),a}var a=!1;try{if(a=c&&c.resolve&&r(),q(P2,c),P2.prototype=l.create(c.prototype,{constructor:{value:P2}}),P2.resolve(5).then(function(){})instanceof P2||(a=!1),a&&b(8)){var d=!1;c.resolve(l.setDesc({},"then",{get:function(){d=!0}})),a=d}}catch(e){a=!1}return a}(),C=function(a,b){return F&&a===c&&b===s?!0:A(a,b)},t=function(b){var c=E(b)[B];return c!=a?c:b},u=function(a){var b;return D(a)&&"function"==typeof(b=a.then)?b:!1},g=function(d){var b,c;this.promise=new d(function(d,e){if(b!==a||c!==a)throw TypeError("Bad Promise constructor");b=d,c=e}),this.resolve=m(b),this.reject=m(c)},w=function(a){try{a()}catch(b){return{error:b}}},n=function(b,d){if(!b.n){b.n=!0;var c=b.c;v(function(){for(var e=b.v,f=1==b.s,g=0,h=function(a){var c,h,g=f?a.ok:a.fail,i=a.resolve,d=a.reject;try{g?(f||(b.h=!0),c=g===!0?e:g(e),c===a.promise?d(TypeError("Promise-chain cycle")):(h=u(c))?h.call(c,i,d):i(c)):d(e)}catch(j){d(j)}};c.length>g;)h(c[g++]);c.length=0,b.n=!1,d&&setTimeout(function(){var f,c,d=b.p;y(d)&&(H?o.emit("unhandledRejection",e,d):(f=k.onunhandledrejection)?f({promise:d,reason:e}):(c=k.console)&&c.error&&c.error("Unhandled promise rejection",e)),b.a=a},1)})}},y=function(e){var a,b=e._d,c=b.a||b.c,d=0;if(b.h)return!1;for(;c.length>d;)if(a=c[d++],a.fail||!y(a.promise))return!1;return!0},f=function(b){var a=this;a.d||(a.d=!0,a=a.r||a,a.v=b,a.s=2,a.a=a.c.slice(),n(a,!0))},x=function(b){var c,a=this;if(!a.d){a.d=!0,a=a.r||a;try{if(a.p===b)throw TypeError("Promise can't be resolved itself");(c=u(b))?v(function(){var d={r:a,d:!1};try{c.call(b,j(x,d,1),j(f,d,1))}catch(e){f.call(d,e)}}):(a.v=b,a.s=1,n(a,!1))}catch(d){f.call({r:a,d:!1},d)}}};h||(c=function Promise(d){m(d);var b=this._d={p:G(this,c,e),c:[],a:a,s:0,d:!1,v:a,h:!1,n:!1};try{d(j(x,b,1),j(f,b,1))}catch(g){f.call(b,g)}},b(130)(c.prototype,{then:function then(d,e){var a=new g(z(this,c)),f=a.promise,b=this._d;return a.ok="function"==typeof d?d:!0,a.fail="function"==typeof e&&e,b.c.push(a),b.a&&b.a.push(a),b.s&&n(b,!1),f},"catch":function(b){return this.then(a,b)}})),d(d.G+d.W+d.F*!h,{Promise:c}),b(35)(c,e),b(117)(e),s=b(5)[e],d(d.S+d.F*!h,e,{reject:function reject(b){var a=new g(this),c=a.reject;return c(b),a.promise}}),d(d.S+d.F*(!h||r(!0)),e,{resolve:function resolve(a){if(a instanceof c&&C(a.constructor,this))return a;var b=new g(this),d=b.resolve;return d(a),b.promise}}),d(d.S+d.F*!(h&&b(111)(function(a){c.all(a)["catch"](function(){})})),e,{all:function all(h){var c=t(this),b=new g(c),d=b.resolve,e=b.reject,a=[],f=w(function(){p(h,!1,a.push,a);var b=a.length,f=Array(b);b?l.each.call(a,function(g,h){var a=!1;c.resolve(g).then(function(c){a||(a=!0,f[h]=c,--b||d(f))},e)}):d(f)});return f&&e(f.error),b.promise},race:function race(e){var b=t(this),a=new g(b),c=a.reject,d=w(function(){p(e,!1,function(d){b.resolve(d).then(a.resolve,c)})});return d&&c(d.error),a.promise}})},function(a,b){a.exports=function(a,b,c){if(!(a instanceof b))throw TypeError(c+": use the 'new' operator!");return a}},function(b,i,a){var c=a(6),d=a(107),e=a(108),f=a(17),g=a(24),h=a(109);b.exports=function(a,j,o,p){var n,b,k,l=h(a),m=c(o,p,j?2:1),i=0;if("function"!=typeof l)throw TypeError(a+" is not iterable!");if(e(l))for(n=g(a.length);n>i;i++)j?m(f(b=a[i])[0],b[1]):m(a[i]);else for(k=l.call(a);!(b=k.next()).done;)d(k,m,b.value,j)}},function(d,g,b){var c=b(17),e=b(7),f=b(29)("species");d.exports=function(g,h){var b,d=c(g).constructor;return d===a||(b=c(d)[f])==a?h:e(b)}},function(n,p,h){var b,f,g,c=h(4),o=h(129).set,k=c.MutationObserver||c.WebKitMutationObserver,d=c.process,i=c.Promise,j="process"==h(15)(d),e=function(){var e,c,g;for(j&&(e=d.domain)&&(d.domain=null,e.exit());b;)c=b.domain,g=b.fn,c&&c.enter(),g(),c&&c.exit(),b=b.next;f=a,e&&e.enter()};if(j)g=function(){d.nextTick(e)};else if(k){var m=1,l=document.createTextNode("");new k(e).observe(l,{characterData:!0}),g=function(){l.data=m=-m}}else g=i&&i.resolve?function(){i.resolve().then(e)}:function(){o.call(c,e)};n.exports=function asap(e){var c={fn:e,next:a,domain:j&&d.domain};f&&(f.next=c),b||(b=c,g()),f=c}},function(s,t,b){var c,g,f,k=b(6),r=b(16),n=b(11),p=b(12),a=b(4),l=a.process,h=a.setImmediate,i=a.clearImmediate,o=a.MessageChannel,j=0,d={},q="onreadystatechange",e=function(){
-var a=+this;if(d.hasOwnProperty(a)){var b=d[a];delete d[a],b()}},m=function(a){e.call(a.data)};h&&i||(h=function setImmediate(a){for(var b=[],e=1;arguments.length>e;)b.push(arguments[e++]);return d[++j]=function(){r("function"==typeof a?a:Function(a),b)},c(j),j},i=function clearImmediate(a){delete d[a]},"process"==b(15)(l)?c=function(a){l.nextTick(k(e,a,1))}:o?(g=new o,f=g.port2,g.port1.onmessage=m,c=k(f.postMessage,f,1)):a.addEventListener&&"function"==typeof postMessage&&!a.importScripts?(c=function(b){a.postMessage(b+"","*")},a.addEventListener("message",m,!1)):c=q in p("script")?function(a){n.appendChild(p("script"))[q]=function(){n.removeChild(this),e.call(a)}}:function(a){setTimeout(k(e,a,1),0)}),s.exports={set:h,clear:i}},function(a,d,b){var c=b(33);a.exports=function(a,b){for(var d in b)c(a,d,b[d]);return a}},function(d,e,c){var b=c(132);c(133)("Map",function(b){return function Map(){return b(this,arguments.length>0?arguments[0]:a)}},{get:function get(c){var a=b.getEntry(this,c);return a&&a.v},set:function set(a,c){return b.def(this,0===a?0:a,c)}},b,!0)},function(v,w,b){var j=b(2),m=b(34),o=b(130),n=b(6),p=b(125),r=b(19),t=b(126),l=b(103),d=b(115),f=b(25)("id"),k=b(14),h=b(13),q=b(117),i=b(8),s=Object.isExtensible||h,c=i?"_s":"size",u=0,g=function(a,b){if(!h(a))return"symbol"==typeof a?a:("string"==typeof a?"S":"P")+a;if(!k(a,f)){if(!s(a))return"F";if(!b)return"E";m(a,f,++u)}return"O"+a[f]},e=function(b,c){var a,d=g(c);if("F"!==d)return b._i[d];for(a=b._f;a;a=a.n)if(a.k==c)return a};v.exports={getConstructor:function(d,f,g,h){var b=d(function(d,e){p(d,b,f),d._i=j.create(null),d._f=a,d._l=a,d[c]=0,e!=a&&t(e,g,d[h],d)});return o(b.prototype,{clear:function clear(){for(var d=this,e=d._i,b=d._f;b;b=b.n)b.r=!0,b.p&&(b.p=b.p.n=a),delete e[b.i];d._f=d._l=a,d[c]=0},"delete":function(g){var b=this,a=e(b,g);if(a){var d=a.n,f=a.p;delete b._i[a.i],a.r=!0,f&&(f.n=d),d&&(d.p=f),b._f==a&&(b._f=d),b._l==a&&(b._l=f),b[c]--}return!!a},forEach:function forEach(c){for(var b,d=n(c,arguments.length>1?arguments[1]:a,3);b=b?b.n:this._f;)for(d(b.v,b.k,this);b&&b.r;)b=b.p},has:function has(a){return!!e(this,a)}}),i&&j.setDesc(b.prototype,"size",{get:function(){return r(this[c])}}),b},def:function(b,f,j){var h,i,d=e(b,f);return d?d.v=j:(b._l=d={i:i=g(f,!0),k:f,v:j,p:h=b._l,n:a,r:!1},b._f||(b._f=d),h&&(h.n=d),b[c]++,"F"!==i&&(b._i[i]=d)),b},getEntry:e,setStrong:function(e,b,c){l(e,b,function(b,c){this._t=b,this._k=c,this._l=a},function(){for(var c=this,e=c._k,b=c._l;b&&b.r;)b=b.p;return c._t&&(c._l=b=b?b.n:c._t._f)?"keys"==e?d(0,b.k):"values"==e?d(0,b.v):d(0,[b.k,b.v]):(c._t=a,d(1))},c?"entries":"values",!c,!0),q(b)}}},function(g,o,b){var d=b(2),f=b(4),c=b(3),h=b(9),e=b(34),j=b(130),k=b(126),l=b(125),m=b(13),i=b(35),n=b(8);g.exports=function(g,s,w,r,p,o){var t=f[g],b=t,u=p?"set":"add",q=b&&b.prototype,v={};return n&&"function"==typeof b&&(o||q.forEach&&!h(function(){(new b).entries().next()}))?(b=s(function(c,d){l(c,b,g),c._c=new t,d!=a&&k(d,p,c[u],c)}),d.each.call("add,clear,delete,forEach,get,has,set,keys,values,entries".split(","),function(c){var d="add"==c||"set"==c;c in q&&(!o||"clear"!=c)&&e(b.prototype,c,function(b,e){if(!d&&o&&!m(b))return"get"==c?a:!1;var f=this._c[c](0===b?0:b,e);return d?this:f})}),"size"in q&&d.setDesc(b.prototype,"size",{get:function(){return this._c.size}})):(b=r.getConstructor(s,g,p,u),j(b.prototype,w)),i(b,g),v[g]=b,c(c.G+c.W+c.F,v),o||r.setStrong(b,g,p),b}},function(d,e,b){var c=b(132);b(133)("Set",function(b){return function Set(){return b(this,arguments.length>0?arguments[0]:a)}},{add:function add(a){return c.def(this,a=0===a?0:a,a)}},c)},function(n,m,b){var l=b(2),k=b(33),c=b(136),d=b(13),j=b(14),i=c.frozenStore,h=c.WEAK,f=Object.isExtensible||d,e={},g=b(133)("WeakMap",function(b){return function WeakMap(){return b(this,arguments.length>0?arguments[0]:a)}},{get:function get(a){if(d(a)){if(!f(a))return i(this).get(a);if(j(a,h))return a[h][this._i]}},set:function set(a,b){return c.def(this,a,b)}},c,!0,!0);7!=(new g).set((Object.freeze||Object)(e),7).get(e)&&l.each.call(["delete","has","get","set"],function(a){var b=g.prototype,c=b[a];k(b,a,function(b,e){if(d(b)&&!f(b)){var g=i(this)[a](b,e);return"set"==a?this:g}return c.call(this,b,e)})})},function(s,t,b){var r=b(34),q=b(130),m=b(17),h=b(13),l=b(125),k=b(126),j=b(26),d=b(14),c=b(25)("weak"),g=Object.isExtensible||h,n=j(5),o=j(6),p=0,e=function(a){return a._l||(a._l=new i)},i=function(){this.a=[]},f=function(a,b){return n(a.a,function(a){return a[0]===b})};i.prototype={get:function(b){var a=f(this,b);return a?a[1]:void 0},has:function(a){return!!f(this,a)},set:function(a,b){var c=f(this,a);c?c[1]=b:this.a.push([a,b])},"delete":function(b){var a=o(this.a,function(a){return a[0]===b});return~a&&this.a.splice(a,1),!!~a}},s.exports={getConstructor:function(f,i,j,m){var b=f(function(c,d){l(c,b,i),c._i=p++,c._l=a,d!=a&&k(d,j,c[m],c)});return q(b.prototype,{"delete":function(a){return h(a)?g(a)?d(a,c)&&d(a[c],this._i)&&delete a[c][this._i]:e(this)["delete"](a):!1},has:function has(a){return h(a)?g(a)?d(a,c)&&d(a[c],this._i):e(this).has(a):!1}}),b},def:function(b,a,f){return g(m(a))?(d(a,c)||r(a,c,{}),a[c][b._i]=f):e(b).set(a,f),b},frozenStore:e,WEAK:c}},function(d,e,b){var c=b(136);b(133)("WeakSet",function(b){return function WeakSet(){return b(this,arguments.length>0?arguments[0]:a)}},{add:function add(a){return c.def(this,a,!0)}},c,!1,!0)},function(e,f,a){var b=a(3),c=Function.apply,d=a(17);b(b.S,"Reflect",{apply:function apply(a,b,e){return c.call(a,b,d(e))}})},function(h,i,a){var e=a(2),b=a(3),c=a(7),f=a(17),d=a(13),g=Function.bind||a(5).Function.prototype.bind;b(b.S+b.F*a(9)(function(){function F(){}return!(Reflect.construct(function(){},[],F)instanceof F)}),"Reflect",{construct:function construct(b,a){c(b),f(a);var i=arguments.length<3?b:c(arguments[2]);if(b==i){switch(a.length){case 0:return new b;case 1:return new b(a[0]);case 2:return new b(a[0],a[1]);case 3:return new b(a[0],a[1],a[2]);case 4:return new b(a[0],a[1],a[2],a[3])}var h=[null];return h.push.apply(h,a),new(g.apply(b,h))}var j=i.prototype,k=e.create(d(j)?j:Object.prototype),l=Function.apply.call(b,k,a);return d(l)?l:k}})},function(e,f,a){var c=a(2),b=a(3),d=a(17);b(b.S+b.F*a(9)(function(){Reflect.defineProperty(c.setDesc({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function defineProperty(a,b,e){d(a);try{return c.setDesc(a,b,e),!0}catch(f){return!1}}})},function(e,f,a){var b=a(3),c=a(2).getDesc,d=a(17);b(b.S,"Reflect",{deleteProperty:function deleteProperty(a,b){var e=c(d(a),b);return e&&!e.configurable?!1:delete a[b]}})},function(f,g,b){var c=b(3),e=b(17),d=function(a){this._t=e(a),this._i=0;var b,c=this._k=[];for(b in a)c.push(b)};b(105)(d,"Object",function(){var c,b=this,d=b._k;do if(b._i>=d.length)return{value:a,done:!0};while(!((c=d[b._i++])in b._t));return{value:c,done:!1}}),c(c.S,"Reflect",{enumerate:function enumerate(a){return new d(a)}})},function(h,i,b){function get(b,h){var d,j,i=arguments.length<3?b:arguments[2];return g(b)===i?b[h]:(d=c.getDesc(b,h))?e(d,"value")?d.value:d.get!==a?d.get.call(i):a:f(j=c.getProto(b))?get(j,h,i):void 0}var c=b(2),e=b(14),d=b(3),f=b(13),g=b(17);d(d.S,"Reflect",{get:get})},function(e,f,a){var c=a(2),b=a(3),d=a(17);b(b.S,"Reflect",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(a,b){return c.getDesc(d(a),b)}})},function(e,f,a){var b=a(3),c=a(2).getProto,d=a(17);b(b.S,"Reflect",{getPrototypeOf:function getPrototypeOf(a){return c(d(a))}})},function(c,d,b){var a=b(3);a(a.S,"Reflect",{has:function has(a,b){return b in a}})},function(e,f,a){var b=a(3),d=a(17),c=Object.isExtensible;b(b.S,"Reflect",{isExtensible:function isExtensible(a){return d(a),c?c(a):!0}})},function(c,d,a){var b=a(3);b(b.S,"Reflect",{ownKeys:a(149)})},function(d,f,a){var b=a(2),e=a(17),c=a(4).Reflect;d.exports=c&&c.ownKeys||function ownKeys(a){var c=b.getNames(e(a)),d=b.getSymbols;return d?c.concat(d(a)):c}},function(e,f,a){var b=a(3),d=a(17),c=Object.preventExtensions;b(b.S,"Reflect",{preventExtensions:function preventExtensions(a){d(a);try{return c&&c(a),!0}catch(b){return!1}}})},function(i,j,b){function set(j,i,k){var l,m,d=arguments.length<4?j:arguments[3],b=c.getDesc(h(j),i);if(!b){if(f(m=c.getProto(j)))return set(m,i,k,d);b=e(0)}return g(b,"value")?b.writable!==!1&&f(d)?(l=c.getDesc(d,i)||e(0),l.value=k,c.setDesc(d,i,l),!0):!1:b.set===a?!1:(b.set.call(d,k),!0)}var c=b(2),g=b(14),d=b(3),e=b(10),h=b(17),f=b(13);d(d.S,"Reflect",{set:set})},function(d,e,b){var c=b(3),a=b(45);a&&c(c.S,"Reflect",{setPrototypeOf:function setPrototypeOf(b,c){a.check(b,c);try{return a.set(b,c),!0}catch(d){return!1}}})},function(e,f,b){var c=b(3),d=b(31)(!0);c(c.P,"Array",{includes:function includes(b){return d(this,b,arguments.length>1?arguments[1]:a)}}),b(114)("includes")},function(d,e,a){var b=a(3),c=a(93)(!0);b(b.P,"String",{at:function at(a){return c(this,a)}})},function(e,f,b){var c=b(3),d=b(156);c(c.P,"String",{padLeft:function padLeft(b){return d(this,b,arguments.length>1?arguments[1]:a,!0)}})},function(c,g,b){var d=b(24),e=b(100),f=b(19);c.exports=function(l,m,i,n){var c=String(f(l)),j=c.length,g=i===a?" ":String(i),k=d(m);if(j>=k)return c;""==g&&(g=" ");var h=k-j,b=e.call(g,Math.ceil(h/g.length));return b.length>h&&(b=b.slice(0,h)),n?b+c:c+b}},function(e,f,b){var c=b(3),d=b(156);c(c.P,"String",{padRight:function padRight(b){return d(this,b,arguments.length>1?arguments[1]:a,!1)}})},function(b,c,a){a(91)("trimLeft",function(a){return function trimLeft(){return a(this,1)}})},function(b,c,a){a(91)("trimRight",function(a){return function trimRight(){return a(this,2)}})},function(d,e,a){var b=a(3),c=a(161)(/[\\^$*+?.()|[\]{}]/g,"\\$&");b(b.S,"RegExp",{escape:function escape(a){return c(a)}})},function(a,b){a.exports=function(b,a){var c=a===Object(a)?function(b){return a[b]}:a;return function(a){return String(a).replace(b,c)}}},function(g,h,a){var b=a(2),c=a(3),d=a(149),e=a(20),f=a(10);c(c.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(k){for(var a,g,h=e(k),l=b.setDesc,m=b.getDesc,i=d(h),c={},j=0;i.length>j;)g=m(h,a=i[j++]),a in c?l(c,a,f(0,g)):c[a]=g;return c}})},function(d,e,a){var b=a(3),c=a(164)(!1);b(b.S,"Object",{values:function values(a){return c(a)}})},function(c,f,a){var b=a(2),d=a(20),e=b.isEnum;c.exports=function(a){return function(j){for(var c,f=d(j),g=b.getKeys(f),k=g.length,h=0,i=[];k>h;)e.call(f,c=g[h++])&&i.push(a?[c,f[c]]:f[c]);return i}}},function(d,e,a){var b=a(3),c=a(164)(!0);b(b.S,"Object",{entries:function entries(a){return c(a)}})},function(c,d,a){var b=a(3);b(b.P,"Map",{toJSON:a(167)("Map")})},function(b,e,a){var c=a(126),d=a(110);b.exports=function(a){return function toJSON(){if(d(this)!=a)throw TypeError(a+"#toJSON isn't generic");var b=[];return c(this,!1,b.push,b),b}}},function(c,d,a){var b=a(3);b(b.P,"Set",{toJSON:a(167)("Set")})},function(d,e,b){var a=b(3),c=b(129);a(a.G+a.B,{setImmediate:c.set,clearImmediate:c.clear})},function(c,d,b){b(113);var a=b(104);a.NodeList=a.HTMLCollection=a.Array},function(i,j,a){var c=a(4),b=a(3),g=a(16),h=a(172),d=c.navigator,e=!!d&&/MSIE .\./.test(d.userAgent),f=function(a){return e?function(b,c){return a(g(h,[].slice.call(arguments,2),"function"==typeof b?b:Function(b)),c)}:a};b(b.G+b.B+b.F*e,{setTimeout:f(c.setTimeout),setInterval:f(c.setInterval)})},function(c,f,a){var d=a(173),b=a(16),e=a(7);c.exports=function(){for(var h=e(this),a=arguments.length,c=Array(a),f=0,i=d._,g=!1;a>f;)(c[f]=arguments[f++])===i&&(g=!0);return function(){var d,k=this,f=arguments,l=f.length,e=0,j=0;if(!g&&!l)return b(h,c,k);if(d=c.slice(),g)for(;a>e;e++)d[e]===i&&(d[e]=f[j++]);for(;l>j;)d.push(f[j++]);return b(h,d,k)}}},function(a,c,b){a.exports=b(5)},function(x,w,b){function Dict(b){var c=f.create(null);return b!=a&&(r(b)?q(b,!0,function(a,b){c[a]=b}):o(c,b)),c}function reduce(g,h,l){p(h);var a,c,b=i(g),e=k(b),j=e.length,f=0;if(arguments.length<3){if(!j)throw TypeError("Reduce of empty object with no initial value");a=b[e[f++]]}else a=Object(l);for(;j>f;)d(b,c=e[f++])&&(a=h(a,b[c],c,g));return a}function includes(c,b){return(b==b?j(c,b):l(c,function(a){return a!=a}))!==a}function get(a,b){return d(a,b)?a[b]:void 0}function set(a,b,c){return v&&b in Object?f.setDesc(a,b,t(0,c)):a[b]=c,a}function isDict(a){return u(a)&&f.getProto(a)===Dict.prototype}var f=b(2),n=b(6),e=b(3),t=b(10),o=b(41),j=b(36),p=b(7),q=b(126),r=b(175),s=b(105),g=b(115),u=b(13),i=b(20),v=b(8),d=b(14),k=f.getKeys,c=function(b){var e=1==b,c=4==b;return function(l,m,o){var f,h,g,p=n(m,o,3),k=i(l),j=e||7==b||2==b?new("function"==typeof this?this:Dict):a;for(f in k)if(d(k,f)&&(h=k[f],g=p(h,f,l),b))if(e)j[f]=g;else if(g)switch(b){case 2:j[f]=h;break;case 3:return!0;case 5:return h;case 6:return f;case 7:j[g[0]]=g[1]}else if(c)return!1;return 3==b||c?c:j}},l=c(6),h=function(a){return function(b){return new m(b,a)}},m=function(a,b){this._t=i(a),this._a=k(a),this._i=0,this._k=b};s(m,"Dict",function(){var c,b=this,e=b._t,f=b._a,h=b._k;do if(b._i>=f.length)return b._t=a,g(1);while(!d(e,c=f[b._i++]));return"keys"==h?g(0,c):"values"==h?g(0,e[c]):g(0,[c,e[c]])}),Dict.prototype=null,e(e.G+e.F,{Dict:Dict}),e(e.S,"Dict",{keys:h("keys"),values:h("values"),entries:h("entries"),forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findKey:l,mapPairs:c(7),reduce:reduce,keyOf:j,includes:includes,has:d,get:get,set:set,isDict:isDict})},function(c,g,b){var d=b(110),e=b(29)("iterator"),f=b(104);c.exports=b(5).isIterable=function(c){var b=Object(c);return b[e]!==a||"@@iterator"in b||f.hasOwnProperty(d(b))}},function(b,e,a){var c=a(17),d=a(109);b.exports=a(5).getIterator=function(a){var b=d(a);if("function"!=typeof b)throw TypeError(a+" is not iterable!");return c(b.call(a))}},function(f,g,a){var c=a(4),d=a(5),b=a(3),e=a(172);b(b.G+b.F,{delay:function delay(a){return new(d.Promise||c.Promise)(function(b){setTimeout(e.call(b,!0),a)})}})},function(d,e,a){var c=a(173),b=a(3);a(5)._=c._=c._||{},b(b.P+b.F,"Function",{part:a(172)})},function(c,d,b){var a=b(3);a(a.S+a.F,"Object",{isObject:b(13)})},function(c,d,b){var a=b(3);a(a.S+a.F,"Object",{classof:b(110)})},function(d,e,b){var a=b(3),c=b(182);a(a.S+a.F,"Object",{define:c})},function(c,f,a){var b=a(2),d=a(149),e=a(20);c.exports=function define(a,c){for(var f,g=d(e(c)),i=g.length,h=0;i>h;)b.setDesc(a,f=g[h++],b.getDesc(c,f));return a}},function(e,f,a){var b=a(3),c=a(182),d=a(2).create;b(b.S+b.F,"Object",{make:function(a,b){return c(d(a),b)}})},function(c,d,b){b(103)(Number,"Number",function(a){this._l=+a,this._i=0},function(){var b=this._i++,c=!(this._l>b);return{done:c,value:c?a:b}})},function(d,e,b){var a=b(3),c=b(161)(/[&<>"']/g,{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&apos;"});a(a.P+a.F,"String",{escapeHTML:function escapeHTML(){return c(this)}})},function(d,e,b){var a=b(3),c=b(161)(/&(?:amp|lt|gt|quot|apos);/g,{"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&apos;":"'"});a(a.P+a.F,"String",{unescapeHTML:function unescapeHTML(){return c(this)}})},function(g,h,a){var e=a(2),f=a(4),b=a(3),c={},d=!0;e.each.call("assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,isIndependentlyComposed,log,markTimeline,profile,profileEnd,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn".split(","),function(a){c[a]=function(){var b=f.console;return d&&b&&b[a]?Function.apply.call(b[a],b,arguments):void 0}}),b(b.G+b.F,{log:a(41)(c.log,c,{enable:function(){d=!0},disable:function(){d=!1}})})},function(i,j,b){var g=b(2),e=b(3),h=b(6),f=b(5).Array||Array,c={},d=function(d,b){g.each.call(d.split(","),function(d){b==a&&d in f?c[d]=f[d]:d in[]&&(c[d]=h(Function.call,[][d],b))})};d("pop,reverse,shift,keys,values,entries",1),d("indexOf,every,some,forEach,map,filter,find,findIndex,includes",3),d("join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill"),e(e.S,"Array",c)}]),"undefined"!=typeof module&&module.exports?module.exports=b:"function"==typeof define&&define.amd?define(function(){return b}):c.core=b}(1,1);
+!function(a,b,c){"use strict";!function(a){function __webpack_require__(c){if(b[c])return b[c].exports;var d=b[c]={exports:{},id:c,loaded:!1};return a[c].call(d.exports,d,d.exports,__webpack_require__),d.loaded=!0,d.exports}var b={};return __webpack_require__.m=a,__webpack_require__.c=b,__webpack_require__.p="",__webpack_require__(0)}([function(a,b,c){c(1),c(50),c(51),c(52),c(54),c(55),c(58),c(59),c(60),c(61),c(62),c(63),c(64),c(65),c(66),c(68),c(70),c(72),c(75),c(76),c(79),c(80),c(81),c(82),c(84),c(85),c(86),c(87),c(88),c(92),c(94),c(95),c(96),c(98),c(99),c(100),c(102),c(103),c(104),c(106),c(107),c(108),c(109),c(110),c(111),c(112),c(113),c(114),c(115),c(116),c(117),c(118),c(119),c(121),c(125),c(126),c(127),c(128),c(132),c(134),c(135),c(136),c(137),c(138),c(139),c(140),c(141),c(142),c(143),c(144),c(145),c(146),c(147),c(154),c(155),c(157),c(158),c(159),c(163),c(164),c(165),c(166),c(167),c(169),c(170),c(171),c(172),c(175),c(177),c(178),c(179),c(181),c(183),c(190),c(193),c(194),c(196),c(197),c(198),c(199),c(200),c(201),c(202),c(203),c(204),c(205),c(206),c(207),c(209),c(210),c(211),c(212),c(213),c(214),c(215),c(218),c(219),c(221),c(222),c(223),c(224),c(225),c(226),c(227),c(228),c(229),c(230),c(231),c(233),c(234),c(235),c(236),c(238),c(239),c(240),c(241),c(243),c(244),c(246),c(247),c(248),c(249),c(252),c(253),c(254),c(255),c(256),c(257),c(258),c(259),c(261),c(262),c(263),c(264),c(265),c(266),c(267),c(268),c(269),c(270),c(271),c(272),c(273),c(276),c(151),c(278),c(277),c(279),c(280),c(281),c(282),c(283),c(285),c(286),c(287),c(289),a.exports=c(290)},function(a,b,d){var e=d(2),f=d(3),g=d(4),h=d(6),i=d(18),j=d(19).KEY,k=d(5),l=d(21),m=d(22),n=d(20),o=d(23),p=d(24),q=d(25),r=d(27),s=d(40),t=d(43),u=d(12),v=d(30),w=d(16),x=d(17),y=d(44),z=d(47),A=d(49),B=d(11),C=d(28),D=A.f,E=B.f,F=z.f,G=e.Symbol,H=e.JSON,I=H&&H.stringify,J="prototype",K=o("_hidden"),L=o("toPrimitive"),M={}.propertyIsEnumerable,N=l("symbol-registry"),O=l("symbols"),P=l("op-symbols"),Q=Object[J],R="function"==typeof G,S=e.QObject,T=!S||!S[J]||!S[J].findChild,U=g&&k(function(){return 7!=y(E({},"a",{get:function(){return E(this,"a",{value:7}).a}})).a})?function(a,b,c){var d=D(Q,b);d&&delete Q[b],E(a,b,c),d&&a!==Q&&E(Q,b,d)}:E,V=function(a){var b=O[a]=y(G[J]);return b._k=a,b},W=R&&"symbol"==typeof G.iterator?function(a){return"symbol"==typeof a}:function(a){return a instanceof G},X=function defineProperty(a,b,c){return a===Q&&X(P,b,c),u(a),b=w(b,!0),u(c),f(O,b)?(c.enumerable?(f(a,K)&&a[K][b]&&(a[K][b]=!1),c=y(c,{enumerable:x(0,!1)})):(f(a,K)||E(a,K,x(1,{})),a[K][b]=!0),U(a,b,c)):E(a,b,c)},Y=function defineProperties(a,b){u(a);for(var c,d=s(b=v(b)),e=0,f=d.length;f>e;)X(a,c=d[e++],b[c]);return a},Z=function create(a,b){return b===c?y(a):Y(y(a),b)},$=function propertyIsEnumerable(a){var b=M.call(this,a=w(a,!0));return!(this===Q&&f(O,a)&&!f(P,a))&&(!(b||!f(this,a)||!f(O,a)||f(this,K)&&this[K][a])||b)},_=function getOwnPropertyDescriptor(a,b){if(a=v(a),b=w(b,!0),a!==Q||!f(O,b)||f(P,b)){var c=D(a,b);return!c||!f(O,b)||f(a,K)&&a[K][b]||(c.enumerable=!0),c}},aa=function getOwnPropertyNames(a){for(var b,c=F(v(a)),d=[],e=0;c.length>e;)f(O,b=c[e++])||b==K||b==j||d.push(b);return d},ba=function getOwnPropertySymbols(a){for(var b,c=a===Q,d=F(c?P:v(a)),e=[],g=0;d.length>g;)!f(O,b=d[g++])||c&&!f(Q,b)||e.push(O[b]);return e};R||(G=function Symbol(){if(this instanceof G)throw TypeError("Symbol is not a constructor!");var a=n(arguments.length>0?arguments[0]:c),b=function(c){this===Q&&b.call(P,c),f(this,K)&&f(this[K],a)&&(this[K][a]=!1),U(this,a,x(1,c))};return g&&T&&U(Q,a,{configurable:!0,set:b}),V(a)},i(G[J],"toString",function toString(){return this._k}),A.f=_,B.f=X,d(48).f=z.f=aa,d(42).f=$,d(41).f=ba,g&&!d(26)&&i(Q,"propertyIsEnumerable",$,!0),p.f=function(a){return V(o(a))}),h(h.G+h.W+h.F*!R,{Symbol:G});for(var ca="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),da=0;ca.length>da;)o(ca[da++]);for(var ca=C(o.store),da=0;ca.length>da;)q(ca[da++]);h(h.S+h.F*!R,"Symbol",{"for":function(a){return f(N,a+="")?N[a]:N[a]=G(a)},keyFor:function keyFor(a){if(W(a))return r(N,a);throw TypeError(a+" is not a symbol!")},useSetter:function(){T=!0},useSimple:function(){T=!1}}),h(h.S+h.F*!R,"Object",{create:Z,defineProperty:X,defineProperties:Y,getOwnPropertyDescriptor:_,getOwnPropertyNames:aa,getOwnPropertySymbols:ba}),H&&h(h.S+h.F*(!R||k(function(){var a=G();return"[null]"!=I([a])||"{}"!=I({a:a})||"{}"!=I(Object(a))})),"JSON",{stringify:function stringify(a){if(a!==c&&!W(a)){for(var b,d,e=[a],f=1;arguments.length>f;)e.push(arguments[f++]);return b=e[1],"function"==typeof b&&(d=b),!d&&t(b)||(b=function(a,b){if(d&&(b=d.call(this,a,b)),!W(b))return b}),e[1]=b,I.apply(H,e)}}}),G[J][L]||d(10)(G[J],L,G[J].valueOf),m(G,"Symbol"),m(Math,"Math",!0),m(e.JSON,"JSON",!0)},function(a,c){var d=a.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof b&&(b=d)},function(a,b){var c={}.hasOwnProperty;a.exports=function(a,b){return c.call(a,b)}},function(a,b,c){a.exports=!c(5)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b){a.exports=function(a){try{return!!a()}catch(b){return!0}}},function(a,b,d){var e=d(2),f=d(7),g=d(8),h=d(10),i="prototype",j=function(a,b,d){var k,l,m,n=a&j.F,o=a&j.G,p=a&j.S,q=a&j.P,r=a&j.B,s=a&j.W,t=o?f:f[b]||(f[b]={}),u=t[i],v=o?e:p?e[b]:(e[b]||{})[i];o&&(d=b);for(k in d)l=!n&&v&&v[k]!==c,l&&k in t||(m=l?v[k]:d[k],t[k]=o&&"function"!=typeof v[k]?d[k]:r&&l?g(m,e):s&&v[k]==m?function(a){var b=function(b,c,d){if(this instanceof a){switch(arguments.length){case 0:return new a;case 1:return new a(b);case 2:return new a(b,c)}return new a(b,c,d)}return a.apply(this,arguments)};return b[i]=a[i],b}(m):q&&"function"==typeof m?g(Function.call,m):m,q&&((t.virtual||(t.virtual={}))[k]=m,a&j.R&&u&&!u[k]&&h(u,k,m)))};j.F=1,j.G=2,j.S=4,j.P=8,j.B=16,j.W=32,j.U=64,j.R=128,a.exports=j},function(b,c){var d=b.exports={version:"2.4.0"};"number"==typeof a&&(a=d)},function(a,b,d){var e=d(9);a.exports=function(a,b,d){if(e(a),b===c)return a;switch(d){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,b,c){var d=c(11),e=c(17);a.exports=c(4)?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},function(a,b,c){var d=c(12),e=c(14),f=c(16),g=Object.defineProperty;b.f=c(4)?Object.defineProperty:function defineProperty(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(h){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(a[b]=c.value),a}},function(a,b,c){var d=c(13);a.exports=function(a){if(!d(a))throw TypeError(a+" is not an object!");return a}},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,b,c){a.exports=!c(4)&&!c(5)(function(){return 7!=Object.defineProperty(c(15)("div"),"a",{get:function(){return 7}}).a})},function(a,b,c){var d=c(13),e=c(2).document,f=d(e)&&d(e.createElement);a.exports=function(a){return f?e.createElement(a):{}}},function(a,b,c){var d=c(13);a.exports=function(a,b){if(!d(a))return a;var c,e;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;if("function"==typeof(c=a.valueOf)&&!d(e=c.call(a)))return e;if(!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,b,c){a.exports=c(10)},function(a,b,c){var d=c(20)("meta"),e=c(13),f=c(3),g=c(11).f,h=0,i=Object.isExtensible||function(){return!0},j=!c(5)(function(){return i(Object.preventExtensions({}))}),k=function(a){g(a,d,{value:{i:"O"+ ++h,w:{}}})},l=function(a,b){if(!e(a))return"symbol"==typeof a?a:("string"==typeof a?"S":"P")+a;if(!f(a,d)){if(!i(a))return"F";if(!b)return"E";k(a)}return a[d].i},m=function(a,b){if(!f(a,d)){if(!i(a))return!0;if(!b)return!1;k(a)}return a[d].w},n=function(a){return j&&o.NEED&&i(a)&&!f(a,d)&&k(a),a},o=a.exports={KEY:d,NEED:!1,fastKey:l,getWeak:m,onFreeze:n}},function(a,b){var d=0,e=Math.random();a.exports=function(a){return"Symbol(".concat(a===c?"":a,")_",(++d+e).toString(36))}},function(a,b,c){var d=c(2),e="__core-js_shared__",f=d[e]||(d[e]={});a.exports=function(a){return f[a]||(f[a]={})}},function(a,b,c){var d=c(11).f,e=c(3),f=c(23)("toStringTag");a.exports=function(a,b,c){a&&!e(a=c?a:a.prototype,f)&&d(a,f,{configurable:!0,value:b})}},function(a,b,c){var d=c(21)("wks"),e=c(20),f=c(2).Symbol,g="function"==typeof f,h=a.exports=function(a){return d[a]||(d[a]=g&&f[a]||(g?f:e)("Symbol."+a))};h.store=d},function(a,b,c){b.f=c(23)},function(a,b,c){var d=c(2),e=c(7),f=c(26),g=c(24),h=c(11).f;a.exports=function(a){var b=e.Symbol||(e.Symbol=f?{}:d.Symbol||{});"_"==a.charAt(0)||a in b||h(b,a,{value:g.f(a)})}},function(a,b){a.exports=!0},function(a,b,c){var d=c(28),e=c(30);a.exports=function(a,b){for(var c,f=e(a),g=d(f),h=g.length,i=0;h>i;)if(f[c=g[i++]]===b)return c}},function(a,b,c){var d=c(29),e=c(39);a.exports=Object.keys||function keys(a){return d(a,e)}},function(a,b,c){var d=c(3),e=c(30),f=c(34)(!1),g=c(38)("IE_PROTO");a.exports=function(a,b){var c,h=e(a),i=0,j=[];for(c in h)c!=g&&d(h,c)&&j.push(c);for(;b.length>i;)d(h,c=b[i++])&&(~f(j,c)||j.push(c));return j}},function(a,b,c){var d=c(31),e=c(33);a.exports=function(a){return d(e(a))}},function(a,b,c){var d=c(32);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return"String"==d(a)?a.split(""):Object(a)}},function(a,b){var c={}.toString;a.exports=function(a){return c.call(a).slice(8,-1)}},function(a,b){a.exports=function(a){if(a==c)throw TypeError("Can't call method on "+a);return a}},function(a,b,c){var d=c(30),e=c(35),f=c(37);a.exports=function(a){return function(b,c,g){var h,i=d(b),j=e(i.length),k=f(g,j);if(a&&c!=c){for(;j>k;)if(h=i[k++],h!=h)return!0}else for(;j>k;k++)if((a||k in i)&&i[k]===c)return a||k||0;return!a&&-1}}},function(a,b,c){var d=c(36),e=Math.min;a.exports=function(a){return a>0?e(d(a),9007199254740991):0}},function(a,b){var c=Math.ceil,d=Math.floor;a.exports=function(a){return isNaN(a=+a)?0:(a>0?d:c)(a)}},function(a,b,c){var d=c(36),e=Math.max,f=Math.min;a.exports=function(a,b){return a=d(a),a<0?e(a+b,0):f(a,b)}},function(a,b,c){var d=c(21)("keys"),e=c(20);a.exports=function(a){return d[a]||(d[a]=e(a))}},function(a,b){a.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(a,b,c){var d=c(28),e=c(41),f=c(42);a.exports=function(a){var b=d(a),c=e.f;if(c)for(var g,h=c(a),i=f.f,j=0;h.length>j;)i.call(a,g=h[j++])&&b.push(g);return b}},function(a,b){b.f=Object.getOwnPropertySymbols},function(a,b){b.f={}.propertyIsEnumerable},function(a,b,c){var d=c(32);a.exports=Array.isArray||function isArray(a){return"Array"==d(a)}},function(a,b,d){var e=d(12),f=d(45),g=d(39),h=d(38)("IE_PROTO"),i=function(){},j="prototype",k=function(){var a,b=d(15)("iframe"),c=g.length,e="<",f=">";for(b.style.display="none",d(46).appendChild(b),b.src="javascript:",a=b.contentWindow.document,a.open(),a.write(e+"script"+f+"document.F=Object"+e+"/script"+f),a.close(),k=a.F;c--;)delete k[j][g[c]];return k()};a.exports=Object.create||function create(a,b){var d;return null!==a?(i[j]=e(a),d=new i,i[j]=null,d[h]=a):d=k(),b===c?d:f(d,b)}},function(a,b,c){var d=c(11),e=c(12),f=c(28);a.exports=c(4)?Object.defineProperties:function defineProperties(a,b){e(a);for(var c,g=f(b),h=g.length,i=0;h>i;)d.f(a,c=g[i++],b[c]);return a}},function(a,b,c){a.exports=c(2).document&&document.documentElement},function(a,b,c){var d=c(30),e=c(48).f,f={}.toString,g="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],h=function(a){try{return e(a)}catch(b){return g.slice()}};a.exports.f=function getOwnPropertyNames(a){return g&&"[object Window]"==f.call(a)?h(a):e(d(a))}},function(a,b,c){var d=c(29),e=c(39).concat("length","prototype");b.f=Object.getOwnPropertyNames||function getOwnPropertyNames(a){return d(a,e)}},function(a,b,c){var d=c(42),e=c(17),f=c(30),g=c(16),h=c(3),i=c(14),j=Object.getOwnPropertyDescriptor;b.f=c(4)?j:function getOwnPropertyDescriptor(a,b){if(a=f(a),b=g(b,!0),i)try{return j(a,b)}catch(c){}if(h(a,b))return e(!d.f.call(a,b),a[b])}},function(a,b,c){var d=c(6);d(d.S+d.F*!c(4),"Object",{defineProperty:c(11).f})},function(a,b,c){var d=c(6);d(d.S+d.F*!c(4),"Object",{defineProperties:c(45)})},function(a,b,c){var d=c(30),e=c(49).f;c(53)("getOwnPropertyDescriptor",function(){return function getOwnPropertyDescriptor(a,b){return e(d(a),b)}})},function(a,b,c){var d=c(6),e=c(7),f=c(5);a.exports=function(a,b){var c=(e.Object||{})[a]||Object[a],g={};g[a]=b(c),d(d.S+d.F*f(function(){c(1)}),"Object",g)}},function(a,b,c){var d=c(6);d(d.S,"Object",{create:c(44)})},function(a,b,c){var d=c(56),e=c(57);c(53)("getPrototypeOf",function(){return function getPrototypeOf(a){return e(d(a))}})},function(a,b,c){var d=c(33);a.exports=function(a){return Object(d(a))}},function(a,b,c){var d=c(3),e=c(56),f=c(38)("IE_PROTO"),g=Object.prototype;a.exports=Object.getPrototypeOf||function(a){return a=e(a),d(a,f)?a[f]:"function"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?g:null}},function(a,b,c){var d=c(56),e=c(28);c(53)("keys",function(){return function keys(a){return e(d(a))}})},function(a,b,c){c(53)("getOwnPropertyNames",function(){return c(47).f})},function(a,b,c){var d=c(13),e=c(19).onFreeze;c(53)("freeze",function(a){return function freeze(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(13),e=c(19).onFreeze;c(53)("seal",function(a){return function seal(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(13),e=c(19).onFreeze;c(53)("preventExtensions",function(a){return function preventExtensions(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(13);c(53)("isFrozen",function(a){return function isFrozen(b){return!d(b)||!!a&&a(b)}})},function(a,b,c){var d=c(13);c(53)("isSealed",function(a){return function isSealed(b){return!d(b)||!!a&&a(b)}})},function(a,b,c){var d=c(13);c(53)("isExtensible",function(a){return function isExtensible(b){return!!d(b)&&(!a||a(b))}})},function(a,b,c){var d=c(6);d(d.S+d.F,"Object",{assign:c(67)})},function(a,b,c){var d=c(28),e=c(41),f=c(42),g=c(56),h=c(31),i=Object.assign;a.exports=!i||c(5)(function(){var a={},b={},c=Symbol(),d="abcdefghijklmnopqrst";return a[c]=7,d.split("").forEach(function(a){b[a]=a}),7!=i({},a)[c]||Object.keys(i({},b)).join("")!=d})?function assign(a,b){for(var c=g(a),i=arguments.length,j=1,k=e.f,l=f.f;i>j;)for(var m,n=h(arguments[j++]),o=k?d(n).concat(k(n)):d(n),p=o.length,q=0;p>q;)l.call(n,m=o[q++])&&(c[m]=n[m]);return c}:i},function(a,b,c){var d=c(6);d(d.S,"Object",{is:c(69)})},function(a,b){a.exports=Object.is||function is(a,b){return a===b?0!==a||1/a===1/b:a!=a&&b!=b}},function(a,b,c){var d=c(6);d(d.S,"Object",{setPrototypeOf:c(71).set})},function(a,b,d){var e=d(13),f=d(12),g=function(a,b){if(f(a),!e(b)&&null!==b)throw TypeError(b+": can't set as prototype!")};a.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(a,b,c){try{c=d(8)(Function.call,d(49).f(Object.prototype,"__proto__").set,2),c(a,[]),b=!(a instanceof Array)}catch(e){b=!0}return function setPrototypeOf(a,d){return g(a,d),b?a.__proto__=d:c(a,d),a}}({},!1):c),check:g}},function(a,b,c){var d=c(6);d(d.P,"Function",{bind:c(73)})},function(a,b,c){var d=c(9),e=c(13),f=c(74),g=[].slice,h={},i=function(a,b,c){if(!(b in h)){for(var d=[],e=0;e<b;e++)d[e]="a["+e+"]";h[b]=Function("F,a","return new F("+d.join(",")+")")}return h[b](a,c)};a.exports=Function.bind||function bind(a){var b=d(this),c=g.call(arguments,1),h=function(){var d=c.concat(g.call(arguments));return this instanceof h?i(b,d.length,d):f(b,d,a)};return e(b.prototype)&&(h.prototype=b.prototype),h}},function(a,b){a.exports=function(a,b,d){var e=d===c;switch(b.length){case 0:return e?a():a.call(d);case 1:return e?a(b[0]):a.call(d,b[0]);case 2:return e?a(b[0],b[1]):a.call(d,b[0],b[1]);case 3:return e?a(b[0],b[1],b[2]):a.call(d,b[0],b[1],b[2]);case 4:return e?a(b[0],b[1],b[2],b[3]):a.call(d,b[0],b[1],b[2],b[3])}return a.apply(d,b)}},function(a,b,c){var d=c(13),e=c(57),f=c(23)("hasInstance"),g=Function.prototype;f in g||c(11).f(g,f,{value:function(a){if("function"!=typeof this||!d(a))return!1;if(!d(this.prototype))return a instanceof this;for(;a=e(a);)if(this.prototype===a)return!0;return!1}})},function(a,b,c){var d=c(6),e=c(36),f=c(77),g=c(78),h=1..toFixed,i=Math.floor,j=[0,0,0,0,0,0],k="Number.toFixed: incorrect invocation!",l="0",m=function(a,b){for(var c=-1,d=b;++c<6;)d+=a*j[c],j[c]=d%1e7,d=i(d/1e7)},n=function(a){for(var b=6,c=0;--b>=0;)c+=j[b],j[b]=i(c/a),c=c%a*1e7},o=function(){for(var a=6,b="";--a>=0;)if(""!==b||0===a||0!==j[a]){var c=String(j[a]);b=""===b?c:b+g.call(l,7-c.length)+c}return b},p=function(a,b,c){return 0===b?c:b%2===1?p(a,b-1,c*a):p(a*a,b/2,c)},q=function(a){for(var b=0,c=a;c>=4096;)b+=12,c/=4096;for(;c>=2;)b+=1,c/=2;return b};d(d.P+d.F*(!!h&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!c(5)(function(){h.call({})})),"Number",{toFixed:function toFixed(a){var b,c,d,h,i=f(this,k),j=e(a),r="",s=l;if(j<0||j>20)throw RangeError(k);if(i!=i)return"NaN";if(i<=-1e21||i>=1e21)return String(i);if(i<0&&(r="-",i=-i),i>1e-21)if(b=q(i*p(2,69,1))-69,c=b<0?i*p(2,-b,1):i/p(2,b,1),c*=4503599627370496,b=52-b,b>0){for(m(0,c),d=j;d>=7;)m(1e7,0),d-=7;for(m(p(10,d,1),0),d=b-1;d>=23;)n(1<<23),d-=23;n(1<<d),m(1,1),n(2),s=o()}else m(0,c),m(1<<-b,0),s=o()+g.call(l,j);return j>0?(h=s.length,s=r+(h<=j?"0."+g.call(l,j-h)+s:s.slice(0,h-j)+"."+s.slice(h-j))):s=r+s,s}})},function(a,b,c){var d=c(32);a.exports=function(a,b){if("number"!=typeof a&&"Number"!=d(a))throw TypeError(b);return+a}},function(a,b,c){var d=c(36),e=c(33);a.exports=function repeat(a){var b=String(e(this)),c="",f=d(a);if(f<0||f==1/0)throw RangeError("Count can't be negative");for(;f>0;(f>>>=1)&&(b+=b))1&f&&(c+=b);return c}},function(a,b,d){var e=d(6),f=d(5),g=d(77),h=1..toPrecision;e(e.P+e.F*(f(function(){return"1"!==h.call(1,c)})||!f(function(){h.call({})})),"Number",{toPrecision:function toPrecision(a){var b=g(this,"Number#toPrecision: incorrect invocation!");return a===c?h.call(b):h.call(b,a)}})},function(a,b,c){var d=c(6);d(d.S,"Number",{EPSILON:Math.pow(2,-52)})},function(a,b,c){var d=c(6),e=c(2).isFinite;d(d.S,"Number",{isFinite:function isFinite(a){return"number"==typeof a&&e(a)}})},function(a,b,c){var d=c(6);d(d.S,"Number",{isInteger:c(83)})},function(a,b,c){var d=c(13),e=Math.floor;a.exports=function isInteger(a){return!d(a)&&isFinite(a)&&e(a)===a}},function(a,b,c){var d=c(6);d(d.S,"Number",{isNaN:function isNaN(a){return a!=a}})},function(a,b,c){var d=c(6),e=c(83),f=Math.abs;d(d.S,"Number",{isSafeInteger:function isSafeInteger(a){return e(a)&&f(a)<=9007199254740991}})},function(a,b,c){var d=c(6);d(d.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(a,b,c){var d=c(6);d(d.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(a,b,c){var d=c(6),e=c(89);d(d.S+d.F*(Number.parseFloat!=e),"Number",{parseFloat:e})},function(a,b,c){var d=c(2).parseFloat,e=c(90).trim;a.exports=1/d(c(91)+"-0")!==-(1/0)?function parseFloat(a){var b=e(String(a),3),c=d(b);return 0===c&&"-"==b.charAt(0)?-0:c}:d},function(a,b,c){var d=c(6),e=c(33),f=c(5),g=c(91),h="["+g+"]",i="​…",j=RegExp("^"+h+h+"*"),k=RegExp(h+h+"*$"),l=function(a,b,c){var e={},h=f(function(){return!!g[a]()||i[a]()!=i}),j=e[a]=h?b(m):g[a];c&&(e[c]=j),d(d.P+d.F*h,"String",e)},m=l.trim=function(a,b){return a=String(e(a)),1&b&&(a=a.replace(j,"")),2&b&&(a=a.replace(k,"")),a};a.exports=l},function(a,b){a.exports="\t\n\x0B\f\r   ᠎ â€â€‚         âŸã€€\u2028\u2029\ufeff"},function(a,b,c){var d=c(6),e=c(93);d(d.S+d.F*(Number.parseInt!=e),"Number",{parseInt:e})},function(a,b,c){var d=c(2).parseInt,e=c(90).trim,f=c(91),g=/^[\-+]?0[xX]/;a.exports=8!==d(f+"08")||22!==d(f+"0x16")?function parseInt(a,b){var c=e(String(a),3);return d(c,b>>>0||(g.test(c)?16:10))}:d},function(a,b,c){var d=c(6),e=c(93);d(d.G+d.F*(parseInt!=e),{parseInt:e})},function(a,b,c){var d=c(6),e=c(89);d(d.G+d.F*(parseFloat!=e),{parseFloat:e})},function(a,b,c){var d=c(6),e=c(97),f=Math.sqrt,g=Math.acosh;d(d.S+d.F*!(g&&710==Math.floor(g(Number.MAX_VALUE))&&g(1/0)==1/0),"Math",{acosh:function acosh(a){return(a=+a)<1?NaN:a>94906265.62425156?Math.log(a)+Math.LN2:e(a-1+f(a-1)*f(a+1))}})},function(a,b){a.exports=Math.log1p||function log1p(a){return(a=+a)>-1e-8&&a<1e-8?a-a*a/2:Math.log(1+a)}},function(a,b,c){function asinh(a){return isFinite(a=+a)&&0!=a?a<0?-asinh(-a):Math.log(a+Math.sqrt(a*a+1)):a}var d=c(6),e=Math.asinh;d(d.S+d.F*!(e&&1/e(0)>0),"Math",{asinh:asinh})},function(a,b,c){var d=c(6),e=Math.atanh;d(d.S+d.F*!(e&&1/e(-0)<0),"Math",{atanh:function atanh(a){return 0==(a=+a)?a:Math.log((1+a)/(1-a))/2}})},function(a,b,c){var d=c(6),e=c(101);d(d.S,"Math",{cbrt:function cbrt(a){return e(a=+a)*Math.pow(Math.abs(a),1/3)}})},function(a,b){a.exports=Math.sign||function sign(a){return 0==(a=+a)||a!=a?a:a<0?-1:1}},function(a,b,c){var d=c(6);d(d.S,"Math",{clz32:function clz32(a){return(a>>>=0)?31-Math.floor(Math.log(a+.5)*Math.LOG2E):32}})},function(a,b,c){var d=c(6),e=Math.exp;d(d.S,"Math",{cosh:function cosh(a){return(e(a=+a)+e(-a))/2}})},function(a,b,c){var d=c(6),e=c(105);d(d.S+d.F*(e!=Math.expm1),"Math",{expm1:e})},function(a,b){var c=Math.expm1;a.exports=!c||c(10)>22025.465794806718||c(10)<22025.465794806718||c(-2e-17)!=-2e-17?function expm1(a){return 0==(a=+a)?a:a>-1e-6&&a<1e-6?a+a*a/2:Math.exp(a)-1}:c},function(a,b,c){var d=c(6),e=c(101),f=Math.pow,g=f(2,-52),h=f(2,-23),i=f(2,127)*(2-h),j=f(2,-126),k=function(a){return a+1/g-1/g};d(d.S,"Math",{fround:function fround(a){var b,c,d=Math.abs(a),f=e(a);return d<j?f*k(d/j/h)*j*h:(b=(1+h/g)*d,c=b-(b-d),c>i||c!=c?f*(1/0):f*c)}})},function(a,b,c){var d=c(6),e=Math.abs;d(d.S,"Math",{hypot:function hypot(a,b){for(var c,d,f=0,g=0,h=arguments.length,i=0;g<h;)c=e(arguments[g++]),i<c?(d=i/c,f=f*d*d+1,i=c):c>0?(d=c/i,f+=d*d):f+=c;return i===1/0?1/0:i*Math.sqrt(f)}})},function(a,b,c){var d=c(6),e=Math.imul;d(d.S+d.F*c(5)(function(){return e(4294967295,5)!=-5||2!=e.length}),"Math",{imul:function imul(a,b){var c=65535,d=+a,e=+b,f=c&d,g=c&e;return 0|f*g+((c&d>>>16)*g+f*(c&e>>>16)<<16>>>0)}})},function(a,b,c){var d=c(6);d(d.S,"Math",{log10:function log10(a){return Math.log(a)/Math.LN10}})},function(a,b,c){var d=c(6);d(d.S,"Math",{log1p:c(97)})},function(a,b,c){var d=c(6);d(d.S,"Math",{log2:function log2(a){return Math.log(a)/Math.LN2}})},function(a,b,c){var d=c(6);d(d.S,"Math",{sign:c(101)})},function(a,b,c){var d=c(6),e=c(105),f=Math.exp;d(d.S+d.F*c(5)(function(){return!Math.sinh(-2e-17)!=-2e-17}),"Math",{sinh:function sinh(a){return Math.abs(a=+a)<1?(e(a)-e(-a))/2:(f(a-1)-f(-a-1))*(Math.E/2)}})},function(a,b,c){var d=c(6),e=c(105),f=Math.exp;d(d.S,"Math",{tanh:function tanh(a){var b=e(a=+a),c=e(-a);return b==1/0?1:c==1/0?-1:(b-c)/(f(a)+f(-a))}})},function(a,b,c){var d=c(6);d(d.S,"Math",{trunc:function trunc(a){return(a>0?Math.floor:Math.ceil)(a)}})},function(a,b,c){var d=c(6),e=c(37),f=String.fromCharCode,g=String.fromCodePoint;d(d.S+d.F*(!!g&&1!=g.length),"String",{fromCodePoint:function fromCodePoint(a){for(var b,c=[],d=arguments.length,g=0;d>g;){if(b=+arguments[g++],e(b,1114111)!==b)throw RangeError(b+" is not a valid code point");c.push(b<65536?f(b):f(((b-=65536)>>10)+55296,b%1024+56320))}return c.join("")}})},function(a,b,c){var d=c(6),e=c(30),f=c(35);d(d.S,"String",{raw:function raw(a){for(var b=e(a.raw),c=f(b.length),d=arguments.length,g=[],h=0;c>h;)g.push(String(b[h++])),h<d&&g.push(String(arguments[h]));return g.join("")}})},function(a,b,c){c(90)("trim",function(a){return function trim(){return a(this,3)}})},function(a,b,c){var d=c(6),e=c(120)(!1);d(d.P,"String",{codePointAt:function codePointAt(a){return e(this,a)}})},function(a,b,d){var e=d(36),f=d(33);a.exports=function(a){return function(b,d){var g,h,i=String(f(b)),j=e(d),k=i.length;return j<0||j>=k?a?"":c:(g=i.charCodeAt(j),g<55296||g>56319||j+1===k||(h=i.charCodeAt(j+1))<56320||h>57343?a?i.charAt(j):g:a?i.slice(j,j+2):(g-55296<<10)+(h-56320)+65536)}}},function(a,b,d){var e=d(6),f=d(35),g=d(122),h="endsWith",i=""[h];e(e.P+e.F*d(124)(h),"String",{endsWith:function endsWith(a){var b=g(this,a,h),d=arguments.length>1?arguments[1]:c,e=f(b.length),j=d===c?e:Math.min(f(d),e),k=String(a);return i?i.call(b,k,j):b.slice(j-k.length,j)===k}})},function(a,b,c){var d=c(123),e=c(33);a.exports=function(a,b,c){if(d(b))throw TypeError("String#"+c+" doesn't accept regex!");return String(e(a))}},function(a,b,d){var e=d(13),f=d(32),g=d(23)("match");a.exports=function(a){var b;return e(a)&&((b=a[g])!==c?!!b:"RegExp"==f(a))}},function(a,b,c){var d=c(23)("match");a.exports=function(a){var b=/./;try{"/./"[a](b)}catch(c){try{return b[d]=!1,!"/./"[a](b)}catch(e){}}return!0}},function(a,b,d){var e=d(6),f=d(122),g="includes";e(e.P+e.F*d(124)(g),"String",{includes:function includes(a){return!!~f(this,a,g).indexOf(a,arguments.length>1?arguments[1]:c)}})},function(a,b,c){var d=c(6);d(d.P,"String",{repeat:c(78)})},function(a,b,d){var e=d(6),f=d(35),g=d(122),h="startsWith",i=""[h];e(e.P+e.F*d(124)(h),"String",{startsWith:function startsWith(a){var b=g(this,a,h),d=f(Math.min(arguments.length>1?arguments[1]:c,b.length)),e=String(a);return i?i.call(b,e,d):b.slice(d,d+e.length)===e}})},function(a,b,d){var e=d(120)(!0);d(129)(String,"String",function(a){this._t=String(a),this._i=0},function(){var a,b=this._t,d=this._i;return d>=b.length?{value:c,done:!0}:(a=e(b,d),this._i+=a.length,{value:a,done:!1})})},function(a,b,d){var e=d(26),f=d(6),g=d(18),h=d(10),i=d(3),j=d(130),k=d(131),l=d(22),m=d(57),n=d(23)("iterator"),o=!([].keys&&"next"in[].keys()),p="@@iterator",q="keys",r="values",s=function(){return this};a.exports=function(a,b,d,t,u,v,w){k(d,b,t);var x,y,z,A=function(a){if(!o&&a in E)return E[a];switch(a){case q:return function keys(){return new d(this,a)};case r:return function values(){return new d(this,a)}}return function entries(){return new d(this,a)}},B=b+" Iterator",C=u==r,D=!1,E=a.prototype,F=E[n]||E[p]||u&&E[u],G=F||A(u),H=u?C?A("entries"):G:c,I="Array"==b?E.entries||F:F;if(I&&(z=m(I.call(new a)),z!==Object.prototype&&(l(z,B,!0),e||i(z,n)||h(z,n,s))),C&&F&&F.name!==r&&(D=!0,G=function values(){return F.call(this)}),e&&!w||!o&&!D&&E[n]||h(E,n,G),j[b]=G,j[B]=s,u)if(x={values:C?G:A(r),keys:v?G:A(q),entries:H},w)for(y in x)y in E||g(E,y,x[y]);else f(f.P+f.F*(o||D),b,x);return x}},function(a,b){a.exports={}},function(a,b,c){var d=c(44),e=c(17),f=c(22),g={};c(10)(g,c(23)("iterator"),function(){return this}),a.exports=function(a,b,c){a.prototype=d(g,{next:e(1,c)}),f(a,b+" Iterator")}},function(a,b,c){c(133)("anchor",function(a){return function anchor(b){return a(this,"a","name",b)}})},function(a,b,c){var d=c(6),e=c(5),f=c(33),g=/"/g,h=function(a,b,c,d){var e=String(f(a)),h="<"+b;return""!==c&&(h+=" "+c+'="'+String(d).replace(g,"&quot;")+'"'),h+">"+e+"</"+b+">"};a.exports=function(a,b){var c={};c[a]=b(h),d(d.P+d.F*e(function(){var b=""[a]('"');return b!==b.toLowerCase()||b.split('"').length>3}),"String",c)}},function(a,b,c){c(133)("big",function(a){return function big(){return a(this,"big","","")}})},function(a,b,c){c(133)("blink",function(a){return function blink(){return a(this,"blink","","")}})},function(a,b,c){c(133)("bold",function(a){return function bold(){return a(this,"b","","")}})},function(a,b,c){c(133)("fixed",function(a){return function fixed(){return a(this,"tt","","")}})},function(a,b,c){c(133)("fontcolor",function(a){return function fontcolor(b){return a(this,"font","color",b)}})},function(a,b,c){c(133)("fontsize",function(a){return function fontsize(b){return a(this,"font","size",b)}})},function(a,b,c){c(133)("italics",function(a){return function italics(){return a(this,"i","","")}})},function(a,b,c){c(133)("link",function(a){return function link(b){return a(this,"a","href",b)}})},function(a,b,c){c(133)("small",function(a){return function small(){return a(this,"small","","")}})},function(a,b,c){c(133)("strike",function(a){return function strike(){return a(this,"strike","","")}})},function(a,b,c){c(133)("sub",function(a){return function sub(){return a(this,"sub","","")}})},function(a,b,c){c(133)("sup",function(a){return function sup(){return a(this,"sup","","")}})},function(a,b,c){var d=c(6);d(d.S,"Array",{isArray:c(43)})},function(a,b,d){var e=d(8),f=d(6),g=d(56),h=d(148),i=d(149),j=d(35),k=d(150),l=d(151);f(f.S+f.F*!d(153)(function(a){Array.from(a)}),"Array",{from:function from(a){var b,d,f,m,n=g(a),o="function"==typeof this?this:Array,p=arguments.length,q=p>1?arguments[1]:c,r=q!==c,s=0,t=l(n);if(r&&(q=e(q,p>2?arguments[2]:c,2)),t==c||o==Array&&i(t))for(b=j(n.length),d=new o(b);b>s;s++)k(d,s,r?q(n[s],s):n[s]);else for(m=t.call(n),d=new o;!(f=m.next()).done;s++)k(d,s,r?h(m,q,[f.value,s],!0):f.value);return d.length=s,d}})},function(a,b,d){var e=d(12);a.exports=function(a,b,d,f){try{return f?b(e(d)[0],d[1]):b(d)}catch(g){var h=a["return"];throw h!==c&&e(h.call(a)),g}}},function(a,b,d){var e=d(130),f=d(23)("iterator"),g=Array.prototype;a.exports=function(a){return a!==c&&(e.Array===a||g[f]===a)}},function(a,b,c){var d=c(11),e=c(17);a.exports=function(a,b,c){b in a?d.f(a,b,e(0,c)):a[b]=c}},function(a,b,d){var e=d(152),f=d(23)("iterator"),g=d(130);a.exports=d(7).getIteratorMethod=function(a){if(a!=c)return a[f]||a["@@iterator"]||g[e(a)]}},function(a,b,d){var e=d(32),f=d(23)("toStringTag"),g="Arguments"==e(function(){return arguments}()),h=function(a,b){try{return a[b]}catch(c){}};a.exports=function(a){var b,d,i;return a===c?"Undefined":null===a?"Null":"string"==typeof(d=h(b=Object(a),f))?d:g?e(b):"Object"==(i=e(b))&&"function"==typeof b.callee?"Arguments":i}},function(a,b,c){var d=c(23)("iterator"),e=!1;try{var f=[7][d]();f["return"]=function(){e=!0},Array.from(f,function(){throw 2})}catch(g){}a.exports=function(a,b){if(!b&&!e)return!1;var c=!1;try{var f=[7],g=f[d]();g.next=function(){return{done:c=!0}},f[d]=function(){return g},a(f)}catch(h){}return c}},function(a,b,c){var d=c(6),e=c(150);d(d.S+d.F*c(5)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),"Array",{of:function of(){for(var a=0,b=arguments.length,c=new("function"==typeof this?this:Array)(b);b>a;)e(c,a,arguments[a++]);return c.length=b,c}})},function(a,b,d){var e=d(6),f=d(30),g=[].join;e(e.P+e.F*(d(31)!=Object||!d(156)(g)),"Array",{join:function join(a){return g.call(f(this),a===c?",":a)}})},function(a,b,c){var d=c(5);a.exports=function(a,b){return!!a&&d(function(){b?a.call(null,function(){},1):a.call(null)})}},function(a,b,d){var e=d(6),f=d(46),g=d(32),h=d(37),i=d(35),j=[].slice;e(e.P+e.F*d(5)(function(){f&&j.call(f)}),"Array",{slice:function slice(a,b){var d=i(this.length),e=g(this);if(b=b===c?d:b,"Array"==e)return j.call(this,a,b);for(var f=h(a,d),k=h(b,d),l=i(k-f),m=Array(l),n=0;n<l;n++)m[n]="String"==e?this.charAt(f+n):this[f+n];return m}})},function(a,b,d){var e=d(6),f=d(9),g=d(56),h=d(5),i=[].sort,j=[1,2,3];e(e.P+e.F*(h(function(){j.sort(c)})||!h(function(){j.sort(null)})||!d(156)(i)),"Array",{sort:function sort(a){return a===c?i.call(g(this)):i.call(g(this),f(a))}})},function(a,b,c){var d=c(6),e=c(160)(0),f=c(156)([].forEach,!0);d(d.P+d.F*!f,"Array",{forEach:function forEach(a){return e(this,a,arguments[1])}})},function(a,b,d){var e=d(8),f=d(31),g=d(56),h=d(35),i=d(161);a.exports=function(a,b){var d=1==a,j=2==a,k=3==a,l=4==a,m=6==a,n=5==a||m,o=b||i;return function(b,i,p){for(var q,r,s=g(b),t=f(s),u=e(i,p,3),v=h(t.length),w=0,x=d?o(b,v):j?o(b,0):c;v>w;w++)if((n||w in t)&&(q=t[w],r=u(q,w,s),a))if(d)x[w]=r;else if(r)switch(a){case 3:return!0;case 5:
+return q;case 6:return w;case 2:x.push(q)}else if(l)return!1;return m?-1:k||l?l:x}}},function(a,b,c){var d=c(162);a.exports=function(a,b){return new(d(a))(b)}},function(a,b,d){var e=d(13),f=d(43),g=d(23)("species");a.exports=function(a){var b;return f(a)&&(b=a.constructor,"function"!=typeof b||b!==Array&&!f(b.prototype)||(b=c),e(b)&&(b=b[g],null===b&&(b=c))),b===c?Array:b}},function(a,b,c){var d=c(6),e=c(160)(1);d(d.P+d.F*!c(156)([].map,!0),"Array",{map:function map(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(160)(2);d(d.P+d.F*!c(156)([].filter,!0),"Array",{filter:function filter(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(160)(3);d(d.P+d.F*!c(156)([].some,!0),"Array",{some:function some(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(160)(4);d(d.P+d.F*!c(156)([].every,!0),"Array",{every:function every(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(168);d(d.P+d.F*!c(156)([].reduce,!0),"Array",{reduce:function reduce(a){return e(this,a,arguments.length,arguments[1],!1)}})},function(a,b,c){var d=c(9),e=c(56),f=c(31),g=c(35);a.exports=function(a,b,c,h,i){d(b);var j=e(a),k=f(j),l=g(j.length),m=i?l-1:0,n=i?-1:1;if(c<2)for(;;){if(m in k){h=k[m],m+=n;break}if(m+=n,i?m<0:l<=m)throw TypeError("Reduce of empty array with no initial value")}for(;i?m>=0:l>m;m+=n)m in k&&(h=b(h,k[m],m,j));return h}},function(a,b,c){var d=c(6),e=c(168);d(d.P+d.F*!c(156)([].reduceRight,!0),"Array",{reduceRight:function reduceRight(a){return e(this,a,arguments.length,arguments[1],!0)}})},function(a,b,c){var d=c(6),e=c(34)(!1),f=[].indexOf,g=!!f&&1/[1].indexOf(1,-0)<0;d(d.P+d.F*(g||!c(156)(f)),"Array",{indexOf:function indexOf(a){return g?f.apply(this,arguments)||0:e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(30),f=c(36),g=c(35),h=[].lastIndexOf,i=!!h&&1/[1].lastIndexOf(1,-0)<0;d(d.P+d.F*(i||!c(156)(h)),"Array",{lastIndexOf:function lastIndexOf(a){if(i)return h.apply(this,arguments)||0;var b=e(this),c=g(b.length),d=c-1;for(arguments.length>1&&(d=Math.min(d,f(arguments[1]))),d<0&&(d=c+d);d>=0;d--)if(d in b&&b[d]===a)return d||0;return-1}})},function(a,b,c){var d=c(6);d(d.P,"Array",{copyWithin:c(173)}),c(174)("copyWithin")},function(a,b,d){var e=d(56),f=d(37),g=d(35);a.exports=[].copyWithin||function copyWithin(a,b){var d=e(this),h=g(d.length),i=f(a,h),j=f(b,h),k=arguments.length>2?arguments[2]:c,l=Math.min((k===c?h:f(k,h))-j,h-i),m=1;for(j<i&&i<j+l&&(m=-1,j+=l-1,i+=l-1);l-- >0;)j in d?d[i]=d[j]:delete d[i],i+=m,j+=m;return d}},function(a,b){a.exports=function(){}},function(a,b,c){var d=c(6);d(d.P,"Array",{fill:c(176)}),c(174)("fill")},function(a,b,d){var e=d(56),f=d(37),g=d(35);a.exports=function fill(a){for(var b=e(this),d=g(b.length),h=arguments.length,i=f(h>1?arguments[1]:c,d),j=h>2?arguments[2]:c,k=j===c?d:f(j,d);k>i;)b[i++]=a;return b}},function(a,b,d){var e=d(6),f=d(160)(5),g="find",h=!0;g in[]&&Array(1)[g](function(){h=!1}),e(e.P+e.F*h,"Array",{find:function find(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(174)(g)},function(a,b,d){var e=d(6),f=d(160)(6),g="findIndex",h=!0;g in[]&&Array(1)[g](function(){h=!1}),e(e.P+e.F*h,"Array",{findIndex:function findIndex(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(174)(g)},function(a,b,d){var e=d(174),f=d(180),g=d(130),h=d(30);a.exports=d(129)(Array,"Array",function(a,b){this._t=h(a),this._i=0,this._k=b},function(){var a=this._t,b=this._k,d=this._i++;return!a||d>=a.length?(this._t=c,f(1)):"keys"==b?f(0,d):"values"==b?f(0,a[d]):f(0,[d,a[d]])},"values"),g.Arguments=g.Array,e("keys"),e("values"),e("entries")},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(a,b,c){c(182)("Array")},function(a,b,c){var d=c(2),e=c(7),f=c(11),g=c(4),h=c(23)("species");a.exports=function(a){var b="function"==typeof e[a]?e[a]:d[a];g&&b&&!b[h]&&f.f(b,h,{configurable:!0,get:function(){return this}})}},function(a,b,d){var e,f,g,h=d(26),i=d(2),j=d(8),k=d(152),l=d(6),m=d(13),n=d(9),o=d(184),p=d(185),q=d(186),r=d(187).set,s=d(188)(),t="Promise",u=i.TypeError,v=i.process,w=i[t],v=i.process,x="process"==k(v),y=function(){},z=!!function(){try{var a=w.resolve(1),b=(a.constructor={})[d(23)("species")]=function(a){a(y,y)};return(x||"function"==typeof PromiseRejectionEvent)&&a.then(y)instanceof b}catch(c){}}(),A=function(a,b){return a===b||a===w&&b===g},B=function(a){var b;return!(!m(a)||"function"!=typeof(b=a.then))&&b},C=function(a){return A(w,a)?new D(a):new f(a)},D=f=function(a){var b,d;this.promise=new a(function(a,e){if(b!==c||d!==c)throw u("Bad Promise constructor");b=a,d=e}),this.resolve=n(b),this.reject=n(d)},E=function(a){try{a()}catch(b){return{error:b}}},F=function(a,b){if(!a._n){a._n=!0;var c=a._c;s(function(){for(var d=a._v,e=1==a._s,f=0,g=function(b){var c,f,g=e?b.ok:b.fail,h=b.resolve,i=b.reject,j=b.domain;try{g?(e||(2==a._h&&I(a),a._h=1),g===!0?c=d:(j&&j.enter(),c=g(d),j&&j.exit()),c===b.promise?i(u("Promise-chain cycle")):(f=B(c))?f.call(c,h,i):h(c)):i(d)}catch(k){i(k)}};c.length>f;)g(c[f++]);a._c=[],a._n=!1,b&&!a._h&&G(a)})}},G=function(a){r.call(i,function(){var b,d,e,f=a._v;if(H(a)&&(b=E(function(){x?v.emit("unhandledRejection",f,a):(d=i.onunhandledrejection)?d({promise:a,reason:f}):(e=i.console)&&e.error&&e.error("Unhandled promise rejection",f)}),a._h=x||H(a)?2:1),a._a=c,b)throw b.error})},H=function(a){if(1==a._h)return!1;for(var b,c=a._a||a._c,d=0;c.length>d;)if(b=c[d++],b.fail||!H(b.promise))return!1;return!0},I=function(a){r.call(i,function(){var b;x?v.emit("rejectionHandled",a):(b=i.onrejectionhandled)&&b({promise:a,reason:a._v})})},J=function(a){var b=this;b._d||(b._d=!0,b=b._w||b,b._v=a,b._s=2,b._a||(b._a=b._c.slice()),F(b,!0))},K=function(a){var b,c=this;if(!c._d){c._d=!0,c=c._w||c;try{if(c===a)throw u("Promise can't be resolved itself");(b=B(a))?s(function(){var d={_w:c,_d:!1};try{b.call(a,j(K,d,1),j(J,d,1))}catch(e){J.call(d,e)}}):(c._v=a,c._s=1,F(c,!1))}catch(d){J.call({_w:c,_d:!1},d)}}};z||(w=function Promise(a){o(this,w,t,"_h"),n(a),e.call(this);try{a(j(K,this,1),j(J,this,1))}catch(b){J.call(this,b)}},e=function Promise(a){this._c=[],this._a=c,this._s=0,this._d=!1,this._v=c,this._h=0,this._n=!1},e.prototype=d(189)(w.prototype,{then:function then(a,b){var d=C(q(this,w));return d.ok="function"!=typeof a||a,d.fail="function"==typeof b&&b,d.domain=x?v.domain:c,this._c.push(d),this._a&&this._a.push(d),this._s&&F(this,!1),d.promise},"catch":function(a){return this.then(c,a)}}),D=function(){var a=new e;this.promise=a,this.resolve=j(K,a,1),this.reject=j(J,a,1)}),l(l.G+l.W+l.F*!z,{Promise:w}),d(22)(w,t),d(182)(t),g=d(7)[t],l(l.S+l.F*!z,t,{reject:function reject(a){var b=C(this),c=b.reject;return c(a),b.promise}}),l(l.S+l.F*(h||!z),t,{resolve:function resolve(a){if(a instanceof w&&A(a.constructor,this))return a;var b=C(this),c=b.resolve;return c(a),b.promise}}),l(l.S+l.F*!(z&&d(153)(function(a){w.all(a)["catch"](y)})),t,{all:function all(a){var b=this,d=C(b),e=d.resolve,f=d.reject,g=E(function(){var d=[],g=0,h=1;p(a,!1,function(a){var i=g++,j=!1;d.push(c),h++,b.resolve(a).then(function(a){j||(j=!0,d[i]=a,--h||e(d))},f)}),--h||e(d)});return g&&f(g.error),d.promise},race:function race(a){var b=this,c=C(b),d=c.reject,e=E(function(){p(a,!1,function(a){b.resolve(a).then(c.resolve,d)})});return e&&d(e.error),c.promise}})},function(a,b){a.exports=function(a,b,d,e){if(!(a instanceof b)||e!==c&&e in a)throw TypeError(d+": incorrect invocation!");return a}},function(a,b,c){var d=c(8),e=c(148),f=c(149),g=c(12),h=c(35),i=c(151),j={},k={},b=a.exports=function(a,b,c,l,m){var n,o,p,q,r=m?function(){return a}:i(a),s=d(c,l,b?2:1),t=0;if("function"!=typeof r)throw TypeError(a+" is not iterable!");if(f(r)){for(n=h(a.length);n>t;t++)if(q=b?s(g(o=a[t])[0],o[1]):s(a[t]),q===j||q===k)return q}else for(p=r.call(a);!(o=p.next()).done;)if(q=e(p,s,o.value,b),q===j||q===k)return q};b.BREAK=j,b.RETURN=k},function(a,b,d){var e=d(12),f=d(9),g=d(23)("species");a.exports=function(a,b){var d,h=e(a).constructor;return h===c||(d=e(h)[g])==c?b:f(d)}},function(a,b,c){var d,e,f,g=c(8),h=c(74),i=c(46),j=c(15),k=c(2),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r="onreadystatechange",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function setImmediate(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function clearImmediate(a){delete q[a]},"process"==c(32)(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(e=new o,f=e.port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),a.exports={set:m,clear:n}},function(a,b,d){var e=d(2),f=d(187).set,g=e.MutationObserver||e.WebKitMutationObserver,h=e.process,i=e.Promise,j="process"==d(32)(h);a.exports=function(){var a,b,d,k=function(){var e,f;for(j&&(e=h.domain)&&e.exit();a;){f=a.fn,a=a.next;try{f()}catch(g){throw a?d():b=c,g}}b=c,e&&e.enter()};if(j)d=function(){h.nextTick(k)};else if(g){var l=!0,m=document.createTextNode("");new g(k).observe(m,{characterData:!0}),d=function(){m.data=l=!l}}else if(i&&i.resolve){var n=i.resolve();d=function(){n.then(k)}}else d=function(){f.call(e,k)};return function(e){var f={fn:e,next:c};b&&(b.next=f),a||(a=f,d()),b=f}}},function(a,b,c){var d=c(10);a.exports=function(a,b,c){for(var e in b)c&&a[e]?a[e]=b[e]:d(a,e,b[e]);return a}},function(a,b,d){var e=d(191);a.exports=d(192)("Map",function(a){return function Map(){return a(this,arguments.length>0?arguments[0]:c)}},{get:function get(a){var b=e.getEntry(this,a);return b&&b.v},set:function set(a,b){return e.def(this,0===a?0:a,b)}},e,!0)},function(a,b,d){var e=d(11).f,f=d(44),g=d(189),h=d(8),i=d(184),j=d(33),k=d(185),l=d(129),m=d(180),n=d(182),o=d(4),p=d(19).fastKey,q=o?"_s":"size",r=function(a,b){var c,d=p(b);if("F"!==d)return a._i[d];for(c=a._f;c;c=c.n)if(c.k==b)return c};a.exports={getConstructor:function(a,b,d,l){var m=a(function(a,e){i(a,m,b,"_i"),a._i=f(null),a._f=c,a._l=c,a[q]=0,e!=c&&k(e,d,a[l],a)});return g(m.prototype,{clear:function clear(){for(var a=this,b=a._i,d=a._f;d;d=d.n)d.r=!0,d.p&&(d.p=d.p.n=c),delete b[d.i];a._f=a._l=c,a[q]=0},"delete":function(a){var b=this,c=r(b,a);if(c){var d=c.n,e=c.p;delete b._i[c.i],c.r=!0,e&&(e.n=d),d&&(d.p=e),b._f==c&&(b._f=d),b._l==c&&(b._l=e),b[q]--}return!!c},forEach:function forEach(a){i(this,m,"forEach");for(var b,d=h(a,arguments.length>1?arguments[1]:c,3);b=b?b.n:this._f;)for(d(b.v,b.k,this);b&&b.r;)b=b.p},has:function has(a){return!!r(this,a)}}),o&&e(m.prototype,"size",{get:function(){return j(this[q])}}),m},def:function(a,b,d){var e,f,g=r(a,b);return g?g.v=d:(a._l=g={i:f=p(b,!0),k:b,v:d,p:e=a._l,n:c,r:!1},a._f||(a._f=g),e&&(e.n=g),a[q]++,"F"!==f&&(a._i[f]=g)),a},getEntry:r,setStrong:function(a,b,d){l(a,b,function(a,b){this._t=a,this._k=b,this._l=c},function(){for(var a=this,b=a._k,d=a._l;d&&d.r;)d=d.p;return a._t&&(a._l=d=d?d.n:a._t._f)?"keys"==b?m(0,d.k):"values"==b?m(0,d.v):m(0,[d.k,d.v]):(a._t=c,m(1))},d?"entries":"values",!d,!0),n(b)}}},function(a,b,d){var e=d(2),f=d(6),g=d(19),h=d(5),i=d(10),j=d(189),k=d(185),l=d(184),m=d(13),n=d(22),o=d(11).f,p=d(160)(0),q=d(4);a.exports=function(a,b,d,r,s,t){var u=e[a],v=u,w=s?"set":"add",x=v&&v.prototype,y={};return q&&"function"==typeof v&&(t||x.forEach&&!h(function(){(new v).entries().next()}))?(v=b(function(b,d){l(b,v,a,"_c"),b._c=new u,d!=c&&k(d,s,b[w],b)}),p("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(a){var b="add"==a||"set"==a;a in x&&(!t||"clear"!=a)&&i(v.prototype,a,function(d,e){if(l(this,v,a),!b&&t&&!m(d))return"get"==a&&c;var f=this._c[a](0===d?0:d,e);return b?this:f})}),"size"in x&&o(v.prototype,"size",{get:function(){return this._c.size}})):(v=r.getConstructor(b,a,s,w),j(v.prototype,d),g.NEED=!0),n(v,a),y[a]=v,f(f.G+f.W+f.F,y),t||r.setStrong(v,a,s),v}},function(a,b,d){var e=d(191);a.exports=d(192)("Set",function(a){return function Set(){return a(this,arguments.length>0?arguments[0]:c)}},{add:function add(a){return e.def(this,a=0===a?0:a,a)}},e)},function(a,b,d){var e,f=d(160)(0),g=d(18),h=d(19),i=d(67),j=d(195),k=d(13),l=h.getWeak,m=Object.isExtensible,n=j.ufstore,o={},p=function(a){return function WeakMap(){return a(this,arguments.length>0?arguments[0]:c)}},q={get:function get(a){if(k(a)){var b=l(a);return b===!0?n(this).get(a):b?b[this._i]:c}},set:function set(a,b){return j.def(this,a,b)}},r=a.exports=d(192)("WeakMap",p,q,j,!0,!0);7!=(new r).set((Object.freeze||Object)(o),7).get(o)&&(e=j.getConstructor(p),i(e.prototype,q),h.NEED=!0,f(["delete","has","get","set"],function(a){var b=r.prototype,c=b[a];g(b,a,function(b,d){if(k(b)&&!m(b)){this._f||(this._f=new e);var f=this._f[a](b,d);return"set"==a?this:f}return c.call(this,b,d)})}))},function(a,b,d){var e=d(189),f=d(19).getWeak,g=d(12),h=d(13),i=d(184),j=d(185),k=d(160),l=d(3),m=k(5),n=k(6),o=0,p=function(a){return a._l||(a._l=new q)},q=function(){this.a=[]},r=function(a,b){return m(a.a,function(a){return a[0]===b})};q.prototype={get:function(a){var b=r(this,a);if(b)return b[1]},has:function(a){return!!r(this,a)},set:function(a,b){var c=r(this,a);c?c[1]=b:this.a.push([a,b])},"delete":function(a){var b=n(this.a,function(b){return b[0]===a});return~b&&this.a.splice(b,1),!!~b}},a.exports={getConstructor:function(a,b,d,g){var k=a(function(a,e){i(a,k,b,"_i"),a._i=o++,a._l=c,e!=c&&j(e,d,a[g],a)});return e(k.prototype,{"delete":function(a){if(!h(a))return!1;var b=f(a);return b===!0?p(this)["delete"](a):b&&l(b,this._i)&&delete b[this._i]},has:function has(a){if(!h(a))return!1;var b=f(a);return b===!0?p(this).has(a):b&&l(b,this._i)}}),k},def:function(a,b,c){var d=f(g(b),!0);return d===!0?p(a).set(b,c):d[a._i]=c,a},ufstore:p}},function(a,b,d){var e=d(195);d(192)("WeakSet",function(a){return function WeakSet(){return a(this,arguments.length>0?arguments[0]:c)}},{add:function add(a){return e.def(this,a,!0)}},e,!1,!0)},function(a,b,c){var d=c(6),e=c(9),f=c(12),g=(c(2).Reflect||{}).apply,h=Function.apply;d(d.S+d.F*!c(5)(function(){g(function(){})}),"Reflect",{apply:function apply(a,b,c){var d=e(a),i=f(c);return g?g(d,b,i):h.call(d,b,i)}})},function(a,b,c){var d=c(6),e=c(44),f=c(9),g=c(12),h=c(13),i=c(5),j=c(73),k=(c(2).Reflect||{}).construct,l=i(function(){function F(){}return!(k(function(){},[],F)instanceof F)}),m=!i(function(){k(function(){})});d(d.S+d.F*(l||m),"Reflect",{construct:function construct(a,b){f(a),g(b);var c=arguments.length<3?a:f(arguments[2]);if(m&&!l)return k(a,b,c);if(a==c){switch(b.length){case 0:return new a;case 1:return new a(b[0]);case 2:return new a(b[0],b[1]);case 3:return new a(b[0],b[1],b[2]);case 4:return new a(b[0],b[1],b[2],b[3])}var d=[null];return d.push.apply(d,b),new(j.apply(a,d))}var i=c.prototype,n=e(h(i)?i:Object.prototype),o=Function.apply.call(a,n,b);return h(o)?o:n}})},function(a,b,c){var d=c(11),e=c(6),f=c(12),g=c(16);e(e.S+e.F*c(5)(function(){Reflect.defineProperty(d.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function defineProperty(a,b,c){f(a),b=g(b,!0),f(c);try{return d.f(a,b,c),!0}catch(e){return!1}}})},function(a,b,c){var d=c(6),e=c(49).f,f=c(12);d(d.S,"Reflect",{deleteProperty:function deleteProperty(a,b){var c=e(f(a),b);return!(c&&!c.configurable)&&delete a[b]}})},function(a,b,d){var e=d(6),f=d(12),g=function(a){this._t=f(a),this._i=0;var b,c=this._k=[];for(b in a)c.push(b)};d(131)(g,"Object",function(){var a,b=this,d=b._k;do if(b._i>=d.length)return{value:c,done:!0};while(!((a=d[b._i++])in b._t));return{value:a,done:!1}}),e(e.S,"Reflect",{enumerate:function enumerate(a){return new g(a)}})},function(a,b,d){function get(a,b){var d,h,k=arguments.length<3?a:arguments[2];return j(a)===k?a[b]:(d=e.f(a,b))?g(d,"value")?d.value:d.get!==c?d.get.call(k):c:i(h=f(a))?get(h,b,k):void 0}var e=d(49),f=d(57),g=d(3),h=d(6),i=d(13),j=d(12);h(h.S,"Reflect",{get:get})},function(a,b,c){var d=c(49),e=c(6),f=c(12);e(e.S,"Reflect",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(a,b){return d.f(f(a),b)}})},function(a,b,c){var d=c(6),e=c(57),f=c(12);d(d.S,"Reflect",{getPrototypeOf:function getPrototypeOf(a){return e(f(a))}})},function(a,b,c){var d=c(6);d(d.S,"Reflect",{has:function has(a,b){return b in a}})},function(a,b,c){var d=c(6),e=c(12),f=Object.isExtensible;d(d.S,"Reflect",{isExtensible:function isExtensible(a){return e(a),!f||f(a)}})},function(a,b,c){var d=c(6);d(d.S,"Reflect",{ownKeys:c(208)})},function(a,b,c){var d=c(48),e=c(41),f=c(12),g=c(2).Reflect;a.exports=g&&g.ownKeys||function ownKeys(a){var b=d.f(f(a)),c=e.f;return c?b.concat(c(a)):b}},function(a,b,c){var d=c(6),e=c(12),f=Object.preventExtensions;d(d.S,"Reflect",{preventExtensions:function preventExtensions(a){e(a);try{return f&&f(a),!0}catch(b){return!1}}})},function(a,b,d){function set(a,b,d){var i,m,n=arguments.length<4?a:arguments[3],o=f.f(k(a),b);if(!o){if(l(m=g(a)))return set(m,b,d,n);o=j(0)}return h(o,"value")?!(o.writable===!1||!l(n))&&(i=f.f(n,b)||j(0),i.value=d,e.f(n,b,i),!0):o.set!==c&&(o.set.call(n,d),!0)}var e=d(11),f=d(49),g=d(57),h=d(3),i=d(6),j=d(17),k=d(12),l=d(13);i(i.S,"Reflect",{set:set})},function(a,b,c){var d=c(6),e=c(71);e&&d(d.S,"Reflect",{setPrototypeOf:function setPrototypeOf(a,b){e.check(a,b);try{return e.set(a,b),!0}catch(c){return!1}}})},function(a,b,c){var d=c(6);d(d.S,"Date",{now:function(){return(new Date).getTime()}})},function(a,b,c){var d=c(6),e=c(56),f=c(16);d(d.P+d.F*c(5)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function toJSON(a){var b=e(this),c=f(b);return"number"!=typeof c||isFinite(c)?b.toISOString():null}})},function(a,b,c){var d=c(6),e=c(5),f=Date.prototype.getTime,g=function(a){return a>9?a:"0"+a};d(d.P+d.F*(e(function(){return"0385-07-25T07:06:39.999Z"!=new Date(-5e13-1).toISOString()})||!e(function(){new Date(NaN).toISOString()})),"Date",{toISOString:function toISOString(){if(!isFinite(f.call(this)))throw RangeError("Invalid time value");var a=this,b=a.getUTCFullYear(),c=a.getUTCMilliseconds(),d=b<0?"-":b>9999?"+":"";return d+("00000"+Math.abs(b)).slice(d?-6:-4)+"-"+g(a.getUTCMonth()+1)+"-"+g(a.getUTCDate())+"T"+g(a.getUTCHours())+":"+g(a.getUTCMinutes())+":"+g(a.getUTCSeconds())+"."+(c>99?c:"0"+g(c))+"Z"}})},function(a,b,d){var e=d(6),f=d(216),g=d(217),h=d(12),i=d(37),j=d(35),k=d(13),l=d(2).ArrayBuffer,m=d(186),n=g.ArrayBuffer,o=g.DataView,p=f.ABV&&l.isView,q=n.prototype.slice,r=f.VIEW,s="ArrayBuffer";e(e.G+e.W+e.F*(l!==n),{ArrayBuffer:n}),e(e.S+e.F*!f.CONSTR,s,{isView:function isView(a){return p&&p(a)||k(a)&&r in a}}),e(e.P+e.U+e.F*d(5)(function(){return!new n(2).slice(1,c).byteLength}),s,{slice:function slice(a,b){if(q!==c&&b===c)return q.call(h(this),a);for(var d=h(this).byteLength,e=i(a,d),f=i(b===c?d:b,d),g=new(m(this,n))(j(f-e)),k=new o(this),l=new o(g),p=0;e<f;)l.setUint8(p++,k.getUint8(e++));return g}}),d(182)(s)},function(a,b,c){for(var d,e=c(2),f=c(10),g=c(20),h=g("typed_array"),i=g("view"),j=!(!e.ArrayBuffer||!e.DataView),k=j,l=0,m=9,n="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<m;)(d=e[n[l++]])?(f(d.prototype,h,!0),f(d.prototype,i,!0)):k=!1;a.exports={ABV:j,CONSTR:k,TYPED:h,VIEW:i}},function(a,b,d){var e=d(2),f=d(4),g=d(26),h=d(216),i=d(10),j=d(189),k=d(5),l=d(184),m=d(36),n=d(35),o=d(48).f,p=d(11).f,q=d(176),r=d(22),s="ArrayBuffer",t="DataView",u="prototype",v="Wrong length!",w="Wrong index!",x=e[s],y=e[t],z=e.Math,A=e.RangeError,B=e.Infinity,C=x,D=z.abs,E=z.pow,F=z.floor,G=z.log,H=z.LN2,I="buffer",J="byteLength",K="byteOffset",L=f?"_b":I,M=f?"_l":J,N=f?"_o":K,O=function(a,b,c){var d,e,f,g=Array(c),h=8*c-b-1,i=(1<<h)-1,j=i>>1,k=23===b?E(2,-24)-E(2,-77):0,l=0,m=a<0||0===a&&1/a<0?1:0;for(a=D(a),a!=a||a===B?(e=a!=a?1:0,d=i):(d=F(G(a)/H),a*(f=E(2,-d))<1&&(d--,f*=2),a+=d+j>=1?k/f:k*E(2,1-j),a*f>=2&&(d++,f/=2),d+j>=i?(e=0,d=i):d+j>=1?(e=(a*f-1)*E(2,b),d+=j):(e=a*E(2,j-1)*E(2,b),d=0));b>=8;g[l++]=255&e,e/=256,b-=8);for(d=d<<b|e,h+=b;h>0;g[l++]=255&d,d/=256,h-=8);return g[--l]|=128*m,g},P=function(a,b,c){var d,e=8*c-b-1,f=(1<<e)-1,g=f>>1,h=e-7,i=c-1,j=a[i--],k=127&j;for(j>>=7;h>0;k=256*k+a[i],i--,h-=8);for(d=k&(1<<-h)-1,k>>=-h,h+=b;h>0;d=256*d+a[i],i--,h-=8);if(0===k)k=1-g;else{if(k===f)return d?NaN:j?-B:B;d+=E(2,b),k-=g}return(j?-1:1)*d*E(2,k-b)},Q=function(a){return a[3]<<24|a[2]<<16|a[1]<<8|a[0]},R=function(a){return[255&a]},S=function(a){return[255&a,a>>8&255]},T=function(a){return[255&a,a>>8&255,a>>16&255,a>>24&255]},U=function(a){return O(a,52,8)},V=function(a){return O(a,23,4)},W=function(a,b,c){p(a[u],b,{get:function(){return this[c]}})},X=function(a,b,c,d){var e=+c,f=m(e);if(e!=f||f<0||f+b>a[M])throw A(w);var g=a[L]._b,h=f+a[N],i=g.slice(h,h+b);return d?i:i.reverse()},Y=function(a,b,c,d,e,f){var g=+c,h=m(g);if(g!=h||h<0||h+b>a[M])throw A(w);for(var i=a[L]._b,j=h+a[N],k=d(+e),l=0;l<b;l++)i[j+l]=k[f?l:b-l-1]},Z=function(a,b){l(a,x,s);var c=+b,d=n(c);if(c!=d)throw A(v);return d};if(h.ABV){if(!k(function(){new x})||!k(function(){new x(.5)})){x=function ArrayBuffer(a){return new C(Z(this,a))};for(var $,_=x[u]=C[u],aa=o(C),ba=0;aa.length>ba;)($=aa[ba++])in x||i(x,$,C[$]);g||(_.constructor=x)}var ca=new y(new x(2)),da=y[u].setInt8;ca.setInt8(0,2147483648),ca.setInt8(1,2147483649),!ca.getInt8(0)&&ca.getInt8(1)||j(y[u],{setInt8:function setInt8(a,b){da.call(this,a,b<<24>>24)},setUint8:function setUint8(a,b){da.call(this,a,b<<24>>24)}},!0)}else x=function ArrayBuffer(a){var b=Z(this,a);this._b=q.call(Array(b),0),this[M]=b},y=function DataView(a,b,d){l(this,y,t),l(a,x,t);var e=a[M],f=m(b);if(f<0||f>e)throw A("Wrong offset!");if(d=d===c?e-f:n(d),f+d>e)throw A(v);this[L]=a,this[N]=f,this[M]=d},f&&(W(x,J,"_l"),W(y,I,"_b"),W(y,J,"_l"),W(y,K,"_o")),j(y[u],{getInt8:function getInt8(a){return X(this,1,a)[0]<<24>>24},getUint8:function getUint8(a){return X(this,1,a)[0]},getInt16:function getInt16(a){var b=X(this,2,a,arguments[1]);return(b[1]<<8|b[0])<<16>>16},getUint16:function getUint16(a){var b=X(this,2,a,arguments[1]);return b[1]<<8|b[0]},getInt32:function getInt32(a){return Q(X(this,4,a,arguments[1]))},getUint32:function getUint32(a){return Q(X(this,4,a,arguments[1]))>>>0},getFloat32:function getFloat32(a){return P(X(this,4,a,arguments[1]),23,4)},getFloat64:function getFloat64(a){return P(X(this,8,a,arguments[1]),52,8)},setInt8:function setInt8(a,b){Y(this,1,a,R,b)},setUint8:function setUint8(a,b){Y(this,1,a,R,b)},setInt16:function setInt16(a,b){Y(this,2,a,S,b,arguments[2])},setUint16:function setUint16(a,b){Y(this,2,a,S,b,arguments[2])},setInt32:function setInt32(a,b){Y(this,4,a,T,b,arguments[2])},setUint32:function setUint32(a,b){Y(this,4,a,T,b,arguments[2])},setFloat32:function setFloat32(a,b){Y(this,4,a,V,b,arguments[2])},setFloat64:function setFloat64(a,b){Y(this,8,a,U,b,arguments[2])}});r(x,s),r(y,t),i(y[u],h.VIEW,!0),b[s]=x,b[t]=y},function(a,b,c){var d=c(6);d(d.G+d.W+d.F*!c(216).ABV,{DataView:c(217).DataView})},function(a,b,c){c(220)("Int8",1,function(a){return function Int8Array(b,c,d){return a(this,b,c,d)}})},function(a,b,d){if(d(4)){var e=d(26),f=d(2),g=d(5),h=d(6),i=d(216),j=d(217),k=d(8),l=d(184),m=d(17),n=d(10),o=d(189),p=d(36),q=d(35),r=d(37),s=d(16),t=d(3),u=d(69),v=d(152),w=d(13),x=d(56),y=d(149),z=d(44),A=d(57),B=d(48).f,C=d(151),D=d(20),E=d(23),F=d(160),G=d(34),H=d(186),I=d(179),J=d(130),K=d(153),L=d(182),M=d(176),N=d(173),O=d(11),P=d(49),Q=O.f,R=P.f,S=f.RangeError,T=f.TypeError,U=f.Uint8Array,V="ArrayBuffer",W="Shared"+V,X="BYTES_PER_ELEMENT",Y="prototype",Z=Array[Y],$=j.ArrayBuffer,_=j.DataView,aa=F(0),ba=F(2),ca=F(3),da=F(4),ea=F(5),fa=F(6),ga=G(!0),ha=G(!1),ia=I.values,ja=I.keys,ka=I.entries,la=Z.lastIndexOf,ma=Z.reduce,na=Z.reduceRight,oa=Z.join,pa=Z.sort,qa=Z.slice,ra=Z.toString,sa=Z.toLocaleString,ta=E("iterator"),ua=E("toStringTag"),va=D("typed_constructor"),wa=D("def_constructor"),xa=i.CONSTR,ya=i.TYPED,za=i.VIEW,Aa="Wrong length!",Ba=F(1,function(a,b){return Ha(H(a,a[wa]),b)}),Ca=g(function(){return 1===new U(new Uint16Array([1]).buffer)[0]}),Da=!!U&&!!U[Y].set&&g(function(){new U(1).set({})}),Ea=function(a,b){if(a===c)throw T(Aa);var d=+a,e=q(a);if(b&&!u(d,e))throw S(Aa);return e},Fa=function(a,b){var c=p(a);if(c<0||c%b)throw S("Wrong offset!");return c},Ga=function(a){if(w(a)&&ya in a)return a;throw T(a+" is not a typed array!")},Ha=function(a,b){if(!(w(a)&&va in a))throw T("It is not a typed array constructor!");return new a(b)},Ia=function(a,b){return Ja(H(a,a[wa]),b)},Ja=function(a,b){for(var c=0,d=b.length,e=Ha(a,d);d>c;)e[c]=b[c++];return e},Ka=function(a,b,c){Q(a,b,{get:function(){return this._d[c]}})},La=function from(a){var b,d,e,f,g,h,i=x(a),j=arguments.length,l=j>1?arguments[1]:c,m=l!==c,n=C(i);if(n!=c&&!y(n)){for(h=n.call(i),e=[],b=0;!(g=h.next()).done;b++)e.push(g.value);i=e}for(m&&j>2&&(l=k(l,arguments[2],2)),b=0,d=q(i.length),f=Ha(this,d);d>b;b++)f[b]=m?l(i[b],b):i[b];return f},Ma=function of(){for(var a=0,b=arguments.length,c=Ha(this,b);b>a;)c[a]=arguments[a++];return c},Na=!!U&&g(function(){sa.call(new U(1))}),Oa=function toLocaleString(){return sa.apply(Na?qa.call(Ga(this)):Ga(this),arguments)},Pa={copyWithin:function copyWithin(a,b){return N.call(Ga(this),a,b,arguments.length>2?arguments[2]:c)},every:function every(a){return da(Ga(this),a,arguments.length>1?arguments[1]:c)},fill:function fill(a){return M.apply(Ga(this),arguments)},filter:function filter(a){return Ia(this,ba(Ga(this),a,arguments.length>1?arguments[1]:c))},find:function find(a){return ea(Ga(this),a,arguments.length>1?arguments[1]:c)},findIndex:function findIndex(a){return fa(Ga(this),a,arguments.length>1?arguments[1]:c)},forEach:function forEach(a){aa(Ga(this),a,arguments.length>1?arguments[1]:c)},indexOf:function indexOf(a){return ha(Ga(this),a,arguments.length>1?arguments[1]:c)},includes:function includes(a){return ga(Ga(this),a,arguments.length>1?arguments[1]:c)},join:function join(a){return oa.apply(Ga(this),arguments)},lastIndexOf:function lastIndexOf(a){return la.apply(Ga(this),arguments)},map:function map(a){return Ba(Ga(this),a,arguments.length>1?arguments[1]:c)},reduce:function reduce(a){return ma.apply(Ga(this),arguments)},reduceRight:function reduceRight(a){return na.apply(Ga(this),arguments)},reverse:function reverse(){for(var a,b=this,c=Ga(b).length,d=Math.floor(c/2),e=0;e<d;)a=b[e],b[e++]=b[--c],b[c]=a;return b},some:function some(a){return ca(Ga(this),a,arguments.length>1?arguments[1]:c)},sort:function sort(a){return pa.call(Ga(this),a)},subarray:function subarray(a,b){var d=Ga(this),e=d.length,f=r(a,e);return new(H(d,d[wa]))(d.buffer,d.byteOffset+f*d.BYTES_PER_ELEMENT,q((b===c?e:r(b,e))-f))}},Qa=function slice(a,b){return Ia(this,qa.call(Ga(this),a,b))},Ra=function set(a){Ga(this);var b=Fa(arguments[1],1),c=this.length,d=x(a),e=q(d.length),f=0;if(e+b>c)throw S(Aa);for(;f<e;)this[b+f]=d[f++]},Sa={entries:function entries(){return ka.call(Ga(this))},keys:function keys(){return ja.call(Ga(this))},values:function values(){return ia.call(Ga(this))}},Ta=function(a,b){return w(a)&&a[ya]&&"symbol"!=typeof b&&b in a&&String(+b)==String(b)},Ua=function getOwnPropertyDescriptor(a,b){return Ta(a,b=s(b,!0))?m(2,a[b]):R(a,b)},Va=function defineProperty(a,b,c){return!(Ta(a,b=s(b,!0))&&w(c)&&t(c,"value"))||t(c,"get")||t(c,"set")||c.configurable||t(c,"writable")&&!c.writable||t(c,"enumerable")&&!c.enumerable?Q(a,b,c):(a[b]=c.value,a)};xa||(P.f=Ua,O.f=Va),h(h.S+h.F*!xa,"Object",{getOwnPropertyDescriptor:Ua,defineProperty:Va}),g(function(){ra.call({})})&&(ra=sa=function toString(){return oa.call(this)});var Wa=o({},Pa);o(Wa,Sa),n(Wa,ta,Sa.values),o(Wa,{slice:Qa,set:Ra,constructor:function(){},toString:ra,toLocaleString:Oa}),Ka(Wa,"buffer","b"),Ka(Wa,"byteOffset","o"),Ka(Wa,"byteLength","l"),Ka(Wa,"length","e"),Q(Wa,ua,{get:function(){return this[ya]}}),a.exports=function(a,b,d,j){j=!!j;var k=a+(j?"Clamped":"")+"Array",m="Uint8Array"!=k,o="get"+a,p="set"+a,r=f[k],s=r||{},t=r&&A(r),u=!r||!i.ABV,x={},y=r&&r[Y],C=function(a,c){var d=a._d;return d.v[o](c*b+d.o,Ca)},D=function(a,c,d){var e=a._d;j&&(d=(d=Math.round(d))<0?0:d>255?255:255&d),e.v[p](c*b+e.o,d,Ca)},E=function(a,b){Q(a,b,{get:function(){return C(this,b)},set:function(a){return D(this,b,a)},enumerable:!0})};u?(r=d(function(a,d,e,f){l(a,r,k,"_d");var g,h,i,j,m=0,o=0;if(w(d)){if(!(d instanceof $||(j=v(d))==V||j==W))return ya in d?Ja(r,d):La.call(r,d);g=d,o=Fa(e,b);var p=d.byteLength;if(f===c){if(p%b)throw S(Aa);if(h=p-o,h<0)throw S(Aa)}else if(h=q(f)*b,h+o>p)throw S(Aa);i=h/b}else i=Ea(d,!0),h=i*b,g=new $(h);for(n(a,"_d",{b:g,o:o,l:h,e:i,v:new _(g)});m<i;)E(a,m++)}),y=r[Y]=z(Wa),n(y,"constructor",r)):K(function(a){new r(null),new r(a)},!0)||(r=d(function(a,d,e,f){l(a,r,k);var g;return w(d)?d instanceof $||(g=v(d))==V||g==W?f!==c?new s(d,Fa(e,b),f):e!==c?new s(d,Fa(e,b)):new s(d):ya in d?Ja(r,d):La.call(r,d):new s(Ea(d,m))}),aa(t!==Function.prototype?B(s).concat(B(t)):B(s),function(a){a in r||n(r,a,s[a])}),r[Y]=y,e||(y.constructor=r));var F=y[ta],G=!!F&&("values"==F.name||F.name==c),H=Sa.values;n(r,va,!0),n(y,ya,k),n(y,za,!0),n(y,wa,r),(j?new r(1)[ua]==k:ua in y)||Q(y,ua,{get:function(){return k}}),x[k]=r,h(h.G+h.W+h.F*(r!=s),x),h(h.S,k,{BYTES_PER_ELEMENT:b,from:La,of:Ma}),X in y||n(y,X,b),h(h.P,k,Pa),L(k),h(h.P+h.F*Da,k,{set:Ra}),h(h.P+h.F*!G,k,Sa),h(h.P+h.F*(y.toString!=ra),k,{toString:ra}),h(h.P+h.F*g(function(){new r(1).slice()}),k,{slice:Qa}),h(h.P+h.F*(g(function(){return[1,2].toLocaleString()!=new r([1,2]).toLocaleString()})||!g(function(){y.toLocaleString.call([1,2])})),k,{toLocaleString:Oa}),J[k]=G?F:H,e||G||n(y,ta,H)}}else a.exports=function(){}},function(a,b,c){c(220)("Uint8",1,function(a){return function Uint8Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(220)("Uint8",1,function(a){return function Uint8ClampedArray(b,c,d){return a(this,b,c,d)}},!0)},function(a,b,c){c(220)("Int16",2,function(a){return function Int16Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(220)("Uint16",2,function(a){return function Uint16Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(220)("Int32",4,function(a){return function Int32Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(220)("Uint32",4,function(a){return function Uint32Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(220)("Float32",4,function(a){return function Float32Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(220)("Float64",8,function(a){return function Float64Array(b,c,d){return a(this,b,c,d)}})},function(a,b,d){var e=d(6),f=d(34)(!0);e(e.P,"Array",{includes:function includes(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(174)("includes")},function(a,b,c){var d=c(6),e=c(120)(!0);d(d.P,"String",{at:function at(a){return e(this,a)}})},function(a,b,d){var e=d(6),f=d(232);e(e.P,"String",{padStart:function padStart(a){return f(this,a,arguments.length>1?arguments[1]:c,!0)}})},function(a,b,d){var e=d(35),f=d(78),g=d(33);a.exports=function(a,b,d,h){var i=String(g(a)),j=i.length,k=d===c?" ":String(d),l=e(b);if(l<=j||""==k)return i;var m=l-j,n=f.call(k,Math.ceil(m/k.length));return n.length>m&&(n=n.slice(0,m)),h?n+i:i+n}},function(a,b,d){var e=d(6),f=d(232);e(e.P,"String",{padEnd:function padEnd(a){return f(this,a,arguments.length>1?arguments[1]:c,!1)}})},function(a,b,c){c(90)("trimLeft",function(a){return function trimLeft(){return a(this,1)}},"trimStart")},function(a,b,c){c(90)("trimRight",function(a){return function trimRight(){return a(this,2)}},"trimEnd")},function(a,b,c){var d=c(6),e=c(33),f=c(35),g=c(123),h=c(237),i=RegExp.prototype,j=function(a,b){this._r=a,this._s=b};c(131)(j,"RegExp String",function next(){var a=this._r.exec(this._s);return{value:a,done:null===a}}),d(d.P,"String",{matchAll:function matchAll(a){if(e(this),!g(a))throw TypeError(a+" is not a regexp!");var b=String(this),c="flags"in i?String(a.flags):h.call(a),d=new RegExp(a.source,~c.indexOf("g")?c:"g"+c);
+return d.lastIndex=f(a.lastIndex),new j(d,b)}})},function(a,b,c){var d=c(12);a.exports=function(){var a=d(this),b="";return a.global&&(b+="g"),a.ignoreCase&&(b+="i"),a.multiline&&(b+="m"),a.unicode&&(b+="u"),a.sticky&&(b+="y"),b}},function(a,b,c){c(25)("asyncIterator")},function(a,b,c){c(25)("observable")},function(a,b,c){var d=c(6),e=c(208),f=c(30),g=c(49),h=c(150);d(d.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(a){for(var b,c=f(a),d=g.f,i=e(c),j={},k=0;i.length>k;)h(j,b=i[k++],d(c,b));return j}})},function(a,b,c){var d=c(6),e=c(242)(!1);d(d.S,"Object",{values:function values(a){return e(a)}})},function(a,b,c){var d=c(28),e=c(30),f=c(42).f;a.exports=function(a){return function(b){for(var c,g=e(b),h=d(g),i=h.length,j=0,k=[];i>j;)f.call(g,c=h[j++])&&k.push(a?[c,g[c]]:g[c]);return k}}},function(a,b,c){var d=c(6),e=c(242)(!0);d(d.S,"Object",{entries:function entries(a){return e(a)}})},function(a,b,c){var d=c(6),e=c(56),f=c(9),g=c(11);c(4)&&d(d.P+c(245),"Object",{__defineGetter__:function __defineGetter__(a,b){g.f(e(this),a,{get:f(b),enumerable:!0,configurable:!0})}})},function(a,b,c){a.exports=c(26)||!c(5)(function(){var a=Math.random();__defineSetter__.call(null,a,function(){}),delete c(2)[a]})},function(a,b,c){var d=c(6),e=c(56),f=c(9),g=c(11);c(4)&&d(d.P+c(245),"Object",{__defineSetter__:function __defineSetter__(a,b){g.f(e(this),a,{set:f(b),enumerable:!0,configurable:!0})}})},function(a,b,c){var d=c(6),e=c(56),f=c(16),g=c(57),h=c(49).f;c(4)&&d(d.P+c(245),"Object",{__lookupGetter__:function __lookupGetter__(a){var b,c=e(this),d=f(a,!0);do if(b=h(c,d))return b.get;while(c=g(c))}})},function(a,b,c){var d=c(6),e=c(56),f=c(16),g=c(57),h=c(49).f;c(4)&&d(d.P+c(245),"Object",{__lookupSetter__:function __lookupSetter__(a){var b,c=e(this),d=f(a,!0);do if(b=h(c,d))return b.set;while(c=g(c))}})},function(a,b,c){var d=c(6);d(d.P+d.R,"Map",{toJSON:c(250)("Map")})},function(a,b,c){var d=c(152),e=c(251);a.exports=function(a){return function toJSON(){if(d(this)!=a)throw TypeError(a+"#toJSON isn't generic");return e(this)}}},function(a,b,c){var d=c(185);a.exports=function(a,b){var c=[];return d(a,!1,c.push,c,b),c}},function(a,b,c){var d=c(6);d(d.P+d.R,"Set",{toJSON:c(250)("Set")})},function(a,b,c){var d=c(6);d(d.S,"System",{global:c(2)})},function(a,b,c){var d=c(6),e=c(32);d(d.S,"Error",{isError:function isError(a){return"Error"===e(a)}})},function(a,b,c){var d=c(6);d(d.S,"Math",{iaddh:function iaddh(a,b,c,d){var e=a>>>0,f=b>>>0,g=c>>>0;return f+(d>>>0)+((e&g|(e|g)&~(e+g>>>0))>>>31)|0}})},function(a,b,c){var d=c(6);d(d.S,"Math",{isubh:function isubh(a,b,c,d){var e=a>>>0,f=b>>>0,g=c>>>0;return f-(d>>>0)-((~e&g|~(e^g)&e-g>>>0)>>>31)|0}})},function(a,b,c){var d=c(6);d(d.S,"Math",{imulh:function imulh(a,b){var c=65535,d=+a,e=+b,f=d&c,g=e&c,h=d>>16,i=e>>16,j=(h*g>>>0)+(f*g>>>16);return h*i+(j>>16)+((f*i>>>0)+(j&c)>>16)}})},function(a,b,c){var d=c(6);d(d.S,"Math",{umulh:function umulh(a,b){var c=65535,d=+a,e=+b,f=d&c,g=e&c,h=d>>>16,i=e>>>16,j=(h*g>>>0)+(f*g>>>16);return h*i+(j>>>16)+((f*i>>>0)+(j&c)>>>16)}})},function(a,b,c){var d=c(260),e=c(12),f=d.key,g=d.set;d.exp({defineMetadata:function defineMetadata(a,b,c,d){g(a,b,e(c),f(d))}})},function(a,b,d){var e=d(190),f=d(6),g=d(21)("metadata"),h=g.store||(g.store=new(d(194))),i=function(a,b,d){var f=h.get(a);if(!f){if(!d)return c;h.set(a,f=new e)}var g=f.get(b);if(!g){if(!d)return c;f.set(b,g=new e)}return g},j=function(a,b,d){var e=i(b,d,!1);return e!==c&&e.has(a)},k=function(a,b,d){var e=i(b,d,!1);return e===c?c:e.get(a)},l=function(a,b,c,d){i(c,d,!0).set(a,b)},m=function(a,b){var c=i(a,b,!1),d=[];return c&&c.forEach(function(a,b){d.push(b)}),d},n=function(a){return a===c||"symbol"==typeof a?a:String(a)},o=function(a){f(f.S,"Reflect",a)};a.exports={store:h,map:i,has:j,get:k,set:l,keys:m,key:n,exp:o}},function(a,b,d){var e=d(260),f=d(12),g=e.key,h=e.map,i=e.store;e.exp({deleteMetadata:function deleteMetadata(a,b){var d=arguments.length<3?c:g(arguments[2]),e=h(f(b),d,!1);if(e===c||!e["delete"](a))return!1;if(e.size)return!0;var j=i.get(b);return j["delete"](d),!!j.size||i["delete"](b)}})},function(a,b,d){var e=d(260),f=d(12),g=d(57),h=e.has,i=e.get,j=e.key,k=function(a,b,d){var e=h(a,b,d);if(e)return i(a,b,d);var f=g(b);return null!==f?k(a,f,d):c};e.exp({getMetadata:function getMetadata(a,b){return k(a,f(b),arguments.length<3?c:j(arguments[2]))}})},function(a,b,d){var e=d(193),f=d(251),g=d(260),h=d(12),i=d(57),j=g.keys,k=g.key,l=function(a,b){var c=j(a,b),d=i(a);if(null===d)return c;var g=l(d,b);return g.length?c.length?f(new e(c.concat(g))):g:c};g.exp({getMetadataKeys:function getMetadataKeys(a){return l(h(a),arguments.length<2?c:k(arguments[1]))}})},function(a,b,d){var e=d(260),f=d(12),g=e.get,h=e.key;e.exp({getOwnMetadata:function getOwnMetadata(a,b){return g(a,f(b),arguments.length<3?c:h(arguments[2]))}})},function(a,b,d){var e=d(260),f=d(12),g=e.keys,h=e.key;e.exp({getOwnMetadataKeys:function getOwnMetadataKeys(a){return g(f(a),arguments.length<2?c:h(arguments[1]))}})},function(a,b,d){var e=d(260),f=d(12),g=d(57),h=e.has,i=e.key,j=function(a,b,c){var d=h(a,b,c);if(d)return!0;var e=g(b);return null!==e&&j(a,e,c)};e.exp({hasMetadata:function hasMetadata(a,b){return j(a,f(b),arguments.length<3?c:i(arguments[2]))}})},function(a,b,d){var e=d(260),f=d(12),g=e.has,h=e.key;e.exp({hasOwnMetadata:function hasOwnMetadata(a,b){return g(a,f(b),arguments.length<3?c:h(arguments[2]))}})},function(a,b,d){var e=d(260),f=d(12),g=d(9),h=e.key,i=e.set;e.exp({metadata:function metadata(a,b){return function decorator(d,e){i(a,b,(e!==c?f:g)(d),h(e))}}})},function(a,b,c){var d=c(6),e=c(188)(),f=c(2).process,g="process"==c(32)(f);d(d.G,{asap:function asap(a){var b=g&&f.domain;e(b?b.bind(a):a)}})},function(a,b,d){var e=d(6),f=d(2),g=d(7),h=d(188)(),i=d(23)("observable"),j=d(9),k=d(12),l=d(184),m=d(189),n=d(10),o=d(185),p=o.RETURN,q=function(a){return null==a?c:j(a)},r=function(a){var b=a._c;b&&(a._c=c,b())},s=function(a){return a._o===c},t=function(a){s(a)||(a._o=c,r(a))},u=function(a,b){k(a),this._c=c,this._o=a,a=new v(this);try{var d=b(a),e=d;null!=d&&("function"==typeof d.unsubscribe?d=function(){e.unsubscribe()}:j(d),this._c=d)}catch(f){return void a.error(f)}s(this)&&r(this)};u.prototype=m({},{unsubscribe:function unsubscribe(){t(this)}});var v=function(a){this._s=a};v.prototype=m({},{next:function next(a){var b=this._s;if(!s(b)){var c=b._o;try{var d=q(c.next);if(d)return d.call(c,a)}catch(e){try{t(b)}finally{throw e}}}},error:function error(a){var b=this._s;if(s(b))throw a;var d=b._o;b._o=c;try{var e=q(d.error);if(!e)throw a;a=e.call(d,a)}catch(f){try{r(b)}finally{throw f}}return r(b),a},complete:function complete(a){var b=this._s;if(!s(b)){var d=b._o;b._o=c;try{var e=q(d.complete);a=e?e.call(d,a):c}catch(f){try{r(b)}finally{throw f}}return r(b),a}}});var w=function Observable(a){l(this,w,"Observable","_f")._f=j(a)};m(w.prototype,{subscribe:function subscribe(a){return new u(a,this._f)},forEach:function forEach(a){var b=this;return new(g.Promise||f.Promise)(function(c,d){j(a);var e=b.subscribe({next:function(b){try{return a(b)}catch(c){d(c),e.unsubscribe()}},error:d,complete:c})})}}),m(w,{from:function from(a){var b="function"==typeof this?this:w,c=q(k(a)[i]);if(c){var d=k(c.call(a));return d.constructor===b?d:new b(function(a){return d.subscribe(a)})}return new b(function(b){var c=!1;return h(function(){if(!c){try{if(o(a,!1,function(a){if(b.next(a),c)return p})===p)return}catch(d){if(c)throw d;return void b.error(d)}b.complete()}}),function(){c=!0}})},of:function of(){for(var a=0,b=arguments.length,c=Array(b);a<b;)c[a]=arguments[a++];return new("function"==typeof this?this:w)(function(a){var b=!1;return h(function(){if(!b){for(var d=0;d<c.length;++d)if(a.next(c[d]),b)return;a.complete()}}),function(){b=!0}})}}),n(w.prototype,i,function(){return this}),e(e.G,{Observable:w}),d(182)("Observable")},function(a,b,c){var d=c(6),e=c(187);d(d.G+d.B,{setImmediate:e.set,clearImmediate:e.clear})},function(a,b,c){c(179);for(var d=c(2),e=c(10),f=c(130),g=c(23)("toStringTag"),h=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],i=0;i<5;i++){var j=h[i],k=d[j],l=k&&k.prototype;l&&!l[g]&&e(l,g,j),f[j]=f.Array}},function(a,b,c){var d=c(2),e=c(6),f=c(74),g=c(274),h=d.navigator,i=!!h&&/MSIE .\./.test(h.userAgent),j=function(a){return i?function(b,c){return a(f(g,[].slice.call(arguments,2),"function"==typeof b?b:Function(b)),c)}:a};e(e.G+e.B+e.F*i,{setTimeout:j(d.setTimeout),setInterval:j(d.setInterval)})},function(a,b,c){var d=c(275),e=c(74),f=c(9);a.exports=function(){for(var a=f(this),b=arguments.length,c=Array(b),g=0,h=d._,i=!1;b>g;)(c[g]=arguments[g++])===h&&(i=!0);return function(){var d,f=this,g=arguments.length,j=0,k=0;if(!i&&!g)return e(a,c,f);if(d=c.slice(),i)for(;b>j;j++)d[j]===h&&(d[j]=arguments[k++]);for(;g>k;)d.push(arguments[k++]);return e(a,d,f)}}},function(a,b,c){a.exports=c(7)},function(a,b,d){function Dict(a){var b=i(null);return a!=c&&(p(a)?o(a,!0,function(a,c){b[a]=c}):h(b,a)),b}function reduce(a,b,c){n(b);var d,e,f=t(a),g=k(f),h=g.length,i=0;if(arguments.length<3){if(!h)throw TypeError("Reduce of empty object with no initial value");d=f[g[i++]]}else d=Object(c);for(;h>i;)v(f,e=g[i++])&&(d=b(d,f[e],e,a));return d}function includes(a,b){return(b==b?m(a,b):x(a,function(a){return a!=a}))!==c}function get(a,b){if(v(a,b))return a[b]}function set(a,b,c){return u&&b in Object?l.f(a,b,g(0,c)):a[b]=c,a}function isDict(a){return s(a)&&j(a)===Dict.prototype}var e=d(8),f=d(6),g=d(17),h=d(67),i=d(44),j=d(57),k=d(28),l=d(11),m=d(27),n=d(9),o=d(185),p=d(277),q=d(131),r=d(180),s=d(13),t=d(30),u=d(4),v=d(3),w=function(a){var b=1==a,d=4==a;return function(f,g,h){var i,j,k,l=e(g,h,3),m=t(f),n=b||7==a||2==a?new("function"==typeof this?this:Dict):c;for(i in m)if(v(m,i)&&(j=m[i],k=l(j,i,f),a))if(b)n[i]=k;else if(k)switch(a){case 2:n[i]=j;break;case 3:return!0;case 5:return j;case 6:return i;case 7:n[k[0]]=k[1]}else if(d)return!1;return 3==a||d?d:n}},x=w(6),y=function(a){return function(b){return new z(b,a)}},z=function(a,b){this._t=t(a),this._a=k(a),this._i=0,this._k=b};q(z,"Dict",function(){var a,b=this,d=b._t,e=b._a,f=b._k;do if(b._i>=e.length)return b._t=c,r(1);while(!v(d,a=e[b._i++]));return"keys"==f?r(0,a):"values"==f?r(0,d[a]):r(0,[a,d[a]])}),Dict.prototype=null,f(f.G+f.F,{Dict:Dict}),f(f.S,"Dict",{keys:y("keys"),values:y("values"),entries:y("entries"),forEach:w(0),map:w(1),filter:w(2),some:w(3),every:w(4),find:w(5),findKey:x,mapPairs:w(7),reduce:reduce,keyOf:m,includes:includes,has:v,get:get,set:set,isDict:isDict})},function(a,b,d){var e=d(152),f=d(23)("iterator"),g=d(130);a.exports=d(7).isIterable=function(a){var b=Object(a);return b[f]!==c||"@@iterator"in b||g.hasOwnProperty(e(b))}},function(a,b,c){var d=c(12),e=c(151);a.exports=c(7).getIterator=function(a){var b=e(a);if("function"!=typeof b)throw TypeError(a+" is not iterable!");return d(b.call(a))}},function(a,b,c){var d=c(2),e=c(7),f=c(6),g=c(274);f(f.G+f.F,{delay:function delay(a){return new(e.Promise||d.Promise)(function(b){setTimeout(g.call(b,!0),a)})}})},function(a,b,c){var d=c(275),e=c(6);c(7)._=d._=d._||{},e(e.P+e.F,"Function",{part:c(274)})},function(a,b,c){var d=c(6);d(d.S+d.F,"Object",{isObject:c(13)})},function(a,b,c){var d=c(6);d(d.S+d.F,"Object",{classof:c(152)})},function(a,b,c){var d=c(6),e=c(284);d(d.S+d.F,"Object",{define:e})},function(a,b,c){var d=c(11),e=c(49),f=c(208),g=c(30);a.exports=function define(a,b){for(var c,h=f(g(b)),i=h.length,j=0;i>j;)d.f(a,c=h[j++],e.f(b,c));return a}},function(a,b,c){var d=c(6),e=c(284),f=c(44);d(d.S+d.F,"Object",{make:function(a,b){return e(f(a),b)}})},function(a,b,d){d(129)(Number,"Number",function(a){this._l=+a,this._i=0},function(){var a=this._i++,b=!(a<this._l);return{done:b,value:b?c:a}})},function(a,b,c){var d=c(6),e=c(288)(/[\\^$*+?.()|[\]{}]/g,"\\$&");d(d.S,"RegExp",{escape:function escape(a){return e(a)}})},function(a,b){a.exports=function(a,b){var c=b===Object(b)?function(a){return b[a]}:b;return function(b){return String(b).replace(a,c)}}},function(a,b,c){var d=c(6),e=c(288)(/[&<>"']/g,{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&apos;"});d(d.P+d.F,"String",{escapeHTML:function escapeHTML(){return e(this)}})},function(a,b,c){var d=c(6),e=c(288)(/&(?:amp|lt|gt|quot|apos);/g,{"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&apos;":"'"});d(d.P+d.F,"String",{unescapeHTML:function unescapeHTML(){return e(this)}})}]),"undefined"!=typeof module&&module.exports?module.exports=a:"function"==typeof define&&define.amd?define(function(){return a}):b.core=a}(1,1);
//# sourceMappingURL=library.min.js.map \ No newline at end of file
diff --git a/node_modules/core-js/client/library.min.js.map b/node_modules/core-js/client/library.min.js.map
index 56305ad67..d62fab82e 100644
--- a/node_modules/core-js/client/library.min.js.map
+++ b/node_modules/core-js/client/library.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["library.js"],"names":["__e","__g","undefined","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","IE8_DOM_DEFINE","$","$export","DESCRIPTORS","createDesc","html","cel","has","cof","invoke","fails","anObject","aFunction","isObject","toObject","toIObject","toInteger","toIndex","toLength","IObject","IE_PROTO","createArrayMethod","arrayIndexOf","ObjectProto","Object","prototype","ArrayProto","Array","arraySlice","slice","arrayJoin","join","defineProperty","setDesc","getOwnDescriptor","getDesc","defineProperties","setDescs","factories","get","a","O","P","Attributes","e","TypeError","value","propertyIsEnumerable","Properties","keys","getKeys","length","i","S","F","getOwnPropertyDescriptor","keys1","split","keys2","concat","keysLen1","createDict","iframeDocument","iframe","gt","style","display","appendChild","src","contentWindow","document","open","write","close","createGetKeys","names","object","key","result","push","Empty","getPrototypeOf","getProto","constructor","getOwnPropertyNames","getNames","create","construct","len","args","n","Function","bind","that","fn","this","partArgs","arguments","bound","begin","end","klass","start","upTo","size","cloned","charAt","separator","isArray","createArrayReduce","isRight","callbackfn","memo","index","methodize","$fn","arg1","forEach","each","map","filter","some","every","reduce","reduceRight","indexOf","lastIndexOf","el","fromIndex","Math","min","now","Date","lz","num","toISOString","NaN","isFinite","RangeError","d","y","getUTCFullYear","getUTCMilliseconds","s","abs","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","$Object","isEnum","getSymbols","getOwnPropertySymbols","global","core","ctx","PROTOTYPE","type","name","source","own","out","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","B","IS_WRAP","W","target","C","param","window","self","version","b","apply","it","exec","bitmap","enumerable","configurable","writable","documentElement","is","createElement","hasOwnProperty","toString","un","defined","ceil","floor","isNaN","max","px","random","asc","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","val","res","f","SPECIES","original","arg","store","uid","Symbol","SHARED","IS_INCLUDES","redefine","$fails","shared","setToStringTag","wks","keyOf","$names","enumKeys","_create","$Symbol","$JSON","JSON","_stringify","stringify","setter","HIDDEN","SymbolRegistry","AllSymbols","useNative","setSymbolDesc","D","protoDesc","wrap","tag","sym","_k","set","isSymbol","$defineProperty","$defineProperties","l","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","$stringify","replacer","$replacer","$$","buggyJSON","symbolStatics","for","keyFor","useSetter","useSimple","def","TAG","stat","windowNames","getWindowNames","symbols","assign","A","K","k","T","$$len","j","x","setPrototypeOf","check","proto","test","buggy","__proto__","$freeze","freeze","KEY","exp","$seal","seal","$preventExtensions","preventExtensions","$isFrozen","isFrozen","$isSealed","isSealed","$isExtensible","isExtensible","$getPrototypeOf","$keys","HAS_INSTANCE","FunctionProto","EPSILON","pow","_isFinite","isInteger","number","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","parseFloat","parseInt","log1p","sqrt","$acosh","acosh","Number","MAX_VALUE","log","LN2","asinh","atanh","sign","cbrt","clz32","LOG2E","cosh","expm1","EPSILON32","MAX32","MIN32","roundTiesToEven","fround","$abs","$sign","Infinity","hypot","value1","value2","div","sum","larg","$imul","imul","UINT16","xn","yn","xl","yl","log10","LN10","log2","sinh","tanh","trunc","fromCharCode","String","$fromCodePoint","fromCodePoint","code","raw","callSite","tpl","$trim","trim","spaces","space","non","ltrim","RegExp","rtrim","exporter","string","replace","$at","codePointAt","pos","TO_STRING","charCodeAt","context","ENDS_WITH","$endsWith","endsWith","searchString","endPosition","search","isRegExp","NAME","MATCH","re","INCLUDES","includes","repeat","count","str","STARTS_WITH","$startsWith","startsWith","iterated","_t","_i","point","done","LIBRARY","hide","Iterators","$iterCreate","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","Constructor","next","DEFAULT","IS_SET","FORCED","methods","getMethod","kind","values","entries","DEF_VALUES","VALUES_BUG","$native","$default","IteratorPrototype","descriptor","isArrayIter","getIterFn","iter","from","arrayLike","step","iterator","mapfn","mapping","iterFn","ret","classof","getIteratorMethod","ARG","callee","SAFE_CLOSING","riter","skipClosing","safe","arr","of","addToUnscopables","Arguments","copyWithin","to","inc","fill","endPos","$find","forced","find","findIndex","Wrapper","strictNew","forOf","setProto","same","speciesConstructor","asap","PROMISE","process","isNode","empty","testResolve","sub","promise","resolve","USE_NATIVE","P2","works","then","thenableThenGotten","sameConstructor","getConstructor","isThenable","PromiseCapability","reject","$$resolve","$$reject","perform","error","notify","record","isReject","chain","v","ok","run","reaction","handler","fail","h","setTimeout","console","isUnhandled","emit","onunhandledrejection","reason","_d","$reject","r","$resolve","wrapper","Promise","executor","err","onFulfilled","onRejected","catch","capability","all","iterable","abrupt","remaining","results","alreadyCalled","race","head","last","macrotask","Observer","MutationObserver","WebKitMutationObserver","flush","parent","domain","exit","enter","nextTick","toggle","node","createTextNode","observe","characterData","data","task","defer","channel","port","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","counter","queue","ONREADYSTATECHANGE","listner","event","port2","port1","onmessage","postMessage","addEventListener","importScripts","removeChild","clear","strong","Map","entry","getEntry","redefineAll","$iterDefine","ID","$has","setSpecies","SIZE","fastKey","_f","ADDER","_l","delete","prev","setStrong","common","IS_WEAK","_c","IS_ADDER","Set","add","weak","frozenStore","WEAK","tmp","$WeakMap","WeakMap","method","arrayFind","arrayFindIndex","FrozenStore","findFrozen","splice","WeakSet","_apply","thisArgument","argumentsList","Reflect","Target","newTarget","$args","instance","propertyKey","attributes","deleteProperty","desc","Enumerate","enumerate","receiver","ownKeys","V","existingDescriptor","ownDesc","$includes","at","$pad","padLeft","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","padRight","trimLeft","trimRight","$re","escape","regExp","part","getOwnPropertyDescriptors","$values","isEntries","$entries","toJSON","$task","NodeList","HTMLCollection","partial","navigator","MSIE","userAgent","time","setInterval","path","pargs","_","holder","Dict","dict","isIterable","init","findKey","isDict","createDictMethod","createDictIter","DictIterator","_a","mapPairs","getIterator","delay","define","mixin","make","&","<",">","\"","'","escapeHTML","&amp;","&lt;","&gt;","&quot;","&apos;","unescapeHTML","enabled","$console","enable","disable","$ctx","$Array","statics","setStatics","amd"],"mappings":"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","file":"library.min.js"} \ No newline at end of file
+{"version":3,"sources":["library.js"],"names":["__e","__g","undefined","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","global","has","DESCRIPTORS","$export","redefine","META","KEY","$fails","shared","setToStringTag","uid","wks","wksExt","wksDefine","keyOf","enumKeys","isArray","anObject","toIObject","toPrimitive","createDesc","_create","gOPNExt","$GOPD","$DP","$keys","gOPD","f","dP","gOPN","$Symbol","Symbol","$JSON","JSON","_stringify","stringify","PROTOTYPE","HIDDEN","TO_PRIMITIVE","isEnum","propertyIsEnumerable","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","Object","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","get","this","value","a","it","key","D","protoDesc","wrap","tag","sym","_k","isSymbol","iterator","$defineProperty","defineProperty","enumerable","$defineProperties","defineProperties","P","keys","i","l","length","$create","create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","$getOwnPropertyNames","getOwnPropertyNames","names","result","push","$getOwnPropertySymbols","getOwnPropertySymbols","IS_OP","TypeError","arguments","$set","configurable","set","toString","name","G","W","F","symbols","split","store","S","for","keyFor","useSetter","useSimple","replacer","$replacer","args","apply","valueOf","Math","window","self","Function","hasOwnProperty","exec","e","core","ctx","hide","type","source","own","out","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","B","IS_WRAP","expProto","target","C","b","virtual","R","U","version","aFunction","fn","that","object","IE8_DOM_DEFINE","O","Attributes","isObject","document","is","createElement","val","bitmap","writable","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","fastKey","getWeak","onFreeze","meta","NEED","px","random","concat","SHARED","def","TAG","stat","prototype","USE_SYMBOL","$exports","LIBRARY","charAt","getKeys","el","index","enumBugKeys","arrayIndexOf","IE_PROTO","IObject","defined","cof","slice","toLength","toIndex","IS_INCLUDES","$this","fromIndex","toInteger","min","ceil","floor","isNaN","max","gOPS","pIE","getSymbols","Array","arg","dPs","Empty","createDict","iframeDocument","iframe","lt","gt","style","display","appendChild","src","contentWindow","open","write","close","Properties","documentElement","windowNames","getWindowNames","hiddenKeys","fails","exp","toObject","$getPrototypeOf","getPrototypeOf","constructor","$freeze","freeze","$seal","seal","$preventExtensions","$isFrozen","isFrozen","$isSealed","isSealed","$isExtensible","assign","$assign","A","K","forEach","k","join","T","aLen","j","x","y","setPrototypeOf","check","proto","test","buggy","__proto__","bind","invoke","arraySlice","factories","construct","len","n","partArgs","bound","un","HAS_INSTANCE","FunctionProto","aNumberValue","repeat","$toFixed","toFixed","data","ERROR","ZERO","multiply","c2","divide","numToString","s","t","String","pow","acc","log","x2","fractionDigits","z","RangeError","msg","count","str","res","Infinity","$toPrecision","toPrecision","precision","EPSILON","_isFinite","isFinite","isInteger","number","abs","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","$parseFloat","Number","parseFloat","$trim","trim","string","spaces","space","non","ltrim","RegExp","rtrim","exporter","ALIAS","FORCE","TYPE","replace","$parseInt","parseInt","ws","hex","radix","log1p","sqrt","$acosh","acosh","MAX_VALUE","NaN","LN2","asinh","$asinh","$atanh","atanh","sign","cbrt","clz32","LOG2E","cosh","$expm1","expm1","EPSILON32","MAX32","MIN32","roundTiesToEven","fround","$abs","$sign","hypot","value1","value2","div","sum","larg","$imul","imul","UINT16","xn","yn","xl","yl","log10","LN10","log2","sinh","tanh","trunc","fromCharCode","$fromCodePoint","fromCodePoint","code","raw","callSite","tpl","$at","codePointAt","pos","TO_STRING","charCodeAt","context","ENDS_WITH","$endsWith","endsWith","searchString","endPosition","end","search","isRegExp","NAME","MATCH","re","INCLUDES","includes","indexOf","STARTS_WITH","$startsWith","startsWith","iterated","_t","_i","point","done","Iterators","$iterCreate","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","Constructor","next","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","values","entries","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","descriptor","createHTML","anchor","quot","attribute","p1","toLowerCase","big","blink","bold","fixed","fontcolor","color","fontsize","size","italics","link","url","small","strike","sub","sup","isArrayIter","createProperty","getIterFn","iter","from","arrayLike","step","mapfn","mapping","iterFn","ret","ArrayProto","classof","getIteratorMethod","ARG","tryGet","callee","SAFE_CLOSING","riter","skipClosing","safe","arr","of","arrayJoin","separator","method","html","begin","klass","start","upTo","cloned","$sort","sort","comparefn","$forEach","STRICT","callbackfn","asc","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","speciesConstructor","original","SPECIES","$map","map","$filter","filter","$some","some","$every","every","$reduce","reduce","memo","isRight","reduceRight","$indexOf","NEGATIVE_ZERO","searchElement","lastIndexOf","copyWithin","to","inc","fill","endPos","$find","forced","find","findIndex","addToUnscopables","Arguments","Internal","GenericPromiseCapability","Wrapper","anInstance","forOf","task","microtask","PROMISE","process","$Promise","isNode","empty","promise","resolve","FakePromise","PromiseRejectionEvent","then","sameConstructor","isThenable","newPromiseCapability","PromiseCapability","reject","$$resolve","$$reject","perform","error","notify","isReject","_n","chain","_c","_v","ok","_s","run","reaction","handler","fail","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","abrupt","console","isUnhandled","emit","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_d","_w","$resolve","wrapper","Promise","executor","err","onFulfilled","onRejected","catch","r","capability","all","iterable","remaining","$index","alreadyCalled","race","forbiddenField","BREAK","RETURN","defer","channel","port","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","counter","queue","ONREADYSTATECHANGE","listener","event","nextTick","port2","port1","onmessage","postMessage","addEventListener","importScripts","removeChild","setTimeout","clear","macrotask","Observer","MutationObserver","WebKitMutationObserver","head","last","flush","parent","toggle","node","createTextNode","observe","characterData","strong","Map","entry","getEntry","v","redefineAll","$iterDefine","setSpecies","SIZE","_f","getConstructor","ADDER","_l","delete","prev","setStrong","each","common","IS_WEAK","IS_ADDER","Set","add","InternalMap","weak","uncaughtFrozenStore","ufstore","tmp","WeakMap","$WeakMap","createArrayMethod","$has","arrayFind","arrayFindIndex","UncaughtFrozenStore","findUncaughtFrozen","splice","WeakSet","rApply","Reflect","fApply","thisArgument","argumentsList","L","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","instance","propertyKey","attributes","deleteProperty","desc","Enumerate","enumerate","receiver","getProto","ownKeys","V","existingDescriptor","ownDesc","setProto","now","Date","getTime","toJSON","toISOString","pv","lz","num","d","getUTCFullYear","getUTCMilliseconds","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","$typed","buffer","ArrayBuffer","$ArrayBuffer","$DataView","DataView","$isView","ABV","isView","$slice","VIEW","ARRAY_BUFFER","CONSTR","byteLength","first","final","viewS","viewT","setUint8","getUint8","Typed","TYPED","TypedArrayConstructors","arrayFill","DATA_VIEW","WRONG_LENGTH","WRONG_INDEX","BaseBuffer","BUFFER","BYTE_LENGTH","BYTE_OFFSET","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","eLen","eMax","eBias","rt","unpackIEEE754","nBits","unpackI32","bytes","packI8","packI16","packI32","packF64","packF32","addGetter","internal","view","isLittleEndian","numIndex","intIndex","_b","pack","reverse","conversion","validateArrayBufferArguments","numberLength","ArrayBufferProto","$setInt8","setInt8","getInt8","byteOffset","bufferLength","offset","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","init","Int8Array","$buffer","propertyDesc","same","createArrayIncludes","ArrayIterators","$iterDetect","arrayCopyWithin","Uint8Array","SHARED_BUFFER","BYTES_PER_ELEMENT","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayIncludes","arrayValues","arrayKeys","arrayEntries","arrayLastIndexOf","arrayReduce","arrayReduceRight","arraySort","arrayToString","arrayToLocaleString","toLocaleString","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","TYPED_ARRAY","allocate","LITTLE_ENDIAN","Uint16Array","FORCED_SET","strictToLength","SAME","toOffset","BYTES","validate","speciesFromList","list","fromList","$from","$of","TO_LOCALE_BUG","$toLocaleString","predicate","middle","subarray","$begin","$iterators","isTAIndex","$getDesc","$setDesc","$TypedArrayPrototype$","CLAMPED","ISNT_UINT8","GETTER","SETTER","TypedArray","TAC","TypedArrayPrototype","getter","o","round","addElement","$offset","$length","$len","$nativeIterator","CORRECT_ITER_NAME","$iterator","Uint8ClampedArray","Int16Array","Int32Array","Uint32Array","Float32Array","Float64Array","$includes","at","$pad","padStart","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","padEnd","trimLeft","trimRight","getFlags","RegExpProto","$RegExpStringIterator","regexp","_r","match","matchAll","flags","rx","lastIndex","ignoreCase","multiline","unicode","sticky","getOwnPropertyDescriptors","getDesc","$values","isEntries","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","isError","iaddh","x0","x1","y0","y1","$x0","$x1","$y0","isubh","imulh","u","$u","$v","u0","v0","u1","v1","umulh","metadata","toMetaKey","ordinaryDefineOwnMetadata","defineMetadata","metadataKey","metadataValue","targetKey","getOrCreateMetadataMap","targetMetadata","keyMetadata","ordinaryHasOwnMetadata","MetadataKey","metadataMap","ordinaryGetOwnMetadata","MetadataValue","ordinaryOwnMetadataKeys","_","deleteMetadata","ordinaryGetMetadata","hasOwn","getMetadata","ordinaryMetadataKeys","oKeys","pKeys","getMetadataKeys","getOwnMetadata","getOwnMetadataKeys","ordinaryHasMetadata","hasMetadata","hasOwnMetadata","decorator","asap","OBSERVABLE","cleanupSubscription","subscription","cleanup","subscriptionClosed","_o","closeSubscription","Subscription","observer","subscriber","SubscriptionObserver","unsubscribe","complete","$Observable","Observable","subscribe","observable","items","$task","TO_STRING_TAG","collections","Collection","partial","navigator","MSIE","userAgent","time","setInterval","path","pargs","holder","Dict","dict","isIterable","findKey","isDict","createDictMethod","createDictIter","DictIterator","mapPairs","getIterator","delay","part","define","mixin","make","$re","escape","regExp","&","<",">","\"","'","escapeHTML","&amp;","&lt;","&gt;","&quot;","&apos;","unescapeHTML","amd"],"mappings":";;;;;;CAMC,SAASA,EAAKC,EAAKC,GACpB,cACS,SAAUC,GAKT,QAASC,qBAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,MAAOC,GAAiBD,GAAUE,OAGnC,IAAIC,GAASF,EAAiBD,IAC7BE,WACAE,GAAIJ,EACJK,QAAQ,EAUT,OANAP,GAAQE,GAAUM,KAAKH,EAAOD,QAASC,EAAQA,EAAOD,QAASH,qBAG/DI,EAAOE,QAAS,EAGTF,EAAOD,QAvBf,GAAID,KAqCJ,OATAF,qBAAoBQ,EAAIT,EAGxBC,oBAAoBS,EAAIP,EAGxBF,oBAAoBU,EAAI,GAGjBV,oBAAoB,KAK/B,SAASI,EAAQD,EAASH,GAE/BA,EAAoB,GACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,K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","file":"library.min.js"} \ No newline at end of file
diff --git a/node_modules/core-js/client/shim.js b/node_modules/core-js/client/shim.js
index 7a24843dd..2947f9375 100644
--- a/node_modules/core-js/client/shim.js
+++ b/node_modules/core-js/client/shim.js
@@ -1,5 +1,5 @@
/**
- * core-js 1.2.7
+ * core-js 2.4.1
* https://github.com/zloirock/core-js
* License: http://rock.mit-license.org
* © 2016 Denis Pushkarev
@@ -53,108 +53,180 @@
/***/ function(module, exports, __webpack_require__) {
__webpack_require__(1);
- __webpack_require__(34);
- __webpack_require__(40);
- __webpack_require__(42);
- __webpack_require__(44);
- __webpack_require__(46);
- __webpack_require__(48);
__webpack_require__(50);
__webpack_require__(51);
__webpack_require__(52);
- __webpack_require__(53);
__webpack_require__(54);
__webpack_require__(55);
- __webpack_require__(56);
- __webpack_require__(57);
__webpack_require__(58);
__webpack_require__(59);
__webpack_require__(60);
__webpack_require__(61);
+ __webpack_require__(62);
+ __webpack_require__(63);
__webpack_require__(64);
__webpack_require__(65);
__webpack_require__(66);
__webpack_require__(68);
- __webpack_require__(69);
__webpack_require__(70);
- __webpack_require__(71);
__webpack_require__(72);
- __webpack_require__(73);
__webpack_require__(74);
- __webpack_require__(76);
__webpack_require__(77);
__webpack_require__(78);
- __webpack_require__(80);
- __webpack_require__(81);
- __webpack_require__(82);
- __webpack_require__(84);
- __webpack_require__(85);
+ __webpack_require__(79);
+ __webpack_require__(83);
__webpack_require__(86);
__webpack_require__(87);
__webpack_require__(88);
__webpack_require__(89);
- __webpack_require__(90);
__webpack_require__(91);
__webpack_require__(92);
__webpack_require__(93);
__webpack_require__(94);
__webpack_require__(95);
- __webpack_require__(96);
__webpack_require__(97);
__webpack_require__(99);
+ __webpack_require__(100);
+ __webpack_require__(101);
__webpack_require__(103);
__webpack_require__(104);
- __webpack_require__(106);
+ __webpack_require__(105);
__webpack_require__(107);
+ __webpack_require__(108);
+ __webpack_require__(109);
__webpack_require__(111);
+ __webpack_require__(112);
+ __webpack_require__(113);
+ __webpack_require__(114);
+ __webpack_require__(115);
__webpack_require__(116);
__webpack_require__(117);
+ __webpack_require__(118);
+ __webpack_require__(119);
__webpack_require__(120);
+ __webpack_require__(121);
__webpack_require__(122);
+ __webpack_require__(123);
__webpack_require__(124);
__webpack_require__(126);
- __webpack_require__(127);
- __webpack_require__(128);
__webpack_require__(130);
__webpack_require__(131);
+ __webpack_require__(132);
__webpack_require__(133);
- __webpack_require__(134);
- __webpack_require__(135);
- __webpack_require__(136);
+ __webpack_require__(137);
+ __webpack_require__(139);
+ __webpack_require__(140);
+ __webpack_require__(141);
+ __webpack_require__(142);
__webpack_require__(143);
+ __webpack_require__(144);
+ __webpack_require__(145);
__webpack_require__(146);
__webpack_require__(147);
+ __webpack_require__(148);
__webpack_require__(149);
__webpack_require__(150);
__webpack_require__(151);
__webpack_require__(152);
- __webpack_require__(153);
- __webpack_require__(154);
- __webpack_require__(155);
- __webpack_require__(156);
- __webpack_require__(157);
__webpack_require__(158);
__webpack_require__(159);
- __webpack_require__(160);
+ __webpack_require__(161);
__webpack_require__(162);
__webpack_require__(163);
- __webpack_require__(164);
- __webpack_require__(165);
- __webpack_require__(166);
__webpack_require__(167);
+ __webpack_require__(168);
__webpack_require__(169);
__webpack_require__(170);
__webpack_require__(171);
- __webpack_require__(172);
+ __webpack_require__(173);
__webpack_require__(174);
__webpack_require__(175);
- __webpack_require__(177);
- __webpack_require__(178);
- __webpack_require__(180);
+ __webpack_require__(176);
+ __webpack_require__(179);
__webpack_require__(181);
__webpack_require__(182);
__webpack_require__(183);
- module.exports = __webpack_require__(186);
+ __webpack_require__(185);
+ __webpack_require__(187);
+ __webpack_require__(189);
+ __webpack_require__(190);
+ __webpack_require__(191);
+ __webpack_require__(193);
+ __webpack_require__(194);
+ __webpack_require__(195);
+ __webpack_require__(196);
+ __webpack_require__(203);
+ __webpack_require__(206);
+ __webpack_require__(207);
+ __webpack_require__(209);
+ __webpack_require__(210);
+ __webpack_require__(211);
+ __webpack_require__(212);
+ __webpack_require__(213);
+ __webpack_require__(214);
+ __webpack_require__(215);
+ __webpack_require__(216);
+ __webpack_require__(217);
+ __webpack_require__(218);
+ __webpack_require__(219);
+ __webpack_require__(220);
+ __webpack_require__(222);
+ __webpack_require__(223);
+ __webpack_require__(224);
+ __webpack_require__(225);
+ __webpack_require__(226);
+ __webpack_require__(227);
+ __webpack_require__(228);
+ __webpack_require__(229);
+ __webpack_require__(231);
+ __webpack_require__(234);
+ __webpack_require__(235);
+ __webpack_require__(237);
+ __webpack_require__(238);
+ __webpack_require__(239);
+ __webpack_require__(240);
+ __webpack_require__(241);
+ __webpack_require__(242);
+ __webpack_require__(243);
+ __webpack_require__(244);
+ __webpack_require__(245);
+ __webpack_require__(246);
+ __webpack_require__(247);
+ __webpack_require__(249);
+ __webpack_require__(250);
+ __webpack_require__(251);
+ __webpack_require__(252);
+ __webpack_require__(253);
+ __webpack_require__(254);
+ __webpack_require__(255);
+ __webpack_require__(256);
+ __webpack_require__(258);
+ __webpack_require__(259);
+ __webpack_require__(261);
+ __webpack_require__(262);
+ __webpack_require__(263);
+ __webpack_require__(264);
+ __webpack_require__(267);
+ __webpack_require__(268);
+ __webpack_require__(269);
+ __webpack_require__(270);
+ __webpack_require__(271);
+ __webpack_require__(272);
+ __webpack_require__(273);
+ __webpack_require__(274);
+ __webpack_require__(276);
+ __webpack_require__(277);
+ __webpack_require__(278);
+ __webpack_require__(279);
+ __webpack_require__(280);
+ __webpack_require__(281);
+ __webpack_require__(282);
+ __webpack_require__(283);
+ __webpack_require__(284);
+ __webpack_require__(285);
+ __webpack_require__(286);
+ __webpack_require__(287);
+ module.exports = __webpack_require__(288);
/***/ },
@@ -162,309 +234,289 @@
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , $export = __webpack_require__(3)
- , DESCRIPTORS = __webpack_require__(8)
- , createDesc = __webpack_require__(7)
- , html = __webpack_require__(14)
- , cel = __webpack_require__(15)
- , has = __webpack_require__(17)
- , cof = __webpack_require__(18)
- , invoke = __webpack_require__(19)
- , fails = __webpack_require__(9)
- , anObject = __webpack_require__(20)
- , aFunction = __webpack_require__(13)
- , isObject = __webpack_require__(16)
- , toObject = __webpack_require__(21)
- , toIObject = __webpack_require__(23)
- , toInteger = __webpack_require__(25)
- , toIndex = __webpack_require__(26)
- , toLength = __webpack_require__(27)
- , IObject = __webpack_require__(24)
- , IE_PROTO = __webpack_require__(11)('__proto__')
- , createArrayMethod = __webpack_require__(28)
- , arrayIndexOf = __webpack_require__(33)(false)
- , ObjectProto = Object.prototype
- , ArrayProto = Array.prototype
- , arraySlice = ArrayProto.slice
- , arrayJoin = ArrayProto.join
- , defineProperty = $.setDesc
- , getOwnDescriptor = $.getDesc
- , defineProperties = $.setDescs
- , factories = {}
- , IE8_DOM_DEFINE;
-
- if(!DESCRIPTORS){
- IE8_DOM_DEFINE = !fails(function(){
- return defineProperty(cel('div'), 'a', {get: function(){ return 7; }}).a != 7;
- });
- $.setDesc = function(O, P, Attributes){
- if(IE8_DOM_DEFINE)try {
- return defineProperty(O, P, Attributes);
- } catch(e){ /* empty */ }
- if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
- if('value' in Attributes)anObject(O)[P] = Attributes.value;
- return O;
- };
- $.getDesc = function(O, P){
- if(IE8_DOM_DEFINE)try {
- return getOwnDescriptor(O, P);
- } catch(e){ /* empty */ }
- if(has(O, P))return createDesc(!ObjectProto.propertyIsEnumerable.call(O, P), O[P]);
- };
- $.setDescs = defineProperties = function(O, Properties){
- anObject(O);
- var keys = $.getKeys(Properties)
- , length = keys.length
- , i = 0
- , P;
- while(length > i)$.setDesc(O, P = keys[i++], Properties[P]);
- return O;
- };
- }
- $export($export.S + $export.F * !DESCRIPTORS, 'Object', {
- // 19.1.2.6 / 15.2.3.3 Object.getOwnPropertyDescriptor(O, P)
- getOwnPropertyDescriptor: $.getDesc,
- // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
- defineProperty: $.setDesc,
- // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
- defineProperties: defineProperties
- });
-
- // IE 8- don't enum bug keys
- var keys1 = ('constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,' +
- 'toLocaleString,toString,valueOf').split(',')
- // Additional keys for getOwnPropertyNames
- , keys2 = keys1.concat('length', 'prototype')
- , keysLen1 = keys1.length;
-
- // Create object with `null` prototype: use iframe Object with cleared prototype
- var createDict = function(){
- // Thrash, waste and sodomy: IE GC bug
- var iframe = cel('iframe')
- , i = keysLen1
- , gt = '>'
- , iframeDocument;
- iframe.style.display = 'none';
- html.appendChild(iframe);
- iframe.src = 'javascript:'; // eslint-disable-line no-script-url
- // createDict = iframe.contentWindow.Object;
- // html.removeChild(iframe);
- iframeDocument = iframe.contentWindow.document;
- iframeDocument.open();
- iframeDocument.write('<script>document.F=Object</script' + gt);
- iframeDocument.close();
- createDict = iframeDocument.F;
- while(i--)delete createDict.prototype[keys1[i]];
- return createDict();
+ // ECMAScript 6 symbols shim
+ var global = __webpack_require__(2)
+ , has = __webpack_require__(3)
+ , DESCRIPTORS = __webpack_require__(4)
+ , $export = __webpack_require__(6)
+ , redefine = __webpack_require__(16)
+ , META = __webpack_require__(20).KEY
+ , $fails = __webpack_require__(5)
+ , shared = __webpack_require__(21)
+ , setToStringTag = __webpack_require__(22)
+ , uid = __webpack_require__(17)
+ , wks = __webpack_require__(23)
+ , wksExt = __webpack_require__(24)
+ , wksDefine = __webpack_require__(25)
+ , keyOf = __webpack_require__(27)
+ , enumKeys = __webpack_require__(40)
+ , isArray = __webpack_require__(43)
+ , anObject = __webpack_require__(10)
+ , toIObject = __webpack_require__(30)
+ , toPrimitive = __webpack_require__(14)
+ , createDesc = __webpack_require__(15)
+ , _create = __webpack_require__(44)
+ , gOPNExt = __webpack_require__(47)
+ , $GOPD = __webpack_require__(49)
+ , $DP = __webpack_require__(9)
+ , $keys = __webpack_require__(28)
+ , gOPD = $GOPD.f
+ , dP = $DP.f
+ , gOPN = gOPNExt.f
+ , $Symbol = global.Symbol
+ , $JSON = global.JSON
+ , _stringify = $JSON && $JSON.stringify
+ , PROTOTYPE = 'prototype'
+ , HIDDEN = wks('_hidden')
+ , TO_PRIMITIVE = wks('toPrimitive')
+ , isEnum = {}.propertyIsEnumerable
+ , SymbolRegistry = shared('symbol-registry')
+ , AllSymbols = shared('symbols')
+ , OPSymbols = shared('op-symbols')
+ , ObjectProto = Object[PROTOTYPE]
+ , USE_NATIVE = typeof $Symbol == 'function'
+ , QObject = global.QObject;
+ // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
+ var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
+
+ // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
+ var setSymbolDesc = DESCRIPTORS && $fails(function(){
+ return _create(dP({}, 'a', {
+ get: function(){ return dP(this, 'a', {value: 7}).a; }
+ })).a != 7;
+ }) ? function(it, key, D){
+ var protoDesc = gOPD(ObjectProto, key);
+ if(protoDesc)delete ObjectProto[key];
+ dP(it, key, D);
+ if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);
+ } : dP;
+
+ var wrap = function(tag){
+ var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
+ sym._k = tag;
+ return sym;
};
- var createGetKeys = function(names, length){
- return function(object){
- var O = toIObject(object)
- , i = 0
- , result = []
- , key;
- for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
- // Don't enum bug & hidden keys
- while(length > i)if(has(O, key = names[i++])){
- ~arrayIndexOf(result, key) || result.push(key);
- }
- return result;
- };
+
+ var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){
+ return typeof it == 'symbol';
+ } : function(it){
+ return it instanceof $Symbol;
};
- var Empty = function(){};
- $export($export.S, 'Object', {
- // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
- getPrototypeOf: $.getProto = $.getProto || function(O){
- O = toObject(O);
- if(has(O, IE_PROTO))return O[IE_PROTO];
- if(typeof O.constructor == 'function' && O instanceof O.constructor){
- return O.constructor.prototype;
- } return O instanceof Object ? ObjectProto : null;
- },
- // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
- getOwnPropertyNames: $.getNames = $.getNames || createGetKeys(keys2, keys2.length, true),
- // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
- create: $.create = $.create || function(O, /*?*/Properties){
- var result;
- if(O !== null){
- Empty.prototype = anObject(O);
- result = new Empty();
- Empty.prototype = null;
- // add "__proto__" for Object.getPrototypeOf shim
- result[IE_PROTO] = O;
- } else result = createDict();
- return Properties === undefined ? result : defineProperties(result, Properties);
- },
- // 19.1.2.14 / 15.2.3.14 Object.keys(O)
- keys: $.getKeys = $.getKeys || createGetKeys(keys1, keysLen1, false)
- });
- var construct = function(F, len, args){
- if(!(len in factories)){
- for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';
- factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
- }
- return factories[len](F, args);
+ var $defineProperty = function defineProperty(it, key, D){
+ if(it === ObjectProto)$defineProperty(OPSymbols, key, D);
+ anObject(it);
+ key = toPrimitive(key, true);
+ anObject(D);
+ if(has(AllSymbols, key)){
+ if(!D.enumerable){
+ if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));
+ it[HIDDEN][key] = true;
+ } else {
+ if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
+ D = _create(D, {enumerable: createDesc(0, false)});
+ } return setSymbolDesc(it, key, D);
+ } return dP(it, key, D);
+ };
+ var $defineProperties = function defineProperties(it, P){
+ anObject(it);
+ var keys = enumKeys(P = toIObject(P))
+ , i = 0
+ , l = keys.length
+ , key;
+ while(l > i)$defineProperty(it, key = keys[i++], P[key]);
+ return it;
+ };
+ var $create = function create(it, P){
+ return P === undefined ? _create(it) : $defineProperties(_create(it), P);
+ };
+ var $propertyIsEnumerable = function propertyIsEnumerable(key){
+ var E = isEnum.call(this, key = toPrimitive(key, true));
+ if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;
+ return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
+ };
+ var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
+ it = toIObject(it);
+ key = toPrimitive(key, true);
+ if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;
+ var D = gOPD(it, key);
+ if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
+ return D;
+ };
+ var $getOwnPropertyNames = function getOwnPropertyNames(it){
+ var names = gOPN(toIObject(it))
+ , result = []
+ , i = 0
+ , key;
+ while(names.length > i){
+ if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);
+ } return result;
+ };
+ var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
+ var IS_OP = it === ObjectProto
+ , names = gOPN(IS_OP ? OPSymbols : toIObject(it))
+ , result = []
+ , i = 0
+ , key;
+ while(names.length > i){
+ if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);
+ } return result;
};
- // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
- $export($export.P, 'Function', {
- bind: function bind(that /*, args... */){
- var fn = aFunction(this)
- , partArgs = arraySlice.call(arguments, 1);
- var bound = function(/* args... */){
- var args = partArgs.concat(arraySlice.call(arguments));
- return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
+ // 19.4.1.1 Symbol([description])
+ if(!USE_NATIVE){
+ $Symbol = function Symbol(){
+ if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');
+ var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
+ var $set = function(value){
+ if(this === ObjectProto)$set.call(OPSymbols, value);
+ if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
+ setSymbolDesc(this, tag, createDesc(1, value));
};
- if(isObject(fn.prototype))bound.prototype = fn.prototype;
- return bound;
- }
- });
+ if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});
+ return wrap(tag);
+ };
+ redefine($Symbol[PROTOTYPE], 'toString', function toString(){
+ return this._k;
+ });
- // fallback for not array-like ES3 strings and DOM objects
- $export($export.P + $export.F * fails(function(){
- if(html)arraySlice.call(html);
- }), 'Array', {
- slice: function(begin, end){
- var len = toLength(this.length)
- , klass = cof(this);
- end = end === undefined ? len : end;
- if(klass == 'Array')return arraySlice.call(this, begin, end);
- var start = toIndex(begin, len)
- , upTo = toIndex(end, len)
- , size = toLength(upTo - start)
- , cloned = Array(size)
- , i = 0;
- for(; i < size; i++)cloned[i] = klass == 'String'
- ? this.charAt(start + i)
- : this[start + i];
- return cloned;
+ $GOPD.f = $getOwnPropertyDescriptor;
+ $DP.f = $defineProperty;
+ __webpack_require__(48).f = gOPNExt.f = $getOwnPropertyNames;
+ __webpack_require__(42).f = $propertyIsEnumerable;
+ __webpack_require__(41).f = $getOwnPropertySymbols;
+
+ if(DESCRIPTORS && !__webpack_require__(26)){
+ redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
}
- });
- $export($export.P + $export.F * (IObject != Object), 'Array', {
- join: function join(separator){
- return arrayJoin.call(IObject(this), separator === undefined ? ',' : separator);
+
+ wksExt.f = function(name){
+ return wrap(wks(name));
}
- });
+ }
- // 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
- $export($export.S, 'Array', {isArray: __webpack_require__(30)});
+ $export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});
- var createArrayReduce = function(isRight){
- return function(callbackfn, memo){
- aFunction(callbackfn);
- var O = IObject(this)
- , length = toLength(O.length)
- , index = isRight ? length - 1 : 0
- , i = isRight ? -1 : 1;
- if(arguments.length < 2)for(;;){
- if(index in O){
- memo = O[index];
- index += i;
- break;
- }
- index += i;
- if(isRight ? index < 0 : length <= index){
- throw TypeError('Reduce of empty array with no initial value');
- }
- }
- for(;isRight ? index >= 0 : length > index; index += i)if(index in O){
- memo = callbackfn(memo, O[index], index, this);
- }
- return memo;
- };
- };
+ for(var symbols = (
+ // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
+ 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
+ ).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);
- var methodize = function($fn){
- return function(arg1/*, arg2 = undefined */){
- return $fn(this, arg1, arguments[1]);
- };
- };
+ for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);
- $export($export.P, 'Array', {
- // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
- forEach: $.each = $.each || methodize(createArrayMethod(0)),
- // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
- map: methodize(createArrayMethod(1)),
- // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
- filter: methodize(createArrayMethod(2)),
- // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
- some: methodize(createArrayMethod(3)),
- // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
- every: methodize(createArrayMethod(4)),
- // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
- reduce: createArrayReduce(false),
- // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
- reduceRight: createArrayReduce(true),
- // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
- indexOf: methodize(arrayIndexOf),
- // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
- lastIndexOf: function(el, fromIndex /* = @[*-1] */){
- var O = toIObject(this)
- , length = toLength(O.length)
- , index = length - 1;
- if(arguments.length > 1)index = Math.min(index, toInteger(fromIndex));
- if(index < 0)index = toLength(length + index);
- for(;index >= 0; index--)if(index in O)if(O[index] === el)return index;
- return -1;
+ $export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
+ // 19.4.2.1 Symbol.for(key)
+ 'for': function(key){
+ return has(SymbolRegistry, key += '')
+ ? SymbolRegistry[key]
+ : SymbolRegistry[key] = $Symbol(key);
+ },
+ // 19.4.2.5 Symbol.keyFor(sym)
+ keyFor: function keyFor(key){
+ if(isSymbol(key))return keyOf(SymbolRegistry, key);
+ throw TypeError(key + ' is not a symbol!');
+ },
+ useSetter: function(){ setter = true; },
+ useSimple: function(){ setter = false; }
+ });
+
+ $export($export.S + $export.F * !USE_NATIVE, 'Object', {
+ // 19.1.2.2 Object.create(O [, Properties])
+ create: $create,
+ // 19.1.2.4 Object.defineProperty(O, P, Attributes)
+ defineProperty: $defineProperty,
+ // 19.1.2.3 Object.defineProperties(O, Properties)
+ defineProperties: $defineProperties,
+ // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
+ getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
+ // 19.1.2.7 Object.getOwnPropertyNames(O)
+ getOwnPropertyNames: $getOwnPropertyNames,
+ // 19.1.2.8 Object.getOwnPropertySymbols(O)
+ getOwnPropertySymbols: $getOwnPropertySymbols
+ });
+
+ // 24.3.2 JSON.stringify(value [, replacer [, space]])
+ $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){
+ var S = $Symbol();
+ // MS Edge converts symbol values to JSON as {}
+ // WebKit converts symbol values to JSON as null
+ // V8 throws on boxed symbols
+ return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
+ })), 'JSON', {
+ stringify: function stringify(it){
+ if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
+ var args = [it]
+ , i = 1
+ , replacer, $replacer;
+ while(arguments.length > i)args.push(arguments[i++]);
+ replacer = args[1];
+ if(typeof replacer == 'function')$replacer = replacer;
+ if($replacer || !isArray(replacer))replacer = function(key, value){
+ if($replacer)value = $replacer.call(this, key, value);
+ if(!isSymbol(value))return value;
+ };
+ args[1] = replacer;
+ return _stringify.apply($JSON, args);
}
});
- // 20.3.3.1 / 15.9.4.4 Date.now()
- $export($export.S, 'Date', {now: function(){ return +new Date; }});
+ // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
+ $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(8)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
+ // 19.4.3.5 Symbol.prototype[@@toStringTag]
+ setToStringTag($Symbol, 'Symbol');
+ // 20.2.1.9 Math[@@toStringTag]
+ setToStringTag(Math, 'Math', true);
+ // 24.3.3 JSON[@@toStringTag]
+ setToStringTag(global.JSON, 'JSON', true);
- var lz = function(num){
- return num > 9 ? num : '0' + num;
+/***/ },
+/* 2 */
+/***/ function(module, exports) {
+
+ // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+ var global = module.exports = typeof window != 'undefined' && window.Math == Math
+ ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
+ if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
+
+/***/ },
+/* 3 */
+/***/ function(module, exports) {
+
+ var hasOwnProperty = {}.hasOwnProperty;
+ module.exports = function(it, key){
+ return hasOwnProperty.call(it, key);
};
- // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
- // PhantomJS / old WebKit has a broken implementations
- $export($export.P + $export.F * (fails(function(){
- return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';
- }) || !fails(function(){
- new Date(NaN).toISOString();
- })), 'Date', {
- toISOString: function toISOString(){
- if(!isFinite(this))throw RangeError('Invalid time value');
- var d = this
- , y = d.getUTCFullYear()
- , m = d.getUTCMilliseconds()
- , s = y < 0 ? '-' : y > 9999 ? '+' : '';
- return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
- '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
- 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
- ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
- }
+/***/ },
+/* 4 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // Thank's IE8 for his funny defineProperty
+ module.exports = !__webpack_require__(5)(function(){
+ return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
});
/***/ },
-/* 2 */
+/* 5 */
/***/ function(module, exports) {
- var $Object = Object;
- module.exports = {
- create: $Object.create,
- getProto: $Object.getPrototypeOf,
- isEnum: {}.propertyIsEnumerable,
- getDesc: $Object.getOwnPropertyDescriptor,
- setDesc: $Object.defineProperty,
- setDescs: $Object.defineProperties,
- getKeys: $Object.keys,
- getNames: $Object.getOwnPropertyNames,
- getSymbols: $Object.getOwnPropertySymbols,
- each: [].forEach
+ module.exports = function(exec){
+ try {
+ return !!exec();
+ } catch(e){
+ return true;
+ }
};
/***/ },
-/* 3 */
+/* 6 */
/***/ function(module, exports, __webpack_require__) {
- var global = __webpack_require__(4)
- , core = __webpack_require__(5)
- , hide = __webpack_require__(6)
- , redefine = __webpack_require__(10)
- , ctx = __webpack_require__(12)
+ var global = __webpack_require__(2)
+ , core = __webpack_require__(7)
+ , hide = __webpack_require__(8)
+ , redefine = __webpack_require__(16)
+ , ctx = __webpack_require__(18)
, PROTOTYPE = 'prototype';
var $export = function(type, name, source){
@@ -480,13 +532,13 @@
if(IS_GLOBAL)source = name;
for(key in source){
// contains in native
- own = !IS_FORCED && target && key in target;
+ own = !IS_FORCED && target && target[key] !== undefined;
// export native or passed
out = (own ? target : source)[key];
// bind timers to global for call from export context
exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
// extend global
- if(target && !own)redefine(target, key, out);
+ if(target)redefine(target, key, out, type & $export.U);
// export
if(exports[key] != out)hide(exports, key, exp);
if(IS_PROTO && expProto[key] != out)expProto[key] = out;
@@ -494,111 +546,164 @@
};
global.core = core;
// type bitmap
- $export.F = 1; // forced
- $export.G = 2; // global
- $export.S = 4; // static
- $export.P = 8; // proto
- $export.B = 16; // bind
- $export.W = 32; // wrap
+ $export.F = 1; // forced
+ $export.G = 2; // global
+ $export.S = 4; // static
+ $export.P = 8; // proto
+ $export.B = 16; // bind
+ $export.W = 32; // wrap
+ $export.U = 64; // safe
+ $export.R = 128; // real proto method for `library`
module.exports = $export;
/***/ },
-/* 4 */
-/***/ function(module, exports) {
-
- // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
- var global = module.exports = typeof window != 'undefined' && window.Math == Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
- if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
-
-/***/ },
-/* 5 */
+/* 7 */
/***/ function(module, exports) {
- var core = module.exports = {version: '1.2.6'};
+ var core = module.exports = {version: '2.4.0'};
if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
/***/ },
-/* 6 */
+/* 8 */
/***/ function(module, exports, __webpack_require__) {
- var $ = __webpack_require__(2)
- , createDesc = __webpack_require__(7);
- module.exports = __webpack_require__(8) ? function(object, key, value){
- return $.setDesc(object, key, createDesc(1, value));
+ var dP = __webpack_require__(9)
+ , createDesc = __webpack_require__(15);
+ module.exports = __webpack_require__(4) ? function(object, key, value){
+ return dP.f(object, key, createDesc(1, value));
} : function(object, key, value){
object[key] = value;
return object;
};
/***/ },
-/* 7 */
+/* 9 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var anObject = __webpack_require__(10)
+ , IE8_DOM_DEFINE = __webpack_require__(12)
+ , toPrimitive = __webpack_require__(14)
+ , dP = Object.defineProperty;
+
+ exports.f = __webpack_require__(4) ? Object.defineProperty : function defineProperty(O, P, Attributes){
+ anObject(O);
+ P = toPrimitive(P, true);
+ anObject(Attributes);
+ if(IE8_DOM_DEFINE)try {
+ return dP(O, P, Attributes);
+ } catch(e){ /* empty */ }
+ if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
+ if('value' in Attributes)O[P] = Attributes.value;
+ return O;
+ };
+
+/***/ },
+/* 10 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isObject = __webpack_require__(11);
+ module.exports = function(it){
+ if(!isObject(it))throw TypeError(it + ' is not an object!');
+ return it;
+ };
+
+/***/ },
+/* 11 */
/***/ function(module, exports) {
- module.exports = function(bitmap, value){
- return {
- enumerable : !(bitmap & 1),
- configurable: !(bitmap & 2),
- writable : !(bitmap & 4),
- value : value
- };
+ module.exports = function(it){
+ return typeof it === 'object' ? it !== null : typeof it === 'function';
};
/***/ },
-/* 8 */
+/* 12 */
/***/ function(module, exports, __webpack_require__) {
- // Thank's IE8 for his funny defineProperty
- module.exports = !__webpack_require__(9)(function(){
- return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
+ module.exports = !__webpack_require__(4) && !__webpack_require__(5)(function(){
+ return Object.defineProperty(__webpack_require__(13)('div'), 'a', {get: function(){ return 7; }}).a != 7;
});
/***/ },
-/* 9 */
+/* 13 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isObject = __webpack_require__(11)
+ , document = __webpack_require__(2).document
+ // in old IE typeof document.createElement is 'object'
+ , is = isObject(document) && isObject(document.createElement);
+ module.exports = function(it){
+ return is ? document.createElement(it) : {};
+ };
+
+/***/ },
+/* 14 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 7.1.1 ToPrimitive(input [, PreferredType])
+ var isObject = __webpack_require__(11);
+ // instead of the ES6 spec version, we didn't implement @@toPrimitive case
+ // and the second argument - flag - preferred type is a string
+ module.exports = function(it, S){
+ if(!isObject(it))return it;
+ var fn, val;
+ if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+ if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
+ if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+ throw TypeError("Can't convert object to primitive value");
+ };
+
+/***/ },
+/* 15 */
/***/ function(module, exports) {
- module.exports = function(exec){
- try {
- return !!exec();
- } catch(e){
- return true;
- }
+ module.exports = function(bitmap, value){
+ return {
+ enumerable : !(bitmap & 1),
+ configurable: !(bitmap & 2),
+ writable : !(bitmap & 4),
+ value : value
+ };
};
/***/ },
-/* 10 */
+/* 16 */
/***/ function(module, exports, __webpack_require__) {
- // add fake Function#toString
- // for correct work wrapped methods / constructors with methods like LoDash isNative
- var global = __webpack_require__(4)
- , hide = __webpack_require__(6)
- , SRC = __webpack_require__(11)('src')
+ var global = __webpack_require__(2)
+ , hide = __webpack_require__(8)
+ , has = __webpack_require__(3)
+ , SRC = __webpack_require__(17)('src')
, TO_STRING = 'toString'
, $toString = Function[TO_STRING]
, TPL = ('' + $toString).split(TO_STRING);
- __webpack_require__(5).inspectSource = function(it){
+ __webpack_require__(7).inspectSource = function(it){
return $toString.call(it);
};
(module.exports = function(O, key, val, safe){
- if(typeof val == 'function'){
- val.hasOwnProperty(SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
- val.hasOwnProperty('name') || hide(val, 'name', key);
- }
+ var isFunction = typeof val == 'function';
+ if(isFunction)has(val, 'name') || hide(val, 'name', key);
+ if(O[key] === val)return;
+ if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
if(O === global){
O[key] = val;
} else {
- if(!safe)delete O[key];
- hide(O, key, val);
+ if(!safe){
+ delete O[key];
+ hide(O, key, val);
+ } else {
+ if(O[key])O[key] = val;
+ else hide(O, key, val);
+ }
}
+ // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, TO_STRING, function toString(){
return typeof this == 'function' && this[SRC] || $toString.call(this);
});
/***/ },
-/* 11 */
+/* 17 */
/***/ function(module, exports) {
var id = 0
@@ -608,11 +713,11 @@
};
/***/ },
-/* 12 */
+/* 18 */
/***/ function(module, exports, __webpack_require__) {
// optional / simple context binding
- var aFunction = __webpack_require__(13);
+ var aFunction = __webpack_require__(19);
module.exports = function(fn, that, length){
aFunction(fn);
if(that === undefined)return fn;
@@ -633,7 +738,7 @@
};
/***/ },
-/* 13 */
+/* 19 */
/***/ function(module, exports) {
module.exports = function(it){
@@ -642,93 +747,210 @@
};
/***/ },
-/* 14 */
+/* 20 */
/***/ function(module, exports, __webpack_require__) {
- module.exports = __webpack_require__(4).document && document.documentElement;
+ var META = __webpack_require__(17)('meta')
+ , isObject = __webpack_require__(11)
+ , has = __webpack_require__(3)
+ , setDesc = __webpack_require__(9).f
+ , id = 0;
+ var isExtensible = Object.isExtensible || function(){
+ return true;
+ };
+ var FREEZE = !__webpack_require__(5)(function(){
+ return isExtensible(Object.preventExtensions({}));
+ });
+ var setMeta = function(it){
+ setDesc(it, META, {value: {
+ i: 'O' + ++id, // object ID
+ w: {} // weak collections IDs
+ }});
+ };
+ var fastKey = function(it, create){
+ // return primitive with prefix
+ if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+ if(!has(it, META)){
+ // can't set metadata to uncaught frozen object
+ if(!isExtensible(it))return 'F';
+ // not necessary to add metadata
+ if(!create)return 'E';
+ // add missing metadata
+ setMeta(it);
+ // return object ID
+ } return it[META].i;
+ };
+ var getWeak = function(it, create){
+ if(!has(it, META)){
+ // can't set metadata to uncaught frozen object
+ if(!isExtensible(it))return true;
+ // not necessary to add metadata
+ if(!create)return false;
+ // add missing metadata
+ setMeta(it);
+ // return hash weak collections IDs
+ } return it[META].w;
+ };
+ // add metadata on freeze-family methods calling
+ var onFreeze = function(it){
+ if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);
+ return it;
+ };
+ var meta = module.exports = {
+ KEY: META,
+ NEED: false,
+ fastKey: fastKey,
+ getWeak: getWeak,
+ onFreeze: onFreeze
+ };
/***/ },
-/* 15 */
+/* 21 */
/***/ function(module, exports, __webpack_require__) {
- var isObject = __webpack_require__(16)
- , document = __webpack_require__(4).document
- // in old IE typeof document.createElement is 'object'
- , is = isObject(document) && isObject(document.createElement);
- module.exports = function(it){
- return is ? document.createElement(it) : {};
+ var global = __webpack_require__(2)
+ , SHARED = '__core-js_shared__'
+ , store = global[SHARED] || (global[SHARED] = {});
+ module.exports = function(key){
+ return store[key] || (store[key] = {});
};
/***/ },
-/* 16 */
-/***/ function(module, exports) {
+/* 22 */
+/***/ function(module, exports, __webpack_require__) {
- module.exports = function(it){
- return typeof it === 'object' ? it !== null : typeof it === 'function';
+ var def = __webpack_require__(9).f
+ , has = __webpack_require__(3)
+ , TAG = __webpack_require__(23)('toStringTag');
+
+ module.exports = function(it, tag, stat){
+ if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
};
/***/ },
-/* 17 */
-/***/ function(module, exports) {
+/* 23 */
+/***/ function(module, exports, __webpack_require__) {
- var hasOwnProperty = {}.hasOwnProperty;
- module.exports = function(it, key){
- return hasOwnProperty.call(it, key);
+ var store = __webpack_require__(21)('wks')
+ , uid = __webpack_require__(17)
+ , Symbol = __webpack_require__(2).Symbol
+ , USE_SYMBOL = typeof Symbol == 'function';
+
+ var $exports = module.exports = function(name){
+ return store[name] || (store[name] =
+ USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};
+ $exports.store = store;
+
/***/ },
-/* 18 */
-/***/ function(module, exports) {
+/* 24 */
+/***/ function(module, exports, __webpack_require__) {
- var toString = {}.toString;
+ exports.f = __webpack_require__(23);
- module.exports = function(it){
- return toString.call(it).slice(8, -1);
+/***/ },
+/* 25 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var global = __webpack_require__(2)
+ , core = __webpack_require__(7)
+ , LIBRARY = __webpack_require__(26)
+ , wksExt = __webpack_require__(24)
+ , defineProperty = __webpack_require__(9).f;
+ module.exports = function(name){
+ var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
+ if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});
};
/***/ },
-/* 19 */
+/* 26 */
/***/ function(module, exports) {
- // fast apply, http://jsperf.lnkit.com/fast-apply/5
- module.exports = function(fn, args, that){
- var un = that === undefined;
- switch(args.length){
- case 0: return un ? fn()
- : fn.call(that);
- case 1: return un ? fn(args[0])
- : fn.call(that, args[0]);
- case 2: return un ? fn(args[0], args[1])
- : fn.call(that, args[0], args[1]);
- case 3: return un ? fn(args[0], args[1], args[2])
- : fn.call(that, args[0], args[1], args[2]);
- case 4: return un ? fn(args[0], args[1], args[2], args[3])
- : fn.call(that, args[0], args[1], args[2], args[3]);
- } return fn.apply(that, args);
+ module.exports = false;
+
+/***/ },
+/* 27 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var getKeys = __webpack_require__(28)
+ , toIObject = __webpack_require__(30);
+ module.exports = function(object, el){
+ var O = toIObject(object)
+ , keys = getKeys(O)
+ , length = keys.length
+ , index = 0
+ , key;
+ while(length > index)if(O[key = keys[index++]] === el)return key;
};
/***/ },
-/* 20 */
+/* 28 */
/***/ function(module, exports, __webpack_require__) {
- var isObject = __webpack_require__(16);
+ // 19.1.2.14 / 15.2.3.14 Object.keys(O)
+ var $keys = __webpack_require__(29)
+ , enumBugKeys = __webpack_require__(39);
+
+ module.exports = Object.keys || function keys(O){
+ return $keys(O, enumBugKeys);
+ };
+
+/***/ },
+/* 29 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var has = __webpack_require__(3)
+ , toIObject = __webpack_require__(30)
+ , arrayIndexOf = __webpack_require__(34)(false)
+ , IE_PROTO = __webpack_require__(38)('IE_PROTO');
+
+ module.exports = function(object, names){
+ var O = toIObject(object)
+ , i = 0
+ , result = []
+ , key;
+ for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
+ // Don't enum bug & hidden keys
+ while(names.length > i)if(has(O, key = names[i++])){
+ ~arrayIndexOf(result, key) || result.push(key);
+ }
+ return result;
+ };
+
+/***/ },
+/* 30 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // to indexed object, toObject with fallback for non-array-like ES3 strings
+ var IObject = __webpack_require__(31)
+ , defined = __webpack_require__(33);
module.exports = function(it){
- if(!isObject(it))throw TypeError(it + ' is not an object!');
- return it;
+ return IObject(defined(it));
};
/***/ },
-/* 21 */
+/* 31 */
/***/ function(module, exports, __webpack_require__) {
- // 7.1.13 ToObject(argument)
- var defined = __webpack_require__(22);
+ // fallback for non-array-like ES3 and non-enumerable old V8 strings
+ var cof = __webpack_require__(32);
+ module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
+ return cof(it) == 'String' ? it.split('') : Object(it);
+ };
+
+/***/ },
+/* 32 */
+/***/ function(module, exports) {
+
+ var toString = {}.toString;
+
module.exports = function(it){
- return Object(defined(it));
+ return toString.call(it).slice(8, -1);
};
/***/ },
-/* 22 */
+/* 33 */
/***/ function(module, exports) {
// 7.2.1 RequireObjectCoercible(argument)
@@ -738,28 +960,44 @@
};
/***/ },
-/* 23 */
+/* 34 */
/***/ function(module, exports, __webpack_require__) {
- // to indexed object, toObject with fallback for non-array-like ES3 strings
- var IObject = __webpack_require__(24)
- , defined = __webpack_require__(22);
- module.exports = function(it){
- return IObject(defined(it));
+ // false -> Array#indexOf
+ // true -> Array#includes
+ var toIObject = __webpack_require__(30)
+ , toLength = __webpack_require__(35)
+ , toIndex = __webpack_require__(37);
+ module.exports = function(IS_INCLUDES){
+ return function($this, el, fromIndex){
+ var O = toIObject($this)
+ , length = toLength(O.length)
+ , index = toIndex(fromIndex, length)
+ , value;
+ // Array#includes uses SameValueZero equality algorithm
+ if(IS_INCLUDES && el != el)while(length > index){
+ value = O[index++];
+ if(value != value)return true;
+ // Array#toIndex ignores holes, Array#includes - not
+ } else for(;length > index; index++)if(IS_INCLUDES || index in O){
+ if(O[index] === el)return IS_INCLUDES || index || 0;
+ } return !IS_INCLUDES && -1;
+ };
};
/***/ },
-/* 24 */
+/* 35 */
/***/ function(module, exports, __webpack_require__) {
- // fallback for non-array-like ES3 and non-enumerable old V8 strings
- var cof = __webpack_require__(18);
- module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
- return cof(it) == 'String' ? it.split('') : Object(it);
+ // 7.1.15 ToLength
+ var toInteger = __webpack_require__(36)
+ , min = Math.min;
+ module.exports = function(it){
+ return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};
/***/ },
-/* 25 */
+/* 36 */
/***/ function(module, exports) {
// 7.1.4 ToInteger
@@ -770,10 +1008,10 @@
};
/***/ },
-/* 26 */
+/* 37 */
/***/ function(module, exports, __webpack_require__) {
- var toInteger = __webpack_require__(25)
+ var toInteger = __webpack_require__(36)
, max = Math.max
, min = Math.min;
module.exports = function(index, length){
@@ -782,510 +1020,451 @@
};
/***/ },
-/* 27 */
+/* 38 */
/***/ function(module, exports, __webpack_require__) {
- // 7.1.15 ToLength
- var toInteger = __webpack_require__(25)
- , min = Math.min;
- module.exports = function(it){
- return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
+ var shared = __webpack_require__(21)('keys')
+ , uid = __webpack_require__(17);
+ module.exports = function(key){
+ return shared[key] || (shared[key] = uid(key));
};
/***/ },
-/* 28 */
-/***/ function(module, exports, __webpack_require__) {
+/* 39 */
+/***/ function(module, exports) {
- // 0 -> Array#forEach
- // 1 -> Array#map
- // 2 -> Array#filter
- // 3 -> Array#some
- // 4 -> Array#every
- // 5 -> Array#find
- // 6 -> Array#findIndex
- var ctx = __webpack_require__(12)
- , IObject = __webpack_require__(24)
- , toObject = __webpack_require__(21)
- , toLength = __webpack_require__(27)
- , asc = __webpack_require__(29);
- module.exports = function(TYPE){
- var IS_MAP = TYPE == 1
- , IS_FILTER = TYPE == 2
- , IS_SOME = TYPE == 3
- , IS_EVERY = TYPE == 4
- , IS_FIND_INDEX = TYPE == 6
- , NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
- return function($this, callbackfn, that){
- var O = toObject($this)
- , self = IObject(O)
- , f = ctx(callbackfn, that, 3)
- , length = toLength(self.length)
- , index = 0
- , result = IS_MAP ? asc($this, length) : IS_FILTER ? asc($this, 0) : undefined
- , val, res;
- for(;length > index; index++)if(NO_HOLES || index in self){
- val = self[index];
- res = f(val, index, O);
- if(TYPE){
- if(IS_MAP)result[index] = res; // map
- else if(res)switch(TYPE){
- case 3: return true; // some
- case 5: return val; // find
- case 6: return index; // findIndex
- case 2: result.push(val); // filter
- } else if(IS_EVERY)return false; // every
- }
- }
- return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
- };
- };
+ // IE 8- don't enum bug keys
+ module.exports = (
+ 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
+ ).split(',');
/***/ },
-/* 29 */
+/* 40 */
/***/ function(module, exports, __webpack_require__) {
- // 9.4.2.3 ArraySpeciesCreate(originalArray, length)
- var isObject = __webpack_require__(16)
- , isArray = __webpack_require__(30)
- , SPECIES = __webpack_require__(31)('species');
- module.exports = function(original, length){
- var C;
- if(isArray(original)){
- C = original.constructor;
- // cross-realm fallback
- if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;
- if(isObject(C)){
- C = C[SPECIES];
- if(C === null)C = undefined;
- }
- } return new (C === undefined ? Array : C)(length);
+ // all enumerable object keys, includes symbols
+ var getKeys = __webpack_require__(28)
+ , gOPS = __webpack_require__(41)
+ , pIE = __webpack_require__(42);
+ module.exports = function(it){
+ var result = getKeys(it)
+ , getSymbols = gOPS.f;
+ if(getSymbols){
+ var symbols = getSymbols(it)
+ , isEnum = pIE.f
+ , i = 0
+ , key;
+ while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);
+ } return result;
};
/***/ },
-/* 30 */
+/* 41 */
+/***/ function(module, exports) {
+
+ exports.f = Object.getOwnPropertySymbols;
+
+/***/ },
+/* 42 */
+/***/ function(module, exports) {
+
+ exports.f = {}.propertyIsEnumerable;
+
+/***/ },
+/* 43 */
/***/ function(module, exports, __webpack_require__) {
// 7.2.2 IsArray(argument)
- var cof = __webpack_require__(18);
- module.exports = Array.isArray || function(arg){
+ var cof = __webpack_require__(32);
+ module.exports = Array.isArray || function isArray(arg){
return cof(arg) == 'Array';
};
/***/ },
-/* 31 */
+/* 44 */
/***/ function(module, exports, __webpack_require__) {
- var store = __webpack_require__(32)('wks')
- , uid = __webpack_require__(11)
- , Symbol = __webpack_require__(4).Symbol;
- module.exports = function(name){
- return store[name] || (store[name] =
- Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));
+ // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
+ var anObject = __webpack_require__(10)
+ , dPs = __webpack_require__(45)
+ , enumBugKeys = __webpack_require__(39)
+ , IE_PROTO = __webpack_require__(38)('IE_PROTO')
+ , Empty = function(){ /* empty */ }
+ , PROTOTYPE = 'prototype';
+
+ // Create object with fake `null` prototype: use iframe Object with cleared prototype
+ var createDict = function(){
+ // Thrash, waste and sodomy: IE GC bug
+ var iframe = __webpack_require__(13)('iframe')
+ , i = enumBugKeys.length
+ , lt = '<'
+ , gt = '>'
+ , iframeDocument;
+ iframe.style.display = 'none';
+ __webpack_require__(46).appendChild(iframe);
+ iframe.src = 'javascript:'; // eslint-disable-line no-script-url
+ // createDict = iframe.contentWindow.Object;
+ // html.removeChild(iframe);
+ iframeDocument = iframe.contentWindow.document;
+ iframeDocument.open();
+ iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
+ iframeDocument.close();
+ createDict = iframeDocument.F;
+ while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];
+ return createDict();
+ };
+
+ module.exports = Object.create || function create(O, Properties){
+ var result;
+ if(O !== null){
+ Empty[PROTOTYPE] = anObject(O);
+ result = new Empty;
+ Empty[PROTOTYPE] = null;
+ // add "__proto__" for Object.getPrototypeOf polyfill
+ result[IE_PROTO] = O;
+ } else result = createDict();
+ return Properties === undefined ? result : dPs(result, Properties);
};
+
/***/ },
-/* 32 */
+/* 45 */
/***/ function(module, exports, __webpack_require__) {
- var global = __webpack_require__(4)
- , SHARED = '__core-js_shared__'
- , store = global[SHARED] || (global[SHARED] = {});
- module.exports = function(key){
- return store[key] || (store[key] = {});
+ var dP = __webpack_require__(9)
+ , anObject = __webpack_require__(10)
+ , getKeys = __webpack_require__(28);
+
+ module.exports = __webpack_require__(4) ? Object.defineProperties : function defineProperties(O, Properties){
+ anObject(O);
+ var keys = getKeys(Properties)
+ , length = keys.length
+ , i = 0
+ , P;
+ while(length > i)dP.f(O, P = keys[i++], Properties[P]);
+ return O;
};
/***/ },
-/* 33 */
+/* 46 */
/***/ function(module, exports, __webpack_require__) {
- // false -> Array#indexOf
- // true -> Array#includes
- var toIObject = __webpack_require__(23)
- , toLength = __webpack_require__(27)
- , toIndex = __webpack_require__(26);
- module.exports = function(IS_INCLUDES){
- return function($this, el, fromIndex){
- var O = toIObject($this)
- , length = toLength(O.length)
- , index = toIndex(fromIndex, length)
- , value;
- // Array#includes uses SameValueZero equality algorithm
- if(IS_INCLUDES && el != el)while(length > index){
- value = O[index++];
- if(value != value)return true;
- // Array#toIndex ignores holes, Array#includes - not
- } else for(;length > index; index++)if(IS_INCLUDES || index in O){
- if(O[index] === el)return IS_INCLUDES || index;
- } return !IS_INCLUDES && -1;
- };
- };
+ module.exports = __webpack_require__(2).document && document.documentElement;
/***/ },
-/* 34 */
+/* 47 */
/***/ function(module, exports, __webpack_require__) {
- 'use strict';
- // ECMAScript 6 symbols shim
- var $ = __webpack_require__(2)
- , global = __webpack_require__(4)
- , has = __webpack_require__(17)
- , DESCRIPTORS = __webpack_require__(8)
- , $export = __webpack_require__(3)
- , redefine = __webpack_require__(10)
- , $fails = __webpack_require__(9)
- , shared = __webpack_require__(32)
- , setToStringTag = __webpack_require__(35)
- , uid = __webpack_require__(11)
- , wks = __webpack_require__(31)
- , keyOf = __webpack_require__(36)
- , $names = __webpack_require__(37)
- , enumKeys = __webpack_require__(38)
- , isArray = __webpack_require__(30)
- , anObject = __webpack_require__(20)
- , toIObject = __webpack_require__(23)
- , createDesc = __webpack_require__(7)
- , getDesc = $.getDesc
- , setDesc = $.setDesc
- , _create = $.create
- , getNames = $names.get
- , $Symbol = global.Symbol
- , $JSON = global.JSON
- , _stringify = $JSON && $JSON.stringify
- , setter = false
- , HIDDEN = wks('_hidden')
- , isEnum = $.isEnum
- , SymbolRegistry = shared('symbol-registry')
- , AllSymbols = shared('symbols')
- , useNative = typeof $Symbol == 'function'
- , ObjectProto = Object.prototype;
+ // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
+ var toIObject = __webpack_require__(30)
+ , gOPN = __webpack_require__(48).f
+ , toString = {}.toString;
- // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
- var setSymbolDesc = DESCRIPTORS && $fails(function(){
- return _create(setDesc({}, 'a', {
- get: function(){ return setDesc(this, 'a', {value: 7}).a; }
- })).a != 7;
- }) ? function(it, key, D){
- var protoDesc = getDesc(ObjectProto, key);
- if(protoDesc)delete ObjectProto[key];
- setDesc(it, key, D);
- if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);
- } : setDesc;
+ var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
+ ? Object.getOwnPropertyNames(window) : [];
- var wrap = function(tag){
- var sym = AllSymbols[tag] = _create($Symbol.prototype);
- sym._k = tag;
- DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {
- configurable: true,
- set: function(value){
- if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
- setSymbolDesc(this, tag, createDesc(1, value));
- }
- });
- return sym;
+ var getWindowNames = function(it){
+ try {
+ return gOPN(it);
+ } catch(e){
+ return windowNames.slice();
+ }
};
- var isSymbol = function(it){
- return typeof it == 'symbol';
+ module.exports.f = function getOwnPropertyNames(it){
+ return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
};
- var $defineProperty = function defineProperty(it, key, D){
- if(D && has(AllSymbols, key)){
- if(!D.enumerable){
- if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));
- it[HIDDEN][key] = true;
- } else {
- if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
- D = _create(D, {enumerable: createDesc(0, false)});
- } return setSymbolDesc(it, key, D);
- } return setDesc(it, key, D);
- };
- var $defineProperties = function defineProperties(it, P){
- anObject(it);
- var keys = enumKeys(P = toIObject(P))
- , i = 0
- , l = keys.length
- , key;
- while(l > i)$defineProperty(it, key = keys[i++], P[key]);
- return it;
- };
- var $create = function create(it, P){
- return P === undefined ? _create(it) : $defineProperties(_create(it), P);
- };
- var $propertyIsEnumerable = function propertyIsEnumerable(key){
- var E = isEnum.call(this, key);
- return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]
- ? E : true;
- };
- var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
- var D = getDesc(it = toIObject(it), key);
- if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
- return D;
- };
- var $getOwnPropertyNames = function getOwnPropertyNames(it){
- var names = getNames(toIObject(it))
- , result = []
- , i = 0
- , key;
- while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);
- return result;
+
+/***/ },
+/* 48 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
+ var $keys = __webpack_require__(29)
+ , hiddenKeys = __webpack_require__(39).concat('length', 'prototype');
+
+ exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){
+ return $keys(O, hiddenKeys);
};
- var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
- var names = getNames(toIObject(it))
- , result = []
- , i = 0
- , key;
- while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);
- return result;
+
+/***/ },
+/* 49 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var pIE = __webpack_require__(42)
+ , createDesc = __webpack_require__(15)
+ , toIObject = __webpack_require__(30)
+ , toPrimitive = __webpack_require__(14)
+ , has = __webpack_require__(3)
+ , IE8_DOM_DEFINE = __webpack_require__(12)
+ , gOPD = Object.getOwnPropertyDescriptor;
+
+ exports.f = __webpack_require__(4) ? gOPD : function getOwnPropertyDescriptor(O, P){
+ O = toIObject(O);
+ P = toPrimitive(P, true);
+ if(IE8_DOM_DEFINE)try {
+ return gOPD(O, P);
+ } catch(e){ /* empty */ }
+ if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);
};
- var $stringify = function stringify(it){
- if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
- var args = [it]
- , i = 1
- , $$ = arguments
- , replacer, $replacer;
- while($$.length > i)args.push($$[i++]);
- replacer = args[1];
- if(typeof replacer == 'function')$replacer = replacer;
- if($replacer || !isArray(replacer))replacer = function(key, value){
- if($replacer)value = $replacer.call(this, key, value);
- if(!isSymbol(value))return value;
+
+/***/ },
+/* 50 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6);
+ // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
+ $export($export.S + $export.F * !__webpack_require__(4), 'Object', {defineProperty: __webpack_require__(9).f});
+
+/***/ },
+/* 51 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6);
+ // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
+ $export($export.S + $export.F * !__webpack_require__(4), 'Object', {defineProperties: __webpack_require__(45)});
+
+/***/ },
+/* 52 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
+ var toIObject = __webpack_require__(30)
+ , $getOwnPropertyDescriptor = __webpack_require__(49).f;
+
+ __webpack_require__(53)('getOwnPropertyDescriptor', function(){
+ return function getOwnPropertyDescriptor(it, key){
+ return $getOwnPropertyDescriptor(toIObject(it), key);
};
- args[1] = replacer;
- return _stringify.apply($JSON, args);
- };
- var buggyJSON = $fails(function(){
- var S = $Symbol();
- // MS Edge converts symbol values to JSON as {}
- // WebKit converts symbol values to JSON as null
- // V8 throws on boxed symbols
- return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
});
- // 19.4.1.1 Symbol([description])
- if(!useNative){
- $Symbol = function Symbol(){
- if(isSymbol(this))throw TypeError('Symbol is not a constructor');
- return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));
- };
- redefine($Symbol.prototype, 'toString', function toString(){
- return this._k;
- });
+/***/ },
+/* 53 */
+/***/ function(module, exports, __webpack_require__) {
- isSymbol = function(it){
- return it instanceof $Symbol;
- };
+ // most Object methods by ES6 should accept primitives
+ var $export = __webpack_require__(6)
+ , core = __webpack_require__(7)
+ , fails = __webpack_require__(5);
+ module.exports = function(KEY, exec){
+ var fn = (core.Object || {})[KEY] || Object[KEY]
+ , exp = {};
+ exp[KEY] = exec(fn);
+ $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
+ };
- $.create = $create;
- $.isEnum = $propertyIsEnumerable;
- $.getDesc = $getOwnPropertyDescriptor;
- $.setDesc = $defineProperty;
- $.setDescs = $defineProperties;
- $.getNames = $names.get = $getOwnPropertyNames;
- $.getSymbols = $getOwnPropertySymbols;
+/***/ },
+/* 54 */
+/***/ function(module, exports, __webpack_require__) {
- if(DESCRIPTORS && !__webpack_require__(39)){
- redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
- }
- }
+ var $export = __webpack_require__(6)
+ // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
+ $export($export.S, 'Object', {create: __webpack_require__(44)});
- var symbolStatics = {
- // 19.4.2.1 Symbol.for(key)
- 'for': function(key){
- return has(SymbolRegistry, key += '')
- ? SymbolRegistry[key]
- : SymbolRegistry[key] = $Symbol(key);
- },
- // 19.4.2.5 Symbol.keyFor(sym)
- keyFor: function keyFor(key){
- return keyOf(SymbolRegistry, key);
- },
- useSetter: function(){ setter = true; },
- useSimple: function(){ setter = false; }
- };
- // 19.4.2.2 Symbol.hasInstance
- // 19.4.2.3 Symbol.isConcatSpreadable
- // 19.4.2.4 Symbol.iterator
- // 19.4.2.6 Symbol.match
- // 19.4.2.8 Symbol.replace
- // 19.4.2.9 Symbol.search
- // 19.4.2.10 Symbol.species
- // 19.4.2.11 Symbol.split
- // 19.4.2.12 Symbol.toPrimitive
- // 19.4.2.13 Symbol.toStringTag
- // 19.4.2.14 Symbol.unscopables
- $.each.call((
- 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +
- 'species,split,toPrimitive,toStringTag,unscopables'
- ).split(','), function(it){
- var sym = wks(it);
- symbolStatics[it] = useNative ? sym : wrap(sym);
+/***/ },
+/* 55 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 19.1.2.9 Object.getPrototypeOf(O)
+ var toObject = __webpack_require__(56)
+ , $getPrototypeOf = __webpack_require__(57);
+
+ __webpack_require__(53)('getPrototypeOf', function(){
+ return function getPrototypeOf(it){
+ return $getPrototypeOf(toObject(it));
+ };
});
- setter = true;
+/***/ },
+/* 56 */
+/***/ function(module, exports, __webpack_require__) {
- $export($export.G + $export.W, {Symbol: $Symbol});
+ // 7.1.13 ToObject(argument)
+ var defined = __webpack_require__(33);
+ module.exports = function(it){
+ return Object(defined(it));
+ };
- $export($export.S, 'Symbol', symbolStatics);
+/***/ },
+/* 57 */
+/***/ function(module, exports, __webpack_require__) {
- $export($export.S + $export.F * !useNative, 'Object', {
- // 19.1.2.2 Object.create(O [, Properties])
- create: $create,
- // 19.1.2.4 Object.defineProperty(O, P, Attributes)
- defineProperty: $defineProperty,
- // 19.1.2.3 Object.defineProperties(O, Properties)
- defineProperties: $defineProperties,
- // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
- getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
- // 19.1.2.7 Object.getOwnPropertyNames(O)
- getOwnPropertyNames: $getOwnPropertyNames,
- // 19.1.2.8 Object.getOwnPropertySymbols(O)
- getOwnPropertySymbols: $getOwnPropertySymbols
+ // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
+ var has = __webpack_require__(3)
+ , toObject = __webpack_require__(56)
+ , IE_PROTO = __webpack_require__(38)('IE_PROTO')
+ , ObjectProto = Object.prototype;
+
+ module.exports = Object.getPrototypeOf || function(O){
+ O = toObject(O);
+ if(has(O, IE_PROTO))return O[IE_PROTO];
+ if(typeof O.constructor == 'function' && O instanceof O.constructor){
+ return O.constructor.prototype;
+ } return O instanceof Object ? ObjectProto : null;
+ };
+
+/***/ },
+/* 58 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 19.1.2.14 Object.keys(O)
+ var toObject = __webpack_require__(56)
+ , $keys = __webpack_require__(28);
+
+ __webpack_require__(53)('keys', function(){
+ return function keys(it){
+ return $keys(toObject(it));
+ };
});
- // 24.3.2 JSON.stringify(value [, replacer [, space]])
- $JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});
+/***/ },
+/* 59 */
+/***/ function(module, exports, __webpack_require__) {
- // 19.4.3.5 Symbol.prototype[@@toStringTag]
- setToStringTag($Symbol, 'Symbol');
- // 20.2.1.9 Math[@@toStringTag]
- setToStringTag(Math, 'Math', true);
- // 24.3.3 JSON[@@toStringTag]
- setToStringTag(global.JSON, 'JSON', true);
+ // 19.1.2.7 Object.getOwnPropertyNames(O)
+ __webpack_require__(53)('getOwnPropertyNames', function(){
+ return __webpack_require__(47).f;
+ });
/***/ },
-/* 35 */
+/* 60 */
/***/ function(module, exports, __webpack_require__) {
- var def = __webpack_require__(2).setDesc
- , has = __webpack_require__(17)
- , TAG = __webpack_require__(31)('toStringTag');
+ // 19.1.2.5 Object.freeze(O)
+ var isObject = __webpack_require__(11)
+ , meta = __webpack_require__(20).onFreeze;
- module.exports = function(it, tag, stat){
- if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
- };
+ __webpack_require__(53)('freeze', function($freeze){
+ return function freeze(it){
+ return $freeze && isObject(it) ? $freeze(meta(it)) : it;
+ };
+ });
/***/ },
-/* 36 */
+/* 61 */
/***/ function(module, exports, __webpack_require__) {
- var $ = __webpack_require__(2)
- , toIObject = __webpack_require__(23);
- module.exports = function(object, el){
- var O = toIObject(object)
- , keys = $.getKeys(O)
- , length = keys.length
- , index = 0
- , key;
- while(length > index)if(O[key = keys[index++]] === el)return key;
- };
+ // 19.1.2.17 Object.seal(O)
+ var isObject = __webpack_require__(11)
+ , meta = __webpack_require__(20).onFreeze;
+
+ __webpack_require__(53)('seal', function($seal){
+ return function seal(it){
+ return $seal && isObject(it) ? $seal(meta(it)) : it;
+ };
+ });
/***/ },
-/* 37 */
+/* 62 */
/***/ function(module, exports, __webpack_require__) {
- // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
- var toIObject = __webpack_require__(23)
- , getNames = __webpack_require__(2).getNames
- , toString = {}.toString;
+ // 19.1.2.15 Object.preventExtensions(O)
+ var isObject = __webpack_require__(11)
+ , meta = __webpack_require__(20).onFreeze;
- var windowNames = typeof window == 'object' && Object.getOwnPropertyNames
- ? Object.getOwnPropertyNames(window) : [];
+ __webpack_require__(53)('preventExtensions', function($preventExtensions){
+ return function preventExtensions(it){
+ return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;
+ };
+ });
- var getWindowNames = function(it){
- try {
- return getNames(it);
- } catch(e){
- return windowNames.slice();
- }
- };
+/***/ },
+/* 63 */
+/***/ function(module, exports, __webpack_require__) {
- module.exports.get = function getOwnPropertyNames(it){
- if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);
- return getNames(toIObject(it));
- };
+ // 19.1.2.12 Object.isFrozen(O)
+ var isObject = __webpack_require__(11);
+
+ __webpack_require__(53)('isFrozen', function($isFrozen){
+ return function isFrozen(it){
+ return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
+ };
+ });
/***/ },
-/* 38 */
+/* 64 */
/***/ function(module, exports, __webpack_require__) {
- // all enumerable object keys, includes symbols
- var $ = __webpack_require__(2);
- module.exports = function(it){
- var keys = $.getKeys(it)
- , getSymbols = $.getSymbols;
- if(getSymbols){
- var symbols = getSymbols(it)
- , isEnum = $.isEnum
- , i = 0
- , key;
- while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);
- }
- return keys;
- };
+ // 19.1.2.13 Object.isSealed(O)
+ var isObject = __webpack_require__(11);
+
+ __webpack_require__(53)('isSealed', function($isSealed){
+ return function isSealed(it){
+ return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
+ };
+ });
/***/ },
-/* 39 */
-/***/ function(module, exports) {
+/* 65 */
+/***/ function(module, exports, __webpack_require__) {
- module.exports = false;
+ // 19.1.2.11 Object.isExtensible(O)
+ var isObject = __webpack_require__(11);
+
+ __webpack_require__(53)('isExtensible', function($isExtensible){
+ return function isExtensible(it){
+ return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
+ };
+ });
/***/ },
-/* 40 */
+/* 66 */
/***/ function(module, exports, __webpack_require__) {
// 19.1.3.1 Object.assign(target, source)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.S + $export.F, 'Object', {assign: __webpack_require__(41)});
+ $export($export.S + $export.F, 'Object', {assign: __webpack_require__(67)});
/***/ },
-/* 41 */
+/* 67 */
/***/ function(module, exports, __webpack_require__) {
+ 'use strict';
// 19.1.2.1 Object.assign(target, source, ...)
- var $ = __webpack_require__(2)
- , toObject = __webpack_require__(21)
- , IObject = __webpack_require__(24);
+ var getKeys = __webpack_require__(28)
+ , gOPS = __webpack_require__(41)
+ , pIE = __webpack_require__(42)
+ , toObject = __webpack_require__(56)
+ , IObject = __webpack_require__(31)
+ , $assign = Object.assign;
// should work with symbols and should have deterministic property order (V8 bug)
- module.exports = __webpack_require__(9)(function(){
- var a = Object.assign
- , A = {}
+ module.exports = !$assign || __webpack_require__(5)(function(){
+ var A = {}
, B = {}
, S = Symbol()
, K = 'abcdefghijklmnopqrst';
A[S] = 7;
K.split('').forEach(function(k){ B[k] = k; });
- return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;
+ return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
var T = toObject(target)
- , $$ = arguments
- , $$len = $$.length
+ , aLen = arguments.length
, index = 1
- , getKeys = $.getKeys
- , getSymbols = $.getSymbols
- , isEnum = $.isEnum;
- while($$len > index){
- var S = IObject($$[index++])
+ , getSymbols = gOPS.f
+ , isEnum = pIE.f;
+ while(aLen > index){
+ var S = IObject(arguments[index++])
, keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
, length = keys.length
, j = 0
, key;
while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
- }
- return T;
- } : Object.assign;
+ } return T;
+ } : $assign;
/***/ },
-/* 42 */
+/* 68 */
/***/ function(module, exports, __webpack_require__) {
// 19.1.3.10 Object.is(value1, value2)
- var $export = __webpack_require__(3);
- $export($export.S, 'Object', {is: __webpack_require__(43)});
+ var $export = __webpack_require__(6);
+ $export($export.S, 'Object', {is: __webpack_require__(69)});
/***/ },
-/* 43 */
+/* 69 */
/***/ function(module, exports) {
// 7.2.9 SameValue(x, y)
@@ -1294,22 +1473,21 @@
};
/***/ },
-/* 44 */
+/* 70 */
/***/ function(module, exports, __webpack_require__) {
// 19.1.3.19 Object.setPrototypeOf(O, proto)
- var $export = __webpack_require__(3);
- $export($export.S, 'Object', {setPrototypeOf: __webpack_require__(45).set});
+ var $export = __webpack_require__(6);
+ $export($export.S, 'Object', {setPrototypeOf: __webpack_require__(71).set});
/***/ },
-/* 45 */
+/* 71 */
/***/ function(module, exports, __webpack_require__) {
// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
- var getDesc = __webpack_require__(2).getDesc
- , isObject = __webpack_require__(16)
- , anObject = __webpack_require__(20);
+ var isObject = __webpack_require__(11)
+ , anObject = __webpack_require__(10);
var check = function(O, proto){
anObject(O);
if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!");
@@ -1318,7 +1496,7 @@
set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
function(test, buggy, set){
try {
- set = __webpack_require__(12)(Function.call, getDesc(Object.prototype, '__proto__').set, 2);
+ set = __webpack_require__(18)(Function.call, __webpack_require__(49).f(Object.prototype, '__proto__').set, 2);
set(test, []);
buggy = !(test instanceof Array);
} catch(e){ buggy = true; }
@@ -1333,35 +1511,42 @@
};
/***/ },
-/* 46 */
+/* 72 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// 19.1.3.6 Object.prototype.toString()
- var classof = __webpack_require__(47)
+ var classof = __webpack_require__(73)
, test = {};
- test[__webpack_require__(31)('toStringTag')] = 'z';
+ test[__webpack_require__(23)('toStringTag')] = 'z';
if(test + '' != '[object z]'){
- __webpack_require__(10)(Object.prototype, 'toString', function toString(){
+ __webpack_require__(16)(Object.prototype, 'toString', function toString(){
return '[object ' + classof(this) + ']';
}, true);
}
/***/ },
-/* 47 */
+/* 73 */
/***/ function(module, exports, __webpack_require__) {
// getting tag from 19.1.3.6 Object.prototype.toString()
- var cof = __webpack_require__(18)
- , TAG = __webpack_require__(31)('toStringTag')
+ var cof = __webpack_require__(32)
+ , TAG = __webpack_require__(23)('toStringTag')
// ES3 wrong here
, ARG = cof(function(){ return arguments; }()) == 'Arguments';
+ // fallback for IE11 Script Access Denied error
+ var tryGet = function(it, key){
+ try {
+ return it[key];
+ } catch(e){ /* empty */ }
+ };
+
module.exports = function(it){
var O, T, B;
return it === undefined ? 'Undefined' : it === null ? 'Null'
// @@toStringTag case
- : typeof (T = (O = Object(it))[TAG]) == 'string' ? T
+ : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
// builtinTag case
: ARG ? cof(O)
// ES3 arguments fallback
@@ -1369,204 +1554,134 @@
};
/***/ },
-/* 48 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.5 Object.freeze(O)
- var isObject = __webpack_require__(16);
-
- __webpack_require__(49)('freeze', function($freeze){
- return function freeze(it){
- return $freeze && isObject(it) ? $freeze(it) : it;
- };
- });
-
-/***/ },
-/* 49 */
-/***/ function(module, exports, __webpack_require__) {
-
- // most Object methods by ES6 should accept primitives
- var $export = __webpack_require__(3)
- , core = __webpack_require__(5)
- , fails = __webpack_require__(9);
- module.exports = function(KEY, exec){
- var fn = (core.Object || {})[KEY] || Object[KEY]
- , exp = {};
- exp[KEY] = exec(fn);
- $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
- };
-
-/***/ },
-/* 50 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.17 Object.seal(O)
- var isObject = __webpack_require__(16);
-
- __webpack_require__(49)('seal', function($seal){
- return function seal(it){
- return $seal && isObject(it) ? $seal(it) : it;
- };
- });
-
-/***/ },
-/* 51 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.15 Object.preventExtensions(O)
- var isObject = __webpack_require__(16);
-
- __webpack_require__(49)('preventExtensions', function($preventExtensions){
- return function preventExtensions(it){
- return $preventExtensions && isObject(it) ? $preventExtensions(it) : it;
- };
- });
-
-/***/ },
-/* 52 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.12 Object.isFrozen(O)
- var isObject = __webpack_require__(16);
-
- __webpack_require__(49)('isFrozen', function($isFrozen){
- return function isFrozen(it){
- return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
- };
- });
-
-/***/ },
-/* 53 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.13 Object.isSealed(O)
- var isObject = __webpack_require__(16);
-
- __webpack_require__(49)('isSealed', function($isSealed){
- return function isSealed(it){
- return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
- };
- });
-
-/***/ },
-/* 54 */
-/***/ function(module, exports, __webpack_require__) {
-
- // 19.1.2.11 Object.isExtensible(O)
- var isObject = __webpack_require__(16);
-
- __webpack_require__(49)('isExtensible', function($isExtensible){
- return function isExtensible(it){
- return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
- };
- });
-
-/***/ },
-/* 55 */
+/* 74 */
/***/ function(module, exports, __webpack_require__) {
- // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
- var toIObject = __webpack_require__(23);
+ // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
+ var $export = __webpack_require__(6);
- __webpack_require__(49)('getOwnPropertyDescriptor', function($getOwnPropertyDescriptor){
- return function getOwnPropertyDescriptor(it, key){
- return $getOwnPropertyDescriptor(toIObject(it), key);
- };
- });
+ $export($export.P, 'Function', {bind: __webpack_require__(75)});
/***/ },
-/* 56 */
+/* 75 */
/***/ function(module, exports, __webpack_require__) {
- // 19.1.2.9 Object.getPrototypeOf(O)
- var toObject = __webpack_require__(21);
-
- __webpack_require__(49)('getPrototypeOf', function($getPrototypeOf){
- return function getPrototypeOf(it){
- return $getPrototypeOf(toObject(it));
- };
- });
-
-/***/ },
-/* 57 */
-/***/ function(module, exports, __webpack_require__) {
+ 'use strict';
+ var aFunction = __webpack_require__(19)
+ , isObject = __webpack_require__(11)
+ , invoke = __webpack_require__(76)
+ , arraySlice = [].slice
+ , factories = {};
- // 19.1.2.14 Object.keys(O)
- var toObject = __webpack_require__(21);
+ var construct = function(F, len, args){
+ if(!(len in factories)){
+ for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';
+ factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
+ } return factories[len](F, args);
+ };
- __webpack_require__(49)('keys', function($keys){
- return function keys(it){
- return $keys(toObject(it));
+ module.exports = Function.bind || function bind(that /*, args... */){
+ var fn = aFunction(this)
+ , partArgs = arraySlice.call(arguments, 1);
+ var bound = function(/* args... */){
+ var args = partArgs.concat(arraySlice.call(arguments));
+ return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
};
- });
+ if(isObject(fn.prototype))bound.prototype = fn.prototype;
+ return bound;
+ };
/***/ },
-/* 58 */
-/***/ function(module, exports, __webpack_require__) {
+/* 76 */
+/***/ function(module, exports) {
- // 19.1.2.7 Object.getOwnPropertyNames(O)
- __webpack_require__(49)('getOwnPropertyNames', function(){
- return __webpack_require__(37).get;
- });
+ // fast apply, http://jsperf.lnkit.com/fast-apply/5
+ module.exports = function(fn, args, that){
+ var un = that === undefined;
+ switch(args.length){
+ case 0: return un ? fn()
+ : fn.call(that);
+ case 1: return un ? fn(args[0])
+ : fn.call(that, args[0]);
+ case 2: return un ? fn(args[0], args[1])
+ : fn.call(that, args[0], args[1]);
+ case 3: return un ? fn(args[0], args[1], args[2])
+ : fn.call(that, args[0], args[1], args[2]);
+ case 4: return un ? fn(args[0], args[1], args[2], args[3])
+ : fn.call(that, args[0], args[1], args[2], args[3]);
+ } return fn.apply(that, args);
+ };
/***/ },
-/* 59 */
+/* 77 */
/***/ function(module, exports, __webpack_require__) {
- var setDesc = __webpack_require__(2).setDesc
- , createDesc = __webpack_require__(7)
- , has = __webpack_require__(17)
+ var dP = __webpack_require__(9).f
+ , createDesc = __webpack_require__(15)
+ , has = __webpack_require__(3)
, FProto = Function.prototype
, nameRE = /^\s*function ([^ (]*)/
, NAME = 'name';
+
+ var isExtensible = Object.isExtensible || function(){
+ return true;
+ };
+
// 19.2.4.2 name
- NAME in FProto || __webpack_require__(8) && setDesc(FProto, NAME, {
+ NAME in FProto || __webpack_require__(4) && dP(FProto, NAME, {
configurable: true,
get: function(){
- var match = ('' + this).match(nameRE)
- , name = match ? match[1] : '';
- has(this, NAME) || setDesc(this, NAME, createDesc(5, name));
- return name;
+ try {
+ var that = this
+ , name = ('' + that).match(nameRE)[1];
+ has(that, NAME) || !isExtensible(that) || dP(that, NAME, createDesc(5, name));
+ return name;
+ } catch(e){
+ return '';
+ }
}
});
/***/ },
-/* 60 */
+/* 78 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , isObject = __webpack_require__(16)
- , HAS_INSTANCE = __webpack_require__(31)('hasInstance')
- , FunctionProto = Function.prototype;
+ var isObject = __webpack_require__(11)
+ , getPrototypeOf = __webpack_require__(57)
+ , HAS_INSTANCE = __webpack_require__(23)('hasInstance')
+ , FunctionProto = Function.prototype;
// 19.2.3.6 Function.prototype[@@hasInstance](V)
- if(!(HAS_INSTANCE in FunctionProto))$.setDesc(FunctionProto, HAS_INSTANCE, {value: function(O){
+ if(!(HAS_INSTANCE in FunctionProto))__webpack_require__(9).f(FunctionProto, HAS_INSTANCE, {value: function(O){
if(typeof this != 'function' || !isObject(O))return false;
if(!isObject(this.prototype))return O instanceof this;
// for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
- while(O = $.getProto(O))if(this.prototype === O)return true;
+ while(O = getPrototypeOf(O))if(this.prototype === O)return true;
return false;
}});
/***/ },
-/* 61 */
+/* 79 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , global = __webpack_require__(4)
- , has = __webpack_require__(17)
- , cof = __webpack_require__(18)
- , toPrimitive = __webpack_require__(62)
- , fails = __webpack_require__(9)
- , $trim = __webpack_require__(63).trim
- , NUMBER = 'Number'
- , $Number = global[NUMBER]
- , Base = $Number
- , proto = $Number.prototype
+ var global = __webpack_require__(2)
+ , has = __webpack_require__(3)
+ , cof = __webpack_require__(32)
+ , inheritIfRequired = __webpack_require__(80)
+ , toPrimitive = __webpack_require__(14)
+ , fails = __webpack_require__(5)
+ , gOPN = __webpack_require__(48).f
+ , gOPD = __webpack_require__(49).f
+ , dP = __webpack_require__(9).f
+ , $trim = __webpack_require__(81).trim
+ , NUMBER = 'Number'
+ , $Number = global[NUMBER]
+ , Base = $Number
+ , proto = $Number.prototype
// Opera ~12 has broken Object#toString
- , BROKEN_COF = cof($.create(proto)) == NUMBER
- , TRIM = 'trim' in String.prototype;
+ , BROKEN_COF = cof(__webpack_require__(44)(proto)) == NUMBER
+ , TRIM = 'trim' in String.prototype;
// 7.1.3 ToNumber(argument)
var toNumber = function(argument){
@@ -1601,61 +1716,58 @@
return that instanceof $Number
// check on 1..constructor(foo) case
&& (BROKEN_COF ? fails(function(){ proto.valueOf.call(that); }) : cof(that) != NUMBER)
- ? new Base(toNumber(it)) : toNumber(it);
+ ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);
};
- $.each.call(__webpack_require__(8) ? $.getNames(Base) : (
+ for(var keys = __webpack_require__(4) ? gOPN(Base) : (
// ES3:
'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
// ES6 (in case, if modules with ES6 Number statics required before):
'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'
- ).split(','), function(key){
- if(has(Base, key) && !has($Number, key)){
- $.setDesc($Number, key, $.getDesc(Base, key));
+ ).split(','), j = 0, key; keys.length > j; j++){
+ if(has(Base, key = keys[j]) && !has($Number, key)){
+ dP($Number, key, gOPD(Base, key));
}
- });
+ }
$Number.prototype = proto;
proto.constructor = $Number;
- __webpack_require__(10)(global, NUMBER, $Number);
+ __webpack_require__(16)(global, NUMBER, $Number);
}
/***/ },
-/* 62 */
+/* 80 */
/***/ function(module, exports, __webpack_require__) {
- // 7.1.1 ToPrimitive(input [, PreferredType])
- var isObject = __webpack_require__(16);
- // instead of the ES6 spec version, we didn't implement @@toPrimitive case
- // and the second argument - flag - preferred type is a string
- module.exports = function(it, S){
- if(!isObject(it))return it;
- var fn, val;
- if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
- if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
- if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
- throw TypeError("Can't convert object to primitive value");
+ var isObject = __webpack_require__(11)
+ , setPrototypeOf = __webpack_require__(71).set;
+ module.exports = function(that, target, C){
+ var P, S = target.constructor;
+ if(S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf){
+ setPrototypeOf(that, P);
+ } return that;
};
/***/ },
-/* 63 */
+/* 81 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3)
- , defined = __webpack_require__(22)
- , fails = __webpack_require__(9)
- , spaces = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
- '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'
+ var $export = __webpack_require__(6)
+ , defined = __webpack_require__(33)
+ , fails = __webpack_require__(5)
+ , spaces = __webpack_require__(82)
, space = '[' + spaces + ']'
, non = '\u200b\u0085'
, ltrim = RegExp('^' + space + space + '*')
, rtrim = RegExp(space + space + '*$');
- var exporter = function(KEY, exec){
- var exp = {};
- exp[KEY] = exec(trim);
- $export($export.P + $export.F * fails(function(){
+ var exporter = function(KEY, exec, ALIAS){
+ var exp = {};
+ var FORCE = fails(function(){
return !!spaces[KEY]() || non[KEY]() != non;
- }), 'String', exp);
+ });
+ var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
+ if(ALIAS)exp[ALIAS] = fn;
+ $export($export.P + $export.F * FORCE, 'String', exp);
};
// 1 -> String#trimLeft
@@ -1671,21 +1783,196 @@
module.exports = exporter;
/***/ },
-/* 64 */
+/* 82 */
+/***/ function(module, exports) {
+
+ module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
+ '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
+
+/***/ },
+/* 83 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toInteger = __webpack_require__(36)
+ , aNumberValue = __webpack_require__(84)
+ , repeat = __webpack_require__(85)
+ , $toFixed = 1..toFixed
+ , floor = Math.floor
+ , data = [0, 0, 0, 0, 0, 0]
+ , ERROR = 'Number.toFixed: incorrect invocation!'
+ , ZERO = '0';
+
+ var multiply = function(n, c){
+ var i = -1
+ , c2 = c;
+ while(++i < 6){
+ c2 += n * data[i];
+ data[i] = c2 % 1e7;
+ c2 = floor(c2 / 1e7);
+ }
+ };
+ var divide = function(n){
+ var i = 6
+ , c = 0;
+ while(--i >= 0){
+ c += data[i];
+ data[i] = floor(c / n);
+ c = (c % n) * 1e7;
+ }
+ };
+ var numToString = function(){
+ var i = 6
+ , s = '';
+ while(--i >= 0){
+ if(s !== '' || i === 0 || data[i] !== 0){
+ var t = String(data[i]);
+ s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;
+ }
+ } return s;
+ };
+ var pow = function(x, n, acc){
+ return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
+ };
+ var log = function(x){
+ var n = 0
+ , x2 = x;
+ while(x2 >= 4096){
+ n += 12;
+ x2 /= 4096;
+ }
+ while(x2 >= 2){
+ n += 1;
+ x2 /= 2;
+ } return n;
+ };
+
+ $export($export.P + $export.F * (!!$toFixed && (
+ 0.00008.toFixed(3) !== '0.000' ||
+ 0.9.toFixed(0) !== '1' ||
+ 1.255.toFixed(2) !== '1.25' ||
+ 1000000000000000128..toFixed(0) !== '1000000000000000128'
+ ) || !__webpack_require__(5)(function(){
+ // V8 ~ Android 4.3-
+ $toFixed.call({});
+ })), 'Number', {
+ toFixed: function toFixed(fractionDigits){
+ var x = aNumberValue(this, ERROR)
+ , f = toInteger(fractionDigits)
+ , s = ''
+ , m = ZERO
+ , e, z, j, k;
+ if(f < 0 || f > 20)throw RangeError(ERROR);
+ if(x != x)return 'NaN';
+ if(x <= -1e21 || x >= 1e21)return String(x);
+ if(x < 0){
+ s = '-';
+ x = -x;
+ }
+ if(x > 1e-21){
+ e = log(x * pow(2, 69, 1)) - 69;
+ z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);
+ z *= 0x10000000000000;
+ e = 52 - e;
+ if(e > 0){
+ multiply(0, z);
+ j = f;
+ while(j >= 7){
+ multiply(1e7, 0);
+ j -= 7;
+ }
+ multiply(pow(10, j, 1), 0);
+ j = e - 1;
+ while(j >= 23){
+ divide(1 << 23);
+ j -= 23;
+ }
+ divide(1 << j);
+ multiply(1, 1);
+ divide(2);
+ m = numToString();
+ } else {
+ multiply(0, z);
+ multiply(1 << -e, 0);
+ m = numToString() + repeat.call(ZERO, f);
+ }
+ }
+ if(f > 0){
+ k = m.length;
+ m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));
+ } else {
+ m = s + m;
+ } return m;
+ }
+ });
+
+/***/ },
+/* 84 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var cof = __webpack_require__(32);
+ module.exports = function(it, msg){
+ if(typeof it != 'number' && cof(it) != 'Number')throw TypeError(msg);
+ return +it;
+ };
+
+/***/ },
+/* 85 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var toInteger = __webpack_require__(36)
+ , defined = __webpack_require__(33);
+
+ module.exports = function repeat(count){
+ var str = String(defined(this))
+ , res = ''
+ , n = toInteger(count);
+ if(n < 0 || n == Infinity)throw RangeError("Count can't be negative");
+ for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;
+ return res;
+ };
+
+/***/ },
+/* 86 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $fails = __webpack_require__(5)
+ , aNumberValue = __webpack_require__(84)
+ , $toPrecision = 1..toPrecision;
+
+ $export($export.P + $export.F * ($fails(function(){
+ // IE7-
+ return $toPrecision.call(1, undefined) !== '1';
+ }) || !$fails(function(){
+ // V8 ~ Android 4.3-
+ $toPrecision.call({});
+ })), 'Number', {
+ toPrecision: function toPrecision(precision){
+ var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');
+ return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);
+ }
+ });
+
+/***/ },
+/* 87 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.1 Number.EPSILON
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Number', {EPSILON: Math.pow(2, -52)});
/***/ },
-/* 65 */
+/* 88 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.2 Number.isFinite(number)
- var $export = __webpack_require__(3)
- , _isFinite = __webpack_require__(4).isFinite;
+ var $export = __webpack_require__(6)
+ , _isFinite = __webpack_require__(2).isFinite;
$export($export.S, 'Number', {
isFinite: function isFinite(it){
@@ -1694,31 +1981,31 @@
});
/***/ },
-/* 66 */
+/* 89 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.3 Number.isInteger(number)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.S, 'Number', {isInteger: __webpack_require__(67)});
+ $export($export.S, 'Number', {isInteger: __webpack_require__(90)});
/***/ },
-/* 67 */
+/* 90 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.3 Number.isInteger(number)
- var isObject = __webpack_require__(16)
+ var isObject = __webpack_require__(11)
, floor = Math.floor;
module.exports = function isInteger(it){
return !isObject(it) && isFinite(it) && floor(it) === it;
};
/***/ },
-/* 68 */
+/* 91 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.4 Number.isNaN(number)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Number', {
isNaN: function isNaN(number){
@@ -1727,12 +2014,12 @@
});
/***/ },
-/* 69 */
+/* 92 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.5 Number.isSafeInteger(number)
- var $export = __webpack_require__(3)
- , isInteger = __webpack_require__(67)
+ var $export = __webpack_require__(6)
+ , isInteger = __webpack_require__(90)
, abs = Math.abs;
$export($export.S, 'Number', {
@@ -1742,53 +2029,102 @@
});
/***/ },
-/* 70 */
+/* 93 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.6 Number.MAX_SAFE_INTEGER
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff});
/***/ },
-/* 71 */
+/* 94 */
/***/ function(module, exports, __webpack_require__) {
// 20.1.2.10 Number.MIN_SAFE_INTEGER
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff});
/***/ },
-/* 72 */
+/* 95 */
/***/ function(module, exports, __webpack_require__) {
+ var $export = __webpack_require__(6)
+ , $parseFloat = __webpack_require__(96);
// 20.1.2.12 Number.parseFloat(string)
- var $export = __webpack_require__(3);
+ $export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', {parseFloat: $parseFloat});
- $export($export.S, 'Number', {parseFloat: parseFloat});
+/***/ },
+/* 96 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $parseFloat = __webpack_require__(2).parseFloat
+ , $trim = __webpack_require__(81).trim;
+
+ module.exports = 1 / $parseFloat(__webpack_require__(82) + '-0') !== -Infinity ? function parseFloat(str){
+ var string = $trim(String(str), 3)
+ , result = $parseFloat(string);
+ return result === 0 && string.charAt(0) == '-' ? -0 : result;
+ } : $parseFloat;
/***/ },
-/* 73 */
+/* 97 */
/***/ function(module, exports, __webpack_require__) {
+ var $export = __webpack_require__(6)
+ , $parseInt = __webpack_require__(98);
// 20.1.2.13 Number.parseInt(string, radix)
- var $export = __webpack_require__(3);
+ $export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', {parseInt: $parseInt});
- $export($export.S, 'Number', {parseInt: parseInt});
+/***/ },
+/* 98 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $parseInt = __webpack_require__(2).parseInt
+ , $trim = __webpack_require__(81).trim
+ , ws = __webpack_require__(82)
+ , hex = /^[\-+]?0[xX]/;
+
+ module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix){
+ var string = $trim(String(str), 3);
+ return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
+ } : $parseInt;
/***/ },
-/* 74 */
+/* 99 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6)
+ , $parseInt = __webpack_require__(98);
+ // 18.2.5 parseInt(string, radix)
+ $export($export.G + $export.F * (parseInt != $parseInt), {parseInt: $parseInt});
+
+/***/ },
+/* 100 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6)
+ , $parseFloat = __webpack_require__(96);
+ // 18.2.4 parseFloat(string)
+ $export($export.G + $export.F * (parseFloat != $parseFloat), {parseFloat: $parseFloat});
+
+/***/ },
+/* 101 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.3 Math.acosh(x)
- var $export = __webpack_require__(3)
- , log1p = __webpack_require__(75)
+ var $export = __webpack_require__(6)
+ , log1p = __webpack_require__(102)
, sqrt = Math.sqrt
, $acosh = Math.acosh;
- // V8 bug https://code.google.com/p/v8/issues/detail?id=3509
- $export($export.S + $export.F * !($acosh && Math.floor($acosh(Number.MAX_VALUE)) == 710), 'Math', {
+ $export($export.S + $export.F * !($acosh
+ // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
+ && Math.floor($acosh(Number.MAX_VALUE)) == 710
+ // Tor Browser bug: Math.acosh(Infinity) -> NaN
+ && $acosh(Infinity) == Infinity
+ ), 'Math', {
acosh: function acosh(x){
return (x = +x) < 1 ? NaN : x > 94906265.62425156
? Math.log(x) + Math.LN2
@@ -1797,7 +2133,7 @@
});
/***/ },
-/* 75 */
+/* 102 */
/***/ function(module, exports) {
// 20.2.2.20 Math.log1p(x)
@@ -1806,38 +2142,42 @@
};
/***/ },
-/* 76 */
+/* 103 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.5 Math.asinh(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6)
+ , $asinh = Math.asinh;
function asinh(x){
return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
}
- $export($export.S, 'Math', {asinh: asinh});
+ // Tor Browser bug: Math.asinh(0) -> -0
+ $export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', {asinh: asinh});
/***/ },
-/* 77 */
+/* 104 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.7 Math.atanh(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6)
+ , $atanh = Math.atanh;
- $export($export.S, 'Math', {
+ // Tor Browser bug: Math.atanh(-0) -> 0
+ $export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {
atanh: function atanh(x){
return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
}
});
/***/ },
-/* 78 */
+/* 105 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.9 Math.cbrt(x)
- var $export = __webpack_require__(3)
- , sign = __webpack_require__(79);
+ var $export = __webpack_require__(6)
+ , sign = __webpack_require__(106);
$export($export.S, 'Math', {
cbrt: function cbrt(x){
@@ -1846,7 +2186,7 @@
});
/***/ },
-/* 79 */
+/* 106 */
/***/ function(module, exports) {
// 20.2.2.28 Math.sign(x)
@@ -1855,11 +2195,11 @@
};
/***/ },
-/* 80 */
+/* 107 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.11 Math.clz32(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Math', {
clz32: function clz32(x){
@@ -1868,11 +2208,11 @@
});
/***/ },
-/* 81 */
+/* 108 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.12 Math.cosh(x)
- var $export = __webpack_require__(3)
+ var $export = __webpack_require__(6)
, exp = Math.exp;
$export($export.S, 'Math', {
@@ -1882,30 +2222,37 @@
});
/***/ },
-/* 82 */
+/* 109 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.14 Math.expm1(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6)
+ , $expm1 = __webpack_require__(110);
- $export($export.S, 'Math', {expm1: __webpack_require__(83)});
+ $export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', {expm1: $expm1});
/***/ },
-/* 83 */
+/* 110 */
/***/ function(module, exports) {
// 20.2.2.14 Math.expm1(x)
- module.exports = Math.expm1 || function expm1(x){
+ var $expm1 = Math.expm1;
+ module.exports = (!$expm1
+ // Old FF bug
+ || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168
+ // Tor Browser bug
+ || $expm1(-2e-17) != -2e-17
+ ) ? function expm1(x){
return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
- };
+ } : $expm1;
/***/ },
-/* 84 */
+/* 111 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.16 Math.fround(x)
- var $export = __webpack_require__(3)
- , sign = __webpack_require__(79)
+ var $export = __webpack_require__(6)
+ , sign = __webpack_require__(106)
, pow = Math.pow
, EPSILON = pow(2, -52)
, EPSILON32 = pow(2, -23)
@@ -1931,23 +2278,22 @@
});
/***/ },
-/* 85 */
+/* 112 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
- var $export = __webpack_require__(3)
+ var $export = __webpack_require__(6)
, abs = Math.abs;
$export($export.S, 'Math', {
hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars
- var sum = 0
- , i = 0
- , $$ = arguments
- , $$len = $$.length
- , larg = 0
+ var sum = 0
+ , i = 0
+ , aLen = arguments.length
+ , larg = 0
, arg, div;
- while(i < $$len){
- arg = abs($$[i++]);
+ while(i < aLen){
+ arg = abs(arguments[i++]);
if(larg < arg){
div = larg / arg;
sum = sum * div * div + 1;
@@ -1962,15 +2308,15 @@
});
/***/ },
-/* 86 */
+/* 113 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.18 Math.imul(x, y)
- var $export = __webpack_require__(3)
+ var $export = __webpack_require__(6)
, $imul = Math.imul;
// some WebKit versions fails with big numbers, some has wrong arity
- $export($export.S + $export.F * __webpack_require__(9)(function(){
+ $export($export.S + $export.F * __webpack_require__(5)(function(){
return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
}), 'Math', {
imul: function imul(x, y){
@@ -1984,11 +2330,11 @@
});
/***/ },
-/* 87 */
+/* 114 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.21 Math.log10(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Math', {
log10: function log10(x){
@@ -1997,20 +2343,20 @@
});
/***/ },
-/* 88 */
+/* 115 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.20 Math.log1p(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.S, 'Math', {log1p: __webpack_require__(75)});
+ $export($export.S, 'Math', {log1p: __webpack_require__(102)});
/***/ },
-/* 89 */
+/* 116 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.22 Math.log2(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Math', {
log2: function log2(x){
@@ -2019,25 +2365,25 @@
});
/***/ },
-/* 90 */
+/* 117 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.28 Math.sign(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.S, 'Math', {sign: __webpack_require__(79)});
+ $export($export.S, 'Math', {sign: __webpack_require__(106)});
/***/ },
-/* 91 */
+/* 118 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.30 Math.sinh(x)
- var $export = __webpack_require__(3)
- , expm1 = __webpack_require__(83)
+ var $export = __webpack_require__(6)
+ , expm1 = __webpack_require__(110)
, exp = Math.exp;
// V8 near Chromium 38 has a problem with very small numbers
- $export($export.S + $export.F * __webpack_require__(9)(function(){
+ $export($export.S + $export.F * __webpack_require__(5)(function(){
return !Math.sinh(-2e-17) != -2e-17;
}), 'Math', {
sinh: function sinh(x){
@@ -2048,12 +2394,12 @@
});
/***/ },
-/* 92 */
+/* 119 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.33 Math.tanh(x)
- var $export = __webpack_require__(3)
- , expm1 = __webpack_require__(83)
+ var $export = __webpack_require__(6)
+ , expm1 = __webpack_require__(110)
, exp = Math.exp;
$export($export.S, 'Math', {
@@ -2065,11 +2411,11 @@
});
/***/ },
-/* 93 */
+/* 120 */
/***/ function(module, exports, __webpack_require__) {
// 20.2.2.34 Math.trunc(x)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Math', {
trunc: function trunc(it){
@@ -2078,11 +2424,11 @@
});
/***/ },
-/* 94 */
+/* 121 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3)
- , toIndex = __webpack_require__(26)
+ var $export = __webpack_require__(6)
+ , toIndex = __webpack_require__(37)
, fromCharCode = String.fromCharCode
, $fromCodePoint = String.fromCodePoint;
@@ -2090,13 +2436,12 @@
$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
// 21.1.2.2 String.fromCodePoint(...codePoints)
fromCodePoint: function fromCodePoint(x){ // eslint-disable-line no-unused-vars
- var res = []
- , $$ = arguments
- , $$len = $$.length
- , i = 0
+ var res = []
+ , aLen = arguments.length
+ , i = 0
, code;
- while($$len > i){
- code = +$$[i++];
+ while(aLen > i){
+ code = +arguments[i++];
if(toIndex(code, 0x10ffff) !== code)throw RangeError(code + ' is not a valid code point');
res.push(code < 0x10000
? fromCharCode(code)
@@ -2107,48 +2452,47 @@
});
/***/ },
-/* 95 */
+/* 122 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3)
- , toIObject = __webpack_require__(23)
- , toLength = __webpack_require__(27);
+ var $export = __webpack_require__(6)
+ , toIObject = __webpack_require__(30)
+ , toLength = __webpack_require__(35);
$export($export.S, 'String', {
// 21.1.2.4 String.raw(callSite, ...substitutions)
raw: function raw(callSite){
- var tpl = toIObject(callSite.raw)
- , len = toLength(tpl.length)
- , $$ = arguments
- , $$len = $$.length
- , res = []
- , i = 0;
+ var tpl = toIObject(callSite.raw)
+ , len = toLength(tpl.length)
+ , aLen = arguments.length
+ , res = []
+ , i = 0;
while(len > i){
res.push(String(tpl[i++]));
- if(i < $$len)res.push(String($$[i]));
+ if(i < aLen)res.push(String(arguments[i]));
} return res.join('');
}
});
/***/ },
-/* 96 */
+/* 123 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// 21.1.3.25 String.prototype.trim()
- __webpack_require__(63)('trim', function($trim){
+ __webpack_require__(81)('trim', function($trim){
return function trim(){
return $trim(this, 3);
};
});
/***/ },
-/* 97 */
+/* 124 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3)
- , $at = __webpack_require__(98)(false);
+ var $export = __webpack_require__(6)
+ , $at = __webpack_require__(125)(false);
$export($export.P, 'String', {
// 21.1.3.3 String.prototype.codePointAt(pos)
codePointAt: function codePointAt(pos){
@@ -2157,11 +2501,11 @@
});
/***/ },
-/* 98 */
+/* 125 */
/***/ function(module, exports, __webpack_require__) {
- var toInteger = __webpack_require__(25)
- , defined = __webpack_require__(22);
+ var toInteger = __webpack_require__(36)
+ , defined = __webpack_require__(33);
// true -> String#at
// false -> String#codePointAt
module.exports = function(TO_STRING){
@@ -2179,22 +2523,21 @@
};
/***/ },
-/* 99 */
+/* 126 */
/***/ function(module, exports, __webpack_require__) {
// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
'use strict';
- var $export = __webpack_require__(3)
- , toLength = __webpack_require__(27)
- , context = __webpack_require__(100)
+ var $export = __webpack_require__(6)
+ , toLength = __webpack_require__(35)
+ , context = __webpack_require__(127)
, ENDS_WITH = 'endsWith'
, $endsWith = ''[ENDS_WITH];
- $export($export.P + $export.F * __webpack_require__(102)(ENDS_WITH), 'String', {
+ $export($export.P + $export.F * __webpack_require__(129)(ENDS_WITH), 'String', {
endsWith: function endsWith(searchString /*, endPosition = @length */){
var that = context(this, searchString, ENDS_WITH)
- , $$ = arguments
- , endPosition = $$.length > 1 ? $$[1] : undefined
+ , endPosition = arguments.length > 1 ? arguments[1] : undefined
, len = toLength(that.length)
, end = endPosition === undefined ? len : Math.min(toLength(endPosition), len)
, search = String(searchString);
@@ -2205,12 +2548,12 @@
});
/***/ },
-/* 100 */
+/* 127 */
/***/ function(module, exports, __webpack_require__) {
// helper for String#{startsWith, endsWith, includes}
- var isRegExp = __webpack_require__(101)
- , defined = __webpack_require__(22);
+ var isRegExp = __webpack_require__(128)
+ , defined = __webpack_require__(33);
module.exports = function(that, searchString, NAME){
if(isRegExp(searchString))throw TypeError('String#' + NAME + " doesn't accept regex!");
@@ -2218,23 +2561,23 @@
};
/***/ },
-/* 101 */
+/* 128 */
/***/ function(module, exports, __webpack_require__) {
// 7.2.8 IsRegExp(argument)
- var isObject = __webpack_require__(16)
- , cof = __webpack_require__(18)
- , MATCH = __webpack_require__(31)('match');
+ var isObject = __webpack_require__(11)
+ , cof = __webpack_require__(32)
+ , MATCH = __webpack_require__(23)('match');
module.exports = function(it){
var isRegExp;
return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
};
/***/ },
-/* 102 */
+/* 129 */
/***/ function(module, exports, __webpack_require__) {
- var MATCH = __webpack_require__(31)('match');
+ var MATCH = __webpack_require__(23)('match');
module.exports = function(KEY){
var re = /./;
try {
@@ -2248,16 +2591,16 @@
};
/***/ },
-/* 103 */
+/* 130 */
/***/ function(module, exports, __webpack_require__) {
// 21.1.3.7 String.prototype.includes(searchString, position = 0)
'use strict';
- var $export = __webpack_require__(3)
- , context = __webpack_require__(100)
+ var $export = __webpack_require__(6)
+ , context = __webpack_require__(127)
, INCLUDES = 'includes';
- $export($export.P + $export.F * __webpack_require__(102)(INCLUDES), 'String', {
+ $export($export.P + $export.F * __webpack_require__(129)(INCLUDES), 'String', {
includes: function includes(searchString /*, position = 0 */){
return !!~context(this, searchString, INCLUDES)
.indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
@@ -2265,50 +2608,32 @@
});
/***/ },
-/* 104 */
+/* 131 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.P, 'String', {
// 21.1.3.13 String.prototype.repeat(count)
- repeat: __webpack_require__(105)
+ repeat: __webpack_require__(85)
});
/***/ },
-/* 105 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
- var toInteger = __webpack_require__(25)
- , defined = __webpack_require__(22);
-
- module.exports = function repeat(count){
- var str = String(defined(this))
- , res = ''
- , n = toInteger(count);
- if(n < 0 || n == Infinity)throw RangeError("Count can't be negative");
- for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;
- return res;
- };
-
-/***/ },
-/* 106 */
+/* 132 */
/***/ function(module, exports, __webpack_require__) {
// 21.1.3.18 String.prototype.startsWith(searchString [, position ])
'use strict';
- var $export = __webpack_require__(3)
- , toLength = __webpack_require__(27)
- , context = __webpack_require__(100)
+ var $export = __webpack_require__(6)
+ , toLength = __webpack_require__(35)
+ , context = __webpack_require__(127)
, STARTS_WITH = 'startsWith'
, $startsWith = ''[STARTS_WITH];
- $export($export.P + $export.F * __webpack_require__(102)(STARTS_WITH), 'String', {
+ $export($export.P + $export.F * __webpack_require__(129)(STARTS_WITH), 'String', {
startsWith: function startsWith(searchString /*, position = 0 */){
var that = context(this, searchString, STARTS_WITH)
- , $$ = arguments
- , index = toLength(Math.min($$.length > 1 ? $$[1] : undefined, that.length))
+ , index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length))
, search = String(searchString);
return $startsWith
? $startsWith.call(that, search, index)
@@ -2317,14 +2642,14 @@
});
/***/ },
-/* 107 */
+/* 133 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $at = __webpack_require__(98)(true);
+ var $at = __webpack_require__(125)(true);
// 21.1.3.27 String.prototype[@@iterator]()
- __webpack_require__(108)(String, 'String', function(iterated){
+ __webpack_require__(134)(String, 'String', function(iterated){
this._t = String(iterated); // target
this._i = 0; // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
@@ -2339,20 +2664,20 @@
});
/***/ },
-/* 108 */
+/* 134 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var LIBRARY = __webpack_require__(39)
- , $export = __webpack_require__(3)
- , redefine = __webpack_require__(10)
- , hide = __webpack_require__(6)
- , has = __webpack_require__(17)
- , Iterators = __webpack_require__(109)
- , $iterCreate = __webpack_require__(110)
- , setToStringTag = __webpack_require__(35)
- , getProto = __webpack_require__(2).getProto
- , ITERATOR = __webpack_require__(31)('iterator')
+ var LIBRARY = __webpack_require__(26)
+ , $export = __webpack_require__(6)
+ , redefine = __webpack_require__(16)
+ , hide = __webpack_require__(8)
+ , has = __webpack_require__(3)
+ , Iterators = __webpack_require__(135)
+ , $iterCreate = __webpack_require__(136)
+ , setToStringTag = __webpack_require__(22)
+ , getPrototypeOf = __webpack_require__(57)
+ , ITERATOR = __webpack_require__(23)('iterator')
, BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
, FF_ITERATOR = '@@iterator'
, KEYS = 'keys'
@@ -2375,20 +2700,24 @@
, proto = Base.prototype
, $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
, $default = $native || getMethod(DEFAULT)
- , methods, key;
+ , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined
+ , $anyNative = NAME == 'Array' ? proto.entries || $native : $native
+ , methods, key, IteratorPrototype;
// Fix native
- if($native){
- var IteratorPrototype = getProto($default.call(new Base));
- // Set @@toStringTag to native iterators
- setToStringTag(IteratorPrototype, TAG, true);
- // FF fix
- if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
- // fix Array#{values, @@iterator}.name in V8 / FF
- if(DEF_VALUES && $native.name !== VALUES){
- VALUES_BUG = true;
- $default = function values(){ return $native.call(this); };
+ if($anyNative){
+ IteratorPrototype = getPrototypeOf($anyNative.call(new Base));
+ if(IteratorPrototype !== Object.prototype){
+ // Set @@toStringTag to native iterators
+ setToStringTag(IteratorPrototype, TAG, true);
+ // fix for some old engines
+ if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
}
}
+ // fix Array#{values, @@iterator}.name in V8 / FF
+ if(DEF_VALUES && $native && $native.name !== VALUES){
+ VALUES_BUG = true;
+ $default = function values(){ return $native.call(this); };
+ }
// Define iterator
if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
hide(proto, ITERATOR, $default);
@@ -2398,9 +2727,9 @@
Iterators[TAG] = returnThis;
if(DEFAULT){
methods = {
- values: DEF_VALUES ? $default : getMethod(VALUES),
- keys: IS_SET ? $default : getMethod(KEYS),
- entries: !DEF_VALUES ? $default : getMethod('entries')
+ values: DEF_VALUES ? $default : getMethod(VALUES),
+ keys: IS_SET ? $default : getMethod(KEYS),
+ entries: $entries
};
if(FORCED)for(key in methods){
if(!(key in proto))redefine(proto, key, methods[key]);
@@ -2410,63 +2739,253 @@
};
/***/ },
-/* 109 */
+/* 135 */
/***/ function(module, exports) {
module.exports = {};
/***/ },
-/* 110 */
+/* 136 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , descriptor = __webpack_require__(7)
- , setToStringTag = __webpack_require__(35)
+ var create = __webpack_require__(44)
+ , descriptor = __webpack_require__(15)
+ , setToStringTag = __webpack_require__(22)
, IteratorPrototype = {};
// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
- __webpack_require__(6)(IteratorPrototype, __webpack_require__(31)('iterator'), function(){ return this; });
+ __webpack_require__(8)(IteratorPrototype, __webpack_require__(23)('iterator'), function(){ return this; });
module.exports = function(Constructor, NAME, next){
- Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});
+ Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});
setToStringTag(Constructor, NAME + ' Iterator');
};
/***/ },
-/* 111 */
+/* 137 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.2 String.prototype.anchor(name)
+ __webpack_require__(138)('anchor', function(createHTML){
+ return function anchor(name){
+ return createHTML(this, 'a', 'name', name);
+ }
+ });
+
+/***/ },
+/* 138 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6)
+ , fails = __webpack_require__(5)
+ , defined = __webpack_require__(33)
+ , quot = /"/g;
+ // B.2.3.2.1 CreateHTML(string, tag, attribute, value)
+ var createHTML = function(string, tag, attribute, value) {
+ var S = String(defined(string))
+ , p1 = '<' + tag;
+ if(attribute !== '')p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
+ return p1 + '>' + S + '</' + tag + '>';
+ };
+ module.exports = function(NAME, exec){
+ var O = {};
+ O[NAME] = exec(createHTML);
+ $export($export.P + $export.F * fails(function(){
+ var test = ''[NAME]('"');
+ return test !== test.toLowerCase() || test.split('"').length > 3;
+ }), 'String', O);
+ };
+
+/***/ },
+/* 139 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.3 String.prototype.big()
+ __webpack_require__(138)('big', function(createHTML){
+ return function big(){
+ return createHTML(this, 'big', '', '');
+ }
+ });
+
+/***/ },
+/* 140 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.4 String.prototype.blink()
+ __webpack_require__(138)('blink', function(createHTML){
+ return function blink(){
+ return createHTML(this, 'blink', '', '');
+ }
+ });
+
+/***/ },
+/* 141 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.5 String.prototype.bold()
+ __webpack_require__(138)('bold', function(createHTML){
+ return function bold(){
+ return createHTML(this, 'b', '', '');
+ }
+ });
+
+/***/ },
+/* 142 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.6 String.prototype.fixed()
+ __webpack_require__(138)('fixed', function(createHTML){
+ return function fixed(){
+ return createHTML(this, 'tt', '', '');
+ }
+ });
+
+/***/ },
+/* 143 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.7 String.prototype.fontcolor(color)
+ __webpack_require__(138)('fontcolor', function(createHTML){
+ return function fontcolor(color){
+ return createHTML(this, 'font', 'color', color);
+ }
+ });
+
+/***/ },
+/* 144 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.8 String.prototype.fontsize(size)
+ __webpack_require__(138)('fontsize', function(createHTML){
+ return function fontsize(size){
+ return createHTML(this, 'font', 'size', size);
+ }
+ });
+
+/***/ },
+/* 145 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.9 String.prototype.italics()
+ __webpack_require__(138)('italics', function(createHTML){
+ return function italics(){
+ return createHTML(this, 'i', '', '');
+ }
+ });
+
+/***/ },
+/* 146 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.10 String.prototype.link(url)
+ __webpack_require__(138)('link', function(createHTML){
+ return function link(url){
+ return createHTML(this, 'a', 'href', url);
+ }
+ });
+
+/***/ },
+/* 147 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.11 String.prototype.small()
+ __webpack_require__(138)('small', function(createHTML){
+ return function small(){
+ return createHTML(this, 'small', '', '');
+ }
+ });
+
+/***/ },
+/* 148 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.12 String.prototype.strike()
+ __webpack_require__(138)('strike', function(createHTML){
+ return function strike(){
+ return createHTML(this, 'strike', '', '');
+ }
+ });
+
+/***/ },
+/* 149 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var ctx = __webpack_require__(12)
- , $export = __webpack_require__(3)
- , toObject = __webpack_require__(21)
- , call = __webpack_require__(112)
- , isArrayIter = __webpack_require__(113)
- , toLength = __webpack_require__(27)
- , getIterFn = __webpack_require__(114);
- $export($export.S + $export.F * !__webpack_require__(115)(function(iter){ Array.from(iter); }), 'Array', {
+ // B.2.3.13 String.prototype.sub()
+ __webpack_require__(138)('sub', function(createHTML){
+ return function sub(){
+ return createHTML(this, 'sub', '', '');
+ }
+ });
+
+/***/ },
+/* 150 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // B.2.3.14 String.prototype.sup()
+ __webpack_require__(138)('sup', function(createHTML){
+ return function sup(){
+ return createHTML(this, 'sup', '', '');
+ }
+ });
+
+/***/ },
+/* 151 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'Array', {isArray: __webpack_require__(43)});
+
+/***/ },
+/* 152 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var ctx = __webpack_require__(18)
+ , $export = __webpack_require__(6)
+ , toObject = __webpack_require__(56)
+ , call = __webpack_require__(153)
+ , isArrayIter = __webpack_require__(154)
+ , toLength = __webpack_require__(35)
+ , createProperty = __webpack_require__(155)
+ , getIterFn = __webpack_require__(156);
+
+ $export($export.S + $export.F * !__webpack_require__(157)(function(iter){ Array.from(iter); }), 'Array', {
// 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
var O = toObject(arrayLike)
, C = typeof this == 'function' ? this : Array
- , $$ = arguments
- , $$len = $$.length
- , mapfn = $$len > 1 ? $$[1] : undefined
+ , aLen = arguments.length
+ , mapfn = aLen > 1 ? arguments[1] : undefined
, mapping = mapfn !== undefined
, index = 0
, iterFn = getIterFn(O)
, length, result, step, iterator;
- if(mapping)mapfn = ctx(mapfn, $$len > 2 ? $$[2] : undefined, 2);
+ if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
// if object isn't iterable or it's array with default iterator - use simple case
if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){
for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){
- result[index] = mapping ? call(iterator, mapfn, [step.value, index], true) : step.value;
+ createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
}
} else {
length = toLength(O.length);
for(result = new C(length); length > index; index++){
- result[index] = mapping ? mapfn(O[index], index) : O[index];
+ createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
}
}
result.length = index;
@@ -2476,11 +2995,11 @@
/***/ },
-/* 112 */
+/* 153 */
/***/ function(module, exports, __webpack_require__) {
// call something on iterator step with safe closing on error
- var anObject = __webpack_require__(20);
+ var anObject = __webpack_require__(10);
module.exports = function(iterator, fn, value, entries){
try {
return entries ? fn(anObject(value)[0], value[1]) : fn(value);
@@ -2493,12 +3012,12 @@
};
/***/ },
-/* 113 */
+/* 154 */
/***/ function(module, exports, __webpack_require__) {
// check on default Array iterator
- var Iterators = __webpack_require__(109)
- , ITERATOR = __webpack_require__(31)('iterator')
+ var Iterators = __webpack_require__(135)
+ , ITERATOR = __webpack_require__(23)('iterator')
, ArrayProto = Array.prototype;
module.exports = function(it){
@@ -2506,23 +3025,36 @@
};
/***/ },
-/* 114 */
+/* 155 */
/***/ function(module, exports, __webpack_require__) {
- var classof = __webpack_require__(47)
- , ITERATOR = __webpack_require__(31)('iterator')
- , Iterators = __webpack_require__(109);
- module.exports = __webpack_require__(5).getIteratorMethod = function(it){
+ 'use strict';
+ var $defineProperty = __webpack_require__(9)
+ , createDesc = __webpack_require__(15);
+
+ module.exports = function(object, index, value){
+ if(index in object)$defineProperty.f(object, index, createDesc(0, value));
+ else object[index] = value;
+ };
+
+/***/ },
+/* 156 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var classof = __webpack_require__(73)
+ , ITERATOR = __webpack_require__(23)('iterator')
+ , Iterators = __webpack_require__(135);
+ module.exports = __webpack_require__(7).getIteratorMethod = function(it){
if(it != undefined)return it[ITERATOR]
|| it['@@iterator']
|| Iterators[classof(it)];
};
/***/ },
-/* 115 */
+/* 157 */
/***/ function(module, exports, __webpack_require__) {
- var ITERATOR = __webpack_require__(31)('iterator')
+ var ITERATOR = __webpack_require__(23)('iterator')
, SAFE_CLOSING = false;
try {
@@ -2545,140 +3077,413 @@
};
/***/ },
-/* 116 */
+/* 158 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6)
+ , createProperty = __webpack_require__(155);
// WebKit Array.of isn't generic
- $export($export.S + $export.F * __webpack_require__(9)(function(){
+ $export($export.S + $export.F * __webpack_require__(5)(function(){
function F(){}
return !(Array.of.call(F) instanceof F);
}), 'Array', {
// 22.1.2.3 Array.of( ...items)
of: function of(/* ...args */){
var index = 0
- , $$ = arguments
- , $$len = $$.length
- , result = new (typeof this == 'function' ? this : Array)($$len);
- while($$len > index)result[index] = $$[index++];
- result.length = $$len;
+ , aLen = arguments.length
+ , result = new (typeof this == 'function' ? this : Array)(aLen);
+ while(aLen > index)createProperty(result, index, arguments[index++]);
+ result.length = aLen;
return result;
}
});
/***/ },
-/* 117 */
+/* 159 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var addToUnscopables = __webpack_require__(118)
- , step = __webpack_require__(119)
- , Iterators = __webpack_require__(109)
- , toIObject = __webpack_require__(23);
+ // 22.1.3.13 Array.prototype.join(separator)
+ var $export = __webpack_require__(6)
+ , toIObject = __webpack_require__(30)
+ , arrayJoin = [].join;
- // 22.1.3.4 Array.prototype.entries()
- // 22.1.3.13 Array.prototype.keys()
- // 22.1.3.29 Array.prototype.values()
- // 22.1.3.30 Array.prototype[@@iterator]()
- module.exports = __webpack_require__(108)(Array, 'Array', function(iterated, kind){
- this._t = toIObject(iterated); // target
- this._i = 0; // next index
- this._k = kind; // kind
- // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
- }, function(){
- var O = this._t
- , kind = this._k
- , index = this._i++;
- if(!O || index >= O.length){
- this._t = undefined;
- return step(1);
+ // fallback for not array-like strings
+ $export($export.P + $export.F * (__webpack_require__(31) != Object || !__webpack_require__(160)(arrayJoin)), 'Array', {
+ join: function join(separator){
+ return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);
}
- if(kind == 'keys' )return step(0, index);
- if(kind == 'values')return step(0, O[index]);
- return step(0, [index, O[index]]);
- }, 'values');
+ });
- // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
- Iterators.Arguments = Iterators.Array;
+/***/ },
+/* 160 */
+/***/ function(module, exports, __webpack_require__) {
- addToUnscopables('keys');
- addToUnscopables('values');
- addToUnscopables('entries');
+ var fails = __webpack_require__(5);
+
+ module.exports = function(method, arg){
+ return !!method && fails(function(){
+ arg ? method.call(null, function(){}, 1) : method.call(null);
+ });
+ };
/***/ },
-/* 118 */
+/* 161 */
/***/ function(module, exports, __webpack_require__) {
- // 22.1.3.31 Array.prototype[@@unscopables]
- var UNSCOPABLES = __webpack_require__(31)('unscopables')
- , ArrayProto = Array.prototype;
- if(ArrayProto[UNSCOPABLES] == undefined)__webpack_require__(6)(ArrayProto, UNSCOPABLES, {});
- module.exports = function(key){
- ArrayProto[UNSCOPABLES][key] = true;
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , html = __webpack_require__(46)
+ , cof = __webpack_require__(32)
+ , toIndex = __webpack_require__(37)
+ , toLength = __webpack_require__(35)
+ , arraySlice = [].slice;
+
+ // fallback for not array-like ES3 strings and DOM objects
+ $export($export.P + $export.F * __webpack_require__(5)(function(){
+ if(html)arraySlice.call(html);
+ }), 'Array', {
+ slice: function slice(begin, end){
+ var len = toLength(this.length)
+ , klass = cof(this);
+ end = end === undefined ? len : end;
+ if(klass == 'Array')return arraySlice.call(this, begin, end);
+ var start = toIndex(begin, len)
+ , upTo = toIndex(end, len)
+ , size = toLength(upTo - start)
+ , cloned = Array(size)
+ , i = 0;
+ for(; i < size; i++)cloned[i] = klass == 'String'
+ ? this.charAt(start + i)
+ : this[start + i];
+ return cloned;
+ }
+ });
+
+/***/ },
+/* 162 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , aFunction = __webpack_require__(19)
+ , toObject = __webpack_require__(56)
+ , fails = __webpack_require__(5)
+ , $sort = [].sort
+ , test = [1, 2, 3];
+
+ $export($export.P + $export.F * (fails(function(){
+ // IE8-
+ test.sort(undefined);
+ }) || !fails(function(){
+ // V8 bug
+ test.sort(null);
+ // Old WebKit
+ }) || !__webpack_require__(160)($sort)), 'Array', {
+ // 22.1.3.25 Array.prototype.sort(comparefn)
+ sort: function sort(comparefn){
+ return comparefn === undefined
+ ? $sort.call(toObject(this))
+ : $sort.call(toObject(this), aFunction(comparefn));
+ }
+ });
+
+/***/ },
+/* 163 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $forEach = __webpack_require__(164)(0)
+ , STRICT = __webpack_require__(160)([].forEach, true);
+
+ $export($export.P + $export.F * !STRICT, 'Array', {
+ // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
+ forEach: function forEach(callbackfn /* , thisArg */){
+ return $forEach(this, callbackfn, arguments[1]);
+ }
+ });
+
+/***/ },
+/* 164 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 0 -> Array#forEach
+ // 1 -> Array#map
+ // 2 -> Array#filter
+ // 3 -> Array#some
+ // 4 -> Array#every
+ // 5 -> Array#find
+ // 6 -> Array#findIndex
+ var ctx = __webpack_require__(18)
+ , IObject = __webpack_require__(31)
+ , toObject = __webpack_require__(56)
+ , toLength = __webpack_require__(35)
+ , asc = __webpack_require__(165);
+ module.exports = function(TYPE, $create){
+ var IS_MAP = TYPE == 1
+ , IS_FILTER = TYPE == 2
+ , IS_SOME = TYPE == 3
+ , IS_EVERY = TYPE == 4
+ , IS_FIND_INDEX = TYPE == 6
+ , NO_HOLES = TYPE == 5 || IS_FIND_INDEX
+ , create = $create || asc;
+ return function($this, callbackfn, that){
+ var O = toObject($this)
+ , self = IObject(O)
+ , f = ctx(callbackfn, that, 3)
+ , length = toLength(self.length)
+ , index = 0
+ , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined
+ , val, res;
+ for(;length > index; index++)if(NO_HOLES || index in self){
+ val = self[index];
+ res = f(val, index, O);
+ if(TYPE){
+ if(IS_MAP)result[index] = res; // map
+ else if(res)switch(TYPE){
+ case 3: return true; // some
+ case 5: return val; // find
+ case 6: return index; // findIndex
+ case 2: result.push(val); // filter
+ } else if(IS_EVERY)return false; // every
+ }
+ }
+ return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+ };
};
/***/ },
-/* 119 */
-/***/ function(module, exports) {
+/* 165 */
+/***/ function(module, exports, __webpack_require__) {
- module.exports = function(done, value){
- return {value: value, done: !!done};
+ // 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+ var speciesConstructor = __webpack_require__(166);
+
+ module.exports = function(original, length){
+ return new (speciesConstructor(original))(length);
};
/***/ },
-/* 120 */
+/* 166 */
/***/ function(module, exports, __webpack_require__) {
- __webpack_require__(121)('Array');
+ var isObject = __webpack_require__(11)
+ , isArray = __webpack_require__(43)
+ , SPECIES = __webpack_require__(23)('species');
+
+ module.exports = function(original){
+ var C;
+ if(isArray(original)){
+ C = original.constructor;
+ // cross-realm fallback
+ if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;
+ if(isObject(C)){
+ C = C[SPECIES];
+ if(C === null)C = undefined;
+ }
+ } return C === undefined ? Array : C;
+ };
/***/ },
-/* 121 */
+/* 167 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var global = __webpack_require__(4)
- , $ = __webpack_require__(2)
- , DESCRIPTORS = __webpack_require__(8)
- , SPECIES = __webpack_require__(31)('species');
+ var $export = __webpack_require__(6)
+ , $map = __webpack_require__(164)(1);
- module.exports = function(KEY){
- var C = global[KEY];
- if(DESCRIPTORS && C && !C[SPECIES])$.setDesc(C, SPECIES, {
- configurable: true,
- get: function(){ return this; }
- });
+ $export($export.P + $export.F * !__webpack_require__(160)([].map, true), 'Array', {
+ // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
+ map: function map(callbackfn /* , thisArg */){
+ return $map(this, callbackfn, arguments[1]);
+ }
+ });
+
+/***/ },
+/* 168 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $filter = __webpack_require__(164)(2);
+
+ $export($export.P + $export.F * !__webpack_require__(160)([].filter, true), 'Array', {
+ // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
+ filter: function filter(callbackfn /* , thisArg */){
+ return $filter(this, callbackfn, arguments[1]);
+ }
+ });
+
+/***/ },
+/* 169 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $some = __webpack_require__(164)(3);
+
+ $export($export.P + $export.F * !__webpack_require__(160)([].some, true), 'Array', {
+ // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
+ some: function some(callbackfn /* , thisArg */){
+ return $some(this, callbackfn, arguments[1]);
+ }
+ });
+
+/***/ },
+/* 170 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $every = __webpack_require__(164)(4);
+
+ $export($export.P + $export.F * !__webpack_require__(160)([].every, true), 'Array', {
+ // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
+ every: function every(callbackfn /* , thisArg */){
+ return $every(this, callbackfn, arguments[1]);
+ }
+ });
+
+/***/ },
+/* 171 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $reduce = __webpack_require__(172);
+
+ $export($export.P + $export.F * !__webpack_require__(160)([].reduce, true), 'Array', {
+ // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
+ reduce: function reduce(callbackfn /* , initialValue */){
+ return $reduce(this, callbackfn, arguments.length, arguments[1], false);
+ }
+ });
+
+/***/ },
+/* 172 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var aFunction = __webpack_require__(19)
+ , toObject = __webpack_require__(56)
+ , IObject = __webpack_require__(31)
+ , toLength = __webpack_require__(35);
+
+ module.exports = function(that, callbackfn, aLen, memo, isRight){
+ aFunction(callbackfn);
+ var O = toObject(that)
+ , self = IObject(O)
+ , length = toLength(O.length)
+ , index = isRight ? length - 1 : 0
+ , i = isRight ? -1 : 1;
+ if(aLen < 2)for(;;){
+ if(index in self){
+ memo = self[index];
+ index += i;
+ break;
+ }
+ index += i;
+ if(isRight ? index < 0 : length <= index){
+ throw TypeError('Reduce of empty array with no initial value');
+ }
+ }
+ for(;isRight ? index >= 0 : length > index; index += i)if(index in self){
+ memo = callbackfn(memo, self[index], index, O);
+ }
+ return memo;
};
/***/ },
-/* 122 */
+/* 173 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $reduce = __webpack_require__(172);
+
+ $export($export.P + $export.F * !__webpack_require__(160)([].reduceRight, true), 'Array', {
+ // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
+ reduceRight: function reduceRight(callbackfn /* , initialValue */){
+ return $reduce(this, callbackfn, arguments.length, arguments[1], true);
+ }
+ });
+
+/***/ },
+/* 174 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $indexOf = __webpack_require__(34)(false)
+ , $native = [].indexOf
+ , NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
+
+ $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(160)($native)), 'Array', {
+ // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
+ indexOf: function indexOf(searchElement /*, fromIndex = 0 */){
+ return NEGATIVE_ZERO
+ // convert -0 to +0
+ ? $native.apply(this, arguments) || 0
+ : $indexOf(this, searchElement, arguments[1]);
+ }
+ });
+
+/***/ },
+/* 175 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toIObject = __webpack_require__(30)
+ , toInteger = __webpack_require__(36)
+ , toLength = __webpack_require__(35)
+ , $native = [].lastIndexOf
+ , NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;
+
+ $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(160)($native)), 'Array', {
+ // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
+ lastIndexOf: function lastIndexOf(searchElement /*, fromIndex = @[*-1] */){
+ // convert -0 to +0
+ if(NEGATIVE_ZERO)return $native.apply(this, arguments) || 0;
+ var O = toIObject(this)
+ , length = toLength(O.length)
+ , index = length - 1;
+ if(arguments.length > 1)index = Math.min(index, toInteger(arguments[1]));
+ if(index < 0)index = length + index;
+ for(;index >= 0; index--)if(index in O)if(O[index] === searchElement)return index || 0;
+ return -1;
+ }
+ });
+
+/***/ },
+/* 176 */
/***/ function(module, exports, __webpack_require__) {
// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.P, 'Array', {copyWithin: __webpack_require__(123)});
+ $export($export.P, 'Array', {copyWithin: __webpack_require__(177)});
- __webpack_require__(118)('copyWithin');
+ __webpack_require__(178)('copyWithin');
/***/ },
-/* 123 */
+/* 177 */
/***/ function(module, exports, __webpack_require__) {
// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
'use strict';
- var toObject = __webpack_require__(21)
- , toIndex = __webpack_require__(26)
- , toLength = __webpack_require__(27);
+ var toObject = __webpack_require__(56)
+ , toIndex = __webpack_require__(37)
+ , toLength = __webpack_require__(35);
module.exports = [].copyWithin || function copyWithin(target/*= 0*/, start/*= 0, end = @length*/){
var O = toObject(this)
, len = toLength(O.length)
, to = toIndex(target, len)
, from = toIndex(start, len)
- , $$ = arguments
- , end = $$.length > 2 ? $$[2] : undefined
+ , end = arguments.length > 2 ? arguments[2] : undefined
, count = Math.min((end === undefined ? len : toIndex(end, len)) - from, len - to)
, inc = 1;
if(from < to && to < from + count){
@@ -2695,45 +3500,56 @@
};
/***/ },
-/* 124 */
+/* 178 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 22.1.3.31 Array.prototype[@@unscopables]
+ var UNSCOPABLES = __webpack_require__(23)('unscopables')
+ , ArrayProto = Array.prototype;
+ if(ArrayProto[UNSCOPABLES] == undefined)__webpack_require__(8)(ArrayProto, UNSCOPABLES, {});
+ module.exports = function(key){
+ ArrayProto[UNSCOPABLES][key] = true;
+ };
+
+/***/ },
+/* 179 */
/***/ function(module, exports, __webpack_require__) {
// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.P, 'Array', {fill: __webpack_require__(125)});
+ $export($export.P, 'Array', {fill: __webpack_require__(180)});
- __webpack_require__(118)('fill');
+ __webpack_require__(178)('fill');
/***/ },
-/* 125 */
+/* 180 */
/***/ function(module, exports, __webpack_require__) {
// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
'use strict';
- var toObject = __webpack_require__(21)
- , toIndex = __webpack_require__(26)
- , toLength = __webpack_require__(27);
- module.exports = [].fill || function fill(value /*, start = 0, end = @length */){
+ var toObject = __webpack_require__(56)
+ , toIndex = __webpack_require__(37)
+ , toLength = __webpack_require__(35);
+ module.exports = function fill(value /*, start = 0, end = @length */){
var O = toObject(this)
, length = toLength(O.length)
- , $$ = arguments
- , $$len = $$.length
- , index = toIndex($$len > 1 ? $$[1] : undefined, length)
- , end = $$len > 2 ? $$[2] : undefined
+ , aLen = arguments.length
+ , index = toIndex(aLen > 1 ? arguments[1] : undefined, length)
+ , end = aLen > 2 ? arguments[2] : undefined
, endPos = end === undefined ? length : toIndex(end, length);
while(endPos > index)O[index++] = value;
return O;
};
/***/ },
-/* 126 */
+/* 181 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
- var $export = __webpack_require__(3)
- , $find = __webpack_require__(28)(5)
+ var $export = __webpack_require__(6)
+ , $find = __webpack_require__(164)(5)
, KEY = 'find'
, forced = true;
// Shouldn't skip holes
@@ -2743,16 +3559,16 @@
return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});
- __webpack_require__(118)(KEY);
+ __webpack_require__(178)(KEY);
/***/ },
-/* 127 */
+/* 182 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
- var $export = __webpack_require__(3)
- , $find = __webpack_require__(28)(6)
+ var $export = __webpack_require__(6)
+ , $find = __webpack_require__(164)(6)
, KEY = 'findIndex'
, forced = true;
// Shouldn't skip holes
@@ -2762,58 +3578,134 @@
return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});
- __webpack_require__(118)(KEY);
+ __webpack_require__(178)(KEY);
/***/ },
-/* 128 */
+/* 183 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var addToUnscopables = __webpack_require__(178)
+ , step = __webpack_require__(184)
+ , Iterators = __webpack_require__(135)
+ , toIObject = __webpack_require__(30);
+
+ // 22.1.3.4 Array.prototype.entries()
+ // 22.1.3.13 Array.prototype.keys()
+ // 22.1.3.29 Array.prototype.values()
+ // 22.1.3.30 Array.prototype[@@iterator]()
+ module.exports = __webpack_require__(134)(Array, 'Array', function(iterated, kind){
+ this._t = toIObject(iterated); // target
+ this._i = 0; // next index
+ this._k = kind; // kind
+ // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
+ }, function(){
+ var O = this._t
+ , kind = this._k
+ , index = this._i++;
+ if(!O || index >= O.length){
+ this._t = undefined;
+ return step(1);
+ }
+ if(kind == 'keys' )return step(0, index);
+ if(kind == 'values')return step(0, O[index]);
+ return step(0, [index, O[index]]);
+ }, 'values');
+
+ // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
+ Iterators.Arguments = Iterators.Array;
+
+ addToUnscopables('keys');
+ addToUnscopables('values');
+ addToUnscopables('entries');
+
+/***/ },
+/* 184 */
+/***/ function(module, exports) {
+
+ module.exports = function(done, value){
+ return {value: value, done: !!done};
+ };
+
+/***/ },
+/* 185 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(186)('Array');
+
+/***/ },
+/* 186 */
/***/ function(module, exports, __webpack_require__) {
- var $ = __webpack_require__(2)
- , global = __webpack_require__(4)
- , isRegExp = __webpack_require__(101)
- , $flags = __webpack_require__(129)
- , $RegExp = global.RegExp
- , Base = $RegExp
- , proto = $RegExp.prototype
- , re1 = /a/g
- , re2 = /a/g
+ 'use strict';
+ var global = __webpack_require__(2)
+ , dP = __webpack_require__(9)
+ , DESCRIPTORS = __webpack_require__(4)
+ , SPECIES = __webpack_require__(23)('species');
+
+ module.exports = function(KEY){
+ var C = global[KEY];
+ if(DESCRIPTORS && C && !C[SPECIES])dP.f(C, SPECIES, {
+ configurable: true,
+ get: function(){ return this; }
+ });
+ };
+
+/***/ },
+/* 187 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var global = __webpack_require__(2)
+ , inheritIfRequired = __webpack_require__(80)
+ , dP = __webpack_require__(9).f
+ , gOPN = __webpack_require__(48).f
+ , isRegExp = __webpack_require__(128)
+ , $flags = __webpack_require__(188)
+ , $RegExp = global.RegExp
+ , Base = $RegExp
+ , proto = $RegExp.prototype
+ , re1 = /a/g
+ , re2 = /a/g
// "new" creates a new object, old webkit buggy here
- , CORRECT_NEW = new $RegExp(re1) !== re1;
+ , CORRECT_NEW = new $RegExp(re1) !== re1;
- if(__webpack_require__(8) && (!CORRECT_NEW || __webpack_require__(9)(function(){
- re2[__webpack_require__(31)('match')] = false;
+ if(__webpack_require__(4) && (!CORRECT_NEW || __webpack_require__(5)(function(){
+ re2[__webpack_require__(23)('match')] = false;
// RegExp constructor can alter flags and IsRegExp works correct with @@match
return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
}))){
$RegExp = function RegExp(p, f){
- var piRE = isRegExp(p)
+ var tiRE = this instanceof $RegExp
+ , piRE = isRegExp(p)
, fiU = f === undefined;
- return !(this instanceof $RegExp) && piRE && p.constructor === $RegExp && fiU ? p
- : CORRECT_NEW
+ return !tiRE && piRE && p.constructor === $RegExp && fiU ? p
+ : inheritIfRequired(CORRECT_NEW
? new Base(piRE && !fiU ? p.source : p, f)
- : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f);
+ : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)
+ , tiRE ? this : proto, $RegExp);
};
- $.each.call($.getNames(Base), function(key){
- key in $RegExp || $.setDesc($RegExp, key, {
+ var proxy = function(key){
+ key in $RegExp || dP($RegExp, key, {
configurable: true,
get: function(){ return Base[key]; },
set: function(it){ Base[key] = it; }
});
- });
+ };
+ for(var keys = gOPN(Base), i = 0; keys.length > i; )proxy(keys[i++]);
proto.constructor = $RegExp;
$RegExp.prototype = proto;
- __webpack_require__(10)(global, 'RegExp', $RegExp);
+ __webpack_require__(16)(global, 'RegExp', $RegExp);
}
- __webpack_require__(121)('RegExp');
+ __webpack_require__(186)('RegExp');
/***/ },
-/* 129 */
+/* 188 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// 21.2.5.3 get RegExp.prototype.flags
- var anObject = __webpack_require__(20);
+ var anObject = __webpack_require__(10);
module.exports = function(){
var that = anObject(this)
, result = '';
@@ -2826,198 +3718,259 @@
};
/***/ },
-/* 130 */
+/* 189 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ __webpack_require__(190);
+ var anObject = __webpack_require__(10)
+ , $flags = __webpack_require__(188)
+ , DESCRIPTORS = __webpack_require__(4)
+ , TO_STRING = 'toString'
+ , $toString = /./[TO_STRING];
+
+ var define = function(fn){
+ __webpack_require__(16)(RegExp.prototype, TO_STRING, fn, true);
+ };
+
+ // 21.2.5.14 RegExp.prototype.toString()
+ if(__webpack_require__(5)(function(){ return $toString.call({source: 'a', flags: 'b'}) != '/a/b'; })){
+ define(function toString(){
+ var R = anObject(this);
+ return '/'.concat(R.source, '/',
+ 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);
+ });
+ // FF44- RegExp#toString has a wrong name
+ } else if($toString.name != TO_STRING){
+ define(function toString(){
+ return $toString.call(this);
+ });
+ }
+
+/***/ },
+/* 190 */
/***/ function(module, exports, __webpack_require__) {
// 21.2.5.3 get RegExp.prototype.flags()
- var $ = __webpack_require__(2);
- if(__webpack_require__(8) && /./g.flags != 'g')$.setDesc(RegExp.prototype, 'flags', {
+ if(__webpack_require__(4) && /./g.flags != 'g')__webpack_require__(9).f(RegExp.prototype, 'flags', {
configurable: true,
- get: __webpack_require__(129)
+ get: __webpack_require__(188)
});
/***/ },
-/* 131 */
+/* 191 */
/***/ function(module, exports, __webpack_require__) {
// @@match logic
- __webpack_require__(132)('match', 1, function(defined, MATCH){
+ __webpack_require__(192)('match', 1, function(defined, MATCH, $match){
// 21.1.3.11 String.prototype.match(regexp)
- return function match(regexp){
+ return [function match(regexp){
'use strict';
var O = defined(this)
, fn = regexp == undefined ? undefined : regexp[MATCH];
return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
- };
+ }, $match];
});
/***/ },
-/* 132 */
+/* 192 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var hide = __webpack_require__(6)
- , redefine = __webpack_require__(10)
- , fails = __webpack_require__(9)
- , defined = __webpack_require__(22)
- , wks = __webpack_require__(31);
+ var hide = __webpack_require__(8)
+ , redefine = __webpack_require__(16)
+ , fails = __webpack_require__(5)
+ , defined = __webpack_require__(33)
+ , wks = __webpack_require__(23);
module.exports = function(KEY, length, exec){
var SYMBOL = wks(KEY)
- , original = ''[KEY];
+ , fns = exec(defined, SYMBOL, ''[KEY])
+ , strfn = fns[0]
+ , rxfn = fns[1];
if(fails(function(){
var O = {};
O[SYMBOL] = function(){ return 7; };
return ''[KEY](O) != 7;
})){
- redefine(String.prototype, KEY, exec(defined, SYMBOL, original));
+ redefine(String.prototype, KEY, strfn);
hide(RegExp.prototype, SYMBOL, length == 2
// 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
// 21.2.5.11 RegExp.prototype[@@split](string, limit)
- ? function(string, arg){ return original.call(string, this, arg); }
+ ? function(string, arg){ return rxfn.call(string, this, arg); }
// 21.2.5.6 RegExp.prototype[@@match](string)
// 21.2.5.9 RegExp.prototype[@@search](string)
- : function(string){ return original.call(string, this); }
+ : function(string){ return rxfn.call(string, this); }
);
}
};
/***/ },
-/* 133 */
+/* 193 */
/***/ function(module, exports, __webpack_require__) {
// @@replace logic
- __webpack_require__(132)('replace', 2, function(defined, REPLACE, $replace){
+ __webpack_require__(192)('replace', 2, function(defined, REPLACE, $replace){
// 21.1.3.14 String.prototype.replace(searchValue, replaceValue)
- return function replace(searchValue, replaceValue){
+ return [function replace(searchValue, replaceValue){
'use strict';
var O = defined(this)
, fn = searchValue == undefined ? undefined : searchValue[REPLACE];
return fn !== undefined
? fn.call(searchValue, O, replaceValue)
: $replace.call(String(O), searchValue, replaceValue);
- };
+ }, $replace];
});
/***/ },
-/* 134 */
+/* 194 */
/***/ function(module, exports, __webpack_require__) {
// @@search logic
- __webpack_require__(132)('search', 1, function(defined, SEARCH){
+ __webpack_require__(192)('search', 1, function(defined, SEARCH, $search){
// 21.1.3.15 String.prototype.search(regexp)
- return function search(regexp){
+ return [function search(regexp){
'use strict';
var O = defined(this)
, fn = regexp == undefined ? undefined : regexp[SEARCH];
return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
- };
+ }, $search];
});
/***/ },
-/* 135 */
+/* 195 */
/***/ function(module, exports, __webpack_require__) {
// @@split logic
- __webpack_require__(132)('split', 2, function(defined, SPLIT, $split){
+ __webpack_require__(192)('split', 2, function(defined, SPLIT, $split){
+ 'use strict';
+ var isRegExp = __webpack_require__(128)
+ , _split = $split
+ , $push = [].push
+ , $SPLIT = 'split'
+ , LENGTH = 'length'
+ , LAST_INDEX = 'lastIndex';
+ if(
+ 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
+ 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
+ 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
+ '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
+ '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
+ ''[$SPLIT](/.?/)[LENGTH]
+ ){
+ var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group
+ // based on es5-shim implementation, need to rework it
+ $split = function(separator, limit){
+ var string = String(this);
+ if(separator === undefined && limit === 0)return [];
+ // If `separator` is not a regex, use native split
+ if(!isRegExp(separator))return _split.call(string, separator, limit);
+ var output = [];
+ var flags = (separator.ignoreCase ? 'i' : '') +
+ (separator.multiline ? 'm' : '') +
+ (separator.unicode ? 'u' : '') +
+ (separator.sticky ? 'y' : '');
+ var lastLastIndex = 0;
+ var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;
+ // Make `global` and avoid `lastIndex` issues by working with a copy
+ var separatorCopy = new RegExp(separator.source, flags + 'g');
+ var separator2, match, lastIndex, lastLength, i;
+ // Doesn't need flags gy, but they don't hurt
+ if(!NPCG)separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\s)', flags);
+ while(match = separatorCopy.exec(string)){
+ // `separatorCopy.lastIndex` is not reliable cross-browser
+ lastIndex = match.index + match[0][LENGTH];
+ if(lastIndex > lastLastIndex){
+ output.push(string.slice(lastLastIndex, match.index));
+ // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG
+ if(!NPCG && match[LENGTH] > 1)match[0].replace(separator2, function(){
+ for(i = 1; i < arguments[LENGTH] - 2; i++)if(arguments[i] === undefined)match[i] = undefined;
+ });
+ if(match[LENGTH] > 1 && match.index < string[LENGTH])$push.apply(output, match.slice(1));
+ lastLength = match[0][LENGTH];
+ lastLastIndex = lastIndex;
+ if(output[LENGTH] >= splitLimit)break;
+ }
+ if(separatorCopy[LAST_INDEX] === match.index)separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
+ }
+ if(lastLastIndex === string[LENGTH]){
+ if(lastLength || !separatorCopy.test(''))output.push('');
+ } else output.push(string.slice(lastLastIndex));
+ return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
+ };
+ // Chakra, V8
+ } else if('0'[$SPLIT](undefined, 0)[LENGTH]){
+ $split = function(separator, limit){
+ return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);
+ };
+ }
// 21.1.3.17 String.prototype.split(separator, limit)
- return function split(separator, limit){
- 'use strict';
+ return [function split(separator, limit){
var O = defined(this)
, fn = separator == undefined ? undefined : separator[SPLIT];
- return fn !== undefined
- ? fn.call(separator, O, limit)
- : $split.call(String(O), separator, limit);
- };
+ return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);
+ }, $split];
});
/***/ },
-/* 136 */
+/* 196 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , LIBRARY = __webpack_require__(39)
- , global = __webpack_require__(4)
- , ctx = __webpack_require__(12)
- , classof = __webpack_require__(47)
- , $export = __webpack_require__(3)
- , isObject = __webpack_require__(16)
- , anObject = __webpack_require__(20)
- , aFunction = __webpack_require__(13)
- , strictNew = __webpack_require__(137)
- , forOf = __webpack_require__(138)
- , setProto = __webpack_require__(45).set
- , same = __webpack_require__(43)
- , SPECIES = __webpack_require__(31)('species')
- , speciesConstructor = __webpack_require__(139)
- , asap = __webpack_require__(140)
- , PROMISE = 'Promise'
- , process = global.process
- , isNode = classof(process) == 'process'
- , P = global[PROMISE]
- , empty = function(){ /* empty */ }
- , Wrapper;
-
- var testResolve = function(sub){
- var test = new P(empty), promise;
- if(sub)test.constructor = function(exec){
- exec(empty, empty);
- };
- (promise = P.resolve(test))['catch'](empty);
- return promise === test;
- };
+ var LIBRARY = __webpack_require__(26)
+ , global = __webpack_require__(2)
+ , ctx = __webpack_require__(18)
+ , classof = __webpack_require__(73)
+ , $export = __webpack_require__(6)
+ , isObject = __webpack_require__(11)
+ , aFunction = __webpack_require__(19)
+ , anInstance = __webpack_require__(197)
+ , forOf = __webpack_require__(198)
+ , speciesConstructor = __webpack_require__(199)
+ , task = __webpack_require__(200).set
+ , microtask = __webpack_require__(201)()
+ , PROMISE = 'Promise'
+ , TypeError = global.TypeError
+ , process = global.process
+ , $Promise = global[PROMISE]
+ , process = global.process
+ , isNode = classof(process) == 'process'
+ , empty = function(){ /* empty */ }
+ , Internal, GenericPromiseCapability, Wrapper;
- var USE_NATIVE = function(){
- var works = false;
- function P2(x){
- var self = new P(x);
- setProto(self, P2.prototype);
- return self;
- }
+ var USE_NATIVE = !!function(){
try {
- works = P && P.resolve && testResolve();
- setProto(P2, P);
- P2.prototype = $.create(P.prototype, {constructor: {value: P2}});
- // actual Firefox has broken subclass support, test that
- if(!(P2.resolve(5).then(function(){}) instanceof P2)){
- works = false;
- }
- // actual V8 bug, https://code.google.com/p/v8/issues/detail?id=4162
- if(works && __webpack_require__(8)){
- var thenableThenGotten = false;
- P.resolve($.setDesc({}, 'then', {
- get: function(){ thenableThenGotten = true; }
- }));
- works = thenableThenGotten;
- }
- } catch(e){ works = false; }
- return works;
+ // correct subclassing with @@species support
+ var promise = $Promise.resolve(1)
+ , FakePromise = (promise.constructor = {})[__webpack_require__(23)('species')] = function(exec){ exec(empty, empty); };
+ // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
+ return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;
+ } catch(e){ /* empty */ }
}();
// helpers
var sameConstructor = function(a, b){
- // library wrapper special case
- if(LIBRARY && a === P && b === Wrapper)return true;
- return same(a, b);
- };
- var getConstructor = function(C){
- var S = anObject(C)[SPECIES];
- return S != undefined ? S : C;
+ // with library wrapper special case
+ return a === b || a === $Promise && b === Wrapper;
};
var isThenable = function(it){
var then;
return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
};
- var PromiseCapability = function(C){
+ var newPromiseCapability = function(C){
+ return sameConstructor($Promise, C)
+ ? new PromiseCapability(C)
+ : new GenericPromiseCapability(C);
+ };
+ var PromiseCapability = GenericPromiseCapability = function(C){
var resolve, reject;
this.promise = new C(function($$resolve, $$reject){
if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor');
resolve = $$resolve;
reject = $$reject;
});
- this.resolve = aFunction(resolve),
- this.reject = aFunction(reject)
+ this.resolve = aFunction(resolve);
+ this.reject = aFunction(reject);
};
var perform = function(exec){
try {
@@ -3026,23 +3979,32 @@
return {error: e};
}
};
- var notify = function(record, isReject){
- if(record.n)return;
- record.n = true;
- var chain = record.c;
- asap(function(){
- var value = record.v
- , ok = record.s == 1
+ var notify = function(promise, isReject){
+ if(promise._n)return;
+ promise._n = true;
+ var chain = promise._c;
+ microtask(function(){
+ var value = promise._v
+ , ok = promise._s == 1
, i = 0;
var run = function(reaction){
var handler = ok ? reaction.ok : reaction.fail
, resolve = reaction.resolve
, reject = reaction.reject
+ , domain = reaction.domain
, result, then;
try {
if(handler){
- if(!ok)record.h = true;
- result = handler === true ? value : handler(value);
+ if(!ok){
+ if(promise._h == 2)onHandleUnhandled(promise);
+ promise._h = 1;
+ }
+ if(handler === true)result = value;
+ else {
+ if(domain)domain.enter();
+ result = handler(value);
+ if(domain)domain.exit();
+ }
if(result === reaction.promise){
reject(TypeError('Promise-chain cycle'));
} else if(then = isThenable(result)){
@@ -3054,12 +4016,17 @@
}
};
while(chain.length > i)run(chain[i++]); // variable length - can't use forEach
- chain.length = 0;
- record.n = false;
- if(isReject)setTimeout(function(){
- var promise = record.p
- , handler, console;
- if(isUnhandled(promise)){
+ promise._c = [];
+ promise._n = false;
+ if(isReject && !promise._h)onUnhandled(promise);
+ });
+ };
+ var onUnhandled = function(promise){
+ task.call(global, function(){
+ var value = promise._v
+ , abrupt, handler, console;
+ if(isUnhandled(promise)){
+ abrupt = perform(function(){
if(isNode){
process.emit('unhandledRejection', value, promise);
} else if(handler = global.onunhandledrejection){
@@ -3067,42 +4034,54 @@
} else if((console = global.console) && console.error){
console.error('Unhandled promise rejection', value);
}
- } record.a = undefined;
- }, 1);
+ });
+ // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
+ promise._h = isNode || isUnhandled(promise) ? 2 : 1;
+ } promise._a = undefined;
+ if(abrupt)throw abrupt.error;
});
};
var isUnhandled = function(promise){
- var record = promise._d
- , chain = record.a || record.c
- , i = 0
+ if(promise._h == 1)return false;
+ var chain = promise._a || promise._c
+ , i = 0
, reaction;
- if(record.h)return false;
while(chain.length > i){
reaction = chain[i++];
if(reaction.fail || !isUnhandled(reaction.promise))return false;
} return true;
};
+ var onHandleUnhandled = function(promise){
+ task.call(global, function(){
+ var handler;
+ if(isNode){
+ process.emit('rejectionHandled', promise);
+ } else if(handler = global.onrejectionhandled){
+ handler({promise: promise, reason: promise._v});
+ }
+ });
+ };
var $reject = function(value){
- var record = this;
- if(record.d)return;
- record.d = true;
- record = record.r || record; // unwrap
- record.v = value;
- record.s = 2;
- record.a = record.c.slice();
- notify(record, true);
+ var promise = this;
+ if(promise._d)return;
+ promise._d = true;
+ promise = promise._w || promise; // unwrap
+ promise._v = value;
+ promise._s = 2;
+ if(!promise._a)promise._a = promise._c.slice();
+ notify(promise, true);
};
var $resolve = function(value){
- var record = this
+ var promise = this
, then;
- if(record.d)return;
- record.d = true;
- record = record.r || record; // unwrap
+ if(promise._d)return;
+ promise._d = true;
+ promise = promise._w || promise; // unwrap
try {
- if(record.p === value)throw TypeError("Promise can't be resolved itself");
+ if(promise === value)throw TypeError("Promise can't be resolved itself");
if(then = isThenable(value)){
- asap(function(){
- var wrapper = {r: record, d: false}; // wrap
+ microtask(function(){
+ var wrapper = {_w: promise, _d: false}; // wrap
try {
then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
} catch(e){
@@ -3110,114 +4089,122 @@
}
});
} else {
- record.v = value;
- record.s = 1;
- notify(record, false);
+ promise._v = value;
+ promise._s = 1;
+ notify(promise, false);
}
} catch(e){
- $reject.call({r: record, d: false}, e); // wrap
+ $reject.call({_w: promise, _d: false}, e); // wrap
}
};
// constructor polyfill
if(!USE_NATIVE){
// 25.4.3.1 Promise(executor)
- P = function Promise(executor){
+ $Promise = function Promise(executor){
+ anInstance(this, $Promise, PROMISE, '_h');
aFunction(executor);
- var record = this._d = {
- p: strictNew(this, P, PROMISE), // <- promise
- c: [], // <- awaiting reactions
- a: undefined, // <- checked in isUnhandled reactions
- s: 0, // <- state
- d: false, // <- done
- v: undefined, // <- value
- h: false, // <- handled rejection
- n: false // <- notify
- };
+ Internal.call(this);
try {
- executor(ctx($resolve, record, 1), ctx($reject, record, 1));
+ executor(ctx($resolve, this, 1), ctx($reject, this, 1));
} catch(err){
- $reject.call(record, err);
+ $reject.call(this, err);
}
};
- __webpack_require__(142)(P.prototype, {
+ Internal = function Promise(executor){
+ this._c = []; // <- awaiting reactions
+ this._a = undefined; // <- checked in isUnhandled reactions
+ this._s = 0; // <- state
+ this._d = false; // <- done
+ this._v = undefined; // <- value
+ this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
+ this._n = false; // <- notify
+ };
+ Internal.prototype = __webpack_require__(202)($Promise.prototype, {
// 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
then: function then(onFulfilled, onRejected){
- var reaction = new PromiseCapability(speciesConstructor(this, P))
- , promise = reaction.promise
- , record = this._d;
- reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
- reaction.fail = typeof onRejected == 'function' && onRejected;
- record.c.push(reaction);
- if(record.a)record.a.push(reaction);
- if(record.s)notify(record, false);
- return promise;
+ var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
+ reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
+ reaction.fail = typeof onRejected == 'function' && onRejected;
+ reaction.domain = isNode ? process.domain : undefined;
+ this._c.push(reaction);
+ if(this._a)this._a.push(reaction);
+ if(this._s)notify(this, false);
+ return reaction.promise;
},
// 25.4.5.1 Promise.prototype.catch(onRejected)
'catch': function(onRejected){
return this.then(undefined, onRejected);
}
});
+ PromiseCapability = function(){
+ var promise = new Internal;
+ this.promise = promise;
+ this.resolve = ctx($resolve, promise, 1);
+ this.reject = ctx($reject, promise, 1);
+ };
}
- $export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: P});
- __webpack_require__(35)(P, PROMISE);
- __webpack_require__(121)(PROMISE);
- Wrapper = __webpack_require__(5)[PROMISE];
+ $export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: $Promise});
+ __webpack_require__(22)($Promise, PROMISE);
+ __webpack_require__(186)(PROMISE);
+ Wrapper = __webpack_require__(7)[PROMISE];
// statics
$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
// 25.4.4.5 Promise.reject(r)
reject: function reject(r){
- var capability = new PromiseCapability(this)
+ var capability = newPromiseCapability(this)
, $$reject = capability.reject;
$$reject(r);
return capability.promise;
}
});
- $export($export.S + $export.F * (!USE_NATIVE || testResolve(true)), PROMISE, {
+ $export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
// 25.4.4.6 Promise.resolve(x)
resolve: function resolve(x){
// instanceof instead of internal slot check because we should fix it without replacement native Promise core
- if(x instanceof P && sameConstructor(x.constructor, this))return x;
- var capability = new PromiseCapability(this)
+ if(x instanceof $Promise && sameConstructor(x.constructor, this))return x;
+ var capability = newPromiseCapability(this)
, $$resolve = capability.resolve;
$$resolve(x);
return capability.promise;
}
});
- $export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(115)(function(iter){
- P.all(iter)['catch'](function(){});
+ $export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(157)(function(iter){
+ $Promise.all(iter)['catch'](empty);
})), PROMISE, {
// 25.4.4.1 Promise.all(iterable)
all: function all(iterable){
- var C = getConstructor(this)
- , capability = new PromiseCapability(C)
+ var C = this
+ , capability = newPromiseCapability(C)
, resolve = capability.resolve
- , reject = capability.reject
- , values = [];
+ , reject = capability.reject;
var abrupt = perform(function(){
- forOf(iterable, false, values.push, values);
- var remaining = values.length
- , results = Array(remaining);
- if(remaining)$.each.call(values, function(promise, index){
- var alreadyCalled = false;
+ var values = []
+ , index = 0
+ , remaining = 1;
+ forOf(iterable, false, function(promise){
+ var $index = index++
+ , alreadyCalled = false;
+ values.push(undefined);
+ remaining++;
C.resolve(promise).then(function(value){
if(alreadyCalled)return;
- alreadyCalled = true;
- results[index] = value;
- --remaining || resolve(results);
+ alreadyCalled = true;
+ values[$index] = value;
+ --remaining || resolve(values);
}, reject);
});
- else resolve(results);
+ --remaining || resolve(values);
});
if(abrupt)reject(abrupt.error);
return capability.promise;
},
// 25.4.4.4 Promise.race(iterable)
race: function race(iterable){
- var C = getConstructor(this)
- , capability = new PromiseCapability(C)
+ var C = this
+ , capability = newPromiseCapability(C)
, reject = capability.reject;
var abrupt = perform(function(){
forOf(iterable, false, function(promise){
@@ -3230,129 +4217,67 @@
});
/***/ },
-/* 137 */
+/* 197 */
/***/ function(module, exports) {
- module.exports = function(it, Constructor, name){
- if(!(it instanceof Constructor))throw TypeError(name + ": use the 'new' operator!");
- return it;
+ module.exports = function(it, Constructor, name, forbiddenField){
+ if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){
+ throw TypeError(name + ': incorrect invocation!');
+ } return it;
};
/***/ },
-/* 138 */
+/* 198 */
/***/ function(module, exports, __webpack_require__) {
- var ctx = __webpack_require__(12)
- , call = __webpack_require__(112)
- , isArrayIter = __webpack_require__(113)
- , anObject = __webpack_require__(20)
- , toLength = __webpack_require__(27)
- , getIterFn = __webpack_require__(114);
- module.exports = function(iterable, entries, fn, that){
- var iterFn = getIterFn(iterable)
+ var ctx = __webpack_require__(18)
+ , call = __webpack_require__(153)
+ , isArrayIter = __webpack_require__(154)
+ , anObject = __webpack_require__(10)
+ , toLength = __webpack_require__(35)
+ , getIterFn = __webpack_require__(156)
+ , BREAK = {}
+ , RETURN = {};
+ var exports = module.exports = function(iterable, entries, fn, that, ITERATOR){
+ var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)
, f = ctx(fn, that, entries ? 2 : 1)
, index = 0
- , length, step, iterator;
+ , length, step, iterator, result;
if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');
// fast case for arrays with default iterator
if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){
- entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
+ result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
+ if(result === BREAK || result === RETURN)return result;
} else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
- call(iterator, f, step.value, entries);
+ result = call(iterator, f, step.value, entries);
+ if(result === BREAK || result === RETURN)return result;
}
};
+ exports.BREAK = BREAK;
+ exports.RETURN = RETURN;
/***/ },
-/* 139 */
+/* 199 */
/***/ function(module, exports, __webpack_require__) {
// 7.3.20 SpeciesConstructor(O, defaultConstructor)
- var anObject = __webpack_require__(20)
- , aFunction = __webpack_require__(13)
- , SPECIES = __webpack_require__(31)('species');
+ var anObject = __webpack_require__(10)
+ , aFunction = __webpack_require__(19)
+ , SPECIES = __webpack_require__(23)('species');
module.exports = function(O, D){
var C = anObject(O).constructor, S;
return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
};
/***/ },
-/* 140 */
-/***/ function(module, exports, __webpack_require__) {
-
- var global = __webpack_require__(4)
- , macrotask = __webpack_require__(141).set
- , Observer = global.MutationObserver || global.WebKitMutationObserver
- , process = global.process
- , Promise = global.Promise
- , isNode = __webpack_require__(18)(process) == 'process'
- , head, last, notify;
-
- var flush = function(){
- var parent, domain, fn;
- if(isNode && (parent = process.domain)){
- process.domain = null;
- parent.exit();
- }
- while(head){
- domain = head.domain;
- fn = head.fn;
- if(domain)domain.enter();
- fn(); // <- currently we use it only for Promise - try / catch not required
- if(domain)domain.exit();
- head = head.next;
- } last = undefined;
- if(parent)parent.enter();
- };
-
- // Node.js
- if(isNode){
- notify = function(){
- process.nextTick(flush);
- };
- // browsers with MutationObserver
- } else if(Observer){
- var toggle = 1
- , node = document.createTextNode('');
- new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new
- notify = function(){
- node.data = toggle = -toggle;
- };
- // environments with maybe non-completely correct, but existent Promise
- } else if(Promise && Promise.resolve){
- notify = function(){
- Promise.resolve().then(flush);
- };
- // for other environments - macrotask based on:
- // - setImmediate
- // - MessageChannel
- // - window.postMessag
- // - onreadystatechange
- // - setTimeout
- } else {
- notify = function(){
- // strange IE + webpack dev server bug - use .call(global)
- macrotask.call(global, flush);
- };
- }
-
- module.exports = function asap(fn){
- var task = {fn: fn, next: undefined, domain: isNode && process.domain};
- if(last)last.next = task;
- if(!head){
- head = task;
- notify();
- } last = task;
- };
-
-/***/ },
-/* 141 */
+/* 200 */
/***/ function(module, exports, __webpack_require__) {
- var ctx = __webpack_require__(12)
- , invoke = __webpack_require__(19)
- , html = __webpack_require__(14)
- , cel = __webpack_require__(15)
- , global = __webpack_require__(4)
+ var ctx = __webpack_require__(18)
+ , invoke = __webpack_require__(76)
+ , html = __webpack_require__(46)
+ , cel = __webpack_require__(13)
+ , global = __webpack_require__(2)
, process = global.process
, setTask = global.setImmediate
, clearTask = global.clearImmediate
@@ -3369,7 +4294,7 @@
fn();
}
};
- var listner = function(event){
+ var listener = function(event){
run.call(event.data);
};
// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
@@ -3387,7 +4312,7 @@
delete queue[id];
};
// Node.js 0.8-
- if(__webpack_require__(18)(process) == 'process'){
+ if(__webpack_require__(32)(process) == 'process'){
defer = function(id){
process.nextTick(ctx(run, id, 1));
};
@@ -3395,7 +4320,7 @@
} else if(MessageChannel){
channel = new MessageChannel;
port = channel.port2;
- channel.port1.onmessage = listner;
+ channel.port1.onmessage = listener;
defer = ctx(port.postMessage, port, 1);
// Browsers with postMessage, skip WebWorkers
// IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
@@ -3403,7 +4328,7 @@
defer = function(id){
global.postMessage(id + '', '*');
};
- global.addEventListener('message', listner, false);
+ global.addEventListener('message', listener, false);
// IE8-
} else if(ONREADYSTATECHANGE in cel('script')){
defer = function(id){
@@ -3425,24 +4350,97 @@
};
/***/ },
-/* 142 */
+/* 201 */
/***/ function(module, exports, __webpack_require__) {
- var redefine = __webpack_require__(10);
- module.exports = function(target, src){
- for(var key in src)redefine(target, key, src[key]);
+ var global = __webpack_require__(2)
+ , macrotask = __webpack_require__(200).set
+ , Observer = global.MutationObserver || global.WebKitMutationObserver
+ , process = global.process
+ , Promise = global.Promise
+ , isNode = __webpack_require__(32)(process) == 'process';
+
+ module.exports = function(){
+ var head, last, notify;
+
+ var flush = function(){
+ var parent, fn;
+ if(isNode && (parent = process.domain))parent.exit();
+ while(head){
+ fn = head.fn;
+ head = head.next;
+ try {
+ fn();
+ } catch(e){
+ if(head)notify();
+ else last = undefined;
+ throw e;
+ }
+ } last = undefined;
+ if(parent)parent.enter();
+ };
+
+ // Node.js
+ if(isNode){
+ notify = function(){
+ process.nextTick(flush);
+ };
+ // browsers with MutationObserver
+ } else if(Observer){
+ var toggle = true
+ , node = document.createTextNode('');
+ new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new
+ notify = function(){
+ node.data = toggle = !toggle;
+ };
+ // environments with maybe non-completely correct, but existent Promise
+ } else if(Promise && Promise.resolve){
+ var promise = Promise.resolve();
+ notify = function(){
+ promise.then(flush);
+ };
+ // for other environments - macrotask based on:
+ // - setImmediate
+ // - MessageChannel
+ // - window.postMessag
+ // - onreadystatechange
+ // - setTimeout
+ } else {
+ notify = function(){
+ // strange IE + webpack dev server bug - use .call(global)
+ macrotask.call(global, flush);
+ };
+ }
+
+ return function(fn){
+ var task = {fn: fn, next: undefined};
+ if(last)last.next = task;
+ if(!head){
+ head = task;
+ notify();
+ } last = task;
+ };
+ };
+
+/***/ },
+/* 202 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var redefine = __webpack_require__(16);
+ module.exports = function(target, src, safe){
+ for(var key in src)redefine(target, key, src[key], safe);
return target;
};
/***/ },
-/* 143 */
+/* 203 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var strong = __webpack_require__(144);
+ var strong = __webpack_require__(204);
// 23.1 Map Objects
- __webpack_require__(145)('Map', function(get){
+ module.exports = __webpack_require__(205)('Map', function(get){
return function Map(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.1.3.6 Map.prototype.get(key)
@@ -3457,41 +4455,23 @@
}, strong, true);
/***/ },
-/* 144 */
+/* 204 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , hide = __webpack_require__(6)
- , redefineAll = __webpack_require__(142)
- , ctx = __webpack_require__(12)
- , strictNew = __webpack_require__(137)
- , defined = __webpack_require__(22)
- , forOf = __webpack_require__(138)
- , $iterDefine = __webpack_require__(108)
- , step = __webpack_require__(119)
- , ID = __webpack_require__(11)('id')
- , $has = __webpack_require__(17)
- , isObject = __webpack_require__(16)
- , setSpecies = __webpack_require__(121)
- , DESCRIPTORS = __webpack_require__(8)
- , isExtensible = Object.isExtensible || isObject
- , SIZE = DESCRIPTORS ? '_s' : 'size'
- , id = 0;
-
- var fastKey = function(it, create){
- // return primitive with prefix
- if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
- if(!$has(it, ID)){
- // can't set id to frozen object
- if(!isExtensible(it))return 'F';
- // not necessary to add id
- if(!create)return 'E';
- // add missing object id
- hide(it, ID, ++id);
- // return object id with prefix
- } return 'O' + it[ID];
- };
+ var dP = __webpack_require__(9).f
+ , create = __webpack_require__(44)
+ , redefineAll = __webpack_require__(202)
+ , ctx = __webpack_require__(18)
+ , anInstance = __webpack_require__(197)
+ , defined = __webpack_require__(33)
+ , forOf = __webpack_require__(198)
+ , $iterDefine = __webpack_require__(134)
+ , step = __webpack_require__(184)
+ , setSpecies = __webpack_require__(186)
+ , DESCRIPTORS = __webpack_require__(4)
+ , fastKey = __webpack_require__(20).fastKey
+ , SIZE = DESCRIPTORS ? '_s' : 'size';
var getEntry = function(that, key){
// fast case
@@ -3506,11 +4486,11 @@
module.exports = {
getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
var C = wrapper(function(that, iterable){
- strictNew(that, C, NAME);
- that._i = $.create(null); // index
- that._f = undefined; // first entry
- that._l = undefined; // last entry
- that[SIZE] = 0; // size
+ anInstance(that, C, NAME, '_i');
+ that._i = create(null); // index
+ that._f = undefined; // first entry
+ that._l = undefined; // last entry
+ that[SIZE] = 0; // size
if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
});
redefineAll(C.prototype, {
@@ -3545,6 +4525,7 @@
// 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
// 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
forEach: function forEach(callbackfn /*, that = undefined */){
+ anInstance(this, C, 'forEach');
var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)
, entry;
while(entry = entry ? entry.n : this._f){
@@ -3559,7 +4540,7 @@
return !!getEntry(this, key);
}
});
- if(DESCRIPTORS)$.setDesc(C.prototype, 'size', {
+ if(DESCRIPTORS)dP(C.prototype, 'size', {
get: function(){
return defined(this[SIZE]);
}
@@ -3621,20 +4602,22 @@
};
/***/ },
-/* 145 */
+/* 205 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var global = __webpack_require__(4)
- , $export = __webpack_require__(3)
- , redefine = __webpack_require__(10)
- , redefineAll = __webpack_require__(142)
- , forOf = __webpack_require__(138)
- , strictNew = __webpack_require__(137)
- , isObject = __webpack_require__(16)
- , fails = __webpack_require__(9)
- , $iterDetect = __webpack_require__(115)
- , setToStringTag = __webpack_require__(35);
+ var global = __webpack_require__(2)
+ , $export = __webpack_require__(6)
+ , redefine = __webpack_require__(16)
+ , redefineAll = __webpack_require__(202)
+ , meta = __webpack_require__(20)
+ , forOf = __webpack_require__(198)
+ , anInstance = __webpack_require__(197)
+ , isObject = __webpack_require__(11)
+ , fails = __webpack_require__(5)
+ , $iterDetect = __webpack_require__(157)
+ , setToStringTag = __webpack_require__(22)
+ , inheritIfRequired = __webpack_require__(80);
module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){
var Base = global[NAME]
@@ -3661,6 +4644,7 @@
// create collection constructor
C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
redefineAll(C.prototype, methods);
+ meta.NEED = true;
} else {
var instance = new C
// early implementations not supports chaining
@@ -3670,20 +4654,23 @@
// most early implementations doesn't supports iterables, most modern - not close it correctly
, ACCEPT_ITERABLES = $iterDetect(function(iter){ new C(iter); }) // eslint-disable-line no-new
// for early implementations -0 and +0 not the same
- , BUGGY_ZERO;
+ , BUGGY_ZERO = !IS_WEAK && fails(function(){
+ // V8 ~ Chromium 42- fails only with 5+ elements
+ var $instance = new C()
+ , index = 5;
+ while(index--)$instance[ADDER](index, index);
+ return !$instance.has(-0);
+ });
if(!ACCEPT_ITERABLES){
C = wrapper(function(target, iterable){
- strictNew(target, C, NAME);
- var that = new Base;
+ anInstance(target, C, NAME);
+ var that = inheritIfRequired(new Base, target, C);
if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
return that;
});
C.prototype = proto;
proto.constructor = C;
}
- IS_WEAK || instance.forEach(function(val, key){
- BUGGY_ZERO = 1 / key === -Infinity;
- });
if(THROWS_ON_PRIMITIVES || BUGGY_ZERO){
fixMethod('delete');
fixMethod('has');
@@ -3705,14 +4692,14 @@
};
/***/ },
-/* 146 */
+/* 206 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var strong = __webpack_require__(144);
+ var strong = __webpack_require__(204);
// 23.2 Set Objects
- __webpack_require__(145)('Set', function(get){
+ module.exports = __webpack_require__(205)('Set', function(get){
return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.2.3.1 Set.prototype.add(value)
@@ -3722,46 +4709,59 @@
}, strong);
/***/ },
-/* 147 */
+/* 207 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $ = __webpack_require__(2)
- , redefine = __webpack_require__(10)
- , weak = __webpack_require__(148)
- , isObject = __webpack_require__(16)
- , has = __webpack_require__(17)
- , frozenStore = weak.frozenStore
- , WEAK = weak.WEAK
- , isExtensible = Object.isExtensible || isObject
- , tmp = {};
+ var each = __webpack_require__(164)(0)
+ , redefine = __webpack_require__(16)
+ , meta = __webpack_require__(20)
+ , assign = __webpack_require__(67)
+ , weak = __webpack_require__(208)
+ , isObject = __webpack_require__(11)
+ , getWeak = meta.getWeak
+ , isExtensible = Object.isExtensible
+ , uncaughtFrozenStore = weak.ufstore
+ , tmp = {}
+ , InternalMap;
+
+ var wrapper = function(get){
+ return function WeakMap(){
+ return get(this, arguments.length > 0 ? arguments[0] : undefined);
+ };
+ };
- // 23.3 WeakMap Objects
- var $WeakMap = __webpack_require__(145)('WeakMap', function(get){
- return function WeakMap(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
- }, {
+ var methods = {
// 23.3.3.3 WeakMap.prototype.get(key)
get: function get(key){
if(isObject(key)){
- if(!isExtensible(key))return frozenStore(this).get(key);
- if(has(key, WEAK))return key[WEAK][this._i];
+ var data = getWeak(key);
+ if(data === true)return uncaughtFrozenStore(this).get(key);
+ return data ? data[this._i] : undefined;
}
},
// 23.3.3.5 WeakMap.prototype.set(key, value)
set: function set(key, value){
return weak.def(this, key, value);
}
- }, weak, true, true);
+ };
+
+ // 23.3 WeakMap Objects
+ var $WeakMap = module.exports = __webpack_require__(205)('WeakMap', wrapper, methods, weak, true, true);
// IE11 WeakMap frozen keys fix
if(new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){
- $.each.call(['delete', 'has', 'get', 'set'], function(key){
+ InternalMap = weak.getConstructor(wrapper);
+ assign(InternalMap.prototype, methods);
+ meta.NEED = true;
+ each(['delete', 'has', 'get', 'set'], function(key){
var proto = $WeakMap.prototype
, method = proto[key];
redefine(proto, key, function(a, b){
- // store frozen objects on leaky map
+ // store frozen objects on internal weakmap shim
if(isObject(a) && !isExtensible(a)){
- var result = frozenStore(this)[key](a, b);
+ if(!this._f)this._f = new InternalMap;
+ var result = this._f[key](a, b);
return key == 'set' ? this : result;
// store all the rest on native weakmap
} return method.call(this, a, b);
@@ -3770,46 +4770,44 @@
}
/***/ },
-/* 148 */
+/* 208 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var hide = __webpack_require__(6)
- , redefineAll = __webpack_require__(142)
- , anObject = __webpack_require__(20)
- , isObject = __webpack_require__(16)
- , strictNew = __webpack_require__(137)
- , forOf = __webpack_require__(138)
- , createArrayMethod = __webpack_require__(28)
- , $has = __webpack_require__(17)
- , WEAK = __webpack_require__(11)('weak')
- , isExtensible = Object.isExtensible || isObject
+ var redefineAll = __webpack_require__(202)
+ , getWeak = __webpack_require__(20).getWeak
+ , anObject = __webpack_require__(10)
+ , isObject = __webpack_require__(11)
+ , anInstance = __webpack_require__(197)
+ , forOf = __webpack_require__(198)
+ , createArrayMethod = __webpack_require__(164)
+ , $has = __webpack_require__(3)
, arrayFind = createArrayMethod(5)
, arrayFindIndex = createArrayMethod(6)
, id = 0;
- // fallback for frozen keys
- var frozenStore = function(that){
- return that._l || (that._l = new FrozenStore);
+ // fallback for uncaught frozen keys
+ var uncaughtFrozenStore = function(that){
+ return that._l || (that._l = new UncaughtFrozenStore);
};
- var FrozenStore = function(){
+ var UncaughtFrozenStore = function(){
this.a = [];
};
- var findFrozen = function(store, key){
+ var findUncaughtFrozen = function(store, key){
return arrayFind(store.a, function(it){
return it[0] === key;
});
};
- FrozenStore.prototype = {
+ UncaughtFrozenStore.prototype = {
get: function(key){
- var entry = findFrozen(this, key);
+ var entry = findUncaughtFrozen(this, key);
if(entry)return entry[1];
},
has: function(key){
- return !!findFrozen(this, key);
+ return !!findUncaughtFrozen(this, key);
},
set: function(key, value){
- var entry = findFrozen(this, key);
+ var entry = findUncaughtFrozen(this, key);
if(entry)entry[1] = value;
else this.a.push([key, value]);
},
@@ -3825,9 +4823,9 @@
module.exports = {
getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
var C = wrapper(function(that, iterable){
- strictNew(that, C, NAME);
+ anInstance(that, C, NAME, '_i');
that._i = id++; // collection id
- that._l = undefined; // leak store for frozen objects
+ that._l = undefined; // leak store for uncaught frozen objects
if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
});
redefineAll(C.prototype, {
@@ -3835,40 +4833,39 @@
// 23.4.3.3 WeakSet.prototype.delete(value)
'delete': function(key){
if(!isObject(key))return false;
- if(!isExtensible(key))return frozenStore(this)['delete'](key);
- return $has(key, WEAK) && $has(key[WEAK], this._i) && delete key[WEAK][this._i];
+ var data = getWeak(key);
+ if(data === true)return uncaughtFrozenStore(this)['delete'](key);
+ return data && $has(data, this._i) && delete data[this._i];
},
// 23.3.3.4 WeakMap.prototype.has(key)
// 23.4.3.4 WeakSet.prototype.has(value)
has: function has(key){
if(!isObject(key))return false;
- if(!isExtensible(key))return frozenStore(this).has(key);
- return $has(key, WEAK) && $has(key[WEAK], this._i);
+ var data = getWeak(key);
+ if(data === true)return uncaughtFrozenStore(this).has(key);
+ return data && $has(data, this._i);
}
});
return C;
},
def: function(that, key, value){
- if(!isExtensible(anObject(key))){
- frozenStore(that).set(key, value);
- } else {
- $has(key, WEAK) || hide(key, WEAK, {});
- key[WEAK][that._i] = value;
- } return that;
+ var data = getWeak(anObject(key), true);
+ if(data === true)uncaughtFrozenStore(that).set(key, value);
+ else data[that._i] = value;
+ return that;
},
- frozenStore: frozenStore,
- WEAK: WEAK
+ ufstore: uncaughtFrozenStore
};
/***/ },
-/* 149 */
+/* 209 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var weak = __webpack_require__(148);
+ var weak = __webpack_require__(208);
// 23.4 WeakSet Objects
- __webpack_require__(145)('WeakSet', function(get){
+ __webpack_require__(205)('WeakSet', function(get){
return function WeakSet(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.4.3.1 WeakSet.prototype.add(value)
@@ -3878,42 +4875,56 @@
}, weak, false, true);
/***/ },
-/* 150 */
+/* 210 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
- var $export = __webpack_require__(3)
- , _apply = Function.apply
- , anObject = __webpack_require__(20);
-
- $export($export.S, 'Reflect', {
+ var $export = __webpack_require__(6)
+ , aFunction = __webpack_require__(19)
+ , anObject = __webpack_require__(10)
+ , rApply = (__webpack_require__(2).Reflect || {}).apply
+ , fApply = Function.apply;
+ // MS Edge argumentsList argument is optional
+ $export($export.S + $export.F * !__webpack_require__(5)(function(){
+ rApply(function(){});
+ }), 'Reflect', {
apply: function apply(target, thisArgument, argumentsList){
- return _apply.call(target, thisArgument, anObject(argumentsList));
+ var T = aFunction(target)
+ , L = anObject(argumentsList);
+ return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);
}
});
/***/ },
-/* 151 */
+/* 211 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
- var $ = __webpack_require__(2)
- , $export = __webpack_require__(3)
- , aFunction = __webpack_require__(13)
- , anObject = __webpack_require__(20)
- , isObject = __webpack_require__(16)
- , bind = Function.bind || __webpack_require__(5).Function.prototype.bind;
-
- // MS Edge supports only 2 arguments
+ var $export = __webpack_require__(6)
+ , create = __webpack_require__(44)
+ , aFunction = __webpack_require__(19)
+ , anObject = __webpack_require__(10)
+ , isObject = __webpack_require__(11)
+ , fails = __webpack_require__(5)
+ , bind = __webpack_require__(75)
+ , rConstruct = (__webpack_require__(2).Reflect || {}).construct;
+
+ // MS Edge supports only 2 arguments and argumentsList argument is optional
// FF Nightly sets third argument as `new.target`, but does not create `this` from it
- $export($export.S + $export.F * __webpack_require__(9)(function(){
+ var NEW_TARGET_BUG = fails(function(){
function F(){}
- return !(Reflect.construct(function(){}, [], F) instanceof F);
- }), 'Reflect', {
+ return !(rConstruct(function(){}, [], F) instanceof F);
+ });
+ var ARGS_BUG = !fails(function(){
+ rConstruct(function(){});
+ });
+
+ $export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
construct: function construct(Target, args /*, newTarget*/){
aFunction(Target);
anObject(args);
var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
+ if(ARGS_BUG && !NEW_TARGET_BUG)return rConstruct(Target, args, newTarget);
if(Target == newTarget){
// w/o altered newTarget, optimization for 0-4 arguments
switch(args.length){
@@ -3930,29 +4941,32 @@
}
// with altered newTarget, not support built-in constructors
var proto = newTarget.prototype
- , instance = $.create(isObject(proto) ? proto : Object.prototype)
+ , instance = create(isObject(proto) ? proto : Object.prototype)
, result = Function.apply.call(Target, instance, args);
return isObject(result) ? result : instance;
}
});
/***/ },
-/* 152 */
+/* 212 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
- var $ = __webpack_require__(2)
- , $export = __webpack_require__(3)
- , anObject = __webpack_require__(20);
+ var dP = __webpack_require__(9)
+ , $export = __webpack_require__(6)
+ , anObject = __webpack_require__(10)
+ , toPrimitive = __webpack_require__(14);
// MS Edge has broken Reflect.defineProperty - throwing instead of returning false
- $export($export.S + $export.F * __webpack_require__(9)(function(){
- Reflect.defineProperty($.setDesc({}, 1, {value: 1}), 1, {value: 2});
+ $export($export.S + $export.F * __webpack_require__(5)(function(){
+ Reflect.defineProperty(dP.f({}, 1, {value: 1}), 1, {value: 2});
}), 'Reflect', {
defineProperty: function defineProperty(target, propertyKey, attributes){
anObject(target);
+ propertyKey = toPrimitive(propertyKey, true);
+ anObject(attributes);
try {
- $.setDesc(target, propertyKey, attributes);
+ dP.f(target, propertyKey, attributes);
return true;
} catch(e){
return false;
@@ -3961,29 +4975,29 @@
});
/***/ },
-/* 153 */
+/* 213 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.4 Reflect.deleteProperty(target, propertyKey)
- var $export = __webpack_require__(3)
- , getDesc = __webpack_require__(2).getDesc
- , anObject = __webpack_require__(20);
+ var $export = __webpack_require__(6)
+ , gOPD = __webpack_require__(49).f
+ , anObject = __webpack_require__(10);
$export($export.S, 'Reflect', {
deleteProperty: function deleteProperty(target, propertyKey){
- var desc = getDesc(anObject(target), propertyKey);
+ var desc = gOPD(anObject(target), propertyKey);
return desc && !desc.configurable ? false : delete target[propertyKey];
}
});
/***/ },
-/* 154 */
+/* 214 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// 26.1.5 Reflect.enumerate(target)
- var $export = __webpack_require__(3)
- , anObject = __webpack_require__(20);
+ var $export = __webpack_require__(6)
+ , anObject = __webpack_require__(10);
var Enumerate = function(iterated){
this._t = anObject(iterated); // target
this._i = 0; // next index
@@ -3991,7 +5005,7 @@
, key;
for(key in iterated)keys.push(key);
};
- __webpack_require__(110)(Enumerate, 'Object', function(){
+ __webpack_require__(136)(Enumerate, 'Object', function(){
var that = this
, keys = that._k
, key;
@@ -4008,53 +5022,54 @@
});
/***/ },
-/* 155 */
+/* 215 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.6 Reflect.get(target, propertyKey [, receiver])
- var $ = __webpack_require__(2)
- , has = __webpack_require__(17)
- , $export = __webpack_require__(3)
- , isObject = __webpack_require__(16)
- , anObject = __webpack_require__(20);
+ var gOPD = __webpack_require__(49)
+ , getPrototypeOf = __webpack_require__(57)
+ , has = __webpack_require__(3)
+ , $export = __webpack_require__(6)
+ , isObject = __webpack_require__(11)
+ , anObject = __webpack_require__(10);
function get(target, propertyKey/*, receiver*/){
var receiver = arguments.length < 3 ? target : arguments[2]
, desc, proto;
if(anObject(target) === receiver)return target[propertyKey];
- if(desc = $.getDesc(target, propertyKey))return has(desc, 'value')
+ if(desc = gOPD.f(target, propertyKey))return has(desc, 'value')
? desc.value
: desc.get !== undefined
? desc.get.call(receiver)
: undefined;
- if(isObject(proto = $.getProto(target)))return get(proto, propertyKey, receiver);
+ if(isObject(proto = getPrototypeOf(target)))return get(proto, propertyKey, receiver);
}
$export($export.S, 'Reflect', {get: get});
/***/ },
-/* 156 */
+/* 216 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
- var $ = __webpack_require__(2)
- , $export = __webpack_require__(3)
- , anObject = __webpack_require__(20);
+ var gOPD = __webpack_require__(49)
+ , $export = __webpack_require__(6)
+ , anObject = __webpack_require__(10);
$export($export.S, 'Reflect', {
getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey){
- return $.getDesc(anObject(target), propertyKey);
+ return gOPD.f(anObject(target), propertyKey);
}
});
/***/ },
-/* 157 */
+/* 217 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.8 Reflect.getPrototypeOf(target)
- var $export = __webpack_require__(3)
- , getProto = __webpack_require__(2).getProto
- , anObject = __webpack_require__(20);
+ var $export = __webpack_require__(6)
+ , getProto = __webpack_require__(57)
+ , anObject = __webpack_require__(10);
$export($export.S, 'Reflect', {
getPrototypeOf: function getPrototypeOf(target){
@@ -4063,11 +5078,11 @@
});
/***/ },
-/* 158 */
+/* 218 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.9 Reflect.has(target, propertyKey)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
$export($export.S, 'Reflect', {
has: function has(target, propertyKey){
@@ -4076,12 +5091,12 @@
});
/***/ },
-/* 159 */
+/* 219 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.10 Reflect.isExtensible(target)
- var $export = __webpack_require__(3)
- , anObject = __webpack_require__(20)
+ var $export = __webpack_require__(6)
+ , anObject = __webpack_require__(10)
, $isExtensible = Object.isExtensible;
$export($export.S, 'Reflect', {
@@ -4092,35 +5107,36 @@
});
/***/ },
-/* 160 */
+/* 220 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.11 Reflect.ownKeys(target)
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.S, 'Reflect', {ownKeys: __webpack_require__(161)});
+ $export($export.S, 'Reflect', {ownKeys: __webpack_require__(221)});
/***/ },
-/* 161 */
+/* 221 */
/***/ function(module, exports, __webpack_require__) {
// all object keys, includes non-enumerable and symbols
- var $ = __webpack_require__(2)
- , anObject = __webpack_require__(20)
- , Reflect = __webpack_require__(4).Reflect;
+ var gOPN = __webpack_require__(48)
+ , gOPS = __webpack_require__(41)
+ , anObject = __webpack_require__(10)
+ , Reflect = __webpack_require__(2).Reflect;
module.exports = Reflect && Reflect.ownKeys || function ownKeys(it){
- var keys = $.getNames(anObject(it))
- , getSymbols = $.getSymbols;
+ var keys = gOPN.f(anObject(it))
+ , getSymbols = gOPS.f;
return getSymbols ? keys.concat(getSymbols(it)) : keys;
};
/***/ },
-/* 162 */
+/* 222 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.12 Reflect.preventExtensions(target)
- var $export = __webpack_require__(3)
- , anObject = __webpack_require__(20)
+ var $export = __webpack_require__(6)
+ , anObject = __webpack_require__(10)
, $preventExtensions = Object.preventExtensions;
$export($export.S, 'Reflect', {
@@ -4136,32 +5152,34 @@
});
/***/ },
-/* 163 */
+/* 223 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
- var $ = __webpack_require__(2)
- , has = __webpack_require__(17)
- , $export = __webpack_require__(3)
- , createDesc = __webpack_require__(7)
- , anObject = __webpack_require__(20)
- , isObject = __webpack_require__(16);
+ var dP = __webpack_require__(9)
+ , gOPD = __webpack_require__(49)
+ , getPrototypeOf = __webpack_require__(57)
+ , has = __webpack_require__(3)
+ , $export = __webpack_require__(6)
+ , createDesc = __webpack_require__(15)
+ , anObject = __webpack_require__(10)
+ , isObject = __webpack_require__(11);
function set(target, propertyKey, V/*, receiver*/){
var receiver = arguments.length < 4 ? target : arguments[3]
- , ownDesc = $.getDesc(anObject(target), propertyKey)
+ , ownDesc = gOPD.f(anObject(target), propertyKey)
, existingDescriptor, proto;
if(!ownDesc){
- if(isObject(proto = $.getProto(target))){
+ if(isObject(proto = getPrototypeOf(target))){
return set(proto, propertyKey, V, receiver);
}
ownDesc = createDesc(0);
}
if(has(ownDesc, 'value')){
if(ownDesc.writable === false || !isObject(receiver))return false;
- existingDescriptor = $.getDesc(receiver, propertyKey) || createDesc(0);
+ existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);
existingDescriptor.value = V;
- $.setDesc(receiver, propertyKey, existingDescriptor);
+ dP.f(receiver, propertyKey, existingDescriptor);
return true;
}
return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
@@ -4170,12 +5188,12 @@
$export($export.S, 'Reflect', {set: set});
/***/ },
-/* 164 */
+/* 224 */
/***/ function(module, exports, __webpack_require__) {
// 26.1.14 Reflect.setPrototypeOf(target, proto)
- var $export = __webpack_require__(3)
- , setProto = __webpack_require__(45);
+ var $export = __webpack_require__(6)
+ , setProto = __webpack_require__(71);
if(setProto)$export($export.S, 'Reflect', {
setPrototypeOf: function setPrototypeOf(target, proto){
@@ -4190,30 +5208,1073 @@
});
/***/ },
-/* 165 */
+/* 225 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 20.3.3.1 / 15.9.4.4 Date.now()
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'Date', {now: function(){ return new Date().getTime(); }});
+
+/***/ },
+/* 226 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toObject = __webpack_require__(56)
+ , toPrimitive = __webpack_require__(14);
+
+ $export($export.P + $export.F * __webpack_require__(5)(function(){
+ return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({toISOString: function(){ return 1; }}) !== 1;
+ }), 'Date', {
+ toJSON: function toJSON(key){
+ var O = toObject(this)
+ , pv = toPrimitive(O);
+ return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();
+ }
+ });
+
+/***/ },
+/* 227 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
+ var $export = __webpack_require__(6)
+ , fails = __webpack_require__(5)
+ , getTime = Date.prototype.getTime;
+
+ var lz = function(num){
+ return num > 9 ? num : '0' + num;
+ };
+
+ // PhantomJS / old WebKit has a broken implementations
+ $export($export.P + $export.F * (fails(function(){
+ return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';
+ }) || !fails(function(){
+ new Date(NaN).toISOString();
+ })), 'Date', {
+ toISOString: function toISOString(){
+ if(!isFinite(getTime.call(this)))throw RangeError('Invalid time value');
+ var d = this
+ , y = d.getUTCFullYear()
+ , m = d.getUTCMilliseconds()
+ , s = y < 0 ? '-' : y > 9999 ? '+' : '';
+ return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
+ '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
+ 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
+ ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
+ }
+ });
+
+/***/ },
+/* 228 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var DateProto = Date.prototype
+ , INVALID_DATE = 'Invalid Date'
+ , TO_STRING = 'toString'
+ , $toString = DateProto[TO_STRING]
+ , getTime = DateProto.getTime;
+ if(new Date(NaN) + '' != INVALID_DATE){
+ __webpack_require__(16)(DateProto, TO_STRING, function toString(){
+ var value = getTime.call(this);
+ return value === value ? $toString.call(this) : INVALID_DATE;
+ });
+ }
+
+/***/ },
+/* 229 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var TO_PRIMITIVE = __webpack_require__(23)('toPrimitive')
+ , proto = Date.prototype;
+
+ if(!(TO_PRIMITIVE in proto))__webpack_require__(8)(proto, TO_PRIMITIVE, __webpack_require__(230));
+
+/***/ },
+/* 230 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var anObject = __webpack_require__(10)
+ , toPrimitive = __webpack_require__(14)
+ , NUMBER = 'number';
+
+ module.exports = function(hint){
+ if(hint !== 'string' && hint !== NUMBER && hint !== 'default')throw TypeError('Incorrect hint');
+ return toPrimitive(anObject(this), hint != NUMBER);
+ };
+
+/***/ },
+/* 231 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , $typed = __webpack_require__(232)
+ , buffer = __webpack_require__(233)
+ , anObject = __webpack_require__(10)
+ , toIndex = __webpack_require__(37)
+ , toLength = __webpack_require__(35)
+ , isObject = __webpack_require__(11)
+ , ArrayBuffer = __webpack_require__(2).ArrayBuffer
+ , speciesConstructor = __webpack_require__(199)
+ , $ArrayBuffer = buffer.ArrayBuffer
+ , $DataView = buffer.DataView
+ , $isView = $typed.ABV && ArrayBuffer.isView
+ , $slice = $ArrayBuffer.prototype.slice
+ , VIEW = $typed.VIEW
+ , ARRAY_BUFFER = 'ArrayBuffer';
+
+ $export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), {ArrayBuffer: $ArrayBuffer});
+
+ $export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {
+ // 24.1.3.1 ArrayBuffer.isView(arg)
+ isView: function isView(it){
+ return $isView && $isView(it) || isObject(it) && VIEW in it;
+ }
+ });
+
+ $export($export.P + $export.U + $export.F * __webpack_require__(5)(function(){
+ return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
+ }), ARRAY_BUFFER, {
+ // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
+ slice: function slice(start, end){
+ if($slice !== undefined && end === undefined)return $slice.call(anObject(this), start); // FF fix
+ var len = anObject(this).byteLength
+ , first = toIndex(start, len)
+ , final = toIndex(end === undefined ? len : end, len)
+ , result = new (speciesConstructor(this, $ArrayBuffer))(toLength(final - first))
+ , viewS = new $DataView(this)
+ , viewT = new $DataView(result)
+ , index = 0;
+ while(first < final){
+ viewT.setUint8(index++, viewS.getUint8(first++));
+ } return result;
+ }
+ });
+
+ __webpack_require__(186)(ARRAY_BUFFER);
+
+/***/ },
+/* 232 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var global = __webpack_require__(2)
+ , hide = __webpack_require__(8)
+ , uid = __webpack_require__(17)
+ , TYPED = uid('typed_array')
+ , VIEW = uid('view')
+ , ABV = !!(global.ArrayBuffer && global.DataView)
+ , CONSTR = ABV
+ , i = 0, l = 9, Typed;
+
+ var TypedArrayConstructors = (
+ 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'
+ ).split(',');
+
+ while(i < l){
+ if(Typed = global[TypedArrayConstructors[i++]]){
+ hide(Typed.prototype, TYPED, true);
+ hide(Typed.prototype, VIEW, true);
+ } else CONSTR = false;
+ }
+
+ module.exports = {
+ ABV: ABV,
+ CONSTR: CONSTR,
+ TYPED: TYPED,
+ VIEW: VIEW
+ };
+
+/***/ },
+/* 233 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3)
- , $includes = __webpack_require__(33)(true);
+ var global = __webpack_require__(2)
+ , DESCRIPTORS = __webpack_require__(4)
+ , LIBRARY = __webpack_require__(26)
+ , $typed = __webpack_require__(232)
+ , hide = __webpack_require__(8)
+ , redefineAll = __webpack_require__(202)
+ , fails = __webpack_require__(5)
+ , anInstance = __webpack_require__(197)
+ , toInteger = __webpack_require__(36)
+ , toLength = __webpack_require__(35)
+ , gOPN = __webpack_require__(48).f
+ , dP = __webpack_require__(9).f
+ , arrayFill = __webpack_require__(180)
+ , setToStringTag = __webpack_require__(22)
+ , ARRAY_BUFFER = 'ArrayBuffer'
+ , DATA_VIEW = 'DataView'
+ , PROTOTYPE = 'prototype'
+ , WRONG_LENGTH = 'Wrong length!'
+ , WRONG_INDEX = 'Wrong index!'
+ , $ArrayBuffer = global[ARRAY_BUFFER]
+ , $DataView = global[DATA_VIEW]
+ , Math = global.Math
+ , RangeError = global.RangeError
+ , Infinity = global.Infinity
+ , BaseBuffer = $ArrayBuffer
+ , abs = Math.abs
+ , pow = Math.pow
+ , floor = Math.floor
+ , log = Math.log
+ , LN2 = Math.LN2
+ , BUFFER = 'buffer'
+ , BYTE_LENGTH = 'byteLength'
+ , BYTE_OFFSET = 'byteOffset'
+ , $BUFFER = DESCRIPTORS ? '_b' : BUFFER
+ , $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH
+ , $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;
+
+ // IEEE754 conversions based on https://github.com/feross/ieee754
+ var packIEEE754 = function(value, mLen, nBytes){
+ var buffer = Array(nBytes)
+ , eLen = nBytes * 8 - mLen - 1
+ , eMax = (1 << eLen) - 1
+ , eBias = eMax >> 1
+ , rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0
+ , i = 0
+ , s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0
+ , e, m, c;
+ value = abs(value)
+ if(value != value || value === Infinity){
+ m = value != value ? 1 : 0;
+ e = eMax;
+ } else {
+ e = floor(log(value) / LN2);
+ if(value * (c = pow(2, -e)) < 1){
+ e--;
+ c *= 2;
+ }
+ if(e + eBias >= 1){
+ value += rt / c;
+ } else {
+ value += rt * pow(2, 1 - eBias);
+ }
+ if(value * c >= 2){
+ e++;
+ c /= 2;
+ }
+ if(e + eBias >= eMax){
+ m = 0;
+ e = eMax;
+ } else if(e + eBias >= 1){
+ m = (value * c - 1) * pow(2, mLen);
+ e = e + eBias;
+ } else {
+ m = value * pow(2, eBias - 1) * pow(2, mLen);
+ e = 0;
+ }
+ }
+ for(; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);
+ e = e << mLen | m;
+ eLen += mLen;
+ for(; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);
+ buffer[--i] |= s * 128;
+ return buffer;
+ };
+ var unpackIEEE754 = function(buffer, mLen, nBytes){
+ var eLen = nBytes * 8 - mLen - 1
+ , eMax = (1 << eLen) - 1
+ , eBias = eMax >> 1
+ , nBits = eLen - 7
+ , i = nBytes - 1
+ , s = buffer[i--]
+ , e = s & 127
+ , m;
+ s >>= 7;
+ for(; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);
+ m = e & (1 << -nBits) - 1;
+ e >>= -nBits;
+ nBits += mLen;
+ for(; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);
+ if(e === 0){
+ e = 1 - eBias;
+ } else if(e === eMax){
+ return m ? NaN : s ? -Infinity : Infinity;
+ } else {
+ m = m + pow(2, mLen);
+ e = e - eBias;
+ } return (s ? -1 : 1) * m * pow(2, e - mLen);
+ };
+
+ var unpackI32 = function(bytes){
+ return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];
+ };
+ var packI8 = function(it){
+ return [it & 0xff];
+ };
+ var packI16 = function(it){
+ return [it & 0xff, it >> 8 & 0xff];
+ };
+ var packI32 = function(it){
+ return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];
+ };
+ var packF64 = function(it){
+ return packIEEE754(it, 52, 8);
+ };
+ var packF32 = function(it){
+ return packIEEE754(it, 23, 4);
+ };
+
+ var addGetter = function(C, key, internal){
+ dP(C[PROTOTYPE], key, {get: function(){ return this[internal]; }});
+ };
+
+ var get = function(view, bytes, index, isLittleEndian){
+ var numIndex = +index
+ , intIndex = toInteger(numIndex);
+ if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);
+ var store = view[$BUFFER]._b
+ , start = intIndex + view[$OFFSET]
+ , pack = store.slice(start, start + bytes);
+ return isLittleEndian ? pack : pack.reverse();
+ };
+ var set = function(view, bytes, index, conversion, value, isLittleEndian){
+ var numIndex = +index
+ , intIndex = toInteger(numIndex);
+ if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view[$LENGTH])throw RangeError(WRONG_INDEX);
+ var store = view[$BUFFER]._b
+ , start = intIndex + view[$OFFSET]
+ , pack = conversion(+value);
+ for(var i = 0; i < bytes; i++)store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];
+ };
+
+ var validateArrayBufferArguments = function(that, length){
+ anInstance(that, $ArrayBuffer, ARRAY_BUFFER);
+ var numberLength = +length
+ , byteLength = toLength(numberLength);
+ if(numberLength != byteLength)throw RangeError(WRONG_LENGTH);
+ return byteLength;
+ };
+
+ if(!$typed.ABV){
+ $ArrayBuffer = function ArrayBuffer(length){
+ var byteLength = validateArrayBufferArguments(this, length);
+ this._b = arrayFill.call(Array(byteLength), 0);
+ this[$LENGTH] = byteLength;
+ };
+
+ $DataView = function DataView(buffer, byteOffset, byteLength){
+ anInstance(this, $DataView, DATA_VIEW);
+ anInstance(buffer, $ArrayBuffer, DATA_VIEW);
+ var bufferLength = buffer[$LENGTH]
+ , offset = toInteger(byteOffset);
+ if(offset < 0 || offset > bufferLength)throw RangeError('Wrong offset!');
+ byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
+ if(offset + byteLength > bufferLength)throw RangeError(WRONG_LENGTH);
+ this[$BUFFER] = buffer;
+ this[$OFFSET] = offset;
+ this[$LENGTH] = byteLength;
+ };
+
+ if(DESCRIPTORS){
+ addGetter($ArrayBuffer, BYTE_LENGTH, '_l');
+ addGetter($DataView, BUFFER, '_b');
+ addGetter($DataView, BYTE_LENGTH, '_l');
+ addGetter($DataView, BYTE_OFFSET, '_o');
+ }
+
+ redefineAll($DataView[PROTOTYPE], {
+ getInt8: function getInt8(byteOffset){
+ return get(this, 1, byteOffset)[0] << 24 >> 24;
+ },
+ getUint8: function getUint8(byteOffset){
+ return get(this, 1, byteOffset)[0];
+ },
+ getInt16: function getInt16(byteOffset /*, littleEndian */){
+ var bytes = get(this, 2, byteOffset, arguments[1]);
+ return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
+ },
+ getUint16: function getUint16(byteOffset /*, littleEndian */){
+ var bytes = get(this, 2, byteOffset, arguments[1]);
+ return bytes[1] << 8 | bytes[0];
+ },
+ getInt32: function getInt32(byteOffset /*, littleEndian */){
+ return unpackI32(get(this, 4, byteOffset, arguments[1]));
+ },
+ getUint32: function getUint32(byteOffset /*, littleEndian */){
+ return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;
+ },
+ getFloat32: function getFloat32(byteOffset /*, littleEndian */){
+ return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);
+ },
+ getFloat64: function getFloat64(byteOffset /*, littleEndian */){
+ return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);
+ },
+ setInt8: function setInt8(byteOffset, value){
+ set(this, 1, byteOffset, packI8, value);
+ },
+ setUint8: function setUint8(byteOffset, value){
+ set(this, 1, byteOffset, packI8, value);
+ },
+ setInt16: function setInt16(byteOffset, value /*, littleEndian */){
+ set(this, 2, byteOffset, packI16, value, arguments[2]);
+ },
+ setUint16: function setUint16(byteOffset, value /*, littleEndian */){
+ set(this, 2, byteOffset, packI16, value, arguments[2]);
+ },
+ setInt32: function setInt32(byteOffset, value /*, littleEndian */){
+ set(this, 4, byteOffset, packI32, value, arguments[2]);
+ },
+ setUint32: function setUint32(byteOffset, value /*, littleEndian */){
+ set(this, 4, byteOffset, packI32, value, arguments[2]);
+ },
+ setFloat32: function setFloat32(byteOffset, value /*, littleEndian */){
+ set(this, 4, byteOffset, packF32, value, arguments[2]);
+ },
+ setFloat64: function setFloat64(byteOffset, value /*, littleEndian */){
+ set(this, 8, byteOffset, packF64, value, arguments[2]);
+ }
+ });
+ } else {
+ if(!fails(function(){
+ new $ArrayBuffer; // eslint-disable-line no-new
+ }) || !fails(function(){
+ new $ArrayBuffer(.5); // eslint-disable-line no-new
+ })){
+ $ArrayBuffer = function ArrayBuffer(length){
+ return new BaseBuffer(validateArrayBufferArguments(this, length));
+ };
+ var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];
+ for(var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j; ){
+ if(!((key = keys[j++]) in $ArrayBuffer))hide($ArrayBuffer, key, BaseBuffer[key]);
+ };
+ if(!LIBRARY)ArrayBufferProto.constructor = $ArrayBuffer;
+ }
+ // iOS Safari 7.x bug
+ var view = new $DataView(new $ArrayBuffer(2))
+ , $setInt8 = $DataView[PROTOTYPE].setInt8;
+ view.setInt8(0, 2147483648);
+ view.setInt8(1, 2147483649);
+ if(view.getInt8(0) || !view.getInt8(1))redefineAll($DataView[PROTOTYPE], {
+ setInt8: function setInt8(byteOffset, value){
+ $setInt8.call(this, byteOffset, value << 24 >> 24);
+ },
+ setUint8: function setUint8(byteOffset, value){
+ $setInt8.call(this, byteOffset, value << 24 >> 24);
+ }
+ }, true);
+ }
+ setToStringTag($ArrayBuffer, ARRAY_BUFFER);
+ setToStringTag($DataView, DATA_VIEW);
+ hide($DataView[PROTOTYPE], $typed.VIEW, true);
+ exports[ARRAY_BUFFER] = $ArrayBuffer;
+ exports[DATA_VIEW] = $DataView;
+
+/***/ },
+/* 234 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6);
+ $export($export.G + $export.W + $export.F * !__webpack_require__(232).ABV, {
+ DataView: __webpack_require__(233).DataView
+ });
+
+/***/ },
+/* 235 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(236)('Int8', 1, function(init){
+ return function Int8Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 236 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ if(__webpack_require__(4)){
+ var LIBRARY = __webpack_require__(26)
+ , global = __webpack_require__(2)
+ , fails = __webpack_require__(5)
+ , $export = __webpack_require__(6)
+ , $typed = __webpack_require__(232)
+ , $buffer = __webpack_require__(233)
+ , ctx = __webpack_require__(18)
+ , anInstance = __webpack_require__(197)
+ , propertyDesc = __webpack_require__(15)
+ , hide = __webpack_require__(8)
+ , redefineAll = __webpack_require__(202)
+ , toInteger = __webpack_require__(36)
+ , toLength = __webpack_require__(35)
+ , toIndex = __webpack_require__(37)
+ , toPrimitive = __webpack_require__(14)
+ , has = __webpack_require__(3)
+ , same = __webpack_require__(69)
+ , classof = __webpack_require__(73)
+ , isObject = __webpack_require__(11)
+ , toObject = __webpack_require__(56)
+ , isArrayIter = __webpack_require__(154)
+ , create = __webpack_require__(44)
+ , getPrototypeOf = __webpack_require__(57)
+ , gOPN = __webpack_require__(48).f
+ , getIterFn = __webpack_require__(156)
+ , uid = __webpack_require__(17)
+ , wks = __webpack_require__(23)
+ , createArrayMethod = __webpack_require__(164)
+ , createArrayIncludes = __webpack_require__(34)
+ , speciesConstructor = __webpack_require__(199)
+ , ArrayIterators = __webpack_require__(183)
+ , Iterators = __webpack_require__(135)
+ , $iterDetect = __webpack_require__(157)
+ , setSpecies = __webpack_require__(186)
+ , arrayFill = __webpack_require__(180)
+ , arrayCopyWithin = __webpack_require__(177)
+ , $DP = __webpack_require__(9)
+ , $GOPD = __webpack_require__(49)
+ , dP = $DP.f
+ , gOPD = $GOPD.f
+ , RangeError = global.RangeError
+ , TypeError = global.TypeError
+ , Uint8Array = global.Uint8Array
+ , ARRAY_BUFFER = 'ArrayBuffer'
+ , SHARED_BUFFER = 'Shared' + ARRAY_BUFFER
+ , BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'
+ , PROTOTYPE = 'prototype'
+ , ArrayProto = Array[PROTOTYPE]
+ , $ArrayBuffer = $buffer.ArrayBuffer
+ , $DataView = $buffer.DataView
+ , arrayForEach = createArrayMethod(0)
+ , arrayFilter = createArrayMethod(2)
+ , arraySome = createArrayMethod(3)
+ , arrayEvery = createArrayMethod(4)
+ , arrayFind = createArrayMethod(5)
+ , arrayFindIndex = createArrayMethod(6)
+ , arrayIncludes = createArrayIncludes(true)
+ , arrayIndexOf = createArrayIncludes(false)
+ , arrayValues = ArrayIterators.values
+ , arrayKeys = ArrayIterators.keys
+ , arrayEntries = ArrayIterators.entries
+ , arrayLastIndexOf = ArrayProto.lastIndexOf
+ , arrayReduce = ArrayProto.reduce
+ , arrayReduceRight = ArrayProto.reduceRight
+ , arrayJoin = ArrayProto.join
+ , arraySort = ArrayProto.sort
+ , arraySlice = ArrayProto.slice
+ , arrayToString = ArrayProto.toString
+ , arrayToLocaleString = ArrayProto.toLocaleString
+ , ITERATOR = wks('iterator')
+ , TAG = wks('toStringTag')
+ , TYPED_CONSTRUCTOR = uid('typed_constructor')
+ , DEF_CONSTRUCTOR = uid('def_constructor')
+ , ALL_CONSTRUCTORS = $typed.CONSTR
+ , TYPED_ARRAY = $typed.TYPED
+ , VIEW = $typed.VIEW
+ , WRONG_LENGTH = 'Wrong length!';
+
+ var $map = createArrayMethod(1, function(O, length){
+ return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);
+ });
+
+ var LITTLE_ENDIAN = fails(function(){
+ return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;
+ });
+
+ var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function(){
+ new Uint8Array(1).set({});
+ });
+
+ var strictToLength = function(it, SAME){
+ if(it === undefined)throw TypeError(WRONG_LENGTH);
+ var number = +it
+ , length = toLength(it);
+ if(SAME && !same(number, length))throw RangeError(WRONG_LENGTH);
+ return length;
+ };
+
+ var toOffset = function(it, BYTES){
+ var offset = toInteger(it);
+ if(offset < 0 || offset % BYTES)throw RangeError('Wrong offset!');
+ return offset;
+ };
+
+ var validate = function(it){
+ if(isObject(it) && TYPED_ARRAY in it)return it;
+ throw TypeError(it + ' is not a typed array!');
+ };
+
+ var allocate = function(C, length){
+ if(!(isObject(C) && TYPED_CONSTRUCTOR in C)){
+ throw TypeError('It is not a typed array constructor!');
+ } return new C(length);
+ };
+
+ var speciesFromList = function(O, list){
+ return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);
+ };
+
+ var fromList = function(C, list){
+ var index = 0
+ , length = list.length
+ , result = allocate(C, length);
+ while(length > index)result[index] = list[index++];
+ return result;
+ };
+
+ var addGetter = function(it, key, internal){
+ dP(it, key, {get: function(){ return this._d[internal]; }});
+ };
+
+ var $from = function from(source /*, mapfn, thisArg */){
+ var O = toObject(source)
+ , aLen = arguments.length
+ , mapfn = aLen > 1 ? arguments[1] : undefined
+ , mapping = mapfn !== undefined
+ , iterFn = getIterFn(O)
+ , i, length, values, result, step, iterator;
+ if(iterFn != undefined && !isArrayIter(iterFn)){
+ for(iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++){
+ values.push(step.value);
+ } O = values;
+ }
+ if(mapping && aLen > 2)mapfn = ctx(mapfn, arguments[2], 2);
+ for(i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++){
+ result[i] = mapping ? mapfn(O[i], i) : O[i];
+ }
+ return result;
+ };
+
+ var $of = function of(/*...items*/){
+ var index = 0
+ , length = arguments.length
+ , result = allocate(this, length);
+ while(length > index)result[index] = arguments[index++];
+ return result;
+ };
+
+ // iOS Safari 6.x fails here
+ var TO_LOCALE_BUG = !!Uint8Array && fails(function(){ arrayToLocaleString.call(new Uint8Array(1)); });
+
+ var $toLocaleString = function toLocaleString(){
+ return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);
+ };
+
+ var proto = {
+ copyWithin: function copyWithin(target, start /*, end */){
+ return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
+ },
+ every: function every(callbackfn /*, thisArg */){
+ return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ fill: function fill(value /*, start, end */){ // eslint-disable-line no-unused-vars
+ return arrayFill.apply(validate(this), arguments);
+ },
+ filter: function filter(callbackfn /*, thisArg */){
+ return speciesFromList(this, arrayFilter(validate(this), callbackfn,
+ arguments.length > 1 ? arguments[1] : undefined));
+ },
+ find: function find(predicate /*, thisArg */){
+ return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ findIndex: function findIndex(predicate /*, thisArg */){
+ return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ forEach: function forEach(callbackfn /*, thisArg */){
+ arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ indexOf: function indexOf(searchElement /*, fromIndex */){
+ return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ includes: function includes(searchElement /*, fromIndex */){
+ return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ join: function join(separator){ // eslint-disable-line no-unused-vars
+ return arrayJoin.apply(validate(this), arguments);
+ },
+ lastIndexOf: function lastIndexOf(searchElement /*, fromIndex */){ // eslint-disable-line no-unused-vars
+ return arrayLastIndexOf.apply(validate(this), arguments);
+ },
+ map: function map(mapfn /*, thisArg */){
+ return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ reduce: function reduce(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
+ return arrayReduce.apply(validate(this), arguments);
+ },
+ reduceRight: function reduceRight(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
+ return arrayReduceRight.apply(validate(this), arguments);
+ },
+ reverse: function reverse(){
+ var that = this
+ , length = validate(that).length
+ , middle = Math.floor(length / 2)
+ , index = 0
+ , value;
+ while(index < middle){
+ value = that[index];
+ that[index++] = that[--length];
+ that[length] = value;
+ } return that;
+ },
+ some: function some(callbackfn /*, thisArg */){
+ return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ },
+ sort: function sort(comparefn){
+ return arraySort.call(validate(this), comparefn);
+ },
+ subarray: function subarray(begin, end){
+ var O = validate(this)
+ , length = O.length
+ , $begin = toIndex(begin, length);
+ return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(
+ O.buffer,
+ O.byteOffset + $begin * O.BYTES_PER_ELEMENT,
+ toLength((end === undefined ? length : toIndex(end, length)) - $begin)
+ );
+ }
+ };
+
+ var $slice = function slice(start, end){
+ return speciesFromList(this, arraySlice.call(validate(this), start, end));
+ };
+
+ var $set = function set(arrayLike /*, offset */){
+ validate(this);
+ var offset = toOffset(arguments[1], 1)
+ , length = this.length
+ , src = toObject(arrayLike)
+ , len = toLength(src.length)
+ , index = 0;
+ if(len + offset > length)throw RangeError(WRONG_LENGTH);
+ while(index < len)this[offset + index] = src[index++];
+ };
+
+ var $iterators = {
+ entries: function entries(){
+ return arrayEntries.call(validate(this));
+ },
+ keys: function keys(){
+ return arrayKeys.call(validate(this));
+ },
+ values: function values(){
+ return arrayValues.call(validate(this));
+ }
+ };
+
+ var isTAIndex = function(target, key){
+ return isObject(target)
+ && target[TYPED_ARRAY]
+ && typeof key != 'symbol'
+ && key in target
+ && String(+key) == String(key);
+ };
+ var $getDesc = function getOwnPropertyDescriptor(target, key){
+ return isTAIndex(target, key = toPrimitive(key, true))
+ ? propertyDesc(2, target[key])
+ : gOPD(target, key);
+ };
+ var $setDesc = function defineProperty(target, key, desc){
+ if(isTAIndex(target, key = toPrimitive(key, true))
+ && isObject(desc)
+ && has(desc, 'value')
+ && !has(desc, 'get')
+ && !has(desc, 'set')
+ // TODO: add validation descriptor w/o calling accessors
+ && !desc.configurable
+ && (!has(desc, 'writable') || desc.writable)
+ && (!has(desc, 'enumerable') || desc.enumerable)
+ ){
+ target[key] = desc.value;
+ return target;
+ } else return dP(target, key, desc);
+ };
+
+ if(!ALL_CONSTRUCTORS){
+ $GOPD.f = $getDesc;
+ $DP.f = $setDesc;
+ }
+
+ $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {
+ getOwnPropertyDescriptor: $getDesc,
+ defineProperty: $setDesc
+ });
+
+ if(fails(function(){ arrayToString.call({}); })){
+ arrayToString = arrayToLocaleString = function toString(){
+ return arrayJoin.call(this);
+ }
+ }
+
+ var $TypedArrayPrototype$ = redefineAll({}, proto);
+ redefineAll($TypedArrayPrototype$, $iterators);
+ hide($TypedArrayPrototype$, ITERATOR, $iterators.values);
+ redefineAll($TypedArrayPrototype$, {
+ slice: $slice,
+ set: $set,
+ constructor: function(){ /* noop */ },
+ toString: arrayToString,
+ toLocaleString: $toLocaleString
+ });
+ addGetter($TypedArrayPrototype$, 'buffer', 'b');
+ addGetter($TypedArrayPrototype$, 'byteOffset', 'o');
+ addGetter($TypedArrayPrototype$, 'byteLength', 'l');
+ addGetter($TypedArrayPrototype$, 'length', 'e');
+ dP($TypedArrayPrototype$, TAG, {
+ get: function(){ return this[TYPED_ARRAY]; }
+ });
+
+ module.exports = function(KEY, BYTES, wrapper, CLAMPED){
+ CLAMPED = !!CLAMPED;
+ var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'
+ , ISNT_UINT8 = NAME != 'Uint8Array'
+ , GETTER = 'get' + KEY
+ , SETTER = 'set' + KEY
+ , TypedArray = global[NAME]
+ , Base = TypedArray || {}
+ , TAC = TypedArray && getPrototypeOf(TypedArray)
+ , FORCED = !TypedArray || !$typed.ABV
+ , O = {}
+ , TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];
+ var getter = function(that, index){
+ var data = that._d;
+ return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);
+ };
+ var setter = function(that, index, value){
+ var data = that._d;
+ if(CLAMPED)value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;
+ data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);
+ };
+ var addElement = function(that, index){
+ dP(that, index, {
+ get: function(){
+ return getter(this, index);
+ },
+ set: function(value){
+ return setter(this, index, value);
+ },
+ enumerable: true
+ });
+ };
+ if(FORCED){
+ TypedArray = wrapper(function(that, data, $offset, $length){
+ anInstance(that, TypedArray, NAME, '_d');
+ var index = 0
+ , offset = 0
+ , buffer, byteLength, length, klass;
+ if(!isObject(data)){
+ length = strictToLength(data, true)
+ byteLength = length * BYTES;
+ buffer = new $ArrayBuffer(byteLength);
+ } else if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){
+ buffer = data;
+ offset = toOffset($offset, BYTES);
+ var $len = data.byteLength;
+ if($length === undefined){
+ if($len % BYTES)throw RangeError(WRONG_LENGTH);
+ byteLength = $len - offset;
+ if(byteLength < 0)throw RangeError(WRONG_LENGTH);
+ } else {
+ byteLength = toLength($length) * BYTES;
+ if(byteLength + offset > $len)throw RangeError(WRONG_LENGTH);
+ }
+ length = byteLength / BYTES;
+ } else if(TYPED_ARRAY in data){
+ return fromList(TypedArray, data);
+ } else {
+ return $from.call(TypedArray, data);
+ }
+ hide(that, '_d', {
+ b: buffer,
+ o: offset,
+ l: byteLength,
+ e: length,
+ v: new $DataView(buffer)
+ });
+ while(index < length)addElement(that, index++);
+ });
+ TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);
+ hide(TypedArrayPrototype, 'constructor', TypedArray);
+ } else if(!$iterDetect(function(iter){
+ // V8 works with iterators, but fails in many other cases
+ // https://code.google.com/p/v8/issues/detail?id=4552
+ new TypedArray(null); // eslint-disable-line no-new
+ new TypedArray(iter); // eslint-disable-line no-new
+ }, true)){
+ TypedArray = wrapper(function(that, data, $offset, $length){
+ anInstance(that, TypedArray, NAME);
+ var klass;
+ // `ws` module bug, temporarily remove validation length for Uint8Array
+ // https://github.com/websockets/ws/pull/645
+ if(!isObject(data))return new Base(strictToLength(data, ISNT_UINT8));
+ if(data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER){
+ return $length !== undefined
+ ? new Base(data, toOffset($offset, BYTES), $length)
+ : $offset !== undefined
+ ? new Base(data, toOffset($offset, BYTES))
+ : new Base(data);
+ }
+ if(TYPED_ARRAY in data)return fromList(TypedArray, data);
+ return $from.call(TypedArray, data);
+ });
+ arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function(key){
+ if(!(key in TypedArray))hide(TypedArray, key, Base[key]);
+ });
+ TypedArray[PROTOTYPE] = TypedArrayPrototype;
+ if(!LIBRARY)TypedArrayPrototype.constructor = TypedArray;
+ }
+ var $nativeIterator = TypedArrayPrototype[ITERATOR]
+ , CORRECT_ITER_NAME = !!$nativeIterator && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined)
+ , $iterator = $iterators.values;
+ hide(TypedArray, TYPED_CONSTRUCTOR, true);
+ hide(TypedArrayPrototype, TYPED_ARRAY, NAME);
+ hide(TypedArrayPrototype, VIEW, true);
+ hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);
+
+ if(CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)){
+ dP(TypedArrayPrototype, TAG, {
+ get: function(){ return NAME; }
+ });
+ }
+
+ O[NAME] = TypedArray;
+
+ $export($export.G + $export.W + $export.F * (TypedArray != Base), O);
+
+ $export($export.S, NAME, {
+ BYTES_PER_ELEMENT: BYTES,
+ from: $from,
+ of: $of
+ });
+
+ if(!(BYTES_PER_ELEMENT in TypedArrayPrototype))hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);
+
+ $export($export.P, NAME, proto);
+
+ setSpecies(NAME);
+
+ $export($export.P + $export.F * FORCED_SET, NAME, {set: $set});
+
+ $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);
+
+ $export($export.P + $export.F * (TypedArrayPrototype.toString != arrayToString), NAME, {toString: arrayToString});
+
+ $export($export.P + $export.F * fails(function(){
+ new TypedArray(1).slice();
+ }), NAME, {slice: $slice});
+
+ $export($export.P + $export.F * (fails(function(){
+ return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString()
+ }) || !fails(function(){
+ TypedArrayPrototype.toLocaleString.call([1, 2]);
+ })), NAME, {toLocaleString: $toLocaleString});
+
+ Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;
+ if(!LIBRARY && !CORRECT_ITER_NAME)hide(TypedArrayPrototype, ITERATOR, $iterator);
+ };
+ } else module.exports = function(){ /* empty */ };
+
+/***/ },
+/* 237 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(236)('Uint8', 1, function(init){
+ return function Uint8Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 238 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(236)('Uint8', 1, function(init){
+ return function Uint8ClampedArray(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ }, true);
+
+/***/ },
+/* 239 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(236)('Int16', 2, function(init){
+ return function Int16Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 240 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(236)('Uint16', 2, function(init){
+ return function Uint16Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 241 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(236)('Int32', 4, function(init){
+ return function Int32Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 242 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(236)('Uint32', 4, function(init){
+ return function Uint32Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 243 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(236)('Float32', 4, function(init){
+ return function Float32Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 244 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(236)('Float64', 8, function(init){
+ return function Float64Array(data, byteOffset, length){
+ return init(this, data, byteOffset, length);
+ };
+ });
+
+/***/ },
+/* 245 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // https://github.com/tc39/Array.prototype.includes
+ var $export = __webpack_require__(6)
+ , $includes = __webpack_require__(34)(true);
$export($export.P, 'Array', {
- // https://github.com/domenic/Array.prototype.includes
includes: function includes(el /*, fromIndex = 0 */){
return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
}
});
- __webpack_require__(118)('includes');
+ __webpack_require__(178)('includes');
/***/ },
-/* 166 */
+/* 246 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// https://github.com/mathiasbynens/String.prototype.at
- var $export = __webpack_require__(3)
- , $at = __webpack_require__(98)(true);
+ var $export = __webpack_require__(6)
+ , $at = __webpack_require__(125)(true);
$export($export.P, 'String', {
at: function at(pos){
@@ -4222,138 +6283,159 @@
});
/***/ },
-/* 167 */
+/* 247 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3)
- , $pad = __webpack_require__(168);
+ // https://github.com/tc39/proposal-string-pad-start-end
+ var $export = __webpack_require__(6)
+ , $pad = __webpack_require__(248);
$export($export.P, 'String', {
- padLeft: function padLeft(maxLength /*, fillString = ' ' */){
+ padStart: function padStart(maxLength /*, fillString = ' ' */){
return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
}
});
/***/ },
-/* 168 */
+/* 248 */
/***/ function(module, exports, __webpack_require__) {
- // https://github.com/ljharb/proposal-string-pad-left-right
- var toLength = __webpack_require__(27)
- , repeat = __webpack_require__(105)
- , defined = __webpack_require__(22);
+ // https://github.com/tc39/proposal-string-pad-start-end
+ var toLength = __webpack_require__(35)
+ , repeat = __webpack_require__(85)
+ , defined = __webpack_require__(33);
module.exports = function(that, maxLength, fillString, left){
var S = String(defined(that))
, stringLength = S.length
, fillStr = fillString === undefined ? ' ' : String(fillString)
, intMaxLength = toLength(maxLength);
- if(intMaxLength <= stringLength)return S;
- if(fillStr == '')fillStr = ' ';
+ if(intMaxLength <= stringLength || fillStr == '')return S;
var fillLen = intMaxLength - stringLength
, stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);
return left ? stringFiller + S : S + stringFiller;
};
+
/***/ },
-/* 169 */
+/* 249 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var $export = __webpack_require__(3)
- , $pad = __webpack_require__(168);
+ // https://github.com/tc39/proposal-string-pad-start-end
+ var $export = __webpack_require__(6)
+ , $pad = __webpack_require__(248);
$export($export.P, 'String', {
- padRight: function padRight(maxLength /*, fillString = ' ' */){
+ padEnd: function padEnd(maxLength /*, fillString = ' ' */){
return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
}
});
/***/ },
-/* 170 */
+/* 250 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
- __webpack_require__(63)('trimLeft', function($trim){
+ __webpack_require__(81)('trimLeft', function($trim){
return function trimLeft(){
return $trim(this, 1);
};
- });
+ }, 'trimStart');
/***/ },
-/* 171 */
+/* 251 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
- __webpack_require__(63)('trimRight', function($trim){
+ __webpack_require__(81)('trimRight', function($trim){
return function trimRight(){
return $trim(this, 2);
};
- });
+ }, 'trimEnd');
/***/ },
-/* 172 */
+/* 252 */
/***/ function(module, exports, __webpack_require__) {
- // https://github.com/benjamingr/RexExp.escape
- var $export = __webpack_require__(3)
- , $re = __webpack_require__(173)(/[\\^$*+?.()|[\]{}]/g, '\\$&');
+ 'use strict';
+ // https://tc39.github.io/String.prototype.matchAll/
+ var $export = __webpack_require__(6)
+ , defined = __webpack_require__(33)
+ , toLength = __webpack_require__(35)
+ , isRegExp = __webpack_require__(128)
+ , getFlags = __webpack_require__(188)
+ , RegExpProto = RegExp.prototype;
+
+ var $RegExpStringIterator = function(regexp, string){
+ this._r = regexp;
+ this._s = string;
+ };
- $export($export.S, 'RegExp', {escape: function escape(it){ return $re(it); }});
+ __webpack_require__(136)($RegExpStringIterator, 'RegExp String', function next(){
+ var match = this._r.exec(this._s);
+ return {value: match, done: match === null};
+ });
+ $export($export.P, 'String', {
+ matchAll: function matchAll(regexp){
+ defined(this);
+ if(!isRegExp(regexp))throw TypeError(regexp + ' is not a regexp!');
+ var S = String(this)
+ , flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp)
+ , rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);
+ rx.lastIndex = toLength(regexp.lastIndex);
+ return new $RegExpStringIterator(rx, S);
+ }
+ });
/***/ },
-/* 173 */
-/***/ function(module, exports) {
+/* 253 */
+/***/ function(module, exports, __webpack_require__) {
- module.exports = function(regExp, replace){
- var replacer = replace === Object(replace) ? function(part){
- return replace[part];
- } : replace;
- return function(it){
- return String(it).replace(regExp, replacer);
- };
- };
+ __webpack_require__(25)('asyncIterator');
/***/ },
-/* 174 */
+/* 254 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(25)('observable');
+
+/***/ },
+/* 255 */
/***/ function(module, exports, __webpack_require__) {
- // https://gist.github.com/WebReflection/9353781
- var $ = __webpack_require__(2)
- , $export = __webpack_require__(3)
- , ownKeys = __webpack_require__(161)
- , toIObject = __webpack_require__(23)
- , createDesc = __webpack_require__(7);
+ // https://github.com/tc39/proposal-object-getownpropertydescriptors
+ var $export = __webpack_require__(6)
+ , ownKeys = __webpack_require__(221)
+ , toIObject = __webpack_require__(30)
+ , gOPD = __webpack_require__(49)
+ , createProperty = __webpack_require__(155);
$export($export.S, 'Object', {
getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){
var O = toIObject(object)
- , setDesc = $.setDesc
- , getDesc = $.getDesc
+ , getDesc = gOPD.f
, keys = ownKeys(O)
, result = {}
, i = 0
- , key, D;
- while(keys.length > i){
- D = getDesc(O, key = keys[i++]);
- if(key in result)setDesc(result, key, createDesc(0, D));
- else result[key] = D;
- } return result;
+ , key;
+ while(keys.length > i)createProperty(result, key = keys[i++], getDesc(O, key));
+ return result;
}
});
/***/ },
-/* 175 */
+/* 256 */
/***/ function(module, exports, __webpack_require__) {
- // http://goo.gl/XkBrjD
- var $export = __webpack_require__(3)
- , $values = __webpack_require__(176)(false);
+ // https://github.com/tc39/proposal-object-values-entries
+ var $export = __webpack_require__(6)
+ , $values = __webpack_require__(257)(false);
$export($export.S, 'Object', {
values: function values(it){
@@ -4362,16 +6444,16 @@
});
/***/ },
-/* 176 */
+/* 257 */
/***/ function(module, exports, __webpack_require__) {
- var $ = __webpack_require__(2)
- , toIObject = __webpack_require__(23)
- , isEnum = $.isEnum;
+ var getKeys = __webpack_require__(28)
+ , toIObject = __webpack_require__(30)
+ , isEnum = __webpack_require__(42).f;
module.exports = function(isEntries){
return function(it){
var O = toIObject(it)
- , keys = $.getKeys(O)
+ , keys = getKeys(O)
, length = keys.length
, i = 0
, result = []
@@ -4383,12 +6465,12 @@
};
/***/ },
-/* 177 */
+/* 258 */
/***/ function(module, exports, __webpack_require__) {
- // http://goo.gl/XkBrjD
- var $export = __webpack_require__(3)
- , $entries = __webpack_require__(176)(true);
+ // https://github.com/tc39/proposal-object-values-entries
+ var $export = __webpack_require__(6)
+ , $entries = __webpack_require__(257)(true);
$export($export.S, 'Object', {
entries: function entries(it){
@@ -4397,76 +6479,724 @@
});
/***/ },
-/* 178 */
+/* 259 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toObject = __webpack_require__(56)
+ , aFunction = __webpack_require__(19)
+ , $defineProperty = __webpack_require__(9);
+
+ // B.2.2.2 Object.prototype.__defineGetter__(P, getter)
+ __webpack_require__(4) && $export($export.P + __webpack_require__(260), 'Object', {
+ __defineGetter__: function __defineGetter__(P, getter){
+ $defineProperty.f(toObject(this), P, {get: aFunction(getter), enumerable: true, configurable: true});
+ }
+ });
+
+/***/ },
+/* 260 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // Forced replacement prototype accessors methods
+ module.exports = __webpack_require__(26)|| !__webpack_require__(5)(function(){
+ var K = Math.random();
+ // In FF throws only define methods
+ __defineSetter__.call(null, K, function(){ /* empty */});
+ delete __webpack_require__(2)[K];
+ });
+
+/***/ },
+/* 261 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toObject = __webpack_require__(56)
+ , aFunction = __webpack_require__(19)
+ , $defineProperty = __webpack_require__(9);
+
+ // B.2.2.3 Object.prototype.__defineSetter__(P, setter)
+ __webpack_require__(4) && $export($export.P + __webpack_require__(260), 'Object', {
+ __defineSetter__: function __defineSetter__(P, setter){
+ $defineProperty.f(toObject(this), P, {set: aFunction(setter), enumerable: true, configurable: true});
+ }
+ });
+
+/***/ },
+/* 262 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toObject = __webpack_require__(56)
+ , toPrimitive = __webpack_require__(14)
+ , getPrototypeOf = __webpack_require__(57)
+ , getOwnPropertyDescriptor = __webpack_require__(49).f;
+
+ // B.2.2.4 Object.prototype.__lookupGetter__(P)
+ __webpack_require__(4) && $export($export.P + __webpack_require__(260), 'Object', {
+ __lookupGetter__: function __lookupGetter__(P){
+ var O = toObject(this)
+ , K = toPrimitive(P, true)
+ , D;
+ do {
+ if(D = getOwnPropertyDescriptor(O, K))return D.get;
+ } while(O = getPrototypeOf(O));
+ }
+ });
+
+/***/ },
+/* 263 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $export = __webpack_require__(6)
+ , toObject = __webpack_require__(56)
+ , toPrimitive = __webpack_require__(14)
+ , getPrototypeOf = __webpack_require__(57)
+ , getOwnPropertyDescriptor = __webpack_require__(49).f;
+
+ // B.2.2.5 Object.prototype.__lookupSetter__(P)
+ __webpack_require__(4) && $export($export.P + __webpack_require__(260), 'Object', {
+ __lookupSetter__: function __lookupSetter__(P){
+ var O = toObject(this)
+ , K = toPrimitive(P, true)
+ , D;
+ do {
+ if(D = getOwnPropertyDescriptor(O, K))return D.set;
+ } while(O = getPrototypeOf(O));
+ }
+ });
+
+/***/ },
+/* 264 */
/***/ function(module, exports, __webpack_require__) {
// https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.P, 'Map', {toJSON: __webpack_require__(179)('Map')});
+ $export($export.P + $export.R, 'Map', {toJSON: __webpack_require__(265)('Map')});
/***/ },
-/* 179 */
+/* 265 */
/***/ function(module, exports, __webpack_require__) {
// https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var forOf = __webpack_require__(138)
- , classof = __webpack_require__(47);
+ var classof = __webpack_require__(73)
+ , from = __webpack_require__(266);
module.exports = function(NAME){
return function toJSON(){
if(classof(this) != NAME)throw TypeError(NAME + "#toJSON isn't generic");
- var arr = [];
- forOf(this, false, arr.push, arr);
- return arr;
+ return from(this);
};
};
/***/ },
-/* 180 */
+/* 266 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var forOf = __webpack_require__(198);
+
+ module.exports = function(iter, ITERATOR){
+ var result = [];
+ forOf(iter, false, result.push, result, ITERATOR);
+ return result;
+ };
+
+
+/***/ },
+/* 267 */
/***/ function(module, exports, __webpack_require__) {
// https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var $export = __webpack_require__(3);
+ var $export = __webpack_require__(6);
- $export($export.P, 'Set', {toJSON: __webpack_require__(179)('Set')});
+ $export($export.P + $export.R, 'Set', {toJSON: __webpack_require__(265)('Set')});
/***/ },
-/* 181 */
+/* 268 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://github.com/ljharb/proposal-global
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'System', {global: __webpack_require__(2)});
+
+/***/ },
+/* 269 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://github.com/ljharb/proposal-is-error
+ var $export = __webpack_require__(6)
+ , cof = __webpack_require__(32);
+
+ $export($export.S, 'Error', {
+ isError: function isError(it){
+ return cof(it) === 'Error';
+ }
+ });
+
+/***/ },
+/* 270 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'Math', {
+ iaddh: function iaddh(x0, x1, y0, y1){
+ var $x0 = x0 >>> 0
+ , $x1 = x1 >>> 0
+ , $y0 = y0 >>> 0;
+ return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;
+ }
+ });
+
+/***/ },
+/* 271 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'Math', {
+ isubh: function isubh(x0, x1, y0, y1){
+ var $x0 = x0 >>> 0
+ , $x1 = x1 >>> 0
+ , $y0 = y0 >>> 0;
+ return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;
+ }
+ });
+
+/***/ },
+/* 272 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'Math', {
+ imulh: function imulh(u, v){
+ var UINT16 = 0xffff
+ , $u = +u
+ , $v = +v
+ , u0 = $u & UINT16
+ , v0 = $v & UINT16
+ , u1 = $u >> 16
+ , v1 = $v >> 16
+ , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
+ return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);
+ }
+ });
+
+/***/ },
+/* 273 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
+ var $export = __webpack_require__(6);
+
+ $export($export.S, 'Math', {
+ umulh: function umulh(u, v){
+ var UINT16 = 0xffff
+ , $u = +u
+ , $v = +v
+ , u0 = $u & UINT16
+ , v0 = $v & UINT16
+ , u1 = $u >>> 16
+ , v1 = $v >>> 16
+ , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
+ return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);
+ }
+ });
+
+/***/ },
+/* 274 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(275)
+ , anObject = __webpack_require__(10)
+ , toMetaKey = metadata.key
+ , ordinaryDefineOwnMetadata = metadata.set;
+
+ metadata.exp({defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey){
+ ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));
+ }});
+
+/***/ },
+/* 275 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var Map = __webpack_require__(203)
+ , $export = __webpack_require__(6)
+ , shared = __webpack_require__(21)('metadata')
+ , store = shared.store || (shared.store = new (__webpack_require__(207)));
+
+ var getOrCreateMetadataMap = function(target, targetKey, create){
+ var targetMetadata = store.get(target);
+ if(!targetMetadata){
+ if(!create)return undefined;
+ store.set(target, targetMetadata = new Map);
+ }
+ var keyMetadata = targetMetadata.get(targetKey);
+ if(!keyMetadata){
+ if(!create)return undefined;
+ targetMetadata.set(targetKey, keyMetadata = new Map);
+ } return keyMetadata;
+ };
+ var ordinaryHasOwnMetadata = function(MetadataKey, O, P){
+ var metadataMap = getOrCreateMetadataMap(O, P, false);
+ return metadataMap === undefined ? false : metadataMap.has(MetadataKey);
+ };
+ var ordinaryGetOwnMetadata = function(MetadataKey, O, P){
+ var metadataMap = getOrCreateMetadataMap(O, P, false);
+ return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);
+ };
+ var ordinaryDefineOwnMetadata = function(MetadataKey, MetadataValue, O, P){
+ getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);
+ };
+ var ordinaryOwnMetadataKeys = function(target, targetKey){
+ var metadataMap = getOrCreateMetadataMap(target, targetKey, false)
+ , keys = [];
+ if(metadataMap)metadataMap.forEach(function(_, key){ keys.push(key); });
+ return keys;
+ };
+ var toMetaKey = function(it){
+ return it === undefined || typeof it == 'symbol' ? it : String(it);
+ };
+ var exp = function(O){
+ $export($export.S, 'Reflect', O);
+ };
+
+ module.exports = {
+ store: store,
+ map: getOrCreateMetadataMap,
+ has: ordinaryHasOwnMetadata,
+ get: ordinaryGetOwnMetadata,
+ set: ordinaryDefineOwnMetadata,
+ keys: ordinaryOwnMetadataKeys,
+ key: toMetaKey,
+ exp: exp
+ };
+
+/***/ },
+/* 276 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(275)
+ , anObject = __webpack_require__(10)
+ , toMetaKey = metadata.key
+ , getOrCreateMetadataMap = metadata.map
+ , store = metadata.store;
+
+ metadata.exp({deleteMetadata: function deleteMetadata(metadataKey, target /*, targetKey */){
+ var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2])
+ , metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);
+ if(metadataMap === undefined || !metadataMap['delete'](metadataKey))return false;
+ if(metadataMap.size)return true;
+ var targetMetadata = store.get(target);
+ targetMetadata['delete'](targetKey);
+ return !!targetMetadata.size || store['delete'](target);
+ }});
+
+/***/ },
+/* 277 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(275)
+ , anObject = __webpack_require__(10)
+ , getPrototypeOf = __webpack_require__(57)
+ , ordinaryHasOwnMetadata = metadata.has
+ , ordinaryGetOwnMetadata = metadata.get
+ , toMetaKey = metadata.key;
+
+ var ordinaryGetMetadata = function(MetadataKey, O, P){
+ var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
+ if(hasOwn)return ordinaryGetOwnMetadata(MetadataKey, O, P);
+ var parent = getPrototypeOf(O);
+ return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;
+ };
+
+ metadata.exp({getMetadata: function getMetadata(metadataKey, target /*, targetKey */){
+ return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
+ }});
+
+/***/ },
+/* 278 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var Set = __webpack_require__(206)
+ , from = __webpack_require__(266)
+ , metadata = __webpack_require__(275)
+ , anObject = __webpack_require__(10)
+ , getPrototypeOf = __webpack_require__(57)
+ , ordinaryOwnMetadataKeys = metadata.keys
+ , toMetaKey = metadata.key;
+
+ var ordinaryMetadataKeys = function(O, P){
+ var oKeys = ordinaryOwnMetadataKeys(O, P)
+ , parent = getPrototypeOf(O);
+ if(parent === null)return oKeys;
+ var pKeys = ordinaryMetadataKeys(parent, P);
+ return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;
+ };
+
+ metadata.exp({getMetadataKeys: function getMetadataKeys(target /*, targetKey */){
+ return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
+ }});
+
+/***/ },
+/* 279 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(275)
+ , anObject = __webpack_require__(10)
+ , ordinaryGetOwnMetadata = metadata.get
+ , toMetaKey = metadata.key;
+
+ metadata.exp({getOwnMetadata: function getOwnMetadata(metadataKey, target /*, targetKey */){
+ return ordinaryGetOwnMetadata(metadataKey, anObject(target)
+ , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
+ }});
+
+/***/ },
+/* 280 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(275)
+ , anObject = __webpack_require__(10)
+ , ordinaryOwnMetadataKeys = metadata.keys
+ , toMetaKey = metadata.key;
+
+ metadata.exp({getOwnMetadataKeys: function getOwnMetadataKeys(target /*, targetKey */){
+ return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
+ }});
+
+/***/ },
+/* 281 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(275)
+ , anObject = __webpack_require__(10)
+ , getPrototypeOf = __webpack_require__(57)
+ , ordinaryHasOwnMetadata = metadata.has
+ , toMetaKey = metadata.key;
+
+ var ordinaryHasMetadata = function(MetadataKey, O, P){
+ var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
+ if(hasOwn)return true;
+ var parent = getPrototypeOf(O);
+ return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;
+ };
+
+ metadata.exp({hasMetadata: function hasMetadata(metadataKey, target /*, targetKey */){
+ return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
+ }});
+
+/***/ },
+/* 282 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var metadata = __webpack_require__(275)
+ , anObject = __webpack_require__(10)
+ , ordinaryHasOwnMetadata = metadata.has
+ , toMetaKey = metadata.key;
+
+ metadata.exp({hasOwnMetadata: function hasOwnMetadata(metadataKey, target /*, targetKey */){
+ return ordinaryHasOwnMetadata(metadataKey, anObject(target)
+ , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
+ }});
+
+/***/ },
+/* 283 */
/***/ function(module, exports, __webpack_require__) {
- var $export = __webpack_require__(3)
- , $task = __webpack_require__(141);
+ var metadata = __webpack_require__(275)
+ , anObject = __webpack_require__(10)
+ , aFunction = __webpack_require__(19)
+ , toMetaKey = metadata.key
+ , ordinaryDefineOwnMetadata = metadata.set;
+
+ metadata.exp({metadata: function metadata(metadataKey, metadataValue){
+ return function decorator(target, targetKey){
+ ordinaryDefineOwnMetadata(
+ metadataKey, metadataValue,
+ (targetKey !== undefined ? anObject : aFunction)(target),
+ toMetaKey(targetKey)
+ );
+ };
+ }});
+
+/***/ },
+/* 284 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask
+ var $export = __webpack_require__(6)
+ , microtask = __webpack_require__(201)()
+ , process = __webpack_require__(2).process
+ , isNode = __webpack_require__(32)(process) == 'process';
+
+ $export($export.G, {
+ asap: function asap(fn){
+ var domain = isNode && process.domain;
+ microtask(domain ? domain.bind(fn) : fn);
+ }
+ });
+
+/***/ },
+/* 285 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ // https://github.com/zenparsing/es-observable
+ var $export = __webpack_require__(6)
+ , global = __webpack_require__(2)
+ , core = __webpack_require__(7)
+ , microtask = __webpack_require__(201)()
+ , OBSERVABLE = __webpack_require__(23)('observable')
+ , aFunction = __webpack_require__(19)
+ , anObject = __webpack_require__(10)
+ , anInstance = __webpack_require__(197)
+ , redefineAll = __webpack_require__(202)
+ , hide = __webpack_require__(8)
+ , forOf = __webpack_require__(198)
+ , RETURN = forOf.RETURN;
+
+ var getMethod = function(fn){
+ return fn == null ? undefined : aFunction(fn);
+ };
+
+ var cleanupSubscription = function(subscription){
+ var cleanup = subscription._c;
+ if(cleanup){
+ subscription._c = undefined;
+ cleanup();
+ }
+ };
+
+ var subscriptionClosed = function(subscription){
+ return subscription._o === undefined;
+ };
+
+ var closeSubscription = function(subscription){
+ if(!subscriptionClosed(subscription)){
+ subscription._o = undefined;
+ cleanupSubscription(subscription);
+ }
+ };
+
+ var Subscription = function(observer, subscriber){
+ anObject(observer);
+ this._c = undefined;
+ this._o = observer;
+ observer = new SubscriptionObserver(this);
+ try {
+ var cleanup = subscriber(observer)
+ , subscription = cleanup;
+ if(cleanup != null){
+ if(typeof cleanup.unsubscribe === 'function')cleanup = function(){ subscription.unsubscribe(); };
+ else aFunction(cleanup);
+ this._c = cleanup;
+ }
+ } catch(e){
+ observer.error(e);
+ return;
+ } if(subscriptionClosed(this))cleanupSubscription(this);
+ };
+
+ Subscription.prototype = redefineAll({}, {
+ unsubscribe: function unsubscribe(){ closeSubscription(this); }
+ });
+
+ var SubscriptionObserver = function(subscription){
+ this._s = subscription;
+ };
+
+ SubscriptionObserver.prototype = redefineAll({}, {
+ next: function next(value){
+ var subscription = this._s;
+ if(!subscriptionClosed(subscription)){
+ var observer = subscription._o;
+ try {
+ var m = getMethod(observer.next);
+ if(m)return m.call(observer, value);
+ } catch(e){
+ try {
+ closeSubscription(subscription);
+ } finally {
+ throw e;
+ }
+ }
+ }
+ },
+ error: function error(value){
+ var subscription = this._s;
+ if(subscriptionClosed(subscription))throw value;
+ var observer = subscription._o;
+ subscription._o = undefined;
+ try {
+ var m = getMethod(observer.error);
+ if(!m)throw value;
+ value = m.call(observer, value);
+ } catch(e){
+ try {
+ cleanupSubscription(subscription);
+ } finally {
+ throw e;
+ }
+ } cleanupSubscription(subscription);
+ return value;
+ },
+ complete: function complete(value){
+ var subscription = this._s;
+ if(!subscriptionClosed(subscription)){
+ var observer = subscription._o;
+ subscription._o = undefined;
+ try {
+ var m = getMethod(observer.complete);
+ value = m ? m.call(observer, value) : undefined;
+ } catch(e){
+ try {
+ cleanupSubscription(subscription);
+ } finally {
+ throw e;
+ }
+ } cleanupSubscription(subscription);
+ return value;
+ }
+ }
+ });
+
+ var $Observable = function Observable(subscriber){
+ anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);
+ };
+
+ redefineAll($Observable.prototype, {
+ subscribe: function subscribe(observer){
+ return new Subscription(observer, this._f);
+ },
+ forEach: function forEach(fn){
+ var that = this;
+ return new (core.Promise || global.Promise)(function(resolve, reject){
+ aFunction(fn);
+ var subscription = that.subscribe({
+ next : function(value){
+ try {
+ return fn(value);
+ } catch(e){
+ reject(e);
+ subscription.unsubscribe();
+ }
+ },
+ error: reject,
+ complete: resolve
+ });
+ });
+ }
+ });
+
+ redefineAll($Observable, {
+ from: function from(x){
+ var C = typeof this === 'function' ? this : $Observable;
+ var method = getMethod(anObject(x)[OBSERVABLE]);
+ if(method){
+ var observable = anObject(method.call(x));
+ return observable.constructor === C ? observable : new C(function(observer){
+ return observable.subscribe(observer);
+ });
+ }
+ return new C(function(observer){
+ var done = false;
+ microtask(function(){
+ if(!done){
+ try {
+ if(forOf(x, false, function(it){
+ observer.next(it);
+ if(done)return RETURN;
+ }) === RETURN)return;
+ } catch(e){
+ if(done)throw e;
+ observer.error(e);
+ return;
+ } observer.complete();
+ }
+ });
+ return function(){ done = true; };
+ });
+ },
+ of: function of(){
+ for(var i = 0, l = arguments.length, items = Array(l); i < l;)items[i] = arguments[i++];
+ return new (typeof this === 'function' ? this : $Observable)(function(observer){
+ var done = false;
+ microtask(function(){
+ if(!done){
+ for(var i = 0; i < items.length; ++i){
+ observer.next(items[i]);
+ if(done)return;
+ } observer.complete();
+ }
+ });
+ return function(){ done = true; };
+ });
+ }
+ });
+
+ hide($Observable.prototype, OBSERVABLE, function(){ return this; });
+
+ $export($export.G, {Observable: $Observable});
+
+ __webpack_require__(186)('Observable');
+
+/***/ },
+/* 286 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $export = __webpack_require__(6)
+ , $task = __webpack_require__(200);
$export($export.G + $export.B, {
setImmediate: $task.set,
clearImmediate: $task.clear
});
/***/ },
-/* 182 */
+/* 287 */
/***/ function(module, exports, __webpack_require__) {
- __webpack_require__(117);
- var global = __webpack_require__(4)
- , hide = __webpack_require__(6)
- , Iterators = __webpack_require__(109)
- , ITERATOR = __webpack_require__(31)('iterator')
- , NL = global.NodeList
- , HTC = global.HTMLCollection
- , NLProto = NL && NL.prototype
- , HTCProto = HTC && HTC.prototype
- , ArrayValues = Iterators.NodeList = Iterators.HTMLCollection = Iterators.Array;
- if(NLProto && !NLProto[ITERATOR])hide(NLProto, ITERATOR, ArrayValues);
- if(HTCProto && !HTCProto[ITERATOR])hide(HTCProto, ITERATOR, ArrayValues);
+ var $iterators = __webpack_require__(183)
+ , redefine = __webpack_require__(16)
+ , global = __webpack_require__(2)
+ , hide = __webpack_require__(8)
+ , Iterators = __webpack_require__(135)
+ , wks = __webpack_require__(23)
+ , ITERATOR = wks('iterator')
+ , TO_STRING_TAG = wks('toStringTag')
+ , ArrayValues = Iterators.Array;
+
+ for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
+ var NAME = collections[i]
+ , Collection = global[NAME]
+ , proto = Collection && Collection.prototype
+ , key;
+ if(proto){
+ if(!proto[ITERATOR])hide(proto, ITERATOR, ArrayValues);
+ if(!proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);
+ Iterators[NAME] = ArrayValues;
+ for(key in $iterators)if(!proto[key])redefine(proto, key, $iterators[key], true);
+ }
+ }
/***/ },
-/* 183 */
+/* 288 */
/***/ function(module, exports, __webpack_require__) {
// ie9- setTimeout & setInterval additional parameters fix
- var global = __webpack_require__(4)
- , $export = __webpack_require__(3)
- , invoke = __webpack_require__(19)
- , partial = __webpack_require__(184)
+ var global = __webpack_require__(2)
+ , $export = __webpack_require__(6)
+ , invoke = __webpack_require__(76)
+ , partial = __webpack_require__(289)
, navigator = global.navigator
, MSIE = !!navigator && /MSIE .\./.test(navigator.userAgent); // <- dirty ie9- check
var wrap = function(set){
@@ -4484,13 +7214,13 @@
});
/***/ },
-/* 184 */
+/* 289 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var path = __webpack_require__(185)
- , invoke = __webpack_require__(19)
- , aFunction = __webpack_require__(13);
+ var path = __webpack_require__(290)
+ , invoke = __webpack_require__(76)
+ , aFunction = __webpack_require__(19);
module.exports = function(/* ...pargs */){
var fn = aFunction(this)
, length = arguments.length
@@ -4500,45 +7230,22 @@
, holder = false;
while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true;
return function(/* ...args */){
- var that = this
- , $$ = arguments
- , $$len = $$.length
+ var that = this
+ , aLen = arguments.length
, j = 0, k = 0, args;
- if(!holder && !$$len)return invoke(fn, pargs, that);
+ if(!holder && !aLen)return invoke(fn, pargs, that);
args = pargs.slice();
- if(holder)for(;length > j; j++)if(args[j] === _)args[j] = $$[k++];
- while($$len > k)args.push($$[k++]);
+ if(holder)for(;length > j; j++)if(args[j] === _)args[j] = arguments[k++];
+ while(aLen > k)args.push(arguments[k++]);
return invoke(fn, args, that);
};
};
/***/ },
-/* 185 */
+/* 290 */
/***/ function(module, exports, __webpack_require__) {
- module.exports = __webpack_require__(4);
-
-/***/ },
-/* 186 */
-/***/ function(module, exports, __webpack_require__) {
-
- // JavaScript 1.6 / Strawman array statics shim
- var $ = __webpack_require__(2)
- , $export = __webpack_require__(3)
- , $ctx = __webpack_require__(12)
- , $Array = __webpack_require__(5).Array || Array
- , statics = {};
- var setStatics = function(keys, length){
- $.each.call(keys.split(','), function(key){
- if(length == undefined && key in $Array)statics[key] = $Array[key];
- else if(key in [])statics[key] = $ctx(Function.call, [][key], length);
- });
- };
- setStatics('pop,reverse,shift,keys,values,entries', 1);
- setStatics('indexOf,every,some,forEach,map,filter,find,findIndex,includes', 3);
- setStatics('join,slice,concat,push,splice,unshift,sort,lastIndexOf,' +
- 'reduce,reduceRight,copyWithin,fill');
- $export($export.S, 'Array', statics);
+ module.exports = __webpack_require__(2);
/***/ }
/******/ ]);
diff --git a/node_modules/core-js/client/shim.min.js b/node_modules/core-js/client/shim.min.js
index bdfd66322..e532c6830 100644
--- a/node_modules/core-js/client/shim.min.js
+++ b/node_modules/core-js/client/shim.min.js
@@ -1,9 +1,10 @@
/**
- * core-js 1.2.7
+ * core-js 2.4.1
* https://github.com/zloirock/core-js
* License: http://rock.mit-license.org
* © 2016 Denis Pushkarev
*/
-!function(b,c,a){"use strict";!function(b){function __webpack_require__(c){if(a[c])return a[c].exports;var d=a[c]={exports:{},id:c,loaded:!1};return b[c].call(d.exports,d,d.exports,__webpack_require__),d.loaded=!0,d.exports}var a={};return __webpack_require__.m=b,__webpack_require__.c=a,__webpack_require__.p="",__webpack_require__(0)}([function(b,c,a){a(1),a(34),a(40),a(42),a(44),a(46),a(48),a(50),a(51),a(52),a(53),a(54),a(55),a(56),a(57),a(58),a(59),a(60),a(61),a(64),a(65),a(66),a(68),a(69),a(70),a(71),a(72),a(73),a(74),a(76),a(77),a(78),a(80),a(81),a(82),a(84),a(85),a(86),a(87),a(88),a(89),a(90),a(91),a(92),a(93),a(94),a(95),a(96),a(97),a(99),a(103),a(104),a(106),a(107),a(111),a(116),a(117),a(120),a(122),a(124),a(126),a(127),a(128),a(130),a(131),a(133),a(134),a(135),a(136),a(143),a(146),a(147),a(149),a(150),a(151),a(152),a(153),a(154),a(155),a(156),a(157),a(158),a(159),a(160),a(162),a(163),a(164),a(165),a(166),a(167),a(169),a(170),a(171),a(172),a(174),a(175),a(177),a(178),a(180),a(181),a(182),a(183),b.exports=a(186)},function(S,R,b){var r,d=b(2),c=b(3),x=b(8),O=b(7),o=b(14),E=b(15),n=b(17),N=b(18),J=b(19),j=b(9),p=b(20),v=b(13),I=b(16),Q=b(21),y=b(23),K=b(25),w=b(26),h=b(27),s=b(24),m=b(11)("__proto__"),g=b(28),A=b(33)(!1),B=Object.prototype,C=Array.prototype,k=C.slice,M=C.join,F=d.setDesc,L=d.getDesc,q=d.setDescs,u={};x||(r=!j(function(){return 7!=F(E("div"),"a",{get:function(){return 7}}).a}),d.setDesc=function(b,c,a){if(r)try{return F(b,c,a)}catch(d){}if("get"in a||"set"in a)throw TypeError("Accessors not supported!");return"value"in a&&(p(b)[c]=a.value),b},d.getDesc=function(a,b){if(r)try{return L(a,b)}catch(c){}return n(a,b)?O(!B.propertyIsEnumerable.call(a,b),a[b]):void 0},d.setDescs=q=function(a,b){p(a);for(var c,e=d.getKeys(b),g=e.length,f=0;g>f;)d.setDesc(a,c=e[f++],b[c]);return a}),c(c.S+c.F*!x,"Object",{getOwnPropertyDescriptor:d.getDesc,defineProperty:d.setDesc,defineProperties:q});var i="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),H=i.concat("length","prototype"),G=i.length,l=function(){var a,b=E("iframe"),c=G,d=">";for(b.style.display="none",o.appendChild(b),b.src="javascript:",a=b.contentWindow.document,a.open(),a.write("<script>document.F=Object</script"+d),a.close(),l=a.F;c--;)delete l.prototype[i[c]];return l()},D=function(a,b){return function(g){var c,e=y(g),f=0,d=[];for(c in e)c!=m&&n(e,c)&&d.push(c);for(;b>f;)n(e,c=a[f++])&&(~A(d,c)||d.push(c));return d}},t=function(){};c(c.S,"Object",{getPrototypeOf:d.getProto=d.getProto||function(a){return a=Q(a),n(a,m)?a[m]:"function"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?B:null},getOwnPropertyNames:d.getNames=d.getNames||D(H,H.length,!0),create:d.create=d.create||function(c,d){var b;return null!==c?(t.prototype=p(c),b=new t,t.prototype=null,b[m]=c):b=l(),d===a?b:q(b,d)},keys:d.getKeys=d.getKeys||D(i,G,!1)});var P=function(d,a,e){if(!(a in u)){for(var c=[],b=0;a>b;b++)c[b]="a["+b+"]";u[a]=Function("F,a","return new F("+c.join(",")+")")}return u[a](d,e)};c(c.P,"Function",{bind:function bind(c){var a=v(this),d=k.call(arguments,1),b=function(){var e=d.concat(k.call(arguments));return this instanceof b?P(a,e.length,e):J(a,e,c)};return I(a.prototype)&&(b.prototype=a.prototype),b}}),c(c.P+c.F*j(function(){o&&k.call(o)}),"Array",{slice:function(f,b){var d=h(this.length),g=N(this);if(b=b===a?d:b,"Array"==g)return k.call(this,f,b);for(var e=w(f,d),l=w(b,d),i=h(l-e),j=Array(i),c=0;i>c;c++)j[c]="String"==g?this.charAt(e+c):this[e+c];return j}}),c(c.P+c.F*(s!=Object),"Array",{join:function join(b){return M.call(s(this),b===a?",":b)}}),c(c.S,"Array",{isArray:b(30)});var z=function(a){return function(g,d){v(g);var c=s(this),e=h(c.length),b=a?e-1:0,f=a?-1:1;if(arguments.length<2)for(;;){if(b in c){d=c[b],b+=f;break}if(b+=f,a?0>b:b>=e)throw TypeError("Reduce of empty array with no initial value")}for(;a?b>=0:e>b;b+=f)b in c&&(d=g(d,c[b],b,this));return d}},f=function(a){return function(b){return a(this,b,arguments[1])}};c(c.P,"Array",{forEach:d.each=d.each||f(g(0)),map:f(g(1)),filter:f(g(2)),some:f(g(3)),every:f(g(4)),reduce:z(!1),reduceRight:z(!0),indexOf:f(A),lastIndexOf:function(d,e){var b=y(this),c=h(b.length),a=c-1;for(arguments.length>1&&(a=Math.min(a,K(e))),0>a&&(a=h(c+a));a>=0;a--)if(a in b&&b[a]===d)return a;return-1}}),c(c.S,"Date",{now:function(){return+new Date}});var e=function(a){return a>9?a:"0"+a};c(c.P+c.F*(j(function(){return"0385-07-25T07:06:39.999Z"!=new Date(-5e13-1).toISOString()})||!j(function(){new Date(NaN).toISOString()})),"Date",{toISOString:function toISOString(){if(!isFinite(this))throw RangeError("Invalid time value");var a=this,b=a.getUTCFullYear(),c=a.getUTCMilliseconds(),d=0>b?"-":b>9999?"+":"";return d+("00000"+Math.abs(b)).slice(d?-6:-4)+"-"+e(a.getUTCMonth()+1)+"-"+e(a.getUTCDate())+"T"+e(a.getUTCHours())+":"+e(a.getUTCMinutes())+":"+e(a.getUTCSeconds())+"."+(c>99?c:"0"+e(c))+"Z"}})},function(b,c){var a=Object;b.exports={create:a.create,getProto:a.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:a.getOwnPropertyDescriptor,setDesc:a.defineProperty,setDescs:a.defineProperties,getKeys:a.keys,getNames:a.getOwnPropertyNames,getSymbols:a.getOwnPropertySymbols,each:[].forEach}},function(g,j,c){var b=c(4),d=c(5),h=c(6),i=c(10),f=c(12),e="prototype",a=function(k,j,o){var g,m,c,s,v=k&a.F,p=k&a.G,u=k&a.S,r=k&a.P,t=k&a.B,l=p?b:u?b[j]||(b[j]={}):(b[j]||{})[e],n=p?d:d[j]||(d[j]={}),q=n[e]||(n[e]={});p&&(o=j);for(g in o)m=!v&&l&&g in l,c=(m?l:o)[g],s=t&&m?f(c,b):r&&"function"==typeof c?f(Function.call,c):c,l&&!m&&i(l,g,c),n[g]!=c&&h(n,g,s),r&&q[g]!=c&&(q[g]=c)};b.core=d,a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,g.exports=a},function(a,d){var b=a.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof c&&(c=b)},function(a,d){var c=a.exports={version:"1.2.6"};"number"==typeof b&&(b=c)},function(b,e,a){var c=a(2),d=a(7);b.exports=a(8)?function(a,b,e){return c.setDesc(a,b,d(1,e))}:function(a,b,c){return a[b]=c,a}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,c,b){a.exports=!b(9)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b){a.exports=function(a){try{return!!a()}catch(b){return!0}}},function(f,i,a){var g=a(4),b=a(6),c=a(11)("src"),d="toString",e=Function[d],h=(""+e).split(d);a(5).inspectSource=function(a){return e.call(a)},(f.exports=function(e,a,d,f){"function"==typeof d&&(d.hasOwnProperty(c)||b(d,c,e[a]?""+e[a]:h.join(String(a))),d.hasOwnProperty("name")||b(d,"name",a)),e===g?e[a]=d:(f||delete e[a],b(e,a,d))})(Function.prototype,d,function toString(){return"function"==typeof this&&this[c]||e.call(this)})},function(b,e){var c=0,d=Math.random();b.exports=function(b){return"Symbol(".concat(b===a?"":b,")_",(++c+d).toString(36))}},function(b,e,c){var d=c(13);b.exports=function(b,c,e){if(d(b),c===a)return b;switch(e){case 1:return function(a){return b.call(c,a)};case 2:return function(a,d){return b.call(c,a,d)};case 3:return function(a,d,e){return b.call(c,a,d,e)}}return function(){return b.apply(c,arguments)}}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,c,b){a.exports=b(4).document&&document.documentElement},function(d,f,b){var c=b(16),a=b(4).document,e=c(a)&&c(a.createElement);d.exports=function(b){return e?a.createElement(b):{}}},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,c){var b={}.hasOwnProperty;a.exports=function(a,c){return b.call(a,c)}},function(a,c){var b={}.toString;a.exports=function(a){return b.call(a).slice(8,-1)}},function(b,c){b.exports=function(c,b,d){var e=d===a;switch(b.length){case 0:return e?c():c.call(d);case 1:return e?c(b[0]):c.call(d,b[0]);case 2:return e?c(b[0],b[1]):c.call(d,b[0],b[1]);case 3:return e?c(b[0],b[1],b[2]):c.call(d,b[0],b[1],b[2]);case 4:return e?c(b[0],b[1],b[2],b[3]):c.call(d,b[0],b[1],b[2],b[3])}return c.apply(d,b)}},function(a,d,b){var c=b(16);a.exports=function(a){if(!c(a))throw TypeError(a+" is not an object!");return a}},function(a,d,b){var c=b(22);a.exports=function(a){return Object(c(a))}},function(b,c){b.exports=function(b){if(b==a)throw TypeError("Can't call method on "+b);return b}},function(b,e,a){var c=a(24),d=a(22);b.exports=function(a){return c(d(a))}},function(a,d,b){var c=b(18);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return"String"==c(a)?a.split(""):Object(a)}},function(a,d){var b=Math.ceil,c=Math.floor;a.exports=function(a){return isNaN(a=+a)?0:(a>0?c:b)(a)}},function(a,f,b){var c=b(25),d=Math.max,e=Math.min;a.exports=function(a,b){return a=c(a),0>a?d(a+b,0):e(a,b)}},function(a,e,b){var c=b(25),d=Math.min;a.exports=function(a){return a>0?d(c(a),9007199254740991):0}},function(d,i,b){var e=b(12),f=b(24),g=b(21),h=b(27),c=b(29);d.exports=function(b){var i=1==b,k=2==b,l=3==b,d=4==b,j=6==b,m=5==b||j;return function(p,v,x){for(var o,r,u=g(p),s=f(u),w=e(v,x,3),t=h(s.length),n=0,q=i?c(p,t):k?c(p,0):a;t>n;n++)if((m||n in s)&&(o=s[n],r=w(o,n,u),b))if(i)q[n]=r;else if(r)switch(b){case 3:return!0;case 5:return o;case 6:return n;case 2:q.push(o)}else if(d)return!1;return j?-1:l||d?d:q}}},function(d,g,b){var e=b(16),c=b(30),f=b(31)("species");d.exports=function(d,g){var b;return c(d)&&(b=d.constructor,"function"!=typeof b||b!==Array&&!c(b.prototype)||(b=a),e(b)&&(b=b[f],null===b&&(b=a))),new(b===a?Array:b)(g)}},function(a,d,b){var c=b(18);a.exports=Array.isArray||function(a){return"Array"==c(a)}},function(d,f,a){var c=a(32)("wks"),e=a(11),b=a(4).Symbol;d.exports=function(a){return c[a]||(c[a]=b&&b[a]||(b||e)("Symbol."+a))}},function(d,f,e){var a=e(4),b="__core-js_shared__",c=a[b]||(a[b]={});d.exports=function(a){return c[a]||(c[a]={})}},function(b,f,a){var c=a(23),d=a(27),e=a(26);b.exports=function(a){return function(j,g,k){var h,f=c(j),i=d(f.length),b=e(k,i);if(a&&g!=g){for(;i>b;)if(h=f[b++],h!=h)return!0}else for(;i>b;b++)if((a||b in f)&&f[b]===g)return a||b;return!a&&-1}}},function(W,V,b){var e=b(2),x=b(4),d=b(17),w=b(8),f=b(3),G=b(10),H=b(9),J=b(32),s=b(35),S=b(11),A=b(31),R=b(36),C=b(37),Q=b(38),P=b(30),O=b(20),p=b(23),v=b(7),I=e.getDesc,i=e.setDesc,k=e.create,z=C.get,g=x.Symbol,l=x.JSON,m=l&&l.stringify,n=!1,c=A("_hidden"),N=e.isEnum,o=J("symbol-registry"),h=J("symbols"),q="function"==typeof g,j=Object.prototype,y=w&&H(function(){return 7!=k(i({},"a",{get:function(){return i(this,"a",{value:7}).a}})).a})?function(c,a,d){var b=I(j,a);b&&delete j[a],i(c,a,d),b&&c!==j&&i(j,a,b)}:i,L=function(a){var b=h[a]=k(g.prototype);return b._k=a,w&&n&&y(j,a,{configurable:!0,set:function(b){d(this,c)&&d(this[c],a)&&(this[c][a]=!1),y(this,a,v(1,b))}}),b},r=function(a){return"symbol"==typeof a},t=function defineProperty(a,b,e){return e&&d(h,b)?(e.enumerable?(d(a,c)&&a[c][b]&&(a[c][b]=!1),e=k(e,{enumerable:v(0,!1)})):(d(a,c)||i(a,c,v(1,{})),a[c][b]=!0),y(a,b,e)):i(a,b,e)},u=function defineProperties(a,b){O(a);for(var c,d=Q(b=p(b)),e=0,f=d.length;f>e;)t(a,c=d[e++],b[c]);return a},F=function create(b,c){return c===a?k(b):u(k(b),c)},E=function propertyIsEnumerable(a){var b=N.call(this,a);return b||!d(this,a)||!d(h,a)||d(this,c)&&this[c][a]?b:!0},D=function getOwnPropertyDescriptor(a,b){var e=I(a=p(a),b);return!e||!d(h,b)||d(a,c)&&a[c][b]||(e.enumerable=!0),e},B=function getOwnPropertyNames(g){for(var a,b=z(p(g)),e=[],f=0;b.length>f;)d(h,a=b[f++])||a==c||e.push(a);return e},M=function getOwnPropertySymbols(f){for(var a,b=z(p(f)),c=[],e=0;b.length>e;)d(h,a=b[e++])&&c.push(h[a]);return c},T=function stringify(e){if(e!==a&&!r(e)){for(var b,c,d=[e],f=1,g=arguments;g.length>f;)d.push(g[f++]);return b=d[1],"function"==typeof b&&(c=b),(c||!P(b))&&(b=function(b,a){return c&&(a=c.call(this,b,a)),r(a)?void 0:a}),d[1]=b,m.apply(l,d)}},U=H(function(){var a=g();return"[null]"!=m([a])||"{}"!=m({a:a})||"{}"!=m(Object(a))});q||(g=function Symbol(){if(r(this))throw TypeError("Symbol is not a constructor");return L(S(arguments.length>0?arguments[0]:a))},G(g.prototype,"toString",function toString(){return this._k}),r=function(a){return a instanceof g},e.create=F,e.isEnum=E,e.getDesc=D,e.setDesc=t,e.setDescs=u,e.getNames=C.get=B,e.getSymbols=M,w&&!b(39)&&G(j,"propertyIsEnumerable",E,!0));var K={"for":function(a){return d(o,a+="")?o[a]:o[a]=g(a)},keyFor:function keyFor(a){return R(o,a)},useSetter:function(){n=!0},useSimple:function(){n=!1}};e.each.call("hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),function(a){var b=A(a);K[a]=q?b:L(b)}),n=!0,f(f.G+f.W,{Symbol:g}),f(f.S,"Symbol",K),f(f.S+f.F*!q,"Object",{create:F,defineProperty:t,defineProperties:u,getOwnPropertyDescriptor:D,getOwnPropertyNames:B,getOwnPropertySymbols:M}),l&&f(f.S+f.F*(!q||U),"JSON",{stringify:T}),s(g,"Symbol"),s(Math,"Math",!0),s(x.JSON,"JSON",!0)},function(c,f,a){var d=a(2).setDesc,e=a(17),b=a(31)("toStringTag");c.exports=function(a,c,f){a&&!e(a=f?a:a.prototype,b)&&d(a,b,{configurable:!0,value:c})}},function(b,e,a){var c=a(2),d=a(23);b.exports=function(g,h){for(var a,b=d(g),e=c.getKeys(b),i=e.length,f=0;i>f;)if(b[a=e[f++]]===h)return a}},function(d,h,a){var e=a(23),b=a(2).getNames,f={}.toString,c="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],g=function(a){try{return b(a)}catch(d){return c.slice()}};d.exports.get=function getOwnPropertyNames(a){return c&&"[object Window]"==f.call(a)?g(a):b(e(a))}},function(b,d,c){var a=c(2);b.exports=function(b){var c=a.getKeys(b),d=a.getSymbols;if(d)for(var e,f=d(b),h=a.isEnum,g=0;f.length>g;)h.call(b,e=f[g++])&&c.push(e);return c}},function(a,b){a.exports=!1},function(c,d,b){var a=b(3);a(a.S+a.F,"Object",{assign:b(41)})},function(c,f,a){var b=a(2),d=a(21),e=a(24);c.exports=a(9)(function(){var a=Object.assign,b={},c={},d=Symbol(),e="abcdefghijklmnopqrst";return b[d]=7,e.split("").forEach(function(a){c[a]=a}),7!=a({},b)[d]||Object.keys(a({},c)).join("")!=e})?function assign(n,q){for(var g=d(n),h=arguments,o=h.length,j=1,f=b.getKeys,l=b.getSymbols,m=b.isEnum;o>j;)for(var c,a=e(h[j++]),k=l?f(a).concat(l(a)):f(a),p=k.length,i=0;p>i;)m.call(a,c=k[i++])&&(g[c]=a[c]);return g}:Object.assign},function(c,d,a){var b=a(3);b(b.S,"Object",{is:a(43)})},function(a,b){a.exports=Object.is||function is(a,b){return a===b?0!==a||1/a===1/b:a!=a&&b!=b}},function(c,d,a){var b=a(3);b(b.S,"Object",{setPrototypeOf:a(45).set})},function(d,h,b){var e=b(2).getDesc,f=b(16),g=b(20),c=function(b,a){if(g(b),!f(a)&&null!==a)throw TypeError(a+": can't set as prototype!")};d.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(f,a,d){try{d=b(12)(Function.call,e(Object.prototype,"__proto__").set,2),d(f,[]),a=!(f instanceof Array)}catch(g){a=!0}return function setPrototypeOf(b,e){return c(b,e),a?b.__proto__=e:d(b,e),b}}({},!1):a),check:c}},function(d,e,a){var c=a(47),b={};b[a(31)("toStringTag")]="z",b+""!="[object z]"&&a(10)(Object.prototype,"toString",function toString(){return"[object "+c(this)+"]"},!0)},function(d,g,c){var b=c(18),e=c(31)("toStringTag"),f="Arguments"==b(function(){return arguments}());d.exports=function(d){var c,g,h;return d===a?"Undefined":null===d?"Null":"string"==typeof(g=(c=Object(d))[e])?g:f?b(c):"Object"==(h=b(c))&&"function"==typeof c.callee?"Arguments":h}},function(c,d,a){var b=a(16);a(49)("freeze",function(a){return function freeze(c){return a&&b(c)?a(c):c}})},function(c,f,a){var b=a(3),d=a(5),e=a(9);c.exports=function(a,g){var c=(d.Object||{})[a]||Object[a],f={};f[a]=g(c),b(b.S+b.F*e(function(){c(1)}),"Object",f)}},function(c,d,a){var b=a(16);a(49)("seal",function(a){return function seal(c){return a&&b(c)?a(c):c}})},function(c,d,a){var b=a(16);a(49)("preventExtensions",function(a){return function preventExtensions(c){return a&&b(c)?a(c):c}})},function(c,d,a){var b=a(16);a(49)("isFrozen",function(a){return function isFrozen(c){return b(c)?a?a(c):!1:!0}})},function(c,d,a){var b=a(16);a(49)("isSealed",function(a){return function isSealed(c){return b(c)?a?a(c):!1:!0}})},function(c,d,a){var b=a(16);a(49)("isExtensible",function(a){return function isExtensible(c){return b(c)?a?a(c):!0:!1}})},function(c,d,a){var b=a(23);a(49)("getOwnPropertyDescriptor",function(a){return function getOwnPropertyDescriptor(c,d){return a(b(c),d)}})},function(c,d,a){var b=a(21);a(49)("getPrototypeOf",function(a){return function getPrototypeOf(c){return a(b(c))}})},function(c,d,a){var b=a(21);a(49)("keys",function(a){return function keys(c){return a(b(c))}})},function(b,c,a){a(49)("getOwnPropertyNames",function(){return a(37).get})},function(h,i,a){var c=a(2).setDesc,e=a(7),f=a(17),d=Function.prototype,g=/^\s*function ([^ (]*)/,b="name";b in d||a(8)&&c(d,b,{configurable:!0,get:function(){var a=(""+this).match(g),d=a?a[1]:"";return f(this,b)||c(this,b,e(5,d)),d}})},function(f,g,a){var b=a(2),c=a(16),d=a(31)("hasInstance"),e=Function.prototype;d in e||b.setDesc(e,d,{value:function(a){if("function"!=typeof this||!c(a))return!1;if(!c(this.prototype))return a instanceof this;for(;a=b.getProto(a);)if(this.prototype===a)return!0;return!1}})},function(q,p,b){var c=b(2),h=b(4),i=b(17),j=b(18),l=b(62),k=b(9),n=b(63).trim,d="Number",a=h[d],e=a,f=a.prototype,o=j(c.create(f))==d,m="trim"in String.prototype,g=function(i){var a=l(i,!1);if("string"==typeof a&&a.length>2){a=m?a.trim():n(a,3);var b,c,d,e=a.charCodeAt(0);if(43===e||45===e){if(b=a.charCodeAt(2),88===b||120===b)return NaN}else if(48===e){switch(a.charCodeAt(1)){case 66:case 98:c=2,d=49;break;case 79:case 111:c=8,d=55;break;default:return+a}for(var f,g=a.slice(2),h=0,j=g.length;j>h;h++)if(f=g.charCodeAt(h),48>f||f>d)return NaN;return parseInt(g,c)}}return+a};a(" 0o1")&&a("0b1")&&!a("+0x1")||(a=function Number(h){var c=arguments.length<1?0:h,b=this;return b instanceof a&&(o?k(function(){f.valueOf.call(b)}):j(b)!=d)?new e(g(c)):g(c)},c.each.call(b(8)?c.getNames(e):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),function(b){i(e,b)&&!i(a,b)&&c.setDesc(a,b,c.getDesc(e,b))}),a.prototype=f,f.constructor=a,b(10)(h,d,a))},function(b,d,c){var a=c(16);b.exports=function(b,e){if(!a(b))return b;var c,d;if(e&&"function"==typeof(c=b.toString)&&!a(d=c.call(b)))return d;if("function"==typeof(c=b.valueOf)&&!a(d=c.call(b)))return d;if(!e&&"function"==typeof(c=b.toString)&&!a(d=c.call(b)))return d;throw TypeError("Can't convert object to primitive value")}},function(g,m,b){var c=b(3),h=b(22),i=b(9),d=" \n \f\r   ᠎ â€â€‚         âŸã€€\u2028\u2029\ufeff",a="["+d+"]",f="​…",j=RegExp("^"+a+a+"*"),k=RegExp(a+a+"*$"),e=function(a,e){var b={};b[a]=e(l),c(c.P+c.F*i(function(){return!!d[a]()||f[a]()!=f}),"String",b)},l=e.trim=function(a,b){return a=String(h(a)),1&b&&(a=a.replace(j,"")),2&b&&(a=a.replace(k,"")),a};g.exports=e},function(c,d,b){var a=b(3);a(a.S,"Number",{EPSILON:Math.pow(2,-52)})},function(d,e,a){var b=a(3),c=a(4).isFinite;b(b.S,"Number",{isFinite:function isFinite(a){return"number"==typeof a&&c(a)}})},function(c,d,a){var b=a(3);b(b.S,"Number",{isInteger:a(67)})},function(a,e,b){var c=b(16),d=Math.floor;a.exports=function isInteger(a){return!c(a)&&isFinite(a)&&d(a)===a}},function(c,d,b){var a=b(3);a(a.S,"Number",{isNaN:function isNaN(a){return a!=a}})},function(e,f,a){var b=a(3),c=a(67),d=Math.abs;b(b.S,"Number",{isSafeInteger:function isSafeInteger(a){return c(a)&&d(a)<=9007199254740991}})},function(c,d,b){var a=b(3);a(a.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(c,d,b){var a=b(3);a(a.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(c,d,b){var a=b(3);a(a.S,"Number",{parseFloat:parseFloat})},function(c,d,b){var a=b(3);a(a.S,"Number",{parseInt:parseInt})},function(f,g,b){var a=b(3),e=b(75),c=Math.sqrt,d=Math.acosh;a(a.S+a.F*!(d&&710==Math.floor(d(Number.MAX_VALUE))),"Math",{acosh:function acosh(a){return(a=+a)<1?NaN:a>94906265.62425156?Math.log(a)+Math.LN2:e(a-1+c(a-1)*c(a+1))}})},function(a,b){a.exports=Math.log1p||function log1p(a){return(a=+a)>-1e-8&&1e-8>a?a-a*a/2:Math.log(1+a)}},function(c,d,b){function asinh(a){return isFinite(a=+a)&&0!=a?0>a?-asinh(-a):Math.log(a+Math.sqrt(a*a+1)):a}var a=b(3);a(a.S,"Math",{asinh:asinh})},function(c,d,b){var a=b(3);a(a.S,"Math",{atanh:function atanh(a){return 0==(a=+a)?a:Math.log((1+a)/(1-a))/2}})},function(d,e,a){var b=a(3),c=a(79);b(b.S,"Math",{cbrt:function cbrt(a){return c(a=+a)*Math.pow(Math.abs(a),1/3)}})},function(a,b){a.exports=Math.sign||function sign(a){return 0==(a=+a)||a!=a?a:0>a?-1:1}},function(c,d,b){var a=b(3);a(a.S,"Math",{clz32:function clz32(a){return(a>>>=0)?31-Math.floor(Math.log(a+.5)*Math.LOG2E):32}})},function(d,e,c){var a=c(3),b=Math.exp;a(a.S,"Math",{cosh:function cosh(a){return(b(a=+a)+b(-a))/2}})},function(c,d,a){var b=a(3);b(b.S,"Math",{expm1:a(83)})},function(a,b){a.exports=Math.expm1||function expm1(a){return 0==(a=+a)?a:a>-1e-6&&1e-6>a?a+a*a/2:Math.exp(a)-1}},function(k,j,e){var f=e(3),g=e(79),a=Math.pow,d=a(2,-52),b=a(2,-23),i=a(2,127)*(2-b),c=a(2,-126),h=function(a){return a+1/d-1/d};f(f.S,"Math",{fround:function fround(k){var f,a,e=Math.abs(k),j=g(k);return c>e?j*h(e/c/b)*c*b:(f=(1+b/d)*e,a=f-(f-e),a>i||a!=a?j*(1/0):j*a)}})},function(d,e,b){var a=b(3),c=Math.abs;a(a.S,"Math",{hypot:function hypot(i,j){for(var a,b,e=0,f=0,g=arguments,h=g.length,d=0;h>f;)a=c(g[f++]),a>d?(b=d/a,e=e*b*b+1,d=a):a>0?(b=a/d,e+=b*b):e+=a;return d===1/0?1/0:d*Math.sqrt(e)}})},function(d,e,b){var a=b(3),c=Math.imul;a(a.S+a.F*b(9)(function(){return-5!=c(4294967295,5)||2!=c.length}),"Math",{imul:function imul(f,g){var a=65535,b=+f,c=+g,d=a&b,e=a&c;return 0|d*e+((a&b>>>16)*e+d*(a&c>>>16)<<16>>>0)}})},function(c,d,b){var a=b(3);a(a.S,"Math",{log10:function log10(a){return Math.log(a)/Math.LN10}})},function(c,d,a){var b=a(3);b(b.S,"Math",{log1p:a(75)})},function(c,d,b){var a=b(3);a(a.S,"Math",{log2:function log2(a){return Math.log(a)/Math.LN2}})},function(c,d,a){var b=a(3);b(b.S,"Math",{sign:a(79)})},function(e,f,a){var b=a(3),c=a(83),d=Math.exp;b(b.S+b.F*a(9)(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function sinh(a){return Math.abs(a=+a)<1?(c(a)-c(-a))/2:(d(a-1)-d(-a-1))*(Math.E/2)}})},function(e,f,a){var b=a(3),c=a(83),d=Math.exp;b(b.S,"Math",{tanh:function tanh(a){var b=c(a=+a),e=c(-a);return b==1/0?1:e==1/0?-1:(b-e)/(d(a)+d(-a))}})},function(c,d,b){var a=b(3);a(a.S,"Math",{trunc:function trunc(a){return(a>0?Math.floor:Math.ceil)(a)}})},function(f,g,b){var a=b(3),e=b(26),c=String.fromCharCode,d=String.fromCodePoint;a(a.S+a.F*(!!d&&1!=d.length),"String",{fromCodePoint:function fromCodePoint(h){for(var a,b=[],d=arguments,g=d.length,f=0;g>f;){if(a=+d[f++],e(a,1114111)!==a)throw RangeError(a+" is not a valid code point");b.push(65536>a?c(a):c(((a-=65536)>>10)+55296,a%1024+56320))}return b.join("")}})},function(e,f,a){var b=a(3),c=a(23),d=a(27);b(b.S,"String",{raw:function raw(g){for(var e=c(g.raw),h=d(e.length),f=arguments,i=f.length,b=[],a=0;h>a;)b.push(String(e[a++])),i>a&&b.push(String(f[a]));return b.join("")}})},function(b,c,a){a(63)("trim",function(a){return function trim(){return a(this,3)}})},function(d,e,a){var b=a(3),c=a(98)(!1);b(b.P,"String",{codePointAt:function codePointAt(a){return c(this,a)}})},function(c,f,b){var d=b(25),e=b(22);c.exports=function(b){return function(j,k){var f,h,g=String(e(j)),c=d(k),i=g.length;return 0>c||c>=i?b?"":a:(f=g.charCodeAt(c),55296>f||f>56319||c+1===i||(h=g.charCodeAt(c+1))<56320||h>57343?b?g.charAt(c):f:b?g.slice(c,c+2):(f-55296<<10)+(h-56320)+65536)}}},function(h,i,b){var c=b(3),e=b(27),g=b(100),d="endsWith",f=""[d];c(c.P+c.F*b(102)(d),"String",{endsWith:function endsWith(i){var b=g(this,i,d),j=arguments,k=j.length>1?j[1]:a,l=e(b.length),c=k===a?l:Math.min(e(k),l),h=String(i);return f?f.call(b,h,c):b.slice(c-h.length,c)===h}})},function(b,e,a){var c=a(101),d=a(22);b.exports=function(a,b,e){if(c(b))throw TypeError("String#"+e+" doesn't accept regex!");return String(d(a))}},function(c,g,b){var d=b(16),e=b(18),f=b(31)("match");c.exports=function(b){var c;return d(b)&&((c=b[f])!==a?!!c:"RegExp"==e(b))}},function(a,d,b){var c=b(31)("match");a.exports=function(b){var a=/./;try{"/./"[b](a)}catch(d){try{return a[c]=!1,!"/./"[b](a)}catch(e){}}return!0}},function(f,g,b){var c=b(3),e=b(100),d="includes";c(c.P+c.F*b(102)(d),"String",{includes:function includes(b){return!!~e(this,b,d).indexOf(b,arguments.length>1?arguments[1]:a)}})},function(c,d,a){var b=a(3);b(b.P,"String",{repeat:a(105)})},function(b,e,a){var c=a(25),d=a(22);b.exports=function repeat(f){var b=String(d(this)),e="",a=c(f);if(0>a||a==1/0)throw RangeError("Count can't be negative");for(;a>0;(a>>>=1)&&(b+=b))1&a&&(e+=b);return e}},function(h,i,b){var c=b(3),f=b(27),g=b(100),d="startsWith",e=""[d];c(c.P+c.F*b(102)(d),"String",{startsWith:function startsWith(i){var b=g(this,i,d),j=arguments,c=f(Math.min(j.length>1?j[1]:a,b.length)),h=String(i);return e?e.call(b,h,c):b.slice(c,c+h.length)===h}})},function(d,e,b){var c=b(98)(!0);b(108)(String,"String",function(a){this._t=String(a),this._i=0},function(){var b,d=this._t,e=this._i;return e>=d.length?{value:a,done:!0}:(b=c(d,e),this._i+=b.length,{value:b,done:!1})})},function(o,r,a){var i=a(39),d=a(3),n=a(10),h=a(6),m=a(17),f=a(109),q=a(110),p=a(35),l=a(2).getProto,c=a(31)("iterator"),e=!([].keys&&"next"in[].keys()),j="@@iterator",k="keys",b="values",g=function(){return this};o.exports=function(B,v,u,F,s,E,A){q(u,v,F);var r,x,w=function(c){if(!e&&c in a)return a[c];switch(c){case k:return function keys(){return new u(this,c)};case b:return function values(){return new u(this,c)}}return function entries(){return new u(this,c)}},C=v+" Iterator",y=s==b,z=!1,a=B.prototype,t=a[c]||a[j]||s&&a[s],o=t||w(s);if(t){var D=l(o.call(new B));p(D,C,!0),!i&&m(a,j)&&h(D,c,g),y&&t.name!==b&&(z=!0,o=function values(){return t.call(this)})}if(i&&!A||!e&&!z&&a[c]||h(a,c,o),f[v]=o,f[C]=g,s)if(r={values:y?o:w(b),keys:E?o:w(k),entries:y?w("entries"):o},A)for(x in r)x in a||n(a,x,r[x]);else d(d.P+d.F*(e||z),v,r);return r}},function(a,b){a.exports={}},function(c,g,a){var d=a(2),e=a(7),f=a(35),b={};a(6)(b,a(31)("iterator"),function(){return this}),c.exports=function(a,c,g){a.prototype=d.create(b,{next:e(1,g)}),f(a,c+" Iterator")}},function(j,k,b){var d=b(12),c=b(3),e=b(21),f=b(112),g=b(113),h=b(27),i=b(114);c(c.S+c.F*!b(115)(function(a){Array.from(a)}),"Array",{from:function from(t){var n,c,r,m,j=e(t),l="function"==typeof this?this:Array,p=arguments,s=p.length,k=s>1?p[1]:a,q=k!==a,b=0,o=i(j);if(q&&(k=d(k,s>2?p[2]:a,2)),o==a||l==Array&&g(o))for(n=h(j.length),c=new l(n);n>b;b++)c[b]=q?k(j[b],b):j[b];else for(m=o.call(j),c=new l;!(r=m.next()).done;b++)c[b]=q?f(m,k,[r.value,b],!0):r.value;return c.length=b,c}})},function(c,e,d){var b=d(20);c.exports=function(d,e,c,g){try{return g?e(b(c)[0],c[1]):e(c)}catch(h){var f=d["return"];throw f!==a&&b(f.call(d)),h}}},function(c,g,b){var d=b(109),e=b(31)("iterator"),f=Array.prototype;c.exports=function(b){return b!==a&&(d.Array===b||f[e]===b)}},function(c,g,b){var d=b(47),e=b(31)("iterator"),f=b(109);c.exports=b(5).getIteratorMethod=function(b){return b!=a?b[e]||b["@@iterator"]||f[d(b)]:void 0}},function(d,f,e){var a=e(31)("iterator"),b=!1;try{var c=[7][a]();c["return"]=function(){b=!0},Array.from(c,function(){throw 2})}catch(g){}d.exports=function(f,g){if(!g&&!b)return!1;var d=!1;try{var c=[7],e=c[a]();e.next=function(){return{done:d=!0}},c[a]=function(){return e},f(c)}catch(h){}return d}},function(c,d,b){var a=b(3);a(a.S+a.F*b(9)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),"Array",{of:function of(){for(var a=0,d=arguments,b=d.length,c=new("function"==typeof this?this:Array)(b);b>a;)c[a]=d[a++];return c.length=b,c}})},function(f,h,b){var d=b(118),c=b(119),e=b(109),g=b(23);f.exports=b(108)(Array,"Array",function(a,b){this._t=g(a),this._i=0,this._k=b},function(){var d=this._t,e=this._k,b=this._i++;return!d||b>=d.length?(this._t=a,c(1)):"keys"==e?c(0,b):"values"==e?c(0,d[b]):c(0,[b,d[b]])},"values"),e.Arguments=e.Array,d("keys"),d("values"),d("entries")},function(e,f,d){var b=d(31)("unscopables"),c=Array.prototype;c[b]==a&&d(6)(c,b,{}),e.exports=function(a){c[b][a]=!0}},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(b,c,a){a(121)("Array")},function(c,g,a){var d=a(4),e=a(2),f=a(8),b=a(31)("species");c.exports=function(c){var a=d[c];f&&a&&!a[b]&&e.setDesc(a,b,{configurable:!0,get:function(){return this}})}},function(c,d,a){var b=a(3);b(b.P,"Array",{copyWithin:a(123)}),a(118)("copyWithin")},function(d,g,b){var e=b(21),c=b(26),f=b(27);d.exports=[].copyWithin||function copyWithin(m,n){var g=e(this),h=f(g.length),b=c(m,h),d=c(n,h),k=arguments,l=k.length>2?k[2]:a,i=Math.min((l===a?h:c(l,h))-d,h-b),j=1;for(b>d&&d+i>b&&(j=-1,d+=i-1,b+=i-1);i-->0;)d in g?g[b]=g[d]:delete g[b],b+=j,d+=j;return g}},function(c,d,a){var b=a(3);b(b.P,"Array",{fill:a(125)}),a(118)("fill")},function(d,g,b){var e=b(21),c=b(26),f=b(27);d.exports=[].fill||function fill(k){for(var b=e(this),d=f(b.length),g=arguments,h=g.length,i=c(h>1?g[1]:a,d),j=h>2?g[2]:a,l=j===a?d:c(j,d);l>i;)b[i++]=k;return b}},function(g,h,b){var c=b(3),f=b(28)(5),d="find",e=!0;d in[]&&Array(1)[d](function(){e=!1}),c(c.P+c.F*e,"Array",{find:function find(b){return f(this,b,arguments.length>1?arguments[1]:a)}}),b(118)(d)},function(g,h,b){var c=b(3),f=b(28)(6),d="findIndex",e=!0;d in[]&&Array(1)[d](function(){e=!1}),c(c.P+c.F*e,"Array",{findIndex:function findIndex(b){return f(this,b,arguments.length>1?arguments[1]:a)}}),b(118)(d)},function(n,m,c){var f=c(2),i=c(4),k=c(101),l=c(129),b=i.RegExp,d=b,j=b.prototype,e=/a/g,g=/a/g,h=new b(e)!==e;!c(8)||h&&!c(9)(function(){return g[c(31)("match")]=!1,b(e)!=e||b(g)==g||"/a/i"!=b(e,"i")})||(b=function RegExp(c,f){var e=k(c),g=f===a;return this instanceof b||!e||c.constructor!==b||!g?h?new d(e&&!g?c.source:c,f):d((e=c instanceof b)?c.source:c,e&&g?l.call(c):f):c},f.each.call(f.getNames(d),function(a){a in b||f.setDesc(b,a,{configurable:!0,get:function(){return d[a]},set:function(b){d[a]=b}})}),j.constructor=b,b.prototype=j,c(10)(i,"RegExp",b)),c(121)("RegExp")},function(a,d,b){var c=b(20);a.exports=function(){var b=c(this),a="";return b.global&&(a+="g"),b.ignoreCase&&(a+="i"),b.multiline&&(a+="m"),b.unicode&&(a+="u"),b.sticky&&(a+="y"),a}},function(c,d,a){var b=a(2);a(8)&&"g"!=/./g.flags&&b.setDesc(RegExp.prototype,"flags",{configurable:!0,get:a(129)})},function(c,d,b){b(132)("match",1,function(c,b){return function match(d){var e=c(this),f=d==a?a:d[b];return f!==a?f.call(d,e):new RegExp(d)[b](String(e))}})},function(b,h,a){var c=a(6),d=a(10),e=a(9),f=a(22),g=a(31);b.exports=function(a,i,j){var b=g(a),h=""[a];e(function(){var c={};return c[b]=function(){return 7},7!=""[a](c)})&&(d(String.prototype,a,j(f,b,h)),c(RegExp.prototype,b,2==i?function(a,b){return h.call(a,this,b)}:function(a){return h.call(a,this)}))}},function(c,d,b){b(132)("replace",2,function(b,c,d){return function replace(e,f){var g=b(this),h=e==a?a:e[c];return h!==a?h.call(e,g,f):d.call(String(g),e,f)}})},function(c,d,b){b(132)("search",1,function(c,b){return function search(d){var e=c(this),f=d==a?a:d[b];return f!==a?f.call(d,e):new RegExp(d)[b](String(e))}})},function(c,d,b){b(132)("split",2,function(b,c,d){return function split(e,f){var g=b(this),h=e==a?a:e[c];return h!==a?h.call(e,g,f):d.call(String(g),e,f)}})},function(K,J,b){var s,l=b(2),F=b(39),k=b(4),j=b(12),I=b(47),d=b(3),D=b(16),E=b(20),m=b(13),G=b(137),p=b(138),q=b(45).set,A=b(43),B=b(31)("species"),z=b(139),v=b(140),e="Promise",o=k.process,H="process"==I(o),c=k[e],i=function(){},r=function(d){var b,a=new c(i);return d&&(a.constructor=function(a){a(i,i)}),(b=c.resolve(a))["catch"](i),b===a},h=function(){function P2(b){var a=new c(b);return q(a,P2.prototype),a}var a=!1;try{if(a=c&&c.resolve&&r(),q(P2,c),P2.prototype=l.create(c.prototype,{constructor:{value:P2}}),P2.resolve(5).then(function(){})instanceof P2||(a=!1),
-a&&b(8)){var d=!1;c.resolve(l.setDesc({},"then",{get:function(){d=!0}})),a=d}}catch(e){a=!1}return a}(),C=function(a,b){return F&&a===c&&b===s?!0:A(a,b)},t=function(b){var c=E(b)[B];return c!=a?c:b},u=function(a){var b;return D(a)&&"function"==typeof(b=a.then)?b:!1},g=function(d){var b,c;this.promise=new d(function(d,e){if(b!==a||c!==a)throw TypeError("Bad Promise constructor");b=d,c=e}),this.resolve=m(b),this.reject=m(c)},w=function(a){try{a()}catch(b){return{error:b}}},n=function(b,d){if(!b.n){b.n=!0;var c=b.c;v(function(){for(var e=b.v,f=1==b.s,g=0,h=function(a){var c,h,g=f?a.ok:a.fail,i=a.resolve,d=a.reject;try{g?(f||(b.h=!0),c=g===!0?e:g(e),c===a.promise?d(TypeError("Promise-chain cycle")):(h=u(c))?h.call(c,i,d):i(c)):d(e)}catch(j){d(j)}};c.length>g;)h(c[g++]);c.length=0,b.n=!1,d&&setTimeout(function(){var f,c,d=b.p;y(d)&&(H?o.emit("unhandledRejection",e,d):(f=k.onunhandledrejection)?f({promise:d,reason:e}):(c=k.console)&&c.error&&c.error("Unhandled promise rejection",e)),b.a=a},1)})}},y=function(e){var a,b=e._d,c=b.a||b.c,d=0;if(b.h)return!1;for(;c.length>d;)if(a=c[d++],a.fail||!y(a.promise))return!1;return!0},f=function(b){var a=this;a.d||(a.d=!0,a=a.r||a,a.v=b,a.s=2,a.a=a.c.slice(),n(a,!0))},x=function(b){var c,a=this;if(!a.d){a.d=!0,a=a.r||a;try{if(a.p===b)throw TypeError("Promise can't be resolved itself");(c=u(b))?v(function(){var d={r:a,d:!1};try{c.call(b,j(x,d,1),j(f,d,1))}catch(e){f.call(d,e)}}):(a.v=b,a.s=1,n(a,!1))}catch(d){f.call({r:a,d:!1},d)}}};h||(c=function Promise(d){m(d);var b=this._d={p:G(this,c,e),c:[],a:a,s:0,d:!1,v:a,h:!1,n:!1};try{d(j(x,b,1),j(f,b,1))}catch(g){f.call(b,g)}},b(142)(c.prototype,{then:function then(d,e){var a=new g(z(this,c)),f=a.promise,b=this._d;return a.ok="function"==typeof d?d:!0,a.fail="function"==typeof e&&e,b.c.push(a),b.a&&b.a.push(a),b.s&&n(b,!1),f},"catch":function(b){return this.then(a,b)}})),d(d.G+d.W+d.F*!h,{Promise:c}),b(35)(c,e),b(121)(e),s=b(5)[e],d(d.S+d.F*!h,e,{reject:function reject(b){var a=new g(this),c=a.reject;return c(b),a.promise}}),d(d.S+d.F*(!h||r(!0)),e,{resolve:function resolve(a){if(a instanceof c&&C(a.constructor,this))return a;var b=new g(this),d=b.resolve;return d(a),b.promise}}),d(d.S+d.F*!(h&&b(115)(function(a){c.all(a)["catch"](function(){})})),e,{all:function all(h){var c=t(this),b=new g(c),d=b.resolve,e=b.reject,a=[],f=w(function(){p(h,!1,a.push,a);var b=a.length,f=Array(b);b?l.each.call(a,function(g,h){var a=!1;c.resolve(g).then(function(c){a||(a=!0,f[h]=c,--b||d(f))},e)}):d(f)});return f&&e(f.error),b.promise},race:function race(e){var b=t(this),a=new g(b),c=a.reject,d=w(function(){p(e,!1,function(d){b.resolve(d).then(a.resolve,c)})});return d&&c(d.error),a.promise}})},function(a,b){a.exports=function(a,b,c){if(!(a instanceof b))throw TypeError(c+": use the 'new' operator!");return a}},function(b,i,a){var c=a(12),d=a(112),e=a(113),f=a(20),g=a(27),h=a(114);b.exports=function(a,j,o,p){var n,b,k,l=h(a),m=c(o,p,j?2:1),i=0;if("function"!=typeof l)throw TypeError(a+" is not iterable!");if(e(l))for(n=g(a.length);n>i;i++)j?m(f(b=a[i])[0],b[1]):m(a[i]);else for(k=l.call(a);!(b=k.next()).done;)d(k,m,b.value,j)}},function(d,g,b){var c=b(20),e=b(13),f=b(31)("species");d.exports=function(g,h){var b,d=c(g).constructor;return d===a||(b=c(d)[f])==a?h:e(b)}},function(n,p,h){var b,f,g,c=h(4),o=h(141).set,k=c.MutationObserver||c.WebKitMutationObserver,d=c.process,i=c.Promise,j="process"==h(18)(d),e=function(){var e,c,g;for(j&&(e=d.domain)&&(d.domain=null,e.exit());b;)c=b.domain,g=b.fn,c&&c.enter(),g(),c&&c.exit(),b=b.next;f=a,e&&e.enter()};if(j)g=function(){d.nextTick(e)};else if(k){var m=1,l=document.createTextNode("");new k(e).observe(l,{characterData:!0}),g=function(){l.data=m=-m}}else g=i&&i.resolve?function(){i.resolve().then(e)}:function(){o.call(c,e)};n.exports=function asap(e){var c={fn:e,next:a,domain:j&&d.domain};f&&(f.next=c),b||(b=c,g()),f=c}},function(s,t,b){var c,g,f,k=b(12),r=b(19),n=b(14),p=b(15),a=b(4),l=a.process,h=a.setImmediate,i=a.clearImmediate,o=a.MessageChannel,j=0,d={},q="onreadystatechange",e=function(){var a=+this;if(d.hasOwnProperty(a)){var b=d[a];delete d[a],b()}},m=function(a){e.call(a.data)};h&&i||(h=function setImmediate(a){for(var b=[],e=1;arguments.length>e;)b.push(arguments[e++]);return d[++j]=function(){r("function"==typeof a?a:Function(a),b)},c(j),j},i=function clearImmediate(a){delete d[a]},"process"==b(18)(l)?c=function(a){l.nextTick(k(e,a,1))}:o?(g=new o,f=g.port2,g.port1.onmessage=m,c=k(f.postMessage,f,1)):a.addEventListener&&"function"==typeof postMessage&&!a.importScripts?(c=function(b){a.postMessage(b+"","*")},a.addEventListener("message",m,!1)):c=q in p("script")?function(a){n.appendChild(p("script"))[q]=function(){n.removeChild(this),e.call(a)}}:function(a){setTimeout(k(e,a,1),0)}),s.exports={set:h,clear:i}},function(a,d,b){var c=b(10);a.exports=function(a,b){for(var d in b)c(a,d,b[d]);return a}},function(d,e,c){var b=c(144);c(145)("Map",function(b){return function Map(){return b(this,arguments.length>0?arguments[0]:a)}},{get:function get(c){var a=b.getEntry(this,c);return a&&a.v},set:function set(a,c){return b.def(this,0===a?0:a,c)}},b,!0)},function(v,w,b){var j=b(2),m=b(6),o=b(142),n=b(12),p=b(137),r=b(22),t=b(138),l=b(108),d=b(119),f=b(11)("id"),k=b(17),h=b(16),q=b(121),i=b(8),s=Object.isExtensible||h,c=i?"_s":"size",u=0,g=function(a,b){if(!h(a))return"symbol"==typeof a?a:("string"==typeof a?"S":"P")+a;if(!k(a,f)){if(!s(a))return"F";if(!b)return"E";m(a,f,++u)}return"O"+a[f]},e=function(b,c){var a,d=g(c);if("F"!==d)return b._i[d];for(a=b._f;a;a=a.n)if(a.k==c)return a};v.exports={getConstructor:function(d,f,g,h){var b=d(function(d,e){p(d,b,f),d._i=j.create(null),d._f=a,d._l=a,d[c]=0,e!=a&&t(e,g,d[h],d)});return o(b.prototype,{clear:function clear(){for(var d=this,e=d._i,b=d._f;b;b=b.n)b.r=!0,b.p&&(b.p=b.p.n=a),delete e[b.i];d._f=d._l=a,d[c]=0},"delete":function(g){var b=this,a=e(b,g);if(a){var d=a.n,f=a.p;delete b._i[a.i],a.r=!0,f&&(f.n=d),d&&(d.p=f),b._f==a&&(b._f=d),b._l==a&&(b._l=f),b[c]--}return!!a},forEach:function forEach(c){for(var b,d=n(c,arguments.length>1?arguments[1]:a,3);b=b?b.n:this._f;)for(d(b.v,b.k,this);b&&b.r;)b=b.p},has:function has(a){return!!e(this,a)}}),i&&j.setDesc(b.prototype,"size",{get:function(){return r(this[c])}}),b},def:function(b,f,j){var h,i,d=e(b,f);return d?d.v=j:(b._l=d={i:i=g(f,!0),k:f,v:j,p:h=b._l,n:a,r:!1},b._f||(b._f=d),h&&(h.n=d),b[c]++,"F"!==i&&(b._i[i]=d)),b},getEntry:e,setStrong:function(e,b,c){l(e,b,function(b,c){this._t=b,this._k=c,this._l=a},function(){for(var c=this,e=c._k,b=c._l;b&&b.r;)b=b.p;return c._t&&(c._l=b=b?b.n:c._t._f)?"keys"==e?d(0,b.k):"values"==e?d(0,b.v):d(0,[b.k,b.v]):(c._t=a,d(1))},c?"entries":"values",!c,!0),q(b)}}},function(l,n,b){var k=b(4),c=b(3),g=b(10),f=b(142),i=b(138),j=b(137),d=b(16),e=b(9),h=b(115),m=b(35);l.exports=function(o,v,y,x,p,l){var t=k[o],b=t,s=p?"set":"add",n=b&&b.prototype,w={},r=function(b){var c=n[b];g(n,b,"delete"==b?function(a){return l&&!d(a)?!1:c.call(this,0===a?0:a)}:"has"==b?function has(a){return l&&!d(a)?!1:c.call(this,0===a?0:a)}:"get"==b?function get(b){return l&&!d(b)?a:c.call(this,0===b?0:b)}:"add"==b?function add(a){return c.call(this,0===a?0:a),this}:function set(a,b){return c.call(this,0===a?0:a,b),this})};if("function"==typeof b&&(l||n.forEach&&!e(function(){(new b).entries().next()}))){var u,q=new b,z=q[s](l?{}:-0,1)!=q,A=e(function(){q.has(1)}),B=h(function(a){new b(a)});B||(b=v(function(e,d){j(e,b,o);var c=new t;return d!=a&&i(d,p,c[s],c),c}),b.prototype=n,n.constructor=b),l||q.forEach(function(b,a){u=1/a===-(1/0)}),(A||u)&&(r("delete"),r("has"),p&&r("get")),(u||z)&&r(s),l&&n.clear&&delete n.clear}else b=x.getConstructor(v,o,p,s),f(b.prototype,y);return m(b,o),w[o]=b,c(c.G+c.W+c.F*(b!=t),w),l||x.setStrong(b,o,p),b}},function(d,e,b){var c=b(144);b(145)("Set",function(b){return function Set(){return b(this,arguments.length>0?arguments[0]:a)}},{add:function add(a){return c.def(this,a=0===a?0:a,a)}},c)},function(n,m,b){var l=b(2),k=b(10),c=b(148),d=b(16),j=b(17),i=c.frozenStore,h=c.WEAK,f=Object.isExtensible||d,e={},g=b(145)("WeakMap",function(b){return function WeakMap(){return b(this,arguments.length>0?arguments[0]:a)}},{get:function get(a){if(d(a)){if(!f(a))return i(this).get(a);if(j(a,h))return a[h][this._i]}},set:function set(a,b){return c.def(this,a,b)}},c,!0,!0);7!=(new g).set((Object.freeze||Object)(e),7).get(e)&&l.each.call(["delete","has","get","set"],function(a){var b=g.prototype,c=b[a];k(b,a,function(b,e){if(d(b)&&!f(b)){var g=i(this)[a](b,e);return"set"==a?this:g}return c.call(this,b,e)})})},function(s,t,b){var r=b(6),q=b(142),m=b(20),h=b(16),l=b(137),k=b(138),j=b(28),d=b(17),c=b(11)("weak"),g=Object.isExtensible||h,n=j(5),o=j(6),p=0,e=function(a){return a._l||(a._l=new i)},i=function(){this.a=[]},f=function(a,b){return n(a.a,function(a){return a[0]===b})};i.prototype={get:function(b){var a=f(this,b);return a?a[1]:void 0},has:function(a){return!!f(this,a)},set:function(a,b){var c=f(this,a);c?c[1]=b:this.a.push([a,b])},"delete":function(b){var a=o(this.a,function(a){return a[0]===b});return~a&&this.a.splice(a,1),!!~a}},s.exports={getConstructor:function(f,i,j,m){var b=f(function(c,d){l(c,b,i),c._i=p++,c._l=a,d!=a&&k(d,j,c[m],c)});return q(b.prototype,{"delete":function(a){return h(a)?g(a)?d(a,c)&&d(a[c],this._i)&&delete a[c][this._i]:e(this)["delete"](a):!1},has:function has(a){return h(a)?g(a)?d(a,c)&&d(a[c],this._i):e(this).has(a):!1}}),b},def:function(b,a,f){return g(m(a))?(d(a,c)||r(a,c,{}),a[c][b._i]=f):e(b).set(a,f),b},frozenStore:e,WEAK:c}},function(d,e,b){var c=b(148);b(145)("WeakSet",function(b){return function WeakSet(){return b(this,arguments.length>0?arguments[0]:a)}},{add:function add(a){return c.def(this,a,!0)}},c,!1,!0)},function(e,f,a){var b=a(3),c=Function.apply,d=a(20);b(b.S,"Reflect",{apply:function apply(a,b,e){return c.call(a,b,d(e))}})},function(h,i,a){var e=a(2),b=a(3),c=a(13),f=a(20),d=a(16),g=Function.bind||a(5).Function.prototype.bind;b(b.S+b.F*a(9)(function(){function F(){}return!(Reflect.construct(function(){},[],F)instanceof F)}),"Reflect",{construct:function construct(b,a){c(b),f(a);var i=arguments.length<3?b:c(arguments[2]);if(b==i){switch(a.length){case 0:return new b;case 1:return new b(a[0]);case 2:return new b(a[0],a[1]);case 3:return new b(a[0],a[1],a[2]);case 4:return new b(a[0],a[1],a[2],a[3])}var h=[null];return h.push.apply(h,a),new(g.apply(b,h))}var j=i.prototype,k=e.create(d(j)?j:Object.prototype),l=Function.apply.call(b,k,a);return d(l)?l:k}})},function(e,f,a){var c=a(2),b=a(3),d=a(20);b(b.S+b.F*a(9)(function(){Reflect.defineProperty(c.setDesc({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function defineProperty(a,b,e){d(a);try{return c.setDesc(a,b,e),!0}catch(f){return!1}}})},function(e,f,a){var b=a(3),c=a(2).getDesc,d=a(20);b(b.S,"Reflect",{deleteProperty:function deleteProperty(a,b){var e=c(d(a),b);return e&&!e.configurable?!1:delete a[b]}})},function(f,g,b){var c=b(3),e=b(20),d=function(a){this._t=e(a),this._i=0;var b,c=this._k=[];for(b in a)c.push(b)};b(110)(d,"Object",function(){var c,b=this,d=b._k;do if(b._i>=d.length)return{value:a,done:!0};while(!((c=d[b._i++])in b._t));return{value:c,done:!1}}),c(c.S,"Reflect",{enumerate:function enumerate(a){return new d(a)}})},function(h,i,b){function get(b,h){var d,j,i=arguments.length<3?b:arguments[2];return g(b)===i?b[h]:(d=c.getDesc(b,h))?e(d,"value")?d.value:d.get!==a?d.get.call(i):a:f(j=c.getProto(b))?get(j,h,i):void 0}var c=b(2),e=b(17),d=b(3),f=b(16),g=b(20);d(d.S,"Reflect",{get:get})},function(e,f,a){var c=a(2),b=a(3),d=a(20);b(b.S,"Reflect",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(a,b){return c.getDesc(d(a),b)}})},function(e,f,a){var b=a(3),c=a(2).getProto,d=a(20);b(b.S,"Reflect",{getPrototypeOf:function getPrototypeOf(a){return c(d(a))}})},function(c,d,b){var a=b(3);a(a.S,"Reflect",{has:function has(a,b){return b in a}})},function(e,f,a){var b=a(3),d=a(20),c=Object.isExtensible;b(b.S,"Reflect",{isExtensible:function isExtensible(a){return d(a),c?c(a):!0}})},function(c,d,a){var b=a(3);b(b.S,"Reflect",{ownKeys:a(161)})},function(d,f,a){var b=a(2),e=a(20),c=a(4).Reflect;d.exports=c&&c.ownKeys||function ownKeys(a){var c=b.getNames(e(a)),d=b.getSymbols;return d?c.concat(d(a)):c}},function(e,f,a){var b=a(3),d=a(20),c=Object.preventExtensions;b(b.S,"Reflect",{preventExtensions:function preventExtensions(a){d(a);try{return c&&c(a),!0}catch(b){return!1}}})},function(i,j,b){function set(j,i,k){var l,m,d=arguments.length<4?j:arguments[3],b=c.getDesc(h(j),i);if(!b){if(f(m=c.getProto(j)))return set(m,i,k,d);b=e(0)}return g(b,"value")?b.writable!==!1&&f(d)?(l=c.getDesc(d,i)||e(0),l.value=k,c.setDesc(d,i,l),!0):!1:b.set===a?!1:(b.set.call(d,k),!0)}var c=b(2),g=b(17),d=b(3),e=b(7),h=b(20),f=b(16);d(d.S,"Reflect",{set:set})},function(d,e,b){var c=b(3),a=b(45);a&&c(c.S,"Reflect",{setPrototypeOf:function setPrototypeOf(b,c){a.check(b,c);try{return a.set(b,c),!0}catch(d){return!1}}})},function(e,f,b){var c=b(3),d=b(33)(!0);c(c.P,"Array",{includes:function includes(b){return d(this,b,arguments.length>1?arguments[1]:a)}}),b(118)("includes")},function(d,e,a){var b=a(3),c=a(98)(!0);b(b.P,"String",{at:function at(a){return c(this,a)}})},function(e,f,b){var c=b(3),d=b(168);c(c.P,"String",{padLeft:function padLeft(b){return d(this,b,arguments.length>1?arguments[1]:a,!0)}})},function(c,g,b){var d=b(27),e=b(105),f=b(22);c.exports=function(l,m,i,n){var c=String(f(l)),j=c.length,g=i===a?" ":String(i),k=d(m);if(j>=k)return c;""==g&&(g=" ");var h=k-j,b=e.call(g,Math.ceil(h/g.length));return b.length>h&&(b=b.slice(0,h)),n?b+c:c+b}},function(e,f,b){var c=b(3),d=b(168);c(c.P,"String",{padRight:function padRight(b){return d(this,b,arguments.length>1?arguments[1]:a,!1)}})},function(b,c,a){a(63)("trimLeft",function(a){return function trimLeft(){return a(this,1)}})},function(b,c,a){a(63)("trimRight",function(a){return function trimRight(){return a(this,2)}})},function(d,e,a){var b=a(3),c=a(173)(/[\\^$*+?.()|[\]{}]/g,"\\$&");b(b.S,"RegExp",{escape:function escape(a){return c(a)}})},function(a,b){a.exports=function(b,a){var c=a===Object(a)?function(b){return a[b]}:a;return function(a){return String(a).replace(b,c)}}},function(g,h,a){var b=a(2),c=a(3),d=a(161),e=a(23),f=a(7);c(c.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(k){for(var a,g,h=e(k),l=b.setDesc,m=b.getDesc,i=d(h),c={},j=0;i.length>j;)g=m(h,a=i[j++]),a in c?l(c,a,f(0,g)):c[a]=g;return c}})},function(d,e,a){var b=a(3),c=a(176)(!1);b(b.S,"Object",{values:function values(a){return c(a)}})},function(c,f,a){var b=a(2),d=a(23),e=b.isEnum;c.exports=function(a){return function(j){for(var c,f=d(j),g=b.getKeys(f),k=g.length,h=0,i=[];k>h;)e.call(f,c=g[h++])&&i.push(a?[c,f[c]]:f[c]);return i}}},function(d,e,a){var b=a(3),c=a(176)(!0);b(b.S,"Object",{entries:function entries(a){return c(a)}})},function(c,d,a){var b=a(3);b(b.P,"Map",{toJSON:a(179)("Map")})},function(b,e,a){var c=a(138),d=a(47);b.exports=function(a){return function toJSON(){if(d(this)!=a)throw TypeError(a+"#toJSON isn't generic");var b=[];return c(this,!1,b.push,b),b}}},function(c,d,a){var b=a(3);b(b.P,"Set",{toJSON:a(179)("Set")})},function(d,e,b){var a=b(3),c=b(141);a(a.G+a.B,{setImmediate:c.set,clearImmediate:c.clear})},function(l,k,a){a(117);var g=a(4),j=a(6),c=a(109),b=a(31)("iterator"),h=g.NodeList,i=g.HTMLCollection,e=h&&h.prototype,d=i&&i.prototype,f=c.NodeList=c.HTMLCollection=c.Array;e&&!e[b]&&j(e,b,f),d&&!d[b]&&j(d,b,f)},function(i,j,a){var c=a(4),b=a(3),g=a(19),h=a(184),d=c.navigator,e=!!d&&/MSIE .\./.test(d.userAgent),f=function(a){return e?function(b,c){return a(g(h,[].slice.call(arguments,2),"function"==typeof b?b:Function(b)),c)}:a};b(b.G+b.B+b.F*e,{setTimeout:f(c.setTimeout),setInterval:f(c.setInterval)})},function(c,f,a){var d=a(185),b=a(19),e=a(13);c.exports=function(){for(var h=e(this),a=arguments.length,c=Array(a),f=0,i=d._,g=!1;a>f;)(c[f]=arguments[f++])===i&&(g=!0);return function(){var d,k=this,f=arguments,l=f.length,e=0,j=0;if(!g&&!l)return b(h,c,k);if(d=c.slice(),g)for(;a>e;e++)d[e]===i&&(d[e]=f[j++]);for(;l>j;)d.push(f[j++]);return b(h,d,k)}}},function(a,c,b){a.exports=b(4)},function(i,j,b){var g=b(2),e=b(3),h=b(12),f=b(5).Array||Array,c={},d=function(d,b){g.each.call(d.split(","),function(d){b==a&&d in f?c[d]=f[d]:d in[]&&(c[d]=h(Function.call,[][d],b))})};d("pop,reverse,shift,keys,values,entries",1),d("indexOf,every,some,forEach,map,filter,find,findIndex,includes",3),d("join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill"),e(e.S,"Array",c)}]),"undefined"!=typeof module&&module.exports?module.exports=b:"function"==typeof define&&define.amd?define(function(){return b}):c.core=b}(1,1);
+!function(a,b,c){"use strict";!function(a){function __webpack_require__(c){if(b[c])return b[c].exports;var d=b[c]={exports:{},id:c,loaded:!1};return a[c].call(d.exports,d,d.exports,__webpack_require__),d.loaded=!0,d.exports}var b={};return __webpack_require__.m=a,__webpack_require__.c=b,__webpack_require__.p="",__webpack_require__(0)}([function(a,b,c){c(1),c(50),c(51),c(52),c(54),c(55),c(58),c(59),c(60),c(61),c(62),c(63),c(64),c(65),c(66),c(68),c(70),c(72),c(74),c(77),c(78),c(79),c(83),c(86),c(87),c(88),c(89),c(91),c(92),c(93),c(94),c(95),c(97),c(99),c(100),c(101),c(103),c(104),c(105),c(107),c(108),c(109),c(111),c(112),c(113),c(114),c(115),c(116),c(117),c(118),c(119),c(120),c(121),c(122),c(123),c(124),c(126),c(130),c(131),c(132),c(133),c(137),c(139),c(140),c(141),c(142),c(143),c(144),c(145),c(146),c(147),c(148),c(149),c(150),c(151),c(152),c(158),c(159),c(161),c(162),c(163),c(167),c(168),c(169),c(170),c(171),c(173),c(174),c(175),c(176),c(179),c(181),c(182),c(183),c(185),c(187),c(189),c(190),c(191),c(193),c(194),c(195),c(196),c(203),c(206),c(207),c(209),c(210),c(211),c(212),c(213),c(214),c(215),c(216),c(217),c(218),c(219),c(220),c(222),c(223),c(224),c(225),c(226),c(227),c(228),c(229),c(231),c(234),c(235),c(237),c(238),c(239),c(240),c(241),c(242),c(243),c(244),c(245),c(246),c(247),c(249),c(250),c(251),c(252),c(253),c(254),c(255),c(256),c(258),c(259),c(261),c(262),c(263),c(264),c(267),c(268),c(269),c(270),c(271),c(272),c(273),c(274),c(276),c(277),c(278),c(279),c(280),c(281),c(282),c(283),c(284),c(285),c(286),c(287),a.exports=c(288)},function(a,b,d){var e=d(2),f=d(3),g=d(4),h=d(6),i=d(16),j=d(20).KEY,k=d(5),l=d(21),m=d(22),n=d(17),o=d(23),p=d(24),q=d(25),r=d(27),s=d(40),t=d(43),u=d(10),v=d(30),w=d(14),x=d(15),y=d(44),z=d(47),A=d(49),B=d(9),C=d(28),D=A.f,E=B.f,F=z.f,G=e.Symbol,H=e.JSON,I=H&&H.stringify,J="prototype",K=o("_hidden"),L=o("toPrimitive"),M={}.propertyIsEnumerable,N=l("symbol-registry"),O=l("symbols"),P=l("op-symbols"),Q=Object[J],R="function"==typeof G,S=e.QObject,T=!S||!S[J]||!S[J].findChild,U=g&&k(function(){return 7!=y(E({},"a",{get:function(){return E(this,"a",{value:7}).a}})).a})?function(a,b,c){var d=D(Q,b);d&&delete Q[b],E(a,b,c),d&&a!==Q&&E(Q,b,d)}:E,V=function(a){var b=O[a]=y(G[J]);return b._k=a,b},W=R&&"symbol"==typeof G.iterator?function(a){return"symbol"==typeof a}:function(a){return a instanceof G},X=function defineProperty(a,b,c){return a===Q&&X(P,b,c),u(a),b=w(b,!0),u(c),f(O,b)?(c.enumerable?(f(a,K)&&a[K][b]&&(a[K][b]=!1),c=y(c,{enumerable:x(0,!1)})):(f(a,K)||E(a,K,x(1,{})),a[K][b]=!0),U(a,b,c)):E(a,b,c)},Y=function defineProperties(a,b){u(a);for(var c,d=s(b=v(b)),e=0,f=d.length;f>e;)X(a,c=d[e++],b[c]);return a},Z=function create(a,b){return b===c?y(a):Y(y(a),b)},$=function propertyIsEnumerable(a){var b=M.call(this,a=w(a,!0));return!(this===Q&&f(O,a)&&!f(P,a))&&(!(b||!f(this,a)||!f(O,a)||f(this,K)&&this[K][a])||b)},_=function getOwnPropertyDescriptor(a,b){if(a=v(a),b=w(b,!0),a!==Q||!f(O,b)||f(P,b)){var c=D(a,b);return!c||!f(O,b)||f(a,K)&&a[K][b]||(c.enumerable=!0),c}},aa=function getOwnPropertyNames(a){for(var b,c=F(v(a)),d=[],e=0;c.length>e;)f(O,b=c[e++])||b==K||b==j||d.push(b);return d},ba=function getOwnPropertySymbols(a){for(var b,c=a===Q,d=F(c?P:v(a)),e=[],g=0;d.length>g;)!f(O,b=d[g++])||c&&!f(Q,b)||e.push(O[b]);return e};R||(G=function Symbol(){if(this instanceof G)throw TypeError("Symbol is not a constructor!");var a=n(arguments.length>0?arguments[0]:c),b=function(c){this===Q&&b.call(P,c),f(this,K)&&f(this[K],a)&&(this[K][a]=!1),U(this,a,x(1,c))};return g&&T&&U(Q,a,{configurable:!0,set:b}),V(a)},i(G[J],"toString",function toString(){return this._k}),A.f=_,B.f=X,d(48).f=z.f=aa,d(42).f=$,d(41).f=ba,g&&!d(26)&&i(Q,"propertyIsEnumerable",$,!0),p.f=function(a){return V(o(a))}),h(h.G+h.W+h.F*!R,{Symbol:G});for(var ca="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),da=0;ca.length>da;)o(ca[da++]);for(var ca=C(o.store),da=0;ca.length>da;)q(ca[da++]);h(h.S+h.F*!R,"Symbol",{"for":function(a){return f(N,a+="")?N[a]:N[a]=G(a)},keyFor:function keyFor(a){if(W(a))return r(N,a);throw TypeError(a+" is not a symbol!")},useSetter:function(){T=!0},useSimple:function(){T=!1}}),h(h.S+h.F*!R,"Object",{create:Z,defineProperty:X,defineProperties:Y,getOwnPropertyDescriptor:_,getOwnPropertyNames:aa,getOwnPropertySymbols:ba}),H&&h(h.S+h.F*(!R||k(function(){var a=G();return"[null]"!=I([a])||"{}"!=I({a:a})||"{}"!=I(Object(a))})),"JSON",{stringify:function stringify(a){if(a!==c&&!W(a)){for(var b,d,e=[a],f=1;arguments.length>f;)e.push(arguments[f++]);return b=e[1],"function"==typeof b&&(d=b),!d&&t(b)||(b=function(a,b){if(d&&(b=d.call(this,a,b)),!W(b))return b}),e[1]=b,I.apply(H,e)}}}),G[J][L]||d(8)(G[J],L,G[J].valueOf),m(G,"Symbol"),m(Math,"Math",!0),m(e.JSON,"JSON",!0)},function(a,c){var d=a.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof b&&(b=d)},function(a,b){var c={}.hasOwnProperty;a.exports=function(a,b){return c.call(a,b)}},function(a,b,c){a.exports=!c(5)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b){a.exports=function(a){try{return!!a()}catch(b){return!0}}},function(a,b,d){var e=d(2),f=d(7),g=d(8),h=d(16),i=d(18),j="prototype",k=function(a,b,d){var l,m,n,o,p=a&k.F,q=a&k.G,r=a&k.S,s=a&k.P,t=a&k.B,u=q?e:r?e[b]||(e[b]={}):(e[b]||{})[j],v=q?f:f[b]||(f[b]={}),w=v[j]||(v[j]={});q&&(d=b);for(l in d)m=!p&&u&&u[l]!==c,n=(m?u:d)[l],o=t&&m?i(n,e):s&&"function"==typeof n?i(Function.call,n):n,u&&h(u,l,n,a&k.U),v[l]!=n&&g(v,l,o),s&&w[l]!=n&&(w[l]=n)};e.core=f,k.F=1,k.G=2,k.S=4,k.P=8,k.B=16,k.W=32,k.U=64,k.R=128,a.exports=k},function(b,c){var d=b.exports={version:"2.4.0"};"number"==typeof a&&(a=d)},function(a,b,c){var d=c(9),e=c(15);a.exports=c(4)?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},function(a,b,c){var d=c(10),e=c(12),f=c(14),g=Object.defineProperty;b.f=c(4)?Object.defineProperty:function defineProperty(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(h){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(a[b]=c.value),a}},function(a,b,c){var d=c(11);a.exports=function(a){if(!d(a))throw TypeError(a+" is not an object!");return a}},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,b,c){a.exports=!c(4)&&!c(5)(function(){return 7!=Object.defineProperty(c(13)("div"),"a",{get:function(){return 7}}).a})},function(a,b,c){var d=c(11),e=c(2).document,f=d(e)&&d(e.createElement);a.exports=function(a){return f?e.createElement(a):{}}},function(a,b,c){var d=c(11);a.exports=function(a,b){if(!d(a))return a;var c,e;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;if("function"==typeof(c=a.valueOf)&&!d(e=c.call(a)))return e;if(!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,b,c){var d=c(2),e=c(8),f=c(3),g=c(17)("src"),h="toString",i=Function[h],j=(""+i).split(h);c(7).inspectSource=function(a){return i.call(a)},(a.exports=function(a,b,c,h){var i="function"==typeof c;i&&(f(c,"name")||e(c,"name",b)),a[b]!==c&&(i&&(f(c,g)||e(c,g,a[b]?""+a[b]:j.join(String(b)))),a===d?a[b]=c:h?a[b]?a[b]=c:e(a,b,c):(delete a[b],e(a,b,c)))})(Function.prototype,h,function toString(){return"function"==typeof this&&this[g]||i.call(this)})},function(a,b){var d=0,e=Math.random();a.exports=function(a){return"Symbol(".concat(a===c?"":a,")_",(++d+e).toString(36))}},function(a,b,d){var e=d(19);a.exports=function(a,b,d){if(e(a),b===c)return a;switch(d){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,b,c){var d=c(17)("meta"),e=c(11),f=c(3),g=c(9).f,h=0,i=Object.isExtensible||function(){return!0},j=!c(5)(function(){return i(Object.preventExtensions({}))}),k=function(a){g(a,d,{value:{i:"O"+ ++h,w:{}}})},l=function(a,b){if(!e(a))return"symbol"==typeof a?a:("string"==typeof a?"S":"P")+a;if(!f(a,d)){if(!i(a))return"F";if(!b)return"E";k(a)}return a[d].i},m=function(a,b){if(!f(a,d)){if(!i(a))return!0;if(!b)return!1;k(a)}return a[d].w},n=function(a){return j&&o.NEED&&i(a)&&!f(a,d)&&k(a),a},o=a.exports={KEY:d,NEED:!1,fastKey:l,getWeak:m,onFreeze:n}},function(a,b,c){var d=c(2),e="__core-js_shared__",f=d[e]||(d[e]={});a.exports=function(a){return f[a]||(f[a]={})}},function(a,b,c){var d=c(9).f,e=c(3),f=c(23)("toStringTag");a.exports=function(a,b,c){a&&!e(a=c?a:a.prototype,f)&&d(a,f,{configurable:!0,value:b})}},function(a,b,c){var d=c(21)("wks"),e=c(17),f=c(2).Symbol,g="function"==typeof f,h=a.exports=function(a){return d[a]||(d[a]=g&&f[a]||(g?f:e)("Symbol."+a))};h.store=d},function(a,b,c){b.f=c(23)},function(a,b,c){var d=c(2),e=c(7),f=c(26),g=c(24),h=c(9).f;a.exports=function(a){var b=e.Symbol||(e.Symbol=f?{}:d.Symbol||{});"_"==a.charAt(0)||a in b||h(b,a,{value:g.f(a)})}},function(a,b){a.exports=!1},function(a,b,c){var d=c(28),e=c(30);a.exports=function(a,b){for(var c,f=e(a),g=d(f),h=g.length,i=0;h>i;)if(f[c=g[i++]]===b)return c}},function(a,b,c){var d=c(29),e=c(39);a.exports=Object.keys||function keys(a){return d(a,e)}},function(a,b,c){var d=c(3),e=c(30),f=c(34)(!1),g=c(38)("IE_PROTO");a.exports=function(a,b){var c,h=e(a),i=0,j=[];for(c in h)c!=g&&d(h,c)&&j.push(c);for(;b.length>i;)d(h,c=b[i++])&&(~f(j,c)||j.push(c));return j}},function(a,b,c){var d=c(31),e=c(33);a.exports=function(a){return d(e(a))}},function(a,b,c){var d=c(32);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return"String"==d(a)?a.split(""):Object(a)}},function(a,b){var c={}.toString;a.exports=function(a){return c.call(a).slice(8,-1)}},function(a,b){a.exports=function(a){if(a==c)throw TypeError("Can't call method on "+a);return a}},function(a,b,c){var d=c(30),e=c(35),f=c(37);a.exports=function(a){return function(b,c,g){var h,i=d(b),j=e(i.length),k=f(g,j);if(a&&c!=c){for(;j>k;)if(h=i[k++],h!=h)return!0}else for(;j>k;k++)if((a||k in i)&&i[k]===c)return a||k||0;return!a&&-1}}},function(a,b,c){var d=c(36),e=Math.min;a.exports=function(a){return a>0?e(d(a),9007199254740991):0}},function(a,b){var c=Math.ceil,d=Math.floor;a.exports=function(a){return isNaN(a=+a)?0:(a>0?d:c)(a)}},function(a,b,c){var d=c(36),e=Math.max,f=Math.min;a.exports=function(a,b){return a=d(a),a<0?e(a+b,0):f(a,b)}},function(a,b,c){var d=c(21)("keys"),e=c(17);a.exports=function(a){return d[a]||(d[a]=e(a))}},function(a,b){a.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(a,b,c){var d=c(28),e=c(41),f=c(42);a.exports=function(a){var b=d(a),c=e.f;if(c)for(var g,h=c(a),i=f.f,j=0;h.length>j;)i.call(a,g=h[j++])&&b.push(g);return b}},function(a,b){b.f=Object.getOwnPropertySymbols},function(a,b){b.f={}.propertyIsEnumerable},function(a,b,c){var d=c(32);a.exports=Array.isArray||function isArray(a){return"Array"==d(a)}},function(a,b,d){var e=d(10),f=d(45),g=d(39),h=d(38)("IE_PROTO"),i=function(){},j="prototype",k=function(){var a,b=d(13)("iframe"),c=g.length,e="<",f=">";for(b.style.display="none",d(46).appendChild(b),b.src="javascript:",a=b.contentWindow.document,a.open(),a.write(e+"script"+f+"document.F=Object"+e+"/script"+f),a.close(),k=a.F;c--;)delete k[j][g[c]];return k()};a.exports=Object.create||function create(a,b){var d;return null!==a?(i[j]=e(a),d=new i,i[j]=null,d[h]=a):d=k(),b===c?d:f(d,b)}},function(a,b,c){var d=c(9),e=c(10),f=c(28);a.exports=c(4)?Object.defineProperties:function defineProperties(a,b){e(a);for(var c,g=f(b),h=g.length,i=0;h>i;)d.f(a,c=g[i++],b[c]);return a}},function(a,b,c){a.exports=c(2).document&&document.documentElement},function(a,b,c){var d=c(30),e=c(48).f,f={}.toString,g="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],h=function(a){try{return e(a)}catch(b){return g.slice()}};a.exports.f=function getOwnPropertyNames(a){return g&&"[object Window]"==f.call(a)?h(a):e(d(a))}},function(a,b,c){var d=c(29),e=c(39).concat("length","prototype");b.f=Object.getOwnPropertyNames||function getOwnPropertyNames(a){return d(a,e)}},function(a,b,c){var d=c(42),e=c(15),f=c(30),g=c(14),h=c(3),i=c(12),j=Object.getOwnPropertyDescriptor;b.f=c(4)?j:function getOwnPropertyDescriptor(a,b){if(a=f(a),b=g(b,!0),i)try{return j(a,b)}catch(c){}if(h(a,b))return e(!d.f.call(a,b),a[b])}},function(a,b,c){var d=c(6);d(d.S+d.F*!c(4),"Object",{defineProperty:c(9).f})},function(a,b,c){var d=c(6);d(d.S+d.F*!c(4),"Object",{defineProperties:c(45)})},function(a,b,c){var d=c(30),e=c(49).f;c(53)("getOwnPropertyDescriptor",function(){return function getOwnPropertyDescriptor(a,b){return e(d(a),b)}})},function(a,b,c){var d=c(6),e=c(7),f=c(5);a.exports=function(a,b){var c=(e.Object||{})[a]||Object[a],g={};g[a]=b(c),d(d.S+d.F*f(function(){c(1)}),"Object",g)}},function(a,b,c){var d=c(6);d(d.S,"Object",{create:c(44)})},function(a,b,c){var d=c(56),e=c(57);c(53)("getPrototypeOf",function(){return function getPrototypeOf(a){return e(d(a))}})},function(a,b,c){var d=c(33);a.exports=function(a){return Object(d(a))}},function(a,b,c){var d=c(3),e=c(56),f=c(38)("IE_PROTO"),g=Object.prototype;a.exports=Object.getPrototypeOf||function(a){return a=e(a),d(a,f)?a[f]:"function"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?g:null}},function(a,b,c){var d=c(56),e=c(28);c(53)("keys",function(){return function keys(a){return e(d(a))}})},function(a,b,c){c(53)("getOwnPropertyNames",function(){return c(47).f})},function(a,b,c){var d=c(11),e=c(20).onFreeze;c(53)("freeze",function(a){return function freeze(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(11),e=c(20).onFreeze;c(53)("seal",function(a){return function seal(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(11),e=c(20).onFreeze;c(53)("preventExtensions",function(a){return function preventExtensions(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(11);c(53)("isFrozen",function(a){return function isFrozen(b){return!d(b)||!!a&&a(b)}})},function(a,b,c){var d=c(11);c(53)("isSealed",function(a){return function isSealed(b){return!d(b)||!!a&&a(b)}})},function(a,b,c){var d=c(11);c(53)("isExtensible",function(a){return function isExtensible(b){return!!d(b)&&(!a||a(b))}})},function(a,b,c){var d=c(6);d(d.S+d.F,"Object",{assign:c(67)})},function(a,b,c){var d=c(28),e=c(41),f=c(42),g=c(56),h=c(31),i=Object.assign;a.exports=!i||c(5)(function(){var a={},b={},c=Symbol(),d="abcdefghijklmnopqrst";return a[c]=7,d.split("").forEach(function(a){b[a]=a}),7!=i({},a)[c]||Object.keys(i({},b)).join("")!=d})?function assign(a,b){for(var c=g(a),i=arguments.length,j=1,k=e.f,l=f.f;i>j;)for(var m,n=h(arguments[j++]),o=k?d(n).concat(k(n)):d(n),p=o.length,q=0;p>q;)l.call(n,m=o[q++])&&(c[m]=n[m]);return c}:i},function(a,b,c){var d=c(6);d(d.S,"Object",{is:c(69)})},function(a,b){a.exports=Object.is||function is(a,b){return a===b?0!==a||1/a===1/b:a!=a&&b!=b}},function(a,b,c){var d=c(6);d(d.S,"Object",{setPrototypeOf:c(71).set})},function(a,b,d){var e=d(11),f=d(10),g=function(a,b){if(f(a),!e(b)&&null!==b)throw TypeError(b+": can't set as prototype!")};a.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(a,b,c){try{c=d(18)(Function.call,d(49).f(Object.prototype,"__proto__").set,2),c(a,[]),b=!(a instanceof Array)}catch(e){b=!0}return function setPrototypeOf(a,d){return g(a,d),b?a.__proto__=d:c(a,d),a}}({},!1):c),check:g}},function(a,b,c){var d=c(73),e={};e[c(23)("toStringTag")]="z",e+""!="[object z]"&&c(16)(Object.prototype,"toString",function toString(){return"[object "+d(this)+"]"},!0)},function(a,b,d){var e=d(32),f=d(23)("toStringTag"),g="Arguments"==e(function(){return arguments}()),h=function(a,b){try{return a[b]}catch(c){}};a.exports=function(a){var b,d,i;return a===c?"Undefined":null===a?"Null":"string"==typeof(d=h(b=Object(a),f))?d:g?e(b):"Object"==(i=e(b))&&"function"==typeof b.callee?"Arguments":i}},function(a,b,c){var d=c(6);d(d.P,"Function",{bind:c(75)})},function(a,b,c){var d=c(19),e=c(11),f=c(76),g=[].slice,h={},i=function(a,b,c){if(!(b in h)){for(var d=[],e=0;e<b;e++)d[e]="a["+e+"]";h[b]=Function("F,a","return new F("+d.join(",")+")")}return h[b](a,c)};a.exports=Function.bind||function bind(a){var b=d(this),c=g.call(arguments,1),h=function(){var d=c.concat(g.call(arguments));return this instanceof h?i(b,d.length,d):f(b,d,a)};return e(b.prototype)&&(h.prototype=b.prototype),h}},function(a,b){a.exports=function(a,b,d){var e=d===c;switch(b.length){case 0:return e?a():a.call(d);case 1:return e?a(b[0]):a.call(d,b[0]);case 2:return e?a(b[0],b[1]):a.call(d,b[0],b[1]);case 3:return e?a(b[0],b[1],b[2]):a.call(d,b[0],b[1],b[2]);case 4:return e?a(b[0],b[1],b[2],b[3]):a.call(d,b[0],b[1],b[2],b[3])}return a.apply(d,b)}},function(a,b,c){var d=c(9).f,e=c(15),f=c(3),g=Function.prototype,h=/^\s*function ([^ (]*)/,i="name",j=Object.isExtensible||function(){return!0};i in g||c(4)&&d(g,i,{configurable:!0,get:function(){try{var a=this,b=(""+a).match(h)[1];return f(a,i)||!j(a)||d(a,i,e(5,b)),b}catch(c){return""}}})},function(a,b,c){var d=c(11),e=c(57),f=c(23)("hasInstance"),g=Function.prototype;f in g||c(9).f(g,f,{value:function(a){if("function"!=typeof this||!d(a))return!1;if(!d(this.prototype))return a instanceof this;for(;a=e(a);)if(this.prototype===a)return!0;return!1}})},function(a,b,c){var d=c(2),e=c(3),f=c(32),g=c(80),h=c(14),i=c(5),j=c(48).f,k=c(49).f,l=c(9).f,m=c(81).trim,n="Number",o=d[n],p=o,q=o.prototype,r=f(c(44)(q))==n,s="trim"in String.prototype,t=function(a){var b=h(a,!1);if("string"==typeof b&&b.length>2){b=s?b.trim():m(b,3);var c,d,e,f=b.charCodeAt(0);if(43===f||45===f){if(c=b.charCodeAt(2),88===c||120===c)return NaN}else if(48===f){switch(b.charCodeAt(1)){case 66:case 98:d=2,e=49;break;case 79:case 111:d=8,e=55;break;default:return+b}for(var g,i=b.slice(2),j=0,k=i.length;j<k;j++)if(g=i.charCodeAt(j),g<48||g>e)return NaN;return parseInt(i,d)}}return+b};if(!o(" 0o1")||!o("0b1")||o("+0x1")){o=function Number(a){var b=arguments.length<1?0:a,c=this;return c instanceof o&&(r?i(function(){q.valueOf.call(c)}):f(c)!=n)?g(new p(t(b)),c,o):t(b)};for(var u,v=c(4)?j(p):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;v.length>w;w++)e(p,u=v[w])&&!e(o,u)&&l(o,u,k(p,u));o.prototype=q,q.constructor=o,c(16)(d,n,o)}},function(a,b,c){var d=c(11),e=c(71).set;a.exports=function(a,b,c){var f,g=b.constructor;return g!==c&&"function"==typeof g&&(f=g.prototype)!==c.prototype&&d(f)&&e&&e(a,f),a}},function(a,b,c){var d=c(6),e=c(33),f=c(5),g=c(82),h="["+g+"]",i="​…",j=RegExp("^"+h+h+"*"),k=RegExp(h+h+"*$"),l=function(a,b,c){var e={},h=f(function(){return!!g[a]()||i[a]()!=i}),j=e[a]=h?b(m):g[a];c&&(e[c]=j),d(d.P+d.F*h,"String",e)},m=l.trim=function(a,b){return a=String(e(a)),1&b&&(a=a.replace(j,"")),2&b&&(a=a.replace(k,"")),a};a.exports=l},function(a,b){a.exports="\t\n\x0B\f\r   ᠎ â€â€‚         âŸã€€\u2028\u2029\ufeff"},function(a,b,c){var d=c(6),e=c(36),f=c(84),g=c(85),h=1..toFixed,i=Math.floor,j=[0,0,0,0,0,0],k="Number.toFixed: incorrect invocation!",l="0",m=function(a,b){for(var c=-1,d=b;++c<6;)d+=a*j[c],j[c]=d%1e7,d=i(d/1e7)},n=function(a){for(var b=6,c=0;--b>=0;)c+=j[b],j[b]=i(c/a),c=c%a*1e7},o=function(){for(var a=6,b="";--a>=0;)if(""!==b||0===a||0!==j[a]){var c=String(j[a]);b=""===b?c:b+g.call(l,7-c.length)+c}return b},p=function(a,b,c){return 0===b?c:b%2===1?p(a,b-1,c*a):p(a*a,b/2,c)},q=function(a){for(var b=0,c=a;c>=4096;)b+=12,c/=4096;for(;c>=2;)b+=1,c/=2;return b};d(d.P+d.F*(!!h&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!c(5)(function(){h.call({})})),"Number",{toFixed:function toFixed(a){var b,c,d,h,i=f(this,k),j=e(a),r="",s=l;if(j<0||j>20)throw RangeError(k);if(i!=i)return"NaN";if(i<=-1e21||i>=1e21)return String(i);if(i<0&&(r="-",i=-i),i>1e-21)if(b=q(i*p(2,69,1))-69,c=b<0?i*p(2,-b,1):i/p(2,b,1),c*=4503599627370496,b=52-b,b>0){for(m(0,c),d=j;d>=7;)m(1e7,0),d-=7;for(m(p(10,d,1),0),d=b-1;d>=23;)n(1<<23),d-=23;n(1<<d),m(1,1),n(2),s=o()}else m(0,c),m(1<<-b,0),s=o()+g.call(l,j);return j>0?(h=s.length,s=r+(h<=j?"0."+g.call(l,j-h)+s:s.slice(0,h-j)+"."+s.slice(h-j))):s=r+s,s}})},function(a,b,c){var d=c(32);a.exports=function(a,b){if("number"!=typeof a&&"Number"!=d(a))throw TypeError(b);return+a}},function(a,b,c){var d=c(36),e=c(33);a.exports=function repeat(a){var b=String(e(this)),c="",f=d(a);if(f<0||f==1/0)throw RangeError("Count can't be negative");for(;f>0;(f>>>=1)&&(b+=b))1&f&&(c+=b);return c}},function(a,b,d){var e=d(6),f=d(5),g=d(84),h=1..toPrecision;e(e.P+e.F*(f(function(){return"1"!==h.call(1,c)})||!f(function(){h.call({})})),"Number",{toPrecision:function toPrecision(a){var b=g(this,"Number#toPrecision: incorrect invocation!");return a===c?h.call(b):h.call(b,a)}})},function(a,b,c){var d=c(6);d(d.S,"Number",{EPSILON:Math.pow(2,-52)})},function(a,b,c){var d=c(6),e=c(2).isFinite;d(d.S,"Number",{isFinite:function isFinite(a){return"number"==typeof a&&e(a)}})},function(a,b,c){var d=c(6);d(d.S,"Number",{isInteger:c(90)})},function(a,b,c){var d=c(11),e=Math.floor;a.exports=function isInteger(a){return!d(a)&&isFinite(a)&&e(a)===a}},function(a,b,c){var d=c(6);d(d.S,"Number",{isNaN:function isNaN(a){return a!=a}})},function(a,b,c){var d=c(6),e=c(90),f=Math.abs;d(d.S,"Number",{isSafeInteger:function isSafeInteger(a){return e(a)&&f(a)<=9007199254740991}})},function(a,b,c){var d=c(6);d(d.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(a,b,c){var d=c(6);d(d.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(a,b,c){var d=c(6),e=c(96);d(d.S+d.F*(Number.parseFloat!=e),"Number",{parseFloat:e})},function(a,b,c){var d=c(2).parseFloat,e=c(81).trim;a.exports=1/d(c(82)+"-0")!==-(1/0)?function parseFloat(a){var b=e(String(a),3),c=d(b);return 0===c&&"-"==b.charAt(0)?-0:c}:d},function(a,b,c){var d=c(6),e=c(98);d(d.S+d.F*(Number.parseInt!=e),"Number",{parseInt:e})},function(a,b,c){var d=c(2).parseInt,e=c(81).trim,f=c(82),g=/^[\-+]?0[xX]/;a.exports=8!==d(f+"08")||22!==d(f+"0x16")?function parseInt(a,b){var c=e(String(a),3);return d(c,b>>>0||(g.test(c)?16:10))}:d},function(a,b,c){var d=c(6),e=c(98);d(d.G+d.F*(parseInt!=e),{parseInt:e})},function(a,b,c){var d=c(6),e=c(96);d(d.G+d.F*(parseFloat!=e),{parseFloat:e})},function(a,b,c){var d=c(6),e=c(102),f=Math.sqrt,g=Math.acosh;d(d.S+d.F*!(g&&710==Math.floor(g(Number.MAX_VALUE))&&g(1/0)==1/0),"Math",{acosh:function acosh(a){return(a=+a)<1?NaN:a>94906265.62425156?Math.log(a)+Math.LN2:e(a-1+f(a-1)*f(a+1))}})},function(a,b){a.exports=Math.log1p||function log1p(a){return(a=+a)>-1e-8&&a<1e-8?a-a*a/2:Math.log(1+a)}},function(a,b,c){function asinh(a){return isFinite(a=+a)&&0!=a?a<0?-asinh(-a):Math.log(a+Math.sqrt(a*a+1)):a}var d=c(6),e=Math.asinh;d(d.S+d.F*!(e&&1/e(0)>0),"Math",{asinh:asinh})},function(a,b,c){var d=c(6),e=Math.atanh;d(d.S+d.F*!(e&&1/e(-0)<0),"Math",{atanh:function atanh(a){return 0==(a=+a)?a:Math.log((1+a)/(1-a))/2}})},function(a,b,c){var d=c(6),e=c(106);d(d.S,"Math",{cbrt:function cbrt(a){return e(a=+a)*Math.pow(Math.abs(a),1/3)}})},function(a,b){a.exports=Math.sign||function sign(a){return 0==(a=+a)||a!=a?a:a<0?-1:1}},function(a,b,c){var d=c(6);d(d.S,"Math",{clz32:function clz32(a){return(a>>>=0)?31-Math.floor(Math.log(a+.5)*Math.LOG2E):32}})},function(a,b,c){var d=c(6),e=Math.exp;d(d.S,"Math",{cosh:function cosh(a){return(e(a=+a)+e(-a))/2}})},function(a,b,c){var d=c(6),e=c(110);d(d.S+d.F*(e!=Math.expm1),"Math",{expm1:e})},function(a,b){var c=Math.expm1;a.exports=!c||c(10)>22025.465794806718||c(10)<22025.465794806718||c(-2e-17)!=-2e-17?function expm1(a){return 0==(a=+a)?a:a>-1e-6&&a<1e-6?a+a*a/2:Math.exp(a)-1}:c},function(a,b,c){var d=c(6),e=c(106),f=Math.pow,g=f(2,-52),h=f(2,-23),i=f(2,127)*(2-h),j=f(2,-126),k=function(a){return a+1/g-1/g};d(d.S,"Math",{fround:function fround(a){var b,c,d=Math.abs(a),f=e(a);return d<j?f*k(d/j/h)*j*h:(b=(1+h/g)*d,c=b-(b-d),c>i||c!=c?f*(1/0):f*c)}})},function(a,b,c){var d=c(6),e=Math.abs;d(d.S,"Math",{hypot:function hypot(a,b){for(var c,d,f=0,g=0,h=arguments.length,i=0;g<h;)c=e(arguments[g++]),i<c?(d=i/c,f=f*d*d+1,i=c):c>0?(d=c/i,f+=d*d):f+=c;return i===1/0?1/0:i*Math.sqrt(f)}})},function(a,b,c){var d=c(6),e=Math.imul;d(d.S+d.F*c(5)(function(){return e(4294967295,5)!=-5||2!=e.length}),"Math",{imul:function imul(a,b){var c=65535,d=+a,e=+b,f=c&d,g=c&e;return 0|f*g+((c&d>>>16)*g+f*(c&e>>>16)<<16>>>0)}})},function(a,b,c){var d=c(6);d(d.S,"Math",{log10:function log10(a){return Math.log(a)/Math.LN10}})},function(a,b,c){var d=c(6);d(d.S,"Math",{log1p:c(102)})},function(a,b,c){var d=c(6);d(d.S,"Math",{log2:function log2(a){return Math.log(a)/Math.LN2}})},function(a,b,c){var d=c(6);d(d.S,"Math",{sign:c(106)})},function(a,b,c){var d=c(6),e=c(110),f=Math.exp;d(d.S+d.F*c(5)(function(){return!Math.sinh(-2e-17)!=-2e-17}),"Math",{sinh:function sinh(a){return Math.abs(a=+a)<1?(e(a)-e(-a))/2:(f(a-1)-f(-a-1))*(Math.E/2)}})},function(a,b,c){var d=c(6),e=c(110),f=Math.exp;d(d.S,"Math",{tanh:function tanh(a){var b=e(a=+a),c=e(-a);return b==1/0?1:c==1/0?-1:(b-c)/(f(a)+f(-a))}})},function(a,b,c){var d=c(6);d(d.S,"Math",{trunc:function trunc(a){return(a>0?Math.floor:Math.ceil)(a)}})},function(a,b,c){var d=c(6),e=c(37),f=String.fromCharCode,g=String.fromCodePoint;d(d.S+d.F*(!!g&&1!=g.length),"String",{fromCodePoint:function fromCodePoint(a){for(var b,c=[],d=arguments.length,g=0;d>g;){if(b=+arguments[g++],e(b,1114111)!==b)throw RangeError(b+" is not a valid code point");c.push(b<65536?f(b):f(((b-=65536)>>10)+55296,b%1024+56320))}return c.join("")}})},function(a,b,c){var d=c(6),e=c(30),f=c(35);d(d.S,"String",{raw:function raw(a){for(var b=e(a.raw),c=f(b.length),d=arguments.length,g=[],h=0;c>h;)g.push(String(b[h++])),h<d&&g.push(String(arguments[h]));return g.join("")}})},function(a,b,c){c(81)("trim",function(a){return function trim(){return a(this,3)}})},function(a,b,c){var d=c(6),e=c(125)(!1);d(d.P,"String",{codePointAt:function codePointAt(a){return e(this,a)}})},function(a,b,d){var e=d(36),f=d(33);a.exports=function(a){return function(b,d){var g,h,i=String(f(b)),j=e(d),k=i.length;return j<0||j>=k?a?"":c:(g=i.charCodeAt(j),g<55296||g>56319||j+1===k||(h=i.charCodeAt(j+1))<56320||h>57343?a?i.charAt(j):g:a?i.slice(j,j+2):(g-55296<<10)+(h-56320)+65536)}}},function(a,b,d){var e=d(6),f=d(35),g=d(127),h="endsWith",i=""[h];e(e.P+e.F*d(129)(h),"String",{endsWith:function endsWith(a){var b=g(this,a,h),d=arguments.length>1?arguments[1]:c,e=f(b.length),j=d===c?e:Math.min(f(d),e),k=String(a);return i?i.call(b,k,j):b.slice(j-k.length,j)===k}})},function(a,b,c){var d=c(128),e=c(33);a.exports=function(a,b,c){if(d(b))throw TypeError("String#"+c+" doesn't accept regex!");return String(e(a))}},function(a,b,d){var e=d(11),f=d(32),g=d(23)("match");a.exports=function(a){var b;return e(a)&&((b=a[g])!==c?!!b:"RegExp"==f(a))}},function(a,b,c){var d=c(23)("match");a.exports=function(a){var b=/./;try{"/./"[a](b)}catch(c){try{return b[d]=!1,!"/./"[a](b)}catch(e){}}return!0}},function(a,b,d){var e=d(6),f=d(127),g="includes";e(e.P+e.F*d(129)(g),"String",{includes:function includes(a){return!!~f(this,a,g).indexOf(a,arguments.length>1?arguments[1]:c)}})},function(a,b,c){var d=c(6);d(d.P,"String",{repeat:c(85)})},function(a,b,d){var e=d(6),f=d(35),g=d(127),h="startsWith",i=""[h];e(e.P+e.F*d(129)(h),"String",{startsWith:function startsWith(a){var b=g(this,a,h),d=f(Math.min(arguments.length>1?arguments[1]:c,b.length)),e=String(a);return i?i.call(b,e,d):b.slice(d,d+e.length)===e}})},function(a,b,d){var e=d(125)(!0);d(134)(String,"String",function(a){this._t=String(a),this._i=0},function(){var a,b=this._t,d=this._i;return d>=b.length?{value:c,done:!0}:(a=e(b,d),this._i+=a.length,{value:a,done:!1})})},function(a,b,d){var e=d(26),f=d(6),g=d(16),h=d(8),i=d(3),j=d(135),k=d(136),l=d(22),m=d(57),n=d(23)("iterator"),o=!([].keys&&"next"in[].keys()),p="@@iterator",q="keys",r="values",s=function(){return this};a.exports=function(a,b,d,t,u,v,w){k(d,b,t);var x,y,z,A=function(a){if(!o&&a in E)return E[a];switch(a){case q:return function keys(){return new d(this,a)};case r:return function values(){return new d(this,a)}}return function entries(){return new d(this,a)}},B=b+" Iterator",C=u==r,D=!1,E=a.prototype,F=E[n]||E[p]||u&&E[u],G=F||A(u),H=u?C?A("entries"):G:c,I="Array"==b?E.entries||F:F;if(I&&(z=m(I.call(new a)),z!==Object.prototype&&(l(z,B,!0),e||i(z,n)||h(z,n,s))),C&&F&&F.name!==r&&(D=!0,G=function values(){return F.call(this)}),e&&!w||!o&&!D&&E[n]||h(E,n,G),j[b]=G,j[B]=s,u)if(x={values:C?G:A(r),keys:v?G:A(q),entries:H},w)for(y in x)y in E||g(E,y,x[y]);else f(f.P+f.F*(o||D),b,x);return x}},function(a,b){a.exports={}},function(a,b,c){var d=c(44),e=c(15),f=c(22),g={};c(8)(g,c(23)("iterator"),function(){return this}),a.exports=function(a,b,c){a.prototype=d(g,{next:e(1,c)}),f(a,b+" Iterator")}},function(a,b,c){c(138)("anchor",function(a){return function anchor(b){return a(this,"a","name",b)}})},function(a,b,c){var d=c(6),e=c(5),f=c(33),g=/"/g,h=function(a,b,c,d){var e=String(f(a)),h="<"+b;return""!==c&&(h+=" "+c+'="'+String(d).replace(g,"&quot;")+'"'),h+">"+e+"</"+b+">"};a.exports=function(a,b){var c={};c[a]=b(h),d(d.P+d.F*e(function(){var b=""[a]('"');return b!==b.toLowerCase()||b.split('"').length>3}),"String",c)}},function(a,b,c){c(138)("big",function(a){return function big(){return a(this,"big","","")}})},function(a,b,c){c(138)("blink",function(a){return function blink(){return a(this,"blink","","")}})},function(a,b,c){c(138)("bold",function(a){return function bold(){return a(this,"b","","")}})},function(a,b,c){c(138)("fixed",function(a){return function fixed(){return a(this,"tt","","")}})},function(a,b,c){c(138)("fontcolor",function(a){return function fontcolor(b){return a(this,"font","color",b)}})},function(a,b,c){c(138)("fontsize",function(a){return function fontsize(b){return a(this,"font","size",b)}})},function(a,b,c){c(138)("italics",function(a){return function italics(){return a(this,"i","","")}})},function(a,b,c){c(138)("link",function(a){return function link(b){return a(this,"a","href",b)}})},function(a,b,c){c(138)("small",function(a){return function small(){return a(this,"small","","")}})},function(a,b,c){c(138)("strike",function(a){return function strike(){return a(this,"strike","","")}})},function(a,b,c){c(138)("sub",function(a){return function sub(){return a(this,"sub","","")}})},function(a,b,c){c(138)("sup",function(a){return function sup(){return a(this,"sup","","")}})},function(a,b,c){var d=c(6);d(d.S,"Array",{isArray:c(43)})},function(a,b,d){var e=d(18),f=d(6),g=d(56),h=d(153),i=d(154),j=d(35),k=d(155),l=d(156);f(f.S+f.F*!d(157)(function(a){Array.from(a)}),"Array",{from:function from(a){var b,d,f,m,n=g(a),o="function"==typeof this?this:Array,p=arguments.length,q=p>1?arguments[1]:c,r=q!==c,s=0,t=l(n);if(r&&(q=e(q,p>2?arguments[2]:c,2)),t==c||o==Array&&i(t))for(b=j(n.length),d=new o(b);b>s;s++)k(d,s,r?q(n[s],s):n[s]);else for(m=t.call(n),d=new o;!(f=m.next()).done;s++)k(d,s,r?h(m,q,[f.value,s],!0):f.value);return d.length=s,d}})},function(a,b,d){var e=d(10);a.exports=function(a,b,d,f){try{return f?b(e(d)[0],d[1]):b(d)}catch(g){var h=a["return"];throw h!==c&&e(h.call(a)),g}}},function(a,b,d){var e=d(135),f=d(23)("iterator"),g=Array.prototype;a.exports=function(a){return a!==c&&(e.Array===a||g[f]===a)}},function(a,b,c){var d=c(9),e=c(15);a.exports=function(a,b,c){b in a?d.f(a,b,e(0,c)):a[b]=c}},function(a,b,d){var e=d(73),f=d(23)("iterator"),g=d(135);a.exports=d(7).getIteratorMethod=function(a){if(a!=c)return a[f]||a["@@iterator"]||g[e(a)]}},function(a,b,c){var d=c(23)("iterator"),e=!1;
+try{var f=[7][d]();f["return"]=function(){e=!0},Array.from(f,function(){throw 2})}catch(g){}a.exports=function(a,b){if(!b&&!e)return!1;var c=!1;try{var f=[7],g=f[d]();g.next=function(){return{done:c=!0}},f[d]=function(){return g},a(f)}catch(h){}return c}},function(a,b,c){var d=c(6),e=c(155);d(d.S+d.F*c(5)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),"Array",{of:function of(){for(var a=0,b=arguments.length,c=new("function"==typeof this?this:Array)(b);b>a;)e(c,a,arguments[a++]);return c.length=b,c}})},function(a,b,d){var e=d(6),f=d(30),g=[].join;e(e.P+e.F*(d(31)!=Object||!d(160)(g)),"Array",{join:function join(a){return g.call(f(this),a===c?",":a)}})},function(a,b,c){var d=c(5);a.exports=function(a,b){return!!a&&d(function(){b?a.call(null,function(){},1):a.call(null)})}},function(a,b,d){var e=d(6),f=d(46),g=d(32),h=d(37),i=d(35),j=[].slice;e(e.P+e.F*d(5)(function(){f&&j.call(f)}),"Array",{slice:function slice(a,b){var d=i(this.length),e=g(this);if(b=b===c?d:b,"Array"==e)return j.call(this,a,b);for(var f=h(a,d),k=h(b,d),l=i(k-f),m=Array(l),n=0;n<l;n++)m[n]="String"==e?this.charAt(f+n):this[f+n];return m}})},function(a,b,d){var e=d(6),f=d(19),g=d(56),h=d(5),i=[].sort,j=[1,2,3];e(e.P+e.F*(h(function(){j.sort(c)})||!h(function(){j.sort(null)})||!d(160)(i)),"Array",{sort:function sort(a){return a===c?i.call(g(this)):i.call(g(this),f(a))}})},function(a,b,c){var d=c(6),e=c(164)(0),f=c(160)([].forEach,!0);d(d.P+d.F*!f,"Array",{forEach:function forEach(a){return e(this,a,arguments[1])}})},function(a,b,d){var e=d(18),f=d(31),g=d(56),h=d(35),i=d(165);a.exports=function(a,b){var d=1==a,j=2==a,k=3==a,l=4==a,m=6==a,n=5==a||m,o=b||i;return function(b,i,p){for(var q,r,s=g(b),t=f(s),u=e(i,p,3),v=h(t.length),w=0,x=d?o(b,v):j?o(b,0):c;v>w;w++)if((n||w in t)&&(q=t[w],r=u(q,w,s),a))if(d)x[w]=r;else if(r)switch(a){case 3:return!0;case 5:return q;case 6:return w;case 2:x.push(q)}else if(l)return!1;return m?-1:k||l?l:x}}},function(a,b,c){var d=c(166);a.exports=function(a,b){return new(d(a))(b)}},function(a,b,d){var e=d(11),f=d(43),g=d(23)("species");a.exports=function(a){var b;return f(a)&&(b=a.constructor,"function"!=typeof b||b!==Array&&!f(b.prototype)||(b=c),e(b)&&(b=b[g],null===b&&(b=c))),b===c?Array:b}},function(a,b,c){var d=c(6),e=c(164)(1);d(d.P+d.F*!c(160)([].map,!0),"Array",{map:function map(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(164)(2);d(d.P+d.F*!c(160)([].filter,!0),"Array",{filter:function filter(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(164)(3);d(d.P+d.F*!c(160)([].some,!0),"Array",{some:function some(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(164)(4);d(d.P+d.F*!c(160)([].every,!0),"Array",{every:function every(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(172);d(d.P+d.F*!c(160)([].reduce,!0),"Array",{reduce:function reduce(a){return e(this,a,arguments.length,arguments[1],!1)}})},function(a,b,c){var d=c(19),e=c(56),f=c(31),g=c(35);a.exports=function(a,b,c,h,i){d(b);var j=e(a),k=f(j),l=g(j.length),m=i?l-1:0,n=i?-1:1;if(c<2)for(;;){if(m in k){h=k[m],m+=n;break}if(m+=n,i?m<0:l<=m)throw TypeError("Reduce of empty array with no initial value")}for(;i?m>=0:l>m;m+=n)m in k&&(h=b(h,k[m],m,j));return h}},function(a,b,c){var d=c(6),e=c(172);d(d.P+d.F*!c(160)([].reduceRight,!0),"Array",{reduceRight:function reduceRight(a){return e(this,a,arguments.length,arguments[1],!0)}})},function(a,b,c){var d=c(6),e=c(34)(!1),f=[].indexOf,g=!!f&&1/[1].indexOf(1,-0)<0;d(d.P+d.F*(g||!c(160)(f)),"Array",{indexOf:function indexOf(a){return g?f.apply(this,arguments)||0:e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(30),f=c(36),g=c(35),h=[].lastIndexOf,i=!!h&&1/[1].lastIndexOf(1,-0)<0;d(d.P+d.F*(i||!c(160)(h)),"Array",{lastIndexOf:function lastIndexOf(a){if(i)return h.apply(this,arguments)||0;var b=e(this),c=g(b.length),d=c-1;for(arguments.length>1&&(d=Math.min(d,f(arguments[1]))),d<0&&(d=c+d);d>=0;d--)if(d in b&&b[d]===a)return d||0;return-1}})},function(a,b,c){var d=c(6);d(d.P,"Array",{copyWithin:c(177)}),c(178)("copyWithin")},function(a,b,d){var e=d(56),f=d(37),g=d(35);a.exports=[].copyWithin||function copyWithin(a,b){var d=e(this),h=g(d.length),i=f(a,h),j=f(b,h),k=arguments.length>2?arguments[2]:c,l=Math.min((k===c?h:f(k,h))-j,h-i),m=1;for(j<i&&i<j+l&&(m=-1,j+=l-1,i+=l-1);l-- >0;)j in d?d[i]=d[j]:delete d[i],i+=m,j+=m;return d}},function(a,b,d){var e=d(23)("unscopables"),f=Array.prototype;f[e]==c&&d(8)(f,e,{}),a.exports=function(a){f[e][a]=!0}},function(a,b,c){var d=c(6);d(d.P,"Array",{fill:c(180)}),c(178)("fill")},function(a,b,d){var e=d(56),f=d(37),g=d(35);a.exports=function fill(a){for(var b=e(this),d=g(b.length),h=arguments.length,i=f(h>1?arguments[1]:c,d),j=h>2?arguments[2]:c,k=j===c?d:f(j,d);k>i;)b[i++]=a;return b}},function(a,b,d){var e=d(6),f=d(164)(5),g="find",h=!0;g in[]&&Array(1)[g](function(){h=!1}),e(e.P+e.F*h,"Array",{find:function find(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(178)(g)},function(a,b,d){var e=d(6),f=d(164)(6),g="findIndex",h=!0;g in[]&&Array(1)[g](function(){h=!1}),e(e.P+e.F*h,"Array",{findIndex:function findIndex(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(178)(g)},function(a,b,d){var e=d(178),f=d(184),g=d(135),h=d(30);a.exports=d(134)(Array,"Array",function(a,b){this._t=h(a),this._i=0,this._k=b},function(){var a=this._t,b=this._k,d=this._i++;return!a||d>=a.length?(this._t=c,f(1)):"keys"==b?f(0,d):"values"==b?f(0,a[d]):f(0,[d,a[d]])},"values"),g.Arguments=g.Array,e("keys"),e("values"),e("entries")},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(a,b,c){c(186)("Array")},function(a,b,c){var d=c(2),e=c(9),f=c(4),g=c(23)("species");a.exports=function(a){var b=d[a];f&&b&&!b[g]&&e.f(b,g,{configurable:!0,get:function(){return this}})}},function(a,b,d){var e=d(2),f=d(80),g=d(9).f,h=d(48).f,i=d(128),j=d(188),k=e.RegExp,l=k,m=k.prototype,n=/a/g,o=/a/g,p=new k(n)!==n;if(d(4)&&(!p||d(5)(function(){return o[d(23)("match")]=!1,k(n)!=n||k(o)==o||"/a/i"!=k(n,"i")}))){k=function RegExp(a,b){var d=this instanceof k,e=i(a),g=b===c;return!d&&e&&a.constructor===k&&g?a:f(p?new l(e&&!g?a.source:a,b):l((e=a instanceof k)?a.source:a,e&&g?j.call(a):b),d?this:m,k)};for(var q=(function(a){a in k||g(k,a,{configurable:!0,get:function(){return l[a]},set:function(b){l[a]=b}})}),r=h(l),s=0;r.length>s;)q(r[s++]);m.constructor=k,k.prototype=m,d(16)(e,"RegExp",k)}d(186)("RegExp")},function(a,b,c){var d=c(10);a.exports=function(){var a=d(this),b="";return a.global&&(b+="g"),a.ignoreCase&&(b+="i"),a.multiline&&(b+="m"),a.unicode&&(b+="u"),a.sticky&&(b+="y"),b}},function(a,b,d){d(190);var e=d(10),f=d(188),g=d(4),h="toString",i=/./[h],j=function(a){d(16)(RegExp.prototype,h,a,!0)};d(5)(function(){return"/a/b"!=i.call({source:"a",flags:"b"})})?j(function toString(){var a=e(this);return"/".concat(a.source,"/","flags"in a?a.flags:!g&&a instanceof RegExp?f.call(a):c)}):i.name!=h&&j(function toString(){return i.call(this)})},function(a,b,c){c(4)&&"g"!=/./g.flags&&c(9).f(RegExp.prototype,"flags",{configurable:!0,get:c(188)})},function(a,b,d){d(192)("match",1,function(a,b,d){return[function match(d){var e=a(this),f=d==c?c:d[b];return f!==c?f.call(d,e):new RegExp(d)[b](String(e))},d]})},function(a,b,c){var d=c(8),e=c(16),f=c(5),g=c(33),h=c(23);a.exports=function(a,b,c){var i=h(a),j=c(g,i,""[a]),k=j[0],l=j[1];f(function(){var b={};return b[i]=function(){return 7},7!=""[a](b)})&&(e(String.prototype,a,k),d(RegExp.prototype,i,2==b?function(a,b){return l.call(a,this,b)}:function(a){return l.call(a,this)}))}},function(a,b,d){d(192)("replace",2,function(a,b,d){return[function replace(e,f){var g=a(this),h=e==c?c:e[b];return h!==c?h.call(e,g,f):d.call(String(g),e,f)},d]})},function(a,b,d){d(192)("search",1,function(a,b,d){return[function search(d){var e=a(this),f=d==c?c:d[b];return f!==c?f.call(d,e):new RegExp(d)[b](String(e))},d]})},function(a,b,d){d(192)("split",2,function(a,b,e){var f=d(128),g=e,h=[].push,i="split",j="length",k="lastIndex";if("c"=="abbc"[i](/(b)*/)[1]||4!="test"[i](/(?:)/,-1)[j]||2!="ab"[i](/(?:ab)*/)[j]||4!="."[i](/(.?)(.?)/)[j]||"."[i](/()()/)[j]>1||""[i](/.?/)[j]){var l=/()??/.exec("")[1]===c;e=function(a,b){var d=String(this);if(a===c&&0===b)return[];if(!f(a))return g.call(d,a,b);var e,i,m,n,o,p=[],q=(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.unicode?"u":"")+(a.sticky?"y":""),r=0,s=b===c?4294967295:b>>>0,t=new RegExp(a.source,q+"g");for(l||(e=new RegExp("^"+t.source+"$(?!\\s)",q));(i=t.exec(d))&&(m=i.index+i[0][j],!(m>r&&(p.push(d.slice(r,i.index)),!l&&i[j]>1&&i[0].replace(e,function(){for(o=1;o<arguments[j]-2;o++)arguments[o]===c&&(i[o]=c)}),i[j]>1&&i.index<d[j]&&h.apply(p,i.slice(1)),n=i[0][j],r=m,p[j]>=s)));)t[k]===i.index&&t[k]++;return r===d[j]?!n&&t.test("")||p.push(""):p.push(d.slice(r)),p[j]>s?p.slice(0,s):p}}else"0"[i](c,0)[j]&&(e=function(a,b){return a===c&&0===b?[]:g.call(this,a,b)});return[function split(d,f){var g=a(this),h=d==c?c:d[b];return h!==c?h.call(d,g,f):e.call(String(g),d,f)},e]})},function(a,b,d){var e,f,g,h=d(26),i=d(2),j=d(18),k=d(73),l=d(6),m=d(11),n=d(19),o=d(197),p=d(198),q=d(199),r=d(200).set,s=d(201)(),t="Promise",u=i.TypeError,v=i.process,w=i[t],v=i.process,x="process"==k(v),y=function(){},z=!!function(){try{var a=w.resolve(1),b=(a.constructor={})[d(23)("species")]=function(a){a(y,y)};return(x||"function"==typeof PromiseRejectionEvent)&&a.then(y)instanceof b}catch(c){}}(),A=function(a,b){return a===b||a===w&&b===g},B=function(a){var b;return!(!m(a)||"function"!=typeof(b=a.then))&&b},C=function(a){return A(w,a)?new D(a):new f(a)},D=f=function(a){var b,d;this.promise=new a(function(a,e){if(b!==c||d!==c)throw u("Bad Promise constructor");b=a,d=e}),this.resolve=n(b),this.reject=n(d)},E=function(a){try{a()}catch(b){return{error:b}}},F=function(a,b){if(!a._n){a._n=!0;var c=a._c;s(function(){for(var d=a._v,e=1==a._s,f=0,g=function(b){var c,f,g=e?b.ok:b.fail,h=b.resolve,i=b.reject,j=b.domain;try{g?(e||(2==a._h&&I(a),a._h=1),g===!0?c=d:(j&&j.enter(),c=g(d),j&&j.exit()),c===b.promise?i(u("Promise-chain cycle")):(f=B(c))?f.call(c,h,i):h(c)):i(d)}catch(k){i(k)}};c.length>f;)g(c[f++]);a._c=[],a._n=!1,b&&!a._h&&G(a)})}},G=function(a){r.call(i,function(){var b,d,e,f=a._v;if(H(a)&&(b=E(function(){x?v.emit("unhandledRejection",f,a):(d=i.onunhandledrejection)?d({promise:a,reason:f}):(e=i.console)&&e.error&&e.error("Unhandled promise rejection",f)}),a._h=x||H(a)?2:1),a._a=c,b)throw b.error})},H=function(a){if(1==a._h)return!1;for(var b,c=a._a||a._c,d=0;c.length>d;)if(b=c[d++],b.fail||!H(b.promise))return!1;return!0},I=function(a){r.call(i,function(){var b;x?v.emit("rejectionHandled",a):(b=i.onrejectionhandled)&&b({promise:a,reason:a._v})})},J=function(a){var b=this;b._d||(b._d=!0,b=b._w||b,b._v=a,b._s=2,b._a||(b._a=b._c.slice()),F(b,!0))},K=function(a){var b,c=this;if(!c._d){c._d=!0,c=c._w||c;try{if(c===a)throw u("Promise can't be resolved itself");(b=B(a))?s(function(){var d={_w:c,_d:!1};try{b.call(a,j(K,d,1),j(J,d,1))}catch(e){J.call(d,e)}}):(c._v=a,c._s=1,F(c,!1))}catch(d){J.call({_w:c,_d:!1},d)}}};z||(w=function Promise(a){o(this,w,t,"_h"),n(a),e.call(this);try{a(j(K,this,1),j(J,this,1))}catch(b){J.call(this,b)}},e=function Promise(a){this._c=[],this._a=c,this._s=0,this._d=!1,this._v=c,this._h=0,this._n=!1},e.prototype=d(202)(w.prototype,{then:function then(a,b){var d=C(q(this,w));return d.ok="function"!=typeof a||a,d.fail="function"==typeof b&&b,d.domain=x?v.domain:c,this._c.push(d),this._a&&this._a.push(d),this._s&&F(this,!1),d.promise},"catch":function(a){return this.then(c,a)}}),D=function(){var a=new e;this.promise=a,this.resolve=j(K,a,1),this.reject=j(J,a,1)}),l(l.G+l.W+l.F*!z,{Promise:w}),d(22)(w,t),d(186)(t),g=d(7)[t],l(l.S+l.F*!z,t,{reject:function reject(a){var b=C(this),c=b.reject;return c(a),b.promise}}),l(l.S+l.F*(h||!z),t,{resolve:function resolve(a){if(a instanceof w&&A(a.constructor,this))return a;var b=C(this),c=b.resolve;return c(a),b.promise}}),l(l.S+l.F*!(z&&d(157)(function(a){w.all(a)["catch"](y)})),t,{all:function all(a){var b=this,d=C(b),e=d.resolve,f=d.reject,g=E(function(){var d=[],g=0,h=1;p(a,!1,function(a){var i=g++,j=!1;d.push(c),h++,b.resolve(a).then(function(a){j||(j=!0,d[i]=a,--h||e(d))},f)}),--h||e(d)});return g&&f(g.error),d.promise},race:function race(a){var b=this,c=C(b),d=c.reject,e=E(function(){p(a,!1,function(a){b.resolve(a).then(c.resolve,d)})});return e&&d(e.error),c.promise}})},function(a,b){a.exports=function(a,b,d,e){if(!(a instanceof b)||e!==c&&e in a)throw TypeError(d+": incorrect invocation!");return a}},function(a,b,c){var d=c(18),e=c(153),f=c(154),g=c(10),h=c(35),i=c(156),j={},k={},b=a.exports=function(a,b,c,l,m){var n,o,p,q,r=m?function(){return a}:i(a),s=d(c,l,b?2:1),t=0;if("function"!=typeof r)throw TypeError(a+" is not iterable!");if(f(r)){for(n=h(a.length);n>t;t++)if(q=b?s(g(o=a[t])[0],o[1]):s(a[t]),q===j||q===k)return q}else for(p=r.call(a);!(o=p.next()).done;)if(q=e(p,s,o.value,b),q===j||q===k)return q};b.BREAK=j,b.RETURN=k},function(a,b,d){var e=d(10),f=d(19),g=d(23)("species");a.exports=function(a,b){var d,h=e(a).constructor;return h===c||(d=e(h)[g])==c?b:f(d)}},function(a,b,c){var d,e,f,g=c(18),h=c(76),i=c(46),j=c(13),k=c(2),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r="onreadystatechange",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function setImmediate(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function clearImmediate(a){delete q[a]},"process"==c(32)(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(e=new o,f=e.port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),a.exports={set:m,clear:n}},function(a,b,d){var e=d(2),f=d(200).set,g=e.MutationObserver||e.WebKitMutationObserver,h=e.process,i=e.Promise,j="process"==d(32)(h);a.exports=function(){var a,b,d,k=function(){var e,f;for(j&&(e=h.domain)&&e.exit();a;){f=a.fn,a=a.next;try{f()}catch(g){throw a?d():b=c,g}}b=c,e&&e.enter()};if(j)d=function(){h.nextTick(k)};else if(g){var l=!0,m=document.createTextNode("");new g(k).observe(m,{characterData:!0}),d=function(){m.data=l=!l}}else if(i&&i.resolve){var n=i.resolve();d=function(){n.then(k)}}else d=function(){f.call(e,k)};return function(e){var f={fn:e,next:c};b&&(b.next=f),a||(a=f,d()),b=f}}},function(a,b,c){var d=c(16);a.exports=function(a,b,c){for(var e in b)d(a,e,b[e],c);return a}},function(a,b,d){var e=d(204);a.exports=d(205)("Map",function(a){return function Map(){return a(this,arguments.length>0?arguments[0]:c)}},{get:function get(a){var b=e.getEntry(this,a);return b&&b.v},set:function set(a,b){return e.def(this,0===a?0:a,b)}},e,!0)},function(a,b,d){var e=d(9).f,f=d(44),g=d(202),h=d(18),i=d(197),j=d(33),k=d(198),l=d(134),m=d(184),n=d(186),o=d(4),p=d(20).fastKey,q=o?"_s":"size",r=function(a,b){var c,d=p(b);if("F"!==d)return a._i[d];for(c=a._f;c;c=c.n)if(c.k==b)return c};a.exports={getConstructor:function(a,b,d,l){var m=a(function(a,e){i(a,m,b,"_i"),a._i=f(null),a._f=c,a._l=c,a[q]=0,e!=c&&k(e,d,a[l],a)});return g(m.prototype,{clear:function clear(){for(var a=this,b=a._i,d=a._f;d;d=d.n)d.r=!0,d.p&&(d.p=d.p.n=c),delete b[d.i];a._f=a._l=c,a[q]=0},"delete":function(a){var b=this,c=r(b,a);if(c){var d=c.n,e=c.p;delete b._i[c.i],c.r=!0,e&&(e.n=d),d&&(d.p=e),b._f==c&&(b._f=d),b._l==c&&(b._l=e),b[q]--}return!!c},forEach:function forEach(a){i(this,m,"forEach");for(var b,d=h(a,arguments.length>1?arguments[1]:c,3);b=b?b.n:this._f;)for(d(b.v,b.k,this);b&&b.r;)b=b.p},has:function has(a){return!!r(this,a)}}),o&&e(m.prototype,"size",{get:function(){return j(this[q])}}),m},def:function(a,b,d){var e,f,g=r(a,b);return g?g.v=d:(a._l=g={i:f=p(b,!0),k:b,v:d,p:e=a._l,n:c,r:!1},a._f||(a._f=g),e&&(e.n=g),a[q]++,"F"!==f&&(a._i[f]=g)),a},getEntry:r,setStrong:function(a,b,d){l(a,b,function(a,b){this._t=a,this._k=b,this._l=c},function(){for(var a=this,b=a._k,d=a._l;d&&d.r;)d=d.p;return a._t&&(a._l=d=d?d.n:a._t._f)?"keys"==b?m(0,d.k):"values"==b?m(0,d.v):m(0,[d.k,d.v]):(a._t=c,m(1))},d?"entries":"values",!d,!0),n(b)}}},function(a,b,d){var e=d(2),f=d(6),g=d(16),h=d(202),i=d(20),j=d(198),k=d(197),l=d(11),m=d(5),n=d(157),o=d(22),p=d(80);a.exports=function(a,b,d,q,r,s){var t=e[a],u=t,v=r?"set":"add",w=u&&u.prototype,x={},y=function(a){var b=w[a];g(w,a,"delete"==a?function(a){return!(s&&!l(a))&&b.call(this,0===a?0:a)}:"has"==a?function has(a){return!(s&&!l(a))&&b.call(this,0===a?0:a)}:"get"==a?function get(a){return s&&!l(a)?c:b.call(this,0===a?0:a)}:"add"==a?function add(a){return b.call(this,0===a?0:a),this}:function set(a,c){return b.call(this,0===a?0:a,c),this})};if("function"==typeof u&&(s||w.forEach&&!m(function(){(new u).entries().next()}))){var z=new u,A=z[v](s?{}:-0,1)!=z,B=m(function(){z.has(1)}),C=n(function(a){new u(a)}),D=!s&&m(function(){for(var a=new u,b=5;b--;)a[v](b,b);return!a.has(-0)});C||(u=b(function(b,d){k(b,u,a);var e=p(new t,b,u);return d!=c&&j(d,r,e[v],e),e}),u.prototype=w,w.constructor=u),(B||D)&&(y("delete"),y("has"),r&&y("get")),(D||A)&&y(v),s&&w.clear&&delete w.clear}else u=q.getConstructor(b,a,r,v),h(u.prototype,d),i.NEED=!0;return o(u,a),x[a]=u,f(f.G+f.W+f.F*(u!=t),x),s||q.setStrong(u,a,r),u}},function(a,b,d){var e=d(204);a.exports=d(205)("Set",function(a){return function Set(){return a(this,arguments.length>0?arguments[0]:c)}},{add:function add(a){return e.def(this,a=0===a?0:a,a)}},e)},function(a,b,d){var e,f=d(164)(0),g=d(16),h=d(20),i=d(67),j=d(208),k=d(11),l=h.getWeak,m=Object.isExtensible,n=j.ufstore,o={},p=function(a){return function WeakMap(){return a(this,arguments.length>0?arguments[0]:c)}},q={get:function get(a){if(k(a)){var b=l(a);return b===!0?n(this).get(a):b?b[this._i]:c}},set:function set(a,b){return j.def(this,a,b)}},r=a.exports=d(205)("WeakMap",p,q,j,!0,!0);7!=(new r).set((Object.freeze||Object)(o),7).get(o)&&(e=j.getConstructor(p),i(e.prototype,q),h.NEED=!0,f(["delete","has","get","set"],function(a){var b=r.prototype,c=b[a];g(b,a,function(b,d){if(k(b)&&!m(b)){this._f||(this._f=new e);var f=this._f[a](b,d);return"set"==a?this:f}return c.call(this,b,d)})}))},function(a,b,d){var e=d(202),f=d(20).getWeak,g=d(10),h=d(11),i=d(197),j=d(198),k=d(164),l=d(3),m=k(5),n=k(6),o=0,p=function(a){return a._l||(a._l=new q)},q=function(){this.a=[]},r=function(a,b){return m(a.a,function(a){return a[0]===b})};q.prototype={get:function(a){var b=r(this,a);if(b)return b[1]},has:function(a){return!!r(this,a)},set:function(a,b){var c=r(this,a);c?c[1]=b:this.a.push([a,b])},"delete":function(a){var b=n(this.a,function(b){return b[0]===a});return~b&&this.a.splice(b,1),!!~b}},a.exports={getConstructor:function(a,b,d,g){var k=a(function(a,e){i(a,k,b,"_i"),a._i=o++,a._l=c,e!=c&&j(e,d,a[g],a)});return e(k.prototype,{"delete":function(a){if(!h(a))return!1;var b=f(a);return b===!0?p(this)["delete"](a):b&&l(b,this._i)&&delete b[this._i]},has:function has(a){if(!h(a))return!1;var b=f(a);return b===!0?p(this).has(a):b&&l(b,this._i)}}),k},def:function(a,b,c){var d=f(g(b),!0);return d===!0?p(a).set(b,c):d[a._i]=c,a},ufstore:p}},function(a,b,d){var e=d(208);d(205)("WeakSet",function(a){return function WeakSet(){return a(this,arguments.length>0?arguments[0]:c)}},{add:function add(a){return e.def(this,a,!0)}},e,!1,!0)},function(a,b,c){var d=c(6),e=c(19),f=c(10),g=(c(2).Reflect||{}).apply,h=Function.apply;d(d.S+d.F*!c(5)(function(){g(function(){})}),"Reflect",{apply:function apply(a,b,c){var d=e(a),i=f(c);return g?g(d,b,i):h.call(d,b,i)}})},function(a,b,c){var d=c(6),e=c(44),f=c(19),g=c(10),h=c(11),i=c(5),j=c(75),k=(c(2).Reflect||{}).construct,l=i(function(){function F(){}return!(k(function(){},[],F)instanceof F)}),m=!i(function(){k(function(){})});d(d.S+d.F*(l||m),"Reflect",{construct:function construct(a,b){f(a),g(b);var c=arguments.length<3?a:f(arguments[2]);if(m&&!l)return k(a,b,c);if(a==c){switch(b.length){case 0:return new a;case 1:return new a(b[0]);case 2:return new a(b[0],b[1]);case 3:return new a(b[0],b[1],b[2]);case 4:return new a(b[0],b[1],b[2],b[3])}var d=[null];return d.push.apply(d,b),new(j.apply(a,d))}var i=c.prototype,n=e(h(i)?i:Object.prototype),o=Function.apply.call(a,n,b);return h(o)?o:n}})},function(a,b,c){var d=c(9),e=c(6),f=c(10),g=c(14);e(e.S+e.F*c(5)(function(){Reflect.defineProperty(d.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function defineProperty(a,b,c){f(a),b=g(b,!0),f(c);try{return d.f(a,b,c),!0}catch(e){return!1}}})},function(a,b,c){var d=c(6),e=c(49).f,f=c(10);d(d.S,"Reflect",{deleteProperty:function deleteProperty(a,b){var c=e(f(a),b);return!(c&&!c.configurable)&&delete a[b]}})},function(a,b,d){var e=d(6),f=d(10),g=function(a){this._t=f(a),this._i=0;var b,c=this._k=[];for(b in a)c.push(b)};d(136)(g,"Object",function(){var a,b=this,d=b._k;do if(b._i>=d.length)return{value:c,done:!0};while(!((a=d[b._i++])in b._t));return{value:a,done:!1}}),e(e.S,"Reflect",{enumerate:function enumerate(a){return new g(a)}})},function(a,b,d){function get(a,b){var d,h,k=arguments.length<3?a:arguments[2];return j(a)===k?a[b]:(d=e.f(a,b))?g(d,"value")?d.value:d.get!==c?d.get.call(k):c:i(h=f(a))?get(h,b,k):void 0}var e=d(49),f=d(57),g=d(3),h=d(6),i=d(11),j=d(10);h(h.S,"Reflect",{get:get})},function(a,b,c){var d=c(49),e=c(6),f=c(10);e(e.S,"Reflect",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(a,b){return d.f(f(a),b)}})},function(a,b,c){var d=c(6),e=c(57),f=c(10);d(d.S,"Reflect",{getPrototypeOf:function getPrototypeOf(a){return e(f(a))}})},function(a,b,c){var d=c(6);d(d.S,"Reflect",{has:function has(a,b){return b in a}})},function(a,b,c){var d=c(6),e=c(10),f=Object.isExtensible;d(d.S,"Reflect",{isExtensible:function isExtensible(a){return e(a),!f||f(a)}})},function(a,b,c){var d=c(6);d(d.S,"Reflect",{ownKeys:c(221)})},function(a,b,c){var d=c(48),e=c(41),f=c(10),g=c(2).Reflect;a.exports=g&&g.ownKeys||function ownKeys(a){var b=d.f(f(a)),c=e.f;return c?b.concat(c(a)):b}},function(a,b,c){var d=c(6),e=c(10),f=Object.preventExtensions;d(d.S,"Reflect",{preventExtensions:function preventExtensions(a){e(a);try{return f&&f(a),!0}catch(b){return!1}}})},function(a,b,d){function set(a,b,d){var i,m,n=arguments.length<4?a:arguments[3],o=f.f(k(a),b);if(!o){if(l(m=g(a)))return set(m,b,d,n);o=j(0)}return h(o,"value")?!(o.writable===!1||!l(n))&&(i=f.f(n,b)||j(0),i.value=d,e.f(n,b,i),!0):o.set!==c&&(o.set.call(n,d),!0)}var e=d(9),f=d(49),g=d(57),h=d(3),i=d(6),j=d(15),k=d(10),l=d(11);i(i.S,"Reflect",{set:set})},function(a,b,c){var d=c(6),e=c(71);e&&d(d.S,"Reflect",{setPrototypeOf:function setPrototypeOf(a,b){e.check(a,b);try{return e.set(a,b),!0}catch(c){return!1}}})},function(a,b,c){var d=c(6);d(d.S,"Date",{now:function(){return(new Date).getTime()}})},function(a,b,c){var d=c(6),e=c(56),f=c(14);d(d.P+d.F*c(5)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function toJSON(a){var b=e(this),c=f(b);return"number"!=typeof c||isFinite(c)?b.toISOString():null}})},function(a,b,c){var d=c(6),e=c(5),f=Date.prototype.getTime,g=function(a){return a>9?a:"0"+a};d(d.P+d.F*(e(function(){return"0385-07-25T07:06:39.999Z"!=new Date(-5e13-1).toISOString()})||!e(function(){new Date(NaN).toISOString()})),"Date",{toISOString:function toISOString(){if(!isFinite(f.call(this)))throw RangeError("Invalid time value");var a=this,b=a.getUTCFullYear(),c=a.getUTCMilliseconds(),d=b<0?"-":b>9999?"+":"";return d+("00000"+Math.abs(b)).slice(d?-6:-4)+"-"+g(a.getUTCMonth()+1)+"-"+g(a.getUTCDate())+"T"+g(a.getUTCHours())+":"+g(a.getUTCMinutes())+":"+g(a.getUTCSeconds())+"."+(c>99?c:"0"+g(c))+"Z"}})},function(a,b,c){var d=Date.prototype,e="Invalid Date",f="toString",g=d[f],h=d.getTime;new Date(NaN)+""!=e&&c(16)(d,f,function toString(){var a=h.call(this);return a===a?g.call(this):e})},function(a,b,c){var d=c(23)("toPrimitive"),e=Date.prototype;d in e||c(8)(e,d,c(230))},function(a,b,c){var d=c(10),e=c(14),f="number";a.exports=function(a){if("string"!==a&&a!==f&&"default"!==a)throw TypeError("Incorrect hint");return e(d(this),a!=f)}},function(a,b,d){var e=d(6),f=d(232),g=d(233),h=d(10),i=d(37),j=d(35),k=d(11),l=d(2).ArrayBuffer,m=d(199),n=g.ArrayBuffer,o=g.DataView,p=f.ABV&&l.isView,q=n.prototype.slice,r=f.VIEW,s="ArrayBuffer";e(e.G+e.W+e.F*(l!==n),{ArrayBuffer:n}),e(e.S+e.F*!f.CONSTR,s,{isView:function isView(a){return p&&p(a)||k(a)&&r in a}}),e(e.P+e.U+e.F*d(5)(function(){return!new n(2).slice(1,c).byteLength}),s,{slice:function slice(a,b){if(q!==c&&b===c)return q.call(h(this),a);for(var d=h(this).byteLength,e=i(a,d),f=i(b===c?d:b,d),g=new(m(this,n))(j(f-e)),k=new o(this),l=new o(g),p=0;e<f;)l.setUint8(p++,k.getUint8(e++));return g}}),d(186)(s)},function(a,b,c){for(var d,e=c(2),f=c(8),g=c(17),h=g("typed_array"),i=g("view"),j=!(!e.ArrayBuffer||!e.DataView),k=j,l=0,m=9,n="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<m;)(d=e[n[l++]])?(f(d.prototype,h,!0),f(d.prototype,i,!0)):k=!1;a.exports={ABV:j,CONSTR:k,TYPED:h,VIEW:i}},function(a,b,d){var e=d(2),f=d(4),g=d(26),h=d(232),i=d(8),j=d(202),k=d(5),l=d(197),m=d(36),n=d(35),o=d(48).f,p=d(9).f,q=d(180),r=d(22),s="ArrayBuffer",t="DataView",u="prototype",v="Wrong length!",w="Wrong index!",x=e[s],y=e[t],z=e.Math,A=e.RangeError,B=e.Infinity,C=x,D=z.abs,E=z.pow,F=z.floor,G=z.log,H=z.LN2,I="buffer",J="byteLength",K="byteOffset",L=f?"_b":I,M=f?"_l":J,N=f?"_o":K,O=function(a,b,c){var d,e,f,g=Array(c),h=8*c-b-1,i=(1<<h)-1,j=i>>1,k=23===b?E(2,-24)-E(2,-77):0,l=0,m=a<0||0===a&&1/a<0?1:0;for(a=D(a),a!=a||a===B?(e=a!=a?1:0,d=i):(d=F(G(a)/H),a*(f=E(2,-d))<1&&(d--,f*=2),a+=d+j>=1?k/f:k*E(2,1-j),a*f>=2&&(d++,f/=2),d+j>=i?(e=0,d=i):d+j>=1?(e=(a*f-1)*E(2,b),d+=j):(e=a*E(2,j-1)*E(2,b),d=0));b>=8;g[l++]=255&e,e/=256,b-=8);for(d=d<<b|e,h+=b;h>0;g[l++]=255&d,d/=256,h-=8);return g[--l]|=128*m,g},P=function(a,b,c){var d,e=8*c-b-1,f=(1<<e)-1,g=f>>1,h=e-7,i=c-1,j=a[i--],k=127&j;for(j>>=7;h>0;k=256*k+a[i],i--,h-=8);for(d=k&(1<<-h)-1,k>>=-h,h+=b;h>0;d=256*d+a[i],i--,h-=8);if(0===k)k=1-g;else{if(k===f)return d?NaN:j?-B:B;d+=E(2,b),k-=g}return(j?-1:1)*d*E(2,k-b)},Q=function(a){return a[3]<<24|a[2]<<16|a[1]<<8|a[0]},R=function(a){return[255&a]},S=function(a){return[255&a,a>>8&255]},T=function(a){return[255&a,a>>8&255,a>>16&255,a>>24&255]},U=function(a){return O(a,52,8)},V=function(a){return O(a,23,4)},W=function(a,b,c){p(a[u],b,{get:function(){return this[c]}})},X=function(a,b,c,d){var e=+c,f=m(e);if(e!=f||f<0||f+b>a[M])throw A(w);var g=a[L]._b,h=f+a[N],i=g.slice(h,h+b);return d?i:i.reverse()},Y=function(a,b,c,d,e,f){var g=+c,h=m(g);if(g!=h||h<0||h+b>a[M])throw A(w);for(var i=a[L]._b,j=h+a[N],k=d(+e),l=0;l<b;l++)i[j+l]=k[f?l:b-l-1]},Z=function(a,b){l(a,x,s);var c=+b,d=n(c);if(c!=d)throw A(v);return d};if(h.ABV){if(!k(function(){new x})||!k(function(){new x(.5)})){x=function ArrayBuffer(a){return new C(Z(this,a))};for(var $,_=x[u]=C[u],aa=o(C),ba=0;aa.length>ba;)($=aa[ba++])in x||i(x,$,C[$]);g||(_.constructor=x)}var ca=new y(new x(2)),da=y[u].setInt8;ca.setInt8(0,2147483648),ca.setInt8(1,2147483649),!ca.getInt8(0)&&ca.getInt8(1)||j(y[u],{setInt8:function setInt8(a,b){da.call(this,a,b<<24>>24)},setUint8:function setUint8(a,b){da.call(this,a,b<<24>>24)}},!0)}else x=function ArrayBuffer(a){var b=Z(this,a);this._b=q.call(Array(b),0),this[M]=b},y=function DataView(a,b,d){l(this,y,t),l(a,x,t);var e=a[M],f=m(b);if(f<0||f>e)throw A("Wrong offset!");if(d=d===c?e-f:n(d),f+d>e)throw A(v);this[L]=a,this[N]=f,this[M]=d},f&&(W(x,J,"_l"),W(y,I,"_b"),W(y,J,"_l"),W(y,K,"_o")),j(y[u],{getInt8:function getInt8(a){return X(this,1,a)[0]<<24>>24},getUint8:function getUint8(a){return X(this,1,a)[0]},getInt16:function getInt16(a){var b=X(this,2,a,arguments[1]);return(b[1]<<8|b[0])<<16>>16},getUint16:function getUint16(a){var b=X(this,2,a,arguments[1]);return b[1]<<8|b[0]},getInt32:function getInt32(a){return Q(X(this,4,a,arguments[1]))},getUint32:function getUint32(a){return Q(X(this,4,a,arguments[1]))>>>0},getFloat32:function getFloat32(a){return P(X(this,4,a,arguments[1]),23,4)},getFloat64:function getFloat64(a){return P(X(this,8,a,arguments[1]),52,8)},setInt8:function setInt8(a,b){Y(this,1,a,R,b)},setUint8:function setUint8(a,b){Y(this,1,a,R,b)},setInt16:function setInt16(a,b){Y(this,2,a,S,b,arguments[2])},setUint16:function setUint16(a,b){Y(this,2,a,S,b,arguments[2])},setInt32:function setInt32(a,b){Y(this,4,a,T,b,arguments[2])},setUint32:function setUint32(a,b){Y(this,4,a,T,b,arguments[2])},setFloat32:function setFloat32(a,b){Y(this,4,a,V,b,arguments[2])},setFloat64:function setFloat64(a,b){Y(this,8,a,U,b,arguments[2])}});r(x,s),r(y,t),i(y[u],h.VIEW,!0),b[s]=x,b[t]=y},function(a,b,c){var d=c(6);d(d.G+d.W+d.F*!c(232).ABV,{DataView:c(233).DataView})},function(a,b,c){c(236)("Int8",1,function(a){return function Int8Array(b,c,d){return a(this,b,c,d)}})},function(a,b,d){if(d(4)){var e=d(26),f=d(2),g=d(5),h=d(6),i=d(232),j=d(233),k=d(18),l=d(197),m=d(15),n=d(8),o=d(202),p=d(36),q=d(35),r=d(37),s=d(14),t=d(3),u=d(69),v=d(73),w=d(11),x=d(56),y=d(154),z=d(44),A=d(57),B=d(48).f,C=d(156),D=d(17),E=d(23),F=d(164),G=d(34),H=d(199),I=d(183),J=d(135),K=d(157),L=d(186),M=d(180),N=d(177),O=d(9),P=d(49),Q=O.f,R=P.f,S=f.RangeError,T=f.TypeError,U=f.Uint8Array,V="ArrayBuffer",W="Shared"+V,X="BYTES_PER_ELEMENT",Y="prototype",Z=Array[Y],$=j.ArrayBuffer,_=j.DataView,aa=F(0),ba=F(2),ca=F(3),da=F(4),ea=F(5),fa=F(6),ga=G(!0),ha=G(!1),ia=I.values,ja=I.keys,ka=I.entries,la=Z.lastIndexOf,ma=Z.reduce,na=Z.reduceRight,oa=Z.join,pa=Z.sort,qa=Z.slice,ra=Z.toString,sa=Z.toLocaleString,ta=E("iterator"),ua=E("toStringTag"),va=D("typed_constructor"),wa=D("def_constructor"),xa=i.CONSTR,ya=i.TYPED,za=i.VIEW,Aa="Wrong length!",Ba=F(1,function(a,b){return Ha(H(a,a[wa]),b)}),Ca=g(function(){return 1===new U(new Uint16Array([1]).buffer)[0]}),Da=!!U&&!!U[Y].set&&g(function(){new U(1).set({})}),Ea=function(a,b){if(a===c)throw T(Aa);var d=+a,e=q(a);if(b&&!u(d,e))throw S(Aa);return e},Fa=function(a,b){var c=p(a);if(c<0||c%b)throw S("Wrong offset!");return c},Ga=function(a){if(w(a)&&ya in a)return a;throw T(a+" is not a typed array!")},Ha=function(a,b){if(!(w(a)&&va in a))throw T("It is not a typed array constructor!");return new a(b)},Ia=function(a,b){return Ja(H(a,a[wa]),b)},Ja=function(a,b){for(var c=0,d=b.length,e=Ha(a,d);d>c;)e[c]=b[c++];return e},Ka=function(a,b,c){Q(a,b,{get:function(){return this._d[c]}})},La=function from(a){var b,d,e,f,g,h,i=x(a),j=arguments.length,l=j>1?arguments[1]:c,m=l!==c,n=C(i);if(n!=c&&!y(n)){for(h=n.call(i),e=[],b=0;!(g=h.next()).done;b++)e.push(g.value);i=e}for(m&&j>2&&(l=k(l,arguments[2],2)),b=0,d=q(i.length),f=Ha(this,d);d>b;b++)f[b]=m?l(i[b],b):i[b];return f},Ma=function of(){for(var a=0,b=arguments.length,c=Ha(this,b);b>a;)c[a]=arguments[a++];return c},Na=!!U&&g(function(){sa.call(new U(1))}),Oa=function toLocaleString(){return sa.apply(Na?qa.call(Ga(this)):Ga(this),arguments)},Pa={copyWithin:function copyWithin(a,b){return N.call(Ga(this),a,b,arguments.length>2?arguments[2]:c)},every:function every(a){return da(Ga(this),a,arguments.length>1?arguments[1]:c)},fill:function fill(a){return M.apply(Ga(this),arguments)},filter:function filter(a){return Ia(this,ba(Ga(this),a,arguments.length>1?arguments[1]:c))},find:function find(a){return ea(Ga(this),a,arguments.length>1?arguments[1]:c)},findIndex:function findIndex(a){return fa(Ga(this),a,arguments.length>1?arguments[1]:c)},forEach:function forEach(a){aa(Ga(this),a,arguments.length>1?arguments[1]:c)},indexOf:function indexOf(a){return ha(Ga(this),a,arguments.length>1?arguments[1]:c)},includes:function includes(a){return ga(Ga(this),a,arguments.length>1?arguments[1]:c)},join:function join(a){return oa.apply(Ga(this),arguments)},lastIndexOf:function lastIndexOf(a){
+return la.apply(Ga(this),arguments)},map:function map(a){return Ba(Ga(this),a,arguments.length>1?arguments[1]:c)},reduce:function reduce(a){return ma.apply(Ga(this),arguments)},reduceRight:function reduceRight(a){return na.apply(Ga(this),arguments)},reverse:function reverse(){for(var a,b=this,c=Ga(b).length,d=Math.floor(c/2),e=0;e<d;)a=b[e],b[e++]=b[--c],b[c]=a;return b},some:function some(a){return ca(Ga(this),a,arguments.length>1?arguments[1]:c)},sort:function sort(a){return pa.call(Ga(this),a)},subarray:function subarray(a,b){var d=Ga(this),e=d.length,f=r(a,e);return new(H(d,d[wa]))(d.buffer,d.byteOffset+f*d.BYTES_PER_ELEMENT,q((b===c?e:r(b,e))-f))}},Qa=function slice(a,b){return Ia(this,qa.call(Ga(this),a,b))},Ra=function set(a){Ga(this);var b=Fa(arguments[1],1),c=this.length,d=x(a),e=q(d.length),f=0;if(e+b>c)throw S(Aa);for(;f<e;)this[b+f]=d[f++]},Sa={entries:function entries(){return ka.call(Ga(this))},keys:function keys(){return ja.call(Ga(this))},values:function values(){return ia.call(Ga(this))}},Ta=function(a,b){return w(a)&&a[ya]&&"symbol"!=typeof b&&b in a&&String(+b)==String(b)},Ua=function getOwnPropertyDescriptor(a,b){return Ta(a,b=s(b,!0))?m(2,a[b]):R(a,b)},Va=function defineProperty(a,b,c){return!(Ta(a,b=s(b,!0))&&w(c)&&t(c,"value"))||t(c,"get")||t(c,"set")||c.configurable||t(c,"writable")&&!c.writable||t(c,"enumerable")&&!c.enumerable?Q(a,b,c):(a[b]=c.value,a)};xa||(P.f=Ua,O.f=Va),h(h.S+h.F*!xa,"Object",{getOwnPropertyDescriptor:Ua,defineProperty:Va}),g(function(){ra.call({})})&&(ra=sa=function toString(){return oa.call(this)});var Wa=o({},Pa);o(Wa,Sa),n(Wa,ta,Sa.values),o(Wa,{slice:Qa,set:Ra,constructor:function(){},toString:ra,toLocaleString:Oa}),Ka(Wa,"buffer","b"),Ka(Wa,"byteOffset","o"),Ka(Wa,"byteLength","l"),Ka(Wa,"length","e"),Q(Wa,ua,{get:function(){return this[ya]}}),a.exports=function(a,b,d,j){j=!!j;var k=a+(j?"Clamped":"")+"Array",m="Uint8Array"!=k,o="get"+a,p="set"+a,r=f[k],s=r||{},t=r&&A(r),u=!r||!i.ABV,x={},y=r&&r[Y],C=function(a,c){var d=a._d;return d.v[o](c*b+d.o,Ca)},D=function(a,c,d){var e=a._d;j&&(d=(d=Math.round(d))<0?0:d>255?255:255&d),e.v[p](c*b+e.o,d,Ca)},E=function(a,b){Q(a,b,{get:function(){return C(this,b)},set:function(a){return D(this,b,a)},enumerable:!0})};u?(r=d(function(a,d,e,f){l(a,r,k,"_d");var g,h,i,j,m=0,o=0;if(w(d)){if(!(d instanceof $||(j=v(d))==V||j==W))return ya in d?Ja(r,d):La.call(r,d);g=d,o=Fa(e,b);var p=d.byteLength;if(f===c){if(p%b)throw S(Aa);if(h=p-o,h<0)throw S(Aa)}else if(h=q(f)*b,h+o>p)throw S(Aa);i=h/b}else i=Ea(d,!0),h=i*b,g=new $(h);for(n(a,"_d",{b:g,o:o,l:h,e:i,v:new _(g)});m<i;)E(a,m++)}),y=r[Y]=z(Wa),n(y,"constructor",r)):K(function(a){new r(null),new r(a)},!0)||(r=d(function(a,d,e,f){l(a,r,k);var g;return w(d)?d instanceof $||(g=v(d))==V||g==W?f!==c?new s(d,Fa(e,b),f):e!==c?new s(d,Fa(e,b)):new s(d):ya in d?Ja(r,d):La.call(r,d):new s(Ea(d,m))}),aa(t!==Function.prototype?B(s).concat(B(t)):B(s),function(a){a in r||n(r,a,s[a])}),r[Y]=y,e||(y.constructor=r));var F=y[ta],G=!!F&&("values"==F.name||F.name==c),H=Sa.values;n(r,va,!0),n(y,ya,k),n(y,za,!0),n(y,wa,r),(j?new r(1)[ua]==k:ua in y)||Q(y,ua,{get:function(){return k}}),x[k]=r,h(h.G+h.W+h.F*(r!=s),x),h(h.S,k,{BYTES_PER_ELEMENT:b,from:La,of:Ma}),X in y||n(y,X,b),h(h.P,k,Pa),L(k),h(h.P+h.F*Da,k,{set:Ra}),h(h.P+h.F*!G,k,Sa),h(h.P+h.F*(y.toString!=ra),k,{toString:ra}),h(h.P+h.F*g(function(){new r(1).slice()}),k,{slice:Qa}),h(h.P+h.F*(g(function(){return[1,2].toLocaleString()!=new r([1,2]).toLocaleString()})||!g(function(){y.toLocaleString.call([1,2])})),k,{toLocaleString:Oa}),J[k]=G?F:H,e||G||n(y,ta,H)}}else a.exports=function(){}},function(a,b,c){c(236)("Uint8",1,function(a){return function Uint8Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Uint8",1,function(a){return function Uint8ClampedArray(b,c,d){return a(this,b,c,d)}},!0)},function(a,b,c){c(236)("Int16",2,function(a){return function Int16Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Uint16",2,function(a){return function Uint16Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Int32",4,function(a){return function Int32Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Uint32",4,function(a){return function Uint32Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Float32",4,function(a){return function Float32Array(b,c,d){return a(this,b,c,d)}})},function(a,b,c){c(236)("Float64",8,function(a){return function Float64Array(b,c,d){return a(this,b,c,d)}})},function(a,b,d){var e=d(6),f=d(34)(!0);e(e.P,"Array",{includes:function includes(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(178)("includes")},function(a,b,c){var d=c(6),e=c(125)(!0);d(d.P,"String",{at:function at(a){return e(this,a)}})},function(a,b,d){var e=d(6),f=d(248);e(e.P,"String",{padStart:function padStart(a){return f(this,a,arguments.length>1?arguments[1]:c,!0)}})},function(a,b,d){var e=d(35),f=d(85),g=d(33);a.exports=function(a,b,d,h){var i=String(g(a)),j=i.length,k=d===c?" ":String(d),l=e(b);if(l<=j||""==k)return i;var m=l-j,n=f.call(k,Math.ceil(m/k.length));return n.length>m&&(n=n.slice(0,m)),h?n+i:i+n}},function(a,b,d){var e=d(6),f=d(248);e(e.P,"String",{padEnd:function padEnd(a){return f(this,a,arguments.length>1?arguments[1]:c,!1)}})},function(a,b,c){c(81)("trimLeft",function(a){return function trimLeft(){return a(this,1)}},"trimStart")},function(a,b,c){c(81)("trimRight",function(a){return function trimRight(){return a(this,2)}},"trimEnd")},function(a,b,c){var d=c(6),e=c(33),f=c(35),g=c(128),h=c(188),i=RegExp.prototype,j=function(a,b){this._r=a,this._s=b};c(136)(j,"RegExp String",function next(){var a=this._r.exec(this._s);return{value:a,done:null===a}}),d(d.P,"String",{matchAll:function matchAll(a){if(e(this),!g(a))throw TypeError(a+" is not a regexp!");var b=String(this),c="flags"in i?String(a.flags):h.call(a),d=new RegExp(a.source,~c.indexOf("g")?c:"g"+c);return d.lastIndex=f(a.lastIndex),new j(d,b)}})},function(a,b,c){c(25)("asyncIterator")},function(a,b,c){c(25)("observable")},function(a,b,c){var d=c(6),e=c(221),f=c(30),g=c(49),h=c(155);d(d.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(a){for(var b,c=f(a),d=g.f,i=e(c),j={},k=0;i.length>k;)h(j,b=i[k++],d(c,b));return j}})},function(a,b,c){var d=c(6),e=c(257)(!1);d(d.S,"Object",{values:function values(a){return e(a)}})},function(a,b,c){var d=c(28),e=c(30),f=c(42).f;a.exports=function(a){return function(b){for(var c,g=e(b),h=d(g),i=h.length,j=0,k=[];i>j;)f.call(g,c=h[j++])&&k.push(a?[c,g[c]]:g[c]);return k}}},function(a,b,c){var d=c(6),e=c(257)(!0);d(d.S,"Object",{entries:function entries(a){return e(a)}})},function(a,b,c){var d=c(6),e=c(56),f=c(19),g=c(9);c(4)&&d(d.P+c(260),"Object",{__defineGetter__:function __defineGetter__(a,b){g.f(e(this),a,{get:f(b),enumerable:!0,configurable:!0})}})},function(a,b,c){a.exports=c(26)||!c(5)(function(){var a=Math.random();__defineSetter__.call(null,a,function(){}),delete c(2)[a]})},function(a,b,c){var d=c(6),e=c(56),f=c(19),g=c(9);c(4)&&d(d.P+c(260),"Object",{__defineSetter__:function __defineSetter__(a,b){g.f(e(this),a,{set:f(b),enumerable:!0,configurable:!0})}})},function(a,b,c){var d=c(6),e=c(56),f=c(14),g=c(57),h=c(49).f;c(4)&&d(d.P+c(260),"Object",{__lookupGetter__:function __lookupGetter__(a){var b,c=e(this),d=f(a,!0);do if(b=h(c,d))return b.get;while(c=g(c))}})},function(a,b,c){var d=c(6),e=c(56),f=c(14),g=c(57),h=c(49).f;c(4)&&d(d.P+c(260),"Object",{__lookupSetter__:function __lookupSetter__(a){var b,c=e(this),d=f(a,!0);do if(b=h(c,d))return b.set;while(c=g(c))}})},function(a,b,c){var d=c(6);d(d.P+d.R,"Map",{toJSON:c(265)("Map")})},function(a,b,c){var d=c(73),e=c(266);a.exports=function(a){return function toJSON(){if(d(this)!=a)throw TypeError(a+"#toJSON isn't generic");return e(this)}}},function(a,b,c){var d=c(198);a.exports=function(a,b){var c=[];return d(a,!1,c.push,c,b),c}},function(a,b,c){var d=c(6);d(d.P+d.R,"Set",{toJSON:c(265)("Set")})},function(a,b,c){var d=c(6);d(d.S,"System",{global:c(2)})},function(a,b,c){var d=c(6),e=c(32);d(d.S,"Error",{isError:function isError(a){return"Error"===e(a)}})},function(a,b,c){var d=c(6);d(d.S,"Math",{iaddh:function iaddh(a,b,c,d){var e=a>>>0,f=b>>>0,g=c>>>0;return f+(d>>>0)+((e&g|(e|g)&~(e+g>>>0))>>>31)|0}})},function(a,b,c){var d=c(6);d(d.S,"Math",{isubh:function isubh(a,b,c,d){var e=a>>>0,f=b>>>0,g=c>>>0;return f-(d>>>0)-((~e&g|~(e^g)&e-g>>>0)>>>31)|0}})},function(a,b,c){var d=c(6);d(d.S,"Math",{imulh:function imulh(a,b){var c=65535,d=+a,e=+b,f=d&c,g=e&c,h=d>>16,i=e>>16,j=(h*g>>>0)+(f*g>>>16);return h*i+(j>>16)+((f*i>>>0)+(j&c)>>16)}})},function(a,b,c){var d=c(6);d(d.S,"Math",{umulh:function umulh(a,b){var c=65535,d=+a,e=+b,f=d&c,g=e&c,h=d>>>16,i=e>>>16,j=(h*g>>>0)+(f*g>>>16);return h*i+(j>>>16)+((f*i>>>0)+(j&c)>>>16)}})},function(a,b,c){var d=c(275),e=c(10),f=d.key,g=d.set;d.exp({defineMetadata:function defineMetadata(a,b,c,d){g(a,b,e(c),f(d))}})},function(a,b,d){var e=d(203),f=d(6),g=d(21)("metadata"),h=g.store||(g.store=new(d(207))),i=function(a,b,d){var f=h.get(a);if(!f){if(!d)return c;h.set(a,f=new e)}var g=f.get(b);if(!g){if(!d)return c;f.set(b,g=new e)}return g},j=function(a,b,d){var e=i(b,d,!1);return e!==c&&e.has(a)},k=function(a,b,d){var e=i(b,d,!1);return e===c?c:e.get(a)},l=function(a,b,c,d){i(c,d,!0).set(a,b)},m=function(a,b){var c=i(a,b,!1),d=[];return c&&c.forEach(function(a,b){d.push(b)}),d},n=function(a){return a===c||"symbol"==typeof a?a:String(a)},o=function(a){f(f.S,"Reflect",a)};a.exports={store:h,map:i,has:j,get:k,set:l,keys:m,key:n,exp:o}},function(a,b,d){var e=d(275),f=d(10),g=e.key,h=e.map,i=e.store;e.exp({deleteMetadata:function deleteMetadata(a,b){var d=arguments.length<3?c:g(arguments[2]),e=h(f(b),d,!1);if(e===c||!e["delete"](a))return!1;if(e.size)return!0;var j=i.get(b);return j["delete"](d),!!j.size||i["delete"](b)}})},function(a,b,d){var e=d(275),f=d(10),g=d(57),h=e.has,i=e.get,j=e.key,k=function(a,b,d){var e=h(a,b,d);if(e)return i(a,b,d);var f=g(b);return null!==f?k(a,f,d):c};e.exp({getMetadata:function getMetadata(a,b){return k(a,f(b),arguments.length<3?c:j(arguments[2]))}})},function(a,b,d){var e=d(206),f=d(266),g=d(275),h=d(10),i=d(57),j=g.keys,k=g.key,l=function(a,b){var c=j(a,b),d=i(a);if(null===d)return c;var g=l(d,b);return g.length?c.length?f(new e(c.concat(g))):g:c};g.exp({getMetadataKeys:function getMetadataKeys(a){return l(h(a),arguments.length<2?c:k(arguments[1]))}})},function(a,b,d){var e=d(275),f=d(10),g=e.get,h=e.key;e.exp({getOwnMetadata:function getOwnMetadata(a,b){return g(a,f(b),arguments.length<3?c:h(arguments[2]))}})},function(a,b,d){var e=d(275),f=d(10),g=e.keys,h=e.key;e.exp({getOwnMetadataKeys:function getOwnMetadataKeys(a){return g(f(a),arguments.length<2?c:h(arguments[1]))}})},function(a,b,d){var e=d(275),f=d(10),g=d(57),h=e.has,i=e.key,j=function(a,b,c){var d=h(a,b,c);if(d)return!0;var e=g(b);return null!==e&&j(a,e,c)};e.exp({hasMetadata:function hasMetadata(a,b){return j(a,f(b),arguments.length<3?c:i(arguments[2]))}})},function(a,b,d){var e=d(275),f=d(10),g=e.has,h=e.key;e.exp({hasOwnMetadata:function hasOwnMetadata(a,b){return g(a,f(b),arguments.length<3?c:h(arguments[2]))}})},function(a,b,d){var e=d(275),f=d(10),g=d(19),h=e.key,i=e.set;e.exp({metadata:function metadata(a,b){return function decorator(d,e){i(a,b,(e!==c?f:g)(d),h(e))}}})},function(a,b,c){var d=c(6),e=c(201)(),f=c(2).process,g="process"==c(32)(f);d(d.G,{asap:function asap(a){var b=g&&f.domain;e(b?b.bind(a):a)}})},function(a,b,d){var e=d(6),f=d(2),g=d(7),h=d(201)(),i=d(23)("observable"),j=d(19),k=d(10),l=d(197),m=d(202),n=d(8),o=d(198),p=o.RETURN,q=function(a){return null==a?c:j(a)},r=function(a){var b=a._c;b&&(a._c=c,b())},s=function(a){return a._o===c},t=function(a){s(a)||(a._o=c,r(a))},u=function(a,b){k(a),this._c=c,this._o=a,a=new v(this);try{var d=b(a),e=d;null!=d&&("function"==typeof d.unsubscribe?d=function(){e.unsubscribe()}:j(d),this._c=d)}catch(f){return void a.error(f)}s(this)&&r(this)};u.prototype=m({},{unsubscribe:function unsubscribe(){t(this)}});var v=function(a){this._s=a};v.prototype=m({},{next:function next(a){var b=this._s;if(!s(b)){var c=b._o;try{var d=q(c.next);if(d)return d.call(c,a)}catch(e){try{t(b)}finally{throw e}}}},error:function error(a){var b=this._s;if(s(b))throw a;var d=b._o;b._o=c;try{var e=q(d.error);if(!e)throw a;a=e.call(d,a)}catch(f){try{r(b)}finally{throw f}}return r(b),a},complete:function complete(a){var b=this._s;if(!s(b)){var d=b._o;b._o=c;try{var e=q(d.complete);a=e?e.call(d,a):c}catch(f){try{r(b)}finally{throw f}}return r(b),a}}});var w=function Observable(a){l(this,w,"Observable","_f")._f=j(a)};m(w.prototype,{subscribe:function subscribe(a){return new u(a,this._f)},forEach:function forEach(a){var b=this;return new(g.Promise||f.Promise)(function(c,d){j(a);var e=b.subscribe({next:function(b){try{return a(b)}catch(c){d(c),e.unsubscribe()}},error:d,complete:c})})}}),m(w,{from:function from(a){var b="function"==typeof this?this:w,c=q(k(a)[i]);if(c){var d=k(c.call(a));return d.constructor===b?d:new b(function(a){return d.subscribe(a)})}return new b(function(b){var c=!1;return h(function(){if(!c){try{if(o(a,!1,function(a){if(b.next(a),c)return p})===p)return}catch(d){if(c)throw d;return void b.error(d)}b.complete()}}),function(){c=!0}})},of:function of(){for(var a=0,b=arguments.length,c=Array(b);a<b;)c[a]=arguments[a++];return new("function"==typeof this?this:w)(function(a){var b=!1;return h(function(){if(!b){for(var d=0;d<c.length;++d)if(a.next(c[d]),b)return;a.complete()}}),function(){b=!0}})}}),n(w.prototype,i,function(){return this}),e(e.G,{Observable:w}),d(186)("Observable")},function(a,b,c){var d=c(6),e=c(200);d(d.G+d.B,{setImmediate:e.set,clearImmediate:e.clear})},function(a,b,c){for(var d=c(183),e=c(16),f=c(2),g=c(8),h=c(135),i=c(23),j=i("iterator"),k=i("toStringTag"),l=h.Array,m=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],n=0;n<5;n++){var o,p=m[n],q=f[p],r=q&&q.prototype;if(r){r[j]||g(r,j,l),r[k]||g(r,k,p),h[p]=l;for(o in d)r[o]||e(r,o,d[o],!0)}}},function(a,b,c){var d=c(2),e=c(6),f=c(76),g=c(289),h=d.navigator,i=!!h&&/MSIE .\./.test(h.userAgent),j=function(a){return i?function(b,c){return a(f(g,[].slice.call(arguments,2),"function"==typeof b?b:Function(b)),c)}:a};e(e.G+e.B+e.F*i,{setTimeout:j(d.setTimeout),setInterval:j(d.setInterval)})},function(a,b,c){var d=c(290),e=c(76),f=c(19);a.exports=function(){for(var a=f(this),b=arguments.length,c=Array(b),g=0,h=d._,i=!1;b>g;)(c[g]=arguments[g++])===h&&(i=!0);return function(){var d,f=this,g=arguments.length,j=0,k=0;if(!i&&!g)return e(a,c,f);if(d=c.slice(),i)for(;b>j;j++)d[j]===h&&(d[j]=arguments[k++]);for(;g>k;)d.push(arguments[k++]);return e(a,d,f)}}},function(a,b,c){a.exports=c(2)}]),"undefined"!=typeof module&&module.exports?module.exports=a:"function"==typeof define&&define.amd?define(function(){return a}):b.core=a}(1,1);
//# sourceMappingURL=shim.min.js.map \ No newline at end of file
diff --git a/node_modules/core-js/client/shim.min.js.map b/node_modules/core-js/client/shim.min.js.map
index 60b23fa27..dc5895617 100644
--- a/node_modules/core-js/client/shim.min.js.map
+++ b/node_modules/core-js/client/shim.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["shim.js"],"names":["__e","__g","undefined","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","IE8_DOM_DEFINE","$","$export","DESCRIPTORS","createDesc","html","cel","has","cof","invoke","fails","anObject","aFunction","isObject","toObject","toIObject","toInteger","toIndex","toLength","IObject","IE_PROTO","createArrayMethod","arrayIndexOf","ObjectProto","Object","prototype","ArrayProto","Array","arraySlice","slice","arrayJoin","join","defineProperty","setDesc","getOwnDescriptor","getDesc","defineProperties","setDescs","factories","get","a","O","P","Attributes","e","TypeError","value","propertyIsEnumerable","Properties","keys","getKeys","length","i","S","F","getOwnPropertyDescriptor","keys1","split","keys2","concat","keysLen1","createDict","iframeDocument","iframe","gt","style","display","appendChild","src","contentWindow","document","open","write","close","createGetKeys","names","object","key","result","push","Empty","getPrototypeOf","getProto","constructor","getOwnPropertyNames","getNames","create","construct","len","args","n","Function","bind","that","fn","this","partArgs","arguments","bound","begin","end","klass","start","upTo","size","cloned","charAt","separator","isArray","createArrayReduce","isRight","callbackfn","memo","index","methodize","$fn","arg1","forEach","each","map","filter","some","every","reduce","reduceRight","indexOf","lastIndexOf","el","fromIndex","Math","min","now","Date","lz","num","toISOString","NaN","isFinite","RangeError","d","y","getUTCFullYear","getUTCMilliseconds","s","abs","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","$Object","isEnum","getSymbols","getOwnPropertySymbols","global","core","hide","redefine","ctx","PROTOTYPE","type","name","source","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","B","target","expProto","W","window","self","version","bitmap","enumerable","configurable","writable","exec","SRC","TO_STRING","$toString","TPL","inspectSource","it","val","safe","hasOwnProperty","String","toString","px","random","b","apply","documentElement","is","createElement","un","defined","ceil","floor","isNaN","max","asc","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","res","f","SPECIES","original","C","arg","store","uid","Symbol","SHARED","IS_INCLUDES","$fails","shared","setToStringTag","wks","keyOf","$names","enumKeys","_create","$Symbol","$JSON","JSON","_stringify","stringify","setter","HIDDEN","SymbolRegistry","AllSymbols","useNative","setSymbolDesc","D","protoDesc","wrap","tag","sym","_k","set","isSymbol","$defineProperty","$defineProperties","l","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","$stringify","replacer","$replacer","$$","buggyJSON","symbolStatics","for","keyFor","useSetter","useSimple","def","TAG","stat","windowNames","getWindowNames","symbols","assign","A","K","k","T","$$len","j","x","setPrototypeOf","check","proto","test","buggy","__proto__","classof","ARG","callee","$freeze","freeze","KEY","$seal","seal","$preventExtensions","preventExtensions","$isFrozen","isFrozen","$isSealed","isSealed","$isExtensible","isExtensible","$getPrototypeOf","$keys","FProto","nameRE","NAME","match","HAS_INSTANCE","FunctionProto","toPrimitive","$trim","trim","NUMBER","$Number","Base","BROKEN_COF","TRIM","toNumber","argument","third","radix","maxCode","first","charCodeAt","code","digits","parseInt","Number","valueOf","spaces","space","non","ltrim","RegExp","rtrim","exporter","string","replace","EPSILON","pow","_isFinite","isInteger","number","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","parseFloat","log1p","sqrt","$acosh","acosh","MAX_VALUE","log","LN2","asinh","atanh","sign","cbrt","clz32","LOG2E","cosh","expm1","EPSILON32","MAX32","MIN32","roundTiesToEven","fround","$abs","$sign","Infinity","hypot","value1","value2","div","sum","larg","$imul","imul","UINT16","xn","yn","xl","yl","log10","LN10","log2","sinh","tanh","trunc","fromCharCode","$fromCodePoint","fromCodePoint","raw","callSite","tpl","$at","codePointAt","pos","context","ENDS_WITH","$endsWith","endsWith","searchString","endPosition","search","isRegExp","MATCH","re","INCLUDES","includes","repeat","count","str","STARTS_WITH","$startsWith","startsWith","iterated","_t","_i","point","done","LIBRARY","Iterators","$iterCreate","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Constructor","next","DEFAULT","IS_SET","FORCED","methods","getMethod","kind","values","entries","DEF_VALUES","VALUES_BUG","$native","$default","IteratorPrototype","descriptor","isArrayIter","getIterFn","iter","from","arrayLike","step","iterator","mapfn","mapping","iterFn","ret","getIteratorMethod","SAFE_CLOSING","riter","skipClosing","arr","of","addToUnscopables","Arguments","UNSCOPABLES","copyWithin","to","inc","fill","endPos","$find","forced","find","findIndex","$flags","$RegExp","re1","re2","CORRECT_NEW","piRE","fiU","ignoreCase","multiline","unicode","sticky","flags","regexp","SYMBOL","REPLACE","$replace","searchValue","replaceValue","SEARCH","SPLIT","$split","limit","Wrapper","strictNew","forOf","setProto","same","speciesConstructor","asap","PROMISE","process","isNode","empty","testResolve","sub","promise","resolve","USE_NATIVE","P2","works","then","thenableThenGotten","sameConstructor","getConstructor","isThenable","PromiseCapability","reject","$$resolve","$$reject","perform","error","notify","record","isReject","chain","v","ok","run","reaction","handler","fail","h","setTimeout","console","isUnhandled","emit","onunhandledrejection","reason","_d","$reject","r","$resolve","wrapper","Promise","executor","err","onFulfilled","onRejected","catch","capability","all","iterable","abrupt","remaining","results","alreadyCalled","race","head","last","macrotask","Observer","MutationObserver","WebKitMutationObserver","flush","parent","domain","exit","enter","nextTick","toggle","node","createTextNode","observe","characterData","data","task","defer","channel","port","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","counter","queue","ONREADYSTATECHANGE","listner","event","port2","port1","onmessage","postMessage","addEventListener","importScripts","removeChild","clear","strong","Map","entry","getEntry","redefineAll","$iterDefine","ID","$has","setSpecies","SIZE","fastKey","_f","ADDER","_l","delete","prev","setStrong","$iterDetect","common","IS_WEAK","fixMethod","add","BUGGY_ZERO","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","Set","weak","frozenStore","WEAK","tmp","$WeakMap","WeakMap","method","arrayFind","arrayFindIndex","FrozenStore","findFrozen","splice","WeakSet","_apply","thisArgument","argumentsList","Reflect","Target","newTarget","$args","propertyKey","attributes","deleteProperty","desc","Enumerate","enumerate","receiver","ownKeys","V","existingDescriptor","ownDesc","$includes","at","$pad","padLeft","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","padRight","trimLeft","trimRight","$re","escape","regExp","part","getOwnPropertyDescriptors","$values","isEntries","$entries","toJSON","$task","NL","NodeList","HTC","HTMLCollection","NLProto","HTCProto","ArrayValues","partial","navigator","MSIE","userAgent","time","setInterval","path","pargs","_","holder","$ctx","$Array","statics","setStatics","define","amd"],"mappings":"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","file":"shim.min.js"} \ No newline at end of file
+{"version":3,"sources":["shim.js"],"names":["__e","__g","undefined","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","global","has","DESCRIPTORS","$export","redefine","META","KEY","$fails","shared","setToStringTag","uid","wks","wksExt","wksDefine","keyOf","enumKeys","isArray","anObject","toIObject","toPrimitive","createDesc","_create","gOPNExt","$GOPD","$DP","$keys","gOPD","f","dP","gOPN","$Symbol","Symbol","$JSON","JSON","_stringify","stringify","PROTOTYPE","HIDDEN","TO_PRIMITIVE","isEnum","propertyIsEnumerable","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","Object","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","get","this","value","a","it","key","D","protoDesc","wrap","tag","sym","_k","isSymbol","iterator","$defineProperty","defineProperty","enumerable","$defineProperties","defineProperties","P","keys","i","l","length","$create","create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","$getOwnPropertyNames","getOwnPropertyNames","names","result","push","$getOwnPropertySymbols","getOwnPropertySymbols","IS_OP","TypeError","arguments","$set","configurable","set","toString","name","G","W","F","symbols","split","store","S","for","keyFor","useSetter","useSimple","replacer","$replacer","args","apply","valueOf","Math","window","self","Function","hasOwnProperty","exec","e","core","hide","ctx","type","source","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","B","target","expProto","U","R","version","object","IE8_DOM_DEFINE","O","Attributes","isObject","document","is","createElement","fn","val","bitmap","writable","SRC","TO_STRING","$toString","TPL","inspectSource","safe","isFunction","join","String","prototype","px","random","concat","aFunction","that","b","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","fastKey","getWeak","onFreeze","meta","NEED","SHARED","def","TAG","stat","USE_SYMBOL","$exports","LIBRARY","charAt","getKeys","el","index","enumBugKeys","arrayIndexOf","IE_PROTO","IObject","defined","cof","slice","toLength","toIndex","IS_INCLUDES","$this","fromIndex","toInteger","min","ceil","floor","isNaN","max","gOPS","pIE","getSymbols","Array","arg","dPs","Empty","createDict","iframeDocument","iframe","lt","gt","style","display","appendChild","src","contentWindow","open","write","close","Properties","documentElement","windowNames","getWindowNames","hiddenKeys","fails","toObject","$getPrototypeOf","getPrototypeOf","constructor","$freeze","freeze","$seal","seal","$preventExtensions","$isFrozen","isFrozen","$isSealed","isSealed","$isExtensible","assign","$assign","A","K","forEach","k","T","aLen","j","x","y","setPrototypeOf","check","proto","test","buggy","__proto__","classof","ARG","tryGet","callee","bind","invoke","arraySlice","factories","construct","len","n","partArgs","bound","un","FProto","nameRE","NAME","match","HAS_INSTANCE","FunctionProto","inheritIfRequired","$trim","trim","NUMBER","$Number","Base","BROKEN_COF","TRIM","toNumber","argument","third","radix","maxCode","first","charCodeAt","NaN","code","digits","parseInt","Number","C","spaces","space","non","ltrim","RegExp","rtrim","exporter","ALIAS","FORCE","string","TYPE","replace","aNumberValue","repeat","$toFixed","toFixed","data","ERROR","ZERO","multiply","c2","divide","numToString","s","t","pow","acc","log","x2","fractionDigits","z","RangeError","msg","count","str","res","Infinity","$toPrecision","toPrecision","precision","EPSILON","_isFinite","isFinite","isInteger","number","abs","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","$parseFloat","parseFloat","$parseInt","ws","hex","log1p","sqrt","$acosh","acosh","MAX_VALUE","LN2","asinh","$asinh","$atanh","atanh","sign","cbrt","clz32","LOG2E","cosh","$expm1","expm1","EPSILON32","MAX32","MIN32","roundTiesToEven","fround","$abs","$sign","hypot","value1","value2","div","sum","larg","$imul","imul","UINT16","xn","yn","xl","yl","log10","LN10","log2","sinh","tanh","trunc","fromCharCode","$fromCodePoint","fromCodePoint","raw","callSite","tpl","$at","codePointAt","pos","context","ENDS_WITH","$endsWith","endsWith","searchString","endPosition","end","search","isRegExp","MATCH","re","INCLUDES","includes","indexOf","STARTS_WITH","$startsWith","startsWith","iterated","_t","_i","point","done","Iterators","$iterCreate","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Constructor","next","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","values","entries","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","descriptor","createHTML","anchor","quot","attribute","p1","toLowerCase","big","blink","bold","fixed","fontcolor","color","fontsize","size","italics","link","url","small","strike","sub","sup","isArrayIter","createProperty","getIterFn","iter","from","arrayLike","step","mapfn","mapping","iterFn","ret","ArrayProto","getIteratorMethod","SAFE_CLOSING","riter","skipClosing","arr","of","arrayJoin","separator","method","html","begin","klass","start","upTo","cloned","$sort","sort","comparefn","$forEach","STRICT","callbackfn","asc","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","speciesConstructor","original","SPECIES","$map","map","$filter","filter","$some","some","$every","every","$reduce","reduce","memo","isRight","reduceRight","$indexOf","NEGATIVE_ZERO","searchElement","lastIndexOf","copyWithin","to","inc","UNSCOPABLES","fill","endPos","$find","forced","find","findIndex","addToUnscopables","Arguments","$flags","$RegExp","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","proxy","ignoreCase","multiline","unicode","sticky","define","flags","$match","regexp","SYMBOL","fns","strfn","rxfn","REPLACE","$replace","searchValue","replaceValue","SEARCH","$search","SPLIT","$split","_split","$push","$SPLIT","LENGTH","LAST_INDEX","NPCG","limit","separator2","lastIndex","lastLength","output","lastLastIndex","splitLimit","separatorCopy","Internal","GenericPromiseCapability","Wrapper","anInstance","forOf","task","microtask","PROMISE","process","$Promise","isNode","empty","promise","resolve","FakePromise","PromiseRejectionEvent","then","sameConstructor","isThenable","newPromiseCapability","PromiseCapability","reject","$$resolve","$$reject","perform","error","notify","isReject","_n","chain","_c","_v","ok","_s","run","reaction","handler","fail","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","abrupt","console","isUnhandled","emit","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_d","_w","$resolve","wrapper","Promise","executor","err","onFulfilled","onRejected","catch","r","capability","all","iterable","remaining","$index","alreadyCalled","race","forbiddenField","BREAK","RETURN","defer","channel","port","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","counter","queue","ONREADYSTATECHANGE","listener","event","nextTick","port2","port1","onmessage","postMessage","addEventListener","importScripts","removeChild","setTimeout","clear","macrotask","Observer","MutationObserver","WebKitMutationObserver","head","last","flush","parent","toggle","node","createTextNode","observe","characterData","strong","Map","entry","getEntry","v","redefineAll","$iterDefine","setSpecies","SIZE","_f","getConstructor","ADDER","_l","delete","prev","setStrong","$iterDetect","common","IS_WEAK","fixMethod","add","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","Set","InternalMap","each","weak","uncaughtFrozenStore","ufstore","tmp","WeakMap","$WeakMap","createArrayMethod","$has","arrayFind","arrayFindIndex","UncaughtFrozenStore","findUncaughtFrozen","splice","WeakSet","rApply","Reflect","fApply","thisArgument","argumentsList","L","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","propertyKey","attributes","deleteProperty","desc","Enumerate","enumerate","receiver","getProto","ownKeys","V","existingDescriptor","ownDesc","setProto","now","Date","getTime","toJSON","toISOString","pv","lz","num","d","getUTCFullYear","getUTCMilliseconds","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","DateProto","INVALID_DATE","hint","$typed","buffer","ArrayBuffer","$ArrayBuffer","$DataView","DataView","$isView","ABV","isView","$slice","VIEW","ARRAY_BUFFER","CONSTR","byteLength","final","viewS","viewT","setUint8","getUint8","Typed","TYPED","TypedArrayConstructors","arrayFill","DATA_VIEW","WRONG_LENGTH","WRONG_INDEX","BaseBuffer","BUFFER","BYTE_LENGTH","BYTE_OFFSET","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","eLen","eMax","eBias","rt","unpackIEEE754","nBits","unpackI32","bytes","packI8","packI16","packI32","packF64","packF32","addGetter","internal","view","isLittleEndian","numIndex","intIndex","_b","pack","reverse","conversion","validateArrayBufferArguments","numberLength","ArrayBufferProto","$setInt8","setInt8","getInt8","byteOffset","bufferLength","offset","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","init","Int8Array","$buffer","propertyDesc","same","createArrayIncludes","ArrayIterators","arrayCopyWithin","Uint8Array","SHARED_BUFFER","BYTES_PER_ELEMENT","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayIncludes","arrayValues","arrayKeys","arrayEntries","arrayLastIndexOf","arrayReduce","arrayReduceRight","arraySort","arrayToString","arrayToLocaleString","toLocaleString","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","TYPED_ARRAY","allocate","LITTLE_ENDIAN","Uint16Array","FORCED_SET","strictToLength","SAME","toOffset","BYTES","validate","speciesFromList","list","fromList","$from","$of","TO_LOCALE_BUG","$toLocaleString","predicate","middle","subarray","$begin","$iterators","isTAIndex","$getDesc","$setDesc","$TypedArrayPrototype$","CLAMPED","ISNT_UINT8","GETTER","SETTER","TypedArray","TAC","TypedArrayPrototype","getter","o","round","addElement","$offset","$length","$len","$nativeIterator","CORRECT_ITER_NAME","$iterator","Uint8ClampedArray","Int16Array","Int32Array","Uint32Array","Float32Array","Float64Array","$includes","at","$pad","padStart","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","padEnd","trimLeft","trimRight","getFlags","RegExpProto","$RegExpStringIterator","_r","matchAll","rx","getOwnPropertyDescriptors","getDesc","$values","isEntries","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","isError","iaddh","x0","x1","y0","y1","$x0","$x1","$y0","isubh","imulh","u","$u","$v","u0","v0","u1","v1","umulh","metadata","toMetaKey","ordinaryDefineOwnMetadata","defineMetadata","metadataKey","metadataValue","targetKey","getOrCreateMetadataMap","targetMetadata","keyMetadata","ordinaryHasOwnMetadata","MetadataKey","metadataMap","ordinaryGetOwnMetadata","MetadataValue","ordinaryOwnMetadataKeys","_","deleteMetadata","ordinaryGetMetadata","hasOwn","getMetadata","ordinaryMetadataKeys","oKeys","pKeys","getMetadataKeys","getOwnMetadata","getOwnMetadataKeys","ordinaryHasMetadata","hasMetadata","hasOwnMetadata","decorator","asap","OBSERVABLE","cleanupSubscription","subscription","cleanup","subscriptionClosed","_o","closeSubscription","Subscription","observer","subscriber","SubscriptionObserver","unsubscribe","complete","$Observable","Observable","subscribe","observable","items","$task","TO_STRING_TAG","ArrayValues","collections","Collection","partial","navigator","MSIE","userAgent","time","setInterval","path","pargs","holder","amd"],"mappings":";;;;;;CAMC,SAASA,EAAKC,EAAKC,GACpB,cACS,SAAUC,GAKT,QAASC,qBAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,MAAOC,GAAiBD,GAAUE,OAGnC,IAAIC,GAASF,EAAiBD,IAC7BE,WACAE,GAAIJ,EACJK,QAAQ,EAUT,OANAP,GAAQE,GAAUM,KAAKH,EAAOD,QAASC,EAAQA,EAAOD,QAASH,qBAG/DI,EAAOE,QAAS,EAGTF,EAAOD,QAvBf,GAAID,KAqCJ,OATAF,qBAAoBQ,EAAIT,EAGxBC,oBAAoBS,EAAIP,EAGxBF,oBAAoBU,EAAI,GAGjBV,oBAAoB,KAK/B,SAASI,EAAQD,EAASH,GAE/BA,EAAoB,GACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,K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","file":"shim.min.js"} \ No newline at end of file
diff --git a/node_modules/core-js/core/_.js b/node_modules/core-js/core/_.js
index 475a66cdf..8a99f7062 100644
--- a/node_modules/core-js/core/_.js
+++ b/node_modules/core-js/core/_.js
@@ -1,2 +1,2 @@
require('../modules/core.function.part');
-module.exports = require('../modules/$.core')._; \ No newline at end of file
+module.exports = require('../modules/_core')._; \ No newline at end of file
diff --git a/node_modules/core-js/core/delay.js b/node_modules/core-js/core/delay.js
index 1ff9a56d5..188573884 100644
--- a/node_modules/core-js/core/delay.js
+++ b/node_modules/core-js/core/delay.js
@@ -1,2 +1,2 @@
require('../modules/core.delay');
-module.exports = require('../modules/$.core').delay;
+module.exports = require('../modules/_core').delay;
diff --git a/node_modules/core-js/core/dict.js b/node_modules/core-js/core/dict.js
index ed848e2c2..da84a8d88 100644
--- a/node_modules/core-js/core/dict.js
+++ b/node_modules/core-js/core/dict.js
@@ -1,2 +1,2 @@
require('../modules/core.dict');
-module.exports = require('../modules/$.core').Dict; \ No newline at end of file
+module.exports = require('../modules/_core').Dict; \ No newline at end of file
diff --git a/node_modules/core-js/core/function.js b/node_modules/core-js/core/function.js
index 42b6dbb84..3b8d01317 100644
--- a/node_modules/core-js/core/function.js
+++ b/node_modules/core-js/core/function.js
@@ -1,2 +1,2 @@
require('../modules/core.function.part');
-module.exports = require('../modules/$.core').Function;
+module.exports = require('../modules/_core').Function;
diff --git a/node_modules/core-js/core/index.js b/node_modules/core-js/core/index.js
index 3d50bdb63..2b20fd9ec 100644
--- a/node_modules/core-js/core/index.js
+++ b/node_modules/core-js/core/index.js
@@ -9,7 +9,7 @@ require('../modules/core.object.classof');
require('../modules/core.object.define');
require('../modules/core.object.make');
require('../modules/core.number.iterator');
+require('../modules/core.regexp.escape');
require('../modules/core.string.escape-html');
require('../modules/core.string.unescape-html');
-require('../modules/core.log');
-module.exports = require('../modules/$.core');
+module.exports = require('../modules/_core');
diff --git a/node_modules/core-js/core/log.js b/node_modules/core-js/core/log.js
deleted file mode 100644
index 899d6ed01..000000000
--- a/node_modules/core-js/core/log.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.log');
-module.exports = require('../modules/$.core').log;
diff --git a/node_modules/core-js/core/number.js b/node_modules/core-js/core/number.js
index 6e3cdbf6f..62f632c51 100644
--- a/node_modules/core-js/core/number.js
+++ b/node_modules/core-js/core/number.js
@@ -1,2 +1,2 @@
require('../modules/core.number.iterator');
-module.exports = require('../modules/$.core').Number; \ No newline at end of file
+module.exports = require('../modules/_core').Number; \ No newline at end of file
diff --git a/node_modules/core-js/core/object.js b/node_modules/core-js/core/object.js
index 63325663a..04e539c90 100644
--- a/node_modules/core-js/core/object.js
+++ b/node_modules/core-js/core/object.js
@@ -2,4 +2,4 @@ require('../modules/core.object.is-object');
require('../modules/core.object.classof');
require('../modules/core.object.define');
require('../modules/core.object.make');
-module.exports = require('../modules/$.core').Object;
+module.exports = require('../modules/_core').Object;
diff --git a/node_modules/core-js/core/string.js b/node_modules/core-js/core/string.js
index 829e0c61e..8da740c6e 100644
--- a/node_modules/core-js/core/string.js
+++ b/node_modules/core-js/core/string.js
@@ -1,3 +1,3 @@
require('../modules/core.string.escape-html');
require('../modules/core.string.unescape-html');
-module.exports = require('../modules/$.core').String; \ No newline at end of file
+module.exports = require('../modules/_core').String; \ No newline at end of file
diff --git a/node_modules/core-js/es5/index.js b/node_modules/core-js/es5/index.js
index 3c23364a8..580f1a670 100644
--- a/node_modules/core-js/es5/index.js
+++ b/node_modules/core-js/es5/index.js
@@ -1,9 +1,37 @@
-require('../modules/es5');
+require('../modules/es6.object.create');
+require('../modules/es6.object.define-property');
+require('../modules/es6.object.define-properties');
+require('../modules/es6.object.get-own-property-descriptor');
+require('../modules/es6.object.get-prototype-of');
+require('../modules/es6.object.keys');
+require('../modules/es6.object.get-own-property-names');
require('../modules/es6.object.freeze');
require('../modules/es6.object.seal');
require('../modules/es6.object.prevent-extensions');
require('../modules/es6.object.is-frozen');
require('../modules/es6.object.is-sealed');
require('../modules/es6.object.is-extensible');
+require('../modules/es6.function.bind');
+require('../modules/es6.array.is-array');
+require('../modules/es6.array.join');
+require('../modules/es6.array.slice');
+require('../modules/es6.array.sort');
+require('../modules/es6.array.for-each');
+require('../modules/es6.array.map');
+require('../modules/es6.array.filter');
+require('../modules/es6.array.some');
+require('../modules/es6.array.every');
+require('../modules/es6.array.reduce');
+require('../modules/es6.array.reduce-right');
+require('../modules/es6.array.index-of');
+require('../modules/es6.array.last-index-of');
+require('../modules/es6.number.to-fixed');
+require('../modules/es6.number.to-precision');
+require('../modules/es6.date.now');
+require('../modules/es6.date.to-iso-string');
+require('../modules/es6.date.to-json');
+require('../modules/es6.parse-int');
+require('../modules/es6.parse-float');
require('../modules/es6.string.trim');
-module.exports = require('../modules/$.core'); \ No newline at end of file
+require('../modules/es6.regexp.to-string');
+module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/core-js/es6/array.js b/node_modules/core-js/es6/array.js
index 36629ca04..428d3e8c4 100644
--- a/node_modules/core-js/es6/array.js
+++ b/node_modules/core-js/es6/array.js
@@ -1,10 +1,23 @@
require('../modules/es6.string.iterator');
+require('../modules/es6.array.is-array');
require('../modules/es6.array.from');
require('../modules/es6.array.of');
-require('../modules/es6.array.species');
-require('../modules/es6.array.iterator');
+require('../modules/es6.array.join');
+require('../modules/es6.array.slice');
+require('../modules/es6.array.sort');
+require('../modules/es6.array.for-each');
+require('../modules/es6.array.map');
+require('../modules/es6.array.filter');
+require('../modules/es6.array.some');
+require('../modules/es6.array.every');
+require('../modules/es6.array.reduce');
+require('../modules/es6.array.reduce-right');
+require('../modules/es6.array.index-of');
+require('../modules/es6.array.last-index-of');
require('../modules/es6.array.copy-within');
require('../modules/es6.array.fill');
require('../modules/es6.array.find');
require('../modules/es6.array.find-index');
-module.exports = require('../modules/$.core').Array; \ No newline at end of file
+require('../modules/es6.array.species');
+require('../modules/es6.array.iterator');
+module.exports = require('../modules/_core').Array; \ No newline at end of file
diff --git a/node_modules/core-js/es6/function.js b/node_modules/core-js/es6/function.js
index 3e61dcd46..ff685da27 100644
--- a/node_modules/core-js/es6/function.js
+++ b/node_modules/core-js/es6/function.js
@@ -1,3 +1,4 @@
+require('../modules/es6.function.bind');
require('../modules/es6.function.name');
require('../modules/es6.function.has-instance');
-module.exports = require('../modules/$.core').Function; \ No newline at end of file
+module.exports = require('../modules/_core').Function; \ No newline at end of file
diff --git a/node_modules/core-js/es6/index.js b/node_modules/core-js/es6/index.js
index b9fc80be6..59df50921 100644
--- a/node_modules/core-js/es6/index.js
+++ b/node_modules/core-js/es6/index.js
@@ -1,21 +1,29 @@
require('../modules/es6.symbol');
-require('../modules/es6.object.assign');
-require('../modules/es6.object.is');
-require('../modules/es6.object.set-prototype-of');
-require('../modules/es6.object.to-string');
+require('../modules/es6.object.create');
+require('../modules/es6.object.define-property');
+require('../modules/es6.object.define-properties');
+require('../modules/es6.object.get-own-property-descriptor');
+require('../modules/es6.object.get-prototype-of');
+require('../modules/es6.object.keys');
+require('../modules/es6.object.get-own-property-names');
require('../modules/es6.object.freeze');
require('../modules/es6.object.seal');
require('../modules/es6.object.prevent-extensions');
require('../modules/es6.object.is-frozen');
require('../modules/es6.object.is-sealed');
require('../modules/es6.object.is-extensible');
-require('../modules/es6.object.get-own-property-descriptor');
-require('../modules/es6.object.get-prototype-of');
-require('../modules/es6.object.keys');
-require('../modules/es6.object.get-own-property-names');
+require('../modules/es6.object.assign');
+require('../modules/es6.object.is');
+require('../modules/es6.object.set-prototype-of');
+require('../modules/es6.object.to-string');
+require('../modules/es6.function.bind');
require('../modules/es6.function.name');
require('../modules/es6.function.has-instance');
+require('../modules/es6.parse-int');
+require('../modules/es6.parse-float');
require('../modules/es6.number.constructor');
+require('../modules/es6.number.to-fixed');
+require('../modules/es6.number.to-precision');
require('../modules/es6.number.epsilon');
require('../modules/es6.number.is-finite');
require('../modules/es6.number.is-integer');
@@ -51,15 +59,47 @@ require('../modules/es6.string.ends-with');
require('../modules/es6.string.includes');
require('../modules/es6.string.repeat');
require('../modules/es6.string.starts-with');
+require('../modules/es6.string.anchor');
+require('../modules/es6.string.big');
+require('../modules/es6.string.blink');
+require('../modules/es6.string.bold');
+require('../modules/es6.string.fixed');
+require('../modules/es6.string.fontcolor');
+require('../modules/es6.string.fontsize');
+require('../modules/es6.string.italics');
+require('../modules/es6.string.link');
+require('../modules/es6.string.small');
+require('../modules/es6.string.strike');
+require('../modules/es6.string.sub');
+require('../modules/es6.string.sup');
+require('../modules/es6.date.now');
+require('../modules/es6.date.to-json');
+require('../modules/es6.date.to-iso-string');
+require('../modules/es6.date.to-string');
+require('../modules/es6.date.to-primitive');
+require('../modules/es6.array.is-array');
require('../modules/es6.array.from');
require('../modules/es6.array.of');
-require('../modules/es6.array.species');
-require('../modules/es6.array.iterator');
+require('../modules/es6.array.join');
+require('../modules/es6.array.slice');
+require('../modules/es6.array.sort');
+require('../modules/es6.array.for-each');
+require('../modules/es6.array.map');
+require('../modules/es6.array.filter');
+require('../modules/es6.array.some');
+require('../modules/es6.array.every');
+require('../modules/es6.array.reduce');
+require('../modules/es6.array.reduce-right');
+require('../modules/es6.array.index-of');
+require('../modules/es6.array.last-index-of');
require('../modules/es6.array.copy-within');
require('../modules/es6.array.fill');
require('../modules/es6.array.find');
require('../modules/es6.array.find-index');
+require('../modules/es6.array.species');
+require('../modules/es6.array.iterator');
require('../modules/es6.regexp.constructor');
+require('../modules/es6.regexp.to-string');
require('../modules/es6.regexp.flags');
require('../modules/es6.regexp.match');
require('../modules/es6.regexp.replace');
@@ -70,6 +110,17 @@ require('../modules/es6.map');
require('../modules/es6.set');
require('../modules/es6.weak-map');
require('../modules/es6.weak-set');
+require('../modules/es6.typed.array-buffer');
+require('../modules/es6.typed.data-view');
+require('../modules/es6.typed.int8-array');
+require('../modules/es6.typed.uint8-array');
+require('../modules/es6.typed.uint8-clamped-array');
+require('../modules/es6.typed.int16-array');
+require('../modules/es6.typed.uint16-array');
+require('../modules/es6.typed.int32-array');
+require('../modules/es6.typed.uint32-array');
+require('../modules/es6.typed.float32-array');
+require('../modules/es6.typed.float64-array');
require('../modules/es6.reflect.apply');
require('../modules/es6.reflect.construct');
require('../modules/es6.reflect.define-property');
@@ -84,4 +135,4 @@ require('../modules/es6.reflect.own-keys');
require('../modules/es6.reflect.prevent-extensions');
require('../modules/es6.reflect.set');
require('../modules/es6.reflect.set-prototype-of');
-module.exports = require('../modules/$.core'); \ No newline at end of file
+module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/core-js/es6/map.js b/node_modules/core-js/es6/map.js
index 521a192e4..50f04c1f2 100644
--- a/node_modules/core-js/es6/map.js
+++ b/node_modules/core-js/es6/map.js
@@ -2,4 +2,4 @@ require('../modules/es6.object.to-string');
require('../modules/es6.string.iterator');
require('../modules/web.dom.iterable');
require('../modules/es6.map');
-module.exports = require('../modules/$.core').Map; \ No newline at end of file
+module.exports = require('../modules/_core').Map; \ No newline at end of file
diff --git a/node_modules/core-js/es6/math.js b/node_modules/core-js/es6/math.js
index 8b5a2e799..f26b5b296 100644
--- a/node_modules/core-js/es6/math.js
+++ b/node_modules/core-js/es6/math.js
@@ -15,4 +15,4 @@ require('../modules/es6.math.sign');
require('../modules/es6.math.sinh');
require('../modules/es6.math.tanh');
require('../modules/es6.math.trunc');
-module.exports = require('../modules/$.core').Math; \ No newline at end of file
+module.exports = require('../modules/_core').Math; \ No newline at end of file
diff --git a/node_modules/core-js/es6/number.js b/node_modules/core-js/es6/number.js
index 8f4877031..1dafcda43 100644
--- a/node_modules/core-js/es6/number.js
+++ b/node_modules/core-js/es6/number.js
@@ -1,4 +1,6 @@
require('../modules/es6.number.constructor');
+require('../modules/es6.number.to-fixed');
+require('../modules/es6.number.to-precision');
require('../modules/es6.number.epsilon');
require('../modules/es6.number.is-finite');
require('../modules/es6.number.is-integer');
@@ -8,4 +10,4 @@ require('../modules/es6.number.max-safe-integer');
require('../modules/es6.number.min-safe-integer');
require('../modules/es6.number.parse-float');
require('../modules/es6.number.parse-int');
-module.exports = require('../modules/$.core').Number; \ No newline at end of file
+module.exports = require('../modules/_core').Number; \ No newline at end of file
diff --git a/node_modules/core-js/es6/object.js b/node_modules/core-js/es6/object.js
index 94af189f5..aada8c38f 100644
--- a/node_modules/core-js/es6/object.js
+++ b/node_modules/core-js/es6/object.js
@@ -1,17 +1,20 @@
require('../modules/es6.symbol');
-require('../modules/es6.object.assign');
-require('../modules/es6.object.is');
-require('../modules/es6.object.set-prototype-of');
-require('../modules/es6.object.to-string');
+require('../modules/es6.object.create');
+require('../modules/es6.object.define-property');
+require('../modules/es6.object.define-properties');
+require('../modules/es6.object.get-own-property-descriptor');
+require('../modules/es6.object.get-prototype-of');
+require('../modules/es6.object.keys');
+require('../modules/es6.object.get-own-property-names');
require('../modules/es6.object.freeze');
require('../modules/es6.object.seal');
require('../modules/es6.object.prevent-extensions');
require('../modules/es6.object.is-frozen');
require('../modules/es6.object.is-sealed');
require('../modules/es6.object.is-extensible');
-require('../modules/es6.object.get-own-property-descriptor');
-require('../modules/es6.object.get-prototype-of');
-require('../modules/es6.object.keys');
-require('../modules/es6.object.get-own-property-names');
+require('../modules/es6.object.assign');
+require('../modules/es6.object.is');
+require('../modules/es6.object.set-prototype-of');
+require('../modules/es6.object.to-string');
-module.exports = require('../modules/$.core').Object; \ No newline at end of file
+module.exports = require('../modules/_core').Object; \ No newline at end of file
diff --git a/node_modules/core-js/es6/promise.js b/node_modules/core-js/es6/promise.js
index 0a0996139..c901c8595 100644
--- a/node_modules/core-js/es6/promise.js
+++ b/node_modules/core-js/es6/promise.js
@@ -2,4 +2,4 @@ require('../modules/es6.object.to-string');
require('../modules/es6.string.iterator');
require('../modules/web.dom.iterable');
require('../modules/es6.promise');
-module.exports = require('../modules/$.core').Promise; \ No newline at end of file
+module.exports = require('../modules/_core').Promise; \ No newline at end of file
diff --git a/node_modules/core-js/es6/reflect.js b/node_modules/core-js/es6/reflect.js
index 3c2f74eb8..18bdb3c2e 100644
--- a/node_modules/core-js/es6/reflect.js
+++ b/node_modules/core-js/es6/reflect.js
@@ -12,4 +12,4 @@ require('../modules/es6.reflect.own-keys');
require('../modules/es6.reflect.prevent-extensions');
require('../modules/es6.reflect.set');
require('../modules/es6.reflect.set-prototype-of');
-module.exports = require('../modules/$.core').Reflect; \ No newline at end of file
+module.exports = require('../modules/_core').Reflect; \ No newline at end of file
diff --git a/node_modules/core-js/es6/regexp.js b/node_modules/core-js/es6/regexp.js
index 195d36d43..27cc827f9 100644
--- a/node_modules/core-js/es6/regexp.js
+++ b/node_modules/core-js/es6/regexp.js
@@ -1,7 +1,8 @@
require('../modules/es6.regexp.constructor');
+require('../modules/es6.regexp.to-string');
require('../modules/es6.regexp.flags');
require('../modules/es6.regexp.match');
require('../modules/es6.regexp.replace');
require('../modules/es6.regexp.search');
require('../modules/es6.regexp.split');
-module.exports = require('../modules/$.core').RegExp; \ No newline at end of file
+module.exports = require('../modules/_core').RegExp; \ No newline at end of file
diff --git a/node_modules/core-js/es6/set.js b/node_modules/core-js/es6/set.js
index 6a84f5891..2a2557ced 100644
--- a/node_modules/core-js/es6/set.js
+++ b/node_modules/core-js/es6/set.js
@@ -2,4 +2,4 @@ require('../modules/es6.object.to-string');
require('../modules/es6.string.iterator');
require('../modules/web.dom.iterable');
require('../modules/es6.set');
-module.exports = require('../modules/$.core').Set; \ No newline at end of file
+module.exports = require('../modules/_core').Set; \ No newline at end of file
diff --git a/node_modules/core-js/es6/string.js b/node_modules/core-js/es6/string.js
index bc7a1ab10..83033621f 100644
--- a/node_modules/core-js/es6/string.js
+++ b/node_modules/core-js/es6/string.js
@@ -7,8 +7,21 @@ require('../modules/es6.string.ends-with');
require('../modules/es6.string.includes');
require('../modules/es6.string.repeat');
require('../modules/es6.string.starts-with');
+require('../modules/es6.string.anchor');
+require('../modules/es6.string.big');
+require('../modules/es6.string.blink');
+require('../modules/es6.string.bold');
+require('../modules/es6.string.fixed');
+require('../modules/es6.string.fontcolor');
+require('../modules/es6.string.fontsize');
+require('../modules/es6.string.italics');
+require('../modules/es6.string.link');
+require('../modules/es6.string.small');
+require('../modules/es6.string.strike');
+require('../modules/es6.string.sub');
+require('../modules/es6.string.sup');
require('../modules/es6.regexp.match');
require('../modules/es6.regexp.replace');
require('../modules/es6.regexp.search');
require('../modules/es6.regexp.split');
-module.exports = require('../modules/$.core').String; \ No newline at end of file
+module.exports = require('../modules/_core').String; \ No newline at end of file
diff --git a/node_modules/core-js/es6/symbol.js b/node_modules/core-js/es6/symbol.js
index ae2405b51..e578e3af3 100644
--- a/node_modules/core-js/es6/symbol.js
+++ b/node_modules/core-js/es6/symbol.js
@@ -1,3 +1,3 @@
require('../modules/es6.symbol');
require('../modules/es6.object.to-string');
-module.exports = require('../modules/$.core').Symbol; \ No newline at end of file
+module.exports = require('../modules/_core').Symbol; \ No newline at end of file
diff --git a/node_modules/core-js/es6/weak-map.js b/node_modules/core-js/es6/weak-map.js
index f2c6db892..655866c2d 100644
--- a/node_modules/core-js/es6/weak-map.js
+++ b/node_modules/core-js/es6/weak-map.js
@@ -1,4 +1,4 @@
require('../modules/es6.object.to-string');
require('../modules/es6.array.iterator');
require('../modules/es6.weak-map');
-module.exports = require('../modules/$.core').WeakMap; \ No newline at end of file
+module.exports = require('../modules/_core').WeakMap; \ No newline at end of file
diff --git a/node_modules/core-js/es6/weak-set.js b/node_modules/core-js/es6/weak-set.js
index a058c8a6a..eef1af2a8 100644
--- a/node_modules/core-js/es6/weak-set.js
+++ b/node_modules/core-js/es6/weak-set.js
@@ -1,4 +1,4 @@
require('../modules/es6.object.to-string');
require('../modules/web.dom.iterable');
require('../modules/es6.weak-set');
-module.exports = require('../modules/$.core').WeakSet; \ No newline at end of file
+module.exports = require('../modules/_core').WeakSet; \ No newline at end of file
diff --git a/node_modules/core-js/es7/array.js b/node_modules/core-js/es7/array.js
index e58f90579..9fb57fa64 100644
--- a/node_modules/core-js/es7/array.js
+++ b/node_modules/core-js/es7/array.js
@@ -1,2 +1,2 @@
require('../modules/es7.array.includes');
-module.exports = require('../modules/$.core').Array; \ No newline at end of file
+module.exports = require('../modules/_core').Array; \ No newline at end of file
diff --git a/node_modules/core-js/es7/index.js b/node_modules/core-js/es7/index.js
index a277b6398..b8c90b86e 100644
--- a/node_modules/core-js/es7/index.js
+++ b/node_modules/core-js/es7/index.js
@@ -1,13 +1,36 @@
require('../modules/es7.array.includes');
require('../modules/es7.string.at');
-require('../modules/es7.string.pad-left');
-require('../modules/es7.string.pad-right');
+require('../modules/es7.string.pad-start');
+require('../modules/es7.string.pad-end');
require('../modules/es7.string.trim-left');
require('../modules/es7.string.trim-right');
-require('../modules/es7.regexp.escape');
+require('../modules/es7.string.match-all');
+require('../modules/es7.symbol.async-iterator');
+require('../modules/es7.symbol.observable');
require('../modules/es7.object.get-own-property-descriptors');
require('../modules/es7.object.values');
require('../modules/es7.object.entries');
+require('../modules/es7.object.define-getter');
+require('../modules/es7.object.define-setter');
+require('../modules/es7.object.lookup-getter');
+require('../modules/es7.object.lookup-setter');
require('../modules/es7.map.to-json');
require('../modules/es7.set.to-json');
-module.exports = require('../modules/$.core'); \ No newline at end of file
+require('../modules/es7.system.global');
+require('../modules/es7.error.is-error');
+require('../modules/es7.math.iaddh');
+require('../modules/es7.math.isubh');
+require('../modules/es7.math.imulh');
+require('../modules/es7.math.umulh');
+require('../modules/es7.reflect.define-metadata');
+require('../modules/es7.reflect.delete-metadata');
+require('../modules/es7.reflect.get-metadata');
+require('../modules/es7.reflect.get-metadata-keys');
+require('../modules/es7.reflect.get-own-metadata');
+require('../modules/es7.reflect.get-own-metadata-keys');
+require('../modules/es7.reflect.has-metadata');
+require('../modules/es7.reflect.has-own-metadata');
+require('../modules/es7.reflect.metadata');
+require('../modules/es7.asap');
+require('../modules/es7.observable');
+module.exports = require('../modules/_core');
diff --git a/node_modules/core-js/es7/map.js b/node_modules/core-js/es7/map.js
index fe5199928..dfa32fd26 100644
--- a/node_modules/core-js/es7/map.js
+++ b/node_modules/core-js/es7/map.js
@@ -1,2 +1,2 @@
require('../modules/es7.map.to-json');
-module.exports = require('../modules/$.core').Map; \ No newline at end of file
+module.exports = require('../modules/_core').Map; \ No newline at end of file
diff --git a/node_modules/core-js/es7/object.js b/node_modules/core-js/es7/object.js
index b05853031..c76b754d4 100644
--- a/node_modules/core-js/es7/object.js
+++ b/node_modules/core-js/es7/object.js
@@ -1,4 +1,8 @@
require('../modules/es7.object.get-own-property-descriptors');
require('../modules/es7.object.values');
require('../modules/es7.object.entries');
-module.exports = require('../modules/$.core').Object; \ No newline at end of file
+require('../modules/es7.object.define-getter');
+require('../modules/es7.object.define-setter');
+require('../modules/es7.object.lookup-getter');
+require('../modules/es7.object.lookup-setter');
+module.exports = require('../modules/_core').Object; \ No newline at end of file
diff --git a/node_modules/core-js/es7/regexp.js b/node_modules/core-js/es7/regexp.js
deleted file mode 100644
index cb24f98bb..000000000
--- a/node_modules/core-js/es7/regexp.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es7.regexp.escape');
-module.exports = require('../modules/$.core').RegExp; \ No newline at end of file
diff --git a/node_modules/core-js/es7/set.js b/node_modules/core-js/es7/set.js
index 16e945283..b5c19c44f 100644
--- a/node_modules/core-js/es7/set.js
+++ b/node_modules/core-js/es7/set.js
@@ -1,2 +1,2 @@
require('../modules/es7.set.to-json');
-module.exports = require('../modules/$.core').Set; \ No newline at end of file
+module.exports = require('../modules/_core').Set; \ No newline at end of file
diff --git a/node_modules/core-js/es7/string.js b/node_modules/core-js/es7/string.js
index bca0886ce..6e413b4c2 100644
--- a/node_modules/core-js/es7/string.js
+++ b/node_modules/core-js/es7/string.js
@@ -1,6 +1,7 @@
require('../modules/es7.string.at');
-require('../modules/es7.string.pad-left');
-require('../modules/es7.string.pad-right');
+require('../modules/es7.string.pad-start');
+require('../modules/es7.string.pad-end');
require('../modules/es7.string.trim-left');
require('../modules/es7.string.trim-right');
-module.exports = require('../modules/$.core').String; \ No newline at end of file
+require('../modules/es7.string.match-all');
+module.exports = require('../modules/_core').String;
diff --git a/node_modules/core-js/fn/_.js b/node_modules/core-js/fn/_.js
index 475a66cdf..8a99f7062 100644
--- a/node_modules/core-js/fn/_.js
+++ b/node_modules/core-js/fn/_.js
@@ -1,2 +1,2 @@
require('../modules/core.function.part');
-module.exports = require('../modules/$.core')._; \ No newline at end of file
+module.exports = require('../modules/_core')._; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/concat.js b/node_modules/core-js/fn/array/concat.js
index 176ecffeb..de4bddf96 100644
--- a/node_modules/core-js/fn/array/concat.js
+++ b/node_modules/core-js/fn/array/concat.js
@@ -1,2 +1,4 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.concat; \ No newline at end of file
+// for a legacy code and future fixes
+module.exports = function(){
+ return Function.call.apply(Array.prototype.concat, arguments);
+}; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/copy-within.js b/node_modules/core-js/fn/array/copy-within.js
index 8a0113193..89e1de4ff 100644
--- a/node_modules/core-js/fn/array/copy-within.js
+++ b/node_modules/core-js/fn/array/copy-within.js
@@ -1,2 +1,2 @@
require('../../modules/es6.array.copy-within');
-module.exports = require('../../modules/$.core').Array.copyWithin; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.copyWithin; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/entries.js b/node_modules/core-js/fn/array/entries.js
index bcdbc33f2..f4feb26c2 100644
--- a/node_modules/core-js/fn/array/entries.js
+++ b/node_modules/core-js/fn/array/entries.js
@@ -1,2 +1,2 @@
require('../../modules/es6.array.iterator');
-module.exports = require('../../modules/$.core').Array.entries; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.entries; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/every.js b/node_modules/core-js/fn/array/every.js
index 0c7d0b7e2..168844cc5 100644
--- a/node_modules/core-js/fn/array/every.js
+++ b/node_modules/core-js/fn/array/every.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.every; \ No newline at end of file
+require('../../modules/es6.array.every');
+module.exports = require('../../modules/_core').Array.every; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/fill.js b/node_modules/core-js/fn/array/fill.js
index f53621202..b23ebfdee 100644
--- a/node_modules/core-js/fn/array/fill.js
+++ b/node_modules/core-js/fn/array/fill.js
@@ -1,2 +1,2 @@
require('../../modules/es6.array.fill');
-module.exports = require('../../modules/$.core').Array.fill; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.fill; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/filter.js b/node_modules/core-js/fn/array/filter.js
index 3f5b17ffe..0023f0de0 100644
--- a/node_modules/core-js/fn/array/filter.js
+++ b/node_modules/core-js/fn/array/filter.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.filter; \ No newline at end of file
+require('../../modules/es6.array.filter');
+module.exports = require('../../modules/_core').Array.filter; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/find-index.js b/node_modules/core-js/fn/array/find-index.js
index 7ec6cf7a8..99e6bf17b 100644
--- a/node_modules/core-js/fn/array/find-index.js
+++ b/node_modules/core-js/fn/array/find-index.js
@@ -1,2 +1,2 @@
require('../../modules/es6.array.find-index');
-module.exports = require('../../modules/$.core').Array.findIndex; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.findIndex; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/find.js b/node_modules/core-js/fn/array/find.js
index 9c3a6b31f..f146ec224 100644
--- a/node_modules/core-js/fn/array/find.js
+++ b/node_modules/core-js/fn/array/find.js
@@ -1,2 +1,2 @@
require('../../modules/es6.array.find');
-module.exports = require('../../modules/$.core').Array.find; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.find; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/for-each.js b/node_modules/core-js/fn/array/for-each.js
index b2e79f0b1..09e235f95 100644
--- a/node_modules/core-js/fn/array/for-each.js
+++ b/node_modules/core-js/fn/array/for-each.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.forEach; \ No newline at end of file
+require('../../modules/es6.array.for-each');
+module.exports = require('../../modules/_core').Array.forEach; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/from.js b/node_modules/core-js/fn/array/from.js
index f0483ccf4..1f323fbc3 100644
--- a/node_modules/core-js/fn/array/from.js
+++ b/node_modules/core-js/fn/array/from.js
@@ -1,3 +1,3 @@
require('../../modules/es6.string.iterator');
require('../../modules/es6.array.from');
-module.exports = require('../../modules/$.core').Array.from; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.from; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/includes.js b/node_modules/core-js/fn/array/includes.js
index 420c8318f..851d31fd1 100644
--- a/node_modules/core-js/fn/array/includes.js
+++ b/node_modules/core-js/fn/array/includes.js
@@ -1,2 +1,2 @@
require('../../modules/es7.array.includes');
-module.exports = require('../../modules/$.core').Array.includes; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.includes; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/index-of.js b/node_modules/core-js/fn/array/index-of.js
index 9f2cd14b6..9ed824727 100644
--- a/node_modules/core-js/fn/array/index-of.js
+++ b/node_modules/core-js/fn/array/index-of.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.indexOf; \ No newline at end of file
+require('../../modules/es6.array.index-of');
+module.exports = require('../../modules/_core').Array.indexOf; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/index.js b/node_modules/core-js/fn/array/index.js
index 2707be211..85bc77bc8 100644
--- a/node_modules/core-js/fn/array/index.js
+++ b/node_modules/core-js/fn/array/index.js
@@ -1,12 +1,24 @@
require('../../modules/es6.string.iterator');
+require('../../modules/es6.array.is-array');
require('../../modules/es6.array.from');
require('../../modules/es6.array.of');
-require('../../modules/es6.array.species');
-require('../../modules/es6.array.iterator');
+require('../../modules/es6.array.join');
+require('../../modules/es6.array.slice');
+require('../../modules/es6.array.sort');
+require('../../modules/es6.array.for-each');
+require('../../modules/es6.array.map');
+require('../../modules/es6.array.filter');
+require('../../modules/es6.array.some');
+require('../../modules/es6.array.every');
+require('../../modules/es6.array.reduce');
+require('../../modules/es6.array.reduce-right');
+require('../../modules/es6.array.index-of');
+require('../../modules/es6.array.last-index-of');
require('../../modules/es6.array.copy-within');
require('../../modules/es6.array.fill');
require('../../modules/es6.array.find');
require('../../modules/es6.array.find-index');
+require('../../modules/es6.array.species');
+require('../../modules/es6.array.iterator');
require('../../modules/es7.array.includes');
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array; \ No newline at end of file
+module.exports = require('../../modules/_core').Array; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/iterator.js b/node_modules/core-js/fn/array/iterator.js
index 662f3b5c5..ca93b78ab 100644
--- a/node_modules/core-js/fn/array/iterator.js
+++ b/node_modules/core-js/fn/array/iterator.js
@@ -1,2 +1,2 @@
require('../../modules/es6.array.iterator');
-module.exports = require('../../modules/$.core').Array.values; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.values; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/join.js b/node_modules/core-js/fn/array/join.js
index 443639228..9beef18d0 100644
--- a/node_modules/core-js/fn/array/join.js
+++ b/node_modules/core-js/fn/array/join.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.join; \ No newline at end of file
+require('../../modules/es6.array.join');
+module.exports = require('../../modules/_core').Array.join; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/keys.js b/node_modules/core-js/fn/array/keys.js
index e55d356e2..b44b921f7 100644
--- a/node_modules/core-js/fn/array/keys.js
+++ b/node_modules/core-js/fn/array/keys.js
@@ -1,2 +1,2 @@
require('../../modules/es6.array.iterator');
-module.exports = require('../../modules/$.core').Array.keys; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.keys; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/last-index-of.js b/node_modules/core-js/fn/array/last-index-of.js
index 678d0072d..6dcc98a10 100644
--- a/node_modules/core-js/fn/array/last-index-of.js
+++ b/node_modules/core-js/fn/array/last-index-of.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.lastIndexOf; \ No newline at end of file
+require('../../modules/es6.array.last-index-of');
+module.exports = require('../../modules/_core').Array.lastIndexOf; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/map.js b/node_modules/core-js/fn/array/map.js
index a1457c7a8..14b0f6279 100644
--- a/node_modules/core-js/fn/array/map.js
+++ b/node_modules/core-js/fn/array/map.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.map; \ No newline at end of file
+require('../../modules/es6.array.map');
+module.exports = require('../../modules/_core').Array.map; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/of.js b/node_modules/core-js/fn/array/of.js
index 07bb5a4ad..652ee9808 100644
--- a/node_modules/core-js/fn/array/of.js
+++ b/node_modules/core-js/fn/array/of.js
@@ -1,2 +1,2 @@
require('../../modules/es6.array.of');
-module.exports = require('../../modules/$.core').Array.of; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.of; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/pop.js b/node_modules/core-js/fn/array/pop.js
index bd8f86109..b8414f616 100644
--- a/node_modules/core-js/fn/array/pop.js
+++ b/node_modules/core-js/fn/array/pop.js
@@ -1,2 +1,4 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.pop; \ No newline at end of file
+// for a legacy code and future fixes
+module.exports = function(){
+ return Function.call.apply(Array.prototype.pop, arguments);
+}; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/push.js b/node_modules/core-js/fn/array/push.js
index 3ccf07071..03539009e 100644
--- a/node_modules/core-js/fn/array/push.js
+++ b/node_modules/core-js/fn/array/push.js
@@ -1,2 +1,4 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.push; \ No newline at end of file
+// for a legacy code and future fixes
+module.exports = function(){
+ return Function.call.apply(Array.prototype.push, arguments);
+}; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/reduce-right.js b/node_modules/core-js/fn/array/reduce-right.js
index c592207cf..1193ecbae 100644
--- a/node_modules/core-js/fn/array/reduce-right.js
+++ b/node_modules/core-js/fn/array/reduce-right.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.reduceRight; \ No newline at end of file
+require('../../modules/es6.array.reduce-right');
+module.exports = require('../../modules/_core').Array.reduceRight; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/reduce.js b/node_modules/core-js/fn/array/reduce.js
index b8368406c..e2dee913e 100644
--- a/node_modules/core-js/fn/array/reduce.js
+++ b/node_modules/core-js/fn/array/reduce.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.reduce; \ No newline at end of file
+require('../../modules/es6.array.reduce');
+module.exports = require('../../modules/_core').Array.reduce; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/reverse.js b/node_modules/core-js/fn/array/reverse.js
index 4d8d235c7..607342934 100644
--- a/node_modules/core-js/fn/array/reverse.js
+++ b/node_modules/core-js/fn/array/reverse.js
@@ -1,2 +1,4 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.reverse; \ No newline at end of file
+// for a legacy code and future fixes
+module.exports = function(){
+ return Function.call.apply(Array.prototype.reverse, arguments);
+}; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/shift.js b/node_modules/core-js/fn/array/shift.js
index 806c87cd0..5002a6062 100644
--- a/node_modules/core-js/fn/array/shift.js
+++ b/node_modules/core-js/fn/array/shift.js
@@ -1,2 +1,4 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.shift; \ No newline at end of file
+// for a legacy code and future fixes
+module.exports = function(){
+ return Function.call.apply(Array.prototype.shift, arguments);
+}; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/slice.js b/node_modules/core-js/fn/array/slice.js
index 913f7ef20..4914c2a98 100644
--- a/node_modules/core-js/fn/array/slice.js
+++ b/node_modules/core-js/fn/array/slice.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.slice; \ No newline at end of file
+require('../../modules/es6.array.slice');
+module.exports = require('../../modules/_core').Array.slice; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/some.js b/node_modules/core-js/fn/array/some.js
index 4f7c76544..de284006e 100644
--- a/node_modules/core-js/fn/array/some.js
+++ b/node_modules/core-js/fn/array/some.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.some; \ No newline at end of file
+require('../../modules/es6.array.some');
+module.exports = require('../../modules/_core').Array.some; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/sort.js b/node_modules/core-js/fn/array/sort.js
index 61beed041..29b6f3ae7 100644
--- a/node_modules/core-js/fn/array/sort.js
+++ b/node_modules/core-js/fn/array/sort.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.sort; \ No newline at end of file
+require('../../modules/es6.array.sort');
+module.exports = require('../../modules/_core').Array.sort; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/splice.js b/node_modules/core-js/fn/array/splice.js
index 5f5eab07b..9d0bdbed4 100644
--- a/node_modules/core-js/fn/array/splice.js
+++ b/node_modules/core-js/fn/array/splice.js
@@ -1,2 +1,4 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.splice; \ No newline at end of file
+// for a legacy code and future fixes
+module.exports = function(){
+ return Function.call.apply(Array.prototype.splice, arguments);
+}; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/unshift.js b/node_modules/core-js/fn/array/unshift.js
index a11de5287..63fe2dd86 100644
--- a/node_modules/core-js/fn/array/unshift.js
+++ b/node_modules/core-js/fn/array/unshift.js
@@ -1,2 +1,4 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.unshift; \ No newline at end of file
+// for a legacy code and future fixes
+module.exports = function(){
+ return Function.call.apply(Array.prototype.unshift, arguments);
+}; \ No newline at end of file
diff --git a/node_modules/core-js/fn/array/values.js b/node_modules/core-js/fn/array/values.js
index 662f3b5c5..ca93b78ab 100644
--- a/node_modules/core-js/fn/array/values.js
+++ b/node_modules/core-js/fn/array/values.js
@@ -1,2 +1,2 @@
require('../../modules/es6.array.iterator');
-module.exports = require('../../modules/$.core').Array.values; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.values; \ No newline at end of file
diff --git a/node_modules/core-js/fn/clear-immediate.js b/node_modules/core-js/fn/clear-immediate.js
index 06a975024..86916a06c 100644
--- a/node_modules/core-js/fn/clear-immediate.js
+++ b/node_modules/core-js/fn/clear-immediate.js
@@ -1,2 +1,2 @@
require('../modules/web.immediate');
-module.exports = require('../modules/$.core').clearImmediate; \ No newline at end of file
+module.exports = require('../modules/_core').clearImmediate; \ No newline at end of file
diff --git a/node_modules/core-js/fn/delay.js b/node_modules/core-js/fn/delay.js
index 1ff9a56d5..188573884 100644
--- a/node_modules/core-js/fn/delay.js
+++ b/node_modules/core-js/fn/delay.js
@@ -1,2 +1,2 @@
require('../modules/core.delay');
-module.exports = require('../modules/$.core').delay;
+module.exports = require('../modules/_core').delay;
diff --git a/node_modules/core-js/fn/dict.js b/node_modules/core-js/fn/dict.js
index ed848e2c2..da84a8d88 100644
--- a/node_modules/core-js/fn/dict.js
+++ b/node_modules/core-js/fn/dict.js
@@ -1,2 +1,2 @@
require('../modules/core.dict');
-module.exports = require('../modules/$.core').Dict; \ No newline at end of file
+module.exports = require('../modules/_core').Dict; \ No newline at end of file
diff --git a/node_modules/core-js/fn/function/has-instance.js b/node_modules/core-js/fn/function/has-instance.js
index 78c8221c3..78397e5f7 100644
--- a/node_modules/core-js/fn/function/has-instance.js
+++ b/node_modules/core-js/fn/function/has-instance.js
@@ -1,2 +1,2 @@
require('../../modules/es6.function.has-instance');
-module.exports = Function[require('../../modules/$.wks')('hasInstance')]; \ No newline at end of file
+module.exports = Function[require('../../modules/_wks')('hasInstance')]; \ No newline at end of file
diff --git a/node_modules/core-js/fn/function/index.js b/node_modules/core-js/fn/function/index.js
index 7422fca3c..206324e89 100644
--- a/node_modules/core-js/fn/function/index.js
+++ b/node_modules/core-js/fn/function/index.js
@@ -1,4 +1,5 @@
+require('../../modules/es6.function.bind');
require('../../modules/es6.function.name');
require('../../modules/es6.function.has-instance');
require('../../modules/core.function.part');
-module.exports = require('../../modules/$.core').Function;
+module.exports = require('../../modules/_core').Function;
diff --git a/node_modules/core-js/fn/function/part.js b/node_modules/core-js/fn/function/part.js
index 26271d6a0..926e2cc2a 100644
--- a/node_modules/core-js/fn/function/part.js
+++ b/node_modules/core-js/fn/function/part.js
@@ -1,2 +1,2 @@
require('../../modules/core.function.part');
-module.exports = require('../../modules/$.core').Function.part; \ No newline at end of file
+module.exports = require('../../modules/_core').Function.part; \ No newline at end of file
diff --git a/node_modules/core-js/fn/html-collection/index.js b/node_modules/core-js/fn/html-collection/index.js
deleted file mode 100644
index 510156b83..000000000
--- a/node_modules/core-js/fn/html-collection/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/web.dom.iterable');
-module.exports = require('../../modules/$.core'); \ No newline at end of file
diff --git a/node_modules/core-js/fn/html-collection/iterator.js b/node_modules/core-js/fn/html-collection/iterator.js
deleted file mode 100644
index c01119b1b..000000000
--- a/node_modules/core-js/fn/html-collection/iterator.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/web.dom.iterable');
-module.exports = require('../../modules/$.core').Array.values; \ No newline at end of file
diff --git a/node_modules/core-js/fn/json/stringify.js b/node_modules/core-js/fn/json/stringify.js
index fef242507..f0cac86af 100644
--- a/node_modules/core-js/fn/json/stringify.js
+++ b/node_modules/core-js/fn/json/stringify.js
@@ -1,4 +1,5 @@
-var core = require('../../modules/$.core');
+var core = require('../../modules/_core')
+ , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
- return (core.JSON && core.JSON.stringify || JSON.stringify).apply(JSON, arguments);
+ return $JSON.stringify.apply($JSON, arguments);
}; \ No newline at end of file
diff --git a/node_modules/core-js/fn/log.js b/node_modules/core-js/fn/log.js
deleted file mode 100644
index 899d6ed01..000000000
--- a/node_modules/core-js/fn/log.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.log');
-module.exports = require('../modules/$.core').log;
diff --git a/node_modules/core-js/fn/map.js b/node_modules/core-js/fn/map.js
index 70998924e..16784c600 100644
--- a/node_modules/core-js/fn/map.js
+++ b/node_modules/core-js/fn/map.js
@@ -3,4 +3,4 @@ require('../modules/es6.string.iterator');
require('../modules/web.dom.iterable');
require('../modules/es6.map');
require('../modules/es7.map.to-json');
-module.exports = require('../modules/$.core').Map; \ No newline at end of file
+module.exports = require('../modules/_core').Map; \ No newline at end of file
diff --git a/node_modules/core-js/fn/math/acosh.js b/node_modules/core-js/fn/math/acosh.js
index d29a88cca..9c904c2d6 100644
--- a/node_modules/core-js/fn/math/acosh.js
+++ b/node_modules/core-js/fn/math/acosh.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.acosh');
-module.exports = require('../../modules/$.core').Math.acosh; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.acosh; \ No newline at end of file
diff --git a/node_modules/core-js/fn/math/asinh.js b/node_modules/core-js/fn/math/asinh.js
index 7eac2e83e..9e209c9d1 100644
--- a/node_modules/core-js/fn/math/asinh.js
+++ b/node_modules/core-js/fn/math/asinh.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.asinh');
-module.exports = require('../../modules/$.core').Math.asinh; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.asinh; \ No newline at end of file
diff --git a/node_modules/core-js/fn/math/atanh.js b/node_modules/core-js/fn/math/atanh.js
index a66a47d88..b116296d8 100644
--- a/node_modules/core-js/fn/math/atanh.js
+++ b/node_modules/core-js/fn/math/atanh.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.atanh');
-module.exports = require('../../modules/$.core').Math.atanh; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.atanh; \ No newline at end of file
diff --git a/node_modules/core-js/fn/math/cbrt.js b/node_modules/core-js/fn/math/cbrt.js
index 199f5cd86..6ffec33a2 100644
--- a/node_modules/core-js/fn/math/cbrt.js
+++ b/node_modules/core-js/fn/math/cbrt.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.cbrt');
-module.exports = require('../../modules/$.core').Math.cbrt; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.cbrt; \ No newline at end of file
diff --git a/node_modules/core-js/fn/math/clz32.js b/node_modules/core-js/fn/math/clz32.js
index 2025c6e44..beeaae165 100644
--- a/node_modules/core-js/fn/math/clz32.js
+++ b/node_modules/core-js/fn/math/clz32.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.clz32');
-module.exports = require('../../modules/$.core').Math.clz32; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.clz32; \ No newline at end of file
diff --git a/node_modules/core-js/fn/math/cosh.js b/node_modules/core-js/fn/math/cosh.js
index 17a7ddc0f..bf92dc13d 100644
--- a/node_modules/core-js/fn/math/cosh.js
+++ b/node_modules/core-js/fn/math/cosh.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.cosh');
-module.exports = require('../../modules/$.core').Math.cosh; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.cosh; \ No newline at end of file
diff --git a/node_modules/core-js/fn/math/expm1.js b/node_modules/core-js/fn/math/expm1.js
index 732facb32..0b30ebb1b 100644
--- a/node_modules/core-js/fn/math/expm1.js
+++ b/node_modules/core-js/fn/math/expm1.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.expm1');
-module.exports = require('../../modules/$.core').Math.expm1; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.expm1; \ No newline at end of file
diff --git a/node_modules/core-js/fn/math/fround.js b/node_modules/core-js/fn/math/fround.js
index 37f87069c..c75a22937 100644
--- a/node_modules/core-js/fn/math/fround.js
+++ b/node_modules/core-js/fn/math/fround.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.fround');
-module.exports = require('../../modules/$.core').Math.fround; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.fround; \ No newline at end of file
diff --git a/node_modules/core-js/fn/math/hypot.js b/node_modules/core-js/fn/math/hypot.js
index 9676c0730..2126285c2 100644
--- a/node_modules/core-js/fn/math/hypot.js
+++ b/node_modules/core-js/fn/math/hypot.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.hypot');
-module.exports = require('../../modules/$.core').Math.hypot; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.hypot; \ No newline at end of file
diff --git a/node_modules/core-js/fn/math/imul.js b/node_modules/core-js/fn/math/imul.js
index 2ea2913e9..1f5ce1610 100644
--- a/node_modules/core-js/fn/math/imul.js
+++ b/node_modules/core-js/fn/math/imul.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.imul');
-module.exports = require('../../modules/$.core').Math.imul; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.imul; \ No newline at end of file
diff --git a/node_modules/core-js/fn/math/index.js b/node_modules/core-js/fn/math/index.js
index 14628ae59..8a2664b18 100644
--- a/node_modules/core-js/fn/math/index.js
+++ b/node_modules/core-js/fn/math/index.js
@@ -15,4 +15,8 @@ require('../../modules/es6.math.sign');
require('../../modules/es6.math.sinh');
require('../../modules/es6.math.tanh');
require('../../modules/es6.math.trunc');
-module.exports = require('../../modules/$.core').Math; \ No newline at end of file
+require('../../modules/es7.math.iaddh');
+require('../../modules/es7.math.isubh');
+require('../../modules/es7.math.imulh');
+require('../../modules/es7.math.umulh');
+module.exports = require('../../modules/_core').Math; \ No newline at end of file
diff --git a/node_modules/core-js/fn/math/log10.js b/node_modules/core-js/fn/math/log10.js
index ecf7b9b2b..1246e0ae0 100644
--- a/node_modules/core-js/fn/math/log10.js
+++ b/node_modules/core-js/fn/math/log10.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.log10');
-module.exports = require('../../modules/$.core').Math.log10; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.log10; \ No newline at end of file
diff --git a/node_modules/core-js/fn/math/log1p.js b/node_modules/core-js/fn/math/log1p.js
index 6db73292e..047b84c05 100644
--- a/node_modules/core-js/fn/math/log1p.js
+++ b/node_modules/core-js/fn/math/log1p.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.log1p');
-module.exports = require('../../modules/$.core').Math.log1p; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.log1p; \ No newline at end of file
diff --git a/node_modules/core-js/fn/math/log2.js b/node_modules/core-js/fn/math/log2.js
index 63c74d7b8..ce3e99c1e 100644
--- a/node_modules/core-js/fn/math/log2.js
+++ b/node_modules/core-js/fn/math/log2.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.log2');
-module.exports = require('../../modules/$.core').Math.log2; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.log2; \ No newline at end of file
diff --git a/node_modules/core-js/fn/math/sign.js b/node_modules/core-js/fn/math/sign.js
index 47ab74f20..0963ecaf9 100644
--- a/node_modules/core-js/fn/math/sign.js
+++ b/node_modules/core-js/fn/math/sign.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.sign');
-module.exports = require('../../modules/$.core').Math.sign; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.sign; \ No newline at end of file
diff --git a/node_modules/core-js/fn/math/sinh.js b/node_modules/core-js/fn/math/sinh.js
index 72c6e857a..c35cb7394 100644
--- a/node_modules/core-js/fn/math/sinh.js
+++ b/node_modules/core-js/fn/math/sinh.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.sinh');
-module.exports = require('../../modules/$.core').Math.sinh; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.sinh; \ No newline at end of file
diff --git a/node_modules/core-js/fn/math/tanh.js b/node_modules/core-js/fn/math/tanh.js
index 30ddbcc83..3d1966db3 100644
--- a/node_modules/core-js/fn/math/tanh.js
+++ b/node_modules/core-js/fn/math/tanh.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.tanh');
-module.exports = require('../../modules/$.core').Math.tanh; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.tanh; \ No newline at end of file
diff --git a/node_modules/core-js/fn/math/trunc.js b/node_modules/core-js/fn/math/trunc.js
index b084efa7e..135b7dcb8 100644
--- a/node_modules/core-js/fn/math/trunc.js
+++ b/node_modules/core-js/fn/math/trunc.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.trunc');
-module.exports = require('../../modules/$.core').Math.trunc; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.trunc; \ No newline at end of file
diff --git a/node_modules/core-js/fn/node-list/index.js b/node_modules/core-js/fn/node-list/index.js
deleted file mode 100644
index 510156b83..000000000
--- a/node_modules/core-js/fn/node-list/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/web.dom.iterable');
-module.exports = require('../../modules/$.core'); \ No newline at end of file
diff --git a/node_modules/core-js/fn/node-list/iterator.js b/node_modules/core-js/fn/node-list/iterator.js
deleted file mode 100644
index c01119b1b..000000000
--- a/node_modules/core-js/fn/node-list/iterator.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/web.dom.iterable');
-module.exports = require('../../modules/$.core').Array.values; \ No newline at end of file
diff --git a/node_modules/core-js/fn/number/index.js b/node_modules/core-js/fn/number/index.js
index d048d5901..92890003d 100644
--- a/node_modules/core-js/fn/number/index.js
+++ b/node_modules/core-js/fn/number/index.js
@@ -8,5 +8,7 @@ require('../../modules/es6.number.max-safe-integer');
require('../../modules/es6.number.min-safe-integer');
require('../../modules/es6.number.parse-float');
require('../../modules/es6.number.parse-int');
+require('../../modules/es6.number.to-fixed');
+require('../../modules/es6.number.to-precision');
require('../../modules/core.number.iterator');
-module.exports = require('../../modules/$.core').Number; \ No newline at end of file
+module.exports = require('../../modules/_core').Number; \ No newline at end of file
diff --git a/node_modules/core-js/fn/number/is-finite.js b/node_modules/core-js/fn/number/is-finite.js
index ff666503b..4ec3706b0 100644
--- a/node_modules/core-js/fn/number/is-finite.js
+++ b/node_modules/core-js/fn/number/is-finite.js
@@ -1,2 +1,2 @@
require('../../modules/es6.number.is-finite');
-module.exports = require('../../modules/$.core').Number.isFinite; \ No newline at end of file
+module.exports = require('../../modules/_core').Number.isFinite; \ No newline at end of file
diff --git a/node_modules/core-js/fn/number/is-integer.js b/node_modules/core-js/fn/number/is-integer.js
index 682e1e348..a3013bff3 100644
--- a/node_modules/core-js/fn/number/is-integer.js
+++ b/node_modules/core-js/fn/number/is-integer.js
@@ -1,2 +1,2 @@
require('../../modules/es6.number.is-integer');
-module.exports = require('../../modules/$.core').Number.isInteger; \ No newline at end of file
+module.exports = require('../../modules/_core').Number.isInteger; \ No newline at end of file
diff --git a/node_modules/core-js/fn/number/is-nan.js b/node_modules/core-js/fn/number/is-nan.js
index 6ad6923bd..f23b0266a 100644
--- a/node_modules/core-js/fn/number/is-nan.js
+++ b/node_modules/core-js/fn/number/is-nan.js
@@ -1,2 +1,2 @@
require('../../modules/es6.number.is-nan');
-module.exports = require('../../modules/$.core').Number.isNaN; \ No newline at end of file
+module.exports = require('../../modules/_core').Number.isNaN; \ No newline at end of file
diff --git a/node_modules/core-js/fn/number/is-safe-integer.js b/node_modules/core-js/fn/number/is-safe-integer.js
index a47fd42e9..f68732f52 100644
--- a/node_modules/core-js/fn/number/is-safe-integer.js
+++ b/node_modules/core-js/fn/number/is-safe-integer.js
@@ -1,2 +1,2 @@
require('../../modules/es6.number.is-safe-integer');
-module.exports = require('../../modules/$.core').Number.isSafeInteger; \ No newline at end of file
+module.exports = require('../../modules/_core').Number.isSafeInteger; \ No newline at end of file
diff --git a/node_modules/core-js/fn/number/iterator.js b/node_modules/core-js/fn/number/iterator.js
index 57cb79065..26feaa1f0 100644
--- a/node_modules/core-js/fn/number/iterator.js
+++ b/node_modules/core-js/fn/number/iterator.js
@@ -1,5 +1,5 @@
require('../../modules/core.number.iterator');
-var get = require('../../modules/$.iterators').Number;
+var get = require('../../modules/_iterators').Number;
module.exports = function(it){
return get.call(it);
}; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/assign.js b/node_modules/core-js/fn/object/assign.js
index a57c54aa5..97df6bf45 100644
--- a/node_modules/core-js/fn/object/assign.js
+++ b/node_modules/core-js/fn/object/assign.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.assign');
-module.exports = require('../../modules/$.core').Object.assign; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.assign; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/classof.js b/node_modules/core-js/fn/object/classof.js
index 3afc82686..993d04808 100644
--- a/node_modules/core-js/fn/object/classof.js
+++ b/node_modules/core-js/fn/object/classof.js
@@ -1,2 +1,2 @@
require('../../modules/core.object.classof');
-module.exports = require('../../modules/$.core').Object.classof; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.classof; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/create.js b/node_modules/core-js/fn/object/create.js
index 8f5f3263b..a05ca2fb0 100644
--- a/node_modules/core-js/fn/object/create.js
+++ b/node_modules/core-js/fn/object/create.js
@@ -1,4 +1,5 @@
-var $ = require('../../modules/$');
+require('../../modules/es6.object.create');
+var $Object = require('../../modules/_core').Object;
module.exports = function create(P, D){
- return $.create(P, D);
+ return $Object.create(P, D);
}; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/define-properties.js b/node_modules/core-js/fn/object/define-properties.js
index a857aab81..04160fb3a 100644
--- a/node_modules/core-js/fn/object/define-properties.js
+++ b/node_modules/core-js/fn/object/define-properties.js
@@ -1,4 +1,5 @@
-var $ = require('../../modules/$');
+require('../../modules/es6.object.define-properties');
+var $Object = require('../../modules/_core').Object;
module.exports = function defineProperties(T, D){
- return $.setDescs(T, D);
+ return $Object.defineProperties(T, D);
}; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/define-property.js b/node_modules/core-js/fn/object/define-property.js
index 7384315d5..078c56cbf 100644
--- a/node_modules/core-js/fn/object/define-property.js
+++ b/node_modules/core-js/fn/object/define-property.js
@@ -1,4 +1,5 @@
-var $ = require('../../modules/$');
+require('../../modules/es6.object.define-property');
+var $Object = require('../../modules/_core').Object;
module.exports = function defineProperty(it, key, desc){
- return $.setDesc(it, key, desc);
+ return $Object.defineProperty(it, key, desc);
}; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/define.js b/node_modules/core-js/fn/object/define.js
index 690773e2e..6ec19e904 100644
--- a/node_modules/core-js/fn/object/define.js
+++ b/node_modules/core-js/fn/object/define.js
@@ -1,2 +1,2 @@
require('../../modules/core.object.define');
-module.exports = require('../../modules/$.core').Object.define; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.define; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/entries.js b/node_modules/core-js/fn/object/entries.js
index a32fe3911..fca1000e8 100644
--- a/node_modules/core-js/fn/object/entries.js
+++ b/node_modules/core-js/fn/object/entries.js
@@ -1,2 +1,2 @@
require('../../modules/es7.object.entries');
-module.exports = require('../../modules/$.core').Object.entries; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.entries; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/freeze.js b/node_modules/core-js/fn/object/freeze.js
index 566eec51d..04eac5302 100644
--- a/node_modules/core-js/fn/object/freeze.js
+++ b/node_modules/core-js/fn/object/freeze.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.freeze');
-module.exports = require('../../modules/$.core').Object.freeze; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.freeze; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/get-own-property-descriptor.js b/node_modules/core-js/fn/object/get-own-property-descriptor.js
index 2e1845cfc..7d3f03b8b 100644
--- a/node_modules/core-js/fn/object/get-own-property-descriptor.js
+++ b/node_modules/core-js/fn/object/get-own-property-descriptor.js
@@ -1,5 +1,5 @@
-var $ = require('../../modules/$');
require('../../modules/es6.object.get-own-property-descriptor');
+var $Object = require('../../modules/_core').Object;
module.exports = function getOwnPropertyDescriptor(it, key){
- return $.getDesc(it, key);
+ return $Object.getOwnPropertyDescriptor(it, key);
}; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/get-own-property-descriptors.js b/node_modules/core-js/fn/object/get-own-property-descriptors.js
index f26341d57..dfeb547ce 100644
--- a/node_modules/core-js/fn/object/get-own-property-descriptors.js
+++ b/node_modules/core-js/fn/object/get-own-property-descriptors.js
@@ -1,2 +1,2 @@
require('../../modules/es7.object.get-own-property-descriptors');
-module.exports = require('../../modules/$.core').Object.getOwnPropertyDescriptors; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.getOwnPropertyDescriptors; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/get-own-property-names.js b/node_modules/core-js/fn/object/get-own-property-names.js
index 496eb1970..c91ce430f 100644
--- a/node_modules/core-js/fn/object/get-own-property-names.js
+++ b/node_modules/core-js/fn/object/get-own-property-names.js
@@ -1,5 +1,5 @@
-var $ = require('../../modules/$');
require('../../modules/es6.object.get-own-property-names');
+var $Object = require('../../modules/_core').Object;
module.exports = function getOwnPropertyNames(it){
- return $.getNames(it);
+ return $Object.getOwnPropertyNames(it);
}; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/get-own-property-symbols.js b/node_modules/core-js/fn/object/get-own-property-symbols.js
index f78921b51..c3f528807 100644
--- a/node_modules/core-js/fn/object/get-own-property-symbols.js
+++ b/node_modules/core-js/fn/object/get-own-property-symbols.js
@@ -1,2 +1,2 @@
require('../../modules/es6.symbol');
-module.exports = require('../../modules/$.core').Object.getOwnPropertySymbols; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.getOwnPropertySymbols; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/get-prototype-of.js b/node_modules/core-js/fn/object/get-prototype-of.js
index 9a495afe7..bda934458 100644
--- a/node_modules/core-js/fn/object/get-prototype-of.js
+++ b/node_modules/core-js/fn/object/get-prototype-of.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.get-prototype-of');
-module.exports = require('../../modules/$.core').Object.getPrototypeOf; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.getPrototypeOf; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/index.js b/node_modules/core-js/fn/object/index.js
index 0fb75bc5e..4bd9825b4 100644
--- a/node_modules/core-js/fn/object/index.js
+++ b/node_modules/core-js/fn/object/index.js
@@ -1,23 +1,30 @@
require('../../modules/es6.symbol');
-require('../../modules/es6.object.assign');
-require('../../modules/es6.object.is');
-require('../../modules/es6.object.set-prototype-of');
-require('../../modules/es6.object.to-string');
+require('../../modules/es6.object.create');
+require('../../modules/es6.object.define-property');
+require('../../modules/es6.object.define-properties');
+require('../../modules/es6.object.get-own-property-descriptor');
+require('../../modules/es6.object.get-prototype-of');
+require('../../modules/es6.object.keys');
+require('../../modules/es6.object.get-own-property-names');
require('../../modules/es6.object.freeze');
require('../../modules/es6.object.seal');
require('../../modules/es6.object.prevent-extensions');
require('../../modules/es6.object.is-frozen');
require('../../modules/es6.object.is-sealed');
require('../../modules/es6.object.is-extensible');
-require('../../modules/es6.object.get-own-property-descriptor');
-require('../../modules/es6.object.get-prototype-of');
-require('../../modules/es6.object.keys');
-require('../../modules/es6.object.get-own-property-names');
+require('../../modules/es6.object.assign');
+require('../../modules/es6.object.is');
+require('../../modules/es6.object.set-prototype-of');
+require('../../modules/es6.object.to-string');
require('../../modules/es7.object.get-own-property-descriptors');
require('../../modules/es7.object.values');
require('../../modules/es7.object.entries');
+require('../../modules/es7.object.define-getter');
+require('../../modules/es7.object.define-setter');
+require('../../modules/es7.object.lookup-getter');
+require('../../modules/es7.object.lookup-setter');
require('../../modules/core.object.is-object');
require('../../modules/core.object.classof');
require('../../modules/core.object.define');
require('../../modules/core.object.make');
-module.exports = require('../../modules/$.core').Object; \ No newline at end of file
+module.exports = require('../../modules/_core').Object; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/is-extensible.js b/node_modules/core-js/fn/object/is-extensible.js
index 8bb0cf9f7..43fb0e78a 100644
--- a/node_modules/core-js/fn/object/is-extensible.js
+++ b/node_modules/core-js/fn/object/is-extensible.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.is-extensible');
-module.exports = require('../../modules/$.core').Object.isExtensible; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.isExtensible; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/is-frozen.js b/node_modules/core-js/fn/object/is-frozen.js
index 7bf1f1270..cbff22421 100644
--- a/node_modules/core-js/fn/object/is-frozen.js
+++ b/node_modules/core-js/fn/object/is-frozen.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.is-frozen');
-module.exports = require('../../modules/$.core').Object.isFrozen; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.isFrozen; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/is-object.js b/node_modules/core-js/fn/object/is-object.js
index 935cb6ece..38feeff5c 100644
--- a/node_modules/core-js/fn/object/is-object.js
+++ b/node_modules/core-js/fn/object/is-object.js
@@ -1,2 +1,2 @@
require('../../modules/core.object.is-object');
-module.exports = require('../../modules/$.core').Object.isObject; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.isObject; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/is-sealed.js b/node_modules/core-js/fn/object/is-sealed.js
index 05416f377..169a8ae73 100644
--- a/node_modules/core-js/fn/object/is-sealed.js
+++ b/node_modules/core-js/fn/object/is-sealed.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.is-sealed');
-module.exports = require('../../modules/$.core').Object.isSealed; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.isSealed; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/is.js b/node_modules/core-js/fn/object/is.js
index d07c3ae18..6ac9f19e1 100644
--- a/node_modules/core-js/fn/object/is.js
+++ b/node_modules/core-js/fn/object/is.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.is');
-module.exports = require('../../modules/$.core').Object.is; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.is; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/keys.js b/node_modules/core-js/fn/object/keys.js
index ebfb8c655..8eeb78eb8 100644
--- a/node_modules/core-js/fn/object/keys.js
+++ b/node_modules/core-js/fn/object/keys.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.keys');
-module.exports = require('../../modules/$.core').Object.keys; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.keys; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/make.js b/node_modules/core-js/fn/object/make.js
index fbfb2f858..f4d19d128 100644
--- a/node_modules/core-js/fn/object/make.js
+++ b/node_modules/core-js/fn/object/make.js
@@ -1,2 +1,2 @@
require('../../modules/core.object.make');
-module.exports = require('../../modules/$.core').Object.make; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.make; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/prevent-extensions.js b/node_modules/core-js/fn/object/prevent-extensions.js
index 01d82fcbd..e43be05b1 100644
--- a/node_modules/core-js/fn/object/prevent-extensions.js
+++ b/node_modules/core-js/fn/object/prevent-extensions.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.prevent-extensions');
-module.exports = require('../../modules/$.core').Object.preventExtensions; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.preventExtensions; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/seal.js b/node_modules/core-js/fn/object/seal.js
index fdf84b821..8a56cd7f3 100644
--- a/node_modules/core-js/fn/object/seal.js
+++ b/node_modules/core-js/fn/object/seal.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.seal');
-module.exports = require('../../modules/$.core').Object.seal; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.seal; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/set-prototype-of.js b/node_modules/core-js/fn/object/set-prototype-of.js
index cd94d875b..c25170dbc 100644
--- a/node_modules/core-js/fn/object/set-prototype-of.js
+++ b/node_modules/core-js/fn/object/set-prototype-of.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.set-prototype-of');
-module.exports = require('../../modules/$.core').Object.setPrototypeOf; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.setPrototypeOf; \ No newline at end of file
diff --git a/node_modules/core-js/fn/object/values.js b/node_modules/core-js/fn/object/values.js
index b96071ff3..b50336cf1 100644
--- a/node_modules/core-js/fn/object/values.js
+++ b/node_modules/core-js/fn/object/values.js
@@ -1,2 +1,2 @@
require('../../modules/es7.object.values');
-module.exports = require('../../modules/$.core').Object.values; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.values; \ No newline at end of file
diff --git a/node_modules/core-js/fn/promise.js b/node_modules/core-js/fn/promise.js
index 0a0996139..c901c8595 100644
--- a/node_modules/core-js/fn/promise.js
+++ b/node_modules/core-js/fn/promise.js
@@ -2,4 +2,4 @@ require('../modules/es6.object.to-string');
require('../modules/es6.string.iterator');
require('../modules/web.dom.iterable');
require('../modules/es6.promise');
-module.exports = require('../modules/$.core').Promise; \ No newline at end of file
+module.exports = require('../modules/_core').Promise; \ No newline at end of file
diff --git a/node_modules/core-js/fn/reflect/apply.js b/node_modules/core-js/fn/reflect/apply.js
index 75e5ff5b2..725b8a699 100644
--- a/node_modules/core-js/fn/reflect/apply.js
+++ b/node_modules/core-js/fn/reflect/apply.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.apply');
-module.exports = require('../../modules/$.core').Reflect.apply; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.apply; \ No newline at end of file
diff --git a/node_modules/core-js/fn/reflect/construct.js b/node_modules/core-js/fn/reflect/construct.js
index adc40ea84..587725dad 100644
--- a/node_modules/core-js/fn/reflect/construct.js
+++ b/node_modules/core-js/fn/reflect/construct.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.construct');
-module.exports = require('../../modules/$.core').Reflect.construct; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.construct; \ No newline at end of file
diff --git a/node_modules/core-js/fn/reflect/define-property.js b/node_modules/core-js/fn/reflect/define-property.js
index da78d62e5..c36b4d21d 100644
--- a/node_modules/core-js/fn/reflect/define-property.js
+++ b/node_modules/core-js/fn/reflect/define-property.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.define-property');
-module.exports = require('../../modules/$.core').Reflect.defineProperty; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.defineProperty; \ No newline at end of file
diff --git a/node_modules/core-js/fn/reflect/delete-property.js b/node_modules/core-js/fn/reflect/delete-property.js
index 411225f60..10b6392f2 100644
--- a/node_modules/core-js/fn/reflect/delete-property.js
+++ b/node_modules/core-js/fn/reflect/delete-property.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.delete-property');
-module.exports = require('../../modules/$.core').Reflect.deleteProperty; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.deleteProperty; \ No newline at end of file
diff --git a/node_modules/core-js/fn/reflect/enumerate.js b/node_modules/core-js/fn/reflect/enumerate.js
index c19e0b6b5..257a21eee 100644
--- a/node_modules/core-js/fn/reflect/enumerate.js
+++ b/node_modules/core-js/fn/reflect/enumerate.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.enumerate');
-module.exports = require('../../modules/$.core').Reflect.enumerate; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.enumerate; \ No newline at end of file
diff --git a/node_modules/core-js/fn/reflect/get-own-property-descriptor.js b/node_modules/core-js/fn/reflect/get-own-property-descriptor.js
index 22e2aa666..9e2822fb5 100644
--- a/node_modules/core-js/fn/reflect/get-own-property-descriptor.js
+++ b/node_modules/core-js/fn/reflect/get-own-property-descriptor.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.get-own-property-descriptor');
-module.exports = require('../../modules/$.core').Reflect.getOwnPropertyDescriptor; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.getOwnPropertyDescriptor; \ No newline at end of file
diff --git a/node_modules/core-js/fn/reflect/get-prototype-of.js b/node_modules/core-js/fn/reflect/get-prototype-of.js
index 2ff331a45..485035960 100644
--- a/node_modules/core-js/fn/reflect/get-prototype-of.js
+++ b/node_modules/core-js/fn/reflect/get-prototype-of.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.get-prototype-of');
-module.exports = require('../../modules/$.core').Reflect.getPrototypeOf; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.getPrototypeOf; \ No newline at end of file
diff --git a/node_modules/core-js/fn/reflect/get.js b/node_modules/core-js/fn/reflect/get.js
index 266508c68..9ca903e82 100644
--- a/node_modules/core-js/fn/reflect/get.js
+++ b/node_modules/core-js/fn/reflect/get.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.get');
-module.exports = require('../../modules/$.core').Reflect.get; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.get; \ No newline at end of file
diff --git a/node_modules/core-js/fn/reflect/has.js b/node_modules/core-js/fn/reflect/has.js
index db14fa11a..8e34933c8 100644
--- a/node_modules/core-js/fn/reflect/has.js
+++ b/node_modules/core-js/fn/reflect/has.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.has');
-module.exports = require('../../modules/$.core').Reflect.has; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.has; \ No newline at end of file
diff --git a/node_modules/core-js/fn/reflect/index.js b/node_modules/core-js/fn/reflect/index.js
index 5b2166531..a725cef2f 100644
--- a/node_modules/core-js/fn/reflect/index.js
+++ b/node_modules/core-js/fn/reflect/index.js
@@ -12,4 +12,13 @@ require('../../modules/es6.reflect.own-keys');
require('../../modules/es6.reflect.prevent-extensions');
require('../../modules/es6.reflect.set');
require('../../modules/es6.reflect.set-prototype-of');
-module.exports = require('../../modules/$.core').Reflect; \ No newline at end of file
+require('../../modules/es7.reflect.define-metadata');
+require('../../modules/es7.reflect.delete-metadata');
+require('../../modules/es7.reflect.get-metadata');
+require('../../modules/es7.reflect.get-metadata-keys');
+require('../../modules/es7.reflect.get-own-metadata');
+require('../../modules/es7.reflect.get-own-metadata-keys');
+require('../../modules/es7.reflect.has-metadata');
+require('../../modules/es7.reflect.has-own-metadata');
+require('../../modules/es7.reflect.metadata');
+module.exports = require('../../modules/_core').Reflect; \ No newline at end of file
diff --git a/node_modules/core-js/fn/reflect/is-extensible.js b/node_modules/core-js/fn/reflect/is-extensible.js
index f0329e28b..de41d683a 100644
--- a/node_modules/core-js/fn/reflect/is-extensible.js
+++ b/node_modules/core-js/fn/reflect/is-extensible.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.is-extensible');
-module.exports = require('../../modules/$.core').Reflect.isExtensible; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.isExtensible; \ No newline at end of file
diff --git a/node_modules/core-js/fn/reflect/own-keys.js b/node_modules/core-js/fn/reflect/own-keys.js
index 6da1136dd..bfcebc740 100644
--- a/node_modules/core-js/fn/reflect/own-keys.js
+++ b/node_modules/core-js/fn/reflect/own-keys.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.own-keys');
-module.exports = require('../../modules/$.core').Reflect.ownKeys; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.ownKeys; \ No newline at end of file
diff --git a/node_modules/core-js/fn/reflect/prevent-extensions.js b/node_modules/core-js/fn/reflect/prevent-extensions.js
index 48fb5d5a9..b346da3b0 100644
--- a/node_modules/core-js/fn/reflect/prevent-extensions.js
+++ b/node_modules/core-js/fn/reflect/prevent-extensions.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.prevent-extensions');
-module.exports = require('../../modules/$.core').Reflect.preventExtensions; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.preventExtensions; \ No newline at end of file
diff --git a/node_modules/core-js/fn/reflect/set-prototype-of.js b/node_modules/core-js/fn/reflect/set-prototype-of.js
index 09cddebc8..16b74359c 100644
--- a/node_modules/core-js/fn/reflect/set-prototype-of.js
+++ b/node_modules/core-js/fn/reflect/set-prototype-of.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.set-prototype-of');
-module.exports = require('../../modules/$.core').Reflect.setPrototypeOf; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.setPrototypeOf; \ No newline at end of file
diff --git a/node_modules/core-js/fn/reflect/set.js b/node_modules/core-js/fn/reflect/set.js
index d1afec9c1..834929ee3 100644
--- a/node_modules/core-js/fn/reflect/set.js
+++ b/node_modules/core-js/fn/reflect/set.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.set');
-module.exports = require('../../modules/$.core').Reflect.set; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.set; \ No newline at end of file
diff --git a/node_modules/core-js/fn/regexp/escape.js b/node_modules/core-js/fn/regexp/escape.js
index 0c8d06b4c..d657a7d91 100644
--- a/node_modules/core-js/fn/regexp/escape.js
+++ b/node_modules/core-js/fn/regexp/escape.js
@@ -1,2 +1,2 @@
-require('../../modules/es7.regexp.escape');
-module.exports = require('../../modules/$.core').RegExp.escape; \ No newline at end of file
+require('../../modules/core.regexp.escape');
+module.exports = require('../../modules/_core').RegExp.escape; \ No newline at end of file
diff --git a/node_modules/core-js/fn/regexp/index.js b/node_modules/core-js/fn/regexp/index.js
index 7d905d67d..61ced0b81 100644
--- a/node_modules/core-js/fn/regexp/index.js
+++ b/node_modules/core-js/fn/regexp/index.js
@@ -1,8 +1,9 @@
require('../../modules/es6.regexp.constructor');
+require('../../modules/es6.regexp.to-string');
require('../../modules/es6.regexp.flags');
require('../../modules/es6.regexp.match');
require('../../modules/es6.regexp.replace');
require('../../modules/es6.regexp.search');
require('../../modules/es6.regexp.split');
-require('../../modules/es7.regexp.escape');
-module.exports = require('../../modules/$.core').RegExp; \ No newline at end of file
+require('../../modules/core.regexp.escape');
+module.exports = require('../../modules/_core').RegExp; \ No newline at end of file
diff --git a/node_modules/core-js/fn/set-immediate.js b/node_modules/core-js/fn/set-immediate.js
index 2dd87df21..250831369 100644
--- a/node_modules/core-js/fn/set-immediate.js
+++ b/node_modules/core-js/fn/set-immediate.js
@@ -1,2 +1,2 @@
require('../modules/web.immediate');
-module.exports = require('../modules/$.core').setImmediate; \ No newline at end of file
+module.exports = require('../modules/_core').setImmediate; \ No newline at end of file
diff --git a/node_modules/core-js/fn/set-interval.js b/node_modules/core-js/fn/set-interval.js
index 4c7dd8e97..484447ffa 100644
--- a/node_modules/core-js/fn/set-interval.js
+++ b/node_modules/core-js/fn/set-interval.js
@@ -1,2 +1,2 @@
require('../modules/web.timers');
-module.exports = require('../modules/$.core').setInterval; \ No newline at end of file
+module.exports = require('../modules/_core').setInterval; \ No newline at end of file
diff --git a/node_modules/core-js/fn/set-timeout.js b/node_modules/core-js/fn/set-timeout.js
index 4e7861948..8ebbb2e4f 100644
--- a/node_modules/core-js/fn/set-timeout.js
+++ b/node_modules/core-js/fn/set-timeout.js
@@ -1,2 +1,2 @@
require('../modules/web.timers');
-module.exports = require('../modules/$.core').setTimeout; \ No newline at end of file
+module.exports = require('../modules/_core').setTimeout; \ No newline at end of file
diff --git a/node_modules/core-js/fn/set.js b/node_modules/core-js/fn/set.js
index 34615f1d2..a8b496525 100644
--- a/node_modules/core-js/fn/set.js
+++ b/node_modules/core-js/fn/set.js
@@ -3,4 +3,4 @@ require('../modules/es6.string.iterator');
require('../modules/web.dom.iterable');
require('../modules/es6.set');
require('../modules/es7.set.to-json');
-module.exports = require('../modules/$.core').Set; \ No newline at end of file
+module.exports = require('../modules/_core').Set; \ No newline at end of file
diff --git a/node_modules/core-js/fn/string/at.js b/node_modules/core-js/fn/string/at.js
index d59d2aff2..ab6aec153 100644
--- a/node_modules/core-js/fn/string/at.js
+++ b/node_modules/core-js/fn/string/at.js
@@ -1,2 +1,2 @@
require('../../modules/es7.string.at');
-module.exports = require('../../modules/$.core').String.at; \ No newline at end of file
+module.exports = require('../../modules/_core').String.at; \ No newline at end of file
diff --git a/node_modules/core-js/fn/string/code-point-at.js b/node_modules/core-js/fn/string/code-point-at.js
index 74e933aaa..be141e82d 100644
--- a/node_modules/core-js/fn/string/code-point-at.js
+++ b/node_modules/core-js/fn/string/code-point-at.js
@@ -1,2 +1,2 @@
require('../../modules/es6.string.code-point-at');
-module.exports = require('../../modules/$.core').String.codePointAt; \ No newline at end of file
+module.exports = require('../../modules/_core').String.codePointAt; \ No newline at end of file
diff --git a/node_modules/core-js/fn/string/ends-with.js b/node_modules/core-js/fn/string/ends-with.js
index 7fe5cb744..5e427753e 100644
--- a/node_modules/core-js/fn/string/ends-with.js
+++ b/node_modules/core-js/fn/string/ends-with.js
@@ -1,2 +1,2 @@
require('../../modules/es6.string.ends-with');
-module.exports = require('../../modules/$.core').String.endsWith; \ No newline at end of file
+module.exports = require('../../modules/_core').String.endsWith; \ No newline at end of file
diff --git a/node_modules/core-js/fn/string/escape-html.js b/node_modules/core-js/fn/string/escape-html.js
index a6c62fafc..49176ca65 100644
--- a/node_modules/core-js/fn/string/escape-html.js
+++ b/node_modules/core-js/fn/string/escape-html.js
@@ -1,2 +1,2 @@
require('../../modules/core.string.escape-html');
-module.exports = require('../../modules/$.core').String.escapeHTML; \ No newline at end of file
+module.exports = require('../../modules/_core').String.escapeHTML; \ No newline at end of file
diff --git a/node_modules/core-js/fn/string/from-code-point.js b/node_modules/core-js/fn/string/from-code-point.js
index 0b42e7ae4..93fc53aea 100644
--- a/node_modules/core-js/fn/string/from-code-point.js
+++ b/node_modules/core-js/fn/string/from-code-point.js
@@ -1,2 +1,2 @@
require('../../modules/es6.string.from-code-point');
-module.exports = require('../../modules/$.core').String.fromCodePoint; \ No newline at end of file
+module.exports = require('../../modules/_core').String.fromCodePoint; \ No newline at end of file
diff --git a/node_modules/core-js/fn/string/includes.js b/node_modules/core-js/fn/string/includes.js
index 441bc5947..c9736404d 100644
--- a/node_modules/core-js/fn/string/includes.js
+++ b/node_modules/core-js/fn/string/includes.js
@@ -1,2 +1,2 @@
require('../../modules/es6.string.includes');
-module.exports = require('../../modules/$.core').String.includes; \ No newline at end of file
+module.exports = require('../../modules/_core').String.includes; \ No newline at end of file
diff --git a/node_modules/core-js/fn/string/index.js b/node_modules/core-js/fn/string/index.js
index 6be228caf..6485a9b25 100644
--- a/node_modules/core-js/fn/string/index.js
+++ b/node_modules/core-js/fn/string/index.js
@@ -11,11 +11,25 @@ require('../../modules/es6.regexp.match');
require('../../modules/es6.regexp.replace');
require('../../modules/es6.regexp.search');
require('../../modules/es6.regexp.split');
+require('../../modules/es6.string.anchor');
+require('../../modules/es6.string.big');
+require('../../modules/es6.string.blink');
+require('../../modules/es6.string.bold');
+require('../../modules/es6.string.fixed');
+require('../../modules/es6.string.fontcolor');
+require('../../modules/es6.string.fontsize');
+require('../../modules/es6.string.italics');
+require('../../modules/es6.string.link');
+require('../../modules/es6.string.small');
+require('../../modules/es6.string.strike');
+require('../../modules/es6.string.sub');
+require('../../modules/es6.string.sup');
require('../../modules/es7.string.at');
-require('../../modules/es7.string.pad-left');
-require('../../modules/es7.string.pad-right');
+require('../../modules/es7.string.pad-start');
+require('../../modules/es7.string.pad-end');
require('../../modules/es7.string.trim-left');
require('../../modules/es7.string.trim-right');
+require('../../modules/es7.string.match-all');
require('../../modules/core.string.escape-html');
require('../../modules/core.string.unescape-html');
-module.exports = require('../../modules/$.core').String; \ No newline at end of file
+module.exports = require('../../modules/_core').String;
diff --git a/node_modules/core-js/fn/string/iterator.js b/node_modules/core-js/fn/string/iterator.js
index 157336458..947e7558b 100644
--- a/node_modules/core-js/fn/string/iterator.js
+++ b/node_modules/core-js/fn/string/iterator.js
@@ -1,5 +1,5 @@
require('../../modules/es6.string.iterator');
-var get = require('../../modules/$.iterators').String;
+var get = require('../../modules/_iterators').String;
module.exports = function(it){
return get.call(it);
}; \ No newline at end of file
diff --git a/node_modules/core-js/fn/string/pad-left.js b/node_modules/core-js/fn/string/pad-left.js
deleted file mode 100644
index e89419c9e..000000000
--- a/node_modules/core-js/fn/string/pad-left.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.pad-left');
-module.exports = require('../../modules/$.core').String.padLeft; \ No newline at end of file
diff --git a/node_modules/core-js/fn/string/pad-right.js b/node_modules/core-js/fn/string/pad-right.js
deleted file mode 100644
index a87a412e2..000000000
--- a/node_modules/core-js/fn/string/pad-right.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.pad-right');
-module.exports = require('../../modules/$.core').String.padRight; \ No newline at end of file
diff --git a/node_modules/core-js/fn/string/raw.js b/node_modules/core-js/fn/string/raw.js
index 0c04fd341..713550fb2 100644
--- a/node_modules/core-js/fn/string/raw.js
+++ b/node_modules/core-js/fn/string/raw.js
@@ -1,2 +1,2 @@
require('../../modules/es6.string.raw');
-module.exports = require('../../modules/$.core').String.raw; \ No newline at end of file
+module.exports = require('../../modules/_core').String.raw; \ No newline at end of file
diff --git a/node_modules/core-js/fn/string/repeat.js b/node_modules/core-js/fn/string/repeat.js
index 361070954..fa75b13ec 100644
--- a/node_modules/core-js/fn/string/repeat.js
+++ b/node_modules/core-js/fn/string/repeat.js
@@ -1,2 +1,2 @@
require('../../modules/es6.string.repeat');
-module.exports = require('../../modules/$.core').String.repeat; \ No newline at end of file
+module.exports = require('../../modules/_core').String.repeat; \ No newline at end of file
diff --git a/node_modules/core-js/fn/string/starts-with.js b/node_modules/core-js/fn/string/starts-with.js
index edee83117..d62512a3c 100644
--- a/node_modules/core-js/fn/string/starts-with.js
+++ b/node_modules/core-js/fn/string/starts-with.js
@@ -1,2 +1,2 @@
require('../../modules/es6.string.starts-with');
-module.exports = require('../../modules/$.core').String.startsWith; \ No newline at end of file
+module.exports = require('../../modules/_core').String.startsWith; \ No newline at end of file
diff --git a/node_modules/core-js/fn/string/trim-left.js b/node_modules/core-js/fn/string/trim-left.js
index 579ad3978..04671d369 100644
--- a/node_modules/core-js/fn/string/trim-left.js
+++ b/node_modules/core-js/fn/string/trim-left.js
@@ -1,2 +1,2 @@
require('../../modules/es7.string.trim-left');
-module.exports = require('../../modules/$.core').String.trimLeft; \ No newline at end of file
+module.exports = require('../../modules/_core').String.trimLeft; \ No newline at end of file
diff --git a/node_modules/core-js/fn/string/trim-right.js b/node_modules/core-js/fn/string/trim-right.js
index 2168d9459..f3bdf6fb1 100644
--- a/node_modules/core-js/fn/string/trim-right.js
+++ b/node_modules/core-js/fn/string/trim-right.js
@@ -1,2 +1,2 @@
require('../../modules/es7.string.trim-right');
-module.exports = require('../../modules/$.core').String.trimRight; \ No newline at end of file
+module.exports = require('../../modules/_core').String.trimRight; \ No newline at end of file
diff --git a/node_modules/core-js/fn/string/trim.js b/node_modules/core-js/fn/string/trim.js
index 61c647013..c536e12eb 100644
--- a/node_modules/core-js/fn/string/trim.js
+++ b/node_modules/core-js/fn/string/trim.js
@@ -1,2 +1,2 @@
require('../../modules/es6.string.trim');
-module.exports = require('../../modules/$.core').String.trim; \ No newline at end of file
+module.exports = require('../../modules/_core').String.trim; \ No newline at end of file
diff --git a/node_modules/core-js/fn/string/unescape-html.js b/node_modules/core-js/fn/string/unescape-html.js
index de09d98b4..7c2c55c8c 100644
--- a/node_modules/core-js/fn/string/unescape-html.js
+++ b/node_modules/core-js/fn/string/unescape-html.js
@@ -1,2 +1,2 @@
require('../../modules/core.string.unescape-html');
-module.exports = require('../../modules/$.core').String.unescapeHTML; \ No newline at end of file
+module.exports = require('../../modules/_core').String.unescapeHTML; \ No newline at end of file
diff --git a/node_modules/core-js/fn/symbol/for.js b/node_modules/core-js/fn/symbol/for.js
index 1b05275d2..c9e93c139 100644
--- a/node_modules/core-js/fn/symbol/for.js
+++ b/node_modules/core-js/fn/symbol/for.js
@@ -1,2 +1,2 @@
require('../../modules/es6.symbol');
-module.exports = require('../../modules/$.core').Symbol['for']; \ No newline at end of file
+module.exports = require('../../modules/_core').Symbol['for']; \ No newline at end of file
diff --git a/node_modules/core-js/fn/symbol/has-instance.js b/node_modules/core-js/fn/symbol/has-instance.js
index b264f990f..f3ec9cf6b 100644
--- a/node_modules/core-js/fn/symbol/has-instance.js
+++ b/node_modules/core-js/fn/symbol/has-instance.js
@@ -1 +1,2 @@
-module.exports = require('../../modules/$.wks')('hasInstance'); \ No newline at end of file
+require('../../modules/es6.function.has-instance');
+module.exports = require('../../modules/_wks-ext').f('hasInstance'); \ No newline at end of file
diff --git a/node_modules/core-js/fn/symbol/index.js b/node_modules/core-js/fn/symbol/index.js
index c8f81d180..64c0f5f47 100644
--- a/node_modules/core-js/fn/symbol/index.js
+++ b/node_modules/core-js/fn/symbol/index.js
@@ -1,3 +1,5 @@
require('../../modules/es6.symbol');
require('../../modules/es6.object.to-string');
-module.exports = require('../../modules/$.core').Symbol; \ No newline at end of file
+require('../../modules/es7.symbol.async-iterator');
+require('../../modules/es7.symbol.observable');
+module.exports = require('../../modules/_core').Symbol; \ No newline at end of file
diff --git a/node_modules/core-js/fn/symbol/is-concat-spreadable.js b/node_modules/core-js/fn/symbol/is-concat-spreadable.js
index 17d5a2669..49ed7a1d2 100644
--- a/node_modules/core-js/fn/symbol/is-concat-spreadable.js
+++ b/node_modules/core-js/fn/symbol/is-concat-spreadable.js
@@ -1 +1 @@
-module.exports = require('../../modules/$.wks')('isConcatSpreadable'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('isConcatSpreadable'); \ No newline at end of file
diff --git a/node_modules/core-js/fn/symbol/iterator.js b/node_modules/core-js/fn/symbol/iterator.js
index 7e1b7985f..503522809 100644
--- a/node_modules/core-js/fn/symbol/iterator.js
+++ b/node_modules/core-js/fn/symbol/iterator.js
@@ -1,3 +1,3 @@
require('../../modules/es6.string.iterator');
require('../../modules/web.dom.iterable');
-module.exports = require('../../modules/$.wks')('iterator'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('iterator'); \ No newline at end of file
diff --git a/node_modules/core-js/fn/symbol/key-for.js b/node_modules/core-js/fn/symbol/key-for.js
index e62b1abd9..d9b595ff1 100644
--- a/node_modules/core-js/fn/symbol/key-for.js
+++ b/node_modules/core-js/fn/symbol/key-for.js
@@ -1,2 +1,2 @@
require('../../modules/es6.symbol');
-module.exports = require('../../modules/$.core').Symbol.keyFor; \ No newline at end of file
+module.exports = require('../../modules/_core').Symbol.keyFor; \ No newline at end of file
diff --git a/node_modules/core-js/fn/symbol/match.js b/node_modules/core-js/fn/symbol/match.js
index d25c1196d..d27db65b6 100644
--- a/node_modules/core-js/fn/symbol/match.js
+++ b/node_modules/core-js/fn/symbol/match.js
@@ -1,2 +1,2 @@
require('../../modules/es6.regexp.match');
-module.exports = require('../../modules/$.wks')('match'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('match'); \ No newline at end of file
diff --git a/node_modules/core-js/fn/symbol/replace.js b/node_modules/core-js/fn/symbol/replace.js
index ce3154b91..3ef60f5e9 100644
--- a/node_modules/core-js/fn/symbol/replace.js
+++ b/node_modules/core-js/fn/symbol/replace.js
@@ -1,2 +1,2 @@
require('../../modules/es6.regexp.replace');
-module.exports = require('../../modules/$.wks')('replace'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('replace'); \ No newline at end of file
diff --git a/node_modules/core-js/fn/symbol/search.js b/node_modules/core-js/fn/symbol/search.js
index ad781d404..aee84f9e6 100644
--- a/node_modules/core-js/fn/symbol/search.js
+++ b/node_modules/core-js/fn/symbol/search.js
@@ -1,2 +1,2 @@
require('../../modules/es6.regexp.search');
-module.exports = require('../../modules/$.wks')('search'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('search'); \ No newline at end of file
diff --git a/node_modules/core-js/fn/symbol/species.js b/node_modules/core-js/fn/symbol/species.js
index de937d752..a425eb2da 100644
--- a/node_modules/core-js/fn/symbol/species.js
+++ b/node_modules/core-js/fn/symbol/species.js
@@ -1 +1 @@
-module.exports = require('../../modules/$.wks')('species'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('species'); \ No newline at end of file
diff --git a/node_modules/core-js/fn/symbol/split.js b/node_modules/core-js/fn/symbol/split.js
index 27c516672..8535932fb 100644
--- a/node_modules/core-js/fn/symbol/split.js
+++ b/node_modules/core-js/fn/symbol/split.js
@@ -1,2 +1,2 @@
require('../../modules/es6.regexp.split');
-module.exports = require('../../modules/$.wks')('split'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('split'); \ No newline at end of file
diff --git a/node_modules/core-js/fn/symbol/to-primitive.js b/node_modules/core-js/fn/symbol/to-primitive.js
index 129eb8b28..20c831b85 100644
--- a/node_modules/core-js/fn/symbol/to-primitive.js
+++ b/node_modules/core-js/fn/symbol/to-primitive.js
@@ -1 +1 @@
-module.exports = require('../../modules/$.wks')('toPrimitive'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('toPrimitive'); \ No newline at end of file
diff --git a/node_modules/core-js/fn/symbol/to-string-tag.js b/node_modules/core-js/fn/symbol/to-string-tag.js
index fc22c861a..101baf27c 100644
--- a/node_modules/core-js/fn/symbol/to-string-tag.js
+++ b/node_modules/core-js/fn/symbol/to-string-tag.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.to-string');
-module.exports = require('../../modules/$.wks')('toStringTag'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('toStringTag'); \ No newline at end of file
diff --git a/node_modules/core-js/fn/symbol/unscopables.js b/node_modules/core-js/fn/symbol/unscopables.js
index 399397007..6c4146b23 100644
--- a/node_modules/core-js/fn/symbol/unscopables.js
+++ b/node_modules/core-js/fn/symbol/unscopables.js
@@ -1 +1 @@
-module.exports = require('../../modules/$.wks')('unscopables'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('unscopables'); \ No newline at end of file
diff --git a/node_modules/core-js/fn/weak-map.js b/node_modules/core-js/fn/weak-map.js
index ebf46e6a5..00cac1adb 100644
--- a/node_modules/core-js/fn/weak-map.js
+++ b/node_modules/core-js/fn/weak-map.js
@@ -1,4 +1,4 @@
require('../modules/es6.object.to-string');
require('../modules/web.dom.iterable');
require('../modules/es6.weak-map');
-module.exports = require('../modules/$.core').WeakMap; \ No newline at end of file
+module.exports = require('../modules/_core').WeakMap; \ No newline at end of file
diff --git a/node_modules/core-js/fn/weak-set.js b/node_modules/core-js/fn/weak-set.js
index a058c8a6a..eef1af2a8 100644
--- a/node_modules/core-js/fn/weak-set.js
+++ b/node_modules/core-js/fn/weak-set.js
@@ -1,4 +1,4 @@
require('../modules/es6.object.to-string');
require('../modules/web.dom.iterable');
require('../modules/es6.weak-set');
-module.exports = require('../modules/$.core').WeakSet; \ No newline at end of file
+module.exports = require('../modules/_core').WeakSet; \ No newline at end of file
diff --git a/node_modules/core-js/index.js b/node_modules/core-js/index.js
index 9acb1b4ad..78b9e3d4b 100644
--- a/node_modules/core-js/index.js
+++ b/node_modules/core-js/index.js
@@ -10,7 +10,7 @@ require('./modules/core.object.classof');
require('./modules/core.object.define');
require('./modules/core.object.make');
require('./modules/core.number.iterator');
+require('./modules/core.regexp.escape');
require('./modules/core.string.escape-html');
require('./modules/core.string.unescape-html');
-require('./modules/core.log');
-module.exports = require('./modules/$.core'); \ No newline at end of file
+module.exports = require('./modules/_core'); \ No newline at end of file
diff --git a/node_modules/core-js/js/array.js b/node_modules/core-js/js/array.js
deleted file mode 100644
index 99a53add4..000000000
--- a/node_modules/core-js/js/array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/js.array.statics');
-module.exports = require('../modules/$.core').Array; \ No newline at end of file
diff --git a/node_modules/core-js/js/index.js b/node_modules/core-js/js/index.js
deleted file mode 100644
index 47cb5ab56..000000000
--- a/node_modules/core-js/js/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/js.array.statics');
-module.exports = require('../modules/$.core'); \ No newline at end of file
diff --git a/node_modules/core-js/library/core/_.js b/node_modules/core-js/library/core/_.js
index 475a66cdf..8a99f7062 100644
--- a/node_modules/core-js/library/core/_.js
+++ b/node_modules/core-js/library/core/_.js
@@ -1,2 +1,2 @@
require('../modules/core.function.part');
-module.exports = require('../modules/$.core')._; \ No newline at end of file
+module.exports = require('../modules/_core')._; \ No newline at end of file
diff --git a/node_modules/core-js/library/core/delay.js b/node_modules/core-js/library/core/delay.js
index 1ff9a56d5..188573884 100644
--- a/node_modules/core-js/library/core/delay.js
+++ b/node_modules/core-js/library/core/delay.js
@@ -1,2 +1,2 @@
require('../modules/core.delay');
-module.exports = require('../modules/$.core').delay;
+module.exports = require('../modules/_core').delay;
diff --git a/node_modules/core-js/library/core/dict.js b/node_modules/core-js/library/core/dict.js
index ed848e2c2..da84a8d88 100644
--- a/node_modules/core-js/library/core/dict.js
+++ b/node_modules/core-js/library/core/dict.js
@@ -1,2 +1,2 @@
require('../modules/core.dict');
-module.exports = require('../modules/$.core').Dict; \ No newline at end of file
+module.exports = require('../modules/_core').Dict; \ No newline at end of file
diff --git a/node_modules/core-js/library/core/function.js b/node_modules/core-js/library/core/function.js
index 42b6dbb84..3b8d01317 100644
--- a/node_modules/core-js/library/core/function.js
+++ b/node_modules/core-js/library/core/function.js
@@ -1,2 +1,2 @@
require('../modules/core.function.part');
-module.exports = require('../modules/$.core').Function;
+module.exports = require('../modules/_core').Function;
diff --git a/node_modules/core-js/library/core/index.js b/node_modules/core-js/library/core/index.js
index 3d50bdb63..2b20fd9ec 100644
--- a/node_modules/core-js/library/core/index.js
+++ b/node_modules/core-js/library/core/index.js
@@ -9,7 +9,7 @@ require('../modules/core.object.classof');
require('../modules/core.object.define');
require('../modules/core.object.make');
require('../modules/core.number.iterator');
+require('../modules/core.regexp.escape');
require('../modules/core.string.escape-html');
require('../modules/core.string.unescape-html');
-require('../modules/core.log');
-module.exports = require('../modules/$.core');
+module.exports = require('../modules/_core');
diff --git a/node_modules/core-js/library/core/log.js b/node_modules/core-js/library/core/log.js
deleted file mode 100644
index 899d6ed01..000000000
--- a/node_modules/core-js/library/core/log.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.log');
-module.exports = require('../modules/$.core').log;
diff --git a/node_modules/core-js/library/core/number.js b/node_modules/core-js/library/core/number.js
index 6e3cdbf6f..62f632c51 100644
--- a/node_modules/core-js/library/core/number.js
+++ b/node_modules/core-js/library/core/number.js
@@ -1,2 +1,2 @@
require('../modules/core.number.iterator');
-module.exports = require('../modules/$.core').Number; \ No newline at end of file
+module.exports = require('../modules/_core').Number; \ No newline at end of file
diff --git a/node_modules/core-js/library/core/object.js b/node_modules/core-js/library/core/object.js
index 63325663a..04e539c90 100644
--- a/node_modules/core-js/library/core/object.js
+++ b/node_modules/core-js/library/core/object.js
@@ -2,4 +2,4 @@ require('../modules/core.object.is-object');
require('../modules/core.object.classof');
require('../modules/core.object.define');
require('../modules/core.object.make');
-module.exports = require('../modules/$.core').Object;
+module.exports = require('../modules/_core').Object;
diff --git a/node_modules/core-js/library/core/string.js b/node_modules/core-js/library/core/string.js
index 829e0c61e..8da740c6e 100644
--- a/node_modules/core-js/library/core/string.js
+++ b/node_modules/core-js/library/core/string.js
@@ -1,3 +1,3 @@
require('../modules/core.string.escape-html');
require('../modules/core.string.unescape-html');
-module.exports = require('../modules/$.core').String; \ No newline at end of file
+module.exports = require('../modules/_core').String; \ No newline at end of file
diff --git a/node_modules/core-js/library/es5/index.js b/node_modules/core-js/library/es5/index.js
index 3c23364a8..580f1a670 100644
--- a/node_modules/core-js/library/es5/index.js
+++ b/node_modules/core-js/library/es5/index.js
@@ -1,9 +1,37 @@
-require('../modules/es5');
+require('../modules/es6.object.create');
+require('../modules/es6.object.define-property');
+require('../modules/es6.object.define-properties');
+require('../modules/es6.object.get-own-property-descriptor');
+require('../modules/es6.object.get-prototype-of');
+require('../modules/es6.object.keys');
+require('../modules/es6.object.get-own-property-names');
require('../modules/es6.object.freeze');
require('../modules/es6.object.seal');
require('../modules/es6.object.prevent-extensions');
require('../modules/es6.object.is-frozen');
require('../modules/es6.object.is-sealed');
require('../modules/es6.object.is-extensible');
+require('../modules/es6.function.bind');
+require('../modules/es6.array.is-array');
+require('../modules/es6.array.join');
+require('../modules/es6.array.slice');
+require('../modules/es6.array.sort');
+require('../modules/es6.array.for-each');
+require('../modules/es6.array.map');
+require('../modules/es6.array.filter');
+require('../modules/es6.array.some');
+require('../modules/es6.array.every');
+require('../modules/es6.array.reduce');
+require('../modules/es6.array.reduce-right');
+require('../modules/es6.array.index-of');
+require('../modules/es6.array.last-index-of');
+require('../modules/es6.number.to-fixed');
+require('../modules/es6.number.to-precision');
+require('../modules/es6.date.now');
+require('../modules/es6.date.to-iso-string');
+require('../modules/es6.date.to-json');
+require('../modules/es6.parse-int');
+require('../modules/es6.parse-float');
require('../modules/es6.string.trim');
-module.exports = require('../modules/$.core'); \ No newline at end of file
+require('../modules/es6.regexp.to-string');
+module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/core-js/library/es6/array.js b/node_modules/core-js/library/es6/array.js
index 36629ca04..428d3e8c4 100644
--- a/node_modules/core-js/library/es6/array.js
+++ b/node_modules/core-js/library/es6/array.js
@@ -1,10 +1,23 @@
require('../modules/es6.string.iterator');
+require('../modules/es6.array.is-array');
require('../modules/es6.array.from');
require('../modules/es6.array.of');
-require('../modules/es6.array.species');
-require('../modules/es6.array.iterator');
+require('../modules/es6.array.join');
+require('../modules/es6.array.slice');
+require('../modules/es6.array.sort');
+require('../modules/es6.array.for-each');
+require('../modules/es6.array.map');
+require('../modules/es6.array.filter');
+require('../modules/es6.array.some');
+require('../modules/es6.array.every');
+require('../modules/es6.array.reduce');
+require('../modules/es6.array.reduce-right');
+require('../modules/es6.array.index-of');
+require('../modules/es6.array.last-index-of');
require('../modules/es6.array.copy-within');
require('../modules/es6.array.fill');
require('../modules/es6.array.find');
require('../modules/es6.array.find-index');
-module.exports = require('../modules/$.core').Array; \ No newline at end of file
+require('../modules/es6.array.species');
+require('../modules/es6.array.iterator');
+module.exports = require('../modules/_core').Array; \ No newline at end of file
diff --git a/node_modules/core-js/library/es6/function.js b/node_modules/core-js/library/es6/function.js
index 3e61dcd46..ff685da27 100644
--- a/node_modules/core-js/library/es6/function.js
+++ b/node_modules/core-js/library/es6/function.js
@@ -1,3 +1,4 @@
+require('../modules/es6.function.bind');
require('../modules/es6.function.name');
require('../modules/es6.function.has-instance');
-module.exports = require('../modules/$.core').Function; \ No newline at end of file
+module.exports = require('../modules/_core').Function; \ No newline at end of file
diff --git a/node_modules/core-js/library/es6/index.js b/node_modules/core-js/library/es6/index.js
index b9fc80be6..59df50921 100644
--- a/node_modules/core-js/library/es6/index.js
+++ b/node_modules/core-js/library/es6/index.js
@@ -1,21 +1,29 @@
require('../modules/es6.symbol');
-require('../modules/es6.object.assign');
-require('../modules/es6.object.is');
-require('../modules/es6.object.set-prototype-of');
-require('../modules/es6.object.to-string');
+require('../modules/es6.object.create');
+require('../modules/es6.object.define-property');
+require('../modules/es6.object.define-properties');
+require('../modules/es6.object.get-own-property-descriptor');
+require('../modules/es6.object.get-prototype-of');
+require('../modules/es6.object.keys');
+require('../modules/es6.object.get-own-property-names');
require('../modules/es6.object.freeze');
require('../modules/es6.object.seal');
require('../modules/es6.object.prevent-extensions');
require('../modules/es6.object.is-frozen');
require('../modules/es6.object.is-sealed');
require('../modules/es6.object.is-extensible');
-require('../modules/es6.object.get-own-property-descriptor');
-require('../modules/es6.object.get-prototype-of');
-require('../modules/es6.object.keys');
-require('../modules/es6.object.get-own-property-names');
+require('../modules/es6.object.assign');
+require('../modules/es6.object.is');
+require('../modules/es6.object.set-prototype-of');
+require('../modules/es6.object.to-string');
+require('../modules/es6.function.bind');
require('../modules/es6.function.name');
require('../modules/es6.function.has-instance');
+require('../modules/es6.parse-int');
+require('../modules/es6.parse-float');
require('../modules/es6.number.constructor');
+require('../modules/es6.number.to-fixed');
+require('../modules/es6.number.to-precision');
require('../modules/es6.number.epsilon');
require('../modules/es6.number.is-finite');
require('../modules/es6.number.is-integer');
@@ -51,15 +59,47 @@ require('../modules/es6.string.ends-with');
require('../modules/es6.string.includes');
require('../modules/es6.string.repeat');
require('../modules/es6.string.starts-with');
+require('../modules/es6.string.anchor');
+require('../modules/es6.string.big');
+require('../modules/es6.string.blink');
+require('../modules/es6.string.bold');
+require('../modules/es6.string.fixed');
+require('../modules/es6.string.fontcolor');
+require('../modules/es6.string.fontsize');
+require('../modules/es6.string.italics');
+require('../modules/es6.string.link');
+require('../modules/es6.string.small');
+require('../modules/es6.string.strike');
+require('../modules/es6.string.sub');
+require('../modules/es6.string.sup');
+require('../modules/es6.date.now');
+require('../modules/es6.date.to-json');
+require('../modules/es6.date.to-iso-string');
+require('../modules/es6.date.to-string');
+require('../modules/es6.date.to-primitive');
+require('../modules/es6.array.is-array');
require('../modules/es6.array.from');
require('../modules/es6.array.of');
-require('../modules/es6.array.species');
-require('../modules/es6.array.iterator');
+require('../modules/es6.array.join');
+require('../modules/es6.array.slice');
+require('../modules/es6.array.sort');
+require('../modules/es6.array.for-each');
+require('../modules/es6.array.map');
+require('../modules/es6.array.filter');
+require('../modules/es6.array.some');
+require('../modules/es6.array.every');
+require('../modules/es6.array.reduce');
+require('../modules/es6.array.reduce-right');
+require('../modules/es6.array.index-of');
+require('../modules/es6.array.last-index-of');
require('../modules/es6.array.copy-within');
require('../modules/es6.array.fill');
require('../modules/es6.array.find');
require('../modules/es6.array.find-index');
+require('../modules/es6.array.species');
+require('../modules/es6.array.iterator');
require('../modules/es6.regexp.constructor');
+require('../modules/es6.regexp.to-string');
require('../modules/es6.regexp.flags');
require('../modules/es6.regexp.match');
require('../modules/es6.regexp.replace');
@@ -70,6 +110,17 @@ require('../modules/es6.map');
require('../modules/es6.set');
require('../modules/es6.weak-map');
require('../modules/es6.weak-set');
+require('../modules/es6.typed.array-buffer');
+require('../modules/es6.typed.data-view');
+require('../modules/es6.typed.int8-array');
+require('../modules/es6.typed.uint8-array');
+require('../modules/es6.typed.uint8-clamped-array');
+require('../modules/es6.typed.int16-array');
+require('../modules/es6.typed.uint16-array');
+require('../modules/es6.typed.int32-array');
+require('../modules/es6.typed.uint32-array');
+require('../modules/es6.typed.float32-array');
+require('../modules/es6.typed.float64-array');
require('../modules/es6.reflect.apply');
require('../modules/es6.reflect.construct');
require('../modules/es6.reflect.define-property');
@@ -84,4 +135,4 @@ require('../modules/es6.reflect.own-keys');
require('../modules/es6.reflect.prevent-extensions');
require('../modules/es6.reflect.set');
require('../modules/es6.reflect.set-prototype-of');
-module.exports = require('../modules/$.core'); \ No newline at end of file
+module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/core-js/library/es6/map.js b/node_modules/core-js/library/es6/map.js
index 521a192e4..50f04c1f2 100644
--- a/node_modules/core-js/library/es6/map.js
+++ b/node_modules/core-js/library/es6/map.js
@@ -2,4 +2,4 @@ require('../modules/es6.object.to-string');
require('../modules/es6.string.iterator');
require('../modules/web.dom.iterable');
require('../modules/es6.map');
-module.exports = require('../modules/$.core').Map; \ No newline at end of file
+module.exports = require('../modules/_core').Map; \ No newline at end of file
diff --git a/node_modules/core-js/library/es6/math.js b/node_modules/core-js/library/es6/math.js
index 8b5a2e799..f26b5b296 100644
--- a/node_modules/core-js/library/es6/math.js
+++ b/node_modules/core-js/library/es6/math.js
@@ -15,4 +15,4 @@ require('../modules/es6.math.sign');
require('../modules/es6.math.sinh');
require('../modules/es6.math.tanh');
require('../modules/es6.math.trunc');
-module.exports = require('../modules/$.core').Math; \ No newline at end of file
+module.exports = require('../modules/_core').Math; \ No newline at end of file
diff --git a/node_modules/core-js/library/es6/number.js b/node_modules/core-js/library/es6/number.js
index 8f4877031..1dafcda43 100644
--- a/node_modules/core-js/library/es6/number.js
+++ b/node_modules/core-js/library/es6/number.js
@@ -1,4 +1,6 @@
require('../modules/es6.number.constructor');
+require('../modules/es6.number.to-fixed');
+require('../modules/es6.number.to-precision');
require('../modules/es6.number.epsilon');
require('../modules/es6.number.is-finite');
require('../modules/es6.number.is-integer');
@@ -8,4 +10,4 @@ require('../modules/es6.number.max-safe-integer');
require('../modules/es6.number.min-safe-integer');
require('../modules/es6.number.parse-float');
require('../modules/es6.number.parse-int');
-module.exports = require('../modules/$.core').Number; \ No newline at end of file
+module.exports = require('../modules/_core').Number; \ No newline at end of file
diff --git a/node_modules/core-js/library/es6/object.js b/node_modules/core-js/library/es6/object.js
index 94af189f5..aada8c38f 100644
--- a/node_modules/core-js/library/es6/object.js
+++ b/node_modules/core-js/library/es6/object.js
@@ -1,17 +1,20 @@
require('../modules/es6.symbol');
-require('../modules/es6.object.assign');
-require('../modules/es6.object.is');
-require('../modules/es6.object.set-prototype-of');
-require('../modules/es6.object.to-string');
+require('../modules/es6.object.create');
+require('../modules/es6.object.define-property');
+require('../modules/es6.object.define-properties');
+require('../modules/es6.object.get-own-property-descriptor');
+require('../modules/es6.object.get-prototype-of');
+require('../modules/es6.object.keys');
+require('../modules/es6.object.get-own-property-names');
require('../modules/es6.object.freeze');
require('../modules/es6.object.seal');
require('../modules/es6.object.prevent-extensions');
require('../modules/es6.object.is-frozen');
require('../modules/es6.object.is-sealed');
require('../modules/es6.object.is-extensible');
-require('../modules/es6.object.get-own-property-descriptor');
-require('../modules/es6.object.get-prototype-of');
-require('../modules/es6.object.keys');
-require('../modules/es6.object.get-own-property-names');
+require('../modules/es6.object.assign');
+require('../modules/es6.object.is');
+require('../modules/es6.object.set-prototype-of');
+require('../modules/es6.object.to-string');
-module.exports = require('../modules/$.core').Object; \ No newline at end of file
+module.exports = require('../modules/_core').Object; \ No newline at end of file
diff --git a/node_modules/core-js/library/es6/promise.js b/node_modules/core-js/library/es6/promise.js
index 0a0996139..c901c8595 100644
--- a/node_modules/core-js/library/es6/promise.js
+++ b/node_modules/core-js/library/es6/promise.js
@@ -2,4 +2,4 @@ require('../modules/es6.object.to-string');
require('../modules/es6.string.iterator');
require('../modules/web.dom.iterable');
require('../modules/es6.promise');
-module.exports = require('../modules/$.core').Promise; \ No newline at end of file
+module.exports = require('../modules/_core').Promise; \ No newline at end of file
diff --git a/node_modules/core-js/library/es6/reflect.js b/node_modules/core-js/library/es6/reflect.js
index 3c2f74eb8..18bdb3c2e 100644
--- a/node_modules/core-js/library/es6/reflect.js
+++ b/node_modules/core-js/library/es6/reflect.js
@@ -12,4 +12,4 @@ require('../modules/es6.reflect.own-keys');
require('../modules/es6.reflect.prevent-extensions');
require('../modules/es6.reflect.set');
require('../modules/es6.reflect.set-prototype-of');
-module.exports = require('../modules/$.core').Reflect; \ No newline at end of file
+module.exports = require('../modules/_core').Reflect; \ No newline at end of file
diff --git a/node_modules/core-js/library/es6/regexp.js b/node_modules/core-js/library/es6/regexp.js
index 195d36d43..27cc827f9 100644
--- a/node_modules/core-js/library/es6/regexp.js
+++ b/node_modules/core-js/library/es6/regexp.js
@@ -1,7 +1,8 @@
require('../modules/es6.regexp.constructor');
+require('../modules/es6.regexp.to-string');
require('../modules/es6.regexp.flags');
require('../modules/es6.regexp.match');
require('../modules/es6.regexp.replace');
require('../modules/es6.regexp.search');
require('../modules/es6.regexp.split');
-module.exports = require('../modules/$.core').RegExp; \ No newline at end of file
+module.exports = require('../modules/_core').RegExp; \ No newline at end of file
diff --git a/node_modules/core-js/library/es6/set.js b/node_modules/core-js/library/es6/set.js
index 6a84f5891..2a2557ced 100644
--- a/node_modules/core-js/library/es6/set.js
+++ b/node_modules/core-js/library/es6/set.js
@@ -2,4 +2,4 @@ require('../modules/es6.object.to-string');
require('../modules/es6.string.iterator');
require('../modules/web.dom.iterable');
require('../modules/es6.set');
-module.exports = require('../modules/$.core').Set; \ No newline at end of file
+module.exports = require('../modules/_core').Set; \ No newline at end of file
diff --git a/node_modules/core-js/library/es6/string.js b/node_modules/core-js/library/es6/string.js
index bc7a1ab10..83033621f 100644
--- a/node_modules/core-js/library/es6/string.js
+++ b/node_modules/core-js/library/es6/string.js
@@ -7,8 +7,21 @@ require('../modules/es6.string.ends-with');
require('../modules/es6.string.includes');
require('../modules/es6.string.repeat');
require('../modules/es6.string.starts-with');
+require('../modules/es6.string.anchor');
+require('../modules/es6.string.big');
+require('../modules/es6.string.blink');
+require('../modules/es6.string.bold');
+require('../modules/es6.string.fixed');
+require('../modules/es6.string.fontcolor');
+require('../modules/es6.string.fontsize');
+require('../modules/es6.string.italics');
+require('../modules/es6.string.link');
+require('../modules/es6.string.small');
+require('../modules/es6.string.strike');
+require('../modules/es6.string.sub');
+require('../modules/es6.string.sup');
require('../modules/es6.regexp.match');
require('../modules/es6.regexp.replace');
require('../modules/es6.regexp.search');
require('../modules/es6.regexp.split');
-module.exports = require('../modules/$.core').String; \ No newline at end of file
+module.exports = require('../modules/_core').String; \ No newline at end of file
diff --git a/node_modules/core-js/library/es6/symbol.js b/node_modules/core-js/library/es6/symbol.js
index ae2405b51..e578e3af3 100644
--- a/node_modules/core-js/library/es6/symbol.js
+++ b/node_modules/core-js/library/es6/symbol.js
@@ -1,3 +1,3 @@
require('../modules/es6.symbol');
require('../modules/es6.object.to-string');
-module.exports = require('../modules/$.core').Symbol; \ No newline at end of file
+module.exports = require('../modules/_core').Symbol; \ No newline at end of file
diff --git a/node_modules/core-js/library/es6/weak-map.js b/node_modules/core-js/library/es6/weak-map.js
index f2c6db892..655866c2d 100644
--- a/node_modules/core-js/library/es6/weak-map.js
+++ b/node_modules/core-js/library/es6/weak-map.js
@@ -1,4 +1,4 @@
require('../modules/es6.object.to-string');
require('../modules/es6.array.iterator');
require('../modules/es6.weak-map');
-module.exports = require('../modules/$.core').WeakMap; \ No newline at end of file
+module.exports = require('../modules/_core').WeakMap; \ No newline at end of file
diff --git a/node_modules/core-js/library/es6/weak-set.js b/node_modules/core-js/library/es6/weak-set.js
index a058c8a6a..eef1af2a8 100644
--- a/node_modules/core-js/library/es6/weak-set.js
+++ b/node_modules/core-js/library/es6/weak-set.js
@@ -1,4 +1,4 @@
require('../modules/es6.object.to-string');
require('../modules/web.dom.iterable');
require('../modules/es6.weak-set');
-module.exports = require('../modules/$.core').WeakSet; \ No newline at end of file
+module.exports = require('../modules/_core').WeakSet; \ No newline at end of file
diff --git a/node_modules/core-js/library/es7/array.js b/node_modules/core-js/library/es7/array.js
index e58f90579..9fb57fa64 100644
--- a/node_modules/core-js/library/es7/array.js
+++ b/node_modules/core-js/library/es7/array.js
@@ -1,2 +1,2 @@
require('../modules/es7.array.includes');
-module.exports = require('../modules/$.core').Array; \ No newline at end of file
+module.exports = require('../modules/_core').Array; \ No newline at end of file
diff --git a/node_modules/core-js/library/es7/index.js b/node_modules/core-js/library/es7/index.js
index a277b6398..b8c90b86e 100644
--- a/node_modules/core-js/library/es7/index.js
+++ b/node_modules/core-js/library/es7/index.js
@@ -1,13 +1,36 @@
require('../modules/es7.array.includes');
require('../modules/es7.string.at');
-require('../modules/es7.string.pad-left');
-require('../modules/es7.string.pad-right');
+require('../modules/es7.string.pad-start');
+require('../modules/es7.string.pad-end');
require('../modules/es7.string.trim-left');
require('../modules/es7.string.trim-right');
-require('../modules/es7.regexp.escape');
+require('../modules/es7.string.match-all');
+require('../modules/es7.symbol.async-iterator');
+require('../modules/es7.symbol.observable');
require('../modules/es7.object.get-own-property-descriptors');
require('../modules/es7.object.values');
require('../modules/es7.object.entries');
+require('../modules/es7.object.define-getter');
+require('../modules/es7.object.define-setter');
+require('../modules/es7.object.lookup-getter');
+require('../modules/es7.object.lookup-setter');
require('../modules/es7.map.to-json');
require('../modules/es7.set.to-json');
-module.exports = require('../modules/$.core'); \ No newline at end of file
+require('../modules/es7.system.global');
+require('../modules/es7.error.is-error');
+require('../modules/es7.math.iaddh');
+require('../modules/es7.math.isubh');
+require('../modules/es7.math.imulh');
+require('../modules/es7.math.umulh');
+require('../modules/es7.reflect.define-metadata');
+require('../modules/es7.reflect.delete-metadata');
+require('../modules/es7.reflect.get-metadata');
+require('../modules/es7.reflect.get-metadata-keys');
+require('../modules/es7.reflect.get-own-metadata');
+require('../modules/es7.reflect.get-own-metadata-keys');
+require('../modules/es7.reflect.has-metadata');
+require('../modules/es7.reflect.has-own-metadata');
+require('../modules/es7.reflect.metadata');
+require('../modules/es7.asap');
+require('../modules/es7.observable');
+module.exports = require('../modules/_core');
diff --git a/node_modules/core-js/library/es7/map.js b/node_modules/core-js/library/es7/map.js
index fe5199928..dfa32fd26 100644
--- a/node_modules/core-js/library/es7/map.js
+++ b/node_modules/core-js/library/es7/map.js
@@ -1,2 +1,2 @@
require('../modules/es7.map.to-json');
-module.exports = require('../modules/$.core').Map; \ No newline at end of file
+module.exports = require('../modules/_core').Map; \ No newline at end of file
diff --git a/node_modules/core-js/library/es7/object.js b/node_modules/core-js/library/es7/object.js
index b05853031..c76b754d4 100644
--- a/node_modules/core-js/library/es7/object.js
+++ b/node_modules/core-js/library/es7/object.js
@@ -1,4 +1,8 @@
require('../modules/es7.object.get-own-property-descriptors');
require('../modules/es7.object.values');
require('../modules/es7.object.entries');
-module.exports = require('../modules/$.core').Object; \ No newline at end of file
+require('../modules/es7.object.define-getter');
+require('../modules/es7.object.define-setter');
+require('../modules/es7.object.lookup-getter');
+require('../modules/es7.object.lookup-setter');
+module.exports = require('../modules/_core').Object; \ No newline at end of file
diff --git a/node_modules/core-js/library/es7/regexp.js b/node_modules/core-js/library/es7/regexp.js
deleted file mode 100644
index cb24f98bb..000000000
--- a/node_modules/core-js/library/es7/regexp.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/es7.regexp.escape');
-module.exports = require('../modules/$.core').RegExp; \ No newline at end of file
diff --git a/node_modules/core-js/library/es7/set.js b/node_modules/core-js/library/es7/set.js
index 16e945283..b5c19c44f 100644
--- a/node_modules/core-js/library/es7/set.js
+++ b/node_modules/core-js/library/es7/set.js
@@ -1,2 +1,2 @@
require('../modules/es7.set.to-json');
-module.exports = require('../modules/$.core').Set; \ No newline at end of file
+module.exports = require('../modules/_core').Set; \ No newline at end of file
diff --git a/node_modules/core-js/library/es7/string.js b/node_modules/core-js/library/es7/string.js
index bca0886ce..6e413b4c2 100644
--- a/node_modules/core-js/library/es7/string.js
+++ b/node_modules/core-js/library/es7/string.js
@@ -1,6 +1,7 @@
require('../modules/es7.string.at');
-require('../modules/es7.string.pad-left');
-require('../modules/es7.string.pad-right');
+require('../modules/es7.string.pad-start');
+require('../modules/es7.string.pad-end');
require('../modules/es7.string.trim-left');
require('../modules/es7.string.trim-right');
-module.exports = require('../modules/$.core').String; \ No newline at end of file
+require('../modules/es7.string.match-all');
+module.exports = require('../modules/_core').String;
diff --git a/node_modules/core-js/library/fn/_.js b/node_modules/core-js/library/fn/_.js
index 475a66cdf..8a99f7062 100644
--- a/node_modules/core-js/library/fn/_.js
+++ b/node_modules/core-js/library/fn/_.js
@@ -1,2 +1,2 @@
require('../modules/core.function.part');
-module.exports = require('../modules/$.core')._; \ No newline at end of file
+module.exports = require('../modules/_core')._; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/concat.js b/node_modules/core-js/library/fn/array/concat.js
index 176ecffeb..de4bddf96 100644
--- a/node_modules/core-js/library/fn/array/concat.js
+++ b/node_modules/core-js/library/fn/array/concat.js
@@ -1,2 +1,4 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.concat; \ No newline at end of file
+// for a legacy code and future fixes
+module.exports = function(){
+ return Function.call.apply(Array.prototype.concat, arguments);
+}; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/copy-within.js b/node_modules/core-js/library/fn/array/copy-within.js
index 8a0113193..89e1de4ff 100644
--- a/node_modules/core-js/library/fn/array/copy-within.js
+++ b/node_modules/core-js/library/fn/array/copy-within.js
@@ -1,2 +1,2 @@
require('../../modules/es6.array.copy-within');
-module.exports = require('../../modules/$.core').Array.copyWithin; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.copyWithin; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/entries.js b/node_modules/core-js/library/fn/array/entries.js
index bcdbc33f2..f4feb26c2 100644
--- a/node_modules/core-js/library/fn/array/entries.js
+++ b/node_modules/core-js/library/fn/array/entries.js
@@ -1,2 +1,2 @@
require('../../modules/es6.array.iterator');
-module.exports = require('../../modules/$.core').Array.entries; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.entries; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/every.js b/node_modules/core-js/library/fn/array/every.js
index 0c7d0b7e2..168844cc5 100644
--- a/node_modules/core-js/library/fn/array/every.js
+++ b/node_modules/core-js/library/fn/array/every.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.every; \ No newline at end of file
+require('../../modules/es6.array.every');
+module.exports = require('../../modules/_core').Array.every; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/fill.js b/node_modules/core-js/library/fn/array/fill.js
index f53621202..b23ebfdee 100644
--- a/node_modules/core-js/library/fn/array/fill.js
+++ b/node_modules/core-js/library/fn/array/fill.js
@@ -1,2 +1,2 @@
require('../../modules/es6.array.fill');
-module.exports = require('../../modules/$.core').Array.fill; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.fill; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/filter.js b/node_modules/core-js/library/fn/array/filter.js
index 3f5b17ffe..0023f0de0 100644
--- a/node_modules/core-js/library/fn/array/filter.js
+++ b/node_modules/core-js/library/fn/array/filter.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.filter; \ No newline at end of file
+require('../../modules/es6.array.filter');
+module.exports = require('../../modules/_core').Array.filter; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/find-index.js b/node_modules/core-js/library/fn/array/find-index.js
index 7ec6cf7a8..99e6bf17b 100644
--- a/node_modules/core-js/library/fn/array/find-index.js
+++ b/node_modules/core-js/library/fn/array/find-index.js
@@ -1,2 +1,2 @@
require('../../modules/es6.array.find-index');
-module.exports = require('../../modules/$.core').Array.findIndex; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.findIndex; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/find.js b/node_modules/core-js/library/fn/array/find.js
index 9c3a6b31f..f146ec224 100644
--- a/node_modules/core-js/library/fn/array/find.js
+++ b/node_modules/core-js/library/fn/array/find.js
@@ -1,2 +1,2 @@
require('../../modules/es6.array.find');
-module.exports = require('../../modules/$.core').Array.find; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.find; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/for-each.js b/node_modules/core-js/library/fn/array/for-each.js
index b2e79f0b1..09e235f95 100644
--- a/node_modules/core-js/library/fn/array/for-each.js
+++ b/node_modules/core-js/library/fn/array/for-each.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.forEach; \ No newline at end of file
+require('../../modules/es6.array.for-each');
+module.exports = require('../../modules/_core').Array.forEach; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/from.js b/node_modules/core-js/library/fn/array/from.js
index f0483ccf4..1f323fbc3 100644
--- a/node_modules/core-js/library/fn/array/from.js
+++ b/node_modules/core-js/library/fn/array/from.js
@@ -1,3 +1,3 @@
require('../../modules/es6.string.iterator');
require('../../modules/es6.array.from');
-module.exports = require('../../modules/$.core').Array.from; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.from; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/includes.js b/node_modules/core-js/library/fn/array/includes.js
index 420c8318f..851d31fd1 100644
--- a/node_modules/core-js/library/fn/array/includes.js
+++ b/node_modules/core-js/library/fn/array/includes.js
@@ -1,2 +1,2 @@
require('../../modules/es7.array.includes');
-module.exports = require('../../modules/$.core').Array.includes; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.includes; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/index-of.js b/node_modules/core-js/library/fn/array/index-of.js
index 9f2cd14b6..9ed824727 100644
--- a/node_modules/core-js/library/fn/array/index-of.js
+++ b/node_modules/core-js/library/fn/array/index-of.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.indexOf; \ No newline at end of file
+require('../../modules/es6.array.index-of');
+module.exports = require('../../modules/_core').Array.indexOf; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/index.js b/node_modules/core-js/library/fn/array/index.js
index 2707be211..85bc77bc8 100644
--- a/node_modules/core-js/library/fn/array/index.js
+++ b/node_modules/core-js/library/fn/array/index.js
@@ -1,12 +1,24 @@
require('../../modules/es6.string.iterator');
+require('../../modules/es6.array.is-array');
require('../../modules/es6.array.from');
require('../../modules/es6.array.of');
-require('../../modules/es6.array.species');
-require('../../modules/es6.array.iterator');
+require('../../modules/es6.array.join');
+require('../../modules/es6.array.slice');
+require('../../modules/es6.array.sort');
+require('../../modules/es6.array.for-each');
+require('../../modules/es6.array.map');
+require('../../modules/es6.array.filter');
+require('../../modules/es6.array.some');
+require('../../modules/es6.array.every');
+require('../../modules/es6.array.reduce');
+require('../../modules/es6.array.reduce-right');
+require('../../modules/es6.array.index-of');
+require('../../modules/es6.array.last-index-of');
require('../../modules/es6.array.copy-within');
require('../../modules/es6.array.fill');
require('../../modules/es6.array.find');
require('../../modules/es6.array.find-index');
+require('../../modules/es6.array.species');
+require('../../modules/es6.array.iterator');
require('../../modules/es7.array.includes');
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array; \ No newline at end of file
+module.exports = require('../../modules/_core').Array; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/iterator.js b/node_modules/core-js/library/fn/array/iterator.js
index 662f3b5c5..ca93b78ab 100644
--- a/node_modules/core-js/library/fn/array/iterator.js
+++ b/node_modules/core-js/library/fn/array/iterator.js
@@ -1,2 +1,2 @@
require('../../modules/es6.array.iterator');
-module.exports = require('../../modules/$.core').Array.values; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.values; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/join.js b/node_modules/core-js/library/fn/array/join.js
index 443639228..9beef18d0 100644
--- a/node_modules/core-js/library/fn/array/join.js
+++ b/node_modules/core-js/library/fn/array/join.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.join; \ No newline at end of file
+require('../../modules/es6.array.join');
+module.exports = require('../../modules/_core').Array.join; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/keys.js b/node_modules/core-js/library/fn/array/keys.js
index e55d356e2..b44b921f7 100644
--- a/node_modules/core-js/library/fn/array/keys.js
+++ b/node_modules/core-js/library/fn/array/keys.js
@@ -1,2 +1,2 @@
require('../../modules/es6.array.iterator');
-module.exports = require('../../modules/$.core').Array.keys; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.keys; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/last-index-of.js b/node_modules/core-js/library/fn/array/last-index-of.js
index 678d0072d..6dcc98a10 100644
--- a/node_modules/core-js/library/fn/array/last-index-of.js
+++ b/node_modules/core-js/library/fn/array/last-index-of.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.lastIndexOf; \ No newline at end of file
+require('../../modules/es6.array.last-index-of');
+module.exports = require('../../modules/_core').Array.lastIndexOf; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/map.js b/node_modules/core-js/library/fn/array/map.js
index a1457c7a8..14b0f6279 100644
--- a/node_modules/core-js/library/fn/array/map.js
+++ b/node_modules/core-js/library/fn/array/map.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.map; \ No newline at end of file
+require('../../modules/es6.array.map');
+module.exports = require('../../modules/_core').Array.map; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/of.js b/node_modules/core-js/library/fn/array/of.js
index 07bb5a4ad..652ee9808 100644
--- a/node_modules/core-js/library/fn/array/of.js
+++ b/node_modules/core-js/library/fn/array/of.js
@@ -1,2 +1,2 @@
require('../../modules/es6.array.of');
-module.exports = require('../../modules/$.core').Array.of; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.of; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/pop.js b/node_modules/core-js/library/fn/array/pop.js
index bd8f86109..b8414f616 100644
--- a/node_modules/core-js/library/fn/array/pop.js
+++ b/node_modules/core-js/library/fn/array/pop.js
@@ -1,2 +1,4 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.pop; \ No newline at end of file
+// for a legacy code and future fixes
+module.exports = function(){
+ return Function.call.apply(Array.prototype.pop, arguments);
+}; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/push.js b/node_modules/core-js/library/fn/array/push.js
index 3ccf07071..03539009e 100644
--- a/node_modules/core-js/library/fn/array/push.js
+++ b/node_modules/core-js/library/fn/array/push.js
@@ -1,2 +1,4 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.push; \ No newline at end of file
+// for a legacy code and future fixes
+module.exports = function(){
+ return Function.call.apply(Array.prototype.push, arguments);
+}; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/reduce-right.js b/node_modules/core-js/library/fn/array/reduce-right.js
index c592207cf..1193ecbae 100644
--- a/node_modules/core-js/library/fn/array/reduce-right.js
+++ b/node_modules/core-js/library/fn/array/reduce-right.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.reduceRight; \ No newline at end of file
+require('../../modules/es6.array.reduce-right');
+module.exports = require('../../modules/_core').Array.reduceRight; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/reduce.js b/node_modules/core-js/library/fn/array/reduce.js
index b8368406c..e2dee913e 100644
--- a/node_modules/core-js/library/fn/array/reduce.js
+++ b/node_modules/core-js/library/fn/array/reduce.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.reduce; \ No newline at end of file
+require('../../modules/es6.array.reduce');
+module.exports = require('../../modules/_core').Array.reduce; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/reverse.js b/node_modules/core-js/library/fn/array/reverse.js
index 4d8d235c7..607342934 100644
--- a/node_modules/core-js/library/fn/array/reverse.js
+++ b/node_modules/core-js/library/fn/array/reverse.js
@@ -1,2 +1,4 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.reverse; \ No newline at end of file
+// for a legacy code and future fixes
+module.exports = function(){
+ return Function.call.apply(Array.prototype.reverse, arguments);
+}; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/shift.js b/node_modules/core-js/library/fn/array/shift.js
index 806c87cd0..5002a6062 100644
--- a/node_modules/core-js/library/fn/array/shift.js
+++ b/node_modules/core-js/library/fn/array/shift.js
@@ -1,2 +1,4 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.shift; \ No newline at end of file
+// for a legacy code and future fixes
+module.exports = function(){
+ return Function.call.apply(Array.prototype.shift, arguments);
+}; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/slice.js b/node_modules/core-js/library/fn/array/slice.js
index 913f7ef20..4914c2a98 100644
--- a/node_modules/core-js/library/fn/array/slice.js
+++ b/node_modules/core-js/library/fn/array/slice.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.slice; \ No newline at end of file
+require('../../modules/es6.array.slice');
+module.exports = require('../../modules/_core').Array.slice; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/some.js b/node_modules/core-js/library/fn/array/some.js
index 4f7c76544..de284006e 100644
--- a/node_modules/core-js/library/fn/array/some.js
+++ b/node_modules/core-js/library/fn/array/some.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.some; \ No newline at end of file
+require('../../modules/es6.array.some');
+module.exports = require('../../modules/_core').Array.some; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/sort.js b/node_modules/core-js/library/fn/array/sort.js
index 61beed041..29b6f3ae7 100644
--- a/node_modules/core-js/library/fn/array/sort.js
+++ b/node_modules/core-js/library/fn/array/sort.js
@@ -1,2 +1,2 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.sort; \ No newline at end of file
+require('../../modules/es6.array.sort');
+module.exports = require('../../modules/_core').Array.sort; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/splice.js b/node_modules/core-js/library/fn/array/splice.js
index 5f5eab07b..9d0bdbed4 100644
--- a/node_modules/core-js/library/fn/array/splice.js
+++ b/node_modules/core-js/library/fn/array/splice.js
@@ -1,2 +1,4 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.splice; \ No newline at end of file
+// for a legacy code and future fixes
+module.exports = function(){
+ return Function.call.apply(Array.prototype.splice, arguments);
+}; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/unshift.js b/node_modules/core-js/library/fn/array/unshift.js
index a11de5287..63fe2dd86 100644
--- a/node_modules/core-js/library/fn/array/unshift.js
+++ b/node_modules/core-js/library/fn/array/unshift.js
@@ -1,2 +1,4 @@
-require('../../modules/js.array.statics');
-module.exports = require('../../modules/$.core').Array.unshift; \ No newline at end of file
+// for a legacy code and future fixes
+module.exports = function(){
+ return Function.call.apply(Array.prototype.unshift, arguments);
+}; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/array/values.js b/node_modules/core-js/library/fn/array/values.js
index 662f3b5c5..ca93b78ab 100644
--- a/node_modules/core-js/library/fn/array/values.js
+++ b/node_modules/core-js/library/fn/array/values.js
@@ -1,2 +1,2 @@
require('../../modules/es6.array.iterator');
-module.exports = require('../../modules/$.core').Array.values; \ No newline at end of file
+module.exports = require('../../modules/_core').Array.values; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/clear-immediate.js b/node_modules/core-js/library/fn/clear-immediate.js
index 06a975024..86916a06c 100644
--- a/node_modules/core-js/library/fn/clear-immediate.js
+++ b/node_modules/core-js/library/fn/clear-immediate.js
@@ -1,2 +1,2 @@
require('../modules/web.immediate');
-module.exports = require('../modules/$.core').clearImmediate; \ No newline at end of file
+module.exports = require('../modules/_core').clearImmediate; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/delay.js b/node_modules/core-js/library/fn/delay.js
index 1ff9a56d5..188573884 100644
--- a/node_modules/core-js/library/fn/delay.js
+++ b/node_modules/core-js/library/fn/delay.js
@@ -1,2 +1,2 @@
require('../modules/core.delay');
-module.exports = require('../modules/$.core').delay;
+module.exports = require('../modules/_core').delay;
diff --git a/node_modules/core-js/library/fn/dict.js b/node_modules/core-js/library/fn/dict.js
index ed848e2c2..da84a8d88 100644
--- a/node_modules/core-js/library/fn/dict.js
+++ b/node_modules/core-js/library/fn/dict.js
@@ -1,2 +1,2 @@
require('../modules/core.dict');
-module.exports = require('../modules/$.core').Dict; \ No newline at end of file
+module.exports = require('../modules/_core').Dict; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/function/has-instance.js b/node_modules/core-js/library/fn/function/has-instance.js
index 78c8221c3..78397e5f7 100644
--- a/node_modules/core-js/library/fn/function/has-instance.js
+++ b/node_modules/core-js/library/fn/function/has-instance.js
@@ -1,2 +1,2 @@
require('../../modules/es6.function.has-instance');
-module.exports = Function[require('../../modules/$.wks')('hasInstance')]; \ No newline at end of file
+module.exports = Function[require('../../modules/_wks')('hasInstance')]; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/function/index.js b/node_modules/core-js/library/fn/function/index.js
index 7422fca3c..206324e89 100644
--- a/node_modules/core-js/library/fn/function/index.js
+++ b/node_modules/core-js/library/fn/function/index.js
@@ -1,4 +1,5 @@
+require('../../modules/es6.function.bind');
require('../../modules/es6.function.name');
require('../../modules/es6.function.has-instance');
require('../../modules/core.function.part');
-module.exports = require('../../modules/$.core').Function;
+module.exports = require('../../modules/_core').Function;
diff --git a/node_modules/core-js/library/fn/function/part.js b/node_modules/core-js/library/fn/function/part.js
index 26271d6a0..926e2cc2a 100644
--- a/node_modules/core-js/library/fn/function/part.js
+++ b/node_modules/core-js/library/fn/function/part.js
@@ -1,2 +1,2 @@
require('../../modules/core.function.part');
-module.exports = require('../../modules/$.core').Function.part; \ No newline at end of file
+module.exports = require('../../modules/_core').Function.part; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/html-collection/index.js b/node_modules/core-js/library/fn/html-collection/index.js
deleted file mode 100644
index 510156b83..000000000
--- a/node_modules/core-js/library/fn/html-collection/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/web.dom.iterable');
-module.exports = require('../../modules/$.core'); \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/html-collection/iterator.js b/node_modules/core-js/library/fn/html-collection/iterator.js
deleted file mode 100644
index c01119b1b..000000000
--- a/node_modules/core-js/library/fn/html-collection/iterator.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/web.dom.iterable');
-module.exports = require('../../modules/$.core').Array.values; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/json/stringify.js b/node_modules/core-js/library/fn/json/stringify.js
index fef242507..f0cac86af 100644
--- a/node_modules/core-js/library/fn/json/stringify.js
+++ b/node_modules/core-js/library/fn/json/stringify.js
@@ -1,4 +1,5 @@
-var core = require('../../modules/$.core');
+var core = require('../../modules/_core')
+ , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
- return (core.JSON && core.JSON.stringify || JSON.stringify).apply(JSON, arguments);
+ return $JSON.stringify.apply($JSON, arguments);
}; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/log.js b/node_modules/core-js/library/fn/log.js
deleted file mode 100644
index 899d6ed01..000000000
--- a/node_modules/core-js/library/fn/log.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/core.log');
-module.exports = require('../modules/$.core').log;
diff --git a/node_modules/core-js/library/fn/map.js b/node_modules/core-js/library/fn/map.js
index 70998924e..16784c600 100644
--- a/node_modules/core-js/library/fn/map.js
+++ b/node_modules/core-js/library/fn/map.js
@@ -3,4 +3,4 @@ require('../modules/es6.string.iterator');
require('../modules/web.dom.iterable');
require('../modules/es6.map');
require('../modules/es7.map.to-json');
-module.exports = require('../modules/$.core').Map; \ No newline at end of file
+module.exports = require('../modules/_core').Map; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/math/acosh.js b/node_modules/core-js/library/fn/math/acosh.js
index d29a88cca..9c904c2d6 100644
--- a/node_modules/core-js/library/fn/math/acosh.js
+++ b/node_modules/core-js/library/fn/math/acosh.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.acosh');
-module.exports = require('../../modules/$.core').Math.acosh; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.acosh; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/math/asinh.js b/node_modules/core-js/library/fn/math/asinh.js
index 7eac2e83e..9e209c9d1 100644
--- a/node_modules/core-js/library/fn/math/asinh.js
+++ b/node_modules/core-js/library/fn/math/asinh.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.asinh');
-module.exports = require('../../modules/$.core').Math.asinh; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.asinh; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/math/atanh.js b/node_modules/core-js/library/fn/math/atanh.js
index a66a47d88..b116296d8 100644
--- a/node_modules/core-js/library/fn/math/atanh.js
+++ b/node_modules/core-js/library/fn/math/atanh.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.atanh');
-module.exports = require('../../modules/$.core').Math.atanh; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.atanh; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/math/cbrt.js b/node_modules/core-js/library/fn/math/cbrt.js
index 199f5cd86..6ffec33a2 100644
--- a/node_modules/core-js/library/fn/math/cbrt.js
+++ b/node_modules/core-js/library/fn/math/cbrt.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.cbrt');
-module.exports = require('../../modules/$.core').Math.cbrt; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.cbrt; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/math/clz32.js b/node_modules/core-js/library/fn/math/clz32.js
index 2025c6e44..beeaae165 100644
--- a/node_modules/core-js/library/fn/math/clz32.js
+++ b/node_modules/core-js/library/fn/math/clz32.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.clz32');
-module.exports = require('../../modules/$.core').Math.clz32; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.clz32; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/math/cosh.js b/node_modules/core-js/library/fn/math/cosh.js
index 17a7ddc0f..bf92dc13d 100644
--- a/node_modules/core-js/library/fn/math/cosh.js
+++ b/node_modules/core-js/library/fn/math/cosh.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.cosh');
-module.exports = require('../../modules/$.core').Math.cosh; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.cosh; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/math/expm1.js b/node_modules/core-js/library/fn/math/expm1.js
index 732facb32..0b30ebb1b 100644
--- a/node_modules/core-js/library/fn/math/expm1.js
+++ b/node_modules/core-js/library/fn/math/expm1.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.expm1');
-module.exports = require('../../modules/$.core').Math.expm1; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.expm1; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/math/fround.js b/node_modules/core-js/library/fn/math/fround.js
index 37f87069c..c75a22937 100644
--- a/node_modules/core-js/library/fn/math/fround.js
+++ b/node_modules/core-js/library/fn/math/fround.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.fround');
-module.exports = require('../../modules/$.core').Math.fround; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.fround; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/math/hypot.js b/node_modules/core-js/library/fn/math/hypot.js
index 9676c0730..2126285c2 100644
--- a/node_modules/core-js/library/fn/math/hypot.js
+++ b/node_modules/core-js/library/fn/math/hypot.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.hypot');
-module.exports = require('../../modules/$.core').Math.hypot; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.hypot; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/math/imul.js b/node_modules/core-js/library/fn/math/imul.js
index 2ea2913e9..1f5ce1610 100644
--- a/node_modules/core-js/library/fn/math/imul.js
+++ b/node_modules/core-js/library/fn/math/imul.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.imul');
-module.exports = require('../../modules/$.core').Math.imul; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.imul; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/math/index.js b/node_modules/core-js/library/fn/math/index.js
index 14628ae59..8a2664b18 100644
--- a/node_modules/core-js/library/fn/math/index.js
+++ b/node_modules/core-js/library/fn/math/index.js
@@ -15,4 +15,8 @@ require('../../modules/es6.math.sign');
require('../../modules/es6.math.sinh');
require('../../modules/es6.math.tanh');
require('../../modules/es6.math.trunc');
-module.exports = require('../../modules/$.core').Math; \ No newline at end of file
+require('../../modules/es7.math.iaddh');
+require('../../modules/es7.math.isubh');
+require('../../modules/es7.math.imulh');
+require('../../modules/es7.math.umulh');
+module.exports = require('../../modules/_core').Math; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/math/log10.js b/node_modules/core-js/library/fn/math/log10.js
index ecf7b9b2b..1246e0ae0 100644
--- a/node_modules/core-js/library/fn/math/log10.js
+++ b/node_modules/core-js/library/fn/math/log10.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.log10');
-module.exports = require('../../modules/$.core').Math.log10; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.log10; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/math/log1p.js b/node_modules/core-js/library/fn/math/log1p.js
index 6db73292e..047b84c05 100644
--- a/node_modules/core-js/library/fn/math/log1p.js
+++ b/node_modules/core-js/library/fn/math/log1p.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.log1p');
-module.exports = require('../../modules/$.core').Math.log1p; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.log1p; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/math/log2.js b/node_modules/core-js/library/fn/math/log2.js
index 63c74d7b8..ce3e99c1e 100644
--- a/node_modules/core-js/library/fn/math/log2.js
+++ b/node_modules/core-js/library/fn/math/log2.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.log2');
-module.exports = require('../../modules/$.core').Math.log2; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.log2; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/math/sign.js b/node_modules/core-js/library/fn/math/sign.js
index 47ab74f20..0963ecaf9 100644
--- a/node_modules/core-js/library/fn/math/sign.js
+++ b/node_modules/core-js/library/fn/math/sign.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.sign');
-module.exports = require('../../modules/$.core').Math.sign; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.sign; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/math/sinh.js b/node_modules/core-js/library/fn/math/sinh.js
index 72c6e857a..c35cb7394 100644
--- a/node_modules/core-js/library/fn/math/sinh.js
+++ b/node_modules/core-js/library/fn/math/sinh.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.sinh');
-module.exports = require('../../modules/$.core').Math.sinh; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.sinh; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/math/tanh.js b/node_modules/core-js/library/fn/math/tanh.js
index 30ddbcc83..3d1966db3 100644
--- a/node_modules/core-js/library/fn/math/tanh.js
+++ b/node_modules/core-js/library/fn/math/tanh.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.tanh');
-module.exports = require('../../modules/$.core').Math.tanh; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.tanh; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/math/trunc.js b/node_modules/core-js/library/fn/math/trunc.js
index b084efa7e..135b7dcb8 100644
--- a/node_modules/core-js/library/fn/math/trunc.js
+++ b/node_modules/core-js/library/fn/math/trunc.js
@@ -1,2 +1,2 @@
require('../../modules/es6.math.trunc');
-module.exports = require('../../modules/$.core').Math.trunc; \ No newline at end of file
+module.exports = require('../../modules/_core').Math.trunc; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/node-list/index.js b/node_modules/core-js/library/fn/node-list/index.js
deleted file mode 100644
index 510156b83..000000000
--- a/node_modules/core-js/library/fn/node-list/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/web.dom.iterable');
-module.exports = require('../../modules/$.core'); \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/node-list/iterator.js b/node_modules/core-js/library/fn/node-list/iterator.js
deleted file mode 100644
index c01119b1b..000000000
--- a/node_modules/core-js/library/fn/node-list/iterator.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/web.dom.iterable');
-module.exports = require('../../modules/$.core').Array.values; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/number/index.js b/node_modules/core-js/library/fn/number/index.js
index d048d5901..92890003d 100644
--- a/node_modules/core-js/library/fn/number/index.js
+++ b/node_modules/core-js/library/fn/number/index.js
@@ -8,5 +8,7 @@ require('../../modules/es6.number.max-safe-integer');
require('../../modules/es6.number.min-safe-integer');
require('../../modules/es6.number.parse-float');
require('../../modules/es6.number.parse-int');
+require('../../modules/es6.number.to-fixed');
+require('../../modules/es6.number.to-precision');
require('../../modules/core.number.iterator');
-module.exports = require('../../modules/$.core').Number; \ No newline at end of file
+module.exports = require('../../modules/_core').Number; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/number/is-finite.js b/node_modules/core-js/library/fn/number/is-finite.js
index ff666503b..4ec3706b0 100644
--- a/node_modules/core-js/library/fn/number/is-finite.js
+++ b/node_modules/core-js/library/fn/number/is-finite.js
@@ -1,2 +1,2 @@
require('../../modules/es6.number.is-finite');
-module.exports = require('../../modules/$.core').Number.isFinite; \ No newline at end of file
+module.exports = require('../../modules/_core').Number.isFinite; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/number/is-integer.js b/node_modules/core-js/library/fn/number/is-integer.js
index 682e1e348..a3013bff3 100644
--- a/node_modules/core-js/library/fn/number/is-integer.js
+++ b/node_modules/core-js/library/fn/number/is-integer.js
@@ -1,2 +1,2 @@
require('../../modules/es6.number.is-integer');
-module.exports = require('../../modules/$.core').Number.isInteger; \ No newline at end of file
+module.exports = require('../../modules/_core').Number.isInteger; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/number/is-nan.js b/node_modules/core-js/library/fn/number/is-nan.js
index 6ad6923bd..f23b0266a 100644
--- a/node_modules/core-js/library/fn/number/is-nan.js
+++ b/node_modules/core-js/library/fn/number/is-nan.js
@@ -1,2 +1,2 @@
require('../../modules/es6.number.is-nan');
-module.exports = require('../../modules/$.core').Number.isNaN; \ No newline at end of file
+module.exports = require('../../modules/_core').Number.isNaN; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/number/is-safe-integer.js b/node_modules/core-js/library/fn/number/is-safe-integer.js
index a47fd42e9..f68732f52 100644
--- a/node_modules/core-js/library/fn/number/is-safe-integer.js
+++ b/node_modules/core-js/library/fn/number/is-safe-integer.js
@@ -1,2 +1,2 @@
require('../../modules/es6.number.is-safe-integer');
-module.exports = require('../../modules/$.core').Number.isSafeInteger; \ No newline at end of file
+module.exports = require('../../modules/_core').Number.isSafeInteger; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/number/iterator.js b/node_modules/core-js/library/fn/number/iterator.js
index 57cb79065..26feaa1f0 100644
--- a/node_modules/core-js/library/fn/number/iterator.js
+++ b/node_modules/core-js/library/fn/number/iterator.js
@@ -1,5 +1,5 @@
require('../../modules/core.number.iterator');
-var get = require('../../modules/$.iterators').Number;
+var get = require('../../modules/_iterators').Number;
module.exports = function(it){
return get.call(it);
}; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/assign.js b/node_modules/core-js/library/fn/object/assign.js
index a57c54aa5..97df6bf45 100644
--- a/node_modules/core-js/library/fn/object/assign.js
+++ b/node_modules/core-js/library/fn/object/assign.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.assign');
-module.exports = require('../../modules/$.core').Object.assign; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.assign; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/classof.js b/node_modules/core-js/library/fn/object/classof.js
index 3afc82686..993d04808 100644
--- a/node_modules/core-js/library/fn/object/classof.js
+++ b/node_modules/core-js/library/fn/object/classof.js
@@ -1,2 +1,2 @@
require('../../modules/core.object.classof');
-module.exports = require('../../modules/$.core').Object.classof; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.classof; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/create.js b/node_modules/core-js/library/fn/object/create.js
index 8f5f3263b..a05ca2fb0 100644
--- a/node_modules/core-js/library/fn/object/create.js
+++ b/node_modules/core-js/library/fn/object/create.js
@@ -1,4 +1,5 @@
-var $ = require('../../modules/$');
+require('../../modules/es6.object.create');
+var $Object = require('../../modules/_core').Object;
module.exports = function create(P, D){
- return $.create(P, D);
+ return $Object.create(P, D);
}; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/define-properties.js b/node_modules/core-js/library/fn/object/define-properties.js
index a857aab81..04160fb3a 100644
--- a/node_modules/core-js/library/fn/object/define-properties.js
+++ b/node_modules/core-js/library/fn/object/define-properties.js
@@ -1,4 +1,5 @@
-var $ = require('../../modules/$');
+require('../../modules/es6.object.define-properties');
+var $Object = require('../../modules/_core').Object;
module.exports = function defineProperties(T, D){
- return $.setDescs(T, D);
+ return $Object.defineProperties(T, D);
}; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/define-property.js b/node_modules/core-js/library/fn/object/define-property.js
index 7384315d5..078c56cbf 100644
--- a/node_modules/core-js/library/fn/object/define-property.js
+++ b/node_modules/core-js/library/fn/object/define-property.js
@@ -1,4 +1,5 @@
-var $ = require('../../modules/$');
+require('../../modules/es6.object.define-property');
+var $Object = require('../../modules/_core').Object;
module.exports = function defineProperty(it, key, desc){
- return $.setDesc(it, key, desc);
+ return $Object.defineProperty(it, key, desc);
}; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/define.js b/node_modules/core-js/library/fn/object/define.js
index 690773e2e..6ec19e904 100644
--- a/node_modules/core-js/library/fn/object/define.js
+++ b/node_modules/core-js/library/fn/object/define.js
@@ -1,2 +1,2 @@
require('../../modules/core.object.define');
-module.exports = require('../../modules/$.core').Object.define; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.define; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/entries.js b/node_modules/core-js/library/fn/object/entries.js
index a32fe3911..fca1000e8 100644
--- a/node_modules/core-js/library/fn/object/entries.js
+++ b/node_modules/core-js/library/fn/object/entries.js
@@ -1,2 +1,2 @@
require('../../modules/es7.object.entries');
-module.exports = require('../../modules/$.core').Object.entries; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.entries; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/freeze.js b/node_modules/core-js/library/fn/object/freeze.js
index 566eec51d..04eac5302 100644
--- a/node_modules/core-js/library/fn/object/freeze.js
+++ b/node_modules/core-js/library/fn/object/freeze.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.freeze');
-module.exports = require('../../modules/$.core').Object.freeze; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.freeze; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/get-own-property-descriptor.js b/node_modules/core-js/library/fn/object/get-own-property-descriptor.js
index 2e1845cfc..7d3f03b8b 100644
--- a/node_modules/core-js/library/fn/object/get-own-property-descriptor.js
+++ b/node_modules/core-js/library/fn/object/get-own-property-descriptor.js
@@ -1,5 +1,5 @@
-var $ = require('../../modules/$');
require('../../modules/es6.object.get-own-property-descriptor');
+var $Object = require('../../modules/_core').Object;
module.exports = function getOwnPropertyDescriptor(it, key){
- return $.getDesc(it, key);
+ return $Object.getOwnPropertyDescriptor(it, key);
}; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/get-own-property-descriptors.js b/node_modules/core-js/library/fn/object/get-own-property-descriptors.js
index f26341d57..dfeb547ce 100644
--- a/node_modules/core-js/library/fn/object/get-own-property-descriptors.js
+++ b/node_modules/core-js/library/fn/object/get-own-property-descriptors.js
@@ -1,2 +1,2 @@
require('../../modules/es7.object.get-own-property-descriptors');
-module.exports = require('../../modules/$.core').Object.getOwnPropertyDescriptors; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.getOwnPropertyDescriptors; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/get-own-property-names.js b/node_modules/core-js/library/fn/object/get-own-property-names.js
index 496eb1970..c91ce430f 100644
--- a/node_modules/core-js/library/fn/object/get-own-property-names.js
+++ b/node_modules/core-js/library/fn/object/get-own-property-names.js
@@ -1,5 +1,5 @@
-var $ = require('../../modules/$');
require('../../modules/es6.object.get-own-property-names');
+var $Object = require('../../modules/_core').Object;
module.exports = function getOwnPropertyNames(it){
- return $.getNames(it);
+ return $Object.getOwnPropertyNames(it);
}; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/get-own-property-symbols.js b/node_modules/core-js/library/fn/object/get-own-property-symbols.js
index f78921b51..c3f528807 100644
--- a/node_modules/core-js/library/fn/object/get-own-property-symbols.js
+++ b/node_modules/core-js/library/fn/object/get-own-property-symbols.js
@@ -1,2 +1,2 @@
require('../../modules/es6.symbol');
-module.exports = require('../../modules/$.core').Object.getOwnPropertySymbols; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.getOwnPropertySymbols; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/get-prototype-of.js b/node_modules/core-js/library/fn/object/get-prototype-of.js
index 9a495afe7..bda934458 100644
--- a/node_modules/core-js/library/fn/object/get-prototype-of.js
+++ b/node_modules/core-js/library/fn/object/get-prototype-of.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.get-prototype-of');
-module.exports = require('../../modules/$.core').Object.getPrototypeOf; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.getPrototypeOf; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/index.js b/node_modules/core-js/library/fn/object/index.js
index 0fb75bc5e..4bd9825b4 100644
--- a/node_modules/core-js/library/fn/object/index.js
+++ b/node_modules/core-js/library/fn/object/index.js
@@ -1,23 +1,30 @@
require('../../modules/es6.symbol');
-require('../../modules/es6.object.assign');
-require('../../modules/es6.object.is');
-require('../../modules/es6.object.set-prototype-of');
-require('../../modules/es6.object.to-string');
+require('../../modules/es6.object.create');
+require('../../modules/es6.object.define-property');
+require('../../modules/es6.object.define-properties');
+require('../../modules/es6.object.get-own-property-descriptor');
+require('../../modules/es6.object.get-prototype-of');
+require('../../modules/es6.object.keys');
+require('../../modules/es6.object.get-own-property-names');
require('../../modules/es6.object.freeze');
require('../../modules/es6.object.seal');
require('../../modules/es6.object.prevent-extensions');
require('../../modules/es6.object.is-frozen');
require('../../modules/es6.object.is-sealed');
require('../../modules/es6.object.is-extensible');
-require('../../modules/es6.object.get-own-property-descriptor');
-require('../../modules/es6.object.get-prototype-of');
-require('../../modules/es6.object.keys');
-require('../../modules/es6.object.get-own-property-names');
+require('../../modules/es6.object.assign');
+require('../../modules/es6.object.is');
+require('../../modules/es6.object.set-prototype-of');
+require('../../modules/es6.object.to-string');
require('../../modules/es7.object.get-own-property-descriptors');
require('../../modules/es7.object.values');
require('../../modules/es7.object.entries');
+require('../../modules/es7.object.define-getter');
+require('../../modules/es7.object.define-setter');
+require('../../modules/es7.object.lookup-getter');
+require('../../modules/es7.object.lookup-setter');
require('../../modules/core.object.is-object');
require('../../modules/core.object.classof');
require('../../modules/core.object.define');
require('../../modules/core.object.make');
-module.exports = require('../../modules/$.core').Object; \ No newline at end of file
+module.exports = require('../../modules/_core').Object; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/is-extensible.js b/node_modules/core-js/library/fn/object/is-extensible.js
index 8bb0cf9f7..43fb0e78a 100644
--- a/node_modules/core-js/library/fn/object/is-extensible.js
+++ b/node_modules/core-js/library/fn/object/is-extensible.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.is-extensible');
-module.exports = require('../../modules/$.core').Object.isExtensible; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.isExtensible; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/is-frozen.js b/node_modules/core-js/library/fn/object/is-frozen.js
index 7bf1f1270..cbff22421 100644
--- a/node_modules/core-js/library/fn/object/is-frozen.js
+++ b/node_modules/core-js/library/fn/object/is-frozen.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.is-frozen');
-module.exports = require('../../modules/$.core').Object.isFrozen; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.isFrozen; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/is-object.js b/node_modules/core-js/library/fn/object/is-object.js
index 935cb6ece..38feeff5c 100644
--- a/node_modules/core-js/library/fn/object/is-object.js
+++ b/node_modules/core-js/library/fn/object/is-object.js
@@ -1,2 +1,2 @@
require('../../modules/core.object.is-object');
-module.exports = require('../../modules/$.core').Object.isObject; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.isObject; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/is-sealed.js b/node_modules/core-js/library/fn/object/is-sealed.js
index 05416f377..169a8ae73 100644
--- a/node_modules/core-js/library/fn/object/is-sealed.js
+++ b/node_modules/core-js/library/fn/object/is-sealed.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.is-sealed');
-module.exports = require('../../modules/$.core').Object.isSealed; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.isSealed; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/is.js b/node_modules/core-js/library/fn/object/is.js
index d07c3ae18..6ac9f19e1 100644
--- a/node_modules/core-js/library/fn/object/is.js
+++ b/node_modules/core-js/library/fn/object/is.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.is');
-module.exports = require('../../modules/$.core').Object.is; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.is; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/keys.js b/node_modules/core-js/library/fn/object/keys.js
index ebfb8c655..8eeb78eb8 100644
--- a/node_modules/core-js/library/fn/object/keys.js
+++ b/node_modules/core-js/library/fn/object/keys.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.keys');
-module.exports = require('../../modules/$.core').Object.keys; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.keys; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/make.js b/node_modules/core-js/library/fn/object/make.js
index fbfb2f858..f4d19d128 100644
--- a/node_modules/core-js/library/fn/object/make.js
+++ b/node_modules/core-js/library/fn/object/make.js
@@ -1,2 +1,2 @@
require('../../modules/core.object.make');
-module.exports = require('../../modules/$.core').Object.make; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.make; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/prevent-extensions.js b/node_modules/core-js/library/fn/object/prevent-extensions.js
index 01d82fcbd..e43be05b1 100644
--- a/node_modules/core-js/library/fn/object/prevent-extensions.js
+++ b/node_modules/core-js/library/fn/object/prevent-extensions.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.prevent-extensions');
-module.exports = require('../../modules/$.core').Object.preventExtensions; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.preventExtensions; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/seal.js b/node_modules/core-js/library/fn/object/seal.js
index fdf84b821..8a56cd7f3 100644
--- a/node_modules/core-js/library/fn/object/seal.js
+++ b/node_modules/core-js/library/fn/object/seal.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.seal');
-module.exports = require('../../modules/$.core').Object.seal; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.seal; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/set-prototype-of.js b/node_modules/core-js/library/fn/object/set-prototype-of.js
index cd94d875b..c25170dbc 100644
--- a/node_modules/core-js/library/fn/object/set-prototype-of.js
+++ b/node_modules/core-js/library/fn/object/set-prototype-of.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.set-prototype-of');
-module.exports = require('../../modules/$.core').Object.setPrototypeOf; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.setPrototypeOf; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/object/values.js b/node_modules/core-js/library/fn/object/values.js
index b96071ff3..b50336cf1 100644
--- a/node_modules/core-js/library/fn/object/values.js
+++ b/node_modules/core-js/library/fn/object/values.js
@@ -1,2 +1,2 @@
require('../../modules/es7.object.values');
-module.exports = require('../../modules/$.core').Object.values; \ No newline at end of file
+module.exports = require('../../modules/_core').Object.values; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/promise.js b/node_modules/core-js/library/fn/promise.js
index 0a0996139..c901c8595 100644
--- a/node_modules/core-js/library/fn/promise.js
+++ b/node_modules/core-js/library/fn/promise.js
@@ -2,4 +2,4 @@ require('../modules/es6.object.to-string');
require('../modules/es6.string.iterator');
require('../modules/web.dom.iterable');
require('../modules/es6.promise');
-module.exports = require('../modules/$.core').Promise; \ No newline at end of file
+module.exports = require('../modules/_core').Promise; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/reflect/apply.js b/node_modules/core-js/library/fn/reflect/apply.js
index 75e5ff5b2..725b8a699 100644
--- a/node_modules/core-js/library/fn/reflect/apply.js
+++ b/node_modules/core-js/library/fn/reflect/apply.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.apply');
-module.exports = require('../../modules/$.core').Reflect.apply; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.apply; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/reflect/construct.js b/node_modules/core-js/library/fn/reflect/construct.js
index adc40ea84..587725dad 100644
--- a/node_modules/core-js/library/fn/reflect/construct.js
+++ b/node_modules/core-js/library/fn/reflect/construct.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.construct');
-module.exports = require('../../modules/$.core').Reflect.construct; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.construct; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/reflect/define-property.js b/node_modules/core-js/library/fn/reflect/define-property.js
index da78d62e5..c36b4d21d 100644
--- a/node_modules/core-js/library/fn/reflect/define-property.js
+++ b/node_modules/core-js/library/fn/reflect/define-property.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.define-property');
-module.exports = require('../../modules/$.core').Reflect.defineProperty; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.defineProperty; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/reflect/delete-property.js b/node_modules/core-js/library/fn/reflect/delete-property.js
index 411225f60..10b6392f2 100644
--- a/node_modules/core-js/library/fn/reflect/delete-property.js
+++ b/node_modules/core-js/library/fn/reflect/delete-property.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.delete-property');
-module.exports = require('../../modules/$.core').Reflect.deleteProperty; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.deleteProperty; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/reflect/enumerate.js b/node_modules/core-js/library/fn/reflect/enumerate.js
index c19e0b6b5..257a21eee 100644
--- a/node_modules/core-js/library/fn/reflect/enumerate.js
+++ b/node_modules/core-js/library/fn/reflect/enumerate.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.enumerate');
-module.exports = require('../../modules/$.core').Reflect.enumerate; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.enumerate; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/reflect/get-own-property-descriptor.js b/node_modules/core-js/library/fn/reflect/get-own-property-descriptor.js
index 22e2aa666..9e2822fb5 100644
--- a/node_modules/core-js/library/fn/reflect/get-own-property-descriptor.js
+++ b/node_modules/core-js/library/fn/reflect/get-own-property-descriptor.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.get-own-property-descriptor');
-module.exports = require('../../modules/$.core').Reflect.getOwnPropertyDescriptor; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.getOwnPropertyDescriptor; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/reflect/get-prototype-of.js b/node_modules/core-js/library/fn/reflect/get-prototype-of.js
index 2ff331a45..485035960 100644
--- a/node_modules/core-js/library/fn/reflect/get-prototype-of.js
+++ b/node_modules/core-js/library/fn/reflect/get-prototype-of.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.get-prototype-of');
-module.exports = require('../../modules/$.core').Reflect.getPrototypeOf; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.getPrototypeOf; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/reflect/get.js b/node_modules/core-js/library/fn/reflect/get.js
index 266508c68..9ca903e82 100644
--- a/node_modules/core-js/library/fn/reflect/get.js
+++ b/node_modules/core-js/library/fn/reflect/get.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.get');
-module.exports = require('../../modules/$.core').Reflect.get; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.get; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/reflect/has.js b/node_modules/core-js/library/fn/reflect/has.js
index db14fa11a..8e34933c8 100644
--- a/node_modules/core-js/library/fn/reflect/has.js
+++ b/node_modules/core-js/library/fn/reflect/has.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.has');
-module.exports = require('../../modules/$.core').Reflect.has; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.has; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/reflect/index.js b/node_modules/core-js/library/fn/reflect/index.js
index 5b2166531..a725cef2f 100644
--- a/node_modules/core-js/library/fn/reflect/index.js
+++ b/node_modules/core-js/library/fn/reflect/index.js
@@ -12,4 +12,13 @@ require('../../modules/es6.reflect.own-keys');
require('../../modules/es6.reflect.prevent-extensions');
require('../../modules/es6.reflect.set');
require('../../modules/es6.reflect.set-prototype-of');
-module.exports = require('../../modules/$.core').Reflect; \ No newline at end of file
+require('../../modules/es7.reflect.define-metadata');
+require('../../modules/es7.reflect.delete-metadata');
+require('../../modules/es7.reflect.get-metadata');
+require('../../modules/es7.reflect.get-metadata-keys');
+require('../../modules/es7.reflect.get-own-metadata');
+require('../../modules/es7.reflect.get-own-metadata-keys');
+require('../../modules/es7.reflect.has-metadata');
+require('../../modules/es7.reflect.has-own-metadata');
+require('../../modules/es7.reflect.metadata');
+module.exports = require('../../modules/_core').Reflect; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/reflect/is-extensible.js b/node_modules/core-js/library/fn/reflect/is-extensible.js
index f0329e28b..de41d683a 100644
--- a/node_modules/core-js/library/fn/reflect/is-extensible.js
+++ b/node_modules/core-js/library/fn/reflect/is-extensible.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.is-extensible');
-module.exports = require('../../modules/$.core').Reflect.isExtensible; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.isExtensible; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/reflect/own-keys.js b/node_modules/core-js/library/fn/reflect/own-keys.js
index 6da1136dd..bfcebc740 100644
--- a/node_modules/core-js/library/fn/reflect/own-keys.js
+++ b/node_modules/core-js/library/fn/reflect/own-keys.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.own-keys');
-module.exports = require('../../modules/$.core').Reflect.ownKeys; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.ownKeys; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/reflect/prevent-extensions.js b/node_modules/core-js/library/fn/reflect/prevent-extensions.js
index 48fb5d5a9..b346da3b0 100644
--- a/node_modules/core-js/library/fn/reflect/prevent-extensions.js
+++ b/node_modules/core-js/library/fn/reflect/prevent-extensions.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.prevent-extensions');
-module.exports = require('../../modules/$.core').Reflect.preventExtensions; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.preventExtensions; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/reflect/set-prototype-of.js b/node_modules/core-js/library/fn/reflect/set-prototype-of.js
index 09cddebc8..16b74359c 100644
--- a/node_modules/core-js/library/fn/reflect/set-prototype-of.js
+++ b/node_modules/core-js/library/fn/reflect/set-prototype-of.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.set-prototype-of');
-module.exports = require('../../modules/$.core').Reflect.setPrototypeOf; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.setPrototypeOf; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/reflect/set.js b/node_modules/core-js/library/fn/reflect/set.js
index d1afec9c1..834929ee3 100644
--- a/node_modules/core-js/library/fn/reflect/set.js
+++ b/node_modules/core-js/library/fn/reflect/set.js
@@ -1,2 +1,2 @@
require('../../modules/es6.reflect.set');
-module.exports = require('../../modules/$.core').Reflect.set; \ No newline at end of file
+module.exports = require('../../modules/_core').Reflect.set; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/regexp/escape.js b/node_modules/core-js/library/fn/regexp/escape.js
index 0c8d06b4c..d657a7d91 100644
--- a/node_modules/core-js/library/fn/regexp/escape.js
+++ b/node_modules/core-js/library/fn/regexp/escape.js
@@ -1,2 +1,2 @@
-require('../../modules/es7.regexp.escape');
-module.exports = require('../../modules/$.core').RegExp.escape; \ No newline at end of file
+require('../../modules/core.regexp.escape');
+module.exports = require('../../modules/_core').RegExp.escape; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/regexp/index.js b/node_modules/core-js/library/fn/regexp/index.js
index 7d905d67d..61ced0b81 100644
--- a/node_modules/core-js/library/fn/regexp/index.js
+++ b/node_modules/core-js/library/fn/regexp/index.js
@@ -1,8 +1,9 @@
require('../../modules/es6.regexp.constructor');
+require('../../modules/es6.regexp.to-string');
require('../../modules/es6.regexp.flags');
require('../../modules/es6.regexp.match');
require('../../modules/es6.regexp.replace');
require('../../modules/es6.regexp.search');
require('../../modules/es6.regexp.split');
-require('../../modules/es7.regexp.escape');
-module.exports = require('../../modules/$.core').RegExp; \ No newline at end of file
+require('../../modules/core.regexp.escape');
+module.exports = require('../../modules/_core').RegExp; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/set-immediate.js b/node_modules/core-js/library/fn/set-immediate.js
index 2dd87df21..250831369 100644
--- a/node_modules/core-js/library/fn/set-immediate.js
+++ b/node_modules/core-js/library/fn/set-immediate.js
@@ -1,2 +1,2 @@
require('../modules/web.immediate');
-module.exports = require('../modules/$.core').setImmediate; \ No newline at end of file
+module.exports = require('../modules/_core').setImmediate; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/set-interval.js b/node_modules/core-js/library/fn/set-interval.js
index 4c7dd8e97..484447ffa 100644
--- a/node_modules/core-js/library/fn/set-interval.js
+++ b/node_modules/core-js/library/fn/set-interval.js
@@ -1,2 +1,2 @@
require('../modules/web.timers');
-module.exports = require('../modules/$.core').setInterval; \ No newline at end of file
+module.exports = require('../modules/_core').setInterval; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/set-timeout.js b/node_modules/core-js/library/fn/set-timeout.js
index 4e7861948..8ebbb2e4f 100644
--- a/node_modules/core-js/library/fn/set-timeout.js
+++ b/node_modules/core-js/library/fn/set-timeout.js
@@ -1,2 +1,2 @@
require('../modules/web.timers');
-module.exports = require('../modules/$.core').setTimeout; \ No newline at end of file
+module.exports = require('../modules/_core').setTimeout; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/set.js b/node_modules/core-js/library/fn/set.js
index 34615f1d2..a8b496525 100644
--- a/node_modules/core-js/library/fn/set.js
+++ b/node_modules/core-js/library/fn/set.js
@@ -3,4 +3,4 @@ require('../modules/es6.string.iterator');
require('../modules/web.dom.iterable');
require('../modules/es6.set');
require('../modules/es7.set.to-json');
-module.exports = require('../modules/$.core').Set; \ No newline at end of file
+module.exports = require('../modules/_core').Set; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/string/at.js b/node_modules/core-js/library/fn/string/at.js
index d59d2aff2..ab6aec153 100644
--- a/node_modules/core-js/library/fn/string/at.js
+++ b/node_modules/core-js/library/fn/string/at.js
@@ -1,2 +1,2 @@
require('../../modules/es7.string.at');
-module.exports = require('../../modules/$.core').String.at; \ No newline at end of file
+module.exports = require('../../modules/_core').String.at; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/string/code-point-at.js b/node_modules/core-js/library/fn/string/code-point-at.js
index 74e933aaa..be141e82d 100644
--- a/node_modules/core-js/library/fn/string/code-point-at.js
+++ b/node_modules/core-js/library/fn/string/code-point-at.js
@@ -1,2 +1,2 @@
require('../../modules/es6.string.code-point-at');
-module.exports = require('../../modules/$.core').String.codePointAt; \ No newline at end of file
+module.exports = require('../../modules/_core').String.codePointAt; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/string/ends-with.js b/node_modules/core-js/library/fn/string/ends-with.js
index 7fe5cb744..5e427753e 100644
--- a/node_modules/core-js/library/fn/string/ends-with.js
+++ b/node_modules/core-js/library/fn/string/ends-with.js
@@ -1,2 +1,2 @@
require('../../modules/es6.string.ends-with');
-module.exports = require('../../modules/$.core').String.endsWith; \ No newline at end of file
+module.exports = require('../../modules/_core').String.endsWith; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/string/escape-html.js b/node_modules/core-js/library/fn/string/escape-html.js
index a6c62fafc..49176ca65 100644
--- a/node_modules/core-js/library/fn/string/escape-html.js
+++ b/node_modules/core-js/library/fn/string/escape-html.js
@@ -1,2 +1,2 @@
require('../../modules/core.string.escape-html');
-module.exports = require('../../modules/$.core').String.escapeHTML; \ No newline at end of file
+module.exports = require('../../modules/_core').String.escapeHTML; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/string/from-code-point.js b/node_modules/core-js/library/fn/string/from-code-point.js
index 0b42e7ae4..93fc53aea 100644
--- a/node_modules/core-js/library/fn/string/from-code-point.js
+++ b/node_modules/core-js/library/fn/string/from-code-point.js
@@ -1,2 +1,2 @@
require('../../modules/es6.string.from-code-point');
-module.exports = require('../../modules/$.core').String.fromCodePoint; \ No newline at end of file
+module.exports = require('../../modules/_core').String.fromCodePoint; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/string/includes.js b/node_modules/core-js/library/fn/string/includes.js
index 441bc5947..c9736404d 100644
--- a/node_modules/core-js/library/fn/string/includes.js
+++ b/node_modules/core-js/library/fn/string/includes.js
@@ -1,2 +1,2 @@
require('../../modules/es6.string.includes');
-module.exports = require('../../modules/$.core').String.includes; \ No newline at end of file
+module.exports = require('../../modules/_core').String.includes; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/string/index.js b/node_modules/core-js/library/fn/string/index.js
index 6be228caf..6485a9b25 100644
--- a/node_modules/core-js/library/fn/string/index.js
+++ b/node_modules/core-js/library/fn/string/index.js
@@ -11,11 +11,25 @@ require('../../modules/es6.regexp.match');
require('../../modules/es6.regexp.replace');
require('../../modules/es6.regexp.search');
require('../../modules/es6.regexp.split');
+require('../../modules/es6.string.anchor');
+require('../../modules/es6.string.big');
+require('../../modules/es6.string.blink');
+require('../../modules/es6.string.bold');
+require('../../modules/es6.string.fixed');
+require('../../modules/es6.string.fontcolor');
+require('../../modules/es6.string.fontsize');
+require('../../modules/es6.string.italics');
+require('../../modules/es6.string.link');
+require('../../modules/es6.string.small');
+require('../../modules/es6.string.strike');
+require('../../modules/es6.string.sub');
+require('../../modules/es6.string.sup');
require('../../modules/es7.string.at');
-require('../../modules/es7.string.pad-left');
-require('../../modules/es7.string.pad-right');
+require('../../modules/es7.string.pad-start');
+require('../../modules/es7.string.pad-end');
require('../../modules/es7.string.trim-left');
require('../../modules/es7.string.trim-right');
+require('../../modules/es7.string.match-all');
require('../../modules/core.string.escape-html');
require('../../modules/core.string.unescape-html');
-module.exports = require('../../modules/$.core').String; \ No newline at end of file
+module.exports = require('../../modules/_core').String;
diff --git a/node_modules/core-js/library/fn/string/iterator.js b/node_modules/core-js/library/fn/string/iterator.js
index 157336458..947e7558b 100644
--- a/node_modules/core-js/library/fn/string/iterator.js
+++ b/node_modules/core-js/library/fn/string/iterator.js
@@ -1,5 +1,5 @@
require('../../modules/es6.string.iterator');
-var get = require('../../modules/$.iterators').String;
+var get = require('../../modules/_iterators').String;
module.exports = function(it){
return get.call(it);
}; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/string/pad-left.js b/node_modules/core-js/library/fn/string/pad-left.js
deleted file mode 100644
index e89419c9e..000000000
--- a/node_modules/core-js/library/fn/string/pad-left.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.pad-left');
-module.exports = require('../../modules/$.core').String.padLeft; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/string/pad-right.js b/node_modules/core-js/library/fn/string/pad-right.js
deleted file mode 100644
index a87a412e2..000000000
--- a/node_modules/core-js/library/fn/string/pad-right.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.string.pad-right');
-module.exports = require('../../modules/$.core').String.padRight; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/string/raw.js b/node_modules/core-js/library/fn/string/raw.js
index 0c04fd341..713550fb2 100644
--- a/node_modules/core-js/library/fn/string/raw.js
+++ b/node_modules/core-js/library/fn/string/raw.js
@@ -1,2 +1,2 @@
require('../../modules/es6.string.raw');
-module.exports = require('../../modules/$.core').String.raw; \ No newline at end of file
+module.exports = require('../../modules/_core').String.raw; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/string/repeat.js b/node_modules/core-js/library/fn/string/repeat.js
index 361070954..fa75b13ec 100644
--- a/node_modules/core-js/library/fn/string/repeat.js
+++ b/node_modules/core-js/library/fn/string/repeat.js
@@ -1,2 +1,2 @@
require('../../modules/es6.string.repeat');
-module.exports = require('../../modules/$.core').String.repeat; \ No newline at end of file
+module.exports = require('../../modules/_core').String.repeat; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/string/starts-with.js b/node_modules/core-js/library/fn/string/starts-with.js
index edee83117..d62512a3c 100644
--- a/node_modules/core-js/library/fn/string/starts-with.js
+++ b/node_modules/core-js/library/fn/string/starts-with.js
@@ -1,2 +1,2 @@
require('../../modules/es6.string.starts-with');
-module.exports = require('../../modules/$.core').String.startsWith; \ No newline at end of file
+module.exports = require('../../modules/_core').String.startsWith; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/string/trim-left.js b/node_modules/core-js/library/fn/string/trim-left.js
index 579ad3978..04671d369 100644
--- a/node_modules/core-js/library/fn/string/trim-left.js
+++ b/node_modules/core-js/library/fn/string/trim-left.js
@@ -1,2 +1,2 @@
require('../../modules/es7.string.trim-left');
-module.exports = require('../../modules/$.core').String.trimLeft; \ No newline at end of file
+module.exports = require('../../modules/_core').String.trimLeft; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/string/trim-right.js b/node_modules/core-js/library/fn/string/trim-right.js
index 2168d9459..f3bdf6fb1 100644
--- a/node_modules/core-js/library/fn/string/trim-right.js
+++ b/node_modules/core-js/library/fn/string/trim-right.js
@@ -1,2 +1,2 @@
require('../../modules/es7.string.trim-right');
-module.exports = require('../../modules/$.core').String.trimRight; \ No newline at end of file
+module.exports = require('../../modules/_core').String.trimRight; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/string/trim.js b/node_modules/core-js/library/fn/string/trim.js
index 61c647013..c536e12eb 100644
--- a/node_modules/core-js/library/fn/string/trim.js
+++ b/node_modules/core-js/library/fn/string/trim.js
@@ -1,2 +1,2 @@
require('../../modules/es6.string.trim');
-module.exports = require('../../modules/$.core').String.trim; \ No newline at end of file
+module.exports = require('../../modules/_core').String.trim; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/string/unescape-html.js b/node_modules/core-js/library/fn/string/unescape-html.js
index de09d98b4..7c2c55c8c 100644
--- a/node_modules/core-js/library/fn/string/unescape-html.js
+++ b/node_modules/core-js/library/fn/string/unescape-html.js
@@ -1,2 +1,2 @@
require('../../modules/core.string.unescape-html');
-module.exports = require('../../modules/$.core').String.unescapeHTML; \ No newline at end of file
+module.exports = require('../../modules/_core').String.unescapeHTML; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/symbol/for.js b/node_modules/core-js/library/fn/symbol/for.js
index 1b05275d2..c9e93c139 100644
--- a/node_modules/core-js/library/fn/symbol/for.js
+++ b/node_modules/core-js/library/fn/symbol/for.js
@@ -1,2 +1,2 @@
require('../../modules/es6.symbol');
-module.exports = require('../../modules/$.core').Symbol['for']; \ No newline at end of file
+module.exports = require('../../modules/_core').Symbol['for']; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/symbol/has-instance.js b/node_modules/core-js/library/fn/symbol/has-instance.js
index b264f990f..f3ec9cf6b 100644
--- a/node_modules/core-js/library/fn/symbol/has-instance.js
+++ b/node_modules/core-js/library/fn/symbol/has-instance.js
@@ -1 +1,2 @@
-module.exports = require('../../modules/$.wks')('hasInstance'); \ No newline at end of file
+require('../../modules/es6.function.has-instance');
+module.exports = require('../../modules/_wks-ext').f('hasInstance'); \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/symbol/index.js b/node_modules/core-js/library/fn/symbol/index.js
index c8f81d180..64c0f5f47 100644
--- a/node_modules/core-js/library/fn/symbol/index.js
+++ b/node_modules/core-js/library/fn/symbol/index.js
@@ -1,3 +1,5 @@
require('../../modules/es6.symbol');
require('../../modules/es6.object.to-string');
-module.exports = require('../../modules/$.core').Symbol; \ No newline at end of file
+require('../../modules/es7.symbol.async-iterator');
+require('../../modules/es7.symbol.observable');
+module.exports = require('../../modules/_core').Symbol; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/symbol/is-concat-spreadable.js b/node_modules/core-js/library/fn/symbol/is-concat-spreadable.js
index 17d5a2669..49ed7a1d2 100644
--- a/node_modules/core-js/library/fn/symbol/is-concat-spreadable.js
+++ b/node_modules/core-js/library/fn/symbol/is-concat-spreadable.js
@@ -1 +1 @@
-module.exports = require('../../modules/$.wks')('isConcatSpreadable'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('isConcatSpreadable'); \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/symbol/iterator.js b/node_modules/core-js/library/fn/symbol/iterator.js
index 7e1b7985f..503522809 100644
--- a/node_modules/core-js/library/fn/symbol/iterator.js
+++ b/node_modules/core-js/library/fn/symbol/iterator.js
@@ -1,3 +1,3 @@
require('../../modules/es6.string.iterator');
require('../../modules/web.dom.iterable');
-module.exports = require('../../modules/$.wks')('iterator'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('iterator'); \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/symbol/key-for.js b/node_modules/core-js/library/fn/symbol/key-for.js
index e62b1abd9..d9b595ff1 100644
--- a/node_modules/core-js/library/fn/symbol/key-for.js
+++ b/node_modules/core-js/library/fn/symbol/key-for.js
@@ -1,2 +1,2 @@
require('../../modules/es6.symbol');
-module.exports = require('../../modules/$.core').Symbol.keyFor; \ No newline at end of file
+module.exports = require('../../modules/_core').Symbol.keyFor; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/symbol/match.js b/node_modules/core-js/library/fn/symbol/match.js
index d25c1196d..d27db65b6 100644
--- a/node_modules/core-js/library/fn/symbol/match.js
+++ b/node_modules/core-js/library/fn/symbol/match.js
@@ -1,2 +1,2 @@
require('../../modules/es6.regexp.match');
-module.exports = require('../../modules/$.wks')('match'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('match'); \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/symbol/replace.js b/node_modules/core-js/library/fn/symbol/replace.js
index ce3154b91..3ef60f5e9 100644
--- a/node_modules/core-js/library/fn/symbol/replace.js
+++ b/node_modules/core-js/library/fn/symbol/replace.js
@@ -1,2 +1,2 @@
require('../../modules/es6.regexp.replace');
-module.exports = require('../../modules/$.wks')('replace'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('replace'); \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/symbol/search.js b/node_modules/core-js/library/fn/symbol/search.js
index ad781d404..aee84f9e6 100644
--- a/node_modules/core-js/library/fn/symbol/search.js
+++ b/node_modules/core-js/library/fn/symbol/search.js
@@ -1,2 +1,2 @@
require('../../modules/es6.regexp.search');
-module.exports = require('../../modules/$.wks')('search'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('search'); \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/symbol/species.js b/node_modules/core-js/library/fn/symbol/species.js
index de937d752..a425eb2da 100644
--- a/node_modules/core-js/library/fn/symbol/species.js
+++ b/node_modules/core-js/library/fn/symbol/species.js
@@ -1 +1 @@
-module.exports = require('../../modules/$.wks')('species'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('species'); \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/symbol/split.js b/node_modules/core-js/library/fn/symbol/split.js
index 27c516672..8535932fb 100644
--- a/node_modules/core-js/library/fn/symbol/split.js
+++ b/node_modules/core-js/library/fn/symbol/split.js
@@ -1,2 +1,2 @@
require('../../modules/es6.regexp.split');
-module.exports = require('../../modules/$.wks')('split'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('split'); \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/symbol/to-primitive.js b/node_modules/core-js/library/fn/symbol/to-primitive.js
index 129eb8b28..20c831b85 100644
--- a/node_modules/core-js/library/fn/symbol/to-primitive.js
+++ b/node_modules/core-js/library/fn/symbol/to-primitive.js
@@ -1 +1 @@
-module.exports = require('../../modules/$.wks')('toPrimitive'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('toPrimitive'); \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/symbol/to-string-tag.js b/node_modules/core-js/library/fn/symbol/to-string-tag.js
index fc22c861a..101baf27c 100644
--- a/node_modules/core-js/library/fn/symbol/to-string-tag.js
+++ b/node_modules/core-js/library/fn/symbol/to-string-tag.js
@@ -1,2 +1,2 @@
require('../../modules/es6.object.to-string');
-module.exports = require('../../modules/$.wks')('toStringTag'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('toStringTag'); \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/symbol/unscopables.js b/node_modules/core-js/library/fn/symbol/unscopables.js
index 399397007..6c4146b23 100644
--- a/node_modules/core-js/library/fn/symbol/unscopables.js
+++ b/node_modules/core-js/library/fn/symbol/unscopables.js
@@ -1 +1 @@
-module.exports = require('../../modules/$.wks')('unscopables'); \ No newline at end of file
+module.exports = require('../../modules/_wks-ext').f('unscopables'); \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/weak-map.js b/node_modules/core-js/library/fn/weak-map.js
index ebf46e6a5..00cac1adb 100644
--- a/node_modules/core-js/library/fn/weak-map.js
+++ b/node_modules/core-js/library/fn/weak-map.js
@@ -1,4 +1,4 @@
require('../modules/es6.object.to-string');
require('../modules/web.dom.iterable');
require('../modules/es6.weak-map');
-module.exports = require('../modules/$.core').WeakMap; \ No newline at end of file
+module.exports = require('../modules/_core').WeakMap; \ No newline at end of file
diff --git a/node_modules/core-js/library/fn/weak-set.js b/node_modules/core-js/library/fn/weak-set.js
index a058c8a6a..eef1af2a8 100644
--- a/node_modules/core-js/library/fn/weak-set.js
+++ b/node_modules/core-js/library/fn/weak-set.js
@@ -1,4 +1,4 @@
require('../modules/es6.object.to-string');
require('../modules/web.dom.iterable');
require('../modules/es6.weak-set');
-module.exports = require('../modules/$.core').WeakSet; \ No newline at end of file
+module.exports = require('../modules/_core').WeakSet; \ No newline at end of file
diff --git a/node_modules/core-js/library/index.js b/node_modules/core-js/library/index.js
index 9acb1b4ad..78b9e3d4b 100644
--- a/node_modules/core-js/library/index.js
+++ b/node_modules/core-js/library/index.js
@@ -10,7 +10,7 @@ require('./modules/core.object.classof');
require('./modules/core.object.define');
require('./modules/core.object.make');
require('./modules/core.number.iterator');
+require('./modules/core.regexp.escape');
require('./modules/core.string.escape-html');
require('./modules/core.string.unescape-html');
-require('./modules/core.log');
-module.exports = require('./modules/$.core'); \ No newline at end of file
+module.exports = require('./modules/_core'); \ No newline at end of file
diff --git a/node_modules/core-js/library/js/array.js b/node_modules/core-js/library/js/array.js
deleted file mode 100644
index 99a53add4..000000000
--- a/node_modules/core-js/library/js/array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/js.array.statics');
-module.exports = require('../modules/$.core').Array; \ No newline at end of file
diff --git a/node_modules/core-js/library/js/index.js b/node_modules/core-js/library/js/index.js
deleted file mode 100644
index 47cb5ab56..000000000
--- a/node_modules/core-js/library/js/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/js.array.statics');
-module.exports = require('../modules/$.core'); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.a-function.js b/node_modules/core-js/library/modules/$.a-function.js
deleted file mode 100644
index 8c35f4514..000000000
--- a/node_modules/core-js/library/modules/$.a-function.js
+++ /dev/null
@@ -1,4 +0,0 @@
-module.exports = function(it){
- if(typeof it != 'function')throw TypeError(it + ' is not a function!');
- return it;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.add-to-unscopables.js b/node_modules/core-js/library/modules/$.add-to-unscopables.js
deleted file mode 100644
index faf87af36..000000000
--- a/node_modules/core-js/library/modules/$.add-to-unscopables.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = function(){ /* empty */ }; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.an-object.js b/node_modules/core-js/library/modules/$.an-object.js
deleted file mode 100644
index e5c808fd6..000000000
--- a/node_modules/core-js/library/modules/$.an-object.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var isObject = require('./$.is-object');
-module.exports = function(it){
- if(!isObject(it))throw TypeError(it + ' is not an object!');
- return it;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.array-copy-within.js b/node_modules/core-js/library/modules/$.array-copy-within.js
deleted file mode 100644
index 585630659..000000000
--- a/node_modules/core-js/library/modules/$.array-copy-within.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
-'use strict';
-var toObject = require('./$.to-object')
- , toIndex = require('./$.to-index')
- , toLength = require('./$.to-length');
-
-module.exports = [].copyWithin || function copyWithin(target/*= 0*/, start/*= 0, end = @length*/){
- var O = toObject(this)
- , len = toLength(O.length)
- , to = toIndex(target, len)
- , from = toIndex(start, len)
- , $$ = arguments
- , end = $$.length > 2 ? $$[2] : undefined
- , count = Math.min((end === undefined ? len : toIndex(end, len)) - from, len - to)
- , inc = 1;
- if(from < to && to < from + count){
- inc = -1;
- from += count - 1;
- to += count - 1;
- }
- while(count-- > 0){
- if(from in O)O[to] = O[from];
- else delete O[to];
- to += inc;
- from += inc;
- } return O;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.array-fill.js b/node_modules/core-js/library/modules/$.array-fill.js
deleted file mode 100644
index 6b699df72..000000000
--- a/node_modules/core-js/library/modules/$.array-fill.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
-'use strict';
-var toObject = require('./$.to-object')
- , toIndex = require('./$.to-index')
- , toLength = require('./$.to-length');
-module.exports = [].fill || function fill(value /*, start = 0, end = @length */){
- var O = toObject(this)
- , length = toLength(O.length)
- , $$ = arguments
- , $$len = $$.length
- , index = toIndex($$len > 1 ? $$[1] : undefined, length)
- , end = $$len > 2 ? $$[2] : undefined
- , endPos = end === undefined ? length : toIndex(end, length);
- while(endPos > index)O[index++] = value;
- return O;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.array-includes.js b/node_modules/core-js/library/modules/$.array-includes.js
deleted file mode 100644
index 9781fca73..000000000
--- a/node_modules/core-js/library/modules/$.array-includes.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// false -> Array#indexOf
-// true -> Array#includes
-var toIObject = require('./$.to-iobject')
- , toLength = require('./$.to-length')
- , toIndex = require('./$.to-index');
-module.exports = function(IS_INCLUDES){
- return function($this, el, fromIndex){
- var O = toIObject($this)
- , length = toLength(O.length)
- , index = toIndex(fromIndex, length)
- , value;
- // Array#includes uses SameValueZero equality algorithm
- if(IS_INCLUDES && el != el)while(length > index){
- value = O[index++];
- if(value != value)return true;
- // Array#toIndex ignores holes, Array#includes - not
- } else for(;length > index; index++)if(IS_INCLUDES || index in O){
- if(O[index] === el)return IS_INCLUDES || index;
- } return !IS_INCLUDES && -1;
- };
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.array-methods.js b/node_modules/core-js/library/modules/$.array-methods.js
deleted file mode 100644
index e70b99f4c..000000000
--- a/node_modules/core-js/library/modules/$.array-methods.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// 0 -> Array#forEach
-// 1 -> Array#map
-// 2 -> Array#filter
-// 3 -> Array#some
-// 4 -> Array#every
-// 5 -> Array#find
-// 6 -> Array#findIndex
-var ctx = require('./$.ctx')
- , IObject = require('./$.iobject')
- , toObject = require('./$.to-object')
- , toLength = require('./$.to-length')
- , asc = require('./$.array-species-create');
-module.exports = function(TYPE){
- var IS_MAP = TYPE == 1
- , IS_FILTER = TYPE == 2
- , IS_SOME = TYPE == 3
- , IS_EVERY = TYPE == 4
- , IS_FIND_INDEX = TYPE == 6
- , NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
- return function($this, callbackfn, that){
- var O = toObject($this)
- , self = IObject(O)
- , f = ctx(callbackfn, that, 3)
- , length = toLength(self.length)
- , index = 0
- , result = IS_MAP ? asc($this, length) : IS_FILTER ? asc($this, 0) : undefined
- , val, res;
- for(;length > index; index++)if(NO_HOLES || index in self){
- val = self[index];
- res = f(val, index, O);
- if(TYPE){
- if(IS_MAP)result[index] = res; // map
- else if(res)switch(TYPE){
- case 3: return true; // some
- case 5: return val; // find
- case 6: return index; // findIndex
- case 2: result.push(val); // filter
- } else if(IS_EVERY)return false; // every
- }
- }
- return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
- };
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.array-species-create.js b/node_modules/core-js/library/modules/$.array-species-create.js
deleted file mode 100644
index d809cae60..000000000
--- a/node_modules/core-js/library/modules/$.array-species-create.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
-var isObject = require('./$.is-object')
- , isArray = require('./$.is-array')
- , SPECIES = require('./$.wks')('species');
-module.exports = function(original, length){
- var C;
- if(isArray(original)){
- C = original.constructor;
- // cross-realm fallback
- if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;
- if(isObject(C)){
- C = C[SPECIES];
- if(C === null)C = undefined;
- }
- } return new (C === undefined ? Array : C)(length);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.buffer.js b/node_modules/core-js/library/modules/$.buffer.js
deleted file mode 100644
index d1aae58a4..000000000
--- a/node_modules/core-js/library/modules/$.buffer.js
+++ /dev/null
@@ -1,288 +0,0 @@
-'use strict';
-var $ = require('./$')
- , global = require('./$.global')
- , $typed = require('./$.typed')
- , redefineAll = require('./$.redefine-all')
- , strictNew = require('./$.strict-new')
- , toInteger = require('./$.to-integer')
- , toLength = require('./$.to-length')
- , arrayFill = require('./$.array-fill')
- , $ArrayBuffer = global.ArrayBuffer
- , $DataView = global.DataView
- , Math = global.Math
- , parseInt = global.parseInt
- , abs = Math.abs
- , pow = Math.pow
- , min = Math.min
- , floor = Math.floor
- , log = Math.log
- , LN2 = Math.LN2
- , BYTE_LENGTH = 'byteLength';
-
-// pack / unpack based on
-// https://github.com/inexorabletash/polyfill/blob/v0.1.11/typedarray.js#L123-L264
-// TODO: simplify
-var signed = function(value, bits){
- var s = 32 - bits;
- return value << s >> s;
-};
-var unsigned = function(value, bits){
- var s = 32 - bits;
- return value << s >>> s;
-};
-var roundToEven = function(n){
- var w = floor(n)
- , f = n - w;
- return f < .5 ? w : f > .5 ? w + 1 : w % 2 ? w + 1 : w;
-};
-var packI8 = function(n){
- return [n & 0xff];
-};
-var unpackI8 = function(bytes){
- return signed(bytes[0], 8);
-};
-var packU8 = function(n){
- return [n & 0xff];
-};
-var unpackU8 = function(bytes){
- return unsigned(bytes[0], 8);
-};
-var packI16 = function(n){
- return [n & 0xff, n >> 8 & 0xff];
-};
-var unpackI16 = function(bytes){
- return signed(bytes[1] << 8 | bytes[0], 16);
-};
-var packU16 = function(n){
- return [n & 0xff, n >> 8 & 0xff];
-};
-var unpackU16 = function(bytes){
- return unsigned(bytes[1] << 8 | bytes[0], 16);
-};
-var packI32 = function(n){
- return [n & 0xff, n >> 8 & 0xff, n >> 16 & 0xff, n >> 24 & 0xff];
-};
-var unpackI32 = function(bytes){
- return signed(bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0], 32);
-};
-var packU32 = function(n){
- return [n & 0xff, n >> 8 & 0xff, n >> 16 & 0xff, n >> 24 & 0xff];
-};
-var unpackU32 = function(bytes){
- return unsigned(bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0], 32);
-};
-var packIEEE754 = function(v, ebits, fbits) {
- var bias = (1 << ebits - 1) - 1
- , s, e, f, i, bits, str, bytes;
- // Compute sign, exponent, fraction
- if (v !== v) {
- // NaN
- // http://dev.w3.org/2006/webapi/WebIDL/#es-type-mapping
- e = (1 << ebits) - 1;
- f = pow(2, fbits - 1);
- s = 0;
- } else if(v === Infinity || v === -Infinity){
- e = (1 << ebits) - 1;
- f = 0;
- s = v < 0 ? 1 : 0;
- } else if(v === 0){
- e = 0;
- f = 0;
- s = 1 / v === -Infinity ? 1 : 0;
- } else {
- s = v < 0;
- v = abs(v);
- if(v >= pow(2, 1 - bias)){
- e = min(floor(log(v) / LN2), 1023);
- var significand = v / pow(2, e);
- if(significand < 1){
- e -= 1;
- significand *= 2;
- }
- if(significand >= 2){
- e += 1;
- significand /= 2;
- }
- f = roundToEven(significand * pow(2, fbits));
- if(f / pow(2, fbits) >= 2){
- e = e + 1;
- f = 1;
- }
- if(e > bias){
- // Overflow
- e = (1 << ebits) - 1;
- f = 0;
- } else {
- // Normalized
- e = e + bias;
- f = f - pow(2, fbits);
- }
- } else {
- // Denormalized
- e = 0;
- f = roundToEven(v / pow(2, 1 - bias - fbits));
- }
- }
- // Pack sign, exponent, fraction
- bits = [];
- for(i = fbits; i; i -= 1){
- bits.push(f % 2 ? 1 : 0);
- f = floor(f / 2);
- }
- for(i = ebits; i; i -= 1){
- bits.push(e % 2 ? 1 : 0);
- e = floor(e / 2);
- }
- bits.push(s ? 1 : 0);
- bits.reverse();
- str = bits.join('');
- // Bits to bytes
- bytes = [];
- while(str.length){
- bytes.unshift(parseInt(str.slice(0, 8), 2));
- str = str.slice(8);
- }
- return bytes;
-};
-var unpackIEEE754 = function(bytes, ebits, fbits){
- var bits = []
- , i, j, b, str, bias, s, e, f;
- for(i = 0; i < bytes.length; ++i)for(b = bytes[i], j = 8; j; --j){
- bits.push(b % 2 ? 1 : 0);
- b = b >> 1;
- }
- bits.reverse();
- str = bits.join('');
- // Unpack sign, exponent, fraction
- bias = (1 << ebits - 1) - 1;
- s = parseInt(str.slice(0, 1), 2) ? -1 : 1;
- e = parseInt(str.slice(1, 1 + ebits), 2);
- f = parseInt(str.slice(1 + ebits), 2);
- // Produce number
- if(e === (1 << ebits) - 1)return f !== 0 ? NaN : s * Infinity;
- // Normalized
- else if(e > 0)return s * pow(2, e - bias) * (1 + f / pow(2, fbits));
- // Denormalized
- else if(f !== 0)return s * pow(2, -(bias - 1)) * (f / pow(2, fbits));
- return s < 0 ? -0 : 0;
-};
-var unpackF64 = function(b){
- return unpackIEEE754(b, 11, 52);
-};
-var packF64 = function(v){
- return packIEEE754(v, 11, 52);
-};
-var unpackF32 = function(b){
- return unpackIEEE754(b, 8, 23);
-};
-var packF32 = function(v){
- return packIEEE754(v, 8, 23);
-};
-
-var addGetter = function(C, key, internal){
- $.setDesc(C.prototype, key, {get: function(){ return this[internal]; }});
-};
-
-var get = function(view, bytes, index, conversion, isLittleEndian){
- var numIndex = +index
- , intIndex = toInteger(numIndex);
- if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view._l)throw RangeError();
- var store = view._b._b
- , start = intIndex + view._o
- , pack = store.slice(start, start + bytes);
- isLittleEndian || pack.reverse();
- return conversion(pack);
-};
-var set = function(view, bytes, index, conversion, value, isLittleEndian){
- var numIndex = +index
- , intIndex = toInteger(numIndex);
- if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view._l)throw RangeError();
- var store = view._b._b
- , start = intIndex + view._o
- , pack = conversion(+value);
- isLittleEndian || pack.reverse();
- for(var i = 0; i < bytes; i++)store[start + i] = pack[i];
-};
-
-if(!$typed.ABV){
- $ArrayBuffer = function ArrayBuffer(length){
- strictNew(this, $ArrayBuffer, 'ArrayBuffer');
- var numberLength = +length
- , byteLength = toLength(numberLength);
- if(numberLength != byteLength)throw RangeError();
- this._b = arrayFill.call(Array(byteLength), 0);
- this._l = byteLength;
- };
- addGetter($ArrayBuffer, BYTE_LENGTH, '_l');
-
- $DataView = function DataView(buffer, byteOffset, byteLength){
- strictNew(this, $DataView, 'DataView');
- if(!(buffer instanceof $ArrayBuffer))throw TypeError();
- var bufferLength = buffer._l
- , offset = toInteger(byteOffset);
- if(offset < 0 || offset > bufferLength)throw RangeError();
- byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
- if(offset + byteLength > bufferLength)throw RangeError();
- this._b = buffer;
- this._o = offset;
- this._l = byteLength;
- };
- addGetter($DataView, 'buffer', '_b');
- addGetter($DataView, BYTE_LENGTH, '_l');
- addGetter($DataView, 'byteOffset', '_o');
- redefineAll($DataView.prototype, {
- getInt8: function getInt8(byteOffset){
- return get(this, 1, byteOffset, unpackI8);
- },
- getUint8: function getUint8(byteOffset){
- return get(this, 1, byteOffset, unpackU8);
- },
- getInt16: function getInt16(byteOffset /*, littleEndian */){
- return get(this, 2, byteOffset, unpackI16, arguments.length > 1 ? arguments[1] : undefined);
- },
- getUint16: function getUint16(byteOffset /*, littleEndian */){
- return get(this, 2, byteOffset, unpackU16, arguments.length > 1 ? arguments[1] : undefined);
- },
- getInt32: function getInt32(byteOffset /*, littleEndian */){
- return get(this, 4, byteOffset, unpackI32, arguments.length > 1 ? arguments[1] : undefined);
- },
- getUint32: function getUint32(byteOffset /*, littleEndian */){
- return get(this, 4, byteOffset, unpackU32, arguments.length > 1 ? arguments[1] : undefined);
- },
- getFloat32: function getFloat32(byteOffset /*, littleEndian */){
- return get(this, 4, byteOffset, unpackF32, arguments.length > 1 ? arguments[1] : undefined);
- },
- getFloat64: function getFloat64(byteOffset /*, littleEndian */){
- return get(this, 8, byteOffset, unpackF64, arguments.length > 1 ? arguments[1] : undefined);
- },
- setInt8: function setInt8(byteOffset, value){
- return set(this, 1, byteOffset, packI8, value);
- },
- setUint8: function setUint8(byteOffset, value){
- return set(this, 1, byteOffset, packU8, value);
- },
- setInt16: function setInt16(byteOffset, value /*, littleEndian */){
- return set(this, 2, byteOffset, packI16, value, arguments.length > 2 ? arguments[2] : undefined);
- },
- setUint16: function setUint16(byteOffset, value /*, littleEndian */){
- return set(this, 2, byteOffset, packU16, value, arguments.length > 2 ? arguments[2] : undefined);
- },
- setInt32: function setInt32(byteOffset, value /*, littleEndian */){
- return set(this, 4, byteOffset, packI32, value, arguments.length > 2 ? arguments[2] : undefined);
- },
- setUint32: function setUint32(byteOffset, value /*, littleEndian */){
- return set(this, 4, byteOffset, packU32, value, arguments.length > 2 ? arguments[2] : undefined);
- },
- setFloat32: function setFloat32(byteOffset, value /*, littleEndian */){
- return set(this, 4, byteOffset, packF32, value, arguments.length > 2 ? arguments[2] : undefined);
- },
- setFloat64: function setFloat64(byteOffset, value /*, littleEndian */){
- return set(this, 8, byteOffset, packF64, value, arguments.length > 2 ? arguments[2] : undefined);
- }
- });
-}
-require('./$.hide')($DataView.prototype, $typed.VIEW, true);
-module.exports = {
- ArrayBuffer: $ArrayBuffer,
- DataView: $DataView
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.classof.js b/node_modules/core-js/library/modules/$.classof.js
deleted file mode 100644
index 905c61f7a..000000000
--- a/node_modules/core-js/library/modules/$.classof.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// getting tag from 19.1.3.6 Object.prototype.toString()
-var cof = require('./$.cof')
- , TAG = require('./$.wks')('toStringTag')
- // ES3 wrong here
- , ARG = cof(function(){ return arguments; }()) == 'Arguments';
-
-module.exports = function(it){
- var O, T, B;
- return it === undefined ? 'Undefined' : it === null ? 'Null'
- // @@toStringTag case
- : typeof (T = (O = Object(it))[TAG]) == 'string' ? T
- // builtinTag case
- : ARG ? cof(O)
- // ES3 arguments fallback
- : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.cof.js b/node_modules/core-js/library/modules/$.cof.js
deleted file mode 100644
index 1dd2779a7..000000000
--- a/node_modules/core-js/library/modules/$.cof.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var toString = {}.toString;
-
-module.exports = function(it){
- return toString.call(it).slice(8, -1);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.collection-strong.js b/node_modules/core-js/library/modules/$.collection-strong.js
deleted file mode 100644
index 54df55a65..000000000
--- a/node_modules/core-js/library/modules/$.collection-strong.js
+++ /dev/null
@@ -1,159 +0,0 @@
-'use strict';
-var $ = require('./$')
- , hide = require('./$.hide')
- , redefineAll = require('./$.redefine-all')
- , ctx = require('./$.ctx')
- , strictNew = require('./$.strict-new')
- , defined = require('./$.defined')
- , forOf = require('./$.for-of')
- , $iterDefine = require('./$.iter-define')
- , step = require('./$.iter-step')
- , ID = require('./$.uid')('id')
- , $has = require('./$.has')
- , isObject = require('./$.is-object')
- , setSpecies = require('./$.set-species')
- , DESCRIPTORS = require('./$.descriptors')
- , isExtensible = Object.isExtensible || isObject
- , SIZE = DESCRIPTORS ? '_s' : 'size'
- , id = 0;
-
-var fastKey = function(it, create){
- // return primitive with prefix
- if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
- if(!$has(it, ID)){
- // can't set id to frozen object
- if(!isExtensible(it))return 'F';
- // not necessary to add id
- if(!create)return 'E';
- // add missing object id
- hide(it, ID, ++id);
- // return object id with prefix
- } return 'O' + it[ID];
-};
-
-var getEntry = function(that, key){
- // fast case
- var index = fastKey(key), entry;
- if(index !== 'F')return that._i[index];
- // frozen object case
- for(entry = that._f; entry; entry = entry.n){
- if(entry.k == key)return entry;
- }
-};
-
-module.exports = {
- getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
- var C = wrapper(function(that, iterable){
- strictNew(that, C, NAME);
- that._i = $.create(null); // index
- that._f = undefined; // first entry
- that._l = undefined; // last entry
- that[SIZE] = 0; // size
- if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
- });
- redefineAll(C.prototype, {
- // 23.1.3.1 Map.prototype.clear()
- // 23.2.3.2 Set.prototype.clear()
- clear: function clear(){
- for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){
- entry.r = true;
- if(entry.p)entry.p = entry.p.n = undefined;
- delete data[entry.i];
- }
- that._f = that._l = undefined;
- that[SIZE] = 0;
- },
- // 23.1.3.3 Map.prototype.delete(key)
- // 23.2.3.4 Set.prototype.delete(value)
- 'delete': function(key){
- var that = this
- , entry = getEntry(that, key);
- if(entry){
- var next = entry.n
- , prev = entry.p;
- delete that._i[entry.i];
- entry.r = true;
- if(prev)prev.n = next;
- if(next)next.p = prev;
- if(that._f == entry)that._f = next;
- if(that._l == entry)that._l = prev;
- that[SIZE]--;
- } return !!entry;
- },
- // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
- // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
- forEach: function forEach(callbackfn /*, that = undefined */){
- var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)
- , entry;
- while(entry = entry ? entry.n : this._f){
- f(entry.v, entry.k, this);
- // revert to the last existing entry
- while(entry && entry.r)entry = entry.p;
- }
- },
- // 23.1.3.7 Map.prototype.has(key)
- // 23.2.3.7 Set.prototype.has(value)
- has: function has(key){
- return !!getEntry(this, key);
- }
- });
- if(DESCRIPTORS)$.setDesc(C.prototype, 'size', {
- get: function(){
- return defined(this[SIZE]);
- }
- });
- return C;
- },
- def: function(that, key, value){
- var entry = getEntry(that, key)
- , prev, index;
- // change existing entry
- if(entry){
- entry.v = value;
- // create new entry
- } else {
- that._l = entry = {
- i: index = fastKey(key, true), // <- index
- k: key, // <- key
- v: value, // <- value
- p: prev = that._l, // <- previous entry
- n: undefined, // <- next entry
- r: false // <- removed
- };
- if(!that._f)that._f = entry;
- if(prev)prev.n = entry;
- that[SIZE]++;
- // add to index
- if(index !== 'F')that._i[index] = entry;
- } return that;
- },
- getEntry: getEntry,
- setStrong: function(C, NAME, IS_MAP){
- // add .keys, .values, .entries, [@@iterator]
- // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
- $iterDefine(C, NAME, function(iterated, kind){
- this._t = iterated; // target
- this._k = kind; // kind
- this._l = undefined; // previous
- }, function(){
- var that = this
- , kind = that._k
- , entry = that._l;
- // revert to the last existing entry
- while(entry && entry.r)entry = entry.p;
- // get next entry
- if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){
- // or finish the iteration
- that._t = undefined;
- return step(1);
- }
- // return step by kind
- if(kind == 'keys' )return step(0, entry.k);
- if(kind == 'values')return step(0, entry.v);
- return step(0, [entry.k, entry.v]);
- }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);
-
- // add [@@species], 23.1.2.2, 23.2.2.2
- setSpecies(NAME);
- }
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.collection-to-json.js b/node_modules/core-js/library/modules/$.collection-to-json.js
deleted file mode 100644
index 41f2e6ec7..000000000
--- a/node_modules/core-js/library/modules/$.collection-to-json.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// https://github.com/DavidBruant/Map-Set.prototype.toJSON
-var forOf = require('./$.for-of')
- , classof = require('./$.classof');
-module.exports = function(NAME){
- return function toJSON(){
- if(classof(this) != NAME)throw TypeError(NAME + "#toJSON isn't generic");
- var arr = [];
- forOf(this, false, arr.push, arr);
- return arr;
- };
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.collection-weak.js b/node_modules/core-js/library/modules/$.collection-weak.js
deleted file mode 100644
index 384fb39dc..000000000
--- a/node_modules/core-js/library/modules/$.collection-weak.js
+++ /dev/null
@@ -1,86 +0,0 @@
-'use strict';
-var hide = require('./$.hide')
- , redefineAll = require('./$.redefine-all')
- , anObject = require('./$.an-object')
- , isObject = require('./$.is-object')
- , strictNew = require('./$.strict-new')
- , forOf = require('./$.for-of')
- , createArrayMethod = require('./$.array-methods')
- , $has = require('./$.has')
- , WEAK = require('./$.uid')('weak')
- , isExtensible = Object.isExtensible || isObject
- , arrayFind = createArrayMethod(5)
- , arrayFindIndex = createArrayMethod(6)
- , id = 0;
-
-// fallback for frozen keys
-var frozenStore = function(that){
- return that._l || (that._l = new FrozenStore);
-};
-var FrozenStore = function(){
- this.a = [];
-};
-var findFrozen = function(store, key){
- return arrayFind(store.a, function(it){
- return it[0] === key;
- });
-};
-FrozenStore.prototype = {
- get: function(key){
- var entry = findFrozen(this, key);
- if(entry)return entry[1];
- },
- has: function(key){
- return !!findFrozen(this, key);
- },
- set: function(key, value){
- var entry = findFrozen(this, key);
- if(entry)entry[1] = value;
- else this.a.push([key, value]);
- },
- 'delete': function(key){
- var index = arrayFindIndex(this.a, function(it){
- return it[0] === key;
- });
- if(~index)this.a.splice(index, 1);
- return !!~index;
- }
-};
-
-module.exports = {
- getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
- var C = wrapper(function(that, iterable){
- strictNew(that, C, NAME);
- that._i = id++; // collection id
- that._l = undefined; // leak store for frozen objects
- if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
- });
- redefineAll(C.prototype, {
- // 23.3.3.2 WeakMap.prototype.delete(key)
- // 23.4.3.3 WeakSet.prototype.delete(value)
- 'delete': function(key){
- if(!isObject(key))return false;
- if(!isExtensible(key))return frozenStore(this)['delete'](key);
- return $has(key, WEAK) && $has(key[WEAK], this._i) && delete key[WEAK][this._i];
- },
- // 23.3.3.4 WeakMap.prototype.has(key)
- // 23.4.3.4 WeakSet.prototype.has(value)
- has: function has(key){
- if(!isObject(key))return false;
- if(!isExtensible(key))return frozenStore(this).has(key);
- return $has(key, WEAK) && $has(key[WEAK], this._i);
- }
- });
- return C;
- },
- def: function(that, key, value){
- if(!isExtensible(anObject(key))){
- frozenStore(that).set(key, value);
- } else {
- $has(key, WEAK) || hide(key, WEAK, {});
- key[WEAK][that._i] = value;
- } return that;
- },
- frozenStore: frozenStore,
- WEAK: WEAK
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.collection.js b/node_modules/core-js/library/modules/$.collection.js
deleted file mode 100644
index 9d234d135..000000000
--- a/node_modules/core-js/library/modules/$.collection.js
+++ /dev/null
@@ -1,55 +0,0 @@
-'use strict';
-var $ = require('./$')
- , global = require('./$.global')
- , $export = require('./$.export')
- , fails = require('./$.fails')
- , hide = require('./$.hide')
- , redefineAll = require('./$.redefine-all')
- , forOf = require('./$.for-of')
- , strictNew = require('./$.strict-new')
- , isObject = require('./$.is-object')
- , setToStringTag = require('./$.set-to-string-tag')
- , DESCRIPTORS = require('./$.descriptors');
-
-module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){
- var Base = global[NAME]
- , C = Base
- , ADDER = IS_MAP ? 'set' : 'add'
- , proto = C && C.prototype
- , O = {};
- if(!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){
- new C().entries().next();
- }))){
- // create collection constructor
- C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
- redefineAll(C.prototype, methods);
- } else {
- C = wrapper(function(target, iterable){
- strictNew(target, C, NAME);
- target._c = new Base;
- if(iterable != undefined)forOf(iterable, IS_MAP, target[ADDER], target);
- });
- $.each.call('add,clear,delete,forEach,get,has,set,keys,values,entries'.split(','),function(KEY){
- var IS_ADDER = KEY == 'add' || KEY == 'set';
- if(KEY in proto && !(IS_WEAK && KEY == 'clear'))hide(C.prototype, KEY, function(a, b){
- if(!IS_ADDER && IS_WEAK && !isObject(a))return KEY == 'get' ? undefined : false;
- var result = this._c[KEY](a === 0 ? 0 : a, b);
- return IS_ADDER ? this : result;
- });
- });
- if('size' in proto)$.setDesc(C.prototype, 'size', {
- get: function(){
- return this._c.size;
- }
- });
- }
-
- setToStringTag(C, NAME);
-
- O[NAME] = C;
- $export($export.G + $export.W + $export.F, O);
-
- if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);
-
- return C;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.core.js b/node_modules/core-js/library/modules/$.core.js
deleted file mode 100644
index 4e2a0b595..000000000
--- a/node_modules/core-js/library/modules/$.core.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var core = module.exports = {version: '1.2.6'};
-if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.ctx.js b/node_modules/core-js/library/modules/$.ctx.js
deleted file mode 100644
index d233574ac..000000000
--- a/node_modules/core-js/library/modules/$.ctx.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// optional / simple context binding
-var aFunction = require('./$.a-function');
-module.exports = function(fn, that, length){
- aFunction(fn);
- if(that === undefined)return fn;
- switch(length){
- case 1: return function(a){
- return fn.call(that, a);
- };
- case 2: return function(a, b){
- return fn.call(that, a, b);
- };
- case 3: return function(a, b, c){
- return fn.call(that, a, b, c);
- };
- }
- return function(/* ...args */){
- return fn.apply(that, arguments);
- };
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.defined.js b/node_modules/core-js/library/modules/$.defined.js
deleted file mode 100644
index cfa476b96..000000000
--- a/node_modules/core-js/library/modules/$.defined.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// 7.2.1 RequireObjectCoercible(argument)
-module.exports = function(it){
- if(it == undefined)throw TypeError("Can't call method on " + it);
- return it;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.descriptors.js b/node_modules/core-js/library/modules/$.descriptors.js
deleted file mode 100644
index 9cd47b7df..000000000
--- a/node_modules/core-js/library/modules/$.descriptors.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// Thank's IE8 for his funny defineProperty
-module.exports = !require('./$.fails')(function(){
- return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
-}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.dom-create.js b/node_modules/core-js/library/modules/$.dom-create.js
deleted file mode 100644
index 240842d29..000000000
--- a/node_modules/core-js/library/modules/$.dom-create.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var isObject = require('./$.is-object')
- , document = require('./$.global').document
- // in old IE typeof document.createElement is 'object'
- , is = isObject(document) && isObject(document.createElement);
-module.exports = function(it){
- return is ? document.createElement(it) : {};
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.enum-keys.js b/node_modules/core-js/library/modules/$.enum-keys.js
deleted file mode 100644
index 06f7de7af..000000000
--- a/node_modules/core-js/library/modules/$.enum-keys.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// all enumerable object keys, includes symbols
-var $ = require('./$');
-module.exports = function(it){
- var keys = $.getKeys(it)
- , getSymbols = $.getSymbols;
- if(getSymbols){
- var symbols = getSymbols(it)
- , isEnum = $.isEnum
- , i = 0
- , key;
- while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);
- }
- return keys;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.export.js b/node_modules/core-js/library/modules/$.export.js
deleted file mode 100644
index 507b5a226..000000000
--- a/node_modules/core-js/library/modules/$.export.js
+++ /dev/null
@@ -1,46 +0,0 @@
-var global = require('./$.global')
- , core = require('./$.core')
- , ctx = require('./$.ctx')
- , PROTOTYPE = 'prototype';
-
-var $export = function(type, name, source){
- var IS_FORCED = type & $export.F
- , IS_GLOBAL = type & $export.G
- , IS_STATIC = type & $export.S
- , IS_PROTO = type & $export.P
- , IS_BIND = type & $export.B
- , IS_WRAP = type & $export.W
- , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
- , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
- , key, own, out;
- if(IS_GLOBAL)source = name;
- for(key in source){
- // contains in native
- own = !IS_FORCED && target && key in target;
- if(own && key in exports)continue;
- // export native or passed
- out = own ? target[key] : source[key];
- // prevent global pollution for namespaces
- exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
- // bind timers to global for call from export context
- : IS_BIND && own ? ctx(out, global)
- // wrap global constructors for prevent change them in library
- : IS_WRAP && target[key] == out ? (function(C){
- var F = function(param){
- return this instanceof C ? new C(param) : C(param);
- };
- F[PROTOTYPE] = C[PROTOTYPE];
- return F;
- // make static versions for prototype methods
- })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
- if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
- }
-};
-// type bitmap
-$export.F = 1; // forced
-$export.G = 2; // global
-$export.S = 4; // static
-$export.P = 8; // proto
-$export.B = 16; // bind
-$export.W = 32; // wrap
-module.exports = $export; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.fails-is-regexp.js b/node_modules/core-js/library/modules/$.fails-is-regexp.js
deleted file mode 100644
index c459a77ab..000000000
--- a/node_modules/core-js/library/modules/$.fails-is-regexp.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var MATCH = require('./$.wks')('match');
-module.exports = function(KEY){
- var re = /./;
- try {
- '/./'[KEY](re);
- } catch(e){
- try {
- re[MATCH] = false;
- return !'/./'[KEY](re);
- } catch(f){ /* empty */ }
- } return true;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.fails.js b/node_modules/core-js/library/modules/$.fails.js
deleted file mode 100644
index 184e5ea84..000000000
--- a/node_modules/core-js/library/modules/$.fails.js
+++ /dev/null
@@ -1,7 +0,0 @@
-module.exports = function(exec){
- try {
- return !!exec();
- } catch(e){
- return true;
- }
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.fix-re-wks.js b/node_modules/core-js/library/modules/$.fix-re-wks.js
deleted file mode 100644
index 3597a8985..000000000
--- a/node_modules/core-js/library/modules/$.fix-re-wks.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-var hide = require('./$.hide')
- , redefine = require('./$.redefine')
- , fails = require('./$.fails')
- , defined = require('./$.defined')
- , wks = require('./$.wks');
-
-module.exports = function(KEY, length, exec){
- var SYMBOL = wks(KEY)
- , original = ''[KEY];
- if(fails(function(){
- var O = {};
- O[SYMBOL] = function(){ return 7; };
- return ''[KEY](O) != 7;
- })){
- redefine(String.prototype, KEY, exec(defined, SYMBOL, original));
- hide(RegExp.prototype, SYMBOL, length == 2
- // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
- // 21.2.5.11 RegExp.prototype[@@split](string, limit)
- ? function(string, arg){ return original.call(string, this, arg); }
- // 21.2.5.6 RegExp.prototype[@@match](string)
- // 21.2.5.9 RegExp.prototype[@@search](string)
- : function(string){ return original.call(string, this); }
- );
- }
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.flags.js b/node_modules/core-js/library/modules/$.flags.js
deleted file mode 100644
index fc20e5deb..000000000
--- a/node_modules/core-js/library/modules/$.flags.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-// 21.2.5.3 get RegExp.prototype.flags
-var anObject = require('./$.an-object');
-module.exports = function(){
- var that = anObject(this)
- , result = '';
- if(that.global) result += 'g';
- if(that.ignoreCase) result += 'i';
- if(that.multiline) result += 'm';
- if(that.unicode) result += 'u';
- if(that.sticky) result += 'y';
- return result;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.for-of.js b/node_modules/core-js/library/modules/$.for-of.js
deleted file mode 100644
index 0f2d8e974..000000000
--- a/node_modules/core-js/library/modules/$.for-of.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var ctx = require('./$.ctx')
- , call = require('./$.iter-call')
- , isArrayIter = require('./$.is-array-iter')
- , anObject = require('./$.an-object')
- , toLength = require('./$.to-length')
- , getIterFn = require('./core.get-iterator-method');
-module.exports = function(iterable, entries, fn, that){
- var iterFn = getIterFn(iterable)
- , f = ctx(fn, that, entries ? 2 : 1)
- , index = 0
- , length, step, iterator;
- if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');
- // fast case for arrays with default iterator
- if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){
- entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
- } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
- call(iterator, f, step.value, entries);
- }
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.get-names.js b/node_modules/core-js/library/modules/$.get-names.js
deleted file mode 100644
index 282097140..000000000
--- a/node_modules/core-js/library/modules/$.get-names.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
-var toIObject = require('./$.to-iobject')
- , getNames = require('./$').getNames
- , toString = {}.toString;
-
-var windowNames = typeof window == 'object' && Object.getOwnPropertyNames
- ? Object.getOwnPropertyNames(window) : [];
-
-var getWindowNames = function(it){
- try {
- return getNames(it);
- } catch(e){
- return windowNames.slice();
- }
-};
-
-module.exports.get = function getOwnPropertyNames(it){
- if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);
- return getNames(toIObject(it));
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.global.js b/node_modules/core-js/library/modules/$.global.js
deleted file mode 100644
index df6efb476..000000000
--- a/node_modules/core-js/library/modules/$.global.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-var global = module.exports = typeof window != 'undefined' && window.Math == Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
-if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.has.js b/node_modules/core-js/library/modules/$.has.js
deleted file mode 100644
index 870b40e71..000000000
--- a/node_modules/core-js/library/modules/$.has.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var hasOwnProperty = {}.hasOwnProperty;
-module.exports = function(it, key){
- return hasOwnProperty.call(it, key);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.hide.js b/node_modules/core-js/library/modules/$.hide.js
deleted file mode 100644
index ba025d81d..000000000
--- a/node_modules/core-js/library/modules/$.hide.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('./$')
- , createDesc = require('./$.property-desc');
-module.exports = require('./$.descriptors') ? function(object, key, value){
- return $.setDesc(object, key, createDesc(1, value));
-} : function(object, key, value){
- object[key] = value;
- return object;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.html.js b/node_modules/core-js/library/modules/$.html.js
deleted file mode 100644
index 499bd2f31..000000000
--- a/node_modules/core-js/library/modules/$.html.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./$.global').document && document.documentElement; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.invoke.js b/node_modules/core-js/library/modules/$.invoke.js
deleted file mode 100644
index 08e307fd0..000000000
--- a/node_modules/core-js/library/modules/$.invoke.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// fast apply, http://jsperf.lnkit.com/fast-apply/5
-module.exports = function(fn, args, that){
- var un = that === undefined;
- switch(args.length){
- case 0: return un ? fn()
- : fn.call(that);
- case 1: return un ? fn(args[0])
- : fn.call(that, args[0]);
- case 2: return un ? fn(args[0], args[1])
- : fn.call(that, args[0], args[1]);
- case 3: return un ? fn(args[0], args[1], args[2])
- : fn.call(that, args[0], args[1], args[2]);
- case 4: return un ? fn(args[0], args[1], args[2], args[3])
- : fn.call(that, args[0], args[1], args[2], args[3]);
- } return fn.apply(that, args);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.iobject.js b/node_modules/core-js/library/modules/$.iobject.js
deleted file mode 100644
index cea38fab4..000000000
--- a/node_modules/core-js/library/modules/$.iobject.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// fallback for non-array-like ES3 and non-enumerable old V8 strings
-var cof = require('./$.cof');
-module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
- return cof(it) == 'String' ? it.split('') : Object(it);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.is-array-iter.js b/node_modules/core-js/library/modules/$.is-array-iter.js
deleted file mode 100644
index b6ef7017b..000000000
--- a/node_modules/core-js/library/modules/$.is-array-iter.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// check on default Array iterator
-var Iterators = require('./$.iterators')
- , ITERATOR = require('./$.wks')('iterator')
- , ArrayProto = Array.prototype;
-
-module.exports = function(it){
- return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.is-array.js b/node_modules/core-js/library/modules/$.is-array.js
deleted file mode 100644
index 8168b21ce..000000000
--- a/node_modules/core-js/library/modules/$.is-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// 7.2.2 IsArray(argument)
-var cof = require('./$.cof');
-module.exports = Array.isArray || function(arg){
- return cof(arg) == 'Array';
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.is-integer.js b/node_modules/core-js/library/modules/$.is-integer.js
deleted file mode 100644
index b51e1317e..000000000
--- a/node_modules/core-js/library/modules/$.is-integer.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// 20.1.2.3 Number.isInteger(number)
-var isObject = require('./$.is-object')
- , floor = Math.floor;
-module.exports = function isInteger(it){
- return !isObject(it) && isFinite(it) && floor(it) === it;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.is-object.js b/node_modules/core-js/library/modules/$.is-object.js
deleted file mode 100644
index ee694be2f..000000000
--- a/node_modules/core-js/library/modules/$.is-object.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = function(it){
- return typeof it === 'object' ? it !== null : typeof it === 'function';
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.is-regexp.js b/node_modules/core-js/library/modules/$.is-regexp.js
deleted file mode 100644
index 9ea2aad74..000000000
--- a/node_modules/core-js/library/modules/$.is-regexp.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 7.2.8 IsRegExp(argument)
-var isObject = require('./$.is-object')
- , cof = require('./$.cof')
- , MATCH = require('./$.wks')('match');
-module.exports = function(it){
- var isRegExp;
- return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.iter-call.js b/node_modules/core-js/library/modules/$.iter-call.js
deleted file mode 100644
index e6b9d1b1f..000000000
--- a/node_modules/core-js/library/modules/$.iter-call.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// call something on iterator step with safe closing on error
-var anObject = require('./$.an-object');
-module.exports = function(iterator, fn, value, entries){
- try {
- return entries ? fn(anObject(value)[0], value[1]) : fn(value);
- // 7.4.6 IteratorClose(iterator, completion)
- } catch(e){
- var ret = iterator['return'];
- if(ret !== undefined)anObject(ret.call(iterator));
- throw e;
- }
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.iter-create.js b/node_modules/core-js/library/modules/$.iter-create.js
deleted file mode 100644
index adebcf9a4..000000000
--- a/node_modules/core-js/library/modules/$.iter-create.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-var $ = require('./$')
- , descriptor = require('./$.property-desc')
- , setToStringTag = require('./$.set-to-string-tag')
- , IteratorPrototype = {};
-
-// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
-require('./$.hide')(IteratorPrototype, require('./$.wks')('iterator'), function(){ return this; });
-
-module.exports = function(Constructor, NAME, next){
- Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});
- setToStringTag(Constructor, NAME + ' Iterator');
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.iter-define.js b/node_modules/core-js/library/modules/$.iter-define.js
deleted file mode 100644
index 630cdf385..000000000
--- a/node_modules/core-js/library/modules/$.iter-define.js
+++ /dev/null
@@ -1,66 +0,0 @@
-'use strict';
-var LIBRARY = require('./$.library')
- , $export = require('./$.export')
- , redefine = require('./$.redefine')
- , hide = require('./$.hide')
- , has = require('./$.has')
- , Iterators = require('./$.iterators')
- , $iterCreate = require('./$.iter-create')
- , setToStringTag = require('./$.set-to-string-tag')
- , getProto = require('./$').getProto
- , ITERATOR = require('./$.wks')('iterator')
- , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
- , FF_ITERATOR = '@@iterator'
- , KEYS = 'keys'
- , VALUES = 'values';
-
-var returnThis = function(){ return this; };
-
-module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){
- $iterCreate(Constructor, NAME, next);
- var getMethod = function(kind){
- if(!BUGGY && kind in proto)return proto[kind];
- switch(kind){
- case KEYS: return function keys(){ return new Constructor(this, kind); };
- case VALUES: return function values(){ return new Constructor(this, kind); };
- } return function entries(){ return new Constructor(this, kind); };
- };
- var TAG = NAME + ' Iterator'
- , DEF_VALUES = DEFAULT == VALUES
- , VALUES_BUG = false
- , proto = Base.prototype
- , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
- , $default = $native || getMethod(DEFAULT)
- , methods, key;
- // Fix native
- if($native){
- var IteratorPrototype = getProto($default.call(new Base));
- // Set @@toStringTag to native iterators
- setToStringTag(IteratorPrototype, TAG, true);
- // FF fix
- if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
- // fix Array#{values, @@iterator}.name in V8 / FF
- if(DEF_VALUES && $native.name !== VALUES){
- VALUES_BUG = true;
- $default = function values(){ return $native.call(this); };
- }
- }
- // Define iterator
- if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
- hide(proto, ITERATOR, $default);
- }
- // Plug for library
- Iterators[NAME] = $default;
- Iterators[TAG] = returnThis;
- if(DEFAULT){
- methods = {
- values: DEF_VALUES ? $default : getMethod(VALUES),
- keys: IS_SET ? $default : getMethod(KEYS),
- entries: !DEF_VALUES ? $default : getMethod('entries')
- };
- if(FORCED)for(key in methods){
- if(!(key in proto))redefine(proto, key, methods[key]);
- } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
- }
- return methods;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.iter-detect.js b/node_modules/core-js/library/modules/$.iter-detect.js
deleted file mode 100644
index bff5fffb4..000000000
--- a/node_modules/core-js/library/modules/$.iter-detect.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var ITERATOR = require('./$.wks')('iterator')
- , SAFE_CLOSING = false;
-
-try {
- var riter = [7][ITERATOR]();
- riter['return'] = function(){ SAFE_CLOSING = true; };
- Array.from(riter, function(){ throw 2; });
-} catch(e){ /* empty */ }
-
-module.exports = function(exec, skipClosing){
- if(!skipClosing && !SAFE_CLOSING)return false;
- var safe = false;
- try {
- var arr = [7]
- , iter = arr[ITERATOR]();
- iter.next = function(){ return {done: safe = true}; };
- arr[ITERATOR] = function(){ return iter; };
- exec(arr);
- } catch(e){ /* empty */ }
- return safe;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.iter-step.js b/node_modules/core-js/library/modules/$.iter-step.js
deleted file mode 100644
index 6ff0dc518..000000000
--- a/node_modules/core-js/library/modules/$.iter-step.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = function(done, value){
- return {value: value, done: !!done};
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.iterators.js b/node_modules/core-js/library/modules/$.iterators.js
deleted file mode 100644
index a09954537..000000000
--- a/node_modules/core-js/library/modules/$.iterators.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = {}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.js b/node_modules/core-js/library/modules/$.js
deleted file mode 100644
index 053bae48c..000000000
--- a/node_modules/core-js/library/modules/$.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var $Object = Object;
-module.exports = {
- create: $Object.create,
- getProto: $Object.getPrototypeOf,
- isEnum: {}.propertyIsEnumerable,
- getDesc: $Object.getOwnPropertyDescriptor,
- setDesc: $Object.defineProperty,
- setDescs: $Object.defineProperties,
- getKeys: $Object.keys,
- getNames: $Object.getOwnPropertyNames,
- getSymbols: $Object.getOwnPropertySymbols,
- each: [].forEach
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.keyof.js b/node_modules/core-js/library/modules/$.keyof.js
deleted file mode 100644
index 09d183a71..000000000
--- a/node_modules/core-js/library/modules/$.keyof.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var $ = require('./$')
- , toIObject = require('./$.to-iobject');
-module.exports = function(object, el){
- var O = toIObject(object)
- , keys = $.getKeys(O)
- , length = keys.length
- , index = 0
- , key;
- while(length > index)if(O[key = keys[index++]] === el)return key;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.library.js b/node_modules/core-js/library/modules/$.library.js
deleted file mode 100644
index 73f737c59..000000000
--- a/node_modules/core-js/library/modules/$.library.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = true; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.math-expm1.js b/node_modules/core-js/library/modules/$.math-expm1.js
deleted file mode 100644
index 9d91be93e..000000000
--- a/node_modules/core-js/library/modules/$.math-expm1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.2.2.14 Math.expm1(x)
-module.exports = Math.expm1 || function expm1(x){
- return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.math-log1p.js b/node_modules/core-js/library/modules/$.math-log1p.js
deleted file mode 100644
index a92bf463a..000000000
--- a/node_modules/core-js/library/modules/$.math-log1p.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.2.2.20 Math.log1p(x)
-module.exports = Math.log1p || function log1p(x){
- return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.math-sign.js b/node_modules/core-js/library/modules/$.math-sign.js
deleted file mode 100644
index a4848df60..000000000
--- a/node_modules/core-js/library/modules/$.math-sign.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.2.2.28 Math.sign(x)
-module.exports = Math.sign || function sign(x){
- return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.microtask.js b/node_modules/core-js/library/modules/$.microtask.js
deleted file mode 100644
index 1f9ebeb5d..000000000
--- a/node_modules/core-js/library/modules/$.microtask.js
+++ /dev/null
@@ -1,64 +0,0 @@
-var global = require('./$.global')
- , macrotask = require('./$.task').set
- , Observer = global.MutationObserver || global.WebKitMutationObserver
- , process = global.process
- , Promise = global.Promise
- , isNode = require('./$.cof')(process) == 'process'
- , head, last, notify;
-
-var flush = function(){
- var parent, domain, fn;
- if(isNode && (parent = process.domain)){
- process.domain = null;
- parent.exit();
- }
- while(head){
- domain = head.domain;
- fn = head.fn;
- if(domain)domain.enter();
- fn(); // <- currently we use it only for Promise - try / catch not required
- if(domain)domain.exit();
- head = head.next;
- } last = undefined;
- if(parent)parent.enter();
-};
-
-// Node.js
-if(isNode){
- notify = function(){
- process.nextTick(flush);
- };
-// browsers with MutationObserver
-} else if(Observer){
- var toggle = 1
- , node = document.createTextNode('');
- new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new
- notify = function(){
- node.data = toggle = -toggle;
- };
-// environments with maybe non-completely correct, but existent Promise
-} else if(Promise && Promise.resolve){
- notify = function(){
- Promise.resolve().then(flush);
- };
-// for other environments - macrotask based on:
-// - setImmediate
-// - MessageChannel
-// - window.postMessag
-// - onreadystatechange
-// - setTimeout
-} else {
- notify = function(){
- // strange IE + webpack dev server bug - use .call(global)
- macrotask.call(global, flush);
- };
-}
-
-module.exports = function asap(fn){
- var task = {fn: fn, next: undefined, domain: isNode && process.domain};
- if(last)last.next = task;
- if(!head){
- head = task;
- notify();
- } last = task;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.object-assign.js b/node_modules/core-js/library/modules/$.object-assign.js
deleted file mode 100644
index 5ce43f781..000000000
--- a/node_modules/core-js/library/modules/$.object-assign.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// 19.1.2.1 Object.assign(target, source, ...)
-var $ = require('./$')
- , toObject = require('./$.to-object')
- , IObject = require('./$.iobject');
-
-// should work with symbols and should have deterministic property order (V8 bug)
-module.exports = require('./$.fails')(function(){
- var a = Object.assign
- , A = {}
- , B = {}
- , S = Symbol()
- , K = 'abcdefghijklmnopqrst';
- A[S] = 7;
- K.split('').forEach(function(k){ B[k] = k; });
- return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;
-}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
- var T = toObject(target)
- , $$ = arguments
- , $$len = $$.length
- , index = 1
- , getKeys = $.getKeys
- , getSymbols = $.getSymbols
- , isEnum = $.isEnum;
- while($$len > index){
- var S = IObject($$[index++])
- , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
- , length = keys.length
- , j = 0
- , key;
- while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
- }
- return T;
-} : Object.assign; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.object-define.js b/node_modules/core-js/library/modules/$.object-define.js
deleted file mode 100644
index 2fff248f1..000000000
--- a/node_modules/core-js/library/modules/$.object-define.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var $ = require('./$')
- , ownKeys = require('./$.own-keys')
- , toIObject = require('./$.to-iobject');
-
-module.exports = function define(target, mixin){
- var keys = ownKeys(toIObject(mixin))
- , length = keys.length
- , i = 0, key;
- while(length > i)$.setDesc(target, key = keys[i++], $.getDesc(mixin, key));
- return target;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.object-sap.js b/node_modules/core-js/library/modules/$.object-sap.js
deleted file mode 100644
index 5fa7288a8..000000000
--- a/node_modules/core-js/library/modules/$.object-sap.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// most Object methods by ES6 should accept primitives
-var $export = require('./$.export')
- , core = require('./$.core')
- , fails = require('./$.fails');
-module.exports = function(KEY, exec){
- var fn = (core.Object || {})[KEY] || Object[KEY]
- , exp = {};
- exp[KEY] = exec(fn);
- $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.object-to-array.js b/node_modules/core-js/library/modules/$.object-to-array.js
deleted file mode 100644
index d46425bac..000000000
--- a/node_modules/core-js/library/modules/$.object-to-array.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var $ = require('./$')
- , toIObject = require('./$.to-iobject')
- , isEnum = $.isEnum;
-module.exports = function(isEntries){
- return function(it){
- var O = toIObject(it)
- , keys = $.getKeys(O)
- , length = keys.length
- , i = 0
- , result = []
- , key;
- while(length > i)if(isEnum.call(O, key = keys[i++])){
- result.push(isEntries ? [key, O[key]] : O[key]);
- } return result;
- };
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.own-keys.js b/node_modules/core-js/library/modules/$.own-keys.js
deleted file mode 100644
index 0218c4bd5..000000000
--- a/node_modules/core-js/library/modules/$.own-keys.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// all object keys, includes non-enumerable and symbols
-var $ = require('./$')
- , anObject = require('./$.an-object')
- , Reflect = require('./$.global').Reflect;
-module.exports = Reflect && Reflect.ownKeys || function ownKeys(it){
- var keys = $.getNames(anObject(it))
- , getSymbols = $.getSymbols;
- return getSymbols ? keys.concat(getSymbols(it)) : keys;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.partial.js b/node_modules/core-js/library/modules/$.partial.js
deleted file mode 100644
index 53f97aa9c..000000000
--- a/node_modules/core-js/library/modules/$.partial.js
+++ /dev/null
@@ -1,24 +0,0 @@
-'use strict';
-var path = require('./$.path')
- , invoke = require('./$.invoke')
- , aFunction = require('./$.a-function');
-module.exports = function(/* ...pargs */){
- var fn = aFunction(this)
- , length = arguments.length
- , pargs = Array(length)
- , i = 0
- , _ = path._
- , holder = false;
- while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true;
- return function(/* ...args */){
- var that = this
- , $$ = arguments
- , $$len = $$.length
- , j = 0, k = 0, args;
- if(!holder && !$$len)return invoke(fn, pargs, that);
- args = pargs.slice();
- if(holder)for(;length > j; j++)if(args[j] === _)args[j] = $$[k++];
- while($$len > k)args.push($$[k++]);
- return invoke(fn, args, that);
- };
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.path.js b/node_modules/core-js/library/modules/$.path.js
deleted file mode 100644
index 27bb24b89..000000000
--- a/node_modules/core-js/library/modules/$.path.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./$.core'); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.property-desc.js b/node_modules/core-js/library/modules/$.property-desc.js
deleted file mode 100644
index e3f7ab2dc..000000000
--- a/node_modules/core-js/library/modules/$.property-desc.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = function(bitmap, value){
- return {
- enumerable : !(bitmap & 1),
- configurable: !(bitmap & 2),
- writable : !(bitmap & 4),
- value : value
- };
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.redefine-all.js b/node_modules/core-js/library/modules/$.redefine-all.js
deleted file mode 100644
index 01fe55baa..000000000
--- a/node_modules/core-js/library/modules/$.redefine-all.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var redefine = require('./$.redefine');
-module.exports = function(target, src){
- for(var key in src)redefine(target, key, src[key]);
- return target;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.redefine.js b/node_modules/core-js/library/modules/$.redefine.js
deleted file mode 100644
index 57453fd17..000000000
--- a/node_modules/core-js/library/modules/$.redefine.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./$.hide'); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.replacer.js b/node_modules/core-js/library/modules/$.replacer.js
deleted file mode 100644
index 5360a3d35..000000000
--- a/node_modules/core-js/library/modules/$.replacer.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = function(regExp, replace){
- var replacer = replace === Object(replace) ? function(part){
- return replace[part];
- } : replace;
- return function(it){
- return String(it).replace(regExp, replacer);
- };
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.same-value.js b/node_modules/core-js/library/modules/$.same-value.js
deleted file mode 100644
index 8c2b8c7f6..000000000
--- a/node_modules/core-js/library/modules/$.same-value.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 7.2.9 SameValue(x, y)
-module.exports = Object.is || function is(x, y){
- return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.set-proto.js b/node_modules/core-js/library/modules/$.set-proto.js
deleted file mode 100644
index b1edd681d..000000000
--- a/node_modules/core-js/library/modules/$.set-proto.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Works with __proto__ only. Old v8 can't work with null proto objects.
-/* eslint-disable no-proto */
-var getDesc = require('./$').getDesc
- , isObject = require('./$.is-object')
- , anObject = require('./$.an-object');
-var check = function(O, proto){
- anObject(O);
- if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!");
-};
-module.exports = {
- set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
- function(test, buggy, set){
- try {
- set = require('./$.ctx')(Function.call, getDesc(Object.prototype, '__proto__').set, 2);
- set(test, []);
- buggy = !(test instanceof Array);
- } catch(e){ buggy = true; }
- return function setPrototypeOf(O, proto){
- check(O, proto);
- if(buggy)O.__proto__ = proto;
- else set(O, proto);
- return O;
- };
- }({}, false) : undefined),
- check: check
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.set-species.js b/node_modules/core-js/library/modules/$.set-species.js
deleted file mode 100644
index f6720c36d..000000000
--- a/node_modules/core-js/library/modules/$.set-species.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-var core = require('./$.core')
- , $ = require('./$')
- , DESCRIPTORS = require('./$.descriptors')
- , SPECIES = require('./$.wks')('species');
-
-module.exports = function(KEY){
- var C = core[KEY];
- if(DESCRIPTORS && C && !C[SPECIES])$.setDesc(C, SPECIES, {
- configurable: true,
- get: function(){ return this; }
- });
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.set-to-string-tag.js b/node_modules/core-js/library/modules/$.set-to-string-tag.js
deleted file mode 100644
index 22b342445..000000000
--- a/node_modules/core-js/library/modules/$.set-to-string-tag.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var def = require('./$').setDesc
- , has = require('./$.has')
- , TAG = require('./$.wks')('toStringTag');
-
-module.exports = function(it, tag, stat){
- if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.shared.js b/node_modules/core-js/library/modules/$.shared.js
deleted file mode 100644
index 8dea827ae..000000000
--- a/node_modules/core-js/library/modules/$.shared.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var global = require('./$.global')
- , SHARED = '__core-js_shared__'
- , store = global[SHARED] || (global[SHARED] = {});
-module.exports = function(key){
- return store[key] || (store[key] = {});
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.species-constructor.js b/node_modules/core-js/library/modules/$.species-constructor.js
deleted file mode 100644
index f71168b77..000000000
--- a/node_modules/core-js/library/modules/$.species-constructor.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 7.3.20 SpeciesConstructor(O, defaultConstructor)
-var anObject = require('./$.an-object')
- , aFunction = require('./$.a-function')
- , SPECIES = require('./$.wks')('species');
-module.exports = function(O, D){
- var C = anObject(O).constructor, S;
- return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.strict-new.js b/node_modules/core-js/library/modules/$.strict-new.js
deleted file mode 100644
index 8bab9ed15..000000000
--- a/node_modules/core-js/library/modules/$.strict-new.js
+++ /dev/null
@@ -1,4 +0,0 @@
-module.exports = function(it, Constructor, name){
- if(!(it instanceof Constructor))throw TypeError(name + ": use the 'new' operator!");
- return it;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.string-at.js b/node_modules/core-js/library/modules/$.string-at.js
deleted file mode 100644
index 3d344bba7..000000000
--- a/node_modules/core-js/library/modules/$.string-at.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var toInteger = require('./$.to-integer')
- , defined = require('./$.defined');
-// true -> String#at
-// false -> String#codePointAt
-module.exports = function(TO_STRING){
- return function(that, pos){
- var s = String(defined(that))
- , i = toInteger(pos)
- , l = s.length
- , a, b;
- if(i < 0 || i >= l)return TO_STRING ? '' : undefined;
- a = s.charCodeAt(i);
- return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
- ? TO_STRING ? s.charAt(i) : a
- : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
- };
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.string-context.js b/node_modules/core-js/library/modules/$.string-context.js
deleted file mode 100644
index d6485a43b..000000000
--- a/node_modules/core-js/library/modules/$.string-context.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// helper for String#{startsWith, endsWith, includes}
-var isRegExp = require('./$.is-regexp')
- , defined = require('./$.defined');
-
-module.exports = function(that, searchString, NAME){
- if(isRegExp(searchString))throw TypeError('String#' + NAME + " doesn't accept regex!");
- return String(defined(that));
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.string-pad.js b/node_modules/core-js/library/modules/$.string-pad.js
deleted file mode 100644
index f0507d934..000000000
--- a/node_modules/core-js/library/modules/$.string-pad.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// https://github.com/ljharb/proposal-string-pad-left-right
-var toLength = require('./$.to-length')
- , repeat = require('./$.string-repeat')
- , defined = require('./$.defined');
-
-module.exports = function(that, maxLength, fillString, left){
- var S = String(defined(that))
- , stringLength = S.length
- , fillStr = fillString === undefined ? ' ' : String(fillString)
- , intMaxLength = toLength(maxLength);
- if(intMaxLength <= stringLength)return S;
- if(fillStr == '')fillStr = ' ';
- var fillLen = intMaxLength - stringLength
- , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
- if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);
- return left ? stringFiller + S : S + stringFiller;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.string-repeat.js b/node_modules/core-js/library/modules/$.string-repeat.js
deleted file mode 100644
index 491d08535..000000000
--- a/node_modules/core-js/library/modules/$.string-repeat.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var toInteger = require('./$.to-integer')
- , defined = require('./$.defined');
-
-module.exports = function repeat(count){
- var str = String(defined(this))
- , res = ''
- , n = toInteger(count);
- if(n < 0 || n == Infinity)throw RangeError("Count can't be negative");
- for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;
- return res;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.string-trim.js b/node_modules/core-js/library/modules/$.string-trim.js
deleted file mode 100644
index 04423f4db..000000000
--- a/node_modules/core-js/library/modules/$.string-trim.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var $export = require('./$.export')
- , defined = require('./$.defined')
- , fails = require('./$.fails')
- , spaces = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
- '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'
- , space = '[' + spaces + ']'
- , non = '\u200b\u0085'
- , ltrim = RegExp('^' + space + space + '*')
- , rtrim = RegExp(space + space + '*$');
-
-var exporter = function(KEY, exec){
- var exp = {};
- exp[KEY] = exec(trim);
- $export($export.P + $export.F * fails(function(){
- return !!spaces[KEY]() || non[KEY]() != non;
- }), 'String', exp);
-};
-
-// 1 -> String#trimLeft
-// 2 -> String#trimRight
-// 3 -> String#trim
-var trim = exporter.trim = function(string, TYPE){
- string = String(defined(string));
- if(TYPE & 1)string = string.replace(ltrim, '');
- if(TYPE & 2)string = string.replace(rtrim, '');
- return string;
-};
-
-module.exports = exporter; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.task.js b/node_modules/core-js/library/modules/$.task.js
deleted file mode 100644
index 5d7759e61..000000000
--- a/node_modules/core-js/library/modules/$.task.js
+++ /dev/null
@@ -1,75 +0,0 @@
-var ctx = require('./$.ctx')
- , invoke = require('./$.invoke')
- , html = require('./$.html')
- , cel = require('./$.dom-create')
- , global = require('./$.global')
- , process = global.process
- , setTask = global.setImmediate
- , clearTask = global.clearImmediate
- , MessageChannel = global.MessageChannel
- , counter = 0
- , queue = {}
- , ONREADYSTATECHANGE = 'onreadystatechange'
- , defer, channel, port;
-var run = function(){
- var id = +this;
- if(queue.hasOwnProperty(id)){
- var fn = queue[id];
- delete queue[id];
- fn();
- }
-};
-var listner = function(event){
- run.call(event.data);
-};
-// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
-if(!setTask || !clearTask){
- setTask = function setImmediate(fn){
- var args = [], i = 1;
- while(arguments.length > i)args.push(arguments[i++]);
- queue[++counter] = function(){
- invoke(typeof fn == 'function' ? fn : Function(fn), args);
- };
- defer(counter);
- return counter;
- };
- clearTask = function clearImmediate(id){
- delete queue[id];
- };
- // Node.js 0.8-
- if(require('./$.cof')(process) == 'process'){
- defer = function(id){
- process.nextTick(ctx(run, id, 1));
- };
- // Browsers with MessageChannel, includes WebWorkers
- } else if(MessageChannel){
- channel = new MessageChannel;
- port = channel.port2;
- channel.port1.onmessage = listner;
- defer = ctx(port.postMessage, port, 1);
- // Browsers with postMessage, skip WebWorkers
- // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
- } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){
- defer = function(id){
- global.postMessage(id + '', '*');
- };
- global.addEventListener('message', listner, false);
- // IE8-
- } else if(ONREADYSTATECHANGE in cel('script')){
- defer = function(id){
- html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){
- html.removeChild(this);
- run.call(id);
- };
- };
- // Rest old browsers
- } else {
- defer = function(id){
- setTimeout(ctx(run, id, 1), 0);
- };
- }
-}
-module.exports = {
- set: setTask,
- clear: clearTask
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.to-index.js b/node_modules/core-js/library/modules/$.to-index.js
deleted file mode 100644
index 9346a8ff1..000000000
--- a/node_modules/core-js/library/modules/$.to-index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var toInteger = require('./$.to-integer')
- , max = Math.max
- , min = Math.min;
-module.exports = function(index, length){
- index = toInteger(index);
- return index < 0 ? max(index + length, 0) : min(index, length);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.to-integer.js b/node_modules/core-js/library/modules/$.to-integer.js
deleted file mode 100644
index f63baaff8..000000000
--- a/node_modules/core-js/library/modules/$.to-integer.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// 7.1.4 ToInteger
-var ceil = Math.ceil
- , floor = Math.floor;
-module.exports = function(it){
- return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.to-iobject.js b/node_modules/core-js/library/modules/$.to-iobject.js
deleted file mode 100644
index fcf54c82e..000000000
--- a/node_modules/core-js/library/modules/$.to-iobject.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// to indexed object, toObject with fallback for non-array-like ES3 strings
-var IObject = require('./$.iobject')
- , defined = require('./$.defined');
-module.exports = function(it){
- return IObject(defined(it));
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.to-length.js b/node_modules/core-js/library/modules/$.to-length.js
deleted file mode 100644
index 0e15b1b8c..000000000
--- a/node_modules/core-js/library/modules/$.to-length.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// 7.1.15 ToLength
-var toInteger = require('./$.to-integer')
- , min = Math.min;
-module.exports = function(it){
- return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.to-object.js b/node_modules/core-js/library/modules/$.to-object.js
deleted file mode 100644
index 2c57a29fa..000000000
--- a/node_modules/core-js/library/modules/$.to-object.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// 7.1.13 ToObject(argument)
-var defined = require('./$.defined');
-module.exports = function(it){
- return Object(defined(it));
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.to-primitive.js b/node_modules/core-js/library/modules/$.to-primitive.js
deleted file mode 100644
index 6fb4585a3..000000000
--- a/node_modules/core-js/library/modules/$.to-primitive.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// 7.1.1 ToPrimitive(input [, PreferredType])
-var isObject = require('./$.is-object');
-// instead of the ES6 spec version, we didn't implement @@toPrimitive case
-// and the second argument - flag - preferred type is a string
-module.exports = function(it, S){
- if(!isObject(it))return it;
- var fn, val;
- if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
- if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
- if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
- throw TypeError("Can't convert object to primitive value");
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.typed-array.js b/node_modules/core-js/library/modules/$.typed-array.js
deleted file mode 100644
index 1bd5cf0e8..000000000
--- a/node_modules/core-js/library/modules/$.typed-array.js
+++ /dev/null
@@ -1,365 +0,0 @@
-'use strict';
-if(require('./$.descriptors')){
- var LIBRARY = require('./$.library')
- , global = require('./$.global')
- , $ = require('./$')
- , fails = require('./$.fails')
- , $export = require('./$.export')
- , $typed = require('./$.typed')
- , $buffer = require('./$.buffer')
- , ctx = require('./$.ctx')
- , strictNew = require('./$.strict-new')
- , propertyDesc = require('./$.property-desc')
- , hide = require('./$.hide')
- , redefineAll = require('./$.redefine-all')
- , isInteger = require('./$.is-integer')
- , toInteger = require('./$.to-integer')
- , toLength = require('./$.to-length')
- , toIndex = require('./$.to-index')
- , toPrimitive = require('./$.to-primitive')
- , isObject = require('./$.is-object')
- , toObject = require('./$.to-object')
- , isArrayIter = require('./$.is-array-iter')
- , isIterable = require('./core.is-iterable')
- , getIterFn = require('./core.get-iterator-method')
- , wks = require('./$.wks')
- , createArrayMethod = require('./$.array-methods')
- , createArrayIncludes = require('./$.array-includes')
- , speciesConstructor = require('./$.species-constructor')
- , ArrayIterators = require('./es6.array.iterator')
- , Iterators = require('./$.iterators')
- , $iterDetect = require('./$.iter-detect')
- , setSpecies = require('./$.set-species')
- , arrayFill = require('./$.array-fill')
- , arrayCopyWithin = require('./$.array-copy-within')
- , ArrayProto = Array.prototype
- , $ArrayBuffer = $buffer.ArrayBuffer
- , $DataView = $buffer.DataView
- , setDesc = $.setDesc
- , getDesc = $.getDesc
- , arrayForEach = createArrayMethod(0)
- , arrayMap = createArrayMethod(1)
- , arrayFilter = createArrayMethod(2)
- , arraySome = createArrayMethod(3)
- , arrayEvery = createArrayMethod(4)
- , arrayFind = createArrayMethod(5)
- , arrayFindIndex = createArrayMethod(6)
- , arrayIncludes = createArrayIncludes(true)
- , arrayIndexOf = createArrayIncludes(false)
- , arrayValues = ArrayIterators.values
- , arrayKeys = ArrayIterators.keys
- , arrayEntries = ArrayIterators.entries
- , arrayLastIndexOf = ArrayProto.lastIndexOf
- , arrayReduce = ArrayProto.reduce
- , arrayReduceRight = ArrayProto.reduceRight
- , arrayJoin = ArrayProto.join
- , arrayReverse = ArrayProto.reverse
- , arraySort = ArrayProto.sort
- , arraySlice = ArrayProto.slice
- , arrayToString = ArrayProto.toString
- , arrayToLocaleString = ArrayProto.toLocaleString
- , ITERATOR = wks('iterator')
- , TAG = wks('toStringTag')
- , TYPED_CONSTRUCTOR = wks('typed_constructor')
- , DEF_CONSTRUCTOR = wks('def_constructor')
- , ALL_ARRAYS = $typed.ARRAYS
- , TYPED_ARRAY = $typed.TYPED
- , VIEW = $typed.VIEW
- , BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';
-
- var LITTLE_ENDIAN = fails(function(){
- return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;
- });
-
- var validate = function(it){
- if(isObject(it) && TYPED_ARRAY in it)return it;
- throw TypeError(it + ' is not a typed array!');
- };
-
- var fromList = function(O, list){
- var index = 0
- , length = list.length
- , result = allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);
- while(length > index)result[index] = list[index++];
- return result;
- };
-
- var allocate = function(C, length){
- if(!(isObject(C) && TYPED_CONSTRUCTOR in C)){
- throw TypeError('It is not a typed array constructor!');
- } return new C(length);
- };
-
- var $from = function from(source /*, mapfn, thisArg */){
- var O = toObject(source)
- , $$ = arguments
- , $$len = $$.length
- , mapfn = $$len > 1 ? $$[1] : undefined
- , mapping = mapfn !== undefined
- , iterFn = getIterFn(O)
- , i, length, values, result, step, iterator;
- if(iterFn != undefined && !isArrayIter(iterFn)){
- for(iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++){
- values.push(step.value);
- } O = values;
- }
- if(mapping && $$len > 2)mapfn = ctx(mapfn, $$[2], 2);
- for(i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++){
- result[i] = mapping ? mapfn(O[i], i) : O[i];
- }
- return result;
- };
-
- var addGetter = function(C, key, internal){
- setDesc(C.prototype, key, {get: function(){ return this._d[internal]; }});
- };
-
- var $of = function of(/*...items*/){
- var index = 0
- , length = arguments.length
- , result = allocate(this, length);
- while(length > index)result[index] = arguments[index++];
- return result;
- };
- var $toLocaleString = function toLocaleString(){
- return arrayToLocaleString.apply(validate(this), arguments);
- };
-
- var proto = {
- copyWithin: function copyWithin(target, start /*, end */){
- return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
- },
- every: function every(callbackfn /*, thisArg */){
- return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- fill: function fill(value /*, start, end */){ // eslint-disable-line no-unused-vars
- return arrayFill.apply(validate(this), arguments);
- },
- filter: function filter(callbackfn /*, thisArg */){
- return fromList(this, arrayFilter(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined));
- },
- find: function find(predicate /*, thisArg */){
- return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
- },
- findIndex: function findIndex(predicate /*, thisArg */){
- return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
- },
- forEach: function forEach(callbackfn /*, thisArg */){
- arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- indexOf: function indexOf(searchElement /*, fromIndex */){
- return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
- },
- includes: function includes(searchElement /*, fromIndex */){
- return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
- },
- join: function join(separator){ // eslint-disable-line no-unused-vars
- return arrayJoin.apply(validate(this), arguments);
- },
- lastIndexOf: function lastIndexOf(searchElement /*, fromIndex */){ // eslint-disable-line no-unused-vars
- return arrayLastIndexOf.apply(validate(this), arguments);
- },
- map: function map(mapfn /*, thisArg */){
- return fromList(this, arrayMap(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined)); // TODO
- },
- reduce: function reduce(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
- return arrayReduce.apply(validate(this), arguments);
- },
- reduceRight: function reduceRight(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
- return arrayReduceRight.apply(validate(this), arguments);
- },
- reverse: function reverse(){
- return arrayReverse.call(validate(this));
- },
- set: function set(arrayLike /*, offset */){
- validate(this);
- var offset = toInteger(arguments.length > 1 ? arguments[1] : undefined);
- if(offset < 0)throw RangeError();
- var length = this.length;
- var src = toObject(arrayLike);
- var index = 0;
- var len = toLength(src.length);
- if(len + offset > length)throw RangeError();
- while(index < len)this[offset + index] = src[index++];
- },
- slice: function slice(start, end){
- return fromList(this, arraySlice.call(validate(this), start, end)); // TODO
- },
- some: function some(callbackfn /*, thisArg */){
- return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- sort: function sort(comparefn){
- return arraySort.call(validate(this), comparefn);
- },
- subarray: function subarray(begin, end){
- var O = validate(this)
- , length = O.length
- , $begin = toIndex(begin, length);
- return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(
- O.buffer,
- O.byteOffset + $begin * O.BYTES_PER_ELEMENT,
- toLength((end === undefined ? length : toIndex(end, length)) - $begin)
- );
- },
- entries: function entries(){
- return arrayEntries.call(validate(this));
- },
- keys: function keys(){
- return arrayKeys.call(validate(this));
- },
- values: function values(){
- return arrayValues.call(validate(this));
- }
- };
-
- var isTAIndex = function(target, key){
- return isObject(target)
- && TYPED_ARRAY in target
- && typeof key != 'symbol'
- && key in target
- && String(+key) == String(key);
- };
- var $getDesc = function getOwnPropertyDescriptor(target, key){
- return isTAIndex(target, key = toPrimitive(key, true))
- ? propertyDesc(2, target[key])
- : getDesc(target, key);
- };
- var $setDesc = function defineProperty(target, key, desc){
- if(isTAIndex(target, key = toPrimitive(key, true)) && isObject(desc)){
- if('value' in desc)target[key] = desc.value;
- return target;
- } else return setDesc(target, key, desc);
- };
-
- if(!ALL_ARRAYS){
- $.getDesc = $getDesc;
- $.setDesc = $setDesc;
- }
-
- $export($export.S + $export.F * !ALL_ARRAYS, 'Object', {
- getOwnPropertyDescriptor: $getDesc,
- defineProperty: $setDesc
- });
-
- var $TypedArrayPrototype$ = redefineAll({}, proto);
- redefineAll($TypedArrayPrototype$, {
- constructor: function(){ /* noop */ },
- toString: arrayToString,
- toLocaleString: $toLocaleString
- });
- $.setDesc($TypedArrayPrototype$, TAG, {
- get: function(){ return this[TYPED_ARRAY]; }
- });
-
- module.exports = function(KEY, BYTES, wrapper, CLAMPED){
- CLAMPED = !!CLAMPED;
- var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'
- , GETTER = 'get' + KEY
- , SETTER = 'set' + KEY
- , TypedArray = global[NAME]
- , Base = TypedArray || {}
- , FORCED = !TypedArray || !$typed.ABV
- , $iterator = proto.values
- , O = {};
- var addElement = function(that, index){
- setDesc(that, index, {
- get: function(){
- var data = this._d;
- return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);
- },
- set: function(it){
- var data = this._d;
- if(CLAMPED)it = (it = Math.round(it)) < 0 ? 0 : it > 0xff ? 0xff : it & 0xff;
- data.v[SETTER](index * BYTES + data.o, it, LITTLE_ENDIAN);
- },
- enumerable: true
- });
- };
- if(!$ArrayBuffer)return;
- if(FORCED){
- TypedArray = wrapper(function(that, data, $offset, $length){
- strictNew(that, TypedArray, NAME);
- var index = 0
- , offset = 0
- , buffer, byteLength, length;
- if(!isObject(data)){
- byteLength = toInteger(data) * BYTES;
- buffer = new $ArrayBuffer(byteLength);
- // TODO TA case
- } else if(data instanceof $ArrayBuffer){
- buffer = data;
- offset = toInteger($offset);
- if(offset < 0 || offset % BYTES)throw RangeError();
- var $len = data.byteLength;
- if($length === undefined){
- if($len % BYTES)throw RangeError();
- byteLength = $len - offset;
- if(byteLength < 0)throw RangeError();
- } else {
- byteLength = toLength($length) * BYTES;
- if(byteLength + offset > $len)throw RangeError();
- }
- } else return $from.call(TypedArray, data);
- length = byteLength / BYTES;
- hide(that, '_d', {
- b: buffer,
- o: offset,
- l: byteLength,
- e: length,
- v: new $DataView(buffer)
- });
- while(index < length)addElement(that, index++);
- });
- TypedArray.prototype = $.create($TypedArrayPrototype$);
- addGetter(TypedArray, 'buffer', 'b');
- addGetter(TypedArray, 'byteOffset', 'o');
- addGetter(TypedArray, 'byteLength', 'l');
- addGetter(TypedArray, 'length', 'e');
- hide(TypedArray, BYTES_PER_ELEMENT, BYTES);
- hide(TypedArray.prototype, BYTES_PER_ELEMENT, BYTES);
- hide(TypedArray.prototype, 'constructor', TypedArray);
- } else if(!$iterDetect(function(iter){
- new TypedArray(iter); // eslint-disable-line no-new
- }, true)){
- TypedArray = wrapper(function(that, data, $offset, $length){
- strictNew(that, TypedArray, NAME);
- if(isObject(data) && isIterable(data))return $from.call(TypedArray, data);
- return $length === undefined ? new Base(data, $offset) : new Base(data, $offset, $length);
- });
- TypedArray.prototype = Base.prototype;
- if(!LIBRARY)TypedArray.prototype.constructor = TypedArray;
- }
- var TypedArrayPrototype = TypedArray.prototype;
- var $nativeIterator = TypedArrayPrototype[ITERATOR];
- hide(TypedArray, TYPED_CONSTRUCTOR, true);
- hide(TypedArrayPrototype, TYPED_ARRAY, NAME);
- hide(TypedArrayPrototype, VIEW, true);
- hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);
- TAG in TypedArrayPrototype || $.setDesc(TypedArrayPrototype, TAG, {
- get: function(){ return NAME; }
- });
-
- O[NAME] = TypedArray;
-
- $export($export.G + $export.W + $export.F * (TypedArray != Base), O);
-
- $export($export.S + $export.F * (TypedArray != Base), NAME, {
- BYTES_PER_ELEMENT: BYTES,
- from: Base.from || $from,
- of: Base.of || $of
- });
-
- $export($export.P + $export.F * FORCED, NAME, proto);
-
- $export($export.P + $export.F * (TypedArrayPrototype.toString != arrayToString), NAME, {toString: arrayToString});
-
- $export($export.P + $export.F * fails(function(){
- return [1, 2].toLocaleString() != new Typed([1, 2]).toLocaleString()
- }), NAME, {toLocaleString: $toLocaleString});
-
- Iterators[NAME] = $nativeIterator || $iterator;
- LIBRARY || $nativeIterator || hide(TypedArrayPrototype, ITERATOR, $iterator);
-
- setSpecies(NAME);
- };
-} else module.exports = function(){ /* empty */}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.typed.js b/node_modules/core-js/library/modules/$.typed.js
deleted file mode 100644
index ced241268..000000000
--- a/node_modules/core-js/library/modules/$.typed.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var global = require('./$.global')
- , hide = require('./$.hide')
- , uid = require('./$.uid')
- , TYPED = uid('typed_array')
- , VIEW = uid('view')
- , ABV = !!(global.ArrayBuffer && global.DataView)
- , ARRAYS = true
- , i = 0, l = 9;
-
-var TypedArrayConstructors = [
- 'Int8Array',
- 'Uint8Array',
- 'Uint8ClampedArray',
- 'Int16Array',
- 'Uint16Array',
- 'Int32Array',
- 'Uint32Array',
- 'Float32Array',
- 'Float64Array'
-];
-
-while(i < l){
- var Typed = global[TypedArrayConstructors[i++]];
- if(Typed){
- hide(Typed.prototype, TYPED, true);
- hide(Typed.prototype, VIEW, true);
- } else ARRAYS = false;
-}
-
-module.exports = {
- ARRAYS: ARRAYS,
- ABV: ABV,
- CONSTR: ARRAYS && ABV,
- TYPED: TYPED,
- VIEW: VIEW
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.uid.js b/node_modules/core-js/library/modules/$.uid.js
deleted file mode 100644
index 3be4196bb..000000000
--- a/node_modules/core-js/library/modules/$.uid.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var id = 0
- , px = Math.random();
-module.exports = function(key){
- return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/$.wks.js b/node_modules/core-js/library/modules/$.wks.js
deleted file mode 100644
index 87a3d29ae..000000000
--- a/node_modules/core-js/library/modules/$.wks.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var store = require('./$.shared')('wks')
- , uid = require('./$.uid')
- , Symbol = require('./$.global').Symbol;
-module.exports = function(name){
- return store[name] || (store[name] =
- Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));
-}; \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/core.delay.js b/node_modules/core-js/library/modules/core.delay.js
index 3e19ef390..ea031be4a 100644
--- a/node_modules/core-js/library/modules/core.delay.js
+++ b/node_modules/core-js/library/modules/core.delay.js
@@ -1,7 +1,7 @@
-var global = require('./$.global')
- , core = require('./$.core')
- , $export = require('./$.export')
- , partial = require('./$.partial');
+var global = require('./_global')
+ , core = require('./_core')
+ , $export = require('./_export')
+ , partial = require('./_partial');
// https://esdiscuss.org/topic/promise-returning-delay-function
$export($export.G + $export.F, {
delay: function delay(time){
diff --git a/node_modules/core-js/library/modules/core.dict.js b/node_modules/core-js/library/modules/core.dict.js
index df3149887..88c54e3d7 100644
--- a/node_modules/core-js/library/modules/core.dict.js
+++ b/node_modules/core-js/library/modules/core.dict.js
@@ -1,20 +1,22 @@
'use strict';
-var $ = require('./$')
- , ctx = require('./$.ctx')
- , $export = require('./$.export')
- , createDesc = require('./$.property-desc')
- , assign = require('./$.object-assign')
- , keyOf = require('./$.keyof')
- , aFunction = require('./$.a-function')
- , forOf = require('./$.for-of')
- , isIterable = require('./core.is-iterable')
- , $iterCreate = require('./$.iter-create')
- , step = require('./$.iter-step')
- , isObject = require('./$.is-object')
- , toIObject = require('./$.to-iobject')
- , DESCRIPTORS = require('./$.descriptors')
- , has = require('./$.has')
- , getKeys = $.getKeys;
+var ctx = require('./_ctx')
+ , $export = require('./_export')
+ , createDesc = require('./_property-desc')
+ , assign = require('./_object-assign')
+ , create = require('./_object-create')
+ , getPrototypeOf = require('./_object-gpo')
+ , getKeys = require('./_object-keys')
+ , dP = require('./_object-dp')
+ , keyOf = require('./_keyof')
+ , aFunction = require('./_a-function')
+ , forOf = require('./_for-of')
+ , isIterable = require('./core.is-iterable')
+ , $iterCreate = require('./_iter-create')
+ , step = require('./_iter-step')
+ , isObject = require('./_is-object')
+ , toIObject = require('./_to-iobject')
+ , DESCRIPTORS = require('./_descriptors')
+ , has = require('./_has');
// 0 -> Dict.forEach
// 1 -> Dict.map
@@ -81,7 +83,7 @@ $iterCreate(DictIterator, 'Dict', function(){
});
function Dict(iterable){
- var dict = $.create(null);
+ var dict = create(null);
if(iterable != undefined){
if(isIterable(iterable)){
forOf(iterable, true, function(key, value){
@@ -120,13 +122,13 @@ function get(object, key){
if(has(object, key))return object[key];
}
function set(object, key, value){
- if(DESCRIPTORS && key in Object)$.setDesc(object, key, createDesc(0, value));
+ if(DESCRIPTORS && key in Object)dP.f(object, key, createDesc(0, value));
else object[key] = value;
return object;
}
function isDict(it){
- return isObject(it) && $.getProto(it) === Dict.prototype;
+ return isObject(it) && getPrototypeOf(it) === Dict.prototype;
}
$export($export.G + $export.F, {Dict: Dict});
diff --git a/node_modules/core-js/library/modules/core.function.part.js b/node_modules/core-js/library/modules/core.function.part.js
index 9943b3077..ce851ff84 100644
--- a/node_modules/core-js/library/modules/core.function.part.js
+++ b/node_modules/core-js/library/modules/core.function.part.js
@@ -1,7 +1,7 @@
-var path = require('./$.path')
- , $export = require('./$.export');
+var path = require('./_path')
+ , $export = require('./_export');
// Placeholder
-require('./$.core')._ = path._ = path._ || {};
+require('./_core')._ = path._ = path._ || {};
-$export($export.P + $export.F, 'Function', {part: require('./$.partial')}); \ No newline at end of file
+$export($export.P + $export.F, 'Function', {part: require('./_partial')}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/core.get-iterator-method.js b/node_modules/core-js/library/modules/core.get-iterator-method.js
index 02db743c3..e2c7ecc3d 100644
--- a/node_modules/core-js/library/modules/core.get-iterator-method.js
+++ b/node_modules/core-js/library/modules/core.get-iterator-method.js
@@ -1,7 +1,7 @@
-var classof = require('./$.classof')
- , ITERATOR = require('./$.wks')('iterator')
- , Iterators = require('./$.iterators');
-module.exports = require('./$.core').getIteratorMethod = function(it){
+var classof = require('./_classof')
+ , ITERATOR = require('./_wks')('iterator')
+ , Iterators = require('./_iterators');
+module.exports = require('./_core').getIteratorMethod = function(it){
if(it != undefined)return it[ITERATOR]
|| it['@@iterator']
|| Iterators[classof(it)];
diff --git a/node_modules/core-js/library/modules/core.get-iterator.js b/node_modules/core-js/library/modules/core.get-iterator.js
index 7290904a6..c292e1ab1 100644
--- a/node_modules/core-js/library/modules/core.get-iterator.js
+++ b/node_modules/core-js/library/modules/core.get-iterator.js
@@ -1,6 +1,6 @@
-var anObject = require('./$.an-object')
+var anObject = require('./_an-object')
, get = require('./core.get-iterator-method');
-module.exports = require('./$.core').getIterator = function(it){
+module.exports = require('./_core').getIterator = function(it){
var iterFn = get(it);
if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');
return anObject(iterFn.call(it));
diff --git a/node_modules/core-js/library/modules/core.is-iterable.js b/node_modules/core-js/library/modules/core.is-iterable.js
index c27e6588f..b2b01b6bb 100644
--- a/node_modules/core-js/library/modules/core.is-iterable.js
+++ b/node_modules/core-js/library/modules/core.is-iterable.js
@@ -1,7 +1,7 @@
-var classof = require('./$.classof')
- , ITERATOR = require('./$.wks')('iterator')
- , Iterators = require('./$.iterators');
-module.exports = require('./$.core').isIterable = function(it){
+var classof = require('./_classof')
+ , ITERATOR = require('./_wks')('iterator')
+ , Iterators = require('./_iterators');
+module.exports = require('./_core').isIterable = function(it){
var O = Object(it);
return O[ITERATOR] !== undefined
|| '@@iterator' in O
diff --git a/node_modules/core-js/library/modules/core.log.js b/node_modules/core-js/library/modules/core.log.js
deleted file mode 100644
index 4c0ea53da..000000000
--- a/node_modules/core-js/library/modules/core.log.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var $ = require('./$')
- , global = require('./$.global')
- , $export = require('./$.export')
- , log = {}
- , enabled = true;
-// Methods from https://github.com/DeveloperToolsWG/console-object/blob/master/api.md
-$.each.call((
- 'assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,' +
- 'info,isIndependentlyComposed,log,markTimeline,profile,profileEnd,table,' +
- 'time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn'
-).split(','), function(key){
- log[key] = function(){
- var $console = global.console;
- if(enabled && $console && $console[key]){
- return Function.apply.call($console[key], $console, arguments);
- }
- };
-});
-$export($export.G + $export.F, {log: require('./$.object-assign')(log.log, log, {
- enable: function(){
- enabled = true;
- },
- disable: function(){
- enabled = false;
- }
-})}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/core.number.iterator.js b/node_modules/core-js/library/modules/core.number.iterator.js
index d92737808..9700acba0 100644
--- a/node_modules/core-js/library/modules/core.number.iterator.js
+++ b/node_modules/core-js/library/modules/core.number.iterator.js
@@ -1,5 +1,5 @@
'use strict';
-require('./$.iter-define')(Number, 'Number', function(iterated){
+require('./_iter-define')(Number, 'Number', function(iterated){
this._l = +iterated;
this._i = 0;
}, function(){
diff --git a/node_modules/core-js/library/modules/core.object.classof.js b/node_modules/core-js/library/modules/core.object.classof.js
index df682e446..342c73713 100644
--- a/node_modules/core-js/library/modules/core.object.classof.js
+++ b/node_modules/core-js/library/modules/core.object.classof.js
@@ -1,3 +1,3 @@
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.S + $export.F, 'Object', {classof: require('./$.classof')}); \ No newline at end of file
+$export($export.S + $export.F, 'Object', {classof: require('./_classof')}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/core.object.define.js b/node_modules/core-js/library/modules/core.object.define.js
index fe4cbe9b3..d60e9a951 100644
--- a/node_modules/core-js/library/modules/core.object.define.js
+++ b/node_modules/core-js/library/modules/core.object.define.js
@@ -1,4 +1,4 @@
-var $export = require('./$.export')
- , define = require('./$.object-define');
+var $export = require('./_export')
+ , define = require('./_object-define');
$export($export.S + $export.F, 'Object', {define: define}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/core.object.is-object.js b/node_modules/core-js/library/modules/core.object.is-object.js
index c60a977af..f2ba059fb 100644
--- a/node_modules/core-js/library/modules/core.object.is-object.js
+++ b/node_modules/core-js/library/modules/core.object.is-object.js
@@ -1,3 +1,3 @@
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.S + $export.F, 'Object', {isObject: require('./$.is-object')}); \ No newline at end of file
+$export($export.S + $export.F, 'Object', {isObject: require('./_is-object')}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/core.object.make.js b/node_modules/core-js/library/modules/core.object.make.js
index 95b999617..3d2a2b5f5 100644
--- a/node_modules/core-js/library/modules/core.object.make.js
+++ b/node_modules/core-js/library/modules/core.object.make.js
@@ -1,6 +1,6 @@
-var $export = require('./$.export')
- , define = require('./$.object-define')
- , create = require('./$').create;
+var $export = require('./_export')
+ , define = require('./_object-define')
+ , create = require('./_object-create');
$export($export.S + $export.F, 'Object', {
make: function(proto, mixin){
diff --git a/node_modules/core-js/library/modules/core.string.escape-html.js b/node_modules/core-js/library/modules/core.string.escape-html.js
index 81737e750..a4b8d2f02 100644
--- a/node_modules/core-js/library/modules/core.string.escape-html.js
+++ b/node_modules/core-js/library/modules/core.string.escape-html.js
@@ -1,6 +1,6 @@
'use strict';
-var $export = require('./$.export');
-var $re = require('./$.replacer')(/[&<>"']/g, {
+var $export = require('./_export');
+var $re = require('./_replacer')(/[&<>"']/g, {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
diff --git a/node_modules/core-js/library/modules/core.string.unescape-html.js b/node_modules/core-js/library/modules/core.string.unescape-html.js
index 9d7a3d2c8..413622b94 100644
--- a/node_modules/core-js/library/modules/core.string.unescape-html.js
+++ b/node_modules/core-js/library/modules/core.string.unescape-html.js
@@ -1,6 +1,6 @@
'use strict';
-var $export = require('./$.export');
-var $re = require('./$.replacer')(/&(?:amp|lt|gt|quot|apos);/g, {
+var $export = require('./_export');
+var $re = require('./_replacer')(/&(?:amp|lt|gt|quot|apos);/g, {
'&amp;': '&',
'&lt;': '<',
'&gt;': '>',
diff --git a/node_modules/core-js/library/modules/es5.js b/node_modules/core-js/library/modules/es5.js
index 50f72b047..dd7ebadf8 100644
--- a/node_modules/core-js/library/modules/es5.js
+++ b/node_modules/core-js/library/modules/es5.js
@@ -1,276 +1,35 @@
-'use strict';
-var $ = require('./$')
- , $export = require('./$.export')
- , DESCRIPTORS = require('./$.descriptors')
- , createDesc = require('./$.property-desc')
- , html = require('./$.html')
- , cel = require('./$.dom-create')
- , has = require('./$.has')
- , cof = require('./$.cof')
- , invoke = require('./$.invoke')
- , fails = require('./$.fails')
- , anObject = require('./$.an-object')
- , aFunction = require('./$.a-function')
- , isObject = require('./$.is-object')
- , toObject = require('./$.to-object')
- , toIObject = require('./$.to-iobject')
- , toInteger = require('./$.to-integer')
- , toIndex = require('./$.to-index')
- , toLength = require('./$.to-length')
- , IObject = require('./$.iobject')
- , IE_PROTO = require('./$.uid')('__proto__')
- , createArrayMethod = require('./$.array-methods')
- , arrayIndexOf = require('./$.array-includes')(false)
- , ObjectProto = Object.prototype
- , ArrayProto = Array.prototype
- , arraySlice = ArrayProto.slice
- , arrayJoin = ArrayProto.join
- , defineProperty = $.setDesc
- , getOwnDescriptor = $.getDesc
- , defineProperties = $.setDescs
- , factories = {}
- , IE8_DOM_DEFINE;
-
-if(!DESCRIPTORS){
- IE8_DOM_DEFINE = !fails(function(){
- return defineProperty(cel('div'), 'a', {get: function(){ return 7; }}).a != 7;
- });
- $.setDesc = function(O, P, Attributes){
- if(IE8_DOM_DEFINE)try {
- return defineProperty(O, P, Attributes);
- } catch(e){ /* empty */ }
- if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
- if('value' in Attributes)anObject(O)[P] = Attributes.value;
- return O;
- };
- $.getDesc = function(O, P){
- if(IE8_DOM_DEFINE)try {
- return getOwnDescriptor(O, P);
- } catch(e){ /* empty */ }
- if(has(O, P))return createDesc(!ObjectProto.propertyIsEnumerable.call(O, P), O[P]);
- };
- $.setDescs = defineProperties = function(O, Properties){
- anObject(O);
- var keys = $.getKeys(Properties)
- , length = keys.length
- , i = 0
- , P;
- while(length > i)$.setDesc(O, P = keys[i++], Properties[P]);
- return O;
- };
-}
-$export($export.S + $export.F * !DESCRIPTORS, 'Object', {
- // 19.1.2.6 / 15.2.3.3 Object.getOwnPropertyDescriptor(O, P)
- getOwnPropertyDescriptor: $.getDesc,
- // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
- defineProperty: $.setDesc,
- // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
- defineProperties: defineProperties
-});
-
- // IE 8- don't enum bug keys
-var keys1 = ('constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,' +
- 'toLocaleString,toString,valueOf').split(',')
- // Additional keys for getOwnPropertyNames
- , keys2 = keys1.concat('length', 'prototype')
- , keysLen1 = keys1.length;
-
-// Create object with `null` prototype: use iframe Object with cleared prototype
-var createDict = function(){
- // Thrash, waste and sodomy: IE GC bug
- var iframe = cel('iframe')
- , i = keysLen1
- , gt = '>'
- , iframeDocument;
- iframe.style.display = 'none';
- html.appendChild(iframe);
- iframe.src = 'javascript:'; // eslint-disable-line no-script-url
- // createDict = iframe.contentWindow.Object;
- // html.removeChild(iframe);
- iframeDocument = iframe.contentWindow.document;
- iframeDocument.open();
- iframeDocument.write('<script>document.F=Object</script' + gt);
- iframeDocument.close();
- createDict = iframeDocument.F;
- while(i--)delete createDict.prototype[keys1[i]];
- return createDict();
-};
-var createGetKeys = function(names, length){
- return function(object){
- var O = toIObject(object)
- , i = 0
- , result = []
- , key;
- for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
- // Don't enum bug & hidden keys
- while(length > i)if(has(O, key = names[i++])){
- ~arrayIndexOf(result, key) || result.push(key);
- }
- return result;
- };
-};
-var Empty = function(){};
-$export($export.S, 'Object', {
- // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
- getPrototypeOf: $.getProto = $.getProto || function(O){
- O = toObject(O);
- if(has(O, IE_PROTO))return O[IE_PROTO];
- if(typeof O.constructor == 'function' && O instanceof O.constructor){
- return O.constructor.prototype;
- } return O instanceof Object ? ObjectProto : null;
- },
- // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
- getOwnPropertyNames: $.getNames = $.getNames || createGetKeys(keys2, keys2.length, true),
- // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
- create: $.create = $.create || function(O, /*?*/Properties){
- var result;
- if(O !== null){
- Empty.prototype = anObject(O);
- result = new Empty();
- Empty.prototype = null;
- // add "__proto__" for Object.getPrototypeOf shim
- result[IE_PROTO] = O;
- } else result = createDict();
- return Properties === undefined ? result : defineProperties(result, Properties);
- },
- // 19.1.2.14 / 15.2.3.14 Object.keys(O)
- keys: $.getKeys = $.getKeys || createGetKeys(keys1, keysLen1, false)
-});
-
-var construct = function(F, len, args){
- if(!(len in factories)){
- for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';
- factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
- }
- return factories[len](F, args);
-};
-
-// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
-$export($export.P, 'Function', {
- bind: function bind(that /*, args... */){
- var fn = aFunction(this)
- , partArgs = arraySlice.call(arguments, 1);
- var bound = function(/* args... */){
- var args = partArgs.concat(arraySlice.call(arguments));
- return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
- };
- if(isObject(fn.prototype))bound.prototype = fn.prototype;
- return bound;
- }
-});
-
-// fallback for not array-like ES3 strings and DOM objects
-$export($export.P + $export.F * fails(function(){
- if(html)arraySlice.call(html);
-}), 'Array', {
- slice: function(begin, end){
- var len = toLength(this.length)
- , klass = cof(this);
- end = end === undefined ? len : end;
- if(klass == 'Array')return arraySlice.call(this, begin, end);
- var start = toIndex(begin, len)
- , upTo = toIndex(end, len)
- , size = toLength(upTo - start)
- , cloned = Array(size)
- , i = 0;
- for(; i < size; i++)cloned[i] = klass == 'String'
- ? this.charAt(start + i)
- : this[start + i];
- return cloned;
- }
-});
-$export($export.P + $export.F * (IObject != Object), 'Array', {
- join: function join(separator){
- return arrayJoin.call(IObject(this), separator === undefined ? ',' : separator);
- }
-});
-
-// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
-$export($export.S, 'Array', {isArray: require('./$.is-array')});
-
-var createArrayReduce = function(isRight){
- return function(callbackfn, memo){
- aFunction(callbackfn);
- var O = IObject(this)
- , length = toLength(O.length)
- , index = isRight ? length - 1 : 0
- , i = isRight ? -1 : 1;
- if(arguments.length < 2)for(;;){
- if(index in O){
- memo = O[index];
- index += i;
- break;
- }
- index += i;
- if(isRight ? index < 0 : length <= index){
- throw TypeError('Reduce of empty array with no initial value');
- }
- }
- for(;isRight ? index >= 0 : length > index; index += i)if(index in O){
- memo = callbackfn(memo, O[index], index, this);
- }
- return memo;
- };
-};
-
-var methodize = function($fn){
- return function(arg1/*, arg2 = undefined */){
- return $fn(this, arg1, arguments[1]);
- };
-};
-
-$export($export.P, 'Array', {
- // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
- forEach: $.each = $.each || methodize(createArrayMethod(0)),
- // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
- map: methodize(createArrayMethod(1)),
- // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
- filter: methodize(createArrayMethod(2)),
- // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
- some: methodize(createArrayMethod(3)),
- // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
- every: methodize(createArrayMethod(4)),
- // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
- reduce: createArrayReduce(false),
- // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
- reduceRight: createArrayReduce(true),
- // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
- indexOf: methodize(arrayIndexOf),
- // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
- lastIndexOf: function(el, fromIndex /* = @[*-1] */){
- var O = toIObject(this)
- , length = toLength(O.length)
- , index = length - 1;
- if(arguments.length > 1)index = Math.min(index, toInteger(fromIndex));
- if(index < 0)index = toLength(length + index);
- for(;index >= 0; index--)if(index in O)if(O[index] === el)return index;
- return -1;
- }
-});
-
-// 20.3.3.1 / 15.9.4.4 Date.now()
-$export($export.S, 'Date', {now: function(){ return +new Date; }});
-
-var lz = function(num){
- return num > 9 ? num : '0' + num;
-};
-
-// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
-// PhantomJS / old WebKit has a broken implementations
-$export($export.P + $export.F * (fails(function(){
- return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';
-}) || !fails(function(){
- new Date(NaN).toISOString();
-})), 'Date', {
- toISOString: function toISOString(){
- if(!isFinite(this))throw RangeError('Invalid time value');
- var d = this
- , y = d.getUTCFullYear()
- , m = d.getUTCMilliseconds()
- , s = y < 0 ? '-' : y > 9999 ? '+' : '';
- return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
- '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
- 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
- ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
- }
-}); \ No newline at end of file
+// This file still here for a legacy code and will be removed in a near time
+require('./es6.object.create');
+require('./es6.object.define-property');
+require('./es6.object.define-properties');
+require('./es6.object.get-own-property-descriptor');
+require('./es6.object.get-prototype-of');
+require('./es6.object.keys');
+require('./es6.object.get-own-property-names');
+require('./es6.object.freeze');
+require('./es6.object.seal');
+require('./es6.object.prevent-extensions');
+require('./es6.object.is-frozen');
+require('./es6.object.is-sealed');
+require('./es6.object.is-extensible');
+require('./es6.function.bind');
+require('./es6.array.is-array');
+require('./es6.array.join');
+require('./es6.array.slice');
+require('./es6.array.sort');
+require('./es6.array.for-each');
+require('./es6.array.map');
+require('./es6.array.filter');
+require('./es6.array.some');
+require('./es6.array.every');
+require('./es6.array.reduce');
+require('./es6.array.reduce-right');
+require('./es6.array.index-of');
+require('./es6.array.last-index-of');
+require('./es6.date.now');
+require('./es6.date.to-iso-string');
+require('./es6.date.to-json');
+require('./es6.parse-int');
+require('./es6.parse-float');
+require('./es6.string.trim');
+require('./es6.regexp.to-string'); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.array.copy-within.js b/node_modules/core-js/library/modules/es6.array.copy-within.js
index 930ba78d4..027f7550e 100644
--- a/node_modules/core-js/library/modules/es6.array.copy-within.js
+++ b/node_modules/core-js/library/modules/es6.array.copy-within.js
@@ -1,6 +1,6 @@
// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.P, 'Array', {copyWithin: require('./$.array-copy-within')});
+$export($export.P, 'Array', {copyWithin: require('./_array-copy-within')});
-require('./$.add-to-unscopables')('copyWithin'); \ No newline at end of file
+require('./_add-to-unscopables')('copyWithin'); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.array.fill.js b/node_modules/core-js/library/modules/es6.array.fill.js
index c3b3e2e5d..f075c0018 100644
--- a/node_modules/core-js/library/modules/es6.array.fill.js
+++ b/node_modules/core-js/library/modules/es6.array.fill.js
@@ -1,6 +1,6 @@
// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.P, 'Array', {fill: require('./$.array-fill')});
+$export($export.P, 'Array', {fill: require('./_array-fill')});
-require('./$.add-to-unscopables')('fill'); \ No newline at end of file
+require('./_add-to-unscopables')('fill'); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.array.find-index.js b/node_modules/core-js/library/modules/es6.array.find-index.js
index 7224a6062..530907412 100644
--- a/node_modules/core-js/library/modules/es6.array.find-index.js
+++ b/node_modules/core-js/library/modules/es6.array.find-index.js
@@ -1,7 +1,7 @@
'use strict';
// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
-var $export = require('./$.export')
- , $find = require('./$.array-methods')(6)
+var $export = require('./_export')
+ , $find = require('./_array-methods')(6)
, KEY = 'findIndex'
, forced = true;
// Shouldn't skip holes
@@ -11,4 +11,4 @@ $export($export.P + $export.F * forced, 'Array', {
return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});
-require('./$.add-to-unscopables')(KEY); \ No newline at end of file
+require('./_add-to-unscopables')(KEY); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.array.find.js b/node_modules/core-js/library/modules/es6.array.find.js
index 199e987e7..90a9acfbe 100644
--- a/node_modules/core-js/library/modules/es6.array.find.js
+++ b/node_modules/core-js/library/modules/es6.array.find.js
@@ -1,7 +1,7 @@
'use strict';
// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
-var $export = require('./$.export')
- , $find = require('./$.array-methods')(5)
+var $export = require('./_export')
+ , $find = require('./_array-methods')(5)
, KEY = 'find'
, forced = true;
// Shouldn't skip holes
@@ -11,4 +11,4 @@ $export($export.P + $export.F * forced, 'Array', {
return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});
-require('./$.add-to-unscopables')(KEY); \ No newline at end of file
+require('./_add-to-unscopables')(KEY); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.array.from.js b/node_modules/core-js/library/modules/es6.array.from.js
index 4637d8d24..69e5d4a62 100644
--- a/node_modules/core-js/library/modules/es6.array.from.js
+++ b/node_modules/core-js/library/modules/es6.array.from.js
@@ -1,33 +1,34 @@
'use strict';
-var ctx = require('./$.ctx')
- , $export = require('./$.export')
- , toObject = require('./$.to-object')
- , call = require('./$.iter-call')
- , isArrayIter = require('./$.is-array-iter')
- , toLength = require('./$.to-length')
- , getIterFn = require('./core.get-iterator-method');
-$export($export.S + $export.F * !require('./$.iter-detect')(function(iter){ Array.from(iter); }), 'Array', {
+var ctx = require('./_ctx')
+ , $export = require('./_export')
+ , toObject = require('./_to-object')
+ , call = require('./_iter-call')
+ , isArrayIter = require('./_is-array-iter')
+ , toLength = require('./_to-length')
+ , createProperty = require('./_create-property')
+ , getIterFn = require('./core.get-iterator-method');
+
+$export($export.S + $export.F * !require('./_iter-detect')(function(iter){ Array.from(iter); }), 'Array', {
// 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
var O = toObject(arrayLike)
, C = typeof this == 'function' ? this : Array
- , $$ = arguments
- , $$len = $$.length
- , mapfn = $$len > 1 ? $$[1] : undefined
+ , aLen = arguments.length
+ , mapfn = aLen > 1 ? arguments[1] : undefined
, mapping = mapfn !== undefined
, index = 0
, iterFn = getIterFn(O)
, length, result, step, iterator;
- if(mapping)mapfn = ctx(mapfn, $$len > 2 ? $$[2] : undefined, 2);
+ if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
// if object isn't iterable or it's array with default iterator - use simple case
if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){
for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){
- result[index] = mapping ? call(iterator, mapfn, [step.value, index], true) : step.value;
+ createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
}
} else {
length = toLength(O.length);
for(result = new C(length); length > index; index++){
- result[index] = mapping ? mapfn(O[index], index) : O[index];
+ createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
}
}
result.length = index;
diff --git a/node_modules/core-js/library/modules/es6.array.iterator.js b/node_modules/core-js/library/modules/es6.array.iterator.js
index 52a546dd1..100b344d7 100644
--- a/node_modules/core-js/library/modules/es6.array.iterator.js
+++ b/node_modules/core-js/library/modules/es6.array.iterator.js
@@ -1,14 +1,14 @@
'use strict';
-var addToUnscopables = require('./$.add-to-unscopables')
- , step = require('./$.iter-step')
- , Iterators = require('./$.iterators')
- , toIObject = require('./$.to-iobject');
+var addToUnscopables = require('./_add-to-unscopables')
+ , step = require('./_iter-step')
+ , Iterators = require('./_iterators')
+ , toIObject = require('./_to-iobject');
// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
-module.exports = require('./$.iter-define')(Array, 'Array', function(iterated, kind){
+module.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){
this._t = toIObject(iterated); // target
this._i = 0; // next index
this._k = kind; // kind
diff --git a/node_modules/core-js/library/modules/es6.array.of.js b/node_modules/core-js/library/modules/es6.array.of.js
index f623f1573..dd4e1f816 100644
--- a/node_modules/core-js/library/modules/es6.array.of.js
+++ b/node_modules/core-js/library/modules/es6.array.of.js
@@ -1,19 +1,19 @@
'use strict';
-var $export = require('./$.export');
+var $export = require('./_export')
+ , createProperty = require('./_create-property');
// WebKit Array.of isn't generic
-$export($export.S + $export.F * require('./$.fails')(function(){
+$export($export.S + $export.F * require('./_fails')(function(){
function F(){}
return !(Array.of.call(F) instanceof F);
}), 'Array', {
// 22.1.2.3 Array.of( ...items)
of: function of(/* ...args */){
var index = 0
- , $$ = arguments
- , $$len = $$.length
- , result = new (typeof this == 'function' ? this : Array)($$len);
- while($$len > index)result[index] = $$[index++];
- result.length = $$len;
+ , aLen = arguments.length
+ , result = new (typeof this == 'function' ? this : Array)(aLen);
+ while(aLen > index)createProperty(result, index, arguments[index++]);
+ result.length = aLen;
return result;
}
}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.array.species.js b/node_modules/core-js/library/modules/es6.array.species.js
index 543bdfe93..d63c738f7 100644
--- a/node_modules/core-js/library/modules/es6.array.species.js
+++ b/node_modules/core-js/library/modules/es6.array.species.js
@@ -1 +1 @@
-require('./$.set-species')('Array'); \ No newline at end of file
+require('./_set-species')('Array'); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.function.has-instance.js b/node_modules/core-js/library/modules/es6.function.has-instance.js
index 94d840f86..ae294b1f1 100644
--- a/node_modules/core-js/library/modules/es6.function.has-instance.js
+++ b/node_modules/core-js/library/modules/es6.function.has-instance.js
@@ -1,13 +1,13 @@
'use strict';
-var $ = require('./$')
- , isObject = require('./$.is-object')
- , HAS_INSTANCE = require('./$.wks')('hasInstance')
- , FunctionProto = Function.prototype;
+var isObject = require('./_is-object')
+ , getPrototypeOf = require('./_object-gpo')
+ , HAS_INSTANCE = require('./_wks')('hasInstance')
+ , FunctionProto = Function.prototype;
// 19.2.3.6 Function.prototype[@@hasInstance](V)
-if(!(HAS_INSTANCE in FunctionProto))$.setDesc(FunctionProto, HAS_INSTANCE, {value: function(O){
+if(!(HAS_INSTANCE in FunctionProto))require('./_object-dp').f(FunctionProto, HAS_INSTANCE, {value: function(O){
if(typeof this != 'function' || !isObject(O))return false;
if(!isObject(this.prototype))return O instanceof this;
// for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
- while(O = $.getProto(O))if(this.prototype === O)return true;
+ while(O = getPrototypeOf(O))if(this.prototype === O)return true;
return false;
}}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.map.js b/node_modules/core-js/library/modules/es6.map.js
index 54fd5c1ab..a166430fc 100644
--- a/node_modules/core-js/library/modules/es6.map.js
+++ b/node_modules/core-js/library/modules/es6.map.js
@@ -1,8 +1,8 @@
'use strict';
-var strong = require('./$.collection-strong');
+var strong = require('./_collection-strong');
// 23.1 Map Objects
-require('./$.collection')('Map', function(get){
+module.exports = require('./_collection')('Map', function(get){
return function Map(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.1.3.6 Map.prototype.get(key)
diff --git a/node_modules/core-js/library/modules/es6.math.acosh.js b/node_modules/core-js/library/modules/es6.math.acosh.js
index f69282a8c..459f11990 100644
--- a/node_modules/core-js/library/modules/es6.math.acosh.js
+++ b/node_modules/core-js/library/modules/es6.math.acosh.js
@@ -1,11 +1,15 @@
// 20.2.2.3 Math.acosh(x)
-var $export = require('./$.export')
- , log1p = require('./$.math-log1p')
+var $export = require('./_export')
+ , log1p = require('./_math-log1p')
, sqrt = Math.sqrt
, $acosh = Math.acosh;
-// V8 bug https://code.google.com/p/v8/issues/detail?id=3509
-$export($export.S + $export.F * !($acosh && Math.floor($acosh(Number.MAX_VALUE)) == 710), 'Math', {
+$export($export.S + $export.F * !($acosh
+ // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
+ && Math.floor($acosh(Number.MAX_VALUE)) == 710
+ // Tor Browser bug: Math.acosh(Infinity) -> NaN
+ && $acosh(Infinity) == Infinity
+), 'Math', {
acosh: function acosh(x){
return (x = +x) < 1 ? NaN : x > 94906265.62425156
? Math.log(x) + Math.LN2
diff --git a/node_modules/core-js/library/modules/es6.math.asinh.js b/node_modules/core-js/library/modules/es6.math.asinh.js
index bd34adf01..e6a74abb5 100644
--- a/node_modules/core-js/library/modules/es6.math.asinh.js
+++ b/node_modules/core-js/library/modules/es6.math.asinh.js
@@ -1,8 +1,10 @@
// 20.2.2.5 Math.asinh(x)
-var $export = require('./$.export');
+var $export = require('./_export')
+ , $asinh = Math.asinh;
function asinh(x){
return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
}
-$export($export.S, 'Math', {asinh: asinh}); \ No newline at end of file
+// Tor Browser bug: Math.asinh(0) -> -0
+$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', {asinh: asinh}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.math.atanh.js b/node_modules/core-js/library/modules/es6.math.atanh.js
index 656ea409d..94575d9f0 100644
--- a/node_modules/core-js/library/modules/es6.math.atanh.js
+++ b/node_modules/core-js/library/modules/es6.math.atanh.js
@@ -1,7 +1,9 @@
// 20.2.2.7 Math.atanh(x)
-var $export = require('./$.export');
+var $export = require('./_export')
+ , $atanh = Math.atanh;
-$export($export.S, 'Math', {
+// Tor Browser bug: Math.atanh(-0) -> 0
+$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {
atanh: function atanh(x){
return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
}
diff --git a/node_modules/core-js/library/modules/es6.math.cbrt.js b/node_modules/core-js/library/modules/es6.math.cbrt.js
index 79a1fbc87..7ca7daea8 100644
--- a/node_modules/core-js/library/modules/es6.math.cbrt.js
+++ b/node_modules/core-js/library/modules/es6.math.cbrt.js
@@ -1,6 +1,6 @@
// 20.2.2.9 Math.cbrt(x)
-var $export = require('./$.export')
- , sign = require('./$.math-sign');
+var $export = require('./_export')
+ , sign = require('./_math-sign');
$export($export.S, 'Math', {
cbrt: function cbrt(x){
diff --git a/node_modules/core-js/library/modules/es6.math.clz32.js b/node_modules/core-js/library/modules/es6.math.clz32.js
index edd11588c..1ec534bd0 100644
--- a/node_modules/core-js/library/modules/es6.math.clz32.js
+++ b/node_modules/core-js/library/modules/es6.math.clz32.js
@@ -1,5 +1,5 @@
// 20.2.2.11 Math.clz32(x)
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.S, 'Math', {
clz32: function clz32(x){
diff --git a/node_modules/core-js/library/modules/es6.math.cosh.js b/node_modules/core-js/library/modules/es6.math.cosh.js
index d1df7490c..4f2b21552 100644
--- a/node_modules/core-js/library/modules/es6.math.cosh.js
+++ b/node_modules/core-js/library/modules/es6.math.cosh.js
@@ -1,5 +1,5 @@
// 20.2.2.12 Math.cosh(x)
-var $export = require('./$.export')
+var $export = require('./_export')
, exp = Math.exp;
$export($export.S, 'Math', {
diff --git a/node_modules/core-js/library/modules/es6.math.expm1.js b/node_modules/core-js/library/modules/es6.math.expm1.js
index e27742fe3..9762b7cd0 100644
--- a/node_modules/core-js/library/modules/es6.math.expm1.js
+++ b/node_modules/core-js/library/modules/es6.math.expm1.js
@@ -1,4 +1,5 @@
// 20.2.2.14 Math.expm1(x)
-var $export = require('./$.export');
+var $export = require('./_export')
+ , $expm1 = require('./_math-expm1');
-$export($export.S, 'Math', {expm1: require('./$.math-expm1')}); \ No newline at end of file
+$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', {expm1: $expm1}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.math.fround.js b/node_modules/core-js/library/modules/es6.math.fround.js
index 43cd70c7b..01a88862e 100644
--- a/node_modules/core-js/library/modules/es6.math.fround.js
+++ b/node_modules/core-js/library/modules/es6.math.fround.js
@@ -1,6 +1,6 @@
// 20.2.2.16 Math.fround(x)
-var $export = require('./$.export')
- , sign = require('./$.math-sign')
+var $export = require('./_export')
+ , sign = require('./_math-sign')
, pow = Math.pow
, EPSILON = pow(2, -52)
, EPSILON32 = pow(2, -23)
diff --git a/node_modules/core-js/library/modules/es6.math.hypot.js b/node_modules/core-js/library/modules/es6.math.hypot.js
index a8edf7cde..508521b69 100644
--- a/node_modules/core-js/library/modules/es6.math.hypot.js
+++ b/node_modules/core-js/library/modules/es6.math.hypot.js
@@ -1,17 +1,16 @@
// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
-var $export = require('./$.export')
+var $export = require('./_export')
, abs = Math.abs;
$export($export.S, 'Math', {
hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars
- var sum = 0
- , i = 0
- , $$ = arguments
- , $$len = $$.length
- , larg = 0
+ var sum = 0
+ , i = 0
+ , aLen = arguments.length
+ , larg = 0
, arg, div;
- while(i < $$len){
- arg = abs($$[i++]);
+ while(i < aLen){
+ arg = abs(arguments[i++]);
if(larg < arg){
div = larg / arg;
sum = sum * div * div + 1;
diff --git a/node_modules/core-js/library/modules/es6.math.imul.js b/node_modules/core-js/library/modules/es6.math.imul.js
index 926053def..7f4111d27 100644
--- a/node_modules/core-js/library/modules/es6.math.imul.js
+++ b/node_modules/core-js/library/modules/es6.math.imul.js
@@ -1,9 +1,9 @@
// 20.2.2.18 Math.imul(x, y)
-var $export = require('./$.export')
+var $export = require('./_export')
, $imul = Math.imul;
// some WebKit versions fails with big numbers, some has wrong arity
-$export($export.S + $export.F * require('./$.fails')(function(){
+$export($export.S + $export.F * require('./_fails')(function(){
return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
}), 'Math', {
imul: function imul(x, y){
diff --git a/node_modules/core-js/library/modules/es6.math.log10.js b/node_modules/core-js/library/modules/es6.math.log10.js
index ef5ae6a96..791dfc353 100644
--- a/node_modules/core-js/library/modules/es6.math.log10.js
+++ b/node_modules/core-js/library/modules/es6.math.log10.js
@@ -1,5 +1,5 @@
// 20.2.2.21 Math.log10(x)
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.S, 'Math', {
log10: function log10(x){
diff --git a/node_modules/core-js/library/modules/es6.math.log1p.js b/node_modules/core-js/library/modules/es6.math.log1p.js
index 31c395ec8..a1de0258d 100644
--- a/node_modules/core-js/library/modules/es6.math.log1p.js
+++ b/node_modules/core-js/library/modules/es6.math.log1p.js
@@ -1,4 +1,4 @@
// 20.2.2.20 Math.log1p(x)
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.S, 'Math', {log1p: require('./$.math-log1p')}); \ No newline at end of file
+$export($export.S, 'Math', {log1p: require('./_math-log1p')}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.math.log2.js b/node_modules/core-js/library/modules/es6.math.log2.js
index 24c0124b0..c4ba7819c 100644
--- a/node_modules/core-js/library/modules/es6.math.log2.js
+++ b/node_modules/core-js/library/modules/es6.math.log2.js
@@ -1,5 +1,5 @@
// 20.2.2.22 Math.log2(x)
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.S, 'Math', {
log2: function log2(x){
diff --git a/node_modules/core-js/library/modules/es6.math.sign.js b/node_modules/core-js/library/modules/es6.math.sign.js
index fd8d8bc36..5dbee6f66 100644
--- a/node_modules/core-js/library/modules/es6.math.sign.js
+++ b/node_modules/core-js/library/modules/es6.math.sign.js
@@ -1,4 +1,4 @@
// 20.2.2.28 Math.sign(x)
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.S, 'Math', {sign: require('./$.math-sign')}); \ No newline at end of file
+$export($export.S, 'Math', {sign: require('./_math-sign')}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.math.sinh.js b/node_modules/core-js/library/modules/es6.math.sinh.js
index a01c4d374..5464ae3e6 100644
--- a/node_modules/core-js/library/modules/es6.math.sinh.js
+++ b/node_modules/core-js/library/modules/es6.math.sinh.js
@@ -1,10 +1,10 @@
// 20.2.2.30 Math.sinh(x)
-var $export = require('./$.export')
- , expm1 = require('./$.math-expm1')
+var $export = require('./_export')
+ , expm1 = require('./_math-expm1')
, exp = Math.exp;
// V8 near Chromium 38 has a problem with very small numbers
-$export($export.S + $export.F * require('./$.fails')(function(){
+$export($export.S + $export.F * require('./_fails')(function(){
return !Math.sinh(-2e-17) != -2e-17;
}), 'Math', {
sinh: function sinh(x){
diff --git a/node_modules/core-js/library/modules/es6.math.tanh.js b/node_modules/core-js/library/modules/es6.math.tanh.js
index 0d081a5da..d2f10778c 100644
--- a/node_modules/core-js/library/modules/es6.math.tanh.js
+++ b/node_modules/core-js/library/modules/es6.math.tanh.js
@@ -1,6 +1,6 @@
// 20.2.2.33 Math.tanh(x)
-var $export = require('./$.export')
- , expm1 = require('./$.math-expm1')
+var $export = require('./_export')
+ , expm1 = require('./_math-expm1')
, exp = Math.exp;
$export($export.S, 'Math', {
diff --git a/node_modules/core-js/library/modules/es6.math.trunc.js b/node_modules/core-js/library/modules/es6.math.trunc.js
index f3f085596..2e42563b6 100644
--- a/node_modules/core-js/library/modules/es6.math.trunc.js
+++ b/node_modules/core-js/library/modules/es6.math.trunc.js
@@ -1,5 +1,5 @@
// 20.2.2.34 Math.trunc(x)
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.S, 'Math', {
trunc: function trunc(it){
diff --git a/node_modules/core-js/library/modules/es6.number.epsilon.js b/node_modules/core-js/library/modules/es6.number.epsilon.js
index 45c865cfa..d25898ccc 100644
--- a/node_modules/core-js/library/modules/es6.number.epsilon.js
+++ b/node_modules/core-js/library/modules/es6.number.epsilon.js
@@ -1,4 +1,4 @@
// 20.1.2.1 Number.EPSILON
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.S, 'Number', {EPSILON: Math.pow(2, -52)}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.number.is-finite.js b/node_modules/core-js/library/modules/es6.number.is-finite.js
index 362a6c80d..c8c42753b 100644
--- a/node_modules/core-js/library/modules/es6.number.is-finite.js
+++ b/node_modules/core-js/library/modules/es6.number.is-finite.js
@@ -1,6 +1,6 @@
// 20.1.2.2 Number.isFinite(number)
-var $export = require('./$.export')
- , _isFinite = require('./$.global').isFinite;
+var $export = require('./_export')
+ , _isFinite = require('./_global').isFinite;
$export($export.S, 'Number', {
isFinite: function isFinite(it){
diff --git a/node_modules/core-js/library/modules/es6.number.is-integer.js b/node_modules/core-js/library/modules/es6.number.is-integer.js
index 189db9a27..dc0f8f009 100644
--- a/node_modules/core-js/library/modules/es6.number.is-integer.js
+++ b/node_modules/core-js/library/modules/es6.number.is-integer.js
@@ -1,4 +1,4 @@
// 20.1.2.3 Number.isInteger(number)
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.S, 'Number', {isInteger: require('./$.is-integer')}); \ No newline at end of file
+$export($export.S, 'Number', {isInteger: require('./_is-integer')}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.number.is-nan.js b/node_modules/core-js/library/modules/es6.number.is-nan.js
index 151bb4b2b..5fedf8252 100644
--- a/node_modules/core-js/library/modules/es6.number.is-nan.js
+++ b/node_modules/core-js/library/modules/es6.number.is-nan.js
@@ -1,5 +1,5 @@
// 20.1.2.4 Number.isNaN(number)
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.S, 'Number', {
isNaN: function isNaN(number){
diff --git a/node_modules/core-js/library/modules/es6.number.is-safe-integer.js b/node_modules/core-js/library/modules/es6.number.is-safe-integer.js
index e23b4cbc5..92193e2ec 100644
--- a/node_modules/core-js/library/modules/es6.number.is-safe-integer.js
+++ b/node_modules/core-js/library/modules/es6.number.is-safe-integer.js
@@ -1,6 +1,6 @@
// 20.1.2.5 Number.isSafeInteger(number)
-var $export = require('./$.export')
- , isInteger = require('./$.is-integer')
+var $export = require('./_export')
+ , isInteger = require('./_is-integer')
, abs = Math.abs;
$export($export.S, 'Number', {
diff --git a/node_modules/core-js/library/modules/es6.number.max-safe-integer.js b/node_modules/core-js/library/modules/es6.number.max-safe-integer.js
index a1aaf7412..b9d7f2a77 100644
--- a/node_modules/core-js/library/modules/es6.number.max-safe-integer.js
+++ b/node_modules/core-js/library/modules/es6.number.max-safe-integer.js
@@ -1,4 +1,4 @@
// 20.1.2.6 Number.MAX_SAFE_INTEGER
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.number.min-safe-integer.js b/node_modules/core-js/library/modules/es6.number.min-safe-integer.js
index ab97cb5dc..9a2beeb3c 100644
--- a/node_modules/core-js/library/modules/es6.number.min-safe-integer.js
+++ b/node_modules/core-js/library/modules/es6.number.min-safe-integer.js
@@ -1,4 +1,4 @@
// 20.1.2.10 Number.MIN_SAFE_INTEGER
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.number.parse-float.js b/node_modules/core-js/library/modules/es6.number.parse-float.js
index 1d0c96741..7ee14da03 100644
--- a/node_modules/core-js/library/modules/es6.number.parse-float.js
+++ b/node_modules/core-js/library/modules/es6.number.parse-float.js
@@ -1,4 +1,4 @@
+var $export = require('./_export')
+ , $parseFloat = require('./_parse-float');
// 20.1.2.12 Number.parseFloat(string)
-var $export = require('./$.export');
-
-$export($export.S, 'Number', {parseFloat: parseFloat}); \ No newline at end of file
+$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', {parseFloat: $parseFloat}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.number.parse-int.js b/node_modules/core-js/library/modules/es6.number.parse-int.js
index 813b5b795..59bf14459 100644
--- a/node_modules/core-js/library/modules/es6.number.parse-int.js
+++ b/node_modules/core-js/library/modules/es6.number.parse-int.js
@@ -1,4 +1,4 @@
+var $export = require('./_export')
+ , $parseInt = require('./_parse-int');
// 20.1.2.13 Number.parseInt(string, radix)
-var $export = require('./$.export');
-
-$export($export.S, 'Number', {parseInt: parseInt}); \ No newline at end of file
+$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', {parseInt: $parseInt}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.object.assign.js b/node_modules/core-js/library/modules/es6.object.assign.js
index b62e7a420..13eda2cb8 100644
--- a/node_modules/core-js/library/modules/es6.object.assign.js
+++ b/node_modules/core-js/library/modules/es6.object.assign.js
@@ -1,4 +1,4 @@
// 19.1.3.1 Object.assign(target, source)
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.S + $export.F, 'Object', {assign: require('./$.object-assign')}); \ No newline at end of file
+$export($export.S + $export.F, 'Object', {assign: require('./_object-assign')}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.object.freeze.js b/node_modules/core-js/library/modules/es6.object.freeze.js
index fa87c9512..34b510842 100644
--- a/node_modules/core-js/library/modules/es6.object.freeze.js
+++ b/node_modules/core-js/library/modules/es6.object.freeze.js
@@ -1,8 +1,9 @@
// 19.1.2.5 Object.freeze(O)
-var isObject = require('./$.is-object');
+var isObject = require('./_is-object')
+ , meta = require('./_meta').onFreeze;
-require('./$.object-sap')('freeze', function($freeze){
+require('./_object-sap')('freeze', function($freeze){
return function freeze(it){
- return $freeze && isObject(it) ? $freeze(it) : it;
+ return $freeze && isObject(it) ? $freeze(meta(it)) : it;
};
}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js b/node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js
index 9b253acdd..60c69913a 100644
--- a/node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js
+++ b/node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js
@@ -1,7 +1,8 @@
// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
-var toIObject = require('./$.to-iobject');
+var toIObject = require('./_to-iobject')
+ , $getOwnPropertyDescriptor = require('./_object-gopd').f;
-require('./$.object-sap')('getOwnPropertyDescriptor', function($getOwnPropertyDescriptor){
+require('./_object-sap')('getOwnPropertyDescriptor', function(){
return function getOwnPropertyDescriptor(it, key){
return $getOwnPropertyDescriptor(toIObject(it), key);
};
diff --git a/node_modules/core-js/library/modules/es6.object.get-own-property-names.js b/node_modules/core-js/library/modules/es6.object.get-own-property-names.js
index e87bcf607..91dd110d2 100644
--- a/node_modules/core-js/library/modules/es6.object.get-own-property-names.js
+++ b/node_modules/core-js/library/modules/es6.object.get-own-property-names.js
@@ -1,4 +1,4 @@
// 19.1.2.7 Object.getOwnPropertyNames(O)
-require('./$.object-sap')('getOwnPropertyNames', function(){
- return require('./$.get-names').get;
+require('./_object-sap')('getOwnPropertyNames', function(){
+ return require('./_object-gopn-ext').f;
}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.object.get-prototype-of.js b/node_modules/core-js/library/modules/es6.object.get-prototype-of.js
index 9ec0405b6..b124e28fa 100644
--- a/node_modules/core-js/library/modules/es6.object.get-prototype-of.js
+++ b/node_modules/core-js/library/modules/es6.object.get-prototype-of.js
@@ -1,7 +1,8 @@
// 19.1.2.9 Object.getPrototypeOf(O)
-var toObject = require('./$.to-object');
+var toObject = require('./_to-object')
+ , $getPrototypeOf = require('./_object-gpo');
-require('./$.object-sap')('getPrototypeOf', function($getPrototypeOf){
+require('./_object-sap')('getPrototypeOf', function(){
return function getPrototypeOf(it){
return $getPrototypeOf(toObject(it));
};
diff --git a/node_modules/core-js/library/modules/es6.object.is-extensible.js b/node_modules/core-js/library/modules/es6.object.is-extensible.js
index ada2b95a9..94bf8a815 100644
--- a/node_modules/core-js/library/modules/es6.object.is-extensible.js
+++ b/node_modules/core-js/library/modules/es6.object.is-extensible.js
@@ -1,7 +1,7 @@
// 19.1.2.11 Object.isExtensible(O)
-var isObject = require('./$.is-object');
+var isObject = require('./_is-object');
-require('./$.object-sap')('isExtensible', function($isExtensible){
+require('./_object-sap')('isExtensible', function($isExtensible){
return function isExtensible(it){
return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
};
diff --git a/node_modules/core-js/library/modules/es6.object.is-frozen.js b/node_modules/core-js/library/modules/es6.object.is-frozen.js
index b3e44d1b7..4bdfd11b1 100644
--- a/node_modules/core-js/library/modules/es6.object.is-frozen.js
+++ b/node_modules/core-js/library/modules/es6.object.is-frozen.js
@@ -1,7 +1,7 @@
// 19.1.2.12 Object.isFrozen(O)
-var isObject = require('./$.is-object');
+var isObject = require('./_is-object');
-require('./$.object-sap')('isFrozen', function($isFrozen){
+require('./_object-sap')('isFrozen', function($isFrozen){
return function isFrozen(it){
return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
};
diff --git a/node_modules/core-js/library/modules/es6.object.is-sealed.js b/node_modules/core-js/library/modules/es6.object.is-sealed.js
index 423caf331..d13aa1b06 100644
--- a/node_modules/core-js/library/modules/es6.object.is-sealed.js
+++ b/node_modules/core-js/library/modules/es6.object.is-sealed.js
@@ -1,7 +1,7 @@
// 19.1.2.13 Object.isSealed(O)
-var isObject = require('./$.is-object');
+var isObject = require('./_is-object');
-require('./$.object-sap')('isSealed', function($isSealed){
+require('./_object-sap')('isSealed', function($isSealed){
return function isSealed(it){
return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
};
diff --git a/node_modules/core-js/library/modules/es6.object.is.js b/node_modules/core-js/library/modules/es6.object.is.js
index 3ae3b6046..ad2994256 100644
--- a/node_modules/core-js/library/modules/es6.object.is.js
+++ b/node_modules/core-js/library/modules/es6.object.is.js
@@ -1,3 +1,3 @@
// 19.1.3.10 Object.is(value1, value2)
-var $export = require('./$.export');
-$export($export.S, 'Object', {is: require('./$.same-value')}); \ No newline at end of file
+var $export = require('./_export');
+$export($export.S, 'Object', {is: require('./_same-value')}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.object.keys.js b/node_modules/core-js/library/modules/es6.object.keys.js
index e3c18c020..bf76c07d7 100644
--- a/node_modules/core-js/library/modules/es6.object.keys.js
+++ b/node_modules/core-js/library/modules/es6.object.keys.js
@@ -1,7 +1,8 @@
// 19.1.2.14 Object.keys(O)
-var toObject = require('./$.to-object');
+var toObject = require('./_to-object')
+ , $keys = require('./_object-keys');
-require('./$.object-sap')('keys', function($keys){
+require('./_object-sap')('keys', function(){
return function keys(it){
return $keys(toObject(it));
};
diff --git a/node_modules/core-js/library/modules/es6.object.prevent-extensions.js b/node_modules/core-js/library/modules/es6.object.prevent-extensions.js
index 20f879e28..adaff7a79 100644
--- a/node_modules/core-js/library/modules/es6.object.prevent-extensions.js
+++ b/node_modules/core-js/library/modules/es6.object.prevent-extensions.js
@@ -1,8 +1,9 @@
// 19.1.2.15 Object.preventExtensions(O)
-var isObject = require('./$.is-object');
+var isObject = require('./_is-object')
+ , meta = require('./_meta').onFreeze;
-require('./$.object-sap')('preventExtensions', function($preventExtensions){
+require('./_object-sap')('preventExtensions', function($preventExtensions){
return function preventExtensions(it){
- return $preventExtensions && isObject(it) ? $preventExtensions(it) : it;
+ return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;
};
}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.object.seal.js b/node_modules/core-js/library/modules/es6.object.seal.js
index 85a7fa98f..d7e4ea958 100644
--- a/node_modules/core-js/library/modules/es6.object.seal.js
+++ b/node_modules/core-js/library/modules/es6.object.seal.js
@@ -1,8 +1,9 @@
// 19.1.2.17 Object.seal(O)
-var isObject = require('./$.is-object');
+var isObject = require('./_is-object')
+ , meta = require('./_meta').onFreeze;
-require('./$.object-sap')('seal', function($seal){
+require('./_object-sap')('seal', function($seal){
return function seal(it){
- return $seal && isObject(it) ? $seal(it) : it;
+ return $seal && isObject(it) ? $seal(meta(it)) : it;
};
}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.object.set-prototype-of.js b/node_modules/core-js/library/modules/es6.object.set-prototype-of.js
index 79a147c3f..5bbe4c068 100644
--- a/node_modules/core-js/library/modules/es6.object.set-prototype-of.js
+++ b/node_modules/core-js/library/modules/es6.object.set-prototype-of.js
@@ -1,3 +1,3 @@
// 19.1.3.19 Object.setPrototypeOf(O, proto)
-var $export = require('./$.export');
-$export($export.S, 'Object', {setPrototypeOf: require('./$.set-proto').set}); \ No newline at end of file
+var $export = require('./_export');
+$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.promise.js b/node_modules/core-js/library/modules/es6.promise.js
index fbf20177a..262a93af1 100644
--- a/node_modules/core-js/library/modules/es6.promise.js
+++ b/node_modules/core-js/library/modules/es6.promise.js
@@ -1,86 +1,58 @@
'use strict';
-var $ = require('./$')
- , LIBRARY = require('./$.library')
- , global = require('./$.global')
- , ctx = require('./$.ctx')
- , classof = require('./$.classof')
- , $export = require('./$.export')
- , isObject = require('./$.is-object')
- , anObject = require('./$.an-object')
- , aFunction = require('./$.a-function')
- , strictNew = require('./$.strict-new')
- , forOf = require('./$.for-of')
- , setProto = require('./$.set-proto').set
- , same = require('./$.same-value')
- , SPECIES = require('./$.wks')('species')
- , speciesConstructor = require('./$.species-constructor')
- , asap = require('./$.microtask')
- , PROMISE = 'Promise'
- , process = global.process
- , isNode = classof(process) == 'process'
- , P = global[PROMISE]
- , empty = function(){ /* empty */ }
- , Wrapper;
+var LIBRARY = require('./_library')
+ , global = require('./_global')
+ , ctx = require('./_ctx')
+ , classof = require('./_classof')
+ , $export = require('./_export')
+ , isObject = require('./_is-object')
+ , aFunction = require('./_a-function')
+ , anInstance = require('./_an-instance')
+ , forOf = require('./_for-of')
+ , speciesConstructor = require('./_species-constructor')
+ , task = require('./_task').set
+ , microtask = require('./_microtask')()
+ , PROMISE = 'Promise'
+ , TypeError = global.TypeError
+ , process = global.process
+ , $Promise = global[PROMISE]
+ , process = global.process
+ , isNode = classof(process) == 'process'
+ , empty = function(){ /* empty */ }
+ , Internal, GenericPromiseCapability, Wrapper;
-var testResolve = function(sub){
- var test = new P(empty), promise;
- if(sub)test.constructor = function(exec){
- exec(empty, empty);
- };
- (promise = P.resolve(test))['catch'](empty);
- return promise === test;
-};
-
-var USE_NATIVE = function(){
- var works = false;
- function P2(x){
- var self = new P(x);
- setProto(self, P2.prototype);
- return self;
- }
+var USE_NATIVE = !!function(){
try {
- works = P && P.resolve && testResolve();
- setProto(P2, P);
- P2.prototype = $.create(P.prototype, {constructor: {value: P2}});
- // actual Firefox has broken subclass support, test that
- if(!(P2.resolve(5).then(function(){}) instanceof P2)){
- works = false;
- }
- // actual V8 bug, https://code.google.com/p/v8/issues/detail?id=4162
- if(works && require('./$.descriptors')){
- var thenableThenGotten = false;
- P.resolve($.setDesc({}, 'then', {
- get: function(){ thenableThenGotten = true; }
- }));
- works = thenableThenGotten;
- }
- } catch(e){ works = false; }
- return works;
+ // correct subclassing with @@species support
+ var promise = $Promise.resolve(1)
+ , FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function(exec){ exec(empty, empty); };
+ // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
+ return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;
+ } catch(e){ /* empty */ }
}();
// helpers
var sameConstructor = function(a, b){
- // library wrapper special case
- if(LIBRARY && a === P && b === Wrapper)return true;
- return same(a, b);
-};
-var getConstructor = function(C){
- var S = anObject(C)[SPECIES];
- return S != undefined ? S : C;
+ // with library wrapper special case
+ return a === b || a === $Promise && b === Wrapper;
};
var isThenable = function(it){
var then;
return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
};
-var PromiseCapability = function(C){
+var newPromiseCapability = function(C){
+ return sameConstructor($Promise, C)
+ ? new PromiseCapability(C)
+ : new GenericPromiseCapability(C);
+};
+var PromiseCapability = GenericPromiseCapability = function(C){
var resolve, reject;
this.promise = new C(function($$resolve, $$reject){
if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor');
resolve = $$resolve;
reject = $$reject;
});
- this.resolve = aFunction(resolve),
- this.reject = aFunction(reject)
+ this.resolve = aFunction(resolve);
+ this.reject = aFunction(reject);
};
var perform = function(exec){
try {
@@ -89,23 +61,32 @@ var perform = function(exec){
return {error: e};
}
};
-var notify = function(record, isReject){
- if(record.n)return;
- record.n = true;
- var chain = record.c;
- asap(function(){
- var value = record.v
- , ok = record.s == 1
+var notify = function(promise, isReject){
+ if(promise._n)return;
+ promise._n = true;
+ var chain = promise._c;
+ microtask(function(){
+ var value = promise._v
+ , ok = promise._s == 1
, i = 0;
var run = function(reaction){
var handler = ok ? reaction.ok : reaction.fail
, resolve = reaction.resolve
, reject = reaction.reject
+ , domain = reaction.domain
, result, then;
try {
if(handler){
- if(!ok)record.h = true;
- result = handler === true ? value : handler(value);
+ if(!ok){
+ if(promise._h == 2)onHandleUnhandled(promise);
+ promise._h = 1;
+ }
+ if(handler === true)result = value;
+ else {
+ if(domain)domain.enter();
+ result = handler(value);
+ if(domain)domain.exit();
+ }
if(result === reaction.promise){
reject(TypeError('Promise-chain cycle'));
} else if(then = isThenable(result)){
@@ -117,12 +98,17 @@ var notify = function(record, isReject){
}
};
while(chain.length > i)run(chain[i++]); // variable length - can't use forEach
- chain.length = 0;
- record.n = false;
- if(isReject)setTimeout(function(){
- var promise = record.p
- , handler, console;
- if(isUnhandled(promise)){
+ promise._c = [];
+ promise._n = false;
+ if(isReject && !promise._h)onUnhandled(promise);
+ });
+};
+var onUnhandled = function(promise){
+ task.call(global, function(){
+ var value = promise._v
+ , abrupt, handler, console;
+ if(isUnhandled(promise)){
+ abrupt = perform(function(){
if(isNode){
process.emit('unhandledRejection', value, promise);
} else if(handler = global.onunhandledrejection){
@@ -130,42 +116,54 @@ var notify = function(record, isReject){
} else if((console = global.console) && console.error){
console.error('Unhandled promise rejection', value);
}
- } record.a = undefined;
- }, 1);
+ });
+ // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
+ promise._h = isNode || isUnhandled(promise) ? 2 : 1;
+ } promise._a = undefined;
+ if(abrupt)throw abrupt.error;
});
};
var isUnhandled = function(promise){
- var record = promise._d
- , chain = record.a || record.c
- , i = 0
+ if(promise._h == 1)return false;
+ var chain = promise._a || promise._c
+ , i = 0
, reaction;
- if(record.h)return false;
while(chain.length > i){
reaction = chain[i++];
if(reaction.fail || !isUnhandled(reaction.promise))return false;
} return true;
};
+var onHandleUnhandled = function(promise){
+ task.call(global, function(){
+ var handler;
+ if(isNode){
+ process.emit('rejectionHandled', promise);
+ } else if(handler = global.onrejectionhandled){
+ handler({promise: promise, reason: promise._v});
+ }
+ });
+};
var $reject = function(value){
- var record = this;
- if(record.d)return;
- record.d = true;
- record = record.r || record; // unwrap
- record.v = value;
- record.s = 2;
- record.a = record.c.slice();
- notify(record, true);
+ var promise = this;
+ if(promise._d)return;
+ promise._d = true;
+ promise = promise._w || promise; // unwrap
+ promise._v = value;
+ promise._s = 2;
+ if(!promise._a)promise._a = promise._c.slice();
+ notify(promise, true);
};
var $resolve = function(value){
- var record = this
+ var promise = this
, then;
- if(record.d)return;
- record.d = true;
- record = record.r || record; // unwrap
+ if(promise._d)return;
+ promise._d = true;
+ promise = promise._w || promise; // unwrap
try {
- if(record.p === value)throw TypeError("Promise can't be resolved itself");
+ if(promise === value)throw TypeError("Promise can't be resolved itself");
if(then = isThenable(value)){
- asap(function(){
- var wrapper = {r: record, d: false}; // wrap
+ microtask(function(){
+ var wrapper = {_w: promise, _d: false}; // wrap
try {
then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
} catch(e){
@@ -173,114 +171,122 @@ var $resolve = function(value){
}
});
} else {
- record.v = value;
- record.s = 1;
- notify(record, false);
+ promise._v = value;
+ promise._s = 1;
+ notify(promise, false);
}
} catch(e){
- $reject.call({r: record, d: false}, e); // wrap
+ $reject.call({_w: promise, _d: false}, e); // wrap
}
};
// constructor polyfill
if(!USE_NATIVE){
// 25.4.3.1 Promise(executor)
- P = function Promise(executor){
+ $Promise = function Promise(executor){
+ anInstance(this, $Promise, PROMISE, '_h');
aFunction(executor);
- var record = this._d = {
- p: strictNew(this, P, PROMISE), // <- promise
- c: [], // <- awaiting reactions
- a: undefined, // <- checked in isUnhandled reactions
- s: 0, // <- state
- d: false, // <- done
- v: undefined, // <- value
- h: false, // <- handled rejection
- n: false // <- notify
- };
+ Internal.call(this);
try {
- executor(ctx($resolve, record, 1), ctx($reject, record, 1));
+ executor(ctx($resolve, this, 1), ctx($reject, this, 1));
} catch(err){
- $reject.call(record, err);
+ $reject.call(this, err);
}
};
- require('./$.redefine-all')(P.prototype, {
+ Internal = function Promise(executor){
+ this._c = []; // <- awaiting reactions
+ this._a = undefined; // <- checked in isUnhandled reactions
+ this._s = 0; // <- state
+ this._d = false; // <- done
+ this._v = undefined; // <- value
+ this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
+ this._n = false; // <- notify
+ };
+ Internal.prototype = require('./_redefine-all')($Promise.prototype, {
// 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
then: function then(onFulfilled, onRejected){
- var reaction = new PromiseCapability(speciesConstructor(this, P))
- , promise = reaction.promise
- , record = this._d;
- reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
- reaction.fail = typeof onRejected == 'function' && onRejected;
- record.c.push(reaction);
- if(record.a)record.a.push(reaction);
- if(record.s)notify(record, false);
- return promise;
+ var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
+ reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
+ reaction.fail = typeof onRejected == 'function' && onRejected;
+ reaction.domain = isNode ? process.domain : undefined;
+ this._c.push(reaction);
+ if(this._a)this._a.push(reaction);
+ if(this._s)notify(this, false);
+ return reaction.promise;
},
// 25.4.5.1 Promise.prototype.catch(onRejected)
'catch': function(onRejected){
return this.then(undefined, onRejected);
}
});
+ PromiseCapability = function(){
+ var promise = new Internal;
+ this.promise = promise;
+ this.resolve = ctx($resolve, promise, 1);
+ this.reject = ctx($reject, promise, 1);
+ };
}
-$export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: P});
-require('./$.set-to-string-tag')(P, PROMISE);
-require('./$.set-species')(PROMISE);
-Wrapper = require('./$.core')[PROMISE];
+$export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: $Promise});
+require('./_set-to-string-tag')($Promise, PROMISE);
+require('./_set-species')(PROMISE);
+Wrapper = require('./_core')[PROMISE];
// statics
$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
// 25.4.4.5 Promise.reject(r)
reject: function reject(r){
- var capability = new PromiseCapability(this)
+ var capability = newPromiseCapability(this)
, $$reject = capability.reject;
$$reject(r);
return capability.promise;
}
});
-$export($export.S + $export.F * (!USE_NATIVE || testResolve(true)), PROMISE, {
+$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
// 25.4.4.6 Promise.resolve(x)
resolve: function resolve(x){
// instanceof instead of internal slot check because we should fix it without replacement native Promise core
- if(x instanceof P && sameConstructor(x.constructor, this))return x;
- var capability = new PromiseCapability(this)
+ if(x instanceof $Promise && sameConstructor(x.constructor, this))return x;
+ var capability = newPromiseCapability(this)
, $$resolve = capability.resolve;
$$resolve(x);
return capability.promise;
}
});
-$export($export.S + $export.F * !(USE_NATIVE && require('./$.iter-detect')(function(iter){
- P.all(iter)['catch'](function(){});
+$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function(iter){
+ $Promise.all(iter)['catch'](empty);
})), PROMISE, {
// 25.4.4.1 Promise.all(iterable)
all: function all(iterable){
- var C = getConstructor(this)
- , capability = new PromiseCapability(C)
+ var C = this
+ , capability = newPromiseCapability(C)
, resolve = capability.resolve
- , reject = capability.reject
- , values = [];
+ , reject = capability.reject;
var abrupt = perform(function(){
- forOf(iterable, false, values.push, values);
- var remaining = values.length
- , results = Array(remaining);
- if(remaining)$.each.call(values, function(promise, index){
- var alreadyCalled = false;
+ var values = []
+ , index = 0
+ , remaining = 1;
+ forOf(iterable, false, function(promise){
+ var $index = index++
+ , alreadyCalled = false;
+ values.push(undefined);
+ remaining++;
C.resolve(promise).then(function(value){
if(alreadyCalled)return;
- alreadyCalled = true;
- results[index] = value;
- --remaining || resolve(results);
+ alreadyCalled = true;
+ values[$index] = value;
+ --remaining || resolve(values);
}, reject);
});
- else resolve(results);
+ --remaining || resolve(values);
});
if(abrupt)reject(abrupt.error);
return capability.promise;
},
// 25.4.4.4 Promise.race(iterable)
race: function race(iterable){
- var C = getConstructor(this)
- , capability = new PromiseCapability(C)
+ var C = this
+ , capability = newPromiseCapability(C)
, reject = capability.reject;
var abrupt = perform(function(){
forOf(iterable, false, function(promise){
diff --git a/node_modules/core-js/library/modules/es6.reflect.apply.js b/node_modules/core-js/library/modules/es6.reflect.apply.js
index 361a2e2e5..24ea80f51 100644
--- a/node_modules/core-js/library/modules/es6.reflect.apply.js
+++ b/node_modules/core-js/library/modules/es6.reflect.apply.js
@@ -1,10 +1,16 @@
// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
-var $export = require('./$.export')
- , _apply = Function.apply
- , anObject = require('./$.an-object');
-
-$export($export.S, 'Reflect', {
+var $export = require('./_export')
+ , aFunction = require('./_a-function')
+ , anObject = require('./_an-object')
+ , rApply = (require('./_global').Reflect || {}).apply
+ , fApply = Function.apply;
+// MS Edge argumentsList argument is optional
+$export($export.S + $export.F * !require('./_fails')(function(){
+ rApply(function(){});
+}), 'Reflect', {
apply: function apply(target, thisArgument, argumentsList){
- return _apply.call(target, thisArgument, anObject(argumentsList));
+ var T = aFunction(target)
+ , L = anObject(argumentsList);
+ return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);
}
}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.reflect.construct.js b/node_modules/core-js/library/modules/es6.reflect.construct.js
index c3928cd92..96483d708 100644
--- a/node_modules/core-js/library/modules/es6.reflect.construct.js
+++ b/node_modules/core-js/library/modules/es6.reflect.construct.js
@@ -1,21 +1,29 @@
// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
-var $ = require('./$')
- , $export = require('./$.export')
- , aFunction = require('./$.a-function')
- , anObject = require('./$.an-object')
- , isObject = require('./$.is-object')
- , bind = Function.bind || require('./$.core').Function.prototype.bind;
+var $export = require('./_export')
+ , create = require('./_object-create')
+ , aFunction = require('./_a-function')
+ , anObject = require('./_an-object')
+ , isObject = require('./_is-object')
+ , fails = require('./_fails')
+ , bind = require('./_bind')
+ , rConstruct = (require('./_global').Reflect || {}).construct;
-// MS Edge supports only 2 arguments
+// MS Edge supports only 2 arguments and argumentsList argument is optional
// FF Nightly sets third argument as `new.target`, but does not create `this` from it
-$export($export.S + $export.F * require('./$.fails')(function(){
+var NEW_TARGET_BUG = fails(function(){
function F(){}
- return !(Reflect.construct(function(){}, [], F) instanceof F);
-}), 'Reflect', {
+ return !(rConstruct(function(){}, [], F) instanceof F);
+});
+var ARGS_BUG = !fails(function(){
+ rConstruct(function(){});
+});
+
+$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
construct: function construct(Target, args /*, newTarget*/){
aFunction(Target);
anObject(args);
var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
+ if(ARGS_BUG && !NEW_TARGET_BUG)return rConstruct(Target, args, newTarget);
if(Target == newTarget){
// w/o altered newTarget, optimization for 0-4 arguments
switch(args.length){
@@ -32,7 +40,7 @@ $export($export.S + $export.F * require('./$.fails')(function(){
}
// with altered newTarget, not support built-in constructors
var proto = newTarget.prototype
- , instance = $.create(isObject(proto) ? proto : Object.prototype)
+ , instance = create(isObject(proto) ? proto : Object.prototype)
, result = Function.apply.call(Target, instance, args);
return isObject(result) ? result : instance;
}
diff --git a/node_modules/core-js/library/modules/es6.reflect.define-property.js b/node_modules/core-js/library/modules/es6.reflect.define-property.js
index 5f7fc6a18..485d43c45 100644
--- a/node_modules/core-js/library/modules/es6.reflect.define-property.js
+++ b/node_modules/core-js/library/modules/es6.reflect.define-property.js
@@ -1,16 +1,19 @@
// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
-var $ = require('./$')
- , $export = require('./$.export')
- , anObject = require('./$.an-object');
+var dP = require('./_object-dp')
+ , $export = require('./_export')
+ , anObject = require('./_an-object')
+ , toPrimitive = require('./_to-primitive');
// MS Edge has broken Reflect.defineProperty - throwing instead of returning false
-$export($export.S + $export.F * require('./$.fails')(function(){
- Reflect.defineProperty($.setDesc({}, 1, {value: 1}), 1, {value: 2});
+$export($export.S + $export.F * require('./_fails')(function(){
+ Reflect.defineProperty(dP.f({}, 1, {value: 1}), 1, {value: 2});
}), 'Reflect', {
defineProperty: function defineProperty(target, propertyKey, attributes){
anObject(target);
+ propertyKey = toPrimitive(propertyKey, true);
+ anObject(attributes);
try {
- $.setDesc(target, propertyKey, attributes);
+ dP.f(target, propertyKey, attributes);
return true;
} catch(e){
return false;
diff --git a/node_modules/core-js/library/modules/es6.reflect.delete-property.js b/node_modules/core-js/library/modules/es6.reflect.delete-property.js
index 18526e5b1..4e8ce2078 100644
--- a/node_modules/core-js/library/modules/es6.reflect.delete-property.js
+++ b/node_modules/core-js/library/modules/es6.reflect.delete-property.js
@@ -1,11 +1,11 @@
// 26.1.4 Reflect.deleteProperty(target, propertyKey)
-var $export = require('./$.export')
- , getDesc = require('./$').getDesc
- , anObject = require('./$.an-object');
+var $export = require('./_export')
+ , gOPD = require('./_object-gopd').f
+ , anObject = require('./_an-object');
$export($export.S, 'Reflect', {
deleteProperty: function deleteProperty(target, propertyKey){
- var desc = getDesc(anObject(target), propertyKey);
+ var desc = gOPD(anObject(target), propertyKey);
return desc && !desc.configurable ? false : delete target[propertyKey];
}
}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.reflect.enumerate.js b/node_modules/core-js/library/modules/es6.reflect.enumerate.js
index 73452e2fa..abdb132d6 100644
--- a/node_modules/core-js/library/modules/es6.reflect.enumerate.js
+++ b/node_modules/core-js/library/modules/es6.reflect.enumerate.js
@@ -1,7 +1,7 @@
'use strict';
// 26.1.5 Reflect.enumerate(target)
-var $export = require('./$.export')
- , anObject = require('./$.an-object');
+var $export = require('./_export')
+ , anObject = require('./_an-object');
var Enumerate = function(iterated){
this._t = anObject(iterated); // target
this._i = 0; // next index
@@ -9,7 +9,7 @@ var Enumerate = function(iterated){
, key;
for(key in iterated)keys.push(key);
};
-require('./$.iter-create')(Enumerate, 'Object', function(){
+require('./_iter-create')(Enumerate, 'Object', function(){
var that = this
, keys = that._k
, key;
diff --git a/node_modules/core-js/library/modules/es6.reflect.get-own-property-descriptor.js b/node_modules/core-js/library/modules/es6.reflect.get-own-property-descriptor.js
index a3a2e0160..741a13eba 100644
--- a/node_modules/core-js/library/modules/es6.reflect.get-own-property-descriptor.js
+++ b/node_modules/core-js/library/modules/es6.reflect.get-own-property-descriptor.js
@@ -1,10 +1,10 @@
// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
-var $ = require('./$')
- , $export = require('./$.export')
- , anObject = require('./$.an-object');
+var gOPD = require('./_object-gopd')
+ , $export = require('./_export')
+ , anObject = require('./_an-object');
$export($export.S, 'Reflect', {
getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey){
- return $.getDesc(anObject(target), propertyKey);
+ return gOPD.f(anObject(target), propertyKey);
}
}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.reflect.get-prototype-of.js b/node_modules/core-js/library/modules/es6.reflect.get-prototype-of.js
index c06bfa459..4f912d104 100644
--- a/node_modules/core-js/library/modules/es6.reflect.get-prototype-of.js
+++ b/node_modules/core-js/library/modules/es6.reflect.get-prototype-of.js
@@ -1,7 +1,7 @@
// 26.1.8 Reflect.getPrototypeOf(target)
-var $export = require('./$.export')
- , getProto = require('./$').getProto
- , anObject = require('./$.an-object');
+var $export = require('./_export')
+ , getProto = require('./_object-gpo')
+ , anObject = require('./_an-object');
$export($export.S, 'Reflect', {
getPrototypeOf: function getPrototypeOf(target){
diff --git a/node_modules/core-js/library/modules/es6.reflect.get.js b/node_modules/core-js/library/modules/es6.reflect.get.js
index cbb0caaf3..f8c39f500 100644
--- a/node_modules/core-js/library/modules/es6.reflect.get.js
+++ b/node_modules/core-js/library/modules/es6.reflect.get.js
@@ -1,20 +1,21 @@
// 26.1.6 Reflect.get(target, propertyKey [, receiver])
-var $ = require('./$')
- , has = require('./$.has')
- , $export = require('./$.export')
- , isObject = require('./$.is-object')
- , anObject = require('./$.an-object');
+var gOPD = require('./_object-gopd')
+ , getPrototypeOf = require('./_object-gpo')
+ , has = require('./_has')
+ , $export = require('./_export')
+ , isObject = require('./_is-object')
+ , anObject = require('./_an-object');
function get(target, propertyKey/*, receiver*/){
var receiver = arguments.length < 3 ? target : arguments[2]
, desc, proto;
if(anObject(target) === receiver)return target[propertyKey];
- if(desc = $.getDesc(target, propertyKey))return has(desc, 'value')
+ if(desc = gOPD.f(target, propertyKey))return has(desc, 'value')
? desc.value
: desc.get !== undefined
? desc.get.call(receiver)
: undefined;
- if(isObject(proto = $.getProto(target)))return get(proto, propertyKey, receiver);
+ if(isObject(proto = getPrototypeOf(target)))return get(proto, propertyKey, receiver);
}
$export($export.S, 'Reflect', {get: get}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.reflect.has.js b/node_modules/core-js/library/modules/es6.reflect.has.js
index 65c9e82ff..bbb6dbcde 100644
--- a/node_modules/core-js/library/modules/es6.reflect.has.js
+++ b/node_modules/core-js/library/modules/es6.reflect.has.js
@@ -1,5 +1,5 @@
// 26.1.9 Reflect.has(target, propertyKey)
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.S, 'Reflect', {
has: function has(target, propertyKey){
diff --git a/node_modules/core-js/library/modules/es6.reflect.is-extensible.js b/node_modules/core-js/library/modules/es6.reflect.is-extensible.js
index b92c4f66b..ffbc2848e 100644
--- a/node_modules/core-js/library/modules/es6.reflect.is-extensible.js
+++ b/node_modules/core-js/library/modules/es6.reflect.is-extensible.js
@@ -1,6 +1,6 @@
// 26.1.10 Reflect.isExtensible(target)
-var $export = require('./$.export')
- , anObject = require('./$.an-object')
+var $export = require('./_export')
+ , anObject = require('./_an-object')
, $isExtensible = Object.isExtensible;
$export($export.S, 'Reflect', {
diff --git a/node_modules/core-js/library/modules/es6.reflect.own-keys.js b/node_modules/core-js/library/modules/es6.reflect.own-keys.js
index db79fdabc..a1e5330c2 100644
--- a/node_modules/core-js/library/modules/es6.reflect.own-keys.js
+++ b/node_modules/core-js/library/modules/es6.reflect.own-keys.js
@@ -1,4 +1,4 @@
// 26.1.11 Reflect.ownKeys(target)
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.S, 'Reflect', {ownKeys: require('./$.own-keys')}); \ No newline at end of file
+$export($export.S, 'Reflect', {ownKeys: require('./_own-keys')}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.reflect.prevent-extensions.js b/node_modules/core-js/library/modules/es6.reflect.prevent-extensions.js
index f5ccfc2a2..d3dad8ee4 100644
--- a/node_modules/core-js/library/modules/es6.reflect.prevent-extensions.js
+++ b/node_modules/core-js/library/modules/es6.reflect.prevent-extensions.js
@@ -1,6 +1,6 @@
// 26.1.12 Reflect.preventExtensions(target)
-var $export = require('./$.export')
- , anObject = require('./$.an-object')
+var $export = require('./_export')
+ , anObject = require('./_an-object')
, $preventExtensions = Object.preventExtensions;
$export($export.S, 'Reflect', {
diff --git a/node_modules/core-js/library/modules/es6.reflect.set-prototype-of.js b/node_modules/core-js/library/modules/es6.reflect.set-prototype-of.js
index e769436fc..b79d9b613 100644
--- a/node_modules/core-js/library/modules/es6.reflect.set-prototype-of.js
+++ b/node_modules/core-js/library/modules/es6.reflect.set-prototype-of.js
@@ -1,6 +1,6 @@
// 26.1.14 Reflect.setPrototypeOf(target, proto)
-var $export = require('./$.export')
- , setProto = require('./$.set-proto');
+var $export = require('./_export')
+ , setProto = require('./_set-proto');
if(setProto)$export($export.S, 'Reflect', {
setPrototypeOf: function setPrototypeOf(target, proto){
diff --git a/node_modules/core-js/library/modules/es6.reflect.set.js b/node_modules/core-js/library/modules/es6.reflect.set.js
index 0a938e784..c6b916a2e 100644
--- a/node_modules/core-js/library/modules/es6.reflect.set.js
+++ b/node_modules/core-js/library/modules/es6.reflect.set.js
@@ -1,26 +1,28 @@
// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
-var $ = require('./$')
- , has = require('./$.has')
- , $export = require('./$.export')
- , createDesc = require('./$.property-desc')
- , anObject = require('./$.an-object')
- , isObject = require('./$.is-object');
+var dP = require('./_object-dp')
+ , gOPD = require('./_object-gopd')
+ , getPrototypeOf = require('./_object-gpo')
+ , has = require('./_has')
+ , $export = require('./_export')
+ , createDesc = require('./_property-desc')
+ , anObject = require('./_an-object')
+ , isObject = require('./_is-object');
function set(target, propertyKey, V/*, receiver*/){
var receiver = arguments.length < 4 ? target : arguments[3]
- , ownDesc = $.getDesc(anObject(target), propertyKey)
+ , ownDesc = gOPD.f(anObject(target), propertyKey)
, existingDescriptor, proto;
if(!ownDesc){
- if(isObject(proto = $.getProto(target))){
+ if(isObject(proto = getPrototypeOf(target))){
return set(proto, propertyKey, V, receiver);
}
ownDesc = createDesc(0);
}
if(has(ownDesc, 'value')){
if(ownDesc.writable === false || !isObject(receiver))return false;
- existingDescriptor = $.getDesc(receiver, propertyKey) || createDesc(0);
+ existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);
existingDescriptor.value = V;
- $.setDesc(receiver, propertyKey, existingDescriptor);
+ dP.f(receiver, propertyKey, existingDescriptor);
return true;
}
return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
diff --git a/node_modules/core-js/library/modules/es6.regexp.constructor.js b/node_modules/core-js/library/modules/es6.regexp.constructor.js
index 087d9beb9..7313c52b3 100644
--- a/node_modules/core-js/library/modules/es6.regexp.constructor.js
+++ b/node_modules/core-js/library/modules/es6.regexp.constructor.js
@@ -1 +1 @@
-require('./$.set-species')('RegExp'); \ No newline at end of file
+require('./_set-species')('RegExp'); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.set.js b/node_modules/core-js/library/modules/es6.set.js
index 8e148c9e2..a18808818 100644
--- a/node_modules/core-js/library/modules/es6.set.js
+++ b/node_modules/core-js/library/modules/es6.set.js
@@ -1,8 +1,8 @@
'use strict';
-var strong = require('./$.collection-strong');
+var strong = require('./_collection-strong');
// 23.2 Set Objects
-require('./$.collection')('Set', function(get){
+module.exports = require('./_collection')('Set', function(get){
return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.2.3.1 Set.prototype.add(value)
diff --git a/node_modules/core-js/library/modules/es6.string.code-point-at.js b/node_modules/core-js/library/modules/es6.string.code-point-at.js
index ebac55180..cf544652a 100644
--- a/node_modules/core-js/library/modules/es6.string.code-point-at.js
+++ b/node_modules/core-js/library/modules/es6.string.code-point-at.js
@@ -1,6 +1,6 @@
'use strict';
-var $export = require('./$.export')
- , $at = require('./$.string-at')(false);
+var $export = require('./_export')
+ , $at = require('./_string-at')(false);
$export($export.P, 'String', {
// 21.1.3.3 String.prototype.codePointAt(pos)
codePointAt: function codePointAt(pos){
diff --git a/node_modules/core-js/library/modules/es6.string.ends-with.js b/node_modules/core-js/library/modules/es6.string.ends-with.js
index a102da2d4..80baed9ad 100644
--- a/node_modules/core-js/library/modules/es6.string.ends-with.js
+++ b/node_modules/core-js/library/modules/es6.string.ends-with.js
@@ -1,16 +1,15 @@
// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
'use strict';
-var $export = require('./$.export')
- , toLength = require('./$.to-length')
- , context = require('./$.string-context')
+var $export = require('./_export')
+ , toLength = require('./_to-length')
+ , context = require('./_string-context')
, ENDS_WITH = 'endsWith'
, $endsWith = ''[ENDS_WITH];
-$export($export.P + $export.F * require('./$.fails-is-regexp')(ENDS_WITH), 'String', {
+$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {
endsWith: function endsWith(searchString /*, endPosition = @length */){
var that = context(this, searchString, ENDS_WITH)
- , $$ = arguments
- , endPosition = $$.length > 1 ? $$[1] : undefined
+ , endPosition = arguments.length > 1 ? arguments[1] : undefined
, len = toLength(that.length)
, end = endPosition === undefined ? len : Math.min(toLength(endPosition), len)
, search = String(searchString);
diff --git a/node_modules/core-js/library/modules/es6.string.from-code-point.js b/node_modules/core-js/library/modules/es6.string.from-code-point.js
index b0bd166bf..c8776d871 100644
--- a/node_modules/core-js/library/modules/es6.string.from-code-point.js
+++ b/node_modules/core-js/library/modules/es6.string.from-code-point.js
@@ -1,5 +1,5 @@
-var $export = require('./$.export')
- , toIndex = require('./$.to-index')
+var $export = require('./_export')
+ , toIndex = require('./_to-index')
, fromCharCode = String.fromCharCode
, $fromCodePoint = String.fromCodePoint;
@@ -7,13 +7,12 @@ var $export = require('./$.export')
$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
// 21.1.2.2 String.fromCodePoint(...codePoints)
fromCodePoint: function fromCodePoint(x){ // eslint-disable-line no-unused-vars
- var res = []
- , $$ = arguments
- , $$len = $$.length
- , i = 0
+ var res = []
+ , aLen = arguments.length
+ , i = 0
, code;
- while($$len > i){
- code = +$$[i++];
+ while(aLen > i){
+ code = +arguments[i++];
if(toIndex(code, 0x10ffff) !== code)throw RangeError(code + ' is not a valid code point');
res.push(code < 0x10000
? fromCharCode(code)
diff --git a/node_modules/core-js/library/modules/es6.string.includes.js b/node_modules/core-js/library/modules/es6.string.includes.js
index e2ab8db7e..c6b4ee2fa 100644
--- a/node_modules/core-js/library/modules/es6.string.includes.js
+++ b/node_modules/core-js/library/modules/es6.string.includes.js
@@ -1,10 +1,10 @@
// 21.1.3.7 String.prototype.includes(searchString, position = 0)
'use strict';
-var $export = require('./$.export')
- , context = require('./$.string-context')
+var $export = require('./_export')
+ , context = require('./_string-context')
, INCLUDES = 'includes';
-$export($export.P + $export.F * require('./$.fails-is-regexp')(INCLUDES), 'String', {
+$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {
includes: function includes(searchString /*, position = 0 */){
return !!~context(this, searchString, INCLUDES)
.indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
diff --git a/node_modules/core-js/library/modules/es6.string.iterator.js b/node_modules/core-js/library/modules/es6.string.iterator.js
index 2f4c772c3..ac391ee4e 100644
--- a/node_modules/core-js/library/modules/es6.string.iterator.js
+++ b/node_modules/core-js/library/modules/es6.string.iterator.js
@@ -1,8 +1,8 @@
'use strict';
-var $at = require('./$.string-at')(true);
+var $at = require('./_string-at')(true);
// 21.1.3.27 String.prototype[@@iterator]()
-require('./$.iter-define')(String, 'String', function(iterated){
+require('./_iter-define')(String, 'String', function(iterated){
this._t = String(iterated); // target
this._i = 0; // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
diff --git a/node_modules/core-js/library/modules/es6.string.raw.js b/node_modules/core-js/library/modules/es6.string.raw.js
index 64279d23d..1016acfa2 100644
--- a/node_modules/core-js/library/modules/es6.string.raw.js
+++ b/node_modules/core-js/library/modules/es6.string.raw.js
@@ -1,19 +1,18 @@
-var $export = require('./$.export')
- , toIObject = require('./$.to-iobject')
- , toLength = require('./$.to-length');
+var $export = require('./_export')
+ , toIObject = require('./_to-iobject')
+ , toLength = require('./_to-length');
$export($export.S, 'String', {
// 21.1.2.4 String.raw(callSite, ...substitutions)
raw: function raw(callSite){
- var tpl = toIObject(callSite.raw)
- , len = toLength(tpl.length)
- , $$ = arguments
- , $$len = $$.length
- , res = []
- , i = 0;
+ var tpl = toIObject(callSite.raw)
+ , len = toLength(tpl.length)
+ , aLen = arguments.length
+ , res = []
+ , i = 0;
while(len > i){
res.push(String(tpl[i++]));
- if(i < $$len)res.push(String($$[i]));
+ if(i < aLen)res.push(String(arguments[i]));
} return res.join('');
}
}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.string.repeat.js b/node_modules/core-js/library/modules/es6.string.repeat.js
index 4ec29f66a..a054222d6 100644
--- a/node_modules/core-js/library/modules/es6.string.repeat.js
+++ b/node_modules/core-js/library/modules/es6.string.repeat.js
@@ -1,6 +1,6 @@
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.P, 'String', {
// 21.1.3.13 String.prototype.repeat(count)
- repeat: require('./$.string-repeat')
+ repeat: require('./_string-repeat')
}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.string.starts-with.js b/node_modules/core-js/library/modules/es6.string.starts-with.js
index 21143072e..017805f01 100644
--- a/node_modules/core-js/library/modules/es6.string.starts-with.js
+++ b/node_modules/core-js/library/modules/es6.string.starts-with.js
@@ -1,16 +1,15 @@
// 21.1.3.18 String.prototype.startsWith(searchString [, position ])
'use strict';
-var $export = require('./$.export')
- , toLength = require('./$.to-length')
- , context = require('./$.string-context')
+var $export = require('./_export')
+ , toLength = require('./_to-length')
+ , context = require('./_string-context')
, STARTS_WITH = 'startsWith'
, $startsWith = ''[STARTS_WITH];
-$export($export.P + $export.F * require('./$.fails-is-regexp')(STARTS_WITH), 'String', {
+$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {
startsWith: function startsWith(searchString /*, position = 0 */){
var that = context(this, searchString, STARTS_WITH)
- , $$ = arguments
- , index = toLength(Math.min($$.length > 1 ? $$[1] : undefined, that.length))
+ , index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length))
, search = String(searchString);
return $startsWith
? $startsWith.call(that, search, index)
diff --git a/node_modules/core-js/library/modules/es6.string.trim.js b/node_modules/core-js/library/modules/es6.string.trim.js
index 52b75cac6..35f0fb0b8 100644
--- a/node_modules/core-js/library/modules/es6.string.trim.js
+++ b/node_modules/core-js/library/modules/es6.string.trim.js
@@ -1,6 +1,6 @@
'use strict';
// 21.1.3.25 String.prototype.trim()
-require('./$.string-trim')('trim', function($trim){
+require('./_string-trim')('trim', function($trim){
return function trim(){
return $trim(this, 3);
};
diff --git a/node_modules/core-js/library/modules/es6.symbol.js b/node_modules/core-js/library/modules/es6.symbol.js
index 42b7a3aaa..eae491c5a 100644
--- a/node_modules/core-js/library/modules/es6.symbol.js
+++ b/node_modules/core-js/library/modules/es6.symbol.js
@@ -1,77 +1,87 @@
'use strict';
// ECMAScript 6 symbols shim
-var $ = require('./$')
- , global = require('./$.global')
- , has = require('./$.has')
- , DESCRIPTORS = require('./$.descriptors')
- , $export = require('./$.export')
- , redefine = require('./$.redefine')
- , $fails = require('./$.fails')
- , shared = require('./$.shared')
- , setToStringTag = require('./$.set-to-string-tag')
- , uid = require('./$.uid')
- , wks = require('./$.wks')
- , keyOf = require('./$.keyof')
- , $names = require('./$.get-names')
- , enumKeys = require('./$.enum-keys')
- , isArray = require('./$.is-array')
- , anObject = require('./$.an-object')
- , toIObject = require('./$.to-iobject')
- , createDesc = require('./$.property-desc')
- , getDesc = $.getDesc
- , setDesc = $.setDesc
- , _create = $.create
- , getNames = $names.get
+var global = require('./_global')
+ , has = require('./_has')
+ , DESCRIPTORS = require('./_descriptors')
+ , $export = require('./_export')
+ , redefine = require('./_redefine')
+ , META = require('./_meta').KEY
+ , $fails = require('./_fails')
+ , shared = require('./_shared')
+ , setToStringTag = require('./_set-to-string-tag')
+ , uid = require('./_uid')
+ , wks = require('./_wks')
+ , wksExt = require('./_wks-ext')
+ , wksDefine = require('./_wks-define')
+ , keyOf = require('./_keyof')
+ , enumKeys = require('./_enum-keys')
+ , isArray = require('./_is-array')
+ , anObject = require('./_an-object')
+ , toIObject = require('./_to-iobject')
+ , toPrimitive = require('./_to-primitive')
+ , createDesc = require('./_property-desc')
+ , _create = require('./_object-create')
+ , gOPNExt = require('./_object-gopn-ext')
+ , $GOPD = require('./_object-gopd')
+ , $DP = require('./_object-dp')
+ , $keys = require('./_object-keys')
+ , gOPD = $GOPD.f
+ , dP = $DP.f
+ , gOPN = gOPNExt.f
, $Symbol = global.Symbol
, $JSON = global.JSON
, _stringify = $JSON && $JSON.stringify
- , setter = false
+ , PROTOTYPE = 'prototype'
, HIDDEN = wks('_hidden')
- , isEnum = $.isEnum
+ , TO_PRIMITIVE = wks('toPrimitive')
+ , isEnum = {}.propertyIsEnumerable
, SymbolRegistry = shared('symbol-registry')
, AllSymbols = shared('symbols')
- , useNative = typeof $Symbol == 'function'
- , ObjectProto = Object.prototype;
+ , OPSymbols = shared('op-symbols')
+ , ObjectProto = Object[PROTOTYPE]
+ , USE_NATIVE = typeof $Symbol == 'function'
+ , QObject = global.QObject;
+// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
+var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
var setSymbolDesc = DESCRIPTORS && $fails(function(){
- return _create(setDesc({}, 'a', {
- get: function(){ return setDesc(this, 'a', {value: 7}).a; }
+ return _create(dP({}, 'a', {
+ get: function(){ return dP(this, 'a', {value: 7}).a; }
})).a != 7;
}) ? function(it, key, D){
- var protoDesc = getDesc(ObjectProto, key);
+ var protoDesc = gOPD(ObjectProto, key);
if(protoDesc)delete ObjectProto[key];
- setDesc(it, key, D);
- if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);
-} : setDesc;
+ dP(it, key, D);
+ if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);
+} : dP;
var wrap = function(tag){
- var sym = AllSymbols[tag] = _create($Symbol.prototype);
+ var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
sym._k = tag;
- DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {
- configurable: true,
- set: function(value){
- if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
- setSymbolDesc(this, tag, createDesc(1, value));
- }
- });
return sym;
};
-var isSymbol = function(it){
+var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){
return typeof it == 'symbol';
+} : function(it){
+ return it instanceof $Symbol;
};
var $defineProperty = function defineProperty(it, key, D){
- if(D && has(AllSymbols, key)){
+ if(it === ObjectProto)$defineProperty(OPSymbols, key, D);
+ anObject(it);
+ key = toPrimitive(key, true);
+ anObject(D);
+ if(has(AllSymbols, key)){
if(!D.enumerable){
- if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));
+ if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));
it[HIDDEN][key] = true;
} else {
if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
D = _create(D, {enumerable: createDesc(0, false)});
} return setSymbolDesc(it, key, D);
- } return setDesc(it, key, D);
+ } return dP(it, key, D);
};
var $defineProperties = function defineProperties(it, P){
anObject(it);
@@ -86,83 +96,80 @@ var $create = function create(it, P){
return P === undefined ? _create(it) : $defineProperties(_create(it), P);
};
var $propertyIsEnumerable = function propertyIsEnumerable(key){
- var E = isEnum.call(this, key);
- return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]
- ? E : true;
+ var E = isEnum.call(this, key = toPrimitive(key, true));
+ if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;
+ return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
};
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
- var D = getDesc(it = toIObject(it), key);
+ it = toIObject(it);
+ key = toPrimitive(key, true);
+ if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;
+ var D = gOPD(it, key);
if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
return D;
};
var $getOwnPropertyNames = function getOwnPropertyNames(it){
- var names = getNames(toIObject(it))
+ var names = gOPN(toIObject(it))
, result = []
, i = 0
, key;
- while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);
- return result;
+ while(names.length > i){
+ if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);
+ } return result;
};
var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
- var names = getNames(toIObject(it))
+ var IS_OP = it === ObjectProto
+ , names = gOPN(IS_OP ? OPSymbols : toIObject(it))
, result = []
, i = 0
, key;
- while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);
- return result;
+ while(names.length > i){
+ if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);
+ } return result;
};
-var $stringify = function stringify(it){
- if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
- var args = [it]
- , i = 1
- , $$ = arguments
- , replacer, $replacer;
- while($$.length > i)args.push($$[i++]);
- replacer = args[1];
- if(typeof replacer == 'function')$replacer = replacer;
- if($replacer || !isArray(replacer))replacer = function(key, value){
- if($replacer)value = $replacer.call(this, key, value);
- if(!isSymbol(value))return value;
- };
- args[1] = replacer;
- return _stringify.apply($JSON, args);
-};
-var buggyJSON = $fails(function(){
- var S = $Symbol();
- // MS Edge converts symbol values to JSON as {}
- // WebKit converts symbol values to JSON as null
- // V8 throws on boxed symbols
- return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
-});
// 19.4.1.1 Symbol([description])
-if(!useNative){
+if(!USE_NATIVE){
$Symbol = function Symbol(){
- if(isSymbol(this))throw TypeError('Symbol is not a constructor');
- return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));
+ if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');
+ var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
+ var $set = function(value){
+ if(this === ObjectProto)$set.call(OPSymbols, value);
+ if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
+ setSymbolDesc(this, tag, createDesc(1, value));
+ };
+ if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});
+ return wrap(tag);
};
- redefine($Symbol.prototype, 'toString', function toString(){
+ redefine($Symbol[PROTOTYPE], 'toString', function toString(){
return this._k;
});
- isSymbol = function(it){
- return it instanceof $Symbol;
- };
-
- $.create = $create;
- $.isEnum = $propertyIsEnumerable;
- $.getDesc = $getOwnPropertyDescriptor;
- $.setDesc = $defineProperty;
- $.setDescs = $defineProperties;
- $.getNames = $names.get = $getOwnPropertyNames;
- $.getSymbols = $getOwnPropertySymbols;
+ $GOPD.f = $getOwnPropertyDescriptor;
+ $DP.f = $defineProperty;
+ require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;
+ require('./_object-pie').f = $propertyIsEnumerable;
+ require('./_object-gops').f = $getOwnPropertySymbols;
- if(DESCRIPTORS && !require('./$.library')){
+ if(DESCRIPTORS && !require('./_library')){
redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
}
+
+ wksExt.f = function(name){
+ return wrap(wks(name));
+ }
}
-var symbolStatics = {
+$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});
+
+for(var symbols = (
+ // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
+ 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
+).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);
+
+for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);
+
+$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
// 19.4.2.1 Symbol.for(key)
'for': function(key){
return has(SymbolRegistry, key += '')
@@ -171,37 +178,14 @@ var symbolStatics = {
},
// 19.4.2.5 Symbol.keyFor(sym)
keyFor: function keyFor(key){
- return keyOf(SymbolRegistry, key);
+ if(isSymbol(key))return keyOf(SymbolRegistry, key);
+ throw TypeError(key + ' is not a symbol!');
},
useSetter: function(){ setter = true; },
useSimple: function(){ setter = false; }
-};
-// 19.4.2.2 Symbol.hasInstance
-// 19.4.2.3 Symbol.isConcatSpreadable
-// 19.4.2.4 Symbol.iterator
-// 19.4.2.6 Symbol.match
-// 19.4.2.8 Symbol.replace
-// 19.4.2.9 Symbol.search
-// 19.4.2.10 Symbol.species
-// 19.4.2.11 Symbol.split
-// 19.4.2.12 Symbol.toPrimitive
-// 19.4.2.13 Symbol.toStringTag
-// 19.4.2.14 Symbol.unscopables
-$.each.call((
- 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +
- 'species,split,toPrimitive,toStringTag,unscopables'
-).split(','), function(it){
- var sym = wks(it);
- symbolStatics[it] = useNative ? sym : wrap(sym);
});
-setter = true;
-
-$export($export.G + $export.W, {Symbol: $Symbol});
-
-$export($export.S, 'Symbol', symbolStatics);
-
-$export($export.S + $export.F * !useNative, 'Object', {
+$export($export.S + $export.F * !USE_NATIVE, 'Object', {
// 19.1.2.2 Object.create(O [, Properties])
create: $create,
// 19.1.2.4 Object.defineProperty(O, P, Attributes)
@@ -217,8 +201,32 @@ $export($export.S + $export.F * !useNative, 'Object', {
});
// 24.3.2 JSON.stringify(value [, replacer [, space]])
-$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});
+$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){
+ var S = $Symbol();
+ // MS Edge converts symbol values to JSON as {}
+ // WebKit converts symbol values to JSON as null
+ // V8 throws on boxed symbols
+ return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
+})), 'JSON', {
+ stringify: function stringify(it){
+ if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
+ var args = [it]
+ , i = 1
+ , replacer, $replacer;
+ while(arguments.length > i)args.push(arguments[i++]);
+ replacer = args[1];
+ if(typeof replacer == 'function')$replacer = replacer;
+ if($replacer || !isArray(replacer))replacer = function(key, value){
+ if($replacer)value = $replacer.call(this, key, value);
+ if(!isSymbol(value))return value;
+ };
+ args[1] = replacer;
+ return _stringify.apply($JSON, args);
+ }
+});
+// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
+$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
// 19.4.3.5 Symbol.prototype[@@toStringTag]
setToStringTag($Symbol, 'Symbol');
// 20.2.1.9 Math[@@toStringTag]
diff --git a/node_modules/core-js/library/modules/es6.typed.array-buffer.js b/node_modules/core-js/library/modules/es6.typed.array-buffer.js
index a8209bd2d..9f47082c2 100644
--- a/node_modules/core-js/library/modules/es6.typed.array-buffer.js
+++ b/node_modules/core-js/library/modules/es6.typed.array-buffer.js
@@ -1,43 +1,46 @@
'use strict';
-if(require('./$.descriptors')){
- var $export = require('./$.export')
- , $typed = require('./$.typed')
- , buffer = require('./$.buffer')
- , toIndex = require('./$.to-index')
- , toLength = require('./$.to-length')
- , isObject = require('./$.is-object')
- , TYPED_ARRAY = require('./$.wks')('typed_array')
- , $ArrayBuffer = buffer.ArrayBuffer
- , $DataView = buffer.DataView
- , $slice = $ArrayBuffer && $ArrayBuffer.prototype.slice
- , VIEW = $typed.VIEW
- , ARRAY_BUFFER = 'ArrayBuffer';
+var $export = require('./_export')
+ , $typed = require('./_typed')
+ , buffer = require('./_typed-buffer')
+ , anObject = require('./_an-object')
+ , toIndex = require('./_to-index')
+ , toLength = require('./_to-length')
+ , isObject = require('./_is-object')
+ , ArrayBuffer = require('./_global').ArrayBuffer
+ , speciesConstructor = require('./_species-constructor')
+ , $ArrayBuffer = buffer.ArrayBuffer
+ , $DataView = buffer.DataView
+ , $isView = $typed.ABV && ArrayBuffer.isView
+ , $slice = $ArrayBuffer.prototype.slice
+ , VIEW = $typed.VIEW
+ , ARRAY_BUFFER = 'ArrayBuffer';
- $export($export.G + $export.W + $export.F * !$typed.ABV, {ArrayBuffer: $ArrayBuffer});
+$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), {ArrayBuffer: $ArrayBuffer});
- $export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {
- // 24.1.3.1 ArrayBuffer.isView(arg)
- isView: function isView(it){ // not cross-realm
- return isObject(it) && VIEW in it;
- }
- });
+$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {
+ // 24.1.3.1 ArrayBuffer.isView(arg)
+ isView: function isView(it){
+ return $isView && $isView(it) || isObject(it) && VIEW in it;
+ }
+});
- $export($export.P + $export.F * require('./$.fails')(function(){
- return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
- }), ARRAY_BUFFER, {
- // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
- slice: function slice(start, end){
- if($slice !== undefined && end === undefined)return $slice.call(this, start); // FF fix
- var len = this.byteLength
- , first = toIndex(start, len)
- , final = toIndex(end === undefined ? len : end, len)
- , result = new $ArrayBuffer(toLength(final - first))
- , viewS = new $DataView(this)
- , viewT = new $DataView(result)
- , index = 0;
- while(first < final){
- viewT.setUint8(index++, viewS.getUint8(first++));
- } return result;
- }
- });
-} \ No newline at end of file
+$export($export.P + $export.U + $export.F * require('./_fails')(function(){
+ return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
+}), ARRAY_BUFFER, {
+ // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
+ slice: function slice(start, end){
+ if($slice !== undefined && end === undefined)return $slice.call(anObject(this), start); // FF fix
+ var len = anObject(this).byteLength
+ , first = toIndex(start, len)
+ , final = toIndex(end === undefined ? len : end, len)
+ , result = new (speciesConstructor(this, $ArrayBuffer))(toLength(final - first))
+ , viewS = new $DataView(this)
+ , viewT = new $DataView(result)
+ , index = 0;
+ while(first < final){
+ viewT.setUint8(index++, viewS.getUint8(first++));
+ } return result;
+ }
+});
+
+require('./_set-species')(ARRAY_BUFFER); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.typed.data-view.js b/node_modules/core-js/library/modules/es6.typed.data-view.js
index 44e035320..ee7b88127 100644
--- a/node_modules/core-js/library/modules/es6.typed.data-view.js
+++ b/node_modules/core-js/library/modules/es6.typed.data-view.js
@@ -1,4 +1,4 @@
-if(require('./$.descriptors')){
- var $export = require('./$.export');
- $export($export.G + $export.W + $export.F * !require('./$.typed').ABV, {DataView: require('./$.buffer').DataView});
-} \ No newline at end of file
+var $export = require('./_export');
+$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {
+ DataView: require('./_typed-buffer').DataView
+}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es6.typed.float32-array.js b/node_modules/core-js/library/modules/es6.typed.float32-array.js
index 95d78a6d4..2c4c9a699 100644
--- a/node_modules/core-js/library/modules/es6.typed.float32-array.js
+++ b/node_modules/core-js/library/modules/es6.typed.float32-array.js
@@ -1,4 +1,4 @@
-require('./$.typed-array')('Float32', 4, function(init){
+require('./_typed-array')('Float32', 4, function(init){
return function Float32Array(data, byteOffset, length){
return init(this, data, byteOffset, length);
};
diff --git a/node_modules/core-js/library/modules/es6.typed.float64-array.js b/node_modules/core-js/library/modules/es6.typed.float64-array.js
index 16fadec9a..4b20257f7 100644
--- a/node_modules/core-js/library/modules/es6.typed.float64-array.js
+++ b/node_modules/core-js/library/modules/es6.typed.float64-array.js
@@ -1,4 +1,4 @@
-require('./$.typed-array')('Float64', 8, function(init){
+require('./_typed-array')('Float64', 8, function(init){
return function Float64Array(data, byteOffset, length){
return init(this, data, byteOffset, length);
};
diff --git a/node_modules/core-js/library/modules/es6.typed.int16-array.js b/node_modules/core-js/library/modules/es6.typed.int16-array.js
index a3d04cb63..d3f61c564 100644
--- a/node_modules/core-js/library/modules/es6.typed.int16-array.js
+++ b/node_modules/core-js/library/modules/es6.typed.int16-array.js
@@ -1,4 +1,4 @@
-require('./$.typed-array')('Int16', 2, function(init){
+require('./_typed-array')('Int16', 2, function(init){
return function Int16Array(data, byteOffset, length){
return init(this, data, byteOffset, length);
};
diff --git a/node_modules/core-js/library/modules/es6.typed.int32-array.js b/node_modules/core-js/library/modules/es6.typed.int32-array.js
index 1923463ac..df47c1bb0 100644
--- a/node_modules/core-js/library/modules/es6.typed.int32-array.js
+++ b/node_modules/core-js/library/modules/es6.typed.int32-array.js
@@ -1,4 +1,4 @@
-require('./$.typed-array')('Int32', 4, function(init){
+require('./_typed-array')('Int32', 4, function(init){
return function Int32Array(data, byteOffset, length){
return init(this, data, byteOffset, length);
};
diff --git a/node_modules/core-js/library/modules/es6.typed.int8-array.js b/node_modules/core-js/library/modules/es6.typed.int8-array.js
index e9182c4cc..da4dbf0a2 100644
--- a/node_modules/core-js/library/modules/es6.typed.int8-array.js
+++ b/node_modules/core-js/library/modules/es6.typed.int8-array.js
@@ -1,4 +1,4 @@
-require('./$.typed-array')('Int8', 1, function(init){
+require('./_typed-array')('Int8', 1, function(init){
return function Int8Array(data, byteOffset, length){
return init(this, data, byteOffset, length);
};
diff --git a/node_modules/core-js/library/modules/es6.typed.uint16-array.js b/node_modules/core-js/library/modules/es6.typed.uint16-array.js
index ec6e83477..cb335773d 100644
--- a/node_modules/core-js/library/modules/es6.typed.uint16-array.js
+++ b/node_modules/core-js/library/modules/es6.typed.uint16-array.js
@@ -1,4 +1,4 @@
-require('./$.typed-array')('Uint16', 2, function(init){
+require('./_typed-array')('Uint16', 2, function(init){
return function Uint16Array(data, byteOffset, length){
return init(this, data, byteOffset, length);
};
diff --git a/node_modules/core-js/library/modules/es6.typed.uint32-array.js b/node_modules/core-js/library/modules/es6.typed.uint32-array.js
index ddfc22d88..41c9e7b80 100644
--- a/node_modules/core-js/library/modules/es6.typed.uint32-array.js
+++ b/node_modules/core-js/library/modules/es6.typed.uint32-array.js
@@ -1,4 +1,4 @@
-require('./$.typed-array')('Uint32', 4, function(init){
+require('./_typed-array')('Uint32', 4, function(init){
return function Uint32Array(data, byteOffset, length){
return init(this, data, byteOffset, length);
};
diff --git a/node_modules/core-js/library/modules/es6.typed.uint8-array.js b/node_modules/core-js/library/modules/es6.typed.uint8-array.js
index 7ab1e4df7..f794f86cf 100644
--- a/node_modules/core-js/library/modules/es6.typed.uint8-array.js
+++ b/node_modules/core-js/library/modules/es6.typed.uint8-array.js
@@ -1,4 +1,4 @@
-require('./$.typed-array')('Uint8', 1, function(init){
+require('./_typed-array')('Uint8', 1, function(init){
return function Uint8Array(data, byteOffset, length){
return init(this, data, byteOffset, length);
};
diff --git a/node_modules/core-js/library/modules/es6.typed.uint8-clamped-array.js b/node_modules/core-js/library/modules/es6.typed.uint8-clamped-array.js
index f85f9d5d7..b12304799 100644
--- a/node_modules/core-js/library/modules/es6.typed.uint8-clamped-array.js
+++ b/node_modules/core-js/library/modules/es6.typed.uint8-clamped-array.js
@@ -1,4 +1,4 @@
-require('./$.typed-array')('Uint8', 1, function(init){
+require('./_typed-array')('Uint8', 1, function(init){
return function Uint8ClampedArray(data, byteOffset, length){
return init(this, data, byteOffset, length);
};
diff --git a/node_modules/core-js/library/modules/es6.weak-map.js b/node_modules/core-js/library/modules/es6.weak-map.js
index 72a9b3244..4109db336 100644
--- a/node_modules/core-js/library/modules/es6.weak-map.js
+++ b/node_modules/core-js/library/modules/es6.weak-map.js
@@ -1,40 +1,53 @@
'use strict';
-var $ = require('./$')
- , redefine = require('./$.redefine')
- , weak = require('./$.collection-weak')
- , isObject = require('./$.is-object')
- , has = require('./$.has')
- , frozenStore = weak.frozenStore
- , WEAK = weak.WEAK
- , isExtensible = Object.isExtensible || isObject
- , tmp = {};
+var each = require('./_array-methods')(0)
+ , redefine = require('./_redefine')
+ , meta = require('./_meta')
+ , assign = require('./_object-assign')
+ , weak = require('./_collection-weak')
+ , isObject = require('./_is-object')
+ , getWeak = meta.getWeak
+ , isExtensible = Object.isExtensible
+ , uncaughtFrozenStore = weak.ufstore
+ , tmp = {}
+ , InternalMap;
-// 23.3 WeakMap Objects
-var $WeakMap = require('./$.collection')('WeakMap', function(get){
- return function WeakMap(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
-}, {
+var wrapper = function(get){
+ return function WeakMap(){
+ return get(this, arguments.length > 0 ? arguments[0] : undefined);
+ };
+};
+
+var methods = {
// 23.3.3.3 WeakMap.prototype.get(key)
get: function get(key){
if(isObject(key)){
- if(!isExtensible(key))return frozenStore(this).get(key);
- if(has(key, WEAK))return key[WEAK][this._i];
+ var data = getWeak(key);
+ if(data === true)return uncaughtFrozenStore(this).get(key);
+ return data ? data[this._i] : undefined;
}
},
// 23.3.3.5 WeakMap.prototype.set(key, value)
set: function set(key, value){
return weak.def(this, key, value);
}
-}, weak, true, true);
+};
+
+// 23.3 WeakMap Objects
+var $WeakMap = module.exports = require('./_collection')('WeakMap', wrapper, methods, weak, true, true);
// IE11 WeakMap frozen keys fix
if(new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){
- $.each.call(['delete', 'has', 'get', 'set'], function(key){
+ InternalMap = weak.getConstructor(wrapper);
+ assign(InternalMap.prototype, methods);
+ meta.NEED = true;
+ each(['delete', 'has', 'get', 'set'], function(key){
var proto = $WeakMap.prototype
, method = proto[key];
redefine(proto, key, function(a, b){
- // store frozen objects on leaky map
+ // store frozen objects on internal weakmap shim
if(isObject(a) && !isExtensible(a)){
- var result = frozenStore(this)[key](a, b);
+ if(!this._f)this._f = new InternalMap;
+ var result = this._f[key](a, b);
return key == 'set' ? this : result;
// store all the rest on native weakmap
} return method.call(this, a, b);
diff --git a/node_modules/core-js/library/modules/es6.weak-set.js b/node_modules/core-js/library/modules/es6.weak-set.js
index efdf1d76f..77d01b6ba 100644
--- a/node_modules/core-js/library/modules/es6.weak-set.js
+++ b/node_modules/core-js/library/modules/es6.weak-set.js
@@ -1,8 +1,8 @@
'use strict';
-var weak = require('./$.collection-weak');
+var weak = require('./_collection-weak');
// 23.4 WeakSet Objects
-require('./$.collection')('WeakSet', function(get){
+require('./_collection')('WeakSet', function(get){
return function WeakSet(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.4.3.1 WeakSet.prototype.add(value)
diff --git a/node_modules/core-js/library/modules/es7.array.includes.js b/node_modules/core-js/library/modules/es7.array.includes.js
index dcfad704d..6d5b00905 100644
--- a/node_modules/core-js/library/modules/es7.array.includes.js
+++ b/node_modules/core-js/library/modules/es7.array.includes.js
@@ -1,12 +1,12 @@
'use strict';
-var $export = require('./$.export')
- , $includes = require('./$.array-includes')(true);
+// https://github.com/tc39/Array.prototype.includes
+var $export = require('./_export')
+ , $includes = require('./_array-includes')(true);
$export($export.P, 'Array', {
- // https://github.com/domenic/Array.prototype.includes
includes: function includes(el /*, fromIndex = 0 */){
return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
}
});
-require('./$.add-to-unscopables')('includes'); \ No newline at end of file
+require('./_add-to-unscopables')('includes'); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es7.map.to-json.js b/node_modules/core-js/library/modules/es7.map.to-json.js
index 809370564..19f9b6d38 100644
--- a/node_modules/core-js/library/modules/es7.map.to-json.js
+++ b/node_modules/core-js/library/modules/es7.map.to-json.js
@@ -1,4 +1,4 @@
// https://github.com/DavidBruant/Map-Set.prototype.toJSON
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.P, 'Map', {toJSON: require('./$.collection-to-json')('Map')}); \ No newline at end of file
+$export($export.P + $export.R, 'Map', {toJSON: require('./_collection-to-json')('Map')}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es7.object.entries.js b/node_modules/core-js/library/modules/es7.object.entries.js
index fec1bc36c..cfc049dfa 100644
--- a/node_modules/core-js/library/modules/es7.object.entries.js
+++ b/node_modules/core-js/library/modules/es7.object.entries.js
@@ -1,6 +1,6 @@
-// http://goo.gl/XkBrjD
-var $export = require('./$.export')
- , $entries = require('./$.object-to-array')(true);
+// https://github.com/tc39/proposal-object-values-entries
+var $export = require('./_export')
+ , $entries = require('./_object-to-array')(true);
$export($export.S, 'Object', {
entries: function entries(it){
diff --git a/node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js b/node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js
index e4d80a34e..0242b7a0c 100644
--- a/node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js
+++ b/node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js
@@ -1,23 +1,19 @@
-// https://gist.github.com/WebReflection/9353781
-var $ = require('./$')
- , $export = require('./$.export')
- , ownKeys = require('./$.own-keys')
- , toIObject = require('./$.to-iobject')
- , createDesc = require('./$.property-desc');
+// https://github.com/tc39/proposal-object-getownpropertydescriptors
+var $export = require('./_export')
+ , ownKeys = require('./_own-keys')
+ , toIObject = require('./_to-iobject')
+ , gOPD = require('./_object-gopd')
+ , createProperty = require('./_create-property');
$export($export.S, 'Object', {
getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){
var O = toIObject(object)
- , setDesc = $.setDesc
- , getDesc = $.getDesc
+ , getDesc = gOPD.f
, keys = ownKeys(O)
, result = {}
, i = 0
- , key, D;
- while(keys.length > i){
- D = getDesc(O, key = keys[i++]);
- if(key in result)setDesc(result, key, createDesc(0, D));
- else result[key] = D;
- } return result;
+ , key;
+ while(keys.length > i)createProperty(result, key = keys[i++], getDesc(O, key));
+ return result;
}
}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es7.object.values.js b/node_modules/core-js/library/modules/es7.object.values.js
index 697e93545..42abd640b 100644
--- a/node_modules/core-js/library/modules/es7.object.values.js
+++ b/node_modules/core-js/library/modules/es7.object.values.js
@@ -1,6 +1,6 @@
-// http://goo.gl/XkBrjD
-var $export = require('./$.export')
- , $values = require('./$.object-to-array')(false);
+// https://github.com/tc39/proposal-object-values-entries
+var $export = require('./_export')
+ , $values = require('./_object-to-array')(false);
$export($export.S, 'Object', {
values: function values(it){
diff --git a/node_modules/core-js/library/modules/es7.regexp.escape.js b/node_modules/core-js/library/modules/es7.regexp.escape.js
deleted file mode 100644
index 9c4c542a1..000000000
--- a/node_modules/core-js/library/modules/es7.regexp.escape.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// https://github.com/benjamingr/RexExp.escape
-var $export = require('./$.export')
- , $re = require('./$.replacer')(/[\\^$*+?.()|[\]{}]/g, '\\$&');
-
-$export($export.S, 'RegExp', {escape: function escape(it){ return $re(it); }});
diff --git a/node_modules/core-js/library/modules/es7.set.to-json.js b/node_modules/core-js/library/modules/es7.set.to-json.js
index e632f2a37..fd68cb510 100644
--- a/node_modules/core-js/library/modules/es7.set.to-json.js
+++ b/node_modules/core-js/library/modules/es7.set.to-json.js
@@ -1,4 +1,4 @@
// https://github.com/DavidBruant/Map-Set.prototype.toJSON
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.P, 'Set', {toJSON: require('./$.collection-to-json')('Set')}); \ No newline at end of file
+$export($export.P + $export.R, 'Set', {toJSON: require('./_collection-to-json')('Set')}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es7.string.at.js b/node_modules/core-js/library/modules/es7.string.at.js
index fee583bf6..208654e6c 100644
--- a/node_modules/core-js/library/modules/es7.string.at.js
+++ b/node_modules/core-js/library/modules/es7.string.at.js
@@ -1,7 +1,7 @@
'use strict';
// https://github.com/mathiasbynens/String.prototype.at
-var $export = require('./$.export')
- , $at = require('./$.string-at')(true);
+var $export = require('./_export')
+ , $at = require('./_string-at')(true);
$export($export.P, 'String', {
at: function at(pos){
diff --git a/node_modules/core-js/library/modules/es7.string.pad-left.js b/node_modules/core-js/library/modules/es7.string.pad-left.js
deleted file mode 100644
index 643621aad..000000000
--- a/node_modules/core-js/library/modules/es7.string.pad-left.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-var $export = require('./$.export')
- , $pad = require('./$.string-pad');
-
-$export($export.P, 'String', {
- padLeft: function padLeft(maxLength /*, fillString = ' ' */){
- return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
- }
-}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es7.string.pad-right.js b/node_modules/core-js/library/modules/es7.string.pad-right.js
deleted file mode 100644
index e42309602..000000000
--- a/node_modules/core-js/library/modules/es7.string.pad-right.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-var $export = require('./$.export')
- , $pad = require('./$.string-pad');
-
-$export($export.P, 'String', {
- padRight: function padRight(maxLength /*, fillString = ' ' */){
- return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
- }
-}); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es7.string.trim-left.js b/node_modules/core-js/library/modules/es7.string.trim-left.js
index dbaf63080..e58457714 100644
--- a/node_modules/core-js/library/modules/es7.string.trim-left.js
+++ b/node_modules/core-js/library/modules/es7.string.trim-left.js
@@ -1,7 +1,7 @@
'use strict';
// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
-require('./$.string-trim')('trimLeft', function($trim){
+require('./_string-trim')('trimLeft', function($trim){
return function trimLeft(){
return $trim(this, 1);
};
-}); \ No newline at end of file
+}, 'trimStart'); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/es7.string.trim-right.js b/node_modules/core-js/library/modules/es7.string.trim-right.js
index 6b02d394a..42a9ed33b 100644
--- a/node_modules/core-js/library/modules/es7.string.trim-right.js
+++ b/node_modules/core-js/library/modules/es7.string.trim-right.js
@@ -1,7 +1,7 @@
'use strict';
// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
-require('./$.string-trim')('trimRight', function($trim){
+require('./_string-trim')('trimRight', function($trim){
return function trimRight(){
return $trim(this, 2);
};
-}); \ No newline at end of file
+}, 'trimEnd'); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/js.array.statics.js b/node_modules/core-js/library/modules/js.array.statics.js
deleted file mode 100644
index 9536c2e48..000000000
--- a/node_modules/core-js/library/modules/js.array.statics.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// JavaScript 1.6 / Strawman array statics shim
-var $ = require('./$')
- , $export = require('./$.export')
- , $ctx = require('./$.ctx')
- , $Array = require('./$.core').Array || Array
- , statics = {};
-var setStatics = function(keys, length){
- $.each.call(keys.split(','), function(key){
- if(length == undefined && key in $Array)statics[key] = $Array[key];
- else if(key in [])statics[key] = $ctx(Function.call, [][key], length);
- });
-};
-setStatics('pop,reverse,shift,keys,values,entries', 1);
-setStatics('indexOf,every,some,forEach,map,filter,find,findIndex,includes', 3);
-setStatics('join,slice,concat,push,splice,unshift,sort,lastIndexOf,' +
- 'reduce,reduceRight,copyWithin,fill');
-$export($export.S, 'Array', statics); \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/web.dom.iterable.js b/node_modules/core-js/library/modules/web.dom.iterable.js
index 988c6da20..e56371a9d 100644
--- a/node_modules/core-js/library/modules/web.dom.iterable.js
+++ b/node_modules/core-js/library/modules/web.dom.iterable.js
@@ -1,3 +1,13 @@
require('./es6.array.iterator');
-var Iterators = require('./$.iterators');
-Iterators.NodeList = Iterators.HTMLCollection = Iterators.Array; \ No newline at end of file
+var global = require('./_global')
+ , hide = require('./_hide')
+ , Iterators = require('./_iterators')
+ , TO_STRING_TAG = require('./_wks')('toStringTag');
+
+for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
+ var NAME = collections[i]
+ , Collection = global[NAME]
+ , proto = Collection && Collection.prototype;
+ if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);
+ Iterators[NAME] = Iterators.Array;
+} \ No newline at end of file
diff --git a/node_modules/core-js/library/modules/web.immediate.js b/node_modules/core-js/library/modules/web.immediate.js
index fa64f08ec..5b9463775 100644
--- a/node_modules/core-js/library/modules/web.immediate.js
+++ b/node_modules/core-js/library/modules/web.immediate.js
@@ -1,5 +1,5 @@
-var $export = require('./$.export')
- , $task = require('./$.task');
+var $export = require('./_export')
+ , $task = require('./_task');
$export($export.G + $export.B, {
setImmediate: $task.set,
clearImmediate: $task.clear
diff --git a/node_modules/core-js/library/modules/web.timers.js b/node_modules/core-js/library/modules/web.timers.js
index 74b72019c..1a1da57f2 100644
--- a/node_modules/core-js/library/modules/web.timers.js
+++ b/node_modules/core-js/library/modules/web.timers.js
@@ -1,8 +1,8 @@
// ie9- setTimeout & setInterval additional parameters fix
-var global = require('./$.global')
- , $export = require('./$.export')
- , invoke = require('./$.invoke')
- , partial = require('./$.partial')
+var global = require('./_global')
+ , $export = require('./_export')
+ , invoke = require('./_invoke')
+ , partial = require('./_partial')
, navigator = global.navigator
, MSIE = !!navigator && /MSIE .\./.test(navigator.userAgent); // <- dirty ie9- check
var wrap = function(set){
diff --git a/node_modules/core-js/library/shim.js b/node_modules/core-js/library/shim.js
index 6d38d2e27..6db125683 100644
--- a/node_modules/core-js/library/shim.js
+++ b/node_modules/core-js/library/shim.js
@@ -1,22 +1,29 @@
-require('./modules/es5');
require('./modules/es6.symbol');
-require('./modules/es6.object.assign');
-require('./modules/es6.object.is');
-require('./modules/es6.object.set-prototype-of');
-require('./modules/es6.object.to-string');
+require('./modules/es6.object.create');
+require('./modules/es6.object.define-property');
+require('./modules/es6.object.define-properties');
+require('./modules/es6.object.get-own-property-descriptor');
+require('./modules/es6.object.get-prototype-of');
+require('./modules/es6.object.keys');
+require('./modules/es6.object.get-own-property-names');
require('./modules/es6.object.freeze');
require('./modules/es6.object.seal');
require('./modules/es6.object.prevent-extensions');
require('./modules/es6.object.is-frozen');
require('./modules/es6.object.is-sealed');
require('./modules/es6.object.is-extensible');
-require('./modules/es6.object.get-own-property-descriptor');
-require('./modules/es6.object.get-prototype-of');
-require('./modules/es6.object.keys');
-require('./modules/es6.object.get-own-property-names');
+require('./modules/es6.object.assign');
+require('./modules/es6.object.is');
+require('./modules/es6.object.set-prototype-of');
+require('./modules/es6.object.to-string');
+require('./modules/es6.function.bind');
require('./modules/es6.function.name');
require('./modules/es6.function.has-instance');
+require('./modules/es6.parse-int');
+require('./modules/es6.parse-float');
require('./modules/es6.number.constructor');
+require('./modules/es6.number.to-fixed');
+require('./modules/es6.number.to-precision');
require('./modules/es6.number.epsilon');
require('./modules/es6.number.is-finite');
require('./modules/es6.number.is-integer');
@@ -52,15 +59,47 @@ require('./modules/es6.string.ends-with');
require('./modules/es6.string.includes');
require('./modules/es6.string.repeat');
require('./modules/es6.string.starts-with');
+require('./modules/es6.string.anchor');
+require('./modules/es6.string.big');
+require('./modules/es6.string.blink');
+require('./modules/es6.string.bold');
+require('./modules/es6.string.fixed');
+require('./modules/es6.string.fontcolor');
+require('./modules/es6.string.fontsize');
+require('./modules/es6.string.italics');
+require('./modules/es6.string.link');
+require('./modules/es6.string.small');
+require('./modules/es6.string.strike');
+require('./modules/es6.string.sub');
+require('./modules/es6.string.sup');
+require('./modules/es6.date.now');
+require('./modules/es6.date.to-json');
+require('./modules/es6.date.to-iso-string');
+require('./modules/es6.date.to-string');
+require('./modules/es6.date.to-primitive');
+require('./modules/es6.array.is-array');
require('./modules/es6.array.from');
require('./modules/es6.array.of');
-require('./modules/es6.array.iterator');
-require('./modules/es6.array.species');
+require('./modules/es6.array.join');
+require('./modules/es6.array.slice');
+require('./modules/es6.array.sort');
+require('./modules/es6.array.for-each');
+require('./modules/es6.array.map');
+require('./modules/es6.array.filter');
+require('./modules/es6.array.some');
+require('./modules/es6.array.every');
+require('./modules/es6.array.reduce');
+require('./modules/es6.array.reduce-right');
+require('./modules/es6.array.index-of');
+require('./modules/es6.array.last-index-of');
require('./modules/es6.array.copy-within');
require('./modules/es6.array.fill');
require('./modules/es6.array.find');
require('./modules/es6.array.find-index');
+require('./modules/es6.array.species');
+require('./modules/es6.array.iterator');
require('./modules/es6.regexp.constructor');
+require('./modules/es6.regexp.to-string');
require('./modules/es6.regexp.flags');
require('./modules/es6.regexp.match');
require('./modules/es6.regexp.replace');
@@ -71,6 +110,17 @@ require('./modules/es6.map');
require('./modules/es6.set');
require('./modules/es6.weak-map');
require('./modules/es6.weak-set');
+require('./modules/es6.typed.array-buffer');
+require('./modules/es6.typed.data-view');
+require('./modules/es6.typed.int8-array');
+require('./modules/es6.typed.uint8-array');
+require('./modules/es6.typed.uint8-clamped-array');
+require('./modules/es6.typed.int16-array');
+require('./modules/es6.typed.uint16-array');
+require('./modules/es6.typed.int32-array');
+require('./modules/es6.typed.uint32-array');
+require('./modules/es6.typed.float32-array');
+require('./modules/es6.typed.float64-array');
require('./modules/es6.reflect.apply');
require('./modules/es6.reflect.construct');
require('./modules/es6.reflect.define-property');
@@ -87,18 +137,40 @@ require('./modules/es6.reflect.set');
require('./modules/es6.reflect.set-prototype-of');
require('./modules/es7.array.includes');
require('./modules/es7.string.at');
-require('./modules/es7.string.pad-left');
-require('./modules/es7.string.pad-right');
+require('./modules/es7.string.pad-start');
+require('./modules/es7.string.pad-end');
require('./modules/es7.string.trim-left');
require('./modules/es7.string.trim-right');
-require('./modules/es7.regexp.escape');
+require('./modules/es7.string.match-all');
+require('./modules/es7.symbol.async-iterator');
+require('./modules/es7.symbol.observable');
require('./modules/es7.object.get-own-property-descriptors');
require('./modules/es7.object.values');
require('./modules/es7.object.entries');
+require('./modules/es7.object.define-getter');
+require('./modules/es7.object.define-setter');
+require('./modules/es7.object.lookup-getter');
+require('./modules/es7.object.lookup-setter');
require('./modules/es7.map.to-json');
require('./modules/es7.set.to-json');
-require('./modules/js.array.statics');
+require('./modules/es7.system.global');
+require('./modules/es7.error.is-error');
+require('./modules/es7.math.iaddh');
+require('./modules/es7.math.isubh');
+require('./modules/es7.math.imulh');
+require('./modules/es7.math.umulh');
+require('./modules/es7.reflect.define-metadata');
+require('./modules/es7.reflect.delete-metadata');
+require('./modules/es7.reflect.get-metadata');
+require('./modules/es7.reflect.get-metadata-keys');
+require('./modules/es7.reflect.get-own-metadata');
+require('./modules/es7.reflect.get-own-metadata-keys');
+require('./modules/es7.reflect.has-metadata');
+require('./modules/es7.reflect.has-own-metadata');
+require('./modules/es7.reflect.metadata');
+require('./modules/es7.asap');
+require('./modules/es7.observable');
require('./modules/web.timers');
require('./modules/web.immediate');
require('./modules/web.dom.iterable');
-module.exports = require('./modules/$.core'); \ No newline at end of file
+module.exports = require('./modules/_core'); \ No newline at end of file
diff --git a/node_modules/core-js/library/web/dom.js b/node_modules/core-js/library/web/dom.js
deleted file mode 100644
index 9b448cfea..000000000
--- a/node_modules/core-js/library/web/dom.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/web.dom.iterable');
-module.exports = require('../modules/$.core'); \ No newline at end of file
diff --git a/node_modules/core-js/library/web/immediate.js b/node_modules/core-js/library/web/immediate.js
index e4e5493bf..244ebb16f 100644
--- a/node_modules/core-js/library/web/immediate.js
+++ b/node_modules/core-js/library/web/immediate.js
@@ -1,2 +1,2 @@
require('../modules/web.immediate');
-module.exports = require('../modules/$.core'); \ No newline at end of file
+module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/core-js/library/web/index.js b/node_modules/core-js/library/web/index.js
index 6c3221e24..6687d571e 100644
--- a/node_modules/core-js/library/web/index.js
+++ b/node_modules/core-js/library/web/index.js
@@ -1,4 +1,4 @@
require('../modules/web.timers');
require('../modules/web.immediate');
require('../modules/web.dom.iterable');
-module.exports = require('../modules/$.core'); \ No newline at end of file
+module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/core-js/library/web/timers.js b/node_modules/core-js/library/web/timers.js
index 763ea44e9..2c66f4387 100644
--- a/node_modules/core-js/library/web/timers.js
+++ b/node_modules/core-js/library/web/timers.js
@@ -1,2 +1,2 @@
require('../modules/web.timers');
-module.exports = require('../modules/$.core'); \ No newline at end of file
+module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.a-function.js b/node_modules/core-js/modules/$.a-function.js
deleted file mode 100644
index 8c35f4514..000000000
--- a/node_modules/core-js/modules/$.a-function.js
+++ /dev/null
@@ -1,4 +0,0 @@
-module.exports = function(it){
- if(typeof it != 'function')throw TypeError(it + ' is not a function!');
- return it;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.add-to-unscopables.js b/node_modules/core-js/modules/$.add-to-unscopables.js
deleted file mode 100644
index bffd16137..000000000
--- a/node_modules/core-js/modules/$.add-to-unscopables.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// 22.1.3.31 Array.prototype[@@unscopables]
-var UNSCOPABLES = require('./$.wks')('unscopables')
- , ArrayProto = Array.prototype;
-if(ArrayProto[UNSCOPABLES] == undefined)require('./$.hide')(ArrayProto, UNSCOPABLES, {});
-module.exports = function(key){
- ArrayProto[UNSCOPABLES][key] = true;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.an-object.js b/node_modules/core-js/modules/$.an-object.js
deleted file mode 100644
index e5c808fd6..000000000
--- a/node_modules/core-js/modules/$.an-object.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var isObject = require('./$.is-object');
-module.exports = function(it){
- if(!isObject(it))throw TypeError(it + ' is not an object!');
- return it;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.array-copy-within.js b/node_modules/core-js/modules/$.array-copy-within.js
deleted file mode 100644
index 585630659..000000000
--- a/node_modules/core-js/modules/$.array-copy-within.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
-'use strict';
-var toObject = require('./$.to-object')
- , toIndex = require('./$.to-index')
- , toLength = require('./$.to-length');
-
-module.exports = [].copyWithin || function copyWithin(target/*= 0*/, start/*= 0, end = @length*/){
- var O = toObject(this)
- , len = toLength(O.length)
- , to = toIndex(target, len)
- , from = toIndex(start, len)
- , $$ = arguments
- , end = $$.length > 2 ? $$[2] : undefined
- , count = Math.min((end === undefined ? len : toIndex(end, len)) - from, len - to)
- , inc = 1;
- if(from < to && to < from + count){
- inc = -1;
- from += count - 1;
- to += count - 1;
- }
- while(count-- > 0){
- if(from in O)O[to] = O[from];
- else delete O[to];
- to += inc;
- from += inc;
- } return O;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.array-fill.js b/node_modules/core-js/modules/$.array-fill.js
deleted file mode 100644
index 6b699df72..000000000
--- a/node_modules/core-js/modules/$.array-fill.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
-'use strict';
-var toObject = require('./$.to-object')
- , toIndex = require('./$.to-index')
- , toLength = require('./$.to-length');
-module.exports = [].fill || function fill(value /*, start = 0, end = @length */){
- var O = toObject(this)
- , length = toLength(O.length)
- , $$ = arguments
- , $$len = $$.length
- , index = toIndex($$len > 1 ? $$[1] : undefined, length)
- , end = $$len > 2 ? $$[2] : undefined
- , endPos = end === undefined ? length : toIndex(end, length);
- while(endPos > index)O[index++] = value;
- return O;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.array-includes.js b/node_modules/core-js/modules/$.array-includes.js
deleted file mode 100644
index 9781fca73..000000000
--- a/node_modules/core-js/modules/$.array-includes.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// false -> Array#indexOf
-// true -> Array#includes
-var toIObject = require('./$.to-iobject')
- , toLength = require('./$.to-length')
- , toIndex = require('./$.to-index');
-module.exports = function(IS_INCLUDES){
- return function($this, el, fromIndex){
- var O = toIObject($this)
- , length = toLength(O.length)
- , index = toIndex(fromIndex, length)
- , value;
- // Array#includes uses SameValueZero equality algorithm
- if(IS_INCLUDES && el != el)while(length > index){
- value = O[index++];
- if(value != value)return true;
- // Array#toIndex ignores holes, Array#includes - not
- } else for(;length > index; index++)if(IS_INCLUDES || index in O){
- if(O[index] === el)return IS_INCLUDES || index;
- } return !IS_INCLUDES && -1;
- };
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.array-methods.js b/node_modules/core-js/modules/$.array-methods.js
deleted file mode 100644
index e70b99f4c..000000000
--- a/node_modules/core-js/modules/$.array-methods.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// 0 -> Array#forEach
-// 1 -> Array#map
-// 2 -> Array#filter
-// 3 -> Array#some
-// 4 -> Array#every
-// 5 -> Array#find
-// 6 -> Array#findIndex
-var ctx = require('./$.ctx')
- , IObject = require('./$.iobject')
- , toObject = require('./$.to-object')
- , toLength = require('./$.to-length')
- , asc = require('./$.array-species-create');
-module.exports = function(TYPE){
- var IS_MAP = TYPE == 1
- , IS_FILTER = TYPE == 2
- , IS_SOME = TYPE == 3
- , IS_EVERY = TYPE == 4
- , IS_FIND_INDEX = TYPE == 6
- , NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
- return function($this, callbackfn, that){
- var O = toObject($this)
- , self = IObject(O)
- , f = ctx(callbackfn, that, 3)
- , length = toLength(self.length)
- , index = 0
- , result = IS_MAP ? asc($this, length) : IS_FILTER ? asc($this, 0) : undefined
- , val, res;
- for(;length > index; index++)if(NO_HOLES || index in self){
- val = self[index];
- res = f(val, index, O);
- if(TYPE){
- if(IS_MAP)result[index] = res; // map
- else if(res)switch(TYPE){
- case 3: return true; // some
- case 5: return val; // find
- case 6: return index; // findIndex
- case 2: result.push(val); // filter
- } else if(IS_EVERY)return false; // every
- }
- }
- return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
- };
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.array-species-create.js b/node_modules/core-js/modules/$.array-species-create.js
deleted file mode 100644
index d809cae60..000000000
--- a/node_modules/core-js/modules/$.array-species-create.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
-var isObject = require('./$.is-object')
- , isArray = require('./$.is-array')
- , SPECIES = require('./$.wks')('species');
-module.exports = function(original, length){
- var C;
- if(isArray(original)){
- C = original.constructor;
- // cross-realm fallback
- if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;
- if(isObject(C)){
- C = C[SPECIES];
- if(C === null)C = undefined;
- }
- } return new (C === undefined ? Array : C)(length);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.buffer.js b/node_modules/core-js/modules/$.buffer.js
deleted file mode 100644
index d1aae58a4..000000000
--- a/node_modules/core-js/modules/$.buffer.js
+++ /dev/null
@@ -1,288 +0,0 @@
-'use strict';
-var $ = require('./$')
- , global = require('./$.global')
- , $typed = require('./$.typed')
- , redefineAll = require('./$.redefine-all')
- , strictNew = require('./$.strict-new')
- , toInteger = require('./$.to-integer')
- , toLength = require('./$.to-length')
- , arrayFill = require('./$.array-fill')
- , $ArrayBuffer = global.ArrayBuffer
- , $DataView = global.DataView
- , Math = global.Math
- , parseInt = global.parseInt
- , abs = Math.abs
- , pow = Math.pow
- , min = Math.min
- , floor = Math.floor
- , log = Math.log
- , LN2 = Math.LN2
- , BYTE_LENGTH = 'byteLength';
-
-// pack / unpack based on
-// https://github.com/inexorabletash/polyfill/blob/v0.1.11/typedarray.js#L123-L264
-// TODO: simplify
-var signed = function(value, bits){
- var s = 32 - bits;
- return value << s >> s;
-};
-var unsigned = function(value, bits){
- var s = 32 - bits;
- return value << s >>> s;
-};
-var roundToEven = function(n){
- var w = floor(n)
- , f = n - w;
- return f < .5 ? w : f > .5 ? w + 1 : w % 2 ? w + 1 : w;
-};
-var packI8 = function(n){
- return [n & 0xff];
-};
-var unpackI8 = function(bytes){
- return signed(bytes[0], 8);
-};
-var packU8 = function(n){
- return [n & 0xff];
-};
-var unpackU8 = function(bytes){
- return unsigned(bytes[0], 8);
-};
-var packI16 = function(n){
- return [n & 0xff, n >> 8 & 0xff];
-};
-var unpackI16 = function(bytes){
- return signed(bytes[1] << 8 | bytes[0], 16);
-};
-var packU16 = function(n){
- return [n & 0xff, n >> 8 & 0xff];
-};
-var unpackU16 = function(bytes){
- return unsigned(bytes[1] << 8 | bytes[0], 16);
-};
-var packI32 = function(n){
- return [n & 0xff, n >> 8 & 0xff, n >> 16 & 0xff, n >> 24 & 0xff];
-};
-var unpackI32 = function(bytes){
- return signed(bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0], 32);
-};
-var packU32 = function(n){
- return [n & 0xff, n >> 8 & 0xff, n >> 16 & 0xff, n >> 24 & 0xff];
-};
-var unpackU32 = function(bytes){
- return unsigned(bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0], 32);
-};
-var packIEEE754 = function(v, ebits, fbits) {
- var bias = (1 << ebits - 1) - 1
- , s, e, f, i, bits, str, bytes;
- // Compute sign, exponent, fraction
- if (v !== v) {
- // NaN
- // http://dev.w3.org/2006/webapi/WebIDL/#es-type-mapping
- e = (1 << ebits) - 1;
- f = pow(2, fbits - 1);
- s = 0;
- } else if(v === Infinity || v === -Infinity){
- e = (1 << ebits) - 1;
- f = 0;
- s = v < 0 ? 1 : 0;
- } else if(v === 0){
- e = 0;
- f = 0;
- s = 1 / v === -Infinity ? 1 : 0;
- } else {
- s = v < 0;
- v = abs(v);
- if(v >= pow(2, 1 - bias)){
- e = min(floor(log(v) / LN2), 1023);
- var significand = v / pow(2, e);
- if(significand < 1){
- e -= 1;
- significand *= 2;
- }
- if(significand >= 2){
- e += 1;
- significand /= 2;
- }
- f = roundToEven(significand * pow(2, fbits));
- if(f / pow(2, fbits) >= 2){
- e = e + 1;
- f = 1;
- }
- if(e > bias){
- // Overflow
- e = (1 << ebits) - 1;
- f = 0;
- } else {
- // Normalized
- e = e + bias;
- f = f - pow(2, fbits);
- }
- } else {
- // Denormalized
- e = 0;
- f = roundToEven(v / pow(2, 1 - bias - fbits));
- }
- }
- // Pack sign, exponent, fraction
- bits = [];
- for(i = fbits; i; i -= 1){
- bits.push(f % 2 ? 1 : 0);
- f = floor(f / 2);
- }
- for(i = ebits; i; i -= 1){
- bits.push(e % 2 ? 1 : 0);
- e = floor(e / 2);
- }
- bits.push(s ? 1 : 0);
- bits.reverse();
- str = bits.join('');
- // Bits to bytes
- bytes = [];
- while(str.length){
- bytes.unshift(parseInt(str.slice(0, 8), 2));
- str = str.slice(8);
- }
- return bytes;
-};
-var unpackIEEE754 = function(bytes, ebits, fbits){
- var bits = []
- , i, j, b, str, bias, s, e, f;
- for(i = 0; i < bytes.length; ++i)for(b = bytes[i], j = 8; j; --j){
- bits.push(b % 2 ? 1 : 0);
- b = b >> 1;
- }
- bits.reverse();
- str = bits.join('');
- // Unpack sign, exponent, fraction
- bias = (1 << ebits - 1) - 1;
- s = parseInt(str.slice(0, 1), 2) ? -1 : 1;
- e = parseInt(str.slice(1, 1 + ebits), 2);
- f = parseInt(str.slice(1 + ebits), 2);
- // Produce number
- if(e === (1 << ebits) - 1)return f !== 0 ? NaN : s * Infinity;
- // Normalized
- else if(e > 0)return s * pow(2, e - bias) * (1 + f / pow(2, fbits));
- // Denormalized
- else if(f !== 0)return s * pow(2, -(bias - 1)) * (f / pow(2, fbits));
- return s < 0 ? -0 : 0;
-};
-var unpackF64 = function(b){
- return unpackIEEE754(b, 11, 52);
-};
-var packF64 = function(v){
- return packIEEE754(v, 11, 52);
-};
-var unpackF32 = function(b){
- return unpackIEEE754(b, 8, 23);
-};
-var packF32 = function(v){
- return packIEEE754(v, 8, 23);
-};
-
-var addGetter = function(C, key, internal){
- $.setDesc(C.prototype, key, {get: function(){ return this[internal]; }});
-};
-
-var get = function(view, bytes, index, conversion, isLittleEndian){
- var numIndex = +index
- , intIndex = toInteger(numIndex);
- if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view._l)throw RangeError();
- var store = view._b._b
- , start = intIndex + view._o
- , pack = store.slice(start, start + bytes);
- isLittleEndian || pack.reverse();
- return conversion(pack);
-};
-var set = function(view, bytes, index, conversion, value, isLittleEndian){
- var numIndex = +index
- , intIndex = toInteger(numIndex);
- if(numIndex != intIndex || intIndex < 0 || intIndex + bytes > view._l)throw RangeError();
- var store = view._b._b
- , start = intIndex + view._o
- , pack = conversion(+value);
- isLittleEndian || pack.reverse();
- for(var i = 0; i < bytes; i++)store[start + i] = pack[i];
-};
-
-if(!$typed.ABV){
- $ArrayBuffer = function ArrayBuffer(length){
- strictNew(this, $ArrayBuffer, 'ArrayBuffer');
- var numberLength = +length
- , byteLength = toLength(numberLength);
- if(numberLength != byteLength)throw RangeError();
- this._b = arrayFill.call(Array(byteLength), 0);
- this._l = byteLength;
- };
- addGetter($ArrayBuffer, BYTE_LENGTH, '_l');
-
- $DataView = function DataView(buffer, byteOffset, byteLength){
- strictNew(this, $DataView, 'DataView');
- if(!(buffer instanceof $ArrayBuffer))throw TypeError();
- var bufferLength = buffer._l
- , offset = toInteger(byteOffset);
- if(offset < 0 || offset > bufferLength)throw RangeError();
- byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
- if(offset + byteLength > bufferLength)throw RangeError();
- this._b = buffer;
- this._o = offset;
- this._l = byteLength;
- };
- addGetter($DataView, 'buffer', '_b');
- addGetter($DataView, BYTE_LENGTH, '_l');
- addGetter($DataView, 'byteOffset', '_o');
- redefineAll($DataView.prototype, {
- getInt8: function getInt8(byteOffset){
- return get(this, 1, byteOffset, unpackI8);
- },
- getUint8: function getUint8(byteOffset){
- return get(this, 1, byteOffset, unpackU8);
- },
- getInt16: function getInt16(byteOffset /*, littleEndian */){
- return get(this, 2, byteOffset, unpackI16, arguments.length > 1 ? arguments[1] : undefined);
- },
- getUint16: function getUint16(byteOffset /*, littleEndian */){
- return get(this, 2, byteOffset, unpackU16, arguments.length > 1 ? arguments[1] : undefined);
- },
- getInt32: function getInt32(byteOffset /*, littleEndian */){
- return get(this, 4, byteOffset, unpackI32, arguments.length > 1 ? arguments[1] : undefined);
- },
- getUint32: function getUint32(byteOffset /*, littleEndian */){
- return get(this, 4, byteOffset, unpackU32, arguments.length > 1 ? arguments[1] : undefined);
- },
- getFloat32: function getFloat32(byteOffset /*, littleEndian */){
- return get(this, 4, byteOffset, unpackF32, arguments.length > 1 ? arguments[1] : undefined);
- },
- getFloat64: function getFloat64(byteOffset /*, littleEndian */){
- return get(this, 8, byteOffset, unpackF64, arguments.length > 1 ? arguments[1] : undefined);
- },
- setInt8: function setInt8(byteOffset, value){
- return set(this, 1, byteOffset, packI8, value);
- },
- setUint8: function setUint8(byteOffset, value){
- return set(this, 1, byteOffset, packU8, value);
- },
- setInt16: function setInt16(byteOffset, value /*, littleEndian */){
- return set(this, 2, byteOffset, packI16, value, arguments.length > 2 ? arguments[2] : undefined);
- },
- setUint16: function setUint16(byteOffset, value /*, littleEndian */){
- return set(this, 2, byteOffset, packU16, value, arguments.length > 2 ? arguments[2] : undefined);
- },
- setInt32: function setInt32(byteOffset, value /*, littleEndian */){
- return set(this, 4, byteOffset, packI32, value, arguments.length > 2 ? arguments[2] : undefined);
- },
- setUint32: function setUint32(byteOffset, value /*, littleEndian */){
- return set(this, 4, byteOffset, packU32, value, arguments.length > 2 ? arguments[2] : undefined);
- },
- setFloat32: function setFloat32(byteOffset, value /*, littleEndian */){
- return set(this, 4, byteOffset, packF32, value, arguments.length > 2 ? arguments[2] : undefined);
- },
- setFloat64: function setFloat64(byteOffset, value /*, littleEndian */){
- return set(this, 8, byteOffset, packF64, value, arguments.length > 2 ? arguments[2] : undefined);
- }
- });
-}
-require('./$.hide')($DataView.prototype, $typed.VIEW, true);
-module.exports = {
- ArrayBuffer: $ArrayBuffer,
- DataView: $DataView
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.classof.js b/node_modules/core-js/modules/$.classof.js
deleted file mode 100644
index 905c61f7a..000000000
--- a/node_modules/core-js/modules/$.classof.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// getting tag from 19.1.3.6 Object.prototype.toString()
-var cof = require('./$.cof')
- , TAG = require('./$.wks')('toStringTag')
- // ES3 wrong here
- , ARG = cof(function(){ return arguments; }()) == 'Arguments';
-
-module.exports = function(it){
- var O, T, B;
- return it === undefined ? 'Undefined' : it === null ? 'Null'
- // @@toStringTag case
- : typeof (T = (O = Object(it))[TAG]) == 'string' ? T
- // builtinTag case
- : ARG ? cof(O)
- // ES3 arguments fallback
- : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.cof.js b/node_modules/core-js/modules/$.cof.js
deleted file mode 100644
index 1dd2779a7..000000000
--- a/node_modules/core-js/modules/$.cof.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var toString = {}.toString;
-
-module.exports = function(it){
- return toString.call(it).slice(8, -1);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.collection-strong.js b/node_modules/core-js/modules/$.collection-strong.js
deleted file mode 100644
index 54df55a65..000000000
--- a/node_modules/core-js/modules/$.collection-strong.js
+++ /dev/null
@@ -1,159 +0,0 @@
-'use strict';
-var $ = require('./$')
- , hide = require('./$.hide')
- , redefineAll = require('./$.redefine-all')
- , ctx = require('./$.ctx')
- , strictNew = require('./$.strict-new')
- , defined = require('./$.defined')
- , forOf = require('./$.for-of')
- , $iterDefine = require('./$.iter-define')
- , step = require('./$.iter-step')
- , ID = require('./$.uid')('id')
- , $has = require('./$.has')
- , isObject = require('./$.is-object')
- , setSpecies = require('./$.set-species')
- , DESCRIPTORS = require('./$.descriptors')
- , isExtensible = Object.isExtensible || isObject
- , SIZE = DESCRIPTORS ? '_s' : 'size'
- , id = 0;
-
-var fastKey = function(it, create){
- // return primitive with prefix
- if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
- if(!$has(it, ID)){
- // can't set id to frozen object
- if(!isExtensible(it))return 'F';
- // not necessary to add id
- if(!create)return 'E';
- // add missing object id
- hide(it, ID, ++id);
- // return object id with prefix
- } return 'O' + it[ID];
-};
-
-var getEntry = function(that, key){
- // fast case
- var index = fastKey(key), entry;
- if(index !== 'F')return that._i[index];
- // frozen object case
- for(entry = that._f; entry; entry = entry.n){
- if(entry.k == key)return entry;
- }
-};
-
-module.exports = {
- getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
- var C = wrapper(function(that, iterable){
- strictNew(that, C, NAME);
- that._i = $.create(null); // index
- that._f = undefined; // first entry
- that._l = undefined; // last entry
- that[SIZE] = 0; // size
- if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
- });
- redefineAll(C.prototype, {
- // 23.1.3.1 Map.prototype.clear()
- // 23.2.3.2 Set.prototype.clear()
- clear: function clear(){
- for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){
- entry.r = true;
- if(entry.p)entry.p = entry.p.n = undefined;
- delete data[entry.i];
- }
- that._f = that._l = undefined;
- that[SIZE] = 0;
- },
- // 23.1.3.3 Map.prototype.delete(key)
- // 23.2.3.4 Set.prototype.delete(value)
- 'delete': function(key){
- var that = this
- , entry = getEntry(that, key);
- if(entry){
- var next = entry.n
- , prev = entry.p;
- delete that._i[entry.i];
- entry.r = true;
- if(prev)prev.n = next;
- if(next)next.p = prev;
- if(that._f == entry)that._f = next;
- if(that._l == entry)that._l = prev;
- that[SIZE]--;
- } return !!entry;
- },
- // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
- // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
- forEach: function forEach(callbackfn /*, that = undefined */){
- var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)
- , entry;
- while(entry = entry ? entry.n : this._f){
- f(entry.v, entry.k, this);
- // revert to the last existing entry
- while(entry && entry.r)entry = entry.p;
- }
- },
- // 23.1.3.7 Map.prototype.has(key)
- // 23.2.3.7 Set.prototype.has(value)
- has: function has(key){
- return !!getEntry(this, key);
- }
- });
- if(DESCRIPTORS)$.setDesc(C.prototype, 'size', {
- get: function(){
- return defined(this[SIZE]);
- }
- });
- return C;
- },
- def: function(that, key, value){
- var entry = getEntry(that, key)
- , prev, index;
- // change existing entry
- if(entry){
- entry.v = value;
- // create new entry
- } else {
- that._l = entry = {
- i: index = fastKey(key, true), // <- index
- k: key, // <- key
- v: value, // <- value
- p: prev = that._l, // <- previous entry
- n: undefined, // <- next entry
- r: false // <- removed
- };
- if(!that._f)that._f = entry;
- if(prev)prev.n = entry;
- that[SIZE]++;
- // add to index
- if(index !== 'F')that._i[index] = entry;
- } return that;
- },
- getEntry: getEntry,
- setStrong: function(C, NAME, IS_MAP){
- // add .keys, .values, .entries, [@@iterator]
- // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
- $iterDefine(C, NAME, function(iterated, kind){
- this._t = iterated; // target
- this._k = kind; // kind
- this._l = undefined; // previous
- }, function(){
- var that = this
- , kind = that._k
- , entry = that._l;
- // revert to the last existing entry
- while(entry && entry.r)entry = entry.p;
- // get next entry
- if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){
- // or finish the iteration
- that._t = undefined;
- return step(1);
- }
- // return step by kind
- if(kind == 'keys' )return step(0, entry.k);
- if(kind == 'values')return step(0, entry.v);
- return step(0, [entry.k, entry.v]);
- }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);
-
- // add [@@species], 23.1.2.2, 23.2.2.2
- setSpecies(NAME);
- }
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.collection-to-json.js b/node_modules/core-js/modules/$.collection-to-json.js
deleted file mode 100644
index 41f2e6ec7..000000000
--- a/node_modules/core-js/modules/$.collection-to-json.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// https://github.com/DavidBruant/Map-Set.prototype.toJSON
-var forOf = require('./$.for-of')
- , classof = require('./$.classof');
-module.exports = function(NAME){
- return function toJSON(){
- if(classof(this) != NAME)throw TypeError(NAME + "#toJSON isn't generic");
- var arr = [];
- forOf(this, false, arr.push, arr);
- return arr;
- };
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.collection-weak.js b/node_modules/core-js/modules/$.collection-weak.js
deleted file mode 100644
index 384fb39dc..000000000
--- a/node_modules/core-js/modules/$.collection-weak.js
+++ /dev/null
@@ -1,86 +0,0 @@
-'use strict';
-var hide = require('./$.hide')
- , redefineAll = require('./$.redefine-all')
- , anObject = require('./$.an-object')
- , isObject = require('./$.is-object')
- , strictNew = require('./$.strict-new')
- , forOf = require('./$.for-of')
- , createArrayMethod = require('./$.array-methods')
- , $has = require('./$.has')
- , WEAK = require('./$.uid')('weak')
- , isExtensible = Object.isExtensible || isObject
- , arrayFind = createArrayMethod(5)
- , arrayFindIndex = createArrayMethod(6)
- , id = 0;
-
-// fallback for frozen keys
-var frozenStore = function(that){
- return that._l || (that._l = new FrozenStore);
-};
-var FrozenStore = function(){
- this.a = [];
-};
-var findFrozen = function(store, key){
- return arrayFind(store.a, function(it){
- return it[0] === key;
- });
-};
-FrozenStore.prototype = {
- get: function(key){
- var entry = findFrozen(this, key);
- if(entry)return entry[1];
- },
- has: function(key){
- return !!findFrozen(this, key);
- },
- set: function(key, value){
- var entry = findFrozen(this, key);
- if(entry)entry[1] = value;
- else this.a.push([key, value]);
- },
- 'delete': function(key){
- var index = arrayFindIndex(this.a, function(it){
- return it[0] === key;
- });
- if(~index)this.a.splice(index, 1);
- return !!~index;
- }
-};
-
-module.exports = {
- getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
- var C = wrapper(function(that, iterable){
- strictNew(that, C, NAME);
- that._i = id++; // collection id
- that._l = undefined; // leak store for frozen objects
- if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
- });
- redefineAll(C.prototype, {
- // 23.3.3.2 WeakMap.prototype.delete(key)
- // 23.4.3.3 WeakSet.prototype.delete(value)
- 'delete': function(key){
- if(!isObject(key))return false;
- if(!isExtensible(key))return frozenStore(this)['delete'](key);
- return $has(key, WEAK) && $has(key[WEAK], this._i) && delete key[WEAK][this._i];
- },
- // 23.3.3.4 WeakMap.prototype.has(key)
- // 23.4.3.4 WeakSet.prototype.has(value)
- has: function has(key){
- if(!isObject(key))return false;
- if(!isExtensible(key))return frozenStore(this).has(key);
- return $has(key, WEAK) && $has(key[WEAK], this._i);
- }
- });
- return C;
- },
- def: function(that, key, value){
- if(!isExtensible(anObject(key))){
- frozenStore(that).set(key, value);
- } else {
- $has(key, WEAK) || hide(key, WEAK, {});
- key[WEAK][that._i] = value;
- } return that;
- },
- frozenStore: frozenStore,
- WEAK: WEAK
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.collection.js b/node_modules/core-js/modules/$.collection.js
deleted file mode 100644
index 61ae123db..000000000
--- a/node_modules/core-js/modules/$.collection.js
+++ /dev/null
@@ -1,79 +0,0 @@
-'use strict';
-var global = require('./$.global')
- , $export = require('./$.export')
- , redefine = require('./$.redefine')
- , redefineAll = require('./$.redefine-all')
- , forOf = require('./$.for-of')
- , strictNew = require('./$.strict-new')
- , isObject = require('./$.is-object')
- , fails = require('./$.fails')
- , $iterDetect = require('./$.iter-detect')
- , setToStringTag = require('./$.set-to-string-tag');
-
-module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){
- var Base = global[NAME]
- , C = Base
- , ADDER = IS_MAP ? 'set' : 'add'
- , proto = C && C.prototype
- , O = {};
- var fixMethod = function(KEY){
- var fn = proto[KEY];
- redefine(proto, KEY,
- KEY == 'delete' ? function(a){
- return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
- } : KEY == 'has' ? function has(a){
- return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
- } : KEY == 'get' ? function get(a){
- return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
- } : KEY == 'add' ? function add(a){ fn.call(this, a === 0 ? 0 : a); return this; }
- : function set(a, b){ fn.call(this, a === 0 ? 0 : a, b); return this; }
- );
- };
- if(typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){
- new C().entries().next();
- }))){
- // create collection constructor
- C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
- redefineAll(C.prototype, methods);
- } else {
- var instance = new C
- // early implementations not supports chaining
- , HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance
- // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false
- , THROWS_ON_PRIMITIVES = fails(function(){ instance.has(1); })
- // most early implementations doesn't supports iterables, most modern - not close it correctly
- , ACCEPT_ITERABLES = $iterDetect(function(iter){ new C(iter); }) // eslint-disable-line no-new
- // for early implementations -0 and +0 not the same
- , BUGGY_ZERO;
- if(!ACCEPT_ITERABLES){
- C = wrapper(function(target, iterable){
- strictNew(target, C, NAME);
- var that = new Base;
- if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
- return that;
- });
- C.prototype = proto;
- proto.constructor = C;
- }
- IS_WEAK || instance.forEach(function(val, key){
- BUGGY_ZERO = 1 / key === -Infinity;
- });
- if(THROWS_ON_PRIMITIVES || BUGGY_ZERO){
- fixMethod('delete');
- fixMethod('has');
- IS_MAP && fixMethod('get');
- }
- if(BUGGY_ZERO || HASNT_CHAINING)fixMethod(ADDER);
- // weak collections should not contains .clear method
- if(IS_WEAK && proto.clear)delete proto.clear;
- }
-
- setToStringTag(C, NAME);
-
- O[NAME] = C;
- $export($export.G + $export.W + $export.F * (C != Base), O);
-
- if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);
-
- return C;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.core.js b/node_modules/core-js/modules/$.core.js
deleted file mode 100644
index 4e2a0b595..000000000
--- a/node_modules/core-js/modules/$.core.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var core = module.exports = {version: '1.2.6'};
-if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.ctx.js b/node_modules/core-js/modules/$.ctx.js
deleted file mode 100644
index d233574ac..000000000
--- a/node_modules/core-js/modules/$.ctx.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// optional / simple context binding
-var aFunction = require('./$.a-function');
-module.exports = function(fn, that, length){
- aFunction(fn);
- if(that === undefined)return fn;
- switch(length){
- case 1: return function(a){
- return fn.call(that, a);
- };
- case 2: return function(a, b){
- return fn.call(that, a, b);
- };
- case 3: return function(a, b, c){
- return fn.call(that, a, b, c);
- };
- }
- return function(/* ...args */){
- return fn.apply(that, arguments);
- };
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.defined.js b/node_modules/core-js/modules/$.defined.js
deleted file mode 100644
index cfa476b96..000000000
--- a/node_modules/core-js/modules/$.defined.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// 7.2.1 RequireObjectCoercible(argument)
-module.exports = function(it){
- if(it == undefined)throw TypeError("Can't call method on " + it);
- return it;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.descriptors.js b/node_modules/core-js/modules/$.descriptors.js
deleted file mode 100644
index 9cd47b7df..000000000
--- a/node_modules/core-js/modules/$.descriptors.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// Thank's IE8 for his funny defineProperty
-module.exports = !require('./$.fails')(function(){
- return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
-}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.dom-create.js b/node_modules/core-js/modules/$.dom-create.js
deleted file mode 100644
index 240842d29..000000000
--- a/node_modules/core-js/modules/$.dom-create.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var isObject = require('./$.is-object')
- , document = require('./$.global').document
- // in old IE typeof document.createElement is 'object'
- , is = isObject(document) && isObject(document.createElement);
-module.exports = function(it){
- return is ? document.createElement(it) : {};
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.enum-keys.js b/node_modules/core-js/modules/$.enum-keys.js
deleted file mode 100644
index 06f7de7af..000000000
--- a/node_modules/core-js/modules/$.enum-keys.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// all enumerable object keys, includes symbols
-var $ = require('./$');
-module.exports = function(it){
- var keys = $.getKeys(it)
- , getSymbols = $.getSymbols;
- if(getSymbols){
- var symbols = getSymbols(it)
- , isEnum = $.isEnum
- , i = 0
- , key;
- while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);
- }
- return keys;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.export.js b/node_modules/core-js/modules/$.export.js
deleted file mode 100644
index 5d4fea03f..000000000
--- a/node_modules/core-js/modules/$.export.js
+++ /dev/null
@@ -1,41 +0,0 @@
-var global = require('./$.global')
- , core = require('./$.core')
- , hide = require('./$.hide')
- , redefine = require('./$.redefine')
- , ctx = require('./$.ctx')
- , PROTOTYPE = 'prototype';
-
-var $export = function(type, name, source){
- var IS_FORCED = type & $export.F
- , IS_GLOBAL = type & $export.G
- , IS_STATIC = type & $export.S
- , IS_PROTO = type & $export.P
- , IS_BIND = type & $export.B
- , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]
- , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
- , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {})
- , key, own, out, exp;
- if(IS_GLOBAL)source = name;
- for(key in source){
- // contains in native
- own = !IS_FORCED && target && key in target;
- // export native or passed
- out = (own ? target : source)[key];
- // bind timers to global for call from export context
- exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
- // extend global
- if(target && !own)redefine(target, key, out);
- // export
- if(exports[key] != out)hide(exports, key, exp);
- if(IS_PROTO && expProto[key] != out)expProto[key] = out;
- }
-};
-global.core = core;
-// type bitmap
-$export.F = 1; // forced
-$export.G = 2; // global
-$export.S = 4; // static
-$export.P = 8; // proto
-$export.B = 16; // bind
-$export.W = 32; // wrap
-module.exports = $export; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.fails-is-regexp.js b/node_modules/core-js/modules/$.fails-is-regexp.js
deleted file mode 100644
index c459a77ab..000000000
--- a/node_modules/core-js/modules/$.fails-is-regexp.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var MATCH = require('./$.wks')('match');
-module.exports = function(KEY){
- var re = /./;
- try {
- '/./'[KEY](re);
- } catch(e){
- try {
- re[MATCH] = false;
- return !'/./'[KEY](re);
- } catch(f){ /* empty */ }
- } return true;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.fails.js b/node_modules/core-js/modules/$.fails.js
deleted file mode 100644
index 184e5ea84..000000000
--- a/node_modules/core-js/modules/$.fails.js
+++ /dev/null
@@ -1,7 +0,0 @@
-module.exports = function(exec){
- try {
- return !!exec();
- } catch(e){
- return true;
- }
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.fix-re-wks.js b/node_modules/core-js/modules/$.fix-re-wks.js
deleted file mode 100644
index 3597a8985..000000000
--- a/node_modules/core-js/modules/$.fix-re-wks.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-var hide = require('./$.hide')
- , redefine = require('./$.redefine')
- , fails = require('./$.fails')
- , defined = require('./$.defined')
- , wks = require('./$.wks');
-
-module.exports = function(KEY, length, exec){
- var SYMBOL = wks(KEY)
- , original = ''[KEY];
- if(fails(function(){
- var O = {};
- O[SYMBOL] = function(){ return 7; };
- return ''[KEY](O) != 7;
- })){
- redefine(String.prototype, KEY, exec(defined, SYMBOL, original));
- hide(RegExp.prototype, SYMBOL, length == 2
- // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
- // 21.2.5.11 RegExp.prototype[@@split](string, limit)
- ? function(string, arg){ return original.call(string, this, arg); }
- // 21.2.5.6 RegExp.prototype[@@match](string)
- // 21.2.5.9 RegExp.prototype[@@search](string)
- : function(string){ return original.call(string, this); }
- );
- }
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.flags.js b/node_modules/core-js/modules/$.flags.js
deleted file mode 100644
index fc20e5deb..000000000
--- a/node_modules/core-js/modules/$.flags.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-// 21.2.5.3 get RegExp.prototype.flags
-var anObject = require('./$.an-object');
-module.exports = function(){
- var that = anObject(this)
- , result = '';
- if(that.global) result += 'g';
- if(that.ignoreCase) result += 'i';
- if(that.multiline) result += 'm';
- if(that.unicode) result += 'u';
- if(that.sticky) result += 'y';
- return result;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.for-of.js b/node_modules/core-js/modules/$.for-of.js
deleted file mode 100644
index 0f2d8e974..000000000
--- a/node_modules/core-js/modules/$.for-of.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var ctx = require('./$.ctx')
- , call = require('./$.iter-call')
- , isArrayIter = require('./$.is-array-iter')
- , anObject = require('./$.an-object')
- , toLength = require('./$.to-length')
- , getIterFn = require('./core.get-iterator-method');
-module.exports = function(iterable, entries, fn, that){
- var iterFn = getIterFn(iterable)
- , f = ctx(fn, that, entries ? 2 : 1)
- , index = 0
- , length, step, iterator;
- if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');
- // fast case for arrays with default iterator
- if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){
- entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
- } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
- call(iterator, f, step.value, entries);
- }
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.get-names.js b/node_modules/core-js/modules/$.get-names.js
deleted file mode 100644
index 282097140..000000000
--- a/node_modules/core-js/modules/$.get-names.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
-var toIObject = require('./$.to-iobject')
- , getNames = require('./$').getNames
- , toString = {}.toString;
-
-var windowNames = typeof window == 'object' && Object.getOwnPropertyNames
- ? Object.getOwnPropertyNames(window) : [];
-
-var getWindowNames = function(it){
- try {
- return getNames(it);
- } catch(e){
- return windowNames.slice();
- }
-};
-
-module.exports.get = function getOwnPropertyNames(it){
- if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);
- return getNames(toIObject(it));
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.global.js b/node_modules/core-js/modules/$.global.js
deleted file mode 100644
index df6efb476..000000000
--- a/node_modules/core-js/modules/$.global.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-var global = module.exports = typeof window != 'undefined' && window.Math == Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
-if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.has.js b/node_modules/core-js/modules/$.has.js
deleted file mode 100644
index 870b40e71..000000000
--- a/node_modules/core-js/modules/$.has.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var hasOwnProperty = {}.hasOwnProperty;
-module.exports = function(it, key){
- return hasOwnProperty.call(it, key);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.hide.js b/node_modules/core-js/modules/$.hide.js
deleted file mode 100644
index ba025d81d..000000000
--- a/node_modules/core-js/modules/$.hide.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('./$')
- , createDesc = require('./$.property-desc');
-module.exports = require('./$.descriptors') ? function(object, key, value){
- return $.setDesc(object, key, createDesc(1, value));
-} : function(object, key, value){
- object[key] = value;
- return object;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.html.js b/node_modules/core-js/modules/$.html.js
deleted file mode 100644
index 499bd2f31..000000000
--- a/node_modules/core-js/modules/$.html.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./$.global').document && document.documentElement; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.invoke.js b/node_modules/core-js/modules/$.invoke.js
deleted file mode 100644
index 08e307fd0..000000000
--- a/node_modules/core-js/modules/$.invoke.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// fast apply, http://jsperf.lnkit.com/fast-apply/5
-module.exports = function(fn, args, that){
- var un = that === undefined;
- switch(args.length){
- case 0: return un ? fn()
- : fn.call(that);
- case 1: return un ? fn(args[0])
- : fn.call(that, args[0]);
- case 2: return un ? fn(args[0], args[1])
- : fn.call(that, args[0], args[1]);
- case 3: return un ? fn(args[0], args[1], args[2])
- : fn.call(that, args[0], args[1], args[2]);
- case 4: return un ? fn(args[0], args[1], args[2], args[3])
- : fn.call(that, args[0], args[1], args[2], args[3]);
- } return fn.apply(that, args);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.iobject.js b/node_modules/core-js/modules/$.iobject.js
deleted file mode 100644
index cea38fab4..000000000
--- a/node_modules/core-js/modules/$.iobject.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// fallback for non-array-like ES3 and non-enumerable old V8 strings
-var cof = require('./$.cof');
-module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
- return cof(it) == 'String' ? it.split('') : Object(it);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.is-array-iter.js b/node_modules/core-js/modules/$.is-array-iter.js
deleted file mode 100644
index b6ef7017b..000000000
--- a/node_modules/core-js/modules/$.is-array-iter.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// check on default Array iterator
-var Iterators = require('./$.iterators')
- , ITERATOR = require('./$.wks')('iterator')
- , ArrayProto = Array.prototype;
-
-module.exports = function(it){
- return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.is-array.js b/node_modules/core-js/modules/$.is-array.js
deleted file mode 100644
index 8168b21ce..000000000
--- a/node_modules/core-js/modules/$.is-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// 7.2.2 IsArray(argument)
-var cof = require('./$.cof');
-module.exports = Array.isArray || function(arg){
- return cof(arg) == 'Array';
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.is-integer.js b/node_modules/core-js/modules/$.is-integer.js
deleted file mode 100644
index b51e1317e..000000000
--- a/node_modules/core-js/modules/$.is-integer.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// 20.1.2.3 Number.isInteger(number)
-var isObject = require('./$.is-object')
- , floor = Math.floor;
-module.exports = function isInteger(it){
- return !isObject(it) && isFinite(it) && floor(it) === it;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.is-object.js b/node_modules/core-js/modules/$.is-object.js
deleted file mode 100644
index ee694be2f..000000000
--- a/node_modules/core-js/modules/$.is-object.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = function(it){
- return typeof it === 'object' ? it !== null : typeof it === 'function';
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.is-regexp.js b/node_modules/core-js/modules/$.is-regexp.js
deleted file mode 100644
index 9ea2aad74..000000000
--- a/node_modules/core-js/modules/$.is-regexp.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 7.2.8 IsRegExp(argument)
-var isObject = require('./$.is-object')
- , cof = require('./$.cof')
- , MATCH = require('./$.wks')('match');
-module.exports = function(it){
- var isRegExp;
- return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.iter-call.js b/node_modules/core-js/modules/$.iter-call.js
deleted file mode 100644
index e6b9d1b1f..000000000
--- a/node_modules/core-js/modules/$.iter-call.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// call something on iterator step with safe closing on error
-var anObject = require('./$.an-object');
-module.exports = function(iterator, fn, value, entries){
- try {
- return entries ? fn(anObject(value)[0], value[1]) : fn(value);
- // 7.4.6 IteratorClose(iterator, completion)
- } catch(e){
- var ret = iterator['return'];
- if(ret !== undefined)anObject(ret.call(iterator));
- throw e;
- }
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.iter-create.js b/node_modules/core-js/modules/$.iter-create.js
deleted file mode 100644
index adebcf9a4..000000000
--- a/node_modules/core-js/modules/$.iter-create.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-var $ = require('./$')
- , descriptor = require('./$.property-desc')
- , setToStringTag = require('./$.set-to-string-tag')
- , IteratorPrototype = {};
-
-// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
-require('./$.hide')(IteratorPrototype, require('./$.wks')('iterator'), function(){ return this; });
-
-module.exports = function(Constructor, NAME, next){
- Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});
- setToStringTag(Constructor, NAME + ' Iterator');
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.iter-define.js b/node_modules/core-js/modules/$.iter-define.js
deleted file mode 100644
index 630cdf385..000000000
--- a/node_modules/core-js/modules/$.iter-define.js
+++ /dev/null
@@ -1,66 +0,0 @@
-'use strict';
-var LIBRARY = require('./$.library')
- , $export = require('./$.export')
- , redefine = require('./$.redefine')
- , hide = require('./$.hide')
- , has = require('./$.has')
- , Iterators = require('./$.iterators')
- , $iterCreate = require('./$.iter-create')
- , setToStringTag = require('./$.set-to-string-tag')
- , getProto = require('./$').getProto
- , ITERATOR = require('./$.wks')('iterator')
- , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
- , FF_ITERATOR = '@@iterator'
- , KEYS = 'keys'
- , VALUES = 'values';
-
-var returnThis = function(){ return this; };
-
-module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){
- $iterCreate(Constructor, NAME, next);
- var getMethod = function(kind){
- if(!BUGGY && kind in proto)return proto[kind];
- switch(kind){
- case KEYS: return function keys(){ return new Constructor(this, kind); };
- case VALUES: return function values(){ return new Constructor(this, kind); };
- } return function entries(){ return new Constructor(this, kind); };
- };
- var TAG = NAME + ' Iterator'
- , DEF_VALUES = DEFAULT == VALUES
- , VALUES_BUG = false
- , proto = Base.prototype
- , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
- , $default = $native || getMethod(DEFAULT)
- , methods, key;
- // Fix native
- if($native){
- var IteratorPrototype = getProto($default.call(new Base));
- // Set @@toStringTag to native iterators
- setToStringTag(IteratorPrototype, TAG, true);
- // FF fix
- if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
- // fix Array#{values, @@iterator}.name in V8 / FF
- if(DEF_VALUES && $native.name !== VALUES){
- VALUES_BUG = true;
- $default = function values(){ return $native.call(this); };
- }
- }
- // Define iterator
- if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
- hide(proto, ITERATOR, $default);
- }
- // Plug for library
- Iterators[NAME] = $default;
- Iterators[TAG] = returnThis;
- if(DEFAULT){
- methods = {
- values: DEF_VALUES ? $default : getMethod(VALUES),
- keys: IS_SET ? $default : getMethod(KEYS),
- entries: !DEF_VALUES ? $default : getMethod('entries')
- };
- if(FORCED)for(key in methods){
- if(!(key in proto))redefine(proto, key, methods[key]);
- } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
- }
- return methods;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.iter-detect.js b/node_modules/core-js/modules/$.iter-detect.js
deleted file mode 100644
index bff5fffb4..000000000
--- a/node_modules/core-js/modules/$.iter-detect.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var ITERATOR = require('./$.wks')('iterator')
- , SAFE_CLOSING = false;
-
-try {
- var riter = [7][ITERATOR]();
- riter['return'] = function(){ SAFE_CLOSING = true; };
- Array.from(riter, function(){ throw 2; });
-} catch(e){ /* empty */ }
-
-module.exports = function(exec, skipClosing){
- if(!skipClosing && !SAFE_CLOSING)return false;
- var safe = false;
- try {
- var arr = [7]
- , iter = arr[ITERATOR]();
- iter.next = function(){ return {done: safe = true}; };
- arr[ITERATOR] = function(){ return iter; };
- exec(arr);
- } catch(e){ /* empty */ }
- return safe;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.iter-step.js b/node_modules/core-js/modules/$.iter-step.js
deleted file mode 100644
index 6ff0dc518..000000000
--- a/node_modules/core-js/modules/$.iter-step.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = function(done, value){
- return {value: value, done: !!done};
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.iterators.js b/node_modules/core-js/modules/$.iterators.js
deleted file mode 100644
index a09954537..000000000
--- a/node_modules/core-js/modules/$.iterators.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = {}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.js b/node_modules/core-js/modules/$.js
deleted file mode 100644
index 053bae48c..000000000
--- a/node_modules/core-js/modules/$.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var $Object = Object;
-module.exports = {
- create: $Object.create,
- getProto: $Object.getPrototypeOf,
- isEnum: {}.propertyIsEnumerable,
- getDesc: $Object.getOwnPropertyDescriptor,
- setDesc: $Object.defineProperty,
- setDescs: $Object.defineProperties,
- getKeys: $Object.keys,
- getNames: $Object.getOwnPropertyNames,
- getSymbols: $Object.getOwnPropertySymbols,
- each: [].forEach
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.keyof.js b/node_modules/core-js/modules/$.keyof.js
deleted file mode 100644
index 09d183a71..000000000
--- a/node_modules/core-js/modules/$.keyof.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var $ = require('./$')
- , toIObject = require('./$.to-iobject');
-module.exports = function(object, el){
- var O = toIObject(object)
- , keys = $.getKeys(O)
- , length = keys.length
- , index = 0
- , key;
- while(length > index)if(O[key = keys[index++]] === el)return key;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.library.js b/node_modules/core-js/modules/$.library.js
deleted file mode 100644
index 82e47dd52..000000000
--- a/node_modules/core-js/modules/$.library.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = false; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.math-expm1.js b/node_modules/core-js/modules/$.math-expm1.js
deleted file mode 100644
index 9d91be93e..000000000
--- a/node_modules/core-js/modules/$.math-expm1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.2.2.14 Math.expm1(x)
-module.exports = Math.expm1 || function expm1(x){
- return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.math-log1p.js b/node_modules/core-js/modules/$.math-log1p.js
deleted file mode 100644
index a92bf463a..000000000
--- a/node_modules/core-js/modules/$.math-log1p.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.2.2.20 Math.log1p(x)
-module.exports = Math.log1p || function log1p(x){
- return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.math-sign.js b/node_modules/core-js/modules/$.math-sign.js
deleted file mode 100644
index a4848df60..000000000
--- a/node_modules/core-js/modules/$.math-sign.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 20.2.2.28 Math.sign(x)
-module.exports = Math.sign || function sign(x){
- return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.microtask.js b/node_modules/core-js/modules/$.microtask.js
deleted file mode 100644
index 1f9ebeb5d..000000000
--- a/node_modules/core-js/modules/$.microtask.js
+++ /dev/null
@@ -1,64 +0,0 @@
-var global = require('./$.global')
- , macrotask = require('./$.task').set
- , Observer = global.MutationObserver || global.WebKitMutationObserver
- , process = global.process
- , Promise = global.Promise
- , isNode = require('./$.cof')(process) == 'process'
- , head, last, notify;
-
-var flush = function(){
- var parent, domain, fn;
- if(isNode && (parent = process.domain)){
- process.domain = null;
- parent.exit();
- }
- while(head){
- domain = head.domain;
- fn = head.fn;
- if(domain)domain.enter();
- fn(); // <- currently we use it only for Promise - try / catch not required
- if(domain)domain.exit();
- head = head.next;
- } last = undefined;
- if(parent)parent.enter();
-};
-
-// Node.js
-if(isNode){
- notify = function(){
- process.nextTick(flush);
- };
-// browsers with MutationObserver
-} else if(Observer){
- var toggle = 1
- , node = document.createTextNode('');
- new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new
- notify = function(){
- node.data = toggle = -toggle;
- };
-// environments with maybe non-completely correct, but existent Promise
-} else if(Promise && Promise.resolve){
- notify = function(){
- Promise.resolve().then(flush);
- };
-// for other environments - macrotask based on:
-// - setImmediate
-// - MessageChannel
-// - window.postMessag
-// - onreadystatechange
-// - setTimeout
-} else {
- notify = function(){
- // strange IE + webpack dev server bug - use .call(global)
- macrotask.call(global, flush);
- };
-}
-
-module.exports = function asap(fn){
- var task = {fn: fn, next: undefined, domain: isNode && process.domain};
- if(last)last.next = task;
- if(!head){
- head = task;
- notify();
- } last = task;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.object-assign.js b/node_modules/core-js/modules/$.object-assign.js
deleted file mode 100644
index 5ce43f781..000000000
--- a/node_modules/core-js/modules/$.object-assign.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// 19.1.2.1 Object.assign(target, source, ...)
-var $ = require('./$')
- , toObject = require('./$.to-object')
- , IObject = require('./$.iobject');
-
-// should work with symbols and should have deterministic property order (V8 bug)
-module.exports = require('./$.fails')(function(){
- var a = Object.assign
- , A = {}
- , B = {}
- , S = Symbol()
- , K = 'abcdefghijklmnopqrst';
- A[S] = 7;
- K.split('').forEach(function(k){ B[k] = k; });
- return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;
-}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
- var T = toObject(target)
- , $$ = arguments
- , $$len = $$.length
- , index = 1
- , getKeys = $.getKeys
- , getSymbols = $.getSymbols
- , isEnum = $.isEnum;
- while($$len > index){
- var S = IObject($$[index++])
- , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
- , length = keys.length
- , j = 0
- , key;
- while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
- }
- return T;
-} : Object.assign; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.object-define.js b/node_modules/core-js/modules/$.object-define.js
deleted file mode 100644
index 2fff248f1..000000000
--- a/node_modules/core-js/modules/$.object-define.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var $ = require('./$')
- , ownKeys = require('./$.own-keys')
- , toIObject = require('./$.to-iobject');
-
-module.exports = function define(target, mixin){
- var keys = ownKeys(toIObject(mixin))
- , length = keys.length
- , i = 0, key;
- while(length > i)$.setDesc(target, key = keys[i++], $.getDesc(mixin, key));
- return target;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.object-sap.js b/node_modules/core-js/modules/$.object-sap.js
deleted file mode 100644
index 5fa7288a8..000000000
--- a/node_modules/core-js/modules/$.object-sap.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// most Object methods by ES6 should accept primitives
-var $export = require('./$.export')
- , core = require('./$.core')
- , fails = require('./$.fails');
-module.exports = function(KEY, exec){
- var fn = (core.Object || {})[KEY] || Object[KEY]
- , exp = {};
- exp[KEY] = exec(fn);
- $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.object-to-array.js b/node_modules/core-js/modules/$.object-to-array.js
deleted file mode 100644
index d46425bac..000000000
--- a/node_modules/core-js/modules/$.object-to-array.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var $ = require('./$')
- , toIObject = require('./$.to-iobject')
- , isEnum = $.isEnum;
-module.exports = function(isEntries){
- return function(it){
- var O = toIObject(it)
- , keys = $.getKeys(O)
- , length = keys.length
- , i = 0
- , result = []
- , key;
- while(length > i)if(isEnum.call(O, key = keys[i++])){
- result.push(isEntries ? [key, O[key]] : O[key]);
- } return result;
- };
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.own-keys.js b/node_modules/core-js/modules/$.own-keys.js
deleted file mode 100644
index 0218c4bd5..000000000
--- a/node_modules/core-js/modules/$.own-keys.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// all object keys, includes non-enumerable and symbols
-var $ = require('./$')
- , anObject = require('./$.an-object')
- , Reflect = require('./$.global').Reflect;
-module.exports = Reflect && Reflect.ownKeys || function ownKeys(it){
- var keys = $.getNames(anObject(it))
- , getSymbols = $.getSymbols;
- return getSymbols ? keys.concat(getSymbols(it)) : keys;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.partial.js b/node_modules/core-js/modules/$.partial.js
deleted file mode 100644
index 53f97aa9c..000000000
--- a/node_modules/core-js/modules/$.partial.js
+++ /dev/null
@@ -1,24 +0,0 @@
-'use strict';
-var path = require('./$.path')
- , invoke = require('./$.invoke')
- , aFunction = require('./$.a-function');
-module.exports = function(/* ...pargs */){
- var fn = aFunction(this)
- , length = arguments.length
- , pargs = Array(length)
- , i = 0
- , _ = path._
- , holder = false;
- while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true;
- return function(/* ...args */){
- var that = this
- , $$ = arguments
- , $$len = $$.length
- , j = 0, k = 0, args;
- if(!holder && !$$len)return invoke(fn, pargs, that);
- args = pargs.slice();
- if(holder)for(;length > j; j++)if(args[j] === _)args[j] = $$[k++];
- while($$len > k)args.push($$[k++]);
- return invoke(fn, args, that);
- };
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.path.js b/node_modules/core-js/modules/$.path.js
deleted file mode 100644
index 11ff15eb3..000000000
--- a/node_modules/core-js/modules/$.path.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./$.global'); \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.property-desc.js b/node_modules/core-js/modules/$.property-desc.js
deleted file mode 100644
index e3f7ab2dc..000000000
--- a/node_modules/core-js/modules/$.property-desc.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = function(bitmap, value){
- return {
- enumerable : !(bitmap & 1),
- configurable: !(bitmap & 2),
- writable : !(bitmap & 4),
- value : value
- };
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.redefine-all.js b/node_modules/core-js/modules/$.redefine-all.js
deleted file mode 100644
index 01fe55baa..000000000
--- a/node_modules/core-js/modules/$.redefine-all.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var redefine = require('./$.redefine');
-module.exports = function(target, src){
- for(var key in src)redefine(target, key, src[key]);
- return target;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.redefine.js b/node_modules/core-js/modules/$.redefine.js
deleted file mode 100644
index 1783e3a5f..000000000
--- a/node_modules/core-js/modules/$.redefine.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// add fake Function#toString
-// for correct work wrapped methods / constructors with methods like LoDash isNative
-var global = require('./$.global')
- , hide = require('./$.hide')
- , SRC = require('./$.uid')('src')
- , TO_STRING = 'toString'
- , $toString = Function[TO_STRING]
- , TPL = ('' + $toString).split(TO_STRING);
-
-require('./$.core').inspectSource = function(it){
- return $toString.call(it);
-};
-
-(module.exports = function(O, key, val, safe){
- if(typeof val == 'function'){
- val.hasOwnProperty(SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
- val.hasOwnProperty('name') || hide(val, 'name', key);
- }
- if(O === global){
- O[key] = val;
- } else {
- if(!safe)delete O[key];
- hide(O, key, val);
- }
-})(Function.prototype, TO_STRING, function toString(){
- return typeof this == 'function' && this[SRC] || $toString.call(this);
-}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.replacer.js b/node_modules/core-js/modules/$.replacer.js
deleted file mode 100644
index 5360a3d35..000000000
--- a/node_modules/core-js/modules/$.replacer.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = function(regExp, replace){
- var replacer = replace === Object(replace) ? function(part){
- return replace[part];
- } : replace;
- return function(it){
- return String(it).replace(regExp, replacer);
- };
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.same-value.js b/node_modules/core-js/modules/$.same-value.js
deleted file mode 100644
index 8c2b8c7f6..000000000
--- a/node_modules/core-js/modules/$.same-value.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// 7.2.9 SameValue(x, y)
-module.exports = Object.is || function is(x, y){
- return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.set-proto.js b/node_modules/core-js/modules/$.set-proto.js
deleted file mode 100644
index b1edd681d..000000000
--- a/node_modules/core-js/modules/$.set-proto.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Works with __proto__ only. Old v8 can't work with null proto objects.
-/* eslint-disable no-proto */
-var getDesc = require('./$').getDesc
- , isObject = require('./$.is-object')
- , anObject = require('./$.an-object');
-var check = function(O, proto){
- anObject(O);
- if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!");
-};
-module.exports = {
- set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
- function(test, buggy, set){
- try {
- set = require('./$.ctx')(Function.call, getDesc(Object.prototype, '__proto__').set, 2);
- set(test, []);
- buggy = !(test instanceof Array);
- } catch(e){ buggy = true; }
- return function setPrototypeOf(O, proto){
- check(O, proto);
- if(buggy)O.__proto__ = proto;
- else set(O, proto);
- return O;
- };
- }({}, false) : undefined),
- check: check
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.set-species.js b/node_modules/core-js/modules/$.set-species.js
deleted file mode 100644
index b1d04c6bd..000000000
--- a/node_modules/core-js/modules/$.set-species.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-var global = require('./$.global')
- , $ = require('./$')
- , DESCRIPTORS = require('./$.descriptors')
- , SPECIES = require('./$.wks')('species');
-
-module.exports = function(KEY){
- var C = global[KEY];
- if(DESCRIPTORS && C && !C[SPECIES])$.setDesc(C, SPECIES, {
- configurable: true,
- get: function(){ return this; }
- });
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.set-to-string-tag.js b/node_modules/core-js/modules/$.set-to-string-tag.js
deleted file mode 100644
index 22b342445..000000000
--- a/node_modules/core-js/modules/$.set-to-string-tag.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var def = require('./$').setDesc
- , has = require('./$.has')
- , TAG = require('./$.wks')('toStringTag');
-
-module.exports = function(it, tag, stat){
- if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.shared.js b/node_modules/core-js/modules/$.shared.js
deleted file mode 100644
index 8dea827ae..000000000
--- a/node_modules/core-js/modules/$.shared.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var global = require('./$.global')
- , SHARED = '__core-js_shared__'
- , store = global[SHARED] || (global[SHARED] = {});
-module.exports = function(key){
- return store[key] || (store[key] = {});
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.species-constructor.js b/node_modules/core-js/modules/$.species-constructor.js
deleted file mode 100644
index f71168b77..000000000
--- a/node_modules/core-js/modules/$.species-constructor.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// 7.3.20 SpeciesConstructor(O, defaultConstructor)
-var anObject = require('./$.an-object')
- , aFunction = require('./$.a-function')
- , SPECIES = require('./$.wks')('species');
-module.exports = function(O, D){
- var C = anObject(O).constructor, S;
- return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.strict-new.js b/node_modules/core-js/modules/$.strict-new.js
deleted file mode 100644
index 8bab9ed15..000000000
--- a/node_modules/core-js/modules/$.strict-new.js
+++ /dev/null
@@ -1,4 +0,0 @@
-module.exports = function(it, Constructor, name){
- if(!(it instanceof Constructor))throw TypeError(name + ": use the 'new' operator!");
- return it;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.string-at.js b/node_modules/core-js/modules/$.string-at.js
deleted file mode 100644
index 3d344bba7..000000000
--- a/node_modules/core-js/modules/$.string-at.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var toInteger = require('./$.to-integer')
- , defined = require('./$.defined');
-// true -> String#at
-// false -> String#codePointAt
-module.exports = function(TO_STRING){
- return function(that, pos){
- var s = String(defined(that))
- , i = toInteger(pos)
- , l = s.length
- , a, b;
- if(i < 0 || i >= l)return TO_STRING ? '' : undefined;
- a = s.charCodeAt(i);
- return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
- ? TO_STRING ? s.charAt(i) : a
- : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
- };
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.string-context.js b/node_modules/core-js/modules/$.string-context.js
deleted file mode 100644
index d6485a43b..000000000
--- a/node_modules/core-js/modules/$.string-context.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// helper for String#{startsWith, endsWith, includes}
-var isRegExp = require('./$.is-regexp')
- , defined = require('./$.defined');
-
-module.exports = function(that, searchString, NAME){
- if(isRegExp(searchString))throw TypeError('String#' + NAME + " doesn't accept regex!");
- return String(defined(that));
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.string-pad.js b/node_modules/core-js/modules/$.string-pad.js
deleted file mode 100644
index f0507d934..000000000
--- a/node_modules/core-js/modules/$.string-pad.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// https://github.com/ljharb/proposal-string-pad-left-right
-var toLength = require('./$.to-length')
- , repeat = require('./$.string-repeat')
- , defined = require('./$.defined');
-
-module.exports = function(that, maxLength, fillString, left){
- var S = String(defined(that))
- , stringLength = S.length
- , fillStr = fillString === undefined ? ' ' : String(fillString)
- , intMaxLength = toLength(maxLength);
- if(intMaxLength <= stringLength)return S;
- if(fillStr == '')fillStr = ' ';
- var fillLen = intMaxLength - stringLength
- , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
- if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);
- return left ? stringFiller + S : S + stringFiller;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.string-repeat.js b/node_modules/core-js/modules/$.string-repeat.js
deleted file mode 100644
index 491d08535..000000000
--- a/node_modules/core-js/modules/$.string-repeat.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var toInteger = require('./$.to-integer')
- , defined = require('./$.defined');
-
-module.exports = function repeat(count){
- var str = String(defined(this))
- , res = ''
- , n = toInteger(count);
- if(n < 0 || n == Infinity)throw RangeError("Count can't be negative");
- for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;
- return res;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.string-trim.js b/node_modules/core-js/modules/$.string-trim.js
deleted file mode 100644
index 04423f4db..000000000
--- a/node_modules/core-js/modules/$.string-trim.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var $export = require('./$.export')
- , defined = require('./$.defined')
- , fails = require('./$.fails')
- , spaces = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
- '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'
- , space = '[' + spaces + ']'
- , non = '\u200b\u0085'
- , ltrim = RegExp('^' + space + space + '*')
- , rtrim = RegExp(space + space + '*$');
-
-var exporter = function(KEY, exec){
- var exp = {};
- exp[KEY] = exec(trim);
- $export($export.P + $export.F * fails(function(){
- return !!spaces[KEY]() || non[KEY]() != non;
- }), 'String', exp);
-};
-
-// 1 -> String#trimLeft
-// 2 -> String#trimRight
-// 3 -> String#trim
-var trim = exporter.trim = function(string, TYPE){
- string = String(defined(string));
- if(TYPE & 1)string = string.replace(ltrim, '');
- if(TYPE & 2)string = string.replace(rtrim, '');
- return string;
-};
-
-module.exports = exporter; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.task.js b/node_modules/core-js/modules/$.task.js
deleted file mode 100644
index 5d7759e61..000000000
--- a/node_modules/core-js/modules/$.task.js
+++ /dev/null
@@ -1,75 +0,0 @@
-var ctx = require('./$.ctx')
- , invoke = require('./$.invoke')
- , html = require('./$.html')
- , cel = require('./$.dom-create')
- , global = require('./$.global')
- , process = global.process
- , setTask = global.setImmediate
- , clearTask = global.clearImmediate
- , MessageChannel = global.MessageChannel
- , counter = 0
- , queue = {}
- , ONREADYSTATECHANGE = 'onreadystatechange'
- , defer, channel, port;
-var run = function(){
- var id = +this;
- if(queue.hasOwnProperty(id)){
- var fn = queue[id];
- delete queue[id];
- fn();
- }
-};
-var listner = function(event){
- run.call(event.data);
-};
-// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
-if(!setTask || !clearTask){
- setTask = function setImmediate(fn){
- var args = [], i = 1;
- while(arguments.length > i)args.push(arguments[i++]);
- queue[++counter] = function(){
- invoke(typeof fn == 'function' ? fn : Function(fn), args);
- };
- defer(counter);
- return counter;
- };
- clearTask = function clearImmediate(id){
- delete queue[id];
- };
- // Node.js 0.8-
- if(require('./$.cof')(process) == 'process'){
- defer = function(id){
- process.nextTick(ctx(run, id, 1));
- };
- // Browsers with MessageChannel, includes WebWorkers
- } else if(MessageChannel){
- channel = new MessageChannel;
- port = channel.port2;
- channel.port1.onmessage = listner;
- defer = ctx(port.postMessage, port, 1);
- // Browsers with postMessage, skip WebWorkers
- // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
- } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){
- defer = function(id){
- global.postMessage(id + '', '*');
- };
- global.addEventListener('message', listner, false);
- // IE8-
- } else if(ONREADYSTATECHANGE in cel('script')){
- defer = function(id){
- html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){
- html.removeChild(this);
- run.call(id);
- };
- };
- // Rest old browsers
- } else {
- defer = function(id){
- setTimeout(ctx(run, id, 1), 0);
- };
- }
-}
-module.exports = {
- set: setTask,
- clear: clearTask
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.to-index.js b/node_modules/core-js/modules/$.to-index.js
deleted file mode 100644
index 9346a8ff1..000000000
--- a/node_modules/core-js/modules/$.to-index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var toInteger = require('./$.to-integer')
- , max = Math.max
- , min = Math.min;
-module.exports = function(index, length){
- index = toInteger(index);
- return index < 0 ? max(index + length, 0) : min(index, length);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.to-integer.js b/node_modules/core-js/modules/$.to-integer.js
deleted file mode 100644
index f63baaff8..000000000
--- a/node_modules/core-js/modules/$.to-integer.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// 7.1.4 ToInteger
-var ceil = Math.ceil
- , floor = Math.floor;
-module.exports = function(it){
- return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.to-iobject.js b/node_modules/core-js/modules/$.to-iobject.js
deleted file mode 100644
index fcf54c82e..000000000
--- a/node_modules/core-js/modules/$.to-iobject.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// to indexed object, toObject with fallback for non-array-like ES3 strings
-var IObject = require('./$.iobject')
- , defined = require('./$.defined');
-module.exports = function(it){
- return IObject(defined(it));
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.to-length.js b/node_modules/core-js/modules/$.to-length.js
deleted file mode 100644
index 0e15b1b8c..000000000
--- a/node_modules/core-js/modules/$.to-length.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// 7.1.15 ToLength
-var toInteger = require('./$.to-integer')
- , min = Math.min;
-module.exports = function(it){
- return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.to-object.js b/node_modules/core-js/modules/$.to-object.js
deleted file mode 100644
index 2c57a29fa..000000000
--- a/node_modules/core-js/modules/$.to-object.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// 7.1.13 ToObject(argument)
-var defined = require('./$.defined');
-module.exports = function(it){
- return Object(defined(it));
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.to-primitive.js b/node_modules/core-js/modules/$.to-primitive.js
deleted file mode 100644
index 6fb4585a3..000000000
--- a/node_modules/core-js/modules/$.to-primitive.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// 7.1.1 ToPrimitive(input [, PreferredType])
-var isObject = require('./$.is-object');
-// instead of the ES6 spec version, we didn't implement @@toPrimitive case
-// and the second argument - flag - preferred type is a string
-module.exports = function(it, S){
- if(!isObject(it))return it;
- var fn, val;
- if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
- if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
- if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
- throw TypeError("Can't convert object to primitive value");
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.typed-array.js b/node_modules/core-js/modules/$.typed-array.js
deleted file mode 100644
index 1bd5cf0e8..000000000
--- a/node_modules/core-js/modules/$.typed-array.js
+++ /dev/null
@@ -1,365 +0,0 @@
-'use strict';
-if(require('./$.descriptors')){
- var LIBRARY = require('./$.library')
- , global = require('./$.global')
- , $ = require('./$')
- , fails = require('./$.fails')
- , $export = require('./$.export')
- , $typed = require('./$.typed')
- , $buffer = require('./$.buffer')
- , ctx = require('./$.ctx')
- , strictNew = require('./$.strict-new')
- , propertyDesc = require('./$.property-desc')
- , hide = require('./$.hide')
- , redefineAll = require('./$.redefine-all')
- , isInteger = require('./$.is-integer')
- , toInteger = require('./$.to-integer')
- , toLength = require('./$.to-length')
- , toIndex = require('./$.to-index')
- , toPrimitive = require('./$.to-primitive')
- , isObject = require('./$.is-object')
- , toObject = require('./$.to-object')
- , isArrayIter = require('./$.is-array-iter')
- , isIterable = require('./core.is-iterable')
- , getIterFn = require('./core.get-iterator-method')
- , wks = require('./$.wks')
- , createArrayMethod = require('./$.array-methods')
- , createArrayIncludes = require('./$.array-includes')
- , speciesConstructor = require('./$.species-constructor')
- , ArrayIterators = require('./es6.array.iterator')
- , Iterators = require('./$.iterators')
- , $iterDetect = require('./$.iter-detect')
- , setSpecies = require('./$.set-species')
- , arrayFill = require('./$.array-fill')
- , arrayCopyWithin = require('./$.array-copy-within')
- , ArrayProto = Array.prototype
- , $ArrayBuffer = $buffer.ArrayBuffer
- , $DataView = $buffer.DataView
- , setDesc = $.setDesc
- , getDesc = $.getDesc
- , arrayForEach = createArrayMethod(0)
- , arrayMap = createArrayMethod(1)
- , arrayFilter = createArrayMethod(2)
- , arraySome = createArrayMethod(3)
- , arrayEvery = createArrayMethod(4)
- , arrayFind = createArrayMethod(5)
- , arrayFindIndex = createArrayMethod(6)
- , arrayIncludes = createArrayIncludes(true)
- , arrayIndexOf = createArrayIncludes(false)
- , arrayValues = ArrayIterators.values
- , arrayKeys = ArrayIterators.keys
- , arrayEntries = ArrayIterators.entries
- , arrayLastIndexOf = ArrayProto.lastIndexOf
- , arrayReduce = ArrayProto.reduce
- , arrayReduceRight = ArrayProto.reduceRight
- , arrayJoin = ArrayProto.join
- , arrayReverse = ArrayProto.reverse
- , arraySort = ArrayProto.sort
- , arraySlice = ArrayProto.slice
- , arrayToString = ArrayProto.toString
- , arrayToLocaleString = ArrayProto.toLocaleString
- , ITERATOR = wks('iterator')
- , TAG = wks('toStringTag')
- , TYPED_CONSTRUCTOR = wks('typed_constructor')
- , DEF_CONSTRUCTOR = wks('def_constructor')
- , ALL_ARRAYS = $typed.ARRAYS
- , TYPED_ARRAY = $typed.TYPED
- , VIEW = $typed.VIEW
- , BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';
-
- var LITTLE_ENDIAN = fails(function(){
- return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;
- });
-
- var validate = function(it){
- if(isObject(it) && TYPED_ARRAY in it)return it;
- throw TypeError(it + ' is not a typed array!');
- };
-
- var fromList = function(O, list){
- var index = 0
- , length = list.length
- , result = allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);
- while(length > index)result[index] = list[index++];
- return result;
- };
-
- var allocate = function(C, length){
- if(!(isObject(C) && TYPED_CONSTRUCTOR in C)){
- throw TypeError('It is not a typed array constructor!');
- } return new C(length);
- };
-
- var $from = function from(source /*, mapfn, thisArg */){
- var O = toObject(source)
- , $$ = arguments
- , $$len = $$.length
- , mapfn = $$len > 1 ? $$[1] : undefined
- , mapping = mapfn !== undefined
- , iterFn = getIterFn(O)
- , i, length, values, result, step, iterator;
- if(iterFn != undefined && !isArrayIter(iterFn)){
- for(iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++){
- values.push(step.value);
- } O = values;
- }
- if(mapping && $$len > 2)mapfn = ctx(mapfn, $$[2], 2);
- for(i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++){
- result[i] = mapping ? mapfn(O[i], i) : O[i];
- }
- return result;
- };
-
- var addGetter = function(C, key, internal){
- setDesc(C.prototype, key, {get: function(){ return this._d[internal]; }});
- };
-
- var $of = function of(/*...items*/){
- var index = 0
- , length = arguments.length
- , result = allocate(this, length);
- while(length > index)result[index] = arguments[index++];
- return result;
- };
- var $toLocaleString = function toLocaleString(){
- return arrayToLocaleString.apply(validate(this), arguments);
- };
-
- var proto = {
- copyWithin: function copyWithin(target, start /*, end */){
- return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
- },
- every: function every(callbackfn /*, thisArg */){
- return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- fill: function fill(value /*, start, end */){ // eslint-disable-line no-unused-vars
- return arrayFill.apply(validate(this), arguments);
- },
- filter: function filter(callbackfn /*, thisArg */){
- return fromList(this, arrayFilter(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined));
- },
- find: function find(predicate /*, thisArg */){
- return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
- },
- findIndex: function findIndex(predicate /*, thisArg */){
- return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
- },
- forEach: function forEach(callbackfn /*, thisArg */){
- arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- indexOf: function indexOf(searchElement /*, fromIndex */){
- return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
- },
- includes: function includes(searchElement /*, fromIndex */){
- return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
- },
- join: function join(separator){ // eslint-disable-line no-unused-vars
- return arrayJoin.apply(validate(this), arguments);
- },
- lastIndexOf: function lastIndexOf(searchElement /*, fromIndex */){ // eslint-disable-line no-unused-vars
- return arrayLastIndexOf.apply(validate(this), arguments);
- },
- map: function map(mapfn /*, thisArg */){
- return fromList(this, arrayMap(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined)); // TODO
- },
- reduce: function reduce(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
- return arrayReduce.apply(validate(this), arguments);
- },
- reduceRight: function reduceRight(callbackfn /*, initialValue */){ // eslint-disable-line no-unused-vars
- return arrayReduceRight.apply(validate(this), arguments);
- },
- reverse: function reverse(){
- return arrayReverse.call(validate(this));
- },
- set: function set(arrayLike /*, offset */){
- validate(this);
- var offset = toInteger(arguments.length > 1 ? arguments[1] : undefined);
- if(offset < 0)throw RangeError();
- var length = this.length;
- var src = toObject(arrayLike);
- var index = 0;
- var len = toLength(src.length);
- if(len + offset > length)throw RangeError();
- while(index < len)this[offset + index] = src[index++];
- },
- slice: function slice(start, end){
- return fromList(this, arraySlice.call(validate(this), start, end)); // TODO
- },
- some: function some(callbackfn /*, thisArg */){
- return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- },
- sort: function sort(comparefn){
- return arraySort.call(validate(this), comparefn);
- },
- subarray: function subarray(begin, end){
- var O = validate(this)
- , length = O.length
- , $begin = toIndex(begin, length);
- return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(
- O.buffer,
- O.byteOffset + $begin * O.BYTES_PER_ELEMENT,
- toLength((end === undefined ? length : toIndex(end, length)) - $begin)
- );
- },
- entries: function entries(){
- return arrayEntries.call(validate(this));
- },
- keys: function keys(){
- return arrayKeys.call(validate(this));
- },
- values: function values(){
- return arrayValues.call(validate(this));
- }
- };
-
- var isTAIndex = function(target, key){
- return isObject(target)
- && TYPED_ARRAY in target
- && typeof key != 'symbol'
- && key in target
- && String(+key) == String(key);
- };
- var $getDesc = function getOwnPropertyDescriptor(target, key){
- return isTAIndex(target, key = toPrimitive(key, true))
- ? propertyDesc(2, target[key])
- : getDesc(target, key);
- };
- var $setDesc = function defineProperty(target, key, desc){
- if(isTAIndex(target, key = toPrimitive(key, true)) && isObject(desc)){
- if('value' in desc)target[key] = desc.value;
- return target;
- } else return setDesc(target, key, desc);
- };
-
- if(!ALL_ARRAYS){
- $.getDesc = $getDesc;
- $.setDesc = $setDesc;
- }
-
- $export($export.S + $export.F * !ALL_ARRAYS, 'Object', {
- getOwnPropertyDescriptor: $getDesc,
- defineProperty: $setDesc
- });
-
- var $TypedArrayPrototype$ = redefineAll({}, proto);
- redefineAll($TypedArrayPrototype$, {
- constructor: function(){ /* noop */ },
- toString: arrayToString,
- toLocaleString: $toLocaleString
- });
- $.setDesc($TypedArrayPrototype$, TAG, {
- get: function(){ return this[TYPED_ARRAY]; }
- });
-
- module.exports = function(KEY, BYTES, wrapper, CLAMPED){
- CLAMPED = !!CLAMPED;
- var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'
- , GETTER = 'get' + KEY
- , SETTER = 'set' + KEY
- , TypedArray = global[NAME]
- , Base = TypedArray || {}
- , FORCED = !TypedArray || !$typed.ABV
- , $iterator = proto.values
- , O = {};
- var addElement = function(that, index){
- setDesc(that, index, {
- get: function(){
- var data = this._d;
- return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);
- },
- set: function(it){
- var data = this._d;
- if(CLAMPED)it = (it = Math.round(it)) < 0 ? 0 : it > 0xff ? 0xff : it & 0xff;
- data.v[SETTER](index * BYTES + data.o, it, LITTLE_ENDIAN);
- },
- enumerable: true
- });
- };
- if(!$ArrayBuffer)return;
- if(FORCED){
- TypedArray = wrapper(function(that, data, $offset, $length){
- strictNew(that, TypedArray, NAME);
- var index = 0
- , offset = 0
- , buffer, byteLength, length;
- if(!isObject(data)){
- byteLength = toInteger(data) * BYTES;
- buffer = new $ArrayBuffer(byteLength);
- // TODO TA case
- } else if(data instanceof $ArrayBuffer){
- buffer = data;
- offset = toInteger($offset);
- if(offset < 0 || offset % BYTES)throw RangeError();
- var $len = data.byteLength;
- if($length === undefined){
- if($len % BYTES)throw RangeError();
- byteLength = $len - offset;
- if(byteLength < 0)throw RangeError();
- } else {
- byteLength = toLength($length) * BYTES;
- if(byteLength + offset > $len)throw RangeError();
- }
- } else return $from.call(TypedArray, data);
- length = byteLength / BYTES;
- hide(that, '_d', {
- b: buffer,
- o: offset,
- l: byteLength,
- e: length,
- v: new $DataView(buffer)
- });
- while(index < length)addElement(that, index++);
- });
- TypedArray.prototype = $.create($TypedArrayPrototype$);
- addGetter(TypedArray, 'buffer', 'b');
- addGetter(TypedArray, 'byteOffset', 'o');
- addGetter(TypedArray, 'byteLength', 'l');
- addGetter(TypedArray, 'length', 'e');
- hide(TypedArray, BYTES_PER_ELEMENT, BYTES);
- hide(TypedArray.prototype, BYTES_PER_ELEMENT, BYTES);
- hide(TypedArray.prototype, 'constructor', TypedArray);
- } else if(!$iterDetect(function(iter){
- new TypedArray(iter); // eslint-disable-line no-new
- }, true)){
- TypedArray = wrapper(function(that, data, $offset, $length){
- strictNew(that, TypedArray, NAME);
- if(isObject(data) && isIterable(data))return $from.call(TypedArray, data);
- return $length === undefined ? new Base(data, $offset) : new Base(data, $offset, $length);
- });
- TypedArray.prototype = Base.prototype;
- if(!LIBRARY)TypedArray.prototype.constructor = TypedArray;
- }
- var TypedArrayPrototype = TypedArray.prototype;
- var $nativeIterator = TypedArrayPrototype[ITERATOR];
- hide(TypedArray, TYPED_CONSTRUCTOR, true);
- hide(TypedArrayPrototype, TYPED_ARRAY, NAME);
- hide(TypedArrayPrototype, VIEW, true);
- hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);
- TAG in TypedArrayPrototype || $.setDesc(TypedArrayPrototype, TAG, {
- get: function(){ return NAME; }
- });
-
- O[NAME] = TypedArray;
-
- $export($export.G + $export.W + $export.F * (TypedArray != Base), O);
-
- $export($export.S + $export.F * (TypedArray != Base), NAME, {
- BYTES_PER_ELEMENT: BYTES,
- from: Base.from || $from,
- of: Base.of || $of
- });
-
- $export($export.P + $export.F * FORCED, NAME, proto);
-
- $export($export.P + $export.F * (TypedArrayPrototype.toString != arrayToString), NAME, {toString: arrayToString});
-
- $export($export.P + $export.F * fails(function(){
- return [1, 2].toLocaleString() != new Typed([1, 2]).toLocaleString()
- }), NAME, {toLocaleString: $toLocaleString});
-
- Iterators[NAME] = $nativeIterator || $iterator;
- LIBRARY || $nativeIterator || hide(TypedArrayPrototype, ITERATOR, $iterator);
-
- setSpecies(NAME);
- };
-} else module.exports = function(){ /* empty */}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.typed.js b/node_modules/core-js/modules/$.typed.js
deleted file mode 100644
index ced241268..000000000
--- a/node_modules/core-js/modules/$.typed.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var global = require('./$.global')
- , hide = require('./$.hide')
- , uid = require('./$.uid')
- , TYPED = uid('typed_array')
- , VIEW = uid('view')
- , ABV = !!(global.ArrayBuffer && global.DataView)
- , ARRAYS = true
- , i = 0, l = 9;
-
-var TypedArrayConstructors = [
- 'Int8Array',
- 'Uint8Array',
- 'Uint8ClampedArray',
- 'Int16Array',
- 'Uint16Array',
- 'Int32Array',
- 'Uint32Array',
- 'Float32Array',
- 'Float64Array'
-];
-
-while(i < l){
- var Typed = global[TypedArrayConstructors[i++]];
- if(Typed){
- hide(Typed.prototype, TYPED, true);
- hide(Typed.prototype, VIEW, true);
- } else ARRAYS = false;
-}
-
-module.exports = {
- ARRAYS: ARRAYS,
- ABV: ABV,
- CONSTR: ARRAYS && ABV,
- TYPED: TYPED,
- VIEW: VIEW
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.uid.js b/node_modules/core-js/modules/$.uid.js
deleted file mode 100644
index 3be4196bb..000000000
--- a/node_modules/core-js/modules/$.uid.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var id = 0
- , px = Math.random();
-module.exports = function(key){
- return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/$.wks.js b/node_modules/core-js/modules/$.wks.js
deleted file mode 100644
index 87a3d29ae..000000000
--- a/node_modules/core-js/modules/$.wks.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var store = require('./$.shared')('wks')
- , uid = require('./$.uid')
- , Symbol = require('./$.global').Symbol;
-module.exports = function(name){
- return store[name] || (store[name] =
- Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/core.delay.js b/node_modules/core-js/modules/core.delay.js
index 3e19ef390..ea031be4a 100644
--- a/node_modules/core-js/modules/core.delay.js
+++ b/node_modules/core-js/modules/core.delay.js
@@ -1,7 +1,7 @@
-var global = require('./$.global')
- , core = require('./$.core')
- , $export = require('./$.export')
- , partial = require('./$.partial');
+var global = require('./_global')
+ , core = require('./_core')
+ , $export = require('./_export')
+ , partial = require('./_partial');
// https://esdiscuss.org/topic/promise-returning-delay-function
$export($export.G + $export.F, {
delay: function delay(time){
diff --git a/node_modules/core-js/modules/core.dict.js b/node_modules/core-js/modules/core.dict.js
index df3149887..88c54e3d7 100644
--- a/node_modules/core-js/modules/core.dict.js
+++ b/node_modules/core-js/modules/core.dict.js
@@ -1,20 +1,22 @@
'use strict';
-var $ = require('./$')
- , ctx = require('./$.ctx')
- , $export = require('./$.export')
- , createDesc = require('./$.property-desc')
- , assign = require('./$.object-assign')
- , keyOf = require('./$.keyof')
- , aFunction = require('./$.a-function')
- , forOf = require('./$.for-of')
- , isIterable = require('./core.is-iterable')
- , $iterCreate = require('./$.iter-create')
- , step = require('./$.iter-step')
- , isObject = require('./$.is-object')
- , toIObject = require('./$.to-iobject')
- , DESCRIPTORS = require('./$.descriptors')
- , has = require('./$.has')
- , getKeys = $.getKeys;
+var ctx = require('./_ctx')
+ , $export = require('./_export')
+ , createDesc = require('./_property-desc')
+ , assign = require('./_object-assign')
+ , create = require('./_object-create')
+ , getPrototypeOf = require('./_object-gpo')
+ , getKeys = require('./_object-keys')
+ , dP = require('./_object-dp')
+ , keyOf = require('./_keyof')
+ , aFunction = require('./_a-function')
+ , forOf = require('./_for-of')
+ , isIterable = require('./core.is-iterable')
+ , $iterCreate = require('./_iter-create')
+ , step = require('./_iter-step')
+ , isObject = require('./_is-object')
+ , toIObject = require('./_to-iobject')
+ , DESCRIPTORS = require('./_descriptors')
+ , has = require('./_has');
// 0 -> Dict.forEach
// 1 -> Dict.map
@@ -81,7 +83,7 @@ $iterCreate(DictIterator, 'Dict', function(){
});
function Dict(iterable){
- var dict = $.create(null);
+ var dict = create(null);
if(iterable != undefined){
if(isIterable(iterable)){
forOf(iterable, true, function(key, value){
@@ -120,13 +122,13 @@ function get(object, key){
if(has(object, key))return object[key];
}
function set(object, key, value){
- if(DESCRIPTORS && key in Object)$.setDesc(object, key, createDesc(0, value));
+ if(DESCRIPTORS && key in Object)dP.f(object, key, createDesc(0, value));
else object[key] = value;
return object;
}
function isDict(it){
- return isObject(it) && $.getProto(it) === Dict.prototype;
+ return isObject(it) && getPrototypeOf(it) === Dict.prototype;
}
$export($export.G + $export.F, {Dict: Dict});
diff --git a/node_modules/core-js/modules/core.function.part.js b/node_modules/core-js/modules/core.function.part.js
index 9943b3077..ce851ff84 100644
--- a/node_modules/core-js/modules/core.function.part.js
+++ b/node_modules/core-js/modules/core.function.part.js
@@ -1,7 +1,7 @@
-var path = require('./$.path')
- , $export = require('./$.export');
+var path = require('./_path')
+ , $export = require('./_export');
// Placeholder
-require('./$.core')._ = path._ = path._ || {};
+require('./_core')._ = path._ = path._ || {};
-$export($export.P + $export.F, 'Function', {part: require('./$.partial')}); \ No newline at end of file
+$export($export.P + $export.F, 'Function', {part: require('./_partial')}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/core.get-iterator-method.js b/node_modules/core-js/modules/core.get-iterator-method.js
index 02db743c3..e2c7ecc3d 100644
--- a/node_modules/core-js/modules/core.get-iterator-method.js
+++ b/node_modules/core-js/modules/core.get-iterator-method.js
@@ -1,7 +1,7 @@
-var classof = require('./$.classof')
- , ITERATOR = require('./$.wks')('iterator')
- , Iterators = require('./$.iterators');
-module.exports = require('./$.core').getIteratorMethod = function(it){
+var classof = require('./_classof')
+ , ITERATOR = require('./_wks')('iterator')
+ , Iterators = require('./_iterators');
+module.exports = require('./_core').getIteratorMethod = function(it){
if(it != undefined)return it[ITERATOR]
|| it['@@iterator']
|| Iterators[classof(it)];
diff --git a/node_modules/core-js/modules/core.get-iterator.js b/node_modules/core-js/modules/core.get-iterator.js
index 7290904a6..c292e1ab1 100644
--- a/node_modules/core-js/modules/core.get-iterator.js
+++ b/node_modules/core-js/modules/core.get-iterator.js
@@ -1,6 +1,6 @@
-var anObject = require('./$.an-object')
+var anObject = require('./_an-object')
, get = require('./core.get-iterator-method');
-module.exports = require('./$.core').getIterator = function(it){
+module.exports = require('./_core').getIterator = function(it){
var iterFn = get(it);
if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');
return anObject(iterFn.call(it));
diff --git a/node_modules/core-js/modules/core.is-iterable.js b/node_modules/core-js/modules/core.is-iterable.js
index c27e6588f..b2b01b6bb 100644
--- a/node_modules/core-js/modules/core.is-iterable.js
+++ b/node_modules/core-js/modules/core.is-iterable.js
@@ -1,7 +1,7 @@
-var classof = require('./$.classof')
- , ITERATOR = require('./$.wks')('iterator')
- , Iterators = require('./$.iterators');
-module.exports = require('./$.core').isIterable = function(it){
+var classof = require('./_classof')
+ , ITERATOR = require('./_wks')('iterator')
+ , Iterators = require('./_iterators');
+module.exports = require('./_core').isIterable = function(it){
var O = Object(it);
return O[ITERATOR] !== undefined
|| '@@iterator' in O
diff --git a/node_modules/core-js/modules/core.log.js b/node_modules/core-js/modules/core.log.js
deleted file mode 100644
index 4c0ea53da..000000000
--- a/node_modules/core-js/modules/core.log.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var $ = require('./$')
- , global = require('./$.global')
- , $export = require('./$.export')
- , log = {}
- , enabled = true;
-// Methods from https://github.com/DeveloperToolsWG/console-object/blob/master/api.md
-$.each.call((
- 'assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,' +
- 'info,isIndependentlyComposed,log,markTimeline,profile,profileEnd,table,' +
- 'time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn'
-).split(','), function(key){
- log[key] = function(){
- var $console = global.console;
- if(enabled && $console && $console[key]){
- return Function.apply.call($console[key], $console, arguments);
- }
- };
-});
-$export($export.G + $export.F, {log: require('./$.object-assign')(log.log, log, {
- enable: function(){
- enabled = true;
- },
- disable: function(){
- enabled = false;
- }
-})}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/core.number.iterator.js b/node_modules/core-js/modules/core.number.iterator.js
index d92737808..9700acba0 100644
--- a/node_modules/core-js/modules/core.number.iterator.js
+++ b/node_modules/core-js/modules/core.number.iterator.js
@@ -1,5 +1,5 @@
'use strict';
-require('./$.iter-define')(Number, 'Number', function(iterated){
+require('./_iter-define')(Number, 'Number', function(iterated){
this._l = +iterated;
this._i = 0;
}, function(){
diff --git a/node_modules/core-js/modules/core.object.classof.js b/node_modules/core-js/modules/core.object.classof.js
index df682e446..342c73713 100644
--- a/node_modules/core-js/modules/core.object.classof.js
+++ b/node_modules/core-js/modules/core.object.classof.js
@@ -1,3 +1,3 @@
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.S + $export.F, 'Object', {classof: require('./$.classof')}); \ No newline at end of file
+$export($export.S + $export.F, 'Object', {classof: require('./_classof')}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/core.object.define.js b/node_modules/core-js/modules/core.object.define.js
index fe4cbe9b3..d60e9a951 100644
--- a/node_modules/core-js/modules/core.object.define.js
+++ b/node_modules/core-js/modules/core.object.define.js
@@ -1,4 +1,4 @@
-var $export = require('./$.export')
- , define = require('./$.object-define');
+var $export = require('./_export')
+ , define = require('./_object-define');
$export($export.S + $export.F, 'Object', {define: define}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/core.object.is-object.js b/node_modules/core-js/modules/core.object.is-object.js
index c60a977af..f2ba059fb 100644
--- a/node_modules/core-js/modules/core.object.is-object.js
+++ b/node_modules/core-js/modules/core.object.is-object.js
@@ -1,3 +1,3 @@
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.S + $export.F, 'Object', {isObject: require('./$.is-object')}); \ No newline at end of file
+$export($export.S + $export.F, 'Object', {isObject: require('./_is-object')}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/core.object.make.js b/node_modules/core-js/modules/core.object.make.js
index 95b999617..3d2a2b5f5 100644
--- a/node_modules/core-js/modules/core.object.make.js
+++ b/node_modules/core-js/modules/core.object.make.js
@@ -1,6 +1,6 @@
-var $export = require('./$.export')
- , define = require('./$.object-define')
- , create = require('./$').create;
+var $export = require('./_export')
+ , define = require('./_object-define')
+ , create = require('./_object-create');
$export($export.S + $export.F, 'Object', {
make: function(proto, mixin){
diff --git a/node_modules/core-js/modules/core.string.escape-html.js b/node_modules/core-js/modules/core.string.escape-html.js
index 81737e750..a4b8d2f02 100644
--- a/node_modules/core-js/modules/core.string.escape-html.js
+++ b/node_modules/core-js/modules/core.string.escape-html.js
@@ -1,6 +1,6 @@
'use strict';
-var $export = require('./$.export');
-var $re = require('./$.replacer')(/[&<>"']/g, {
+var $export = require('./_export');
+var $re = require('./_replacer')(/[&<>"']/g, {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
diff --git a/node_modules/core-js/modules/core.string.unescape-html.js b/node_modules/core-js/modules/core.string.unescape-html.js
index 9d7a3d2c8..413622b94 100644
--- a/node_modules/core-js/modules/core.string.unescape-html.js
+++ b/node_modules/core-js/modules/core.string.unescape-html.js
@@ -1,6 +1,6 @@
'use strict';
-var $export = require('./$.export');
-var $re = require('./$.replacer')(/&(?:amp|lt|gt|quot|apos);/g, {
+var $export = require('./_export');
+var $re = require('./_replacer')(/&(?:amp|lt|gt|quot|apos);/g, {
'&amp;': '&',
'&lt;': '<',
'&gt;': '>',
diff --git a/node_modules/core-js/modules/es5.js b/node_modules/core-js/modules/es5.js
index 50f72b047..dd7ebadf8 100644
--- a/node_modules/core-js/modules/es5.js
+++ b/node_modules/core-js/modules/es5.js
@@ -1,276 +1,35 @@
-'use strict';
-var $ = require('./$')
- , $export = require('./$.export')
- , DESCRIPTORS = require('./$.descriptors')
- , createDesc = require('./$.property-desc')
- , html = require('./$.html')
- , cel = require('./$.dom-create')
- , has = require('./$.has')
- , cof = require('./$.cof')
- , invoke = require('./$.invoke')
- , fails = require('./$.fails')
- , anObject = require('./$.an-object')
- , aFunction = require('./$.a-function')
- , isObject = require('./$.is-object')
- , toObject = require('./$.to-object')
- , toIObject = require('./$.to-iobject')
- , toInteger = require('./$.to-integer')
- , toIndex = require('./$.to-index')
- , toLength = require('./$.to-length')
- , IObject = require('./$.iobject')
- , IE_PROTO = require('./$.uid')('__proto__')
- , createArrayMethod = require('./$.array-methods')
- , arrayIndexOf = require('./$.array-includes')(false)
- , ObjectProto = Object.prototype
- , ArrayProto = Array.prototype
- , arraySlice = ArrayProto.slice
- , arrayJoin = ArrayProto.join
- , defineProperty = $.setDesc
- , getOwnDescriptor = $.getDesc
- , defineProperties = $.setDescs
- , factories = {}
- , IE8_DOM_DEFINE;
-
-if(!DESCRIPTORS){
- IE8_DOM_DEFINE = !fails(function(){
- return defineProperty(cel('div'), 'a', {get: function(){ return 7; }}).a != 7;
- });
- $.setDesc = function(O, P, Attributes){
- if(IE8_DOM_DEFINE)try {
- return defineProperty(O, P, Attributes);
- } catch(e){ /* empty */ }
- if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
- if('value' in Attributes)anObject(O)[P] = Attributes.value;
- return O;
- };
- $.getDesc = function(O, P){
- if(IE8_DOM_DEFINE)try {
- return getOwnDescriptor(O, P);
- } catch(e){ /* empty */ }
- if(has(O, P))return createDesc(!ObjectProto.propertyIsEnumerable.call(O, P), O[P]);
- };
- $.setDescs = defineProperties = function(O, Properties){
- anObject(O);
- var keys = $.getKeys(Properties)
- , length = keys.length
- , i = 0
- , P;
- while(length > i)$.setDesc(O, P = keys[i++], Properties[P]);
- return O;
- };
-}
-$export($export.S + $export.F * !DESCRIPTORS, 'Object', {
- // 19.1.2.6 / 15.2.3.3 Object.getOwnPropertyDescriptor(O, P)
- getOwnPropertyDescriptor: $.getDesc,
- // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
- defineProperty: $.setDesc,
- // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
- defineProperties: defineProperties
-});
-
- // IE 8- don't enum bug keys
-var keys1 = ('constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,' +
- 'toLocaleString,toString,valueOf').split(',')
- // Additional keys for getOwnPropertyNames
- , keys2 = keys1.concat('length', 'prototype')
- , keysLen1 = keys1.length;
-
-// Create object with `null` prototype: use iframe Object with cleared prototype
-var createDict = function(){
- // Thrash, waste and sodomy: IE GC bug
- var iframe = cel('iframe')
- , i = keysLen1
- , gt = '>'
- , iframeDocument;
- iframe.style.display = 'none';
- html.appendChild(iframe);
- iframe.src = 'javascript:'; // eslint-disable-line no-script-url
- // createDict = iframe.contentWindow.Object;
- // html.removeChild(iframe);
- iframeDocument = iframe.contentWindow.document;
- iframeDocument.open();
- iframeDocument.write('<script>document.F=Object</script' + gt);
- iframeDocument.close();
- createDict = iframeDocument.F;
- while(i--)delete createDict.prototype[keys1[i]];
- return createDict();
-};
-var createGetKeys = function(names, length){
- return function(object){
- var O = toIObject(object)
- , i = 0
- , result = []
- , key;
- for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
- // Don't enum bug & hidden keys
- while(length > i)if(has(O, key = names[i++])){
- ~arrayIndexOf(result, key) || result.push(key);
- }
- return result;
- };
-};
-var Empty = function(){};
-$export($export.S, 'Object', {
- // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
- getPrototypeOf: $.getProto = $.getProto || function(O){
- O = toObject(O);
- if(has(O, IE_PROTO))return O[IE_PROTO];
- if(typeof O.constructor == 'function' && O instanceof O.constructor){
- return O.constructor.prototype;
- } return O instanceof Object ? ObjectProto : null;
- },
- // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
- getOwnPropertyNames: $.getNames = $.getNames || createGetKeys(keys2, keys2.length, true),
- // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
- create: $.create = $.create || function(O, /*?*/Properties){
- var result;
- if(O !== null){
- Empty.prototype = anObject(O);
- result = new Empty();
- Empty.prototype = null;
- // add "__proto__" for Object.getPrototypeOf shim
- result[IE_PROTO] = O;
- } else result = createDict();
- return Properties === undefined ? result : defineProperties(result, Properties);
- },
- // 19.1.2.14 / 15.2.3.14 Object.keys(O)
- keys: $.getKeys = $.getKeys || createGetKeys(keys1, keysLen1, false)
-});
-
-var construct = function(F, len, args){
- if(!(len in factories)){
- for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';
- factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
- }
- return factories[len](F, args);
-};
-
-// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
-$export($export.P, 'Function', {
- bind: function bind(that /*, args... */){
- var fn = aFunction(this)
- , partArgs = arraySlice.call(arguments, 1);
- var bound = function(/* args... */){
- var args = partArgs.concat(arraySlice.call(arguments));
- return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
- };
- if(isObject(fn.prototype))bound.prototype = fn.prototype;
- return bound;
- }
-});
-
-// fallback for not array-like ES3 strings and DOM objects
-$export($export.P + $export.F * fails(function(){
- if(html)arraySlice.call(html);
-}), 'Array', {
- slice: function(begin, end){
- var len = toLength(this.length)
- , klass = cof(this);
- end = end === undefined ? len : end;
- if(klass == 'Array')return arraySlice.call(this, begin, end);
- var start = toIndex(begin, len)
- , upTo = toIndex(end, len)
- , size = toLength(upTo - start)
- , cloned = Array(size)
- , i = 0;
- for(; i < size; i++)cloned[i] = klass == 'String'
- ? this.charAt(start + i)
- : this[start + i];
- return cloned;
- }
-});
-$export($export.P + $export.F * (IObject != Object), 'Array', {
- join: function join(separator){
- return arrayJoin.call(IObject(this), separator === undefined ? ',' : separator);
- }
-});
-
-// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
-$export($export.S, 'Array', {isArray: require('./$.is-array')});
-
-var createArrayReduce = function(isRight){
- return function(callbackfn, memo){
- aFunction(callbackfn);
- var O = IObject(this)
- , length = toLength(O.length)
- , index = isRight ? length - 1 : 0
- , i = isRight ? -1 : 1;
- if(arguments.length < 2)for(;;){
- if(index in O){
- memo = O[index];
- index += i;
- break;
- }
- index += i;
- if(isRight ? index < 0 : length <= index){
- throw TypeError('Reduce of empty array with no initial value');
- }
- }
- for(;isRight ? index >= 0 : length > index; index += i)if(index in O){
- memo = callbackfn(memo, O[index], index, this);
- }
- return memo;
- };
-};
-
-var methodize = function($fn){
- return function(arg1/*, arg2 = undefined */){
- return $fn(this, arg1, arguments[1]);
- };
-};
-
-$export($export.P, 'Array', {
- // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
- forEach: $.each = $.each || methodize(createArrayMethod(0)),
- // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
- map: methodize(createArrayMethod(1)),
- // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
- filter: methodize(createArrayMethod(2)),
- // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
- some: methodize(createArrayMethod(3)),
- // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
- every: methodize(createArrayMethod(4)),
- // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
- reduce: createArrayReduce(false),
- // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
- reduceRight: createArrayReduce(true),
- // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
- indexOf: methodize(arrayIndexOf),
- // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
- lastIndexOf: function(el, fromIndex /* = @[*-1] */){
- var O = toIObject(this)
- , length = toLength(O.length)
- , index = length - 1;
- if(arguments.length > 1)index = Math.min(index, toInteger(fromIndex));
- if(index < 0)index = toLength(length + index);
- for(;index >= 0; index--)if(index in O)if(O[index] === el)return index;
- return -1;
- }
-});
-
-// 20.3.3.1 / 15.9.4.4 Date.now()
-$export($export.S, 'Date', {now: function(){ return +new Date; }});
-
-var lz = function(num){
- return num > 9 ? num : '0' + num;
-};
-
-// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
-// PhantomJS / old WebKit has a broken implementations
-$export($export.P + $export.F * (fails(function(){
- return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';
-}) || !fails(function(){
- new Date(NaN).toISOString();
-})), 'Date', {
- toISOString: function toISOString(){
- if(!isFinite(this))throw RangeError('Invalid time value');
- var d = this
- , y = d.getUTCFullYear()
- , m = d.getUTCMilliseconds()
- , s = y < 0 ? '-' : y > 9999 ? '+' : '';
- return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
- '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
- 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
- ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
- }
-}); \ No newline at end of file
+// This file still here for a legacy code and will be removed in a near time
+require('./es6.object.create');
+require('./es6.object.define-property');
+require('./es6.object.define-properties');
+require('./es6.object.get-own-property-descriptor');
+require('./es6.object.get-prototype-of');
+require('./es6.object.keys');
+require('./es6.object.get-own-property-names');
+require('./es6.object.freeze');
+require('./es6.object.seal');
+require('./es6.object.prevent-extensions');
+require('./es6.object.is-frozen');
+require('./es6.object.is-sealed');
+require('./es6.object.is-extensible');
+require('./es6.function.bind');
+require('./es6.array.is-array');
+require('./es6.array.join');
+require('./es6.array.slice');
+require('./es6.array.sort');
+require('./es6.array.for-each');
+require('./es6.array.map');
+require('./es6.array.filter');
+require('./es6.array.some');
+require('./es6.array.every');
+require('./es6.array.reduce');
+require('./es6.array.reduce-right');
+require('./es6.array.index-of');
+require('./es6.array.last-index-of');
+require('./es6.date.now');
+require('./es6.date.to-iso-string');
+require('./es6.date.to-json');
+require('./es6.parse-int');
+require('./es6.parse-float');
+require('./es6.string.trim');
+require('./es6.regexp.to-string'); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.array.copy-within.js b/node_modules/core-js/modules/es6.array.copy-within.js
index 930ba78d4..027f7550e 100644
--- a/node_modules/core-js/modules/es6.array.copy-within.js
+++ b/node_modules/core-js/modules/es6.array.copy-within.js
@@ -1,6 +1,6 @@
// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.P, 'Array', {copyWithin: require('./$.array-copy-within')});
+$export($export.P, 'Array', {copyWithin: require('./_array-copy-within')});
-require('./$.add-to-unscopables')('copyWithin'); \ No newline at end of file
+require('./_add-to-unscopables')('copyWithin'); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.array.fill.js b/node_modules/core-js/modules/es6.array.fill.js
index c3b3e2e5d..f075c0018 100644
--- a/node_modules/core-js/modules/es6.array.fill.js
+++ b/node_modules/core-js/modules/es6.array.fill.js
@@ -1,6 +1,6 @@
// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.P, 'Array', {fill: require('./$.array-fill')});
+$export($export.P, 'Array', {fill: require('./_array-fill')});
-require('./$.add-to-unscopables')('fill'); \ No newline at end of file
+require('./_add-to-unscopables')('fill'); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.array.find-index.js b/node_modules/core-js/modules/es6.array.find-index.js
index 7224a6062..530907412 100644
--- a/node_modules/core-js/modules/es6.array.find-index.js
+++ b/node_modules/core-js/modules/es6.array.find-index.js
@@ -1,7 +1,7 @@
'use strict';
// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
-var $export = require('./$.export')
- , $find = require('./$.array-methods')(6)
+var $export = require('./_export')
+ , $find = require('./_array-methods')(6)
, KEY = 'findIndex'
, forced = true;
// Shouldn't skip holes
@@ -11,4 +11,4 @@ $export($export.P + $export.F * forced, 'Array', {
return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});
-require('./$.add-to-unscopables')(KEY); \ No newline at end of file
+require('./_add-to-unscopables')(KEY); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.array.find.js b/node_modules/core-js/modules/es6.array.find.js
index 199e987e7..90a9acfbe 100644
--- a/node_modules/core-js/modules/es6.array.find.js
+++ b/node_modules/core-js/modules/es6.array.find.js
@@ -1,7 +1,7 @@
'use strict';
// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
-var $export = require('./$.export')
- , $find = require('./$.array-methods')(5)
+var $export = require('./_export')
+ , $find = require('./_array-methods')(5)
, KEY = 'find'
, forced = true;
// Shouldn't skip holes
@@ -11,4 +11,4 @@ $export($export.P + $export.F * forced, 'Array', {
return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});
-require('./$.add-to-unscopables')(KEY); \ No newline at end of file
+require('./_add-to-unscopables')(KEY); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.array.from.js b/node_modules/core-js/modules/es6.array.from.js
index 4637d8d24..69e5d4a62 100644
--- a/node_modules/core-js/modules/es6.array.from.js
+++ b/node_modules/core-js/modules/es6.array.from.js
@@ -1,33 +1,34 @@
'use strict';
-var ctx = require('./$.ctx')
- , $export = require('./$.export')
- , toObject = require('./$.to-object')
- , call = require('./$.iter-call')
- , isArrayIter = require('./$.is-array-iter')
- , toLength = require('./$.to-length')
- , getIterFn = require('./core.get-iterator-method');
-$export($export.S + $export.F * !require('./$.iter-detect')(function(iter){ Array.from(iter); }), 'Array', {
+var ctx = require('./_ctx')
+ , $export = require('./_export')
+ , toObject = require('./_to-object')
+ , call = require('./_iter-call')
+ , isArrayIter = require('./_is-array-iter')
+ , toLength = require('./_to-length')
+ , createProperty = require('./_create-property')
+ , getIterFn = require('./core.get-iterator-method');
+
+$export($export.S + $export.F * !require('./_iter-detect')(function(iter){ Array.from(iter); }), 'Array', {
// 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
var O = toObject(arrayLike)
, C = typeof this == 'function' ? this : Array
- , $$ = arguments
- , $$len = $$.length
- , mapfn = $$len > 1 ? $$[1] : undefined
+ , aLen = arguments.length
+ , mapfn = aLen > 1 ? arguments[1] : undefined
, mapping = mapfn !== undefined
, index = 0
, iterFn = getIterFn(O)
, length, result, step, iterator;
- if(mapping)mapfn = ctx(mapfn, $$len > 2 ? $$[2] : undefined, 2);
+ if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
// if object isn't iterable or it's array with default iterator - use simple case
if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){
for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){
- result[index] = mapping ? call(iterator, mapfn, [step.value, index], true) : step.value;
+ createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
}
} else {
length = toLength(O.length);
for(result = new C(length); length > index; index++){
- result[index] = mapping ? mapfn(O[index], index) : O[index];
+ createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
}
}
result.length = index;
diff --git a/node_modules/core-js/modules/es6.array.iterator.js b/node_modules/core-js/modules/es6.array.iterator.js
index 52a546dd1..100b344d7 100644
--- a/node_modules/core-js/modules/es6.array.iterator.js
+++ b/node_modules/core-js/modules/es6.array.iterator.js
@@ -1,14 +1,14 @@
'use strict';
-var addToUnscopables = require('./$.add-to-unscopables')
- , step = require('./$.iter-step')
- , Iterators = require('./$.iterators')
- , toIObject = require('./$.to-iobject');
+var addToUnscopables = require('./_add-to-unscopables')
+ , step = require('./_iter-step')
+ , Iterators = require('./_iterators')
+ , toIObject = require('./_to-iobject');
// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
-module.exports = require('./$.iter-define')(Array, 'Array', function(iterated, kind){
+module.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){
this._t = toIObject(iterated); // target
this._i = 0; // next index
this._k = kind; // kind
diff --git a/node_modules/core-js/modules/es6.array.of.js b/node_modules/core-js/modules/es6.array.of.js
index f623f1573..dd4e1f816 100644
--- a/node_modules/core-js/modules/es6.array.of.js
+++ b/node_modules/core-js/modules/es6.array.of.js
@@ -1,19 +1,19 @@
'use strict';
-var $export = require('./$.export');
+var $export = require('./_export')
+ , createProperty = require('./_create-property');
// WebKit Array.of isn't generic
-$export($export.S + $export.F * require('./$.fails')(function(){
+$export($export.S + $export.F * require('./_fails')(function(){
function F(){}
return !(Array.of.call(F) instanceof F);
}), 'Array', {
// 22.1.2.3 Array.of( ...items)
of: function of(/* ...args */){
var index = 0
- , $$ = arguments
- , $$len = $$.length
- , result = new (typeof this == 'function' ? this : Array)($$len);
- while($$len > index)result[index] = $$[index++];
- result.length = $$len;
+ , aLen = arguments.length
+ , result = new (typeof this == 'function' ? this : Array)(aLen);
+ while(aLen > index)createProperty(result, index, arguments[index++]);
+ result.length = aLen;
return result;
}
}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.array.species.js b/node_modules/core-js/modules/es6.array.species.js
index 543bdfe93..d63c738f7 100644
--- a/node_modules/core-js/modules/es6.array.species.js
+++ b/node_modules/core-js/modules/es6.array.species.js
@@ -1 +1 @@
-require('./$.set-species')('Array'); \ No newline at end of file
+require('./_set-species')('Array'); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.date.to-string.js b/node_modules/core-js/modules/es6.date.to-string.js
index 59bf83654..686e949e0 100644
--- a/node_modules/core-js/modules/es6.date.to-string.js
+++ b/node_modules/core-js/modules/es6.date.to-string.js
@@ -1,10 +1,11 @@
var DateProto = Date.prototype
, INVALID_DATE = 'Invalid Date'
, TO_STRING = 'toString'
- , $toString = DateProto[TO_STRING];
+ , $toString = DateProto[TO_STRING]
+ , getTime = DateProto.getTime;
if(new Date(NaN) + '' != INVALID_DATE){
- require('./$.redefine')(DateProto, TO_STRING, function toString(){
- var value = +this;
+ require('./_redefine')(DateProto, TO_STRING, function toString(){
+ var value = getTime.call(this);
return value === value ? $toString.call(this) : INVALID_DATE;
});
} \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.function.has-instance.js b/node_modules/core-js/modules/es6.function.has-instance.js
index 94d840f86..ae294b1f1 100644
--- a/node_modules/core-js/modules/es6.function.has-instance.js
+++ b/node_modules/core-js/modules/es6.function.has-instance.js
@@ -1,13 +1,13 @@
'use strict';
-var $ = require('./$')
- , isObject = require('./$.is-object')
- , HAS_INSTANCE = require('./$.wks')('hasInstance')
- , FunctionProto = Function.prototype;
+var isObject = require('./_is-object')
+ , getPrototypeOf = require('./_object-gpo')
+ , HAS_INSTANCE = require('./_wks')('hasInstance')
+ , FunctionProto = Function.prototype;
// 19.2.3.6 Function.prototype[@@hasInstance](V)
-if(!(HAS_INSTANCE in FunctionProto))$.setDesc(FunctionProto, HAS_INSTANCE, {value: function(O){
+if(!(HAS_INSTANCE in FunctionProto))require('./_object-dp').f(FunctionProto, HAS_INSTANCE, {value: function(O){
if(typeof this != 'function' || !isObject(O))return false;
if(!isObject(this.prototype))return O instanceof this;
// for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
- while(O = $.getProto(O))if(this.prototype === O)return true;
+ while(O = getPrototypeOf(O))if(this.prototype === O)return true;
return false;
}}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.function.name.js b/node_modules/core-js/modules/es6.function.name.js
index 0f10fc11f..f824d86d2 100644
--- a/node_modules/core-js/modules/es6.function.name.js
+++ b/node_modules/core-js/modules/es6.function.name.js
@@ -1,16 +1,25 @@
-var setDesc = require('./$').setDesc
- , createDesc = require('./$.property-desc')
- , has = require('./$.has')
+var dP = require('./_object-dp').f
+ , createDesc = require('./_property-desc')
+ , has = require('./_has')
, FProto = Function.prototype
, nameRE = /^\s*function ([^ (]*)/
, NAME = 'name';
+
+var isExtensible = Object.isExtensible || function(){
+ return true;
+};
+
// 19.2.4.2 name
-NAME in FProto || require('./$.descriptors') && setDesc(FProto, NAME, {
+NAME in FProto || require('./_descriptors') && dP(FProto, NAME, {
configurable: true,
get: function(){
- var match = ('' + this).match(nameRE)
- , name = match ? match[1] : '';
- has(this, NAME) || setDesc(this, NAME, createDesc(5, name));
- return name;
+ try {
+ var that = this
+ , name = ('' + that).match(nameRE)[1];
+ has(that, NAME) || !isExtensible(that) || dP(that, NAME, createDesc(5, name));
+ return name;
+ } catch(e){
+ return '';
+ }
}
}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.map.js b/node_modules/core-js/modules/es6.map.js
index 54fd5c1ab..a166430fc 100644
--- a/node_modules/core-js/modules/es6.map.js
+++ b/node_modules/core-js/modules/es6.map.js
@@ -1,8 +1,8 @@
'use strict';
-var strong = require('./$.collection-strong');
+var strong = require('./_collection-strong');
// 23.1 Map Objects
-require('./$.collection')('Map', function(get){
+module.exports = require('./_collection')('Map', function(get){
return function Map(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.1.3.6 Map.prototype.get(key)
diff --git a/node_modules/core-js/modules/es6.math.acosh.js b/node_modules/core-js/modules/es6.math.acosh.js
index f69282a8c..459f11990 100644
--- a/node_modules/core-js/modules/es6.math.acosh.js
+++ b/node_modules/core-js/modules/es6.math.acosh.js
@@ -1,11 +1,15 @@
// 20.2.2.3 Math.acosh(x)
-var $export = require('./$.export')
- , log1p = require('./$.math-log1p')
+var $export = require('./_export')
+ , log1p = require('./_math-log1p')
, sqrt = Math.sqrt
, $acosh = Math.acosh;
-// V8 bug https://code.google.com/p/v8/issues/detail?id=3509
-$export($export.S + $export.F * !($acosh && Math.floor($acosh(Number.MAX_VALUE)) == 710), 'Math', {
+$export($export.S + $export.F * !($acosh
+ // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
+ && Math.floor($acosh(Number.MAX_VALUE)) == 710
+ // Tor Browser bug: Math.acosh(Infinity) -> NaN
+ && $acosh(Infinity) == Infinity
+), 'Math', {
acosh: function acosh(x){
return (x = +x) < 1 ? NaN : x > 94906265.62425156
? Math.log(x) + Math.LN2
diff --git a/node_modules/core-js/modules/es6.math.asinh.js b/node_modules/core-js/modules/es6.math.asinh.js
index bd34adf01..e6a74abb5 100644
--- a/node_modules/core-js/modules/es6.math.asinh.js
+++ b/node_modules/core-js/modules/es6.math.asinh.js
@@ -1,8 +1,10 @@
// 20.2.2.5 Math.asinh(x)
-var $export = require('./$.export');
+var $export = require('./_export')
+ , $asinh = Math.asinh;
function asinh(x){
return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
}
-$export($export.S, 'Math', {asinh: asinh}); \ No newline at end of file
+// Tor Browser bug: Math.asinh(0) -> -0
+$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', {asinh: asinh}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.math.atanh.js b/node_modules/core-js/modules/es6.math.atanh.js
index 656ea409d..94575d9f0 100644
--- a/node_modules/core-js/modules/es6.math.atanh.js
+++ b/node_modules/core-js/modules/es6.math.atanh.js
@@ -1,7 +1,9 @@
// 20.2.2.7 Math.atanh(x)
-var $export = require('./$.export');
+var $export = require('./_export')
+ , $atanh = Math.atanh;
-$export($export.S, 'Math', {
+// Tor Browser bug: Math.atanh(-0) -> 0
+$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {
atanh: function atanh(x){
return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
}
diff --git a/node_modules/core-js/modules/es6.math.cbrt.js b/node_modules/core-js/modules/es6.math.cbrt.js
index 79a1fbc87..7ca7daea8 100644
--- a/node_modules/core-js/modules/es6.math.cbrt.js
+++ b/node_modules/core-js/modules/es6.math.cbrt.js
@@ -1,6 +1,6 @@
// 20.2.2.9 Math.cbrt(x)
-var $export = require('./$.export')
- , sign = require('./$.math-sign');
+var $export = require('./_export')
+ , sign = require('./_math-sign');
$export($export.S, 'Math', {
cbrt: function cbrt(x){
diff --git a/node_modules/core-js/modules/es6.math.clz32.js b/node_modules/core-js/modules/es6.math.clz32.js
index edd11588c..1ec534bd0 100644
--- a/node_modules/core-js/modules/es6.math.clz32.js
+++ b/node_modules/core-js/modules/es6.math.clz32.js
@@ -1,5 +1,5 @@
// 20.2.2.11 Math.clz32(x)
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.S, 'Math', {
clz32: function clz32(x){
diff --git a/node_modules/core-js/modules/es6.math.cosh.js b/node_modules/core-js/modules/es6.math.cosh.js
index d1df7490c..4f2b21552 100644
--- a/node_modules/core-js/modules/es6.math.cosh.js
+++ b/node_modules/core-js/modules/es6.math.cosh.js
@@ -1,5 +1,5 @@
// 20.2.2.12 Math.cosh(x)
-var $export = require('./$.export')
+var $export = require('./_export')
, exp = Math.exp;
$export($export.S, 'Math', {
diff --git a/node_modules/core-js/modules/es6.math.expm1.js b/node_modules/core-js/modules/es6.math.expm1.js
index e27742fe3..9762b7cd0 100644
--- a/node_modules/core-js/modules/es6.math.expm1.js
+++ b/node_modules/core-js/modules/es6.math.expm1.js
@@ -1,4 +1,5 @@
// 20.2.2.14 Math.expm1(x)
-var $export = require('./$.export');
+var $export = require('./_export')
+ , $expm1 = require('./_math-expm1');
-$export($export.S, 'Math', {expm1: require('./$.math-expm1')}); \ No newline at end of file
+$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', {expm1: $expm1}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.math.fround.js b/node_modules/core-js/modules/es6.math.fround.js
index 43cd70c7b..01a88862e 100644
--- a/node_modules/core-js/modules/es6.math.fround.js
+++ b/node_modules/core-js/modules/es6.math.fround.js
@@ -1,6 +1,6 @@
// 20.2.2.16 Math.fround(x)
-var $export = require('./$.export')
- , sign = require('./$.math-sign')
+var $export = require('./_export')
+ , sign = require('./_math-sign')
, pow = Math.pow
, EPSILON = pow(2, -52)
, EPSILON32 = pow(2, -23)
diff --git a/node_modules/core-js/modules/es6.math.hypot.js b/node_modules/core-js/modules/es6.math.hypot.js
index a8edf7cde..508521b69 100644
--- a/node_modules/core-js/modules/es6.math.hypot.js
+++ b/node_modules/core-js/modules/es6.math.hypot.js
@@ -1,17 +1,16 @@
// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
-var $export = require('./$.export')
+var $export = require('./_export')
, abs = Math.abs;
$export($export.S, 'Math', {
hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars
- var sum = 0
- , i = 0
- , $$ = arguments
- , $$len = $$.length
- , larg = 0
+ var sum = 0
+ , i = 0
+ , aLen = arguments.length
+ , larg = 0
, arg, div;
- while(i < $$len){
- arg = abs($$[i++]);
+ while(i < aLen){
+ arg = abs(arguments[i++]);
if(larg < arg){
div = larg / arg;
sum = sum * div * div + 1;
diff --git a/node_modules/core-js/modules/es6.math.imul.js b/node_modules/core-js/modules/es6.math.imul.js
index 926053def..7f4111d27 100644
--- a/node_modules/core-js/modules/es6.math.imul.js
+++ b/node_modules/core-js/modules/es6.math.imul.js
@@ -1,9 +1,9 @@
// 20.2.2.18 Math.imul(x, y)
-var $export = require('./$.export')
+var $export = require('./_export')
, $imul = Math.imul;
// some WebKit versions fails with big numbers, some has wrong arity
-$export($export.S + $export.F * require('./$.fails')(function(){
+$export($export.S + $export.F * require('./_fails')(function(){
return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
}), 'Math', {
imul: function imul(x, y){
diff --git a/node_modules/core-js/modules/es6.math.log10.js b/node_modules/core-js/modules/es6.math.log10.js
index ef5ae6a96..791dfc353 100644
--- a/node_modules/core-js/modules/es6.math.log10.js
+++ b/node_modules/core-js/modules/es6.math.log10.js
@@ -1,5 +1,5 @@
// 20.2.2.21 Math.log10(x)
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.S, 'Math', {
log10: function log10(x){
diff --git a/node_modules/core-js/modules/es6.math.log1p.js b/node_modules/core-js/modules/es6.math.log1p.js
index 31c395ec8..a1de0258d 100644
--- a/node_modules/core-js/modules/es6.math.log1p.js
+++ b/node_modules/core-js/modules/es6.math.log1p.js
@@ -1,4 +1,4 @@
// 20.2.2.20 Math.log1p(x)
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.S, 'Math', {log1p: require('./$.math-log1p')}); \ No newline at end of file
+$export($export.S, 'Math', {log1p: require('./_math-log1p')}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.math.log2.js b/node_modules/core-js/modules/es6.math.log2.js
index 24c0124b0..c4ba7819c 100644
--- a/node_modules/core-js/modules/es6.math.log2.js
+++ b/node_modules/core-js/modules/es6.math.log2.js
@@ -1,5 +1,5 @@
// 20.2.2.22 Math.log2(x)
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.S, 'Math', {
log2: function log2(x){
diff --git a/node_modules/core-js/modules/es6.math.sign.js b/node_modules/core-js/modules/es6.math.sign.js
index fd8d8bc36..5dbee6f66 100644
--- a/node_modules/core-js/modules/es6.math.sign.js
+++ b/node_modules/core-js/modules/es6.math.sign.js
@@ -1,4 +1,4 @@
// 20.2.2.28 Math.sign(x)
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.S, 'Math', {sign: require('./$.math-sign')}); \ No newline at end of file
+$export($export.S, 'Math', {sign: require('./_math-sign')}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.math.sinh.js b/node_modules/core-js/modules/es6.math.sinh.js
index a01c4d374..5464ae3e6 100644
--- a/node_modules/core-js/modules/es6.math.sinh.js
+++ b/node_modules/core-js/modules/es6.math.sinh.js
@@ -1,10 +1,10 @@
// 20.2.2.30 Math.sinh(x)
-var $export = require('./$.export')
- , expm1 = require('./$.math-expm1')
+var $export = require('./_export')
+ , expm1 = require('./_math-expm1')
, exp = Math.exp;
// V8 near Chromium 38 has a problem with very small numbers
-$export($export.S + $export.F * require('./$.fails')(function(){
+$export($export.S + $export.F * require('./_fails')(function(){
return !Math.sinh(-2e-17) != -2e-17;
}), 'Math', {
sinh: function sinh(x){
diff --git a/node_modules/core-js/modules/es6.math.tanh.js b/node_modules/core-js/modules/es6.math.tanh.js
index 0d081a5da..d2f10778c 100644
--- a/node_modules/core-js/modules/es6.math.tanh.js
+++ b/node_modules/core-js/modules/es6.math.tanh.js
@@ -1,6 +1,6 @@
// 20.2.2.33 Math.tanh(x)
-var $export = require('./$.export')
- , expm1 = require('./$.math-expm1')
+var $export = require('./_export')
+ , expm1 = require('./_math-expm1')
, exp = Math.exp;
$export($export.S, 'Math', {
diff --git a/node_modules/core-js/modules/es6.math.trunc.js b/node_modules/core-js/modules/es6.math.trunc.js
index f3f085596..2e42563b6 100644
--- a/node_modules/core-js/modules/es6.math.trunc.js
+++ b/node_modules/core-js/modules/es6.math.trunc.js
@@ -1,5 +1,5 @@
// 20.2.2.34 Math.trunc(x)
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.S, 'Math', {
trunc: function trunc(it){
diff --git a/node_modules/core-js/modules/es6.number.constructor.js b/node_modules/core-js/modules/es6.number.constructor.js
index 065af1a98..d562365bc 100644
--- a/node_modules/core-js/modules/es6.number.constructor.js
+++ b/node_modules/core-js/modules/es6.number.constructor.js
@@ -1,18 +1,21 @@
'use strict';
-var $ = require('./$')
- , global = require('./$.global')
- , has = require('./$.has')
- , cof = require('./$.cof')
- , toPrimitive = require('./$.to-primitive')
- , fails = require('./$.fails')
- , $trim = require('./$.string-trim').trim
- , NUMBER = 'Number'
- , $Number = global[NUMBER]
- , Base = $Number
- , proto = $Number.prototype
+var global = require('./_global')
+ , has = require('./_has')
+ , cof = require('./_cof')
+ , inheritIfRequired = require('./_inherit-if-required')
+ , toPrimitive = require('./_to-primitive')
+ , fails = require('./_fails')
+ , gOPN = require('./_object-gopn').f
+ , gOPD = require('./_object-gopd').f
+ , dP = require('./_object-dp').f
+ , $trim = require('./_string-trim').trim
+ , NUMBER = 'Number'
+ , $Number = global[NUMBER]
+ , Base = $Number
+ , proto = $Number.prototype
// Opera ~12 has broken Object#toString
- , BROKEN_COF = cof($.create(proto)) == NUMBER
- , TRIM = 'trim' in String.prototype;
+ , BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER
+ , TRIM = 'trim' in String.prototype;
// 7.1.3 ToNumber(argument)
var toNumber = function(argument){
@@ -47,20 +50,20 @@ if(!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')){
return that instanceof $Number
// check on 1..constructor(foo) case
&& (BROKEN_COF ? fails(function(){ proto.valueOf.call(that); }) : cof(that) != NUMBER)
- ? new Base(toNumber(it)) : toNumber(it);
+ ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);
};
- $.each.call(require('./$.descriptors') ? $.getNames(Base) : (
+ for(var keys = require('./_descriptors') ? gOPN(Base) : (
// ES3:
'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
// ES6 (in case, if modules with ES6 Number statics required before):
'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'
- ).split(','), function(key){
- if(has(Base, key) && !has($Number, key)){
- $.setDesc($Number, key, $.getDesc(Base, key));
+ ).split(','), j = 0, key; keys.length > j; j++){
+ if(has(Base, key = keys[j]) && !has($Number, key)){
+ dP($Number, key, gOPD(Base, key));
}
- });
+ }
$Number.prototype = proto;
proto.constructor = $Number;
- require('./$.redefine')(global, NUMBER, $Number);
+ require('./_redefine')(global, NUMBER, $Number);
} \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.number.epsilon.js b/node_modules/core-js/modules/es6.number.epsilon.js
index 45c865cfa..d25898ccc 100644
--- a/node_modules/core-js/modules/es6.number.epsilon.js
+++ b/node_modules/core-js/modules/es6.number.epsilon.js
@@ -1,4 +1,4 @@
// 20.1.2.1 Number.EPSILON
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.S, 'Number', {EPSILON: Math.pow(2, -52)}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.number.is-finite.js b/node_modules/core-js/modules/es6.number.is-finite.js
index 362a6c80d..c8c42753b 100644
--- a/node_modules/core-js/modules/es6.number.is-finite.js
+++ b/node_modules/core-js/modules/es6.number.is-finite.js
@@ -1,6 +1,6 @@
// 20.1.2.2 Number.isFinite(number)
-var $export = require('./$.export')
- , _isFinite = require('./$.global').isFinite;
+var $export = require('./_export')
+ , _isFinite = require('./_global').isFinite;
$export($export.S, 'Number', {
isFinite: function isFinite(it){
diff --git a/node_modules/core-js/modules/es6.number.is-integer.js b/node_modules/core-js/modules/es6.number.is-integer.js
index 189db9a27..dc0f8f009 100644
--- a/node_modules/core-js/modules/es6.number.is-integer.js
+++ b/node_modules/core-js/modules/es6.number.is-integer.js
@@ -1,4 +1,4 @@
// 20.1.2.3 Number.isInteger(number)
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.S, 'Number', {isInteger: require('./$.is-integer')}); \ No newline at end of file
+$export($export.S, 'Number', {isInteger: require('./_is-integer')}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.number.is-nan.js b/node_modules/core-js/modules/es6.number.is-nan.js
index 151bb4b2b..5fedf8252 100644
--- a/node_modules/core-js/modules/es6.number.is-nan.js
+++ b/node_modules/core-js/modules/es6.number.is-nan.js
@@ -1,5 +1,5 @@
// 20.1.2.4 Number.isNaN(number)
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.S, 'Number', {
isNaN: function isNaN(number){
diff --git a/node_modules/core-js/modules/es6.number.is-safe-integer.js b/node_modules/core-js/modules/es6.number.is-safe-integer.js
index e23b4cbc5..92193e2ec 100644
--- a/node_modules/core-js/modules/es6.number.is-safe-integer.js
+++ b/node_modules/core-js/modules/es6.number.is-safe-integer.js
@@ -1,6 +1,6 @@
// 20.1.2.5 Number.isSafeInteger(number)
-var $export = require('./$.export')
- , isInteger = require('./$.is-integer')
+var $export = require('./_export')
+ , isInteger = require('./_is-integer')
, abs = Math.abs;
$export($export.S, 'Number', {
diff --git a/node_modules/core-js/modules/es6.number.max-safe-integer.js b/node_modules/core-js/modules/es6.number.max-safe-integer.js
index a1aaf7412..b9d7f2a77 100644
--- a/node_modules/core-js/modules/es6.number.max-safe-integer.js
+++ b/node_modules/core-js/modules/es6.number.max-safe-integer.js
@@ -1,4 +1,4 @@
// 20.1.2.6 Number.MAX_SAFE_INTEGER
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.number.min-safe-integer.js b/node_modules/core-js/modules/es6.number.min-safe-integer.js
index ab97cb5dc..9a2beeb3c 100644
--- a/node_modules/core-js/modules/es6.number.min-safe-integer.js
+++ b/node_modules/core-js/modules/es6.number.min-safe-integer.js
@@ -1,4 +1,4 @@
// 20.1.2.10 Number.MIN_SAFE_INTEGER
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.number.parse-float.js b/node_modules/core-js/modules/es6.number.parse-float.js
index 1d0c96741..7ee14da03 100644
--- a/node_modules/core-js/modules/es6.number.parse-float.js
+++ b/node_modules/core-js/modules/es6.number.parse-float.js
@@ -1,4 +1,4 @@
+var $export = require('./_export')
+ , $parseFloat = require('./_parse-float');
// 20.1.2.12 Number.parseFloat(string)
-var $export = require('./$.export');
-
-$export($export.S, 'Number', {parseFloat: parseFloat}); \ No newline at end of file
+$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', {parseFloat: $parseFloat}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.number.parse-int.js b/node_modules/core-js/modules/es6.number.parse-int.js
index 813b5b795..59bf14459 100644
--- a/node_modules/core-js/modules/es6.number.parse-int.js
+++ b/node_modules/core-js/modules/es6.number.parse-int.js
@@ -1,4 +1,4 @@
+var $export = require('./_export')
+ , $parseInt = require('./_parse-int');
// 20.1.2.13 Number.parseInt(string, radix)
-var $export = require('./$.export');
-
-$export($export.S, 'Number', {parseInt: parseInt}); \ No newline at end of file
+$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', {parseInt: $parseInt}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.object.assign.js b/node_modules/core-js/modules/es6.object.assign.js
index b62e7a420..13eda2cb8 100644
--- a/node_modules/core-js/modules/es6.object.assign.js
+++ b/node_modules/core-js/modules/es6.object.assign.js
@@ -1,4 +1,4 @@
// 19.1.3.1 Object.assign(target, source)
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.S + $export.F, 'Object', {assign: require('./$.object-assign')}); \ No newline at end of file
+$export($export.S + $export.F, 'Object', {assign: require('./_object-assign')}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.object.freeze.js b/node_modules/core-js/modules/es6.object.freeze.js
index fa87c9512..34b510842 100644
--- a/node_modules/core-js/modules/es6.object.freeze.js
+++ b/node_modules/core-js/modules/es6.object.freeze.js
@@ -1,8 +1,9 @@
// 19.1.2.5 Object.freeze(O)
-var isObject = require('./$.is-object');
+var isObject = require('./_is-object')
+ , meta = require('./_meta').onFreeze;
-require('./$.object-sap')('freeze', function($freeze){
+require('./_object-sap')('freeze', function($freeze){
return function freeze(it){
- return $freeze && isObject(it) ? $freeze(it) : it;
+ return $freeze && isObject(it) ? $freeze(meta(it)) : it;
};
}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.object.get-own-property-descriptor.js b/node_modules/core-js/modules/es6.object.get-own-property-descriptor.js
index 9b253acdd..60c69913a 100644
--- a/node_modules/core-js/modules/es6.object.get-own-property-descriptor.js
+++ b/node_modules/core-js/modules/es6.object.get-own-property-descriptor.js
@@ -1,7 +1,8 @@
// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
-var toIObject = require('./$.to-iobject');
+var toIObject = require('./_to-iobject')
+ , $getOwnPropertyDescriptor = require('./_object-gopd').f;
-require('./$.object-sap')('getOwnPropertyDescriptor', function($getOwnPropertyDescriptor){
+require('./_object-sap')('getOwnPropertyDescriptor', function(){
return function getOwnPropertyDescriptor(it, key){
return $getOwnPropertyDescriptor(toIObject(it), key);
};
diff --git a/node_modules/core-js/modules/es6.object.get-own-property-names.js b/node_modules/core-js/modules/es6.object.get-own-property-names.js
index e87bcf607..91dd110d2 100644
--- a/node_modules/core-js/modules/es6.object.get-own-property-names.js
+++ b/node_modules/core-js/modules/es6.object.get-own-property-names.js
@@ -1,4 +1,4 @@
// 19.1.2.7 Object.getOwnPropertyNames(O)
-require('./$.object-sap')('getOwnPropertyNames', function(){
- return require('./$.get-names').get;
+require('./_object-sap')('getOwnPropertyNames', function(){
+ return require('./_object-gopn-ext').f;
}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.object.get-prototype-of.js b/node_modules/core-js/modules/es6.object.get-prototype-of.js
index 9ec0405b6..b124e28fa 100644
--- a/node_modules/core-js/modules/es6.object.get-prototype-of.js
+++ b/node_modules/core-js/modules/es6.object.get-prototype-of.js
@@ -1,7 +1,8 @@
// 19.1.2.9 Object.getPrototypeOf(O)
-var toObject = require('./$.to-object');
+var toObject = require('./_to-object')
+ , $getPrototypeOf = require('./_object-gpo');
-require('./$.object-sap')('getPrototypeOf', function($getPrototypeOf){
+require('./_object-sap')('getPrototypeOf', function(){
return function getPrototypeOf(it){
return $getPrototypeOf(toObject(it));
};
diff --git a/node_modules/core-js/modules/es6.object.is-extensible.js b/node_modules/core-js/modules/es6.object.is-extensible.js
index ada2b95a9..94bf8a815 100644
--- a/node_modules/core-js/modules/es6.object.is-extensible.js
+++ b/node_modules/core-js/modules/es6.object.is-extensible.js
@@ -1,7 +1,7 @@
// 19.1.2.11 Object.isExtensible(O)
-var isObject = require('./$.is-object');
+var isObject = require('./_is-object');
-require('./$.object-sap')('isExtensible', function($isExtensible){
+require('./_object-sap')('isExtensible', function($isExtensible){
return function isExtensible(it){
return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
};
diff --git a/node_modules/core-js/modules/es6.object.is-frozen.js b/node_modules/core-js/modules/es6.object.is-frozen.js
index b3e44d1b7..4bdfd11b1 100644
--- a/node_modules/core-js/modules/es6.object.is-frozen.js
+++ b/node_modules/core-js/modules/es6.object.is-frozen.js
@@ -1,7 +1,7 @@
// 19.1.2.12 Object.isFrozen(O)
-var isObject = require('./$.is-object');
+var isObject = require('./_is-object');
-require('./$.object-sap')('isFrozen', function($isFrozen){
+require('./_object-sap')('isFrozen', function($isFrozen){
return function isFrozen(it){
return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
};
diff --git a/node_modules/core-js/modules/es6.object.is-sealed.js b/node_modules/core-js/modules/es6.object.is-sealed.js
index 423caf331..d13aa1b06 100644
--- a/node_modules/core-js/modules/es6.object.is-sealed.js
+++ b/node_modules/core-js/modules/es6.object.is-sealed.js
@@ -1,7 +1,7 @@
// 19.1.2.13 Object.isSealed(O)
-var isObject = require('./$.is-object');
+var isObject = require('./_is-object');
-require('./$.object-sap')('isSealed', function($isSealed){
+require('./_object-sap')('isSealed', function($isSealed){
return function isSealed(it){
return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
};
diff --git a/node_modules/core-js/modules/es6.object.is.js b/node_modules/core-js/modules/es6.object.is.js
index 3ae3b6046..ad2994256 100644
--- a/node_modules/core-js/modules/es6.object.is.js
+++ b/node_modules/core-js/modules/es6.object.is.js
@@ -1,3 +1,3 @@
// 19.1.3.10 Object.is(value1, value2)
-var $export = require('./$.export');
-$export($export.S, 'Object', {is: require('./$.same-value')}); \ No newline at end of file
+var $export = require('./_export');
+$export($export.S, 'Object', {is: require('./_same-value')}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.object.keys.js b/node_modules/core-js/modules/es6.object.keys.js
index e3c18c020..bf76c07d7 100644
--- a/node_modules/core-js/modules/es6.object.keys.js
+++ b/node_modules/core-js/modules/es6.object.keys.js
@@ -1,7 +1,8 @@
// 19.1.2.14 Object.keys(O)
-var toObject = require('./$.to-object');
+var toObject = require('./_to-object')
+ , $keys = require('./_object-keys');
-require('./$.object-sap')('keys', function($keys){
+require('./_object-sap')('keys', function(){
return function keys(it){
return $keys(toObject(it));
};
diff --git a/node_modules/core-js/modules/es6.object.prevent-extensions.js b/node_modules/core-js/modules/es6.object.prevent-extensions.js
index 20f879e28..adaff7a79 100644
--- a/node_modules/core-js/modules/es6.object.prevent-extensions.js
+++ b/node_modules/core-js/modules/es6.object.prevent-extensions.js
@@ -1,8 +1,9 @@
// 19.1.2.15 Object.preventExtensions(O)
-var isObject = require('./$.is-object');
+var isObject = require('./_is-object')
+ , meta = require('./_meta').onFreeze;
-require('./$.object-sap')('preventExtensions', function($preventExtensions){
+require('./_object-sap')('preventExtensions', function($preventExtensions){
return function preventExtensions(it){
- return $preventExtensions && isObject(it) ? $preventExtensions(it) : it;
+ return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;
};
}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.object.seal.js b/node_modules/core-js/modules/es6.object.seal.js
index 85a7fa98f..d7e4ea958 100644
--- a/node_modules/core-js/modules/es6.object.seal.js
+++ b/node_modules/core-js/modules/es6.object.seal.js
@@ -1,8 +1,9 @@
// 19.1.2.17 Object.seal(O)
-var isObject = require('./$.is-object');
+var isObject = require('./_is-object')
+ , meta = require('./_meta').onFreeze;
-require('./$.object-sap')('seal', function($seal){
+require('./_object-sap')('seal', function($seal){
return function seal(it){
- return $seal && isObject(it) ? $seal(it) : it;
+ return $seal && isObject(it) ? $seal(meta(it)) : it;
};
}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.object.set-prototype-of.js b/node_modules/core-js/modules/es6.object.set-prototype-of.js
index 79a147c3f..5bbe4c068 100644
--- a/node_modules/core-js/modules/es6.object.set-prototype-of.js
+++ b/node_modules/core-js/modules/es6.object.set-prototype-of.js
@@ -1,3 +1,3 @@
// 19.1.3.19 Object.setPrototypeOf(O, proto)
-var $export = require('./$.export');
-$export($export.S, 'Object', {setPrototypeOf: require('./$.set-proto').set}); \ No newline at end of file
+var $export = require('./_export');
+$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.object.to-string.js b/node_modules/core-js/modules/es6.object.to-string.js
index 409d51935..e644a5d1f 100644
--- a/node_modules/core-js/modules/es6.object.to-string.js
+++ b/node_modules/core-js/modules/es6.object.to-string.js
@@ -1,10 +1,10 @@
'use strict';
// 19.1.3.6 Object.prototype.toString()
-var classof = require('./$.classof')
+var classof = require('./_classof')
, test = {};
-test[require('./$.wks')('toStringTag')] = 'z';
+test[require('./_wks')('toStringTag')] = 'z';
if(test + '' != '[object z]'){
- require('./$.redefine')(Object.prototype, 'toString', function toString(){
+ require('./_redefine')(Object.prototype, 'toString', function toString(){
return '[object ' + classof(this) + ']';
}, true);
} \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.promise.js b/node_modules/core-js/modules/es6.promise.js
index fbf20177a..262a93af1 100644
--- a/node_modules/core-js/modules/es6.promise.js
+++ b/node_modules/core-js/modules/es6.promise.js
@@ -1,86 +1,58 @@
'use strict';
-var $ = require('./$')
- , LIBRARY = require('./$.library')
- , global = require('./$.global')
- , ctx = require('./$.ctx')
- , classof = require('./$.classof')
- , $export = require('./$.export')
- , isObject = require('./$.is-object')
- , anObject = require('./$.an-object')
- , aFunction = require('./$.a-function')
- , strictNew = require('./$.strict-new')
- , forOf = require('./$.for-of')
- , setProto = require('./$.set-proto').set
- , same = require('./$.same-value')
- , SPECIES = require('./$.wks')('species')
- , speciesConstructor = require('./$.species-constructor')
- , asap = require('./$.microtask')
- , PROMISE = 'Promise'
- , process = global.process
- , isNode = classof(process) == 'process'
- , P = global[PROMISE]
- , empty = function(){ /* empty */ }
- , Wrapper;
+var LIBRARY = require('./_library')
+ , global = require('./_global')
+ , ctx = require('./_ctx')
+ , classof = require('./_classof')
+ , $export = require('./_export')
+ , isObject = require('./_is-object')
+ , aFunction = require('./_a-function')
+ , anInstance = require('./_an-instance')
+ , forOf = require('./_for-of')
+ , speciesConstructor = require('./_species-constructor')
+ , task = require('./_task').set
+ , microtask = require('./_microtask')()
+ , PROMISE = 'Promise'
+ , TypeError = global.TypeError
+ , process = global.process
+ , $Promise = global[PROMISE]
+ , process = global.process
+ , isNode = classof(process) == 'process'
+ , empty = function(){ /* empty */ }
+ , Internal, GenericPromiseCapability, Wrapper;
-var testResolve = function(sub){
- var test = new P(empty), promise;
- if(sub)test.constructor = function(exec){
- exec(empty, empty);
- };
- (promise = P.resolve(test))['catch'](empty);
- return promise === test;
-};
-
-var USE_NATIVE = function(){
- var works = false;
- function P2(x){
- var self = new P(x);
- setProto(self, P2.prototype);
- return self;
- }
+var USE_NATIVE = !!function(){
try {
- works = P && P.resolve && testResolve();
- setProto(P2, P);
- P2.prototype = $.create(P.prototype, {constructor: {value: P2}});
- // actual Firefox has broken subclass support, test that
- if(!(P2.resolve(5).then(function(){}) instanceof P2)){
- works = false;
- }
- // actual V8 bug, https://code.google.com/p/v8/issues/detail?id=4162
- if(works && require('./$.descriptors')){
- var thenableThenGotten = false;
- P.resolve($.setDesc({}, 'then', {
- get: function(){ thenableThenGotten = true; }
- }));
- works = thenableThenGotten;
- }
- } catch(e){ works = false; }
- return works;
+ // correct subclassing with @@species support
+ var promise = $Promise.resolve(1)
+ , FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function(exec){ exec(empty, empty); };
+ // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
+ return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;
+ } catch(e){ /* empty */ }
}();
// helpers
var sameConstructor = function(a, b){
- // library wrapper special case
- if(LIBRARY && a === P && b === Wrapper)return true;
- return same(a, b);
-};
-var getConstructor = function(C){
- var S = anObject(C)[SPECIES];
- return S != undefined ? S : C;
+ // with library wrapper special case
+ return a === b || a === $Promise && b === Wrapper;
};
var isThenable = function(it){
var then;
return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
};
-var PromiseCapability = function(C){
+var newPromiseCapability = function(C){
+ return sameConstructor($Promise, C)
+ ? new PromiseCapability(C)
+ : new GenericPromiseCapability(C);
+};
+var PromiseCapability = GenericPromiseCapability = function(C){
var resolve, reject;
this.promise = new C(function($$resolve, $$reject){
if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor');
resolve = $$resolve;
reject = $$reject;
});
- this.resolve = aFunction(resolve),
- this.reject = aFunction(reject)
+ this.resolve = aFunction(resolve);
+ this.reject = aFunction(reject);
};
var perform = function(exec){
try {
@@ -89,23 +61,32 @@ var perform = function(exec){
return {error: e};
}
};
-var notify = function(record, isReject){
- if(record.n)return;
- record.n = true;
- var chain = record.c;
- asap(function(){
- var value = record.v
- , ok = record.s == 1
+var notify = function(promise, isReject){
+ if(promise._n)return;
+ promise._n = true;
+ var chain = promise._c;
+ microtask(function(){
+ var value = promise._v
+ , ok = promise._s == 1
, i = 0;
var run = function(reaction){
var handler = ok ? reaction.ok : reaction.fail
, resolve = reaction.resolve
, reject = reaction.reject
+ , domain = reaction.domain
, result, then;
try {
if(handler){
- if(!ok)record.h = true;
- result = handler === true ? value : handler(value);
+ if(!ok){
+ if(promise._h == 2)onHandleUnhandled(promise);
+ promise._h = 1;
+ }
+ if(handler === true)result = value;
+ else {
+ if(domain)domain.enter();
+ result = handler(value);
+ if(domain)domain.exit();
+ }
if(result === reaction.promise){
reject(TypeError('Promise-chain cycle'));
} else if(then = isThenable(result)){
@@ -117,12 +98,17 @@ var notify = function(record, isReject){
}
};
while(chain.length > i)run(chain[i++]); // variable length - can't use forEach
- chain.length = 0;
- record.n = false;
- if(isReject)setTimeout(function(){
- var promise = record.p
- , handler, console;
- if(isUnhandled(promise)){
+ promise._c = [];
+ promise._n = false;
+ if(isReject && !promise._h)onUnhandled(promise);
+ });
+};
+var onUnhandled = function(promise){
+ task.call(global, function(){
+ var value = promise._v
+ , abrupt, handler, console;
+ if(isUnhandled(promise)){
+ abrupt = perform(function(){
if(isNode){
process.emit('unhandledRejection', value, promise);
} else if(handler = global.onunhandledrejection){
@@ -130,42 +116,54 @@ var notify = function(record, isReject){
} else if((console = global.console) && console.error){
console.error('Unhandled promise rejection', value);
}
- } record.a = undefined;
- }, 1);
+ });
+ // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
+ promise._h = isNode || isUnhandled(promise) ? 2 : 1;
+ } promise._a = undefined;
+ if(abrupt)throw abrupt.error;
});
};
var isUnhandled = function(promise){
- var record = promise._d
- , chain = record.a || record.c
- , i = 0
+ if(promise._h == 1)return false;
+ var chain = promise._a || promise._c
+ , i = 0
, reaction;
- if(record.h)return false;
while(chain.length > i){
reaction = chain[i++];
if(reaction.fail || !isUnhandled(reaction.promise))return false;
} return true;
};
+var onHandleUnhandled = function(promise){
+ task.call(global, function(){
+ var handler;
+ if(isNode){
+ process.emit('rejectionHandled', promise);
+ } else if(handler = global.onrejectionhandled){
+ handler({promise: promise, reason: promise._v});
+ }
+ });
+};
var $reject = function(value){
- var record = this;
- if(record.d)return;
- record.d = true;
- record = record.r || record; // unwrap
- record.v = value;
- record.s = 2;
- record.a = record.c.slice();
- notify(record, true);
+ var promise = this;
+ if(promise._d)return;
+ promise._d = true;
+ promise = promise._w || promise; // unwrap
+ promise._v = value;
+ promise._s = 2;
+ if(!promise._a)promise._a = promise._c.slice();
+ notify(promise, true);
};
var $resolve = function(value){
- var record = this
+ var promise = this
, then;
- if(record.d)return;
- record.d = true;
- record = record.r || record; // unwrap
+ if(promise._d)return;
+ promise._d = true;
+ promise = promise._w || promise; // unwrap
try {
- if(record.p === value)throw TypeError("Promise can't be resolved itself");
+ if(promise === value)throw TypeError("Promise can't be resolved itself");
if(then = isThenable(value)){
- asap(function(){
- var wrapper = {r: record, d: false}; // wrap
+ microtask(function(){
+ var wrapper = {_w: promise, _d: false}; // wrap
try {
then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
} catch(e){
@@ -173,114 +171,122 @@ var $resolve = function(value){
}
});
} else {
- record.v = value;
- record.s = 1;
- notify(record, false);
+ promise._v = value;
+ promise._s = 1;
+ notify(promise, false);
}
} catch(e){
- $reject.call({r: record, d: false}, e); // wrap
+ $reject.call({_w: promise, _d: false}, e); // wrap
}
};
// constructor polyfill
if(!USE_NATIVE){
// 25.4.3.1 Promise(executor)
- P = function Promise(executor){
+ $Promise = function Promise(executor){
+ anInstance(this, $Promise, PROMISE, '_h');
aFunction(executor);
- var record = this._d = {
- p: strictNew(this, P, PROMISE), // <- promise
- c: [], // <- awaiting reactions
- a: undefined, // <- checked in isUnhandled reactions
- s: 0, // <- state
- d: false, // <- done
- v: undefined, // <- value
- h: false, // <- handled rejection
- n: false // <- notify
- };
+ Internal.call(this);
try {
- executor(ctx($resolve, record, 1), ctx($reject, record, 1));
+ executor(ctx($resolve, this, 1), ctx($reject, this, 1));
} catch(err){
- $reject.call(record, err);
+ $reject.call(this, err);
}
};
- require('./$.redefine-all')(P.prototype, {
+ Internal = function Promise(executor){
+ this._c = []; // <- awaiting reactions
+ this._a = undefined; // <- checked in isUnhandled reactions
+ this._s = 0; // <- state
+ this._d = false; // <- done
+ this._v = undefined; // <- value
+ this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
+ this._n = false; // <- notify
+ };
+ Internal.prototype = require('./_redefine-all')($Promise.prototype, {
// 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
then: function then(onFulfilled, onRejected){
- var reaction = new PromiseCapability(speciesConstructor(this, P))
- , promise = reaction.promise
- , record = this._d;
- reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
- reaction.fail = typeof onRejected == 'function' && onRejected;
- record.c.push(reaction);
- if(record.a)record.a.push(reaction);
- if(record.s)notify(record, false);
- return promise;
+ var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
+ reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
+ reaction.fail = typeof onRejected == 'function' && onRejected;
+ reaction.domain = isNode ? process.domain : undefined;
+ this._c.push(reaction);
+ if(this._a)this._a.push(reaction);
+ if(this._s)notify(this, false);
+ return reaction.promise;
},
// 25.4.5.1 Promise.prototype.catch(onRejected)
'catch': function(onRejected){
return this.then(undefined, onRejected);
}
});
+ PromiseCapability = function(){
+ var promise = new Internal;
+ this.promise = promise;
+ this.resolve = ctx($resolve, promise, 1);
+ this.reject = ctx($reject, promise, 1);
+ };
}
-$export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: P});
-require('./$.set-to-string-tag')(P, PROMISE);
-require('./$.set-species')(PROMISE);
-Wrapper = require('./$.core')[PROMISE];
+$export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: $Promise});
+require('./_set-to-string-tag')($Promise, PROMISE);
+require('./_set-species')(PROMISE);
+Wrapper = require('./_core')[PROMISE];
// statics
$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
// 25.4.4.5 Promise.reject(r)
reject: function reject(r){
- var capability = new PromiseCapability(this)
+ var capability = newPromiseCapability(this)
, $$reject = capability.reject;
$$reject(r);
return capability.promise;
}
});
-$export($export.S + $export.F * (!USE_NATIVE || testResolve(true)), PROMISE, {
+$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
// 25.4.4.6 Promise.resolve(x)
resolve: function resolve(x){
// instanceof instead of internal slot check because we should fix it without replacement native Promise core
- if(x instanceof P && sameConstructor(x.constructor, this))return x;
- var capability = new PromiseCapability(this)
+ if(x instanceof $Promise && sameConstructor(x.constructor, this))return x;
+ var capability = newPromiseCapability(this)
, $$resolve = capability.resolve;
$$resolve(x);
return capability.promise;
}
});
-$export($export.S + $export.F * !(USE_NATIVE && require('./$.iter-detect')(function(iter){
- P.all(iter)['catch'](function(){});
+$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function(iter){
+ $Promise.all(iter)['catch'](empty);
})), PROMISE, {
// 25.4.4.1 Promise.all(iterable)
all: function all(iterable){
- var C = getConstructor(this)
- , capability = new PromiseCapability(C)
+ var C = this
+ , capability = newPromiseCapability(C)
, resolve = capability.resolve
- , reject = capability.reject
- , values = [];
+ , reject = capability.reject;
var abrupt = perform(function(){
- forOf(iterable, false, values.push, values);
- var remaining = values.length
- , results = Array(remaining);
- if(remaining)$.each.call(values, function(promise, index){
- var alreadyCalled = false;
+ var values = []
+ , index = 0
+ , remaining = 1;
+ forOf(iterable, false, function(promise){
+ var $index = index++
+ , alreadyCalled = false;
+ values.push(undefined);
+ remaining++;
C.resolve(promise).then(function(value){
if(alreadyCalled)return;
- alreadyCalled = true;
- results[index] = value;
- --remaining || resolve(results);
+ alreadyCalled = true;
+ values[$index] = value;
+ --remaining || resolve(values);
}, reject);
});
- else resolve(results);
+ --remaining || resolve(values);
});
if(abrupt)reject(abrupt.error);
return capability.promise;
},
// 25.4.4.4 Promise.race(iterable)
race: function race(iterable){
- var C = getConstructor(this)
- , capability = new PromiseCapability(C)
+ var C = this
+ , capability = newPromiseCapability(C)
, reject = capability.reject;
var abrupt = perform(function(){
forOf(iterable, false, function(promise){
diff --git a/node_modules/core-js/modules/es6.reflect.apply.js b/node_modules/core-js/modules/es6.reflect.apply.js
index 361a2e2e5..24ea80f51 100644
--- a/node_modules/core-js/modules/es6.reflect.apply.js
+++ b/node_modules/core-js/modules/es6.reflect.apply.js
@@ -1,10 +1,16 @@
// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
-var $export = require('./$.export')
- , _apply = Function.apply
- , anObject = require('./$.an-object');
-
-$export($export.S, 'Reflect', {
+var $export = require('./_export')
+ , aFunction = require('./_a-function')
+ , anObject = require('./_an-object')
+ , rApply = (require('./_global').Reflect || {}).apply
+ , fApply = Function.apply;
+// MS Edge argumentsList argument is optional
+$export($export.S + $export.F * !require('./_fails')(function(){
+ rApply(function(){});
+}), 'Reflect', {
apply: function apply(target, thisArgument, argumentsList){
- return _apply.call(target, thisArgument, anObject(argumentsList));
+ var T = aFunction(target)
+ , L = anObject(argumentsList);
+ return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);
}
}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.reflect.construct.js b/node_modules/core-js/modules/es6.reflect.construct.js
index c3928cd92..96483d708 100644
--- a/node_modules/core-js/modules/es6.reflect.construct.js
+++ b/node_modules/core-js/modules/es6.reflect.construct.js
@@ -1,21 +1,29 @@
// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
-var $ = require('./$')
- , $export = require('./$.export')
- , aFunction = require('./$.a-function')
- , anObject = require('./$.an-object')
- , isObject = require('./$.is-object')
- , bind = Function.bind || require('./$.core').Function.prototype.bind;
+var $export = require('./_export')
+ , create = require('./_object-create')
+ , aFunction = require('./_a-function')
+ , anObject = require('./_an-object')
+ , isObject = require('./_is-object')
+ , fails = require('./_fails')
+ , bind = require('./_bind')
+ , rConstruct = (require('./_global').Reflect || {}).construct;
-// MS Edge supports only 2 arguments
+// MS Edge supports only 2 arguments and argumentsList argument is optional
// FF Nightly sets third argument as `new.target`, but does not create `this` from it
-$export($export.S + $export.F * require('./$.fails')(function(){
+var NEW_TARGET_BUG = fails(function(){
function F(){}
- return !(Reflect.construct(function(){}, [], F) instanceof F);
-}), 'Reflect', {
+ return !(rConstruct(function(){}, [], F) instanceof F);
+});
+var ARGS_BUG = !fails(function(){
+ rConstruct(function(){});
+});
+
+$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
construct: function construct(Target, args /*, newTarget*/){
aFunction(Target);
anObject(args);
var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
+ if(ARGS_BUG && !NEW_TARGET_BUG)return rConstruct(Target, args, newTarget);
if(Target == newTarget){
// w/o altered newTarget, optimization for 0-4 arguments
switch(args.length){
@@ -32,7 +40,7 @@ $export($export.S + $export.F * require('./$.fails')(function(){
}
// with altered newTarget, not support built-in constructors
var proto = newTarget.prototype
- , instance = $.create(isObject(proto) ? proto : Object.prototype)
+ , instance = create(isObject(proto) ? proto : Object.prototype)
, result = Function.apply.call(Target, instance, args);
return isObject(result) ? result : instance;
}
diff --git a/node_modules/core-js/modules/es6.reflect.define-property.js b/node_modules/core-js/modules/es6.reflect.define-property.js
index 5f7fc6a18..485d43c45 100644
--- a/node_modules/core-js/modules/es6.reflect.define-property.js
+++ b/node_modules/core-js/modules/es6.reflect.define-property.js
@@ -1,16 +1,19 @@
// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
-var $ = require('./$')
- , $export = require('./$.export')
- , anObject = require('./$.an-object');
+var dP = require('./_object-dp')
+ , $export = require('./_export')
+ , anObject = require('./_an-object')
+ , toPrimitive = require('./_to-primitive');
// MS Edge has broken Reflect.defineProperty - throwing instead of returning false
-$export($export.S + $export.F * require('./$.fails')(function(){
- Reflect.defineProperty($.setDesc({}, 1, {value: 1}), 1, {value: 2});
+$export($export.S + $export.F * require('./_fails')(function(){
+ Reflect.defineProperty(dP.f({}, 1, {value: 1}), 1, {value: 2});
}), 'Reflect', {
defineProperty: function defineProperty(target, propertyKey, attributes){
anObject(target);
+ propertyKey = toPrimitive(propertyKey, true);
+ anObject(attributes);
try {
- $.setDesc(target, propertyKey, attributes);
+ dP.f(target, propertyKey, attributes);
return true;
} catch(e){
return false;
diff --git a/node_modules/core-js/modules/es6.reflect.delete-property.js b/node_modules/core-js/modules/es6.reflect.delete-property.js
index 18526e5b1..4e8ce2078 100644
--- a/node_modules/core-js/modules/es6.reflect.delete-property.js
+++ b/node_modules/core-js/modules/es6.reflect.delete-property.js
@@ -1,11 +1,11 @@
// 26.1.4 Reflect.deleteProperty(target, propertyKey)
-var $export = require('./$.export')
- , getDesc = require('./$').getDesc
- , anObject = require('./$.an-object');
+var $export = require('./_export')
+ , gOPD = require('./_object-gopd').f
+ , anObject = require('./_an-object');
$export($export.S, 'Reflect', {
deleteProperty: function deleteProperty(target, propertyKey){
- var desc = getDesc(anObject(target), propertyKey);
+ var desc = gOPD(anObject(target), propertyKey);
return desc && !desc.configurable ? false : delete target[propertyKey];
}
}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.reflect.enumerate.js b/node_modules/core-js/modules/es6.reflect.enumerate.js
index 73452e2fa..abdb132d6 100644
--- a/node_modules/core-js/modules/es6.reflect.enumerate.js
+++ b/node_modules/core-js/modules/es6.reflect.enumerate.js
@@ -1,7 +1,7 @@
'use strict';
// 26.1.5 Reflect.enumerate(target)
-var $export = require('./$.export')
- , anObject = require('./$.an-object');
+var $export = require('./_export')
+ , anObject = require('./_an-object');
var Enumerate = function(iterated){
this._t = anObject(iterated); // target
this._i = 0; // next index
@@ -9,7 +9,7 @@ var Enumerate = function(iterated){
, key;
for(key in iterated)keys.push(key);
};
-require('./$.iter-create')(Enumerate, 'Object', function(){
+require('./_iter-create')(Enumerate, 'Object', function(){
var that = this
, keys = that._k
, key;
diff --git a/node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js b/node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js
index a3a2e0160..741a13eba 100644
--- a/node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js
+++ b/node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js
@@ -1,10 +1,10 @@
// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
-var $ = require('./$')
- , $export = require('./$.export')
- , anObject = require('./$.an-object');
+var gOPD = require('./_object-gopd')
+ , $export = require('./_export')
+ , anObject = require('./_an-object');
$export($export.S, 'Reflect', {
getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey){
- return $.getDesc(anObject(target), propertyKey);
+ return gOPD.f(anObject(target), propertyKey);
}
}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.reflect.get-prototype-of.js b/node_modules/core-js/modules/es6.reflect.get-prototype-of.js
index c06bfa459..4f912d104 100644
--- a/node_modules/core-js/modules/es6.reflect.get-prototype-of.js
+++ b/node_modules/core-js/modules/es6.reflect.get-prototype-of.js
@@ -1,7 +1,7 @@
// 26.1.8 Reflect.getPrototypeOf(target)
-var $export = require('./$.export')
- , getProto = require('./$').getProto
- , anObject = require('./$.an-object');
+var $export = require('./_export')
+ , getProto = require('./_object-gpo')
+ , anObject = require('./_an-object');
$export($export.S, 'Reflect', {
getPrototypeOf: function getPrototypeOf(target){
diff --git a/node_modules/core-js/modules/es6.reflect.get.js b/node_modules/core-js/modules/es6.reflect.get.js
index cbb0caaf3..f8c39f500 100644
--- a/node_modules/core-js/modules/es6.reflect.get.js
+++ b/node_modules/core-js/modules/es6.reflect.get.js
@@ -1,20 +1,21 @@
// 26.1.6 Reflect.get(target, propertyKey [, receiver])
-var $ = require('./$')
- , has = require('./$.has')
- , $export = require('./$.export')
- , isObject = require('./$.is-object')
- , anObject = require('./$.an-object');
+var gOPD = require('./_object-gopd')
+ , getPrototypeOf = require('./_object-gpo')
+ , has = require('./_has')
+ , $export = require('./_export')
+ , isObject = require('./_is-object')
+ , anObject = require('./_an-object');
function get(target, propertyKey/*, receiver*/){
var receiver = arguments.length < 3 ? target : arguments[2]
, desc, proto;
if(anObject(target) === receiver)return target[propertyKey];
- if(desc = $.getDesc(target, propertyKey))return has(desc, 'value')
+ if(desc = gOPD.f(target, propertyKey))return has(desc, 'value')
? desc.value
: desc.get !== undefined
? desc.get.call(receiver)
: undefined;
- if(isObject(proto = $.getProto(target)))return get(proto, propertyKey, receiver);
+ if(isObject(proto = getPrototypeOf(target)))return get(proto, propertyKey, receiver);
}
$export($export.S, 'Reflect', {get: get}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.reflect.has.js b/node_modules/core-js/modules/es6.reflect.has.js
index 65c9e82ff..bbb6dbcde 100644
--- a/node_modules/core-js/modules/es6.reflect.has.js
+++ b/node_modules/core-js/modules/es6.reflect.has.js
@@ -1,5 +1,5 @@
// 26.1.9 Reflect.has(target, propertyKey)
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.S, 'Reflect', {
has: function has(target, propertyKey){
diff --git a/node_modules/core-js/modules/es6.reflect.is-extensible.js b/node_modules/core-js/modules/es6.reflect.is-extensible.js
index b92c4f66b..ffbc2848e 100644
--- a/node_modules/core-js/modules/es6.reflect.is-extensible.js
+++ b/node_modules/core-js/modules/es6.reflect.is-extensible.js
@@ -1,6 +1,6 @@
// 26.1.10 Reflect.isExtensible(target)
-var $export = require('./$.export')
- , anObject = require('./$.an-object')
+var $export = require('./_export')
+ , anObject = require('./_an-object')
, $isExtensible = Object.isExtensible;
$export($export.S, 'Reflect', {
diff --git a/node_modules/core-js/modules/es6.reflect.own-keys.js b/node_modules/core-js/modules/es6.reflect.own-keys.js
index db79fdabc..a1e5330c2 100644
--- a/node_modules/core-js/modules/es6.reflect.own-keys.js
+++ b/node_modules/core-js/modules/es6.reflect.own-keys.js
@@ -1,4 +1,4 @@
// 26.1.11 Reflect.ownKeys(target)
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.S, 'Reflect', {ownKeys: require('./$.own-keys')}); \ No newline at end of file
+$export($export.S, 'Reflect', {ownKeys: require('./_own-keys')}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.reflect.prevent-extensions.js b/node_modules/core-js/modules/es6.reflect.prevent-extensions.js
index f5ccfc2a2..d3dad8ee4 100644
--- a/node_modules/core-js/modules/es6.reflect.prevent-extensions.js
+++ b/node_modules/core-js/modules/es6.reflect.prevent-extensions.js
@@ -1,6 +1,6 @@
// 26.1.12 Reflect.preventExtensions(target)
-var $export = require('./$.export')
- , anObject = require('./$.an-object')
+var $export = require('./_export')
+ , anObject = require('./_an-object')
, $preventExtensions = Object.preventExtensions;
$export($export.S, 'Reflect', {
diff --git a/node_modules/core-js/modules/es6.reflect.set-prototype-of.js b/node_modules/core-js/modules/es6.reflect.set-prototype-of.js
index e769436fc..b79d9b613 100644
--- a/node_modules/core-js/modules/es6.reflect.set-prototype-of.js
+++ b/node_modules/core-js/modules/es6.reflect.set-prototype-of.js
@@ -1,6 +1,6 @@
// 26.1.14 Reflect.setPrototypeOf(target, proto)
-var $export = require('./$.export')
- , setProto = require('./$.set-proto');
+var $export = require('./_export')
+ , setProto = require('./_set-proto');
if(setProto)$export($export.S, 'Reflect', {
setPrototypeOf: function setPrototypeOf(target, proto){
diff --git a/node_modules/core-js/modules/es6.reflect.set.js b/node_modules/core-js/modules/es6.reflect.set.js
index 0a938e784..c6b916a2e 100644
--- a/node_modules/core-js/modules/es6.reflect.set.js
+++ b/node_modules/core-js/modules/es6.reflect.set.js
@@ -1,26 +1,28 @@
// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
-var $ = require('./$')
- , has = require('./$.has')
- , $export = require('./$.export')
- , createDesc = require('./$.property-desc')
- , anObject = require('./$.an-object')
- , isObject = require('./$.is-object');
+var dP = require('./_object-dp')
+ , gOPD = require('./_object-gopd')
+ , getPrototypeOf = require('./_object-gpo')
+ , has = require('./_has')
+ , $export = require('./_export')
+ , createDesc = require('./_property-desc')
+ , anObject = require('./_an-object')
+ , isObject = require('./_is-object');
function set(target, propertyKey, V/*, receiver*/){
var receiver = arguments.length < 4 ? target : arguments[3]
- , ownDesc = $.getDesc(anObject(target), propertyKey)
+ , ownDesc = gOPD.f(anObject(target), propertyKey)
, existingDescriptor, proto;
if(!ownDesc){
- if(isObject(proto = $.getProto(target))){
+ if(isObject(proto = getPrototypeOf(target))){
return set(proto, propertyKey, V, receiver);
}
ownDesc = createDesc(0);
}
if(has(ownDesc, 'value')){
if(ownDesc.writable === false || !isObject(receiver))return false;
- existingDescriptor = $.getDesc(receiver, propertyKey) || createDesc(0);
+ existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);
existingDescriptor.value = V;
- $.setDesc(receiver, propertyKey, existingDescriptor);
+ dP.f(receiver, propertyKey, existingDescriptor);
return true;
}
return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
diff --git a/node_modules/core-js/modules/es6.regexp.constructor.js b/node_modules/core-js/modules/es6.regexp.constructor.js
index c7ef61c27..93961168c 100644
--- a/node_modules/core-js/modules/es6.regexp.constructor.js
+++ b/node_modules/core-js/modules/es6.regexp.constructor.js
@@ -1,38 +1,43 @@
-var $ = require('./$')
- , global = require('./$.global')
- , isRegExp = require('./$.is-regexp')
- , $flags = require('./$.flags')
- , $RegExp = global.RegExp
- , Base = $RegExp
- , proto = $RegExp.prototype
- , re1 = /a/g
- , re2 = /a/g
+var global = require('./_global')
+ , inheritIfRequired = require('./_inherit-if-required')
+ , dP = require('./_object-dp').f
+ , gOPN = require('./_object-gopn').f
+ , isRegExp = require('./_is-regexp')
+ , $flags = require('./_flags')
+ , $RegExp = global.RegExp
+ , Base = $RegExp
+ , proto = $RegExp.prototype
+ , re1 = /a/g
+ , re2 = /a/g
// "new" creates a new object, old webkit buggy here
- , CORRECT_NEW = new $RegExp(re1) !== re1;
+ , CORRECT_NEW = new $RegExp(re1) !== re1;
-if(require('./$.descriptors') && (!CORRECT_NEW || require('./$.fails')(function(){
- re2[require('./$.wks')('match')] = false;
+if(require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function(){
+ re2[require('./_wks')('match')] = false;
// RegExp constructor can alter flags and IsRegExp works correct with @@match
return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
}))){
$RegExp = function RegExp(p, f){
- var piRE = isRegExp(p)
+ var tiRE = this instanceof $RegExp
+ , piRE = isRegExp(p)
, fiU = f === undefined;
- return !(this instanceof $RegExp) && piRE && p.constructor === $RegExp && fiU ? p
- : CORRECT_NEW
+ return !tiRE && piRE && p.constructor === $RegExp && fiU ? p
+ : inheritIfRequired(CORRECT_NEW
? new Base(piRE && !fiU ? p.source : p, f)
- : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f);
+ : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)
+ , tiRE ? this : proto, $RegExp);
};
- $.each.call($.getNames(Base), function(key){
- key in $RegExp || $.setDesc($RegExp, key, {
+ var proxy = function(key){
+ key in $RegExp || dP($RegExp, key, {
configurable: true,
get: function(){ return Base[key]; },
set: function(it){ Base[key] = it; }
});
- });
+ };
+ for(var keys = gOPN(Base), i = 0; keys.length > i; )proxy(keys[i++]);
proto.constructor = $RegExp;
$RegExp.prototype = proto;
- require('./$.redefine')(global, 'RegExp', $RegExp);
+ require('./_redefine')(global, 'RegExp', $RegExp);
}
-require('./$.set-species')('RegExp'); \ No newline at end of file
+require('./_set-species')('RegExp'); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.regexp.flags.js b/node_modules/core-js/modules/es6.regexp.flags.js
index 5984c2143..33ba86f72 100644
--- a/node_modules/core-js/modules/es6.regexp.flags.js
+++ b/node_modules/core-js/modules/es6.regexp.flags.js
@@ -1,6 +1,5 @@
// 21.2.5.3 get RegExp.prototype.flags()
-var $ = require('./$');
-if(require('./$.descriptors') && /./g.flags != 'g')$.setDesc(RegExp.prototype, 'flags', {
+if(require('./_descriptors') && /./g.flags != 'g')require('./_object-dp').f(RegExp.prototype, 'flags', {
configurable: true,
- get: require('./$.flags')
+ get: require('./_flags')
}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.regexp.match.js b/node_modules/core-js/modules/es6.regexp.match.js
index 5cd194c28..814d37191 100644
--- a/node_modules/core-js/modules/es6.regexp.match.js
+++ b/node_modules/core-js/modules/es6.regexp.match.js
@@ -1,10 +1,10 @@
// @@match logic
-require('./$.fix-re-wks')('match', 1, function(defined, MATCH){
+require('./_fix-re-wks')('match', 1, function(defined, MATCH, $match){
// 21.1.3.11 String.prototype.match(regexp)
- return function match(regexp){
+ return [function match(regexp){
'use strict';
var O = defined(this)
, fn = regexp == undefined ? undefined : regexp[MATCH];
return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
- };
+ }, $match];
}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.regexp.replace.js b/node_modules/core-js/modules/es6.regexp.replace.js
index 140c5072d..4f651af37 100644
--- a/node_modules/core-js/modules/es6.regexp.replace.js
+++ b/node_modules/core-js/modules/es6.regexp.replace.js
@@ -1,12 +1,12 @@
// @@replace logic
-require('./$.fix-re-wks')('replace', 2, function(defined, REPLACE, $replace){
+require('./_fix-re-wks')('replace', 2, function(defined, REPLACE, $replace){
// 21.1.3.14 String.prototype.replace(searchValue, replaceValue)
- return function replace(searchValue, replaceValue){
+ return [function replace(searchValue, replaceValue){
'use strict';
var O = defined(this)
, fn = searchValue == undefined ? undefined : searchValue[REPLACE];
return fn !== undefined
? fn.call(searchValue, O, replaceValue)
: $replace.call(String(O), searchValue, replaceValue);
- };
+ }, $replace];
}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.regexp.search.js b/node_modules/core-js/modules/es6.regexp.search.js
index adfd5c9c4..7aac5e447 100644
--- a/node_modules/core-js/modules/es6.regexp.search.js
+++ b/node_modules/core-js/modules/es6.regexp.search.js
@@ -1,10 +1,10 @@
// @@search logic
-require('./$.fix-re-wks')('search', 1, function(defined, SEARCH){
+require('./_fix-re-wks')('search', 1, function(defined, SEARCH, $search){
// 21.1.3.15 String.prototype.search(regexp)
- return function search(regexp){
+ return [function search(regexp){
'use strict';
var O = defined(this)
, fn = regexp == undefined ? undefined : regexp[SEARCH];
return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
- };
+ }, $search];
}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.regexp.split.js b/node_modules/core-js/modules/es6.regexp.split.js
index 0607fb064..a991a3fc9 100644
--- a/node_modules/core-js/modules/es6.regexp.split.js
+++ b/node_modules/core-js/modules/es6.regexp.split.js
@@ -1,12 +1,70 @@
// @@split logic
-require('./$.fix-re-wks')('split', 2, function(defined, SPLIT, $split){
+require('./_fix-re-wks')('split', 2, function(defined, SPLIT, $split){
+ 'use strict';
+ var isRegExp = require('./_is-regexp')
+ , _split = $split
+ , $push = [].push
+ , $SPLIT = 'split'
+ , LENGTH = 'length'
+ , LAST_INDEX = 'lastIndex';
+ if(
+ 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
+ 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
+ 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
+ '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
+ '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
+ ''[$SPLIT](/.?/)[LENGTH]
+ ){
+ var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group
+ // based on es5-shim implementation, need to rework it
+ $split = function(separator, limit){
+ var string = String(this);
+ if(separator === undefined && limit === 0)return [];
+ // If `separator` is not a regex, use native split
+ if(!isRegExp(separator))return _split.call(string, separator, limit);
+ var output = [];
+ var flags = (separator.ignoreCase ? 'i' : '') +
+ (separator.multiline ? 'm' : '') +
+ (separator.unicode ? 'u' : '') +
+ (separator.sticky ? 'y' : '');
+ var lastLastIndex = 0;
+ var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;
+ // Make `global` and avoid `lastIndex` issues by working with a copy
+ var separatorCopy = new RegExp(separator.source, flags + 'g');
+ var separator2, match, lastIndex, lastLength, i;
+ // Doesn't need flags gy, but they don't hurt
+ if(!NPCG)separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\s)', flags);
+ while(match = separatorCopy.exec(string)){
+ // `separatorCopy.lastIndex` is not reliable cross-browser
+ lastIndex = match.index + match[0][LENGTH];
+ if(lastIndex > lastLastIndex){
+ output.push(string.slice(lastLastIndex, match.index));
+ // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG
+ if(!NPCG && match[LENGTH] > 1)match[0].replace(separator2, function(){
+ for(i = 1; i < arguments[LENGTH] - 2; i++)if(arguments[i] === undefined)match[i] = undefined;
+ });
+ if(match[LENGTH] > 1 && match.index < string[LENGTH])$push.apply(output, match.slice(1));
+ lastLength = match[0][LENGTH];
+ lastLastIndex = lastIndex;
+ if(output[LENGTH] >= splitLimit)break;
+ }
+ if(separatorCopy[LAST_INDEX] === match.index)separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
+ }
+ if(lastLastIndex === string[LENGTH]){
+ if(lastLength || !separatorCopy.test(''))output.push('');
+ } else output.push(string.slice(lastLastIndex));
+ return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
+ };
+ // Chakra, V8
+ } else if('0'[$SPLIT](undefined, 0)[LENGTH]){
+ $split = function(separator, limit){
+ return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);
+ };
+ }
// 21.1.3.17 String.prototype.split(separator, limit)
- return function split(separator, limit){
- 'use strict';
+ return [function split(separator, limit){
var O = defined(this)
, fn = separator == undefined ? undefined : separator[SPLIT];
- return fn !== undefined
- ? fn.call(separator, O, limit)
- : $split.call(String(O), separator, limit);
- };
+ return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);
+ }, $split];
}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.set.js b/node_modules/core-js/modules/es6.set.js
index 8e148c9e2..a18808818 100644
--- a/node_modules/core-js/modules/es6.set.js
+++ b/node_modules/core-js/modules/es6.set.js
@@ -1,8 +1,8 @@
'use strict';
-var strong = require('./$.collection-strong');
+var strong = require('./_collection-strong');
// 23.2 Set Objects
-require('./$.collection')('Set', function(get){
+module.exports = require('./_collection')('Set', function(get){
return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.2.3.1 Set.prototype.add(value)
diff --git a/node_modules/core-js/modules/es6.string.code-point-at.js b/node_modules/core-js/modules/es6.string.code-point-at.js
index ebac55180..cf544652a 100644
--- a/node_modules/core-js/modules/es6.string.code-point-at.js
+++ b/node_modules/core-js/modules/es6.string.code-point-at.js
@@ -1,6 +1,6 @@
'use strict';
-var $export = require('./$.export')
- , $at = require('./$.string-at')(false);
+var $export = require('./_export')
+ , $at = require('./_string-at')(false);
$export($export.P, 'String', {
// 21.1.3.3 String.prototype.codePointAt(pos)
codePointAt: function codePointAt(pos){
diff --git a/node_modules/core-js/modules/es6.string.ends-with.js b/node_modules/core-js/modules/es6.string.ends-with.js
index a102da2d4..80baed9ad 100644
--- a/node_modules/core-js/modules/es6.string.ends-with.js
+++ b/node_modules/core-js/modules/es6.string.ends-with.js
@@ -1,16 +1,15 @@
// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
'use strict';
-var $export = require('./$.export')
- , toLength = require('./$.to-length')
- , context = require('./$.string-context')
+var $export = require('./_export')
+ , toLength = require('./_to-length')
+ , context = require('./_string-context')
, ENDS_WITH = 'endsWith'
, $endsWith = ''[ENDS_WITH];
-$export($export.P + $export.F * require('./$.fails-is-regexp')(ENDS_WITH), 'String', {
+$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {
endsWith: function endsWith(searchString /*, endPosition = @length */){
var that = context(this, searchString, ENDS_WITH)
- , $$ = arguments
- , endPosition = $$.length > 1 ? $$[1] : undefined
+ , endPosition = arguments.length > 1 ? arguments[1] : undefined
, len = toLength(that.length)
, end = endPosition === undefined ? len : Math.min(toLength(endPosition), len)
, search = String(searchString);
diff --git a/node_modules/core-js/modules/es6.string.from-code-point.js b/node_modules/core-js/modules/es6.string.from-code-point.js
index b0bd166bf..c8776d871 100644
--- a/node_modules/core-js/modules/es6.string.from-code-point.js
+++ b/node_modules/core-js/modules/es6.string.from-code-point.js
@@ -1,5 +1,5 @@
-var $export = require('./$.export')
- , toIndex = require('./$.to-index')
+var $export = require('./_export')
+ , toIndex = require('./_to-index')
, fromCharCode = String.fromCharCode
, $fromCodePoint = String.fromCodePoint;
@@ -7,13 +7,12 @@ var $export = require('./$.export')
$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
// 21.1.2.2 String.fromCodePoint(...codePoints)
fromCodePoint: function fromCodePoint(x){ // eslint-disable-line no-unused-vars
- var res = []
- , $$ = arguments
- , $$len = $$.length
- , i = 0
+ var res = []
+ , aLen = arguments.length
+ , i = 0
, code;
- while($$len > i){
- code = +$$[i++];
+ while(aLen > i){
+ code = +arguments[i++];
if(toIndex(code, 0x10ffff) !== code)throw RangeError(code + ' is not a valid code point');
res.push(code < 0x10000
? fromCharCode(code)
diff --git a/node_modules/core-js/modules/es6.string.includes.js b/node_modules/core-js/modules/es6.string.includes.js
index e2ab8db7e..c6b4ee2fa 100644
--- a/node_modules/core-js/modules/es6.string.includes.js
+++ b/node_modules/core-js/modules/es6.string.includes.js
@@ -1,10 +1,10 @@
// 21.1.3.7 String.prototype.includes(searchString, position = 0)
'use strict';
-var $export = require('./$.export')
- , context = require('./$.string-context')
+var $export = require('./_export')
+ , context = require('./_string-context')
, INCLUDES = 'includes';
-$export($export.P + $export.F * require('./$.fails-is-regexp')(INCLUDES), 'String', {
+$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {
includes: function includes(searchString /*, position = 0 */){
return !!~context(this, searchString, INCLUDES)
.indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
diff --git a/node_modules/core-js/modules/es6.string.iterator.js b/node_modules/core-js/modules/es6.string.iterator.js
index 2f4c772c3..ac391ee4e 100644
--- a/node_modules/core-js/modules/es6.string.iterator.js
+++ b/node_modules/core-js/modules/es6.string.iterator.js
@@ -1,8 +1,8 @@
'use strict';
-var $at = require('./$.string-at')(true);
+var $at = require('./_string-at')(true);
// 21.1.3.27 String.prototype[@@iterator]()
-require('./$.iter-define')(String, 'String', function(iterated){
+require('./_iter-define')(String, 'String', function(iterated){
this._t = String(iterated); // target
this._i = 0; // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
diff --git a/node_modules/core-js/modules/es6.string.raw.js b/node_modules/core-js/modules/es6.string.raw.js
index 64279d23d..1016acfa2 100644
--- a/node_modules/core-js/modules/es6.string.raw.js
+++ b/node_modules/core-js/modules/es6.string.raw.js
@@ -1,19 +1,18 @@
-var $export = require('./$.export')
- , toIObject = require('./$.to-iobject')
- , toLength = require('./$.to-length');
+var $export = require('./_export')
+ , toIObject = require('./_to-iobject')
+ , toLength = require('./_to-length');
$export($export.S, 'String', {
// 21.1.2.4 String.raw(callSite, ...substitutions)
raw: function raw(callSite){
- var tpl = toIObject(callSite.raw)
- , len = toLength(tpl.length)
- , $$ = arguments
- , $$len = $$.length
- , res = []
- , i = 0;
+ var tpl = toIObject(callSite.raw)
+ , len = toLength(tpl.length)
+ , aLen = arguments.length
+ , res = []
+ , i = 0;
while(len > i){
res.push(String(tpl[i++]));
- if(i < $$len)res.push(String($$[i]));
+ if(i < aLen)res.push(String(arguments[i]));
} return res.join('');
}
}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.string.repeat.js b/node_modules/core-js/modules/es6.string.repeat.js
index 4ec29f66a..a054222d6 100644
--- a/node_modules/core-js/modules/es6.string.repeat.js
+++ b/node_modules/core-js/modules/es6.string.repeat.js
@@ -1,6 +1,6 @@
-var $export = require('./$.export');
+var $export = require('./_export');
$export($export.P, 'String', {
// 21.1.3.13 String.prototype.repeat(count)
- repeat: require('./$.string-repeat')
+ repeat: require('./_string-repeat')
}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.string.starts-with.js b/node_modules/core-js/modules/es6.string.starts-with.js
index 21143072e..017805f01 100644
--- a/node_modules/core-js/modules/es6.string.starts-with.js
+++ b/node_modules/core-js/modules/es6.string.starts-with.js
@@ -1,16 +1,15 @@
// 21.1.3.18 String.prototype.startsWith(searchString [, position ])
'use strict';
-var $export = require('./$.export')
- , toLength = require('./$.to-length')
- , context = require('./$.string-context')
+var $export = require('./_export')
+ , toLength = require('./_to-length')
+ , context = require('./_string-context')
, STARTS_WITH = 'startsWith'
, $startsWith = ''[STARTS_WITH];
-$export($export.P + $export.F * require('./$.fails-is-regexp')(STARTS_WITH), 'String', {
+$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {
startsWith: function startsWith(searchString /*, position = 0 */){
var that = context(this, searchString, STARTS_WITH)
- , $$ = arguments
- , index = toLength(Math.min($$.length > 1 ? $$[1] : undefined, that.length))
+ , index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length))
, search = String(searchString);
return $startsWith
? $startsWith.call(that, search, index)
diff --git a/node_modules/core-js/modules/es6.string.trim.js b/node_modules/core-js/modules/es6.string.trim.js
index 52b75cac6..35f0fb0b8 100644
--- a/node_modules/core-js/modules/es6.string.trim.js
+++ b/node_modules/core-js/modules/es6.string.trim.js
@@ -1,6 +1,6 @@
'use strict';
// 21.1.3.25 String.prototype.trim()
-require('./$.string-trim')('trim', function($trim){
+require('./_string-trim')('trim', function($trim){
return function trim(){
return $trim(this, 3);
};
diff --git a/node_modules/core-js/modules/es6.symbol.js b/node_modules/core-js/modules/es6.symbol.js
index 42b7a3aaa..eae491c5a 100644
--- a/node_modules/core-js/modules/es6.symbol.js
+++ b/node_modules/core-js/modules/es6.symbol.js
@@ -1,77 +1,87 @@
'use strict';
// ECMAScript 6 symbols shim
-var $ = require('./$')
- , global = require('./$.global')
- , has = require('./$.has')
- , DESCRIPTORS = require('./$.descriptors')
- , $export = require('./$.export')
- , redefine = require('./$.redefine')
- , $fails = require('./$.fails')
- , shared = require('./$.shared')
- , setToStringTag = require('./$.set-to-string-tag')
- , uid = require('./$.uid')
- , wks = require('./$.wks')
- , keyOf = require('./$.keyof')
- , $names = require('./$.get-names')
- , enumKeys = require('./$.enum-keys')
- , isArray = require('./$.is-array')
- , anObject = require('./$.an-object')
- , toIObject = require('./$.to-iobject')
- , createDesc = require('./$.property-desc')
- , getDesc = $.getDesc
- , setDesc = $.setDesc
- , _create = $.create
- , getNames = $names.get
+var global = require('./_global')
+ , has = require('./_has')
+ , DESCRIPTORS = require('./_descriptors')
+ , $export = require('./_export')
+ , redefine = require('./_redefine')
+ , META = require('./_meta').KEY
+ , $fails = require('./_fails')
+ , shared = require('./_shared')
+ , setToStringTag = require('./_set-to-string-tag')
+ , uid = require('./_uid')
+ , wks = require('./_wks')
+ , wksExt = require('./_wks-ext')
+ , wksDefine = require('./_wks-define')
+ , keyOf = require('./_keyof')
+ , enumKeys = require('./_enum-keys')
+ , isArray = require('./_is-array')
+ , anObject = require('./_an-object')
+ , toIObject = require('./_to-iobject')
+ , toPrimitive = require('./_to-primitive')
+ , createDesc = require('./_property-desc')
+ , _create = require('./_object-create')
+ , gOPNExt = require('./_object-gopn-ext')
+ , $GOPD = require('./_object-gopd')
+ , $DP = require('./_object-dp')
+ , $keys = require('./_object-keys')
+ , gOPD = $GOPD.f
+ , dP = $DP.f
+ , gOPN = gOPNExt.f
, $Symbol = global.Symbol
, $JSON = global.JSON
, _stringify = $JSON && $JSON.stringify
- , setter = false
+ , PROTOTYPE = 'prototype'
, HIDDEN = wks('_hidden')
- , isEnum = $.isEnum
+ , TO_PRIMITIVE = wks('toPrimitive')
+ , isEnum = {}.propertyIsEnumerable
, SymbolRegistry = shared('symbol-registry')
, AllSymbols = shared('symbols')
- , useNative = typeof $Symbol == 'function'
- , ObjectProto = Object.prototype;
+ , OPSymbols = shared('op-symbols')
+ , ObjectProto = Object[PROTOTYPE]
+ , USE_NATIVE = typeof $Symbol == 'function'
+ , QObject = global.QObject;
+// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
+var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
var setSymbolDesc = DESCRIPTORS && $fails(function(){
- return _create(setDesc({}, 'a', {
- get: function(){ return setDesc(this, 'a', {value: 7}).a; }
+ return _create(dP({}, 'a', {
+ get: function(){ return dP(this, 'a', {value: 7}).a; }
})).a != 7;
}) ? function(it, key, D){
- var protoDesc = getDesc(ObjectProto, key);
+ var protoDesc = gOPD(ObjectProto, key);
if(protoDesc)delete ObjectProto[key];
- setDesc(it, key, D);
- if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);
-} : setDesc;
+ dP(it, key, D);
+ if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);
+} : dP;
var wrap = function(tag){
- var sym = AllSymbols[tag] = _create($Symbol.prototype);
+ var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
sym._k = tag;
- DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {
- configurable: true,
- set: function(value){
- if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
- setSymbolDesc(this, tag, createDesc(1, value));
- }
- });
return sym;
};
-var isSymbol = function(it){
+var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){
return typeof it == 'symbol';
+} : function(it){
+ return it instanceof $Symbol;
};
var $defineProperty = function defineProperty(it, key, D){
- if(D && has(AllSymbols, key)){
+ if(it === ObjectProto)$defineProperty(OPSymbols, key, D);
+ anObject(it);
+ key = toPrimitive(key, true);
+ anObject(D);
+ if(has(AllSymbols, key)){
if(!D.enumerable){
- if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));
+ if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));
it[HIDDEN][key] = true;
} else {
if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
D = _create(D, {enumerable: createDesc(0, false)});
} return setSymbolDesc(it, key, D);
- } return setDesc(it, key, D);
+ } return dP(it, key, D);
};
var $defineProperties = function defineProperties(it, P){
anObject(it);
@@ -86,83 +96,80 @@ var $create = function create(it, P){
return P === undefined ? _create(it) : $defineProperties(_create(it), P);
};
var $propertyIsEnumerable = function propertyIsEnumerable(key){
- var E = isEnum.call(this, key);
- return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]
- ? E : true;
+ var E = isEnum.call(this, key = toPrimitive(key, true));
+ if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;
+ return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
};
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
- var D = getDesc(it = toIObject(it), key);
+ it = toIObject(it);
+ key = toPrimitive(key, true);
+ if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;
+ var D = gOPD(it, key);
if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
return D;
};
var $getOwnPropertyNames = function getOwnPropertyNames(it){
- var names = getNames(toIObject(it))
+ var names = gOPN(toIObject(it))
, result = []
, i = 0
, key;
- while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);
- return result;
+ while(names.length > i){
+ if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);
+ } return result;
};
var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
- var names = getNames(toIObject(it))
+ var IS_OP = it === ObjectProto
+ , names = gOPN(IS_OP ? OPSymbols : toIObject(it))
, result = []
, i = 0
, key;
- while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);
- return result;
+ while(names.length > i){
+ if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);
+ } return result;
};
-var $stringify = function stringify(it){
- if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
- var args = [it]
- , i = 1
- , $$ = arguments
- , replacer, $replacer;
- while($$.length > i)args.push($$[i++]);
- replacer = args[1];
- if(typeof replacer == 'function')$replacer = replacer;
- if($replacer || !isArray(replacer))replacer = function(key, value){
- if($replacer)value = $replacer.call(this, key, value);
- if(!isSymbol(value))return value;
- };
- args[1] = replacer;
- return _stringify.apply($JSON, args);
-};
-var buggyJSON = $fails(function(){
- var S = $Symbol();
- // MS Edge converts symbol values to JSON as {}
- // WebKit converts symbol values to JSON as null
- // V8 throws on boxed symbols
- return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
-});
// 19.4.1.1 Symbol([description])
-if(!useNative){
+if(!USE_NATIVE){
$Symbol = function Symbol(){
- if(isSymbol(this))throw TypeError('Symbol is not a constructor');
- return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));
+ if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');
+ var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
+ var $set = function(value){
+ if(this === ObjectProto)$set.call(OPSymbols, value);
+ if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
+ setSymbolDesc(this, tag, createDesc(1, value));
+ };
+ if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});
+ return wrap(tag);
};
- redefine($Symbol.prototype, 'toString', function toString(){
+ redefine($Symbol[PROTOTYPE], 'toString', function toString(){
return this._k;
});
- isSymbol = function(it){
- return it instanceof $Symbol;
- };
-
- $.create = $create;
- $.isEnum = $propertyIsEnumerable;
- $.getDesc = $getOwnPropertyDescriptor;
- $.setDesc = $defineProperty;
- $.setDescs = $defineProperties;
- $.getNames = $names.get = $getOwnPropertyNames;
- $.getSymbols = $getOwnPropertySymbols;
+ $GOPD.f = $getOwnPropertyDescriptor;
+ $DP.f = $defineProperty;
+ require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;
+ require('./_object-pie').f = $propertyIsEnumerable;
+ require('./_object-gops').f = $getOwnPropertySymbols;
- if(DESCRIPTORS && !require('./$.library')){
+ if(DESCRIPTORS && !require('./_library')){
redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
}
+
+ wksExt.f = function(name){
+ return wrap(wks(name));
+ }
}
-var symbolStatics = {
+$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});
+
+for(var symbols = (
+ // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
+ 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
+).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);
+
+for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);
+
+$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
// 19.4.2.1 Symbol.for(key)
'for': function(key){
return has(SymbolRegistry, key += '')
@@ -171,37 +178,14 @@ var symbolStatics = {
},
// 19.4.2.5 Symbol.keyFor(sym)
keyFor: function keyFor(key){
- return keyOf(SymbolRegistry, key);
+ if(isSymbol(key))return keyOf(SymbolRegistry, key);
+ throw TypeError(key + ' is not a symbol!');
},
useSetter: function(){ setter = true; },
useSimple: function(){ setter = false; }
-};
-// 19.4.2.2 Symbol.hasInstance
-// 19.4.2.3 Symbol.isConcatSpreadable
-// 19.4.2.4 Symbol.iterator
-// 19.4.2.6 Symbol.match
-// 19.4.2.8 Symbol.replace
-// 19.4.2.9 Symbol.search
-// 19.4.2.10 Symbol.species
-// 19.4.2.11 Symbol.split
-// 19.4.2.12 Symbol.toPrimitive
-// 19.4.2.13 Symbol.toStringTag
-// 19.4.2.14 Symbol.unscopables
-$.each.call((
- 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +
- 'species,split,toPrimitive,toStringTag,unscopables'
-).split(','), function(it){
- var sym = wks(it);
- symbolStatics[it] = useNative ? sym : wrap(sym);
});
-setter = true;
-
-$export($export.G + $export.W, {Symbol: $Symbol});
-
-$export($export.S, 'Symbol', symbolStatics);
-
-$export($export.S + $export.F * !useNative, 'Object', {
+$export($export.S + $export.F * !USE_NATIVE, 'Object', {
// 19.1.2.2 Object.create(O [, Properties])
create: $create,
// 19.1.2.4 Object.defineProperty(O, P, Attributes)
@@ -217,8 +201,32 @@ $export($export.S + $export.F * !useNative, 'Object', {
});
// 24.3.2 JSON.stringify(value [, replacer [, space]])
-$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});
+$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){
+ var S = $Symbol();
+ // MS Edge converts symbol values to JSON as {}
+ // WebKit converts symbol values to JSON as null
+ // V8 throws on boxed symbols
+ return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
+})), 'JSON', {
+ stringify: function stringify(it){
+ if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
+ var args = [it]
+ , i = 1
+ , replacer, $replacer;
+ while(arguments.length > i)args.push(arguments[i++]);
+ replacer = args[1];
+ if(typeof replacer == 'function')$replacer = replacer;
+ if($replacer || !isArray(replacer))replacer = function(key, value){
+ if($replacer)value = $replacer.call(this, key, value);
+ if(!isSymbol(value))return value;
+ };
+ args[1] = replacer;
+ return _stringify.apply($JSON, args);
+ }
+});
+// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
+$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
// 19.4.3.5 Symbol.prototype[@@toStringTag]
setToStringTag($Symbol, 'Symbol');
// 20.2.1.9 Math[@@toStringTag]
diff --git a/node_modules/core-js/modules/es6.typed.array-buffer.js b/node_modules/core-js/modules/es6.typed.array-buffer.js
index a8209bd2d..9f47082c2 100644
--- a/node_modules/core-js/modules/es6.typed.array-buffer.js
+++ b/node_modules/core-js/modules/es6.typed.array-buffer.js
@@ -1,43 +1,46 @@
'use strict';
-if(require('./$.descriptors')){
- var $export = require('./$.export')
- , $typed = require('./$.typed')
- , buffer = require('./$.buffer')
- , toIndex = require('./$.to-index')
- , toLength = require('./$.to-length')
- , isObject = require('./$.is-object')
- , TYPED_ARRAY = require('./$.wks')('typed_array')
- , $ArrayBuffer = buffer.ArrayBuffer
- , $DataView = buffer.DataView
- , $slice = $ArrayBuffer && $ArrayBuffer.prototype.slice
- , VIEW = $typed.VIEW
- , ARRAY_BUFFER = 'ArrayBuffer';
+var $export = require('./_export')
+ , $typed = require('./_typed')
+ , buffer = require('./_typed-buffer')
+ , anObject = require('./_an-object')
+ , toIndex = require('./_to-index')
+ , toLength = require('./_to-length')
+ , isObject = require('./_is-object')
+ , ArrayBuffer = require('./_global').ArrayBuffer
+ , speciesConstructor = require('./_species-constructor')
+ , $ArrayBuffer = buffer.ArrayBuffer
+ , $DataView = buffer.DataView
+ , $isView = $typed.ABV && ArrayBuffer.isView
+ , $slice = $ArrayBuffer.prototype.slice
+ , VIEW = $typed.VIEW
+ , ARRAY_BUFFER = 'ArrayBuffer';
- $export($export.G + $export.W + $export.F * !$typed.ABV, {ArrayBuffer: $ArrayBuffer});
+$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), {ArrayBuffer: $ArrayBuffer});
- $export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {
- // 24.1.3.1 ArrayBuffer.isView(arg)
- isView: function isView(it){ // not cross-realm
- return isObject(it) && VIEW in it;
- }
- });
+$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {
+ // 24.1.3.1 ArrayBuffer.isView(arg)
+ isView: function isView(it){
+ return $isView && $isView(it) || isObject(it) && VIEW in it;
+ }
+});
- $export($export.P + $export.F * require('./$.fails')(function(){
- return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
- }), ARRAY_BUFFER, {
- // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
- slice: function slice(start, end){
- if($slice !== undefined && end === undefined)return $slice.call(this, start); // FF fix
- var len = this.byteLength
- , first = toIndex(start, len)
- , final = toIndex(end === undefined ? len : end, len)
- , result = new $ArrayBuffer(toLength(final - first))
- , viewS = new $DataView(this)
- , viewT = new $DataView(result)
- , index = 0;
- while(first < final){
- viewT.setUint8(index++, viewS.getUint8(first++));
- } return result;
- }
- });
-} \ No newline at end of file
+$export($export.P + $export.U + $export.F * require('./_fails')(function(){
+ return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
+}), ARRAY_BUFFER, {
+ // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
+ slice: function slice(start, end){
+ if($slice !== undefined && end === undefined)return $slice.call(anObject(this), start); // FF fix
+ var len = anObject(this).byteLength
+ , first = toIndex(start, len)
+ , final = toIndex(end === undefined ? len : end, len)
+ , result = new (speciesConstructor(this, $ArrayBuffer))(toLength(final - first))
+ , viewS = new $DataView(this)
+ , viewT = new $DataView(result)
+ , index = 0;
+ while(first < final){
+ viewT.setUint8(index++, viewS.getUint8(first++));
+ } return result;
+ }
+});
+
+require('./_set-species')(ARRAY_BUFFER); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.typed.data-view.js b/node_modules/core-js/modules/es6.typed.data-view.js
index 44e035320..ee7b88127 100644
--- a/node_modules/core-js/modules/es6.typed.data-view.js
+++ b/node_modules/core-js/modules/es6.typed.data-view.js
@@ -1,4 +1,4 @@
-if(require('./$.descriptors')){
- var $export = require('./$.export');
- $export($export.G + $export.W + $export.F * !require('./$.typed').ABV, {DataView: require('./$.buffer').DataView});
-} \ No newline at end of file
+var $export = require('./_export');
+$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {
+ DataView: require('./_typed-buffer').DataView
+}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es6.typed.float32-array.js b/node_modules/core-js/modules/es6.typed.float32-array.js
index 95d78a6d4..2c4c9a699 100644
--- a/node_modules/core-js/modules/es6.typed.float32-array.js
+++ b/node_modules/core-js/modules/es6.typed.float32-array.js
@@ -1,4 +1,4 @@
-require('./$.typed-array')('Float32', 4, function(init){
+require('./_typed-array')('Float32', 4, function(init){
return function Float32Array(data, byteOffset, length){
return init(this, data, byteOffset, length);
};
diff --git a/node_modules/core-js/modules/es6.typed.float64-array.js b/node_modules/core-js/modules/es6.typed.float64-array.js
index 16fadec9a..4b20257f7 100644
--- a/node_modules/core-js/modules/es6.typed.float64-array.js
+++ b/node_modules/core-js/modules/es6.typed.float64-array.js
@@ -1,4 +1,4 @@
-require('./$.typed-array')('Float64', 8, function(init){
+require('./_typed-array')('Float64', 8, function(init){
return function Float64Array(data, byteOffset, length){
return init(this, data, byteOffset, length);
};
diff --git a/node_modules/core-js/modules/es6.typed.int16-array.js b/node_modules/core-js/modules/es6.typed.int16-array.js
index a3d04cb63..d3f61c564 100644
--- a/node_modules/core-js/modules/es6.typed.int16-array.js
+++ b/node_modules/core-js/modules/es6.typed.int16-array.js
@@ -1,4 +1,4 @@
-require('./$.typed-array')('Int16', 2, function(init){
+require('./_typed-array')('Int16', 2, function(init){
return function Int16Array(data, byteOffset, length){
return init(this, data, byteOffset, length);
};
diff --git a/node_modules/core-js/modules/es6.typed.int32-array.js b/node_modules/core-js/modules/es6.typed.int32-array.js
index 1923463ac..df47c1bb0 100644
--- a/node_modules/core-js/modules/es6.typed.int32-array.js
+++ b/node_modules/core-js/modules/es6.typed.int32-array.js
@@ -1,4 +1,4 @@
-require('./$.typed-array')('Int32', 4, function(init){
+require('./_typed-array')('Int32', 4, function(init){
return function Int32Array(data, byteOffset, length){
return init(this, data, byteOffset, length);
};
diff --git a/node_modules/core-js/modules/es6.typed.int8-array.js b/node_modules/core-js/modules/es6.typed.int8-array.js
index e9182c4cc..da4dbf0a2 100644
--- a/node_modules/core-js/modules/es6.typed.int8-array.js
+++ b/node_modules/core-js/modules/es6.typed.int8-array.js
@@ -1,4 +1,4 @@
-require('./$.typed-array')('Int8', 1, function(init){
+require('./_typed-array')('Int8', 1, function(init){
return function Int8Array(data, byteOffset, length){
return init(this, data, byteOffset, length);
};
diff --git a/node_modules/core-js/modules/es6.typed.uint16-array.js b/node_modules/core-js/modules/es6.typed.uint16-array.js
index ec6e83477..cb335773d 100644
--- a/node_modules/core-js/modules/es6.typed.uint16-array.js
+++ b/node_modules/core-js/modules/es6.typed.uint16-array.js
@@ -1,4 +1,4 @@
-require('./$.typed-array')('Uint16', 2, function(init){
+require('./_typed-array')('Uint16', 2, function(init){
return function Uint16Array(data, byteOffset, length){
return init(this, data, byteOffset, length);
};
diff --git a/node_modules/core-js/modules/es6.typed.uint32-array.js b/node_modules/core-js/modules/es6.typed.uint32-array.js
index ddfc22d88..41c9e7b80 100644
--- a/node_modules/core-js/modules/es6.typed.uint32-array.js
+++ b/node_modules/core-js/modules/es6.typed.uint32-array.js
@@ -1,4 +1,4 @@
-require('./$.typed-array')('Uint32', 4, function(init){
+require('./_typed-array')('Uint32', 4, function(init){
return function Uint32Array(data, byteOffset, length){
return init(this, data, byteOffset, length);
};
diff --git a/node_modules/core-js/modules/es6.typed.uint8-array.js b/node_modules/core-js/modules/es6.typed.uint8-array.js
index 7ab1e4df7..f794f86cf 100644
--- a/node_modules/core-js/modules/es6.typed.uint8-array.js
+++ b/node_modules/core-js/modules/es6.typed.uint8-array.js
@@ -1,4 +1,4 @@
-require('./$.typed-array')('Uint8', 1, function(init){
+require('./_typed-array')('Uint8', 1, function(init){
return function Uint8Array(data, byteOffset, length){
return init(this, data, byteOffset, length);
};
diff --git a/node_modules/core-js/modules/es6.typed.uint8-clamped-array.js b/node_modules/core-js/modules/es6.typed.uint8-clamped-array.js
index f85f9d5d7..b12304799 100644
--- a/node_modules/core-js/modules/es6.typed.uint8-clamped-array.js
+++ b/node_modules/core-js/modules/es6.typed.uint8-clamped-array.js
@@ -1,4 +1,4 @@
-require('./$.typed-array')('Uint8', 1, function(init){
+require('./_typed-array')('Uint8', 1, function(init){
return function Uint8ClampedArray(data, byteOffset, length){
return init(this, data, byteOffset, length);
};
diff --git a/node_modules/core-js/modules/es6.weak-map.js b/node_modules/core-js/modules/es6.weak-map.js
index 72a9b3244..4109db336 100644
--- a/node_modules/core-js/modules/es6.weak-map.js
+++ b/node_modules/core-js/modules/es6.weak-map.js
@@ -1,40 +1,53 @@
'use strict';
-var $ = require('./$')
- , redefine = require('./$.redefine')
- , weak = require('./$.collection-weak')
- , isObject = require('./$.is-object')
- , has = require('./$.has')
- , frozenStore = weak.frozenStore
- , WEAK = weak.WEAK
- , isExtensible = Object.isExtensible || isObject
- , tmp = {};
+var each = require('./_array-methods')(0)
+ , redefine = require('./_redefine')
+ , meta = require('./_meta')
+ , assign = require('./_object-assign')
+ , weak = require('./_collection-weak')
+ , isObject = require('./_is-object')
+ , getWeak = meta.getWeak
+ , isExtensible = Object.isExtensible
+ , uncaughtFrozenStore = weak.ufstore
+ , tmp = {}
+ , InternalMap;
-// 23.3 WeakMap Objects
-var $WeakMap = require('./$.collection')('WeakMap', function(get){
- return function WeakMap(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
-}, {
+var wrapper = function(get){
+ return function WeakMap(){
+ return get(this, arguments.length > 0 ? arguments[0] : undefined);
+ };
+};
+
+var methods = {
// 23.3.3.3 WeakMap.prototype.get(key)
get: function get(key){
if(isObject(key)){
- if(!isExtensible(key))return frozenStore(this).get(key);
- if(has(key, WEAK))return key[WEAK][this._i];
+ var data = getWeak(key);
+ if(data === true)return uncaughtFrozenStore(this).get(key);
+ return data ? data[this._i] : undefined;
}
},
// 23.3.3.5 WeakMap.prototype.set(key, value)
set: function set(key, value){
return weak.def(this, key, value);
}
-}, weak, true, true);
+};
+
+// 23.3 WeakMap Objects
+var $WeakMap = module.exports = require('./_collection')('WeakMap', wrapper, methods, weak, true, true);
// IE11 WeakMap frozen keys fix
if(new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){
- $.each.call(['delete', 'has', 'get', 'set'], function(key){
+ InternalMap = weak.getConstructor(wrapper);
+ assign(InternalMap.prototype, methods);
+ meta.NEED = true;
+ each(['delete', 'has', 'get', 'set'], function(key){
var proto = $WeakMap.prototype
, method = proto[key];
redefine(proto, key, function(a, b){
- // store frozen objects on leaky map
+ // store frozen objects on internal weakmap shim
if(isObject(a) && !isExtensible(a)){
- var result = frozenStore(this)[key](a, b);
+ if(!this._f)this._f = new InternalMap;
+ var result = this._f[key](a, b);
return key == 'set' ? this : result;
// store all the rest on native weakmap
} return method.call(this, a, b);
diff --git a/node_modules/core-js/modules/es6.weak-set.js b/node_modules/core-js/modules/es6.weak-set.js
index efdf1d76f..77d01b6ba 100644
--- a/node_modules/core-js/modules/es6.weak-set.js
+++ b/node_modules/core-js/modules/es6.weak-set.js
@@ -1,8 +1,8 @@
'use strict';
-var weak = require('./$.collection-weak');
+var weak = require('./_collection-weak');
// 23.4 WeakSet Objects
-require('./$.collection')('WeakSet', function(get){
+require('./_collection')('WeakSet', function(get){
return function WeakSet(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.4.3.1 WeakSet.prototype.add(value)
diff --git a/node_modules/core-js/modules/es7.array.includes.js b/node_modules/core-js/modules/es7.array.includes.js
index dcfad704d..6d5b00905 100644
--- a/node_modules/core-js/modules/es7.array.includes.js
+++ b/node_modules/core-js/modules/es7.array.includes.js
@@ -1,12 +1,12 @@
'use strict';
-var $export = require('./$.export')
- , $includes = require('./$.array-includes')(true);
+// https://github.com/tc39/Array.prototype.includes
+var $export = require('./_export')
+ , $includes = require('./_array-includes')(true);
$export($export.P, 'Array', {
- // https://github.com/domenic/Array.prototype.includes
includes: function includes(el /*, fromIndex = 0 */){
return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
}
});
-require('./$.add-to-unscopables')('includes'); \ No newline at end of file
+require('./_add-to-unscopables')('includes'); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es7.map.to-json.js b/node_modules/core-js/modules/es7.map.to-json.js
index 809370564..19f9b6d38 100644
--- a/node_modules/core-js/modules/es7.map.to-json.js
+++ b/node_modules/core-js/modules/es7.map.to-json.js
@@ -1,4 +1,4 @@
// https://github.com/DavidBruant/Map-Set.prototype.toJSON
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.P, 'Map', {toJSON: require('./$.collection-to-json')('Map')}); \ No newline at end of file
+$export($export.P + $export.R, 'Map', {toJSON: require('./_collection-to-json')('Map')}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es7.object.entries.js b/node_modules/core-js/modules/es7.object.entries.js
index fec1bc36c..cfc049dfa 100644
--- a/node_modules/core-js/modules/es7.object.entries.js
+++ b/node_modules/core-js/modules/es7.object.entries.js
@@ -1,6 +1,6 @@
-// http://goo.gl/XkBrjD
-var $export = require('./$.export')
- , $entries = require('./$.object-to-array')(true);
+// https://github.com/tc39/proposal-object-values-entries
+var $export = require('./_export')
+ , $entries = require('./_object-to-array')(true);
$export($export.S, 'Object', {
entries: function entries(it){
diff --git a/node_modules/core-js/modules/es7.object.get-own-property-descriptors.js b/node_modules/core-js/modules/es7.object.get-own-property-descriptors.js
index e4d80a34e..0242b7a0c 100644
--- a/node_modules/core-js/modules/es7.object.get-own-property-descriptors.js
+++ b/node_modules/core-js/modules/es7.object.get-own-property-descriptors.js
@@ -1,23 +1,19 @@
-// https://gist.github.com/WebReflection/9353781
-var $ = require('./$')
- , $export = require('./$.export')
- , ownKeys = require('./$.own-keys')
- , toIObject = require('./$.to-iobject')
- , createDesc = require('./$.property-desc');
+// https://github.com/tc39/proposal-object-getownpropertydescriptors
+var $export = require('./_export')
+ , ownKeys = require('./_own-keys')
+ , toIObject = require('./_to-iobject')
+ , gOPD = require('./_object-gopd')
+ , createProperty = require('./_create-property');
$export($export.S, 'Object', {
getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){
var O = toIObject(object)
- , setDesc = $.setDesc
- , getDesc = $.getDesc
+ , getDesc = gOPD.f
, keys = ownKeys(O)
, result = {}
, i = 0
- , key, D;
- while(keys.length > i){
- D = getDesc(O, key = keys[i++]);
- if(key in result)setDesc(result, key, createDesc(0, D));
- else result[key] = D;
- } return result;
+ , key;
+ while(keys.length > i)createProperty(result, key = keys[i++], getDesc(O, key));
+ return result;
}
}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es7.object.values.js b/node_modules/core-js/modules/es7.object.values.js
index 697e93545..42abd640b 100644
--- a/node_modules/core-js/modules/es7.object.values.js
+++ b/node_modules/core-js/modules/es7.object.values.js
@@ -1,6 +1,6 @@
-// http://goo.gl/XkBrjD
-var $export = require('./$.export')
- , $values = require('./$.object-to-array')(false);
+// https://github.com/tc39/proposal-object-values-entries
+var $export = require('./_export')
+ , $values = require('./_object-to-array')(false);
$export($export.S, 'Object', {
values: function values(it){
diff --git a/node_modules/core-js/modules/es7.regexp.escape.js b/node_modules/core-js/modules/es7.regexp.escape.js
deleted file mode 100644
index 9c4c542a1..000000000
--- a/node_modules/core-js/modules/es7.regexp.escape.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// https://github.com/benjamingr/RexExp.escape
-var $export = require('./$.export')
- , $re = require('./$.replacer')(/[\\^$*+?.()|[\]{}]/g, '\\$&');
-
-$export($export.S, 'RegExp', {escape: function escape(it){ return $re(it); }});
diff --git a/node_modules/core-js/modules/es7.set.to-json.js b/node_modules/core-js/modules/es7.set.to-json.js
index e632f2a37..fd68cb510 100644
--- a/node_modules/core-js/modules/es7.set.to-json.js
+++ b/node_modules/core-js/modules/es7.set.to-json.js
@@ -1,4 +1,4 @@
// https://github.com/DavidBruant/Map-Set.prototype.toJSON
-var $export = require('./$.export');
+var $export = require('./_export');
-$export($export.P, 'Set', {toJSON: require('./$.collection-to-json')('Set')}); \ No newline at end of file
+$export($export.P + $export.R, 'Set', {toJSON: require('./_collection-to-json')('Set')}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es7.string.at.js b/node_modules/core-js/modules/es7.string.at.js
index fee583bf6..208654e6c 100644
--- a/node_modules/core-js/modules/es7.string.at.js
+++ b/node_modules/core-js/modules/es7.string.at.js
@@ -1,7 +1,7 @@
'use strict';
// https://github.com/mathiasbynens/String.prototype.at
-var $export = require('./$.export')
- , $at = require('./$.string-at')(true);
+var $export = require('./_export')
+ , $at = require('./_string-at')(true);
$export($export.P, 'String', {
at: function at(pos){
diff --git a/node_modules/core-js/modules/es7.string.pad-left.js b/node_modules/core-js/modules/es7.string.pad-left.js
deleted file mode 100644
index 643621aad..000000000
--- a/node_modules/core-js/modules/es7.string.pad-left.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-var $export = require('./$.export')
- , $pad = require('./$.string-pad');
-
-$export($export.P, 'String', {
- padLeft: function padLeft(maxLength /*, fillString = ' ' */){
- return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
- }
-}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es7.string.pad-right.js b/node_modules/core-js/modules/es7.string.pad-right.js
deleted file mode 100644
index e42309602..000000000
--- a/node_modules/core-js/modules/es7.string.pad-right.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-var $export = require('./$.export')
- , $pad = require('./$.string-pad');
-
-$export($export.P, 'String', {
- padRight: function padRight(maxLength /*, fillString = ' ' */){
- return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
- }
-}); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es7.string.trim-left.js b/node_modules/core-js/modules/es7.string.trim-left.js
index dbaf63080..e58457714 100644
--- a/node_modules/core-js/modules/es7.string.trim-left.js
+++ b/node_modules/core-js/modules/es7.string.trim-left.js
@@ -1,7 +1,7 @@
'use strict';
// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
-require('./$.string-trim')('trimLeft', function($trim){
+require('./_string-trim')('trimLeft', function($trim){
return function trimLeft(){
return $trim(this, 1);
};
-}); \ No newline at end of file
+}, 'trimStart'); \ No newline at end of file
diff --git a/node_modules/core-js/modules/es7.string.trim-right.js b/node_modules/core-js/modules/es7.string.trim-right.js
index 6b02d394a..42a9ed33b 100644
--- a/node_modules/core-js/modules/es7.string.trim-right.js
+++ b/node_modules/core-js/modules/es7.string.trim-right.js
@@ -1,7 +1,7 @@
'use strict';
// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
-require('./$.string-trim')('trimRight', function($trim){
+require('./_string-trim')('trimRight', function($trim){
return function trimRight(){
return $trim(this, 2);
};
-}); \ No newline at end of file
+}, 'trimEnd'); \ No newline at end of file
diff --git a/node_modules/core-js/modules/js.array.statics.js b/node_modules/core-js/modules/js.array.statics.js
deleted file mode 100644
index 9536c2e48..000000000
--- a/node_modules/core-js/modules/js.array.statics.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// JavaScript 1.6 / Strawman array statics shim
-var $ = require('./$')
- , $export = require('./$.export')
- , $ctx = require('./$.ctx')
- , $Array = require('./$.core').Array || Array
- , statics = {};
-var setStatics = function(keys, length){
- $.each.call(keys.split(','), function(key){
- if(length == undefined && key in $Array)statics[key] = $Array[key];
- else if(key in [])statics[key] = $ctx(Function.call, [][key], length);
- });
-};
-setStatics('pop,reverse,shift,keys,values,entries', 1);
-setStatics('indexOf,every,some,forEach,map,filter,find,findIndex,includes', 3);
-setStatics('join,slice,concat,push,splice,unshift,sort,lastIndexOf,' +
- 'reduce,reduceRight,copyWithin,fill');
-$export($export.S, 'Array', statics); \ No newline at end of file
diff --git a/node_modules/core-js/modules/library/$.add-to-unscopables.js b/node_modules/core-js/modules/library/$.add-to-unscopables.js
deleted file mode 100644
index faf87af36..000000000
--- a/node_modules/core-js/modules/library/$.add-to-unscopables.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = function(){ /* empty */ }; \ No newline at end of file
diff --git a/node_modules/core-js/modules/library/$.collection.js b/node_modules/core-js/modules/library/$.collection.js
deleted file mode 100644
index 9d234d135..000000000
--- a/node_modules/core-js/modules/library/$.collection.js
+++ /dev/null
@@ -1,55 +0,0 @@
-'use strict';
-var $ = require('./$')
- , global = require('./$.global')
- , $export = require('./$.export')
- , fails = require('./$.fails')
- , hide = require('./$.hide')
- , redefineAll = require('./$.redefine-all')
- , forOf = require('./$.for-of')
- , strictNew = require('./$.strict-new')
- , isObject = require('./$.is-object')
- , setToStringTag = require('./$.set-to-string-tag')
- , DESCRIPTORS = require('./$.descriptors');
-
-module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){
- var Base = global[NAME]
- , C = Base
- , ADDER = IS_MAP ? 'set' : 'add'
- , proto = C && C.prototype
- , O = {};
- if(!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){
- new C().entries().next();
- }))){
- // create collection constructor
- C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
- redefineAll(C.prototype, methods);
- } else {
- C = wrapper(function(target, iterable){
- strictNew(target, C, NAME);
- target._c = new Base;
- if(iterable != undefined)forOf(iterable, IS_MAP, target[ADDER], target);
- });
- $.each.call('add,clear,delete,forEach,get,has,set,keys,values,entries'.split(','),function(KEY){
- var IS_ADDER = KEY == 'add' || KEY == 'set';
- if(KEY in proto && !(IS_WEAK && KEY == 'clear'))hide(C.prototype, KEY, function(a, b){
- if(!IS_ADDER && IS_WEAK && !isObject(a))return KEY == 'get' ? undefined : false;
- var result = this._c[KEY](a === 0 ? 0 : a, b);
- return IS_ADDER ? this : result;
- });
- });
- if('size' in proto)$.setDesc(C.prototype, 'size', {
- get: function(){
- return this._c.size;
- }
- });
- }
-
- setToStringTag(C, NAME);
-
- O[NAME] = C;
- $export($export.G + $export.W + $export.F, O);
-
- if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);
-
- return C;
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/library/$.export.js b/node_modules/core-js/modules/library/$.export.js
deleted file mode 100644
index 507b5a226..000000000
--- a/node_modules/core-js/modules/library/$.export.js
+++ /dev/null
@@ -1,46 +0,0 @@
-var global = require('./$.global')
- , core = require('./$.core')
- , ctx = require('./$.ctx')
- , PROTOTYPE = 'prototype';
-
-var $export = function(type, name, source){
- var IS_FORCED = type & $export.F
- , IS_GLOBAL = type & $export.G
- , IS_STATIC = type & $export.S
- , IS_PROTO = type & $export.P
- , IS_BIND = type & $export.B
- , IS_WRAP = type & $export.W
- , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
- , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
- , key, own, out;
- if(IS_GLOBAL)source = name;
- for(key in source){
- // contains in native
- own = !IS_FORCED && target && key in target;
- if(own && key in exports)continue;
- // export native or passed
- out = own ? target[key] : source[key];
- // prevent global pollution for namespaces
- exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
- // bind timers to global for call from export context
- : IS_BIND && own ? ctx(out, global)
- // wrap global constructors for prevent change them in library
- : IS_WRAP && target[key] == out ? (function(C){
- var F = function(param){
- return this instanceof C ? new C(param) : C(param);
- };
- F[PROTOTYPE] = C[PROTOTYPE];
- return F;
- // make static versions for prototype methods
- })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
- if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
- }
-};
-// type bitmap
-$export.F = 1; // forced
-$export.G = 2; // global
-$export.S = 4; // static
-$export.P = 8; // proto
-$export.B = 16; // bind
-$export.W = 32; // wrap
-module.exports = $export; \ No newline at end of file
diff --git a/node_modules/core-js/modules/library/$.library.js b/node_modules/core-js/modules/library/$.library.js
deleted file mode 100644
index 73f737c59..000000000
--- a/node_modules/core-js/modules/library/$.library.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = true; \ No newline at end of file
diff --git a/node_modules/core-js/modules/library/$.path.js b/node_modules/core-js/modules/library/$.path.js
deleted file mode 100644
index 27bb24b89..000000000
--- a/node_modules/core-js/modules/library/$.path.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./$.core'); \ No newline at end of file
diff --git a/node_modules/core-js/modules/library/$.redefine.js b/node_modules/core-js/modules/library/$.redefine.js
deleted file mode 100644
index 57453fd17..000000000
--- a/node_modules/core-js/modules/library/$.redefine.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./$.hide'); \ No newline at end of file
diff --git a/node_modules/core-js/modules/library/$.set-species.js b/node_modules/core-js/modules/library/$.set-species.js
deleted file mode 100644
index f6720c36d..000000000
--- a/node_modules/core-js/modules/library/$.set-species.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-var core = require('./$.core')
- , $ = require('./$')
- , DESCRIPTORS = require('./$.descriptors')
- , SPECIES = require('./$.wks')('species');
-
-module.exports = function(KEY){
- var C = core[KEY];
- if(DESCRIPTORS && C && !C[SPECIES])$.setDesc(C, SPECIES, {
- configurable: true,
- get: function(){ return this; }
- });
-}; \ No newline at end of file
diff --git a/node_modules/core-js/modules/library/es6.regexp.constructor.js b/node_modules/core-js/modules/library/es6.regexp.constructor.js
index 087d9beb9..7313c52b3 100644
--- a/node_modules/core-js/modules/library/es6.regexp.constructor.js
+++ b/node_modules/core-js/modules/library/es6.regexp.constructor.js
@@ -1 +1 @@
-require('./$.set-species')('RegExp'); \ No newline at end of file
+require('./_set-species')('RegExp'); \ No newline at end of file
diff --git a/node_modules/core-js/modules/library/web.dom.iterable.js b/node_modules/core-js/modules/library/web.dom.iterable.js
index 988c6da20..e56371a9d 100644
--- a/node_modules/core-js/modules/library/web.dom.iterable.js
+++ b/node_modules/core-js/modules/library/web.dom.iterable.js
@@ -1,3 +1,13 @@
require('./es6.array.iterator');
-var Iterators = require('./$.iterators');
-Iterators.NodeList = Iterators.HTMLCollection = Iterators.Array; \ No newline at end of file
+var global = require('./_global')
+ , hide = require('./_hide')
+ , Iterators = require('./_iterators')
+ , TO_STRING_TAG = require('./_wks')('toStringTag');
+
+for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
+ var NAME = collections[i]
+ , Collection = global[NAME]
+ , proto = Collection && Collection.prototype;
+ if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);
+ Iterators[NAME] = Iterators.Array;
+} \ No newline at end of file
diff --git a/node_modules/core-js/modules/web.dom.iterable.js b/node_modules/core-js/modules/web.dom.iterable.js
index 94099b8fe..a5a4c08eb 100644
--- a/node_modules/core-js/modules/web.dom.iterable.js
+++ b/node_modules/core-js/modules/web.dom.iterable.js
@@ -1,12 +1,22 @@
-require('./es6.array.iterator');
-var global = require('./$.global')
- , hide = require('./$.hide')
- , Iterators = require('./$.iterators')
- , ITERATOR = require('./$.wks')('iterator')
- , NL = global.NodeList
- , HTC = global.HTMLCollection
- , NLProto = NL && NL.prototype
- , HTCProto = HTC && HTC.prototype
- , ArrayValues = Iterators.NodeList = Iterators.HTMLCollection = Iterators.Array;
-if(NLProto && !NLProto[ITERATOR])hide(NLProto, ITERATOR, ArrayValues);
-if(HTCProto && !HTCProto[ITERATOR])hide(HTCProto, ITERATOR, ArrayValues); \ No newline at end of file
+var $iterators = require('./es6.array.iterator')
+ , redefine = require('./_redefine')
+ , global = require('./_global')
+ , hide = require('./_hide')
+ , Iterators = require('./_iterators')
+ , wks = require('./_wks')
+ , ITERATOR = wks('iterator')
+ , TO_STRING_TAG = wks('toStringTag')
+ , ArrayValues = Iterators.Array;
+
+for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
+ var NAME = collections[i]
+ , Collection = global[NAME]
+ , proto = Collection && Collection.prototype
+ , key;
+ if(proto){
+ if(!proto[ITERATOR])hide(proto, ITERATOR, ArrayValues);
+ if(!proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);
+ Iterators[NAME] = ArrayValues;
+ for(key in $iterators)if(!proto[key])redefine(proto, key, $iterators[key], true);
+ }
+} \ No newline at end of file
diff --git a/node_modules/core-js/modules/web.immediate.js b/node_modules/core-js/modules/web.immediate.js
index fa64f08ec..5b9463775 100644
--- a/node_modules/core-js/modules/web.immediate.js
+++ b/node_modules/core-js/modules/web.immediate.js
@@ -1,5 +1,5 @@
-var $export = require('./$.export')
- , $task = require('./$.task');
+var $export = require('./_export')
+ , $task = require('./_task');
$export($export.G + $export.B, {
setImmediate: $task.set,
clearImmediate: $task.clear
diff --git a/node_modules/core-js/modules/web.timers.js b/node_modules/core-js/modules/web.timers.js
index 74b72019c..1a1da57f2 100644
--- a/node_modules/core-js/modules/web.timers.js
+++ b/node_modules/core-js/modules/web.timers.js
@@ -1,8 +1,8 @@
// ie9- setTimeout & setInterval additional parameters fix
-var global = require('./$.global')
- , $export = require('./$.export')
- , invoke = require('./$.invoke')
- , partial = require('./$.partial')
+var global = require('./_global')
+ , $export = require('./_export')
+ , invoke = require('./_invoke')
+ , partial = require('./_partial')
, navigator = global.navigator
, MSIE = !!navigator && /MSIE .\./.test(navigator.userAgent); // <- dirty ie9- check
var wrap = function(set){
diff --git a/node_modules/core-js/package.json b/node_modules/core-js/package.json
index 65cfc6504..ed659f8d2 100644
--- a/node_modules/core-js/package.json
+++ b/node_modules/core-js/package.json
@@ -1,48 +1,57 @@
{
"name": "core-js",
"description": "Standard library",
- "version": "1.2.7",
+ "version": "2.4.1",
"repository": {
"type": "git",
"url": "https://github.com/zloirock/core-js.git"
},
"main": "index.js",
"devDependencies": {
- "webpack": "1.12.x",
+ "webpack": "1.13.x",
"LiveScript": "1.3.x",
- "grunt": "0.4.x",
- "grunt-cli": "0.1.x",
- "grunt-livescript": "0.5.x",
- "grunt-contrib-uglify": "0.10.x",
- "grunt-contrib-watch": "0.6.x",
- "grunt-contrib-clean": "0.6.x",
- "grunt-contrib-copy": "0.8.x",
- "grunt-karma": "0.12.x",
- "karma": "0.13.x",
- "karma-qunit": "0.1.x",
- "karma-chrome-launcher": "0.2.x",
- "karma-ie-launcher": "0.2.x",
- "karma-firefox-launcher": "0.1.x",
- "karma-phantomjs-launcher": "0.2.x",
+ "grunt": "1.0.x",
+ "grunt-cli": "1.2.x",
+ "grunt-livescript": "0.6.x",
+ "grunt-contrib-uglify": "1.0.x",
+ "grunt-contrib-watch": "1.0.x",
+ "grunt-contrib-clean": "1.0.x",
+ "grunt-contrib-copy": "1.0.x",
+ "grunt-karma": "2.0.x",
+ "karma": "1.1.x",
+ "karma-qunit": "1.1.x",
+ "karma-chrome-launcher": "1.0.x",
+ "karma-ie-launcher": "1.0.x",
+ "karma-firefox-launcher": "1.0.x",
+ "karma-phantomjs-launcher": "1.0.x",
+ "qunitjs": "2.0.x",
+ "phantomjs-prebuilt": "2.1.x",
"promises-aplus-tests": "2.1.x",
- "eslint": "1.9.x",
- "qunitjs": "1.23.x",
- "phantomjs": "1.9.x"
+ "es-observable-tests": "0.2.x",
+ "eslint": "3.1.x",
+ "temp": "0.8.x"
},
"scripts": {
"grunt": "grunt",
- "lint": "eslint es5 es6 es7 js web core fn modules",
+ "lint": "eslint es5 es6 es7 stage web core fn modules",
"promises-tests": "promises-aplus-tests tests/promises-aplus/adapter",
- "test": "npm run lint && npm run grunt livescript client karma:continuous library karma:continuous-library && npm run promises-tests && lsc tests/commonjs"
+ "observables-tests": "node tests/observables/adapter && node tests/observables/adapter-library",
+ "test": "npm run lint && npm run grunt livescript client karma:default && npm run grunt library karma:library && npm run promises-tests && npm run observables-tests && lsc tests/commonjs"
},
"license": "MIT",
"keywords": [
+ "ES3",
+ "ECMAScript 3",
"ES5",
"ECMAScript 5",
"ES6",
+ "ES2015",
"ECMAScript 6",
+ "ECMAScript 2015",
"ES7",
+ "ES2016",
"ECMAScript 7",
+ "ECMAScript 2016",
"Harmony",
"Strawman",
"Map",
@@ -51,9 +60,10 @@
"WeakSet",
"Promise",
"Symbol",
- "Array generics",
+ "TypedArray",
"setImmediate",
"Dict",
- "partial application"
+ "polyfill",
+ "shim"
]
} \ No newline at end of file
diff --git a/node_modules/core-js/shim.js b/node_modules/core-js/shim.js
index 6d38d2e27..6db125683 100644
--- a/node_modules/core-js/shim.js
+++ b/node_modules/core-js/shim.js
@@ -1,22 +1,29 @@
-require('./modules/es5');
require('./modules/es6.symbol');
-require('./modules/es6.object.assign');
-require('./modules/es6.object.is');
-require('./modules/es6.object.set-prototype-of');
-require('./modules/es6.object.to-string');
+require('./modules/es6.object.create');
+require('./modules/es6.object.define-property');
+require('./modules/es6.object.define-properties');
+require('./modules/es6.object.get-own-property-descriptor');
+require('./modules/es6.object.get-prototype-of');
+require('./modules/es6.object.keys');
+require('./modules/es6.object.get-own-property-names');
require('./modules/es6.object.freeze');
require('./modules/es6.object.seal');
require('./modules/es6.object.prevent-extensions');
require('./modules/es6.object.is-frozen');
require('./modules/es6.object.is-sealed');
require('./modules/es6.object.is-extensible');
-require('./modules/es6.object.get-own-property-descriptor');
-require('./modules/es6.object.get-prototype-of');
-require('./modules/es6.object.keys');
-require('./modules/es6.object.get-own-property-names');
+require('./modules/es6.object.assign');
+require('./modules/es6.object.is');
+require('./modules/es6.object.set-prototype-of');
+require('./modules/es6.object.to-string');
+require('./modules/es6.function.bind');
require('./modules/es6.function.name');
require('./modules/es6.function.has-instance');
+require('./modules/es6.parse-int');
+require('./modules/es6.parse-float');
require('./modules/es6.number.constructor');
+require('./modules/es6.number.to-fixed');
+require('./modules/es6.number.to-precision');
require('./modules/es6.number.epsilon');
require('./modules/es6.number.is-finite');
require('./modules/es6.number.is-integer');
@@ -52,15 +59,47 @@ require('./modules/es6.string.ends-with');
require('./modules/es6.string.includes');
require('./modules/es6.string.repeat');
require('./modules/es6.string.starts-with');
+require('./modules/es6.string.anchor');
+require('./modules/es6.string.big');
+require('./modules/es6.string.blink');
+require('./modules/es6.string.bold');
+require('./modules/es6.string.fixed');
+require('./modules/es6.string.fontcolor');
+require('./modules/es6.string.fontsize');
+require('./modules/es6.string.italics');
+require('./modules/es6.string.link');
+require('./modules/es6.string.small');
+require('./modules/es6.string.strike');
+require('./modules/es6.string.sub');
+require('./modules/es6.string.sup');
+require('./modules/es6.date.now');
+require('./modules/es6.date.to-json');
+require('./modules/es6.date.to-iso-string');
+require('./modules/es6.date.to-string');
+require('./modules/es6.date.to-primitive');
+require('./modules/es6.array.is-array');
require('./modules/es6.array.from');
require('./modules/es6.array.of');
-require('./modules/es6.array.iterator');
-require('./modules/es6.array.species');
+require('./modules/es6.array.join');
+require('./modules/es6.array.slice');
+require('./modules/es6.array.sort');
+require('./modules/es6.array.for-each');
+require('./modules/es6.array.map');
+require('./modules/es6.array.filter');
+require('./modules/es6.array.some');
+require('./modules/es6.array.every');
+require('./modules/es6.array.reduce');
+require('./modules/es6.array.reduce-right');
+require('./modules/es6.array.index-of');
+require('./modules/es6.array.last-index-of');
require('./modules/es6.array.copy-within');
require('./modules/es6.array.fill');
require('./modules/es6.array.find');
require('./modules/es6.array.find-index');
+require('./modules/es6.array.species');
+require('./modules/es6.array.iterator');
require('./modules/es6.regexp.constructor');
+require('./modules/es6.regexp.to-string');
require('./modules/es6.regexp.flags');
require('./modules/es6.regexp.match');
require('./modules/es6.regexp.replace');
@@ -71,6 +110,17 @@ require('./modules/es6.map');
require('./modules/es6.set');
require('./modules/es6.weak-map');
require('./modules/es6.weak-set');
+require('./modules/es6.typed.array-buffer');
+require('./modules/es6.typed.data-view');
+require('./modules/es6.typed.int8-array');
+require('./modules/es6.typed.uint8-array');
+require('./modules/es6.typed.uint8-clamped-array');
+require('./modules/es6.typed.int16-array');
+require('./modules/es6.typed.uint16-array');
+require('./modules/es6.typed.int32-array');
+require('./modules/es6.typed.uint32-array');
+require('./modules/es6.typed.float32-array');
+require('./modules/es6.typed.float64-array');
require('./modules/es6.reflect.apply');
require('./modules/es6.reflect.construct');
require('./modules/es6.reflect.define-property');
@@ -87,18 +137,40 @@ require('./modules/es6.reflect.set');
require('./modules/es6.reflect.set-prototype-of');
require('./modules/es7.array.includes');
require('./modules/es7.string.at');
-require('./modules/es7.string.pad-left');
-require('./modules/es7.string.pad-right');
+require('./modules/es7.string.pad-start');
+require('./modules/es7.string.pad-end');
require('./modules/es7.string.trim-left');
require('./modules/es7.string.trim-right');
-require('./modules/es7.regexp.escape');
+require('./modules/es7.string.match-all');
+require('./modules/es7.symbol.async-iterator');
+require('./modules/es7.symbol.observable');
require('./modules/es7.object.get-own-property-descriptors');
require('./modules/es7.object.values');
require('./modules/es7.object.entries');
+require('./modules/es7.object.define-getter');
+require('./modules/es7.object.define-setter');
+require('./modules/es7.object.lookup-getter');
+require('./modules/es7.object.lookup-setter');
require('./modules/es7.map.to-json');
require('./modules/es7.set.to-json');
-require('./modules/js.array.statics');
+require('./modules/es7.system.global');
+require('./modules/es7.error.is-error');
+require('./modules/es7.math.iaddh');
+require('./modules/es7.math.isubh');
+require('./modules/es7.math.imulh');
+require('./modules/es7.math.umulh');
+require('./modules/es7.reflect.define-metadata');
+require('./modules/es7.reflect.delete-metadata');
+require('./modules/es7.reflect.get-metadata');
+require('./modules/es7.reflect.get-metadata-keys');
+require('./modules/es7.reflect.get-own-metadata');
+require('./modules/es7.reflect.get-own-metadata-keys');
+require('./modules/es7.reflect.has-metadata');
+require('./modules/es7.reflect.has-own-metadata');
+require('./modules/es7.reflect.metadata');
+require('./modules/es7.asap');
+require('./modules/es7.observable');
require('./modules/web.timers');
require('./modules/web.immediate');
require('./modules/web.dom.iterable');
-module.exports = require('./modules/$.core'); \ No newline at end of file
+module.exports = require('./modules/_core'); \ No newline at end of file
diff --git a/node_modules/core-js/web/dom.js b/node_modules/core-js/web/dom.js
deleted file mode 100644
index 9b448cfea..000000000
--- a/node_modules/core-js/web/dom.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/web.dom.iterable');
-module.exports = require('../modules/$.core'); \ No newline at end of file
diff --git a/node_modules/core-js/web/immediate.js b/node_modules/core-js/web/immediate.js
index e4e5493bf..244ebb16f 100644
--- a/node_modules/core-js/web/immediate.js
+++ b/node_modules/core-js/web/immediate.js
@@ -1,2 +1,2 @@
require('../modules/web.immediate');
-module.exports = require('../modules/$.core'); \ No newline at end of file
+module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/core-js/web/index.js b/node_modules/core-js/web/index.js
index 6c3221e24..6687d571e 100644
--- a/node_modules/core-js/web/index.js
+++ b/node_modules/core-js/web/index.js
@@ -1,4 +1,4 @@
require('../modules/web.timers');
require('../modules/web.immediate');
require('../modules/web.dom.iterable');
-module.exports = require('../modules/$.core'); \ No newline at end of file
+module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/core-js/web/timers.js b/node_modules/core-js/web/timers.js
index 763ea44e9..2c66f4387 100644
--- a/node_modules/core-js/web/timers.js
+++ b/node_modules/core-js/web/timers.js
@@ -1,2 +1,2 @@
require('../modules/web.timers');
-module.exports = require('../modules/$.core'); \ No newline at end of file
+module.exports = require('../modules/_core'); \ No newline at end of file
diff --git a/node_modules/deep-is/.npmignore b/node_modules/deep-is/.npmignore
deleted file mode 100644
index 3c3629e64..000000000
--- a/node_modules/deep-is/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/node_modules/deep-is/.travis.yml b/node_modules/deep-is/.travis.yml
deleted file mode 100644
index d523c5f56..000000000
--- a/node_modules/deep-is/.travis.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-language: node_js
-node_js:
- - 0.4
- - 0.6
- - 0.8
- - 0.10
diff --git a/node_modules/deep-is/LICENSE b/node_modules/deep-is/LICENSE
deleted file mode 100644
index c38f84073..000000000
--- a/node_modules/deep-is/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2012, 2013 Thorsten Lorenz <thlorenz@gmx.de>
-Copyright (c) 2012 James Halliday <mail@substack.net>
-Copyright (c) 2009 Thomas Robinson <280north.com>
-
-This software is released under the MIT license:
-
-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.
diff --git a/node_modules/deep-is/README.markdown b/node_modules/deep-is/README.markdown
deleted file mode 100644
index eb69a83bd..000000000
--- a/node_modules/deep-is/README.markdown
+++ /dev/null
@@ -1,70 +0,0 @@
-deep-is
-==========
-
-Node's `assert.deepEqual() algorithm` as a standalone module. Exactly like
-[deep-equal](https://github.com/substack/node-deep-equal) except for the fact that `deepEqual(NaN, NaN) === true`.
-
-This module is around [5 times faster](https://gist.github.com/2790507)
-than wrapping `assert.deepEqual()` in a `try/catch`.
-
-[![browser support](http://ci.testling.com/thlorenz/deep-is.png)](http://ci.testling.com/thlorenz/deep-is)
-
-[![build status](https://secure.travis-ci.org/thlorenz/deep-is.png)](http://travis-ci.org/thlorenz/deep-is)
-
-example
-=======
-
-``` js
-var equal = require('deep-is');
-console.dir([
- equal(
- { a : [ 2, 3 ], b : [ 4 ] },
- { a : [ 2, 3 ], b : [ 4 ] }
- ),
- equal(
- { x : 5, y : [6] },
- { x : 5, y : 6 }
- )
-]);
-```
-
-methods
-=======
-
-var deepIs = require('deep-is')
-
-deepIs(a, b)
----------------
-
-Compare objects `a` and `b`, returning whether they are equal according to a
-recursive equality algorithm.
-
-install
-=======
-
-With [npm](http://npmjs.org) do:
-
-```
-npm install deep-is
-```
-
-test
-====
-
-With [npm](http://npmjs.org) do:
-
-```
-npm test
-```
-
-license
-=======
-
-Copyright (c) 2012, 2013 Thorsten Lorenz <thlorenz@gmx.de>
-Copyright (c) 2012 James Halliday <mail@substack.net>
-
-Derived largely from node's assert module, which has the copyright statement:
-
-Copyright (c) 2009 Thomas Robinson <280north.com>
-
-Released under the MIT license, see LICENSE for details.
diff --git a/node_modules/deep-is/example/cmp.js b/node_modules/deep-is/example/cmp.js
deleted file mode 100644
index 67014b88d..000000000
--- a/node_modules/deep-is/example/cmp.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var equal = require('../');
-console.dir([
- equal(
- { a : [ 2, 3 ], b : [ 4 ] },
- { a : [ 2, 3 ], b : [ 4 ] }
- ),
- equal(
- { x : 5, y : [6] },
- { x : 5, y : 6 }
- )
-]);
diff --git a/node_modules/deep-is/index.js b/node_modules/deep-is/index.js
deleted file mode 100644
index 506fe2795..000000000
--- a/node_modules/deep-is/index.js
+++ /dev/null
@@ -1,102 +0,0 @@
-var pSlice = Array.prototype.slice;
-var Object_keys = typeof Object.keys === 'function'
- ? Object.keys
- : function (obj) {
- var keys = [];
- for (var key in obj) keys.push(key);
- return keys;
- }
-;
-
-var deepEqual = module.exports = function (actual, expected) {
- // enforce Object.is +0 !== -0
- if (actual === 0 && expected === 0) {
- return areZerosEqual(actual, expected);
-
- // 7.1. All identical values are equivalent, as determined by ===.
- } else if (actual === expected) {
- return true;
-
- } else if (actual instanceof Date && expected instanceof Date) {
- return actual.getTime() === expected.getTime();
-
- } else if (isNumberNaN(actual)) {
- return isNumberNaN(expected);
-
- // 7.3. Other pairs that do not both pass typeof value == 'object',
- // equivalence is determined by ==.
- } else if (typeof actual != 'object' && typeof expected != 'object') {
- return actual == expected;
-
- // 7.4. For all other Object pairs, including Array objects, equivalence is
- // determined by having the same number of owned properties (as verified
- // with Object.prototype.hasOwnProperty.call), the same set of keys
- // (although not necessarily the same order), equivalent values for every
- // corresponding key, and an identical 'prototype' property. Note: this
- // accounts for both named and indexed properties on Arrays.
- } else {
- return objEquiv(actual, expected);
- }
-};
-
-function isUndefinedOrNull(value) {
- return value === null || value === undefined;
-}
-
-function isArguments(object) {
- return Object.prototype.toString.call(object) == '[object Arguments]';
-}
-
-function isNumberNaN(value) {
- // NaN === NaN -> false
- return typeof value == 'number' && value !== value;
-}
-
-function areZerosEqual(zeroA, zeroB) {
- // (1 / +0|0) -> Infinity, but (1 / -0) -> -Infinity and (Infinity !== -Infinity)
- return (1 / zeroA) === (1 / zeroB);
-}
-
-function objEquiv(a, b) {
- if (isUndefinedOrNull(a) || isUndefinedOrNull(b))
- return false;
-
- // an identical 'prototype' property.
- if (a.prototype !== b.prototype) return false;
- //~~~I've managed to break Object.keys through screwy arguments passing.
- // Converting to array solves the problem.
- if (isArguments(a)) {
- if (!isArguments(b)) {
- return false;
- }
- a = pSlice.call(a);
- b = pSlice.call(b);
- return deepEqual(a, b);
- }
- try {
- var ka = Object_keys(a),
- kb = Object_keys(b),
- key, i;
- } catch (e) {//happens when one is a string literal and the other isn't
- return false;
- }
- // having the same number of owned properties (keys incorporates
- // hasOwnProperty)
- if (ka.length != kb.length)
- return false;
- //the same set of keys (although not necessarily the same order),
- ka.sort();
- kb.sort();
- //~~~cheap key test
- for (i = ka.length - 1; i >= 0; i--) {
- if (ka[i] != kb[i])
- return false;
- }
- //equivalent values for every corresponding key, and
- //~~~possibly expensive deep test
- for (i = ka.length - 1; i >= 0; i--) {
- key = ka[i];
- if (!deepEqual(a[key], b[key])) return false;
- }
- return true;
-}
diff --git a/node_modules/deep-is/package.json b/node_modules/deep-is/package.json
deleted file mode 100644
index 63628f0d0..000000000
--- a/node_modules/deep-is/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "name": "deep-is",
- "version": "0.1.3",
- "description": "node's assert.deepEqual algorithm except for NaN being equal to NaN",
- "main": "index.js",
- "directories": {
- "lib": ".",
- "example": "example",
- "test": "test"
- },
- "scripts": {
- "test": "tape test/*.js"
- },
- "devDependencies": {
- "tape": "~1.0.2"
- },
- "repository": {
- "type": "git",
- "url": "http://github.com/thlorenz/deep-is.git"
- },
- "keywords": [
- "equality",
- "equal",
- "compare"
- ],
- "author": {
- "name": "Thorsten Lorenz",
- "email": "thlorenz@gmx.de",
- "url": "http://thlorenz.com"
- },
- "license": {
- "type": "MIT",
- "url": "https://github.com/thlorenz/deep-is/blob/master/LICENSE"
- },
- "testling": {
- "files": "test/*.js",
- "browsers": {
- "ie": [
- 6,
- 7,
- 8,
- 9
- ],
- "ff": [
- 3.5,
- 10,
- 15
- ],
- "chrome": [
- 10,
- 22
- ],
- "safari": [
- 5.1
- ],
- "opera": [
- 12
- ]
- }
- }
-}
diff --git a/node_modules/deep-is/test/NaN.js b/node_modules/deep-is/test/NaN.js
deleted file mode 100644
index ddaa5a77b..000000000
--- a/node_modules/deep-is/test/NaN.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var test = require('tape');
-var equal = require('../');
-
-test('NaN and 0 values', function (t) {
- t.ok(equal(NaN, NaN));
- t.notOk(equal(0, NaN));
- t.ok(equal(0, 0));
- t.notOk(equal(0, 1));
- t.end();
-});
-
-
-test('nested NaN values', function (t) {
- t.ok(equal([ NaN, 1, NaN ], [ NaN, 1, NaN ]));
- t.end();
-});
diff --git a/node_modules/deep-is/test/cmp.js b/node_modules/deep-is/test/cmp.js
deleted file mode 100644
index 307101341..000000000
--- a/node_modules/deep-is/test/cmp.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var test = require('tape');
-var equal = require('../');
-
-test('equal', function (t) {
- t.ok(equal(
- { a : [ 2, 3 ], b : [ 4 ] },
- { a : [ 2, 3 ], b : [ 4 ] }
- ));
- t.end();
-});
-
-test('not equal', function (t) {
- t.notOk(equal(
- { x : 5, y : [6] },
- { x : 5, y : 6 }
- ));
- t.end();
-});
-
-test('nested nulls', function (t) {
- t.ok(equal([ null, null, null ], [ null, null, null ]));
- t.end();
-});
diff --git a/node_modules/deep-is/test/neg-vs-pos-0.js b/node_modules/deep-is/test/neg-vs-pos-0.js
deleted file mode 100644
index ac26130e6..000000000
--- a/node_modules/deep-is/test/neg-vs-pos-0.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var test = require('tape');
-var equal = require('../');
-
-test('0 values', function (t) {
- t.ok(equal( 0, 0), ' 0 === 0');
- t.ok(equal( 0, +0), ' 0 === +0');
- t.ok(equal(+0, +0), '+0 === +0');
- t.ok(equal(-0, -0), '-0 === -0');
-
- t.notOk(equal(-0, 0), '-0 !== 0');
- t.notOk(equal(-0, +0), '-0 !== +0');
-
- t.end();
-});
-
diff --git a/node_modules/del/index.js b/node_modules/del/index.js
deleted file mode 100644
index 0ceff9629..000000000
--- a/node_modules/del/index.js
+++ /dev/null
@@ -1,73 +0,0 @@
-'use strict';
-var path = require('path');
-var globby = require('globby');
-var isPathCwd = require('is-path-cwd');
-var isPathInCwd = require('is-path-in-cwd');
-var objectAssign = require('object-assign');
-var Promise = require('pinkie-promise');
-var pify = require('pify');
-var rimraf = require('rimraf');
-
-var rimrafP = pify(rimraf, Promise);
-
-function safeCheck(file) {
- if (isPathCwd(file)) {
- throw new Error('Cannot delete the current working directory. Can be overriden with the `force` option.');
- }
-
- if (!isPathInCwd(file)) {
- throw new Error('Cannot delete files/folders outside the current working directory. Can be overriden with the `force` option.');
- }
-}
-
-module.exports = function (patterns, opts) {
- opts = objectAssign({}, opts);
-
- var force = opts.force;
- delete opts.force;
-
- var dryRun = opts.dryRun;
- delete opts.dryRun;
-
- return globby(patterns, opts).then(function (files) {
- return Promise.all(files.map(function (file) {
- if (!force) {
- safeCheck(file);
- }
-
- file = path.resolve(opts.cwd || '', file);
-
- if (dryRun) {
- return Promise.resolve(file);
- }
-
- return rimrafP(file).then(function () {
- return file;
- });
- }));
- });
-};
-
-module.exports.sync = function (patterns, opts) {
- opts = objectAssign({}, opts);
-
- var force = opts.force;
- delete opts.force;
-
- var dryRun = opts.dryRun;
- delete opts.dryRun;
-
- return globby.sync(patterns, opts).map(function (file) {
- if (!force) {
- safeCheck(file);
- }
-
- file = path.resolve(opts.cwd || '', file);
-
- if (!dryRun) {
- rimraf.sync(file);
- }
-
- return file;
- });
-};
diff --git a/node_modules/del/license b/node_modules/del/license
deleted file mode 100644
index 654d0bfe9..000000000
--- a/node_modules/del/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
-
-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.
diff --git a/node_modules/del/node_modules/.bin/rimraf b/node_modules/del/node_modules/.bin/rimraf
deleted file mode 120000
index 632d6da23..000000000
--- a/node_modules/del/node_modules/.bin/rimraf
+++ /dev/null
@@ -1 +0,0 @@
-../../../rimraf/bin.js \ No newline at end of file
diff --git a/node_modules/del/package.json b/node_modules/del/package.json
deleted file mode 100644
index acacf9f80..000000000
--- a/node_modules/del/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "name": "del",
- "version": "2.2.2",
- "description": "Delete files and folders",
- "license": "MIT",
- "repository": "sindresorhus/del",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "delete",
- "del",
- "remove",
- "destroy",
- "trash",
- "unlink",
- "clean",
- "cleaning",
- "cleanup",
- "rm",
- "rmrf",
- "rimraf",
- "rmdir",
- "glob",
- "gulpfriendly",
- "file",
- "files",
- "folder",
- "dir",
- "directory",
- "fs",
- "filesystem"
- ],
- "dependencies": {
- "globby": "^5.0.0",
- "is-path-cwd": "^1.0.0",
- "is-path-in-cwd": "^1.0.0",
- "object-assign": "^4.0.1",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0",
- "rimraf": "^2.2.8"
- },
- "devDependencies": {
- "ava": "*",
- "fs-extra": "^0.30.0",
- "path-exists": "^2.0.0",
- "tempfile": "^1.1.1",
- "xo": "*"
- }
-}
diff --git a/node_modules/del/readme.md b/node_modules/del/readme.md
deleted file mode 100644
index c0c121923..000000000
--- a/node_modules/del/readme.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# del [![Build Status](https://travis-ci.org/sindresorhus/del.svg?branch=master)](https://travis-ci.org/sindresorhus/del)
-
-> Delete files and folders using [globs](https://github.com/isaacs/minimatch#usage)
-
-Pretty much [rimraf](https://github.com/isaacs/rimraf) with a Promise API and support for multiple files and globbing. It also protects you against deleting the current working directory and above.
-
----
-
-<p align="center"><b>🔥 Want to strengthen your core JavaScript skills and master ES6?</b><br>I would personally recommend this awesome <a href="https://ES6.io/friend/AWESOME">ES6 course</a> by Wes Bos.</p>
-
----
-
-
-## Install
-
-```
-$ npm install --save del
-```
-
-
-## Usage
-
-```js
-const del = require('del');
-
-del(['tmp/*.js', '!tmp/unicorn.js']).then(paths => {
- console.log('Deleted files and folders:\n', paths.join('\n'));
-});
-```
-
-
-## Beware
-
-The glob pattern `**` matches all children and *the parent*.
-
-So this won't work:
-
-```js
-del.sync(['public/assets/**', '!public/assets/goat.png']);
-```
-
-You have to explicitly ignore the parent directories too:
-
-```js
-del.sync(['public/assets/**', '!public/assets', '!public/assets/goat.png']);
-```
-
-Suggestions on how to improve this welcome!
-
-
-## API
-
-### del(patterns, [options])
-
-Returns a promise for an array of deleted paths.
-
-### del.sync(patterns, [options])
-
-Returns an array of deleted paths.
-
-#### patterns
-
-Type: `string`, `array`
-
-See supported minimatch [patterns](https://github.com/isaacs/minimatch#usage).
-
-- [Pattern examples with expected matches](https://github.com/sindresorhus/multimatch/blob/master/test.js)
-- [Quick globbing pattern overview](https://github.com/sindresorhus/multimatch#globbing-patterns)
-
-#### options
-
-Type: `object`
-
-See the `node-glob` [options](https://github.com/isaacs/node-glob#options).
-
-##### force
-
-Type: `boolean`
-Default: `false`
-
-Allow deleting the current working directory and outside.
-
-##### dryRun
-
-Type: `boolean`
-Default: `false`
-
-See what would be deleted.
-
-```js
-const del = require('del');
-
-del(['tmp/*.js'], {dryRun: true}).then(paths => {
- console.log('Files and folders that would be deleted:\n', paths.join('\n'));
-});
-```
-
-
-## CLI
-
-See [del-cli](https://github.com/sindresorhus/del-cli) for a CLI for this module and [trash-cli](https://github.com/sindresorhus/trash-cli) for a safe version that is suitable for running by hand.
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/depd/History.md b/node_modules/depd/History.md
deleted file mode 100644
index ace117154..000000000
--- a/node_modules/depd/History.md
+++ /dev/null
@@ -1,84 +0,0 @@
-1.1.0 / 2015-09-14
-==================
-
- * Enable strict mode in more places
- * Support io.js 3.x
- * Support io.js 2.x
- * Support web browser loading
- - Requires bundler like Browserify or webpack
-
-1.0.1 / 2015-04-07
-==================
-
- * Fix `TypeError`s when under `'use strict'` code
- * Fix useless type name on auto-generated messages
- * Support io.js 1.x
- * Support Node.js 0.12
-
-1.0.0 / 2014-09-17
-==================
-
- * No changes
-
-0.4.5 / 2014-09-09
-==================
-
- * Improve call speed to functions using the function wrapper
- * Support Node.js 0.6
-
-0.4.4 / 2014-07-27
-==================
-
- * Work-around v8 generating empty stack traces
-
-0.4.3 / 2014-07-26
-==================
-
- * Fix exception when global `Error.stackTraceLimit` is too low
-
-0.4.2 / 2014-07-19
-==================
-
- * Correct call site for wrapped functions and properties
-
-0.4.1 / 2014-07-19
-==================
-
- * Improve automatic message generation for function properties
-
-0.4.0 / 2014-07-19
-==================
-
- * Add `TRACE_DEPRECATION` environment variable
- * Remove non-standard grey color from color output
- * Support `--no-deprecation` argument
- * Support `--trace-deprecation` argument
- * Support `deprecate.property(fn, prop, message)`
-
-0.3.0 / 2014-06-16
-==================
-
- * Add `NO_DEPRECATION` environment variable
-
-0.2.0 / 2014-06-15
-==================
-
- * Add `deprecate.property(obj, prop, message)`
- * Remove `supports-color` dependency for node.js 0.8
-
-0.1.0 / 2014-06-15
-==================
-
- * Add `deprecate.function(fn, message)`
- * Add `process.on('deprecation', fn)` emitter
- * Automatically generate message when omitted from `deprecate()`
-
-0.0.1 / 2014-06-15
-==================
-
- * Fix warning for dynamic calls at singe call site
-
-0.0.0 / 2014-06-15
-==================
-
- * Initial implementation
diff --git a/node_modules/depd/LICENSE b/node_modules/depd/LICENSE
deleted file mode 100644
index 142ede386..000000000
--- a/node_modules/depd/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2014-2015 Douglas Christopher Wilson
-
-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.
diff --git a/node_modules/depd/Readme.md b/node_modules/depd/Readme.md
deleted file mode 100644
index 09bb97995..000000000
--- a/node_modules/depd/Readme.md
+++ /dev/null
@@ -1,281 +0,0 @@
-# depd
-
-[![NPM Version][npm-version-image]][npm-url]
-[![NPM Downloads][npm-downloads-image]][npm-url]
-[![Node.js Version][node-image]][node-url]
-[![Linux Build][travis-image]][travis-url]
-[![Windows Build][appveyor-image]][appveyor-url]
-[![Coverage Status][coveralls-image]][coveralls-url]
-[![Gratipay][gratipay-image]][gratipay-url]
-
-Deprecate all the things
-
-> With great modules comes great responsibility; mark things deprecated!
-
-## Install
-
-This module is installed directly using `npm`:
-
-```sh
-$ npm install depd
-```
-
-This module can also be bundled with systems like
-[Browserify](http://browserify.org/) or [webpack](https://webpack.github.io/),
-though by default this module will alter it's API to no longer display or
-track deprecations.
-
-## API
-
-```js
-var deprecate = require('depd')('my-module')
-```
-
-This library allows you to display deprecation messages to your users.
-This library goes above and beyond with deprecation warnings by
-introspection of the call stack (but only the bits that it is interested
-in).
-
-Instead of just warning on the first invocation of a deprecated
-function and never again, this module will warn on the first invocation
-of a deprecated function per unique call site, making it ideal to alert
-users of all deprecated uses across the code base, rather than just
-whatever happens to execute first.
-
-The deprecation warnings from this module also include the file and line
-information for the call into the module that the deprecated function was
-in.
-
-**NOTE** this library has a similar interface to the `debug` module, and
-this module uses the calling file to get the boundary for the call stacks,
-so you should always create a new `deprecate` object in each file and not
-within some central file.
-
-### depd(namespace)
-
-Create a new deprecate function that uses the given namespace name in the
-messages and will display the call site prior to the stack entering the
-file this function was called from. It is highly suggested you use the
-name of your module as the namespace.
-
-### deprecate(message)
-
-Call this function from deprecated code to display a deprecation message.
-This message will appear once per unique caller site. Caller site is the
-first call site in the stack in a different file from the caller of this
-function.
-
-If the message is omitted, a message is generated for you based on the site
-of the `deprecate()` call and will display the name of the function called,
-similar to the name displayed in a stack trace.
-
-### deprecate.function(fn, message)
-
-Call this function to wrap a given function in a deprecation message on any
-call to the function. An optional message can be supplied to provide a custom
-message.
-
-### deprecate.property(obj, prop, message)
-
-Call this function to wrap a given property on object in a deprecation message
-on any accessing or setting of the property. An optional message can be supplied
-to provide a custom message.
-
-The method must be called on the object where the property belongs (not
-inherited from the prototype).
-
-If the property is a data descriptor, it will be converted to an accessor
-descriptor in order to display the deprecation message.
-
-### process.on('deprecation', fn)
-
-This module will allow easy capturing of deprecation errors by emitting the
-errors as the type "deprecation" on the global `process`. If there are no
-listeners for this type, the errors are written to STDERR as normal, but if
-there are any listeners, nothing will be written to STDERR and instead only
-emitted. From there, you can write the errors in a different format or to a
-logging source.
-
-The error represents the deprecation and is emitted only once with the same
-rules as writing to STDERR. The error has the following properties:
-
- - `message` - This is the message given by the library
- - `name` - This is always `'DeprecationError'`
- - `namespace` - This is the namespace the deprecation came from
- - `stack` - This is the stack of the call to the deprecated thing
-
-Example `error.stack` output:
-
-```
-DeprecationError: my-cool-module deprecated oldfunction
- at Object.<anonymous> ([eval]-wrapper:6:22)
- at Module._compile (module.js:456:26)
- at evalScript (node.js:532:25)
- at startup (node.js:80:7)
- at node.js:902:3
-```
-
-### process.env.NO_DEPRECATION
-
-As a user of modules that are deprecated, the environment variable `NO_DEPRECATION`
-is provided as a quick solution to silencing deprecation warnings from being
-output. The format of this is similar to that of `DEBUG`:
-
-```sh
-$ NO_DEPRECATION=my-module,othermod node app.js
-```
-
-This will suppress deprecations from being output for "my-module" and "othermod".
-The value is a list of comma-separated namespaces. To suppress every warning
-across all namespaces, use the value `*` for a namespace.
-
-Providing the argument `--no-deprecation` to the `node` executable will suppress
-all deprecations (only available in Node.js 0.8 or higher).
-
-**NOTE** This will not suppress the deperecations given to any "deprecation"
-event listeners, just the output to STDERR.
-
-### process.env.TRACE_DEPRECATION
-
-As a user of modules that are deprecated, the environment variable `TRACE_DEPRECATION`
-is provided as a solution to getting more detailed location information in deprecation
-warnings by including the entire stack trace. The format of this is the same as
-`NO_DEPRECATION`:
-
-```sh
-$ TRACE_DEPRECATION=my-module,othermod node app.js
-```
-
-This will include stack traces for deprecations being output for "my-module" and
-"othermod". The value is a list of comma-separated namespaces. To trace every
-warning across all namespaces, use the value `*` for a namespace.
-
-Providing the argument `--trace-deprecation` to the `node` executable will trace
-all deprecations (only available in Node.js 0.8 or higher).
-
-**NOTE** This will not trace the deperecations silenced by `NO_DEPRECATION`.
-
-## Display
-
-![message](files/message.png)
-
-When a user calls a function in your library that you mark deprecated, they
-will see the following written to STDERR (in the given colors, similar colors
-and layout to the `debug` module):
-
-```
-bright cyan bright yellow
-| | reset cyan
-| | | |
-â–¼ â–¼ â–¼ â–¼
-my-cool-module deprecated oldfunction [eval]-wrapper:6:22
-â–² â–² â–² â–²
-| | | |
-namespace | | location of mycoolmod.oldfunction() call
- | deprecation message
- the word "deprecated"
-```
-
-If the user redirects their STDERR to a file or somewhere that does not support
-colors, they see (similar layout to the `debug` module):
-
-```
-Sun, 15 Jun 2014 05:21:37 GMT my-cool-module deprecated oldfunction at [eval]-wrapper:6:22
-â–² â–² â–² â–² â–²
-| | | | |
-timestamp of message namespace | | location of mycoolmod.oldfunction() call
- | deprecation message
- the word "deprecated"
-```
-
-## Examples
-
-### Deprecating all calls to a function
-
-This will display a deprecated message about "oldfunction" being deprecated
-from "my-module" on STDERR.
-
-```js
-var deprecate = require('depd')('my-cool-module')
-
-// message automatically derived from function name
-// Object.oldfunction
-exports.oldfunction = deprecate.function(function oldfunction() {
- // all calls to function are deprecated
-})
-
-// specific message
-exports.oldfunction = deprecate.function(function () {
- // all calls to function are deprecated
-}, 'oldfunction')
-```
-
-### Conditionally deprecating a function call
-
-This will display a deprecated message about "weirdfunction" being deprecated
-from "my-module" on STDERR when called with less than 2 arguments.
-
-```js
-var deprecate = require('depd')('my-cool-module')
-
-exports.weirdfunction = function () {
- if (arguments.length < 2) {
- // calls with 0 or 1 args are deprecated
- deprecate('weirdfunction args < 2')
- }
-}
-```
-
-When calling `deprecate` as a function, the warning is counted per call site
-within your own module, so you can display different deprecations depending
-on different situations and the users will still get all the warnings:
-
-```js
-var deprecate = require('depd')('my-cool-module')
-
-exports.weirdfunction = function () {
- if (arguments.length < 2) {
- // calls with 0 or 1 args are deprecated
- deprecate('weirdfunction args < 2')
- } else if (typeof arguments[0] !== 'string') {
- // calls with non-string first argument are deprecated
- deprecate('weirdfunction non-string first arg')
- }
-}
-```
-
-### Deprecating property access
-
-This will display a deprecated message about "oldprop" being deprecated
-from "my-module" on STDERR when accessed. A deprecation will be displayed
-when setting the value and when getting the value.
-
-```js
-var deprecate = require('depd')('my-cool-module')
-
-exports.oldprop = 'something'
-
-// message automatically derives from property name
-deprecate.property(exports, 'oldprop')
-
-// explicit message
-deprecate.property(exports, 'oldprop', 'oldprop >= 0.10')
-```
-
-## License
-
-[MIT](LICENSE)
-
-[npm-version-image]: https://img.shields.io/npm/v/depd.svg
-[npm-downloads-image]: https://img.shields.io/npm/dm/depd.svg
-[npm-url]: https://npmjs.org/package/depd
-[travis-image]: https://img.shields.io/travis/dougwilson/nodejs-depd/master.svg?label=linux
-[travis-url]: https://travis-ci.org/dougwilson/nodejs-depd
-[appveyor-image]: https://img.shields.io/appveyor/ci/dougwilson/nodejs-depd/master.svg?label=windows
-[appveyor-url]: https://ci.appveyor.com/project/dougwilson/nodejs-depd
-[coveralls-image]: https://img.shields.io/coveralls/dougwilson/nodejs-depd/master.svg
-[coveralls-url]: https://coveralls.io/r/dougwilson/nodejs-depd?branch=master
-[node-image]: https://img.shields.io/node/v/depd.svg
-[node-url]: http://nodejs.org/download/
-[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg
-[gratipay-url]: https://www.gratipay.com/dougwilson/
diff --git a/node_modules/depd/index.js b/node_modules/depd/index.js
deleted file mode 100644
index fddcae875..000000000
--- a/node_modules/depd/index.js
+++ /dev/null
@@ -1,521 +0,0 @@
-/*!
- * depd
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var callSiteToString = require('./lib/compat').callSiteToString
-var eventListenerCount = require('./lib/compat').eventListenerCount
-var relative = require('path').relative
-
-/**
- * Module exports.
- */
-
-module.exports = depd
-
-/**
- * Get the path to base files on.
- */
-
-var basePath = process.cwd()
-
-/**
- * Determine if namespace is contained in the string.
- */
-
-function containsNamespace(str, namespace) {
- var val = str.split(/[ ,]+/)
-
- namespace = String(namespace).toLowerCase()
-
- for (var i = 0 ; i < val.length; i++) {
- if (!(str = val[i])) continue;
-
- // namespace contained
- if (str === '*' || str.toLowerCase() === namespace) {
- return true
- }
- }
-
- return false
-}
-
-/**
- * Convert a data descriptor to accessor descriptor.
- */
-
-function convertDataDescriptorToAccessor(obj, prop, message) {
- var descriptor = Object.getOwnPropertyDescriptor(obj, prop)
- var value = descriptor.value
-
- descriptor.get = function getter() { return value }
-
- if (descriptor.writable) {
- descriptor.set = function setter(val) { return value = val }
- }
-
- delete descriptor.value
- delete descriptor.writable
-
- Object.defineProperty(obj, prop, descriptor)
-
- return descriptor
-}
-
-/**
- * Create arguments string to keep arity.
- */
-
-function createArgumentsString(arity) {
- var str = ''
-
- for (var i = 0; i < arity; i++) {
- str += ', arg' + i
- }
-
- return str.substr(2)
-}
-
-/**
- * Create stack string from stack.
- */
-
-function createStackString(stack) {
- var str = this.name + ': ' + this.namespace
-
- if (this.message) {
- str += ' deprecated ' + this.message
- }
-
- for (var i = 0; i < stack.length; i++) {
- str += '\n at ' + callSiteToString(stack[i])
- }
-
- return str
-}
-
-/**
- * Create deprecate for namespace in caller.
- */
-
-function depd(namespace) {
- if (!namespace) {
- throw new TypeError('argument namespace is required')
- }
-
- var stack = getStack()
- var site = callSiteLocation(stack[1])
- var file = site[0]
-
- function deprecate(message) {
- // call to self as log
- log.call(deprecate, message)
- }
-
- deprecate._file = file
- deprecate._ignored = isignored(namespace)
- deprecate._namespace = namespace
- deprecate._traced = istraced(namespace)
- deprecate._warned = Object.create(null)
-
- deprecate.function = wrapfunction
- deprecate.property = wrapproperty
-
- return deprecate
-}
-
-/**
- * Determine if namespace is ignored.
- */
-
-function isignored(namespace) {
- /* istanbul ignore next: tested in a child processs */
- if (process.noDeprecation) {
- // --no-deprecation support
- return true
- }
-
- var str = process.env.NO_DEPRECATION || ''
-
- // namespace ignored
- return containsNamespace(str, namespace)
-}
-
-/**
- * Determine if namespace is traced.
- */
-
-function istraced(namespace) {
- /* istanbul ignore next: tested in a child processs */
- if (process.traceDeprecation) {
- // --trace-deprecation support
- return true
- }
-
- var str = process.env.TRACE_DEPRECATION || ''
-
- // namespace traced
- return containsNamespace(str, namespace)
-}
-
-/**
- * Display deprecation message.
- */
-
-function log(message, site) {
- var haslisteners = eventListenerCount(process, 'deprecation') !== 0
-
- // abort early if no destination
- if (!haslisteners && this._ignored) {
- return
- }
-
- var caller
- var callFile
- var callSite
- var i = 0
- var seen = false
- var stack = getStack()
- var file = this._file
-
- if (site) {
- // provided site
- callSite = callSiteLocation(stack[1])
- callSite.name = site.name
- file = callSite[0]
- } else {
- // get call site
- i = 2
- site = callSiteLocation(stack[i])
- callSite = site
- }
-
- // get caller of deprecated thing in relation to file
- for (; i < stack.length; i++) {
- caller = callSiteLocation(stack[i])
- callFile = caller[0]
-
- if (callFile === file) {
- seen = true
- } else if (callFile === this._file) {
- file = this._file
- } else if (seen) {
- break
- }
- }
-
- var key = caller
- ? site.join(':') + '__' + caller.join(':')
- : undefined
-
- if (key !== undefined && key in this._warned) {
- // already warned
- return
- }
-
- this._warned[key] = true
-
- // generate automatic message from call site
- if (!message) {
- message = callSite === site || !callSite.name
- ? defaultMessage(site)
- : defaultMessage(callSite)
- }
-
- // emit deprecation if listeners exist
- if (haslisteners) {
- var err = DeprecationError(this._namespace, message, stack.slice(i))
- process.emit('deprecation', err)
- return
- }
-
- // format and write message
- var format = process.stderr.isTTY
- ? formatColor
- : formatPlain
- var msg = format.call(this, message, caller, stack.slice(i))
- process.stderr.write(msg + '\n', 'utf8')
-
- return
-}
-
-/**
- * Get call site location as array.
- */
-
-function callSiteLocation(callSite) {
- var file = callSite.getFileName() || '<anonymous>'
- var line = callSite.getLineNumber()
- var colm = callSite.getColumnNumber()
-
- if (callSite.isEval()) {
- file = callSite.getEvalOrigin() + ', ' + file
- }
-
- var site = [file, line, colm]
-
- site.callSite = callSite
- site.name = callSite.getFunctionName()
-
- return site
-}
-
-/**
- * Generate a default message from the site.
- */
-
-function defaultMessage(site) {
- var callSite = site.callSite
- var funcName = site.name
-
- // make useful anonymous name
- if (!funcName) {
- funcName = '<anonymous@' + formatLocation(site) + '>'
- }
-
- var context = callSite.getThis()
- var typeName = context && callSite.getTypeName()
-
- // ignore useless type name
- if (typeName === 'Object') {
- typeName = undefined
- }
-
- // make useful type name
- if (typeName === 'Function') {
- typeName = context.name || typeName
- }
-
- return typeName && callSite.getMethodName()
- ? typeName + '.' + funcName
- : funcName
-}
-
-/**
- * Format deprecation message without color.
- */
-
-function formatPlain(msg, caller, stack) {
- var timestamp = new Date().toUTCString()
-
- var formatted = timestamp
- + ' ' + this._namespace
- + ' deprecated ' + msg
-
- // add stack trace
- if (this._traced) {
- for (var i = 0; i < stack.length; i++) {
- formatted += '\n at ' + callSiteToString(stack[i])
- }
-
- return formatted
- }
-
- if (caller) {
- formatted += ' at ' + formatLocation(caller)
- }
-
- return formatted
-}
-
-/**
- * Format deprecation message with color.
- */
-
-function formatColor(msg, caller, stack) {
- var formatted = '\x1b[36;1m' + this._namespace + '\x1b[22;39m' // bold cyan
- + ' \x1b[33;1mdeprecated\x1b[22;39m' // bold yellow
- + ' \x1b[0m' + msg + '\x1b[39m' // reset
-
- // add stack trace
- if (this._traced) {
- for (var i = 0; i < stack.length; i++) {
- formatted += '\n \x1b[36mat ' + callSiteToString(stack[i]) + '\x1b[39m' // cyan
- }
-
- return formatted
- }
-
- if (caller) {
- formatted += ' \x1b[36m' + formatLocation(caller) + '\x1b[39m' // cyan
- }
-
- return formatted
-}
-
-/**
- * Format call site location.
- */
-
-function formatLocation(callSite) {
- return relative(basePath, callSite[0])
- + ':' + callSite[1]
- + ':' + callSite[2]
-}
-
-/**
- * Get the stack as array of call sites.
- */
-
-function getStack() {
- var limit = Error.stackTraceLimit
- var obj = {}
- var prep = Error.prepareStackTrace
-
- Error.prepareStackTrace = prepareObjectStackTrace
- Error.stackTraceLimit = Math.max(10, limit)
-
- // capture the stack
- Error.captureStackTrace(obj)
-
- // slice this function off the top
- var stack = obj.stack.slice(1)
-
- Error.prepareStackTrace = prep
- Error.stackTraceLimit = limit
-
- return stack
-}
-
-/**
- * Capture call site stack from v8.
- */
-
-function prepareObjectStackTrace(obj, stack) {
- return stack
-}
-
-/**
- * Return a wrapped function in a deprecation message.
- */
-
-function wrapfunction(fn, message) {
- if (typeof fn !== 'function') {
- throw new TypeError('argument fn must be a function')
- }
-
- var args = createArgumentsString(fn.length)
- var deprecate = this
- var stack = getStack()
- var site = callSiteLocation(stack[1])
-
- site.name = fn.name
-
- var deprecatedfn = eval('(function (' + args + ') {\n'
- + '"use strict"\n'
- + 'log.call(deprecate, message, site)\n'
- + 'return fn.apply(this, arguments)\n'
- + '})')
-
- return deprecatedfn
-}
-
-/**
- * Wrap property in a deprecation message.
- */
-
-function wrapproperty(obj, prop, message) {
- if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {
- throw new TypeError('argument obj must be object')
- }
-
- var descriptor = Object.getOwnPropertyDescriptor(obj, prop)
-
- if (!descriptor) {
- throw new TypeError('must call property on owner object')
- }
-
- if (!descriptor.configurable) {
- throw new TypeError('property must be configurable')
- }
-
- var deprecate = this
- var stack = getStack()
- var site = callSiteLocation(stack[1])
-
- // set site name
- site.name = prop
-
- // convert data descriptor
- if ('value' in descriptor) {
- descriptor = convertDataDescriptorToAccessor(obj, prop, message)
- }
-
- var get = descriptor.get
- var set = descriptor.set
-
- // wrap getter
- if (typeof get === 'function') {
- descriptor.get = function getter() {
- log.call(deprecate, message, site)
- return get.apply(this, arguments)
- }
- }
-
- // wrap setter
- if (typeof set === 'function') {
- descriptor.set = function setter() {
- log.call(deprecate, message, site)
- return set.apply(this, arguments)
- }
- }
-
- Object.defineProperty(obj, prop, descriptor)
-}
-
-/**
- * Create DeprecationError for deprecation
- */
-
-function DeprecationError(namespace, message, stack) {
- var error = new Error()
- var stackString
-
- Object.defineProperty(error, 'constructor', {
- value: DeprecationError
- })
-
- Object.defineProperty(error, 'message', {
- configurable: true,
- enumerable: false,
- value: message,
- writable: true
- })
-
- Object.defineProperty(error, 'name', {
- enumerable: false,
- configurable: true,
- value: 'DeprecationError',
- writable: true
- })
-
- Object.defineProperty(error, 'namespace', {
- configurable: true,
- enumerable: false,
- value: namespace,
- writable: true
- })
-
- Object.defineProperty(error, 'stack', {
- configurable: true,
- enumerable: false,
- get: function () {
- if (stackString !== undefined) {
- return stackString
- }
-
- // prepare stack trace
- return stackString = createStackString.call(this, stack)
- },
- set: function setter(val) {
- stackString = val
- }
- })
-
- return error
-}
diff --git a/node_modules/depd/lib/browser/index.js b/node_modules/depd/lib/browser/index.js
deleted file mode 100644
index f464e0525..000000000
--- a/node_modules/depd/lib/browser/index.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/*!
- * depd
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = depd
-
-/**
- * Create deprecate for namespace in caller.
- */
-
-function depd(namespace) {
- if (!namespace) {
- throw new TypeError('argument namespace is required')
- }
-
- function deprecate(message) {
- // no-op in browser
- }
-
- deprecate._file = undefined
- deprecate._ignored = true
- deprecate._namespace = namespace
- deprecate._traced = false
- deprecate._warned = Object.create(null)
-
- deprecate.function = wrapfunction
- deprecate.property = wrapproperty
-
- return deprecate
-}
-
-/**
- * Return a wrapped function in a deprecation message.
- *
- * This is a no-op version of the wrapper, which does nothing but call
- * validation.
- */
-
-function wrapfunction(fn, message) {
- if (typeof fn !== 'function') {
- throw new TypeError('argument fn must be a function')
- }
-
- return fn
-}
-
-/**
- * Wrap property in a deprecation message.
- *
- * This is a no-op version of the wrapper, which does nothing but call
- * validation.
- */
-
-function wrapproperty(obj, prop, message) {
- if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {
- throw new TypeError('argument obj must be object')
- }
-
- var descriptor = Object.getOwnPropertyDescriptor(obj, prop)
-
- if (!descriptor) {
- throw new TypeError('must call property on owner object')
- }
-
- if (!descriptor.configurable) {
- throw new TypeError('property must be configurable')
- }
-
- return
-}
diff --git a/node_modules/depd/lib/compat/buffer-concat.js b/node_modules/depd/lib/compat/buffer-concat.js
deleted file mode 100644
index 4b7338102..000000000
--- a/node_modules/depd/lib/compat/buffer-concat.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*!
- * depd
- * Copyright(c) 2014 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module exports.
- */
-
-module.exports = bufferConcat
-
-/**
- * Concatenate an array of Buffers.
- */
-
-function bufferConcat(bufs) {
- var length = 0
-
- for (var i = 0, len = bufs.length; i < len; i++) {
- length += bufs[i].length
- }
-
- var buf = new Buffer(length)
- var pos = 0
-
- for (var i = 0, len = bufs.length; i < len; i++) {
- bufs[i].copy(buf, pos)
- pos += bufs[i].length
- }
-
- return buf
-}
diff --git a/node_modules/depd/lib/compat/callsite-tostring.js b/node_modules/depd/lib/compat/callsite-tostring.js
deleted file mode 100644
index 9ecef3466..000000000
--- a/node_modules/depd/lib/compat/callsite-tostring.js
+++ /dev/null
@@ -1,103 +0,0 @@
-/*!
- * depd
- * Copyright(c) 2014 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module exports.
- */
-
-module.exports = callSiteToString
-
-/**
- * Format a CallSite file location to a string.
- */
-
-function callSiteFileLocation(callSite) {
- var fileName
- var fileLocation = ''
-
- if (callSite.isNative()) {
- fileLocation = 'native'
- } else if (callSite.isEval()) {
- fileName = callSite.getScriptNameOrSourceURL()
- if (!fileName) {
- fileLocation = callSite.getEvalOrigin()
- }
- } else {
- fileName = callSite.getFileName()
- }
-
- if (fileName) {
- fileLocation += fileName
-
- var lineNumber = callSite.getLineNumber()
- if (lineNumber != null) {
- fileLocation += ':' + lineNumber
-
- var columnNumber = callSite.getColumnNumber()
- if (columnNumber) {
- fileLocation += ':' + columnNumber
- }
- }
- }
-
- return fileLocation || 'unknown source'
-}
-
-/**
- * Format a CallSite to a string.
- */
-
-function callSiteToString(callSite) {
- var addSuffix = true
- var fileLocation = callSiteFileLocation(callSite)
- var functionName = callSite.getFunctionName()
- var isConstructor = callSite.isConstructor()
- var isMethodCall = !(callSite.isToplevel() || isConstructor)
- var line = ''
-
- if (isMethodCall) {
- var methodName = callSite.getMethodName()
- var typeName = getConstructorName(callSite)
-
- if (functionName) {
- if (typeName && functionName.indexOf(typeName) !== 0) {
- line += typeName + '.'
- }
-
- line += functionName
-
- if (methodName && functionName.lastIndexOf('.' + methodName) !== functionName.length - methodName.length - 1) {
- line += ' [as ' + methodName + ']'
- }
- } else {
- line += typeName + '.' + (methodName || '<anonymous>')
- }
- } else if (isConstructor) {
- line += 'new ' + (functionName || '<anonymous>')
- } else if (functionName) {
- line += functionName
- } else {
- addSuffix = false
- line += fileLocation
- }
-
- if (addSuffix) {
- line += ' (' + fileLocation + ')'
- }
-
- return line
-}
-
-/**
- * Get constructor name of reviver.
- */
-
-function getConstructorName(obj) {
- var receiver = obj.receiver
- return (receiver.constructor && receiver.constructor.name) || null
-}
diff --git a/node_modules/depd/lib/compat/event-listener-count.js b/node_modules/depd/lib/compat/event-listener-count.js
deleted file mode 100644
index a05fceb79..000000000
--- a/node_modules/depd/lib/compat/event-listener-count.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*!
- * depd
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = eventListenerCount
-
-/**
- * Get the count of listeners on an event emitter of a specific type.
- */
-
-function eventListenerCount(emitter, type) {
- return emitter.listeners(type).length
-}
diff --git a/node_modules/depd/lib/compat/index.js b/node_modules/depd/lib/compat/index.js
deleted file mode 100644
index aa3c1de43..000000000
--- a/node_modules/depd/lib/compat/index.js
+++ /dev/null
@@ -1,84 +0,0 @@
-/*!
- * depd
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module dependencies.
- * @private
- */
-
-var Buffer = require('buffer')
-var EventEmitter = require('events').EventEmitter
-
-/**
- * Module exports.
- * @public
- */
-
-lazyProperty(module.exports, 'bufferConcat', function bufferConcat() {
- return Buffer.concat || require('./buffer-concat')
-})
-
-lazyProperty(module.exports, 'callSiteToString', function callSiteToString() {
- var limit = Error.stackTraceLimit
- var obj = {}
- var prep = Error.prepareStackTrace
-
- function prepareObjectStackTrace(obj, stack) {
- return stack
- }
-
- Error.prepareStackTrace = prepareObjectStackTrace
- Error.stackTraceLimit = 2
-
- // capture the stack
- Error.captureStackTrace(obj)
-
- // slice the stack
- var stack = obj.stack.slice()
-
- Error.prepareStackTrace = prep
- Error.stackTraceLimit = limit
-
- return stack[0].toString ? toString : require('./callsite-tostring')
-})
-
-lazyProperty(module.exports, 'eventListenerCount', function eventListenerCount() {
- return EventEmitter.listenerCount || require('./event-listener-count')
-})
-
-/**
- * Define a lazy property.
- */
-
-function lazyProperty(obj, prop, getter) {
- function get() {
- var val = getter()
-
- Object.defineProperty(obj, prop, {
- configurable: true,
- enumerable: true,
- value: val
- })
-
- return val
- }
-
- Object.defineProperty(obj, prop, {
- configurable: true,
- enumerable: true,
- get: get
- })
-}
-
-/**
- * Call toString() on the obj
- */
-
-function toString(obj) {
- return obj.toString()
-}
diff --git a/node_modules/depd/package.json b/node_modules/depd/package.json
deleted file mode 100644
index fb95c42f5..000000000
--- a/node_modules/depd/package.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "name": "depd",
- "description": "Deprecate all the things",
- "version": "1.1.0",
- "author": "Douglas Christopher Wilson <doug@somethingdoug.com>",
- "license": "MIT",
- "keywords": [
- "deprecate",
- "deprecated"
- ],
- "repository": "dougwilson/nodejs-depd",
- "browser": "lib/browser/index.js",
- "devDependencies": {
- "benchmark": "1.0.0",
- "beautify-benchmark": "0.2.4",
- "istanbul": "0.3.5",
- "mocha": "~1.21.5"
- },
- "files": [
- "lib/",
- "History.md",
- "LICENSE",
- "index.js",
- "Readme.md"
- ],
- "engines": {
- "node": ">= 0.6"
- },
- "scripts": {
- "bench": "node benchmark/index.js",
- "test": "mocha --reporter spec --bail test/",
- "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --no-exit test/",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/"
- }
-}
diff --git a/node_modules/destroy/LICENSE b/node_modules/destroy/LICENSE
deleted file mode 100644
index a7ae8ee9b..000000000
--- a/node_modules/destroy/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-
-The MIT License (MIT)
-
-Copyright (c) 2014 Jonathan Ong me@jongleberry.com
-
-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.
diff --git a/node_modules/destroy/README.md b/node_modules/destroy/README.md
deleted file mode 100644
index 6474bc3ce..000000000
--- a/node_modules/destroy/README.md
+++ /dev/null
@@ -1,60 +0,0 @@
-# Destroy
-
-[![NPM version][npm-image]][npm-url]
-[![Build status][travis-image]][travis-url]
-[![Test coverage][coveralls-image]][coveralls-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-[![Gittip][gittip-image]][gittip-url]
-
-Destroy a stream.
-
-This module is meant to ensure a stream gets destroyed, handling different APIs
-and Node.js bugs.
-
-## API
-
-```js
-var destroy = require('destroy')
-```
-
-### destroy(stream)
-
-Destroy the given stream. In most cases, this is identical to a simple
-`stream.destroy()` call. The rules are as follows for a given stream:
-
- 1. If the `stream` is an instance of `ReadStream`, then call `stream.destroy()`
- and add a listener to the `open` event to call `stream.close()` if it is
- fired. This is for a Node.js bug that will leak a file descriptor if
- `.destroy()` is called before `open`.
- 2. If the `stream` is not an instance of `Stream`, then nothing happens.
- 3. If the `stream` has a `.destroy()` method, then call it.
-
-The function returns the `stream` passed in as the argument.
-
-## Example
-
-```js
-var destroy = require('destroy')
-
-var fs = require('fs')
-var stream = fs.createReadStream('package.json')
-
-// ... and later
-destroy(stream)
-```
-
-[npm-image]: https://img.shields.io/npm/v/destroy.svg?style=flat-square
-[npm-url]: https://npmjs.org/package/destroy
-[github-tag]: http://img.shields.io/github/tag/stream-utils/destroy.svg?style=flat-square
-[github-url]: https://github.com/stream-utils/destroy/tags
-[travis-image]: https://img.shields.io/travis/stream-utils/destroy.svg?style=flat-square
-[travis-url]: https://travis-ci.org/stream-utils/destroy
-[coveralls-image]: https://img.shields.io/coveralls/stream-utils/destroy.svg?style=flat-square
-[coveralls-url]: https://coveralls.io/r/stream-utils/destroy?branch=master
-[license-image]: http://img.shields.io/npm/l/destroy.svg?style=flat-square
-[license-url]: LICENSE.md
-[downloads-image]: http://img.shields.io/npm/dm/destroy.svg?style=flat-square
-[downloads-url]: https://npmjs.org/package/destroy
-[gittip-image]: https://img.shields.io/gittip/jonathanong.svg?style=flat-square
-[gittip-url]: https://www.gittip.com/jonathanong/
diff --git a/node_modules/destroy/index.js b/node_modules/destroy/index.js
deleted file mode 100644
index 6da2d26ee..000000000
--- a/node_modules/destroy/index.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/*!
- * destroy
- * Copyright(c) 2014 Jonathan Ong
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module dependencies.
- * @private
- */
-
-var ReadStream = require('fs').ReadStream
-var Stream = require('stream')
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = destroy
-
-/**
- * Destroy a stream.
- *
- * @param {object} stream
- * @public
- */
-
-function destroy(stream) {
- if (stream instanceof ReadStream) {
- return destroyReadStream(stream)
- }
-
- if (!(stream instanceof Stream)) {
- return stream
- }
-
- if (typeof stream.destroy === 'function') {
- stream.destroy()
- }
-
- return stream
-}
-
-/**
- * Destroy a ReadStream.
- *
- * @param {object} stream
- * @private
- */
-
-function destroyReadStream(stream) {
- stream.destroy()
-
- if (typeof stream.close === 'function') {
- // node.js core bug work-around
- stream.on('open', onOpenClose)
- }
-
- return stream
-}
-
-/**
- * On open handler to close stream.
- * @private
- */
-
-function onOpenClose() {
- if (typeof this.fd === 'number') {
- // actually close down the fd
- this.close()
- }
-}
diff --git a/node_modules/destroy/package.json b/node_modules/destroy/package.json
deleted file mode 100644
index 024bff927..000000000
--- a/node_modules/destroy/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "destroy",
- "description": "destroy a stream if possible",
- "version": "1.0.4",
- "author": {
- "name": "Jonathan Ong",
- "email": "me@jongleberry.com",
- "url": "http://jongleberry.com",
- "twitter": "https://twitter.com/jongleberry"
- },
- "contributors": [
- "Douglas Christopher Wilson <doug@somethingdoug.com>"
- ],
- "license": "MIT",
- "repository": "stream-utils/destroy",
- "devDependencies": {
- "istanbul": "0.4.2",
- "mocha": "2.3.4"
- },
- "scripts": {
- "test": "mocha --reporter spec",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot",
- "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot"
- },
- "files": [
- "index.js",
- "LICENSE"
- ],
- "keywords": [
- "stream",
- "streams",
- "destroy",
- "cleanup",
- "leak",
- "fd"
- ]
-}
diff --git a/node_modules/diff/README.md b/node_modules/diff/README.md
index b867e19a7..03b5845d8 100644
--- a/node_modules/diff/README.md
+++ b/node_modules/diff/README.md
@@ -1,6 +1,7 @@
# jsdiff
-[![Build Status](https://secure.travis-ci.org/kpdecker/jsdiff.png)](http://travis-ci.org/kpdecker/jsdiff)
+[![Build Status](https://secure.travis-ci.org/kpdecker/jsdiff.svg)](http://travis-ci.org/kpdecker/jsdiff)
+[![Sauce Test Status](https://saucelabs.com/buildstatus/jsdiff)](https://saucelabs.com/u/jsdiff)
A javascript text differencing implementation.
@@ -15,41 +16,46 @@ or
bower install jsdiff
-or
-
- git clone git://github.com/kpdecker/jsdiff.git
## API
-* `JsDiff.diffChars(oldStr, newStr[, callback])` - diffs two blocks of text, comparing character by character.
+* `JsDiff.diffChars(oldStr, newStr[, options])` - diffs two blocks of text, comparing character by character.
+
+ Returns a list of change objects (See below).
+
+* `JsDiff.diffWords(oldStr, newStr[, options])` - diffs two blocks of text, comparing word by word, ignoring whitespace.
Returns a list of change objects (See below).
-* `JsDiff.diffWords(oldStr, newStr[, callback])` - diffs two blocks of text, comparing word by word, ignoring whitespace.
+* `JsDiff.diffWordsWithSpace(oldStr, newStr[, options])` - diffs two blocks of text, comparing word by word, treating whitespace as significant.
Returns a list of change objects (See below).
-* `JsDiff.diffWordsWithSpace(oldStr, newStr[, callback])` - diffs two blocks of text, comparing word by word, treating whitespace as significant.
+* `JsDiff.diffLines(oldStr, newStr[, options])` - diffs two blocks of text, comparing line by line.
+
+ Options
+ * `ignoreWhitespace`: `true` to ignore leading and trailing whitespace. This is the same as `diffTrimmedLines`
+ * `newlineIsToken`: `true` to treat newline characters as separate tokens. This allows for changes to the newline structure to occur independently of the line content and to be treated as such. In general this is the more human friendly form of `diffLines` and `diffLines` is better suited for patches and other computer friendly output.
Returns a list of change objects (See below).
-* `JsDiff.diffLines(oldStr, newStr[, callback])` - diffs two blocks of text, comparing line by line.
+* `JsDiff.diffTrimmedLines(oldStr, newStr[, options])` - diffs two blocks of text, comparing line by line, ignoring leading and trailing whitespace.
Returns a list of change objects (See below).
-* `JsDiff.diffTrimmedLines(oldStr, newStr[, callback])` - diffs two blocks of text, comparing line by line, ignoring leading and trailing whitespace.
+* `JsDiff.diffSentences(oldStr, newStr[, options])` - diffs two blocks of text, comparing sentence by sentence.
Returns a list of change objects (See below).
-* `JsDiff.diffSentences(oldStr, newStr[, callback])` - diffs two blocks of text, comparing sentence by sentence.
+* `JsDiff.diffCss(oldStr, newStr[, options])` - diffs two blocks of text, comparing CSS tokens.
Returns a list of change objects (See below).
-* `JsDiff.diffCss(oldStr, newStr[, callback])` - diffs two blocks of text, comparing CSS tokens.
+* `JsDiff.diffJson(oldObj, newObj[, options])` - diffs two JSON objects, comparing the fields defined on each. The order of fields, etc does not matter in this comparison.
Returns a list of change objects (See below).
-* `JsDiff.diffJson(oldObj, newObj[, callback])` - diffs two JSON objects, comparing the fields defined on each. The order of fields, etc does not matter in this comparison.
+* `JsDiff.diffArrays(oldArr, newArr[, options])` - diffs two arrays, comparing each item for strict equality (===).
Returns a list of change objects (See below).
@@ -61,23 +67,59 @@ or
* `oldStr` : Original string value
* `newStr` : New string value
* `oldHeader` : Additional information to include in the old file header
- * `newHeader` : Additional information to include in thew new file header
+ * `newHeader` : Additional information to include in the new file header
+ * `options` : An object with options. Currently, only `context` is supported and describes how many lines of context should be included.
* `JsDiff.createPatch(fileName, oldStr, newStr, oldHeader, newHeader)` - creates a unified diff patch.
Just like JsDiff.createTwoFilesPatch, but with oldFileName being equal to newFileName.
-* `JsDiff.applyPatch(oldStr, diffStr)` - applies a unified diff patch.
- Return a string containing new version of provided data.
+* `JsDiff.structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options)` - returns an object with an array of hunk objects.
+
+ This method is similar to createTwoFilesPatch, but returns a data structure
+ suitable for further processing. Parameters are the same as createTwoFilesPatch. The data structure returned may look like this:
+
+ ```js
+ {
+ oldFileName: 'oldfile', newFileName: 'newfile',
+ oldHeader: 'header1', newHeader: 'header2',
+ hunks: [{
+ oldStart: 1, oldLines: 3, newStart: 1, newLines: 3,
+ lines: [' line2', ' line3', '-line4', '+line5', '\\ No newline at end of file'],
+ }]
+ }
+ ```
+
+* `JsDiff.applyPatch(source, patch[, options])` - applies a unified diff patch.
+
+ Return a string containing new version of provided data. `patch` may be a string diff or the output from the `parsePatch` or `structuredPatch` methods.
+
+ The optional `options` object may have the following keys:
+
+ - `fuzzFactor`: Number of lines that are allowed to differ before rejecting a patch. Defaults to 0.
+ - `compareLine(lineNumber, line, operation, patchContent)`: Callback used to compare to given lines to determine if they should be considered equal when patching. Defaults to strict equality but may be overriden to provide fuzzier comparison. Should return false if the lines should be rejected.
+
+* `JsDiff.applyPatches(patch, options)` - applies one or more patches.
+
+ This method will iterate over the contents of the patch and apply to data provided through callbacks. The general flow for each patch index is:
+
+ - `options.loadFile(index, callback)` is called. The caller should then load the contents of the file and then pass that to the `callback(err, data)` callback. Passing an `err` will terminate further patch execution.
+ - `options.patched(index, content, callback)` is called once the patch has been applied. `content` will be the return value from `applyPatch`. When it's ready, the caller should call `callback(err)` callback. Passing an `err` will terminate further patch execution.
+
+ Once all patches have been applied or an error occurs, the `options.complete(err)` callback is made.
+
+* `JsDiff.parsePatch(diffStr)` - Parses a patch into structured data
+
+ Return a JSON object representation of the a patch, suitable for use with the `applyPatch` method. This parses to the same structure returned by `JsDiff.structuredPatch`.
* `convertChangesToXML(changes)` - converts a list of changes to a serialized XML format
-All methods above which accept the optional callback method will run in sync mode when that parameter is omitted and in async mode when supplied. This allows for larger diffs without blocking the event loop.
+All methods above which accept the optional `callback` method will run in sync mode when that parameter is omitted and in async mode when supplied. This allows for larger diffs without blocking the event loop. This may be passed either directly as the final parameter or as the `callback` field in the `options` object.
### Change Objects
-Many of the methods above return change objects. These objects are consist of the following fields:
+Many of the methods above return change objects. These objects consist of the following fields:
* `value`: Text content
* `added`: True if the value was inserted into the new string
@@ -118,22 +160,28 @@ Basic example in a web page
<pre id="display"></pre>
<script src="diff.js"></script>
<script>
-var one = 'beep boop';
-var other = 'beep boob blah';
+var one = 'beep boop',
+ other = 'beep boob blah',
+ color = '',
+ span = null;
-var diff = JsDiff.diffChars(one, other);
+var diff = JsDiff.diffChars(one, other),
+ display = document.getElementById('display'),
+ fragment = document.createDocumentFragment();
diff.forEach(function(part){
// green for additions, red for deletions
// grey for common parts
- var color = part.added ? 'green' :
+ color = part.added ? 'green' :
part.removed ? 'red' : 'grey';
- var span = document.createElement('span');
+ span = document.createElement('span');
span.style.color = color;
span.appendChild(document
.createTextNode(part.value));
- display.appendChild(span);
+ fragment.appendChild(span);
});
+
+display.appendChild(fragment);
</script>
```
@@ -143,39 +191,12 @@ Open the above .html file in a browser and you should see
**[Full online demo](http://kpdecker.github.com/jsdiff)**
-## License
+## Compatibility
-Software License Agreement (BSD License)
+[![Sauce Test Status](https://saucelabs.com/browser-matrix/jsdiff.svg)](https://saucelabs.com/u/jsdiff)
-Copyright (c) 2009-2011, Kevin Decker kpdecker@gmail.com
-
-All rights reserved.
-
-Redistribution and use of this software in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above
- copyright notice, this list of conditions and the
- following disclaimer.
-
-* Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the
- following disclaimer in the documentation and/or other
- materials provided with the distribution.
-
-* Neither the name of Kevin Decker nor the names of its
- contributors may be used to endorse or promote products
- derived from this software without specific prior
- written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+jsdiff supports all ES3 environments with some known issues on IE8 and below. Under these browsers some diff algorithms such as word diff and others may fail due to lack of support for capturing groups in the `split` operation.
+## License
-[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/kpdecker/jsdiff/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
+See [LICENSE](https://github.com/kpdecker/jsdiff/blob/master/LICENSE).
diff --git a/node_modules/diff/diff.js b/node_modules/diff/diff.js
deleted file mode 100644
index 421854a12..000000000
--- a/node_modules/diff/diff.js
+++ /dev/null
@@ -1,619 +0,0 @@
-/* See LICENSE file for terms of use */
-
-/*
- * Text diff implementation.
- *
- * This library supports the following APIS:
- * JsDiff.diffChars: Character by character diff
- * JsDiff.diffWords: Word (as defined by \b regex) diff which ignores whitespace
- * JsDiff.diffLines: Line based diff
- *
- * JsDiff.diffCss: Diff targeted at CSS content
- *
- * These methods are based on the implementation proposed in
- * "An O(ND) Difference Algorithm and its Variations" (Myers, 1986).
- * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927
- */
-(function(global, undefined) {
- var objectPrototypeToString = Object.prototype.toString;
-
- /*istanbul ignore next*/
- function map(arr, mapper, that) {
- if (Array.prototype.map) {
- return Array.prototype.map.call(arr, mapper, that);
- }
-
- var other = new Array(arr.length);
-
- for (var i = 0, n = arr.length; i < n; i++) {
- other[i] = mapper.call(that, arr[i], i, arr);
- }
- return other;
- }
- function clonePath(path) {
- return { newPos: path.newPos, components: path.components.slice(0) };
- }
- function removeEmpty(array) {
- var ret = [];
- for (var i = 0; i < array.length; i++) {
- if (array[i]) {
- ret.push(array[i]);
- }
- }
- return ret;
- }
- function escapeHTML(s) {
- var n = s;
- n = n.replace(/&/g, '&amp;');
- n = n.replace(/</g, '&lt;');
- n = n.replace(/>/g, '&gt;');
- n = n.replace(/"/g, '&quot;');
-
- return n;
- }
-
- // This function handles the presence of circular references by bailing out when encountering an
- // object that is already on the "stack" of items being processed.
- function canonicalize(obj, stack, replacementStack) {
- stack = stack || [];
- replacementStack = replacementStack || [];
-
- var i;
-
- for (i = 0; i < stack.length; i += 1) {
- if (stack[i] === obj) {
- return replacementStack[i];
- }
- }
-
- var canonicalizedObj;
-
- if ('[object Array]' === objectPrototypeToString.call(obj)) {
- stack.push(obj);
- canonicalizedObj = new Array(obj.length);
- replacementStack.push(canonicalizedObj);
- for (i = 0; i < obj.length; i += 1) {
- canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack);
- }
- stack.pop();
- replacementStack.pop();
- } else if (typeof obj === 'object' && obj !== null) {
- stack.push(obj);
- canonicalizedObj = {};
- replacementStack.push(canonicalizedObj);
- var sortedKeys = [],
- key;
- for (key in obj) {
- sortedKeys.push(key);
- }
- sortedKeys.sort();
- for (i = 0; i < sortedKeys.length; i += 1) {
- key = sortedKeys[i];
- canonicalizedObj[key] = canonicalize(obj[key], stack, replacementStack);
- }
- stack.pop();
- replacementStack.pop();
- } else {
- canonicalizedObj = obj;
- }
- return canonicalizedObj;
- }
-
- function buildValues(components, newString, oldString, useLongestToken) {
- var componentPos = 0,
- componentLen = components.length,
- newPos = 0,
- oldPos = 0;
-
- for (; componentPos < componentLen; componentPos++) {
- var component = components[componentPos];
- if (!component.removed) {
- if (!component.added && useLongestToken) {
- var value = newString.slice(newPos, newPos + component.count);
- value = map(value, function(value, i) {
- var oldValue = oldString[oldPos + i];
- return oldValue.length > value.length ? oldValue : value;
- });
-
- component.value = value.join('');
- } else {
- component.value = newString.slice(newPos, newPos + component.count).join('');
- }
- newPos += component.count;
-
- // Common case
- if (!component.added) {
- oldPos += component.count;
- }
- } else {
- component.value = oldString.slice(oldPos, oldPos + component.count).join('');
- oldPos += component.count;
-
- // Reverse add and remove so removes are output first to match common convention
- // The diffing algorithm is tied to add then remove output and this is the simplest
- // route to get the desired output with minimal overhead.
- if (componentPos && components[componentPos - 1].added) {
- var tmp = components[componentPos - 1];
- components[componentPos - 1] = components[componentPos];
- components[componentPos] = tmp;
- }
- }
- }
-
- return components;
- }
-
- function Diff(ignoreWhitespace) {
- this.ignoreWhitespace = ignoreWhitespace;
- }
- Diff.prototype = {
- diff: function(oldString, newString, callback) {
- var self = this;
-
- function done(value) {
- if (callback) {
- setTimeout(function() { callback(undefined, value); }, 0);
- return true;
- } else {
- return value;
- }
- }
-
- // Handle the identity case (this is due to unrolling editLength == 0
- if (newString === oldString) {
- return done([{ value: newString }]);
- }
- if (!newString) {
- return done([{ value: oldString, removed: true }]);
- }
- if (!oldString) {
- return done([{ value: newString, added: true }]);
- }
-
- newString = this.tokenize(newString);
- oldString = this.tokenize(oldString);
-
- var newLen = newString.length, oldLen = oldString.length;
- var editLength = 1;
- var maxEditLength = newLen + oldLen;
- var bestPath = [{ newPos: -1, components: [] }];
-
- // Seed editLength = 0, i.e. the content starts with the same values
- var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);
- if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {
- // Identity per the equality and tokenizer
- return done([{value: newString.join('')}]);
- }
-
- // Main worker method. checks all permutations of a given edit length for acceptance.
- function execEditLength() {
- for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {
- var basePath;
- var addPath = bestPath[diagonalPath - 1],
- removePath = bestPath[diagonalPath + 1],
- oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;
- if (addPath) {
- // No one else is going to attempt to use this value, clear it
- bestPath[diagonalPath - 1] = undefined;
- }
-
- var canAdd = addPath && addPath.newPos + 1 < newLen,
- canRemove = removePath && 0 <= oldPos && oldPos < oldLen;
- if (!canAdd && !canRemove) {
- // If this path is a terminal then prune
- bestPath[diagonalPath] = undefined;
- continue;
- }
-
- // Select the diagonal that we want to branch from. We select the prior
- // path whose position in the new string is the farthest from the origin
- // and does not pass the bounds of the diff graph
- if (!canAdd || (canRemove && addPath.newPos < removePath.newPos)) {
- basePath = clonePath(removePath);
- self.pushComponent(basePath.components, undefined, true);
- } else {
- basePath = addPath; // No need to clone, we've pulled it from the list
- basePath.newPos++;
- self.pushComponent(basePath.components, true, undefined);
- }
-
- oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath);
-
- // If we have hit the end of both strings, then we are done
- if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {
- return done(buildValues(basePath.components, newString, oldString, self.useLongestToken));
- } else {
- // Otherwise track this path as a potential candidate and continue.
- bestPath[diagonalPath] = basePath;
- }
- }
-
- editLength++;
- }
-
- // Performs the length of edit iteration. Is a bit fugly as this has to support the
- // sync and async mode which is never fun. Loops over execEditLength until a value
- // is produced.
- if (callback) {
- (function exec() {
- setTimeout(function() {
- // This should not happen, but we want to be safe.
- /*istanbul ignore next */
- if (editLength > maxEditLength) {
- return callback();
- }
-
- if (!execEditLength()) {
- exec();
- }
- }, 0);
- }());
- } else {
- while (editLength <= maxEditLength) {
- var ret = execEditLength();
- if (ret) {
- return ret;
- }
- }
- }
- },
-
- pushComponent: function(components, added, removed) {
- var last = components[components.length - 1];
- if (last && last.added === added && last.removed === removed) {
- // We need to clone here as the component clone operation is just
- // as shallow array clone
- components[components.length - 1] = {count: last.count + 1, added: added, removed: removed };
- } else {
- components.push({count: 1, added: added, removed: removed });
- }
- },
- extractCommon: function(basePath, newString, oldString, diagonalPath) {
- var newLen = newString.length,
- oldLen = oldString.length,
- newPos = basePath.newPos,
- oldPos = newPos - diagonalPath,
-
- commonCount = 0;
- while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {
- newPos++;
- oldPos++;
- commonCount++;
- }
-
- if (commonCount) {
- basePath.components.push({count: commonCount});
- }
-
- basePath.newPos = newPos;
- return oldPos;
- },
-
- equals: function(left, right) {
- var reWhitespace = /\S/;
- return left === right || (this.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right));
- },
- tokenize: function(value) {
- return value.split('');
- }
- };
-
- var CharDiff = new Diff();
-
- var WordDiff = new Diff(true);
- var WordWithSpaceDiff = new Diff();
- WordDiff.tokenize = WordWithSpaceDiff.tokenize = function(value) {
- return removeEmpty(value.split(/(\s+|\b)/));
- };
-
- var CssDiff = new Diff(true);
- CssDiff.tokenize = function(value) {
- return removeEmpty(value.split(/([{}:;,]|\s+)/));
- };
-
- var LineDiff = new Diff();
-
- var TrimmedLineDiff = new Diff();
- TrimmedLineDiff.ignoreTrim = true;
-
- LineDiff.tokenize = TrimmedLineDiff.tokenize = function(value) {
- var retLines = [],
- lines = value.split(/^/m);
- for (var i = 0; i < lines.length; i++) {
- var line = lines[i],
- lastLine = lines[i - 1],
- lastLineLastChar = lastLine && lastLine[lastLine.length - 1];
-
- // Merge lines that may contain windows new lines
- if (line === '\n' && lastLineLastChar === '\r') {
- retLines[retLines.length - 1] = retLines[retLines.length - 1].slice(0, -1) + '\r\n';
- } else {
- if (this.ignoreTrim) {
- line = line.trim();
- // add a newline unless this is the last line.
- if (i < lines.length - 1) {
- line += '\n';
- }
- }
- retLines.push(line);
- }
- }
-
- return retLines;
- };
-
- var PatchDiff = new Diff();
- PatchDiff.tokenize = function(value) {
- var ret = [],
- linesAndNewlines = value.split(/(\n|\r\n)/);
-
- // Ignore the final empty token that occurs if the string ends with a new line
- if (!linesAndNewlines[linesAndNewlines.length - 1]) {
- linesAndNewlines.pop();
- }
-
- // Merge the content and line separators into single tokens
- for (var i = 0; i < linesAndNewlines.length; i++) {
- var line = linesAndNewlines[i];
-
- if (i % 2) {
- ret[ret.length - 1] += line;
- } else {
- ret.push(line);
- }
- }
- return ret;
- };
-
- var SentenceDiff = new Diff();
- SentenceDiff.tokenize = function(value) {
- return removeEmpty(value.split(/(\S.+?[.!?])(?=\s+|$)/));
- };
-
- var JsonDiff = new Diff();
- // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a
- // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:
- JsonDiff.useLongestToken = true;
- JsonDiff.tokenize = LineDiff.tokenize;
- JsonDiff.equals = function(left, right) {
- return LineDiff.equals(left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1'));
- };
-
- var JsDiff = {
- Diff: Diff,
-
- diffChars: function(oldStr, newStr, callback) { return CharDiff.diff(oldStr, newStr, callback); },
- diffWords: function(oldStr, newStr, callback) { return WordDiff.diff(oldStr, newStr, callback); },
- diffWordsWithSpace: function(oldStr, newStr, callback) { return WordWithSpaceDiff.diff(oldStr, newStr, callback); },
- diffLines: function(oldStr, newStr, callback) { return LineDiff.diff(oldStr, newStr, callback); },
- diffTrimmedLines: function(oldStr, newStr, callback) { return TrimmedLineDiff.diff(oldStr, newStr, callback); },
-
- diffSentences: function(oldStr, newStr, callback) { return SentenceDiff.diff(oldStr, newStr, callback); },
-
- diffCss: function(oldStr, newStr, callback) { return CssDiff.diff(oldStr, newStr, callback); },
- diffJson: function(oldObj, newObj, callback) {
- return JsonDiff.diff(
- typeof oldObj === 'string' ? oldObj : JSON.stringify(canonicalize(oldObj), undefined, ' '),
- typeof newObj === 'string' ? newObj : JSON.stringify(canonicalize(newObj), undefined, ' '),
- callback
- );
- },
-
- createTwoFilesPatch: function(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader) {
- var ret = [];
-
- if (oldFileName == newFileName) {
- ret.push('Index: ' + oldFileName);
- }
- ret.push('===================================================================');
- ret.push('--- ' + oldFileName + (typeof oldHeader === 'undefined' ? '' : '\t' + oldHeader));
- ret.push('+++ ' + newFileName + (typeof newHeader === 'undefined' ? '' : '\t' + newHeader));
-
- var diff = PatchDiff.diff(oldStr, newStr);
- diff.push({value: '', lines: []}); // Append an empty value to make cleanup easier
-
- // Formats a given set of lines for printing as context lines in a patch
- function contextLines(lines) {
- return map(lines, function(entry) { return ' ' + entry; });
- }
-
- // Outputs the no newline at end of file warning if needed
- function eofNL(curRange, i, current) {
- var last = diff[diff.length - 2],
- isLast = i === diff.length - 2,
- isLastOfType = i === diff.length - 3 && current.added !== last.added;
-
- // Figure out if this is the last line for the given file and missing NL
- if (!(/\n$/.test(current.value)) && (isLast || isLastOfType)) {
- curRange.push('\\ No newline at end of file');
- }
- }
-
- var oldRangeStart = 0, newRangeStart = 0, curRange = [],
- oldLine = 1, newLine = 1;
- for (var i = 0; i < diff.length; i++) {
- var current = diff[i],
- lines = current.lines || current.value.replace(/\n$/, '').split('\n');
- current.lines = lines;
-
- if (current.added || current.removed) {
- // If we have previous context, start with that
- if (!oldRangeStart) {
- var prev = diff[i - 1];
- oldRangeStart = oldLine;
- newRangeStart = newLine;
-
- if (prev) {
- curRange = contextLines(prev.lines.slice(-4));
- oldRangeStart -= curRange.length;
- newRangeStart -= curRange.length;
- }
- }
-
- // Output our changes
- curRange.push.apply(curRange, map(lines, function(entry) {
- return (current.added ? '+' : '-') + entry;
- }));
- eofNL(curRange, i, current);
-
- // Track the updated file position
- if (current.added) {
- newLine += lines.length;
- } else {
- oldLine += lines.length;
- }
- } else {
- // Identical context lines. Track line changes
- if (oldRangeStart) {
- // Close out any changes that have been output (or join overlapping)
- if (lines.length <= 8 && i < diff.length - 2) {
- // Overlapping
- curRange.push.apply(curRange, contextLines(lines));
- } else {
- // end the range and output
- var contextSize = Math.min(lines.length, 4);
- ret.push(
- '@@ -' + oldRangeStart + ',' + (oldLine - oldRangeStart + contextSize)
- + ' +' + newRangeStart + ',' + (newLine - newRangeStart + contextSize)
- + ' @@');
- ret.push.apply(ret, curRange);
- ret.push.apply(ret, contextLines(lines.slice(0, contextSize)));
- if (lines.length <= 4) {
- eofNL(ret, i, current);
- }
-
- oldRangeStart = 0;
- newRangeStart = 0;
- curRange = [];
- }
- }
- oldLine += lines.length;
- newLine += lines.length;
- }
- }
-
- return ret.join('\n') + '\n';
- },
-
- createPatch: function(fileName, oldStr, newStr, oldHeader, newHeader) {
- return JsDiff.createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader);
- },
-
- applyPatch: function(oldStr, uniDiff) {
- var diffstr = uniDiff.split('\n'),
- hunks = [],
- i = 0,
- remEOFNL = false,
- addEOFNL = false;
-
- // Skip to the first change hunk
- while (i < diffstr.length && !(/^@@/.test(diffstr[i]))) {
- i++;
- }
-
- // Parse the unified diff
- for (; i < diffstr.length; i++) {
- if (diffstr[i][0] === '@') {
- var chnukHeader = diffstr[i].split(/@@ -(\d+),(\d+) \+(\d+),(\d+) @@/);
- hunks.unshift({
- start: chnukHeader[3],
- oldlength: +chnukHeader[2],
- removed: [],
- newlength: chnukHeader[4],
- added: []
- });
- } else if (diffstr[i][0] === '+') {
- hunks[0].added.push(diffstr[i].substr(1));
- } else if (diffstr[i][0] === '-') {
- hunks[0].removed.push(diffstr[i].substr(1));
- } else if (diffstr[i][0] === ' ') {
- hunks[0].added.push(diffstr[i].substr(1));
- hunks[0].removed.push(diffstr[i].substr(1));
- } else if (diffstr[i][0] === '\\') {
- if (diffstr[i - 1][0] === '+') {
- remEOFNL = true;
- } else if (diffstr[i - 1][0] === '-') {
- addEOFNL = true;
- }
- }
- }
-
- // Apply the diff to the input
- var lines = oldStr.split('\n');
- for (i = hunks.length - 1; i >= 0; i--) {
- var hunk = hunks[i];
- // Sanity check the input string. Bail if we don't match.
- for (var j = 0; j < hunk.oldlength; j++) {
- if (lines[hunk.start - 1 + j] !== hunk.removed[j]) {
- return false;
- }
- }
- Array.prototype.splice.apply(lines, [hunk.start - 1, hunk.oldlength].concat(hunk.added));
- }
-
- // Handle EOFNL insertion/removal
- if (remEOFNL) {
- while (!lines[lines.length - 1]) {
- lines.pop();
- }
- } else if (addEOFNL) {
- lines.push('');
- }
- return lines.join('\n');
- },
-
- convertChangesToXML: function(changes) {
- var ret = [];
- for (var i = 0; i < changes.length; i++) {
- var change = changes[i];
- if (change.added) {
- ret.push('<ins>');
- } else if (change.removed) {
- ret.push('<del>');
- }
-
- ret.push(escapeHTML(change.value));
-
- if (change.added) {
- ret.push('</ins>');
- } else if (change.removed) {
- ret.push('</del>');
- }
- }
- return ret.join('');
- },
-
- // See: http://code.google.com/p/google-diff-match-patch/wiki/API
- convertChangesToDMP: function(changes) {
- var ret = [],
- change,
- operation;
- for (var i = 0; i < changes.length; i++) {
- change = changes[i];
- if (change.added) {
- operation = 1;
- } else if (change.removed) {
- operation = -1;
- } else {
- operation = 0;
- }
-
- ret.push([operation, change.value]);
- }
- return ret;
- },
-
- canonicalize: canonicalize
- };
-
- /*istanbul ignore next */
- /*global module */
- if (typeof module !== 'undefined' && module.exports) {
- module.exports = JsDiff;
- } else if (typeof define === 'function' && define.amd) {
- /*global define */
- define([], function() { return JsDiff; });
- } else if (typeof global.JsDiff === 'undefined') {
- global.JsDiff = JsDiff;
- }
-}(this));
diff --git a/node_modules/diff/package.json b/node_modules/diff/package.json
index 2bd81f896..99a4fea46 100644
--- a/node_modules/diff/package.json
+++ b/node_modules/diff/package.json
@@ -1,6 +1,6 @@
{
"name": "diff",
- "version": "1.4.0",
+ "version": "3.2.0",
"description": "A javascript text diff implementation.",
"keywords": [
"diff",
@@ -13,12 +13,7 @@
"email": "kpdecker@gmail.com",
"url": "http://github.com/kpdecker/jsdiff/issues"
},
- "licenses": [
- {
- "type": "BSD",
- "url": "http://github.com/kpdecker/jsdiff/blob/master/LICENSE"
- }
- ],
+ "license": "BSD-3-Clause",
"repository": {
"type": "git",
"url": "git://github.com/kpdecker/jsdiff.git"
@@ -26,19 +21,55 @@
"engines": {
"node": ">=0.3.1"
},
- "main": "./diff",
+ "main": "./lib",
"scripts": {
- "test": "istanbul cover node_modules/.bin/_mocha test/*.js && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100 coverage/coverage.json"
+ "test": "grunt"
},
"dependencies": {},
"devDependencies": {
- "colors": "^1.1.0",
- "istanbul": "^0.3.2",
- "mocha": "^2.2.4",
- "should": "^6.0.1"
+ "async": "^1.4.2",
+ "babel-core": "^6.0.0",
+ "babel-loader": "^6.0.0",
+ "babel-preset-es2015-mod": "^6.3.13",
+ "babel-preset-es3": "^1.0.1",
+ "chai": "^3.3.0",
+ "colors": "^1.1.2",
+ "eslint": "^1.6.0",
+ "grunt": "^0.4.5",
+ "grunt-babel": "^6.0.0",
+ "grunt-clean": "^0.4.0",
+ "grunt-cli": "^0.1.13",
+ "grunt-contrib-clean": "^1.0.0",
+ "grunt-contrib-copy": "^1.0.0",
+ "grunt-contrib-uglify": "^1.0.0",
+ "grunt-contrib-watch": "^1.0.0",
+ "grunt-eslint": "^17.3.1",
+ "grunt-karma": "^0.12.1",
+ "grunt-mocha-istanbul": "^3.0.1",
+ "grunt-mocha-test": "^0.12.7",
+ "grunt-webpack": "^1.0.11",
+ "istanbul": "github:kpdecker/istanbul",
+ "karma": "^0.13.11",
+ "karma-mocha": "^0.2.0",
+ "karma-mocha-reporter": "^2.0.0",
+ "karma-phantomjs-launcher": "^1.0.0",
+ "karma-sauce-launcher": "^0.3.0",
+ "karma-sourcemap-loader": "^0.3.6",
+ "karma-webpack": "^1.7.0",
+ "mocha": "^2.3.3",
+ "phantomjs-prebuilt": "^2.1.5",
+ "semver": "^5.0.3",
+ "webpack": "^1.12.2",
+ "webpack-dev-server": "^1.12.0"
},
"optionalDependencies": {},
- "files": [
- "diff.js"
- ]
+ "babel": {
+ "sourceMaps": "inline",
+ "presets": [
+ "es3",
+ "es2015-mod"
+ ],
+ "auxiliaryCommentBefore": "istanbul ignore start",
+ "auxiliaryCommentAfter": "istanbul ignore end"
+ }
}
diff --git a/node_modules/ee-first/LICENSE b/node_modules/ee-first/LICENSE
deleted file mode 100644
index a7ae8ee9b..000000000
--- a/node_modules/ee-first/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-
-The MIT License (MIT)
-
-Copyright (c) 2014 Jonathan Ong me@jongleberry.com
-
-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.
diff --git a/node_modules/ee-first/README.md b/node_modules/ee-first/README.md
deleted file mode 100644
index cbd2478be..000000000
--- a/node_modules/ee-first/README.md
+++ /dev/null
@@ -1,80 +0,0 @@
-# EE First
-
-[![NPM version][npm-image]][npm-url]
-[![Build status][travis-image]][travis-url]
-[![Test coverage][coveralls-image]][coveralls-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-[![Gittip][gittip-image]][gittip-url]
-
-Get the first event in a set of event emitters and event pairs,
-then clean up after itself.
-
-## Install
-
-```sh
-$ npm install ee-first
-```
-
-## API
-
-```js
-var first = require('ee-first')
-```
-
-### first(arr, listener)
-
-Invoke `listener` on the first event from the list specified in `arr`. `arr` is
-an array of arrays, with each array in the format `[ee, ...event]`. `listener`
-will be called only once, the first time any of the given events are emitted. If
-`error` is one of the listened events, then if that fires first, the `listener`
-will be given the `err` argument.
-
-The `listener` is invoked as `listener(err, ee, event, args)`, where `err` is the
-first argument emitted from an `error` event, if applicable; `ee` is the event
-emitter that fired; `event` is the string event name that fired; and `args` is an
-array of the arguments that were emitted on the event.
-
-```js
-var ee1 = new EventEmitter()
-var ee2 = new EventEmitter()
-
-first([
- [ee1, 'close', 'end', 'error'],
- [ee2, 'error']
-], function (err, ee, event, args) {
- // listener invoked
-})
-```
-
-#### .cancel()
-
-The group of listeners can be cancelled before being invoked and have all the event
-listeners removed from the underlying event emitters.
-
-```js
-var thunk = first([
- [ee1, 'close', 'end', 'error'],
- [ee2, 'error']
-], function (err, ee, event, args) {
- // listener invoked
-})
-
-// cancel and clean up
-thunk.cancel()
-```
-
-[npm-image]: https://img.shields.io/npm/v/ee-first.svg?style=flat-square
-[npm-url]: https://npmjs.org/package/ee-first
-[github-tag]: http://img.shields.io/github/tag/jonathanong/ee-first.svg?style=flat-square
-[github-url]: https://github.com/jonathanong/ee-first/tags
-[travis-image]: https://img.shields.io/travis/jonathanong/ee-first.svg?style=flat-square
-[travis-url]: https://travis-ci.org/jonathanong/ee-first
-[coveralls-image]: https://img.shields.io/coveralls/jonathanong/ee-first.svg?style=flat-square
-[coveralls-url]: https://coveralls.io/r/jonathanong/ee-first?branch=master
-[license-image]: http://img.shields.io/npm/l/ee-first.svg?style=flat-square
-[license-url]: LICENSE.md
-[downloads-image]: http://img.shields.io/npm/dm/ee-first.svg?style=flat-square
-[downloads-url]: https://npmjs.org/package/ee-first
-[gittip-image]: https://img.shields.io/gittip/jonathanong.svg?style=flat-square
-[gittip-url]: https://www.gittip.com/jonathanong/
diff --git a/node_modules/ee-first/index.js b/node_modules/ee-first/index.js
deleted file mode 100644
index 501287cd3..000000000
--- a/node_modules/ee-first/index.js
+++ /dev/null
@@ -1,95 +0,0 @@
-/*!
- * ee-first
- * Copyright(c) 2014 Jonathan Ong
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = first
-
-/**
- * Get the first event in a set of event emitters and event pairs.
- *
- * @param {array} stuff
- * @param {function} done
- * @public
- */
-
-function first(stuff, done) {
- if (!Array.isArray(stuff))
- throw new TypeError('arg must be an array of [ee, events...] arrays')
-
- var cleanups = []
-
- for (var i = 0; i < stuff.length; i++) {
- var arr = stuff[i]
-
- if (!Array.isArray(arr) || arr.length < 2)
- throw new TypeError('each array member must be [ee, events...]')
-
- var ee = arr[0]
-
- for (var j = 1; j < arr.length; j++) {
- var event = arr[j]
- var fn = listener(event, callback)
-
- // listen to the event
- ee.on(event, fn)
- // push this listener to the list of cleanups
- cleanups.push({
- ee: ee,
- event: event,
- fn: fn,
- })
- }
- }
-
- function callback() {
- cleanup()
- done.apply(null, arguments)
- }
-
- function cleanup() {
- var x
- for (var i = 0; i < cleanups.length; i++) {
- x = cleanups[i]
- x.ee.removeListener(x.event, x.fn)
- }
- }
-
- function thunk(fn) {
- done = fn
- }
-
- thunk.cancel = cleanup
-
- return thunk
-}
-
-/**
- * Create the event listener.
- * @private
- */
-
-function listener(event, done) {
- return function onevent(arg1) {
- var args = new Array(arguments.length)
- var ee = this
- var err = event === 'error'
- ? arg1
- : null
-
- // copy args to prevent arguments escaping scope
- for (var i = 0; i < args.length; i++) {
- args[i] = arguments[i]
- }
-
- done(err, ee, event, args)
- }
-}
diff --git a/node_modules/ee-first/package.json b/node_modules/ee-first/package.json
deleted file mode 100644
index b6d0b7d67..000000000
--- a/node_modules/ee-first/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "ee-first",
- "description": "return the first event in a set of ee/event pairs",
- "version": "1.1.1",
- "author": {
- "name": "Jonathan Ong",
- "email": "me@jongleberry.com",
- "url": "http://jongleberry.com",
- "twitter": "https://twitter.com/jongleberry"
- },
- "contributors": [
- "Douglas Christopher Wilson <doug@somethingdoug.com>"
- ],
- "license": "MIT",
- "repository": "jonathanong/ee-first",
- "devDependencies": {
- "istanbul": "0.3.9",
- "mocha": "2.2.5"
- },
- "files": [
- "index.js",
- "LICENSE"
- ],
- "scripts": {
- "test": "mocha --reporter spec --bail --check-leaks test/",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/",
- "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"
- }
-}
diff --git a/node_modules/encodeurl/HISTORY.md b/node_modules/encodeurl/HISTORY.md
deleted file mode 100644
index 06d34a5aa..000000000
--- a/node_modules/encodeurl/HISTORY.md
+++ /dev/null
@@ -1,9 +0,0 @@
-1.0.1 / 2016-06-09
-==================
-
- * Fix encoding unpaired surrogates at start/end of string
-
-1.0.0 / 2016-06-08
-==================
-
- * Initial release
diff --git a/node_modules/encodeurl/LICENSE b/node_modules/encodeurl/LICENSE
deleted file mode 100644
index 8812229bc..000000000
--- a/node_modules/encodeurl/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2016 Douglas Christopher Wilson
-
-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.
diff --git a/node_modules/encodeurl/README.md b/node_modules/encodeurl/README.md
deleted file mode 100644
index b086133cc..000000000
--- a/node_modules/encodeurl/README.md
+++ /dev/null
@@ -1,124 +0,0 @@
-# encodeurl
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Node.js Version][node-version-image]][node-version-url]
-[![Build Status][travis-image]][travis-url]
-[![Test Coverage][coveralls-image]][coveralls-url]
-
-Encode a URL to a percent-encoded form, excluding already-encoded sequences
-
-## Installation
-
-```sh
-$ npm install encodeurl
-```
-
-## API
-
-```js
-var encodeUrl = require('encodeurl')
-```
-
-### encodeUrl(url)
-
-Encode a URL to a percent-encoded form, excluding already-encoded sequences.
-
-This function will take an already-encoded URL and encode all the non-URL
-code points (as UTF-8 byte sequences). This function will not encode the
-"%" character unless it is not part of a valid sequence (`%20` will be
-left as-is, but `%foo` will be encoded as `%25foo`).
-
-This encode is meant to be "safe" and does not throw errors. It will try as
-hard as it can to properly encode the given URL, including replacing any raw,
-unpaired surrogate pairs with the Unicode replacement character prior to
-encoding.
-
-This function is _similar_ to the intrinsic function `encodeURI`, except it
-will not encode the `%` character if that is part of a valid sequence, will
-not encode `[` and `]` (for IPv6 hostnames) and will replace raw, unpaired
-surrogate pairs with the Unicode replacement character (instead of throwing).
-
-## Examples
-
-### Encode a URL containing user-controled data
-
-```js
-var encodeUrl = require('encodeurl')
-var escapeHtml = require('escape-html')
-
-http.createServer(function onRequest (req, res) {
- // get encoded form of inbound url
- var url = encodeUrl(req.url)
-
- // create html message
- var body = '<p>Location ' + escapeHtml(url) + ' not found</p>'
-
- // send a 404
- res.statusCode = 404
- res.setHeader('Content-Type', 'text/html; charset=UTF-8')
- res.setHeader('Content-Length', String(Buffer.byteLength(body, 'utf-8')))
- res.end(body, 'utf-8')
-})
-```
-
-### Encode a URL for use in a header field
-
-```js
-var encodeUrl = require('encodeurl')
-var escapeHtml = require('escape-html')
-var url = require('url')
-
-http.createServer(function onRequest (req, res) {
- // parse inbound url
- var href = url.parse(req)
-
- // set new host for redirect
- href.host = 'localhost'
- href.protocol = 'https:'
- href.slashes = true
-
- // create location header
- var location = encodeUrl(url.format(href))
-
- // create html message
- var body = '<p>Redirecting to new site: ' + escapeHtml(location) + '</p>'
-
- // send a 301
- res.statusCode = 301
- res.setHeader('Content-Type', 'text/html; charset=UTF-8')
- res.setHeader('Content-Length', String(Buffer.byteLength(body, 'utf-8')))
- res.setHeader('Location', location)
- res.end(body, 'utf-8')
-})
-```
-
-## Testing
-
-```sh
-$ npm test
-$ npm run lint
-```
-
-## References
-
-- [RFC 3986: Uniform Resource Identifier (URI): Generic Syntax][rfc-3986]
-- [WHATWG URL Living Standard][whatwg-url]
-
-[rfc-3986]: https://tools.ietf.org/html/rfc3986
-[whatwg-url]: https://url.spec.whatwg.org/
-
-## License
-
-[MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/encodeurl.svg
-[npm-url]: https://npmjs.org/package/encodeurl
-[node-version-image]: https://img.shields.io/node/v/encodeurl.svg
-[node-version-url]: https://nodejs.org/en/download
-[travis-image]: https://img.shields.io/travis/pillarjs/encodeurl.svg
-[travis-url]: https://travis-ci.org/pillarjs/encodeurl
-[coveralls-image]: https://img.shields.io/coveralls/pillarjs/encodeurl.svg
-[coveralls-url]: https://coveralls.io/r/pillarjs/encodeurl?branch=master
-[downloads-image]: https://img.shields.io/npm/dm/encodeurl.svg
-[downloads-url]: https://npmjs.org/package/encodeurl
diff --git a/node_modules/encodeurl/index.js b/node_modules/encodeurl/index.js
deleted file mode 100644
index ae77cc94d..000000000
--- a/node_modules/encodeurl/index.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/*!
- * encodeurl
- * Copyright(c) 2016 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = encodeUrl
-
-/**
- * RegExp to match non-URL code points, *after* encoding (i.e. not including "%")
- * and including invalid escape sequences.
- * @private
- */
-
-var ENCODE_CHARS_REGEXP = /(?:[^\x21\x25\x26-\x3B\x3D\x3F-\x5B\x5D\x5F\x61-\x7A\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]))+/g
-
-/**
- * RegExp to match unmatched surrogate pair.
- * @private
- */
-
-var UNMATCHED_SURROGATE_PAIR_REGEXP = /(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g
-
-/**
- * String to replace unmatched surrogate pair with.
- * @private
- */
-
-var UNMATCHED_SURROGATE_PAIR_REPLACE = '$1\uFFFD$2'
-
-/**
- * Encode a URL to a percent-encoded form, excluding already-encoded sequences.
- *
- * This function will take an already-encoded URL and encode all the non-URL
- * code points. This function will not encode the "%" character unless it is
- * not part of a valid sequence (`%20` will be left as-is, but `%foo` will
- * be encoded as `%25foo`).
- *
- * This encode is meant to be "safe" and does not throw errors. It will try as
- * hard as it can to properly encode the given URL, including replacing any raw,
- * unpaired surrogate pairs with the Unicode replacement character prior to
- * encoding.
- *
- * @param {string} url
- * @return {string}
- * @public
- */
-
-function encodeUrl (url) {
- return String(url)
- .replace(UNMATCHED_SURROGATE_PAIR_REGEXP, UNMATCHED_SURROGATE_PAIR_REPLACE)
- .replace(ENCODE_CHARS_REGEXP, encodeURI)
-}
diff --git a/node_modules/encodeurl/package.json b/node_modules/encodeurl/package.json
deleted file mode 100644
index df06c9644..000000000
--- a/node_modules/encodeurl/package.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "encodeurl",
- "description": "Encode a URL to a percent-encoded form, excluding already-encoded sequences",
- "version": "1.0.1",
- "contributors": [
- "Douglas Christopher Wilson <doug@somethingdoug.com>"
- ],
- "license": "MIT",
- "keywords": [
- "encode",
- "encodeurl",
- "url"
- ],
- "repository": "pillarjs/encodeurl",
- "devDependencies": {
- "eslint": "2.11.1",
- "eslint-config-standard": "5.3.1",
- "eslint-plugin-promise": "1.3.2",
- "eslint-plugin-standard": "1.3.2",
- "istanbul": "0.4.3",
- "mocha": "2.5.3"
- },
- "files": [
- "LICENSE",
- "HISTORY.md",
- "README.md",
- "index.js"
- ],
- "engines": {
- "node": ">= 0.8"
- },
- "scripts": {
- "lint": "eslint **/*.js",
- "test": "mocha --reporter spec --bail --check-leaks test/",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/",
- "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"
- }
-}
diff --git a/node_modules/escape-html/LICENSE b/node_modules/escape-html/LICENSE
deleted file mode 100644
index 2e70de971..000000000
--- a/node_modules/escape-html/LICENSE
+++ /dev/null
@@ -1,24 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2012-2013 TJ Holowaychuk
-Copyright (c) 2015 Andreas Lubbe
-Copyright (c) 2015 Tiancheng "Timothy" Gu
-
-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.
diff --git a/node_modules/escape-html/Readme.md b/node_modules/escape-html/Readme.md
deleted file mode 100644
index 653d9eaa7..000000000
--- a/node_modules/escape-html/Readme.md
+++ /dev/null
@@ -1,43 +0,0 @@
-
-# escape-html
-
- Escape string for use in HTML
-
-## Example
-
-```js
-var escape = require('escape-html');
-var html = escape('foo & bar');
-// -> foo &amp; bar
-```
-
-## Benchmark
-
-```
-$ npm run-script bench
-
-> escape-html@1.0.3 bench nodejs-escape-html
-> node benchmark/index.js
-
-
- http_parser@1.0
- node@0.10.33
- v8@3.14.5.9
- ares@1.9.0-DEV
- uv@0.10.29
- zlib@1.2.3
- modules@11
- openssl@1.0.1j
-
- 1 test completed.
- 2 tests completed.
- 3 tests completed.
-
- no special characters x 19,435,271 ops/sec ±0.85% (187 runs sampled)
- single special character x 6,132,421 ops/sec ±0.67% (194 runs sampled)
- many special characters x 3,175,826 ops/sec ±0.65% (193 runs sampled)
-```
-
-## License
-
- MIT \ No newline at end of file
diff --git a/node_modules/escape-html/index.js b/node_modules/escape-html/index.js
deleted file mode 100644
index bf9e226f4..000000000
--- a/node_modules/escape-html/index.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/*!
- * escape-html
- * Copyright(c) 2012-2013 TJ Holowaychuk
- * Copyright(c) 2015 Andreas Lubbe
- * Copyright(c) 2015 Tiancheng "Timothy" Gu
- * MIT Licensed
- */
-
-'use strict';
-
-/**
- * Module variables.
- * @private
- */
-
-var matchHtmlRegExp = /["'&<>]/;
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = escapeHtml;
-
-/**
- * Escape special characters in the given string of html.
- *
- * @param {string} string The string to escape for inserting into HTML
- * @return {string}
- * @public
- */
-
-function escapeHtml(string) {
- var str = '' + string;
- var match = matchHtmlRegExp.exec(str);
-
- if (!match) {
- return str;
- }
-
- var escape;
- var html = '';
- var index = 0;
- var lastIndex = 0;
-
- for (index = match.index; index < str.length; index++) {
- switch (str.charCodeAt(index)) {
- case 34: // "
- escape = '&quot;';
- break;
- case 38: // &
- escape = '&amp;';
- break;
- case 39: // '
- escape = '&#39;';
- break;
- case 60: // <
- escape = '&lt;';
- break;
- case 62: // >
- escape = '&gt;';
- break;
- default:
- continue;
- }
-
- if (lastIndex !== index) {
- html += str.substring(lastIndex, index);
- }
-
- lastIndex = index + 1;
- html += escape;
- }
-
- return lastIndex !== index
- ? html + str.substring(lastIndex, index)
- : html;
-}
diff --git a/node_modules/escape-html/package.json b/node_modules/escape-html/package.json
deleted file mode 100644
index 57ec7bd07..000000000
--- a/node_modules/escape-html/package.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "name": "escape-html",
- "description": "Escape string for use in HTML",
- "version": "1.0.3",
- "license": "MIT",
- "keywords": [
- "escape",
- "html",
- "utility"
- ],
- "repository": "component/escape-html",
- "devDependencies": {
- "benchmark": "1.0.0",
- "beautify-benchmark": "0.2.4"
- },
- "files": [
- "LICENSE",
- "Readme.md",
- "index.js"
- ],
- "scripts": {
- "bench": "node benchmark/index.js"
- }
-}
diff --git a/node_modules/escape-string-regexp/index.js b/node_modules/escape-string-regexp/index.js
index ac6572cab..7834bf9b2 100644
--- a/node_modules/escape-string-regexp/index.js
+++ b/node_modules/escape-string-regexp/index.js
@@ -7,5 +7,5 @@ module.exports = function (str) {
throw new TypeError('Expected a string');
}
- return str.replace(matchOperatorsRe, '\\$&');
+ return str.replace(matchOperatorsRe, '\\$&');
};
diff --git a/node_modules/escape-string-regexp/package.json b/node_modules/escape-string-regexp/package.json
index 1dff6ff23..f307df34a 100644
--- a/node_modules/escape-string-regexp/package.json
+++ b/node_modules/escape-string-regexp/package.json
@@ -1,36 +1,41 @@
{
"name": "escape-string-regexp",
- "version": "1.0.2",
+ "version": "1.0.5",
"description": "Escape RegExp special characters",
"license": "MIT",
"repository": "sindresorhus/escape-string-regexp",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
- "url": "http://sindresorhus.com"
+ "url": "sindresorhus.com"
},
+ "maintainers": [
+ "Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)",
+ "Joshua Boy Nicolai Appelman <joshua@jbna.nl> (jbna.nl)"
+ ],
"engines": {
"node": ">=0.8.0"
},
"scripts": {
- "test": "mocha"
+ "test": "xo && ava"
},
"files": [
"index.js"
],
"keywords": [
+ "escape",
"regex",
"regexp",
"re",
"regular",
"expression",
- "escape",
"string",
"str",
"special",
"characters"
],
"devDependencies": {
- "mocha": "*"
+ "ava": "*",
+ "xo": "*"
}
}
diff --git a/node_modules/escape-string-regexp/readme.md b/node_modules/escape-string-regexp/readme.md
index 808a963a8..87ac82d5e 100644
--- a/node_modules/escape-string-regexp/readme.md
+++ b/node_modules/escape-string-regexp/readme.md
@@ -5,7 +5,7 @@
## Install
-```sh
+```
$ npm install --save escape-string-regexp
```
@@ -13,10 +13,10 @@ $ npm install --save escape-string-regexp
## Usage
```js
-var escapeStringRegexp = require('escape-string-regexp');
+const escapeStringRegexp = require('escape-string-regexp');
-var escapedString = escapeStringRegexp('how much $ for a unicorn?');
-//=> how much \$ for a unicorn\?
+const escapedString = escapeStringRegexp('how much $ for a unicorn?');
+//=> 'how much \$ for a unicorn\?'
new RegExp(escapedString);
```
diff --git a/node_modules/escodegen/LICENSE.BSD b/node_modules/escodegen/LICENSE.BSD
deleted file mode 100644
index 3e580c355..000000000
--- a/node_modules/escodegen/LICENSE.BSD
+++ /dev/null
@@ -1,19 +0,0 @@
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/node_modules/escodegen/LICENSE.source-map b/node_modules/escodegen/LICENSE.source-map
deleted file mode 100644
index 259c59ff9..000000000
--- a/node_modules/escodegen/LICENSE.source-map
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2009-2011, Mozilla Foundation and contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the names of the Mozilla Foundation nor the names of project
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/node_modules/escodegen/README.md b/node_modules/escodegen/README.md
deleted file mode 100644
index e867e4b62..000000000
--- a/node_modules/escodegen/README.md
+++ /dev/null
@@ -1,116 +0,0 @@
-## Escodegen
-[![npm version](https://badge.fury.io/js/escodegen.svg)](http://badge.fury.io/js/escodegen)
-[![Build Status](https://secure.travis-ci.org/estools/escodegen.svg)](http://travis-ci.org/estools/escodegen)
-[![Dependency Status](https://david-dm.org/estools/escodegen.svg)](https://david-dm.org/estools/escodegen)
-[![devDependency Status](https://david-dm.org/estools/escodegen/dev-status.svg)](https://david-dm.org/estools/escodegen#info=devDependencies)
-
-Escodegen ([escodegen](http://github.com/estools/escodegen)) is an
-[ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm)
-(also popularly known as [JavaScript](http://en.wikipedia.org/wiki/JavaScript))
-code generator from [Mozilla's Parser API](https://developer.mozilla.org/en/SpiderMonkey/Parser_API)
-AST. See the [online generator](https://estools.github.io/escodegen/demo/index.html)
-for a demo.
-
-
-### Install
-
-Escodegen can be used in a web browser:
-
- <script src="escodegen.browser.js"></script>
-
-escodegen.browser.js can be found in tagged revisions on GitHub.
-
-Or in a Node.js application via npm:
-
- npm install escodegen
-
-### Usage
-
-A simple example: the program
-
- escodegen.generate({
- type: 'BinaryExpression',
- operator: '+',
- left: { type: 'Literal', value: 40 },
- right: { type: 'Literal', value: 2 }
- });
-
-produces the string `'40 + 2'`.
-
-See the [API page](https://github.com/estools/escodegen/wiki/API) for
-options. To run the tests, execute `npm test` in the root directory.
-
-### Building browser bundle / minified browser bundle
-
-At first, execute `npm install` to install the all dev dependencies.
-After that,
-
- npm run-script build
-
-will generate `escodegen.browser.js`, which can be used in browser environments.
-
-And,
-
- npm run-script build-min
-
-will generate the minified file `escodegen.browser.min.js`.
-
-### License
-
-#### Escodegen
-
-Copyright (C) 2012 [Yusuke Suzuki](http://github.com/Constellation)
- (twitter: [@Constellation](http://twitter.com/Constellation)) and other contributors.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#### source-map
-
-SourceNodeMocks has a limited interface of mozilla/source-map SourceNode implementations.
-
-Copyright (c) 2009-2011, Mozilla Foundation and contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the names of the Mozilla Foundation nor the names of project
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/node_modules/escodegen/bin/escodegen.js b/node_modules/escodegen/bin/escodegen.js
deleted file mode 100755
index a7c38aa1e..000000000
--- a/node_modules/escodegen/bin/escodegen.js
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/env node
-/*
- Copyright (C) 2012 Yusuke Suzuki <utatane.tea@gmail.com>
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*jslint sloppy:true node:true */
-
-var fs = require('fs'),
- path = require('path'),
- root = path.join(path.dirname(fs.realpathSync(__filename)), '..'),
- esprima = require('esprima'),
- escodegen = require(root),
- optionator = require('optionator')({
- prepend: 'Usage: escodegen [options] file...',
- options: [
- {
- option: 'config',
- alias: 'c',
- type: 'String',
- description: 'configuration json for escodegen'
- }
- ]
- }),
- args = optionator.parse(process.argv),
- files = args._,
- options,
- esprimaOptions = {
- raw: true,
- tokens: true,
- range: true,
- comment: true
- };
-
-if (files.length === 0) {
- console.log(optionator.generateHelp());
- process.exit(1);
-}
-
-if (args.config) {
- try {
- options = JSON.parse(fs.readFileSync(args.config, 'utf-8'));
- } catch (err) {
- console.error('Error parsing config: ', err);
- }
-}
-
-files.forEach(function (filename) {
- var content = fs.readFileSync(filename, 'utf-8'),
- syntax = esprima.parse(content, esprimaOptions);
-
- if (options.comment) {
- escodegen.attachComments(syntax, syntax.comments, syntax.tokens);
- }
-
- console.log(escodegen.generate(syntax, options));
-});
-/* vim: set sw=4 ts=4 et tw=80 : */
diff --git a/node_modules/escodegen/bin/esgenerate.js b/node_modules/escodegen/bin/esgenerate.js
deleted file mode 100755
index 449abcc8c..000000000
--- a/node_modules/escodegen/bin/esgenerate.js
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/env node
-/*
- Copyright (C) 2012 Yusuke Suzuki <utatane.tea@gmail.com>
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*jslint sloppy:true node:true */
-
-var fs = require('fs'),
- path = require('path'),
- root = path.join(path.dirname(fs.realpathSync(__filename)), '..'),
- escodegen = require(root),
- optionator = require('optionator')({
- prepend: 'Usage: esgenerate [options] file.json ...',
- options: [
- {
- option: 'config',
- alias: 'c',
- type: 'String',
- description: 'configuration json for escodegen'
- }
- ]
- }),
- args = optionator.parse(process.argv),
- files = args._,
- options;
-
-if (files.length === 0) {
- console.log(optionator.generateHelp());
- process.exit(1);
-}
-
-if (args.config) {
- try {
- options = JSON.parse(fs.readFileSync(args.config, 'utf-8'))
- } catch (err) {
- console.error('Error parsing config: ', err);
- }
-}
-
-files.forEach(function (filename) {
- var content = fs.readFileSync(filename, 'utf-8');
- console.log(escodegen.generate(JSON.parse(content), options));
-});
-/* vim: set sw=4 ts=4 et tw=80 : */
diff --git a/node_modules/escodegen/escodegen.js b/node_modules/escodegen/escodegen.js
deleted file mode 100644
index 6202819e0..000000000
--- a/node_modules/escodegen/escodegen.js
+++ /dev/null
@@ -1,2607 +0,0 @@
-/*
- Copyright (C) 2012-2014 Yusuke Suzuki <utatane.tea@gmail.com>
- Copyright (C) 2015 Ingvar Stepanyan <me@rreverser.com>
- Copyright (C) 2014 Ivan Nikulin <ifaaan@gmail.com>
- Copyright (C) 2012-2013 Michael Ficarra <escodegen.copyright@michael.ficarra.me>
- Copyright (C) 2012-2013 Mathias Bynens <mathias@qiwi.be>
- Copyright (C) 2013 Irakli Gozalishvili <rfobic@gmail.com>
- Copyright (C) 2012 Robert Gust-Bardon <donate@robert.gust-bardon.org>
- Copyright (C) 2012 John Freeman <jfreeman08@gmail.com>
- Copyright (C) 2011-2012 Ariya Hidayat <ariya.hidayat@gmail.com>
- Copyright (C) 2012 Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>
- Copyright (C) 2012 Kris Kowal <kris.kowal@cixar.com>
- Copyright (C) 2012 Arpad Borsos <arpad.borsos@googlemail.com>
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*global exports:true, require:true, global:true*/
-(function () {
- 'use strict';
-
- var Syntax,
- Precedence,
- BinaryPrecedence,
- SourceNode,
- estraverse,
- esutils,
- isArray,
- base,
- indent,
- json,
- renumber,
- hexadecimal,
- quotes,
- escapeless,
- newline,
- space,
- parentheses,
- semicolons,
- safeConcatenation,
- directive,
- extra,
- parse,
- sourceMap,
- sourceCode,
- preserveBlankLines,
- FORMAT_MINIFY,
- FORMAT_DEFAULTS;
-
- estraverse = require('estraverse');
- esutils = require('esutils');
-
- Syntax = estraverse.Syntax;
-
- // Generation is done by generateExpression.
- function isExpression(node) {
- return CodeGenerator.Expression.hasOwnProperty(node.type);
- }
-
- // Generation is done by generateStatement.
- function isStatement(node) {
- return CodeGenerator.Statement.hasOwnProperty(node.type);
- }
-
- Precedence = {
- Sequence: 0,
- Yield: 1,
- Await: 1,
- Assignment: 1,
- Conditional: 2,
- ArrowFunction: 2,
- LogicalOR: 3,
- LogicalAND: 4,
- BitwiseOR: 5,
- BitwiseXOR: 6,
- BitwiseAND: 7,
- Equality: 8,
- Relational: 9,
- BitwiseSHIFT: 10,
- Additive: 11,
- Multiplicative: 12,
- Unary: 13,
- Postfix: 14,
- Call: 15,
- New: 16,
- TaggedTemplate: 17,
- Member: 18,
- Primary: 19
- };
-
- BinaryPrecedence = {
- '||': Precedence.LogicalOR,
- '&&': Precedence.LogicalAND,
- '|': Precedence.BitwiseOR,
- '^': Precedence.BitwiseXOR,
- '&': Precedence.BitwiseAND,
- '==': Precedence.Equality,
- '!=': Precedence.Equality,
- '===': Precedence.Equality,
- '!==': Precedence.Equality,
- 'is': Precedence.Equality,
- 'isnt': Precedence.Equality,
- '<': Precedence.Relational,
- '>': Precedence.Relational,
- '<=': Precedence.Relational,
- '>=': Precedence.Relational,
- 'in': Precedence.Relational,
- 'instanceof': Precedence.Relational,
- '<<': Precedence.BitwiseSHIFT,
- '>>': Precedence.BitwiseSHIFT,
- '>>>': Precedence.BitwiseSHIFT,
- '+': Precedence.Additive,
- '-': Precedence.Additive,
- '*': Precedence.Multiplicative,
- '%': Precedence.Multiplicative,
- '/': Precedence.Multiplicative
- };
-
- //Flags
- var F_ALLOW_IN = 1,
- F_ALLOW_CALL = 1 << 1,
- F_ALLOW_UNPARATH_NEW = 1 << 2,
- F_FUNC_BODY = 1 << 3,
- F_DIRECTIVE_CTX = 1 << 4,
- F_SEMICOLON_OPT = 1 << 5;
-
- //Expression flag sets
- //NOTE: Flag order:
- // F_ALLOW_IN
- // F_ALLOW_CALL
- // F_ALLOW_UNPARATH_NEW
- var E_FTT = F_ALLOW_CALL | F_ALLOW_UNPARATH_NEW,
- E_TTF = F_ALLOW_IN | F_ALLOW_CALL,
- E_TTT = F_ALLOW_IN | F_ALLOW_CALL | F_ALLOW_UNPARATH_NEW,
- E_TFF = F_ALLOW_IN,
- E_FFT = F_ALLOW_UNPARATH_NEW,
- E_TFT = F_ALLOW_IN | F_ALLOW_UNPARATH_NEW;
-
- //Statement flag sets
- //NOTE: Flag order:
- // F_ALLOW_IN
- // F_FUNC_BODY
- // F_DIRECTIVE_CTX
- // F_SEMICOLON_OPT
- var S_TFFF = F_ALLOW_IN,
- S_TFFT = F_ALLOW_IN | F_SEMICOLON_OPT,
- S_FFFF = 0x00,
- S_TFTF = F_ALLOW_IN | F_DIRECTIVE_CTX,
- S_TTFF = F_ALLOW_IN | F_FUNC_BODY;
-
- function getDefaultOptions() {
- // default options
- return {
- indent: null,
- base: null,
- parse: null,
- comment: false,
- format: {
- indent: {
- style: ' ',
- base: 0,
- adjustMultilineComment: false
- },
- newline: '\n',
- space: ' ',
- json: false,
- renumber: false,
- hexadecimal: false,
- quotes: 'single',
- escapeless: false,
- compact: false,
- parentheses: true,
- semicolons: true,
- safeConcatenation: false,
- preserveBlankLines: false
- },
- moz: {
- comprehensionExpressionStartsWithAssignment: false,
- starlessGenerator: false
- },
- sourceMap: null,
- sourceMapRoot: null,
- sourceMapWithCode: false,
- directive: false,
- raw: true,
- verbatim: null,
- sourceCode: null
- };
- }
-
- function stringRepeat(str, num) {
- var result = '';
-
- for (num |= 0; num > 0; num >>>= 1, str += str) {
- if (num & 1) {
- result += str;
- }
- }
-
- return result;
- }
-
- isArray = Array.isArray;
- if (!isArray) {
- isArray = function isArray(array) {
- return Object.prototype.toString.call(array) === '[object Array]';
- };
- }
-
- function hasLineTerminator(str) {
- return (/[\r\n]/g).test(str);
- }
-
- function endsWithLineTerminator(str) {
- var len = str.length;
- return len && esutils.code.isLineTerminator(str.charCodeAt(len - 1));
- }
-
- function merge(target, override) {
- var key;
- for (key in override) {
- if (override.hasOwnProperty(key)) {
- target[key] = override[key];
- }
- }
- return target;
- }
-
- function updateDeeply(target, override) {
- var key, val;
-
- function isHashObject(target) {
- return typeof target === 'object' && target instanceof Object && !(target instanceof RegExp);
- }
-
- for (key in override) {
- if (override.hasOwnProperty(key)) {
- val = override[key];
- if (isHashObject(val)) {
- if (isHashObject(target[key])) {
- updateDeeply(target[key], val);
- } else {
- target[key] = updateDeeply({}, val);
- }
- } else {
- target[key] = val;
- }
- }
- }
- return target;
- }
-
- function generateNumber(value) {
- var result, point, temp, exponent, pos;
-
- if (value !== value) {
- throw new Error('Numeric literal whose value is NaN');
- }
- if (value < 0 || (value === 0 && 1 / value < 0)) {
- throw new Error('Numeric literal whose value is negative');
- }
-
- if (value === 1 / 0) {
- return json ? 'null' : renumber ? '1e400' : '1e+400';
- }
-
- result = '' + value;
- if (!renumber || result.length < 3) {
- return result;
- }
-
- point = result.indexOf('.');
- if (!json && result.charCodeAt(0) === 0x30 /* 0 */ && point === 1) {
- point = 0;
- result = result.slice(1);
- }
- temp = result;
- result = result.replace('e+', 'e');
- exponent = 0;
- if ((pos = temp.indexOf('e')) > 0) {
- exponent = +temp.slice(pos + 1);
- temp = temp.slice(0, pos);
- }
- if (point >= 0) {
- exponent -= temp.length - point - 1;
- temp = +(temp.slice(0, point) + temp.slice(point + 1)) + '';
- }
- pos = 0;
- while (temp.charCodeAt(temp.length + pos - 1) === 0x30 /* 0 */) {
- --pos;
- }
- if (pos !== 0) {
- exponent -= pos;
- temp = temp.slice(0, pos);
- }
- if (exponent !== 0) {
- temp += 'e' + exponent;
- }
- if ((temp.length < result.length ||
- (hexadecimal && value > 1e12 && Math.floor(value) === value && (temp = '0x' + value.toString(16)).length < result.length)) &&
- +temp === value) {
- result = temp;
- }
-
- return result;
- }
-
- // Generate valid RegExp expression.
- // This function is based on https://github.com/Constellation/iv Engine
-
- function escapeRegExpCharacter(ch, previousIsBackslash) {
- // not handling '\' and handling \u2028 or \u2029 to unicode escape sequence
- if ((ch & ~1) === 0x2028) {
- return (previousIsBackslash ? 'u' : '\\u') + ((ch === 0x2028) ? '2028' : '2029');
- } else if (ch === 10 || ch === 13) { // \n, \r
- return (previousIsBackslash ? '' : '\\') + ((ch === 10) ? 'n' : 'r');
- }
- return String.fromCharCode(ch);
- }
-
- function generateRegExp(reg) {
- var match, result, flags, i, iz, ch, characterInBrack, previousIsBackslash;
-
- result = reg.toString();
-
- if (reg.source) {
- // extract flag from toString result
- match = result.match(/\/([^/]*)$/);
- if (!match) {
- return result;
- }
-
- flags = match[1];
- result = '';
-
- characterInBrack = false;
- previousIsBackslash = false;
- for (i = 0, iz = reg.source.length; i < iz; ++i) {
- ch = reg.source.charCodeAt(i);
-
- if (!previousIsBackslash) {
- if (characterInBrack) {
- if (ch === 93) { // ]
- characterInBrack = false;
- }
- } else {
- if (ch === 47) { // /
- result += '\\';
- } else if (ch === 91) { // [
- characterInBrack = true;
- }
- }
- result += escapeRegExpCharacter(ch, previousIsBackslash);
- previousIsBackslash = ch === 92; // \
- } else {
- // if new RegExp("\\\n') is provided, create /\n/
- result += escapeRegExpCharacter(ch, previousIsBackslash);
- // prevent like /\\[/]/
- previousIsBackslash = false;
- }
- }
-
- return '/' + result + '/' + flags;
- }
-
- return result;
- }
-
- function escapeAllowedCharacter(code, next) {
- var hex;
-
- if (code === 0x08 /* \b */) {
- return '\\b';
- }
-
- if (code === 0x0C /* \f */) {
- return '\\f';
- }
-
- if (code === 0x09 /* \t */) {
- return '\\t';
- }
-
- hex = code.toString(16).toUpperCase();
- if (json || code > 0xFF) {
- return '\\u' + '0000'.slice(hex.length) + hex;
- } else if (code === 0x0000 && !esutils.code.isDecimalDigit(next)) {
- return '\\0';
- } else if (code === 0x000B /* \v */) { // '\v'
- return '\\x0B';
- } else {
- return '\\x' + '00'.slice(hex.length) + hex;
- }
- }
-
- function escapeDisallowedCharacter(code) {
- if (code === 0x5C /* \ */) {
- return '\\\\';
- }
-
- if (code === 0x0A /* \n */) {
- return '\\n';
- }
-
- if (code === 0x0D /* \r */) {
- return '\\r';
- }
-
- if (code === 0x2028) {
- return '\\u2028';
- }
-
- if (code === 0x2029) {
- return '\\u2029';
- }
-
- throw new Error('Incorrectly classified character');
- }
-
- function escapeDirective(str) {
- var i, iz, code, quote;
-
- quote = quotes === 'double' ? '"' : '\'';
- for (i = 0, iz = str.length; i < iz; ++i) {
- code = str.charCodeAt(i);
- if (code === 0x27 /* ' */) {
- quote = '"';
- break;
- } else if (code === 0x22 /* " */) {
- quote = '\'';
- break;
- } else if (code === 0x5C /* \ */) {
- ++i;
- }
- }
-
- return quote + str + quote;
- }
-
- function escapeString(str) {
- var result = '', i, len, code, singleQuotes = 0, doubleQuotes = 0, single, quote;
-
- for (i = 0, len = str.length; i < len; ++i) {
- code = str.charCodeAt(i);
- if (code === 0x27 /* ' */) {
- ++singleQuotes;
- } else if (code === 0x22 /* " */) {
- ++doubleQuotes;
- } else if (code === 0x2F /* / */ && json) {
- result += '\\';
- } else if (esutils.code.isLineTerminator(code) || code === 0x5C /* \ */) {
- result += escapeDisallowedCharacter(code);
- continue;
- } else if (!esutils.code.isIdentifierPartES5(code) && (json && code < 0x20 /* SP */ || !json && !escapeless && (code < 0x20 /* SP */ || code > 0x7E /* ~ */))) {
- result += escapeAllowedCharacter(code, str.charCodeAt(i + 1));
- continue;
- }
- result += String.fromCharCode(code);
- }
-
- single = !(quotes === 'double' || (quotes === 'auto' && doubleQuotes < singleQuotes));
- quote = single ? '\'' : '"';
-
- if (!(single ? singleQuotes : doubleQuotes)) {
- return quote + result + quote;
- }
-
- str = result;
- result = quote;
-
- for (i = 0, len = str.length; i < len; ++i) {
- code = str.charCodeAt(i);
- if ((code === 0x27 /* ' */ && single) || (code === 0x22 /* " */ && !single)) {
- result += '\\';
- }
- result += String.fromCharCode(code);
- }
-
- return result + quote;
- }
-
- /**
- * flatten an array to a string, where the array can contain
- * either strings or nested arrays
- */
- function flattenToString(arr) {
- var i, iz, elem, result = '';
- for (i = 0, iz = arr.length; i < iz; ++i) {
- elem = arr[i];
- result += isArray(elem) ? flattenToString(elem) : elem;
- }
- return result;
- }
-
- /**
- * convert generated to a SourceNode when source maps are enabled.
- */
- function toSourceNodeWhenNeeded(generated, node) {
- if (!sourceMap) {
- // with no source maps, generated is either an
- // array or a string. if an array, flatten it.
- // if a string, just return it
- if (isArray(generated)) {
- return flattenToString(generated);
- } else {
- return generated;
- }
- }
- if (node == null) {
- if (generated instanceof SourceNode) {
- return generated;
- } else {
- node = {};
- }
- }
- if (node.loc == null) {
- return new SourceNode(null, null, sourceMap, generated, node.name || null);
- }
- return new SourceNode(node.loc.start.line, node.loc.start.column, (sourceMap === true ? node.loc.source || null : sourceMap), generated, node.name || null);
- }
-
- function noEmptySpace() {
- return (space) ? space : ' ';
- }
-
- function join(left, right) {
- var leftSource,
- rightSource,
- leftCharCode,
- rightCharCode;
-
- leftSource = toSourceNodeWhenNeeded(left).toString();
- if (leftSource.length === 0) {
- return [right];
- }
-
- rightSource = toSourceNodeWhenNeeded(right).toString();
- if (rightSource.length === 0) {
- return [left];
- }
-
- leftCharCode = leftSource.charCodeAt(leftSource.length - 1);
- rightCharCode = rightSource.charCodeAt(0);
-
- if ((leftCharCode === 0x2B /* + */ || leftCharCode === 0x2D /* - */) && leftCharCode === rightCharCode ||
- esutils.code.isIdentifierPartES5(leftCharCode) && esutils.code.isIdentifierPartES5(rightCharCode) ||
- leftCharCode === 0x2F /* / */ && rightCharCode === 0x69 /* i */) { // infix word operators all start with `i`
- return [left, noEmptySpace(), right];
- } else if (esutils.code.isWhiteSpace(leftCharCode) || esutils.code.isLineTerminator(leftCharCode) ||
- esutils.code.isWhiteSpace(rightCharCode) || esutils.code.isLineTerminator(rightCharCode)) {
- return [left, right];
- }
- return [left, space, right];
- }
-
- function addIndent(stmt) {
- return [base, stmt];
- }
-
- function withIndent(fn) {
- var previousBase;
- previousBase = base;
- base += indent;
- fn(base);
- base = previousBase;
- }
-
- function calculateSpaces(str) {
- var i;
- for (i = str.length - 1; i >= 0; --i) {
- if (esutils.code.isLineTerminator(str.charCodeAt(i))) {
- break;
- }
- }
- return (str.length - 1) - i;
- }
-
- function adjustMultilineComment(value, specialBase) {
- var array, i, len, line, j, spaces, previousBase, sn;
-
- array = value.split(/\r\n|[\r\n]/);
- spaces = Number.MAX_VALUE;
-
- // first line doesn't have indentation
- for (i = 1, len = array.length; i < len; ++i) {
- line = array[i];
- j = 0;
- while (j < line.length && esutils.code.isWhiteSpace(line.charCodeAt(j))) {
- ++j;
- }
- if (spaces > j) {
- spaces = j;
- }
- }
-
- if (typeof specialBase !== 'undefined') {
- // pattern like
- // {
- // var t = 20; /*
- // * this is comment
- // */
- // }
- previousBase = base;
- if (array[1][spaces] === '*') {
- specialBase += ' ';
- }
- base = specialBase;
- } else {
- if (spaces & 1) {
- // /*
- // *
- // */
- // If spaces are odd number, above pattern is considered.
- // We waste 1 space.
- --spaces;
- }
- previousBase = base;
- }
-
- for (i = 1, len = array.length; i < len; ++i) {
- sn = toSourceNodeWhenNeeded(addIndent(array[i].slice(spaces)));
- array[i] = sourceMap ? sn.join('') : sn;
- }
-
- base = previousBase;
-
- return array.join('\n');
- }
-
- function generateComment(comment, specialBase) {
- if (comment.type === 'Line') {
- if (endsWithLineTerminator(comment.value)) {
- return '//' + comment.value;
- } else {
- // Always use LineTerminator
- var result = '//' + comment.value;
- if (!preserveBlankLines) {
- result += '\n';
- }
- return result;
- }
- }
- if (extra.format.indent.adjustMultilineComment && /[\n\r]/.test(comment.value)) {
- return adjustMultilineComment('/*' + comment.value + '*/', specialBase);
- }
- return '/*' + comment.value + '*/';
- }
-
- function addComments(stmt, result) {
- var i, len, comment, save, tailingToStatement, specialBase, fragment,
- extRange, range, prevRange, prefix, infix, suffix, count;
-
- if (stmt.leadingComments && stmt.leadingComments.length > 0) {
- save = result;
-
- if (preserveBlankLines) {
- comment = stmt.leadingComments[0];
- result = [];
-
- extRange = comment.extendedRange;
- range = comment.range;
-
- prefix = sourceCode.substring(extRange[0], range[0]);
- count = (prefix.match(/\n/g) || []).length;
- if (count > 0) {
- result.push(stringRepeat('\n', count));
- result.push(addIndent(generateComment(comment)));
- } else {
- result.push(prefix);
- result.push(generateComment(comment));
- }
-
- prevRange = range;
-
- for (i = 1, len = stmt.leadingComments.length; i < len; i++) {
- comment = stmt.leadingComments[i];
- range = comment.range;
-
- infix = sourceCode.substring(prevRange[1], range[0]);
- count = (infix.match(/\n/g) || []).length;
- result.push(stringRepeat('\n', count));
- result.push(addIndent(generateComment(comment)));
-
- prevRange = range;
- }
-
- suffix = sourceCode.substring(range[1], extRange[1]);
- count = (suffix.match(/\n/g) || []).length;
- result.push(stringRepeat('\n', count));
- } else {
- comment = stmt.leadingComments[0];
- result = [];
- if (safeConcatenation && stmt.type === Syntax.Program && stmt.body.length === 0) {
- result.push('\n');
- }
- result.push(generateComment(comment));
- if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {
- result.push('\n');
- }
-
- for (i = 1, len = stmt.leadingComments.length; i < len; ++i) {
- comment = stmt.leadingComments[i];
- fragment = [generateComment(comment)];
- if (!endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {
- fragment.push('\n');
- }
- result.push(addIndent(fragment));
- }
- }
-
- result.push(addIndent(save));
- }
-
- if (stmt.trailingComments) {
-
- if (preserveBlankLines) {
- comment = stmt.trailingComments[0];
- extRange = comment.extendedRange;
- range = comment.range;
-
- prefix = sourceCode.substring(extRange[0], range[0]);
- count = (prefix.match(/\n/g) || []).length;
-
- if (count > 0) {
- result.push(stringRepeat('\n', count));
- result.push(addIndent(generateComment(comment)));
- } else {
- result.push(prefix);
- result.push(generateComment(comment));
- }
- } else {
- tailingToStatement = !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString());
- specialBase = stringRepeat(' ', calculateSpaces(toSourceNodeWhenNeeded([base, result, indent]).toString()));
- for (i = 0, len = stmt.trailingComments.length; i < len; ++i) {
- comment = stmt.trailingComments[i];
- if (tailingToStatement) {
- // We assume target like following script
- //
- // var t = 20; /**
- // * This is comment of t
- // */
- if (i === 0) {
- // first case
- result = [result, indent];
- } else {
- result = [result, specialBase];
- }
- result.push(generateComment(comment, specialBase));
- } else {
- result = [result, addIndent(generateComment(comment))];
- }
- if (i !== len - 1 && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {
- result = [result, '\n'];
- }
- }
- }
- }
-
- return result;
- }
-
- function generateBlankLines(start, end, result) {
- var j, newlineCount = 0;
-
- for (j = start; j < end; j++) {
- if (sourceCode[j] === '\n') {
- newlineCount++;
- }
- }
-
- for (j = 1; j < newlineCount; j++) {
- result.push(newline);
- }
- }
-
- function parenthesize(text, current, should) {
- if (current < should) {
- return ['(', text, ')'];
- }
- return text;
- }
-
- function generateVerbatimString(string) {
- var i, iz, result;
- result = string.split(/\r\n|\n/);
- for (i = 1, iz = result.length; i < iz; i++) {
- result[i] = newline + base + result[i];
- }
- return result;
- }
-
- function generateVerbatim(expr, precedence) {
- var verbatim, result, prec;
- verbatim = expr[extra.verbatim];
-
- if (typeof verbatim === 'string') {
- result = parenthesize(generateVerbatimString(verbatim), Precedence.Sequence, precedence);
- } else {
- // verbatim is object
- result = generateVerbatimString(verbatim.content);
- prec = (verbatim.precedence != null) ? verbatim.precedence : Precedence.Sequence;
- result = parenthesize(result, prec, precedence);
- }
-
- return toSourceNodeWhenNeeded(result, expr);
- }
-
- function CodeGenerator() {
- }
-
- // Helpers.
-
- CodeGenerator.prototype.maybeBlock = function(stmt, flags) {
- var result, noLeadingComment, that = this;
-
- noLeadingComment = !extra.comment || !stmt.leadingComments;
-
- if (stmt.type === Syntax.BlockStatement && noLeadingComment) {
- return [space, this.generateStatement(stmt, flags)];
- }
-
- if (stmt.type === Syntax.EmptyStatement && noLeadingComment) {
- return ';';
- }
-
- withIndent(function () {
- result = [
- newline,
- addIndent(that.generateStatement(stmt, flags))
- ];
- });
-
- return result;
- };
-
- CodeGenerator.prototype.maybeBlockSuffix = function (stmt, result) {
- var ends = endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString());
- if (stmt.type === Syntax.BlockStatement && (!extra.comment || !stmt.leadingComments) && !ends) {
- return [result, space];
- }
- if (ends) {
- return [result, base];
- }
- return [result, newline, base];
- };
-
- function generateIdentifier(node) {
- return toSourceNodeWhenNeeded(node.name, node);
- }
-
- function generateAsyncPrefix(node, spaceRequired) {
- return node.async ? 'async' + (spaceRequired ? noEmptySpace() : space) : '';
- }
-
- function generateStarSuffix(node) {
- var isGenerator = node.generator && !extra.moz.starlessGenerator;
- return isGenerator ? '*' + space : '';
- }
-
- function generateMethodPrefix(prop) {
- var func = prop.value;
- if (func.async) {
- return generateAsyncPrefix(func, !prop.computed);
- } else {
- // avoid space before method name
- return generateStarSuffix(func) ? '*' : '';
- }
- }
-
- CodeGenerator.prototype.generatePattern = function (node, precedence, flags) {
- if (node.type === Syntax.Identifier) {
- return generateIdentifier(node);
- }
- return this.generateExpression(node, precedence, flags);
- };
-
- CodeGenerator.prototype.generateFunctionParams = function (node) {
- var i, iz, result, hasDefault;
-
- hasDefault = false;
-
- if (node.type === Syntax.ArrowFunctionExpression &&
- !node.rest && (!node.defaults || node.defaults.length === 0) &&
- node.params.length === 1 && node.params[0].type === Syntax.Identifier) {
- // arg => { } case
- result = [generateAsyncPrefix(node, true), generateIdentifier(node.params[0])];
- } else {
- result = node.type === Syntax.ArrowFunctionExpression ? [generateAsyncPrefix(node, false)] : [];
- result.push('(');
- if (node.defaults) {
- hasDefault = true;
- }
- for (i = 0, iz = node.params.length; i < iz; ++i) {
- if (hasDefault && node.defaults[i]) {
- // Handle default values.
- result.push(this.generateAssignment(node.params[i], node.defaults[i], '=', Precedence.Assignment, E_TTT));
- } else {
- result.push(this.generatePattern(node.params[i], Precedence.Assignment, E_TTT));
- }
- if (i + 1 < iz) {
- result.push(',' + space);
- }
- }
-
- if (node.rest) {
- if (node.params.length) {
- result.push(',' + space);
- }
- result.push('...');
- result.push(generateIdentifier(node.rest));
- }
-
- result.push(')');
- }
-
- return result;
- };
-
- CodeGenerator.prototype.generateFunctionBody = function (node) {
- var result, expr;
-
- result = this.generateFunctionParams(node);
-
- if (node.type === Syntax.ArrowFunctionExpression) {
- result.push(space);
- result.push('=>');
- }
-
- if (node.expression) {
- result.push(space);
- expr = this.generateExpression(node.body, Precedence.Assignment, E_TTT);
- if (expr.toString().charAt(0) === '{') {
- expr = ['(', expr, ')'];
- }
- result.push(expr);
- } else {
- result.push(this.maybeBlock(node.body, S_TTFF));
- }
-
- return result;
- };
-
- CodeGenerator.prototype.generateIterationForStatement = function (operator, stmt, flags) {
- var result = ['for' + space + '('], that = this;
- withIndent(function () {
- if (stmt.left.type === Syntax.VariableDeclaration) {
- withIndent(function () {
- result.push(stmt.left.kind + noEmptySpace());
- result.push(that.generateStatement(stmt.left.declarations[0], S_FFFF));
- });
- } else {
- result.push(that.generateExpression(stmt.left, Precedence.Call, E_TTT));
- }
-
- result = join(result, operator);
- result = [join(
- result,
- that.generateExpression(stmt.right, Precedence.Sequence, E_TTT)
- ), ')'];
- });
- result.push(this.maybeBlock(stmt.body, flags));
- return result;
- };
-
- CodeGenerator.prototype.generatePropertyKey = function (expr, computed, value) {
- var result = [];
-
- if (computed) {
- result.push('[');
- }
-
- if (value.type === 'AssignmentPattern') {
- result.push(this.AssignmentPattern(value, Precedence.Sequence, E_TTT));
- } else {
- result.push(this.generateExpression(expr, Precedence.Sequence, E_TTT));
- }
-
- if (computed) {
- result.push(']');
- }
-
- return result;
- };
-
- CodeGenerator.prototype.generateAssignment = function (left, right, operator, precedence, flags) {
- if (Precedence.Assignment < precedence) {
- flags |= F_ALLOW_IN;
- }
-
- return parenthesize(
- [
- this.generateExpression(left, Precedence.Call, flags),
- space + operator + space,
- this.generateExpression(right, Precedence.Assignment, flags)
- ],
- Precedence.Assignment,
- precedence
- );
- };
-
- CodeGenerator.prototype.semicolon = function (flags) {
- if (!semicolons && flags & F_SEMICOLON_OPT) {
- return '';
- }
- return ';';
- };
-
- // Statements.
-
- CodeGenerator.Statement = {
-
- BlockStatement: function (stmt, flags) {
- var range, content, result = ['{', newline], that = this;
-
- withIndent(function () {
- // handle functions without any code
- if (stmt.body.length === 0 && preserveBlankLines) {
- range = stmt.range;
- if (range[1] - range[0] > 2) {
- content = sourceCode.substring(range[0] + 1, range[1] - 1);
- if (content[0] === '\n') {
- result = ['{'];
- }
- result.push(content);
- }
- }
-
- var i, iz, fragment, bodyFlags;
- bodyFlags = S_TFFF;
- if (flags & F_FUNC_BODY) {
- bodyFlags |= F_DIRECTIVE_CTX;
- }
-
- for (i = 0, iz = stmt.body.length; i < iz; ++i) {
- if (preserveBlankLines) {
- // handle spaces before the first line
- if (i === 0) {
- if (stmt.body[0].leadingComments) {
- range = stmt.body[0].leadingComments[0].extendedRange;
- content = sourceCode.substring(range[0], range[1]);
- if (content[0] === '\n') {
- result = ['{'];
- }
- }
- if (!stmt.body[0].leadingComments) {
- generateBlankLines(stmt.range[0], stmt.body[0].range[0], result);
- }
- }
-
- // handle spaces between lines
- if (i > 0) {
- if (!stmt.body[i - 1].trailingComments && !stmt.body[i].leadingComments) {
- generateBlankLines(stmt.body[i - 1].range[1], stmt.body[i].range[0], result);
- }
- }
- }
-
- if (i === iz - 1) {
- bodyFlags |= F_SEMICOLON_OPT;
- }
-
- if (stmt.body[i].leadingComments && preserveBlankLines) {
- fragment = that.generateStatement(stmt.body[i], bodyFlags);
- } else {
- fragment = addIndent(that.generateStatement(stmt.body[i], bodyFlags));
- }
-
- result.push(fragment);
- if (!endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {
- if (preserveBlankLines && i < iz - 1) {
- // don't add a new line if there are leading coments
- // in the next statement
- if (!stmt.body[i + 1].leadingComments) {
- result.push(newline);
- }
- } else {
- result.push(newline);
- }
- }
-
- if (preserveBlankLines) {
- // handle spaces after the last line
- if (i === iz - 1) {
- if (!stmt.body[i].trailingComments) {
- generateBlankLines(stmt.body[i].range[1], stmt.range[1], result);
- }
- }
- }
- }
- });
-
- result.push(addIndent('}'));
- return result;
- },
-
- BreakStatement: function (stmt, flags) {
- if (stmt.label) {
- return 'break ' + stmt.label.name + this.semicolon(flags);
- }
- return 'break' + this.semicolon(flags);
- },
-
- ContinueStatement: function (stmt, flags) {
- if (stmt.label) {
- return 'continue ' + stmt.label.name + this.semicolon(flags);
- }
- return 'continue' + this.semicolon(flags);
- },
-
- ClassBody: function (stmt, flags) {
- var result = [ '{', newline], that = this;
-
- withIndent(function (indent) {
- var i, iz;
-
- for (i = 0, iz = stmt.body.length; i < iz; ++i) {
- result.push(indent);
- result.push(that.generateExpression(stmt.body[i], Precedence.Sequence, E_TTT));
- if (i + 1 < iz) {
- result.push(newline);
- }
- }
- });
-
- if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {
- result.push(newline);
- }
- result.push(base);
- result.push('}');
- return result;
- },
-
- ClassDeclaration: function (stmt, flags) {
- var result, fragment;
- result = ['class'];
- if (stmt.id) {
- result = join(result, this.generateExpression(stmt.id, Precedence.Sequence, E_TTT));
- }
- if (stmt.superClass) {
- fragment = join('extends', this.generateExpression(stmt.superClass, Precedence.Assignment, E_TTT));
- result = join(result, fragment);
- }
- result.push(space);
- result.push(this.generateStatement(stmt.body, S_TFFT));
- return result;
- },
-
- DirectiveStatement: function (stmt, flags) {
- if (extra.raw && stmt.raw) {
- return stmt.raw + this.semicolon(flags);
- }
- return escapeDirective(stmt.directive) + this.semicolon(flags);
- },
-
- DoWhileStatement: function (stmt, flags) {
- // Because `do 42 while (cond)` is Syntax Error. We need semicolon.
- var result = join('do', this.maybeBlock(stmt.body, S_TFFF));
- result = this.maybeBlockSuffix(stmt.body, result);
- return join(result, [
- 'while' + space + '(',
- this.generateExpression(stmt.test, Precedence.Sequence, E_TTT),
- ')' + this.semicolon(flags)
- ]);
- },
-
- CatchClause: function (stmt, flags) {
- var result, that = this;
- withIndent(function () {
- var guard;
-
- result = [
- 'catch' + space + '(',
- that.generateExpression(stmt.param, Precedence.Sequence, E_TTT),
- ')'
- ];
-
- if (stmt.guard) {
- guard = that.generateExpression(stmt.guard, Precedence.Sequence, E_TTT);
- result.splice(2, 0, ' if ', guard);
- }
- });
- result.push(this.maybeBlock(stmt.body, S_TFFF));
- return result;
- },
-
- DebuggerStatement: function (stmt, flags) {
- return 'debugger' + this.semicolon(flags);
- },
-
- EmptyStatement: function (stmt, flags) {
- return ';';
- },
-
- ExportDefaultDeclaration: function (stmt, flags) {
- var result = [ 'export' ], bodyFlags;
-
- bodyFlags = (flags & F_SEMICOLON_OPT) ? S_TFFT : S_TFFF;
-
- // export default HoistableDeclaration[Default]
- // export default AssignmentExpression[In] ;
- result = join(result, 'default');
- if (isStatement(stmt.declaration)) {
- result = join(result, this.generateStatement(stmt.declaration, bodyFlags));
- } else {
- result = join(result, this.generateExpression(stmt.declaration, Precedence.Assignment, E_TTT) + this.semicolon(flags));
- }
- return result;
- },
-
- ExportNamedDeclaration: function (stmt, flags) {
- var result = [ 'export' ], bodyFlags, that = this;
-
- bodyFlags = (flags & F_SEMICOLON_OPT) ? S_TFFT : S_TFFF;
-
- // export VariableStatement
- // export Declaration[Default]
- if (stmt.declaration) {
- return join(result, this.generateStatement(stmt.declaration, bodyFlags));
- }
-
- // export ExportClause[NoReference] FromClause ;
- // export ExportClause ;
- if (stmt.specifiers) {
- if (stmt.specifiers.length === 0) {
- result = join(result, '{' + space + '}');
- } else if (stmt.specifiers[0].type === Syntax.ExportBatchSpecifier) {
- result = join(result, this.generateExpression(stmt.specifiers[0], Precedence.Sequence, E_TTT));
- } else {
- result = join(result, '{');
- withIndent(function (indent) {
- var i, iz;
- result.push(newline);
- for (i = 0, iz = stmt.specifiers.length; i < iz; ++i) {
- result.push(indent);
- result.push(that.generateExpression(stmt.specifiers[i], Precedence.Sequence, E_TTT));
- if (i + 1 < iz) {
- result.push(',' + newline);
- }
- }
- });
- if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {
- result.push(newline);
- }
- result.push(base + '}');
- }
-
- if (stmt.source) {
- result = join(result, [
- 'from' + space,
- // ModuleSpecifier
- this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),
- this.semicolon(flags)
- ]);
- } else {
- result.push(this.semicolon(flags));
- }
- }
- return result;
- },
-
- ExportAllDeclaration: function (stmt, flags) {
- // export * FromClause ;
- return [
- 'export' + space,
- '*' + space,
- 'from' + space,
- // ModuleSpecifier
- this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),
- this.semicolon(flags)
- ];
- },
-
- ExpressionStatement: function (stmt, flags) {
- var result, fragment;
-
- function isClassPrefixed(fragment) {
- var code;
- if (fragment.slice(0, 5) !== 'class') {
- return false;
- }
- code = fragment.charCodeAt(5);
- return code === 0x7B /* '{' */ || esutils.code.isWhiteSpace(code) || esutils.code.isLineTerminator(code);
- }
-
- function isFunctionPrefixed(fragment) {
- var code;
- if (fragment.slice(0, 8) !== 'function') {
- return false;
- }
- code = fragment.charCodeAt(8);
- return code === 0x28 /* '(' */ || esutils.code.isWhiteSpace(code) || code === 0x2A /* '*' */ || esutils.code.isLineTerminator(code);
- }
-
- function isAsyncPrefixed(fragment) {
- var code, i, iz;
- if (fragment.slice(0, 5) !== 'async') {
- return false;
- }
- if (!esutils.code.isWhiteSpace(fragment.charCodeAt(5))) {
- return false;
- }
- for (i = 6, iz = fragment.length; i < iz; ++i) {
- if (!esutils.code.isWhiteSpace(fragment.charCodeAt(i))) {
- break;
- }
- }
- if (i === iz) {
- return false;
- }
- if (fragment.slice(i, i + 8) !== 'function') {
- return false;
- }
- code = fragment.charCodeAt(i + 8);
- return code === 0x28 /* '(' */ || esutils.code.isWhiteSpace(code) || code === 0x2A /* '*' */ || esutils.code.isLineTerminator(code);
- }
-
- result = [this.generateExpression(stmt.expression, Precedence.Sequence, E_TTT)];
- // 12.4 '{', 'function', 'class' is not allowed in this position.
- // wrap expression with parentheses
- fragment = toSourceNodeWhenNeeded(result).toString();
- if (fragment.charCodeAt(0) === 0x7B /* '{' */ || // ObjectExpression
- isClassPrefixed(fragment) ||
- isFunctionPrefixed(fragment) ||
- isAsyncPrefixed(fragment) ||
- (directive && (flags & F_DIRECTIVE_CTX) && stmt.expression.type === Syntax.Literal && typeof stmt.expression.value === 'string')) {
- result = ['(', result, ')' + this.semicolon(flags)];
- } else {
- result.push(this.semicolon(flags));
- }
- return result;
- },
-
- ImportDeclaration: function (stmt, flags) {
- // ES6: 15.2.1 valid import declarations:
- // - import ImportClause FromClause ;
- // - import ModuleSpecifier ;
- var result, cursor, that = this;
-
- // If no ImportClause is present,
- // this should be `import ModuleSpecifier` so skip `from`
- // ModuleSpecifier is StringLiteral.
- if (stmt.specifiers.length === 0) {
- // import ModuleSpecifier ;
- return [
- 'import',
- space,
- // ModuleSpecifier
- this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),
- this.semicolon(flags)
- ];
- }
-
- // import ImportClause FromClause ;
- result = [
- 'import'
- ];
- cursor = 0;
-
- // ImportedBinding
- if (stmt.specifiers[cursor].type === Syntax.ImportDefaultSpecifier) {
- result = join(result, [
- this.generateExpression(stmt.specifiers[cursor], Precedence.Sequence, E_TTT)
- ]);
- ++cursor;
- }
-
- if (stmt.specifiers[cursor]) {
- if (cursor !== 0) {
- result.push(',');
- }
-
- if (stmt.specifiers[cursor].type === Syntax.ImportNamespaceSpecifier) {
- // NameSpaceImport
- result = join(result, [
- space,
- this.generateExpression(stmt.specifiers[cursor], Precedence.Sequence, E_TTT)
- ]);
- } else {
- // NamedImports
- result.push(space + '{');
-
- if ((stmt.specifiers.length - cursor) === 1) {
- // import { ... } from "...";
- result.push(space);
- result.push(this.generateExpression(stmt.specifiers[cursor], Precedence.Sequence, E_TTT));
- result.push(space + '}' + space);
- } else {
- // import {
- // ...,
- // ...,
- // } from "...";
- withIndent(function (indent) {
- var i, iz;
- result.push(newline);
- for (i = cursor, iz = stmt.specifiers.length; i < iz; ++i) {
- result.push(indent);
- result.push(that.generateExpression(stmt.specifiers[i], Precedence.Sequence, E_TTT));
- if (i + 1 < iz) {
- result.push(',' + newline);
- }
- }
- });
- if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {
- result.push(newline);
- }
- result.push(base + '}' + space);
- }
- }
- }
-
- result = join(result, [
- 'from' + space,
- // ModuleSpecifier
- this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),
- this.semicolon(flags)
- ]);
- return result;
- },
-
- VariableDeclarator: function (stmt, flags) {
- var itemFlags = (flags & F_ALLOW_IN) ? E_TTT : E_FTT;
- if (stmt.init) {
- return [
- this.generateExpression(stmt.id, Precedence.Assignment, itemFlags),
- space,
- '=',
- space,
- this.generateExpression(stmt.init, Precedence.Assignment, itemFlags)
- ];
- }
- return this.generatePattern(stmt.id, Precedence.Assignment, itemFlags);
- },
-
- VariableDeclaration: function (stmt, flags) {
- // VariableDeclarator is typed as Statement,
- // but joined with comma (not LineTerminator).
- // So if comment is attached to target node, we should specialize.
- var result, i, iz, node, bodyFlags, that = this;
-
- result = [ stmt.kind ];
-
- bodyFlags = (flags & F_ALLOW_IN) ? S_TFFF : S_FFFF;
-
- function block() {
- node = stmt.declarations[0];
- if (extra.comment && node.leadingComments) {
- result.push('\n');
- result.push(addIndent(that.generateStatement(node, bodyFlags)));
- } else {
- result.push(noEmptySpace());
- result.push(that.generateStatement(node, bodyFlags));
- }
-
- for (i = 1, iz = stmt.declarations.length; i < iz; ++i) {
- node = stmt.declarations[i];
- if (extra.comment && node.leadingComments) {
- result.push(',' + newline);
- result.push(addIndent(that.generateStatement(node, bodyFlags)));
- } else {
- result.push(',' + space);
- result.push(that.generateStatement(node, bodyFlags));
- }
- }
- }
-
- if (stmt.declarations.length > 1) {
- withIndent(block);
- } else {
- block();
- }
-
- result.push(this.semicolon(flags));
-
- return result;
- },
-
- ThrowStatement: function (stmt, flags) {
- return [join(
- 'throw',
- this.generateExpression(stmt.argument, Precedence.Sequence, E_TTT)
- ), this.semicolon(flags)];
- },
-
- TryStatement: function (stmt, flags) {
- var result, i, iz, guardedHandlers;
-
- result = ['try', this.maybeBlock(stmt.block, S_TFFF)];
- result = this.maybeBlockSuffix(stmt.block, result);
-
- if (stmt.handlers) {
- // old interface
- for (i = 0, iz = stmt.handlers.length; i < iz; ++i) {
- result = join(result, this.generateStatement(stmt.handlers[i], S_TFFF));
- if (stmt.finalizer || i + 1 !== iz) {
- result = this.maybeBlockSuffix(stmt.handlers[i].body, result);
- }
- }
- } else {
- guardedHandlers = stmt.guardedHandlers || [];
-
- for (i = 0, iz = guardedHandlers.length; i < iz; ++i) {
- result = join(result, this.generateStatement(guardedHandlers[i], S_TFFF));
- if (stmt.finalizer || i + 1 !== iz) {
- result = this.maybeBlockSuffix(guardedHandlers[i].body, result);
- }
- }
-
- // new interface
- if (stmt.handler) {
- if (isArray(stmt.handler)) {
- for (i = 0, iz = stmt.handler.length; i < iz; ++i) {
- result = join(result, this.generateStatement(stmt.handler[i], S_TFFF));
- if (stmt.finalizer || i + 1 !== iz) {
- result = this.maybeBlockSuffix(stmt.handler[i].body, result);
- }
- }
- } else {
- result = join(result, this.generateStatement(stmt.handler, S_TFFF));
- if (stmt.finalizer) {
- result = this.maybeBlockSuffix(stmt.handler.body, result);
- }
- }
- }
- }
- if (stmt.finalizer) {
- result = join(result, ['finally', this.maybeBlock(stmt.finalizer, S_TFFF)]);
- }
- return result;
- },
-
- SwitchStatement: function (stmt, flags) {
- var result, fragment, i, iz, bodyFlags, that = this;
- withIndent(function () {
- result = [
- 'switch' + space + '(',
- that.generateExpression(stmt.discriminant, Precedence.Sequence, E_TTT),
- ')' + space + '{' + newline
- ];
- });
- if (stmt.cases) {
- bodyFlags = S_TFFF;
- for (i = 0, iz = stmt.cases.length; i < iz; ++i) {
- if (i === iz - 1) {
- bodyFlags |= F_SEMICOLON_OPT;
- }
- fragment = addIndent(this.generateStatement(stmt.cases[i], bodyFlags));
- result.push(fragment);
- if (!endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {
- result.push(newline);
- }
- }
- }
- result.push(addIndent('}'));
- return result;
- },
-
- SwitchCase: function (stmt, flags) {
- var result, fragment, i, iz, bodyFlags, that = this;
- withIndent(function () {
- if (stmt.test) {
- result = [
- join('case', that.generateExpression(stmt.test, Precedence.Sequence, E_TTT)),
- ':'
- ];
- } else {
- result = ['default:'];
- }
-
- i = 0;
- iz = stmt.consequent.length;
- if (iz && stmt.consequent[0].type === Syntax.BlockStatement) {
- fragment = that.maybeBlock(stmt.consequent[0], S_TFFF);
- result.push(fragment);
- i = 1;
- }
-
- if (i !== iz && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {
- result.push(newline);
- }
-
- bodyFlags = S_TFFF;
- for (; i < iz; ++i) {
- if (i === iz - 1 && flags & F_SEMICOLON_OPT) {
- bodyFlags |= F_SEMICOLON_OPT;
- }
- fragment = addIndent(that.generateStatement(stmt.consequent[i], bodyFlags));
- result.push(fragment);
- if (i + 1 !== iz && !endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {
- result.push(newline);
- }
- }
- });
- return result;
- },
-
- IfStatement: function (stmt, flags) {
- var result, bodyFlags, semicolonOptional, that = this;
- withIndent(function () {
- result = [
- 'if' + space + '(',
- that.generateExpression(stmt.test, Precedence.Sequence, E_TTT),
- ')'
- ];
- });
- semicolonOptional = flags & F_SEMICOLON_OPT;
- bodyFlags = S_TFFF;
- if (semicolonOptional) {
- bodyFlags |= F_SEMICOLON_OPT;
- }
- if (stmt.alternate) {
- result.push(this.maybeBlock(stmt.consequent, S_TFFF));
- result = this.maybeBlockSuffix(stmt.consequent, result);
- if (stmt.alternate.type === Syntax.IfStatement) {
- result = join(result, ['else ', this.generateStatement(stmt.alternate, bodyFlags)]);
- } else {
- result = join(result, join('else', this.maybeBlock(stmt.alternate, bodyFlags)));
- }
- } else {
- result.push(this.maybeBlock(stmt.consequent, bodyFlags));
- }
- return result;
- },
-
- ForStatement: function (stmt, flags) {
- var result, that = this;
- withIndent(function () {
- result = ['for' + space + '('];
- if (stmt.init) {
- if (stmt.init.type === Syntax.VariableDeclaration) {
- result.push(that.generateStatement(stmt.init, S_FFFF));
- } else {
- // F_ALLOW_IN becomes false.
- result.push(that.generateExpression(stmt.init, Precedence.Sequence, E_FTT));
- result.push(';');
- }
- } else {
- result.push(';');
- }
-
- if (stmt.test) {
- result.push(space);
- result.push(that.generateExpression(stmt.test, Precedence.Sequence, E_TTT));
- result.push(';');
- } else {
- result.push(';');
- }
-
- if (stmt.update) {
- result.push(space);
- result.push(that.generateExpression(stmt.update, Precedence.Sequence, E_TTT));
- result.push(')');
- } else {
- result.push(')');
- }
- });
-
- result.push(this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF));
- return result;
- },
-
- ForInStatement: function (stmt, flags) {
- return this.generateIterationForStatement('in', stmt, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF);
- },
-
- ForOfStatement: function (stmt, flags) {
- return this.generateIterationForStatement('of', stmt, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF);
- },
-
- LabeledStatement: function (stmt, flags) {
- return [stmt.label.name + ':', this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF)];
- },
-
- Program: function (stmt, flags) {
- var result, fragment, i, iz, bodyFlags;
- iz = stmt.body.length;
- result = [safeConcatenation && iz > 0 ? '\n' : ''];
- bodyFlags = S_TFTF;
- for (i = 0; i < iz; ++i) {
- if (!safeConcatenation && i === iz - 1) {
- bodyFlags |= F_SEMICOLON_OPT;
- }
-
- if (preserveBlankLines) {
- // handle spaces before the first line
- if (i === 0) {
- if (!stmt.body[0].leadingComments) {
- generateBlankLines(stmt.range[0], stmt.body[i].range[0], result);
- }
- }
-
- // handle spaces between lines
- if (i > 0) {
- if (!stmt.body[i - 1].trailingComments && !stmt.body[i].leadingComments) {
- generateBlankLines(stmt.body[i - 1].range[1], stmt.body[i].range[0], result);
- }
- }
- }
-
- fragment = addIndent(this.generateStatement(stmt.body[i], bodyFlags));
- result.push(fragment);
- if (i + 1 < iz && !endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {
- if (preserveBlankLines) {
- if (!stmt.body[i + 1].leadingComments) {
- result.push(newline);
- }
- } else {
- result.push(newline);
- }
- }
-
- if (preserveBlankLines) {
- // handle spaces after the last line
- if (i === iz - 1) {
- if (!stmt.body[i].trailingComments) {
- generateBlankLines(stmt.body[i].range[1], stmt.range[1], result);
- }
- }
- }
- }
- return result;
- },
-
- FunctionDeclaration: function (stmt, flags) {
- return [
- generateAsyncPrefix(stmt, true),
- 'function',
- generateStarSuffix(stmt) || noEmptySpace(),
- stmt.id ? generateIdentifier(stmt.id) : '',
- this.generateFunctionBody(stmt)
- ];
- },
-
- ReturnStatement: function (stmt, flags) {
- if (stmt.argument) {
- return [join(
- 'return',
- this.generateExpression(stmt.argument, Precedence.Sequence, E_TTT)
- ), this.semicolon(flags)];
- }
- return ['return' + this.semicolon(flags)];
- },
-
- WhileStatement: function (stmt, flags) {
- var result, that = this;
- withIndent(function () {
- result = [
- 'while' + space + '(',
- that.generateExpression(stmt.test, Precedence.Sequence, E_TTT),
- ')'
- ];
- });
- result.push(this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF));
- return result;
- },
-
- WithStatement: function (stmt, flags) {
- var result, that = this;
- withIndent(function () {
- result = [
- 'with' + space + '(',
- that.generateExpression(stmt.object, Precedence.Sequence, E_TTT),
- ')'
- ];
- });
- result.push(this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF));
- return result;
- }
-
- };
-
- merge(CodeGenerator.prototype, CodeGenerator.Statement);
-
- // Expressions.
-
- CodeGenerator.Expression = {
-
- SequenceExpression: function (expr, precedence, flags) {
- var result, i, iz;
- if (Precedence.Sequence < precedence) {
- flags |= F_ALLOW_IN;
- }
- result = [];
- for (i = 0, iz = expr.expressions.length; i < iz; ++i) {
- result.push(this.generateExpression(expr.expressions[i], Precedence.Assignment, flags));
- if (i + 1 < iz) {
- result.push(',' + space);
- }
- }
- return parenthesize(result, Precedence.Sequence, precedence);
- },
-
- AssignmentExpression: function (expr, precedence, flags) {
- return this.generateAssignment(expr.left, expr.right, expr.operator, precedence, flags);
- },
-
- ArrowFunctionExpression: function (expr, precedence, flags) {
- return parenthesize(this.generateFunctionBody(expr), Precedence.ArrowFunction, precedence);
- },
-
- ConditionalExpression: function (expr, precedence, flags) {
- if (Precedence.Conditional < precedence) {
- flags |= F_ALLOW_IN;
- }
- return parenthesize(
- [
- this.generateExpression(expr.test, Precedence.LogicalOR, flags),
- space + '?' + space,
- this.generateExpression(expr.consequent, Precedence.Assignment, flags),
- space + ':' + space,
- this.generateExpression(expr.alternate, Precedence.Assignment, flags)
- ],
- Precedence.Conditional,
- precedence
- );
- },
-
- LogicalExpression: function (expr, precedence, flags) {
- return this.BinaryExpression(expr, precedence, flags);
- },
-
- BinaryExpression: function (expr, precedence, flags) {
- var result, currentPrecedence, fragment, leftSource;
- currentPrecedence = BinaryPrecedence[expr.operator];
-
- if (currentPrecedence < precedence) {
- flags |= F_ALLOW_IN;
- }
-
- fragment = this.generateExpression(expr.left, currentPrecedence, flags);
-
- leftSource = fragment.toString();
-
- if (leftSource.charCodeAt(leftSource.length - 1) === 0x2F /* / */ && esutils.code.isIdentifierPartES5(expr.operator.charCodeAt(0))) {
- result = [fragment, noEmptySpace(), expr.operator];
- } else {
- result = join(fragment, expr.operator);
- }
-
- fragment = this.generateExpression(expr.right, currentPrecedence + 1, flags);
-
- if (expr.operator === '/' && fragment.toString().charAt(0) === '/' ||
- expr.operator.slice(-1) === '<' && fragment.toString().slice(0, 3) === '!--') {
- // If '/' concats with '/' or `<` concats with `!--`, it is interpreted as comment start
- result.push(noEmptySpace());
- result.push(fragment);
- } else {
- result = join(result, fragment);
- }
-
- if (expr.operator === 'in' && !(flags & F_ALLOW_IN)) {
- return ['(', result, ')'];
- }
- return parenthesize(result, currentPrecedence, precedence);
- },
-
- CallExpression: function (expr, precedence, flags) {
- var result, i, iz;
- // F_ALLOW_UNPARATH_NEW becomes false.
- result = [this.generateExpression(expr.callee, Precedence.Call, E_TTF)];
- result.push('(');
- for (i = 0, iz = expr['arguments'].length; i < iz; ++i) {
- result.push(this.generateExpression(expr['arguments'][i], Precedence.Assignment, E_TTT));
- if (i + 1 < iz) {
- result.push(',' + space);
- }
- }
- result.push(')');
-
- if (!(flags & F_ALLOW_CALL)) {
- return ['(', result, ')'];
- }
- return parenthesize(result, Precedence.Call, precedence);
- },
-
- NewExpression: function (expr, precedence, flags) {
- var result, length, i, iz, itemFlags;
- length = expr['arguments'].length;
-
- // F_ALLOW_CALL becomes false.
- // F_ALLOW_UNPARATH_NEW may become false.
- itemFlags = (flags & F_ALLOW_UNPARATH_NEW && !parentheses && length === 0) ? E_TFT : E_TFF;
-
- result = join(
- 'new',
- this.generateExpression(expr.callee, Precedence.New, itemFlags)
- );
-
- if (!(flags & F_ALLOW_UNPARATH_NEW) || parentheses || length > 0) {
- result.push('(');
- for (i = 0, iz = length; i < iz; ++i) {
- result.push(this.generateExpression(expr['arguments'][i], Precedence.Assignment, E_TTT));
- if (i + 1 < iz) {
- result.push(',' + space);
- }
- }
- result.push(')');
- }
-
- return parenthesize(result, Precedence.New, precedence);
- },
-
- MemberExpression: function (expr, precedence, flags) {
- var result, fragment;
-
- // F_ALLOW_UNPARATH_NEW becomes false.
- result = [this.generateExpression(expr.object, Precedence.Call, (flags & F_ALLOW_CALL) ? E_TTF : E_TFF)];
-
- if (expr.computed) {
- result.push('[');
- result.push(this.generateExpression(expr.property, Precedence.Sequence, flags & F_ALLOW_CALL ? E_TTT : E_TFT));
- result.push(']');
- } else {
- if (expr.object.type === Syntax.Literal && typeof expr.object.value === 'number') {
- fragment = toSourceNodeWhenNeeded(result).toString();
- // When the following conditions are all true,
- // 1. No floating point
- // 2. Don't have exponents
- // 3. The last character is a decimal digit
- // 4. Not hexadecimal OR octal number literal
- // we should add a floating point.
- if (
- fragment.indexOf('.') < 0 &&
- !/[eExX]/.test(fragment) &&
- esutils.code.isDecimalDigit(fragment.charCodeAt(fragment.length - 1)) &&
- !(fragment.length >= 2 && fragment.charCodeAt(0) === 48) // '0'
- ) {
- result.push('.');
- }
- }
- result.push('.');
- result.push(generateIdentifier(expr.property));
- }
-
- return parenthesize(result, Precedence.Member, precedence);
- },
-
- MetaProperty: function (expr, precedence, flags) {
- var result;
- result = [];
- result.push(expr.meta);
- result.push('.');
- result.push(expr.property);
- return parenthesize(result, Precedence.Member, precedence);
- },
-
- UnaryExpression: function (expr, precedence, flags) {
- var result, fragment, rightCharCode, leftSource, leftCharCode;
- fragment = this.generateExpression(expr.argument, Precedence.Unary, E_TTT);
-
- if (space === '') {
- result = join(expr.operator, fragment);
- } else {
- result = [expr.operator];
- if (expr.operator.length > 2) {
- // delete, void, typeof
- // get `typeof []`, not `typeof[]`
- result = join(result, fragment);
- } else {
- // Prevent inserting spaces between operator and argument if it is unnecessary
- // like, `!cond`
- leftSource = toSourceNodeWhenNeeded(result).toString();
- leftCharCode = leftSource.charCodeAt(leftSource.length - 1);
- rightCharCode = fragment.toString().charCodeAt(0);
-
- if (((leftCharCode === 0x2B /* + */ || leftCharCode === 0x2D /* - */) && leftCharCode === rightCharCode) ||
- (esutils.code.isIdentifierPartES5(leftCharCode) && esutils.code.isIdentifierPartES5(rightCharCode))) {
- result.push(noEmptySpace());
- result.push(fragment);
- } else {
- result.push(fragment);
- }
- }
- }
- return parenthesize(result, Precedence.Unary, precedence);
- },
-
- YieldExpression: function (expr, precedence, flags) {
- var result;
- if (expr.delegate) {
- result = 'yield*';
- } else {
- result = 'yield';
- }
- if (expr.argument) {
- result = join(
- result,
- this.generateExpression(expr.argument, Precedence.Yield, E_TTT)
- );
- }
- return parenthesize(result, Precedence.Yield, precedence);
- },
-
- AwaitExpression: function (expr, precedence, flags) {
- var result = join(
- expr.all ? 'await*' : 'await',
- this.generateExpression(expr.argument, Precedence.Await, E_TTT)
- );
- return parenthesize(result, Precedence.Await, precedence);
- },
-
- UpdateExpression: function (expr, precedence, flags) {
- if (expr.prefix) {
- return parenthesize(
- [
- expr.operator,
- this.generateExpression(expr.argument, Precedence.Unary, E_TTT)
- ],
- Precedence.Unary,
- precedence
- );
- }
- return parenthesize(
- [
- this.generateExpression(expr.argument, Precedence.Postfix, E_TTT),
- expr.operator
- ],
- Precedence.Postfix,
- precedence
- );
- },
-
- FunctionExpression: function (expr, precedence, flags) {
- var result = [
- generateAsyncPrefix(expr, true),
- 'function'
- ];
- if (expr.id) {
- result.push(generateStarSuffix(expr) || noEmptySpace());
- result.push(generateIdentifier(expr.id));
- } else {
- result.push(generateStarSuffix(expr) || space);
- }
- result.push(this.generateFunctionBody(expr));
- return result;
- },
-
- ArrayPattern: function (expr, precedence, flags) {
- return this.ArrayExpression(expr, precedence, flags, true);
- },
-
- ArrayExpression: function (expr, precedence, flags, isPattern) {
- var result, multiline, that = this;
- if (!expr.elements.length) {
- return '[]';
- }
- multiline = isPattern ? false : expr.elements.length > 1;
- result = ['[', multiline ? newline : ''];
- withIndent(function (indent) {
- var i, iz;
- for (i = 0, iz = expr.elements.length; i < iz; ++i) {
- if (!expr.elements[i]) {
- if (multiline) {
- result.push(indent);
- }
- if (i + 1 === iz) {
- result.push(',');
- }
- } else {
- result.push(multiline ? indent : '');
- result.push(that.generateExpression(expr.elements[i], Precedence.Assignment, E_TTT));
- }
- if (i + 1 < iz) {
- result.push(',' + (multiline ? newline : space));
- }
- }
- });
- if (multiline && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {
- result.push(newline);
- }
- result.push(multiline ? base : '');
- result.push(']');
- return result;
- },
-
- RestElement: function(expr, precedence, flags) {
- return '...' + this.generatePattern(expr.argument);
- },
-
- ClassExpression: function (expr, precedence, flags) {
- var result, fragment;
- result = ['class'];
- if (expr.id) {
- result = join(result, this.generateExpression(expr.id, Precedence.Sequence, E_TTT));
- }
- if (expr.superClass) {
- fragment = join('extends', this.generateExpression(expr.superClass, Precedence.Assignment, E_TTT));
- result = join(result, fragment);
- }
- result.push(space);
- result.push(this.generateStatement(expr.body, S_TFFT));
- return result;
- },
-
- MethodDefinition: function (expr, precedence, flags) {
- var result, fragment;
- if (expr['static']) {
- result = ['static' + space];
- } else {
- result = [];
- }
- if (expr.kind === 'get' || expr.kind === 'set') {
- fragment = [
- join(expr.kind, this.generatePropertyKey(expr.key, expr.computed, expr.value)),
- this.generateFunctionBody(expr.value)
- ];
- } else {
- fragment = [
- generateMethodPrefix(expr),
- this.generatePropertyKey(expr.key, expr.computed, expr.value),
- this.generateFunctionBody(expr.value)
- ];
- }
- return join(result, fragment);
- },
-
- Property: function (expr, precedence, flags) {
- if (expr.kind === 'get' || expr.kind === 'set') {
- return [
- expr.kind, noEmptySpace(),
- this.generatePropertyKey(expr.key, expr.computed, expr.value),
- this.generateFunctionBody(expr.value)
- ];
- }
-
- if (expr.shorthand) {
- return this.generatePropertyKey(expr.key, expr.computed, expr.value);
- }
-
- if (expr.method) {
- return [
- generateMethodPrefix(expr),
- this.generatePropertyKey(expr.key, expr.computed, expr.value),
- this.generateFunctionBody(expr.value)
- ];
- }
-
- return [
- this.generatePropertyKey(expr.key, expr.computed, expr.value),
- ':' + space,
- this.generateExpression(expr.value, Precedence.Assignment, E_TTT)
- ];
- },
-
- ObjectExpression: function (expr, precedence, flags) {
- var multiline, result, fragment, that = this;
-
- if (!expr.properties.length) {
- return '{}';
- }
- multiline = expr.properties.length > 1;
-
- withIndent(function () {
- fragment = that.generateExpression(expr.properties[0], Precedence.Sequence, E_TTT);
- });
-
- if (!multiline) {
- // issues 4
- // Do not transform from
- // dejavu.Class.declare({
- // method2: function () {}
- // });
- // to
- // dejavu.Class.declare({method2: function () {
- // }});
- if (!hasLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {
- return [ '{', space, fragment, space, '}' ];
- }
- }
-
- withIndent(function (indent) {
- var i, iz;
- result = [ '{', newline, indent, fragment ];
-
- if (multiline) {
- result.push(',' + newline);
- for (i = 1, iz = expr.properties.length; i < iz; ++i) {
- result.push(indent);
- result.push(that.generateExpression(expr.properties[i], Precedence.Sequence, E_TTT));
- if (i + 1 < iz) {
- result.push(',' + newline);
- }
- }
- }
- });
-
- if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {
- result.push(newline);
- }
- result.push(base);
- result.push('}');
- return result;
- },
-
- AssignmentPattern: function(expr, precedence, flags) {
- return this.generateAssignment(expr.left, expr.right, '=', precedence, flags);
- },
-
- ObjectPattern: function (expr, precedence, flags) {
- var result, i, iz, multiline, property, that = this;
- if (!expr.properties.length) {
- return '{}';
- }
-
- multiline = false;
- if (expr.properties.length === 1) {
- property = expr.properties[0];
- if (property.value.type !== Syntax.Identifier) {
- multiline = true;
- }
- } else {
- for (i = 0, iz = expr.properties.length; i < iz; ++i) {
- property = expr.properties[i];
- if (!property.shorthand) {
- multiline = true;
- break;
- }
- }
- }
- result = ['{', multiline ? newline : '' ];
-
- withIndent(function (indent) {
- var i, iz;
- for (i = 0, iz = expr.properties.length; i < iz; ++i) {
- result.push(multiline ? indent : '');
- result.push(that.generateExpression(expr.properties[i], Precedence.Sequence, E_TTT));
- if (i + 1 < iz) {
- result.push(',' + (multiline ? newline : space));
- }
- }
- });
-
- if (multiline && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {
- result.push(newline);
- }
- result.push(multiline ? base : '');
- result.push('}');
- return result;
- },
-
- ThisExpression: function (expr, precedence, flags) {
- return 'this';
- },
-
- Super: function (expr, precedence, flags) {
- return 'super';
- },
-
- Identifier: function (expr, precedence, flags) {
- return generateIdentifier(expr);
- },
-
- ImportDefaultSpecifier: function (expr, precedence, flags) {
- return generateIdentifier(expr.id || expr.local);
- },
-
- ImportNamespaceSpecifier: function (expr, precedence, flags) {
- var result = ['*'];
- var id = expr.id || expr.local;
- if (id) {
- result.push(space + 'as' + noEmptySpace() + generateIdentifier(id));
- }
- return result;
- },
-
- ImportSpecifier: function (expr, precedence, flags) {
- var imported = expr.imported;
- var result = [ imported.name ];
- var local = expr.local;
- if (local && local.name !== imported.name) {
- result.push(noEmptySpace() + 'as' + noEmptySpace() + generateIdentifier(local));
- }
- return result;
- },
-
- ExportSpecifier: function (expr, precedence, flags) {
- var local = expr.local;
- var result = [ local.name ];
- var exported = expr.exported;
- if (exported && exported.name !== local.name) {
- result.push(noEmptySpace() + 'as' + noEmptySpace() + generateIdentifier(exported));
- }
- return result;
- },
-
- Literal: function (expr, precedence, flags) {
- var raw;
- if (expr.hasOwnProperty('raw') && parse && extra.raw) {
- try {
- raw = parse(expr.raw).body[0].expression;
- if (raw.type === Syntax.Literal) {
- if (raw.value === expr.value) {
- return expr.raw;
- }
- }
- } catch (e) {
- // not use raw property
- }
- }
-
- if (expr.value === null) {
- return 'null';
- }
-
- if (typeof expr.value === 'string') {
- return escapeString(expr.value);
- }
-
- if (typeof expr.value === 'number') {
- return generateNumber(expr.value);
- }
-
- if (typeof expr.value === 'boolean') {
- return expr.value ? 'true' : 'false';
- }
-
- return generateRegExp(expr.value);
- },
-
- GeneratorExpression: function (expr, precedence, flags) {
- return this.ComprehensionExpression(expr, precedence, flags);
- },
-
- ComprehensionExpression: function (expr, precedence, flags) {
- // GeneratorExpression should be parenthesized with (...), ComprehensionExpression with [...]
- // Due to https://bugzilla.mozilla.org/show_bug.cgi?id=883468 position of expr.body can differ in Spidermonkey and ES6
-
- var result, i, iz, fragment, that = this;
- result = (expr.type === Syntax.GeneratorExpression) ? ['('] : ['['];
-
- if (extra.moz.comprehensionExpressionStartsWithAssignment) {
- fragment = this.generateExpression(expr.body, Precedence.Assignment, E_TTT);
- result.push(fragment);
- }
-
- if (expr.blocks) {
- withIndent(function () {
- for (i = 0, iz = expr.blocks.length; i < iz; ++i) {
- fragment = that.generateExpression(expr.blocks[i], Precedence.Sequence, E_TTT);
- if (i > 0 || extra.moz.comprehensionExpressionStartsWithAssignment) {
- result = join(result, fragment);
- } else {
- result.push(fragment);
- }
- }
- });
- }
-
- if (expr.filter) {
- result = join(result, 'if' + space);
- fragment = this.generateExpression(expr.filter, Precedence.Sequence, E_TTT);
- result = join(result, [ '(', fragment, ')' ]);
- }
-
- if (!extra.moz.comprehensionExpressionStartsWithAssignment) {
- fragment = this.generateExpression(expr.body, Precedence.Assignment, E_TTT);
-
- result = join(result, fragment);
- }
-
- result.push((expr.type === Syntax.GeneratorExpression) ? ')' : ']');
- return result;
- },
-
- ComprehensionBlock: function (expr, precedence, flags) {
- var fragment;
- if (expr.left.type === Syntax.VariableDeclaration) {
- fragment = [
- expr.left.kind, noEmptySpace(),
- this.generateStatement(expr.left.declarations[0], S_FFFF)
- ];
- } else {
- fragment = this.generateExpression(expr.left, Precedence.Call, E_TTT);
- }
-
- fragment = join(fragment, expr.of ? 'of' : 'in');
- fragment = join(fragment, this.generateExpression(expr.right, Precedence.Sequence, E_TTT));
-
- return [ 'for' + space + '(', fragment, ')' ];
- },
-
- SpreadElement: function (expr, precedence, flags) {
- return [
- '...',
- this.generateExpression(expr.argument, Precedence.Assignment, E_TTT)
- ];
- },
-
- TaggedTemplateExpression: function (expr, precedence, flags) {
- var itemFlags = E_TTF;
- if (!(flags & F_ALLOW_CALL)) {
- itemFlags = E_TFF;
- }
- var result = [
- this.generateExpression(expr.tag, Precedence.Call, itemFlags),
- this.generateExpression(expr.quasi, Precedence.Primary, E_FFT)
- ];
- return parenthesize(result, Precedence.TaggedTemplate, precedence);
- },
-
- TemplateElement: function (expr, precedence, flags) {
- // Don't use "cooked". Since tagged template can use raw template
- // representation. So if we do so, it breaks the script semantics.
- return expr.value.raw;
- },
-
- TemplateLiteral: function (expr, precedence, flags) {
- var result, i, iz;
- result = [ '`' ];
- for (i = 0, iz = expr.quasis.length; i < iz; ++i) {
- result.push(this.generateExpression(expr.quasis[i], Precedence.Primary, E_TTT));
- if (i + 1 < iz) {
- result.push('${' + space);
- result.push(this.generateExpression(expr.expressions[i], Precedence.Sequence, E_TTT));
- result.push(space + '}');
- }
- }
- result.push('`');
- return result;
- },
-
- ModuleSpecifier: function (expr, precedence, flags) {
- return this.Literal(expr, precedence, flags);
- }
-
- };
-
- merge(CodeGenerator.prototype, CodeGenerator.Expression);
-
- CodeGenerator.prototype.generateExpression = function (expr, precedence, flags) {
- var result, type;
-
- type = expr.type || Syntax.Property;
-
- if (extra.verbatim && expr.hasOwnProperty(extra.verbatim)) {
- return generateVerbatim(expr, precedence);
- }
-
- result = this[type](expr, precedence, flags);
-
-
- if (extra.comment) {
- result = addComments(expr, result);
- }
- return toSourceNodeWhenNeeded(result, expr);
- };
-
- CodeGenerator.prototype.generateStatement = function (stmt, flags) {
- var result,
- fragment;
-
- result = this[stmt.type](stmt, flags);
-
- // Attach comments
-
- if (extra.comment) {
- result = addComments(stmt, result);
- }
-
- fragment = toSourceNodeWhenNeeded(result).toString();
- if (stmt.type === Syntax.Program && !safeConcatenation && newline === '' && fragment.charAt(fragment.length - 1) === '\n') {
- result = sourceMap ? toSourceNodeWhenNeeded(result).replaceRight(/\s+$/, '') : fragment.replace(/\s+$/, '');
- }
-
- return toSourceNodeWhenNeeded(result, stmt);
- };
-
- function generateInternal(node) {
- var codegen;
-
- codegen = new CodeGenerator();
- if (isStatement(node)) {
- return codegen.generateStatement(node, S_TFFF);
- }
-
- if (isExpression(node)) {
- return codegen.generateExpression(node, Precedence.Sequence, E_TTT);
- }
-
- throw new Error('Unknown node type: ' + node.type);
- }
-
- function generate(node, options) {
- var defaultOptions = getDefaultOptions(), result, pair;
-
- if (options != null) {
- // Obsolete options
- //
- // `options.indent`
- // `options.base`
- //
- // Instead of them, we can use `option.format.indent`.
- if (typeof options.indent === 'string') {
- defaultOptions.format.indent.style = options.indent;
- }
- if (typeof options.base === 'number') {
- defaultOptions.format.indent.base = options.base;
- }
- options = updateDeeply(defaultOptions, options);
- indent = options.format.indent.style;
- if (typeof options.base === 'string') {
- base = options.base;
- } else {
- base = stringRepeat(indent, options.format.indent.base);
- }
- } else {
- options = defaultOptions;
- indent = options.format.indent.style;
- base = stringRepeat(indent, options.format.indent.base);
- }
- json = options.format.json;
- renumber = options.format.renumber;
- hexadecimal = json ? false : options.format.hexadecimal;
- quotes = json ? 'double' : options.format.quotes;
- escapeless = options.format.escapeless;
- newline = options.format.newline;
- space = options.format.space;
- if (options.format.compact) {
- newline = space = indent = base = '';
- }
- parentheses = options.format.parentheses;
- semicolons = options.format.semicolons;
- safeConcatenation = options.format.safeConcatenation;
- directive = options.directive;
- parse = json ? null : options.parse;
- sourceMap = options.sourceMap;
- sourceCode = options.sourceCode;
- preserveBlankLines = options.format.preserveBlankLines && sourceCode !== null;
- extra = options;
-
- if (sourceMap) {
- if (!exports.browser) {
- // We assume environment is node.js
- // And prevent from including source-map by browserify
- SourceNode = require('source-map').SourceNode;
- } else {
- SourceNode = global.sourceMap.SourceNode;
- }
- }
-
- result = generateInternal(node);
-
- if (!sourceMap) {
- pair = {code: result.toString(), map: null};
- return options.sourceMapWithCode ? pair : pair.code;
- }
-
-
- pair = result.toStringWithSourceMap({
- file: options.file,
- sourceRoot: options.sourceMapRoot
- });
-
- if (options.sourceContent) {
- pair.map.setSourceContent(options.sourceMap,
- options.sourceContent);
- }
-
- if (options.sourceMapWithCode) {
- return pair;
- }
-
- return pair.map.toString();
- }
-
- FORMAT_MINIFY = {
- indent: {
- style: '',
- base: 0
- },
- renumber: true,
- hexadecimal: true,
- quotes: 'auto',
- escapeless: true,
- compact: true,
- parentheses: false,
- semicolons: false
- };
-
- FORMAT_DEFAULTS = getDefaultOptions().format;
-
- exports.version = require('./package.json').version;
- exports.generate = generate;
- exports.attachComments = estraverse.attachComments;
- exports.Precedence = updateDeeply({}, Precedence);
- exports.browser = false;
- exports.FORMAT_MINIFY = FORMAT_MINIFY;
- exports.FORMAT_DEFAULTS = FORMAT_DEFAULTS;
-}());
-/* vim: set sw=4 ts=4 et tw=80 : */
diff --git a/node_modules/escodegen/node_modules/.bin/esparse b/node_modules/escodegen/node_modules/.bin/esparse
deleted file mode 120000
index d3e4b572c..000000000
--- a/node_modules/escodegen/node_modules/.bin/esparse
+++ /dev/null
@@ -1 +0,0 @@
-../../../esprima/bin/esparse.js \ No newline at end of file
diff --git a/node_modules/escodegen/node_modules/.bin/esvalidate b/node_modules/escodegen/node_modules/.bin/esvalidate
deleted file mode 120000
index f8ef4b99d..000000000
--- a/node_modules/escodegen/node_modules/.bin/esvalidate
+++ /dev/null
@@ -1 +0,0 @@
-../../../esprima/bin/esvalidate.js \ No newline at end of file
diff --git a/node_modules/escodegen/node_modules/source-map/.npmignore b/node_modules/escodegen/node_modules/source-map/.npmignore
deleted file mode 100644
index 3dddf3f67..000000000
--- a/node_modules/escodegen/node_modules/source-map/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-dist/*
-node_modules/*
diff --git a/node_modules/escodegen/node_modules/source-map/.travis.yml b/node_modules/escodegen/node_modules/source-map/.travis.yml
deleted file mode 100644
index ddc9c4f98..000000000
--- a/node_modules/escodegen/node_modules/source-map/.travis.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-language: node_js
-node_js:
- - 0.8
- - "0.10" \ No newline at end of file
diff --git a/node_modules/escodegen/node_modules/source-map/CHANGELOG.md b/node_modules/escodegen/node_modules/source-map/CHANGELOG.md
deleted file mode 100644
index 2ce9d8034..000000000
--- a/node_modules/escodegen/node_modules/source-map/CHANGELOG.md
+++ /dev/null
@@ -1,201 +0,0 @@
-# Change Log
-
-## 0.2.0
-
-* Support for consuming "indexed" source maps which do not have any remote
- sections. See pull request #127. This introduces a minor backwards
- incompatibility if you are monkey patching `SourceMapConsumer.prototype`
- methods.
-
-## 0.1.43
-
-* Performance improvements for `SourceMapGenerator` and `SourceNode`. See issue
- #148 for some discussion and issues #150, #151, and #152 for implementations.
-
-## 0.1.42
-
-* Fix an issue where `SourceNode`s from different versions of the source-map
- library couldn't be used in conjunction with each other. See issue #142.
-
-## 0.1.41
-
-* Fix a bug with getting the source content of relative sources with a "./"
- prefix. See issue #145 and [Bug 1090768](bugzil.la/1090768).
-
-* Add the `SourceMapConsumer.prototype.computeColumnSpans` method to compute the
- column span of each mapping.
-
-* Add the `SourceMapConsumer.prototype.allGeneratedPositionsFor` method to find
- all generated positions associated with a given original source and line.
-
-## 0.1.40
-
-* Performance improvements for parsing source maps in SourceMapConsumer.
-
-## 0.1.39
-
-* Fix a bug where setting a source's contents to null before any source content
- had been set before threw a TypeError. See issue #131.
-
-## 0.1.38
-
-* Fix a bug where finding relative paths from an empty path were creating
- absolute paths. See issue #129.
-
-## 0.1.37
-
-* Fix a bug where if the source root was an empty string, relative source paths
- would turn into absolute source paths. Issue #124.
-
-## 0.1.36
-
-* Allow the `names` mapping property to be an empty string. Issue #121.
-
-## 0.1.35
-
-* A third optional parameter was added to `SourceNode.fromStringWithSourceMap`
- to specify a path that relative sources in the second parameter should be
- relative to. Issue #105.
-
-* If no file property is given to a `SourceMapGenerator`, then the resulting
- source map will no longer have a `null` file property. The property will
- simply not exist. Issue #104.
-
-* Fixed a bug where consecutive newlines were ignored in `SourceNode`s.
- Issue #116.
-
-## 0.1.34
-
-* Make `SourceNode` work with windows style ("\r\n") newlines. Issue #103.
-
-* Fix bug involving source contents and the
- `SourceMapGenerator.prototype.applySourceMap`. Issue #100.
-
-## 0.1.33
-
-* Fix some edge cases surrounding path joining and URL resolution.
-
-* Add a third parameter for relative path to
- `SourceMapGenerator.prototype.applySourceMap`.
-
-* Fix issues with mappings and EOLs.
-
-## 0.1.32
-
-* Fixed a bug where SourceMapConsumer couldn't handle negative relative columns
- (issue 92).
-
-* Fixed test runner to actually report number of failed tests as its process
- exit code.
-
-* Fixed a typo when reporting bad mappings (issue 87).
-
-## 0.1.31
-
-* Delay parsing the mappings in SourceMapConsumer until queried for a source
- location.
-
-* Support Sass source maps (which at the time of writing deviate from the spec
- in small ways) in SourceMapConsumer.
-
-## 0.1.30
-
-* Do not join source root with a source, when the source is a data URI.
-
-* Extend the test runner to allow running single specific test files at a time.
-
-* Performance improvements in `SourceNode.prototype.walk` and
- `SourceMapConsumer.prototype.eachMapping`.
-
-* Source map browser builds will now work inside Workers.
-
-* Better error messages when attempting to add an invalid mapping to a
- `SourceMapGenerator`.
-
-## 0.1.29
-
-* Allow duplicate entries in the `names` and `sources` arrays of source maps
- (usually from TypeScript) we are parsing. Fixes github issue 72.
-
-## 0.1.28
-
-* Skip duplicate mappings when creating source maps from SourceNode; github
- issue 75.
-
-## 0.1.27
-
-* Don't throw an error when the `file` property is missing in SourceMapConsumer,
- we don't use it anyway.
-
-## 0.1.26
-
-* Fix SourceNode.fromStringWithSourceMap for empty maps. Fixes github issue 70.
-
-## 0.1.25
-
-* Make compatible with browserify
-
-## 0.1.24
-
-* Fix issue with absolute paths and `file://` URIs. See
- https://bugzilla.mozilla.org/show_bug.cgi?id=885597
-
-## 0.1.23
-
-* Fix issue with absolute paths and sourcesContent, github issue 64.
-
-## 0.1.22
-
-* Ignore duplicate mappings in SourceMapGenerator. Fixes github issue 21.
-
-## 0.1.21
-
-* Fixed handling of sources that start with a slash so that they are relative to
- the source root's host.
-
-## 0.1.20
-
-* Fixed github issue #43: absolute URLs aren't joined with the source root
- anymore.
-
-## 0.1.19
-
-* Using Travis CI to run tests.
-
-## 0.1.18
-
-* Fixed a bug in the handling of sourceRoot.
-
-## 0.1.17
-
-* Added SourceNode.fromStringWithSourceMap.
-
-## 0.1.16
-
-* Added missing documentation.
-
-* Fixed the generating of empty mappings in SourceNode.
-
-## 0.1.15
-
-* Added SourceMapGenerator.applySourceMap.
-
-## 0.1.14
-
-* The sourceRoot is now handled consistently.
-
-## 0.1.13
-
-* Added SourceMapGenerator.fromSourceMap.
-
-## 0.1.12
-
-* SourceNode now generates empty mappings too.
-
-## 0.1.11
-
-* Added name support to SourceNode.
-
-## 0.1.10
-
-* Added sourcesContent support to the customer and generator.
diff --git a/node_modules/escodegen/node_modules/source-map/LICENSE b/node_modules/escodegen/node_modules/source-map/LICENSE
deleted file mode 100644
index ed1b7cf27..000000000
--- a/node_modules/escodegen/node_modules/source-map/LICENSE
+++ /dev/null
@@ -1,28 +0,0 @@
-
-Copyright (c) 2009-2011, Mozilla Foundation and contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the names of the Mozilla Foundation nor the names of project
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/node_modules/escodegen/node_modules/source-map/Makefile.dryice.js b/node_modules/escodegen/node_modules/source-map/Makefile.dryice.js
deleted file mode 100644
index d6fc26a79..000000000
--- a/node_modules/escodegen/node_modules/source-map/Makefile.dryice.js
+++ /dev/null
@@ -1,166 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-var path = require('path');
-var fs = require('fs');
-var copy = require('dryice').copy;
-
-function removeAmdefine(src) {
- src = String(src).replace(
- /if\s*\(typeof\s*define\s*!==\s*'function'\)\s*{\s*var\s*define\s*=\s*require\('amdefine'\)\(module,\s*require\);\s*}\s*/g,
- '');
- src = src.replace(
- /\b(define\(.*)('amdefine',?)/gm,
- '$1');
- return src;
-}
-removeAmdefine.onRead = true;
-
-function makeNonRelative(src) {
- return src
- .replace(/require\('.\//g, 'require(\'source-map/')
- .replace(/\.\.\/\.\.\/lib\//g, '');
-}
-makeNonRelative.onRead = true;
-
-function buildBrowser() {
- console.log('\nCreating dist/source-map.js');
-
- var project = copy.createCommonJsProject({
- roots: [ path.join(__dirname, 'lib') ]
- });
-
- copy({
- source: [
- 'build/mini-require.js',
- {
- project: project,
- require: [ 'source-map/source-map-generator',
- 'source-map/source-map-consumer',
- 'source-map/source-node']
- },
- 'build/suffix-browser.js'
- ],
- filter: [
- copy.filter.moduleDefines,
- removeAmdefine
- ],
- dest: 'dist/source-map.js'
- });
-}
-
-function buildBrowserMin() {
- console.log('\nCreating dist/source-map.min.js');
-
- copy({
- source: 'dist/source-map.js',
- filter: copy.filter.uglifyjs,
- dest: 'dist/source-map.min.js'
- });
-}
-
-function buildFirefox() {
- console.log('\nCreating dist/SourceMap.jsm');
-
- var project = copy.createCommonJsProject({
- roots: [ path.join(__dirname, 'lib') ]
- });
-
- copy({
- source: [
- 'build/prefix-source-map.jsm',
- {
- project: project,
- require: [ 'source-map/source-map-consumer',
- 'source-map/source-map-generator',
- 'source-map/source-node' ]
- },
- 'build/suffix-source-map.jsm'
- ],
- filter: [
- copy.filter.moduleDefines,
- removeAmdefine,
- makeNonRelative
- ],
- dest: 'dist/SourceMap.jsm'
- });
-
- // Create dist/test/Utils.jsm
- console.log('\nCreating dist/test/Utils.jsm');
-
- project = copy.createCommonJsProject({
- roots: [ __dirname, path.join(__dirname, 'lib') ]
- });
-
- copy({
- source: [
- 'build/prefix-utils.jsm',
- 'build/assert-shim.js',
- {
- project: project,
- require: [ 'test/source-map/util' ]
- },
- 'build/suffix-utils.jsm'
- ],
- filter: [
- copy.filter.moduleDefines,
- removeAmdefine,
- makeNonRelative
- ],
- dest: 'dist/test/Utils.jsm'
- });
-
- function isTestFile(f) {
- return /^test\-.*?\.js/.test(f);
- }
-
- var testFiles = fs.readdirSync(path.join(__dirname, 'test', 'source-map')).filter(isTestFile);
-
- testFiles.forEach(function (testFile) {
- console.log('\nCreating', path.join('dist', 'test', testFile.replace(/\-/g, '_')));
-
- copy({
- source: [
- 'build/test-prefix.js',
- path.join('test', 'source-map', testFile),
- 'build/test-suffix.js'
- ],
- filter: [
- removeAmdefine,
- makeNonRelative,
- function (input, source) {
- return input.replace('define(',
- 'define("'
- + path.join('test', 'source-map', testFile.replace(/\.js$/, ''))
- + '", ["require", "exports", "module"], ');
- },
- function (input, source) {
- return input.replace('{THIS_MODULE}', function () {
- return "test/source-map/" + testFile.replace(/\.js$/, '');
- });
- }
- ],
- dest: path.join('dist', 'test', testFile.replace(/\-/g, '_'))
- });
- });
-}
-
-function ensureDir(name) {
- var dirExists = false;
- try {
- dirExists = fs.statSync(name).isDirectory();
- } catch (err) {}
-
- if (!dirExists) {
- fs.mkdirSync(name, 0777);
- }
-}
-
-ensureDir("dist");
-ensureDir("dist/test");
-buildFirefox();
-buildBrowser();
-buildBrowserMin();
diff --git a/node_modules/escodegen/node_modules/source-map/README.md b/node_modules/escodegen/node_modules/source-map/README.md
deleted file mode 100644
index 450b5144f..000000000
--- a/node_modules/escodegen/node_modules/source-map/README.md
+++ /dev/null
@@ -1,479 +0,0 @@
-# Source Map
-
-This is a library to generate and consume the source map format
-[described here][format].
-
-This library is written in the Asynchronous Module Definition format, and works
-in the following environments:
-
-* Modern Browsers supporting ECMAScript 5 (either after the build, or with an
- AMD loader such as RequireJS)
-
-* Inside Firefox (as a JSM file, after the build)
-
-* With NodeJS versions 0.8.X and higher
-
-## Node
-
- $ npm install source-map
-
-## Building from Source (for everywhere else)
-
-Install Node and then run
-
- $ git clone https://fitzgen@github.com/mozilla/source-map.git
- $ cd source-map
- $ npm link .
-
-Next, run
-
- $ node Makefile.dryice.js
-
-This should spew a bunch of stuff to stdout, and create the following files:
-
-* `dist/source-map.js` - The unminified browser version.
-
-* `dist/source-map.min.js` - The minified browser version.
-
-* `dist/SourceMap.jsm` - The JavaScript Module for inclusion in Firefox source.
-
-## Examples
-
-### Consuming a source map
-
- var rawSourceMap = {
- version: 3,
- file: 'min.js',
- names: ['bar', 'baz', 'n'],
- sources: ['one.js', 'two.js'],
- sourceRoot: 'http://example.com/www/js/',
- mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA'
- };
-
- var smc = new SourceMapConsumer(rawSourceMap);
-
- console.log(smc.sources);
- // [ 'http://example.com/www/js/one.js',
- // 'http://example.com/www/js/two.js' ]
-
- console.log(smc.originalPositionFor({
- line: 2,
- column: 28
- }));
- // { source: 'http://example.com/www/js/two.js',
- // line: 2,
- // column: 10,
- // name: 'n' }
-
- console.log(smc.generatedPositionFor({
- source: 'http://example.com/www/js/two.js',
- line: 2,
- column: 10
- }));
- // { line: 2, column: 28 }
-
- smc.eachMapping(function (m) {
- // ...
- });
-
-### Generating a source map
-
-In depth guide:
-[**Compiling to JavaScript, and Debugging with Source Maps**](https://hacks.mozilla.org/2013/05/compiling-to-javascript-and-debugging-with-source-maps/)
-
-#### With SourceNode (high level API)
-
- function compile(ast) {
- switch (ast.type) {
- case 'BinaryExpression':
- return new SourceNode(
- ast.location.line,
- ast.location.column,
- ast.location.source,
- [compile(ast.left), " + ", compile(ast.right)]
- );
- case 'Literal':
- return new SourceNode(
- ast.location.line,
- ast.location.column,
- ast.location.source,
- String(ast.value)
- );
- // ...
- default:
- throw new Error("Bad AST");
- }
- }
-
- var ast = parse("40 + 2", "add.js");
- console.log(compile(ast).toStringWithSourceMap({
- file: 'add.js'
- }));
- // { code: '40 + 2',
- // map: [object SourceMapGenerator] }
-
-#### With SourceMapGenerator (low level API)
-
- var map = new SourceMapGenerator({
- file: "source-mapped.js"
- });
-
- map.addMapping({
- generated: {
- line: 10,
- column: 35
- },
- source: "foo.js",
- original: {
- line: 33,
- column: 2
- },
- name: "christopher"
- });
-
- console.log(map.toString());
- // '{"version":3,"file":"source-mapped.js","sources":["foo.js"],"names":["christopher"],"mappings":";;;;;;;;;mCAgCEA"}'
-
-## API
-
-Get a reference to the module:
-
- // NodeJS
- var sourceMap = require('source-map');
-
- // Browser builds
- var sourceMap = window.sourceMap;
-
- // Inside Firefox
- let sourceMap = {};
- Components.utils.import('resource:///modules/devtools/SourceMap.jsm', sourceMap);
-
-### SourceMapConsumer
-
-A SourceMapConsumer instance represents a parsed source map which we can query
-for information about the original file positions by giving it a file position
-in the generated source.
-
-#### new SourceMapConsumer(rawSourceMap)
-
-The only parameter is the raw source map (either as a string which can be
-`JSON.parse`'d, or an object). According to the spec, source maps have the
-following attributes:
-
-* `version`: Which version of the source map spec this map is following.
-
-* `sources`: An array of URLs to the original source files.
-
-* `names`: An array of identifiers which can be referrenced by individual
- mappings.
-
-* `sourceRoot`: Optional. The URL root from which all sources are relative.
-
-* `sourcesContent`: Optional. An array of contents of the original source files.
-
-* `mappings`: A string of base64 VLQs which contain the actual mappings.
-
-* `file`: Optional. The generated filename this source map is associated with.
-
-#### SourceMapConsumer.prototype.computeColumnSpans()
-
-Compute the last column for each generated mapping. The last column is
-inclusive.
-
-#### SourceMapConsumer.prototype.originalPositionFor(generatedPosition)
-
-Returns the original source, line, and column information for the generated
-source's line and column positions provided. The only argument is an object with
-the following properties:
-
-* `line`: The line number in the generated source.
-
-* `column`: The column number in the generated source.
-
-and an object is returned with the following properties:
-
-* `source`: The original source file, or null if this information is not
- available.
-
-* `line`: The line number in the original source, or null if this information is
- not available.
-
-* `column`: The column number in the original source, or null or null if this
- information is not available.
-
-* `name`: The original identifier, or null if this information is not available.
-
-#### SourceMapConsumer.prototype.generatedPositionFor(originalPosition)
-
-Returns the generated line and column information for the original source,
-line, and column positions provided. The only argument is an object with
-the following properties:
-
-* `source`: The filename of the original source.
-
-* `line`: The line number in the original source.
-
-* `column`: The column number in the original source.
-
-and an object is returned with the following properties:
-
-* `line`: The line number in the generated source, or null.
-
-* `column`: The column number in the generated source, or null.
-
-#### SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition)
-
-Returns all generated line and column information for the original source
-and line provided. The only argument is an object with the following
-properties:
-
-* `source`: The filename of the original source.
-
-* `line`: The line number in the original source.
-
-and an array of objects is returned, each with the following properties:
-
-* `line`: The line number in the generated source, or null.
-
-* `column`: The column number in the generated source, or null.
-
-#### SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing])
-
-Returns the original source content for the source provided. The only
-argument is the URL of the original source file.
-
-If the source content for the given source is not found, then an error is
-thrown. Optionally, pass `true` as the second param to have `null` returned
-instead.
-
-#### SourceMapConsumer.prototype.eachMapping(callback, context, order)
-
-Iterate over each mapping between an original source/line/column and a
-generated line/column in this source map.
-
-* `callback`: The function that is called with each mapping. Mappings have the
- form `{ source, generatedLine, generatedColumn, originalLine, originalColumn,
- name }`
-
-* `context`: Optional. If specified, this object will be the value of `this`
- every time that `callback` is called.
-
-* `order`: Either `SourceMapConsumer.GENERATED_ORDER` or
- `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to iterate over
- the mappings sorted by the generated file's line/column order or the
- original's source/line/column order, respectively. Defaults to
- `SourceMapConsumer.GENERATED_ORDER`.
-
-### SourceMapGenerator
-
-An instance of the SourceMapGenerator represents a source map which is being
-built incrementally.
-
-#### new SourceMapGenerator([startOfSourceMap])
-
-You may pass an object with the following properties:
-
-* `file`: The filename of the generated source that this source map is
- associated with.
-
-* `sourceRoot`: A root for all relative URLs in this source map.
-
-* `skipValidation`: Optional. When `true`, disables validation of mappings as
- they are added. This can improve performance but should be used with
- discretion, as a last resort. Even then, one should avoid using this flag when
- running tests, if possible.
-
-#### SourceMapGenerator.fromSourceMap(sourceMapConsumer)
-
-Creates a new SourceMapGenerator based on a SourceMapConsumer
-
-* `sourceMapConsumer` The SourceMap.
-
-#### SourceMapGenerator.prototype.addMapping(mapping)
-
-Add a single mapping from original source line and column to the generated
-source's line and column for this source map being created. The mapping object
-should have the following properties:
-
-* `generated`: An object with the generated line and column positions.
-
-* `original`: An object with the original line and column positions.
-
-* `source`: The original source file (relative to the sourceRoot).
-
-* `name`: An optional original token name for this mapping.
-
-#### SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent)
-
-Set the source content for an original source file.
-
-* `sourceFile` the URL of the original source file.
-
-* `sourceContent` the content of the source file.
-
-#### SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]])
-
-Applies a SourceMap for a source file to the SourceMap.
-Each mapping to the supplied source file is rewritten using the
-supplied SourceMap. Note: The resolution for the resulting mappings
-is the minimium of this map and the supplied map.
-
-* `sourceMapConsumer`: The SourceMap to be applied.
-
-* `sourceFile`: Optional. The filename of the source file.
- If omitted, sourceMapConsumer.file will be used, if it exists.
- Otherwise an error will be thrown.
-
-* `sourceMapPath`: Optional. The dirname of the path to the SourceMap
- to be applied. If relative, it is relative to the SourceMap.
-
- This parameter is needed when the two SourceMaps aren't in the same
- directory, and the SourceMap to be applied contains relative source
- paths. If so, those relative source paths need to be rewritten
- relative to the SourceMap.
-
- If omitted, it is assumed that both SourceMaps are in the same directory,
- thus not needing any rewriting. (Supplying `'.'` has the same effect.)
-
-#### SourceMapGenerator.prototype.toString()
-
-Renders the source map being generated to a string.
-
-### SourceNode
-
-SourceNodes provide a way to abstract over interpolating and/or concatenating
-snippets of generated JavaScript source code, while maintaining the line and
-column information associated between those snippets and the original source
-code. This is useful as the final intermediate representation a compiler might
-use before outputting the generated JS and source map.
-
-#### new SourceNode([line, column, source[, chunk[, name]]])
-
-* `line`: The original line number associated with this source node, or null if
- it isn't associated with an original line.
-
-* `column`: The original column number associated with this source node, or null
- if it isn't associated with an original column.
-
-* `source`: The original source's filename; null if no filename is provided.
-
-* `chunk`: Optional. Is immediately passed to `SourceNode.prototype.add`, see
- below.
-
-* `name`: Optional. The original identifier.
-
-#### SourceNode.fromStringWithSourceMap(code, sourceMapConsumer[, relativePath])
-
-Creates a SourceNode from generated code and a SourceMapConsumer.
-
-* `code`: The generated code
-
-* `sourceMapConsumer` The SourceMap for the generated code
-
-* `relativePath` The optional path that relative sources in `sourceMapConsumer`
- should be relative to.
-
-#### SourceNode.prototype.add(chunk)
-
-Add a chunk of generated JS to this source node.
-
-* `chunk`: A string snippet of generated JS code, another instance of
- `SourceNode`, or an array where each member is one of those things.
-
-#### SourceNode.prototype.prepend(chunk)
-
-Prepend a chunk of generated JS to this source node.
-
-* `chunk`: A string snippet of generated JS code, another instance of
- `SourceNode`, or an array where each member is one of those things.
-
-#### SourceNode.prototype.setSourceContent(sourceFile, sourceContent)
-
-Set the source content for a source file. This will be added to the
-`SourceMap` in the `sourcesContent` field.
-
-* `sourceFile`: The filename of the source file
-
-* `sourceContent`: The content of the source file
-
-#### SourceNode.prototype.walk(fn)
-
-Walk over the tree of JS snippets in this node and its children. The walking
-function is called once for each snippet of JS and is passed that snippet and
-the its original associated source's line/column location.
-
-* `fn`: The traversal function.
-
-#### SourceNode.prototype.walkSourceContents(fn)
-
-Walk over the tree of SourceNodes. The walking function is called for each
-source file content and is passed the filename and source content.
-
-* `fn`: The traversal function.
-
-#### SourceNode.prototype.join(sep)
-
-Like `Array.prototype.join` except for SourceNodes. Inserts the separator
-between each of this source node's children.
-
-* `sep`: The separator.
-
-#### SourceNode.prototype.replaceRight(pattern, replacement)
-
-Call `String.prototype.replace` on the very right-most source snippet. Useful
-for trimming whitespace from the end of a source node, etc.
-
-* `pattern`: The pattern to replace.
-
-* `replacement`: The thing to replace the pattern with.
-
-#### SourceNode.prototype.toString()
-
-Return the string representation of this source node. Walks over the tree and
-concatenates all the various snippets together to one string.
-
-#### SourceNode.prototype.toStringWithSourceMap([startOfSourceMap])
-
-Returns the string representation of this tree of source nodes, plus a
-SourceMapGenerator which contains all the mappings between the generated and
-original sources.
-
-The arguments are the same as those to `new SourceMapGenerator`.
-
-## Tests
-
-[![Build Status](https://travis-ci.org/mozilla/source-map.png?branch=master)](https://travis-ci.org/mozilla/source-map)
-
-Install NodeJS version 0.8.0 or greater, then run `node test/run-tests.js`.
-
-To add new tests, create a new file named `test/test-<your new test name>.js`
-and export your test functions with names that start with "test", for example
-
- exports["test doing the foo bar"] = function (assert, util) {
- ...
- };
-
-The new test will be located automatically when you run the suite.
-
-The `util` argument is the test utility module located at `test/source-map/util`.
-
-The `assert` argument is a cut down version of node's assert module. You have
-access to the following assertion functions:
-
-* `doesNotThrow`
-
-* `equal`
-
-* `ok`
-
-* `strictEqual`
-
-* `throws`
-
-(The reason for the restricted set of test functions is because we need the
-tests to run inside Firefox's test suite as well and so the assert module is
-shimmed in that environment. See `build/assert-shim.js`.)
-
-[format]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit
-[feature]: https://wiki.mozilla.org/DevTools/Features/SourceMap
-[Dryice]: https://github.com/mozilla/dryice
diff --git a/node_modules/escodegen/node_modules/source-map/build/assert-shim.js b/node_modules/escodegen/node_modules/source-map/build/assert-shim.js
deleted file mode 100644
index daa1a623c..000000000
--- a/node_modules/escodegen/node_modules/source-map/build/assert-shim.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-define('test/source-map/assert', ['exports'], function (exports) {
-
- let do_throw = function (msg) {
- throw new Error(msg);
- };
-
- exports.init = function (throw_fn) {
- do_throw = throw_fn;
- };
-
- exports.doesNotThrow = function (fn) {
- try {
- fn();
- }
- catch (e) {
- do_throw(e.message);
- }
- };
-
- exports.equal = function (actual, expected, msg) {
- msg = msg || String(actual) + ' != ' + String(expected);
- if (actual != expected) {
- do_throw(msg);
- }
- };
-
- exports.ok = function (val, msg) {
- msg = msg || String(val) + ' is falsey';
- if (!Boolean(val)) {
- do_throw(msg);
- }
- };
-
- exports.strictEqual = function (actual, expected, msg) {
- msg = msg || String(actual) + ' !== ' + String(expected);
- if (actual !== expected) {
- do_throw(msg);
- }
- };
-
- exports.throws = function (fn) {
- try {
- fn();
- do_throw('Expected an error to be thrown, but it wasn\'t.');
- }
- catch (e) {
- }
- };
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/build/mini-require.js b/node_modules/escodegen/node_modules/source-map/build/mini-require.js
deleted file mode 100644
index 0daf45377..000000000
--- a/node_modules/escodegen/node_modules/source-map/build/mini-require.js
+++ /dev/null
@@ -1,152 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-/**
- * Define a module along with a payload.
- * @param {string} moduleName Name for the payload
- * @param {ignored} deps Ignored. For compatibility with CommonJS AMD Spec
- * @param {function} payload Function with (require, exports, module) params
- */
-function define(moduleName, deps, payload) {
- if (typeof moduleName != "string") {
- throw new TypeError('Expected string, got: ' + moduleName);
- }
-
- if (arguments.length == 2) {
- payload = deps;
- }
-
- if (moduleName in define.modules) {
- throw new Error("Module already defined: " + moduleName);
- }
- define.modules[moduleName] = payload;
-};
-
-/**
- * The global store of un-instantiated modules
- */
-define.modules = {};
-
-
-/**
- * We invoke require() in the context of a Domain so we can have multiple
- * sets of modules running separate from each other.
- * This contrasts with JSMs which are singletons, Domains allows us to
- * optionally load a CommonJS module twice with separate data each time.
- * Perhaps you want 2 command lines with a different set of commands in each,
- * for example.
- */
-function Domain() {
- this.modules = {};
- this._currentModule = null;
-}
-
-(function () {
-
- /**
- * Lookup module names and resolve them by calling the definition function if
- * needed.
- * There are 2 ways to call this, either with an array of dependencies and a
- * callback to call when the dependencies are found (which can happen
- * asynchronously in an in-page context) or with a single string an no callback
- * where the dependency is resolved synchronously and returned.
- * The API is designed to be compatible with the CommonJS AMD spec and
- * RequireJS.
- * @param {string[]|string} deps A name, or names for the payload
- * @param {function|undefined} callback Function to call when the dependencies
- * are resolved
- * @return {undefined|object} The module required or undefined for
- * array/callback method
- */
- Domain.prototype.require = function(deps, callback) {
- if (Array.isArray(deps)) {
- var params = deps.map(function(dep) {
- return this.lookup(dep);
- }, this);
- if (callback) {
- callback.apply(null, params);
- }
- return undefined;
- }
- else {
- return this.lookup(deps);
- }
- };
-
- function normalize(path) {
- var bits = path.split('/');
- var i = 1;
- while (i < bits.length) {
- if (bits[i] === '..') {
- bits.splice(i-1, 1);
- } else if (bits[i] === '.') {
- bits.splice(i, 1);
- } else {
- i++;
- }
- }
- return bits.join('/');
- }
-
- function join(a, b) {
- a = a.trim();
- b = b.trim();
- if (/^\//.test(b)) {
- return b;
- } else {
- return a.replace(/\/*$/, '/') + b;
- }
- }
-
- function dirname(path) {
- var bits = path.split('/');
- bits.pop();
- return bits.join('/');
- }
-
- /**
- * Lookup module names and resolve them by calling the definition function if
- * needed.
- * @param {string} moduleName A name for the payload to lookup
- * @return {object} The module specified by aModuleName or null if not found.
- */
- Domain.prototype.lookup = function(moduleName) {
- if (/^\./.test(moduleName)) {
- moduleName = normalize(join(dirname(this._currentModule), moduleName));
- }
-
- if (moduleName in this.modules) {
- var module = this.modules[moduleName];
- return module;
- }
-
- if (!(moduleName in define.modules)) {
- throw new Error("Module not defined: " + moduleName);
- }
-
- var module = define.modules[moduleName];
-
- if (typeof module == "function") {
- var exports = {};
- var previousModule = this._currentModule;
- this._currentModule = moduleName;
- module(this.require.bind(this), exports, { id: moduleName, uri: "" });
- this._currentModule = previousModule;
- module = exports;
- }
-
- // cache the resulting module object for next time
- this.modules[moduleName] = module;
-
- return module;
- };
-
-}());
-
-define.Domain = Domain;
-define.globalDomain = new Domain();
-var require = define.globalDomain.require.bind(define.globalDomain);
diff --git a/node_modules/escodegen/node_modules/source-map/build/prefix-source-map.jsm b/node_modules/escodegen/node_modules/source-map/build/prefix-source-map.jsm
deleted file mode 100644
index ee2539d81..000000000
--- a/node_modules/escodegen/node_modules/source-map/build/prefix-source-map.jsm
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-/*
- * WARNING!
- *
- * Do not edit this file directly, it is built from the sources at
- * https://github.com/mozilla/source-map/
- */
-
-///////////////////////////////////////////////////////////////////////////////
-
-
-this.EXPORTED_SYMBOLS = [ "SourceMapConsumer", "SourceMapGenerator", "SourceNode" ];
-
-Components.utils.import('resource://gre/modules/devtools/Require.jsm');
diff --git a/node_modules/escodegen/node_modules/source-map/build/prefix-utils.jsm b/node_modules/escodegen/node_modules/source-map/build/prefix-utils.jsm
deleted file mode 100644
index 80341d452..000000000
--- a/node_modules/escodegen/node_modules/source-map/build/prefix-utils.jsm
+++ /dev/null
@@ -1,18 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-/*
- * WARNING!
- *
- * Do not edit this file directly, it is built from the sources at
- * https://github.com/mozilla/source-map/
- */
-
-Components.utils.import('resource://gre/modules/devtools/Require.jsm');
-Components.utils.import('resource://gre/modules/devtools/SourceMap.jsm');
-
-this.EXPORTED_SYMBOLS = [ "define", "runSourceMapTests" ];
diff --git a/node_modules/escodegen/node_modules/source-map/build/suffix-browser.js b/node_modules/escodegen/node_modules/source-map/build/suffix-browser.js
deleted file mode 100644
index fb29ff5fd..000000000
--- a/node_modules/escodegen/node_modules/source-map/build/suffix-browser.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-///////////////////////////////////////////////////////////////////////////////
-
-this.sourceMap = {
- SourceMapConsumer: require('source-map/source-map-consumer').SourceMapConsumer,
- SourceMapGenerator: require('source-map/source-map-generator').SourceMapGenerator,
- SourceNode: require('source-map/source-node').SourceNode
-};
diff --git a/node_modules/escodegen/node_modules/source-map/build/suffix-source-map.jsm b/node_modules/escodegen/node_modules/source-map/build/suffix-source-map.jsm
deleted file mode 100644
index cf3c2d8d3..000000000
--- a/node_modules/escodegen/node_modules/source-map/build/suffix-source-map.jsm
+++ /dev/null
@@ -1,6 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-///////////////////////////////////////////////////////////////////////////////
-
-this.SourceMapConsumer = require('source-map/source-map-consumer').SourceMapConsumer;
-this.SourceMapGenerator = require('source-map/source-map-generator').SourceMapGenerator;
-this.SourceNode = require('source-map/source-node').SourceNode;
diff --git a/node_modules/escodegen/node_modules/source-map/build/suffix-utils.jsm b/node_modules/escodegen/node_modules/source-map/build/suffix-utils.jsm
deleted file mode 100644
index b31b84cb6..000000000
--- a/node_modules/escodegen/node_modules/source-map/build/suffix-utils.jsm
+++ /dev/null
@@ -1,21 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-function runSourceMapTests(modName, do_throw) {
- let mod = require(modName);
- let assert = require('test/source-map/assert');
- let util = require('test/source-map/util');
-
- assert.init(do_throw);
-
- for (let k in mod) {
- if (/^test/.test(k)) {
- mod[k](assert, util);
- }
- }
-
-}
-this.runSourceMapTests = runSourceMapTests;
diff --git a/node_modules/escodegen/node_modules/source-map/build/test-prefix.js b/node_modules/escodegen/node_modules/source-map/build/test-prefix.js
deleted file mode 100644
index 1b13f300e..000000000
--- a/node_modules/escodegen/node_modules/source-map/build/test-prefix.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * WARNING!
- *
- * Do not edit this file directly, it is built from the sources at
- * https://github.com/mozilla/source-map/
- */
-
-Components.utils.import('resource://test/Utils.jsm');
diff --git a/node_modules/escodegen/node_modules/source-map/build/test-suffix.js b/node_modules/escodegen/node_modules/source-map/build/test-suffix.js
deleted file mode 100644
index bec2de3f2..000000000
--- a/node_modules/escodegen/node_modules/source-map/build/test-suffix.js
+++ /dev/null
@@ -1,3 +0,0 @@
-function run_test() {
- runSourceMapTests('{THIS_MODULE}', do_throw);
-}
diff --git a/node_modules/escodegen/node_modules/source-map/lib/source-map.js b/node_modules/escodegen/node_modules/source-map/lib/source-map.js
deleted file mode 100644
index 121ad2416..000000000
--- a/node_modules/escodegen/node_modules/source-map/lib/source-map.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright 2009-2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE.txt or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-exports.SourceMapGenerator = require('./source-map/source-map-generator').SourceMapGenerator;
-exports.SourceMapConsumer = require('./source-map/source-map-consumer').SourceMapConsumer;
-exports.SourceNode = require('./source-map/source-node').SourceNode;
diff --git a/node_modules/escodegen/node_modules/source-map/lib/source-map/array-set.js b/node_modules/escodegen/node_modules/source-map/lib/source-map/array-set.js
deleted file mode 100644
index 40f9a18b1..000000000
--- a/node_modules/escodegen/node_modules/source-map/lib/source-map/array-set.js
+++ /dev/null
@@ -1,97 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var util = require('./util');
-
- /**
- * A data structure which is a combination of an array and a set. Adding a new
- * member is O(1), testing for membership is O(1), and finding the index of an
- * element is O(1). Removing elements from the set is not supported. Only
- * strings are supported for membership.
- */
- function ArraySet() {
- this._array = [];
- this._set = {};
- }
-
- /**
- * Static method for creating ArraySet instances from an existing array.
- */
- ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {
- var set = new ArraySet();
- for (var i = 0, len = aArray.length; i < len; i++) {
- set.add(aArray[i], aAllowDuplicates);
- }
- return set;
- };
-
- /**
- * Add the given string to this set.
- *
- * @param String aStr
- */
- ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {
- var isDuplicate = this.has(aStr);
- var idx = this._array.length;
- if (!isDuplicate || aAllowDuplicates) {
- this._array.push(aStr);
- }
- if (!isDuplicate) {
- this._set[util.toSetString(aStr)] = idx;
- }
- };
-
- /**
- * Is the given string a member of this set?
- *
- * @param String aStr
- */
- ArraySet.prototype.has = function ArraySet_has(aStr) {
- return Object.prototype.hasOwnProperty.call(this._set,
- util.toSetString(aStr));
- };
-
- /**
- * What is the index of the given string in the array?
- *
- * @param String aStr
- */
- ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {
- if (this.has(aStr)) {
- return this._set[util.toSetString(aStr)];
- }
- throw new Error('"' + aStr + '" is not in the set.');
- };
-
- /**
- * What is the element at the given index?
- *
- * @param Number aIdx
- */
- ArraySet.prototype.at = function ArraySet_at(aIdx) {
- if (aIdx >= 0 && aIdx < this._array.length) {
- return this._array[aIdx];
- }
- throw new Error('No element indexed by ' + aIdx);
- };
-
- /**
- * Returns the array representation of this set (which has the proper indices
- * indicated by indexOf). Note that this is a copy of the internal array used
- * for storing the members so that no one can mess with internal state.
- */
- ArraySet.prototype.toArray = function ArraySet_toArray() {
- return this._array.slice();
- };
-
- exports.ArraySet = ArraySet;
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/lib/source-map/base64-vlq.js b/node_modules/escodegen/node_modules/source-map/lib/source-map/base64-vlq.js
deleted file mode 100644
index e22dcaeee..000000000
--- a/node_modules/escodegen/node_modules/source-map/lib/source-map/base64-vlq.js
+++ /dev/null
@@ -1,142 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- *
- * Based on the Base 64 VLQ implementation in Closure Compiler:
- * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java
- *
- * Copyright 2011 The Closure Compiler Authors. All rights reserved.
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided
- * with the distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var base64 = require('./base64');
-
- // A single base 64 digit can contain 6 bits of data. For the base 64 variable
- // length quantities we use in the source map spec, the first bit is the sign,
- // the next four bits are the actual value, and the 6th bit is the
- // continuation bit. The continuation bit tells us whether there are more
- // digits in this value following this digit.
- //
- // Continuation
- // | Sign
- // | |
- // V V
- // 101011
-
- var VLQ_BASE_SHIFT = 5;
-
- // binary: 100000
- var VLQ_BASE = 1 << VLQ_BASE_SHIFT;
-
- // binary: 011111
- var VLQ_BASE_MASK = VLQ_BASE - 1;
-
- // binary: 100000
- var VLQ_CONTINUATION_BIT = VLQ_BASE;
-
- /**
- * Converts from a two-complement value to a value where the sign bit is
- * placed in the least significant bit. For example, as decimals:
- * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)
- * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)
- */
- function toVLQSigned(aValue) {
- return aValue < 0
- ? ((-aValue) << 1) + 1
- : (aValue << 1) + 0;
- }
-
- /**
- * Converts to a two-complement value from a value where the sign bit is
- * placed in the least significant bit. For example, as decimals:
- * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1
- * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2
- */
- function fromVLQSigned(aValue) {
- var isNegative = (aValue & 1) === 1;
- var shifted = aValue >> 1;
- return isNegative
- ? -shifted
- : shifted;
- }
-
- /**
- * Returns the base 64 VLQ encoded value.
- */
- exports.encode = function base64VLQ_encode(aValue) {
- var encoded = "";
- var digit;
-
- var vlq = toVLQSigned(aValue);
-
- do {
- digit = vlq & VLQ_BASE_MASK;
- vlq >>>= VLQ_BASE_SHIFT;
- if (vlq > 0) {
- // There are still more digits in this value, so we must make sure the
- // continuation bit is marked.
- digit |= VLQ_CONTINUATION_BIT;
- }
- encoded += base64.encode(digit);
- } while (vlq > 0);
-
- return encoded;
- };
-
- /**
- * Decodes the next base 64 VLQ value from the given string and returns the
- * value and the rest of the string via the out parameter.
- */
- exports.decode = function base64VLQ_decode(aStr, aOutParam) {
- var i = 0;
- var strLen = aStr.length;
- var result = 0;
- var shift = 0;
- var continuation, digit;
-
- do {
- if (i >= strLen) {
- throw new Error("Expected more digits in base 64 VLQ value.");
- }
- digit = base64.decode(aStr.charAt(i++));
- continuation = !!(digit & VLQ_CONTINUATION_BIT);
- digit &= VLQ_BASE_MASK;
- result = result + (digit << shift);
- shift += VLQ_BASE_SHIFT;
- } while (continuation);
-
- aOutParam.value = fromVLQSigned(result);
- aOutParam.rest = aStr.slice(i);
- };
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/lib/source-map/base64.js b/node_modules/escodegen/node_modules/source-map/lib/source-map/base64.js
deleted file mode 100644
index 863cc4650..000000000
--- a/node_modules/escodegen/node_modules/source-map/lib/source-map/base64.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var charToIntMap = {};
- var intToCharMap = {};
-
- 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
- .split('')
- .forEach(function (ch, index) {
- charToIntMap[ch] = index;
- intToCharMap[index] = ch;
- });
-
- /**
- * Encode an integer in the range of 0 to 63 to a single base 64 digit.
- */
- exports.encode = function base64_encode(aNumber) {
- if (aNumber in intToCharMap) {
- return intToCharMap[aNumber];
- }
- throw new TypeError("Must be between 0 and 63: " + aNumber);
- };
-
- /**
- * Decode a single base 64 digit to an integer.
- */
- exports.decode = function base64_decode(aChar) {
- if (aChar in charToIntMap) {
- return charToIntMap[aChar];
- }
- throw new TypeError("Not a valid base 64 digit: " + aChar);
- };
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/lib/source-map/basic-source-map-consumer.js b/node_modules/escodegen/node_modules/source-map/lib/source-map/basic-source-map-consumer.js
deleted file mode 100644
index f2dfb3e8e..000000000
--- a/node_modules/escodegen/node_modules/source-map/lib/source-map/basic-source-map-consumer.js
+++ /dev/null
@@ -1,420 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var util = require('./util');
- var binarySearch = require('./binary-search');
- var ArraySet = require('./array-set').ArraySet;
- var base64VLQ = require('./base64-vlq');
- var SourceMapConsumer = require('./source-map-consumer').SourceMapConsumer;
-
- /**
- * A BasicSourceMapConsumer instance represents a parsed source map which we can
- * query for information about the original file positions by giving it a file
- * position in the generated source.
- *
- * The only parameter is the raw source map (either as a JSON string, or
- * already parsed to an object). According to the spec, source maps have the
- * following attributes:
- *
- * - version: Which version of the source map spec this map is following.
- * - sources: An array of URLs to the original source files.
- * - names: An array of identifiers which can be referrenced by individual mappings.
- * - sourceRoot: Optional. The URL root from which all sources are relative.
- * - sourcesContent: Optional. An array of contents of the original source files.
- * - mappings: A string of base64 VLQs which contain the actual mappings.
- * - file: Optional. The generated file this source map is associated with.
- *
- * Here is an example source map, taken from the source map spec[0]:
- *
- * {
- * version : 3,
- * file: "out.js",
- * sourceRoot : "",
- * sources: ["foo.js", "bar.js"],
- * names: ["src", "maps", "are", "fun"],
- * mappings: "AA,AB;;ABCDE;"
- * }
- *
- * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#
- */
- function BasicSourceMapConsumer(aSourceMap) {
- var sourceMap = aSourceMap;
- if (typeof aSourceMap === 'string') {
- sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
- }
-
- var version = util.getArg(sourceMap, 'version');
- var sources = util.getArg(sourceMap, 'sources');
- // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which
- // requires the array) to play nice here.
- var names = util.getArg(sourceMap, 'names', []);
- var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);
- var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);
- var mappings = util.getArg(sourceMap, 'mappings');
- var file = util.getArg(sourceMap, 'file', null);
-
- // Once again, Sass deviates from the spec and supplies the version as a
- // string rather than a number, so we use loose equality checking here.
- if (version != this._version) {
- throw new Error('Unsupported version: ' + version);
- }
-
- // Some source maps produce relative source paths like "./foo.js" instead of
- // "foo.js". Normalize these first so that future comparisons will succeed.
- // See bugzil.la/1090768.
- sources = sources.map(util.normalize);
-
- // Pass `true` below to allow duplicate names and sources. While source maps
- // are intended to be compressed and deduplicated, the TypeScript compiler
- // sometimes generates source maps with duplicates in them. See Github issue
- // #72 and bugzil.la/889492.
- this._names = ArraySet.fromArray(names, true);
- this._sources = ArraySet.fromArray(sources, true);
-
- this.sourceRoot = sourceRoot;
- this.sourcesContent = sourcesContent;
- this._mappings = mappings;
- this.file = file;
- }
-
- BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
- BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;
-
- /**
- * Create a BasicSourceMapConsumer from a SourceMapGenerator.
- *
- * @param SourceMapGenerator aSourceMap
- * The source map that will be consumed.
- * @returns BasicSourceMapConsumer
- */
- BasicSourceMapConsumer.fromSourceMap =
- function SourceMapConsumer_fromSourceMap(aSourceMap) {
- var smc = Object.create(BasicSourceMapConsumer.prototype);
-
- smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);
- smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);
- smc.sourceRoot = aSourceMap._sourceRoot;
- smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),
- smc.sourceRoot);
- smc.file = aSourceMap._file;
-
- smc.__generatedMappings = aSourceMap._mappings.toArray().slice();
- smc.__originalMappings = aSourceMap._mappings.toArray().slice()
- .sort(util.compareByOriginalPositions);
-
- return smc;
- };
-
- /**
- * The version of the source mapping spec that we are consuming.
- */
- BasicSourceMapConsumer.prototype._version = 3;
-
- /**
- * The list of original sources.
- */
- Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {
- get: function () {
- return this._sources.toArray().map(function (s) {
- return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;
- }, this);
- }
- });
-
- /**
- * Parse the mappings in a string in to a data structure which we can easily
- * query (the ordered arrays in the `this.__generatedMappings` and
- * `this.__originalMappings` properties).
- */
- BasicSourceMapConsumer.prototype._parseMappings =
- function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
- var generatedLine = 1;
- var previousGeneratedColumn = 0;
- var previousOriginalLine = 0;
- var previousOriginalColumn = 0;
- var previousSource = 0;
- var previousName = 0;
- var str = aStr;
- var temp = {};
- var mapping;
-
- while (str.length > 0) {
- if (str.charAt(0) === ';') {
- generatedLine++;
- str = str.slice(1);
- previousGeneratedColumn = 0;
- }
- else if (str.charAt(0) === ',') {
- str = str.slice(1);
- }
- else {
- mapping = {};
- mapping.generatedLine = generatedLine;
-
- // Generated column.
- base64VLQ.decode(str, temp);
- mapping.generatedColumn = previousGeneratedColumn + temp.value;
- previousGeneratedColumn = mapping.generatedColumn;
- str = temp.rest;
-
- if (str.length > 0 && !this._nextCharIsMappingSeparator(str)) {
- // Original source.
- base64VLQ.decode(str, temp);
- mapping.source = this._sources.at(previousSource + temp.value);
- previousSource += temp.value;
- str = temp.rest;
- if (str.length === 0 || this._nextCharIsMappingSeparator(str)) {
- throw new Error('Found a source, but no line and column');
- }
-
- // Original line.
- base64VLQ.decode(str, temp);
- mapping.originalLine = previousOriginalLine + temp.value;
- previousOriginalLine = mapping.originalLine;
- // Lines are stored 0-based
- mapping.originalLine += 1;
- str = temp.rest;
- if (str.length === 0 || this._nextCharIsMappingSeparator(str)) {
- throw new Error('Found a source and line, but no column');
- }
-
- // Original column.
- base64VLQ.decode(str, temp);
- mapping.originalColumn = previousOriginalColumn + temp.value;
- previousOriginalColumn = mapping.originalColumn;
- str = temp.rest;
-
- if (str.length > 0 && !this._nextCharIsMappingSeparator(str)) {
- // Original name.
- base64VLQ.decode(str, temp);
- mapping.name = this._names.at(previousName + temp.value);
- previousName += temp.value;
- str = temp.rest;
- }
- }
-
- this.__generatedMappings.push(mapping);
- if (typeof mapping.originalLine === 'number') {
- this.__originalMappings.push(mapping);
- }
- }
- }
-
- this.__generatedMappings.sort(util.compareByGeneratedPositions);
- this.__originalMappings.sort(util.compareByOriginalPositions);
- };
-
- /**
- * Find the mapping that best matches the hypothetical "needle" mapping that
- * we are searching for in the given "haystack" of mappings.
- */
- BasicSourceMapConsumer.prototype._findMapping =
- function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,
- aColumnName, aComparator) {
- // To return the position we are searching for, we must first find the
- // mapping for the given position and then return the opposite position it
- // points to. Because the mappings are sorted, we can use binary search to
- // find the best mapping.
-
- if (aNeedle[aLineName] <= 0) {
- throw new TypeError('Line must be greater than or equal to 1, got '
- + aNeedle[aLineName]);
- }
- if (aNeedle[aColumnName] < 0) {
- throw new TypeError('Column must be greater than or equal to 0, got '
- + aNeedle[aColumnName]);
- }
-
- return binarySearch.search(aNeedle, aMappings, aComparator);
- };
-
- /**
- * Compute the last column for each generated mapping. The last column is
- * inclusive.
- */
- BasicSourceMapConsumer.prototype.computeColumnSpans =
- function SourceMapConsumer_computeColumnSpans() {
- for (var index = 0; index < this._generatedMappings.length; ++index) {
- var mapping = this._generatedMappings[index];
-
- // Mappings do not contain a field for the last generated columnt. We
- // can come up with an optimistic estimate, however, by assuming that
- // mappings are contiguous (i.e. given two consecutive mappings, the
- // first mapping ends where the second one starts).
- if (index + 1 < this._generatedMappings.length) {
- var nextMapping = this._generatedMappings[index + 1];
-
- if (mapping.generatedLine === nextMapping.generatedLine) {
- mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;
- continue;
- }
- }
-
- // The last mapping for each line spans the entire line.
- mapping.lastGeneratedColumn = Infinity;
- }
- };
-
- /**
- * Returns the original source, line, and column information for the generated
- * source's line and column positions provided. The only argument is an object
- * with the following properties:
- *
- * - line: The line number in the generated source.
- * - column: The column number in the generated source.
- *
- * and an object is returned with the following properties:
- *
- * - source: The original source file, or null.
- * - line: The line number in the original source, or null.
- * - column: The column number in the original source, or null.
- * - name: The original identifier, or null.
- */
- BasicSourceMapConsumer.prototype.originalPositionFor =
- function SourceMapConsumer_originalPositionFor(aArgs) {
- var needle = {
- generatedLine: util.getArg(aArgs, 'line'),
- generatedColumn: util.getArg(aArgs, 'column')
- };
-
- var index = this._findMapping(needle,
- this._generatedMappings,
- "generatedLine",
- "generatedColumn",
- util.compareByGeneratedPositions);
-
- if (index >= 0) {
- var mapping = this._generatedMappings[index];
-
- if (mapping.generatedLine === needle.generatedLine) {
- var source = util.getArg(mapping, 'source', null);
- if (source != null && this.sourceRoot != null) {
- source = util.join(this.sourceRoot, source);
- }
- return {
- source: source,
- line: util.getArg(mapping, 'originalLine', null),
- column: util.getArg(mapping, 'originalColumn', null),
- name: util.getArg(mapping, 'name', null)
- };
- }
- }
-
- return {
- source: null,
- line: null,
- column: null,
- name: null
- };
- };
-
- /**
- * Returns the original source content. The only argument is the url of the
- * original source file. Returns null if no original source content is
- * availible.
- */
- BasicSourceMapConsumer.prototype.sourceContentFor =
- function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
- if (!this.sourcesContent) {
- return null;
- }
-
- if (this.sourceRoot != null) {
- aSource = util.relative(this.sourceRoot, aSource);
- }
-
- if (this._sources.has(aSource)) {
- return this.sourcesContent[this._sources.indexOf(aSource)];
- }
-
- var url;
- if (this.sourceRoot != null
- && (url = util.urlParse(this.sourceRoot))) {
- // XXX: file:// URIs and absolute paths lead to unexpected behavior for
- // many users. We can help them out when they expect file:// URIs to
- // behave like it would if they were running a local HTTP server. See
- // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.
- var fileUriAbsPath = aSource.replace(/^file:\/\//, "");
- if (url.scheme == "file"
- && this._sources.has(fileUriAbsPath)) {
- return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]
- }
-
- if ((!url.path || url.path == "/")
- && this._sources.has("/" + aSource)) {
- return this.sourcesContent[this._sources.indexOf("/" + aSource)];
- }
- }
-
- // This function is used recursively from
- // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we
- // don't want to throw if we can't find the source - we just want to
- // return null, so we provide a flag to exit gracefully.
- if (nullOnMissing) {
- return null;
- }
- else {
- throw new Error('"' + aSource + '" is not in the SourceMap.');
- }
- };
-
- /**
- * Returns the generated line and column information for the original source,
- * line, and column positions provided. The only argument is an object with
- * the following properties:
- *
- * - source: The filename of the original source.
- * - line: The line number in the original source.
- * - column: The column number in the original source.
- *
- * and an object is returned with the following properties:
- *
- * - line: The line number in the generated source, or null.
- * - column: The column number in the generated source, or null.
- */
- BasicSourceMapConsumer.prototype.generatedPositionFor =
- function SourceMapConsumer_generatedPositionFor(aArgs) {
- var needle = {
- source: util.getArg(aArgs, 'source'),
- originalLine: util.getArg(aArgs, 'line'),
- originalColumn: util.getArg(aArgs, 'column')
- };
-
- if (this.sourceRoot != null) {
- needle.source = util.relative(this.sourceRoot, needle.source);
- }
-
- var index = this._findMapping(needle,
- this._originalMappings,
- "originalLine",
- "originalColumn",
- util.compareByOriginalPositions);
-
- if (index >= 0) {
- var mapping = this._originalMappings[index];
-
- return {
- line: util.getArg(mapping, 'generatedLine', null),
- column: util.getArg(mapping, 'generatedColumn', null),
- lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
- };
- }
-
- return {
- line: null,
- column: null,
- lastColumn: null
- };
- };
-
- exports.BasicSourceMapConsumer = BasicSourceMapConsumer;
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/lib/source-map/binary-search.js b/node_modules/escodegen/node_modules/source-map/lib/source-map/binary-search.js
deleted file mode 100644
index e085f8100..000000000
--- a/node_modules/escodegen/node_modules/source-map/lib/source-map/binary-search.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- /**
- * Recursive implementation of binary search.
- *
- * @param aLow Indices here and lower do not contain the needle.
- * @param aHigh Indices here and higher do not contain the needle.
- * @param aNeedle The element being searched for.
- * @param aHaystack The non-empty array being searched.
- * @param aCompare Function which takes two elements and returns -1, 0, or 1.
- */
- function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare) {
- // This function terminates when one of the following is true:
- //
- // 1. We find the exact element we are looking for.
- //
- // 2. We did not find the exact element, but we can return the index of
- // the next closest element that is less than that element.
- //
- // 3. We did not find the exact element, and there is no next-closest
- // element which is less than the one we are searching for, so we
- // return -1.
- var mid = Math.floor((aHigh - aLow) / 2) + aLow;
- var cmp = aCompare(aNeedle, aHaystack[mid], true);
- if (cmp === 0) {
- // Found the element we are looking for.
- return mid;
- }
- else if (cmp > 0) {
- // aHaystack[mid] is greater than our needle.
- if (aHigh - mid > 1) {
- // The element is in the upper half.
- return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare);
- }
- // We did not find an exact match, return the next closest one
- // (termination case 2).
- return mid;
- }
- else {
- // aHaystack[mid] is less than our needle.
- if (mid - aLow > 1) {
- // The element is in the lower half.
- return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare);
- }
- // The exact needle element was not found in this haystack. Determine if
- // we are in termination case (2) or (3) and return the appropriate thing.
- return aLow < 0 ? -1 : aLow;
- }
- }
-
- /**
- * This is an implementation of binary search which will always try and return
- * the index of next lowest value checked if there is no exact hit. This is
- * because mappings between original and generated line/col pairs are single
- * points, and there is an implicit region between each of them, so a miss
- * just means that you aren't on the very start of a region.
- *
- * @param aNeedle The element you are looking for.
- * @param aHaystack The array that is being searched.
- * @param aCompare A function which takes the needle and an element in the
- * array and returns -1, 0, or 1 depending on whether the needle is less
- * than, equal to, or greater than the element, respectively.
- */
- exports.search = function search(aNeedle, aHaystack, aCompare) {
- if (aHaystack.length === 0) {
- return -1;
- }
- return recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, aCompare)
- };
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/lib/source-map/indexed-source-map-consumer.js b/node_modules/escodegen/node_modules/source-map/lib/source-map/indexed-source-map-consumer.js
deleted file mode 100644
index c6449cd9b..000000000
--- a/node_modules/escodegen/node_modules/source-map/lib/source-map/indexed-source-map-consumer.js
+++ /dev/null
@@ -1,303 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var util = require('./util');
- var binarySearch = require('./binary-search');
- var SourceMapConsumer = require('./source-map-consumer').SourceMapConsumer;
- var BasicSourceMapConsumer = require('./basic-source-map-consumer').BasicSourceMapConsumer;
-
- /**
- * An IndexedSourceMapConsumer instance represents a parsed source map which
- * we can query for information. It differs from BasicSourceMapConsumer in
- * that it takes "indexed" source maps (i.e. ones with a "sections" field) as
- * input.
- *
- * The only parameter is a raw source map (either as a JSON string, or already
- * parsed to an object). According to the spec for indexed source maps, they
- * have the following attributes:
- *
- * - version: Which version of the source map spec this map is following.
- * - file: Optional. The generated file this source map is associated with.
- * - sections: A list of section definitions.
- *
- * Each value under the "sections" field has two fields:
- * - offset: The offset into the original specified at which this section
- * begins to apply, defined as an object with a "line" and "column"
- * field.
- * - map: A source map definition. This source map could also be indexed,
- * but doesn't have to be.
- *
- * Instead of the "map" field, it's also possible to have a "url" field
- * specifying a URL to retrieve a source map from, but that's currently
- * unsupported.
- *
- * Here's an example source map, taken from the source map spec[0], but
- * modified to omit a section which uses the "url" field.
- *
- * {
- * version : 3,
- * file: "app.js",
- * sections: [{
- * offset: {line:100, column:10},
- * map: {
- * version : 3,
- * file: "section.js",
- * sources: ["foo.js", "bar.js"],
- * names: ["src", "maps", "are", "fun"],
- * mappings: "AAAA,E;;ABCDE;"
- * }
- * }],
- * }
- *
- * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt
- */
- function IndexedSourceMapConsumer(aSourceMap) {
- var sourceMap = aSourceMap;
- if (typeof aSourceMap === 'string') {
- sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
- }
-
- var version = util.getArg(sourceMap, 'version');
- var sections = util.getArg(sourceMap, 'sections');
-
- if (version != this._version) {
- throw new Error('Unsupported version: ' + version);
- }
-
- var lastOffset = {
- line: -1,
- column: 0
- };
- this._sections = sections.map(function (s) {
- if (s.url) {
- // The url field will require support for asynchronicity.
- // See https://github.com/mozilla/source-map/issues/16
- throw new Error('Support for url field in sections not implemented.');
- }
- var offset = util.getArg(s, 'offset');
- var offsetLine = util.getArg(offset, 'line');
- var offsetColumn = util.getArg(offset, 'column');
-
- if (offsetLine < lastOffset.line ||
- (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {
- throw new Error('Section offsets must be ordered and non-overlapping.');
- }
- lastOffset = offset;
-
- return {
- generatedOffset: {
- // The offset fields are 0-based, but we use 1-based indices when
- // encoding/decoding from VLQ.
- generatedLine: offsetLine + 1,
- generatedColumn: offsetColumn + 1
- },
- consumer: new SourceMapConsumer(util.getArg(s, 'map'))
- }
- });
- }
-
- IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
- IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;
-
- /**
- * The version of the source mapping spec that we are consuming.
- */
- IndexedSourceMapConsumer.prototype._version = 3;
-
- /**
- * The list of original sources.
- */
- Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {
- get: function () {
- var sources = [];
- for (var i = 0; i < this._sections.length; i++) {
- for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {
- sources.push(this._sections[i].consumer.sources[j]);
- }
- };
- return sources;
- }
- });
-
- /**
- * Returns the original source, line, and column information for the generated
- * source's line and column positions provided. The only argument is an object
- * with the following properties:
- *
- * - line: The line number in the generated source.
- * - column: The column number in the generated source.
- *
- * and an object is returned with the following properties:
- *
- * - source: The original source file, or null.
- * - line: The line number in the original source, or null.
- * - column: The column number in the original source, or null.
- * - name: The original identifier, or null.
- */
- IndexedSourceMapConsumer.prototype.originalPositionFor =
- function IndexedSourceMapConsumer_originalPositionFor(aArgs) {
- var needle = {
- generatedLine: util.getArg(aArgs, 'line'),
- generatedColumn: util.getArg(aArgs, 'column')
- };
-
- // Find the section containing the generated position we're trying to map
- // to an original position.
- var sectionIndex = binarySearch.search(needle, this._sections,
- function(needle, section) {
- var cmp = needle.generatedLine - section.generatedOffset.generatedLine;
- if (cmp) {
- return cmp;
- }
-
- return (needle.generatedColumn -
- section.generatedOffset.generatedColumn);
- });
- var section = this._sections[sectionIndex];
-
- if (!section) {
- return {
- source: null,
- line: null,
- column: null,
- name: null
- };
- }
-
- return section.consumer.originalPositionFor({
- line: needle.generatedLine -
- (section.generatedOffset.generatedLine - 1),
- column: needle.generatedColumn -
- (section.generatedOffset.generatedLine === needle.generatedLine
- ? section.generatedOffset.generatedColumn - 1
- : 0)
- });
- };
-
- /**
- * Returns the original source content. The only argument is the url of the
- * original source file. Returns null if no original source content is
- * available.
- */
- IndexedSourceMapConsumer.prototype.sourceContentFor =
- function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
- for (var i = 0; i < this._sections.length; i++) {
- var section = this._sections[i];
-
- var content = section.consumer.sourceContentFor(aSource, true);
- if (content) {
- return content;
- }
- }
- if (nullOnMissing) {
- return null;
- }
- else {
- throw new Error('"' + aSource + '" is not in the SourceMap.');
- }
- };
-
- /**
- * Returns the generated line and column information for the original source,
- * line, and column positions provided. The only argument is an object with
- * the following properties:
- *
- * - source: The filename of the original source.
- * - line: The line number in the original source.
- * - column: The column number in the original source.
- *
- * and an object is returned with the following properties:
- *
- * - line: The line number in the generated source, or null.
- * - column: The column number in the generated source, or null.
- */
- IndexedSourceMapConsumer.prototype.generatedPositionFor =
- function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {
- for (var i = 0; i < this._sections.length; i++) {
- var section = this._sections[i];
-
- // Only consider this section if the requested source is in the list of
- // sources of the consumer.
- if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {
- continue;
- }
- var generatedPosition = section.consumer.generatedPositionFor(aArgs);
- if (generatedPosition) {
- var ret = {
- line: generatedPosition.line +
- (section.generatedOffset.generatedLine - 1),
- column: generatedPosition.column +
- (section.generatedOffset.generatedLine === generatedPosition.line
- ? section.generatedOffset.generatedColumn - 1
- : 0)
- };
- return ret;
- }
- }
-
- return {
- line: null,
- column: null
- };
- };
-
- /**
- * Parse the mappings in a string in to a data structure which we can easily
- * query (the ordered arrays in the `this.__generatedMappings` and
- * `this.__originalMappings` properties).
- */
- IndexedSourceMapConsumer.prototype._parseMappings =
- function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {
- this.__generatedMappings = [];
- this.__originalMappings = [];
- for (var i = 0; i < this._sections.length; i++) {
- var section = this._sections[i];
- var sectionMappings = section.consumer._generatedMappings;
- for (var j = 0; j < sectionMappings.length; j++) {
- var mapping = sectionMappings[i];
-
- var source = mapping.source;
- var sourceRoot = section.consumer.sourceRoot;
-
- if (source != null && sourceRoot != null) {
- source = util.join(sourceRoot, source);
- }
-
- // The mappings coming from the consumer for the section have
- // generated positions relative to the start of the section, so we
- // need to offset them to be relative to the start of the concatenated
- // generated file.
- var adjustedMapping = {
- source: source,
- generatedLine: mapping.generatedLine +
- (section.generatedOffset.generatedLine - 1),
- generatedColumn: mapping.column +
- (section.generatedOffset.generatedLine === mapping.generatedLine)
- ? section.generatedOffset.generatedColumn - 1
- : 0,
- originalLine: mapping.originalLine,
- originalColumn: mapping.originalColumn,
- name: mapping.name
- };
-
- this.__generatedMappings.push(adjustedMapping);
- if (typeof adjustedMapping.originalLine === 'number') {
- this.__originalMappings.push(adjustedMapping);
- }
- };
- };
-
- this.__generatedMappings.sort(util.compareByGeneratedPositions);
- this.__originalMappings.sort(util.compareByOriginalPositions);
- };
-
- exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;
-});
diff --git a/node_modules/escodegen/node_modules/source-map/lib/source-map/mapping-list.js b/node_modules/escodegen/node_modules/source-map/lib/source-map/mapping-list.js
deleted file mode 100644
index 2a4eb6186..000000000
--- a/node_modules/escodegen/node_modules/source-map/lib/source-map/mapping-list.js
+++ /dev/null
@@ -1,86 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2014 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var util = require('./util');
-
- /**
- * Determine whether mappingB is after mappingA with respect to generated
- * position.
- */
- function generatedPositionAfter(mappingA, mappingB) {
- // Optimized for most common case
- var lineA = mappingA.generatedLine;
- var lineB = mappingB.generatedLine;
- var columnA = mappingA.generatedColumn;
- var columnB = mappingB.generatedColumn;
- return lineB > lineA || lineB == lineA && columnB >= columnA ||
- util.compareByGeneratedPositions(mappingA, mappingB) <= 0;
- }
-
- /**
- * A data structure to provide a sorted view of accumulated mappings in a
- * performance conscious manner. It trades a neglibable overhead in general
- * case for a large speedup in case of mappings being added in order.
- */
- function MappingList() {
- this._array = [];
- this._sorted = true;
- // Serves as infimum
- this._last = {generatedLine: -1, generatedColumn: 0};
- }
-
- /**
- * Iterate through internal items. This method takes the same arguments that
- * `Array.prototype.forEach` takes.
- *
- * NOTE: The order of the mappings is NOT guaranteed.
- */
- MappingList.prototype.unsortedForEach =
- function MappingList_forEach(aCallback, aThisArg) {
- this._array.forEach(aCallback, aThisArg);
- };
-
- /**
- * Add the given source mapping.
- *
- * @param Object aMapping
- */
- MappingList.prototype.add = function MappingList_add(aMapping) {
- var mapping;
- if (generatedPositionAfter(this._last, aMapping)) {
- this._last = aMapping;
- this._array.push(aMapping);
- } else {
- this._sorted = false;
- this._array.push(aMapping);
- }
- };
-
- /**
- * Returns the flat, sorted array of mappings. The mappings are sorted by
- * generated position.
- *
- * WARNING: This method returns internal data without copying, for
- * performance. The return value must NOT be mutated, and should be treated as
- * an immutable borrow. If you want to take ownership, you must make your own
- * copy.
- */
- MappingList.prototype.toArray = function MappingList_toArray() {
- if (!this._sorted) {
- this._array.sort(util.compareByGeneratedPositions);
- this._sorted = true;
- }
- return this._array;
- };
-
- exports.MappingList = MappingList;
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-consumer.js b/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-consumer.js
deleted file mode 100644
index f3abade75..000000000
--- a/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-consumer.js
+++ /dev/null
@@ -1,222 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var util = require('./util');
-
- function SourceMapConsumer(aSourceMap) {
- var sourceMap = aSourceMap;
- if (typeof aSourceMap === 'string') {
- sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
- }
-
- // We do late requires because the subclasses require() this file.
- if (sourceMap.sections != null) {
- var indexedSourceMapConsumer = require('./indexed-source-map-consumer');
- return new indexedSourceMapConsumer.IndexedSourceMapConsumer(sourceMap);
- } else {
- var basicSourceMapConsumer = require('./basic-source-map-consumer');
- return new basicSourceMapConsumer.BasicSourceMapConsumer(sourceMap);
- }
- }
-
- SourceMapConsumer.fromSourceMap = function(aSourceMap) {
- var basicSourceMapConsumer = require('./basic-source-map-consumer');
- return basicSourceMapConsumer.BasicSourceMapConsumer
- .fromSourceMap(aSourceMap);
- }
-
- /**
- * The version of the source mapping spec that we are consuming.
- */
- SourceMapConsumer.prototype._version = 3;
-
-
- // `__generatedMappings` and `__originalMappings` are arrays that hold the
- // parsed mapping coordinates from the source map's "mappings" attribute. They
- // are lazily instantiated, accessed via the `_generatedMappings` and
- // `_originalMappings` getters respectively, and we only parse the mappings
- // and create these arrays once queried for a source location. We jump through
- // these hoops because there can be many thousands of mappings, and parsing
- // them is expensive, so we only want to do it if we must.
- //
- // Each object in the arrays is of the form:
- //
- // {
- // generatedLine: The line number in the generated code,
- // generatedColumn: The column number in the generated code,
- // source: The path to the original source file that generated this
- // chunk of code,
- // originalLine: The line number in the original source that
- // corresponds to this chunk of generated code,
- // originalColumn: The column number in the original source that
- // corresponds to this chunk of generated code,
- // name: The name of the original symbol which generated this chunk of
- // code.
- // }
- //
- // All properties except for `generatedLine` and `generatedColumn` can be
- // `null`.
- //
- // `_generatedMappings` is ordered by the generated positions.
- //
- // `_originalMappings` is ordered by the original positions.
-
- SourceMapConsumer.prototype.__generatedMappings = null;
- Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {
- get: function () {
- if (!this.__generatedMappings) {
- this.__generatedMappings = [];
- this.__originalMappings = [];
- this._parseMappings(this._mappings, this.sourceRoot);
- }
-
- return this.__generatedMappings;
- }
- });
-
- SourceMapConsumer.prototype.__originalMappings = null;
- Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {
- get: function () {
- if (!this.__originalMappings) {
- this.__generatedMappings = [];
- this.__originalMappings = [];
- this._parseMappings(this._mappings, this.sourceRoot);
- }
-
- return this.__originalMappings;
- }
- });
-
- SourceMapConsumer.prototype._nextCharIsMappingSeparator =
- function SourceMapConsumer_nextCharIsMappingSeparator(aStr) {
- var c = aStr.charAt(0);
- return c === ";" || c === ",";
- };
-
- /**
- * Parse the mappings in a string in to a data structure which we can easily
- * query (the ordered arrays in the `this.__generatedMappings` and
- * `this.__originalMappings` properties).
- */
- SourceMapConsumer.prototype._parseMappings =
- function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
- throw new Error("Subclasses must implement _parseMappings");
- };
-
- SourceMapConsumer.GENERATED_ORDER = 1;
- SourceMapConsumer.ORIGINAL_ORDER = 2;
-
- /**
- * Iterate over each mapping between an original source/line/column and a
- * generated line/column in this source map.
- *
- * @param Function aCallback
- * The function that is called with each mapping.
- * @param Object aContext
- * Optional. If specified, this object will be the value of `this` every
- * time that `aCallback` is called.
- * @param aOrder
- * Either `SourceMapConsumer.GENERATED_ORDER` or
- * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to
- * iterate over the mappings sorted by the generated file's line/column
- * order or the original's source/line/column order, respectively. Defaults to
- * `SourceMapConsumer.GENERATED_ORDER`.
- */
- SourceMapConsumer.prototype.eachMapping =
- function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {
- var context = aContext || null;
- var order = aOrder || SourceMapConsumer.GENERATED_ORDER;
-
- var mappings;
- switch (order) {
- case SourceMapConsumer.GENERATED_ORDER:
- mappings = this._generatedMappings;
- break;
- case SourceMapConsumer.ORIGINAL_ORDER:
- mappings = this._originalMappings;
- break;
- default:
- throw new Error("Unknown order of iteration.");
- }
-
- var sourceRoot = this.sourceRoot;
- mappings.map(function (mapping) {
- var source = mapping.source;
- if (source != null && sourceRoot != null) {
- source = util.join(sourceRoot, source);
- }
- return {
- source: source,
- generatedLine: mapping.generatedLine,
- generatedColumn: mapping.generatedColumn,
- originalLine: mapping.originalLine,
- originalColumn: mapping.originalColumn,
- name: mapping.name
- };
- }).forEach(aCallback, context);
- };
-
- /**
- * Returns all generated line and column information for the original source
- * and line provided. The only argument is an object with the following
- * properties:
- *
- * - source: The filename of the original source.
- * - line: The line number in the original source.
- *
- * and an array of objects is returned, each with the following properties:
- *
- * - line: The line number in the generated source, or null.
- * - column: The column number in the generated source, or null.
- */
- SourceMapConsumer.prototype.allGeneratedPositionsFor =
- function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {
- // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping
- // returns the index of the closest mapping less than the needle. By
- // setting needle.originalColumn to Infinity, we thus find the last
- // mapping for the given line, provided such a mapping exists.
- var needle = {
- source: util.getArg(aArgs, 'source'),
- originalLine: util.getArg(aArgs, 'line'),
- originalColumn: Infinity
- };
-
- if (this.sourceRoot != null) {
- needle.source = util.relative(this.sourceRoot, needle.source);
- }
-
- var mappings = [];
-
- var index = this._findMapping(needle,
- this._originalMappings,
- "originalLine",
- "originalColumn",
- util.compareByOriginalPositions);
- if (index >= 0) {
- var mapping = this._originalMappings[index];
-
- while (mapping && mapping.originalLine === needle.originalLine) {
- mappings.push({
- line: util.getArg(mapping, 'generatedLine', null),
- column: util.getArg(mapping, 'generatedColumn', null),
- lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
- });
-
- mapping = this._originalMappings[--index];
- }
- }
-
- return mappings.reverse();
- };
-
- exports.SourceMapConsumer = SourceMapConsumer;
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-generator.js b/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-generator.js
deleted file mode 100644
index 1ab7a47de..000000000
--- a/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-generator.js
+++ /dev/null
@@ -1,400 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var base64VLQ = require('./base64-vlq');
- var util = require('./util');
- var ArraySet = require('./array-set').ArraySet;
- var MappingList = require('./mapping-list').MappingList;
-
- /**
- * An instance of the SourceMapGenerator represents a source map which is
- * being built incrementally. You may pass an object with the following
- * properties:
- *
- * - file: The filename of the generated source.
- * - sourceRoot: A root for all relative URLs in this source map.
- */
- function SourceMapGenerator(aArgs) {
- if (!aArgs) {
- aArgs = {};
- }
- this._file = util.getArg(aArgs, 'file', null);
- this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);
- this._skipValidation = util.getArg(aArgs, 'skipValidation', false);
- this._sources = new ArraySet();
- this._names = new ArraySet();
- this._mappings = new MappingList();
- this._sourcesContents = null;
- }
-
- SourceMapGenerator.prototype._version = 3;
-
- /**
- * Creates a new SourceMapGenerator based on a SourceMapConsumer
- *
- * @param aSourceMapConsumer The SourceMap.
- */
- SourceMapGenerator.fromSourceMap =
- function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {
- var sourceRoot = aSourceMapConsumer.sourceRoot;
- var generator = new SourceMapGenerator({
- file: aSourceMapConsumer.file,
- sourceRoot: sourceRoot
- });
- aSourceMapConsumer.eachMapping(function (mapping) {
- var newMapping = {
- generated: {
- line: mapping.generatedLine,
- column: mapping.generatedColumn
- }
- };
-
- if (mapping.source != null) {
- newMapping.source = mapping.source;
- if (sourceRoot != null) {
- newMapping.source = util.relative(sourceRoot, newMapping.source);
- }
-
- newMapping.original = {
- line: mapping.originalLine,
- column: mapping.originalColumn
- };
-
- if (mapping.name != null) {
- newMapping.name = mapping.name;
- }
- }
-
- generator.addMapping(newMapping);
- });
- aSourceMapConsumer.sources.forEach(function (sourceFile) {
- var content = aSourceMapConsumer.sourceContentFor(sourceFile);
- if (content != null) {
- generator.setSourceContent(sourceFile, content);
- }
- });
- return generator;
- };
-
- /**
- * Add a single mapping from original source line and column to the generated
- * source's line and column for this source map being created. The mapping
- * object should have the following properties:
- *
- * - generated: An object with the generated line and column positions.
- * - original: An object with the original line and column positions.
- * - source: The original source file (relative to the sourceRoot).
- * - name: An optional original token name for this mapping.
- */
- SourceMapGenerator.prototype.addMapping =
- function SourceMapGenerator_addMapping(aArgs) {
- var generated = util.getArg(aArgs, 'generated');
- var original = util.getArg(aArgs, 'original', null);
- var source = util.getArg(aArgs, 'source', null);
- var name = util.getArg(aArgs, 'name', null);
-
- if (!this._skipValidation) {
- this._validateMapping(generated, original, source, name);
- }
-
- if (source != null && !this._sources.has(source)) {
- this._sources.add(source);
- }
-
- if (name != null && !this._names.has(name)) {
- this._names.add(name);
- }
-
- this._mappings.add({
- generatedLine: generated.line,
- generatedColumn: generated.column,
- originalLine: original != null && original.line,
- originalColumn: original != null && original.column,
- source: source,
- name: name
- });
- };
-
- /**
- * Set the source content for a source file.
- */
- SourceMapGenerator.prototype.setSourceContent =
- function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {
- var source = aSourceFile;
- if (this._sourceRoot != null) {
- source = util.relative(this._sourceRoot, source);
- }
-
- if (aSourceContent != null) {
- // Add the source content to the _sourcesContents map.
- // Create a new _sourcesContents map if the property is null.
- if (!this._sourcesContents) {
- this._sourcesContents = {};
- }
- this._sourcesContents[util.toSetString(source)] = aSourceContent;
- } else if (this._sourcesContents) {
- // Remove the source file from the _sourcesContents map.
- // If the _sourcesContents map is empty, set the property to null.
- delete this._sourcesContents[util.toSetString(source)];
- if (Object.keys(this._sourcesContents).length === 0) {
- this._sourcesContents = null;
- }
- }
- };
-
- /**
- * Applies the mappings of a sub-source-map for a specific source file to the
- * source map being generated. Each mapping to the supplied source file is
- * rewritten using the supplied source map. Note: The resolution for the
- * resulting mappings is the minimium of this map and the supplied map.
- *
- * @param aSourceMapConsumer The source map to be applied.
- * @param aSourceFile Optional. The filename of the source file.
- * If omitted, SourceMapConsumer's file property will be used.
- * @param aSourceMapPath Optional. The dirname of the path to the source map
- * to be applied. If relative, it is relative to the SourceMapConsumer.
- * This parameter is needed when the two source maps aren't in the same
- * directory, and the source map to be applied contains relative source
- * paths. If so, those relative source paths need to be rewritten
- * relative to the SourceMapGenerator.
- */
- SourceMapGenerator.prototype.applySourceMap =
- function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {
- var sourceFile = aSourceFile;
- // If aSourceFile is omitted, we will use the file property of the SourceMap
- if (aSourceFile == null) {
- if (aSourceMapConsumer.file == null) {
- throw new Error(
- 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +
- 'or the source map\'s "file" property. Both were omitted.'
- );
- }
- sourceFile = aSourceMapConsumer.file;
- }
- var sourceRoot = this._sourceRoot;
- // Make "sourceFile" relative if an absolute Url is passed.
- if (sourceRoot != null) {
- sourceFile = util.relative(sourceRoot, sourceFile);
- }
- // Applying the SourceMap can add and remove items from the sources and
- // the names array.
- var newSources = new ArraySet();
- var newNames = new ArraySet();
-
- // Find mappings for the "sourceFile"
- this._mappings.unsortedForEach(function (mapping) {
- if (mapping.source === sourceFile && mapping.originalLine != null) {
- // Check if it can be mapped by the source map, then update the mapping.
- var original = aSourceMapConsumer.originalPositionFor({
- line: mapping.originalLine,
- column: mapping.originalColumn
- });
- if (original.source != null) {
- // Copy mapping
- mapping.source = original.source;
- if (aSourceMapPath != null) {
- mapping.source = util.join(aSourceMapPath, mapping.source)
- }
- if (sourceRoot != null) {
- mapping.source = util.relative(sourceRoot, mapping.source);
- }
- mapping.originalLine = original.line;
- mapping.originalColumn = original.column;
- if (original.name != null) {
- mapping.name = original.name;
- }
- }
- }
-
- var source = mapping.source;
- if (source != null && !newSources.has(source)) {
- newSources.add(source);
- }
-
- var name = mapping.name;
- if (name != null && !newNames.has(name)) {
- newNames.add(name);
- }
-
- }, this);
- this._sources = newSources;
- this._names = newNames;
-
- // Copy sourcesContents of applied map.
- aSourceMapConsumer.sources.forEach(function (sourceFile) {
- var content = aSourceMapConsumer.sourceContentFor(sourceFile);
- if (content != null) {
- if (aSourceMapPath != null) {
- sourceFile = util.join(aSourceMapPath, sourceFile);
- }
- if (sourceRoot != null) {
- sourceFile = util.relative(sourceRoot, sourceFile);
- }
- this.setSourceContent(sourceFile, content);
- }
- }, this);
- };
-
- /**
- * A mapping can have one of the three levels of data:
- *
- * 1. Just the generated position.
- * 2. The Generated position, original position, and original source.
- * 3. Generated and original position, original source, as well as a name
- * token.
- *
- * To maintain consistency, we validate that any new mapping being added falls
- * in to one of these categories.
- */
- SourceMapGenerator.prototype._validateMapping =
- function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,
- aName) {
- if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
- && aGenerated.line > 0 && aGenerated.column >= 0
- && !aOriginal && !aSource && !aName) {
- // Case 1.
- return;
- }
- else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
- && aOriginal && 'line' in aOriginal && 'column' in aOriginal
- && aGenerated.line > 0 && aGenerated.column >= 0
- && aOriginal.line > 0 && aOriginal.column >= 0
- && aSource) {
- // Cases 2 and 3.
- return;
- }
- else {
- throw new Error('Invalid mapping: ' + JSON.stringify({
- generated: aGenerated,
- source: aSource,
- original: aOriginal,
- name: aName
- }));
- }
- };
-
- /**
- * Serialize the accumulated mappings in to the stream of base 64 VLQs
- * specified by the source map format.
- */
- SourceMapGenerator.prototype._serializeMappings =
- function SourceMapGenerator_serializeMappings() {
- var previousGeneratedColumn = 0;
- var previousGeneratedLine = 1;
- var previousOriginalColumn = 0;
- var previousOriginalLine = 0;
- var previousName = 0;
- var previousSource = 0;
- var result = '';
- var mapping;
-
- var mappings = this._mappings.toArray();
-
- for (var i = 0, len = mappings.length; i < len; i++) {
- mapping = mappings[i];
-
- if (mapping.generatedLine !== previousGeneratedLine) {
- previousGeneratedColumn = 0;
- while (mapping.generatedLine !== previousGeneratedLine) {
- result += ';';
- previousGeneratedLine++;
- }
- }
- else {
- if (i > 0) {
- if (!util.compareByGeneratedPositions(mapping, mappings[i - 1])) {
- continue;
- }
- result += ',';
- }
- }
-
- result += base64VLQ.encode(mapping.generatedColumn
- - previousGeneratedColumn);
- previousGeneratedColumn = mapping.generatedColumn;
-
- if (mapping.source != null) {
- result += base64VLQ.encode(this._sources.indexOf(mapping.source)
- - previousSource);
- previousSource = this._sources.indexOf(mapping.source);
-
- // lines are stored 0-based in SourceMap spec version 3
- result += base64VLQ.encode(mapping.originalLine - 1
- - previousOriginalLine);
- previousOriginalLine = mapping.originalLine - 1;
-
- result += base64VLQ.encode(mapping.originalColumn
- - previousOriginalColumn);
- previousOriginalColumn = mapping.originalColumn;
-
- if (mapping.name != null) {
- result += base64VLQ.encode(this._names.indexOf(mapping.name)
- - previousName);
- previousName = this._names.indexOf(mapping.name);
- }
- }
- }
-
- return result;
- };
-
- SourceMapGenerator.prototype._generateSourcesContent =
- function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {
- return aSources.map(function (source) {
- if (!this._sourcesContents) {
- return null;
- }
- if (aSourceRoot != null) {
- source = util.relative(aSourceRoot, source);
- }
- var key = util.toSetString(source);
- return Object.prototype.hasOwnProperty.call(this._sourcesContents,
- key)
- ? this._sourcesContents[key]
- : null;
- }, this);
- };
-
- /**
- * Externalize the source map.
- */
- SourceMapGenerator.prototype.toJSON =
- function SourceMapGenerator_toJSON() {
- var map = {
- version: this._version,
- sources: this._sources.toArray(),
- names: this._names.toArray(),
- mappings: this._serializeMappings()
- };
- if (this._file != null) {
- map.file = this._file;
- }
- if (this._sourceRoot != null) {
- map.sourceRoot = this._sourceRoot;
- }
- if (this._sourcesContents) {
- map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);
- }
-
- return map;
- };
-
- /**
- * Render the source map being generated to a string.
- */
- SourceMapGenerator.prototype.toString =
- function SourceMapGenerator_toString() {
- return JSON.stringify(this);
- };
-
- exports.SourceMapGenerator = SourceMapGenerator;
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/lib/source-map/source-node.js b/node_modules/escodegen/node_modules/source-map/lib/source-map/source-node.js
deleted file mode 100644
index 9ee90bd56..000000000
--- a/node_modules/escodegen/node_modules/source-map/lib/source-map/source-node.js
+++ /dev/null
@@ -1,414 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;
- var util = require('./util');
-
- // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other
- // operating systems these days (capturing the result).
- var REGEX_NEWLINE = /(\r?\n)/;
-
- // Newline character code for charCodeAt() comparisons
- var NEWLINE_CODE = 10;
-
- // Private symbol for identifying `SourceNode`s when multiple versions of
- // the source-map library are loaded. This MUST NOT CHANGE across
- // versions!
- var isSourceNode = "$$$isSourceNode$$$";
-
- /**
- * SourceNodes provide a way to abstract over interpolating/concatenating
- * snippets of generated JavaScript source code while maintaining the line and
- * column information associated with the original source code.
- *
- * @param aLine The original line number.
- * @param aColumn The original column number.
- * @param aSource The original source's filename.
- * @param aChunks Optional. An array of strings which are snippets of
- * generated JS, or other SourceNodes.
- * @param aName The original identifier.
- */
- function SourceNode(aLine, aColumn, aSource, aChunks, aName) {
- this.children = [];
- this.sourceContents = {};
- this.line = aLine == null ? null : aLine;
- this.column = aColumn == null ? null : aColumn;
- this.source = aSource == null ? null : aSource;
- this.name = aName == null ? null : aName;
- this[isSourceNode] = true;
- if (aChunks != null) this.add(aChunks);
- }
-
- /**
- * Creates a SourceNode from generated code and a SourceMapConsumer.
- *
- * @param aGeneratedCode The generated code
- * @param aSourceMapConsumer The SourceMap for the generated code
- * @param aRelativePath Optional. The path that relative sources in the
- * SourceMapConsumer should be relative to.
- */
- SourceNode.fromStringWithSourceMap =
- function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {
- // The SourceNode we want to fill with the generated code
- // and the SourceMap
- var node = new SourceNode();
-
- // All even indices of this array are one line of the generated code,
- // while all odd indices are the newlines between two adjacent lines
- // (since `REGEX_NEWLINE` captures its match).
- // Processed fragments are removed from this array, by calling `shiftNextLine`.
- var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);
- var shiftNextLine = function() {
- var lineContents = remainingLines.shift();
- // The last line of a file might not have a newline.
- var newLine = remainingLines.shift() || "";
- return lineContents + newLine;
- };
-
- // We need to remember the position of "remainingLines"
- var lastGeneratedLine = 1, lastGeneratedColumn = 0;
-
- // The generate SourceNodes we need a code range.
- // To extract it current and last mapping is used.
- // Here we store the last mapping.
- var lastMapping = null;
-
- aSourceMapConsumer.eachMapping(function (mapping) {
- if (lastMapping !== null) {
- // We add the code from "lastMapping" to "mapping":
- // First check if there is a new line in between.
- if (lastGeneratedLine < mapping.generatedLine) {
- var code = "";
- // Associate first line with "lastMapping"
- addMappingWithCode(lastMapping, shiftNextLine());
- lastGeneratedLine++;
- lastGeneratedColumn = 0;
- // The remaining code is added without mapping
- } else {
- // There is no new line in between.
- // Associate the code between "lastGeneratedColumn" and
- // "mapping.generatedColumn" with "lastMapping"
- var nextLine = remainingLines[0];
- var code = nextLine.substr(0, mapping.generatedColumn -
- lastGeneratedColumn);
- remainingLines[0] = nextLine.substr(mapping.generatedColumn -
- lastGeneratedColumn);
- lastGeneratedColumn = mapping.generatedColumn;
- addMappingWithCode(lastMapping, code);
- // No more remaining code, continue
- lastMapping = mapping;
- return;
- }
- }
- // We add the generated code until the first mapping
- // to the SourceNode without any mapping.
- // Each line is added as separate string.
- while (lastGeneratedLine < mapping.generatedLine) {
- node.add(shiftNextLine());
- lastGeneratedLine++;
- }
- if (lastGeneratedColumn < mapping.generatedColumn) {
- var nextLine = remainingLines[0];
- node.add(nextLine.substr(0, mapping.generatedColumn));
- remainingLines[0] = nextLine.substr(mapping.generatedColumn);
- lastGeneratedColumn = mapping.generatedColumn;
- }
- lastMapping = mapping;
- }, this);
- // We have processed all mappings.
- if (remainingLines.length > 0) {
- if (lastMapping) {
- // Associate the remaining code in the current line with "lastMapping"
- addMappingWithCode(lastMapping, shiftNextLine());
- }
- // and add the remaining lines without any mapping
- node.add(remainingLines.join(""));
- }
-
- // Copy sourcesContent into SourceNode
- aSourceMapConsumer.sources.forEach(function (sourceFile) {
- var content = aSourceMapConsumer.sourceContentFor(sourceFile);
- if (content != null) {
- if (aRelativePath != null) {
- sourceFile = util.join(aRelativePath, sourceFile);
- }
- node.setSourceContent(sourceFile, content);
- }
- });
-
- return node;
-
- function addMappingWithCode(mapping, code) {
- if (mapping === null || mapping.source === undefined) {
- node.add(code);
- } else {
- var source = aRelativePath
- ? util.join(aRelativePath, mapping.source)
- : mapping.source;
- node.add(new SourceNode(mapping.originalLine,
- mapping.originalColumn,
- source,
- code,
- mapping.name));
- }
- }
- };
-
- /**
- * Add a chunk of generated JS to this source node.
- *
- * @param aChunk A string snippet of generated JS code, another instance of
- * SourceNode, or an array where each member is one of those things.
- */
- SourceNode.prototype.add = function SourceNode_add(aChunk) {
- if (Array.isArray(aChunk)) {
- aChunk.forEach(function (chunk) {
- this.add(chunk);
- }, this);
- }
- else if (aChunk[isSourceNode] || typeof aChunk === "string") {
- if (aChunk) {
- this.children.push(aChunk);
- }
- }
- else {
- throw new TypeError(
- "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
- );
- }
- return this;
- };
-
- /**
- * Add a chunk of generated JS to the beginning of this source node.
- *
- * @param aChunk A string snippet of generated JS code, another instance of
- * SourceNode, or an array where each member is one of those things.
- */
- SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {
- if (Array.isArray(aChunk)) {
- for (var i = aChunk.length-1; i >= 0; i--) {
- this.prepend(aChunk[i]);
- }
- }
- else if (aChunk[isSourceNode] || typeof aChunk === "string") {
- this.children.unshift(aChunk);
- }
- else {
- throw new TypeError(
- "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
- );
- }
- return this;
- };
-
- /**
- * Walk over the tree of JS snippets in this node and its children. The
- * walking function is called once for each snippet of JS and is passed that
- * snippet and the its original associated source's line/column location.
- *
- * @param aFn The traversal function.
- */
- SourceNode.prototype.walk = function SourceNode_walk(aFn) {
- var chunk;
- for (var i = 0, len = this.children.length; i < len; i++) {
- chunk = this.children[i];
- if (chunk[isSourceNode]) {
- chunk.walk(aFn);
- }
- else {
- if (chunk !== '') {
- aFn(chunk, { source: this.source,
- line: this.line,
- column: this.column,
- name: this.name });
- }
- }
- }
- };
-
- /**
- * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between
- * each of `this.children`.
- *
- * @param aSep The separator.
- */
- SourceNode.prototype.join = function SourceNode_join(aSep) {
- var newChildren;
- var i;
- var len = this.children.length;
- if (len > 0) {
- newChildren = [];
- for (i = 0; i < len-1; i++) {
- newChildren.push(this.children[i]);
- newChildren.push(aSep);
- }
- newChildren.push(this.children[i]);
- this.children = newChildren;
- }
- return this;
- };
-
- /**
- * Call String.prototype.replace on the very right-most source snippet. Useful
- * for trimming whitespace from the end of a source node, etc.
- *
- * @param aPattern The pattern to replace.
- * @param aReplacement The thing to replace the pattern with.
- */
- SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {
- var lastChild = this.children[this.children.length - 1];
- if (lastChild[isSourceNode]) {
- lastChild.replaceRight(aPattern, aReplacement);
- }
- else if (typeof lastChild === 'string') {
- this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);
- }
- else {
- this.children.push(''.replace(aPattern, aReplacement));
- }
- return this;
- };
-
- /**
- * Set the source content for a source file. This will be added to the SourceMapGenerator
- * in the sourcesContent field.
- *
- * @param aSourceFile The filename of the source file
- * @param aSourceContent The content of the source file
- */
- SourceNode.prototype.setSourceContent =
- function SourceNode_setSourceContent(aSourceFile, aSourceContent) {
- this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;
- };
-
- /**
- * Walk over the tree of SourceNodes. The walking function is called for each
- * source file content and is passed the filename and source content.
- *
- * @param aFn The traversal function.
- */
- SourceNode.prototype.walkSourceContents =
- function SourceNode_walkSourceContents(aFn) {
- for (var i = 0, len = this.children.length; i < len; i++) {
- if (this.children[i][isSourceNode]) {
- this.children[i].walkSourceContents(aFn);
- }
- }
-
- var sources = Object.keys(this.sourceContents);
- for (var i = 0, len = sources.length; i < len; i++) {
- aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);
- }
- };
-
- /**
- * Return the string representation of this source node. Walks over the tree
- * and concatenates all the various snippets together to one string.
- */
- SourceNode.prototype.toString = function SourceNode_toString() {
- var str = "";
- this.walk(function (chunk) {
- str += chunk;
- });
- return str;
- };
-
- /**
- * Returns the string representation of this source node along with a source
- * map.
- */
- SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {
- var generated = {
- code: "",
- line: 1,
- column: 0
- };
- var map = new SourceMapGenerator(aArgs);
- var sourceMappingActive = false;
- var lastOriginalSource = null;
- var lastOriginalLine = null;
- var lastOriginalColumn = null;
- var lastOriginalName = null;
- this.walk(function (chunk, original) {
- generated.code += chunk;
- if (original.source !== null
- && original.line !== null
- && original.column !== null) {
- if(lastOriginalSource !== original.source
- || lastOriginalLine !== original.line
- || lastOriginalColumn !== original.column
- || lastOriginalName !== original.name) {
- map.addMapping({
- source: original.source,
- original: {
- line: original.line,
- column: original.column
- },
- generated: {
- line: generated.line,
- column: generated.column
- },
- name: original.name
- });
- }
- lastOriginalSource = original.source;
- lastOriginalLine = original.line;
- lastOriginalColumn = original.column;
- lastOriginalName = original.name;
- sourceMappingActive = true;
- } else if (sourceMappingActive) {
- map.addMapping({
- generated: {
- line: generated.line,
- column: generated.column
- }
- });
- lastOriginalSource = null;
- sourceMappingActive = false;
- }
- for (var idx = 0, length = chunk.length; idx < length; idx++) {
- if (chunk.charCodeAt(idx) === NEWLINE_CODE) {
- generated.line++;
- generated.column = 0;
- // Mappings end at eol
- if (idx + 1 === length) {
- lastOriginalSource = null;
- sourceMappingActive = false;
- } else if (sourceMappingActive) {
- map.addMapping({
- source: original.source,
- original: {
- line: original.line,
- column: original.column
- },
- generated: {
- line: generated.line,
- column: generated.column
- },
- name: original.name
- });
- }
- } else {
- generated.column++;
- }
- }
- });
- this.walkSourceContents(function (sourceFile, sourceContent) {
- map.setSourceContent(sourceFile, sourceContent);
- });
-
- return { code: generated.code, map: map };
- };
-
- exports.SourceNode = SourceNode;
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/lib/source-map/util.js b/node_modules/escodegen/node_modules/source-map/lib/source-map/util.js
deleted file mode 100644
index 976f6cabb..000000000
--- a/node_modules/escodegen/node_modules/source-map/lib/source-map/util.js
+++ /dev/null
@@ -1,319 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- /**
- * This is a helper function for getting values from parameter/options
- * objects.
- *
- * @param args The object we are extracting values from
- * @param name The name of the property we are getting.
- * @param defaultValue An optional value to return if the property is missing
- * from the object. If this is not specified and the property is missing, an
- * error will be thrown.
- */
- function getArg(aArgs, aName, aDefaultValue) {
- if (aName in aArgs) {
- return aArgs[aName];
- } else if (arguments.length === 3) {
- return aDefaultValue;
- } else {
- throw new Error('"' + aName + '" is a required argument.');
- }
- }
- exports.getArg = getArg;
-
- var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/;
- var dataUrlRegexp = /^data:.+\,.+$/;
-
- function urlParse(aUrl) {
- var match = aUrl.match(urlRegexp);
- if (!match) {
- return null;
- }
- return {
- scheme: match[1],
- auth: match[2],
- host: match[3],
- port: match[4],
- path: match[5]
- };
- }
- exports.urlParse = urlParse;
-
- function urlGenerate(aParsedUrl) {
- var url = '';
- if (aParsedUrl.scheme) {
- url += aParsedUrl.scheme + ':';
- }
- url += '//';
- if (aParsedUrl.auth) {
- url += aParsedUrl.auth + '@';
- }
- if (aParsedUrl.host) {
- url += aParsedUrl.host;
- }
- if (aParsedUrl.port) {
- url += ":" + aParsedUrl.port
- }
- if (aParsedUrl.path) {
- url += aParsedUrl.path;
- }
- return url;
- }
- exports.urlGenerate = urlGenerate;
-
- /**
- * Normalizes a path, or the path portion of a URL:
- *
- * - Replaces consequtive slashes with one slash.
- * - Removes unnecessary '.' parts.
- * - Removes unnecessary '<dir>/..' parts.
- *
- * Based on code in the Node.js 'path' core module.
- *
- * @param aPath The path or url to normalize.
- */
- function normalize(aPath) {
- var path = aPath;
- var url = urlParse(aPath);
- if (url) {
- if (!url.path) {
- return aPath;
- }
- path = url.path;
- }
- var isAbsolute = (path.charAt(0) === '/');
-
- var parts = path.split(/\/+/);
- for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {
- part = parts[i];
- if (part === '.') {
- parts.splice(i, 1);
- } else if (part === '..') {
- up++;
- } else if (up > 0) {
- if (part === '') {
- // The first part is blank if the path is absolute. Trying to go
- // above the root is a no-op. Therefore we can remove all '..' parts
- // directly after the root.
- parts.splice(i + 1, up);
- up = 0;
- } else {
- parts.splice(i, 2);
- up--;
- }
- }
- }
- path = parts.join('/');
-
- if (path === '') {
- path = isAbsolute ? '/' : '.';
- }
-
- if (url) {
- url.path = path;
- return urlGenerate(url);
- }
- return path;
- }
- exports.normalize = normalize;
-
- /**
- * Joins two paths/URLs.
- *
- * @param aRoot The root path or URL.
- * @param aPath The path or URL to be joined with the root.
- *
- * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a
- * scheme-relative URL: Then the scheme of aRoot, if any, is prepended
- * first.
- * - Otherwise aPath is a path. If aRoot is a URL, then its path portion
- * is updated with the result and aRoot is returned. Otherwise the result
- * is returned.
- * - If aPath is absolute, the result is aPath.
- * - Otherwise the two paths are joined with a slash.
- * - Joining for example 'http://' and 'www.example.com' is also supported.
- */
- function join(aRoot, aPath) {
- if (aRoot === "") {
- aRoot = ".";
- }
- if (aPath === "") {
- aPath = ".";
- }
- var aPathUrl = urlParse(aPath);
- var aRootUrl = urlParse(aRoot);
- if (aRootUrl) {
- aRoot = aRootUrl.path || '/';
- }
-
- // `join(foo, '//www.example.org')`
- if (aPathUrl && !aPathUrl.scheme) {
- if (aRootUrl) {
- aPathUrl.scheme = aRootUrl.scheme;
- }
- return urlGenerate(aPathUrl);
- }
-
- if (aPathUrl || aPath.match(dataUrlRegexp)) {
- return aPath;
- }
-
- // `join('http://', 'www.example.com')`
- if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {
- aRootUrl.host = aPath;
- return urlGenerate(aRootUrl);
- }
-
- var joined = aPath.charAt(0) === '/'
- ? aPath
- : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath);
-
- if (aRootUrl) {
- aRootUrl.path = joined;
- return urlGenerate(aRootUrl);
- }
- return joined;
- }
- exports.join = join;
-
- /**
- * Make a path relative to a URL or another path.
- *
- * @param aRoot The root path or URL.
- * @param aPath The path or URL to be made relative to aRoot.
- */
- function relative(aRoot, aPath) {
- if (aRoot === "") {
- aRoot = ".";
- }
-
- aRoot = aRoot.replace(/\/$/, '');
-
- // XXX: It is possible to remove this block, and the tests still pass!
- var url = urlParse(aRoot);
- if (aPath.charAt(0) == "/" && url && url.path == "/") {
- return aPath.slice(1);
- }
-
- return aPath.indexOf(aRoot + '/') === 0
- ? aPath.substr(aRoot.length + 1)
- : aPath;
- }
- exports.relative = relative;
-
- /**
- * Because behavior goes wacky when you set `__proto__` on objects, we
- * have to prefix all the strings in our set with an arbitrary character.
- *
- * See https://github.com/mozilla/source-map/pull/31 and
- * https://github.com/mozilla/source-map/issues/30
- *
- * @param String aStr
- */
- function toSetString(aStr) {
- return '$' + aStr;
- }
- exports.toSetString = toSetString;
-
- function fromSetString(aStr) {
- return aStr.substr(1);
- }
- exports.fromSetString = fromSetString;
-
- function strcmp(aStr1, aStr2) {
- var s1 = aStr1 || "";
- var s2 = aStr2 || "";
- return (s1 > s2) - (s1 < s2);
- }
-
- /**
- * Comparator between two mappings where the original positions are compared.
- *
- * Optionally pass in `true` as `onlyCompareGenerated` to consider two
- * mappings with the same original source/line/column, but different generated
- * line and column the same. Useful when searching for a mapping with a
- * stubbed out mapping.
- */
- function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {
- var cmp;
-
- cmp = strcmp(mappingA.source, mappingB.source);
- if (cmp) {
- return cmp;
- }
-
- cmp = mappingA.originalLine - mappingB.originalLine;
- if (cmp) {
- return cmp;
- }
-
- cmp = mappingA.originalColumn - mappingB.originalColumn;
- if (cmp || onlyCompareOriginal) {
- return cmp;
- }
-
- cmp = strcmp(mappingA.name, mappingB.name);
- if (cmp) {
- return cmp;
- }
-
- cmp = mappingA.generatedLine - mappingB.generatedLine;
- if (cmp) {
- return cmp;
- }
-
- return mappingA.generatedColumn - mappingB.generatedColumn;
- };
- exports.compareByOriginalPositions = compareByOriginalPositions;
-
- /**
- * Comparator between two mappings where the generated positions are
- * compared.
- *
- * Optionally pass in `true` as `onlyCompareGenerated` to consider two
- * mappings with the same generated line and column, but different
- * source/name/original line and column the same. Useful when searching for a
- * mapping with a stubbed out mapping.
- */
- function compareByGeneratedPositions(mappingA, mappingB, onlyCompareGenerated) {
- var cmp;
-
- cmp = mappingA.generatedLine - mappingB.generatedLine;
- if (cmp) {
- return cmp;
- }
-
- cmp = mappingA.generatedColumn - mappingB.generatedColumn;
- if (cmp || onlyCompareGenerated) {
- return cmp;
- }
-
- cmp = strcmp(mappingA.source, mappingB.source);
- if (cmp) {
- return cmp;
- }
-
- cmp = mappingA.originalLine - mappingB.originalLine;
- if (cmp) {
- return cmp;
- }
-
- cmp = mappingA.originalColumn - mappingB.originalColumn;
- if (cmp) {
- return cmp;
- }
-
- return strcmp(mappingA.name, mappingB.name);
- };
- exports.compareByGeneratedPositions = compareByGeneratedPositions;
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/package.json b/node_modules/escodegen/node_modules/source-map/package.json
deleted file mode 100644
index 3b6d473c8..000000000
--- a/node_modules/escodegen/node_modules/source-map/package.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "name": "source-map",
- "description": "Generates and consumes source maps",
- "version": "0.2.0",
- "homepage": "https://github.com/mozilla/source-map",
- "author": "Nick Fitzgerald <nfitzgerald@mozilla.com>",
- "contributors": [
- "Tobias Koppers <tobias.koppers@googlemail.com>",
- "Duncan Beevers <duncan@dweebd.com>",
- "Stephen Crane <scrane@mozilla.com>",
- "Ryan Seddon <seddon.ryan@gmail.com>",
- "Miles Elam <miles.elam@deem.com>",
- "Mihai Bazon <mihai.bazon@gmail.com>",
- "Michael Ficarra <github.public.email@michael.ficarra.me>",
- "Todd Wolfson <todd@twolfson.com>",
- "Alexander Solovyov <alexander@solovyov.net>",
- "Felix Gnass <fgnass@gmail.com>",
- "Conrad Irwin <conrad.irwin@gmail.com>",
- "usrbincc <usrbincc@yahoo.com>",
- "David Glasser <glasser@davidglasser.net>",
- "Chase Douglas <chase@newrelic.com>",
- "Evan Wallace <evan.exe@gmail.com>",
- "Heather Arthur <fayearthur@gmail.com>",
- "Hugh Kennedy <hughskennedy@gmail.com>",
- "David Glasser <glasser@davidglasser.net>",
- "Simon Lydell <simon.lydell@gmail.com>",
- "Jmeas Smith <jellyes2@gmail.com>",
- "Michael Z Goddard <mzgoddard@gmail.com>",
- "azu <azu@users.noreply.github.com>",
- "John Gozde <john@gozde.ca>",
- "Adam Kirkton <akirkton@truefitinnovation.com>",
- "Chris Montgomery <christopher.montgomery@dowjones.com>",
- "J. Ryan Stinnett <jryans@gmail.com>",
- "Jack Herrington <jherrington@walmartlabs.com>",
- "Chris Truter <jeffpalentine@gmail.com>",
- "Daniel Espeset <daniel@danielespeset.com>",
- "Jamie Wong <jamie.lf.wong@gmail.com>"
- ],
- "repository": {
- "type": "git",
- "url": "http://github.com/mozilla/source-map.git"
- },
- "directories": {
- "lib": "./lib"
- },
- "main": "./lib/source-map.js",
- "engines": {
- "node": ">=0.8.0"
- },
- "licenses": [
- {
- "type": "BSD",
- "url": "http://opensource.org/licenses/BSD-3-Clause"
- }
- ],
- "dependencies": {
- "amdefine": ">=0.0.4"
- },
- "devDependencies": {
- "dryice": ">=0.4.8"
- },
- "scripts": {
- "test": "node test/run-tests.js",
- "build": "node Makefile.dryice.js"
- }
-}
diff --git a/node_modules/escodegen/node_modules/source-map/test/run-tests.js b/node_modules/escodegen/node_modules/source-map/test/run-tests.js
deleted file mode 100755
index 64a7c3a3d..000000000
--- a/node_modules/escodegen/node_modules/source-map/test/run-tests.js
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env node
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-var assert = require('assert');
-var fs = require('fs');
-var path = require('path');
-var util = require('./source-map/util');
-
-function run(tests) {
- var total = 0;
- var passed = 0;
-
- for (var i = 0; i < tests.length; i++) {
- for (var k in tests[i].testCase) {
- if (/^test/.test(k)) {
- total++;
- try {
- tests[i].testCase[k](assert, util);
- passed++;
- }
- catch (e) {
- console.log('FAILED ' + tests[i].name + ': ' + k + '!');
- console.log(e.stack);
- }
- }
- }
- }
-
- console.log('');
- console.log(passed + ' / ' + total + ' tests passed.');
- console.log('');
-
- return total - passed;
-}
-
-function isTestFile(f) {
- var testToRun = process.argv[2];
- return testToRun
- ? path.basename(testToRun) === f
- : /^test\-.*?\.js/.test(f);
-}
-
-function toModule(f) {
- return './source-map/' + f.replace(/\.js$/, '');
-}
-
-var requires = fs.readdirSync(path.join(__dirname, 'source-map'))
- .filter(isTestFile)
- .map(toModule);
-
-var code = run(requires.map(require).map(function (mod, i) {
- return {
- name: requires[i],
- testCase: mod
- };
-}));
-
-process.exit(code);
diff --git a/node_modules/escodegen/node_modules/source-map/test/source-map/test-api.js b/node_modules/escodegen/node_modules/source-map/test/source-map/test-api.js
deleted file mode 100644
index 3801233c0..000000000
--- a/node_modules/escodegen/node_modules/source-map/test/source-map/test-api.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2012 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var sourceMap;
- try {
- sourceMap = require('../../lib/source-map');
- } catch (e) {
- sourceMap = {};
- Components.utils.import('resource:///modules/devtools/SourceMap.jsm', sourceMap);
- }
-
- exports['test that the api is properly exposed in the top level'] = function (assert, util) {
- assert.equal(typeof sourceMap.SourceMapGenerator, "function");
- assert.equal(typeof sourceMap.SourceMapConsumer, "function");
- assert.equal(typeof sourceMap.SourceNode, "function");
- };
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/test/source-map/test-array-set.js b/node_modules/escodegen/node_modules/source-map/test/source-map/test-array-set.js
deleted file mode 100644
index b5797edd5..000000000
--- a/node_modules/escodegen/node_modules/source-map/test/source-map/test-array-set.js
+++ /dev/null
@@ -1,104 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var ArraySet = require('../../lib/source-map/array-set').ArraySet;
-
- function makeTestSet() {
- var set = new ArraySet();
- for (var i = 0; i < 100; i++) {
- set.add(String(i));
- }
- return set;
- }
-
- exports['test .has() membership'] = function (assert, util) {
- var set = makeTestSet();
- for (var i = 0; i < 100; i++) {
- assert.ok(set.has(String(i)));
- }
- };
-
- exports['test .indexOf() elements'] = function (assert, util) {
- var set = makeTestSet();
- for (var i = 0; i < 100; i++) {
- assert.strictEqual(set.indexOf(String(i)), i);
- }
- };
-
- exports['test .at() indexing'] = function (assert, util) {
- var set = makeTestSet();
- for (var i = 0; i < 100; i++) {
- assert.strictEqual(set.at(i), String(i));
- }
- };
-
- exports['test creating from an array'] = function (assert, util) {
- var set = ArraySet.fromArray(['foo', 'bar', 'baz', 'quux', 'hasOwnProperty']);
-
- assert.ok(set.has('foo'));
- assert.ok(set.has('bar'));
- assert.ok(set.has('baz'));
- assert.ok(set.has('quux'));
- assert.ok(set.has('hasOwnProperty'));
-
- assert.strictEqual(set.indexOf('foo'), 0);
- assert.strictEqual(set.indexOf('bar'), 1);
- assert.strictEqual(set.indexOf('baz'), 2);
- assert.strictEqual(set.indexOf('quux'), 3);
-
- assert.strictEqual(set.at(0), 'foo');
- assert.strictEqual(set.at(1), 'bar');
- assert.strictEqual(set.at(2), 'baz');
- assert.strictEqual(set.at(3), 'quux');
- };
-
- exports['test that you can add __proto__; see github issue #30'] = function (assert, util) {
- var set = new ArraySet();
- set.add('__proto__');
- assert.ok(set.has('__proto__'));
- assert.strictEqual(set.at(0), '__proto__');
- assert.strictEqual(set.indexOf('__proto__'), 0);
- };
-
- exports['test .fromArray() with duplicates'] = function (assert, util) {
- var set = ArraySet.fromArray(['foo', 'foo']);
- assert.ok(set.has('foo'));
- assert.strictEqual(set.at(0), 'foo');
- assert.strictEqual(set.indexOf('foo'), 0);
- assert.strictEqual(set.toArray().length, 1);
-
- set = ArraySet.fromArray(['foo', 'foo'], true);
- assert.ok(set.has('foo'));
- assert.strictEqual(set.at(0), 'foo');
- assert.strictEqual(set.at(1), 'foo');
- assert.strictEqual(set.indexOf('foo'), 0);
- assert.strictEqual(set.toArray().length, 2);
- };
-
- exports['test .add() with duplicates'] = function (assert, util) {
- var set = new ArraySet();
- set.add('foo');
-
- set.add('foo');
- assert.ok(set.has('foo'));
- assert.strictEqual(set.at(0), 'foo');
- assert.strictEqual(set.indexOf('foo'), 0);
- assert.strictEqual(set.toArray().length, 1);
-
- set.add('foo', true);
- assert.ok(set.has('foo'));
- assert.strictEqual(set.at(0), 'foo');
- assert.strictEqual(set.at(1), 'foo');
- assert.strictEqual(set.indexOf('foo'), 0);
- assert.strictEqual(set.toArray().length, 2);
- };
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/test/source-map/test-base64-vlq.js b/node_modules/escodegen/node_modules/source-map/test/source-map/test-base64-vlq.js
deleted file mode 100644
index 6fd0d99f4..000000000
--- a/node_modules/escodegen/node_modules/source-map/test/source-map/test-base64-vlq.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var base64VLQ = require('../../lib/source-map/base64-vlq');
-
- exports['test normal encoding and decoding'] = function (assert, util) {
- var result = {};
- for (var i = -255; i < 256; i++) {
- base64VLQ.decode(base64VLQ.encode(i), result);
- assert.equal(result.value, i);
- assert.equal(result.rest, "");
- }
- };
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/test/source-map/test-base64.js b/node_modules/escodegen/node_modules/source-map/test/source-map/test-base64.js
deleted file mode 100644
index ff3a24456..000000000
--- a/node_modules/escodegen/node_modules/source-map/test/source-map/test-base64.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var base64 = require('../../lib/source-map/base64');
-
- exports['test out of range encoding'] = function (assert, util) {
- assert.throws(function () {
- base64.encode(-1);
- });
- assert.throws(function () {
- base64.encode(64);
- });
- };
-
- exports['test out of range decoding'] = function (assert, util) {
- assert.throws(function () {
- base64.decode('=');
- });
- };
-
- exports['test normal encoding and decoding'] = function (assert, util) {
- for (var i = 0; i < 64; i++) {
- assert.equal(base64.decode(base64.encode(i)), i);
- }
- };
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/test/source-map/test-binary-search.js b/node_modules/escodegen/node_modules/source-map/test/source-map/test-binary-search.js
deleted file mode 100644
index f1c9e0fc5..000000000
--- a/node_modules/escodegen/node_modules/source-map/test/source-map/test-binary-search.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var binarySearch = require('../../lib/source-map/binary-search');
-
- function numberCompare(a, b) {
- return a - b;
- }
-
- exports['test too high'] = function (assert, util) {
- var needle = 30;
- var haystack = [2,4,6,8,10,12,14,16,18,20];
-
- assert.doesNotThrow(function () {
- binarySearch.search(needle, haystack, numberCompare);
- });
-
- assert.equal(haystack[binarySearch.search(needle, haystack, numberCompare)], 20);
- };
-
- exports['test too low'] = function (assert, util) {
- var needle = 1;
- var haystack = [2,4,6,8,10,12,14,16,18,20];
-
- assert.doesNotThrow(function () {
- binarySearch.search(needle, haystack, numberCompare);
- });
-
- assert.equal(binarySearch.search(needle, haystack, numberCompare), -1);
- };
-
- exports['test exact search'] = function (assert, util) {
- var needle = 4;
- var haystack = [2,4,6,8,10,12,14,16,18,20];
-
- assert.equal(haystack[binarySearch.search(needle, haystack, numberCompare)], 4);
- };
-
- exports['test fuzzy search'] = function (assert, util) {
- var needle = 19;
- var haystack = [2,4,6,8,10,12,14,16,18,20];
-
- assert.equal(haystack[binarySearch.search(needle, haystack, numberCompare)], 18);
- };
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/test/source-map/test-dog-fooding.js b/node_modules/escodegen/node_modules/source-map/test/source-map/test-dog-fooding.js
deleted file mode 100644
index 26757b2d1..000000000
--- a/node_modules/escodegen/node_modules/source-map/test/source-map/test-dog-fooding.js
+++ /dev/null
@@ -1,84 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var SourceMapConsumer = require('../../lib/source-map/source-map-consumer').SourceMapConsumer;
- var SourceMapGenerator = require('../../lib/source-map/source-map-generator').SourceMapGenerator;
-
- exports['test eating our own dog food'] = function (assert, util) {
- var smg = new SourceMapGenerator({
- file: 'testing.js',
- sourceRoot: '/wu/tang'
- });
-
- smg.addMapping({
- source: 'gza.coffee',
- original: { line: 1, column: 0 },
- generated: { line: 2, column: 2 }
- });
-
- smg.addMapping({
- source: 'gza.coffee',
- original: { line: 2, column: 0 },
- generated: { line: 3, column: 2 }
- });
-
- smg.addMapping({
- source: 'gza.coffee',
- original: { line: 3, column: 0 },
- generated: { line: 4, column: 2 }
- });
-
- smg.addMapping({
- source: 'gza.coffee',
- original: { line: 4, column: 0 },
- generated: { line: 5, column: 2 }
- });
-
- smg.addMapping({
- source: 'gza.coffee',
- original: { line: 5, column: 10 },
- generated: { line: 6, column: 12 }
- });
-
- var smc = new SourceMapConsumer(smg.toString());
-
- // Exact
- util.assertMapping(2, 2, '/wu/tang/gza.coffee', 1, 0, null, smc, assert);
- util.assertMapping(3, 2, '/wu/tang/gza.coffee', 2, 0, null, smc, assert);
- util.assertMapping(4, 2, '/wu/tang/gza.coffee', 3, 0, null, smc, assert);
- util.assertMapping(5, 2, '/wu/tang/gza.coffee', 4, 0, null, smc, assert);
- util.assertMapping(6, 12, '/wu/tang/gza.coffee', 5, 10, null, smc, assert);
-
- // Fuzzy
-
- // Generated to original
- util.assertMapping(2, 0, null, null, null, null, smc, assert, true);
- util.assertMapping(2, 9, '/wu/tang/gza.coffee', 1, 0, null, smc, assert, true);
- util.assertMapping(3, 0, null, null, null, null, smc, assert, true);
- util.assertMapping(3, 9, '/wu/tang/gza.coffee', 2, 0, null, smc, assert, true);
- util.assertMapping(4, 0, null, null, null, null, smc, assert, true);
- util.assertMapping(4, 9, '/wu/tang/gza.coffee', 3, 0, null, smc, assert, true);
- util.assertMapping(5, 0, null, null, null, null, smc, assert, true);
- util.assertMapping(5, 9, '/wu/tang/gza.coffee', 4, 0, null, smc, assert, true);
- util.assertMapping(6, 0, null, null, null, null, smc, assert, true);
- util.assertMapping(6, 9, null, null, null, null, smc, assert, true);
- util.assertMapping(6, 13, '/wu/tang/gza.coffee', 5, 10, null, smc, assert, true);
-
- // Original to generated
- util.assertMapping(2, 2, '/wu/tang/gza.coffee', 1, 1, null, smc, assert, null, true);
- util.assertMapping(3, 2, '/wu/tang/gza.coffee', 2, 3, null, smc, assert, null, true);
- util.assertMapping(4, 2, '/wu/tang/gza.coffee', 3, 6, null, smc, assert, null, true);
- util.assertMapping(5, 2, '/wu/tang/gza.coffee', 4, 9, null, smc, assert, null, true);
- util.assertMapping(5, 2, '/wu/tang/gza.coffee', 5, 9, null, smc, assert, null, true);
- util.assertMapping(6, 12, '/wu/tang/gza.coffee', 6, 19, null, smc, assert, null, true);
- };
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-consumer.js b/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-consumer.js
deleted file mode 100644
index 4a4842a82..000000000
--- a/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-consumer.js
+++ /dev/null
@@ -1,874 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var SourceMapConsumer = require('../../lib/source-map/source-map-consumer').SourceMapConsumer;
- var IndexedSourceMapConsumer = require('../../lib/source-map/indexed-source-map-consumer').IndexedSourceMapConsumer;
- var BasicSourceMapConsumer = require('../../lib/source-map/basic-source-map-consumer').BasicSourceMapConsumer;
- var SourceMapGenerator = require('../../lib/source-map/source-map-generator').SourceMapGenerator;
-
- exports['test that we can instantiate with a string or an object'] = function (assert, util) {
- assert.doesNotThrow(function () {
- var map = new SourceMapConsumer(util.testMap);
- });
- assert.doesNotThrow(function () {
- var map = new SourceMapConsumer(JSON.stringify(util.testMap));
- });
- };
-
- exports['test that the object returned from new SourceMapConsumer inherits from SourceMapConsumer'] = function (assert, util) {
- assert.ok(new SourceMapConsumer(util.testMap) instanceof SourceMapConsumer);
- }
-
- exports['test that a BasicSourceMapConsumer is returned for sourcemaps without sections'] = function(assert, util) {
- assert.ok(new SourceMapConsumer(util.testMap) instanceof BasicSourceMapConsumer);
- };
-
- exports['test that an IndexedSourceMapConsumer is returned for sourcemaps with sections'] = function(assert, util) {
- assert.ok(new SourceMapConsumer(util.indexedTestMap) instanceof IndexedSourceMapConsumer);
- };
-
- exports['test that the `sources` field has the original sources'] = function (assert, util) {
- var map;
- var sources;
-
- map = new SourceMapConsumer(util.testMap);
- sources = map.sources;
- assert.equal(sources[0], '/the/root/one.js');
- assert.equal(sources[1], '/the/root/two.js');
- assert.equal(sources.length, 2);
-
- map = new SourceMapConsumer(util.indexedTestMap);
- sources = map.sources;
- assert.equal(sources[0], '/the/root/one.js');
- assert.equal(sources[1], '/the/root/two.js');
- assert.equal(sources.length, 2);
-
- map = new SourceMapConsumer(util.indexedTestMapDifferentSourceRoots);
- sources = map.sources;
- assert.equal(sources[0], '/the/root/one.js');
- assert.equal(sources[1], '/different/root/two.js');
- assert.equal(sources.length, 2);
-
- map = new SourceMapConsumer(util.testMapNoSourceRoot);
- sources = map.sources;
- assert.equal(sources[0], 'one.js');
- assert.equal(sources[1], 'two.js');
- assert.equal(sources.length, 2);
-
- map = new SourceMapConsumer(util.testMapEmptySourceRoot);
- sources = map.sources;
- assert.equal(sources[0], 'one.js');
- assert.equal(sources[1], 'two.js');
- assert.equal(sources.length, 2);
- };
-
- exports['test that the source root is reflected in a mapping\'s source field'] = function (assert, util) {
- var map;
- var mapping;
-
- map = new SourceMapConsumer(util.testMap);
-
- mapping = map.originalPositionFor({
- line: 2,
- column: 1
- });
- assert.equal(mapping.source, '/the/root/two.js');
-
- mapping = map.originalPositionFor({
- line: 1,
- column: 1
- });
- assert.equal(mapping.source, '/the/root/one.js');
-
-
- map = new SourceMapConsumer(util.testMapNoSourceRoot);
-
- mapping = map.originalPositionFor({
- line: 2,
- column: 1
- });
- assert.equal(mapping.source, 'two.js');
-
- mapping = map.originalPositionFor({
- line: 1,
- column: 1
- });
- assert.equal(mapping.source, 'one.js');
-
-
- map = new SourceMapConsumer(util.testMapEmptySourceRoot);
-
- mapping = map.originalPositionFor({
- line: 2,
- column: 1
- });
- assert.equal(mapping.source, 'two.js');
-
- mapping = map.originalPositionFor({
- line: 1,
- column: 1
- });
- assert.equal(mapping.source, 'one.js');
- };
-
- exports['test mapping tokens back exactly'] = function (assert, util) {
- var map = new SourceMapConsumer(util.testMap);
-
- util.assertMapping(1, 1, '/the/root/one.js', 1, 1, null, map, assert);
- util.assertMapping(1, 5, '/the/root/one.js', 1, 5, null, map, assert);
- util.assertMapping(1, 9, '/the/root/one.js', 1, 11, null, map, assert);
- util.assertMapping(1, 18, '/the/root/one.js', 1, 21, 'bar', map, assert);
- util.assertMapping(1, 21, '/the/root/one.js', 2, 3, null, map, assert);
- util.assertMapping(1, 28, '/the/root/one.js', 2, 10, 'baz', map, assert);
- util.assertMapping(1, 32, '/the/root/one.js', 2, 14, 'bar', map, assert);
-
- util.assertMapping(2, 1, '/the/root/two.js', 1, 1, null, map, assert);
- util.assertMapping(2, 5, '/the/root/two.js', 1, 5, null, map, assert);
- util.assertMapping(2, 9, '/the/root/two.js', 1, 11, null, map, assert);
- util.assertMapping(2, 18, '/the/root/two.js', 1, 21, 'n', map, assert);
- util.assertMapping(2, 21, '/the/root/two.js', 2, 3, null, map, assert);
- util.assertMapping(2, 28, '/the/root/two.js', 2, 10, 'n', map, assert);
- };
-
- exports['test mapping tokens back exactly in indexed source map'] = function (assert, util) {
- var map = new SourceMapConsumer(util.indexedTestMap);
-
- util.assertMapping(1, 1, '/the/root/one.js', 1, 1, null, map, assert);
- util.assertMapping(1, 5, '/the/root/one.js', 1, 5, null, map, assert);
- util.assertMapping(1, 9, '/the/root/one.js', 1, 11, null, map, assert);
- util.assertMapping(1, 18, '/the/root/one.js', 1, 21, 'bar', map, assert);
- util.assertMapping(1, 21, '/the/root/one.js', 2, 3, null, map, assert);
- util.assertMapping(1, 28, '/the/root/one.js', 2, 10, 'baz', map, assert);
- util.assertMapping(1, 32, '/the/root/one.js', 2, 14, 'bar', map, assert);
-
- util.assertMapping(2, 1, '/the/root/two.js', 1, 1, null, map, assert);
- util.assertMapping(2, 5, '/the/root/two.js', 1, 5, null, map, assert);
- util.assertMapping(2, 9, '/the/root/two.js', 1, 11, null, map, assert);
- util.assertMapping(2, 18, '/the/root/two.js', 1, 21, 'n', map, assert);
- util.assertMapping(2, 21, '/the/root/two.js', 2, 3, null, map, assert);
- util.assertMapping(2, 28, '/the/root/two.js', 2, 10, 'n', map, assert);
- };
-
-
- exports['test mapping tokens back exactly'] = function (assert, util) {
- var map = new SourceMapConsumer(util.testMap);
-
- util.assertMapping(1, 1, '/the/root/one.js', 1, 1, null, map, assert);
- util.assertMapping(1, 5, '/the/root/one.js', 1, 5, null, map, assert);
- util.assertMapping(1, 9, '/the/root/one.js', 1, 11, null, map, assert);
- util.assertMapping(1, 18, '/the/root/one.js', 1, 21, 'bar', map, assert);
- util.assertMapping(1, 21, '/the/root/one.js', 2, 3, null, map, assert);
- util.assertMapping(1, 28, '/the/root/one.js', 2, 10, 'baz', map, assert);
- util.assertMapping(1, 32, '/the/root/one.js', 2, 14, 'bar', map, assert);
-
- util.assertMapping(2, 1, '/the/root/two.js', 1, 1, null, map, assert);
- util.assertMapping(2, 5, '/the/root/two.js', 1, 5, null, map, assert);
- util.assertMapping(2, 9, '/the/root/two.js', 1, 11, null, map, assert);
- util.assertMapping(2, 18, '/the/root/two.js', 1, 21, 'n', map, assert);
- util.assertMapping(2, 21, '/the/root/two.js', 2, 3, null, map, assert);
- util.assertMapping(2, 28, '/the/root/two.js', 2, 10, 'n', map, assert);
- };
-
- exports['test mapping tokens fuzzy'] = function (assert, util) {
- var map = new SourceMapConsumer(util.testMap);
-
- // Finding original positions
- util.assertMapping(1, 20, '/the/root/one.js', 1, 21, 'bar', map, assert, true);
- util.assertMapping(1, 30, '/the/root/one.js', 2, 10, 'baz', map, assert, true);
- util.assertMapping(2, 12, '/the/root/two.js', 1, 11, null, map, assert, true);
-
- // Finding generated positions
- util.assertMapping(1, 18, '/the/root/one.js', 1, 22, 'bar', map, assert, null, true);
- util.assertMapping(1, 28, '/the/root/one.js', 2, 13, 'baz', map, assert, null, true);
- util.assertMapping(2, 9, '/the/root/two.js', 1, 16, null, map, assert, null, true);
- };
-
- exports['test mapping tokens fuzzy in indexed source map'] = function (assert, util) {
- var map = new SourceMapConsumer(util.indexedTestMap);
-
- // Finding original positions
- util.assertMapping(1, 20, '/the/root/one.js', 1, 21, 'bar', map, assert, true);
- util.assertMapping(1, 30, '/the/root/one.js', 2, 10, 'baz', map, assert, true);
- util.assertMapping(2, 12, '/the/root/two.js', 1, 11, null, map, assert, true);
-
- // Finding generated positions
- util.assertMapping(1, 18, '/the/root/one.js', 1, 22, 'bar', map, assert, null, true);
- util.assertMapping(1, 28, '/the/root/one.js', 2, 13, 'baz', map, assert, null, true);
- util.assertMapping(2, 9, '/the/root/two.js', 1, 16, null, map, assert, null, true);
- };
-
- exports['test mappings and end of lines'] = function (assert, util) {
- var smg = new SourceMapGenerator({
- file: 'foo.js'
- });
- smg.addMapping({
- original: { line: 1, column: 1 },
- generated: { line: 1, column: 1 },
- source: 'bar.js'
- });
- smg.addMapping({
- original: { line: 2, column: 2 },
- generated: { line: 2, column: 2 },
- source: 'bar.js'
- });
-
- var map = SourceMapConsumer.fromSourceMap(smg);
-
- // When finding original positions, mappings end at the end of the line.
- util.assertMapping(2, 1, null, null, null, null, map, assert, true)
-
- // When finding generated positions, mappings do not end at the end of the line.
- util.assertMapping(1, 1, 'bar.js', 2, 1, null, map, assert, null, true);
- };
-
- exports['test creating source map consumers with )]}\' prefix'] = function (assert, util) {
- assert.doesNotThrow(function () {
- var map = new SourceMapConsumer(")]}'" + JSON.stringify(util.testMap));
- });
- };
-
- exports['test eachMapping'] = function (assert, util) {
- var map;
-
- map = new SourceMapConsumer(util.testMap);
- var previousLine = -Infinity;
- var previousColumn = -Infinity;
- map.eachMapping(function (mapping) {
- assert.ok(mapping.generatedLine >= previousLine);
-
- assert.ok(mapping.source === '/the/root/one.js' || mapping.source === '/the/root/two.js');
-
- if (mapping.generatedLine === previousLine) {
- assert.ok(mapping.generatedColumn >= previousColumn);
- previousColumn = mapping.generatedColumn;
- }
- else {
- previousLine = mapping.generatedLine;
- previousColumn = -Infinity;
- }
- });
-
- map = new SourceMapConsumer(util.testMapNoSourceRoot);
- map.eachMapping(function (mapping) {
- assert.ok(mapping.source === 'one.js' || mapping.source === 'two.js');
- });
-
- map = new SourceMapConsumer(util.testMapEmptySourceRoot);
- map.eachMapping(function (mapping) {
- assert.ok(mapping.source === 'one.js' || mapping.source === 'two.js');
- });
- };
-
- exports['test eachMapping for indexed source maps'] = function(assert, util) {
- var map = new SourceMapConsumer(util.indexedTestMap);
- var previousLine = -Infinity;
- var previousColumn = -Infinity;
- map.eachMapping(function (mapping) {
- assert.ok(mapping.generatedLine >= previousLine);
-
- if (mapping.source) {
- assert.equal(mapping.source.indexOf(util.testMap.sourceRoot), 0);
- }
-
- if (mapping.generatedLine === previousLine) {
- assert.ok(mapping.generatedColumn >= previousColumn);
- previousColumn = mapping.generatedColumn;
- }
- else {
- previousLine = mapping.generatedLine;
- previousColumn = -Infinity;
- }
- });
- };
-
-
- exports['test iterating over mappings in a different order'] = function (assert, util) {
- var map = new SourceMapConsumer(util.testMap);
- var previousLine = -Infinity;
- var previousColumn = -Infinity;
- var previousSource = "";
- map.eachMapping(function (mapping) {
- assert.ok(mapping.source >= previousSource);
-
- if (mapping.source === previousSource) {
- assert.ok(mapping.originalLine >= previousLine);
-
- if (mapping.originalLine === previousLine) {
- assert.ok(mapping.originalColumn >= previousColumn);
- previousColumn = mapping.originalColumn;
- }
- else {
- previousLine = mapping.originalLine;
- previousColumn = -Infinity;
- }
- }
- else {
- previousSource = mapping.source;
- previousLine = -Infinity;
- previousColumn = -Infinity;
- }
- }, null, SourceMapConsumer.ORIGINAL_ORDER);
- };
-
- exports['test iterating over mappings in a different order in indexed source maps'] = function (assert, util) {
- var map = new SourceMapConsumer(util.indexedTestMap);
- var previousLine = -Infinity;
- var previousColumn = -Infinity;
- var previousSource = "";
- map.eachMapping(function (mapping) {
- assert.ok(mapping.source >= previousSource);
-
- if (mapping.source === previousSource) {
- assert.ok(mapping.originalLine >= previousLine);
-
- if (mapping.originalLine === previousLine) {
- assert.ok(mapping.originalColumn >= previousColumn);
- previousColumn = mapping.originalColumn;
- }
- else {
- previousLine = mapping.originalLine;
- previousColumn = -Infinity;
- }
- }
- else {
- previousSource = mapping.source;
- previousLine = -Infinity;
- previousColumn = -Infinity;
- }
- }, null, SourceMapConsumer.ORIGINAL_ORDER);
- };
-
- exports['test that we can set the context for `this` in eachMapping'] = function (assert, util) {
- var map = new SourceMapConsumer(util.testMap);
- var context = {};
- map.eachMapping(function () {
- assert.equal(this, context);
- }, context);
- };
-
- exports['test that we can set the context for `this` in eachMapping in indexed source maps'] = function (assert, util) {
- var map = new SourceMapConsumer(util.indexedTestMap);
- var context = {};
- map.eachMapping(function () {
- assert.equal(this, context);
- }, context);
- };
-
- exports['test that the `sourcesContent` field has the original sources'] = function (assert, util) {
- var map = new SourceMapConsumer(util.testMapWithSourcesContent);
- var sourcesContent = map.sourcesContent;
-
- assert.equal(sourcesContent[0], ' ONE.foo = function (bar) {\n return baz(bar);\n };');
- assert.equal(sourcesContent[1], ' TWO.inc = function (n) {\n return n + 1;\n };');
- assert.equal(sourcesContent.length, 2);
- };
-
- exports['test that we can get the original sources for the sources'] = function (assert, util) {
- var map = new SourceMapConsumer(util.testMapWithSourcesContent);
- var sources = map.sources;
-
- assert.equal(map.sourceContentFor(sources[0]), ' ONE.foo = function (bar) {\n return baz(bar);\n };');
- assert.equal(map.sourceContentFor(sources[1]), ' TWO.inc = function (n) {\n return n + 1;\n };');
- assert.equal(map.sourceContentFor("one.js"), ' ONE.foo = function (bar) {\n return baz(bar);\n };');
- assert.equal(map.sourceContentFor("two.js"), ' TWO.inc = function (n) {\n return n + 1;\n };');
- assert.throws(function () {
- map.sourceContentFor("");
- }, Error);
- assert.throws(function () {
- map.sourceContentFor("/the/root/three.js");
- }, Error);
- assert.throws(function () {
- map.sourceContentFor("three.js");
- }, Error);
- };
-
- exports['test that we can get the original source content with relative source paths'] = function (assert, util) {
- var map = new SourceMapConsumer(util.testMapRelativeSources);
- var sources = map.sources;
-
- assert.equal(map.sourceContentFor(sources[0]), ' ONE.foo = function (bar) {\n return baz(bar);\n };');
- assert.equal(map.sourceContentFor(sources[1]), ' TWO.inc = function (n) {\n return n + 1;\n };');
- assert.equal(map.sourceContentFor("one.js"), ' ONE.foo = function (bar) {\n return baz(bar);\n };');
- assert.equal(map.sourceContentFor("two.js"), ' TWO.inc = function (n) {\n return n + 1;\n };');
- assert.throws(function () {
- map.sourceContentFor("");
- }, Error);
- assert.throws(function () {
- map.sourceContentFor("/the/root/three.js");
- }, Error);
- assert.throws(function () {
- map.sourceContentFor("three.js");
- }, Error);
- };
-
- exports['test that we can get the original source content for the sources on an indexed source map'] = function (assert, util) {
- var map = new SourceMapConsumer(util.indexedTestMap);
- var sources = map.sources;
-
- assert.equal(map.sourceContentFor(sources[0]), ' ONE.foo = function (bar) {\n return baz(bar);\n };');
- assert.equal(map.sourceContentFor(sources[1]), ' TWO.inc = function (n) {\n return n + 1;\n };');
- assert.equal(map.sourceContentFor("one.js"), ' ONE.foo = function (bar) {\n return baz(bar);\n };');
- assert.equal(map.sourceContentFor("two.js"), ' TWO.inc = function (n) {\n return n + 1;\n };');
- assert.throws(function () {
- map.sourceContentFor("");
- }, Error);
- assert.throws(function () {
- map.sourceContentFor("/the/root/three.js");
- }, Error);
- assert.throws(function () {
- map.sourceContentFor("three.js");
- }, Error);
- };
-
-
- exports['test sourceRoot + generatedPositionFor'] = function (assert, util) {
- var map = new SourceMapGenerator({
- sourceRoot: 'foo/bar',
- file: 'baz.js'
- });
- map.addMapping({
- original: { line: 1, column: 1 },
- generated: { line: 2, column: 2 },
- source: 'bang.coffee'
- });
- map.addMapping({
- original: { line: 5, column: 5 },
- generated: { line: 6, column: 6 },
- source: 'bang.coffee'
- });
- map = new SourceMapConsumer(map.toString());
-
- // Should handle without sourceRoot.
- var pos = map.generatedPositionFor({
- line: 1,
- column: 1,
- source: 'bang.coffee'
- });
-
- assert.equal(pos.line, 2);
- assert.equal(pos.column, 2);
-
- // Should handle with sourceRoot.
- var pos = map.generatedPositionFor({
- line: 1,
- column: 1,
- source: 'foo/bar/bang.coffee'
- });
-
- assert.equal(pos.line, 2);
- assert.equal(pos.column, 2);
- };
-
- exports['test allGeneratedPositionsFor'] = function (assert, util) {
- var map = new SourceMapGenerator({
- file: 'generated.js'
- });
- map.addMapping({
- original: { line: 1, column: 1 },
- generated: { line: 2, column: 2 },
- source: 'foo.coffee'
- });
- map.addMapping({
- original: { line: 1, column: 1 },
- generated: { line: 2, column: 2 },
- source: 'bar.coffee'
- });
- map.addMapping({
- original: { line: 2, column: 1 },
- generated: { line: 3, column: 2 },
- source: 'bar.coffee'
- });
- map.addMapping({
- original: { line: 2, column: 2 },
- generated: { line: 3, column: 3 },
- source: 'bar.coffee'
- });
- map.addMapping({
- original: { line: 3, column: 1 },
- generated: { line: 4, column: 2 },
- source: 'bar.coffee'
- });
- map = new SourceMapConsumer(map.toString());
-
- var mappings = map.allGeneratedPositionsFor({
- line: 2,
- source: 'bar.coffee'
- });
-
- assert.equal(mappings.length, 2);
- assert.equal(mappings[0].line, 3);
- assert.equal(mappings[0].column, 2);
- assert.equal(mappings[1].line, 3);
- assert.equal(mappings[1].column, 3);
- };
-
- exports['test allGeneratedPositionsFor for line with no mappings'] = function (assert, util) {
- var map = new SourceMapGenerator({
- file: 'generated.js'
- });
- map.addMapping({
- original: { line: 1, column: 1 },
- generated: { line: 2, column: 2 },
- source: 'foo.coffee'
- });
- map.addMapping({
- original: { line: 1, column: 1 },
- generated: { line: 2, column: 2 },
- source: 'bar.coffee'
- });
- map.addMapping({
- original: { line: 3, column: 1 },
- generated: { line: 4, column: 2 },
- source: 'bar.coffee'
- });
- map = new SourceMapConsumer(map.toString());
-
- var mappings = map.allGeneratedPositionsFor({
- line: 2,
- source: 'bar.coffee'
- });
-
- assert.equal(mappings.length, 0);
- };
-
- exports['test allGeneratedPositionsFor source map with no mappings'] = function (assert, util) {
- var map = new SourceMapGenerator({
- file: 'generated.js'
- });
- map = new SourceMapConsumer(map.toString());
-
- var mappings = map.allGeneratedPositionsFor({
- line: 2,
- source: 'bar.coffee'
- });
-
- assert.equal(mappings.length, 0);
- };
-
- exports['test computeColumnSpans'] = function (assert, util) {
- var map = new SourceMapGenerator({
- file: 'generated.js'
- });
- map.addMapping({
- original: { line: 1, column: 1 },
- generated: { line: 1, column: 1 },
- source: 'foo.coffee'
- });
- map.addMapping({
- original: { line: 2, column: 1 },
- generated: { line: 2, column: 1 },
- source: 'foo.coffee'
- });
- map.addMapping({
- original: { line: 2, column: 2 },
- generated: { line: 2, column: 10 },
- source: 'foo.coffee'
- });
- map.addMapping({
- original: { line: 2, column: 3 },
- generated: { line: 2, column: 20 },
- source: 'foo.coffee'
- });
- map.addMapping({
- original: { line: 3, column: 1 },
- generated: { line: 3, column: 1 },
- source: 'foo.coffee'
- });
- map.addMapping({
- original: { line: 3, column: 2 },
- generated: { line: 3, column: 2 },
- source: 'foo.coffee'
- });
- map = new SourceMapConsumer(map.toString());
-
- map.computeColumnSpans();
-
- var mappings = map.allGeneratedPositionsFor({
- line: 1,
- source: 'foo.coffee'
- });
-
- assert.equal(mappings.length, 1);
- assert.equal(mappings[0].lastColumn, Infinity);
-
- var mappings = map.allGeneratedPositionsFor({
- line: 2,
- source: 'foo.coffee'
- });
-
- assert.equal(mappings.length, 3);
- assert.equal(mappings[0].lastColumn, 9);
- assert.equal(mappings[1].lastColumn, 19);
- assert.equal(mappings[2].lastColumn, Infinity);
-
- var mappings = map.allGeneratedPositionsFor({
- line: 3,
- source: 'foo.coffee'
- });
-
- assert.equal(mappings.length, 2);
- assert.equal(mappings[0].lastColumn, 1);
- assert.equal(mappings[1].lastColumn, Infinity);
- };
-
- exports['test sourceRoot + originalPositionFor'] = function (assert, util) {
- var map = new SourceMapGenerator({
- sourceRoot: 'foo/bar',
- file: 'baz.js'
- });
- map.addMapping({
- original: { line: 1, column: 1 },
- generated: { line: 2, column: 2 },
- source: 'bang.coffee'
- });
- map = new SourceMapConsumer(map.toString());
-
- var pos = map.originalPositionFor({
- line: 2,
- column: 2,
- });
-
- // Should always have the prepended source root
- assert.equal(pos.source, 'foo/bar/bang.coffee');
- assert.equal(pos.line, 1);
- assert.equal(pos.column, 1);
- };
-
- exports['test github issue #56'] = function (assert, util) {
- var map = new SourceMapGenerator({
- sourceRoot: 'http://',
- file: 'www.example.com/foo.js'
- });
- map.addMapping({
- original: { line: 1, column: 1 },
- generated: { line: 2, column: 2 },
- source: 'www.example.com/original.js'
- });
- map = new SourceMapConsumer(map.toString());
-
- var sources = map.sources;
- assert.equal(sources.length, 1);
- assert.equal(sources[0], 'http://www.example.com/original.js');
- };
-
- exports['test github issue #43'] = function (assert, util) {
- var map = new SourceMapGenerator({
- sourceRoot: 'http://example.com',
- file: 'foo.js'
- });
- map.addMapping({
- original: { line: 1, column: 1 },
- generated: { line: 2, column: 2 },
- source: 'http://cdn.example.com/original.js'
- });
- map = new SourceMapConsumer(map.toString());
-
- var sources = map.sources;
- assert.equal(sources.length, 1,
- 'Should only be one source.');
- assert.equal(sources[0], 'http://cdn.example.com/original.js',
- 'Should not be joined with the sourceRoot.');
- };
-
- exports['test absolute path, but same host sources'] = function (assert, util) {
- var map = new SourceMapGenerator({
- sourceRoot: 'http://example.com/foo/bar',
- file: 'foo.js'
- });
- map.addMapping({
- original: { line: 1, column: 1 },
- generated: { line: 2, column: 2 },
- source: '/original.js'
- });
- map = new SourceMapConsumer(map.toString());
-
- var sources = map.sources;
- assert.equal(sources.length, 1,
- 'Should only be one source.');
- assert.equal(sources[0], 'http://example.com/original.js',
- 'Source should be relative the host of the source root.');
- };
-
- exports['test indexed source map errors when sections are out of order by line'] = function(assert, util) {
- // Make a deep copy of the indexedTestMap
- var misorderedIndexedTestMap = JSON.parse(JSON.stringify(util.indexedTestMap));
-
- misorderedIndexedTestMap.sections[0].offset = {
- line: 2,
- column: 0
- };
-
- assert.throws(function() {
- new SourceMapConsumer(misorderedIndexedTestMap);
- }, Error);
- };
-
- exports['test github issue #64'] = function (assert, util) {
- var map = new SourceMapConsumer({
- "version": 3,
- "file": "foo.js",
- "sourceRoot": "http://example.com/",
- "sources": ["/a"],
- "names": [],
- "mappings": "AACA",
- "sourcesContent": ["foo"]
- });
-
- assert.equal(map.sourceContentFor("a"), "foo");
- assert.equal(map.sourceContentFor("/a"), "foo");
- };
-
- exports['test bug 885597'] = function (assert, util) {
- var map = new SourceMapConsumer({
- "version": 3,
- "file": "foo.js",
- "sourceRoot": "file:///Users/AlGore/Invented/The/Internet/",
- "sources": ["/a"],
- "names": [],
- "mappings": "AACA",
- "sourcesContent": ["foo"]
- });
-
- var s = map.sources[0];
- assert.equal(map.sourceContentFor(s), "foo");
- };
-
- exports['test github issue #72, duplicate sources'] = function (assert, util) {
- var map = new SourceMapConsumer({
- "version": 3,
- "file": "foo.js",
- "sources": ["source1.js", "source1.js", "source3.js"],
- "names": [],
- "mappings": ";EAAC;;IAEE;;MEEE",
- "sourceRoot": "http://example.com"
- });
-
- var pos = map.originalPositionFor({
- line: 2,
- column: 2
- });
- assert.equal(pos.source, 'http://example.com/source1.js');
- assert.equal(pos.line, 1);
- assert.equal(pos.column, 1);
-
- var pos = map.originalPositionFor({
- line: 4,
- column: 4
- });
- assert.equal(pos.source, 'http://example.com/source1.js');
- assert.equal(pos.line, 3);
- assert.equal(pos.column, 3);
-
- var pos = map.originalPositionFor({
- line: 6,
- column: 6
- });
- assert.equal(pos.source, 'http://example.com/source3.js');
- assert.equal(pos.line, 5);
- assert.equal(pos.column, 5);
- };
-
- exports['test github issue #72, duplicate names'] = function (assert, util) {
- var map = new SourceMapConsumer({
- "version": 3,
- "file": "foo.js",
- "sources": ["source.js"],
- "names": ["name1", "name1", "name3"],
- "mappings": ";EAACA;;IAEEA;;MAEEE",
- "sourceRoot": "http://example.com"
- });
-
- var pos = map.originalPositionFor({
- line: 2,
- column: 2
- });
- assert.equal(pos.name, 'name1');
- assert.equal(pos.line, 1);
- assert.equal(pos.column, 1);
-
- var pos = map.originalPositionFor({
- line: 4,
- column: 4
- });
- assert.equal(pos.name, 'name1');
- assert.equal(pos.line, 3);
- assert.equal(pos.column, 3);
-
- var pos = map.originalPositionFor({
- line: 6,
- column: 6
- });
- assert.equal(pos.name, 'name3');
- assert.equal(pos.line, 5);
- assert.equal(pos.column, 5);
- };
-
- exports['test SourceMapConsumer.fromSourceMap'] = function (assert, util) {
- var smg = new SourceMapGenerator({
- sourceRoot: 'http://example.com/',
- file: 'foo.js'
- });
- smg.addMapping({
- original: { line: 1, column: 1 },
- generated: { line: 2, column: 2 },
- source: 'bar.js'
- });
- smg.addMapping({
- original: { line: 2, column: 2 },
- generated: { line: 4, column: 4 },
- source: 'baz.js',
- name: 'dirtMcGirt'
- });
- smg.setSourceContent('baz.js', 'baz.js content');
-
- var smc = SourceMapConsumer.fromSourceMap(smg);
- assert.equal(smc.file, 'foo.js');
- assert.equal(smc.sourceRoot, 'http://example.com/');
- assert.equal(smc.sources.length, 2);
- assert.equal(smc.sources[0], 'http://example.com/bar.js');
- assert.equal(smc.sources[1], 'http://example.com/baz.js');
- assert.equal(smc.sourceContentFor('baz.js'), 'baz.js content');
-
- var pos = smc.originalPositionFor({
- line: 2,
- column: 2
- });
- assert.equal(pos.line, 1);
- assert.equal(pos.column, 1);
- assert.equal(pos.source, 'http://example.com/bar.js');
- assert.equal(pos.name, null);
-
- pos = smc.generatedPositionFor({
- line: 1,
- column: 1,
- source: 'http://example.com/bar.js'
- });
- assert.equal(pos.line, 2);
- assert.equal(pos.column, 2);
-
- pos = smc.originalPositionFor({
- line: 4,
- column: 4
- });
- assert.equal(pos.line, 2);
- assert.equal(pos.column, 2);
- assert.equal(pos.source, 'http://example.com/baz.js');
- assert.equal(pos.name, 'dirtMcGirt');
-
- pos = smc.generatedPositionFor({
- line: 2,
- column: 2,
- source: 'http://example.com/baz.js'
- });
- assert.equal(pos.line, 4);
- assert.equal(pos.column, 4);
- };
-});
diff --git a/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-generator.js b/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-generator.js
deleted file mode 100644
index d748bb185..000000000
--- a/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-generator.js
+++ /dev/null
@@ -1,679 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var SourceMapGenerator = require('../../lib/source-map/source-map-generator').SourceMapGenerator;
- var SourceMapConsumer = require('../../lib/source-map/source-map-consumer').SourceMapConsumer;
- var SourceNode = require('../../lib/source-map/source-node').SourceNode;
- var util = require('./util');
-
- exports['test some simple stuff'] = function (assert, util) {
- var map = new SourceMapGenerator({
- file: 'foo.js',
- sourceRoot: '.'
- });
- assert.ok(true);
-
- var map = new SourceMapGenerator().toJSON();
- assert.ok(!('file' in map));
- assert.ok(!('sourceRoot' in map));
- };
-
- exports['test JSON serialization'] = function (assert, util) {
- var map = new SourceMapGenerator({
- file: 'foo.js',
- sourceRoot: '.'
- });
- assert.equal(map.toString(), JSON.stringify(map));
- };
-
- exports['test adding mappings (case 1)'] = function (assert, util) {
- var map = new SourceMapGenerator({
- file: 'generated-foo.js',
- sourceRoot: '.'
- });
-
- assert.doesNotThrow(function () {
- map.addMapping({
- generated: { line: 1, column: 1 }
- });
- });
- };
-
- exports['test adding mappings (case 2)'] = function (assert, util) {
- var map = new SourceMapGenerator({
- file: 'generated-foo.js',
- sourceRoot: '.'
- });
-
- assert.doesNotThrow(function () {
- map.addMapping({
- generated: { line: 1, column: 1 },
- source: 'bar.js',
- original: { line: 1, column: 1 }
- });
- });
- };
-
- exports['test adding mappings (case 3)'] = function (assert, util) {
- var map = new SourceMapGenerator({
- file: 'generated-foo.js',
- sourceRoot: '.'
- });
-
- assert.doesNotThrow(function () {
- map.addMapping({
- generated: { line: 1, column: 1 },
- source: 'bar.js',
- original: { line: 1, column: 1 },
- name: 'someToken'
- });
- });
- };
-
- exports['test adding mappings (invalid)'] = function (assert, util) {
- var map = new SourceMapGenerator({
- file: 'generated-foo.js',
- sourceRoot: '.'
- });
-
- // Not enough info.
- assert.throws(function () {
- map.addMapping({});
- });
-
- // Original file position, but no source.
- assert.throws(function () {
- map.addMapping({
- generated: { line: 1, column: 1 },
- original: { line: 1, column: 1 }
- });
- });
- };
-
- exports['test adding mappings with skipValidation'] = function (assert, util) {
- var map = new SourceMapGenerator({
- file: 'generated-foo.js',
- sourceRoot: '.',
- skipValidation: true
- });
-
- // Not enough info, caught by `util.getArgs`
- assert.throws(function () {
- map.addMapping({});
- });
-
- // Original file position, but no source. Not checked.
- assert.doesNotThrow(function () {
- map.addMapping({
- generated: { line: 1, column: 1 },
- original: { line: 1, column: 1 }
- });
- });
- };
-
- exports['test that the correct mappings are being generated'] = function (assert, util) {
- var map = new SourceMapGenerator({
- file: 'min.js',
- sourceRoot: '/the/root'
- });
-
- map.addMapping({
- generated: { line: 1, column: 1 },
- original: { line: 1, column: 1 },
- source: 'one.js'
- });
- map.addMapping({
- generated: { line: 1, column: 5 },
- original: { line: 1, column: 5 },
- source: 'one.js'
- });
- map.addMapping({
- generated: { line: 1, column: 9 },
- original: { line: 1, column: 11 },
- source: 'one.js'
- });
- map.addMapping({
- generated: { line: 1, column: 18 },
- original: { line: 1, column: 21 },
- source: 'one.js',
- name: 'bar'
- });
- map.addMapping({
- generated: { line: 1, column: 21 },
- original: { line: 2, column: 3 },
- source: 'one.js'
- });
- map.addMapping({
- generated: { line: 1, column: 28 },
- original: { line: 2, column: 10 },
- source: 'one.js',
- name: 'baz'
- });
- map.addMapping({
- generated: { line: 1, column: 32 },
- original: { line: 2, column: 14 },
- source: 'one.js',
- name: 'bar'
- });
-
- map.addMapping({
- generated: { line: 2, column: 1 },
- original: { line: 1, column: 1 },
- source: 'two.js'
- });
- map.addMapping({
- generated: { line: 2, column: 5 },
- original: { line: 1, column: 5 },
- source: 'two.js'
- });
- map.addMapping({
- generated: { line: 2, column: 9 },
- original: { line: 1, column: 11 },
- source: 'two.js'
- });
- map.addMapping({
- generated: { line: 2, column: 18 },
- original: { line: 1, column: 21 },
- source: 'two.js',
- name: 'n'
- });
- map.addMapping({
- generated: { line: 2, column: 21 },
- original: { line: 2, column: 3 },
- source: 'two.js'
- });
- map.addMapping({
- generated: { line: 2, column: 28 },
- original: { line: 2, column: 10 },
- source: 'two.js',
- name: 'n'
- });
-
- map = JSON.parse(map.toString());
-
- util.assertEqualMaps(assert, map, util.testMap);
- };
-
- exports['test that adding a mapping with an empty string name does not break generation'] = function (assert, util) {
- var map = new SourceMapGenerator({
- file: 'generated-foo.js',
- sourceRoot: '.'
- });
-
- map.addMapping({
- generated: { line: 1, column: 1 },
- source: 'bar.js',
- original: { line: 1, column: 1 },
- name: ''
- });
-
- assert.doesNotThrow(function () {
- JSON.parse(map.toString());
- });
- };
-
- exports['test that source content can be set'] = function (assert, util) {
- var map = new SourceMapGenerator({
- file: 'min.js',
- sourceRoot: '/the/root'
- });
- map.addMapping({
- generated: { line: 1, column: 1 },
- original: { line: 1, column: 1 },
- source: 'one.js'
- });
- map.addMapping({
- generated: { line: 2, column: 1 },
- original: { line: 1, column: 1 },
- source: 'two.js'
- });
- map.setSourceContent('one.js', 'one file content');
-
- map = JSON.parse(map.toString());
- assert.equal(map.sources[0], 'one.js');
- assert.equal(map.sources[1], 'two.js');
- assert.equal(map.sourcesContent[0], 'one file content');
- assert.equal(map.sourcesContent[1], null);
- };
-
- exports['test .fromSourceMap'] = function (assert, util) {
- var map = SourceMapGenerator.fromSourceMap(new SourceMapConsumer(util.testMap));
- util.assertEqualMaps(assert, map.toJSON(), util.testMap);
- };
-
- exports['test .fromSourceMap with sourcesContent'] = function (assert, util) {
- var map = SourceMapGenerator.fromSourceMap(
- new SourceMapConsumer(util.testMapWithSourcesContent));
- util.assertEqualMaps(assert, map.toJSON(), util.testMapWithSourcesContent);
- };
-
- exports['test applySourceMap'] = function (assert, util) {
- var node = new SourceNode(null, null, null, [
- new SourceNode(2, 0, 'fileX', 'lineX2\n'),
- 'genA1\n',
- new SourceNode(2, 0, 'fileY', 'lineY2\n'),
- 'genA2\n',
- new SourceNode(1, 0, 'fileX', 'lineX1\n'),
- 'genA3\n',
- new SourceNode(1, 0, 'fileY', 'lineY1\n')
- ]);
- var mapStep1 = node.toStringWithSourceMap({
- file: 'fileA'
- }).map;
- mapStep1.setSourceContent('fileX', 'lineX1\nlineX2\n');
- mapStep1 = mapStep1.toJSON();
-
- node = new SourceNode(null, null, null, [
- 'gen1\n',
- new SourceNode(1, 0, 'fileA', 'lineA1\n'),
- new SourceNode(2, 0, 'fileA', 'lineA2\n'),
- new SourceNode(3, 0, 'fileA', 'lineA3\n'),
- new SourceNode(4, 0, 'fileA', 'lineA4\n'),
- new SourceNode(1, 0, 'fileB', 'lineB1\n'),
- new SourceNode(2, 0, 'fileB', 'lineB2\n'),
- 'gen2\n'
- ]);
- var mapStep2 = node.toStringWithSourceMap({
- file: 'fileGen'
- }).map;
- mapStep2.setSourceContent('fileB', 'lineB1\nlineB2\n');
- mapStep2 = mapStep2.toJSON();
-
- node = new SourceNode(null, null, null, [
- 'gen1\n',
- new SourceNode(2, 0, 'fileX', 'lineA1\n'),
- new SourceNode(2, 0, 'fileA', 'lineA2\n'),
- new SourceNode(2, 0, 'fileY', 'lineA3\n'),
- new SourceNode(4, 0, 'fileA', 'lineA4\n'),
- new SourceNode(1, 0, 'fileB', 'lineB1\n'),
- new SourceNode(2, 0, 'fileB', 'lineB2\n'),
- 'gen2\n'
- ]);
- var expectedMap = node.toStringWithSourceMap({
- file: 'fileGen'
- }).map;
- expectedMap.setSourceContent('fileX', 'lineX1\nlineX2\n');
- expectedMap.setSourceContent('fileB', 'lineB1\nlineB2\n');
- expectedMap = expectedMap.toJSON();
-
- // apply source map "mapStep1" to "mapStep2"
- var generator = SourceMapGenerator.fromSourceMap(new SourceMapConsumer(mapStep2));
- generator.applySourceMap(new SourceMapConsumer(mapStep1));
- var actualMap = generator.toJSON();
-
- util.assertEqualMaps(assert, actualMap, expectedMap);
- };
-
- exports['test applySourceMap throws when file is missing'] = function (assert, util) {
- var map = new SourceMapGenerator({
- file: 'test.js'
- });
- var map2 = new SourceMapGenerator();
- assert.throws(function() {
- map.applySourceMap(new SourceMapConsumer(map2.toJSON()));
- });
- };
-
- exports['test the two additional parameters of applySourceMap'] = function (assert, util) {
- // Assume the following directory structure:
- //
- // http://foo.org/
- // bar.coffee
- // app/
- // coffee/
- // foo.coffee
- // temp/
- // bundle.js
- // temp_maps/
- // bundle.js.map
- // public/
- // bundle.min.js
- // bundle.min.js.map
- //
- // http://www.example.com/
- // baz.coffee
-
- var bundleMap = new SourceMapGenerator({
- file: 'bundle.js'
- });
- bundleMap.addMapping({
- generated: { line: 3, column: 3 },
- original: { line: 2, column: 2 },
- source: '../../coffee/foo.coffee'
- });
- bundleMap.setSourceContent('../../coffee/foo.coffee', 'foo coffee');
- bundleMap.addMapping({
- generated: { line: 13, column: 13 },
- original: { line: 12, column: 12 },
- source: '/bar.coffee'
- });
- bundleMap.setSourceContent('/bar.coffee', 'bar coffee');
- bundleMap.addMapping({
- generated: { line: 23, column: 23 },
- original: { line: 22, column: 22 },
- source: 'http://www.example.com/baz.coffee'
- });
- bundleMap.setSourceContent(
- 'http://www.example.com/baz.coffee',
- 'baz coffee'
- );
- bundleMap = new SourceMapConsumer(bundleMap.toJSON());
-
- var minifiedMap = new SourceMapGenerator({
- file: 'bundle.min.js',
- sourceRoot: '..'
- });
- minifiedMap.addMapping({
- generated: { line: 1, column: 1 },
- original: { line: 3, column: 3 },
- source: 'temp/bundle.js'
- });
- minifiedMap.addMapping({
- generated: { line: 11, column: 11 },
- original: { line: 13, column: 13 },
- source: 'temp/bundle.js'
- });
- minifiedMap.addMapping({
- generated: { line: 21, column: 21 },
- original: { line: 23, column: 23 },
- source: 'temp/bundle.js'
- });
- minifiedMap = new SourceMapConsumer(minifiedMap.toJSON());
-
- var expectedMap = function (sources) {
- var map = new SourceMapGenerator({
- file: 'bundle.min.js',
- sourceRoot: '..'
- });
- map.addMapping({
- generated: { line: 1, column: 1 },
- original: { line: 2, column: 2 },
- source: sources[0]
- });
- map.setSourceContent(sources[0], 'foo coffee');
- map.addMapping({
- generated: { line: 11, column: 11 },
- original: { line: 12, column: 12 },
- source: sources[1]
- });
- map.setSourceContent(sources[1], 'bar coffee');
- map.addMapping({
- generated: { line: 21, column: 21 },
- original: { line: 22, column: 22 },
- source: sources[2]
- });
- map.setSourceContent(sources[2], 'baz coffee');
- return map.toJSON();
- }
-
- var actualMap = function (aSourceMapPath) {
- var map = SourceMapGenerator.fromSourceMap(minifiedMap);
- // Note that relying on `bundleMap.file` (which is simply 'bundle.js')
- // instead of supplying the second parameter wouldn't work here.
- map.applySourceMap(bundleMap, '../temp/bundle.js', aSourceMapPath);
- return map.toJSON();
- }
-
- util.assertEqualMaps(assert, actualMap('../temp/temp_maps'), expectedMap([
- 'coffee/foo.coffee',
- '/bar.coffee',
- 'http://www.example.com/baz.coffee'
- ]));
-
- util.assertEqualMaps(assert, actualMap('/app/temp/temp_maps'), expectedMap([
- '/app/coffee/foo.coffee',
- '/bar.coffee',
- 'http://www.example.com/baz.coffee'
- ]));
-
- util.assertEqualMaps(assert, actualMap('http://foo.org/app/temp/temp_maps'), expectedMap([
- 'http://foo.org/app/coffee/foo.coffee',
- 'http://foo.org/bar.coffee',
- 'http://www.example.com/baz.coffee'
- ]));
-
- // If the third parameter is omitted or set to the current working
- // directory we get incorrect source paths:
-
- util.assertEqualMaps(assert, actualMap(), expectedMap([
- '../coffee/foo.coffee',
- '/bar.coffee',
- 'http://www.example.com/baz.coffee'
- ]));
-
- util.assertEqualMaps(assert, actualMap(''), expectedMap([
- '../coffee/foo.coffee',
- '/bar.coffee',
- 'http://www.example.com/baz.coffee'
- ]));
-
- util.assertEqualMaps(assert, actualMap('.'), expectedMap([
- '../coffee/foo.coffee',
- '/bar.coffee',
- 'http://www.example.com/baz.coffee'
- ]));
-
- util.assertEqualMaps(assert, actualMap('./'), expectedMap([
- '../coffee/foo.coffee',
- '/bar.coffee',
- 'http://www.example.com/baz.coffee'
- ]));
- };
-
- exports['test applySourceMap name handling'] = function (assert, util) {
- // Imagine some CoffeeScript code being compiled into JavaScript and then
- // minified.
-
- var assertName = function(coffeeName, jsName, expectedName) {
- var minifiedMap = new SourceMapGenerator({
- file: 'test.js.min'
- });
- minifiedMap.addMapping({
- generated: { line: 1, column: 4 },
- original: { line: 1, column: 4 },
- source: 'test.js',
- name: jsName
- });
-
- var coffeeMap = new SourceMapGenerator({
- file: 'test.js'
- });
- coffeeMap.addMapping({
- generated: { line: 1, column: 4 },
- original: { line: 1, column: 0 },
- source: 'test.coffee',
- name: coffeeName
- });
-
- minifiedMap.applySourceMap(new SourceMapConsumer(coffeeMap.toJSON()));
-
- new SourceMapConsumer(minifiedMap.toJSON()).eachMapping(function(mapping) {
- assert.equal(mapping.name, expectedName);
- });
- };
-
- // `foo = 1` -> `var foo = 1;` -> `var a=1`
- // CoffeeScript doesn’t rename variables, so there’s no need for it to
- // provide names in its source maps. Minifiers do rename variables and
- // therefore do provide names in their source maps. So that name should be
- // retained if the original map lacks names.
- assertName(null, 'foo', 'foo');
-
- // `foo = 1` -> `var coffee$foo = 1;` -> `var a=1`
- // Imagine that CoffeeScript prefixed all variables with `coffee$`. Even
- // though the minifier then also provides a name, the original name is
- // what corresponds to the source.
- assertName('foo', 'coffee$foo', 'foo');
-
- // `foo = 1` -> `var coffee$foo = 1;` -> `var coffee$foo=1`
- // Minifiers can turn off variable mangling. Then there’s no need to
- // provide names in the source map, but the names from the original map are
- // still needed.
- assertName('foo', null, 'foo');
-
- // `foo = 1` -> `var foo = 1;` -> `var foo=1`
- // No renaming at all.
- assertName(null, null, null);
- };
-
- exports['test sorting with duplicate generated mappings'] = function (assert, util) {
- var map = new SourceMapGenerator({
- file: 'test.js'
- });
- map.addMapping({
- generated: { line: 3, column: 0 },
- original: { line: 2, column: 0 },
- source: 'a.js'
- });
- map.addMapping({
- generated: { line: 2, column: 0 }
- });
- map.addMapping({
- generated: { line: 2, column: 0 }
- });
- map.addMapping({
- generated: { line: 1, column: 0 },
- original: { line: 1, column: 0 },
- source: 'a.js'
- });
-
- util.assertEqualMaps(assert, map.toJSON(), {
- version: 3,
- file: 'test.js',
- sources: ['a.js'],
- names: [],
- mappings: 'AAAA;A;AACA'
- });
- };
-
- exports['test ignore duplicate mappings.'] = function (assert, util) {
- var init = { file: 'min.js', sourceRoot: '/the/root' };
- var map1, map2;
-
- // null original source location
- var nullMapping1 = {
- generated: { line: 1, column: 0 }
- };
- var nullMapping2 = {
- generated: { line: 2, column: 2 }
- };
-
- map1 = new SourceMapGenerator(init);
- map2 = new SourceMapGenerator(init);
-
- map1.addMapping(nullMapping1);
- map1.addMapping(nullMapping1);
-
- map2.addMapping(nullMapping1);
-
- util.assertEqualMaps(assert, map1.toJSON(), map2.toJSON());
-
- map1.addMapping(nullMapping2);
- map1.addMapping(nullMapping1);
-
- map2.addMapping(nullMapping2);
-
- util.assertEqualMaps(assert, map1.toJSON(), map2.toJSON());
-
- // original source location
- var srcMapping1 = {
- generated: { line: 1, column: 0 },
- original: { line: 11, column: 0 },
- source: 'srcMapping1.js'
- };
- var srcMapping2 = {
- generated: { line: 2, column: 2 },
- original: { line: 11, column: 0 },
- source: 'srcMapping2.js'
- };
-
- map1 = new SourceMapGenerator(init);
- map2 = new SourceMapGenerator(init);
-
- map1.addMapping(srcMapping1);
- map1.addMapping(srcMapping1);
-
- map2.addMapping(srcMapping1);
-
- util.assertEqualMaps(assert, map1.toJSON(), map2.toJSON());
-
- map1.addMapping(srcMapping2);
- map1.addMapping(srcMapping1);
-
- map2.addMapping(srcMapping2);
-
- util.assertEqualMaps(assert, map1.toJSON(), map2.toJSON());
-
- // full original source and name information
- var fullMapping1 = {
- generated: { line: 1, column: 0 },
- original: { line: 11, column: 0 },
- source: 'fullMapping1.js',
- name: 'fullMapping1'
- };
- var fullMapping2 = {
- generated: { line: 2, column: 2 },
- original: { line: 11, column: 0 },
- source: 'fullMapping2.js',
- name: 'fullMapping2'
- };
-
- map1 = new SourceMapGenerator(init);
- map2 = new SourceMapGenerator(init);
-
- map1.addMapping(fullMapping1);
- map1.addMapping(fullMapping1);
-
- map2.addMapping(fullMapping1);
-
- util.assertEqualMaps(assert, map1.toJSON(), map2.toJSON());
-
- map1.addMapping(fullMapping2);
- map1.addMapping(fullMapping1);
-
- map2.addMapping(fullMapping2);
-
- util.assertEqualMaps(assert, map1.toJSON(), map2.toJSON());
- };
-
- exports['test github issue #72, check for duplicate names or sources'] = function (assert, util) {
- var map = new SourceMapGenerator({
- file: 'test.js'
- });
- map.addMapping({
- generated: { line: 1, column: 1 },
- original: { line: 2, column: 2 },
- source: 'a.js',
- name: 'foo'
- });
- map.addMapping({
- generated: { line: 3, column: 3 },
- original: { line: 4, column: 4 },
- source: 'a.js',
- name: 'foo'
- });
- util.assertEqualMaps(assert, map.toJSON(), {
- version: 3,
- file: 'test.js',
- sources: ['a.js'],
- names: ['foo'],
- mappings: 'CACEA;;GAEEA'
- });
- };
-
- exports['test setting sourcesContent to null when already null'] = function (assert, util) {
- var smg = new SourceMapGenerator({ file: "foo.js" });
- assert.doesNotThrow(function() {
- smg.setSourceContent("bar.js", null);
- });
- };
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-node.js b/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-node.js
deleted file mode 100644
index 139af4e44..000000000
--- a/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-node.js
+++ /dev/null
@@ -1,612 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var SourceMapGenerator = require('../../lib/source-map/source-map-generator').SourceMapGenerator;
- var SourceMapConsumer = require('../../lib/source-map/source-map-consumer').SourceMapConsumer;
- var SourceNode = require('../../lib/source-map/source-node').SourceNode;
-
- function forEachNewline(fn) {
- return function (assert, util) {
- ['\n', '\r\n'].forEach(fn.bind(null, assert, util));
- }
- }
-
- exports['test .add()'] = function (assert, util) {
- var node = new SourceNode(null, null, null);
-
- // Adding a string works.
- node.add('function noop() {}');
-
- // Adding another source node works.
- node.add(new SourceNode(null, null, null));
-
- // Adding an array works.
- node.add(['function foo() {',
- new SourceNode(null, null, null,
- 'return 10;'),
- '}']);
-
- // Adding other stuff doesn't.
- assert.throws(function () {
- node.add({});
- });
- assert.throws(function () {
- node.add(function () {});
- });
- };
-
- exports['test .prepend()'] = function (assert, util) {
- var node = new SourceNode(null, null, null);
-
- // Prepending a string works.
- node.prepend('function noop() {}');
- assert.equal(node.children[0], 'function noop() {}');
- assert.equal(node.children.length, 1);
-
- // Prepending another source node works.
- node.prepend(new SourceNode(null, null, null));
- assert.equal(node.children[0], '');
- assert.equal(node.children[1], 'function noop() {}');
- assert.equal(node.children.length, 2);
-
- // Prepending an array works.
- node.prepend(['function foo() {',
- new SourceNode(null, null, null,
- 'return 10;'),
- '}']);
- assert.equal(node.children[0], 'function foo() {');
- assert.equal(node.children[1], 'return 10;');
- assert.equal(node.children[2], '}');
- assert.equal(node.children[3], '');
- assert.equal(node.children[4], 'function noop() {}');
- assert.equal(node.children.length, 5);
-
- // Prepending other stuff doesn't.
- assert.throws(function () {
- node.prepend({});
- });
- assert.throws(function () {
- node.prepend(function () {});
- });
- };
-
- exports['test .toString()'] = function (assert, util) {
- assert.equal((new SourceNode(null, null, null,
- ['function foo() {',
- new SourceNode(null, null, null, 'return 10;'),
- '}'])).toString(),
- 'function foo() {return 10;}');
- };
-
- exports['test .join()'] = function (assert, util) {
- assert.equal((new SourceNode(null, null, null,
- ['a', 'b', 'c', 'd'])).join(', ').toString(),
- 'a, b, c, d');
- };
-
- exports['test .walk()'] = function (assert, util) {
- var node = new SourceNode(null, null, null,
- ['(function () {\n',
- ' ', new SourceNode(1, 0, 'a.js', ['someCall()']), ';\n',
- ' ', new SourceNode(2, 0, 'b.js', ['if (foo) bar()']), ';\n',
- '}());']);
- var expected = [
- { str: '(function () {\n', source: null, line: null, column: null },
- { str: ' ', source: null, line: null, column: null },
- { str: 'someCall()', source: 'a.js', line: 1, column: 0 },
- { str: ';\n', source: null, line: null, column: null },
- { str: ' ', source: null, line: null, column: null },
- { str: 'if (foo) bar()', source: 'b.js', line: 2, column: 0 },
- { str: ';\n', source: null, line: null, column: null },
- { str: '}());', source: null, line: null, column: null },
- ];
- var i = 0;
- node.walk(function (chunk, loc) {
- assert.equal(expected[i].str, chunk);
- assert.equal(expected[i].source, loc.source);
- assert.equal(expected[i].line, loc.line);
- assert.equal(expected[i].column, loc.column);
- i++;
- });
- };
-
- exports['test .replaceRight'] = function (assert, util) {
- var node;
-
- // Not nested
- node = new SourceNode(null, null, null, 'hello world');
- node.replaceRight(/world/, 'universe');
- assert.equal(node.toString(), 'hello universe');
-
- // Nested
- node = new SourceNode(null, null, null,
- [new SourceNode(null, null, null, 'hey sexy mama, '),
- new SourceNode(null, null, null, 'want to kill all humans?')]);
- node.replaceRight(/kill all humans/, 'watch Futurama');
- assert.equal(node.toString(), 'hey sexy mama, want to watch Futurama?');
- };
-
- exports['test .toStringWithSourceMap()'] = forEachNewline(function (assert, util, nl) {
- var node = new SourceNode(null, null, null,
- ['(function () {' + nl,
- ' ',
- new SourceNode(1, 0, 'a.js', 'someCall', 'originalCall'),
- new SourceNode(1, 8, 'a.js', '()'),
- ';' + nl,
- ' ', new SourceNode(2, 0, 'b.js', ['if (foo) bar()']), ';' + nl,
- '}());']);
- var result = node.toStringWithSourceMap({
- file: 'foo.js'
- });
-
- assert.equal(result.code, [
- '(function () {',
- ' someCall();',
- ' if (foo) bar();',
- '}());'
- ].join(nl));
-
- var map = result.map;
- var mapWithoutOptions = node.toStringWithSourceMap().map;
-
- assert.ok(map instanceof SourceMapGenerator, 'map instanceof SourceMapGenerator');
- assert.ok(mapWithoutOptions instanceof SourceMapGenerator, 'mapWithoutOptions instanceof SourceMapGenerator');
- assert.ok(!('file' in mapWithoutOptions));
- mapWithoutOptions._file = 'foo.js';
- util.assertEqualMaps(assert, map.toJSON(), mapWithoutOptions.toJSON());
-
- map = new SourceMapConsumer(map.toString());
-
- var actual;
-
- actual = map.originalPositionFor({
- line: 1,
- column: 4
- });
- assert.equal(actual.source, null);
- assert.equal(actual.line, null);
- assert.equal(actual.column, null);
-
- actual = map.originalPositionFor({
- line: 2,
- column: 2
- });
- assert.equal(actual.source, 'a.js');
- assert.equal(actual.line, 1);
- assert.equal(actual.column, 0);
- assert.equal(actual.name, 'originalCall');
-
- actual = map.originalPositionFor({
- line: 3,
- column: 2
- });
- assert.equal(actual.source, 'b.js');
- assert.equal(actual.line, 2);
- assert.equal(actual.column, 0);
-
- actual = map.originalPositionFor({
- line: 3,
- column: 16
- });
- assert.equal(actual.source, null);
- assert.equal(actual.line, null);
- assert.equal(actual.column, null);
-
- actual = map.originalPositionFor({
- line: 4,
- column: 2
- });
- assert.equal(actual.source, null);
- assert.equal(actual.line, null);
- assert.equal(actual.column, null);
- });
-
- exports['test .fromStringWithSourceMap()'] = forEachNewline(function (assert, util, nl) {
- var testCode = util.testGeneratedCode.replace(/\n/g, nl);
- var node = SourceNode.fromStringWithSourceMap(
- testCode,
- new SourceMapConsumer(util.testMap));
-
- var result = node.toStringWithSourceMap({
- file: 'min.js'
- });
- var map = result.map;
- var code = result.code;
-
- assert.equal(code, testCode);
- assert.ok(map instanceof SourceMapGenerator, 'map instanceof SourceMapGenerator');
- map = map.toJSON();
- assert.equal(map.version, util.testMap.version);
- assert.equal(map.file, util.testMap.file);
- assert.equal(map.mappings, util.testMap.mappings);
- });
-
- exports['test .fromStringWithSourceMap() empty map'] = forEachNewline(function (assert, util, nl) {
- var node = SourceNode.fromStringWithSourceMap(
- util.testGeneratedCode.replace(/\n/g, nl),
- new SourceMapConsumer(util.emptyMap));
- var result = node.toStringWithSourceMap({
- file: 'min.js'
- });
- var map = result.map;
- var code = result.code;
-
- assert.equal(code, util.testGeneratedCode.replace(/\n/g, nl));
- assert.ok(map instanceof SourceMapGenerator, 'map instanceof SourceMapGenerator');
- map = map.toJSON();
- assert.equal(map.version, util.emptyMap.version);
- assert.equal(map.file, util.emptyMap.file);
- assert.equal(map.mappings.length, util.emptyMap.mappings.length);
- assert.equal(map.mappings, util.emptyMap.mappings);
- });
-
- exports['test .fromStringWithSourceMap() complex version'] = forEachNewline(function (assert, util, nl) {
- var input = new SourceNode(null, null, null, [
- "(function() {" + nl,
- " var Test = {};" + nl,
- " ", new SourceNode(1, 0, "a.js", "Test.A = { value: 1234 };" + nl),
- " ", new SourceNode(2, 0, "a.js", "Test.A.x = 'xyz';"), nl,
- "}());" + nl,
- "/* Generated Source */"]);
- input = input.toStringWithSourceMap({
- file: 'foo.js'
- });
-
- var node = SourceNode.fromStringWithSourceMap(
- input.code,
- new SourceMapConsumer(input.map.toString()));
-
- var result = node.toStringWithSourceMap({
- file: 'foo.js'
- });
- var map = result.map;
- var code = result.code;
-
- assert.equal(code, input.code);
- assert.ok(map instanceof SourceMapGenerator, 'map instanceof SourceMapGenerator');
- map = map.toJSON();
- var inputMap = input.map.toJSON();
- util.assertEqualMaps(assert, map, inputMap);
- });
-
- exports['test .fromStringWithSourceMap() third argument'] = function (assert, util) {
- // Assume the following directory structure:
- //
- // http://foo.org/
- // bar.coffee
- // app/
- // coffee/
- // foo.coffee
- // coffeeBundle.js # Made from {foo,bar,baz}.coffee
- // maps/
- // coffeeBundle.js.map
- // js/
- // foo.js
- // public/
- // app.js # Made from {foo,coffeeBundle}.js
- // app.js.map
- //
- // http://www.example.com/
- // baz.coffee
-
- var coffeeBundle = new SourceNode(1, 0, 'foo.coffee', 'foo(coffee);\n');
- coffeeBundle.setSourceContent('foo.coffee', 'foo coffee');
- coffeeBundle.add(new SourceNode(2, 0, '/bar.coffee', 'bar(coffee);\n'));
- coffeeBundle.add(new SourceNode(3, 0, 'http://www.example.com/baz.coffee', 'baz(coffee);'));
- coffeeBundle = coffeeBundle.toStringWithSourceMap({
- file: 'foo.js',
- sourceRoot: '..'
- });
-
- var foo = new SourceNode(1, 0, 'foo.js', 'foo(js);');
-
- var test = function(relativePath, expectedSources) {
- var app = new SourceNode();
- app.add(SourceNode.fromStringWithSourceMap(
- coffeeBundle.code,
- new SourceMapConsumer(coffeeBundle.map.toString()),
- relativePath));
- app.add(foo);
- var i = 0;
- app.walk(function (chunk, loc) {
- assert.equal(loc.source, expectedSources[i]);
- i++;
- });
- app.walkSourceContents(function (sourceFile, sourceContent) {
- assert.equal(sourceFile, expectedSources[0]);
- assert.equal(sourceContent, 'foo coffee');
- })
- };
-
- test('../coffee/maps', [
- '../coffee/foo.coffee',
- '/bar.coffee',
- 'http://www.example.com/baz.coffee',
- 'foo.js'
- ]);
-
- // If the third parameter is omitted or set to the current working
- // directory we get incorrect source paths:
-
- test(undefined, [
- '../foo.coffee',
- '/bar.coffee',
- 'http://www.example.com/baz.coffee',
- 'foo.js'
- ]);
-
- test('', [
- '../foo.coffee',
- '/bar.coffee',
- 'http://www.example.com/baz.coffee',
- 'foo.js'
- ]);
-
- test('.', [
- '../foo.coffee',
- '/bar.coffee',
- 'http://www.example.com/baz.coffee',
- 'foo.js'
- ]);
-
- test('./', [
- '../foo.coffee',
- '/bar.coffee',
- 'http://www.example.com/baz.coffee',
- 'foo.js'
- ]);
- };
-
- exports['test .toStringWithSourceMap() merging duplicate mappings'] = forEachNewline(function (assert, util, nl) {
- var input = new SourceNode(null, null, null, [
- new SourceNode(1, 0, "a.js", "(function"),
- new SourceNode(1, 0, "a.js", "() {" + nl),
- " ",
- new SourceNode(1, 0, "a.js", "var Test = "),
- new SourceNode(1, 0, "b.js", "{};" + nl),
- new SourceNode(2, 0, "b.js", "Test"),
- new SourceNode(2, 0, "b.js", ".A", "A"),
- new SourceNode(2, 20, "b.js", " = { value: ", "A"),
- "1234",
- new SourceNode(2, 40, "b.js", " };" + nl, "A"),
- "}());" + nl,
- "/* Generated Source */"
- ]);
- input = input.toStringWithSourceMap({
- file: 'foo.js'
- });
-
- assert.equal(input.code, [
- "(function() {",
- " var Test = {};",
- "Test.A = { value: 1234 };",
- "}());",
- "/* Generated Source */"
- ].join(nl))
-
- var correctMap = new SourceMapGenerator({
- file: 'foo.js'
- });
- correctMap.addMapping({
- generated: { line: 1, column: 0 },
- source: 'a.js',
- original: { line: 1, column: 0 }
- });
- // Here is no need for a empty mapping,
- // because mappings ends at eol
- correctMap.addMapping({
- generated: { line: 2, column: 2 },
- source: 'a.js',
- original: { line: 1, column: 0 }
- });
- correctMap.addMapping({
- generated: { line: 2, column: 13 },
- source: 'b.js',
- original: { line: 1, column: 0 }
- });
- correctMap.addMapping({
- generated: { line: 3, column: 0 },
- source: 'b.js',
- original: { line: 2, column: 0 }
- });
- correctMap.addMapping({
- generated: { line: 3, column: 4 },
- source: 'b.js',
- name: 'A',
- original: { line: 2, column: 0 }
- });
- correctMap.addMapping({
- generated: { line: 3, column: 6 },
- source: 'b.js',
- name: 'A',
- original: { line: 2, column: 20 }
- });
- // This empty mapping is required,
- // because there is a hole in the middle of the line
- correctMap.addMapping({
- generated: { line: 3, column: 18 }
- });
- correctMap.addMapping({
- generated: { line: 3, column: 22 },
- source: 'b.js',
- name: 'A',
- original: { line: 2, column: 40 }
- });
- // Here is no need for a empty mapping,
- // because mappings ends at eol
-
- var inputMap = input.map.toJSON();
- correctMap = correctMap.toJSON();
- util.assertEqualMaps(assert, inputMap, correctMap);
- });
-
- exports['test .toStringWithSourceMap() multi-line SourceNodes'] = forEachNewline(function (assert, util, nl) {
- var input = new SourceNode(null, null, null, [
- new SourceNode(1, 0, "a.js", "(function() {" + nl + "var nextLine = 1;" + nl + "anotherLine();" + nl),
- new SourceNode(2, 2, "b.js", "Test.call(this, 123);" + nl),
- new SourceNode(2, 2, "b.js", "this['stuff'] = 'v';" + nl),
- new SourceNode(2, 2, "b.js", "anotherLine();" + nl),
- "/*" + nl + "Generated" + nl + "Source" + nl + "*/" + nl,
- new SourceNode(3, 4, "c.js", "anotherLine();" + nl),
- "/*" + nl + "Generated" + nl + "Source" + nl + "*/"
- ]);
- input = input.toStringWithSourceMap({
- file: 'foo.js'
- });
-
- assert.equal(input.code, [
- "(function() {",
- "var nextLine = 1;",
- "anotherLine();",
- "Test.call(this, 123);",
- "this['stuff'] = 'v';",
- "anotherLine();",
- "/*",
- "Generated",
- "Source",
- "*/",
- "anotherLine();",
- "/*",
- "Generated",
- "Source",
- "*/"
- ].join(nl));
-
- var correctMap = new SourceMapGenerator({
- file: 'foo.js'
- });
- correctMap.addMapping({
- generated: { line: 1, column: 0 },
- source: 'a.js',
- original: { line: 1, column: 0 }
- });
- correctMap.addMapping({
- generated: { line: 2, column: 0 },
- source: 'a.js',
- original: { line: 1, column: 0 }
- });
- correctMap.addMapping({
- generated: { line: 3, column: 0 },
- source: 'a.js',
- original: { line: 1, column: 0 }
- });
- correctMap.addMapping({
- generated: { line: 4, column: 0 },
- source: 'b.js',
- original: { line: 2, column: 2 }
- });
- correctMap.addMapping({
- generated: { line: 5, column: 0 },
- source: 'b.js',
- original: { line: 2, column: 2 }
- });
- correctMap.addMapping({
- generated: { line: 6, column: 0 },
- source: 'b.js',
- original: { line: 2, column: 2 }
- });
- correctMap.addMapping({
- generated: { line: 11, column: 0 },
- source: 'c.js',
- original: { line: 3, column: 4 }
- });
-
- var inputMap = input.map.toJSON();
- correctMap = correctMap.toJSON();
- util.assertEqualMaps(assert, inputMap, correctMap);
- });
-
- exports['test .toStringWithSourceMap() with empty string'] = function (assert, util) {
- var node = new SourceNode(1, 0, 'empty.js', '');
- var result = node.toStringWithSourceMap();
- assert.equal(result.code, '');
- };
-
- exports['test .toStringWithSourceMap() with consecutive newlines'] = forEachNewline(function (assert, util, nl) {
- var input = new SourceNode(null, null, null, [
- "/***/" + nl + nl,
- new SourceNode(1, 0, "a.js", "'use strict';" + nl),
- new SourceNode(2, 0, "a.js", "a();"),
- ]);
- input = input.toStringWithSourceMap({
- file: 'foo.js'
- });
-
- assert.equal(input.code, [
- "/***/",
- "",
- "'use strict';",
- "a();",
- ].join(nl));
-
- var correctMap = new SourceMapGenerator({
- file: 'foo.js'
- });
- correctMap.addMapping({
- generated: { line: 3, column: 0 },
- source: 'a.js',
- original: { line: 1, column: 0 }
- });
- correctMap.addMapping({
- generated: { line: 4, column: 0 },
- source: 'a.js',
- original: { line: 2, column: 0 }
- });
-
- var inputMap = input.map.toJSON();
- correctMap = correctMap.toJSON();
- util.assertEqualMaps(assert, inputMap, correctMap);
- });
-
- exports['test setSourceContent with toStringWithSourceMap'] = function (assert, util) {
- var aNode = new SourceNode(1, 1, 'a.js', 'a');
- aNode.setSourceContent('a.js', 'someContent');
- var node = new SourceNode(null, null, null,
- ['(function () {\n',
- ' ', aNode,
- ' ', new SourceNode(1, 1, 'b.js', 'b'),
- '}());']);
- node.setSourceContent('b.js', 'otherContent');
- var map = node.toStringWithSourceMap({
- file: 'foo.js'
- }).map;
-
- assert.ok(map instanceof SourceMapGenerator, 'map instanceof SourceMapGenerator');
- map = new SourceMapConsumer(map.toString());
-
- assert.equal(map.sources.length, 2);
- assert.equal(map.sources[0], 'a.js');
- assert.equal(map.sources[1], 'b.js');
- assert.equal(map.sourcesContent.length, 2);
- assert.equal(map.sourcesContent[0], 'someContent');
- assert.equal(map.sourcesContent[1], 'otherContent');
- };
-
- exports['test walkSourceContents'] = function (assert, util) {
- var aNode = new SourceNode(1, 1, 'a.js', 'a');
- aNode.setSourceContent('a.js', 'someContent');
- var node = new SourceNode(null, null, null,
- ['(function () {\n',
- ' ', aNode,
- ' ', new SourceNode(1, 1, 'b.js', 'b'),
- '}());']);
- node.setSourceContent('b.js', 'otherContent');
- var results = [];
- node.walkSourceContents(function (sourceFile, sourceContent) {
- results.push([sourceFile, sourceContent]);
- });
- assert.equal(results.length, 2);
- assert.equal(results[0][0], 'a.js');
- assert.equal(results[0][1], 'someContent');
- assert.equal(results[1][0], 'b.js');
- assert.equal(results[1][1], 'otherContent');
- };
-});
diff --git a/node_modules/escodegen/node_modules/source-map/test/source-map/test-util.js b/node_modules/escodegen/node_modules/source-map/test/source-map/test-util.js
deleted file mode 100644
index 997d1a269..000000000
--- a/node_modules/escodegen/node_modules/source-map/test/source-map/test-util.js
+++ /dev/null
@@ -1,216 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2014 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var libUtil = require('../../lib/source-map/util');
-
- exports['test urls'] = function (assert, util) {
- var assertUrl = function (url) {
- assert.equal(url, libUtil.urlGenerate(libUtil.urlParse(url)));
- };
- assertUrl('http://');
- assertUrl('http://www.example.com');
- assertUrl('http://user:pass@www.example.com');
- assertUrl('http://www.example.com:80');
- assertUrl('http://www.example.com/');
- assertUrl('http://www.example.com/foo/bar');
- assertUrl('http://www.example.com/foo/bar/');
- assertUrl('http://user:pass@www.example.com:80/foo/bar/');
-
- assertUrl('//');
- assertUrl('//www.example.com');
- assertUrl('file:///www.example.com');
-
- assert.equal(libUtil.urlParse(''), null);
- assert.equal(libUtil.urlParse('.'), null);
- assert.equal(libUtil.urlParse('..'), null);
- assert.equal(libUtil.urlParse('a'), null);
- assert.equal(libUtil.urlParse('a/b'), null);
- assert.equal(libUtil.urlParse('a//b'), null);
- assert.equal(libUtil.urlParse('/a'), null);
- assert.equal(libUtil.urlParse('data:foo,bar'), null);
- };
-
- exports['test normalize()'] = function (assert, util) {
- assert.equal(libUtil.normalize('/..'), '/');
- assert.equal(libUtil.normalize('/../'), '/');
- assert.equal(libUtil.normalize('/../../../..'), '/');
- assert.equal(libUtil.normalize('/../../../../a/b/c'), '/a/b/c');
- assert.equal(libUtil.normalize('/a/b/c/../../../d/../../e'), '/e');
-
- assert.equal(libUtil.normalize('..'), '..');
- assert.equal(libUtil.normalize('../'), '../');
- assert.equal(libUtil.normalize('../../a/'), '../../a/');
- assert.equal(libUtil.normalize('a/..'), '.');
- assert.equal(libUtil.normalize('a/../../..'), '../..');
-
- assert.equal(libUtil.normalize('/.'), '/');
- assert.equal(libUtil.normalize('/./'), '/');
- assert.equal(libUtil.normalize('/./././.'), '/');
- assert.equal(libUtil.normalize('/././././a/b/c'), '/a/b/c');
- assert.equal(libUtil.normalize('/a/b/c/./././d/././e'), '/a/b/c/d/e');
-
- assert.equal(libUtil.normalize(''), '.');
- assert.equal(libUtil.normalize('.'), '.');
- assert.equal(libUtil.normalize('./'), '.');
- assert.equal(libUtil.normalize('././a'), 'a');
- assert.equal(libUtil.normalize('a/./'), 'a/');
- assert.equal(libUtil.normalize('a/././.'), 'a');
-
- assert.equal(libUtil.normalize('/a/b//c////d/////'), '/a/b/c/d/');
- assert.equal(libUtil.normalize('///a/b//c////d/////'), '///a/b/c/d/');
- assert.equal(libUtil.normalize('a/b//c////d'), 'a/b/c/d');
-
- assert.equal(libUtil.normalize('.///.././../a/b//./..'), '../../a')
-
- assert.equal(libUtil.normalize('http://www.example.com'), 'http://www.example.com');
- assert.equal(libUtil.normalize('http://www.example.com/'), 'http://www.example.com/');
- assert.equal(libUtil.normalize('http://www.example.com/./..//a/b/c/.././d//'), 'http://www.example.com/a/b/d/');
- };
-
- exports['test join()'] = function (assert, util) {
- assert.equal(libUtil.join('a', 'b'), 'a/b');
- assert.equal(libUtil.join('a/', 'b'), 'a/b');
- assert.equal(libUtil.join('a//', 'b'), 'a/b');
- assert.equal(libUtil.join('a', 'b/'), 'a/b/');
- assert.equal(libUtil.join('a', 'b//'), 'a/b/');
- assert.equal(libUtil.join('a/', '/b'), '/b');
- assert.equal(libUtil.join('a//', '//b'), '//b');
-
- assert.equal(libUtil.join('a', '..'), '.');
- assert.equal(libUtil.join('a', '../b'), 'b');
- assert.equal(libUtil.join('a/b', '../c'), 'a/c');
-
- assert.equal(libUtil.join('a', '.'), 'a');
- assert.equal(libUtil.join('a', './b'), 'a/b');
- assert.equal(libUtil.join('a/b', './c'), 'a/b/c');
-
- assert.equal(libUtil.join('a', 'http://www.example.com'), 'http://www.example.com');
- assert.equal(libUtil.join('a', 'data:foo,bar'), 'data:foo,bar');
-
-
- assert.equal(libUtil.join('', 'b'), 'b');
- assert.equal(libUtil.join('.', 'b'), 'b');
- assert.equal(libUtil.join('', 'b/'), 'b/');
- assert.equal(libUtil.join('.', 'b/'), 'b/');
- assert.equal(libUtil.join('', 'b//'), 'b/');
- assert.equal(libUtil.join('.', 'b//'), 'b/');
-
- assert.equal(libUtil.join('', '..'), '..');
- assert.equal(libUtil.join('.', '..'), '..');
- assert.equal(libUtil.join('', '../b'), '../b');
- assert.equal(libUtil.join('.', '../b'), '../b');
-
- assert.equal(libUtil.join('', '.'), '.');
- assert.equal(libUtil.join('.', '.'), '.');
- assert.equal(libUtil.join('', './b'), 'b');
- assert.equal(libUtil.join('.', './b'), 'b');
-
- assert.equal(libUtil.join('', 'http://www.example.com'), 'http://www.example.com');
- assert.equal(libUtil.join('.', 'http://www.example.com'), 'http://www.example.com');
- assert.equal(libUtil.join('', 'data:foo,bar'), 'data:foo,bar');
- assert.equal(libUtil.join('.', 'data:foo,bar'), 'data:foo,bar');
-
-
- assert.equal(libUtil.join('..', 'b'), '../b');
- assert.equal(libUtil.join('..', 'b/'), '../b/');
- assert.equal(libUtil.join('..', 'b//'), '../b/');
-
- assert.equal(libUtil.join('..', '..'), '../..');
- assert.equal(libUtil.join('..', '../b'), '../../b');
-
- assert.equal(libUtil.join('..', '.'), '..');
- assert.equal(libUtil.join('..', './b'), '../b');
-
- assert.equal(libUtil.join('..', 'http://www.example.com'), 'http://www.example.com');
- assert.equal(libUtil.join('..', 'data:foo,bar'), 'data:foo,bar');
-
-
- assert.equal(libUtil.join('a', ''), 'a');
- assert.equal(libUtil.join('a', '.'), 'a');
- assert.equal(libUtil.join('a/', ''), 'a');
- assert.equal(libUtil.join('a/', '.'), 'a');
- assert.equal(libUtil.join('a//', ''), 'a');
- assert.equal(libUtil.join('a//', '.'), 'a');
- assert.equal(libUtil.join('/a', ''), '/a');
- assert.equal(libUtil.join('/a', '.'), '/a');
- assert.equal(libUtil.join('', ''), '.');
- assert.equal(libUtil.join('.', ''), '.');
- assert.equal(libUtil.join('.', ''), '.');
- assert.equal(libUtil.join('.', '.'), '.');
- assert.equal(libUtil.join('..', ''), '..');
- assert.equal(libUtil.join('..', '.'), '..');
- assert.equal(libUtil.join('http://foo.org/a', ''), 'http://foo.org/a');
- assert.equal(libUtil.join('http://foo.org/a', '.'), 'http://foo.org/a');
- assert.equal(libUtil.join('http://foo.org/a/', ''), 'http://foo.org/a');
- assert.equal(libUtil.join('http://foo.org/a/', '.'), 'http://foo.org/a');
- assert.equal(libUtil.join('http://foo.org/a//', ''), 'http://foo.org/a');
- assert.equal(libUtil.join('http://foo.org/a//', '.'), 'http://foo.org/a');
- assert.equal(libUtil.join('http://foo.org', ''), 'http://foo.org/');
- assert.equal(libUtil.join('http://foo.org', '.'), 'http://foo.org/');
- assert.equal(libUtil.join('http://foo.org/', ''), 'http://foo.org/');
- assert.equal(libUtil.join('http://foo.org/', '.'), 'http://foo.org/');
- assert.equal(libUtil.join('http://foo.org//', ''), 'http://foo.org/');
- assert.equal(libUtil.join('http://foo.org//', '.'), 'http://foo.org/');
- assert.equal(libUtil.join('//www.example.com', ''), '//www.example.com/');
- assert.equal(libUtil.join('//www.example.com', '.'), '//www.example.com/');
-
-
- assert.equal(libUtil.join('http://foo.org/a', 'b'), 'http://foo.org/a/b');
- assert.equal(libUtil.join('http://foo.org/a/', 'b'), 'http://foo.org/a/b');
- assert.equal(libUtil.join('http://foo.org/a//', 'b'), 'http://foo.org/a/b');
- assert.equal(libUtil.join('http://foo.org/a', 'b/'), 'http://foo.org/a/b/');
- assert.equal(libUtil.join('http://foo.org/a', 'b//'), 'http://foo.org/a/b/');
- assert.equal(libUtil.join('http://foo.org/a/', '/b'), 'http://foo.org/b');
- assert.equal(libUtil.join('http://foo.org/a//', '//b'), 'http://b');
-
- assert.equal(libUtil.join('http://foo.org/a', '..'), 'http://foo.org/');
- assert.equal(libUtil.join('http://foo.org/a', '../b'), 'http://foo.org/b');
- assert.equal(libUtil.join('http://foo.org/a/b', '../c'), 'http://foo.org/a/c');
-
- assert.equal(libUtil.join('http://foo.org/a', '.'), 'http://foo.org/a');
- assert.equal(libUtil.join('http://foo.org/a', './b'), 'http://foo.org/a/b');
- assert.equal(libUtil.join('http://foo.org/a/b', './c'), 'http://foo.org/a/b/c');
-
- assert.equal(libUtil.join('http://foo.org/a', 'http://www.example.com'), 'http://www.example.com');
- assert.equal(libUtil.join('http://foo.org/a', 'data:foo,bar'), 'data:foo,bar');
-
-
- assert.equal(libUtil.join('http://foo.org', 'a'), 'http://foo.org/a');
- assert.equal(libUtil.join('http://foo.org/', 'a'), 'http://foo.org/a');
- assert.equal(libUtil.join('http://foo.org//', 'a'), 'http://foo.org/a');
- assert.equal(libUtil.join('http://foo.org', '/a'), 'http://foo.org/a');
- assert.equal(libUtil.join('http://foo.org/', '/a'), 'http://foo.org/a');
- assert.equal(libUtil.join('http://foo.org//', '/a'), 'http://foo.org/a');
-
-
- assert.equal(libUtil.join('http://', 'www.example.com'), 'http://www.example.com');
- assert.equal(libUtil.join('file:///', 'www.example.com'), 'file:///www.example.com');
- assert.equal(libUtil.join('http://', 'ftp://example.com'), 'ftp://example.com');
-
- assert.equal(libUtil.join('http://www.example.com', '//foo.org/bar'), 'http://foo.org/bar');
- assert.equal(libUtil.join('//www.example.com', '//foo.org/bar'), '//foo.org/bar');
- };
-
- // TODO Issue #128: Define and test this function properly.
- exports['test relative()'] = function (assert, util) {
- assert.equal(libUtil.relative('/the/root', '/the/root/one.js'), 'one.js');
- assert.equal(libUtil.relative('/the/root', '/the/rootone.js'), '/the/rootone.js');
-
- assert.equal(libUtil.relative('', '/the/root/one.js'), '/the/root/one.js');
- assert.equal(libUtil.relative('.', '/the/root/one.js'), '/the/root/one.js');
- assert.equal(libUtil.relative('', 'the/root/one.js'), 'the/root/one.js');
- assert.equal(libUtil.relative('.', 'the/root/one.js'), 'the/root/one.js');
-
- assert.equal(libUtil.relative('/', '/the/root/one.js'), 'the/root/one.js');
- assert.equal(libUtil.relative('/', 'the/root/one.js'), 'the/root/one.js');
- };
-
-});
diff --git a/node_modules/escodegen/node_modules/source-map/test/source-map/util.js b/node_modules/escodegen/node_modules/source-map/test/source-map/util.js
deleted file mode 100644
index c1a738803..000000000
--- a/node_modules/escodegen/node_modules/source-map/test/source-map/util.js
+++ /dev/null
@@ -1,299 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
- var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
- var util = require('../../lib/source-map/util');
-
- // This is a test mapping which maps functions from two different files
- // (one.js and two.js) to a minified generated source.
- //
- // Here is one.js:
- //
- // ONE.foo = function (bar) {
- // return baz(bar);
- // };
- //
- // Here is two.js:
- //
- // TWO.inc = function (n) {
- // return n + 1;
- // };
- //
- // And here is the generated code (min.js):
- //
- // ONE.foo=function(a){return baz(a);};
- // TWO.inc=function(a){return a+1;};
- exports.testGeneratedCode = " ONE.foo=function(a){return baz(a);};\n"+
- " TWO.inc=function(a){return a+1;};";
- exports.testMap = {
- version: 3,
- file: 'min.js',
- names: ['bar', 'baz', 'n'],
- sources: ['one.js', 'two.js'],
- sourceRoot: '/the/root',
- mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA'
- };
- exports.testMapNoSourceRoot = {
- version: 3,
- file: 'min.js',
- names: ['bar', 'baz', 'n'],
- sources: ['one.js', 'two.js'],
- mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA'
- };
- exports.testMapEmptySourceRoot = {
- version: 3,
- file: 'min.js',
- names: ['bar', 'baz', 'n'],
- sources: ['one.js', 'two.js'],
- sourceRoot: '',
- mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA'
- };
- // This mapping is identical to above, but uses the indexed format instead.
- exports.indexedTestMap = {
- version: 3,
- file: 'min.js',
- sections: [
- {
- offset: {
- line: 0,
- column: 0
- },
- map: {
- version: 3,
- sources: [
- "one.js"
- ],
- sourcesContent: [
- ' ONE.foo = function (bar) {\n' +
- ' return baz(bar);\n' +
- ' };',
- ],
- names: [
- "bar",
- "baz"
- ],
- mappings: "CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID",
- file: "min.js",
- sourceRoot: "/the/root"
- }
- },
- {
- offset: {
- line: 1,
- column: 0
- },
- map: {
- version: 3,
- sources: [
- "two.js"
- ],
- sourcesContent: [
- ' TWO.inc = function (n) {\n' +
- ' return n + 1;\n' +
- ' };'
- ],
- names: [
- "n"
- ],
- mappings: "CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOA",
- file: "min.js",
- sourceRoot: "/the/root"
- }
- }
- ]
- };
- exports.indexedTestMapDifferentSourceRoots = {
- version: 3,
- file: 'min.js',
- sections: [
- {
- offset: {
- line: 0,
- column: 0
- },
- map: {
- version: 3,
- sources: [
- "one.js"
- ],
- sourcesContent: [
- ' ONE.foo = function (bar) {\n' +
- ' return baz(bar);\n' +
- ' };',
- ],
- names: [
- "bar",
- "baz"
- ],
- mappings: "CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID",
- file: "min.js",
- sourceRoot: "/the/root"
- }
- },
- {
- offset: {
- line: 1,
- column: 0
- },
- map: {
- version: 3,
- sources: [
- "two.js"
- ],
- sourcesContent: [
- ' TWO.inc = function (n) {\n' +
- ' return n + 1;\n' +
- ' };'
- ],
- names: [
- "n"
- ],
- mappings: "CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOA",
- file: "min.js",
- sourceRoot: "/different/root"
- }
- }
- ]
- };
- exports.testMapWithSourcesContent = {
- version: 3,
- file: 'min.js',
- names: ['bar', 'baz', 'n'],
- sources: ['one.js', 'two.js'],
- sourcesContent: [
- ' ONE.foo = function (bar) {\n' +
- ' return baz(bar);\n' +
- ' };',
- ' TWO.inc = function (n) {\n' +
- ' return n + 1;\n' +
- ' };'
- ],
- sourceRoot: '/the/root',
- mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA'
- };
- exports.testMapRelativeSources = {
- version: 3,
- file: 'min.js',
- names: ['bar', 'baz', 'n'],
- sources: ['./one.js', './two.js'],
- sourcesContent: [
- ' ONE.foo = function (bar) {\n' +
- ' return baz(bar);\n' +
- ' };',
- ' TWO.inc = function (n) {\n' +
- ' return n + 1;\n' +
- ' };'
- ],
- sourceRoot: '/the/root',
- mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA'
- };
- exports.emptyMap = {
- version: 3,
- file: 'min.js',
- names: [],
- sources: [],
- mappings: ''
- };
-
-
- function assertMapping(generatedLine, generatedColumn, originalSource,
- originalLine, originalColumn, name, map, assert,
- dontTestGenerated, dontTestOriginal) {
- if (!dontTestOriginal) {
- var origMapping = map.originalPositionFor({
- line: generatedLine,
- column: generatedColumn
- });
- assert.equal(origMapping.name, name,
- 'Incorrect name, expected ' + JSON.stringify(name)
- + ', got ' + JSON.stringify(origMapping.name));
- assert.equal(origMapping.line, originalLine,
- 'Incorrect line, expected ' + JSON.stringify(originalLine)
- + ', got ' + JSON.stringify(origMapping.line));
- assert.equal(origMapping.column, originalColumn,
- 'Incorrect column, expected ' + JSON.stringify(originalColumn)
- + ', got ' + JSON.stringify(origMapping.column));
-
- var expectedSource;
-
- if (originalSource && map.sourceRoot && originalSource.indexOf(map.sourceRoot) === 0) {
- expectedSource = originalSource;
- } else if (originalSource) {
- expectedSource = map.sourceRoot
- ? util.join(map.sourceRoot, originalSource)
- : originalSource;
- } else {
- expectedSource = null;
- }
-
- assert.equal(origMapping.source, expectedSource,
- 'Incorrect source, expected ' + JSON.stringify(expectedSource)
- + ', got ' + JSON.stringify(origMapping.source));
- }
-
- if (!dontTestGenerated) {
- var genMapping = map.generatedPositionFor({
- source: originalSource,
- line: originalLine,
- column: originalColumn
- });
- assert.equal(genMapping.line, generatedLine,
- 'Incorrect line, expected ' + JSON.stringify(generatedLine)
- + ', got ' + JSON.stringify(genMapping.line));
- assert.equal(genMapping.column, generatedColumn,
- 'Incorrect column, expected ' + JSON.stringify(generatedColumn)
- + ', got ' + JSON.stringify(genMapping.column));
- }
- }
- exports.assertMapping = assertMapping;
-
- function assertEqualMaps(assert, actualMap, expectedMap) {
- assert.equal(actualMap.version, expectedMap.version, "version mismatch");
- assert.equal(actualMap.file, expectedMap.file, "file mismatch");
- assert.equal(actualMap.names.length,
- expectedMap.names.length,
- "names length mismatch: " +
- actualMap.names.join(", ") + " != " + expectedMap.names.join(", "));
- for (var i = 0; i < actualMap.names.length; i++) {
- assert.equal(actualMap.names[i],
- expectedMap.names[i],
- "names[" + i + "] mismatch: " +
- actualMap.names.join(", ") + " != " + expectedMap.names.join(", "));
- }
- assert.equal(actualMap.sources.length,
- expectedMap.sources.length,
- "sources length mismatch: " +
- actualMap.sources.join(", ") + " != " + expectedMap.sources.join(", "));
- for (var i = 0; i < actualMap.sources.length; i++) {
- assert.equal(actualMap.sources[i],
- expectedMap.sources[i],
- "sources[" + i + "] length mismatch: " +
- actualMap.sources.join(", ") + " != " + expectedMap.sources.join(", "));
- }
- assert.equal(actualMap.sourceRoot,
- expectedMap.sourceRoot,
- "sourceRoot mismatch: " +
- actualMap.sourceRoot + " != " + expectedMap.sourceRoot);
- assert.equal(actualMap.mappings, expectedMap.mappings,
- "mappings mismatch:\nActual: " + actualMap.mappings + "\nExpected: " + expectedMap.mappings);
- if (actualMap.sourcesContent) {
- assert.equal(actualMap.sourcesContent.length,
- expectedMap.sourcesContent.length,
- "sourcesContent length mismatch");
- for (var i = 0; i < actualMap.sourcesContent.length; i++) {
- assert.equal(actualMap.sourcesContent[i],
- expectedMap.sourcesContent[i],
- "sourcesContent[" + i + "] mismatch");
- }
- }
- }
- exports.assertEqualMaps = assertEqualMaps;
-
-});
diff --git a/node_modules/escodegen/package.json b/node_modules/escodegen/package.json
deleted file mode 100644
index 029d60492..000000000
--- a/node_modules/escodegen/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "name": "escodegen",
- "description": "ECMAScript code generator",
- "homepage": "http://github.com/estools/escodegen",
- "main": "escodegen.js",
- "bin": {
- "esgenerate": "./bin/esgenerate.js",
- "escodegen": "./bin/escodegen.js"
- },
- "files": [
- "LICENSE.BSD",
- "LICENSE.source-map",
- "README.md",
- "bin",
- "escodegen.js",
- "package.json"
- ],
- "version": "1.8.1",
- "engines": {
- "node": ">=0.12.0"
- },
- "maintainers": [
- {
- "name": "Yusuke Suzuki",
- "email": "utatane.tea@gmail.com",
- "web": "http://github.com/Constellation"
- }
- ],
- "repository": {
- "type": "git",
- "url": "http://github.com/estools/escodegen.git"
- },
- "dependencies": {
- "estraverse": "^1.9.1",
- "esutils": "^2.0.2",
- "esprima": "^2.7.1",
- "optionator": "^0.8.1"
- },
- "optionalDependencies": {
- "source-map": "~0.2.0"
- },
- "devDependencies": {
- "acorn": "^2.7.0",
- "bluebird": "^2.3.11",
- "bower-registry-client": "^0.2.1",
- "chai": "^1.10.0",
- "commonjs-everywhere": "^0.9.7",
- "gulp": "^3.8.10",
- "gulp-eslint": "^0.2.0",
- "gulp-mocha": "^2.0.0",
- "semver": "^5.1.0"
- },
- "license": "BSD-2-Clause",
- "scripts": {
- "test": "gulp travis",
- "unit-test": "gulp test",
- "lint": "gulp lint",
- "release": "node tools/release.js",
- "build-min": "./node_modules/.bin/cjsify -ma path: tools/entry-point.js > escodegen.browser.min.js",
- "build": "./node_modules/.bin/cjsify -a path: tools/entry-point.js > escodegen.browser.js"
- }
-}
diff --git a/node_modules/esprima/ChangeLog b/node_modules/esprima/ChangeLog
index fd687ae3c..23bcdc788 100644
--- a/node_modules/esprima/ChangeLog
+++ b/node_modules/esprima/ChangeLog
@@ -1,3 +1,38 @@
+2016-12-22: Version 3.1.3
+
+ * Support binding patterns as rest element (issue 1681)
+ * Account for different possible arguments of a yield expression (issue 1469)
+
+2016-11-24: Version 3.1.2
+
+ * Ensure that import specifier is more restrictive (issue 1615)
+ * Fix duplicated JSX tokens (issue 1613)
+ * Scan template literal in a JSX expression container (issue 1622)
+ * Improve XHTML entity scanning in JSX (issue 1629)
+
+2016-10-31: Version 3.1.1
+
+ * Fix assignment expression problem in an export declaration (issue 1596)
+ * Fix incorrect tokenization of hex digits (issue 1605)
+
+2016-10-09: Version 3.1.0
+
+ * Do not implicitly collect comments when comment attachment is specified (issue 1553)
+ * Fix incorrect handling of duplicated proto shorthand fields (issue 1485)
+ * Prohibit initialization in some variants of for statements (issue 1309, 1561)
+ * Fix incorrect parsing of export specifier (issue 1578)
+ * Fix ESTree compatibility for assignment pattern (issue 1575)
+
+2016-09-03: Version 3.0.0
+
+ * Support ES2016 exponentiation expression (issue 1490)
+ * Support JSX syntax (issue 1467)
+ * Use the latest Unicode 8.0 (issue 1475)
+ * Add the support for syntax node delegate (issue 1435)
+ * Fix ESTree compatibility on meta property (issue 1338)
+ * Fix ESTree compatibility on default parameter value (issue 1081)
+ * Fix ESTree compatibility on try handler (issue 1030)
+
2016-08-23: Version 2.7.3
* Fix tokenizer confusion with a comment (issue 1493, 1516)
diff --git a/node_modules/esprima/LICENSE.BSD b/node_modules/esprima/LICENSE.BSD
index 17557eceb..7a55160f5 100644
--- a/node_modules/esprima/LICENSE.BSD
+++ b/node_modules/esprima/LICENSE.BSD
@@ -1,4 +1,4 @@
-Copyright (c) jQuery Foundation, Inc. and Contributors, All Rights Reserved.
+Copyright JS Foundation and other contributors, https://js.foundation/
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
diff --git a/node_modules/esprima/README.md b/node_modules/esprima/README.md
index 749454f44..e59d08333 100644
--- a/node_modules/esprima/README.md
+++ b/node_modules/esprima/README.md
@@ -12,16 +12,33 @@ with the help of [many contributors](https://github.com/jquery/esprima/contribut
### Features
-- Full support for ECMAScript 6 ([ECMA-262](http://www.ecma-international.org/publications/standards/Ecma-262.htm))
-- Sensible [syntax tree format](https://github.com/estree/estree/blob/master/spec.md) as standardized by [ESTree project](https://github.com/estree/estree)
+- Full support for ECMAScript 2016 ([ECMA-262 7th Edition](http://www.ecma-international.org/publications/standards/Ecma-262.htm))
+- Sensible [syntax tree format](https://github.com/estree/estree/blob/master/es5.md) as standardized by [ESTree project](https://github.com/estree/estree)
+- Experimental support for [JSX](https://facebook.github.io/jsx/), a syntax extension for [React](https://facebook.github.io/react/)
- Optional tracking of syntax node location (index-based and line-column)
-- [Heavily tested](http://esprima.org/test/ci.html) (~1250 [unit tests](https://github.com/jquery/esprima/tree/master/test/fixtures) with [full code coverage](https://codecov.io/github/jquery/esprima))
+- [Heavily tested](http://esprima.org/test/ci.html) (~1300 [unit tests](https://github.com/jquery/esprima/tree/master/test/fixtures) with [full code coverage](https://codecov.io/github/jquery/esprima))
-Esprima serves as a **building block** for some JavaScript
-language tools, from [code instrumentation](http://esprima.org/demo/functiontrace.html)
-to [editor autocompletion](http://esprima.org/demo/autocomplete.html).
+### API
-Esprima runs on many popular web browsers, as well as other ECMAScript platforms such as
-[Rhino](http://www.mozilla.org/rhino), [Nashorn](http://openjdk.java.net/projects/nashorn/), and [Node.js](https://npmjs.org/package/esprima).
+Esprima can be used to perform [lexical analysis](https://en.wikipedia.org/wiki/Lexical_analysis) (tokenization) or [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program.
-For more information, check the web site [esprima.org](http://esprima.org).
+A simple example on Node.js REPL:
+
+```javascript
+> var esprima = require('esprima');
+> var program = 'const answer = 42';
+
+> esprima.tokenize(program);
+[ { type: 'Keyword', value: 'const' },
+ { type: 'Identifier', value: 'answer' },
+ { type: 'Punctuator', value: '=' },
+ { type: 'Numeric', value: '42' } ]
+
+> esprima.parse(program);
+{ type: 'Program',
+ body:
+ [ { type: 'VariableDeclaration',
+ declarations: [Object],
+ kind: 'const' } ],
+ sourceType: 'script' }
+```
diff --git a/node_modules/esprima/bin/esparse.js b/node_modules/esprima/bin/esparse.js
index 98bdbf48f..45d05fbb7 100755
--- a/node_modules/esprima/bin/esparse.js
+++ b/node_modules/esprima/bin/esparse.js
@@ -1,6 +1,6 @@
#!/usr/bin/env node
/*
- Copyright (c) jQuery Foundation, Inc. and Contributors, All Rights Reserved.
+ Copyright JS Foundation and other contributors, https://js.foundation/
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
@@ -25,11 +25,15 @@
/*jslint sloppy:true node:true rhino:true */
-var fs, esprima, fname, content, options, syntax;
+var fs, esprima, fname, forceFile, content, options, syntax;
if (typeof require === 'function') {
fs = require('fs');
- esprima = require('esprima');
+ try {
+ esprima = require('esprima');
+ } catch (e) {
+ esprima = require('../');
+ }
} else if (typeof load === 'function') {
try {
load('esprima.js');
@@ -49,7 +53,7 @@ if (typeof console === 'undefined' && typeof process === 'undefined') {
function showUsage() {
console.log('Usage:');
- console.log(' esparse [options] file.js');
+ console.log(' esparse [options] [file.js]');
console.log();
console.log('Available options:');
console.log();
@@ -64,15 +68,18 @@ function showUsage() {
process.exit(1);
}
-if (process.argv.length <= 2) {
- showUsage();
-}
-
options = {};
process.argv.splice(2).forEach(function (entry) {
- if (entry === '-h' || entry === '--help') {
+ if (forceFile || entry === '-' || entry.slice(0, 1) !== '-') {
+ if (typeof fname === 'string') {
+ console.log('Error: more than one input file.');
+ process.exit(1);
+ } else {
+ fname = entry;
+ }
+ } else if (entry === '-h' || entry === '--help') {
showUsage();
} else if (entry === '-v' || entry === '--version') {
console.log('ECMAScript Parser (using Esprima version', esprima.version, ')');
@@ -90,22 +97,14 @@ process.argv.splice(2).forEach(function (entry) {
options.tokens = true;
} else if (entry === '--tolerant') {
options.tolerant = true;
- } else if (entry.slice(0, 2) === '--') {
+ } else if (entry === '--') {
+ forceFile = true;
+ } else {
console.log('Error: unknown option ' + entry + '.');
process.exit(1);
- } else if (typeof fname === 'string') {
- console.log('Error: more than one input file.');
- process.exit(1);
- } else {
- fname = entry;
}
});
-if (typeof fname !== 'string') {
- console.log('Error: no input file.');
- process.exit(1);
-}
-
// Special handling for regular expression literal since we need to
// convert it to a string literal, otherwise it will be decoded
// as object "{}" and the regular expression would be lost.
@@ -116,10 +115,24 @@ function adjustRegexLiteral(key, value) {
return value;
}
-try {
- content = fs.readFileSync(fname, 'utf-8');
+function run(content) {
syntax = esprima.parse(content, options);
console.log(JSON.stringify(syntax, adjustRegexLiteral, 4));
+}
+
+try {
+ if (fname && (fname !== '-' || forceFile)) {
+ run(fs.readFileSync(fname, 'utf-8'));
+ } else {
+ var content = '';
+ process.stdin.resume();
+ process.stdin.on('data', function(chunk) {
+ content += chunk;
+ });
+ process.stdin.on('end', function() {
+ run(content);
+ });
+ }
} catch (e) {
console.log('Error: ' + e.message);
process.exit(1);
diff --git a/node_modules/esprima/bin/esvalidate.js b/node_modules/esprima/bin/esvalidate.js
index f522dec29..4faf760e2 100755
--- a/node_modules/esprima/bin/esvalidate.js
+++ b/node_modules/esprima/bin/esvalidate.js
@@ -1,6 +1,6 @@
#!/usr/bin/env node
/*
- Copyright (c) jQuery Foundation, Inc. and Contributors, All Rights Reserved.
+ Copyright JS Foundation and other contributors, https://js.foundation/
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
@@ -26,7 +26,7 @@
/*jslint sloppy:true plusplus:true node:true rhino:true */
/*global phantom:true */
-var fs, system, esprima, options, fnames, count;
+var fs, system, esprima, options, fnames, forceFile, count;
if (typeof esprima === 'undefined') {
// PhantomJS can only require() relative files
@@ -36,7 +36,11 @@ if (typeof esprima === 'undefined') {
esprima = require('./esprima');
} else if (typeof require === 'function') {
fs = require('fs');
- esprima = require('esprima');
+ try {
+ esprima = require('esprima');
+ } catch (e) {
+ esprima = require('../');
+ }
} else if (typeof load === 'function') {
try {
load('esprima.js');
@@ -51,7 +55,10 @@ if (typeof phantom === 'object') {
fs.readFileSync = fs.read;
process = {
argv: [].slice.call(system.args),
- exit: phantom.exit
+ exit: phantom.exit,
+ on: function (evt, callback) {
+ callback();
+ }
};
process.argv.unshift('phantomjs');
}
@@ -60,14 +67,20 @@ if (typeof phantom === 'object') {
if (typeof console === 'undefined' && typeof process === 'undefined') {
console = { log: print };
fs = { readFileSync: readFile };
- process = { argv: arguments, exit: quit };
+ process = {
+ argv: arguments,
+ exit: quit,
+ on: function (evt, callback) {
+ callback();
+ }
+ };
process.argv.unshift('esvalidate.js');
process.argv.unshift('rhino');
}
function showUsage() {
console.log('Usage:');
- console.log(' esvalidate [options] file.js');
+ console.log(' esvalidate [options] [file.js...]');
console.log();
console.log('Available options:');
console.log();
@@ -77,10 +90,6 @@ function showUsage() {
process.exit(1);
}
-if (process.argv.length <= 2) {
- showUsage();
-}
-
options = {
format: 'plain'
};
@@ -89,7 +98,9 @@ fnames = [];
process.argv.splice(2).forEach(function (entry) {
- if (entry === '-h' || entry === '--help') {
+ if (forceFile || entry === '-' || entry.slice(0, 1) !== '-') {
+ fnames.push(entry);
+ } else if (entry === '-h' || entry === '--help') {
showUsage();
} else if (entry === '-v' || entry === '--version') {
console.log('ECMAScript Validator (using Esprima version', esprima.version, ')');
@@ -101,17 +112,16 @@ process.argv.splice(2).forEach(function (entry) {
console.log('Error: unknown report format ' + options.format + '.');
process.exit(1);
}
- } else if (entry.slice(0, 2) === '--') {
+ } else if (entry === '--') {
+ forceFile = true;
+ } else {
console.log('Error: unknown option ' + entry + '.');
process.exit(1);
- } else {
- fnames.push(entry);
}
});
if (fnames.length === 0) {
- console.log('Error: no input file.');
- process.exit(1);
+ fnames.push('');
}
if (options.format === 'junit') {
@@ -120,10 +130,13 @@ if (options.format === 'junit') {
}
count = 0;
-fnames.forEach(function (fname) {
- var content, timestamp, syntax, name;
+
+function run(fname, content) {
+ var timestamp, syntax, name;
try {
- content = fs.readFileSync(fname, 'utf-8');
+ if (typeof content !== 'string') {
+ throw content;
+ }
if (content[0] === '#' && content[1] === '!') {
content = '//' + content.substr(2, content.length);
@@ -184,16 +197,40 @@ fnames.forEach(function (fname) {
console.log('Error: ' + e.message);
}
}
+}
+
+fnames.forEach(function (fname) {
+ var content = '';
+ try {
+ if (fname && (fname !== '-' || forceFile)) {
+ content = fs.readFileSync(fname, 'utf-8');
+ } else {
+ fname = '';
+ process.stdin.resume();
+ process.stdin.on('data', function(chunk) {
+ content += chunk;
+ });
+ process.stdin.on('end', function() {
+ run(fname, content);
+ });
+ return;
+ }
+ } catch (e) {
+ content = e;
+ }
+ run(fname, content);
});
-if (options.format === 'junit') {
- console.log('</testsuites>');
-}
+process.on('exit', function () {
+ if (options.format === 'junit') {
+ console.log('</testsuites>');
+ }
-if (count > 0) {
- process.exit(1);
-}
+ if (count > 0) {
+ process.exit(1);
+ }
-if (count === 0 && typeof phantom === 'object') {
- process.exit(0);
-}
+ if (count === 0 && typeof phantom === 'object') {
+ process.exit(0);
+ }
+});
diff --git a/node_modules/esprima/esprima.js b/node_modules/esprima/esprima.js
deleted file mode 100644
index 0cb0a9361..000000000
--- a/node_modules/esprima/esprima.js
+++ /dev/null
@@ -1,5740 +0,0 @@
-/*
- Copyright (c) jQuery Foundation, Inc. and Contributors, All Rights Reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-(function (root, factory) {
- 'use strict';
-
- // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js,
- // Rhino, and plain browser loading.
-
- /* istanbul ignore next */
- if (typeof define === 'function' && define.amd) {
- define(['exports'], factory);
- } else if (typeof exports !== 'undefined') {
- factory(exports);
- } else {
- factory((root.esprima = {}));
- }
-}(this, function (exports) {
- 'use strict';
-
- var Token,
- TokenName,
- FnExprTokens,
- Syntax,
- PlaceHolders,
- Messages,
- Regex,
- source,
- strict,
- index,
- lineNumber,
- lineStart,
- hasLineTerminator,
- lastIndex,
- lastLineNumber,
- lastLineStart,
- startIndex,
- startLineNumber,
- startLineStart,
- scanning,
- length,
- lookahead,
- state,
- extra,
- isBindingElement,
- isAssignmentTarget,
- firstCoverInitializedNameError;
-
- Token = {
- BooleanLiteral: 1,
- EOF: 2,
- Identifier: 3,
- Keyword: 4,
- NullLiteral: 5,
- NumericLiteral: 6,
- Punctuator: 7,
- StringLiteral: 8,
- RegularExpression: 9,
- Template: 10
- };
-
- TokenName = {};
- TokenName[Token.BooleanLiteral] = 'Boolean';
- TokenName[Token.EOF] = '<end>';
- TokenName[Token.Identifier] = 'Identifier';
- TokenName[Token.Keyword] = 'Keyword';
- TokenName[Token.NullLiteral] = 'Null';
- TokenName[Token.NumericLiteral] = 'Numeric';
- TokenName[Token.Punctuator] = 'Punctuator';
- TokenName[Token.StringLiteral] = 'String';
- TokenName[Token.RegularExpression] = 'RegularExpression';
- TokenName[Token.Template] = 'Template';
-
- // A function following one of those tokens is an expression.
- FnExprTokens = ['(', '{', '[', 'in', 'typeof', 'instanceof', 'new',
- 'return', 'case', 'delete', 'throw', 'void',
- // assignment operators
- '=', '+=', '-=', '*=', '/=', '%=', '<<=', '>>=', '>>>=',
- '&=', '|=', '^=', ',',
- // binary/unary operators
- '+', '-', '*', '/', '%', '++', '--', '<<', '>>', '>>>', '&',
- '|', '^', '!', '~', '&&', '||', '?', ':', '===', '==', '>=',
- '<=', '<', '>', '!=', '!=='];
-
- Syntax = {
- AssignmentExpression: 'AssignmentExpression',
- AssignmentPattern: 'AssignmentPattern',
- ArrayExpression: 'ArrayExpression',
- ArrayPattern: 'ArrayPattern',
- ArrowFunctionExpression: 'ArrowFunctionExpression',
- BlockStatement: 'BlockStatement',
- BinaryExpression: 'BinaryExpression',
- BreakStatement: 'BreakStatement',
- CallExpression: 'CallExpression',
- CatchClause: 'CatchClause',
- ClassBody: 'ClassBody',
- ClassDeclaration: 'ClassDeclaration',
- ClassExpression: 'ClassExpression',
- ConditionalExpression: 'ConditionalExpression',
- ContinueStatement: 'ContinueStatement',
- DoWhileStatement: 'DoWhileStatement',
- DebuggerStatement: 'DebuggerStatement',
- EmptyStatement: 'EmptyStatement',
- ExportAllDeclaration: 'ExportAllDeclaration',
- ExportDefaultDeclaration: 'ExportDefaultDeclaration',
- ExportNamedDeclaration: 'ExportNamedDeclaration',
- ExportSpecifier: 'ExportSpecifier',
- ExpressionStatement: 'ExpressionStatement',
- ForStatement: 'ForStatement',
- ForOfStatement: 'ForOfStatement',
- ForInStatement: 'ForInStatement',
- FunctionDeclaration: 'FunctionDeclaration',
- FunctionExpression: 'FunctionExpression',
- Identifier: 'Identifier',
- IfStatement: 'IfStatement',
- ImportDeclaration: 'ImportDeclaration',
- ImportDefaultSpecifier: 'ImportDefaultSpecifier',
- ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',
- ImportSpecifier: 'ImportSpecifier',
- Literal: 'Literal',
- LabeledStatement: 'LabeledStatement',
- LogicalExpression: 'LogicalExpression',
- MemberExpression: 'MemberExpression',
- MetaProperty: 'MetaProperty',
- MethodDefinition: 'MethodDefinition',
- NewExpression: 'NewExpression',
- ObjectExpression: 'ObjectExpression',
- ObjectPattern: 'ObjectPattern',
- Program: 'Program',
- Property: 'Property',
- RestElement: 'RestElement',
- ReturnStatement: 'ReturnStatement',
- SequenceExpression: 'SequenceExpression',
- SpreadElement: 'SpreadElement',
- Super: 'Super',
- SwitchCase: 'SwitchCase',
- SwitchStatement: 'SwitchStatement',
- TaggedTemplateExpression: 'TaggedTemplateExpression',
- TemplateElement: 'TemplateElement',
- TemplateLiteral: 'TemplateLiteral',
- ThisExpression: 'ThisExpression',
- ThrowStatement: 'ThrowStatement',
- TryStatement: 'TryStatement',
- UnaryExpression: 'UnaryExpression',
- UpdateExpression: 'UpdateExpression',
- VariableDeclaration: 'VariableDeclaration',
- VariableDeclarator: 'VariableDeclarator',
- WhileStatement: 'WhileStatement',
- WithStatement: 'WithStatement',
- YieldExpression: 'YieldExpression'
- };
-
- PlaceHolders = {
- ArrowParameterPlaceHolder: 'ArrowParameterPlaceHolder'
- };
-
- // Error messages should be identical to V8.
- Messages = {
- UnexpectedToken: 'Unexpected token %0',
- UnexpectedNumber: 'Unexpected number',
- UnexpectedString: 'Unexpected string',
- UnexpectedIdentifier: 'Unexpected identifier',
- UnexpectedReserved: 'Unexpected reserved word',
- UnexpectedTemplate: 'Unexpected quasi %0',
- UnexpectedEOS: 'Unexpected end of input',
- NewlineAfterThrow: 'Illegal newline after throw',
- InvalidRegExp: 'Invalid regular expression',
- UnterminatedRegExp: 'Invalid regular expression: missing /',
- InvalidLHSInAssignment: 'Invalid left-hand side in assignment',
- InvalidLHSInForIn: 'Invalid left-hand side in for-in',
- InvalidLHSInForLoop: 'Invalid left-hand side in for-loop',
- MultipleDefaultsInSwitch: 'More than one default clause in switch statement',
- NoCatchOrFinally: 'Missing catch or finally after try',
- UnknownLabel: 'Undefined label \'%0\'',
- Redeclaration: '%0 \'%1\' has already been declared',
- IllegalContinue: 'Illegal continue statement',
- IllegalBreak: 'Illegal break statement',
- IllegalReturn: 'Illegal return statement',
- StrictModeWith: 'Strict mode code may not include a with statement',
- StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode',
- StrictVarName: 'Variable name may not be eval or arguments in strict mode',
- StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode',
- StrictParamDupe: 'Strict mode function may not have duplicate parameter names',
- StrictFunctionName: 'Function name may not be eval or arguments in strict mode',
- StrictOctalLiteral: 'Octal literals are not allowed in strict mode.',
- StrictDelete: 'Delete of an unqualified identifier in strict mode.',
- StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode',
- StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode',
- StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode',
- StrictReservedWord: 'Use of future reserved word in strict mode',
- TemplateOctalLiteral: 'Octal literals are not allowed in template strings.',
- ParameterAfterRestParameter: 'Rest parameter must be last formal parameter',
- DefaultRestParameter: 'Unexpected token =',
- ObjectPatternAsRestParameter: 'Unexpected token {',
- DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals',
- ConstructorSpecialMethod: 'Class constructor may not be an accessor',
- DuplicateConstructor: 'A class may only have one constructor',
- StaticPrototype: 'Classes may not have static property named prototype',
- MissingFromClause: 'Unexpected token',
- NoAsAfterImportNamespace: 'Unexpected token',
- InvalidModuleSpecifier: 'Unexpected token',
- IllegalImportDeclaration: 'Unexpected token',
- IllegalExportDeclaration: 'Unexpected token',
- DuplicateBinding: 'Duplicate binding %0'
- };
-
- // See also tools/generate-unicode-regex.js.
- Regex = {
- // ECMAScript 6/Unicode v7.0.0 NonAsciiIdentifierStart:
- NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDE00-\uDE11\uDE13-\uDE2B\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDE00-\uDE2F\uDE44\uDE80-\uDEAA]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]/,
-
- // ECMAScript 6/Unicode v7.0.0 NonAsciiIdentifierPart:
- NonAsciiIdentifierPart: /[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDD0-\uDDDA\uDE00-\uDE11\uDE13-\uDE37\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF01-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/
- };
-
- // Ensure the condition is true, otherwise throw an error.
- // This is only to have a better contract semantic, i.e. another safety net
- // to catch a logic error. The condition shall be fulfilled in normal case.
- // Do NOT use this to enforce a certain condition on any user input.
-
- function assert(condition, message) {
- /* istanbul ignore if */
- if (!condition) {
- throw new Error('ASSERT: ' + message);
- }
- }
-
- function isDecimalDigit(ch) {
- return (ch >= 0x30 && ch <= 0x39); // 0..9
- }
-
- function isHexDigit(ch) {
- return '0123456789abcdefABCDEF'.indexOf(ch) >= 0;
- }
-
- function isOctalDigit(ch) {
- return '01234567'.indexOf(ch) >= 0;
- }
-
- function octalToDecimal(ch) {
- // \0 is not octal escape sequence
- var octal = (ch !== '0'), code = '01234567'.indexOf(ch);
-
- if (index < length && isOctalDigit(source[index])) {
- octal = true;
- code = code * 8 + '01234567'.indexOf(source[index++]);
-
- // 3 digits are only allowed when string starts
- // with 0, 1, 2, 3
- if ('0123'.indexOf(ch) >= 0 &&
- index < length &&
- isOctalDigit(source[index])) {
- code = code * 8 + '01234567'.indexOf(source[index++]);
- }
- }
-
- return {
- code: code,
- octal: octal
- };
- }
-
- // ECMA-262 11.2 White Space
-
- function isWhiteSpace(ch) {
- return (ch === 0x20) || (ch === 0x09) || (ch === 0x0B) || (ch === 0x0C) || (ch === 0xA0) ||
- (ch >= 0x1680 && [0x1680, 0x180E, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(ch) >= 0);
- }
-
- // ECMA-262 11.3 Line Terminators
-
- function isLineTerminator(ch) {
- return (ch === 0x0A) || (ch === 0x0D) || (ch === 0x2028) || (ch === 0x2029);
- }
-
- // ECMA-262 11.6 Identifier Names and Identifiers
-
- function fromCodePoint(cp) {
- return (cp < 0x10000) ? String.fromCharCode(cp) :
- String.fromCharCode(0xD800 + ((cp - 0x10000) >> 10)) +
- String.fromCharCode(0xDC00 + ((cp - 0x10000) & 1023));
- }
-
- function isIdentifierStart(ch) {
- return (ch === 0x24) || (ch === 0x5F) || // $ (dollar) and _ (underscore)
- (ch >= 0x41 && ch <= 0x5A) || // A..Z
- (ch >= 0x61 && ch <= 0x7A) || // a..z
- (ch === 0x5C) || // \ (backslash)
- ((ch >= 0x80) && Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch)));
- }
-
- function isIdentifierPart(ch) {
- return (ch === 0x24) || (ch === 0x5F) || // $ (dollar) and _ (underscore)
- (ch >= 0x41 && ch <= 0x5A) || // A..Z
- (ch >= 0x61 && ch <= 0x7A) || // a..z
- (ch >= 0x30 && ch <= 0x39) || // 0..9
- (ch === 0x5C) || // \ (backslash)
- ((ch >= 0x80) && Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch)));
- }
-
- // ECMA-262 11.6.2.2 Future Reserved Words
-
- function isFutureReservedWord(id) {
- switch (id) {
- case 'enum':
- case 'export':
- case 'import':
- case 'super':
- return true;
- default:
- return false;
- }
- }
-
- function isStrictModeReservedWord(id) {
- switch (id) {
- case 'implements':
- case 'interface':
- case 'package':
- case 'private':
- case 'protected':
- case 'public':
- case 'static':
- case 'yield':
- case 'let':
- return true;
- default:
- return false;
- }
- }
-
- function isRestrictedWord(id) {
- return id === 'eval' || id === 'arguments';
- }
-
- // ECMA-262 11.6.2.1 Keywords
-
- function isKeyword(id) {
- switch (id.length) {
- case 2:
- return (id === 'if') || (id === 'in') || (id === 'do');
- case 3:
- return (id === 'var') || (id === 'for') || (id === 'new') ||
- (id === 'try') || (id === 'let');
- case 4:
- return (id === 'this') || (id === 'else') || (id === 'case') ||
- (id === 'void') || (id === 'with') || (id === 'enum');
- case 5:
- return (id === 'while') || (id === 'break') || (id === 'catch') ||
- (id === 'throw') || (id === 'const') || (id === 'yield') ||
- (id === 'class') || (id === 'super');
- case 6:
- return (id === 'return') || (id === 'typeof') || (id === 'delete') ||
- (id === 'switch') || (id === 'export') || (id === 'import');
- case 7:
- return (id === 'default') || (id === 'finally') || (id === 'extends');
- case 8:
- return (id === 'function') || (id === 'continue') || (id === 'debugger');
- case 10:
- return (id === 'instanceof');
- default:
- return false;
- }
- }
-
- // ECMA-262 11.4 Comments
-
- function addComment(type, value, start, end, loc) {
- var comment;
-
- assert(typeof start === 'number', 'Comment must have valid position');
-
- state.lastCommentStart = start;
-
- comment = {
- type: type,
- value: value
- };
- if (extra.range) {
- comment.range = [start, end];
- }
- if (extra.loc) {
- comment.loc = loc;
- }
- extra.comments.push(comment);
- if (extra.attachComment) {
- extra.leadingComments.push(comment);
- extra.trailingComments.push(comment);
- }
- if (extra.tokenize) {
- comment.type = comment.type + 'Comment';
- if (extra.delegate) {
- comment = extra.delegate(comment);
- }
- extra.tokens.push(comment);
- }
- }
-
- function skipSingleLineComment(offset) {
- var start, loc, ch, comment;
-
- start = index - offset;
- loc = {
- start: {
- line: lineNumber,
- column: index - lineStart - offset
- }
- };
-
- while (index < length) {
- ch = source.charCodeAt(index);
- ++index;
- if (isLineTerminator(ch)) {
- hasLineTerminator = true;
- if (extra.comments) {
- comment = source.slice(start + offset, index - 1);
- loc.end = {
- line: lineNumber,
- column: index - lineStart - 1
- };
- addComment('Line', comment, start, index - 1, loc);
- }
- if (ch === 13 && source.charCodeAt(index) === 10) {
- ++index;
- }
- ++lineNumber;
- lineStart = index;
- return;
- }
- }
-
- if (extra.comments) {
- comment = source.slice(start + offset, index);
- loc.end = {
- line: lineNumber,
- column: index - lineStart
- };
- addComment('Line', comment, start, index, loc);
- }
- }
-
- function skipMultiLineComment() {
- var start, loc, ch, comment;
-
- if (extra.comments) {
- start = index - 2;
- loc = {
- start: {
- line: lineNumber,
- column: index - lineStart - 2
- }
- };
- }
-
- while (index < length) {
- ch = source.charCodeAt(index);
- if (isLineTerminator(ch)) {
- if (ch === 0x0D && source.charCodeAt(index + 1) === 0x0A) {
- ++index;
- }
- hasLineTerminator = true;
- ++lineNumber;
- ++index;
- lineStart = index;
- } else if (ch === 0x2A) {
- // Block comment ends with '*/'.
- if (source.charCodeAt(index + 1) === 0x2F) {
- ++index;
- ++index;
- if (extra.comments) {
- comment = source.slice(start + 2, index - 2);
- loc.end = {
- line: lineNumber,
- column: index - lineStart
- };
- addComment('Block', comment, start, index, loc);
- }
- return;
- }
- ++index;
- } else {
- ++index;
- }
- }
-
- // Ran off the end of the file - the whole thing is a comment
- if (extra.comments) {
- loc.end = {
- line: lineNumber,
- column: index - lineStart
- };
- comment = source.slice(start + 2, index);
- addComment('Block', comment, start, index, loc);
- }
- tolerateUnexpectedToken();
- }
-
- function skipComment() {
- var ch, start;
- hasLineTerminator = false;
-
- start = (index === 0);
- while (index < length) {
- ch = source.charCodeAt(index);
-
- if (isWhiteSpace(ch)) {
- ++index;
- } else if (isLineTerminator(ch)) {
- hasLineTerminator = true;
- ++index;
- if (ch === 0x0D && source.charCodeAt(index) === 0x0A) {
- ++index;
- }
- ++lineNumber;
- lineStart = index;
- start = true;
- } else if (ch === 0x2F) { // U+002F is '/'
- ch = source.charCodeAt(index + 1);
- if (ch === 0x2F) {
- ++index;
- ++index;
- skipSingleLineComment(2);
- start = true;
- } else if (ch === 0x2A) { // U+002A is '*'
- ++index;
- ++index;
- skipMultiLineComment();
- } else {
- break;
- }
- } else if (start && ch === 0x2D) { // U+002D is '-'
- // U+003E is '>'
- if ((source.charCodeAt(index + 1) === 0x2D) && (source.charCodeAt(index + 2) === 0x3E)) {
- // '-->' is a single-line comment
- index += 3;
- skipSingleLineComment(3);
- } else {
- break;
- }
- } else if (ch === 0x3C) { // U+003C is '<'
- if (source.slice(index + 1, index + 4) === '!--') {
- ++index; // `<`
- ++index; // `!`
- ++index; // `-`
- ++index; // `-`
- skipSingleLineComment(4);
- } else {
- break;
- }
- } else {
- break;
- }
- }
- }
-
- function scanHexEscape(prefix) {
- var i, len, ch, code = 0;
-
- len = (prefix === 'u') ? 4 : 2;
- for (i = 0; i < len; ++i) {
- if (index < length && isHexDigit(source[index])) {
- ch = source[index++];
- code = code * 16 + '0123456789abcdef'.indexOf(ch.toLowerCase());
- } else {
- return '';
- }
- }
- return String.fromCharCode(code);
- }
-
- function scanUnicodeCodePointEscape() {
- var ch, code;
-
- ch = source[index];
- code = 0;
-
- // At least, one hex digit is required.
- if (ch === '}') {
- throwUnexpectedToken();
- }
-
- while (index < length) {
- ch = source[index++];
- if (!isHexDigit(ch)) {
- break;
- }
- code = code * 16 + '0123456789abcdef'.indexOf(ch.toLowerCase());
- }
-
- if (code > 0x10FFFF || ch !== '}') {
- throwUnexpectedToken();
- }
-
- return fromCodePoint(code);
- }
-
- function codePointAt(i) {
- var cp, first, second;
-
- cp = source.charCodeAt(i);
- if (cp >= 0xD800 && cp <= 0xDBFF) {
- second = source.charCodeAt(i + 1);
- if (second >= 0xDC00 && second <= 0xDFFF) {
- first = cp;
- cp = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
- }
- }
-
- return cp;
- }
-
- function getComplexIdentifier() {
- var cp, ch, id;
-
- cp = codePointAt(index);
- id = fromCodePoint(cp);
- index += id.length;
-
- // '\u' (U+005C, U+0075) denotes an escaped character.
- if (cp === 0x5C) {
- if (source.charCodeAt(index) !== 0x75) {
- throwUnexpectedToken();
- }
- ++index;
- if (source[index] === '{') {
- ++index;
- ch = scanUnicodeCodePointEscape();
- } else {
- ch = scanHexEscape('u');
- cp = ch.charCodeAt(0);
- if (!ch || ch === '\\' || !isIdentifierStart(cp)) {
- throwUnexpectedToken();
- }
- }
- id = ch;
- }
-
- while (index < length) {
- cp = codePointAt(index);
- if (!isIdentifierPart(cp)) {
- break;
- }
- ch = fromCodePoint(cp);
- id += ch;
- index += ch.length;
-
- // '\u' (U+005C, U+0075) denotes an escaped character.
- if (cp === 0x5C) {
- id = id.substr(0, id.length - 1);
- if (source.charCodeAt(index) !== 0x75) {
- throwUnexpectedToken();
- }
- ++index;
- if (source[index] === '{') {
- ++index;
- ch = scanUnicodeCodePointEscape();
- } else {
- ch = scanHexEscape('u');
- cp = ch.charCodeAt(0);
- if (!ch || ch === '\\' || !isIdentifierPart(cp)) {
- throwUnexpectedToken();
- }
- }
- id += ch;
- }
- }
-
- return id;
- }
-
- function getIdentifier() {
- var start, ch;
-
- start = index++;
- while (index < length) {
- ch = source.charCodeAt(index);
- if (ch === 0x5C) {
- // Blackslash (U+005C) marks Unicode escape sequence.
- index = start;
- return getComplexIdentifier();
- } else if (ch >= 0xD800 && ch < 0xDFFF) {
- // Need to handle surrogate pairs.
- index = start;
- return getComplexIdentifier();
- }
- if (isIdentifierPart(ch)) {
- ++index;
- } else {
- break;
- }
- }
-
- return source.slice(start, index);
- }
-
- function scanIdentifier() {
- var start, id, type;
-
- start = index;
-
- // Backslash (U+005C) starts an escaped character.
- id = (source.charCodeAt(index) === 0x5C) ? getComplexIdentifier() : getIdentifier();
-
- // There is no keyword or literal with only one character.
- // Thus, it must be an identifier.
- if (id.length === 1) {
- type = Token.Identifier;
- } else if (isKeyword(id)) {
- type = Token.Keyword;
- } else if (id === 'null') {
- type = Token.NullLiteral;
- } else if (id === 'true' || id === 'false') {
- type = Token.BooleanLiteral;
- } else {
- type = Token.Identifier;
- }
-
- return {
- type: type,
- value: id,
- lineNumber: lineNumber,
- lineStart: lineStart,
- start: start,
- end: index
- };
- }
-
-
- // ECMA-262 11.7 Punctuators
-
- function scanPunctuator() {
- var token, str;
-
- token = {
- type: Token.Punctuator,
- value: '',
- lineNumber: lineNumber,
- lineStart: lineStart,
- start: index,
- end: index
- };
-
- // Check for most common single-character punctuators.
- str = source[index];
- switch (str) {
-
- case '(':
- if (extra.tokenize) {
- extra.openParenToken = extra.tokenValues.length;
- }
- ++index;
- break;
-
- case '{':
- if (extra.tokenize) {
- extra.openCurlyToken = extra.tokenValues.length;
- }
- state.curlyStack.push('{');
- ++index;
- break;
-
- case '.':
- ++index;
- if (source[index] === '.' && source[index + 1] === '.') {
- // Spread operator: ...
- index += 2;
- str = '...';
- }
- break;
-
- case '}':
- ++index;
- state.curlyStack.pop();
- break;
- case ')':
- case ';':
- case ',':
- case '[':
- case ']':
- case ':':
- case '?':
- case '~':
- ++index;
- break;
-
- default:
- // 4-character punctuator.
- str = source.substr(index, 4);
- if (str === '>>>=') {
- index += 4;
- } else {
-
- // 3-character punctuators.
- str = str.substr(0, 3);
- if (str === '===' || str === '!==' || str === '>>>' ||
- str === '<<=' || str === '>>=') {
- index += 3;
- } else {
-
- // 2-character punctuators.
- str = str.substr(0, 2);
- if (str === '&&' || str === '||' || str === '==' || str === '!=' ||
- str === '+=' || str === '-=' || str === '*=' || str === '/=' ||
- str === '++' || str === '--' || str === '<<' || str === '>>' ||
- str === '&=' || str === '|=' || str === '^=' || str === '%=' ||
- str === '<=' || str === '>=' || str === '=>') {
- index += 2;
- } else {
-
- // 1-character punctuators.
- str = source[index];
- if ('<>=!+-*%&|^/'.indexOf(str) >= 0) {
- ++index;
- }
- }
- }
- }
- }
-
- if (index === token.start) {
- throwUnexpectedToken();
- }
-
- token.end = index;
- token.value = str;
- return token;
- }
-
- // ECMA-262 11.8.3 Numeric Literals
-
- function scanHexLiteral(start) {
- var number = '';
-
- while (index < length) {
- if (!isHexDigit(source[index])) {
- break;
- }
- number += source[index++];
- }
-
- if (number.length === 0) {
- throwUnexpectedToken();
- }
-
- if (isIdentifierStart(source.charCodeAt(index))) {
- throwUnexpectedToken();
- }
-
- return {
- type: Token.NumericLiteral,
- value: parseInt('0x' + number, 16),
- lineNumber: lineNumber,
- lineStart: lineStart,
- start: start,
- end: index
- };
- }
-
- function scanBinaryLiteral(start) {
- var ch, number;
-
- number = '';
-
- while (index < length) {
- ch = source[index];
- if (ch !== '0' && ch !== '1') {
- break;
- }
- number += source[index++];
- }
-
- if (number.length === 0) {
- // only 0b or 0B
- throwUnexpectedToken();
- }
-
- if (index < length) {
- ch = source.charCodeAt(index);
- /* istanbul ignore else */
- if (isIdentifierStart(ch) || isDecimalDigit(ch)) {
- throwUnexpectedToken();
- }
- }
-
- return {
- type: Token.NumericLiteral,
- value: parseInt(number, 2),
- lineNumber: lineNumber,
- lineStart: lineStart,
- start: start,
- end: index
- };
- }
-
- function scanOctalLiteral(prefix, start) {
- var number, octal;
-
- if (isOctalDigit(prefix)) {
- octal = true;
- number = '0' + source[index++];
- } else {
- octal = false;
- ++index;
- number = '';
- }
-
- while (index < length) {
- if (!isOctalDigit(source[index])) {
- break;
- }
- number += source[index++];
- }
-
- if (!octal && number.length === 0) {
- // only 0o or 0O
- throwUnexpectedToken();
- }
-
- if (isIdentifierStart(source.charCodeAt(index)) || isDecimalDigit(source.charCodeAt(index))) {
- throwUnexpectedToken();
- }
-
- return {
- type: Token.NumericLiteral,
- value: parseInt(number, 8),
- octal: octal,
- lineNumber: lineNumber,
- lineStart: lineStart,
- start: start,
- end: index
- };
- }
-
- function isImplicitOctalLiteral() {
- var i, ch;
-
- // Implicit octal, unless there is a non-octal digit.
- // (Annex B.1.1 on Numeric Literals)
- for (i = index + 1; i < length; ++i) {
- ch = source[i];
- if (ch === '8' || ch === '9') {
- return false;
- }
- if (!isOctalDigit(ch)) {
- return true;
- }
- }
-
- return true;
- }
-
- function scanNumericLiteral() {
- var number, start, ch;
-
- ch = source[index];
- assert(isDecimalDigit(ch.charCodeAt(0)) || (ch === '.'),
- 'Numeric literal must start with a decimal digit or a decimal point');
-
- start = index;
- number = '';
- if (ch !== '.') {
- number = source[index++];
- ch = source[index];
-
- // Hex number starts with '0x'.
- // Octal number starts with '0'.
- // Octal number in ES6 starts with '0o'.
- // Binary number in ES6 starts with '0b'.
- if (number === '0') {
- if (ch === 'x' || ch === 'X') {
- ++index;
- return scanHexLiteral(start);
- }
- if (ch === 'b' || ch === 'B') {
- ++index;
- return scanBinaryLiteral(start);
- }
- if (ch === 'o' || ch === 'O') {
- return scanOctalLiteral(ch, start);
- }
-
- if (isOctalDigit(ch)) {
- if (isImplicitOctalLiteral()) {
- return scanOctalLiteral(ch, start);
- }
- }
- }
-
- while (isDecimalDigit(source.charCodeAt(index))) {
- number += source[index++];
- }
- ch = source[index];
- }
-
- if (ch === '.') {
- number += source[index++];
- while (isDecimalDigit(source.charCodeAt(index))) {
- number += source[index++];
- }
- ch = source[index];
- }
-
- if (ch === 'e' || ch === 'E') {
- number += source[index++];
-
- ch = source[index];
- if (ch === '+' || ch === '-') {
- number += source[index++];
- }
- if (isDecimalDigit(source.charCodeAt(index))) {
- while (isDecimalDigit(source.charCodeAt(index))) {
- number += source[index++];
- }
- } else {
- throwUnexpectedToken();
- }
- }
-
- if (isIdentifierStart(source.charCodeAt(index))) {
- throwUnexpectedToken();
- }
-
- return {
- type: Token.NumericLiteral,
- value: parseFloat(number),
- lineNumber: lineNumber,
- lineStart: lineStart,
- start: start,
- end: index
- };
- }
-
- // ECMA-262 11.8.4 String Literals
-
- function scanStringLiteral() {
- var str = '', quote, start, ch, unescaped, octToDec, octal = false;
-
- quote = source[index];
- assert((quote === '\'' || quote === '"'),
- 'String literal must starts with a quote');
-
- start = index;
- ++index;
-
- while (index < length) {
- ch = source[index++];
-
- if (ch === quote) {
- quote = '';
- break;
- } else if (ch === '\\') {
- ch = source[index++];
- if (!ch || !isLineTerminator(ch.charCodeAt(0))) {
- switch (ch) {
- case 'u':
- case 'x':
- if (source[index] === '{') {
- ++index;
- str += scanUnicodeCodePointEscape();
- } else {
- unescaped = scanHexEscape(ch);
- if (!unescaped) {
- throw throwUnexpectedToken();
- }
- str += unescaped;
- }
- break;
- case 'n':
- str += '\n';
- break;
- case 'r':
- str += '\r';
- break;
- case 't':
- str += '\t';
- break;
- case 'b':
- str += '\b';
- break;
- case 'f':
- str += '\f';
- break;
- case 'v':
- str += '\x0B';
- break;
- case '8':
- case '9':
- str += ch;
- tolerateUnexpectedToken();
- break;
-
- default:
- if (isOctalDigit(ch)) {
- octToDec = octalToDecimal(ch);
-
- octal = octToDec.octal || octal;
- str += String.fromCharCode(octToDec.code);
- } else {
- str += ch;
- }
- break;
- }
- } else {
- ++lineNumber;
- if (ch === '\r' && source[index] === '\n') {
- ++index;
- }
- lineStart = index;
- }
- } else if (isLineTerminator(ch.charCodeAt(0))) {
- break;
- } else {
- str += ch;
- }
- }
-
- if (quote !== '') {
- index = start;
- throwUnexpectedToken();
- }
-
- return {
- type: Token.StringLiteral,
- value: str,
- octal: octal,
- lineNumber: startLineNumber,
- lineStart: startLineStart,
- start: start,
- end: index
- };
- }
-
- // ECMA-262 11.8.6 Template Literal Lexical Components
-
- function scanTemplate() {
- var cooked = '', ch, start, rawOffset, terminated, head, tail, restore, unescaped;
-
- terminated = false;
- tail = false;
- start = index;
- head = (source[index] === '`');
- rawOffset = 2;
-
- ++index;
-
- while (index < length) {
- ch = source[index++];
- if (ch === '`') {
- rawOffset = 1;
- tail = true;
- terminated = true;
- break;
- } else if (ch === '$') {
- if (source[index] === '{') {
- state.curlyStack.push('${');
- ++index;
- terminated = true;
- break;
- }
- cooked += ch;
- } else if (ch === '\\') {
- ch = source[index++];
- if (!isLineTerminator(ch.charCodeAt(0))) {
- switch (ch) {
- case 'n':
- cooked += '\n';
- break;
- case 'r':
- cooked += '\r';
- break;
- case 't':
- cooked += '\t';
- break;
- case 'u':
- case 'x':
- if (source[index] === '{') {
- ++index;
- cooked += scanUnicodeCodePointEscape();
- } else {
- restore = index;
- unescaped = scanHexEscape(ch);
- if (unescaped) {
- cooked += unescaped;
- } else {
- index = restore;
- cooked += ch;
- }
- }
- break;
- case 'b':
- cooked += '\b';
- break;
- case 'f':
- cooked += '\f';
- break;
- case 'v':
- cooked += '\v';
- break;
-
- default:
- if (ch === '0') {
- if (isDecimalDigit(source.charCodeAt(index))) {
- // Illegal: \01 \02 and so on
- throwError(Messages.TemplateOctalLiteral);
- }
- cooked += '\0';
- } else if (isOctalDigit(ch)) {
- // Illegal: \1 \2
- throwError(Messages.TemplateOctalLiteral);
- } else {
- cooked += ch;
- }
- break;
- }
- } else {
- ++lineNumber;
- if (ch === '\r' && source[index] === '\n') {
- ++index;
- }
- lineStart = index;
- }
- } else if (isLineTerminator(ch.charCodeAt(0))) {
- ++lineNumber;
- if (ch === '\r' && source[index] === '\n') {
- ++index;
- }
- lineStart = index;
- cooked += '\n';
- } else {
- cooked += ch;
- }
- }
-
- if (!terminated) {
- throwUnexpectedToken();
- }
-
- if (!head) {
- state.curlyStack.pop();
- }
-
- return {
- type: Token.Template,
- value: {
- cooked: cooked,
- raw: source.slice(start + 1, index - rawOffset)
- },
- head: head,
- tail: tail,
- lineNumber: lineNumber,
- lineStart: lineStart,
- start: start,
- end: index
- };
- }
-
- // ECMA-262 11.8.5 Regular Expression Literals
-
- function testRegExp(pattern, flags) {
- // The BMP character to use as a replacement for astral symbols when
- // translating an ES6 "u"-flagged pattern to an ES5-compatible
- // approximation.
- // Note: replacing with '\uFFFF' enables false positives in unlikely
- // scenarios. For example, `[\u{1044f}-\u{10440}]` is an invalid
- // pattern that would not be detected by this substitution.
- var astralSubstitute = '\uFFFF',
- tmp = pattern;
-
- if (flags.indexOf('u') >= 0) {
- tmp = tmp
- // Replace every Unicode escape sequence with the equivalent
- // BMP character or a constant ASCII code point in the case of
- // astral symbols. (See the above note on `astralSubstitute`
- // for more information.)
- .replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g, function ($0, $1, $2) {
- var codePoint = parseInt($1 || $2, 16);
- if (codePoint > 0x10FFFF) {
- throwUnexpectedToken(null, Messages.InvalidRegExp);
- }
- if (codePoint <= 0xFFFF) {
- return String.fromCharCode(codePoint);
- }
- return astralSubstitute;
- })
- // Replace each paired surrogate with a single ASCII symbol to
- // avoid throwing on regular expressions that are only valid in
- // combination with the "u" flag.
- .replace(
- /[\uD800-\uDBFF][\uDC00-\uDFFF]/g,
- astralSubstitute
- );
- }
-
- // First, detect invalid regular expressions.
- try {
- RegExp(tmp);
- } catch (e) {
- throwUnexpectedToken(null, Messages.InvalidRegExp);
- }
-
- // Return a regular expression object for this pattern-flag pair, or
- // `null` in case the current environment doesn't support the flags it
- // uses.
- try {
- return new RegExp(pattern, flags);
- } catch (exception) {
- /* istanbul ignore next */
- return null;
- }
- }
-
- function scanRegExpBody() {
- var ch, str, classMarker, terminated, body;
-
- ch = source[index];
- assert(ch === '/', 'Regular expression literal must start with a slash');
- str = source[index++];
-
- classMarker = false;
- terminated = false;
- while (index < length) {
- ch = source[index++];
- str += ch;
- if (ch === '\\') {
- ch = source[index++];
- // ECMA-262 7.8.5
- if (isLineTerminator(ch.charCodeAt(0))) {
- throwUnexpectedToken(null, Messages.UnterminatedRegExp);
- }
- str += ch;
- } else if (isLineTerminator(ch.charCodeAt(0))) {
- throwUnexpectedToken(null, Messages.UnterminatedRegExp);
- } else if (classMarker) {
- if (ch === ']') {
- classMarker = false;
- }
- } else {
- if (ch === '/') {
- terminated = true;
- break;
- } else if (ch === '[') {
- classMarker = true;
- }
- }
- }
-
- if (!terminated) {
- throwUnexpectedToken(null, Messages.UnterminatedRegExp);
- }
-
- // Exclude leading and trailing slash.
- body = str.substr(1, str.length - 2);
- return {
- value: body,
- literal: str
- };
- }
-
- function scanRegExpFlags() {
- var ch, str, flags, restore;
-
- str = '';
- flags = '';
- while (index < length) {
- ch = source[index];
- if (!isIdentifierPart(ch.charCodeAt(0))) {
- break;
- }
-
- ++index;
- if (ch === '\\' && index < length) {
- ch = source[index];
- if (ch === 'u') {
- ++index;
- restore = index;
- ch = scanHexEscape('u');
- if (ch) {
- flags += ch;
- for (str += '\\u'; restore < index; ++restore) {
- str += source[restore];
- }
- } else {
- index = restore;
- flags += 'u';
- str += '\\u';
- }
- tolerateUnexpectedToken();
- } else {
- str += '\\';
- tolerateUnexpectedToken();
- }
- } else {
- flags += ch;
- str += ch;
- }
- }
-
- return {
- value: flags,
- literal: str
- };
- }
-
- function scanRegExp() {
- var start, body, flags, value;
- scanning = true;
-
- lookahead = null;
- skipComment();
- start = index;
-
- body = scanRegExpBody();
- flags = scanRegExpFlags();
- value = testRegExp(body.value, flags.value);
- scanning = false;
- if (extra.tokenize) {
- return {
- type: Token.RegularExpression,
- value: value,
- regex: {
- pattern: body.value,
- flags: flags.value
- },
- lineNumber: lineNumber,
- lineStart: lineStart,
- start: start,
- end: index
- };
- }
-
- return {
- literal: body.literal + flags.literal,
- value: value,
- regex: {
- pattern: body.value,
- flags: flags.value
- },
- start: start,
- end: index
- };
- }
-
- function collectRegex() {
- var pos, loc, regex, token;
-
- skipComment();
-
- pos = index;
- loc = {
- start: {
- line: lineNumber,
- column: index - lineStart
- }
- };
-
- regex = scanRegExp();
-
- loc.end = {
- line: lineNumber,
- column: index - lineStart
- };
-
- /* istanbul ignore next */
- if (!extra.tokenize) {
- // Pop the previous token, which is likely '/' or '/='
- if (extra.tokens.length > 0) {
- token = extra.tokens[extra.tokens.length - 1];
- if (token.range[0] === pos && token.type === 'Punctuator') {
- if (token.value === '/' || token.value === '/=') {
- extra.tokens.pop();
- }
- }
- }
-
- extra.tokens.push({
- type: 'RegularExpression',
- value: regex.literal,
- regex: regex.regex,
- range: [pos, index],
- loc: loc
- });
- }
-
- return regex;
- }
-
- function isIdentifierName(token) {
- return token.type === Token.Identifier ||
- token.type === Token.Keyword ||
- token.type === Token.BooleanLiteral ||
- token.type === Token.NullLiteral;
- }
-
- // Using the following algorithm:
- // https://github.com/mozilla/sweet.js/wiki/design
-
- function advanceSlash() {
- var regex, previous, check;
-
- function testKeyword(value) {
- return value && (value.length > 1) && (value[0] >= 'a') && (value[0] <= 'z');
- }
-
- previous = extra.tokenValues[extra.tokenValues.length - 1];
- regex = (previous !== null);
-
- switch (previous) {
- case 'this':
- case ']':
- regex = false;
- break;
-
- case ')':
- check = extra.tokenValues[extra.openParenToken - 1];
- regex = (check === 'if' || check === 'while' || check === 'for' || check === 'with');
- break;
-
- case '}':
- // Dividing a function by anything makes little sense,
- // but we have to check for that.
- regex = false;
- if (testKeyword(extra.tokenValues[extra.openCurlyToken - 3])) {
- // Anonymous function, e.g. function(){} /42
- check = extra.tokenValues[extra.openCurlyToken - 4];
- regex = check ? (FnExprTokens.indexOf(check) < 0) : false;
- } else if (testKeyword(extra.tokenValues[extra.openCurlyToken - 4])) {
- // Named function, e.g. function f(){} /42/
- check = extra.tokenValues[extra.openCurlyToken - 5];
- regex = check ? (FnExprTokens.indexOf(check) < 0) : true;
- }
- }
-
- return regex ? collectRegex() : scanPunctuator();
- }
-
- function advance() {
- var cp, token;
-
- if (index >= length) {
- return {
- type: Token.EOF,
- lineNumber: lineNumber,
- lineStart: lineStart,
- start: index,
- end: index
- };
- }
-
- cp = source.charCodeAt(index);
-
- if (isIdentifierStart(cp)) {
- token = scanIdentifier();
- if (strict && isStrictModeReservedWord(token.value)) {
- token.type = Token.Keyword;
- }
- return token;
- }
-
- // Very common: ( and ) and ;
- if (cp === 0x28 || cp === 0x29 || cp === 0x3B) {
- return scanPunctuator();
- }
-
- // String literal starts with single quote (U+0027) or double quote (U+0022).
- if (cp === 0x27 || cp === 0x22) {
- return scanStringLiteral();
- }
-
- // Dot (.) U+002E can also start a floating-point number, hence the need
- // to check the next character.
- if (cp === 0x2E) {
- if (isDecimalDigit(source.charCodeAt(index + 1))) {
- return scanNumericLiteral();
- }
- return scanPunctuator();
- }
-
- if (isDecimalDigit(cp)) {
- return scanNumericLiteral();
- }
-
- // Slash (/) U+002F can also start a regex.
- if (extra.tokenize && cp === 0x2F) {
- return advanceSlash();
- }
-
- // Template literals start with ` (U+0060) for template head
- // or } (U+007D) for template middle or template tail.
- if (cp === 0x60 || (cp === 0x7D && state.curlyStack[state.curlyStack.length - 1] === '${')) {
- return scanTemplate();
- }
-
- // Possible identifier start in a surrogate pair.
- if (cp >= 0xD800 && cp < 0xDFFF) {
- cp = codePointAt(index);
- if (isIdentifierStart(cp)) {
- return scanIdentifier();
- }
- }
-
- return scanPunctuator();
- }
-
- function collectToken() {
- var loc, token, value, entry;
-
- loc = {
- start: {
- line: lineNumber,
- column: index - lineStart
- }
- };
-
- token = advance();
- loc.end = {
- line: lineNumber,
- column: index - lineStart
- };
-
- if (token.type !== Token.EOF) {
- value = source.slice(token.start, token.end);
- entry = {
- type: TokenName[token.type],
- value: value,
- range: [token.start, token.end],
- loc: loc
- };
- if (token.regex) {
- entry.regex = {
- pattern: token.regex.pattern,
- flags: token.regex.flags
- };
- }
- if (extra.tokenValues) {
- extra.tokenValues.push((entry.type === 'Punctuator' || entry.type === 'Keyword') ? entry.value : null);
- }
- if (extra.tokenize) {
- if (!extra.range) {
- delete entry.range;
- }
- if (!extra.loc) {
- delete entry.loc;
- }
- if (extra.delegate) {
- entry = extra.delegate(entry);
- }
- }
- extra.tokens.push(entry);
- }
-
- return token;
- }
-
- function lex() {
- var token;
- scanning = true;
-
- lastIndex = index;
- lastLineNumber = lineNumber;
- lastLineStart = lineStart;
-
- skipComment();
-
- token = lookahead;
-
- startIndex = index;
- startLineNumber = lineNumber;
- startLineStart = lineStart;
-
- lookahead = (typeof extra.tokens !== 'undefined') ? collectToken() : advance();
- scanning = false;
- return token;
- }
-
- function peek() {
- scanning = true;
-
- skipComment();
-
- lastIndex = index;
- lastLineNumber = lineNumber;
- lastLineStart = lineStart;
-
- startIndex = index;
- startLineNumber = lineNumber;
- startLineStart = lineStart;
-
- lookahead = (typeof extra.tokens !== 'undefined') ? collectToken() : advance();
- scanning = false;
- }
-
- function Position() {
- this.line = startLineNumber;
- this.column = startIndex - startLineStart;
- }
-
- function SourceLocation() {
- this.start = new Position();
- this.end = null;
- }
-
- function WrappingSourceLocation(startToken) {
- this.start = {
- line: startToken.lineNumber,
- column: startToken.start - startToken.lineStart
- };
- this.end = null;
- }
-
- function Node() {
- if (extra.range) {
- this.range = [startIndex, 0];
- }
- if (extra.loc) {
- this.loc = new SourceLocation();
- }
- }
-
- function WrappingNode(startToken) {
- if (extra.range) {
- this.range = [startToken.start, 0];
- }
- if (extra.loc) {
- this.loc = new WrappingSourceLocation(startToken);
- }
- }
-
- WrappingNode.prototype = Node.prototype = {
-
- processComment: function () {
- var lastChild,
- innerComments,
- leadingComments,
- trailingComments,
- bottomRight = extra.bottomRightStack,
- i,
- comment,
- last = bottomRight[bottomRight.length - 1];
-
- if (this.type === Syntax.Program) {
- if (this.body.length > 0) {
- return;
- }
- }
- /**
- * patch innnerComments for properties empty block
- * `function a() {/** comments **\/}`
- */
-
- if (this.type === Syntax.BlockStatement && this.body.length === 0) {
- innerComments = [];
- for (i = extra.leadingComments.length - 1; i >= 0; --i) {
- comment = extra.leadingComments[i];
- if (this.range[1] >= comment.range[1]) {
- innerComments.unshift(comment);
- extra.leadingComments.splice(i, 1);
- extra.trailingComments.splice(i, 1);
- }
- }
- if (innerComments.length) {
- this.innerComments = innerComments;
- //bottomRight.push(this);
- return;
- }
- }
-
- if (extra.trailingComments.length > 0) {
- trailingComments = [];
- for (i = extra.trailingComments.length - 1; i >= 0; --i) {
- comment = extra.trailingComments[i];
- if (comment.range[0] >= this.range[1]) {
- trailingComments.unshift(comment);
- extra.trailingComments.splice(i, 1);
- }
- }
- extra.trailingComments = [];
- } else {
- if (last && last.trailingComments && last.trailingComments[0].range[0] >= this.range[1]) {
- trailingComments = last.trailingComments;
- delete last.trailingComments;
- }
- }
-
- // Eating the stack.
- while (last && last.range[0] >= this.range[0]) {
- lastChild = bottomRight.pop();
- last = bottomRight[bottomRight.length - 1];
- }
-
- if (lastChild) {
- if (lastChild.leadingComments) {
- leadingComments = [];
- for (i = lastChild.leadingComments.length - 1; i >= 0; --i) {
- comment = lastChild.leadingComments[i];
- if (comment.range[1] <= this.range[0]) {
- leadingComments.unshift(comment);
- lastChild.leadingComments.splice(i, 1);
- }
- }
-
- if (!lastChild.leadingComments.length) {
- lastChild.leadingComments = undefined;
- }
- }
- } else if (extra.leadingComments.length > 0) {
- leadingComments = [];
- for (i = extra.leadingComments.length - 1; i >= 0; --i) {
- comment = extra.leadingComments[i];
- if (comment.range[1] <= this.range[0]) {
- leadingComments.unshift(comment);
- extra.leadingComments.splice(i, 1);
- }
- }
- }
-
-
- if (leadingComments && leadingComments.length > 0) {
- this.leadingComments = leadingComments;
- }
- if (trailingComments && trailingComments.length > 0) {
- this.trailingComments = trailingComments;
- }
-
- bottomRight.push(this);
- },
-
- finish: function () {
- if (extra.range) {
- this.range[1] = lastIndex;
- }
- if (extra.loc) {
- this.loc.end = {
- line: lastLineNumber,
- column: lastIndex - lastLineStart
- };
- if (extra.source) {
- this.loc.source = extra.source;
- }
- }
-
- if (extra.attachComment) {
- this.processComment();
- }
- },
-
- finishArrayExpression: function (elements) {
- this.type = Syntax.ArrayExpression;
- this.elements = elements;
- this.finish();
- return this;
- },
-
- finishArrayPattern: function (elements) {
- this.type = Syntax.ArrayPattern;
- this.elements = elements;
- this.finish();
- return this;
- },
-
- finishArrowFunctionExpression: function (params, defaults, body, expression) {
- this.type = Syntax.ArrowFunctionExpression;
- this.id = null;
- this.params = params;
- this.defaults = defaults;
- this.body = body;
- this.generator = false;
- this.expression = expression;
- this.finish();
- return this;
- },
-
- finishAssignmentExpression: function (operator, left, right) {
- this.type = Syntax.AssignmentExpression;
- this.operator = operator;
- this.left = left;
- this.right = right;
- this.finish();
- return this;
- },
-
- finishAssignmentPattern: function (left, right) {
- this.type = Syntax.AssignmentPattern;
- this.left = left;
- this.right = right;
- this.finish();
- return this;
- },
-
- finishBinaryExpression: function (operator, left, right) {
- this.type = (operator === '||' || operator === '&&') ? Syntax.LogicalExpression : Syntax.BinaryExpression;
- this.operator = operator;
- this.left = left;
- this.right = right;
- this.finish();
- return this;
- },
-
- finishBlockStatement: function (body) {
- this.type = Syntax.BlockStatement;
- this.body = body;
- this.finish();
- return this;
- },
-
- finishBreakStatement: function (label) {
- this.type = Syntax.BreakStatement;
- this.label = label;
- this.finish();
- return this;
- },
-
- finishCallExpression: function (callee, args) {
- this.type = Syntax.CallExpression;
- this.callee = callee;
- this.arguments = args;
- this.finish();
- return this;
- },
-
- finishCatchClause: function (param, body) {
- this.type = Syntax.CatchClause;
- this.param = param;
- this.body = body;
- this.finish();
- return this;
- },
-
- finishClassBody: function (body) {
- this.type = Syntax.ClassBody;
- this.body = body;
- this.finish();
- return this;
- },
-
- finishClassDeclaration: function (id, superClass, body) {
- this.type = Syntax.ClassDeclaration;
- this.id = id;
- this.superClass = superClass;
- this.body = body;
- this.finish();
- return this;
- },
-
- finishClassExpression: function (id, superClass, body) {
- this.type = Syntax.ClassExpression;
- this.id = id;
- this.superClass = superClass;
- this.body = body;
- this.finish();
- return this;
- },
-
- finishConditionalExpression: function (test, consequent, alternate) {
- this.type = Syntax.ConditionalExpression;
- this.test = test;
- this.consequent = consequent;
- this.alternate = alternate;
- this.finish();
- return this;
- },
-
- finishContinueStatement: function (label) {
- this.type = Syntax.ContinueStatement;
- this.label = label;
- this.finish();
- return this;
- },
-
- finishDebuggerStatement: function () {
- this.type = Syntax.DebuggerStatement;
- this.finish();
- return this;
- },
-
- finishDoWhileStatement: function (body, test) {
- this.type = Syntax.DoWhileStatement;
- this.body = body;
- this.test = test;
- this.finish();
- return this;
- },
-
- finishEmptyStatement: function () {
- this.type = Syntax.EmptyStatement;
- this.finish();
- return this;
- },
-
- finishExpressionStatement: function (expression) {
- this.type = Syntax.ExpressionStatement;
- this.expression = expression;
- this.finish();
- return this;
- },
-
- finishForStatement: function (init, test, update, body) {
- this.type = Syntax.ForStatement;
- this.init = init;
- this.test = test;
- this.update = update;
- this.body = body;
- this.finish();
- return this;
- },
-
- finishForOfStatement: function (left, right, body) {
- this.type = Syntax.ForOfStatement;
- this.left = left;
- this.right = right;
- this.body = body;
- this.finish();
- return this;
- },
-
- finishForInStatement: function (left, right, body) {
- this.type = Syntax.ForInStatement;
- this.left = left;
- this.right = right;
- this.body = body;
- this.each = false;
- this.finish();
- return this;
- },
-
- finishFunctionDeclaration: function (id, params, defaults, body, generator) {
- this.type = Syntax.FunctionDeclaration;
- this.id = id;
- this.params = params;
- this.defaults = defaults;
- this.body = body;
- this.generator = generator;
- this.expression = false;
- this.finish();
- return this;
- },
-
- finishFunctionExpression: function (id, params, defaults, body, generator) {
- this.type = Syntax.FunctionExpression;
- this.id = id;
- this.params = params;
- this.defaults = defaults;
- this.body = body;
- this.generator = generator;
- this.expression = false;
- this.finish();
- return this;
- },
-
- finishIdentifier: function (name) {
- this.type = Syntax.Identifier;
- this.name = name;
- this.finish();
- return this;
- },
-
- finishIfStatement: function (test, consequent, alternate) {
- this.type = Syntax.IfStatement;
- this.test = test;
- this.consequent = consequent;
- this.alternate = alternate;
- this.finish();
- return this;
- },
-
- finishLabeledStatement: function (label, body) {
- this.type = Syntax.LabeledStatement;
- this.label = label;
- this.body = body;
- this.finish();
- return this;
- },
-
- finishLiteral: function (token) {
- this.type = Syntax.Literal;
- this.value = token.value;
- this.raw = source.slice(token.start, token.end);
- if (token.regex) {
- this.regex = token.regex;
- }
- this.finish();
- return this;
- },
-
- finishMemberExpression: function (accessor, object, property) {
- this.type = Syntax.MemberExpression;
- this.computed = accessor === '[';
- this.object = object;
- this.property = property;
- this.finish();
- return this;
- },
-
- finishMetaProperty: function (meta, property) {
- this.type = Syntax.MetaProperty;
- this.meta = meta;
- this.property = property;
- this.finish();
- return this;
- },
-
- finishNewExpression: function (callee, args) {
- this.type = Syntax.NewExpression;
- this.callee = callee;
- this.arguments = args;
- this.finish();
- return this;
- },
-
- finishObjectExpression: function (properties) {
- this.type = Syntax.ObjectExpression;
- this.properties = properties;
- this.finish();
- return this;
- },
-
- finishObjectPattern: function (properties) {
- this.type = Syntax.ObjectPattern;
- this.properties = properties;
- this.finish();
- return this;
- },
-
- finishPostfixExpression: function (operator, argument) {
- this.type = Syntax.UpdateExpression;
- this.operator = operator;
- this.argument = argument;
- this.prefix = false;
- this.finish();
- return this;
- },
-
- finishProgram: function (body, sourceType) {
- this.type = Syntax.Program;
- this.body = body;
- this.sourceType = sourceType;
- this.finish();
- return this;
- },
-
- finishProperty: function (kind, key, computed, value, method, shorthand) {
- this.type = Syntax.Property;
- this.key = key;
- this.computed = computed;
- this.value = value;
- this.kind = kind;
- this.method = method;
- this.shorthand = shorthand;
- this.finish();
- return this;
- },
-
- finishRestElement: function (argument) {
- this.type = Syntax.RestElement;
- this.argument = argument;
- this.finish();
- return this;
- },
-
- finishReturnStatement: function (argument) {
- this.type = Syntax.ReturnStatement;
- this.argument = argument;
- this.finish();
- return this;
- },
-
- finishSequenceExpression: function (expressions) {
- this.type = Syntax.SequenceExpression;
- this.expressions = expressions;
- this.finish();
- return this;
- },
-
- finishSpreadElement: function (argument) {
- this.type = Syntax.SpreadElement;
- this.argument = argument;
- this.finish();
- return this;
- },
-
- finishSwitchCase: function (test, consequent) {
- this.type = Syntax.SwitchCase;
- this.test = test;
- this.consequent = consequent;
- this.finish();
- return this;
- },
-
- finishSuper: function () {
- this.type = Syntax.Super;
- this.finish();
- return this;
- },
-
- finishSwitchStatement: function (discriminant, cases) {
- this.type = Syntax.SwitchStatement;
- this.discriminant = discriminant;
- this.cases = cases;
- this.finish();
- return this;
- },
-
- finishTaggedTemplateExpression: function (tag, quasi) {
- this.type = Syntax.TaggedTemplateExpression;
- this.tag = tag;
- this.quasi = quasi;
- this.finish();
- return this;
- },
-
- finishTemplateElement: function (value, tail) {
- this.type = Syntax.TemplateElement;
- this.value = value;
- this.tail = tail;
- this.finish();
- return this;
- },
-
- finishTemplateLiteral: function (quasis, expressions) {
- this.type = Syntax.TemplateLiteral;
- this.quasis = quasis;
- this.expressions = expressions;
- this.finish();
- return this;
- },
-
- finishThisExpression: function () {
- this.type = Syntax.ThisExpression;
- this.finish();
- return this;
- },
-
- finishThrowStatement: function (argument) {
- this.type = Syntax.ThrowStatement;
- this.argument = argument;
- this.finish();
- return this;
- },
-
- finishTryStatement: function (block, handler, finalizer) {
- this.type = Syntax.TryStatement;
- this.block = block;
- this.guardedHandlers = [];
- this.handlers = handler ? [handler] : [];
- this.handler = handler;
- this.finalizer = finalizer;
- this.finish();
- return this;
- },
-
- finishUnaryExpression: function (operator, argument) {
- this.type = (operator === '++' || operator === '--') ? Syntax.UpdateExpression : Syntax.UnaryExpression;
- this.operator = operator;
- this.argument = argument;
- this.prefix = true;
- this.finish();
- return this;
- },
-
- finishVariableDeclaration: function (declarations) {
- this.type = Syntax.VariableDeclaration;
- this.declarations = declarations;
- this.kind = 'var';
- this.finish();
- return this;
- },
-
- finishLexicalDeclaration: function (declarations, kind) {
- this.type = Syntax.VariableDeclaration;
- this.declarations = declarations;
- this.kind = kind;
- this.finish();
- return this;
- },
-
- finishVariableDeclarator: function (id, init) {
- this.type = Syntax.VariableDeclarator;
- this.id = id;
- this.init = init;
- this.finish();
- return this;
- },
-
- finishWhileStatement: function (test, body) {
- this.type = Syntax.WhileStatement;
- this.test = test;
- this.body = body;
- this.finish();
- return this;
- },
-
- finishWithStatement: function (object, body) {
- this.type = Syntax.WithStatement;
- this.object = object;
- this.body = body;
- this.finish();
- return this;
- },
-
- finishExportSpecifier: function (local, exported) {
- this.type = Syntax.ExportSpecifier;
- this.exported = exported || local;
- this.local = local;
- this.finish();
- return this;
- },
-
- finishImportDefaultSpecifier: function (local) {
- this.type = Syntax.ImportDefaultSpecifier;
- this.local = local;
- this.finish();
- return this;
- },
-
- finishImportNamespaceSpecifier: function (local) {
- this.type = Syntax.ImportNamespaceSpecifier;
- this.local = local;
- this.finish();
- return this;
- },
-
- finishExportNamedDeclaration: function (declaration, specifiers, src) {
- this.type = Syntax.ExportNamedDeclaration;
- this.declaration = declaration;
- this.specifiers = specifiers;
- this.source = src;
- this.finish();
- return this;
- },
-
- finishExportDefaultDeclaration: function (declaration) {
- this.type = Syntax.ExportDefaultDeclaration;
- this.declaration = declaration;
- this.finish();
- return this;
- },
-
- finishExportAllDeclaration: function (src) {
- this.type = Syntax.ExportAllDeclaration;
- this.source = src;
- this.finish();
- return this;
- },
-
- finishImportSpecifier: function (local, imported) {
- this.type = Syntax.ImportSpecifier;
- this.local = local || imported;
- this.imported = imported;
- this.finish();
- return this;
- },
-
- finishImportDeclaration: function (specifiers, src) {
- this.type = Syntax.ImportDeclaration;
- this.specifiers = specifiers;
- this.source = src;
- this.finish();
- return this;
- },
-
- finishYieldExpression: function (argument, delegate) {
- this.type = Syntax.YieldExpression;
- this.argument = argument;
- this.delegate = delegate;
- this.finish();
- return this;
- }
- };
-
-
- function recordError(error) {
- var e, existing;
-
- for (e = 0; e < extra.errors.length; e++) {
- existing = extra.errors[e];
- // Prevent duplicated error.
- /* istanbul ignore next */
- if (existing.index === error.index && existing.message === error.message) {
- return;
- }
- }
-
- extra.errors.push(error);
- }
-
- function constructError(msg, column) {
- var error = new Error(msg);
- try {
- throw error;
- } catch (base) {
- /* istanbul ignore else */
- if (Object.create && Object.defineProperty) {
- error = Object.create(base);
- Object.defineProperty(error, 'column', { value: column });
- }
- } finally {
- return error;
- }
- }
-
- function createError(line, pos, description) {
- var msg, column, error;
-
- msg = 'Line ' + line + ': ' + description;
- column = pos - (scanning ? lineStart : lastLineStart) + 1;
- error = constructError(msg, column);
- error.lineNumber = line;
- error.description = description;
- error.index = pos;
- return error;
- }
-
- // Throw an exception
-
- function throwError(messageFormat) {
- var args, msg;
-
- args = Array.prototype.slice.call(arguments, 1);
- msg = messageFormat.replace(/%(\d)/g,
- function (whole, idx) {
- assert(idx < args.length, 'Message reference must be in range');
- return args[idx];
- }
- );
-
- throw createError(lastLineNumber, lastIndex, msg);
- }
-
- function tolerateError(messageFormat) {
- var args, msg, error;
-
- args = Array.prototype.slice.call(arguments, 1);
- /* istanbul ignore next */
- msg = messageFormat.replace(/%(\d)/g,
- function (whole, idx) {
- assert(idx < args.length, 'Message reference must be in range');
- return args[idx];
- }
- );
-
- error = createError(lineNumber, lastIndex, msg);
- if (extra.errors) {
- recordError(error);
- } else {
- throw error;
- }
- }
-
- // Throw an exception because of the token.
-
- function unexpectedTokenError(token, message) {
- var value, msg = message || Messages.UnexpectedToken;
-
- if (token) {
- if (!message) {
- msg = (token.type === Token.EOF) ? Messages.UnexpectedEOS :
- (token.type === Token.Identifier) ? Messages.UnexpectedIdentifier :
- (token.type === Token.NumericLiteral) ? Messages.UnexpectedNumber :
- (token.type === Token.StringLiteral) ? Messages.UnexpectedString :
- (token.type === Token.Template) ? Messages.UnexpectedTemplate :
- Messages.UnexpectedToken;
-
- if (token.type === Token.Keyword) {
- if (isFutureReservedWord(token.value)) {
- msg = Messages.UnexpectedReserved;
- } else if (strict && isStrictModeReservedWord(token.value)) {
- msg = Messages.StrictReservedWord;
- }
- }
- }
-
- value = (token.type === Token.Template) ? token.value.raw : token.value;
- } else {
- value = 'ILLEGAL';
- }
-
- msg = msg.replace('%0', value);
-
- return (token && typeof token.lineNumber === 'number') ?
- createError(token.lineNumber, token.start, msg) :
- createError(scanning ? lineNumber : lastLineNumber, scanning ? index : lastIndex, msg);
- }
-
- function throwUnexpectedToken(token, message) {
- throw unexpectedTokenError(token, message);
- }
-
- function tolerateUnexpectedToken(token, message) {
- var error = unexpectedTokenError(token, message);
- if (extra.errors) {
- recordError(error);
- } else {
- throw error;
- }
- }
-
- // Expect the next token to match the specified punctuator.
- // If not, an exception will be thrown.
-
- function expect(value) {
- var token = lex();
- if (token.type !== Token.Punctuator || token.value !== value) {
- throwUnexpectedToken(token);
- }
- }
-
- /**
- * @name expectCommaSeparator
- * @description Quietly expect a comma when in tolerant mode, otherwise delegates
- * to <code>expect(value)</code>
- * @since 2.0
- */
- function expectCommaSeparator() {
- var token;
-
- if (extra.errors) {
- token = lookahead;
- if (token.type === Token.Punctuator && token.value === ',') {
- lex();
- } else if (token.type === Token.Punctuator && token.value === ';') {
- lex();
- tolerateUnexpectedToken(token);
- } else {
- tolerateUnexpectedToken(token, Messages.UnexpectedToken);
- }
- } else {
- expect(',');
- }
- }
-
- // Expect the next token to match the specified keyword.
- // If not, an exception will be thrown.
-
- function expectKeyword(keyword) {
- var token = lex();
- if (token.type !== Token.Keyword || token.value !== keyword) {
- throwUnexpectedToken(token);
- }
- }
-
- // Return true if the next token matches the specified punctuator.
-
- function match(value) {
- return lookahead.type === Token.Punctuator && lookahead.value === value;
- }
-
- // Return true if the next token matches the specified keyword
-
- function matchKeyword(keyword) {
- return lookahead.type === Token.Keyword && lookahead.value === keyword;
- }
-
- // Return true if the next token matches the specified contextual keyword
- // (where an identifier is sometimes a keyword depending on the context)
-
- function matchContextualKeyword(keyword) {
- return lookahead.type === Token.Identifier && lookahead.value === keyword;
- }
-
- // Return true if the next token is an assignment operator
-
- function matchAssign() {
- var op;
-
- if (lookahead.type !== Token.Punctuator) {
- return false;
- }
- op = lookahead.value;
- return op === '=' ||
- op === '*=' ||
- op === '/=' ||
- op === '%=' ||
- op === '+=' ||
- op === '-=' ||
- op === '<<=' ||
- op === '>>=' ||
- op === '>>>=' ||
- op === '&=' ||
- op === '^=' ||
- op === '|=';
- }
-
- function consumeSemicolon() {
- // Catch the very common case first: immediately a semicolon (U+003B).
- if (source.charCodeAt(startIndex) === 0x3B || match(';')) {
- lex();
- return;
- }
-
- if (hasLineTerminator) {
- return;
- }
-
- // FIXME(ikarienator): this is seemingly an issue in the previous location info convention.
- lastIndex = startIndex;
- lastLineNumber = startLineNumber;
- lastLineStart = startLineStart;
-
- if (lookahead.type !== Token.EOF && !match('}')) {
- throwUnexpectedToken(lookahead);
- }
- }
-
- // Cover grammar support.
- //
- // When an assignment expression position starts with an left parenthesis, the determination of the type
- // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead)
- // or the first comma. This situation also defers the determination of all the expressions nested in the pair.
- //
- // There are three productions that can be parsed in a parentheses pair that needs to be determined
- // after the outermost pair is closed. They are:
- //
- // 1. AssignmentExpression
- // 2. BindingElements
- // 3. AssignmentTargets
- //
- // In order to avoid exponential backtracking, we use two flags to denote if the production can be
- // binding element or assignment target.
- //
- // The three productions have the relationship:
- //
- // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression
- //
- // with a single exception that CoverInitializedName when used directly in an Expression, generates
- // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the
- // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair.
- //
- // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not
- // effect the current flags. This means the production the parser parses is only used as an expression. Therefore
- // the CoverInitializedName check is conducted.
- //
- // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates
- // the flags outside of the parser. This means the production the parser parses is used as a part of a potential
- // pattern. The CoverInitializedName check is deferred.
- function isolateCoverGrammar(parser) {
- var oldIsBindingElement = isBindingElement,
- oldIsAssignmentTarget = isAssignmentTarget,
- oldFirstCoverInitializedNameError = firstCoverInitializedNameError,
- result;
- isBindingElement = true;
- isAssignmentTarget = true;
- firstCoverInitializedNameError = null;
- result = parser();
- if (firstCoverInitializedNameError !== null) {
- throwUnexpectedToken(firstCoverInitializedNameError);
- }
- isBindingElement = oldIsBindingElement;
- isAssignmentTarget = oldIsAssignmentTarget;
- firstCoverInitializedNameError = oldFirstCoverInitializedNameError;
- return result;
- }
-
- function inheritCoverGrammar(parser) {
- var oldIsBindingElement = isBindingElement,
- oldIsAssignmentTarget = isAssignmentTarget,
- oldFirstCoverInitializedNameError = firstCoverInitializedNameError,
- result;
- isBindingElement = true;
- isAssignmentTarget = true;
- firstCoverInitializedNameError = null;
- result = parser();
- isBindingElement = isBindingElement && oldIsBindingElement;
- isAssignmentTarget = isAssignmentTarget && oldIsAssignmentTarget;
- firstCoverInitializedNameError = oldFirstCoverInitializedNameError || firstCoverInitializedNameError;
- return result;
- }
-
- // ECMA-262 13.3.3 Destructuring Binding Patterns
-
- function parseArrayPattern(params, kind) {
- var node = new Node(), elements = [], rest, restNode;
- expect('[');
-
- while (!match(']')) {
- if (match(',')) {
- lex();
- elements.push(null);
- } else {
- if (match('...')) {
- restNode = new Node();
- lex();
- params.push(lookahead);
- rest = parseVariableIdentifier(kind);
- elements.push(restNode.finishRestElement(rest));
- break;
- } else {
- elements.push(parsePatternWithDefault(params, kind));
- }
- if (!match(']')) {
- expect(',');
- }
- }
-
- }
-
- expect(']');
-
- return node.finishArrayPattern(elements);
- }
-
- function parsePropertyPattern(params, kind) {
- var node = new Node(), key, keyToken, computed = match('['), init;
- if (lookahead.type === Token.Identifier) {
- keyToken = lookahead;
- key = parseVariableIdentifier();
- if (match('=')) {
- params.push(keyToken);
- lex();
- init = parseAssignmentExpression();
-
- return node.finishProperty(
- 'init', key, false,
- new WrappingNode(keyToken).finishAssignmentPattern(key, init), false, true);
- } else if (!match(':')) {
- params.push(keyToken);
- return node.finishProperty('init', key, false, key, false, true);
- }
- } else {
- key = parseObjectPropertyKey();
- }
- expect(':');
- init = parsePatternWithDefault(params, kind);
- return node.finishProperty('init', key, computed, init, false, false);
- }
-
- function parseObjectPattern(params, kind) {
- var node = new Node(), properties = [];
-
- expect('{');
-
- while (!match('}')) {
- properties.push(parsePropertyPattern(params, kind));
- if (!match('}')) {
- expect(',');
- }
- }
-
- lex();
-
- return node.finishObjectPattern(properties);
- }
-
- function parsePattern(params, kind) {
- if (match('[')) {
- return parseArrayPattern(params, kind);
- } else if (match('{')) {
- return parseObjectPattern(params, kind);
- } else if (matchKeyword('let')) {
- if (kind === 'const' || kind === 'let') {
- tolerateUnexpectedToken(lookahead, Messages.UnexpectedToken);
- }
- }
-
- params.push(lookahead);
- return parseVariableIdentifier(kind);
- }
-
- function parsePatternWithDefault(params, kind) {
- var startToken = lookahead, pattern, previousAllowYield, right;
- pattern = parsePattern(params, kind);
- if (match('=')) {
- lex();
- previousAllowYield = state.allowYield;
- state.allowYield = true;
- right = isolateCoverGrammar(parseAssignmentExpression);
- state.allowYield = previousAllowYield;
- pattern = new WrappingNode(startToken).finishAssignmentPattern(pattern, right);
- }
- return pattern;
- }
-
- // ECMA-262 12.2.5 Array Initializer
-
- function parseArrayInitializer() {
- var elements = [], node = new Node(), restSpread;
-
- expect('[');
-
- while (!match(']')) {
- if (match(',')) {
- lex();
- elements.push(null);
- } else if (match('...')) {
- restSpread = new Node();
- lex();
- restSpread.finishSpreadElement(inheritCoverGrammar(parseAssignmentExpression));
-
- if (!match(']')) {
- isAssignmentTarget = isBindingElement = false;
- expect(',');
- }
- elements.push(restSpread);
- } else {
- elements.push(inheritCoverGrammar(parseAssignmentExpression));
-
- if (!match(']')) {
- expect(',');
- }
- }
- }
-
- lex();
-
- return node.finishArrayExpression(elements);
- }
-
- // ECMA-262 12.2.6 Object Initializer
-
- function parsePropertyFunction(node, paramInfo, isGenerator) {
- var previousStrict, body;
-
- isAssignmentTarget = isBindingElement = false;
-
- previousStrict = strict;
- body = isolateCoverGrammar(parseFunctionSourceElements);
-
- if (strict && paramInfo.firstRestricted) {
- tolerateUnexpectedToken(paramInfo.firstRestricted, paramInfo.message);
- }
- if (strict && paramInfo.stricted) {
- tolerateUnexpectedToken(paramInfo.stricted, paramInfo.message);
- }
-
- strict = previousStrict;
- return node.finishFunctionExpression(null, paramInfo.params, paramInfo.defaults, body, isGenerator);
- }
-
- function parsePropertyMethodFunction() {
- var params, method, node = new Node(),
- previousAllowYield = state.allowYield;
-
- state.allowYield = false;
- params = parseParams();
- state.allowYield = previousAllowYield;
-
- state.allowYield = false;
- method = parsePropertyFunction(node, params, false);
- state.allowYield = previousAllowYield;
-
- return method;
- }
-
- function parseObjectPropertyKey() {
- var token, node = new Node(), expr;
-
- token = lex();
-
- // Note: This function is called only from parseObjectProperty(), where
- // EOF and Punctuator tokens are already filtered out.
-
- switch (token.type) {
- case Token.StringLiteral:
- case Token.NumericLiteral:
- if (strict && token.octal) {
- tolerateUnexpectedToken(token, Messages.StrictOctalLiteral);
- }
- return node.finishLiteral(token);
- case Token.Identifier:
- case Token.BooleanLiteral:
- case Token.NullLiteral:
- case Token.Keyword:
- return node.finishIdentifier(token.value);
- case Token.Punctuator:
- if (token.value === '[') {
- expr = isolateCoverGrammar(parseAssignmentExpression);
- expect(']');
- return expr;
- }
- break;
- }
- throwUnexpectedToken(token);
- }
-
- function lookaheadPropertyName() {
- switch (lookahead.type) {
- case Token.Identifier:
- case Token.StringLiteral:
- case Token.BooleanLiteral:
- case Token.NullLiteral:
- case Token.NumericLiteral:
- case Token.Keyword:
- return true;
- case Token.Punctuator:
- return lookahead.value === '[';
- }
- return false;
- }
-
- // This function is to try to parse a MethodDefinition as defined in 14.3. But in the case of object literals,
- // it might be called at a position where there is in fact a short hand identifier pattern or a data property.
- // This can only be determined after we consumed up to the left parentheses.
- //
- // In order to avoid back tracking, it returns `null` if the position is not a MethodDefinition and the caller
- // is responsible to visit other options.
- function tryParseMethodDefinition(token, key, computed, node) {
- var value, options, methodNode, params,
- previousAllowYield = state.allowYield;
-
- if (token.type === Token.Identifier) {
- // check for `get` and `set`;
-
- if (token.value === 'get' && lookaheadPropertyName()) {
- computed = match('[');
- key = parseObjectPropertyKey();
- methodNode = new Node();
- expect('(');
- expect(')');
-
- state.allowYield = false;
- value = parsePropertyFunction(methodNode, {
- params: [],
- defaults: [],
- stricted: null,
- firstRestricted: null,
- message: null
- }, false);
- state.allowYield = previousAllowYield;
-
- return node.finishProperty('get', key, computed, value, false, false);
- } else if (token.value === 'set' && lookaheadPropertyName()) {
- computed = match('[');
- key = parseObjectPropertyKey();
- methodNode = new Node();
- expect('(');
-
- options = {
- params: [],
- defaultCount: 0,
- defaults: [],
- firstRestricted: null,
- paramSet: {}
- };
- if (match(')')) {
- tolerateUnexpectedToken(lookahead);
- } else {
- state.allowYield = false;
- parseParam(options);
- state.allowYield = previousAllowYield;
- if (options.defaultCount === 0) {
- options.defaults = [];
- }
- }
- expect(')');
-
- state.allowYield = false;
- value = parsePropertyFunction(methodNode, options, false);
- state.allowYield = previousAllowYield;
-
- return node.finishProperty('set', key, computed, value, false, false);
- }
- } else if (token.type === Token.Punctuator && token.value === '*' && lookaheadPropertyName()) {
- computed = match('[');
- key = parseObjectPropertyKey();
- methodNode = new Node();
-
- state.allowYield = true;
- params = parseParams();
- state.allowYield = previousAllowYield;
-
- state.allowYield = false;
- value = parsePropertyFunction(methodNode, params, true);
- state.allowYield = previousAllowYield;
-
- return node.finishProperty('init', key, computed, value, true, false);
- }
-
- if (key && match('(')) {
- value = parsePropertyMethodFunction();
- return node.finishProperty('init', key, computed, value, true, false);
- }
-
- // Not a MethodDefinition.
- return null;
- }
-
- function parseObjectProperty(hasProto) {
- var token = lookahead, node = new Node(), computed, key, maybeMethod, proto, value;
-
- computed = match('[');
- if (match('*')) {
- lex();
- } else {
- key = parseObjectPropertyKey();
- }
- maybeMethod = tryParseMethodDefinition(token, key, computed, node);
- if (maybeMethod) {
- return maybeMethod;
- }
-
- if (!key) {
- throwUnexpectedToken(lookahead);
- }
-
- // Check for duplicated __proto__
- if (!computed) {
- proto = (key.type === Syntax.Identifier && key.name === '__proto__') ||
- (key.type === Syntax.Literal && key.value === '__proto__');
- if (hasProto.value && proto) {
- tolerateError(Messages.DuplicateProtoProperty);
- }
- hasProto.value |= proto;
- }
-
- if (match(':')) {
- lex();
- value = inheritCoverGrammar(parseAssignmentExpression);
- return node.finishProperty('init', key, computed, value, false, false);
- }
-
- if (token.type === Token.Identifier) {
- if (match('=')) {
- firstCoverInitializedNameError = lookahead;
- lex();
- value = isolateCoverGrammar(parseAssignmentExpression);
- return node.finishProperty('init', key, computed,
- new WrappingNode(token).finishAssignmentPattern(key, value), false, true);
- }
- return node.finishProperty('init', key, computed, key, false, true);
- }
-
- throwUnexpectedToken(lookahead);
- }
-
- function parseObjectInitializer() {
- var properties = [], hasProto = {value: false}, node = new Node();
-
- expect('{');
-
- while (!match('}')) {
- properties.push(parseObjectProperty(hasProto));
-
- if (!match('}')) {
- expectCommaSeparator();
- }
- }
-
- expect('}');
-
- return node.finishObjectExpression(properties);
- }
-
- function reinterpretExpressionAsPattern(expr) {
- var i;
- switch (expr.type) {
- case Syntax.Identifier:
- case Syntax.MemberExpression:
- case Syntax.RestElement:
- case Syntax.AssignmentPattern:
- break;
- case Syntax.SpreadElement:
- expr.type = Syntax.RestElement;
- reinterpretExpressionAsPattern(expr.argument);
- break;
- case Syntax.ArrayExpression:
- expr.type = Syntax.ArrayPattern;
- for (i = 0; i < expr.elements.length; i++) {
- if (expr.elements[i] !== null) {
- reinterpretExpressionAsPattern(expr.elements[i]);
- }
- }
- break;
- case Syntax.ObjectExpression:
- expr.type = Syntax.ObjectPattern;
- for (i = 0; i < expr.properties.length; i++) {
- reinterpretExpressionAsPattern(expr.properties[i].value);
- }
- break;
- case Syntax.AssignmentExpression:
- expr.type = Syntax.AssignmentPattern;
- reinterpretExpressionAsPattern(expr.left);
- break;
- default:
- // Allow other node type for tolerant parsing.
- break;
- }
- }
-
- // ECMA-262 12.2.9 Template Literals
-
- function parseTemplateElement(option) {
- var node, token;
-
- if (lookahead.type !== Token.Template || (option.head && !lookahead.head)) {
- throwUnexpectedToken();
- }
-
- node = new Node();
- token = lex();
-
- return node.finishTemplateElement({ raw: token.value.raw, cooked: token.value.cooked }, token.tail);
- }
-
- function parseTemplateLiteral() {
- var quasi, quasis, expressions, node = new Node();
-
- quasi = parseTemplateElement({ head: true });
- quasis = [quasi];
- expressions = [];
-
- while (!quasi.tail) {
- expressions.push(parseExpression());
- quasi = parseTemplateElement({ head: false });
- quasis.push(quasi);
- }
-
- return node.finishTemplateLiteral(quasis, expressions);
- }
-
- // ECMA-262 12.2.10 The Grouping Operator
-
- function parseGroupExpression() {
- var expr, expressions, startToken, i, params = [];
-
- expect('(');
-
- if (match(')')) {
- lex();
- if (!match('=>')) {
- expect('=>');
- }
- return {
- type: PlaceHolders.ArrowParameterPlaceHolder,
- params: [],
- rawParams: []
- };
- }
-
- startToken = lookahead;
- if (match('...')) {
- expr = parseRestElement(params);
- expect(')');
- if (!match('=>')) {
- expect('=>');
- }
- return {
- type: PlaceHolders.ArrowParameterPlaceHolder,
- params: [expr]
- };
- }
-
- isBindingElement = true;
- expr = inheritCoverGrammar(parseAssignmentExpression);
-
- if (match(',')) {
- isAssignmentTarget = false;
- expressions = [expr];
-
- while (startIndex < length) {
- if (!match(',')) {
- break;
- }
- lex();
-
- if (match('...')) {
- if (!isBindingElement) {
- throwUnexpectedToken(lookahead);
- }
- expressions.push(parseRestElement(params));
- expect(')');
- if (!match('=>')) {
- expect('=>');
- }
- isBindingElement = false;
- for (i = 0; i < expressions.length; i++) {
- reinterpretExpressionAsPattern(expressions[i]);
- }
- return {
- type: PlaceHolders.ArrowParameterPlaceHolder,
- params: expressions
- };
- }
-
- expressions.push(inheritCoverGrammar(parseAssignmentExpression));
- }
-
- expr = new WrappingNode(startToken).finishSequenceExpression(expressions);
- }
-
-
- expect(')');
-
- if (match('=>')) {
- if (expr.type === Syntax.Identifier && expr.name === 'yield') {
- return {
- type: PlaceHolders.ArrowParameterPlaceHolder,
- params: [expr]
- };
- }
-
- if (!isBindingElement) {
- throwUnexpectedToken(lookahead);
- }
-
- if (expr.type === Syntax.SequenceExpression) {
- for (i = 0; i < expr.expressions.length; i++) {
- reinterpretExpressionAsPattern(expr.expressions[i]);
- }
- } else {
- reinterpretExpressionAsPattern(expr);
- }
-
- expr = {
- type: PlaceHolders.ArrowParameterPlaceHolder,
- params: expr.type === Syntax.SequenceExpression ? expr.expressions : [expr]
- };
- }
- isBindingElement = false;
- return expr;
- }
-
-
- // ECMA-262 12.2 Primary Expressions
-
- function parsePrimaryExpression() {
- var type, token, expr, node;
-
- if (match('(')) {
- isBindingElement = false;
- return inheritCoverGrammar(parseGroupExpression);
- }
-
- if (match('[')) {
- return inheritCoverGrammar(parseArrayInitializer);
- }
-
- if (match('{')) {
- return inheritCoverGrammar(parseObjectInitializer);
- }
-
- type = lookahead.type;
- node = new Node();
-
- if (type === Token.Identifier) {
- if (state.sourceType === 'module' && lookahead.value === 'await') {
- tolerateUnexpectedToken(lookahead);
- }
- expr = node.finishIdentifier(lex().value);
- } else if (type === Token.StringLiteral || type === Token.NumericLiteral) {
- isAssignmentTarget = isBindingElement = false;
- if (strict && lookahead.octal) {
- tolerateUnexpectedToken(lookahead, Messages.StrictOctalLiteral);
- }
- expr = node.finishLiteral(lex());
- } else if (type === Token.Keyword) {
- if (!strict && state.allowYield && matchKeyword('yield')) {
- return parseNonComputedProperty();
- }
- if (!strict && matchKeyword('let')) {
- return node.finishIdentifier(lex().value);
- }
- isAssignmentTarget = isBindingElement = false;
- if (matchKeyword('function')) {
- return parseFunctionExpression();
- }
- if (matchKeyword('this')) {
- lex();
- return node.finishThisExpression();
- }
- if (matchKeyword('class')) {
- return parseClassExpression();
- }
- throwUnexpectedToken(lex());
- } else if (type === Token.BooleanLiteral) {
- isAssignmentTarget = isBindingElement = false;
- token = lex();
- token.value = (token.value === 'true');
- expr = node.finishLiteral(token);
- } else if (type === Token.NullLiteral) {
- isAssignmentTarget = isBindingElement = false;
- token = lex();
- token.value = null;
- expr = node.finishLiteral(token);
- } else if (match('/') || match('/=')) {
- isAssignmentTarget = isBindingElement = false;
- index = startIndex;
-
- if (typeof extra.tokens !== 'undefined') {
- token = collectRegex();
- } else {
- token = scanRegExp();
- }
- lex();
- expr = node.finishLiteral(token);
- } else if (type === Token.Template) {
- expr = parseTemplateLiteral();
- } else {
- throwUnexpectedToken(lex());
- }
-
- return expr;
- }
-
- // ECMA-262 12.3 Left-Hand-Side Expressions
-
- function parseArguments() {
- var args = [], expr;
-
- expect('(');
-
- if (!match(')')) {
- while (startIndex < length) {
- if (match('...')) {
- expr = new Node();
- lex();
- expr.finishSpreadElement(isolateCoverGrammar(parseAssignmentExpression));
- } else {
- expr = isolateCoverGrammar(parseAssignmentExpression);
- }
- args.push(expr);
- if (match(')')) {
- break;
- }
- expectCommaSeparator();
- }
- }
-
- expect(')');
-
- return args;
- }
-
- function parseNonComputedProperty() {
- var token, node = new Node();
-
- token = lex();
-
- if (!isIdentifierName(token)) {
- throwUnexpectedToken(token);
- }
-
- return node.finishIdentifier(token.value);
- }
-
- function parseNonComputedMember() {
- expect('.');
-
- return parseNonComputedProperty();
- }
-
- function parseComputedMember() {
- var expr;
-
- expect('[');
-
- expr = isolateCoverGrammar(parseExpression);
-
- expect(']');
-
- return expr;
- }
-
- // ECMA-262 12.3.3 The new Operator
-
- function parseNewExpression() {
- var callee, args, node = new Node();
-
- expectKeyword('new');
-
- if (match('.')) {
- lex();
- if (lookahead.type === Token.Identifier && lookahead.value === 'target') {
- if (state.inFunctionBody) {
- lex();
- return node.finishMetaProperty('new', 'target');
- }
- }
- throwUnexpectedToken(lookahead);
- }
-
- callee = isolateCoverGrammar(parseLeftHandSideExpression);
- args = match('(') ? parseArguments() : [];
-
- isAssignmentTarget = isBindingElement = false;
-
- return node.finishNewExpression(callee, args);
- }
-
- // ECMA-262 12.3.4 Function Calls
-
- function parseLeftHandSideExpressionAllowCall() {
- var quasi, expr, args, property, startToken, previousAllowIn = state.allowIn;
-
- startToken = lookahead;
- state.allowIn = true;
-
- if (matchKeyword('super') && state.inFunctionBody) {
- expr = new Node();
- lex();
- expr = expr.finishSuper();
- if (!match('(') && !match('.') && !match('[')) {
- throwUnexpectedToken(lookahead);
- }
- } else {
- expr = inheritCoverGrammar(matchKeyword('new') ? parseNewExpression : parsePrimaryExpression);
- }
-
- for (;;) {
- if (match('.')) {
- isBindingElement = false;
- isAssignmentTarget = true;
- property = parseNonComputedMember();
- expr = new WrappingNode(startToken).finishMemberExpression('.', expr, property);
- } else if (match('(')) {
- isBindingElement = false;
- isAssignmentTarget = false;
- args = parseArguments();
- expr = new WrappingNode(startToken).finishCallExpression(expr, args);
- } else if (match('[')) {
- isBindingElement = false;
- isAssignmentTarget = true;
- property = parseComputedMember();
- expr = new WrappingNode(startToken).finishMemberExpression('[', expr, property);
- } else if (lookahead.type === Token.Template && lookahead.head) {
- quasi = parseTemplateLiteral();
- expr = new WrappingNode(startToken).finishTaggedTemplateExpression(expr, quasi);
- } else {
- break;
- }
- }
- state.allowIn = previousAllowIn;
-
- return expr;
- }
-
- // ECMA-262 12.3 Left-Hand-Side Expressions
-
- function parseLeftHandSideExpression() {
- var quasi, expr, property, startToken;
- assert(state.allowIn, 'callee of new expression always allow in keyword.');
-
- startToken = lookahead;
-
- if (matchKeyword('super') && state.inFunctionBody) {
- expr = new Node();
- lex();
- expr = expr.finishSuper();
- if (!match('[') && !match('.')) {
- throwUnexpectedToken(lookahead);
- }
- } else {
- expr = inheritCoverGrammar(matchKeyword('new') ? parseNewExpression : parsePrimaryExpression);
- }
-
- for (;;) {
- if (match('[')) {
- isBindingElement = false;
- isAssignmentTarget = true;
- property = parseComputedMember();
- expr = new WrappingNode(startToken).finishMemberExpression('[', expr, property);
- } else if (match('.')) {
- isBindingElement = false;
- isAssignmentTarget = true;
- property = parseNonComputedMember();
- expr = new WrappingNode(startToken).finishMemberExpression('.', expr, property);
- } else if (lookahead.type === Token.Template && lookahead.head) {
- quasi = parseTemplateLiteral();
- expr = new WrappingNode(startToken).finishTaggedTemplateExpression(expr, quasi);
- } else {
- break;
- }
- }
- return expr;
- }
-
- // ECMA-262 12.4 Postfix Expressions
-
- function parsePostfixExpression() {
- var expr, token, startToken = lookahead;
-
- expr = inheritCoverGrammar(parseLeftHandSideExpressionAllowCall);
-
- if (!hasLineTerminator && lookahead.type === Token.Punctuator) {
- if (match('++') || match('--')) {
- // ECMA-262 11.3.1, 11.3.2
- if (strict && expr.type === Syntax.Identifier && isRestrictedWord(expr.name)) {
- tolerateError(Messages.StrictLHSPostfix);
- }
-
- if (!isAssignmentTarget) {
- tolerateError(Messages.InvalidLHSInAssignment);
- }
-
- isAssignmentTarget = isBindingElement = false;
-
- token = lex();
- expr = new WrappingNode(startToken).finishPostfixExpression(token.value, expr);
- }
- }
-
- return expr;
- }
-
- // ECMA-262 12.5 Unary Operators
-
- function parseUnaryExpression() {
- var token, expr, startToken;
-
- if (lookahead.type !== Token.Punctuator && lookahead.type !== Token.Keyword) {
- expr = parsePostfixExpression();
- } else if (match('++') || match('--')) {
- startToken = lookahead;
- token = lex();
- expr = inheritCoverGrammar(parseUnaryExpression);
- // ECMA-262 11.4.4, 11.4.5
- if (strict && expr.type === Syntax.Identifier && isRestrictedWord(expr.name)) {
- tolerateError(Messages.StrictLHSPrefix);
- }
-
- if (!isAssignmentTarget) {
- tolerateError(Messages.InvalidLHSInAssignment);
- }
- expr = new WrappingNode(startToken).finishUnaryExpression(token.value, expr);
- isAssignmentTarget = isBindingElement = false;
- } else if (match('+') || match('-') || match('~') || match('!')) {
- startToken = lookahead;
- token = lex();
- expr = inheritCoverGrammar(parseUnaryExpression);
- expr = new WrappingNode(startToken).finishUnaryExpression(token.value, expr);
- isAssignmentTarget = isBindingElement = false;
- } else if (matchKeyword('delete') || matchKeyword('void') || matchKeyword('typeof')) {
- startToken = lookahead;
- token = lex();
- expr = inheritCoverGrammar(parseUnaryExpression);
- expr = new WrappingNode(startToken).finishUnaryExpression(token.value, expr);
- if (strict && expr.operator === 'delete' && expr.argument.type === Syntax.Identifier) {
- tolerateError(Messages.StrictDelete);
- }
- isAssignmentTarget = isBindingElement = false;
- } else {
- expr = parsePostfixExpression();
- }
-
- return expr;
- }
-
- function binaryPrecedence(token, allowIn) {
- var prec = 0;
-
- if (token.type !== Token.Punctuator && token.type !== Token.Keyword) {
- return 0;
- }
-
- switch (token.value) {
- case '||':
- prec = 1;
- break;
-
- case '&&':
- prec = 2;
- break;
-
- case '|':
- prec = 3;
- break;
-
- case '^':
- prec = 4;
- break;
-
- case '&':
- prec = 5;
- break;
-
- case '==':
- case '!=':
- case '===':
- case '!==':
- prec = 6;
- break;
-
- case '<':
- case '>':
- case '<=':
- case '>=':
- case 'instanceof':
- prec = 7;
- break;
-
- case 'in':
- prec = allowIn ? 7 : 0;
- break;
-
- case '<<':
- case '>>':
- case '>>>':
- prec = 8;
- break;
-
- case '+':
- case '-':
- prec = 9;
- break;
-
- case '*':
- case '/':
- case '%':
- prec = 11;
- break;
-
- default:
- break;
- }
-
- return prec;
- }
-
- // ECMA-262 12.6 Multiplicative Operators
- // ECMA-262 12.7 Additive Operators
- // ECMA-262 12.8 Bitwise Shift Operators
- // ECMA-262 12.9 Relational Operators
- // ECMA-262 12.10 Equality Operators
- // ECMA-262 12.11 Binary Bitwise Operators
- // ECMA-262 12.12 Binary Logical Operators
-
- function parseBinaryExpression() {
- var marker, markers, expr, token, prec, stack, right, operator, left, i;
-
- marker = lookahead;
- left = inheritCoverGrammar(parseUnaryExpression);
-
- token = lookahead;
- prec = binaryPrecedence(token, state.allowIn);
- if (prec === 0) {
- return left;
- }
- isAssignmentTarget = isBindingElement = false;
- token.prec = prec;
- lex();
-
- markers = [marker, lookahead];
- right = isolateCoverGrammar(parseUnaryExpression);
-
- stack = [left, token, right];
-
- while ((prec = binaryPrecedence(lookahead, state.allowIn)) > 0) {
-
- // Reduce: make a binary expression from the three topmost entries.
- while ((stack.length > 2) && (prec <= stack[stack.length - 2].prec)) {
- right = stack.pop();
- operator = stack.pop().value;
- left = stack.pop();
- markers.pop();
- expr = new WrappingNode(markers[markers.length - 1]).finishBinaryExpression(operator, left, right);
- stack.push(expr);
- }
-
- // Shift.
- token = lex();
- token.prec = prec;
- stack.push(token);
- markers.push(lookahead);
- expr = isolateCoverGrammar(parseUnaryExpression);
- stack.push(expr);
- }
-
- // Final reduce to clean-up the stack.
- i = stack.length - 1;
- expr = stack[i];
- markers.pop();
- while (i > 1) {
- expr = new WrappingNode(markers.pop()).finishBinaryExpression(stack[i - 1].value, stack[i - 2], expr);
- i -= 2;
- }
-
- return expr;
- }
-
-
- // ECMA-262 12.13 Conditional Operator
-
- function parseConditionalExpression() {
- var expr, previousAllowIn, consequent, alternate, startToken;
-
- startToken = lookahead;
-
- expr = inheritCoverGrammar(parseBinaryExpression);
- if (match('?')) {
- lex();
- previousAllowIn = state.allowIn;
- state.allowIn = true;
- consequent = isolateCoverGrammar(parseAssignmentExpression);
- state.allowIn = previousAllowIn;
- expect(':');
- alternate = isolateCoverGrammar(parseAssignmentExpression);
-
- expr = new WrappingNode(startToken).finishConditionalExpression(expr, consequent, alternate);
- isAssignmentTarget = isBindingElement = false;
- }
-
- return expr;
- }
-
- // ECMA-262 14.2 Arrow Function Definitions
-
- function parseConciseBody() {
- if (match('{')) {
- return parseFunctionSourceElements();
- }
- return isolateCoverGrammar(parseAssignmentExpression);
- }
-
- function checkPatternParam(options, param) {
- var i;
- switch (param.type) {
- case Syntax.Identifier:
- validateParam(options, param, param.name);
- break;
- case Syntax.RestElement:
- checkPatternParam(options, param.argument);
- break;
- case Syntax.AssignmentPattern:
- checkPatternParam(options, param.left);
- break;
- case Syntax.ArrayPattern:
- for (i = 0; i < param.elements.length; i++) {
- if (param.elements[i] !== null) {
- checkPatternParam(options, param.elements[i]);
- }
- }
- break;
- case Syntax.YieldExpression:
- break;
- default:
- assert(param.type === Syntax.ObjectPattern, 'Invalid type');
- for (i = 0; i < param.properties.length; i++) {
- checkPatternParam(options, param.properties[i].value);
- }
- break;
- }
- }
- function reinterpretAsCoverFormalsList(expr) {
- var i, len, param, params, defaults, defaultCount, options, token;
-
- defaults = [];
- defaultCount = 0;
- params = [expr];
-
- switch (expr.type) {
- case Syntax.Identifier:
- break;
- case PlaceHolders.ArrowParameterPlaceHolder:
- params = expr.params;
- break;
- default:
- return null;
- }
-
- options = {
- paramSet: {}
- };
-
- for (i = 0, len = params.length; i < len; i += 1) {
- param = params[i];
- switch (param.type) {
- case Syntax.AssignmentPattern:
- params[i] = param.left;
- if (param.right.type === Syntax.YieldExpression) {
- if (param.right.argument) {
- throwUnexpectedToken(lookahead);
- }
- param.right.type = Syntax.Identifier;
- param.right.name = 'yield';
- delete param.right.argument;
- delete param.right.delegate;
- }
- defaults.push(param.right);
- ++defaultCount;
- checkPatternParam(options, param.left);
- break;
- default:
- checkPatternParam(options, param);
- params[i] = param;
- defaults.push(null);
- break;
- }
- }
-
- if (strict || !state.allowYield) {
- for (i = 0, len = params.length; i < len; i += 1) {
- param = params[i];
- if (param.type === Syntax.YieldExpression) {
- throwUnexpectedToken(lookahead);
- }
- }
- }
-
- if (options.message === Messages.StrictParamDupe) {
- token = strict ? options.stricted : options.firstRestricted;
- throwUnexpectedToken(token, options.message);
- }
-
- if (defaultCount === 0) {
- defaults = [];
- }
-
- return {
- params: params,
- defaults: defaults,
- stricted: options.stricted,
- firstRestricted: options.firstRestricted,
- message: options.message
- };
- }
-
- function parseArrowFunctionExpression(options, node) {
- var previousStrict, previousAllowYield, body;
-
- if (hasLineTerminator) {
- tolerateUnexpectedToken(lookahead);
- }
- expect('=>');
-
- previousStrict = strict;
- previousAllowYield = state.allowYield;
- state.allowYield = true;
-
- body = parseConciseBody();
-
- if (strict && options.firstRestricted) {
- throwUnexpectedToken(options.firstRestricted, options.message);
- }
- if (strict && options.stricted) {
- tolerateUnexpectedToken(options.stricted, options.message);
- }
-
- strict = previousStrict;
- state.allowYield = previousAllowYield;
-
- return node.finishArrowFunctionExpression(options.params, options.defaults, body, body.type !== Syntax.BlockStatement);
- }
-
- // ECMA-262 14.4 Yield expression
-
- function parseYieldExpression() {
- var argument, expr, delegate, previousAllowYield;
-
- argument = null;
- expr = new Node();
- delegate = false;
-
- expectKeyword('yield');
-
- if (!hasLineTerminator) {
- previousAllowYield = state.allowYield;
- state.allowYield = false;
- delegate = match('*');
- if (delegate) {
- lex();
- argument = parseAssignmentExpression();
- } else {
- if (!match(';') && !match('}') && !match(')') && lookahead.type !== Token.EOF) {
- argument = parseAssignmentExpression();
- }
- }
- state.allowYield = previousAllowYield;
- }
-
- return expr.finishYieldExpression(argument, delegate);
- }
-
- // ECMA-262 12.14 Assignment Operators
-
- function parseAssignmentExpression() {
- var token, expr, right, list, startToken;
-
- startToken = lookahead;
- token = lookahead;
-
- if (!state.allowYield && matchKeyword('yield')) {
- return parseYieldExpression();
- }
-
- expr = parseConditionalExpression();
-
- if (expr.type === PlaceHolders.ArrowParameterPlaceHolder || match('=>')) {
- isAssignmentTarget = isBindingElement = false;
- list = reinterpretAsCoverFormalsList(expr);
-
- if (list) {
- firstCoverInitializedNameError = null;
- return parseArrowFunctionExpression(list, new WrappingNode(startToken));
- }
-
- return expr;
- }
-
- if (matchAssign()) {
- if (!isAssignmentTarget) {
- tolerateError(Messages.InvalidLHSInAssignment);
- }
-
- // ECMA-262 12.1.1
- if (strict && expr.type === Syntax.Identifier) {
- if (isRestrictedWord(expr.name)) {
- tolerateUnexpectedToken(token, Messages.StrictLHSAssignment);
- }
- if (isStrictModeReservedWord(expr.name)) {
- tolerateUnexpectedToken(token, Messages.StrictReservedWord);
- }
- }
-
- if (!match('=')) {
- isAssignmentTarget = isBindingElement = false;
- } else {
- reinterpretExpressionAsPattern(expr);
- }
-
- token = lex();
- right = isolateCoverGrammar(parseAssignmentExpression);
- expr = new WrappingNode(startToken).finishAssignmentExpression(token.value, expr, right);
- firstCoverInitializedNameError = null;
- }
-
- return expr;
- }
-
- // ECMA-262 12.15 Comma Operator
-
- function parseExpression() {
- var expr, startToken = lookahead, expressions;
-
- expr = isolateCoverGrammar(parseAssignmentExpression);
-
- if (match(',')) {
- expressions = [expr];
-
- while (startIndex < length) {
- if (!match(',')) {
- break;
- }
- lex();
- expressions.push(isolateCoverGrammar(parseAssignmentExpression));
- }
-
- expr = new WrappingNode(startToken).finishSequenceExpression(expressions);
- }
-
- return expr;
- }
-
- // ECMA-262 13.2 Block
-
- function parseStatementListItem() {
- if (lookahead.type === Token.Keyword) {
- switch (lookahead.value) {
- case 'export':
- if (state.sourceType !== 'module') {
- tolerateUnexpectedToken(lookahead, Messages.IllegalExportDeclaration);
- }
- return parseExportDeclaration();
- case 'import':
- if (state.sourceType !== 'module') {
- tolerateUnexpectedToken(lookahead, Messages.IllegalImportDeclaration);
- }
- return parseImportDeclaration();
- case 'const':
- return parseLexicalDeclaration({inFor: false});
- case 'function':
- return parseFunctionDeclaration(new Node());
- case 'class':
- return parseClassDeclaration();
- }
- }
-
- if (matchKeyword('let') && isLexicalDeclaration()) {
- return parseLexicalDeclaration({inFor: false});
- }
-
- return parseStatement();
- }
-
- function parseStatementList() {
- var list = [];
- while (startIndex < length) {
- if (match('}')) {
- break;
- }
- list.push(parseStatementListItem());
- }
-
- return list;
- }
-
- function parseBlock() {
- var block, node = new Node();
-
- expect('{');
-
- block = parseStatementList();
-
- expect('}');
-
- return node.finishBlockStatement(block);
- }
-
- // ECMA-262 13.3.2 Variable Statement
-
- function parseVariableIdentifier(kind) {
- var token, node = new Node();
-
- token = lex();
-
- if (token.type === Token.Keyword && token.value === 'yield') {
- if (strict) {
- tolerateUnexpectedToken(token, Messages.StrictReservedWord);
- } if (!state.allowYield) {
- throwUnexpectedToken(token);
- }
- } else if (token.type !== Token.Identifier) {
- if (strict && token.type === Token.Keyword && isStrictModeReservedWord(token.value)) {
- tolerateUnexpectedToken(token, Messages.StrictReservedWord);
- } else {
- if (strict || token.value !== 'let' || kind !== 'var') {
- throwUnexpectedToken(token);
- }
- }
- } else if (state.sourceType === 'module' && token.type === Token.Identifier && token.value === 'await') {
- tolerateUnexpectedToken(token);
- }
-
- return node.finishIdentifier(token.value);
- }
-
- function parseVariableDeclaration(options) {
- var init = null, id, node = new Node(), params = [];
-
- id = parsePattern(params, 'var');
-
- // ECMA-262 12.2.1
- if (strict && isRestrictedWord(id.name)) {
- tolerateError(Messages.StrictVarName);
- }
-
- if (match('=')) {
- lex();
- init = isolateCoverGrammar(parseAssignmentExpression);
- } else if (id.type !== Syntax.Identifier && !options.inFor) {
- expect('=');
- }
-
- return node.finishVariableDeclarator(id, init);
- }
-
- function parseVariableDeclarationList(options) {
- var opt, list;
-
- opt = { inFor: options.inFor };
- list = [parseVariableDeclaration(opt)];
-
- while (match(',')) {
- lex();
- list.push(parseVariableDeclaration(opt));
- }
-
- return list;
- }
-
- function parseVariableStatement(node) {
- var declarations;
-
- expectKeyword('var');
-
- declarations = parseVariableDeclarationList({ inFor: false });
-
- consumeSemicolon();
-
- return node.finishVariableDeclaration(declarations);
- }
-
- // ECMA-262 13.3.1 Let and Const Declarations
-
- function parseLexicalBinding(kind, options) {
- var init = null, id, node = new Node(), params = [];
-
- id = parsePattern(params, kind);
-
- // ECMA-262 12.2.1
- if (strict && id.type === Syntax.Identifier && isRestrictedWord(id.name)) {
- tolerateError(Messages.StrictVarName);
- }
-
- if (kind === 'const') {
- if (!matchKeyword('in') && !matchContextualKeyword('of')) {
- expect('=');
- init = isolateCoverGrammar(parseAssignmentExpression);
- }
- } else if ((!options.inFor && id.type !== Syntax.Identifier) || match('=')) {
- expect('=');
- init = isolateCoverGrammar(parseAssignmentExpression);
- }
-
- return node.finishVariableDeclarator(id, init);
- }
-
- function parseBindingList(kind, options) {
- var list = [parseLexicalBinding(kind, options)];
-
- while (match(',')) {
- lex();
- list.push(parseLexicalBinding(kind, options));
- }
-
- return list;
- }
-
-
- function tokenizerState() {
- return {
- index: index,
- lineNumber: lineNumber,
- lineStart: lineStart,
- hasLineTerminator: hasLineTerminator,
- lastIndex: lastIndex,
- lastLineNumber: lastLineNumber,
- lastLineStart: lastLineStart,
- startIndex: startIndex,
- startLineNumber: startLineNumber,
- startLineStart: startLineStart,
- lookahead: lookahead,
- tokenCount: extra.tokens ? extra.tokens.length : 0
- };
- }
-
- function resetTokenizerState(ts) {
- index = ts.index;
- lineNumber = ts.lineNumber;
- lineStart = ts.lineStart;
- hasLineTerminator = ts.hasLineTerminator;
- lastIndex = ts.lastIndex;
- lastLineNumber = ts.lastLineNumber;
- lastLineStart = ts.lastLineStart;
- startIndex = ts.startIndex;
- startLineNumber = ts.startLineNumber;
- startLineStart = ts.startLineStart;
- lookahead = ts.lookahead;
- if (extra.tokens) {
- extra.tokens.splice(ts.tokenCount, extra.tokens.length);
- }
- }
-
- function isLexicalDeclaration() {
- var lexical, ts;
-
- ts = tokenizerState();
-
- lex();
- lexical = (lookahead.type === Token.Identifier) || match('[') || match('{') ||
- matchKeyword('let') || matchKeyword('yield');
-
- resetTokenizerState(ts);
-
- return lexical;
- }
-
- function parseLexicalDeclaration(options) {
- var kind, declarations, node = new Node();
-
- kind = lex().value;
- assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const');
-
- declarations = parseBindingList(kind, options);
-
- consumeSemicolon();
-
- return node.finishLexicalDeclaration(declarations, kind);
- }
-
- function parseRestElement(params) {
- var param, node = new Node();
-
- lex();
-
- if (match('{')) {
- throwError(Messages.ObjectPatternAsRestParameter);
- }
-
- params.push(lookahead);
-
- param = parseVariableIdentifier();
-
- if (match('=')) {
- throwError(Messages.DefaultRestParameter);
- }
-
- if (!match(')')) {
- throwError(Messages.ParameterAfterRestParameter);
- }
-
- return node.finishRestElement(param);
- }
-
- // ECMA-262 13.4 Empty Statement
-
- function parseEmptyStatement(node) {
- expect(';');
- return node.finishEmptyStatement();
- }
-
- // ECMA-262 12.4 Expression Statement
-
- function parseExpressionStatement(node) {
- var expr = parseExpression();
- consumeSemicolon();
- return node.finishExpressionStatement(expr);
- }
-
- // ECMA-262 13.6 If statement
-
- function parseIfStatement(node) {
- var test, consequent, alternate;
-
- expectKeyword('if');
-
- expect('(');
-
- test = parseExpression();
-
- expect(')');
-
- consequent = parseStatement();
-
- if (matchKeyword('else')) {
- lex();
- alternate = parseStatement();
- } else {
- alternate = null;
- }
-
- return node.finishIfStatement(test, consequent, alternate);
- }
-
- // ECMA-262 13.7 Iteration Statements
-
- function parseDoWhileStatement(node) {
- var body, test, oldInIteration;
-
- expectKeyword('do');
-
- oldInIteration = state.inIteration;
- state.inIteration = true;
-
- body = parseStatement();
-
- state.inIteration = oldInIteration;
-
- expectKeyword('while');
-
- expect('(');
-
- test = parseExpression();
-
- expect(')');
-
- if (match(';')) {
- lex();
- }
-
- return node.finishDoWhileStatement(body, test);
- }
-
- function parseWhileStatement(node) {
- var test, body, oldInIteration;
-
- expectKeyword('while');
-
- expect('(');
-
- test = parseExpression();
-
- expect(')');
-
- oldInIteration = state.inIteration;
- state.inIteration = true;
-
- body = parseStatement();
-
- state.inIteration = oldInIteration;
-
- return node.finishWhileStatement(test, body);
- }
-
- function parseForStatement(node) {
- var init, forIn, initSeq, initStartToken, test, update, left, right, kind, declarations,
- body, oldInIteration, previousAllowIn = state.allowIn;
-
- init = test = update = null;
- forIn = true;
-
- expectKeyword('for');
-
- expect('(');
-
- if (match(';')) {
- lex();
- } else {
- if (matchKeyword('var')) {
- init = new Node();
- lex();
-
- state.allowIn = false;
- declarations = parseVariableDeclarationList({ inFor: true });
- state.allowIn = previousAllowIn;
-
- if (declarations.length === 1 && matchKeyword('in')) {
- init = init.finishVariableDeclaration(declarations);
- lex();
- left = init;
- right = parseExpression();
- init = null;
- } else if (declarations.length === 1 && declarations[0].init === null && matchContextualKeyword('of')) {
- init = init.finishVariableDeclaration(declarations);
- lex();
- left = init;
- right = parseAssignmentExpression();
- init = null;
- forIn = false;
- } else {
- init = init.finishVariableDeclaration(declarations);
- expect(';');
- }
- } else if (matchKeyword('const') || matchKeyword('let')) {
- init = new Node();
- kind = lex().value;
-
- if (!strict && lookahead.value === 'in') {
- init = init.finishIdentifier(kind);
- lex();
- left = init;
- right = parseExpression();
- init = null;
- } else {
- state.allowIn = false;
- declarations = parseBindingList(kind, {inFor: true});
- state.allowIn = previousAllowIn;
-
- if (declarations.length === 1 && declarations[0].init === null && matchKeyword('in')) {
- init = init.finishLexicalDeclaration(declarations, kind);
- lex();
- left = init;
- right = parseExpression();
- init = null;
- } else if (declarations.length === 1 && declarations[0].init === null && matchContextualKeyword('of')) {
- init = init.finishLexicalDeclaration(declarations, kind);
- lex();
- left = init;
- right = parseAssignmentExpression();
- init = null;
- forIn = false;
- } else {
- consumeSemicolon();
- init = init.finishLexicalDeclaration(declarations, kind);
- }
- }
- } else {
- initStartToken = lookahead;
- state.allowIn = false;
- init = inheritCoverGrammar(parseAssignmentExpression);
- state.allowIn = previousAllowIn;
-
- if (matchKeyword('in')) {
- if (!isAssignmentTarget) {
- tolerateError(Messages.InvalidLHSInForIn);
- }
-
- lex();
- reinterpretExpressionAsPattern(init);
- left = init;
- right = parseExpression();
- init = null;
- } else if (matchContextualKeyword('of')) {
- if (!isAssignmentTarget) {
- tolerateError(Messages.InvalidLHSInForLoop);
- }
-
- lex();
- reinterpretExpressionAsPattern(init);
- left = init;
- right = parseAssignmentExpression();
- init = null;
- forIn = false;
- } else {
- if (match(',')) {
- initSeq = [init];
- while (match(',')) {
- lex();
- initSeq.push(isolateCoverGrammar(parseAssignmentExpression));
- }
- init = new WrappingNode(initStartToken).finishSequenceExpression(initSeq);
- }
- expect(';');
- }
- }
- }
-
- if (typeof left === 'undefined') {
-
- if (!match(';')) {
- test = parseExpression();
- }
- expect(';');
-
- if (!match(')')) {
- update = parseExpression();
- }
- }
-
- expect(')');
-
- oldInIteration = state.inIteration;
- state.inIteration = true;
-
- body = isolateCoverGrammar(parseStatement);
-
- state.inIteration = oldInIteration;
-
- return (typeof left === 'undefined') ?
- node.finishForStatement(init, test, update, body) :
- forIn ? node.finishForInStatement(left, right, body) :
- node.finishForOfStatement(left, right, body);
- }
-
- // ECMA-262 13.8 The continue statement
-
- function parseContinueStatement(node) {
- var label = null, key;
-
- expectKeyword('continue');
-
- // Optimize the most common form: 'continue;'.
- if (source.charCodeAt(startIndex) === 0x3B) {
- lex();
-
- if (!state.inIteration) {
- throwError(Messages.IllegalContinue);
- }
-
- return node.finishContinueStatement(null);
- }
-
- if (hasLineTerminator) {
- if (!state.inIteration) {
- throwError(Messages.IllegalContinue);
- }
-
- return node.finishContinueStatement(null);
- }
-
- if (lookahead.type === Token.Identifier) {
- label = parseVariableIdentifier();
-
- key = '$' + label.name;
- if (!Object.prototype.hasOwnProperty.call(state.labelSet, key)) {
- throwError(Messages.UnknownLabel, label.name);
- }
- }
-
- consumeSemicolon();
-
- if (label === null && !state.inIteration) {
- throwError(Messages.IllegalContinue);
- }
-
- return node.finishContinueStatement(label);
- }
-
- // ECMA-262 13.9 The break statement
-
- function parseBreakStatement(node) {
- var label = null, key;
-
- expectKeyword('break');
-
- // Catch the very common case first: immediately a semicolon (U+003B).
- if (source.charCodeAt(lastIndex) === 0x3B) {
- lex();
-
- if (!(state.inIteration || state.inSwitch)) {
- throwError(Messages.IllegalBreak);
- }
-
- return node.finishBreakStatement(null);
- }
-
- if (hasLineTerminator) {
- if (!(state.inIteration || state.inSwitch)) {
- throwError(Messages.IllegalBreak);
- }
- } else if (lookahead.type === Token.Identifier) {
- label = parseVariableIdentifier();
-
- key = '$' + label.name;
- if (!Object.prototype.hasOwnProperty.call(state.labelSet, key)) {
- throwError(Messages.UnknownLabel, label.name);
- }
- }
-
- consumeSemicolon();
-
- if (label === null && !(state.inIteration || state.inSwitch)) {
- throwError(Messages.IllegalBreak);
- }
-
- return node.finishBreakStatement(label);
- }
-
- // ECMA-262 13.10 The return statement
-
- function parseReturnStatement(node) {
- var argument = null;
-
- expectKeyword('return');
-
- if (!state.inFunctionBody) {
- tolerateError(Messages.IllegalReturn);
- }
-
- // 'return' followed by a space and an identifier is very common.
- if (source.charCodeAt(lastIndex) === 0x20) {
- if (isIdentifierStart(source.charCodeAt(lastIndex + 1))) {
- argument = parseExpression();
- consumeSemicolon();
- return node.finishReturnStatement(argument);
- }
- }
-
- if (hasLineTerminator) {
- // HACK
- return node.finishReturnStatement(null);
- }
-
- if (!match(';')) {
- if (!match('}') && lookahead.type !== Token.EOF) {
- argument = parseExpression();
- }
- }
-
- consumeSemicolon();
-
- return node.finishReturnStatement(argument);
- }
-
- // ECMA-262 13.11 The with statement
-
- function parseWithStatement(node) {
- var object, body;
-
- if (strict) {
- tolerateError(Messages.StrictModeWith);
- }
-
- expectKeyword('with');
-
- expect('(');
-
- object = parseExpression();
-
- expect(')');
-
- body = parseStatement();
-
- return node.finishWithStatement(object, body);
- }
-
- // ECMA-262 13.12 The switch statement
-
- function parseSwitchCase() {
- var test, consequent = [], statement, node = new Node();
-
- if (matchKeyword('default')) {
- lex();
- test = null;
- } else {
- expectKeyword('case');
- test = parseExpression();
- }
- expect(':');
-
- while (startIndex < length) {
- if (match('}') || matchKeyword('default') || matchKeyword('case')) {
- break;
- }
- statement = parseStatementListItem();
- consequent.push(statement);
- }
-
- return node.finishSwitchCase(test, consequent);
- }
-
- function parseSwitchStatement(node) {
- var discriminant, cases, clause, oldInSwitch, defaultFound;
-
- expectKeyword('switch');
-
- expect('(');
-
- discriminant = parseExpression();
-
- expect(')');
-
- expect('{');
-
- cases = [];
-
- if (match('}')) {
- lex();
- return node.finishSwitchStatement(discriminant, cases);
- }
-
- oldInSwitch = state.inSwitch;
- state.inSwitch = true;
- defaultFound = false;
-
- while (startIndex < length) {
- if (match('}')) {
- break;
- }
- clause = parseSwitchCase();
- if (clause.test === null) {
- if (defaultFound) {
- throwError(Messages.MultipleDefaultsInSwitch);
- }
- defaultFound = true;
- }
- cases.push(clause);
- }
-
- state.inSwitch = oldInSwitch;
-
- expect('}');
-
- return node.finishSwitchStatement(discriminant, cases);
- }
-
- // ECMA-262 13.14 The throw statement
-
- function parseThrowStatement(node) {
- var argument;
-
- expectKeyword('throw');
-
- if (hasLineTerminator) {
- throwError(Messages.NewlineAfterThrow);
- }
-
- argument = parseExpression();
-
- consumeSemicolon();
-
- return node.finishThrowStatement(argument);
- }
-
- // ECMA-262 13.15 The try statement
-
- function parseCatchClause() {
- var param, params = [], paramMap = {}, key, i, body, node = new Node();
-
- expectKeyword('catch');
-
- expect('(');
- if (match(')')) {
- throwUnexpectedToken(lookahead);
- }
-
- param = parsePattern(params);
- for (i = 0; i < params.length; i++) {
- key = '$' + params[i].value;
- if (Object.prototype.hasOwnProperty.call(paramMap, key)) {
- tolerateError(Messages.DuplicateBinding, params[i].value);
- }
- paramMap[key] = true;
- }
-
- // ECMA-262 12.14.1
- if (strict && isRestrictedWord(param.name)) {
- tolerateError(Messages.StrictCatchVariable);
- }
-
- expect(')');
- body = parseBlock();
- return node.finishCatchClause(param, body);
- }
-
- function parseTryStatement(node) {
- var block, handler = null, finalizer = null;
-
- expectKeyword('try');
-
- block = parseBlock();
-
- if (matchKeyword('catch')) {
- handler = parseCatchClause();
- }
-
- if (matchKeyword('finally')) {
- lex();
- finalizer = parseBlock();
- }
-
- if (!handler && !finalizer) {
- throwError(Messages.NoCatchOrFinally);
- }
-
- return node.finishTryStatement(block, handler, finalizer);
- }
-
- // ECMA-262 13.16 The debugger statement
-
- function parseDebuggerStatement(node) {
- expectKeyword('debugger');
-
- consumeSemicolon();
-
- return node.finishDebuggerStatement();
- }
-
- // 13 Statements
-
- function parseStatement() {
- var type = lookahead.type,
- expr,
- labeledBody,
- key,
- node;
-
- if (type === Token.EOF) {
- throwUnexpectedToken(lookahead);
- }
-
- if (type === Token.Punctuator && lookahead.value === '{') {
- return parseBlock();
- }
- isAssignmentTarget = isBindingElement = true;
- node = new Node();
-
- if (type === Token.Punctuator) {
- switch (lookahead.value) {
- case ';':
- return parseEmptyStatement(node);
- case '(':
- return parseExpressionStatement(node);
- default:
- break;
- }
- } else if (type === Token.Keyword) {
- switch (lookahead.value) {
- case 'break':
- return parseBreakStatement(node);
- case 'continue':
- return parseContinueStatement(node);
- case 'debugger':
- return parseDebuggerStatement(node);
- case 'do':
- return parseDoWhileStatement(node);
- case 'for':
- return parseForStatement(node);
- case 'function':
- return parseFunctionDeclaration(node);
- case 'if':
- return parseIfStatement(node);
- case 'return':
- return parseReturnStatement(node);
- case 'switch':
- return parseSwitchStatement(node);
- case 'throw':
- return parseThrowStatement(node);
- case 'try':
- return parseTryStatement(node);
- case 'var':
- return parseVariableStatement(node);
- case 'while':
- return parseWhileStatement(node);
- case 'with':
- return parseWithStatement(node);
- default:
- break;
- }
- }
-
- expr = parseExpression();
-
- // ECMA-262 12.12 Labelled Statements
- if ((expr.type === Syntax.Identifier) && match(':')) {
- lex();
-
- key = '$' + expr.name;
- if (Object.prototype.hasOwnProperty.call(state.labelSet, key)) {
- throwError(Messages.Redeclaration, 'Label', expr.name);
- }
-
- state.labelSet[key] = true;
- labeledBody = parseStatement();
- delete state.labelSet[key];
- return node.finishLabeledStatement(expr, labeledBody);
- }
-
- consumeSemicolon();
-
- return node.finishExpressionStatement(expr);
- }
-
- // ECMA-262 14.1 Function Definition
-
- function parseFunctionSourceElements() {
- var statement, body = [], token, directive, firstRestricted,
- oldLabelSet, oldInIteration, oldInSwitch, oldInFunctionBody,
- node = new Node();
-
- expect('{');
-
- while (startIndex < length) {
- if (lookahead.type !== Token.StringLiteral) {
- break;
- }
- token = lookahead;
-
- statement = parseStatementListItem();
- body.push(statement);
- if (statement.expression.type !== Syntax.Literal) {
- // this is not directive
- break;
- }
- directive = source.slice(token.start + 1, token.end - 1);
- if (directive === 'use strict') {
- strict = true;
- if (firstRestricted) {
- tolerateUnexpectedToken(firstRestricted, Messages.StrictOctalLiteral);
- }
- } else {
- if (!firstRestricted && token.octal) {
- firstRestricted = token;
- }
- }
- }
-
- oldLabelSet = state.labelSet;
- oldInIteration = state.inIteration;
- oldInSwitch = state.inSwitch;
- oldInFunctionBody = state.inFunctionBody;
-
- state.labelSet = {};
- state.inIteration = false;
- state.inSwitch = false;
- state.inFunctionBody = true;
-
- while (startIndex < length) {
- if (match('}')) {
- break;
- }
- body.push(parseStatementListItem());
- }
-
- expect('}');
-
- state.labelSet = oldLabelSet;
- state.inIteration = oldInIteration;
- state.inSwitch = oldInSwitch;
- state.inFunctionBody = oldInFunctionBody;
-
- return node.finishBlockStatement(body);
- }
-
- function validateParam(options, param, name) {
- var key = '$' + name;
- if (strict) {
- if (isRestrictedWord(name)) {
- options.stricted = param;
- options.message = Messages.StrictParamName;
- }
- if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {
- options.stricted = param;
- options.message = Messages.StrictParamDupe;
- }
- } else if (!options.firstRestricted) {
- if (isRestrictedWord(name)) {
- options.firstRestricted = param;
- options.message = Messages.StrictParamName;
- } else if (isStrictModeReservedWord(name)) {
- options.firstRestricted = param;
- options.message = Messages.StrictReservedWord;
- } else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {
- options.stricted = param;
- options.message = Messages.StrictParamDupe;
- }
- }
- options.paramSet[key] = true;
- }
-
- function parseParam(options) {
- var token, param, params = [], i, def;
-
- token = lookahead;
- if (token.value === '...') {
- param = parseRestElement(params);
- validateParam(options, param.argument, param.argument.name);
- options.params.push(param);
- options.defaults.push(null);
- return false;
- }
-
- param = parsePatternWithDefault(params);
- for (i = 0; i < params.length; i++) {
- validateParam(options, params[i], params[i].value);
- }
-
- if (param.type === Syntax.AssignmentPattern) {
- def = param.right;
- param = param.left;
- ++options.defaultCount;
- }
-
- options.params.push(param);
- options.defaults.push(def);
-
- return !match(')');
- }
-
- function parseParams(firstRestricted) {
- var options;
-
- options = {
- params: [],
- defaultCount: 0,
- defaults: [],
- firstRestricted: firstRestricted
- };
-
- expect('(');
-
- if (!match(')')) {
- options.paramSet = {};
- while (startIndex < length) {
- if (!parseParam(options)) {
- break;
- }
- expect(',');
- }
- }
-
- expect(')');
-
- if (options.defaultCount === 0) {
- options.defaults = [];
- }
-
- return {
- params: options.params,
- defaults: options.defaults,
- stricted: options.stricted,
- firstRestricted: options.firstRestricted,
- message: options.message
- };
- }
-
- function parseFunctionDeclaration(node, identifierIsOptional) {
- var id = null, params = [], defaults = [], body, token, stricted, tmp, firstRestricted, message, previousStrict,
- isGenerator, previousAllowYield;
-
- previousAllowYield = state.allowYield;
-
- expectKeyword('function');
-
- isGenerator = match('*');
- if (isGenerator) {
- lex();
- }
-
- if (!identifierIsOptional || !match('(')) {
- token = lookahead;
- id = parseVariableIdentifier();
- if (strict) {
- if (isRestrictedWord(token.value)) {
- tolerateUnexpectedToken(token, Messages.StrictFunctionName);
- }
- } else {
- if (isRestrictedWord(token.value)) {
- firstRestricted = token;
- message = Messages.StrictFunctionName;
- } else if (isStrictModeReservedWord(token.value)) {
- firstRestricted = token;
- message = Messages.StrictReservedWord;
- }
- }
- }
-
- state.allowYield = !isGenerator;
- tmp = parseParams(firstRestricted);
- params = tmp.params;
- defaults = tmp.defaults;
- stricted = tmp.stricted;
- firstRestricted = tmp.firstRestricted;
- if (tmp.message) {
- message = tmp.message;
- }
-
-
- previousStrict = strict;
- body = parseFunctionSourceElements();
- if (strict && firstRestricted) {
- throwUnexpectedToken(firstRestricted, message);
- }
- if (strict && stricted) {
- tolerateUnexpectedToken(stricted, message);
- }
-
- strict = previousStrict;
- state.allowYield = previousAllowYield;
-
- return node.finishFunctionDeclaration(id, params, defaults, body, isGenerator);
- }
-
- function parseFunctionExpression() {
- var token, id = null, stricted, firstRestricted, message, tmp,
- params = [], defaults = [], body, previousStrict, node = new Node(),
- isGenerator, previousAllowYield;
-
- previousAllowYield = state.allowYield;
-
- expectKeyword('function');
-
- isGenerator = match('*');
- if (isGenerator) {
- lex();
- }
-
- state.allowYield = !isGenerator;
- if (!match('(')) {
- token = lookahead;
- id = (!strict && !isGenerator && matchKeyword('yield')) ? parseNonComputedProperty() : parseVariableIdentifier();
- if (strict) {
- if (isRestrictedWord(token.value)) {
- tolerateUnexpectedToken(token, Messages.StrictFunctionName);
- }
- } else {
- if (isRestrictedWord(token.value)) {
- firstRestricted = token;
- message = Messages.StrictFunctionName;
- } else if (isStrictModeReservedWord(token.value)) {
- firstRestricted = token;
- message = Messages.StrictReservedWord;
- }
- }
- }
-
- tmp = parseParams(firstRestricted);
- params = tmp.params;
- defaults = tmp.defaults;
- stricted = tmp.stricted;
- firstRestricted = tmp.firstRestricted;
- if (tmp.message) {
- message = tmp.message;
- }
-
- previousStrict = strict;
- body = parseFunctionSourceElements();
- if (strict && firstRestricted) {
- throwUnexpectedToken(firstRestricted, message);
- }
- if (strict && stricted) {
- tolerateUnexpectedToken(stricted, message);
- }
- strict = previousStrict;
- state.allowYield = previousAllowYield;
-
- return node.finishFunctionExpression(id, params, defaults, body, isGenerator);
- }
-
- // ECMA-262 14.5 Class Definitions
-
- function parseClassBody() {
- var classBody, token, isStatic, hasConstructor = false, body, method, computed, key;
-
- classBody = new Node();
-
- expect('{');
- body = [];
- while (!match('}')) {
- if (match(';')) {
- lex();
- } else {
- method = new Node();
- token = lookahead;
- isStatic = false;
- computed = match('[');
- if (match('*')) {
- lex();
- } else {
- key = parseObjectPropertyKey();
- if (key.name === 'static' && (lookaheadPropertyName() || match('*'))) {
- token = lookahead;
- isStatic = true;
- computed = match('[');
- if (match('*')) {
- lex();
- } else {
- key = parseObjectPropertyKey();
- }
- }
- }
- method = tryParseMethodDefinition(token, key, computed, method);
- if (method) {
- method['static'] = isStatic; // jscs:ignore requireDotNotation
- if (method.kind === 'init') {
- method.kind = 'method';
- }
- if (!isStatic) {
- if (!method.computed && (method.key.name || method.key.value.toString()) === 'constructor') {
- if (method.kind !== 'method' || !method.method || method.value.generator) {
- throwUnexpectedToken(token, Messages.ConstructorSpecialMethod);
- }
- if (hasConstructor) {
- throwUnexpectedToken(token, Messages.DuplicateConstructor);
- } else {
- hasConstructor = true;
- }
- method.kind = 'constructor';
- }
- } else {
- if (!method.computed && (method.key.name || method.key.value.toString()) === 'prototype') {
- throwUnexpectedToken(token, Messages.StaticPrototype);
- }
- }
- method.type = Syntax.MethodDefinition;
- delete method.method;
- delete method.shorthand;
- body.push(method);
- } else {
- throwUnexpectedToken(lookahead);
- }
- }
- }
- lex();
- return classBody.finishClassBody(body);
- }
-
- function parseClassDeclaration(identifierIsOptional) {
- var id = null, superClass = null, classNode = new Node(), classBody, previousStrict = strict;
- strict = true;
-
- expectKeyword('class');
-
- if (!identifierIsOptional || lookahead.type === Token.Identifier) {
- id = parseVariableIdentifier();
- }
-
- if (matchKeyword('extends')) {
- lex();
- superClass = isolateCoverGrammar(parseLeftHandSideExpressionAllowCall);
- }
- classBody = parseClassBody();
- strict = previousStrict;
-
- return classNode.finishClassDeclaration(id, superClass, classBody);
- }
-
- function parseClassExpression() {
- var id = null, superClass = null, classNode = new Node(), classBody, previousStrict = strict;
- strict = true;
-
- expectKeyword('class');
-
- if (lookahead.type === Token.Identifier) {
- id = parseVariableIdentifier();
- }
-
- if (matchKeyword('extends')) {
- lex();
- superClass = isolateCoverGrammar(parseLeftHandSideExpressionAllowCall);
- }
- classBody = parseClassBody();
- strict = previousStrict;
-
- return classNode.finishClassExpression(id, superClass, classBody);
- }
-
- // ECMA-262 15.2 Modules
-
- function parseModuleSpecifier() {
- var node = new Node();
-
- if (lookahead.type !== Token.StringLiteral) {
- throwError(Messages.InvalidModuleSpecifier);
- }
- return node.finishLiteral(lex());
- }
-
- // ECMA-262 15.2.3 Exports
-
- function parseExportSpecifier() {
- var exported, local, node = new Node(), def;
- if (matchKeyword('default')) {
- // export {default} from 'something';
- def = new Node();
- lex();
- local = def.finishIdentifier('default');
- } else {
- local = parseVariableIdentifier();
- }
- if (matchContextualKeyword('as')) {
- lex();
- exported = parseNonComputedProperty();
- }
- return node.finishExportSpecifier(local, exported);
- }
-
- function parseExportNamedDeclaration(node) {
- var declaration = null,
- isExportFromIdentifier,
- src = null, specifiers = [];
-
- // non-default export
- if (lookahead.type === Token.Keyword) {
- // covers:
- // export var f = 1;
- switch (lookahead.value) {
- case 'let':
- case 'const':
- declaration = parseLexicalDeclaration({inFor: false});
- return node.finishExportNamedDeclaration(declaration, specifiers, null);
- case 'var':
- case 'class':
- case 'function':
- declaration = parseStatementListItem();
- return node.finishExportNamedDeclaration(declaration, specifiers, null);
- }
- }
-
- expect('{');
- while (!match('}')) {
- isExportFromIdentifier = isExportFromIdentifier || matchKeyword('default');
- specifiers.push(parseExportSpecifier());
- if (!match('}')) {
- expect(',');
- if (match('}')) {
- break;
- }
- }
- }
- expect('}');
-
- if (matchContextualKeyword('from')) {
- // covering:
- // export {default} from 'foo';
- // export {foo} from 'foo';
- lex();
- src = parseModuleSpecifier();
- consumeSemicolon();
- } else if (isExportFromIdentifier) {
- // covering:
- // export {default}; // missing fromClause
- throwError(lookahead.value ?
- Messages.UnexpectedToken : Messages.MissingFromClause, lookahead.value);
- } else {
- // cover
- // export {foo};
- consumeSemicolon();
- }
- return node.finishExportNamedDeclaration(declaration, specifiers, src);
- }
-
- function parseExportDefaultDeclaration(node) {
- var declaration = null,
- expression = null;
-
- // covers:
- // export default ...
- expectKeyword('default');
-
- if (matchKeyword('function')) {
- // covers:
- // export default function foo () {}
- // export default function () {}
- declaration = parseFunctionDeclaration(new Node(), true);
- return node.finishExportDefaultDeclaration(declaration);
- }
- if (matchKeyword('class')) {
- declaration = parseClassDeclaration(true);
- return node.finishExportDefaultDeclaration(declaration);
- }
-
- if (matchContextualKeyword('from')) {
- throwError(Messages.UnexpectedToken, lookahead.value);
- }
-
- // covers:
- // export default {};
- // export default [];
- // export default (1 + 2);
- if (match('{')) {
- expression = parseObjectInitializer();
- } else if (match('[')) {
- expression = parseArrayInitializer();
- } else {
- expression = parseAssignmentExpression();
- }
- consumeSemicolon();
- return node.finishExportDefaultDeclaration(expression);
- }
-
- function parseExportAllDeclaration(node) {
- var src;
-
- // covers:
- // export * from 'foo';
- expect('*');
- if (!matchContextualKeyword('from')) {
- throwError(lookahead.value ?
- Messages.UnexpectedToken : Messages.MissingFromClause, lookahead.value);
- }
- lex();
- src = parseModuleSpecifier();
- consumeSemicolon();
-
- return node.finishExportAllDeclaration(src);
- }
-
- function parseExportDeclaration() {
- var node = new Node();
- if (state.inFunctionBody) {
- throwError(Messages.IllegalExportDeclaration);
- }
-
- expectKeyword('export');
-
- if (matchKeyword('default')) {
- return parseExportDefaultDeclaration(node);
- }
- if (match('*')) {
- return parseExportAllDeclaration(node);
- }
- return parseExportNamedDeclaration(node);
- }
-
- // ECMA-262 15.2.2 Imports
-
- function parseImportSpecifier() {
- // import {<foo as bar>} ...;
- var local, imported, node = new Node();
-
- imported = parseNonComputedProperty();
- if (matchContextualKeyword('as')) {
- lex();
- local = parseVariableIdentifier();
- }
-
- return node.finishImportSpecifier(local, imported);
- }
-
- function parseNamedImports() {
- var specifiers = [];
- // {foo, bar as bas}
- expect('{');
- while (!match('}')) {
- specifiers.push(parseImportSpecifier());
- if (!match('}')) {
- expect(',');
- if (match('}')) {
- break;
- }
- }
- }
- expect('}');
- return specifiers;
- }
-
- function parseImportDefaultSpecifier() {
- // import <foo> ...;
- var local, node = new Node();
-
- local = parseNonComputedProperty();
-
- return node.finishImportDefaultSpecifier(local);
- }
-
- function parseImportNamespaceSpecifier() {
- // import <* as foo> ...;
- var local, node = new Node();
-
- expect('*');
- if (!matchContextualKeyword('as')) {
- throwError(Messages.NoAsAfterImportNamespace);
- }
- lex();
- local = parseNonComputedProperty();
-
- return node.finishImportNamespaceSpecifier(local);
- }
-
- function parseImportDeclaration() {
- var specifiers = [], src, node = new Node();
-
- if (state.inFunctionBody) {
- throwError(Messages.IllegalImportDeclaration);
- }
-
- expectKeyword('import');
-
- if (lookahead.type === Token.StringLiteral) {
- // import 'foo';
- src = parseModuleSpecifier();
- } else {
-
- if (match('{')) {
- // import {bar}
- specifiers = specifiers.concat(parseNamedImports());
- } else if (match('*')) {
- // import * as foo
- specifiers.push(parseImportNamespaceSpecifier());
- } else if (isIdentifierName(lookahead) && !matchKeyword('default')) {
- // import foo
- specifiers.push(parseImportDefaultSpecifier());
- if (match(',')) {
- lex();
- if (match('*')) {
- // import foo, * as foo
- specifiers.push(parseImportNamespaceSpecifier());
- } else if (match('{')) {
- // import foo, {bar}
- specifiers = specifiers.concat(parseNamedImports());
- } else {
- throwUnexpectedToken(lookahead);
- }
- }
- } else {
- throwUnexpectedToken(lex());
- }
-
- if (!matchContextualKeyword('from')) {
- throwError(lookahead.value ?
- Messages.UnexpectedToken : Messages.MissingFromClause, lookahead.value);
- }
- lex();
- src = parseModuleSpecifier();
- }
-
- consumeSemicolon();
- return node.finishImportDeclaration(specifiers, src);
- }
-
- // ECMA-262 15.1 Scripts
-
- function parseScriptBody() {
- var statement, body = [], token, directive, firstRestricted;
-
- while (startIndex < length) {
- token = lookahead;
- if (token.type !== Token.StringLiteral) {
- break;
- }
-
- statement = parseStatementListItem();
- body.push(statement);
- if (statement.expression.type !== Syntax.Literal) {
- // this is not directive
- break;
- }
- directive = source.slice(token.start + 1, token.end - 1);
- if (directive === 'use strict') {
- strict = true;
- if (firstRestricted) {
- tolerateUnexpectedToken(firstRestricted, Messages.StrictOctalLiteral);
- }
- } else {
- if (!firstRestricted && token.octal) {
- firstRestricted = token;
- }
- }
- }
-
- while (startIndex < length) {
- statement = parseStatementListItem();
- /* istanbul ignore if */
- if (typeof statement === 'undefined') {
- break;
- }
- body.push(statement);
- }
- return body;
- }
-
- function parseProgram() {
- var body, node;
-
- peek();
- node = new Node();
-
- body = parseScriptBody();
- return node.finishProgram(body, state.sourceType);
- }
-
- function filterTokenLocation() {
- var i, entry, token, tokens = [];
-
- for (i = 0; i < extra.tokens.length; ++i) {
- entry = extra.tokens[i];
- token = {
- type: entry.type,
- value: entry.value
- };
- if (entry.regex) {
- token.regex = {
- pattern: entry.regex.pattern,
- flags: entry.regex.flags
- };
- }
- if (extra.range) {
- token.range = entry.range;
- }
- if (extra.loc) {
- token.loc = entry.loc;
- }
- tokens.push(token);
- }
-
- extra.tokens = tokens;
- }
-
- function tokenize(code, options, delegate) {
- var toString,
- tokens;
-
- toString = String;
- if (typeof code !== 'string' && !(code instanceof String)) {
- code = toString(code);
- }
-
- source = code;
- index = 0;
- lineNumber = (source.length > 0) ? 1 : 0;
- lineStart = 0;
- startIndex = index;
- startLineNumber = lineNumber;
- startLineStart = lineStart;
- length = source.length;
- lookahead = null;
- state = {
- allowIn: true,
- allowYield: true,
- labelSet: {},
- inFunctionBody: false,
- inIteration: false,
- inSwitch: false,
- lastCommentStart: -1,
- curlyStack: []
- };
-
- extra = {};
-
- // Options matching.
- options = options || {};
-
- // Of course we collect tokens here.
- options.tokens = true;
- extra.tokens = [];
- extra.tokenValues = [];
- extra.tokenize = true;
- extra.delegate = delegate;
-
- // The following two fields are necessary to compute the Regex tokens.
- extra.openParenToken = -1;
- extra.openCurlyToken = -1;
-
- extra.range = (typeof options.range === 'boolean') && options.range;
- extra.loc = (typeof options.loc === 'boolean') && options.loc;
-
- if (typeof options.comment === 'boolean' && options.comment) {
- extra.comments = [];
- }
- if (typeof options.tolerant === 'boolean' && options.tolerant) {
- extra.errors = [];
- }
-
- try {
- peek();
- if (lookahead.type === Token.EOF) {
- return extra.tokens;
- }
-
- lex();
- while (lookahead.type !== Token.EOF) {
- try {
- lex();
- } catch (lexError) {
- if (extra.errors) {
- recordError(lexError);
- // We have to break on the first error
- // to avoid infinite loops.
- break;
- } else {
- throw lexError;
- }
- }
- }
-
- tokens = extra.tokens;
- if (typeof extra.errors !== 'undefined') {
- tokens.errors = extra.errors;
- }
- } catch (e) {
- throw e;
- } finally {
- extra = {};
- }
- return tokens;
- }
-
- function parse(code, options) {
- var program, toString;
-
- toString = String;
- if (typeof code !== 'string' && !(code instanceof String)) {
- code = toString(code);
- }
-
- source = code;
- index = 0;
- lineNumber = (source.length > 0) ? 1 : 0;
- lineStart = 0;
- startIndex = index;
- startLineNumber = lineNumber;
- startLineStart = lineStart;
- length = source.length;
- lookahead = null;
- state = {
- allowIn: true,
- allowYield: true,
- labelSet: {},
- inFunctionBody: false,
- inIteration: false,
- inSwitch: false,
- lastCommentStart: -1,
- curlyStack: [],
- sourceType: 'script'
- };
- strict = false;
-
- extra = {};
- if (typeof options !== 'undefined') {
- extra.range = (typeof options.range === 'boolean') && options.range;
- extra.loc = (typeof options.loc === 'boolean') && options.loc;
- extra.attachComment = (typeof options.attachComment === 'boolean') && options.attachComment;
-
- if (extra.loc && options.source !== null && options.source !== undefined) {
- extra.source = toString(options.source);
- }
-
- if (typeof options.tokens === 'boolean' && options.tokens) {
- extra.tokens = [];
- }
- if (typeof options.comment === 'boolean' && options.comment) {
- extra.comments = [];
- }
- if (typeof options.tolerant === 'boolean' && options.tolerant) {
- extra.errors = [];
- }
- if (extra.attachComment) {
- extra.range = true;
- extra.comments = [];
- extra.bottomRightStack = [];
- extra.trailingComments = [];
- extra.leadingComments = [];
- }
- if (options.sourceType === 'module') {
- // very restrictive condition for now
- state.sourceType = options.sourceType;
- strict = true;
- }
- }
-
- try {
- program = parseProgram();
- if (typeof extra.comments !== 'undefined') {
- program.comments = extra.comments;
- }
- if (typeof extra.tokens !== 'undefined') {
- filterTokenLocation();
- program.tokens = extra.tokens;
- }
- if (typeof extra.errors !== 'undefined') {
- program.errors = extra.errors;
- }
- } catch (e) {
- throw e;
- } finally {
- extra = {};
- }
-
- return program;
- }
-
- // Sync with *.json manifests.
- exports.version = '2.7.3';
-
- exports.tokenize = tokenize;
-
- exports.parse = parse;
-
- // Deep copy.
- /* istanbul ignore next */
- exports.Syntax = (function () {
- var name, types = {};
-
- if (typeof Object.create === 'function') {
- types = Object.create(null);
- }
-
- for (name in Syntax) {
- if (Syntax.hasOwnProperty(name)) {
- types[name] = Syntax[name];
- }
- }
-
- if (typeof Object.freeze === 'function') {
- Object.freeze(types);
- }
-
- return types;
- }());
-
-}));
-/* vim: set sw=4 ts=4 et tw=80 : */
diff --git a/node_modules/esprima/package.json b/node_modules/esprima/package.json
index f2d591202..4ce474ddf 100644
--- a/node_modules/esprima/package.json
+++ b/node_modules/esprima/package.json
@@ -2,19 +2,18 @@
"name": "esprima",
"description": "ECMAScript parsing infrastructure for multipurpose analysis",
"homepage": "http://esprima.org",
- "main": "esprima.js",
+ "main": "dist/esprima.js",
"bin": {
"esparse": "./bin/esparse.js",
"esvalidate": "./bin/esvalidate.js"
},
- "version": "2.7.3",
+ "version": "3.1.3",
"files": [
"bin",
- "unit-tests.js",
- "esprima.js"
+ "dist/esprima.js"
],
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
},
"author": {
"name": "Ariya Hidayat",
@@ -38,62 +37,73 @@
"devDependencies": {
"codecov.io": "~0.1.6",
"escomplex-js": "1.2.0",
- "eslint": "~1.7.2",
"everything.js": "~1.0.3",
- "glob": "^5.0.15",
+ "glob": "~7.1.0",
"istanbul": "~0.4.0",
- "jscs": "~2.3.5",
"json-diff": "~0.3.1",
- "karma": "^0.13.11",
- "karma-chrome-launcher": "^0.2.1",
- "karma-detect-browsers": "^2.0.2",
- "karma-firefox-launcher": "^0.1.6",
- "karma-ie-launcher": "^0.2.0",
- "karma-mocha": "^0.2.0",
- "karma-safari-launcher": "^0.1.1",
- "karma-sauce-launcher": "^0.2.14",
- "lodash": "^3.10.0",
- "mocha": "^2.3.3",
+ "karma": "~1.3.0",
+ "karma-chrome-launcher": "~2.0.0",
+ "karma-detect-browsers": "~2.1.0",
+ "karma-firefox-launcher": "~1.0.0",
+ "karma-ie-launcher": "~1.0.0",
+ "karma-mocha": "~1.2.0",
+ "karma-safari-launcher": "~1.0.0",
+ "karma-sauce-launcher": "~1.0.0",
+ "lodash": "~3.10.1",
+ "mocha": "~3.1.0",
"node-tick-processor": "~0.0.2",
- "regenerate": "~1.2.1",
+ "regenerate": "~1.3.1",
"temp": "~0.8.3",
- "unicode-7.0.0": "~0.1.5"
+ "tslint": "~3.15.1",
+ "typescript": "~1.8.10",
+ "typescript-formatter": "~2.3.0",
+ "unicode-8.0.0": "~0.7.0",
+ "webpack": "~1.13.2"
},
"keywords": [
"ast",
"ecmascript",
+ "esprima",
"javascript",
"parser",
"syntax"
],
"scripts": {
"check-version": "node test/check-version.js",
- "jscs": "jscs -p crockford esprima.js && jscs -p crockford test/*.js",
- "eslint": "node node_modules/eslint/bin/eslint.js -c .lintrc esprima.js",
+ "tslint": "tslint src/*.ts",
+ "code-style": "tsfmt --verify src/*.ts && tsfmt --verify test/*.js",
+ "format-code": "tsfmt -r src/*.ts && tsfmt -r test/*.js",
"complexity": "node test/check-complexity.js",
- "static-analysis": "npm run check-version && npm run jscs && npm run eslint && npm run complexity",
+ "static-analysis": "npm run check-version && npm run tslint && npm run code-style && npm run complexity",
+ "hostile-env-tests": "node test/hostile-environment-tests.js",
"unit-tests": "node test/unit-tests.js",
+ "api-tests": "mocha -R dot test/api-tests.js",
"grammar-tests": "node test/grammar-tests.js",
"regression-tests": "node test/regression-tests.js",
- "all-tests": "npm run generate-fixtures && npm run unit-tests && npm run grammar-tests && npm run regression-tests",
+ "all-tests": "npm run generate-fixtures && npm run unit-tests && npm run api-tests && npm run grammar-tests && npm run regression-tests && npm run hostile-env-tests",
"generate-fixtures": "node tools/generate-fixtures.js",
- "browser-tests": "npm run generate-fixtures && cd test && karma start --single-run",
+ "browser-tests": "npm run compile && npm run generate-fixtures && cd test && karma start --single-run",
"saucelabs-evergreen": "cd test && karma start saucelabs-evergreen.conf.js",
"saucelabs-safari": "cd test && karma start saucelabs-safari.conf.js",
"saucelabs-ie": "cd test && karma start saucelabs-ie.conf.js",
+ "saucelabs": "npm run saucelabs-evergreen && npm run saucelabs-ie && npm run saucelabs-safari",
"analyze-coverage": "istanbul cover test/unit-tests.js",
"check-coverage": "istanbul check-coverage --statement 100 --branch 100 --function 100",
"dynamic-analysis": "npm run analyze-coverage && npm run check-coverage",
- "test": "npm run all-tests && npm run static-analysis && npm run dynamic-analysis",
+ "compile": "tsc -p src/ && webpack && node tools/fixupbundle.js",
+ "test": "npm run compile && npm run all-tests && npm run static-analysis && npm run dynamic-analysis",
+ "prepublish": "npm run compile",
"profile": "node --prof test/profile.js && mv isolate*.log v8.log && node-tick-processor",
- "benchmark": "node test/benchmarks.js",
- "benchmark-quick": "node test/benchmarks.js quick",
+ "benchmark-parser": "node -expose_gc test/benchmark-parser.js",
+ "benchmark-tokenizer": "node --expose_gc test/benchmark-tokenizer.js",
+ "benchmark": "npm run benchmark-parser && npm run benchmark-tokenizer",
"codecov" : "istanbul report cobertura && codecov < ./coverage/cobertura-coverage.xml",
"downstream": "node test/downstream.js",
"travis": "npm test",
"circleci": "npm test && npm run codecov && npm run downstream",
- "appveyor": "npm run all-tests && npm run browser-tests && npm run dynamic-analysis",
- "droneio": "npm test && npm run saucelabs-evergreen && npm run saucelabs-ie && npm run saucelabs-safari",
- "generate-regex": "node tools/generate-identifier-regex.js"
+ "appveyor": "npm run compile && npm run all-tests && npm run browser-tests",
+ "droneio": "npm run compile && npm run all-tests && npm run saucelabs",
+ "generate-regex": "node tools/generate-identifier-regex.js",
+ "generate-xhtml-entities": "node tools/generate-xhtml-entities.js"
}
}
diff --git a/node_modules/estraverse/.editorconfig b/node_modules/estraverse/.editorconfig
deleted file mode 100644
index 1d4fc223a..000000000
--- a/node_modules/estraverse/.editorconfig
+++ /dev/null
@@ -1,10 +0,0 @@
-# top-most EditorConfig file
-root = true
-
-[*]
-end_of_line = lf
-insert_final_newline = true
-trim_trailing_whitespace = true
-indent_style = space
-indent_size = 4
-tab_width = 4
diff --git a/node_modules/estraverse/README.md b/node_modules/estraverse/README.md
deleted file mode 100644
index 4242c5133..000000000
--- a/node_modules/estraverse/README.md
+++ /dev/null
@@ -1,124 +0,0 @@
-### Estraverse [![Build Status](https://secure.travis-ci.org/estools/estraverse.png)](http://travis-ci.org/estools/estraverse)
-
-Estraverse ([estraverse](http://github.com/estools/estraverse)) is
-[ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm)
-traversal functions from [esmangle project](http://github.com/estools/esmangle).
-
-### Documentation
-
-You can find usage docs at [wiki page](https://github.com/estools/estraverse/wiki/Usage).
-
-### Example Usage
-
-The following code will output all variables declared at the root of a file.
-
-```javascript
-estraverse.traverse(ast, {
- enter: function (node, parent) {
- if (node.type == 'FunctionExpression' || node.type == 'FunctionDeclaration')
- return estraverse.VisitorOption.Skip;
- },
- leave: function (node, parent) {
- if (node.type == 'VariableDeclarator')
- console.log(node.id.name);
- }
-});
-```
-
-We can use `this.skip`, `this.remove` and `this.break` functions instead of using Skip, Remove and Break.
-
-```javascript
-estraverse.traverse(ast, {
- enter: function (node) {
- this.break();
- }
-});
-```
-
-And estraverse provides `estraverse.replace` function. When returning node from `enter`/`leave`, current node is replaced with it.
-
-```javascript
-result = estraverse.replace(tree, {
- enter: function (node) {
- // Replace it with replaced.
- if (node.type === 'Literal')
- return replaced;
- }
-});
-```
-
-By passing `visitor.keys` mapping, we can extend estraverse traversing functionality.
-
-```javascript
-// This tree contains a user-defined `TestExpression` node.
-var tree = {
- type: 'TestExpression',
-
- // This 'argument' is the property containing the other **node**.
- argument: {
- type: 'Literal',
- value: 20
- },
-
- // This 'extended' is the property not containing the other **node**.
- extended: true
-};
-estraverse.traverse(tree, {
- enter: function (node) { },
-
- // Extending the exising traversing rules.
- keys: {
- // TargetNodeName: [ 'keys', 'containing', 'the', 'other', '**node**' ]
- TestExpression: ['argument']
- }
-});
-```
-
-By passing `visitor.fallback` option, we can control the behavior when encountering unknown nodes.
-```javascript
-// This tree contains a user-defined `TestExpression` node.
-var tree = {
- type: 'TestExpression',
-
- // This 'argument' is the property containing the other **node**.
- argument: {
- type: 'Literal',
- value: 20
- },
-
- // This 'extended' is the property not containing the other **node**.
- extended: true
-};
-estraverse.traverse(tree, {
- enter: function (node) { },
-
- // Iterating the child **nodes** of unknown nodes.
- fallback: 'iteration'
-});
-```
-
-### License
-
-Copyright (C) 2012-2013 [Yusuke Suzuki](http://github.com/Constellation)
- (twitter: [@Constellation](http://twitter.com/Constellation)) and other contributors.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/node_modules/estraverse/estraverse.js b/node_modules/estraverse/estraverse.js
index 99bbb8c3b..09ae47832 100644
--- a/node_modules/estraverse/estraverse.js
+++ b/node_modules/estraverse/estraverse.js
@@ -24,20 +24,8 @@
*/
/*jslint vars:false, bitwise:true*/
/*jshint indent:4*/
-/*global exports:true, define:true*/
-(function (root, factory) {
- 'use strict';
-
- // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js,
- // and plain browser loading,
- if (typeof define === 'function' && define.amd) {
- define(['exports'], factory);
- } else if (typeof exports !== 'undefined') {
- factory(exports);
- } else {
- factory((root.estraverse = {}));
- }
-}(this, function clone(exports) {
+/*global exports:true*/
+(function clone(exports) {
'use strict';
var Syntax,
@@ -155,6 +143,7 @@
Syntax = {
AssignmentExpression: 'AssignmentExpression',
+ AssignmentPattern: 'AssignmentPattern',
ArrayExpression: 'ArrayExpression',
ArrayPattern: 'ArrayPattern',
ArrowFunctionExpression: 'ArrowFunctionExpression',
@@ -175,8 +164,9 @@
DirectiveStatement: 'DirectiveStatement',
DoWhileStatement: 'DoWhileStatement',
EmptyStatement: 'EmptyStatement',
- ExportBatchSpecifier: 'ExportBatchSpecifier',
- ExportDeclaration: 'ExportDeclaration',
+ ExportAllDeclaration: 'ExportAllDeclaration',
+ ExportDefaultDeclaration: 'ExportDefaultDeclaration',
+ ExportNamedDeclaration: 'ExportNamedDeclaration',
ExportSpecifier: 'ExportSpecifier',
ExpressionStatement: 'ExpressionStatement',
ForStatement: 'ForStatement',
@@ -195,6 +185,7 @@
LabeledStatement: 'LabeledStatement',
LogicalExpression: 'LogicalExpression',
MemberExpression: 'MemberExpression',
+ MetaProperty: 'MetaProperty',
MethodDefinition: 'MethodDefinition',
ModuleSpecifier: 'ModuleSpecifier',
NewExpression: 'NewExpression',
@@ -202,9 +193,11 @@
ObjectPattern: 'ObjectPattern',
Program: 'Program',
Property: 'Property',
+ RestElement: 'RestElement',
ReturnStatement: 'ReturnStatement',
SequenceExpression: 'SequenceExpression',
SpreadElement: 'SpreadElement',
+ Super: 'Super',
SwitchStatement: 'SwitchStatement',
SwitchCase: 'SwitchCase',
TaggedTemplateExpression: 'TaggedTemplateExpression',
@@ -224,9 +217,10 @@
VisitorKeys = {
AssignmentExpression: ['left', 'right'],
+ AssignmentPattern: ['left', 'right'],
ArrayExpression: ['elements'],
ArrayPattern: ['elements'],
- ArrowFunctionExpression: ['params', 'defaults', 'rest', 'body'],
+ ArrowFunctionExpression: ['params', 'body'],
AwaitExpression: ['argument'], // CAUTION: It's deferred to ES7.
BlockStatement: ['body'],
BinaryExpression: ['left', 'right'],
@@ -234,8 +228,8 @@
CallExpression: ['callee', 'arguments'],
CatchClause: ['param', 'body'],
ClassBody: ['body'],
- ClassDeclaration: ['id', 'body', 'superClass'],
- ClassExpression: ['id', 'body', 'superClass'],
+ ClassDeclaration: ['id', 'superClass', 'body'],
+ ClassExpression: ['id', 'superClass', 'body'],
ComprehensionBlock: ['left', 'right'], // CAUTION: It's deferred to ES7.
ComprehensionExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7.
ConditionalExpression: ['test', 'consequent', 'alternate'],
@@ -244,26 +238,28 @@
DirectiveStatement: [],
DoWhileStatement: ['body', 'test'],
EmptyStatement: [],
- ExportBatchSpecifier: [],
- ExportDeclaration: ['declaration', 'specifiers', 'source'],
- ExportSpecifier: ['id', 'name'],
+ ExportAllDeclaration: ['source'],
+ ExportDefaultDeclaration: ['declaration'],
+ ExportNamedDeclaration: ['declaration', 'specifiers', 'source'],
+ ExportSpecifier: ['exported', 'local'],
ExpressionStatement: ['expression'],
ForStatement: ['init', 'test', 'update', 'body'],
ForInStatement: ['left', 'right', 'body'],
ForOfStatement: ['left', 'right', 'body'],
- FunctionDeclaration: ['id', 'params', 'defaults', 'rest', 'body'],
- FunctionExpression: ['id', 'params', 'defaults', 'rest', 'body'],
+ FunctionDeclaration: ['id', 'params', 'body'],
+ FunctionExpression: ['id', 'params', 'body'],
GeneratorExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7.
Identifier: [],
IfStatement: ['test', 'consequent', 'alternate'],
ImportDeclaration: ['specifiers', 'source'],
- ImportDefaultSpecifier: ['id'],
- ImportNamespaceSpecifier: ['id'],
- ImportSpecifier: ['id', 'name'],
+ ImportDefaultSpecifier: ['local'],
+ ImportNamespaceSpecifier: ['local'],
+ ImportSpecifier: ['imported', 'local'],
Literal: [],
LabeledStatement: ['label', 'body'],
LogicalExpression: ['left', 'right'],
MemberExpression: ['object', 'property'],
+ MetaProperty: ['meta', 'property'],
MethodDefinition: ['key', 'value'],
ModuleSpecifier: [],
NewExpression: ['callee', 'arguments'],
@@ -271,9 +267,11 @@
ObjectPattern: ['properties'],
Program: ['body'],
Property: ['key', 'value'],
+ RestElement: [ 'argument' ],
ReturnStatement: ['argument'],
SequenceExpression: ['expressions'],
SpreadElement: ['argument'],
+ Super: [],
SwitchStatement: ['discriminant', 'cases'],
SwitchCase: ['test', 'consequent'],
TaggedTemplateExpression: ['tag', 'quasi'],
@@ -281,7 +279,7 @@
TemplateLiteral: ['quasis', 'expressions'],
ThisExpression: [],
ThrowStatement: ['argument'],
- TryStatement: ['block', 'handlers', 'handler', 'guardedHandlers', 'finalizer'],
+ TryStatement: ['block', 'handler', 'finalizer'],
UnaryExpression: ['argument'],
UpdateExpression: ['argument'],
VariableDeclaration: ['declarations'],
@@ -434,7 +432,13 @@
this.__leavelist = [];
this.__current = null;
this.__state = null;
- this.__fallback = visitor.fallback === 'iteration';
+ this.__fallback = null;
+ if (visitor.fallback === 'iteration') {
+ this.__fallback = objectKeys;
+ } else if (typeof visitor.fallback === 'function') {
+ this.__fallback = visitor.fallback;
+ }
+
this.__keys = VisitorKeys;
if (visitor.keys) {
this.__keys = extend(objectCreate(this.__keys), visitor.keys);
@@ -508,11 +512,11 @@
}
node = element.node;
- nodeType = element.wrap || node.type;
+ nodeType = node.type || element.wrap;
candidates = this.__keys[nodeType];
if (!candidates) {
if (this.__fallback) {
- candidates = objectKeys(node);
+ candidates = this.__fallback(node);
} else {
throw new Error('Unknown node type ' + nodeType + '.');
}
@@ -550,6 +554,20 @@
};
Controller.prototype.replace = function replace(root, visitor) {
+ var worklist,
+ leavelist,
+ node,
+ nodeType,
+ target,
+ element,
+ current,
+ current2,
+ candidates,
+ candidate,
+ sentinel,
+ outer,
+ key;
+
function removeElem(element) {
var i,
key,
@@ -575,20 +593,6 @@
}
}
- var worklist,
- leavelist,
- node,
- nodeType,
- target,
- element,
- current,
- current2,
- candidates,
- candidate,
- sentinel,
- outer,
- key;
-
this.__initialize(root, visitor);
sentinel = {};
@@ -662,11 +666,11 @@
continue;
}
- nodeType = element.wrap || node.type;
+ nodeType = node.type || element.wrap;
candidates = this.__keys[nodeType];
if (!candidates) {
if (this.__fallback) {
- candidates = objectKeys(node);
+ candidates = this.__fallback(node);
} else {
throw new Error('Unknown node type ' + nodeType + '.');
}
@@ -830,7 +834,7 @@
return tree;
}
- exports.version = '1.8.1-dev';
+ exports.version = require('./package.json').version;
exports.Syntax = Syntax;
exports.traverse = traverse;
exports.replace = replace;
@@ -841,5 +845,5 @@
exports.cloneEnvironment = function () { return clone({}); };
return exports;
-}));
+}(exports));
/* vim: set sw=4 ts=4 et tw=80 : */
diff --git a/node_modules/estraverse/package.json b/node_modules/estraverse/package.json
index e0c441646..f8567e392 100644
--- a/node_modules/estraverse/package.json
+++ b/node_modules/estraverse/package.json
@@ -3,7 +3,7 @@
"description": "ECMAScript JS AST traversal functions",
"homepage": "https://github.com/estools/estraverse",
"main": "estraverse.js",
- "version": "1.9.3",
+ "version": "4.2.0",
"engines": {
"node": ">=0.10.0"
},
@@ -19,8 +19,10 @@
"url": "http://github.com/estools/estraverse.git"
},
"devDependencies": {
+ "babel-preset-es2015": "^6.3.13",
+ "babel-register": "^6.3.13",
"chai": "^2.1.1",
- "coffee-script": "^1.8.0",
+ "espree": "^1.11.0",
"gulp": "^3.8.10",
"gulp-bump": "^0.2.2",
"gulp-filter": "^2.0.0",
@@ -29,15 +31,10 @@
"jshint": "^2.5.6",
"mocha": "^2.1.0"
},
- "licenses": [
- {
- "type": "BSD",
- "url": "http://github.com/estools/estraverse/raw/master/LICENSE.BSD"
- }
- ],
+ "license": "BSD-2-Clause",
"scripts": {
"test": "npm run-script lint && npm run-script unit-test",
"lint": "jshint estraverse.js",
- "unit-test": "mocha --compilers coffee:coffee-script/register"
+ "unit-test": "mocha --compilers js:babel-register"
}
}
diff --git a/node_modules/etag/HISTORY.md b/node_modules/etag/HISTORY.md
deleted file mode 100644
index 136da8c69..000000000
--- a/node_modules/etag/HISTORY.md
+++ /dev/null
@@ -1,78 +0,0 @@
-1.8.0 / 2017-02-18
-==================
-
- * Use SHA1 instead of MD5 for ETag hashing
- - Improves performance for larger entities
- - Works with FIPS 140-2 OpenSSL configuration
-
-1.7.0 / 2015-06-08
-==================
-
- * Always include entity length in ETags for hash length extensions
- * Generate non-Stats ETags using MD5 only (no longer CRC32)
- * Improve stat performance by removing hashing
- * Remove base64 padding in ETags to shorten
- * Use MD5 instead of MD4 in weak ETags over 1KB
-
-1.6.0 / 2015-05-10
-==================
-
- * Improve support for JXcore
- * Remove requirement of `atime` in the stats object
- * Support "fake" stats objects in environments without `fs`
-
-1.5.1 / 2014-11-19
-==================
-
- * deps: crc@3.2.1
- - Minor fixes
-
-1.5.0 / 2014-10-14
-==================
-
- * Improve string performance
- * Slightly improve speed for weak ETags over 1KB
-
-1.4.0 / 2014-09-21
-==================
-
- * Support "fake" stats objects
- * Support Node.js 0.6
-
-1.3.1 / 2014-09-14
-==================
-
- * Use the (new and improved) `crc` for crc32
-
-1.3.0 / 2014-08-29
-==================
-
- * Default strings to strong ETags
- * Improve speed for weak ETags over 1KB
-
-1.2.1 / 2014-08-29
-==================
-
- * Use the (much faster) `buffer-crc32` for crc32
-
-1.2.0 / 2014-08-24
-==================
-
- * Add support for file stat objects
-
-1.1.0 / 2014-08-24
-==================
-
- * Add fast-path for empty entity
- * Add weak ETag generation
- * Shrink size of generated ETags
-
-1.0.1 / 2014-08-24
-==================
-
- * Fix behavior of string containing Unicode
-
-1.0.0 / 2014-05-18
-==================
-
- * Initial release
diff --git a/node_modules/etag/LICENSE b/node_modules/etag/LICENSE
deleted file mode 100644
index cab251c2b..000000000
--- a/node_modules/etag/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2014-2016 Douglas Christopher Wilson
-
-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.
diff --git a/node_modules/etag/README.md b/node_modules/etag/README.md
deleted file mode 100644
index 9963a5fc4..000000000
--- a/node_modules/etag/README.md
+++ /dev/null
@@ -1,159 +0,0 @@
-# etag
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Node.js Version][node-version-image]][node-version-url]
-[![Build Status][travis-image]][travis-url]
-[![Test Coverage][coveralls-image]][coveralls-url]
-
-Create simple HTTP ETags
-
-This module generates HTTP ETags (as defined in RFC 7232) for use in
-HTTP responses.
-
-## Installation
-
-This is a [Node.js](https://nodejs.org/en/) module available through the
-[npm registry](https://www.npmjs.com/). Installation is done using the
-[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
-
-```sh
-$ npm install etag
-```
-
-## API
-
-<!-- eslint-disable no-unused-vars -->
-
-```js
-var etag = require('etag')
-```
-
-### etag(entity, [options])
-
-Generate a strong ETag for the given entity. This should be the complete
-body of the entity. Strings, `Buffer`s, and `fs.Stats` are accepted. By
-default, a strong ETag is generated except for `fs.Stats`, which will
-generate a weak ETag (this can be overwritten by `options.weak`).
-
-<!-- eslint-disable no-undef -->
-
-```js
-res.setHeader('ETag', etag(body))
-```
-
-#### Options
-
-`etag` accepts these properties in the options object.
-
-##### weak
-
-Specifies if the generated ETag will include the weak validator mark (that
-is, the leading `W/`). The actual entity tag is the same. The default value
-is `false`, unless the `entity` is `fs.Stats`, in which case it is `true`.
-
-## Testing
-
-```sh
-$ npm test
-```
-
-## Benchmark
-
-```bash
-$ npm run-script bench
-
-> etag@1.8.0 bench nodejs-etag
-> node benchmark/index.js
-
- http_parser@2.7.0
- node@6.9.1
- v8@5.1.281.84
- uv@1.9.1
- zlib@1.2.8
- ares@1.10.1-DEV
- icu@57.1
- modules@48
- openssl@1.0.2j
-
-> node benchmark/body0-100b.js
-
- 100B body
-
- 4 tests completed.
-
-* buffer - strong x 498,600 ops/sec ±0.82% (191 runs sampled)
-* buffer - weak x 496,249 ops/sec ±0.59% (179 runs sampled)
- string - strong x 466,298 ops/sec ±0.88% (186 runs sampled)
- string - weak x 464,298 ops/sec ±0.84% (184 runs sampled)
-
-> node benchmark/body1-1kb.js
-
- 1KB body
-
- 4 tests completed.
-
-* buffer - strong x 346,535 ops/sec ±0.32% (189 runs sampled)
-* buffer - weak x 344,958 ops/sec ±0.52% (185 runs sampled)
- string - strong x 259,672 ops/sec ±0.82% (191 runs sampled)
- string - weak x 260,931 ops/sec ±0.76% (190 runs sampled)
-
-> node benchmark/body2-5kb.js
-
- 5KB body
-
- 4 tests completed.
-
-* buffer - strong x 136,510 ops/sec ±0.62% (189 runs sampled)
-* buffer - weak x 136,604 ops/sec ±0.51% (191 runs sampled)
- string - strong x 80,903 ops/sec ±0.84% (192 runs sampled)
- string - weak x 82,785 ops/sec ±0.50% (193 runs sampled)
-
-> node benchmark/body3-10kb.js
-
- 10KB body
-
- 4 tests completed.
-
-* buffer - strong x 78,650 ops/sec ±0.31% (193 runs sampled)
-* buffer - weak x 78,685 ops/sec ±0.41% (193 runs sampled)
- string - strong x 43,999 ops/sec ±0.43% (193 runs sampled)
- string - weak x 44,081 ops/sec ±0.45% (192 runs sampled)
-
-> node benchmark/body4-100kb.js
-
- 100KB body
-
- 4 tests completed.
-
- buffer - strong x 8,860 ops/sec ±0.66% (191 runs sampled)
-* buffer - weak x 9,030 ops/sec ±0.26% (193 runs sampled)
- string - strong x 4,838 ops/sec ±0.16% (194 runs sampled)
- string - weak x 4,800 ops/sec ±0.52% (192 runs sampled)
-
-> node benchmark/stats.js
-
- stat
-
- 4 tests completed.
-
-* real - strong x 1,468,073 ops/sec ±0.32% (191 runs sampled)
-* real - weak x 1,446,852 ops/sec ±0.64% (190 runs sampled)
- fake - strong x 635,707 ops/sec ±0.33% (194 runs sampled)
- fake - weak x 627,708 ops/sec ±0.36% (192 runs sampled)
-```
-
-## License
-
-[MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/etag.svg
-[npm-url]: https://npmjs.org/package/etag
-[node-version-image]: https://img.shields.io/node/v/etag.svg
-[node-version-url]: https://nodejs.org/en/download/
-[travis-image]: https://img.shields.io/travis/jshttp/etag/master.svg
-[travis-url]: https://travis-ci.org/jshttp/etag
-[coveralls-image]: https://img.shields.io/coveralls/jshttp/etag/master.svg
-[coveralls-url]: https://coveralls.io/r/jshttp/etag?branch=master
-[downloads-image]: https://img.shields.io/npm/dm/etag.svg
-[downloads-url]: https://npmjs.org/package/etag
diff --git a/node_modules/etag/index.js b/node_modules/etag/index.js
deleted file mode 100644
index 607f1488e..000000000
--- a/node_modules/etag/index.js
+++ /dev/null
@@ -1,132 +0,0 @@
-/*!
- * etag
- * Copyright(c) 2014-2016 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = etag
-
-/**
- * Module dependencies.
- * @private
- */
-
-var crypto = require('crypto')
-var Stats = require('fs').Stats
-
-/**
- * Module variables.
- * @private
- */
-
-var base64PadCharRegExp = /=+$/
-var toString = Object.prototype.toString
-
-/**
- * Generate an entity tag.
- *
- * @param {Buffer|string} entity
- * @return {string}
- * @private
- */
-
-function entitytag (entity) {
- if (entity.length === 0) {
- // fast-path empty
- return '"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"'
- }
-
- // compute hash of entity
- var hash = crypto
- .createHash('sha1')
- .update(entity, 'utf8')
- .digest('base64')
- .replace(base64PadCharRegExp, '')
-
- // compute length of entity
- var len = typeof entity === 'string'
- ? Buffer.byteLength(entity, 'utf8')
- : entity.length
-
- return '"' + len.toString(16) + '-' + hash + '"'
-}
-
-/**
- * Create a simple ETag.
- *
- * @param {string|Buffer|Stats} entity
- * @param {object} [options]
- * @param {boolean} [options.weak]
- * @return {String}
- * @public
- */
-
-function etag (entity, options) {
- if (entity == null) {
- throw new TypeError('argument entity is required')
- }
-
- // support fs.Stats object
- var isStats = isstats(entity)
- var weak = options && typeof options.weak === 'boolean'
- ? options.weak
- : isStats
-
- // validate argument
- if (!isStats && typeof entity !== 'string' && !Buffer.isBuffer(entity)) {
- throw new TypeError('argument entity must be string, Buffer, or fs.Stats')
- }
-
- // generate entity tag
- var tag = isStats
- ? stattag(entity)
- : entitytag(entity)
-
- return weak
- ? 'W/' + tag
- : tag
-}
-
-/**
- * Determine if object is a Stats object.
- *
- * @param {object} obj
- * @return {boolean}
- * @api private
- */
-
-function isstats (obj) {
- // genuine fs.Stats
- if (typeof Stats === 'function' && obj instanceof Stats) {
- return true
- }
-
- // quack quack
- return obj && typeof obj === 'object' &&
- 'ctime' in obj && toString.call(obj.ctime) === '[object Date]' &&
- 'mtime' in obj && toString.call(obj.mtime) === '[object Date]' &&
- 'ino' in obj && typeof obj.ino === 'number' &&
- 'size' in obj && typeof obj.size === 'number'
-}
-
-/**
- * Generate a tag for a stat.
- *
- * @param {object} stat
- * @return {string}
- * @private
- */
-
-function stattag (stat) {
- var mtime = stat.mtime.getTime().toString(16)
- var size = stat.size.toString(16)
-
- return '"' + size + '-' + mtime + '"'
-}
diff --git a/node_modules/etag/package.json b/node_modules/etag/package.json
deleted file mode 100644
index 110f2fc0a..000000000
--- a/node_modules/etag/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "etag",
- "description": "Create simple HTTP ETags",
- "version": "1.8.0",
- "contributors": [
- "Douglas Christopher Wilson <doug@somethingdoug.com>",
- "David Björklund <david.bjorklund@gmail.com>"
- ],
- "license": "MIT",
- "keywords": [
- "etag",
- "http",
- "res"
- ],
- "repository": "jshttp/etag",
- "devDependencies": {
- "beautify-benchmark": "0.2.4",
- "benchmark": "2.1.3",
- "eslint": "3.15.0",
- "eslint-config-standard": "6.2.1",
- "eslint-plugin-markdown": "1.0.0-beta.3",
- "eslint-plugin-promise": "3.4.2",
- "eslint-plugin-standard": "2.0.1",
- "istanbul": "0.4.5",
- "mocha": "1.21.5",
- "seedrandom": "2.4.2"
- },
- "files": [
- "LICENSE",
- "HISTORY.md",
- "README.md",
- "index.js"
- ],
- "engines": {
- "node": ">= 0.6"
- },
- "scripts": {
- "bench": "node benchmark/index.js",
- "lint": "eslint --plugin markdown --ext js,md .",
- "test": "mocha --reporter spec --bail --check-leaks test/",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/",
- "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"
- }
-}
diff --git a/node_modules/fast-levenshtein/LICENSE.md b/node_modules/fast-levenshtein/LICENSE.md
deleted file mode 100644
index 6212406b4..000000000
--- a/node_modules/fast-levenshtein/LICENSE.md
+++ /dev/null
@@ -1,25 +0,0 @@
-(MIT License)
-
-Copyright (c) 2013 [Ramesh Nair](http://www.hiddentao.com/)
-
-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.
-
diff --git a/node_modules/fast-levenshtein/README.md b/node_modules/fast-levenshtein/README.md
deleted file mode 100644
index a77899539..000000000
--- a/node_modules/fast-levenshtein/README.md
+++ /dev/null
@@ -1,104 +0,0 @@
-# fast-levenshtein - Levenshtein algorithm in Javascript
-
-[![Build Status](https://secure.travis-ci.org/hiddentao/fast-levenshtein.png)](http://travis-ci.org/hiddentao/fast-levenshtein)
-[![NPM module](https://badge.fury.io/js/fast-levenshtein.png)](https://badge.fury.io/js/fast-levenshtein)
-[![NPM downloads](https://img.shields.io/npm/dm/fast-levenshtein.svg?maxAge=2592000)](https://www.npmjs.com/package/fast-levenshtein)
-[![Follow on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social&label=Follow&maxAge=2592000)](https://twitter.com/hiddentao)
-
-An efficient Javascript implementation of the [Levenshtein algorithm](http://en.wikipedia.org/wiki/Levenshtein_distance) with locale-specific collator support.
-
-## Features
-
-* Works in node.js and in the browser.
-* Better performance than other implementations by not needing to store the whole matrix ([more info](http://www.codeproject.com/Articles/13525/Fast-memory-efficient-Levenshtein-algorithm)).
-* Locale-sensitive string comparisions if needed.
-* Comprehensive test suite and performance benchmark.
-* Small: <1 KB minified and gzipped
-
-## Installation
-
-### node.js
-
-Install using [npm](http://npmjs.org/):
-
-```bash
-$ npm install fast-levenshtein
-```
-
-### Browser
-
-Using bower:
-
-```bash
-$ bower install fast-levenshtein
-```
-
-If you are not using any module loader system then the API will then be accessible via the `window.Levenshtein` object.
-
-## Examples
-
-**Default usage**
-
-```javascript
-var levenshtein = require('fast-levenshtein');
-
-var distance = levenshtein.get('back', 'book'); // 2
-var distance = levenshtein.get('我愛你', '我å«ä½ '); // 1
-```
-
-**Locale-sensitive string comparisons**
-
-It supports using [Intl.Collator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Collator) for locale-sensitive string comparisons:
-
-```javascript
-var levenshtein = require('fast-levenshtein');
-
-levenshtein.get('mikailovitch', 'Mikhaïlovitch', { useCollator: true});
-// 1
-```
-
-## Building and Testing
-
-To build the code and run the tests:
-
-```bash
-$ npm install -g grunt-cli
-$ npm install
-$ npm run build
-```
-
-## Performance
-
-_Thanks to [Titus Wormer](https://github.com/wooorm) for [encouraging me](https://github.com/hiddentao/fast-levenshtein/issues/1) to do this._
-
-Benchmarked against other node.js levenshtein distance modules (on Macbook Air 2012, Core i7, 8GB RAM):
-
-```bash
-Running suite Implementation comparison [benchmark/speed.js]...
->> levenshtein-edit-distance x 234 ops/sec ±3.02% (73 runs sampled)
->> levenshtein-component x 422 ops/sec ±4.38% (83 runs sampled)
->> levenshtein-deltas x 283 ops/sec ±3.83% (78 runs sampled)
->> natural x 255 ops/sec ±0.76% (88 runs sampled)
->> levenshtein x 180 ops/sec ±3.55% (86 runs sampled)
->> fast-levenshtein x 1,792 ops/sec ±2.72% (95 runs sampled)
-Benchmark done.
-Fastest test is fast-levenshtein at 4.2x faster than levenshtein-component
-```
-
-You can run this benchmark yourself by doing:
-
-```bash
-$ npm install
-$ npm run build
-$ npm run benchmark
-```
-
-## Contributing
-
-If you wish to submit a pull request please update and/or create new tests for any changes you make and ensure the grunt build passes.
-
-See [CONTRIBUTING.md](https://github.com/hiddentao/fast-levenshtein/blob/master/CONTRIBUTING.md) for details.
-
-## License
-
-MIT - see [LICENSE.md](https://github.com/hiddentao/fast-levenshtein/blob/master/LICENSE.md)
diff --git a/node_modules/fast-levenshtein/levenshtein.js b/node_modules/fast-levenshtein/levenshtein.js
deleted file mode 100644
index dbe362808..000000000
--- a/node_modules/fast-levenshtein/levenshtein.js
+++ /dev/null
@@ -1,136 +0,0 @@
-(function() {
- 'use strict';
-
- var collator;
- try {
- collator = (typeof Intl !== "undefined" && typeof Intl.Collator !== "undefined") ? Intl.Collator("generic", { sensitivity: "base" }) : null;
- } catch (err){
- console.log("Collator could not be initialized and wouldn't be used");
- }
- // arrays to re-use
- var prevRow = [],
- str2Char = [];
-
- /**
- * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance.
- */
- var Levenshtein = {
- /**
- * Calculate levenshtein distance of the two strings.
- *
- * @param str1 String the first string.
- * @param str2 String the second string.
- * @param [options] Additional options.
- * @param [options.useCollator] Use `Intl.Collator` for locale-sensitive string comparison.
- * @return Integer the levenshtein distance (0 and above).
- */
- get: function(str1, str2, options) {
- var useCollator = (options && collator && options.useCollator);
-
- var str1Len = str1.length,
- str2Len = str2.length;
-
- // base cases
- if (str1Len === 0) return str2Len;
- if (str2Len === 0) return str1Len;
-
- // two rows
- var curCol, nextCol, i, j, tmp;
-
- // initialise previous row
- for (i=0; i<str2Len; ++i) {
- prevRow[i] = i;
- str2Char[i] = str2.charCodeAt(i);
- }
- prevRow[str2Len] = str2Len;
-
- var strCmp;
- if (useCollator) {
- // calculate current row distance from previous row using collator
- for (i = 0; i < str1Len; ++i) {
- nextCol = i + 1;
-
- for (j = 0; j < str2Len; ++j) {
- curCol = nextCol;
-
- // substution
- strCmp = 0 === collator.compare(str1.charAt(i), String.fromCharCode(str2Char[j]));
-
- nextCol = prevRow[j] + (strCmp ? 0 : 1);
-
- // insertion
- tmp = curCol + 1;
- if (nextCol > tmp) {
- nextCol = tmp;
- }
- // deletion
- tmp = prevRow[j + 1] + 1;
- if (nextCol > tmp) {
- nextCol = tmp;
- }
-
- // copy current col value into previous (in preparation for next iteration)
- prevRow[j] = curCol;
- }
-
- // copy last col value into previous (in preparation for next iteration)
- prevRow[j] = nextCol;
- }
- }
- else {
- // calculate current row distance from previous row without collator
- for (i = 0; i < str1Len; ++i) {
- nextCol = i + 1;
-
- for (j = 0; j < str2Len; ++j) {
- curCol = nextCol;
-
- // substution
- strCmp = str1.charCodeAt(i) === str2Char[j];
-
- nextCol = prevRow[j] + (strCmp ? 0 : 1);
-
- // insertion
- tmp = curCol + 1;
- if (nextCol > tmp) {
- nextCol = tmp;
- }
- // deletion
- tmp = prevRow[j + 1] + 1;
- if (nextCol > tmp) {
- nextCol = tmp;
- }
-
- // copy current col value into previous (in preparation for next iteration)
- prevRow[j] = curCol;
- }
-
- // copy last col value into previous (in preparation for next iteration)
- prevRow[j] = nextCol;
- }
- }
- return nextCol;
- }
-
- };
-
- // amd
- if (typeof define !== "undefined" && define !== null && define.amd) {
- define(function() {
- return Levenshtein;
- });
- }
- // commonjs
- else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
- module.exports = Levenshtein;
- }
- // web worker
- else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
- self.Levenshtein = Levenshtein;
- }
- // browser main thread
- else if (typeof window !== "undefined" && window !== null) {
- window.Levenshtein = Levenshtein;
- }
-}());
-
diff --git a/node_modules/fast-levenshtein/package.json b/node_modules/fast-levenshtein/package.json
deleted file mode 100644
index 5b4736d45..000000000
--- a/node_modules/fast-levenshtein/package.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "fast-levenshtein",
- "version": "2.0.6",
- "description": "Efficient implementation of Levenshtein algorithm with locale-specific collator support.",
- "main": "levenshtein.js",
- "files": [
- "levenshtein.js"
- ],
- "scripts": {
- "build": "grunt build",
- "prepublish": "npm run build",
- "benchmark": "grunt benchmark",
- "test": "mocha"
- },
- "devDependencies": {
- "chai": "~1.5.0",
- "grunt": "~0.4.1",
- "grunt-benchmark": "~0.2.0",
- "grunt-cli": "^1.2.0",
- "grunt-contrib-jshint": "~0.4.3",
- "grunt-contrib-uglify": "~0.2.0",
- "grunt-mocha-test": "~0.2.2",
- "grunt-npm-install": "~0.1.0",
- "load-grunt-tasks": "~0.6.0",
- "lodash": "^4.0.1",
- "mocha": "~1.9.0"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/hiddentao/fast-levenshtein.git"
- },
- "keywords": [
- "levenshtein",
- "distance",
- "string"
- ],
- "author": "Ramesh Nair <ram@hiddentao.com> (http://www.hiddentao.com/)",
- "license": "MIT"
-}
diff --git a/node_modules/finalhandler/HISTORY.md b/node_modules/finalhandler/HISTORY.md
deleted file mode 100644
index b1ff016f0..000000000
--- a/node_modules/finalhandler/HISTORY.md
+++ /dev/null
@@ -1,150 +0,0 @@
-1.0.3 / 2017-05-16
-==================
-
- * deps: debug@2.6.7
- - deps: ms@2.0.0
-
-1.0.2 / 2017-04-22
-==================
-
- * deps: debug@2.6.4
- - deps: ms@0.7.3
-
-1.0.1 / 2017-03-21
-==================
-
- * Fix missing `</html>` in HTML document
- * deps: debug@2.6.3
- - Fix: `DEBUG_MAX_ARRAY_LENGTH`
-
-1.0.0 / 2017-02-15
-==================
-
- * Fix exception when `err` cannot be converted to a string
- * Fully URL-encode the pathname in the 404 message
- * Only include the pathname in the 404 message
- * Send complete HTML document
- * Set `Content-Security-Policy: default-src 'self'` header
- * deps: debug@2.6.1
- - Allow colors in workers
- - Deprecated `DEBUG_FD` environment variable set to `3` or higher
- - Fix error when running under React Native
- - Use same color for same namespace
- - deps: ms@0.7.2
-
-0.5.1 / 2016-11-12
-==================
-
- * Fix exception when `err.headers` is not an object
- * deps: statuses@~1.3.1
- * perf: hoist regular expressions
- * perf: remove duplicate validation path
-
-0.5.0 / 2016-06-15
-==================
-
- * Change invalid or non-numeric status code to 500
- * Overwrite status message to match set status code
- * Prefer `err.statusCode` if `err.status` is invalid
- * Set response headers from `err.headers` object
- * Use `statuses` instead of `http` module for status messages
- - Includes all defined status messages
-
-0.4.1 / 2015-12-02
-==================
-
- * deps: escape-html@~1.0.3
- - perf: enable strict mode
- - perf: optimize string replacement
- - perf: use faster string coercion
-
-0.4.0 / 2015-06-14
-==================
-
- * Fix a false-positive when unpiping in Node.js 0.8
- * Support `statusCode` property on `Error` objects
- * Use `unpipe` module for unpiping requests
- * deps: escape-html@1.0.2
- * deps: on-finished@~2.3.0
- - Add defined behavior for HTTP `CONNECT` requests
- - Add defined behavior for HTTP `Upgrade` requests
- - deps: ee-first@1.1.1
- * perf: enable strict mode
- * perf: remove argument reassignment
-
-0.3.6 / 2015-05-11
-==================
-
- * deps: debug@~2.2.0
- - deps: ms@0.7.1
-
-0.3.5 / 2015-04-22
-==================
-
- * deps: on-finished@~2.2.1
- - Fix `isFinished(req)` when data buffered
-
-0.3.4 / 2015-03-15
-==================
-
- * deps: debug@~2.1.3
- - Fix high intensity foreground color for bold
- - deps: ms@0.7.0
-
-0.3.3 / 2015-01-01
-==================
-
- * deps: debug@~2.1.1
- * deps: on-finished@~2.2.0
-
-0.3.2 / 2014-10-22
-==================
-
- * deps: on-finished@~2.1.1
- - Fix handling of pipelined requests
-
-0.3.1 / 2014-10-16
-==================
-
- * deps: debug@~2.1.0
- - Implement `DEBUG_FD` env variable support
-
-0.3.0 / 2014-09-17
-==================
-
- * Terminate in progress response only on error
- * Use `on-finished` to determine request status
-
-0.2.0 / 2014-09-03
-==================
-
- * Set `X-Content-Type-Options: nosniff` header
- * deps: debug@~2.0.0
-
-0.1.0 / 2014-07-16
-==================
-
- * Respond after request fully read
- - prevents hung responses and socket hang ups
- * deps: debug@1.0.4
-
-0.0.3 / 2014-07-11
-==================
-
- * deps: debug@1.0.3
- - Add support for multiple wildcards in namespaces
-
-0.0.2 / 2014-06-19
-==================
-
- * Handle invalid status codes
-
-0.0.1 / 2014-06-05
-==================
-
- * deps: debug@1.0.2
-
-0.0.0 / 2014-06-05
-==================
-
- * Extracted from connect/express
diff --git a/node_modules/finalhandler/LICENSE b/node_modules/finalhandler/LICENSE
deleted file mode 100644
index fb3098277..000000000
--- a/node_modules/finalhandler/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2014-2017 Douglas Christopher Wilson <doug@somethingdoug.com>
-
-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.
diff --git a/node_modules/finalhandler/README.md b/node_modules/finalhandler/README.md
deleted file mode 100644
index 84c3d2af1..000000000
--- a/node_modules/finalhandler/README.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# finalhandler
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Node.js Version][node-image]][node-url]
-[![Build Status][travis-image]][travis-url]
-[![Test Coverage][coveralls-image]][coveralls-url]
-
-Node.js function to invoke as the final step to respond to HTTP request.
-
-## Installation
-
-This is a [Node.js](https://nodejs.org/en/) module available through the
-[npm registry](https://www.npmjs.com/). Installation is done using the
-[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
-
-```sh
-$ npm install finalhandler
-```
-
-## API
-
-```
-var finalhandler = require('finalhandler')
-```
-
-### finalhandler(req, res, [options])
-
-Returns function to be invoked as the final step for the given `req` and `res`.
-This function is to be invoked as `fn(err)`. If `err` is falsy, the handler will
-write out a 404 response to the `res`. If it is truthy, an error response will
-be written out to the `res`.
-
-When an error is written, the following information is added to the response:
-
- * The `res.statusCode` is set from `err.status` (or `err.statusCode`). If
- this value is outside the 4xx or 5xx range, it will be set to 500.
- * The `res.statusMessage` is set according to the status code.
- * The body will be the HTML of the status code message if `env` is
- `'production'`, otherwise will be `err.stack`.
- * Any headers specified in an `err.headers` object.
-
-The final handler will also unpipe anything from `req` when it is invoked.
-
-#### options.env
-
-By default, the environment is determined by `NODE_ENV` variable, but it can be
-overridden by this option.
-
-#### options.onerror
-
-Provide a function to be called with the `err` when it exists. Can be used for
-writing errors to a central location without excessive function generation. Called
-as `onerror(err, req, res)`.
-
-## Examples
-
-### always 404
-
-```js
-var finalhandler = require('finalhandler')
-var http = require('http')
-
-var server = http.createServer(function (req, res) {
- var done = finalhandler(req, res)
- done()
-})
-
-server.listen(3000)
-```
-
-### perform simple action
-
-```js
-var finalhandler = require('finalhandler')
-var fs = require('fs')
-var http = require('http')
-
-var server = http.createServer(function (req, res) {
- var done = finalhandler(req, res)
-
- fs.readFile('index.html', function (err, buf) {
- if (err) return done(err)
- res.setHeader('Content-Type', 'text/html')
- res.end(buf)
- })
-})
-
-server.listen(3000)
-```
-
-### use with middleware-style functions
-
-```js
-var finalhandler = require('finalhandler')
-var http = require('http')
-var serveStatic = require('serve-static')
-
-var serve = serveStatic('public')
-
-var server = http.createServer(function (req, res) {
- var done = finalhandler(req, res)
- serve(req, res, done)
-})
-
-server.listen(3000)
-```
-
-### keep log of all errors
-
-```js
-var finalhandler = require('finalhandler')
-var fs = require('fs')
-var http = require('http')
-
-var server = http.createServer(function (req, res) {
- var done = finalhandler(req, res, {onerror: logerror})
-
- fs.readFile('index.html', function (err, buf) {
- if (err) return done(err)
- res.setHeader('Content-Type', 'text/html')
- res.end(buf)
- })
-})
-
-server.listen(3000)
-
-function logerror (err) {
- console.error(err.stack || err.toString())
-}
-```
-
-## License
-
-[MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/finalhandler.svg
-[npm-url]: https://npmjs.org/package/finalhandler
-[node-image]: https://img.shields.io/node/v/finalhandler.svg
-[node-url]: https://nodejs.org/en/download
-[travis-image]: https://img.shields.io/travis/pillarjs/finalhandler.svg
-[travis-url]: https://travis-ci.org/pillarjs/finalhandler
-[coveralls-image]: https://img.shields.io/coveralls/pillarjs/finalhandler.svg
-[coveralls-url]: https://coveralls.io/r/pillarjs/finalhandler?branch=master
-[downloads-image]: https://img.shields.io/npm/dm/finalhandler.svg
-[downloads-url]: https://npmjs.org/package/finalhandler
diff --git a/node_modules/finalhandler/index.js b/node_modules/finalhandler/index.js
deleted file mode 100644
index 87974ca03..000000000
--- a/node_modules/finalhandler/index.js
+++ /dev/null
@@ -1,300 +0,0 @@
-/*!
- * finalhandler
- * Copyright(c) 2014-2017 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module dependencies.
- * @private
- */
-
-var debug = require('debug')('finalhandler')
-var encodeUrl = require('encodeurl')
-var escapeHtml = require('escape-html')
-var onFinished = require('on-finished')
-var parseUrl = require('parseurl')
-var statuses = require('statuses')
-var unpipe = require('unpipe')
-
-/**
- * Module variables.
- * @private
- */
-
-var DOUBLE_SPACE_REGEXP = /\x20{2}/g
-var NEWLINE_REGEXP = /\n/g
-
-/* istanbul ignore next */
-var defer = typeof setImmediate === 'function'
- ? setImmediate
- : function (fn) { process.nextTick(fn.bind.apply(fn, arguments)) }
-var isFinished = onFinished.isFinished
-
-/**
- * Create a minimal HTML document.
- *
- * @param {string} message
- * @private
- */
-
-function createHtmlDocument (message) {
- var body = escapeHtml(message)
- .replace(NEWLINE_REGEXP, '<br>')
- .replace(DOUBLE_SPACE_REGEXP, ' &nbsp;')
-
- return '<!DOCTYPE html>\n' +
- '<html lang="en">\n' +
- '<head>\n' +
- '<meta charset="utf-8">\n' +
- '<title>Error</title>\n' +
- '</head>\n' +
- '<body>\n' +
- '<pre>' + body + '</pre>\n' +
- '</body>\n' +
- '</html>\n'
-}
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = finalhandler
-
-/**
- * Create a function to handle the final response.
- *
- * @param {Request} req
- * @param {Response} res
- * @param {Object} [options]
- * @return {Function}
- * @public
- */
-
-function finalhandler (req, res, options) {
- var opts = options || {}
-
- // get environment
- var env = opts.env || process.env.NODE_ENV || 'development'
-
- // get error callback
- var onerror = opts.onerror
-
- return function (err) {
- var headers
- var msg
- var status
-
- // ignore 404 on in-flight response
- if (!err && res._header) {
- debug('cannot 404 after headers sent')
- return
- }
-
- // unhandled error
- if (err) {
- // respect status code from error
- status = getErrorStatusCode(err)
-
- // respect headers from error
- if (status !== undefined) {
- headers = getErrorHeaders(err)
- }
-
- // fallback to status code on response
- if (status === undefined) {
- status = getResponseStatusCode(res)
- }
-
- // get error message
- msg = getErrorMessage(err, status, env)
- } else {
- // not found
- status = 404
- msg = 'Cannot ' + req.method + ' ' + encodeUrl(parseUrl.original(req).pathname)
- }
-
- debug('default %s', status)
-
- // schedule onerror callback
- if (err && onerror) {
- defer(onerror, err, req, res)
- }
-
- // cannot actually respond
- if (res._header) {
- debug('cannot %d after headers sent', status)
- req.socket.destroy()
- return
- }
-
- // send response
- send(req, res, status, headers, msg)
- }
-}
-
-/**
- * Get headers from Error object.
- *
- * @param {Error} err
- * @return {object}
- * @private
- */
-
-function getErrorHeaders (err) {
- if (!err.headers || typeof err.headers !== 'object') {
- return undefined
- }
-
- var headers = Object.create(null)
- var keys = Object.keys(err.headers)
-
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i]
- headers[key] = err.headers[key]
- }
-
- return headers
-}
-
-/**
- * Get message from Error object, fallback to status message.
- *
- * @param {Error} err
- * @param {number} status
- * @param {string} env
- * @return {string}
- * @private
- */
-
-function getErrorMessage (err, status, env) {
- var msg
-
- if (env !== 'production') {
- // use err.stack, which typically includes err.message
- msg = err.stack
-
- // fallback to err.toString() when possible
- if (!msg && typeof err.toString === 'function') {
- msg = err.toString()
- }
- }
-
- return msg || statuses[status]
-}
-
-/**
- * Get status code from Error object.
- *
- * @param {Error} err
- * @return {number}
- * @private
- */
-
-function getErrorStatusCode (err) {
- // check err.status
- if (typeof err.status === 'number' && err.status >= 400 && err.status < 600) {
- return err.status
- }
-
- // check err.statusCode
- if (typeof err.statusCode === 'number' && err.statusCode >= 400 && err.statusCode < 600) {
- return err.statusCode
- }
-
- return undefined
-}
-
-/**
- * Get status code from response.
- *
- * @param {OutgoingMessage} res
- * @return {number}
- * @private
- */
-
-function getResponseStatusCode (res) {
- var status = res.statusCode
-
- // default status code to 500 if outside valid range
- if (typeof status !== 'number' || status < 400 || status > 599) {
- status = 500
- }
-
- return status
-}
-
-/**
- * Send response.
- *
- * @param {IncomingMessage} req
- * @param {OutgoingMessage} res
- * @param {number} status
- * @param {object} headers
- * @param {string} message
- * @private
- */
-
-function send (req, res, status, headers, message) {
- function write () {
- // response body
- var body = createHtmlDocument(message)
-
- // response status
- res.statusCode = status
- res.statusMessage = statuses[status]
-
- // response headers
- setHeaders(res, headers)
-
- // security headers
- res.setHeader('Content-Security-Policy', "default-src 'self'")
- res.setHeader('X-Content-Type-Options', 'nosniff')
-
- // standard headers
- res.setHeader('Content-Type', 'text/html; charset=utf-8')
- res.setHeader('Content-Length', Buffer.byteLength(body, 'utf8'))
-
- if (req.method === 'HEAD') {
- res.end()
- return
- }
-
- res.end(body, 'utf8')
- }
-
- if (isFinished(req)) {
- write()
- return
- }
-
- // unpipe everything from the request
- unpipe(req)
-
- // flush the request
- onFinished(req, write)
- req.resume()
-}
-
-/**
- * Set response headers from an object.
- *
- * @param {OutgoingMessage} res
- * @param {object} headers
- * @private
- */
-
-function setHeaders (res, headers) {
- if (!headers) {
- return
- }
-
- var keys = Object.keys(headers)
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i]
- res.setHeader(key, headers[key])
- }
-}
diff --git a/node_modules/finalhandler/package.json b/node_modules/finalhandler/package.json
deleted file mode 100644
index 5129d92ad..000000000
--- a/node_modules/finalhandler/package.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "name": "finalhandler",
- "description": "Node.js final http responder",
- "version": "1.0.3",
- "author": "Douglas Christopher Wilson <doug@somethingdoug.com>",
- "license": "MIT",
- "repository": "pillarjs/finalhandler",
- "dependencies": {
- "debug": "2.6.7",
- "encodeurl": "~1.0.1",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.1",
- "statuses": "~1.3.1",
- "unpipe": "~1.0.0"
- },
- "devDependencies": {
- "eslint": "3.19.0",
- "eslint-config-standard": "10.2.1",
- "eslint-plugin-import": "2.2.0",
- "eslint-plugin-markdown": "1.0.0-beta.6",
- "eslint-plugin-node": "4.2.2",
- "eslint-plugin-promise": "3.5.0",
- "eslint-plugin-standard": "3.0.1",
- "istanbul": "0.4.5",
- "mocha": "2.5.3",
- "readable-stream": "2.2.9",
- "safe-buffer": "5.0.1",
- "supertest": "1.1.0"
- },
- "files": [
- "LICENSE",
- "HISTORY.md",
- "index.js"
- ],
- "engines": {
- "node": ">= 0.8"
- },
- "scripts": {
- "lint": "eslint --plugin markdown --ext js,md .",
- "test": "mocha --reporter spec --bail --check-leaks test/",
- "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/"
- }
-}
diff --git a/node_modules/fresh/HISTORY.md b/node_modules/fresh/HISTORY.md
deleted file mode 100644
index edd6c0586..000000000
--- a/node_modules/fresh/HISTORY.md
+++ /dev/null
@@ -1,58 +0,0 @@
-0.5.0 / 2017-02-21
-==================
-
- * Fix incorrect result when `If-None-Match` has both `*` and ETags
- * Fix weak `ETag` matching to match spec
- * perf: delay reading header values until needed
- * perf: skip checking modified time if ETag check failed
- * perf: skip parsing `If-None-Match` when no `ETag` header
- * perf: use `Date.parse` instead of `new Date`
-
-0.4.0 / 2017-02-05
-==================
-
- * Fix false detection of `no-cache` request directive
- * perf: enable strict mode
- * perf: hoist regular expressions
- * perf: remove duplicate conditional
- * perf: remove unnecessary boolean coercions
-
-0.3.0 / 2015-05-12
-==================
-
- * Add weak `ETag` matching support
-
-0.2.4 / 2014-09-07
-==================
-
- * Support Node.js 0.6
-
-0.2.3 / 2014-09-07
-==================
-
- * Move repository to jshttp
-
-0.2.2 / 2014-02-19
-==================
-
- * Revert "Fix for blank page on Safari reload"
-
-0.2.1 / 2014-01-29
-==================
-
- * Fix for blank page on Safari reload
-
-0.2.0 / 2013-08-11
-==================
-
- * Return stale for `Cache-Control: no-cache`
-
-0.1.0 / 2012-06-15
-==================
-
- * Add `If-None-Match: *` support
-
-0.0.1 / 2012-06-10
-==================
-
- * Initial release
diff --git a/node_modules/fresh/LICENSE b/node_modules/fresh/LICENSE
deleted file mode 100644
index 1434ade75..000000000
--- a/node_modules/fresh/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2012 TJ Holowaychuk <tj@vision-media.ca>
-Copyright (c) 2016-2017 Douglas Christopher Wilson <doug@somethingdoug.com>
-
-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.
diff --git a/node_modules/fresh/README.md b/node_modules/fresh/README.md
deleted file mode 100644
index d2b63e59c..000000000
--- a/node_modules/fresh/README.md
+++ /dev/null
@@ -1,113 +0,0 @@
-# fresh
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Node.js Version][node-version-image]][node-version-url]
-[![Build Status][travis-image]][travis-url]
-[![Test Coverage][coveralls-image]][coveralls-url]
-
-HTTP response freshness testing
-
-## Installation
-
-This is a [Node.js](https://nodejs.org/en/) module available through the
-[npm registry](https://www.npmjs.com/). Installation is done using the
-[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
-
-```
-$ npm install fresh
-```
-
-## API
-
-```js
-var fresh = require('fresh')
-```
-
-### fresh(reqHeaders, resHeaders)
-
-Check freshness of the response using request and response headers.
-
-When the response is still "fresh" in the client's cache `true` is
-returned, otherwise `false` is returned to indicate that the client
-cache is now stale and the full response should be sent.
-
-When a client sends the `Cache-Control: no-cache` request header to
-indicate an end-to-end reload request, this module will return `false`
-to make handling these requests transparent.
-
-## Known Issues
-
-This module is designed to only follow the HTTP specifications, not
-to work-around all kinda of client bugs (especially since this module
-typically does not recieve enough information to understand what the
-client actually is).
-
-There is a known issue that in certain versions of Safari, Safari
-will incorrectly make a request that allows this module to validate
-freshness of the resource even when Safari does not have a
-representation of the resource in the cache. The module
-[jumanji](https://www.npmjs.com/package/jumanji) can be used in
-an Express application to work-around this issue and also provides
-links to further reading on this Safari bug.
-
-## Example
-
-### API usage
-
-```js
-var reqHeaders = { 'if-none-match': '"foo"' }
-var resHeaders = { 'etag': '"bar"' }
-fresh(reqHeaders, resHeaders)
-// => false
-
-var reqHeaders = { 'if-none-match': '"foo"' }
-var resHeaders = { 'etag': '"foo"' }
-fresh(reqHeaders, resHeaders)
-// => true
-```
-
-### Using with Node.js http server
-
-```js
-var fresh = require('fresh')
-var http = require('http')
-
-var server = http.createServer(function (req, res) {
- // perform server logic
- // ... including adding ETag / Last-Modified response headers
-
- if (isFresh(req, res)) {
- // client has a fresh copy of resource
- res.statusCode = 304
- res.end()
- return
- }
-
- // send the resource
-})
-
-function isFresh (req, res) {
- return fresh(req.headers, {
- 'etag': res.getHeader('ETag'),
- 'last-modified': res.getHeader('Last-Modified')
- })
-}
-
-server.listen(3000)
-```
-
-## License
-
-[MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/fresh.svg
-[npm-url]: https://npmjs.org/package/fresh
-[node-version-image]: https://img.shields.io/node/v/fresh.svg
-[node-version-url]: https://nodejs.org/en/
-[travis-image]: https://img.shields.io/travis/jshttp/fresh/master.svg
-[travis-url]: https://travis-ci.org/jshttp/fresh
-[coveralls-image]: https://img.shields.io/coveralls/jshttp/fresh/master.svg
-[coveralls-url]: https://coveralls.io/r/jshttp/fresh?branch=master
-[downloads-image]: https://img.shields.io/npm/dm/fresh.svg
-[downloads-url]: https://npmjs.org/package/fresh
diff --git a/node_modules/fresh/index.js b/node_modules/fresh/index.js
deleted file mode 100644
index bd9812ef3..000000000
--- a/node_modules/fresh/index.js
+++ /dev/null
@@ -1,81 +0,0 @@
-/*!
- * fresh
- * Copyright(c) 2012 TJ Holowaychuk
- * Copyright(c) 2016-2017 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * RegExp to check for no-cache token in Cache-Control.
- * @private
- */
-
-var CACHE_CONTROL_NO_CACHE_REGEXP = /(?:^|,)\s*?no-cache\s*?(?:,|$)/
-
-/**
- * Simple expression to split token list.
- * @private
- */
-
-var TOKEN_LIST_REGEXP = / *, */
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = fresh
-
-/**
- * Check freshness of the response using request and response headers.
- *
- * @param {Object} reqHeaders
- * @param {Object} resHeaders
- * @return {Boolean}
- * @public
- */
-
-function fresh (reqHeaders, resHeaders) {
- // fields
- var modifiedSince = reqHeaders['if-modified-since']
- var noneMatch = reqHeaders['if-none-match']
-
- // unconditional request
- if (!modifiedSince && !noneMatch) {
- return false
- }
-
- // Always return stale when Cache-Control: no-cache
- // to support end-to-end reload requests
- // https://tools.ietf.org/html/rfc2616#section-14.9.4
- var cacheControl = reqHeaders['cache-control']
- if (cacheControl && CACHE_CONTROL_NO_CACHE_REGEXP.test(cacheControl)) {
- return false
- }
-
- // if-none-match
- if (noneMatch && noneMatch !== '*') {
- var etag = resHeaders['etag']
- var etagStale = !etag || noneMatch.split(TOKEN_LIST_REGEXP).every(function (match) {
- return match !== etag && match !== 'W/' + etag && 'W/' + match !== etag
- })
-
- if (etagStale) {
- return false
- }
- }
-
- // if-modified-since
- if (modifiedSince) {
- var lastModified = resHeaders['last-modified']
- var modifiedStale = !lastModified || Date.parse(lastModified) > Date.parse(modifiedSince)
-
- if (modifiedStale) {
- return false
- }
- }
-
- return true
-}
diff --git a/node_modules/fresh/package.json b/node_modules/fresh/package.json
deleted file mode 100644
index 964ae7d1e..000000000
--- a/node_modules/fresh/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "fresh",
- "description": "HTTP response freshness testing",
- "version": "0.5.0",
- "author": "TJ Holowaychuk <tj@vision-media.ca> (http://tjholowaychuk.com)",
- "contributors": [
- "Douglas Christopher Wilson <doug@somethingdoug.com>",
- "Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)"
- ],
- "license": "MIT",
- "keywords": [
- "fresh",
- "http",
- "conditional",
- "cache"
- ],
- "repository": "jshttp/fresh",
- "devDependencies": {
- "eslint": "3.16.0",
- "eslint-config-standard": "6.2.1",
- "eslint-plugin-promise": "3.4.2",
- "eslint-plugin-standard": "2.0.1",
- "istanbul": "0.4.5",
- "mocha": "1.21.5"
- },
- "files": [
- "HISTORY.md",
- "LICENSE",
- "index.js"
- ],
- "engines": {
- "node": ">= 0.6"
- },
- "scripts": {
- "lint": "eslint .",
- "test": "mocha --reporter spec --bail --check-leaks test/",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/",
- "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"
- }
-}
diff --git a/node_modules/globby/index.js b/node_modules/globby/index.js
index 39da9f64d..587a0fdd1 100644
--- a/node_modules/globby/index.js
+++ b/node_modules/globby/index.js
@@ -3,7 +3,6 @@ var Promise = require('pinkie-promise');
var arrayUnion = require('array-union');
var objectAssign = require('object-assign');
var glob = require('glob');
-var arrify = require('arrify');
var pify = require('pify');
var globP = pify(glob, Promise).bind(glob);
@@ -12,10 +11,22 @@ function isNegative(pattern) {
return pattern[0] === '!';
}
+function isString(value) {
+ return typeof value === 'string';
+}
+
+function assertPatternsInput(patterns) {
+ if (!patterns.every(isString)) {
+ throw new TypeError('patterns must be a string or an array of strings');
+ }
+}
+
function generateGlobTasks(patterns, opts) {
+ patterns = [].concat(patterns);
+ assertPatternsInput(patterns);
+
var globTasks = [];
- patterns = arrify(patterns);
opts = objectAssign({
cache: Object.create(null),
statCache: Object.create(null),
@@ -45,7 +56,13 @@ function generateGlobTasks(patterns, opts) {
}
module.exports = function (patterns, opts) {
- var globTasks = generateGlobTasks(patterns, opts);
+ var globTasks;
+
+ try {
+ globTasks = generateGlobTasks(patterns, opts);
+ } catch (err) {
+ return Promise.reject(err);
+ }
return Promise.all(globTasks.map(function (task) {
return globP(task.pattern, task.opts);
@@ -63,3 +80,9 @@ module.exports.sync = function (patterns, opts) {
};
module.exports.generateGlobTasks = generateGlobTasks;
+
+module.exports.hasMagic = function (patterns, opts) {
+ return [].concat(patterns).some(function (pattern) {
+ return glob.hasMagic(pattern, opts);
+ });
+};
diff --git a/node_modules/globby/package.json b/node_modules/globby/package.json
index 9a0f580bf..925148862 100644
--- a/node_modules/globby/package.json
+++ b/node_modules/globby/package.json
@@ -1,6 +1,6 @@
{
"name": "globby",
- "version": "5.0.0",
+ "version": "6.1.0",
"description": "Extends `glob` with support for multiple patterns and exposes a Promise API",
"license": "MIT",
"repository": "sindresorhus/globby",
@@ -13,7 +13,7 @@
"node": ">=0.10.0"
},
"scripts": {
- "bench": "npm update globby glob-stream && matcha bench.js",
+ "bench": "npm update glob-stream && matcha bench.js",
"test": "xo && ava"
},
"files": [
@@ -53,7 +53,6 @@
],
"dependencies": {
"array-union": "^1.0.1",
- "arrify": "^1.0.0",
"glob": "^7.0.3",
"object-assign": "^4.0.1",
"pify": "^2.0.0",
@@ -61,10 +60,10 @@
},
"devDependencies": {
"ava": "*",
- "glob-stream": "wearefractal/glob-stream#master",
+ "glob-stream": "gulpjs/glob-stream#master",
"globby": "sindresorhus/globby#master",
"matcha": "^0.7.0",
"rimraf": "^2.2.8",
- "xo": "*"
+ "xo": "^0.16.0"
}
}
diff --git a/node_modules/globby/readme.md b/node_modules/globby/readme.md
index aad991d02..e10a48868 100644
--- a/node_modules/globby/readme.md
+++ b/node_modules/globby/readme.md
@@ -42,11 +42,17 @@ Returns an array of matching paths.
Returns an array of objects in the format `{ pattern: string, opts: Object }`, which can be passed as arguments to [`node-glob`](https://github.com/isaacs/node-glob). This is useful for other globbing-related packages.
-Note that you should avoid running the same tasks multiple times as they contain a file system cache. Instead, create a new tasks list to ensure that file system changes are taken in consideration.
+Note that you should avoid running the same tasks multiple times as they contain a file system cache. Instead, run this method each time to ensure file system changes are taken into consideration.
+
+### globby.hasMagic(patterns, [options])
+
+Returns a `boolean` of whether there are any special glob characters in the `patterns`.
+
+Note that the options affect the results. If `noext: true` is set, then `+(a|b)` will not be considered a magic pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}`, then that is considered magical, unless `nobrace: true` is set.
#### patterns
-Type: `string`, `Array`
+Type: `string` `Array`
See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage).
diff --git a/node_modules/growl/History.md b/node_modules/growl/History.md
deleted file mode 100644
index a4b7b49f2..000000000
--- a/node_modules/growl/History.md
+++ /dev/null
@@ -1,63 +0,0 @@
-
-1.7.0 / 2012-12-30
-==================
-
- * support transient notifications in Gnome
-
-1.6.1 / 2012-09-25
-==================
-
- * restore compatibility with node < 0.8 [fgnass]
-
-1.6.0 / 2012-09-06
-==================
-
- * add notification center support [drudge]
-
-1.5.1 / 2012-04-08
-==================
-
- * Merge pull request #16 from KyleAMathews/patch-1
- * Fixes #15
-
-1.5.0 / 2012-02-08
-==================
-
- * Added windows support [perfusorius]
-
-1.4.1 / 2011-12-28
-==================
-
- * Fixed: dont exit(). Closes #9
-
-1.4.0 / 2011-12-17
-==================
-
- * Changed API: `growl.notify()` -> `growl()`
-
-1.3.0 / 2011-12-17
-==================
-
- * Added support for Ubuntu/Debian/Linux users [niftylettuce]
- * Fixed: send notifications even if title not specified [alessioalex]
-
-1.2.0 / 2011-10-06
-==================
-
- * Add support for priority.
-
-1.1.0 / 2011-03-15
-==================
-
- * Added optional callbacks
- * Added parsing of version
-
-1.0.1 / 2010-03-26
-==================
-
- * Fixed; sys.exec -> child_process.exec to support latest node
-
-1.0.0 / 2010-03-19
-==================
-
- * Initial release
diff --git a/node_modules/growl/Readme.md b/node_modules/growl/Readme.md
deleted file mode 100644
index 785344e60..000000000
--- a/node_modules/growl/Readme.md
+++ /dev/null
@@ -1,108 +0,0 @@
-# Growl for nodejs
-
-Growl support for Nodejs. This is essentially a port of my [Ruby Growl Library](http://github.com/visionmedia/growl). Ubuntu/Linux support added thanks to [@niftylettuce](http://github.com/niftylettuce).
-
-## Installation
-
-### Install
-
-### Mac OS X (Darwin):
-
- Install [growlnotify(1)](http://growl.info/extras.php#growlnotify). On OS X 10.8, Notification Center is supported using [terminal-notifier](https://github.com/alloy/terminal-notifier). To install:
-
- $ sudo gem install terminal-notifier
-
- Install [npm](http://npmjs.org/) and run:
-
- $ npm install growl
-
-### Ubuntu (Linux):
-
- Install `notify-send` through the [libnotify-bin](http://packages.ubuntu.com/libnotify-bin) package:
-
- $ sudo apt-get install libnotify-bin
-
- Install [npm](http://npmjs.org/) and run:
-
- $ npm install growl
-
-### Windows:
-
- Download and install [Growl for Windows](http://www.growlforwindows.com/gfw/default.aspx)
-
- Download [growlnotify](http://www.growlforwindows.com/gfw/help/growlnotify.aspx) - **IMPORTANT :** Unpack growlnotify to a folder that is present in your path!
-
- Install [npm](http://npmjs.org/) and run:
-
- $ npm install growl
-
-## Examples
-
-Callback functions are optional
-
-```javascript
-var growl = require('growl')
-growl('You have mail!')
-growl('5 new messages', { sticky: true })
-growl('5 new emails', { title: 'Email Client', image: 'Safari', sticky: true })
-growl('Message with title', { title: 'Title'})
-growl('Set priority', { priority: 2 })
-growl('Show Safari icon', { image: 'Safari' })
-growl('Show icon', { image: 'path/to/icon.icns' })
-growl('Show image', { image: 'path/to/my.image.png' })
-growl('Show png filesystem icon', { image: 'png' })
-growl('Show pdf filesystem icon', { image: 'article.pdf' })
-growl('Show pdf filesystem icon', { image: 'article.pdf' }, function(err){
- // ... notified
-})
-```
-
-## Options
-
- - title
- - notification title
- - name
- - application name
- - priority
- - priority for the notification (default is 0)
- - sticky
- - weither or not the notification should remainin until closed
- - image
- - Auto-detects the context:
- - path to an icon sets --iconpath
- - path to an image sets --image
- - capitalized word sets --appIcon
- - filename uses extname as --icon
- - otherwise treated as --icon
- - exec
- - manually specify a shell command instead
- - appends message to end of shell command
- - or, replaces `%s` with message
- - optionally prepends title (example: `title: message`)
- - examples: `{exec: 'tmux display-message'}`, `{exec: 'echo "%s" > messages.log}`
-
-## License
-
-(The MIT License)
-
-Copyright (c) 2009 TJ Holowaychuk <tj@vision-media.ca>
-Copyright (c) 2016 Joshua Boy Nicolai Appelman <joshua@jbna.nl>
-
-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.
diff --git a/node_modules/growl/lib/growl.js b/node_modules/growl/lib/growl.js
deleted file mode 100644
index 719b5af54..000000000
--- a/node_modules/growl/lib/growl.js
+++ /dev/null
@@ -1,290 +0,0 @@
-// Growl - Copyright TJ Holowaychuk <tj@vision-media.ca> (MIT Licensed)
-
-/**
- * Module dependencies.
- */
-
-var exec = require('child_process').exec
- , fs = require('fs')
- , path = require('path')
- , exists = fs.existsSync || path.existsSync
- , os = require('os')
- , quote = JSON.stringify
- , cmd;
-
-function which(name) {
- var paths = process.env.PATH.split(':');
- var loc;
-
- for (var i = 0, len = paths.length; i < len; ++i) {
- loc = path.join(paths[i], name);
- if (exists(loc)) return loc;
- }
-}
-
-switch(os.type()) {
- case 'Darwin':
- if (which('terminal-notifier')) {
- cmd = {
- type: "Darwin-NotificationCenter"
- , pkg: "terminal-notifier"
- , msg: '-message'
- , title: '-title'
- , subtitle: '-subtitle'
- , icon: '-appIcon'
- , sound: '-sound'
- , url: '-open'
- , priority: {
- cmd: '-execute'
- , range: []
- }
- };
- } else {
- cmd = {
- type: "Darwin-Growl"
- , pkg: "growlnotify"
- , msg: '-m'
- , sticky: '--sticky'
- , priority: {
- cmd: '--priority'
- , range: [
- -2
- , -1
- , 0
- , 1
- , 2
- , "Very Low"
- , "Moderate"
- , "Normal"
- , "High"
- , "Emergency"
- ]
- }
- };
- }
- break;
- case 'Linux':
- if (which('growl')) {
- cmd = {
- type: "Linux-Growl"
- , pkg: "growl"
- , msg: '-m'
- , title: '-title'
- , subtitle: '-subtitle'
- , host: {
- cmd: '-H'
- , hostname: '192.168.33.1'
- }
- };
- } else {
- cmd = {
- type: "Linux"
- , pkg: "notify-send"
- , msg: ''
- , sticky: '-t 0'
- , icon: '-i'
- , priority: {
- cmd: '-u'
- , range: [
- "low"
- , "normal"
- , "critical"
- ]
- }
- };
- }
- break;
- case 'Windows_NT':
- cmd = {
- type: "Windows"
- , pkg: "growlnotify"
- , msg: ''
- , sticky: '/s:true'
- , title: '/t:'
- , icon: '/i:'
- , url: '/cu:'
- , priority: {
- cmd: '/p:'
- , range: [
- -2
- , -1
- , 0
- , 1
- , 2
- ]
- }
- };
- break;
-}
-
-/**
- * Expose `growl`.
- */
-
-exports = module.exports = growl;
-
-/**
- * Node-growl version.
- */
-
-exports.version = '1.4.1'
-
-/**
- * Send growl notification _msg_ with _options_.
- *
- * Options:
- *
- * - title Notification title
- * - sticky Make the notification stick (defaults to false)
- * - priority Specify an int or named key (default is 0)
- * - name Application name (defaults to growlnotify)
- * - sound Sound efect ( in OSx defined in preferences -> sound -> effects) * works only in OSX > 10.8x
- * - image
- * - path to an icon sets --iconpath
- * - path to an image sets --image
- * - capitalized word sets --appIcon
- * - filename uses extname as --icon
- * - otherwise treated as --icon
- *
- * Examples:
- *
- * growl('New email')
- * growl('5 new emails', { title: 'Thunderbird' })
- * growl('5 new emails', { title: 'Thunderbird', sound: 'Purr' })
- * growl('Email sent', function(){
- * // ... notification sent
- * })
- *
- * @param {string} msg
- * @param {object} options
- * @param {function} fn
- * @api public
- */
-
-function growl(msg, options, fn) {
- var image
- , args
- , options = options || {}
- , fn = fn || function(){};
-
- if (options.exec) {
- cmd = {
- type: "Custom"
- , pkg: options.exec
- , range: []
- };
- }
-
- // noop
- if (!cmd) return fn(new Error('growl not supported on this platform'));
- args = [cmd.pkg];
-
- // image
- if (image = options.image) {
- switch(cmd.type) {
- case 'Darwin-Growl':
- var flag, ext = path.extname(image).substr(1)
- flag = flag || ext == 'icns' && 'iconpath'
- flag = flag || /^[A-Z]/.test(image) && 'appIcon'
- flag = flag || /^png|gif|jpe?g$/.test(ext) && 'image'
- flag = flag || ext && (image = ext) && 'icon'
- flag = flag || 'icon'
- args.push('--' + flag, quote(image))
- break;
- case 'Darwin-NotificationCenter':
- args.push(cmd.icon, quote(image));
- break;
- case 'Linux':
- args.push(cmd.icon, quote(image));
- // libnotify defaults to sticky, set a hint for transient notifications
- if (!options.sticky) args.push('--hint=int:transient:1');
- break;
- case 'Windows':
- args.push(cmd.icon + quote(image));
- break;
- }
- }
-
- // sticky
- if (options.sticky) args.push(cmd.sticky);
-
- // priority
- if (options.priority) {
- var priority = options.priority + '';
- var checkindexOf = cmd.priority.range.indexOf(priority);
- if (~cmd.priority.range.indexOf(priority)) {
- args.push(cmd.priority, options.priority);
- }
- }
-
- //sound
- if(options.sound && cmd.type === 'Darwin-NotificationCenter'){
- args.push(cmd.sound, options.sound)
- }
-
- // name
- if (options.name && cmd.type === "Darwin-Growl") {
- args.push('--name', options.name);
- }
-
- switch(cmd.type) {
- case 'Darwin-Growl':
- args.push(cmd.msg);
- args.push(quote(msg).replace(/\\n/g, '\n'));
- if (options.title) args.push(quote(options.title));
- break;
- case 'Darwin-NotificationCenter':
- args.push(cmd.msg);
- var stringifiedMsg = quote(msg);
- var escapedMsg = stringifiedMsg.replace(/\\n/g, '\n');
- args.push(escapedMsg);
- if (options.title) {
- args.push(cmd.title);
- args.push(quote(options.title));
- }
- if (options.subtitle) {
- args.push(cmd.subtitle);
- args.push(quote(options.subtitle));
- }
- if (options.url) {
- args.push(cmd.url);
- args.push(quote(options.url));
- }
- break;
- case 'Linux-Growl':
- args.push(cmd.msg);
- args.push(quote(msg).replace(/\\n/g, '\n'));
- if (options.title) args.push(quote(options.title));
- if (cmd.host) {
- args.push(cmd.host.cmd, cmd.host.hostname)
- }
- break;
- case 'Linux':
- if (options.title) {
- args.push(quote(options.title));
- args.push(cmd.msg);
- args.push(quote(msg).replace(/\\n/g, '\n'));
- } else {
- args.push(quote(msg).replace(/\\n/g, '\n'));
- }
- break;
- case 'Windows':
- args.push(quote(msg).replace(/\\n/g, '\n'));
- if (options.title) args.push(cmd.title + quote(options.title));
- if (options.url) args.push(cmd.url + quote(options.url));
- break;
- case 'Custom':
- args[0] = (function(origCommand) {
- var message = options.title
- ? options.title + ': ' + msg
- : msg;
- var command = origCommand.replace(/(^|[^%])%s/g, '$1' + quote(message));
- if (command === origCommand) args.push(quote(message));
- return command;
- })(args[0]);
- break;
- }
-
- // execute
- exec(args.join(' '), fn);
-};
diff --git a/node_modules/growl/package.json b/node_modules/growl/package.json
deleted file mode 100644
index 962c7fae2..000000000
--- a/node_modules/growl/package.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": "growl",
- "version": "1.9.2",
- "description": "Growl unobtrusive notifications",
- "author": "TJ Holowaychuk <tj@vision-media.ca>",
- "maintainers": [
- "Joshua Boy Nicolai Appelman <joshua@jbnicolai.nl>"
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/tj/node-growl.git"
- },
- "main": "./lib/growl.js",
- "license": "MIT"
-}
diff --git a/node_modules/growl/test.js b/node_modules/growl/test.js
deleted file mode 100644
index 9bb09d9d3..000000000
--- a/node_modules/growl/test.js
+++ /dev/null
@@ -1,31 +0,0 @@
-
-var growl = require('./lib/growl')
-
-growl('Support sound notifications', {title: 'Make a sound', sound: 'purr'});
-growl('You have mail!')
-growl('5 new messages', { sticky: true })
-growl('5 new emails', { title: 'Email Client', image: 'Safari', sticky: true })
-growl('Message with title', { title: 'Title'})
-growl('Set priority', { priority: 2 })
-growl('Show Safari icon', { image: 'Safari' })
-growl('Show icon', { image: 'path/to/icon.icns' })
-growl('Show image', { image: 'path/to/my.image.png' })
-growl('Show png filesystem icon', { image: 'png' })
-growl('Show pdf filesystem icon', { image: 'article.pdf' })
-growl('Show pdf filesystem icon', { image: 'article.pdf' }, function(){
- console.log('callback');
-})
-growl('Show pdf filesystem icon', { title: 'Use show()', image: 'article.pdf' })
-growl('here \' are \n some \\ characters that " need escaping', {}, function(error, stdout, stderr) {
- if (error !== null) throw new Error('escaping failed:\n' + stdout + stderr);
-})
-growl('Allow custom notifiers', { exec: 'echo XXX %s' }, function(error, stdout, stderr) {
- console.log(stdout);
-})
-growl('Allow custom notifiers', { title: 'test', exec: 'echo YYY' }, function(error, stdout, stderr) {
- console.log(stdout);
-})
-growl('Allow custom notifiers', { title: 'test', exec: 'echo ZZZ %s' }, function(error, stdout, stderr) {
- console.log(stdout);
-})
-growl('Open a URL', { url: 'https://npmjs.org/package/growl' });
diff --git a/node_modules/http-errors/HISTORY.md b/node_modules/http-errors/HISTORY.md
deleted file mode 100644
index 94b6b29a9..000000000
--- a/node_modules/http-errors/HISTORY.md
+++ /dev/null
@@ -1,118 +0,0 @@
-2017-02-20 / 1.6.1
-==================
-
- * deps: setprototypeof@1.0.3
- - Fix shim for old browsers
-
-2017-02-14 / 1.6.0
-==================
-
- * Accept custom 4xx and 5xx status codes in factory
- * Add deprecation message to `"I'mateapot"` export
- * Deprecate passing status code as anything except first argument in factory
- * Deprecate using non-error status codes
- * Make `message` property enumerable for `HttpError`s
-
-2016-11-16 / 1.5.1
-==================
-
- * deps: inherits@2.0.3
- - Fix issue loading in browser
- * deps: setprototypeof@1.0.2
- * deps: statuses@'>= 1.3.1 < 2'
-
-2016-05-18 / 1.5.0
-==================
-
- * Support new code `421 Misdirected Request`
- * Use `setprototypeof` module to replace `__proto__` setting
- * deps: statuses@'>= 1.3.0 < 2'
- - Add `421 Misdirected Request`
- - perf: enable strict mode
- * perf: enable strict mode
-
-2016-01-28 / 1.4.0
-==================
-
- * Add `HttpError` export, for `err instanceof createError.HttpError`
- * deps: inherits@2.0.1
- * deps: statuses@'>= 1.2.1 < 2'
- - Fix message for status 451
- - Remove incorrect nginx status code
-
-2015-02-02 / 1.3.1
-==================
-
- * Fix regression where status can be overwritten in `createError` `props`
-
-2015-02-01 / 1.3.0
-==================
-
- * Construct errors using defined constructors from `createError`
- * Fix error names that are not identifiers
- - `createError["I'mateapot"]` is now `createError.ImATeapot`
- * Set a meaningful `name` property on constructed errors
-
-2014-12-09 / 1.2.8
-==================
-
- * Fix stack trace from exported function
- * Remove `arguments.callee` usage
-
-2014-10-14 / 1.2.7
-==================
-
- * Remove duplicate line
-
-2014-10-02 / 1.2.6
-==================
-
- * Fix `expose` to be `true` for `ClientError` constructor
-
-2014-09-28 / 1.2.5
-==================
-
- * deps: statuses@1
-
-2014-09-21 / 1.2.4
-==================
-
- * Fix dependency version to work with old `npm`s
-
-2014-09-21 / 1.2.3
-==================
-
- * deps: statuses@~1.1.0
-
-2014-09-21 / 1.2.2
-==================
-
- * Fix publish error
-
-2014-09-21 / 1.2.1
-==================
-
- * Support Node.js 0.6
- * Use `inherits` instead of `util`
-
-2014-09-09 / 1.2.0
-==================
-
- * Fix the way inheriting functions
- * Support `expose` being provided in properties argument
-
-2014-09-08 / 1.1.0
-==================
-
- * Default status to 500
- * Support provided `error` to extend
-
-2014-09-08 / 1.0.1
-==================
-
- * Fix accepting string message
-
-2014-09-08 / 1.0.0
-==================
-
- * Initial release
diff --git a/node_modules/http-errors/LICENSE b/node_modules/http-errors/LICENSE
deleted file mode 100644
index 82af4df54..000000000
--- a/node_modules/http-errors/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-
-The MIT License (MIT)
-
-Copyright (c) 2014 Jonathan Ong me@jongleberry.com
-Copyright (c) 2016 Douglas Christopher Wilson doug@somethingdoug.com
-
-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.
diff --git a/node_modules/http-errors/README.md b/node_modules/http-errors/README.md
deleted file mode 100644
index 79663d82f..000000000
--- a/node_modules/http-errors/README.md
+++ /dev/null
@@ -1,135 +0,0 @@
-# http-errors
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Node.js Version][node-version-image]][node-version-url]
-[![Build Status][travis-image]][travis-url]
-[![Test Coverage][coveralls-image]][coveralls-url]
-
-Create HTTP errors for Express, Koa, Connect, etc. with ease.
-
-## Install
-
-This is a [Node.js](https://nodejs.org/en/) module available through the
-[npm registry](https://www.npmjs.com/). Installation is done using the
-[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
-
-```bash
-$ npm install http-errors
-```
-
-## Example
-
-```js
-var createError = require('http-errors')
-var express = require('express')
-var app = express()
-
-app.use(function (req, res, next) {
- if (!req.user) return next(createError(401, 'Please login to view this page.'))
- next()
-})
-```
-
-## API
-
-This is the current API, currently extracted from Koa and subject to change.
-
-All errors inherit from JavaScript `Error` and the exported `createError.HttpError`.
-
-### Error Properties
-
-- `expose` - can be used to signal if `message` should be sent to the client,
- defaulting to `false` when `status` >= 500
-- `headers` - can be an object of header names to values to be sent to the
- client, defaulting to `undefined`. When defined, the key names should all
- be lower-cased
-- `message` - the traditional error message, which should be kept short and all
- single line
-- `status` - the status code of the error, mirroring `statusCode` for general
- compatibility
-- `statusCode` - the status code of the error, defaulting to `500`
-
-### createError([status], [message], [properties])
-
-<!-- eslint-disable no-undef, no-unused-vars -->
-
-```js
-var err = createError(404, 'This video does not exist!')
-```
-
-- `status: 500` - the status code as a number
-- `message` - the message of the error, defaulting to node's text for that status code.
-- `properties` - custom properties to attach to the object
-
-### new createError\[code || name\](\[msg]\))
-
-<!-- eslint-disable no-undef, no-unused-vars -->
-
-```js
-var err = new createError.NotFound()
-```
-
-- `code` - the status code as a number
-- `name` - the name of the error as a "bumpy case", i.e. `NotFound` or `InternalServerError`.
-
-#### List of all constructors
-
-|Status Code|Constructor Name |
-|-----------|-----------------------------|
-|400 |BadRequest |
-|401 |Unauthorized |
-|402 |PaymentRequired |
-|403 |Forbidden |
-|404 |NotFound |
-|405 |MethodNotAllowed |
-|406 |NotAcceptable |
-|407 |ProxyAuthenticationRequired |
-|408 |RequestTimeout |
-|409 |Conflict |
-|410 |Gone |
-|411 |LengthRequired |
-|412 |PreconditionFailed |
-|413 |PayloadTooLarge |
-|414 |URITooLong |
-|415 |UnsupportedMediaType |
-|416 |RangeNotSatisfiable |
-|417 |ExpectationFailed |
-|418 |ImATeapot |
-|421 |MisdirectedRequest |
-|422 |UnprocessableEntity |
-|423 |Locked |
-|424 |FailedDependency |
-|425 |UnorderedCollection |
-|426 |UpgradeRequired |
-|428 |PreconditionRequired |
-|429 |TooManyRequests |
-|431 |RequestHeaderFieldsTooLarge |
-|451 |UnavailableForLegalReasons |
-|500 |InternalServerError |
-|501 |NotImplemented |
-|502 |BadGateway |
-|503 |ServiceUnavailable |
-|504 |GatewayTimeout |
-|505 |HTTPVersionNotSupported |
-|506 |VariantAlsoNegotiates |
-|507 |InsufficientStorage |
-|508 |LoopDetected |
-|509 |BandwidthLimitExceeded |
-|510 |NotExtended |
-|511 |NetworkAuthenticationRequired|
-
-## License
-
-[MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/http-errors.svg
-[npm-url]: https://npmjs.org/package/http-errors
-[node-version-image]: https://img.shields.io/node/v/http-errors.svg
-[node-version-url]: https://nodejs.org/en/download/
-[travis-image]: https://img.shields.io/travis/jshttp/http-errors.svg
-[travis-url]: https://travis-ci.org/jshttp/http-errors
-[coveralls-image]: https://img.shields.io/coveralls/jshttp/http-errors.svg
-[coveralls-url]: https://coveralls.io/r/jshttp/http-errors
-[downloads-image]: https://img.shields.io/npm/dm/http-errors.svg
-[downloads-url]: https://npmjs.org/package/http-errors
diff --git a/node_modules/http-errors/index.js b/node_modules/http-errors/index.js
deleted file mode 100644
index 9509303ed..000000000
--- a/node_modules/http-errors/index.js
+++ /dev/null
@@ -1,260 +0,0 @@
-/*!
- * http-errors
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2016 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module dependencies.
- * @private
- */
-
-var deprecate = require('depd')('http-errors')
-var setPrototypeOf = require('setprototypeof')
-var statuses = require('statuses')
-var inherits = require('inherits')
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = createError
-module.exports.HttpError = createHttpErrorConstructor()
-
-// Populate exports for all constructors
-populateConstructorExports(module.exports, statuses.codes, module.exports.HttpError)
-
-/**
- * Get the code class of a status code.
- * @private
- */
-
-function codeClass (status) {
- return Number(String(status).charAt(0) + '00')
-}
-
-/**
- * Create a new HTTP Error.
- *
- * @returns {Error}
- * @public
- */
-
-function createError () {
- // so much arity going on ~_~
- var err
- var msg
- var status = 500
- var props = {}
- for (var i = 0; i < arguments.length; i++) {
- var arg = arguments[i]
- if (arg instanceof Error) {
- err = arg
- status = err.status || err.statusCode || status
- continue
- }
- switch (typeof arg) {
- case 'string':
- msg = arg
- break
- case 'number':
- status = arg
- if (i !== 0) {
- deprecate('non-first-argument status code; replace with createError(' + arg + ', ...)')
- }
- break
- case 'object':
- props = arg
- break
- }
- }
-
- if (typeof status === 'number' && (status < 400 || status >= 600)) {
- deprecate('non-error status code; use only 4xx or 5xx status codes')
- }
-
- if (typeof status !== 'number' ||
- (!statuses[status] && (status < 400 || status >= 600))) {
- status = 500
- }
-
- // constructor
- var HttpError = createError[status] || createError[codeClass(status)]
-
- if (!err) {
- // create error
- err = HttpError
- ? new HttpError(msg)
- : new Error(msg || statuses[status])
- Error.captureStackTrace(err, createError)
- }
-
- if (!HttpError || !(err instanceof HttpError) || err.status !== status) {
- // add properties to generic error
- err.expose = status < 500
- err.status = err.statusCode = status
- }
-
- for (var key in props) {
- if (key !== 'status' && key !== 'statusCode') {
- err[key] = props[key]
- }
- }
-
- return err
-}
-
-/**
- * Create HTTP error abstract base class.
- * @private
- */
-
-function createHttpErrorConstructor () {
- function HttpError () {
- throw new TypeError('cannot construct abstract class')
- }
-
- inherits(HttpError, Error)
-
- return HttpError
-}
-
-/**
- * Create a constructor for a client error.
- * @private
- */
-
-function createClientErrorConstructor (HttpError, name, code) {
- var className = name.match(/Error$/) ? name : name + 'Error'
-
- function ClientError (message) {
- // create the error object
- var msg = message != null ? message : statuses[code]
- var err = new Error(msg)
-
- // capture a stack trace to the construction point
- Error.captureStackTrace(err, ClientError)
-
- // adjust the [[Prototype]]
- setPrototypeOf(err, ClientError.prototype)
-
- // redefine the error message
- Object.defineProperty(err, 'message', {
- enumerable: true,
- configurable: true,
- value: msg,
- writable: true
- })
-
- // redefine the error name
- Object.defineProperty(err, 'name', {
- enumerable: false,
- configurable: true,
- value: className,
- writable: true
- })
-
- return err
- }
-
- inherits(ClientError, HttpError)
-
- ClientError.prototype.status = code
- ClientError.prototype.statusCode = code
- ClientError.prototype.expose = true
-
- return ClientError
-}
-
-/**
- * Create a constructor for a server error.
- * @private
- */
-
-function createServerErrorConstructor (HttpError, name, code) {
- var className = name.match(/Error$/) ? name : name + 'Error'
-
- function ServerError (message) {
- // create the error object
- var msg = message != null ? message : statuses[code]
- var err = new Error(msg)
-
- // capture a stack trace to the construction point
- Error.captureStackTrace(err, ServerError)
-
- // adjust the [[Prototype]]
- setPrototypeOf(err, ServerError.prototype)
-
- // redefine the error message
- Object.defineProperty(err, 'message', {
- enumerable: true,
- configurable: true,
- value: msg,
- writable: true
- })
-
- // redefine the error name
- Object.defineProperty(err, 'name', {
- enumerable: false,
- configurable: true,
- value: className,
- writable: true
- })
-
- return err
- }
-
- inherits(ServerError, HttpError)
-
- ServerError.prototype.status = code
- ServerError.prototype.statusCode = code
- ServerError.prototype.expose = false
-
- return ServerError
-}
-
-/**
- * Populate the exports object with constructors for every error class.
- * @private
- */
-
-function populateConstructorExports (exports, codes, HttpError) {
- codes.forEach(function forEachCode (code) {
- var CodeError
- var name = toIdentifier(statuses[code])
-
- switch (codeClass(code)) {
- case 400:
- CodeError = createClientErrorConstructor(HttpError, name, code)
- break
- case 500:
- CodeError = createServerErrorConstructor(HttpError, name, code)
- break
- }
-
- if (CodeError) {
- // export the constructor
- exports[code] = CodeError
- exports[name] = CodeError
- }
- })
-
- // backwards-compatibility
- exports["I'mateapot"] = deprecate.function(exports.ImATeapot,
- '"I\'mateapot"; use "ImATeapot" instead')
-}
-
-/**
- * Convert a string of words to a JavaScript identifier.
- * @private
- */
-
-function toIdentifier (str) {
- return str.split(' ').map(function (token) {
- return token.slice(0, 1).toUpperCase() + token.slice(1)
- }).join('').replace(/[^ _0-9a-z]/gi, '')
-}
diff --git a/node_modules/http-errors/package.json b/node_modules/http-errors/package.json
deleted file mode 100644
index c1999a039..000000000
--- a/node_modules/http-errors/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "name": "http-errors",
- "description": "Create HTTP error objects",
- "version": "1.6.1",
- "author": "Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)",
- "contributors": [
- "Alan Plum <me@pluma.io>",
- "Douglas Christopher Wilson <doug@somethingdoug.com>"
- ],
- "license": "MIT",
- "repository": "jshttp/http-errors",
- "dependencies": {
- "depd": "1.1.0",
- "inherits": "2.0.3",
- "setprototypeof": "1.0.3",
- "statuses": ">= 1.3.1 < 2"
- },
- "devDependencies": {
- "eslint": "3.16.0",
- "eslint-config-standard": "6.2.1",
- "eslint-plugin-markdown": "1.0.0-beta.3",
- "eslint-plugin-promise": "3.4.2",
- "eslint-plugin-standard": "2.0.1",
- "istanbul": "0.4.5",
- "mocha": "1.21.5"
- },
- "engines": {
- "node": ">= 0.6"
- },
- "scripts": {
- "lint": "eslint --plugin markdown --ext js,md .",
- "test": "mocha --reporter spec --bail",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot",
- "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot"
- },
- "keywords": [
- "http",
- "error"
- ],
- "files": [
- "index.js",
- "HISTORY.md",
- "LICENSE",
- "README.md"
- ]
-}
diff --git a/node_modules/indent-string/index.js b/node_modules/indent-string/index.js
index 4a21687b2..b6ab264ae 100644
--- a/node_modules/indent-string/index.js
+++ b/node_modules/indent-string/index.js
@@ -1,20 +1,23 @@
'use strict';
-var repeating = require('repeating');
+module.exports = (str, count, indent) => {
+ indent = indent === undefined ? ' ' : indent;
+ count = count === undefined ? 1 : count;
-module.exports = function (str, indent, count) {
- if (typeof str !== 'string' || typeof indent !== 'string') {
- throw new TypeError('`string` and `indent` should be strings');
+ if (typeof str !== 'string') {
+ throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof str}\``);
}
- if (count != null && typeof count !== 'number') {
- throw new TypeError('`count` should be a number');
+ if (typeof count !== 'number') {
+ throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof count}\``);
+ }
+
+ if (typeof indent !== 'string') {
+ throw new TypeError(`Expected \`indent\` to be a \`string\`, got \`${typeof indent}\``);
}
if (count === 0) {
return str;
}
- indent = count > 1 ? repeating(indent, count) : indent;
-
- return str.replace(/^(?!\s*$)/mg, indent);
+ return str.replace(/^(?!\s*$)/mg, indent.repeat(count));
};
diff --git a/node_modules/indent-string/package.json b/node_modules/indent-string/package.json
index 0e7d28cb2..d63feaa3a 100644
--- a/node_modules/indent-string/package.json
+++ b/node_modules/indent-string/package.json
@@ -1,6 +1,6 @@
{
"name": "indent-string",
- "version": "2.1.0",
+ "version": "3.1.0",
"description": "Indent each line in a string",
"license": "MIT",
"repository": "sindresorhus/indent-string",
@@ -10,10 +10,10 @@
"url": "sindresorhus.com"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
},
"scripts": {
- "test": "mocha"
+ "test": "xo && ava"
},
"files": [
"index.js"
@@ -27,10 +27,8 @@
"line",
"text"
],
- "dependencies": {
- "repeating": "^2.0.0"
- },
"devDependencies": {
- "mocha": "*"
+ "ava": "*",
+ "xo": "*"
}
}
diff --git a/node_modules/indent-string/readme.md b/node_modules/indent-string/readme.md
index 89f14acd4..bc4745600 100644
--- a/node_modules/indent-string/readme.md
+++ b/node_modules/indent-string/readme.md
@@ -13,39 +13,42 @@ $ npm install --save indent-string
## Usage
```js
-var indentString = require('indent-string');
+const indentString = require('indent-string');
-indentString('Unicorns\nRainbows', '♥', 4);
-//=> ♥♥♥♥Unicorns
-//=> ♥♥♥♥Rainbows
+indentString('Unicorns\nRainbows', 4);
+//=> ' Unicorns'
+//=> ' Rainbows'
+
+indentString('Unicorns\nRainbows', 4, '♥');
+//=> '♥♥♥♥Unicorns'
+//=> '♥♥♥♥Rainbows'
```
## API
-### indentString(string, indent, count)
-
-#### string
-
-**Required**
-Type: `string`
-
-The string you want to indent.
+### indentString(input, [count], [indent])
-#### indent
+#### input
-**Required**
Type: `string`
-The string to use for the indent.
+String you want to indent.
#### count
-Type: `number`
+Type: `number`<br>
Default: `1`
How many times you want `indent` repeated.
+#### indent
+
+Type: `string`<br>
+Default: `' '`
+
+String to use for the indent.
+
## Related
@@ -55,4 +58,4 @@ How many times you want `indent` repeated.
## License
-MIT © [Sindre Sorhus](http://sindresorhus.com)
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/is-path-cwd/index.js b/node_modules/is-path-cwd/index.js
deleted file mode 100644
index 24b6fdea3..000000000
--- a/node_modules/is-path-cwd/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-'use strict';
-var path = require('path');
-
-module.exports = function (str) {
- return path.resolve(str) === path.resolve(process.cwd());
-};
diff --git a/node_modules/is-path-cwd/package.json b/node_modules/is-path-cwd/package.json
deleted file mode 100644
index 3aa84f7ea..000000000
--- a/node_modules/is-path-cwd/package.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "name": "is-path-cwd",
- "version": "1.0.0",
- "description": "Check if a path is CWD",
- "license": "MIT",
- "repository": "sindresorhus/is-path-cwd",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "http://sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "path",
- "cwd",
- "pwd",
- "check",
- "filepath",
- "file",
- "folder"
- ],
- "devDependencies": {
- "mocha": "*"
- }
-}
diff --git a/node_modules/is-path-cwd/readme.md b/node_modules/is-path-cwd/readme.md
deleted file mode 100644
index 2d9d65f98..000000000
--- a/node_modules/is-path-cwd/readme.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# is-path-cwd [![Build Status](https://travis-ci.org/sindresorhus/is-path-cwd.svg?branch=master)](https://travis-ci.org/sindresorhus/is-path-cwd)
-
-> Check if a path is [CWD](http://en.wikipedia.org/wiki/Working_directory)
-
-
-## Install
-
-```sh
-$ npm install --save is-path-cwd
-```
-
-
-## Usage
-
-```js
-var isPathCwd = require('is-path-cwd');
-
-isPathCwd(process.cwd());
-//=> true
-
-isPathCwd('unicorn');
-//=> false
-```
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/is-path-in-cwd/index.js b/node_modules/is-path-in-cwd/index.js
deleted file mode 100644
index 75611656a..000000000
--- a/node_modules/is-path-in-cwd/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-'use strict';
-var isPathInside = require('is-path-inside');
-
-module.exports = function (str) {
- return isPathInside(str, process.cwd());
-};
diff --git a/node_modules/is-path-in-cwd/package.json b/node_modules/is-path-in-cwd/package.json
deleted file mode 100644
index 422d0206c..000000000
--- a/node_modules/is-path-in-cwd/package.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "is-path-in-cwd",
- "version": "1.0.0",
- "description": "Check if a path is in the current working directory",
- "license": "MIT",
- "repository": "sindresorhus/is-path-in-cwd",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "http://sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "path",
- "cwd",
- "pwd",
- "check",
- "filepath",
- "file",
- "folder",
- "in",
- "inside"
- ],
- "dependencies": {
- "is-path-inside": "^1.0.0"
- },
- "devDependencies": {
- "mocha": "*"
- }
-}
diff --git a/node_modules/is-path-in-cwd/readme.md b/node_modules/is-path-in-cwd/readme.md
deleted file mode 100644
index 4e4f3a883..000000000
--- a/node_modules/is-path-in-cwd/readme.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# is-path-in-cwd [![Build Status](https://travis-ci.org/sindresorhus/is-path-in-cwd.svg?branch=master)](https://travis-ci.org/sindresorhus/is-path-in-cwd)
-
-> Check if a path is in the [current working directory](http://en.wikipedia.org/wiki/Working_directory)
-
-
-## Install
-
-```sh
-$ npm install --save is-path-in-cwd
-```
-
-
-## Usage
-
-```js
-var isPathInCwd = require('is-path-in-cwd');
-
-isPathInCwd('unicorn');
-//=> true
-
-isPathInCwd('../rainbow');
-//=> false
-```
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/is-path-inside/index.js b/node_modules/is-path-inside/index.js
deleted file mode 100644
index 0a4d2fd1e..000000000
--- a/node_modules/is-path-inside/index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-var path = require('path');
-var pathIsInside = require('path-is-inside');
-
-module.exports = function (a, b) {
- a = path.resolve(a);
- b = path.resolve(b);
-
- if (a === b) {
- return false;
- }
-
- return pathIsInside(a, b);
-};
diff --git a/node_modules/is-path-inside/package.json b/node_modules/is-path-inside/package.json
deleted file mode 100644
index 27a347154..000000000
--- a/node_modules/is-path-inside/package.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "name": "is-path-inside",
- "version": "1.0.0",
- "description": "Check if a path is inside another path",
- "license": "MIT",
- "repository": "sindresorhus/is-path-inside",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "http://sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "path",
- "inside",
- "folder",
- "directory",
- "dir",
- "file",
- "resolve"
- ],
- "dependencies": {
- "path-is-inside": "^1.0.1"
- },
- "devDependencies": {
- "mocha": "*"
- }
-}
diff --git a/node_modules/is-path-inside/readme.md b/node_modules/is-path-inside/readme.md
deleted file mode 100644
index 0e4eb74f7..000000000
--- a/node_modules/is-path-inside/readme.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# is-path-inside [![Build Status](https://travis-ci.org/sindresorhus/is-path-inside.svg?branch=master)](https://travis-ci.org/sindresorhus/is-path-inside)
-
-> Check if a path is inside another path
-
-
-## Install
-
-```sh
-$ npm install --save is-path-inside
-```
-
-
-## Usage
-
-```js
-var isPathInside = require('is-path-inside');
-
-isPathInside('a/b', 'a/b/c');
-//=> true
-
-isPathInside('x/y', 'a/b/c');
-//=> false
-
-isPathInside('a/b/c', 'a/b/c');
-//=> false
-```
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/istanbul/CHANGELOG.md b/node_modules/istanbul/CHANGELOG.md
deleted file mode 100644
index 86889b5aa..000000000
--- a/node_modules/istanbul/CHANGELOG.md
+++ /dev/null
@@ -1,362 +0,0 @@
-Changelog
----------
-
-<table>
-<tr>
-<td>0.4.5</td>
-<td>
- <ul>
- <li>log filename when file fails to parse using esprima, thanks to @djorg83</li>
- <li>swap fileset for glob (security fix), thanks to @popomore and @graingert</li>
- </ul>
-</td>
-</tr>
-<tr>
-<td>0.4.4</td>
-<td>
- <ul>
- <li>Handle ExportNamedDeclaration, thanks to @VictoryStick</li>
- <li>Use tmpdir setting in temp store, thanks to @inversion</li>
- <li>Set "medium" coverage CSS color scheme to yellow, thanks to @JamesMGreene</li>
- <li>use os.tmpdir() instead of os.tmpDir(), thanks to @ChALkeR</li>
- </ul>
-</td>
-</tr>
-<tr>
-<td>0.4.3</td>
-<td>
- <ul>
- <li>Create new handlebars instance for the HTML report, thanks to @doowb</li>
- <li>MetaProperty support thanks to @steve-gray</li>
- <li>Use ansi colors from 16-color palette for better console support, thanks to @jtangelder</li>
- <li>Misc doc/ css fixes thanks to @pra85, @abejfehr</li>
- </ul>
-</td>
-</tr>
-<tr>
-<td>0.4.2</td>
-<td>Fix confusing error message on check-coverage failures, thanks to @isaacs/td>
-</tr>
-<tr>
-<td>v0.4.1</td>
-<td>
- <ul>
- <li>Update esprima to 2.7.x, thanks to @ariya</li>
- <li>Make table header clickable in HTML report, thanks to @iphands</li>
- <li>Fix strict mode issues thanks to @kpdecker</li>
- <li>update ignore code example for UMD, thanks to @pgurnee</li>
- <li>misc build fixes, no user visible changes, thanks to @ariya</li>
- </ul>
-</td>
-</tr>
-<tr>
-<td>v0.4.0</td>
-<td>
- <ul>
- <li>HTML report design, thanks a bunch to @tmcw</li>
- <li>"loading config file" message on the console is now tied to the verbose state, thanks @asa-git</li>
- <li>Add the `l` property to documentation, thanks @kitsonk</li>
-
- </ul>
-</td>
-</tr>
-<tr>
-<td>v0.3.21</td>
-<td>
- <ul>
- <li>Updated dependencies to the latest</li>
- </ul>
-</td>
-</tr>
-<tr>
-<td>v0.3.20</td>
-<td>
- <ul>
- <li>Fix broken es6 `super` support, thanks @sterlinghw</li>
- <li>Improve readability via better lineHeight, thanks @dhoko</li>
- <li>Adding ability to set custom block name in teamcity report, thanks @aryelu</li>
- <li>Replaced deprecated util.puts with console.log, thanks @arty-name
- </ul>
-</td>
-</tr>
-<tr>
-<td>v0.3.19</td>
-<td>Fix instrumenter for multiple blank array positions, thanks @alexdunphy</td>
-</tr>
-<tr>
-<tr>
-<td>v0.3.18</td>
-<td>Upgrade esprima, get support for more ES6 features</td>
-</tr>
-<tr>
-<td>v0.3.17</td>
-<td>Upgrade esprima, get correct for-of support</td>
-</tr>
-<tr>
-<td>v0.3.16</td>
-<td>
- <ul>
- <li>upgrades to filset and async modules, thanks to @roderickhsiao, @popomore</li>
- <li>updated text reporter so that it displays a list of the lines missing coverage, thanks @bcoe</li>
- </ul>
-</td>
-</tr>
-<tr>
-<td>v0.3.15</td>
-<td>
- <ul>
- <li>Fix #375: add nodir option to exclude directory for *.js matcher thanks to @yurenju</li>
- <li>Fix #362: When setting up the `reportDir` add it to `reporter.dir`</li>
- <li>Fixes #238 (added a poorman's clone)</li>
- <li>Incrementing hits on ignored statements implemented</li>
- <li>`a:visited color: #777` (a nice gray color)</li>
- </ul>
-</td>
-</tr>
-<tr>
-<td>v0.3.14</td>
-<td>
- Add text-lcov report format to emit lcov to console, thanks to @bcoe
-</td>
-</tr>
-<tr>
-<td>v0.3.13</td>
-<td>
- Fix #339
-</td>
-</tr>
-<tr>
-<td>v0.3.12</td>
-<td>
- Allow other-than-dot-js files to be hooked, thanks to @sethpollack
-</td>
-</tr>
-<tr>
-<td>v0.3.11</td>
-<td>
- Avoid modification of global objects, thanks to @dominykas
-</td>
-</tr>
-<tr>
-<td>v0.3.10</td>
-<td>
- Update escodegen to 1.6.x and add browser download script
-</td>
-</tr>
-<tr>
-<td>v0.3.9</td>
-<td>
- <ul>
- <li>Merge harmony branch and start adding ES6 features to istanbul</li>
- <li>Arrow functions are the only feature of interest now</li>
- <li>`for-of` and `yield` support exist but not present in mainline esprima yet</li>
- </ul>
-</td>
-</tr>
-<tr>
-<td>v0.3.8</td>
-<td>
- <ul>
- <li>Fail check coverage command when no coverage files found, thanks to @nexus-uw</li>
- <li>handle relative paths in check-coverage, thanks to @dragn</li>
- <li>support explicit includes for cover, thanks to @tonylukasavage</li>
- </ul>
-</td>
-</tr>
-<tr>
-<td>v0.3.7</td>
-<td>
- Fix asset paths on windows, thanks to @juangabreil
-</td>
-</tr>
-<tr>
-<td>v0.3.6</td>
-<td>
- <ul>
- <li>Update to Esprima 2.0</li>
- <li>Remove YUI dependency and provide custom sort code. No network access needed for HTML report view</li>
- <li>use supports-color module to colorize output, thanks to @gustavnikolaj</li>
- <li>Fix tests to work on Windows, thanks to @dougwilson</li>
- <li>Docs: "Instrument code" API example correction thanks to @robatron</li>
- <li>Extracted embedded CSS and JavaScript and made them external files, thanks to @booleangate</td>
- </ul>
-</td>
-</tr>
-<tr>
-<td>v0.3.5</td>
-<td>
-<p>Merge #275 - `--include-all-sources` option. Thanks @gustavnikolaj</p>
-<p>
-The `--preload-sources` option is now deprecated and superseded by the
-`--include-all-sources` option instead. This provides a better coverage representation
-of the code that has not been included for testing.
-</p>
-</td>
-</tr>
-<tr>
-<td>v0.3.4</td>
-<td>Merge #219 - Support reporting within symlink/junction. Thanks to @dougwilson</td>
-</tr>
-<tr>
-<td>v0.3.3</td>
-<td>Merge #268 - per file coverage enforcement. Thanks to @ryan-roemer</td>
-</tr>
-<tr>
-<td>v0.3.2</td>
-<td>Republish 0.3.1 because of bad shasum</td>
-</tr>
-<tr>
-<td>v0.3.1</td>
-<td>Fixes #249</td>
-</tr>
-<tr>
-<td>v0.3.0</td>
-<td>
- The *reports* release. **Potentially backwards-incompatible** if you are using
- undocumented features or custom report implementations.
- <ul>
- <li>Change report command line to support multiple reports, add back-compat processing with warnings</li>
- <li>Enable `report` command to read report list from config, thanks to @piuccio</li>
- <li>Support multiple reports for `cover` and `report` commands</li>
- <li>Support per-report config options in configuration file</li>
- <li>Turn reports into event emitters so they can signal `done`</li>
- <li>Add `Reporter` class to be able to generate multiple reports</li>
- <li>Add a bunch of API docs, refactor README</li>
- </ul>
-</td>
-</tr>
-<tr>
-<td>v0.2.16</td><td>Make YUI links https-always since relative links break local
-filesystem use-case
-</td>
-</tr>
-<tr>
-<td>v0.2.15</td><td>make link protocols relative so they don't break on https connections
-(thanks to @yasyf)
-</td>
-</tr>
-<tr>
-<td>v0.2.14</td><td>Fix hook to deal with non-string/ missing filenames
-(thanks to @jason0x43), update dependencies
-</td>
-</tr>
-<tr>
-<td>v0.2.13</td><td>Add `--preload-sources` option to `cover` command to make
-code not required by tests to appear in the coverage report.
-</td>
-</tr>
-<tr>
-<td>v0.2.12</td><td>Text summary as valid markdown, thanks to @smikes</td>
-</tr>
-<tr>
-<td>v0.2.11</td><td>Allow source map generation, thanks to @jason0x43</td>
-</tr>
-<tr>
-<td>v0.2.10</td><td>Add flag to handle sigints and dump coverage, thanks to @samccone</td>
-</tr>
-<tr>
-<td>v0.2.9</td><td>Fix #202</td>
-</tr>
-<tr>
-<tr>
-<td>v0.2.8</td><td>Upgrade esprima</td>
-</tr>
-<tr>
-<td>v0.2.7</td><td><ul>
- <li>Upgrade esprima</li>
- <li>Misc jshint fixes</li>
-</ul></td>
-</tr>
-<tr>
-<td>v0.2.6</td><td><ul>
- <li>Revert bad commit for tree summarizer</li>
-</ul></td>
-</tr>
-<tr>
-<td>v0.2.5</td><td><ul>
- <li>Add clover report, thanks to @bixdeng, @mpderbec</li>
- <li>Fix cobertura report bug for relative paths, thanks to @jxiaodev</li>
- <li>Run self-coverage on tests always</li>
- <li>Fix tree summarizer when relative paths are involved, thanks to @Swatinem</li>
-</ul></td>
-</tr>
-<tr>
-<td>v0.2.4</td><td><ul>
- <li>Fix line-split algo to handle Mac lin separators, thanks to @asifrc</li>
- <li>Update README for quick intro to ignoring code for coverage, thanks to @gergelyke</li>
-</ul></td>
-</tr>
-<tr>
-<td>v0.2.3</td><td><ul>
- <li>Add YAML config file. `istanbul help config` has more details</li>
- <li>Support custom reporting thresholds using the `watermarks` section of the config file</li>
-</ul></td>
-</tr>
-<tr><td>v0.2.2</td><td>update escodegen, handlebars and resolve dependency versions</td></tr>
-<tr>
-<td>v0.2.1</td><td><ul>
- <li>Add ability to skip branches and other hard-to-test code using comments.
- See <a href="https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md">the doc</a> for more details</li>
- <li>Turn `util.error` into `console.error` for node 0.11 compatibility, thanks to @pornel</li>
-</ul></td>
-</tr>
-<tr><td>v0.2.0</td><td><ul>
- <li>Add --preserve-comments to instrumenter options, thanks to @arikon</li>
- <li>Support 'use strict;' in file scope, thanks to @pornel</li>
-</ul>
- Up minor version due to the new way in which the global object is accessed.
- This _should_ be backwards-compatible but has not been tested in the wild.
-</td></tr>
-<tr><td>v0.1.46</td><td>Fix #114</td></tr>
-<tr><td>v0.1.45</td><td>Add teamcity reporter, thanks to @chrisgladd</td></tr>
-<tr><td>v0.1.44</td><td>Fix inconsistency in processing empty switch with latest esprima, up deps</td></tr>
-<tr><td>v0.1.43</td><td>Add colors to text report thanks to @runk</td></tr>
-<tr><td>v0.1.42</td><td>fix #78: embed source regression introduced in v0.1.38. Fix broken test for this</td></tr>
-<tr><td>v0.1.41</td><td>add json report to dump coverage object for certain use cases</td></tr>
-<tr><td>v0.1.40</td><td>forward sourceStore from lcov to html report, pull request by @vojtajina</td></tr>
-<tr><td>v0.1.39</td><td>add <source> tag to cobertura report, pull request by @jhansche</td></tr>
-<tr><td>v0.1.38</td><td><ul>
- <li>factor out AST instrumentation into own instrumentASTSync method</li>
- <li>always set function declaration coverage stats to 1 since every such declaration is "executed" exactly one time by the compiler</li>
- </ul></td></tr>
-<tr><td>v0.1.37</td><td>--complete-copy flag contrib from @kami, correct strict mode semantics for instrumented functions</td></tr>
-<tr><td>v0.1.36</td><td>real quiet when --print=none specified, add repo URL to package.json, add contributors</td></tr>
-<tr><td>v0.1.35</td><td>accept cobertura contrib from @nbrownus, fix #52</td></tr>
-<tr><td>v0.1.34</td><td>fix async reporting, update dependencies, accept html cleanup contrib from @mathiasbynens</td></tr>
-<tr><td>v0.1.33</td><td>initialize global coverage object before running tests to workaround mocha leak detection</td></tr>
-<tr><td>v0.1.32</td><td>Fix for null nodes in array expressions, add @unindented as contributor</td></tr>
-<tr><td>v0.1.31</td><td>Misc internal fixes and test changes</td></tr>
-<tr><td>v0.1.30</td><td>Write standard blurbs ("writing coverage object..." etc.) to stderr rather than stdout</td></tr>
-<tr><td>v0.1.29</td><td>Allow --post-require-hook to be a module that can be `require`-d</td></tr>
-<tr><td>v0.1.28</td><td>Add --post-require-hook switch to support use-cases similar to the YUI loader</td></tr>
-<tr><td>v0.1.27</td><td>Add --hook-run-in-context switch to support RequireJS modules. Thanks to @millermedeiros for the pull request</td></tr>
-<tr><td>v0.1.26</td><td>Add support for minimum uncovered unit for check-coverage. Fixes #25</td></tr>
-<tr><td>v0.1.25</td><td>Allow for relative paths in the YUI loader hook</td></tr>
-<tr><td>v0.1.24</td><td>Add lcov summaries. Fixes issue #20</td></tr>
-<tr><td>v0.1.23</td><td>Add ability to save a baseline coverage file for the instrument command. Fixes issue #19</td></tr>
-<tr><td>v0.1.22</td><td>Add signature attribute to cobertura method tags to fix NPE by the Hudson publisher</td></tr>
-<tr><td>v0.1.21</td><td>Add cobertura XML report format; exprimental for now</td></tr>
-<tr><td>v0.1.20</td><td>Fix HTML/ lcov report interface to be more customizable for middleware needs</td></tr>
-<tr><td>v0.1.19</td><td>make all hooking non-destructive in that already loaded modules are never reloaded. Add self-test mode so that already loaded istanbul modules can be unloaded prior to hooking.</td></tr>
-<tr><td>v0.1.18</td><td>Add option to hook in non-destructive mode; i.e. the require cache is not unloaded when hooking</td></tr>
-<tr><td>v0.1.17</td><td>Export some more objects; undocumented for now</td></tr>
-<tr><td>v0.1.16</td><td>Fix npm keywords for istanbul which expects an array of strings but was being fed a single string with keywords instead</td></tr>
-<tr><td>v0.1.15</td><td>Add the 'check-coverage' command so that Istanbul can be used as a posttest script to enforce minimum coverage</td></tr>
-<tr><td>v0.1.14</td><td>Expose the experimental YUI load hook in the interface</td></tr>
-<tr><td>v0.1.13</td><td>Internal jshint cleanup, no features or fixes</td></tr>
-<tr><td>v0.1.12</td><td>Give npm the README that was getting inadvertently excluded</td></tr>
-<tr><td>v0.1.11</td><td>Merge pull request #14 for HTML tweaks. Thanks @davglass. Add @davglass and @nowamasa as contributors in `package.json`</td></tr>
-<tr><td>v0.1.10</td><td>Fix to issue #12. Do not install `uncaughtException` handler and pass input error back to CLI using a callback as opposed to throwing.</td></tr>
-<tr><td>v0.1.9</td><td>Attempt to create reporting directory again just before writing coverage in addition to initial creation</td></tr>
-<tr><td>v0.1.8</td><td>Fix issue #11.</td></tr>
-<tr><td>v0.1.7</td><td>Add text summary and detailed reporting available as --print [summary|detail|both|none]. summary is the default if nothing specified.</td></tr>
-<tr><td>v0.1.6</td><td>Handle backslashes in the file path correctly in emitted code. Fixes #9. Thanks to @nowamasa for bug report and fix</td></tr>
-<tr><td>v0.1.5</td><td>make object-utils.js work on a browser as-is</td></tr>
-<tr><td>v0.1.4</td><td>partial fix for issue #4; add titles to missing coverage spans, remove negative margin for missing if/else indicators</td></tr>
-<tr><td>v0.1.3</td><td>Set the environment variable running_under_istanbul to 1 when that is the case. This allows test runners that use istanbul as a library to back off on using it when set.</td></tr>
-<tr><td>v0.1.2</td><td>HTML reporting cosmetics. Reports now show syntax-colored JS using `prettify`. Summary tables no longer wrap in awkward places.</td></tr>
-<tr><td>v0.1.1</td><td>Fixes issue #1. HTML reports use sources embedded inside the file coverage objects if found rather than reading from the filesystem</td></tr>
-<tr><td>v0.1.0</td><td>Initial version</td></tr>
-</td></tr>
-</table>
-
diff --git a/node_modules/istanbul/LICENSE b/node_modules/istanbul/LICENSE
deleted file mode 100644
index 45a650b05..000000000
--- a/node_modules/istanbul/LICENSE
+++ /dev/null
@@ -1,24 +0,0 @@
-Copyright 2012 Yahoo! Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the name of the Yahoo! Inc. nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/node_modules/istanbul/README.md b/node_modules/istanbul/README.md
deleted file mode 100644
index 89b15d97d..000000000
--- a/node_modules/istanbul/README.md
+++ /dev/null
@@ -1,288 +0,0 @@
-## Istanbul - a JS code coverage tool written in JS
-
-[![Build Status](https://secure.travis-ci.org/gotwarlost/istanbul.svg?branch=master)](http://travis-ci.org/gotwarlost/istanbul)
-[![Dependency Status](https://gemnasium.com/gotwarlost/istanbul.svg)](https://gemnasium.com/gotwarlost/istanbul)
-[![Coverage Status](https://img.shields.io/coveralls/gotwarlost/istanbul.svg)](https://coveralls.io/r/gotwarlost/istanbul?branch=master)
-[![bitHound Score](https://www.bithound.io/github/gotwarlost/istanbul/badges/score.svg)](https://www.bithound.io/github/gotwarlost/istanbul)
-
-[![NPM](https://nodei.co/npm/istanbul.png?downloads=true)](https://nodei.co/npm/istanbul/)
-
-**New** `v0.4.0` now has beautiful HTML reports. Props to Tom MacWright @tmcw for a fantastic job!
-
-* [Features and use cases](#features)
-* [Getting started and configuration](#getting-started)
-* [Usage on Windows](#usage-on-windows)
-* [The command line](#the-command-line)
-* [Ignoring code for coverage](#ignoring-code-for-coverage)
-* [API](#api)
-* [Changelog](https://github.com/gotwarlost/istanbul/blob/master/CHANGELOG.md)
-* [License and credits](#license)
-
-### Features
-
-* All-javascript instrumentation library that tracks **statement, branch,
-and function coverage**.
-* **Module loader hooks** to instrument code on the fly
-* **Command line tools** to run node unit tests "with coverage turned on" and no cooperation
-whatsoever from the test runner
-* Multiple report formats: **HTML**, **LCOV**, **Cobertura** and more.
-* Ability to use as [middleware](https://github.com/gotwarlost/istanbul-middleware) when serving JS files that need to be tested on the browser.
-* Can be used on the **command line** as well as a **library**
-* Based on the awesome `esprima` parser and the equally awesome `escodegen` code generator
-* Well-tested on node (prev, current and next versions) and the browser (instrumentation library only)
-
-### Use cases
-
-Supports the following use cases and more
-
-* transparent coverage of nodejs unit tests
-* instrumentation/ reporting of files in batch mode for browser tests
-* Server side code coverage for nodejs by embedding it as [custom middleware](https://github.com/gotwarlost/istanbul-middleware)
-
-### Getting started
-
- $ npm install -g istanbul
-
-The best way to see it in action is to run node unit tests. Say you have a test
-script `test.js` that runs all tests for your node project without coverage.
-
-Simply:
-
- $ cd /path/to/your/source/root
- $ istanbul cover test.js
-
-and this should produce a `coverage.json`, `lcov.info` and `lcov-report/*html` under `./coverage`
-
-Sample of code coverage reports produced by this tool (for this tool!):
-
-[HTML reports](http://gotwarlost.github.com/istanbul/public/coverage/lcov-report/index.html)
-
-### Usage on Windows
-
-Istanbul assumes that the `command` passed to it is a JS file (e.g. Jasmine, vows etc.),
-this is however not true on Windows where npm wrap bin files in a `.cmd` file.
-Since Istanbul can not parse `.cmd` files you need to reference the bin file manually.
-
-Here is an example using Jasmine 2:
-
- istanbul cover node_modules\jasmine\bin\jasmine.js
-
-In order to use this cross platform (e.i. Linux, Mac and Windows), you can insert
-the above line into the script object in your package.json file but with normal
-slash.
-
- "scripts": {
- "test": "istanbul cover node_modules/jasmine/bin/jasmine.js"
- }
-
-### Configuring
-
-Drop a `.istanbul.yml` file at the top of the source tree to configure istanbul.
-`istanbul help config` tells you more about the config file format.
-
-### The command line
-
- $ istanbul help
-
-gives you detailed help on all commands.
-
-```
-Usage: istanbul help config | <command>
-
-`config` provides help with istanbul configuration
-
-Available commands are:
-
- check-coverage
- checks overall/per-file coverage against thresholds from coverage
- JSON files. Exits 1 if thresholds are not met, 0 otherwise
-
-
- cover transparently adds coverage information to a node command. Saves
- coverage.json and reports at the end of execution
-
-
- help shows help
-
-
- instrument
- instruments a file or a directory tree and writes the
- instrumented code to the desired output location
-
-
- report writes reports for coverage JSON objects produced in a previous
- run
-
-
- test cover a node command only when npm_config_coverage is set. Use in
- an `npm test` script for conditional coverage
-
-
-Command names can be abbreviated as long as the abbreviation is unambiguous
-```
-
-To get detailed help for a command and what command-line options it supports, run:
-
- istanbul help <command>
-
-(Most of the command line options are not covered in this document.)
-
-#### The `cover` command
-
- $ istanbul cover my-test-script.js -- my test args
- # note the -- between the command name and the arguments to be passed
-
-The `cover` command can be used to get a coverage object and reports for any arbitrary
-node script. By default, coverage information is written under `./coverage` - this
-can be changed using command-line options.
-
-The `cover` command can also be passed an optional `--handle-sigint` flag to
-enable writing reports when a user triggers a manual SIGINT of the process that is
-being covered. This can be useful when you are generating coverage for a long lived process.
-
-#### The `test` command
-
-The `test` command has almost the same behavior as the `cover` command, except that
-it skips coverage unless the `npm_config_coverage` environment variable is set.
-
-**This command is deprecated** since the latest versions of npm do not seem to
-set the `npm_config_coverage` variable.
-
-#### The `instrument` command
-
-Instruments a single JS file or an entire directory tree and produces an output
-directory tree with instrumented code. This should not be required for running node
-unit tests but is useful for tests to be run on the browser.
-
-#### The `report` command
-
-Writes reports using `coverage*.json` files as the source of coverage information.
-Reports are available in multiple formats and can be individually configured
-using the istanbul config file. See `istanbul help report` for more details.
-
-#### The `check-coverage` command
-
-Checks the coverage of statements, functions, branches, and lines against the
-provided thresholds. Positive thresholds are taken to be the minimum percentage
-required and negative numbers are taken to be the number of uncovered entities
-allowed.
-
-### Ignoring code for coverage
-
-* Skip an `if` or `else` path with `/* istanbul ignore if */` or `/* istanbul ignore else */` respectively.
-* For all other cases, skip the next 'thing' in the source with: `/* istanbul ignore next */`
-
-See [ignoring-code-for-coverage.md](ignoring-code-for-coverage.md) for the spec.
-
-
-### API
-
-All the features of istanbul can be accessed as a library.
-
-#### Instrument code
-
-```javascript
- var istanbul = require('istanbul');
- var instrumenter = new istanbul.Instrumenter();
-
- var generatedCode = instrumenter.instrumentSync('function meaningOfLife() { return 42; }',
- 'filename.js');
-```
-
-#### Generate reports given a bunch of coverage JSON objects
-
-```javascript
- var istanbul = require('istanbul'),
- collector = new istanbul.Collector(),
- reporter = new istanbul.Reporter(),
- sync = false;
-
- collector.add(obj1);
- collector.add(obj2); //etc.
-
- reporter.add('text');
- reporter.addAll([ 'lcov', 'clover' ]);
- reporter.write(collector, sync, function () {
- console.log('All reports generated');
- });
-```
-
-For the gory details consult the [public API](http://gotwarlost.github.com/istanbul/public/apidocs/index.html)
-
-
-### Multiple Process Usage
-
-Istanbul can be used in a multiple process environment by running each process
-with Istanbul, writing a unique coverage file for each process, and combining
-the results when generating reports. The method used to perform this will
-depend on the process forking API used. For example when using the
-[cluster module](http://nodejs.org/api/cluster.html) you must setup the master
-to start child processes with Istanbul coverage, disable reporting, and output
-coverage files that include the PID in the filename. Before each run you may
-need to clear out the coverage data directory.
-
-```javascript
- if(cluster.isMaster) {
- // setup cluster if running with istanbul coverage
- if(process.env.running_under_istanbul) {
- // use coverage for forked process
- // disabled reporting and output for child process
- // enable pid in child process coverage filename
- cluster.setupMaster({
- exec: './node_modules/.bin/istanbul',
- args: [
- 'cover', '--report', 'none', '--print', 'none', '--include-pid',
- process.argv[1], '--'].concat(process.argv.slice(2))
- });
- }
- // ...
- // ... cluster.fork();
- // ...
- } else {
- // ... worker code
- }
-```
-
-### Coverage.json
-
-For details on the format of the coverage.json object, [see here](./coverage.json.md).
-
-### License
-
-istanbul is licensed under the [BSD License](http://github.com/gotwarlost/istanbul/raw/master/LICENSE).
-
-### Third-party libraries
-
-The following third-party libraries are used by this module:
-
-* abbrev: https://github.com/isaacs/abbrev-js - to handle command abbreviations
-* async: https://github.com/caolan/async - for parallel instrumentation of files
-* escodegen: https://github.com/Constellation/escodegen - for JS code generation
-* esprima: https://github.com/ariya/esprima - for JS parsing
-* glob: https://github.com/isaacs/node-glob - for loading and matching path expressions
-* handlebars: https://github.com/wycats/handlebars.js/ - for report template expansion
-* js-yaml: https://github.com/nodeca/js-yaml - for YAML config file load
-* mkdirp: https://github.com/substack/node-mkdirp - to create output directories
-* nodeunit: https://github.com/caolan/nodeunit - dev dependency for unit tests
-* nopt: https://github.com/isaacs/nopt - for option parsing
-* once: https://github.com/isaacs/once - to ensure callbacks are called once
-* resolve: https://github.com/substack/node-resolve - for resolving a post-require hook module name into its main file.
-* rimraf - https://github.com/isaacs/rimraf - dev dependency for unit tests
-* which: https://github.com/isaacs/node-which - to resolve a node command to a file for the `cover` command
-* wordwrap: https://github.com/substack/node-wordwrap - for prettier help
-* prettify: http://code.google.com/p/google-code-prettify/ - for syntax colored HTML reports. Files checked in under `lib/vendor/`
-
-### Inspired by
-
-* YUI test coverage - https://github.com/yui/yuitest - the grand-daddy of JS coverage tools. Istanbul has been specifically designed to offer an alternative to this library with an easy migration path.
-* cover: https://github.com/itay/node-cover - the inspiration for the `cover` command, modeled after the `run` command in that tool. The coverage methodology used by istanbul is quite different, however
-
-### Shout out to
-
- * [mfncooper](https://github.com/mfncooper) - for great brainstorming discussions
- * [reid](https://github.com/reid), [davglass](https://github.com/davglass), the YUI dudes, for interesting conversations, encouragement, support and gentle pressure to get it done :)
-
-### Why the funky name?
-
-Since all the good ones are taken. Comes from the loose association of ideas across
-coverage, carpet-area coverage, the country that makes good carpets and so on...
diff --git a/node_modules/istanbul/index.js b/node_modules/istanbul/index.js
deleted file mode 100644
index afcaaa97d..000000000
--- a/node_modules/istanbul/index.js
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
-Copyright (c) 2012, Yahoo! Inc. All rights reserved.
-Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
-*/
-
-/*jslint nomen: true */
-var path = require('path'),
- Store = require('./lib/store'),
- Report = require('./lib/report'),
- meta = require('./lib/util/meta');
-
-//register our standard plugins
-require('./lib/register-plugins');
-
-/**
- * the top-level API for `istanbul`. provides access to the key libraries in
- * istanbul so you can write your own tools using `istanbul` as a library.
- *
- * Usage
- * -----
- *
- * var istanbul = require('istanbul');
- *
- *
- * @class Istanbul
- * @static
- * @module main
- * @main main
- */
-
-module.exports = {
- /**
- * the Instrumenter class.
- * @property Instrumenter
- * @type Instrumenter
- * @static
- */
- Instrumenter: require('./lib/instrumenter'),
- /**
- * the Store class.
- * @property Store
- * @type Store
- * @static
- */
- Store: Store,
- /**
- * the Collector class
- * @property Collector
- * @type Collector
- * @static
- */
- Collector: require('./lib/collector'),
- /**
- * the hook module
- * @property hook
- * @type Hook
- * @static
- */
- hook: require('./lib/hook'),
- /**
- * the Report class
- * @property Report
- * @type Report
- * @static
- */
- Report: Report,
- /**
- * the config module
- * @property config
- * @type Config
- * @static
- */
- config: require('./lib/config'),
- /**
- * the Reporter class
- * @property Reporter
- * @type Reporter
- * @static
- */
- Reporter: require('./lib/reporter'),
- /**
- * utility for processing coverage objects
- * @property utils
- * @type ObjectUtils
- * @static
- */
- utils: require('./lib/object-utils'),
- /**
- * asynchronously returns a function that can match filesystem paths.
- * The function returned in the callback may be passed directly as a `matcher`
- * to the functions in the `hook` module.
- *
- * When no options are passed, the match function is one that matches all JS
- * files under the current working directory except ones under `node_modules`
- *
- * Match patterns are `ant`-style patterns processed using the `glob` library.
- * Examples not provided due to limitations in putting asterisks inside
- * jsdoc comments. Please refer to tests under `test/other/test-matcher.js`
- * for examples.
- *
- * @method matcherFor
- * @static
- * @param {Object} options Optional. Lookup options.
- * @param {String} [options.root] the root of the filesystem tree under
- * which to match files. Defaults to `process.cwd()`
- * @param {Array} [options.includes] an array of include patterns to match.
- * Defaults to all JS files under the root.
- * @param {Array} [options.excludes] and array of exclude patterns. File paths
- * matching these patterns will be excluded by the returned matcher.
- * Defaults to files under `node_modules` found anywhere under root.
- * @param {Function(err, matchFunction)} callback The callback that is
- * called with two arguments. The first is an `Error` object in case
- * of errors or a falsy value if there were no errors. The second
- * is a function that may be use as a matcher.
- */
- matcherFor: require('./lib/util/file-matcher').matcherFor,
- /**
- * the version of the library
- * @property VERSION
- * @type String
- * @static
- */
- VERSION: meta.VERSION,
- /**
- * the abstract Writer class
- * @property Writer
- * @type Writer
- * @static
- */
- Writer: require('./lib/util/writer').Writer,
- /**
- * the abstract ContentWriter class
- * @property ContentWriter
- * @type ContentWriter
- * @static
- */
- ContentWriter: require('./lib/util/writer').ContentWriter,
- /**
- * the concrete FileWriter class
- * @property FileWriter
- * @type FileWriter
- * @static
- */
- FileWriter: require('./lib/util/file-writer'),
- //undocumented
- _yuiLoadHook: require('./lib/util/yui-load-hook'),
- //undocumented
- TreeSummarizer: require('./lib/util/tree-summarizer'),
- //undocumented
- assetsDir: path.resolve(__dirname, 'lib', 'assets')
-};
-
-
diff --git a/node_modules/istanbul/lib/assets/base.css b/node_modules/istanbul/lib/assets/base.css
deleted file mode 100644
index 29737bcb0..000000000
--- a/node_modules/istanbul/lib/assets/base.css
+++ /dev/null
@@ -1,213 +0,0 @@
-body, html {
- margin:0; padding: 0;
- height: 100%;
-}
-body {
- font-family: Helvetica Neue, Helvetica, Arial;
- font-size: 14px;
- color:#333;
-}
-.small { font-size: 12px; }
-*, *:after, *:before {
- -webkit-box-sizing:border-box;
- -moz-box-sizing:border-box;
- box-sizing:border-box;
- }
-h1 { font-size: 20px; margin: 0;}
-h2 { font-size: 14px; }
-pre {
- font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace;
- margin: 0;
- padding: 0;
- -moz-tab-size: 2;
- -o-tab-size: 2;
- tab-size: 2;
-}
-a { color:#0074D9; text-decoration:none; }
-a:hover { text-decoration:underline; }
-.strong { font-weight: bold; }
-.space-top1 { padding: 10px 0 0 0; }
-.pad2y { padding: 20px 0; }
-.pad1y { padding: 10px 0; }
-.pad2x { padding: 0 20px; }
-.pad2 { padding: 20px; }
-.pad1 { padding: 10px; }
-.space-left2 { padding-left:55px; }
-.space-right2 { padding-right:20px; }
-.center { text-align:center; }
-.clearfix { display:block; }
-.clearfix:after {
- content:'';
- display:block;
- height:0;
- clear:both;
- visibility:hidden;
- }
-.fl { float: left; }
-@media only screen and (max-width:640px) {
- .col3 { width:100%; max-width:100%; }
- .hide-mobile { display:none!important; }
-}
-
-.quiet {
- color: #7f7f7f;
- color: rgba(0,0,0,0.5);
-}
-.quiet a { opacity: 0.7; }
-
-.fraction {
- font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
- font-size: 10px;
- color: #555;
- background: #E8E8E8;
- padding: 4px 5px;
- border-radius: 3px;
- vertical-align: middle;
-}
-
-div.path a:link, div.path a:visited { color: #333; }
-table.coverage {
- border-collapse: collapse;
- margin: 10px 0 0 0;
- padding: 0;
-}
-
-table.coverage td {
- margin: 0;
- padding: 0;
- vertical-align: top;
-}
-table.coverage td.line-count {
- text-align: right;
- padding: 0 5px 0 20px;
-}
-table.coverage td.line-coverage {
- text-align: right;
- padding-right: 10px;
- min-width:20px;
-}
-
-table.coverage td span.cline-any {
- display: inline-block;
- padding: 0 5px;
- width: 100%;
-}
-.missing-if-branch {
- display: inline-block;
- margin-right: 5px;
- border-radius: 3px;
- position: relative;
- padding: 0 4px;
- background: #333;
- color: yellow;
-}
-
-.skip-if-branch {
- display: none;
- margin-right: 10px;
- position: relative;
- padding: 0 4px;
- background: #ccc;
- color: white;
-}
-.missing-if-branch .typ, .skip-if-branch .typ {
- color: inherit !important;
-}
-.coverage-summary {
- border-collapse: collapse;
- width: 100%;
-}
-.coverage-summary tr { border-bottom: 1px solid #bbb; }
-.keyline-all { border: 1px solid #ddd; }
-.coverage-summary td, .coverage-summary th { padding: 10px; }
-.coverage-summary tbody { border: 1px solid #bbb; }
-.coverage-summary td { border-right: 1px solid #bbb; }
-.coverage-summary td:last-child { border-right: none; }
-.coverage-summary th {
- text-align: left;
- font-weight: normal;
- white-space: nowrap;
-}
-.coverage-summary th.file { border-right: none !important; }
-.coverage-summary th.pct { }
-.coverage-summary th.pic,
-.coverage-summary th.abs,
-.coverage-summary td.pct,
-.coverage-summary td.abs { text-align: right; }
-.coverage-summary td.file { white-space: nowrap; }
-.coverage-summary td.pic { min-width: 120px !important; }
-.coverage-summary tfoot td { }
-
-.coverage-summary .sorter {
- height: 10px;
- width: 7px;
- display: inline-block;
- margin-left: 0.5em;
- background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
-}
-.coverage-summary .sorted .sorter {
- background-position: 0 -20px;
-}
-.coverage-summary .sorted-desc .sorter {
- background-position: 0 -10px;
-}
-.status-line { height: 10px; }
-/* dark red */
-.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 }
-.low .chart { border:1px solid #C21F39 }
-/* medium red */
-.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE }
-/* light red */
-.low, .cline-no { background:#FCE1E5 }
-/* light green */
-.high, .cline-yes { background:rgb(230,245,208) }
-/* medium green */
-.cstat-yes { background:rgb(161,215,106) }
-/* dark green */
-.status-line.high, .high .cover-fill { background:rgb(77,146,33) }
-.high .chart { border:1px solid rgb(77,146,33) }
-/* dark yellow (gold) */
-.medium .chart { border:1px solid #f9cd0b; }
-.status-line.medium, .medium .cover-fill { background: #f9cd0b; }
-/* light yellow */
-.medium { background: #fff4c2; }
-/* light gray */
-span.cline-neutral { background: #eaeaea; }
-
-.cbranch-no { background: yellow !important; color: #111; }
-
-.cstat-skip { background: #ddd; color: #111; }
-.fstat-skip { background: #ddd; color: #111 !important; }
-.cbranch-skip { background: #ddd !important; color: #111; }
-
-
-.cover-fill, .cover-empty {
- display:inline-block;
- height: 12px;
-}
-.chart {
- line-height: 0;
-}
-.cover-empty {
- background: white;
-}
-.cover-full {
- border-right: none !important;
-}
-pre.prettyprint {
- border: none !important;
- padding: 0 !important;
- margin: 0 !important;
-}
-.com { color: #999 !important; }
-.ignore-none { color: #999; font-weight: normal; }
-
-.wrapper {
- min-height: 100%;
- height: auto !important;
- height: 100%;
- margin: 0 auto -48px;
-}
-.footer, .push {
- height: 48px;
-}
diff --git a/node_modules/istanbul/lib/assets/sort-arrow-sprite.png b/node_modules/istanbul/lib/assets/sort-arrow-sprite.png
deleted file mode 100644
index 03f704a60..000000000
--- a/node_modules/istanbul/lib/assets/sort-arrow-sprite.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/istanbul/lib/assets/sorter.js b/node_modules/istanbul/lib/assets/sorter.js
deleted file mode 100644
index 6c5034e40..000000000
--- a/node_modules/istanbul/lib/assets/sorter.js
+++ /dev/null
@@ -1,158 +0,0 @@
-var addSorting = (function () {
- "use strict";
- var cols,
- currentSort = {
- index: 0,
- desc: false
- };
-
- // returns the summary table element
- function getTable() { return document.querySelector('.coverage-summary'); }
- // returns the thead element of the summary table
- function getTableHeader() { return getTable().querySelector('thead tr'); }
- // returns the tbody element of the summary table
- function getTableBody() { return getTable().querySelector('tbody'); }
- // returns the th element for nth column
- function getNthColumn(n) { return getTableHeader().querySelectorAll('th')[n]; }
-
- // loads all columns
- function loadColumns() {
- var colNodes = getTableHeader().querySelectorAll('th'),
- colNode,
- cols = [],
- col,
- i;
-
- for (i = 0; i < colNodes.length; i += 1) {
- colNode = colNodes[i];
- col = {
- key: colNode.getAttribute('data-col'),
- sortable: !colNode.getAttribute('data-nosort'),
- type: colNode.getAttribute('data-type') || 'string'
- };
- cols.push(col);
- if (col.sortable) {
- col.defaultDescSort = col.type === 'number';
- colNode.innerHTML = colNode.innerHTML + '<span class="sorter"></span>';
- }
- }
- return cols;
- }
- // attaches a data attribute to every tr element with an object
- // of data values keyed by column name
- function loadRowData(tableRow) {
- var tableCols = tableRow.querySelectorAll('td'),
- colNode,
- col,
- data = {},
- i,
- val;
- for (i = 0; i < tableCols.length; i += 1) {
- colNode = tableCols[i];
- col = cols[i];
- val = colNode.getAttribute('data-value');
- if (col.type === 'number') {
- val = Number(val);
- }
- data[col.key] = val;
- }
- return data;
- }
- // loads all row data
- function loadData() {
- var rows = getTableBody().querySelectorAll('tr'),
- i;
-
- for (i = 0; i < rows.length; i += 1) {
- rows[i].data = loadRowData(rows[i]);
- }
- }
- // sorts the table using the data for the ith column
- function sortByIndex(index, desc) {
- var key = cols[index].key,
- sorter = function (a, b) {
- a = a.data[key];
- b = b.data[key];
- return a < b ? -1 : a > b ? 1 : 0;
- },
- finalSorter = sorter,
- tableBody = document.querySelector('.coverage-summary tbody'),
- rowNodes = tableBody.querySelectorAll('tr'),
- rows = [],
- i;
-
- if (desc) {
- finalSorter = function (a, b) {
- return -1 * sorter(a, b);
- };
- }
-
- for (i = 0; i < rowNodes.length; i += 1) {
- rows.push(rowNodes[i]);
- tableBody.removeChild(rowNodes[i]);
- }
-
- rows.sort(finalSorter);
-
- for (i = 0; i < rows.length; i += 1) {
- tableBody.appendChild(rows[i]);
- }
- }
- // removes sort indicators for current column being sorted
- function removeSortIndicators() {
- var col = getNthColumn(currentSort.index),
- cls = col.className;
-
- cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '');
- col.className = cls;
- }
- // adds sort indicators for current column being sorted
- function addSortIndicators() {
- getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted';
- }
- // adds event listeners for all sorter widgets
- function enableUI() {
- var i,
- el,
- ithSorter = function ithSorter(i) {
- var col = cols[i];
-
- return function () {
- var desc = col.defaultDescSort;
-
- if (currentSort.index === i) {
- desc = !currentSort.desc;
- }
- sortByIndex(i, desc);
- removeSortIndicators();
- currentSort.index = i;
- currentSort.desc = desc;
- addSortIndicators();
- };
- };
- for (i =0 ; i < cols.length; i += 1) {
- if (cols[i].sortable) {
- // add the click event handler on the th so users
- // dont have to click on those tiny arrows
- el = getNthColumn(i).querySelector('.sorter').parentElement;
- if (el.addEventListener) {
- el.addEventListener('click', ithSorter(i));
- } else {
- el.attachEvent('onclick', ithSorter(i));
- }
- }
- }
- }
- // adds sorting functionality to the UI
- return function () {
- if (!getTable()) {
- return;
- }
- cols = loadColumns();
- loadData(cols);
- addSortIndicators();
- enableUI();
- };
-})();
-
-window.addEventListener('load', addSorting);
diff --git a/node_modules/istanbul/lib/assets/vendor/prettify.css b/node_modules/istanbul/lib/assets/vendor/prettify.css
deleted file mode 100644
index b317a7cda..000000000
--- a/node_modules/istanbul/lib/assets/vendor/prettify.css
+++ /dev/null
@@ -1 +0,0 @@
-.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
diff --git a/node_modules/istanbul/lib/assets/vendor/prettify.js b/node_modules/istanbul/lib/assets/vendor/prettify.js
deleted file mode 100644
index ef51e0386..000000000
--- a/node_modules/istanbul/lib/assets/vendor/prettify.js
+++ /dev/null
@@ -1 +0,0 @@
-window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]);
diff --git a/node_modules/istanbul/lib/cli.js b/node_modules/istanbul/lib/cli.js
deleted file mode 100755
index 5a8f1bfca..000000000
--- a/node_modules/istanbul/lib/cli.js
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/usr/bin/env node
-
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-
-var async = require('async'),
- Command = require('./command'),
- inputError = require('./util/input-error'),
- exitProcess = process.exit; //hold a reference to original process.exit so that we are not affected even when a test changes it
-
-require('./register-plugins');
-
-function findCommandPosition(args) {
- var i;
-
- for (i = 0; i < args.length; i += 1) {
- if (args[i].charAt(0) !== '-') {
- return i;
- }
- }
-
- return -1;
-}
-
-function exit(ex, code) {
- // flush output for Node.js Windows pipe bug
- // https://github.com/joyent/node/issues/6247 is just one bug example
- // https://github.com/visionmedia/mocha/issues/333 has a good discussion
- var streams = [process.stdout, process.stderr];
- async.forEach(streams, function (stream, done) {
- // submit a write request and wait until it's written
- stream.write('', done);
- }, function () {
- if (ex) {
- if (typeof ex === 'string') {
- console.error(ex);
- exitProcess(1);
- } else {
- throw ex; // turn it into an uncaught exception
- }
- } else {
- exitProcess(code);
- }
- });
-}
-
-function errHandler (ex) {
- if (!ex) { return; }
- if (!ex.inputError) {
- // exit with exception stack trace
- exit(ex);
- } else {
- //don't print nasty traces but still exit(1)
- console.error(ex.message);
- console.error('Try "istanbul help" for usage');
- exit(null, 1);
- }
-}
-
-function runCommand(args, callback) {
- var pos = findCommandPosition(args),
- command,
- commandArgs,
- commandObject;
-
- if (pos < 0) {
- return callback(inputError.create('Need a command to run'));
- }
-
- commandArgs = args.slice(0, pos);
- command = args[pos];
- commandArgs.push.apply(commandArgs, args.slice(pos + 1));
-
- try {
- commandObject = Command.create(command);
- } catch (ex) {
- errHandler(inputError.create(ex.message));
- return;
- }
- commandObject.run(commandArgs, errHandler);
-}
-
-function runToCompletion(args) {
- runCommand(args, errHandler);
-}
-
-/* istanbul ignore if: untestable */
-if (require.main === module) {
- var args = Array.prototype.slice.call(process.argv, 2);
- runToCompletion(args);
-}
-
-module.exports = {
- runToCompletion: runToCompletion
-};
-
diff --git a/node_modules/istanbul/lib/collector.js b/node_modules/istanbul/lib/collector.js
deleted file mode 100644
index f1b6b606e..000000000
--- a/node_modules/istanbul/lib/collector.js
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-"use strict";
-var MemoryStore = require('./store/memory'),
- utils = require('./object-utils');
-
-/**
- * a mechanism to merge multiple coverage objects into one. Handles the use case
- * of overlapping coverage information for the same files in multiple coverage
- * objects and does not double-count in this situation. For example, if
- * you pass the same coverage object multiple times, the final merged object will be
- * no different that any of the objects passed in (except for execution counts).
- *
- * The `Collector` is built for scale to handle thousands of coverage objects.
- * By default, all processing is done in memory since the common use-case is of
- * one or a few coverage objects. You can work around memory
- * issues by passing in a `Store` implementation that stores temporary computations
- * on disk (the `tmp` store, for example).
- *
- * The `getFinalCoverage` method returns an object with merged coverage information
- * and is provided as a convenience for implementors working with coverage information
- * that can fit into memory. Reporters, in the interest of generality, should *not* use this method for
- * creating reports.
- *
- * Usage
- * -----
- *
- * var collector = new require('istanbul').Collector();
- *
- * files.forEach(function (f) {
- * //each coverage object can have overlapping information about multiple files
- * collector.add(JSON.parse(fs.readFileSync(f, 'utf8')));
- * });
- *
- * collector.files().forEach(function(file) {
- * var fileCoverage = collector.fileCoverageFor(file);
- * console.log('Coverage for ' + file + ' is:' + JSON.stringify(fileCoverage));
- * });
- *
- * // convenience method: do not use this when dealing with a large number of files
- * var finalCoverage = collector.getFinalCoverage();
- *
- * @class Collector
- * @module main
- * @constructor
- * @param {Object} options Optional. Configuration options.
- * @param {Store} options.store - an implementation of `Store` to use for temporary
- * calculations.
- */
-function Collector(options) {
- options = options || {};
- this.store = options.store || new MemoryStore();
-}
-
-Collector.prototype = {
- /**
- * adds a coverage object to the collector.
- *
- * @method add
- * @param {Object} coverage the coverage object.
- * @param {String} testName Optional. The name of the test used to produce the object.
- * This is currently not used.
- */
- add: function (coverage /*, testName */) {
- var store = this.store;
- Object.keys(coverage).forEach(function (key) {
- var fileCoverage = coverage[key];
- if (store.hasKey(key)) {
- store.setObject(key, utils.mergeFileCoverage(fileCoverage, store.getObject(key)));
- } else {
- store.setObject(key, fileCoverage);
- }
- });
- },
- /**
- * returns a list of unique file paths for which coverage information has been added.
- * @method files
- * @return {Array} an array of file paths for which coverage information is present.
- */
- files: function () {
- return this.store.keys();
- },
- /**
- * return file coverage information for a single file
- * @method fileCoverageFor
- * @param {String} fileName the path for the file for which coverage information is
- * required. Must be one of the values returned in the `files()` method.
- * @return {Object} the coverage information for the specified file.
- */
- fileCoverageFor: function (fileName) {
- var ret = this.store.getObject(fileName);
- utils.addDerivedInfoForFile(ret);
- return ret;
- },
- /**
- * returns file coverage information for all files. This has the same format as
- * any of the objects passed in to the `add` method. The number of keys in this
- * object will be a superset of all keys found in the objects passed to `add()`
- * @method getFinalCoverage
- * @return {Object} the merged coverage information
- */
- getFinalCoverage: function () {
- var ret = {},
- that = this;
- this.files().forEach(function (file) {
- ret[file] = that.fileCoverageFor(file);
- });
- return ret;
- },
- /**
- * disposes this collector and reclaims temporary resources used in the
- * computation. Calls `dispose()` on the underlying store.
- * @method dispose
- */
- dispose: function () {
- this.store.dispose();
- }
-};
-
-module.exports = Collector; \ No newline at end of file
diff --git a/node_modules/istanbul/lib/command/check-coverage.js b/node_modules/istanbul/lib/command/check-coverage.js
deleted file mode 100644
index 5776c7780..000000000
--- a/node_modules/istanbul/lib/command/check-coverage.js
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var nopt = require('nopt'),
- path = require('path'),
- fs = require('fs'),
- Collector = require('../collector'),
- formatOption = require('../util/help-formatter').formatOption,
- util = require('util'),
- utils = require('../object-utils'),
- filesFor = require('../util/file-matcher').filesFor,
- Command = require('./index'),
- configuration = require('../config');
-
-function isAbsolute(file) {
- if (path.isAbsolute) {
- return path.isAbsolute(file);
- }
-
- return path.resolve(file) === path.normalize(file);
-}
-
-function CheckCoverageCommand() {
- Command.call(this);
-}
-
-function removeFiles(covObj, root, files) {
- var filesObj = {},
- obj = {};
-
- // Create lookup table.
- files.forEach(function (file) {
- filesObj[file] = true;
- });
-
- Object.keys(covObj).forEach(function (key) {
- // Exclude keys will always be relative, but covObj keys can be absolute or relative
- var excludeKey = isAbsolute(key) ? path.relative(root, key) : key;
- // Also normalize for files that start with `./`, etc.
- excludeKey = path.normalize(excludeKey);
- if (filesObj[excludeKey] !== true) {
- obj[key] = covObj[key];
- }
- });
-
- return obj;
-}
-
-CheckCoverageCommand.TYPE = 'check-coverage';
-util.inherits(CheckCoverageCommand, Command);
-
-Command.mix(CheckCoverageCommand, {
- synopsis: function () {
- return "checks overall/per-file coverage against thresholds from coverage JSON files. Exits 1 if thresholds are not met, 0 otherwise";
- },
-
- usage: function () {
- console.error('\nUsage: ' + this.toolName() + ' ' + this.type() + ' <options> [<include-pattern>]\n\nOptions are:\n\n' +
- [
- formatOption('--statements <threshold>', 'global statement coverage threshold'),
- formatOption('--functions <threshold>', 'global function coverage threshold'),
- formatOption('--branches <threshold>', 'global branch coverage threshold'),
- formatOption('--lines <threshold>', 'global line coverage threshold')
- ].join('\n\n') + '\n');
-
- console.error('\n\n');
-
- console.error('Thresholds, when specified as a positive number are taken to be the minimum percentage required.');
- console.error('When a threshold is specified as a negative number it represents the maximum number of uncovered entities allowed.\n');
- console.error('For example, --statements 90 implies minimum statement coverage is 90%.');
- console.error(' --statements -10 implies that no more than 10 uncovered statements are allowed\n');
- console.error('Per-file thresholds can be specified via a configuration file.\n');
- console.error('<include-pattern> is a glob pattern that can be used to select one or more coverage files ' +
- 'for merge. This defaults to "**/coverage*.json"');
-
- console.error('\n');
- },
-
- run: function (args, callback) {
-
- var template = {
- config: path,
- root: path,
- statements: Number,
- lines: Number,
- branches: Number,
- functions: Number,
- verbose: Boolean
- },
- opts = nopt(template, { v : '--verbose' }, args, 0),
- // Translate to config opts.
- config = configuration.loadFile(opts.config, {
- verbose: opts.verbose,
- check: {
- global: {
- statements: opts.statements,
- lines: opts.lines,
- branches: opts.branches,
- functions: opts.functions
- }
- }
- }),
- includePattern = '**/coverage*.json',
- root,
- collector = new Collector(),
- errors = [];
-
- if (opts.argv.remain.length > 0) {
- includePattern = opts.argv.remain[0];
- }
-
- root = opts.root || process.cwd();
- filesFor({
- root: root,
- includes: [ includePattern ]
- }, function (err, files) {
- if (err) { throw err; }
- if (files.length === 0) {
- return callback('ERROR: No coverage files found.');
- }
- files.forEach(function (file) {
- var coverageObject = JSON.parse(fs.readFileSync(file, 'utf8'));
- collector.add(coverageObject);
- });
- var thresholds = {
- global: {
- statements: config.check.global.statements || 0,
- branches: config.check.global.branches || 0,
- lines: config.check.global.lines || 0,
- functions: config.check.global.functions || 0,
- excludes: config.check.global.excludes || []
- },
- each: {
- statements: config.check.each.statements || 0,
- branches: config.check.each.branches || 0,
- lines: config.check.each.lines || 0,
- functions: config.check.each.functions || 0,
- excludes: config.check.each.excludes || []
- }
- },
- rawCoverage = collector.getFinalCoverage(),
- globalResults = utils.summarizeCoverage(removeFiles(rawCoverage, root, thresholds.global.excludes)),
- eachResults = removeFiles(rawCoverage, root, thresholds.each.excludes);
-
- // Summarize per-file results and mutate original results.
- Object.keys(eachResults).forEach(function (key) {
- eachResults[key] = utils.summarizeFileCoverage(eachResults[key]);
- });
-
- if (config.verbose) {
- console.log('Compare actuals against thresholds');
- console.log(JSON.stringify({ global: globalResults, each: eachResults, thresholds: thresholds }, undefined, 4));
- }
-
- function check(name, thresholds, actuals) {
- [
- "statements",
- "branches",
- "lines",
- "functions"
- ].forEach(function (key) {
- var actual = actuals[key].pct,
- actualUncovered = actuals[key].total - actuals[key].covered,
- threshold = thresholds[key];
-
- if (threshold < 0) {
- if (threshold * -1 < actualUncovered) {
- errors.push('ERROR: Uncovered count for ' + key + ' (' + actualUncovered +
- ') exceeds ' + name + ' threshold (' + -1 * threshold + ')');
- }
- } else {
- if (actual < threshold) {
- errors.push('ERROR: Coverage for ' + key + ' (' + actual +
- '%) does not meet ' + name + ' threshold (' + threshold + '%)');
- }
- }
- });
- }
-
- check("global", thresholds.global, globalResults);
-
- Object.keys(eachResults).forEach(function (key) {
- check("per-file" + " (" + key + ") ", thresholds.each, eachResults[key]);
- });
-
- return callback(errors.length === 0 ? null : errors.join("\n"));
- });
- }
-});
-
-module.exports = CheckCoverageCommand;
-
-
diff --git a/node_modules/istanbul/lib/command/common/run-with-cover.js b/node_modules/istanbul/lib/command/common/run-with-cover.js
deleted file mode 100644
index d4c5fafe4..000000000
--- a/node_modules/istanbul/lib/command/common/run-with-cover.js
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-var Module = require('module'),
- path = require('path'),
- fs = require('fs'),
- nopt = require('nopt'),
- which = require('which'),
- mkdirp = require('mkdirp'),
- existsSync = fs.existsSync || path.existsSync,
- inputError = require('../../util/input-error'),
- matcherFor = require('../../util/file-matcher').matcherFor,
- Instrumenter = require('../../instrumenter'),
- Collector = require('../../collector'),
- formatOption = require('../../util/help-formatter').formatOption,
- hook = require('../../hook'),
- Reporter = require('../../reporter'),
- resolve = require('resolve'),
- configuration = require('../../config');
-
-function usage(arg0, command) {
-
- console.error('\nUsage: ' + arg0 + ' ' + command + ' [<options>] <executable-js-file-or-command> [-- <arguments-to-jsfile>]\n\nOptions are:\n\n'
- + [
- formatOption('--config <path-to-config>', 'the configuration file to use, defaults to .istanbul.yml'),
- formatOption('--root <path> ', 'the root path to look for files to instrument, defaults to .'),
- formatOption('-x <exclude-pattern> [-x <exclude-pattern>]', 'one or more glob patterns e.g. "**/vendor/**"'),
- formatOption('-i <include-pattern> [-i <include-pattern>]', 'one or more glob patterns e.g. "**/*.js"'),
- formatOption('--[no-]default-excludes', 'apply default excludes [ **/node_modules/**, **/test/**, **/tests/** ], defaults to true'),
- formatOption('--hook-run-in-context', 'hook vm.runInThisContext in addition to require (supports RequireJS), defaults to false'),
- formatOption('--post-require-hook <file> | <module>', 'JS module that exports a function for post-require processing'),
- formatOption('--report <format> [--report <format>] ', 'report format, defaults to lcov (= lcov.info + HTML)'),
- formatOption('--dir <report-dir>', 'report directory, defaults to ./coverage'),
- formatOption('--print <type>', 'type of report to print to console, one of summary (default), detail, both or none'),
- formatOption('--verbose, -v', 'verbose mode'),
- formatOption('--[no-]preserve-comments', 'remove / preserve comments in the output, defaults to false'),
- formatOption('--include-all-sources', 'instrument all unused sources after running tests, defaults to false'),
- formatOption('--[no-]include-pid', 'include PID in output coverage filename')
- ].join('\n\n') + '\n');
- console.error('\n');
-}
-
-function run(args, commandName, enableHooks, callback) {
-
- var template = {
- config: path,
- root: path,
- x: [ Array, String ],
- report: [Array, String ],
- dir: path,
- verbose: Boolean,
- yui: Boolean,
- 'default-excludes': Boolean,
- print: String,
- 'self-test': Boolean,
- 'hook-run-in-context': Boolean,
- 'post-require-hook': String,
- 'preserve-comments': Boolean,
- 'include-all-sources': Boolean,
- 'preload-sources': Boolean,
- i: [ Array, String ],
- 'include-pid': Boolean
- },
- opts = nopt(template, { v : '--verbose' }, args, 0),
- overrides = {
- verbose: opts.verbose,
- instrumentation: {
- root: opts.root,
- 'default-excludes': opts['default-excludes'],
- excludes: opts.x,
- 'include-all-sources': opts['include-all-sources'],
- 'preload-sources': opts['preload-sources'],
- 'include-pid': opts['include-pid']
- },
- reporting: {
- reports: opts.report,
- print: opts.print,
- dir: opts.dir
- },
- hooks: {
- 'hook-run-in-context': opts['hook-run-in-context'],
- 'post-require-hook': opts['post-require-hook'],
- 'handle-sigint': opts['handle-sigint']
- }
- },
- config = configuration.loadFile(opts.config, overrides),
- verbose = config.verbose,
- cmdAndArgs = opts.argv.remain,
- preserveComments = opts['preserve-comments'],
- includePid = opts['include-pid'],
- cmd,
- cmdArgs,
- reportingDir,
- reporter = new Reporter(config),
- runFn,
- excludes;
-
- if (cmdAndArgs.length === 0) {
- return callback(inputError.create('Need a filename argument for the ' + commandName + ' command!'));
- }
-
- cmd = cmdAndArgs.shift();
- cmdArgs = cmdAndArgs;
-
- if (!existsSync(cmd)) {
- try {
- cmd = which.sync(cmd);
- } catch (ex) {
- return callback(inputError.create('Unable to resolve file [' + cmd + ']'));
- }
- } else {
- cmd = path.resolve(cmd);
- }
-
- runFn = function () {
- process.argv = ["node", cmd].concat(cmdArgs);
- if (verbose) {
- console.log('Running: ' + process.argv.join(' '));
- }
- process.env.running_under_istanbul=1;
- Module.runMain(cmd, null, true);
- };
-
- excludes = config.instrumentation.excludes(true);
-
- if (enableHooks) {
- reportingDir = path.resolve(config.reporting.dir());
- mkdirp.sync(reportingDir); //ensure we fail early if we cannot do this
- reporter.dir = reportingDir;
- reporter.addAll(config.reporting.reports());
- if (config.reporting.print() !== 'none') {
- switch (config.reporting.print()) {
- case 'detail':
- reporter.add('text');
- break;
- case 'both':
- reporter.add('text');
- reporter.add('text-summary');
- break;
- default:
- reporter.add('text-summary');
- break;
- }
- }
-
- excludes.push(path.relative(process.cwd(), path.join(reportingDir, '**', '*')));
- matcherFor({
- root: config.instrumentation.root() || process.cwd(),
- includes: opts.i || config.instrumentation.extensions().map(function (ext) {
- return '**/*' + ext;
- }),
- excludes: excludes
- },
- function (err, matchFn) {
- if (err) { return callback(err); }
-
- var coverageVar = '$$cov_' + new Date().getTime() + '$$',
- instrumenter = new Instrumenter({ coverageVariable: coverageVar , preserveComments: preserveComments}),
- transformer = instrumenter.instrumentSync.bind(instrumenter),
- hookOpts = { verbose: verbose, extensions: config.instrumentation.extensions() },
- postRequireHook = config.hooks.postRequireHook(),
- postLoadHookFile;
-
- if (postRequireHook) {
- postLoadHookFile = path.resolve(postRequireHook);
- } else if (opts.yui) { //EXPERIMENTAL code: do not rely on this in anyway until the docs say it is allowed
- postLoadHookFile = path.resolve(__dirname, '../../util/yui-load-hook');
- }
-
- if (postRequireHook) {
- if (!existsSync(postLoadHookFile)) { //assume it is a module name and resolve it
- try {
- postLoadHookFile = resolve.sync(postRequireHook, { basedir: process.cwd() });
- } catch (ex) {
- if (verbose) { console.error('Unable to resolve [' + postRequireHook + '] as a node module'); }
- callback(ex);
- return;
- }
- }
- }
- if (postLoadHookFile) {
- if (verbose) { console.error('Use post-load-hook: ' + postLoadHookFile); }
- hookOpts.postLoadHook = require(postLoadHookFile)(matchFn, transformer, verbose);
- }
-
- if (opts['self-test']) {
- hook.unloadRequireCache(matchFn);
- }
- // runInThisContext is used by RequireJS [issue #23]
- if (config.hooks.hookRunInContext()) {
- hook.hookRunInThisContext(matchFn, transformer, hookOpts);
- }
- hook.hookRequire(matchFn, transformer, hookOpts);
-
- //initialize the global variable to stop mocha from complaining about leaks
- global[coverageVar] = {};
-
- // enable passing --handle-sigint to write reports on SIGINT.
- // This allows a user to manually kill a process while
- // still getting the istanbul report.
- if (config.hooks.handleSigint()) {
- process.once('SIGINT', process.exit);
- }
-
- process.once('exit', function () {
- var pidExt = includePid ? ('-' + process.pid) : '',
- file = path.resolve(reportingDir, 'coverage' + pidExt + '.json'),
- collector,
- cov;
- if (typeof global[coverageVar] === 'undefined' || Object.keys(global[coverageVar]).length === 0) {
- console.error('No coverage information was collected, exit without writing coverage information');
- return;
- } else {
- cov = global[coverageVar];
- }
- //important: there is no event loop at this point
- //everything that happens in this exit handler MUST be synchronous
- if (config.instrumentation.includeAllSources()) {
- // Files that are not touched by code ran by the test runner is manually instrumented, to
- // illustrate the missing coverage.
- matchFn.files.forEach(function (file) {
- if (!cov[file]) {
- transformer(fs.readFileSync(file, 'utf-8'), file);
-
- // When instrumenting the code, istanbul will give each FunctionDeclaration a value of 1 in coverState.s,
- // presumably to compensate for function hoisting. We need to reset this, as the function was not hoisted,
- // as it was never loaded.
- Object.keys(instrumenter.coverState.s).forEach(function (key) {
- instrumenter.coverState.s[key] = 0;
- });
-
- cov[file] = instrumenter.coverState;
- }
- });
- }
- mkdirp.sync(reportingDir); //yes, do this again since some test runners could clean the dir initially created
- if (config.reporting.print() !== 'none') {
- console.error('=============================================================================');
- console.error('Writing coverage object [' + file + ']');
- }
- fs.writeFileSync(file, JSON.stringify(cov), 'utf8');
- collector = new Collector();
- collector.add(cov);
- if (config.reporting.print() !== 'none') {
- console.error('Writing coverage reports at [' + reportingDir + ']');
- console.error('=============================================================================');
- }
- reporter.write(collector, true, callback);
- });
- runFn();
- });
- } else {
- runFn();
- }
-}
-
-module.exports = {
- run: run,
- usage: usage
-};
diff --git a/node_modules/istanbul/lib/command/cover.js b/node_modules/istanbul/lib/command/cover.js
deleted file mode 100644
index ee8242917..000000000
--- a/node_modules/istanbul/lib/command/cover.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var runWithCover = require('./common/run-with-cover'),
- util = require('util'),
- Command = require('./index');
-
-function CoverCommand() {
- Command.call(this);
-}
-
-CoverCommand.TYPE = 'cover';
-util.inherits(CoverCommand, Command);
-
-Command.mix(CoverCommand, {
- synopsis: function () {
- return "transparently adds coverage information to a node command. Saves coverage.json and reports at the end of execution";
- },
-
- usage: function () {
- runWithCover.usage(this.toolName(), this.type());
- },
-
- run: function (args, callback) {
- runWithCover.run(args, this.type(), true, callback);
- }
-});
-
-
-module.exports = CoverCommand;
-
diff --git a/node_modules/istanbul/lib/command/help.js b/node_modules/istanbul/lib/command/help.js
deleted file mode 100644
index e3f6d76b7..000000000
--- a/node_modules/istanbul/lib/command/help.js
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var Command = require('./index.js'),
- util = require('util'),
- formatOption = require('../util/help-formatter').formatOption,
- VERSION = require('../../index').VERSION,
- configuration = require('../config'),
- yaml = require('js-yaml'),
- formatPara = require('../util/help-formatter').formatPara;
-
-function showConfigHelp(toolName) {
-
- console.error('\nConfiguring ' + toolName);
- console.error('====================');
- console.error('\n' +
- formatPara(toolName + ' can be configured globally using a .istanbul.yml YAML file ' +
- 'at the root of your source tree. Every command also accepts a --config=<config-file> argument to ' +
- 'customize its location per command. The alternate config file can be in YAML, JSON or node.js ' +
- '(exporting the config object).'));
- console.error('\n' +
- formatPara('The config file currently has four sections for instrumentation, reporting, hooks, ' +
- 'and checking. Note that certain commands (like `cover`) use information from multiple sections.'));
- console.error('\n' +
- formatPara('Keys in the config file usually correspond to command line parameters with the same name. ' +
- 'The verbose option for every command shows you the exact configuration used. See the api ' +
- 'docs for an explanation of each key.'));
-
- console.error('\n' +
- formatPara('You only need to specify the keys that you want to override. Your overrides will be merged ' +
- 'with the default config.'));
- console.error('\nThe default configuration is as follows:\n');
- console.error(yaml.safeDump(configuration.defaultConfig(), { indent: 4, flowLevel: 3 }));
- console.error('\n' +
- formatPara('The `watermarks` section does not have a command line equivalent. It allows you to set up ' +
- 'low and high watermark percentages for reporting. These are honored by all reporters that colorize ' +
- 'their output based on low/ medium/ high coverage.'));
- console.error('\n' +
- formatPara('The `reportConfig` section allows you to configure each report format independently ' +
- 'and has no command-line equivalent either.'));
- console.error('\n' +
- formatPara('The `check` section configures minimum threshold enforcement for coverage results. ' +
- '`global` applies to all files together and `each` on a per-file basis. A list of files can ' +
- 'be excluded from enforcement relative to root via the `exclude` property.'));
- console.error('');
-}
-
-function HelpCommand() {
- Command.call(this);
-}
-
-HelpCommand.TYPE = 'help';
-util.inherits(HelpCommand, Command);
-
-Command.mix(HelpCommand, {
- synopsis: function () {
- return "shows help";
- },
-
- usage: function () {
-
- console.error('\nUsage: ' + this.toolName() + ' ' + this.type() + ' config | <command>\n');
- console.error('`config` provides help with istanbul configuration\n');
- console.error('Available commands are:\n');
-
- var commandObj;
- Command.getCommandList().forEach(function (cmd) {
- commandObj = Command.create(cmd);
- console.error(formatOption(cmd, commandObj.synopsis()));
- console.error("\n");
- });
- console.error("Command names can be abbreviated as long as the abbreviation is unambiguous");
- console.error(this.toolName() + ' version:' + VERSION);
- console.error("\n");
- },
- run: function (args, callback) {
- var command;
- if (args.length === 0) {
- this.usage();
- } else {
- if (args[0] === 'config') {
- showConfigHelp(this.toolName());
- } else {
- try {
- command = Command.create(args[0]);
- command.usage('istanbul', Command.resolveCommandName(args[0]));
- } catch (ex) {
- console.error('Invalid command: ' + args[0]);
- this.usage();
- }
- }
- }
- return callback();
- }
-});
-
-
-module.exports = HelpCommand;
-
-
diff --git a/node_modules/istanbul/lib/command/index.js b/node_modules/istanbul/lib/command/index.js
deleted file mode 100644
index 754cf1d0d..000000000
--- a/node_modules/istanbul/lib/command/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var Factory = require('../util/factory'),
- factory = new Factory('command', __dirname, true);
-
-function Command() {}
-// add register, create, mix, loadAll, getCommandList, resolveCommandName to the Command object
-factory.bindClassMethods(Command);
-
-Command.prototype = {
- toolName: function () {
- return require('../util/meta').NAME;
- },
-
- type: function () {
- return this.constructor.TYPE;
- },
- synopsis: /* istanbul ignore next: base method */ function () {
- return "the developer has not written a one-line summary of the " + this.type() + " command";
- },
- usage: /* istanbul ignore next: base method */ function () {
- console.error("the developer has not provided a usage for the " + this.type() + " command");
- },
- run: /* istanbul ignore next: abstract method */ function (args, callback) {
- return callback(new Error("run: must be overridden for the " + this.type() + " command"));
- }
-};
-
-module.exports = Command;
-
diff --git a/node_modules/istanbul/lib/command/instrument.js b/node_modules/istanbul/lib/command/instrument.js
deleted file mode 100644
index d08d6b87d..000000000
--- a/node_modules/istanbul/lib/command/instrument.js
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var path = require('path'),
- mkdirp = require('mkdirp'),
- once = require('once'),
- async = require('async'),
- fs = require('fs'),
- filesFor = require('../util/file-matcher').filesFor,
- nopt = require('nopt'),
- Instrumenter = require('../instrumenter'),
- inputError = require('../util/input-error'),
- formatOption = require('../util/help-formatter').formatOption,
- util = require('util'),
- Command = require('./index'),
- Collector = require('../collector'),
- configuration = require('../config'),
- verbose;
-
-
-/*
- * Chunk file size to use when reading non JavaScript files in memory
- * and copying them over when using complete-copy flag.
- */
-var READ_FILE_CHUNK_SIZE = 64 * 1024;
-
-function BaselineCollector(instrumenter) {
- this.instrumenter = instrumenter;
- this.collector = new Collector();
- this.instrument = instrumenter.instrument.bind(this.instrumenter);
-
- var origInstrumentSync = instrumenter.instrumentSync;
- this.instrumentSync = function () {
- var args = Array.prototype.slice.call(arguments),
- ret = origInstrumentSync.apply(this.instrumenter, args),
- baseline = this.instrumenter.lastFileCoverage(),
- coverage = {};
- coverage[baseline.path] = baseline;
- this.collector.add(coverage);
- return ret;
- };
- //monkey patch the instrumenter to call our version instead
- instrumenter.instrumentSync = this.instrumentSync.bind(this);
-}
-
-BaselineCollector.prototype = {
- getCoverage: function () {
- return this.collector.getFinalCoverage();
- }
-};
-
-
-function processFiles(instrumenter, inputDir, outputDir, relativeNames, extensions) {
- var processor = function (name, callback) {
- var inputFile = path.resolve(inputDir, name),
- outputFile = path.resolve(outputDir, name),
- inputFileExtenstion = path.extname(inputFile),
- isJavaScriptFile = extensions.indexOf(inputFileExtenstion) > -1,
- oDir = path.dirname(outputFile),
- readStream, writeStream;
-
- callback = once(callback);
- mkdirp.sync(oDir);
-
- if (fs.statSync(inputFile).isDirectory()) {
- return callback(null, name);
- }
-
- if (isJavaScriptFile) {
- fs.readFile(inputFile, 'utf8', function (err, data) {
- if (err) { return callback(err, name); }
- instrumenter.instrument(data, inputFile, function (iErr, instrumented) {
- if (iErr) { return callback(iErr, name); }
- fs.writeFile(outputFile, instrumented, 'utf8', function (err) {
- return callback(err, name);
- });
- });
- });
- }
- else {
- // non JavaScript file, copy it as is
- readStream = fs.createReadStream(inputFile, {'bufferSize': READ_FILE_CHUNK_SIZE});
- writeStream = fs.createWriteStream(outputFile);
-
- readStream.on('error', callback);
- writeStream.on('error', callback);
-
- readStream.pipe(writeStream);
- readStream.on('end', function() {
- callback(null, name);
- });
- }
- },
- q = async.queue(processor, 10),
- errors = [],
- count = 0,
- startTime = new Date().getTime();
-
- q.push(relativeNames, function (err, name) {
- var inputFile, outputFile;
- if (err) {
- errors.push({ file: name, error: err.message || err.toString() });
- inputFile = path.resolve(inputDir, name);
- outputFile = path.resolve(outputDir, name);
- fs.writeFileSync(outputFile, fs.readFileSync(inputFile));
- }
- if (verbose) {
- console.log('Processed: ' + name);
- } else {
- if (count % 100 === 0) { process.stdout.write('.'); }
- }
- count += 1;
- });
-
- q.drain = function () {
- var endTime = new Date().getTime();
- console.log('\nProcessed [' + count + '] files in ' + Math.floor((endTime - startTime) / 1000) + ' secs');
- if (errors.length > 0) {
- console.log('The following ' + errors.length + ' file(s) had errors and were copied as-is');
- console.log(errors);
- }
- };
-}
-
-
-function InstrumentCommand() {
- Command.call(this);
-}
-
-InstrumentCommand.TYPE = 'instrument';
-util.inherits(InstrumentCommand, Command);
-
-Command.mix(InstrumentCommand, {
- synopsis: function synopsis() {
- return "instruments a file or a directory tree and writes the instrumented code to the desired output location";
- },
-
- usage: function () {
- console.error('\nUsage: ' + this.toolName() + ' ' + this.type() + ' <options> <file-or-directory>\n\nOptions are:\n\n' +
- [
- formatOption('--config <path-to-config>', 'the configuration file to use, defaults to .istanbul.yml'),
- formatOption('--output <file-or-dir>', 'The output file or directory. This is required when the input is a directory, ' +
- 'defaults to standard output when input is a file'),
- formatOption('-x <exclude-pattern> [-x <exclude-pattern>]', 'one or more glob patterns (e.g. "**/vendor/**" to ignore all files ' +
- 'under a vendor directory). Also see the --default-excludes option'),
- formatOption('--variable <global-coverage-variable-name>', 'change the variable name of the global coverage variable from the ' +
- 'default value of `__coverage__` to something else'),
- formatOption('--embed-source', 'embed source code into the coverage object, defaults to false'),
- formatOption('--[no-]compact', 'produce [non]compact output, defaults to compact'),
- formatOption('--[no-]preserve-comments', 'remove / preserve comments in the output, defaults to false'),
- formatOption('--[no-]complete-copy', 'also copy non-javascript files to the ouput directory as is, defaults to false'),
- formatOption('--save-baseline', 'produce a baseline coverage.json file out of all files instrumented'),
- formatOption('--baseline-file <file>', 'filename of baseline file, defaults to coverage/coverage-baseline.json'),
- formatOption('--es-modules', 'source code uses es import/export module syntax')
- ].join('\n\n') + '\n');
- console.error('\n');
- },
-
- run: function (args, callback) {
-
- var template = {
- config: path,
- output: path,
- x: [Array, String],
- variable: String,
- compact: Boolean,
- 'complete-copy': Boolean,
- verbose: Boolean,
- 'save-baseline': Boolean,
- 'baseline-file': path,
- 'embed-source': Boolean,
- 'preserve-comments': Boolean,
- 'es-modules': Boolean
- },
- opts = nopt(template, { v : '--verbose' }, args, 0),
- overrides = {
- verbose: opts.verbose,
- instrumentation: {
- variable: opts.variable,
- compact: opts.compact,
- 'embed-source': opts['embed-source'],
- 'preserve-comments': opts['preserve-comments'],
- excludes: opts.x,
- 'complete-copy': opts['complete-copy'],
- 'save-baseline': opts['save-baseline'],
- 'baseline-file': opts['baseline-file'],
- 'es-modules': opts['es-modules']
- }
- },
- config = configuration.loadFile(opts.config, overrides),
- iOpts = config.instrumentation,
- cmdArgs = opts.argv.remain,
- file,
- stats,
- stream,
- includes,
- instrumenter,
- needBaseline = iOpts.saveBaseline(),
- baselineFile = path.resolve(iOpts.baselineFile()),
- output = opts.output;
-
- verbose = config.verbose;
- if (cmdArgs.length !== 1) {
- return callback(inputError.create('Need exactly one filename/ dirname argument for the instrument command!'));
- }
-
- if (iOpts.completeCopy()) {
- includes = ['**/*'];
- }
- else {
- includes = iOpts.extensions().map(function(ext) {
- return '**/*' + ext;
- });
- }
-
- instrumenter = new Instrumenter({
- coverageVariable: iOpts.variable(),
- embedSource: iOpts.embedSource(),
- noCompact: !iOpts.compact(),
- preserveComments: iOpts.preserveComments(),
- esModules: iOpts.esModules()
- });
-
- if (needBaseline) {
- mkdirp.sync(path.dirname(baselineFile));
- instrumenter = new BaselineCollector(instrumenter);
- process.on('exit', function () {
- console.log('Saving baseline coverage at: ' + baselineFile);
- fs.writeFileSync(baselineFile, JSON.stringify(instrumenter.getCoverage()), 'utf8');
- });
- }
-
- file = path.resolve(cmdArgs[0]);
- stats = fs.statSync(file);
- if (stats.isDirectory()) {
- if (!output) { return callback(inputError.create('Need an output directory [-o <dir>] when input is a directory!')); }
- if (output === file) { return callback(inputError.create('Cannot instrument into the same directory/ file as input!')); }
- mkdirp.sync(output);
- filesFor({
- root: file,
- includes: includes,
- excludes: opts.x || iOpts.excludes(false), // backwards-compat, *sigh*
- relative: true
- }, function (err, files) {
- if (err) { return callback(err); }
- processFiles(instrumenter, file, output, files, iOpts.extensions());
- });
- } else {
- if (output) {
- stream = fs.createWriteStream(output);
- } else {
- stream = process.stdout;
- }
- stream.write(instrumenter.instrumentSync(fs.readFileSync(file, 'utf8'), file));
- if (stream !== process.stdout) {
- stream.end();
- }
- }
- }
-});
-
-module.exports = InstrumentCommand;
-
diff --git a/node_modules/istanbul/lib/command/report.js b/node_modules/istanbul/lib/command/report.js
deleted file mode 100644
index 7abc52cfd..000000000
--- a/node_modules/istanbul/lib/command/report.js
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var nopt = require('nopt'),
- Report = require('../report'),
- Reporter = require('../reporter'),
- path = require('path'),
- fs = require('fs'),
- Collector = require('../collector'),
- helpFormatter = require('../util/help-formatter'),
- formatOption = helpFormatter.formatOption,
- formatPara = helpFormatter.formatPara,
- filesFor = require('../util/file-matcher').filesFor,
- util = require('util'),
- Command = require('./index'),
- configuration = require('../config');
-
-function ReportCommand() {
- Command.call(this);
-}
-
-ReportCommand.TYPE = 'report';
-util.inherits(ReportCommand, Command);
-
-function printDeprecationMessage(pat, fmt) {
- console.error('**********************************************************************');
- console.error('DEPRECATION WARNING! You are probably using the old format of the report command');
- console.error('This will stop working soon, see `istanbul help report` for the new command format');
- console.error('Assuming you meant: istanbul report --include=' + pat + ' ' + fmt);
- console.error('**********************************************************************');
-}
-
-Command.mix(ReportCommand, {
- synopsis: function () {
- return "writes reports for coverage JSON objects produced in a previous run";
- },
-
- usage: function () {
- console.error('\nUsage: ' + this.toolName() + ' ' + this.type() + ' <options> [ <format> ... ]\n\nOptions are:\n\n' +
- [
- formatOption('--config <path-to-config>', 'the configuration file to use, defaults to .istanbul.yml'),
- formatOption('--root <input-directory>', 'The input root directory for finding coverage files'),
- formatOption('--dir <report-directory>', 'The output directory where files will be written. This defaults to ./coverage/'),
- formatOption('--include <glob>', 'The glob pattern to select one or more coverage files, defaults to **/coverage*.json'),
- formatOption('--verbose, -v', 'verbose mode')
- ].join('\n\n'));
-
- console.error('\n');
- console.error('<format> is one of ');
- Report.getReportList().forEach(function (name) {
- console.error(formatOption(name, Report.create(name).synopsis()));
- });
- console.error("");
- console.error(formatPara([
- 'Default format is lcov unless otherwise specified in the config file.',
- 'In addition you can tweak the file names for various reports using the config file.',
- 'Type `istanbul help config` to see what can be tweaked.'
- ].join(' ')));
- console.error('\n');
- },
-
- run: function (args, callback) {
-
- var template = {
- config: path,
- root: path,
- dir: path,
- include: String,
- verbose: Boolean
- },
- opts = nopt(template, { v : '--verbose' }, args, 0),
- includePattern = opts.include || '**/coverage*.json',
- root,
- collector = new Collector(),
- config = configuration.loadFile(opts.config, {
- verbose: opts.verbose,
- reporting: {
- dir: opts.dir
- }
- }),
- formats = opts.argv.remain,
- reporter = new Reporter(config);
-
- // Start: backward compatible processing
- if (formats.length === 2 &&
- Report.getReportList().indexOf(formats[1]) < 0) {
- includePattern = formats[1];
- formats = [ formats[0] ];
- printDeprecationMessage(includePattern, formats[0]);
- }
- // End: backward compatible processing
-
- if (formats.length === 0) {
- formats = config.reporting.reports();
- }
- if (formats.length === 0) {
- formats = [ 'lcov' ];
- }
- reporter.addAll(formats);
-
- root = opts.root || process.cwd();
- filesFor({
- root: root,
- includes: [ includePattern ]
- }, function (err, files) {
- if (err) { throw err; }
- files.forEach(function (file) {
- var coverageObject = JSON.parse(fs.readFileSync(file, 'utf8'));
- collector.add(coverageObject);
- });
- reporter.write(collector, false, function (err) {
- console.log('Done');
- return callback(err);
- });
- });
- }
-});
-
-module.exports = ReportCommand;
-
-
diff --git a/node_modules/istanbul/lib/command/test.js b/node_modules/istanbul/lib/command/test.js
deleted file mode 100644
index 59305074c..000000000
--- a/node_modules/istanbul/lib/command/test.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var runWithCover = require('./common/run-with-cover'),
- util = require('util'),
- Command = require('./index');
-
-function TestCommand() {
- Command.call(this);
-}
-
-TestCommand.TYPE = 'test';
-util.inherits(TestCommand, Command);
-
-Command.mix(TestCommand, {
- synopsis: function () {
- return "cover a node command only when npm_config_coverage is set. Use in an `npm test` script for conditional coverage";
- },
-
- usage: function () {
- runWithCover.usage(this.toolName(), this.type());
- },
-
- run: function (args, callback) {
- runWithCover.run(args, this.type(), !!process.env.npm_config_coverage, callback);
- }
-});
-
-module.exports = TestCommand;
diff --git a/node_modules/istanbul/lib/config.js b/node_modules/istanbul/lib/config.js
deleted file mode 100644
index 270193557..000000000
--- a/node_modules/istanbul/lib/config.js
+++ /dev/null
@@ -1,491 +0,0 @@
-/*
- Copyright (c) 2013, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-var path = require('path'),
- fs = require('fs'),
- existsSync = fs.existsSync || path.existsSync,
- CAMEL_PATTERN = /([a-z])([A-Z])/g,
- YML_PATTERN = /\.ya?ml$/,
- yaml = require('js-yaml'),
- defaults = require('./report/common/defaults');
-
-function defaultConfig(includeBackCompatAttrs) {
- var ret = {
- verbose: false,
- instrumentation: {
- root: '.',
- extensions: ['.js'],
- 'default-excludes': true,
- excludes: [],
- 'embed-source': false,
- variable: '__coverage__',
- compact: true,
- 'preserve-comments': false,
- 'complete-copy': false,
- 'save-baseline': false,
- 'baseline-file': './coverage/coverage-baseline.json',
- 'include-all-sources': false,
- 'include-pid': false,
- 'es-modules': false
- },
- reporting: {
- print: 'summary',
- reports: [ 'lcov' ],
- dir: './coverage'
- },
- hooks: {
- 'hook-run-in-context': false,
- 'post-require-hook': null,
- 'handle-sigint': false
- },
- check: {
- global: {
- statements: 0,
- lines: 0,
- branches: 0,
- functions: 0,
- excludes: [] // Currently list of files (root + path). For future, extend to patterns.
- },
- each: {
- statements: 0,
- lines: 0,
- branches: 0,
- functions: 0,
- excludes: []
- }
- }
- };
- ret.reporting.watermarks = defaults.watermarks();
- ret.reporting['report-config'] = defaults.defaultReportConfig();
-
- if (includeBackCompatAttrs) {
- ret.instrumentation['preload-sources'] = false;
- }
-
- return ret;
-}
-
-function dasherize(word) {
- return word.replace(CAMEL_PATTERN, function (match, lch, uch) {
- return lch + '-' + uch.toLowerCase();
- });
-}
-function isScalar(v) {
- if (v === null) { return true; }
- return v !== undefined && !Array.isArray(v) && typeof v !== 'object';
-}
-
-function isObject(v) {
- return typeof v === 'object' && v !== null && !Array.isArray(v);
-}
-
-function mergeObjects(explicit, template) {
-
- var ret = {};
-
- Object.keys(template).forEach(function (k) {
- var v1 = template[k],
- v2 = explicit[k];
-
- if (Array.isArray(v1)) {
- ret[k] = Array.isArray(v2) && v2.length > 0 ? v2 : v1;
- } else if (isObject(v1)) {
- v2 = isObject(v2) ? v2 : {};
- ret[k] = mergeObjects(v2, v1);
- } else {
- ret[k] = isScalar(v2) ? v2 : v1;
- }
- });
- return ret;
-}
-
-function mergeDefaults(explicit, implicit) {
- return mergeObjects(explicit || {}, implicit);
-}
-
-function addMethods() {
- var args = Array.prototype.slice.call(arguments),
- cons = args.shift();
-
- args.forEach(function (arg) {
- var method = arg,
- property = dasherize(arg);
- cons.prototype[method] = function () {
- return this.config[property];
- };
- });
-}
-
-/**
- * Object that returns instrumentation options
- * @class InstrumentOptions
- * @module config
- * @constructor
- * @param config the instrumentation part of the config object
- */
-function InstrumentOptions(config) {
- if (config['preload-sources']) {
- console.error('The preload-sources option is deprecated, please use include-all-sources instead.');
- config['include-all-sources'] = config['preload-sources'];
- }
- this.config = config;
-}
-
-/**
- * returns if default excludes should be turned on. Used by the `cover` command.
- * @method defaultExcludes
- * @return {Boolean} true if default excludes should be turned on
- */
-/**
- * returns if non-JS files should be copied during instrumentation. Used by the
- * `instrument` command.
- * @method completeCopy
- * @return {Boolean} true if non-JS files should be copied
- */
-/**
- * returns if the source should be embedded in the instrumented code. Used by the
- * `instrument` command.
- * @method embedSource
- * @return {Boolean} true if the source should be embedded in the instrumented code
- */
-/**
- * the coverage variable name to use. Used by the `instrument` command.
- * @method variable
- * @return {String} the coverage variable name to use
- */
-/**
- * returns if the output should be compact JS. Used by the `instrument` command.
- * @method compact
- * @return {Boolean} true if the output should be compact
- */
-/**
- * returns if comments should be preserved in the generated JS. Used by the
- * `cover` and `instrument` commands.
- * @method preserveComments
- * @return {Boolean} true if comments should be preserved in the generated JS
- */
-/**
- * returns if a zero-coverage baseline file should be written as part of
- * instrumentation. This allows reporting to display numbers for files that have
- * no tests. Used by the `instrument` command.
- * @method saveBaseline
- * @return {Boolean} true if a baseline coverage file should be written.
- */
-/**
- * Sets the baseline coverage filename. Used by the `instrument` command.
- * @method baselineFile
- * @return {String} the name of the baseline coverage file.
- */
-/**
- * returns if comments the JS to instrument contains es6 Module syntax.
- * @method esModules
- * @return {Boolean} true if code contains es6 import/export statements.
- */
-/**
- * returns if the coverage filename should include the PID. Used by the `instrument` command.
- * @method includePid
- * @return {Boolean} true to include pid in coverage filename.
- */
-
-
-addMethods(InstrumentOptions,
- 'extensions', 'defaultExcludes', 'completeCopy',
- 'embedSource', 'variable', 'compact', 'preserveComments',
- 'saveBaseline', 'baselineFile', 'esModules',
- 'includeAllSources', 'includePid');
-
-/**
- * returns the root directory used by istanbul which is typically the root of the
- * source tree. Used by the `cover` and `report` commands.
- * @method root
- * @return {String} the root directory used by istanbul.
- */
-InstrumentOptions.prototype.root = function () { return path.resolve(this.config.root); };
-/**
- * returns an array of glob patterns that should be excluded for instrumentation.
- * Used by the `instrument` and `cover` commands.
- * @method excludes
- * @return {Array} an array of glob patterns that should be excluded for
- * instrumentation.
- */
-InstrumentOptions.prototype.excludes = function (excludeTests) {
- var defs;
- if (this.defaultExcludes()) {
- defs = [ '**/node_modules/**' ];
- if (excludeTests) {
- defs = defs.concat(['**/test/**', '**/tests/**']);
- }
- return defs.concat(this.config.excludes);
- }
- return this.config.excludes;
-};
-
-/**
- * Object that returns reporting options
- * @class ReportingOptions
- * @module config
- * @constructor
- * @param config the reporting part of the config object
- */
-function ReportingOptions(config) {
- this.config = config;
-}
-
-/**
- * returns the kind of information to be printed on the console. May be one
- * of `summary`, `detail`, `both` or `none`. Used by the
- * `cover` command.
- * @method print
- * @return {String} the kind of information to print to the console at the end
- * of the `cover` command execution.
- */
-/**
- * returns a list of reports that should be generated at the end of a run. Used
- * by the `cover` and `report` commands.
- * @method reports
- * @return {Array} an array of reports that should be produced
- */
-/**
- * returns the directory under which reports should be generated. Used by the
- * `cover` and `report` commands.
- *
- * @method dir
- * @return {String} the directory under which reports should be generated.
- */
-/**
- * returns an object that has keys that are report format names and values that are objects
- * containing detailed configuration for each format. Running `istanbul help config`
- * will give you all the keys per report format that can be overridden.
- * Used by the `cover` and `report` commands.
- * @method reportConfig
- * @return {Object} detailed report configuration per report format.
- */
-addMethods(ReportingOptions, 'print', 'reports', 'dir', 'reportConfig');
-
-function isInvalidMark(v, key) {
- var prefix = 'Watermark for [' + key + '] :';
-
- if (v.length !== 2) {
- return prefix + 'must be an array of length 2';
- }
- v[0] = Number(v[0]);
- v[1] = Number(v[1]);
-
- if (isNaN(v[0]) || isNaN(v[1])) {
- return prefix + 'must have valid numbers';
- }
- if (v[0] < 0 || v[1] < 0) {
- return prefix + 'must be positive numbers';
- }
- if (v[1] > 100) {
- return prefix + 'cannot exceed 100';
- }
- if (v[1] <= v[0]) {
- return prefix + 'low must be less than high';
- }
- return null;
-}
-
-/**
- * returns the low and high watermarks to be used to designate whether coverage
- * is `low`, `medium` or `high`. Statements, functions, branches and lines can
- * have independent watermarks. These are respected by all reports
- * that color for low, medium and high coverage. See the default configuration for exact syntax
- * using `istanbul help config`. Used by the `cover` and `report` commands.
- *
- * @method watermarks
- * @return {Object} an object containing low and high watermarks for statements,
- * branches, functions and lines.
- */
-ReportingOptions.prototype.watermarks = function () {
- var v = this.config.watermarks,
- defs = defaults.watermarks(),
- ret = {};
-
- Object.keys(defs).forEach(function (k) {
- var mark = v[k], //it will already be a non-zero length array because of the way the merge works
- message = isInvalidMark(mark, k);
- if (message) {
- console.error(message);
- ret[k] = defs[k];
- } else {
- ret[k] = mark;
- }
- });
- return ret;
-};
-
-/**
- * Object that returns hook options. Note that istanbul does not provide an
- * option to hook `require`. This is always done by the `cover` command.
- * @class HookOptions
- * @module config
- * @constructor
- * @param config the hooks part of the config object
- */
-function HookOptions(config) {
- this.config = config;
-}
-
-/**
- * returns if `vm.runInThisContext` needs to be hooked, in addition to the standard
- * `require` hooks added by istanbul. This should be true for code that uses
- * RequireJS for example. Used by the `cover` command.
- * @method hookRunInContext
- * @return {Boolean} true if `vm.runInThisContext` needs to be hooked for coverage
- */
-/**
- * returns a path to JS file or a dependent module that should be used for
- * post-processing files after they have been required. See the `yui-istanbul` module for
- * an example of a post-require hook. This particular hook modifies the yui loader when
- * that file is required to add istanbul interceptors. Use by the `cover` command
- *
- * @method postRequireHook
- * @return {String} a path to a JS file or the name of a node module that needs
- * to be used as a `require` post-processor
- */
-/**
- * returns if istanbul needs to add a SIGINT (control-c, usually) handler to
- * save coverage information. Useful for getting code coverage out of processes
- * that run forever and need a SIGINT to terminate.
- * @method handleSigint
- * @return {Boolean} true if SIGINT needs to be hooked to write coverage information
- */
-
-addMethods(HookOptions, 'hookRunInContext', 'postRequireHook', 'handleSigint');
-
-/**
- * represents the istanbul configuration and provides sub-objects that can
- * return instrumentation, reporting and hook options respectively.
- * Usage
- * -----
- *
- * var configObj = require('istanbul').config.loadFile();
- *
- * console.log(configObj.reporting.reports());
- *
- * @class Configuration
- * @module config
- * @param {Object} obj the base object to use as the configuration
- * @param {Object} overrides optional - override attributes that are merged into
- * the base config
- * @constructor
- */
-function Configuration(obj, overrides) {
-
- var config = mergeDefaults(obj, defaultConfig(true));
- if (isObject(overrides)) {
- config = mergeDefaults(overrides, config);
- }
- if (config.verbose) {
- console.error('Using configuration');
- console.error('-------------------');
- console.error(yaml.safeDump(config, { indent: 4, flowLevel: 3 }));
- console.error('-------------------\n');
- }
- this.verbose = config.verbose;
- this.instrumentation = new InstrumentOptions(config.instrumentation);
- this.reporting = new ReportingOptions(config.reporting);
- this.hooks = new HookOptions(config.hooks);
- this.check = config.check; // Pass raw config sub-object.
-}
-
-/**
- * true if verbose logging is required
- * @property verbose
- * @type Boolean
- */
-/**
- * instrumentation options
- * @property instrumentation
- * @type InstrumentOptions
- */
-/**
- * reporting options
- * @property reporting
- * @type ReportingOptions
- */
-/**
- * hook options
- * @property hooks
- * @type HookOptions
- */
-
-
-function loadFile(file, overrides) {
- var defaultConfigFile = path.resolve('.istanbul.yml'),
- configObject;
-
- if (file) {
- if (!existsSync(file)) {
- throw new Error('Invalid configuration file specified:' + file);
- }
- } else {
- if (existsSync(defaultConfigFile)) {
- file = defaultConfigFile;
- }
- }
-
- if (file) {
- if (overrides && overrides.verbose === true) {
- console.error('Loading config: ' + file);
- }
- configObject = file.match(YML_PATTERN) ?
- yaml.safeLoad(fs.readFileSync(file, 'utf8'), { filename: file }) :
- require(path.resolve(file));
- }
-
- return new Configuration(configObject, overrides);
-}
-
-function loadObject(obj, overrides) {
- return new Configuration(obj, overrides);
-}
-
-/**
- * methods to load the configuration object.
- * Usage
- * -----
- *
- * var config = require('istanbul').config,
- * configObj = config.loadFile();
- *
- * console.log(configObj.reporting.reports());
- *
- * @class Config
- * @module main
- * @static
- */
-module.exports = {
- /**
- * loads the specified configuration file with optional overrides. Throws
- * when a file is specified and it is not found.
- * @method loadFile
- * @static
- * @param {String} file the file to load. If falsy, the default config file, if present, is loaded.
- * If not a default config is used.
- * @param {Object} overrides - an object with override keys that are merged into the
- * config object loaded
- * @return {Configuration} the config object with overrides applied
- */
- loadFile: loadFile,
- /**
- * loads the specified configuration object with optional overrides.
- * @method loadObject
- * @static
- * @param {Object} obj the object to use as the base configuration.
- * @param {Object} overrides - an object with override keys that are merged into the
- * config object
- * @return {Configuration} the config object with overrides applied
- */
- loadObject: loadObject,
- /**
- * returns the default configuration object. Note that this is a plain object
- * and not a `Configuration` instance.
- * @method defaultConfig
- * @static
- * @return {Object} an object that represents the default config
- */
- defaultConfig: defaultConfig
-};
diff --git a/node_modules/istanbul/lib/hook.js b/node_modules/istanbul/lib/hook.js
deleted file mode 100644
index ce238268d..000000000
--- a/node_modules/istanbul/lib/hook.js
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-/**
- * provides a mechanism to transform code in the scope of `require` or `vm.createScript`.
- * This mechanism is general and relies on a user-supplied `matcher` function that determines when transformations should be
- * performed and a user-supplied `transformer` function that performs the actual transform.
- * Instrumenting code for coverage is one specific example of useful hooking.
- *
- * Note that both the `matcher` and `transformer` must execute synchronously.
- *
- * For the common case of matching filesystem paths based on inclusion/ exclusion patterns, use the `matcherFor`
- * function in the istanbul API to get a matcher.
- *
- * It is up to the transformer to perform processing with side-effects, such as caching, storing the original
- * source code to disk in case of dynamically generated scripts etc. The `Store` class can help you with this.
- *
- * Usage
- * -----
- *
- * var hook = require('istanbul').hook,
- * myMatcher = function (file) { return file.match(/foo/); },
- * myTransformer = function (code, file) { return 'console.log("' + file + '");' + code; };
- *
- * hook.hookRequire(myMatcher, myTransformer);
- *
- * var foo = require('foo'); //will now print foo's module path to console
- *
- * @class Hook
- * @module main
- */
-var path = require('path'),
- fs = require('fs'),
- Module = require('module'),
- vm = require('vm'),
- originalLoaders = {},
- originalCreateScript = vm.createScript,
- originalRunInThisContext = vm.runInThisContext;
-
-function transformFn(matcher, transformer, verbose) {
-
- return function (code, filename) {
- var shouldHook = typeof filename === 'string' && matcher(path.resolve(filename)),
- transformed,
- changed = false;
-
- if (shouldHook) {
- if (verbose) {
- console.error('Module load hook: transform [' + filename + ']');
- }
- try {
- transformed = transformer(code, filename);
- changed = true;
- } catch (ex) {
- console.error('Transformation error; return original code');
- console.error(ex);
- transformed = code;
- }
- } else {
- transformed = code;
- }
- return { code: transformed, changed: changed };
- };
-}
-
-function unloadRequireCache(matcher) {
- if (matcher && typeof require !== 'undefined' && require && require.cache) {
- Object.keys(require.cache).forEach(function (filename) {
- if (matcher(filename)) {
- delete require.cache[filename];
- }
- });
- }
-}
-/**
- * hooks `require` to return transformed code to the node module loader.
- * Exceptions in the transform result in the original code being used instead.
- * @method hookRequire
- * @static
- * @param matcher {Function(filePath)} a function that is called with the absolute path to the file being
- * `require`-d. Should return a truthy value when transformations need to be applied to the code, a falsy value otherwise
- * @param transformer {Function(code, filePath)} a function called with the original code and the associated path of the file
- * from where the code was loaded. Should return the transformed code.
- * @param options {Object} options Optional.
- * @param {Boolean} [options.verbose] write a line to standard error every time the transformer is called
- * @param {Function} [options.postLoadHook] a function that is called with the name of the file being
- * required. This is called after the require is processed irrespective of whether it was transformed.
- */
-function hookRequire(matcher, transformer, options) {
- options = options || {};
- var extensions,
- fn = transformFn(matcher, transformer, options.verbose),
- postLoadHook = options.postLoadHook &&
- typeof options.postLoadHook === 'function' ? options.postLoadHook : null;
-
- extensions = options.extensions || ['.js'];
-
- extensions.forEach(function(ext){
- if (!(ext in originalLoaders)) {
- originalLoaders[ext] = Module._extensions[ext] || Module._extensions['.js'];
- }
- Module._extensions[ext] = function (module, filename) {
- var ret = fn(fs.readFileSync(filename, 'utf8'), filename);
- if (ret.changed) {
- module._compile(ret.code, filename);
- } else {
- originalLoaders[ext](module, filename);
- }
- if (postLoadHook) {
- postLoadHook(filename);
- }
- };
- });
-}
-/**
- * unhook `require` to restore it to its original state.
- * @method unhookRequire
- * @static
- */
-function unhookRequire() {
- Object.keys(originalLoaders).forEach(function(ext) {
- Module._extensions[ext] = originalLoaders[ext];
- });
-}
-/**
- * hooks `vm.createScript` to return transformed code out of which a `Script` object will be created.
- * Exceptions in the transform result in the original code being used instead.
- * @method hookCreateScript
- * @static
- * @param matcher {Function(filePath)} a function that is called with the filename passed to `vm.createScript`
- * Should return a truthy value when transformations need to be applied to the code, a falsy value otherwise
- * @param transformer {Function(code, filePath)} a function called with the original code and the filename passed to
- * `vm.createScript`. Should return the transformed code.
- * @param options {Object} options Optional.
- * @param {Boolean} [options.verbose] write a line to standard error every time the transformer is called
- */
-function hookCreateScript(matcher, transformer, opts) {
- opts = opts || {};
- var fn = transformFn(matcher, transformer, opts.verbose);
- vm.createScript = function (code, file) {
- var ret = fn(code, file);
- return originalCreateScript(ret.code, file);
- };
-}
-
-/**
- * unhooks vm.createScript, restoring it to its original state.
- * @method unhookCreateScript
- * @static
- */
-function unhookCreateScript() {
- vm.createScript = originalCreateScript;
-}
-
-
-/**
- * hooks `vm.runInThisContext` to return transformed code.
- * @method hookRunInThisContext
- * @static
- * @param matcher {Function(filePath)} a function that is called with the filename passed to `vm.createScript`
- * Should return a truthy value when transformations need to be applied to the code, a falsy value otherwise
- * @param transformer {Function(code, filePath)} a function called with the original code and the filename passed to
- * `vm.createScript`. Should return the transformed code.
- * @param options {Object} options Optional.
- * @param {Boolean} [options.verbose] write a line to standard error every time the transformer is called
- */
-function hookRunInThisContext(matcher, transformer, opts) {
- opts = opts || {};
- var fn = transformFn(matcher, transformer, opts.verbose);
- vm.runInThisContext = function (code, file) {
- var ret = fn(code, file);
- return originalRunInThisContext(ret.code, file);
- };
-}
-
-/**
- * unhooks vm.runInThisContext, restoring it to its original state.
- * @method unhookRunInThisContext
- * @static
- */
-function unhookRunInThisContext() {
- vm.runInThisContext = originalRunInThisContext;
-}
-
-
-module.exports = {
- hookRequire: hookRequire,
- unhookRequire: unhookRequire,
- hookCreateScript: hookCreateScript,
- unhookCreateScript: unhookCreateScript,
- hookRunInThisContext : hookRunInThisContext,
- unhookRunInThisContext : unhookRunInThisContext,
- unloadRequireCache: unloadRequireCache
-};
-
-
diff --git a/node_modules/istanbul/lib/instrumenter.js b/node_modules/istanbul/lib/instrumenter.js
deleted file mode 100644
index 61c02cf09..000000000
--- a/node_modules/istanbul/lib/instrumenter.js
+++ /dev/null
@@ -1,1097 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-/*global esprima, escodegen, window */
-(function (isNode) {
- "use strict";
- var SYNTAX,
- nodeType,
- ESP = isNode ? require('esprima') : esprima,
- ESPGEN = isNode ? require('escodegen') : escodegen, //TODO - package as dependency
- crypto = isNode ? require('crypto') : null,
- LEADER_WRAP = '(function () { ',
- TRAILER_WRAP = '\n}());',
- COMMENT_RE = /^\s*istanbul\s+ignore\s+(if|else|next)(?=\W|$)/,
- astgen,
- preconditions,
- cond,
- isArray = Array.isArray;
-
- /* istanbul ignore if: untestable */
- if (!isArray) {
- isArray = function (thing) { return thing && Object.prototype.toString.call(thing) === '[object Array]'; };
- }
-
- if (!isNode) {
- preconditions = {
- 'Could not find esprima': ESP,
- 'Could not find escodegen': ESPGEN,
- 'JSON object not in scope': JSON,
- 'Array does not implement push': [].push,
- 'Array does not implement unshift': [].unshift
- };
- /* istanbul ignore next: untestable */
- for (cond in preconditions) {
- if (preconditions.hasOwnProperty(cond)) {
- if (!preconditions[cond]) { throw new Error(cond); }
- }
- }
- }
-
- function generateTrackerVar(filename, omitSuffix) {
- var hash, suffix;
- if (crypto !== null) {
- hash = crypto.createHash('md5');
- hash.update(filename);
- suffix = hash.digest('base64');
- //trim trailing equal signs, turn identifier unsafe chars to safe ones + => _ and / => $
- suffix = suffix.replace(new RegExp('=', 'g'), '')
- .replace(new RegExp('\\+', 'g'), '_')
- .replace(new RegExp('/', 'g'), '$');
- } else {
- window.__cov_seq = window.__cov_seq || 0;
- window.__cov_seq += 1;
- suffix = window.__cov_seq;
- }
- return '__cov_' + (omitSuffix ? '' : suffix);
- }
-
- function pushAll(ary, thing) {
- if (!isArray(thing)) {
- thing = [ thing ];
- }
- Array.prototype.push.apply(ary, thing);
- }
-
- SYNTAX = {
- // keep in sync with estraverse's VisitorKeys
- AssignmentExpression: ['left', 'right'],
- AssignmentPattern: ['left', 'right'],
- ArrayExpression: ['elements'],
- ArrayPattern: ['elements'],
- ArrowFunctionExpression: ['params', 'body'],
- AwaitExpression: ['argument'], // CAUTION: It's deferred to ES7.
- BlockStatement: ['body'],
- BinaryExpression: ['left', 'right'],
- BreakStatement: ['label'],
- CallExpression: ['callee', 'arguments'],
- CatchClause: ['param', 'body'],
- ClassBody: ['body'],
- ClassDeclaration: ['id', 'superClass', 'body'],
- ClassExpression: ['id', 'superClass', 'body'],
- ComprehensionBlock: ['left', 'right'], // CAUTION: It's deferred to ES7.
- ComprehensionExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7.
- ConditionalExpression: ['test', 'consequent', 'alternate'],
- ContinueStatement: ['label'],
- DebuggerStatement: [],
- DirectiveStatement: [],
- DoWhileStatement: ['body', 'test'],
- EmptyStatement: [],
- ExportAllDeclaration: ['source'],
- ExportDefaultDeclaration: ['declaration'],
- ExportNamedDeclaration: ['declaration', 'specifiers', 'source'],
- ExportSpecifier: ['exported', 'local'],
- ExpressionStatement: ['expression'],
- ForStatement: ['init', 'test', 'update', 'body'],
- ForInStatement: ['left', 'right', 'body'],
- ForOfStatement: ['left', 'right', 'body'],
- FunctionDeclaration: ['id', 'params', 'body'],
- FunctionExpression: ['id', 'params', 'body'],
- GeneratorExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7.
- Identifier: [],
- IfStatement: ['test', 'consequent', 'alternate'],
- ImportDeclaration: ['specifiers', 'source'],
- ImportDefaultSpecifier: ['local'],
- ImportNamespaceSpecifier: ['local'],
- ImportSpecifier: ['imported', 'local'],
- Literal: [],
- LabeledStatement: ['label', 'body'],
- LogicalExpression: ['left', 'right'],
- MetaProperty: ['meta', 'property'],
- MemberExpression: ['object', 'property'],
- MethodDefinition: ['key', 'value'],
- ModuleSpecifier: [],
- NewExpression: ['callee', 'arguments'],
- ObjectExpression: ['properties'],
- ObjectPattern: ['properties'],
- Program: ['body'],
- Property: ['key', 'value'],
- RestElement: [ 'argument' ],
- ReturnStatement: ['argument'],
- SequenceExpression: ['expressions'],
- SpreadElement: ['argument'],
- Super: [],
- SwitchStatement: ['discriminant', 'cases'],
- SwitchCase: ['test', 'consequent'],
- TaggedTemplateExpression: ['tag', 'quasi'],
- TemplateElement: [],
- TemplateLiteral: ['quasis', 'expressions'],
- ThisExpression: [],
- ThrowStatement: ['argument'],
- TryStatement: ['block', 'handler', 'finalizer'],
- UnaryExpression: ['argument'],
- UpdateExpression: ['argument'],
- VariableDeclaration: ['declarations'],
- VariableDeclarator: ['id', 'init'],
- WhileStatement: ['test', 'body'],
- WithStatement: ['object', 'body'],
- YieldExpression: ['argument']
- };
-
- for (nodeType in SYNTAX) {
- /* istanbul ignore else: has own property */
- if (SYNTAX.hasOwnProperty(nodeType)) {
- SYNTAX[nodeType] = { name: nodeType, children: SYNTAX[nodeType] };
- }
- }
-
- astgen = {
- variable: function (name) { return { type: SYNTAX.Identifier.name, name: name }; },
- stringLiteral: function (str) { return { type: SYNTAX.Literal.name, value: String(str) }; },
- numericLiteral: function (num) { return { type: SYNTAX.Literal.name, value: Number(num) }; },
- statement: function (contents) { return { type: SYNTAX.ExpressionStatement.name, expression: contents }; },
- dot: function (obj, field) { return { type: SYNTAX.MemberExpression.name, computed: false, object: obj, property: field }; },
- subscript: function (obj, sub) { return { type: SYNTAX.MemberExpression.name, computed: true, object: obj, property: sub }; },
- postIncrement: function (obj) { return { type: SYNTAX.UpdateExpression.name, operator: '++', prefix: false, argument: obj }; },
- sequence: function (one, two) { return { type: SYNTAX.SequenceExpression.name, expressions: [one, two] }; },
- returnStatement: function (expr) { return { type: SYNTAX.ReturnStatement.name, argument: expr }; }
- };
-
- function Walker(walkMap, preprocessor, scope, debug) {
- this.walkMap = walkMap;
- this.preprocessor = preprocessor;
- this.scope = scope;
- this.debug = debug;
- if (this.debug) {
- this.level = 0;
- this.seq = true;
- }
- }
-
- function defaultWalker(node, walker) {
-
- var type = node.type,
- preprocessor,
- postprocessor,
- children = SYNTAX[type],
- // don't run generated nodes thru custom walks otherwise we will attempt to instrument the instrumentation code :)
- applyCustomWalker = !!node.loc || node.type === SYNTAX.Program.name,
- walkerFn = applyCustomWalker ? walker.walkMap[type] : null,
- i,
- j,
- walkFnIndex,
- childType,
- childNode,
- ret,
- childArray,
- childElement,
- pathElement,
- assignNode,
- isLast;
-
- if (!SYNTAX[type]) {
- console.error(node);
- console.error('Unsupported node type:' + type);
- return;
- }
- children = SYNTAX[type].children;
- /* istanbul ignore if: guard */
- if (node.walking) { throw new Error('Infinite regress: Custom walkers may NOT call walker.apply(node)'); }
- node.walking = true;
-
- ret = walker.apply(node, walker.preprocessor);
-
- preprocessor = ret.preprocessor;
- if (preprocessor) {
- delete ret.preprocessor;
- ret = walker.apply(node, preprocessor);
- }
-
- if (isArray(walkerFn)) {
- for (walkFnIndex = 0; walkFnIndex < walkerFn.length; walkFnIndex += 1) {
- isLast = walkFnIndex === walkerFn.length - 1;
- ret = walker.apply(ret, walkerFn[walkFnIndex]);
- /*istanbul ignore next: paranoid check */
- if (ret.type !== type && !isLast) {
- throw new Error('Only the last walker is allowed to change the node type: [type was: ' + type + ' ]');
- }
- }
- } else {
- if (walkerFn) {
- ret = walker.apply(node, walkerFn);
- }
- }
-
- if (node.skipSelf) {
- return;
- }
-
- for (i = 0; i < children.length; i += 1) {
- childType = children[i];
- childNode = node[childType];
- if (childNode && !childNode.skipWalk) {
- pathElement = { node: node, property: childType };
- if (isArray(childNode)) {
- childArray = [];
- for (j = 0; j < childNode.length; j += 1) {
- childElement = childNode[j];
- pathElement.index = j;
- if (childElement) {
- assignNode = walker.apply(childElement, null, pathElement);
- if (isArray(assignNode.prepend)) {
- pushAll(childArray, assignNode.prepend);
- delete assignNode.prepend;
- }
- } else {
- assignNode = undefined;
- }
- pushAll(childArray, assignNode);
- }
- node[childType] = childArray;
- } else {
- assignNode = walker.apply(childNode, null, pathElement);
- /*istanbul ignore if: paranoid check */
- if (isArray(assignNode.prepend)) {
- throw new Error('Internal error: attempt to prepend statements in disallowed (non-array) context');
- /* if this should be allowed, this is how to solve it
- tmpNode = { type: 'BlockStatement', body: [] };
- pushAll(tmpNode.body, assignNode.prepend);
- pushAll(tmpNode.body, assignNode);
- node[childType] = tmpNode;
- delete assignNode.prepend;
- */
- } else {
- node[childType] = assignNode;
- }
- }
- }
- }
-
- postprocessor = ret.postprocessor;
- if (postprocessor) {
- delete ret.postprocessor;
- ret = walker.apply(ret, postprocessor);
- }
-
- delete node.walking;
-
- return ret;
- }
-
- Walker.prototype = {
- startWalk: function (node) {
- this.path = [];
- this.apply(node);
- },
-
- apply: function (node, walkFn, pathElement) {
- var ret, i, seq, prefix;
-
- walkFn = walkFn || defaultWalker;
- if (this.debug) {
- this.seq += 1;
- this.level += 1;
- seq = this.seq;
- prefix = '';
- for (i = 0; i < this.level; i += 1) { prefix += ' '; }
- console.log(prefix + 'Enter (' + seq + '):' + node.type);
- }
- if (pathElement) { this.path.push(pathElement); }
- ret = walkFn.call(this.scope, node, this);
- if (pathElement) { this.path.pop(); }
- if (this.debug) {
- this.level -= 1;
- console.log(prefix + 'Return (' + seq + '):' + node.type);
- }
- return ret || node;
- },
-
- startLineForNode: function (node) {
- return node && node.loc && node.loc.start ? node.loc.start.line : /* istanbul ignore next: guard */ null;
- },
-
- ancestor: function (n) {
- return this.path.length > n - 1 ? this.path[this.path.length - n] : /* istanbul ignore next: guard */ null;
- },
-
- parent: function () {
- return this.ancestor(1);
- },
-
- isLabeled: function () {
- var el = this.parent();
- return el && el.node.type === SYNTAX.LabeledStatement.name;
- }
- };
-
- /**
- * mechanism to instrument code for coverage. It uses the `esprima` and
- * `escodegen` libraries for JS parsing and code generation respectively.
- *
- * Works on `node` as well as the browser.
- *
- * Usage on nodejs
- * ---------------
- *
- * var instrumenter = new require('istanbul').Instrumenter(),
- * changed = instrumenter.instrumentSync('function meaningOfLife() { return 42; }', 'filename.js');
- *
- * Usage in a browser
- * ------------------
- *
- * Load `esprima.js`, `escodegen.js` and `instrumenter.js` (this file) using `script` tags or other means.
- *
- * Create an instrumenter object as:
- *
- * var instrumenter = new Instrumenter(),
- * changed = instrumenter.instrumentSync('function meaningOfLife() { return 42; }', 'filename.js');
- *
- * Aside from demonstration purposes, it is unclear why you would want to instrument code in a browser.
- *
- * @class Instrumenter
- * @constructor
- * @param {Object} options Optional. Configuration options.
- * @param {String} [options.coverageVariable] the global variable name to use for
- * tracking coverage. Defaults to `__coverage__`
- * @param {Boolean} [options.embedSource] whether to embed the source code of every
- * file as an array in the file coverage object for that file. Defaults to `false`
- * @param {Boolean} [options.preserveComments] whether comments should be preserved in the output. Defaults to `false`
- * @param {Boolean} [options.noCompact] emit readable code when set. Defaults to `false`
- * @param {Boolean} [options.esModules] whether the code to instrument contains uses es
- * imports or exports.
- * @param {Boolean} [options.noAutoWrap] do not automatically wrap the source in
- * an anonymous function before covering it. By default, code is wrapped in
- * an anonymous function before it is parsed. This is done because
- * some nodejs libraries have `return` statements outside of
- * a function which is technically invalid Javascript and causes the parser to fail.
- * This construct, however, works correctly in node since module loading
- * is done in the context of an anonymous function.
- *
- * Note that the semantics of the code *returned* by the instrumenter does not change in any way.
- * The function wrapper is "unwrapped" before the instrumented code is generated.
- * @param {Object} [options.codeGenerationOptions] an object that is directly passed to the `escodegen`
- * library as configuration for code generation. The `noCompact` setting is not honored when this
- * option is specified
- * @param {Boolean} [options.debug] assist in debugging. Currently, the only effect of
- * setting this option is a pretty-print of the coverage variable. Defaults to `false`
- * @param {Boolean} [options.walkDebug] assist in debugging of the AST walker used by this class.
- *
- */
- function Instrumenter(options) {
- this.opts = options || {
- debug: false,
- walkDebug: false,
- coverageVariable: '__coverage__',
- codeGenerationOptions: undefined,
- noAutoWrap: false,
- noCompact: false,
- embedSource: false,
- preserveComments: false,
- esModules: false
- };
-
- if (this.opts.esModules && !this.opts.noAutoWrap) {
- this.opts.noAutoWrap = true;
- if (this.opts.debug) {
- console.log('Setting noAutoWrap to true as required by esModules');
- }
- }
-
- this.walker = new Walker({
- ArrowFunctionExpression: [ this.arrowBlockConverter ],
- ExpressionStatement: this.coverStatement,
- ExportNamedDeclaration: this.coverExport,
- BreakStatement: this.coverStatement,
- ContinueStatement: this.coverStatement,
- DebuggerStatement: this.coverStatement,
- ReturnStatement: this.coverStatement,
- ThrowStatement: this.coverStatement,
- TryStatement: [ this.paranoidHandlerCheck, this.coverStatement],
- VariableDeclaration: this.coverStatement,
- IfStatement: [ this.ifBlockConverter, this.coverStatement, this.ifBranchInjector ],
- ForStatement: [ this.skipInit, this.loopBlockConverter, this.coverStatement ],
- ForInStatement: [ this.skipLeft, this.loopBlockConverter, this.coverStatement ],
- ForOfStatement: [ this.skipLeft, this.loopBlockConverter, this.coverStatement ],
- WhileStatement: [ this.loopBlockConverter, this.coverStatement ],
- DoWhileStatement: [ this.loopBlockConverter, this.coverStatement ],
- SwitchStatement: [ this.coverStatement, this.switchBranchInjector ],
- SwitchCase: [ this.switchCaseInjector ],
- WithStatement: [ this.withBlockConverter, this.coverStatement ],
- FunctionDeclaration: [ this.coverFunction, this.coverStatement ],
- FunctionExpression: this.coverFunction,
- LabeledStatement: this.coverStatement,
- ConditionalExpression: this.conditionalBranchInjector,
- LogicalExpression: this.logicalExpressionBranchInjector,
- ObjectExpression: this.maybeAddType,
- MetaProperty: this.coverMetaProperty,
- }, this.extractCurrentHint, this, this.opts.walkDebug);
-
- //unit testing purposes only
- if (this.opts.backdoor && this.opts.backdoor.omitTrackerSuffix) {
- this.omitTrackerSuffix = true;
- }
- }
-
- Instrumenter.prototype = {
- /**
- * synchronous instrumentation method. Throws when illegal code is passed to it
- * @method instrumentSync
- * @param {String} code the code to be instrumented as a String
- * @param {String} filename Optional. The name of the file from which
- * the code was read. A temporary filename is generated when not specified.
- * Not specifying a filename is only useful for unit tests and demonstrations
- * of this library.
- */
- instrumentSync: function (code, filename) {
- var program;
-
- //protect from users accidentally passing in a Buffer object instead
- if (typeof code !== 'string') { throw new Error('Code must be string'); }
- if (code.charAt(0) === '#') { //shebang, 'comment' it out, won't affect syntax tree locations for things we care about
- code = '//' + code;
- }
- if (!this.opts.noAutoWrap) {
- code = LEADER_WRAP + code + TRAILER_WRAP;
- }
- try {
- program = ESP.parse(code, {
- loc: true,
- range: true,
- tokens: this.opts.preserveComments,
- comment: true,
- sourceType: this.opts.esModules ? 'module' : 'script'
- });
- } catch (e) {
- console.log('Failed to parse file: ' + filename);
- throw e;
- }
- if (this.opts.preserveComments) {
- program = ESPGEN.attachComments(program, program.comments, program.tokens);
- }
- if (!this.opts.noAutoWrap) {
- program = {
- type: SYNTAX.Program.name,
- body: program.body[0].expression.callee.body.body,
- comments: program.comments
- };
- }
- return this.instrumentASTSync(program, filename, code);
- },
- filterHints: function (comments) {
- var ret = [],
- i,
- comment,
- groups;
- if (!(comments && isArray(comments))) {
- return ret;
- }
- for (i = 0; i < comments.length; i += 1) {
- comment = comments[i];
- /* istanbul ignore else: paranoid check */
- if (comment && comment.value && comment.range && isArray(comment.range)) {
- groups = String(comment.value).match(COMMENT_RE);
- if (groups) {
- ret.push({ type: groups[1], start: comment.range[0], end: comment.range[1] });
- }
- }
- }
- return ret;
- },
- extractCurrentHint: function (node) {
- if (!node.range) { return; }
- var i = this.currentState.lastHintPosition + 1,
- hints = this.currentState.hints,
- nodeStart = node.range[0],
- hint;
- this.currentState.currentHint = null;
- while (i < hints.length) {
- hint = hints[i];
- if (hint.end < nodeStart) {
- this.currentState.currentHint = hint;
- this.currentState.lastHintPosition = i;
- i += 1;
- } else {
- break;
- }
- }
- },
- /**
- * synchronous instrumentation method that instruments an AST instead.
- * @method instrumentASTSync
- * @param {String} program the AST to be instrumented
- * @param {String} filename Optional. The name of the file from which
- * the code was read. A temporary filename is generated when not specified.
- * Not specifying a filename is only useful for unit tests and demonstrations
- * of this library.
- * @param {String} originalCode the original code corresponding to the AST,
- * used for embedding the source into the coverage object
- */
- instrumentASTSync: function (program, filename, originalCode) {
- var usingStrict = false,
- codegenOptions,
- generated,
- preamble,
- lineCount,
- i;
- filename = filename || String(new Date().getTime()) + '.js';
- this.sourceMap = null;
- this.coverState = {
- path: filename,
- s: {},
- b: {},
- f: {},
- fnMap: {},
- statementMap: {},
- branchMap: {}
- };
- this.currentState = {
- trackerVar: generateTrackerVar(filename, this.omitTrackerSuffix),
- func: 0,
- branch: 0,
- variable: 0,
- statement: 0,
- hints: this.filterHints(program.comments),
- currentHint: null,
- lastHintPosition: -1,
- ignoring: 0
- };
- if (program.body && program.body.length > 0 && this.isUseStrictExpression(program.body[0])) {
- //nuke it
- program.body.shift();
- //and add it back at code generation time
- usingStrict = true;
- }
- this.walker.startWalk(program);
- codegenOptions = this.opts.codeGenerationOptions || { format: { compact: !this.opts.noCompact }};
- codegenOptions.comment = this.opts.preserveComments;
- //console.log(JSON.stringify(program, undefined, 2));
-
- generated = ESPGEN.generate(program, codegenOptions);
- preamble = this.getPreamble(originalCode || '', usingStrict);
-
- if (generated.map && generated.code) {
- lineCount = preamble.split(/\r\n|\r|\n/).length;
- // offset all the generated line numbers by the number of lines in the preamble
- for (i = 0; i < generated.map._mappings._array.length; i += 1) {
- generated.map._mappings._array[i].generatedLine += lineCount;
- }
- this.sourceMap = generated.map;
- generated = generated.code;
- }
-
- return preamble + '\n' + generated + '\n';
- },
- /**
- * Callback based instrumentation. Note that this still executes synchronously in the same process tick
- * and calls back immediately. It only provides the options for callback style error handling as
- * opposed to a `try-catch` style and nothing more. Implemented as a wrapper over `instrumentSync`
- *
- * @method instrument
- * @param {String} code the code to be instrumented as a String
- * @param {String} filename Optional. The name of the file from which
- * the code was read. A temporary filename is generated when not specified.
- * Not specifying a filename is only useful for unit tests and demonstrations
- * of this library.
- * @param {Function(err, instrumentedCode)} callback - the callback function
- */
- instrument: function (code, filename, callback) {
-
- if (!callback && typeof filename === 'function') {
- callback = filename;
- filename = null;
- }
- try {
- callback(null, this.instrumentSync(code, filename));
- } catch (ex) {
- callback(ex);
- }
- },
- /**
- * returns the file coverage object for the code that was instrumented
- * just before calling this method. Note that this represents a
- * "zero-coverage" object which is not even representative of the code
- * being loaded in node or a browser (which would increase the statement
- * counts for mainline code).
- * @method lastFileCoverage
- * @return {Object} a "zero-coverage" file coverage object for the code last instrumented
- * by this instrumenter
- */
- lastFileCoverage: function () {
- return this.coverState;
- },
- /**
- * returns the source map object for the code that was instrumented
- * just before calling this method.
- * @method lastSourceMap
- * @return {Object} a source map object for the code last instrumented
- * by this instrumenter
- */
- lastSourceMap: function () {
- return this.sourceMap;
- },
- fixColumnPositions: function (coverState) {
- var offset = LEADER_WRAP.length,
- fixer = function (loc) {
- if (loc.start.line === 1) {
- loc.start.column -= offset;
- }
- if (loc.end.line === 1) {
- loc.end.column -= offset;
- }
- },
- k,
- obj,
- i,
- locations;
-
- obj = coverState.statementMap;
- for (k in obj) {
- /* istanbul ignore else: has own property */
- if (obj.hasOwnProperty(k)) { fixer(obj[k]); }
- }
- obj = coverState.fnMap;
- for (k in obj) {
- /* istanbul ignore else: has own property */
- if (obj.hasOwnProperty(k)) { fixer(obj[k].loc); }
- }
- obj = coverState.branchMap;
- for (k in obj) {
- /* istanbul ignore else: has own property */
- if (obj.hasOwnProperty(k)) {
- locations = obj[k].locations;
- for (i = 0; i < locations.length; i += 1) {
- fixer(locations[i]);
- }
- }
- }
- },
-
- getPreamble: function (sourceCode, emitUseStrict) {
- var varName = this.opts.coverageVariable || '__coverage__',
- file = this.coverState.path.replace(/\\/g, '\\\\'),
- tracker = this.currentState.trackerVar,
- coverState,
- strictLine = emitUseStrict ? '"use strict";' : '',
- // return replacements using the function to ensure that the replacement is
- // treated like a dumb string and not as a string with RE replacement patterns
- replacer = function (s) {
- return function () { return s; };
- },
- code;
- if (!this.opts.noAutoWrap) {
- this.fixColumnPositions(this.coverState);
- }
- if (this.opts.embedSource) {
- this.coverState.code = sourceCode.split(/(?:\r?\n)|\r/);
- }
- coverState = this.opts.debug ? JSON.stringify(this.coverState, undefined, 4) : JSON.stringify(this.coverState);
- code = [
- "%STRICT%",
- "var %VAR% = (Function('return this'))();",
- "if (!%VAR%.%GLOBAL%) { %VAR%.%GLOBAL% = {}; }",
- "%VAR% = %VAR%.%GLOBAL%;",
- "if (!(%VAR%['%FILE%'])) {",
- " %VAR%['%FILE%'] = %OBJECT%;",
- "}",
- "%VAR% = %VAR%['%FILE%'];"
- ].join("\n")
- .replace(/%STRICT%/g, replacer(strictLine))
- .replace(/%VAR%/g, replacer(tracker))
- .replace(/%GLOBAL%/g, replacer(varName))
- .replace(/%FILE%/g, replacer(file))
- .replace(/%OBJECT%/g, replacer(coverState));
- return code;
- },
-
- startIgnore: function () {
- this.currentState.ignoring += 1;
- },
-
- endIgnore: function () {
- this.currentState.ignoring -= 1;
- },
-
- convertToBlock: function (node) {
- if (!node) {
- return { type: 'BlockStatement', body: [] };
- } else if (node.type === 'BlockStatement') {
- return node;
- } else {
- return { type: 'BlockStatement', body: [ node ] };
- }
- },
-
- arrowBlockConverter: function (node) {
- var retStatement;
- if (node.expression) { // turn expression nodes into a block with a return statement
- retStatement = astgen.returnStatement(node.body);
- // ensure the generated return statement is covered
- retStatement.loc = node.body.loc;
- node.body = this.convertToBlock(retStatement);
- node.expression = false;
- }
- },
-
- paranoidHandlerCheck: function (node) {
- // if someone is using an older esprima on the browser
- // convert handlers array to single handler attribute
- // containing its first element
- /* istanbul ignore next */
- if (!node.handler && node.handlers) {
- node.handler = node.handlers[0];
- }
- },
-
- ifBlockConverter: function (node) {
- node.consequent = this.convertToBlock(node.consequent);
- node.alternate = this.convertToBlock(node.alternate);
- },
-
- loopBlockConverter: function (node) {
- node.body = this.convertToBlock(node.body);
- },
-
- withBlockConverter: function (node) {
- node.body = this.convertToBlock(node.body);
- },
-
- statementName: function (location, initValue) {
- var sName,
- ignoring = !!this.currentState.ignoring;
-
- location.skip = ignoring || undefined;
- initValue = initValue || 0;
- this.currentState.statement += 1;
- sName = this.currentState.statement;
- this.coverState.statementMap[sName] = location;
- this.coverState.s[sName] = initValue;
- return sName;
- },
-
- skipInit: function (node /*, walker */) {
- if (node.init) {
- node.init.skipWalk = true;
- }
- },
-
- skipLeft: function (node /*, walker */) {
- node.left.skipWalk = true;
- },
-
- isUseStrictExpression: function (node) {
- return node && node.type === SYNTAX.ExpressionStatement.name &&
- node.expression && node.expression.type === SYNTAX.Literal.name &&
- node.expression.value === 'use strict';
- },
-
- maybeSkipNode: function (node, type) {
- var alreadyIgnoring = !!this.currentState.ignoring,
- hint = this.currentState.currentHint,
- ignoreThis = !alreadyIgnoring && hint && hint.type === type;
-
- if (ignoreThis) {
- this.startIgnore();
- node.postprocessor = this.endIgnore;
- return true;
- }
- return false;
- },
-
- coverMetaProperty: function(node /* , walker */) {
- node.skipSelf = true;
- },
-
- coverStatement: function (node, walker) {
- var sName,
- incrStatementCount,
- parent,
- grandParent;
-
- this.maybeSkipNode(node, 'next');
-
- if (this.isUseStrictExpression(node)) {
- grandParent = walker.ancestor(2);
- /* istanbul ignore else: difficult to test */
- if (grandParent) {
- if ((grandParent.node.type === SYNTAX.FunctionExpression.name ||
- grandParent.node.type === SYNTAX.FunctionDeclaration.name) &&
- walker.parent().node.body[0] === node) {
- return;
- }
- }
- }
-
- if (node.type === SYNTAX.FunctionDeclaration.name) {
- // Called for the side-effect of setting the function's statement count to 1.
- this.statementName(node.loc, 1);
- } else {
- // We let `coverExport` handle ExportNamedDeclarations.
- parent = walker.parent();
- if (parent && parent.node.type === SYNTAX.ExportNamedDeclaration.name) {
- return;
- }
-
- sName = this.statementName(node.loc);
-
- incrStatementCount = astgen.statement(
- astgen.postIncrement(
- astgen.subscript(
- astgen.dot(astgen.variable(this.currentState.trackerVar), astgen.variable('s')),
- astgen.stringLiteral(sName)
- )
- )
- );
-
- this.splice(incrStatementCount, node, walker);
- }
- },
-
- coverExport: function (node, walker) {
- var sName, incrStatementCount;
-
- if ( !node.declaration || !node.declaration.declarations ) { return; }
-
- this.maybeSkipNode(node, 'next');
-
- sName = this.statementName(node.declaration.loc);
- incrStatementCount = astgen.statement(
- astgen.postIncrement(
- astgen.subscript(
- astgen.dot(astgen.variable(this.currentState.trackerVar), astgen.variable('s')),
- astgen.stringLiteral(sName)
- )
- )
- );
-
- this.splice(incrStatementCount, node, walker);
- },
-
- splice: function (statements, node, walker) {
- var targetNode = walker.isLabeled() ? walker.parent().node : node;
- targetNode.prepend = targetNode.prepend || [];
- pushAll(targetNode.prepend, statements);
- },
-
- functionName: function (node, line, location) {
- this.currentState.func += 1;
- var id = this.currentState.func,
- ignoring = !!this.currentState.ignoring,
- name = node.id ? node.id.name : '(anonymous_' + id + ')',
- clone = function (attr) {
- var obj = location[attr] || /* istanbul ignore next */ {};
- return { line: obj.line, column: obj.column };
- };
- this.coverState.fnMap[id] = {
- name: name, line: line,
- loc: {
- start: clone('start'),
- end: clone('end')
- },
- skip: ignoring || undefined
- };
- this.coverState.f[id] = 0;
- return id;
- },
-
- coverFunction: function (node, walker) {
- var id,
- body = node.body,
- blockBody = body.body,
- popped;
-
- this.maybeSkipNode(node, 'next');
-
- id = this.functionName(node, walker.startLineForNode(node), {
- start: node.loc.start,
- end: { line: node.body.loc.start.line, column: node.body.loc.start.column }
- });
-
- if (blockBody.length > 0 && this.isUseStrictExpression(blockBody[0])) {
- popped = blockBody.shift();
- }
- blockBody.unshift(
- astgen.statement(
- astgen.postIncrement(
- astgen.subscript(
- astgen.dot(astgen.variable(this.currentState.trackerVar), astgen.variable('f')),
- astgen.stringLiteral(id)
- )
- )
- )
- );
- if (popped) {
- blockBody.unshift(popped);
- }
- },
-
- branchName: function (type, startLine, pathLocations) {
- var bName,
- paths = [],
- locations = [],
- i,
- ignoring = !!this.currentState.ignoring;
- this.currentState.branch += 1;
- bName = this.currentState.branch;
- for (i = 0; i < pathLocations.length; i += 1) {
- pathLocations[i].skip = pathLocations[i].skip || ignoring || undefined;
- locations.push(pathLocations[i]);
- paths.push(0);
- }
- this.coverState.b[bName] = paths;
- this.coverState.branchMap[bName] = { line: startLine, type: type, locations: locations };
- return bName;
- },
-
- branchIncrementExprAst: function (varName, branchIndex, down) {
- var ret = astgen.postIncrement(
- astgen.subscript(
- astgen.subscript(
- astgen.dot(astgen.variable(this.currentState.trackerVar), astgen.variable('b')),
- astgen.stringLiteral(varName)
- ),
- astgen.numericLiteral(branchIndex)
- ),
- down
- );
- return ret;
- },
-
- locationsForNodes: function (nodes) {
- var ret = [],
- i;
- for (i = 0; i < nodes.length; i += 1) {
- ret.push(nodes[i].loc);
- }
- return ret;
- },
-
- ifBranchInjector: function (node, walker) {
- var alreadyIgnoring = !!this.currentState.ignoring,
- hint = this.currentState.currentHint,
- ignoreThen = !alreadyIgnoring && hint && hint.type === 'if',
- ignoreElse = !alreadyIgnoring && hint && hint.type === 'else',
- line = node.loc.start.line,
- col = node.loc.start.column,
- makeLoc = function () { return { line: line, column: col }; },
- bName = this.branchName('if', walker.startLineForNode(node), [
- { start: makeLoc(), end: makeLoc(), skip: ignoreThen || undefined },
- { start: makeLoc(), end: makeLoc(), skip: ignoreElse || undefined }
- ]),
- thenBody = node.consequent.body,
- elseBody = node.alternate.body,
- child;
- thenBody.unshift(astgen.statement(this.branchIncrementExprAst(bName, 0)));
- elseBody.unshift(astgen.statement(this.branchIncrementExprAst(bName, 1)));
- if (ignoreThen) { child = node.consequent; child.preprocessor = this.startIgnore; child.postprocessor = this.endIgnore; }
- if (ignoreElse) { child = node.alternate; child.preprocessor = this.startIgnore; child.postprocessor = this.endIgnore; }
- },
-
- branchLocationFor: function (name, index) {
- return this.coverState.branchMap[name].locations[index];
- },
-
- switchBranchInjector: function (node, walker) {
- var cases = node.cases,
- bName,
- i;
-
- if (!(cases && cases.length > 0)) {
- return;
- }
- bName = this.branchName('switch', walker.startLineForNode(node), this.locationsForNodes(cases));
- for (i = 0; i < cases.length; i += 1) {
- cases[i].branchLocation = this.branchLocationFor(bName, i);
- cases[i].consequent.unshift(astgen.statement(this.branchIncrementExprAst(bName, i)));
- }
- },
-
- switchCaseInjector: function (node) {
- var location = node.branchLocation;
- delete node.branchLocation;
- if (this.maybeSkipNode(node, 'next')) {
- location.skip = true;
- }
- },
-
- conditionalBranchInjector: function (node, walker) {
- var bName = this.branchName('cond-expr', walker.startLineForNode(node), this.locationsForNodes([ node.consequent, node.alternate ])),
- ast1 = this.branchIncrementExprAst(bName, 0),
- ast2 = this.branchIncrementExprAst(bName, 1);
-
- node.consequent.preprocessor = this.maybeAddSkip(this.branchLocationFor(bName, 0));
- node.alternate.preprocessor = this.maybeAddSkip(this.branchLocationFor(bName, 1));
- node.consequent = astgen.sequence(ast1, node.consequent);
- node.alternate = astgen.sequence(ast2, node.alternate);
- },
-
- maybeAddSkip: function (branchLocation) {
- return function (node) {
- var alreadyIgnoring = !!this.currentState.ignoring,
- hint = this.currentState.currentHint,
- ignoreThis = !alreadyIgnoring && hint && hint.type === 'next';
- if (ignoreThis) {
- this.startIgnore();
- node.postprocessor = this.endIgnore;
- }
- if (ignoreThis || alreadyIgnoring) {
- branchLocation.skip = true;
- }
- };
- },
-
- logicalExpressionBranchInjector: function (node, walker) {
- var parent = walker.parent(),
- leaves = [],
- bName,
- tuple,
- i;
-
- this.maybeSkipNode(node, 'next');
-
- if (parent && parent.node.type === SYNTAX.LogicalExpression.name) {
- //already covered
- return;
- }
-
- this.findLeaves(node, leaves);
- bName = this.branchName('binary-expr',
- walker.startLineForNode(node),
- this.locationsForNodes(leaves.map(function (item) { return item.node; }))
- );
- for (i = 0; i < leaves.length; i += 1) {
- tuple = leaves[i];
- tuple.parent[tuple.property] = astgen.sequence(this.branchIncrementExprAst(bName, i), tuple.node);
- tuple.node.preprocessor = this.maybeAddSkip(this.branchLocationFor(bName, i));
- }
- },
-
- findLeaves: function (node, accumulator, parent, property) {
- if (node.type === SYNTAX.LogicalExpression.name) {
- this.findLeaves(node.left, accumulator, node, 'left');
- this.findLeaves(node.right, accumulator, node, 'right');
- } else {
- accumulator.push({ node: node, parent: parent, property: property });
- }
- },
- maybeAddType: function (node /*, walker */) {
- var props = node.properties,
- i,
- child;
- for (i = 0; i < props.length; i += 1) {
- child = props[i];
- if (!child.type) {
- child.type = SYNTAX.Property.name;
- }
- }
- },
- };
-
- if (isNode) {
- module.exports = Instrumenter;
- } else {
- window.Instrumenter = Instrumenter;
- }
-
-}(typeof module !== 'undefined' && typeof module.exports !== 'undefined' && typeof exports !== 'undefined'));
diff --git a/node_modules/istanbul/lib/object-utils.js b/node_modules/istanbul/lib/object-utils.js
deleted file mode 100644
index ab88ae0b2..000000000
--- a/node_modules/istanbul/lib/object-utils.js
+++ /dev/null
@@ -1,425 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-/**
- * utility methods to process coverage objects. A coverage object has the following
- * format.
- *
- * {
- * "/path/to/file1.js": { file1 coverage },
- * "/path/to/file2.js": { file2 coverage }
- * }
- *
- * The internals of the file coverage object are intentionally not documented since
- * it is not a public interface.
- *
- * *Note:* When a method of this module has the word `File` in it, it will accept
- * one of the sub-objects of the main coverage object as an argument. Other
- * methods accept the higher level coverage object with multiple keys.
- *
- * Works on `node` as well as the browser.
- *
- * Usage on nodejs
- * ---------------
- *
- * var objectUtils = require('istanbul').utils;
- *
- * Usage in a browser
- * ------------------
- *
- * Load this file using a `script` tag or other means. This will set `window.coverageUtils`
- * to this module's exports.
- *
- * @class ObjectUtils
- * @module main
- * @static
- */
-(function (isNode) {
- /**
- * adds line coverage information to a file coverage object, reverse-engineering
- * it from statement coverage. The object passed in is updated in place.
- *
- * Note that if line coverage information is already present in the object,
- * it is not recomputed.
- *
- * @method addDerivedInfoForFile
- * @static
- * @param {Object} fileCoverage the coverage object for a single file
- */
- function addDerivedInfoForFile(fileCoverage) {
- var statementMap = fileCoverage.statementMap,
- statements = fileCoverage.s,
- lineMap;
-
- if (!fileCoverage.l) {
- fileCoverage.l = lineMap = {};
- Object.keys(statements).forEach(function (st) {
- var line = statementMap[st].start.line,
- count = statements[st],
- prevVal = lineMap[line];
- if (count === 0 && statementMap[st].skip) { count = 1; }
- if (typeof prevVal === 'undefined' || prevVal < count) {
- lineMap[line] = count;
- }
- });
- }
- }
- /**
- * adds line coverage information to all file coverage objects.
- *
- * @method addDerivedInfo
- * @static
- * @param {Object} coverage the coverage object
- */
- function addDerivedInfo(coverage) {
- Object.keys(coverage).forEach(function (k) {
- addDerivedInfoForFile(coverage[k]);
- });
- }
- /**
- * removes line coverage information from all file coverage objects
- * @method removeDerivedInfo
- * @static
- * @param {Object} coverage the coverage object
- */
- function removeDerivedInfo(coverage) {
- Object.keys(coverage).forEach(function (k) {
- delete coverage[k].l;
- });
- }
-
- function percent(covered, total) {
- var tmp;
- if (total > 0) {
- tmp = 1000 * 100 * covered / total + 5;
- return Math.floor(tmp / 10) / 100;
- } else {
- return 100.00;
- }
- }
-
- function computeSimpleTotals(fileCoverage, property, mapProperty) {
- var stats = fileCoverage[property],
- map = mapProperty ? fileCoverage[mapProperty] : null,
- ret = { total: 0, covered: 0, skipped: 0 };
-
- Object.keys(stats).forEach(function (key) {
- var covered = !!stats[key],
- skipped = map && map[key].skip;
- ret.total += 1;
- if (covered || skipped) {
- ret.covered += 1;
- }
- if (!covered && skipped) {
- ret.skipped += 1;
- }
- });
- ret.pct = percent(ret.covered, ret.total);
- return ret;
- }
-
- function computeBranchTotals(fileCoverage) {
- var stats = fileCoverage.b,
- branchMap = fileCoverage.branchMap,
- ret = { total: 0, covered: 0, skipped: 0 };
-
- Object.keys(stats).forEach(function (key) {
- var branches = stats[key],
- map = branchMap[key],
- covered,
- skipped,
- i;
- for (i = 0; i < branches.length; i += 1) {
- covered = branches[i] > 0;
- skipped = map.locations && map.locations[i] && map.locations[i].skip;
- if (covered || skipped) {
- ret.covered += 1;
- }
- if (!covered && skipped) {
- ret.skipped += 1;
- }
- }
- ret.total += branches.length;
- });
- ret.pct = percent(ret.covered, ret.total);
- return ret;
- }
- /**
- * returns a blank summary metrics object. A metrics object has the following
- * format.
- *
- * {
- * lines: lineMetrics,
- * statements: statementMetrics,
- * functions: functionMetrics,
- * branches: branchMetrics
- * linesCovered: lineCoveredCount
- * }
- *
- * Each individual metric object looks as follows:
- *
- * {
- * total: n,
- * covered: m,
- * pct: percent
- * }
- *
- * @method blankSummary
- * @static
- * @return {Object} a blank metrics object
- */
- function blankSummary() {
- return {
- lines: {
- total: 0,
- covered: 0,
- skipped: 0,
- pct: 'Unknown'
- },
- statements: {
- total: 0,
- covered: 0,
- skipped: 0,
- pct: 'Unknown'
- },
- functions: {
- total: 0,
- covered: 0,
- skipped: 0,
- pct: 'Unknown'
- },
- branches: {
- total: 0,
- covered: 0,
- skipped: 0,
- pct: 'Unknown'
- },
- linesCovered: {}
- };
- }
- /**
- * returns the summary metrics given the coverage object for a single file. See `blankSummary()`
- * to understand the format of the returned object.
- *
- * @method summarizeFileCoverage
- * @static
- * @param {Object} fileCoverage the coverage object for a single file.
- * @return {Object} the summary metrics for the file
- */
- function summarizeFileCoverage(fileCoverage) {
- var ret = blankSummary();
- addDerivedInfoForFile(fileCoverage);
- ret.lines = computeSimpleTotals(fileCoverage, 'l');
- ret.functions = computeSimpleTotals(fileCoverage, 'f', 'fnMap');
- ret.statements = computeSimpleTotals(fileCoverage, 's', 'statementMap');
- ret.branches = computeBranchTotals(fileCoverage);
- ret.linesCovered = fileCoverage.l;
- return ret;
- }
- /**
- * merges two instances of file coverage objects *for the same file*
- * such that the execution counts are correct.
- *
- * @method mergeFileCoverage
- * @static
- * @param {Object} first the first file coverage object for a given file
- * @param {Object} second the second file coverage object for the same file
- * @return {Object} an object that is a result of merging the two. Note that
- * the input objects are not changed in any way.
- */
- function mergeFileCoverage(first, second) {
- var ret = JSON.parse(JSON.stringify(first)),
- i;
-
- delete ret.l; //remove derived info
-
- Object.keys(second.s).forEach(function (k) {
- ret.s[k] += second.s[k];
- });
- Object.keys(second.f).forEach(function (k) {
- ret.f[k] += second.f[k];
- });
- Object.keys(second.b).forEach(function (k) {
- var retArray = ret.b[k],
- secondArray = second.b[k];
- for (i = 0; i < retArray.length; i += 1) {
- retArray[i] += secondArray[i];
- }
- });
-
- return ret;
- }
- /**
- * merges multiple summary metrics objects by summing up the `totals` and
- * `covered` fields and recomputing the percentages. This function is generic
- * and can accept any number of arguments.
- *
- * @method mergeSummaryObjects
- * @static
- * @param {Object} summary... multiple summary metrics objects
- * @return {Object} the merged summary metrics
- */
- function mergeSummaryObjects() {
- var ret = blankSummary(),
- args = Array.prototype.slice.call(arguments),
- keys = ['lines', 'statements', 'branches', 'functions'],
- increment = function (obj) {
- if (obj) {
- keys.forEach(function (key) {
- ret[key].total += obj[key].total;
- ret[key].covered += obj[key].covered;
- ret[key].skipped += obj[key].skipped;
- });
-
- // keep track of all lines we have coverage for.
- Object.keys(obj.linesCovered).forEach(function (key) {
- if (!ret.linesCovered[key]) {
- ret.linesCovered[key] = obj.linesCovered[key];
- } else {
- ret.linesCovered[key] += obj.linesCovered[key];
- }
- });
- }
- };
- args.forEach(function (arg) {
- increment(arg);
- });
- keys.forEach(function (key) {
- ret[key].pct = percent(ret[key].covered, ret[key].total);
- });
-
- return ret;
- }
- /**
- * returns the coverage summary for a single coverage object. This is
- * wrapper over `summarizeFileCoverage` and `mergeSummaryObjects` for
- * the common case of a single coverage object
- * @method summarizeCoverage
- * @static
- * @param {Object} coverage the coverage object
- * @return {Object} summary coverage metrics across all files in the coverage object
- */
- function summarizeCoverage(coverage) {
- var fileSummary = [];
- Object.keys(coverage).forEach(function (key) {
- fileSummary.push(summarizeFileCoverage(coverage[key]));
- });
- return mergeSummaryObjects.apply(null, fileSummary);
- }
-
- /**
- * makes the coverage object generated by this library yuitest_coverage compatible.
- * Note that this transformation is lossy since the returned object will not have
- * statement and branch coverage.
- *
- * @method toYUICoverage
- * @static
- * @param {Object} coverage The `istanbul` coverage object
- * @return {Object} a coverage object in `yuitest_coverage` format.
- */
- function toYUICoverage(coverage) {
- var ret = {};
-
- addDerivedInfo(coverage);
-
- Object.keys(coverage).forEach(function (k) {
- var fileCoverage = coverage[k],
- lines = fileCoverage.l,
- functions = fileCoverage.f,
- fnMap = fileCoverage.fnMap,
- o;
-
- o = ret[k] = {
- lines: {},
- calledLines: 0,
- coveredLines: 0,
- functions: {},
- calledFunctions: 0,
- coveredFunctions: 0
- };
- Object.keys(lines).forEach(function (k) {
- o.lines[k] = lines[k];
- o.coveredLines += 1;
- if (lines[k] > 0) {
- o.calledLines += 1;
- }
- });
- Object.keys(functions).forEach(function (k) {
- var name = fnMap[k].name + ':' + fnMap[k].line;
- o.functions[name] = functions[k];
- o.coveredFunctions += 1;
- if (functions[k] > 0) {
- o.calledFunctions += 1;
- }
- });
- });
- return ret;
- }
-
- /**
- * Creates new file coverage object with incremented hits count
- * on skipped statements, branches and functions
- *
- * @method incrementIgnoredTotals
- * @static
- * @param {Object} cov File coverage object
- * @return {Object} New file coverage object
- */
- function incrementIgnoredTotals(cov) {
- //TODO: This may be slow in the browser and may break in older browsers
- // Look into using a library that works in Node and the browser
- var fileCoverage = JSON.parse(JSON.stringify(cov));
-
- [
- {mapKey: 'statementMap', hitsKey: 's'},
- {mapKey: 'branchMap', hitsKey: 'b'},
- {mapKey: 'fnMap', hitsKey: 'f'}
- ].forEach(function (keys) {
- Object.keys(fileCoverage[keys.mapKey])
- .forEach(function (key) {
- var map = fileCoverage[keys.mapKey][key];
- var hits = fileCoverage[keys.hitsKey];
-
- if (keys.mapKey === 'branchMap') {
- var locations = map.locations;
-
- locations.forEach(function (location, index) {
- if (hits[key][index] === 0 && location.skip) {
- hits[key][index] = 1;
- }
- });
-
- return;
- }
-
- if (hits[key] === 0 && map.skip) {
- hits[key] = 1;
- }
- });
- });
-
- return fileCoverage;
- }
-
- var exportables = {
- addDerivedInfo: addDerivedInfo,
- addDerivedInfoForFile: addDerivedInfoForFile,
- removeDerivedInfo: removeDerivedInfo,
- blankSummary: blankSummary,
- summarizeFileCoverage: summarizeFileCoverage,
- summarizeCoverage: summarizeCoverage,
- mergeFileCoverage: mergeFileCoverage,
- mergeSummaryObjects: mergeSummaryObjects,
- toYUICoverage: toYUICoverage,
- incrementIgnoredTotals: incrementIgnoredTotals
- };
-
- /* istanbul ignore else: windows */
- if (isNode) {
- module.exports = exportables;
- } else {
- window.coverageUtils = exportables;
- }
-}(typeof module !== 'undefined' && typeof module.exports !== 'undefined' && typeof exports !== 'undefined'));
diff --git a/node_modules/istanbul/lib/register-plugins.js b/node_modules/istanbul/lib/register-plugins.js
deleted file mode 100644
index 50462bec1..000000000
--- a/node_modules/istanbul/lib/register-plugins.js
+++ /dev/null
@@ -1,15 +0,0 @@
-
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-var Store = require('./store'),
- Report = require('./report'),
- Command = require('./command');
-
-Store.loadAll();
-Report.loadAll();
-Command.loadAll();
-
-
-
diff --git a/node_modules/istanbul/lib/report/clover.js b/node_modules/istanbul/lib/report/clover.js
deleted file mode 100644
index fe73aefcd..000000000
--- a/node_modules/istanbul/lib/report/clover.js
+++ /dev/null
@@ -1,227 +0,0 @@
-var path = require('path'),
- util = require('util'),
- Report = require('./index'),
- FileWriter = require('../util/file-writer'),
- TreeSummarizer = require('../util/tree-summarizer'),
- utils = require('../object-utils');
-
-/**
- * a `Report` implementation that produces a clover-style XML file.
- *
- * Usage
- * -----
- *
- * var report = require('istanbul').Report.create('clover');
- *
- * @class CloverReport
- * @module report
- * @extends Report
- * @constructor
- * @param {Object} opts optional
- * @param {String} [opts.dir] the directory in which to the clover.xml will be written
- * @param {String} [opts.file] the file name, defaulted to config attribute or 'clover.xml'
- */
-function CloverReport(opts) {
- Report.call(this);
- opts = opts || {};
- this.projectRoot = process.cwd();
- this.dir = opts.dir || this.projectRoot;
- this.file = opts.file || this.getDefaultConfig().file;
- this.opts = opts;
-}
-
-CloverReport.TYPE = 'clover';
-util.inherits(CloverReport, Report);
-
-function asJavaPackage(node) {
- return node.displayShortName().
- replace(/\//g, '.').
- replace(/\\/g, '.').
- replace(/\.$/, '');
-}
-
-function asClassName(node) {
- /*jslint regexp: true */
- return node.fullPath().replace(/.*[\\\/]/, '');
-}
-
-function quote(thing) {
- return '"' + thing + '"';
-}
-
-function attr(n, v) {
- return ' ' + n + '=' + quote(v) + ' ';
-}
-
-function branchCoverageByLine(fileCoverage) {
- var branchMap = fileCoverage.branchMap,
- branches = fileCoverage.b,
- ret = {};
- Object.keys(branchMap).forEach(function (k) {
- var line = branchMap[k].line,
- branchData = branches[k];
- ret[line] = ret[line] || [];
- ret[line].push.apply(ret[line], branchData);
- });
- Object.keys(ret).forEach(function (k) {
- var dataArray = ret[k],
- covered = dataArray.filter(function (item) { return item > 0; }),
- coverage = covered.length / dataArray.length * 100;
- ret[k] = { covered: covered.length, total: dataArray.length, coverage: coverage };
- });
- return ret;
-}
-
-function addClassStats(node, fileCoverage, writer) {
- fileCoverage = utils.incrementIgnoredTotals(fileCoverage);
-
- var metrics = node.metrics,
- branchByLine = branchCoverageByLine(fileCoverage),
- fnMap,
- lines;
-
- writer.println('\t\t\t<file' +
- attr('name', asClassName(node)) +
- attr('path', node.fullPath()) +
- '>');
-
- writer.println('\t\t\t\t<metrics' +
- attr('statements', metrics.lines.total) +
- attr('coveredstatements', metrics.lines.covered) +
- attr('conditionals', metrics.branches.total) +
- attr('coveredconditionals', metrics.branches.covered) +
- attr('methods', metrics.functions.total) +
- attr('coveredmethods', metrics.functions.covered) +
- '/>');
-
- fnMap = fileCoverage.fnMap;
- lines = fileCoverage.l;
- Object.keys(lines).forEach(function (k) {
- var str = '\t\t\t\t<line' +
- attr('num', k) +
- attr('count', lines[k]),
- branchDetail = branchByLine[k];
-
- if (!branchDetail) {
- str += ' type="stmt" ';
- } else {
- str += ' type="cond" ' +
- attr('truecount', branchDetail.covered) +
- attr('falsecount', (branchDetail.total - branchDetail.covered));
- }
- writer.println(str + '/>');
- });
-
- writer.println('\t\t\t</file>');
-}
-
-function walk(node, collector, writer, level, projectRoot) {
- var metrics,
- totalFiles = 0,
- totalPackages = 0,
- totalLines = 0,
- tempLines = 0;
- if (level === 0) {
- metrics = node.metrics;
- writer.println('<?xml version="1.0" encoding="UTF-8"?>');
- writer.println('<coverage' +
- attr('generated', Date.now()) +
- 'clover="3.2.0">');
-
- writer.println('\t<project' +
- attr('timestamp', Date.now()) +
- attr('name', 'All Files') +
- '>');
-
- node.children.filter(function (child) { return child.kind === 'dir'; }).
- forEach(function (child) {
- totalPackages += 1;
- child.children.filter(function (child) { return child.kind !== 'dir'; }).
- forEach(function (child) {
- Object.keys(collector.fileCoverageFor(child.fullPath()).l).forEach(function (k){
- tempLines = k;
- });
- totalLines += Number(tempLines);
- totalFiles += 1;
- });
- });
-
- writer.println('\t\t<metrics' +
- attr('statements', metrics.lines.total) +
- attr('coveredstatements', metrics.lines.covered) +
- attr('conditionals', metrics.branches.total) +
- attr('coveredconditionals', metrics.branches.covered) +
- attr('methods', metrics.functions.total) +
- attr('coveredmethods', metrics.functions.covered) +
- attr('elements', metrics.lines.total + metrics.branches.total + metrics.functions.total) +
- attr('coveredelements', metrics.lines.covered + metrics.branches.covered + metrics.functions.covered) +
- attr('complexity', 0) +
- attr('packages', totalPackages) +
- attr('files', totalFiles) +
- attr('classes', totalFiles) +
- attr('loc', totalLines) +
- attr('ncloc', totalLines) +
- '/>');
- }
- if (node.packageMetrics) {
- metrics = node.packageMetrics;
- writer.println('\t\t<package' +
- attr('name', asJavaPackage(node)) +
- '>');
-
- writer.println('\t\t\t<metrics' +
- attr('statements', metrics.lines.total) +
- attr('coveredstatements', metrics.lines.covered) +
- attr('conditionals', metrics.branches.total) +
- attr('coveredconditionals', metrics.branches.covered) +
- attr('methods', metrics.functions.total) +
- attr('coveredmethods', metrics.functions.covered) +
- '/>');
-
- node.children.filter(function (child) { return child.kind !== 'dir'; }).
- forEach(function (child) {
- addClassStats(child, collector.fileCoverageFor(child.fullPath()), writer);
- });
- writer.println('\t\t</package>');
- }
- node.children.filter(function (child) { return child.kind === 'dir'; }).
- forEach(function (child) {
- walk(child, collector, writer, level + 1, projectRoot);
- });
-
- if (level === 0) {
- writer.println('\t</project>');
- writer.println('</coverage>');
- }
-}
-
-Report.mix(CloverReport, {
- synopsis: function () {
- return 'XML coverage report that can be consumed by the clover tool';
- },
- getDefaultConfig: function () {
- return { file: 'clover.xml' };
- },
- writeReport: function (collector, sync) {
- var summarizer = new TreeSummarizer(),
- outputFile = path.join(this.dir, this.file),
- writer = this.opts.writer || new FileWriter(sync),
- projectRoot = this.projectRoot,
- that = this,
- tree,
- root;
-
- collector.files().forEach(function (key) {
- summarizer.addFileCoverageSummary(key, utils.summarizeFileCoverage(collector.fileCoverageFor(key)));
- });
- tree = summarizer.getTreeSummary();
- root = tree.root;
- writer.on('done', function () { that.emit('done'); });
- writer.writeFile(outputFile, function (contentWriter) {
- walk(root, collector, contentWriter, 0, projectRoot);
- writer.done();
- });
- }
-});
-
-module.exports = CloverReport;
diff --git a/node_modules/istanbul/lib/report/cobertura.js b/node_modules/istanbul/lib/report/cobertura.js
deleted file mode 100644
index d63456c95..000000000
--- a/node_modules/istanbul/lib/report/cobertura.js
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var path = require('path'),
- util = require('util'),
- Report = require('./index'),
- FileWriter = require('../util/file-writer'),
- TreeSummarizer = require('../util/tree-summarizer'),
- utils = require('../object-utils');
-
-/**
- * a `Report` implementation that produces a cobertura-style XML file that conforms to the
- * http://cobertura.sourceforge.net/xml/coverage-04.dtd DTD.
- *
- * Usage
- * -----
- *
- * var report = require('istanbul').Report.create('cobertura');
- *
- * @class CoberturaReport
- * @module report
- * @extends Report
- * @constructor
- * @param {Object} opts optional
- * @param {String} [opts.dir] the directory in which to the cobertura-coverage.xml will be written
- */
-function CoberturaReport(opts) {
- Report.call(this);
- opts = opts || {};
- this.projectRoot = process.cwd();
- this.dir = opts.dir || this.projectRoot;
- this.file = opts.file || this.getDefaultConfig().file;
- this.opts = opts;
-}
-
-CoberturaReport.TYPE = 'cobertura';
-util.inherits(CoberturaReport, Report);
-
-function asJavaPackage(node) {
- return node.displayShortName().
- replace(/\//g, '.').
- replace(/\\/g, '.').
- replace(/\.$/, '');
-}
-
-function asClassName(node) {
- /*jslint regexp: true */
- return node.fullPath().replace(/.*[\\\/]/, '');
-}
-
-function quote(thing) {
- return '"' + thing + '"';
-}
-
-function attr(n, v) {
- return ' ' + n + '=' + quote(v) + ' ';
-}
-
-function branchCoverageByLine(fileCoverage) {
- var branchMap = fileCoverage.branchMap,
- branches = fileCoverage.b,
- ret = {};
- Object.keys(branchMap).forEach(function (k) {
- var line = branchMap[k].line,
- branchData = branches[k];
- ret[line] = ret[line] || [];
- ret[line].push.apply(ret[line], branchData);
- });
- Object.keys(ret).forEach(function (k) {
- var dataArray = ret[k],
- covered = dataArray.filter(function (item) { return item > 0; }),
- coverage = covered.length / dataArray.length * 100;
- ret[k] = { covered: covered.length, total: dataArray.length, coverage: coverage };
- });
- return ret;
-}
-
-function addClassStats(node, fileCoverage, writer, projectRoot) {
- fileCoverage = utils.incrementIgnoredTotals(fileCoverage);
-
- var metrics = node.metrics,
- branchByLine = branchCoverageByLine(fileCoverage),
- fnMap,
- lines;
-
- writer.println('\t\t<class' +
- attr('name', asClassName(node)) +
- attr('filename', path.relative(projectRoot, node.fullPath())) +
- attr('line-rate', metrics.lines.pct / 100.0) +
- attr('branch-rate', metrics.branches.pct / 100.0) +
- '>');
-
- writer.println('\t\t<methods>');
- fnMap = fileCoverage.fnMap;
- Object.keys(fnMap).forEach(function (k) {
- var name = fnMap[k].name,
- hits = fileCoverage.f[k];
-
- writer.println(
- '\t\t\t<method' +
- attr('name', name) +
- attr('hits', hits) +
- attr('signature', '()V') + //fake out a no-args void return
- '>'
- );
-
- //Add the function definition line and hits so that jenkins cobertura plugin records method hits
- writer.println(
- '\t\t\t\t<lines>' +
- '<line' +
- attr('number', fnMap[k].line) +
- attr('hits', fileCoverage.f[k]) +
- '/>' +
- '</lines>'
- );
-
- writer.println('\t\t\t</method>');
-
- });
- writer.println('\t\t</methods>');
-
- writer.println('\t\t<lines>');
- lines = fileCoverage.l;
- Object.keys(lines).forEach(function (k) {
- var str = '\t\t\t<line' +
- attr('number', k) +
- attr('hits', lines[k]),
- branchDetail = branchByLine[k];
-
- if (!branchDetail) {
- str += attr('branch', false);
- } else {
- str += attr('branch', true) +
- attr('condition-coverage', branchDetail.coverage +
- '% (' + branchDetail.covered + '/' + branchDetail.total + ')');
- }
- writer.println(str + '/>');
- });
- writer.println('\t\t</lines>');
-
- writer.println('\t\t</class>');
-}
-
-function walk(node, collector, writer, level, projectRoot) {
- var metrics;
- if (level === 0) {
- metrics = node.metrics;
- writer.println('<?xml version="1.0" ?>');
- writer.println('<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">');
- writer.println('<coverage' +
- attr('lines-valid', metrics.lines.total) +
- attr('lines-covered', metrics.lines.covered) +
- attr('line-rate', metrics.lines.pct / 100.0) +
- attr('branches-valid', metrics.branches.total) +
- attr('branches-covered', metrics.branches.covered) +
- attr('branch-rate', metrics.branches.pct / 100.0) +
- attr('timestamp', Date.now()) +
- 'complexity="0" version="0.1">');
- writer.println('<sources>');
- writer.println('\t<source>' + projectRoot + '</source>');
- writer.println('</sources>');
- writer.println('<packages>');
- }
- if (node.packageMetrics) {
- metrics = node.packageMetrics;
- writer.println('\t<package' +
- attr('name', asJavaPackage(node)) +
- attr('line-rate', metrics.lines.pct / 100.0) +
- attr('branch-rate', metrics.branches.pct / 100.0) +
- '>');
- writer.println('\t<classes>');
- node.children.filter(function (child) { return child.kind !== 'dir'; }).
- forEach(function (child) {
- addClassStats(child, collector.fileCoverageFor(child.fullPath()), writer, projectRoot);
- });
- writer.println('\t</classes>');
- writer.println('\t</package>');
- }
- node.children.filter(function (child) { return child.kind === 'dir'; }).
- forEach(function (child) {
- walk(child, collector, writer, level + 1, projectRoot);
- });
-
- if (level === 0) {
- writer.println('</packages>');
- writer.println('</coverage>');
- }
-}
-
-Report.mix(CoberturaReport, {
- synopsis: function () {
- return 'XML coverage report that can be consumed by the cobertura tool';
- },
- getDefaultConfig: function () {
- return { file: 'cobertura-coverage.xml' };
- },
- writeReport: function (collector, sync) {
- var summarizer = new TreeSummarizer(),
- outputFile = path.join(this.dir, this.file),
- writer = this.opts.writer || new FileWriter(sync),
- projectRoot = this.projectRoot,
- that = this,
- tree,
- root;
-
- collector.files().forEach(function (key) {
- summarizer.addFileCoverageSummary(key, utils.summarizeFileCoverage(collector.fileCoverageFor(key)));
- });
- tree = summarizer.getTreeSummary();
- root = tree.root;
- writer.on('done', function () { that.emit('done'); });
- writer.writeFile(outputFile, function (contentWriter) {
- walk(root, collector, contentWriter, 0, projectRoot);
- writer.done();
- });
- }
-});
-
-module.exports = CoberturaReport;
diff --git a/node_modules/istanbul/lib/report/common/defaults.js b/node_modules/istanbul/lib/report/common/defaults.js
deleted file mode 100644
index a9851c32f..000000000
--- a/node_modules/istanbul/lib/report/common/defaults.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- Copyright (c) 2013, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var Report = require('../index');
-var supportsColor = require('supports-color');
-
-module.exports = {
- watermarks: function () {
- return {
- statements: [ 50, 80 ],
- lines: [ 50, 80 ],
- functions: [ 50, 80],
- branches: [ 50, 80 ]
- };
- },
-
- classFor: function (type, metrics, watermarks) {
- var mark = watermarks[type],
- value = metrics[type].pct;
- return value >= mark[1] ? 'high' : value >= mark[0] ? 'medium' : 'low';
- },
-
- colorize: function (str, clazz) {
- /* istanbul ignore if: untestable in batch mode */
- var colors = {
- low: '31;1',
- medium: '33;1',
- high: '32;1'
- };
-
- if (supportsColor && colors[clazz]) {
- return '\u001b[' + colors[clazz] + 'm' + str + '\u001b[0m';
- }
- return str;
- },
-
- defaultReportConfig: function () {
- var cfg = {};
- Report.getReportList().forEach(function (type) {
- var rpt = Report.create(type),
- c = rpt.getDefaultConfig();
- if (c) {
- cfg[type] = c;
- }
- });
- return cfg;
- }
-};
-
diff --git a/node_modules/istanbul/lib/report/html.js b/node_modules/istanbul/lib/report/html.js
deleted file mode 100644
index 1dab26d56..000000000
--- a/node_modules/istanbul/lib/report/html.js
+++ /dev/null
@@ -1,572 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-/*jshint maxlen: 300 */
-var handlebars = require('handlebars').create(),
- defaults = require('./common/defaults'),
- path = require('path'),
- fs = require('fs'),
- util = require('util'),
- FileWriter = require('../util/file-writer'),
- Report = require('./index'),
- Store = require('../store'),
- InsertionText = require('../util/insertion-text'),
- TreeSummarizer = require('../util/tree-summarizer'),
- utils = require('../object-utils'),
- templateFor = function (name) { return handlebars.compile(fs.readFileSync(path.resolve(__dirname, 'templates', name + '.txt'), 'utf8')); },
- headerTemplate = templateFor('head'),
- footerTemplate = templateFor('foot'),
- detailTemplate = handlebars.compile([
- '<tr>',
- '<td class="line-count quiet">{{#show_lines}}{{maxLines}}{{/show_lines}}</td>',
- '<td class="line-coverage quiet">{{#show_line_execution_counts fileCoverage}}{{maxLines}}{{/show_line_execution_counts}}</td>',
- '<td class="text"><pre class="prettyprint lang-js">{{#show_code structured}}{{/show_code}}</pre></td>',
- '</tr>\n'
- ].join('')),
- summaryTableHeader = [
- '<div class="pad1">',
- '<table class="coverage-summary">',
- '<thead>',
- '<tr>',
- ' <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>',
- ' <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>',
- ' <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>',
- ' <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>',
- ' <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>',
- ' <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>',
- ' <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>',
- ' <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>',
- ' <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>',
- ' <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>',
- '</tr>',
- '</thead>',
- '<tbody>'
- ].join('\n'),
- summaryLineTemplate = handlebars.compile([
- '<tr>',
- '<td class="file {{reportClasses.statements}}" data-value="{{file}}"><a href="{{output}}">{{file}}</a></td>',
- '<td data-value="{{metrics.statements.pct}}" class="pic {{reportClasses.statements}}"><div class="chart">{{#show_picture}}{{metrics.statements.pct}}{{/show_picture}}</div></td>',
- '<td data-value="{{metrics.statements.pct}}" class="pct {{reportClasses.statements}}">{{metrics.statements.pct}}%</td>',
- '<td data-value="{{metrics.statements.total}}" class="abs {{reportClasses.statements}}">{{metrics.statements.covered}}/{{metrics.statements.total}}</td>',
- '<td data-value="{{metrics.branches.pct}}" class="pct {{reportClasses.branches}}">{{metrics.branches.pct}}%</td>',
- '<td data-value="{{metrics.branches.total}}" class="abs {{reportClasses.branches}}">{{metrics.branches.covered}}/{{metrics.branches.total}}</td>',
- '<td data-value="{{metrics.functions.pct}}" class="pct {{reportClasses.functions}}">{{metrics.functions.pct}}%</td>',
- '<td data-value="{{metrics.functions.total}}" class="abs {{reportClasses.functions}}">{{metrics.functions.covered}}/{{metrics.functions.total}}</td>',
- '<td data-value="{{metrics.lines.pct}}" class="pct {{reportClasses.lines}}">{{metrics.lines.pct}}%</td>',
- '<td data-value="{{metrics.lines.total}}" class="abs {{reportClasses.lines}}">{{metrics.lines.covered}}/{{metrics.lines.total}}</td>',
- '</tr>\n'
- ].join('\n\t')),
- summaryTableFooter = [
- '</tbody>',
- '</table>',
- '</div>'
- ].join('\n'),
- lt = '\u0001',
- gt = '\u0002',
- RE_LT = /</g,
- RE_GT = />/g,
- RE_AMP = /&/g,
- RE_lt = /\u0001/g,
- RE_gt = /\u0002/g;
-
-handlebars.registerHelper('show_picture', function (opts) {
- var num = Number(opts.fn(this)),
- rest,
- cls = '';
- if (isFinite(num)) {
- if (num === 100) {
- cls = ' cover-full';
- }
- num = Math.floor(num);
- rest = 100 - num;
- return '<div class="cover-fill' + cls + '" style="width: ' + num + '%;"></div>' +
- '<div class="cover-empty" style="width:' + rest + '%;"></div>';
- } else {
- return '';
- }
-});
-
-handlebars.registerHelper('if_has_ignores', function (metrics, opts) {
- return (metrics.statements.skipped +
- metrics.functions.skipped +
- metrics.branches.skipped) === 0 ? '' : opts.fn(this);
-});
-
-handlebars.registerHelper('show_ignores', function (metrics) {
- var statements = metrics.statements.skipped,
- functions = metrics.functions.skipped,
- branches = metrics.branches.skipped,
- result;
-
- if (statements === 0 && functions === 0 && branches === 0) {
- return '<span class="ignore-none">none</span>';
- }
-
- result = [];
- if (statements >0) { result.push(statements === 1 ? '1 statement': statements + ' statements'); }
- if (functions >0) { result.push(functions === 1 ? '1 function' : functions + ' functions'); }
- if (branches >0) { result.push(branches === 1 ? '1 branch' : branches + ' branches'); }
-
- return result.join(', ');
-});
-
-handlebars.registerHelper('show_lines', function (opts) {
- var maxLines = Number(opts.fn(this)),
- i,
- array = [];
-
- for (i = 0; i < maxLines; i += 1) {
- array[i] = i + 1;
- }
- return array.join('\n');
-});
-
-handlebars.registerHelper('show_line_execution_counts', function (context, opts) {
- var lines = context.l,
- maxLines = Number(opts.fn(this)),
- i,
- lineNumber,
- array = [],
- covered,
- value = '';
-
- for (i = 0; i < maxLines; i += 1) {
- lineNumber = i + 1;
- value = '&nbsp;';
- covered = 'neutral';
- if (lines.hasOwnProperty(lineNumber)) {
- if (lines[lineNumber] > 0) {
- covered = 'yes';
- value = lines[lineNumber] + '×';
- } else {
- covered = 'no';
- }
- }
- array.push('<span class="cline-any cline-' + covered + '">' + value + '</span>');
- }
- return array.join('\n');
-});
-
-function customEscape(text) {
- text = text.toString();
- return text.replace(RE_AMP, '&amp;')
- .replace(RE_LT, '&lt;')
- .replace(RE_GT, '&gt;')
- .replace(RE_lt, '<')
- .replace(RE_gt, '>');
-}
-
-handlebars.registerHelper('show_code', function (context /*, opts */) {
- var array = [];
-
- context.forEach(function (item) {
- array.push(customEscape(item.text) || '&nbsp;');
- });
- return array.join('\n');
-});
-
-function title(str) {
- return ' title="' + str + '" ';
-}
-
-function annotateLines(fileCoverage, structuredText) {
- var lineStats = fileCoverage.l;
- if (!lineStats) { return; }
- Object.keys(lineStats).forEach(function (lineNumber) {
- var count = lineStats[lineNumber];
- if (structuredText[lineNumber]) {
- structuredText[lineNumber].covered = count > 0 ? 'yes' : 'no';
- }
- });
- structuredText.forEach(function (item) {
- if (item.covered === null) {
- item.covered = 'neutral';
- }
- });
-}
-
-function annotateStatements(fileCoverage, structuredText) {
- var statementStats = fileCoverage.s,
- statementMeta = fileCoverage.statementMap;
- Object.keys(statementStats).forEach(function (stName) {
- var count = statementStats[stName],
- meta = statementMeta[stName],
- type = count > 0 ? 'yes' : 'no',
- startCol = meta.start.column,
- endCol = meta.end.column + 1,
- startLine = meta.start.line,
- endLine = meta.end.line,
- openSpan = lt + 'span class="' + (meta.skip ? 'cstat-skip' : 'cstat-no') + '"' + title('statement not covered') + gt,
- closeSpan = lt + '/span' + gt,
- text;
-
- if (type === 'no') {
- if (endLine !== startLine) {
- endLine = startLine;
- endCol = structuredText[startLine].text.originalLength();
- }
- text = structuredText[startLine].text;
- text.wrap(startCol,
- openSpan,
- startLine === endLine ? endCol : text.originalLength(),
- closeSpan);
- }
- });
-}
-
-function annotateFunctions(fileCoverage, structuredText) {
-
- var fnStats = fileCoverage.f,
- fnMeta = fileCoverage.fnMap;
- if (!fnStats) { return; }
- Object.keys(fnStats).forEach(function (fName) {
- var count = fnStats[fName],
- meta = fnMeta[fName],
- type = count > 0 ? 'yes' : 'no',
- startCol = meta.loc.start.column,
- endCol = meta.loc.end.column + 1,
- startLine = meta.loc.start.line,
- endLine = meta.loc.end.line,
- openSpan = lt + 'span class="' + (meta.skip ? 'fstat-skip' : 'fstat-no') + '"' + title('function not covered') + gt,
- closeSpan = lt + '/span' + gt,
- text;
-
- if (type === 'no') {
- if (endLine !== startLine) {
- endLine = startLine;
- endCol = structuredText[startLine].text.originalLength();
- }
- text = structuredText[startLine].text;
- text.wrap(startCol,
- openSpan,
- startLine === endLine ? endCol : text.originalLength(),
- closeSpan);
- }
- });
-}
-
-function annotateBranches(fileCoverage, structuredText) {
- var branchStats = fileCoverage.b,
- branchMeta = fileCoverage.branchMap;
- if (!branchStats) { return; }
-
- Object.keys(branchStats).forEach(function (branchName) {
- var branchArray = branchStats[branchName],
- sumCount = branchArray.reduce(function (p, n) { return p + n; }, 0),
- metaArray = branchMeta[branchName].locations,
- i,
- count,
- meta,
- type,
- startCol,
- endCol,
- startLine,
- endLine,
- openSpan,
- closeSpan,
- text;
-
- if (sumCount > 0) { //only highlight if partial branches are missing
- for (i = 0; i < branchArray.length; i += 1) {
- count = branchArray[i];
- meta = metaArray[i];
- type = count > 0 ? 'yes' : 'no';
- startCol = meta.start.column;
- endCol = meta.end.column + 1;
- startLine = meta.start.line;
- endLine = meta.end.line;
- openSpan = lt + 'span class="branch-' + i + ' ' + (meta.skip ? 'cbranch-skip' : 'cbranch-no') + '"' + title('branch not covered') + gt;
- closeSpan = lt + '/span' + gt;
-
- if (count === 0) { //skip branches taken
- if (endLine !== startLine) {
- endLine = startLine;
- endCol = structuredText[startLine].text.originalLength();
- }
- text = structuredText[startLine].text;
- if (branchMeta[branchName].type === 'if') { // and 'if' is a special case since the else branch might not be visible, being non-existent
- text.insertAt(startCol, lt + 'span class="' + (meta.skip ? 'skip-if-branch' : 'missing-if-branch') + '"' +
- title((i === 0 ? 'if' : 'else') + ' path not taken') + gt +
- (i === 0 ? 'I' : 'E') + lt + '/span' + gt, true, false);
- } else {
- text.wrap(startCol,
- openSpan,
- startLine === endLine ? endCol : text.originalLength(),
- closeSpan);
- }
- }
- }
- }
- });
-}
-
-function getReportClass(stats, watermark) {
- var coveragePct = stats.pct,
- identity = 1;
- if (coveragePct * identity === coveragePct) {
- return coveragePct >= watermark[1] ? 'high' : coveragePct >= watermark[0] ? 'medium' : 'low';
- } else {
- return '';
- }
-}
-
-function cleanPath(name) {
- var SEP = path.sep || '/';
- return (SEP !== '/') ? name.split(SEP).join('/') : name;
-}
-
-function isEmptySourceStore(sourceStore) {
- if (!sourceStore) {
- return true;
- }
-
- var cache = sourceStore.sourceCache;
- return cache && !Object.keys(cache).length;
-}
-
-/**
- * a `Report` implementation that produces HTML coverage reports.
- *
- * Usage
- * -----
- *
- * var report = require('istanbul').Report.create('html');
- *
- *
- * @class HtmlReport
- * @extends Report
- * @module report
- * @constructor
- * @param {Object} opts optional
- * @param {String} [opts.dir] the directory in which to generate reports. Defaults to `./html-report`
- */
-function HtmlReport(opts) {
- Report.call(this);
- this.opts = opts || {};
- this.opts.dir = this.opts.dir || path.resolve(process.cwd(), 'html-report');
- this.opts.sourceStore = isEmptySourceStore(this.opts.sourceStore) ?
- Store.create('fslookup') : this.opts.sourceStore;
- this.opts.linkMapper = this.opts.linkMapper || this.standardLinkMapper();
- this.opts.writer = this.opts.writer || null;
- this.opts.templateData = { datetime: Date() };
- this.opts.watermarks = this.opts.watermarks || defaults.watermarks();
-}
-
-HtmlReport.TYPE = 'html';
-util.inherits(HtmlReport, Report);
-
-Report.mix(HtmlReport, {
-
- synopsis: function () {
- return 'Navigable HTML coverage report for every file and directory';
- },
-
- getPathHtml: function (node, linkMapper) {
- var parent = node.parent,
- nodePath = [],
- linkPath = [],
- i;
-
- while (parent) {
- nodePath.push(parent);
- parent = parent.parent;
- }
-
- for (i = 0; i < nodePath.length; i += 1) {
- linkPath.push('<a href="' + linkMapper.ancestor(node, i + 1) + '">' +
- (cleanPath(nodePath[i].relativeName) || 'all files') + '</a>');
- }
- linkPath.reverse();
- return linkPath.length > 0 ? linkPath.join(' / ') + ' ' +
- cleanPath(node.displayShortName()) : '/';
- },
-
- fillTemplate: function (node, templateData) {
- var opts = this.opts,
- linkMapper = opts.linkMapper;
-
- templateData.entity = node.name || 'All files';
- templateData.metrics = node.metrics;
- templateData.reportClass = getReportClass(node.metrics.statements, opts.watermarks.statements);
- templateData.pathHtml = this.getPathHtml(node, linkMapper);
- templateData.base = {
- css: linkMapper.asset(node, 'base.css')
- };
- templateData.sorter = {
- js: linkMapper.asset(node, 'sorter.js'),
- image: linkMapper.asset(node, 'sort-arrow-sprite.png')
- };
- templateData.prettify = {
- js: linkMapper.asset(node, 'prettify.js'),
- css: linkMapper.asset(node, 'prettify.css')
- };
- },
- writeDetailPage: function (writer, node, fileCoverage) {
- var opts = this.opts,
- sourceStore = opts.sourceStore,
- templateData = opts.templateData,
- sourceText = fileCoverage.code && Array.isArray(fileCoverage.code) ?
- fileCoverage.code.join('\n') + '\n' : sourceStore.get(fileCoverage.path),
- code = sourceText.split(/(?:\r?\n)|\r/),
- count = 0,
- structured = code.map(function (str) { count += 1; return { line: count, covered: null, text: new InsertionText(str, true) }; }),
- context;
-
- structured.unshift({ line: 0, covered: null, text: new InsertionText("") });
-
- this.fillTemplate(node, templateData);
- writer.write(headerTemplate(templateData));
- writer.write('<pre><table class="coverage">\n');
-
- annotateLines(fileCoverage, structured);
- //note: order is important, since statements typically result in spanning the whole line and doing branches late
- //causes mismatched tags
- annotateBranches(fileCoverage, structured);
- annotateFunctions(fileCoverage, structured);
- annotateStatements(fileCoverage, structured);
-
- structured.shift();
- context = {
- structured: structured,
- maxLines: structured.length,
- fileCoverage: fileCoverage
- };
- writer.write(detailTemplate(context));
- writer.write('</table></pre>\n');
- writer.write(footerTemplate(templateData));
- },
-
- writeIndexPage: function (writer, node) {
- var linkMapper = this.opts.linkMapper,
- templateData = this.opts.templateData,
- children = Array.prototype.slice.apply(node.children),
- watermarks = this.opts.watermarks;
-
- children.sort(function (a, b) {
- return a.name < b.name ? -1 : 1;
- });
-
- this.fillTemplate(node, templateData);
- writer.write(headerTemplate(templateData));
- writer.write(summaryTableHeader);
- children.forEach(function (child) {
- var metrics = child.metrics,
- reportClasses = {
- statements: getReportClass(metrics.statements, watermarks.statements),
- lines: getReportClass(metrics.lines, watermarks.lines),
- functions: getReportClass(metrics.functions, watermarks.functions),
- branches: getReportClass(metrics.branches, watermarks.branches)
- },
- data = {
- metrics: metrics,
- reportClasses: reportClasses,
- file: cleanPath(child.displayShortName()),
- output: linkMapper.fromParent(child)
- };
- writer.write(summaryLineTemplate(data) + '\n');
- });
- writer.write(summaryTableFooter);
- writer.write(footerTemplate(templateData));
- },
-
- writeFiles: function (writer, node, dir, collector) {
- var that = this,
- indexFile = path.resolve(dir, 'index.html'),
- childFile;
- if (this.opts.verbose) { console.error('Writing ' + indexFile); }
- writer.writeFile(indexFile, function (contentWriter) {
- that.writeIndexPage(contentWriter, node);
- });
- node.children.forEach(function (child) {
- if (child.kind === 'dir') {
- that.writeFiles(writer, child, path.resolve(dir, child.relativeName), collector);
- } else {
- childFile = path.resolve(dir, child.relativeName + '.html');
- if (that.opts.verbose) { console.error('Writing ' + childFile); }
- writer.writeFile(childFile, function (contentWriter) {
- that.writeDetailPage(contentWriter, child, collector.fileCoverageFor(child.fullPath()));
- });
- }
- });
- },
-
- standardLinkMapper: function () {
- return {
- fromParent: function (node) {
- var relativeName = cleanPath(node.relativeName);
-
- return node.kind === 'dir' ? relativeName + 'index.html' : relativeName + '.html';
- },
- ancestorHref: function (node, num) {
- var href = '',
- notDot = function(part) {
- return part !== '.';
- },
- separated,
- levels,
- i,
- j;
-
- for (i = 0; i < num; i += 1) {
- separated = cleanPath(node.relativeName).split('/').filter(notDot);
- levels = separated.length - 1;
- for (j = 0; j < levels; j += 1) {
- href += '../';
- }
- node = node.parent;
- }
- return href;
- },
- ancestor: function (node, num) {
- return this.ancestorHref(node, num) + 'index.html';
- },
- asset: function (node, name) {
- var i = 0,
- parent = node.parent;
- while (parent) { i += 1; parent = parent.parent; }
- return this.ancestorHref(node, i) + name;
- }
- };
- },
-
- writeReport: function (collector, sync) {
- var opts = this.opts,
- dir = opts.dir,
- summarizer = new TreeSummarizer(),
- writer = opts.writer || new FileWriter(sync),
- that = this,
- tree,
- copyAssets = function (subdir) {
- var srcDir = path.resolve(__dirname, '..', 'assets', subdir);
- fs.readdirSync(srcDir).forEach(function (f) {
- var resolvedSource = path.resolve(srcDir, f),
- resolvedDestination = path.resolve(dir, f),
- stat = fs.statSync(resolvedSource);
-
- if (stat.isFile()) {
- if (opts.verbose) {
- console.log('Write asset: ' + resolvedDestination);
- }
- writer.copyFile(resolvedSource, resolvedDestination);
- }
- });
- };
-
- collector.files().forEach(function (key) {
- summarizer.addFileCoverageSummary(key, utils.summarizeFileCoverage(collector.fileCoverageFor(key)));
- });
- tree = summarizer.getTreeSummary();
- [ '.', 'vendor'].forEach(function (subdir) {
- copyAssets(subdir);
- });
- writer.on('done', function () { that.emit('done'); });
- //console.log(JSON.stringify(tree.root, undefined, 4));
- this.writeFiles(writer, tree.root, dir, collector);
- writer.done();
- }
-});
-
-module.exports = HtmlReport;
-
diff --git a/node_modules/istanbul/lib/report/index.js b/node_modules/istanbul/lib/report/index.js
deleted file mode 100644
index 13e7effbe..000000000
--- a/node_modules/istanbul/lib/report/index.js
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var util = require('util'),
- EventEmitter = require('events').EventEmitter,
- Factory = require('../util/factory'),
- factory = new Factory('report', __dirname, false);
-/**
- * An abstraction for producing coverage reports.
- * This class is both the base class as well as a factory for `Report` implementations.
- * All reports are event emitters and are expected to emit a `done` event when
- * the report writing is complete.
- *
- * See also the `Reporter` class for easily producing multiple coverage reports
- * with a single call.
- *
- * Usage
- * -----
- *
- * var Report = require('istanbul').Report,
- * report = Report.create('html'),
- * collector = new require('istanbul').Collector;
- *
- * collector.add(coverageObject);
- * report.on('done', function () { console.log('done'); });
- * report.writeReport(collector);
- *
- * @class Report
- * @module report
- * @main report
- * @constructor
- * @protected
- * @param {Object} options Optional. The options supported by a specific store implementation.
- */
-function Report(/* options */) {
- EventEmitter.call(this);
-}
-
-util.inherits(Report, EventEmitter);
-
-//add register, create, mix, loadAll, getReportList as class methods
-factory.bindClassMethods(Report);
-
-/**
- * registers a new report implementation.
- * @method register
- * @static
- * @param {Function} constructor the constructor function for the report. This function must have a
- * `TYPE` property of type String, that will be used in `Report.create()`
- */
-/**
- * returns a report implementation of the specified type.
- * @method create
- * @static
- * @param {String} type the type of report to create
- * @param {Object} opts Optional. Options specific to the report implementation
- * @return {Report} a new store of the specified type
- */
-/**
- * returns the list of available reports as an array of strings
- * @method getReportList
- * @static
- * @return an array of supported report formats
- */
-
-var proto = {
- /**
- * returns a one-line summary of the report
- * @method synopsis
- * @return {String} a description of what the report is about
- */
- synopsis: function () {
- throw new Error('synopsis must be overridden');
- },
- /**
- * returns a config object that has override-able keys settable via config
- * @method getDefaultConfig
- * @return {Object|null} an object representing keys that can be overridden via
- * the istanbul configuration where the values are the defaults used when
- * not specified. A null return implies no config attributes
- */
- getDefaultConfig: function () {
- return null;
- },
- /**
- * writes the report for a set of coverage objects added to a collector.
- * @method writeReport
- * @param {Collector} collector the collector for getting the set of files and coverage
- * @param {Boolean} sync true if reports must be written synchronously, false if they can be written using asynchronous means (e.g. stream.write)
- */
- writeReport: function (/* collector, sync */) {
- throw new Error('writeReport: must be overridden');
- }
-};
-
-Object.keys(proto).forEach(function (k) {
- Report.prototype[k] = proto[k];
-});
-
-module.exports = Report;
-
-
diff --git a/node_modules/istanbul/lib/report/json-summary.js b/node_modules/istanbul/lib/report/json-summary.js
deleted file mode 100644
index 6ab7caae9..000000000
--- a/node_modules/istanbul/lib/report/json-summary.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var path = require('path'),
- objectUtils = require('../object-utils'),
- Writer = require('../util/file-writer'),
- util = require('util'),
- Report = require('./index');
-/**
- * a `Report` implementation that produces a coverage JSON object with summary info only.
- *
- * Usage
- * -----
- *
- * var report = require('istanbul').Report.create('json-summary');
- *
- *
- * @class JsonSummaryReport
- * @extends Report
- * @module report
- * @constructor
- * @param {Object} opts optional
- * @param {String} [opts.dir] the directory in which to write the `coverage-summary.json` file. Defaults to `process.cwd()`
- */
-function JsonSummaryReport(opts) {
- this.opts = opts || {};
- this.opts.dir = this.opts.dir || process.cwd();
- this.opts.file = this.opts.file || this.getDefaultConfig().file;
- this.opts.writer = this.opts.writer || null;
-}
-JsonSummaryReport.TYPE = 'json-summary';
-util.inherits(JsonSummaryReport, Report);
-
-Report.mix(JsonSummaryReport, {
- synopsis: function () {
- return 'prints a summary coverage object as JSON to a file';
- },
- getDefaultConfig: function () {
- return {
- file: 'coverage-summary.json'
- };
- },
- writeReport: function (collector, sync) {
- var outputFile = path.resolve(this.opts.dir, this.opts.file),
- writer = this.opts.writer || new Writer(sync),
- that = this;
-
- var summaries = [],
- finalSummary;
- collector.files().forEach(function (file) {
- summaries.push(objectUtils.summarizeFileCoverage(collector.fileCoverageFor(file)));
- });
- finalSummary = objectUtils.mergeSummaryObjects.apply(null, summaries);
-
- writer.on('done', function () { that.emit('done'); });
- writer.writeFile(outputFile, function (contentWriter) {
- contentWriter.println("{");
- contentWriter.write('"total":');
- contentWriter.write(JSON.stringify(finalSummary));
-
- collector.files().forEach(function (key) {
- contentWriter.println(",");
- contentWriter.write(JSON.stringify(key));
- contentWriter.write(":");
- contentWriter.write(JSON.stringify(objectUtils.summarizeFileCoverage(collector.fileCoverageFor(key))));
- });
- contentWriter.println("}");
- });
- writer.done();
- }
-});
-
-module.exports = JsonSummaryReport;
diff --git a/node_modules/istanbul/lib/report/json.js b/node_modules/istanbul/lib/report/json.js
deleted file mode 100644
index 2def51ac0..000000000
--- a/node_modules/istanbul/lib/report/json.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var path = require('path'),
- Writer = require('../util/file-writer'),
- util = require('util'),
- Report = require('./index');
-/**
- * a `Report` implementation that produces a coverage JSON object.
- *
- * Usage
- * -----
- *
- * var report = require('istanbul').Report.create('json');
- *
- *
- * @class JsonReport
- * @extends Report
- * @module report
- * @constructor
- * @param {Object} opts optional
- * @param {String} [opts.dir] the directory in which to write the `coverage-final.json` file. Defaults to `process.cwd()`
- */
-function JsonReport(opts) {
- this.opts = opts || {};
- this.opts.dir = this.opts.dir || process.cwd();
- this.opts.file = this.opts.file || this.getDefaultConfig().file;
- this.opts.writer = this.opts.writer || null;
-}
-JsonReport.TYPE = 'json';
-util.inherits(JsonReport, Report);
-
-Report.mix(JsonReport, {
- synopsis: function () {
- return 'prints the coverage object as JSON to a file';
- },
- getDefaultConfig: function () {
- return {
- file: 'coverage-final.json'
- };
- },
- writeReport: function (collector, sync) {
- var outputFile = path.resolve(this.opts.dir, this.opts.file),
- writer = this.opts.writer || new Writer(sync),
- that = this;
-
- writer.on('done', function () { that.emit('done'); });
- writer.writeFile(outputFile, function (contentWriter) {
- var first = true;
- contentWriter.println("{");
- collector.files().forEach(function (key) {
- if (first) {
- first = false;
- } else {
- contentWriter.println(",");
- }
- contentWriter.write(JSON.stringify(key));
- contentWriter.write(":");
- contentWriter.write(JSON.stringify(collector.fileCoverageFor(key)));
- });
- contentWriter.println("}");
- });
- writer.done();
- }
-});
-
-module.exports = JsonReport;
diff --git a/node_modules/istanbul/lib/report/lcov.js b/node_modules/istanbul/lib/report/lcov.js
deleted file mode 100644
index 87e01eaab..000000000
--- a/node_modules/istanbul/lib/report/lcov.js
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var path = require('path'),
- util = require('util'),
- mkdirp = require('mkdirp'),
- Report = require('./index'),
- LcovOnlyReport = require('./lcovonly'),
- HtmlReport = require('./html');
-
-/**
- * a `Report` implementation that produces an LCOV coverage file and an associated HTML report from coverage objects.
- * The name and behavior of this report is designed to ease migration for projects that currently use `yuitest_coverage`
- *
- * Usage
- * -----
- *
- * var report = require('istanbul').Report.create('lcov');
- *
- *
- * @class LcovReport
- * @extends Report
- * @module report
- * @constructor
- * @param {Object} opts optional
- * @param {String} [opts.dir] the directory in which to the `lcov.info` file.
- * HTML files are written in a subdirectory called `lcov-report`. Defaults to `process.cwd()`
- */
-function LcovReport(opts) {
- Report.call(this);
- opts = opts || {};
- var baseDir = path.resolve(opts.dir || process.cwd()),
- htmlDir = path.resolve(baseDir, 'lcov-report');
-
- mkdirp.sync(baseDir);
- this.lcov = new LcovOnlyReport({ dir: baseDir, watermarks: opts.watermarks });
- this.html = new HtmlReport({ dir: htmlDir, watermarks: opts.watermarks, sourceStore: opts.sourceStore});
-}
-
-LcovReport.TYPE = 'lcov';
-util.inherits(LcovReport, Report);
-
-Report.mix(LcovReport, {
- synopsis: function () {
- return 'combined lcovonly and html report that generates an lcov.info file as well as HTML';
- },
- writeReport: function (collector, sync) {
- var handler = this.handleDone.bind(this);
- this.inProgress = 2;
- this.lcov.on('done', handler);
- this.html.on('done', handler);
- this.lcov.writeReport(collector, sync);
- this.html.writeReport(collector, sync);
- },
- handleDone: function () {
- this.inProgress -= 1;
- if (this.inProgress === 0) {
- this.emit('done');
- }
- }
-});
-
-module.exports = LcovReport;
diff --git a/node_modules/istanbul/lib/report/lcovonly.js b/node_modules/istanbul/lib/report/lcovonly.js
deleted file mode 100644
index 2c1be46d8..000000000
--- a/node_modules/istanbul/lib/report/lcovonly.js
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var path = require('path'),
- Writer = require('../util/file-writer'),
- util = require('util'),
- Report = require('./index'),
- utils = require('../object-utils');
-/**
- * a `Report` implementation that produces an LCOV coverage file from coverage objects.
- *
- * Usage
- * -----
- *
- * var report = require('istanbul').Report.create('lcovonly');
- *
- *
- * @class LcovOnlyReport
- * @extends Report
- * @module report
- * @constructor
- * @param {Object} opts optional
- * @param {String} [opts.dir] the directory in which to the `lcov.info` file. Defaults to `process.cwd()`
- */
-function LcovOnlyReport(opts) {
- this.opts = opts || {};
- this.opts.dir = this.opts.dir || process.cwd();
- this.opts.file = this.opts.file || this.getDefaultConfig().file;
- this.opts.writer = this.opts.writer || null;
-}
-LcovOnlyReport.TYPE = 'lcovonly';
-util.inherits(LcovOnlyReport, Report);
-
-Report.mix(LcovOnlyReport, {
- synopsis: function () {
- return 'lcov coverage report that can be consumed by the lcov tool';
- },
- getDefaultConfig: function () {
- return { file: 'lcov.info' };
- },
- writeFileCoverage: function (writer, fc) {
- var functions = fc.f,
- functionMap = fc.fnMap,
- lines = fc.l,
- branches = fc.b,
- branchMap = fc.branchMap,
- summary = utils.summarizeFileCoverage(fc);
-
- writer.println('TN:'); //no test name
- writer.println('SF:' + fc.path);
-
- Object.keys(functions).forEach(function (key) {
- var meta = functionMap[key];
- writer.println('FN:' + [ meta.line, meta.name ].join(','));
- });
- writer.println('FNF:' + summary.functions.total);
- writer.println('FNH:' + summary.functions.covered);
-
- Object.keys(functions).forEach(function (key) {
- var stats = functions[key],
- meta = functionMap[key];
- writer.println('FNDA:' + [ stats, meta.name ].join(','));
- });
-
- Object.keys(lines).forEach(function (key) {
- var stat = lines[key];
- writer.println('DA:' + [ key, stat ].join(','));
- });
- writer.println('LF:' + summary.lines.total);
- writer.println('LH:' + summary.lines.covered);
-
- Object.keys(branches).forEach(function (key) {
- var branchArray = branches[key],
- meta = branchMap[key],
- line = meta.line,
- i = 0;
- branchArray.forEach(function (b) {
- writer.println('BRDA:' + [line, key, i, b].join(','));
- i += 1;
- });
- });
- writer.println('BRF:' + summary.branches.total);
- writer.println('BRH:' + summary.branches.covered);
- writer.println('end_of_record');
- },
-
- writeReport: function (collector, sync) {
- var outputFile = path.resolve(this.opts.dir, this.opts.file),
- writer = this.opts.writer || new Writer(sync),
- that = this;
- writer.on('done', function () { that.emit('done'); });
- writer.writeFile(outputFile, function (contentWriter) {
- collector.files().forEach(function (key) {
- that.writeFileCoverage(contentWriter, collector.fileCoverageFor(key));
- });
- });
- writer.done();
- }
-});
-
-module.exports = LcovOnlyReport;
diff --git a/node_modules/istanbul/lib/report/none.js b/node_modules/istanbul/lib/report/none.js
deleted file mode 100644
index 0fd5cfca6..000000000
--- a/node_modules/istanbul/lib/report/none.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var util = require('util'),
- Report = require('./index');
-
-/**
- * a `Report` implementation that does nothing. Use to specify that no reporting
- * is needed.
- *
- * Usage
- * -----
- *
- * var report = require('istanbul').Report.create('none');
- *
- *
- * @class NoneReport
- * @extends Report
- * @module report
- * @constructor
- */
-function NoneReport() {
- Report.call(this);
-}
-
-NoneReport.TYPE = 'none';
-util.inherits(NoneReport, Report);
-
-Report.mix(NoneReport, {
- synopsis: function () {
- return 'Does nothing. Useful to override default behavior and suppress reporting entirely';
- },
- writeReport: function (/* collector, sync */) {
- //noop
- this.emit('done');
- }
-});
-
-module.exports = NoneReport;
diff --git a/node_modules/istanbul/lib/report/teamcity.js b/node_modules/istanbul/lib/report/teamcity.js
deleted file mode 100644
index f6b90fc95..000000000
--- a/node_modules/istanbul/lib/report/teamcity.js
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var path = require('path'),
- util = require('util'),
- mkdirp = require('mkdirp'),
- fs = require('fs'),
- utils = require('../object-utils'),
- Report = require('./index');
-
-/**
- * a `Report` implementation that produces system messages interpretable by TeamCity.
- *
- * Usage
- * -----
- *
- * var report = require('istanbul').Report.create('teamcity');
- *
- * @class TeamcityReport
- * @extends Report
- * @module report
- * @constructor
- * @param {Object} opts optional
- * @param {String} [opts.dir] the directory in which to the text coverage report will be written, when writing to a file
- * @param {String} [opts.file] the filename for the report. When omitted, the report is written to console
- */
-function TeamcityReport(opts) {
- Report.call(this);
- opts = opts || {};
- this.dir = opts.dir || process.cwd();
- this.file = opts.file;
- this.blockName = opts.blockName || this.getDefaultConfig().blockName;
-}
-
-TeamcityReport.TYPE = 'teamcity';
-util.inherits(TeamcityReport, Report);
-
-function lineForKey(value, teamcityVar) {
- return '##teamcity[buildStatisticValue key=\'' + teamcityVar + '\' value=\'' + value + '\']';
-}
-
-Report.mix(TeamcityReport, {
- synopsis: function () {
- return 'report with system messages that can be interpreted with TeamCity';
- },
- getDefaultConfig: function () {
- return { file: null , blockName: 'Code Coverage Summary'};
- },
- writeReport: function (collector /*, sync */) {
- var summaries = [],
- finalSummary,
- lines = [],
- text;
-
- collector.files().forEach(function (file) {
- summaries.push(utils.summarizeFileCoverage(collector.fileCoverageFor(file)));
- });
-
- finalSummary = utils.mergeSummaryObjects.apply(null, summaries);
-
- lines.push('');
- lines.push('##teamcity[blockOpened name=\''+ this.blockName +'\']');
-
- //Statements Covered
- lines.push(lineForKey(finalSummary.statements.pct, 'CodeCoverageB'));
-
- //Methods Covered
- lines.push(lineForKey(finalSummary.functions.covered, 'CodeCoverageAbsMCovered'));
- lines.push(lineForKey(finalSummary.functions.total, 'CodeCoverageAbsMTotal'));
- lines.push(lineForKey(finalSummary.functions.pct, 'CodeCoverageM'));
-
- //Lines Covered
- lines.push(lineForKey(finalSummary.lines.covered, 'CodeCoverageAbsLCovered'));
- lines.push(lineForKey(finalSummary.lines.total, 'CodeCoverageAbsLTotal'));
- lines.push(lineForKey(finalSummary.lines.pct, 'CodeCoverageL'));
-
- lines.push('##teamcity[blockClosed name=\''+ this.blockName +'\']');
-
- text = lines.join('\n');
- if (this.file) {
- mkdirp.sync(this.dir);
- fs.writeFileSync(path.join(this.dir, this.file), text, 'utf8');
- } else {
- console.log(text);
- }
- this.emit('done');
- }
-});
-
-module.exports = TeamcityReport;
diff --git a/node_modules/istanbul/lib/report/templates/foot.txt b/node_modules/istanbul/lib/report/templates/foot.txt
deleted file mode 100644
index e853251dd..000000000
--- a/node_modules/istanbul/lib/report/templates/foot.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-<div class='push'></div><!-- for sticky footer -->
-</div><!-- /wrapper -->
-<div class='footer quiet pad2 space-top1 center small'>
- Code coverage
- generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at {{datetime}}
-</div>
-</div>
-{{#if prettify}}
-<script src="{{prettify.js}}"></script>
-<script>
-window.onload = function () {
- if (typeof prettyPrint === 'function') {
- prettyPrint();
- }
-};
-</script>
-{{/if}}
-<script src="{{sorter.js}}"></script>
-</body>
-</html>
diff --git a/node_modules/istanbul/lib/report/templates/head.txt b/node_modules/istanbul/lib/report/templates/head.txt
deleted file mode 100644
index f98094e5f..000000000
--- a/node_modules/istanbul/lib/report/templates/head.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
- <title>Code coverage report for {{entity}}</title>
- <meta charset="utf-8" />
-{{#if prettify}}
- <link rel="stylesheet" href="{{prettify.css}}" />
-{{/if}}
- <link rel="stylesheet" href="{{base.css}}" />
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url({{sorter.image}});
- }
- </style>
-</head>
-<body>
-<div class='wrapper'>
- <div class='pad1'>
- <h1>
- {{{pathHtml}}}
- </h1>
- <div class='clearfix'>
- {{#with metrics.statements}}
- <div class='fl pad1y space-right2'>
- <span class="strong">{{pct}}% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>{{covered}}/{{total}}</span>
- </div>
- {{/with}}
- {{#with metrics.branches}}
- <div class='fl pad1y space-right2'>
- <span class="strong">{{pct}}% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>{{covered}}/{{total}}</span>
- </div>
- {{/with}}
- {{#with metrics.functions}}
- <div class='fl pad1y space-right2'>
- <span class="strong">{{pct}}% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>{{covered}}/{{total}}</span>
- </div>
- {{/with}}
- {{#with metrics.lines}}
- <div class='fl pad1y space-right2'>
- <span class="strong">{{pct}}% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>{{covered}}/{{total}}</span>
- </div>
- {{/with}}
- {{#if_has_ignores metrics}}
- <div class='fl pad1y'>
- <span class="strong">{{#show_ignores metrics}}{{/show_ignores}}</span>
- <span class="quiet">Ignored</span> &nbsp;&nbsp;&nbsp;&nbsp;
- </div>
- {{/if_has_ignores}}
- </div>
- </div>
- <div class='status-line {{reportClass}}'></div>
diff --git a/node_modules/istanbul/lib/report/text-lcov.js b/node_modules/istanbul/lib/report/text-lcov.js
deleted file mode 100644
index 15e1a48ca..000000000
--- a/node_modules/istanbul/lib/report/text-lcov.js
+++ /dev/null
@@ -1,50 +0,0 @@
-var LcovOnly = require('./lcovonly'),
- util = require('util');
-
-/**
- * a `Report` implementation that produces an LCOV coverage and prints it
- * to standard out.
- *
- * Usage
- * -----
- *
- * var report = require('istanbul').Report.create('text-lcov');
- *
- * @class TextLcov
- * @module report
- * @extends LcovOnly
- * @constructor
- * @param {Object} opts optional
- * @param {String} [opts.log] the method used to log to console.
- */
-function TextLcov(opts) {
- var that = this;
-
- LcovOnly.call(this);
-
- this.opts = opts || {};
- this.opts.log = this.opts.log || console.log;
- this.opts.writer = {
- println: function (ln) {
- that.opts.log(ln);
- }
- };
-}
-
-TextLcov.TYPE = 'text-lcov';
-util.inherits(TextLcov, LcovOnly);
-
-LcovOnly.super_.mix(TextLcov, {
- writeReport: function (collector) {
- var that = this,
- writer = this.opts.writer;
-
- collector.files().forEach(function (key) {
- that.writeFileCoverage(writer, collector.fileCoverageFor(key));
- });
-
- this.emit('done');
- }
-});
-
-module.exports = TextLcov;
diff --git a/node_modules/istanbul/lib/report/text-summary.js b/node_modules/istanbul/lib/report/text-summary.js
deleted file mode 100644
index 9537cbe20..000000000
--- a/node_modules/istanbul/lib/report/text-summary.js
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var path = require('path'),
- util = require('util'),
- mkdirp = require('mkdirp'),
- defaults = require('./common/defaults'),
- fs = require('fs'),
- utils = require('../object-utils'),
- Report = require('./index');
-
-/**
- * a `Report` implementation that produces text output for overall coverage in summary format.
- *
- * Usage
- * -----
- *
- * var report = require('istanbul').Report.create('text-summary');
- *
- * @class TextSummaryReport
- * @extends Report
- * @module report
- * @constructor
- * @param {Object} opts optional
- * @param {String} [opts.dir] the directory in which to the text coverage report will be written, when writing to a file
- * @param {String} [opts.file] the filename for the report. When omitted, the report is written to console
- */
-function TextSummaryReport(opts) {
- Report.call(this);
- opts = opts || {};
- this.dir = opts.dir || process.cwd();
- this.file = opts.file;
- this.watermarks = opts.watermarks || defaults.watermarks();
-}
-
-TextSummaryReport.TYPE = 'text-summary';
-util.inherits(TextSummaryReport, Report);
-
-function lineForKey(summary, key, watermarks) {
- var metrics = summary[key],
- skipped,
- result,
- clazz = defaults.classFor(key, summary, watermarks);
- key = key.substring(0, 1).toUpperCase() + key.substring(1);
- if (key.length < 12) { key += ' '.substring(0, 12 - key.length); }
- result = [ key , ':', metrics.pct + '%', '(', metrics.covered + '/' + metrics.total, ')'].join(' ');
- skipped = metrics.skipped;
- if (skipped > 0) {
- result += ', ' + skipped + ' ignored';
- }
- return defaults.colorize(result, clazz);
-}
-
-Report.mix(TextSummaryReport, {
- synopsis: function () {
- return 'text report that prints a coverage summary across all files, typically to console';
- },
- getDefaultConfig: function () {
- return { file: null };
- },
- writeReport: function (collector /*, sync */) {
- var summaries = [],
- finalSummary,
- lines = [],
- watermarks = this.watermarks,
- text;
- collector.files().forEach(function (file) {
- summaries.push(utils.summarizeFileCoverage(collector.fileCoverageFor(file)));
- });
- finalSummary = utils.mergeSummaryObjects.apply(null, summaries);
- lines.push('');
- lines.push('=============================== Coverage summary ===============================');
- lines.push.apply(lines, [
- lineForKey(finalSummary, 'statements', watermarks),
- lineForKey(finalSummary, 'branches', watermarks),
- lineForKey(finalSummary, 'functions', watermarks),
- lineForKey(finalSummary, 'lines', watermarks)
- ]);
- lines.push('================================================================================');
- text = lines.join('\n');
- if (this.file) {
- mkdirp.sync(this.dir);
- fs.writeFileSync(path.join(this.dir, this.file), text, 'utf8');
- } else {
- console.log(text);
- }
- this.emit('done');
- }
-});
-
-module.exports = TextSummaryReport;
diff --git a/node_modules/istanbul/lib/report/text.js b/node_modules/istanbul/lib/report/text.js
deleted file mode 100644
index 8ab2b7d13..000000000
--- a/node_modules/istanbul/lib/report/text.js
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var path = require('path'),
- mkdirp = require('mkdirp'),
- util = require('util'),
- fs = require('fs'),
- defaults = require('./common/defaults'),
- Report = require('./index'),
- TreeSummarizer = require('../util/tree-summarizer'),
- utils = require('../object-utils'),
- PCT_COLS = 9,
- MISSING_COL = 15,
- TAB_SIZE = 1,
- DELIM = ' |',
- COL_DELIM = '-|';
-
-/**
- * a `Report` implementation that produces text output in a detailed table.
- *
- * Usage
- * -----
- *
- * var report = require('istanbul').Report.create('text');
- *
- * @class TextReport
- * @extends Report
- * @module report
- * @constructor
- * @param {Object} opts optional
- * @param {String} [opts.dir] the directory in which to the text coverage report will be written, when writing to a file
- * @param {String} [opts.file] the filename for the report. When omitted, the report is written to console
- * @param {Number} [opts.maxCols] the max column width of the report. By default, the width of the report is adjusted based on the length of the paths
- * to be reported.
- */
-function TextReport(opts) {
- Report.call(this);
- opts = opts || {};
- this.dir = opts.dir || process.cwd();
- this.file = opts.file;
- this.summary = opts.summary;
- this.maxCols = opts.maxCols || 0;
- this.watermarks = opts.watermarks || defaults.watermarks();
-}
-
-TextReport.TYPE = 'text';
-util.inherits(TextReport, Report);
-
-function padding(num, ch) {
- var str = '',
- i;
- ch = ch || ' ';
- for (i = 0; i < num; i += 1) {
- str += ch;
- }
- return str;
-}
-
-function fill(str, width, right, tabs, clazz) {
- tabs = tabs || 0;
- str = String(str);
-
- var leadingSpaces = tabs * TAB_SIZE,
- remaining = width - leadingSpaces,
- leader = padding(leadingSpaces),
- fmtStr = '',
- fillStr,
- strlen = str.length;
-
- if (remaining > 0) {
- if (remaining >= strlen) {
- fillStr = padding(remaining - strlen);
- fmtStr = right ? fillStr + str : str + fillStr;
- } else {
- fmtStr = str.substring(strlen - remaining);
- fmtStr = '... ' + fmtStr.substring(4);
- }
- }
-
- fmtStr = defaults.colorize(fmtStr, clazz);
- return leader + fmtStr;
-}
-
-function formatName(name, maxCols, level, clazz) {
- return fill(name, maxCols, false, level, clazz);
-}
-
-function formatPct(pct, clazz, width) {
- return fill(pct, width || PCT_COLS, true, 0, clazz);
-}
-
-function nodeName(node) {
- return node.displayShortName() || 'All files';
-}
-
-function tableHeader(maxNameCols) {
- var elements = [];
- elements.push(formatName('File', maxNameCols, 0));
- elements.push(formatPct('% Stmts'));
- elements.push(formatPct('% Branch'));
- elements.push(formatPct('% Funcs'));
- elements.push(formatPct('% Lines'));
- elements.push(formatPct('Uncovered Lines', undefined, MISSING_COL));
- return elements.join(' |') + ' |';
-}
-
-function collectMissingLines(kind, linesCovered) {
- var missingLines = [];
-
- if (kind !== 'file') {
- return [];
- }
-
- Object.keys(linesCovered).forEach(function (key) {
- if (!linesCovered[key]) {
- missingLines.push(key);
- }
- });
-
- return missingLines;
-}
-
-function tableRow(node, maxNameCols, level, watermarks) {
- var name = nodeName(node),
- statements = node.metrics.statements.pct,
- branches = node.metrics.branches.pct,
- functions = node.metrics.functions.pct,
- lines = node.metrics.lines.pct,
- missingLines = collectMissingLines(node.kind, node.metrics.linesCovered),
- elements = [];
-
- elements.push(formatName(name, maxNameCols, level, defaults.classFor('statements', node.metrics, watermarks)));
- elements.push(formatPct(statements, defaults.classFor('statements', node.metrics, watermarks)));
- elements.push(formatPct(branches, defaults.classFor('branches', node.metrics, watermarks)));
- elements.push(formatPct(functions, defaults.classFor('functions', node.metrics, watermarks)));
- elements.push(formatPct(lines, defaults.classFor('lines', node.metrics, watermarks)));
- elements.push(formatPct(missingLines.join(','), 'low', MISSING_COL));
-
- return elements.join(DELIM) + DELIM;
-}
-
-function findNameWidth(node, level, last) {
- last = last || 0;
- level = level || 0;
- var idealWidth = TAB_SIZE * level + nodeName(node).length;
- if (idealWidth > last) {
- last = idealWidth;
- }
- node.children.forEach(function (child) {
- last = findNameWidth(child, level + 1, last);
- });
- return last;
-}
-
-function makeLine(nameWidth) {
- var name = padding(nameWidth, '-'),
- pct = padding(PCT_COLS, '-'),
- elements = [];
-
- elements.push(name);
- elements.push(pct);
- elements.push(pct);
- elements.push(pct);
- elements.push(pct);
- elements.push(padding(MISSING_COL, '-'));
- return elements.join(COL_DELIM) + COL_DELIM;
-}
-
-function walk(node, nameWidth, array, level, watermarks) {
- var line;
- if (level === 0) {
- line = makeLine(nameWidth);
- array.push(line);
- array.push(tableHeader(nameWidth));
- array.push(line);
- } else {
- array.push(tableRow(node, nameWidth, level, watermarks));
- }
- node.children.forEach(function (child) {
- walk(child, nameWidth, array, level + 1, watermarks);
- });
- if (level === 0) {
- array.push(line);
- array.push(tableRow(node, nameWidth, level, watermarks));
- array.push(line);
- }
-}
-
-Report.mix(TextReport, {
- synopsis: function () {
- return 'text report that prints a coverage line for every file, typically to console';
- },
- getDefaultConfig: function () {
- return { file: null, maxCols: 0 };
- },
- writeReport: function (collector /*, sync */) {
- var summarizer = new TreeSummarizer(),
- tree,
- root,
- nameWidth,
- statsWidth = 4 * (PCT_COLS + 2) + MISSING_COL,
- maxRemaining,
- strings = [],
- text;
-
- collector.files().forEach(function (key) {
- summarizer.addFileCoverageSummary(key, utils.summarizeFileCoverage(
- collector.fileCoverageFor(key)
- ));
- });
- tree = summarizer.getTreeSummary();
- root = tree.root;
- nameWidth = findNameWidth(root);
- if (this.maxCols > 0) {
- maxRemaining = this.maxCols - statsWidth - 2;
- if (nameWidth > maxRemaining) {
- nameWidth = maxRemaining;
- }
- }
- walk(root, nameWidth, strings, 0, this.watermarks);
- text = strings.join('\n') + '\n';
- if (this.file) {
- mkdirp.sync(this.dir);
- fs.writeFileSync(path.join(this.dir, this.file), text, 'utf8');
- } else {
- console.log(text);
- }
- this.emit('done');
- }
-});
-
-module.exports = TextReport;
diff --git a/node_modules/istanbul/lib/reporter.js b/node_modules/istanbul/lib/reporter.js
deleted file mode 100644
index c7000d5b9..000000000
--- a/node_modules/istanbul/lib/reporter.js
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- Copyright (c) 2014, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-var Report = require('./report'),
- configuration = require('./config'),
- inputError = require('./util/input-error');
-
-/**
- * convenience mechanism to write one or more reports ensuring that config
- * options are respected.
- * Usage
- * -----
- *
- * var fs = require('fs'),
- * reporter = new require('istanbul').Reporter(),
- * collector = new require('istanbul').Collector(),
- * sync = true;
- *
- * collector.add(JSON.parse(fs.readFileSync('coverage.json', 'utf8')));
- * reporter.add('lcovonly');
- * reporter.addAll(['clover', 'cobertura']);
- * reporter.write(collector, sync, function () { console.log('done'); });
- *
- * @class Reporter
- * @param {Configuration} cfg the config object, a falsy value will load the
- * default configuration instead
- * @param {String} dir the directory in which to write the reports, may be falsy
- * to use config or global defaults
- * @constructor
- * @module main
- */
-function Reporter(cfg, dir) {
- this.config = cfg || configuration.loadFile();
- this.dir = dir || this.config.reporting.dir();
- this.reports = {};
-}
-
-Reporter.prototype = {
- /**
- * adds a report to be generated. Must be one of the entries returned
- * by `Report.getReportList()`
- * @method add
- * @param {String} fmt the format of the report to generate
- */
- add: function (fmt) {
- if (this.reports[fmt]) { // already added
- return;
- }
- var config = this.config,
- rptConfig = config.reporting.reportConfig()[fmt] || {};
- rptConfig.verbose = config.verbose;
- rptConfig.dir = this.dir;
- rptConfig.watermarks = config.reporting.watermarks();
- try {
- this.reports[fmt] = Report.create(fmt, rptConfig);
- } catch (ex) {
- throw inputError.create('Invalid report format [' + fmt + ']');
- }
- },
- /**
- * adds an array of report formats to be generated
- * @method addAll
- * @param {Array} fmts an array of report formats
- */
- addAll: function (fmts) {
- var that = this;
- fmts.forEach(function (f) {
- that.add(f);
- });
- },
- /**
- * writes all reports added and calls the callback when done
- * @method write
- * @param {Collector} collector the collector having the coverage data
- * @param {Boolean} sync true to write reports synchronously
- * @param {Function} callback the callback to call when done. When `sync`
- * is true, the callback will be called in the same process tick.
- */
- write: function (collector, sync, callback) {
- var reports = this.reports,
- verbose = this.config.verbose,
- handler = this.handleDone.bind(this, callback);
-
- this.inProgress = Object.keys(reports).length;
-
- Object.keys(reports).forEach(function (name) {
- var report = reports[name];
- if (verbose) {
- console.error('Write report: ' + name);
- }
- report.on('done', handler);
- report.writeReport(collector, sync);
- });
- },
- /*
- * handles listening on all reports to be completed before calling the callback
- * @method handleDone
- * @private
- * @param {Function} callback the callback to call when all reports are
- * written
- */
- handleDone: function (callback) {
- this.inProgress -= 1;
- if (this.inProgress === 0) {
- return callback();
- }
- }
-};
-
-module.exports = Reporter;
diff --git a/node_modules/istanbul/lib/store/fslookup.js b/node_modules/istanbul/lib/store/fslookup.js
deleted file mode 100644
index b00cc179c..000000000
--- a/node_modules/istanbul/lib/store/fslookup.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var util = require('util'),
- fs = require('fs'),
- Store = require('./index');
-
-/**
- * a `Store` implementation that doesn't actually store anything. It assumes that keys
- * are absolute file paths, and contents are contents of those files.
- * Thus, `set` for this store is no-op, `get` returns the
- * contents of the filename that the key represents, `hasKey` returns true if the key
- * supplied is a valid file path and `keys` always returns an empty array.
- *
- * Usage
- * -----
- *
- * var store = require('istanbul').Store.create('fslookup');
- *
- *
- * @class LookupStore
- * @extends Store
- * @module store
- * @constructor
- */
-function LookupStore(opts) {
- Store.call(this, opts);
-}
-
-LookupStore.TYPE = 'fslookup';
-util.inherits(LookupStore, Store);
-
-Store.mix(LookupStore, {
- keys: function () {
- return [];
- },
- get: function (key) {
- return fs.readFileSync(key, 'utf8');
- },
- hasKey: function (key) {
- var stats;
- try {
- stats = fs.statSync(key);
- return stats.isFile();
- } catch (ex) {
- return false;
- }
- },
- set: function (key /*, contents */) {
- if (!this.hasKey(key)) {
- throw new Error('Attempt to set contents for non-existent file [' + key + '] on a fslookup store');
- }
- return key;
- }
-});
-
-
-module.exports = LookupStore;
-
diff --git a/node_modules/istanbul/lib/store/index.js b/node_modules/istanbul/lib/store/index.js
deleted file mode 100644
index 85ffc4f0a..000000000
--- a/node_modules/istanbul/lib/store/index.js
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var Factory = require('../util/factory'),
- factory = new Factory('store', __dirname, false);
-/**
- * An abstraction for keeping track of content against some keys (e.g.
- * original source, instrumented source, coverage objects against file names).
- * This class is both the base class as well as a factory for `Store` implementations.
- *
- * Usage
- * -----
- *
- * var Store = require('istanbul').Store,
- * store = Store.create('memory');
- *
- * //basic use
- * store.set('foo', 'foo-content');
- * var content = store.get('foo');
- *
- * //keys and values
- * store.keys().forEach(function (key) {
- * console.log(key + ':\n' + store.get(key);
- * });
- * if (store.hasKey('bar') { console.log(store.get('bar'); }
- *
- *
- * //syntactic sugar
- * store.setObject('foo', { foo: true });
- * console.log(store.getObject('foo').foo);
- *
- * store.dispose();
- *
- * @class Store
- * @constructor
- * @module store
- * @param {Object} options Optional. The options supported by a specific store implementation.
- * @main store
- */
-function Store(/* options */) {}
-
-//add register, create, mix, loadAll, getStoreList as class methods
-factory.bindClassMethods(Store);
-
-/**
- * registers a new store implementation.
- * @method register
- * @static
- * @param {Function} constructor the constructor function for the store. This function must have a
- * `TYPE` property of type String, that will be used in `Store.create()`
- */
-/**
- * returns a store implementation of the specified type.
- * @method create
- * @static
- * @param {String} type the type of store to create
- * @param {Object} opts Optional. Options specific to the store implementation
- * @return {Store} a new store of the specified type
- */
-
-Store.prototype = {
- /**
- * sets some content associated with a specific key. The manner in which
- * duplicate keys are handled for multiple `set()` calls with the same
- * key is implementation-specific.
- *
- * @method set
- * @param {String} key the key for the content
- * @param {String} contents the contents for the key
- */
- set: function (/* key, contents */) { throw new Error("set: must be overridden"); },
- /**
- * returns the content associated to a specific key or throws if the key
- * was not `set`
- * @method get
- * @param {String} key the key for which to get the content
- * @return {String} the content for the specified key
- */
- get: function (/* key */) { throw new Error("get: must be overridden"); },
- /**
- * returns a list of all known keys
- * @method keys
- * @return {Array} an array of seen keys
- */
- keys: function () { throw new Error("keys: must be overridden"); },
- /**
- * returns true if the key is one for which a `get()` call would work.
- * @method hasKey
- * @param {String} key
- * @return true if the key is valid for this store, false otherwise
- */
- hasKey: function (/* key */) { throw new Error("hasKey: must be overridden"); },
- /**
- * lifecycle method to dispose temporary resources associated with the store
- * @method dispose
- */
- dispose: function () {},
- /**
- * sugar method to return an object associated with a specific key. Throws
- * if the content set against the key was not a valid JSON string.
- * @method getObject
- * @param {String} key the key for which to return the associated object
- * @return {Object} the object corresponding to the key
- */
- getObject: function (key) {
- return JSON.parse(this.get(key));
- },
- /**
- * sugar method to set an object against a specific key.
- * @method setObject
- * @param {String} key the key for the object
- * @param {Object} object the object to be stored
- */
- setObject: function (key, object) {
- return this.set(key, JSON.stringify(object));
- }
-};
-
-module.exports = Store;
-
-
diff --git a/node_modules/istanbul/lib/store/memory.js b/node_modules/istanbul/lib/store/memory.js
deleted file mode 100644
index ff96fbd32..000000000
--- a/node_modules/istanbul/lib/store/memory.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var util = require('util'),
- Store = require('./index');
-
-/**
- * a `Store` implementation using an in-memory object.
- *
- * Usage
- * -----
- *
- * var store = require('istanbul').Store.create('memory');
- *
- *
- * @class MemoryStore
- * @extends Store
- * @module store
- * @constructor
- */
-function MemoryStore() {
- Store.call(this);
- this.map = {};
-}
-
-MemoryStore.TYPE = 'memory';
-util.inherits(MemoryStore, Store);
-
-Store.mix(MemoryStore, {
- set: function (key, contents) {
- this.map[key] = contents;
- },
-
- get: function (key) {
- if (!this.hasKey(key)) {
- throw new Error('Unable to find entry for [' + key + ']');
- }
- return this.map[key];
- },
-
- hasKey: function (key) {
- return this.map.hasOwnProperty(key);
- },
-
- keys: function () {
- return Object.keys(this.map);
- },
-
- dispose: function () {
- this.map = {};
- }
-});
-
-module.exports = MemoryStore;
diff --git a/node_modules/istanbul/lib/store/tmp.js b/node_modules/istanbul/lib/store/tmp.js
deleted file mode 100644
index 31789c88b..000000000
--- a/node_modules/istanbul/lib/store/tmp.js
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var util = require('util'),
- path = require('path'),
- os = require('os'),
- fs = require('fs'),
- mkdirp = require('mkdirp'),
- Store = require('./index');
-
-function makeTempDir() {
- var dir = path.join(os.tmpdir ? os.tmpdir() : /* istanbul ignore next */ (process.env.TMPDIR || '/tmp'), 'ts' + new Date().getTime());
- mkdirp.sync(dir);
- return dir;
-}
-/**
- * a `Store` implementation using temporary files.
- *
- * Usage
- * -----
- *
- * var store = require('istanbul').Store.create('tmp');
- *
- *
- * @class TmpStore
- * @extends Store
- * @module store
- * @param {Object} opts Optional.
- * @param {String} [opts.tmp] a pre-existing directory to use as the `tmp` directory. When not specified, a random directory
- * is created under `os.tmpdir()`
- * @constructor
- */
-function TmpStore(opts) {
- opts = opts || {};
- this.tmp = opts.tmp || makeTempDir();
- this.map = {};
- this.seq = 0;
- this.prefix = 't' + new Date().getTime() + '-';
-}
-
-TmpStore.TYPE = 'tmp';
-util.inherits(TmpStore, Store);
-
-Store.mix(TmpStore, {
- generateTmpFileName: function () {
- this.seq += 1;
- return path.join(this.tmp, this.prefix + this.seq + '.tmp');
- },
-
- set: function (key, contents) {
- var tmpFile = this.generateTmpFileName();
- fs.writeFileSync(tmpFile, contents, 'utf8');
- this.map[key] = tmpFile;
- },
-
- get: function (key) {
- var tmpFile = this.map[key];
- if (!tmpFile) { throw new Error('Unable to find tmp entry for [' + tmpFile + ']'); }
- return fs.readFileSync(tmpFile, 'utf8');
- },
-
- hasKey: function (key) {
- return !!this.map[key];
- },
-
- keys: function () {
- return Object.keys(this.map);
- },
-
- dispose: function () {
- var map = this.map;
- Object.keys(map).forEach(function (key) {
- fs.unlinkSync(map[key]);
- });
- this.map = {};
- }
-});
-
-module.exports = TmpStore;
diff --git a/node_modules/istanbul/lib/util/factory.js b/node_modules/istanbul/lib/util/factory.js
deleted file mode 100644
index 9f3d6f36f..000000000
--- a/node_modules/istanbul/lib/util/factory.js
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var util = require('util'),
- path = require('path'),
- fs = require('fs'),
- abbrev = require('abbrev');
-
-function Factory(kind, dir, allowAbbreviations) {
- this.kind = kind;
- this.dir = dir;
- this.allowAbbreviations = allowAbbreviations;
- this.classMap = {};
- this.abbreviations = null;
-}
-
-Factory.prototype = {
-
- knownTypes: function () {
- var keys = Object.keys(this.classMap);
- keys.sort();
- return keys;
- },
-
- resolve: function (abbreviatedType) {
- if (!this.abbreviations) {
- this.abbreviations = abbrev(this.knownTypes());
- }
- return this.abbreviations[abbreviatedType];
- },
-
- register: function (constructor) {
- var type = constructor.TYPE;
- if (!type) { throw new Error('Could not register ' + this.kind + ' constructor [no TYPE property]: ' + util.inspect(constructor)); }
- this.classMap[type] = constructor;
- this.abbreviations = null;
- },
-
- create: function (type, opts) {
- var allowAbbrev = this.allowAbbreviations,
- realType = allowAbbrev ? this.resolve(type) : type,
- Cons;
-
- Cons = realType ? this.classMap[realType] : null;
- if (!Cons) { throw new Error('Invalid ' + this.kind + ' [' + type + '], allowed values are ' + this.knownTypes().join(', ')); }
- return new Cons(opts);
- },
-
- loadStandard: function (dir) {
- var that = this;
- fs.readdirSync(dir).forEach(function (file) {
- if (file !== 'index.js' && file.indexOf('.js') === file.length - 3) {
- try {
- that.register(require(path.resolve(dir, file)));
- } catch (ex) {
- console.error(ex.message);
- console.error(ex.stack);
- throw new Error('Could not register ' + that.kind + ' from file ' + file);
- }
- }
- });
- },
-
- bindClassMethods: function (Cons) {
- var tmpKind = this.kind.charAt(0).toUpperCase() + this.kind.substring(1), //ucfirst
- allowAbbrev = this.allowAbbreviations;
-
- Cons.mix = Factory.mix;
- Cons.register = this.register.bind(this);
- Cons.create = this.create.bind(this);
- Cons.loadAll = this.loadStandard.bind(this, this.dir);
- Cons['get' + tmpKind + 'List'] = this.knownTypes.bind(this);
- if (allowAbbrev) {
- Cons['resolve' + tmpKind + 'Name'] = this.resolve.bind(this);
- }
- }
-};
-
-Factory.mix = function (cons, proto) {
- Object.keys(proto).forEach(function (key) {
- cons.prototype[key] = proto[key];
- });
-};
-
-module.exports = Factory;
-
diff --git a/node_modules/istanbul/lib/util/file-matcher.js b/node_modules/istanbul/lib/util/file-matcher.js
deleted file mode 100644
index 986064252..000000000
--- a/node_modules/istanbul/lib/util/file-matcher.js
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var async = require('async'),
- glob = require('glob'),
- fs = require('fs'),
- path = require('path'),
- seq = 0;
-
-function filesFor(options, callback) {
- if (!callback && typeof options === 'function') {
- callback = options;
- options = null;
- }
- options = options || {};
-
- var root = options.root,
- includes = options.includes,
- excludes = options.excludes,
- realpath = options.realpath,
- relative = options.relative,
- opts;
-
- root = root || process.cwd();
- includes = includes && Array.isArray(includes) ? includes : [ '**/*.js' ];
- excludes = excludes && Array.isArray(excludes) ? excludes : [ '**/node_modules/**' ];
-
- opts = { cwd: root, nodir: true, ignore: excludes };
- seq += 1;
- opts['x' + seq + new Date().getTime()] = true; //cache buster for minimatch cache bug
- glob(includes.join(' '), opts, function (err, files) {
- if (err) { return callback(err); }
- if (relative) { return callback(err, files); }
-
- if (!realpath) {
- files = files.map(function (file) { return path.resolve(root, file); });
- return callback(err, files);
- }
-
- var realPathCache = module.constructor._realpathCache || {};
-
- async.map(files, function (file, done) {
- fs.realpath(path.resolve(root, file), realPathCache, done);
- }, callback);
- });
-}
-
-function matcherFor(options, callback) {
-
- if (!callback && typeof options === 'function') {
- callback = options;
- options = null;
- }
- options = options || {};
- options.relative = false; //force absolute paths
- options.realpath = true; //force real paths (to match Node.js module paths)
-
- filesFor(options, function (err, files) {
- var fileMap = {},
- matchFn;
- if (err) { return callback(err); }
- files.forEach(function (file) { fileMap[file] = true; });
-
- matchFn = function (file) { return fileMap[file]; };
- matchFn.files = Object.keys(fileMap);
- return callback(null, matchFn);
- });
-}
-
-module.exports = {
- filesFor: filesFor,
- matcherFor: matcherFor
-};
-
diff --git a/node_modules/istanbul/lib/util/file-writer.js b/node_modules/istanbul/lib/util/file-writer.js
deleted file mode 100644
index 3367dcc83..000000000
--- a/node_modules/istanbul/lib/util/file-writer.js
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var path = require('path'),
- util = require('util'),
- fs = require('fs'),
- async = require('async'),
- mkdirp = require('mkdirp'),
- writer = require('./writer'),
- Writer = writer.Writer,
- ContentWriter = writer.ContentWriter;
-
-function extend(cons, proto) {
- Object.keys(proto).forEach(function (k) {
- cons.prototype[k] = proto[k];
- });
-}
-
-function BufferedContentWriter() {
- ContentWriter.call(this);
- this.content = '';
-}
-util.inherits(BufferedContentWriter, ContentWriter);
-
-extend(BufferedContentWriter, {
- write: function (str) {
- this.content += str;
- },
- getContent: function () {
- return this.content;
- }
-});
-
-function StreamContentWriter(stream) {
- ContentWriter.call(this);
- this.stream = stream;
-}
-util.inherits(StreamContentWriter, ContentWriter);
-
-extend(StreamContentWriter, {
- write: function (str) {
- this.stream.write(str);
- }
-});
-
-function SyncFileWriter() {
- Writer.call(this);
-}
-util.inherits(SyncFileWriter, Writer);
-
-extend(SyncFileWriter, {
- writeFile: function (file, callback) {
- mkdirp.sync(path.dirname(file));
- var cw = new BufferedContentWriter();
- callback(cw);
- fs.writeFileSync(file, cw.getContent(), 'utf8');
- },
- done: function () {
- this.emit('done'); //everything already done
- }
-});
-
-function AsyncFileWriter() {
- this.queue = async.queue(this.processFile.bind(this), 20);
- this.openFileMap = {};
-}
-
-util.inherits(AsyncFileWriter, Writer);
-
-extend(AsyncFileWriter, {
- writeFile: function (file, callback) {
- this.openFileMap[file] = true;
- this.queue.push({ file: file, callback: callback });
- },
- processFile: function (task, cb) {
- var file = task.file,
- userCallback = task.callback,
- that = this,
- stream,
- contentWriter;
-
- mkdirp.sync(path.dirname(file));
- stream = fs.createWriteStream(file);
- stream.on('close', function () {
- delete that.openFileMap[file];
- cb();
- that.checkDone();
- });
- stream.on('error', function (err) { that.emit('error', err); });
- contentWriter = new StreamContentWriter(stream);
- userCallback(contentWriter);
- stream.end();
- },
- done: function () {
- this.doneCalled = true;
- this.checkDone();
- },
- checkDone: function () {
- if (!this.doneCalled) { return; }
- if (Object.keys(this.openFileMap).length === 0) {
- this.emit('done');
- }
- }
-});
-/**
- * a concrete writer implementation that can write files synchronously or
- * asynchronously based on the constructor argument passed to it.
- *
- * Usage
- * -----
- *
- * var sync = true,
- * fileWriter = new require('istanbul').FileWriter(sync);
- *
- * fileWriter.on('done', function () { console.log('done'); });
- * fileWriter.copyFile('/foo/bar.jpg', '/baz/bar.jpg');
- * fileWriter.writeFile('/foo/index.html', function (contentWriter) {
- * contentWriter.println('<html>');
- * contentWriter.println('</html>');
- * });
- * fileWriter.done(); // will emit the `done` event when all files are written
- *
- * @class FileWriter
- * @extends Writer
- * @module io
- * @param sync
- * @constructor
- */
-function FileWriter(sync) {
- Writer.call(this);
- var that = this;
- this.delegate = sync ? new SyncFileWriter() : new AsyncFileWriter();
- this.delegate.on('error', function (err) { that.emit('error', err); });
- this.delegate.on('done', function () { that.emit('done'); });
-}
-
-util.inherits(FileWriter, Writer);
-
-extend(FileWriter, {
- copyFile: function (source, dest) {
- mkdirp.sync(path.dirname(dest));
- fs.writeFileSync(dest, fs.readFileSync(source));
- },
- writeFile: function (file, callback) {
- this.delegate.writeFile(file, callback);
- },
- done: function () {
- this.delegate.done();
- }
-});
-
-module.exports = FileWriter; \ No newline at end of file
diff --git a/node_modules/istanbul/lib/util/help-formatter.js b/node_modules/istanbul/lib/util/help-formatter.js
deleted file mode 100644
index 8d9136acf..000000000
--- a/node_modules/istanbul/lib/util/help-formatter.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var OPT_PREFIX = " ",
- OPT_START = OPT_PREFIX.length,
- TEXT_START = 14,
- STOP = 80,
- wrap = require('wordwrap')(TEXT_START, STOP),
- paraWrap = require('wordwrap')(1, STOP);
-
-function formatPara(text) {
- return paraWrap(text);
-}
-
-function formatOption(option, helpText) {
- var formattedText = wrap(helpText);
-
- if (option.length > TEXT_START - OPT_START - 2) {
- return OPT_PREFIX + option + '\n' + formattedText;
- } else {
- return OPT_PREFIX + option + formattedText.substring((OPT_PREFIX + option).length);
- }
-}
-
-module.exports = {
- formatPara: formatPara,
- formatOption: formatOption
-}; \ No newline at end of file
diff --git a/node_modules/istanbul/lib/util/input-error.js b/node_modules/istanbul/lib/util/input-error.js
deleted file mode 100644
index 488b71a0d..000000000
--- a/node_modules/istanbul/lib/util/input-error.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-module.exports.create = function (message) {
- var err = new Error(message);
- err.inputError = true;
- return err;
-};
-
-
diff --git a/node_modules/istanbul/lib/util/insertion-text.js b/node_modules/istanbul/lib/util/insertion-text.js
deleted file mode 100644
index d257643f2..000000000
--- a/node_modules/istanbul/lib/util/insertion-text.js
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-function InsertionText(text, consumeBlanks) {
- this.text = text;
- this.origLength = text.length;
- this.offsets = [];
- this.consumeBlanks = consumeBlanks;
- this.startPos = this.findFirstNonBlank();
- this.endPos = this.findLastNonBlank();
-}
-
-var WHITE_RE = /[ \f\n\r\t\v\u00A0\u2028\u2029]/;
-
-InsertionText.prototype = {
-
- findFirstNonBlank: function () {
- var pos = -1,
- text = this.text,
- len = text.length,
- i;
- for (i = 0; i < len; i += 1) {
- if (!text.charAt(i).match(WHITE_RE)) {
- pos = i;
- break;
- }
- }
- return pos;
- },
- findLastNonBlank: function () {
- var text = this.text,
- len = text.length,
- pos = text.length + 1,
- i;
- for (i = len - 1; i >= 0; i -= 1) {
- if (!text.charAt(i).match(WHITE_RE)) {
- pos = i;
- break;
- }
- }
- return pos;
- },
- originalLength: function () {
- return this.origLength;
- },
-
- insertAt: function (col, str, insertBefore, consumeBlanks) {
- consumeBlanks = typeof consumeBlanks === 'undefined' ? this.consumeBlanks : consumeBlanks;
- col = col > this.originalLength() ? this.originalLength() : col;
- col = col < 0 ? 0 : col;
-
- if (consumeBlanks) {
- if (col <= this.startPos) {
- col = 0;
- }
- if (col > this.endPos) {
- col = this.origLength;
- }
- }
-
- var len = str.length,
- offset = this.findOffset(col, len, insertBefore),
- realPos = col + offset,
- text = this.text;
- this.text = text.substring(0, realPos) + str + text.substring(realPos);
- return this;
- },
-
- findOffset: function (pos, len, insertBefore) {
- var offsets = this.offsets,
- offsetObj,
- cumulativeOffset = 0,
- i;
-
- for (i = 0; i < offsets.length; i += 1) {
- offsetObj = offsets[i];
- if (offsetObj.pos < pos || (offsetObj.pos === pos && !insertBefore)) {
- cumulativeOffset += offsetObj.len;
- }
- if (offsetObj.pos >= pos) {
- break;
- }
- }
- if (offsetObj && offsetObj.pos === pos) {
- offsetObj.len += len;
- } else {
- offsets.splice(i, 0, { pos: pos, len: len });
- }
- return cumulativeOffset;
- },
-
- wrap: function (startPos, startText, endPos, endText, consumeBlanks) {
- this.insertAt(startPos, startText, true, consumeBlanks);
- this.insertAt(endPos, endText, false, consumeBlanks);
- return this;
- },
-
- wrapLine: function (startText, endText) {
- this.wrap(0, startText, this.originalLength(), endText);
- },
-
- toString: function () {
- return this.text;
- }
-};
-
-module.exports = InsertionText; \ No newline at end of file
diff --git a/node_modules/istanbul/lib/util/meta.js b/node_modules/istanbul/lib/util/meta.js
deleted file mode 100644
index 0384459b5..000000000
--- a/node_modules/istanbul/lib/util/meta.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-var path = require('path'),
- fs = require('fs'),
- pkg = JSON.parse(fs.readFileSync(path.resolve(__dirname, '..', '..', 'package.json'), 'utf8'));
-
-module.exports = {
- NAME: pkg.name,
- VERSION: pkg.version
-};
-
diff --git a/node_modules/istanbul/lib/util/tree-summarizer.js b/node_modules/istanbul/lib/util/tree-summarizer.js
deleted file mode 100644
index df350f50e..000000000
--- a/node_modules/istanbul/lib/util/tree-summarizer.js
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var path = require('path'),
- SEP = path.sep || '/',
- utils = require('../object-utils');
-
-function commonArrayPrefix(first, second) {
- var len = first.length < second.length ? first.length : second.length,
- i,
- ret = [];
- for (i = 0; i < len; i += 1) {
- if (first[i] === second[i]) {
- ret.push(first[i]);
- } else {
- break;
- }
- }
- return ret;
-}
-
-function findCommonArrayPrefix(args) {
- if (args.length === 0) {
- return [];
- }
-
- var separated = args.map(function (arg) { return arg.split(SEP); }),
- ret = separated.pop();
-
- if (separated.length === 0) {
- return ret.slice(0, ret.length - 1);
- } else {
- return separated.reduce(commonArrayPrefix, ret);
- }
-}
-
-function Node(fullName, kind, metrics) {
- this.name = fullName;
- this.fullName = fullName;
- this.kind = kind;
- this.metrics = metrics || null;
- this.parent = null;
- this.children = [];
-}
-
-Node.prototype = {
- displayShortName: function () {
- return this.relativeName;
- },
- fullPath: function () {
- return this.fullName;
- },
- addChild: function (child) {
- this.children.push(child);
- child.parent = this;
- },
- toJSON: function () {
- return {
- name: this.name,
- relativeName: this.relativeName,
- fullName: this.fullName,
- kind: this.kind,
- metrics: this.metrics,
- parent: this.parent === null ? null : this.parent.name,
- children: this.children.map(function (node) { return node.toJSON(); })
- };
- }
-};
-
-function TreeSummary(summaryMap, commonPrefix) {
- this.prefix = commonPrefix;
- this.convertToTree(summaryMap, commonPrefix);
-}
-
-TreeSummary.prototype = {
- getNode: function (shortName) {
- return this.map[shortName];
- },
- convertToTree: function (summaryMap, arrayPrefix) {
- var nodes = [],
- rootPath = arrayPrefix.join(SEP) + SEP,
- root = new Node(rootPath, 'dir'),
- tmp,
- tmpChildren,
- seen = {},
- filesUnderRoot = false;
-
- seen[rootPath] = root;
- Object.keys(summaryMap).forEach(function (key) {
- var metrics = summaryMap[key],
- node,
- parentPath,
- parent;
- node = new Node(key, 'file', metrics);
- seen[key] = node;
- nodes.push(node);
- parentPath = path.dirname(key) + SEP;
- if (parentPath === SEP + SEP || parentPath === '.' + SEP) {
- parentPath = SEP + '__root__' + SEP;
- }
- parent = seen[parentPath];
- if (!parent) {
- parent = new Node(parentPath, 'dir');
- root.addChild(parent);
- seen[parentPath] = parent;
- }
- parent.addChild(node);
- if (parent === root) { filesUnderRoot = true; }
- });
-
- if (filesUnderRoot && arrayPrefix.length > 0) {
- arrayPrefix.pop(); //start at one level above
- tmp = root;
- tmpChildren = tmp.children;
- tmp.children = [];
- root = new Node(arrayPrefix.join(SEP) + SEP, 'dir');
- root.addChild(tmp);
- tmpChildren.forEach(function (child) {
- if (child.kind === 'dir') {
- root.addChild(child);
- } else {
- tmp.addChild(child);
- }
- });
- }
- this.fixupNodes(root, arrayPrefix.join(SEP) + SEP);
- this.calculateMetrics(root);
- this.root = root;
- this.map = {};
- this.indexAndSortTree(root, this.map);
- },
-
- fixupNodes: function (node, prefix, parent) {
- var that = this;
- if (node.name.indexOf(prefix) === 0) {
- node.name = node.name.substring(prefix.length);
- }
- if (node.name.charAt(0) === SEP) {
- node.name = node.name.substring(1);
- }
- if (parent) {
- if (parent.name !== '__root__' + SEP) {
- node.relativeName = node.name.substring(parent.name.length);
- } else {
- node.relativeName = node.name;
- }
- } else {
- node.relativeName = node.name.substring(prefix.length);
- }
- node.children.forEach(function (child) {
- that.fixupNodes(child, prefix, node);
- });
- },
- calculateMetrics: function (entry) {
- var that = this,
- fileChildren;
- if (entry.kind !== 'dir') {return; }
- entry.children.forEach(function (child) {
- that.calculateMetrics(child);
- });
- entry.metrics = utils.mergeSummaryObjects.apply(
- null,
- entry.children.map(function (child) { return child.metrics; })
- );
- // calclulate "java-style" package metrics where there is no hierarchy
- // across packages
- fileChildren = entry.children.filter(function (n) { return n.kind !== 'dir'; });
- if (fileChildren.length > 0) {
- entry.packageMetrics = utils.mergeSummaryObjects.apply(
- null,
- fileChildren.map(function (child) { return child.metrics; })
- );
- } else {
- entry.packageMetrics = null;
- }
- },
- indexAndSortTree: function (node, map) {
- var that = this;
- map[node.name] = node;
- node.children.sort(function (a, b) {
- a = a.relativeName;
- b = b.relativeName;
- return a < b ? -1 : a > b ? 1 : 0;
- });
- node.children.forEach(function (child) {
- that.indexAndSortTree(child, map);
- });
- },
- toJSON: function () {
- return {
- prefix: this.prefix,
- root: this.root.toJSON()
- };
- }
-};
-
-function TreeSummarizer() {
- this.summaryMap = {};
-}
-
-TreeSummarizer.prototype = {
- addFileCoverageSummary: function (filePath, metrics) {
- this.summaryMap[filePath] = metrics;
- },
- getTreeSummary: function () {
- var commonArrayPrefix = findCommonArrayPrefix(Object.keys(this.summaryMap));
- return new TreeSummary(this.summaryMap, commonArrayPrefix);
- }
-};
-
-module.exports = TreeSummarizer;
diff --git a/node_modules/istanbul/lib/util/writer.js b/node_modules/istanbul/lib/util/writer.js
deleted file mode 100644
index f5e68293c..000000000
--- a/node_modules/istanbul/lib/util/writer.js
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-var util = require('util'),
- EventEmitter = require('events').EventEmitter;
-
-function extend(cons, proto) {
- Object.keys(proto).forEach(function (k) {
- cons.prototype[k] = proto[k];
- });
-}
-
-/**
- * abstract interfaces for writing content
- * @class ContentWriter
- * @module io
- * @main io
- * @constructor
- */
-//abstract interface for writing content
-function ContentWriter() {
-}
-
-ContentWriter.prototype = {
- /**
- * writes the specified string as-is
- * @method write
- * @param {String} str the string to write
- */
- write: /* istanbul ignore next: abstract method */ function (/* str */) {
- throw new Error('write: must be overridden');
- },
- /**
- * writes the specified string with a newline at the end
- * @method println
- * @param {String} str the string to write
- */
- println: function (str) { this.write(str + '\n'); }
-};
-
-/**
- * abstract interface for writing files and assets. The caller is expected to
- * call `done` on the writer after it has finished writing all the required
- * files. The writer is an event-emitter that emits a `done` event when `done`
- * is called on it *and* all files have successfully been written.
- *
- * @class Writer
- * @constructor
- */
-function Writer() {
- EventEmitter.call(this);
-}
-
-util.inherits(Writer, EventEmitter);
-
-extend(Writer, {
- /**
- * allows writing content to a file using a callback that is passed a content writer
- * @method writeFile
- * @param {String} file the name of the file to write
- * @param {Function} callback the callback that is called as `callback(contentWriter)`
- */
- writeFile: /* istanbul ignore next: abstract method */ function (/* file, callback */) {
- throw new Error('writeFile: must be overridden');
- },
- /**
- * copies a file from source to destination
- * @method copyFile
- * @param {String} source the file to copy, found on the file system
- * @param {String} dest the destination path
- */
- copyFile: /* istanbul ignore next: abstract method */ function (/* source, dest */) {
- throw new Error('copyFile: must be overridden');
- },
- /**
- * marker method to indicate that the caller is done with this writer object
- * The writer is expected to emit a `done` event only after this method is called
- * and it is truly done.
- * @method done
- */
- done: /* istanbul ignore next: abstract method */ function () {
- throw new Error('done: must be overridden');
- }
-});
-
-module.exports = {
- Writer: Writer,
- ContentWriter: ContentWriter
-};
-
diff --git a/node_modules/istanbul/lib/util/yui-load-hook.js b/node_modules/istanbul/lib/util/yui-load-hook.js
deleted file mode 100644
index 9b1365d7a..000000000
--- a/node_modules/istanbul/lib/util/yui-load-hook.js
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- Copyright (c) 2012, Yahoo! Inc. All rights reserved.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-
-//EXPERIMENTAL code: do not rely on this in anyway until the docs say it is allowed
-
-var path = require('path'),
- yuiRegexp = /yui-nodejs\.js$/;
-
-module.exports = function (matchFn, transformFn, verbose) {
- return function (file) {
- if (!file.match(yuiRegexp)) {
- return;
- }
- var YMain = require(file),
- YUI,
- loaderFn,
- origGet;
-
- if (YMain.YUI) {
- YUI = YMain.YUI;
- loaderFn = YUI.Env && YUI.Env.mods && YUI.Env.mods['loader-base'] ? YUI.Env.mods['loader-base'].fn : null;
- if (!loaderFn) { return; }
- if (verbose) { console.log('Applying YUI load post-hook'); }
- YUI.Env.mods['loader-base'].fn = function (Y) {
- loaderFn.call(null, Y);
- origGet = Y.Get._exec;
- Y.Get._exec = function (data, url, cb) {
- if (matchFn(url) || matchFn(path.resolve(url))) { //allow for relative paths as well
- if (verbose) {
- console.log('Transforming [' + url + ']');
- }
- try {
- data = transformFn(data, url);
- } catch (ex) {
- console.error('Error transforming: ' + url + ' return original code');
- console.error(ex.message || ex);
- if (ex.stack) { console.error(ex.stack); }
- }
- }
- return origGet.call(Y, data, url, cb);
- };
- return Y;
- };
- }
- };
-};
-
diff --git a/node_modules/istanbul/node_modules/.bin/escodegen b/node_modules/istanbul/node_modules/.bin/escodegen
deleted file mode 120000
index 690c2f83d..000000000
--- a/node_modules/istanbul/node_modules/.bin/escodegen
+++ /dev/null
@@ -1 +0,0 @@
-../../../escodegen/bin/escodegen.js \ No newline at end of file
diff --git a/node_modules/istanbul/node_modules/.bin/esgenerate b/node_modules/istanbul/node_modules/.bin/esgenerate
deleted file mode 120000
index 71b533278..000000000
--- a/node_modules/istanbul/node_modules/.bin/esgenerate
+++ /dev/null
@@ -1 +0,0 @@
-../../../escodegen/bin/esgenerate.js \ No newline at end of file
diff --git a/node_modules/istanbul/node_modules/.bin/esparse b/node_modules/istanbul/node_modules/.bin/esparse
deleted file mode 120000
index d3e4b572c..000000000
--- a/node_modules/istanbul/node_modules/.bin/esparse
+++ /dev/null
@@ -1 +0,0 @@
-../../../esprima/bin/esparse.js \ No newline at end of file
diff --git a/node_modules/istanbul/node_modules/.bin/esvalidate b/node_modules/istanbul/node_modules/.bin/esvalidate
deleted file mode 120000
index f8ef4b99d..000000000
--- a/node_modules/istanbul/node_modules/.bin/esvalidate
+++ /dev/null
@@ -1 +0,0 @@
-../../../esprima/bin/esvalidate.js \ No newline at end of file
diff --git a/node_modules/istanbul/node_modules/.bin/handlebars b/node_modules/istanbul/node_modules/.bin/handlebars
deleted file mode 120000
index dfec1fc63..000000000
--- a/node_modules/istanbul/node_modules/.bin/handlebars
+++ /dev/null
@@ -1 +0,0 @@
-../../../handlebars/bin/handlebars \ No newline at end of file
diff --git a/node_modules/istanbul/node_modules/.bin/js-yaml b/node_modules/istanbul/node_modules/.bin/js-yaml
deleted file mode 120000
index daf9f1158..000000000
--- a/node_modules/istanbul/node_modules/.bin/js-yaml
+++ /dev/null
@@ -1 +0,0 @@
-../../../js-yaml/bin/js-yaml.js \ No newline at end of file
diff --git a/node_modules/istanbul/node_modules/.bin/mkdirp b/node_modules/istanbul/node_modules/.bin/mkdirp
deleted file mode 120000
index 91a5f623f..000000000
--- a/node_modules/istanbul/node_modules/.bin/mkdirp
+++ /dev/null
@@ -1 +0,0 @@
-../../../mkdirp/bin/cmd.js \ No newline at end of file
diff --git a/node_modules/istanbul/node_modules/.bin/nopt b/node_modules/istanbul/node_modules/.bin/nopt
deleted file mode 120000
index d6493b6a9..000000000
--- a/node_modules/istanbul/node_modules/.bin/nopt
+++ /dev/null
@@ -1 +0,0 @@
-../../../nopt/bin/nopt.js \ No newline at end of file
diff --git a/node_modules/istanbul/node_modules/.bin/which b/node_modules/istanbul/node_modules/.bin/which
deleted file mode 120000
index 091d52ad6..000000000
--- a/node_modules/istanbul/node_modules/.bin/which
+++ /dev/null
@@ -1 +0,0 @@
-../../../which/bin/which \ No newline at end of file
diff --git a/node_modules/istanbul/node_modules/async/CHANGELOG.md b/node_modules/istanbul/node_modules/async/CHANGELOG.md
deleted file mode 100644
index f15e08121..000000000
--- a/node_modules/istanbul/node_modules/async/CHANGELOG.md
+++ /dev/null
@@ -1,125 +0,0 @@
-# v1.5.2
-- Allow using `"consructor"` as an argument in `memoize` (#998)
-- Give a better error messsage when `auto` dependency checking fails (#994)
-- Various doc updates (#936, #956, #979, #1002)
-
-# v1.5.1
-- Fix issue with `pause` in `queue` with concurrency enabled (#946)
-- `while` and `until` now pass the final result to callback (#963)
-- `auto` will properly handle concurrency when there is no callback (#966)
-- `auto` will now properly stop execution when an error occurs (#988, #993)
-- Various doc fixes (#971, #980)
-
-# v1.5.0
-
-- Added `transform`, analogous to [`_.transform`](http://lodash.com/docs#transform) (#892)
-- `map` now returns an object when an object is passed in, rather than array with non-numeric keys. `map` will begin always returning an array with numeric indexes in the next major release. (#873)
-- `auto` now accepts an optional `concurrency` argument to limit the number of running tasks (#637)
-- Added `queue#workersList()`, to retrieve the list of currently running tasks. (#891)
-- Various code simplifications (#896, #904)
-- Various doc fixes :scroll: (#890, #894, #903, #905, #912)
-
-# v1.4.2
-
-- Ensure coverage files don't get published on npm (#879)
-
-# v1.4.1
-
-- Add in overlooked `detectLimit` method (#866)
-- Removed unnecessary files from npm releases (#861)
-- Removed usage of a reserved word to prevent :boom: in older environments (#870)
-
-# v1.4.0
-
-- `asyncify` now supports promises (#840)
-- Added `Limit` versions of `filter` and `reject` (#836)
-- Add `Limit` versions of `detect`, `some` and `every` (#828, #829)
-- `some`, `every` and `detect` now short circuit early (#828, #829)
-- Improve detection of the global object (#804), enabling use in WebWorkers
-- `whilst` now called with arguments from iterator (#823)
-- `during` now gets called with arguments from iterator (#824)
-- Code simplifications and optimizations aplenty ([diff](https://github.com/caolan/async/compare/v1.3.0...v1.4.0))
-
-
-# v1.3.0
-
-New Features:
-- Added `constant`
-- Added `asyncify`/`wrapSync` for making sync functions work with callbacks. (#671, #806)
-- Added `during` and `doDuring`, which are like `whilst` with an async truth test. (#800)
-- `retry` now accepts an `interval` parameter to specify a delay between retries. (#793)
-- `async` should work better in Web Workers due to better `root` detection (#804)
-- Callbacks are now optional in `whilst`, `doWhilst`, `until`, and `doUntil` (#642)
-- Various internal updates (#786, #801, #802, #803)
-- Various doc fixes (#790, #794)
-
-Bug Fixes:
-- `cargo` now exposes the `payload` size, and `cargo.payload` can be changed on the fly after the `cargo` is created. (#740, #744, #783)
-
-
-# v1.2.1
-
-Bug Fix:
-
-- Small regression with synchronous iterator behavior in `eachSeries` with a 1-element array. Before 1.1.0, `eachSeries`'s callback was called on the same tick, which this patch restores. In 2.0.0, it will be called on the next tick. (#782)
-
-
-# v1.2.0
-
-New Features:
-
-- Added `timesLimit` (#743)
-- `concurrency` can be changed after initialization in `queue` by setting `q.concurrency`. The new concurrency will be reflected the next time a task is processed. (#747, #772)
-
-Bug Fixes:
-
-- Fixed a regression in `each` and family with empty arrays that have additional properties. (#775, #777)
-
-
-# v1.1.1
-
-Bug Fix:
-
-- Small regression with synchronous iterator behavior in `eachSeries` with a 1-element array. Before 1.1.0, `eachSeries`'s callback was called on the same tick, which this patch restores. In 2.0.0, it will be called on the next tick. (#782)
-
-
-# v1.1.0
-
-New Features:
-
-- `cargo` now supports all of the same methods and event callbacks as `queue`.
-- Added `ensureAsync` - A wrapper that ensures an async function calls its callback on a later tick. (#769)
-- Optimized `map`, `eachOf`, and `waterfall` families of functions
-- Passing a `null` or `undefined` array to `map`, `each`, `parallel` and families will be treated as an empty array (#667).
-- The callback is now optional for the composed results of `compose` and `seq`. (#618)
-- Reduced file size by 4kb, (minified version by 1kb)
-- Added code coverage through `nyc` and `coveralls` (#768)
-
-Bug Fixes:
-
-- `forever` will no longer stack overflow with a synchronous iterator (#622)
-- `eachLimit` and other limit functions will stop iterating once an error occurs (#754)
-- Always pass `null` in callbacks when there is no error (#439)
-- Ensure proper conditions when calling `drain()` after pushing an empty data set to a queue (#668)
-- `each` and family will properly handle an empty array (#578)
-- `eachSeries` and family will finish if the underlying array is modified during execution (#557)
-- `queue` will throw if a non-function is passed to `q.push()` (#593)
-- Doc fixes (#629, #766)
-
-
-# v1.0.0
-
-No known breaking changes, we are simply complying with semver from here on out.
-
-Changes:
-
-- Start using a changelog!
-- Add `forEachOf` for iterating over Objects (or to iterate Arrays with indexes available) (#168 #704 #321)
-- Detect deadlocks in `auto` (#663)
-- Better support for require.js (#527)
-- Throw if queue created with concurrency `0` (#714)
-- Fix unneeded iteration in `queue.resume()` (#758)
-- Guard against timer mocking overriding `setImmediate` (#609 #611)
-- Miscellaneous doc fixes (#542 #596 #615 #628 #631 #690 #729)
-- Use single noop function internally (#546)
-- Optimize internal `_each`, `_map` and `_keys` functions.
diff --git a/node_modules/istanbul/node_modules/async/LICENSE b/node_modules/istanbul/node_modules/async/LICENSE
deleted file mode 100644
index 8f2969858..000000000
--- a/node_modules/istanbul/node_modules/async/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2010-2014 Caolan McMahon
-
-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.
diff --git a/node_modules/istanbul/node_modules/async/README.md b/node_modules/istanbul/node_modules/async/README.md
deleted file mode 100644
index 316c40505..000000000
--- a/node_modules/istanbul/node_modules/async/README.md
+++ /dev/null
@@ -1,1877 +0,0 @@
-# Async.js
-
-[![Build Status via Travis CI](https://travis-ci.org/caolan/async.svg?branch=master)](https://travis-ci.org/caolan/async)
-[![NPM version](http://img.shields.io/npm/v/async.svg)](https://www.npmjs.org/package/async)
-[![Coverage Status](https://coveralls.io/repos/caolan/async/badge.svg?branch=master)](https://coveralls.io/r/caolan/async?branch=master)
-[![Join the chat at https://gitter.im/caolan/async](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/caolan/async?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-
-
-Async is a utility module which provides straight-forward, powerful functions
-for working with asynchronous JavaScript. Although originally designed for
-use with [Node.js](http://nodejs.org) and installable via `npm install async`,
-it can also be used directly in the browser.
-
-Async is also installable via:
-
-- [bower](http://bower.io/): `bower install async`
-- [component](https://github.com/component/component): `component install
- caolan/async`
-- [jam](http://jamjs.org/): `jam install async`
-- [spm](http://spmjs.io/): `spm install async`
-
-Async provides around 20 functions that include the usual 'functional'
-suspects (`map`, `reduce`, `filter`, `each`…) as well as some common patterns
-for asynchronous control flow (`parallel`, `series`, `waterfall`…). All these
-functions assume you follow the Node.js convention of providing a single
-callback as the last argument of your `async` function.
-
-
-## Quick Examples
-
-```javascript
-async.map(['file1','file2','file3'], fs.stat, function(err, results){
- // results is now an array of stats for each file
-});
-
-async.filter(['file1','file2','file3'], fs.exists, function(results){
- // results now equals an array of the existing files
-});
-
-async.parallel([
- function(){ ... },
- function(){ ... }
-], callback);
-
-async.series([
- function(){ ... },
- function(){ ... }
-]);
-```
-
-There are many more functions available so take a look at the docs below for a
-full list. This module aims to be comprehensive, so if you feel anything is
-missing please create a GitHub issue for it.
-
-## Common Pitfalls <sub>[(StackOverflow)](http://stackoverflow.com/questions/tagged/async.js)</sub>
-### Synchronous iteration functions
-
-If you get an error like `RangeError: Maximum call stack size exceeded.` or other stack overflow issues when using async, you are likely using a synchronous iterator. By *synchronous* we mean a function that calls its callback on the same tick in the javascript event loop, without doing any I/O or using any timers. Calling many callbacks iteratively will quickly overflow the stack. If you run into this issue, just defer your callback with `async.setImmediate` to start a new call stack on the next tick of the event loop.
-
-This can also arise by accident if you callback early in certain cases:
-
-```js
-async.eachSeries(hugeArray, function iterator(item, callback) {
- if (inCache(item)) {
- callback(null, cache[item]); // if many items are cached, you'll overflow
- } else {
- doSomeIO(item, callback);
- }
-}, function done() {
- //...
-});
-```
-
-Just change it to:
-
-```js
-async.eachSeries(hugeArray, function iterator(item, callback) {
- if (inCache(item)) {
- async.setImmediate(function () {
- callback(null, cache[item]);
- });
- } else {
- doSomeIO(item, callback);
- //...
-```
-
-Async guards against synchronous functions in some, but not all, cases. If you are still running into stack overflows, you can defer as suggested above, or wrap functions with [`async.ensureAsync`](#ensureAsync) Functions that are asynchronous by their nature do not have this problem and don't need the extra callback deferral.
-
-If JavaScript's event loop is still a bit nebulous, check out [this article](http://blog.carbonfive.com/2013/10/27/the-javascript-event-loop-explained/) or [this talk](http://2014.jsconf.eu/speakers/philip-roberts-what-the-heck-is-the-event-loop-anyway.html) for more detailed information about how it works.
-
-
-### Multiple callbacks
-
-Make sure to always `return` when calling a callback early, otherwise you will cause multiple callbacks and unpredictable behavior in many cases.
-
-```js
-async.waterfall([
- function (callback) {
- getSomething(options, function (err, result) {
- if (err) {
- callback(new Error("failed getting something:" + err.message));
- // we should return here
- }
- // since we did not return, this callback still will be called and
- // `processData` will be called twice
- callback(null, result);
- });
- },
- processData
-], done)
-```
-
-It is always good practice to `return callback(err, result)` whenever a callback call is not the last statement of a function.
-
-
-### Binding a context to an iterator
-
-This section is really about `bind`, not about `async`. If you are wondering how to
-make `async` execute your iterators in a given context, or are confused as to why
-a method of another library isn't working as an iterator, study this example:
-
-```js
-// Here is a simple object with an (unnecessarily roundabout) squaring method
-var AsyncSquaringLibrary = {
- squareExponent: 2,
- square: function(number, callback){
- var result = Math.pow(number, this.squareExponent);
- setTimeout(function(){
- callback(null, result);
- }, 200);
- }
-};
-
-async.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result){
- // result is [NaN, NaN, NaN]
- // This fails because the `this.squareExponent` expression in the square
- // function is not evaluated in the context of AsyncSquaringLibrary, and is
- // therefore undefined.
-});
-
-async.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){
- // result is [1, 4, 9]
- // With the help of bind we can attach a context to the iterator before
- // passing it to async. Now the square function will be executed in its
- // 'home' AsyncSquaringLibrary context and the value of `this.squareExponent`
- // will be as expected.
-});
-```
-
-## Download
-
-The source is available for download from
-[GitHub](https://github.com/caolan/async/blob/master/lib/async.js).
-Alternatively, you can install using Node Package Manager (`npm`):
-
- npm install async
-
-As well as using Bower:
-
- bower install async
-
-__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 29.6kb Uncompressed
-
-## In the Browser
-
-So far it's been tested in IE6, IE7, IE8, FF3.6 and Chrome 5.
-
-Usage:
-
-```html
-<script type="text/javascript" src="async.js"></script>
-<script type="text/javascript">
-
- async.map(data, asyncProcess, function(err, results){
- alert(results);
- });
-
-</script>
-```
-
-## Documentation
-
-Some functions are also available in the following forms:
-* `<name>Series` - the same as `<name>` but runs only a single async operation at a time
-* `<name>Limit` - the same as `<name>` but runs a maximum of `limit` async operations at a time
-
-### Collections
-
-* [`each`](#each), `eachSeries`, `eachLimit`
-* [`forEachOf`](#forEachOf), `forEachOfSeries`, `forEachOfLimit`
-* [`map`](#map), `mapSeries`, `mapLimit`
-* [`filter`](#filter), `filterSeries`, `filterLimit`
-* [`reject`](#reject), `rejectSeries`, `rejectLimit`
-* [`reduce`](#reduce), [`reduceRight`](#reduceRight)
-* [`detect`](#detect), `detectSeries`, `detectLimit`
-* [`sortBy`](#sortBy)
-* [`some`](#some), `someLimit`
-* [`every`](#every), `everyLimit`
-* [`concat`](#concat), `concatSeries`
-
-### Control Flow
-
-* [`series`](#seriestasks-callback)
-* [`parallel`](#parallel), `parallelLimit`
-* [`whilst`](#whilst), [`doWhilst`](#doWhilst)
-* [`until`](#until), [`doUntil`](#doUntil)
-* [`during`](#during), [`doDuring`](#doDuring)
-* [`forever`](#forever)
-* [`waterfall`](#waterfall)
-* [`compose`](#compose)
-* [`seq`](#seq)
-* [`applyEach`](#applyEach), `applyEachSeries`
-* [`queue`](#queue), [`priorityQueue`](#priorityQueue)
-* [`cargo`](#cargo)
-* [`auto`](#auto)
-* [`retry`](#retry)
-* [`iterator`](#iterator)
-* [`times`](#times), `timesSeries`, `timesLimit`
-
-### Utils
-
-* [`apply`](#apply)
-* [`nextTick`](#nextTick)
-* [`memoize`](#memoize)
-* [`unmemoize`](#unmemoize)
-* [`ensureAsync`](#ensureAsync)
-* [`constant`](#constant)
-* [`asyncify`](#asyncify)
-* [`wrapSync`](#wrapSync)
-* [`log`](#log)
-* [`dir`](#dir)
-* [`noConflict`](#noConflict)
-
-## Collections
-
-<a name="forEach" />
-<a name="each" />
-### each(arr, iterator, [callback])
-
-Applies the function `iterator` to each item in `arr`, in parallel.
-The `iterator` is called with an item from the list, and a callback for when it
-has finished. If the `iterator` passes an error to its `callback`, the main
-`callback` (for the `each` function) is immediately called with the error.
-
-Note, that since this function applies `iterator` to each item in parallel,
-there is no guarantee that the iterator functions will complete in order.
-
-__Arguments__
-
-* `arr` - An array to iterate over.
-* `iterator(item, callback)` - A function to apply to each item in `arr`.
- The iterator is passed a `callback(err)` which must be called once it has
- completed. If no error has occurred, the `callback` should be run without
- arguments or with an explicit `null` argument. The array index is not passed
- to the iterator. If you need the index, use [`forEachOf`](#forEachOf).
-* `callback(err)` - *Optional* A callback which is called when all `iterator` functions
- have finished, or an error occurs.
-
-__Examples__
-
-
-```js
-// assuming openFiles is an array of file names and saveFile is a function
-// to save the modified contents of that file:
-
-async.each(openFiles, saveFile, function(err){
- // if any of the saves produced an error, err would equal that error
-});
-```
-
-```js
-// assuming openFiles is an array of file names
-
-async.each(openFiles, function(file, callback) {
-
- // Perform operation on file here.
- console.log('Processing file ' + file);
-
- if( file.length > 32 ) {
- console.log('This file name is too long');
- callback('File name too long');
- } else {
- // Do work to process file here
- console.log('File processed');
- callback();
- }
-}, function(err){
- // if any of the file processing produced an error, err would equal that error
- if( err ) {
- // One of the iterations produced an error.
- // All processing will now stop.
- console.log('A file failed to process');
- } else {
- console.log('All files have been processed successfully');
- }
-});
-```
-
-__Related__
-
-* eachSeries(arr, iterator, [callback])
-* eachLimit(arr, limit, iterator, [callback])
-
----------------------------------------
-
-<a name="forEachOf" />
-<a name="eachOf" />
-
-### forEachOf(obj, iterator, [callback])
-
-Like `each`, except that it iterates over objects, and passes the key as the second argument to the iterator.
-
-__Arguments__
-
-* `obj` - An object or array to iterate over.
-* `iterator(item, key, callback)` - A function to apply to each item in `obj`.
-The `key` is the item's key, or index in the case of an array. The iterator is
-passed a `callback(err)` which must be called once it has completed. If no
-error has occurred, the callback should be run without arguments or with an
-explicit `null` argument.
-* `callback(err)` - *Optional* A callback which is called when all `iterator` functions have finished, or an error occurs.
-
-__Example__
-
-```js
-var obj = {dev: "/dev.json", test: "/test.json", prod: "/prod.json"};
-var configs = {};
-
-async.forEachOf(obj, function (value, key, callback) {
- fs.readFile(__dirname + value, "utf8", function (err, data) {
- if (err) return callback(err);
- try {
- configs[key] = JSON.parse(data);
- } catch (e) {
- return callback(e);
- }
- callback();
- })
-}, function (err) {
- if (err) console.error(err.message);
- // configs is now a map of JSON data
- doSomethingWith(configs);
-})
-```
-
-__Related__
-
-* forEachOfSeries(obj, iterator, [callback])
-* forEachOfLimit(obj, limit, iterator, [callback])
-
----------------------------------------
-
-<a name="map" />
-### map(arr, iterator, [callback])
-
-Produces a new array of values by mapping each value in `arr` through
-the `iterator` function. The `iterator` is called with an item from `arr` and a
-callback for when it has finished processing. Each of these callback takes 2 arguments:
-an `error`, and the transformed item from `arr`. If `iterator` passes an error to its
-callback, the main `callback` (for the `map` function) is immediately called with the error.
-
-Note, that since this function applies the `iterator` to each item in parallel,
-there is no guarantee that the `iterator` functions will complete in order.
-However, the results array will be in the same order as the original `arr`.
-
-__Arguments__
-
-* `arr` - An array to iterate over.
-* `iterator(item, callback)` - A function to apply to each item in `arr`.
- The iterator is passed a `callback(err, transformed)` which must be called once
- it has completed with an error (which can be `null`) and a transformed item.
-* `callback(err, results)` - *Optional* A callback which is called when all `iterator`
- functions have finished, or an error occurs. Results is an array of the
- transformed items from the `arr`.
-
-__Example__
-
-```js
-async.map(['file1','file2','file3'], fs.stat, function(err, results){
- // results is now an array of stats for each file
-});
-```
-
-__Related__
-* mapSeries(arr, iterator, [callback])
-* mapLimit(arr, limit, iterator, [callback])
-
----------------------------------------
-
-<a name="select" />
-<a name="filter" />
-### filter(arr, iterator, [callback])
-
-__Alias:__ `select`
-
-Returns a new array of all the values in `arr` which pass an async truth test.
-_The callback for each `iterator` call only accepts a single argument of `true` or
-`false`; it does not accept an error argument first!_ This is in-line with the
-way node libraries work with truth tests like `fs.exists`. This operation is
-performed in parallel, but the results array will be in the same order as the
-original.
-
-__Arguments__
-
-* `arr` - An array to iterate over.
-* `iterator(item, callback)` - A truth test to apply to each item in `arr`.
- The `iterator` is passed a `callback(truthValue)`, which must be called with a
- boolean argument once it has completed.
-* `callback(results)` - *Optional* A callback which is called after all the `iterator`
- functions have finished.
-
-__Example__
-
-```js
-async.filter(['file1','file2','file3'], fs.exists, function(results){
- // results now equals an array of the existing files
-});
-```
-
-__Related__
-
-* filterSeries(arr, iterator, [callback])
-* filterLimit(arr, limit, iterator, [callback])
-
----------------------------------------
-
-<a name="reject" />
-### reject(arr, iterator, [callback])
-
-The opposite of [`filter`](#filter). Removes values that pass an `async` truth test.
-
-__Related__
-
-* rejectSeries(arr, iterator, [callback])
-* rejectLimit(arr, limit, iterator, [callback])
-
----------------------------------------
-
-<a name="reduce" />
-### reduce(arr, memo, iterator, [callback])
-
-__Aliases:__ `inject`, `foldl`
-
-Reduces `arr` into a single value using an async `iterator` to return
-each successive step. `memo` is the initial state of the reduction.
-This function only operates in series.
-
-For performance reasons, it may make sense to split a call to this function into
-a parallel map, and then use the normal `Array.prototype.reduce` on the results.
-This function is for situations where each step in the reduction needs to be async;
-if you can get the data before reducing it, then it's probably a good idea to do so.
-
-__Arguments__
-
-* `arr` - An array to iterate over.
-* `memo` - The initial state of the reduction.
-* `iterator(memo, item, callback)` - A function applied to each item in the
- array to produce the next step in the reduction. The `iterator` is passed a
- `callback(err, reduction)` which accepts an optional error as its first
- argument, and the state of the reduction as the second. If an error is
- passed to the callback, the reduction is stopped and the main `callback` is
- immediately called with the error.
-* `callback(err, result)` - *Optional* A callback which is called after all the `iterator`
- functions have finished. Result is the reduced value.
-
-__Example__
-
-```js
-async.reduce([1,2,3], 0, function(memo, item, callback){
- // pointless async:
- process.nextTick(function(){
- callback(null, memo + item)
- });
-}, function(err, result){
- // result is now equal to the last value of memo, which is 6
-});
-```
-
----------------------------------------
-
-<a name="reduceRight" />
-### reduceRight(arr, memo, iterator, [callback])
-
-__Alias:__ `foldr`
-
-Same as [`reduce`](#reduce), only operates on `arr` in reverse order.
-
-
----------------------------------------
-
-<a name="detect" />
-### detect(arr, iterator, [callback])
-
-Returns the first value in `arr` that passes an async truth test. The
-`iterator` is applied in parallel, meaning the first iterator to return `true` will
-fire the detect `callback` with that result. That means the result might not be
-the first item in the original `arr` (in terms of order) that passes the test.
-
-If order within the original `arr` is important, then look at [`detectSeries`](#detectSeries).
-
-__Arguments__
-
-* `arr` - An array to iterate over.
-* `iterator(item, callback)` - A truth test to apply to each item in `arr`.
- The iterator is passed a `callback(truthValue)` which must be called with a
- boolean argument once it has completed. **Note: this callback does not take an error as its first argument.**
-* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns
- `true`, or after all the `iterator` functions have finished. Result will be
- the first item in the array that passes the truth test (iterator) or the
- value `undefined` if none passed. **Note: this callback does not take an error as its first argument.**
-
-__Example__
-
-```js
-async.detect(['file1','file2','file3'], fs.exists, function(result){
- // result now equals the first file in the list that exists
-});
-```
-
-__Related__
-
-* detectSeries(arr, iterator, [callback])
-* detectLimit(arr, limit, iterator, [callback])
-
----------------------------------------
-
-<a name="sortBy" />
-### sortBy(arr, iterator, [callback])
-
-Sorts a list by the results of running each `arr` value through an async `iterator`.
-
-__Arguments__
-
-* `arr` - An array to iterate over.
-* `iterator(item, callback)` - A function to apply to each item in `arr`.
- The iterator is passed a `callback(err, sortValue)` which must be called once it
- has completed with an error (which can be `null`) and a value to use as the sort
- criteria.
-* `callback(err, results)` - *Optional* A callback which is called after all the `iterator`
- functions have finished, or an error occurs. Results is the items from
- the original `arr` sorted by the values returned by the `iterator` calls.
-
-__Example__
-
-```js
-async.sortBy(['file1','file2','file3'], function(file, callback){
- fs.stat(file, function(err, stats){
- callback(err, stats.mtime);
- });
-}, function(err, results){
- // results is now the original array of files sorted by
- // modified date
-});
-```
-
-__Sort Order__
-
-By modifying the callback parameter the sorting order can be influenced:
-
-```js
-//ascending order
-async.sortBy([1,9,3,5], function(x, callback){
- callback(null, x);
-}, function(err,result){
- //result callback
-} );
-
-//descending order
-async.sortBy([1,9,3,5], function(x, callback){
- callback(null, x*-1); //<- x*-1 instead of x, turns the order around
-}, function(err,result){
- //result callback
-} );
-```
-
----------------------------------------
-
-<a name="some" />
-### some(arr, iterator, [callback])
-
-__Alias:__ `any`
-
-Returns `true` if at least one element in the `arr` satisfies an async test.
-_The callback for each iterator call only accepts a single argument of `true` or
-`false`; it does not accept an error argument first!_ This is in-line with the
-way node libraries work with truth tests like `fs.exists`. Once any iterator
-call returns `true`, the main `callback` is immediately called.
-
-__Arguments__
-
-* `arr` - An array to iterate over.
-* `iterator(item, callback)` - A truth test to apply to each item in the array
- in parallel. The iterator is passed a `callback(truthValue)`` which must be
- called with a boolean argument once it has completed.
-* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns
- `true`, or after all the iterator functions have finished. Result will be
- either `true` or `false` depending on the values of the async tests.
-
- **Note: the callbacks do not take an error as their first argument.**
-__Example__
-
-```js
-async.some(['file1','file2','file3'], fs.exists, function(result){
- // if result is true then at least one of the files exists
-});
-```
-
-__Related__
-
-* someLimit(arr, limit, iterator, callback)
-
----------------------------------------
-
-<a name="every" />
-### every(arr, iterator, [callback])
-
-__Alias:__ `all`
-
-Returns `true` if every element in `arr` satisfies an async test.
-_The callback for each `iterator` call only accepts a single argument of `true` or
-`false`; it does not accept an error argument first!_ This is in-line with the
-way node libraries work with truth tests like `fs.exists`.
-
-__Arguments__
-
-* `arr` - An array to iterate over.
-* `iterator(item, callback)` - A truth test to apply to each item in the array
- in parallel. The iterator is passed a `callback(truthValue)` which must be
- called with a boolean argument once it has completed.
-* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns
- `false`, or after all the iterator functions have finished. Result will be
- either `true` or `false` depending on the values of the async tests.
-
- **Note: the callbacks do not take an error as their first argument.**
-
-__Example__
-
-```js
-async.every(['file1','file2','file3'], fs.exists, function(result){
- // if result is true then every file exists
-});
-```
-
-__Related__
-
-* everyLimit(arr, limit, iterator, callback)
-
----------------------------------------
-
-<a name="concat" />
-### concat(arr, iterator, [callback])
-
-Applies `iterator` to each item in `arr`, concatenating the results. Returns the
-concatenated list. The `iterator`s are called in parallel, and the results are
-concatenated as they return. There is no guarantee that the results array will
-be returned in the original order of `arr` passed to the `iterator` function.
-
-__Arguments__
-
-* `arr` - An array to iterate over.
-* `iterator(item, callback)` - A function to apply to each item in `arr`.
- The iterator is passed a `callback(err, results)` which must be called once it
- has completed with an error (which can be `null`) and an array of results.
-* `callback(err, results)` - *Optional* A callback which is called after all the `iterator`
- functions have finished, or an error occurs. Results is an array containing
- the concatenated results of the `iterator` function.
-
-__Example__
-
-```js
-async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){
- // files is now a list of filenames that exist in the 3 directories
-});
-```
-
-__Related__
-
-* concatSeries(arr, iterator, [callback])
-
-
-## Control Flow
-
-<a name="series" />
-### series(tasks, [callback])
-
-Run the functions in the `tasks` array in series, each one running once the previous
-function has completed. If any functions in the series pass an error to its
-callback, no more functions are run, and `callback` is immediately called with the value of the error.
-Otherwise, `callback` receives an array of results when `tasks` have completed.
-
-It is also possible to use an object instead of an array. Each property will be
-run as a function, and the results will be passed to the final `callback` as an object
-instead of an array. This can be a more readable way of handling results from
-[`series`](#series).
-
-**Note** that while many implementations preserve the order of object properties, the
-[ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)
-explicitly states that
-
-> The mechanics and order of enumerating the properties is not specified.
-
-So if you rely on the order in which your series of functions are executed, and want
-this to work on all platforms, consider using an array.
-
-__Arguments__
-
-* `tasks` - An array or object containing functions to run, each function is passed
- a `callback(err, result)` it must call on completion with an error `err` (which can
- be `null`) and an optional `result` value.
-* `callback(err, results)` - An optional callback to run once all the functions
- have completed. This function gets a results array (or object) containing all
- the result arguments passed to the `task` callbacks.
-
-__Example__
-
-```js
-async.series([
- function(callback){
- // do some stuff ...
- callback(null, 'one');
- },
- function(callback){
- // do some more stuff ...
- callback(null, 'two');
- }
-],
-// optional callback
-function(err, results){
- // results is now equal to ['one', 'two']
-});
-
-
-// an example using an object instead of an array
-async.series({
- one: function(callback){
- setTimeout(function(){
- callback(null, 1);
- }, 200);
- },
- two: function(callback){
- setTimeout(function(){
- callback(null, 2);
- }, 100);
- }
-},
-function(err, results) {
- // results is now equal to: {one: 1, two: 2}
-});
-```
-
----------------------------------------
-
-<a name="parallel" />
-### parallel(tasks, [callback])
-
-Run the `tasks` array of functions in parallel, without waiting until the previous
-function has completed. If any of the functions pass an error to its
-callback, the main `callback` is immediately called with the value of the error.
-Once the `tasks` have completed, the results are passed to the final `callback` as an
-array.
-
-**Note:** `parallel` is about kicking-off I/O tasks in parallel, not about parallel execution of code. If your tasks do not use any timers or perform any I/O, they will actually be executed in series. Any synchronous setup sections for each task will happen one after the other. JavaScript remains single-threaded.
-
-It is also possible to use an object instead of an array. Each property will be
-run as a function and the results will be passed to the final `callback` as an object
-instead of an array. This can be a more readable way of handling results from
-[`parallel`](#parallel).
-
-
-__Arguments__
-
-* `tasks` - An array or object containing functions to run. Each function is passed
- a `callback(err, result)` which it must call on completion with an error `err`
- (which can be `null`) and an optional `result` value.
-* `callback(err, results)` - An optional callback to run once all the functions
- have completed successfully. This function gets a results array (or object) containing all
- the result arguments passed to the task callbacks.
-
-__Example__
-
-```js
-async.parallel([
- function(callback){
- setTimeout(function(){
- callback(null, 'one');
- }, 200);
- },
- function(callback){
- setTimeout(function(){
- callback(null, 'two');
- }, 100);
- }
-],
-// optional callback
-function(err, results){
- // the results array will equal ['one','two'] even though
- // the second function had a shorter timeout.
-});
-
-
-// an example using an object instead of an array
-async.parallel({
- one: function(callback){
- setTimeout(function(){
- callback(null, 1);
- }, 200);
- },
- two: function(callback){
- setTimeout(function(){
- callback(null, 2);
- }, 100);
- }
-},
-function(err, results) {
- // results is now equals to: {one: 1, two: 2}
-});
-```
-
-__Related__
-
-* parallelLimit(tasks, limit, [callback])
-
----------------------------------------
-
-<a name="whilst" />
-### whilst(test, fn, callback)
-
-Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when stopped,
-or an error occurs.
-
-__Arguments__
-
-* `test()` - synchronous truth test to perform before each execution of `fn`.
-* `fn(callback)` - A function which is called each time `test` passes. The function is
- passed a `callback(err)`, which must be called once it has completed with an
- optional `err` argument.
-* `callback(err, [results])` - A callback which is called after the test
- function has failed and repeated execution of `fn` has stopped. `callback`
- will be passed an error and any arguments passed to the final `fn`'s callback.
-
-__Example__
-
-```js
-var count = 0;
-
-async.whilst(
- function () { return count < 5; },
- function (callback) {
- count++;
- setTimeout(function () {
- callback(null, count);
- }, 1000);
- },
- function (err, n) {
- // 5 seconds have passed, n = 5
- }
-);
-```
-
----------------------------------------
-
-<a name="doWhilst" />
-### doWhilst(fn, test, callback)
-
-The post-check version of [`whilst`](#whilst). To reflect the difference in
-the order of operations, the arguments `test` and `fn` are switched.
-
-`doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.
-
----------------------------------------
-
-<a name="until" />
-### until(test, fn, callback)
-
-Repeatedly call `fn` until `test` returns `true`. Calls `callback` when stopped,
-or an error occurs. `callback` will be passed an error and any arguments passed
-to the final `fn`'s callback.
-
-The inverse of [`whilst`](#whilst).
-
----------------------------------------
-
-<a name="doUntil" />
-### doUntil(fn, test, callback)
-
-Like [`doWhilst`](#doWhilst), except the `test` is inverted. Note the argument ordering differs from `until`.
-
----------------------------------------
-
-<a name="during" />
-### during(test, fn, callback)
-
-Like [`whilst`](#whilst), except the `test` is an asynchronous function that is passed a callback in the form of `function (err, truth)`. If error is passed to `test` or `fn`, the main callback is immediately called with the value of the error.
-
-__Example__
-
-```js
-var count = 0;
-
-async.during(
- function (callback) {
- return callback(null, count < 5);
- },
- function (callback) {
- count++;
- setTimeout(callback, 1000);
- },
- function (err) {
- // 5 seconds have passed
- }
-);
-```
-
----------------------------------------
-
-<a name="doDuring" />
-### doDuring(fn, test, callback)
-
-The post-check version of [`during`](#during). To reflect the difference in
-the order of operations, the arguments `test` and `fn` are switched.
-
-Also a version of [`doWhilst`](#doWhilst) with asynchronous `test` function.
-
----------------------------------------
-
-<a name="forever" />
-### forever(fn, [errback])
-
-Calls the asynchronous function `fn` with a callback parameter that allows it to
-call itself again, in series, indefinitely.
-
-If an error is passed to the callback then `errback` is called with the
-error, and execution stops, otherwise it will never be called.
-
-```js
-async.forever(
- function(next) {
- // next is suitable for passing to things that need a callback(err [, whatever]);
- // it will result in this function being called again.
- },
- function(err) {
- // if next is called with a value in its first parameter, it will appear
- // in here as 'err', and execution will stop.
- }
-);
-```
-
----------------------------------------
-
-<a name="waterfall" />
-### waterfall(tasks, [callback])
-
-Runs the `tasks` array of functions in series, each passing their results to the next in
-the array. However, if any of the `tasks` pass an error to their own callback, the
-next function is not executed, and the main `callback` is immediately called with
-the error.
-
-__Arguments__
-
-* `tasks` - An array of functions to run, each function is passed a
- `callback(err, result1, result2, ...)` it must call on completion. The first
- argument is an error (which can be `null`) and any further arguments will be
- passed as arguments in order to the next task.
-* `callback(err, [results])` - An optional callback to run once all the functions
- have completed. This will be passed the results of the last task's callback.
-
-
-
-__Example__
-
-```js
-async.waterfall([
- function(callback) {
- callback(null, 'one', 'two');
- },
- function(arg1, arg2, callback) {
- // arg1 now equals 'one' and arg2 now equals 'two'
- callback(null, 'three');
- },
- function(arg1, callback) {
- // arg1 now equals 'three'
- callback(null, 'done');
- }
-], function (err, result) {
- // result now equals 'done'
-});
-```
-Or, with named functions:
-
-```js
-async.waterfall([
- myFirstFunction,
- mySecondFunction,
- myLastFunction,
-], function (err, result) {
- // result now equals 'done'
-});
-function myFirstFunction(callback) {
- callback(null, 'one', 'two');
-}
-function mySecondFunction(arg1, arg2, callback) {
- // arg1 now equals 'one' and arg2 now equals 'two'
- callback(null, 'three');
-}
-function myLastFunction(arg1, callback) {
- // arg1 now equals 'three'
- callback(null, 'done');
-}
-```
-
-Or, if you need to pass any argument to the first function:
-
-```js
-async.waterfall([
- async.apply(myFirstFunction, 'zero'),
- mySecondFunction,
- myLastFunction,
-], function (err, result) {
- // result now equals 'done'
-});
-function myFirstFunction(arg1, callback) {
- // arg1 now equals 'zero'
- callback(null, 'one', 'two');
-}
-function mySecondFunction(arg1, arg2, callback) {
- // arg1 now equals 'one' and arg2 now equals 'two'
- callback(null, 'three');
-}
-function myLastFunction(arg1, callback) {
- // arg1 now equals 'three'
- callback(null, 'done');
-}
-```
-
----------------------------------------
-<a name="compose" />
-### compose(fn1, fn2...)
-
-Creates a function which is a composition of the passed asynchronous
-functions. Each function consumes the return value of the function that
-follows. Composing functions `f()`, `g()`, and `h()` would produce the result of
-`f(g(h()))`, only this version uses callbacks to obtain the return values.
-
-Each function is executed with the `this` binding of the composed function.
-
-__Arguments__
-
-* `functions...` - the asynchronous functions to compose
-
-
-__Example__
-
-```js
-function add1(n, callback) {
- setTimeout(function () {
- callback(null, n + 1);
- }, 10);
-}
-
-function mul3(n, callback) {
- setTimeout(function () {
- callback(null, n * 3);
- }, 10);
-}
-
-var add1mul3 = async.compose(mul3, add1);
-
-add1mul3(4, function (err, result) {
- // result now equals 15
-});
-```
-
----------------------------------------
-<a name="seq" />
-### seq(fn1, fn2...)
-
-Version of the compose function that is more natural to read.
-Each function consumes the return value of the previous function.
-It is the equivalent of [`compose`](#compose) with the arguments reversed.
-
-Each function is executed with the `this` binding of the composed function.
-
-__Arguments__
-
-* `functions...` - the asynchronous functions to compose
-
-
-__Example__
-
-```js
-// Requires lodash (or underscore), express3 and dresende's orm2.
-// Part of an app, that fetches cats of the logged user.
-// This example uses `seq` function to avoid overnesting and error
-// handling clutter.
-app.get('/cats', function(request, response) {
- var User = request.models.User;
- async.seq(
- _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data))
- function(user, fn) {
- user.getCats(fn); // 'getCats' has signature (callback(err, data))
- }
- )(req.session.user_id, function (err, cats) {
- if (err) {
- console.error(err);
- response.json({ status: 'error', message: err.message });
- } else {
- response.json({ status: 'ok', message: 'Cats found', data: cats });
- }
- });
-});
-```
-
----------------------------------------
-<a name="applyEach" />
-### applyEach(fns, args..., callback)
-
-Applies the provided arguments to each function in the array, calling
-`callback` after all functions have completed. If you only provide the first
-argument, then it will return a function which lets you pass in the
-arguments as if it were a single function call.
-
-__Arguments__
-
-* `fns` - the asynchronous functions to all call with the same arguments
-* `args...` - any number of separate arguments to pass to the function
-* `callback` - the final argument should be the callback, called when all
- functions have completed processing
-
-
-__Example__
-
-```js
-async.applyEach([enableSearch, updateSchema], 'bucket', callback);
-
-// partial application example:
-async.each(
- buckets,
- async.applyEach([enableSearch, updateSchema]),
- callback
-);
-```
-
-__Related__
-
-* applyEachSeries(tasks, args..., [callback])
-
----------------------------------------
-
-<a name="queue" />
-### queue(worker, [concurrency])
-
-Creates a `queue` object with the specified `concurrency`. Tasks added to the
-`queue` are processed in parallel (up to the `concurrency` limit). If all
-`worker`s are in progress, the task is queued until one becomes available.
-Once a `worker` completes a `task`, that `task`'s callback is called.
-
-__Arguments__
-
-* `worker(task, callback)` - An asynchronous function for processing a queued
- task, which must call its `callback(err)` argument when finished, with an
- optional `error` as an argument. If you want to handle errors from an individual task, pass a callback to `q.push()`.
-* `concurrency` - An `integer` for determining how many `worker` functions should be
- run in parallel. If omitted, the concurrency defaults to `1`. If the concurrency is `0`, an error is thrown.
-
-__Queue objects__
-
-The `queue` object returned by this function has the following properties and
-methods:
-
-* `length()` - a function returning the number of items waiting to be processed.
-* `started` - a function returning whether or not any items have been pushed and processed by the queue
-* `running()` - a function returning the number of items currently being processed.
-* `workersList()` - a function returning the array of items currently being processed.
-* `idle()` - a function returning false if there are items waiting or being processed, or true if not.
-* `concurrency` - an integer for determining how many `worker` functions should be
- run in parallel. This property can be changed after a `queue` is created to
- alter the concurrency on-the-fly.
-* `push(task, [callback])` - add a new task to the `queue`. Calls `callback` once
- the `worker` has finished processing the task. Instead of a single task, a `tasks` array
- can be submitted. The respective callback is used for every task in the list.
-* `unshift(task, [callback])` - add a new task to the front of the `queue`.
-* `saturated` - a callback that is called when the `queue` length hits the `concurrency` limit,
- and further tasks will be queued.
-* `empty` - a callback that is called when the last item from the `queue` is given to a `worker`.
-* `drain` - a callback that is called when the last item from the `queue` has returned from the `worker`.
-* `paused` - a boolean for determining whether the queue is in a paused state
-* `pause()` - a function that pauses the processing of tasks until `resume()` is called.
-* `resume()` - a function that resumes the processing of queued tasks when the queue is paused.
-* `kill()` - a function that removes the `drain` callback and empties remaining tasks from the queue forcing it to go idle.
-
-__Example__
-
-```js
-// create a queue object with concurrency 2
-
-var q = async.queue(function (task, callback) {
- console.log('hello ' + task.name);
- callback();
-}, 2);
-
-
-// assign a callback
-q.drain = function() {
- console.log('all items have been processed');
-}
-
-// add some items to the queue
-
-q.push({name: 'foo'}, function (err) {
- console.log('finished processing foo');
-});
-q.push({name: 'bar'}, function (err) {
- console.log('finished processing bar');
-});
-
-// add some items to the queue (batch-wise)
-
-q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) {
- console.log('finished processing item');
-});
-
-// add some items to the front of the queue
-
-q.unshift({name: 'bar'}, function (err) {
- console.log('finished processing bar');
-});
-```
-
-
----------------------------------------
-
-<a name="priorityQueue" />
-### priorityQueue(worker, concurrency)
-
-The same as [`queue`](#queue) only tasks are assigned a priority and completed in ascending priority order. There are two differences between `queue` and `priorityQueue` objects:
-
-* `push(task, priority, [callback])` - `priority` should be a number. If an array of
- `tasks` is given, all tasks will be assigned the same priority.
-* The `unshift` method was removed.
-
----------------------------------------
-
-<a name="cargo" />
-### cargo(worker, [payload])
-
-Creates a `cargo` object with the specified payload. Tasks added to the
-cargo will be processed altogether (up to the `payload` limit). If the
-`worker` is in progress, the task is queued until it becomes available. Once
-the `worker` has completed some tasks, each callback of those tasks is called.
-Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966) for how `cargo` and `queue` work.
-
-While [queue](#queue) passes only one task to one of a group of workers
-at a time, cargo passes an array of tasks to a single worker, repeating
-when the worker is finished.
-
-__Arguments__
-
-* `worker(tasks, callback)` - An asynchronous function for processing an array of
- queued tasks, which must call its `callback(err)` argument when finished, with
- an optional `err` argument.
-* `payload` - An optional `integer` for determining how many tasks should be
- processed per round; if omitted, the default is unlimited.
-
-__Cargo objects__
-
-The `cargo` object returned by this function has the following properties and
-methods:
-
-* `length()` - A function returning the number of items waiting to be processed.
-* `payload` - An `integer` for determining how many tasks should be
- process per round. This property can be changed after a `cargo` is created to
- alter the payload on-the-fly.
-* `push(task, [callback])` - Adds `task` to the `queue`. The callback is called
- once the `worker` has finished processing the task. Instead of a single task, an array of `tasks`
- can be submitted. The respective callback is used for every task in the list.
-* `saturated` - A callback that is called when the `queue.length()` hits the concurrency and further tasks will be queued.
-* `empty` - A callback that is called when the last item from the `queue` is given to a `worker`.
-* `drain` - A callback that is called when the last item from the `queue` has returned from the `worker`.
-* `idle()`, `pause()`, `resume()`, `kill()` - cargo inherits all of the same methods and event calbacks as [`queue`](#queue)
-
-__Example__
-
-```js
-// create a cargo object with payload 2
-
-var cargo = async.cargo(function (tasks, callback) {
- for(var i=0; i<tasks.length; i++){
- console.log('hello ' + tasks[i].name);
- }
- callback();
-}, 2);
-
-
-// add some items
-
-cargo.push({name: 'foo'}, function (err) {
- console.log('finished processing foo');
-});
-cargo.push({name: 'bar'}, function (err) {
- console.log('finished processing bar');
-});
-cargo.push({name: 'baz'}, function (err) {
- console.log('finished processing baz');
-});
-```
-
----------------------------------------
-
-<a name="auto" />
-### auto(tasks, [concurrency], [callback])
-
-Determines the best order for running the functions in `tasks`, based on their requirements. Each function can optionally depend on other functions being completed first, and each function is run as soon as its requirements are satisfied.
-
-If any of the functions pass an error to their callback, the `auto` sequence will stop. Further tasks will not execute (so any other functions depending on it will not run), and the main `callback` is immediately called with the error. Functions also receive an object containing the results of functions which have completed so far.
-
-Note, all functions are called with a `results` object as a second argument,
-so it is unsafe to pass functions in the `tasks` object which cannot handle the
-extra argument.
-
-For example, this snippet of code:
-
-```js
-async.auto({
- readData: async.apply(fs.readFile, 'data.txt', 'utf-8')
-}, callback);
-```
-
-will have the effect of calling `readFile` with the results object as the last
-argument, which will fail:
-
-```js
-fs.readFile('data.txt', 'utf-8', cb, {});
-```
-
-Instead, wrap the call to `readFile` in a function which does not forward the
-`results` object:
-
-```js
-async.auto({
- readData: function(cb, results){
- fs.readFile('data.txt', 'utf-8', cb);
- }
-}, callback);
-```
-
-__Arguments__
-
-* `tasks` - An object. Each of its properties is either a function or an array of
- requirements, with the function itself the last item in the array. The object's key
- of a property serves as the name of the task defined by that property,
- i.e. can be used when specifying requirements for other tasks.
- The function receives two arguments: (1) a `callback(err, result)` which must be
- called when finished, passing an `error` (which can be `null`) and the result of
- the function's execution, and (2) a `results` object, containing the results of
- the previously executed functions.
-* `concurrency` - An optional `integer` for determining the maximum number of tasks that can be run in parallel. By default, as many as possible.
-* `callback(err, results)` - An optional callback which is called when all the
- tasks have been completed. It receives the `err` argument if any `tasks`
- pass an error to their callback. Results are always returned; however, if
- an error occurs, no further `tasks` will be performed, and the results
- object will only contain partial results.
-
-
-__Example__
-
-```js
-async.auto({
- get_data: function(callback){
- console.log('in get_data');
- // async code to get some data
- callback(null, 'data', 'converted to array');
- },
- make_folder: function(callback){
- console.log('in make_folder');
- // async code to create a directory to store a file in
- // this is run at the same time as getting the data
- callback(null, 'folder');
- },
- write_file: ['get_data', 'make_folder', function(callback, results){
- console.log('in write_file', JSON.stringify(results));
- // once there is some data and the directory exists,
- // write the data to a file in the directory
- callback(null, 'filename');
- }],
- email_link: ['write_file', function(callback, results){
- console.log('in email_link', JSON.stringify(results));
- // once the file is written let's email a link to it...
- // results.write_file contains the filename returned by write_file.
- callback(null, {'file':results.write_file, 'email':'user@example.com'});
- }]
-}, function(err, results) {
- console.log('err = ', err);
- console.log('results = ', results);
-});
-```
-
-This is a fairly trivial example, but to do this using the basic parallel and
-series functions would look like this:
-
-```js
-async.parallel([
- function(callback){
- console.log('in get_data');
- // async code to get some data
- callback(null, 'data', 'converted to array');
- },
- function(callback){
- console.log('in make_folder');
- // async code to create a directory to store a file in
- // this is run at the same time as getting the data
- callback(null, 'folder');
- }
-],
-function(err, results){
- async.series([
- function(callback){
- console.log('in write_file', JSON.stringify(results));
- // once there is some data and the directory exists,
- // write the data to a file in the directory
- results.push('filename');
- callback(null);
- },
- function(callback){
- console.log('in email_link', JSON.stringify(results));
- // once the file is written let's email a link to it...
- callback(null, {'file':results.pop(), 'email':'user@example.com'});
- }
- ]);
-});
-```
-
-For a complicated series of `async` tasks, using the [`auto`](#auto) function makes adding
-new tasks much easier (and the code more readable).
-
-
----------------------------------------
-
-<a name="retry" />
-### retry([opts = {times: 5, interval: 0}| 5], task, [callback])
-
-Attempts to get a successful response from `task` no more than `times` times before
-returning an error. If the task is successful, the `callback` will be passed the result
-of the successful task. If all attempts fail, the callback will be passed the error and
-result (if any) of the final attempt.
-
-__Arguments__
-
-* `opts` - Can be either an object with `times` and `interval` or a number.
- * `times` - The number of attempts to make before giving up. The default is `5`.
- * `interval` - The time to wait between retries, in milliseconds. The default is `0`.
- * If `opts` is a number, the number specifies the number of times to retry, with the default interval of `0`.
-* `task(callback, results)` - A function which receives two arguments: (1) a `callback(err, result)`
- which must be called when finished, passing `err` (which can be `null`) and the `result` of
- the function's execution, and (2) a `results` object, containing the results of
- the previously executed functions (if nested inside another control flow).
-* `callback(err, results)` - An optional callback which is called when the
- task has succeeded, or after the final failed attempt. It receives the `err` and `result` arguments of the last attempt at completing the `task`.
-
-The [`retry`](#retry) function can be used as a stand-alone control flow by passing a callback, as shown below:
-
-```js
-// try calling apiMethod 3 times
-async.retry(3, apiMethod, function(err, result) {
- // do something with the result
-});
-```
-
-```js
-// try calling apiMethod 3 times, waiting 200 ms between each retry
-async.retry({times: 3, interval: 200}, apiMethod, function(err, result) {
- // do something with the result
-});
-```
-
-```js
-// try calling apiMethod the default 5 times no delay between each retry
-async.retry(apiMethod, function(err, result) {
- // do something with the result
-});
-```
-
-It can also be embedded within other control flow functions to retry individual methods
-that are not as reliable, like this:
-
-```js
-async.auto({
- users: api.getUsers.bind(api),
- payments: async.retry(3, api.getPayments.bind(api))
-}, function(err, results) {
- // do something with the results
-});
-```
-
-
----------------------------------------
-
-<a name="iterator" />
-### iterator(tasks)
-
-Creates an iterator function which calls the next function in the `tasks` array,
-returning a continuation to call the next one after that. It's also possible to
-“peek†at the next iterator with `iterator.next()`.
-
-This function is used internally by the `async` module, but can be useful when
-you want to manually control the flow of functions in series.
-
-__Arguments__
-
-* `tasks` - An array of functions to run.
-
-__Example__
-
-```js
-var iterator = async.iterator([
- function(){ sys.p('one'); },
- function(){ sys.p('two'); },
- function(){ sys.p('three'); }
-]);
-
-node> var iterator2 = iterator();
-'one'
-node> var iterator3 = iterator2();
-'two'
-node> iterator3();
-'three'
-node> var nextfn = iterator2.next();
-node> nextfn();
-'three'
-```
-
----------------------------------------
-
-<a name="apply" />
-### apply(function, arguments..)
-
-Creates a continuation function with some arguments already applied.
-
-Useful as a shorthand when combined with other control flow functions. Any arguments
-passed to the returned function are added to the arguments originally passed
-to apply.
-
-__Arguments__
-
-* `function` - The function you want to eventually apply all arguments to.
-* `arguments...` - Any number of arguments to automatically apply when the
- continuation is called.
-
-__Example__
-
-```js
-// using apply
-
-async.parallel([
- async.apply(fs.writeFile, 'testfile1', 'test1'),
- async.apply(fs.writeFile, 'testfile2', 'test2'),
-]);
-
-
-// the same process without using apply
-
-async.parallel([
- function(callback){
- fs.writeFile('testfile1', 'test1', callback);
- },
- function(callback){
- fs.writeFile('testfile2', 'test2', callback);
- }
-]);
-```
-
-It's possible to pass any number of additional arguments when calling the
-continuation:
-
-```js
-node> var fn = async.apply(sys.puts, 'one');
-node> fn('two', 'three');
-one
-two
-three
-```
-
----------------------------------------
-
-<a name="nextTick" />
-### nextTick(callback), setImmediate(callback)
-
-Calls `callback` on a later loop around the event loop. In Node.js this just
-calls `process.nextTick`; in the browser it falls back to `setImmediate(callback)`
-if available, otherwise `setTimeout(callback, 0)`, which means other higher priority
-events may precede the execution of `callback`.
-
-This is used internally for browser-compatibility purposes.
-
-__Arguments__
-
-* `callback` - The function to call on a later loop around the event loop.
-
-__Example__
-
-```js
-var call_order = [];
-async.nextTick(function(){
- call_order.push('two');
- // call_order now equals ['one','two']
-});
-call_order.push('one')
-```
-
-<a name="times" />
-### times(n, iterator, [callback])
-
-Calls the `iterator` function `n` times, and accumulates results in the same manner
-you would use with [`map`](#map).
-
-__Arguments__
-
-* `n` - The number of times to run the function.
-* `iterator` - The function to call `n` times.
-* `callback` - see [`map`](#map)
-
-__Example__
-
-```js
-// Pretend this is some complicated async factory
-var createUser = function(id, callback) {
- callback(null, {
- id: 'user' + id
- })
-}
-// generate 5 users
-async.times(5, function(n, next){
- createUser(n, function(err, user) {
- next(err, user)
- })
-}, function(err, users) {
- // we should now have 5 users
-});
-```
-
-__Related__
-
-* timesSeries(n, iterator, [callback])
-* timesLimit(n, limit, iterator, [callback])
-
-
-## Utils
-
-<a name="memoize" />
-### memoize(fn, [hasher])
-
-Caches the results of an `async` function. When creating a hash to store function
-results against, the callback is omitted from the hash and an optional hash
-function can be used.
-
-If no hash function is specified, the first argument is used as a hash key, which may work reasonably if it is a string or a data type that converts to a distinct string. Note that objects and arrays will not behave reasonably. Neither will cases where the other arguments are significant. In such cases, specify your own hash function.
-
-The cache of results is exposed as the `memo` property of the function returned
-by `memoize`.
-
-__Arguments__
-
-* `fn` - The function to proxy and cache results from.
-* `hasher` - An optional function for generating a custom hash for storing
- results. It has all the arguments applied to it apart from the callback, and
- must be synchronous.
-
-__Example__
-
-```js
-var slow_fn = function (name, callback) {
- // do something
- callback(null, result);
-};
-var fn = async.memoize(slow_fn);
-
-// fn can now be used as if it were slow_fn
-fn('some name', function () {
- // callback
-});
-```
-
-<a name="unmemoize" />
-### unmemoize(fn)
-
-Undoes a [`memoize`](#memoize)d function, reverting it to the original, unmemoized
-form. Handy for testing.
-
-__Arguments__
-
-* `fn` - the memoized function
-
----------------------------------------
-
-<a name="ensureAsync" />
-### ensureAsync(fn)
-
-Wrap an async function and ensure it calls its callback on a later tick of the event loop. If the function already calls its callback on a next tick, no extra deferral is added. This is useful for preventing stack overflows (`RangeError: Maximum call stack size exceeded`) and generally keeping [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony) contained.
-
-__Arguments__
-
-* `fn` - an async function, one that expects a node-style callback as its last argument
-
-Returns a wrapped function with the exact same call signature as the function passed in.
-
-__Example__
-
-```js
-function sometimesAsync(arg, callback) {
- if (cache[arg]) {
- return callback(null, cache[arg]); // this would be synchronous!!
- } else {
- doSomeIO(arg, callback); // this IO would be asynchronous
- }
-}
-
-// this has a risk of stack overflows if many results are cached in a row
-async.mapSeries(args, sometimesAsync, done);
-
-// this will defer sometimesAsync's callback if necessary,
-// preventing stack overflows
-async.mapSeries(args, async.ensureAsync(sometimesAsync), done);
-
-```
-
----------------------------------------
-
-<a name="constant">
-### constant(values...)
-
-Returns a function that when called, calls-back with the values provided. Useful as the first function in a `waterfall`, or for plugging values in to `auto`.
-
-__Example__
-
-```js
-async.waterfall([
- async.constant(42),
- function (value, next) {
- // value === 42
- },
- //...
-], callback);
-
-async.waterfall([
- async.constant(filename, "utf8"),
- fs.readFile,
- function (fileData, next) {
- //...
- }
- //...
-], callback);
-
-async.auto({
- hostname: async.constant("https://server.net/"),
- port: findFreePort,
- launchServer: ["hostname", "port", function (cb, options) {
- startServer(options, cb);
- }],
- //...
-}, callback);
-
-```
-
----------------------------------------
-
-<a name="asyncify">
-<a name="wrapSync">
-### asyncify(func)
-
-__Alias:__ `wrapSync`
-
-Take a sync function and make it async, passing its return value to a callback. This is useful for plugging sync functions into a waterfall, series, or other async functions. Any arguments passed to the generated function will be passed to the wrapped function (except for the final callback argument). Errors thrown will be passed to the callback.
-
-__Example__
-
-```js
-async.waterfall([
- async.apply(fs.readFile, filename, "utf8"),
- async.asyncify(JSON.parse),
- function (data, next) {
- // data is the result of parsing the text.
- // If there was a parsing error, it would have been caught.
- }
-], callback)
-```
-
-If the function passed to `asyncify` returns a Promise, that promises's resolved/rejected state will be used to call the callback, rather than simply the synchronous return value. Example:
-
-```js
-async.waterfall([
- async.apply(fs.readFile, filename, "utf8"),
- async.asyncify(function (contents) {
- return db.model.create(contents);
- }),
- function (model, next) {
- // `model` is the instantiated model object.
- // If there was an error, this function would be skipped.
- }
-], callback)
-```
-
-This also means you can asyncify ES2016 `async` functions.
-
-```js
-var q = async.queue(async.asyncify(async function (file) {
- var intermediateStep = await processFile(file);
- return await somePromise(intermediateStep)
-}));
-
-q.push(files);
-```
-
----------------------------------------
-
-<a name="log" />
-### log(function, arguments)
-
-Logs the result of an `async` function to the `console`. Only works in Node.js or
-in browsers that support `console.log` and `console.error` (such as FF and Chrome).
-If multiple arguments are returned from the async function, `console.log` is
-called on each argument in order.
-
-__Arguments__
-
-* `function` - The function you want to eventually apply all arguments to.
-* `arguments...` - Any number of arguments to apply to the function.
-
-__Example__
-
-```js
-var hello = function(name, callback){
- setTimeout(function(){
- callback(null, 'hello ' + name);
- }, 1000);
-};
-```
-```js
-node> async.log(hello, 'world');
-'hello world'
-```
-
----------------------------------------
-
-<a name="dir" />
-### dir(function, arguments)
-
-Logs the result of an `async` function to the `console` using `console.dir` to
-display the properties of the resulting object. Only works in Node.js or
-in browsers that support `console.dir` and `console.error` (such as FF and Chrome).
-If multiple arguments are returned from the async function, `console.dir` is
-called on each argument in order.
-
-__Arguments__
-
-* `function` - The function you want to eventually apply all arguments to.
-* `arguments...` - Any number of arguments to apply to the function.
-
-__Example__
-
-```js
-var hello = function(name, callback){
- setTimeout(function(){
- callback(null, {hello: name});
- }, 1000);
-};
-```
-```js
-node> async.dir(hello, 'world');
-{hello: 'world'}
-```
-
----------------------------------------
-
-<a name="noConflict" />
-### noConflict()
-
-Changes the value of `async` back to its original value, returning a reference to the
-`async` object.
diff --git a/node_modules/istanbul/node_modules/async/dist/async.js b/node_modules/istanbul/node_modules/async/dist/async.js
deleted file mode 100644
index 31e7620fb..000000000
--- a/node_modules/istanbul/node_modules/async/dist/async.js
+++ /dev/null
@@ -1,1265 +0,0 @@
-/*!
- * async
- * https://github.com/caolan/async
- *
- * Copyright 2010-2014 Caolan McMahon
- * Released under the MIT license
- */
-(function () {
-
- var async = {};
- function noop() {}
- function identity(v) {
- return v;
- }
- function toBool(v) {
- return !!v;
- }
- function notId(v) {
- return !v;
- }
-
- // global on the server, window in the browser
- var previous_async;
-
- // Establish the root object, `window` (`self`) in the browser, `global`
- // on the server, or `this` in some virtual machines. We use `self`
- // instead of `window` for `WebWorker` support.
- var root = typeof self === 'object' && self.self === self && self ||
- typeof global === 'object' && global.global === global && global ||
- this;
-
- if (root != null) {
- previous_async = root.async;
- }
-
- async.noConflict = function () {
- root.async = previous_async;
- return async;
- };
-
- function only_once(fn) {
- return function() {
- if (fn === null) throw new Error("Callback was already called.");
- fn.apply(this, arguments);
- fn = null;
- };
- }
-
- function _once(fn) {
- return function() {
- if (fn === null) return;
- fn.apply(this, arguments);
- fn = null;
- };
- }
-
- //// cross-browser compatiblity functions ////
-
- var _toString = Object.prototype.toString;
-
- var _isArray = Array.isArray || function (obj) {
- return _toString.call(obj) === '[object Array]';
- };
-
- // Ported from underscore.js isObject
- var _isObject = function(obj) {
- var type = typeof obj;
- return type === 'function' || type === 'object' && !!obj;
- };
-
- function _isArrayLike(arr) {
- return _isArray(arr) || (
- // has a positive integer length property
- typeof arr.length === "number" &&
- arr.length >= 0 &&
- arr.length % 1 === 0
- );
- }
-
- function _arrayEach(arr, iterator) {
- var index = -1,
- length = arr.length;
-
- while (++index < length) {
- iterator(arr[index], index, arr);
- }
- }
-
- function _map(arr, iterator) {
- var index = -1,
- length = arr.length,
- result = Array(length);
-
- while (++index < length) {
- result[index] = iterator(arr[index], index, arr);
- }
- return result;
- }
-
- function _range(count) {
- return _map(Array(count), function (v, i) { return i; });
- }
-
- function _reduce(arr, iterator, memo) {
- _arrayEach(arr, function (x, i, a) {
- memo = iterator(memo, x, i, a);
- });
- return memo;
- }
-
- function _forEachOf(object, iterator) {
- _arrayEach(_keys(object), function (key) {
- iterator(object[key], key);
- });
- }
-
- function _indexOf(arr, item) {
- for (var i = 0; i < arr.length; i++) {
- if (arr[i] === item) return i;
- }
- return -1;
- }
-
- var _keys = Object.keys || function (obj) {
- var keys = [];
- for (var k in obj) {
- if (obj.hasOwnProperty(k)) {
- keys.push(k);
- }
- }
- return keys;
- };
-
- function _keyIterator(coll) {
- var i = -1;
- var len;
- var keys;
- if (_isArrayLike(coll)) {
- len = coll.length;
- return function next() {
- i++;
- return i < len ? i : null;
- };
- } else {
- keys = _keys(coll);
- len = keys.length;
- return function next() {
- i++;
- return i < len ? keys[i] : null;
- };
- }
- }
-
- // Similar to ES6's rest param (http://ariya.ofilabs.com/2013/03/es6-and-rest-parameter.html)
- // This accumulates the arguments passed into an array, after a given index.
- // From underscore.js (https://github.com/jashkenas/underscore/pull/2140).
- function _restParam(func, startIndex) {
- startIndex = startIndex == null ? func.length - 1 : +startIndex;
- return function() {
- var length = Math.max(arguments.length - startIndex, 0);
- var rest = Array(length);
- for (var index = 0; index < length; index++) {
- rest[index] = arguments[index + startIndex];
- }
- switch (startIndex) {
- case 0: return func.call(this, rest);
- case 1: return func.call(this, arguments[0], rest);
- }
- // Currently unused but handle cases outside of the switch statement:
- // var args = Array(startIndex + 1);
- // for (index = 0; index < startIndex; index++) {
- // args[index] = arguments[index];
- // }
- // args[startIndex] = rest;
- // return func.apply(this, args);
- };
- }
-
- function _withoutIndex(iterator) {
- return function (value, index, callback) {
- return iterator(value, callback);
- };
- }
-
- //// exported async module functions ////
-
- //// nextTick implementation with browser-compatible fallback ////
-
- // capture the global reference to guard against fakeTimer mocks
- var _setImmediate = typeof setImmediate === 'function' && setImmediate;
-
- var _delay = _setImmediate ? function(fn) {
- // not a direct alias for IE10 compatibility
- _setImmediate(fn);
- } : function(fn) {
- setTimeout(fn, 0);
- };
-
- if (typeof process === 'object' && typeof process.nextTick === 'function') {
- async.nextTick = process.nextTick;
- } else {
- async.nextTick = _delay;
- }
- async.setImmediate = _setImmediate ? _delay : async.nextTick;
-
-
- async.forEach =
- async.each = function (arr, iterator, callback) {
- return async.eachOf(arr, _withoutIndex(iterator), callback);
- };
-
- async.forEachSeries =
- async.eachSeries = function (arr, iterator, callback) {
- return async.eachOfSeries(arr, _withoutIndex(iterator), callback);
- };
-
-
- async.forEachLimit =
- async.eachLimit = function (arr, limit, iterator, callback) {
- return _eachOfLimit(limit)(arr, _withoutIndex(iterator), callback);
- };
-
- async.forEachOf =
- async.eachOf = function (object, iterator, callback) {
- callback = _once(callback || noop);
- object = object || [];
-
- var iter = _keyIterator(object);
- var key, completed = 0;
-
- while ((key = iter()) != null) {
- completed += 1;
- iterator(object[key], key, only_once(done));
- }
-
- if (completed === 0) callback(null);
-
- function done(err) {
- completed--;
- if (err) {
- callback(err);
- }
- // Check key is null in case iterator isn't exhausted
- // and done resolved synchronously.
- else if (key === null && completed <= 0) {
- callback(null);
- }
- }
- };
-
- async.forEachOfSeries =
- async.eachOfSeries = function (obj, iterator, callback) {
- callback = _once(callback || noop);
- obj = obj || [];
- var nextKey = _keyIterator(obj);
- var key = nextKey();
- function iterate() {
- var sync = true;
- if (key === null) {
- return callback(null);
- }
- iterator(obj[key], key, only_once(function (err) {
- if (err) {
- callback(err);
- }
- else {
- key = nextKey();
- if (key === null) {
- return callback(null);
- } else {
- if (sync) {
- async.setImmediate(iterate);
- } else {
- iterate();
- }
- }
- }
- }));
- sync = false;
- }
- iterate();
- };
-
-
-
- async.forEachOfLimit =
- async.eachOfLimit = function (obj, limit, iterator, callback) {
- _eachOfLimit(limit)(obj, iterator, callback);
- };
-
- function _eachOfLimit(limit) {
-
- return function (obj, iterator, callback) {
- callback = _once(callback || noop);
- obj = obj || [];
- var nextKey = _keyIterator(obj);
- if (limit <= 0) {
- return callback(null);
- }
- var done = false;
- var running = 0;
- var errored = false;
-
- (function replenish () {
- if (done && running <= 0) {
- return callback(null);
- }
-
- while (running < limit && !errored) {
- var key = nextKey();
- if (key === null) {
- done = true;
- if (running <= 0) {
- callback(null);
- }
- return;
- }
- running += 1;
- iterator(obj[key], key, only_once(function (err) {
- running -= 1;
- if (err) {
- callback(err);
- errored = true;
- }
- else {
- replenish();
- }
- }));
- }
- })();
- };
- }
-
-
- function doParallel(fn) {
- return function (obj, iterator, callback) {
- return fn(async.eachOf, obj, iterator, callback);
- };
- }
- function doParallelLimit(fn) {
- return function (obj, limit, iterator, callback) {
- return fn(_eachOfLimit(limit), obj, iterator, callback);
- };
- }
- function doSeries(fn) {
- return function (obj, iterator, callback) {
- return fn(async.eachOfSeries, obj, iterator, callback);
- };
- }
-
- function _asyncMap(eachfn, arr, iterator, callback) {
- callback = _once(callback || noop);
- arr = arr || [];
- var results = _isArrayLike(arr) ? [] : {};
- eachfn(arr, function (value, index, callback) {
- iterator(value, function (err, v) {
- results[index] = v;
- callback(err);
- });
- }, function (err) {
- callback(err, results);
- });
- }
-
- async.map = doParallel(_asyncMap);
- async.mapSeries = doSeries(_asyncMap);
- async.mapLimit = doParallelLimit(_asyncMap);
-
- // reduce only has a series version, as doing reduce in parallel won't
- // work in many situations.
- async.inject =
- async.foldl =
- async.reduce = function (arr, memo, iterator, callback) {
- async.eachOfSeries(arr, function (x, i, callback) {
- iterator(memo, x, function (err, v) {
- memo = v;
- callback(err);
- });
- }, function (err) {
- callback(err, memo);
- });
- };
-
- async.foldr =
- async.reduceRight = function (arr, memo, iterator, callback) {
- var reversed = _map(arr, identity).reverse();
- async.reduce(reversed, memo, iterator, callback);
- };
-
- async.transform = function (arr, memo, iterator, callback) {
- if (arguments.length === 3) {
- callback = iterator;
- iterator = memo;
- memo = _isArray(arr) ? [] : {};
- }
-
- async.eachOf(arr, function(v, k, cb) {
- iterator(memo, v, k, cb);
- }, function(err) {
- callback(err, memo);
- });
- };
-
- function _filter(eachfn, arr, iterator, callback) {
- var results = [];
- eachfn(arr, function (x, index, callback) {
- iterator(x, function (v) {
- if (v) {
- results.push({index: index, value: x});
- }
- callback();
- });
- }, function () {
- callback(_map(results.sort(function (a, b) {
- return a.index - b.index;
- }), function (x) {
- return x.value;
- }));
- });
- }
-
- async.select =
- async.filter = doParallel(_filter);
-
- async.selectLimit =
- async.filterLimit = doParallelLimit(_filter);
-
- async.selectSeries =
- async.filterSeries = doSeries(_filter);
-
- function _reject(eachfn, arr, iterator, callback) {
- _filter(eachfn, arr, function(value, cb) {
- iterator(value, function(v) {
- cb(!v);
- });
- }, callback);
- }
- async.reject = doParallel(_reject);
- async.rejectLimit = doParallelLimit(_reject);
- async.rejectSeries = doSeries(_reject);
-
- function _createTester(eachfn, check, getResult) {
- return function(arr, limit, iterator, cb) {
- function done() {
- if (cb) cb(getResult(false, void 0));
- }
- function iteratee(x, _, callback) {
- if (!cb) return callback();
- iterator(x, function (v) {
- if (cb && check(v)) {
- cb(getResult(true, x));
- cb = iterator = false;
- }
- callback();
- });
- }
- if (arguments.length > 3) {
- eachfn(arr, limit, iteratee, done);
- } else {
- cb = iterator;
- iterator = limit;
- eachfn(arr, iteratee, done);
- }
- };
- }
-
- async.any =
- async.some = _createTester(async.eachOf, toBool, identity);
-
- async.someLimit = _createTester(async.eachOfLimit, toBool, identity);
-
- async.all =
- async.every = _createTester(async.eachOf, notId, notId);
-
- async.everyLimit = _createTester(async.eachOfLimit, notId, notId);
-
- function _findGetResult(v, x) {
- return x;
- }
- async.detect = _createTester(async.eachOf, identity, _findGetResult);
- async.detectSeries = _createTester(async.eachOfSeries, identity, _findGetResult);
- async.detectLimit = _createTester(async.eachOfLimit, identity, _findGetResult);
-
- async.sortBy = function (arr, iterator, callback) {
- async.map(arr, function (x, callback) {
- iterator(x, function (err, criteria) {
- if (err) {
- callback(err);
- }
- else {
- callback(null, {value: x, criteria: criteria});
- }
- });
- }, function (err, results) {
- if (err) {
- return callback(err);
- }
- else {
- callback(null, _map(results.sort(comparator), function (x) {
- return x.value;
- }));
- }
-
- });
-
- function comparator(left, right) {
- var a = left.criteria, b = right.criteria;
- return a < b ? -1 : a > b ? 1 : 0;
- }
- };
-
- async.auto = function (tasks, concurrency, callback) {
- if (typeof arguments[1] === 'function') {
- // concurrency is optional, shift the args.
- callback = concurrency;
- concurrency = null;
- }
- callback = _once(callback || noop);
- var keys = _keys(tasks);
- var remainingTasks = keys.length;
- if (!remainingTasks) {
- return callback(null);
- }
- if (!concurrency) {
- concurrency = remainingTasks;
- }
-
- var results = {};
- var runningTasks = 0;
-
- var hasError = false;
-
- var listeners = [];
- function addListener(fn) {
- listeners.unshift(fn);
- }
- function removeListener(fn) {
- var idx = _indexOf(listeners, fn);
- if (idx >= 0) listeners.splice(idx, 1);
- }
- function taskComplete() {
- remainingTasks--;
- _arrayEach(listeners.slice(0), function (fn) {
- fn();
- });
- }
-
- addListener(function () {
- if (!remainingTasks) {
- callback(null, results);
- }
- });
-
- _arrayEach(keys, function (k) {
- if (hasError) return;
- var task = _isArray(tasks[k]) ? tasks[k]: [tasks[k]];
- var taskCallback = _restParam(function(err, args) {
- runningTasks--;
- if (args.length <= 1) {
- args = args[0];
- }
- if (err) {
- var safeResults = {};
- _forEachOf(results, function(val, rkey) {
- safeResults[rkey] = val;
- });
- safeResults[k] = args;
- hasError = true;
-
- callback(err, safeResults);
- }
- else {
- results[k] = args;
- async.setImmediate(taskComplete);
- }
- });
- var requires = task.slice(0, task.length - 1);
- // prevent dead-locks
- var len = requires.length;
- var dep;
- while (len--) {
- if (!(dep = tasks[requires[len]])) {
- throw new Error('Has nonexistent dependency in ' + requires.join(', '));
- }
- if (_isArray(dep) && _indexOf(dep, k) >= 0) {
- throw new Error('Has cyclic dependencies');
- }
- }
- function ready() {
- return runningTasks < concurrency && _reduce(requires, function (a, x) {
- return (a && results.hasOwnProperty(x));
- }, true) && !results.hasOwnProperty(k);
- }
- if (ready()) {
- runningTasks++;
- task[task.length - 1](taskCallback, results);
- }
- else {
- addListener(listener);
- }
- function listener() {
- if (ready()) {
- runningTasks++;
- removeListener(listener);
- task[task.length - 1](taskCallback, results);
- }
- }
- });
- };
-
-
-
- async.retry = function(times, task, callback) {
- var DEFAULT_TIMES = 5;
- var DEFAULT_INTERVAL = 0;
-
- var attempts = [];
-
- var opts = {
- times: DEFAULT_TIMES,
- interval: DEFAULT_INTERVAL
- };
-
- function parseTimes(acc, t){
- if(typeof t === 'number'){
- acc.times = parseInt(t, 10) || DEFAULT_TIMES;
- } else if(typeof t === 'object'){
- acc.times = parseInt(t.times, 10) || DEFAULT_TIMES;
- acc.interval = parseInt(t.interval, 10) || DEFAULT_INTERVAL;
- } else {
- throw new Error('Unsupported argument type for \'times\': ' + typeof t);
- }
- }
-
- var length = arguments.length;
- if (length < 1 || length > 3) {
- throw new Error('Invalid arguments - must be either (task), (task, callback), (times, task) or (times, task, callback)');
- } else if (length <= 2 && typeof times === 'function') {
- callback = task;
- task = times;
- }
- if (typeof times !== 'function') {
- parseTimes(opts, times);
- }
- opts.callback = callback;
- opts.task = task;
-
- function wrappedTask(wrappedCallback, wrappedResults) {
- function retryAttempt(task, finalAttempt) {
- return function(seriesCallback) {
- task(function(err, result){
- seriesCallback(!err || finalAttempt, {err: err, result: result});
- }, wrappedResults);
- };
- }
-
- function retryInterval(interval){
- return function(seriesCallback){
- setTimeout(function(){
- seriesCallback(null);
- }, interval);
- };
- }
-
- while (opts.times) {
-
- var finalAttempt = !(opts.times-=1);
- attempts.push(retryAttempt(opts.task, finalAttempt));
- if(!finalAttempt && opts.interval > 0){
- attempts.push(retryInterval(opts.interval));
- }
- }
-
- async.series(attempts, function(done, data){
- data = data[data.length - 1];
- (wrappedCallback || opts.callback)(data.err, data.result);
- });
- }
-
- // If a callback is passed, run this as a controll flow
- return opts.callback ? wrappedTask() : wrappedTask;
- };
-
- async.waterfall = function (tasks, callback) {
- callback = _once(callback || noop);
- if (!_isArray(tasks)) {
- var err = new Error('First argument to waterfall must be an array of functions');
- return callback(err);
- }
- if (!tasks.length) {
- return callback();
- }
- function wrapIterator(iterator) {
- return _restParam(function (err, args) {
- if (err) {
- callback.apply(null, [err].concat(args));
- }
- else {
- var next = iterator.next();
- if (next) {
- args.push(wrapIterator(next));
- }
- else {
- args.push(callback);
- }
- ensureAsync(iterator).apply(null, args);
- }
- });
- }
- wrapIterator(async.iterator(tasks))();
- };
-
- function _parallel(eachfn, tasks, callback) {
- callback = callback || noop;
- var results = _isArrayLike(tasks) ? [] : {};
-
- eachfn(tasks, function (task, key, callback) {
- task(_restParam(function (err, args) {
- if (args.length <= 1) {
- args = args[0];
- }
- results[key] = args;
- callback(err);
- }));
- }, function (err) {
- callback(err, results);
- });
- }
-
- async.parallel = function (tasks, callback) {
- _parallel(async.eachOf, tasks, callback);
- };
-
- async.parallelLimit = function(tasks, limit, callback) {
- _parallel(_eachOfLimit(limit), tasks, callback);
- };
-
- async.series = function(tasks, callback) {
- _parallel(async.eachOfSeries, tasks, callback);
- };
-
- async.iterator = function (tasks) {
- function makeCallback(index) {
- function fn() {
- if (tasks.length) {
- tasks[index].apply(null, arguments);
- }
- return fn.next();
- }
- fn.next = function () {
- return (index < tasks.length - 1) ? makeCallback(index + 1): null;
- };
- return fn;
- }
- return makeCallback(0);
- };
-
- async.apply = _restParam(function (fn, args) {
- return _restParam(function (callArgs) {
- return fn.apply(
- null, args.concat(callArgs)
- );
- });
- });
-
- function _concat(eachfn, arr, fn, callback) {
- var result = [];
- eachfn(arr, function (x, index, cb) {
- fn(x, function (err, y) {
- result = result.concat(y || []);
- cb(err);
- });
- }, function (err) {
- callback(err, result);
- });
- }
- async.concat = doParallel(_concat);
- async.concatSeries = doSeries(_concat);
-
- async.whilst = function (test, iterator, callback) {
- callback = callback || noop;
- if (test()) {
- var next = _restParam(function(err, args) {
- if (err) {
- callback(err);
- } else if (test.apply(this, args)) {
- iterator(next);
- } else {
- callback.apply(null, [null].concat(args));
- }
- });
- iterator(next);
- } else {
- callback(null);
- }
- };
-
- async.doWhilst = function (iterator, test, callback) {
- var calls = 0;
- return async.whilst(function() {
- return ++calls <= 1 || test.apply(this, arguments);
- }, iterator, callback);
- };
-
- async.until = function (test, iterator, callback) {
- return async.whilst(function() {
- return !test.apply(this, arguments);
- }, iterator, callback);
- };
-
- async.doUntil = function (iterator, test, callback) {
- return async.doWhilst(iterator, function() {
- return !test.apply(this, arguments);
- }, callback);
- };
-
- async.during = function (test, iterator, callback) {
- callback = callback || noop;
-
- var next = _restParam(function(err, args) {
- if (err) {
- callback(err);
- } else {
- args.push(check);
- test.apply(this, args);
- }
- });
-
- var check = function(err, truth) {
- if (err) {
- callback(err);
- } else if (truth) {
- iterator(next);
- } else {
- callback(null);
- }
- };
-
- test(check);
- };
-
- async.doDuring = function (iterator, test, callback) {
- var calls = 0;
- async.during(function(next) {
- if (calls++ < 1) {
- next(null, true);
- } else {
- test.apply(this, arguments);
- }
- }, iterator, callback);
- };
-
- function _queue(worker, concurrency, payload) {
- if (concurrency == null) {
- concurrency = 1;
- }
- else if(concurrency === 0) {
- throw new Error('Concurrency must not be zero');
- }
- function _insert(q, data, pos, callback) {
- if (callback != null && typeof callback !== "function") {
- throw new Error("task callback must be a function");
- }
- q.started = true;
- if (!_isArray(data)) {
- data = [data];
- }
- if(data.length === 0 && q.idle()) {
- // call drain immediately if there are no tasks
- return async.setImmediate(function() {
- q.drain();
- });
- }
- _arrayEach(data, function(task) {
- var item = {
- data: task,
- callback: callback || noop
- };
-
- if (pos) {
- q.tasks.unshift(item);
- } else {
- q.tasks.push(item);
- }
-
- if (q.tasks.length === q.concurrency) {
- q.saturated();
- }
- });
- async.setImmediate(q.process);
- }
- function _next(q, tasks) {
- return function(){
- workers -= 1;
-
- var removed = false;
- var args = arguments;
- _arrayEach(tasks, function (task) {
- _arrayEach(workersList, function (worker, index) {
- if (worker === task && !removed) {
- workersList.splice(index, 1);
- removed = true;
- }
- });
-
- task.callback.apply(task, args);
- });
- if (q.tasks.length + workers === 0) {
- q.drain();
- }
- q.process();
- };
- }
-
- var workers = 0;
- var workersList = [];
- var q = {
- tasks: [],
- concurrency: concurrency,
- payload: payload,
- saturated: noop,
- empty: noop,
- drain: noop,
- started: false,
- paused: false,
- push: function (data, callback) {
- _insert(q, data, false, callback);
- },
- kill: function () {
- q.drain = noop;
- q.tasks = [];
- },
- unshift: function (data, callback) {
- _insert(q, data, true, callback);
- },
- process: function () {
- while(!q.paused && workers < q.concurrency && q.tasks.length){
-
- var tasks = q.payload ?
- q.tasks.splice(0, q.payload) :
- q.tasks.splice(0, q.tasks.length);
-
- var data = _map(tasks, function (task) {
- return task.data;
- });
-
- if (q.tasks.length === 0) {
- q.empty();
- }
- workers += 1;
- workersList.push(tasks[0]);
- var cb = only_once(_next(q, tasks));
- worker(data, cb);
- }
- },
- length: function () {
- return q.tasks.length;
- },
- running: function () {
- return workers;
- },
- workersList: function () {
- return workersList;
- },
- idle: function() {
- return q.tasks.length + workers === 0;
- },
- pause: function () {
- q.paused = true;
- },
- resume: function () {
- if (q.paused === false) { return; }
- q.paused = false;
- var resumeCount = Math.min(q.concurrency, q.tasks.length);
- // Need to call q.process once per concurrent
- // worker to preserve full concurrency after pause
- for (var w = 1; w <= resumeCount; w++) {
- async.setImmediate(q.process);
- }
- }
- };
- return q;
- }
-
- async.queue = function (worker, concurrency) {
- var q = _queue(function (items, cb) {
- worker(items[0], cb);
- }, concurrency, 1);
-
- return q;
- };
-
- async.priorityQueue = function (worker, concurrency) {
-
- function _compareTasks(a, b){
- return a.priority - b.priority;
- }
-
- function _binarySearch(sequence, item, compare) {
- var beg = -1,
- end = sequence.length - 1;
- while (beg < end) {
- var mid = beg + ((end - beg + 1) >>> 1);
- if (compare(item, sequence[mid]) >= 0) {
- beg = mid;
- } else {
- end = mid - 1;
- }
- }
- return beg;
- }
-
- function _insert(q, data, priority, callback) {
- if (callback != null && typeof callback !== "function") {
- throw new Error("task callback must be a function");
- }
- q.started = true;
- if (!_isArray(data)) {
- data = [data];
- }
- if(data.length === 0) {
- // call drain immediately if there are no tasks
- return async.setImmediate(function() {
- q.drain();
- });
- }
- _arrayEach(data, function(task) {
- var item = {
- data: task,
- priority: priority,
- callback: typeof callback === 'function' ? callback : noop
- };
-
- q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item);
-
- if (q.tasks.length === q.concurrency) {
- q.saturated();
- }
- async.setImmediate(q.process);
- });
- }
-
- // Start with a normal queue
- var q = async.queue(worker, concurrency);
-
- // Override push to accept second parameter representing priority
- q.push = function (data, priority, callback) {
- _insert(q, data, priority, callback);
- };
-
- // Remove unshift function
- delete q.unshift;
-
- return q;
- };
-
- async.cargo = function (worker, payload) {
- return _queue(worker, 1, payload);
- };
-
- function _console_fn(name) {
- return _restParam(function (fn, args) {
- fn.apply(null, args.concat([_restParam(function (err, args) {
- if (typeof console === 'object') {
- if (err) {
- if (console.error) {
- console.error(err);
- }
- }
- else if (console[name]) {
- _arrayEach(args, function (x) {
- console[name](x);
- });
- }
- }
- })]));
- });
- }
- async.log = _console_fn('log');
- async.dir = _console_fn('dir');
- /*async.info = _console_fn('info');
- async.warn = _console_fn('warn');
- async.error = _console_fn('error');*/
-
- async.memoize = function (fn, hasher) {
- var memo = {};
- var queues = {};
- var has = Object.prototype.hasOwnProperty;
- hasher = hasher || identity;
- var memoized = _restParam(function memoized(args) {
- var callback = args.pop();
- var key = hasher.apply(null, args);
- if (has.call(memo, key)) {
- async.setImmediate(function () {
- callback.apply(null, memo[key]);
- });
- }
- else if (has.call(queues, key)) {
- queues[key].push(callback);
- }
- else {
- queues[key] = [callback];
- fn.apply(null, args.concat([_restParam(function (args) {
- memo[key] = args;
- var q = queues[key];
- delete queues[key];
- for (var i = 0, l = q.length; i < l; i++) {
- q[i].apply(null, args);
- }
- })]));
- }
- });
- memoized.memo = memo;
- memoized.unmemoized = fn;
- return memoized;
- };
-
- async.unmemoize = function (fn) {
- return function () {
- return (fn.unmemoized || fn).apply(null, arguments);
- };
- };
-
- function _times(mapper) {
- return function (count, iterator, callback) {
- mapper(_range(count), iterator, callback);
- };
- }
-
- async.times = _times(async.map);
- async.timesSeries = _times(async.mapSeries);
- async.timesLimit = function (count, limit, iterator, callback) {
- return async.mapLimit(_range(count), limit, iterator, callback);
- };
-
- async.seq = function (/* functions... */) {
- var fns = arguments;
- return _restParam(function (args) {
- var that = this;
-
- var callback = args[args.length - 1];
- if (typeof callback == 'function') {
- args.pop();
- } else {
- callback = noop;
- }
-
- async.reduce(fns, args, function (newargs, fn, cb) {
- fn.apply(that, newargs.concat([_restParam(function (err, nextargs) {
- cb(err, nextargs);
- })]));
- },
- function (err, results) {
- callback.apply(that, [err].concat(results));
- });
- });
- };
-
- async.compose = function (/* functions... */) {
- return async.seq.apply(null, Array.prototype.reverse.call(arguments));
- };
-
-
- function _applyEach(eachfn) {
- return _restParam(function(fns, args) {
- var go = _restParam(function(args) {
- var that = this;
- var callback = args.pop();
- return eachfn(fns, function (fn, _, cb) {
- fn.apply(that, args.concat([cb]));
- },
- callback);
- });
- if (args.length) {
- return go.apply(this, args);
- }
- else {
- return go;
- }
- });
- }
-
- async.applyEach = _applyEach(async.eachOf);
- async.applyEachSeries = _applyEach(async.eachOfSeries);
-
-
- async.forever = function (fn, callback) {
- var done = only_once(callback || noop);
- var task = ensureAsync(fn);
- function next(err) {
- if (err) {
- return done(err);
- }
- task(next);
- }
- next();
- };
-
- function ensureAsync(fn) {
- return _restParam(function (args) {
- var callback = args.pop();
- args.push(function () {
- var innerArgs = arguments;
- if (sync) {
- async.setImmediate(function () {
- callback.apply(null, innerArgs);
- });
- } else {
- callback.apply(null, innerArgs);
- }
- });
- var sync = true;
- fn.apply(this, args);
- sync = false;
- });
- }
-
- async.ensureAsync = ensureAsync;
-
- async.constant = _restParam(function(values) {
- var args = [null].concat(values);
- return function (callback) {
- return callback.apply(this, args);
- };
- });
-
- async.wrapSync =
- async.asyncify = function asyncify(func) {
- return _restParam(function (args) {
- var callback = args.pop();
- var result;
- try {
- result = func.apply(this, args);
- } catch (e) {
- return callback(e);
- }
- // if result is Promise object
- if (_isObject(result) && typeof result.then === "function") {
- result.then(function(value) {
- callback(null, value);
- })["catch"](function(err) {
- callback(err.message ? err : new Error(err));
- });
- } else {
- callback(null, result);
- }
- });
- };
-
- // Node.js
- if (typeof module === 'object' && module.exports) {
- module.exports = async;
- }
- // AMD / RequireJS
- else if (typeof define === 'function' && define.amd) {
- define([], function () {
- return async;
- });
- }
- // included directly via <script> tag
- else {
- root.async = async;
- }
-
-}());
diff --git a/node_modules/istanbul/node_modules/async/dist/async.min.js b/node_modules/istanbul/node_modules/async/dist/async.min.js
deleted file mode 100644
index 2490016a0..000000000
--- a/node_modules/istanbul/node_modules/async/dist/async.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(){function n(){}function t(n){return n}function e(n){return!!n}function r(n){return!n}function u(n){return function(){if(null===n)throw new Error("Callback was already called.");n.apply(this,arguments),n=null}}function i(n){return function(){null!==n&&(n.apply(this,arguments),n=null)}}function o(n){return M(n)||"number"==typeof n.length&&n.length>=0&&n.length%1===0}function c(n,t){for(var e=-1,r=n.length;++e<r;)t(n[e],e,n)}function a(n,t){for(var e=-1,r=n.length,u=Array(r);++e<r;)u[e]=t(n[e],e,n);return u}function f(n){return a(Array(n),function(n,t){return t})}function l(n,t,e){return c(n,function(n,r,u){e=t(e,n,r,u)}),e}function s(n,t){c(W(n),function(e){t(n[e],e)})}function p(n,t){for(var e=0;e<n.length;e++)if(n[e]===t)return e;return-1}function h(n){var t,e,r=-1;return o(n)?(t=n.length,function(){return r++,t>r?r:null}):(e=W(n),t=e.length,function(){return r++,t>r?e[r]:null})}function m(n,t){return t=null==t?n.length-1:+t,function(){for(var e=Math.max(arguments.length-t,0),r=Array(e),u=0;e>u;u++)r[u]=arguments[u+t];switch(t){case 0:return n.call(this,r);case 1:return n.call(this,arguments[0],r)}}}function y(n){return function(t,e,r){return n(t,r)}}function v(t){return function(e,r,o){o=i(o||n),e=e||[];var c=h(e);if(0>=t)return o(null);var a=!1,f=0,l=!1;!function s(){if(a&&0>=f)return o(null);for(;t>f&&!l;){var n=c();if(null===n)return a=!0,void(0>=f&&o(null));f+=1,r(e[n],n,u(function(n){f-=1,n?(o(n),l=!0):s()}))}}()}}function d(n){return function(t,e,r){return n(P.eachOf,t,e,r)}}function g(n){return function(t,e,r,u){return n(v(e),t,r,u)}}function k(n){return function(t,e,r){return n(P.eachOfSeries,t,e,r)}}function b(t,e,r,u){u=i(u||n),e=e||[];var c=o(e)?[]:{};t(e,function(n,t,e){r(n,function(n,r){c[t]=r,e(n)})},function(n){u(n,c)})}function w(n,t,e,r){var u=[];n(t,function(n,t,r){e(n,function(e){e&&u.push({index:t,value:n}),r()})},function(){r(a(u.sort(function(n,t){return n.index-t.index}),function(n){return n.value}))})}function O(n,t,e,r){w(n,t,function(n,t){e(n,function(n){t(!n)})},r)}function S(n,t,e){return function(r,u,i,o){function c(){o&&o(e(!1,void 0))}function a(n,r,u){return o?void i(n,function(r){o&&t(r)&&(o(e(!0,n)),o=i=!1),u()}):u()}arguments.length>3?n(r,u,a,c):(o=i,i=u,n(r,a,c))}}function E(n,t){return t}function L(t,e,r){r=r||n;var u=o(e)?[]:{};t(e,function(n,t,e){n(m(function(n,r){r.length<=1&&(r=r[0]),u[t]=r,e(n)}))},function(n){r(n,u)})}function j(n,t,e,r){var u=[];n(t,function(n,t,r){e(n,function(n,t){u=u.concat(t||[]),r(n)})},function(n){r(n,u)})}function I(t,e,r){function i(t,e,r,u){if(null!=u&&"function"!=typeof u)throw new Error("task callback must be a function");return t.started=!0,M(e)||(e=[e]),0===e.length&&t.idle()?P.setImmediate(function(){t.drain()}):(c(e,function(e){var i={data:e,callback:u||n};r?t.tasks.unshift(i):t.tasks.push(i),t.tasks.length===t.concurrency&&t.saturated()}),void P.setImmediate(t.process))}function o(n,t){return function(){f-=1;var e=!1,r=arguments;c(t,function(n){c(l,function(t,r){t!==n||e||(l.splice(r,1),e=!0)}),n.callback.apply(n,r)}),n.tasks.length+f===0&&n.drain(),n.process()}}if(null==e)e=1;else if(0===e)throw new Error("Concurrency must not be zero");var f=0,l=[],s={tasks:[],concurrency:e,payload:r,saturated:n,empty:n,drain:n,started:!1,paused:!1,push:function(n,t){i(s,n,!1,t)},kill:function(){s.drain=n,s.tasks=[]},unshift:function(n,t){i(s,n,!0,t)},process:function(){for(;!s.paused&&f<s.concurrency&&s.tasks.length;){var n=s.payload?s.tasks.splice(0,s.payload):s.tasks.splice(0,s.tasks.length),e=a(n,function(n){return n.data});0===s.tasks.length&&s.empty(),f+=1,l.push(n[0]);var r=u(o(s,n));t(e,r)}},length:function(){return s.tasks.length},running:function(){return f},workersList:function(){return l},idle:function(){return s.tasks.length+f===0},pause:function(){s.paused=!0},resume:function(){if(s.paused!==!1){s.paused=!1;for(var n=Math.min(s.concurrency,s.tasks.length),t=1;n>=t;t++)P.setImmediate(s.process)}}};return s}function x(n){return m(function(t,e){t.apply(null,e.concat([m(function(t,e){"object"==typeof console&&(t?console.error&&console.error(t):console[n]&&c(e,function(t){console[n](t)}))})]))})}function A(n){return function(t,e,r){n(f(t),e,r)}}function T(n){return m(function(t,e){var r=m(function(e){var r=this,u=e.pop();return n(t,function(n,t,u){n.apply(r,e.concat([u]))},u)});return e.length?r.apply(this,e):r})}function z(n){return m(function(t){var e=t.pop();t.push(function(){var n=arguments;r?P.setImmediate(function(){e.apply(null,n)}):e.apply(null,n)});var r=!0;n.apply(this,t),r=!1})}var q,P={},C="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||this;null!=C&&(q=C.async),P.noConflict=function(){return C.async=q,P};var H=Object.prototype.toString,M=Array.isArray||function(n){return"[object Array]"===H.call(n)},U=function(n){var t=typeof n;return"function"===t||"object"===t&&!!n},W=Object.keys||function(n){var t=[];for(var e in n)n.hasOwnProperty(e)&&t.push(e);return t},B="function"==typeof setImmediate&&setImmediate,D=B?function(n){B(n)}:function(n){setTimeout(n,0)};"object"==typeof process&&"function"==typeof process.nextTick?P.nextTick=process.nextTick:P.nextTick=D,P.setImmediate=B?D:P.nextTick,P.forEach=P.each=function(n,t,e){return P.eachOf(n,y(t),e)},P.forEachSeries=P.eachSeries=function(n,t,e){return P.eachOfSeries(n,y(t),e)},P.forEachLimit=P.eachLimit=function(n,t,e,r){return v(t)(n,y(e),r)},P.forEachOf=P.eachOf=function(t,e,r){function o(n){f--,n?r(n):null===c&&0>=f&&r(null)}r=i(r||n),t=t||[];for(var c,a=h(t),f=0;null!=(c=a());)f+=1,e(t[c],c,u(o));0===f&&r(null)},P.forEachOfSeries=P.eachOfSeries=function(t,e,r){function o(){var n=!0;return null===a?r(null):(e(t[a],a,u(function(t){if(t)r(t);else{if(a=c(),null===a)return r(null);n?P.setImmediate(o):o()}})),void(n=!1))}r=i(r||n),t=t||[];var c=h(t),a=c();o()},P.forEachOfLimit=P.eachOfLimit=function(n,t,e,r){v(t)(n,e,r)},P.map=d(b),P.mapSeries=k(b),P.mapLimit=g(b),P.inject=P.foldl=P.reduce=function(n,t,e,r){P.eachOfSeries(n,function(n,r,u){e(t,n,function(n,e){t=e,u(n)})},function(n){r(n,t)})},P.foldr=P.reduceRight=function(n,e,r,u){var i=a(n,t).reverse();P.reduce(i,e,r,u)},P.transform=function(n,t,e,r){3===arguments.length&&(r=e,e=t,t=M(n)?[]:{}),P.eachOf(n,function(n,r,u){e(t,n,r,u)},function(n){r(n,t)})},P.select=P.filter=d(w),P.selectLimit=P.filterLimit=g(w),P.selectSeries=P.filterSeries=k(w),P.reject=d(O),P.rejectLimit=g(O),P.rejectSeries=k(O),P.any=P.some=S(P.eachOf,e,t),P.someLimit=S(P.eachOfLimit,e,t),P.all=P.every=S(P.eachOf,r,r),P.everyLimit=S(P.eachOfLimit,r,r),P.detect=S(P.eachOf,t,E),P.detectSeries=S(P.eachOfSeries,t,E),P.detectLimit=S(P.eachOfLimit,t,E),P.sortBy=function(n,t,e){function r(n,t){var e=n.criteria,r=t.criteria;return r>e?-1:e>r?1:0}P.map(n,function(n,e){t(n,function(t,r){t?e(t):e(null,{value:n,criteria:r})})},function(n,t){return n?e(n):void e(null,a(t.sort(r),function(n){return n.value}))})},P.auto=function(t,e,r){function u(n){g.unshift(n)}function o(n){var t=p(g,n);t>=0&&g.splice(t,1)}function a(){h--,c(g.slice(0),function(n){n()})}"function"==typeof arguments[1]&&(r=e,e=null),r=i(r||n);var f=W(t),h=f.length;if(!h)return r(null);e||(e=h);var y={},v=0,d=!1,g=[];u(function(){h||r(null,y)}),c(f,function(n){function i(){return e>v&&l(k,function(n,t){return n&&y.hasOwnProperty(t)},!0)&&!y.hasOwnProperty(n)}function c(){i()&&(v++,o(c),h[h.length-1](g,y))}if(!d){for(var f,h=M(t[n])?t[n]:[t[n]],g=m(function(t,e){if(v--,e.length<=1&&(e=e[0]),t){var u={};s(y,function(n,t){u[t]=n}),u[n]=e,d=!0,r(t,u)}else y[n]=e,P.setImmediate(a)}),k=h.slice(0,h.length-1),b=k.length;b--;){if(!(f=t[k[b]]))throw new Error("Has nonexistent dependency in "+k.join(", "));if(M(f)&&p(f,n)>=0)throw new Error("Has cyclic dependencies")}i()?(v++,h[h.length-1](g,y)):u(c)}})},P.retry=function(n,t,e){function r(n,t){if("number"==typeof t)n.times=parseInt(t,10)||i;else{if("object"!=typeof t)throw new Error("Unsupported argument type for 'times': "+typeof t);n.times=parseInt(t.times,10)||i,n.interval=parseInt(t.interval,10)||o}}function u(n,t){function e(n,e){return function(r){n(function(n,t){r(!n||e,{err:n,result:t})},t)}}function r(n){return function(t){setTimeout(function(){t(null)},n)}}for(;a.times;){var u=!(a.times-=1);c.push(e(a.task,u)),!u&&a.interval>0&&c.push(r(a.interval))}P.series(c,function(t,e){e=e[e.length-1],(n||a.callback)(e.err,e.result)})}var i=5,o=0,c=[],a={times:i,interval:o},f=arguments.length;if(1>f||f>3)throw new Error("Invalid arguments - must be either (task), (task, callback), (times, task) or (times, task, callback)");return 2>=f&&"function"==typeof n&&(e=t,t=n),"function"!=typeof n&&r(a,n),a.callback=e,a.task=t,a.callback?u():u},P.waterfall=function(t,e){function r(n){return m(function(t,u){if(t)e.apply(null,[t].concat(u));else{var i=n.next();i?u.push(r(i)):u.push(e),z(n).apply(null,u)}})}if(e=i(e||n),!M(t)){var u=new Error("First argument to waterfall must be an array of functions");return e(u)}return t.length?void r(P.iterator(t))():e()},P.parallel=function(n,t){L(P.eachOf,n,t)},P.parallelLimit=function(n,t,e){L(v(t),n,e)},P.series=function(n,t){L(P.eachOfSeries,n,t)},P.iterator=function(n){function t(e){function r(){return n.length&&n[e].apply(null,arguments),r.next()}return r.next=function(){return e<n.length-1?t(e+1):null},r}return t(0)},P.apply=m(function(n,t){return m(function(e){return n.apply(null,t.concat(e))})}),P.concat=d(j),P.concatSeries=k(j),P.whilst=function(t,e,r){if(r=r||n,t()){var u=m(function(n,i){n?r(n):t.apply(this,i)?e(u):r.apply(null,[null].concat(i))});e(u)}else r(null)},P.doWhilst=function(n,t,e){var r=0;return P.whilst(function(){return++r<=1||t.apply(this,arguments)},n,e)},P.until=function(n,t,e){return P.whilst(function(){return!n.apply(this,arguments)},t,e)},P.doUntil=function(n,t,e){return P.doWhilst(n,function(){return!t.apply(this,arguments)},e)},P.during=function(t,e,r){r=r||n;var u=m(function(n,e){n?r(n):(e.push(i),t.apply(this,e))}),i=function(n,t){n?r(n):t?e(u):r(null)};t(i)},P.doDuring=function(n,t,e){var r=0;P.during(function(n){r++<1?n(null,!0):t.apply(this,arguments)},n,e)},P.queue=function(n,t){var e=I(function(t,e){n(t[0],e)},t,1);return e},P.priorityQueue=function(t,e){function r(n,t){return n.priority-t.priority}function u(n,t,e){for(var r=-1,u=n.length-1;u>r;){var i=r+(u-r+1>>>1);e(t,n[i])>=0?r=i:u=i-1}return r}function i(t,e,i,o){if(null!=o&&"function"!=typeof o)throw new Error("task callback must be a function");return t.started=!0,M(e)||(e=[e]),0===e.length?P.setImmediate(function(){t.drain()}):void c(e,function(e){var c={data:e,priority:i,callback:"function"==typeof o?o:n};t.tasks.splice(u(t.tasks,c,r)+1,0,c),t.tasks.length===t.concurrency&&t.saturated(),P.setImmediate(t.process)})}var o=P.queue(t,e);return o.push=function(n,t,e){i(o,n,t,e)},delete o.unshift,o},P.cargo=function(n,t){return I(n,1,t)},P.log=x("log"),P.dir=x("dir"),P.memoize=function(n,e){var r={},u={},i=Object.prototype.hasOwnProperty;e=e||t;var o=m(function(t){var o=t.pop(),c=e.apply(null,t);i.call(r,c)?P.setImmediate(function(){o.apply(null,r[c])}):i.call(u,c)?u[c].push(o):(u[c]=[o],n.apply(null,t.concat([m(function(n){r[c]=n;var t=u[c];delete u[c];for(var e=0,i=t.length;i>e;e++)t[e].apply(null,n)})])))});return o.memo=r,o.unmemoized=n,o},P.unmemoize=function(n){return function(){return(n.unmemoized||n).apply(null,arguments)}},P.times=A(P.map),P.timesSeries=A(P.mapSeries),P.timesLimit=function(n,t,e,r){return P.mapLimit(f(n),t,e,r)},P.seq=function(){var t=arguments;return m(function(e){var r=this,u=e[e.length-1];"function"==typeof u?e.pop():u=n,P.reduce(t,e,function(n,t,e){t.apply(r,n.concat([m(function(n,t){e(n,t)})]))},function(n,t){u.apply(r,[n].concat(t))})})},P.compose=function(){return P.seq.apply(null,Array.prototype.reverse.call(arguments))},P.applyEach=T(P.eachOf),P.applyEachSeries=T(P.eachOfSeries),P.forever=function(t,e){function r(n){return n?i(n):void o(r)}var i=u(e||n),o=z(t);r()},P.ensureAsync=z,P.constant=m(function(n){var t=[null].concat(n);return function(n){return n.apply(this,t)}}),P.wrapSync=P.asyncify=function(n){return m(function(t){var e,r=t.pop();try{e=n.apply(this,t)}catch(u){return r(u)}U(e)&&"function"==typeof e.then?e.then(function(n){r(null,n)})["catch"](function(n){r(n.message?n:new Error(n))}):r(null,e)})},"object"==typeof module&&module.exports?module.exports=P:"function"==typeof define&&define.amd?define([],function(){return P}):C.async=P}();
-//# sourceMappingURL=dist/async.min.map \ No newline at end of file
diff --git a/node_modules/istanbul/node_modules/async/lib/async.js b/node_modules/istanbul/node_modules/async/lib/async.js
deleted file mode 100644
index 31e7620fb..000000000
--- a/node_modules/istanbul/node_modules/async/lib/async.js
+++ /dev/null
@@ -1,1265 +0,0 @@
-/*!
- * async
- * https://github.com/caolan/async
- *
- * Copyright 2010-2014 Caolan McMahon
- * Released under the MIT license
- */
-(function () {
-
- var async = {};
- function noop() {}
- function identity(v) {
- return v;
- }
- function toBool(v) {
- return !!v;
- }
- function notId(v) {
- return !v;
- }
-
- // global on the server, window in the browser
- var previous_async;
-
- // Establish the root object, `window` (`self`) in the browser, `global`
- // on the server, or `this` in some virtual machines. We use `self`
- // instead of `window` for `WebWorker` support.
- var root = typeof self === 'object' && self.self === self && self ||
- typeof global === 'object' && global.global === global && global ||
- this;
-
- if (root != null) {
- previous_async = root.async;
- }
-
- async.noConflict = function () {
- root.async = previous_async;
- return async;
- };
-
- function only_once(fn) {
- return function() {
- if (fn === null) throw new Error("Callback was already called.");
- fn.apply(this, arguments);
- fn = null;
- };
- }
-
- function _once(fn) {
- return function() {
- if (fn === null) return;
- fn.apply(this, arguments);
- fn = null;
- };
- }
-
- //// cross-browser compatiblity functions ////
-
- var _toString = Object.prototype.toString;
-
- var _isArray = Array.isArray || function (obj) {
- return _toString.call(obj) === '[object Array]';
- };
-
- // Ported from underscore.js isObject
- var _isObject = function(obj) {
- var type = typeof obj;
- return type === 'function' || type === 'object' && !!obj;
- };
-
- function _isArrayLike(arr) {
- return _isArray(arr) || (
- // has a positive integer length property
- typeof arr.length === "number" &&
- arr.length >= 0 &&
- arr.length % 1 === 0
- );
- }
-
- function _arrayEach(arr, iterator) {
- var index = -1,
- length = arr.length;
-
- while (++index < length) {
- iterator(arr[index], index, arr);
- }
- }
-
- function _map(arr, iterator) {
- var index = -1,
- length = arr.length,
- result = Array(length);
-
- while (++index < length) {
- result[index] = iterator(arr[index], index, arr);
- }
- return result;
- }
-
- function _range(count) {
- return _map(Array(count), function (v, i) { return i; });
- }
-
- function _reduce(arr, iterator, memo) {
- _arrayEach(arr, function (x, i, a) {
- memo = iterator(memo, x, i, a);
- });
- return memo;
- }
-
- function _forEachOf(object, iterator) {
- _arrayEach(_keys(object), function (key) {
- iterator(object[key], key);
- });
- }
-
- function _indexOf(arr, item) {
- for (var i = 0; i < arr.length; i++) {
- if (arr[i] === item) return i;
- }
- return -1;
- }
-
- var _keys = Object.keys || function (obj) {
- var keys = [];
- for (var k in obj) {
- if (obj.hasOwnProperty(k)) {
- keys.push(k);
- }
- }
- return keys;
- };
-
- function _keyIterator(coll) {
- var i = -1;
- var len;
- var keys;
- if (_isArrayLike(coll)) {
- len = coll.length;
- return function next() {
- i++;
- return i < len ? i : null;
- };
- } else {
- keys = _keys(coll);
- len = keys.length;
- return function next() {
- i++;
- return i < len ? keys[i] : null;
- };
- }
- }
-
- // Similar to ES6's rest param (http://ariya.ofilabs.com/2013/03/es6-and-rest-parameter.html)
- // This accumulates the arguments passed into an array, after a given index.
- // From underscore.js (https://github.com/jashkenas/underscore/pull/2140).
- function _restParam(func, startIndex) {
- startIndex = startIndex == null ? func.length - 1 : +startIndex;
- return function() {
- var length = Math.max(arguments.length - startIndex, 0);
- var rest = Array(length);
- for (var index = 0; index < length; index++) {
- rest[index] = arguments[index + startIndex];
- }
- switch (startIndex) {
- case 0: return func.call(this, rest);
- case 1: return func.call(this, arguments[0], rest);
- }
- // Currently unused but handle cases outside of the switch statement:
- // var args = Array(startIndex + 1);
- // for (index = 0; index < startIndex; index++) {
- // args[index] = arguments[index];
- // }
- // args[startIndex] = rest;
- // return func.apply(this, args);
- };
- }
-
- function _withoutIndex(iterator) {
- return function (value, index, callback) {
- return iterator(value, callback);
- };
- }
-
- //// exported async module functions ////
-
- //// nextTick implementation with browser-compatible fallback ////
-
- // capture the global reference to guard against fakeTimer mocks
- var _setImmediate = typeof setImmediate === 'function' && setImmediate;
-
- var _delay = _setImmediate ? function(fn) {
- // not a direct alias for IE10 compatibility
- _setImmediate(fn);
- } : function(fn) {
- setTimeout(fn, 0);
- };
-
- if (typeof process === 'object' && typeof process.nextTick === 'function') {
- async.nextTick = process.nextTick;
- } else {
- async.nextTick = _delay;
- }
- async.setImmediate = _setImmediate ? _delay : async.nextTick;
-
-
- async.forEach =
- async.each = function (arr, iterator, callback) {
- return async.eachOf(arr, _withoutIndex(iterator), callback);
- };
-
- async.forEachSeries =
- async.eachSeries = function (arr, iterator, callback) {
- return async.eachOfSeries(arr, _withoutIndex(iterator), callback);
- };
-
-
- async.forEachLimit =
- async.eachLimit = function (arr, limit, iterator, callback) {
- return _eachOfLimit(limit)(arr, _withoutIndex(iterator), callback);
- };
-
- async.forEachOf =
- async.eachOf = function (object, iterator, callback) {
- callback = _once(callback || noop);
- object = object || [];
-
- var iter = _keyIterator(object);
- var key, completed = 0;
-
- while ((key = iter()) != null) {
- completed += 1;
- iterator(object[key], key, only_once(done));
- }
-
- if (completed === 0) callback(null);
-
- function done(err) {
- completed--;
- if (err) {
- callback(err);
- }
- // Check key is null in case iterator isn't exhausted
- // and done resolved synchronously.
- else if (key === null && completed <= 0) {
- callback(null);
- }
- }
- };
-
- async.forEachOfSeries =
- async.eachOfSeries = function (obj, iterator, callback) {
- callback = _once(callback || noop);
- obj = obj || [];
- var nextKey = _keyIterator(obj);
- var key = nextKey();
- function iterate() {
- var sync = true;
- if (key === null) {
- return callback(null);
- }
- iterator(obj[key], key, only_once(function (err) {
- if (err) {
- callback(err);
- }
- else {
- key = nextKey();
- if (key === null) {
- return callback(null);
- } else {
- if (sync) {
- async.setImmediate(iterate);
- } else {
- iterate();
- }
- }
- }
- }));
- sync = false;
- }
- iterate();
- };
-
-
-
- async.forEachOfLimit =
- async.eachOfLimit = function (obj, limit, iterator, callback) {
- _eachOfLimit(limit)(obj, iterator, callback);
- };
-
- function _eachOfLimit(limit) {
-
- return function (obj, iterator, callback) {
- callback = _once(callback || noop);
- obj = obj || [];
- var nextKey = _keyIterator(obj);
- if (limit <= 0) {
- return callback(null);
- }
- var done = false;
- var running = 0;
- var errored = false;
-
- (function replenish () {
- if (done && running <= 0) {
- return callback(null);
- }
-
- while (running < limit && !errored) {
- var key = nextKey();
- if (key === null) {
- done = true;
- if (running <= 0) {
- callback(null);
- }
- return;
- }
- running += 1;
- iterator(obj[key], key, only_once(function (err) {
- running -= 1;
- if (err) {
- callback(err);
- errored = true;
- }
- else {
- replenish();
- }
- }));
- }
- })();
- };
- }
-
-
- function doParallel(fn) {
- return function (obj, iterator, callback) {
- return fn(async.eachOf, obj, iterator, callback);
- };
- }
- function doParallelLimit(fn) {
- return function (obj, limit, iterator, callback) {
- return fn(_eachOfLimit(limit), obj, iterator, callback);
- };
- }
- function doSeries(fn) {
- return function (obj, iterator, callback) {
- return fn(async.eachOfSeries, obj, iterator, callback);
- };
- }
-
- function _asyncMap(eachfn, arr, iterator, callback) {
- callback = _once(callback || noop);
- arr = arr || [];
- var results = _isArrayLike(arr) ? [] : {};
- eachfn(arr, function (value, index, callback) {
- iterator(value, function (err, v) {
- results[index] = v;
- callback(err);
- });
- }, function (err) {
- callback(err, results);
- });
- }
-
- async.map = doParallel(_asyncMap);
- async.mapSeries = doSeries(_asyncMap);
- async.mapLimit = doParallelLimit(_asyncMap);
-
- // reduce only has a series version, as doing reduce in parallel won't
- // work in many situations.
- async.inject =
- async.foldl =
- async.reduce = function (arr, memo, iterator, callback) {
- async.eachOfSeries(arr, function (x, i, callback) {
- iterator(memo, x, function (err, v) {
- memo = v;
- callback(err);
- });
- }, function (err) {
- callback(err, memo);
- });
- };
-
- async.foldr =
- async.reduceRight = function (arr, memo, iterator, callback) {
- var reversed = _map(arr, identity).reverse();
- async.reduce(reversed, memo, iterator, callback);
- };
-
- async.transform = function (arr, memo, iterator, callback) {
- if (arguments.length === 3) {
- callback = iterator;
- iterator = memo;
- memo = _isArray(arr) ? [] : {};
- }
-
- async.eachOf(arr, function(v, k, cb) {
- iterator(memo, v, k, cb);
- }, function(err) {
- callback(err, memo);
- });
- };
-
- function _filter(eachfn, arr, iterator, callback) {
- var results = [];
- eachfn(arr, function (x, index, callback) {
- iterator(x, function (v) {
- if (v) {
- results.push({index: index, value: x});
- }
- callback();
- });
- }, function () {
- callback(_map(results.sort(function (a, b) {
- return a.index - b.index;
- }), function (x) {
- return x.value;
- }));
- });
- }
-
- async.select =
- async.filter = doParallel(_filter);
-
- async.selectLimit =
- async.filterLimit = doParallelLimit(_filter);
-
- async.selectSeries =
- async.filterSeries = doSeries(_filter);
-
- function _reject(eachfn, arr, iterator, callback) {
- _filter(eachfn, arr, function(value, cb) {
- iterator(value, function(v) {
- cb(!v);
- });
- }, callback);
- }
- async.reject = doParallel(_reject);
- async.rejectLimit = doParallelLimit(_reject);
- async.rejectSeries = doSeries(_reject);
-
- function _createTester(eachfn, check, getResult) {
- return function(arr, limit, iterator, cb) {
- function done() {
- if (cb) cb(getResult(false, void 0));
- }
- function iteratee(x, _, callback) {
- if (!cb) return callback();
- iterator(x, function (v) {
- if (cb && check(v)) {
- cb(getResult(true, x));
- cb = iterator = false;
- }
- callback();
- });
- }
- if (arguments.length > 3) {
- eachfn(arr, limit, iteratee, done);
- } else {
- cb = iterator;
- iterator = limit;
- eachfn(arr, iteratee, done);
- }
- };
- }
-
- async.any =
- async.some = _createTester(async.eachOf, toBool, identity);
-
- async.someLimit = _createTester(async.eachOfLimit, toBool, identity);
-
- async.all =
- async.every = _createTester(async.eachOf, notId, notId);
-
- async.everyLimit = _createTester(async.eachOfLimit, notId, notId);
-
- function _findGetResult(v, x) {
- return x;
- }
- async.detect = _createTester(async.eachOf, identity, _findGetResult);
- async.detectSeries = _createTester(async.eachOfSeries, identity, _findGetResult);
- async.detectLimit = _createTester(async.eachOfLimit, identity, _findGetResult);
-
- async.sortBy = function (arr, iterator, callback) {
- async.map(arr, function (x, callback) {
- iterator(x, function (err, criteria) {
- if (err) {
- callback(err);
- }
- else {
- callback(null, {value: x, criteria: criteria});
- }
- });
- }, function (err, results) {
- if (err) {
- return callback(err);
- }
- else {
- callback(null, _map(results.sort(comparator), function (x) {
- return x.value;
- }));
- }
-
- });
-
- function comparator(left, right) {
- var a = left.criteria, b = right.criteria;
- return a < b ? -1 : a > b ? 1 : 0;
- }
- };
-
- async.auto = function (tasks, concurrency, callback) {
- if (typeof arguments[1] === 'function') {
- // concurrency is optional, shift the args.
- callback = concurrency;
- concurrency = null;
- }
- callback = _once(callback || noop);
- var keys = _keys(tasks);
- var remainingTasks = keys.length;
- if (!remainingTasks) {
- return callback(null);
- }
- if (!concurrency) {
- concurrency = remainingTasks;
- }
-
- var results = {};
- var runningTasks = 0;
-
- var hasError = false;
-
- var listeners = [];
- function addListener(fn) {
- listeners.unshift(fn);
- }
- function removeListener(fn) {
- var idx = _indexOf(listeners, fn);
- if (idx >= 0) listeners.splice(idx, 1);
- }
- function taskComplete() {
- remainingTasks--;
- _arrayEach(listeners.slice(0), function (fn) {
- fn();
- });
- }
-
- addListener(function () {
- if (!remainingTasks) {
- callback(null, results);
- }
- });
-
- _arrayEach(keys, function (k) {
- if (hasError) return;
- var task = _isArray(tasks[k]) ? tasks[k]: [tasks[k]];
- var taskCallback = _restParam(function(err, args) {
- runningTasks--;
- if (args.length <= 1) {
- args = args[0];
- }
- if (err) {
- var safeResults = {};
- _forEachOf(results, function(val, rkey) {
- safeResults[rkey] = val;
- });
- safeResults[k] = args;
- hasError = true;
-
- callback(err, safeResults);
- }
- else {
- results[k] = args;
- async.setImmediate(taskComplete);
- }
- });
- var requires = task.slice(0, task.length - 1);
- // prevent dead-locks
- var len = requires.length;
- var dep;
- while (len--) {
- if (!(dep = tasks[requires[len]])) {
- throw new Error('Has nonexistent dependency in ' + requires.join(', '));
- }
- if (_isArray(dep) && _indexOf(dep, k) >= 0) {
- throw new Error('Has cyclic dependencies');
- }
- }
- function ready() {
- return runningTasks < concurrency && _reduce(requires, function (a, x) {
- return (a && results.hasOwnProperty(x));
- }, true) && !results.hasOwnProperty(k);
- }
- if (ready()) {
- runningTasks++;
- task[task.length - 1](taskCallback, results);
- }
- else {
- addListener(listener);
- }
- function listener() {
- if (ready()) {
- runningTasks++;
- removeListener(listener);
- task[task.length - 1](taskCallback, results);
- }
- }
- });
- };
-
-
-
- async.retry = function(times, task, callback) {
- var DEFAULT_TIMES = 5;
- var DEFAULT_INTERVAL = 0;
-
- var attempts = [];
-
- var opts = {
- times: DEFAULT_TIMES,
- interval: DEFAULT_INTERVAL
- };
-
- function parseTimes(acc, t){
- if(typeof t === 'number'){
- acc.times = parseInt(t, 10) || DEFAULT_TIMES;
- } else if(typeof t === 'object'){
- acc.times = parseInt(t.times, 10) || DEFAULT_TIMES;
- acc.interval = parseInt(t.interval, 10) || DEFAULT_INTERVAL;
- } else {
- throw new Error('Unsupported argument type for \'times\': ' + typeof t);
- }
- }
-
- var length = arguments.length;
- if (length < 1 || length > 3) {
- throw new Error('Invalid arguments - must be either (task), (task, callback), (times, task) or (times, task, callback)');
- } else if (length <= 2 && typeof times === 'function') {
- callback = task;
- task = times;
- }
- if (typeof times !== 'function') {
- parseTimes(opts, times);
- }
- opts.callback = callback;
- opts.task = task;
-
- function wrappedTask(wrappedCallback, wrappedResults) {
- function retryAttempt(task, finalAttempt) {
- return function(seriesCallback) {
- task(function(err, result){
- seriesCallback(!err || finalAttempt, {err: err, result: result});
- }, wrappedResults);
- };
- }
-
- function retryInterval(interval){
- return function(seriesCallback){
- setTimeout(function(){
- seriesCallback(null);
- }, interval);
- };
- }
-
- while (opts.times) {
-
- var finalAttempt = !(opts.times-=1);
- attempts.push(retryAttempt(opts.task, finalAttempt));
- if(!finalAttempt && opts.interval > 0){
- attempts.push(retryInterval(opts.interval));
- }
- }
-
- async.series(attempts, function(done, data){
- data = data[data.length - 1];
- (wrappedCallback || opts.callback)(data.err, data.result);
- });
- }
-
- // If a callback is passed, run this as a controll flow
- return opts.callback ? wrappedTask() : wrappedTask;
- };
-
- async.waterfall = function (tasks, callback) {
- callback = _once(callback || noop);
- if (!_isArray(tasks)) {
- var err = new Error('First argument to waterfall must be an array of functions');
- return callback(err);
- }
- if (!tasks.length) {
- return callback();
- }
- function wrapIterator(iterator) {
- return _restParam(function (err, args) {
- if (err) {
- callback.apply(null, [err].concat(args));
- }
- else {
- var next = iterator.next();
- if (next) {
- args.push(wrapIterator(next));
- }
- else {
- args.push(callback);
- }
- ensureAsync(iterator).apply(null, args);
- }
- });
- }
- wrapIterator(async.iterator(tasks))();
- };
-
- function _parallel(eachfn, tasks, callback) {
- callback = callback || noop;
- var results = _isArrayLike(tasks) ? [] : {};
-
- eachfn(tasks, function (task, key, callback) {
- task(_restParam(function (err, args) {
- if (args.length <= 1) {
- args = args[0];
- }
- results[key] = args;
- callback(err);
- }));
- }, function (err) {
- callback(err, results);
- });
- }
-
- async.parallel = function (tasks, callback) {
- _parallel(async.eachOf, tasks, callback);
- };
-
- async.parallelLimit = function(tasks, limit, callback) {
- _parallel(_eachOfLimit(limit), tasks, callback);
- };
-
- async.series = function(tasks, callback) {
- _parallel(async.eachOfSeries, tasks, callback);
- };
-
- async.iterator = function (tasks) {
- function makeCallback(index) {
- function fn() {
- if (tasks.length) {
- tasks[index].apply(null, arguments);
- }
- return fn.next();
- }
- fn.next = function () {
- return (index < tasks.length - 1) ? makeCallback(index + 1): null;
- };
- return fn;
- }
- return makeCallback(0);
- };
-
- async.apply = _restParam(function (fn, args) {
- return _restParam(function (callArgs) {
- return fn.apply(
- null, args.concat(callArgs)
- );
- });
- });
-
- function _concat(eachfn, arr, fn, callback) {
- var result = [];
- eachfn(arr, function (x, index, cb) {
- fn(x, function (err, y) {
- result = result.concat(y || []);
- cb(err);
- });
- }, function (err) {
- callback(err, result);
- });
- }
- async.concat = doParallel(_concat);
- async.concatSeries = doSeries(_concat);
-
- async.whilst = function (test, iterator, callback) {
- callback = callback || noop;
- if (test()) {
- var next = _restParam(function(err, args) {
- if (err) {
- callback(err);
- } else if (test.apply(this, args)) {
- iterator(next);
- } else {
- callback.apply(null, [null].concat(args));
- }
- });
- iterator(next);
- } else {
- callback(null);
- }
- };
-
- async.doWhilst = function (iterator, test, callback) {
- var calls = 0;
- return async.whilst(function() {
- return ++calls <= 1 || test.apply(this, arguments);
- }, iterator, callback);
- };
-
- async.until = function (test, iterator, callback) {
- return async.whilst(function() {
- return !test.apply(this, arguments);
- }, iterator, callback);
- };
-
- async.doUntil = function (iterator, test, callback) {
- return async.doWhilst(iterator, function() {
- return !test.apply(this, arguments);
- }, callback);
- };
-
- async.during = function (test, iterator, callback) {
- callback = callback || noop;
-
- var next = _restParam(function(err, args) {
- if (err) {
- callback(err);
- } else {
- args.push(check);
- test.apply(this, args);
- }
- });
-
- var check = function(err, truth) {
- if (err) {
- callback(err);
- } else if (truth) {
- iterator(next);
- } else {
- callback(null);
- }
- };
-
- test(check);
- };
-
- async.doDuring = function (iterator, test, callback) {
- var calls = 0;
- async.during(function(next) {
- if (calls++ < 1) {
- next(null, true);
- } else {
- test.apply(this, arguments);
- }
- }, iterator, callback);
- };
-
- function _queue(worker, concurrency, payload) {
- if (concurrency == null) {
- concurrency = 1;
- }
- else if(concurrency === 0) {
- throw new Error('Concurrency must not be zero');
- }
- function _insert(q, data, pos, callback) {
- if (callback != null && typeof callback !== "function") {
- throw new Error("task callback must be a function");
- }
- q.started = true;
- if (!_isArray(data)) {
- data = [data];
- }
- if(data.length === 0 && q.idle()) {
- // call drain immediately if there are no tasks
- return async.setImmediate(function() {
- q.drain();
- });
- }
- _arrayEach(data, function(task) {
- var item = {
- data: task,
- callback: callback || noop
- };
-
- if (pos) {
- q.tasks.unshift(item);
- } else {
- q.tasks.push(item);
- }
-
- if (q.tasks.length === q.concurrency) {
- q.saturated();
- }
- });
- async.setImmediate(q.process);
- }
- function _next(q, tasks) {
- return function(){
- workers -= 1;
-
- var removed = false;
- var args = arguments;
- _arrayEach(tasks, function (task) {
- _arrayEach(workersList, function (worker, index) {
- if (worker === task && !removed) {
- workersList.splice(index, 1);
- removed = true;
- }
- });
-
- task.callback.apply(task, args);
- });
- if (q.tasks.length + workers === 0) {
- q.drain();
- }
- q.process();
- };
- }
-
- var workers = 0;
- var workersList = [];
- var q = {
- tasks: [],
- concurrency: concurrency,
- payload: payload,
- saturated: noop,
- empty: noop,
- drain: noop,
- started: false,
- paused: false,
- push: function (data, callback) {
- _insert(q, data, false, callback);
- },
- kill: function () {
- q.drain = noop;
- q.tasks = [];
- },
- unshift: function (data, callback) {
- _insert(q, data, true, callback);
- },
- process: function () {
- while(!q.paused && workers < q.concurrency && q.tasks.length){
-
- var tasks = q.payload ?
- q.tasks.splice(0, q.payload) :
- q.tasks.splice(0, q.tasks.length);
-
- var data = _map(tasks, function (task) {
- return task.data;
- });
-
- if (q.tasks.length === 0) {
- q.empty();
- }
- workers += 1;
- workersList.push(tasks[0]);
- var cb = only_once(_next(q, tasks));
- worker(data, cb);
- }
- },
- length: function () {
- return q.tasks.length;
- },
- running: function () {
- return workers;
- },
- workersList: function () {
- return workersList;
- },
- idle: function() {
- return q.tasks.length + workers === 0;
- },
- pause: function () {
- q.paused = true;
- },
- resume: function () {
- if (q.paused === false) { return; }
- q.paused = false;
- var resumeCount = Math.min(q.concurrency, q.tasks.length);
- // Need to call q.process once per concurrent
- // worker to preserve full concurrency after pause
- for (var w = 1; w <= resumeCount; w++) {
- async.setImmediate(q.process);
- }
- }
- };
- return q;
- }
-
- async.queue = function (worker, concurrency) {
- var q = _queue(function (items, cb) {
- worker(items[0], cb);
- }, concurrency, 1);
-
- return q;
- };
-
- async.priorityQueue = function (worker, concurrency) {
-
- function _compareTasks(a, b){
- return a.priority - b.priority;
- }
-
- function _binarySearch(sequence, item, compare) {
- var beg = -1,
- end = sequence.length - 1;
- while (beg < end) {
- var mid = beg + ((end - beg + 1) >>> 1);
- if (compare(item, sequence[mid]) >= 0) {
- beg = mid;
- } else {
- end = mid - 1;
- }
- }
- return beg;
- }
-
- function _insert(q, data, priority, callback) {
- if (callback != null && typeof callback !== "function") {
- throw new Error("task callback must be a function");
- }
- q.started = true;
- if (!_isArray(data)) {
- data = [data];
- }
- if(data.length === 0) {
- // call drain immediately if there are no tasks
- return async.setImmediate(function() {
- q.drain();
- });
- }
- _arrayEach(data, function(task) {
- var item = {
- data: task,
- priority: priority,
- callback: typeof callback === 'function' ? callback : noop
- };
-
- q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item);
-
- if (q.tasks.length === q.concurrency) {
- q.saturated();
- }
- async.setImmediate(q.process);
- });
- }
-
- // Start with a normal queue
- var q = async.queue(worker, concurrency);
-
- // Override push to accept second parameter representing priority
- q.push = function (data, priority, callback) {
- _insert(q, data, priority, callback);
- };
-
- // Remove unshift function
- delete q.unshift;
-
- return q;
- };
-
- async.cargo = function (worker, payload) {
- return _queue(worker, 1, payload);
- };
-
- function _console_fn(name) {
- return _restParam(function (fn, args) {
- fn.apply(null, args.concat([_restParam(function (err, args) {
- if (typeof console === 'object') {
- if (err) {
- if (console.error) {
- console.error(err);
- }
- }
- else if (console[name]) {
- _arrayEach(args, function (x) {
- console[name](x);
- });
- }
- }
- })]));
- });
- }
- async.log = _console_fn('log');
- async.dir = _console_fn('dir');
- /*async.info = _console_fn('info');
- async.warn = _console_fn('warn');
- async.error = _console_fn('error');*/
-
- async.memoize = function (fn, hasher) {
- var memo = {};
- var queues = {};
- var has = Object.prototype.hasOwnProperty;
- hasher = hasher || identity;
- var memoized = _restParam(function memoized(args) {
- var callback = args.pop();
- var key = hasher.apply(null, args);
- if (has.call(memo, key)) {
- async.setImmediate(function () {
- callback.apply(null, memo[key]);
- });
- }
- else if (has.call(queues, key)) {
- queues[key].push(callback);
- }
- else {
- queues[key] = [callback];
- fn.apply(null, args.concat([_restParam(function (args) {
- memo[key] = args;
- var q = queues[key];
- delete queues[key];
- for (var i = 0, l = q.length; i < l; i++) {
- q[i].apply(null, args);
- }
- })]));
- }
- });
- memoized.memo = memo;
- memoized.unmemoized = fn;
- return memoized;
- };
-
- async.unmemoize = function (fn) {
- return function () {
- return (fn.unmemoized || fn).apply(null, arguments);
- };
- };
-
- function _times(mapper) {
- return function (count, iterator, callback) {
- mapper(_range(count), iterator, callback);
- };
- }
-
- async.times = _times(async.map);
- async.timesSeries = _times(async.mapSeries);
- async.timesLimit = function (count, limit, iterator, callback) {
- return async.mapLimit(_range(count), limit, iterator, callback);
- };
-
- async.seq = function (/* functions... */) {
- var fns = arguments;
- return _restParam(function (args) {
- var that = this;
-
- var callback = args[args.length - 1];
- if (typeof callback == 'function') {
- args.pop();
- } else {
- callback = noop;
- }
-
- async.reduce(fns, args, function (newargs, fn, cb) {
- fn.apply(that, newargs.concat([_restParam(function (err, nextargs) {
- cb(err, nextargs);
- })]));
- },
- function (err, results) {
- callback.apply(that, [err].concat(results));
- });
- });
- };
-
- async.compose = function (/* functions... */) {
- return async.seq.apply(null, Array.prototype.reverse.call(arguments));
- };
-
-
- function _applyEach(eachfn) {
- return _restParam(function(fns, args) {
- var go = _restParam(function(args) {
- var that = this;
- var callback = args.pop();
- return eachfn(fns, function (fn, _, cb) {
- fn.apply(that, args.concat([cb]));
- },
- callback);
- });
- if (args.length) {
- return go.apply(this, args);
- }
- else {
- return go;
- }
- });
- }
-
- async.applyEach = _applyEach(async.eachOf);
- async.applyEachSeries = _applyEach(async.eachOfSeries);
-
-
- async.forever = function (fn, callback) {
- var done = only_once(callback || noop);
- var task = ensureAsync(fn);
- function next(err) {
- if (err) {
- return done(err);
- }
- task(next);
- }
- next();
- };
-
- function ensureAsync(fn) {
- return _restParam(function (args) {
- var callback = args.pop();
- args.push(function () {
- var innerArgs = arguments;
- if (sync) {
- async.setImmediate(function () {
- callback.apply(null, innerArgs);
- });
- } else {
- callback.apply(null, innerArgs);
- }
- });
- var sync = true;
- fn.apply(this, args);
- sync = false;
- });
- }
-
- async.ensureAsync = ensureAsync;
-
- async.constant = _restParam(function(values) {
- var args = [null].concat(values);
- return function (callback) {
- return callback.apply(this, args);
- };
- });
-
- async.wrapSync =
- async.asyncify = function asyncify(func) {
- return _restParam(function (args) {
- var callback = args.pop();
- var result;
- try {
- result = func.apply(this, args);
- } catch (e) {
- return callback(e);
- }
- // if result is Promise object
- if (_isObject(result) && typeof result.then === "function") {
- result.then(function(value) {
- callback(null, value);
- })["catch"](function(err) {
- callback(err.message ? err : new Error(err));
- });
- } else {
- callback(null, result);
- }
- });
- };
-
- // Node.js
- if (typeof module === 'object' && module.exports) {
- module.exports = async;
- }
- // AMD / RequireJS
- else if (typeof define === 'function' && define.amd) {
- define([], function () {
- return async;
- });
- }
- // included directly via <script> tag
- else {
- root.async = async;
- }
-
-}());
diff --git a/node_modules/istanbul/node_modules/async/package.json b/node_modules/istanbul/node_modules/async/package.json
deleted file mode 100644
index 11725e8de..000000000
--- a/node_modules/istanbul/node_modules/async/package.json
+++ /dev/null
@@ -1,85 +0,0 @@
-{
- "name": "async",
- "description": "Higher-order functions and common patterns for asynchronous code",
- "main": "lib/async.js",
- "files": [
- "lib",
- "dist/async.js",
- "dist/async.min.js"
- ],
- "author": "Caolan McMahon",
- "version": "1.5.2",
- "keywords": [
- "async",
- "callback",
- "utility",
- "module"
- ],
- "repository": {
- "type": "git",
- "url": "https://github.com/caolan/async.git"
- },
- "bugs": {
- "url": "https://github.com/caolan/async/issues"
- },
- "license": "MIT",
- "devDependencies": {
- "benchmark": "bestiejs/benchmark.js",
- "bluebird": "^2.9.32",
- "chai": "^3.1.0",
- "coveralls": "^2.11.2",
- "es6-promise": "^2.3.0",
- "jscs": "^1.13.1",
- "jshint": "~2.8.0",
- "karma": "^0.13.2",
- "karma-browserify": "^4.2.1",
- "karma-firefox-launcher": "^0.1.6",
- "karma-mocha": "^0.2.0",
- "karma-mocha-reporter": "^1.0.2",
- "lodash": "^3.9.0",
- "mkdirp": "~0.5.1",
- "mocha": "^2.2.5",
- "native-promise-only": "^0.8.0-a",
- "nodeunit": ">0.0.0",
- "nyc": "^2.1.0",
- "rsvp": "^3.0.18",
- "semver": "^4.3.6",
- "uglify-js": "~2.4.0",
- "xyz": "^0.5.0",
- "yargs": "~3.9.1"
- },
- "jam": {
- "main": "lib/async.js",
- "include": [
- "lib/async.js",
- "README.md",
- "LICENSE"
- ],
- "categories": [
- "Utilities"
- ]
- },
- "scripts": {
- "mocha-node-test": "mocha mocha_test/",
- "mocha-browser-test": "karma start",
- "mocha-test": "npm run mocha-node-test && npm run mocha-browser-test",
- "nodeunit-test": "nodeunit test/test-async.js",
- "test": "npm run-script lint && npm run nodeunit-test && npm run mocha-test",
- "lint": "jshint lib/*.js test/*.js perf/*.js && jscs lib/*.js test/*.js perf/*.js",
- "coverage": "nyc npm test && nyc report",
- "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls"
- },
- "spm": {
- "main": "lib/async.js"
- },
- "volo": {
- "main": "lib/async.js",
- "ignore": [
- "**/.*",
- "node_modules",
- "bower_components",
- "test",
- "tests"
- ]
- }
-}
diff --git a/node_modules/istanbul/node_modules/glob/LICENSE b/node_modules/istanbul/node_modules/glob/LICENSE
deleted file mode 100644
index 19129e315..000000000
--- a/node_modules/istanbul/node_modules/glob/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/istanbul/node_modules/glob/README.md b/node_modules/istanbul/node_modules/glob/README.md
deleted file mode 100644
index 063cf950a..000000000
--- a/node_modules/istanbul/node_modules/glob/README.md
+++ /dev/null
@@ -1,377 +0,0 @@
-[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Dependency Status](https://david-dm.org/isaacs/node-glob.svg)](https://david-dm.org/isaacs/node-glob) [![devDependency Status](https://david-dm.org/isaacs/node-glob/dev-status.svg)](https://david-dm.org/isaacs/node-glob#info=devDependencies) [![optionalDependency Status](https://david-dm.org/isaacs/node-glob/optional-status.svg)](https://david-dm.org/isaacs/node-glob#info=optionalDependencies)
-
-# Glob
-
-Match files using the patterns the shell uses, like stars and stuff.
-
-This is a glob implementation in JavaScript. It uses the `minimatch`
-library to do its matching.
-
-![](oh-my-glob.gif)
-
-## Usage
-
-```javascript
-var glob = require("glob")
-
-// options is optional
-glob("**/*.js", options, function (er, files) {
- // files is an array of filenames.
- // If the `nonull` option is set, and nothing
- // was found, then files is ["**/*.js"]
- // er is an error object or null.
-})
-```
-
-## Glob Primer
-
-"Globs" are the patterns you type when you do stuff like `ls *.js` on
-the command line, or put `build/*` in a `.gitignore` file.
-
-Before parsing the path part patterns, braced sections are expanded
-into a set. Braced sections start with `{` and end with `}`, with any
-number of comma-delimited sections within. Braced sections may contain
-slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`.
-
-The following characters have special magic meaning when used in a
-path portion:
-
-* `*` Matches 0 or more characters in a single path portion
-* `?` Matches 1 character
-* `[...]` Matches a range of characters, similar to a RegExp range.
- If the first character of the range is `!` or `^` then it matches
- any character not in the range.
-* `!(pattern|pattern|pattern)` Matches anything that does not match
- any of the patterns provided.
-* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the
- patterns provided.
-* `+(pattern|pattern|pattern)` Matches one or more occurrences of the
- patterns provided.
-* `*(a|b|c)` Matches zero or more occurrences of the patterns provided
-* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns
- provided
-* `**` If a "globstar" is alone in a path portion, then it matches
- zero or more directories and subdirectories searching for matches.
- It does not crawl symlinked directories.
-
-### Dots
-
-If a file or directory path portion has a `.` as the first character,
-then it will not match any glob pattern unless that pattern's
-corresponding path part also has a `.` as its first character.
-
-For example, the pattern `a/.*/c` would match the file at `a/.b/c`.
-However the pattern `a/*/c` would not, because `*` does not start with
-a dot character.
-
-You can make glob treat dots as normal characters by setting
-`dot:true` in the options.
-
-### Basename Matching
-
-If you set `matchBase:true` in the options, and the pattern has no
-slashes in it, then it will seek for any file anywhere in the tree
-with a matching basename. For example, `*.js` would match
-`test/simple/basic.js`.
-
-### Negation
-
-The intent for negation would be for a pattern starting with `!` to
-match everything that *doesn't* match the supplied pattern. However,
-the implementation is weird, and for the time being, this should be
-avoided. The behavior is deprecated in version 5, and will be removed
-entirely in version 6.
-
-### Empty Sets
-
-If no matching files are found, then an empty array is returned. This
-differs from the shell, where the pattern itself is returned. For
-example:
-
- $ echo a*s*d*f
- a*s*d*f
-
-To get the bash-style behavior, set the `nonull:true` in the options.
-
-### See Also:
-
-* `man sh`
-* `man bash` (Search for "Pattern Matching")
-* `man 3 fnmatch`
-* `man 5 gitignore`
-* [minimatch documentation](https://github.com/isaacs/minimatch)
-
-## glob.hasMagic(pattern, [options])
-
-Returns `true` if there are any special characters in the pattern, and
-`false` otherwise.
-
-Note that the options affect the results. If `noext:true` is set in
-the options object, then `+(a|b)` will not be considered a magic
-pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}`
-then that is considered magical, unless `nobrace:true` is set in the
-options.
-
-## glob(pattern, [options], cb)
-
-* `pattern` {String} Pattern to be matched
-* `options` {Object}
-* `cb` {Function}
- * `err` {Error | null}
- * `matches` {Array<String>} filenames found matching the pattern
-
-Perform an asynchronous glob search.
-
-## glob.sync(pattern, [options])
-
-* `pattern` {String} Pattern to be matched
-* `options` {Object}
-* return: {Array<String>} filenames found matching the pattern
-
-Perform a synchronous glob search.
-
-## Class: glob.Glob
-
-Create a Glob object by instantiating the `glob.Glob` class.
-
-```javascript
-var Glob = require("glob").Glob
-var mg = new Glob(pattern, options, cb)
-```
-
-It's an EventEmitter, and starts walking the filesystem to find matches
-immediately.
-
-### new glob.Glob(pattern, [options], [cb])
-
-* `pattern` {String} pattern to search for
-* `options` {Object}
-* `cb` {Function} Called when an error occurs, or matches are found
- * `err` {Error | null}
- * `matches` {Array<String>} filenames found matching the pattern
-
-Note that if the `sync` flag is set in the options, then matches will
-be immediately available on the `g.found` member.
-
-### Properties
-
-* `minimatch` The minimatch object that the glob uses.
-* `options` The options object passed in.
-* `aborted` Boolean which is set to true when calling `abort()`. There
- is no way at this time to continue a glob search after aborting, but
- you can re-use the statCache to avoid having to duplicate syscalls.
-* `cache` Convenience object. Each field has the following possible
- values:
- * `false` - Path does not exist
- * `true` - Path exists
- * `'DIR'` - Path exists, and is not a directory
- * `'FILE'` - Path exists, and is a directory
- * `[file, entries, ...]` - Path exists, is a directory, and the
- array value is the results of `fs.readdir`
-* `statCache` Cache of `fs.stat` results, to prevent statting the same
- path multiple times.
-* `symlinks` A record of which paths are symbolic links, which is
- relevant in resolving `**` patterns.
-* `realpathCache` An optional object which is passed to `fs.realpath`
- to minimize unnecessary syscalls. It is stored on the instantiated
- Glob object, and may be re-used.
-
-### Events
-
-* `end` When the matching is finished, this is emitted with all the
- matches found. If the `nonull` option is set, and no match was found,
- then the `matches` list contains the original pattern. The matches
- are sorted, unless the `nosort` flag is set.
-* `match` Every time a match is found, this is emitted with the matched.
-* `error` Emitted when an unexpected error is encountered, or whenever
- any fs error occurs if `options.strict` is set.
-* `abort` When `abort()` is called, this event is raised.
-
-### Methods
-
-* `pause` Temporarily stop the search
-* `resume` Resume the search
-* `abort` Stop the search forever
-
-### Options
-
-All the options that can be passed to Minimatch can also be passed to
-Glob to change pattern matching behavior. Also, some have been added,
-or have glob-specific ramifications.
-
-All options are false by default, unless otherwise noted.
-
-All options are added to the Glob object, as well.
-
-If you are running many `glob` operations, you can pass a Glob object
-as the `options` argument to a subsequent operation to shortcut some
-`stat` and `readdir` calls. At the very least, you may pass in shared
-`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that
-parallel glob operations will be sped up by sharing information about
-the filesystem.
-
-* `cwd` The current working directory in which to search. Defaults
- to `process.cwd()`.
-* `root` The place where patterns starting with `/` will be mounted
- onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix
- systems, and `C:\` or some such on Windows.)
-* `dot` Include `.dot` files in normal matches and `globstar` matches.
- Note that an explicit dot in a portion of the pattern will always
- match dot files.
-* `nomount` By default, a pattern starting with a forward-slash will be
- "mounted" onto the root setting, so that a valid filesystem path is
- returned. Set this flag to disable that behavior.
-* `mark` Add a `/` character to directory matches. Note that this
- requires additional stat calls.
-* `nosort` Don't sort the results.
-* `stat` Set to true to stat *all* results. This reduces performance
- somewhat, and is completely unnecessary, unless `readdir` is presumed
- to be an untrustworthy indicator of file existence.
-* `silent` When an unusual error is encountered when attempting to
- read a directory, a warning will be printed to stderr. Set the
- `silent` option to true to suppress these warnings.
-* `strict` When an unusual error is encountered when attempting to
- read a directory, the process will just continue on in search of
- other matches. Set the `strict` option to raise an error in these
- cases.
-* `cache` See `cache` property above. Pass in a previously generated
- cache object to save some fs calls.
-* `statCache` A cache of results of filesystem information, to prevent
- unnecessary stat calls. While it should not normally be necessary
- to set this, you may pass the statCache from one glob() call to the
- options object of another, if you know that the filesystem will not
- change between calls. (See "Race Conditions" below.)
-* `symlinks` A cache of known symbolic links. You may pass in a
- previously generated `symlinks` object to save `lstat` calls when
- resolving `**` matches.
-* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead.
-* `nounique` In some cases, brace-expanded patterns can result in the
- same file showing up multiple times in the result set. By default,
- this implementation prevents duplicates in the result set. Set this
- flag to disable that behavior.
-* `nonull` Set to never return an empty set, instead returning a set
- containing the pattern itself. This is the default in glob(3).
-* `debug` Set to enable debug logging in minimatch and glob.
-* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets.
-* `noglobstar` Do not match `**` against multiple filenames. (Ie,
- treat it as a normal `*` instead.)
-* `noext` Do not match `+(a|b)` "extglob" patterns.
-* `nocase` Perform a case-insensitive match. Note: on
- case-insensitive filesystems, non-magic patterns will match by
- default, since `stat` and `readdir` will not raise errors.
-* `matchBase` Perform a basename-only match if the pattern does not
- contain any slash characters. That is, `*.js` would be treated as
- equivalent to `**/*.js`, matching all js files in all directories.
-* `nodir` Do not match directories, only files. (Note: to match
- *only* directories, simply put a `/` at the end of the pattern.)
-* `ignore` Add a pattern or an array of patterns to exclude matches.
-* `follow` Follow symlinked directories when expanding `**` patterns.
- Note that this can result in a lot of duplicate references in the
- presence of cyclic links.
-* `realpath` Set to true to call `fs.realpath` on all of the results.
- In the case of a symlink that cannot be resolved, the full absolute
- path to the matched entry is returned (though it will usually be a
- broken symlink)
-* `nonegate` Suppress deprecated `negate` behavior. (See below.)
- Default=true
-* `nocomment` Suppress deprecated `comment` behavior. (See below.)
- Default=true
-
-## Comparisons to other fnmatch/glob implementations
-
-While strict compliance with the existing standards is a worthwhile
-goal, some discrepancies exist between node-glob and other
-implementations, and are intentional.
-
-The double-star character `**` is supported by default, unless the
-`noglobstar` flag is set. This is supported in the manner of bsdglob
-and bash 4.3, where `**` only has special significance if it is the only
-thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
-`a/**b` will not.
-
-Note that symlinked directories are not crawled as part of a `**`,
-though their contents may match against subsequent portions of the
-pattern. This prevents infinite loops and duplicates and the like.
-
-If an escaped pattern has no matches, and the `nonull` flag is set,
-then glob returns the pattern as-provided, rather than
-interpreting the character escapes. For example,
-`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
-`"*a?"`. This is akin to setting the `nullglob` option in bash, except
-that it does not resolve escaped pattern characters.
-
-If brace expansion is not disabled, then it is performed before any
-other interpretation of the glob pattern. Thus, a pattern like
-`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
-**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
-checked for validity. Since those two are valid, matching proceeds.
-
-### Comments and Negation
-
-**Note**: In version 5 of this module, negation and comments are
-**disabled** by default. You can explicitly set `nonegate:false` or
-`nocomment:false` to re-enable them. They are going away entirely in
-version 6.
-
-The intent for negation would be for a pattern starting with `!` to
-match everything that *doesn't* match the supplied pattern. However,
-the implementation is weird. It is better to use the `ignore` option
-to set a pattern or set of patterns to exclude from matches. If you
-want the "everything except *x*" type of behavior, you can use `**` as
-the main pattern, and set an `ignore` for the things to exclude.
-
-The comments feature is added in minimatch, primarily to more easily
-support use cases like ignore files, where a `#` at the start of a
-line makes the pattern "empty". However, in the context of a
-straightforward filesystem globber, "comments" don't make much sense.
-
-## Windows
-
-**Please only use forward-slashes in glob expressions.**
-
-Though windows uses either `/` or `\` as its path separator, only `/`
-characters are used by this glob implementation. You must use
-forward-slashes **only** in glob expressions. Back-slashes will always
-be interpreted as escape characters, not path separators.
-
-Results from absolute patterns such as `/foo/*` are mounted onto the
-root setting using `path.join`. On windows, this will by default result
-in `/foo/*` matching `C:\foo\bar.txt`.
-
-## Race Conditions
-
-Glob searching, by its very nature, is susceptible to race conditions,
-since it relies on directory walking and such.
-
-As a result, it is possible that a file that exists when glob looks for
-it may have been deleted or modified by the time it returns the result.
-
-As part of its internal implementation, this program caches all stat
-and readdir calls that it makes, in order to cut down on system
-overhead. However, this also makes it even more susceptible to races,
-especially if the cache or statCache objects are reused between glob
-calls.
-
-Users are thus advised not to use a glob result as a guarantee of
-filesystem state in the face of rapid changes. For the vast majority
-of operations, this is never a problem.
-
-## Contributing
-
-Any change to behavior (including bugfixes) must come with a test.
-
-Patches that fail tests or reduce performance will be rejected.
-
-```
-# to run tests
-npm test
-
-# to re-generate test fixtures
-npm run test-regen
-
-# to benchmark against bash/zsh
-npm run bench
-
-# to profile javascript
-npm run prof
-```
diff --git a/node_modules/istanbul/node_modules/glob/common.js b/node_modules/istanbul/node_modules/glob/common.js
deleted file mode 100644
index e36a631ca..000000000
--- a/node_modules/istanbul/node_modules/glob/common.js
+++ /dev/null
@@ -1,245 +0,0 @@
-exports.alphasort = alphasort
-exports.alphasorti = alphasorti
-exports.setopts = setopts
-exports.ownProp = ownProp
-exports.makeAbs = makeAbs
-exports.finish = finish
-exports.mark = mark
-exports.isIgnored = isIgnored
-exports.childrenIgnored = childrenIgnored
-
-function ownProp (obj, field) {
- return Object.prototype.hasOwnProperty.call(obj, field)
-}
-
-var path = require("path")
-var minimatch = require("minimatch")
-var isAbsolute = require("path-is-absolute")
-var Minimatch = minimatch.Minimatch
-
-function alphasorti (a, b) {
- return a.toLowerCase().localeCompare(b.toLowerCase())
-}
-
-function alphasort (a, b) {
- return a.localeCompare(b)
-}
-
-function setupIgnores (self, options) {
- self.ignore = options.ignore || []
-
- if (!Array.isArray(self.ignore))
- self.ignore = [self.ignore]
-
- if (self.ignore.length) {
- self.ignore = self.ignore.map(ignoreMap)
- }
-}
-
-function ignoreMap (pattern) {
- var gmatcher = null
- if (pattern.slice(-3) === '/**') {
- var gpattern = pattern.replace(/(\/\*\*)+$/, '')
- gmatcher = new Minimatch(gpattern)
- }
-
- return {
- matcher: new Minimatch(pattern),
- gmatcher: gmatcher
- }
-}
-
-function setopts (self, pattern, options) {
- if (!options)
- options = {}
-
- // base-matching: just use globstar for that.
- if (options.matchBase && -1 === pattern.indexOf("/")) {
- if (options.noglobstar) {
- throw new Error("base matching requires globstar")
- }
- pattern = "**/" + pattern
- }
-
- self.silent = !!options.silent
- self.pattern = pattern
- self.strict = options.strict !== false
- self.realpath = !!options.realpath
- self.realpathCache = options.realpathCache || Object.create(null)
- self.follow = !!options.follow
- self.dot = !!options.dot
- self.mark = !!options.mark
- self.nodir = !!options.nodir
- if (self.nodir)
- self.mark = true
- self.sync = !!options.sync
- self.nounique = !!options.nounique
- self.nonull = !!options.nonull
- self.nosort = !!options.nosort
- self.nocase = !!options.nocase
- self.stat = !!options.stat
- self.noprocess = !!options.noprocess
-
- self.maxLength = options.maxLength || Infinity
- self.cache = options.cache || Object.create(null)
- self.statCache = options.statCache || Object.create(null)
- self.symlinks = options.symlinks || Object.create(null)
-
- setupIgnores(self, options)
-
- self.changedCwd = false
- var cwd = process.cwd()
- if (!ownProp(options, "cwd"))
- self.cwd = cwd
- else {
- self.cwd = options.cwd
- self.changedCwd = path.resolve(options.cwd) !== cwd
- }
-
- self.root = options.root || path.resolve(self.cwd, "/")
- self.root = path.resolve(self.root)
- if (process.platform === "win32")
- self.root = self.root.replace(/\\/g, "/")
-
- self.nomount = !!options.nomount
-
- // disable comments and negation unless the user explicitly
- // passes in false as the option.
- options.nonegate = options.nonegate === false ? false : true
- options.nocomment = options.nocomment === false ? false : true
- deprecationWarning(options)
-
- self.minimatch = new Minimatch(pattern, options)
- self.options = self.minimatch.options
-}
-
-// TODO(isaacs): remove entirely in v6
-// exported to reset in tests
-exports.deprecationWarned
-function deprecationWarning(options) {
- if (!options.nonegate || !options.nocomment) {
- if (process.noDeprecation !== true && !exports.deprecationWarned) {
- var msg = 'glob WARNING: comments and negation will be disabled in v6'
- if (process.throwDeprecation)
- throw new Error(msg)
- else if (process.traceDeprecation)
- console.trace(msg)
- else
- console.error(msg)
-
- exports.deprecationWarned = true
- }
- }
-}
-
-function finish (self) {
- var nou = self.nounique
- var all = nou ? [] : Object.create(null)
-
- for (var i = 0, l = self.matches.length; i < l; i ++) {
- var matches = self.matches[i]
- if (!matches || Object.keys(matches).length === 0) {
- if (self.nonull) {
- // do like the shell, and spit out the literal glob
- var literal = self.minimatch.globSet[i]
- if (nou)
- all.push(literal)
- else
- all[literal] = true
- }
- } else {
- // had matches
- var m = Object.keys(matches)
- if (nou)
- all.push.apply(all, m)
- else
- m.forEach(function (m) {
- all[m] = true
- })
- }
- }
-
- if (!nou)
- all = Object.keys(all)
-
- if (!self.nosort)
- all = all.sort(self.nocase ? alphasorti : alphasort)
-
- // at *some* point we statted all of these
- if (self.mark) {
- for (var i = 0; i < all.length; i++) {
- all[i] = self._mark(all[i])
- }
- if (self.nodir) {
- all = all.filter(function (e) {
- return !(/\/$/.test(e))
- })
- }
- }
-
- if (self.ignore.length)
- all = all.filter(function(m) {
- return !isIgnored(self, m)
- })
-
- self.found = all
-}
-
-function mark (self, p) {
- var abs = makeAbs(self, p)
- var c = self.cache[abs]
- var m = p
- if (c) {
- var isDir = c === 'DIR' || Array.isArray(c)
- var slash = p.slice(-1) === '/'
-
- if (isDir && !slash)
- m += '/'
- else if (!isDir && slash)
- m = m.slice(0, -1)
-
- if (m !== p) {
- var mabs = makeAbs(self, m)
- self.statCache[mabs] = self.statCache[abs]
- self.cache[mabs] = self.cache[abs]
- }
- }
-
- return m
-}
-
-// lotta situps...
-function makeAbs (self, f) {
- var abs = f
- if (f.charAt(0) === '/') {
- abs = path.join(self.root, f)
- } else if (isAbsolute(f) || f === '') {
- abs = f
- } else if (self.changedCwd) {
- abs = path.resolve(self.cwd, f)
- } else {
- abs = path.resolve(f)
- }
- return abs
-}
-
-
-// Return true, if pattern ends with globstar '**', for the accompanying parent directory.
-// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents
-function isIgnored (self, path) {
- if (!self.ignore.length)
- return false
-
- return self.ignore.some(function(item) {
- return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path))
- })
-}
-
-function childrenIgnored (self, path) {
- if (!self.ignore.length)
- return false
-
- return self.ignore.some(function(item) {
- return !!(item.gmatcher && item.gmatcher.match(path))
- })
-}
diff --git a/node_modules/istanbul/node_modules/glob/glob.js b/node_modules/istanbul/node_modules/glob/glob.js
deleted file mode 100644
index 022d2ac8c..000000000
--- a/node_modules/istanbul/node_modules/glob/glob.js
+++ /dev/null
@@ -1,752 +0,0 @@
-// Approach:
-//
-// 1. Get the minimatch set
-// 2. For each pattern in the set, PROCESS(pattern, false)
-// 3. Store matches per-set, then uniq them
-//
-// PROCESS(pattern, inGlobStar)
-// Get the first [n] items from pattern that are all strings
-// Join these together. This is PREFIX.
-// If there is no more remaining, then stat(PREFIX) and
-// add to matches if it succeeds. END.
-//
-// If inGlobStar and PREFIX is symlink and points to dir
-// set ENTRIES = []
-// else readdir(PREFIX) as ENTRIES
-// If fail, END
-//
-// with ENTRIES
-// If pattern[n] is GLOBSTAR
-// // handle the case where the globstar match is empty
-// // by pruning it out, and testing the resulting pattern
-// PROCESS(pattern[0..n] + pattern[n+1 .. $], false)
-// // handle other cases.
-// for ENTRY in ENTRIES (not dotfiles)
-// // attach globstar + tail onto the entry
-// // Mark that this entry is a globstar match
-// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)
-//
-// else // not globstar
-// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)
-// Test ENTRY against pattern[n]
-// If fails, continue
-// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])
-//
-// Caveat:
-// Cache all stats and readdirs results to minimize syscall. Since all
-// we ever care about is existence and directory-ness, we can just keep
-// `true` for files, and [children,...] for directories, or `false` for
-// things that don't exist.
-
-module.exports = glob
-
-var fs = require('fs')
-var minimatch = require('minimatch')
-var Minimatch = minimatch.Minimatch
-var inherits = require('inherits')
-var EE = require('events').EventEmitter
-var path = require('path')
-var assert = require('assert')
-var isAbsolute = require('path-is-absolute')
-var globSync = require('./sync.js')
-var common = require('./common.js')
-var alphasort = common.alphasort
-var alphasorti = common.alphasorti
-var setopts = common.setopts
-var ownProp = common.ownProp
-var inflight = require('inflight')
-var util = require('util')
-var childrenIgnored = common.childrenIgnored
-var isIgnored = common.isIgnored
-
-var once = require('once')
-
-function glob (pattern, options, cb) {
- if (typeof options === 'function') cb = options, options = {}
- if (!options) options = {}
-
- if (options.sync) {
- if (cb)
- throw new TypeError('callback provided to sync glob')
- return globSync(pattern, options)
- }
-
- return new Glob(pattern, options, cb)
-}
-
-glob.sync = globSync
-var GlobSync = glob.GlobSync = globSync.GlobSync
-
-// old api surface
-glob.glob = glob
-
-glob.hasMagic = function (pattern, options_) {
- var options = util._extend({}, options_)
- options.noprocess = true
-
- var g = new Glob(pattern, options)
- var set = g.minimatch.set
- if (set.length > 1)
- return true
-
- for (var j = 0; j < set[0].length; j++) {
- if (typeof set[0][j] !== 'string')
- return true
- }
-
- return false
-}
-
-glob.Glob = Glob
-inherits(Glob, EE)
-function Glob (pattern, options, cb) {
- if (typeof options === 'function') {
- cb = options
- options = null
- }
-
- if (options && options.sync) {
- if (cb)
- throw new TypeError('callback provided to sync glob')
- return new GlobSync(pattern, options)
- }
-
- if (!(this instanceof Glob))
- return new Glob(pattern, options, cb)
-
- setopts(this, pattern, options)
- this._didRealPath = false
-
- // process each pattern in the minimatch set
- var n = this.minimatch.set.length
-
- // The matches are stored as {<filename>: true,...} so that
- // duplicates are automagically pruned.
- // Later, we do an Object.keys() on these.
- // Keep them as a list so we can fill in when nonull is set.
- this.matches = new Array(n)
-
- if (typeof cb === 'function') {
- cb = once(cb)
- this.on('error', cb)
- this.on('end', function (matches) {
- cb(null, matches)
- })
- }
-
- var self = this
- var n = this.minimatch.set.length
- this._processing = 0
- this.matches = new Array(n)
-
- this._emitQueue = []
- this._processQueue = []
- this.paused = false
-
- if (this.noprocess)
- return this
-
- if (n === 0)
- return done()
-
- for (var i = 0; i < n; i ++) {
- this._process(this.minimatch.set[i], i, false, done)
- }
-
- function done () {
- --self._processing
- if (self._processing <= 0)
- self._finish()
- }
-}
-
-Glob.prototype._finish = function () {
- assert(this instanceof Glob)
- if (this.aborted)
- return
-
- if (this.realpath && !this._didRealpath)
- return this._realpath()
-
- common.finish(this)
- this.emit('end', this.found)
-}
-
-Glob.prototype._realpath = function () {
- if (this._didRealpath)
- return
-
- this._didRealpath = true
-
- var n = this.matches.length
- if (n === 0)
- return this._finish()
-
- var self = this
- for (var i = 0; i < this.matches.length; i++)
- this._realpathSet(i, next)
-
- function next () {
- if (--n === 0)
- self._finish()
- }
-}
-
-Glob.prototype._realpathSet = function (index, cb) {
- var matchset = this.matches[index]
- if (!matchset)
- return cb()
-
- var found = Object.keys(matchset)
- var self = this
- var n = found.length
-
- if (n === 0)
- return cb()
-
- var set = this.matches[index] = Object.create(null)
- found.forEach(function (p, i) {
- // If there's a problem with the stat, then it means that
- // one or more of the links in the realpath couldn't be
- // resolved. just return the abs value in that case.
- p = self._makeAbs(p)
- fs.realpath(p, self.realpathCache, function (er, real) {
- if (!er)
- set[real] = true
- else if (er.syscall === 'stat')
- set[p] = true
- else
- self.emit('error', er) // srsly wtf right here
-
- if (--n === 0) {
- self.matches[index] = set
- cb()
- }
- })
- })
-}
-
-Glob.prototype._mark = function (p) {
- return common.mark(this, p)
-}
-
-Glob.prototype._makeAbs = function (f) {
- return common.makeAbs(this, f)
-}
-
-Glob.prototype.abort = function () {
- this.aborted = true
- this.emit('abort')
-}
-
-Glob.prototype.pause = function () {
- if (!this.paused) {
- this.paused = true
- this.emit('pause')
- }
-}
-
-Glob.prototype.resume = function () {
- if (this.paused) {
- this.emit('resume')
- this.paused = false
- if (this._emitQueue.length) {
- var eq = this._emitQueue.slice(0)
- this._emitQueue.length = 0
- for (var i = 0; i < eq.length; i ++) {
- var e = eq[i]
- this._emitMatch(e[0], e[1])
- }
- }
- if (this._processQueue.length) {
- var pq = this._processQueue.slice(0)
- this._processQueue.length = 0
- for (var i = 0; i < pq.length; i ++) {
- var p = pq[i]
- this._processing--
- this._process(p[0], p[1], p[2], p[3])
- }
- }
- }
-}
-
-Glob.prototype._process = function (pattern, index, inGlobStar, cb) {
- assert(this instanceof Glob)
- assert(typeof cb === 'function')
-
- if (this.aborted)
- return
-
- this._processing++
- if (this.paused) {
- this._processQueue.push([pattern, index, inGlobStar, cb])
- return
- }
-
- //console.error('PROCESS %d', this._processing, pattern)
-
- // Get the first [n] parts of pattern that are all strings.
- var n = 0
- while (typeof pattern[n] === 'string') {
- n ++
- }
- // now n is the index of the first one that is *not* a string.
-
- // see if there's anything else
- var prefix
- switch (n) {
- // if not, then this is rather simple
- case pattern.length:
- this._processSimple(pattern.join('/'), index, cb)
- return
-
- case 0:
- // pattern *starts* with some non-trivial item.
- // going to readdir(cwd), but not include the prefix in matches.
- prefix = null
- break
-
- default:
- // pattern has some string bits in the front.
- // whatever it starts with, whether that's 'absolute' like /foo/bar,
- // or 'relative' like '../baz'
- prefix = pattern.slice(0, n).join('/')
- break
- }
-
- var remain = pattern.slice(n)
-
- // get the list of entries.
- var read
- if (prefix === null)
- read = '.'
- else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
- if (!prefix || !isAbsolute(prefix))
- prefix = '/' + prefix
- read = prefix
- } else
- read = prefix
-
- var abs = this._makeAbs(read)
-
- //if ignored, skip _processing
- if (childrenIgnored(this, read))
- return cb()
-
- var isGlobStar = remain[0] === minimatch.GLOBSTAR
- if (isGlobStar)
- this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb)
- else
- this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb)
-}
-
-Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {
- var self = this
- this._readdir(abs, inGlobStar, function (er, entries) {
- return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
- })
-}
-
-Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
-
- // if the abs isn't a dir, then nothing can match!
- if (!entries)
- return cb()
-
- // It will only match dot entries if it starts with a dot, or if
- // dot is set. Stuff like @(.foo|.bar) isn't allowed.
- var pn = remain[0]
- var negate = !!this.minimatch.negate
- var rawGlob = pn._glob
- var dotOk = this.dot || rawGlob.charAt(0) === '.'
-
- var matchedEntries = []
- for (var i = 0; i < entries.length; i++) {
- var e = entries[i]
- if (e.charAt(0) !== '.' || dotOk) {
- var m
- if (negate && !prefix) {
- m = !e.match(pn)
- } else {
- m = e.match(pn)
- }
- if (m)
- matchedEntries.push(e)
- }
- }
-
- //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)
-
- var len = matchedEntries.length
- // If there are no matched entries, then nothing matches.
- if (len === 0)
- return cb()
-
- // if this is the last remaining pattern bit, then no need for
- // an additional stat *unless* the user has specified mark or
- // stat explicitly. We know they exist, since readdir returned
- // them.
-
- if (remain.length === 1 && !this.mark && !this.stat) {
- if (!this.matches[index])
- this.matches[index] = Object.create(null)
-
- for (var i = 0; i < len; i ++) {
- var e = matchedEntries[i]
- if (prefix) {
- if (prefix !== '/')
- e = prefix + '/' + e
- else
- e = prefix + e
- }
-
- if (e.charAt(0) === '/' && !this.nomount) {
- e = path.join(this.root, e)
- }
- this._emitMatch(index, e)
- }
- // This was the last one, and no stats were needed
- return cb()
- }
-
- // now test all matched entries as stand-ins for that part
- // of the pattern.
- remain.shift()
- for (var i = 0; i < len; i ++) {
- var e = matchedEntries[i]
- var newPattern
- if (prefix) {
- if (prefix !== '/')
- e = prefix + '/' + e
- else
- e = prefix + e
- }
- this._process([e].concat(remain), index, inGlobStar, cb)
- }
- cb()
-}
-
-Glob.prototype._emitMatch = function (index, e) {
- if (this.aborted)
- return
-
- if (this.matches[index][e])
- return
-
- if (isIgnored(this, e))
- return
-
- if (this.paused) {
- this._emitQueue.push([index, e])
- return
- }
-
- var abs = this._makeAbs(e)
-
- if (this.nodir) {
- var c = this.cache[abs]
- if (c === 'DIR' || Array.isArray(c))
- return
- }
-
- if (this.mark)
- e = this._mark(e)
-
- this.matches[index][e] = true
-
- var st = this.statCache[abs]
- if (st)
- this.emit('stat', e, st)
-
- this.emit('match', e)
-}
-
-Glob.prototype._readdirInGlobStar = function (abs, cb) {
- if (this.aborted)
- return
-
- // follow all symlinked directories forever
- // just proceed as if this is a non-globstar situation
- if (this.follow)
- return this._readdir(abs, false, cb)
-
- var lstatkey = 'lstat\0' + abs
- var self = this
- var lstatcb = inflight(lstatkey, lstatcb_)
-
- if (lstatcb)
- fs.lstat(abs, lstatcb)
-
- function lstatcb_ (er, lstat) {
- if (er)
- return cb()
-
- var isSym = lstat.isSymbolicLink()
- self.symlinks[abs] = isSym
-
- // If it's not a symlink or a dir, then it's definitely a regular file.
- // don't bother doing a readdir in that case.
- if (!isSym && !lstat.isDirectory()) {
- self.cache[abs] = 'FILE'
- cb()
- } else
- self._readdir(abs, false, cb)
- }
-}
-
-Glob.prototype._readdir = function (abs, inGlobStar, cb) {
- if (this.aborted)
- return
-
- cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb)
- if (!cb)
- return
-
- //console.error('RD %j %j', +inGlobStar, abs)
- if (inGlobStar && !ownProp(this.symlinks, abs))
- return this._readdirInGlobStar(abs, cb)
-
- if (ownProp(this.cache, abs)) {
- var c = this.cache[abs]
- if (!c || c === 'FILE')
- return cb()
-
- if (Array.isArray(c))
- return cb(null, c)
- }
-
- var self = this
- fs.readdir(abs, readdirCb(this, abs, cb))
-}
-
-function readdirCb (self, abs, cb) {
- return function (er, entries) {
- if (er)
- self._readdirError(abs, er, cb)
- else
- self._readdirEntries(abs, entries, cb)
- }
-}
-
-Glob.prototype._readdirEntries = function (abs, entries, cb) {
- if (this.aborted)
- return
-
- // if we haven't asked to stat everything, then just
- // assume that everything in there exists, so we can avoid
- // having to stat it a second time.
- if (!this.mark && !this.stat) {
- for (var i = 0; i < entries.length; i ++) {
- var e = entries[i]
- if (abs === '/')
- e = abs + e
- else
- e = abs + '/' + e
- this.cache[e] = true
- }
- }
-
- this.cache[abs] = entries
- return cb(null, entries)
-}
-
-Glob.prototype._readdirError = function (f, er, cb) {
- if (this.aborted)
- return
-
- // handle errors, and cache the information
- switch (er.code) {
- case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
- case 'ENOTDIR': // totally normal. means it *does* exist.
- this.cache[this._makeAbs(f)] = 'FILE'
- break
-
- case 'ENOENT': // not terribly unusual
- case 'ELOOP':
- case 'ENAMETOOLONG':
- case 'UNKNOWN':
- this.cache[this._makeAbs(f)] = false
- break
-
- default: // some unusual error. Treat as failure.
- this.cache[this._makeAbs(f)] = false
- if (this.strict) {
- this.emit('error', er)
- // If the error is handled, then we abort
- // if not, we threw out of here
- this.abort()
- }
- if (!this.silent)
- console.error('glob error', er)
- break
- }
-
- return cb()
-}
-
-Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {
- var self = this
- this._readdir(abs, inGlobStar, function (er, entries) {
- self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
- })
-}
-
-
-Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
- //console.error('pgs2', prefix, remain[0], entries)
-
- // no entries means not a dir, so it can never have matches
- // foo.txt/** doesn't match foo.txt
- if (!entries)
- return cb()
-
- // test without the globstar, and with every child both below
- // and replacing the globstar.
- var remainWithoutGlobStar = remain.slice(1)
- var gspref = prefix ? [ prefix ] : []
- var noGlobStar = gspref.concat(remainWithoutGlobStar)
-
- // the noGlobStar pattern exits the inGlobStar state
- this._process(noGlobStar, index, false, cb)
-
- var isSym = this.symlinks[abs]
- var len = entries.length
-
- // If it's a symlink, and we're in a globstar, then stop
- if (isSym && inGlobStar)
- return cb()
-
- for (var i = 0; i < len; i++) {
- var e = entries[i]
- if (e.charAt(0) === '.' && !this.dot)
- continue
-
- // these two cases enter the inGlobStar state
- var instead = gspref.concat(entries[i], remainWithoutGlobStar)
- this._process(instead, index, true, cb)
-
- var below = gspref.concat(entries[i], remain)
- this._process(below, index, true, cb)
- }
-
- cb()
-}
-
-Glob.prototype._processSimple = function (prefix, index, cb) {
- // XXX review this. Shouldn't it be doing the mounting etc
- // before doing stat? kinda weird?
- var self = this
- this._stat(prefix, function (er, exists) {
- self._processSimple2(prefix, index, er, exists, cb)
- })
-}
-Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {
-
- //console.error('ps2', prefix, exists)
-
- if (!this.matches[index])
- this.matches[index] = Object.create(null)
-
- // If it doesn't exist, then just mark the lack of results
- if (!exists)
- return cb()
-
- if (prefix && isAbsolute(prefix) && !this.nomount) {
- var trail = /[\/\\]$/.test(prefix)
- if (prefix.charAt(0) === '/') {
- prefix = path.join(this.root, prefix)
- } else {
- prefix = path.resolve(this.root, prefix)
- if (trail)
- prefix += '/'
- }
- }
-
- if (process.platform === 'win32')
- prefix = prefix.replace(/\\/g, '/')
-
- // Mark this as a match
- this._emitMatch(index, prefix)
- cb()
-}
-
-// Returns either 'DIR', 'FILE', or false
-Glob.prototype._stat = function (f, cb) {
- var abs = this._makeAbs(f)
- var needDir = f.slice(-1) === '/'
-
- if (f.length > this.maxLength)
- return cb()
-
- if (!this.stat && ownProp(this.cache, abs)) {
- var c = this.cache[abs]
-
- if (Array.isArray(c))
- c = 'DIR'
-
- // It exists, but maybe not how we need it
- if (!needDir || c === 'DIR')
- return cb(null, c)
-
- if (needDir && c === 'FILE')
- return cb()
-
- // otherwise we have to stat, because maybe c=true
- // if we know it exists, but not what it is.
- }
-
- var exists
- var stat = this.statCache[abs]
- if (stat !== undefined) {
- if (stat === false)
- return cb(null, stat)
- else {
- var type = stat.isDirectory() ? 'DIR' : 'FILE'
- if (needDir && type === 'FILE')
- return cb()
- else
- return cb(null, type, stat)
- }
- }
-
- var self = this
- var statcb = inflight('stat\0' + abs, lstatcb_)
- if (statcb)
- fs.lstat(abs, statcb)
-
- function lstatcb_ (er, lstat) {
- if (lstat && lstat.isSymbolicLink()) {
- // If it's a symlink, then treat it as the target, unless
- // the target does not exist, then treat it as a file.
- return fs.stat(abs, function (er, stat) {
- if (er)
- self._stat2(f, abs, null, lstat, cb)
- else
- self._stat2(f, abs, er, stat, cb)
- })
- } else {
- self._stat2(f, abs, er, lstat, cb)
- }
- }
-}
-
-Glob.prototype._stat2 = function (f, abs, er, stat, cb) {
- if (er) {
- this.statCache[abs] = false
- return cb()
- }
-
- var needDir = f.slice(-1) === '/'
- this.statCache[abs] = stat
-
- if (abs.slice(-1) === '/' && !stat.isDirectory())
- return cb(null, false, stat)
-
- var c = stat.isDirectory() ? 'DIR' : 'FILE'
- this.cache[abs] = this.cache[abs] || c
-
- if (needDir && c !== 'DIR')
- return cb()
-
- return cb(null, c, stat)
-}
diff --git a/node_modules/istanbul/node_modules/glob/package.json b/node_modules/istanbul/node_modules/glob/package.json
deleted file mode 100644
index 9e98d23eb..000000000
--- a/node_modules/istanbul/node_modules/glob/package.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
- "name": "glob",
- "description": "a little globber",
- "version": "5.0.15",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/node-glob.git"
- },
- "main": "glob.js",
- "files": [
- "glob.js",
- "sync.js",
- "common.js"
- ],
- "engines": {
- "node": "*"
- },
- "dependencies": {
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "2 || 3",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "devDependencies": {
- "mkdirp": "0",
- "rimraf": "^2.2.8",
- "tap": "^1.1.4",
- "tick": "0.0.6"
- },
- "scripts": {
- "prepublish": "npm run benchclean",
- "profclean": "rm -f v8.log profile.txt",
- "test": "tap test/*.js --cov",
- "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js",
- "bench": "bash benchmark.sh",
- "prof": "bash prof.sh && cat profile.txt",
- "benchclean": "node benchclean.js"
- },
- "license": "ISC"
-}
diff --git a/node_modules/istanbul/node_modules/glob/sync.js b/node_modules/istanbul/node_modules/glob/sync.js
deleted file mode 100644
index 09883d2ce..000000000
--- a/node_modules/istanbul/node_modules/glob/sync.js
+++ /dev/null
@@ -1,460 +0,0 @@
-module.exports = globSync
-globSync.GlobSync = GlobSync
-
-var fs = require('fs')
-var minimatch = require('minimatch')
-var Minimatch = minimatch.Minimatch
-var Glob = require('./glob.js').Glob
-var util = require('util')
-var path = require('path')
-var assert = require('assert')
-var isAbsolute = require('path-is-absolute')
-var common = require('./common.js')
-var alphasort = common.alphasort
-var alphasorti = common.alphasorti
-var setopts = common.setopts
-var ownProp = common.ownProp
-var childrenIgnored = common.childrenIgnored
-
-function globSync (pattern, options) {
- if (typeof options === 'function' || arguments.length === 3)
- throw new TypeError('callback provided to sync glob\n'+
- 'See: https://github.com/isaacs/node-glob/issues/167')
-
- return new GlobSync(pattern, options).found
-}
-
-function GlobSync (pattern, options) {
- if (!pattern)
- throw new Error('must provide pattern')
-
- if (typeof options === 'function' || arguments.length === 3)
- throw new TypeError('callback provided to sync glob\n'+
- 'See: https://github.com/isaacs/node-glob/issues/167')
-
- if (!(this instanceof GlobSync))
- return new GlobSync(pattern, options)
-
- setopts(this, pattern, options)
-
- if (this.noprocess)
- return this
-
- var n = this.minimatch.set.length
- this.matches = new Array(n)
- for (var i = 0; i < n; i ++) {
- this._process(this.minimatch.set[i], i, false)
- }
- this._finish()
-}
-
-GlobSync.prototype._finish = function () {
- assert(this instanceof GlobSync)
- if (this.realpath) {
- var self = this
- this.matches.forEach(function (matchset, index) {
- var set = self.matches[index] = Object.create(null)
- for (var p in matchset) {
- try {
- p = self._makeAbs(p)
- var real = fs.realpathSync(p, self.realpathCache)
- set[real] = true
- } catch (er) {
- if (er.syscall === 'stat')
- set[self._makeAbs(p)] = true
- else
- throw er
- }
- }
- })
- }
- common.finish(this)
-}
-
-
-GlobSync.prototype._process = function (pattern, index, inGlobStar) {
- assert(this instanceof GlobSync)
-
- // Get the first [n] parts of pattern that are all strings.
- var n = 0
- while (typeof pattern[n] === 'string') {
- n ++
- }
- // now n is the index of the first one that is *not* a string.
-
- // See if there's anything else
- var prefix
- switch (n) {
- // if not, then this is rather simple
- case pattern.length:
- this._processSimple(pattern.join('/'), index)
- return
-
- case 0:
- // pattern *starts* with some non-trivial item.
- // going to readdir(cwd), but not include the prefix in matches.
- prefix = null
- break
-
- default:
- // pattern has some string bits in the front.
- // whatever it starts with, whether that's 'absolute' like /foo/bar,
- // or 'relative' like '../baz'
- prefix = pattern.slice(0, n).join('/')
- break
- }
-
- var remain = pattern.slice(n)
-
- // get the list of entries.
- var read
- if (prefix === null)
- read = '.'
- else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
- if (!prefix || !isAbsolute(prefix))
- prefix = '/' + prefix
- read = prefix
- } else
- read = prefix
-
- var abs = this._makeAbs(read)
-
- //if ignored, skip processing
- if (childrenIgnored(this, read))
- return
-
- var isGlobStar = remain[0] === minimatch.GLOBSTAR
- if (isGlobStar)
- this._processGlobStar(prefix, read, abs, remain, index, inGlobStar)
- else
- this._processReaddir(prefix, read, abs, remain, index, inGlobStar)
-}
-
-
-GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {
- var entries = this._readdir(abs, inGlobStar)
-
- // if the abs isn't a dir, then nothing can match!
- if (!entries)
- return
-
- // It will only match dot entries if it starts with a dot, or if
- // dot is set. Stuff like @(.foo|.bar) isn't allowed.
- var pn = remain[0]
- var negate = !!this.minimatch.negate
- var rawGlob = pn._glob
- var dotOk = this.dot || rawGlob.charAt(0) === '.'
-
- var matchedEntries = []
- for (var i = 0; i < entries.length; i++) {
- var e = entries[i]
- if (e.charAt(0) !== '.' || dotOk) {
- var m
- if (negate && !prefix) {
- m = !e.match(pn)
- } else {
- m = e.match(pn)
- }
- if (m)
- matchedEntries.push(e)
- }
- }
-
- var len = matchedEntries.length
- // If there are no matched entries, then nothing matches.
- if (len === 0)
- return
-
- // if this is the last remaining pattern bit, then no need for
- // an additional stat *unless* the user has specified mark or
- // stat explicitly. We know they exist, since readdir returned
- // them.
-
- if (remain.length === 1 && !this.mark && !this.stat) {
- if (!this.matches[index])
- this.matches[index] = Object.create(null)
-
- for (var i = 0; i < len; i ++) {
- var e = matchedEntries[i]
- if (prefix) {
- if (prefix.slice(-1) !== '/')
- e = prefix + '/' + e
- else
- e = prefix + e
- }
-
- if (e.charAt(0) === '/' && !this.nomount) {
- e = path.join(this.root, e)
- }
- this.matches[index][e] = true
- }
- // This was the last one, and no stats were needed
- return
- }
-
- // now test all matched entries as stand-ins for that part
- // of the pattern.
- remain.shift()
- for (var i = 0; i < len; i ++) {
- var e = matchedEntries[i]
- var newPattern
- if (prefix)
- newPattern = [prefix, e]
- else
- newPattern = [e]
- this._process(newPattern.concat(remain), index, inGlobStar)
- }
-}
-
-
-GlobSync.prototype._emitMatch = function (index, e) {
- var abs = this._makeAbs(e)
- if (this.mark)
- e = this._mark(e)
-
- if (this.matches[index][e])
- return
-
- if (this.nodir) {
- var c = this.cache[this._makeAbs(e)]
- if (c === 'DIR' || Array.isArray(c))
- return
- }
-
- this.matches[index][e] = true
- if (this.stat)
- this._stat(e)
-}
-
-
-GlobSync.prototype._readdirInGlobStar = function (abs) {
- // follow all symlinked directories forever
- // just proceed as if this is a non-globstar situation
- if (this.follow)
- return this._readdir(abs, false)
-
- var entries
- var lstat
- var stat
- try {
- lstat = fs.lstatSync(abs)
- } catch (er) {
- // lstat failed, doesn't exist
- return null
- }
-
- var isSym = lstat.isSymbolicLink()
- this.symlinks[abs] = isSym
-
- // If it's not a symlink or a dir, then it's definitely a regular file.
- // don't bother doing a readdir in that case.
- if (!isSym && !lstat.isDirectory())
- this.cache[abs] = 'FILE'
- else
- entries = this._readdir(abs, false)
-
- return entries
-}
-
-GlobSync.prototype._readdir = function (abs, inGlobStar) {
- var entries
-
- if (inGlobStar && !ownProp(this.symlinks, abs))
- return this._readdirInGlobStar(abs)
-
- if (ownProp(this.cache, abs)) {
- var c = this.cache[abs]
- if (!c || c === 'FILE')
- return null
-
- if (Array.isArray(c))
- return c
- }
-
- try {
- return this._readdirEntries(abs, fs.readdirSync(abs))
- } catch (er) {
- this._readdirError(abs, er)
- return null
- }
-}
-
-GlobSync.prototype._readdirEntries = function (abs, entries) {
- // if we haven't asked to stat everything, then just
- // assume that everything in there exists, so we can avoid
- // having to stat it a second time.
- if (!this.mark && !this.stat) {
- for (var i = 0; i < entries.length; i ++) {
- var e = entries[i]
- if (abs === '/')
- e = abs + e
- else
- e = abs + '/' + e
- this.cache[e] = true
- }
- }
-
- this.cache[abs] = entries
-
- // mark and cache dir-ness
- return entries
-}
-
-GlobSync.prototype._readdirError = function (f, er) {
- // handle errors, and cache the information
- switch (er.code) {
- case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
- case 'ENOTDIR': // totally normal. means it *does* exist.
- this.cache[this._makeAbs(f)] = 'FILE'
- break
-
- case 'ENOENT': // not terribly unusual
- case 'ELOOP':
- case 'ENAMETOOLONG':
- case 'UNKNOWN':
- this.cache[this._makeAbs(f)] = false
- break
-
- default: // some unusual error. Treat as failure.
- this.cache[this._makeAbs(f)] = false
- if (this.strict)
- throw er
- if (!this.silent)
- console.error('glob error', er)
- break
- }
-}
-
-GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {
-
- var entries = this._readdir(abs, inGlobStar)
-
- // no entries means not a dir, so it can never have matches
- // foo.txt/** doesn't match foo.txt
- if (!entries)
- return
-
- // test without the globstar, and with every child both below
- // and replacing the globstar.
- var remainWithoutGlobStar = remain.slice(1)
- var gspref = prefix ? [ prefix ] : []
- var noGlobStar = gspref.concat(remainWithoutGlobStar)
-
- // the noGlobStar pattern exits the inGlobStar state
- this._process(noGlobStar, index, false)
-
- var len = entries.length
- var isSym = this.symlinks[abs]
-
- // If it's a symlink, and we're in a globstar, then stop
- if (isSym && inGlobStar)
- return
-
- for (var i = 0; i < len; i++) {
- var e = entries[i]
- if (e.charAt(0) === '.' && !this.dot)
- continue
-
- // these two cases enter the inGlobStar state
- var instead = gspref.concat(entries[i], remainWithoutGlobStar)
- this._process(instead, index, true)
-
- var below = gspref.concat(entries[i], remain)
- this._process(below, index, true)
- }
-}
-
-GlobSync.prototype._processSimple = function (prefix, index) {
- // XXX review this. Shouldn't it be doing the mounting etc
- // before doing stat? kinda weird?
- var exists = this._stat(prefix)
-
- if (!this.matches[index])
- this.matches[index] = Object.create(null)
-
- // If it doesn't exist, then just mark the lack of results
- if (!exists)
- return
-
- if (prefix && isAbsolute(prefix) && !this.nomount) {
- var trail = /[\/\\]$/.test(prefix)
- if (prefix.charAt(0) === '/') {
- prefix = path.join(this.root, prefix)
- } else {
- prefix = path.resolve(this.root, prefix)
- if (trail)
- prefix += '/'
- }
- }
-
- if (process.platform === 'win32')
- prefix = prefix.replace(/\\/g, '/')
-
- // Mark this as a match
- this.matches[index][prefix] = true
-}
-
-// Returns either 'DIR', 'FILE', or false
-GlobSync.prototype._stat = function (f) {
- var abs = this._makeAbs(f)
- var needDir = f.slice(-1) === '/'
-
- if (f.length > this.maxLength)
- return false
-
- if (!this.stat && ownProp(this.cache, abs)) {
- var c = this.cache[abs]
-
- if (Array.isArray(c))
- c = 'DIR'
-
- // It exists, but maybe not how we need it
- if (!needDir || c === 'DIR')
- return c
-
- if (needDir && c === 'FILE')
- return false
-
- // otherwise we have to stat, because maybe c=true
- // if we know it exists, but not what it is.
- }
-
- var exists
- var stat = this.statCache[abs]
- if (!stat) {
- var lstat
- try {
- lstat = fs.lstatSync(abs)
- } catch (er) {
- return false
- }
-
- if (lstat.isSymbolicLink()) {
- try {
- stat = fs.statSync(abs)
- } catch (er) {
- stat = lstat
- }
- } else {
- stat = lstat
- }
- }
-
- this.statCache[abs] = stat
-
- var c = stat.isDirectory() ? 'DIR' : 'FILE'
- this.cache[abs] = this.cache[abs] || c
-
- if (needDir && c !== 'DIR')
- return false
-
- return c
-}
-
-GlobSync.prototype._mark = function (p) {
- return common.mark(this, p)
-}
-
-GlobSync.prototype._makeAbs = function (f) {
- return common.makeAbs(this, f)
-}
diff --git a/node_modules/istanbul/package.json b/node_modules/istanbul/package.json
deleted file mode 100644
index eeb01a72f..000000000
--- a/node_modules/istanbul/package.json
+++ /dev/null
@@ -1,133 +0,0 @@
-{
- "name": "istanbul",
- "version": "0.4.5",
- "description": "Yet another JS code coverage tool that computes statement, line, function and branch coverage with module loader hooks to transparently add coverage when running tests. Supports all JS coverage use cases including unit tests, server side functional tests and browser tests. Built for scale",
- "keywords": [
- "coverage",
- "code coverage",
- "JS code coverage",
- "JS coverage"
- ],
- "author": "Krishnan Anantheswaran <kananthmail-github@yahoo.com>",
- "license": "BSD-3-Clause",
- "contributors": [
- "Reid Burke <me@reidburke.com>",
- "Martin Cooper <mfncooper@gmail.com>",
- "Dav Glass <davglass@gmail.com>",
- "nowamasa <nowamasa@gmail.com>",
- "Miller Medeiros @millermedeiros <contact@millermedeiros.com>",
- "Daniel Perez Alvarez @unindented <unindented@gmail.com>",
- "Mathias Bynens @mathiasbynens <mathias@qiwi.be>",
- "Nathan Brown @nbrownus <nate@betable.com>",
- "Brian Ng @existentialism <bng412@gmail.com>",
- "John Morrison @jrgm",
- "Tomaz Muraus @kami <tomaz+github@tomaz.me>",
- "Joe @jhansche <jhansche@meetme.com>",
- "Vojta Jina @vojtajina <vojta.jina@gmail.com>",
- "Dmitry Shirokov @runk <deadrunk@gmail.com>",
- "Chris Gladd @chrisgladd",
- "Sergey Belov <peimei@ya.ru>",
- "porneL @pornel <pornel@pornel.net>",
- "@asifrc",
- "Gergely Nemeth @gergelyke",
- "@bixdeng",
- "@mpderbec",
- "@jxiaodev",
- "Arpad Borsos @Swatinem <arpad.borsos@googlemail.com>",
- "Ariya Hidayat @ariya",
- "@markyen",
- "Sam Saccone @samccone <sam@samx.it>",
- "Jason Cheatham @jason0x43",
- "@smikes",
- "Yasyf Mohamedali @yasyf <yasyfm@gmail.com>",
- "Fabio Crisci @piuccio <piuccio@gmail.com>",
- "Ryan Roemer @ryan-roemer <ryan@loose-bits.com>",
- "Douglas Christopher Wilson @dougwilson",
- "Gustav Nikolaj @gustavnikolaj <gustavnikolaj@gmail.com>",
- "Denis Sokolov @denis-sokolov <denis@sokolov.cc>",
- "Yann Mainier @ymainier",
- "Yiyu He @dead-horse <heyiyu.deadhorse@gmail.com>",
- "Andrew Kelley @andrewrk <superjoe30@gmail.com>",
- "Will LaBranche @wlabranche <will@labranche.io>",
- "Mathieu Naouache @math-nao <math.nao@outlook.com>",
- "Ron Korving @ronkorving",
- "Rob McGuire-Dale @robatron <rob.mcguiredale@gmail.com>",
- "Justin Johnson @booleangate",
- "Juan Gabriel Jiménez @juangabreil <juangabreil@gmail.com>",
- "Daniel Sabelnikov @dragn <dsabelnikov@gmail.com>",
- "Tony Lukasavage @tonylukasavage <anthony.lukasavage@gmail.com>",
- "Simon Ramsay @nexus-uw",
- "Dominykas Blyžė @dominykas",
- "Seth Pollack @sethpollack",
- "Benjamin E. Coe @bcoe <ben@npmjs.com>",
- "Yuren Ju <yurenju@gmail.com>",
- "Aleksey Verkholantsev <alex-vee@yandex-team.ru>",
- "Ed S <ejsanders@gmail.com>",
- "Mordy Tikotzky <mordytk@gmail.com>",
- "Haoliang Gao @popomore <sakura9515@gmail.com>",
- "Roderick Hsiao @roderickhsiao",
- "Nikita Gusakov @nkt",
- "Alex Dunphy @alexdunphy <alexanderdunphy@gmail.com>",
- "Artemy Tregubenko @arty-name <me@arty.name>",
- "Arye Lukashevski @aryelu",
- "@sterlinghw",
- "Gord Tanner <gord@bithound.io>",
- "Tom MacWright @tmcw <tom@macwright.org>",
- "Kitson Kelly @kitsonk",
- "@asa-git",
- "@RoCat",
- "Ian Page Hands @iphands <iphands@gmail.com>",
- "Eddie Gurnee @pegurnee",
- "Kevin Decker @kpdecker <kpdecker@gmail.com>",
- "isaacs @isaacs <i@izs.me>",
- "Steve Gray @steve-gray",
- "Prayag Verma @pra85 <prayag.verma@gmail.com>",
- "Abe Fehr @abejfehr <abe.fehr@gmail.com>",
- "Brian Woodward @doowb <brian.woodward@gmail.com>",
- "@Victorystick",
- "@inversion",
- "@JamesMGreene",
- "@ChALkeR",
- "@graingert"
- ],
- "scripts": {
- "pretest": "jshint index.js lib/ test/ && ./download-escodegen-browser.sh",
- "test": "node --harmony test/run.js",
- "posttest": "node ./lib/cli.js check-coverage --statements 95 --branches 80",
- "docs": "npm install yuidocjs && node node_modules/yuidocjs/lib/cli.js ."
- },
- "bin": {
- "istanbul": "./lib/cli.js"
- },
- "files": [
- "index.js",
- "lib/"
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/gotwarlost/istanbul.git"
- },
- "dependencies": {
- "abbrev": "1.0.x",
- "async": "1.x",
- "escodegen": "1.8.x",
- "esprima": "2.7.x",
- "glob": "^5.0.15",
- "handlebars": "^4.0.1",
- "js-yaml": "3.x",
- "mkdirp": "0.5.x",
- "nopt": "3.x",
- "once": "1.x",
- "resolve": "1.1.x",
- "supports-color": "^3.1.0",
- "which": "^1.1.1",
- "wordwrap": "^1.0.0"
- },
- "devDependencies": {
- "coveralls": "2.x",
- "jshint": "^2.8.0",
- "nodeunit": "0.9.x",
- "requirejs": "2.x",
- "rimraf": "^2.4.3"
- }
-}
diff --git a/node_modules/jade/.npmignore b/node_modules/jade/.npmignore
deleted file mode 100644
index b9af3d4be..000000000
--- a/node_modules/jade/.npmignore
+++ /dev/null
@@ -1,15 +0,0 @@
-test
-support
-benchmarks
-examples
-lib-cov
-coverage.html
-.gitmodules
-.travis.yml
-History.md
-Readme.md
-Makefile
-test/
-support/
-benchmarks/
-examples/
diff --git a/node_modules/jade/LICENSE b/node_modules/jade/LICENSE
deleted file mode 100644
index 8ad0e0d3e..000000000
--- a/node_modules/jade/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2009-2010 TJ Holowaychuk <tj@vision-media.ca>
-
-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. \ No newline at end of file
diff --git a/node_modules/jade/bin/jade b/node_modules/jade/bin/jade
deleted file mode 100755
index 7e6002f90..000000000
--- a/node_modules/jade/bin/jade
+++ /dev/null
@@ -1,147 +0,0 @@
-#!/usr/bin/env node
-
-/**
- * Module dependencies.
- */
-
-var fs = require('fs')
- , program = require('commander')
- , path = require('path')
- , basename = path.basename
- , dirname = path.dirname
- , resolve = path.resolve
- , join = path.join
- , mkdirp = require('mkdirp')
- , jade = require('../');
-
-// jade options
-
-var options = {};
-
-// options
-
-program
- .version(jade.version)
- .usage('[options] [dir|file ...]')
- .option('-o, --obj <str>', 'javascript options object')
- .option('-O, --out <dir>', 'output the compiled html to <dir>')
- .option('-p, --path <path>', 'filename used to resolve includes')
- .option('-P, --pretty', 'compile pretty html output')
- .option('-c, --client', 'compile for client-side runtime.js')
- .option('-D, --no-debug', 'compile without debugging (smaller functions)')
-
-program.on('--help', function(){
- console.log(' Examples:');
- console.log('');
- console.log(' # translate jade the templates dir');
- console.log(' $ jade templates');
- console.log('');
- console.log(' # create {foo,bar}.html');
- console.log(' $ jade {foo,bar}.jade');
- console.log('');
- console.log(' # jade over stdio');
- console.log(' $ jade < my.jade > my.html');
- console.log('');
- console.log(' # jade over stdio');
- console.log(' $ echo "h1 Jade!" | jade');
- console.log('');
- console.log(' # foo, bar dirs rendering to /tmp');
- console.log(' $ jade foo bar --out /tmp ');
- console.log('');
-});
-
-program.parse(process.argv);
-
-// options given, parse them
-
-if (program.obj) options = eval('(' + program.obj + ')');
-
-// --filename
-
-if (program.path) options.filename = program.path;
-
-// --no-debug
-
-options.compileDebug = program.debug;
-
-// --client
-
-options.client = program.client;
-
-// --pretty
-
-options.pretty = program.pretty;
-
-// left-over args are file paths
-
-var files = program.args;
-
-// compile files
-
-if (files.length) {
- console.log();
- files.forEach(renderFile);
- process.on('exit', console.log);
-// stdio
-} else {
- stdin();
-}
-
-/**
- * Compile from stdin.
- */
-
-function stdin() {
- var buf = '';
- process.stdin.setEncoding('utf8');
- process.stdin.on('data', function(chunk){ buf += chunk; });
- process.stdin.on('end', function(){
- var fn = jade.compile(buf, options);
- var output = options.client
- ? fn.toString()
- : fn(options);
- process.stdout.write(output);
- }).resume();
-}
-
-/**
- * Process the given path, compiling the jade files found.
- * Always walk the subdirectories.
- */
-
-function renderFile(path) {
- var re = /\.jade$/;
- fs.lstat(path, function(err, stat) {
- if (err) throw err;
- // Found jade file
- if (stat.isFile() && re.test(path)) {
- fs.readFile(path, 'utf8', function(err, str){
- if (err) throw err;
- options.filename = path;
- var fn = jade.compile(str, options);
- var extname = options.client ? '.js' : '.html';
- path = path.replace(re, extname);
- if (program.out) path = join(program.out, basename(path));
- var dir = resolve(dirname(path));
- mkdirp(dir, 0755, function(err){
- if (err) throw err;
- var output = options.client
- ? fn.toString()
- : fn(options);
- fs.writeFile(path, output, function(err){
- if (err) throw err;
- console.log(' \033[90mrendered \033[36m%s\033[0m', path);
- });
- });
- });
- // Found directory
- } else if (stat.isDirectory()) {
- fs.readdir(path, function(err, files) {
- if (err) throw err;
- files.map(function(filename) {
- return path + '/' + filename;
- }).forEach(renderFile);
- });
- }
- });
-}
diff --git a/node_modules/jade/index.js b/node_modules/jade/index.js
deleted file mode 100644
index 8ad059f77..000000000
--- a/node_modules/jade/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-
-module.exports = process.env.JADE_COV
- ? require('./lib-cov/jade')
- : require('./lib/jade'); \ No newline at end of file
diff --git a/node_modules/jade/jade.js b/node_modules/jade/jade.js
deleted file mode 100644
index 1983a2039..000000000
--- a/node_modules/jade/jade.js
+++ /dev/null
@@ -1,3586 +0,0 @@
-(function() {
-
-// CommonJS require()
-
-function require(p){
- var path = require.resolve(p)
- , mod = require.modules[path];
- if (!mod) throw new Error('failed to require "' + p + '"');
- if (!mod.exports) {
- mod.exports = {};
- mod.call(mod.exports, mod, mod.exports, require.relative(path));
- }
- return mod.exports;
- }
-
-require.modules = {};
-
-require.resolve = function (path){
- var orig = path
- , reg = path + '.js'
- , index = path + '/index.js';
- return require.modules[reg] && reg
- || require.modules[index] && index
- || orig;
- };
-
-require.register = function (path, fn){
- require.modules[path] = fn;
- };
-
-require.relative = function (parent) {
- return function(p){
- if ('.' != p.charAt(0)) return require(p);
-
- var path = parent.split('/')
- , segs = p.split('/');
- path.pop();
-
- for (var i = 0; i < segs.length; i++) {
- var seg = segs[i];
- if ('..' == seg) path.pop();
- else if ('.' != seg) path.push(seg);
- }
-
- return require(path.join('/'));
- };
- };
-
-
-require.register("compiler.js", function(module, exports, require){
-
-/*!
- * Jade - Compiler
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var nodes = require('./nodes')
- , filters = require('./filters')
- , doctypes = require('./doctypes')
- , selfClosing = require('./self-closing')
- , runtime = require('./runtime')
- , utils = require('./utils');
-
-
- if (!Object.keys) {
- Object.keys = function(obj){
- var arr = [];
- for (var key in obj) {
- if (obj.hasOwnProperty(key)) {
- arr.push(key);
- }
- }
- return arr;
- }
- }
-
- if (!String.prototype.trimLeft) {
- String.prototype.trimLeft = function(){
- return this.replace(/^\s+/, '');
- }
- }
-
-
-
-/**
- * Initialize `Compiler` with the given `node`.
- *
- * @param {Node} node
- * @param {Object} options
- * @api public
- */
-
-var Compiler = module.exports = function Compiler(node, options) {
- this.options = options = options || {};
- this.node = node;
- this.hasCompiledDoctype = false;
- this.hasCompiledTag = false;
- this.pp = options.pretty || false;
- this.debug = false !== options.compileDebug;
- this.indents = 0;
- this.parentIndents = 0;
- if (options.doctype) this.setDoctype(options.doctype);
-};
-
-/**
- * Compiler prototype.
- */
-
-Compiler.prototype = {
-
- /**
- * Compile parse tree to JavaScript.
- *
- * @api public
- */
-
- compile: function(){
- this.buf = ['var interp;'];
- if (this.pp) this.buf.push("var __indent = [];");
- this.lastBufferedIdx = -1;
- this.visit(this.node);
- return this.buf.join('\n');
- },
-
- /**
- * Sets the default doctype `name`. Sets terse mode to `true` when
- * html 5 is used, causing self-closing tags to end with ">" vs "/>",
- * and boolean attributes are not mirrored.
- *
- * @param {string} name
- * @api public
- */
-
- setDoctype: function(name){
- var doctype = doctypes[(name || 'default').toLowerCase()];
- doctype = doctype || '<!DOCTYPE ' + name + '>';
- this.doctype = doctype;
- this.terse = '5' == name || 'html' == name;
- this.xml = 0 == this.doctype.indexOf('<?xml');
- },
-
- /**
- * Buffer the given `str` optionally escaped.
- *
- * @param {String} str
- * @param {Boolean} esc
- * @api public
- */
-
- buffer: function(str, esc){
- if (esc) str = utils.escape(str);
-
- if (this.lastBufferedIdx == this.buf.length) {
- this.lastBuffered += str;
- this.buf[this.lastBufferedIdx - 1] = "buf.push('" + this.lastBuffered + "');"
- } else {
- this.buf.push("buf.push('" + str + "');");
- this.lastBuffered = str;
- this.lastBufferedIdx = this.buf.length;
- }
- },
-
- /**
- * Buffer an indent based on the current `indent`
- * property and an additional `offset`.
- *
- * @param {Number} offset
- * @param {Boolean} newline
- * @api public
- */
-
- prettyIndent: function(offset, newline){
- offset = offset || 0;
- newline = newline ? '\\n' : '';
- this.buffer(newline + Array(this.indents + offset).join(' '));
- if (this.parentIndents)
- this.buf.push("buf.push.apply(buf, __indent);");
- },
-
- /**
- * Visit `node`.
- *
- * @param {Node} node
- * @api public
- */
-
- visit: function(node){
- var debug = this.debug;
-
- if (debug) {
- this.buf.push('__jade.unshift({ lineno: ' + node.line
- + ', filename: ' + (node.filename
- ? JSON.stringify(node.filename)
- : '__jade[0].filename')
- + ' });');
- }
-
- // Massive hack to fix our context
- // stack for - else[ if] etc
- if (false === node.debug && this.debug) {
- this.buf.pop();
- this.buf.pop();
- }
-
- this.visitNode(node);
-
- if (debug) this.buf.push('__jade.shift();');
- },
-
- /**
- * Visit `node`.
- *
- * @param {Node} node
- * @api public
- */
-
- visitNode: function(node){
- var name = node.constructor.name
- || node.constructor.toString().match(/function ([^(\s]+)()/)[1];
- return this['visit' + name](node);
- },
-
- /**
- * Visit case `node`.
- *
- * @param {Literal} node
- * @api public
- */
-
- visitCase: function(node){
- var _ = this.withinCase;
- this.withinCase = true;
- this.buf.push('switch (' + node.expr + '){');
- this.visit(node.block);
- this.buf.push('}');
- this.withinCase = _;
- },
-
- /**
- * Visit when `node`.
- *
- * @param {Literal} node
- * @api public
- */
-
- visitWhen: function(node){
- if ('default' == node.expr) {
- this.buf.push('default:');
- } else {
- this.buf.push('case ' + node.expr + ':');
- }
- this.visit(node.block);
- this.buf.push(' break;');
- },
-
- /**
- * Visit literal `node`.
- *
- * @param {Literal} node
- * @api public
- */
-
- visitLiteral: function(node){
- var str = node.str.replace(/\n/g, '\\\\n');
- this.buffer(str);
- },
-
- /**
- * Visit all nodes in `block`.
- *
- * @param {Block} block
- * @api public
- */
-
- visitBlock: function(block){
- var len = block.nodes.length
- , escape = this.escape
- , pp = this.pp
-
- // Block keyword has a special meaning in mixins
- if (this.parentIndents && block.mode) {
- if (pp) this.buf.push("__indent.push('" + Array(this.indents + 1).join(' ') + "');")
- this.buf.push('block && block();');
- if (pp) this.buf.push("__indent.pop();")
- return;
- }
-
- // Pretty print multi-line text
- if (pp && len > 1 && !escape && block.nodes[0].isText && block.nodes[1].isText)
- this.prettyIndent(1, true);
-
- for (var i = 0; i < len; ++i) {
- // Pretty print text
- if (pp && i > 0 && !escape && block.nodes[i].isText && block.nodes[i-1].isText)
- this.prettyIndent(1, false);
-
- this.visit(block.nodes[i]);
- // Multiple text nodes are separated by newlines
- if (block.nodes[i+1] && block.nodes[i].isText && block.nodes[i+1].isText)
- this.buffer('\\n');
- }
- },
-
- /**
- * Visit `doctype`. Sets terse mode to `true` when html 5
- * is used, causing self-closing tags to end with ">" vs "/>",
- * and boolean attributes are not mirrored.
- *
- * @param {Doctype} doctype
- * @api public
- */
-
- visitDoctype: function(doctype){
- if (doctype && (doctype.val || !this.doctype)) {
- this.setDoctype(doctype.val || 'default');
- }
-
- if (this.doctype) this.buffer(this.doctype);
- this.hasCompiledDoctype = true;
- },
-
- /**
- * Visit `mixin`, generating a function that
- * may be called within the template.
- *
- * @param {Mixin} mixin
- * @api public
- */
-
- visitMixin: function(mixin){
- var name = mixin.name.replace(/-/g, '_') + '_mixin'
- , args = mixin.args || ''
- , block = mixin.block
- , attrs = mixin.attrs
- , pp = this.pp;
-
- if (mixin.call) {
- if (pp) this.buf.push("__indent.push('" + Array(this.indents + 1).join(' ') + "');")
- if (block || attrs.length) {
-
- this.buf.push(name + '.call({');
-
- if (block) {
- this.buf.push('block: function(){');
-
- // Render block with no indents, dynamically added when rendered
- this.parentIndents++;
- var _indents = this.indents;
- this.indents = 0;
- this.visit(mixin.block);
- this.indents = _indents;
- this.parentIndents--;
-
- if (attrs.length) {
- this.buf.push('},');
- } else {
- this.buf.push('}');
- }
- }
-
- if (attrs.length) {
- var val = this.attrs(attrs);
- if (val.inherits) {
- this.buf.push('attributes: merge({' + val.buf
- + '}, attributes), escaped: merge(' + val.escaped + ', escaped, true)');
- } else {
- this.buf.push('attributes: {' + val.buf + '}, escaped: ' + val.escaped);
- }
- }
-
- if (args) {
- this.buf.push('}, ' + args + ');');
- } else {
- this.buf.push('});');
- }
-
- } else {
- this.buf.push(name + '(' + args + ');');
- }
- if (pp) this.buf.push("__indent.pop();")
- } else {
- this.buf.push('var ' + name + ' = function(' + args + '){');
- this.buf.push('var block = this.block, attributes = this.attributes || {}, escaped = this.escaped || {};');
- this.parentIndents++;
- this.visit(block);
- this.parentIndents--;
- this.buf.push('};');
- }
- },
-
- /**
- * Visit `tag` buffering tag markup, generating
- * attributes, visiting the `tag`'s code and block.
- *
- * @param {Tag} tag
- * @api public
- */
-
- visitTag: function(tag){
- this.indents++;
- var name = tag.name
- , pp = this.pp;
-
- if (tag.buffer) name = "' + (" + name + ") + '";
-
- if (!this.hasCompiledTag) {
- if (!this.hasCompiledDoctype && 'html' == name) {
- this.visitDoctype();
- }
- this.hasCompiledTag = true;
- }
-
- // pretty print
- if (pp && !tag.isInline())
- this.prettyIndent(0, true);
-
- if ((~selfClosing.indexOf(name) || tag.selfClosing) && !this.xml) {
- this.buffer('<' + name);
- this.visitAttributes(tag.attrs);
- this.terse
- ? this.buffer('>')
- : this.buffer('/>');
- } else {
- // Optimize attributes buffering
- if (tag.attrs.length) {
- this.buffer('<' + name);
- if (tag.attrs.length) this.visitAttributes(tag.attrs);
- this.buffer('>');
- } else {
- this.buffer('<' + name + '>');
- }
- if (tag.code) this.visitCode(tag.code);
- this.escape = 'pre' == tag.name;
- this.visit(tag.block);
-
- // pretty print
- if (pp && !tag.isInline() && 'pre' != tag.name && !tag.canInline())
- this.prettyIndent(0, true);
-
- this.buffer('</' + name + '>');
- }
- this.indents--;
- },
-
- /**
- * Visit `filter`, throwing when the filter does not exist.
- *
- * @param {Filter} filter
- * @api public
- */
-
- visitFilter: function(filter){
- var fn = filters[filter.name];
-
- // unknown filter
- if (!fn) {
- if (filter.isASTFilter) {
- throw new Error('unknown ast filter "' + filter.name + ':"');
- } else {
- throw new Error('unknown filter ":' + filter.name + '"');
- }
- }
-
- if (filter.isASTFilter) {
- this.buf.push(fn(filter.block, this, filter.attrs));
- } else {
- var text = filter.block.nodes.map(function(node){ return node.val }).join('\n');
- filter.attrs = filter.attrs || {};
- filter.attrs.filename = this.options.filename;
- this.buffer(utils.text(fn(text, filter.attrs)));
- }
- },
-
- /**
- * Visit `text` node.
- *
- * @param {Text} text
- * @api public
- */
-
- visitText: function(text){
- text = utils.text(text.val.replace(/\\/g, '\\\\'));
- if (this.escape) text = escape(text);
- this.buffer(text);
- },
-
- /**
- * Visit a `comment`, only buffering when the buffer flag is set.
- *
- * @param {Comment} comment
- * @api public
- */
-
- visitComment: function(comment){
- if (!comment.buffer) return;
- if (this.pp) this.prettyIndent(1, true);
- this.buffer('<!--' + utils.escape(comment.val) + '-->');
- },
-
- /**
- * Visit a `BlockComment`.
- *
- * @param {Comment} comment
- * @api public
- */
-
- visitBlockComment: function(comment){
- if (!comment.buffer) return;
- if (0 == comment.val.trim().indexOf('if')) {
- this.buffer('<!--[' + comment.val.trim() + ']>');
- this.visit(comment.block);
- this.buffer('<![endif]-->');
- } else {
- this.buffer('<!--' + comment.val);
- this.visit(comment.block);
- this.buffer('-->');
- }
- },
-
- /**
- * Visit `code`, respecting buffer / escape flags.
- * If the code is followed by a block, wrap it in
- * a self-calling function.
- *
- * @param {Code} code
- * @api public
- */
-
- visitCode: function(code){
- // Wrap code blocks with {}.
- // we only wrap unbuffered code blocks ATM
- // since they are usually flow control
-
- // Buffer code
- if (code.buffer) {
- var val = code.val.trimLeft();
- this.buf.push('var __val__ = ' + val);
- val = 'null == __val__ ? "" : __val__';
- if (code.escape) val = 'escape(' + val + ')';
- this.buf.push("buf.push(" + val + ");");
- } else {
- this.buf.push(code.val);
- }
-
- // Block support
- if (code.block) {
- if (!code.buffer) this.buf.push('{');
- this.visit(code.block);
- if (!code.buffer) this.buf.push('}');
- }
- },
-
- /**
- * Visit `each` block.
- *
- * @param {Each} each
- * @api public
- */
-
- visitEach: function(each){
- this.buf.push(''
- + '// iterate ' + each.obj + '\n'
- + ';(function(){\n'
- + ' if (\'number\' == typeof ' + each.obj + '.length) {\n'
- + ' for (var ' + each.key + ' = 0, $$l = ' + each.obj + '.length; ' + each.key + ' < $$l; ' + each.key + '++) {\n'
- + ' var ' + each.val + ' = ' + each.obj + '[' + each.key + '];\n');
-
- this.visit(each.block);
-
- this.buf.push(''
- + ' }\n'
- + ' } else {\n'
- + ' for (var ' + each.key + ' in ' + each.obj + ') {\n'
- + ' if (' + each.obj + '.hasOwnProperty(' + each.key + ')){'
- + ' var ' + each.val + ' = ' + each.obj + '[' + each.key + '];\n');
-
- this.visit(each.block);
-
- this.buf.push(' }\n');
-
- this.buf.push(' }\n }\n}).call(this);\n');
- },
-
- /**
- * Visit `attrs`.
- *
- * @param {Array} attrs
- * @api public
- */
-
- visitAttributes: function(attrs){
- var val = this.attrs(attrs);
- if (val.inherits) {
- this.buf.push("buf.push(attrs(merge({ " + val.buf +
- " }, attributes), merge(" + val.escaped + ", escaped, true)));");
- } else if (val.constant) {
- eval('var buf={' + val.buf + '};');
- this.buffer(runtime.attrs(buf, JSON.parse(val.escaped)), true);
- } else {
- this.buf.push("buf.push(attrs({ " + val.buf + " }, " + val.escaped + "));");
- }
- },
-
- /**
- * Compile attributes.
- */
-
- attrs: function(attrs){
- var buf = []
- , classes = []
- , escaped = {}
- , constant = attrs.every(function(attr){ return isConstant(attr.val) })
- , inherits = false;
-
- if (this.terse) buf.push('terse: true');
-
- attrs.forEach(function(attr){
- if (attr.name == 'attributes') return inherits = true;
- escaped[attr.name] = attr.escaped;
- if (attr.name == 'class') {
- classes.push('(' + attr.val + ')');
- } else {
- var pair = "'" + attr.name + "':(" + attr.val + ')';
- buf.push(pair);
- }
- });
-
- if (classes.length) {
- classes = classes.join(" + ' ' + ");
- buf.push("class: " + classes);
- }
-
- return {
- buf: buf.join(', ').replace('class:', '"class":'),
- escaped: JSON.stringify(escaped),
- inherits: inherits,
- constant: constant
- };
- }
-};
-
-/**
- * Check if expression can be evaluated to a constant
- *
- * @param {String} expression
- * @return {Boolean}
- * @api private
- */
-
-function isConstant(val){
- // Check strings/literals
- if (/^ *("([^"\\]*(\\.[^"\\]*)*)"|'([^'\\]*(\\.[^'\\]*)*)'|true|false|null|undefined) *$/i.test(val))
- return true;
-
- // Check numbers
- if (!isNaN(Number(val)))
- return true;
-
- // Check arrays
- var matches;
- if (matches = /^ *\[(.*)\] *$/.exec(val))
- return matches[1].split(',').every(isConstant);
-
- return false;
-}
-
-/**
- * Escape the given string of `html`.
- *
- * @param {String} html
- * @return {String}
- * @api private
- */
-
-function escape(html){
- return String(html)
- .replace(/&(?!\w+;)/g, '&amp;')
- .replace(/</g, '&lt;')
- .replace(/>/g, '&gt;')
- .replace(/"/g, '&quot;');
-}
-}); // module: compiler.js
-
-require.register("doctypes.js", function(module, exports, require){
-
-/*!
- * Jade - doctypes
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-module.exports = {
- '5': '<!DOCTYPE html>'
- , 'default': '<!DOCTYPE html>'
- , 'xml': '<?xml version="1.0" encoding="utf-8" ?>'
- , 'transitional': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
- , 'strict': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'
- , 'frameset': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">'
- , '1.1': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">'
- , 'basic': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">'
- , 'mobile': '<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">'
-};
-}); // module: doctypes.js
-
-require.register("filters.js", function(module, exports, require){
-
-/*!
- * Jade - filters
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-module.exports = {
-
- /**
- * Wrap text with CDATA block.
- */
-
- cdata: function(str){
- return '<![CDATA[\\n' + str + '\\n]]>';
- },
-
- /**
- * Transform sass to css, wrapped in style tags.
- */
-
- sass: function(str){
- str = str.replace(/\\n/g, '\n');
- var sass = require('sass').render(str).replace(/\n/g, '\\n');
- return '<style type="text/css">' + sass + '</style>';
- },
-
- /**
- * Transform stylus to css, wrapped in style tags.
- */
-
- stylus: function(str, options){
- var ret;
- str = str.replace(/\\n/g, '\n');
- var stylus = require('stylus');
- stylus(str, options).render(function(err, css){
- if (err) throw err;
- ret = css.replace(/\n/g, '\\n');
- });
- return '<style type="text/css">' + ret + '</style>';
- },
-
- /**
- * Transform less to css, wrapped in style tags.
- */
-
- less: function(str){
- var ret;
- str = str.replace(/\\n/g, '\n');
- require('less').render(str, function(err, css){
- if (err) throw err;
- ret = '<style type="text/css">' + css.replace(/\n/g, '\\n') + '</style>';
- });
- return ret;
- },
-
- /**
- * Transform markdown to html.
- */
-
- markdown: function(str){
- var md;
-
- // support markdown / discount
- try {
- md = require('markdown');
- } catch (err){
- try {
- md = require('discount');
- } catch (err) {
- try {
- md = require('markdown-js');
- } catch (err) {
- try {
- md = require('marked');
- } catch (err) {
- throw new
- Error('Cannot find markdown library, install markdown, discount, or marked.');
- }
- }
- }
- }
-
- str = str.replace(/\\n/g, '\n');
- return md.parse(str).replace(/\n/g, '\\n').replace(/'/g,'&#39;');
- },
-
- /**
- * Transform coffeescript to javascript.
- */
-
- coffeescript: function(str){
- str = str.replace(/\\n/g, '\n');
- var js = require('coffee-script').compile(str).replace(/\\/g, '\\\\').replace(/\n/g, '\\n');
- return '<script type="text/javascript">\\n' + js + '</script>';
- }
-};
-
-}); // module: filters.js
-
-require.register("inline-tags.js", function(module, exports, require){
-
-/*!
- * Jade - inline tags
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-module.exports = [
- 'a'
- , 'abbr'
- , 'acronym'
- , 'b'
- , 'br'
- , 'code'
- , 'em'
- , 'font'
- , 'i'
- , 'img'
- , 'ins'
- , 'kbd'
- , 'map'
- , 'samp'
- , 'small'
- , 'span'
- , 'strong'
- , 'sub'
- , 'sup'
-];
-}); // module: inline-tags.js
-
-require.register("jade.js", function(module, exports, require){
-/*!
- * Jade
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Parser = require('./parser')
- , Lexer = require('./lexer')
- , Compiler = require('./compiler')
- , runtime = require('./runtime')
-
-/**
- * Library version.
- */
-
-exports.version = '0.26.1';
-
-/**
- * Expose self closing tags.
- */
-
-exports.selfClosing = require('./self-closing');
-
-/**
- * Default supported doctypes.
- */
-
-exports.doctypes = require('./doctypes');
-
-/**
- * Text filters.
- */
-
-exports.filters = require('./filters');
-
-/**
- * Utilities.
- */
-
-exports.utils = require('./utils');
-
-/**
- * Expose `Compiler`.
- */
-
-exports.Compiler = Compiler;
-
-/**
- * Expose `Parser`.
- */
-
-exports.Parser = Parser;
-
-/**
- * Expose `Lexer`.
- */
-
-exports.Lexer = Lexer;
-
-/**
- * Nodes.
- */
-
-exports.nodes = require('./nodes');
-
-/**
- * Jade runtime helpers.
- */
-
-exports.runtime = runtime;
-
-/**
- * Template function cache.
- */
-
-exports.cache = {};
-
-/**
- * Parse the given `str` of jade and return a function body.
- *
- * @param {String} str
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function parse(str, options){
- try {
- // Parse
- var parser = new Parser(str, options.filename, options);
-
- // Compile
- var compiler = new (options.compiler || Compiler)(parser.parse(), options)
- , js = compiler.compile();
-
- // Debug compiler
- if (options.debug) {
- console.error('\nCompiled Function:\n\n\033[90m%s\033[0m', js.replace(/^/gm, ' '));
- }
-
- return ''
- + 'var buf = [];\n'
- + (options.self
- ? 'var self = locals || {};\n' + js
- : 'with (locals || {}) {\n' + js + '\n}\n')
- + 'return buf.join("");';
- } catch (err) {
- parser = parser.context();
- runtime.rethrow(err, parser.filename, parser.lexer.lineno);
- }
-}
-
-/**
- * Compile a `Function` representation of the given jade `str`.
- *
- * Options:
- *
- * - `compileDebug` when `false` debugging code is stripped from the compiled template
- * - `client` when `true` the helper functions `escape()` etc will reference `jade.escape()`
- * for use with the Jade client-side runtime.js
- *
- * @param {String} str
- * @param {Options} options
- * @return {Function}
- * @api public
- */
-
-exports.compile = function(str, options){
- var options = options || {}
- , client = options.client
- , filename = options.filename
- ? JSON.stringify(options.filename)
- : 'undefined'
- , fn;
-
- if (options.compileDebug !== false) {
- fn = [
- 'var __jade = [{ lineno: 1, filename: ' + filename + ' }];'
- , 'try {'
- , parse(String(str), options)
- , '} catch (err) {'
- , ' rethrow(err, __jade[0].filename, __jade[0].lineno);'
- , '}'
- ].join('\n');
- } else {
- fn = parse(String(str), options);
- }
-
- if (client) {
- fn = 'attrs = attrs || jade.attrs; escape = escape || jade.escape; rethrow = rethrow || jade.rethrow; merge = merge || jade.merge;\n' + fn;
- }
-
- fn = new Function('locals, attrs, escape, rethrow, merge', fn);
-
- if (client) return fn;
-
- return function(locals){
- return fn(locals, runtime.attrs, runtime.escape, runtime.rethrow, runtime.merge);
- };
-};
-
-/**
- * Render the given `str` of jade and invoke
- * the callback `fn(err, str)`.
- *
- * Options:
- *
- * - `cache` enable template caching
- * - `filename` filename required for `include` / `extends` and caching
- *
- * @param {String} str
- * @param {Object|Function} options or fn
- * @param {Function} fn
- * @api public
- */
-
-exports.render = function(str, options, fn){
- // swap args
- if ('function' == typeof options) {
- fn = options, options = {};
- }
-
- // cache requires .filename
- if (options.cache && !options.filename) {
- return fn(new Error('the "filename" option is required for caching'));
- }
-
- try {
- var path = options.filename;
- var tmpl = options.cache
- ? exports.cache[path] || (exports.cache[path] = exports.compile(str, options))
- : exports.compile(str, options);
- fn(null, tmpl(options));
- } catch (err) {
- fn(err);
- }
-};
-
-/**
- * Render a Jade file at the given `path` and callback `fn(err, str)`.
- *
- * @param {String} path
- * @param {Object|Function} options or callback
- * @param {Function} fn
- * @api public
- */
-
-exports.renderFile = function(path, options, fn){
- var key = path + ':string';
-
- if ('function' == typeof options) {
- fn = options, options = {};
- }
-
- try {
- options.filename = path;
- var str = options.cache
- ? exports.cache[key] || (exports.cache[key] = fs.readFileSync(path, 'utf8'))
- : fs.readFileSync(path, 'utf8');
- exports.render(str, options, fn);
- } catch (err) {
- fn(err);
- }
-};
-
-/**
- * Express support.
- */
-
-exports.__express = exports.renderFile;
-
-}); // module: jade.js
-
-require.register("lexer.js", function(module, exports, require){
-
-/*!
- * Jade - Lexer
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Initialize `Lexer` with the given `str`.
- *
- * Options:
- *
- * - `colons` allow colons for attr delimiters
- *
- * @param {String} str
- * @param {Object} options
- * @api private
- */
-
-var Lexer = module.exports = function Lexer(str, options) {
- options = options || {};
- this.input = str.replace(/\r\n|\r/g, '\n');
- this.colons = options.colons;
- this.deferredTokens = [];
- this.lastIndents = 0;
- this.lineno = 1;
- this.stash = [];
- this.indentStack = [];
- this.indentRe = null;
- this.pipeless = false;
-};
-
-/**
- * Lexer prototype.
- */
-
-Lexer.prototype = {
-
- /**
- * Construct a token with the given `type` and `val`.
- *
- * @param {String} type
- * @param {String} val
- * @return {Object}
- * @api private
- */
-
- tok: function(type, val){
- return {
- type: type
- , line: this.lineno
- , val: val
- }
- },
-
- /**
- * Consume the given `len` of input.
- *
- * @param {Number} len
- * @api private
- */
-
- consume: function(len){
- this.input = this.input.substr(len);
- },
-
- /**
- * Scan for `type` with the given `regexp`.
- *
- * @param {String} type
- * @param {RegExp} regexp
- * @return {Object}
- * @api private
- */
-
- scan: function(regexp, type){
- var captures;
- if (captures = regexp.exec(this.input)) {
- this.consume(captures[0].length);
- return this.tok(type, captures[1]);
- }
- },
-
- /**
- * Defer the given `tok`.
- *
- * @param {Object} tok
- * @api private
- */
-
- defer: function(tok){
- this.deferredTokens.push(tok);
- },
-
- /**
- * Lookahead `n` tokens.
- *
- * @param {Number} n
- * @return {Object}
- * @api private
- */
-
- lookahead: function(n){
- var fetch = n - this.stash.length;
- while (fetch-- > 0) this.stash.push(this.next());
- return this.stash[--n];
- },
-
- /**
- * Return the indexOf `start` / `end` delimiters.
- *
- * @param {String} start
- * @param {String} end
- * @return {Number}
- * @api private
- */
-
- indexOfDelimiters: function(start, end){
- var str = this.input
- , nstart = 0
- , nend = 0
- , pos = 0;
- for (var i = 0, len = str.length; i < len; ++i) {
- if (start == str.charAt(i)) {
- ++nstart;
- } else if (end == str.charAt(i)) {
- if (++nend == nstart) {
- pos = i;
- break;
- }
- }
- }
- return pos;
- },
-
- /**
- * Stashed token.
- */
-
- stashed: function() {
- return this.stash.length
- && this.stash.shift();
- },
-
- /**
- * Deferred token.
- */
-
- deferred: function() {
- return this.deferredTokens.length
- && this.deferredTokens.shift();
- },
-
- /**
- * end-of-source.
- */
-
- eos: function() {
- if (this.input.length) return;
- if (this.indentStack.length) {
- this.indentStack.shift();
- return this.tok('outdent');
- } else {
- return this.tok('eos');
- }
- },
-
- /**
- * Blank line.
- */
-
- blank: function() {
- var captures;
- if (captures = /^\n *\n/.exec(this.input)) {
- this.consume(captures[0].length - 1);
- if (this.pipeless) return this.tok('text', '');
- return this.next();
- }
- },
-
- /**
- * Comment.
- */
-
- comment: function() {
- var captures;
- if (captures = /^ *\/\/(-)?([^\n]*)/.exec(this.input)) {
- this.consume(captures[0].length);
- var tok = this.tok('comment', captures[2]);
- tok.buffer = '-' != captures[1];
- return tok;
- }
- },
-
- /**
- * Interpolated tag.
- */
-
- interpolation: function() {
- var captures;
- if (captures = /^#\{(.*?)\}/.exec(this.input)) {
- this.consume(captures[0].length);
- return this.tok('interpolation', captures[1]);
- }
- },
-
- /**
- * Tag.
- */
-
- tag: function() {
- var captures;
- if (captures = /^(\w[-:\w]*)(\/?)/.exec(this.input)) {
- this.consume(captures[0].length);
- var tok, name = captures[1];
- if (':' == name[name.length - 1]) {
- name = name.slice(0, -1);
- tok = this.tok('tag', name);
- this.defer(this.tok(':'));
- while (' ' == this.input[0]) this.input = this.input.substr(1);
- } else {
- tok = this.tok('tag', name);
- }
- tok.selfClosing = !! captures[2];
- return tok;
- }
- },
-
- /**
- * Filter.
- */
-
- filter: function() {
- return this.scan(/^:(\w+)/, 'filter');
- },
-
- /**
- * Doctype.
- */
-
- doctype: function() {
- return this.scan(/^(?:!!!|doctype) *([^\n]+)?/, 'doctype');
- },
-
- /**
- * Id.
- */
-
- id: function() {
- return this.scan(/^#([\w-]+)/, 'id');
- },
-
- /**
- * Class.
- */
-
- className: function() {
- return this.scan(/^\.([\w-]+)/, 'class');
- },
-
- /**
- * Text.
- */
-
- text: function() {
- return this.scan(/^(?:\| ?| ?)?([^\n]+)/, 'text');
- },
-
- /**
- * Extends.
- */
-
- "extends": function() {
- return this.scan(/^extends? +([^\n]+)/, 'extends');
- },
-
- /**
- * Block prepend.
- */
-
- prepend: function() {
- var captures;
- if (captures = /^prepend +([^\n]+)/.exec(this.input)) {
- this.consume(captures[0].length);
- var mode = 'prepend'
- , name = captures[1]
- , tok = this.tok('block', name);
- tok.mode = mode;
- return tok;
- }
- },
-
- /**
- * Block append.
- */
-
- append: function() {
- var captures;
- if (captures = /^append +([^\n]+)/.exec(this.input)) {
- this.consume(captures[0].length);
- var mode = 'append'
- , name = captures[1]
- , tok = this.tok('block', name);
- tok.mode = mode;
- return tok;
- }
- },
-
- /**
- * Block.
- */
-
- block: function() {
- var captures;
- if (captures = /^block\b *(?:(prepend|append) +)?([^\n]*)/.exec(this.input)) {
- this.consume(captures[0].length);
- var mode = captures[1] || 'replace'
- , name = captures[2]
- , tok = this.tok('block', name);
-
- tok.mode = mode;
- return tok;
- }
- },
-
- /**
- * Yield.
- */
-
- yield: function() {
- return this.scan(/^yield */, 'yield');
- },
-
- /**
- * Include.
- */
-
- include: function() {
- return this.scan(/^include +([^\n]+)/, 'include');
- },
-
- /**
- * Case.
- */
-
- "case": function() {
- return this.scan(/^case +([^\n]+)/, 'case');
- },
-
- /**
- * When.
- */
-
- when: function() {
- return this.scan(/^when +([^:\n]+)/, 'when');
- },
-
- /**
- * Default.
- */
-
- "default": function() {
- return this.scan(/^default */, 'default');
- },
-
- /**
- * Assignment.
- */
-
- assignment: function() {
- var captures;
- if (captures = /^(\w+) += *([^;\n]+)( *;? *)/.exec(this.input)) {
- this.consume(captures[0].length);
- var name = captures[1]
- , val = captures[2];
- return this.tok('code', 'var ' + name + ' = (' + val + ');');
- }
- },
-
- /**
- * Call mixin.
- */
-
- call: function(){
- var captures;
- if (captures = /^\+([-\w]+)/.exec(this.input)) {
- this.consume(captures[0].length);
- var tok = this.tok('call', captures[1]);
-
- // Check for args (not attributes)
- if (captures = /^ *\((.*?)\)/.exec(this.input)) {
- if (!/^ *[-\w]+ *=/.test(captures[1])) {
- this.consume(captures[0].length);
- tok.args = captures[1];
- }
- }
-
- return tok;
- }
- },
-
- /**
- * Mixin.
- */
-
- mixin: function(){
- var captures;
- if (captures = /^mixin +([-\w]+)(?: *\((.*)\))?/.exec(this.input)) {
- this.consume(captures[0].length);
- var tok = this.tok('mixin', captures[1]);
- tok.args = captures[2];
- return tok;
- }
- },
-
- /**
- * Conditional.
- */
-
- conditional: function() {
- var captures;
- if (captures = /^(if|unless|else if|else)\b([^\n]*)/.exec(this.input)) {
- this.consume(captures[0].length);
- var type = captures[1]
- , js = captures[2];
-
- switch (type) {
- case 'if': js = 'if (' + js + ')'; break;
- case 'unless': js = 'if (!(' + js + '))'; break;
- case 'else if': js = 'else if (' + js + ')'; break;
- case 'else': js = 'else'; break;
- }
-
- return this.tok('code', js);
- }
- },
-
- /**
- * While.
- */
-
- "while": function() {
- var captures;
- if (captures = /^while +([^\n]+)/.exec(this.input)) {
- this.consume(captures[0].length);
- return this.tok('code', 'while (' + captures[1] + ')');
- }
- },
-
- /**
- * Each.
- */
-
- each: function() {
- var captures;
- if (captures = /^(?:- *)?(?:each|for) +(\w+)(?: *, *(\w+))? * in *([^\n]+)/.exec(this.input)) {
- this.consume(captures[0].length);
- var tok = this.tok('each', captures[1]);
- tok.key = captures[2] || '$index';
- tok.code = captures[3];
- return tok;
- }
- },
-
- /**
- * Code.
- */
-
- code: function() {
- var captures;
- if (captures = /^(!?=|-)([^\n]+)/.exec(this.input)) {
- this.consume(captures[0].length);
- var flags = captures[1];
- captures[1] = captures[2];
- var tok = this.tok('code', captures[1]);
- tok.escape = flags[0] === '=';
- tok.buffer = flags[0] === '=' || flags[1] === '=';
- return tok;
- }
- },
-
- /**
- * Attributes.
- */
-
- attrs: function() {
- if ('(' == this.input.charAt(0)) {
- var index = this.indexOfDelimiters('(', ')')
- , str = this.input.substr(1, index-1)
- , tok = this.tok('attrs')
- , len = str.length
- , colons = this.colons
- , states = ['key']
- , escapedAttr
- , key = ''
- , val = ''
- , quote
- , c
- , p;
-
- function state(){
- return states[states.length - 1];
- }
-
- function interpolate(attr) {
- return attr.replace(/#\{([^}]+)\}/g, function(_, expr){
- return quote + " + (" + expr + ") + " + quote;
- });
- }
-
- this.consume(index + 1);
- tok.attrs = {};
- tok.escaped = {};
-
- function parse(c) {
- var real = c;
- // TODO: remove when people fix ":"
- if (colons && ':' == c) c = '=';
- switch (c) {
- case ',':
- case '\n':
- switch (state()) {
- case 'expr':
- case 'array':
- case 'string':
- case 'object':
- val += c;
- break;
- default:
- states.push('key');
- val = val.trim();
- key = key.trim();
- if ('' == key) return;
- key = key.replace(/^['"]|['"]$/g, '').replace('!', '');
- tok.escaped[key] = escapedAttr;
- tok.attrs[key] = '' == val
- ? true
- : interpolate(val);
- key = val = '';
- }
- break;
- case '=':
- switch (state()) {
- case 'key char':
- key += real;
- break;
- case 'val':
- case 'expr':
- case 'array':
- case 'string':
- case 'object':
- val += real;
- break;
- default:
- escapedAttr = '!' != p;
- states.push('val');
- }
- break;
- case '(':
- if ('val' == state()
- || 'expr' == state()) states.push('expr');
- val += c;
- break;
- case ')':
- if ('expr' == state()
- || 'val' == state()) states.pop();
- val += c;
- break;
- case '{':
- if ('val' == state()) states.push('object');
- val += c;
- break;
- case '}':
- if ('object' == state()) states.pop();
- val += c;
- break;
- case '[':
- if ('val' == state()) states.push('array');
- val += c;
- break;
- case ']':
- if ('array' == state()) states.pop();
- val += c;
- break;
- case '"':
- case "'":
- switch (state()) {
- case 'key':
- states.push('key char');
- break;
- case 'key char':
- states.pop();
- break;
- case 'string':
- if (c == quote) states.pop();
- val += c;
- break;
- default:
- states.push('string');
- val += c;
- quote = c;
- }
- break;
- case '':
- break;
- default:
- switch (state()) {
- case 'key':
- case 'key char':
- key += c;
- break;
- default:
- val += c;
- }
- }
- p = c;
- }
-
- for (var i = 0; i < len; ++i) {
- parse(str.charAt(i));
- }
-
- parse(',');
-
- if ('/' == this.input.charAt(0)) {
- this.consume(1);
- tok.selfClosing = true;
- }
-
- return tok;
- }
- },
-
- /**
- * Indent | Outdent | Newline.
- */
-
- indent: function() {
- var captures, re;
-
- // established regexp
- if (this.indentRe) {
- captures = this.indentRe.exec(this.input);
- // determine regexp
- } else {
- // tabs
- re = /^\n(\t*) */;
- captures = re.exec(this.input);
-
- // spaces
- if (captures && !captures[1].length) {
- re = /^\n( *)/;
- captures = re.exec(this.input);
- }
-
- // established
- if (captures && captures[1].length) this.indentRe = re;
- }
-
- if (captures) {
- var tok
- , indents = captures[1].length;
-
- ++this.lineno;
- this.consume(indents + 1);
-
- if (' ' == this.input[0] || '\t' == this.input[0]) {
- throw new Error('Invalid indentation, you can use tabs or spaces but not both');
- }
-
- // blank line
- if ('\n' == this.input[0]) return this.tok('newline');
-
- // outdent
- if (this.indentStack.length && indents < this.indentStack[0]) {
- while (this.indentStack.length && this.indentStack[0] > indents) {
- this.stash.push(this.tok('outdent'));
- this.indentStack.shift();
- }
- tok = this.stash.pop();
- // indent
- } else if (indents && indents != this.indentStack[0]) {
- this.indentStack.unshift(indents);
- tok = this.tok('indent', indents);
- // newline
- } else {
- tok = this.tok('newline');
- }
-
- return tok;
- }
- },
-
- /**
- * Pipe-less text consumed only when
- * pipeless is true;
- */
-
- pipelessText: function() {
- if (this.pipeless) {
- if ('\n' == this.input[0]) return;
- var i = this.input.indexOf('\n');
- if (-1 == i) i = this.input.length;
- var str = this.input.substr(0, i);
- this.consume(str.length);
- return this.tok('text', str);
- }
- },
-
- /**
- * ':'
- */
-
- colon: function() {
- return this.scan(/^: */, ':');
- },
-
- /**
- * Return the next token object, or those
- * previously stashed by lookahead.
- *
- * @return {Object}
- * @api private
- */
-
- advance: function(){
- return this.stashed()
- || this.next();
- },
-
- /**
- * Return the next token object.
- *
- * @return {Object}
- * @api private
- */
-
- next: function() {
- return this.deferred()
- || this.blank()
- || this.eos()
- || this.pipelessText()
- || this.yield()
- || this.doctype()
- || this.interpolation()
- || this["case"]()
- || this.when()
- || this["default"]()
- || this["extends"]()
- || this.append()
- || this.prepend()
- || this.block()
- || this.include()
- || this.mixin()
- || this.call()
- || this.conditional()
- || this.each()
- || this["while"]()
- || this.assignment()
- || this.tag()
- || this.filter()
- || this.code()
- || this.id()
- || this.className()
- || this.attrs()
- || this.indent()
- || this.comment()
- || this.colon()
- || this.text();
- }
-};
-
-}); // module: lexer.js
-
-require.register("nodes/attrs.js", function(module, exports, require){
-
-/*!
- * Jade - nodes - Attrs
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node'),
- Block = require('./block');
-
-/**
- * Initialize a `Attrs` node.
- *
- * @api public
- */
-
-var Attrs = module.exports = function Attrs() {
- this.attrs = [];
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Attrs.prototype = new Node;
-Attrs.prototype.constructor = Attrs;
-
-
-/**
- * Set attribute `name` to `val`, keep in mind these become
- * part of a raw js object literal, so to quote a value you must
- * '"quote me"', otherwise or example 'user.name' is literal JavaScript.
- *
- * @param {String} name
- * @param {String} val
- * @param {Boolean} escaped
- * @return {Tag} for chaining
- * @api public
- */
-
-Attrs.prototype.setAttribute = function(name, val, escaped){
- this.attrs.push({ name: name, val: val, escaped: escaped });
- return this;
-};
-
-/**
- * Remove attribute `name` when present.
- *
- * @param {String} name
- * @api public
- */
-
-Attrs.prototype.removeAttribute = function(name){
- for (var i = 0, len = this.attrs.length; i < len; ++i) {
- if (this.attrs[i] && this.attrs[i].name == name) {
- delete this.attrs[i];
- }
- }
-};
-
-/**
- * Get attribute value by `name`.
- *
- * @param {String} name
- * @return {String}
- * @api public
- */
-
-Attrs.prototype.getAttribute = function(name){
- for (var i = 0, len = this.attrs.length; i < len; ++i) {
- if (this.attrs[i] && this.attrs[i].name == name) {
- return this.attrs[i].val;
- }
- }
-};
-
-}); // module: nodes/attrs.js
-
-require.register("nodes/block-comment.js", function(module, exports, require){
-
-/*!
- * Jade - nodes - BlockComment
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node');
-
-/**
- * Initialize a `BlockComment` with the given `block`.
- *
- * @param {String} val
- * @param {Block} block
- * @param {Boolean} buffer
- * @api public
- */
-
-var BlockComment = module.exports = function BlockComment(val, block, buffer) {
- this.block = block;
- this.val = val;
- this.buffer = buffer;
-};
-
-/**
- * Inherit from `Node`.
- */
-
-BlockComment.prototype = new Node;
-BlockComment.prototype.constructor = BlockComment;
-
-}); // module: nodes/block-comment.js
-
-require.register("nodes/block.js", function(module, exports, require){
-
-/*!
- * Jade - nodes - Block
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node');
-
-/**
- * Initialize a new `Block` with an optional `node`.
- *
- * @param {Node} node
- * @api public
- */
-
-var Block = module.exports = function Block(node){
- this.nodes = [];
- if (node) this.push(node);
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Block.prototype = new Node;
-Block.prototype.constructor = Block;
-
-
-/**
- * Block flag.
- */
-
-Block.prototype.isBlock = true;
-
-/**
- * Replace the nodes in `other` with the nodes
- * in `this` block.
- *
- * @param {Block} other
- * @api private
- */
-
-Block.prototype.replace = function(other){
- other.nodes = this.nodes;
-};
-
-/**
- * Pust the given `node`.
- *
- * @param {Node} node
- * @return {Number}
- * @api public
- */
-
-Block.prototype.push = function(node){
- return this.nodes.push(node);
-};
-
-/**
- * Check if this block is empty.
- *
- * @return {Boolean}
- * @api public
- */
-
-Block.prototype.isEmpty = function(){
- return 0 == this.nodes.length;
-};
-
-/**
- * Unshift the given `node`.
- *
- * @param {Node} node
- * @return {Number}
- * @api public
- */
-
-Block.prototype.unshift = function(node){
- return this.nodes.unshift(node);
-};
-
-/**
- * Return the "last" block, or the first `yield` node.
- *
- * @return {Block}
- * @api private
- */
-
-Block.prototype.includeBlock = function(){
- var ret = this
- , node;
-
- for (var i = 0, len = this.nodes.length; i < len; ++i) {
- node = this.nodes[i];
- if (node.yield) return node;
- else if (node.textOnly) continue;
- else if (node.includeBlock) ret = node.includeBlock();
- else if (node.block && !node.block.isEmpty()) ret = node.block.includeBlock();
- }
-
- return ret;
-};
-
-/**
- * Return a clone of this block.
- *
- * @return {Block}
- * @api private
- */
-
-Block.prototype.clone = function(){
- var clone = new Block;
- for (var i = 0, len = this.nodes.length; i < len; ++i) {
- clone.push(this.nodes[i].clone());
- }
- return clone;
-};
-
-
-}); // module: nodes/block.js
-
-require.register("nodes/case.js", function(module, exports, require){
-
-/*!
- * Jade - nodes - Case
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node');
-
-/**
- * Initialize a new `Case` with `expr`.
- *
- * @param {String} expr
- * @api public
- */
-
-var Case = exports = module.exports = function Case(expr, block){
- this.expr = expr;
- this.block = block;
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Case.prototype = new Node;
-Case.prototype.constructor = Case;
-
-
-var When = exports.When = function When(expr, block){
- this.expr = expr;
- this.block = block;
- this.debug = false;
-};
-
-/**
- * Inherit from `Node`.
- */
-
-When.prototype = new Node;
-When.prototype.constructor = When;
-
-
-
-}); // module: nodes/case.js
-
-require.register("nodes/code.js", function(module, exports, require){
-
-/*!
- * Jade - nodes - Code
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node');
-
-/**
- * Initialize a `Code` node with the given code `val`.
- * Code may also be optionally buffered and escaped.
- *
- * @param {String} val
- * @param {Boolean} buffer
- * @param {Boolean} escape
- * @api public
- */
-
-var Code = module.exports = function Code(val, buffer, escape) {
- this.val = val;
- this.buffer = buffer;
- this.escape = escape;
- if (val.match(/^ *else/)) this.debug = false;
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Code.prototype = new Node;
-Code.prototype.constructor = Code;
-
-}); // module: nodes/code.js
-
-require.register("nodes/comment.js", function(module, exports, require){
-
-/*!
- * Jade - nodes - Comment
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node');
-
-/**
- * Initialize a `Comment` with the given `val`, optionally `buffer`,
- * otherwise the comment may render in the output.
- *
- * @param {String} val
- * @param {Boolean} buffer
- * @api public
- */
-
-var Comment = module.exports = function Comment(val, buffer) {
- this.val = val;
- this.buffer = buffer;
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Comment.prototype = new Node;
-Comment.prototype.constructor = Comment;
-
-}); // module: nodes/comment.js
-
-require.register("nodes/doctype.js", function(module, exports, require){
-
-/*!
- * Jade - nodes - Doctype
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node');
-
-/**
- * Initialize a `Doctype` with the given `val`.
- *
- * @param {String} val
- * @api public
- */
-
-var Doctype = module.exports = function Doctype(val) {
- this.val = val;
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Doctype.prototype = new Node;
-Doctype.prototype.constructor = Doctype;
-
-}); // module: nodes/doctype.js
-
-require.register("nodes/each.js", function(module, exports, require){
-
-/*!
- * Jade - nodes - Each
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node');
-
-/**
- * Initialize an `Each` node, representing iteration
- *
- * @param {String} obj
- * @param {String} val
- * @param {String} key
- * @param {Block} block
- * @api public
- */
-
-var Each = module.exports = function Each(obj, val, key, block) {
- this.obj = obj;
- this.val = val;
- this.key = key;
- this.block = block;
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Each.prototype = new Node;
-Each.prototype.constructor = Each;
-
-}); // module: nodes/each.js
-
-require.register("nodes/filter.js", function(module, exports, require){
-
-/*!
- * Jade - nodes - Filter
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node')
- , Block = require('./block');
-
-/**
- * Initialize a `Filter` node with the given
- * filter `name` and `block`.
- *
- * @param {String} name
- * @param {Block|Node} block
- * @api public
- */
-
-var Filter = module.exports = function Filter(name, block, attrs) {
- this.name = name;
- this.block = block;
- this.attrs = attrs;
- this.isASTFilter = !block.nodes.every(function(node){ return node.isText });
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Filter.prototype = new Node;
-Filter.prototype.constructor = Filter;
-
-}); // module: nodes/filter.js
-
-require.register("nodes/index.js", function(module, exports, require){
-
-/*!
- * Jade - nodes
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-exports.Node = require('./node');
-exports.Tag = require('./tag');
-exports.Code = require('./code');
-exports.Each = require('./each');
-exports.Case = require('./case');
-exports.Text = require('./text');
-exports.Block = require('./block');
-exports.Mixin = require('./mixin');
-exports.Filter = require('./filter');
-exports.Comment = require('./comment');
-exports.Literal = require('./literal');
-exports.BlockComment = require('./block-comment');
-exports.Doctype = require('./doctype');
-
-}); // module: nodes/index.js
-
-require.register("nodes/literal.js", function(module, exports, require){
-
-/*!
- * Jade - nodes - Literal
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node');
-
-/**
- * Initialize a `Literal` node with the given `str.
- *
- * @param {String} str
- * @api public
- */
-
-var Literal = module.exports = function Literal(str) {
- this.str = str
- .replace(/\\/g, "\\\\")
- .replace(/\n|\r\n/g, "\\n")
- .replace(/'/g, "\\'");
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Literal.prototype = new Node;
-Literal.prototype.constructor = Literal;
-
-
-}); // module: nodes/literal.js
-
-require.register("nodes/mixin.js", function(module, exports, require){
-
-/*!
- * Jade - nodes - Mixin
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Attrs = require('./attrs');
-
-/**
- * Initialize a new `Mixin` with `name` and `block`.
- *
- * @param {String} name
- * @param {String} args
- * @param {Block} block
- * @api public
- */
-
-var Mixin = module.exports = function Mixin(name, args, block, call){
- this.name = name;
- this.args = args;
- this.block = block;
- this.attrs = [];
- this.call = call;
-};
-
-/**
- * Inherit from `Attrs`.
- */
-
-Mixin.prototype = new Attrs;
-Mixin.prototype.constructor = Mixin;
-
-
-
-}); // module: nodes/mixin.js
-
-require.register("nodes/node.js", function(module, exports, require){
-
-/*!
- * Jade - nodes - Node
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Initialize a `Node`.
- *
- * @api public
- */
-
-var Node = module.exports = function Node(){};
-
-/**
- * Clone this node (return itself)
- *
- * @return {Node}
- * @api private
- */
-
-Node.prototype.clone = function(){
- return this;
-};
-
-}); // module: nodes/node.js
-
-require.register("nodes/tag.js", function(module, exports, require){
-
-/*!
- * Jade - nodes - Tag
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Attrs = require('./attrs'),
- Block = require('./block'),
- inlineTags = require('../inline-tags');
-
-/**
- * Initialize a `Tag` node with the given tag `name` and optional `block`.
- *
- * @param {String} name
- * @param {Block} block
- * @api public
- */
-
-var Tag = module.exports = function Tag(name, block) {
- this.name = name;
- this.attrs = [];
- this.block = block || new Block;
-};
-
-/**
- * Inherit from `Attrs`.
- */
-
-Tag.prototype = new Attrs;
-Tag.prototype.constructor = Tag;
-
-
-/**
- * Clone this tag.
- *
- * @return {Tag}
- * @api private
- */
-
-Tag.prototype.clone = function(){
- var clone = new Tag(this.name, this.block.clone());
- clone.line = this.line;
- clone.attrs = this.attrs;
- clone.textOnly = this.textOnly;
- return clone;
-};
-
-/**
- * Check if this tag is an inline tag.
- *
- * @return {Boolean}
- * @api private
- */
-
-Tag.prototype.isInline = function(){
- return ~inlineTags.indexOf(this.name);
-};
-
-/**
- * Check if this tag's contents can be inlined. Used for pretty printing.
- *
- * @return {Boolean}
- * @api private
- */
-
-Tag.prototype.canInline = function(){
- var nodes = this.block.nodes;
-
- function isInline(node){
- // Recurse if the node is a block
- if (node.isBlock) return node.nodes.every(isInline);
- return node.isText || (node.isInline && node.isInline());
- }
-
- // Empty tag
- if (!nodes.length) return true;
-
- // Text-only or inline-only tag
- if (1 == nodes.length) return isInline(nodes[0]);
-
- // Multi-line inline-only tag
- if (this.block.nodes.every(isInline)) {
- for (var i = 1, len = nodes.length; i < len; ++i) {
- if (nodes[i-1].isText && nodes[i].isText)
- return false;
- }
- return true;
- }
-
- // Mixed tag
- return false;
-};
-}); // module: nodes/tag.js
-
-require.register("nodes/text.js", function(module, exports, require){
-
-/*!
- * Jade - nodes - Text
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node');
-
-/**
- * Initialize a `Text` node with optional `line`.
- *
- * @param {String} line
- * @api public
- */
-
-var Text = module.exports = function Text(line) {
- this.val = '';
- if ('string' == typeof line) this.val = line;
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Text.prototype = new Node;
-Text.prototype.constructor = Text;
-
-
-/**
- * Flag as text.
- */
-
-Text.prototype.isText = true;
-}); // module: nodes/text.js
-
-require.register("parser.js", function(module, exports, require){
-
-/*!
- * Jade - Parser
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Lexer = require('./lexer')
- , nodes = require('./nodes');
-
-/**
- * Initialize `Parser` with the given input `str` and `filename`.
- *
- * @param {String} str
- * @param {String} filename
- * @param {Object} options
- * @api public
- */
-
-var Parser = exports = module.exports = function Parser(str, filename, options){
- this.input = str;
- this.lexer = new Lexer(str, options);
- this.filename = filename;
- this.blocks = {};
- this.mixins = {};
- this.options = options;
- this.contexts = [this];
-};
-
-/**
- * Tags that may not contain tags.
- */
-
-var textOnly = exports.textOnly = ['script', 'style'];
-
-/**
- * Parser prototype.
- */
-
-Parser.prototype = {
-
- /**
- * Push `parser` onto the context stack,
- * or pop and return a `Parser`.
- */
-
- context: function(parser){
- if (parser) {
- this.contexts.push(parser);
- } else {
- return this.contexts.pop();
- }
- },
-
- /**
- * Return the next token object.
- *
- * @return {Object}
- * @api private
- */
-
- advance: function(){
- return this.lexer.advance();
- },
-
- /**
- * Skip `n` tokens.
- *
- * @param {Number} n
- * @api private
- */
-
- skip: function(n){
- while (n--) this.advance();
- },
-
- /**
- * Single token lookahead.
- *
- * @return {Object}
- * @api private
- */
-
- peek: function() {
- return this.lookahead(1);
- },
-
- /**
- * Return lexer lineno.
- *
- * @return {Number}
- * @api private
- */
-
- line: function() {
- return this.lexer.lineno;
- },
-
- /**
- * `n` token lookahead.
- *
- * @param {Number} n
- * @return {Object}
- * @api private
- */
-
- lookahead: function(n){
- return this.lexer.lookahead(n);
- },
-
- /**
- * Parse input returning a string of js for evaluation.
- *
- * @return {String}
- * @api public
- */
-
- parse: function(){
- var block = new nodes.Block, parser;
- block.line = this.line();
-
- while ('eos' != this.peek().type) {
- if ('newline' == this.peek().type) {
- this.advance();
- } else {
- block.push(this.parseExpr());
- }
- }
-
- if (parser = this.extending) {
- this.context(parser);
- var ast = parser.parse();
- this.context();
- // hoist mixins
- for (var name in this.mixins)
- ast.unshift(this.mixins[name]);
- return ast;
- }
-
- return block;
- },
-
- /**
- * Expect the given type, or throw an exception.
- *
- * @param {String} type
- * @api private
- */
-
- expect: function(type){
- if (this.peek().type === type) {
- return this.advance();
- } else {
- throw new Error('expected "' + type + '", but got "' + this.peek().type + '"');
- }
- },
-
- /**
- * Accept the given `type`.
- *
- * @param {String} type
- * @api private
- */
-
- accept: function(type){
- if (this.peek().type === type) {
- return this.advance();
- }
- },
-
- /**
- * tag
- * | doctype
- * | mixin
- * | include
- * | filter
- * | comment
- * | text
- * | each
- * | code
- * | yield
- * | id
- * | class
- * | interpolation
- */
-
- parseExpr: function(){
- switch (this.peek().type) {
- case 'tag':
- return this.parseTag();
- case 'mixin':
- return this.parseMixin();
- case 'block':
- return this.parseBlock();
- case 'case':
- return this.parseCase();
- case 'when':
- return this.parseWhen();
- case 'default':
- return this.parseDefault();
- case 'extends':
- return this.parseExtends();
- case 'include':
- return this.parseInclude();
- case 'doctype':
- return this.parseDoctype();
- case 'filter':
- return this.parseFilter();
- case 'comment':
- return this.parseComment();
- case 'text':
- return this.parseText();
- case 'each':
- return this.parseEach();
- case 'code':
- return this.parseCode();
- case 'call':
- return this.parseCall();
- case 'interpolation':
- return this.parseInterpolation();
- case 'yield':
- this.advance();
- var block = new nodes.Block;
- block.yield = true;
- return block;
- case 'id':
- case 'class':
- var tok = this.advance();
- this.lexer.defer(this.lexer.tok('tag', 'div'));
- this.lexer.defer(tok);
- return this.parseExpr();
- default:
- throw new Error('unexpected token "' + this.peek().type + '"');
- }
- },
-
- /**
- * Text
- */
-
- parseText: function(){
- var tok = this.expect('text')
- , node = new nodes.Text(tok.val);
- node.line = this.line();
- return node;
- },
-
- /**
- * ':' expr
- * | block
- */
-
- parseBlockExpansion: function(){
- if (':' == this.peek().type) {
- this.advance();
- return new nodes.Block(this.parseExpr());
- } else {
- return this.block();
- }
- },
-
- /**
- * case
- */
-
- parseCase: function(){
- var val = this.expect('case').val
- , node = new nodes.Case(val);
- node.line = this.line();
- node.block = this.block();
- return node;
- },
-
- /**
- * when
- */
-
- parseWhen: function(){
- var val = this.expect('when').val
- return new nodes.Case.When(val, this.parseBlockExpansion());
- },
-
- /**
- * default
- */
-
- parseDefault: function(){
- this.expect('default');
- return new nodes.Case.When('default', this.parseBlockExpansion());
- },
-
- /**
- * code
- */
-
- parseCode: function(){
- var tok = this.expect('code')
- , node = new nodes.Code(tok.val, tok.buffer, tok.escape)
- , block
- , i = 1;
- node.line = this.line();
- while (this.lookahead(i) && 'newline' == this.lookahead(i).type) ++i;
- block = 'indent' == this.lookahead(i).type;
- if (block) {
- this.skip(i-1);
- node.block = this.block();
- }
- return node;
- },
-
- /**
- * comment
- */
-
- parseComment: function(){
- var tok = this.expect('comment')
- , node;
-
- if ('indent' == this.peek().type) {
- node = new nodes.BlockComment(tok.val, this.block(), tok.buffer);
- } else {
- node = new nodes.Comment(tok.val, tok.buffer);
- }
-
- node.line = this.line();
- return node;
- },
-
- /**
- * doctype
- */
-
- parseDoctype: function(){
- var tok = this.expect('doctype')
- , node = new nodes.Doctype(tok.val);
- node.line = this.line();
- return node;
- },
-
- /**
- * filter attrs? text-block
- */
-
- parseFilter: function(){
- var block
- , tok = this.expect('filter')
- , attrs = this.accept('attrs');
-
- this.lexer.pipeless = true;
- block = this.parseTextBlock();
- this.lexer.pipeless = false;
-
- var node = new nodes.Filter(tok.val, block, attrs && attrs.attrs);
- node.line = this.line();
- return node;
- },
-
- /**
- * tag ':' attrs? block
- */
-
- parseASTFilter: function(){
- var block
- , tok = this.expect('tag')
- , attrs = this.accept('attrs');
-
- this.expect(':');
- block = this.block();
-
- var node = new nodes.Filter(tok.val, block, attrs && attrs.attrs);
- node.line = this.line();
- return node;
- },
-
- /**
- * each block
- */
-
- parseEach: function(){
- var tok = this.expect('each')
- , node = new nodes.Each(tok.code, tok.val, tok.key);
- node.line = this.line();
- node.block = this.block();
- return node;
- },
-
- /**
- * 'extends' name
- */
-
- parseExtends: function(){
- var path = require('path')
- , fs = require('fs')
- , dirname = path.dirname
- , basename = path.basename
- , join = path.join;
-
- if (!this.filename)
- throw new Error('the "filename" option is required to extend templates');
-
- var path = this.expect('extends').val.trim()
- , dir = dirname(this.filename);
-
- var path = join(dir, path + '.jade')
- , str = fs.readFileSync(path, 'utf8')
- , parser = new Parser(str, path, this.options);
-
- parser.blocks = this.blocks;
- parser.contexts = this.contexts;
- this.extending = parser;
-
- // TODO: null node
- return new nodes.Literal('');
- },
-
- /**
- * 'block' name block
- */
-
- parseBlock: function(){
- var block = this.expect('block')
- , mode = block.mode
- , name = block.val.trim();
-
- block = 'indent' == this.peek().type
- ? this.block()
- : new nodes.Block(new nodes.Literal(''));
-
- var prev = this.blocks[name];
-
- if (prev) {
- switch (prev.mode) {
- case 'append':
- block.nodes = block.nodes.concat(prev.nodes);
- prev = block;
- break;
- case 'prepend':
- block.nodes = prev.nodes.concat(block.nodes);
- prev = block;
- break;
- }
- }
-
- block.mode = mode;
- return this.blocks[name] = prev || block;
- },
-
- /**
- * include block?
- */
-
- parseInclude: function(){
- var path = require('path')
- , fs = require('fs')
- , dirname = path.dirname
- , basename = path.basename
- , join = path.join;
-
- var path = this.expect('include').val.trim()
- , dir = dirname(this.filename);
-
- if (!this.filename)
- throw new Error('the "filename" option is required to use includes');
-
- // no extension
- if (!~basename(path).indexOf('.')) {
- path += '.jade';
- }
-
- // non-jade
- if ('.jade' != path.substr(-5)) {
- var path = join(dir, path)
- , str = fs.readFileSync(path, 'utf8');
- return new nodes.Literal(str);
- }
-
- var path = join(dir, path)
- , str = fs.readFileSync(path, 'utf8')
- , parser = new Parser(str, path, this.options);
- parser.blocks = this.blocks;
- parser.mixins = this.mixins;
-
- this.context(parser);
- var ast = parser.parse();
- this.context();
- ast.filename = path;
-
- if ('indent' == this.peek().type) {
- ast.includeBlock().push(this.block());
- }
-
- return ast;
- },
-
- /**
- * call ident block
- */
-
- parseCall: function(){
- var tok = this.expect('call')
- , name = tok.val
- , args = tok.args
- , mixin = new nodes.Mixin(name, args, new nodes.Block, true);
-
- this.tag(mixin);
- if (mixin.block.isEmpty()) mixin.block = null;
- return mixin;
- },
-
- /**
- * mixin block
- */
-
- parseMixin: function(){
- var tok = this.expect('mixin')
- , name = tok.val
- , args = tok.args
- , mixin;
-
- // definition
- if ('indent' == this.peek().type) {
- mixin = new nodes.Mixin(name, args, this.block(), false);
- this.mixins[name] = mixin;
- return mixin;
- // call
- } else {
- return new nodes.Mixin(name, args, null, true);
- }
- },
-
- /**
- * indent (text | newline)* outdent
- */
-
- parseTextBlock: function(){
- var block = new nodes.Block;
- block.line = this.line();
- var spaces = this.expect('indent').val;
- if (null == this._spaces) this._spaces = spaces;
- var indent = Array(spaces - this._spaces + 1).join(' ');
- while ('outdent' != this.peek().type) {
- switch (this.peek().type) {
- case 'newline':
- this.advance();
- break;
- case 'indent':
- this.parseTextBlock().nodes.forEach(function(node){
- block.push(node);
- });
- break;
- default:
- var text = new nodes.Text(indent + this.advance().val);
- text.line = this.line();
- block.push(text);
- }
- }
-
- if (spaces == this._spaces) this._spaces = null;
- this.expect('outdent');
- return block;
- },
-
- /**
- * indent expr* outdent
- */
-
- block: function(){
- var block = new nodes.Block;
- block.line = this.line();
- this.expect('indent');
- while ('outdent' != this.peek().type) {
- if ('newline' == this.peek().type) {
- this.advance();
- } else {
- block.push(this.parseExpr());
- }
- }
- this.expect('outdent');
- return block;
- },
-
- /**
- * interpolation (attrs | class | id)* (text | code | ':')? newline* block?
- */
-
- parseInterpolation: function(){
- var tok = this.advance();
- var tag = new nodes.Tag(tok.val);
- tag.buffer = true;
- return this.tag(tag);
- },
-
- /**
- * tag (attrs | class | id)* (text | code | ':')? newline* block?
- */
-
- parseTag: function(){
- // ast-filter look-ahead
- var i = 2;
- if ('attrs' == this.lookahead(i).type) ++i;
- if (':' == this.lookahead(i).type) {
- if ('indent' == this.lookahead(++i).type) {
- return this.parseASTFilter();
- }
- }
-
- var tok = this.advance()
- , tag = new nodes.Tag(tok.val);
-
- tag.selfClosing = tok.selfClosing;
-
- return this.tag(tag);
- },
-
- /**
- * Parse tag.
- */
-
- tag: function(tag){
- var dot;
-
- tag.line = this.line();
-
- // (attrs | class | id)*
- out:
- while (true) {
- switch (this.peek().type) {
- case 'id':
- case 'class':
- var tok = this.advance();
- tag.setAttribute(tok.type, "'" + tok.val + "'");
- continue;
- case 'attrs':
- var tok = this.advance()
- , obj = tok.attrs
- , escaped = tok.escaped
- , names = Object.keys(obj);
-
- if (tok.selfClosing) tag.selfClosing = true;
-
- for (var i = 0, len = names.length; i < len; ++i) {
- var name = names[i]
- , val = obj[name];
- tag.setAttribute(name, val, escaped[name]);
- }
- continue;
- default:
- break out;
- }
- }
-
- // check immediate '.'
- if ('.' == this.peek().val) {
- dot = tag.textOnly = true;
- this.advance();
- }
-
- // (text | code | ':')?
- switch (this.peek().type) {
- case 'text':
- tag.block.push(this.parseText());
- break;
- case 'code':
- tag.code = this.parseCode();
- break;
- case ':':
- this.advance();
- tag.block = new nodes.Block;
- tag.block.push(this.parseExpr());
- break;
- }
-
- // newline*
- while ('newline' == this.peek().type) this.advance();
-
- tag.textOnly = tag.textOnly || ~textOnly.indexOf(tag.name);
-
- // script special-case
- if ('script' == tag.name) {
- var type = tag.getAttribute('type');
- if (!dot && type && 'text/javascript' != type.replace(/^['"]|['"]$/g, '')) {
- tag.textOnly = false;
- }
- }
-
- // block?
- if ('indent' == this.peek().type) {
- if (tag.textOnly) {
- this.lexer.pipeless = true;
- tag.block = this.parseTextBlock();
- this.lexer.pipeless = false;
- } else {
- var block = this.block();
- if (tag.block) {
- for (var i = 0, len = block.nodes.length; i < len; ++i) {
- tag.block.push(block.nodes[i]);
- }
- } else {
- tag.block = block;
- }
- }
- }
-
- return tag;
- }
-};
-
-}); // module: parser.js
-
-require.register("runtime.js", function(module, exports, require){
-
-/*!
- * Jade - runtime
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Lame Array.isArray() polyfill for now.
- */
-
-if (!Array.isArray) {
- Array.isArray = function(arr){
- return '[object Array]' == Object.prototype.toString.call(arr);
- };
-}
-
-/**
- * Lame Object.keys() polyfill for now.
- */
-
-if (!Object.keys) {
- Object.keys = function(obj){
- var arr = [];
- for (var key in obj) {
- if (obj.hasOwnProperty(key)) {
- arr.push(key);
- }
- }
- return arr;
- }
-}
-
-/**
- * Merge two attribute objects giving precedence
- * to values in object `b`. Classes are special-cased
- * allowing for arrays and merging/joining appropriately
- * resulting in a string.
- *
- * @param {Object} a
- * @param {Object} b
- * @return {Object} a
- * @api private
- */
-
-exports.merge = function merge(a, b) {
- var ac = a['class'];
- var bc = b['class'];
-
- if (ac || bc) {
- ac = ac || [];
- bc = bc || [];
- if (!Array.isArray(ac)) ac = [ac];
- if (!Array.isArray(bc)) bc = [bc];
- ac = ac.filter(nulls);
- bc = bc.filter(nulls);
- a['class'] = ac.concat(bc).join(' ');
- }
-
- for (var key in b) {
- if (key != 'class') {
- a[key] = b[key];
- }
- }
-
- return a;
-};
-
-/**
- * Filter null `val`s.
- *
- * @param {Mixed} val
- * @return {Mixed}
- * @api private
- */
-
-function nulls(val) {
- return val != null;
-}
-
-/**
- * Render the given attributes object.
- *
- * @param {Object} obj
- * @param {Object} escaped
- * @return {String}
- * @api private
- */
-
-exports.attrs = function attrs(obj, escaped){
- var buf = []
- , terse = obj.terse;
-
- delete obj.terse;
- var keys = Object.keys(obj)
- , len = keys.length;
-
- if (len) {
- buf.push('');
- for (var i = 0; i < len; ++i) {
- var key = keys[i]
- , val = obj[key];
-
- if ('boolean' == typeof val || null == val) {
- if (val) {
- terse
- ? buf.push(key)
- : buf.push(key + '="' + key + '"');
- }
- } else if (0 == key.indexOf('data') && 'string' != typeof val) {
- buf.push(key + "='" + JSON.stringify(val) + "'");
- } else if ('class' == key && Array.isArray(val)) {
- buf.push(key + '="' + exports.escape(val.join(' ')) + '"');
- } else if (escaped && escaped[key]) {
- buf.push(key + '="' + exports.escape(val) + '"');
- } else {
- buf.push(key + '="' + val + '"');
- }
- }
- }
-
- return buf.join(' ');
-};
-
-/**
- * Escape the given string of `html`.
- *
- * @param {String} html
- * @return {String}
- * @api private
- */
-
-exports.escape = function escape(html){
- return String(html)
- .replace(/&(?!(\w+|\#\d+);)/g, '&amp;')
- .replace(/</g, '&lt;')
- .replace(/>/g, '&gt;')
- .replace(/"/g, '&quot;');
-};
-
-/**
- * Re-throw the given `err` in context to the
- * the jade in `filename` at the given `lineno`.
- *
- * @param {Error} err
- * @param {String} filename
- * @param {String} lineno
- * @api private
- */
-
-exports.rethrow = function rethrow(err, filename, lineno){
- if (!filename) throw err;
-
- var context = 3
- , str = require('fs').readFileSync(filename, 'utf8')
- , lines = str.split('\n')
- , start = Math.max(lineno - context, 0)
- , end = Math.min(lines.length, lineno + context);
-
- // Error context
- var context = lines.slice(start, end).map(function(line, i){
- var curr = i + start + 1;
- return (curr == lineno ? ' > ' : ' ')
- + curr
- + '| '
- + line;
- }).join('\n');
-
- // Alter exception message
- err.path = filename;
- err.message = (filename || 'Jade') + ':' + lineno
- + '\n' + context + '\n\n' + err.message;
- throw err;
-};
-
-}); // module: runtime.js
-
-require.register("self-closing.js", function(module, exports, require){
-
-/*!
- * Jade - self closing tags
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-module.exports = [
- 'meta'
- , 'img'
- , 'link'
- , 'input'
- , 'source'
- , 'area'
- , 'base'
- , 'col'
- , 'br'
- , 'hr'
-];
-}); // module: self-closing.js
-
-require.register("utils.js", function(module, exports, require){
-
-/*!
- * Jade - utils
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Convert interpolation in the given string to JavaScript.
- *
- * @param {String} str
- * @return {String}
- * @api private
- */
-
-var interpolate = exports.interpolate = function(str){
- return str.replace(/(\\)?([#!]){(.*?)}/g, function(str, escape, flag, code){
- return escape
- ? str
- : "' + "
- + ('!' == flag ? '' : 'escape')
- + "((interp = " + code.replace(/\\'/g, "'")
- + ") == null ? '' : interp) + '";
- });
-};
-
-/**
- * Escape single quotes in `str`.
- *
- * @param {String} str
- * @return {String}
- * @api private
- */
-
-var escape = exports.escape = function(str) {
- return str.replace(/'/g, "\\'");
-};
-
-/**
- * Interpolate, and escape the given `str`.
- *
- * @param {String} str
- * @return {String}
- * @api private
- */
-
-exports.text = function(str){
- return interpolate(escape(str));
-};
-}); // module: utils.js
-
-window.jade = require("jade");
-})();
diff --git a/node_modules/jade/jade.md b/node_modules/jade/jade.md
deleted file mode 100644
index 051dc0311..000000000
--- a/node_modules/jade/jade.md
+++ /dev/null
@@ -1,510 +0,0 @@
-
-# Jade
-
- The jade template engine for node.js
-
-## Synopsis
-
- jade [-h|--help] [-v|--version] [-o|--obj STR]
- [-O|--out DIR] [-p|--path PATH] [-P|--pretty]
- [-c|--client] [-D|--no-debug]
-
-## Examples
-
- translate jade the templates dir
-
- $ jade templates
-
- create {foo,bar}.html
-
- $ jade {foo,bar}.jade
-
- jade over stdio
-
- $ jade < my.jade > my.html
-
- jade over s
-
- $ echo "h1 Jade!" | jade
-
- foo, bar dirs rendering to /tmp
-
- $ jade foo bar --out /tmp
-
- compile client-side templates without debugging
- instrumentation, making the output javascript
- very light-weight. This requires runtime.js
- in your projects.
-
- $ jade --client --no-debug < my.jade
-
-## Tags
-
- Tags are simply nested via whitespace, closing
- tags defined for you. These indents are called "blocks".
-
- ul
- li
- a Foo
- li
- a Bar
-
- You may have several tags in one "block":
-
- ul
- li
- a Foo
- a Bar
- a Baz
-
-## Self-closing Tags
-
- Some tags are flagged as self-closing by default, such
- as `meta`, `link`, and so on. To explicitly self-close
- a tag simply append the `/` character:
-
- foo/
- foo(bar='baz')/
-
- Would yield:
-
- <foo/>
- <foo bar="baz"/>
-
-## Attributes
-
- Tag attributes look similar to HTML, however
- the values are regular JavaScript, here are
- some examples:
-
- a(href='google.com') Google
- a(class='button', href='google.com') Google
-
- As mentioned the attribute values are just JavaScript,
- this means ternary operations and other JavaScript expressions
- work just fine:
-
- body(class=user.authenticated ? 'authenticated' : 'anonymous')
- a(href=user.website || 'http://google.com')
-
- Multiple lines work too:
-
- input(type='checkbox',
- name='agreement',
- checked)
-
- Multiple lines without the comma work fine:
-
- input(type='checkbox'
- name='agreement'
- checked)
-
- Funky whitespace? fine:
-
- input(
- type='checkbox'
- name='agreement'
- checked)
-
-## Boolean attributes
-
- Boolean attributes are mirrored by Jade, and accept
- bools, aka _true_ or _false_. When no value is specified
- _true_ is assumed. For example:
-
- input(type="checkbox", checked)
- // => "<input type="checkbox" checked="checked" />"
-
- For example if the checkbox was for an agreement, perhaps `user.agreed`
- was _true_ the following would also output 'checked="checked"':
-
- input(type="checkbox", checked=user.agreed)
-
-## Class attributes
-
- The _class_ attribute accepts an array of classes,
- this can be handy when generated from a javascript
- function etc:
-
- classes = ['foo', 'bar', 'baz']
- a(class=classes)
- // => "<a class="foo bar baz"></a>"
-
-## Class literal
-
- Classes may be defined using a ".CLASSNAME" syntax:
-
- .button
- // => "<div class="button"></div>"
-
- Or chained:
-
- .large.button
- // => "<div class="large button"></div>"
-
- The previous defaulted to divs, however you
- may also specify the tag type:
-
- h1.title My Title
- // => "<h1 class="title">My Title</h1>"
-
-## Id literal
-
- Much like the class literal there's an id literal:
-
- #user-1
- // => "<div id="user-1"></div>"
-
- Again we may specify the tag as well:
-
- ul#menu
- li: a(href='/home') Home
- li: a(href='/store') Store
- li: a(href='/contact') Contact
-
- Finally all of these may be used in any combination,
- the following are all valid tags:
-
- a.button#contact(style: 'color: red') Contact
- a.button(style: 'color: red')#contact Contact
- a(style: 'color: red').button#contact Contact
-
-## Block expansion
-
- Jade supports the concept of "block expansion", in which
- using a trailing ":" after a tag will inject a block:
-
- ul
- li: a Foo
- li: a Bar
- li: a Baz
-
-## Text
-
- Arbitrary text may follow tags:
-
- p Welcome to my site
-
- yields:
-
- <p>Welcome to my site</p>
-
-## Pipe text
-
- Another form of text is "pipe" text. Pipes act
- as the text margin for large bodies of text.
-
- p
- | This is a large
- | body of text for
- | this tag.
- |
- | Nothing too
- | exciting.
-
- yields:
-
- <p>This is a large
- body of text for
- this tag.
-
- Nothing too
- exciting.
- </p>
-
- Using pipes we can also specify regular Jade tags
- within the text:
-
- p
- | Click to visit
- a(href='http://google.com') Google
- | if you want.
-
-## Text only tags
-
- As an alternative to pipe text you may add
- a trailing "." to indicate that the block
- contains nothing but plain-text, no tags:
-
- p.
- This is a large
- body of text for
- this tag.
-
- Nothing too
- exciting.
-
- Some tags are text-only by default, for example
- _script_, _textarea_, and _style_ tags do not
- contain nested HTML so Jade implies the trailing ".":
-
- script
- if (foo) {
- bar();
- }
-
- style
- body {
- padding: 50px;
- font: 14px Helvetica;
- }
-
-## Template script tags
-
- Sometimes it's useful to define HTML in script
- tags using Jade, typically for client-side templates.
-
- To do this simply give the _script_ tag an arbitrary
- _type_ attribute such as _text/x-template_:
-
- script(type='text/template')
- h1 Look!
- p Jade still works in here!
-
-## Interpolation
-
- Both plain-text and piped-text support interpolation,
- which comes in two forms, escapes and non-escaped. The
- following will output the _user.name_ in the paragraph
- but HTML within it will be escaped to prevent XSS attacks:
-
- p Welcome #{user.name}
-
- The following syntax is identical however it will _not_ escape
- HTML, and should only be used with strings that you trust:
-
- p Welcome !{user.name}
-
-## Inline HTML
-
- Sometimes constructing small inline snippets of HTML
- in Jade can be annoying, luckily we can add plain
- HTML as well:
-
- p Welcome <em>#{user.name}</em>
-
-## Code
-
- To buffer output with Jade simply use _=_ at the beginning
- of a line or after a tag. This method escapes any HTML
- present in the string.
-
- p= user.description
-
- To buffer output unescaped use the _!=_ variant, but again
- be careful of XSS.
-
- p!= user.description
-
- The final way to mess with JavaScript code in Jade is the unbuffered
- _-_, which can be used for conditionals, defining variables etc:
-
- - var user = { description: 'foo bar baz' }
- #user
- - if (user.description) {
- h2 Description
- p.description= user.description
- - }
-
- When compiled blocks are wrapped in anonymous functions, so the
- following is also valid, without braces:
-
- - var user = { description: 'foo bar baz' }
- #user
- - if (user.description)
- h2 Description
- p.description= user.description
-
- If you really want you could even use `.forEach()` and others:
-
- - users.forEach(function(user){
- .user
- h2= user.name
- p User #{user.name} is #{user.age} years old
- - })
-
- Taking this further Jade provides some syntax for conditionals,
- iteration, switch statements etc. Let's look at those next!
-
-## Assignment
-
- Jade's first-class assignment is simple, simply use the _=_
- operator and Jade will _var_ it for you. The following are equivalent:
-
- - var user = { name: 'tobi' }
- user = { name: 'tobi' }
-
-## Conditionals
-
- Jade's first-class conditional syntax allows for optional
- parenthesis, and you may now omit the leading _-_ otherwise
- it's identical, still just regular javascript:
-
- user = { description: 'foo bar baz' }
- #user
- if user.description
- h2 Description
- p.description= user.description
-
- Jade provides the negated version, _unless_ as well, the following
- are equivalent:
-
- - if (!(user.isAnonymous))
- p You're logged in as #{user.name}
-
- unless user.isAnonymous
- p You're logged in as #{user.name}
-
-## Iteration
-
- JavaScript's _for_ loops don't look very declarative, so Jade
- also provides its own _for_ loop construct, aliased as _each_:
-
- for user in users
- .user
- h2= user.name
- p user #{user.name} is #{user.age} year old
-
- As mentioned _each_ is identical:
-
- each user in users
- .user
- h2= user.name
-
- If necessary the index is available as well:
-
- for user, i in users
- .user(class='user-#{i}')
- h2= user.name
-
- Remember, it's just JavaScript:
-
- ul#letters
- for letter in ['a', 'b', 'c']
- li= letter
-
-## Mixins
-
- Mixins provide a way to define jade "functions" which "mix in"
- their contents when called. This is useful for abstracting
- out large fragments of Jade.
-
- The simplest possible mixin which accepts no arguments might
- look like this:
-
- mixin hello
- p Hello
-
- You use a mixin by placing `+` before the name:
-
- +hello
-
- For something a little more dynamic, mixins can take
- arguments, the mixin itself is converted to a javascript
- function internally:
-
- mixin hello(user)
- p Hello #{user}
-
- +hello('Tobi')
-
- Yields:
-
- <p>Hello Tobi</p>
-
- Mixins may optionally take blocks, when a block is passed
- its contents becomes the implicit `block` argument. For
- example here is a mixin passed a block, and also invoked
- without passing a block:
-
- mixin article(title)
- .article
- .article-wrapper
- h1= title
- if block
- block
- else
- p No content provided
-
- +article('Hello world')
-
- +article('Hello world')
- p This is my
- p Amazing article
-
- yields:
-
- <div class="article">
- <div class="article-wrapper">
- <h1>Hello world</h1>
- <p>No content provided</p>
- </div>
- </div>
-
- <div class="article">
- <div class="article-wrapper">
- <h1>Hello world</h1>
- <p>This is my</p>
- <p>Amazing article</p>
- </div>
- </div>
-
- Mixins can even take attributes, just like a tag. When
- attributes are passed they become the implicit `attributes`
- argument. Individual attributes can be accessed just like
- normal object properties:
-
- mixin centered
- .centered(class=attributes.class)
- block
-
- +centered.bold Hello world
-
- +centered.red
- p This is my
- p Amazing article
-
- yields:
-
- <div class="centered bold">Hello world</div>
- <div class="centered red">
- <p>This is my</p>
- <p>Amazing article</p>
- </div>
-
- If you use `attributes` directly, *all* passed attributes
- get used:
-
- mixin link
- a.menu(attributes)
- block
-
- +link.highlight(href='#top') Top
- +link#sec1.plain(href='#section1') Section 1
- +link#sec2.plain(href='#section2') Section 2
-
- yields:
-
- <a href="#top" class="highlight menu">Top</a>
- <a id="sec1" href="#section1" class="plain menu">Section 1</a>
- <a id="sec2" href="#section2" class="plain menu">Section 2</a>
-
- If you pass arguments, they must directly follow the mixin:
-
- mixin list(arr)
- if block
- .title
- block
- ul(attributes)
- each item in arr
- li= item
-
- +list(['foo', 'bar', 'baz'])(id='myList', class='bold')
-
- yields:
-
- <ul id="myList" class="bold">
- <li>foo</li>
- <li>bar</li>
- <li>baz</li>
- </ul>
diff --git a/node_modules/jade/jade.min.js b/node_modules/jade/jade.min.js
deleted file mode 100644
index 72e4535e0..000000000
--- a/node_modules/jade/jade.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(function(){function require(p){var path=require.resolve(p),mod=require.modules[path];if(!mod)throw new Error('failed to require "'+p+'"');return mod.exports||(mod.exports={},mod.call(mod.exports,mod,mod.exports,require.relative(path))),mod.exports}require.modules={},require.resolve=function(path){var orig=path,reg=path+".js",index=path+"/index.js";return require.modules[reg]&&reg||require.modules[index]&&index||orig},require.register=function(path,fn){require.modules[path]=fn},require.relative=function(parent){return function(p){if("."!=p.charAt(0))return require(p);var path=parent.split("/"),segs=p.split("/");path.pop();for(var i=0;i<segs.length;i++){var seg=segs[i];".."==seg?path.pop():"."!=seg&&path.push(seg)}return require(path.join("/"))}},require.register("compiler.js",function(module,exports,require){var nodes=require("./nodes"),filters=require("./filters"),doctypes=require("./doctypes"),selfClosing=require("./self-closing"),runtime=require("./runtime"),utils=require("./utils");Object.keys||(Object.keys=function(obj){var arr=[];for(var key in obj)obj.hasOwnProperty(key)&&arr.push(key);return arr}),String.prototype.trimLeft||(String.prototype.trimLeft=function(){return this.replace(/^\s+/,"")});var Compiler=module.exports=function Compiler(node,options){this.options=options=options||{},this.node=node,this.hasCompiledDoctype=!1,this.hasCompiledTag=!1,this.pp=options.pretty||!1,this.debug=!1!==options.compileDebug,this.indents=0,this.parentIndents=0,options.doctype&&this.setDoctype(options.doctype)};Compiler.prototype={compile:function(){return this.buf=["var interp;"],this.pp&&this.buf.push("var __indent = [];"),this.lastBufferedIdx=-1,this.visit(this.node),this.buf.join("\n")},setDoctype:function(name){var doctype=doctypes[(name||"default").toLowerCase()];doctype=doctype||"<!DOCTYPE "+name+">",this.doctype=doctype,this.terse="5"==name||"html"==name,this.xml=0==this.doctype.indexOf("<?xml")},buffer:function(str,esc){esc&&(str=utils.escape(str)),this.lastBufferedIdx==this.buf.length?(this.lastBuffered+=str,this.buf[this.lastBufferedIdx-1]="buf.push('"+this.lastBuffered+"');"):(this.buf.push("buf.push('"+str+"');"),this.lastBuffered=str,this.lastBufferedIdx=this.buf.length)},prettyIndent:function(offset,newline){offset=offset||0,newline=newline?"\\n":"",this.buffer(newline+Array(this.indents+offset).join(" ")),this.parentIndents&&this.buf.push("buf.push.apply(buf, __indent);")},visit:function(node){var debug=this.debug;debug&&this.buf.push("__jade.unshift({ lineno: "+node.line+", filename: "+(node.filename?JSON.stringify(node.filename):"__jade[0].filename")+" });"),!1===node.debug&&this.debug&&(this.buf.pop(),this.buf.pop()),this.visitNode(node),debug&&this.buf.push("__jade.shift();")},visitNode:function(node){var name=node.constructor.name||node.constructor.toString().match(/function ([^(\s]+)()/)[1];return this["visit"+name](node)},visitCase:function(node){var _=this.withinCase;this.withinCase=!0,this.buf.push("switch ("+node.expr+"){"),this.visit(node.block),this.buf.push("}"),this.withinCase=_},visitWhen:function(node){"default"==node.expr?this.buf.push("default:"):this.buf.push("case "+node.expr+":"),this.visit(node.block),this.buf.push(" break;")},visitLiteral:function(node){var str=node.str.replace(/\n/g,"\\\\n");this.buffer(str)},visitBlock:function(block){var len=block.nodes.length,escape=this.escape,pp=this.pp;if(this.parentIndents&&block.mode){pp&&this.buf.push("__indent.push('"+Array(this.indents+1).join(" ")+"');"),this.buf.push("block && block();"),pp&&this.buf.push("__indent.pop();");return}pp&&len>1&&!escape&&block.nodes[0].isText&&block.nodes[1].isText&&this.prettyIndent(1,!0);for(var i=0;i<len;++i)pp&&i>0&&!escape&&block.nodes[i].isText&&block.nodes[i-1].isText&&this.prettyIndent(1,!1),this.visit(block.nodes[i]),block.nodes[i+1]&&block.nodes[i].isText&&block.nodes[i+1].isText&&this.buffer("\\n")},visitDoctype:function(doctype){doctype&&(doctype.val||!this.doctype)&&this.setDoctype(doctype.val||"default"),this.doctype&&this.buffer(this.doctype),this.hasCompiledDoctype=!0},visitMixin:function(mixin){var name=mixin.name.replace(/-/g,"_")+"_mixin",args=mixin.args||"",block=mixin.block,attrs=mixin.attrs,pp=this.pp;if(mixin.call){pp&&this.buf.push("__indent.push('"+Array(this.indents+1).join(" ")+"');");if(block||attrs.length){this.buf.push(name+".call({");if(block){this.buf.push("block: function(){"),this.parentIndents++;var _indents=this.indents;this.indents=0,this.visit(mixin.block),this.indents=_indents,this.parentIndents--,attrs.length?this.buf.push("},"):this.buf.push("}")}if(attrs.length){var val=this.attrs(attrs);val.inherits?this.buf.push("attributes: merge({"+val.buf+"}, attributes), escaped: merge("+val.escaped+", escaped, true)"):this.buf.push("attributes: {"+val.buf+"}, escaped: "+val.escaped)}args?this.buf.push("}, "+args+");"):this.buf.push("});")}else this.buf.push(name+"("+args+");");pp&&this.buf.push("__indent.pop();")}else this.buf.push("var "+name+" = function("+args+"){"),this.buf.push("var block = this.block, attributes = this.attributes || {}, escaped = this.escaped || {};"),this.parentIndents++,this.visit(block),this.parentIndents--,this.buf.push("};")},visitTag:function(tag){this.indents++;var name=tag.name,pp=this.pp;tag.buffer&&(name="' + ("+name+") + '"),this.hasCompiledTag||(!this.hasCompiledDoctype&&"html"==name&&this.visitDoctype(),this.hasCompiledTag=!0),pp&&!tag.isInline()&&this.prettyIndent(0,!0),(~selfClosing.indexOf(name)||tag.selfClosing)&&!this.xml?(this.buffer("<"+name),this.visitAttributes(tag.attrs),this.terse?this.buffer(">"):this.buffer("/>")):(tag.attrs.length?(this.buffer("<"+name),tag.attrs.length&&this.visitAttributes(tag.attrs),this.buffer(">")):this.buffer("<"+name+">"),tag.code&&this.visitCode(tag.code),this.escape="pre"==tag.name,this.visit(tag.block),pp&&!tag.isInline()&&"pre"!=tag.name&&!tag.canInline()&&this.prettyIndent(0,!0),this.buffer("</"+name+">")),this.indents--},visitFilter:function(filter){var fn=filters[filter.name];if(!fn)throw filter.isASTFilter?new Error('unknown ast filter "'+filter.name+':"'):new Error('unknown filter ":'+filter.name+'"');if(filter.isASTFilter)this.buf.push(fn(filter.block,this,filter.attrs));else{var text=filter.block.nodes.map(function(node){return node.val}).join("\n");filter.attrs=filter.attrs||{},filter.attrs.filename=this.options.filename,this.buffer(utils.text(fn(text,filter.attrs)))}},visitText:function(text){text=utils.text(text.val.replace(/\\/g,"\\\\")),this.escape&&(text=escape(text)),this.buffer(text)},visitComment:function(comment){if(!comment.buffer)return;this.pp&&this.prettyIndent(1,!0),this.buffer("<!--"+utils.escape(comment.val)+"-->")},visitBlockComment:function(comment){if(!comment.buffer)return;0==comment.val.trim().indexOf("if")?(this.buffer("<!--["+comment.val.trim()+"]>"),this.visit(comment.block),this.buffer("<![endif]-->")):(this.buffer("<!--"+comment.val),this.visit(comment.block),this.buffer("-->"))},visitCode:function(code){if(code.buffer){var val=code.val.trimLeft();this.buf.push("var __val__ = "+val),val='null == __val__ ? "" : __val__',code.escape&&(val="escape("+val+")"),this.buf.push("buf.push("+val+");")}else this.buf.push(code.val);code.block&&(code.buffer||this.buf.push("{"),this.visit(code.block),code.buffer||this.buf.push("}"))},visitEach:function(each){this.buf.push("// iterate "+each.obj+"\n"+";(function(){\n"+" if ('number' == typeof "+each.obj+".length) {\n"+" for (var "+each.key+" = 0, $$l = "+each.obj+".length; "+each.key+" < $$l; "+each.key+"++) {\n"+" var "+each.val+" = "+each.obj+"["+each.key+"];\n"),this.visit(each.block),this.buf.push(" }\n } else {\n for (var "+each.key+" in "+each.obj+") {\n"+" if ("+each.obj+".hasOwnProperty("+each.key+")){"+" var "+each.val+" = "+each.obj+"["+each.key+"];\n"),this.visit(each.block),this.buf.push(" }\n"),this.buf.push(" }\n }\n}).call(this);\n")},visitAttributes:function(attrs){var val=this.attrs(attrs);val.inherits?this.buf.push("buf.push(attrs(merge({ "+val.buf+" }, attributes), merge("+val.escaped+", escaped, true)));"):val.constant?(eval("var buf={"+val.buf+"};"),this.buffer(runtime.attrs(buf,JSON.parse(val.escaped)),!0)):this.buf.push("buf.push(attrs({ "+val.buf+" }, "+val.escaped+"));")},attrs:function(attrs){var buf=[],classes=[],escaped={},constant=attrs.every(function(attr){return isConstant(attr.val)}),inherits=!1;return this.terse&&buf.push("terse: true"),attrs.forEach(function(attr){if(attr.name=="attributes")return inherits=!0;escaped[attr.name]=attr.escaped;if(attr.name=="class")classes.push("("+attr.val+")");else{var pair="'"+attr.name+"':("+attr.val+")";buf.push(pair)}}),classes.length&&(classes=classes.join(" + ' ' + "),buf.push("class: "+classes)),{buf:buf.join(", ").replace("class:",'"class":'),escaped:JSON.stringify(escaped),inherits:inherits,constant:constant}}};function isConstant(val){if(/^ *("([^"\\]*(\\.[^"\\]*)*)"|'([^'\\]*(\\.[^'\\]*)*)'|true|false|null|undefined) *$/i.test(val))return!0;if(!isNaN(Number(val)))return!0;var matches;return(matches=/^ *\[(.*)\] *$/.exec(val))?matches[1].split(",").every(isConstant):!1}function escape(html){return String(html).replace(/&(?!\w+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}}),require.register("doctypes.js",function(module,exports,require){module.exports={5:"<!DOCTYPE html>","default":"<!DOCTYPE html>",xml:'<?xml version="1.0" encoding="utf-8" ?>',transitional:'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',strict:'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',frameset:'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">',1.1:'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">',basic:'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">',mobile:'<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">'}}),require.register("filters.js",function(module,exports,require){module.exports={cdata:function(str){return"<![CDATA[\\n"+str+"\\n]]>"},sass:function(str){str=str.replace(/\\n/g,"\n");var sass=require("sass").render(str).replace(/\n/g,"\\n");return'<style type="text/css">'+sass+"</style>"},stylus:function(str,options){var ret;str=str.replace(/\\n/g,"\n");var stylus=require("stylus");return stylus(str,options).render(function(err,css){if(err)throw err;ret=css.replace(/\n/g,"\\n")}),'<style type="text/css">'+ret+"</style>"},less:function(str){var ret;return str=str.replace(/\\n/g,"\n"),require("less").render(str,function(err,css){if(err)throw err;ret='<style type="text/css">'+css.replace(/\n/g,"\\n")+"</style>"}),ret},markdown:function(str){var md;try{md=require("markdown")}catch(err){try{md=require("discount")}catch(err){try{md=require("markdown-js")}catch(err){try{md=require("marked")}catch(err){throw new Error("Cannot find markdown library, install markdown, discount, or marked.")}}}}return str=str.replace(/\\n/g,"\n"),md.parse(str).replace(/\n/g,"\\n").replace(/'/g,"&#39;")},coffeescript:function(str){str=str.replace(/\\n/g,"\n");var js=require("coffee-script").compile(str).replace(/\\/g,"\\\\").replace(/\n/g,"\\n");return'<script type="text/javascript">\\n'+js+"</script>"}}}),require.register("inline-tags.js",function(module,exports,require){module.exports=["a","abbr","acronym","b","br","code","em","font","i","img","ins","kbd","map","samp","small","span","strong","sub","sup"]}),require.register("jade.js",function(module,exports,require){var Parser=require("./parser"),Lexer=require("./lexer"),Compiler=require("./compiler"),runtime=require("./runtime");exports.version="0.26.1",exports.selfClosing=require("./self-closing"),exports.doctypes=require("./doctypes"),exports.filters=require("./filters"),exports.utils=require("./utils"),exports.Compiler=Compiler,exports.Parser=Parser,exports.Lexer=Lexer,exports.nodes=require("./nodes"),exports.runtime=runtime,exports.cache={};function parse(str,options){try{var parser=new Parser(str,options.filename,options),compiler=new(options.compiler||Compiler)(parser.parse(),options),js=compiler.compile();return options.debug&&console.error("\nCompiled Function:\n\n%s",js.replace(/^/gm," ")),"var buf = [];\n"+(options.self?"var self = locals || {};\n"+js:"with (locals || {}) {\n"+js+"\n}\n")+'return buf.join("");'}catch(err){parser=parser.context(),runtime.rethrow(err,parser.filename,parser.lexer.lineno)}}exports.compile=function(str,options){var options=options||{},client=options.client,filename=options.filename?JSON.stringify(options.filename):"undefined",fn;return options.compileDebug!==!1?fn=["var __jade = [{ lineno: 1, filename: "+filename+" }];","try {",parse(String(str),options),"} catch (err) {"," rethrow(err, __jade[0].filename, __jade[0].lineno);","}"].join("\n"):fn=parse(String(str),options),client&&(fn="attrs = attrs || jade.attrs; escape = escape || jade.escape; rethrow = rethrow || jade.rethrow; merge = merge || jade.merge;\n"+fn),fn=new Function("locals, attrs, escape, rethrow, merge",fn),client?fn:function(locals){return fn(locals,runtime.attrs,runtime.escape,runtime.rethrow,runtime.merge)}},exports.render=function(str,options,fn){"function"==typeof options&&(fn=options,options={});if(options.cache&&!options.filename)return fn(new Error('the "filename" option is required for caching'));try{var path=options.filename,tmpl=options.cache?exports.cache[path]||(exports.cache[path]=exports.compile(str,options)):exports.compile(str,options);fn(null,tmpl(options))}catch(err){fn(err)}},exports.renderFile=function(path,options,fn){var key=path+":string";"function"==typeof options&&(fn=options,options={});try{options.filename=path;var str=options.cache?exports.cache[key]||(exports.cache[key]=fs.readFileSync(path,"utf8")):fs.readFileSync(path,"utf8");exports.render(str,options,fn)}catch(err){fn(err)}},exports.__express=exports.renderFile}),require.register("lexer.js",function(module,exports,require){var Lexer=module.exports=function Lexer(str,options){options=options||{},this.input=str.replace(/\r\n|\r/g,"\n"),this.colons=options.colons,this.deferredTokens=[],this.lastIndents=0,this.lineno=1,this.stash=[],this.indentStack=[],this.indentRe=null,this.pipeless=!1};Lexer.prototype={tok:function(type,val){return{type:type,line:this.lineno,val:val}},consume:function(len){this.input=this.input.substr(len)},scan:function(regexp,type){var captures;if(captures=regexp.exec(this.input))return this.consume(captures[0].length),this.tok(type,captures[1])},defer:function(tok){this.deferredTokens.push(tok)},lookahead:function(n){var fetch=n-this.stash.length;while(fetch-->0)this.stash.push(this.next());return this.stash[--n]},indexOfDelimiters:function(start,end){var str=this.input,nstart=0,nend=0,pos=0;for(var i=0,len=str.length;i<len;++i)if(start==str.charAt(i))++nstart;else if(end==str.charAt(i)&&++nend==nstart){pos=i;break}return pos},stashed:function(){return this.stash.length&&this.stash.shift()},deferred:function(){return this.deferredTokens.length&&this.deferredTokens.shift()},eos:function(){if(this.input.length)return;return this.indentStack.length?(this.indentStack.shift(),this.tok("outdent")):this.tok("eos")},blank:function(){var captures;if(captures=/^\n *\n/.exec(this.input))return this.consume(captures[0].length-1),this.pipeless?this.tok("text",""):this.next()},comment:function(){var captures;if(captures=/^ *\/\/(-)?([^\n]*)/.exec(this.input)){this.consume(captures[0].length);var tok=this.tok("comment",captures[2]);return tok.buffer="-"!=captures[1],tok}},interpolation:function(){var captures;if(captures=/^#\{(.*?)\}/.exec(this.input))return this.consume(captures[0].length),this.tok("interpolation",captures[1])},tag:function(){var captures;if(captures=/^(\w[-:\w]*)(\/?)/.exec(this.input)){this.consume(captures[0].length);var tok,name=captures[1];if(":"==name[name.length-1]){name=name.slice(0,-1),tok=this.tok("tag",name),this.defer(this.tok(":"));while(" "==this.input[0])this.input=this.input.substr(1)}else tok=this.tok("tag",name);return tok.selfClosing=!!captures[2],tok}},filter:function(){return this.scan(/^:(\w+)/,"filter")},doctype:function(){return this.scan(/^(?:!!!|doctype) *([^\n]+)?/,"doctype")},id:function(){return this.scan(/^#([\w-]+)/,"id")},className:function(){return this.scan(/^\.([\w-]+)/,"class")},text:function(){return this.scan(/^(?:\| ?| ?)?([^\n]+)/,"text")},"extends":function(){return this.scan(/^extends? +([^\n]+)/,"extends")},prepend:function(){var captures;if(captures=/^prepend +([^\n]+)/.exec(this.input)){this.consume(captures[0].length);var mode="prepend",name=captures[1],tok=this.tok("block",name);return tok.mode=mode,tok}},append:function(){var captures;if(captures=/^append +([^\n]+)/.exec(this.input)){this.consume(captures[0].length);var mode="append",name=captures[1],tok=this.tok("block",name);return tok.mode=mode,tok}},block:function(){var captures;if(captures=/^block\b *(?:(prepend|append) +)?([^\n]*)/.exec(this.input)){this.consume(captures[0].length);var mode=captures[1]||"replace",name=captures[2],tok=this.tok("block",name);return tok.mode=mode,tok}},yield:function(){return this.scan(/^yield */,"yield")},include:function(){return this.scan(/^include +([^\n]+)/,"include")},"case":function(){return this.scan(/^case +([^\n]+)/,"case")},when:function(){return this.scan(/^when +([^:\n]+)/,"when")},"default":function(){return this.scan(/^default */,"default")},assignment:function(){var captures;if(captures=/^(\w+) += *([^;\n]+)( *;? *)/.exec(this.input)){this.consume(captures[0].length);var name=captures[1],val=captures[2];return this.tok("code","var "+name+" = ("+val+");")}},call:function(){var captures;if(captures=/^\+([-\w]+)/.exec(this.input)){this.consume(captures[0].length);var tok=this.tok("call",captures[1]);if(captures=/^ *\((.*?)\)/.exec(this.input))/^ *[-\w]+ *=/.test(captures[1])||(this.consume(captures[0].length),tok.args=captures[1]);return tok}},mixin:function(){var captures;if(captures=/^mixin +([-\w]+)(?: *\((.*)\))?/.exec(this.input)){this.consume(captures[0].length);var tok=this.tok("mixin",captures[1]);return tok.args=captures[2],tok}},conditional:function(){var captures;if(captures=/^(if|unless|else if|else)\b([^\n]*)/.exec(this.input)){this.consume(captures[0].length);var type=captures[1],js=captures[2];switch(type){case"if":js="if ("+js+")";break;case"unless":js="if (!("+js+"))";break;case"else if":js="else if ("+js+")";break;case"else":js="else"}return this.tok("code",js)}},"while":function(){var captures;if(captures=/^while +([^\n]+)/.exec(this.input))return this.consume(captures[0].length),this.tok("code","while ("+captures[1]+")")},each:function(){var captures;if(captures=/^(?:- *)?(?:each|for) +(\w+)(?: *, *(\w+))? * in *([^\n]+)/.exec(this.input)){this.consume(captures[0].length);var tok=this.tok("each",captures[1]);return tok.key=captures[2]||"$index",tok.code=captures[3],tok}},code:function(){var captures;if(captures=/^(!?=|-)([^\n]+)/.exec(this.input)){this.consume(captures[0].length);var flags=captures[1];captures[1]=captures[2];var tok=this.tok("code",captures[1]);return tok.escape=flags[0]==="=",tok.buffer=flags[0]==="="||flags[1]==="=",tok}},attrs:function(){if("("==this.input.charAt(0)){var index=this.indexOfDelimiters("(",")"),str=this.input.substr(1,index-1),tok=this.tok("attrs"),len=str.length,colons=this.colons,states=["key"],escapedAttr,key="",val="",quote,c,p;function state(){return states[states.length-1]}function interpolate(attr){return attr.replace(/#\{([^}]+)\}/g,function(_,expr){return quote+" + ("+expr+") + "+quote})}this.consume(index+1),tok.attrs={},tok.escaped={};function parse(c){var real=c;colons&&":"==c&&(c="=");switch(c){case",":case"\n":switch(state()){case"expr":case"array":case"string":case"object":val+=c;break;default:states.push("key"),val=val.trim(),key=key.trim();if(""==key)return;key=key.replace(/^['"]|['"]$/g,"").replace("!",""),tok.escaped[key]=escapedAttr,tok.attrs[key]=""==val?!0:interpolate(val),key=val=""}break;case"=":switch(state()){case"key char":key+=real;break;case"val":case"expr":case"array":case"string":case"object":val+=real;break;default:escapedAttr="!"!=p,states.push("val")}break;case"(":("val"==state()||"expr"==state())&&states.push("expr"),val+=c;break;case")":("expr"==state()||"val"==state())&&states.pop(),val+=c;break;case"{":"val"==state()&&states.push("object"),val+=c;break;case"}":"object"==state()&&states.pop(),val+=c;break;case"[":"val"==state()&&states.push("array"),val+=c;break;case"]":"array"==state()&&states.pop(),val+=c;break;case'"':case"'":switch(state()){case"key":states.push("key char");break;case"key char":states.pop();break;case"string":c==quote&&states.pop(),val+=c;break;default:states.push("string"),val+=c,quote=c}break;case"":break;default:switch(state()){case"key":case"key char":key+=c;break;default:val+=c}}p=c}for(var i=0;i<len;++i)parse(str.charAt(i));return parse(","),"/"==this.input.charAt(0)&&(this.consume(1),tok.selfClosing=!0),tok}},indent:function(){var captures,re;this.indentRe?captures=this.indentRe.exec(this.input):(re=/^\n(\t*) */,captures=re.exec(this.input),captures&&!captures[1].length&&(re=/^\n( *)/,captures=re.exec(this.input)),captures&&captures[1].length&&(this.indentRe=re));if(captures){var tok,indents=captures[1].length;++this.lineno,this.consume(indents+1);if(" "==this.input[0]||"\t"==this.input[0])throw new Error("Invalid indentation, you can use tabs or spaces but not both");if("\n"==this.input[0])return this.tok("newline");if(this.indentStack.length&&indents<this.indentStack[0]){while(this.indentStack.length&&this.indentStack[0]>indents)this.stash.push(this.tok("outdent")),this.indentStack.shift();tok=this.stash.pop()}else indents&&indents!=this.indentStack[0]?(this.indentStack.unshift(indents),tok=this.tok("indent",indents)):tok=this.tok("newline");return tok}},pipelessText:function(){if(this.pipeless){if("\n"==this.input[0])return;var i=this.input.indexOf("\n");-1==i&&(i=this.input.length);var str=this.input.substr(0,i);return this.consume(str.length),this.tok("text",str)}},colon:function(){return this.scan(/^: */,":")},advance:function(){return this.stashed()||this.next()},next:function(){return this.deferred()||this.blank()||this.eos()||this.pipelessText()||this.yield()||this.doctype()||this.interpolation()||this["case"]()||this.when()||this["default"]()||this["extends"]()||this.append()||this.prepend()||this.block()||this.include()||this.mixin()||this.call()||this.conditional()||this.each()||this["while"]()||this.assignment()||this.tag()||this.filter()||this.code()||this.id()||this.className()||this.attrs()||this.indent()||this.comment()||this.colon()||this.text()}}}),require.register("nodes/attrs.js",function(module,exports,require){var Node=require("./node"),Block=require("./block"),Attrs=module.exports=function Attrs(){this.attrs=[]};Attrs.prototype=new Node,Attrs.prototype.constructor=Attrs,Attrs.prototype.setAttribute=function(name,val,escaped){return this.attrs.push({name:name,val:val,escaped:escaped}),this},Attrs.prototype.removeAttribute=function(name){for(var i=0,len=this.attrs.length;i<len;++i)this.attrs[i]&&this.attrs[i].name==name&&delete this.attrs[i]},Attrs.prototype.getAttribute=function(name){for(var i=0,len=this.attrs.length;i<len;++i)if(this.attrs[i]&&this.attrs[i].name==name)return this.attrs[i].val}}),require.register("nodes/block-comment.js",function(module,exports,require){var Node=require("./node"),BlockComment=module.exports=function BlockComment(val,block,buffer){this.block=block,this.val=val,this.buffer=buffer};BlockComment.prototype=new Node,BlockComment.prototype.constructor=BlockComment}),require.register("nodes/block.js",function(module,exports,require){var Node=require("./node"),Block=module.exports=function Block(node){this.nodes=[],node&&this.push(node)};Block.prototype=new Node,Block.prototype.constructor=Block,Block.prototype.isBlock=!0,Block.prototype.replace=function(other){other.nodes=this.nodes},Block.prototype.push=function(node){return this.nodes.push(node)},Block.prototype.isEmpty=function(){return 0==this.nodes.length},Block.prototype.unshift=function(node){return this.nodes.unshift(node)},Block.prototype.includeBlock=function(){var ret=this,node;for(var i=0,len=this.nodes.length;i<len;++i){node=this.nodes[i];if(node.yield)return node;if(node.textOnly)continue;node.includeBlock?ret=node.includeBlock():node.block&&!node.block.isEmpty()&&(ret=node.block.includeBlock())}return ret},Block.prototype.clone=function(){var clone=new Block;for(var i=0,len=this.nodes.length;i<len;++i)clone.push(this.nodes[i].clone());return clone}}),require.register("nodes/case.js",function(module,exports,require){var Node=require("./node"),Case=exports=module.exports=function Case(expr,block){this.expr=expr,this.block=block};Case.prototype=new Node,Case.prototype.constructor=Case;var When=exports.When=function When(expr,block){this.expr=expr,this.block=block,this.debug=!1};When.prototype=new Node,When.prototype.constructor=When}),require.register("nodes/code.js",function(module,exports,require){var Node=require("./node"),Code=module.exports=function Code(val,buffer,escape){this.val=val,this.buffer=buffer,this.escape=escape,val.match(/^ *else/)&&(this.debug=!1)};Code.prototype=new Node,Code.prototype.constructor=Code}),require.register("nodes/comment.js",function(module,exports,require){var Node=require("./node"),Comment=module.exports=function Comment(val,buffer){this.val=val,this.buffer=buffer};Comment.prototype=new Node,Comment.prototype.constructor=Comment}),require.register("nodes/doctype.js",function(module,exports,require){var Node=require("./node"),Doctype=module.exports=function Doctype(val){this.val=val};Doctype.prototype=new Node,Doctype.prototype.constructor=Doctype}),require.register("nodes/each.js",function(module,exports,require){var Node=require("./node"),Each=module.exports=function Each(obj,val,key,block){this.obj=obj,this.val=val,this.key=key,this.block=block};Each.prototype=new Node,Each.prototype.constructor=Each}),require.register("nodes/filter.js",function(module,exports,require){var Node=require("./node"),Block=require("./block"),Filter=module.exports=function Filter(name,block,attrs){this.name=name,this.block=block,this.attrs=attrs,this.isASTFilter=!block.nodes.every(function(node){return node.isText})};Filter.prototype=new Node,Filter.prototype.constructor=Filter}),require.register("nodes/index.js",function(module,exports,require){exports.Node=require("./node"),exports.Tag=require("./tag"),exports.Code=require("./code"),exports.Each=require("./each"),exports.Case=require("./case"),exports.Text=require("./text"),exports.Block=require("./block"),exports.Mixin=require("./mixin"),exports.Filter=require("./filter"),exports.Comment=require("./comment"),exports.Literal=require("./literal"),exports.BlockComment=require("./block-comment"),exports.Doctype=require("./doctype")}),require.register("nodes/literal.js",function(module,exports,require){var Node=require("./node"),Literal=module.exports=function Literal(str){this.str=str.replace(/\\/g,"\\\\").replace(/\n|\r\n/g,"\\n").replace(/'/g,"\\'")};Literal.prototype=new Node,Literal.prototype.constructor=Literal}),require.register("nodes/mixin.js",function(module,exports,require){var Attrs=require("./attrs"),Mixin=module.exports=function Mixin(name,args,block,call){this.name=name,this.args=args,this.block=block,this.attrs=[],this.call=call};Mixin.prototype=new Attrs,Mixin.prototype.constructor=Mixin}),require.register("nodes/node.js",function(module,exports,require){var Node=module.exports=function Node(){};Node.prototype.clone=function(){return this}}),require.register("nodes/tag.js",function(module,exports,require){var Attrs=require("./attrs"),Block=require("./block"),inlineTags=require("../inline-tags"),Tag=module.exports=function Tag(name,block){this.name=name,this.attrs=[],this.block=block||new Block};Tag.prototype=new Attrs,Tag.prototype.constructor=Tag,Tag.prototype.clone=function(){var clone=new Tag(this.name,this.block.clone());return clone.line=this.line,clone.attrs=this.attrs,clone.textOnly=this.textOnly,clone},Tag.prototype.isInline=function(){return~inlineTags.indexOf(this.name)},Tag.prototype.canInline=function(){var nodes=this.block.nodes;function isInline(node){return node.isBlock?node.nodes.every(isInline):node.isText||node.isInline&&node.isInline()}if(!nodes.length)return!0;if(1==nodes.length)return isInline(nodes[0]);if(this.block.nodes.every(isInline)){for(var i=1,len=nodes.length;i<len;++i)if(nodes[i-1].isText&&nodes[i].isText)return!1;return!0}return!1}}),require.register("nodes/text.js",function(module,exports,require){var Node=require("./node"),Text=module.exports=function Text(line){this.val="","string"==typeof line&&(this.val=line)};Text.prototype=new Node,Text.prototype.constructor=Text,Text.prototype.isText=!0}),require.register("parser.js",function(module,exports,require){var Lexer=require("./lexer"),nodes=require("./nodes"),Parser=exports=module.exports=function Parser(str,filename,options){this.input=str,this.lexer=new Lexer(str,options),this.filename=filename,this.blocks={},this.mixins={},this.options=options,this.contexts=[this]},textOnly=exports.textOnly=["script","style"];Parser.prototype={context:function(parser){if(!parser)return this.contexts.pop();this.contexts.push(parser)},advance:function(){return this.lexer.advance()},skip:function(n){while(n--)this.advance()},peek:function(){return this.lookahead(1)},line:function(){return this.lexer.lineno},lookahead:function(n){return this.lexer.lookahead(n)},parse:function(){var block=new nodes.Block,parser;block.line=this.line();while("eos"!=this.peek().type)"newline"==this.peek().type?this.advance():block.push(this.parseExpr());if(parser=this.extending){this.context(parser);var ast=parser.parse();this.context();for(var name in this.mixins)ast.unshift(this.mixins[name]);return ast}return block},expect:function(type){if(this.peek().type===type)return this.advance();throw new Error('expected "'+type+'", but got "'+this.peek().type+'"')},accept:function(type){if(this.peek().type===type)return this.advance()},parseExpr:function(){switch(this.peek().type){case"tag":return this.parseTag();case"mixin":return this.parseMixin();case"block":return this.parseBlock();case"case":return this.parseCase();case"when":return this.parseWhen();case"default":return this.parseDefault();case"extends":return this.parseExtends();case"include":return this.parseInclude();case"doctype":return this.parseDoctype();case"filter":return this.parseFilter();case"comment":return this.parseComment();case"text":return this.parseText();case"each":return this.parseEach();case"code":return this.parseCode();case"call":return this.parseCall();case"interpolation":return this.parseInterpolation();case"yield":this.advance();var block=new nodes.Block;return block.yield=!0,block;case"id":case"class":var tok=this.advance();return this.lexer.defer(this.lexer.tok("tag","div")),this.lexer.defer(tok),this.parseExpr();default:throw new Error('unexpected token "'+this.peek().type+'"')}},parseText:function(){var tok=this.expect("text"),node=new nodes.Text(tok.val);return node.line=this.line(),node},parseBlockExpansion:function(){return":"==this.peek().type?(this.advance(),new nodes.Block(this.parseExpr())):this.block()},parseCase:function(){var val=this.expect("case").val,node=new nodes.Case(val);return node.line=this.line(),node.block=this.block(),node},parseWhen:function(){var val=this.expect("when").val;return new nodes.Case.When(val,this.parseBlockExpansion())},parseDefault:function(){return this.expect("default"),new nodes.Case.When("default",this.parseBlockExpansion())},parseCode:function(){var tok=this.expect("code"),node=new nodes.Code(tok.val,tok.buffer,tok.escape),block,i=1;node.line=this.line();while(this.lookahead(i)&&"newline"==this.lookahead(i).type)++i;return block="indent"==this.lookahead(i).type,block&&(this.skip(i-1),node.block=this.block()),node},parseComment:function(){var tok=this.expect("comment"),node;return"indent"==this.peek().type?node=new nodes.BlockComment(tok.val,this.block(),tok.buffer):node=new nodes.Comment(tok.val,tok.buffer),node.line=this.line(),node},parseDoctype:function(){var tok=this.expect("doctype"),node=new nodes.Doctype(tok.val);return node.line=this.line(),node},parseFilter:function(){var block,tok=this.expect("filter"),attrs=this.accept("attrs");this.lexer.pipeless=!0,block=this.parseTextBlock(),this.lexer.pipeless=!1;var node=new nodes.Filter(tok.val,block,attrs&&attrs.attrs);return node
-.line=this.line(),node},parseASTFilter:function(){var block,tok=this.expect("tag"),attrs=this.accept("attrs");this.expect(":"),block=this.block();var node=new nodes.Filter(tok.val,block,attrs&&attrs.attrs);return node.line=this.line(),node},parseEach:function(){var tok=this.expect("each"),node=new nodes.Each(tok.code,tok.val,tok.key);return node.line=this.line(),node.block=this.block(),node},parseExtends:function(){var path=require("path"),fs=require("fs"),dirname=path.dirname,basename=path.basename,join=path.join;if(!this.filename)throw new Error('the "filename" option is required to extend templates');var path=this.expect("extends").val.trim(),dir=dirname(this.filename),path=join(dir,path+".jade"),str=fs.readFileSync(path,"utf8"),parser=new Parser(str,path,this.options);return parser.blocks=this.blocks,parser.contexts=this.contexts,this.extending=parser,new nodes.Literal("")},parseBlock:function(){var block=this.expect("block"),mode=block.mode,name=block.val.trim();block="indent"==this.peek().type?this.block():new nodes.Block(new nodes.Literal(""));var prev=this.blocks[name];if(prev)switch(prev.mode){case"append":block.nodes=block.nodes.concat(prev.nodes),prev=block;break;case"prepend":block.nodes=prev.nodes.concat(block.nodes),prev=block}return block.mode=mode,this.blocks[name]=prev||block},parseInclude:function(){var path=require("path"),fs=require("fs"),dirname=path.dirname,basename=path.basename,join=path.join,path=this.expect("include").val.trim(),dir=dirname(this.filename);if(!this.filename)throw new Error('the "filename" option is required to use includes');~basename(path).indexOf(".")||(path+=".jade");if(".jade"!=path.substr(-5)){var path=join(dir,path),str=fs.readFileSync(path,"utf8");return new nodes.Literal(str)}var path=join(dir,path),str=fs.readFileSync(path,"utf8"),parser=new Parser(str,path,this.options);parser.blocks=this.blocks,parser.mixins=this.mixins,this.context(parser);var ast=parser.parse();return this.context(),ast.filename=path,"indent"==this.peek().type&&ast.includeBlock().push(this.block()),ast},parseCall:function(){var tok=this.expect("call"),name=tok.val,args=tok.args,mixin=new nodes.Mixin(name,args,new nodes.Block,!0);return this.tag(mixin),mixin.block.isEmpty()&&(mixin.block=null),mixin},parseMixin:function(){var tok=this.expect("mixin"),name=tok.val,args=tok.args,mixin;return"indent"==this.peek().type?(mixin=new nodes.Mixin(name,args,this.block(),!1),this.mixins[name]=mixin,mixin):new nodes.Mixin(name,args,null,!0)},parseTextBlock:function(){var block=new nodes.Block;block.line=this.line();var spaces=this.expect("indent").val;null==this._spaces&&(this._spaces=spaces);var indent=Array(spaces-this._spaces+1).join(" ");while("outdent"!=this.peek().type)switch(this.peek().type){case"newline":this.advance();break;case"indent":this.parseTextBlock().nodes.forEach(function(node){block.push(node)});break;default:var text=new nodes.Text(indent+this.advance().val);text.line=this.line(),block.push(text)}return spaces==this._spaces&&(this._spaces=null),this.expect("outdent"),block},block:function(){var block=new nodes.Block;block.line=this.line(),this.expect("indent");while("outdent"!=this.peek().type)"newline"==this.peek().type?this.advance():block.push(this.parseExpr());return this.expect("outdent"),block},parseInterpolation:function(){var tok=this.advance(),tag=new nodes.Tag(tok.val);return tag.buffer=!0,this.tag(tag)},parseTag:function(){var i=2;"attrs"==this.lookahead(i).type&&++i;if(":"==this.lookahead(i).type&&"indent"==this.lookahead(++i).type)return this.parseASTFilter();var tok=this.advance(),tag=new nodes.Tag(tok.val);return tag.selfClosing=tok.selfClosing,this.tag(tag)},tag:function(tag){var dot;tag.line=this.line();out:for(;;)switch(this.peek().type){case"id":case"class":var tok=this.advance();tag.setAttribute(tok.type,"'"+tok.val+"'");continue;case"attrs":var tok=this.advance(),obj=tok.attrs,escaped=tok.escaped,names=Object.keys(obj);tok.selfClosing&&(tag.selfClosing=!0);for(var i=0,len=names.length;i<len;++i){var name=names[i],val=obj[name];tag.setAttribute(name,val,escaped[name])}continue;default:break out}"."==this.peek().val&&(dot=tag.textOnly=!0,this.advance());switch(this.peek().type){case"text":tag.block.push(this.parseText());break;case"code":tag.code=this.parseCode();break;case":":this.advance(),tag.block=new nodes.Block,tag.block.push(this.parseExpr())}while("newline"==this.peek().type)this.advance();tag.textOnly=tag.textOnly||~textOnly.indexOf(tag.name);if("script"==tag.name){var type=tag.getAttribute("type");!dot&&type&&"text/javascript"!=type.replace(/^['"]|['"]$/g,"")&&(tag.textOnly=!1)}if("indent"==this.peek().type)if(tag.textOnly)this.lexer.pipeless=!0,tag.block=this.parseTextBlock(),this.lexer.pipeless=!1;else{var block=this.block();if(tag.block)for(var i=0,len=block.nodes.length;i<len;++i)tag.block.push(block.nodes[i]);else tag.block=block}return tag}}}),require.register("runtime.js",function(module,exports,require){Array.isArray||(Array.isArray=function(arr){return"[object Array]"==Object.prototype.toString.call(arr)}),Object.keys||(Object.keys=function(obj){var arr=[];for(var key in obj)obj.hasOwnProperty(key)&&arr.push(key);return arr}),exports.merge=function merge(a,b){var ac=a["class"],bc=b["class"];if(ac||bc)ac=ac||[],bc=bc||[],Array.isArray(ac)||(ac=[ac]),Array.isArray(bc)||(bc=[bc]),ac=ac.filter(nulls),bc=bc.filter(nulls),a["class"]=ac.concat(bc).join(" ");for(var key in b)key!="class"&&(a[key]=b[key]);return a};function nulls(val){return val!=null}exports.attrs=function attrs(obj,escaped){var buf=[],terse=obj.terse;delete obj.terse;var keys=Object.keys(obj),len=keys.length;if(len){buf.push("");for(var i=0;i<len;++i){var key=keys[i],val=obj[key];"boolean"==typeof val||null==val?val&&(terse?buf.push(key):buf.push(key+'="'+key+'"')):0==key.indexOf("data")&&"string"!=typeof val?buf.push(key+"='"+JSON.stringify(val)+"'"):"class"==key&&Array.isArray(val)?buf.push(key+'="'+exports.escape(val.join(" "))+'"'):escaped&&escaped[key]?buf.push(key+'="'+exports.escape(val)+'"'):buf.push(key+'="'+val+'"')}}return buf.join(" ")},exports.escape=function escape(html){return String(html).replace(/&(?!(\w+|\#\d+);)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")},exports.rethrow=function rethrow(err,filename,lineno){if(!filename)throw err;var context=3,str=require("fs").readFileSync(filename,"utf8"),lines=str.split("\n"),start=Math.max(lineno-context,0),end=Math.min(lines.length,lineno+context),context=lines.slice(start,end).map(function(line,i){var curr=i+start+1;return(curr==lineno?" > ":" ")+curr+"| "+line}).join("\n");throw err.path=filename,err.message=(filename||"Jade")+":"+lineno+"\n"+context+"\n\n"+err.message,err}}),require.register("self-closing.js",function(module,exports,require){module.exports=["meta","img","link","input","source","area","base","col","br","hr"]}),require.register("utils.js",function(module,exports,require){var interpolate=exports.interpolate=function(str){return str.replace(/(\\)?([#!]){(.*?)}/g,function(str,escape,flag,code){return escape?str:"' + "+("!"==flag?"":"escape")+"((interp = "+code.replace(/\\'/g,"'")+") == null ? '' : interp) + '"})},escape=exports.escape=function(str){return str.replace(/'/g,"\\'")};exports.text=function(str){return interpolate(escape(str))}}),window.jade=require("jade")})(); \ No newline at end of file
diff --git a/node_modules/jade/lib/compiler.js b/node_modules/jade/lib/compiler.js
deleted file mode 100644
index 516ac83dd..000000000
--- a/node_modules/jade/lib/compiler.js
+++ /dev/null
@@ -1,642 +0,0 @@
-
-/*!
- * Jade - Compiler
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var nodes = require('./nodes')
- , filters = require('./filters')
- , doctypes = require('./doctypes')
- , selfClosing = require('./self-closing')
- , runtime = require('./runtime')
- , utils = require('./utils');
-
-// if browser
-//
-// if (!Object.keys) {
-// Object.keys = function(obj){
-// var arr = [];
-// for (var key in obj) {
-// if (obj.hasOwnProperty(key)) {
-// arr.push(key);
-// }
-// }
-// return arr;
-// }
-// }
-//
-// if (!String.prototype.trimLeft) {
-// String.prototype.trimLeft = function(){
-// return this.replace(/^\s+/, '');
-// }
-// }
-//
-// end
-
-
-/**
- * Initialize `Compiler` with the given `node`.
- *
- * @param {Node} node
- * @param {Object} options
- * @api public
- */
-
-var Compiler = module.exports = function Compiler(node, options) {
- this.options = options = options || {};
- this.node = node;
- this.hasCompiledDoctype = false;
- this.hasCompiledTag = false;
- this.pp = options.pretty || false;
- this.debug = false !== options.compileDebug;
- this.indents = 0;
- this.parentIndents = 0;
- if (options.doctype) this.setDoctype(options.doctype);
-};
-
-/**
- * Compiler prototype.
- */
-
-Compiler.prototype = {
-
- /**
- * Compile parse tree to JavaScript.
- *
- * @api public
- */
-
- compile: function(){
- this.buf = ['var interp;'];
- if (this.pp) this.buf.push("var __indent = [];");
- this.lastBufferedIdx = -1;
- this.visit(this.node);
- return this.buf.join('\n');
- },
-
- /**
- * Sets the default doctype `name`. Sets terse mode to `true` when
- * html 5 is used, causing self-closing tags to end with ">" vs "/>",
- * and boolean attributes are not mirrored.
- *
- * @param {string} name
- * @api public
- */
-
- setDoctype: function(name){
- var doctype = doctypes[(name || 'default').toLowerCase()];
- doctype = doctype || '<!DOCTYPE ' + name + '>';
- this.doctype = doctype;
- this.terse = '5' == name || 'html' == name;
- this.xml = 0 == this.doctype.indexOf('<?xml');
- },
-
- /**
- * Buffer the given `str` optionally escaped.
- *
- * @param {String} str
- * @param {Boolean} esc
- * @api public
- */
-
- buffer: function(str, esc){
- if (esc) str = utils.escape(str);
-
- if (this.lastBufferedIdx == this.buf.length) {
- this.lastBuffered += str;
- this.buf[this.lastBufferedIdx - 1] = "buf.push('" + this.lastBuffered + "');"
- } else {
- this.buf.push("buf.push('" + str + "');");
- this.lastBuffered = str;
- this.lastBufferedIdx = this.buf.length;
- }
- },
-
- /**
- * Buffer an indent based on the current `indent`
- * property and an additional `offset`.
- *
- * @param {Number} offset
- * @param {Boolean} newline
- * @api public
- */
-
- prettyIndent: function(offset, newline){
- offset = offset || 0;
- newline = newline ? '\\n' : '';
- this.buffer(newline + Array(this.indents + offset).join(' '));
- if (this.parentIndents)
- this.buf.push("buf.push.apply(buf, __indent);");
- },
-
- /**
- * Visit `node`.
- *
- * @param {Node} node
- * @api public
- */
-
- visit: function(node){
- var debug = this.debug;
-
- if (debug) {
- this.buf.push('__jade.unshift({ lineno: ' + node.line
- + ', filename: ' + (node.filename
- ? JSON.stringify(node.filename)
- : '__jade[0].filename')
- + ' });');
- }
-
- // Massive hack to fix our context
- // stack for - else[ if] etc
- if (false === node.debug && this.debug) {
- this.buf.pop();
- this.buf.pop();
- }
-
- this.visitNode(node);
-
- if (debug) this.buf.push('__jade.shift();');
- },
-
- /**
- * Visit `node`.
- *
- * @param {Node} node
- * @api public
- */
-
- visitNode: function(node){
- var name = node.constructor.name
- || node.constructor.toString().match(/function ([^(\s]+)()/)[1];
- return this['visit' + name](node);
- },
-
- /**
- * Visit case `node`.
- *
- * @param {Literal} node
- * @api public
- */
-
- visitCase: function(node){
- var _ = this.withinCase;
- this.withinCase = true;
- this.buf.push('switch (' + node.expr + '){');
- this.visit(node.block);
- this.buf.push('}');
- this.withinCase = _;
- },
-
- /**
- * Visit when `node`.
- *
- * @param {Literal} node
- * @api public
- */
-
- visitWhen: function(node){
- if ('default' == node.expr) {
- this.buf.push('default:');
- } else {
- this.buf.push('case ' + node.expr + ':');
- }
- this.visit(node.block);
- this.buf.push(' break;');
- },
-
- /**
- * Visit literal `node`.
- *
- * @param {Literal} node
- * @api public
- */
-
- visitLiteral: function(node){
- var str = node.str.replace(/\n/g, '\\\\n');
- this.buffer(str);
- },
-
- /**
- * Visit all nodes in `block`.
- *
- * @param {Block} block
- * @api public
- */
-
- visitBlock: function(block){
- var len = block.nodes.length
- , escape = this.escape
- , pp = this.pp
-
- // Block keyword has a special meaning in mixins
- if (this.parentIndents && block.mode) {
- if (pp) this.buf.push("__indent.push('" + Array(this.indents + 1).join(' ') + "');")
- this.buf.push('block && block();');
- if (pp) this.buf.push("__indent.pop();")
- return;
- }
-
- // Pretty print multi-line text
- if (pp && len > 1 && !escape && block.nodes[0].isText && block.nodes[1].isText)
- this.prettyIndent(1, true);
-
- for (var i = 0; i < len; ++i) {
- // Pretty print text
- if (pp && i > 0 && !escape && block.nodes[i].isText && block.nodes[i-1].isText)
- this.prettyIndent(1, false);
-
- this.visit(block.nodes[i]);
- // Multiple text nodes are separated by newlines
- if (block.nodes[i+1] && block.nodes[i].isText && block.nodes[i+1].isText)
- this.buffer('\\n');
- }
- },
-
- /**
- * Visit `doctype`. Sets terse mode to `true` when html 5
- * is used, causing self-closing tags to end with ">" vs "/>",
- * and boolean attributes are not mirrored.
- *
- * @param {Doctype} doctype
- * @api public
- */
-
- visitDoctype: function(doctype){
- if (doctype && (doctype.val || !this.doctype)) {
- this.setDoctype(doctype.val || 'default');
- }
-
- if (this.doctype) this.buffer(this.doctype);
- this.hasCompiledDoctype = true;
- },
-
- /**
- * Visit `mixin`, generating a function that
- * may be called within the template.
- *
- * @param {Mixin} mixin
- * @api public
- */
-
- visitMixin: function(mixin){
- var name = mixin.name.replace(/-/g, '_') + '_mixin'
- , args = mixin.args || ''
- , block = mixin.block
- , attrs = mixin.attrs
- , pp = this.pp;
-
- if (mixin.call) {
- if (pp) this.buf.push("__indent.push('" + Array(this.indents + 1).join(' ') + "');")
- if (block || attrs.length) {
-
- this.buf.push(name + '.call({');
-
- if (block) {
- this.buf.push('block: function(){');
-
- // Render block with no indents, dynamically added when rendered
- this.parentIndents++;
- var _indents = this.indents;
- this.indents = 0;
- this.visit(mixin.block);
- this.indents = _indents;
- this.parentIndents--;
-
- if (attrs.length) {
- this.buf.push('},');
- } else {
- this.buf.push('}');
- }
- }
-
- if (attrs.length) {
- var val = this.attrs(attrs);
- if (val.inherits) {
- this.buf.push('attributes: merge({' + val.buf
- + '}, attributes), escaped: merge(' + val.escaped + ', escaped, true)');
- } else {
- this.buf.push('attributes: {' + val.buf + '}, escaped: ' + val.escaped);
- }
- }
-
- if (args) {
- this.buf.push('}, ' + args + ');');
- } else {
- this.buf.push('});');
- }
-
- } else {
- this.buf.push(name + '(' + args + ');');
- }
- if (pp) this.buf.push("__indent.pop();")
- } else {
- this.buf.push('var ' + name + ' = function(' + args + '){');
- this.buf.push('var block = this.block, attributes = this.attributes || {}, escaped = this.escaped || {};');
- this.parentIndents++;
- this.visit(block);
- this.parentIndents--;
- this.buf.push('};');
- }
- },
-
- /**
- * Visit `tag` buffering tag markup, generating
- * attributes, visiting the `tag`'s code and block.
- *
- * @param {Tag} tag
- * @api public
- */
-
- visitTag: function(tag){
- this.indents++;
- var name = tag.name
- , pp = this.pp;
-
- if (tag.buffer) name = "' + (" + name + ") + '";
-
- if (!this.hasCompiledTag) {
- if (!this.hasCompiledDoctype && 'html' == name) {
- this.visitDoctype();
- }
- this.hasCompiledTag = true;
- }
-
- // pretty print
- if (pp && !tag.isInline())
- this.prettyIndent(0, true);
-
- if ((~selfClosing.indexOf(name) || tag.selfClosing) && !this.xml) {
- this.buffer('<' + name);
- this.visitAttributes(tag.attrs);
- this.terse
- ? this.buffer('>')
- : this.buffer('/>');
- } else {
- // Optimize attributes buffering
- if (tag.attrs.length) {
- this.buffer('<' + name);
- if (tag.attrs.length) this.visitAttributes(tag.attrs);
- this.buffer('>');
- } else {
- this.buffer('<' + name + '>');
- }
- if (tag.code) this.visitCode(tag.code);
- this.escape = 'pre' == tag.name;
- this.visit(tag.block);
-
- // pretty print
- if (pp && !tag.isInline() && 'pre' != tag.name && !tag.canInline())
- this.prettyIndent(0, true);
-
- this.buffer('</' + name + '>');
- }
- this.indents--;
- },
-
- /**
- * Visit `filter`, throwing when the filter does not exist.
- *
- * @param {Filter} filter
- * @api public
- */
-
- visitFilter: function(filter){
- var fn = filters[filter.name];
-
- // unknown filter
- if (!fn) {
- if (filter.isASTFilter) {
- throw new Error('unknown ast filter "' + filter.name + ':"');
- } else {
- throw new Error('unknown filter ":' + filter.name + '"');
- }
- }
-
- if (filter.isASTFilter) {
- this.buf.push(fn(filter.block, this, filter.attrs));
- } else {
- var text = filter.block.nodes.map(function(node){ return node.val }).join('\n');
- filter.attrs = filter.attrs || {};
- filter.attrs.filename = this.options.filename;
- this.buffer(utils.text(fn(text, filter.attrs)));
- }
- },
-
- /**
- * Visit `text` node.
- *
- * @param {Text} text
- * @api public
- */
-
- visitText: function(text){
- text = utils.text(text.val.replace(/\\/g, '\\\\'));
- if (this.escape) text = escape(text);
- this.buffer(text);
- },
-
- /**
- * Visit a `comment`, only buffering when the buffer flag is set.
- *
- * @param {Comment} comment
- * @api public
- */
-
- visitComment: function(comment){
- if (!comment.buffer) return;
- if (this.pp) this.prettyIndent(1, true);
- this.buffer('<!--' + utils.escape(comment.val) + '-->');
- },
-
- /**
- * Visit a `BlockComment`.
- *
- * @param {Comment} comment
- * @api public
- */
-
- visitBlockComment: function(comment){
- if (!comment.buffer) return;
- if (0 == comment.val.trim().indexOf('if')) {
- this.buffer('<!--[' + comment.val.trim() + ']>');
- this.visit(comment.block);
- this.buffer('<![endif]-->');
- } else {
- this.buffer('<!--' + comment.val);
- this.visit(comment.block);
- this.buffer('-->');
- }
- },
-
- /**
- * Visit `code`, respecting buffer / escape flags.
- * If the code is followed by a block, wrap it in
- * a self-calling function.
- *
- * @param {Code} code
- * @api public
- */
-
- visitCode: function(code){
- // Wrap code blocks with {}.
- // we only wrap unbuffered code blocks ATM
- // since they are usually flow control
-
- // Buffer code
- if (code.buffer) {
- var val = code.val.trimLeft();
- this.buf.push('var __val__ = ' + val);
- val = 'null == __val__ ? "" : __val__';
- if (code.escape) val = 'escape(' + val + ')';
- this.buf.push("buf.push(" + val + ");");
- } else {
- this.buf.push(code.val);
- }
-
- // Block support
- if (code.block) {
- if (!code.buffer) this.buf.push('{');
- this.visit(code.block);
- if (!code.buffer) this.buf.push('}');
- }
- },
-
- /**
- * Visit `each` block.
- *
- * @param {Each} each
- * @api public
- */
-
- visitEach: function(each){
- this.buf.push(''
- + '// iterate ' + each.obj + '\n'
- + ';(function(){\n'
- + ' if (\'number\' == typeof ' + each.obj + '.length) {\n'
- + ' for (var ' + each.key + ' = 0, $$l = ' + each.obj + '.length; ' + each.key + ' < $$l; ' + each.key + '++) {\n'
- + ' var ' + each.val + ' = ' + each.obj + '[' + each.key + '];\n');
-
- this.visit(each.block);
-
- this.buf.push(''
- + ' }\n'
- + ' } else {\n'
- + ' for (var ' + each.key + ' in ' + each.obj + ') {\n'
- // if browser
- // + ' if (' + each.obj + '.hasOwnProperty(' + each.key + ')){'
- // end
- + ' var ' + each.val + ' = ' + each.obj + '[' + each.key + '];\n');
-
- this.visit(each.block);
-
- // if browser
- // this.buf.push(' }\n');
- // end
-
- this.buf.push(' }\n }\n}).call(this);\n');
- },
-
- /**
- * Visit `attrs`.
- *
- * @param {Array} attrs
- * @api public
- */
-
- visitAttributes: function(attrs){
- var val = this.attrs(attrs);
- if (val.inherits) {
- this.buf.push("buf.push(attrs(merge({ " + val.buf +
- " }, attributes), merge(" + val.escaped + ", escaped, true)));");
- } else if (val.constant) {
- eval('var buf={' + val.buf + '};');
- this.buffer(runtime.attrs(buf, JSON.parse(val.escaped)), true);
- } else {
- this.buf.push("buf.push(attrs({ " + val.buf + " }, " + val.escaped + "));");
- }
- },
-
- /**
- * Compile attributes.
- */
-
- attrs: function(attrs){
- var buf = []
- , classes = []
- , escaped = {}
- , constant = attrs.every(function(attr){ return isConstant(attr.val) })
- , inherits = false;
-
- if (this.terse) buf.push('terse: true');
-
- attrs.forEach(function(attr){
- if (attr.name == 'attributes') return inherits = true;
- escaped[attr.name] = attr.escaped;
- if (attr.name == 'class') {
- classes.push('(' + attr.val + ')');
- } else {
- var pair = "'" + attr.name + "':(" + attr.val + ')';
- buf.push(pair);
- }
- });
-
- if (classes.length) {
- classes = classes.join(" + ' ' + ");
- buf.push("class: " + classes);
- }
-
- return {
- buf: buf.join(', ').replace('class:', '"class":'),
- escaped: JSON.stringify(escaped),
- inherits: inherits,
- constant: constant
- };
- }
-};
-
-/**
- * Check if expression can be evaluated to a constant
- *
- * @param {String} expression
- * @return {Boolean}
- * @api private
- */
-
-function isConstant(val){
- // Check strings/literals
- if (/^ *("([^"\\]*(\\.[^"\\]*)*)"|'([^'\\]*(\\.[^'\\]*)*)'|true|false|null|undefined) *$/i.test(val))
- return true;
-
- // Check numbers
- if (!isNaN(Number(val)))
- return true;
-
- // Check arrays
- var matches;
- if (matches = /^ *\[(.*)\] *$/.exec(val))
- return matches[1].split(',').every(isConstant);
-
- return false;
-}
-
-/**
- * Escape the given string of `html`.
- *
- * @param {String} html
- * @return {String}
- * @api private
- */
-
-function escape(html){
- return String(html)
- .replace(/&(?!\w+;)/g, '&amp;')
- .replace(/</g, '&lt;')
- .replace(/>/g, '&gt;')
- .replace(/"/g, '&quot;');
-} \ No newline at end of file
diff --git a/node_modules/jade/lib/doctypes.js b/node_modules/jade/lib/doctypes.js
deleted file mode 100644
index e87ca1e4c..000000000
--- a/node_modules/jade/lib/doctypes.js
+++ /dev/null
@@ -1,18 +0,0 @@
-
-/*!
- * Jade - doctypes
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-module.exports = {
- '5': '<!DOCTYPE html>'
- , 'default': '<!DOCTYPE html>'
- , 'xml': '<?xml version="1.0" encoding="utf-8" ?>'
- , 'transitional': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
- , 'strict': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'
- , 'frameset': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">'
- , '1.1': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">'
- , 'basic': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">'
- , 'mobile': '<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">'
-}; \ No newline at end of file
diff --git a/node_modules/jade/lib/filters.js b/node_modules/jade/lib/filters.js
deleted file mode 100644
index fdb634cb7..000000000
--- a/node_modules/jade/lib/filters.js
+++ /dev/null
@@ -1,97 +0,0 @@
-
-/*!
- * Jade - filters
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-module.exports = {
-
- /**
- * Wrap text with CDATA block.
- */
-
- cdata: function(str){
- return '<![CDATA[\\n' + str + '\\n]]>';
- },
-
- /**
- * Transform sass to css, wrapped in style tags.
- */
-
- sass: function(str){
- str = str.replace(/\\n/g, '\n');
- var sass = require('sass').render(str).replace(/\n/g, '\\n');
- return '<style type="text/css">' + sass + '</style>';
- },
-
- /**
- * Transform stylus to css, wrapped in style tags.
- */
-
- stylus: function(str, options){
- var ret;
- str = str.replace(/\\n/g, '\n');
- var stylus = require('stylus');
- stylus(str, options).render(function(err, css){
- if (err) throw err;
- ret = css.replace(/\n/g, '\\n');
- });
- return '<style type="text/css">' + ret + '</style>';
- },
-
- /**
- * Transform less to css, wrapped in style tags.
- */
-
- less: function(str){
- var ret;
- str = str.replace(/\\n/g, '\n');
- require('less').render(str, function(err, css){
- if (err) throw err;
- ret = '<style type="text/css">' + css.replace(/\n/g, '\\n') + '</style>';
- });
- return ret;
- },
-
- /**
- * Transform markdown to html.
- */
-
- markdown: function(str){
- var md;
-
- // support markdown / discount
- try {
- md = require('markdown');
- } catch (err){
- try {
- md = require('discount');
- } catch (err) {
- try {
- md = require('markdown-js');
- } catch (err) {
- try {
- md = require('marked');
- } catch (err) {
- throw new
- Error('Cannot find markdown library, install markdown, discount, or marked.');
- }
- }
- }
- }
-
- str = str.replace(/\\n/g, '\n');
- return md.parse(str).replace(/\n/g, '\\n').replace(/'/g,'&#39;');
- },
-
- /**
- * Transform coffeescript to javascript.
- */
-
- coffeescript: function(str){
- str = str.replace(/\\n/g, '\n');
- var js = require('coffee-script').compile(str).replace(/\\/g, '\\\\').replace(/\n/g, '\\n');
- return '<script type="text/javascript">\\n' + js + '</script>';
- }
-};
diff --git a/node_modules/jade/lib/inline-tags.js b/node_modules/jade/lib/inline-tags.js
deleted file mode 100644
index 491de0b51..000000000
--- a/node_modules/jade/lib/inline-tags.js
+++ /dev/null
@@ -1,28 +0,0 @@
-
-/*!
- * Jade - inline tags
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-module.exports = [
- 'a'
- , 'abbr'
- , 'acronym'
- , 'b'
- , 'br'
- , 'code'
- , 'em'
- , 'font'
- , 'i'
- , 'img'
- , 'ins'
- , 'kbd'
- , 'map'
- , 'samp'
- , 'small'
- , 'span'
- , 'strong'
- , 'sub'
- , 'sup'
-]; \ No newline at end of file
diff --git a/node_modules/jade/lib/jade.js b/node_modules/jade/lib/jade.js
deleted file mode 100644
index 00f0abb1d..000000000
--- a/node_modules/jade/lib/jade.js
+++ /dev/null
@@ -1,237 +0,0 @@
-/*!
- * Jade
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Parser = require('./parser')
- , Lexer = require('./lexer')
- , Compiler = require('./compiler')
- , runtime = require('./runtime')
-// if node
- , fs = require('fs');
-// end
-
-/**
- * Library version.
- */
-
-exports.version = '0.26.3';
-
-/**
- * Expose self closing tags.
- */
-
-exports.selfClosing = require('./self-closing');
-
-/**
- * Default supported doctypes.
- */
-
-exports.doctypes = require('./doctypes');
-
-/**
- * Text filters.
- */
-
-exports.filters = require('./filters');
-
-/**
- * Utilities.
- */
-
-exports.utils = require('./utils');
-
-/**
- * Expose `Compiler`.
- */
-
-exports.Compiler = Compiler;
-
-/**
- * Expose `Parser`.
- */
-
-exports.Parser = Parser;
-
-/**
- * Expose `Lexer`.
- */
-
-exports.Lexer = Lexer;
-
-/**
- * Nodes.
- */
-
-exports.nodes = require('./nodes');
-
-/**
- * Jade runtime helpers.
- */
-
-exports.runtime = runtime;
-
-/**
- * Template function cache.
- */
-
-exports.cache = {};
-
-/**
- * Parse the given `str` of jade and return a function body.
- *
- * @param {String} str
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function parse(str, options){
- try {
- // Parse
- var parser = new Parser(str, options.filename, options);
-
- // Compile
- var compiler = new (options.compiler || Compiler)(parser.parse(), options)
- , js = compiler.compile();
-
- // Debug compiler
- if (options.debug) {
- console.error('\nCompiled Function:\n\n\033[90m%s\033[0m', js.replace(/^/gm, ' '));
- }
-
- return ''
- + 'var buf = [];\n'
- + (options.self
- ? 'var self = locals || {};\n' + js
- : 'with (locals || {}) {\n' + js + '\n}\n')
- + 'return buf.join("");';
- } catch (err) {
- parser = parser.context();
- runtime.rethrow(err, parser.filename, parser.lexer.lineno);
- }
-}
-
-/**
- * Compile a `Function` representation of the given jade `str`.
- *
- * Options:
- *
- * - `compileDebug` when `false` debugging code is stripped from the compiled template
- * - `client` when `true` the helper functions `escape()` etc will reference `jade.escape()`
- * for use with the Jade client-side runtime.js
- *
- * @param {String} str
- * @param {Options} options
- * @return {Function}
- * @api public
- */
-
-exports.compile = function(str, options){
- var options = options || {}
- , client = options.client
- , filename = options.filename
- ? JSON.stringify(options.filename)
- : 'undefined'
- , fn;
-
- if (options.compileDebug !== false) {
- fn = [
- 'var __jade = [{ lineno: 1, filename: ' + filename + ' }];'
- , 'try {'
- , parse(String(str), options)
- , '} catch (err) {'
- , ' rethrow(err, __jade[0].filename, __jade[0].lineno);'
- , '}'
- ].join('\n');
- } else {
- fn = parse(String(str), options);
- }
-
- if (client) {
- fn = 'attrs = attrs || jade.attrs; escape = escape || jade.escape; rethrow = rethrow || jade.rethrow; merge = merge || jade.merge;\n' + fn;
- }
-
- fn = new Function('locals, attrs, escape, rethrow, merge', fn);
-
- if (client) return fn;
-
- return function(locals){
- return fn(locals, runtime.attrs, runtime.escape, runtime.rethrow, runtime.merge);
- };
-};
-
-/**
- * Render the given `str` of jade and invoke
- * the callback `fn(err, str)`.
- *
- * Options:
- *
- * - `cache` enable template caching
- * - `filename` filename required for `include` / `extends` and caching
- *
- * @param {String} str
- * @param {Object|Function} options or fn
- * @param {Function} fn
- * @api public
- */
-
-exports.render = function(str, options, fn){
- // swap args
- if ('function' == typeof options) {
- fn = options, options = {};
- }
-
- // cache requires .filename
- if (options.cache && !options.filename) {
- return fn(new Error('the "filename" option is required for caching'));
- }
-
- try {
- var path = options.filename;
- var tmpl = options.cache
- ? exports.cache[path] || (exports.cache[path] = exports.compile(str, options))
- : exports.compile(str, options);
- fn(null, tmpl(options));
- } catch (err) {
- fn(err);
- }
-};
-
-/**
- * Render a Jade file at the given `path` and callback `fn(err, str)`.
- *
- * @param {String} path
- * @param {Object|Function} options or callback
- * @param {Function} fn
- * @api public
- */
-
-exports.renderFile = function(path, options, fn){
- var key = path + ':string';
-
- if ('function' == typeof options) {
- fn = options, options = {};
- }
-
- try {
- options.filename = path;
- var str = options.cache
- ? exports.cache[key] || (exports.cache[key] = fs.readFileSync(path, 'utf8'))
- : fs.readFileSync(path, 'utf8');
- exports.render(str, options, fn);
- } catch (err) {
- fn(err);
- }
-};
-
-/**
- * Express support.
- */
-
-exports.__express = exports.renderFile;
diff --git a/node_modules/jade/lib/lexer.js b/node_modules/jade/lib/lexer.js
deleted file mode 100644
index bca314a9f..000000000
--- a/node_modules/jade/lib/lexer.js
+++ /dev/null
@@ -1,771 +0,0 @@
-
-/*!
- * Jade - Lexer
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Initialize `Lexer` with the given `str`.
- *
- * Options:
- *
- * - `colons` allow colons for attr delimiters
- *
- * @param {String} str
- * @param {Object} options
- * @api private
- */
-
-var Lexer = module.exports = function Lexer(str, options) {
- options = options || {};
- this.input = str.replace(/\r\n|\r/g, '\n');
- this.colons = options.colons;
- this.deferredTokens = [];
- this.lastIndents = 0;
- this.lineno = 1;
- this.stash = [];
- this.indentStack = [];
- this.indentRe = null;
- this.pipeless = false;
-};
-
-/**
- * Lexer prototype.
- */
-
-Lexer.prototype = {
-
- /**
- * Construct a token with the given `type` and `val`.
- *
- * @param {String} type
- * @param {String} val
- * @return {Object}
- * @api private
- */
-
- tok: function(type, val){
- return {
- type: type
- , line: this.lineno
- , val: val
- }
- },
-
- /**
- * Consume the given `len` of input.
- *
- * @param {Number} len
- * @api private
- */
-
- consume: function(len){
- this.input = this.input.substr(len);
- },
-
- /**
- * Scan for `type` with the given `regexp`.
- *
- * @param {String} type
- * @param {RegExp} regexp
- * @return {Object}
- * @api private
- */
-
- scan: function(regexp, type){
- var captures;
- if (captures = regexp.exec(this.input)) {
- this.consume(captures[0].length);
- return this.tok(type, captures[1]);
- }
- },
-
- /**
- * Defer the given `tok`.
- *
- * @param {Object} tok
- * @api private
- */
-
- defer: function(tok){
- this.deferredTokens.push(tok);
- },
-
- /**
- * Lookahead `n` tokens.
- *
- * @param {Number} n
- * @return {Object}
- * @api private
- */
-
- lookahead: function(n){
- var fetch = n - this.stash.length;
- while (fetch-- > 0) this.stash.push(this.next());
- return this.stash[--n];
- },
-
- /**
- * Return the indexOf `start` / `end` delimiters.
- *
- * @param {String} start
- * @param {String} end
- * @return {Number}
- * @api private
- */
-
- indexOfDelimiters: function(start, end){
- var str = this.input
- , nstart = 0
- , nend = 0
- , pos = 0;
- for (var i = 0, len = str.length; i < len; ++i) {
- if (start == str.charAt(i)) {
- ++nstart;
- } else if (end == str.charAt(i)) {
- if (++nend == nstart) {
- pos = i;
- break;
- }
- }
- }
- return pos;
- },
-
- /**
- * Stashed token.
- */
-
- stashed: function() {
- return this.stash.length
- && this.stash.shift();
- },
-
- /**
- * Deferred token.
- */
-
- deferred: function() {
- return this.deferredTokens.length
- && this.deferredTokens.shift();
- },
-
- /**
- * end-of-source.
- */
-
- eos: function() {
- if (this.input.length) return;
- if (this.indentStack.length) {
- this.indentStack.shift();
- return this.tok('outdent');
- } else {
- return this.tok('eos');
- }
- },
-
- /**
- * Blank line.
- */
-
- blank: function() {
- var captures;
- if (captures = /^\n *\n/.exec(this.input)) {
- this.consume(captures[0].length - 1);
- if (this.pipeless) return this.tok('text', '');
- return this.next();
- }
- },
-
- /**
- * Comment.
- */
-
- comment: function() {
- var captures;
- if (captures = /^ *\/\/(-)?([^\n]*)/.exec(this.input)) {
- this.consume(captures[0].length);
- var tok = this.tok('comment', captures[2]);
- tok.buffer = '-' != captures[1];
- return tok;
- }
- },
-
- /**
- * Interpolated tag.
- */
-
- interpolation: function() {
- var captures;
- if (captures = /^#\{(.*?)\}/.exec(this.input)) {
- this.consume(captures[0].length);
- return this.tok('interpolation', captures[1]);
- }
- },
-
- /**
- * Tag.
- */
-
- tag: function() {
- var captures;
- if (captures = /^(\w[-:\w]*)(\/?)/.exec(this.input)) {
- this.consume(captures[0].length);
- var tok, name = captures[1];
- if (':' == name[name.length - 1]) {
- name = name.slice(0, -1);
- tok = this.tok('tag', name);
- this.defer(this.tok(':'));
- while (' ' == this.input[0]) this.input = this.input.substr(1);
- } else {
- tok = this.tok('tag', name);
- }
- tok.selfClosing = !! captures[2];
- return tok;
- }
- },
-
- /**
- * Filter.
- */
-
- filter: function() {
- return this.scan(/^:(\w+)/, 'filter');
- },
-
- /**
- * Doctype.
- */
-
- doctype: function() {
- return this.scan(/^(?:!!!|doctype) *([^\n]+)?/, 'doctype');
- },
-
- /**
- * Id.
- */
-
- id: function() {
- return this.scan(/^#([\w-]+)/, 'id');
- },
-
- /**
- * Class.
- */
-
- className: function() {
- return this.scan(/^\.([\w-]+)/, 'class');
- },
-
- /**
- * Text.
- */
-
- text: function() {
- return this.scan(/^(?:\| ?| ?)?([^\n]+)/, 'text');
- },
-
- /**
- * Extends.
- */
-
- "extends": function() {
- return this.scan(/^extends? +([^\n]+)/, 'extends');
- },
-
- /**
- * Block prepend.
- */
-
- prepend: function() {
- var captures;
- if (captures = /^prepend +([^\n]+)/.exec(this.input)) {
- this.consume(captures[0].length);
- var mode = 'prepend'
- , name = captures[1]
- , tok = this.tok('block', name);
- tok.mode = mode;
- return tok;
- }
- },
-
- /**
- * Block append.
- */
-
- append: function() {
- var captures;
- if (captures = /^append +([^\n]+)/.exec(this.input)) {
- this.consume(captures[0].length);
- var mode = 'append'
- , name = captures[1]
- , tok = this.tok('block', name);
- tok.mode = mode;
- return tok;
- }
- },
-
- /**
- * Block.
- */
-
- block: function() {
- var captures;
- if (captures = /^block\b *(?:(prepend|append) +)?([^\n]*)/.exec(this.input)) {
- this.consume(captures[0].length);
- var mode = captures[1] || 'replace'
- , name = captures[2]
- , tok = this.tok('block', name);
-
- tok.mode = mode;
- return tok;
- }
- },
-
- /**
- * Yield.
- */
-
- yield: function() {
- return this.scan(/^yield */, 'yield');
- },
-
- /**
- * Include.
- */
-
- include: function() {
- return this.scan(/^include +([^\n]+)/, 'include');
- },
-
- /**
- * Case.
- */
-
- "case": function() {
- return this.scan(/^case +([^\n]+)/, 'case');
- },
-
- /**
- * When.
- */
-
- when: function() {
- return this.scan(/^when +([^:\n]+)/, 'when');
- },
-
- /**
- * Default.
- */
-
- "default": function() {
- return this.scan(/^default */, 'default');
- },
-
- /**
- * Assignment.
- */
-
- assignment: function() {
- var captures;
- if (captures = /^(\w+) += *([^;\n]+)( *;? *)/.exec(this.input)) {
- this.consume(captures[0].length);
- var name = captures[1]
- , val = captures[2];
- return this.tok('code', 'var ' + name + ' = (' + val + ');');
- }
- },
-
- /**
- * Call mixin.
- */
-
- call: function(){
- var captures;
- if (captures = /^\+([-\w]+)/.exec(this.input)) {
- this.consume(captures[0].length);
- var tok = this.tok('call', captures[1]);
-
- // Check for args (not attributes)
- if (captures = /^ *\((.*?)\)/.exec(this.input)) {
- if (!/^ *[-\w]+ *=/.test(captures[1])) {
- this.consume(captures[0].length);
- tok.args = captures[1];
- }
- }
-
- return tok;
- }
- },
-
- /**
- * Mixin.
- */
-
- mixin: function(){
- var captures;
- if (captures = /^mixin +([-\w]+)(?: *\((.*)\))?/.exec(this.input)) {
- this.consume(captures[0].length);
- var tok = this.tok('mixin', captures[1]);
- tok.args = captures[2];
- return tok;
- }
- },
-
- /**
- * Conditional.
- */
-
- conditional: function() {
- var captures;
- if (captures = /^(if|unless|else if|else)\b([^\n]*)/.exec(this.input)) {
- this.consume(captures[0].length);
- var type = captures[1]
- , js = captures[2];
-
- switch (type) {
- case 'if': js = 'if (' + js + ')'; break;
- case 'unless': js = 'if (!(' + js + '))'; break;
- case 'else if': js = 'else if (' + js + ')'; break;
- case 'else': js = 'else'; break;
- }
-
- return this.tok('code', js);
- }
- },
-
- /**
- * While.
- */
-
- "while": function() {
- var captures;
- if (captures = /^while +([^\n]+)/.exec(this.input)) {
- this.consume(captures[0].length);
- return this.tok('code', 'while (' + captures[1] + ')');
- }
- },
-
- /**
- * Each.
- */
-
- each: function() {
- var captures;
- if (captures = /^(?:- *)?(?:each|for) +(\w+)(?: *, *(\w+))? * in *([^\n]+)/.exec(this.input)) {
- this.consume(captures[0].length);
- var tok = this.tok('each', captures[1]);
- tok.key = captures[2] || '$index';
- tok.code = captures[3];
- return tok;
- }
- },
-
- /**
- * Code.
- */
-
- code: function() {
- var captures;
- if (captures = /^(!?=|-)([^\n]+)/.exec(this.input)) {
- this.consume(captures[0].length);
- var flags = captures[1];
- captures[1] = captures[2];
- var tok = this.tok('code', captures[1]);
- tok.escape = flags[0] === '=';
- tok.buffer = flags[0] === '=' || flags[1] === '=';
- return tok;
- }
- },
-
- /**
- * Attributes.
- */
-
- attrs: function() {
- if ('(' == this.input.charAt(0)) {
- var index = this.indexOfDelimiters('(', ')')
- , str = this.input.substr(1, index-1)
- , tok = this.tok('attrs')
- , len = str.length
- , colons = this.colons
- , states = ['key']
- , escapedAttr
- , key = ''
- , val = ''
- , quote
- , c
- , p;
-
- function state(){
- return states[states.length - 1];
- }
-
- function interpolate(attr) {
- return attr.replace(/#\{([^}]+)\}/g, function(_, expr){
- return quote + " + (" + expr + ") + " + quote;
- });
- }
-
- this.consume(index + 1);
- tok.attrs = {};
- tok.escaped = {};
-
- function parse(c) {
- var real = c;
- // TODO: remove when people fix ":"
- if (colons && ':' == c) c = '=';
- switch (c) {
- case ',':
- case '\n':
- switch (state()) {
- case 'expr':
- case 'array':
- case 'string':
- case 'object':
- val += c;
- break;
- default:
- states.push('key');
- val = val.trim();
- key = key.trim();
- if ('' == key) return;
- key = key.replace(/^['"]|['"]$/g, '').replace('!', '');
- tok.escaped[key] = escapedAttr;
- tok.attrs[key] = '' == val
- ? true
- : interpolate(val);
- key = val = '';
- }
- break;
- case '=':
- switch (state()) {
- case 'key char':
- key += real;
- break;
- case 'val':
- case 'expr':
- case 'array':
- case 'string':
- case 'object':
- val += real;
- break;
- default:
- escapedAttr = '!' != p;
- states.push('val');
- }
- break;
- case '(':
- if ('val' == state()
- || 'expr' == state()) states.push('expr');
- val += c;
- break;
- case ')':
- if ('expr' == state()
- || 'val' == state()) states.pop();
- val += c;
- break;
- case '{':
- if ('val' == state()) states.push('object');
- val += c;
- break;
- case '}':
- if ('object' == state()) states.pop();
- val += c;
- break;
- case '[':
- if ('val' == state()) states.push('array');
- val += c;
- break;
- case ']':
- if ('array' == state()) states.pop();
- val += c;
- break;
- case '"':
- case "'":
- switch (state()) {
- case 'key':
- states.push('key char');
- break;
- case 'key char':
- states.pop();
- break;
- case 'string':
- if (c == quote) states.pop();
- val += c;
- break;
- default:
- states.push('string');
- val += c;
- quote = c;
- }
- break;
- case '':
- break;
- default:
- switch (state()) {
- case 'key':
- case 'key char':
- key += c;
- break;
- default:
- val += c;
- }
- }
- p = c;
- }
-
- for (var i = 0; i < len; ++i) {
- parse(str.charAt(i));
- }
-
- parse(',');
-
- if ('/' == this.input.charAt(0)) {
- this.consume(1);
- tok.selfClosing = true;
- }
-
- return tok;
- }
- },
-
- /**
- * Indent | Outdent | Newline.
- */
-
- indent: function() {
- var captures, re;
-
- // established regexp
- if (this.indentRe) {
- captures = this.indentRe.exec(this.input);
- // determine regexp
- } else {
- // tabs
- re = /^\n(\t*) */;
- captures = re.exec(this.input);
-
- // spaces
- if (captures && !captures[1].length) {
- re = /^\n( *)/;
- captures = re.exec(this.input);
- }
-
- // established
- if (captures && captures[1].length) this.indentRe = re;
- }
-
- if (captures) {
- var tok
- , indents = captures[1].length;
-
- ++this.lineno;
- this.consume(indents + 1);
-
- if (' ' == this.input[0] || '\t' == this.input[0]) {
- throw new Error('Invalid indentation, you can use tabs or spaces but not both');
- }
-
- // blank line
- if ('\n' == this.input[0]) return this.tok('newline');
-
- // outdent
- if (this.indentStack.length && indents < this.indentStack[0]) {
- while (this.indentStack.length && this.indentStack[0] > indents) {
- this.stash.push(this.tok('outdent'));
- this.indentStack.shift();
- }
- tok = this.stash.pop();
- // indent
- } else if (indents && indents != this.indentStack[0]) {
- this.indentStack.unshift(indents);
- tok = this.tok('indent', indents);
- // newline
- } else {
- tok = this.tok('newline');
- }
-
- return tok;
- }
- },
-
- /**
- * Pipe-less text consumed only when
- * pipeless is true;
- */
-
- pipelessText: function() {
- if (this.pipeless) {
- if ('\n' == this.input[0]) return;
- var i = this.input.indexOf('\n');
- if (-1 == i) i = this.input.length;
- var str = this.input.substr(0, i);
- this.consume(str.length);
- return this.tok('text', str);
- }
- },
-
- /**
- * ':'
- */
-
- colon: function() {
- return this.scan(/^: */, ':');
- },
-
- /**
- * Return the next token object, or those
- * previously stashed by lookahead.
- *
- * @return {Object}
- * @api private
- */
-
- advance: function(){
- return this.stashed()
- || this.next();
- },
-
- /**
- * Return the next token object.
- *
- * @return {Object}
- * @api private
- */
-
- next: function() {
- return this.deferred()
- || this.blank()
- || this.eos()
- || this.pipelessText()
- || this.yield()
- || this.doctype()
- || this.interpolation()
- || this["case"]()
- || this.when()
- || this["default"]()
- || this["extends"]()
- || this.append()
- || this.prepend()
- || this.block()
- || this.include()
- || this.mixin()
- || this.call()
- || this.conditional()
- || this.each()
- || this["while"]()
- || this.assignment()
- || this.tag()
- || this.filter()
- || this.code()
- || this.id()
- || this.className()
- || this.attrs()
- || this.indent()
- || this.comment()
- || this.colon()
- || this.text();
- }
-};
diff --git a/node_modules/jade/lib/nodes/attrs.js b/node_modules/jade/lib/nodes/attrs.js
deleted file mode 100644
index 5de9b59cc..000000000
--- a/node_modules/jade/lib/nodes/attrs.js
+++ /dev/null
@@ -1,77 +0,0 @@
-
-/*!
- * Jade - nodes - Attrs
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node'),
- Block = require('./block');
-
-/**
- * Initialize a `Attrs` node.
- *
- * @api public
- */
-
-var Attrs = module.exports = function Attrs() {
- this.attrs = [];
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Attrs.prototype.__proto__ = Node.prototype;
-
-/**
- * Set attribute `name` to `val`, keep in mind these become
- * part of a raw js object literal, so to quote a value you must
- * '"quote me"', otherwise or example 'user.name' is literal JavaScript.
- *
- * @param {String} name
- * @param {String} val
- * @param {Boolean} escaped
- * @return {Tag} for chaining
- * @api public
- */
-
-Attrs.prototype.setAttribute = function(name, val, escaped){
- this.attrs.push({ name: name, val: val, escaped: escaped });
- return this;
-};
-
-/**
- * Remove attribute `name` when present.
- *
- * @param {String} name
- * @api public
- */
-
-Attrs.prototype.removeAttribute = function(name){
- for (var i = 0, len = this.attrs.length; i < len; ++i) {
- if (this.attrs[i] && this.attrs[i].name == name) {
- delete this.attrs[i];
- }
- }
-};
-
-/**
- * Get attribute value by `name`.
- *
- * @param {String} name
- * @return {String}
- * @api public
- */
-
-Attrs.prototype.getAttribute = function(name){
- for (var i = 0, len = this.attrs.length; i < len; ++i) {
- if (this.attrs[i] && this.attrs[i].name == name) {
- return this.attrs[i].val;
- }
- }
-};
diff --git a/node_modules/jade/lib/nodes/block-comment.js b/node_modules/jade/lib/nodes/block-comment.js
deleted file mode 100644
index 4f41e4a57..000000000
--- a/node_modules/jade/lib/nodes/block-comment.js
+++ /dev/null
@@ -1,33 +0,0 @@
-
-/*!
- * Jade - nodes - BlockComment
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node');
-
-/**
- * Initialize a `BlockComment` with the given `block`.
- *
- * @param {String} val
- * @param {Block} block
- * @param {Boolean} buffer
- * @api public
- */
-
-var BlockComment = module.exports = function BlockComment(val, block, buffer) {
- this.block = block;
- this.val = val;
- this.buffer = buffer;
-};
-
-/**
- * Inherit from `Node`.
- */
-
-BlockComment.prototype.__proto__ = Node.prototype; \ No newline at end of file
diff --git a/node_modules/jade/lib/nodes/block.js b/node_modules/jade/lib/nodes/block.js
deleted file mode 100644
index bb00a1d9b..000000000
--- a/node_modules/jade/lib/nodes/block.js
+++ /dev/null
@@ -1,121 +0,0 @@
-
-/*!
- * Jade - nodes - Block
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node');
-
-/**
- * Initialize a new `Block` with an optional `node`.
- *
- * @param {Node} node
- * @api public
- */
-
-var Block = module.exports = function Block(node){
- this.nodes = [];
- if (node) this.push(node);
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Block.prototype.__proto__ = Node.prototype;
-
-/**
- * Block flag.
- */
-
-Block.prototype.isBlock = true;
-
-/**
- * Replace the nodes in `other` with the nodes
- * in `this` block.
- *
- * @param {Block} other
- * @api private
- */
-
-Block.prototype.replace = function(other){
- other.nodes = this.nodes;
-};
-
-/**
- * Pust the given `node`.
- *
- * @param {Node} node
- * @return {Number}
- * @api public
- */
-
-Block.prototype.push = function(node){
- return this.nodes.push(node);
-};
-
-/**
- * Check if this block is empty.
- *
- * @return {Boolean}
- * @api public
- */
-
-Block.prototype.isEmpty = function(){
- return 0 == this.nodes.length;
-};
-
-/**
- * Unshift the given `node`.
- *
- * @param {Node} node
- * @return {Number}
- * @api public
- */
-
-Block.prototype.unshift = function(node){
- return this.nodes.unshift(node);
-};
-
-/**
- * Return the "last" block, or the first `yield` node.
- *
- * @return {Block}
- * @api private
- */
-
-Block.prototype.includeBlock = function(){
- var ret = this
- , node;
-
- for (var i = 0, len = this.nodes.length; i < len; ++i) {
- node = this.nodes[i];
- if (node.yield) return node;
- else if (node.textOnly) continue;
- else if (node.includeBlock) ret = node.includeBlock();
- else if (node.block && !node.block.isEmpty()) ret = node.block.includeBlock();
- }
-
- return ret;
-};
-
-/**
- * Return a clone of this block.
- *
- * @return {Block}
- * @api private
- */
-
-Block.prototype.clone = function(){
- var clone = new Block;
- for (var i = 0, len = this.nodes.length; i < len; ++i) {
- clone.push(this.nodes[i].clone());
- }
- return clone;
-};
-
diff --git a/node_modules/jade/lib/nodes/case.js b/node_modules/jade/lib/nodes/case.js
deleted file mode 100644
index 08ff03378..000000000
--- a/node_modules/jade/lib/nodes/case.js
+++ /dev/null
@@ -1,43 +0,0 @@
-
-/*!
- * Jade - nodes - Case
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node');
-
-/**
- * Initialize a new `Case` with `expr`.
- *
- * @param {String} expr
- * @api public
- */
-
-var Case = exports = module.exports = function Case(expr, block){
- this.expr = expr;
- this.block = block;
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Case.prototype.__proto__ = Node.prototype;
-
-var When = exports.When = function When(expr, block){
- this.expr = expr;
- this.block = block;
- this.debug = false;
-};
-
-/**
- * Inherit from `Node`.
- */
-
-When.prototype.__proto__ = Node.prototype;
-
diff --git a/node_modules/jade/lib/nodes/code.js b/node_modules/jade/lib/nodes/code.js
deleted file mode 100644
index babc67598..000000000
--- a/node_modules/jade/lib/nodes/code.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-/*!
- * Jade - nodes - Code
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node');
-
-/**
- * Initialize a `Code` node with the given code `val`.
- * Code may also be optionally buffered and escaped.
- *
- * @param {String} val
- * @param {Boolean} buffer
- * @param {Boolean} escape
- * @api public
- */
-
-var Code = module.exports = function Code(val, buffer, escape) {
- this.val = val;
- this.buffer = buffer;
- this.escape = escape;
- if (val.match(/^ *else/)) this.debug = false;
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Code.prototype.__proto__ = Node.prototype; \ No newline at end of file
diff --git a/node_modules/jade/lib/nodes/comment.js b/node_modules/jade/lib/nodes/comment.js
deleted file mode 100644
index 2e1469e7e..000000000
--- a/node_modules/jade/lib/nodes/comment.js
+++ /dev/null
@@ -1,32 +0,0 @@
-
-/*!
- * Jade - nodes - Comment
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node');
-
-/**
- * Initialize a `Comment` with the given `val`, optionally `buffer`,
- * otherwise the comment may render in the output.
- *
- * @param {String} val
- * @param {Boolean} buffer
- * @api public
- */
-
-var Comment = module.exports = function Comment(val, buffer) {
- this.val = val;
- this.buffer = buffer;
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Comment.prototype.__proto__ = Node.prototype; \ No newline at end of file
diff --git a/node_modules/jade/lib/nodes/doctype.js b/node_modules/jade/lib/nodes/doctype.js
deleted file mode 100644
index b8f33e56c..000000000
--- a/node_modules/jade/lib/nodes/doctype.js
+++ /dev/null
@@ -1,29 +0,0 @@
-
-/*!
- * Jade - nodes - Doctype
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node');
-
-/**
- * Initialize a `Doctype` with the given `val`.
- *
- * @param {String} val
- * @api public
- */
-
-var Doctype = module.exports = function Doctype(val) {
- this.val = val;
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Doctype.prototype.__proto__ = Node.prototype; \ No newline at end of file
diff --git a/node_modules/jade/lib/nodes/each.js b/node_modules/jade/lib/nodes/each.js
deleted file mode 100644
index f54101f13..000000000
--- a/node_modules/jade/lib/nodes/each.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-/*!
- * Jade - nodes - Each
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node');
-
-/**
- * Initialize an `Each` node, representing iteration
- *
- * @param {String} obj
- * @param {String} val
- * @param {String} key
- * @param {Block} block
- * @api public
- */
-
-var Each = module.exports = function Each(obj, val, key, block) {
- this.obj = obj;
- this.val = val;
- this.key = key;
- this.block = block;
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Each.prototype.__proto__ = Node.prototype; \ No newline at end of file
diff --git a/node_modules/jade/lib/nodes/filter.js b/node_modules/jade/lib/nodes/filter.js
deleted file mode 100644
index 851a0040a..000000000
--- a/node_modules/jade/lib/nodes/filter.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-/*!
- * Jade - nodes - Filter
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node')
- , Block = require('./block');
-
-/**
- * Initialize a `Filter` node with the given
- * filter `name` and `block`.
- *
- * @param {String} name
- * @param {Block|Node} block
- * @api public
- */
-
-var Filter = module.exports = function Filter(name, block, attrs) {
- this.name = name;
- this.block = block;
- this.attrs = attrs;
- this.isASTFilter = !block.nodes.every(function(node){ return node.isText });
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Filter.prototype.__proto__ = Node.prototype; \ No newline at end of file
diff --git a/node_modules/jade/lib/nodes/index.js b/node_modules/jade/lib/nodes/index.js
deleted file mode 100644
index 386ad2f9d..000000000
--- a/node_modules/jade/lib/nodes/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-
-/*!
- * Jade - nodes
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-exports.Node = require('./node');
-exports.Tag = require('./tag');
-exports.Code = require('./code');
-exports.Each = require('./each');
-exports.Case = require('./case');
-exports.Text = require('./text');
-exports.Block = require('./block');
-exports.Mixin = require('./mixin');
-exports.Filter = require('./filter');
-exports.Comment = require('./comment');
-exports.Literal = require('./literal');
-exports.BlockComment = require('./block-comment');
-exports.Doctype = require('./doctype');
diff --git a/node_modules/jade/lib/nodes/literal.js b/node_modules/jade/lib/nodes/literal.js
deleted file mode 100644
index fde586be0..000000000
--- a/node_modules/jade/lib/nodes/literal.js
+++ /dev/null
@@ -1,32 +0,0 @@
-
-/*!
- * Jade - nodes - Literal
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node');
-
-/**
- * Initialize a `Literal` node with the given `str.
- *
- * @param {String} str
- * @api public
- */
-
-var Literal = module.exports = function Literal(str) {
- this.str = str
- .replace(/\\/g, "\\\\")
- .replace(/\n|\r\n/g, "\\n")
- .replace(/'/g, "\\'");
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Literal.prototype.__proto__ = Node.prototype;
diff --git a/node_modules/jade/lib/nodes/mixin.js b/node_modules/jade/lib/nodes/mixin.js
deleted file mode 100644
index 8407bc792..000000000
--- a/node_modules/jade/lib/nodes/mixin.js
+++ /dev/null
@@ -1,36 +0,0 @@
-
-/*!
- * Jade - nodes - Mixin
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Attrs = require('./attrs');
-
-/**
- * Initialize a new `Mixin` with `name` and `block`.
- *
- * @param {String} name
- * @param {String} args
- * @param {Block} block
- * @api public
- */
-
-var Mixin = module.exports = function Mixin(name, args, block, call){
- this.name = name;
- this.args = args;
- this.block = block;
- this.attrs = [];
- this.call = call;
-};
-
-/**
- * Inherit from `Attrs`.
- */
-
-Mixin.prototype.__proto__ = Attrs.prototype;
-
diff --git a/node_modules/jade/lib/nodes/node.js b/node_modules/jade/lib/nodes/node.js
deleted file mode 100644
index e98f042c5..000000000
--- a/node_modules/jade/lib/nodes/node.js
+++ /dev/null
@@ -1,25 +0,0 @@
-
-/*!
- * Jade - nodes - Node
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Initialize a `Node`.
- *
- * @api public
- */
-
-var Node = module.exports = function Node(){};
-
-/**
- * Clone this node (return itself)
- *
- * @return {Node}
- * @api private
- */
-
-Node.prototype.clone = function(){
- return this;
-};
diff --git a/node_modules/jade/lib/nodes/tag.js b/node_modules/jade/lib/nodes/tag.js
deleted file mode 100644
index 4b6728adc..000000000
--- a/node_modules/jade/lib/nodes/tag.js
+++ /dev/null
@@ -1,95 +0,0 @@
-
-/*!
- * Jade - nodes - Tag
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Attrs = require('./attrs'),
- Block = require('./block'),
- inlineTags = require('../inline-tags');
-
-/**
- * Initialize a `Tag` node with the given tag `name` and optional `block`.
- *
- * @param {String} name
- * @param {Block} block
- * @api public
- */
-
-var Tag = module.exports = function Tag(name, block) {
- this.name = name;
- this.attrs = [];
- this.block = block || new Block;
-};
-
-/**
- * Inherit from `Attrs`.
- */
-
-Tag.prototype.__proto__ = Attrs.prototype;
-
-/**
- * Clone this tag.
- *
- * @return {Tag}
- * @api private
- */
-
-Tag.prototype.clone = function(){
- var clone = new Tag(this.name, this.block.clone());
- clone.line = this.line;
- clone.attrs = this.attrs;
- clone.textOnly = this.textOnly;
- return clone;
-};
-
-/**
- * Check if this tag is an inline tag.
- *
- * @return {Boolean}
- * @api private
- */
-
-Tag.prototype.isInline = function(){
- return ~inlineTags.indexOf(this.name);
-};
-
-/**
- * Check if this tag's contents can be inlined. Used for pretty printing.
- *
- * @return {Boolean}
- * @api private
- */
-
-Tag.prototype.canInline = function(){
- var nodes = this.block.nodes;
-
- function isInline(node){
- // Recurse if the node is a block
- if (node.isBlock) return node.nodes.every(isInline);
- return node.isText || (node.isInline && node.isInline());
- }
-
- // Empty tag
- if (!nodes.length) return true;
-
- // Text-only or inline-only tag
- if (1 == nodes.length) return isInline(nodes[0]);
-
- // Multi-line inline-only tag
- if (this.block.nodes.every(isInline)) {
- for (var i = 1, len = nodes.length; i < len; ++i) {
- if (nodes[i-1].isText && nodes[i].isText)
- return false;
- }
- return true;
- }
-
- // Mixed tag
- return false;
-}; \ No newline at end of file
diff --git a/node_modules/jade/lib/nodes/text.js b/node_modules/jade/lib/nodes/text.js
deleted file mode 100644
index 3b5dd5573..000000000
--- a/node_modules/jade/lib/nodes/text.js
+++ /dev/null
@@ -1,36 +0,0 @@
-
-/*!
- * Jade - nodes - Text
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Node = require('./node');
-
-/**
- * Initialize a `Text` node with optional `line`.
- *
- * @param {String} line
- * @api public
- */
-
-var Text = module.exports = function Text(line) {
- this.val = '';
- if ('string' == typeof line) this.val = line;
-};
-
-/**
- * Inherit from `Node`.
- */
-
-Text.prototype.__proto__ = Node.prototype;
-
-/**
- * Flag as text.
- */
-
-Text.prototype.isText = true; \ No newline at end of file
diff --git a/node_modules/jade/lib/parser.js b/node_modules/jade/lib/parser.js
deleted file mode 100644
index 92f2af0cd..000000000
--- a/node_modules/jade/lib/parser.js
+++ /dev/null
@@ -1,710 +0,0 @@
-
-/*!
- * Jade - Parser
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var Lexer = require('./lexer')
- , nodes = require('./nodes');
-
-/**
- * Initialize `Parser` with the given input `str` and `filename`.
- *
- * @param {String} str
- * @param {String} filename
- * @param {Object} options
- * @api public
- */
-
-var Parser = exports = module.exports = function Parser(str, filename, options){
- this.input = str;
- this.lexer = new Lexer(str, options);
- this.filename = filename;
- this.blocks = {};
- this.mixins = {};
- this.options = options;
- this.contexts = [this];
-};
-
-/**
- * Tags that may not contain tags.
- */
-
-var textOnly = exports.textOnly = ['script', 'style'];
-
-/**
- * Parser prototype.
- */
-
-Parser.prototype = {
-
- /**
- * Push `parser` onto the context stack,
- * or pop and return a `Parser`.
- */
-
- context: function(parser){
- if (parser) {
- this.contexts.push(parser);
- } else {
- return this.contexts.pop();
- }
- },
-
- /**
- * Return the next token object.
- *
- * @return {Object}
- * @api private
- */
-
- advance: function(){
- return this.lexer.advance();
- },
-
- /**
- * Skip `n` tokens.
- *
- * @param {Number} n
- * @api private
- */
-
- skip: function(n){
- while (n--) this.advance();
- },
-
- /**
- * Single token lookahead.
- *
- * @return {Object}
- * @api private
- */
-
- peek: function() {
- return this.lookahead(1);
- },
-
- /**
- * Return lexer lineno.
- *
- * @return {Number}
- * @api private
- */
-
- line: function() {
- return this.lexer.lineno;
- },
-
- /**
- * `n` token lookahead.
- *
- * @param {Number} n
- * @return {Object}
- * @api private
- */
-
- lookahead: function(n){
- return this.lexer.lookahead(n);
- },
-
- /**
- * Parse input returning a string of js for evaluation.
- *
- * @return {String}
- * @api public
- */
-
- parse: function(){
- var block = new nodes.Block, parser;
- block.line = this.line();
-
- while ('eos' != this.peek().type) {
- if ('newline' == this.peek().type) {
- this.advance();
- } else {
- block.push(this.parseExpr());
- }
- }
-
- if (parser = this.extending) {
- this.context(parser);
- var ast = parser.parse();
- this.context();
- // hoist mixins
- for (var name in this.mixins)
- ast.unshift(this.mixins[name]);
- return ast;
- }
-
- return block;
- },
-
- /**
- * Expect the given type, or throw an exception.
- *
- * @param {String} type
- * @api private
- */
-
- expect: function(type){
- if (this.peek().type === type) {
- return this.advance();
- } else {
- throw new Error('expected "' + type + '", but got "' + this.peek().type + '"');
- }
- },
-
- /**
- * Accept the given `type`.
- *
- * @param {String} type
- * @api private
- */
-
- accept: function(type){
- if (this.peek().type === type) {
- return this.advance();
- }
- },
-
- /**
- * tag
- * | doctype
- * | mixin
- * | include
- * | filter
- * | comment
- * | text
- * | each
- * | code
- * | yield
- * | id
- * | class
- * | interpolation
- */
-
- parseExpr: function(){
- switch (this.peek().type) {
- case 'tag':
- return this.parseTag();
- case 'mixin':
- return this.parseMixin();
- case 'block':
- return this.parseBlock();
- case 'case':
- return this.parseCase();
- case 'when':
- return this.parseWhen();
- case 'default':
- return this.parseDefault();
- case 'extends':
- return this.parseExtends();
- case 'include':
- return this.parseInclude();
- case 'doctype':
- return this.parseDoctype();
- case 'filter':
- return this.parseFilter();
- case 'comment':
- return this.parseComment();
- case 'text':
- return this.parseText();
- case 'each':
- return this.parseEach();
- case 'code':
- return this.parseCode();
- case 'call':
- return this.parseCall();
- case 'interpolation':
- return this.parseInterpolation();
- case 'yield':
- this.advance();
- var block = new nodes.Block;
- block.yield = true;
- return block;
- case 'id':
- case 'class':
- var tok = this.advance();
- this.lexer.defer(this.lexer.tok('tag', 'div'));
- this.lexer.defer(tok);
- return this.parseExpr();
- default:
- throw new Error('unexpected token "' + this.peek().type + '"');
- }
- },
-
- /**
- * Text
- */
-
- parseText: function(){
- var tok = this.expect('text')
- , node = new nodes.Text(tok.val);
- node.line = this.line();
- return node;
- },
-
- /**
- * ':' expr
- * | block
- */
-
- parseBlockExpansion: function(){
- if (':' == this.peek().type) {
- this.advance();
- return new nodes.Block(this.parseExpr());
- } else {
- return this.block();
- }
- },
-
- /**
- * case
- */
-
- parseCase: function(){
- var val = this.expect('case').val
- , node = new nodes.Case(val);
- node.line = this.line();
- node.block = this.block();
- return node;
- },
-
- /**
- * when
- */
-
- parseWhen: function(){
- var val = this.expect('when').val
- return new nodes.Case.When(val, this.parseBlockExpansion());
- },
-
- /**
- * default
- */
-
- parseDefault: function(){
- this.expect('default');
- return new nodes.Case.When('default', this.parseBlockExpansion());
- },
-
- /**
- * code
- */
-
- parseCode: function(){
- var tok = this.expect('code')
- , node = new nodes.Code(tok.val, tok.buffer, tok.escape)
- , block
- , i = 1;
- node.line = this.line();
- while (this.lookahead(i) && 'newline' == this.lookahead(i).type) ++i;
- block = 'indent' == this.lookahead(i).type;
- if (block) {
- this.skip(i-1);
- node.block = this.block();
- }
- return node;
- },
-
- /**
- * comment
- */
-
- parseComment: function(){
- var tok = this.expect('comment')
- , node;
-
- if ('indent' == this.peek().type) {
- node = new nodes.BlockComment(tok.val, this.block(), tok.buffer);
- } else {
- node = new nodes.Comment(tok.val, tok.buffer);
- }
-
- node.line = this.line();
- return node;
- },
-
- /**
- * doctype
- */
-
- parseDoctype: function(){
- var tok = this.expect('doctype')
- , node = new nodes.Doctype(tok.val);
- node.line = this.line();
- return node;
- },
-
- /**
- * filter attrs? text-block
- */
-
- parseFilter: function(){
- var block
- , tok = this.expect('filter')
- , attrs = this.accept('attrs');
-
- this.lexer.pipeless = true;
- block = this.parseTextBlock();
- this.lexer.pipeless = false;
-
- var node = new nodes.Filter(tok.val, block, attrs && attrs.attrs);
- node.line = this.line();
- return node;
- },
-
- /**
- * tag ':' attrs? block
- */
-
- parseASTFilter: function(){
- var block
- , tok = this.expect('tag')
- , attrs = this.accept('attrs');
-
- this.expect(':');
- block = this.block();
-
- var node = new nodes.Filter(tok.val, block, attrs && attrs.attrs);
- node.line = this.line();
- return node;
- },
-
- /**
- * each block
- */
-
- parseEach: function(){
- var tok = this.expect('each')
- , node = new nodes.Each(tok.code, tok.val, tok.key);
- node.line = this.line();
- node.block = this.block();
- return node;
- },
-
- /**
- * 'extends' name
- */
-
- parseExtends: function(){
- var path = require('path')
- , fs = require('fs')
- , dirname = path.dirname
- , basename = path.basename
- , join = path.join;
-
- if (!this.filename)
- throw new Error('the "filename" option is required to extend templates');
-
- var path = this.expect('extends').val.trim()
- , dir = dirname(this.filename);
-
- var path = join(dir, path + '.jade')
- , str = fs.readFileSync(path, 'utf8')
- , parser = new Parser(str, path, this.options);
-
- parser.blocks = this.blocks;
- parser.contexts = this.contexts;
- this.extending = parser;
-
- // TODO: null node
- return new nodes.Literal('');
- },
-
- /**
- * 'block' name block
- */
-
- parseBlock: function(){
- var block = this.expect('block')
- , mode = block.mode
- , name = block.val.trim();
-
- block = 'indent' == this.peek().type
- ? this.block()
- : new nodes.Block(new nodes.Literal(''));
-
- var prev = this.blocks[name];
-
- if (prev) {
- switch (prev.mode) {
- case 'append':
- block.nodes = block.nodes.concat(prev.nodes);
- prev = block;
- break;
- case 'prepend':
- block.nodes = prev.nodes.concat(block.nodes);
- prev = block;
- break;
- }
- }
-
- block.mode = mode;
- return this.blocks[name] = prev || block;
- },
-
- /**
- * include block?
- */
-
- parseInclude: function(){
- var path = require('path')
- , fs = require('fs')
- , dirname = path.dirname
- , basename = path.basename
- , join = path.join;
-
- var path = this.expect('include').val.trim()
- , dir = dirname(this.filename);
-
- if (!this.filename)
- throw new Error('the "filename" option is required to use includes');
-
- // no extension
- if (!~basename(path).indexOf('.')) {
- path += '.jade';
- }
-
- // non-jade
- if ('.jade' != path.substr(-5)) {
- var path = join(dir, path)
- , str = fs.readFileSync(path, 'utf8');
- return new nodes.Literal(str);
- }
-
- var path = join(dir, path)
- , str = fs.readFileSync(path, 'utf8')
- , parser = new Parser(str, path, this.options);
- parser.blocks = this.blocks;
- parser.mixins = this.mixins;
-
- this.context(parser);
- var ast = parser.parse();
- this.context();
- ast.filename = path;
-
- if ('indent' == this.peek().type) {
- ast.includeBlock().push(this.block());
- }
-
- return ast;
- },
-
- /**
- * call ident block
- */
-
- parseCall: function(){
- var tok = this.expect('call')
- , name = tok.val
- , args = tok.args
- , mixin = new nodes.Mixin(name, args, new nodes.Block, true);
-
- this.tag(mixin);
- if (mixin.block.isEmpty()) mixin.block = null;
- return mixin;
- },
-
- /**
- * mixin block
- */
-
- parseMixin: function(){
- var tok = this.expect('mixin')
- , name = tok.val
- , args = tok.args
- , mixin;
-
- // definition
- if ('indent' == this.peek().type) {
- mixin = new nodes.Mixin(name, args, this.block(), false);
- this.mixins[name] = mixin;
- return mixin;
- // call
- } else {
- return new nodes.Mixin(name, args, null, true);
- }
- },
-
- /**
- * indent (text | newline)* outdent
- */
-
- parseTextBlock: function(){
- var block = new nodes.Block;
- block.line = this.line();
- var spaces = this.expect('indent').val;
- if (null == this._spaces) this._spaces = spaces;
- var indent = Array(spaces - this._spaces + 1).join(' ');
- while ('outdent' != this.peek().type) {
- switch (this.peek().type) {
- case 'newline':
- this.advance();
- break;
- case 'indent':
- this.parseTextBlock().nodes.forEach(function(node){
- block.push(node);
- });
- break;
- default:
- var text = new nodes.Text(indent + this.advance().val);
- text.line = this.line();
- block.push(text);
- }
- }
-
- if (spaces == this._spaces) this._spaces = null;
- this.expect('outdent');
- return block;
- },
-
- /**
- * indent expr* outdent
- */
-
- block: function(){
- var block = new nodes.Block;
- block.line = this.line();
- this.expect('indent');
- while ('outdent' != this.peek().type) {
- if ('newline' == this.peek().type) {
- this.advance();
- } else {
- block.push(this.parseExpr());
- }
- }
- this.expect('outdent');
- return block;
- },
-
- /**
- * interpolation (attrs | class | id)* (text | code | ':')? newline* block?
- */
-
- parseInterpolation: function(){
- var tok = this.advance();
- var tag = new nodes.Tag(tok.val);
- tag.buffer = true;
- return this.tag(tag);
- },
-
- /**
- * tag (attrs | class | id)* (text | code | ':')? newline* block?
- */
-
- parseTag: function(){
- // ast-filter look-ahead
- var i = 2;
- if ('attrs' == this.lookahead(i).type) ++i;
- if (':' == this.lookahead(i).type) {
- if ('indent' == this.lookahead(++i).type) {
- return this.parseASTFilter();
- }
- }
-
- var tok = this.advance()
- , tag = new nodes.Tag(tok.val);
-
- tag.selfClosing = tok.selfClosing;
-
- return this.tag(tag);
- },
-
- /**
- * Parse tag.
- */
-
- tag: function(tag){
- var dot;
-
- tag.line = this.line();
-
- // (attrs | class | id)*
- out:
- while (true) {
- switch (this.peek().type) {
- case 'id':
- case 'class':
- var tok = this.advance();
- tag.setAttribute(tok.type, "'" + tok.val + "'");
- continue;
- case 'attrs':
- var tok = this.advance()
- , obj = tok.attrs
- , escaped = tok.escaped
- , names = Object.keys(obj);
-
- if (tok.selfClosing) tag.selfClosing = true;
-
- for (var i = 0, len = names.length; i < len; ++i) {
- var name = names[i]
- , val = obj[name];
- tag.setAttribute(name, val, escaped[name]);
- }
- continue;
- default:
- break out;
- }
- }
-
- // check immediate '.'
- if ('.' == this.peek().val) {
- dot = tag.textOnly = true;
- this.advance();
- }
-
- // (text | code | ':')?
- switch (this.peek().type) {
- case 'text':
- tag.block.push(this.parseText());
- break;
- case 'code':
- tag.code = this.parseCode();
- break;
- case ':':
- this.advance();
- tag.block = new nodes.Block;
- tag.block.push(this.parseExpr());
- break;
- }
-
- // newline*
- while ('newline' == this.peek().type) this.advance();
-
- tag.textOnly = tag.textOnly || ~textOnly.indexOf(tag.name);
-
- // script special-case
- if ('script' == tag.name) {
- var type = tag.getAttribute('type');
- if (!dot && type && 'text/javascript' != type.replace(/^['"]|['"]$/g, '')) {
- tag.textOnly = false;
- }
- }
-
- // block?
- if ('indent' == this.peek().type) {
- if (tag.textOnly) {
- this.lexer.pipeless = true;
- tag.block = this.parseTextBlock();
- this.lexer.pipeless = false;
- } else {
- var block = this.block();
- if (tag.block) {
- for (var i = 0, len = block.nodes.length; i < len; ++i) {
- tag.block.push(block.nodes[i]);
- }
- } else {
- tag.block = block;
- }
- }
- }
-
- return tag;
- }
-};
diff --git a/node_modules/jade/lib/runtime.js b/node_modules/jade/lib/runtime.js
deleted file mode 100644
index fb711f5e0..000000000
--- a/node_modules/jade/lib/runtime.js
+++ /dev/null
@@ -1,174 +0,0 @@
-
-/*!
- * Jade - runtime
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Lame Array.isArray() polyfill for now.
- */
-
-if (!Array.isArray) {
- Array.isArray = function(arr){
- return '[object Array]' == Object.prototype.toString.call(arr);
- };
-}
-
-/**
- * Lame Object.keys() polyfill for now.
- */
-
-if (!Object.keys) {
- Object.keys = function(obj){
- var arr = [];
- for (var key in obj) {
- if (obj.hasOwnProperty(key)) {
- arr.push(key);
- }
- }
- return arr;
- }
-}
-
-/**
- * Merge two attribute objects giving precedence
- * to values in object `b`. Classes are special-cased
- * allowing for arrays and merging/joining appropriately
- * resulting in a string.
- *
- * @param {Object} a
- * @param {Object} b
- * @return {Object} a
- * @api private
- */
-
-exports.merge = function merge(a, b) {
- var ac = a['class'];
- var bc = b['class'];
-
- if (ac || bc) {
- ac = ac || [];
- bc = bc || [];
- if (!Array.isArray(ac)) ac = [ac];
- if (!Array.isArray(bc)) bc = [bc];
- ac = ac.filter(nulls);
- bc = bc.filter(nulls);
- a['class'] = ac.concat(bc).join(' ');
- }
-
- for (var key in b) {
- if (key != 'class') {
- a[key] = b[key];
- }
- }
-
- return a;
-};
-
-/**
- * Filter null `val`s.
- *
- * @param {Mixed} val
- * @return {Mixed}
- * @api private
- */
-
-function nulls(val) {
- return val != null;
-}
-
-/**
- * Render the given attributes object.
- *
- * @param {Object} obj
- * @param {Object} escaped
- * @return {String}
- * @api private
- */
-
-exports.attrs = function attrs(obj, escaped){
- var buf = []
- , terse = obj.terse;
-
- delete obj.terse;
- var keys = Object.keys(obj)
- , len = keys.length;
-
- if (len) {
- buf.push('');
- for (var i = 0; i < len; ++i) {
- var key = keys[i]
- , val = obj[key];
-
- if ('boolean' == typeof val || null == val) {
- if (val) {
- terse
- ? buf.push(key)
- : buf.push(key + '="' + key + '"');
- }
- } else if (0 == key.indexOf('data') && 'string' != typeof val) {
- buf.push(key + "='" + JSON.stringify(val) + "'");
- } else if ('class' == key && Array.isArray(val)) {
- buf.push(key + '="' + exports.escape(val.join(' ')) + '"');
- } else if (escaped && escaped[key]) {
- buf.push(key + '="' + exports.escape(val) + '"');
- } else {
- buf.push(key + '="' + val + '"');
- }
- }
- }
-
- return buf.join(' ');
-};
-
-/**
- * Escape the given string of `html`.
- *
- * @param {String} html
- * @return {String}
- * @api private
- */
-
-exports.escape = function escape(html){
- return String(html)
- .replace(/&(?!(\w+|\#\d+);)/g, '&amp;')
- .replace(/</g, '&lt;')
- .replace(/>/g, '&gt;')
- .replace(/"/g, '&quot;');
-};
-
-/**
- * Re-throw the given `err` in context to the
- * the jade in `filename` at the given `lineno`.
- *
- * @param {Error} err
- * @param {String} filename
- * @param {String} lineno
- * @api private
- */
-
-exports.rethrow = function rethrow(err, filename, lineno){
- if (!filename) throw err;
-
- var context = 3
- , str = require('fs').readFileSync(filename, 'utf8')
- , lines = str.split('\n')
- , start = Math.max(lineno - context, 0)
- , end = Math.min(lines.length, lineno + context);
-
- // Error context
- var context = lines.slice(start, end).map(function(line, i){
- var curr = i + start + 1;
- return (curr == lineno ? ' > ' : ' ')
- + curr
- + '| '
- + line;
- }).join('\n');
-
- // Alter exception message
- err.path = filename;
- err.message = (filename || 'Jade') + ':' + lineno
- + '\n' + context + '\n\n' + err.message;
- throw err;
-};
diff --git a/node_modules/jade/lib/self-closing.js b/node_modules/jade/lib/self-closing.js
deleted file mode 100644
index 054877121..000000000
--- a/node_modules/jade/lib/self-closing.js
+++ /dev/null
@@ -1,19 +0,0 @@
-
-/*!
- * Jade - self closing tags
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-module.exports = [
- 'meta'
- , 'img'
- , 'link'
- , 'input'
- , 'source'
- , 'area'
- , 'base'
- , 'col'
- , 'br'
- , 'hr'
-]; \ No newline at end of file
diff --git a/node_modules/jade/lib/utils.js b/node_modules/jade/lib/utils.js
deleted file mode 100644
index ff46d022d..000000000
--- a/node_modules/jade/lib/utils.js
+++ /dev/null
@@ -1,49 +0,0 @@
-
-/*!
- * Jade - utils
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Convert interpolation in the given string to JavaScript.
- *
- * @param {String} str
- * @return {String}
- * @api private
- */
-
-var interpolate = exports.interpolate = function(str){
- return str.replace(/(\\)?([#!]){(.*?)}/g, function(str, escape, flag, code){
- return escape
- ? str
- : "' + "
- + ('!' == flag ? '' : 'escape')
- + "((interp = " + code.replace(/\\'/g, "'")
- + ") == null ? '' : interp) + '";
- });
-};
-
-/**
- * Escape single quotes in `str`.
- *
- * @param {String} str
- * @return {String}
- * @api private
- */
-
-var escape = exports.escape = function(str) {
- return str.replace(/'/g, "\\'");
-};
-
-/**
- * Interpolate, and escape the given `str`.
- *
- * @param {String} str
- * @return {String}
- * @api private
- */
-
-exports.text = function(str){
- return interpolate(escape(str));
-}; \ No newline at end of file
diff --git a/node_modules/jade/node_modules/commander/.npmignore b/node_modules/jade/node_modules/commander/.npmignore
deleted file mode 100644
index f1250e584..000000000
--- a/node_modules/jade/node_modules/commander/.npmignore
+++ /dev/null
@@ -1,4 +0,0 @@
-support
-test
-examples
-*.sock
diff --git a/node_modules/jade/node_modules/commander/.travis.yml b/node_modules/jade/node_modules/commander/.travis.yml
deleted file mode 100644
index f1d0f13c8..000000000
--- a/node_modules/jade/node_modules/commander/.travis.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-language: node_js
-node_js:
- - 0.4
- - 0.6
diff --git a/node_modules/jade/node_modules/commander/History.md b/node_modules/jade/node_modules/commander/History.md
deleted file mode 100644
index 4961d2e27..000000000
--- a/node_modules/jade/node_modules/commander/History.md
+++ /dev/null
@@ -1,107 +0,0 @@
-
-0.6.1 / 2012-06-01
-==================
-
- * Added: append (yes or no) on confirmation
- * Added: allow node.js v0.7.x
-
-0.6.0 / 2012-04-10
-==================
-
- * Added `.prompt(obj, callback)` support. Closes #49
- * Added default support to .choose(). Closes #41
- * Fixed the choice example
-
-0.5.1 / 2011-12-20
-==================
-
- * Fixed `password()` for recent nodes. Closes #36
-
-0.5.0 / 2011-12-04
-==================
-
- * Added sub-command option support [itay]
-
-0.4.3 / 2011-12-04
-==================
-
- * Fixed custom help ordering. Closes #32
-
-0.4.2 / 2011-11-24
-==================
-
- * Added travis support
- * Fixed: line-buffered input automatically trimmed. Closes #31
-
-0.4.1 / 2011-11-18
-==================
-
- * Removed listening for "close" on --help
-
-0.4.0 / 2011-11-15
-==================
-
- * Added support for `--`. Closes #24
-
-0.3.3 / 2011-11-14
-==================
-
- * Fixed: wait for close event when writing help info [Jerry Hamlet]
-
-0.3.2 / 2011-11-01
-==================
-
- * Fixed long flag definitions with values [felixge]
-
-0.3.1 / 2011-10-31
-==================
-
- * Changed `--version` short flag to `-V` from `-v`
- * Changed `.version()` so it's configurable [felixge]
-
-0.3.0 / 2011-10-31
-==================
-
- * Added support for long flags only. Closes #18
-
-0.2.1 / 2011-10-24
-==================
-
- * "node": ">= 0.4.x < 0.7.0". Closes #20
-
-0.2.0 / 2011-09-26
-==================
-
- * Allow for defaults that are not just boolean. Default peassignment only occurs for --no-*, optional, and required arguments. [Jim Isaacs]
-
-0.1.0 / 2011-08-24
-==================
-
- * Added support for custom `--help` output
-
-0.0.5 / 2011-08-18
-==================
-
- * Changed: when the user enters nothing prompt for password again
- * Fixed issue with passwords beginning with numbers [NuckChorris]
-
-0.0.4 / 2011-08-15
-==================
-
- * Fixed `Commander#args`
-
-0.0.3 / 2011-08-15
-==================
-
- * Added default option value support
-
-0.0.2 / 2011-08-15
-==================
-
- * Added mask support to `Command#password(str[, mask], fn)`
- * Added `Command#password(str, fn)`
-
-0.0.1 / 2010-01-03
-==================
-
- * Initial release
diff --git a/node_modules/jade/node_modules/commander/Makefile b/node_modules/jade/node_modules/commander/Makefile
deleted file mode 100644
index 007462553..000000000
--- a/node_modules/jade/node_modules/commander/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-
-TESTS = $(shell find test/test.*.js)
-
-test:
- @./test/run $(TESTS)
-
-.PHONY: test \ No newline at end of file
diff --git a/node_modules/jade/node_modules/commander/Readme.md b/node_modules/jade/node_modules/commander/Readme.md
deleted file mode 100644
index b8328c375..000000000
--- a/node_modules/jade/node_modules/commander/Readme.md
+++ /dev/null
@@ -1,262 +0,0 @@
-# Commander.js
-
- The complete solution for [node.js](http://nodejs.org) command-line interfaces, inspired by Ruby's [commander](https://github.com/visionmedia/commander).
-
- [![Build Status](https://secure.travis-ci.org/visionmedia/commander.js.png)](http://travis-ci.org/visionmedia/commander.js)
-
-## Installation
-
- $ npm install commander
-
-## Option parsing
-
- Options with commander are defined with the `.option()` method, also serving as documentation for the options. The example below parses args and options from `process.argv`, leaving remaining args as the `program.args` array which were not consumed by options.
-
-```js
-#!/usr/bin/env node
-
-/**
- * Module dependencies.
- */
-
-var program = require('commander');
-
-program
- .version('0.0.1')
- .option('-p, --peppers', 'Add peppers')
- .option('-P, --pineapple', 'Add pineapple')
- .option('-b, --bbq', 'Add bbq sauce')
- .option('-c, --cheese [type]', 'Add the specified type of cheese [marble]', 'marble')
- .parse(process.argv);
-
-console.log('you ordered a pizza with:');
-if (program.peppers) console.log(' - peppers');
-if (program.pineapple) console.log(' - pineappe');
-if (program.bbq) console.log(' - bbq');
-console.log(' - %s cheese', program.cheese);
-```
-
- Short flags may be passed as a single arg, for example `-abc` is equivalent to `-a -b -c`. Multi-word options such as "--template-engine" are camel-cased, becoming `program.templateEngine` etc.
-
-## Automated --help
-
- The help information is auto-generated based on the information commander already knows about your program, so the following `--help` info is for free:
-
-```
- $ ./examples/pizza --help
-
- Usage: pizza [options]
-
- Options:
-
- -V, --version output the version number
- -p, --peppers Add peppers
- -P, --pineapple Add pineappe
- -b, --bbq Add bbq sauce
- -c, --cheese <type> Add the specified type of cheese [marble]
- -h, --help output usage information
-
-```
-
-## Coercion
-
-```js
-function range(val) {
- return val.split('..').map(Number);
-}
-
-function list(val) {
- return val.split(',');
-}
-
-program
- .version('0.0.1')
- .usage('[options] <file ...>')
- .option('-i, --integer <n>', 'An integer argument', parseInt)
- .option('-f, --float <n>', 'A float argument', parseFloat)
- .option('-r, --range <a>..<b>', 'A range', range)
- .option('-l, --list <items>', 'A list', list)
- .option('-o, --optional [value]', 'An optional value')
- .parse(process.argv);
-
-console.log(' int: %j', program.integer);
-console.log(' float: %j', program.float);
-console.log(' optional: %j', program.optional);
-program.range = program.range || [];
-console.log(' range: %j..%j', program.range[0], program.range[1]);
-console.log(' list: %j', program.list);
-console.log(' args: %j', program.args);
-```
-
-## Custom help
-
- You can display arbitrary `-h, --help` information
- by listening for "--help". Commander will automatically
- exit once you are done so that the remainder of your program
- does not execute causing undesired behaviours, for example
- in the following executable "stuff" will not output when
- `--help` is used.
-
-```js
-#!/usr/bin/env node
-
-/**
- * Module dependencies.
- */
-
-var program = require('../');
-
-function list(val) {
- return val.split(',').map(Number);
-}
-
-program
- .version('0.0.1')
- .option('-f, --foo', 'enable some foo')
- .option('-b, --bar', 'enable some bar')
- .option('-B, --baz', 'enable some baz');
-
-// must be before .parse() since
-// node's emit() is immediate
-
-program.on('--help', function(){
- console.log(' Examples:');
- console.log('');
- console.log(' $ custom-help --help');
- console.log(' $ custom-help -h');
- console.log('');
-});
-
-program.parse(process.argv);
-
-console.log('stuff');
-```
-
-yielding the following help output:
-
-```
-
-Usage: custom-help [options]
-
-Options:
-
- -h, --help output usage information
- -V, --version output the version number
- -f, --foo enable some foo
- -b, --bar enable some bar
- -B, --baz enable some baz
-
-Examples:
-
- $ custom-help --help
- $ custom-help -h
-
-```
-
-## .prompt(msg, fn)
-
- Single-line prompt:
-
-```js
-program.prompt('name: ', function(name){
- console.log('hi %s', name);
-});
-```
-
- Multi-line prompt:
-
-```js
-program.prompt('description:', function(name){
- console.log('hi %s', name);
-});
-```
-
- Coercion:
-
-```js
-program.prompt('Age: ', Number, function(age){
- console.log('age: %j', age);
-});
-```
-
-```js
-program.prompt('Birthdate: ', Date, function(date){
- console.log('date: %s', date);
-});
-```
-
-## .password(msg[, mask], fn)
-
-Prompt for password without echoing:
-
-```js
-program.password('Password: ', function(pass){
- console.log('got "%s"', pass);
- process.stdin.destroy();
-});
-```
-
-Prompt for password with mask char "*":
-
-```js
-program.password('Password: ', '*', function(pass){
- console.log('got "%s"', pass);
- process.stdin.destroy();
-});
-```
-
-## .confirm(msg, fn)
-
- Confirm with the given `msg`:
-
-```js
-program.confirm('continue? ', function(ok){
- console.log(' got %j', ok);
-});
-```
-
-## .choose(list, fn)
-
- Let the user choose from a `list`:
-
-```js
-var list = ['tobi', 'loki', 'jane', 'manny', 'luna'];
-
-console.log('Choose the coolest pet:');
-program.choose(list, function(i){
- console.log('you chose %d "%s"', i, list[i]);
-});
-```
-
-## Links
-
- - [API documentation](http://visionmedia.github.com/commander.js/)
- - [ascii tables](https://github.com/LearnBoost/cli-table)
- - [progress bars](https://github.com/visionmedia/node-progress)
- - [more progress bars](https://github.com/substack/node-multimeter)
- - [examples](https://github.com/visionmedia/commander.js/tree/master/examples)
-
-## License
-
-(The MIT License)
-
-Copyright (c) 2011 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
-
-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. \ No newline at end of file
diff --git a/node_modules/jade/node_modules/commander/index.js b/node_modules/jade/node_modules/commander/index.js
deleted file mode 100644
index 06ec1e4bc..000000000
--- a/node_modules/jade/node_modules/commander/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-
-module.exports = require('./lib/commander'); \ No newline at end of file
diff --git a/node_modules/jade/node_modules/commander/lib/commander.js b/node_modules/jade/node_modules/commander/lib/commander.js
deleted file mode 100644
index 5ba87ebb8..000000000
--- a/node_modules/jade/node_modules/commander/lib/commander.js
+++ /dev/null
@@ -1,1026 +0,0 @@
-
-/*!
- * commander
- * Copyright(c) 2011 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var EventEmitter = require('events').EventEmitter
- , path = require('path')
- , tty = require('tty')
- , basename = path.basename;
-
-/**
- * Expose the root command.
- */
-
-exports = module.exports = new Command;
-
-/**
- * Expose `Command`.
- */
-
-exports.Command = Command;
-
-/**
- * Expose `Option`.
- */
-
-exports.Option = Option;
-
-/**
- * Initialize a new `Option` with the given `flags` and `description`.
- *
- * @param {String} flags
- * @param {String} description
- * @api public
- */
-
-function Option(flags, description) {
- this.flags = flags;
- this.required = ~flags.indexOf('<');
- this.optional = ~flags.indexOf('[');
- this.bool = !~flags.indexOf('-no-');
- flags = flags.split(/[ ,|]+/);
- if (flags.length > 1 && !/^[[<]/.test(flags[1])) this.short = flags.shift();
- this.long = flags.shift();
- this.description = description;
-}
-
-/**
- * Return option name.
- *
- * @return {String}
- * @api private
- */
-
-Option.prototype.name = function(){
- return this.long
- .replace('--', '')
- .replace('no-', '');
-};
-
-/**
- * Check if `arg` matches the short or long flag.
- *
- * @param {String} arg
- * @return {Boolean}
- * @api private
- */
-
-Option.prototype.is = function(arg){
- return arg == this.short
- || arg == this.long;
-};
-
-/**
- * Initialize a new `Command`.
- *
- * @param {String} name
- * @api public
- */
-
-function Command(name) {
- this.commands = [];
- this.options = [];
- this.args = [];
- this.name = name;
-}
-
-/**
- * Inherit from `EventEmitter.prototype`.
- */
-
-Command.prototype.__proto__ = EventEmitter.prototype;
-
-/**
- * Add command `name`.
- *
- * The `.action()` callback is invoked when the
- * command `name` is specified via __ARGV__,
- * and the remaining arguments are applied to the
- * function for access.
- *
- * When the `name` is "*" an un-matched command
- * will be passed as the first arg, followed by
- * the rest of __ARGV__ remaining.
- *
- * Examples:
- *
- * program
- * .version('0.0.1')
- * .option('-C, --chdir <path>', 'change the working directory')
- * .option('-c, --config <path>', 'set config path. defaults to ./deploy.conf')
- * .option('-T, --no-tests', 'ignore test hook')
- *
- * program
- * .command('setup')
- * .description('run remote setup commands')
- * .action(function(){
- * console.log('setup');
- * });
- *
- * program
- * .command('exec <cmd>')
- * .description('run the given remote command')
- * .action(function(cmd){
- * console.log('exec "%s"', cmd);
- * });
- *
- * program
- * .command('*')
- * .description('deploy the given env')
- * .action(function(env){
- * console.log('deploying "%s"', env);
- * });
- *
- * program.parse(process.argv);
- *
- * @param {String} name
- * @return {Command} the new command
- * @api public
- */
-
-Command.prototype.command = function(name){
- var args = name.split(/ +/);
- var cmd = new Command(args.shift());
- this.commands.push(cmd);
- cmd.parseExpectedArgs(args);
- cmd.parent = this;
- return cmd;
-};
-
-/**
- * Parse expected `args`.
- *
- * For example `["[type]"]` becomes `[{ required: false, name: 'type' }]`.
- *
- * @param {Array} args
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.parseExpectedArgs = function(args){
- if (!args.length) return;
- var self = this;
- args.forEach(function(arg){
- switch (arg[0]) {
- case '<':
- self.args.push({ required: true, name: arg.slice(1, -1) });
- break;
- case '[':
- self.args.push({ required: false, name: arg.slice(1, -1) });
- break;
- }
- });
- return this;
-};
-
-/**
- * Register callback `fn` for the command.
- *
- * Examples:
- *
- * program
- * .command('help')
- * .description('display verbose help')
- * .action(function(){
- * // output help here
- * });
- *
- * @param {Function} fn
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.action = function(fn){
- var self = this;
- this.parent.on(this.name, function(args, unknown){
- // Parse any so-far unknown options
- unknown = unknown || [];
- var parsed = self.parseOptions(unknown);
-
- // Output help if necessary
- outputHelpIfNecessary(self, parsed.unknown);
-
- // If there are still any unknown options, then we simply
- // die, unless someone asked for help, in which case we give it
- // to them, and then we die.
- if (parsed.unknown.length > 0) {
- self.unknownOption(parsed.unknown[0]);
- }
-
- self.args.forEach(function(arg, i){
- if (arg.required && null == args[i]) {
- self.missingArgument(arg.name);
- }
- });
-
- // Always append ourselves to the end of the arguments,
- // to make sure we match the number of arguments the user
- // expects
- if (self.args.length) {
- args[self.args.length] = self;
- } else {
- args.push(self);
- }
-
- fn.apply(this, args);
- });
- return this;
-};
-
-/**
- * Define option with `flags`, `description` and optional
- * coercion `fn`.
- *
- * The `flags` string should contain both the short and long flags,
- * separated by comma, a pipe or space. The following are all valid
- * all will output this way when `--help` is used.
- *
- * "-p, --pepper"
- * "-p|--pepper"
- * "-p --pepper"
- *
- * Examples:
- *
- * // simple boolean defaulting to false
- * program.option('-p, --pepper', 'add pepper');
- *
- * --pepper
- * program.pepper
- * // => Boolean
- *
- * // simple boolean defaulting to false
- * program.option('-C, --no-cheese', 'remove cheese');
- *
- * program.cheese
- * // => true
- *
- * --no-cheese
- * program.cheese
- * // => true
- *
- * // required argument
- * program.option('-C, --chdir <path>', 'change the working directory');
- *
- * --chdir /tmp
- * program.chdir
- * // => "/tmp"
- *
- * // optional argument
- * program.option('-c, --cheese [type]', 'add cheese [marble]');
- *
- * @param {String} flags
- * @param {String} description
- * @param {Function|Mixed} fn or default
- * @param {Mixed} defaultValue
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.option = function(flags, description, fn, defaultValue){
- var self = this
- , option = new Option(flags, description)
- , oname = option.name()
- , name = camelcase(oname);
-
- // default as 3rd arg
- if ('function' != typeof fn) defaultValue = fn, fn = null;
-
- // preassign default value only for --no-*, [optional], or <required>
- if (false == option.bool || option.optional || option.required) {
- // when --no-* we make sure default is true
- if (false == option.bool) defaultValue = true;
- // preassign only if we have a default
- if (undefined !== defaultValue) self[name] = defaultValue;
- }
-
- // register the option
- this.options.push(option);
-
- // when it's passed assign the value
- // and conditionally invoke the callback
- this.on(oname, function(val){
- // coercion
- if (null != val && fn) val = fn(val);
-
- // unassigned or bool
- if ('boolean' == typeof self[name] || 'undefined' == typeof self[name]) {
- // if no value, bool true, and we have a default, then use it!
- if (null == val) {
- self[name] = option.bool
- ? defaultValue || true
- : false;
- } else {
- self[name] = val;
- }
- } else if (null !== val) {
- // reassign
- self[name] = val;
- }
- });
-
- return this;
-};
-
-/**
- * Parse `argv`, settings options and invoking commands when defined.
- *
- * @param {Array} argv
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.parse = function(argv){
- // store raw args
- this.rawArgs = argv;
-
- // guess name
- if (!this.name) this.name = basename(argv[1]);
-
- // process argv
- var parsed = this.parseOptions(this.normalize(argv.slice(2)));
- this.args = parsed.args;
- return this.parseArgs(this.args, parsed.unknown);
-};
-
-/**
- * Normalize `args`, splitting joined short flags. For example
- * the arg "-abc" is equivalent to "-a -b -c".
- *
- * @param {Array} args
- * @return {Array}
- * @api private
- */
-
-Command.prototype.normalize = function(args){
- var ret = []
- , arg;
-
- for (var i = 0, len = args.length; i < len; ++i) {
- arg = args[i];
- if (arg.length > 1 && '-' == arg[0] && '-' != arg[1]) {
- arg.slice(1).split('').forEach(function(c){
- ret.push('-' + c);
- });
- } else {
- ret.push(arg);
- }
- }
-
- return ret;
-};
-
-/**
- * Parse command `args`.
- *
- * When listener(s) are available those
- * callbacks are invoked, otherwise the "*"
- * event is emitted and those actions are invoked.
- *
- * @param {Array} args
- * @return {Command} for chaining
- * @api private
- */
-
-Command.prototype.parseArgs = function(args, unknown){
- var cmds = this.commands
- , len = cmds.length
- , name;
-
- if (args.length) {
- name = args[0];
- if (this.listeners(name).length) {
- this.emit(args.shift(), args, unknown);
- } else {
- this.emit('*', args);
- }
- } else {
- outputHelpIfNecessary(this, unknown);
-
- // If there were no args and we have unknown options,
- // then they are extraneous and we need to error.
- if (unknown.length > 0) {
- this.unknownOption(unknown[0]);
- }
- }
-
- return this;
-};
-
-/**
- * Return an option matching `arg` if any.
- *
- * @param {String} arg
- * @return {Option}
- * @api private
- */
-
-Command.prototype.optionFor = function(arg){
- for (var i = 0, len = this.options.length; i < len; ++i) {
- if (this.options[i].is(arg)) {
- return this.options[i];
- }
- }
-};
-
-/**
- * Parse options from `argv` returning `argv`
- * void of these options.
- *
- * @param {Array} argv
- * @return {Array}
- * @api public
- */
-
-Command.prototype.parseOptions = function(argv){
- var args = []
- , len = argv.length
- , literal
- , option
- , arg;
-
- var unknownOptions = [];
-
- // parse options
- for (var i = 0; i < len; ++i) {
- arg = argv[i];
-
- // literal args after --
- if ('--' == arg) {
- literal = true;
- continue;
- }
-
- if (literal) {
- args.push(arg);
- continue;
- }
-
- // find matching Option
- option = this.optionFor(arg);
-
- // option is defined
- if (option) {
- // requires arg
- if (option.required) {
- arg = argv[++i];
- if (null == arg) return this.optionMissingArgument(option);
- if ('-' == arg[0]) return this.optionMissingArgument(option, arg);
- this.emit(option.name(), arg);
- // optional arg
- } else if (option.optional) {
- arg = argv[i+1];
- if (null == arg || '-' == arg[0]) {
- arg = null;
- } else {
- ++i;
- }
- this.emit(option.name(), arg);
- // bool
- } else {
- this.emit(option.name());
- }
- continue;
- }
-
- // looks like an option
- if (arg.length > 1 && '-' == arg[0]) {
- unknownOptions.push(arg);
-
- // If the next argument looks like it might be
- // an argument for this option, we pass it on.
- // If it isn't, then it'll simply be ignored
- if (argv[i+1] && '-' != argv[i+1][0]) {
- unknownOptions.push(argv[++i]);
- }
- continue;
- }
-
- // arg
- args.push(arg);
- }
-
- return { args: args, unknown: unknownOptions };
-};
-
-/**
- * Argument `name` is missing.
- *
- * @param {String} name
- * @api private
- */
-
-Command.prototype.missingArgument = function(name){
- console.error();
- console.error(" error: missing required argument `%s'", name);
- console.error();
- process.exit(1);
-};
-
-/**
- * `Option` is missing an argument, but received `flag` or nothing.
- *
- * @param {String} option
- * @param {String} flag
- * @api private
- */
-
-Command.prototype.optionMissingArgument = function(option, flag){
- console.error();
- if (flag) {
- console.error(" error: option `%s' argument missing, got `%s'", option.flags, flag);
- } else {
- console.error(" error: option `%s' argument missing", option.flags);
- }
- console.error();
- process.exit(1);
-};
-
-/**
- * Unknown option `flag`.
- *
- * @param {String} flag
- * @api private
- */
-
-Command.prototype.unknownOption = function(flag){
- console.error();
- console.error(" error: unknown option `%s'", flag);
- console.error();
- process.exit(1);
-};
-
-/**
- * Set the program version to `str`.
- *
- * This method auto-registers the "-V, --version" flag
- * which will print the version number when passed.
- *
- * @param {String} str
- * @param {String} flags
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.version = function(str, flags){
- if (0 == arguments.length) return this._version;
- this._version = str;
- flags = flags || '-V, --version';
- this.option(flags, 'output the version number');
- this.on('version', function(){
- console.log(str);
- process.exit(0);
- });
- return this;
-};
-
-/**
- * Set the description `str`.
- *
- * @param {String} str
- * @return {String|Command}
- * @api public
- */
-
-Command.prototype.description = function(str){
- if (0 == arguments.length) return this._description;
- this._description = str;
- return this;
-};
-
-/**
- * Set / get the command usage `str`.
- *
- * @param {String} str
- * @return {String|Command}
- * @api public
- */
-
-Command.prototype.usage = function(str){
- var args = this.args.map(function(arg){
- return arg.required
- ? '<' + arg.name + '>'
- : '[' + arg.name + ']';
- });
-
- var usage = '[options'
- + (this.commands.length ? '] [command' : '')
- + ']'
- + (this.args.length ? ' ' + args : '');
- if (0 == arguments.length) return this._usage || usage;
- this._usage = str;
-
- return this;
-};
-
-/**
- * Return the largest option length.
- *
- * @return {Number}
- * @api private
- */
-
-Command.prototype.largestOptionLength = function(){
- return this.options.reduce(function(max, option){
- return Math.max(max, option.flags.length);
- }, 0);
-};
-
-/**
- * Return help for options.
- *
- * @return {String}
- * @api private
- */
-
-Command.prototype.optionHelp = function(){
- var width = this.largestOptionLength();
-
- // Prepend the help information
- return [pad('-h, --help', width) + ' ' + 'output usage information']
- .concat(this.options.map(function(option){
- return pad(option.flags, width)
- + ' ' + option.description;
- }))
- .join('\n');
-};
-
-/**
- * Return command help documentation.
- *
- * @return {String}
- * @api private
- */
-
-Command.prototype.commandHelp = function(){
- if (!this.commands.length) return '';
- return [
- ''
- , ' Commands:'
- , ''
- , this.commands.map(function(cmd){
- var args = cmd.args.map(function(arg){
- return arg.required
- ? '<' + arg.name + '>'
- : '[' + arg.name + ']';
- }).join(' ');
-
- return cmd.name
- + (cmd.options.length
- ? ' [options]'
- : '') + ' ' + args
- + (cmd.description()
- ? '\n' + cmd.description()
- : '');
- }).join('\n\n').replace(/^/gm, ' ')
- , ''
- ].join('\n');
-};
-
-/**
- * Return program help documentation.
- *
- * @return {String}
- * @api private
- */
-
-Command.prototype.helpInformation = function(){
- return [
- ''
- , ' Usage: ' + this.name + ' ' + this.usage()
- , '' + this.commandHelp()
- , ' Options:'
- , ''
- , '' + this.optionHelp().replace(/^/gm, ' ')
- , ''
- , ''
- ].join('\n');
-};
-
-/**
- * Prompt for a `Number`.
- *
- * @param {String} str
- * @param {Function} fn
- * @api private
- */
-
-Command.prototype.promptForNumber = function(str, fn){
- var self = this;
- this.promptSingleLine(str, function parseNumber(val){
- val = Number(val);
- if (isNaN(val)) return self.promptSingleLine(str + '(must be a number) ', parseNumber);
- fn(val);
- });
-};
-
-/**
- * Prompt for a `Date`.
- *
- * @param {String} str
- * @param {Function} fn
- * @api private
- */
-
-Command.prototype.promptForDate = function(str, fn){
- var self = this;
- this.promptSingleLine(str, function parseDate(val){
- val = new Date(val);
- if (isNaN(val.getTime())) return self.promptSingleLine(str + '(must be a date) ', parseDate);
- fn(val);
- });
-};
-
-/**
- * Single-line prompt.
- *
- * @param {String} str
- * @param {Function} fn
- * @api private
- */
-
-Command.prototype.promptSingleLine = function(str, fn){
- if ('function' == typeof arguments[2]) {
- return this['promptFor' + (fn.name || fn)](str, arguments[2]);
- }
-
- process.stdout.write(str);
- process.stdin.setEncoding('utf8');
- process.stdin.once('data', function(val){
- fn(val.trim());
- }).resume();
-};
-
-/**
- * Multi-line prompt.
- *
- * @param {String} str
- * @param {Function} fn
- * @api private
- */
-
-Command.prototype.promptMultiLine = function(str, fn){
- var buf = [];
- console.log(str);
- process.stdin.setEncoding('utf8');
- process.stdin.on('data', function(val){
- if ('\n' == val || '\r\n' == val) {
- process.stdin.removeAllListeners('data');
- fn(buf.join('\n'));
- } else {
- buf.push(val.trimRight());
- }
- }).resume();
-};
-
-/**
- * Prompt `str` and callback `fn(val)`
- *
- * Commander supports single-line and multi-line prompts.
- * To issue a single-line prompt simply add white-space
- * to the end of `str`, something like "name: ", whereas
- * for a multi-line prompt omit this "description:".
- *
- *
- * Examples:
- *
- * program.prompt('Username: ', function(name){
- * console.log('hi %s', name);
- * });
- *
- * program.prompt('Description:', function(desc){
- * console.log('description was "%s"', desc.trim());
- * });
- *
- * @param {String|Object} str
- * @param {Function} fn
- * @api public
- */
-
-Command.prototype.prompt = function(str, fn){
- var self = this;
-
- if ('string' == typeof str) {
- if (/ $/.test(str)) return this.promptSingleLine.apply(this, arguments);
- this.promptMultiLine(str, fn);
- } else {
- var keys = Object.keys(str)
- , obj = {};
-
- function next() {
- var key = keys.shift()
- , label = str[key];
-
- if (!key) return fn(obj);
- self.prompt(label, function(val){
- obj[key] = val;
- next();
- });
- }
-
- next();
- }
-};
-
-/**
- * Prompt for password with `str`, `mask` char and callback `fn(val)`.
- *
- * The mask string defaults to '', aka no output is
- * written while typing, you may want to use "*" etc.
- *
- * Examples:
- *
- * program.password('Password: ', function(pass){
- * console.log('got "%s"', pass);
- * process.stdin.destroy();
- * });
- *
- * program.password('Password: ', '*', function(pass){
- * console.log('got "%s"', pass);
- * process.stdin.destroy();
- * });
- *
- * @param {String} str
- * @param {String} mask
- * @param {Function} fn
- * @api public
- */
-
-Command.prototype.password = function(str, mask, fn){
- var self = this
- , buf = '';
-
- // default mask
- if ('function' == typeof mask) {
- fn = mask;
- mask = '';
- }
-
- process.stdin.resume();
- tty.setRawMode(true);
- process.stdout.write(str);
-
- // keypress
- process.stdin.on('keypress', function(c, key){
- if (key && 'enter' == key.name) {
- console.log();
- process.stdin.removeAllListeners('keypress');
- tty.setRawMode(false);
- if (!buf.trim().length) return self.password(str, mask, fn);
- fn(buf);
- return;
- }
-
- if (key && key.ctrl && 'c' == key.name) {
- console.log('%s', buf);
- process.exit();
- }
-
- process.stdout.write(mask);
- buf += c;
- }).resume();
-};
-
-/**
- * Confirmation prompt with `str` and callback `fn(bool)`
- *
- * Examples:
- *
- * program.confirm('continue? ', function(ok){
- * console.log(' got %j', ok);
- * process.stdin.destroy();
- * });
- *
- * @param {String} str
- * @param {Function} fn
- * @api public
- */
-
-
-Command.prototype.confirm = function(str, fn, verbose){
- var self = this;
- this.prompt(str, function(ok){
- if (!ok.trim()) {
- if (!verbose) str += '(yes or no) ';
- return self.confirm(str, fn, true);
- }
- fn(parseBool(ok));
- });
-};
-
-/**
- * Choice prompt with `list` of items and callback `fn(index, item)`
- *
- * Examples:
- *
- * var list = ['tobi', 'loki', 'jane', 'manny', 'luna'];
- *
- * console.log('Choose the coolest pet:');
- * program.choose(list, function(i){
- * console.log('you chose %d "%s"', i, list[i]);
- * process.stdin.destroy();
- * });
- *
- * @param {Array} list
- * @param {Number|Function} index or fn
- * @param {Function} fn
- * @api public
- */
-
-Command.prototype.choose = function(list, index, fn){
- var self = this
- , hasDefault = 'number' == typeof index;
-
- if (!hasDefault) {
- fn = index;
- index = null;
- }
-
- list.forEach(function(item, i){
- if (hasDefault && i == index) {
- console.log('* %d) %s', i + 1, item);
- } else {
- console.log(' %d) %s', i + 1, item);
- }
- });
-
- function again() {
- self.prompt(' : ', function(val){
- val = parseInt(val, 10) - 1;
- if (hasDefault && isNaN(val)) val = index;
-
- if (null == list[val]) {
- again();
- } else {
- fn(val, list[val]);
- }
- });
- }
-
- again();
-};
-
-/**
- * Camel-case the given `flag`
- *
- * @param {String} flag
- * @return {String}
- * @api private
- */
-
-function camelcase(flag) {
- return flag.split('-').reduce(function(str, word){
- return str + word[0].toUpperCase() + word.slice(1);
- });
-}
-
-/**
- * Parse a boolean `str`.
- *
- * @param {String} str
- * @return {Boolean}
- * @api private
- */
-
-function parseBool(str) {
- return /^y|yes|ok|true$/i.test(str);
-}
-
-/**
- * Pad `str` to `width`.
- *
- * @param {String} str
- * @param {Number} width
- * @return {String}
- * @api private
- */
-
-function pad(str, width) {
- var len = Math.max(0, width - str.length);
- return str + Array(len + 1).join(' ');
-}
-
-/**
- * Output help information if necessary
- *
- * @param {Command} command to output help for
- * @param {Array} array of options to search for -h or --help
- * @api private
- */
-
-function outputHelpIfNecessary(cmd, options) {
- options = options || [];
- for (var i = 0; i < options.length; i++) {
- if (options[i] == '--help' || options[i] == '-h') {
- process.stdout.write(cmd.helpInformation());
- cmd.emit('--help');
- process.exit(0);
- }
- }
-}
diff --git a/node_modules/jade/node_modules/commander/package.json b/node_modules/jade/node_modules/commander/package.json
deleted file mode 100644
index 7161a8b70..000000000
--- a/node_modules/jade/node_modules/commander/package.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "name": "commander"
- , "version": "0.6.1"
- , "description": "the complete solution for node.js command-line programs"
- , "keywords": ["command", "option", "parser", "prompt", "stdin"]
- , "author": "TJ Holowaychuk <tj@vision-media.ca>"
- , "repository": { "type": "git", "url": "https://github.com/visionmedia/commander.js.git" }
- , "dependencies": {}
- , "devDependencies": { "should": ">= 0.0.1" }
- , "scripts": { "test": "make test" }
- , "main": "index"
- , "engines": { "node": ">= 0.4.x" }
-} \ No newline at end of file
diff --git a/node_modules/jade/node_modules/mkdirp/.gitignore b/node_modules/jade/node_modules/mkdirp/.gitignore
deleted file mode 100644
index 9303c347e..000000000
--- a/node_modules/jade/node_modules/mkdirp/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules/
-npm-debug.log \ No newline at end of file
diff --git a/node_modules/jade/node_modules/mkdirp/.gitignore.orig b/node_modules/jade/node_modules/mkdirp/.gitignore.orig
deleted file mode 100644
index 9303c347e..000000000
--- a/node_modules/jade/node_modules/mkdirp/.gitignore.orig
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules/
-npm-debug.log \ No newline at end of file
diff --git a/node_modules/jade/node_modules/mkdirp/.gitignore.rej b/node_modules/jade/node_modules/mkdirp/.gitignore.rej
deleted file mode 100644
index 69244ff87..000000000
--- a/node_modules/jade/node_modules/mkdirp/.gitignore.rej
+++ /dev/null
@@ -1,5 +0,0 @@
---- /dev/null
-+++ .gitignore
-@@ -0,0 +1,2 @@
-+node_modules/
-+npm-debug.log \ No newline at end of file
diff --git a/node_modules/jade/node_modules/mkdirp/LICENSE b/node_modules/jade/node_modules/mkdirp/LICENSE
deleted file mode 100644
index 432d1aeb0..000000000
--- a/node_modules/jade/node_modules/mkdirp/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-Copyright 2010 James Halliday (mail@substack.net)
-
-This project is free software released under the MIT/X11 license:
-
-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.
diff --git a/node_modules/jade/node_modules/mkdirp/README.markdown b/node_modules/jade/node_modules/mkdirp/README.markdown
deleted file mode 100644
index b4dd75fdc..000000000
--- a/node_modules/jade/node_modules/mkdirp/README.markdown
+++ /dev/null
@@ -1,54 +0,0 @@
-mkdirp
-======
-
-Like `mkdir -p`, but in node.js!
-
-example
-=======
-
-pow.js
-------
- var mkdirp = require('mkdirp');
-
- mkdirp('/tmp/foo/bar/baz', function (err) {
- if (err) console.error(err)
- else console.log('pow!')
- });
-
-Output
- pow!
-
-And now /tmp/foo/bar/baz exists, huzzah!
-
-methods
-=======
-
-var mkdirp = require('mkdirp');
-
-mkdirp(dir, mode, cb)
----------------------
-
-Create a new directory and any necessary subdirectories at `dir` with octal
-permission string `mode`.
-
-If `mode` isn't specified, it defaults to `0777 & (~process.umask())`.
-
-mkdirp.sync(dir, mode)
-----------------------
-
-Synchronously create a new directory and any necessary subdirectories at `dir`
-with octal permission string `mode`.
-
-If `mode` isn't specified, it defaults to `0777 & (~process.umask())`.
-
-install
-=======
-
-With [npm](http://npmjs.org) do:
-
- npm install mkdirp
-
-license
-=======
-
-MIT/X11
diff --git a/node_modules/jade/node_modules/mkdirp/examples/pow.js b/node_modules/jade/node_modules/mkdirp/examples/pow.js
deleted file mode 100644
index e6924212e..000000000
--- a/node_modules/jade/node_modules/mkdirp/examples/pow.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var mkdirp = require('mkdirp');
-
-mkdirp('/tmp/foo/bar/baz', function (err) {
- if (err) console.error(err)
- else console.log('pow!')
-});
diff --git a/node_modules/jade/node_modules/mkdirp/examples/pow.js.orig b/node_modules/jade/node_modules/mkdirp/examples/pow.js.orig
deleted file mode 100644
index 774146221..000000000
--- a/node_modules/jade/node_modules/mkdirp/examples/pow.js.orig
+++ /dev/null
@@ -1,6 +0,0 @@
-var mkdirp = require('mkdirp');
-
-mkdirp('/tmp/foo/bar/baz', 0755, function (err) {
- if (err) console.error(err)
- else console.log('pow!')
-});
diff --git a/node_modules/jade/node_modules/mkdirp/examples/pow.js.rej b/node_modules/jade/node_modules/mkdirp/examples/pow.js.rej
deleted file mode 100644
index 81e7f4311..000000000
--- a/node_modules/jade/node_modules/mkdirp/examples/pow.js.rej
+++ /dev/null
@@ -1,19 +0,0 @@
---- examples/pow.js
-+++ examples/pow.js
-@@ -1,6 +1,15 @@
--var mkdirp = require('mkdirp').mkdirp;
-+var mkdirp = require('../').mkdirp,
-+ mkdirpSync = require('../').mkdirpSync;
-
- mkdirp('/tmp/foo/bar/baz', 0755, function (err) {
- if (err) console.error(err)
- else console.log('pow!')
- });
-+
-+try {
-+ mkdirpSync('/tmp/bar/foo/baz', 0755);
-+ console.log('double pow!');
-+}
-+catch (ex) {
-+ console.log(ex);
-+} \ No newline at end of file
diff --git a/node_modules/jade/node_modules/mkdirp/index.js b/node_modules/jade/node_modules/mkdirp/index.js
deleted file mode 100644
index 25f43adfa..000000000
--- a/node_modules/jade/node_modules/mkdirp/index.js
+++ /dev/null
@@ -1,79 +0,0 @@
-var path = require('path');
-var fs = require('fs');
-
-module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP;
-
-function mkdirP (p, mode, f) {
- if (typeof mode === 'function' || mode === undefined) {
- f = mode;
- mode = 0777 & (~process.umask());
- }
-
- var cb = f || function () {};
- if (typeof mode === 'string') mode = parseInt(mode, 8);
- p = path.resolve(p);
-
- fs.mkdir(p, mode, function (er) {
- if (!er) return cb();
- switch (er.code) {
- case 'ENOENT':
- mkdirP(path.dirname(p), mode, function (er) {
- if (er) cb(er);
- else mkdirP(p, mode, cb);
- });
- break;
-
- case 'EEXIST':
- fs.stat(p, function (er2, stat) {
- // if the stat fails, then that's super weird.
- // let the original EEXIST be the failure reason.
- if (er2 || !stat.isDirectory()) cb(er)
- else cb();
- });
- break;
-
- default:
- cb(er);
- break;
- }
- });
-}
-
-mkdirP.sync = function sync (p, mode) {
- if (mode === undefined) {
- mode = 0777 & (~process.umask());
- }
-
- if (typeof mode === 'string') mode = parseInt(mode, 8);
- p = path.resolve(p);
-
- try {
- fs.mkdirSync(p, mode)
- }
- catch (err0) {
- switch (err0.code) {
- case 'ENOENT' :
- var err1 = sync(path.dirname(p), mode)
- if (err1) throw err1;
- else return sync(p, mode);
- break;
-
- case 'EEXIST' :
- var stat;
- try {
- stat = fs.statSync(p);
- }
- catch (err1) {
- throw err0
- }
- if (!stat.isDirectory()) throw err0;
- else return null;
- break;
- default :
- throw err0
- break;
- }
- }
-
- return null;
-};
diff --git a/node_modules/jade/node_modules/mkdirp/package.json b/node_modules/jade/node_modules/mkdirp/package.json
deleted file mode 100644
index 1bf9ac782..000000000
--- a/node_modules/jade/node_modules/mkdirp/package.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "name" : "mkdirp",
- "description" : "Recursively mkdir, like `mkdir -p`",
- "version" : "0.3.0",
- "author" : "James Halliday <mail@substack.net> (http://substack.net)",
- "main" : "./index",
- "keywords" : [
- "mkdir",
- "directory"
- ],
- "repository" : {
- "type" : "git",
- "url" : "http://github.com/substack/node-mkdirp.git"
- },
- "scripts" : {
- "test" : "tap test/*.js"
- },
- "devDependencies" : {
- "tap" : "0.0.x"
- },
- "license" : "MIT/X11",
- "engines": { "node": "*" }
-}
diff --git a/node_modules/jade/node_modules/mkdirp/test/chmod.js b/node_modules/jade/node_modules/mkdirp/test/chmod.js
deleted file mode 100644
index 520dcb8e9..000000000
--- a/node_modules/jade/node_modules/mkdirp/test/chmod.js
+++ /dev/null
@@ -1,38 +0,0 @@
-var mkdirp = require('../').mkdirp;
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-var ps = [ '', 'tmp' ];
-
-for (var i = 0; i < 25; i++) {
- var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
- ps.push(dir);
-}
-
-var file = ps.join('/');
-
-test('chmod-pre', function (t) {
- var mode = 0744
- mkdirp(file, mode, function (er) {
- t.ifError(er, 'should not error');
- fs.stat(file, function (er, stat) {
- t.ifError(er, 'should exist');
- t.ok(stat && stat.isDirectory(), 'should be directory');
- t.equal(stat && stat.mode & 0777, mode, 'should be 0744');
- t.end();
- });
- });
-});
-
-test('chmod', function (t) {
- var mode = 0755
- mkdirp(file, mode, function (er) {
- t.ifError(er, 'should not error');
- fs.stat(file, function (er, stat) {
- t.ifError(er, 'should exist');
- t.ok(stat && stat.isDirectory(), 'should be directory');
- t.end();
- });
- });
-});
diff --git a/node_modules/jade/node_modules/mkdirp/test/clobber.js b/node_modules/jade/node_modules/mkdirp/test/clobber.js
deleted file mode 100644
index 0eb709987..000000000
--- a/node_modules/jade/node_modules/mkdirp/test/clobber.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var mkdirp = require('../').mkdirp;
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-var ps = [ '', 'tmp' ];
-
-for (var i = 0; i < 25; i++) {
- var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
- ps.push(dir);
-}
-
-var file = ps.join('/');
-
-// a file in the way
-var itw = ps.slice(0, 3).join('/');
-
-
-test('clobber-pre', function (t) {
- console.error("about to write to "+itw)
- fs.writeFileSync(itw, 'I AM IN THE WAY, THE TRUTH, AND THE LIGHT.');
-
- fs.stat(itw, function (er, stat) {
- t.ifError(er)
- t.ok(stat && stat.isFile(), 'should be file')
- t.end()
- })
-})
-
-test('clobber', function (t) {
- t.plan(2);
- mkdirp(file, 0755, function (err) {
- t.ok(err);
- t.equal(err.code, 'ENOTDIR');
- t.end();
- });
-});
diff --git a/node_modules/jade/node_modules/mkdirp/test/mkdirp.js b/node_modules/jade/node_modules/mkdirp/test/mkdirp.js
deleted file mode 100644
index b07cd70c1..000000000
--- a/node_modules/jade/node_modules/mkdirp/test/mkdirp.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('woo', function (t) {
- t.plan(2);
- var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
- var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
- var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-
- var file = '/tmp/' + [x,y,z].join('/');
-
- mkdirp(file, 0755, function (err) {
- if (err) t.fail(err);
- else path.exists(file, function (ex) {
- if (!ex) t.fail('file not created')
- else fs.stat(file, function (err, stat) {
- if (err) t.fail(err)
- else {
- t.equal(stat.mode & 0777, 0755);
- t.ok(stat.isDirectory(), 'target not a directory');
- t.end();
- }
- })
- })
- });
-});
diff --git a/node_modules/jade/node_modules/mkdirp/test/perm.js b/node_modules/jade/node_modules/mkdirp/test/perm.js
deleted file mode 100644
index 23a7abbd2..000000000
--- a/node_modules/jade/node_modules/mkdirp/test/perm.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('async perm', function (t) {
- t.plan(2);
- var file = '/tmp/' + (Math.random() * (1<<30)).toString(16);
-
- mkdirp(file, 0755, function (err) {
- if (err) t.fail(err);
- else path.exists(file, function (ex) {
- if (!ex) t.fail('file not created')
- else fs.stat(file, function (err, stat) {
- if (err) t.fail(err)
- else {
- t.equal(stat.mode & 0777, 0755);
- t.ok(stat.isDirectory(), 'target not a directory');
- t.end();
- }
- })
- })
- });
-});
-
-test('async root perm', function (t) {
- mkdirp('/tmp', 0755, function (err) {
- if (err) t.fail(err);
- t.end();
- });
- t.end();
-});
diff --git a/node_modules/jade/node_modules/mkdirp/test/perm_sync.js b/node_modules/jade/node_modules/mkdirp/test/perm_sync.js
deleted file mode 100644
index f685f6090..000000000
--- a/node_modules/jade/node_modules/mkdirp/test/perm_sync.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('sync perm', function (t) {
- t.plan(2);
- var file = '/tmp/' + (Math.random() * (1<<30)).toString(16) + '.json';
-
- mkdirp.sync(file, 0755);
- path.exists(file, function (ex) {
- if (!ex) t.fail('file not created')
- else fs.stat(file, function (err, stat) {
- if (err) t.fail(err)
- else {
- t.equal(stat.mode & 0777, 0755);
- t.ok(stat.isDirectory(), 'target not a directory');
- t.end();
- }
- })
- });
-});
-
-test('sync root perm', function (t) {
- t.plan(1);
-
- var file = '/tmp';
- mkdirp.sync(file, 0755);
- path.exists(file, function (ex) {
- if (!ex) t.fail('file not created')
- else fs.stat(file, function (err, stat) {
- if (err) t.fail(err)
- else {
- t.ok(stat.isDirectory(), 'target not a directory');
- t.end();
- }
- })
- });
-});
diff --git a/node_modules/jade/node_modules/mkdirp/test/race.js b/node_modules/jade/node_modules/mkdirp/test/race.js
deleted file mode 100644
index 96a044763..000000000
--- a/node_modules/jade/node_modules/mkdirp/test/race.js
+++ /dev/null
@@ -1,41 +0,0 @@
-var mkdirp = require('../').mkdirp;
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('race', function (t) {
- t.plan(4);
- var ps = [ '', 'tmp' ];
-
- for (var i = 0; i < 25; i++) {
- var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
- ps.push(dir);
- }
- var file = ps.join('/');
-
- var res = 2;
- mk(file, function () {
- if (--res === 0) t.end();
- });
-
- mk(file, function () {
- if (--res === 0) t.end();
- });
-
- function mk (file, cb) {
- mkdirp(file, 0755, function (err) {
- if (err) t.fail(err);
- else path.exists(file, function (ex) {
- if (!ex) t.fail('file not created')
- else fs.stat(file, function (err, stat) {
- if (err) t.fail(err)
- else {
- t.equal(stat.mode & 0777, 0755);
- t.ok(stat.isDirectory(), 'target not a directory');
- if (cb) cb();
- }
- })
- })
- });
- }
-});
diff --git a/node_modules/jade/node_modules/mkdirp/test/rel.js b/node_modules/jade/node_modules/mkdirp/test/rel.js
deleted file mode 100644
index 79858243a..000000000
--- a/node_modules/jade/node_modules/mkdirp/test/rel.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('rel', function (t) {
- t.plan(2);
- var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
- var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
- var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-
- var cwd = process.cwd();
- process.chdir('/tmp');
-
- var file = [x,y,z].join('/');
-
- mkdirp(file, 0755, function (err) {
- if (err) t.fail(err);
- else path.exists(file, function (ex) {
- if (!ex) t.fail('file not created')
- else fs.stat(file, function (err, stat) {
- if (err) t.fail(err)
- else {
- process.chdir(cwd);
- t.equal(stat.mode & 0777, 0755);
- t.ok(stat.isDirectory(), 'target not a directory');
- t.end();
- }
- })
- })
- });
-});
diff --git a/node_modules/jade/node_modules/mkdirp/test/sync.js b/node_modules/jade/node_modules/mkdirp/test/sync.js
deleted file mode 100644
index e0e389dea..000000000
--- a/node_modules/jade/node_modules/mkdirp/test/sync.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('sync', function (t) {
- t.plan(2);
- var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
- var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
- var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-
- var file = '/tmp/' + [x,y,z].join('/');
-
- var err = mkdirp.sync(file, 0755);
- if (err) t.fail(err);
- else path.exists(file, function (ex) {
- if (!ex) t.fail('file not created')
- else fs.stat(file, function (err, stat) {
- if (err) t.fail(err)
- else {
- t.equal(stat.mode & 0777, 0755);
- t.ok(stat.isDirectory(), 'target not a directory');
- t.end();
- }
- })
- })
-});
diff --git a/node_modules/jade/node_modules/mkdirp/test/umask.js b/node_modules/jade/node_modules/mkdirp/test/umask.js
deleted file mode 100644
index 64ccafe22..000000000
--- a/node_modules/jade/node_modules/mkdirp/test/umask.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('implicit mode from umask', function (t) {
- t.plan(2);
- var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
- var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
- var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-
- var file = '/tmp/' + [x,y,z].join('/');
-
- mkdirp(file, function (err) {
- if (err) t.fail(err);
- else path.exists(file, function (ex) {
- if (!ex) t.fail('file not created')
- else fs.stat(file, function (err, stat) {
- if (err) t.fail(err)
- else {
- t.equal(stat.mode & 0777, 0777 & (~process.umask()));
- t.ok(stat.isDirectory(), 'target not a directory');
- t.end();
- }
- })
- })
- });
-});
diff --git a/node_modules/jade/node_modules/mkdirp/test/umask_sync.js b/node_modules/jade/node_modules/mkdirp/test/umask_sync.js
deleted file mode 100644
index 83cba560f..000000000
--- a/node_modules/jade/node_modules/mkdirp/test/umask_sync.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('umask sync modes', function (t) {
- t.plan(2);
- var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
- var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
- var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-
- var file = '/tmp/' + [x,y,z].join('/');
-
- var err = mkdirp.sync(file);
- if (err) t.fail(err);
- else path.exists(file, function (ex) {
- if (!ex) t.fail('file not created')
- else fs.stat(file, function (err, stat) {
- if (err) t.fail(err)
- else {
- t.equal(stat.mode & 0777, (0777 & (~process.umask())));
- t.ok(stat.isDirectory(), 'target not a directory');
- t.end();
- }
- })
- })
-});
diff --git a/node_modules/jade/package.json b/node_modules/jade/package.json
deleted file mode 100644
index e91d8ac59..000000000
--- a/node_modules/jade/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "jade",
- "description": "Jade template engine",
- "version": "0.26.3",
- "author": "TJ Holowaychuk <tj@vision-media.ca>",
- "repository": "git://github.com/visionmedia/jade",
- "main": "./index.js",
- "bin": { "jade": "./bin/jade" },
- "man": "./jade.1",
- "dependencies": {
- "commander": "0.6.1",
- "mkdirp": "0.3.0"
- },
- "devDependencies": {
- "mocha": "*",
- "markdown": "*",
- "stylus": "*",
- "uubench": "*",
- "should": "*",
- "less": "*",
- "uglify-js": "*"
- },
- "component": {
- "scripts": {
- "jade": "runtime.js"
- }
- },
- "scripts" : { "prepublish" : "npm prune" }
-}
diff --git a/node_modules/jade/runtime.js b/node_modules/jade/runtime.js
deleted file mode 100644
index 0f5490778..000000000
--- a/node_modules/jade/runtime.js
+++ /dev/null
@@ -1,179 +0,0 @@
-
-jade = (function(exports){
-/*!
- * Jade - runtime
- * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Lame Array.isArray() polyfill for now.
- */
-
-if (!Array.isArray) {
- Array.isArray = function(arr){
- return '[object Array]' == Object.prototype.toString.call(arr);
- };
-}
-
-/**
- * Lame Object.keys() polyfill for now.
- */
-
-if (!Object.keys) {
- Object.keys = function(obj){
- var arr = [];
- for (var key in obj) {
- if (obj.hasOwnProperty(key)) {
- arr.push(key);
- }
- }
- return arr;
- }
-}
-
-/**
- * Merge two attribute objects giving precedence
- * to values in object `b`. Classes are special-cased
- * allowing for arrays and merging/joining appropriately
- * resulting in a string.
- *
- * @param {Object} a
- * @param {Object} b
- * @return {Object} a
- * @api private
- */
-
-exports.merge = function merge(a, b) {
- var ac = a['class'];
- var bc = b['class'];
-
- if (ac || bc) {
- ac = ac || [];
- bc = bc || [];
- if (!Array.isArray(ac)) ac = [ac];
- if (!Array.isArray(bc)) bc = [bc];
- ac = ac.filter(nulls);
- bc = bc.filter(nulls);
- a['class'] = ac.concat(bc).join(' ');
- }
-
- for (var key in b) {
- if (key != 'class') {
- a[key] = b[key];
- }
- }
-
- return a;
-};
-
-/**
- * Filter null `val`s.
- *
- * @param {Mixed} val
- * @return {Mixed}
- * @api private
- */
-
-function nulls(val) {
- return val != null;
-}
-
-/**
- * Render the given attributes object.
- *
- * @param {Object} obj
- * @param {Object} escaped
- * @return {String}
- * @api private
- */
-
-exports.attrs = function attrs(obj, escaped){
- var buf = []
- , terse = obj.terse;
-
- delete obj.terse;
- var keys = Object.keys(obj)
- , len = keys.length;
-
- if (len) {
- buf.push('');
- for (var i = 0; i < len; ++i) {
- var key = keys[i]
- , val = obj[key];
-
- if ('boolean' == typeof val || null == val) {
- if (val) {
- terse
- ? buf.push(key)
- : buf.push(key + '="' + key + '"');
- }
- } else if (0 == key.indexOf('data') && 'string' != typeof val) {
- buf.push(key + "='" + JSON.stringify(val) + "'");
- } else if ('class' == key && Array.isArray(val)) {
- buf.push(key + '="' + exports.escape(val.join(' ')) + '"');
- } else if (escaped && escaped[key]) {
- buf.push(key + '="' + exports.escape(val) + '"');
- } else {
- buf.push(key + '="' + val + '"');
- }
- }
- }
-
- return buf.join(' ');
-};
-
-/**
- * Escape the given string of `html`.
- *
- * @param {String} html
- * @return {String}
- * @api private
- */
-
-exports.escape = function escape(html){
- return String(html)
- .replace(/&(?!(\w+|\#\d+);)/g, '&amp;')
- .replace(/</g, '&lt;')
- .replace(/>/g, '&gt;')
- .replace(/"/g, '&quot;');
-};
-
-/**
- * Re-throw the given `err` in context to the
- * the jade in `filename` at the given `lineno`.
- *
- * @param {Error} err
- * @param {String} filename
- * @param {String} lineno
- * @api private
- */
-
-exports.rethrow = function rethrow(err, filename, lineno){
- if (!filename) throw err;
-
- var context = 3
- , str = require('fs').readFileSync(filename, 'utf8')
- , lines = str.split('\n')
- , start = Math.max(lineno - context, 0)
- , end = Math.min(lines.length, lineno + context);
-
- // Error context
- var context = lines.slice(start, end).map(function(line, i){
- var curr = i + start + 1;
- return (curr == lineno ? ' > ' : ' ')
- + curr
- + '| '
- + line;
- }).join('\n');
-
- // Alter exception message
- err.path = filename;
- err.message = (filename || 'Jade') + ':' + lineno
- + '\n' + context + '\n\n' + err.message;
- throw err;
-};
-
- return exports;
-
-})({});
diff --git a/node_modules/jade/runtime.min.js b/node_modules/jade/runtime.min.js
deleted file mode 100644
index 1714efb00..000000000
--- a/node_modules/jade/runtime.min.js
+++ /dev/null
@@ -1 +0,0 @@
-jade=function(exports){Array.isArray||(Array.isArray=function(arr){return"[object Array]"==Object.prototype.toString.call(arr)}),Object.keys||(Object.keys=function(obj){var arr=[];for(var key in obj)obj.hasOwnProperty(key)&&arr.push(key);return arr}),exports.merge=function merge(a,b){var ac=a["class"],bc=b["class"];if(ac||bc)ac=ac||[],bc=bc||[],Array.isArray(ac)||(ac=[ac]),Array.isArray(bc)||(bc=[bc]),ac=ac.filter(nulls),bc=bc.filter(nulls),a["class"]=ac.concat(bc).join(" ");for(var key in b)key!="class"&&(a[key]=b[key]);return a};function nulls(val){return val!=null}return exports.attrs=function attrs(obj,escaped){var buf=[],terse=obj.terse;delete obj.terse;var keys=Object.keys(obj),len=keys.length;if(len){buf.push("");for(var i=0;i<len;++i){var key=keys[i],val=obj[key];"boolean"==typeof val||null==val?val&&(terse?buf.push(key):buf.push(key+'="'+key+'"')):0==key.indexOf("data")&&"string"!=typeof val?buf.push(key+"='"+JSON.stringify(val)+"'"):"class"==key&&Array.isArray(val)?buf.push(key+'="'+exports.escape(val.join(" "))+'"'):escaped&&escaped[key]?buf.push(key+'="'+exports.escape(val)+'"'):buf.push(key+'="'+val+'"')}}return buf.join(" ")},exports.escape=function escape(html){return String(html).replace(/&(?!(\w+|\#\d+);)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")},exports.rethrow=function rethrow(err,filename,lineno){if(!filename)throw err;var context=3,str=require("fs").readFileSync(filename,"utf8"),lines=str.split("\n"),start=Math.max(lineno-context,0),end=Math.min(lines.length,lineno+context),context=lines.slice(start,end).map(function(line,i){var curr=i+start+1;return(curr==lineno?" > ":" ")+curr+"| "+line}).join("\n");throw err.path=filename,err.message=(filename||"Jade")+":"+lineno+"\n"+context+"\n\n"+err.message,err},exports}({}); \ No newline at end of file
diff --git a/node_modules/jade/test.jade b/node_modules/jade/test.jade
deleted file mode 100644
index b3a898895..000000000
--- a/node_modules/jade/test.jade
+++ /dev/null
@@ -1,7 +0,0 @@
-p.
- This is a large
- body of text for
- this tag.
-
- Nothing too
- exciting. \ No newline at end of file
diff --git a/node_modules/jade/testing/head.jade b/node_modules/jade/testing/head.jade
deleted file mode 100644
index 851540622..000000000
--- a/node_modules/jade/testing/head.jade
+++ /dev/null
@@ -1,5 +0,0 @@
-head
- script(src='/jquery.js')
- yield
- if false
- script(src='/jquery.ui.js')
diff --git a/node_modules/jade/testing/index.jade b/node_modules/jade/testing/index.jade
deleted file mode 100644
index 1032c5faf..000000000
--- a/node_modules/jade/testing/index.jade
+++ /dev/null
@@ -1,22 +0,0 @@
-
-tag = 'p'
-foo = 'bar'
-
-#{tag} value
-#{tag}(foo='bar') value
-#{foo ? 'a' : 'li'}(something) here
-
-mixin item(icon)
- li
- if attributes.href
- a(attributes)
- img.icon(src=icon)
- block
- else
- span(attributes)
- img.icon(src=icon)
- block
-
-ul
- +item('contact') Contact
- +item(href='/contact') Contact
diff --git a/node_modules/jade/testing/index.js b/node_modules/jade/testing/index.js
deleted file mode 100644
index 226e8c010..000000000
--- a/node_modules/jade/testing/index.js
+++ /dev/null
@@ -1,11 +0,0 @@
-
-/**
- * Module dependencies.
- */
-
-var jade = require('../');
-
-jade.renderFile('testing/index.jade', { pretty: true, debug: true, compileDebug: false }, function(err, str){
- if (err) throw err;
- console.log(str);
-}); \ No newline at end of file
diff --git a/node_modules/jade/testing/layout.jade b/node_modules/jade/testing/layout.jade
deleted file mode 100644
index 6923cf15e..000000000
--- a/node_modules/jade/testing/layout.jade
+++ /dev/null
@@ -1,6 +0,0 @@
-html
- include head
- script(src='/caustic.js')
- script(src='/app.js')
- body
- block content \ No newline at end of file
diff --git a/node_modules/jade/testing/user.jade b/node_modules/jade/testing/user.jade
deleted file mode 100644
index 3c636b7c9..000000000
--- a/node_modules/jade/testing/user.jade
+++ /dev/null
@@ -1,7 +0,0 @@
-h1 Tobi
-p Is a ferret
-
-ul
- li: a foo
- li: a bar
- li: a baz \ No newline at end of file
diff --git a/node_modules/jade/testing/user.js b/node_modules/jade/testing/user.js
deleted file mode 100644
index 2ecc45eda..000000000
--- a/node_modules/jade/testing/user.js
+++ /dev/null
@@ -1,27 +0,0 @@
-function anonymous(locals, attrs, escape, rethrow) {
-var attrs = jade.attrs, escape = jade.escape, rethrow = jade.rethrow;
-var __jade = [{ lineno: 1, filename: "testing/user.jade" }];
-try {
-var buf = [];
-with (locals || {}) {
-var interp;
-__jade.unshift({ lineno: 1, filename: __jade[0].filename });
-__jade.unshift({ lineno: 1, filename: __jade[0].filename });
-buf.push('<h1>Tobi');
-__jade.unshift({ lineno: undefined, filename: __jade[0].filename });
-__jade.shift();
-buf.push('</h1>');
-__jade.shift();
-__jade.unshift({ lineno: 2, filename: __jade[0].filename });
-buf.push('<p>Is a ferret');
-__jade.unshift({ lineno: undefined, filename: __jade[0].filename });
-__jade.shift();
-buf.push('</p>');
-__jade.shift();
-__jade.shift();
-}
-return buf.join("");
-} catch (err) {
- rethrow(err, __jade[0].filename, __jade[0].lineno);
-}
-} \ No newline at end of file
diff --git a/node_modules/js-yaml/node_modules/.bin/esparse b/node_modules/js-yaml/node_modules/.bin/esparse
index 7423b18b2..d3e4b572c 120000
--- a/node_modules/js-yaml/node_modules/.bin/esparse
+++ b/node_modules/js-yaml/node_modules/.bin/esparse
@@ -1 +1 @@
-../esprima/bin/esparse.js \ No newline at end of file
+../../../esprima/bin/esparse.js \ No newline at end of file
diff --git a/node_modules/js-yaml/node_modules/.bin/esvalidate b/node_modules/js-yaml/node_modules/.bin/esvalidate
index 16069effb..f8ef4b99d 120000
--- a/node_modules/js-yaml/node_modules/.bin/esvalidate
+++ b/node_modules/js-yaml/node_modules/.bin/esvalidate
@@ -1 +1 @@
-../esprima/bin/esvalidate.js \ No newline at end of file
+../../../esprima/bin/esvalidate.js \ No newline at end of file
diff --git a/node_modules/js-yaml/node_modules/esprima/ChangeLog b/node_modules/js-yaml/node_modules/esprima/ChangeLog
deleted file mode 100644
index 23bcdc788..000000000
--- a/node_modules/js-yaml/node_modules/esprima/ChangeLog
+++ /dev/null
@@ -1,209 +0,0 @@
-2016-12-22: Version 3.1.3
-
- * Support binding patterns as rest element (issue 1681)
- * Account for different possible arguments of a yield expression (issue 1469)
-
-2016-11-24: Version 3.1.2
-
- * Ensure that import specifier is more restrictive (issue 1615)
- * Fix duplicated JSX tokens (issue 1613)
- * Scan template literal in a JSX expression container (issue 1622)
- * Improve XHTML entity scanning in JSX (issue 1629)
-
-2016-10-31: Version 3.1.1
-
- * Fix assignment expression problem in an export declaration (issue 1596)
- * Fix incorrect tokenization of hex digits (issue 1605)
-
-2016-10-09: Version 3.1.0
-
- * Do not implicitly collect comments when comment attachment is specified (issue 1553)
- * Fix incorrect handling of duplicated proto shorthand fields (issue 1485)
- * Prohibit initialization in some variants of for statements (issue 1309, 1561)
- * Fix incorrect parsing of export specifier (issue 1578)
- * Fix ESTree compatibility for assignment pattern (issue 1575)
-
-2016-09-03: Version 3.0.0
-
- * Support ES2016 exponentiation expression (issue 1490)
- * Support JSX syntax (issue 1467)
- * Use the latest Unicode 8.0 (issue 1475)
- * Add the support for syntax node delegate (issue 1435)
- * Fix ESTree compatibility on meta property (issue 1338)
- * Fix ESTree compatibility on default parameter value (issue 1081)
- * Fix ESTree compatibility on try handler (issue 1030)
-
-2016-08-23: Version 2.7.3
-
- * Fix tokenizer confusion with a comment (issue 1493, 1516)
-
-2016-02-02: Version 2.7.2
-
- * Fix out-of-bound error location in an invalid string literal (issue 1457)
- * Fix shorthand object destructuring defaults in variable declarations (issue 1459)
-
-2015-12-10: Version 2.7.1
-
- * Do not allow trailing comma in a variable declaration (issue 1360)
- * Fix assignment to `let` in non-strict mode (issue 1376)
- * Fix missing delegate property in YieldExpression (issue 1407)
-
-2015-10-22: Version 2.7.0
-
- * Fix the handling of semicolon in a break statement (issue 1044)
- * Run the test suite with major web browsers (issue 1259, 1317)
- * Allow `let` as an identifier in non-strict mode (issue 1289)
- * Attach orphaned comments as `innerComments` (issue 1328)
- * Add the support for token delegator (issue 1332)
-
-2015-09-01: Version 2.6.0
-
- * Properly allow or prohibit `let` in a binding identifier/pattern (issue 1048, 1098)
- * Add sourceType field for Program node (issue 1159)
- * Ensure that strict mode reserved word binding throw an error (issue 1171)
- * Run the test suite with Node.js and IE 11 on Windows (issue 1294)
- * Allow binding pattern with no initializer in a for statement (issue 1301)
-
-2015-07-31: Version 2.5.0
-
- * Run the test suite in a browser environment (issue 1004)
- * Ensure a comma between imported default binding and named imports (issue 1046)
- * Distinguish `yield` as a keyword vs an identifier (issue 1186)
- * Support ES6 meta property `new.target` (issue 1203)
- * Fix the syntax node for yield with expression (issue 1223)
- * Fix the check of duplicated proto in property names (issue 1225)
- * Fix ES6 Unicode escape in identifier name (issue 1229)
- * Support ES6 IdentifierStart and IdentifierPart (issue 1232)
- * Treat await as a reserved word when parsing as a module (issue 1234)
- * Recognize identifier characters from Unicode SMP (issue 1244)
- * Ensure that export and import can be followed by a comma (issue 1250)
- * Fix yield operator precedence (issue 1262)
-
-2015-07-01: Version 2.4.1
-
- * Fix some cases of comment attachment (issue 1071, 1175)
- * Fix the handling of destructuring in function arguments (issue 1193)
- * Fix invalid ranges in assignment expression (issue 1201)
-
-2015-06-26: Version 2.4.0
-
- * Support ES6 for-of iteration (issue 1047)
- * Support ES6 spread arguments (issue 1169)
- * Minimize npm payload (issue 1191)
-
-2015-06-16: Version 2.3.0
-
- * Support ES6 generator (issue 1033)
- * Improve parsing of regular expressions with `u` flag (issue 1179)
-
-2015-04-17: Version 2.2.0
-
- * Support ES6 import and export declarations (issue 1000)
- * Fix line terminator before arrow not recognized as error (issue 1009)
- * Support ES6 destructuring (issue 1045)
- * Support ES6 template literal (issue 1074)
- * Fix the handling of invalid/incomplete string escape sequences (issue 1106)
- * Fix ES3 static member access restriction (issue 1120)
- * Support for `super` in ES6 class (issue 1147)
-
-2015-03-09: Version 2.1.0
-
- * Support ES6 class (issue 1001)
- * Support ES6 rest parameter (issue 1011)
- * Expand the location of property getter, setter, and methods (issue 1029)
- * Enable TryStatement transition to a single handler (issue 1031)
- * Support ES6 computed property name (issue 1037)
- * Tolerate unclosed block comment (issue 1041)
- * Support ES6 lexical declaration (issue 1065)
-
-2015-02-06: Version 2.0.0
-
- * Support ES6 arrow function (issue 517)
- * Support ES6 Unicode code point escape (issue 521)
- * Improve the speed and accuracy of comment attachment (issue 522)
- * Support ES6 default parameter (issue 519)
- * Support ES6 regular expression flags (issue 557)
- * Fix scanning of implicit octal literals (issue 565)
- * Fix the handling of automatic semicolon insertion (issue 574)
- * Support ES6 method definition (issue 620)
- * Support ES6 octal integer literal (issue 621)
- * Support ES6 binary integer literal (issue 622)
- * Support ES6 object literal property value shorthand (issue 624)
-
-2015-03-03: Version 1.2.5
-
- * Fix scanning of implicit octal literals (issue 565)
-
-2015-02-05: Version 1.2.4
-
- * Fix parsing of LeftHandSideExpression in ForInStatement (issue 560)
- * Fix the handling of automatic semicolon insertion (issue 574)
-
-2015-01-18: Version 1.2.3
-
- * Fix division by this (issue 616)
-
-2014-05-18: Version 1.2.2
-
- * Fix duplicated tokens when collecting comments (issue 537)
-
-2014-05-04: Version 1.2.1
-
- * Ensure that Program node may still have leading comments (issue 536)
-
-2014-04-29: Version 1.2.0
-
- * Fix semicolon handling for expression statement (issue 462, 533)
- * Disallow escaped characters in regular expression flags (issue 503)
- * Performance improvement for location tracking (issue 520)
- * Improve the speed of comment attachment (issue 522)
-
-2014-03-26: Version 1.1.1
-
- * Fix token handling of forward slash after an array literal (issue 512)
-
-2014-03-23: Version 1.1.0
-
- * Optionally attach comments to the owning syntax nodes (issue 197)
- * Simplify binary parsing with stack-based shift reduce (issue 352)
- * Always include the raw source of literals (issue 376)
- * Add optional input source information (issue 386)
- * Tokenizer API for pure lexical scanning (issue 398)
- * Improve the web site and its online demos (issue 337, 400, 404)
- * Performance improvement for location tracking (issue 417, 424)
- * Support HTML comment syntax (issue 451)
- * Drop support for legacy browsers (issue 474)
-
-2013-08-27: Version 1.0.4
-
- * Minimize the payload for packages (issue 362)
- * Fix missing cases on an empty switch statement (issue 436)
- * Support escaped ] in regexp literal character classes (issue 442)
- * Tolerate invalid left-hand side expression (issue 130)
-
-2013-05-17: Version 1.0.3
-
- * Variable declaration needs at least one declarator (issue 391)
- * Fix benchmark's variance unit conversion (issue 397)
- * IE < 9: \v should be treated as vertical tab (issue 405)
- * Unary expressions should always have prefix: true (issue 418)
- * Catch clause should only accept an identifier (issue 423)
- * Tolerate setters without parameter (issue 426)
-
-2012-11-02: Version 1.0.2
-
- Improvement:
-
- * Fix esvalidate JUnit output upon a syntax error (issue 374)
-
-2012-10-28: Version 1.0.1
-
- Improvements:
-
- * esvalidate understands shebang in a Unix shell script (issue 361)
- * esvalidate treats fatal parsing failure as an error (issue 361)
- * Reduce Node.js package via .npmignore (issue 362)
-
-2012-10-22: Version 1.0.0
-
- Initial release.
diff --git a/node_modules/js-yaml/node_modules/esprima/LICENSE.BSD b/node_modules/js-yaml/node_modules/esprima/LICENSE.BSD
deleted file mode 100644
index 7a55160f5..000000000
--- a/node_modules/js-yaml/node_modules/esprima/LICENSE.BSD
+++ /dev/null
@@ -1,21 +0,0 @@
-Copyright JS Foundation and other contributors, https://js.foundation/
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/node_modules/js-yaml/node_modules/esprima/README.md b/node_modules/js-yaml/node_modules/esprima/README.md
deleted file mode 100644
index e59d08333..000000000
--- a/node_modules/js-yaml/node_modules/esprima/README.md
+++ /dev/null
@@ -1,44 +0,0 @@
-[![NPM version](https://img.shields.io/npm/v/esprima.svg)](https://www.npmjs.com/package/esprima)
-[![npm download](https://img.shields.io/npm/dm/esprima.svg)](https://www.npmjs.com/package/esprima)
-[![Build Status](https://img.shields.io/travis/jquery/esprima/master.svg)](https://travis-ci.org/jquery/esprima)
-[![Coverage Status](https://img.shields.io/codecov/c/github/jquery/esprima/master.svg)](https://codecov.io/github/jquery/esprima)
-
-**Esprima** ([esprima.org](http://esprima.org), BSD license) is a high performance,
-standard-compliant [ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm)
-parser written in ECMAScript (also popularly known as
-[JavaScript](https://en.wikipedia.org/wiki/JavaScript)).
-Esprima is created and maintained by [Ariya Hidayat](https://twitter.com/ariyahidayat),
-with the help of [many contributors](https://github.com/jquery/esprima/contributors).
-
-### Features
-
-- Full support for ECMAScript 2016 ([ECMA-262 7th Edition](http://www.ecma-international.org/publications/standards/Ecma-262.htm))
-- Sensible [syntax tree format](https://github.com/estree/estree/blob/master/es5.md) as standardized by [ESTree project](https://github.com/estree/estree)
-- Experimental support for [JSX](https://facebook.github.io/jsx/), a syntax extension for [React](https://facebook.github.io/react/)
-- Optional tracking of syntax node location (index-based and line-column)
-- [Heavily tested](http://esprima.org/test/ci.html) (~1300 [unit tests](https://github.com/jquery/esprima/tree/master/test/fixtures) with [full code coverage](https://codecov.io/github/jquery/esprima))
-
-### API
-
-Esprima can be used to perform [lexical analysis](https://en.wikipedia.org/wiki/Lexical_analysis) (tokenization) or [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program.
-
-A simple example on Node.js REPL:
-
-```javascript
-> var esprima = require('esprima');
-> var program = 'const answer = 42';
-
-> esprima.tokenize(program);
-[ { type: 'Keyword', value: 'const' },
- { type: 'Identifier', value: 'answer' },
- { type: 'Punctuator', value: '=' },
- { type: 'Numeric', value: '42' } ]
-
-> esprima.parse(program);
-{ type: 'Program',
- body:
- [ { type: 'VariableDeclaration',
- declarations: [Object],
- kind: 'const' } ],
- sourceType: 'script' }
-```
diff --git a/node_modules/js-yaml/node_modules/esprima/bin/esparse.js b/node_modules/js-yaml/node_modules/esprima/bin/esparse.js
deleted file mode 100755
index 45d05fbb7..000000000
--- a/node_modules/js-yaml/node_modules/esprima/bin/esparse.js
+++ /dev/null
@@ -1,139 +0,0 @@
-#!/usr/bin/env node
-/*
- Copyright JS Foundation and other contributors, https://js.foundation/
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*jslint sloppy:true node:true rhino:true */
-
-var fs, esprima, fname, forceFile, content, options, syntax;
-
-if (typeof require === 'function') {
- fs = require('fs');
- try {
- esprima = require('esprima');
- } catch (e) {
- esprima = require('../');
- }
-} else if (typeof load === 'function') {
- try {
- load('esprima.js');
- } catch (e) {
- load('../esprima.js');
- }
-}
-
-// Shims to Node.js objects when running under Rhino.
-if (typeof console === 'undefined' && typeof process === 'undefined') {
- console = { log: print };
- fs = { readFileSync: readFile };
- process = { argv: arguments, exit: quit };
- process.argv.unshift('esparse.js');
- process.argv.unshift('rhino');
-}
-
-function showUsage() {
- console.log('Usage:');
- console.log(' esparse [options] [file.js]');
- console.log();
- console.log('Available options:');
- console.log();
- console.log(' --comment Gather all line and block comments in an array');
- console.log(' --loc Include line-column location info for each syntax node');
- console.log(' --range Include index-based range for each syntax node');
- console.log(' --raw Display the raw value of literals');
- console.log(' --tokens List all tokens in an array');
- console.log(' --tolerant Tolerate errors on a best-effort basis (experimental)');
- console.log(' -v, --version Shows program version');
- console.log();
- process.exit(1);
-}
-
-options = {};
-
-process.argv.splice(2).forEach(function (entry) {
-
- if (forceFile || entry === '-' || entry.slice(0, 1) !== '-') {
- if (typeof fname === 'string') {
- console.log('Error: more than one input file.');
- process.exit(1);
- } else {
- fname = entry;
- }
- } else if (entry === '-h' || entry === '--help') {
- showUsage();
- } else if (entry === '-v' || entry === '--version') {
- console.log('ECMAScript Parser (using Esprima version', esprima.version, ')');
- console.log();
- process.exit(0);
- } else if (entry === '--comment') {
- options.comment = true;
- } else if (entry === '--loc') {
- options.loc = true;
- } else if (entry === '--range') {
- options.range = true;
- } else if (entry === '--raw') {
- options.raw = true;
- } else if (entry === '--tokens') {
- options.tokens = true;
- } else if (entry === '--tolerant') {
- options.tolerant = true;
- } else if (entry === '--') {
- forceFile = true;
- } else {
- console.log('Error: unknown option ' + entry + '.');
- process.exit(1);
- }
-});
-
-// Special handling for regular expression literal since we need to
-// convert it to a string literal, otherwise it will be decoded
-// as object "{}" and the regular expression would be lost.
-function adjustRegexLiteral(key, value) {
- if (key === 'value' && value instanceof RegExp) {
- value = value.toString();
- }
- return value;
-}
-
-function run(content) {
- syntax = esprima.parse(content, options);
- console.log(JSON.stringify(syntax, adjustRegexLiteral, 4));
-}
-
-try {
- if (fname && (fname !== '-' || forceFile)) {
- run(fs.readFileSync(fname, 'utf-8'));
- } else {
- var content = '';
- process.stdin.resume();
- process.stdin.on('data', function(chunk) {
- content += chunk;
- });
- process.stdin.on('end', function() {
- run(content);
- });
- }
-} catch (e) {
- console.log('Error: ' + e.message);
- process.exit(1);
-}
diff --git a/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js b/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js
deleted file mode 100755
index 4faf760e2..000000000
--- a/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js
+++ /dev/null
@@ -1,236 +0,0 @@
-#!/usr/bin/env node
-/*
- Copyright JS Foundation and other contributors, https://js.foundation/
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*jslint sloppy:true plusplus:true node:true rhino:true */
-/*global phantom:true */
-
-var fs, system, esprima, options, fnames, forceFile, count;
-
-if (typeof esprima === 'undefined') {
- // PhantomJS can only require() relative files
- if (typeof phantom === 'object') {
- fs = require('fs');
- system = require('system');
- esprima = require('./esprima');
- } else if (typeof require === 'function') {
- fs = require('fs');
- try {
- esprima = require('esprima');
- } catch (e) {
- esprima = require('../');
- }
- } else if (typeof load === 'function') {
- try {
- load('esprima.js');
- } catch (e) {
- load('../esprima.js');
- }
- }
-}
-
-// Shims to Node.js objects when running under PhantomJS 1.7+.
-if (typeof phantom === 'object') {
- fs.readFileSync = fs.read;
- process = {
- argv: [].slice.call(system.args),
- exit: phantom.exit,
- on: function (evt, callback) {
- callback();
- }
- };
- process.argv.unshift('phantomjs');
-}
-
-// Shims to Node.js objects when running under Rhino.
-if (typeof console === 'undefined' && typeof process === 'undefined') {
- console = { log: print };
- fs = { readFileSync: readFile };
- process = {
- argv: arguments,
- exit: quit,
- on: function (evt, callback) {
- callback();
- }
- };
- process.argv.unshift('esvalidate.js');
- process.argv.unshift('rhino');
-}
-
-function showUsage() {
- console.log('Usage:');
- console.log(' esvalidate [options] [file.js...]');
- console.log();
- console.log('Available options:');
- console.log();
- console.log(' --format=type Set the report format, plain (default) or junit');
- console.log(' -v, --version Print program version');
- console.log();
- process.exit(1);
-}
-
-options = {
- format: 'plain'
-};
-
-fnames = [];
-
-process.argv.splice(2).forEach(function (entry) {
-
- if (forceFile || entry === '-' || entry.slice(0, 1) !== '-') {
- fnames.push(entry);
- } else if (entry === '-h' || entry === '--help') {
- showUsage();
- } else if (entry === '-v' || entry === '--version') {
- console.log('ECMAScript Validator (using Esprima version', esprima.version, ')');
- console.log();
- process.exit(0);
- } else if (entry.slice(0, 9) === '--format=') {
- options.format = entry.slice(9);
- if (options.format !== 'plain' && options.format !== 'junit') {
- console.log('Error: unknown report format ' + options.format + '.');
- process.exit(1);
- }
- } else if (entry === '--') {
- forceFile = true;
- } else {
- console.log('Error: unknown option ' + entry + '.');
- process.exit(1);
- }
-});
-
-if (fnames.length === 0) {
- fnames.push('');
-}
-
-if (options.format === 'junit') {
- console.log('<?xml version="1.0" encoding="UTF-8"?>');
- console.log('<testsuites>');
-}
-
-count = 0;
-
-function run(fname, content) {
- var timestamp, syntax, name;
- try {
- if (typeof content !== 'string') {
- throw content;
- }
-
- if (content[0] === '#' && content[1] === '!') {
- content = '//' + content.substr(2, content.length);
- }
-
- timestamp = Date.now();
- syntax = esprima.parse(content, { tolerant: true });
-
- if (options.format === 'junit') {
-
- name = fname;
- if (name.lastIndexOf('/') >= 0) {
- name = name.slice(name.lastIndexOf('/') + 1);
- }
-
- console.log('<testsuite name="' + fname + '" errors="0" ' +
- ' failures="' + syntax.errors.length + '" ' +
- ' tests="' + syntax.errors.length + '" ' +
- ' time="' + Math.round((Date.now() - timestamp) / 1000) +
- '">');
-
- syntax.errors.forEach(function (error) {
- var msg = error.message;
- msg = msg.replace(/^Line\ [0-9]*\:\ /, '');
- console.log(' <testcase name="Line ' + error.lineNumber + ': ' + msg + '" ' +
- ' time="0">');
- console.log(' <error type="SyntaxError" message="' + error.message + '">' +
- error.message + '(' + name + ':' + error.lineNumber + ')' +
- '</error>');
- console.log(' </testcase>');
- });
-
- console.log('</testsuite>');
-
- } else if (options.format === 'plain') {
-
- syntax.errors.forEach(function (error) {
- var msg = error.message;
- msg = msg.replace(/^Line\ [0-9]*\:\ /, '');
- msg = fname + ':' + error.lineNumber + ': ' + msg;
- console.log(msg);
- ++count;
- });
-
- }
- } catch (e) {
- ++count;
- if (options.format === 'junit') {
- console.log('<testsuite name="' + fname + '" errors="1" failures="0" tests="1" ' +
- ' time="' + Math.round((Date.now() - timestamp) / 1000) + '">');
- console.log(' <testcase name="' + e.message + '" ' + ' time="0">');
- console.log(' <error type="ParseError" message="' + e.message + '">' +
- e.message + '(' + fname + ((e.lineNumber) ? ':' + e.lineNumber : '') +
- ')</error>');
- console.log(' </testcase>');
- console.log('</testsuite>');
- } else {
- console.log('Error: ' + e.message);
- }
- }
-}
-
-fnames.forEach(function (fname) {
- var content = '';
- try {
- if (fname && (fname !== '-' || forceFile)) {
- content = fs.readFileSync(fname, 'utf-8');
- } else {
- fname = '';
- process.stdin.resume();
- process.stdin.on('data', function(chunk) {
- content += chunk;
- });
- process.stdin.on('end', function() {
- run(fname, content);
- });
- return;
- }
- } catch (e) {
- content = e;
- }
- run(fname, content);
-});
-
-process.on('exit', function () {
- if (options.format === 'junit') {
- console.log('</testsuites>');
- }
-
- if (count > 0) {
- process.exit(1);
- }
-
- if (count === 0 && typeof phantom === 'object') {
- process.exit(0);
- }
-});
diff --git a/node_modules/js-yaml/node_modules/esprima/dist/esprima.js b/node_modules/js-yaml/node_modules/esprima/dist/esprima.js
deleted file mode 100644
index 34675c03d..000000000
--- a/node_modules/js-yaml/node_modules/esprima/dist/esprima.js
+++ /dev/null
@@ -1,6401 +0,0 @@
-(function webpackUniversalModuleDefinition(root, factory) {
-/* istanbul ignore next */
- if(typeof exports === 'object' && typeof module === 'object')
- module.exports = factory();
- else if(typeof define === 'function' && define.amd)
- define([], factory);
-/* istanbul ignore next */
- else if(typeof exports === 'object')
- exports["esprima"] = factory();
- else
- root["esprima"] = factory();
-})(this, function() {
-return /******/ (function(modules) { // webpackBootstrap
-/******/ // The module cache
-/******/ var installedModules = {};
-
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-
-/******/ // Check if module is in cache
-/* istanbul ignore if */
-/******/ if(installedModules[moduleId])
-/******/ return installedModules[moduleId].exports;
-
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = installedModules[moduleId] = {
-/******/ exports: {},
-/******/ id: moduleId,
-/******/ loaded: false
-/******/ };
-
-/******/ // Execute the module function
-/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-
-/******/ // Flag the module as loaded
-/******/ module.loaded = true;
-
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-
-
-/******/ // expose the modules object (__webpack_modules__)
-/******/ __webpack_require__.m = modules;
-
-/******/ // expose the module cache
-/******/ __webpack_require__.c = installedModules;
-
-/******/ // __webpack_public_path__
-/******/ __webpack_require__.p = "";
-
-/******/ // Load entry module and return exports
-/******/ return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ function(module, exports, __webpack_require__) {
-
- /*
- Copyright JS Foundation and other contributors, https://js.foundation/
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
- "use strict";
- var comment_handler_1 = __webpack_require__(1);
- var parser_1 = __webpack_require__(3);
- var jsx_parser_1 = __webpack_require__(11);
- var tokenizer_1 = __webpack_require__(15);
- function parse(code, options, delegate) {
- var commentHandler = null;
- var proxyDelegate = function (node, metadata) {
- if (delegate) {
- delegate(node, metadata);
- }
- if (commentHandler) {
- commentHandler.visit(node, metadata);
- }
- };
- var parserDelegate = (typeof delegate === 'function') ? proxyDelegate : null;
- var collectComment = false;
- if (options) {
- collectComment = (typeof options.comment === 'boolean' && options.comment);
- var attachComment = (typeof options.attachComment === 'boolean' && options.attachComment);
- if (collectComment || attachComment) {
- commentHandler = new comment_handler_1.CommentHandler();
- commentHandler.attach = attachComment;
- options.comment = true;
- parserDelegate = proxyDelegate;
- }
- }
- var parser;
- if (options && typeof options.jsx === 'boolean' && options.jsx) {
- parser = new jsx_parser_1.JSXParser(code, options, parserDelegate);
- }
- else {
- parser = new parser_1.Parser(code, options, parserDelegate);
- }
- var ast = (parser.parseProgram());
- if (collectComment) {
- ast.comments = commentHandler.comments;
- }
- if (parser.config.tokens) {
- ast.tokens = parser.tokens;
- }
- if (parser.config.tolerant) {
- ast.errors = parser.errorHandler.errors;
- }
- return ast;
- }
- exports.parse = parse;
- function tokenize(code, options, delegate) {
- var tokenizer = new tokenizer_1.Tokenizer(code, options);
- var tokens;
- tokens = [];
- try {
- while (true) {
- var token = tokenizer.getNextToken();
- if (!token) {
- break;
- }
- if (delegate) {
- token = delegate(token);
- }
- tokens.push(token);
- }
- }
- catch (e) {
- tokenizer.errorHandler.tolerate(e);
- }
- if (tokenizer.errorHandler.tolerant) {
- tokens.errors = tokenizer.errors();
- }
- return tokens;
- }
- exports.tokenize = tokenize;
- var syntax_1 = __webpack_require__(2);
- exports.Syntax = syntax_1.Syntax;
- // Sync with *.json manifests.
- exports.version = '3.1.3';
-
-
-/***/ },
-/* 1 */
-/***/ function(module, exports, __webpack_require__) {
-
- "use strict";
- var syntax_1 = __webpack_require__(2);
- var CommentHandler = (function () {
- function CommentHandler() {
- this.attach = false;
- this.comments = [];
- this.stack = [];
- this.leading = [];
- this.trailing = [];
- }
- CommentHandler.prototype.insertInnerComments = function (node, metadata) {
- // innnerComments for properties empty block
- // `function a() {/** comments **\/}`
- if (node.type === syntax_1.Syntax.BlockStatement && node.body.length === 0) {
- var innerComments = [];
- for (var i = this.leading.length - 1; i >= 0; --i) {
- var entry = this.leading[i];
- if (metadata.end.offset >= entry.start) {
- innerComments.unshift(entry.comment);
- this.leading.splice(i, 1);
- this.trailing.splice(i, 1);
- }
- }
- if (innerComments.length) {
- node.innerComments = innerComments;
- }
- }
- };
- CommentHandler.prototype.findTrailingComments = function (node, metadata) {
- var trailingComments = [];
- if (this.trailing.length > 0) {
- for (var i = this.trailing.length - 1; i >= 0; --i) {
- var entry_1 = this.trailing[i];
- if (entry_1.start >= metadata.end.offset) {
- trailingComments.unshift(entry_1.comment);
- }
- }
- this.trailing.length = 0;
- return trailingComments;
- }
- var entry = this.stack[this.stack.length - 1];
- if (entry && entry.node.trailingComments) {
- var firstComment = entry.node.trailingComments[0];
- if (firstComment && firstComment.range[0] >= metadata.end.offset) {
- trailingComments = entry.node.trailingComments;
- delete entry.node.trailingComments;
- }
- }
- return trailingComments;
- };
- CommentHandler.prototype.findLeadingComments = function (node, metadata) {
- var leadingComments = [];
- var target;
- while (this.stack.length > 0) {
- var entry = this.stack[this.stack.length - 1];
- if (entry && entry.start >= metadata.start.offset) {
- target = this.stack.pop().node;
- }
- else {
- break;
- }
- }
- if (target) {
- var count = target.leadingComments ? target.leadingComments.length : 0;
- for (var i = count - 1; i >= 0; --i) {
- var comment = target.leadingComments[i];
- if (comment.range[1] <= metadata.start.offset) {
- leadingComments.unshift(comment);
- target.leadingComments.splice(i, 1);
- }
- }
- if (target.leadingComments && target.leadingComments.length === 0) {
- delete target.leadingComments;
- }
- return leadingComments;
- }
- for (var i = this.leading.length - 1; i >= 0; --i) {
- var entry = this.leading[i];
- if (entry.start <= metadata.start.offset) {
- leadingComments.unshift(entry.comment);
- this.leading.splice(i, 1);
- }
- }
- return leadingComments;
- };
- CommentHandler.prototype.visitNode = function (node, metadata) {
- if (node.type === syntax_1.Syntax.Program && node.body.length > 0) {
- return;
- }
- this.insertInnerComments(node, metadata);
- var trailingComments = this.findTrailingComments(node, metadata);
- var leadingComments = this.findLeadingComments(node, metadata);
- if (leadingComments.length > 0) {
- node.leadingComments = leadingComments;
- }
- if (trailingComments.length > 0) {
- node.trailingComments = trailingComments;
- }
- this.stack.push({
- node: node,
- start: metadata.start.offset
- });
- };
- CommentHandler.prototype.visitComment = function (node, metadata) {
- var type = (node.type[0] === 'L') ? 'Line' : 'Block';
- var comment = {
- type: type,
- value: node.value
- };
- if (node.range) {
- comment.range = node.range;
- }
- if (node.loc) {
- comment.loc = node.loc;
- }
- this.comments.push(comment);
- if (this.attach) {
- var entry = {
- comment: {
- type: type,
- value: node.value,
- range: [metadata.start.offset, metadata.end.offset]
- },
- start: metadata.start.offset
- };
- if (node.loc) {
- entry.comment.loc = node.loc;
- }
- node.type = type;
- this.leading.push(entry);
- this.trailing.push(entry);
- }
- };
- CommentHandler.prototype.visit = function (node, metadata) {
- if (node.type === 'LineComment') {
- this.visitComment(node, metadata);
- }
- else if (node.type === 'BlockComment') {
- this.visitComment(node, metadata);
- }
- else if (this.attach) {
- this.visitNode(node, metadata);
- }
- };
- return CommentHandler;
- }());
- exports.CommentHandler = CommentHandler;
-
-
-/***/ },
-/* 2 */
-/***/ function(module, exports) {
-
- "use strict";
- exports.Syntax = {
- AssignmentExpression: 'AssignmentExpression',
- AssignmentPattern: 'AssignmentPattern',
- ArrayExpression: 'ArrayExpression',
- ArrayPattern: 'ArrayPattern',
- ArrowFunctionExpression: 'ArrowFunctionExpression',
- BlockStatement: 'BlockStatement',
- BinaryExpression: 'BinaryExpression',
- BreakStatement: 'BreakStatement',
- CallExpression: 'CallExpression',
- CatchClause: 'CatchClause',
- ClassBody: 'ClassBody',
- ClassDeclaration: 'ClassDeclaration',
- ClassExpression: 'ClassExpression',
- ConditionalExpression: 'ConditionalExpression',
- ContinueStatement: 'ContinueStatement',
- DoWhileStatement: 'DoWhileStatement',
- DebuggerStatement: 'DebuggerStatement',
- EmptyStatement: 'EmptyStatement',
- ExportAllDeclaration: 'ExportAllDeclaration',
- ExportDefaultDeclaration: 'ExportDefaultDeclaration',
- ExportNamedDeclaration: 'ExportNamedDeclaration',
- ExportSpecifier: 'ExportSpecifier',
- ExpressionStatement: 'ExpressionStatement',
- ForStatement: 'ForStatement',
- ForOfStatement: 'ForOfStatement',
- ForInStatement: 'ForInStatement',
- FunctionDeclaration: 'FunctionDeclaration',
- FunctionExpression: 'FunctionExpression',
- Identifier: 'Identifier',
- IfStatement: 'IfStatement',
- ImportDeclaration: 'ImportDeclaration',
- ImportDefaultSpecifier: 'ImportDefaultSpecifier',
- ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',
- ImportSpecifier: 'ImportSpecifier',
- Literal: 'Literal',
- LabeledStatement: 'LabeledStatement',
- LogicalExpression: 'LogicalExpression',
- MemberExpression: 'MemberExpression',
- MetaProperty: 'MetaProperty',
- MethodDefinition: 'MethodDefinition',
- NewExpression: 'NewExpression',
- ObjectExpression: 'ObjectExpression',
- ObjectPattern: 'ObjectPattern',
- Program: 'Program',
- Property: 'Property',
- RestElement: 'RestElement',
- ReturnStatement: 'ReturnStatement',
- SequenceExpression: 'SequenceExpression',
- SpreadElement: 'SpreadElement',
- Super: 'Super',
- SwitchCase: 'SwitchCase',
- SwitchStatement: 'SwitchStatement',
- TaggedTemplateExpression: 'TaggedTemplateExpression',
- TemplateElement: 'TemplateElement',
- TemplateLiteral: 'TemplateLiteral',
- ThisExpression: 'ThisExpression',
- ThrowStatement: 'ThrowStatement',
- TryStatement: 'TryStatement',
- UnaryExpression: 'UnaryExpression',
- UpdateExpression: 'UpdateExpression',
- VariableDeclaration: 'VariableDeclaration',
- VariableDeclarator: 'VariableDeclarator',
- WhileStatement: 'WhileStatement',
- WithStatement: 'WithStatement',
- YieldExpression: 'YieldExpression'
- };
-
-
-/***/ },
-/* 3 */
-/***/ function(module, exports, __webpack_require__) {
-
- "use strict";
- var assert_1 = __webpack_require__(4);
- var messages_1 = __webpack_require__(5);
- var error_handler_1 = __webpack_require__(6);
- var token_1 = __webpack_require__(7);
- var scanner_1 = __webpack_require__(8);
- var syntax_1 = __webpack_require__(2);
- var Node = __webpack_require__(10);
- var ArrowParameterPlaceHolder = 'ArrowParameterPlaceHolder';
- var Parser = (function () {
- function Parser(code, options, delegate) {
- if (options === void 0) { options = {}; }
- this.config = {
- range: (typeof options.range === 'boolean') && options.range,
- loc: (typeof options.loc === 'boolean') && options.loc,
- source: null,
- tokens: (typeof options.tokens === 'boolean') && options.tokens,
- comment: (typeof options.comment === 'boolean') && options.comment,
- tolerant: (typeof options.tolerant === 'boolean') && options.tolerant
- };
- if (this.config.loc && options.source && options.source !== null) {
- this.config.source = String(options.source);
- }
- this.delegate = delegate;
- this.errorHandler = new error_handler_1.ErrorHandler();
- this.errorHandler.tolerant = this.config.tolerant;
- this.scanner = new scanner_1.Scanner(code, this.errorHandler);
- this.scanner.trackComment = this.config.comment;
- this.operatorPrecedence = {
- ')': 0,
- ';': 0,
- ',': 0,
- '=': 0,
- ']': 0,
- '||': 1,
- '&&': 2,
- '|': 3,
- '^': 4,
- '&': 5,
- '==': 6,
- '!=': 6,
- '===': 6,
- '!==': 6,
- '<': 7,
- '>': 7,
- '<=': 7,
- '>=': 7,
- '<<': 8,
- '>>': 8,
- '>>>': 8,
- '+': 9,
- '-': 9,
- '*': 11,
- '/': 11,
- '%': 11
- };
- this.sourceType = (options && options.sourceType === 'module') ? 'module' : 'script';
- this.lookahead = null;
- this.hasLineTerminator = false;
- this.context = {
- allowIn: true,
- allowYield: true,
- firstCoverInitializedNameError: null,
- isAssignmentTarget: false,
- isBindingElement: false,
- inFunctionBody: false,
- inIteration: false,
- inSwitch: false,
- labelSet: {},
- strict: (this.sourceType === 'module')
- };
- this.tokens = [];
- this.startMarker = {
- index: 0,
- lineNumber: this.scanner.lineNumber,
- lineStart: 0
- };
- this.lastMarker = {
- index: 0,
- lineNumber: this.scanner.lineNumber,
- lineStart: 0
- };
- this.nextToken();
- this.lastMarker = {
- index: this.scanner.index,
- lineNumber: this.scanner.lineNumber,
- lineStart: this.scanner.lineStart
- };
- }
- Parser.prototype.throwError = function (messageFormat) {
- var values = [];
- for (var _i = 1; _i < arguments.length; _i++) {
- values[_i - 1] = arguments[_i];
- }
- var args = Array.prototype.slice.call(arguments, 1);
- var msg = messageFormat.replace(/%(\d)/g, function (whole, idx) {
- assert_1.assert(idx < args.length, 'Message reference must be in range');
- return args[idx];
- });
- var index = this.lastMarker.index;
- var line = this.lastMarker.lineNumber;
- var column = this.lastMarker.index - this.lastMarker.lineStart + 1;
- throw this.errorHandler.createError(index, line, column, msg);
- };
- Parser.prototype.tolerateError = function (messageFormat) {
- var values = [];
- for (var _i = 1; _i < arguments.length; _i++) {
- values[_i - 1] = arguments[_i];
- }
- var args = Array.prototype.slice.call(arguments, 1);
- var msg = messageFormat.replace(/%(\d)/g, function (whole, idx) {
- assert_1.assert(idx < args.length, 'Message reference must be in range');
- return args[idx];
- });
- var index = this.lastMarker.index;
- var line = this.scanner.lineNumber;
- var column = this.lastMarker.index - this.lastMarker.lineStart + 1;
- this.errorHandler.tolerateError(index, line, column, msg);
- };
- // Throw an exception because of the token.
- Parser.prototype.unexpectedTokenError = function (token, message) {
- var msg = message || messages_1.Messages.UnexpectedToken;
- var value;
- if (token) {
- if (!message) {
- msg = (token.type === token_1.Token.EOF) ? messages_1.Messages.UnexpectedEOS :
- (token.type === token_1.Token.Identifier) ? messages_1.Messages.UnexpectedIdentifier :
- (token.type === token_1.Token.NumericLiteral) ? messages_1.Messages.UnexpectedNumber :
- (token.type === token_1.Token.StringLiteral) ? messages_1.Messages.UnexpectedString :
- (token.type === token_1.Token.Template) ? messages_1.Messages.UnexpectedTemplate :
- messages_1.Messages.UnexpectedToken;
- if (token.type === token_1.Token.Keyword) {
- if (this.scanner.isFutureReservedWord(token.value)) {
- msg = messages_1.Messages.UnexpectedReserved;
- }
- else if (this.context.strict && this.scanner.isStrictModeReservedWord(token.value)) {
- msg = messages_1.Messages.StrictReservedWord;
- }
- }
- }
- value = (token.type === token_1.Token.Template) ? token.value.raw : token.value;
- }
- else {
- value = 'ILLEGAL';
- }
- msg = msg.replace('%0', value);
- if (token && typeof token.lineNumber === 'number') {
- var index = token.start;
- var line = token.lineNumber;
- var column = token.start - this.lastMarker.lineStart + 1;
- return this.errorHandler.createError(index, line, column, msg);
- }
- else {
- var index = this.lastMarker.index;
- var line = this.lastMarker.lineNumber;
- var column = index - this.lastMarker.lineStart + 1;
- return this.errorHandler.createError(index, line, column, msg);
- }
- };
- Parser.prototype.throwUnexpectedToken = function (token, message) {
- throw this.unexpectedTokenError(token, message);
- };
- Parser.prototype.tolerateUnexpectedToken = function (token, message) {
- this.errorHandler.tolerate(this.unexpectedTokenError(token, message));
- };
- Parser.prototype.collectComments = function () {
- if (!this.config.comment) {
- this.scanner.scanComments();
- }
- else {
- var comments = this.scanner.scanComments();
- if (comments.length > 0 && this.delegate) {
- for (var i = 0; i < comments.length; ++i) {
- var e = comments[i];
- var node = void 0;
- node = {
- type: e.multiLine ? 'BlockComment' : 'LineComment',
- value: this.scanner.source.slice(e.slice[0], e.slice[1])
- };
- if (this.config.range) {
- node.range = e.range;
- }
- if (this.config.loc) {
- node.loc = e.loc;
- }
- var metadata = {
- start: {
- line: e.loc.start.line,
- column: e.loc.start.column,
- offset: e.range[0]
- },
- end: {
- line: e.loc.end.line,
- column: e.loc.end.column,
- offset: e.range[1]
- }
- };
- this.delegate(node, metadata);
- }
- }
- }
- };
- // From internal representation to an external structure
- Parser.prototype.getTokenRaw = function (token) {
- return this.scanner.source.slice(token.start, token.end);
- };
- Parser.prototype.convertToken = function (token) {
- var t;
- t = {
- type: token_1.TokenName[token.type],
- value: this.getTokenRaw(token)
- };
- if (this.config.range) {
- t.range = [token.start, token.end];
- }
- if (this.config.loc) {
- t.loc = {
- start: {
- line: this.startMarker.lineNumber,
- column: this.startMarker.index - this.startMarker.lineStart
- },
- end: {
- line: this.scanner.lineNumber,
- column: this.scanner.index - this.scanner.lineStart
- }
- };
- }
- if (token.regex) {
- t.regex = token.regex;
- }
- return t;
- };
- Parser.prototype.nextToken = function () {
- var token = this.lookahead;
- this.lastMarker.index = this.scanner.index;
- this.lastMarker.lineNumber = this.scanner.lineNumber;
- this.lastMarker.lineStart = this.scanner.lineStart;
- this.collectComments();
- this.startMarker.index = this.scanner.index;
- this.startMarker.lineNumber = this.scanner.lineNumber;
- this.startMarker.lineStart = this.scanner.lineStart;
- var next;
- next = this.scanner.lex();
- this.hasLineTerminator = (token && next) ? (token.lineNumber !== next.lineNumber) : false;
- if (next && this.context.strict && next.type === token_1.Token.Identifier) {
- if (this.scanner.isStrictModeReservedWord(next.value)) {
- next.type = token_1.Token.Keyword;
- }
- }
- this.lookahead = next;
- if (this.config.tokens && next.type !== token_1.Token.EOF) {
- this.tokens.push(this.convertToken(next));
- }
- return token;
- };
- Parser.prototype.nextRegexToken = function () {
- this.collectComments();
- var token = this.scanner.scanRegExp();
- if (this.config.tokens) {
- // Pop the previous token, '/' or '/='
- // This is added from the lookahead token.
- this.tokens.pop();
- this.tokens.push(this.convertToken(token));
- }
- // Prime the next lookahead.
- this.lookahead = token;
- this.nextToken();
- return token;
- };
- Parser.prototype.createNode = function () {
- return {
- index: this.startMarker.index,
- line: this.startMarker.lineNumber,
- column: this.startMarker.index - this.startMarker.lineStart
- };
- };
- Parser.prototype.startNode = function (token) {
- return {
- index: token.start,
- line: token.lineNumber,
- column: token.start - token.lineStart
- };
- };
- Parser.prototype.finalize = function (meta, node) {
- if (this.config.range) {
- node.range = [meta.index, this.lastMarker.index];
- }
- if (this.config.loc) {
- node.loc = {
- start: {
- line: meta.line,
- column: meta.column
- },
- end: {
- line: this.lastMarker.lineNumber,
- column: this.lastMarker.index - this.lastMarker.lineStart
- }
- };
- if (this.config.source) {
- node.loc.source = this.config.source;
- }
- }
- if (this.delegate) {
- var metadata = {
- start: {
- line: meta.line,
- column: meta.column,
- offset: meta.index
- },
- end: {
- line: this.lastMarker.lineNumber,
- column: this.lastMarker.index - this.lastMarker.lineStart,
- offset: this.lastMarker.index
- }
- };
- this.delegate(node, metadata);
- }
- return node;
- };
- // Expect the next token to match the specified punctuator.
- // If not, an exception will be thrown.
- Parser.prototype.expect = function (value) {
- var token = this.nextToken();
- if (token.type !== token_1.Token.Punctuator || token.value !== value) {
- this.throwUnexpectedToken(token);
- }
- };
- // Quietly expect a comma when in tolerant mode, otherwise delegates to expect().
- Parser.prototype.expectCommaSeparator = function () {
- if (this.config.tolerant) {
- var token = this.lookahead;
- if (token.type === token_1.Token.Punctuator && token.value === ',') {
- this.nextToken();
- }
- else if (token.type === token_1.Token.Punctuator && token.value === ';') {
- this.nextToken();
- this.tolerateUnexpectedToken(token);
- }
- else {
- this.tolerateUnexpectedToken(token, messages_1.Messages.UnexpectedToken);
- }
- }
- else {
- this.expect(',');
- }
- };
- // Expect the next token to match the specified keyword.
- // If not, an exception will be thrown.
- Parser.prototype.expectKeyword = function (keyword) {
- var token = this.nextToken();
- if (token.type !== token_1.Token.Keyword || token.value !== keyword) {
- this.throwUnexpectedToken(token);
- }
- };
- // Return true if the next token matches the specified punctuator.
- Parser.prototype.match = function (value) {
- return this.lookahead.type === token_1.Token.Punctuator && this.lookahead.value === value;
- };
- // Return true if the next token matches the specified keyword
- Parser.prototype.matchKeyword = function (keyword) {
- return this.lookahead.type === token_1.Token.Keyword && this.lookahead.value === keyword;
- };
- // Return true if the next token matches the specified contextual keyword
- // (where an identifier is sometimes a keyword depending on the context)
- Parser.prototype.matchContextualKeyword = function (keyword) {
- return this.lookahead.type === token_1.Token.Identifier && this.lookahead.value === keyword;
- };
- // Return true if the next token is an assignment operator
- Parser.prototype.matchAssign = function () {
- if (this.lookahead.type !== token_1.Token.Punctuator) {
- return false;
- }
- var op = this.lookahead.value;
- return op === '=' ||
- op === '*=' ||
- op === '**=' ||
- op === '/=' ||
- op === '%=' ||
- op === '+=' ||
- op === '-=' ||
- op === '<<=' ||
- op === '>>=' ||
- op === '>>>=' ||
- op === '&=' ||
- op === '^=' ||
- op === '|=';
- };
- // Cover grammar support.
- //
- // When an assignment expression position starts with an left parenthesis, the determination of the type
- // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead)
- // or the first comma. This situation also defers the determination of all the expressions nested in the pair.
- //
- // There are three productions that can be parsed in a parentheses pair that needs to be determined
- // after the outermost pair is closed. They are:
- //
- // 1. AssignmentExpression
- // 2. BindingElements
- // 3. AssignmentTargets
- //
- // In order to avoid exponential backtracking, we use two flags to denote if the production can be
- // binding element or assignment target.
- //
- // The three productions have the relationship:
- //
- // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression
- //
- // with a single exception that CoverInitializedName when used directly in an Expression, generates
- // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the
- // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair.
- //
- // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not
- // effect the current flags. This means the production the parser parses is only used as an expression. Therefore
- // the CoverInitializedName check is conducted.
- //
- // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates
- // the flags outside of the parser. This means the production the parser parses is used as a part of a potential
- // pattern. The CoverInitializedName check is deferred.
- Parser.prototype.isolateCoverGrammar = function (parseFunction) {
- var previousIsBindingElement = this.context.isBindingElement;
- var previousIsAssignmentTarget = this.context.isAssignmentTarget;
- var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;
- this.context.isBindingElement = true;
- this.context.isAssignmentTarget = true;
- this.context.firstCoverInitializedNameError = null;
- var result = parseFunction.call(this);
- if (this.context.firstCoverInitializedNameError !== null) {
- this.throwUnexpectedToken(this.context.firstCoverInitializedNameError);
- }
- this.context.isBindingElement = previousIsBindingElement;
- this.context.isAssignmentTarget = previousIsAssignmentTarget;
- this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError;
- return result;
- };
- Parser.prototype.inheritCoverGrammar = function (parseFunction) {
- var previousIsBindingElement = this.context.isBindingElement;
- var previousIsAssignmentTarget = this.context.isAssignmentTarget;
- var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;
- this.context.isBindingElement = true;
- this.context.isAssignmentTarget = true;
- this.context.firstCoverInitializedNameError = null;
- var result = parseFunction.call(this);
- this.context.isBindingElement = this.context.isBindingElement && previousIsBindingElement;
- this.context.isAssignmentTarget = this.context.isAssignmentTarget && previousIsAssignmentTarget;
- this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError || this.context.firstCoverInitializedNameError;
- return result;
- };
- Parser.prototype.consumeSemicolon = function () {
- if (this.match(';')) {
- this.nextToken();
- }
- else if (!this.hasLineTerminator) {
- if (this.lookahead.type !== token_1.Token.EOF && !this.match('}')) {
- this.throwUnexpectedToken(this.lookahead);
- }
- this.lastMarker.index = this.startMarker.index;
- this.lastMarker.lineNumber = this.startMarker.lineNumber;
- this.lastMarker.lineStart = this.startMarker.lineStart;
- }
- };
- // ECMA-262 12.2 Primary Expressions
- Parser.prototype.parsePrimaryExpression = function () {
- var node = this.createNode();
- var expr;
- var value, token, raw;
- switch (this.lookahead.type) {
- case token_1.Token.Identifier:
- if (this.sourceType === 'module' && this.lookahead.value === 'await') {
- this.tolerateUnexpectedToken(this.lookahead);
- }
- expr = this.finalize(node, new Node.Identifier(this.nextToken().value));
- break;
- case token_1.Token.NumericLiteral:
- case token_1.Token.StringLiteral:
- if (this.context.strict && this.lookahead.octal) {
- this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.StrictOctalLiteral);
- }
- this.context.isAssignmentTarget = false;
- this.context.isBindingElement = false;
- token = this.nextToken();
- raw = this.getTokenRaw(token);
- expr = this.finalize(node, new Node.Literal(token.value, raw));
- break;
- case token_1.Token.BooleanLiteral:
- this.context.isAssignmentTarget = false;
- this.context.isBindingElement = false;
- token = this.nextToken();
- token.value = (token.value === 'true');
- raw = this.getTokenRaw(token);
- expr = this.finalize(node, new Node.Literal(token.value, raw));
- break;
- case token_1.Token.NullLiteral:
- this.context.isAssignmentTarget = false;
- this.context.isBindingElement = false;
- token = this.nextToken();
- token.value = null;
- raw = this.getTokenRaw(token);
- expr = this.finalize(node, new Node.Literal(token.value, raw));
- break;
- case token_1.Token.Template:
- expr = this.parseTemplateLiteral();
- break;
- case token_1.Token.Punctuator:
- value = this.lookahead.value;
- switch (value) {
- case '(':
- this.context.isBindingElement = false;
- expr = this.inheritCoverGrammar(this.parseGroupExpression);
- break;
- case '[':
- expr = this.inheritCoverGrammar(this.parseArrayInitializer);
- break;
- case '{':
- expr = this.inheritCoverGrammar(this.parseObjectInitializer);
- break;
- case '/':
- case '/=':
- this.context.isAssignmentTarget = false;
- this.context.isBindingElement = false;
- this.scanner.index = this.startMarker.index;
- token = this.nextRegexToken();
- raw = this.getTokenRaw(token);
- expr = this.finalize(node, new Node.RegexLiteral(token.value, raw, token.regex));
- break;
- default:
- this.throwUnexpectedToken(this.nextToken());
- }
- break;
- case token_1.Token.Keyword:
- if (!this.context.strict && this.context.allowYield && this.matchKeyword('yield')) {
- expr = this.parseIdentifierName();
- }
- else if (!this.context.strict && this.matchKeyword('let')) {
- expr = this.finalize(node, new Node.Identifier(this.nextToken().value));
- }
- else {
- this.context.isAssignmentTarget = false;
- this.context.isBindingElement = false;
- if (this.matchKeyword('function')) {
- expr = this.parseFunctionExpression();
- }
- else if (this.matchKeyword('this')) {
- this.nextToken();
- expr = this.finalize(node, new Node.ThisExpression());
- }
- else if (this.matchKeyword('class')) {
- expr = this.parseClassExpression();
- }
- else {
- this.throwUnexpectedToken(this.nextToken());
- }
- }
- break;
- default:
- this.throwUnexpectedToken(this.nextToken());
- }
- return expr;
- };
- // ECMA-262 12.2.5 Array Initializer
- Parser.prototype.parseSpreadElement = function () {
- var node = this.createNode();
- this.expect('...');
- var arg = this.inheritCoverGrammar(this.parseAssignmentExpression);
- return this.finalize(node, new Node.SpreadElement(arg));
- };
- Parser.prototype.parseArrayInitializer = function () {
- var node = this.createNode();
- var elements = [];
- this.expect('[');
- while (!this.match(']')) {
- if (this.match(',')) {
- this.nextToken();
- elements.push(null);
- }
- else if (this.match('...')) {
- var element = this.parseSpreadElement();
- if (!this.match(']')) {
- this.context.isAssignmentTarget = false;
- this.context.isBindingElement = false;
- this.expect(',');
- }
- elements.push(element);
- }
- else {
- elements.push(this.inheritCoverGrammar(this.parseAssignmentExpression));
- if (!this.match(']')) {
- this.expect(',');
- }
- }
- }
- this.expect(']');
- return this.finalize(node, new Node.ArrayExpression(elements));
- };
- // ECMA-262 12.2.6 Object Initializer
- Parser.prototype.parsePropertyMethod = function (params) {
- this.context.isAssignmentTarget = false;
- this.context.isBindingElement = false;
- var previousStrict = this.context.strict;
- var body = this.isolateCoverGrammar(this.parseFunctionSourceElements);
- if (this.context.strict && params.firstRestricted) {
- this.tolerateUnexpectedToken(params.firstRestricted, params.message);
- }
- if (this.context.strict && params.stricted) {
- this.tolerateUnexpectedToken(params.stricted, params.message);
- }
- this.context.strict = previousStrict;
- return body;
- };
- Parser.prototype.parsePropertyMethodFunction = function () {
- var isGenerator = false;
- var node = this.createNode();
- var previousAllowYield = this.context.allowYield;
- this.context.allowYield = false;
- var params = this.parseFormalParameters();
- var method = this.parsePropertyMethod(params);
- this.context.allowYield = previousAllowYield;
- return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));
- };
- Parser.prototype.parseObjectPropertyKey = function () {
- var node = this.createNode();
- var token = this.nextToken();
- var key = null;
- switch (token.type) {
- case token_1.Token.StringLiteral:
- case token_1.Token.NumericLiteral:
- if (this.context.strict && token.octal) {
- this.tolerateUnexpectedToken(token, messages_1.Messages.StrictOctalLiteral);
- }
- var raw = this.getTokenRaw(token);
- key = this.finalize(node, new Node.Literal(token.value, raw));
- break;
- case token_1.Token.Identifier:
- case token_1.Token.BooleanLiteral:
- case token_1.Token.NullLiteral:
- case token_1.Token.Keyword:
- key = this.finalize(node, new Node.Identifier(token.value));
- break;
- case token_1.Token.Punctuator:
- if (token.value === '[') {
- key = this.isolateCoverGrammar(this.parseAssignmentExpression);
- this.expect(']');
- }
- else {
- this.throwUnexpectedToken(token);
- }
- break;
- default:
- this.throwUnexpectedToken(token);
- }
- return key;
- };
- Parser.prototype.isPropertyKey = function (key, value) {
- return (key.type === syntax_1.Syntax.Identifier && key.name === value) ||
- (key.type === syntax_1.Syntax.Literal && key.value === value);
- };
- Parser.prototype.parseObjectProperty = function (hasProto) {
- var node = this.createNode();
- var token = this.lookahead;
- var kind;
- var key;
- var value;
- var computed = false;
- var method = false;
- var shorthand = false;
- if (token.type === token_1.Token.Identifier) {
- this.nextToken();
- key = this.finalize(node, new Node.Identifier(token.value));
- }
- else if (this.match('*')) {
- this.nextToken();
- }
- else {
- computed = this.match('[');
- key = this.parseObjectPropertyKey();
- }
- var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);
- if (token.type === token_1.Token.Identifier && token.value === 'get' && lookaheadPropertyKey) {
- kind = 'get';
- computed = this.match('[');
- key = this.parseObjectPropertyKey();
- this.context.allowYield = false;
- value = this.parseGetterMethod();
- }
- else if (token.type === token_1.Token.Identifier && token.value === 'set' && lookaheadPropertyKey) {
- kind = 'set';
- computed = this.match('[');
- key = this.parseObjectPropertyKey();
- value = this.parseSetterMethod();
- }
- else if (token.type === token_1.Token.Punctuator && token.value === '*' && lookaheadPropertyKey) {
- kind = 'init';
- computed = this.match('[');
- key = this.parseObjectPropertyKey();
- value = this.parseGeneratorMethod();
- method = true;
- }
- else {
- if (!key) {
- this.throwUnexpectedToken(this.lookahead);
- }
- kind = 'init';
- if (this.match(':')) {
- if (!computed && this.isPropertyKey(key, '__proto__')) {
- if (hasProto.value) {
- this.tolerateError(messages_1.Messages.DuplicateProtoProperty);
- }
- hasProto.value = true;
- }
- this.nextToken();
- value = this.inheritCoverGrammar(this.parseAssignmentExpression);
- }
- else if (this.match('(')) {
- value = this.parsePropertyMethodFunction();
- method = true;
- }
- else if (token.type === token_1.Token.Identifier) {
- var id = this.finalize(node, new Node.Identifier(token.value));
- if (this.match('=')) {
- this.context.firstCoverInitializedNameError = this.lookahead;
- this.nextToken();
- shorthand = true;
- var init = this.isolateCoverGrammar(this.parseAssignmentExpression);
- value = this.finalize(node, new Node.AssignmentPattern(id, init));
- }
- else {
- shorthand = true;
- value = id;
- }
- }
- else {
- this.throwUnexpectedToken(this.nextToken());
- }
- }
- return this.finalize(node, new Node.Property(kind, key, computed, value, method, shorthand));
- };
- Parser.prototype.parseObjectInitializer = function () {
- var node = this.createNode();
- this.expect('{');
- var properties = [];
- var hasProto = { value: false };
- while (!this.match('}')) {
- properties.push(this.parseObjectProperty(hasProto));
- if (!this.match('}')) {
- this.expectCommaSeparator();
- }
- }
- this.expect('}');
- return this.finalize(node, new Node.ObjectExpression(properties));
- };
- // ECMA-262 12.2.9 Template Literals
- Parser.prototype.parseTemplateHead = function () {
- assert_1.assert(this.lookahead.head, 'Template literal must start with a template head');
- var node = this.createNode();
- var token = this.nextToken();
- var value = {
- raw: token.value.raw,
- cooked: token.value.cooked
- };
- return this.finalize(node, new Node.TemplateElement(value, token.tail));
- };
- Parser.prototype.parseTemplateElement = function () {
- if (this.lookahead.type !== token_1.Token.Template) {
- this.throwUnexpectedToken();
- }
- var node = this.createNode();
- var token = this.nextToken();
- var value = {
- raw: token.value.raw,
- cooked: token.value.cooked
- };
- return this.finalize(node, new Node.TemplateElement(value, token.tail));
- };
- Parser.prototype.parseTemplateLiteral = function () {
- var node = this.createNode();
- var expressions = [];
- var quasis = [];
- var quasi = this.parseTemplateHead();
- quasis.push(quasi);
- while (!quasi.tail) {
- expressions.push(this.parseExpression());
- quasi = this.parseTemplateElement();
- quasis.push(quasi);
- }
- return this.finalize(node, new Node.TemplateLiteral(quasis, expressions));
- };
- // ECMA-262 12.2.10 The Grouping Operator
- Parser.prototype.reinterpretExpressionAsPattern = function (expr) {
- switch (expr.type) {
- case syntax_1.Syntax.Identifier:
- case syntax_1.Syntax.MemberExpression:
- case syntax_1.Syntax.RestElement:
- case syntax_1.Syntax.AssignmentPattern:
- break;
- case syntax_1.Syntax.SpreadElement:
- expr.type = syntax_1.Syntax.RestElement;
- this.reinterpretExpressionAsPattern(expr.argument);
- break;
- case syntax_1.Syntax.ArrayExpression:
- expr.type = syntax_1.Syntax.ArrayPattern;
- for (var i = 0; i < expr.elements.length; i++) {
- if (expr.elements[i] !== null) {
- this.reinterpretExpressionAsPattern(expr.elements[i]);
- }
- }
- break;
- case syntax_1.Syntax.ObjectExpression:
- expr.type = syntax_1.Syntax.ObjectPattern;
- for (var i = 0; i < expr.properties.length; i++) {
- this.reinterpretExpressionAsPattern(expr.properties[i].value);
- }
- break;
- case syntax_1.Syntax.AssignmentExpression:
- expr.type = syntax_1.Syntax.AssignmentPattern;
- delete expr.operator;
- this.reinterpretExpressionAsPattern(expr.left);
- break;
- default:
- // Allow other node type for tolerant parsing.
- break;
- }
- };
- Parser.prototype.parseGroupExpression = function () {
- var expr;
- this.expect('(');
- if (this.match(')')) {
- this.nextToken();
- if (!this.match('=>')) {
- this.expect('=>');
- }
- expr = {
- type: ArrowParameterPlaceHolder,
- params: []
- };
- }
- else {
- var startToken = this.lookahead;
- var params = [];
- if (this.match('...')) {
- expr = this.parseRestElement(params);
- this.expect(')');
- if (!this.match('=>')) {
- this.expect('=>');
- }
- expr = {
- type: ArrowParameterPlaceHolder,
- params: [expr]
- };
- }
- else {
- var arrow = false;
- this.context.isBindingElement = true;
- expr = this.inheritCoverGrammar(this.parseAssignmentExpression);
- if (this.match(',')) {
- var expressions = [];
- this.context.isAssignmentTarget = false;
- expressions.push(expr);
- while (this.startMarker.index < this.scanner.length) {
- if (!this.match(',')) {
- break;
- }
- this.nextToken();
- if (this.match('...')) {
- if (!this.context.isBindingElement) {
- this.throwUnexpectedToken(this.lookahead);
- }
- expressions.push(this.parseRestElement(params));
- this.expect(')');
- if (!this.match('=>')) {
- this.expect('=>');
- }
- this.context.isBindingElement = false;
- for (var i = 0; i < expressions.length; i++) {
- this.reinterpretExpressionAsPattern(expressions[i]);
- }
- arrow = true;
- expr = {
- type: ArrowParameterPlaceHolder,
- params: expressions
- };
- }
- else {
- expressions.push(this.inheritCoverGrammar(this.parseAssignmentExpression));
- }
- if (arrow) {
- break;
- }
- }
- if (!arrow) {
- expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));
- }
- }
- if (!arrow) {
- this.expect(')');
- if (this.match('=>')) {
- if (expr.type === syntax_1.Syntax.Identifier && expr.name === 'yield') {
- arrow = true;
- expr = {
- type: ArrowParameterPlaceHolder,
- params: [expr]
- };
- }
- if (!arrow) {
- if (!this.context.isBindingElement) {
- this.throwUnexpectedToken(this.lookahead);
- }
- if (expr.type === syntax_1.Syntax.SequenceExpression) {
- for (var i = 0; i < expr.expressions.length; i++) {
- this.reinterpretExpressionAsPattern(expr.expressions[i]);
- }
- }
- else {
- this.reinterpretExpressionAsPattern(expr);
- }
- var params_1 = (expr.type === syntax_1.Syntax.SequenceExpression ? expr.expressions : [expr]);
- expr = {
- type: ArrowParameterPlaceHolder,
- params: params_1
- };
- }
- }
- this.context.isBindingElement = false;
- }
- }
- }
- return expr;
- };
- // ECMA-262 12.3 Left-Hand-Side Expressions
- Parser.prototype.parseArguments = function () {
- this.expect('(');
- var args = [];
- if (!this.match(')')) {
- while (true) {
- var expr = this.match('...') ? this.parseSpreadElement() :
- this.isolateCoverGrammar(this.parseAssignmentExpression);
- args.push(expr);
- if (this.match(')')) {
- break;
- }
- this.expectCommaSeparator();
- }
- }
- this.expect(')');
- return args;
- };
- Parser.prototype.isIdentifierName = function (token) {
- return token.type === token_1.Token.Identifier ||
- token.type === token_1.Token.Keyword ||
- token.type === token_1.Token.BooleanLiteral ||
- token.type === token_1.Token.NullLiteral;
- };
- Parser.prototype.parseIdentifierName = function () {
- var node = this.createNode();
- var token = this.nextToken();
- if (!this.isIdentifierName(token)) {
- this.throwUnexpectedToken(token);
- }
- return this.finalize(node, new Node.Identifier(token.value));
- };
- Parser.prototype.parseNewExpression = function () {
- var node = this.createNode();
- var id = this.parseIdentifierName();
- assert_1.assert(id.name === 'new', 'New expression must start with `new`');
- var expr;
- if (this.match('.')) {
- this.nextToken();
- if (this.lookahead.type === token_1.Token.Identifier && this.context.inFunctionBody && this.lookahead.value === 'target') {
- var property = this.parseIdentifierName();
- expr = new Node.MetaProperty(id, property);
- }
- else {
- this.throwUnexpectedToken(this.lookahead);
- }
- }
- else {
- var callee = this.isolateCoverGrammar(this.parseLeftHandSideExpression);
- var args = this.match('(') ? this.parseArguments() : [];
- expr = new Node.NewExpression(callee, args);
- this.context.isAssignmentTarget = false;
- this.context.isBindingElement = false;
- }
- return this.finalize(node, expr);
- };
- Parser.prototype.parseLeftHandSideExpressionAllowCall = function () {
- var startToken = this.lookahead;
- var previousAllowIn = this.context.allowIn;
- this.context.allowIn = true;
- var expr;
- if (this.matchKeyword('super') && this.context.inFunctionBody) {
- expr = this.createNode();
- this.nextToken();
- expr = this.finalize(expr, new Node.Super());
- if (!this.match('(') && !this.match('.') && !this.match('[')) {
- this.throwUnexpectedToken(this.lookahead);
- }
- }
- else {
- expr = this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);
- }
- while (true) {
- if (this.match('.')) {
- this.context.isBindingElement = false;
- this.context.isAssignmentTarget = true;
- this.expect('.');
- var property = this.parseIdentifierName();
- expr = this.finalize(this.startNode(startToken), new Node.StaticMemberExpression(expr, property));
- }
- else if (this.match('(')) {
- this.context.isBindingElement = false;
- this.context.isAssignmentTarget = false;
- var args = this.parseArguments();
- expr = this.finalize(this.startNode(startToken), new Node.CallExpression(expr, args));
- }
- else if (this.match('[')) {
- this.context.isBindingElement = false;
- this.context.isAssignmentTarget = true;
- this.expect('[');
- var property = this.isolateCoverGrammar(this.parseExpression);
- this.expect(']');
- expr = this.finalize(this.startNode(startToken), new Node.ComputedMemberExpression(expr, property));
- }
- else if (this.lookahead.type === token_1.Token.Template && this.lookahead.head) {
- var quasi = this.parseTemplateLiteral();
- expr = this.finalize(this.startNode(startToken), new Node.TaggedTemplateExpression(expr, quasi));
- }
- else {
- break;
- }
- }
- this.context.allowIn = previousAllowIn;
- return expr;
- };
- Parser.prototype.parseSuper = function () {
- var node = this.createNode();
- this.expectKeyword('super');
- if (!this.match('[') && !this.match('.')) {
- this.throwUnexpectedToken(this.lookahead);
- }
- return this.finalize(node, new Node.Super());
- };
- Parser.prototype.parseLeftHandSideExpression = function () {
- assert_1.assert(this.context.allowIn, 'callee of new expression always allow in keyword.');
- var node = this.startNode(this.lookahead);
- var expr = (this.matchKeyword('super') && this.context.inFunctionBody) ? this.parseSuper() :
- this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);
- while (true) {
- if (this.match('[')) {
- this.context.isBindingElement = false;
- this.context.isAssignmentTarget = true;
- this.expect('[');
- var property = this.isolateCoverGrammar(this.parseExpression);
- this.expect(']');
- expr = this.finalize(node, new Node.ComputedMemberExpression(expr, property));
- }
- else if (this.match('.')) {
- this.context.isBindingElement = false;
- this.context.isAssignmentTarget = true;
- this.expect('.');
- var property = this.parseIdentifierName();
- expr = this.finalize(node, new Node.StaticMemberExpression(expr, property));
- }
- else if (this.lookahead.type === token_1.Token.Template && this.lookahead.head) {
- var quasi = this.parseTemplateLiteral();
- expr = this.finalize(node, new Node.TaggedTemplateExpression(expr, quasi));
- }
- else {
- break;
- }
- }
- return expr;
- };
- // ECMA-262 12.4 Update Expressions
- Parser.prototype.parseUpdateExpression = function () {
- var expr;
- var startToken = this.lookahead;
- if (this.match('++') || this.match('--')) {
- var node = this.startNode(startToken);
- var token = this.nextToken();
- expr = this.inheritCoverGrammar(this.parseUnaryExpression);
- if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {
- this.tolerateError(messages_1.Messages.StrictLHSPrefix);
- }
- if (!this.context.isAssignmentTarget) {
- this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);
- }
- var prefix = true;
- expr = this.finalize(node, new Node.UpdateExpression(token.value, expr, prefix));
- this.context.isAssignmentTarget = false;
- this.context.isBindingElement = false;
- }
- else {
- expr = this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall);
- if (!this.hasLineTerminator && this.lookahead.type === token_1.Token.Punctuator) {
- if (this.match('++') || this.match('--')) {
- if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {
- this.tolerateError(messages_1.Messages.StrictLHSPostfix);
- }
- if (!this.context.isAssignmentTarget) {
- this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);
- }
- this.context.isAssignmentTarget = false;
- this.context.isBindingElement = false;
- var operator = this.nextToken().value;
- var prefix = false;
- expr = this.finalize(this.startNode(startToken), new Node.UpdateExpression(operator, expr, prefix));
- }
- }
- }
- return expr;
- };
- // ECMA-262 12.5 Unary Operators
- Parser.prototype.parseUnaryExpression = function () {
- var expr;
- if (this.match('+') || this.match('-') || this.match('~') || this.match('!') ||
- this.matchKeyword('delete') || this.matchKeyword('void') || this.matchKeyword('typeof')) {
- var node = this.startNode(this.lookahead);
- var token = this.nextToken();
- expr = this.inheritCoverGrammar(this.parseUnaryExpression);
- expr = this.finalize(node, new Node.UnaryExpression(token.value, expr));
- if (this.context.strict && expr.operator === 'delete' && expr.argument.type === syntax_1.Syntax.Identifier) {
- this.tolerateError(messages_1.Messages.StrictDelete);
- }
- this.context.isAssignmentTarget = false;
- this.context.isBindingElement = false;
- }
- else {
- expr = this.parseUpdateExpression();
- }
- return expr;
- };
- Parser.prototype.parseExponentiationExpression = function () {
- var startToken = this.lookahead;
- var expr = this.inheritCoverGrammar(this.parseUnaryExpression);
- if (expr.type !== syntax_1.Syntax.UnaryExpression && this.match('**')) {
- this.nextToken();
- this.context.isAssignmentTarget = false;
- this.context.isBindingElement = false;
- var left = expr;
- var right = this.isolateCoverGrammar(this.parseExponentiationExpression);
- expr = this.finalize(this.startNode(startToken), new Node.BinaryExpression('**', left, right));
- }
- return expr;
- };
- // ECMA-262 12.6 Exponentiation Operators
- // ECMA-262 12.7 Multiplicative Operators
- // ECMA-262 12.8 Additive Operators
- // ECMA-262 12.9 Bitwise Shift Operators
- // ECMA-262 12.10 Relational Operators
- // ECMA-262 12.11 Equality Operators
- // ECMA-262 12.12 Binary Bitwise Operators
- // ECMA-262 12.13 Binary Logical Operators
- Parser.prototype.binaryPrecedence = function (token) {
- var op = token.value;
- var precedence;
- if (token.type === token_1.Token.Punctuator) {
- precedence = this.operatorPrecedence[op] || 0;
- }
- else if (token.type === token_1.Token.Keyword) {
- precedence = (op === 'instanceof' || (this.context.allowIn && op === 'in')) ? 7 : 0;
- }
- else {
- precedence = 0;
- }
- return precedence;
- };
- Parser.prototype.parseBinaryExpression = function () {
- var startToken = this.lookahead;
- var expr = this.inheritCoverGrammar(this.parseExponentiationExpression);
- var token = this.lookahead;
- var prec = this.binaryPrecedence(token);
- if (prec > 0) {
- this.nextToken();
- token.prec = prec;
- this.context.isAssignmentTarget = false;
- this.context.isBindingElement = false;
- var markers = [startToken, this.lookahead];
- var left = expr;
- var right = this.isolateCoverGrammar(this.parseExponentiationExpression);
- var stack = [left, token, right];
- while (true) {
- prec = this.binaryPrecedence(this.lookahead);
- if (prec <= 0) {
- break;
- }
- // Reduce: make a binary expression from the three topmost entries.
- while ((stack.length > 2) && (prec <= stack[stack.length - 2].prec)) {
- right = stack.pop();
- var operator = stack.pop().value;
- left = stack.pop();
- markers.pop();
- var node = this.startNode(markers[markers.length - 1]);
- stack.push(this.finalize(node, new Node.BinaryExpression(operator, left, right)));
- }
- // Shift.
- token = this.nextToken();
- token.prec = prec;
- stack.push(token);
- markers.push(this.lookahead);
- stack.push(this.isolateCoverGrammar(this.parseExponentiationExpression));
- }
- // Final reduce to clean-up the stack.
- var i = stack.length - 1;
- expr = stack[i];
- markers.pop();
- while (i > 1) {
- var node = this.startNode(markers.pop());
- expr = this.finalize(node, new Node.BinaryExpression(stack[i - 1].value, stack[i - 2], expr));
- i -= 2;
- }
- }
- return expr;
- };
- // ECMA-262 12.14 Conditional Operator
- Parser.prototype.parseConditionalExpression = function () {
- var startToken = this.lookahead;
- var expr = this.inheritCoverGrammar(this.parseBinaryExpression);
- if (this.match('?')) {
- this.nextToken();
- var previousAllowIn = this.context.allowIn;
- this.context.allowIn = true;
- var consequent = this.isolateCoverGrammar(this.parseAssignmentExpression);
- this.context.allowIn = previousAllowIn;
- this.expect(':');
- var alternate = this.isolateCoverGrammar(this.parseAssignmentExpression);
- expr = this.finalize(this.startNode(startToken), new Node.ConditionalExpression(expr, consequent, alternate));
- this.context.isAssignmentTarget = false;
- this.context.isBindingElement = false;
- }
- return expr;
- };
- // ECMA-262 12.15 Assignment Operators
- Parser.prototype.checkPatternParam = function (options, param) {
- switch (param.type) {
- case syntax_1.Syntax.Identifier:
- this.validateParam(options, param, param.name);
- break;
- case syntax_1.Syntax.RestElement:
- this.checkPatternParam(options, param.argument);
- break;
- case syntax_1.Syntax.AssignmentPattern:
- this.checkPatternParam(options, param.left);
- break;
- case syntax_1.Syntax.ArrayPattern:
- for (var i = 0; i < param.elements.length; i++) {
- if (param.elements[i] !== null) {
- this.checkPatternParam(options, param.elements[i]);
- }
- }
- break;
- case syntax_1.Syntax.YieldExpression:
- break;
- default:
- assert_1.assert(param.type === syntax_1.Syntax.ObjectPattern, 'Invalid type');
- for (var i = 0; i < param.properties.length; i++) {
- this.checkPatternParam(options, param.properties[i].value);
- }
- break;
- }
- };
- Parser.prototype.reinterpretAsCoverFormalsList = function (expr) {
- var params = [expr];
- var options;
- switch (expr.type) {
- case syntax_1.Syntax.Identifier:
- break;
- case ArrowParameterPlaceHolder:
- params = expr.params;
- break;
- default:
- return null;
- }
- options = {
- paramSet: {}
- };
- for (var i = 0; i < params.length; ++i) {
- var param = params[i];
- if (param.type === syntax_1.Syntax.AssignmentPattern) {
- if (param.right.type === syntax_1.Syntax.YieldExpression) {
- if (param.right.argument) {
- this.throwUnexpectedToken(this.lookahead);
- }
- param.right.type = syntax_1.Syntax.Identifier;
- param.right.name = 'yield';
- delete param.right.argument;
- delete param.right.delegate;
- }
- }
- this.checkPatternParam(options, param);
- params[i] = param;
- }
- if (this.context.strict || !this.context.allowYield) {
- for (var i = 0; i < params.length; ++i) {
- var param = params[i];
- if (param.type === syntax_1.Syntax.YieldExpression) {
- this.throwUnexpectedToken(this.lookahead);
- }
- }
- }
- if (options.message === messages_1.Messages.StrictParamDupe) {
- var token = this.context.strict ? options.stricted : options.firstRestricted;
- this.throwUnexpectedToken(token, options.message);
- }
- return {
- params: params,
- stricted: options.stricted,
- firstRestricted: options.firstRestricted,
- message: options.message
- };
- };
- Parser.prototype.parseAssignmentExpression = function () {
- var expr;
- if (!this.context.allowYield && this.matchKeyword('yield')) {
- expr = this.parseYieldExpression();
- }
- else {
- var startToken = this.lookahead;
- var token = startToken;
- expr = this.parseConditionalExpression();
- if (expr.type === ArrowParameterPlaceHolder || this.match('=>')) {
- // ECMA-262 14.2 Arrow Function Definitions
- this.context.isAssignmentTarget = false;
- this.context.isBindingElement = false;
- var list = this.reinterpretAsCoverFormalsList(expr);
- if (list) {
- if (this.hasLineTerminator) {
- this.tolerateUnexpectedToken(this.lookahead);
- }
- this.context.firstCoverInitializedNameError = null;
- var previousStrict = this.context.strict;
- var previousAllowYield = this.context.allowYield;
- this.context.allowYield = true;
- var node = this.startNode(startToken);
- this.expect('=>');
- var body = this.match('{') ? this.parseFunctionSourceElements() :
- this.isolateCoverGrammar(this.parseAssignmentExpression);
- var expression = body.type !== syntax_1.Syntax.BlockStatement;
- if (this.context.strict && list.firstRestricted) {
- this.throwUnexpectedToken(list.firstRestricted, list.message);
- }
- if (this.context.strict && list.stricted) {
- this.tolerateUnexpectedToken(list.stricted, list.message);
- }
- expr = this.finalize(node, new Node.ArrowFunctionExpression(list.params, body, expression));
- this.context.strict = previousStrict;
- this.context.allowYield = previousAllowYield;
- }
- }
- else {
- if (this.matchAssign()) {
- if (!this.context.isAssignmentTarget) {
- this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);
- }
- if (this.context.strict && expr.type === syntax_1.Syntax.Identifier) {
- var id = (expr);
- if (this.scanner.isRestrictedWord(id.name)) {
- this.tolerateUnexpectedToken(token, messages_1.Messages.StrictLHSAssignment);
- }
- if (this.scanner.isStrictModeReservedWord(id.name)) {
- this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);
- }
- }
- if (!this.match('=')) {
- this.context.isAssignmentTarget = false;
- this.context.isBindingElement = false;
- }
- else {
- this.reinterpretExpressionAsPattern(expr);
- }
- token = this.nextToken();
- var right = this.isolateCoverGrammar(this.parseAssignmentExpression);
- expr = this.finalize(this.startNode(startToken), new Node.AssignmentExpression(token.value, expr, right));
- this.context.firstCoverInitializedNameError = null;
- }
- }
- }
- return expr;
- };
- // ECMA-262 12.16 Comma Operator
- Parser.prototype.parseExpression = function () {
- var startToken = this.lookahead;
- var expr = this.isolateCoverGrammar(this.parseAssignmentExpression);
- if (this.match(',')) {
- var expressions = [];
- expressions.push(expr);
- while (this.startMarker.index < this.scanner.length) {
- if (!this.match(',')) {
- break;
- }
- this.nextToken();
- expressions.push(this.isolateCoverGrammar(this.parseAssignmentExpression));
- }
- expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));
- }
- return expr;
- };
- // ECMA-262 13.2 Block
- Parser.prototype.parseStatementListItem = function () {
- var statement = null;
- this.context.isAssignmentTarget = true;
- this.context.isBindingElement = true;
- if (this.lookahead.type === token_1.Token.Keyword) {
- switch (this.lookahead.value) {
- case 'export':
- if (this.sourceType !== 'module') {
- this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalExportDeclaration);
- }
- statement = this.parseExportDeclaration();
- break;
- case 'import':
- if (this.sourceType !== 'module') {
- this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalImportDeclaration);
- }
- statement = this.parseImportDeclaration();
- break;
- case 'const':
- statement = this.parseLexicalDeclaration({ inFor: false });
- break;
- case 'function':
- statement = this.parseFunctionDeclaration();
- break;
- case 'class':
- statement = this.parseClassDeclaration();
- break;
- case 'let':
- statement = this.isLexicalDeclaration() ? this.parseLexicalDeclaration({ inFor: false }) : this.parseStatement();
- break;
- default:
- statement = this.parseStatement();
- break;
- }
- }
- else {
- statement = this.parseStatement();
- }
- return statement;
- };
- Parser.prototype.parseBlock = function () {
- var node = this.createNode();
- this.expect('{');
- var block = [];
- while (true) {
- if (this.match('}')) {
- break;
- }
- block.push(this.parseStatementListItem());
- }
- this.expect('}');
- return this.finalize(node, new Node.BlockStatement(block));
- };
- // ECMA-262 13.3.1 Let and Const Declarations
- Parser.prototype.parseLexicalBinding = function (kind, options) {
- var node = this.createNode();
- var params = [];
- var id = this.parsePattern(params, kind);
- // ECMA-262 12.2.1
- if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {
- if (this.scanner.isRestrictedWord((id).name)) {
- this.tolerateError(messages_1.Messages.StrictVarName);
- }
- }
- var init = null;
- if (kind === 'const') {
- if (!this.matchKeyword('in') && !this.matchContextualKeyword('of')) {
- this.expect('=');
- init = this.isolateCoverGrammar(this.parseAssignmentExpression);
- }
- }
- else if ((!options.inFor && id.type !== syntax_1.Syntax.Identifier) || this.match('=')) {
- this.expect('=');
- init = this.isolateCoverGrammar(this.parseAssignmentExpression);
- }
- return this.finalize(node, new Node.VariableDeclarator(id, init));
- };
- Parser.prototype.parseBindingList = function (kind, options) {
- var list = [this.parseLexicalBinding(kind, options)];
- while (this.match(',')) {
- this.nextToken();
- list.push(this.parseLexicalBinding(kind, options));
- }
- return list;
- };
- Parser.prototype.isLexicalDeclaration = function () {
- var previousIndex = this.scanner.index;
- var previousLineNumber = this.scanner.lineNumber;
- var previousLineStart = this.scanner.lineStart;
- this.collectComments();
- var next = this.scanner.lex();
- this.scanner.index = previousIndex;
- this.scanner.lineNumber = previousLineNumber;
- this.scanner.lineStart = previousLineStart;
- return (next.type === token_1.Token.Identifier) ||
- (next.type === token_1.Token.Punctuator && next.value === '[') ||
- (next.type === token_1.Token.Punctuator && next.value === '{') ||
- (next.type === token_1.Token.Keyword && next.value === 'let') ||
- (next.type === token_1.Token.Keyword && next.value === 'yield');
- };
- Parser.prototype.parseLexicalDeclaration = function (options) {
- var node = this.createNode();
- var kind = this.nextToken().value;
- assert_1.assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const');
- var declarations = this.parseBindingList(kind, options);
- this.consumeSemicolon();
- return this.finalize(node, new Node.VariableDeclaration(declarations, kind));
- };
- // ECMA-262 13.3.3 Destructuring Binding Patterns
- Parser.prototype.parseBindingRestElement = function (params, kind) {
- var node = this.createNode();
- this.expect('...');
- var arg = this.parsePattern(params, kind);
- return this.finalize(node, new Node.RestElement(arg));
- };
- Parser.prototype.parseArrayPattern = function (params, kind) {
- var node = this.createNode();
- this.expect('[');
- var elements = [];
- while (!this.match(']')) {
- if (this.match(',')) {
- this.nextToken();
- elements.push(null);
- }
- else {
- if (this.match('...')) {
- elements.push(this.parseBindingRestElement(params, kind));
- break;
- }
- else {
- elements.push(this.parsePatternWithDefault(params, kind));
- }
- if (!this.match(']')) {
- this.expect(',');
- }
- }
- }
- this.expect(']');
- return this.finalize(node, new Node.ArrayPattern(elements));
- };
- Parser.prototype.parsePropertyPattern = function (params, kind) {
- var node = this.createNode();
- var computed = false;
- var shorthand = false;
- var method = false;
- var key;
- var value;
- if (this.lookahead.type === token_1.Token.Identifier) {
- var keyToken = this.lookahead;
- key = this.parseVariableIdentifier();
- var init = this.finalize(node, new Node.Identifier(keyToken.value));
- if (this.match('=')) {
- params.push(keyToken);
- shorthand = true;
- this.nextToken();
- var expr = this.parseAssignmentExpression();
- value = this.finalize(this.startNode(keyToken), new Node.AssignmentPattern(init, expr));
- }
- else if (!this.match(':')) {
- params.push(keyToken);
- shorthand = true;
- value = init;
- }
- else {
- this.expect(':');
- value = this.parsePatternWithDefault(params, kind);
- }
- }
- else {
- computed = this.match('[');
- key = this.parseObjectPropertyKey();
- this.expect(':');
- value = this.parsePatternWithDefault(params, kind);
- }
- return this.finalize(node, new Node.Property('init', key, computed, value, method, shorthand));
- };
- Parser.prototype.parseObjectPattern = function (params, kind) {
- var node = this.createNode();
- var properties = [];
- this.expect('{');
- while (!this.match('}')) {
- properties.push(this.parsePropertyPattern(params, kind));
- if (!this.match('}')) {
- this.expect(',');
- }
- }
- this.expect('}');
- return this.finalize(node, new Node.ObjectPattern(properties));
- };
- Parser.prototype.parsePattern = function (params, kind) {
- var pattern;
- if (this.match('[')) {
- pattern = this.parseArrayPattern(params, kind);
- }
- else if (this.match('{')) {
- pattern = this.parseObjectPattern(params, kind);
- }
- else {
- if (this.matchKeyword('let') && (kind === 'const' || kind === 'let')) {
- this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.UnexpectedToken);
- }
- params.push(this.lookahead);
- pattern = this.parseVariableIdentifier(kind);
- }
- return pattern;
- };
- Parser.prototype.parsePatternWithDefault = function (params, kind) {
- var startToken = this.lookahead;
- var pattern = this.parsePattern(params, kind);
- if (this.match('=')) {
- this.nextToken();
- var previousAllowYield = this.context.allowYield;
- this.context.allowYield = true;
- var right = this.isolateCoverGrammar(this.parseAssignmentExpression);
- this.context.allowYield = previousAllowYield;
- pattern = this.finalize(this.startNode(startToken), new Node.AssignmentPattern(pattern, right));
- }
- return pattern;
- };
- // ECMA-262 13.3.2 Variable Statement
- Parser.prototype.parseVariableIdentifier = function (kind) {
- var node = this.createNode();
- var token = this.nextToken();
- if (token.type === token_1.Token.Keyword && token.value === 'yield') {
- if (this.context.strict) {
- this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);
- }
- if (!this.context.allowYield) {
- this.throwUnexpectedToken(token);
- }
- }
- else if (token.type !== token_1.Token.Identifier) {
- if (this.context.strict && token.type === token_1.Token.Keyword && this.scanner.isStrictModeReservedWord(token.value)) {
- this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);
- }
- else {
- if (this.context.strict || token.value !== 'let' || kind !== 'var') {
- this.throwUnexpectedToken(token);
- }
- }
- }
- else if (this.sourceType === 'module' && token.type === token_1.Token.Identifier && token.value === 'await') {
- this.tolerateUnexpectedToken(token);
- }
- return this.finalize(node, new Node.Identifier(token.value));
- };
- Parser.prototype.parseVariableDeclaration = function (options) {
- var node = this.createNode();
- var params = [];
- var id = this.parsePattern(params, 'var');
- // ECMA-262 12.2.1
- if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {
- if (this.scanner.isRestrictedWord((id).name)) {
- this.tolerateError(messages_1.Messages.StrictVarName);
- }
- }
- var init = null;
- if (this.match('=')) {
- this.nextToken();
- init = this.isolateCoverGrammar(this.parseAssignmentExpression);
- }
- else if (id.type !== syntax_1.Syntax.Identifier && !options.inFor) {
- this.expect('=');
- }
- return this.finalize(node, new Node.VariableDeclarator(id, init));
- };
- Parser.prototype.parseVariableDeclarationList = function (options) {
- var opt = { inFor: options.inFor };
- var list = [];
- list.push(this.parseVariableDeclaration(opt));
- while (this.match(',')) {
- this.nextToken();
- list.push(this.parseVariableDeclaration(opt));
- }
- return list;
- };
- Parser.prototype.parseVariableStatement = function () {
- var node = this.createNode();
- this.expectKeyword('var');
- var declarations = this.parseVariableDeclarationList({ inFor: false });
- this.consumeSemicolon();
- return this.finalize(node, new Node.VariableDeclaration(declarations, 'var'));
- };
- // ECMA-262 13.4 Empty Statement
- Parser.prototype.parseEmptyStatement = function () {
- var node = this.createNode();
- this.expect(';');
- return this.finalize(node, new Node.EmptyStatement());
- };
- // ECMA-262 13.5 Expression Statement
- Parser.prototype.parseExpressionStatement = function () {
- var node = this.createNode();
- var expr = this.parseExpression();
- this.consumeSemicolon();
- return this.finalize(node, new Node.ExpressionStatement(expr));
- };
- // ECMA-262 13.6 If statement
- Parser.prototype.parseIfStatement = function () {
- var node = this.createNode();
- var consequent;
- var alternate = null;
- this.expectKeyword('if');
- this.expect('(');
- var test = this.parseExpression();
- if (!this.match(')') && this.config.tolerant) {
- this.tolerateUnexpectedToken(this.nextToken());
- consequent = this.finalize(this.createNode(), new Node.EmptyStatement());
- }
- else {
- this.expect(')');
- consequent = this.parseStatement();
- if (this.matchKeyword('else')) {
- this.nextToken();
- alternate = this.parseStatement();
- }
- }
- return this.finalize(node, new Node.IfStatement(test, consequent, alternate));
- };
- // ECMA-262 13.7.2 The do-while Statement
- Parser.prototype.parseDoWhileStatement = function () {
- var node = this.createNode();
- this.expectKeyword('do');
- var previousInIteration = this.context.inIteration;
- this.context.inIteration = true;
- var body = this.parseStatement();
- this.context.inIteration = previousInIteration;
- this.expectKeyword('while');
- this.expect('(');
- var test = this.parseExpression();
- this.expect(')');
- if (this.match(';')) {
- this.nextToken();
- }
- return this.finalize(node, new Node.DoWhileStatement(body, test));
- };
- // ECMA-262 13.7.3 The while Statement
- Parser.prototype.parseWhileStatement = function () {
- var node = this.createNode();
- var body;
- this.expectKeyword('while');
- this.expect('(');
- var test = this.parseExpression();
- if (!this.match(')') && this.config.tolerant) {
- this.tolerateUnexpectedToken(this.nextToken());
- body = this.finalize(this.createNode(), new Node.EmptyStatement());
- }
- else {
- this.expect(')');
- var previousInIteration = this.context.inIteration;
- this.context.inIteration = true;
- body = this.parseStatement();
- this.context.inIteration = previousInIteration;
- }
- return this.finalize(node, new Node.WhileStatement(test, body));
- };
- // ECMA-262 13.7.4 The for Statement
- // ECMA-262 13.7.5 The for-in and for-of Statements
- Parser.prototype.parseForStatement = function () {
- var init = null;
- var test = null;
- var update = null;
- var forIn = true;
- var left, right;
- var node = this.createNode();
- this.expectKeyword('for');
- this.expect('(');
- if (this.match(';')) {
- this.nextToken();
- }
- else {
- if (this.matchKeyword('var')) {
- init = this.createNode();
- this.nextToken();
- var previousAllowIn = this.context.allowIn;
- this.context.allowIn = false;
- var declarations = this.parseVariableDeclarationList({ inFor: true });
- this.context.allowIn = previousAllowIn;
- if (declarations.length === 1 && this.matchKeyword('in')) {
- var decl = declarations[0];
- if (decl.init && (decl.id.type === syntax_1.Syntax.ArrayPattern || decl.id.type === syntax_1.Syntax.ObjectPattern || this.context.strict)) {
- this.tolerateError(messages_1.Messages.ForInOfLoopInitializer, 'for-in');
- }
- init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));
- this.nextToken();
- left = init;
- right = this.parseExpression();
- init = null;
- }
- else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {
- init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));
- this.nextToken();
- left = init;
- right = this.parseAssignmentExpression();
- init = null;
- forIn = false;
- }
- else {
- init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));
- this.expect(';');
- }
- }
- else if (this.matchKeyword('const') || this.matchKeyword('let')) {
- init = this.createNode();
- var kind = this.nextToken().value;
- if (!this.context.strict && this.lookahead.value === 'in') {
- init = this.finalize(init, new Node.Identifier(kind));
- this.nextToken();
- left = init;
- right = this.parseExpression();
- init = null;
- }
- else {
- var previousAllowIn = this.context.allowIn;
- this.context.allowIn = false;
- var declarations = this.parseBindingList(kind, { inFor: true });
- this.context.allowIn = previousAllowIn;
- if (declarations.length === 1 && declarations[0].init === null && this.matchKeyword('in')) {
- init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));
- this.nextToken();
- left = init;
- right = this.parseExpression();
- init = null;
- }
- else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {
- init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));
- this.nextToken();
- left = init;
- right = this.parseAssignmentExpression();
- init = null;
- forIn = false;
- }
- else {
- this.consumeSemicolon();
- init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));
- }
- }
- }
- else {
- var initStartToken = this.lookahead;
- var previousAllowIn = this.context.allowIn;
- this.context.allowIn = false;
- init = this.inheritCoverGrammar(this.parseAssignmentExpression);
- this.context.allowIn = previousAllowIn;
- if (this.matchKeyword('in')) {
- if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {
- this.tolerateError(messages_1.Messages.InvalidLHSInForIn);
- }
- this.nextToken();
- this.reinterpretExpressionAsPattern(init);
- left = init;
- right = this.parseExpression();
- init = null;
- }
- else if (this.matchContextualKeyword('of')) {
- if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {
- this.tolerateError(messages_1.Messages.InvalidLHSInForLoop);
- }
- this.nextToken();
- this.reinterpretExpressionAsPattern(init);
- left = init;
- right = this.parseAssignmentExpression();
- init = null;
- forIn = false;
- }
- else {
- if (this.match(',')) {
- var initSeq = [init];
- while (this.match(',')) {
- this.nextToken();
- initSeq.push(this.isolateCoverGrammar(this.parseAssignmentExpression));
- }
- init = this.finalize(this.startNode(initStartToken), new Node.SequenceExpression(initSeq));
- }
- this.expect(';');
- }
- }
- }
- if (typeof left === 'undefined') {
- if (!this.match(';')) {
- test = this.parseExpression();
- }
- this.expect(';');
- if (!this.match(')')) {
- update = this.parseExpression();
- }
- }
- var body;
- if (!this.match(')') && this.config.tolerant) {
- this.tolerateUnexpectedToken(this.nextToken());
- body = this.finalize(this.createNode(), new Node.EmptyStatement());
- }
- else {
- this.expect(')');
- var previousInIteration = this.context.inIteration;
- this.context.inIteration = true;
- body = this.isolateCoverGrammar(this.parseStatement);
- this.context.inIteration = previousInIteration;
- }
- return (typeof left === 'undefined') ?
- this.finalize(node, new Node.ForStatement(init, test, update, body)) :
- forIn ? this.finalize(node, new Node.ForInStatement(left, right, body)) :
- this.finalize(node, new Node.ForOfStatement(left, right, body));
- };
- // ECMA-262 13.8 The continue statement
- Parser.prototype.parseContinueStatement = function () {
- var node = this.createNode();
- this.expectKeyword('continue');
- var label = null;
- if (this.lookahead.type === token_1.Token.Identifier && !this.hasLineTerminator) {
- label = this.parseVariableIdentifier();
- var key = '$' + label.name;
- if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {
- this.throwError(messages_1.Messages.UnknownLabel, label.name);
- }
- }
- this.consumeSemicolon();
- if (label === null && !this.context.inIteration) {
- this.throwError(messages_1.Messages.IllegalContinue);
- }
- return this.finalize(node, new Node.ContinueStatement(label));
- };
- // ECMA-262 13.9 The break statement
- Parser.prototype.parseBreakStatement = function () {
- var node = this.createNode();
- this.expectKeyword('break');
- var label = null;
- if (this.lookahead.type === token_1.Token.Identifier && !this.hasLineTerminator) {
- label = this.parseVariableIdentifier();
- var key = '$' + label.name;
- if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {
- this.throwError(messages_1.Messages.UnknownLabel, label.name);
- }
- }
- this.consumeSemicolon();
- if (label === null && !this.context.inIteration && !this.context.inSwitch) {
- this.throwError(messages_1.Messages.IllegalBreak);
- }
- return this.finalize(node, new Node.BreakStatement(label));
- };
- // ECMA-262 13.10 The return statement
- Parser.prototype.parseReturnStatement = function () {
- if (!this.context.inFunctionBody) {
- this.tolerateError(messages_1.Messages.IllegalReturn);
- }
- var node = this.createNode();
- this.expectKeyword('return');
- var hasArgument = !this.match(';') && !this.match('}') &&
- !this.hasLineTerminator && this.lookahead.type !== token_1.Token.EOF;
- var argument = hasArgument ? this.parseExpression() : null;
- this.consumeSemicolon();
- return this.finalize(node, new Node.ReturnStatement(argument));
- };
- // ECMA-262 13.11 The with statement
- Parser.prototype.parseWithStatement = function () {
- if (this.context.strict) {
- this.tolerateError(messages_1.Messages.StrictModeWith);
- }
- var node = this.createNode();
- this.expectKeyword('with');
- this.expect('(');
- var object = this.parseExpression();
- this.expect(')');
- var body = this.parseStatement();
- return this.finalize(node, new Node.WithStatement(object, body));
- };
- // ECMA-262 13.12 The switch statement
- Parser.prototype.parseSwitchCase = function () {
- var node = this.createNode();
- var test;
- if (this.matchKeyword('default')) {
- this.nextToken();
- test = null;
- }
- else {
- this.expectKeyword('case');
- test = this.parseExpression();
- }
- this.expect(':');
- var consequent = [];
- while (true) {
- if (this.match('}') || this.matchKeyword('default') || this.matchKeyword('case')) {
- break;
- }
- consequent.push(this.parseStatementListItem());
- }
- return this.finalize(node, new Node.SwitchCase(test, consequent));
- };
- Parser.prototype.parseSwitchStatement = function () {
- var node = this.createNode();
- this.expectKeyword('switch');
- this.expect('(');
- var discriminant = this.parseExpression();
- this.expect(')');
- var previousInSwitch = this.context.inSwitch;
- this.context.inSwitch = true;
- var cases = [];
- var defaultFound = false;
- this.expect('{');
- while (true) {
- if (this.match('}')) {
- break;
- }
- var clause = this.parseSwitchCase();
- if (clause.test === null) {
- if (defaultFound) {
- this.throwError(messages_1.Messages.MultipleDefaultsInSwitch);
- }
- defaultFound = true;
- }
- cases.push(clause);
- }
- this.expect('}');
- this.context.inSwitch = previousInSwitch;
- return this.finalize(node, new Node.SwitchStatement(discriminant, cases));
- };
- // ECMA-262 13.13 Labelled Statements
- Parser.prototype.parseLabelledStatement = function () {
- var node = this.createNode();
- var expr = this.parseExpression();
- var statement;
- if ((expr.type === syntax_1.Syntax.Identifier) && this.match(':')) {
- this.nextToken();
- var id = (expr);
- var key = '$' + id.name;
- if (Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {
- this.throwError(messages_1.Messages.Redeclaration, 'Label', id.name);
- }
- this.context.labelSet[key] = true;
- var labeledBody = this.parseStatement();
- delete this.context.labelSet[key];
- statement = new Node.LabeledStatement(id, labeledBody);
- }
- else {
- this.consumeSemicolon();
- statement = new Node.ExpressionStatement(expr);
- }
- return this.finalize(node, statement);
- };
- // ECMA-262 13.14 The throw statement
- Parser.prototype.parseThrowStatement = function () {
- var node = this.createNode();
- this.expectKeyword('throw');
- if (this.hasLineTerminator) {
- this.throwError(messages_1.Messages.NewlineAfterThrow);
- }
- var argument = this.parseExpression();
- this.consumeSemicolon();
- return this.finalize(node, new Node.ThrowStatement(argument));
- };
- // ECMA-262 13.15 The try statement
- Parser.prototype.parseCatchClause = function () {
- var node = this.createNode();
- this.expectKeyword('catch');
- this.expect('(');
- if (this.match(')')) {
- this.throwUnexpectedToken(this.lookahead);
- }
- var params = [];
- var param = this.parsePattern(params);
- var paramMap = {};
- for (var i = 0; i < params.length; i++) {
- var key = '$' + params[i].value;
- if (Object.prototype.hasOwnProperty.call(paramMap, key)) {
- this.tolerateError(messages_1.Messages.DuplicateBinding, params[i].value);
- }
- paramMap[key] = true;
- }
- if (this.context.strict && param.type === syntax_1.Syntax.Identifier) {
- if (this.scanner.isRestrictedWord((param).name)) {
- this.tolerateError(messages_1.Messages.StrictCatchVariable);
- }
- }
- this.expect(')');
- var body = this.parseBlock();
- return this.finalize(node, new Node.CatchClause(param, body));
- };
- Parser.prototype.parseFinallyClause = function () {
- this.expectKeyword('finally');
- return this.parseBlock();
- };
- Parser.prototype.parseTryStatement = function () {
- var node = this.createNode();
- this.expectKeyword('try');
- var block = this.parseBlock();
- var handler = this.matchKeyword('catch') ? this.parseCatchClause() : null;
- var finalizer = this.matchKeyword('finally') ? this.parseFinallyClause() : null;
- if (!handler && !finalizer) {
- this.throwError(messages_1.Messages.NoCatchOrFinally);
- }
- return this.finalize(node, new Node.TryStatement(block, handler, finalizer));
- };
- // ECMA-262 13.16 The debugger statement
- Parser.prototype.parseDebuggerStatement = function () {
- var node = this.createNode();
- this.expectKeyword('debugger');
- this.consumeSemicolon();
- return this.finalize(node, new Node.DebuggerStatement());
- };
- // ECMA-262 13 Statements
- Parser.prototype.parseStatement = function () {
- var statement = null;
- switch (this.lookahead.type) {
- case token_1.Token.BooleanLiteral:
- case token_1.Token.NullLiteral:
- case token_1.Token.NumericLiteral:
- case token_1.Token.StringLiteral:
- case token_1.Token.Template:
- case token_1.Token.RegularExpression:
- statement = this.parseExpressionStatement();
- break;
- case token_1.Token.Punctuator:
- var value = this.lookahead.value;
- if (value === '{') {
- statement = this.parseBlock();
- }
- else if (value === '(') {
- statement = this.parseExpressionStatement();
- }
- else if (value === ';') {
- statement = this.parseEmptyStatement();
- }
- else {
- statement = this.parseExpressionStatement();
- }
- break;
- case token_1.Token.Identifier:
- statement = this.parseLabelledStatement();
- break;
- case token_1.Token.Keyword:
- switch (this.lookahead.value) {
- case 'break':
- statement = this.parseBreakStatement();
- break;
- case 'continue':
- statement = this.parseContinueStatement();
- break;
- case 'debugger':
- statement = this.parseDebuggerStatement();
- break;
- case 'do':
- statement = this.parseDoWhileStatement();
- break;
- case 'for':
- statement = this.parseForStatement();
- break;
- case 'function':
- statement = this.parseFunctionDeclaration();
- break;
- case 'if':
- statement = this.parseIfStatement();
- break;
- case 'return':
- statement = this.parseReturnStatement();
- break;
- case 'switch':
- statement = this.parseSwitchStatement();
- break;
- case 'throw':
- statement = this.parseThrowStatement();
- break;
- case 'try':
- statement = this.parseTryStatement();
- break;
- case 'var':
- statement = this.parseVariableStatement();
- break;
- case 'while':
- statement = this.parseWhileStatement();
- break;
- case 'with':
- statement = this.parseWithStatement();
- break;
- default:
- statement = this.parseExpressionStatement();
- break;
- }
- break;
- default:
- this.throwUnexpectedToken(this.lookahead);
- }
- return statement;
- };
- // ECMA-262 14.1 Function Definition
- Parser.prototype.parseFunctionSourceElements = function () {
- var node = this.createNode();
- this.expect('{');
- var body = this.parseDirectivePrologues();
- var previousLabelSet = this.context.labelSet;
- var previousInIteration = this.context.inIteration;
- var previousInSwitch = this.context.inSwitch;
- var previousInFunctionBody = this.context.inFunctionBody;
- this.context.labelSet = {};
- this.context.inIteration = false;
- this.context.inSwitch = false;
- this.context.inFunctionBody = true;
- while (this.startMarker.index < this.scanner.length) {
- if (this.match('}')) {
- break;
- }
- body.push(this.parseStatementListItem());
- }
- this.expect('}');
- this.context.labelSet = previousLabelSet;
- this.context.inIteration = previousInIteration;
- this.context.inSwitch = previousInSwitch;
- this.context.inFunctionBody = previousInFunctionBody;
- return this.finalize(node, new Node.BlockStatement(body));
- };
- Parser.prototype.validateParam = function (options, param, name) {
- var key = '$' + name;
- if (this.context.strict) {
- if (this.scanner.isRestrictedWord(name)) {
- options.stricted = param;
- options.message = messages_1.Messages.StrictParamName;
- }
- if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {
- options.stricted = param;
- options.message = messages_1.Messages.StrictParamDupe;
- }
- }
- else if (!options.firstRestricted) {
- if (this.scanner.isRestrictedWord(name)) {
- options.firstRestricted = param;
- options.message = messages_1.Messages.StrictParamName;
- }
- else if (this.scanner.isStrictModeReservedWord(name)) {
- options.firstRestricted = param;
- options.message = messages_1.Messages.StrictReservedWord;
- }
- else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {
- options.stricted = param;
- options.message = messages_1.Messages.StrictParamDupe;
- }
- }
- /* istanbul ignore next */
- if (typeof Object.defineProperty === 'function') {
- Object.defineProperty(options.paramSet, key, { value: true, enumerable: true, writable: true, configurable: true });
- }
- else {
- options.paramSet[key] = true;
- }
- };
- Parser.prototype.parseRestElement = function (params) {
- var node = this.createNode();
- this.expect('...');
- var arg = this.parsePattern(params);
- if (this.match('=')) {
- this.throwError(messages_1.Messages.DefaultRestParameter);
- }
- if (!this.match(')')) {
- this.throwError(messages_1.Messages.ParameterAfterRestParameter);
- }
- return this.finalize(node, new Node.RestElement(arg));
- };
- Parser.prototype.parseFormalParameter = function (options) {
- var params = [];
- var param = this.match('...') ? this.parseRestElement(params) : this.parsePatternWithDefault(params);
- for (var i = 0; i < params.length; i++) {
- this.validateParam(options, params[i], params[i].value);
- }
- options.params.push(param);
- return !this.match(')');
- };
- Parser.prototype.parseFormalParameters = function (firstRestricted) {
- var options;
- options = {
- params: [],
- firstRestricted: firstRestricted
- };
- this.expect('(');
- if (!this.match(')')) {
- options.paramSet = {};
- while (this.startMarker.index < this.scanner.length) {
- if (!this.parseFormalParameter(options)) {
- break;
- }
- this.expect(',');
- }
- }
- this.expect(')');
- return {
- params: options.params,
- stricted: options.stricted,
- firstRestricted: options.firstRestricted,
- message: options.message
- };
- };
- Parser.prototype.parseFunctionDeclaration = function (identifierIsOptional) {
- var node = this.createNode();
- this.expectKeyword('function');
- var isGenerator = this.match('*');
- if (isGenerator) {
- this.nextToken();
- }
- var message;
- var id = null;
- var firstRestricted = null;
- if (!identifierIsOptional || !this.match('(')) {
- var token = this.lookahead;
- id = this.parseVariableIdentifier();
- if (this.context.strict) {
- if (this.scanner.isRestrictedWord(token.value)) {
- this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);
- }
- }
- else {
- if (this.scanner.isRestrictedWord(token.value)) {
- firstRestricted = token;
- message = messages_1.Messages.StrictFunctionName;
- }
- else if (this.scanner.isStrictModeReservedWord(token.value)) {
- firstRestricted = token;
- message = messages_1.Messages.StrictReservedWord;
- }
- }
- }
- var previousAllowYield = this.context.allowYield;
- this.context.allowYield = !isGenerator;
- var formalParameters = this.parseFormalParameters(firstRestricted);
- var params = formalParameters.params;
- var stricted = formalParameters.stricted;
- firstRestricted = formalParameters.firstRestricted;
- if (formalParameters.message) {
- message = formalParameters.message;
- }
- var previousStrict = this.context.strict;
- var body = this.parseFunctionSourceElements();
- if (this.context.strict && firstRestricted) {
- this.throwUnexpectedToken(firstRestricted, message);
- }
- if (this.context.strict && stricted) {
- this.tolerateUnexpectedToken(stricted, message);
- }
- this.context.strict = previousStrict;
- this.context.allowYield = previousAllowYield;
- return this.finalize(node, new Node.FunctionDeclaration(id, params, body, isGenerator));
- };
- Parser.prototype.parseFunctionExpression = function () {
- var node = this.createNode();
- this.expectKeyword('function');
- var isGenerator = this.match('*');
- if (isGenerator) {
- this.nextToken();
- }
- var message;
- var id = null;
- var firstRestricted;
- var previousAllowYield = this.context.allowYield;
- this.context.allowYield = !isGenerator;
- if (!this.match('(')) {
- var token = this.lookahead;
- id = (!this.context.strict && !isGenerator && this.matchKeyword('yield')) ? this.parseIdentifierName() : this.parseVariableIdentifier();
- if (this.context.strict) {
- if (this.scanner.isRestrictedWord(token.value)) {
- this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);
- }
- }
- else {
- if (this.scanner.isRestrictedWord(token.value)) {
- firstRestricted = token;
- message = messages_1.Messages.StrictFunctionName;
- }
- else if (this.scanner.isStrictModeReservedWord(token.value)) {
- firstRestricted = token;
- message = messages_1.Messages.StrictReservedWord;
- }
- }
- }
- var formalParameters = this.parseFormalParameters(firstRestricted);
- var params = formalParameters.params;
- var stricted = formalParameters.stricted;
- firstRestricted = formalParameters.firstRestricted;
- if (formalParameters.message) {
- message = formalParameters.message;
- }
- var previousStrict = this.context.strict;
- var body = this.parseFunctionSourceElements();
- if (this.context.strict && firstRestricted) {
- this.throwUnexpectedToken(firstRestricted, message);
- }
- if (this.context.strict && stricted) {
- this.tolerateUnexpectedToken(stricted, message);
- }
- this.context.strict = previousStrict;
- this.context.allowYield = previousAllowYield;
- return this.finalize(node, new Node.FunctionExpression(id, params, body, isGenerator));
- };
- // ECMA-262 14.1.1 Directive Prologues
- Parser.prototype.parseDirective = function () {
- var token = this.lookahead;
- var directive = null;
- var node = this.createNode();
- var expr = this.parseExpression();
- if (expr.type === syntax_1.Syntax.Literal) {
- directive = this.getTokenRaw(token).slice(1, -1);
- }
- this.consumeSemicolon();
- return this.finalize(node, directive ? new Node.Directive(expr, directive) :
- new Node.ExpressionStatement(expr));
- };
- Parser.prototype.parseDirectivePrologues = function () {
- var firstRestricted = null;
- var body = [];
- while (true) {
- var token = this.lookahead;
- if (token.type !== token_1.Token.StringLiteral) {
- break;
- }
- var statement = this.parseDirective();
- body.push(statement);
- var directive = statement.directive;
- if (typeof directive !== 'string') {
- break;
- }
- if (directive === 'use strict') {
- this.context.strict = true;
- if (firstRestricted) {
- this.tolerateUnexpectedToken(firstRestricted, messages_1.Messages.StrictOctalLiteral);
- }
- }
- else {
- if (!firstRestricted && token.octal) {
- firstRestricted = token;
- }
- }
- }
- return body;
- };
- // ECMA-262 14.3 Method Definitions
- Parser.prototype.qualifiedPropertyName = function (token) {
- switch (token.type) {
- case token_1.Token.Identifier:
- case token_1.Token.StringLiteral:
- case token_1.Token.BooleanLiteral:
- case token_1.Token.NullLiteral:
- case token_1.Token.NumericLiteral:
- case token_1.Token.Keyword:
- return true;
- case token_1.Token.Punctuator:
- return token.value === '[';
- }
- return false;
- };
- Parser.prototype.parseGetterMethod = function () {
- var node = this.createNode();
- this.expect('(');
- this.expect(')');
- var isGenerator = false;
- var params = {
- params: [],
- stricted: null,
- firstRestricted: null,
- message: null
- };
- var previousAllowYield = this.context.allowYield;
- this.context.allowYield = false;
- var method = this.parsePropertyMethod(params);
- this.context.allowYield = previousAllowYield;
- return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));
- };
- Parser.prototype.parseSetterMethod = function () {
- var node = this.createNode();
- var options = {
- params: [],
- firstRestricted: null,
- paramSet: {}
- };
- var isGenerator = false;
- var previousAllowYield = this.context.allowYield;
- this.context.allowYield = false;
- this.expect('(');
- if (this.match(')')) {
- this.tolerateUnexpectedToken(this.lookahead);
- }
- else {
- this.parseFormalParameter(options);
- }
- this.expect(')');
- var method = this.parsePropertyMethod(options);
- this.context.allowYield = previousAllowYield;
- return this.finalize(node, new Node.FunctionExpression(null, options.params, method, isGenerator));
- };
- Parser.prototype.parseGeneratorMethod = function () {
- var node = this.createNode();
- var isGenerator = true;
- var previousAllowYield = this.context.allowYield;
- this.context.allowYield = true;
- var params = this.parseFormalParameters();
- this.context.allowYield = false;
- var method = this.parsePropertyMethod(params);
- this.context.allowYield = previousAllowYield;
- return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));
- };
- // ECMA-262 14.4 Generator Function Definitions
- Parser.prototype.isStartOfExpression = function () {
- var start = true;
- var value = this.lookahead.value;
- switch (this.lookahead.type) {
- case token_1.Token.Punctuator:
- start = (value === '[') || (value === '(') || (value === '{') ||
- (value === '+') || (value === '-') ||
- (value === '!') || (value === '~') ||
- (value === '++') || (value === '--') ||
- (value === '/') || (value === '/='); // regular expression literal
- break;
- case token_1.Token.Keyword:
- start = (value === 'class') || (value === 'delete') ||
- (value === 'function') || (value === 'let') || (value === 'new') ||
- (value === 'super') || (value === 'this') || (value === 'typeof') ||
- (value === 'void') || (value === 'yield');
- break;
- default:
- break;
- }
- return start;
- };
- Parser.prototype.parseYieldExpression = function () {
- var node = this.createNode();
- this.expectKeyword('yield');
- var argument = null;
- var delegate = false;
- if (!this.hasLineTerminator) {
- var previousAllowYield = this.context.allowYield;
- this.context.allowYield = false;
- delegate = this.match('*');
- if (delegate) {
- this.nextToken();
- argument = this.parseAssignmentExpression();
- }
- else if (this.isStartOfExpression()) {
- argument = this.parseAssignmentExpression();
- }
- this.context.allowYield = previousAllowYield;
- }
- return this.finalize(node, new Node.YieldExpression(argument, delegate));
- };
- // ECMA-262 14.5 Class Definitions
- Parser.prototype.parseClassElement = function (hasConstructor) {
- var token = this.lookahead;
- var node = this.createNode();
- var kind;
- var key;
- var value;
- var computed = false;
- var method = false;
- var isStatic = false;
- if (this.match('*')) {
- this.nextToken();
- }
- else {
- computed = this.match('[');
- key = this.parseObjectPropertyKey();
- var id = key;
- if (id.name === 'static' && (this.qualifiedPropertyName(this.lookahead) || this.match('*'))) {
- token = this.lookahead;
- isStatic = true;
- computed = this.match('[');
- if (this.match('*')) {
- this.nextToken();
- }
- else {
- key = this.parseObjectPropertyKey();
- }
- }
- }
- var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);
- if (token.type === token_1.Token.Identifier) {
- if (token.value === 'get' && lookaheadPropertyKey) {
- kind = 'get';
- computed = this.match('[');
- key = this.parseObjectPropertyKey();
- this.context.allowYield = false;
- value = this.parseGetterMethod();
- }
- else if (token.value === 'set' && lookaheadPropertyKey) {
- kind = 'set';
- computed = this.match('[');
- key = this.parseObjectPropertyKey();
- value = this.parseSetterMethod();
- }
- }
- else if (token.type === token_1.Token.Punctuator && token.value === '*' && lookaheadPropertyKey) {
- kind = 'init';
- computed = this.match('[');
- key = this.parseObjectPropertyKey();
- value = this.parseGeneratorMethod();
- method = true;
- }
- if (!kind && key && this.match('(')) {
- kind = 'init';
- value = this.parsePropertyMethodFunction();
- method = true;
- }
- if (!kind) {
- this.throwUnexpectedToken(this.lookahead);
- }
- if (kind === 'init') {
- kind = 'method';
- }
- if (!computed) {
- if (isStatic && this.isPropertyKey(key, 'prototype')) {
- this.throwUnexpectedToken(token, messages_1.Messages.StaticPrototype);
- }
- if (!isStatic && this.isPropertyKey(key, 'constructor')) {
- if (kind !== 'method' || !method || value.generator) {
- this.throwUnexpectedToken(token, messages_1.Messages.ConstructorSpecialMethod);
- }
- if (hasConstructor.value) {
- this.throwUnexpectedToken(token, messages_1.Messages.DuplicateConstructor);
- }
- else {
- hasConstructor.value = true;
- }
- kind = 'constructor';
- }
- }
- return this.finalize(node, new Node.MethodDefinition(key, computed, value, kind, isStatic));
- };
- Parser.prototype.parseClassElementList = function () {
- var body = [];
- var hasConstructor = { value: false };
- this.expect('{');
- while (!this.match('}')) {
- if (this.match(';')) {
- this.nextToken();
- }
- else {
- body.push(this.parseClassElement(hasConstructor));
- }
- }
- this.expect('}');
- return body;
- };
- Parser.prototype.parseClassBody = function () {
- var node = this.createNode();
- var elementList = this.parseClassElementList();
- return this.finalize(node, new Node.ClassBody(elementList));
- };
- Parser.prototype.parseClassDeclaration = function (identifierIsOptional) {
- var node = this.createNode();
- var previousStrict = this.context.strict;
- this.context.strict = true;
- this.expectKeyword('class');
- var id = (identifierIsOptional && (this.lookahead.type !== token_1.Token.Identifier)) ? null : this.parseVariableIdentifier();
- var superClass = null;
- if (this.matchKeyword('extends')) {
- this.nextToken();
- superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);
- }
- var classBody = this.parseClassBody();
- this.context.strict = previousStrict;
- return this.finalize(node, new Node.ClassDeclaration(id, superClass, classBody));
- };
- Parser.prototype.parseClassExpression = function () {
- var node = this.createNode();
- var previousStrict = this.context.strict;
- this.context.strict = true;
- this.expectKeyword('class');
- var id = (this.lookahead.type === token_1.Token.Identifier) ? this.parseVariableIdentifier() : null;
- var superClass = null;
- if (this.matchKeyword('extends')) {
- this.nextToken();
- superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);
- }
- var classBody = this.parseClassBody();
- this.context.strict = previousStrict;
- return this.finalize(node, new Node.ClassExpression(id, superClass, classBody));
- };
- // ECMA-262 15.1 Scripts
- // ECMA-262 15.2 Modules
- Parser.prototype.parseProgram = function () {
- var node = this.createNode();
- var body = this.parseDirectivePrologues();
- while (this.startMarker.index < this.scanner.length) {
- body.push(this.parseStatementListItem());
- }
- return this.finalize(node, new Node.Program(body, this.sourceType));
- };
- // ECMA-262 15.2.2 Imports
- Parser.prototype.parseModuleSpecifier = function () {
- var node = this.createNode();
- if (this.lookahead.type !== token_1.Token.StringLiteral) {
- this.throwError(messages_1.Messages.InvalidModuleSpecifier);
- }
- var token = this.nextToken();
- var raw = this.getTokenRaw(token);
- return this.finalize(node, new Node.Literal(token.value, raw));
- };
- // import {<foo as bar>} ...;
- Parser.prototype.parseImportSpecifier = function () {
- var node = this.createNode();
- var imported;
- var local;
- if (this.lookahead.type === token_1.Token.Identifier) {
- imported = this.parseVariableIdentifier();
- local = imported;
- if (this.matchContextualKeyword('as')) {
- this.nextToken();
- local = this.parseVariableIdentifier();
- }
- }
- else {
- imported = this.parseIdentifierName();
- local = imported;
- if (this.matchContextualKeyword('as')) {
- this.nextToken();
- local = this.parseVariableIdentifier();
- }
- else {
- this.throwUnexpectedToken(this.nextToken());
- }
- }
- return this.finalize(node, new Node.ImportSpecifier(local, imported));
- };
- // {foo, bar as bas}
- Parser.prototype.parseNamedImports = function () {
- this.expect('{');
- var specifiers = [];
- while (!this.match('}')) {
- specifiers.push(this.parseImportSpecifier());
- if (!this.match('}')) {
- this.expect(',');
- }
- }
- this.expect('}');
- return specifiers;
- };
- // import <foo> ...;
- Parser.prototype.parseImportDefaultSpecifier = function () {
- var node = this.createNode();
- var local = this.parseIdentifierName();
- return this.finalize(node, new Node.ImportDefaultSpecifier(local));
- };
- // import <* as foo> ...;
- Parser.prototype.parseImportNamespaceSpecifier = function () {
- var node = this.createNode();
- this.expect('*');
- if (!this.matchContextualKeyword('as')) {
- this.throwError(messages_1.Messages.NoAsAfterImportNamespace);
- }
- this.nextToken();
- var local = this.parseIdentifierName();
- return this.finalize(node, new Node.ImportNamespaceSpecifier(local));
- };
- Parser.prototype.parseImportDeclaration = function () {
- if (this.context.inFunctionBody) {
- this.throwError(messages_1.Messages.IllegalImportDeclaration);
- }
- var node = this.createNode();
- this.expectKeyword('import');
- var src;
- var specifiers = [];
- if (this.lookahead.type === token_1.Token.StringLiteral) {
- // import 'foo';
- src = this.parseModuleSpecifier();
- }
- else {
- if (this.match('{')) {
- // import {bar}
- specifiers = specifiers.concat(this.parseNamedImports());
- }
- else if (this.match('*')) {
- // import * as foo
- specifiers.push(this.parseImportNamespaceSpecifier());
- }
- else if (this.isIdentifierName(this.lookahead) && !this.matchKeyword('default')) {
- // import foo
- specifiers.push(this.parseImportDefaultSpecifier());
- if (this.match(',')) {
- this.nextToken();
- if (this.match('*')) {
- // import foo, * as foo
- specifiers.push(this.parseImportNamespaceSpecifier());
- }
- else if (this.match('{')) {
- // import foo, {bar}
- specifiers = specifiers.concat(this.parseNamedImports());
- }
- else {
- this.throwUnexpectedToken(this.lookahead);
- }
- }
- }
- else {
- this.throwUnexpectedToken(this.nextToken());
- }
- if (!this.matchContextualKeyword('from')) {
- var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;
- this.throwError(message, this.lookahead.value);
- }
- this.nextToken();
- src = this.parseModuleSpecifier();
- }
- this.consumeSemicolon();
- return this.finalize(node, new Node.ImportDeclaration(specifiers, src));
- };
- // ECMA-262 15.2.3 Exports
- Parser.prototype.parseExportSpecifier = function () {
- var node = this.createNode();
- var local = this.parseIdentifierName();
- var exported = local;
- if (this.matchContextualKeyword('as')) {
- this.nextToken();
- exported = this.parseIdentifierName();
- }
- return this.finalize(node, new Node.ExportSpecifier(local, exported));
- };
- Parser.prototype.parseExportDeclaration = function () {
- if (this.context.inFunctionBody) {
- this.throwError(messages_1.Messages.IllegalExportDeclaration);
- }
- var node = this.createNode();
- this.expectKeyword('export');
- var exportDeclaration;
- if (this.matchKeyword('default')) {
- // export default ...
- this.nextToken();
- if (this.matchKeyword('function')) {
- // export default function foo () {}
- // export default function () {}
- var declaration = this.parseFunctionDeclaration(true);
- exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));
- }
- else if (this.matchKeyword('class')) {
- // export default class foo {}
- var declaration = this.parseClassDeclaration(true);
- exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));
- }
- else {
- if (this.matchContextualKeyword('from')) {
- this.throwError(messages_1.Messages.UnexpectedToken, this.lookahead.value);
- }
- // export default {};
- // export default [];
- // export default (1 + 2);
- var declaration = this.match('{') ? this.parseObjectInitializer() :
- this.match('[') ? this.parseArrayInitializer() : this.parseAssignmentExpression();
- this.consumeSemicolon();
- exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));
- }
- }
- else if (this.match('*')) {
- // export * from 'foo';
- this.nextToken();
- if (!this.matchContextualKeyword('from')) {
- var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;
- this.throwError(message, this.lookahead.value);
- }
- this.nextToken();
- var src = this.parseModuleSpecifier();
- this.consumeSemicolon();
- exportDeclaration = this.finalize(node, new Node.ExportAllDeclaration(src));
- }
- else if (this.lookahead.type === token_1.Token.Keyword) {
- // export var f = 1;
- var declaration = void 0;
- switch (this.lookahead.value) {
- case 'let':
- case 'const':
- declaration = this.parseLexicalDeclaration({ inFor: false });
- break;
- case 'var':
- case 'class':
- case 'function':
- declaration = this.parseStatementListItem();
- break;
- default:
- this.throwUnexpectedToken(this.lookahead);
- }
- exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));
- }
- else {
- var specifiers = [];
- var source = null;
- var isExportFromIdentifier = false;
- this.expect('{');
- while (!this.match('}')) {
- isExportFromIdentifier = isExportFromIdentifier || this.matchKeyword('default');
- specifiers.push(this.parseExportSpecifier());
- if (!this.match('}')) {
- this.expect(',');
- }
- }
- this.expect('}');
- if (this.matchContextualKeyword('from')) {
- // export {default} from 'foo';
- // export {foo} from 'foo';
- this.nextToken();
- source = this.parseModuleSpecifier();
- this.consumeSemicolon();
- }
- else if (isExportFromIdentifier) {
- // export {default}; // missing fromClause
- var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;
- this.throwError(message, this.lookahead.value);
- }
- else {
- // export {foo};
- this.consumeSemicolon();
- }
- exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(null, specifiers, source));
- }
- return exportDeclaration;
- };
- return Parser;
- }());
- exports.Parser = Parser;
-
-
-/***/ },
-/* 4 */
-/***/ function(module, exports) {
-
- // Ensure the condition is true, otherwise throw an error.
- // This is only to have a better contract semantic, i.e. another safety net
- // to catch a logic error. The condition shall be fulfilled in normal case.
- // Do NOT use this to enforce a certain condition on any user input.
- "use strict";
- function assert(condition, message) {
- /* istanbul ignore if */
- if (!condition) {
- throw new Error('ASSERT: ' + message);
- }
- }
- exports.assert = assert;
-
-
-/***/ },
-/* 5 */
-/***/ function(module, exports) {
-
- "use strict";
- // Error messages should be identical to V8.
- exports.Messages = {
- UnexpectedToken: 'Unexpected token %0',
- UnexpectedTokenIllegal: 'Unexpected token ILLEGAL',
- UnexpectedNumber: 'Unexpected number',
- UnexpectedString: 'Unexpected string',
- UnexpectedIdentifier: 'Unexpected identifier',
- UnexpectedReserved: 'Unexpected reserved word',
- UnexpectedTemplate: 'Unexpected quasi %0',
- UnexpectedEOS: 'Unexpected end of input',
- NewlineAfterThrow: 'Illegal newline after throw',
- InvalidRegExp: 'Invalid regular expression',
- UnterminatedRegExp: 'Invalid regular expression: missing /',
- InvalidLHSInAssignment: 'Invalid left-hand side in assignment',
- InvalidLHSInForIn: 'Invalid left-hand side in for-in',
- InvalidLHSInForLoop: 'Invalid left-hand side in for-loop',
- MultipleDefaultsInSwitch: 'More than one default clause in switch statement',
- NoCatchOrFinally: 'Missing catch or finally after try',
- UnknownLabel: 'Undefined label \'%0\'',
- Redeclaration: '%0 \'%1\' has already been declared',
- IllegalContinue: 'Illegal continue statement',
- IllegalBreak: 'Illegal break statement',
- IllegalReturn: 'Illegal return statement',
- StrictModeWith: 'Strict mode code may not include a with statement',
- StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode',
- StrictVarName: 'Variable name may not be eval or arguments in strict mode',
- StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode',
- StrictParamDupe: 'Strict mode function may not have duplicate parameter names',
- StrictFunctionName: 'Function name may not be eval or arguments in strict mode',
- StrictOctalLiteral: 'Octal literals are not allowed in strict mode.',
- StrictDelete: 'Delete of an unqualified identifier in strict mode.',
- StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode',
- StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode',
- StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode',
- StrictReservedWord: 'Use of future reserved word in strict mode',
- TemplateOctalLiteral: 'Octal literals are not allowed in template strings.',
- ParameterAfterRestParameter: 'Rest parameter must be last formal parameter',
- DefaultRestParameter: 'Unexpected token =',
- DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals',
- ConstructorSpecialMethod: 'Class constructor may not be an accessor',
- DuplicateConstructor: 'A class may only have one constructor',
- StaticPrototype: 'Classes may not have static property named prototype',
- MissingFromClause: 'Unexpected token',
- NoAsAfterImportNamespace: 'Unexpected token',
- InvalidModuleSpecifier: 'Unexpected token',
- IllegalImportDeclaration: 'Unexpected token',
- IllegalExportDeclaration: 'Unexpected token',
- DuplicateBinding: 'Duplicate binding %0',
- ForInOfLoopInitializer: '%0 loop variable declaration may not have an initializer'
- };
-
-
-/***/ },
-/* 6 */
-/***/ function(module, exports) {
-
- "use strict";
- var ErrorHandler = (function () {
- function ErrorHandler() {
- this.errors = [];
- this.tolerant = false;
- }
- ;
- ErrorHandler.prototype.recordError = function (error) {
- this.errors.push(error);
- };
- ;
- ErrorHandler.prototype.tolerate = function (error) {
- if (this.tolerant) {
- this.recordError(error);
- }
- else {
- throw error;
- }
- };
- ;
- ErrorHandler.prototype.constructError = function (msg, column) {
- var error = new Error(msg);
- try {
- throw error;
- }
- catch (base) {
- /* istanbul ignore else */
- if (Object.create && Object.defineProperty) {
- error = Object.create(base);
- Object.defineProperty(error, 'column', { value: column });
- }
- }
- finally {
- return error;
- }
- };
- ;
- ErrorHandler.prototype.createError = function (index, line, col, description) {
- var msg = 'Line ' + line + ': ' + description;
- var error = this.constructError(msg, col);
- error.index = index;
- error.lineNumber = line;
- error.description = description;
- return error;
- };
- ;
- ErrorHandler.prototype.throwError = function (index, line, col, description) {
- throw this.createError(index, line, col, description);
- };
- ;
- ErrorHandler.prototype.tolerateError = function (index, line, col, description) {
- var error = this.createError(index, line, col, description);
- if (this.tolerant) {
- this.recordError(error);
- }
- else {
- throw error;
- }
- };
- ;
- return ErrorHandler;
- }());
- exports.ErrorHandler = ErrorHandler;
-
-
-/***/ },
-/* 7 */
-/***/ function(module, exports) {
-
- "use strict";
- (function (Token) {
- Token[Token["BooleanLiteral"] = 1] = "BooleanLiteral";
- Token[Token["EOF"] = 2] = "EOF";
- Token[Token["Identifier"] = 3] = "Identifier";
- Token[Token["Keyword"] = 4] = "Keyword";
- Token[Token["NullLiteral"] = 5] = "NullLiteral";
- Token[Token["NumericLiteral"] = 6] = "NumericLiteral";
- Token[Token["Punctuator"] = 7] = "Punctuator";
- Token[Token["StringLiteral"] = 8] = "StringLiteral";
- Token[Token["RegularExpression"] = 9] = "RegularExpression";
- Token[Token["Template"] = 10] = "Template";
- })(exports.Token || (exports.Token = {}));
- var Token = exports.Token;
- ;
- exports.TokenName = {};
- exports.TokenName[Token.BooleanLiteral] = 'Boolean';
- exports.TokenName[Token.EOF] = '<end>';
- exports.TokenName[Token.Identifier] = 'Identifier';
- exports.TokenName[Token.Keyword] = 'Keyword';
- exports.TokenName[Token.NullLiteral] = 'Null';
- exports.TokenName[Token.NumericLiteral] = 'Numeric';
- exports.TokenName[Token.Punctuator] = 'Punctuator';
- exports.TokenName[Token.StringLiteral] = 'String';
- exports.TokenName[Token.RegularExpression] = 'RegularExpression';
- exports.TokenName[Token.Template] = 'Template';
-
-
-/***/ },
-/* 8 */
-/***/ function(module, exports, __webpack_require__) {
-
- "use strict";
- var assert_1 = __webpack_require__(4);
- var messages_1 = __webpack_require__(5);
- var character_1 = __webpack_require__(9);
- var token_1 = __webpack_require__(7);
- function hexValue(ch) {
- return '0123456789abcdef'.indexOf(ch.toLowerCase());
- }
- function octalValue(ch) {
- return '01234567'.indexOf(ch);
- }
- var Scanner = (function () {
- function Scanner(code, handler) {
- this.source = code;
- this.errorHandler = handler;
- this.trackComment = false;
- this.length = code.length;
- this.index = 0;
- this.lineNumber = (code.length > 0) ? 1 : 0;
- this.lineStart = 0;
- this.curlyStack = [];
- }
- ;
- Scanner.prototype.eof = function () {
- return this.index >= this.length;
- };
- ;
- Scanner.prototype.throwUnexpectedToken = function (message) {
- if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }
- this.errorHandler.throwError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);
- };
- ;
- Scanner.prototype.tolerateUnexpectedToken = function () {
- this.errorHandler.tolerateError(this.index, this.lineNumber, this.index - this.lineStart + 1, messages_1.Messages.UnexpectedTokenIllegal);
- };
- ;
- // ECMA-262 11.4 Comments
- Scanner.prototype.skipSingleLineComment = function (offset) {
- var comments;
- var start, loc;
- if (this.trackComment) {
- comments = [];
- start = this.index - offset;
- loc = {
- start: {
- line: this.lineNumber,
- column: this.index - this.lineStart - offset
- },
- end: {}
- };
- }
- while (!this.eof()) {
- var ch = this.source.charCodeAt(this.index);
- ++this.index;
- if (character_1.Character.isLineTerminator(ch)) {
- if (this.trackComment) {
- loc.end = {
- line: this.lineNumber,
- column: this.index - this.lineStart - 1
- };
- var entry = {
- multiLine: false,
- slice: [start + offset, this.index - 1],
- range: [start, this.index - 1],
- loc: loc
- };
- comments.push(entry);
- }
- if (ch === 13 && this.source.charCodeAt(this.index) === 10) {
- ++this.index;
- }
- ++this.lineNumber;
- this.lineStart = this.index;
- return comments;
- }
- }
- if (this.trackComment) {
- loc.end = {
- line: this.lineNumber,
- column: this.index - this.lineStart
- };
- var entry = {
- multiLine: false,
- slice: [start + offset, this.index],
- range: [start, this.index],
- loc: loc
- };
- comments.push(entry);
- }
- return comments;
- };
- ;
- Scanner.prototype.skipMultiLineComment = function () {
- var comments;
- var start, loc;
- if (this.trackComment) {
- comments = [];
- start = this.index - 2;
- loc = {
- start: {
- line: this.lineNumber,
- column: this.index - this.lineStart - 2
- },
- end: {}
- };
- }
- while (!this.eof()) {
- var ch = this.source.charCodeAt(this.index);
- if (character_1.Character.isLineTerminator(ch)) {
- if (ch === 0x0D && this.source.charCodeAt(this.index + 1) === 0x0A) {
- ++this.index;
- }
- ++this.lineNumber;
- ++this.index;
- this.lineStart = this.index;
- }
- else if (ch === 0x2A) {
- // Block comment ends with '*/'.
- if (this.source.charCodeAt(this.index + 1) === 0x2F) {
- this.index += 2;
- if (this.trackComment) {
- loc.end = {
- line: this.lineNumber,
- column: this.index - this.lineStart
- };
- var entry = {
- multiLine: true,
- slice: [start + 2, this.index - 2],
- range: [start, this.index],
- loc: loc
- };
- comments.push(entry);
- }
- return comments;
- }
- ++this.index;
- }
- else {
- ++this.index;
- }
- }
- // Ran off the end of the file - the whole thing is a comment
- if (this.trackComment) {
- loc.end = {
- line: this.lineNumber,
- column: this.index - this.lineStart
- };
- var entry = {
- multiLine: true,
- slice: [start + 2, this.index],
- range: [start, this.index],
- loc: loc
- };
- comments.push(entry);
- }
- this.tolerateUnexpectedToken();
- return comments;
- };
- ;
- Scanner.prototype.scanComments = function () {
- var comments;
- if (this.trackComment) {
- comments = [];
- }
- var start = (this.index === 0);
- while (!this.eof()) {
- var ch = this.source.charCodeAt(this.index);
- if (character_1.Character.isWhiteSpace(ch)) {
- ++this.index;
- }
- else if (character_1.Character.isLineTerminator(ch)) {
- ++this.index;
- if (ch === 0x0D && this.source.charCodeAt(this.index) === 0x0A) {
- ++this.index;
- }
- ++this.lineNumber;
- this.lineStart = this.index;
- start = true;
- }
- else if (ch === 0x2F) {
- ch = this.source.charCodeAt(this.index + 1);
- if (ch === 0x2F) {
- this.index += 2;
- var comment = this.skipSingleLineComment(2);
- if (this.trackComment) {
- comments = comments.concat(comment);
- }
- start = true;
- }
- else if (ch === 0x2A) {
- this.index += 2;
- var comment = this.skipMultiLineComment();
- if (this.trackComment) {
- comments = comments.concat(comment);
- }
- }
- else {
- break;
- }
- }
- else if (start && ch === 0x2D) {
- // U+003E is '>'
- if ((this.source.charCodeAt(this.index + 1) === 0x2D) && (this.source.charCodeAt(this.index + 2) === 0x3E)) {
- // '-->' is a single-line comment
- this.index += 3;
- var comment = this.skipSingleLineComment(3);
- if (this.trackComment) {
- comments = comments.concat(comment);
- }
- }
- else {
- break;
- }
- }
- else if (ch === 0x3C) {
- if (this.source.slice(this.index + 1, this.index + 4) === '!--') {
- this.index += 4; // `<!--`
- var comment = this.skipSingleLineComment(4);
- if (this.trackComment) {
- comments = comments.concat(comment);
- }
- }
- else {
- break;
- }
- }
- else {
- break;
- }
- }
- return comments;
- };
- ;
- // ECMA-262 11.6.2.2 Future Reserved Words
- Scanner.prototype.isFutureReservedWord = function (id) {
- switch (id) {
- case 'enum':
- case 'export':
- case 'import':
- case 'super':
- return true;
- default:
- return false;
- }
- };
- ;
- Scanner.prototype.isStrictModeReservedWord = function (id) {
- switch (id) {
- case 'implements':
- case 'interface':
- case 'package':
- case 'private':
- case 'protected':
- case 'public':
- case 'static':
- case 'yield':
- case 'let':
- return true;
- default:
- return false;
- }
- };
- ;
- Scanner.prototype.isRestrictedWord = function (id) {
- return id === 'eval' || id === 'arguments';
- };
- ;
- // ECMA-262 11.6.2.1 Keywords
- Scanner.prototype.isKeyword = function (id) {
- switch (id.length) {
- case 2:
- return (id === 'if') || (id === 'in') || (id === 'do');
- case 3:
- return (id === 'var') || (id === 'for') || (id === 'new') ||
- (id === 'try') || (id === 'let');
- case 4:
- return (id === 'this') || (id === 'else') || (id === 'case') ||
- (id === 'void') || (id === 'with') || (id === 'enum');
- case 5:
- return (id === 'while') || (id === 'break') || (id === 'catch') ||
- (id === 'throw') || (id === 'const') || (id === 'yield') ||
- (id === 'class') || (id === 'super');
- case 6:
- return (id === 'return') || (id === 'typeof') || (id === 'delete') ||
- (id === 'switch') || (id === 'export') || (id === 'import');
- case 7:
- return (id === 'default') || (id === 'finally') || (id === 'extends');
- case 8:
- return (id === 'function') || (id === 'continue') || (id === 'debugger');
- case 10:
- return (id === 'instanceof');
- default:
- return false;
- }
- };
- ;
- Scanner.prototype.codePointAt = function (i) {
- var cp = this.source.charCodeAt(i);
- if (cp >= 0xD800 && cp <= 0xDBFF) {
- var second = this.source.charCodeAt(i + 1);
- if (second >= 0xDC00 && second <= 0xDFFF) {
- var first = cp;
- cp = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
- }
- }
- return cp;
- };
- ;
- Scanner.prototype.scanHexEscape = function (prefix) {
- var len = (prefix === 'u') ? 4 : 2;
- var code = 0;
- for (var i = 0; i < len; ++i) {
- if (!this.eof() && character_1.Character.isHexDigit(this.source.charCodeAt(this.index))) {
- code = code * 16 + hexValue(this.source[this.index++]);
- }
- else {
- return '';
- }
- }
- return String.fromCharCode(code);
- };
- ;
- Scanner.prototype.scanUnicodeCodePointEscape = function () {
- var ch = this.source[this.index];
- var code = 0;
- // At least, one hex digit is required.
- if (ch === '}') {
- this.throwUnexpectedToken();
- }
- while (!this.eof()) {
- ch = this.source[this.index++];
- if (!character_1.Character.isHexDigit(ch.charCodeAt(0))) {
- break;
- }
- code = code * 16 + hexValue(ch);
- }
- if (code > 0x10FFFF || ch !== '}') {
- this.throwUnexpectedToken();
- }
- return character_1.Character.fromCodePoint(code);
- };
- ;
- Scanner.prototype.getIdentifier = function () {
- var start = this.index++;
- while (!this.eof()) {
- var ch = this.source.charCodeAt(this.index);
- if (ch === 0x5C) {
- // Blackslash (U+005C) marks Unicode escape sequence.
- this.index = start;
- return this.getComplexIdentifier();
- }
- else if (ch >= 0xD800 && ch < 0xDFFF) {
- // Need to handle surrogate pairs.
- this.index = start;
- return this.getComplexIdentifier();
- }
- if (character_1.Character.isIdentifierPart(ch)) {
- ++this.index;
- }
- else {
- break;
- }
- }
- return this.source.slice(start, this.index);
- };
- ;
- Scanner.prototype.getComplexIdentifier = function () {
- var cp = this.codePointAt(this.index);
- var id = character_1.Character.fromCodePoint(cp);
- this.index += id.length;
- // '\u' (U+005C, U+0075) denotes an escaped character.
- var ch;
- if (cp === 0x5C) {
- if (this.source.charCodeAt(this.index) !== 0x75) {
- this.throwUnexpectedToken();
- }
- ++this.index;
- if (this.source[this.index] === '{') {
- ++this.index;
- ch = this.scanUnicodeCodePointEscape();
- }
- else {
- ch = this.scanHexEscape('u');
- cp = ch.charCodeAt(0);
- if (!ch || ch === '\\' || !character_1.Character.isIdentifierStart(cp)) {
- this.throwUnexpectedToken();
- }
- }
- id = ch;
- }
- while (!this.eof()) {
- cp = this.codePointAt(this.index);
- if (!character_1.Character.isIdentifierPart(cp)) {
- break;
- }
- ch = character_1.Character.fromCodePoint(cp);
- id += ch;
- this.index += ch.length;
- // '\u' (U+005C, U+0075) denotes an escaped character.
- if (cp === 0x5C) {
- id = id.substr(0, id.length - 1);
- if (this.source.charCodeAt(this.index) !== 0x75) {
- this.throwUnexpectedToken();
- }
- ++this.index;
- if (this.source[this.index] === '{') {
- ++this.index;
- ch = this.scanUnicodeCodePointEscape();
- }
- else {
- ch = this.scanHexEscape('u');
- cp = ch.charCodeAt(0);
- if (!ch || ch === '\\' || !character_1.Character.isIdentifierPart(cp)) {
- this.throwUnexpectedToken();
- }
- }
- id += ch;
- }
- }
- return id;
- };
- ;
- Scanner.prototype.octalToDecimal = function (ch) {
- // \0 is not octal escape sequence
- var octal = (ch !== '0');
- var code = octalValue(ch);
- if (!this.eof() && character_1.Character.isOctalDigit(this.source.charCodeAt(this.index))) {
- octal = true;
- code = code * 8 + octalValue(this.source[this.index++]);
- // 3 digits are only allowed when string starts
- // with 0, 1, 2, 3
- if ('0123'.indexOf(ch) >= 0 && !this.eof() && character_1.Character.isOctalDigit(this.source.charCodeAt(this.index))) {
- code = code * 8 + octalValue(this.source[this.index++]);
- }
- }
- return {
- code: code,
- octal: octal
- };
- };
- ;
- // ECMA-262 11.6 Names and Keywords
- Scanner.prototype.scanIdentifier = function () {
- var type;
- var start = this.index;
- // Backslash (U+005C) starts an escaped character.
- var id = (this.source.charCodeAt(start) === 0x5C) ? this.getComplexIdentifier() : this.getIdentifier();
- // There is no keyword or literal with only one character.
- // Thus, it must be an identifier.
- if (id.length === 1) {
- type = token_1.Token.Identifier;
- }
- else if (this.isKeyword(id)) {
- type = token_1.Token.Keyword;
- }
- else if (id === 'null') {
- type = token_1.Token.NullLiteral;
- }
- else if (id === 'true' || id === 'false') {
- type = token_1.Token.BooleanLiteral;
- }
- else {
- type = token_1.Token.Identifier;
- }
- return {
- type: type,
- value: id,
- lineNumber: this.lineNumber,
- lineStart: this.lineStart,
- start: start,
- end: this.index
- };
- };
- ;
- // ECMA-262 11.7 Punctuators
- Scanner.prototype.scanPunctuator = function () {
- var token = {
- type: token_1.Token.Punctuator,
- value: '',
- lineNumber: this.lineNumber,
- lineStart: this.lineStart,
- start: this.index,
- end: this.index
- };
- // Check for most common single-character punctuators.
- var str = this.source[this.index];
- switch (str) {
- case '(':
- case '{':
- if (str === '{') {
- this.curlyStack.push('{');
- }
- ++this.index;
- break;
- case '.':
- ++this.index;
- if (this.source[this.index] === '.' && this.source[this.index + 1] === '.') {
- // Spread operator: ...
- this.index += 2;
- str = '...';
- }
- break;
- case '}':
- ++this.index;
- this.curlyStack.pop();
- break;
- case ')':
- case ';':
- case ',':
- case '[':
- case ']':
- case ':':
- case '?':
- case '~':
- ++this.index;
- break;
- default:
- // 4-character punctuator.
- str = this.source.substr(this.index, 4);
- if (str === '>>>=') {
- this.index += 4;
- }
- else {
- // 3-character punctuators.
- str = str.substr(0, 3);
- if (str === '===' || str === '!==' || str === '>>>' ||
- str === '<<=' || str === '>>=' || str === '**=') {
- this.index += 3;
- }
- else {
- // 2-character punctuators.
- str = str.substr(0, 2);
- if (str === '&&' || str === '||' || str === '==' || str === '!=' ||
- str === '+=' || str === '-=' || str === '*=' || str === '/=' ||
- str === '++' || str === '--' || str === '<<' || str === '>>' ||
- str === '&=' || str === '|=' || str === '^=' || str === '%=' ||
- str === '<=' || str === '>=' || str === '=>' || str === '**') {
- this.index += 2;
- }
- else {
- // 1-character punctuators.
- str = this.source[this.index];
- if ('<>=!+-*%&|^/'.indexOf(str) >= 0) {
- ++this.index;
- }
- }
- }
- }
- }
- if (this.index === token.start) {
- this.throwUnexpectedToken();
- }
- token.end = this.index;
- token.value = str;
- return token;
- };
- ;
- // ECMA-262 11.8.3 Numeric Literals
- Scanner.prototype.scanHexLiteral = function (start) {
- var number = '';
- while (!this.eof()) {
- if (!character_1.Character.isHexDigit(this.source.charCodeAt(this.index))) {
- break;
- }
- number += this.source[this.index++];
- }
- if (number.length === 0) {
- this.throwUnexpectedToken();
- }
- if (character_1.Character.isIdentifierStart(this.source.charCodeAt(this.index))) {
- this.throwUnexpectedToken();
- }
- return {
- type: token_1.Token.NumericLiteral,
- value: parseInt('0x' + number, 16),
- lineNumber: this.lineNumber,
- lineStart: this.lineStart,
- start: start,
- end: this.index
- };
- };
- ;
- Scanner.prototype.scanBinaryLiteral = function (start) {
- var number = '';
- var ch;
- while (!this.eof()) {
- ch = this.source[this.index];
- if (ch !== '0' && ch !== '1') {
- break;
- }
- number += this.source[this.index++];
- }
- if (number.length === 0) {
- // only 0b or 0B
- this.throwUnexpectedToken();
- }
- if (!this.eof()) {
- ch = this.source.charCodeAt(this.index);
- /* istanbul ignore else */
- if (character_1.Character.isIdentifierStart(ch) || character_1.Character.isDecimalDigit(ch)) {
- this.throwUnexpectedToken();
- }
- }
- return {
- type: token_1.Token.NumericLiteral,
- value: parseInt(number, 2),
- lineNumber: this.lineNumber,
- lineStart: this.lineStart,
- start: start,
- end: this.index
- };
- };
- ;
- Scanner.prototype.scanOctalLiteral = function (prefix, start) {
- var number = '';
- var octal = false;
- if (character_1.Character.isOctalDigit(prefix.charCodeAt(0))) {
- octal = true;
- number = '0' + this.source[this.index++];
- }
- else {
- ++this.index;
- }
- while (!this.eof()) {
- if (!character_1.Character.isOctalDigit(this.source.charCodeAt(this.index))) {
- break;
- }
- number += this.source[this.index++];
- }
- if (!octal && number.length === 0) {
- // only 0o or 0O
- this.throwUnexpectedToken();
- }
- if (character_1.Character.isIdentifierStart(this.source.charCodeAt(this.index)) || character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {
- this.throwUnexpectedToken();
- }
- return {
- type: token_1.Token.NumericLiteral,
- value: parseInt(number, 8),
- octal: octal,
- lineNumber: this.lineNumber,
- lineStart: this.lineStart,
- start: start,
- end: this.index
- };
- };
- ;
- Scanner.prototype.isImplicitOctalLiteral = function () {
- // Implicit octal, unless there is a non-octal digit.
- // (Annex B.1.1 on Numeric Literals)
- for (var i = this.index + 1; i < this.length; ++i) {
- var ch = this.source[i];
- if (ch === '8' || ch === '9') {
- return false;
- }
- if (!character_1.Character.isOctalDigit(ch.charCodeAt(0))) {
- return true;
- }
- }
- return true;
- };
- ;
- Scanner.prototype.scanNumericLiteral = function () {
- var start = this.index;
- var ch = this.source[start];
- assert_1.assert(character_1.Character.isDecimalDigit(ch.charCodeAt(0)) || (ch === '.'), 'Numeric literal must start with a decimal digit or a decimal point');
- var number = '';
- if (ch !== '.') {
- number = this.source[this.index++];
- ch = this.source[this.index];
- // Hex number starts with '0x'.
- // Octal number starts with '0'.
- // Octal number in ES6 starts with '0o'.
- // Binary number in ES6 starts with '0b'.
- if (number === '0') {
- if (ch === 'x' || ch === 'X') {
- ++this.index;
- return this.scanHexLiteral(start);
- }
- if (ch === 'b' || ch === 'B') {
- ++this.index;
- return this.scanBinaryLiteral(start);
- }
- if (ch === 'o' || ch === 'O') {
- return this.scanOctalLiteral(ch, start);
- }
- if (ch && character_1.Character.isOctalDigit(ch.charCodeAt(0))) {
- if (this.isImplicitOctalLiteral()) {
- return this.scanOctalLiteral(ch, start);
- }
- }
- }
- while (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {
- number += this.source[this.index++];
- }
- ch = this.source[this.index];
- }
- if (ch === '.') {
- number += this.source[this.index++];
- while (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {
- number += this.source[this.index++];
- }
- ch = this.source[this.index];
- }
- if (ch === 'e' || ch === 'E') {
- number += this.source[this.index++];
- ch = this.source[this.index];
- if (ch === '+' || ch === '-') {
- number += this.source[this.index++];
- }
- if (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {
- while (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {
- number += this.source[this.index++];
- }
- }
- else {
- this.throwUnexpectedToken();
- }
- }
- if (character_1.Character.isIdentifierStart(this.source.charCodeAt(this.index))) {
- this.throwUnexpectedToken();
- }
- return {
- type: token_1.Token.NumericLiteral,
- value: parseFloat(number),
- lineNumber: this.lineNumber,
- lineStart: this.lineStart,
- start: start,
- end: this.index
- };
- };
- ;
- // ECMA-262 11.8.4 String Literals
- Scanner.prototype.scanStringLiteral = function () {
- var start = this.index;
- var quote = this.source[start];
- assert_1.assert((quote === '\'' || quote === '"'), 'String literal must starts with a quote');
- ++this.index;
- var octal = false;
- var str = '';
- while (!this.eof()) {
- var ch = this.source[this.index++];
- if (ch === quote) {
- quote = '';
- break;
- }
- else if (ch === '\\') {
- ch = this.source[this.index++];
- if (!ch || !character_1.Character.isLineTerminator(ch.charCodeAt(0))) {
- switch (ch) {
- case 'u':
- case 'x':
- if (this.source[this.index] === '{') {
- ++this.index;
- str += this.scanUnicodeCodePointEscape();
- }
- else {
- var unescaped = this.scanHexEscape(ch);
- if (!unescaped) {
- this.throwUnexpectedToken();
- }
- str += unescaped;
- }
- break;
- case 'n':
- str += '\n';
- break;
- case 'r':
- str += '\r';
- break;
- case 't':
- str += '\t';
- break;
- case 'b':
- str += '\b';
- break;
- case 'f':
- str += '\f';
- break;
- case 'v':
- str += '\x0B';
- break;
- case '8':
- case '9':
- str += ch;
- this.tolerateUnexpectedToken();
- break;
- default:
- if (ch && character_1.Character.isOctalDigit(ch.charCodeAt(0))) {
- var octToDec = this.octalToDecimal(ch);
- octal = octToDec.octal || octal;
- str += String.fromCharCode(octToDec.code);
- }
- else {
- str += ch;
- }
- break;
- }
- }
- else {
- ++this.lineNumber;
- if (ch === '\r' && this.source[this.index] === '\n') {
- ++this.index;
- }
- this.lineStart = this.index;
- }
- }
- else if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {
- break;
- }
- else {
- str += ch;
- }
- }
- if (quote !== '') {
- this.index = start;
- this.throwUnexpectedToken();
- }
- return {
- type: token_1.Token.StringLiteral,
- value: str,
- octal: octal,
- lineNumber: this.lineNumber,
- lineStart: this.lineStart,
- start: start,
- end: this.index
- };
- };
- ;
- // ECMA-262 11.8.6 Template Literal Lexical Components
- Scanner.prototype.scanTemplate = function () {
- var cooked = '';
- var terminated = false;
- var start = this.index;
- var head = (this.source[start] === '`');
- var tail = false;
- var rawOffset = 2;
- ++this.index;
- while (!this.eof()) {
- var ch = this.source[this.index++];
- if (ch === '`') {
- rawOffset = 1;
- tail = true;
- terminated = true;
- break;
- }
- else if (ch === '$') {
- if (this.source[this.index] === '{') {
- this.curlyStack.push('${');
- ++this.index;
- terminated = true;
- break;
- }
- cooked += ch;
- }
- else if (ch === '\\') {
- ch = this.source[this.index++];
- if (!character_1.Character.isLineTerminator(ch.charCodeAt(0))) {
- switch (ch) {
- case 'n':
- cooked += '\n';
- break;
- case 'r':
- cooked += '\r';
- break;
- case 't':
- cooked += '\t';
- break;
- case 'u':
- case 'x':
- if (this.source[this.index] === '{') {
- ++this.index;
- cooked += this.scanUnicodeCodePointEscape();
- }
- else {
- var restore = this.index;
- var unescaped = this.scanHexEscape(ch);
- if (unescaped) {
- cooked += unescaped;
- }
- else {
- this.index = restore;
- cooked += ch;
- }
- }
- break;
- case 'b':
- cooked += '\b';
- break;
- case 'f':
- cooked += '\f';
- break;
- case 'v':
- cooked += '\v';
- break;
- default:
- if (ch === '0') {
- if (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {
- // Illegal: \01 \02 and so on
- this.throwUnexpectedToken(messages_1.Messages.TemplateOctalLiteral);
- }
- cooked += '\0';
- }
- else if (character_1.Character.isOctalDigit(ch.charCodeAt(0))) {
- // Illegal: \1 \2
- this.throwUnexpectedToken(messages_1.Messages.TemplateOctalLiteral);
- }
- else {
- cooked += ch;
- }
- break;
- }
- }
- else {
- ++this.lineNumber;
- if (ch === '\r' && this.source[this.index] === '\n') {
- ++this.index;
- }
- this.lineStart = this.index;
- }
- }
- else if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {
- ++this.lineNumber;
- if (ch === '\r' && this.source[this.index] === '\n') {
- ++this.index;
- }
- this.lineStart = this.index;
- cooked += '\n';
- }
- else {
- cooked += ch;
- }
- }
- if (!terminated) {
- this.throwUnexpectedToken();
- }
- if (!head) {
- this.curlyStack.pop();
- }
- return {
- type: token_1.Token.Template,
- value: {
- cooked: cooked,
- raw: this.source.slice(start + 1, this.index - rawOffset)
- },
- head: head,
- tail: tail,
- lineNumber: this.lineNumber,
- lineStart: this.lineStart,
- start: start,
- end: this.index
- };
- };
- ;
- // ECMA-262 11.8.5 Regular Expression Literals
- Scanner.prototype.testRegExp = function (pattern, flags) {
- // The BMP character to use as a replacement for astral symbols when
- // translating an ES6 "u"-flagged pattern to an ES5-compatible
- // approximation.
- // Note: replacing with '\uFFFF' enables false positives in unlikely
- // scenarios. For example, `[\u{1044f}-\u{10440}]` is an invalid
- // pattern that would not be detected by this substitution.
- var astralSubstitute = '\uFFFF';
- var tmp = pattern;
- var self = this;
- if (flags.indexOf('u') >= 0) {
- tmp = tmp
- .replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g, function ($0, $1, $2) {
- var codePoint = parseInt($1 || $2, 16);
- if (codePoint > 0x10FFFF) {
- self.throwUnexpectedToken(messages_1.Messages.InvalidRegExp);
- }
- if (codePoint <= 0xFFFF) {
- return String.fromCharCode(codePoint);
- }
- return astralSubstitute;
- })
- .replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, astralSubstitute);
- }
- // First, detect invalid regular expressions.
- try {
- RegExp(tmp);
- }
- catch (e) {
- this.throwUnexpectedToken(messages_1.Messages.InvalidRegExp);
- }
- // Return a regular expression object for this pattern-flag pair, or
- // `null` in case the current environment doesn't support the flags it
- // uses.
- try {
- return new RegExp(pattern, flags);
- }
- catch (exception) {
- /* istanbul ignore next */
- return null;
- }
- };
- ;
- Scanner.prototype.scanRegExpBody = function () {
- var ch = this.source[this.index];
- assert_1.assert(ch === '/', 'Regular expression literal must start with a slash');
- var str = this.source[this.index++];
- var classMarker = false;
- var terminated = false;
- while (!this.eof()) {
- ch = this.source[this.index++];
- str += ch;
- if (ch === '\\') {
- ch = this.source[this.index++];
- // ECMA-262 7.8.5
- if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {
- this.throwUnexpectedToken(messages_1.Messages.UnterminatedRegExp);
- }
- str += ch;
- }
- else if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {
- this.throwUnexpectedToken(messages_1.Messages.UnterminatedRegExp);
- }
- else if (classMarker) {
- if (ch === ']') {
- classMarker = false;
- }
- }
- else {
- if (ch === '/') {
- terminated = true;
- break;
- }
- else if (ch === '[') {
- classMarker = true;
- }
- }
- }
- if (!terminated) {
- this.throwUnexpectedToken(messages_1.Messages.UnterminatedRegExp);
- }
- // Exclude leading and trailing slash.
- var body = str.substr(1, str.length - 2);
- return {
- value: body,
- literal: str
- };
- };
- ;
- Scanner.prototype.scanRegExpFlags = function () {
- var str = '';
- var flags = '';
- while (!this.eof()) {
- var ch = this.source[this.index];
- if (!character_1.Character.isIdentifierPart(ch.charCodeAt(0))) {
- break;
- }
- ++this.index;
- if (ch === '\\' && !this.eof()) {
- ch = this.source[this.index];
- if (ch === 'u') {
- ++this.index;
- var restore = this.index;
- ch = this.scanHexEscape('u');
- if (ch) {
- flags += ch;
- for (str += '\\u'; restore < this.index; ++restore) {
- str += this.source[restore];
- }
- }
- else {
- this.index = restore;
- flags += 'u';
- str += '\\u';
- }
- this.tolerateUnexpectedToken();
- }
- else {
- str += '\\';
- this.tolerateUnexpectedToken();
- }
- }
- else {
- flags += ch;
- str += ch;
- }
- }
- return {
- value: flags,
- literal: str
- };
- };
- ;
- Scanner.prototype.scanRegExp = function () {
- var start = this.index;
- var body = this.scanRegExpBody();
- var flags = this.scanRegExpFlags();
- var value = this.testRegExp(body.value, flags.value);
- return {
- type: token_1.Token.RegularExpression,
- value: value,
- literal: body.literal + flags.literal,
- regex: {
- pattern: body.value,
- flags: flags.value
- },
- lineNumber: this.lineNumber,
- lineStart: this.lineStart,
- start: start,
- end: this.index
- };
- };
- ;
- Scanner.prototype.lex = function () {
- if (this.eof()) {
- return {
- type: token_1.Token.EOF,
- lineNumber: this.lineNumber,
- lineStart: this.lineStart,
- start: this.index,
- end: this.index
- };
- }
- var cp = this.source.charCodeAt(this.index);
- if (character_1.Character.isIdentifierStart(cp)) {
- return this.scanIdentifier();
- }
- // Very common: ( and ) and ;
- if (cp === 0x28 || cp === 0x29 || cp === 0x3B) {
- return this.scanPunctuator();
- }
- // String literal starts with single quote (U+0027) or double quote (U+0022).
- if (cp === 0x27 || cp === 0x22) {
- return this.scanStringLiteral();
- }
- // Dot (.) U+002E can also start a floating-point number, hence the need
- // to check the next character.
- if (cp === 0x2E) {
- if (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index + 1))) {
- return this.scanNumericLiteral();
- }
- return this.scanPunctuator();
- }
- if (character_1.Character.isDecimalDigit(cp)) {
- return this.scanNumericLiteral();
- }
- // Template literals start with ` (U+0060) for template head
- // or } (U+007D) for template middle or template tail.
- if (cp === 0x60 || (cp === 0x7D && this.curlyStack[this.curlyStack.length - 1] === '${')) {
- return this.scanTemplate();
- }
- // Possible identifier start in a surrogate pair.
- if (cp >= 0xD800 && cp < 0xDFFF) {
- if (character_1.Character.isIdentifierStart(this.codePointAt(this.index))) {
- return this.scanIdentifier();
- }
- }
- return this.scanPunctuator();
- };
- ;
- return Scanner;
- }());
- exports.Scanner = Scanner;
-
-
-/***/ },
-/* 9 */
-/***/ function(module, exports) {
-
- "use strict";
- // See also tools/generate-unicode-regex.js.
- var Regex = {
- // Unicode v8.0.0 NonAsciiIdentifierStart:
- NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,
- // Unicode v8.0.0 NonAsciiIdentifierPart:
- NonAsciiIdentifierPart: /[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/
- };
- exports.Character = {
- fromCodePoint: function (cp) {
- return (cp < 0x10000) ? String.fromCharCode(cp) :
- String.fromCharCode(0xD800 + ((cp - 0x10000) >> 10)) +
- String.fromCharCode(0xDC00 + ((cp - 0x10000) & 1023));
- },
- // ECMA-262 11.2 White Space
- isWhiteSpace: function (cp) {
- return (cp === 0x20) || (cp === 0x09) || (cp === 0x0B) || (cp === 0x0C) || (cp === 0xA0) ||
- (cp >= 0x1680 && [0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(cp) >= 0);
- },
- // ECMA-262 11.3 Line Terminators
- isLineTerminator: function (cp) {
- return (cp === 0x0A) || (cp === 0x0D) || (cp === 0x2028) || (cp === 0x2029);
- },
- // ECMA-262 11.6 Identifier Names and Identifiers
- isIdentifierStart: function (cp) {
- return (cp === 0x24) || (cp === 0x5F) ||
- (cp >= 0x41 && cp <= 0x5A) ||
- (cp >= 0x61 && cp <= 0x7A) ||
- (cp === 0x5C) ||
- ((cp >= 0x80) && Regex.NonAsciiIdentifierStart.test(exports.Character.fromCodePoint(cp)));
- },
- isIdentifierPart: function (cp) {
- return (cp === 0x24) || (cp === 0x5F) ||
- (cp >= 0x41 && cp <= 0x5A) ||
- (cp >= 0x61 && cp <= 0x7A) ||
- (cp >= 0x30 && cp <= 0x39) ||
- (cp === 0x5C) ||
- ((cp >= 0x80) && Regex.NonAsciiIdentifierPart.test(exports.Character.fromCodePoint(cp)));
- },
- // ECMA-262 11.8.3 Numeric Literals
- isDecimalDigit: function (cp) {
- return (cp >= 0x30 && cp <= 0x39); // 0..9
- },
- isHexDigit: function (cp) {
- return (cp >= 0x30 && cp <= 0x39) ||
- (cp >= 0x41 && cp <= 0x46) ||
- (cp >= 0x61 && cp <= 0x66); // a..f
- },
- isOctalDigit: function (cp) {
- return (cp >= 0x30 && cp <= 0x37); // 0..7
- }
- };
-
-
-/***/ },
-/* 10 */
-/***/ function(module, exports, __webpack_require__) {
-
- "use strict";
- var syntax_1 = __webpack_require__(2);
- var ArrayExpression = (function () {
- function ArrayExpression(elements) {
- this.type = syntax_1.Syntax.ArrayExpression;
- this.elements = elements;
- }
- return ArrayExpression;
- }());
- exports.ArrayExpression = ArrayExpression;
- var ArrayPattern = (function () {
- function ArrayPattern(elements) {
- this.type = syntax_1.Syntax.ArrayPattern;
- this.elements = elements;
- }
- return ArrayPattern;
- }());
- exports.ArrayPattern = ArrayPattern;
- var ArrowFunctionExpression = (function () {
- function ArrowFunctionExpression(params, body, expression) {
- this.type = syntax_1.Syntax.ArrowFunctionExpression;
- this.id = null;
- this.params = params;
- this.body = body;
- this.generator = false;
- this.expression = expression;
- }
- return ArrowFunctionExpression;
- }());
- exports.ArrowFunctionExpression = ArrowFunctionExpression;
- var AssignmentExpression = (function () {
- function AssignmentExpression(operator, left, right) {
- this.type = syntax_1.Syntax.AssignmentExpression;
- this.operator = operator;
- this.left = left;
- this.right = right;
- }
- return AssignmentExpression;
- }());
- exports.AssignmentExpression = AssignmentExpression;
- var AssignmentPattern = (function () {
- function AssignmentPattern(left, right) {
- this.type = syntax_1.Syntax.AssignmentPattern;
- this.left = left;
- this.right = right;
- }
- return AssignmentPattern;
- }());
- exports.AssignmentPattern = AssignmentPattern;
- var BinaryExpression = (function () {
- function BinaryExpression(operator, left, right) {
- var logical = (operator === '||' || operator === '&&');
- this.type = logical ? syntax_1.Syntax.LogicalExpression : syntax_1.Syntax.BinaryExpression;
- this.operator = operator;
- this.left = left;
- this.right = right;
- }
- return BinaryExpression;
- }());
- exports.BinaryExpression = BinaryExpression;
- var BlockStatement = (function () {
- function BlockStatement(body) {
- this.type = syntax_1.Syntax.BlockStatement;
- this.body = body;
- }
- return BlockStatement;
- }());
- exports.BlockStatement = BlockStatement;
- var BreakStatement = (function () {
- function BreakStatement(label) {
- this.type = syntax_1.Syntax.BreakStatement;
- this.label = label;
- }
- return BreakStatement;
- }());
- exports.BreakStatement = BreakStatement;
- var CallExpression = (function () {
- function CallExpression(callee, args) {
- this.type = syntax_1.Syntax.CallExpression;
- this.callee = callee;
- this.arguments = args;
- }
- return CallExpression;
- }());
- exports.CallExpression = CallExpression;
- var CatchClause = (function () {
- function CatchClause(param, body) {
- this.type = syntax_1.Syntax.CatchClause;
- this.param = param;
- this.body = body;
- }
- return CatchClause;
- }());
- exports.CatchClause = CatchClause;
- var ClassBody = (function () {
- function ClassBody(body) {
- this.type = syntax_1.Syntax.ClassBody;
- this.body = body;
- }
- return ClassBody;
- }());
- exports.ClassBody = ClassBody;
- var ClassDeclaration = (function () {
- function ClassDeclaration(id, superClass, body) {
- this.type = syntax_1.Syntax.ClassDeclaration;
- this.id = id;
- this.superClass = superClass;
- this.body = body;
- }
- return ClassDeclaration;
- }());
- exports.ClassDeclaration = ClassDeclaration;
- var ClassExpression = (function () {
- function ClassExpression(id, superClass, body) {
- this.type = syntax_1.Syntax.ClassExpression;
- this.id = id;
- this.superClass = superClass;
- this.body = body;
- }
- return ClassExpression;
- }());
- exports.ClassExpression = ClassExpression;
- var ComputedMemberExpression = (function () {
- function ComputedMemberExpression(object, property) {
- this.type = syntax_1.Syntax.MemberExpression;
- this.computed = true;
- this.object = object;
- this.property = property;
- }
- return ComputedMemberExpression;
- }());
- exports.ComputedMemberExpression = ComputedMemberExpression;
- var ConditionalExpression = (function () {
- function ConditionalExpression(test, consequent, alternate) {
- this.type = syntax_1.Syntax.ConditionalExpression;
- this.test = test;
- this.consequent = consequent;
- this.alternate = alternate;
- }
- return ConditionalExpression;
- }());
- exports.ConditionalExpression = ConditionalExpression;
- var ContinueStatement = (function () {
- function ContinueStatement(label) {
- this.type = syntax_1.Syntax.ContinueStatement;
- this.label = label;
- }
- return ContinueStatement;
- }());
- exports.ContinueStatement = ContinueStatement;
- var DebuggerStatement = (function () {
- function DebuggerStatement() {
- this.type = syntax_1.Syntax.DebuggerStatement;
- }
- return DebuggerStatement;
- }());
- exports.DebuggerStatement = DebuggerStatement;
- var Directive = (function () {
- function Directive(expression, directive) {
- this.type = syntax_1.Syntax.ExpressionStatement;
- this.expression = expression;
- this.directive = directive;
- }
- return Directive;
- }());
- exports.Directive = Directive;
- var DoWhileStatement = (function () {
- function DoWhileStatement(body, test) {
- this.type = syntax_1.Syntax.DoWhileStatement;
- this.body = body;
- this.test = test;
- }
- return DoWhileStatement;
- }());
- exports.DoWhileStatement = DoWhileStatement;
- var EmptyStatement = (function () {
- function EmptyStatement() {
- this.type = syntax_1.Syntax.EmptyStatement;
- }
- return EmptyStatement;
- }());
- exports.EmptyStatement = EmptyStatement;
- var ExportAllDeclaration = (function () {
- function ExportAllDeclaration(source) {
- this.type = syntax_1.Syntax.ExportAllDeclaration;
- this.source = source;
- }
- return ExportAllDeclaration;
- }());
- exports.ExportAllDeclaration = ExportAllDeclaration;
- var ExportDefaultDeclaration = (function () {
- function ExportDefaultDeclaration(declaration) {
- this.type = syntax_1.Syntax.ExportDefaultDeclaration;
- this.declaration = declaration;
- }
- return ExportDefaultDeclaration;
- }());
- exports.ExportDefaultDeclaration = ExportDefaultDeclaration;
- var ExportNamedDeclaration = (function () {
- function ExportNamedDeclaration(declaration, specifiers, source) {
- this.type = syntax_1.Syntax.ExportNamedDeclaration;
- this.declaration = declaration;
- this.specifiers = specifiers;
- this.source = source;
- }
- return ExportNamedDeclaration;
- }());
- exports.ExportNamedDeclaration = ExportNamedDeclaration;
- var ExportSpecifier = (function () {
- function ExportSpecifier(local, exported) {
- this.type = syntax_1.Syntax.ExportSpecifier;
- this.exported = exported;
- this.local = local;
- }
- return ExportSpecifier;
- }());
- exports.ExportSpecifier = ExportSpecifier;
- var ExpressionStatement = (function () {
- function ExpressionStatement(expression) {
- this.type = syntax_1.Syntax.ExpressionStatement;
- this.expression = expression;
- }
- return ExpressionStatement;
- }());
- exports.ExpressionStatement = ExpressionStatement;
- var ForInStatement = (function () {
- function ForInStatement(left, right, body) {
- this.type = syntax_1.Syntax.ForInStatement;
- this.left = left;
- this.right = right;
- this.body = body;
- this.each = false;
- }
- return ForInStatement;
- }());
- exports.ForInStatement = ForInStatement;
- var ForOfStatement = (function () {
- function ForOfStatement(left, right, body) {
- this.type = syntax_1.Syntax.ForOfStatement;
- this.left = left;
- this.right = right;
- this.body = body;
- }
- return ForOfStatement;
- }());
- exports.ForOfStatement = ForOfStatement;
- var ForStatement = (function () {
- function ForStatement(init, test, update, body) {
- this.type = syntax_1.Syntax.ForStatement;
- this.init = init;
- this.test = test;
- this.update = update;
- this.body = body;
- }
- return ForStatement;
- }());
- exports.ForStatement = ForStatement;
- var FunctionDeclaration = (function () {
- function FunctionDeclaration(id, params, body, generator) {
- this.type = syntax_1.Syntax.FunctionDeclaration;
- this.id = id;
- this.params = params;
- this.body = body;
- this.generator = generator;
- this.expression = false;
- }
- return FunctionDeclaration;
- }());
- exports.FunctionDeclaration = FunctionDeclaration;
- var FunctionExpression = (function () {
- function FunctionExpression(id, params, body, generator) {
- this.type = syntax_1.Syntax.FunctionExpression;
- this.id = id;
- this.params = params;
- this.body = body;
- this.generator = generator;
- this.expression = false;
- }
- return FunctionExpression;
- }());
- exports.FunctionExpression = FunctionExpression;
- var Identifier = (function () {
- function Identifier(name) {
- this.type = syntax_1.Syntax.Identifier;
- this.name = name;
- }
- return Identifier;
- }());
- exports.Identifier = Identifier;
- var IfStatement = (function () {
- function IfStatement(test, consequent, alternate) {
- this.type = syntax_1.Syntax.IfStatement;
- this.test = test;
- this.consequent = consequent;
- this.alternate = alternate;
- }
- return IfStatement;
- }());
- exports.IfStatement = IfStatement;
- var ImportDeclaration = (function () {
- function ImportDeclaration(specifiers, source) {
- this.type = syntax_1.Syntax.ImportDeclaration;
- this.specifiers = specifiers;
- this.source = source;
- }
- return ImportDeclaration;
- }());
- exports.ImportDeclaration = ImportDeclaration;
- var ImportDefaultSpecifier = (function () {
- function ImportDefaultSpecifier(local) {
- this.type = syntax_1.Syntax.ImportDefaultSpecifier;
- this.local = local;
- }
- return ImportDefaultSpecifier;
- }());
- exports.ImportDefaultSpecifier = ImportDefaultSpecifier;
- var ImportNamespaceSpecifier = (function () {
- function ImportNamespaceSpecifier(local) {
- this.type = syntax_1.Syntax.ImportNamespaceSpecifier;
- this.local = local;
- }
- return ImportNamespaceSpecifier;
- }());
- exports.ImportNamespaceSpecifier = ImportNamespaceSpecifier;
- var ImportSpecifier = (function () {
- function ImportSpecifier(local, imported) {
- this.type = syntax_1.Syntax.ImportSpecifier;
- this.local = local;
- this.imported = imported;
- }
- return ImportSpecifier;
- }());
- exports.ImportSpecifier = ImportSpecifier;
- var LabeledStatement = (function () {
- function LabeledStatement(label, body) {
- this.type = syntax_1.Syntax.LabeledStatement;
- this.label = label;
- this.body = body;
- }
- return LabeledStatement;
- }());
- exports.LabeledStatement = LabeledStatement;
- var Literal = (function () {
- function Literal(value, raw) {
- this.type = syntax_1.Syntax.Literal;
- this.value = value;
- this.raw = raw;
- }
- return Literal;
- }());
- exports.Literal = Literal;
- var MetaProperty = (function () {
- function MetaProperty(meta, property) {
- this.type = syntax_1.Syntax.MetaProperty;
- this.meta = meta;
- this.property = property;
- }
- return MetaProperty;
- }());
- exports.MetaProperty = MetaProperty;
- var MethodDefinition = (function () {
- function MethodDefinition(key, computed, value, kind, isStatic) {
- this.type = syntax_1.Syntax.MethodDefinition;
- this.key = key;
- this.computed = computed;
- this.value = value;
- this.kind = kind;
- this.static = isStatic;
- }
- return MethodDefinition;
- }());
- exports.MethodDefinition = MethodDefinition;
- var NewExpression = (function () {
- function NewExpression(callee, args) {
- this.type = syntax_1.Syntax.NewExpression;
- this.callee = callee;
- this.arguments = args;
- }
- return NewExpression;
- }());
- exports.NewExpression = NewExpression;
- var ObjectExpression = (function () {
- function ObjectExpression(properties) {
- this.type = syntax_1.Syntax.ObjectExpression;
- this.properties = properties;
- }
- return ObjectExpression;
- }());
- exports.ObjectExpression = ObjectExpression;
- var ObjectPattern = (function () {
- function ObjectPattern(properties) {
- this.type = syntax_1.Syntax.ObjectPattern;
- this.properties = properties;
- }
- return ObjectPattern;
- }());
- exports.ObjectPattern = ObjectPattern;
- var Program = (function () {
- function Program(body, sourceType) {
- this.type = syntax_1.Syntax.Program;
- this.body = body;
- this.sourceType = sourceType;
- }
- return Program;
- }());
- exports.Program = Program;
- var Property = (function () {
- function Property(kind, key, computed, value, method, shorthand) {
- this.type = syntax_1.Syntax.Property;
- this.key = key;
- this.computed = computed;
- this.value = value;
- this.kind = kind;
- this.method = method;
- this.shorthand = shorthand;
- }
- return Property;
- }());
- exports.Property = Property;
- var RegexLiteral = (function () {
- function RegexLiteral(value, raw, regex) {
- this.type = syntax_1.Syntax.Literal;
- this.value = value;
- this.raw = raw;
- this.regex = regex;
- }
- return RegexLiteral;
- }());
- exports.RegexLiteral = RegexLiteral;
- var RestElement = (function () {
- function RestElement(argument) {
- this.type = syntax_1.Syntax.RestElement;
- this.argument = argument;
- }
- return RestElement;
- }());
- exports.RestElement = RestElement;
- var ReturnStatement = (function () {
- function ReturnStatement(argument) {
- this.type = syntax_1.Syntax.ReturnStatement;
- this.argument = argument;
- }
- return ReturnStatement;
- }());
- exports.ReturnStatement = ReturnStatement;
- var SequenceExpression = (function () {
- function SequenceExpression(expressions) {
- this.type = syntax_1.Syntax.SequenceExpression;
- this.expressions = expressions;
- }
- return SequenceExpression;
- }());
- exports.SequenceExpression = SequenceExpression;
- var SpreadElement = (function () {
- function SpreadElement(argument) {
- this.type = syntax_1.Syntax.SpreadElement;
- this.argument = argument;
- }
- return SpreadElement;
- }());
- exports.SpreadElement = SpreadElement;
- var StaticMemberExpression = (function () {
- function StaticMemberExpression(object, property) {
- this.type = syntax_1.Syntax.MemberExpression;
- this.computed = false;
- this.object = object;
- this.property = property;
- }
- return StaticMemberExpression;
- }());
- exports.StaticMemberExpression = StaticMemberExpression;
- var Super = (function () {
- function Super() {
- this.type = syntax_1.Syntax.Super;
- }
- return Super;
- }());
- exports.Super = Super;
- var SwitchCase = (function () {
- function SwitchCase(test, consequent) {
- this.type = syntax_1.Syntax.SwitchCase;
- this.test = test;
- this.consequent = consequent;
- }
- return SwitchCase;
- }());
- exports.SwitchCase = SwitchCase;
- var SwitchStatement = (function () {
- function SwitchStatement(discriminant, cases) {
- this.type = syntax_1.Syntax.SwitchStatement;
- this.discriminant = discriminant;
- this.cases = cases;
- }
- return SwitchStatement;
- }());
- exports.SwitchStatement = SwitchStatement;
- var TaggedTemplateExpression = (function () {
- function TaggedTemplateExpression(tag, quasi) {
- this.type = syntax_1.Syntax.TaggedTemplateExpression;
- this.tag = tag;
- this.quasi = quasi;
- }
- return TaggedTemplateExpression;
- }());
- exports.TaggedTemplateExpression = TaggedTemplateExpression;
- var TemplateElement = (function () {
- function TemplateElement(value, tail) {
- this.type = syntax_1.Syntax.TemplateElement;
- this.value = value;
- this.tail = tail;
- }
- return TemplateElement;
- }());
- exports.TemplateElement = TemplateElement;
- var TemplateLiteral = (function () {
- function TemplateLiteral(quasis, expressions) {
- this.type = syntax_1.Syntax.TemplateLiteral;
- this.quasis = quasis;
- this.expressions = expressions;
- }
- return TemplateLiteral;
- }());
- exports.TemplateLiteral = TemplateLiteral;
- var ThisExpression = (function () {
- function ThisExpression() {
- this.type = syntax_1.Syntax.ThisExpression;
- }
- return ThisExpression;
- }());
- exports.ThisExpression = ThisExpression;
- var ThrowStatement = (function () {
- function ThrowStatement(argument) {
- this.type = syntax_1.Syntax.ThrowStatement;
- this.argument = argument;
- }
- return ThrowStatement;
- }());
- exports.ThrowStatement = ThrowStatement;
- var TryStatement = (function () {
- function TryStatement(block, handler, finalizer) {
- this.type = syntax_1.Syntax.TryStatement;
- this.block = block;
- this.handler = handler;
- this.finalizer = finalizer;
- }
- return TryStatement;
- }());
- exports.TryStatement = TryStatement;
- var UnaryExpression = (function () {
- function UnaryExpression(operator, argument) {
- this.type = syntax_1.Syntax.UnaryExpression;
- this.operator = operator;
- this.argument = argument;
- this.prefix = true;
- }
- return UnaryExpression;
- }());
- exports.UnaryExpression = UnaryExpression;
- var UpdateExpression = (function () {
- function UpdateExpression(operator, argument, prefix) {
- this.type = syntax_1.Syntax.UpdateExpression;
- this.operator = operator;
- this.argument = argument;
- this.prefix = prefix;
- }
- return UpdateExpression;
- }());
- exports.UpdateExpression = UpdateExpression;
- var VariableDeclaration = (function () {
- function VariableDeclaration(declarations, kind) {
- this.type = syntax_1.Syntax.VariableDeclaration;
- this.declarations = declarations;
- this.kind = kind;
- }
- return VariableDeclaration;
- }());
- exports.VariableDeclaration = VariableDeclaration;
- var VariableDeclarator = (function () {
- function VariableDeclarator(id, init) {
- this.type = syntax_1.Syntax.VariableDeclarator;
- this.id = id;
- this.init = init;
- }
- return VariableDeclarator;
- }());
- exports.VariableDeclarator = VariableDeclarator;
- var WhileStatement = (function () {
- function WhileStatement(test, body) {
- this.type = syntax_1.Syntax.WhileStatement;
- this.test = test;
- this.body = body;
- }
- return WhileStatement;
- }());
- exports.WhileStatement = WhileStatement;
- var WithStatement = (function () {
- function WithStatement(object, body) {
- this.type = syntax_1.Syntax.WithStatement;
- this.object = object;
- this.body = body;
- }
- return WithStatement;
- }());
- exports.WithStatement = WithStatement;
- var YieldExpression = (function () {
- function YieldExpression(argument, delegate) {
- this.type = syntax_1.Syntax.YieldExpression;
- this.argument = argument;
- this.delegate = delegate;
- }
- return YieldExpression;
- }());
- exports.YieldExpression = YieldExpression;
-
-
-/***/ },
-/* 11 */
-/***/ function(module, exports, __webpack_require__) {
-
- "use strict";
-/* istanbul ignore next */
- var __extends = (this && this.__extends) || function (d, b) {
- for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
- var character_1 = __webpack_require__(9);
- var token_1 = __webpack_require__(7);
- var parser_1 = __webpack_require__(3);
- var xhtml_entities_1 = __webpack_require__(12);
- var jsx_syntax_1 = __webpack_require__(13);
- var Node = __webpack_require__(10);
- var JSXNode = __webpack_require__(14);
- var JSXToken;
- (function (JSXToken) {
- JSXToken[JSXToken["Identifier"] = 100] = "Identifier";
- JSXToken[JSXToken["Text"] = 101] = "Text";
- })(JSXToken || (JSXToken = {}));
- token_1.TokenName[JSXToken.Identifier] = 'JSXIdentifier';
- token_1.TokenName[JSXToken.Text] = 'JSXText';
- // Fully qualified element name, e.g. <svg:path> returns "svg:path"
- function getQualifiedElementName(elementName) {
- var qualifiedName;
- switch (elementName.type) {
- case jsx_syntax_1.JSXSyntax.JSXIdentifier:
- var id = (elementName);
- qualifiedName = id.name;
- break;
- case jsx_syntax_1.JSXSyntax.JSXNamespacedName:
- var ns = (elementName);
- qualifiedName = getQualifiedElementName(ns.namespace) + ':' +
- getQualifiedElementName(ns.name);
- break;
- case jsx_syntax_1.JSXSyntax.JSXMemberExpression:
- var expr = (elementName);
- qualifiedName = getQualifiedElementName(expr.object) + '.' +
- getQualifiedElementName(expr.property);
- break;
- }
- return qualifiedName;
- }
- var JSXParser = (function (_super) {
- __extends(JSXParser, _super);
- function JSXParser(code, options, delegate) {
- _super.call(this, code, options, delegate);
- }
- JSXParser.prototype.parsePrimaryExpression = function () {
- return this.match('<') ? this.parseJSXRoot() : _super.prototype.parsePrimaryExpression.call(this);
- };
- JSXParser.prototype.startJSX = function () {
- // Unwind the scanner before the lookahead token.
- this.scanner.index = this.startMarker.index;
- this.scanner.lineNumber = this.startMarker.lineNumber;
- this.scanner.lineStart = this.startMarker.lineStart;
- };
- JSXParser.prototype.finishJSX = function () {
- // Prime the next lookahead.
- this.nextToken();
- };
- JSXParser.prototype.reenterJSX = function () {
- this.startJSX();
- this.expectJSX('}');
- // Pop the closing '}' added from the lookahead.
- if (this.config.tokens) {
- this.tokens.pop();
- }
- };
- JSXParser.prototype.createJSXNode = function () {
- this.collectComments();
- return {
- index: this.scanner.index,
- line: this.scanner.lineNumber,
- column: this.scanner.index - this.scanner.lineStart
- };
- };
- JSXParser.prototype.createJSXChildNode = function () {
- return {
- index: this.scanner.index,
- line: this.scanner.lineNumber,
- column: this.scanner.index - this.scanner.lineStart
- };
- };
- JSXParser.prototype.scanXHTMLEntity = function (quote) {
- var result = '&';
- var valid = true;
- var terminated = false;
- var numeric = false;
- var hex = false;
- while (!this.scanner.eof() && valid && !terminated) {
- var ch = this.scanner.source[this.scanner.index];
- if (ch === quote) {
- break;
- }
- terminated = (ch === ';');
- result += ch;
- ++this.scanner.index;
- if (!terminated) {
- switch (result.length) {
- case 2:
- // e.g. '&#123;'
- numeric = (ch === '#');
- break;
- case 3:
- if (numeric) {
- // e.g. '&#x41;'
- hex = (ch === 'x');
- valid = hex || character_1.Character.isDecimalDigit(ch.charCodeAt(0));
- numeric = numeric && !hex;
- }
- break;
- default:
- valid = valid && !(numeric && !character_1.Character.isDecimalDigit(ch.charCodeAt(0)));
- valid = valid && !(hex && !character_1.Character.isHexDigit(ch.charCodeAt(0)));
- break;
- }
- }
- }
- if (valid && terminated && result.length > 2) {
- // e.g. '&#x41;' becomes just '#x41'
- var str = result.substr(1, result.length - 2);
- if (numeric && str.length > 1) {
- result = String.fromCharCode(parseInt(str.substr(1), 10));
- }
- else if (hex && str.length > 2) {
- result = String.fromCharCode(parseInt('0' + str.substr(1), 16));
- }
- else if (!numeric && !hex && xhtml_entities_1.XHTMLEntities[str]) {
- result = xhtml_entities_1.XHTMLEntities[str];
- }
- }
- return result;
- };
- // Scan the next JSX token. This replaces Scanner#lex when in JSX mode.
- JSXParser.prototype.lexJSX = function () {
- var cp = this.scanner.source.charCodeAt(this.scanner.index);
- // < > / : = { }
- if (cp === 60 || cp === 62 || cp === 47 || cp === 58 || cp === 61 || cp === 123 || cp === 125) {
- var value = this.scanner.source[this.scanner.index++];
- return {
- type: token_1.Token.Punctuator,
- value: value,
- lineNumber: this.scanner.lineNumber,
- lineStart: this.scanner.lineStart,
- start: this.scanner.index - 1,
- end: this.scanner.index
- };
- }
- // " '
- if (cp === 34 || cp === 39) {
- var start = this.scanner.index;
- var quote = this.scanner.source[this.scanner.index++];
- var str = '';
- while (!this.scanner.eof()) {
- var ch = this.scanner.source[this.scanner.index++];
- if (ch === quote) {
- break;
- }
- else if (ch === '&') {
- str += this.scanXHTMLEntity(quote);
- }
- else {
- str += ch;
- }
- }
- return {
- type: token_1.Token.StringLiteral,
- value: str,
- lineNumber: this.scanner.lineNumber,
- lineStart: this.scanner.lineStart,
- start: start,
- end: this.scanner.index
- };
- }
- // ... or .
- if (cp === 46) {
- var n1 = this.scanner.source.charCodeAt(this.scanner.index + 1);
- var n2 = this.scanner.source.charCodeAt(this.scanner.index + 2);
- var value = (n1 === 46 && n2 === 46) ? '...' : '.';
- var start = this.scanner.index;
- this.scanner.index += value.length;
- return {
- type: token_1.Token.Punctuator,
- value: value,
- lineNumber: this.scanner.lineNumber,
- lineStart: this.scanner.lineStart,
- start: start,
- end: this.scanner.index
- };
- }
- // `
- if (cp === 96) {
- // Only placeholder, since it will be rescanned as a real assignment expression.
- return {
- type: token_1.Token.Template,
- lineNumber: this.scanner.lineNumber,
- lineStart: this.scanner.lineStart,
- start: this.scanner.index,
- end: this.scanner.index
- };
- }
- // Identifer can not contain backslash (char code 92).
- if (character_1.Character.isIdentifierStart(cp) && (cp !== 92)) {
- var start = this.scanner.index;
- ++this.scanner.index;
- while (!this.scanner.eof()) {
- var ch = this.scanner.source.charCodeAt(this.scanner.index);
- if (character_1.Character.isIdentifierPart(ch) && (ch !== 92)) {
- ++this.scanner.index;
- }
- else if (ch === 45) {
- // Hyphen (char code 45) can be part of an identifier.
- ++this.scanner.index;
- }
- else {
- break;
- }
- }
- var id = this.scanner.source.slice(start, this.scanner.index);
- return {
- type: JSXToken.Identifier,
- value: id,
- lineNumber: this.scanner.lineNumber,
- lineStart: this.scanner.lineStart,
- start: start,
- end: this.scanner.index
- };
- }
- this.scanner.throwUnexpectedToken();
- };
- JSXParser.prototype.nextJSXToken = function () {
- this.collectComments();
- this.startMarker.index = this.scanner.index;
- this.startMarker.lineNumber = this.scanner.lineNumber;
- this.startMarker.lineStart = this.scanner.lineStart;
- var token = this.lexJSX();
- this.lastMarker.index = this.scanner.index;
- this.lastMarker.lineNumber = this.scanner.lineNumber;
- this.lastMarker.lineStart = this.scanner.lineStart;
- if (this.config.tokens) {
- this.tokens.push(this.convertToken(token));
- }
- return token;
- };
- JSXParser.prototype.nextJSXText = function () {
- this.startMarker.index = this.scanner.index;
- this.startMarker.lineNumber = this.scanner.lineNumber;
- this.startMarker.lineStart = this.scanner.lineStart;
- var start = this.scanner.index;
- var text = '';
- while (!this.scanner.eof()) {
- var ch = this.scanner.source[this.scanner.index];
- if (ch === '{' || ch === '<') {
- break;
- }
- ++this.scanner.index;
- text += ch;
- if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {
- ++this.scanner.lineNumber;
- if (ch === '\r' && this.scanner.source[this.scanner.index] === '\n') {
- ++this.scanner.index;
- }
- this.scanner.lineStart = this.scanner.index;
- }
- }
- this.lastMarker.index = this.scanner.index;
- this.lastMarker.lineNumber = this.scanner.lineNumber;
- this.lastMarker.lineStart = this.scanner.lineStart;
- var token = {
- type: JSXToken.Text,
- value: text,
- lineNumber: this.scanner.lineNumber,
- lineStart: this.scanner.lineStart,
- start: start,
- end: this.scanner.index
- };
- if ((text.length > 0) && this.config.tokens) {
- this.tokens.push(this.convertToken(token));
- }
- return token;
- };
- JSXParser.prototype.peekJSXToken = function () {
- var previousIndex = this.scanner.index;
- var previousLineNumber = this.scanner.lineNumber;
- var previousLineStart = this.scanner.lineStart;
- this.scanner.scanComments();
- var next = this.lexJSX();
- this.scanner.index = previousIndex;
- this.scanner.lineNumber = previousLineNumber;
- this.scanner.lineStart = previousLineStart;
- return next;
- };
- // Expect the next JSX token to match the specified punctuator.
- // If not, an exception will be thrown.
- JSXParser.prototype.expectJSX = function (value) {
- var token = this.nextJSXToken();
- if (token.type !== token_1.Token.Punctuator || token.value !== value) {
- this.throwUnexpectedToken(token);
- }
- };
- // Return true if the next JSX token matches the specified punctuator.
- JSXParser.prototype.matchJSX = function (value) {
- var next = this.peekJSXToken();
- return next.type === token_1.Token.Punctuator && next.value === value;
- };
- JSXParser.prototype.parseJSXIdentifier = function () {
- var node = this.createJSXNode();
- var token = this.nextJSXToken();
- if (token.type !== JSXToken.Identifier) {
- this.throwUnexpectedToken(token);
- }
- return this.finalize(node, new JSXNode.JSXIdentifier(token.value));
- };
- JSXParser.prototype.parseJSXElementName = function () {
- var node = this.createJSXNode();
- var elementName = this.parseJSXIdentifier();
- if (this.matchJSX(':')) {
- var namespace = elementName;
- this.expectJSX(':');
- var name_1 = this.parseJSXIdentifier();
- elementName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_1));
- }
- else if (this.matchJSX('.')) {
- while (this.matchJSX('.')) {
- var object = elementName;
- this.expectJSX('.');
- var property = this.parseJSXIdentifier();
- elementName = this.finalize(node, new JSXNode.JSXMemberExpression(object, property));
- }
- }
- return elementName;
- };
- JSXParser.prototype.parseJSXAttributeName = function () {
- var node = this.createJSXNode();
- var attributeName;
- var identifier = this.parseJSXIdentifier();
- if (this.matchJSX(':')) {
- var namespace = identifier;
- this.expectJSX(':');
- var name_2 = this.parseJSXIdentifier();
- attributeName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_2));
- }
- else {
- attributeName = identifier;
- }
- return attributeName;
- };
- JSXParser.prototype.parseJSXStringLiteralAttribute = function () {
- var node = this.createJSXNode();
- var token = this.nextJSXToken();
- if (token.type !== token_1.Token.StringLiteral) {
- this.throwUnexpectedToken(token);
- }
- var raw = this.getTokenRaw(token);
- return this.finalize(node, new Node.Literal(token.value, raw));
- };
- JSXParser.prototype.parseJSXExpressionAttribute = function () {
- var node = this.createJSXNode();
- this.expectJSX('{');
- this.finishJSX();
- if (this.match('}')) {
- this.tolerateError('JSX attributes must only be assigned a non-empty expression');
- }
- var expression = this.parseAssignmentExpression();
- this.reenterJSX();
- return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));
- };
- JSXParser.prototype.parseJSXAttributeValue = function () {
- return this.matchJSX('{') ? this.parseJSXExpressionAttribute() :
- this.matchJSX('<') ? this.parseJSXElement() : this.parseJSXStringLiteralAttribute();
- };
- JSXParser.prototype.parseJSXNameValueAttribute = function () {
- var node = this.createJSXNode();
- var name = this.parseJSXAttributeName();
- var value = null;
- if (this.matchJSX('=')) {
- this.expectJSX('=');
- value = this.parseJSXAttributeValue();
- }
- return this.finalize(node, new JSXNode.JSXAttribute(name, value));
- };
- JSXParser.prototype.parseJSXSpreadAttribute = function () {
- var node = this.createJSXNode();
- this.expectJSX('{');
- this.expectJSX('...');
- this.finishJSX();
- var argument = this.parseAssignmentExpression();
- this.reenterJSX();
- return this.finalize(node, new JSXNode.JSXSpreadAttribute(argument));
- };
- JSXParser.prototype.parseJSXAttributes = function () {
- var attributes = [];
- while (!this.matchJSX('/') && !this.matchJSX('>')) {
- var attribute = this.matchJSX('{') ? this.parseJSXSpreadAttribute() :
- this.parseJSXNameValueAttribute();
- attributes.push(attribute);
- }
- return attributes;
- };
- JSXParser.prototype.parseJSXOpeningElement = function () {
- var node = this.createJSXNode();
- this.expectJSX('<');
- var name = this.parseJSXElementName();
- var attributes = this.parseJSXAttributes();
- var selfClosing = this.matchJSX('/');
- if (selfClosing) {
- this.expectJSX('/');
- }
- this.expectJSX('>');
- return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));
- };
- JSXParser.prototype.parseJSXBoundaryElement = function () {
- var node = this.createJSXNode();
- this.expectJSX('<');
- if (this.matchJSX('/')) {
- this.expectJSX('/');
- var name_3 = this.parseJSXElementName();
- this.expectJSX('>');
- return this.finalize(node, new JSXNode.JSXClosingElement(name_3));
- }
- var name = this.parseJSXElementName();
- var attributes = this.parseJSXAttributes();
- var selfClosing = this.matchJSX('/');
- if (selfClosing) {
- this.expectJSX('/');
- }
- this.expectJSX('>');
- return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));
- };
- JSXParser.prototype.parseJSXEmptyExpression = function () {
- var node = this.createJSXChildNode();
- this.collectComments();
- this.lastMarker.index = this.scanner.index;
- this.lastMarker.lineNumber = this.scanner.lineNumber;
- this.lastMarker.lineStart = this.scanner.lineStart;
- return this.finalize(node, new JSXNode.JSXEmptyExpression());
- };
- JSXParser.prototype.parseJSXExpressionContainer = function () {
- var node = this.createJSXNode();
- this.expectJSX('{');
- var expression;
- if (this.matchJSX('}')) {
- expression = this.parseJSXEmptyExpression();
- this.expectJSX('}');
- }
- else {
- this.finishJSX();
- expression = this.parseAssignmentExpression();
- this.reenterJSX();
- }
- return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));
- };
- JSXParser.prototype.parseJSXChildren = function () {
- var children = [];
- while (!this.scanner.eof()) {
- var node = this.createJSXChildNode();
- var token = this.nextJSXText();
- if (token.start < token.end) {
- var raw = this.getTokenRaw(token);
- var child = this.finalize(node, new JSXNode.JSXText(token.value, raw));
- children.push(child);
- }
- if (this.scanner.source[this.scanner.index] === '{') {
- var container = this.parseJSXExpressionContainer();
- children.push(container);
- }
- else {
- break;
- }
- }
- return children;
- };
- JSXParser.prototype.parseComplexJSXElement = function (el) {
- var stack = [];
- while (!this.scanner.eof()) {
- el.children = el.children.concat(this.parseJSXChildren());
- var node = this.createJSXChildNode();
- var element = this.parseJSXBoundaryElement();
- if (element.type === jsx_syntax_1.JSXSyntax.JSXOpeningElement) {
- var opening = (element);
- if (opening.selfClosing) {
- var child = this.finalize(node, new JSXNode.JSXElement(opening, [], null));
- el.children.push(child);
- }
- else {
- stack.push(el);
- el = { node: node, opening: opening, closing: null, children: [] };
- }
- }
- if (element.type === jsx_syntax_1.JSXSyntax.JSXClosingElement) {
- el.closing = (element);
- var open_1 = getQualifiedElementName(el.opening.name);
- var close_1 = getQualifiedElementName(el.closing.name);
- if (open_1 !== close_1) {
- this.tolerateError('Expected corresponding JSX closing tag for %0', open_1);
- }
- if (stack.length > 0) {
- var child = this.finalize(el.node, new JSXNode.JSXElement(el.opening, el.children, el.closing));
- el = stack.pop();
- el.children.push(child);
- }
- else {
- break;
- }
- }
- }
- return el;
- };
- JSXParser.prototype.parseJSXElement = function () {
- var node = this.createJSXNode();
- var opening = this.parseJSXOpeningElement();
- var children = [];
- var closing = null;
- if (!opening.selfClosing) {
- var el = this.parseComplexJSXElement({ node: node, opening: opening, closing: closing, children: children });
- children = el.children;
- closing = el.closing;
- }
- return this.finalize(node, new JSXNode.JSXElement(opening, children, closing));
- };
- JSXParser.prototype.parseJSXRoot = function () {
- // Pop the opening '<' added from the lookahead.
- if (this.config.tokens) {
- this.tokens.pop();
- }
- this.startJSX();
- var element = this.parseJSXElement();
- this.finishJSX();
- return element;
- };
- return JSXParser;
- }(parser_1.Parser));
- exports.JSXParser = JSXParser;
-
-
-/***/ },
-/* 12 */
-/***/ function(module, exports) {
-
- // Generated by generate-xhtml-entities.js. DO NOT MODIFY!
- "use strict";
- exports.XHTMLEntities = {
- quot: '\u0022',
- amp: '\u0026',
- apos: '\u0027',
- gt: '\u003E',
- nbsp: '\u00A0',
- iexcl: '\u00A1',
- cent: '\u00A2',
- pound: '\u00A3',
- curren: '\u00A4',
- yen: '\u00A5',
- brvbar: '\u00A6',
- sect: '\u00A7',
- uml: '\u00A8',
- copy: '\u00A9',
- ordf: '\u00AA',
- laquo: '\u00AB',
- not: '\u00AC',
- shy: '\u00AD',
- reg: '\u00AE',
- macr: '\u00AF',
- deg: '\u00B0',
- plusmn: '\u00B1',
- sup2: '\u00B2',
- sup3: '\u00B3',
- acute: '\u00B4',
- micro: '\u00B5',
- para: '\u00B6',
- middot: '\u00B7',
- cedil: '\u00B8',
- sup1: '\u00B9',
- ordm: '\u00BA',
- raquo: '\u00BB',
- frac14: '\u00BC',
- frac12: '\u00BD',
- frac34: '\u00BE',
- iquest: '\u00BF',
- Agrave: '\u00C0',
- Aacute: '\u00C1',
- Acirc: '\u00C2',
- Atilde: '\u00C3',
- Auml: '\u00C4',
- Aring: '\u00C5',
- AElig: '\u00C6',
- Ccedil: '\u00C7',
- Egrave: '\u00C8',
- Eacute: '\u00C9',
- Ecirc: '\u00CA',
- Euml: '\u00CB',
- Igrave: '\u00CC',
- Iacute: '\u00CD',
- Icirc: '\u00CE',
- Iuml: '\u00CF',
- ETH: '\u00D0',
- Ntilde: '\u00D1',
- Ograve: '\u00D2',
- Oacute: '\u00D3',
- Ocirc: '\u00D4',
- Otilde: '\u00D5',
- Ouml: '\u00D6',
- times: '\u00D7',
- Oslash: '\u00D8',
- Ugrave: '\u00D9',
- Uacute: '\u00DA',
- Ucirc: '\u00DB',
- Uuml: '\u00DC',
- Yacute: '\u00DD',
- THORN: '\u00DE',
- szlig: '\u00DF',
- agrave: '\u00E0',
- aacute: '\u00E1',
- acirc: '\u00E2',
- atilde: '\u00E3',
- auml: '\u00E4',
- aring: '\u00E5',
- aelig: '\u00E6',
- ccedil: '\u00E7',
- egrave: '\u00E8',
- eacute: '\u00E9',
- ecirc: '\u00EA',
- euml: '\u00EB',
- igrave: '\u00EC',
- iacute: '\u00ED',
- icirc: '\u00EE',
- iuml: '\u00EF',
- eth: '\u00F0',
- ntilde: '\u00F1',
- ograve: '\u00F2',
- oacute: '\u00F3',
- ocirc: '\u00F4',
- otilde: '\u00F5',
- ouml: '\u00F6',
- divide: '\u00F7',
- oslash: '\u00F8',
- ugrave: '\u00F9',
- uacute: '\u00FA',
- ucirc: '\u00FB',
- uuml: '\u00FC',
- yacute: '\u00FD',
- thorn: '\u00FE',
- yuml: '\u00FF',
- OElig: '\u0152',
- oelig: '\u0153',
- Scaron: '\u0160',
- scaron: '\u0161',
- Yuml: '\u0178',
- fnof: '\u0192',
- circ: '\u02C6',
- tilde: '\u02DC',
- Alpha: '\u0391',
- Beta: '\u0392',
- Gamma: '\u0393',
- Delta: '\u0394',
- Epsilon: '\u0395',
- Zeta: '\u0396',
- Eta: '\u0397',
- Theta: '\u0398',
- Iota: '\u0399',
- Kappa: '\u039A',
- Lambda: '\u039B',
- Mu: '\u039C',
- Nu: '\u039D',
- Xi: '\u039E',
- Omicron: '\u039F',
- Pi: '\u03A0',
- Rho: '\u03A1',
- Sigma: '\u03A3',
- Tau: '\u03A4',
- Upsilon: '\u03A5',
- Phi: '\u03A6',
- Chi: '\u03A7',
- Psi: '\u03A8',
- Omega: '\u03A9',
- alpha: '\u03B1',
- beta: '\u03B2',
- gamma: '\u03B3',
- delta: '\u03B4',
- epsilon: '\u03B5',
- zeta: '\u03B6',
- eta: '\u03B7',
- theta: '\u03B8',
- iota: '\u03B9',
- kappa: '\u03BA',
- lambda: '\u03BB',
- mu: '\u03BC',
- nu: '\u03BD',
- xi: '\u03BE',
- omicron: '\u03BF',
- pi: '\u03C0',
- rho: '\u03C1',
- sigmaf: '\u03C2',
- sigma: '\u03C3',
- tau: '\u03C4',
- upsilon: '\u03C5',
- phi: '\u03C6',
- chi: '\u03C7',
- psi: '\u03C8',
- omega: '\u03C9',
- thetasym: '\u03D1',
- upsih: '\u03D2',
- piv: '\u03D6',
- ensp: '\u2002',
- emsp: '\u2003',
- thinsp: '\u2009',
- zwnj: '\u200C',
- zwj: '\u200D',
- lrm: '\u200E',
- rlm: '\u200F',
- ndash: '\u2013',
- mdash: '\u2014',
- lsquo: '\u2018',
- rsquo: '\u2019',
- sbquo: '\u201A',
- ldquo: '\u201C',
- rdquo: '\u201D',
- bdquo: '\u201E',
- dagger: '\u2020',
- Dagger: '\u2021',
- bull: '\u2022',
- hellip: '\u2026',
- permil: '\u2030',
- prime: '\u2032',
- Prime: '\u2033',
- lsaquo: '\u2039',
- rsaquo: '\u203A',
- oline: '\u203E',
- frasl: '\u2044',
- euro: '\u20AC',
- image: '\u2111',
- weierp: '\u2118',
- real: '\u211C',
- trade: '\u2122',
- alefsym: '\u2135',
- larr: '\u2190',
- uarr: '\u2191',
- rarr: '\u2192',
- darr: '\u2193',
- harr: '\u2194',
- crarr: '\u21B5',
- lArr: '\u21D0',
- uArr: '\u21D1',
- rArr: '\u21D2',
- dArr: '\u21D3',
- hArr: '\u21D4',
- forall: '\u2200',
- part: '\u2202',
- exist: '\u2203',
- empty: '\u2205',
- nabla: '\u2207',
- isin: '\u2208',
- notin: '\u2209',
- ni: '\u220B',
- prod: '\u220F',
- sum: '\u2211',
- minus: '\u2212',
- lowast: '\u2217',
- radic: '\u221A',
- prop: '\u221D',
- infin: '\u221E',
- ang: '\u2220',
- and: '\u2227',
- or: '\u2228',
- cap: '\u2229',
- cup: '\u222A',
- int: '\u222B',
- there4: '\u2234',
- sim: '\u223C',
- cong: '\u2245',
- asymp: '\u2248',
- ne: '\u2260',
- equiv: '\u2261',
- le: '\u2264',
- ge: '\u2265',
- sub: '\u2282',
- sup: '\u2283',
- nsub: '\u2284',
- sube: '\u2286',
- supe: '\u2287',
- oplus: '\u2295',
- otimes: '\u2297',
- perp: '\u22A5',
- sdot: '\u22C5',
- lceil: '\u2308',
- rceil: '\u2309',
- lfloor: '\u230A',
- rfloor: '\u230B',
- loz: '\u25CA',
- spades: '\u2660',
- clubs: '\u2663',
- hearts: '\u2665',
- diams: '\u2666',
- lang: '\u27E8',
- rang: '\u27E9'
- };
-
-
-/***/ },
-/* 13 */
-/***/ function(module, exports) {
-
- "use strict";
- exports.JSXSyntax = {
- JSXAttribute: 'JSXAttribute',
- JSXClosingElement: 'JSXClosingElement',
- JSXElement: 'JSXElement',
- JSXEmptyExpression: 'JSXEmptyExpression',
- JSXExpressionContainer: 'JSXExpressionContainer',
- JSXIdentifier: 'JSXIdentifier',
- JSXMemberExpression: 'JSXMemberExpression',
- JSXNamespacedName: 'JSXNamespacedName',
- JSXOpeningElement: 'JSXOpeningElement',
- JSXSpreadAttribute: 'JSXSpreadAttribute',
- JSXText: 'JSXText'
- };
-
-
-/***/ },
-/* 14 */
-/***/ function(module, exports, __webpack_require__) {
-
- "use strict";
- var jsx_syntax_1 = __webpack_require__(13);
- var JSXClosingElement = (function () {
- function JSXClosingElement(name) {
- this.type = jsx_syntax_1.JSXSyntax.JSXClosingElement;
- this.name = name;
- }
- return JSXClosingElement;
- }());
- exports.JSXClosingElement = JSXClosingElement;
- var JSXElement = (function () {
- function JSXElement(openingElement, children, closingElement) {
- this.type = jsx_syntax_1.JSXSyntax.JSXElement;
- this.openingElement = openingElement;
- this.children = children;
- this.closingElement = closingElement;
- }
- return JSXElement;
- }());
- exports.JSXElement = JSXElement;
- var JSXEmptyExpression = (function () {
- function JSXEmptyExpression() {
- this.type = jsx_syntax_1.JSXSyntax.JSXEmptyExpression;
- }
- return JSXEmptyExpression;
- }());
- exports.JSXEmptyExpression = JSXEmptyExpression;
- var JSXExpressionContainer = (function () {
- function JSXExpressionContainer(expression) {
- this.type = jsx_syntax_1.JSXSyntax.JSXExpressionContainer;
- this.expression = expression;
- }
- return JSXExpressionContainer;
- }());
- exports.JSXExpressionContainer = JSXExpressionContainer;
- var JSXIdentifier = (function () {
- function JSXIdentifier(name) {
- this.type = jsx_syntax_1.JSXSyntax.JSXIdentifier;
- this.name = name;
- }
- return JSXIdentifier;
- }());
- exports.JSXIdentifier = JSXIdentifier;
- var JSXMemberExpression = (function () {
- function JSXMemberExpression(object, property) {
- this.type = jsx_syntax_1.JSXSyntax.JSXMemberExpression;
- this.object = object;
- this.property = property;
- }
- return JSXMemberExpression;
- }());
- exports.JSXMemberExpression = JSXMemberExpression;
- var JSXAttribute = (function () {
- function JSXAttribute(name, value) {
- this.type = jsx_syntax_1.JSXSyntax.JSXAttribute;
- this.name = name;
- this.value = value;
- }
- return JSXAttribute;
- }());
- exports.JSXAttribute = JSXAttribute;
- var JSXNamespacedName = (function () {
- function JSXNamespacedName(namespace, name) {
- this.type = jsx_syntax_1.JSXSyntax.JSXNamespacedName;
- this.namespace = namespace;
- this.name = name;
- }
- return JSXNamespacedName;
- }());
- exports.JSXNamespacedName = JSXNamespacedName;
- var JSXOpeningElement = (function () {
- function JSXOpeningElement(name, selfClosing, attributes) {
- this.type = jsx_syntax_1.JSXSyntax.JSXOpeningElement;
- this.name = name;
- this.selfClosing = selfClosing;
- this.attributes = attributes;
- }
- return JSXOpeningElement;
- }());
- exports.JSXOpeningElement = JSXOpeningElement;
- var JSXSpreadAttribute = (function () {
- function JSXSpreadAttribute(argument) {
- this.type = jsx_syntax_1.JSXSyntax.JSXSpreadAttribute;
- this.argument = argument;
- }
- return JSXSpreadAttribute;
- }());
- exports.JSXSpreadAttribute = JSXSpreadAttribute;
- var JSXText = (function () {
- function JSXText(value, raw) {
- this.type = jsx_syntax_1.JSXSyntax.JSXText;
- this.value = value;
- this.raw = raw;
- }
- return JSXText;
- }());
- exports.JSXText = JSXText;
-
-
-/***/ },
-/* 15 */
-/***/ function(module, exports, __webpack_require__) {
-
- "use strict";
- var scanner_1 = __webpack_require__(8);
- var error_handler_1 = __webpack_require__(6);
- var token_1 = __webpack_require__(7);
- var Reader = (function () {
- function Reader() {
- this.values = [];
- this.curly = this.paren = -1;
- }
- ;
- // A function following one of those tokens is an expression.
- Reader.prototype.beforeFunctionExpression = function (t) {
- return ['(', '{', '[', 'in', 'typeof', 'instanceof', 'new',
- 'return', 'case', 'delete', 'throw', 'void',
- // assignment operators
- '=', '+=', '-=', '*=', '**=', '/=', '%=', '<<=', '>>=', '>>>=',
- '&=', '|=', '^=', ',',
- // binary/unary operators
- '+', '-', '*', '**', '/', '%', '++', '--', '<<', '>>', '>>>', '&',
- '|', '^', '!', '~', '&&', '||', '?', ':', '===', '==', '>=',
- '<=', '<', '>', '!=', '!=='].indexOf(t) >= 0;
- };
- ;
- // Determine if forward slash (/) is an operator or part of a regular expression
- // https://github.com/mozilla/sweet.js/wiki/design
- Reader.prototype.isRegexStart = function () {
- var previous = this.values[this.values.length - 1];
- var regex = (previous !== null);
- switch (previous) {
- case 'this':
- case ']':
- regex = false;
- break;
- case ')':
- var check = this.values[this.paren - 1];
- regex = (check === 'if' || check === 'while' || check === 'for' || check === 'with');
- break;
- case '}':
- // Dividing a function by anything makes little sense,
- // but we have to check for that.
- regex = false;
- if (this.values[this.curly - 3] === 'function') {
- // Anonymous function, e.g. function(){} /42
- var check_1 = this.values[this.curly - 4];
- regex = check_1 ? !this.beforeFunctionExpression(check_1) : false;
- }
- else if (this.values[this.curly - 4] === 'function') {
- // Named function, e.g. function f(){} /42/
- var check_2 = this.values[this.curly - 5];
- regex = check_2 ? !this.beforeFunctionExpression(check_2) : true;
- }
- }
- return regex;
- };
- ;
- Reader.prototype.push = function (token) {
- if (token.type === token_1.Token.Punctuator || token.type === token_1.Token.Keyword) {
- if (token.value === '{') {
- this.curly = this.values.length;
- }
- else if (token.value === '(') {
- this.paren = this.values.length;
- }
- this.values.push(token.value);
- }
- else {
- this.values.push(null);
- }
- };
- ;
- return Reader;
- }());
- var Tokenizer = (function () {
- function Tokenizer(code, config) {
- this.errorHandler = new error_handler_1.ErrorHandler();
- this.errorHandler.tolerant = config ? (typeof config.tolerant === 'boolean' && config.tolerant) : false;
- this.scanner = new scanner_1.Scanner(code, this.errorHandler);
- this.scanner.trackComment = config ? (typeof config.comment === 'boolean' && config.comment) : false;
- this.trackRange = config ? (typeof config.range === 'boolean' && config.range) : false;
- this.trackLoc = config ? (typeof config.loc === 'boolean' && config.loc) : false;
- this.buffer = [];
- this.reader = new Reader();
- }
- ;
- Tokenizer.prototype.errors = function () {
- return this.errorHandler.errors;
- };
- ;
- Tokenizer.prototype.getNextToken = function () {
- if (this.buffer.length === 0) {
- var comments = this.scanner.scanComments();
- if (this.scanner.trackComment) {
- for (var i = 0; i < comments.length; ++i) {
- var e = comments[i];
- var comment = void 0;
- var value = this.scanner.source.slice(e.slice[0], e.slice[1]);
- comment = {
- type: e.multiLine ? 'BlockComment' : 'LineComment',
- value: value
- };
- if (this.trackRange) {
- comment.range = e.range;
- }
- if (this.trackLoc) {
- comment.loc = e.loc;
- }
- this.buffer.push(comment);
- }
- }
- if (!this.scanner.eof()) {
- var loc = void 0;
- if (this.trackLoc) {
- loc = {
- start: {
- line: this.scanner.lineNumber,
- column: this.scanner.index - this.scanner.lineStart
- },
- end: {}
- };
- }
- var token = void 0;
- if (this.scanner.source[this.scanner.index] === '/') {
- token = this.reader.isRegexStart() ? this.scanner.scanRegExp() : this.scanner.scanPunctuator();
- }
- else {
- token = this.scanner.lex();
- }
- this.reader.push(token);
- var entry = void 0;
- entry = {
- type: token_1.TokenName[token.type],
- value: this.scanner.source.slice(token.start, token.end)
- };
- if (this.trackRange) {
- entry.range = [token.start, token.end];
- }
- if (this.trackLoc) {
- loc.end = {
- line: this.scanner.lineNumber,
- column: this.scanner.index - this.scanner.lineStart
- };
- entry.loc = loc;
- }
- if (token.regex) {
- entry.regex = token.regex;
- }
- this.buffer.push(entry);
- }
- }
- return this.buffer.shift();
- };
- ;
- return Tokenizer;
- }());
- exports.Tokenizer = Tokenizer;
-
-
-/***/ }
-/******/ ])
-});
-; \ No newline at end of file
diff --git a/node_modules/js-yaml/node_modules/esprima/package.json b/node_modules/js-yaml/node_modules/esprima/package.json
deleted file mode 100644
index 4ce474ddf..000000000
--- a/node_modules/js-yaml/node_modules/esprima/package.json
+++ /dev/null
@@ -1,109 +0,0 @@
-{
- "name": "esprima",
- "description": "ECMAScript parsing infrastructure for multipurpose analysis",
- "homepage": "http://esprima.org",
- "main": "dist/esprima.js",
- "bin": {
- "esparse": "./bin/esparse.js",
- "esvalidate": "./bin/esvalidate.js"
- },
- "version": "3.1.3",
- "files": [
- "bin",
- "dist/esprima.js"
- ],
- "engines": {
- "node": ">=4"
- },
- "author": {
- "name": "Ariya Hidayat",
- "email": "ariya.hidayat@gmail.com"
- },
- "maintainers": [
- {
- "name": "Ariya Hidayat",
- "email": "ariya.hidayat@gmail.com",
- "web": "http://ariya.ofilabs.com"
- }
- ],
- "repository": {
- "type": "git",
- "url": "https://github.com/jquery/esprima.git"
- },
- "bugs": {
- "url": "https://github.com/jquery/esprima/issues"
- },
- "license": "BSD-2-Clause",
- "devDependencies": {
- "codecov.io": "~0.1.6",
- "escomplex-js": "1.2.0",
- "everything.js": "~1.0.3",
- "glob": "~7.1.0",
- "istanbul": "~0.4.0",
- "json-diff": "~0.3.1",
- "karma": "~1.3.0",
- "karma-chrome-launcher": "~2.0.0",
- "karma-detect-browsers": "~2.1.0",
- "karma-firefox-launcher": "~1.0.0",
- "karma-ie-launcher": "~1.0.0",
- "karma-mocha": "~1.2.0",
- "karma-safari-launcher": "~1.0.0",
- "karma-sauce-launcher": "~1.0.0",
- "lodash": "~3.10.1",
- "mocha": "~3.1.0",
- "node-tick-processor": "~0.0.2",
- "regenerate": "~1.3.1",
- "temp": "~0.8.3",
- "tslint": "~3.15.1",
- "typescript": "~1.8.10",
- "typescript-formatter": "~2.3.0",
- "unicode-8.0.0": "~0.7.0",
- "webpack": "~1.13.2"
- },
- "keywords": [
- "ast",
- "ecmascript",
- "esprima",
- "javascript",
- "parser",
- "syntax"
- ],
- "scripts": {
- "check-version": "node test/check-version.js",
- "tslint": "tslint src/*.ts",
- "code-style": "tsfmt --verify src/*.ts && tsfmt --verify test/*.js",
- "format-code": "tsfmt -r src/*.ts && tsfmt -r test/*.js",
- "complexity": "node test/check-complexity.js",
- "static-analysis": "npm run check-version && npm run tslint && npm run code-style && npm run complexity",
- "hostile-env-tests": "node test/hostile-environment-tests.js",
- "unit-tests": "node test/unit-tests.js",
- "api-tests": "mocha -R dot test/api-tests.js",
- "grammar-tests": "node test/grammar-tests.js",
- "regression-tests": "node test/regression-tests.js",
- "all-tests": "npm run generate-fixtures && npm run unit-tests && npm run api-tests && npm run grammar-tests && npm run regression-tests && npm run hostile-env-tests",
- "generate-fixtures": "node tools/generate-fixtures.js",
- "browser-tests": "npm run compile && npm run generate-fixtures && cd test && karma start --single-run",
- "saucelabs-evergreen": "cd test && karma start saucelabs-evergreen.conf.js",
- "saucelabs-safari": "cd test && karma start saucelabs-safari.conf.js",
- "saucelabs-ie": "cd test && karma start saucelabs-ie.conf.js",
- "saucelabs": "npm run saucelabs-evergreen && npm run saucelabs-ie && npm run saucelabs-safari",
- "analyze-coverage": "istanbul cover test/unit-tests.js",
- "check-coverage": "istanbul check-coverage --statement 100 --branch 100 --function 100",
- "dynamic-analysis": "npm run analyze-coverage && npm run check-coverage",
- "compile": "tsc -p src/ && webpack && node tools/fixupbundle.js",
- "test": "npm run compile && npm run all-tests && npm run static-analysis && npm run dynamic-analysis",
- "prepublish": "npm run compile",
- "profile": "node --prof test/profile.js && mv isolate*.log v8.log && node-tick-processor",
- "benchmark-parser": "node -expose_gc test/benchmark-parser.js",
- "benchmark-tokenizer": "node --expose_gc test/benchmark-tokenizer.js",
- "benchmark": "npm run benchmark-parser && npm run benchmark-tokenizer",
- "codecov" : "istanbul report cobertura && codecov < ./coverage/cobertura-coverage.xml",
- "downstream": "node test/downstream.js",
- "travis": "npm test",
- "circleci": "npm test && npm run codecov && npm run downstream",
- "appveyor": "npm run compile && npm run all-tests && npm run browser-tests",
- "droneio": "npm run compile && npm run all-tests && npm run saucelabs",
- "generate-regex": "node tools/generate-identifier-regex.js",
- "generate-xhtml-entities": "node tools/generate-xhtml-entities.js"
- }
-}
diff --git a/node_modules/levn/LICENSE b/node_modules/levn/LICENSE
deleted file mode 100644
index 525b11850..000000000
--- a/node_modules/levn/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) George Zahariev
-
-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.
diff --git a/node_modules/levn/README.md b/node_modules/levn/README.md
deleted file mode 100644
index bb9ffea05..000000000
--- a/node_modules/levn/README.md
+++ /dev/null
@@ -1,196 +0,0 @@
-# levn [![Build Status](https://travis-ci.org/gkz/levn.png)](https://travis-ci.org/gkz/levn) <a name="levn" />
-__Light ECMAScript (JavaScript) Value Notation__
-Levn is a library which allows you to parse a string into a JavaScript value based on an expected type. It is meant for short amounts of human entered data (eg. config files, command line arguments).
-
-Levn aims to concisely describe JavaScript values in text, and allow for the extraction and validation of those values. Levn uses [type-check](https://github.com/gkz/type-check) for its type format, and to validate the results. MIT license. Version 0.3.0.
-
-__How is this different than JSON?__ levn is meant to be written by humans only, is (due to the previous point) much more concise, can be validated against supplied types, has regex and date literals, and can easily be extended with custom types. On the other hand, it is probably slower and thus less efficient at transporting large amounts of data, which is fine since this is not its purpose.
-
- npm install levn
-
-For updates on levn, [follow me on twitter](https://twitter.com/gkzahariev).
-
-
-## Quick Examples
-
-```js
-var parse = require('levn').parse;
-parse('Number', '2'); // 2
-parse('String', '2'); // '2'
-parse('String', 'levn'); // 'levn'
-parse('String', 'a b'); // 'a b'
-parse('Boolean', 'true'); // true
-
-parse('Date', '#2011-11-11#'); // (Date object)
-parse('Date', '2011-11-11'); // (Date object)
-parse('RegExp', '/[a-z]/gi'); // /[a-z]/gi
-parse('RegExp', 're'); // /re/
-parse('Int', '2'); // 2
-
-parse('Number | String', 'str'); // 'str'
-parse('Number | String', '2'); // 2
-
-parse('[Number]', '[1,2,3]'); // [1,2,3]
-parse('(String, Boolean)', '(hi, false)'); // ['hi', false]
-parse('{a: String, b: Number}', '{a: str, b: 2}'); // {a: 'str', b: 2}
-
-// at the top level, you can ommit surrounding delimiters
-parse('[Number]', '1,2,3'); // [1,2,3]
-parse('(String, Boolean)', 'hi, false'); // ['hi', false]
-parse('{a: String, b: Number}', 'a: str, b: 2'); // {a: 'str', b: 2}
-
-// wildcard - auto choose type
-parse('*', '[hi,(null,[42]),{k: true}]'); // ['hi', [null, [42]], {k: true}]
-```
-## Usage
-
-`require('levn');` returns an object that exposes three properties. `VERSION` is the current version of the library as a string. `parse` and `parsedTypeParse` are functions.
-
-```js
-// parse(type, input, options);
-parse('[Number]', '1,2,3'); // [1, 2, 3]
-
-// parsedTypeParse(parsedType, input, options);
-var parsedType = require('type-check').parseType('[Number]');
-parsedTypeParse(parsedType, '1,2,3'); // [1, 2, 3]
-```
-
-### parse(type, input, options)
-
-`parse` casts the string `input` into a JavaScript value according to the specified `type` in the [type format](https://github.com/gkz/type-check#type-format) (and taking account the optional `options`) and returns the resulting JavaScript value.
-
-##### arguments
-* type - `String` - the type written in the [type format](https://github.com/gkz/type-check#type-format) which to check against
-* input - `String` - the value written in the [levn format](#levn-format)
-* options - `Maybe Object` - an optional parameter specifying additional [options](#options)
-
-##### returns
-`*` - the resulting JavaScript value
-
-##### example
-```js
-parse('[Number]', '1,2,3'); // [1, 2, 3]
-```
-
-### parsedTypeParse(parsedType, input, options)
-
-`parsedTypeParse` casts the string `input` into a JavaScript value according to the specified `type` which has already been parsed (and taking account the optional `options`) and returns the resulting JavaScript value. You can parse a type using the [type-check](https://github.com/gkz/type-check) library's `parseType` function.
-
-##### arguments
-* type - `Object` - the type in the parsed type format which to check against
-* input - `String` - the value written in the [levn format](#levn-format)
-* options - `Maybe Object` - an optional parameter specifying additional [options](#options)
-
-##### returns
-`*` - the resulting JavaScript value
-
-##### example
-```js
-var parsedType = require('type-check').parseType('[Number]');
-parsedTypeParse(parsedType, '1,2,3'); // [1, 2, 3]
-```
-
-## Levn Format
-
-Levn can use the type information you provide to choose the appropriate value to produce from the input. For the same input, it will choose a different output value depending on the type provided. For example, `parse('Number', '2')` will produce the number `2`, but `parse('String', '2')` will produce the string `"2"`.
-
-If you do not provide type information, and simply use `*`, levn will parse the input according the unambiguous "explicit" mode, which we will now detail - you can also set the `explicit` option to true manually in the [options](#options).
-
-* `"string"`, `'string'` are parsed as a String, eg. `"a msg"` is `"a msg"`
-* `#date#` is parsed as a Date, eg. `#2011-11-11#` is `new Date('2011-11-11')`
-* `/regexp/flags` is parsed as a RegExp, eg. `/re/gi` is `/re/gi`
-* `undefined`, `null`, `NaN`, `true`, and `false` are all their JavaScript equivalents
-* `[element1, element2, etc]` is an Array, and the casting procedure is recursively applied to each element. Eg. `[1,2,3]` is `[1,2,3]`.
-* `(element1, element2, etc)` is an tuple, and the casting procedure is recursively applied to each element. Eg. `(1, a)` is `(1, a)` (is `[1, 'a']`).
-* `{key1: val1, key2: val2, ...}` is an Object, and the casting procedure is recursively applied to each property. Eg. `{a: 1, b: 2}` is `{a: 1, b: 2}`.
-* Any test which does not fall under the above, and which does not contain special characters (`[``]``(``)``{``}``:``,`) is a string, eg. `$12- blah` is `"$12- blah"`.
-
-If you do provide type information, you can make your input more concise as the program already has some information about what it expects. Please see the [type format](https://github.com/gkz/type-check#type-format) section of [type-check](https://github.com/gkz/type-check) for more information about how to specify types. There are some rules about what levn can do with the information:
-
-* If a String is expected, and only a String, all characters of the input (including any special ones) will become part of the output. Eg. `[({})]` is `"[({})]"`, and `"hi"` is `'"hi"'`.
-* If a Date is expected, the surrounding `#` can be omitted from date literals. Eg. `2011-11-11` is `new Date('2011-11-11')`.
-* If a RegExp is expected, no flags need to be specified, and the regex is not using any of the special characters,the opening and closing `/` can be omitted - this will have the affect of setting the source of the regex to the input. Eg. `regex` is `/regex/`.
-* If an Array is expected, and it is the root node (at the top level), the opening `[` and closing `]` can be omitted. Eg. `1,2,3` is `[1,2,3]`.
-* If a tuple is expected, and it is the root node (at the top level), the opening `(` and closing `)` can be omitted. Eg. `1, a` is `(1, a)` (is `[1, 'a']`).
-* If an Object is expected, and it is the root node (at the top level), the opening `{` and closing `}` can be omitted. Eg `a: 1, b: 2` is `{a: 1, b: 2}`.
-
-If you list multiple types (eg. `Number | String`), it will first attempt to cast to the first type and then validate - if the validation fails it will move on to the next type and so forth, left to right. You must be careful as some types will succeed with any input, such as String. Thus put String at the end of your list. In non-explicit mode, Date and RegExp will succeed with a large variety of input - also be careful with these and list them near the end if not last in your list.
-
-Whitespace between special characters and elements is inconsequential.
-
-## Options
-
-Options is an object. It is an optional parameter to the `parse` and `parsedTypeParse` functions.
-
-### Explicit
-
-A `Boolean`. By default it is `false`.
-
-__Example:__
-
-```js
-parse('RegExp', 're', {explicit: false}); // /re/
-parse('RegExp', 're', {explicit: true}); // Error: ... does not type check...
-parse('RegExp | String', 're', {explicit: true}); // 're'
-```
-
-`explicit` sets whether to be in explicit mode or not. Using `*` automatically activates explicit mode. For more information, read the [levn format](#levn-format) section.
-
-### customTypes
-
-An `Object`. Empty `{}` by default.
-
-__Example:__
-
-```js
-var options = {
- customTypes: {
- Even: {
- typeOf: 'Number',
- validate: function (x) {
- return x % 2 === 0;
- },
- cast: function (x) {
- return {type: 'Just', value: parseInt(x)};
- }
- }
- }
-}
-parse('Even', '2', options); // 2
-parse('Even', '3', options); // Error: Value: "3" does not type check...
-```
-
-__Another Example:__
-```js
-function Person(name, age){
- this.name = name;
- this.age = age;
-}
-var options = {
- customTypes: {
- Person: {
- typeOf: 'Object',
- validate: function (x) {
- x instanceof Person;
- },
- cast: function (value, options, typesCast) {
- var name, age;
- if ({}.toString.call(value).slice(8, -1) !== 'Object') {
- return {type: 'Nothing'};
- }
- name = typesCast(value.name, [{type: 'String'}], options);
- age = typesCast(value.age, [{type: 'Numger'}], options);
- return {type: 'Just', value: new Person(name, age)};
- }
- }
-}
-parse('Person', '{name: Laura, age: 25}', options); // Person {name: 'Laura', age: 25}
-```
-
-`customTypes` is an object whose keys are the name of the types, and whose values are an object with three properties, `typeOf`, `validate`, and `cast`. For more information about `typeOf` and `validate`, please see the [custom types](https://github.com/gkz/type-check#custom-types) section of type-check.
-
-`cast` is a function which receives three arguments, the value under question, options, and the typesCast function. In `cast`, attempt to cast the value into the specified type. If you are successful, return an object in the format `{type: 'Just', value: CAST-VALUE}`, if you know it won't work, return `{type: 'Nothing'}`. You can use the `typesCast` function to cast any child values. Remember to pass `options` to it. In your function you can also check for `options.explicit` and act accordingly.
-
-## Technical About
-
-`levn` is written in [LiveScript](http://livescript.net/) - a language that compiles to JavaScript. It uses [type-check](https://github.com/gkz/type-check) to both parse types and validate values. It also uses the [prelude.ls](http://preludels.com/) library.
diff --git a/node_modules/levn/lib/cast.js b/node_modules/levn/lib/cast.js
deleted file mode 100644
index 411e29d40..000000000
--- a/node_modules/levn/lib/cast.js
+++ /dev/null
@@ -1,298 +0,0 @@
-// Generated by LiveScript 1.4.0
-(function(){
- var parsedTypeCheck, types, toString$ = {}.toString;
- parsedTypeCheck = require('type-check').parsedTypeCheck;
- types = {
- '*': function(value, options){
- switch (toString$.call(value).slice(8, -1)) {
- case 'Array':
- return typeCast(value, {
- type: 'Array'
- }, options);
- case 'Object':
- return typeCast(value, {
- type: 'Object'
- }, options);
- default:
- return {
- type: 'Just',
- value: typesCast(value, [
- {
- type: 'Undefined'
- }, {
- type: 'Null'
- }, {
- type: 'NaN'
- }, {
- type: 'Boolean'
- }, {
- type: 'Number'
- }, {
- type: 'Date'
- }, {
- type: 'RegExp'
- }, {
- type: 'Array'
- }, {
- type: 'Object'
- }, {
- type: 'String'
- }
- ], (options.explicit = true, options))
- };
- }
- },
- Undefined: function(it){
- if (it === 'undefined' || it === void 8) {
- return {
- type: 'Just',
- value: void 8
- };
- } else {
- return {
- type: 'Nothing'
- };
- }
- },
- Null: function(it){
- if (it === 'null') {
- return {
- type: 'Just',
- value: null
- };
- } else {
- return {
- type: 'Nothing'
- };
- }
- },
- NaN: function(it){
- if (it === 'NaN') {
- return {
- type: 'Just',
- value: NaN
- };
- } else {
- return {
- type: 'Nothing'
- };
- }
- },
- Boolean: function(it){
- if (it === 'true') {
- return {
- type: 'Just',
- value: true
- };
- } else if (it === 'false') {
- return {
- type: 'Just',
- value: false
- };
- } else {
- return {
- type: 'Nothing'
- };
- }
- },
- Number: function(it){
- return {
- type: 'Just',
- value: +it
- };
- },
- Int: function(it){
- return {
- type: 'Just',
- value: +it
- };
- },
- Float: function(it){
- return {
- type: 'Just',
- value: +it
- };
- },
- Date: function(value, options){
- var that;
- if (that = /^\#([\s\S]*)\#$/.exec(value)) {
- return {
- type: 'Just',
- value: new Date(+that[1] || that[1])
- };
- } else if (options.explicit) {
- return {
- type: 'Nothing'
- };
- } else {
- return {
- type: 'Just',
- value: new Date(+value || value)
- };
- }
- },
- RegExp: function(value, options){
- var that;
- if (that = /^\/([\s\S]*)\/([gimy]*)$/.exec(value)) {
- return {
- type: 'Just',
- value: new RegExp(that[1], that[2])
- };
- } else if (options.explicit) {
- return {
- type: 'Nothing'
- };
- } else {
- return {
- type: 'Just',
- value: new RegExp(value)
- };
- }
- },
- Array: function(value, options){
- return castArray(value, {
- of: [{
- type: '*'
- }]
- }, options);
- },
- Object: function(value, options){
- return castFields(value, {
- of: {}
- }, options);
- },
- String: function(it){
- var that;
- if (toString$.call(it).slice(8, -1) !== 'String') {
- return {
- type: 'Nothing'
- };
- }
- if (that = it.match(/^'([\s\S]*)'$/)) {
- return {
- type: 'Just',
- value: that[1].replace(/\\'/g, "'")
- };
- } else if (that = it.match(/^"([\s\S]*)"$/)) {
- return {
- type: 'Just',
- value: that[1].replace(/\\"/g, '"')
- };
- } else {
- return {
- type: 'Just',
- value: it
- };
- }
- }
- };
- function castArray(node, type, options){
- var typeOf, element;
- if (toString$.call(node).slice(8, -1) !== 'Array') {
- return {
- type: 'Nothing'
- };
- }
- typeOf = type.of;
- return {
- type: 'Just',
- value: (function(){
- var i$, ref$, len$, results$ = [];
- for (i$ = 0, len$ = (ref$ = node).length; i$ < len$; ++i$) {
- element = ref$[i$];
- results$.push(typesCast(element, typeOf, options));
- }
- return results$;
- }())
- };
- }
- function castTuple(node, type, options){
- var result, i, i$, ref$, len$, types, cast;
- if (toString$.call(node).slice(8, -1) !== 'Array') {
- return {
- type: 'Nothing'
- };
- }
- result = [];
- i = 0;
- for (i$ = 0, len$ = (ref$ = type.of).length; i$ < len$; ++i$) {
- types = ref$[i$];
- cast = typesCast(node[i], types, options);
- if (toString$.call(cast).slice(8, -1) !== 'Undefined') {
- result.push(cast);
- }
- i++;
- }
- if (node.length <= i) {
- return {
- type: 'Just',
- value: result
- };
- } else {
- return {
- type: 'Nothing'
- };
- }
- }
- function castFields(node, type, options){
- var typeOf, key, value;
- if (toString$.call(node).slice(8, -1) !== 'Object') {
- return {
- type: 'Nothing'
- };
- }
- typeOf = type.of;
- return {
- type: 'Just',
- value: (function(){
- var ref$, resultObj$ = {};
- for (key in ref$ = node) {
- value = ref$[key];
- resultObj$[typesCast(key, [{
- type: 'String'
- }], options)] = typesCast(value, typeOf[key] || [{
- type: '*'
- }], options);
- }
- return resultObj$;
- }())
- };
- }
- function typeCast(node, typeObj, options){
- var type, structure, castFunc, ref$;
- type = typeObj.type, structure = typeObj.structure;
- if (type) {
- castFunc = ((ref$ = options.customTypes[type]) != null ? ref$.cast : void 8) || types[type];
- if (!castFunc) {
- throw new Error("Type not defined: " + type + ".");
- }
- return castFunc(node, options, typesCast);
- } else {
- switch (structure) {
- case 'array':
- return castArray(node, typeObj, options);
- case 'tuple':
- return castTuple(node, typeObj, options);
- case 'fields':
- return castFields(node, typeObj, options);
- }
- }
- }
- function typesCast(node, types, options){
- var i$, len$, type, ref$, valueType, value;
- for (i$ = 0, len$ = types.length; i$ < len$; ++i$) {
- type = types[i$];
- ref$ = typeCast(node, type, options), valueType = ref$.type, value = ref$.value;
- if (valueType === 'Nothing') {
- continue;
- }
- if (parsedTypeCheck([type], value, {
- customTypes: options.customTypes
- })) {
- return value;
- }
- }
- throw new Error("Value " + JSON.stringify(node) + " does not type check against " + JSON.stringify(types) + ".");
- }
- module.exports = typesCast;
-}).call(this);
diff --git a/node_modules/levn/lib/coerce.js b/node_modules/levn/lib/coerce.js
deleted file mode 100644
index 027b6da02..000000000
--- a/node_modules/levn/lib/coerce.js
+++ /dev/null
@@ -1,285 +0,0 @@
-// Generated by LiveScript 1.2.0
-(function(){
- var parsedTypeCheck, types, toString$ = {}.toString;
- parsedTypeCheck = require('type-check').parsedTypeCheck;
- types = {
- '*': function(it){
- switch (toString$.call(it).slice(8, -1)) {
- case 'Array':
- return coerceType(it, {
- type: 'Array'
- });
- case 'Object':
- return coerceType(it, {
- type: 'Object'
- });
- default:
- return {
- type: 'Just',
- value: coerceTypes(it, [
- {
- type: 'Undefined'
- }, {
- type: 'Null'
- }, {
- type: 'NaN'
- }, {
- type: 'Boolean'
- }, {
- type: 'Number'
- }, {
- type: 'Date'
- }, {
- type: 'RegExp'
- }, {
- type: 'Array'
- }, {
- type: 'Object'
- }, {
- type: 'String'
- }
- ], {
- explicit: true
- })
- };
- }
- },
- Undefined: function(it){
- if (it === 'undefined' || it === void 8) {
- return {
- type: 'Just',
- value: void 8
- };
- } else {
- return {
- type: 'Nothing'
- };
- }
- },
- Null: function(it){
- if (it === 'null') {
- return {
- type: 'Just',
- value: null
- };
- } else {
- return {
- type: 'Nothing'
- };
- }
- },
- NaN: function(it){
- if (it === 'NaN') {
- return {
- type: 'Just',
- value: NaN
- };
- } else {
- return {
- type: 'Nothing'
- };
- }
- },
- Boolean: function(it){
- if (it === 'true') {
- return {
- type: 'Just',
- value: true
- };
- } else if (it === 'false') {
- return {
- type: 'Just',
- value: false
- };
- } else {
- return {
- type: 'Nothing'
- };
- }
- },
- Number: function(it){
- return {
- type: 'Just',
- value: +it
- };
- },
- Int: function(it){
- return {
- type: 'Just',
- value: parseInt(it)
- };
- },
- Float: function(it){
- return {
- type: 'Just',
- value: parseFloat(it)
- };
- },
- Date: function(value, options){
- var that;
- if (that = /^\#(.*)\#$/.exec(value)) {
- return {
- type: 'Just',
- value: new Date(+that[1] || that[1])
- };
- } else if (options.explicit) {
- return {
- type: 'Nothing'
- };
- } else {
- return {
- type: 'Just',
- value: new Date(+value || value)
- };
- }
- },
- RegExp: function(value, options){
- var that;
- if (that = /^\/(.*)\/([gimy]*)$/.exec(value)) {
- return {
- type: 'Just',
- value: new RegExp(that[1], that[2])
- };
- } else if (options.explicit) {
- return {
- type: 'Nothing'
- };
- } else {
- return {
- type: 'Just',
- value: new RegExp(value)
- };
- }
- },
- Array: function(it){
- return coerceArray(it, {
- of: [{
- type: '*'
- }]
- });
- },
- Object: function(it){
- return coerceFields(it, {
- of: {}
- });
- },
- String: function(it){
- var that;
- if (toString$.call(it).slice(8, -1) !== 'String') {
- return {
- type: 'Nothing'
- };
- }
- if (that = it.match(/^'(.*)'$/)) {
- return {
- type: 'Just',
- value: that[1]
- };
- } else if (that = it.match(/^"(.*)"$/)) {
- return {
- type: 'Just',
- value: that[1]
- };
- } else {
- return {
- type: 'Just',
- value: it
- };
- }
- }
- };
- function coerceArray(node, type){
- var typeOf, element;
- if (toString$.call(node).slice(8, -1) !== 'Array') {
- return {
- type: 'Nothing'
- };
- }
- typeOf = type.of;
- return {
- type: 'Just',
- value: (function(){
- var i$, ref$, len$, results$ = [];
- for (i$ = 0, len$ = (ref$ = node).length; i$ < len$; ++i$) {
- element = ref$[i$];
- results$.push(coerceTypes(element, typeOf));
- }
- return results$;
- }())
- };
- }
- function coerceTuple(node, type){
- var result, i$, ref$, len$, i, types, that;
- if (toString$.call(node).slice(8, -1) !== 'Array') {
- return {
- type: 'Nothing'
- };
- }
- result = [];
- for (i$ = 0, len$ = (ref$ = type.of).length; i$ < len$; ++i$) {
- i = i$;
- types = ref$[i$];
- if (that = coerceTypes(node[i], types)) {
- result.push(that);
- }
- }
- return {
- type: 'Just',
- value: result
- };
- }
- function coerceFields(node, type){
- var typeOf, key, value;
- if (toString$.call(node).slice(8, -1) !== 'Object') {
- return {
- type: 'Nothing'
- };
- }
- typeOf = type.of;
- return {
- type: 'Just',
- value: (function(){
- var ref$, results$ = {};
- for (key in ref$ = node) {
- value = ref$[key];
- results$[key] = coerceTypes(value, typeOf[key] || [{
- type: '*'
- }]);
- }
- return results$;
- }())
- };
- }
- function coerceType(node, typeObj, options){
- var type, structure, coerceFunc;
- type = typeObj.type, structure = typeObj.structure;
- if (type) {
- coerceFunc = types[type];
- return coerceFunc(node, options);
- } else {
- switch (structure) {
- case 'array':
- return coerceArray(node, typeObj);
- case 'tuple':
- return coerceTuple(node, typeObj);
- case 'fields':
- return coerceFields(node, typeObj);
- }
- }
- }
- function coerceTypes(node, types, options){
- var i$, len$, type, ref$, valueType, value;
- for (i$ = 0, len$ = types.length; i$ < len$; ++i$) {
- type = types[i$];
- ref$ = coerceType(node, type, options), valueType = ref$.type, value = ref$.value;
- if (valueType === 'Nothing') {
- continue;
- }
- if (parsedTypeCheck([type], value)) {
- return value;
- }
- }
- throw new Error("Value " + JSON.stringify(node) + " does not type check against " + JSON.stringify(types) + ".");
- }
- module.exports = coerceTypes;
-}).call(this);
diff --git a/node_modules/levn/lib/index.js b/node_modules/levn/lib/index.js
deleted file mode 100644
index 4adae30c8..000000000
--- a/node_modules/levn/lib/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Generated by LiveScript 1.4.0
-(function(){
- var parseString, cast, parseType, VERSION, parsedTypeParse, parse;
- parseString = require('./parse-string');
- cast = require('./cast');
- parseType = require('type-check').parseType;
- VERSION = '0.3.0';
- parsedTypeParse = function(parsedType, string, options){
- options == null && (options = {});
- options.explicit == null && (options.explicit = false);
- options.customTypes == null && (options.customTypes = {});
- return cast(parseString(parsedType, string, options), parsedType, options);
- };
- parse = function(type, string, options){
- return parsedTypeParse(parseType(type), string, options);
- };
- module.exports = {
- VERSION: VERSION,
- parse: parse,
- parsedTypeParse: parsedTypeParse
- };
-}).call(this);
diff --git a/node_modules/levn/lib/parse-string.js b/node_modules/levn/lib/parse-string.js
deleted file mode 100644
index d573975fc..000000000
--- a/node_modules/levn/lib/parse-string.js
+++ /dev/null
@@ -1,113 +0,0 @@
-// Generated by LiveScript 1.4.0
-(function(){
- var reject, special, tokenRegex;
- reject = require('prelude-ls').reject;
- function consumeOp(tokens, op){
- if (tokens[0] === op) {
- return tokens.shift();
- } else {
- throw new Error("Expected '" + op + "', but got '" + tokens[0] + "' instead in " + JSON.stringify(tokens) + ".");
- }
- }
- function maybeConsumeOp(tokens, op){
- if (tokens[0] === op) {
- return tokens.shift();
- }
- }
- function consumeList(tokens, arg$, hasDelimiters){
- var open, close, result, untilTest;
- open = arg$[0], close = arg$[1];
- if (hasDelimiters) {
- consumeOp(tokens, open);
- }
- result = [];
- untilTest = "," + (hasDelimiters ? close : '');
- while (tokens.length && (hasDelimiters && tokens[0] !== close)) {
- result.push(consumeElement(tokens, untilTest));
- maybeConsumeOp(tokens, ',');
- }
- if (hasDelimiters) {
- consumeOp(tokens, close);
- }
- return result;
- }
- function consumeArray(tokens, hasDelimiters){
- return consumeList(tokens, ['[', ']'], hasDelimiters);
- }
- function consumeTuple(tokens, hasDelimiters){
- return consumeList(tokens, ['(', ')'], hasDelimiters);
- }
- function consumeFields(tokens, hasDelimiters){
- var result, untilTest, key;
- if (hasDelimiters) {
- consumeOp(tokens, '{');
- }
- result = {};
- untilTest = "," + (hasDelimiters ? '}' : '');
- while (tokens.length && (!hasDelimiters || tokens[0] !== '}')) {
- key = consumeValue(tokens, ':');
- consumeOp(tokens, ':');
- result[key] = consumeElement(tokens, untilTest);
- maybeConsumeOp(tokens, ',');
- }
- if (hasDelimiters) {
- consumeOp(tokens, '}');
- }
- return result;
- }
- function consumeValue(tokens, untilTest){
- var out;
- untilTest == null && (untilTest = '');
- out = '';
- while (tokens.length && -1 === untilTest.indexOf(tokens[0])) {
- out += tokens.shift();
- }
- return out;
- }
- function consumeElement(tokens, untilTest){
- switch (tokens[0]) {
- case '[':
- return consumeArray(tokens, true);
- case '(':
- return consumeTuple(tokens, true);
- case '{':
- return consumeFields(tokens, true);
- default:
- return consumeValue(tokens, untilTest);
- }
- }
- function consumeTopLevel(tokens, types, options){
- var ref$, type, structure, origTokens, result, finalResult, x$, y$;
- ref$ = types[0], type = ref$.type, structure = ref$.structure;
- origTokens = tokens.concat();
- if (!options.explicit && types.length === 1 && ((!type && structure) || (type === 'Array' || type === 'Object'))) {
- result = structure === 'array' || type === 'Array'
- ? consumeArray(tokens, tokens[0] === '[')
- : structure === 'tuple'
- ? consumeTuple(tokens, tokens[0] === '(')
- : consumeFields(tokens, tokens[0] === '{');
- finalResult = tokens.length ? consumeElement(structure === 'array' || type === 'Array'
- ? (x$ = origTokens, x$.unshift('['), x$.push(']'), x$)
- : (y$ = origTokens, y$.unshift('('), y$.push(')'), y$)) : result;
- } else {
- finalResult = consumeElement(tokens);
- }
- return finalResult;
- }
- special = /\[\]\(\)}{:,/.source;
- tokenRegex = RegExp('("(?:\\\\"|[^"])*")|(\'(?:\\\\\'|[^\'])*\')|(/(?:\\\\/|[^/])*/[a-zA-Z]*)|(#.*#)|([' + special + '])|([^\\s' + special + '](?:\\s*[^\\s' + special + ']+)*)|\\s*');
- module.exports = function(types, string, options){
- var tokens, node;
- options == null && (options = {});
- if (!options.explicit && types.length === 1 && types[0].type === 'String') {
- return "'" + string.replace(/\\'/g, "\\\\'") + "'";
- }
- tokens = reject(not$, string.split(tokenRegex));
- node = consumeTopLevel(tokens, types, options);
- if (!node) {
- throw new Error("Error parsing '" + string + "'.");
- }
- return node;
- };
- function not$(x){ return !x; }
-}).call(this);
diff --git a/node_modules/levn/lib/parse.js b/node_modules/levn/lib/parse.js
deleted file mode 100644
index 2beff0f47..000000000
--- a/node_modules/levn/lib/parse.js
+++ /dev/null
@@ -1,102 +0,0 @@
-// Generated by LiveScript 1.2.0
-(function(){
- var reject, special, tokenRegex;
- reject = require('prelude-ls').reject;
- function consumeOp(tokens, op){
- if (tokens[0] === op) {
- return tokens.shift();
- } else {
- throw new Error("Expected '" + op + "', but got '" + tokens[0] + "' instead in " + JSON.stringify(tokens) + ".");
- }
- }
- function maybeConsumeOp(tokens, op){
- if (tokens[0] === op) {
- return tokens.shift();
- }
- }
- function consumeList(tokens, delimiters, hasDelimiters){
- var result;
- if (hasDelimiters) {
- consumeOp(tokens, delimiters[0]);
- }
- result = [];
- while (tokens.length && tokens[0] !== delimiters[1]) {
- result.push(consumeElement(tokens));
- maybeConsumeOp(tokens, ',');
- }
- if (hasDelimiters) {
- consumeOp(tokens, delimiters[1]);
- }
- return result;
- }
- function consumeArray(tokens, hasDelimiters){
- return consumeList(tokens, ['[', ']'], hasDelimiters);
- }
- function consumeTuple(tokens, hasDelimiters){
- return consumeList(tokens, ['(', ')'], hasDelimiters);
- }
- function consumeFields(tokens, hasDelimiters){
- var result, key;
- if (hasDelimiters) {
- consumeOp(tokens, '{');
- }
- result = {};
- while (tokens.length && (!hasDelimiters || tokens[0] !== '}')) {
- key = tokens.shift();
- consumeOp(tokens, ':');
- result[key] = consumeElement(tokens);
- maybeConsumeOp(tokens, ',');
- }
- if (hasDelimiters) {
- consumeOp(tokens, '}');
- }
- return result;
- }
- function consumeElement(tokens){
- switch (tokens[0]) {
- case '[':
- return consumeArray(tokens, true);
- case '(':
- return consumeTuple(tokens, true);
- case '{':
- return consumeFields(tokens, true);
- default:
- return tokens.shift();
- }
- }
- function consumeTopLevel(tokens, types){
- var ref$, type, structure, origTokens, result, finalResult, x$, y$;
- ref$ = types[0], type = ref$.type, structure = ref$.structure;
- origTokens = tokens.concat();
- if (types.length === 1 && (structure || (type === 'Array' || type === 'Object'))) {
- result = structure === 'array' || type === 'Array'
- ? consumeArray(tokens, tokens[0] === '[')
- : structure === 'tuple'
- ? consumeTuple(tokens, tokens[0] === '(')
- : consumeFields(tokens, tokens[0] === '{');
- finalResult = tokens.length ? consumeElement(structure === 'array' || type === 'Array'
- ? (x$ = origTokens, x$.unshift('['), x$.push(']'), x$)
- : (y$ = origTokens, y$.unshift('('), y$.push(')'), y$)) : result;
- } else {
- finalResult = consumeElement(tokens);
- }
- if (tokens.length && origTokens.length) {
- throw new Error("Unable to parse " + JSON.stringify(origTokens) + " of type " + JSON.stringify(types) + ".");
- } else {
- return finalResult;
- }
- }
- special = /\[\]\(\)}{:,/.source;
- tokenRegex = RegExp('("(?:[^"]|\\\\")*")|(\'(?:[^\']|\\\\\')*\')|(#.*#)|(/(?:\\\\/|[^/])*/[gimy]*)|([' + special + '])|([^\\s' + special + ']+)|\\s*');
- module.exports = function(string, types){
- var tokens, node;
- tokens = reject(function(it){
- return !it || /^\s+$/.test(it);
- }, string.split(tokenRegex));
- node = consumeTopLevel(tokens, types);
- if (!node) {
- throw new Error("Error parsing '" + string + "'.");
- }
- return node;
- };
-}).call(this);
diff --git a/node_modules/levn/package.json b/node_modules/levn/package.json
deleted file mode 100644
index 56dfbc426..000000000
--- a/node_modules/levn/package.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "name": "levn",
- "version": "0.3.0",
- "author": "George Zahariev <z@georgezahariev.com>",
- "description": "Light ECMAScript (JavaScript) Value Notation - human written, concise, typed, flexible",
- "homepage": "https://github.com/gkz/levn",
- "keywords": [
- "levn",
- "light",
- "ecmascript",
- "value",
- "notation",
- "json",
- "typed",
- "human",
- "concise",
- "typed",
- "flexible"
- ],
- "files": [
- "lib",
- "README.md",
- "LICENSE"
- ],
- "main": "./lib/",
- "bugs": "https://github.com/gkz/levn/issues",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8.0"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/gkz/levn.git"
- },
- "scripts": {
- "test": "make test"
- },
- "dependencies": {
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2"
- },
- "devDependencies": {
- "livescript": "~1.4.0",
- "mocha": "~2.3.4",
- "istanbul": "~0.4.1"
- }
-}
diff --git a/node_modules/load-json-file/index.js b/node_modules/load-json-file/index.js
index 96d4d9f6f..b2767e302 100644
--- a/node_modules/load-json-file/index.js
+++ b/node_modules/load-json-file/index.js
@@ -1,21 +1,11 @@
'use strict';
-var path = require('path');
-var fs = require('graceful-fs');
-var stripBom = require('strip-bom');
-var parseJson = require('parse-json');
-var Promise = require('pinkie-promise');
-var pify = require('pify');
+const path = require('path');
+const fs = require('graceful-fs');
+const stripBom = require('strip-bom');
+const parseJson = require('parse-json');
+const pify = require('pify');
-function parse(x, fp) {
- return parseJson(stripBom(x), path.relative(process.cwd(), fp));
-}
+const parse = (data, fp) => parseJson(stripBom(data), path.relative('.', fp));
-module.exports = function (fp) {
- return pify(fs.readFile, Promise)(fp, 'utf8').then(function (data) {
- return parse(data, fp);
- });
-};
-
-module.exports.sync = function (fp) {
- return parse(fs.readFileSync(fp, 'utf8'), fp);
-};
+module.exports = fp => pify(fs.readFile)(fp, 'utf8').then(data => parse(data, fp));
+module.exports.sync = fp => parse(fs.readFileSync(fp, 'utf8'), fp);
diff --git a/node_modules/load-json-file/package.json b/node_modules/load-json-file/package.json
index b44c8a128..e5809e515 100644
--- a/node_modules/load-json-file/package.json
+++ b/node_modules/load-json-file/package.json
@@ -1,6 +1,6 @@
{
"name": "load-json-file",
- "version": "1.1.0",
+ "version": "2.0.0",
"description": "Read and parse a JSON file",
"license": "MIT",
"repository": "sindresorhus/load-json-file",
@@ -10,7 +10,7 @@
"url": "sindresorhus.com"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
},
"scripts": {
"test": "xo && ava"
@@ -19,8 +19,8 @@
"index.js"
],
"keywords": [
- "json",
"read",
+ "json",
"parse",
"file",
"fs",
@@ -31,16 +31,13 @@
"graceful-fs": "^4.1.2",
"parse-json": "^2.2.0",
"pify": "^2.0.0",
- "pinkie-promise": "^2.0.0",
- "strip-bom": "^2.0.0"
+ "strip-bom": "^3.0.0"
},
"devDependencies": {
"ava": "*",
"xo": "*"
},
"xo": {
- "ignores": [
- "test.js"
- ]
+ "esnext": true
}
}
diff --git a/node_modules/load-json-file/readme.md b/node_modules/load-json-file/readme.md
index fa982b549..3319c266c 100644
--- a/node_modules/load-json-file/readme.md
+++ b/node_modules/load-json-file/readme.md
@@ -28,7 +28,7 @@ loadJsonFile('foo.json').then(json => {
### loadJsonFile(filepath)
-Returns a promise that resolves to the parsed JSON.
+Returns a promise for the parsed JSON.
### loadJsonFile.sync(filepath)
@@ -42,4 +42,4 @@ Returns the parsed JSON.
## License
-MIT © [Sindre Sorhus](http://sindresorhus.com)
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/lru-cache/.npmignore b/node_modules/lru-cache/.npmignore
deleted file mode 100644
index 07e6e472c..000000000
--- a/node_modules/lru-cache/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-/node_modules
diff --git a/node_modules/lru-cache/.travis.yml b/node_modules/lru-cache/.travis.yml
deleted file mode 100644
index 4af02b3d1..000000000
--- a/node_modules/lru-cache/.travis.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-language: node_js
-node_js:
- - '0.8'
- - '0.10'
- - '0.12'
- - 'iojs'
-before_install:
- - npm install -g npm@latest
diff --git a/node_modules/lru-cache/CONTRIBUTORS b/node_modules/lru-cache/CONTRIBUTORS
deleted file mode 100644
index 4a0bc5033..000000000
--- a/node_modules/lru-cache/CONTRIBUTORS
+++ /dev/null
@@ -1,14 +0,0 @@
-# Authors, sorted by whether or not they are me
-Isaac Z. Schlueter <i@izs.me>
-Brian Cottingham <spiffytech@gmail.com>
-Carlos Brito Lage <carlos@carloslage.net>
-Jesse Dailey <jesse.dailey@gmail.com>
-Kevin O'Hara <kevinohara80@gmail.com>
-Marco Rogers <marco.rogers@gmail.com>
-Mark Cavage <mcavage@gmail.com>
-Marko Mikulicic <marko.mikulicic@isti.cnr.it>
-Nathan Rajlich <nathan@tootallnate.net>
-Satheesh Natesan <snateshan@myspace-inc.com>
-Trent Mick <trentm@gmail.com>
-ashleybrener <ashley@starlogik.com>
-n4kz <n4kz@n4kz.com>
diff --git a/node_modules/lru-cache/README.md b/node_modules/lru-cache/README.md
index c06814e04..5bdf98c0f 100644
--- a/node_modules/lru-cache/README.md
+++ b/node_modules/lru-cache/README.md
@@ -2,12 +2,20 @@
A cache object that deletes the least-recently-used items.
+[![Build Status](https://travis-ci.org/isaacs/node-lru-cache.svg?branch=master)](https://travis-ci.org/isaacs/node-lru-cache) [![Coverage Status](https://coveralls.io/repos/isaacs/node-lru-cache/badge.svg?service=github)](https://coveralls.io/github/isaacs/node-lru-cache)
+
+## Installation:
+
+```javascript
+npm install lru-cache --save
+```
+
## Usage:
```javascript
var LRU = require("lru-cache")
, options = { max: 500
- , length: function (n) { return n * 2 }
+ , length: function (n, key) { return n * 2 + key.length }
, dispose: function (key, n) { n.close() }
, maxAge: 1000 * 60 * 60 }
, cache = LRU(options)
@@ -16,6 +24,12 @@ var LRU = require("lru-cache")
cache.set("key", "value")
cache.get("key") // "value"
+// non-string keys ARE fully supported
+var someObject = {}
+cache.set(someObject, 'a value')
+cache.set('[object Object]', 'a different value')
+assert.equal(cache.get(someObject), 'a value')
+
cache.reset() // empty the cache
```
@@ -24,24 +38,6 @@ If you put more stuff in it, then items will fall out.
If you try to put an oversized thing in it, then it'll fall out right
away.
-## Keys should always be Strings or Numbers
-
-Note: this module will print warnings to `console.error` if you use a
-key that is not a String or Number. Because items are stored in an
-object, which coerces keys to a string, it won't go well for you if
-you try to use a key that is not a unique string, it'll cause surprise
-collisions. For example:
-
-```JavaScript
-// Bad Example! Dont' do this!
-var cache = LRU()
-var a = {}
-var b = {}
-cache.set(a, 'this is a')
-cache.set(b, 'this is b')
-console.log(cache.get(a)) // prints: 'this is b'
-```
-
## Options
* `max` The maximum size of the cache, checked by applying the length
@@ -53,9 +49,10 @@ console.log(cache.get(a)) // prints: 'this is b'
drop it and return undefined instead of giving it to you.
* `length` Function that is used to calculate the length of stored
items. If you're storing strings or buffers, then you probably want
- to do something like `function(n){return n.length}`. The default is
- `function(n){return 1}`, which is fine if you want to store `max`
- like-sized things.
+ to do something like `function(n, key){return n.length}`. The default is
+ `function(){return 1}`, which is fine if you want to store `max`
+ like-sized things. The item is passed as the first argument, and
+ the key is passed as the second argumnet.
* `dispose` Function that is called on items when they are dropped
from the cache. This can be handy if you want to close file
descriptors or do other cleanup tasks when items are no longer
@@ -76,8 +73,12 @@ console.log(cache.get(a)) // prints: 'this is b'
* `get(key) => value`
Both of these will update the "recently used"-ness of the key.
- They do what you think. `max` is optional and overrides the
- cache `max` option if provided.
+ They do what you think. `maxAge` is optional and overrides the
+ cache `maxAge` option if provided.
+
+ If the key is not found, `get()` will return `undefined`.
+
+ The key and val can be any value.
* `peek(key)`
@@ -107,6 +108,12 @@ console.log(cache.get(a)) // prints: 'this is b'
in the cache, in order of recent-ness. (Ie, more recently used
items are iterated over first.)
+* `rforEach(function(value,key,cache), [thisp])`
+
+ The same as `cache.forEach(...)` but items are iterated over in
+ reverse order. (ie, less recently used items are iterated over
+ first.)
+
* `keys()`
Return an array of the keys in the cache.
@@ -115,7 +122,7 @@ console.log(cache.get(a)) // prints: 'this is b'
Return an array of the values in the cache.
-* `length()`
+* `length`
Return total length of objects in cache taking into account
`length` options function.
@@ -135,3 +142,7 @@ console.log(cache.get(a)) // prints: 'this is b'
Loads another cache entries array, obtained with `sourceCache.dump()`,
into the cache. The destination cache is reset before loading new entries
+
+* `prune()`
+
+ Manually iterates over the entire cache proactively pruning old entries
diff --git a/node_modules/lru-cache/lib/lru-cache.js b/node_modules/lru-cache/lib/lru-cache.js
index 2bbe653be..e98ef78a5 100644
--- a/node_modules/lru-cache/lib/lru-cache.js
+++ b/node_modules/lru-cache/lib/lru-cache.js
@@ -1,225 +1,353 @@
-;(function () { // closure for web browsers
-
-if (typeof module === 'object' && module.exports) {
- module.exports = LRUCache
+module.exports = LRUCache
+
+// This will be a proper iterable 'Map' in engines that support it,
+// or a fakey-fake PseudoMap in older versions.
+var Map = require('pseudomap')
+var util = require('util')
+
+// A linked list to keep track of recently-used-ness
+var Yallist = require('yallist')
+
+// use symbols if possible, otherwise just _props
+var symbols = {}
+var hasSymbol = typeof Symbol === 'function'
+var makeSymbol
+/* istanbul ignore if */
+if (hasSymbol) {
+ makeSymbol = function (key) {
+ return Symbol.for(key)
+ }
} else {
- // just set the global for non-node platforms.
- this.LRUCache = LRUCache
+ makeSymbol = function (key) {
+ return '_' + key
+ }
}
-function hOP (obj, key) {
- return Object.prototype.hasOwnProperty.call(obj, key)
+function priv (obj, key, val) {
+ var sym
+ if (symbols[key]) {
+ sym = symbols[key]
+ } else {
+ sym = makeSymbol(key)
+ symbols[key] = sym
+ }
+ if (arguments.length === 2) {
+ return obj[sym]
+ } else {
+ obj[sym] = val
+ return val
+ }
}
function naiveLength () { return 1 }
-var didTypeWarning = false
-function typeCheckKey(key) {
- if (!didTypeWarning && typeof key !== 'string' && typeof key !== 'number') {
- didTypeWarning = true
- console.error(new TypeError("LRU: key must be a string or number. Almost certainly a bug! " + typeof key).stack)
- }
-}
-
+// lruList is a yallist where the head is the youngest
+// item, and the tail is the oldest. the list contains the Hit
+// objects as the entries.
+// Each Hit object has a reference to its Yallist.Node. This
+// never changes.
+//
+// cache is a Map (or PseudoMap) that matches the keys to
+// the Yallist.Node object.
function LRUCache (options) {
- if (!(this instanceof LRUCache))
+ if (!(this instanceof LRUCache)) {
return new LRUCache(options)
+ }
- if (typeof options === 'number')
+ if (typeof options === 'number') {
options = { max: options }
+ }
- if (!options)
+ if (!options) {
options = {}
+ }
- this._max = options.max
+ var max = priv(this, 'max', options.max)
// Kind of weird to have a default max of Infinity, but oh well.
- if (!this._max || !(typeof this._max === "number") || this._max <= 0 )
- this._max = Infinity
+ if (!max ||
+ !(typeof max === 'number') ||
+ max <= 0) {
+ priv(this, 'max', Infinity)
+ }
- this._lengthCalculator = options.length || naiveLength
- if (typeof this._lengthCalculator !== "function")
- this._lengthCalculator = naiveLength
+ var lc = options.length || naiveLength
+ if (typeof lc !== 'function') {
+ lc = naiveLength
+ }
+ priv(this, 'lengthCalculator', lc)
- this._allowStale = options.stale || false
- this._maxAge = options.maxAge || null
- this._dispose = options.dispose
+ priv(this, 'allowStale', options.stale || false)
+ priv(this, 'maxAge', options.maxAge || 0)
+ priv(this, 'dispose', options.dispose)
this.reset()
}
// resize the cache when the max changes.
-Object.defineProperty(LRUCache.prototype, "max",
- { set : function (mL) {
- if (!mL || !(typeof mL === "number") || mL <= 0 ) mL = Infinity
- this._max = mL
- if (this._length > this._max) trim(this)
+Object.defineProperty(LRUCache.prototype, 'max', {
+ set: function (mL) {
+ if (!mL || !(typeof mL === 'number') || mL <= 0) {
+ mL = Infinity
}
- , get : function () { return this._max }
- , enumerable : true
- })
+ priv(this, 'max', mL)
+ trim(this)
+ },
+ get: function () {
+ return priv(this, 'max')
+ },
+ enumerable: true
+})
+
+Object.defineProperty(LRUCache.prototype, 'allowStale', {
+ set: function (allowStale) {
+ priv(this, 'allowStale', !!allowStale)
+ },
+ get: function () {
+ return priv(this, 'allowStale')
+ },
+ enumerable: true
+})
+
+Object.defineProperty(LRUCache.prototype, 'maxAge', {
+ set: function (mA) {
+ if (!mA || !(typeof mA === 'number') || mA < 0) {
+ mA = 0
+ }
+ priv(this, 'maxAge', mA)
+ trim(this)
+ },
+ get: function () {
+ return priv(this, 'maxAge')
+ },
+ enumerable: true
+})
// resize the cache when the lengthCalculator changes.
-Object.defineProperty(LRUCache.prototype, "lengthCalculator",
- { set : function (lC) {
- if (typeof lC !== "function") {
- this._lengthCalculator = naiveLength
- this._length = this._itemCount
- for (var key in this._cache) {
- this._cache[key].length = 1
- }
- } else {
- this._lengthCalculator = lC
- this._length = 0
- for (var key in this._cache) {
- this._cache[key].length = this._lengthCalculator(this._cache[key].value)
- this._length += this._cache[key].length
- }
- }
-
- if (this._length > this._max) trim(this)
+Object.defineProperty(LRUCache.prototype, 'lengthCalculator', {
+ set: function (lC) {
+ if (typeof lC !== 'function') {
+ lC = naiveLength
}
- , get : function () { return this._lengthCalculator }
- , enumerable : true
- })
-
-Object.defineProperty(LRUCache.prototype, "length",
- { get : function () { return this._length }
- , enumerable : true
- })
-
+ if (lC !== priv(this, 'lengthCalculator')) {
+ priv(this, 'lengthCalculator', lC)
+ priv(this, 'length', 0)
+ priv(this, 'lruList').forEach(function (hit) {
+ hit.length = priv(this, 'lengthCalculator').call(this, hit.value, hit.key)
+ priv(this, 'length', priv(this, 'length') + hit.length)
+ }, this)
+ }
+ trim(this)
+ },
+ get: function () { return priv(this, 'lengthCalculator') },
+ enumerable: true
+})
+
+Object.defineProperty(LRUCache.prototype, 'length', {
+ get: function () { return priv(this, 'length') },
+ enumerable: true
+})
+
+Object.defineProperty(LRUCache.prototype, 'itemCount', {
+ get: function () { return priv(this, 'lruList').length },
+ enumerable: true
+})
+
+LRUCache.prototype.rforEach = function (fn, thisp) {
+ thisp = thisp || this
+ for (var walker = priv(this, 'lruList').tail; walker !== null;) {
+ var prev = walker.prev
+ forEachStep(this, fn, walker, thisp)
+ walker = prev
+ }
+}
-Object.defineProperty(LRUCache.prototype, "itemCount",
- { get : function () { return this._itemCount }
- , enumerable : true
- })
+function forEachStep (self, fn, node, thisp) {
+ var hit = node.value
+ if (isStale(self, hit)) {
+ del(self, node)
+ if (!priv(self, 'allowStale')) {
+ hit = undefined
+ }
+ }
+ if (hit) {
+ fn.call(thisp, hit.value, hit.key, self)
+ }
+}
LRUCache.prototype.forEach = function (fn, thisp) {
thisp = thisp || this
- var i = 0
- var itemCount = this._itemCount
-
- for (var k = this._mru - 1; k >= 0 && i < itemCount; k--) if (this._lruList[k]) {
- i++
- var hit = this._lruList[k]
- if (isStale(this, hit)) {
- del(this, hit)
- if (!this._allowStale) hit = undefined
- }
- if (hit) {
- fn.call(thisp, hit.value, hit.key, this)
- }
+ for (var walker = priv(this, 'lruList').head; walker !== null;) {
+ var next = walker.next
+ forEachStep(this, fn, walker, thisp)
+ walker = next
}
}
LRUCache.prototype.keys = function () {
- var keys = new Array(this._itemCount)
- var i = 0
- for (var k = this._mru - 1; k >= 0 && i < this._itemCount; k--) if (this._lruList[k]) {
- var hit = this._lruList[k]
- keys[i++] = hit.key
- }
- return keys
+ return priv(this, 'lruList').toArray().map(function (k) {
+ return k.key
+ }, this)
}
LRUCache.prototype.values = function () {
- var values = new Array(this._itemCount)
- var i = 0
- for (var k = this._mru - 1; k >= 0 && i < this._itemCount; k--) if (this._lruList[k]) {
- var hit = this._lruList[k]
- values[i++] = hit.value
- }
- return values
+ return priv(this, 'lruList').toArray().map(function (k) {
+ return k.value
+ }, this)
}
LRUCache.prototype.reset = function () {
- if (this._dispose && this._cache) {
- for (var k in this._cache) {
- this._dispose(k, this._cache[k].value)
- }
+ if (priv(this, 'dispose') &&
+ priv(this, 'lruList') &&
+ priv(this, 'lruList').length) {
+ priv(this, 'lruList').forEach(function (hit) {
+ priv(this, 'dispose').call(this, hit.key, hit.value)
+ }, this)
}
- this._cache = Object.create(null) // hash of items by key
- this._lruList = Object.create(null) // list of items in order of use recency
- this._mru = 0 // most recently used
- this._lru = 0 // least recently used
- this._length = 0 // number of items in the list
- this._itemCount = 0
+ priv(this, 'cache', new Map()) // hash of items by key
+ priv(this, 'lruList', new Yallist()) // list of items in order of use recency
+ priv(this, 'length', 0) // length of items in the list
}
LRUCache.prototype.dump = function () {
- var arr = []
- var i = 0
-
- for (var k = this._mru - 1; k >= 0 && i < this._itemCount; k--) if (this._lruList[k]) {
- var hit = this._lruList[k]
+ return priv(this, 'lruList').map(function (hit) {
if (!isStale(this, hit)) {
- //Do not store staled hits
- ++i
- arr.push({
+ return {
k: hit.key,
v: hit.value,
e: hit.now + (hit.maxAge || 0)
- });
+ }
}
- }
- //arr has the most read first
- return arr
+ }, this).toArray().filter(function (h) {
+ return h
+ })
}
LRUCache.prototype.dumpLru = function () {
- return this._lruList
+ return priv(this, 'lruList')
+}
+
+LRUCache.prototype.inspect = function (n, opts) {
+ var str = 'LRUCache {'
+ var extras = false
+
+ var as = priv(this, 'allowStale')
+ if (as) {
+ str += '\n allowStale: true'
+ extras = true
+ }
+
+ var max = priv(this, 'max')
+ if (max && max !== Infinity) {
+ if (extras) {
+ str += ','
+ }
+ str += '\n max: ' + util.inspect(max, opts)
+ extras = true
+ }
+
+ var maxAge = priv(this, 'maxAge')
+ if (maxAge) {
+ if (extras) {
+ str += ','
+ }
+ str += '\n maxAge: ' + util.inspect(maxAge, opts)
+ extras = true
+ }
+
+ var lc = priv(this, 'lengthCalculator')
+ if (lc && lc !== naiveLength) {
+ if (extras) {
+ str += ','
+ }
+ str += '\n length: ' + util.inspect(priv(this, 'length'), opts)
+ extras = true
+ }
+
+ var didFirst = false
+ priv(this, 'lruList').forEach(function (item) {
+ if (didFirst) {
+ str += ',\n '
+ } else {
+ if (extras) {
+ str += ',\n'
+ }
+ didFirst = true
+ str += '\n '
+ }
+ var key = util.inspect(item.key).split('\n').join('\n ')
+ var val = { value: item.value }
+ if (item.maxAge !== maxAge) {
+ val.maxAge = item.maxAge
+ }
+ if (lc !== naiveLength) {
+ val.length = item.length
+ }
+ if (isStale(this, item)) {
+ val.stale = true
+ }
+
+ val = util.inspect(val, opts).split('\n').join('\n ')
+ str += key + ' => ' + val
+ })
+
+ if (didFirst || extras) {
+ str += '\n'
+ }
+ str += '}'
+
+ return str
}
LRUCache.prototype.set = function (key, value, maxAge) {
- maxAge = maxAge || this._maxAge
- typeCheckKey(key)
+ maxAge = maxAge || priv(this, 'maxAge')
var now = maxAge ? Date.now() : 0
- var len = this._lengthCalculator(value)
+ var len = priv(this, 'lengthCalculator').call(this, value, key)
- if (hOP(this._cache, key)) {
- if (len > this._max) {
- del(this, this._cache[key])
+ if (priv(this, 'cache').has(key)) {
+ if (len > priv(this, 'max')) {
+ del(this, priv(this, 'cache').get(key))
return false
}
- // dispose of the old one before overwriting
- if (this._dispose)
- this._dispose(key, this._cache[key].value)
-
- this._cache[key].now = now
- this._cache[key].maxAge = maxAge
- this._cache[key].value = value
- this._length += (len - this._cache[key].length)
- this._cache[key].length = len
- this.get(key)
- if (this._length > this._max)
- trim(this)
+ var node = priv(this, 'cache').get(key)
+ var item = node.value
+
+ // dispose of the old one before overwriting
+ if (priv(this, 'dispose')) {
+ priv(this, 'dispose').call(this, key, item.value)
+ }
+ item.now = now
+ item.maxAge = maxAge
+ item.value = value
+ priv(this, 'length', priv(this, 'length') + (len - item.length))
+ item.length = len
+ this.get(key)
+ trim(this)
return true
}
- var hit = new Entry(key, value, this._mru++, len, now, maxAge)
+ var hit = new Entry(key, value, len, now, maxAge)
// oversized objects fall out of cache automatically.
- if (hit.length > this._max) {
- if (this._dispose) this._dispose(key, value)
+ if (hit.length > priv(this, 'max')) {
+ if (priv(this, 'dispose')) {
+ priv(this, 'dispose').call(this, key, value)
+ }
return false
}
- this._length += hit.length
- this._lruList[hit.lu] = this._cache[key] = hit
- this._itemCount ++
-
- if (this._length > this._max)
- trim(this)
-
+ priv(this, 'length', priv(this, 'length') + hit.length)
+ priv(this, 'lruList').unshift(hit)
+ priv(this, 'cache').set(key, priv(this, 'lruList').head)
+ trim(this)
return true
}
LRUCache.prototype.has = function (key) {
- typeCheckKey(key)
- if (!hOP(this._cache, key)) return false
- var hit = this._cache[key]
+ if (!priv(this, 'cache').has(key)) return false
+ var hit = priv(this, 'cache').get(key).value
if (isStale(this, hit)) {
return false
}
@@ -227,108 +355,115 @@ LRUCache.prototype.has = function (key) {
}
LRUCache.prototype.get = function (key) {
- typeCheckKey(key)
return get(this, key, true)
}
LRUCache.prototype.peek = function (key) {
- typeCheckKey(key)
return get(this, key, false)
}
LRUCache.prototype.pop = function () {
- var hit = this._lruList[this._lru]
- del(this, hit)
- return hit || null
+ var node = priv(this, 'lruList').tail
+ if (!node) return null
+ del(this, node)
+ return node.value
}
LRUCache.prototype.del = function (key) {
- typeCheckKey(key)
- del(this, this._cache[key])
+ del(this, priv(this, 'cache').get(key))
}
LRUCache.prototype.load = function (arr) {
- //reset the cache
- this.reset();
+ // reset the cache
+ this.reset()
var now = Date.now()
- //A previous serialized cache has the most recent items first
- for (var l = arr.length - 1; l >= 0; l-- ) {
+ // A previous serialized cache has the most recent items first
+ for (var l = arr.length - 1; l >= 0; l--) {
var hit = arr[l]
- typeCheckKey(hit.k)
var expiresAt = hit.e || 0
if (expiresAt === 0) {
- //the item was created without expiration in a non aged cache
+ // the item was created without expiration in a non aged cache
this.set(hit.k, hit.v)
} else {
var maxAge = expiresAt - now
- //dont add already expired items
- if (maxAge > 0) this.set(hit.k, hit.v, maxAge)
+ // dont add already expired items
+ if (maxAge > 0) {
+ this.set(hit.k, hit.v, maxAge)
+ }
}
}
}
+LRUCache.prototype.prune = function () {
+ var self = this
+ priv(this, 'cache').forEach(function (value, key) {
+ get(self, key, false)
+ })
+}
+
function get (self, key, doUse) {
- typeCheckKey(key)
- var hit = self._cache[key]
- if (hit) {
+ var node = priv(self, 'cache').get(key)
+ if (node) {
+ var hit = node.value
if (isStale(self, hit)) {
- del(self, hit)
- if (!self._allowStale) hit = undefined
+ del(self, node)
+ if (!priv(self, 'allowStale')) hit = undefined
} else {
- if (doUse) use(self, hit)
+ if (doUse) {
+ priv(self, 'lruList').unshiftNode(node)
+ }
}
if (hit) hit = hit.value
}
return hit
}
-function isStale(self, hit) {
- if (!hit || (!hit.maxAge && !self._maxAge)) return false
- var stale = false;
+function isStale (self, hit) {
+ if (!hit || (!hit.maxAge && !priv(self, 'maxAge'))) {
+ return false
+ }
+ var stale = false
var diff = Date.now() - hit.now
if (hit.maxAge) {
stale = diff > hit.maxAge
} else {
- stale = self._maxAge && (diff > self._maxAge)
+ stale = priv(self, 'maxAge') && (diff > priv(self, 'maxAge'))
}
- return stale;
-}
-
-function use (self, hit) {
- shiftLU(self, hit)
- hit.lu = self._mru ++
- self._lruList[hit.lu] = hit
+ return stale
}
function trim (self) {
- while (self._lru < self._mru && self._length > self._max)
- del(self, self._lruList[self._lru])
-}
-
-function shiftLU (self, hit) {
- delete self._lruList[ hit.lu ]
- while (self._lru < self._mru && !self._lruList[self._lru]) self._lru ++
+ if (priv(self, 'length') > priv(self, 'max')) {
+ for (var walker = priv(self, 'lruList').tail;
+ priv(self, 'length') > priv(self, 'max') && walker !== null;) {
+ // We know that we're about to delete this one, and also
+ // what the next least recently used key will be, so just
+ // go ahead and set it now.
+ var prev = walker.prev
+ del(self, walker)
+ walker = prev
+ }
+ }
}
-function del (self, hit) {
- if (hit) {
- if (self._dispose) self._dispose(hit.key, hit.value)
- self._length -= hit.length
- self._itemCount --
- delete self._cache[ hit.key ]
- shiftLU(self, hit)
+function del (self, node) {
+ if (node) {
+ var hit = node.value
+ if (priv(self, 'dispose')) {
+ priv(self, 'dispose').call(this, hit.key, hit.value)
+ }
+ priv(self, 'length', priv(self, 'length') - hit.length)
+ priv(self, 'cache').delete(hit.key)
+ priv(self, 'lruList').removeNode(node)
}
}
// classy, since V8 prefers predictable objects.
-function Entry (key, value, lu, length, now, maxAge) {
+function Entry (key, value, length, now, maxAge) {
this.key = key
this.value = value
- this.lu = lu
this.length = length
this.now = now
- if (maxAge) this.maxAge = maxAge
+ this.maxAge = maxAge || 0
}
-
-})()
diff --git a/node_modules/lru-cache/package.json b/node_modules/lru-cache/package.json
index 189e33da6..6efcef064 100644
--- a/node_modules/lru-cache/package.json
+++ b/node_modules/lru-cache/package.json
@@ -1,7 +1,7 @@
{
"name": "lru-cache",
"description": "A cache object that deletes the least-recently-used items.",
- "version": "2.7.3",
+ "version": "4.0.2",
"author": "Isaac Z. Schlueter <i@izs.me>",
"keywords": [
"mru",
@@ -9,13 +9,21 @@
"cache"
],
"scripts": {
- "test": "tap test --gc"
+ "test": "tap test --100",
+ "posttest": "standard test/*.js lib/*.js"
},
"main": "lib/lru-cache.js",
"repository": "git://github.com/isaacs/node-lru-cache.git",
"devDependencies": {
- "tap": "^1.2.0",
- "weak": ""
+ "standard": "^5.4.1",
+ "tap": "^8.0.1"
},
- "license": "ISC"
+ "license": "ISC",
+ "dependencies": {
+ "pseudomap": "^1.0.1",
+ "yallist": "^2.0.0"
+ },
+ "files": [
+ "lib/lru-cache.js"
+ ]
}
diff --git a/node_modules/lru-cache/test/basic.js b/node_modules/lru-cache/test/basic.js
deleted file mode 100644
index b47225f10..000000000
--- a/node_modules/lru-cache/test/basic.js
+++ /dev/null
@@ -1,396 +0,0 @@
-var test = require("tap").test
- , LRU = require("../")
-
-test("basic", function (t) {
- var cache = new LRU({max: 10})
- cache.set("key", "value")
- t.equal(cache.get("key"), "value")
- t.equal(cache.get("nada"), undefined)
- t.equal(cache.length, 1)
- t.equal(cache.max, 10)
- t.end()
-})
-
-test("least recently set", function (t) {
- var cache = new LRU(2)
- cache.set("a", "A")
- cache.set("b", "B")
- cache.set("c", "C")
- t.equal(cache.get("c"), "C")
- t.equal(cache.get("b"), "B")
- t.equal(cache.get("a"), undefined)
- t.end()
-})
-
-test("lru recently gotten", function (t) {
- var cache = new LRU(2)
- cache.set("a", "A")
- cache.set("b", "B")
- cache.get("a")
- cache.set("c", "C")
- t.equal(cache.get("c"), "C")
- t.equal(cache.get("b"), undefined)
- t.equal(cache.get("a"), "A")
- t.end()
-})
-
-test("del", function (t) {
- var cache = new LRU(2)
- cache.set("a", "A")
- cache.del("a")
- t.equal(cache.get("a"), undefined)
- t.end()
-})
-
-test("max", function (t) {
- var cache = new LRU(3)
-
- // test changing the max, verify that the LRU items get dropped.
- cache.max = 100
- for (var i = 0; i < 100; i ++) cache.set(i, i)
- t.equal(cache.length, 100)
- for (var i = 0; i < 100; i ++) {
- t.equal(cache.get(i), i)
- }
- cache.max = 3
- t.equal(cache.length, 3)
- for (var i = 0; i < 97; i ++) {
- t.equal(cache.get(i), undefined)
- }
- for (var i = 98; i < 100; i ++) {
- t.equal(cache.get(i), i)
- }
-
- // now remove the max restriction, and try again.
- cache.max = "hello"
- for (var i = 0; i < 100; i ++) cache.set(i, i)
- t.equal(cache.length, 100)
- for (var i = 0; i < 100; i ++) {
- t.equal(cache.get(i), i)
- }
- // should trigger an immediate resize
- cache.max = 3
- t.equal(cache.length, 3)
- for (var i = 0; i < 97; i ++) {
- t.equal(cache.get(i), undefined)
- }
- for (var i = 98; i < 100; i ++) {
- t.equal(cache.get(i), i)
- }
- t.end()
-})
-
-test("reset", function (t) {
- var cache = new LRU(10)
- cache.set("a", "A")
- cache.set("b", "B")
- cache.reset()
- t.equal(cache.length, 0)
- t.equal(cache.max, 10)
- t.equal(cache.get("a"), undefined)
- t.equal(cache.get("b"), undefined)
- t.end()
-})
-
-
-test("basic with weighed length", function (t) {
- var cache = new LRU({
- max: 100,
- length: function (item) { return item.size }
- })
- cache.set("key", {val: "value", size: 50})
- t.equal(cache.get("key").val, "value")
- t.equal(cache.get("nada"), undefined)
- t.equal(cache.lengthCalculator(cache.get("key")), 50)
- t.equal(cache.length, 50)
- t.equal(cache.max, 100)
- t.end()
-})
-
-
-test("weighed length item too large", function (t) {
- var cache = new LRU({
- max: 10,
- length: function (item) { return item.size }
- })
- t.equal(cache.max, 10)
-
- // should fall out immediately
- cache.set("key", {val: "value", size: 50})
-
- t.equal(cache.length, 0)
- t.equal(cache.get("key"), undefined)
- t.end()
-})
-
-test("least recently set with weighed length", function (t) {
- var cache = new LRU({
- max:8,
- length: function (item) { return item.length }
- })
- cache.set("a", "A")
- cache.set("b", "BB")
- cache.set("c", "CCC")
- cache.set("d", "DDDD")
- t.equal(cache.get("d"), "DDDD")
- t.equal(cache.get("c"), "CCC")
- t.equal(cache.get("b"), undefined)
- t.equal(cache.get("a"), undefined)
- t.end()
-})
-
-test("lru recently gotten with weighed length", function (t) {
- var cache = new LRU({
- max: 8,
- length: function (item) { return item.length }
- })
- cache.set("a", "A")
- cache.set("b", "BB")
- cache.set("c", "CCC")
- cache.get("a")
- cache.get("b")
- cache.set("d", "DDDD")
- t.equal(cache.get("c"), undefined)
- t.equal(cache.get("d"), "DDDD")
- t.equal(cache.get("b"), "BB")
- t.equal(cache.get("a"), "A")
- t.end()
-})
-
-test("lru recently updated with weighed length", function (t) {
- var cache = new LRU({
- max: 8,
- length: function (item) { return item.length }
- })
- cache.set("a", "A")
- cache.set("b", "BB")
- cache.set("c", "CCC")
- t.equal(cache.length, 6) //CCC BB A
- cache.set("a", "+A")
- t.equal(cache.length, 7) //+A CCC BB
- cache.set("b", "++BB")
- t.equal(cache.length, 6) //++BB +A
- t.equal(cache.get("c"), undefined)
-
- cache.set("c", "oversized")
- t.equal(cache.length, 6) //++BB +A
- t.equal(cache.get("c"), undefined)
-
- cache.set("a", "oversized")
- t.equal(cache.length, 4) //++BB
- t.equal(cache.get("a"), undefined)
- t.equal(cache.get("b"), "++BB")
- t.end()
-})
-
-test("set returns proper booleans", function(t) {
- var cache = new LRU({
- max: 5,
- length: function (item) { return item.length }
- })
-
- t.equal(cache.set("a", "A"), true)
-
- // should return false for max exceeded
- t.equal(cache.set("b", "donuts"), false)
-
- t.equal(cache.set("b", "B"), true)
- t.equal(cache.set("c", "CCCC"), true)
- t.end()
-})
-
-test("drop the old items", function(t) {
- var cache = new LRU({
- max: 5,
- maxAge: 50
- })
-
- cache.set("a", "A")
-
- setTimeout(function () {
- cache.set("b", "b")
- t.equal(cache.get("a"), "A")
- }, 25)
-
- setTimeout(function () {
- cache.set("c", "C")
- // timed out
- t.notOk(cache.get("a"))
- }, 60 + 25)
-
- setTimeout(function () {
- t.notOk(cache.get("b"))
- t.equal(cache.get("c"), "C")
- }, 90)
-
- setTimeout(function () {
- t.notOk(cache.get("c"))
- t.end()
- }, 155)
-})
-
-test("individual item can have it's own maxAge", function(t) {
- var cache = new LRU({
- max: 5,
- maxAge: 50
- })
-
- cache.set("a", "A", 20)
- setTimeout(function () {
- t.notOk(cache.get("a"))
- t.end()
- }, 25)
-})
-
-test("individual item can have it's own maxAge > cache's", function(t) {
- var cache = new LRU({
- max: 5,
- maxAge: 20
- })
-
- cache.set("a", "A", 50)
- setTimeout(function () {
- t.equal(cache.get("a"), "A")
- t.end()
- }, 25)
-})
-
-test("disposal function", function(t) {
- var disposed = false
- var cache = new LRU({
- max: 1,
- dispose: function (k, n) {
- disposed = n
- }
- })
-
- cache.set(1, 1)
- cache.set(2, 2)
- t.equal(disposed, 1)
- cache.set(3, 3)
- t.equal(disposed, 2)
- cache.reset()
- t.equal(disposed, 3)
- t.end()
-})
-
-test("disposal function on too big of item", function(t) {
- var disposed = false
- var cache = new LRU({
- max: 1,
- length: function (k) {
- return k.length
- },
- dispose: function (k, n) {
- disposed = n
- }
- })
- var obj = [ 1, 2 ]
-
- t.equal(disposed, false)
- cache.set("obj", obj)
- t.equal(disposed, obj)
- t.end()
-})
-
-test("has()", function(t) {
- var cache = new LRU({
- max: 1,
- maxAge: 10
- })
-
- cache.set('foo', 'bar')
- t.equal(cache.has('foo'), true)
- cache.set('blu', 'baz')
- t.equal(cache.has('foo'), false)
- t.equal(cache.has('blu'), true)
- setTimeout(function() {
- t.equal(cache.has('blu'), false)
- t.end()
- }, 15)
-})
-
-test("stale", function(t) {
- var cache = new LRU({
- maxAge: 10,
- stale: true
- })
-
- cache.set('foo', 'bar')
- t.equal(cache.get('foo'), 'bar')
- t.equal(cache.has('foo'), true)
- setTimeout(function() {
- t.equal(cache.has('foo'), false)
- t.equal(cache.get('foo'), 'bar')
- t.equal(cache.get('foo'), undefined)
- t.end()
- }, 15)
-})
-
-test("lru update via set", function(t) {
- var cache = LRU({ max: 2 });
-
- cache.set('foo', 1);
- cache.set('bar', 2);
- cache.del('bar');
- cache.set('baz', 3);
- cache.set('qux', 4);
-
- t.equal(cache.get('foo'), undefined)
- t.equal(cache.get('bar'), undefined)
- t.equal(cache.get('baz'), 3)
- t.equal(cache.get('qux'), 4)
- t.end()
-})
-
-test("least recently set w/ peek", function (t) {
- var cache = new LRU(2)
- cache.set("a", "A")
- cache.set("b", "B")
- t.equal(cache.peek("a"), "A")
- cache.set("c", "C")
- t.equal(cache.get("c"), "C")
- t.equal(cache.get("b"), "B")
- t.equal(cache.get("a"), undefined)
- t.end()
-})
-
-test("pop the least used item", function (t) {
- var cache = new LRU(3)
- , last
-
- cache.set("a", "A")
- cache.set("b", "B")
- cache.set("c", "C")
-
- t.equal(cache.length, 3)
- t.equal(cache.max, 3)
-
- // Ensure we pop a, c, b
- cache.get("b", "B")
-
- last = cache.pop()
- t.equal(last.key, "a")
- t.equal(last.value, "A")
- t.equal(cache.length, 2)
- t.equal(cache.max, 3)
-
- last = cache.pop()
- t.equal(last.key, "c")
- t.equal(last.value, "C")
- t.equal(cache.length, 1)
- t.equal(cache.max, 3)
-
- last = cache.pop()
- t.equal(last.key, "b")
- t.equal(last.value, "B")
- t.equal(cache.length, 0)
- t.equal(cache.max, 3)
-
- last = cache.pop()
- t.equal(last, null)
- t.equal(cache.length, 0)
- t.equal(cache.max, 3)
-
- t.end()
-})
diff --git a/node_modules/lru-cache/test/foreach.js b/node_modules/lru-cache/test/foreach.js
deleted file mode 100644
index 4190417cb..000000000
--- a/node_modules/lru-cache/test/foreach.js
+++ /dev/null
@@ -1,120 +0,0 @@
-var test = require('tap').test
-var LRU = require('../')
-
-test('forEach', function (t) {
- var l = new LRU(5)
- for (var i = 0; i < 10; i ++) {
- l.set(i.toString(), i.toString(2))
- }
-
- var i = 9
- l.forEach(function (val, key, cache) {
- t.equal(cache, l)
- t.equal(key, i.toString())
- t.equal(val, i.toString(2))
- i -= 1
- })
-
- // get in order of most recently used
- l.get(6)
- l.get(8)
-
- var order = [ 8, 6, 9, 7, 5 ]
- var i = 0
-
- l.forEach(function (val, key, cache) {
- var j = order[i ++]
- t.equal(cache, l)
- t.equal(key, j.toString())
- t.equal(val, j.toString(2))
- })
- t.equal(i, order.length);
-
- t.end()
-})
-
-test('keys() and values()', function (t) {
- var l = new LRU(5)
- for (var i = 0; i < 10; i ++) {
- l.set(i.toString(), i.toString(2))
- }
-
- t.similar(l.keys(), ['9', '8', '7', '6', '5'])
- t.similar(l.values(), ['1001', '1000', '111', '110', '101'])
-
- // get in order of most recently used
- l.get(6)
- l.get(8)
-
- t.similar(l.keys(), ['8', '6', '9', '7', '5'])
- t.similar(l.values(), ['1000', '110', '1001', '111', '101'])
-
- t.end()
-})
-
-test('all entries are iterated over', function(t) {
- var l = new LRU(5)
- for (var i = 0; i < 10; i ++) {
- l.set(i.toString(), i.toString(2))
- }
-
- var i = 0
- l.forEach(function (val, key, cache) {
- if (i > 0) {
- cache.del(key)
- }
- i += 1
- })
-
- t.equal(i, 5)
- t.equal(l.keys().length, 1)
-
- t.end()
-})
-
-test('all stale entries are removed', function(t) {
- var l = new LRU({ max: 5, maxAge: -5, stale: true })
- for (var i = 0; i < 10; i ++) {
- l.set(i.toString(), i.toString(2))
- }
-
- var i = 0
- l.forEach(function () {
- i += 1
- })
-
- t.equal(i, 5)
- t.equal(l.keys().length, 0)
-
- t.end()
-})
-
-test('expires', function (t) {
- var l = new LRU({
- max: 10,
- maxAge: 50
- })
- for (var i = 0; i < 10; i++) {
- l.set(i.toString(), i.toString(2), ((i % 2) ? 25 : undefined))
- }
-
- var i = 0
- var order = [ 8, 6, 4, 2, 0 ]
- setTimeout(function () {
- l.forEach(function (val, key, cache) {
- var j = order[i++]
- t.equal(cache, l)
- t.equal(key, j.toString())
- t.equal(val, j.toString(2))
- })
- t.equal(i, order.length);
-
- setTimeout(function () {
- var count = 0;
- l.forEach(function (val, key, cache) { count++; })
- t.equal(0, count);
- t.end()
- }, 25)
-
- }, 26)
-})
diff --git a/node_modules/lru-cache/test/memory-leak.js b/node_modules/lru-cache/test/memory-leak.js
deleted file mode 100644
index b5912f6f1..000000000
--- a/node_modules/lru-cache/test/memory-leak.js
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/env node --expose_gc
-
-
-var weak = require('weak');
-var test = require('tap').test
-var LRU = require('../')
-var l = new LRU({ max: 10 })
-var refs = 0
-function X() {
- refs ++
- weak(this, deref)
-}
-
-function deref() {
- refs --
-}
-
-test('no leaks', function (t) {
- // fill up the cache
- for (var i = 0; i < 100; i++) {
- l.set(i, new X);
- // throw some gets in there, too.
- if (i % 2 === 0)
- l.get(i / 2)
- }
-
- gc()
-
- var start = process.memoryUsage()
-
- // capture the memory
- var startRefs = refs
-
- // do it again, but more
- for (var i = 0; i < 10000; i++) {
- l.set(i, new X);
- // throw some gets in there, too.
- if (i % 2 === 0)
- l.get(i / 2)
- }
-
- gc()
-
- var end = process.memoryUsage()
- t.equal(refs, startRefs, 'no leaky refs')
-
- console.error('start: %j\n' +
- 'end: %j', start, end);
- t.pass();
- t.end();
-})
diff --git a/node_modules/lru-cache/test/serialize.js b/node_modules/lru-cache/test/serialize.js
deleted file mode 100644
index 1094194a0..000000000
--- a/node_modules/lru-cache/test/serialize.js
+++ /dev/null
@@ -1,216 +0,0 @@
-var test = require('tap').test
-var LRU = require('../')
-
-test('dump', function (t) {
- var cache = new LRU()
-
- t.equal(cache.dump().length, 0, "nothing in dump for empty cache")
-
- cache.set("a", "A")
- cache.set("b", "B")
- t.deepEqual(cache.dump(), [
- { k: "b", v: "B", e: 0 },
- { k: "a", v: "A", e: 0 }
- ])
-
- cache.set("a", "A");
- t.deepEqual(cache.dump(), [
- { k: "a", v: "A", e: 0 },
- { k: "b", v: "B", e: 0 }
- ])
-
- cache.get("b");
- t.deepEqual(cache.dump(), [
- { k: "b", v: "B", e: 0 },
- { k: "a", v: "A", e: 0 }
- ])
-
- cache.del("a");
- t.deepEqual(cache.dump(), [
- { k: "b", v: "B", e: 0 }
- ])
-
- t.end()
-})
-
-test("do not dump stale items", function(t) {
- var cache = new LRU({
- max: 5,
- maxAge: 50
- })
-
- //expires at 50
- cache.set("a", "A")
-
- setTimeout(function () {
- //expires at 75
- cache.set("b", "B")
- var s = cache.dump()
- t.equal(s.length, 2)
- t.equal(s[0].k, "b")
- t.equal(s[1].k, "a")
- }, 25)
-
- setTimeout(function () {
- //expires at 110
- cache.set("c", "C")
- var s = cache.dump()
- t.equal(s.length, 2)
- t.equal(s[0].k, "c")
- t.equal(s[1].k, "b")
- }, 60)
-
- setTimeout(function () {
- //expires at 130
- cache.set("d", "D", 40)
- var s = cache.dump()
- t.equal(s.length, 2)
- t.equal(s[0].k, "d")
- t.equal(s[1].k, "c")
- }, 90)
-
- setTimeout(function () {
- var s = cache.dump()
- t.equal(s.length, 1)
- t.equal(s[0].k, "d")
- }, 120)
-
- setTimeout(function () {
- var s = cache.dump()
- t.deepEqual(s, [])
- t.end()
- }, 155)
-})
-
-test("load basic cache", function(t) {
- var cache = new LRU(),
- copy = new LRU()
-
- cache.set("a", "A")
- cache.set("b", "B")
-
- copy.load(cache.dump())
- t.deepEquals(cache.dump(), copy.dump())
-
- t.end()
-})
-
-
-test("load staled cache", function(t) {
- var cache = new LRU({maxAge: 50}),
- copy = new LRU({maxAge: 50}),
- arr
-
- //expires at 50
- cache.set("a", "A")
- setTimeout(function () {
- //expires at 80
- cache.set("b", "B")
- arr = cache.dump()
- t.equal(arr.length, 2)
- }, 30)
-
- setTimeout(function () {
- copy.load(arr)
- t.equal(copy.get("a"), undefined)
- t.equal(copy.get("b"), "B")
- }, 60)
-
- setTimeout(function () {
- t.equal(copy.get("b"), undefined)
- t.end()
- }, 90)
-})
-
-test("load to other size cache", function(t) {
- var cache = new LRU({max: 2}),
- copy = new LRU({max: 1})
-
- cache.set("a", "A")
- cache.set("b", "B")
-
- copy.load(cache.dump())
- t.equal(copy.get("a"), undefined)
- t.equal(copy.get("b"), "B")
-
- //update the last read from original cache
- cache.get("a")
- copy.load(cache.dump())
- t.equal(copy.get("a"), "A")
- t.equal(copy.get("b"), undefined)
-
- t.end()
-})
-
-
-test("load to other age cache", function(t) {
- var cache = new LRU({maxAge: 50}),
- aged = new LRU({maxAge: 100}),
- simple = new LRU(),
- arr,
- expired
-
- //created at 0
- //a would be valid till 0 + 50
- cache.set("a", "A")
- setTimeout(function () {
- //created at 20
- //b would be valid till 20 + 50
- cache.set("b", "B")
- //b would be valid till 20 + 70
- cache.set("c", "C", 70)
- arr = cache.dump()
- t.equal(arr.length, 3)
- }, 20)
-
- setTimeout(function () {
- t.equal(cache.get("a"), undefined)
- t.equal(cache.get("b"), "B")
- t.equal(cache.get("c"), "C")
-
- aged.load(arr)
- t.equal(aged.get("a"), undefined)
- t.equal(aged.get("b"), "B")
- t.equal(aged.get("c"), "C")
-
- simple.load(arr)
- t.equal(simple.get("a"), undefined)
- t.equal(simple.get("b"), "B")
- t.equal(simple.get("c"), "C")
- }, 60)
-
- setTimeout(function () {
- t.equal(cache.get("a"), undefined)
- t.equal(cache.get("b"), undefined)
- t.equal(cache.get("c"), "C")
-
- aged.load(arr)
- t.equal(aged.get("a"), undefined)
- t.equal(aged.get("b"), undefined)
- t.equal(aged.get("c"), "C")
-
- simple.load(arr)
- t.equal(simple.get("a"), undefined)
- t.equal(simple.get("b"), undefined)
- t.equal(simple.get("c"), "C")
- }, 80)
-
- setTimeout(function () {
- t.equal(cache.get("a"), undefined)
- t.equal(cache.get("b"), undefined)
- t.equal(cache.get("c"), undefined)
-
- aged.load(arr)
- t.equal(aged.get("a"), undefined)
- t.equal(aged.get("b"), undefined)
- t.equal(aged.get("c"), undefined)
-
- simple.load(arr)
- t.equal(simple.get("a"), undefined)
- t.equal(simple.get("b"), undefined)
- t.equal(simple.get("c"), undefined)
- t.end()
- }, 100)
-
-})
-
diff --git a/node_modules/mime/.npmignore b/node_modules/mime/.npmignore
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/mime/.npmignore
+++ /dev/null
diff --git a/node_modules/mime/LICENSE b/node_modules/mime/LICENSE
deleted file mode 100644
index 451fc4550..000000000
--- a/node_modules/mime/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2010 Benjamin Thomas, Robert Kieffer
-
-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.
diff --git a/node_modules/mime/README.md b/node_modules/mime/README.md
deleted file mode 100644
index 506fbe550..000000000
--- a/node_modules/mime/README.md
+++ /dev/null
@@ -1,90 +0,0 @@
-# mime
-
-Comprehensive MIME type mapping API based on mime-db module.
-
-## Install
-
-Install with [npm](http://github.com/isaacs/npm):
-
- npm install mime
-
-## Contributing / Testing
-
- npm run test
-
-## Command Line
-
- mime [path_string]
-
-E.g.
-
- > mime scripts/jquery.js
- application/javascript
-
-## API - Queries
-
-### mime.lookup(path)
-Get the mime type associated with a file, if no mime type is found `application/octet-stream` is returned. Performs a case-insensitive lookup using the extension in `path` (the substring after the last '/' or '.'). E.g.
-
-```js
-var mime = require('mime');
-
-mime.lookup('/path/to/file.txt'); // => 'text/plain'
-mime.lookup('file.txt'); // => 'text/plain'
-mime.lookup('.TXT'); // => 'text/plain'
-mime.lookup('htm'); // => 'text/html'
-```
-
-### mime.default_type
-Sets the mime type returned when `mime.lookup` fails to find the extension searched for. (Default is `application/octet-stream`.)
-
-### mime.extension(type)
-Get the default extension for `type`
-
-```js
-mime.extension('text/html'); // => 'html'
-mime.extension('application/octet-stream'); // => 'bin'
-```
-
-### mime.charsets.lookup()
-
-Map mime-type to charset
-
-```js
-mime.charsets.lookup('text/plain'); // => 'UTF-8'
-```
-
-(The logic for charset lookups is pretty rudimentary. Feel free to suggest improvements.)
-
-## API - Defining Custom Types
-
-Custom type mappings can be added on a per-project basis via the following APIs.
-
-### mime.define()
-
-Add custom mime/extension mappings
-
-```js
-mime.define({
- 'text/x-some-format': ['x-sf', 'x-sft', 'x-sfml'],
- 'application/x-my-type': ['x-mt', 'x-mtt'],
- // etc ...
-});
-
-mime.lookup('x-sft'); // => 'text/x-some-format'
-```
-
-The first entry in the extensions array is returned by `mime.extension()`. E.g.
-
-```js
-mime.extension('text/x-some-format'); // => 'x-sf'
-```
-
-### mime.load(filepath)
-
-Load mappings from an Apache ".types" format file
-
-```js
-mime.load('./my_project.types');
-```
-The .types file format is simple - See the `types` dir for examples.
diff --git a/node_modules/mime/build/build.js b/node_modules/mime/build/build.js
deleted file mode 100644
index ed5313e3c..000000000
--- a/node_modules/mime/build/build.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var db = require('mime-db');
-
-var mapByType = {};
-Object.keys(db).forEach(function(key) {
- var extensions = db[key].extensions;
- if (extensions) {
- mapByType[key] = extensions;
- }
-});
-
-console.log(JSON.stringify(mapByType));
diff --git a/node_modules/mime/build/test.js b/node_modules/mime/build/test.js
deleted file mode 100644
index 58b9ba7c8..000000000
--- a/node_modules/mime/build/test.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * Usage: node test.js
- */
-
-var mime = require('../mime');
-var assert = require('assert');
-var path = require('path');
-
-//
-// Test mime lookups
-//
-
-assert.equal('text/plain', mime.lookup('text.txt')); // normal file
-assert.equal('text/plain', mime.lookup('TEXT.TXT')); // uppercase
-assert.equal('text/plain', mime.lookup('dir/text.txt')); // dir + file
-assert.equal('text/plain', mime.lookup('.text.txt')); // hidden file
-assert.equal('text/plain', mime.lookup('.txt')); // nameless
-assert.equal('text/plain', mime.lookup('txt')); // extension-only
-assert.equal('text/plain', mime.lookup('/txt')); // extension-less ()
-assert.equal('text/plain', mime.lookup('\\txt')); // Windows, extension-less
-assert.equal('application/octet-stream', mime.lookup('text.nope')); // unrecognized
-assert.equal('fallback', mime.lookup('text.fallback', 'fallback')); // alternate default
-
-//
-// Test extensions
-//
-
-assert.equal('txt', mime.extension(mime.types.text));
-assert.equal('html', mime.extension(mime.types.htm));
-assert.equal('bin', mime.extension('application/octet-stream'));
-assert.equal('bin', mime.extension('application/octet-stream '));
-assert.equal('html', mime.extension(' text/html; charset=UTF-8'));
-assert.equal('html', mime.extension('text/html; charset=UTF-8 '));
-assert.equal('html', mime.extension('text/html; charset=UTF-8'));
-assert.equal('html', mime.extension('text/html ; charset=UTF-8'));
-assert.equal('html', mime.extension('text/html;charset=UTF-8'));
-assert.equal('html', mime.extension('text/Html;charset=UTF-8'));
-assert.equal(undefined, mime.extension('unrecognized'));
-
-//
-// Test node.types lookups
-//
-
-assert.equal('application/font-woff', mime.lookup('file.woff'));
-assert.equal('application/octet-stream', mime.lookup('file.buffer'));
-assert.equal('audio/mp4', mime.lookup('file.m4a'));
-assert.equal('font/opentype', mime.lookup('file.otf'));
-
-//
-// Test charsets
-//
-
-assert.equal('UTF-8', mime.charsets.lookup('text/plain'));
-assert.equal(undefined, mime.charsets.lookup(mime.types.js));
-assert.equal('fallback', mime.charsets.lookup('application/octet-stream', 'fallback'));
-
-console.log('\nAll tests passed');
diff --git a/node_modules/mime/cli.js b/node_modules/mime/cli.js
deleted file mode 100755
index 20b1ffeb2..000000000
--- a/node_modules/mime/cli.js
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env node
-
-var mime = require('./mime.js');
-var file = process.argv[2];
-var type = mime.lookup(file);
-
-process.stdout.write(type + '\n');
-
diff --git a/node_modules/mime/mime.js b/node_modules/mime/mime.js
deleted file mode 100644
index 341b6a5c4..000000000
--- a/node_modules/mime/mime.js
+++ /dev/null
@@ -1,108 +0,0 @@
-var path = require('path');
-var fs = require('fs');
-
-function Mime() {
- // Map of extension -> mime type
- this.types = Object.create(null);
-
- // Map of mime type -> extension
- this.extensions = Object.create(null);
-}
-
-/**
- * Define mimetype -> extension mappings. Each key is a mime-type that maps
- * to an array of extensions associated with the type. The first extension is
- * used as the default extension for the type.
- *
- * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']});
- *
- * @param map (Object) type definitions
- */
-Mime.prototype.define = function (map) {
- for (var type in map) {
- var exts = map[type];
- for (var i = 0; i < exts.length; i++) {
- if (process.env.DEBUG_MIME && this.types[exts]) {
- console.warn(this._loading.replace(/.*\//, ''), 'changes "' + exts[i] + '" extension type from ' +
- this.types[exts] + ' to ' + type);
- }
-
- this.types[exts[i]] = type;
- }
-
- // Default extension is the first one we encounter
- if (!this.extensions[type]) {
- this.extensions[type] = exts[0];
- }
- }
-};
-
-/**
- * Load an Apache2-style ".types" file
- *
- * This may be called multiple times (it's expected). Where files declare
- * overlapping types/extensions, the last file wins.
- *
- * @param file (String) path of file to load.
- */
-Mime.prototype.load = function(file) {
- this._loading = file;
- // Read file and split into lines
- var map = {},
- content = fs.readFileSync(file, 'ascii'),
- lines = content.split(/[\r\n]+/);
-
- lines.forEach(function(line) {
- // Clean up whitespace/comments, and split into fields
- var fields = line.replace(/\s*#.*|^\s*|\s*$/g, '').split(/\s+/);
- map[fields.shift()] = fields;
- });
-
- this.define(map);
-
- this._loading = null;
-};
-
-/**
- * Lookup a mime type based on extension
- */
-Mime.prototype.lookup = function(path, fallback) {
- var ext = path.replace(/.*[\.\/\\]/, '').toLowerCase();
-
- return this.types[ext] || fallback || this.default_type;
-};
-
-/**
- * Return file extension associated with a mime type
- */
-Mime.prototype.extension = function(mimeType) {
- var type = mimeType.match(/^\s*([^;\s]*)(?:;|\s|$)/)[1].toLowerCase();
- return this.extensions[type];
-};
-
-// Default instance
-var mime = new Mime();
-
-// Define built-in types
-mime.define(require('./types.json'));
-
-// Default type
-mime.default_type = mime.lookup('bin');
-
-//
-// Additional API specific to the default instance
-//
-
-mime.Mime = Mime;
-
-/**
- * Lookup a charset based on mime type.
- */
-mime.charsets = {
- lookup: function(mimeType, fallback) {
- // Assume text types are utf8
- return (/^text\//).test(mimeType) ? 'UTF-8' : fallback;
- }
-};
-
-module.exports = mime;
diff --git a/node_modules/mime/package.json b/node_modules/mime/package.json
deleted file mode 100644
index df917cea5..000000000
--- a/node_modules/mime/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "author": {
- "name": "Robert Kieffer",
- "url": "http://github.com/broofa",
- "email": "robert@broofa.com"
- },
- "scripts": {
- "test": "node test.js"
- },
- "bin": {
- "mime": "cli.js"
- },
- "contributors": [
- {
- "name": "Benjamin Thomas",
- "url": "http://github.com/bentomas",
- "email": "benjamin@benjaminthomas.org"
- }
- ],
- "description": "A comprehensive library for mime-type mapping",
- "licenses": [
- {
- "type": "MIT",
- "url": "https://raw.github.com/broofa/node-mime/master/LICENSE"
- }
- ],
- "dependencies": {},
- "devDependencies": {
- "mime-db": "^1.2.0"
- },
- "scripts": {
- "prepublish": "node build/build.js > types.json",
- "test": "node build/test.js"
- },
- "keywords": [
- "util",
- "mime"
- ],
- "main": "mime.js",
- "name": "mime",
- "repository": {
- "url": "https://github.com/broofa/node-mime",
- "type": "git"
- },
- "version": "1.3.4"
-}
diff --git a/node_modules/mime/types.json b/node_modules/mime/types.json
deleted file mode 100644
index c674b1c8f..000000000
--- a/node_modules/mime/types.json
+++ /dev/null
@@ -1 +0,0 @@
-{"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomsvc+xml":["atomsvc"],"application/ccxml+xml":["ccxml"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mdp"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/font-tdpfr":["pfr"],"application/font-woff":["woff"],"application/font-woff2":["woff2"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/java-archive":["jar"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/prs.cww":["cww"],"application/pskc+xml":["pskcxml"],"application/rdf+xml":["rdf"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/voicexml+xml":["vxml"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":["dmg"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["deb","udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-otf":["otf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-ttf":["ttf","ttc"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-install-instructions":["install"],"application/x-iso9660-image":["iso"],"application/x-java-jnlp-file":["jnlp"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdownload":["exe","dll","com","bat","msi"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["wmf","wmz","emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-nzb":["nzb"],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["rar"],"application/x-research-info-systems":["ris"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["obj"],"application/x-ustar":["ustar"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt"],"application/x-xfig":["fig"],"application/x-xliff+xml":["xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"application/xaml+xml":["xaml"],"application/xcap-diff+xml":["xdf"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xml":["xml","xsl","xsd"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/adpcm":["adp"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mp4":["mp4a","m4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/webm":["weba"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-wav":["wav"],"audio/xm":["xm"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"font/opentype":["otf"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/g3fax":["g3"],"image/gif":["gif"],"image/ief":["ief"],"image/jpeg":["jpeg","jpg","jpe"],"image/ktx":["ktx"],"image/png":["png"],"image/prs.btif":["btif"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/tiff":["tiff","tif"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":["sub"],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/webp":["webp"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["ico"],"image/x-mrsid-image":["sid"],"image/x-pcx":["pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/rfc822":["eml","mime"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.vtu":["vtu"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["x3db","x3dbz"],"model/x3d+vrml":["x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee"],"text/css":["css"],"text/csv":["csv"],"text/hjson":["hjson"],"text/html":["html","htm"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/prs.lines.tag":["dsc"],"text/richtext":["rtx"],"text/sgml":["sgml","sgm"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/vtt":["vtt"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["markdown","md","mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-pascal":["p","pas"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"text/yaml":["yaml","yml"],"video/3gpp":["3gp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/jpeg":["jpgv"],"video/jpm":["jpm","jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/webm":["webm"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]}
diff --git a/node_modules/mocha/CHANGELOG.md b/node_modules/mocha/CHANGELOG.md
deleted file mode 100644
index 2997f1825..000000000
--- a/node_modules/mocha/CHANGELOG.md
+++ /dev/null
@@ -1,1262 +0,0 @@
-# 2.5.3 / 2016-05-25
-
-- [#2112] - Fix HTML reporter regression causing duplicate error output ([@danielstjules] via 6d24063)
-- [#2119] - Make HTML reporter failure/passed links preventDefault to avoid SPA's hash navigation ([@jimenglish81] via 9e93efc)
-
-[@danielstjules]: https://github.com/danielstjules
-[@jimenglish81]: https://github.com/jimenglish81
-[#2112]: https://github.com/mochajs/mocha/pull/2112
-[#2119]: https://github.com/mochajs/mocha/pull/2119
-
-# 2.5.2 / 2016-05-24
-
-- [#2178] - Avoid double and triple xUnit XML escaping ([@graingert] via 49b5ff1)
-
-[@graingert]: https://github.com/graingert
-[#2178]: https://github.com/mochajs/mocha/pull/2178
-
-# 2.5.1 / 2016-05-23
-
-- Fix [to-iso-string](https://npmjs.com/package/to-iso-string) dependency ([@boneskull] via bd9450b)
-
-Thanks @entertainyou, @SimenB, @just-paja for the heads-up.
-
-# 2.5.0 / 2016-05-23
-
-> This has been awhile coming! We needed to feel confident that the next release wouldn't break browser compatibility (e.g. the last few patch releases).
->
-> ### Browser Tests in CI
->
-> We now run unit tests against PhantomJS v1.x and an assortment of browsers on [SauceLabs](https://saucelabs.com), including:
-> - Internet Explorer v8.0
-> - Chrome (latest)
-> - Firefox (latest)
-> - Safari (latest)
-> - Microsoft Edge (latest)
->
-> To accomplish this, we now run Mocha's unit tests (and a handful of integration tests) via [Karma](https://npmjs.com/package/karma) and a modified [karma-mocha](https://npmjs.com/package/karma-mocha). Along the way, we had to solve issue [#880] (apologies to @mderijcke and @sukima who had PRs addressing this), as well as replace most usages of [should](https://npmjs.com/package/should) with [expect.js](https://npmjs.com/package/expect.js) for IE8.
->
-> Going forward, when sending PRs, your code will *only* run against PhantomJS v1.x (and not hit SauceLabs) [because security](https://docs.travis-ci.com/user/pull-requests/#Security-Restrictions-when-testing-Pull-Requests).
->
-> ### Node.js 6.x
-> Node.js 6.x "just worked" before, but now it's in the CI matrix, so it's "officially" supported. Mocha *still retains support* for Node.js 0.8.x.
->
-> ### "Minor" Release
-> You'll see mostly bug fixes below, but also a couple features--as such, it's a "minor" release.
->
-> ### TYVM
->
-> Thanks to everyone who contributed, and our fabulous [sponsors and backers](https://opencollective.com/mochajs)!
-
-- [#2079] - Add browser checks to CI; update [browserify](https://npmjs.com/package/browserify) to v13.0.0 ([@dasilvacontin], [@ScottFreeCode], [@boneskull] via c04c1d7, 0b1e9b3, 0dde0fa, f8a3d86, 9e8cbaa)
-- [#880] - Make Mocha browserifyable ([@boneskull] via 524862b)
-- [#2121] - Update [glob](https://npmjs.com/package/glob) to v3.2.11 ([@astorije] via 7920fc4)
-- [#2126] - Fix dupe error messages in stack trace filter ([@Turbo87] via 4301caa)
-- [#2109] - Fix certain diffs when objects cannot be coerced into primitives ([@joshlory] via 61fbb7f)
-- [#1827] - Fix TWBS/`mocha.css` collisions ([@irnc] via 0543798)
-- [#1760], [#1936] - Fix `this.skip()` in HTML reporter ([@mislav] via cb4248b)
-- [#2115] - Fix exceptions thrown from hooks in HTML reporter ([@danielstjules] via e290bc0)
-- [#2089] - Handle Symbol values in `util.stringify()` ([@ryym] via ea61d05)
-- [#2097] - Fix diff for objects overriding `Object.prototype.hasOwnProperty` ([@mantoni] via b20fdfe)
-- [#2101] - Properly handle non-string "messages" thrown from assertion libraries ([@jkimbo] via 9c41051)
-- [#2124] - Update [growl](https://npmjs.com/package/growl) ([@benjamine] via 9ae6a85)
-- [#2162], [#2205] - JSDoc fixes ([@OlegTsyba] via 8031f20, [@ScottFreeCode] via f83b1d9)
-- [#2132] - Remove Growl-related cruft ([@julienw] via 00d6469)
-- [#2172] - Add [OpenCollective](https://opencollective.com) badge, sponsors & backers ([@xdamman], [@boneskull] via caee94f)
-- [#1841] - Add new logo, banner assets ([@dasilvacontin] via 00fd0e1)
-- [#2214] - Update `README.md` header ([@dasilvacontin] via c0f9be2)
-- [#2236] - Better checks for Node.js v0.8 compatibility in CI ([@dasilvacontin] via ba5637d)
-- [#2239] - Add Node.js v6.x to CI matrix ([@boneskull] via 3904da4)
-
-[#880]: https://github.com/mochajs/mocha/issues/880
-[#1841]: https://github.com/mochajs/mocha/pull/1841
-[#2239]: https://github.com/mochajs/mocha/issues/2239
-[#2153]: https://github.com/mochajs/mocha/pull/2153
-[#2214]: https://github.com/mochajs/mocha/pull/2214
-[#2236]: https://github.com/mochajs/mocha/pull/2236
-[#2079]: https://github.com/mochajs/mocha/issues/2079
-[#2231]: https://github.com/mochajs/mocha/pull/2231
-[#2089]: https://github.com/mochajs/mocha/issues/2089
-[#2097]: https://github.com/mochajs/mocha/pull/2097
-[#1760]: https://github.com/mochajs/mocha/issues/1760
-[#1936]: https://github.com/mochajs/mocha/issues/1936
-[#2115]: https://github.com/mochajs/mocha/pull/2115
-[#1827]: https://github.com/mochajs/mocha/pull/1827
-[#2101]: https://github.com/mochajs/mocha/pull/2101
-[#2124]: https://github.com/mochajs/mocha/pull/2124
-[#2109]: https://github.com/mochajs/mocha/issues/2109
-[#2162]: https://github.com/mochajs/mocha/pull/2162
-[#2132]: https://github.com/mochajs/mocha/issues/2132
-[#2126]: https://github.com/mochajs/mocha/issues/2126
-[#2121]: https://github.com/mochajs/mocha/issues/2121
-[#2205]: https://github.com/mochajs/mocha/pull/2205
-[#2172]: https://github.com/mochajs/mocha/pull/2172
-[@xdamman]: https://github.com/xdamman
-[@Turbo87]: https://github.com/Turbo87
-[@OlegTsyba]: https://github.com/OlegTsyba
-[@ryym]: https://github.com/ryym
-[@mantoni]: https://github.com/mantoni
-[@mislav]: https://github.com/mislav
-[@irnc]: https://github.com/irnc
-[@jkimbo]: https://github.com/jkimbo
-[@benjamine]: https://github.com/benjamine
-[@joshlory]: https://github.com/joshlory
-[@julienw]: https://github.com/julienw
-[@ScottFreeCode]: https://github.com/ScottFreeCode
-[@astorije]: https://github.com/astorije
-[@dasilvacontin]: https://github.com/dasilvacontin
-
-2.4.5 / 2016-01-28
-==================
-
-* [#2080], [#2078], [#2072], [#2073], [#1200] - Revert changes to console colors in changeset [1192914](https://github.com/mochajs/mocha/commit/119291449cd03a11cdeda9e37cf718a69a012896) and subsequent related changes thereafter. Restores compatibility with IE8 & PhantomJS. See also [mantoni/mochify.js#129](https://github.com/mantoni/mochify.js/issues/129) and [openlayers/ol3#4746](https://github.com/openlayers/ol3/pull/4746) ([@boneskull])
-* [#2082] - Fix several test assertions ([@mislav])
-
-[#1200]: https://github.com/mochajs/mocha/issues/1200
-[#2082]: https://github.com/mochajs/mocha/pull/2082
-
-2.4.4 / 2016-01-27
-==================
-
-* [#2080] - Fix broken RequireJS compatibility ([@boneskull])
-
-[#2080]: https://github.com/mochajs/mocha/issues/2080
-
-2.4.3 / 2016-01-27
-==================
-
-* [#2078] - Fix broken IE8 ([@boneskull])
-
-[#2078]: https://github.com/mochajs/mocha/issues/2078
-
-2.4.2 / 2016-01-26
-==================
-
-* [#2053] - Fix web worker compatibility ([@mislav])
-* [#2072] - Fix Windows color output ([@thedark1337])
-* [#2073] - Fix colors in `progress` and `landing` reporters ([@gyandeeps])
-
-[#2053]: https://github.com/mochajs/mocha/pull/2053
-[#2072]: https://github.com/mochajs/mocha/pull/2072
-[#2073]: https://github.com/mochajs/mocha/pull/2073
-[@gyandeeps]: https://github.com/gyandeeps
-[@thedark1337]: https://github.com/thedark1337
-
-2.4.1 / 2016-01-26
-==================
-
-* [#2067] - Fix HTML/doc reporter regressions ([@danielstjules])
-
-[#2067]: https://github.com/mochajs/mocha/pull/2067
-
-2.4.0 / 2016-01-25
-==================
-
-* [#1945] - Correctly skip tests when skipping in suite's before() ([@ryanshawty])
-* [#2056] - chore(license): update license year to 2016 ([@pra85])
-* [#2048] - Fix `this.skip` from spec with HTML reporter ([@mislav])
-* [#2033] - Update tests for newer versions of should.js ([@tomhughes])
-* [#2037] - Fix for memory leak caused by referenced to deferred test ([@bd82])
-* [#2038] - Also run Travis-CI on node.js 4 & 5 ([@bd82])
-* [#2028] - Remove reference to test before afterAll hook runs ([@stonelgh])
-* Bump mkdirp to 0.5.1 to support strict mode ([@danielstjules])
-* [#1977] - safely stringify PhantomJS undefined value ([@ahamid])
-* Add the ability to retry tests ([@@longlho])
-* [#1982] - Enable --log-timer-events option [@Alaneor]
-* Fix #1980: Load mocha.opts from bin/mocha and bin/_mocha ([@danielstjules])
-* [#1976] - Simplify function call ([@iclanzan])
-* [#1963] - Add support --perf-basic-prof ([@robraux])
-* [#1981] - Fix HTML reporter handling of done and exceptions ([@Standard8])
-* [#1993] - propagate "file" property for "exports" interface ([@segrey])
-* [#1999] - Add support for strict mode ([@tmont])
-* [#2005] - XUnit Reporter Writes to stdout, falls back to console.log ([@jonnyreeves])
-* [#2021] - Fix non ES5 compliant regexp ([@zetaben])
-* [#1965] - Don't double install BDD UI ([@cowboyd])
-* [#1995] - Make sure the xunit output dir exists before writing to it ([@ianwremmel])
-* Use chalk for the base reporter colors; closes #1200 ([@boneskull])
-* Fix requiring custom interfaces ([@jgkim])
-* [#1967] Silence Bluebird js warnings ([@krisr])
-
-[#1945]: https://github.com/mochajs/mocha/pull/1945
-[#2056]: https://github.com/mochajs/mocha/pull/2056
-[#2048]: https://github.com/mochajs/mocha/pull/2048
-[#2033]: https://github.com/mochajs/mocha/pull/2033
-[#2037]: https://github.com/mochajs/mocha/pull/2037
-[#2038]: https://github.com/mochajs/mocha/pull/2038
-[#2028]: https://github.com/mochajs/mocha/pull/2028
-[#1977]: https://github.com/mochajs/mocha/pull/1977
-[#1982]: https://github.com/mochajs/mocha/pull/1982
-[#1976]: https://github.com/mochajs/mocha/pull/1976
-[#1963]: https://github.com/mochajs/mocha/pull/1963
-[#1981]: https://github.com/mochajs/mocha/pull/1981
-[#1993]: https://github.com/mochajs/mocha/pull/1993
-[#1999]: https://github.com/mochajs/mocha/pull/1999
-[#2005]: https://github.com/mochajs/mocha/pull/2005
-[#2021]: https://github.com/mochajs/mocha/pull/2021
-[1965#]: https://github.com/mochajs/mocha/pull/1965
-[#1995]: https://github.com/mochajs/mocha/pull/1995
-[#1967]: https://github.com/mochajs/mocha/pull/1967
-[@ryanshawty]: https://github.com/ryanshawty
-[@pra85]: https://github.com/pra85
-[@mislav]: https://github.com/mislav
-[@tomhughes]: https://github.com/tomhughes
-[@bd82]: https://github.com/bd82
-[@stonelgh]: https://github.com/stonelgh
-[@danielstjules]: https://github.com/danielstjules
-[@ahamid]: https://github.com/ahamid
-[@longlho]: https://github.com/longlho
-[@Alaneor]: https://github.com/Alaneor
-[@iclanzan]: https://github.com/iclanzan
-[@robraux]: https://github.com/robraux
-[@Standard8]: https://github.com/Standard8
-[@segrey]: https://github.com/segrey
-[@tmont]: https://github.com/tmont
-[@jonnyreeves]: https://github.com/jonnyreeves
-[@zetaben]: https://github.com/zetaben
-[@cowboyd]: https://github.com/cowboyd
-[@ianwremmel]: https://github.com/ianwremmel
-[@boneskull]: https://github.com/boneskull
-[@jgkim]: https://github.com/jgkim
-[@krisr]: https://github.com/krisr
-
-2.3.4 / 2015-11-15
-==================
-
- * Update debug dependency to 2.2.0
- * remove duplication of mocha.opts on process.argv
- * Fix typo in test/reporters/nyan.js
-
-2.3.3 / 2015-09-19
-==================
-
- * [#1875] - Fix Markdown reporter exceeds maximum call stack size ([@danielstjules])
- * [#1864] - Fix xunit missing output with --reporter-options output ([@danielstjules])
- * [#1846] - Support all harmony flags ([@danielstjules])
- * Fix fragile xunit reporter spec ([@danielstjules])
- * [#1669] - Fix catch uncaught errors outside test suite execution ([@danielstjules])
- * [#1868] - Revert jade to support npm < v1.3.7 ([@danielstjules])
- * [#1766] - Don't remove modules/components from stack trace in the browser ([@danielstjules])
- * [#1798] - Fix correctly attribute mutiple done err with hooks ([@danielstjules])
- * Fix use utils.reduce for IE8 compatibility ([@wsw0108])
- * Some linting errors fixed by [@danielstjules]
- * Call the inspect() function if message is not set ([@kevinburke])
-
-[#1875]: https://github.com/mochajs/mocha/issues/1875
-[#1864]: https://github.com/mochajs/mocha/issues/1864
-[#1846]: https://github.com/mochajs/mocha/issues/1846
-[#1669]: https://github.com/mochajs/mocha/issues/1669
-[#1868]: https://github.com/mochajs/mocha/issues/1868
-[#1766]: https://github.com/mochajs/mocha/issues/1766
-[#1798]: https://github.com/mochajs/mocha/issues/1798
-[@danielstjules]: https://github.com/danielstjules
-[@wsw0108]: https://github.com/wsw0108
-[@kevinburke]: https://github.com/kevinburke
-
-2.3.2 / 2015-09-07
-==================
- * [#1868] - Fix compatibility with older versions of NPM ([@boneskull])
-
- [#1868]: https://github.com/mochajs/mocha/issues/1868
-
-2.3.1 / 2015-09-06
-==================
-
- * [#1812] - Fix: Bail flag causes before() hooks to be run even after a failure ([@aaroncrows])
-
- [#1812]: https://github.com/mochajs/mocha/issues/1812
- [aaroncrows]: https://github.com/aaroncrows
-
-2.3.0 / 2015-08-30
-==================
-
- * [#553] - added --allowUncaught option ([@amsul])
- * [#1490] - Allow --async-only to be satisfied by returning a promise ([@jlai])
- * [#1829] - support --max-old-space-size ([@gigadude])
- * [#1811] - upgrade Jade dependency ([@outsideris])
- * [#1769] - Fix async hook error handling ([@ajaykodali])
- * [#1230] - More descriptive beforeEach/afterEach messages ([@duncanbeevers])
- * [#1787] - Scope loading behaviour instead of using early return ([@aryeguy])
- * [#1789] - Fix: html-runner crashing ([@sunesimonsen])
- * [#1749] - Fix maximum call stack error on large amount of tests ([@tinganho])
- * [#1230] - Decorate failed hook titles with test title ([@duncanbeevers])
- * [#1260] - Build using Browserify ([@ndhoule])
- * [#1728] - Don't use `__proto__` ([@ndhoule])
- * [#1781] - Fix hook error tests ([@glenjamin])
- * [#1754] - Allow boolean --reporter-options ([@papandreou])
- * [#1766] - Fix overly aggressive stack suppression ([@moll])
- * [#1752] - Avoid potential infinite loop ([@gsilk])
- * [#1761] - Fix problems running under PhantomJS ([@chromakode])
- * [#1700] - Fix more problems running under PhantomJS ([@jbnicolai])
- * [#1774] - Support escaped spaces in CLI options ([@adamgruber])
- * [#1687] - Fix HTML reporter links with special chars ([@benvinegar])
- * [#1359] - Adopt code style and enforce it using ESLint ([@ndhoule] w/ assist from [@jbnicolai] & [@boneskull])
- * various refactors ([@jbnicolai])
- * [#1758] - Add cross-frame compatible Error checking ([@outdooricon])
- * [#1741] - Remove moot `version` property from bower.json ([@kkirsche])
- * [#1739] - Improve `HISTORY.md` ([@rstacruz])
- * [#1730] - Support more io.js flags ([@ryedog])
- * [#1349] - Allow HTML in HTML reporter errors ([@papandreou] / [@sunesimonsen])
- * [#1572] - Prevent default browser behavior for failure/pass links ([@jschilli])
- * [#1630] - Support underscored harmony flags ([@dominicbarnes])
- * [#1718] - Support more harmony flags ([@slyg])
- * [#1689] - Add stack to JSON-stream reporter ([@jonathandelgado])
- * [#1654] - Fix `ReferenceError` "location is not defined" ([@jakemmarsh])
-
- [#553]: https://github.com/mochajs/mocha/issues/553
- [#1490]: https://github.com/mochajs/mocha/issues/1490
- [#1829]: https://github.com/mochajs/mocha/issues/1829
- [#1811]: https://github.com/mochajs/mocha/issues/1811
- [#1769]: https://github.com/mochajs/mocha/issues/1769
- [#1230]: https://github.com/mochajs/mocha/issues/1230
- [#1787]: https://github.com/mochajs/mocha/issues/1787
- [#1789]: https://github.com/mochajs/mocha/issues/1789
- [#1749]: https://github.com/mochajs/mocha/issues/1749
- [#1230]: https://github.com/mochajs/mocha/issues/1230
- [#1260]: https://github.com/mochajs/mocha/issues/1260
- [#1728]: https://github.com/mochajs/mocha/issues/1728
- [#1781]: https://github.com/mochajs/mocha/issues/1781
- [#1754]: https://github.com/mochajs/mocha/issues/1754
- [#1766]: https://github.com/mochajs/mocha/issues/1766
- [#1752]: https://github.com/mochajs/mocha/issues/1752
- [#1761]: https://github.com/mochajs/mocha/issues/1761
- [#1700]: https://github.com/mochajs/mocha/issues/1700
- [#1774]: https://github.com/mochajs/mocha/issues/1774
- [#1687]: https://github.com/mochajs/mocha/issues/1687
- [#1359]: https://github.com/mochajs/mocha/issues/1359
- [#1758]: https://github.com/mochajs/mocha/issues/1758
- [#1741]: https://github.com/mochajs/mocha/issues/1741
- [#1739]: https://github.com/mochajs/mocha/issues/1739
- [#1730]: https://github.com/mochajs/mocha/issues/1730
- [#1349]: https://github.com/mochajs/mocha/issues/1349
- [#1572]: https://github.com/mochajs/mocha/issues/1572
- [#1630]: https://github.com/mochajs/mocha/issues/1630
- [#1718]: https://github.com/mochajs/mocha/issues/1718
- [#1689]: https://github.com/mochajs/mocha/issues/1689
- [#1654]: https://github.com/mochajs/mocha/issues/1654
- [@adamgruber]: https://github.com/adamgruber
- [@ajaykodali]: https://github.com/ajaykodali
- [@amsul]: https://github.com/amsul
- [@aryeguy]: https://github.com/aryeguy
- [@benvinegar]: https://github.com/benvinegar
- [@boneskull]: https://github.com/boneskull
- [@chromakode]: https://github.com/chromakode
- [@dominicbarnes]: https://github.com/dominicbarnes
- [@duncanbeevers]: https://github.com/duncanbeevers
- [@gigadude]: https://github.com/gigadude
- [@glenjamin]: https://github.com/glenjamin
- [@gsilk]: https://github.com/gsilk
- [@jakemmarsh]: https://github.com/jakemmarsh
- [@jbnicolai]: https://github.com/jbnicolai
- [@jlai]: https://github.com/jlai
- [@jonathandelgado]: https://github.com/jonathandelgado
- [@jschilli]: https://github.com/jschilli
- [@kkirsche]: https://github.com/kkirsche
- [@moll]: https://github.com/moll
- [@ndhoule]: https://github.com/ndhoule
- [@outdooricon]: https://github.com/outdooricon
- [@outsideris]: https://github.com/outsideris
- [@papandreou]: https://github.com/papandreou
- [@rstacruz]: https://github.com/rstacruz
- [@ryedog]: https://github.com/ryedog
- [@slyg]: https://github.com/slyg
- [@sunesimonsen]: https://github.com/sunesimonsen
- [@tinganho]: https://github.com/tinganho
-
-2.2.5 / 2015-05-14
-==================
-
- * [#1699] - Upgrade jsdiff to v1.4.0 ([@nylen])
- * [#1648] - fix diff background colors in the console ([@nylen])
- * [#1327] - fix tests running twice, a regression issue. ([#1686], [@danielstjules])
- * [#1675] - add integration tests ([@danielstjules])
- * [#1682] - use a valid SPDX license identifier in package.json ([@kemitchell])
- * [#1660] - fix assertion of invalid dates ([#1661], [@a8m])
- * [#1241] - fix issue with multiline diffs appearing as single line ([#1655], [@a8m])
-
-[#1699]: https://github.com/mochajs/mocha/issues/1699
-[#1648]: https://github.com/mochajs/mocha/issues/1648
-[#1327]: https://github.com/mochajs/mocha/issues/1327
-[#1686]: https://github.com/mochajs/mocha/issues/1686
-[#1675]: https://github.com/mochajs/mocha/issues/1675
-[#1682]: https://github.com/mochajs/mocha/issues/1682
-[#1660]: https://github.com/mochajs/mocha/issues/1660
-[#1661]: https://github.com/mochajs/mocha/issues/1661
-[#1241]: https://github.com/mochajs/mocha/issues/1241
-[#1655]: https://github.com/mochajs/mocha/issues/1655
-[@nylen]: https://github.com/nylen
-[@danielstjules]: https://github.com/danielstjules
-[@kemitchell]: https://github.com/kemitchell
-[@a8m]: https://github.com/a8m
-
-2.2.4 / 2015-04-08
-==================
-
- * Load mocha.opts in _mocha for now (close #1645)
-
-2.2.3 / 2015-04-07
-==================
-
- * fix(reporter/base): string diff - issue #1241
- * fix(reporter/base): string diff - issue #1241
- * fix(reporter/base): don't show diffs for errors without expectation
- * fix(reporter/base): don't assume error message is first line of stack
- * improve: dry up reporter/base test
- * fix(reporter/base): explicitly ignore showDiff #1614
- * Add iojs to travis build
- * Pass `--allow-natives-syntax` flag to node.
- * Support --harmony_classes flag for io.js
- * Fix 1556: Update utils.clean to handle newlines in func declarations
- * Fix 1606: fix err handling in IE <= 8 and non-ES5 browsers
- * Fix 1585: make _mocha executable again
- * chore(package.json): add a8m as a contributor
- * Fixed broken link on html-cov reporter
- * support --es_staging flag
- * fix issue where menu overlaps content.
- * update contributors in package.json
- * Remove trailing whitespace from reporter output
- * Remove contributors list from readme
- * log third-party reporter errors
- * [Fix] Exclude not own properties when looping on options
- * fix: support node args in mocha.opts (close #1573)
- * fix(reporter/base): string diff - issue #1241
-
-2.2.1 / 2015-03-09
-==================
-
- * Fix passing of args intended for node/iojs.
-
-2.2.0 / 2015-03-06
-==================
-
- * Update mocha.js
- * Add --fgrep. Use grep for RegExp, fgrep for str
- * Ignore async global errors after spec resolution
- * Fixing errors that prevent mocha.js from loading in the browser - fixes #1558
- * fix(utils): issue #1558 + make
- * add ability to delay root suite; closes #362, closes #1124
- * fix insanity in http tests
- * update travis: add node 0.12, add gitter, remove slack
- * building
- * resolve #1548: ensure the environment's "node" executable is used
- * reporters/base: use supports-color to detect colorable term
- * travis: use docker containers
- * small fix: commander option for --expose-gc
- * Ignore asynchronous errors after global failure
- * Improve error output when a test fails with a non-error
- * updated travis badge, uses svg instead of img
- * Allow skip from test context for #332
- * [JSHINT] Unnecessary semicolon fixed in bin/_mocha
- * Added a reminder about the done() callback to test timeout error messages
- * fixes #1496, in Mocha.run(fn), check if fn exists before executing it, added tests too
- * Add Harmony Proxy flag for iojs
- * test(utils|ms|*): test existing units
- * add support for some iojs flags
- * fix(utils.stringify): issue #1229, diff viewer
- * Remove slack link
- * Prevent multiple 'grep=' querystring params in html reporter
- * Use grep as regexp (close #1381)
- * utils.stringify should handle objects without an Object prototype
- * in runnable test, comparing to undefined error's message rather than a literal
- * Fix test running output truncation on async STDIO
- * ammended for deprecated customFds option in child_process
-
-2.1.0 / 2014-12-23
-==================
-
- * showDiff: don’t stringify strings
- * Clean up unused module dependencies.
- * Filter zero-length strings from mocha.opts
- * only write to stdout in reporters
- * Revert "only write to stdout in reporters"
- * Print colored output only to a tty
- * update summary in README.md
- * rename Readme.md/History.md to README.md/HISTORY.md because neurotic
- * add .mailmap to fix "git shortlog" or "git summary" output
- * fixes #1461: nyan-reporter now respects Base.useColors, fixed bug where Base.color would not return a string when str wasn't a string.
- * Use existing test URL builder in failed replay links
- * modify .travis.yml: use travis_retry; closes #1449
- * fix -t 0 behavior; closes #1446
- * fix tests (whoops)
- * improve diff behavior
- * Preserve pathname when linking to individual tests
- * Fix test
- * Tiny typo in comments fixed
- * after hooks now being called on failed tests when using bail, fixes #1093
- * fix throwing undefined/null now makes tests fail, fixes #1395
- * compiler extensions are added as watched extensions, removed non-standard extensions from watch regex, resolves #1221
- * prefix/namespace for suite titles in markdown reporter, fixes #554
- * fix more bad markdown in CONTRIBUTING.md
- * fix bad markdown in CONTRIBUTING.md
- * add setImmediate/clearImmediate to globals; closes #1435
- * Fix buffer diffs (closes #1132, closes #1433)
- * add a CONTRIBUTING.md. closes #882
- * fix intermittent build failures (maybe). closes #1407
- * add Slack notification to .travis.yml
- * Fix slack link
- * Add slack room to readme
- * Update maintainers
- * update maintainers and contributors
- * resolves #1393: kill children with more effort on SIGINT
- * xunit reporter support for optionally writing to a file
- * if a reporter has a .done method, call it before exiting
- * add support for reporter options
- * only write to stdout in reporters
-
-2.0.0 / 2014-10-21
-==================
-
- * remove: support for node 0.6.x, 0.4.x
- * fix: landing reporter with non ansi characters (#211)
- * fix: html reporter - preserve query params when navigating to suites/tests (#1358)
- * fix: json stream reporter add error message to failed test
- * fix: fixes for visionmedia -> mochajs
- * fix: use stdio, fixes node deprecation warnings (#1391)
-
-1.21.5 / 2014-10-11
-==================
-
- * fix: build for NodeJS v0.6.x
- * fix: do not attempt to highlight syntax when non-HTML reporter is used
- * update: escape-string-regexp to 1.0.2.
- * fix: botched indentation in canonicalize()
- * fix: .gitignore: ignore .patch and .diff files
- * fix: changed 'Catched' to 'Caught' in uncaught exception error handler messages
- * add: `pending` field for json reporter
- * fix: Runner.prototype.uncaught: don't double-end runnables that already have a state.
- * fix: --recursive, broken by f0facd2e
- * update: replaces escapeRegexp with the escape-string-regexp package.
- * update: commander to 2.3.0.
- * update: diff to 1.0.8.
- * fix: ability to disable syntax highlighting (#1329)
- * fix: added empty object to errorJSON() call to catch when no error is present
- * fix: never time out after calling enableTimeouts(false)
- * fix: timeout(0) will work at suite level (#1300)
- * Fix for --watch+only() issue (#888 )
- * fix: respect err.showDiff, add Base reporter test (#810)
-
-1.22.1-3 / 2014-07-27
-==================
-
- * fix: disabling timeouts with this.timeout(0) (#1301)
-
-1.22.1-3 / 2014-07-27
-==================
-
- * fix: local uis and reporters (#1288)
- * fix: building 1.21.0's changes in the browser (#1284)
-
-1.21.0 / 2014-07-23
-==================
-
- * add: --no-timeouts option (#1262, #1268)
- * add: --*- deprecation node flags (#1217)
- * add: --watch-extensions argument (#1247)
- * change: spec reporter is default (#1228)
- * fix: diff output showing incorrect +/- (#1182)
- * fix: diffs of circular structures (#1179)
- * fix: re-render the progress bar when progress has changed only (#1151)
- * fix support for environments with global and window (#1159)
- * fix: reverting to previously defined onerror handler (#1178)
- * fix: stringify non error objects passed to done() (#1270)
- * fix: using local ui, reporters (#1267)
- * fix: cleaning es6 arrows (#1176)
- * fix: don't include attrs in failure tag for xunit (#1244)
- * fix: fail tests that return a promise if promise is rejected w/o a reason (#1224)
- * fix: showing failed tests in doc reporter (#1117)
- * fix: dot reporter dots being off (#1204)
- * fix: catch empty throws (#1219)
- * fix: honoring timeout for sync operations (#1242)
- * update: growl to 1.8.0
-
-1.20.1 / 2014-06-03
-==================
-
- * update: should dev dependency to ~4.0.0 (#1231)
-
-1.20.0 / 2014-05-28
-==================
-
- * add: filenames to suite objects (#1222)
-
-1.19.0 / 2014-05-17
-==================
-
- * add: browser script option to package.json
- * add: export file in Mocha.Test objects (#1174)
- * add: add docs for wrapped node flags
- * fix: mocha.run() to return error status in browser (#1216)
- * fix: clean() to show failure details (#1205)
- * fix: regex that generates html for new keyword (#1201)
- * fix: sibling suites have inherited but separate contexts (#1164)
-
-
-1.18.2 / 2014-03-18
-==================
-
- * fix: html runner was prevented from using #mocha as the default root el (#1162)
-
-1.18.1 / 2014-03-18
-==================
-
- * fix: named before/after hooks in bdd, tdd, qunit interfaces (#1161)
-
-1.18.0 / 2014-03-13
-==================
-
- * add: promise support (#329)
- * add: named before/after hooks (#966)
-
-1.17.1 / 2014-01-22
-==================
-
- * fix: expected messages in should.js (should.js#168)
- * fix: expect errno global in node versions < v0.9.11 (#1111)
- * fix: unreliable checkGlobals optimization (#1110)
-
-1.17.0 / 2014-01-09
-==================
-
- * add: able to require globals (describe, it, etc.) through mocha (#1077)
- * fix: abort previous run on --watch change (#1100)
- * fix: reset context for each --watch triggered run (#1099)
- * fix: error when cli can't resolve path or pattern (#799)
- * fix: canonicalize objects before stringifying and diffing them (#1079)
- * fix: make CR call behave like carriage return for non tty (#1087)
-
-
-1.16.2 / 2013-12-23
-==================
-
- * fix: couple issues with ie 8 (#1082, #1081)
- * fix: issue running the xunit reporter in browsers (#1068)
- * fix: issue with firefox < 3.5 (#725)
-
-
-1.16.1 / 2013-12-19
-==================
-
- * fix: recompiled for missed changes from the last release
-
-
-1.16.0 / 2013-12-19
-==================
-
- * add: Runnable.globals(arr) for per test global whitelist (#1046)
- * add: mocha.throwError(err) for assertion libs to call (#985)
- * remove: --watch's spinner (#806)
- * fix: duplicate test output for multi-line specs in spec reporter (#1006)
- * fix: gracefully exit on SIGINT (#1063)
- * fix expose the specified ui only in the browser (#984)
- * fix: ensure process exit code is preserved when using --no-exit (#1059)
- * fix: return true from window.onerror handler (#868)
- * fix: xunit reporter to use process.stdout.write (#1068)
- * fix: utils.clean(str) indentation (#761)
- * fix: xunit reporter returning test duration a NaN (#1039)
-
-1.15.1 / 2013-12-03
-==================
-
- * fix: recompiled for missed changes from the last release
-
-1.15.0 / 2013-12-02
-==================
-
- * add: `--no-exit` to prevent `process.exit()` (#1018)
- * fix: using inline diffs (#1044)
- * fix: show pending test details in xunit reporter (#1051)
- * fix: faster global leak detection (#1024)
- * fix: yui compression (#1035)
- * fix: wrapping long lines in test results (#1030, #1031)
- * fix: handle errors in hooks (#1043)
-
-1.14.0 / 2013-11-02
-==================
-
- * add: unified diff (#862)
- * add: set MOCHA_COLORS env var to use colors (#965)
- * add: able to override tests links in html reporters (#776)
- * remove: teamcity reporter (#954)
- * update: commander dependency to 2.0.0 (#1010)
- * fix: mocha --ui will try to require the ui if not built in, as --reporter does (#1022)
- * fix: send cursor commands only if isatty (#184, #1003)
- * fix: include assertion message in base reporter (#993, #991)
- * fix: consistent return of it, it.only, and describe, describe.only (#840)
-
-1.13.0 / 2013-09-15
-==================
-
- * add: sort test files with --sort (#813)
- * update: diff depedency to 1.0.7
- * update: glob dependency to 3.2.3 (#927)
- * fix: diffs show whitespace differences (#976)
- * fix: improve global leaks (#783)
- * fix: firefox window.getInterface leak
- * fix: accessing iframe via window[iframeIndex] leak
- * fix: faster global leak checking
- * fix: reporter pending css selector (#970)
-
-1.12.1 / 2013-08-29
-==================
-
- * remove test.js from .gitignore
- * update included version of ms.js
-
-1.12.0 / 2013-07-01
-==================
-
- * add: prevent diffs for differing types. Closes #900
- * add `Mocha.process` hack for phantomjs
- * fix: use compilers with requires
- * fix regexps in diffs. Closes #890
- * fix xunit NaN on failure. Closes #894
- * fix: strip tab indentation in `clean` utility method
- * fix: textmate bundle installation
-
-1.11.0 / 2013-06-12
-==================
-
- * add --prof support
- * add --harmony support
- * add --harmony-generators support
- * add "Uncaught " prefix to uncaught exceptions
- * add web workers support
- * add `suite.skip()`
- * change to output # of pending / passing even on failures. Closes #872
- * fix: prevent hooks from being called if we are bailing
- * fix `this.timeout(0)`
-
-1.10.0 / 2013-05-21
-==================
-
- * add add better globbing support for windows via `glob` module
- * add support to pass through flags such as --debug-brk=1234. Closes #852
- * add test.only, test.skip to qunit interface
- * change to always use word-based diffs for now. Closes #733
- * change `mocha init` tests.html to index.html
- * fix `process` global leak in the browser
- * fix: use resolve() instead of join() for --require
- * fix: filterLeaks() condition to not consider indices in global object as leaks
- * fix: restrict mocha.css styling to #mocha id
- * fix: save timer references to avoid Sinon interfering in the browser build.
-
-1.9.0 / 2013-04-03
-==================
-
- * add improved setImmediate implementation
- * replace --ignore-leaks with --check-leaks
- * change default of ignoreLeaks to true. Closes #791
- * remove scrolling for HTML reporter
- * fix retina support
- * fix tmbundle, restrict to js scope
-
-1.8.2 / 2013-03-11
-==================
-
- * add `setImmediate` support for 0.10.x
- * fix mocha -w spinner on windows
-
-1.8.1 / 2013-01-09
-==================
-
- * fix .bail() arity check causing it to default to true
-
-1.8.0 / 2013-01-08
-==================
-
- * add Mocha() options bail support
- * add `Mocha#bail()` method
- * add instanceof check back for inheriting from Error
- * add component.json
- * add diff.js to browser build
- * update growl
- * fix TAP reporter failures comment :D
-
-1.7.4 / 2012-12-06
-==================
-
- * add total number of passes and failures to TAP
- * remove .bind() calls. re #680
- * fix indexOf. Closes #680
-
-1.7.3 / 2012-11-30
-==================
-
- * fix uncaught error support for the browser
- * revert uncaught "fix" which breaks node
-
-1.7.2 / 2012-11-28
-==================
-
- * fix uncaught errors to expose the original error message
-
-1.7.0 / 2012-11-07
-==================
-
- * add `--async-only` support to prevent false positives for missing `done()`
- * add sorting by filename in code coverage
- * add HTML 5 doctype to browser template.
- * add play button to html reporter to rerun a single test
- * add `this.timeout(ms)` as Suite#timeout(ms). Closes #599
- * update growl dependency to 1.6.x
- * fix encoding of test-case ?grep. Closes #637
- * fix unicode chars on windows
- * fix dom globals in Opera/IE. Closes #243
- * fix markdown reporter a tags
- * fix `this.timeout("5s")` support
-
-1.6.0 / 2012-10-02
-==================
-
- * add object diffs when `err.showDiff` is present
- * add hiding of empty suites when pass/failures are toggled
- * add faster `.length` checks to `checkGlobals()` before performing the filter
-
-1.5.0 / 2012-09-21
-==================
-
- * add `ms()` to `.slow()` and `.timeout()`
- * add `Mocha#checkLeaks()` to re-enable global leak checks
- * add `this.slow()` option [aheckmann]
- * add tab, CR, LF to error diffs for now
- * add faster `.checkGlobals()` solution [guille]
- * remove `fn.call()` from reduce util
- * remove `fn.call()` from filter util
- * fix forEach. Closes #582
- * fix relaying of signals [TooTallNate]
- * fix TAP reporter grep number
-
-1.4.2 / 2012-09-01
-==================
-
- * add support to multiple `Mocha#globals()` calls, and strings
- * add `mocha.reporter()` constructor support [jfirebaugh]
- * add `mocha.timeout()`
- * move query-string parser to utils.js
- * move highlight code to utils.js
- * fix third-party reporter support [exogen]
- * fix client-side API to match node-side [jfirebaugh]
- * fix mocha in iframe [joliss]
-
-1.4.1 / 2012-08-28
-==================
-
- * add missing `Markdown` export
- * fix `Mocha#grep()`, escape regexp strings
- * fix reference error when `devicePixelRatio` is not defined. Closes #549
-
-1.4.0 / 2012-08-22
-==================
-
- * add mkdir -p to `mocha init`. Closes #539
- * add `.only()`. Closes #524
- * add `.skip()`. Closes #524
- * change str.trim() to use utils.trim(). Closes #533
- * fix HTML progress indicator retina display
- * fix url-encoding of click-to-grep HTML functionality
-
-1.3.2 / 2012-08-01
-==================
-
- * fix exports double-execution regression. Closes #531
-
-1.3.1 / 2012-08-01
-==================
-
- * add passes/failures toggling to HTML reporter
- * add pending state to `xit()` and `xdescribe()` [Brian Moore]
- * add the @charset "UTF-8"; to fix #522 with FireFox. [Jonathan Creamer]
- * add border-bottom to #stats links
- * add check for runnable in `Runner#uncaught()`. Closes #494
- * add 0.4 and 0.6 back to travis.yml
- * add `-E, --growl-errors` to growl on failures only
- * add prefixes to debug() names. Closes #497
- * add `Mocha#invert()` to js api
- * change dot reporter to use sexy unicode dots
- * fix error when clicking pending test in HTML reporter
- * fix `make tm`
-
-1.3.0 / 2012-07-05
-==================
-
- * add window scrolling to `HTML` reporter
- * add v8 `--trace-*` option support
- * add support for custom reports via `--reporter MODULE`
- * add `--invert` switch to invert `--grep` matches
- * fix export of `Nyan` reporter. Closes #495
- * fix escaping of `HTML` suite titles. Closes #486
- * fix `done()` called multiple times with an error test
- * change `--grep` - regexp escape the input
-
-1.2.2 / 2012-06-28
-==================
-
- * Added 0.8.0 support
-
-1.2.1 / 2012-06-25
-==================
-
- * Added `this.test.error(err)` support to after each hooks. Closes #287
- * Added: export top-level suite on global mocha object (mocha.suite). Closes #448
- * Fixed `js` code block format error in markdown reporter
- * Fixed deprecation warning when using `path.existsSync`
- * Fixed --globals with wildcard
- * Fixed chars in nyan when his head moves back
- * Remove `--growl` from test/mocha.opts. Closes #289
-
-1.2.0 / 2012-06-17
-==================
-
- * Added `nyan` reporter [Atsuya Takagi]
- * Added `mocha init <path>` to copy client files
- * Added "specify" synonym for "it" [domenic]
- * Added global leak wildcard support [nathanbowser]
- * Fixed runner emitter leak. closes #432
- * Fixed omission of .js extension. Closes #454
-
-1.1.0 / 2012-05-30
-==================
-
- * Added: check each `mocha(1)` arg for directories to walk
- * Added `--recursive` [tricknotes]
- * Added `context` for BDD [hokaccha]
- * Added styling for new clickable titles
- * Added clickable suite titles to HTML reporter
- * Added warning when strings are thrown as errors
- * Changed: green arrows again in HTML reporter styling
- * Changed ul/li elements instead of divs for better copy-and-pasting [joliss]
- * Fixed issue #325 - add better grep support to js api
- * Fixed: save timer references to avoid Sinon interfering.
-
-1.0.3 / 2012-04-30
-==================
-
- * Fixed string diff newlines
- * Fixed: removed mocha.css target. Closes #401
-
-1.0.2 / 2012-04-25
-==================
-
- * Added HTML reporter duration. Closes #47
- * Fixed: one postMessage event listener [exogen]
- * Fixed: allow --globals to be used multiple times. Closes #100 [brendannee]
- * Fixed #158: removes jquery include from browser tests
- * Fixed grep. Closes #372 [brendannee]
- * Fixed #166 - When grepping don't display the empty suites
- * Removed test/browser/style.css. Closes #385
-
-1.0.1 / 2012-04-04
-==================
-
- * Fixed `.timeout()` in hooks
- * Fixed: allow callback for `mocha.run()` in client version
- * Fixed browser hook error display. Closes #361
-
-1.0.0 / 2012-03-24
-==================
-
- * Added js API. Closes #265
- * Added: initial run of tests with `--watch`. Closes #345
- * Added: mark `location` as a global on the CS. Closes #311
- * Added `markdown` reporter (github flavour)
- * Added: scrolling menu to coverage.html. Closes #335
- * Added source line to html report for Safari [Tyson Tate]
- * Added "min" reporter, useful for `--watch` [Jakub Nešetřil]
- * Added support for arbitrary compilers via . Closes #338 [Ian Young]
- * Added Teamcity export to lib/reporters/index [Michael Riley]
- * Fixed chopping of first char in error reporting. Closes #334 [reported by topfunky]
- * Fixed terrible FF / Opera stack traces
-
-0.14.1 / 2012-03-06
-==================
-
- * Added lib-cov to _.npmignore_
- * Added reporter to `mocha.run([reporter])` as argument
- * Added some margin-top to the HTML reporter
- * Removed jQuery dependency
- * Fixed `--watch`: purge require cache. Closes #266
-
-0.14.0 / 2012-03-01
-==================
-
- * Added string diff support for terminal reporters
-
-0.13.0 / 2012-02-23
-==================
-
- * Added preliminary test coverage support. Closes #5
- * Added `HTMLCov` reporter
- * Added `JSONCov` reporter [kunklejr]
- * Added `xdescribe()` and `xit()` to the BDD interface. Closes #263 (docs * Changed: make json reporter output pretty json
- * Fixed node-inspector support, swapped `--debug` for `debug` to match node.
-needed)
-Closes #247
-
-0.12.1 / 2012-02-14
-==================
-
- * Added `npm docs mocha` support [TooTallNate]
- * Added a `Context` object used for hook and test-case this. Closes #253
- * Fixed `Suite#clone()` `.ctx` reference. Closes #262
-
-0.12.0 / 2012-02-02
-==================
-
- * Added .coffee `--watch` support. Closes #242
- * Added support to `--require` files relative to the CWD. Closes #241
- * Added quick n dirty syntax highlighting. Closes #248
- * Changed: made HTML progress indicator smaller
- * Fixed xunit errors attribute [dhendo]
-
-0.10.2 / 2012-01-21
-==================
-
- * Fixed suite count in reporter stats. Closes #222
- * Fixed `done()` after timeout error reporting [Phil Sung]
- * Changed the 0-based errors to 1
-
-0.10.1 / 2012-01-17
-==================
-
- * Added support for node 0.7.x
- * Fixed absolute path support. Closes #215 [kompiro]
- * Fixed `--no-colors` option [Jussi Virtanen]
- * Fixed Arial CSS typo in the correct file
-
-0.10.0 / 2012-01-13
-==================
-
- * Added `-b, --bail` to exit on first exception [guillermo]
- * Added support for `-gc` / `--expose-gc` [TooTallNate]
- * Added `qunit`-inspired interface
- * Added MIT LICENSE. Closes #194
- * Added: `--watch` all .js in the CWD. Closes #139
- * Fixed `self.test` reference in runner. Closes #189
- * Fixed double reporting of uncaught exceptions after timeout. Closes #195
-
-0.8.2 / 2012-01-05
-==================
-
- * Added test-case context support. Closes #113
- * Fixed exit status. Closes #187
- * Update commander. Closes #190
-
-0.8.1 / 2011-12-30
-==================
-
- * Fixed reporting of uncaught exceptions. Closes #183
- * Fixed error message defaulting [indutny]
- * Changed mocha(1) from bash to node for windows [Nathan Rajlich]
-
-0.8.0 / 2011-12-28
-==================
-
- * Added `XUnit` reporter [FeeFighters/visionmedia]
- * Added `say(1)` notification support [Maciej Małecki]
- * Changed: fail when done() is invoked with a non-Error. Closes #171
- * Fixed `err.stack`, defaulting to message. Closes #180
- * Fixed: `make tm` mkdir -p the dest. Closes #137
- * Fixed mocha(1) --help bin name
- * Fixed `-d` for `--debug` support
-
-0.7.1 / 2011-12-22
-==================
-
- * Removed `mocha-debug(1)`, use `mocha --debug`
- * Fixed CWD relative requires
- * Fixed growl issue on windows [Raynos]
- * Fixed: platform specific line endings [TooTallNate]
- * Fixed: escape strings in HTML reporter. Closes #164
-
-0.7.0 / 2011-12-18
-==================
-
- * Added support for IE{7,8} [guille]
- * Changed: better browser nextTick implementation [guille]
-
-0.6.0 / 2011-12-18
-==================
-
- * Added setZeroTimeout timeout for browser (nicer stack traces). Closes #153
- * Added "view source" on hover for HTML reporter to make it obvious
- * Changed: replace custom growl with growl lib
- * Fixed duplicate reporting for HTML reporter. Closes #154
- * Fixed silent hook errors in the HTML reporter. Closes #150
-
-0.5.0 / 2011-12-14
-==================
-
- * Added: push node_modules directory onto module.paths for relative require Closes #93
- * Added teamcity reporter [blindsey]
- * Fixed: recover from uncaught exceptions for tests. Closes #94
- * Fixed: only emit "test end" for uncaught within test, not hook
-
-0.4.0 / 2011-12-14
-==================
-
- * Added support for test-specific timeouts via `this.timeout(0)`. Closes #134
- * Added guillermo's client-side EventEmitter. Closes #132
- * Added progress indicator to the HTML reporter
- * Fixed slow browser tests. Closes #135
- * Fixed "suite" color for light terminals
- * Fixed `require()` leak spotted by [guillermo]
-
-0.3.6 / 2011-12-09
-==================
-
- * Removed suite merging (for now)
-
-0.3.5 / 2011-12-08
-==================
-
- * Added support for `window.onerror` [guillermo]
- * Fixed: clear timeout on uncaught exceptions. Closes #131 [guillermo]
- * Added `mocha.css` to PHONY list.
- * Added `mocha.js` to PHONY list.
-
-0.3.4 / 2011-12-08
-==================
-
- * Added: allow `done()` to be called with non-Error
- * Added: return Runner from `mocha.run()`. Closes #126
- * Fixed: run afterEach even on failures. Closes #125
- * Fixed clobbering of current runnable. Closes #121
-
-0.3.3 / 2011-12-08
-==================
-
- * Fixed hook timeouts. Closes #120
- * Fixed uncaught exceptions in hooks
-
-0.3.2 / 2011-12-05
-==================
-
- * Fixed weird reporting when `err.message` is not present
-
-0.3.1 / 2011-12-04
-==================
-
- * Fixed hook event emitter leak. Closes #117
- * Fixed: export `Spec` constructor. Closes #116
-
-0.3.0 / 2011-12-04
-==================
-
- * Added `-w, --watch`. Closes #72
- * Added `--ignore-leaks` to ignore global leak checking
- * Added browser `?grep=pattern` support
- * Added `--globals <names>` to specify accepted globals. Closes #99
- * Fixed `mocha-debug(1)` on some systems. Closes #232
- * Fixed growl total, use `runner.total`
-
-0.2.0 / 2011-11-30
-==================
-
- * Added `--globals <names>` to specify accepted globals. Closes #99
- * Fixed funky highlighting of messages. Closes #97
- * Fixed `mocha-debug(1)`. Closes #232
- * Fixed growl total, use runner.total
-
-0.1.0 / 2011-11-29
-==================
-
- * Added `suiteSetup` and `suiteTeardown` to TDD interface [David Henderson]
- * Added growl icons. Closes #84
- * Fixed coffee-script support
-
-0.0.8 / 2011-11-25
-==================
-
- * Fixed: use `Runner#total` for accurate reporting
-
-0.0.7 / 2011-11-25
-==================
-
- * Added `Hook`
- * Added `Runnable`
- * Changed: `Test` is `Runnable`
- * Fixed global leak reporting in hooks
- * Fixed: > 2 calls to done() only report the error once
- * Fixed: clear timer on failure. Closes #80
-
-0.0.6 / 2011-11-25
-==================
-
- * Fixed return on immediate async error. Closes #80
-
-0.0.5 / 2011-11-24
-==================
-
- * Fixed: make mocha.opts whitespace less picky [kkaefer]
-
-0.0.4 / 2011-11-24
-==================
-
- * Added `--interfaces`
- * Added `--reporters`
- * Added `-c, --colors`. Closes #69
- * Fixed hook timeouts
-
-0.0.3 / 2011-11-23
-==================
-
- * Added `-C, --no-colors` to explicitly disable
- * Added coffee-script support
-
-0.0.2 / 2011-11-22
-==================
-
- * Fixed global leak detection due to Safari bind() change
- * Fixed: escape html entities in Doc reporter
- * Fixed: escape html entities in HTML reporter
- * Fixed pending test support for HTML reporter. Closes #66
-
-0.0.1 / 2011-11-22
-==================
-
- * Added `--timeout` second shorthand support, ex `--timeout 3s`.
- * Fixed "test end" event for uncaughtExceptions. Closes #61
-
-0.0.1-alpha6 / 2011-11-19
-==================
-
- * Added travis CI support (needs enabling when public)
- * Added preliminary browser support
- * Added `make mocha.css` target. Closes #45
- * Added stack trace to TAP errors. Closes #52
- * Renamed tearDown to teardown. Closes #49
- * Fixed: cascading hooksc. Closes #30
- * Fixed some colors for non-tty
- * Fixed errors thrown in sync test-cases due to nextTick
- * Fixed Base.window.width... again give precedence to 0.6.x
-
-0.0.1-alpha5 / 2011-11-17
-==================
-
- * Added `doc` reporter. Closes #33
- * Added suite merging. Closes #28
- * Added TextMate bundle and `make tm`. Closes #20
-
-0.0.1-alpha4 / 2011-11-15
-==================
-
- * Fixed getWindowSize() for 0.4.x
-
-0.0.1-alpha3 / 2011-11-15
-==================
-
- * Added `-s, --slow <ms>` to specify "slow" test threshold
- * Added `mocha-debug(1)`
- * Added `mocha.opts` support. Closes #31
- * Added: default [files] to _test/*.js_
- * Added protection against multiple calls to `done()`. Closes #35
- * Changed: bright yellow for slow Dot reporter tests
-
-0.0.1-alpha1 / 2011-11-08
-==================
-
- * Missed this one :)
-
-0.0.1-alpha1 / 2011-11-08
-==================
-
- * Initial release
diff --git a/node_modules/mocha/LICENSE b/node_modules/mocha/LICENSE
deleted file mode 100644
index 991964127..000000000
--- a/node_modules/mocha/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2011-2016 TJ Holowaychuk <tj@vision-media.ca>
-
-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.
diff --git a/node_modules/mocha/bin/.eslintrc b/node_modules/mocha/bin/.eslintrc
deleted file mode 100644
index db7424631..000000000
--- a/node_modules/mocha/bin/.eslintrc
+++ /dev/null
@@ -1,3 +0,0 @@
----
-rules:
- no-process-exit: 0
diff --git a/node_modules/mocha/bin/_mocha b/node_modules/mocha/bin/_mocha
deleted file mode 100755
index ad4ed4037..000000000
--- a/node_modules/mocha/bin/_mocha
+++ /dev/null
@@ -1,480 +0,0 @@
-#!/usr/bin/env node
-
-/**
- * Module dependencies.
- */
-
-var program = require('commander'),
- path = require('path'),
- fs = require('fs'),
- resolve = path.resolve,
- exists = fs.existsSync || path.existsSync,
- Mocha = require('../'),
- utils = Mocha.utils,
- join = path.join,
- cwd = process.cwd(),
- getOptions = require('./options'),
- mocha = new Mocha;
-
-/**
- * Save timer references to avoid Sinon interfering (see GH-237).
- */
-
-var Date = global.Date
- , setTimeout = global.setTimeout
- , setInterval = global.setInterval
- , clearTimeout = global.clearTimeout
- , clearInterval = global.clearInterval;
-
-/**
- * Files.
- */
-
-var files = [];
-
-/**
- * Globals.
- */
-
-var globals = [];
-
-/**
- * Requires.
- */
-
-var requires = [];
-
-/**
- * Images.
- */
-
-var images = {
- fail: __dirname + '/../images/error.png'
- , pass: __dirname + '/../images/ok.png'
-};
-
-// options
-
-program
- .version(JSON.parse(fs.readFileSync(__dirname + '/../package.json', 'utf8')).version)
- .usage('[debug] [options] [files]')
- .option('-A, --async-only', "force all tests to take a callback (async) or return a promise")
- .option('-c, --colors', 'force enabling of colors')
- .option('-C, --no-colors', 'force disabling of colors')
- .option('-G, --growl', 'enable growl notification support')
- .option('-O, --reporter-options <k=v,k2=v2,...>', 'reporter-specific options')
- .option('-R, --reporter <name>', 'specify the reporter to use', 'spec')
- .option('-S, --sort', "sort test files")
- .option('-b, --bail', "bail after first test failure")
- .option('-d, --debug', "enable node's debugger, synonym for node --debug")
- .option('-g, --grep <pattern>', 'only run tests matching <pattern>')
- .option('-f, --fgrep <string>', 'only run tests containing <string>')
- .option('-gc, --expose-gc', 'expose gc extension')
- .option('-i, --invert', 'inverts --grep and --fgrep matches')
- .option('-r, --require <name>', 'require the given module')
- .option('-s, --slow <ms>', '"slow" test threshold in milliseconds [75]')
- .option('-t, --timeout <ms>', 'set test-case timeout in milliseconds [2000]')
- .option('-u, --ui <name>', 'specify user-interface (bdd|tdd|exports)', 'bdd')
- .option('-w, --watch', 'watch files for changes')
- .option('--check-leaks', 'check for global variable leaks')
- .option('--full-trace', 'display the full stack trace')
- .option('--compilers <ext>:<module>,...', 'use the given module(s) to compile files', list, [])
- .option('--debug-brk', "enable node's debugger breaking on the first line")
- .option('--globals <names>', 'allow the given comma-delimited global [names]', list, [])
- .option('--es_staging', 'enable all staged features')
- .option('--harmony<_classes,_generators,...>', 'all node --harmony* flags are available')
- .option('--icu-data-dir', 'include ICU data')
- .option('--inline-diffs', 'display actual/expected differences inline within each string')
- .option('--interfaces', 'display available interfaces')
- .option('--no-deprecation', 'silence deprecation warnings')
- .option('--no-exit', 'require a clean shutdown of the event loop: mocha will not call process.exit')
- .option('--no-timeouts', 'disables timeouts, given implicitly with --debug')
- .option('--opts <path>', 'specify opts path', 'test/mocha.opts')
- .option('--perf-basic-prof', 'enable perf linux profiler (basic support)')
- .option('--prof', 'log statistical profiling information')
- .option('--log-timer-events', 'Time events including external callbacks')
- .option('--recursive', 'include sub directories')
- .option('--reporters', 'display available reporters')
- .option('--retries <times>', 'set numbers of time to retry a failed test case')
- .option('--throw-deprecation', 'throw an exception anytime a deprecated function is used')
- .option('--trace', 'trace function calls')
- .option('--trace-deprecation', 'show stack traces on deprecations')
- .option('--use_strict', 'enforce strict mode')
- .option('--watch-extensions <ext>,...', 'additional extensions to monitor with --watch', list, [])
- .option('--delay', 'wait for async suite definition')
-
-program.name = 'mocha';
-
-// init command
-
-program
- .command('init <path>')
- .description('initialize a client-side mocha setup at <path>')
- .action(function(path){
- var mkdir = require('mkdirp');
- mkdir.sync(path);
- var css = fs.readFileSync(join(__dirname, '..', 'mocha.css'));
- var js = fs.readFileSync(join(__dirname, '..', 'mocha.js'));
- var tmpl = fs.readFileSync(join(__dirname, '..', 'lib/template.html'));
- fs.writeFileSync(join(path, 'mocha.css'), css);
- fs.writeFileSync(join(path, 'mocha.js'), js);
- fs.writeFileSync(join(path, 'tests.js'), '');
- fs.writeFileSync(join(path, 'index.html'), tmpl);
- process.exit(0);
- });
-
-// --globals
-
-program.on('globals', function(val){
- globals = globals.concat(list(val));
-});
-
-// --reporters
-
-program.on('reporters', function(){
- console.log();
- console.log(' dot - dot matrix');
- console.log(' doc - html documentation');
- console.log(' spec - hierarchical spec list');
- console.log(' json - single json object');
- console.log(' progress - progress bar');
- console.log(' list - spec-style listing');
- console.log(' tap - test-anything-protocol');
- console.log(' landing - unicode landing strip');
- console.log(' xunit - xunit reporter');
- console.log(' html-cov - HTML test coverage');
- console.log(' json-cov - JSON test coverage');
- console.log(' min - minimal reporter (great with --watch)');
- console.log(' json-stream - newline delimited json events');
- console.log(' markdown - markdown documentation (github flavour)');
- console.log(' nyan - nyan cat!');
- console.log();
- process.exit();
-});
-
-// --interfaces
-
-program.on('interfaces', function(){
- console.log('');
- console.log(' bdd');
- console.log(' tdd');
- console.log(' qunit');
- console.log(' exports');
- console.log('');
- process.exit();
-});
-
-// -r, --require
-
-module.paths.push(cwd, join(cwd, 'node_modules'));
-
-program.on('require', function(mod){
- var abs = exists(mod) || exists(mod + '.js');
- if (abs) mod = resolve(mod);
- requires.push(mod);
-});
-
-// If not already done, load mocha.opts
-if (!process.env.LOADED_MOCHA_OPTS) {
- getOptions();
-}
-
-// parse args
-
-program.parse(process.argv);
-
-// infinite stack traces
-
-Error.stackTraceLimit = Infinity; // TODO: config
-
-// reporter options
-
-var reporterOptions = {};
-if (program.reporterOptions !== undefined) {
- program.reporterOptions.split(",").forEach(function(opt) {
- var L = opt.split("=");
- if (L.length > 2 || L.length === 0) {
- throw new Error("invalid reporter option '" + opt + "'");
- } else if (L.length === 2) {
- reporterOptions[L[0]] = L[1];
- } else {
- reporterOptions[L[0]] = true;
- }
- });
-}
-
-// reporter
-
-mocha.reporter(program.reporter, reporterOptions);
-
-// load reporter
-
-var Reporter = null;
-try {
- Reporter = require('../lib/reporters/' + program.reporter);
-} catch (err) {
- try {
- Reporter = require(program.reporter);
- } catch (err) {
- throw new Error('reporter "' + program.reporter + '" does not exist');
- }
-}
-
-// --no-colors
-
-if (!program.colors) mocha.useColors(false);
-
-// --colors
-
-if (~process.argv.indexOf('--colors') ||
- ~process.argv.indexOf('-c')) {
- mocha.useColors(true);
-}
-
-// --inline-diffs
-
-if (program.inlineDiffs) mocha.useInlineDiffs(true);
-
-// --slow <ms>
-
-if (program.slow) mocha.suite.slow(program.slow);
-
-// --no-timeouts
-
-if (!program.timeouts) mocha.enableTimeouts(false);
-
-// --timeout
-
-if (program.timeout) mocha.suite.timeout(program.timeout);
-
-// --bail
-
-mocha.suite.bail(program.bail);
-
-// --grep
-
-if (program.grep) mocha.grep(new RegExp(program.grep));
-
-// --fgrep
-
-if (program.fgrep) mocha.grep(program.fgrep);
-
-// --invert
-
-if (program.invert) mocha.invert();
-
-// --check-leaks
-
-if (program.checkLeaks) mocha.checkLeaks();
-
-// --stack-trace
-
-if(program.fullTrace) mocha.fullTrace();
-
-// --growl
-
-if (program.growl) mocha.growl();
-
-// --async-only
-
-if (program.asyncOnly) mocha.asyncOnly();
-
-// --delay
-
-if (program.delay) mocha.delay();
-
-// --globals
-
-mocha.globals(globals);
-
-// --retries
-
-if (program.retries) mocha.suite.retries(program.retries);
-
-// custom compiler support
-
-var extensions = ['js'];
-program.compilers.forEach(function(c) {
- var compiler = c.split(':')
- , ext = compiler[0]
- , mod = compiler[1];
-
- if (mod[0] == '.') mod = join(process.cwd(), mod);
- require(mod);
- extensions.push(ext);
- program.watchExtensions.push(ext);
-});
-
-// requires
-
-requires.forEach(function(mod) {
- require(mod);
-});
-
-// interface
-
-mocha.ui(program.ui);
-
-//args
-
-var args = program.args;
-
-// default files to test/*.{js,coffee}
-
-if (!args.length) args.push('test');
-
-args.forEach(function(arg){
- files = files.concat(utils.lookupFiles(arg, extensions, program.recursive));
-});
-
-// resolve
-
-files = files.map(function(path){
- return resolve(path);
-});
-
-if (program.sort) {
- files.sort();
-}
-
-// --watch
-
-var runner;
-if (program.watch) {
- console.log();
- hideCursor();
- process.on('SIGINT', function(){
- showCursor();
- console.log('\n');
- process.exit();
- });
-
-
- var watchFiles = utils.files(cwd, [ 'js' ].concat(program.watchExtensions));
- var runAgain = false;
-
- function loadAndRun() {
- try {
- mocha.files = files;
- runAgain = false;
- runner = mocha.run(function(){
- runner = null;
- if (runAgain) {
- rerun();
- }
- });
- } catch(e) {
- console.log(e.stack);
- }
- }
-
- function purge() {
- watchFiles.forEach(function(file){
- delete require.cache[file];
- });
- }
-
- loadAndRun();
-
- function rerun() {
- purge();
- stop()
- if (!program.grep)
- mocha.grep(null);
- mocha.suite = mocha.suite.clone();
- mocha.suite.ctx = new Mocha.Context;
- mocha.ui(program.ui);
- loadAndRun();
- }
-
- utils.watch(watchFiles, function(){
- runAgain = true;
- if (runner) {
- runner.abort();
- } else {
- rerun();
- }
- });
-
-} else {
-
-// load
-
- mocha.files = files;
- runner = mocha.run(program.exit ? exit : exitLater);
-
-}
-
-function exitLater(code) {
- process.on('exit', function() { process.exit(code) })
-}
-
-function exit(code) {
- // flush output for Node.js Windows pipe bug
- // https://github.com/joyent/node/issues/6247 is just one bug example
- // https://github.com/visionmedia/mocha/issues/333 has a good discussion
- function done() {
- if (!(draining--)) process.exit(code);
- }
-
- var draining = 0;
- var streams = [process.stdout, process.stderr];
-
- streams.forEach(function(stream){
- // submit empty write request and wait for completion
- draining += 1;
- stream.write('', done);
- });
-
- done();
-}
-
-process.on('SIGINT', function() { runner.abort(); })
-
-/**
- * Parse list.
- */
-
-function list(str) {
- return str.split(/ *, */);
-}
-
-/**
- * Hide the cursor.
- */
-
-function hideCursor(){
- process.stdout.write('\u001b[?25l');
-}
-
-/**
- * Show the cursor.
- */
-
-function showCursor(){
- process.stdout.write('\u001b[?25h');
-}
-
-/**
- * Stop play()ing.
- */
-
-function stop() {
- process.stdout.write('\u001b[2K');
- clearInterval(play.timer);
-}
-
-/**
- * Play the given array of strings.
- */
-
-function play(arr, interval) {
- var len = arr.length
- , interval = interval || 100
- , i = 0;
-
- play.timer = setInterval(function(){
- var str = arr[i++ % len];
- process.stdout.write('\u001b[0G' + str);
- }, interval);
-}
diff --git a/node_modules/mocha/bin/mocha b/node_modules/mocha/bin/mocha
deleted file mode 100755
index f6606e49b..000000000
--- a/node_modules/mocha/bin/mocha
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/usr/bin/env node
-
-/**
- * This tiny wrapper file checks for known node flags and appends them
- * when found, before invoking the "real" _mocha(1) executable.
- */
-
-var spawn = require('child_process').spawn,
- path = require('path'),
- fs = require('fs'),
- getOptions = require('./options'),
- args = [path.join(__dirname, '_mocha')];
-
-// Load mocha.opts into process.argv
-// Must be loaded here to handle node-specific options
-getOptions();
-
-process.argv.slice(2).forEach(function(arg){
- var flag = arg.split('=')[0];
-
- switch (flag) {
- case '-d':
- args.unshift('--debug');
- args.push('--no-timeouts');
- break;
- case 'debug':
- case '--debug':
- case '--debug-brk':
- args.unshift(arg);
- args.push('--no-timeouts');
- break;
- case '-gc':
- case '--expose-gc':
- args.unshift('--expose-gc');
- break;
- case '--gc-global':
- case '--es_staging':
- case '--no-deprecation':
- case '--prof':
- case '--log-timer-events':
- case '--throw-deprecation':
- case '--trace-deprecation':
- case '--use_strict':
- case '--allow-natives-syntax':
- case '--perf-basic-prof':
- args.unshift(arg);
- break;
- default:
- if (0 == arg.indexOf('--harmony')) args.unshift(arg);
- else if (0 == arg.indexOf('--trace')) args.unshift(arg);
- else if (0 == arg.indexOf('--icu-data-dir')) args.unshift(arg);
- else if (0 == arg.indexOf('--max-old-space-size')) args.unshift(arg);
- else args.push(arg);
- break;
- }
-});
-
-var proc = spawn(process.execPath, args, { stdio: 'inherit' });
-proc.on('exit', function (code, signal) {
- process.on('exit', function(){
- if (signal) {
- process.kill(process.pid, signal);
- } else {
- process.exit(code);
- }
- });
-});
-
-// terminate children.
-process.on('SIGINT', function () {
- proc.kill('SIGINT'); // calls runner.abort()
- proc.kill('SIGTERM'); // if that didn't work, we're probably in an infinite loop, so make it die.
-});
diff --git a/node_modules/mocha/bin/options.js b/node_modules/mocha/bin/options.js
deleted file mode 100644
index 9d1a18a23..000000000
--- a/node_modules/mocha/bin/options.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Dependencies.
- */
-
-var fs = require('fs');
-
-/**
- * Export `getOptions`.
- */
-
-module.exports = getOptions;
-
-/**
- * Get options.
- */
-
-function getOptions() {
- var optsPath = process.argv.indexOf('--opts') !== -1
- ? process.argv[process.argv.indexOf('--opts') + 1]
- : 'test/mocha.opts';
-
- try {
- var opts = fs.readFileSync(optsPath, 'utf8')
- .replace(/\\\s/g, '%20')
- .split(/\s/)
- .filter(Boolean)
- .map(function(value) {
- return value.replace(/%20/g, ' ');
- });
-
- process.argv = process.argv
- .slice(0, 2)
- .concat(opts.concat(process.argv.slice(2)));
- } catch (err) {
- // ignore
- }
-
- process.env.LOADED_MOCHA_OPTS = true;
-}
diff --git a/node_modules/mocha/images/error.png b/node_modules/mocha/images/error.png
deleted file mode 100644
index a07a1ba5e..000000000
--- a/node_modules/mocha/images/error.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/mocha/images/ok.png b/node_modules/mocha/images/ok.png
deleted file mode 100644
index b3623a599..000000000
--- a/node_modules/mocha/images/ok.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/mocha/index.js b/node_modules/mocha/index.js
deleted file mode 100644
index 169b27177..000000000
--- a/node_modules/mocha/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = process.env.COV
- ? require('./lib-cov/mocha')
- : require('./lib/mocha');
diff --git a/node_modules/mocha/lib/browser/debug.js b/node_modules/mocha/lib/browser/debug.js
deleted file mode 100644
index ba232896d..000000000
--- a/node_modules/mocha/lib/browser/debug.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/* eslint-disable no-unused-vars */
-module.exports = function(type) {
- return function() {};
-};
diff --git a/node_modules/mocha/lib/browser/events.js b/node_modules/mocha/lib/browser/events.js
deleted file mode 100644
index b4342f620..000000000
--- a/node_modules/mocha/lib/browser/events.js
+++ /dev/null
@@ -1,193 +0,0 @@
-/**
- * Module exports.
- */
-
-exports.EventEmitter = EventEmitter;
-
-/**
- * Object#toString reference.
- */
-var objToString = Object.prototype.toString;
-
-/**
- * Check if a value is an array.
- *
- * @api private
- * @param {*} val The value to test.
- * @return {boolean} true if the value is an array, otherwise false.
- */
-function isArray(val) {
- return objToString.call(val) === '[object Array]';
-}
-
-/**
- * Event emitter constructor.
- *
- * @api public
- */
-function EventEmitter() {}
-
-/**
- * Add a listener.
- *
- * @api public
- * @param {string} name Event name.
- * @param {Function} fn Event handler.
- * @return {EventEmitter} Emitter instance.
- */
-EventEmitter.prototype.on = function(name, fn) {
- if (!this.$events) {
- this.$events = {};
- }
-
- if (!this.$events[name]) {
- this.$events[name] = fn;
- } else if (isArray(this.$events[name])) {
- this.$events[name].push(fn);
- } else {
- this.$events[name] = [this.$events[name], fn];
- }
-
- return this;
-};
-
-EventEmitter.prototype.addListener = EventEmitter.prototype.on;
-
-/**
- * Adds a volatile listener.
- *
- * @api public
- * @param {string} name Event name.
- * @param {Function} fn Event handler.
- * @return {EventEmitter} Emitter instance.
- */
-EventEmitter.prototype.once = function(name, fn) {
- var self = this;
-
- function on() {
- self.removeListener(name, on);
- fn.apply(this, arguments);
- }
-
- on.listener = fn;
- this.on(name, on);
-
- return this;
-};
-
-/**
- * Remove a listener.
- *
- * @api public
- * @param {string} name Event name.
- * @param {Function} fn Event handler.
- * @return {EventEmitter} Emitter instance.
- */
-EventEmitter.prototype.removeListener = function(name, fn) {
- if (this.$events && this.$events[name]) {
- var list = this.$events[name];
-
- if (isArray(list)) {
- var pos = -1;
-
- for (var i = 0, l = list.length; i < l; i++) {
- if (list[i] === fn || (list[i].listener && list[i].listener === fn)) {
- pos = i;
- break;
- }
- }
-
- if (pos < 0) {
- return this;
- }
-
- list.splice(pos, 1);
-
- if (!list.length) {
- delete this.$events[name];
- }
- } else if (list === fn || (list.listener && list.listener === fn)) {
- delete this.$events[name];
- }
- }
-
- return this;
-};
-
-/**
- * Remove all listeners for an event.
- *
- * @api public
- * @param {string} name Event name.
- * @return {EventEmitter} Emitter instance.
- */
-EventEmitter.prototype.removeAllListeners = function(name) {
- if (name === undefined) {
- this.$events = {};
- return this;
- }
-
- if (this.$events && this.$events[name]) {
- this.$events[name] = null;
- }
-
- return this;
-};
-
-/**
- * Get all listeners for a given event.
- *
- * @api public
- * @param {string} name Event name.
- * @return {EventEmitter} Emitter instance.
- */
-EventEmitter.prototype.listeners = function(name) {
- if (!this.$events) {
- this.$events = {};
- }
-
- if (!this.$events[name]) {
- this.$events[name] = [];
- }
-
- if (!isArray(this.$events[name])) {
- this.$events[name] = [this.$events[name]];
- }
-
- return this.$events[name];
-};
-
-/**
- * Emit an event.
- *
- * @api public
- * @param {string} name Event name.
- * @return {boolean} true if at least one handler was invoked, else false.
- */
-EventEmitter.prototype.emit = function(name) {
- if (!this.$events) {
- return false;
- }
-
- var handler = this.$events[name];
-
- if (!handler) {
- return false;
- }
-
- var args = Array.prototype.slice.call(arguments, 1);
-
- if (typeof handler === 'function') {
- handler.apply(this, args);
- } else if (isArray(handler)) {
- var listeners = handler.slice();
-
- for (var i = 0, l = listeners.length; i < l; i++) {
- listeners[i].apply(this, args);
- }
- } else {
- return false;
- }
-
- return true;
-};
diff --git a/node_modules/mocha/lib/browser/progress.js b/node_modules/mocha/lib/browser/progress.js
deleted file mode 100644
index 3186b6ec5..000000000
--- a/node_modules/mocha/lib/browser/progress.js
+++ /dev/null
@@ -1,117 +0,0 @@
-/**
- * Expose `Progress`.
- */
-
-module.exports = Progress;
-
-/**
- * Initialize a new `Progress` indicator.
- */
-function Progress() {
- this.percent = 0;
- this.size(0);
- this.fontSize(11);
- this.font('helvetica, arial, sans-serif');
-}
-
-/**
- * Set progress size to `size`.
- *
- * @api public
- * @param {number} size
- * @return {Progress} Progress instance.
- */
-Progress.prototype.size = function(size) {
- this._size = size;
- return this;
-};
-
-/**
- * Set text to `text`.
- *
- * @api public
- * @param {string} text
- * @return {Progress} Progress instance.
- */
-Progress.prototype.text = function(text) {
- this._text = text;
- return this;
-};
-
-/**
- * Set font size to `size`.
- *
- * @api public
- * @param {number} size
- * @return {Progress} Progress instance.
- */
-Progress.prototype.fontSize = function(size) {
- this._fontSize = size;
- return this;
-};
-
-/**
- * Set font to `family`.
- *
- * @param {string} family
- * @return {Progress} Progress instance.
- */
-Progress.prototype.font = function(family) {
- this._font = family;
- return this;
-};
-
-/**
- * Update percentage to `n`.
- *
- * @param {number} n
- * @return {Progress} Progress instance.
- */
-Progress.prototype.update = function(n) {
- this.percent = n;
- return this;
-};
-
-/**
- * Draw on `ctx`.
- *
- * @param {CanvasRenderingContext2d} ctx
- * @return {Progress} Progress instance.
- */
-Progress.prototype.draw = function(ctx) {
- try {
- var percent = Math.min(this.percent, 100);
- var size = this._size;
- var half = size / 2;
- var x = half;
- var y = half;
- var rad = half - 1;
- var fontSize = this._fontSize;
-
- ctx.font = fontSize + 'px ' + this._font;
-
- var angle = Math.PI * 2 * (percent / 100);
- ctx.clearRect(0, 0, size, size);
-
- // outer circle
- ctx.strokeStyle = '#9f9f9f';
- ctx.beginPath();
- ctx.arc(x, y, rad, 0, angle, false);
- ctx.stroke();
-
- // inner circle
- ctx.strokeStyle = '#eee';
- ctx.beginPath();
- ctx.arc(x, y, rad - 1, 0, angle, true);
- ctx.stroke();
-
- // text
- var text = this._text || (percent | 0) + '%';
- var w = ctx.measureText(text).width;
-
- ctx.fillText(text, x - w / 2 + 1, y + fontSize / 2 - 1);
- } catch (err) {
- // don't fail if we can't render progress
- }
- return this;
-};
diff --git a/node_modules/mocha/lib/browser/tty.js b/node_modules/mocha/lib/browser/tty.js
deleted file mode 100644
index 840d6699e..000000000
--- a/node_modules/mocha/lib/browser/tty.js
+++ /dev/null
@@ -1,11 +0,0 @@
-exports.isatty = function isatty() {
- return true;
-};
-
-exports.getWindowSize = function getWindowSize() {
- if ('innerHeight' in global) {
- return [global.innerHeight, global.innerWidth];
- }
- // In a Web Worker, the DOM Window is not available.
- return [640, 480];
-};
diff --git a/node_modules/mocha/lib/context.js b/node_modules/mocha/lib/context.js
deleted file mode 100644
index 4e7247b84..000000000
--- a/node_modules/mocha/lib/context.js
+++ /dev/null
@@ -1,104 +0,0 @@
-/**
- * Expose `Context`.
- */
-
-module.exports = Context;
-
-/**
- * Initialize a new `Context`.
- *
- * @api private
- */
-function Context() {}
-
-/**
- * Set or get the context `Runnable` to `runnable`.
- *
- * @api private
- * @param {Runnable} runnable
- * @return {Context}
- */
-Context.prototype.runnable = function(runnable) {
- if (!arguments.length) {
- return this._runnable;
- }
- this.test = this._runnable = runnable;
- return this;
-};
-
-/**
- * Set test timeout `ms`.
- *
- * @api private
- * @param {number} ms
- * @return {Context} self
- */
-Context.prototype.timeout = function(ms) {
- if (!arguments.length) {
- return this.runnable().timeout();
- }
- this.runnable().timeout(ms);
- return this;
-};
-
-/**
- * Set test timeout `enabled`.
- *
- * @api private
- * @param {boolean} enabled
- * @return {Context} self
- */
-Context.prototype.enableTimeouts = function(enabled) {
- this.runnable().enableTimeouts(enabled);
- return this;
-};
-
-/**
- * Set test slowness threshold `ms`.
- *
- * @api private
- * @param {number} ms
- * @return {Context} self
- */
-Context.prototype.slow = function(ms) {
- this.runnable().slow(ms);
- return this;
-};
-
-/**
- * Mark a test as skipped.
- *
- * @api private
- * @return {Context} self
- */
-Context.prototype.skip = function() {
- this.runnable().skip();
- return this;
-};
-
-/**
- * Allow a number of retries on failed tests
- *
- * @api private
- * @param {number} n
- * @return {Context} self
- */
-Context.prototype.retries = function(n) {
- if (!arguments.length) {
- return this.runnable().retries();
- }
- this.runnable().retries(n);
- return this;
-};
-
-/**
- * Inspect the context void of `._runnable`.
- *
- * @api private
- * @return {string}
- */
-Context.prototype.inspect = function() {
- return JSON.stringify(this, function(key, val) {
- return key === 'runnable' || key === 'test' ? undefined : val;
- }, 2);
-};
diff --git a/node_modules/mocha/lib/hook.js b/node_modules/mocha/lib/hook.js
deleted file mode 100644
index 0417e013c..000000000
--- a/node_modules/mocha/lib/hook.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Runnable = require('./runnable');
-var inherits = require('./utils').inherits;
-
-/**
- * Expose `Hook`.
- */
-
-module.exports = Hook;
-
-/**
- * Initialize a new `Hook` with the given `title` and callback `fn`.
- *
- * @param {String} title
- * @param {Function} fn
- * @api private
- */
-function Hook(title, fn) {
- Runnable.call(this, title, fn);
- this.type = 'hook';
-}
-
-/**
- * Inherit from `Runnable.prototype`.
- */
-inherits(Hook, Runnable);
-
-/**
- * Get or set the test `err`.
- *
- * @param {Error} err
- * @return {Error}
- * @api public
- */
-Hook.prototype.error = function(err) {
- if (!arguments.length) {
- err = this._error;
- this._error = null;
- return err;
- }
-
- this._error = err;
-};
diff --git a/node_modules/mocha/lib/interfaces/bdd.js b/node_modules/mocha/lib/interfaces/bdd.js
deleted file mode 100644
index 8519a9a7b..000000000
--- a/node_modules/mocha/lib/interfaces/bdd.js
+++ /dev/null
@@ -1,117 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Suite = require('../suite');
-var Test = require('../test');
-var escapeRe = require('escape-string-regexp');
-
-/**
- * BDD-style interface:
- *
- * describe('Array', function() {
- * describe('#indexOf()', function() {
- * it('should return -1 when not present', function() {
- * // ...
- * });
- *
- * it('should return the index when present', function() {
- * // ...
- * });
- * });
- * });
- *
- * @param {Suite} suite Root suite.
- */
-module.exports = function(suite) {
- var suites = [suite];
-
- suite.on('pre-require', function(context, file, mocha) {
- var common = require('./common')(suites, context);
-
- context.before = common.before;
- context.after = common.after;
- context.beforeEach = common.beforeEach;
- context.afterEach = common.afterEach;
- context.run = mocha.options.delay && common.runWithSuite(suite);
- /**
- * Describe a "suite" with the given `title`
- * and callback `fn` containing nested suites
- * and/or tests.
- */
-
- context.describe = context.context = function(title, fn) {
- var suite = Suite.create(suites[0], title);
- suite.file = file;
- suites.unshift(suite);
- fn.call(suite);
- suites.shift();
- return suite;
- };
-
- /**
- * Pending describe.
- */
-
- context.xdescribe = context.xcontext = context.describe.skip = function(title, fn) {
- var suite = Suite.create(suites[0], title);
- suite.pending = true;
- suites.unshift(suite);
- fn.call(suite);
- suites.shift();
- };
-
- /**
- * Exclusive suite.
- */
-
- context.describe.only = function(title, fn) {
- var suite = context.describe(title, fn);
- mocha.grep(suite.fullTitle());
- return suite;
- };
-
- /**
- * Describe a specification or test-case
- * with the given `title` and callback `fn`
- * acting as a thunk.
- */
-
- var it = context.it = context.specify = function(title, fn) {
- var suite = suites[0];
- if (suite.isPending()) {
- fn = null;
- }
- var test = new Test(title, fn);
- test.file = file;
- suite.addTest(test);
- return test;
- };
-
- /**
- * Exclusive test-case.
- */
-
- context.it.only = function(title, fn) {
- var test = it(title, fn);
- var reString = '^' + escapeRe(test.fullTitle()) + '$';
- mocha.grep(new RegExp(reString));
- return test;
- };
-
- /**
- * Pending test case.
- */
-
- context.xit = context.xspecify = context.it.skip = function(title) {
- context.it(title);
- };
-
- /**
- * Number of attempts to retry.
- */
- context.it.retries = function(n) {
- context.retries(n);
- };
- });
-};
diff --git a/node_modules/mocha/lib/interfaces/common.js b/node_modules/mocha/lib/interfaces/common.js
deleted file mode 100644
index db939085c..000000000
--- a/node_modules/mocha/lib/interfaces/common.js
+++ /dev/null
@@ -1,85 +0,0 @@
-'use strict';
-
-/**
- * Functions common to more than one interface.
- *
- * @param {Suite[]} suites
- * @param {Context} context
- * @return {Object} An object containing common functions.
- */
-module.exports = function(suites, context) {
- return {
- /**
- * This is only present if flag --delay is passed into Mocha. It triggers
- * root suite execution.
- *
- * @param {Suite} suite The root wuite.
- * @return {Function} A function which runs the root suite
- */
- runWithSuite: function runWithSuite(suite) {
- return function run() {
- suite.run();
- };
- },
-
- /**
- * Execute before running tests.
- *
- * @param {string} name
- * @param {Function} fn
- */
- before: function(name, fn) {
- suites[0].beforeAll(name, fn);
- },
-
- /**
- * Execute after running tests.
- *
- * @param {string} name
- * @param {Function} fn
- */
- after: function(name, fn) {
- suites[0].afterAll(name, fn);
- },
-
- /**
- * Execute before each test case.
- *
- * @param {string} name
- * @param {Function} fn
- */
- beforeEach: function(name, fn) {
- suites[0].beforeEach(name, fn);
- },
-
- /**
- * Execute after each test case.
- *
- * @param {string} name
- * @param {Function} fn
- */
- afterEach: function(name, fn) {
- suites[0].afterEach(name, fn);
- },
-
- test: {
- /**
- * Pending test case.
- *
- * @param {string} title
- */
- skip: function(title) {
- context.test(title);
- },
-
- /**
- * Number of retry attempts
- *
- * @param {number} n
- */
- retries: function(n) {
- context.retries(n);
- }
- }
- };
-};
diff --git a/node_modules/mocha/lib/interfaces/exports.js b/node_modules/mocha/lib/interfaces/exports.js
deleted file mode 100644
index 7db6e47c9..000000000
--- a/node_modules/mocha/lib/interfaces/exports.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Suite = require('../suite');
-var Test = require('../test');
-
-/**
- * Exports-style (as Node.js module) interface:
- *
- * exports.Array = {
- * '#indexOf()': {
- * 'should return -1 when the value is not present': function() {
- *
- * },
- *
- * 'should return the correct index when the value is present': function() {
- *
- * }
- * }
- * };
- *
- * @param {Suite} suite Root suite.
- */
-module.exports = function(suite) {
- var suites = [suite];
-
- suite.on('require', visit);
-
- function visit(obj, file) {
- var suite;
- for (var key in obj) {
- if (typeof obj[key] === 'function') {
- var fn = obj[key];
- switch (key) {
- case 'before':
- suites[0].beforeAll(fn);
- break;
- case 'after':
- suites[0].afterAll(fn);
- break;
- case 'beforeEach':
- suites[0].beforeEach(fn);
- break;
- case 'afterEach':
- suites[0].afterEach(fn);
- break;
- default:
- var test = new Test(key, fn);
- test.file = file;
- suites[0].addTest(test);
- }
- } else {
- suite = Suite.create(suites[0], key);
- suites.unshift(suite);
- visit(obj[key], file);
- suites.shift();
- }
- }
- }
-};
diff --git a/node_modules/mocha/lib/interfaces/index.js b/node_modules/mocha/lib/interfaces/index.js
deleted file mode 100644
index 4f825d15b..000000000
--- a/node_modules/mocha/lib/interfaces/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-exports.bdd = require('./bdd');
-exports.tdd = require('./tdd');
-exports.qunit = require('./qunit');
-exports.exports = require('./exports');
diff --git a/node_modules/mocha/lib/interfaces/qunit.js b/node_modules/mocha/lib/interfaces/qunit.js
deleted file mode 100644
index b79dcc68c..000000000
--- a/node_modules/mocha/lib/interfaces/qunit.js
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Suite = require('../suite');
-var Test = require('../test');
-var escapeRe = require('escape-string-regexp');
-
-/**
- * QUnit-style interface:
- *
- * suite('Array');
- *
- * test('#length', function() {
- * var arr = [1,2,3];
- * ok(arr.length == 3);
- * });
- *
- * test('#indexOf()', function() {
- * var arr = [1,2,3];
- * ok(arr.indexOf(1) == 0);
- * ok(arr.indexOf(2) == 1);
- * ok(arr.indexOf(3) == 2);
- * });
- *
- * suite('String');
- *
- * test('#length', function() {
- * ok('foo'.length == 3);
- * });
- *
- * @param {Suite} suite Root suite.
- */
-module.exports = function(suite) {
- var suites = [suite];
-
- suite.on('pre-require', function(context, file, mocha) {
- var common = require('./common')(suites, context);
-
- context.before = common.before;
- context.after = common.after;
- context.beforeEach = common.beforeEach;
- context.afterEach = common.afterEach;
- context.run = mocha.options.delay && common.runWithSuite(suite);
- /**
- * Describe a "suite" with the given `title`.
- */
-
- context.suite = function(title) {
- if (suites.length > 1) {
- suites.shift();
- }
- var suite = Suite.create(suites[0], title);
- suite.file = file;
- suites.unshift(suite);
- return suite;
- };
-
- /**
- * Exclusive test-case.
- */
-
- context.suite.only = function(title, fn) {
- var suite = context.suite(title, fn);
- mocha.grep(suite.fullTitle());
- };
-
- /**
- * Describe a specification or test-case
- * with the given `title` and callback `fn`
- * acting as a thunk.
- */
-
- context.test = function(title, fn) {
- var test = new Test(title, fn);
- test.file = file;
- suites[0].addTest(test);
- return test;
- };
-
- /**
- * Exclusive test-case.
- */
-
- context.test.only = function(title, fn) {
- var test = context.test(title, fn);
- var reString = '^' + escapeRe(test.fullTitle()) + '$';
- mocha.grep(new RegExp(reString));
- };
-
- context.test.skip = common.test.skip;
- context.test.retries = common.test.retries;
- });
-};
diff --git a/node_modules/mocha/lib/interfaces/tdd.js b/node_modules/mocha/lib/interfaces/tdd.js
deleted file mode 100644
index d37936ae4..000000000
--- a/node_modules/mocha/lib/interfaces/tdd.js
+++ /dev/null
@@ -1,106 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Suite = require('../suite');
-var Test = require('../test');
-var escapeRe = require('escape-string-regexp');
-
-/**
- * TDD-style interface:
- *
- * suite('Array', function() {
- * suite('#indexOf()', function() {
- * suiteSetup(function() {
- *
- * });
- *
- * test('should return -1 when not present', function() {
- *
- * });
- *
- * test('should return the index when present', function() {
- *
- * });
- *
- * suiteTeardown(function() {
- *
- * });
- * });
- * });
- *
- * @param {Suite} suite Root suite.
- */
-module.exports = function(suite) {
- var suites = [suite];
-
- suite.on('pre-require', function(context, file, mocha) {
- var common = require('./common')(suites, context);
-
- context.setup = common.beforeEach;
- context.teardown = common.afterEach;
- context.suiteSetup = common.before;
- context.suiteTeardown = common.after;
- context.run = mocha.options.delay && common.runWithSuite(suite);
-
- /**
- * Describe a "suite" with the given `title` and callback `fn` containing
- * nested suites and/or tests.
- */
- context.suite = function(title, fn) {
- var suite = Suite.create(suites[0], title);
- suite.file = file;
- suites.unshift(suite);
- fn.call(suite);
- suites.shift();
- return suite;
- };
-
- /**
- * Pending suite.
- */
- context.suite.skip = function(title, fn) {
- var suite = Suite.create(suites[0], title);
- suite.pending = true;
- suites.unshift(suite);
- fn.call(suite);
- suites.shift();
- };
-
- /**
- * Exclusive test-case.
- */
- context.suite.only = function(title, fn) {
- var suite = context.suite(title, fn);
- mocha.grep(suite.fullTitle());
- };
-
- /**
- * Describe a specification or test-case with the given `title` and
- * callback `fn` acting as a thunk.
- */
- context.test = function(title, fn) {
- var suite = suites[0];
- if (suite.isPending()) {
- fn = null;
- }
- var test = new Test(title, fn);
- test.file = file;
- suite.addTest(test);
- return test;
- };
-
- /**
- * Exclusive test-case.
- */
-
- context.test.only = function(title, fn) {
- var test = context.test(title, fn);
- var reString = '^' + escapeRe(test.fullTitle()) + '$';
- mocha.grep(new RegExp(reString));
- };
-
- context.test.skip = common.test.skip;
- context.test.retries = common.test.retries;
- });
-};
diff --git a/node_modules/mocha/lib/mocha.js b/node_modules/mocha/lib/mocha.js
deleted file mode 100644
index 46775ab55..000000000
--- a/node_modules/mocha/lib/mocha.js
+++ /dev/null
@@ -1,503 +0,0 @@
-/*!
- * mocha
- * Copyright(c) 2011 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var escapeRe = require('escape-string-regexp');
-var path = require('path');
-var reporters = require('./reporters');
-var utils = require('./utils');
-
-/**
- * Expose `Mocha`.
- */
-
-exports = module.exports = Mocha;
-
-/**
- * To require local UIs and reporters when running in node.
- */
-
-if (!process.browser) {
- var cwd = process.cwd();
- module.paths.push(cwd, path.join(cwd, 'node_modules'));
-}
-
-/**
- * Expose internals.
- */
-
-exports.utils = utils;
-exports.interfaces = require('./interfaces');
-exports.reporters = reporters;
-exports.Runnable = require('./runnable');
-exports.Context = require('./context');
-exports.Runner = require('./runner');
-exports.Suite = require('./suite');
-exports.Hook = require('./hook');
-exports.Test = require('./test');
-
-/**
- * Return image `name` path.
- *
- * @api private
- * @param {string} name
- * @return {string}
- */
-function image(name) {
- return path.join(__dirname, '../images', name + '.png');
-}
-
-/**
- * Set up mocha with `options`.
- *
- * Options:
- *
- * - `ui` name "bdd", "tdd", "exports" etc
- * - `reporter` reporter instance, defaults to `mocha.reporters.spec`
- * - `globals` array of accepted globals
- * - `timeout` timeout in milliseconds
- * - `retries` number of times to retry failed tests
- * - `bail` bail on the first test failure
- * - `slow` milliseconds to wait before considering a test slow
- * - `ignoreLeaks` ignore global leaks
- * - `fullTrace` display the full stack-trace on failing
- * - `grep` string or regexp to filter tests with
- *
- * @param {Object} options
- * @api public
- */
-function Mocha(options) {
- options = options || {};
- this.files = [];
- this.options = options;
- if (options.grep) {
- this.grep(new RegExp(options.grep));
- }
- if (options.fgrep) {
- this.grep(options.fgrep);
- }
- this.suite = new exports.Suite('', new exports.Context());
- this.ui(options.ui);
- this.bail(options.bail);
- this.reporter(options.reporter, options.reporterOptions);
- if (typeof options.timeout !== 'undefined' && options.timeout !== null) {
- this.timeout(options.timeout);
- }
- if (typeof options.retries !== 'undefined' && options.retries !== null) {
- this.retries(options.retries);
- }
- this.useColors(options.useColors);
- if (options.enableTimeouts !== null) {
- this.enableTimeouts(options.enableTimeouts);
- }
- if (options.slow) {
- this.slow(options.slow);
- }
-}
-
-/**
- * Enable or disable bailing on the first failure.
- *
- * @api public
- * @param {boolean} [bail]
- */
-Mocha.prototype.bail = function(bail) {
- if (!arguments.length) {
- bail = true;
- }
- this.suite.bail(bail);
- return this;
-};
-
-/**
- * Add test `file`.
- *
- * @api public
- * @param {string} file
- */
-Mocha.prototype.addFile = function(file) {
- this.files.push(file);
- return this;
-};
-
-/**
- * Set reporter to `reporter`, defaults to "spec".
- *
- * @param {String|Function} reporter name or constructor
- * @param {Object} reporterOptions optional options
- * @api public
- * @param {string|Function} reporter name or constructor
- * @param {Object} reporterOptions optional options
- */
-Mocha.prototype.reporter = function(reporter, reporterOptions) {
- if (typeof reporter === 'function') {
- this._reporter = reporter;
- } else {
- reporter = reporter || 'spec';
- var _reporter;
- // Try to load a built-in reporter.
- if (reporters[reporter]) {
- _reporter = reporters[reporter];
- }
- // Try to load reporters from process.cwd() and node_modules
- if (!_reporter) {
- try {
- _reporter = require(reporter);
- } catch (err) {
- err.message.indexOf('Cannot find module') !== -1
- ? console.warn('"' + reporter + '" reporter not found')
- : console.warn('"' + reporter + '" reporter blew up with error:\n' + err.stack);
- }
- }
- if (!_reporter && reporter === 'teamcity') {
- console.warn('The Teamcity reporter was moved to a package named '
- + 'mocha-teamcity-reporter '
- + '(https://npmjs.org/package/mocha-teamcity-reporter).');
- }
- if (!_reporter) {
- throw new Error('invalid reporter "' + reporter + '"');
- }
- this._reporter = _reporter;
- }
- this.options.reporterOptions = reporterOptions;
- return this;
-};
-
-/**
- * Set test UI `name`, defaults to "bdd".
- *
- * @api public
- * @param {string} bdd
- */
-Mocha.prototype.ui = function(name) {
- name = name || 'bdd';
- this._ui = exports.interfaces[name];
- if (!this._ui) {
- try {
- this._ui = require(name);
- } catch (err) {
- throw new Error('invalid interface "' + name + '"');
- }
- }
- this._ui = this._ui(this.suite);
-
- this.suite.on('pre-require', function(context) {
- exports.afterEach = context.afterEach || context.teardown;
- exports.after = context.after || context.suiteTeardown;
- exports.beforeEach = context.beforeEach || context.setup;
- exports.before = context.before || context.suiteSetup;
- exports.describe = context.describe || context.suite;
- exports.it = context.it || context.test;
- exports.setup = context.setup || context.beforeEach;
- exports.suiteSetup = context.suiteSetup || context.before;
- exports.suiteTeardown = context.suiteTeardown || context.after;
- exports.suite = context.suite || context.describe;
- exports.teardown = context.teardown || context.afterEach;
- exports.test = context.test || context.it;
- exports.run = context.run;
- });
-
- return this;
-};
-
-/**
- * Load registered files.
- *
- * @api private
- */
-Mocha.prototype.loadFiles = function(fn) {
- var self = this;
- var suite = this.suite;
- this.files.forEach(function(file) {
- file = path.resolve(file);
- suite.emit('pre-require', global, file, self);
- suite.emit('require', require(file), file, self);
- suite.emit('post-require', global, file, self);
- });
- fn && fn();
-};
-
-/**
- * Enable growl support.
- *
- * @api private
- */
-Mocha.prototype._growl = function(runner, reporter) {
- var notify = require('growl');
-
- runner.on('end', function() {
- var stats = reporter.stats;
- if (stats.failures) {
- var msg = stats.failures + ' of ' + runner.total + ' tests failed';
- notify(msg, { name: 'mocha', title: 'Failed', image: image('error') });
- } else {
- notify(stats.passes + ' tests passed in ' + stats.duration + 'ms', {
- name: 'mocha',
- title: 'Passed',
- image: image('ok')
- });
- }
- });
-};
-
-/**
- * Add regexp to grep, if `re` is a string it is escaped.
- *
- * @param {RegExp|String} re
- * @return {Mocha}
- * @api public
- * @param {RegExp|string} re
- * @return {Mocha}
- */
-Mocha.prototype.grep = function(re) {
- this.options.grep = typeof re === 'string' ? new RegExp(escapeRe(re)) : re;
- return this;
-};
-
-/**
- * Invert `.grep()` matches.
- *
- * @return {Mocha}
- * @api public
- */
-Mocha.prototype.invert = function() {
- this.options.invert = true;
- return this;
-};
-
-/**
- * Ignore global leaks.
- *
- * @param {Boolean} ignore
- * @return {Mocha}
- * @api public
- * @param {boolean} ignore
- * @return {Mocha}
- */
-Mocha.prototype.ignoreLeaks = function(ignore) {
- this.options.ignoreLeaks = Boolean(ignore);
- return this;
-};
-
-/**
- * Enable global leak checking.
- *
- * @return {Mocha}
- * @api public
- */
-Mocha.prototype.checkLeaks = function() {
- this.options.ignoreLeaks = false;
- return this;
-};
-
-/**
- * Display long stack-trace on failing
- *
- * @return {Mocha}
- * @api public
- */
-Mocha.prototype.fullTrace = function() {
- this.options.fullStackTrace = true;
- return this;
-};
-
-/**
- * Enable growl support.
- *
- * @return {Mocha}
- * @api public
- */
-Mocha.prototype.growl = function() {
- this.options.growl = true;
- return this;
-};
-
-/**
- * Ignore `globals` array or string.
- *
- * @param {Array|String} globals
- * @return {Mocha}
- * @api public
- * @param {Array|string} globals
- * @return {Mocha}
- */
-Mocha.prototype.globals = function(globals) {
- this.options.globals = (this.options.globals || []).concat(globals);
- return this;
-};
-
-/**
- * Emit color output.
- *
- * @param {Boolean} colors
- * @return {Mocha}
- * @api public
- * @param {boolean} colors
- * @return {Mocha}
- */
-Mocha.prototype.useColors = function(colors) {
- if (colors !== undefined) {
- this.options.useColors = colors;
- }
- return this;
-};
-
-/**
- * Use inline diffs rather than +/-.
- *
- * @param {Boolean} inlineDiffs
- * @return {Mocha}
- * @api public
- * @param {boolean} inlineDiffs
- * @return {Mocha}
- */
-Mocha.prototype.useInlineDiffs = function(inlineDiffs) {
- this.options.useInlineDiffs = inlineDiffs !== undefined && inlineDiffs;
- return this;
-};
-
-/**
- * Set the timeout in milliseconds.
- *
- * @param {Number} timeout
- * @return {Mocha}
- * @api public
- * @param {number} timeout
- * @return {Mocha}
- */
-Mocha.prototype.timeout = function(timeout) {
- this.suite.timeout(timeout);
- return this;
-};
-
-/**
- * Set the number of times to retry failed tests.
- *
- * @param {Number} retry times
- * @return {Mocha}
- * @api public
- */
-Mocha.prototype.retries = function(n) {
- this.suite.retries(n);
- return this;
-};
-
-/**
- * Set slowness threshold in milliseconds.
- *
- * @param {Number} slow
- * @return {Mocha}
- * @api public
- * @param {number} slow
- * @return {Mocha}
- */
-Mocha.prototype.slow = function(slow) {
- this.suite.slow(slow);
- return this;
-};
-
-/**
- * Enable timeouts.
- *
- * @param {Boolean} enabled
- * @return {Mocha}
- * @api public
- * @param {boolean} enabled
- * @return {Mocha}
- */
-Mocha.prototype.enableTimeouts = function(enabled) {
- this.suite.enableTimeouts(arguments.length && enabled !== undefined ? enabled : true);
- return this;
-};
-
-/**
- * Makes all tests async (accepting a callback)
- *
- * @return {Mocha}
- * @api public
- */
-Mocha.prototype.asyncOnly = function() {
- this.options.asyncOnly = true;
- return this;
-};
-
-/**
- * Disable syntax highlighting (in browser).
- *
- * @api public
- */
-Mocha.prototype.noHighlighting = function() {
- this.options.noHighlighting = true;
- return this;
-};
-
-/**
- * Enable uncaught errors to propagate (in browser).
- *
- * @return {Mocha}
- * @api public
- */
-Mocha.prototype.allowUncaught = function() {
- this.options.allowUncaught = true;
- return this;
-};
-
-/**
- * Delay root suite execution.
- * @returns {Mocha}
- */
-Mocha.prototype.delay = function delay() {
- this.options.delay = true;
- return this;
-};
-
-/**
- * Run tests and invoke `fn()` when complete.
- *
- * @api public
- * @param {Function} fn
- * @return {Runner}
- */
-Mocha.prototype.run = function(fn) {
- if (this.files.length) {
- this.loadFiles();
- }
- var suite = this.suite;
- var options = this.options;
- options.files = this.files;
- var runner = new exports.Runner(suite, options.delay);
- var reporter = new this._reporter(runner, options);
- runner.ignoreLeaks = options.ignoreLeaks !== false;
- runner.fullStackTrace = options.fullStackTrace;
- runner.asyncOnly = options.asyncOnly;
- runner.allowUncaught = options.allowUncaught;
- if (options.grep) {
- runner.grep(options.grep, options.invert);
- }
- if (options.globals) {
- runner.globals(options.globals);
- }
- if (options.growl) {
- this._growl(runner, reporter);
- }
- if (options.useColors !== undefined) {
- exports.reporters.Base.useColors = options.useColors;
- }
- exports.reporters.Base.inlineDiffs = options.useInlineDiffs;
-
- function done(failures) {
- if (reporter.done) {
- reporter.done(failures, fn);
- } else {
- fn && fn(failures);
- }
- }
-
- return runner.run(done);
-};
diff --git a/node_modules/mocha/lib/ms.js b/node_modules/mocha/lib/ms.js
deleted file mode 100644
index 12fddc18a..000000000
--- a/node_modules/mocha/lib/ms.js
+++ /dev/null
@@ -1,128 +0,0 @@
-/**
- * Helpers.
- */
-
-var s = 1000;
-var m = s * 60;
-var h = m * 60;
-var d = h * 24;
-var y = d * 365.25;
-
-/**
- * Parse or format the given `val`.
- *
- * Options:
- *
- * - `long` verbose formatting [false]
- *
- * @api public
- * @param {string|number} val
- * @param {Object} options
- * @return {string|number}
- */
-module.exports = function(val, options) {
- options = options || {};
- if (typeof val === 'string') {
- return parse(val);
- }
- // https://github.com/mochajs/mocha/pull/1035
- return options['long'] ? longFormat(val) : shortFormat(val);
-};
-
-/**
- * Parse the given `str` and return milliseconds.
- *
- * @api private
- * @param {string} str
- * @return {number}
- */
-function parse(str) {
- var match = (/^((?:\d+)?\.?\d+) *(ms|seconds?|s|minutes?|m|hours?|h|days?|d|years?|y)?$/i).exec(str);
- if (!match) {
- return;
- }
- var n = parseFloat(match[1]);
- var type = (match[2] || 'ms').toLowerCase();
- switch (type) {
- case 'years':
- case 'year':
- case 'y':
- return n * y;
- case 'days':
- case 'day':
- case 'd':
- return n * d;
- case 'hours':
- case 'hour':
- case 'h':
- return n * h;
- case 'minutes':
- case 'minute':
- case 'm':
- return n * m;
- case 'seconds':
- case 'second':
- case 's':
- return n * s;
- case 'ms':
- return n;
- default:
- // No default case
- }
-}
-
-/**
- * Short format for `ms`.
- *
- * @api private
- * @param {number} ms
- * @return {string}
- */
-function shortFormat(ms) {
- if (ms >= d) {
- return Math.round(ms / d) + 'd';
- }
- if (ms >= h) {
- return Math.round(ms / h) + 'h';
- }
- if (ms >= m) {
- return Math.round(ms / m) + 'm';
- }
- if (ms >= s) {
- return Math.round(ms / s) + 's';
- }
- return ms + 'ms';
-}
-
-/**
- * Long format for `ms`.
- *
- * @api private
- * @param {number} ms
- * @return {string}
- */
-function longFormat(ms) {
- return plural(ms, d, 'day')
- || plural(ms, h, 'hour')
- || plural(ms, m, 'minute')
- || plural(ms, s, 'second')
- || ms + ' ms';
-}
-
-/**
- * Pluralization helper.
- *
- * @api private
- * @param {number} ms
- * @param {number} n
- * @param {string} name
- */
-function plural(ms, n, name) {
- if (ms < n) {
- return;
- }
- if (ms < n * 1.5) {
- return Math.floor(ms / n) + ' ' + name;
- }
- return Math.ceil(ms / n) + ' ' + name + 's';
-}
diff --git a/node_modules/mocha/lib/pending.js b/node_modules/mocha/lib/pending.js
deleted file mode 100644
index c847e04e3..000000000
--- a/node_modules/mocha/lib/pending.js
+++ /dev/null
@@ -1,15 +0,0 @@
-
-/**
- * Expose `Pending`.
- */
-
-module.exports = Pending;
-
-/**
- * Initialize a new `Pending` error with the given message.
- *
- * @param {string} message
- */
-function Pending(message) {
- this.message = message;
-}
diff --git a/node_modules/mocha/lib/reporters/base.js b/node_modules/mocha/lib/reporters/base.js
deleted file mode 100644
index 5fe0eb71a..000000000
--- a/node_modules/mocha/lib/reporters/base.js
+++ /dev/null
@@ -1,487 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var tty = require('tty');
-var diff = require('diff');
-var ms = require('../ms');
-var utils = require('../utils');
-var supportsColor = process.browser ? null : require('supports-color');
-
-/**
- * Expose `Base`.
- */
-
-exports = module.exports = Base;
-
-/**
- * Save timer references to avoid Sinon interfering.
- * See: https://github.com/mochajs/mocha/issues/237
- */
-
-/* eslint-disable no-unused-vars, no-native-reassign */
-var Date = global.Date;
-var setTimeout = global.setTimeout;
-var setInterval = global.setInterval;
-var clearTimeout = global.clearTimeout;
-var clearInterval = global.clearInterval;
-/* eslint-enable no-unused-vars, no-native-reassign */
-
-/**
- * Check if both stdio streams are associated with a tty.
- */
-
-var isatty = tty.isatty(1) && tty.isatty(2);
-
-/**
- * Enable coloring by default, except in the browser interface.
- */
-
-exports.useColors = !process.browser && (supportsColor || (process.env.MOCHA_COLORS !== undefined));
-
-/**
- * Inline diffs instead of +/-
- */
-
-exports.inlineDiffs = false;
-
-/**
- * Default color map.
- */
-
-exports.colors = {
- pass: 90,
- fail: 31,
- 'bright pass': 92,
- 'bright fail': 91,
- 'bright yellow': 93,
- pending: 36,
- suite: 0,
- 'error title': 0,
- 'error message': 31,
- 'error stack': 90,
- checkmark: 32,
- fast: 90,
- medium: 33,
- slow: 31,
- green: 32,
- light: 90,
- 'diff gutter': 90,
- 'diff added': 32,
- 'diff removed': 31
-};
-
-/**
- * Default symbol map.
- */
-
-exports.symbols = {
- ok: '✓',
- err: '✖',
- dot: '․'
-};
-
-// With node.js on Windows: use symbols available in terminal default fonts
-if (process.platform === 'win32') {
- exports.symbols.ok = '\u221A';
- exports.symbols.err = '\u00D7';
- exports.symbols.dot = '.';
-}
-
-/**
- * Color `str` with the given `type`,
- * allowing colors to be disabled,
- * as well as user-defined color
- * schemes.
- *
- * @param {string} type
- * @param {string} str
- * @return {string}
- * @api private
- */
-var color = exports.color = function(type, str) {
- if (!exports.useColors) {
- return String(str);
- }
- return '\u001b[' + exports.colors[type] + 'm' + str + '\u001b[0m';
-};
-
-/**
- * Expose term window size, with some defaults for when stderr is not a tty.
- */
-
-exports.window = {
- width: 75
-};
-
-if (isatty) {
- exports.window.width = process.stdout.getWindowSize
- ? process.stdout.getWindowSize(1)[0]
- : tty.getWindowSize()[1];
-}
-
-/**
- * Expose some basic cursor interactions that are common among reporters.
- */
-
-exports.cursor = {
- hide: function() {
- isatty && process.stdout.write('\u001b[?25l');
- },
-
- show: function() {
- isatty && process.stdout.write('\u001b[?25h');
- },
-
- deleteLine: function() {
- isatty && process.stdout.write('\u001b[2K');
- },
-
- beginningOfLine: function() {
- isatty && process.stdout.write('\u001b[0G');
- },
-
- CR: function() {
- if (isatty) {
- exports.cursor.deleteLine();
- exports.cursor.beginningOfLine();
- } else {
- process.stdout.write('\r');
- }
- }
-};
-
-/**
- * Outut the given `failures` as a list.
- *
- * @param {Array} failures
- * @api public
- */
-
-exports.list = function(failures) {
- console.log();
- failures.forEach(function(test, i) {
- // format
- var fmt = color('error title', ' %s) %s:\n')
- + color('error message', ' %s')
- + color('error stack', '\n%s\n');
-
- // msg
- var msg;
- var err = test.err;
- var message;
- if (err.message && typeof err.message.toString === 'function') {
- message = err.message + '';
- } else if (typeof err.inspect === 'function') {
- message = err.inspect() + '';
- } else {
- message = '';
- }
- var stack = err.stack || message;
- var index = stack.indexOf(message);
- var actual = err.actual;
- var expected = err.expected;
- var escape = true;
-
- if (index === -1) {
- msg = message;
- } else {
- index += message.length;
- msg = stack.slice(0, index);
- // remove msg from stack
- stack = stack.slice(index + 1);
- }
-
- // uncaught
- if (err.uncaught) {
- msg = 'Uncaught ' + msg;
- }
- // explicitly show diff
- if (err.showDiff !== false && sameType(actual, expected) && expected !== undefined) {
- escape = false;
- if (!(utils.isString(actual) && utils.isString(expected))) {
- err.actual = actual = utils.stringify(actual);
- err.expected = expected = utils.stringify(expected);
- }
-
- fmt = color('error title', ' %s) %s:\n%s') + color('error stack', '\n%s\n');
- var match = message.match(/^([^:]+): expected/);
- msg = '\n ' + color('error message', match ? match[1] : msg);
-
- if (exports.inlineDiffs) {
- msg += inlineDiff(err, escape);
- } else {
- msg += unifiedDiff(err, escape);
- }
- }
-
- // indent stack trace
- stack = stack.replace(/^/gm, ' ');
-
- console.log(fmt, (i + 1), test.fullTitle(), msg, stack);
- });
-};
-
-/**
- * Initialize a new `Base` reporter.
- *
- * All other reporters generally
- * inherit from this reporter, providing
- * stats such as test duration, number
- * of tests passed / failed etc.
- *
- * @param {Runner} runner
- * @api public
- */
-
-function Base(runner) {
- var stats = this.stats = { suites: 0, tests: 0, passes: 0, pending: 0, failures: 0 };
- var failures = this.failures = [];
-
- if (!runner) {
- return;
- }
- this.runner = runner;
-
- runner.stats = stats;
-
- runner.on('start', function() {
- stats.start = new Date();
- });
-
- runner.on('suite', function(suite) {
- stats.suites = stats.suites || 0;
- suite.root || stats.suites++;
- });
-
- runner.on('test end', function() {
- stats.tests = stats.tests || 0;
- stats.tests++;
- });
-
- runner.on('pass', function(test) {
- stats.passes = stats.passes || 0;
-
- if (test.duration > test.slow()) {
- test.speed = 'slow';
- } else if (test.duration > test.slow() / 2) {
- test.speed = 'medium';
- } else {
- test.speed = 'fast';
- }
-
- stats.passes++;
- });
-
- runner.on('fail', function(test, err) {
- stats.failures = stats.failures || 0;
- stats.failures++;
- test.err = err;
- failures.push(test);
- });
-
- runner.on('end', function() {
- stats.end = new Date();
- stats.duration = new Date() - stats.start;
- });
-
- runner.on('pending', function() {
- stats.pending++;
- });
-}
-
-/**
- * Output common epilogue used by many of
- * the bundled reporters.
- *
- * @api public
- */
-Base.prototype.epilogue = function() {
- var stats = this.stats;
- var fmt;
-
- console.log();
-
- // passes
- fmt = color('bright pass', ' ')
- + color('green', ' %d passing')
- + color('light', ' (%s)');
-
- console.log(fmt,
- stats.passes || 0,
- ms(stats.duration));
-
- // pending
- if (stats.pending) {
- fmt = color('pending', ' ')
- + color('pending', ' %d pending');
-
- console.log(fmt, stats.pending);
- }
-
- // failures
- if (stats.failures) {
- fmt = color('fail', ' %d failing');
-
- console.log(fmt, stats.failures);
-
- Base.list(this.failures);
- console.log();
- }
-
- console.log();
-};
-
-/**
- * Pad the given `str` to `len`.
- *
- * @api private
- * @param {string} str
- * @param {string} len
- * @return {string}
- */
-function pad(str, len) {
- str = String(str);
- return Array(len - str.length + 1).join(' ') + str;
-}
-
-/**
- * Returns an inline diff between 2 strings with coloured ANSI output
- *
- * @api private
- * @param {Error} err with actual/expected
- * @param {boolean} escape
- * @return {string} Diff
- */
-function inlineDiff(err, escape) {
- var msg = errorDiff(err, 'WordsWithSpace', escape);
-
- // linenos
- var lines = msg.split('\n');
- if (lines.length > 4) {
- var width = String(lines.length).length;
- msg = lines.map(function(str, i) {
- return pad(++i, width) + ' |' + ' ' + str;
- }).join('\n');
- }
-
- // legend
- msg = '\n'
- + color('diff removed', 'actual')
- + ' '
- + color('diff added', 'expected')
- + '\n\n'
- + msg
- + '\n';
-
- // indent
- msg = msg.replace(/^/gm, ' ');
- return msg;
-}
-
-/**
- * Returns a unified diff between two strings.
- *
- * @api private
- * @param {Error} err with actual/expected
- * @param {boolean} escape
- * @return {string} The diff.
- */
-function unifiedDiff(err, escape) {
- var indent = ' ';
- function cleanUp(line) {
- if (escape) {
- line = escapeInvisibles(line);
- }
- if (line[0] === '+') {
- return indent + colorLines('diff added', line);
- }
- if (line[0] === '-') {
- return indent + colorLines('diff removed', line);
- }
- if (line.match(/\@\@/)) {
- return null;
- }
- if (line.match(/\\ No newline/)) {
- return null;
- }
- return indent + line;
- }
- function notBlank(line) {
- return typeof line !== 'undefined' && line !== null;
- }
- var msg = diff.createPatch('string', err.actual, err.expected);
- var lines = msg.split('\n').splice(4);
- return '\n '
- + colorLines('diff added', '+ expected') + ' '
- + colorLines('diff removed', '- actual')
- + '\n\n'
- + lines.map(cleanUp).filter(notBlank).join('\n');
-}
-
-/**
- * Return a character diff for `err`.
- *
- * @api private
- * @param {Error} err
- * @param {string} type
- * @param {boolean} escape
- * @return {string}
- */
-function errorDiff(err, type, escape) {
- var actual = escape ? escapeInvisibles(err.actual) : err.actual;
- var expected = escape ? escapeInvisibles(err.expected) : err.expected;
- return diff['diff' + type](actual, expected).map(function(str) {
- if (str.added) {
- return colorLines('diff added', str.value);
- }
- if (str.removed) {
- return colorLines('diff removed', str.value);
- }
- return str.value;
- }).join('');
-}
-
-/**
- * Returns a string with all invisible characters in plain text
- *
- * @api private
- * @param {string} line
- * @return {string}
- */
-function escapeInvisibles(line) {
- return line.replace(/\t/g, '<tab>')
- .replace(/\r/g, '<CR>')
- .replace(/\n/g, '<LF>\n');
-}
-
-/**
- * Color lines for `str`, using the color `name`.
- *
- * @api private
- * @param {string} name
- * @param {string} str
- * @return {string}
- */
-function colorLines(name, str) {
- return str.split('\n').map(function(str) {
- return color(name, str);
- }).join('\n');
-}
-
-/**
- * Object#toString reference.
- */
-var objToString = Object.prototype.toString;
-
-/**
- * Check that a / b have the same type.
- *
- * @api private
- * @param {Object} a
- * @param {Object} b
- * @return {boolean}
- */
-function sameType(a, b) {
- return objToString.call(a) === objToString.call(b);
-}
diff --git a/node_modules/mocha/lib/reporters/doc.js b/node_modules/mocha/lib/reporters/doc.js
deleted file mode 100644
index 01f3fdc9d..000000000
--- a/node_modules/mocha/lib/reporters/doc.js
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var utils = require('../utils');
-
-/**
- * Expose `Doc`.
- */
-
-exports = module.exports = Doc;
-
-/**
- * Initialize a new `Doc` reporter.
- *
- * @param {Runner} runner
- * @api public
- */
-function Doc(runner) {
- Base.call(this, runner);
-
- var indents = 2;
-
- function indent() {
- return Array(indents).join(' ');
- }
-
- runner.on('suite', function(suite) {
- if (suite.root) {
- return;
- }
- ++indents;
- console.log('%s<section class="suite">', indent());
- ++indents;
- console.log('%s<h1>%s</h1>', indent(), utils.escape(suite.title));
- console.log('%s<dl>', indent());
- });
-
- runner.on('suite end', function(suite) {
- if (suite.root) {
- return;
- }
- console.log('%s</dl>', indent());
- --indents;
- console.log('%s</section>', indent());
- --indents;
- });
-
- runner.on('pass', function(test) {
- console.log('%s <dt>%s</dt>', indent(), utils.escape(test.title));
- var code = utils.escape(utils.clean(test.body));
- console.log('%s <dd><pre><code>%s</code></pre></dd>', indent(), code);
- });
-
- runner.on('fail', function(test, err) {
- console.log('%s <dt class="error">%s</dt>', indent(), utils.escape(test.title));
- var code = utils.escape(utils.clean(test.fn.body));
- console.log('%s <dd class="error"><pre><code>%s</code></pre></dd>', indent(), code);
- console.log('%s <dd class="error">%s</dd>', indent(), utils.escape(err));
- });
-}
diff --git a/node_modules/mocha/lib/reporters/dot.js b/node_modules/mocha/lib/reporters/dot.js
deleted file mode 100644
index e905dc686..000000000
--- a/node_modules/mocha/lib/reporters/dot.js
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var inherits = require('../utils').inherits;
-var color = Base.color;
-
-/**
- * Expose `Dot`.
- */
-
-exports = module.exports = Dot;
-
-/**
- * Initialize a new `Dot` matrix test reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function Dot(runner) {
- Base.call(this, runner);
-
- var self = this;
- var width = Base.window.width * .75 | 0;
- var n = -1;
-
- runner.on('start', function() {
- process.stdout.write('\n');
- });
-
- runner.on('pending', function() {
- if (++n % width === 0) {
- process.stdout.write('\n ');
- }
- process.stdout.write(color('pending', Base.symbols.dot));
- });
-
- runner.on('pass', function(test) {
- if (++n % width === 0) {
- process.stdout.write('\n ');
- }
- if (test.speed === 'slow') {
- process.stdout.write(color('bright yellow', Base.symbols.dot));
- } else {
- process.stdout.write(color(test.speed, Base.symbols.dot));
- }
- });
-
- runner.on('fail', function() {
- if (++n % width === 0) {
- process.stdout.write('\n ');
- }
- process.stdout.write(color('fail', Base.symbols.dot));
- });
-
- runner.on('end', function() {
- console.log();
- self.epilogue();
- });
-}
-
-/**
- * Inherit from `Base.prototype`.
- */
-inherits(Dot, Base);
diff --git a/node_modules/mocha/lib/reporters/html-cov.js b/node_modules/mocha/lib/reporters/html-cov.js
deleted file mode 100644
index e3f2dd91e..000000000
--- a/node_modules/mocha/lib/reporters/html-cov.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var JSONCov = require('./json-cov');
-var readFileSync = require('fs').readFileSync;
-var join = require('path').join;
-
-/**
- * Expose `HTMLCov`.
- */
-
-exports = module.exports = HTMLCov;
-
-/**
- * Initialize a new `JsCoverage` reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function HTMLCov(runner) {
- var jade = require('jade');
- var file = join(__dirname, '/templates/coverage.jade');
- var str = readFileSync(file, 'utf8');
- var fn = jade.compile(str, { filename: file });
- var self = this;
-
- JSONCov.call(this, runner, false);
-
- runner.on('end', function() {
- process.stdout.write(fn({
- cov: self.cov,
- coverageClass: coverageClass
- }));
- });
-}
-
-/**
- * Return coverage class for a given coverage percentage.
- *
- * @api private
- * @param {number} coveragePctg
- * @return {string}
- */
-function coverageClass(coveragePctg) {
- if (coveragePctg >= 75) {
- return 'high';
- }
- if (coveragePctg >= 50) {
- return 'medium';
- }
- if (coveragePctg >= 25) {
- return 'low';
- }
- return 'terrible';
-}
diff --git a/node_modules/mocha/lib/reporters/html.js b/node_modules/mocha/lib/reporters/html.js
deleted file mode 100644
index 5167d18bf..000000000
--- a/node_modules/mocha/lib/reporters/html.js
+++ /dev/null
@@ -1,343 +0,0 @@
-/* eslint-env browser */
-
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var utils = require('../utils');
-var Progress = require('../browser/progress');
-var escapeRe = require('escape-string-regexp');
-var escape = utils.escape;
-
-/**
- * Save timer references to avoid Sinon interfering (see GH-237).
- */
-
-/* eslint-disable no-unused-vars, no-native-reassign */
-var Date = global.Date;
-var setTimeout = global.setTimeout;
-var setInterval = global.setInterval;
-var clearTimeout = global.clearTimeout;
-var clearInterval = global.clearInterval;
-/* eslint-enable no-unused-vars, no-native-reassign */
-
-/**
- * Expose `HTML`.
- */
-
-exports = module.exports = HTML;
-
-/**
- * Stats template.
- */
-
-var statsTemplate = '<ul id="mocha-stats">'
- + '<li class="progress"><canvas width="40" height="40"></canvas></li>'
- + '<li class="passes"><a href="javascript:void(0);">passes:</a> <em>0</em></li>'
- + '<li class="failures"><a href="javascript:void(0);">failures:</a> <em>0</em></li>'
- + '<li class="duration">duration: <em>0</em>s</li>'
- + '</ul>';
-
-/**
- * Initialize a new `HTML` reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function HTML(runner) {
- Base.call(this, runner);
-
- var self = this;
- var stats = this.stats;
- var stat = fragment(statsTemplate);
- var items = stat.getElementsByTagName('li');
- var passes = items[1].getElementsByTagName('em')[0];
- var passesLink = items[1].getElementsByTagName('a')[0];
- var failures = items[2].getElementsByTagName('em')[0];
- var failuresLink = items[2].getElementsByTagName('a')[0];
- var duration = items[3].getElementsByTagName('em')[0];
- var canvas = stat.getElementsByTagName('canvas')[0];
- var report = fragment('<ul id="mocha-report"></ul>');
- var stack = [report];
- var progress;
- var ctx;
- var root = document.getElementById('mocha');
-
- if (canvas.getContext) {
- var ratio = window.devicePixelRatio || 1;
- canvas.style.width = canvas.width;
- canvas.style.height = canvas.height;
- canvas.width *= ratio;
- canvas.height *= ratio;
- ctx = canvas.getContext('2d');
- ctx.scale(ratio, ratio);
- progress = new Progress();
- }
-
- if (!root) {
- return error('#mocha div missing, add it to your document');
- }
-
- // pass toggle
- on(passesLink, 'click', function(evt) {
- evt.preventDefault();
- unhide();
- var name = (/pass/).test(report.className) ? '' : ' pass';
- report.className = report.className.replace(/fail|pass/g, '') + name;
- if (report.className.trim()) {
- hideSuitesWithout('test pass');
- }
- });
-
- // failure toggle
- on(failuresLink, 'click', function(evt) {
- evt.preventDefault();
- unhide();
- var name = (/fail/).test(report.className) ? '' : ' fail';
- report.className = report.className.replace(/fail|pass/g, '') + name;
- if (report.className.trim()) {
- hideSuitesWithout('test fail');
- }
- });
-
- root.appendChild(stat);
- root.appendChild(report);
-
- if (progress) {
- progress.size(40);
- }
-
- runner.on('suite', function(suite) {
- if (suite.root) {
- return;
- }
-
- // suite
- var url = self.suiteURL(suite);
- var el = fragment('<li class="suite"><h1><a href="%s">%s</a></h1></li>', url, escape(suite.title));
-
- // container
- stack[0].appendChild(el);
- stack.unshift(document.createElement('ul'));
- el.appendChild(stack[0]);
- });
-
- runner.on('suite end', function(suite) {
- if (suite.root) {
- return;
- }
- stack.shift();
- });
-
- runner.on('pass', function(test) {
- var url = self.testURL(test);
- var markup = '<li class="test pass %e"><h2>%e<span class="duration">%ems</span> '
- + '<a href="%s" class="replay">‣</a></h2></li>';
- var el = fragment(markup, test.speed, test.title, test.duration, url);
- self.addCodeToggle(el, test.body);
- appendToStack(el);
- updateStats();
- });
-
- runner.on('fail', function(test) {
- var el = fragment('<li class="test fail"><h2>%e <a href="%e" class="replay">‣</a></h2></li>',
- test.title, self.testURL(test));
- var stackString; // Note: Includes leading newline
- var message = test.err.toString();
-
- // <=IE7 stringifies to [Object Error]. Since it can be overloaded, we
- // check for the result of the stringifying.
- if (message === '[object Error]') {
- message = test.err.message;
- }
-
- if (test.err.stack) {
- var indexOfMessage = test.err.stack.indexOf(test.err.message);
- if (indexOfMessage === -1) {
- stackString = test.err.stack;
- } else {
- stackString = test.err.stack.substr(test.err.message.length + indexOfMessage);
- }
- } else if (test.err.sourceURL && test.err.line !== undefined) {
- // Safari doesn't give you a stack. Let's at least provide a source line.
- stackString = '\n(' + test.err.sourceURL + ':' + test.err.line + ')';
- }
-
- stackString = stackString || '';
-
- if (test.err.htmlMessage && stackString) {
- el.appendChild(fragment('<div class="html-error">%s\n<pre class="error">%e</pre></div>',
- test.err.htmlMessage, stackString));
- } else if (test.err.htmlMessage) {
- el.appendChild(fragment('<div class="html-error">%s</div>', test.err.htmlMessage));
- } else {
- el.appendChild(fragment('<pre class="error">%e%e</pre>', message, stackString));
- }
-
- self.addCodeToggle(el, test.body);
- appendToStack(el);
- updateStats();
- });
-
- runner.on('pending', function(test) {
- var el = fragment('<li class="test pass pending"><h2>%e</h2></li>', test.title);
- appendToStack(el);
- updateStats();
- });
-
- function appendToStack(el) {
- // Don't call .appendChild if #mocha-report was already .shift()'ed off the stack.
- if (stack[0]) {
- stack[0].appendChild(el);
- }
- }
-
- function updateStats() {
- // TODO: add to stats
- var percent = stats.tests / this.total * 100 | 0;
- if (progress) {
- progress.update(percent).draw(ctx);
- }
-
- // update stats
- var ms = new Date() - stats.start;
- text(passes, stats.passes);
- text(failures, stats.failures);
- text(duration, (ms / 1000).toFixed(2));
- }
-}
-
-/**
- * Makes a URL, preserving querystring ("search") parameters.
- *
- * @param {string} s
- * @return {string} A new URL.
- */
-function makeUrl(s) {
- var search = window.location.search;
-
- // Remove previous grep query parameter if present
- if (search) {
- search = search.replace(/[?&]grep=[^&\s]*/g, '').replace(/^&/, '?');
- }
-
- return window.location.pathname + (search ? search + '&' : '?') + 'grep=' + encodeURIComponent(escapeRe(s));
-}
-
-/**
- * Provide suite URL.
- *
- * @param {Object} [suite]
- */
-HTML.prototype.suiteURL = function(suite) {
- return makeUrl(suite.fullTitle());
-};
-
-/**
- * Provide test URL.
- *
- * @param {Object} [test]
- */
-HTML.prototype.testURL = function(test) {
- return makeUrl(test.fullTitle());
-};
-
-/**
- * Adds code toggle functionality for the provided test's list element.
- *
- * @param {HTMLLIElement} el
- * @param {string} contents
- */
-HTML.prototype.addCodeToggle = function(el, contents) {
- var h2 = el.getElementsByTagName('h2')[0];
-
- on(h2, 'click', function() {
- pre.style.display = pre.style.display === 'none' ? 'block' : 'none';
- });
-
- var pre = fragment('<pre><code>%e</code></pre>', utils.clean(contents));
- el.appendChild(pre);
- pre.style.display = 'none';
-};
-
-/**
- * Display error `msg`.
- *
- * @param {string} msg
- */
-function error(msg) {
- document.body.appendChild(fragment('<div id="mocha-error">%s</div>', msg));
-}
-
-/**
- * Return a DOM fragment from `html`.
- *
- * @param {string} html
- */
-function fragment(html) {
- var args = arguments;
- var div = document.createElement('div');
- var i = 1;
-
- div.innerHTML = html.replace(/%([se])/g, function(_, type) {
- switch (type) {
- case 's': return String(args[i++]);
- case 'e': return escape(args[i++]);
- // no default
- }
- });
-
- return div.firstChild;
-}
-
-/**
- * Check for suites that do not have elements
- * with `classname`, and hide them.
- *
- * @param {text} classname
- */
-function hideSuitesWithout(classname) {
- var suites = document.getElementsByClassName('suite');
- for (var i = 0; i < suites.length; i++) {
- var els = suites[i].getElementsByClassName(classname);
- if (!els.length) {
- suites[i].className += ' hidden';
- }
- }
-}
-
-/**
- * Unhide .hidden suites.
- */
-function unhide() {
- var els = document.getElementsByClassName('suite hidden');
- for (var i = 0; i < els.length; ++i) {
- els[i].className = els[i].className.replace('suite hidden', 'suite');
- }
-}
-
-/**
- * Set an element's text contents.
- *
- * @param {HTMLElement} el
- * @param {string} contents
- */
-function text(el, contents) {
- if (el.textContent) {
- el.textContent = contents;
- } else {
- el.innerText = contents;
- }
-}
-
-/**
- * Listen on `event` with callback `fn`.
- */
-function on(el, event, fn) {
- if (el.addEventListener) {
- el.addEventListener(event, fn, false);
- } else {
- el.attachEvent('on' + event, fn);
- }
-}
diff --git a/node_modules/mocha/lib/reporters/index.js b/node_modules/mocha/lib/reporters/index.js
deleted file mode 100644
index 51f5cffee..000000000
--- a/node_modules/mocha/lib/reporters/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Alias exports to a their normalized format Mocha#reporter to prevent a need
-// for dynamic (try/catch) requires, which Browserify doesn't handle.
-exports.Base = exports.base = require('./base');
-exports.Dot = exports.dot = require('./dot');
-exports.Doc = exports.doc = require('./doc');
-exports.TAP = exports.tap = require('./tap');
-exports.JSON = exports.json = require('./json');
-exports.HTML = exports.html = require('./html');
-exports.List = exports.list = require('./list');
-exports.Min = exports.min = require('./min');
-exports.Spec = exports.spec = require('./spec');
-exports.Nyan = exports.nyan = require('./nyan');
-exports.XUnit = exports.xunit = require('./xunit');
-exports.Markdown = exports.markdown = require('./markdown');
-exports.Progress = exports.progress = require('./progress');
-exports.Landing = exports.landing = require('./landing');
-exports.JSONCov = exports['json-cov'] = require('./json-cov');
-exports.HTMLCov = exports['html-cov'] = require('./html-cov');
-exports.JSONStream = exports['json-stream'] = require('./json-stream');
diff --git a/node_modules/mocha/lib/reporters/json-cov.js b/node_modules/mocha/lib/reporters/json-cov.js
deleted file mode 100644
index 5a32569f0..000000000
--- a/node_modules/mocha/lib/reporters/json-cov.js
+++ /dev/null
@@ -1,151 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-
-/**
- * Expose `JSONCov`.
- */
-
-exports = module.exports = JSONCov;
-
-/**
- * Initialize a new `JsCoverage` reporter.
- *
- * @api public
- * @param {Runner} runner
- * @param {boolean} output
- */
-function JSONCov(runner, output) {
- Base.call(this, runner);
-
- output = arguments.length === 1 || output;
- var self = this;
- var tests = [];
- var failures = [];
- var passes = [];
-
- runner.on('test end', function(test) {
- tests.push(test);
- });
-
- runner.on('pass', function(test) {
- passes.push(test);
- });
-
- runner.on('fail', function(test) {
- failures.push(test);
- });
-
- runner.on('end', function() {
- var cov = global._$jscoverage || {};
- var result = self.cov = map(cov);
- result.stats = self.stats;
- result.tests = tests.map(clean);
- result.failures = failures.map(clean);
- result.passes = passes.map(clean);
- if (!output) {
- return;
- }
- process.stdout.write(JSON.stringify(result, null, 2));
- });
-}
-
-/**
- * Map jscoverage data to a JSON structure
- * suitable for reporting.
- *
- * @api private
- * @param {Object} cov
- * @return {Object}
- */
-
-function map(cov) {
- var ret = {
- instrumentation: 'node-jscoverage',
- sloc: 0,
- hits: 0,
- misses: 0,
- coverage: 0,
- files: []
- };
-
- for (var filename in cov) {
- if (Object.prototype.hasOwnProperty.call(cov, filename)) {
- var data = coverage(filename, cov[filename]);
- ret.files.push(data);
- ret.hits += data.hits;
- ret.misses += data.misses;
- ret.sloc += data.sloc;
- }
- }
-
- ret.files.sort(function(a, b) {
- return a.filename.localeCompare(b.filename);
- });
-
- if (ret.sloc > 0) {
- ret.coverage = (ret.hits / ret.sloc) * 100;
- }
-
- return ret;
-}
-
-/**
- * Map jscoverage data for a single source file
- * to a JSON structure suitable for reporting.
- *
- * @api private
- * @param {string} filename name of the source file
- * @param {Object} data jscoverage coverage data
- * @return {Object}
- */
-function coverage(filename, data) {
- var ret = {
- filename: filename,
- coverage: 0,
- hits: 0,
- misses: 0,
- sloc: 0,
- source: {}
- };
-
- data.source.forEach(function(line, num) {
- num++;
-
- if (data[num] === 0) {
- ret.misses++;
- ret.sloc++;
- } else if (data[num] !== undefined) {
- ret.hits++;
- ret.sloc++;
- }
-
- ret.source[num] = {
- source: line,
- coverage: data[num] === undefined ? '' : data[num]
- };
- });
-
- ret.coverage = ret.hits / ret.sloc * 100;
-
- return ret;
-}
-
-/**
- * Return a plain-object representation of `test`
- * free of cyclic properties etc.
- *
- * @api private
- * @param {Object} test
- * @return {Object}
- */
-function clean(test) {
- return {
- duration: test.duration,
- currentRetry: test.currentRetry(),
- fullTitle: test.fullTitle(),
- title: test.title
- };
-}
diff --git a/node_modules/mocha/lib/reporters/json-stream.js b/node_modules/mocha/lib/reporters/json-stream.js
deleted file mode 100644
index 02399e7db..000000000
--- a/node_modules/mocha/lib/reporters/json-stream.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-
-/**
- * Expose `List`.
- */
-
-exports = module.exports = List;
-
-/**
- * Initialize a new `List` test reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function List(runner) {
- Base.call(this, runner);
-
- var self = this;
- var total = runner.total;
-
- runner.on('start', function() {
- console.log(JSON.stringify(['start', { total: total }]));
- });
-
- runner.on('pass', function(test) {
- console.log(JSON.stringify(['pass', clean(test)]));
- });
-
- runner.on('fail', function(test, err) {
- test = clean(test);
- test.err = err.message;
- test.stack = err.stack || null;
- console.log(JSON.stringify(['fail', test]));
- });
-
- runner.on('end', function() {
- process.stdout.write(JSON.stringify(['end', self.stats]));
- });
-}
-
-/**
- * Return a plain-object representation of `test`
- * free of cyclic properties etc.
- *
- * @api private
- * @param {Object} test
- * @return {Object}
- */
-function clean(test) {
- return {
- title: test.title,
- fullTitle: test.fullTitle(),
- duration: test.duration,
- currentRetry: test.currentRetry()
- };
-}
diff --git a/node_modules/mocha/lib/reporters/json.js b/node_modules/mocha/lib/reporters/json.js
deleted file mode 100644
index cd9ec286b..000000000
--- a/node_modules/mocha/lib/reporters/json.js
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-
-/**
- * Expose `JSON`.
- */
-
-exports = module.exports = JSONReporter;
-
-/**
- * Initialize a new `JSON` reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function JSONReporter(runner) {
- Base.call(this, runner);
-
- var self = this;
- var tests = [];
- var pending = [];
- var failures = [];
- var passes = [];
-
- runner.on('test end', function(test) {
- tests.push(test);
- });
-
- runner.on('pass', function(test) {
- passes.push(test);
- });
-
- runner.on('fail', function(test) {
- failures.push(test);
- });
-
- runner.on('pending', function(test) {
- pending.push(test);
- });
-
- runner.on('end', function() {
- var obj = {
- stats: self.stats,
- tests: tests.map(clean),
- pending: pending.map(clean),
- failures: failures.map(clean),
- passes: passes.map(clean)
- };
-
- runner.testResults = obj;
-
- process.stdout.write(JSON.stringify(obj, null, 2));
- });
-}
-
-/**
- * Return a plain-object representation of `test`
- * free of cyclic properties etc.
- *
- * @api private
- * @param {Object} test
- * @return {Object}
- */
-function clean(test) {
- return {
- title: test.title,
- fullTitle: test.fullTitle(),
- duration: test.duration,
- currentRetry: test.currentRetry(),
- err: errorJSON(test.err || {})
- };
-}
-
-/**
- * Transform `error` into a JSON object.
- *
- * @api private
- * @param {Error} err
- * @return {Object}
- */
-function errorJSON(err) {
- var res = {};
- Object.getOwnPropertyNames(err).forEach(function(key) {
- res[key] = err[key];
- }, err);
- return res;
-}
diff --git a/node_modules/mocha/lib/reporters/landing.js b/node_modules/mocha/lib/reporters/landing.js
deleted file mode 100644
index b66b2000c..000000000
--- a/node_modules/mocha/lib/reporters/landing.js
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var inherits = require('../utils').inherits;
-var cursor = Base.cursor;
-var color = Base.color;
-
-/**
- * Expose `Landing`.
- */
-
-exports = module.exports = Landing;
-
-/**
- * Airplane color.
- */
-
-Base.colors.plane = 0;
-
-/**
- * Airplane crash color.
- */
-
-Base.colors['plane crash'] = 31;
-
-/**
- * Runway color.
- */
-
-Base.colors.runway = 90;
-
-/**
- * Initialize a new `Landing` reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function Landing(runner) {
- Base.call(this, runner);
-
- var self = this;
- var width = Base.window.width * .75 | 0;
- var total = runner.total;
- var stream = process.stdout;
- var plane = color('plane', '✈');
- var crashed = -1;
- var n = 0;
-
- function runway() {
- var buf = Array(width).join('-');
- return ' ' + color('runway', buf);
- }
-
- runner.on('start', function() {
- stream.write('\n\n\n ');
- cursor.hide();
- });
-
- runner.on('test end', function(test) {
- // check if the plane crashed
- var col = crashed === -1 ? width * ++n / total | 0 : crashed;
-
- // show the crash
- if (test.state === 'failed') {
- plane = color('plane crash', '✈');
- crashed = col;
- }
-
- // render landing strip
- stream.write('\u001b[' + (width + 1) + 'D\u001b[2A');
- stream.write(runway());
- stream.write('\n ');
- stream.write(color('runway', Array(col).join('â‹…')));
- stream.write(plane);
- stream.write(color('runway', Array(width - col).join('â‹…') + '\n'));
- stream.write(runway());
- stream.write('\u001b[0m');
- });
-
- runner.on('end', function() {
- cursor.show();
- console.log();
- self.epilogue();
- });
-}
-
-/**
- * Inherit from `Base.prototype`.
- */
-inherits(Landing, Base);
diff --git a/node_modules/mocha/lib/reporters/list.js b/node_modules/mocha/lib/reporters/list.js
deleted file mode 100644
index 0e5f910d1..000000000
--- a/node_modules/mocha/lib/reporters/list.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var inherits = require('../utils').inherits;
-var color = Base.color;
-var cursor = Base.cursor;
-
-/**
- * Expose `List`.
- */
-
-exports = module.exports = List;
-
-/**
- * Initialize a new `List` test reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function List(runner) {
- Base.call(this, runner);
-
- var self = this;
- var n = 0;
-
- runner.on('start', function() {
- console.log();
- });
-
- runner.on('test', function(test) {
- process.stdout.write(color('pass', ' ' + test.fullTitle() + ': '));
- });
-
- runner.on('pending', function(test) {
- var fmt = color('checkmark', ' -')
- + color('pending', ' %s');
- console.log(fmt, test.fullTitle());
- });
-
- runner.on('pass', function(test) {
- var fmt = color('checkmark', ' ' + Base.symbols.dot)
- + color('pass', ' %s: ')
- + color(test.speed, '%dms');
- cursor.CR();
- console.log(fmt, test.fullTitle(), test.duration);
- });
-
- runner.on('fail', function(test) {
- cursor.CR();
- console.log(color('fail', ' %d) %s'), ++n, test.fullTitle());
- });
-
- runner.on('end', self.epilogue.bind(self));
-}
-
-/**
- * Inherit from `Base.prototype`.
- */
-inherits(List, Base);
diff --git a/node_modules/mocha/lib/reporters/markdown.js b/node_modules/mocha/lib/reporters/markdown.js
deleted file mode 100644
index 680c55d70..000000000
--- a/node_modules/mocha/lib/reporters/markdown.js
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var utils = require('../utils');
-
-/**
- * Constants
- */
-
-var SUITE_PREFIX = '$';
-
-/**
- * Expose `Markdown`.
- */
-
-exports = module.exports = Markdown;
-
-/**
- * Initialize a new `Markdown` reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function Markdown(runner) {
- Base.call(this, runner);
-
- var level = 0;
- var buf = '';
-
- function title(str) {
- return Array(level).join('#') + ' ' + str;
- }
-
- function mapTOC(suite, obj) {
- var ret = obj;
- var key = SUITE_PREFIX + suite.title;
-
- obj = obj[key] = obj[key] || { suite: suite };
- suite.suites.forEach(function(suite) {
- mapTOC(suite, obj);
- });
-
- return ret;
- }
-
- function stringifyTOC(obj, level) {
- ++level;
- var buf = '';
- var link;
- for (var key in obj) {
- if (key === 'suite') {
- continue;
- }
- if (key !== SUITE_PREFIX) {
- link = ' - [' + key.substring(1) + ']';
- link += '(#' + utils.slug(obj[key].suite.fullTitle()) + ')\n';
- buf += Array(level).join(' ') + link;
- }
- buf += stringifyTOC(obj[key], level);
- }
- return buf;
- }
-
- function generateTOC(suite) {
- var obj = mapTOC(suite, {});
- return stringifyTOC(obj, 0);
- }
-
- generateTOC(runner.suite);
-
- runner.on('suite', function(suite) {
- ++level;
- var slug = utils.slug(suite.fullTitle());
- buf += '<a name="' + slug + '"></a>' + '\n';
- buf += title(suite.title) + '\n';
- });
-
- runner.on('suite end', function() {
- --level;
- });
-
- runner.on('pass', function(test) {
- var code = utils.clean(test.body);
- buf += test.title + '.\n';
- buf += '\n```js\n';
- buf += code + '\n';
- buf += '```\n\n';
- });
-
- runner.on('end', function() {
- process.stdout.write('# TOC\n');
- process.stdout.write(generateTOC(runner.suite));
- process.stdout.write(buf);
- });
-}
diff --git a/node_modules/mocha/lib/reporters/min.js b/node_modules/mocha/lib/reporters/min.js
deleted file mode 100644
index 2b48212ca..000000000
--- a/node_modules/mocha/lib/reporters/min.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var inherits = require('../utils').inherits;
-
-/**
- * Expose `Min`.
- */
-
-exports = module.exports = Min;
-
-/**
- * Initialize a new `Min` minimal test reporter (best used with --watch).
- *
- * @api public
- * @param {Runner} runner
- */
-function Min(runner) {
- Base.call(this, runner);
-
- runner.on('start', function() {
- // clear screen
- process.stdout.write('\u001b[2J');
- // set cursor position
- process.stdout.write('\u001b[1;3H');
- });
-
- runner.on('end', this.epilogue.bind(this));
-}
-
-/**
- * Inherit from `Base.prototype`.
- */
-inherits(Min, Base);
diff --git a/node_modules/mocha/lib/reporters/nyan.js b/node_modules/mocha/lib/reporters/nyan.js
deleted file mode 100644
index ba1b0509d..000000000
--- a/node_modules/mocha/lib/reporters/nyan.js
+++ /dev/null
@@ -1,261 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var inherits = require('../utils').inherits;
-
-/**
- * Expose `Dot`.
- */
-
-exports = module.exports = NyanCat;
-
-/**
- * Initialize a new `Dot` matrix test reporter.
- *
- * @param {Runner} runner
- * @api public
- */
-
-function NyanCat(runner) {
- Base.call(this, runner);
-
- var self = this;
- var width = Base.window.width * .75 | 0;
- var nyanCatWidth = this.nyanCatWidth = 11;
-
- this.colorIndex = 0;
- this.numberOfLines = 4;
- this.rainbowColors = self.generateColors();
- this.scoreboardWidth = 5;
- this.tick = 0;
- this.trajectories = [[], [], [], []];
- this.trajectoryWidthMax = (width - nyanCatWidth);
-
- runner.on('start', function() {
- Base.cursor.hide();
- self.draw();
- });
-
- runner.on('pending', function() {
- self.draw();
- });
-
- runner.on('pass', function() {
- self.draw();
- });
-
- runner.on('fail', function() {
- self.draw();
- });
-
- runner.on('end', function() {
- Base.cursor.show();
- for (var i = 0; i < self.numberOfLines; i++) {
- write('\n');
- }
- self.epilogue();
- });
-}
-
-/**
- * Inherit from `Base.prototype`.
- */
-inherits(NyanCat, Base);
-
-/**
- * Draw the nyan cat
- *
- * @api private
- */
-
-NyanCat.prototype.draw = function() {
- this.appendRainbow();
- this.drawScoreboard();
- this.drawRainbow();
- this.drawNyanCat();
- this.tick = !this.tick;
-};
-
-/**
- * Draw the "scoreboard" showing the number
- * of passes, failures and pending tests.
- *
- * @api private
- */
-
-NyanCat.prototype.drawScoreboard = function() {
- var stats = this.stats;
-
- function draw(type, n) {
- write(' ');
- write(Base.color(type, n));
- write('\n');
- }
-
- draw('green', stats.passes);
- draw('fail', stats.failures);
- draw('pending', stats.pending);
- write('\n');
-
- this.cursorUp(this.numberOfLines);
-};
-
-/**
- * Append the rainbow.
- *
- * @api private
- */
-
-NyanCat.prototype.appendRainbow = function() {
- var segment = this.tick ? '_' : '-';
- var rainbowified = this.rainbowify(segment);
-
- for (var index = 0; index < this.numberOfLines; index++) {
- var trajectory = this.trajectories[index];
- if (trajectory.length >= this.trajectoryWidthMax) {
- trajectory.shift();
- }
- trajectory.push(rainbowified);
- }
-};
-
-/**
- * Draw the rainbow.
- *
- * @api private
- */
-
-NyanCat.prototype.drawRainbow = function() {
- var self = this;
-
- this.trajectories.forEach(function(line) {
- write('\u001b[' + self.scoreboardWidth + 'C');
- write(line.join(''));
- write('\n');
- });
-
- this.cursorUp(this.numberOfLines);
-};
-
-/**
- * Draw the nyan cat
- *
- * @api private
- */
-NyanCat.prototype.drawNyanCat = function() {
- var self = this;
- var startWidth = this.scoreboardWidth + this.trajectories[0].length;
- var dist = '\u001b[' + startWidth + 'C';
- var padding = '';
-
- write(dist);
- write('_,------,');
- write('\n');
-
- write(dist);
- padding = self.tick ? ' ' : ' ';
- write('_|' + padding + '/\\_/\\ ');
- write('\n');
-
- write(dist);
- padding = self.tick ? '_' : '__';
- var tail = self.tick ? '~' : '^';
- write(tail + '|' + padding + this.face() + ' ');
- write('\n');
-
- write(dist);
- padding = self.tick ? ' ' : ' ';
- write(padding + '"" "" ');
- write('\n');
-
- this.cursorUp(this.numberOfLines);
-};
-
-/**
- * Draw nyan cat face.
- *
- * @api private
- * @return {string}
- */
-
-NyanCat.prototype.face = function() {
- var stats = this.stats;
- if (stats.failures) {
- return '( x .x)';
- } else if (stats.pending) {
- return '( o .o)';
- } else if (stats.passes) {
- return '( ^ .^)';
- }
- return '( - .-)';
-};
-
-/**
- * Move cursor up `n`.
- *
- * @api private
- * @param {number} n
- */
-
-NyanCat.prototype.cursorUp = function(n) {
- write('\u001b[' + n + 'A');
-};
-
-/**
- * Move cursor down `n`.
- *
- * @api private
- * @param {number} n
- */
-
-NyanCat.prototype.cursorDown = function(n) {
- write('\u001b[' + n + 'B');
-};
-
-/**
- * Generate rainbow colors.
- *
- * @api private
- * @return {Array}
- */
-NyanCat.prototype.generateColors = function() {
- var colors = [];
-
- for (var i = 0; i < (6 * 7); i++) {
- var pi3 = Math.floor(Math.PI / 3);
- var n = (i * (1.0 / 6));
- var r = Math.floor(3 * Math.sin(n) + 3);
- var g = Math.floor(3 * Math.sin(n + 2 * pi3) + 3);
- var b = Math.floor(3 * Math.sin(n + 4 * pi3) + 3);
- colors.push(36 * r + 6 * g + b + 16);
- }
-
- return colors;
-};
-
-/**
- * Apply rainbow to the given `str`.
- *
- * @api private
- * @param {string} str
- * @return {string}
- */
-NyanCat.prototype.rainbowify = function(str) {
- if (!Base.useColors) {
- return str;
- }
- var color = this.rainbowColors[this.colorIndex % this.rainbowColors.length];
- this.colorIndex += 1;
- return '\u001b[38;5;' + color + 'm' + str + '\u001b[0m';
-};
-
-/**
- * Stdout helper.
- *
- * @param {string} string A message to write to stdout.
- */
-function write(string) {
- process.stdout.write(string);
-}
diff --git a/node_modules/mocha/lib/reporters/progress.js b/node_modules/mocha/lib/reporters/progress.js
deleted file mode 100644
index 5349ca893..000000000
--- a/node_modules/mocha/lib/reporters/progress.js
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var inherits = require('../utils').inherits;
-var color = Base.color;
-var cursor = Base.cursor;
-
-/**
- * Expose `Progress`.
- */
-
-exports = module.exports = Progress;
-
-/**
- * General progress bar color.
- */
-
-Base.colors.progress = 90;
-
-/**
- * Initialize a new `Progress` bar test reporter.
- *
- * @api public
- * @param {Runner} runner
- * @param {Object} options
- */
-function Progress(runner, options) {
- Base.call(this, runner);
-
- var self = this;
- var width = Base.window.width * .50 | 0;
- var total = runner.total;
- var complete = 0;
- var lastN = -1;
-
- // default chars
- options = options || {};
- options.open = options.open || '[';
- options.complete = options.complete || 'â–¬';
- options.incomplete = options.incomplete || Base.symbols.dot;
- options.close = options.close || ']';
- options.verbose = false;
-
- // tests started
- runner.on('start', function() {
- console.log();
- cursor.hide();
- });
-
- // tests complete
- runner.on('test end', function() {
- complete++;
-
- var percent = complete / total;
- var n = width * percent | 0;
- var i = width - n;
-
- if (n === lastN && !options.verbose) {
- // Don't re-render the line if it hasn't changed
- return;
- }
- lastN = n;
-
- cursor.CR();
- process.stdout.write('\u001b[J');
- process.stdout.write(color('progress', ' ' + options.open));
- process.stdout.write(Array(n).join(options.complete));
- process.stdout.write(Array(i).join(options.incomplete));
- process.stdout.write(color('progress', options.close));
- if (options.verbose) {
- process.stdout.write(color('progress', ' ' + complete + ' of ' + total));
- }
- });
-
- // tests are complete, output some stats
- // and the failures if any
- runner.on('end', function() {
- cursor.show();
- console.log();
- self.epilogue();
- });
-}
-
-/**
- * Inherit from `Base.prototype`.
- */
-inherits(Progress, Base);
diff --git a/node_modules/mocha/lib/reporters/spec.js b/node_modules/mocha/lib/reporters/spec.js
deleted file mode 100644
index 77a73c4f4..000000000
--- a/node_modules/mocha/lib/reporters/spec.js
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var inherits = require('../utils').inherits;
-var color = Base.color;
-var cursor = Base.cursor;
-
-/**
- * Expose `Spec`.
- */
-
-exports = module.exports = Spec;
-
-/**
- * Initialize a new `Spec` test reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function Spec(runner) {
- Base.call(this, runner);
-
- var self = this;
- var indents = 0;
- var n = 0;
-
- function indent() {
- return Array(indents).join(' ');
- }
-
- runner.on('start', function() {
- console.log();
- });
-
- runner.on('suite', function(suite) {
- ++indents;
- console.log(color('suite', '%s%s'), indent(), suite.title);
- });
-
- runner.on('suite end', function() {
- --indents;
- if (indents === 1) {
- console.log();
- }
- });
-
- runner.on('pending', function(test) {
- var fmt = indent() + color('pending', ' - %s');
- console.log(fmt, test.title);
- });
-
- runner.on('pass', function(test) {
- var fmt;
- if (test.speed === 'fast') {
- fmt = indent()
- + color('checkmark', ' ' + Base.symbols.ok)
- + color('pass', ' %s');
- cursor.CR();
- console.log(fmt, test.title);
- } else {
- fmt = indent()
- + color('checkmark', ' ' + Base.symbols.ok)
- + color('pass', ' %s')
- + color(test.speed, ' (%dms)');
- cursor.CR();
- console.log(fmt, test.title, test.duration);
- }
- });
-
- runner.on('fail', function(test) {
- cursor.CR();
- console.log(indent() + color('fail', ' %d) %s'), ++n, test.title);
- });
-
- runner.on('end', self.epilogue.bind(self));
-}
-
-/**
- * Inherit from `Base.prototype`.
- */
-inherits(Spec, Base);
diff --git a/node_modules/mocha/lib/reporters/tap.js b/node_modules/mocha/lib/reporters/tap.js
deleted file mode 100644
index d9b1b953a..000000000
--- a/node_modules/mocha/lib/reporters/tap.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-
-/**
- * Expose `TAP`.
- */
-
-exports = module.exports = TAP;
-
-/**
- * Initialize a new `TAP` reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function TAP(runner) {
- Base.call(this, runner);
-
- var n = 1;
- var passes = 0;
- var failures = 0;
-
- runner.on('start', function() {
- var total = runner.grepTotal(runner.suite);
- console.log('%d..%d', 1, total);
- });
-
- runner.on('test end', function() {
- ++n;
- });
-
- runner.on('pending', function(test) {
- console.log('ok %d %s # SKIP -', n, title(test));
- });
-
- runner.on('pass', function(test) {
- passes++;
- console.log('ok %d %s', n, title(test));
- });
-
- runner.on('fail', function(test, err) {
- failures++;
- console.log('not ok %d %s', n, title(test));
- if (err.stack) {
- console.log(err.stack.replace(/^/gm, ' '));
- }
- });
-
- runner.on('end', function() {
- console.log('# tests ' + (passes + failures));
- console.log('# pass ' + passes);
- console.log('# fail ' + failures);
- });
-}
-
-/**
- * Return a TAP-safe title of `test`
- *
- * @api private
- * @param {Object} test
- * @return {String}
- */
-function title(test) {
- return test.fullTitle().replace(/#/g, '');
-}
diff --git a/node_modules/mocha/lib/reporters/templates/coverage.jade b/node_modules/mocha/lib/reporters/templates/coverage.jade
deleted file mode 100644
index edd59d886..000000000
--- a/node_modules/mocha/lib/reporters/templates/coverage.jade
+++ /dev/null
@@ -1,51 +0,0 @@
-doctype html
-html
- head
- title Coverage
- meta(charset='utf-8')
- include script.html
- include style.html
- body
- #coverage
- h1#overview Coverage
- include menu
-
- #stats(class=coverageClass(cov.coverage))
- .percentage #{cov.coverage | 0}%
- .sloc= cov.sloc
- .hits= cov.hits
- .misses= cov.misses
-
- #files
- for file in cov.files
- .file
- h2(id=file.filename)= file.filename
- #stats(class=coverageClass(file.coverage))
- .percentage #{file.coverage | 0}%
- .sloc= file.sloc
- .hits= file.hits
- .misses= file.misses
-
- table#source
- thead
- tr
- th Line
- th Hits
- th Source
- tbody
- for line, number in file.source
- if line.coverage > 0
- tr.hit
- td.line= number
- td.hits= line.coverage
- td.source= line.source
- else if 0 === line.coverage
- tr.miss
- td.line= number
- td.hits 0
- td.source= line.source
- else
- tr
- td.line= number
- td.hits
- td.source= line.source || ' '
diff --git a/node_modules/mocha/lib/reporters/templates/menu.jade b/node_modules/mocha/lib/reporters/templates/menu.jade
deleted file mode 100644
index c682e3f0e..000000000
--- a/node_modules/mocha/lib/reporters/templates/menu.jade
+++ /dev/null
@@ -1,13 +0,0 @@
-#menu
- li
- a(href='#overview') overview
- for file in cov.files
- li
- span.cov(class=coverageClass(file.coverage)) #{file.coverage | 0}
- a(href='##{file.filename}')
- segments = file.filename.split('/')
- basename = segments.pop()
- if segments.length
- span.dirname= segments.join('/') + '/'
- span.basename= basename
- a#logo(href='http://mochajs.org/') m
diff --git a/node_modules/mocha/lib/reporters/templates/script.html b/node_modules/mocha/lib/reporters/templates/script.html
deleted file mode 100644
index 073cf7939..000000000
--- a/node_modules/mocha/lib/reporters/templates/script.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<script>
-
-headings = [];
-
-onload = function(){
- headings = document.querySelectorAll('h2');
-};
-
-onscroll = function(e){
- var heading = find(window.scrollY);
- if (!heading) return;
- var links = document.querySelectorAll('#menu a')
- , link;
-
- for (var i = 0, len = links.length; i < len; ++i) {
- link = links[i];
- link.className = link.getAttribute('href') == '#' + heading.id
- ? 'active'
- : '';
- }
-};
-
-function find(y) {
- var i = headings.length
- , heading;
-
- while (i--) {
- heading = headings[i];
- if (y >= heading.offsetTop) {
- return heading;
- }
- }
-}
-</script>
diff --git a/node_modules/mocha/lib/reporters/templates/style.html b/node_modules/mocha/lib/reporters/templates/style.html
deleted file mode 100644
index 4c9c37cfd..000000000
--- a/node_modules/mocha/lib/reporters/templates/style.html
+++ /dev/null
@@ -1,324 +0,0 @@
-<style>
-
-body {
- font: 14px/1.6 "Helvetica Neue", Helvetica, Arial, sans-serif;
- margin: 0;
- color: #2C2C2C;
- border-top: 2px solid #ddd;
-}
-
-#coverage {
- padding: 60px 400px 60px 60px;
-}
-
-h1 a {
- color: inherit;
- font-weight: inherit;
-}
-
-h1 a:hover {
- text-decoration: none;
-}
-
-.onload h1 {
- opacity: 1;
-}
-
-h2 {
- width: 80%;
- margin-top: 80px;
- margin-bottom: 0;
- font-weight: 100;
- letter-spacing: 1px;
- border-bottom: 1px solid #eee;
-}
-
-a {
- color: #8A6343;
- font-weight: bold;
- text-decoration: none;
-}
-
-a:hover {
- text-decoration: underline;
-}
-
-ul {
- margin-top: 20px;
- padding: 0 15px;
- width: 100%;
-}
-
-ul li {
- float: left;
- width: 40%;
- margin-top: 5px;
- margin-right: 60px;
- list-style: none;
- border-bottom: 1px solid #eee;
- padding: 5px 0;
- font-size: 12px;
-}
-
-ul::after {
- content: '.';
- height: 0;
- display: block;
- visibility: hidden;
- clear: both;
-}
-
-code {
- font: 12px monaco, monospace;
-}
-
-pre {
- margin: 30px;
- padding: 30px;
- border: 1px solid #eee;
- border-bottom-color: #ddd;
- -webkit-border-radius: 2px;
- -moz-border-radius: 2px;
- border-radius: 2px;
- -webkit-box-shadow: inset 0 0 10px #eee;
- -moz-box-shadow: inset 0 0 10px #eee;
- box-shadow: inset 0 0 10px #eee;
- overflow-x: auto;
-}
-
-img {
- margin: 30px;
- padding: 1px;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
- -webkit-box-shadow: 0 3px 10px #dedede, 0 1px 5px #888;
- -moz-box-shadow: 0 3px 10px #dedede, 0 1px 5px #888;
- box-shadow: 0 3px 10px #dedede, 0 1px 5px #888;
- max-width: 100%;
-}
-
-footer {
- background: #eee;
- width: 100%;
- padding: 50px 0;
- text-align: right;
- border-top: 1px solid #ddd;
-}
-
-footer span {
- display: block;
- margin-right: 30px;
- color: #888;
- font-size: 12px;
-}
-
-#menu {
- position: fixed;
- font-size: 12px;
- overflow-y: auto;
- top: 0;
- right: 0;
- margin: 0;
- height: 100%;
- padding: 15px 0;
- text-align: right;
- border-left: 1px solid #eee;
- max-width: 400px;
- overflow: auto;
- white-space: nowrap;
-
- -moz-box-shadow: 0 0 2px #888
- , inset 5px 0 20px rgba(0,0,0,.5)
- , inset 5px 0 3px rgba(0,0,0,.3);
- -webkit-box-shadow: 0 0 2px #888
- , inset 5px 0 20px rgba(0,0,0,.5)
- , inset 5px 0 3px rgba(0,0,0,.3);
- box-shadow: 0 0 2px #888
- , inset 5px 0 20px rgba(0,0,0,.5)
- , inset 5px 0 3px rgba(0,0,0,.3);
- -webkit-font-smoothing: antialiased;
- background: url("data:image/png;base64,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");
-}
-
-#menu::after {
- display: block;
- content: '';
- padding-top: 80px;
-}
-
-#logo {
- position: fixed;
- bottom: 10px;
- right: 10px;
- background: rgba(255,255,255,.1);
- font-size: 11px;
- display: block;
- width: 20px;
- height: 20px;
- line-height: 20px;
- text-align: center;
- -webkit-border-radius: 20px;
- -moz-border-radius: 20px;
- border-radius: 20px;
- -webkit-box-shadow: 0 0 3px rgba(0,0,0,.2);
- -moz-box-shadow: 0 0 3px rgba(0,0,0,.2);
- box-shadow: 0 0 3px rgba(0,0,0,.2);
- color: inherit;
-}
-
-#menu li a {
- display: block;
- color: white;
- padding: 0 35px 0 25px;
- -webkit-transition: background 300ms;
- -moz-transition: background 300ms;
-}
-
-#menu li {
- position: relative;
- list-style: none;
-}
-
-#menu a:hover,
-#menu a.active {
- text-decoration: none;
- background: rgba(255,255,255,.1);
-}
-
-#menu li:hover .cov {
- opacity: 1;
-}
-
-#menu li .dirname {
- opacity: .60;
- padding-right: 2px;
-}
-
-#menu li .basename {
- opacity: 1;
-}
-
-#menu .cov {
- background: rgba(0,0,0,.4);
- position: absolute;
- top: 0;
- right: 8px;
- font-size: 9px;
- opacity: .6;
- text-align: left;
- width: 17px;
- -webkit-border-radius: 10px;
- -moz-border-radius: 10px;
- border-radius: 10px;
- padding: 2px 3px;
- text-align: center;
-}
-
-#stats:nth-child(2n) {
- display: inline-block;
- margin-top: 15px;
- border: 1px solid #eee;
- padding: 10px;
- -webkit-box-shadow: inset 0 0 2px #eee;
- -moz-box-shadow: inset 0 0 2px #eee;
- box-shadow: inset 0 0 2px #eee;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- border-radius: 5px;
-}
-
-#stats div {
- float: left;
- padding: 0 5px;
-}
-
-#stats::after {
- display: block;
- content: '';
- clear: both;
-}
-
-#stats .sloc::after {
- content: ' SLOC';
- color: #b6b6b6;
-}
-
-#stats .percentage::after {
- content: ' coverage';
- color: #b6b6b6;
-}
-
-#stats .hits,
-#stats .misses {
- display: none;
-}
-
-.high {
- color: #00d4b4;
-}
-.medium {
- color: #e87d0d;
-}
-.low {
- color: #d4081a;
-}
-.terrible {
- color: #d4081a;
- font-weight: bold;
-}
-
-table {
- width: 80%;
- margin-top: 10px;
- border-collapse: collapse;
- border: 1px solid #cbcbcb;
- color: #363636;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
-}
-
-table thead {
- display: none;
-}
-
-table td.line,
-table td.hits {
- width: 20px;
- background: #eaeaea;
- text-align: center;
- font-size: 11px;
- padding: 0 10px;
- color: #949494;
-}
-
-table td.hits {
- width: 10px;
- padding: 2px 5px;
- color: rgba(0,0,0,.2);
- background: #f0f0f0;
-}
-
-tr.miss td.line,
-tr.miss td.hits {
- background: #e6c3c7;
-}
-
-tr.miss td {
- background: #f8d5d8;
-}
-
-td.source {
- padding-left: 15px;
- line-height: 15px;
- white-space: pre;
- font: 12px monaco, monospace;
-}
-
-code .comment { color: #ddd }
-code .init { color: #2F6FAD }
-code .string { color: #5890AD }
-code .keyword { color: #8A6343 }
-code .number { color: #2F6FAD }
-</style>
diff --git a/node_modules/mocha/lib/reporters/xunit.js b/node_modules/mocha/lib/reporters/xunit.js
deleted file mode 100644
index 1cfd8f4f5..000000000
--- a/node_modules/mocha/lib/reporters/xunit.js
+++ /dev/null
@@ -1,166 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var utils = require('../utils');
-var inherits = utils.inherits;
-var fs = require('fs');
-var escape = utils.escape;
-var mkdirp = require('mkdirp');
-var path = require('path');
-
-/**
- * Save timer references to avoid Sinon interfering (see GH-237).
- */
-
-/* eslint-disable no-unused-vars, no-native-reassign */
-var Date = global.Date;
-var setTimeout = global.setTimeout;
-var setInterval = global.setInterval;
-var clearTimeout = global.clearTimeout;
-var clearInterval = global.clearInterval;
-/* eslint-enable no-unused-vars, no-native-reassign */
-
-/**
- * Expose `XUnit`.
- */
-
-exports = module.exports = XUnit;
-
-/**
- * Initialize a new `XUnit` reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function XUnit(runner, options) {
- Base.call(this, runner);
-
- var stats = this.stats;
- var tests = [];
- var self = this;
-
- if (options.reporterOptions && options.reporterOptions.output) {
- if (!fs.createWriteStream) {
- throw new Error('file output not supported in browser');
- }
- mkdirp.sync(path.dirname(options.reporterOptions.output));
- self.fileStream = fs.createWriteStream(options.reporterOptions.output);
- }
-
- runner.on('pending', function(test) {
- tests.push(test);
- });
-
- runner.on('pass', function(test) {
- tests.push(test);
- });
-
- runner.on('fail', function(test) {
- tests.push(test);
- });
-
- runner.on('end', function() {
- self.write(tag('testsuite', {
- name: 'Mocha Tests',
- tests: stats.tests,
- failures: stats.failures,
- errors: stats.failures,
- skipped: stats.tests - stats.failures - stats.passes,
- timestamp: (new Date()).toUTCString(),
- time: (stats.duration / 1000) || 0
- }, false));
-
- tests.forEach(function(t) {
- self.test(t);
- });
-
- self.write('</testsuite>');
- });
-}
-
-/**
- * Inherit from `Base.prototype`.
- */
-inherits(XUnit, Base);
-
-/**
- * Override done to close the stream (if it's a file).
- *
- * @param failures
- * @param {Function} fn
- */
-XUnit.prototype.done = function(failures, fn) {
- if (this.fileStream) {
- this.fileStream.end(function() {
- fn(failures);
- });
- } else {
- fn(failures);
- }
-};
-
-/**
- * Write out the given line.
- *
- * @param {string} line
- */
-XUnit.prototype.write = function(line) {
- if (this.fileStream) {
- this.fileStream.write(line + '\n');
- } else if (typeof process === 'object' && process.stdout) {
- process.stdout.write(line + '\n');
- } else {
- console.log(line);
- }
-};
-
-/**
- * Output tag for the given `test.`
- *
- * @param {Test} test
- */
-XUnit.prototype.test = function(test) {
- var attrs = {
- classname: test.parent.fullTitle(),
- name: test.title,
- time: (test.duration / 1000) || 0
- };
-
- if (test.state === 'failed') {
- var err = test.err;
- this.write(tag('testcase', attrs, false, tag('failure', {}, false, escape(err.message) + '\n' + escape(err.stack))));
- } else if (test.isPending()) {
- this.write(tag('testcase', attrs, false, tag('skipped', {}, true)));
- } else {
- this.write(tag('testcase', attrs, true));
- }
-};
-
-/**
- * HTML tag helper.
- *
- * @param name
- * @param attrs
- * @param close
- * @param content
- * @return {string}
- */
-function tag(name, attrs, close, content) {
- var end = close ? '/>' : '>';
- var pairs = [];
- var tag;
-
- for (var key in attrs) {
- if (Object.prototype.hasOwnProperty.call(attrs, key)) {
- pairs.push(key + '="' + escape(attrs[key]) + '"');
- }
- }
-
- tag = '<' + name + (pairs.length ? ' ' + pairs.join(' ') : '') + end;
- if (content) {
- tag += content + '</' + name + end;
- }
- return tag;
-}
diff --git a/node_modules/mocha/lib/runnable.js b/node_modules/mocha/lib/runnable.js
deleted file mode 100644
index 64de4e9a2..000000000
--- a/node_modules/mocha/lib/runnable.js
+++ /dev/null
@@ -1,363 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var EventEmitter = require('events').EventEmitter;
-var Pending = require('./pending');
-var debug = require('debug')('mocha:runnable');
-var milliseconds = require('./ms');
-var utils = require('./utils');
-var inherits = utils.inherits;
-
-/**
- * Save timer references to avoid Sinon interfering (see GH-237).
- */
-
-/* eslint-disable no-unused-vars, no-native-reassign */
-var Date = global.Date;
-var setTimeout = global.setTimeout;
-var setInterval = global.setInterval;
-var clearTimeout = global.clearTimeout;
-var clearInterval = global.clearInterval;
-/* eslint-enable no-unused-vars, no-native-reassign */
-
-/**
- * Object#toString().
- */
-
-var toString = Object.prototype.toString;
-
-/**
- * Expose `Runnable`.
- */
-
-module.exports = Runnable;
-
-/**
- * Initialize a new `Runnable` with the given `title` and callback `fn`.
- *
- * @param {String} title
- * @param {Function} fn
- * @api private
- * @param {string} title
- * @param {Function} fn
- */
-function Runnable(title, fn) {
- this.title = title;
- this.fn = fn;
- this.body = (fn || '').toString();
- this.async = fn && fn.length;
- this.sync = !this.async;
- this._timeout = 2000;
- this._slow = 75;
- this._enableTimeouts = true;
- this.timedOut = false;
- this._trace = new Error('done() called multiple times');
- this._retries = -1;
- this._currentRetry = 0;
- this.pending = false;
-}
-
-/**
- * Inherit from `EventEmitter.prototype`.
- */
-inherits(Runnable, EventEmitter);
-
-/**
- * Set & get timeout `ms`.
- *
- * @api private
- * @param {number|string} ms
- * @return {Runnable|number} ms or Runnable instance.
- */
-Runnable.prototype.timeout = function(ms) {
- if (!arguments.length) {
- return this._timeout;
- }
- if (ms === 0) {
- this._enableTimeouts = false;
- }
- if (typeof ms === 'string') {
- ms = milliseconds(ms);
- }
- debug('timeout %d', ms);
- this._timeout = ms;
- if (this.timer) {
- this.resetTimeout();
- }
- return this;
-};
-
-/**
- * Set & get slow `ms`.
- *
- * @api private
- * @param {number|string} ms
- * @return {Runnable|number} ms or Runnable instance.
- */
-Runnable.prototype.slow = function(ms) {
- if (!arguments.length) {
- return this._slow;
- }
- if (typeof ms === 'string') {
- ms = milliseconds(ms);
- }
- debug('timeout %d', ms);
- this._slow = ms;
- return this;
-};
-
-/**
- * Set and get whether timeout is `enabled`.
- *
- * @api private
- * @param {boolean} enabled
- * @return {Runnable|boolean} enabled or Runnable instance.
- */
-Runnable.prototype.enableTimeouts = function(enabled) {
- if (!arguments.length) {
- return this._enableTimeouts;
- }
- debug('enableTimeouts %s', enabled);
- this._enableTimeouts = enabled;
- return this;
-};
-
-/**
- * Halt and mark as pending.
- *
- * @api public
- */
-Runnable.prototype.skip = function() {
- throw new Pending();
-};
-
-/**
- * Check if this runnable or its parent suite is marked as pending.
- *
- * @api private
- */
-Runnable.prototype.isPending = function() {
- return this.pending || (this.parent && this.parent.isPending());
-};
-
-/**
- * Set number of retries.
- *
- * @api private
- */
-Runnable.prototype.retries = function(n) {
- if (!arguments.length) {
- return this._retries;
- }
- this._retries = n;
-};
-
-/**
- * Get current retry
- *
- * @api private
- */
-Runnable.prototype.currentRetry = function(n) {
- if (!arguments.length) {
- return this._currentRetry;
- }
- this._currentRetry = n;
-};
-
-/**
- * Return the full title generated by recursively concatenating the parent's
- * full title.
- *
- * @api public
- * @return {string}
- */
-Runnable.prototype.fullTitle = function() {
- return this.parent.fullTitle() + ' ' + this.title;
-};
-
-/**
- * Clear the timeout.
- *
- * @api private
- */
-Runnable.prototype.clearTimeout = function() {
- clearTimeout(this.timer);
-};
-
-/**
- * Inspect the runnable void of private properties.
- *
- * @api private
- * @return {string}
- */
-Runnable.prototype.inspect = function() {
- return JSON.stringify(this, function(key, val) {
- if (key[0] === '_') {
- return;
- }
- if (key === 'parent') {
- return '#<Suite>';
- }
- if (key === 'ctx') {
- return '#<Context>';
- }
- return val;
- }, 2);
-};
-
-/**
- * Reset the timeout.
- *
- * @api private
- */
-Runnable.prototype.resetTimeout = function() {
- var self = this;
- var ms = this.timeout() || 1e9;
-
- if (!this._enableTimeouts) {
- return;
- }
- this.clearTimeout();
- this.timer = setTimeout(function() {
- if (!self._enableTimeouts) {
- return;
- }
- self.callback(new Error('timeout of ' + ms + 'ms exceeded. Ensure the done() callback is being called in this test.'));
- self.timedOut = true;
- }, ms);
-};
-
-/**
- * Whitelist a list of globals for this test run.
- *
- * @api private
- * @param {string[]} globals
- */
-Runnable.prototype.globals = function(globals) {
- if (!arguments.length) {
- return this._allowedGlobals;
- }
- this._allowedGlobals = globals;
-};
-
-/**
- * Run the test and invoke `fn(err)`.
- *
- * @param {Function} fn
- * @api private
- */
-Runnable.prototype.run = function(fn) {
- var self = this;
- var start = new Date();
- var ctx = this.ctx;
- var finished;
- var emitted;
-
- // Sometimes the ctx exists, but it is not runnable
- if (ctx && ctx.runnable) {
- ctx.runnable(this);
- }
-
- // called multiple times
- function multiple(err) {
- if (emitted) {
- return;
- }
- emitted = true;
- self.emit('error', err || new Error('done() called multiple times; stacktrace may be inaccurate'));
- }
-
- // finished
- function done(err) {
- var ms = self.timeout();
- if (self.timedOut) {
- return;
- }
- if (finished) {
- return multiple(err || self._trace);
- }
-
- self.clearTimeout();
- self.duration = new Date() - start;
- finished = true;
- if (!err && self.duration > ms && self._enableTimeouts) {
- err = new Error('timeout of ' + ms + 'ms exceeded. Ensure the done() callback is being called in this test.');
- }
- fn(err);
- }
-
- // for .resetTimeout()
- this.callback = done;
-
- // explicit async with `done` argument
- if (this.async) {
- this.resetTimeout();
-
- if (this.allowUncaught) {
- return callFnAsync(this.fn);
- }
- try {
- callFnAsync(this.fn);
- } catch (err) {
- done(utils.getError(err));
- }
- return;
- }
-
- if (this.allowUncaught) {
- callFn(this.fn);
- done();
- return;
- }
-
- // sync or promise-returning
- try {
- if (this.isPending()) {
- done();
- } else {
- callFn(this.fn);
- }
- } catch (err) {
- done(utils.getError(err));
- }
-
- function callFn(fn) {
- var result = fn.call(ctx);
- if (result && typeof result.then === 'function') {
- self.resetTimeout();
- result
- .then(function() {
- done();
- // Return null so libraries like bluebird do not warn about
- // subsequently constructed Promises.
- return null;
- },
- function(reason) {
- done(reason || new Error('Promise rejected with no or falsy reason'));
- });
- } else {
- if (self.asyncOnly) {
- return done(new Error('--async-only option in use without declaring `done()` or returning a promise'));
- }
-
- done();
- }
- }
-
- function callFnAsync(fn) {
- fn.call(ctx, function(err) {
- if (err instanceof Error || toString.call(err) === '[object Error]') {
- return done(err);
- }
- if (err) {
- if (Object.prototype.toString.call(err) === '[object Object]') {
- return done(new Error('done() invoked with non-Error: '
- + JSON.stringify(err)));
- }
- return done(new Error('done() invoked with non-Error: ' + err));
- }
- done();
- });
- }
-};
diff --git a/node_modules/mocha/lib/runner.js b/node_modules/mocha/lib/runner.js
deleted file mode 100644
index ba4d7df97..000000000
--- a/node_modules/mocha/lib/runner.js
+++ /dev/null
@@ -1,894 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var EventEmitter = require('events').EventEmitter;
-var Pending = require('./pending');
-var utils = require('./utils');
-var inherits = utils.inherits;
-var debug = require('debug')('mocha:runner');
-var Runnable = require('./runnable');
-var filter = utils.filter;
-var indexOf = utils.indexOf;
-var keys = utils.keys;
-var stackFilter = utils.stackTraceFilter();
-var stringify = utils.stringify;
-var type = utils.type;
-var undefinedError = utils.undefinedError;
-var isArray = utils.isArray;
-
-/**
- * Non-enumerable globals.
- */
-
-var globals = [
- 'setTimeout',
- 'clearTimeout',
- 'setInterval',
- 'clearInterval',
- 'XMLHttpRequest',
- 'Date',
- 'setImmediate',
- 'clearImmediate'
-];
-
-/**
- * Expose `Runner`.
- */
-
-module.exports = Runner;
-
-/**
- * Initialize a `Runner` for the given `suite`.
- *
- * Events:
- *
- * - `start` execution started
- * - `end` execution complete
- * - `suite` (suite) test suite execution started
- * - `suite end` (suite) all tests (and sub-suites) have finished
- * - `test` (test) test execution started
- * - `test end` (test) test completed
- * - `hook` (hook) hook execution started
- * - `hook end` (hook) hook complete
- * - `pass` (test) test passed
- * - `fail` (test, err) test failed
- * - `pending` (test) test pending
- *
- * @api public
- * @param {Suite} suite Root suite
- * @param {boolean} [delay] Whether or not to delay execution of root suite
- * until ready.
- */
-function Runner(suite, delay) {
- var self = this;
- this._globals = [];
- this._abort = false;
- this._delay = delay;
- this.suite = suite;
- this.started = false;
- this.total = suite.total();
- this.failures = 0;
- this.on('test end', function(test) {
- self.checkGlobals(test);
- });
- this.on('hook end', function(hook) {
- self.checkGlobals(hook);
- });
- this._defaultGrep = /.*/;
- this.grep(this._defaultGrep);
- this.globals(this.globalProps().concat(extraGlobals()));
-}
-
-/**
- * Wrapper for setImmediate, process.nextTick, or browser polyfill.
- *
- * @param {Function} fn
- * @api private
- */
-Runner.immediately = global.setImmediate || process.nextTick;
-
-/**
- * Inherit from `EventEmitter.prototype`.
- */
-inherits(Runner, EventEmitter);
-
-/**
- * Run tests with full titles matching `re`. Updates runner.total
- * with number of tests matched.
- *
- * @param {RegExp} re
- * @param {Boolean} invert
- * @return {Runner} for chaining
- * @api public
- * @param {RegExp} re
- * @param {boolean} invert
- * @return {Runner} Runner instance.
- */
-Runner.prototype.grep = function(re, invert) {
- debug('grep %s', re);
- this._grep = re;
- this._invert = invert;
- this.total = this.grepTotal(this.suite);
- return this;
-};
-
-/**
- * Returns the number of tests matching the grep search for the
- * given suite.
- *
- * @param {Suite} suite
- * @return {Number}
- * @api public
- * @param {Suite} suite
- * @return {number}
- */
-Runner.prototype.grepTotal = function(suite) {
- var self = this;
- var total = 0;
-
- suite.eachTest(function(test) {
- var match = self._grep.test(test.fullTitle());
- if (self._invert) {
- match = !match;
- }
- if (match) {
- total++;
- }
- });
-
- return total;
-};
-
-/**
- * Return a list of global properties.
- *
- * @return {Array}
- * @api private
- */
-Runner.prototype.globalProps = function() {
- var props = keys(global);
-
- // non-enumerables
- for (var i = 0; i < globals.length; ++i) {
- if (~indexOf(props, globals[i])) {
- continue;
- }
- props.push(globals[i]);
- }
-
- return props;
-};
-
-/**
- * Allow the given `arr` of globals.
- *
- * @param {Array} arr
- * @return {Runner} for chaining
- * @api public
- * @param {Array} arr
- * @return {Runner} Runner instance.
- */
-Runner.prototype.globals = function(arr) {
- if (!arguments.length) {
- return this._globals;
- }
- debug('globals %j', arr);
- this._globals = this._globals.concat(arr);
- return this;
-};
-
-/**
- * Check for global variable leaks.
- *
- * @api private
- */
-Runner.prototype.checkGlobals = function(test) {
- if (this.ignoreLeaks) {
- return;
- }
- var ok = this._globals;
-
- var globals = this.globalProps();
- var leaks;
-
- if (test) {
- ok = ok.concat(test._allowedGlobals || []);
- }
-
- if (this.prevGlobalsLength === globals.length) {
- return;
- }
- this.prevGlobalsLength = globals.length;
-
- leaks = filterLeaks(ok, globals);
- this._globals = this._globals.concat(leaks);
-
- if (leaks.length > 1) {
- this.fail(test, new Error('global leaks detected: ' + leaks.join(', ') + ''));
- } else if (leaks.length) {
- this.fail(test, new Error('global leak detected: ' + leaks[0]));
- }
-};
-
-/**
- * Fail the given `test`.
- *
- * @api private
- * @param {Test} test
- * @param {Error} err
- */
-Runner.prototype.fail = function(test, err) {
- ++this.failures;
- test.state = 'failed';
-
- if (!(err instanceof Error || err && typeof err.message === 'string')) {
- err = new Error('the ' + type(err) + ' ' + stringify(err) + ' was thrown, throw an Error :)');
- }
-
- err.stack = (this.fullStackTrace || !err.stack)
- ? err.stack
- : stackFilter(err.stack);
-
- this.emit('fail', test, err);
-};
-
-/**
- * Fail the given `hook` with `err`.
- *
- * Hook failures work in the following pattern:
- * - If bail, then exit
- * - Failed `before` hook skips all tests in a suite and subsuites,
- * but jumps to corresponding `after` hook
- * - Failed `before each` hook skips remaining tests in a
- * suite and jumps to corresponding `after each` hook,
- * which is run only once
- * - Failed `after` hook does not alter
- * execution order
- * - Failed `after each` hook skips remaining tests in a
- * suite and subsuites, but executes other `after each`
- * hooks
- *
- * @api private
- * @param {Hook} hook
- * @param {Error} err
- */
-Runner.prototype.failHook = function(hook, err) {
- if (hook.ctx && hook.ctx.currentTest) {
- hook.originalTitle = hook.originalTitle || hook.title;
- hook.title = hook.originalTitle + ' for "' + hook.ctx.currentTest.title + '"';
- }
-
- this.fail(hook, err);
- if (this.suite.bail()) {
- this.emit('end');
- }
-};
-
-/**
- * Run hook `name` callbacks and then invoke `fn()`.
- *
- * @api private
- * @param {string} name
- * @param {Function} fn
- */
-
-Runner.prototype.hook = function(name, fn) {
- var suite = this.suite;
- var hooks = suite['_' + name];
- var self = this;
-
- function next(i) {
- var hook = hooks[i];
- if (!hook) {
- return fn();
- }
- self.currentRunnable = hook;
-
- hook.ctx.currentTest = self.test;
-
- self.emit('hook', hook);
-
- if (!hook.listeners('error').length) {
- hook.on('error', function(err) {
- self.failHook(hook, err);
- });
- }
-
- hook.run(function(err) {
- var testError = hook.error();
- if (testError) {
- self.fail(self.test, testError);
- }
- if (err) {
- if (err instanceof Pending) {
- suite.pending = true;
- } else {
- self.failHook(hook, err);
-
- // stop executing hooks, notify callee of hook err
- return fn(err);
- }
- }
- self.emit('hook end', hook);
- delete hook.ctx.currentTest;
- next(++i);
- });
- }
-
- Runner.immediately(function() {
- next(0);
- });
-};
-
-/**
- * Run hook `name` for the given array of `suites`
- * in order, and callback `fn(err, errSuite)`.
- *
- * @api private
- * @param {string} name
- * @param {Array} suites
- * @param {Function} fn
- */
-Runner.prototype.hooks = function(name, suites, fn) {
- var self = this;
- var orig = this.suite;
-
- function next(suite) {
- self.suite = suite;
-
- if (!suite) {
- self.suite = orig;
- return fn();
- }
-
- self.hook(name, function(err) {
- if (err) {
- var errSuite = self.suite;
- self.suite = orig;
- return fn(err, errSuite);
- }
-
- next(suites.pop());
- });
- }
-
- next(suites.pop());
-};
-
-/**
- * Run hooks from the top level down.
- *
- * @param {String} name
- * @param {Function} fn
- * @api private
- */
-Runner.prototype.hookUp = function(name, fn) {
- var suites = [this.suite].concat(this.parents()).reverse();
- this.hooks(name, suites, fn);
-};
-
-/**
- * Run hooks from the bottom up.
- *
- * @param {String} name
- * @param {Function} fn
- * @api private
- */
-Runner.prototype.hookDown = function(name, fn) {
- var suites = [this.suite].concat(this.parents());
- this.hooks(name, suites, fn);
-};
-
-/**
- * Return an array of parent Suites from
- * closest to furthest.
- *
- * @return {Array}
- * @api private
- */
-Runner.prototype.parents = function() {
- var suite = this.suite;
- var suites = [];
- while (suite.parent) {
- suite = suite.parent;
- suites.push(suite);
- }
- return suites;
-};
-
-/**
- * Run the current test and callback `fn(err)`.
- *
- * @param {Function} fn
- * @api private
- */
-Runner.prototype.runTest = function(fn) {
- var self = this;
- var test = this.test;
-
- if (this.asyncOnly) {
- test.asyncOnly = true;
- }
-
- if (this.allowUncaught) {
- test.allowUncaught = true;
- return test.run(fn);
- }
- try {
- test.on('error', function(err) {
- self.fail(test, err);
- });
- test.run(fn);
- } catch (err) {
- fn(err);
- }
-};
-
-/**
- * Run tests in the given `suite` and invoke the callback `fn()` when complete.
- *
- * @api private
- * @param {Suite} suite
- * @param {Function} fn
- */
-Runner.prototype.runTests = function(suite, fn) {
- var self = this;
- var tests = suite.tests.slice();
- var test;
-
- function hookErr(_, errSuite, after) {
- // before/after Each hook for errSuite failed:
- var orig = self.suite;
-
- // for failed 'after each' hook start from errSuite parent,
- // otherwise start from errSuite itself
- self.suite = after ? errSuite.parent : errSuite;
-
- if (self.suite) {
- // call hookUp afterEach
- self.hookUp('afterEach', function(err2, errSuite2) {
- self.suite = orig;
- // some hooks may fail even now
- if (err2) {
- return hookErr(err2, errSuite2, true);
- }
- // report error suite
- fn(errSuite);
- });
- } else {
- // there is no need calling other 'after each' hooks
- self.suite = orig;
- fn(errSuite);
- }
- }
-
- function next(err, errSuite) {
- // if we bail after first err
- if (self.failures && suite._bail) {
- return fn();
- }
-
- if (self._abort) {
- return fn();
- }
-
- if (err) {
- return hookErr(err, errSuite, true);
- }
-
- // next test
- test = tests.shift();
-
- // all done
- if (!test) {
- return fn();
- }
-
- // grep
- var match = self._grep.test(test.fullTitle());
- if (self._invert) {
- match = !match;
- }
- if (!match) {
- // Run immediately only if we have defined a grep. When we
- // define a grep — It can cause maximum callstack error if
- // the grep is doing a large recursive loop by neglecting
- // all tests. The run immediately function also comes with
- // a performance cost. So we don't want to run immediately
- // if we run the whole test suite, because running the whole
- // test suite don't do any immediate recursive loops. Thus,
- // allowing a JS runtime to breathe.
- if (self._grep !== self._defaultGrep) {
- Runner.immediately(next);
- } else {
- next();
- }
- return;
- }
-
- if (test.isPending()) {
- self.emit('pending', test);
- self.emit('test end', test);
- return next();
- }
-
- // execute test and hook(s)
- self.emit('test', self.test = test);
- self.hookDown('beforeEach', function(err, errSuite) {
- if (suite.isPending()) {
- self.emit('pending', test);
- self.emit('test end', test);
- return next();
- }
- if (err) {
- return hookErr(err, errSuite, false);
- }
- self.currentRunnable = self.test;
- self.runTest(function(err) {
- test = self.test;
- if (err) {
- var retry = test.currentRetry();
- if (err instanceof Pending) {
- test.pending = true;
- self.emit('pending', test);
- } else if (retry < test.retries()) {
- var clonedTest = test.clone();
- clonedTest.currentRetry(retry + 1);
- tests.unshift(clonedTest);
-
- // Early return + hook trigger so that it doesn't
- // increment the count wrong
- return self.hookUp('afterEach', next);
- } else {
- self.fail(test, err);
- }
- self.emit('test end', test);
-
- if (err instanceof Pending) {
- return next();
- }
-
- return self.hookUp('afterEach', next);
- }
-
- test.state = 'passed';
- self.emit('pass', test);
- self.emit('test end', test);
- self.hookUp('afterEach', next);
- });
- });
- }
-
- this.next = next;
- this.hookErr = hookErr;
- next();
-};
-
-/**
- * Run the given `suite` and invoke the callback `fn()` when complete.
- *
- * @api private
- * @param {Suite} suite
- * @param {Function} fn
- */
-Runner.prototype.runSuite = function(suite, fn) {
- var i = 0;
- var self = this;
- var total = this.grepTotal(suite);
- var afterAllHookCalled = false;
-
- debug('run suite %s', suite.fullTitle());
-
- if (!total || (self.failures && suite._bail)) {
- return fn();
- }
-
- this.emit('suite', this.suite = suite);
-
- function next(errSuite) {
- if (errSuite) {
- // current suite failed on a hook from errSuite
- if (errSuite === suite) {
- // if errSuite is current suite
- // continue to the next sibling suite
- return done();
- }
- // errSuite is among the parents of current suite
- // stop execution of errSuite and all sub-suites
- return done(errSuite);
- }
-
- if (self._abort) {
- return done();
- }
-
- var curr = suite.suites[i++];
- if (!curr) {
- return done();
- }
-
- // Avoid grep neglecting large number of tests causing a
- // huge recursive loop and thus a maximum call stack error.
- // See comment in `this.runTests()` for more information.
- if (self._grep !== self._defaultGrep) {
- Runner.immediately(function() {
- self.runSuite(curr, next);
- });
- } else {
- self.runSuite(curr, next);
- }
- }
-
- function done(errSuite) {
- self.suite = suite;
- self.nextSuite = next;
-
- if (afterAllHookCalled) {
- fn(errSuite);
- } else {
- // mark that the afterAll block has been called once
- // and so can be skipped if there is an error in it.
- afterAllHookCalled = true;
-
- // remove reference to test
- delete self.test;
-
- self.hook('afterAll', function() {
- self.emit('suite end', suite);
- fn(errSuite);
- });
- }
- }
-
- this.nextSuite = next;
-
- this.hook('beforeAll', function(err) {
- if (err) {
- return done();
- }
- self.runTests(suite, next);
- });
-};
-
-/**
- * Handle uncaught exceptions.
- *
- * @param {Error} err
- * @api private
- */
-Runner.prototype.uncaught = function(err) {
- if (err) {
- debug('uncaught exception %s', err !== function() {
- return this;
- }.call(err) ? err : (err.message || err));
- } else {
- debug('uncaught undefined exception');
- err = undefinedError();
- }
- err.uncaught = true;
-
- var runnable = this.currentRunnable;
-
- if (!runnable) {
- runnable = new Runnable('Uncaught error outside test suite');
- runnable.parent = this.suite;
-
- if (this.started) {
- this.fail(runnable, err);
- } else {
- // Can't recover from this failure
- this.emit('start');
- this.fail(runnable, err);
- this.emit('end');
- }
-
- return;
- }
-
- runnable.clearTimeout();
-
- // Ignore errors if complete
- if (runnable.state) {
- return;
- }
- this.fail(runnable, err);
-
- // recover from test
- if (runnable.type === 'test') {
- this.emit('test end', runnable);
- this.hookUp('afterEach', this.next);
- return;
- }
-
- // recover from hooks
- if (runnable.type === 'hook') {
- var errSuite = this.suite;
- // if hook failure is in afterEach block
- if (runnable.fullTitle().indexOf('after each') > -1) {
- return this.hookErr(err, errSuite, true);
- }
- // if hook failure is in beforeEach block
- if (runnable.fullTitle().indexOf('before each') > -1) {
- return this.hookErr(err, errSuite, false);
- }
- // if hook failure is in after or before blocks
- return this.nextSuite(errSuite);
- }
-
- // bail
- this.emit('end');
-};
-
-/**
- * Cleans up the references to all the deferred functions
- * (before/after/beforeEach/afterEach) and tests of a Suite.
- * These must be deleted otherwise a memory leak can happen,
- * as those functions may reference variables from closures,
- * thus those variables can never be garbage collected as long
- * as the deferred functions exist.
- *
- * @param {Suite} suite
- */
-function cleanSuiteReferences(suite) {
- function cleanArrReferences(arr) {
- for (var i = 0; i < arr.length; i++) {
- delete arr[i].fn;
- }
- }
-
- if (isArray(suite._beforeAll)) {
- cleanArrReferences(suite._beforeAll);
- }
-
- if (isArray(suite._beforeEach)) {
- cleanArrReferences(suite._beforeEach);
- }
-
- if (isArray(suite._afterAll)) {
- cleanArrReferences(suite._afterAll);
- }
-
- if (isArray(suite._afterEach)) {
- cleanArrReferences(suite._afterEach);
- }
-
- for (var i = 0; i < suite.tests.length; i++) {
- delete suite.tests[i].fn;
- }
-}
-
-/**
- * Run the root suite and invoke `fn(failures)`
- * on completion.
- *
- * @param {Function} fn
- * @return {Runner} for chaining
- * @api public
- * @param {Function} fn
- * @return {Runner} Runner instance.
- */
-Runner.prototype.run = function(fn) {
- var self = this;
- var rootSuite = this.suite;
-
- fn = fn || function() {};
-
- function uncaught(err) {
- self.uncaught(err);
- }
-
- function start() {
- self.started = true;
- self.emit('start');
- self.runSuite(rootSuite, function() {
- debug('finished running');
- self.emit('end');
- });
- }
-
- debug('start');
-
- // references cleanup to avoid memory leaks
- this.on('suite end', cleanSuiteReferences);
-
- // callback
- this.on('end', function() {
- debug('end');
- process.removeListener('uncaughtException', uncaught);
- fn(self.failures);
- });
-
- // uncaught exception
- process.on('uncaughtException', uncaught);
-
- if (this._delay) {
- // for reporters, I guess.
- // might be nice to debounce some dots while we wait.
- this.emit('waiting', rootSuite);
- rootSuite.once('run', start);
- } else {
- start();
- }
-
- return this;
-};
-
-/**
- * Cleanly abort execution.
- *
- * @api public
- * @return {Runner} Runner instance.
- */
-Runner.prototype.abort = function() {
- debug('aborting');
- this._abort = true;
-
- return this;
-};
-
-/**
- * Filter leaks with the given globals flagged as `ok`.
- *
- * @api private
- * @param {Array} ok
- * @param {Array} globals
- * @return {Array}
- */
-function filterLeaks(ok, globals) {
- return filter(globals, function(key) {
- // Firefox and Chrome exposes iframes as index inside the window object
- if (/^d+/.test(key)) {
- return false;
- }
-
- // in firefox
- // if runner runs in an iframe, this iframe's window.getInterface method not init at first
- // it is assigned in some seconds
- if (global.navigator && (/^getInterface/).test(key)) {
- return false;
- }
-
- // an iframe could be approached by window[iframeIndex]
- // in ie6,7,8 and opera, iframeIndex is enumerable, this could cause leak
- if (global.navigator && (/^\d+/).test(key)) {
- return false;
- }
-
- // Opera and IE expose global variables for HTML element IDs (issue #243)
- if (/^mocha-/.test(key)) {
- return false;
- }
-
- var matched = filter(ok, function(ok) {
- if (~ok.indexOf('*')) {
- return key.indexOf(ok.split('*')[0]) === 0;
- }
- return key === ok;
- });
- return !matched.length && (!global.navigator || key !== 'onerror');
- });
-}
-
-/**
- * Array of globals dependent on the environment.
- *
- * @return {Array}
- * @api private
- */
-function extraGlobals() {
- if (typeof process === 'object' && typeof process.version === 'string') {
- var parts = process.version.split('.');
- var nodeVersion = utils.reduce(parts, function(a, v) {
- return a << 8 | v;
- });
-
- // 'errno' was renamed to process._errno in v0.9.11.
-
- if (nodeVersion < 0x00090B) {
- return ['errno'];
- }
- }
-
- return [];
-}
diff --git a/node_modules/mocha/lib/suite.js b/node_modules/mocha/lib/suite.js
deleted file mode 100644
index d43dd4560..000000000
--- a/node_modules/mocha/lib/suite.js
+++ /dev/null
@@ -1,395 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var EventEmitter = require('events').EventEmitter;
-var Hook = require('./hook');
-var utils = require('./utils');
-var inherits = utils.inherits;
-var debug = require('debug')('mocha:suite');
-var milliseconds = require('./ms');
-
-/**
- * Expose `Suite`.
- */
-
-exports = module.exports = Suite;
-
-/**
- * Create a new `Suite` with the given `title` and parent `Suite`. When a suite
- * with the same title is already present, that suite is returned to provide
- * nicer reporter and more flexible meta-testing.
- *
- * @api public
- * @param {Suite} parent
- * @param {string} title
- * @return {Suite}
- */
-exports.create = function(parent, title) {
- var suite = new Suite(title, parent.ctx);
- suite.parent = parent;
- title = suite.fullTitle();
- parent.addSuite(suite);
- return suite;
-};
-
-/**
- * Initialize a new `Suite` with the given `title` and `ctx`.
- *
- * @api private
- * @param {string} title
- * @param {Context} parentContext
- */
-function Suite(title, parentContext) {
- this.title = title;
- function Context() {}
- Context.prototype = parentContext;
- this.ctx = new Context();
- this.suites = [];
- this.tests = [];
- this.pending = false;
- this._beforeEach = [];
- this._beforeAll = [];
- this._afterEach = [];
- this._afterAll = [];
- this.root = !title;
- this._timeout = 2000;
- this._enableTimeouts = true;
- this._slow = 75;
- this._bail = false;
- this._retries = -1;
- this.delayed = false;
-}
-
-/**
- * Inherit from `EventEmitter.prototype`.
- */
-inherits(Suite, EventEmitter);
-
-/**
- * Return a clone of this `Suite`.
- *
- * @api private
- * @return {Suite}
- */
-Suite.prototype.clone = function() {
- var suite = new Suite(this.title);
- debug('clone');
- suite.ctx = this.ctx;
- suite.timeout(this.timeout());
- suite.retries(this.retries());
- suite.enableTimeouts(this.enableTimeouts());
- suite.slow(this.slow());
- suite.bail(this.bail());
- return suite;
-};
-
-/**
- * Set timeout `ms` or short-hand such as "2s".
- *
- * @api private
- * @param {number|string} ms
- * @return {Suite|number} for chaining
- */
-Suite.prototype.timeout = function(ms) {
- if (!arguments.length) {
- return this._timeout;
- }
- if (ms.toString() === '0') {
- this._enableTimeouts = false;
- }
- if (typeof ms === 'string') {
- ms = milliseconds(ms);
- }
- debug('timeout %d', ms);
- this._timeout = parseInt(ms, 10);
- return this;
-};
-
-/**
- * Set number of times to retry a failed test.
- *
- * @api private
- * @param {number|string} n
- * @return {Suite|number} for chaining
- */
-Suite.prototype.retries = function(n) {
- if (!arguments.length) {
- return this._retries;
- }
- debug('retries %d', n);
- this._retries = parseInt(n, 10) || 0;
- return this;
-};
-
-/**
- * Set timeout to `enabled`.
- *
- * @api private
- * @param {boolean} enabled
- * @return {Suite|boolean} self or enabled
- */
-Suite.prototype.enableTimeouts = function(enabled) {
- if (!arguments.length) {
- return this._enableTimeouts;
- }
- debug('enableTimeouts %s', enabled);
- this._enableTimeouts = enabled;
- return this;
-};
-
-/**
- * Set slow `ms` or short-hand such as "2s".
- *
- * @api private
- * @param {number|string} ms
- * @return {Suite|number} for chaining
- */
-Suite.prototype.slow = function(ms) {
- if (!arguments.length) {
- return this._slow;
- }
- if (typeof ms === 'string') {
- ms = milliseconds(ms);
- }
- debug('slow %d', ms);
- this._slow = ms;
- return this;
-};
-
-/**
- * Sets whether to bail after first error.
- *
- * @api private
- * @param {boolean} bail
- * @return {Suite|number} for chaining
- */
-Suite.prototype.bail = function(bail) {
- if (!arguments.length) {
- return this._bail;
- }
- debug('bail %s', bail);
- this._bail = bail;
- return this;
-};
-
-/**
- * Check if this suite or its parent suite is marked as pending.
- *
- * @api private
- */
-Suite.prototype.isPending = function() {
- return this.pending || (this.parent && this.parent.isPending());
-};
-
-/**
- * Run `fn(test[, done])` before running tests.
- *
- * @api private
- * @param {string} title
- * @param {Function} fn
- * @return {Suite} for chaining
- */
-Suite.prototype.beforeAll = function(title, fn) {
- if (this.isPending()) {
- return this;
- }
- if (typeof title === 'function') {
- fn = title;
- title = fn.name;
- }
- title = '"before all" hook' + (title ? ': ' + title : '');
-
- var hook = new Hook(title, fn);
- hook.parent = this;
- hook.timeout(this.timeout());
- hook.retries(this.retries());
- hook.enableTimeouts(this.enableTimeouts());
- hook.slow(this.slow());
- hook.ctx = this.ctx;
- this._beforeAll.push(hook);
- this.emit('beforeAll', hook);
- return this;
-};
-
-/**
- * Run `fn(test[, done])` after running tests.
- *
- * @api private
- * @param {string} title
- * @param {Function} fn
- * @return {Suite} for chaining
- */
-Suite.prototype.afterAll = function(title, fn) {
- if (this.isPending()) {
- return this;
- }
- if (typeof title === 'function') {
- fn = title;
- title = fn.name;
- }
- title = '"after all" hook' + (title ? ': ' + title : '');
-
- var hook = new Hook(title, fn);
- hook.parent = this;
- hook.timeout(this.timeout());
- hook.retries(this.retries());
- hook.enableTimeouts(this.enableTimeouts());
- hook.slow(this.slow());
- hook.ctx = this.ctx;
- this._afterAll.push(hook);
- this.emit('afterAll', hook);
- return this;
-};
-
-/**
- * Run `fn(test[, done])` before each test case.
- *
- * @api private
- * @param {string} title
- * @param {Function} fn
- * @return {Suite} for chaining
- */
-Suite.prototype.beforeEach = function(title, fn) {
- if (this.isPending()) {
- return this;
- }
- if (typeof title === 'function') {
- fn = title;
- title = fn.name;
- }
- title = '"before each" hook' + (title ? ': ' + title : '');
-
- var hook = new Hook(title, fn);
- hook.parent = this;
- hook.timeout(this.timeout());
- hook.retries(this.retries());
- hook.enableTimeouts(this.enableTimeouts());
- hook.slow(this.slow());
- hook.ctx = this.ctx;
- this._beforeEach.push(hook);
- this.emit('beforeEach', hook);
- return this;
-};
-
-/**
- * Run `fn(test[, done])` after each test case.
- *
- * @api private
- * @param {string} title
- * @param {Function} fn
- * @return {Suite} for chaining
- */
-Suite.prototype.afterEach = function(title, fn) {
- if (this.isPending()) {
- return this;
- }
- if (typeof title === 'function') {
- fn = title;
- title = fn.name;
- }
- title = '"after each" hook' + (title ? ': ' + title : '');
-
- var hook = new Hook(title, fn);
- hook.parent = this;
- hook.timeout(this.timeout());
- hook.retries(this.retries());
- hook.enableTimeouts(this.enableTimeouts());
- hook.slow(this.slow());
- hook.ctx = this.ctx;
- this._afterEach.push(hook);
- this.emit('afterEach', hook);
- return this;
-};
-
-/**
- * Add a test `suite`.
- *
- * @api private
- * @param {Suite} suite
- * @return {Suite} for chaining
- */
-Suite.prototype.addSuite = function(suite) {
- suite.parent = this;
- suite.timeout(this.timeout());
- suite.retries(this.retries());
- suite.enableTimeouts(this.enableTimeouts());
- suite.slow(this.slow());
- suite.bail(this.bail());
- this.suites.push(suite);
- this.emit('suite', suite);
- return this;
-};
-
-/**
- * Add a `test` to this suite.
- *
- * @api private
- * @param {Test} test
- * @return {Suite} for chaining
- */
-Suite.prototype.addTest = function(test) {
- test.parent = this;
- test.timeout(this.timeout());
- test.retries(this.retries());
- test.enableTimeouts(this.enableTimeouts());
- test.slow(this.slow());
- test.ctx = this.ctx;
- this.tests.push(test);
- this.emit('test', test);
- return this;
-};
-
-/**
- * Return the full title generated by recursively concatenating the parent's
- * full title.
- *
- * @api public
- * @return {string}
- */
-Suite.prototype.fullTitle = function() {
- if (this.parent) {
- var full = this.parent.fullTitle();
- if (full) {
- return full + ' ' + this.title;
- }
- }
- return this.title;
-};
-
-/**
- * Return the total number of tests.
- *
- * @api public
- * @return {number}
- */
-Suite.prototype.total = function() {
- return utils.reduce(this.suites, function(sum, suite) {
- return sum + suite.total();
- }, 0) + this.tests.length;
-};
-
-/**
- * Iterates through each suite recursively to find all tests. Applies a
- * function in the format `fn(test)`.
- *
- * @api private
- * @param {Function} fn
- * @return {Suite}
- */
-Suite.prototype.eachTest = function(fn) {
- utils.forEach(this.tests, fn);
- utils.forEach(this.suites, function(suite) {
- suite.eachTest(fn);
- });
- return this;
-};
-
-/**
- * This will run the root suite if we happen to be running in delayed mode.
- */
-Suite.prototype.run = function run() {
- if (this.root) {
- this.emit('run');
- }
-};
diff --git a/node_modules/mocha/lib/template.html b/node_modules/mocha/lib/template.html
deleted file mode 100644
index 36c5e0b69..000000000
--- a/node_modules/mocha/lib/template.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Mocha</title>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <link rel="stylesheet" href="mocha.css" />
- </head>
- <body>
- <div id="mocha"></div>
- <script src="mocha.js"></script>
- <script>mocha.setup('bdd');</script>
- <script src="tests.js"></script>
- <script>
- mocha.run();
- </script>
- </body>
-</html>
diff --git a/node_modules/mocha/lib/test.js b/node_modules/mocha/lib/test.js
deleted file mode 100644
index a95cd31a4..000000000
--- a/node_modules/mocha/lib/test.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var Runnable = require('./runnable');
-var inherits = require('./utils').inherits;
-
-/**
- * Expose `Test`.
- */
-
-module.exports = Test;
-
-/**
- * Initialize a new `Test` with the given `title` and callback `fn`.
- *
- * @api private
- * @param {String} title
- * @param {Function} fn
- */
-function Test(title, fn) {
- Runnable.call(this, title, fn);
- this.pending = !fn;
- this.type = 'test';
-}
-
-/**
- * Inherit from `Runnable.prototype`.
- */
-inherits(Test, Runnable);
-
-Test.prototype.clone = function() {
- var test = new Test(this.title, this.fn);
- test.timeout(this.timeout());
- test.slow(this.slow());
- test.enableTimeouts(this.enableTimeouts());
- test.retries(this.retries());
- test.currentRetry(this.currentRetry());
- test.globals(this.globals());
- test.parent = this.parent;
- test.file = this.file;
- test.ctx = this.ctx;
- return test;
-};
diff --git a/node_modules/mocha/lib/utils.js b/node_modules/mocha/lib/utils.js
deleted file mode 100644
index e5d214021..000000000
--- a/node_modules/mocha/lib/utils.js
+++ /dev/null
@@ -1,750 +0,0 @@
-/* eslint-env browser */
-
-/**
- * Module dependencies.
- */
-
-var basename = require('path').basename;
-var debug = require('debug')('mocha:watch');
-var exists = require('fs').existsSync || require('path').existsSync;
-var glob = require('glob');
-var join = require('path').join;
-var readdirSync = require('fs').readdirSync;
-var statSync = require('fs').statSync;
-var watchFile = require('fs').watchFile;
-var toISOString = require('to-iso-string');
-
-/**
- * Ignored directories.
- */
-
-var ignore = ['node_modules', '.git'];
-
-exports.inherits = require('util').inherits;
-
-/**
- * Escape special characters in the given string of html.
- *
- * @api private
- * @param {string} html
- * @return {string}
- */
-exports.escape = function(html) {
- return String(html)
- .replace(/&/g, '&amp;')
- .replace(/"/g, '&quot;')
- .replace(/</g, '&lt;')
- .replace(/>/g, '&gt;');
-};
-
-/**
- * Array#forEach (<=IE8)
- *
- * @api private
- * @param {Array} arr
- * @param {Function} fn
- * @param {Object} scope
- */
-exports.forEach = function(arr, fn, scope) {
- for (var i = 0, l = arr.length; i < l; i++) {
- fn.call(scope, arr[i], i);
- }
-};
-
-/**
- * Test if the given obj is type of string.
- *
- * @api private
- * @param {Object} obj
- * @return {boolean}
- */
-exports.isString = function(obj) {
- return typeof obj === 'string';
-};
-
-/**
- * Array#map (<=IE8)
- *
- * @api private
- * @param {Array} arr
- * @param {Function} fn
- * @param {Object} scope
- * @return {Array}
- */
-exports.map = function(arr, fn, scope) {
- var result = [];
- for (var i = 0, l = arr.length; i < l; i++) {
- result.push(fn.call(scope, arr[i], i, arr));
- }
- return result;
-};
-
-/**
- * Array#indexOf (<=IE8)
- *
- * @api private
- * @param {Array} arr
- * @param {Object} obj to find index of
- * @param {number} start
- * @return {number}
- */
-exports.indexOf = function(arr, obj, start) {
- for (var i = start || 0, l = arr.length; i < l; i++) {
- if (arr[i] === obj) {
- return i;
- }
- }
- return -1;
-};
-
-/**
- * Array#reduce (<=IE8)
- *
- * @api private
- * @param {Array} arr
- * @param {Function} fn
- * @param {Object} val Initial value.
- * @return {*}
- */
-exports.reduce = function(arr, fn, val) {
- var rval = val;
-
- for (var i = 0, l = arr.length; i < l; i++) {
- rval = fn(rval, arr[i], i, arr);
- }
-
- return rval;
-};
-
-/**
- * Array#filter (<=IE8)
- *
- * @api private
- * @param {Array} arr
- * @param {Function} fn
- * @return {Array}
- */
-exports.filter = function(arr, fn) {
- var ret = [];
-
- for (var i = 0, l = arr.length; i < l; i++) {
- var val = arr[i];
- if (fn(val, i, arr)) {
- ret.push(val);
- }
- }
-
- return ret;
-};
-
-/**
- * Object.keys (<=IE8)
- *
- * @api private
- * @param {Object} obj
- * @return {Array} keys
- */
-exports.keys = typeof Object.keys === 'function' ? Object.keys : function(obj) {
- var keys = [];
- var has = Object.prototype.hasOwnProperty; // for `window` on <=IE8
-
- for (var key in obj) {
- if (has.call(obj, key)) {
- keys.push(key);
- }
- }
-
- return keys;
-};
-
-/**
- * Watch the given `files` for changes
- * and invoke `fn(file)` on modification.
- *
- * @api private
- * @param {Array} files
- * @param {Function} fn
- */
-exports.watch = function(files, fn) {
- var options = { interval: 100 };
- files.forEach(function(file) {
- debug('file %s', file);
- watchFile(file, options, function(curr, prev) {
- if (prev.mtime < curr.mtime) {
- fn(file);
- }
- });
- });
-};
-
-/**
- * Array.isArray (<=IE8)
- *
- * @api private
- * @param {Object} obj
- * @return {Boolean}
- */
-var isArray = typeof Array.isArray === 'function' ? Array.isArray : function(obj) {
- return Object.prototype.toString.call(obj) === '[object Array]';
-};
-
-exports.isArray = isArray;
-
-/**
- * Buffer.prototype.toJSON polyfill.
- *
- * @type {Function}
- */
-if (typeof Buffer !== 'undefined' && Buffer.prototype) {
- Buffer.prototype.toJSON = Buffer.prototype.toJSON || function() {
- return Array.prototype.slice.call(this, 0);
- };
-}
-
-/**
- * Ignored files.
- *
- * @api private
- * @param {string} path
- * @return {boolean}
- */
-function ignored(path) {
- return !~ignore.indexOf(path);
-}
-
-/**
- * Lookup files in the given `dir`.
- *
- * @api private
- * @param {string} dir
- * @param {string[]} [ext=['.js']]
- * @param {Array} [ret=[]]
- * @return {Array}
- */
-exports.files = function(dir, ext, ret) {
- ret = ret || [];
- ext = ext || ['js'];
-
- var re = new RegExp('\\.(' + ext.join('|') + ')$');
-
- readdirSync(dir)
- .filter(ignored)
- .forEach(function(path) {
- path = join(dir, path);
- if (statSync(path).isDirectory()) {
- exports.files(path, ext, ret);
- } else if (path.match(re)) {
- ret.push(path);
- }
- });
-
- return ret;
-};
-
-/**
- * Compute a slug from the given `str`.
- *
- * @api private
- * @param {string} str
- * @return {string}
- */
-exports.slug = function(str) {
- return str
- .toLowerCase()
- .replace(/ +/g, '-')
- .replace(/[^-\w]/g, '');
-};
-
-/**
- * Strip the function definition from `str`, and re-indent for pre whitespace.
- *
- * @param {string} str
- * @return {string}
- */
-exports.clean = function(str) {
- str = str
- .replace(/\r\n?|[\n\u2028\u2029]/g, '\n').replace(/^\uFEFF/, '')
- .replace(/^function *\(.*\)\s*\{|\(.*\) *=> *\{?/, '')
- .replace(/\s+\}$/, '');
-
- var spaces = str.match(/^\n?( *)/)[1].length;
- var tabs = str.match(/^\n?(\t*)/)[1].length;
- var re = new RegExp('^\n?' + (tabs ? '\t' : ' ') + '{' + (tabs ? tabs : spaces) + '}', 'gm');
-
- str = str.replace(re, '');
-
- return exports.trim(str);
-};
-
-/**
- * Trim the given `str`.
- *
- * @api private
- * @param {string} str
- * @return {string}
- */
-exports.trim = function(str) {
- return str.replace(/^\s+|\s+$/g, '');
-};
-
-/**
- * Parse the given `qs`.
- *
- * @api private
- * @param {string} qs
- * @return {Object}
- */
-exports.parseQuery = function(qs) {
- return exports.reduce(qs.replace('?', '').split('&'), function(obj, pair) {
- var i = pair.indexOf('=');
- var key = pair.slice(0, i);
- var val = pair.slice(++i);
-
- obj[key] = decodeURIComponent(val);
- return obj;
- }, {});
-};
-
-/**
- * Highlight the given string of `js`.
- *
- * @api private
- * @param {string} js
- * @return {string}
- */
-function highlight(js) {
- return js
- .replace(/</g, '&lt;')
- .replace(/>/g, '&gt;')
- .replace(/\/\/(.*)/gm, '<span class="comment">//$1</span>')
- .replace(/('.*?')/gm, '<span class="string">$1</span>')
- .replace(/(\d+\.\d+)/gm, '<span class="number">$1</span>')
- .replace(/(\d+)/gm, '<span class="number">$1</span>')
- .replace(/\bnew[ \t]+(\w+)/gm, '<span class="keyword">new</span> <span class="init">$1</span>')
- .replace(/\b(function|new|throw|return|var|if|else)\b/gm, '<span class="keyword">$1</span>');
-}
-
-/**
- * Highlight the contents of tag `name`.
- *
- * @api private
- * @param {string} name
- */
-exports.highlightTags = function(name) {
- var code = document.getElementById('mocha').getElementsByTagName(name);
- for (var i = 0, len = code.length; i < len; ++i) {
- code[i].innerHTML = highlight(code[i].innerHTML);
- }
-};
-
-/**
- * If a value could have properties, and has none, this function is called,
- * which returns a string representation of the empty value.
- *
- * Functions w/ no properties return `'[Function]'`
- * Arrays w/ length === 0 return `'[]'`
- * Objects w/ no properties return `'{}'`
- * All else: return result of `value.toString()`
- *
- * @api private
- * @param {*} value The value to inspect.
- * @param {string} [type] The type of the value, if known.
- * @returns {string}
- */
-function emptyRepresentation(value, type) {
- type = type || exports.type(value);
-
- switch (type) {
- case 'function':
- return '[Function]';
- case 'object':
- return '{}';
- case 'array':
- return '[]';
- default:
- return value.toString();
- }
-}
-
-/**
- * Takes some variable and asks `Object.prototype.toString()` what it thinks it
- * is.
- *
- * @api private
- * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString
- * @param {*} value The value to test.
- * @returns {string}
- * @example
- * type({}) // 'object'
- * type([]) // 'array'
- * type(1) // 'number'
- * type(false) // 'boolean'
- * type(Infinity) // 'number'
- * type(null) // 'null'
- * type(new Date()) // 'date'
- * type(/foo/) // 'regexp'
- * type('type') // 'string'
- * type(global) // 'global'
- */
-exports.type = function type(value) {
- if (value === undefined) {
- return 'undefined';
- } else if (value === null) {
- return 'null';
- } else if (typeof Buffer !== 'undefined' && Buffer.isBuffer(value)) {
- return 'buffer';
- }
- return Object.prototype.toString.call(value)
- .replace(/^\[.+\s(.+?)\]$/, '$1')
- .toLowerCase();
-};
-
-/**
- * Stringify `value`. Different behavior depending on type of value:
- *
- * - If `value` is undefined or null, return `'[undefined]'` or `'[null]'`, respectively.
- * - If `value` is not an object, function or array, return result of `value.toString()` wrapped in double-quotes.
- * - If `value` is an *empty* object, function, or array, return result of function
- * {@link emptyRepresentation}.
- * - If `value` has properties, call {@link exports.canonicalize} on it, then return result of
- * JSON.stringify().
- *
- * @api private
- * @see exports.type
- * @param {*} value
- * @return {string}
- */
-exports.stringify = function(value) {
- var type = exports.type(value);
-
- if (!~exports.indexOf(['object', 'array', 'function'], type)) {
- if (type !== 'buffer') {
- return jsonStringify(value);
- }
- var json = value.toJSON();
- // Based on the toJSON result
- return jsonStringify(json.data && json.type ? json.data : json, 2)
- .replace(/,(\n|$)/g, '$1');
- }
-
- for (var prop in value) {
- if (Object.prototype.hasOwnProperty.call(value, prop)) {
- return jsonStringify(exports.canonicalize(value), 2).replace(/,(\n|$)/g, '$1');
- }
- }
-
- return emptyRepresentation(value, type);
-};
-
-/**
- * like JSON.stringify but more sense.
- *
- * @api private
- * @param {Object} object
- * @param {number=} spaces
- * @param {number=} depth
- * @returns {*}
- */
-function jsonStringify(object, spaces, depth) {
- if (typeof spaces === 'undefined') {
- // primitive types
- return _stringify(object);
- }
-
- depth = depth || 1;
- var space = spaces * depth;
- var str = isArray(object) ? '[' : '{';
- var end = isArray(object) ? ']' : '}';
- var length = typeof object.length === 'number' ? object.length : exports.keys(object).length;
- // `.repeat()` polyfill
- function repeat(s, n) {
- return new Array(n).join(s);
- }
-
- function _stringify(val) {
- switch (exports.type(val)) {
- case 'null':
- case 'undefined':
- val = '[' + val + ']';
- break;
- case 'array':
- case 'object':
- val = jsonStringify(val, spaces, depth + 1);
- break;
- case 'boolean':
- case 'regexp':
- case 'symbol':
- case 'number':
- val = val === 0 && (1 / val) === -Infinity // `-0`
- ? '-0'
- : val.toString();
- break;
- case 'date':
- var sDate;
- if (isNaN(val.getTime())) { // Invalid date
- sDate = val.toString();
- } else {
- sDate = val.toISOString ? val.toISOString() : toISOString(val);
- }
- val = '[Date: ' + sDate + ']';
- break;
- case 'buffer':
- var json = val.toJSON();
- // Based on the toJSON result
- json = json.data && json.type ? json.data : json;
- val = '[Buffer: ' + jsonStringify(json, 2, depth + 1) + ']';
- break;
- default:
- val = (val === '[Function]' || val === '[Circular]')
- ? val
- : JSON.stringify(val); // string
- }
- return val;
- }
-
- for (var i in object) {
- if (!Object.prototype.hasOwnProperty.call(object, i)) {
- continue; // not my business
- }
- --length;
- str += '\n ' + repeat(' ', space)
- + (isArray(object) ? '' : '"' + i + '": ') // key
- + _stringify(object[i]) // value
- + (length ? ',' : ''); // comma
- }
-
- return str
- // [], {}
- + (str.length !== 1 ? '\n' + repeat(' ', --space) + end : end);
-}
-
-/**
- * Test if a value is a buffer.
- *
- * @api private
- * @param {*} value The value to test.
- * @return {boolean} True if `value` is a buffer, otherwise false
- */
-exports.isBuffer = function(value) {
- return typeof Buffer !== 'undefined' && Buffer.isBuffer(value);
-};
-
-/**
- * Return a new Thing that has the keys in sorted order. Recursive.
- *
- * If the Thing...
- * - has already been seen, return string `'[Circular]'`
- * - is `undefined`, return string `'[undefined]'`
- * - is `null`, return value `null`
- * - is some other primitive, return the value
- * - is not a primitive or an `Array`, `Object`, or `Function`, return the value of the Thing's `toString()` method
- * - is a non-empty `Array`, `Object`, or `Function`, return the result of calling this function again.
- * - is an empty `Array`, `Object`, or `Function`, return the result of calling `emptyRepresentation()`
- *
- * @api private
- * @see {@link exports.stringify}
- * @param {*} value Thing to inspect. May or may not have properties.
- * @param {Array} [stack=[]] Stack of seen values
- * @return {(Object|Array|Function|string|undefined)}
- */
-exports.canonicalize = function(value, stack) {
- var canonicalizedObj;
- /* eslint-disable no-unused-vars */
- var prop;
- /* eslint-enable no-unused-vars */
- var type = exports.type(value);
- function withStack(value, fn) {
- stack.push(value);
- fn();
- stack.pop();
- }
-
- stack = stack || [];
-
- if (exports.indexOf(stack, value) !== -1) {
- return '[Circular]';
- }
-
- switch (type) {
- case 'undefined':
- case 'buffer':
- case 'null':
- canonicalizedObj = value;
- break;
- case 'array':
- withStack(value, function() {
- canonicalizedObj = exports.map(value, function(item) {
- return exports.canonicalize(item, stack);
- });
- });
- break;
- case 'function':
- /* eslint-disable guard-for-in */
- for (prop in value) {
- canonicalizedObj = {};
- break;
- }
- /* eslint-enable guard-for-in */
- if (!canonicalizedObj) {
- canonicalizedObj = emptyRepresentation(value, type);
- break;
- }
- /* falls through */
- case 'object':
- canonicalizedObj = canonicalizedObj || {};
- withStack(value, function() {
- exports.forEach(exports.keys(value).sort(), function(key) {
- canonicalizedObj[key] = exports.canonicalize(value[key], stack);
- });
- });
- break;
- case 'date':
- case 'number':
- case 'regexp':
- case 'boolean':
- case 'symbol':
- canonicalizedObj = value;
- break;
- default:
- canonicalizedObj = value + '';
- }
-
- return canonicalizedObj;
-};
-
-/**
- * Lookup file names at the given `path`.
- *
- * @api public
- * @param {string} path Base path to start searching from.
- * @param {string[]} extensions File extensions to look for.
- * @param {boolean} recursive Whether or not to recurse into subdirectories.
- * @return {string[]} An array of paths.
- */
-exports.lookupFiles = function lookupFiles(path, extensions, recursive) {
- var files = [];
- var re = new RegExp('\\.(' + extensions.join('|') + ')$');
-
- if (!exists(path)) {
- if (exists(path + '.js')) {
- path += '.js';
- } else {
- files = glob.sync(path);
- if (!files.length) {
- throw new Error("cannot resolve path (or pattern) '" + path + "'");
- }
- return files;
- }
- }
-
- try {
- var stat = statSync(path);
- if (stat.isFile()) {
- return path;
- }
- } catch (err) {
- // ignore error
- return;
- }
-
- readdirSync(path).forEach(function(file) {
- file = join(path, file);
- try {
- var stat = statSync(file);
- if (stat.isDirectory()) {
- if (recursive) {
- files = files.concat(lookupFiles(file, extensions, recursive));
- }
- return;
- }
- } catch (err) {
- // ignore error
- return;
- }
- if (!stat.isFile() || !re.test(file) || basename(file)[0] === '.') {
- return;
- }
- files.push(file);
- });
-
- return files;
-};
-
-/**
- * Generate an undefined error with a message warning the user.
- *
- * @return {Error}
- */
-
-exports.undefinedError = function() {
- return new Error('Caught undefined error, did you throw without specifying what?');
-};
-
-/**
- * Generate an undefined error if `err` is not defined.
- *
- * @param {Error} err
- * @return {Error}
- */
-
-exports.getError = function(err) {
- return err || exports.undefinedError();
-};
-
-/**
- * @summary
- * This Filter based on `mocha-clean` module.(see: `github.com/rstacruz/mocha-clean`)
- * @description
- * When invoking this function you get a filter function that get the Error.stack as an input,
- * and return a prettify output.
- * (i.e: strip Mocha and internal node functions from stack trace).
- * @returns {Function}
- */
-exports.stackTraceFilter = function() {
- // TODO: Replace with `process.browser`
- var slash = '/';
- var is = typeof document === 'undefined' ? { node: true } : { browser: true };
- var cwd = is.node
- ? process.cwd() + slash
- : (typeof location === 'undefined' ? window.location : location).href.replace(/\/[^\/]*$/, '/');
-
- function isMochaInternal(line) {
- return (~line.indexOf('node_modules' + slash + 'mocha' + slash))
- || (~line.indexOf('components' + slash + 'mochajs' + slash))
- || (~line.indexOf('components' + slash + 'mocha' + slash))
- || (~line.indexOf(slash + 'mocha.js'));
- }
-
- function isNodeInternal(line) {
- return (~line.indexOf('(timers.js:'))
- || (~line.indexOf('(events.js:'))
- || (~line.indexOf('(node.js:'))
- || (~line.indexOf('(module.js:'))
- || (~line.indexOf('GeneratorFunctionPrototype.next (native)'))
- || false;
- }
-
- return function(stack) {
- stack = stack.split('\n');
-
- stack = exports.reduce(stack, function(list, line) {
- if (isMochaInternal(line)) {
- return list;
- }
-
- if (is.node && isNodeInternal(line)) {
- return list;
- }
-
- // Clean up cwd(absolute)
- if (/\(?.+:\d+:\d+\)?$/.test(line)) {
- line = line.replace(cwd, '');
- }
-
- list.push(line);
- return list;
- }, []);
-
- return stack.join('\n');
- };
-};
diff --git a/node_modules/mocha/mocha.css b/node_modules/mocha/mocha.css
deleted file mode 100644
index 759a6c8c4..000000000
--- a/node_modules/mocha/mocha.css
+++ /dev/null
@@ -1,314 +0,0 @@
-@charset "utf-8";
-
-body {
- margin:0;
-}
-
-#mocha {
- font: 20px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
- margin: 60px 50px;
-}
-
-#mocha ul,
-#mocha li {
- margin: 0;
- padding: 0;
-}
-
-#mocha ul {
- list-style: none;
-}
-
-#mocha h1,
-#mocha h2 {
- margin: 0;
-}
-
-#mocha h1 {
- margin-top: 15px;
- font-size: 1em;
- font-weight: 200;
-}
-
-#mocha h1 a {
- text-decoration: none;
- color: inherit;
-}
-
-#mocha h1 a:hover {
- text-decoration: underline;
-}
-
-#mocha .suite .suite h1 {
- margin-top: 0;
- font-size: .8em;
-}
-
-#mocha .hidden {
- display: none;
-}
-
-#mocha h2 {
- font-size: 12px;
- font-weight: normal;
- cursor: pointer;
-}
-
-#mocha .suite {
- margin-left: 15px;
-}
-
-#mocha .test {
- margin-left: 15px;
- overflow: hidden;
-}
-
-#mocha .test.pending:hover h2::after {
- content: '(pending)';
- font-family: arial, sans-serif;
-}
-
-#mocha .test.pass.medium .duration {
- background: #c09853;
-}
-
-#mocha .test.pass.slow .duration {
- background: #b94a48;
-}
-
-#mocha .test.pass::before {
- content: '✓';
- font-size: 12px;
- display: block;
- float: left;
- margin-right: 5px;
- color: #00d6b2;
-}
-
-#mocha .test.pass .duration {
- font-size: 9px;
- margin-left: 5px;
- padding: 2px 5px;
- color: #fff;
- -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
- -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
- box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- -ms-border-radius: 5px;
- -o-border-radius: 5px;
- border-radius: 5px;
-}
-
-#mocha .test.pass.fast .duration {
- display: none;
-}
-
-#mocha .test.pending {
- color: #0b97c4;
-}
-
-#mocha .test.pending::before {
- content: 'â—¦';
- color: #0b97c4;
-}
-
-#mocha .test.fail {
- color: #c00;
-}
-
-#mocha .test.fail pre {
- color: black;
-}
-
-#mocha .test.fail::before {
- content: '✖';
- font-size: 12px;
- display: block;
- float: left;
- margin-right: 5px;
- color: #c00;
-}
-
-#mocha .test pre.error {
- color: #c00;
- max-height: 300px;
- overflow: auto;
-}
-
-#mocha .test .html-error {
- overflow: auto;
- color: black;
- line-height: 1.5;
- display: block;
- float: left;
- clear: left;
- font: 12px/1.5 monaco, monospace;
- margin: 5px;
- padding: 15px;
- border: 1px solid #eee;
- max-width: 85%; /*(1)*/
- max-width: calc(100% - 42px); /*(2)*/
- max-height: 300px;
- word-wrap: break-word;
- border-bottom-color: #ddd;
- -webkit-border-radius: 3px;
- -webkit-box-shadow: 0 1px 3px #eee;
- -moz-border-radius: 3px;
- -moz-box-shadow: 0 1px 3px #eee;
- border-radius: 3px;
-}
-
-#mocha .test .html-error pre.error {
- border: none;
- -webkit-border-radius: none;
- -webkit-box-shadow: none;
- -moz-border-radius: none;
- -moz-box-shadow: none;
- padding: 0;
- margin: 0;
- margin-top: 18px;
- max-height: none;
-}
-
-/**
- * (1): approximate for browsers not supporting calc
- * (2): 42 = 2*15 + 2*10 + 2*1 (padding + margin + border)
- * ^^ seriously
- */
-#mocha .test pre {
- display: block;
- float: left;
- clear: left;
- font: 12px/1.5 monaco, monospace;
- margin: 5px;
- padding: 15px;
- border: 1px solid #eee;
- max-width: 85%; /*(1)*/
- max-width: calc(100% - 42px); /*(2)*/
- word-wrap: break-word;
- border-bottom-color: #ddd;
- -webkit-border-radius: 3px;
- -webkit-box-shadow: 0 1px 3px #eee;
- -moz-border-radius: 3px;
- -moz-box-shadow: 0 1px 3px #eee;
- border-radius: 3px;
-}
-
-#mocha .test h2 {
- position: relative;
-}
-
-#mocha .test a.replay {
- position: absolute;
- top: 3px;
- right: 0;
- text-decoration: none;
- vertical-align: middle;
- display: block;
- width: 15px;
- height: 15px;
- line-height: 15px;
- text-align: center;
- background: #eee;
- font-size: 15px;
- -moz-border-radius: 15px;
- border-radius: 15px;
- -webkit-transition: opacity 200ms;
- -moz-transition: opacity 200ms;
- transition: opacity 200ms;
- opacity: 0.3;
- color: #888;
-}
-
-#mocha .test:hover a.replay {
- opacity: 1;
-}
-
-#mocha-report.pass .test.fail {
- display: none;
-}
-
-#mocha-report.fail .test.pass {
- display: none;
-}
-
-#mocha-report.pending .test.pass,
-#mocha-report.pending .test.fail {
- display: none;
-}
-#mocha-report.pending .test.pass.pending {
- display: block;
-}
-
-#mocha-error {
- color: #c00;
- font-size: 1.5em;
- font-weight: 100;
- letter-spacing: 1px;
-}
-
-#mocha-stats {
- position: fixed;
- top: 15px;
- right: 10px;
- font-size: 12px;
- margin: 0;
- color: #888;
- z-index: 1;
-}
-
-#mocha-stats .progress {
- float: right;
- padding-top: 0;
-
- /**
- * Set safe initial values, so mochas .progress does not inherit these
- * properties from Bootstrap .progress (which causes .progress height to
- * equal line height set in Bootstrap).
- */
- height: auto;
- box-shadow: none;
- background-color: initial;
-}
-
-#mocha-stats em {
- color: black;
-}
-
-#mocha-stats a {
- text-decoration: none;
- color: inherit;
-}
-
-#mocha-stats a:hover {
- border-bottom: 1px solid #eee;
-}
-
-#mocha-stats li {
- display: inline-block;
- margin: 0 5px;
- list-style: none;
- padding-top: 11px;
-}
-
-#mocha-stats canvas {
- width: 40px;
- height: 40px;
-}
-
-#mocha code .comment { color: #ddd; }
-#mocha code .init { color: #2f6fad; }
-#mocha code .string { color: #5890ad; }
-#mocha code .keyword { color: #8a6343; }
-#mocha code .number { color: #2f6fad; }
-
-@media screen and (max-device-width: 480px) {
- #mocha {
- margin: 60px 0px;
- }
-
- #mocha #stats {
- position: absolute;
- }
-}
diff --git a/node_modules/mocha/mocha.js b/node_modules/mocha/mocha.js
deleted file mode 100644
index af90adac6..000000000
--- a/node_modules/mocha/mocha.js
+++ /dev/null
@@ -1,13149 +0,0 @@
-(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
-(function (process,global){
-/**
- * Shim process.stdout.
- */
-
-process.stdout = require('browser-stdout')();
-
-var Mocha = require('./lib/mocha');
-
-/**
- * Create a Mocha instance.
- *
- * @return {undefined}
- */
-
-var mocha = new Mocha({ reporter: 'html' });
-
-/**
- * Save timer references to avoid Sinon interfering (see GH-237).
- */
-
-var Date = global.Date;
-var setTimeout = global.setTimeout;
-var setInterval = global.setInterval;
-var clearTimeout = global.clearTimeout;
-var clearInterval = global.clearInterval;
-
-var uncaughtExceptionHandlers = [];
-
-var originalOnerrorHandler = global.onerror;
-
-/**
- * Remove uncaughtException listener.
- * Revert to original onerror handler if previously defined.
- */
-
-process.removeListener = function(e, fn){
- if ('uncaughtException' == e) {
- if (originalOnerrorHandler) {
- global.onerror = originalOnerrorHandler;
- } else {
- global.onerror = function() {};
- }
- var i = Mocha.utils.indexOf(uncaughtExceptionHandlers, fn);
- if (i != -1) { uncaughtExceptionHandlers.splice(i, 1); }
- }
-};
-
-/**
- * Implements uncaughtException listener.
- */
-
-process.on = function(e, fn){
- if ('uncaughtException' == e) {
- global.onerror = function(err, url, line){
- fn(new Error(err + ' (' + url + ':' + line + ')'));
- return !mocha.allowUncaught;
- };
- uncaughtExceptionHandlers.push(fn);
- }
-};
-
-// The BDD UI is registered by default, but no UI will be functional in the
-// browser without an explicit call to the overridden `mocha.ui` (see below).
-// Ensure that this default UI does not expose its methods to the global scope.
-mocha.suite.removeAllListeners('pre-require');
-
-var immediateQueue = []
- , immediateTimeout;
-
-function timeslice() {
- var immediateStart = new Date().getTime();
- while (immediateQueue.length && (new Date().getTime() - immediateStart) < 100) {
- immediateQueue.shift()();
- }
- if (immediateQueue.length) {
- immediateTimeout = setTimeout(timeslice, 0);
- } else {
- immediateTimeout = null;
- }
-}
-
-/**
- * High-performance override of Runner.immediately.
- */
-
-Mocha.Runner.immediately = function(callback) {
- immediateQueue.push(callback);
- if (!immediateTimeout) {
- immediateTimeout = setTimeout(timeslice, 0);
- }
-};
-
-/**
- * Function to allow assertion libraries to throw errors directly into mocha.
- * This is useful when running tests in a browser because window.onerror will
- * only receive the 'message' attribute of the Error.
- */
-mocha.throwError = function(err) {
- Mocha.utils.forEach(uncaughtExceptionHandlers, function (fn) {
- fn(err);
- });
- throw err;
-};
-
-/**
- * Override ui to ensure that the ui functions are initialized.
- * Normally this would happen in Mocha.prototype.loadFiles.
- */
-
-mocha.ui = function(ui){
- Mocha.prototype.ui.call(this, ui);
- this.suite.emit('pre-require', global, null, this);
- return this;
-};
-
-/**
- * Setup mocha with the given setting options.
- */
-
-mocha.setup = function(opts){
- if ('string' == typeof opts) opts = { ui: opts };
- for (var opt in opts) this[opt](opts[opt]);
- return this;
-};
-
-/**
- * Run mocha, returning the Runner.
- */
-
-mocha.run = function(fn){
- var options = mocha.options;
- mocha.globals('location');
-
- var query = Mocha.utils.parseQuery(global.location.search || '');
- if (query.grep) mocha.grep(new RegExp(query.grep));
- if (query.fgrep) mocha.grep(query.fgrep);
- if (query.invert) mocha.invert();
-
- return Mocha.prototype.run.call(mocha, function(err){
- // The DOM Document is not available in Web Workers.
- var document = global.document;
- if (document && document.getElementById('mocha') && options.noHighlighting !== true) {
- Mocha.utils.highlightTags('code');
- }
- if (fn) fn(err);
- });
-};
-
-/**
- * Expose the process shim.
- * https://github.com/mochajs/mocha/pull/916
- */
-
-Mocha.process = process;
-
-/**
- * Expose mocha.
- */
-
-global.Mocha = Mocha;
-global.mocha = mocha;
-
-// this allows test/acceptance/required-tokens.js to pass; thus,
-// you can now do `const describe = require('mocha').describe` in a
-// browser context (assuming browserification). should fix #880
-module.exports = global;
-
-}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"./lib/mocha":14,"_process":58,"browser-stdout":42}],2:[function(require,module,exports){
-/* eslint-disable no-unused-vars */
-module.exports = function(type) {
- return function() {};
-};
-
-},{}],3:[function(require,module,exports){
-/**
- * Module exports.
- */
-
-exports.EventEmitter = EventEmitter;
-
-/**
- * Object#toString reference.
- */
-var objToString = Object.prototype.toString;
-
-/**
- * Check if a value is an array.
- *
- * @api private
- * @param {*} val The value to test.
- * @return {boolean} true if the value is an array, otherwise false.
- */
-function isArray(val) {
- return objToString.call(val) === '[object Array]';
-}
-
-/**
- * Event emitter constructor.
- *
- * @api public
- */
-function EventEmitter() {}
-
-/**
- * Add a listener.
- *
- * @api public
- * @param {string} name Event name.
- * @param {Function} fn Event handler.
- * @return {EventEmitter} Emitter instance.
- */
-EventEmitter.prototype.on = function(name, fn) {
- if (!this.$events) {
- this.$events = {};
- }
-
- if (!this.$events[name]) {
- this.$events[name] = fn;
- } else if (isArray(this.$events[name])) {
- this.$events[name].push(fn);
- } else {
- this.$events[name] = [this.$events[name], fn];
- }
-
- return this;
-};
-
-EventEmitter.prototype.addListener = EventEmitter.prototype.on;
-
-/**
- * Adds a volatile listener.
- *
- * @api public
- * @param {string} name Event name.
- * @param {Function} fn Event handler.
- * @return {EventEmitter} Emitter instance.
- */
-EventEmitter.prototype.once = function(name, fn) {
- var self = this;
-
- function on() {
- self.removeListener(name, on);
- fn.apply(this, arguments);
- }
-
- on.listener = fn;
- this.on(name, on);
-
- return this;
-};
-
-/**
- * Remove a listener.
- *
- * @api public
- * @param {string} name Event name.
- * @param {Function} fn Event handler.
- * @return {EventEmitter} Emitter instance.
- */
-EventEmitter.prototype.removeListener = function(name, fn) {
- if (this.$events && this.$events[name]) {
- var list = this.$events[name];
-
- if (isArray(list)) {
- var pos = -1;
-
- for (var i = 0, l = list.length; i < l; i++) {
- if (list[i] === fn || (list[i].listener && list[i].listener === fn)) {
- pos = i;
- break;
- }
- }
-
- if (pos < 0) {
- return this;
- }
-
- list.splice(pos, 1);
-
- if (!list.length) {
- delete this.$events[name];
- }
- } else if (list === fn || (list.listener && list.listener === fn)) {
- delete this.$events[name];
- }
- }
-
- return this;
-};
-
-/**
- * Remove all listeners for an event.
- *
- * @api public
- * @param {string} name Event name.
- * @return {EventEmitter} Emitter instance.
- */
-EventEmitter.prototype.removeAllListeners = function(name) {
- if (name === undefined) {
- this.$events = {};
- return this;
- }
-
- if (this.$events && this.$events[name]) {
- this.$events[name] = null;
- }
-
- return this;
-};
-
-/**
- * Get all listeners for a given event.
- *
- * @api public
- * @param {string} name Event name.
- * @return {EventEmitter} Emitter instance.
- */
-EventEmitter.prototype.listeners = function(name) {
- if (!this.$events) {
- this.$events = {};
- }
-
- if (!this.$events[name]) {
- this.$events[name] = [];
- }
-
- if (!isArray(this.$events[name])) {
- this.$events[name] = [this.$events[name]];
- }
-
- return this.$events[name];
-};
-
-/**
- * Emit an event.
- *
- * @api public
- * @param {string} name Event name.
- * @return {boolean} true if at least one handler was invoked, else false.
- */
-EventEmitter.prototype.emit = function(name) {
- if (!this.$events) {
- return false;
- }
-
- var handler = this.$events[name];
-
- if (!handler) {
- return false;
- }
-
- var args = Array.prototype.slice.call(arguments, 1);
-
- if (typeof handler === 'function') {
- handler.apply(this, args);
- } else if (isArray(handler)) {
- var listeners = handler.slice();
-
- for (var i = 0, l = listeners.length; i < l; i++) {
- listeners[i].apply(this, args);
- }
- } else {
- return false;
- }
-
- return true;
-};
-
-},{}],4:[function(require,module,exports){
-/**
- * Expose `Progress`.
- */
-
-module.exports = Progress;
-
-/**
- * Initialize a new `Progress` indicator.
- */
-function Progress() {
- this.percent = 0;
- this.size(0);
- this.fontSize(11);
- this.font('helvetica, arial, sans-serif');
-}
-
-/**
- * Set progress size to `size`.
- *
- * @api public
- * @param {number} size
- * @return {Progress} Progress instance.
- */
-Progress.prototype.size = function(size) {
- this._size = size;
- return this;
-};
-
-/**
- * Set text to `text`.
- *
- * @api public
- * @param {string} text
- * @return {Progress} Progress instance.
- */
-Progress.prototype.text = function(text) {
- this._text = text;
- return this;
-};
-
-/**
- * Set font size to `size`.
- *
- * @api public
- * @param {number} size
- * @return {Progress} Progress instance.
- */
-Progress.prototype.fontSize = function(size) {
- this._fontSize = size;
- return this;
-};
-
-/**
- * Set font to `family`.
- *
- * @param {string} family
- * @return {Progress} Progress instance.
- */
-Progress.prototype.font = function(family) {
- this._font = family;
- return this;
-};
-
-/**
- * Update percentage to `n`.
- *
- * @param {number} n
- * @return {Progress} Progress instance.
- */
-Progress.prototype.update = function(n) {
- this.percent = n;
- return this;
-};
-
-/**
- * Draw on `ctx`.
- *
- * @param {CanvasRenderingContext2d} ctx
- * @return {Progress} Progress instance.
- */
-Progress.prototype.draw = function(ctx) {
- try {
- var percent = Math.min(this.percent, 100);
- var size = this._size;
- var half = size / 2;
- var x = half;
- var y = half;
- var rad = half - 1;
- var fontSize = this._fontSize;
-
- ctx.font = fontSize + 'px ' + this._font;
-
- var angle = Math.PI * 2 * (percent / 100);
- ctx.clearRect(0, 0, size, size);
-
- // outer circle
- ctx.strokeStyle = '#9f9f9f';
- ctx.beginPath();
- ctx.arc(x, y, rad, 0, angle, false);
- ctx.stroke();
-
- // inner circle
- ctx.strokeStyle = '#eee';
- ctx.beginPath();
- ctx.arc(x, y, rad - 1, 0, angle, true);
- ctx.stroke();
-
- // text
- var text = this._text || (percent | 0) + '%';
- var w = ctx.measureText(text).width;
-
- ctx.fillText(text, x - w / 2 + 1, y + fontSize / 2 - 1);
- } catch (err) {
- // don't fail if we can't render progress
- }
- return this;
-};
-
-},{}],5:[function(require,module,exports){
-(function (global){
-exports.isatty = function isatty() {
- return true;
-};
-
-exports.getWindowSize = function getWindowSize() {
- if ('innerHeight' in global) {
- return [global.innerHeight, global.innerWidth];
- }
- // In a Web Worker, the DOM Window is not available.
- return [640, 480];
-};
-
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],6:[function(require,module,exports){
-/**
- * Expose `Context`.
- */
-
-module.exports = Context;
-
-/**
- * Initialize a new `Context`.
- *
- * @api private
- */
-function Context() {}
-
-/**
- * Set or get the context `Runnable` to `runnable`.
- *
- * @api private
- * @param {Runnable} runnable
- * @return {Context}
- */
-Context.prototype.runnable = function(runnable) {
- if (!arguments.length) {
- return this._runnable;
- }
- this.test = this._runnable = runnable;
- return this;
-};
-
-/**
- * Set test timeout `ms`.
- *
- * @api private
- * @param {number} ms
- * @return {Context} self
- */
-Context.prototype.timeout = function(ms) {
- if (!arguments.length) {
- return this.runnable().timeout();
- }
- this.runnable().timeout(ms);
- return this;
-};
-
-/**
- * Set test timeout `enabled`.
- *
- * @api private
- * @param {boolean} enabled
- * @return {Context} self
- */
-Context.prototype.enableTimeouts = function(enabled) {
- this.runnable().enableTimeouts(enabled);
- return this;
-};
-
-/**
- * Set test slowness threshold `ms`.
- *
- * @api private
- * @param {number} ms
- * @return {Context} self
- */
-Context.prototype.slow = function(ms) {
- this.runnable().slow(ms);
- return this;
-};
-
-/**
- * Mark a test as skipped.
- *
- * @api private
- * @return {Context} self
- */
-Context.prototype.skip = function() {
- this.runnable().skip();
- return this;
-};
-
-/**
- * Allow a number of retries on failed tests
- *
- * @api private
- * @param {number} n
- * @return {Context} self
- */
-Context.prototype.retries = function(n) {
- if (!arguments.length) {
- return this.runnable().retries();
- }
- this.runnable().retries(n);
- return this;
-};
-
-/**
- * Inspect the context void of `._runnable`.
- *
- * @api private
- * @return {string}
- */
-Context.prototype.inspect = function() {
- return JSON.stringify(this, function(key, val) {
- return key === 'runnable' || key === 'test' ? undefined : val;
- }, 2);
-};
-
-},{}],7:[function(require,module,exports){
-/**
- * Module dependencies.
- */
-
-var Runnable = require('./runnable');
-var inherits = require('./utils').inherits;
-
-/**
- * Expose `Hook`.
- */
-
-module.exports = Hook;
-
-/**
- * Initialize a new `Hook` with the given `title` and callback `fn`.
- *
- * @param {String} title
- * @param {Function} fn
- * @api private
- */
-function Hook(title, fn) {
- Runnable.call(this, title, fn);
- this.type = 'hook';
-}
-
-/**
- * Inherit from `Runnable.prototype`.
- */
-inherits(Hook, Runnable);
-
-/**
- * Get or set the test `err`.
- *
- * @param {Error} err
- * @return {Error}
- * @api public
- */
-Hook.prototype.error = function(err) {
- if (!arguments.length) {
- err = this._error;
- this._error = null;
- return err;
- }
-
- this._error = err;
-};
-
-},{"./runnable":35,"./utils":39}],8:[function(require,module,exports){
-/**
- * Module dependencies.
- */
-
-var Suite = require('../suite');
-var Test = require('../test');
-var escapeRe = require('escape-string-regexp');
-
-/**
- * BDD-style interface:
- *
- * describe('Array', function() {
- * describe('#indexOf()', function() {
- * it('should return -1 when not present', function() {
- * // ...
- * });
- *
- * it('should return the index when present', function() {
- * // ...
- * });
- * });
- * });
- *
- * @param {Suite} suite Root suite.
- */
-module.exports = function(suite) {
- var suites = [suite];
-
- suite.on('pre-require', function(context, file, mocha) {
- var common = require('./common')(suites, context);
-
- context.before = common.before;
- context.after = common.after;
- context.beforeEach = common.beforeEach;
- context.afterEach = common.afterEach;
- context.run = mocha.options.delay && common.runWithSuite(suite);
- /**
- * Describe a "suite" with the given `title`
- * and callback `fn` containing nested suites
- * and/or tests.
- */
-
- context.describe = context.context = function(title, fn) {
- var suite = Suite.create(suites[0], title);
- suite.file = file;
- suites.unshift(suite);
- fn.call(suite);
- suites.shift();
- return suite;
- };
-
- /**
- * Pending describe.
- */
-
- context.xdescribe = context.xcontext = context.describe.skip = function(title, fn) {
- var suite = Suite.create(suites[0], title);
- suite.pending = true;
- suites.unshift(suite);
- fn.call(suite);
- suites.shift();
- };
-
- /**
- * Exclusive suite.
- */
-
- context.describe.only = function(title, fn) {
- var suite = context.describe(title, fn);
- mocha.grep(suite.fullTitle());
- return suite;
- };
-
- /**
- * Describe a specification or test-case
- * with the given `title` and callback `fn`
- * acting as a thunk.
- */
-
- var it = context.it = context.specify = function(title, fn) {
- var suite = suites[0];
- if (suite.isPending()) {
- fn = null;
- }
- var test = new Test(title, fn);
- test.file = file;
- suite.addTest(test);
- return test;
- };
-
- /**
- * Exclusive test-case.
- */
-
- context.it.only = function(title, fn) {
- var test = it(title, fn);
- var reString = '^' + escapeRe(test.fullTitle()) + '$';
- mocha.grep(new RegExp(reString));
- return test;
- };
-
- /**
- * Pending test case.
- */
-
- context.xit = context.xspecify = context.it.skip = function(title) {
- context.it(title);
- };
-
- /**
- * Number of attempts to retry.
- */
- context.it.retries = function(n) {
- context.retries(n);
- };
- });
-};
-
-},{"../suite":37,"../test":38,"./common":9,"escape-string-regexp":49}],9:[function(require,module,exports){
-'use strict';
-
-/**
- * Functions common to more than one interface.
- *
- * @param {Suite[]} suites
- * @param {Context} context
- * @return {Object} An object containing common functions.
- */
-module.exports = function(suites, context) {
- return {
- /**
- * This is only present if flag --delay is passed into Mocha. It triggers
- * root suite execution.
- *
- * @param {Suite} suite The root wuite.
- * @return {Function} A function which runs the root suite
- */
- runWithSuite: function runWithSuite(suite) {
- return function run() {
- suite.run();
- };
- },
-
- /**
- * Execute before running tests.
- *
- * @param {string} name
- * @param {Function} fn
- */
- before: function(name, fn) {
- suites[0].beforeAll(name, fn);
- },
-
- /**
- * Execute after running tests.
- *
- * @param {string} name
- * @param {Function} fn
- */
- after: function(name, fn) {
- suites[0].afterAll(name, fn);
- },
-
- /**
- * Execute before each test case.
- *
- * @param {string} name
- * @param {Function} fn
- */
- beforeEach: function(name, fn) {
- suites[0].beforeEach(name, fn);
- },
-
- /**
- * Execute after each test case.
- *
- * @param {string} name
- * @param {Function} fn
- */
- afterEach: function(name, fn) {
- suites[0].afterEach(name, fn);
- },
-
- test: {
- /**
- * Pending test case.
- *
- * @param {string} title
- */
- skip: function(title) {
- context.test(title);
- },
-
- /**
- * Number of retry attempts
- *
- * @param {number} n
- */
- retries: function(n) {
- context.retries(n);
- }
- }
- };
-};
-
-},{}],10:[function(require,module,exports){
-/**
- * Module dependencies.
- */
-
-var Suite = require('../suite');
-var Test = require('../test');
-
-/**
- * Exports-style (as Node.js module) interface:
- *
- * exports.Array = {
- * '#indexOf()': {
- * 'should return -1 when the value is not present': function() {
- *
- * },
- *
- * 'should return the correct index when the value is present': function() {
- *
- * }
- * }
- * };
- *
- * @param {Suite} suite Root suite.
- */
-module.exports = function(suite) {
- var suites = [suite];
-
- suite.on('require', visit);
-
- function visit(obj, file) {
- var suite;
- for (var key in obj) {
- if (typeof obj[key] === 'function') {
- var fn = obj[key];
- switch (key) {
- case 'before':
- suites[0].beforeAll(fn);
- break;
- case 'after':
- suites[0].afterAll(fn);
- break;
- case 'beforeEach':
- suites[0].beforeEach(fn);
- break;
- case 'afterEach':
- suites[0].afterEach(fn);
- break;
- default:
- var test = new Test(key, fn);
- test.file = file;
- suites[0].addTest(test);
- }
- } else {
- suite = Suite.create(suites[0], key);
- suites.unshift(suite);
- visit(obj[key], file);
- suites.shift();
- }
- }
- }
-};
-
-},{"../suite":37,"../test":38}],11:[function(require,module,exports){
-exports.bdd = require('./bdd');
-exports.tdd = require('./tdd');
-exports.qunit = require('./qunit');
-exports.exports = require('./exports');
-
-},{"./bdd":8,"./exports":10,"./qunit":12,"./tdd":13}],12:[function(require,module,exports){
-/**
- * Module dependencies.
- */
-
-var Suite = require('../suite');
-var Test = require('../test');
-var escapeRe = require('escape-string-regexp');
-
-/**
- * QUnit-style interface:
- *
- * suite('Array');
- *
- * test('#length', function() {
- * var arr = [1,2,3];
- * ok(arr.length == 3);
- * });
- *
- * test('#indexOf()', function() {
- * var arr = [1,2,3];
- * ok(arr.indexOf(1) == 0);
- * ok(arr.indexOf(2) == 1);
- * ok(arr.indexOf(3) == 2);
- * });
- *
- * suite('String');
- *
- * test('#length', function() {
- * ok('foo'.length == 3);
- * });
- *
- * @param {Suite} suite Root suite.
- */
-module.exports = function(suite) {
- var suites = [suite];
-
- suite.on('pre-require', function(context, file, mocha) {
- var common = require('./common')(suites, context);
-
- context.before = common.before;
- context.after = common.after;
- context.beforeEach = common.beforeEach;
- context.afterEach = common.afterEach;
- context.run = mocha.options.delay && common.runWithSuite(suite);
- /**
- * Describe a "suite" with the given `title`.
- */
-
- context.suite = function(title) {
- if (suites.length > 1) {
- suites.shift();
- }
- var suite = Suite.create(suites[0], title);
- suite.file = file;
- suites.unshift(suite);
- return suite;
- };
-
- /**
- * Exclusive test-case.
- */
-
- context.suite.only = function(title, fn) {
- var suite = context.suite(title, fn);
- mocha.grep(suite.fullTitle());
- };
-
- /**
- * Describe a specification or test-case
- * with the given `title` and callback `fn`
- * acting as a thunk.
- */
-
- context.test = function(title, fn) {
- var test = new Test(title, fn);
- test.file = file;
- suites[0].addTest(test);
- return test;
- };
-
- /**
- * Exclusive test-case.
- */
-
- context.test.only = function(title, fn) {
- var test = context.test(title, fn);
- var reString = '^' + escapeRe(test.fullTitle()) + '$';
- mocha.grep(new RegExp(reString));
- };
-
- context.test.skip = common.test.skip;
- context.test.retries = common.test.retries;
- });
-};
-
-},{"../suite":37,"../test":38,"./common":9,"escape-string-regexp":49}],13:[function(require,module,exports){
-/**
- * Module dependencies.
- */
-
-var Suite = require('../suite');
-var Test = require('../test');
-var escapeRe = require('escape-string-regexp');
-
-/**
- * TDD-style interface:
- *
- * suite('Array', function() {
- * suite('#indexOf()', function() {
- * suiteSetup(function() {
- *
- * });
- *
- * test('should return -1 when not present', function() {
- *
- * });
- *
- * test('should return the index when present', function() {
- *
- * });
- *
- * suiteTeardown(function() {
- *
- * });
- * });
- * });
- *
- * @param {Suite} suite Root suite.
- */
-module.exports = function(suite) {
- var suites = [suite];
-
- suite.on('pre-require', function(context, file, mocha) {
- var common = require('./common')(suites, context);
-
- context.setup = common.beforeEach;
- context.teardown = common.afterEach;
- context.suiteSetup = common.before;
- context.suiteTeardown = common.after;
- context.run = mocha.options.delay && common.runWithSuite(suite);
-
- /**
- * Describe a "suite" with the given `title` and callback `fn` containing
- * nested suites and/or tests.
- */
- context.suite = function(title, fn) {
- var suite = Suite.create(suites[0], title);
- suite.file = file;
- suites.unshift(suite);
- fn.call(suite);
- suites.shift();
- return suite;
- };
-
- /**
- * Pending suite.
- */
- context.suite.skip = function(title, fn) {
- var suite = Suite.create(suites[0], title);
- suite.pending = true;
- suites.unshift(suite);
- fn.call(suite);
- suites.shift();
- };
-
- /**
- * Exclusive test-case.
- */
- context.suite.only = function(title, fn) {
- var suite = context.suite(title, fn);
- mocha.grep(suite.fullTitle());
- };
-
- /**
- * Describe a specification or test-case with the given `title` and
- * callback `fn` acting as a thunk.
- */
- context.test = function(title, fn) {
- var suite = suites[0];
- if (suite.isPending()) {
- fn = null;
- }
- var test = new Test(title, fn);
- test.file = file;
- suite.addTest(test);
- return test;
- };
-
- /**
- * Exclusive test-case.
- */
-
- context.test.only = function(title, fn) {
- var test = context.test(title, fn);
- var reString = '^' + escapeRe(test.fullTitle()) + '$';
- mocha.grep(new RegExp(reString));
- };
-
- context.test.skip = common.test.skip;
- context.test.retries = common.test.retries;
- });
-};
-
-},{"../suite":37,"../test":38,"./common":9,"escape-string-regexp":49}],14:[function(require,module,exports){
-(function (process,global,__dirname){
-/*!
- * mocha
- * Copyright(c) 2011 TJ Holowaychuk <tj@vision-media.ca>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var escapeRe = require('escape-string-regexp');
-var path = require('path');
-var reporters = require('./reporters');
-var utils = require('./utils');
-
-/**
- * Expose `Mocha`.
- */
-
-exports = module.exports = Mocha;
-
-/**
- * To require local UIs and reporters when running in node.
- */
-
-if (!process.browser) {
- var cwd = process.cwd();
- module.paths.push(cwd, path.join(cwd, 'node_modules'));
-}
-
-/**
- * Expose internals.
- */
-
-exports.utils = utils;
-exports.interfaces = require('./interfaces');
-exports.reporters = reporters;
-exports.Runnable = require('./runnable');
-exports.Context = require('./context');
-exports.Runner = require('./runner');
-exports.Suite = require('./suite');
-exports.Hook = require('./hook');
-exports.Test = require('./test');
-
-/**
- * Return image `name` path.
- *
- * @api private
- * @param {string} name
- * @return {string}
- */
-function image(name) {
- return path.join(__dirname, '../images', name + '.png');
-}
-
-/**
- * Set up mocha with `options`.
- *
- * Options:
- *
- * - `ui` name "bdd", "tdd", "exports" etc
- * - `reporter` reporter instance, defaults to `mocha.reporters.spec`
- * - `globals` array of accepted globals
- * - `timeout` timeout in milliseconds
- * - `retries` number of times to retry failed tests
- * - `bail` bail on the first test failure
- * - `slow` milliseconds to wait before considering a test slow
- * - `ignoreLeaks` ignore global leaks
- * - `fullTrace` display the full stack-trace on failing
- * - `grep` string or regexp to filter tests with
- *
- * @param {Object} options
- * @api public
- */
-function Mocha(options) {
- options = options || {};
- this.files = [];
- this.options = options;
- if (options.grep) {
- this.grep(new RegExp(options.grep));
- }
- if (options.fgrep) {
- this.grep(options.fgrep);
- }
- this.suite = new exports.Suite('', new exports.Context());
- this.ui(options.ui);
- this.bail(options.bail);
- this.reporter(options.reporter, options.reporterOptions);
- if (typeof options.timeout !== 'undefined' && options.timeout !== null) {
- this.timeout(options.timeout);
- }
- if (typeof options.retries !== 'undefined' && options.retries !== null) {
- this.retries(options.retries);
- }
- this.useColors(options.useColors);
- if (options.enableTimeouts !== null) {
- this.enableTimeouts(options.enableTimeouts);
- }
- if (options.slow) {
- this.slow(options.slow);
- }
-}
-
-/**
- * Enable or disable bailing on the first failure.
- *
- * @api public
- * @param {boolean} [bail]
- */
-Mocha.prototype.bail = function(bail) {
- if (!arguments.length) {
- bail = true;
- }
- this.suite.bail(bail);
- return this;
-};
-
-/**
- * Add test `file`.
- *
- * @api public
- * @param {string} file
- */
-Mocha.prototype.addFile = function(file) {
- this.files.push(file);
- return this;
-};
-
-/**
- * Set reporter to `reporter`, defaults to "spec".
- *
- * @param {String|Function} reporter name or constructor
- * @param {Object} reporterOptions optional options
- * @api public
- * @param {string|Function} reporter name or constructor
- * @param {Object} reporterOptions optional options
- */
-Mocha.prototype.reporter = function(reporter, reporterOptions) {
- if (typeof reporter === 'function') {
- this._reporter = reporter;
- } else {
- reporter = reporter || 'spec';
- var _reporter;
- // Try to load a built-in reporter.
- if (reporters[reporter]) {
- _reporter = reporters[reporter];
- }
- // Try to load reporters from process.cwd() and node_modules
- if (!_reporter) {
- try {
- _reporter = require(reporter);
- } catch (err) {
- err.message.indexOf('Cannot find module') !== -1
- ? console.warn('"' + reporter + '" reporter not found')
- : console.warn('"' + reporter + '" reporter blew up with error:\n' + err.stack);
- }
- }
- if (!_reporter && reporter === 'teamcity') {
- console.warn('The Teamcity reporter was moved to a package named '
- + 'mocha-teamcity-reporter '
- + '(https://npmjs.org/package/mocha-teamcity-reporter).');
- }
- if (!_reporter) {
- throw new Error('invalid reporter "' + reporter + '"');
- }
- this._reporter = _reporter;
- }
- this.options.reporterOptions = reporterOptions;
- return this;
-};
-
-/**
- * Set test UI `name`, defaults to "bdd".
- *
- * @api public
- * @param {string} bdd
- */
-Mocha.prototype.ui = function(name) {
- name = name || 'bdd';
- this._ui = exports.interfaces[name];
- if (!this._ui) {
- try {
- this._ui = require(name);
- } catch (err) {
- throw new Error('invalid interface "' + name + '"');
- }
- }
- this._ui = this._ui(this.suite);
-
- this.suite.on('pre-require', function(context) {
- exports.afterEach = context.afterEach || context.teardown;
- exports.after = context.after || context.suiteTeardown;
- exports.beforeEach = context.beforeEach || context.setup;
- exports.before = context.before || context.suiteSetup;
- exports.describe = context.describe || context.suite;
- exports.it = context.it || context.test;
- exports.setup = context.setup || context.beforeEach;
- exports.suiteSetup = context.suiteSetup || context.before;
- exports.suiteTeardown = context.suiteTeardown || context.after;
- exports.suite = context.suite || context.describe;
- exports.teardown = context.teardown || context.afterEach;
- exports.test = context.test || context.it;
- exports.run = context.run;
- });
-
- return this;
-};
-
-/**
- * Load registered files.
- *
- * @api private
- */
-Mocha.prototype.loadFiles = function(fn) {
- var self = this;
- var suite = this.suite;
- this.files.forEach(function(file) {
- file = path.resolve(file);
- suite.emit('pre-require', global, file, self);
- suite.emit('require', require(file), file, self);
- suite.emit('post-require', global, file, self);
- });
- fn && fn();
-};
-
-/**
- * Enable growl support.
- *
- * @api private
- */
-Mocha.prototype._growl = function(runner, reporter) {
- var notify = require('growl');
-
- runner.on('end', function() {
- var stats = reporter.stats;
- if (stats.failures) {
- var msg = stats.failures + ' of ' + runner.total + ' tests failed';
- notify(msg, { name: 'mocha', title: 'Failed', image: image('error') });
- } else {
- notify(stats.passes + ' tests passed in ' + stats.duration + 'ms', {
- name: 'mocha',
- title: 'Passed',
- image: image('ok')
- });
- }
- });
-};
-
-/**
- * Add regexp to grep, if `re` is a string it is escaped.
- *
- * @param {RegExp|String} re
- * @return {Mocha}
- * @api public
- * @param {RegExp|string} re
- * @return {Mocha}
- */
-Mocha.prototype.grep = function(re) {
- this.options.grep = typeof re === 'string' ? new RegExp(escapeRe(re)) : re;
- return this;
-};
-
-/**
- * Invert `.grep()` matches.
- *
- * @return {Mocha}
- * @api public
- */
-Mocha.prototype.invert = function() {
- this.options.invert = true;
- return this;
-};
-
-/**
- * Ignore global leaks.
- *
- * @param {Boolean} ignore
- * @return {Mocha}
- * @api public
- * @param {boolean} ignore
- * @return {Mocha}
- */
-Mocha.prototype.ignoreLeaks = function(ignore) {
- this.options.ignoreLeaks = Boolean(ignore);
- return this;
-};
-
-/**
- * Enable global leak checking.
- *
- * @return {Mocha}
- * @api public
- */
-Mocha.prototype.checkLeaks = function() {
- this.options.ignoreLeaks = false;
- return this;
-};
-
-/**
- * Display long stack-trace on failing
- *
- * @return {Mocha}
- * @api public
- */
-Mocha.prototype.fullTrace = function() {
- this.options.fullStackTrace = true;
- return this;
-};
-
-/**
- * Enable growl support.
- *
- * @return {Mocha}
- * @api public
- */
-Mocha.prototype.growl = function() {
- this.options.growl = true;
- return this;
-};
-
-/**
- * Ignore `globals` array or string.
- *
- * @param {Array|String} globals
- * @return {Mocha}
- * @api public
- * @param {Array|string} globals
- * @return {Mocha}
- */
-Mocha.prototype.globals = function(globals) {
- this.options.globals = (this.options.globals || []).concat(globals);
- return this;
-};
-
-/**
- * Emit color output.
- *
- * @param {Boolean} colors
- * @return {Mocha}
- * @api public
- * @param {boolean} colors
- * @return {Mocha}
- */
-Mocha.prototype.useColors = function(colors) {
- if (colors !== undefined) {
- this.options.useColors = colors;
- }
- return this;
-};
-
-/**
- * Use inline diffs rather than +/-.
- *
- * @param {Boolean} inlineDiffs
- * @return {Mocha}
- * @api public
- * @param {boolean} inlineDiffs
- * @return {Mocha}
- */
-Mocha.prototype.useInlineDiffs = function(inlineDiffs) {
- this.options.useInlineDiffs = inlineDiffs !== undefined && inlineDiffs;
- return this;
-};
-
-/**
- * Set the timeout in milliseconds.
- *
- * @param {Number} timeout
- * @return {Mocha}
- * @api public
- * @param {number} timeout
- * @return {Mocha}
- */
-Mocha.prototype.timeout = function(timeout) {
- this.suite.timeout(timeout);
- return this;
-};
-
-/**
- * Set the number of times to retry failed tests.
- *
- * @param {Number} retry times
- * @return {Mocha}
- * @api public
- */
-Mocha.prototype.retries = function(n) {
- this.suite.retries(n);
- return this;
-};
-
-/**
- * Set slowness threshold in milliseconds.
- *
- * @param {Number} slow
- * @return {Mocha}
- * @api public
- * @param {number} slow
- * @return {Mocha}
- */
-Mocha.prototype.slow = function(slow) {
- this.suite.slow(slow);
- return this;
-};
-
-/**
- * Enable timeouts.
- *
- * @param {Boolean} enabled
- * @return {Mocha}
- * @api public
- * @param {boolean} enabled
- * @return {Mocha}
- */
-Mocha.prototype.enableTimeouts = function(enabled) {
- this.suite.enableTimeouts(arguments.length && enabled !== undefined ? enabled : true);
- return this;
-};
-
-/**
- * Makes all tests async (accepting a callback)
- *
- * @return {Mocha}
- * @api public
- */
-Mocha.prototype.asyncOnly = function() {
- this.options.asyncOnly = true;
- return this;
-};
-
-/**
- * Disable syntax highlighting (in browser).
- *
- * @api public
- */
-Mocha.prototype.noHighlighting = function() {
- this.options.noHighlighting = true;
- return this;
-};
-
-/**
- * Enable uncaught errors to propagate (in browser).
- *
- * @return {Mocha}
- * @api public
- */
-Mocha.prototype.allowUncaught = function() {
- this.options.allowUncaught = true;
- return this;
-};
-
-/**
- * Delay root suite execution.
- * @returns {Mocha}
- */
-Mocha.prototype.delay = function delay() {
- this.options.delay = true;
- return this;
-};
-
-/**
- * Run tests and invoke `fn()` when complete.
- *
- * @api public
- * @param {Function} fn
- * @return {Runner}
- */
-Mocha.prototype.run = function(fn) {
- if (this.files.length) {
- this.loadFiles();
- }
- var suite = this.suite;
- var options = this.options;
- options.files = this.files;
- var runner = new exports.Runner(suite, options.delay);
- var reporter = new this._reporter(runner, options);
- runner.ignoreLeaks = options.ignoreLeaks !== false;
- runner.fullStackTrace = options.fullStackTrace;
- runner.asyncOnly = options.asyncOnly;
- runner.allowUncaught = options.allowUncaught;
- if (options.grep) {
- runner.grep(options.grep, options.invert);
- }
- if (options.globals) {
- runner.globals(options.globals);
- }
- if (options.growl) {
- this._growl(runner, reporter);
- }
- if (options.useColors !== undefined) {
- exports.reporters.Base.useColors = options.useColors;
- }
- exports.reporters.Base.inlineDiffs = options.useInlineDiffs;
-
- function done(failures) {
- if (reporter.done) {
- reporter.done(failures, fn);
- } else {
- fn && fn(failures);
- }
- }
-
- return runner.run(done);
-};
-
-}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},"/lib")
-},{"./context":6,"./hook":7,"./interfaces":11,"./reporters":22,"./runnable":35,"./runner":36,"./suite":37,"./test":38,"./utils":39,"_process":58,"escape-string-regexp":49,"growl":51,"path":43}],15:[function(require,module,exports){
-/**
- * Helpers.
- */
-
-var s = 1000;
-var m = s * 60;
-var h = m * 60;
-var d = h * 24;
-var y = d * 365.25;
-
-/**
- * Parse or format the given `val`.
- *
- * Options:
- *
- * - `long` verbose formatting [false]
- *
- * @api public
- * @param {string|number} val
- * @param {Object} options
- * @return {string|number}
- */
-module.exports = function(val, options) {
- options = options || {};
- if (typeof val === 'string') {
- return parse(val);
- }
- // https://github.com/mochajs/mocha/pull/1035
- return options['long'] ? longFormat(val) : shortFormat(val);
-};
-
-/**
- * Parse the given `str` and return milliseconds.
- *
- * @api private
- * @param {string} str
- * @return {number}
- */
-function parse(str) {
- var match = (/^((?:\d+)?\.?\d+) *(ms|seconds?|s|minutes?|m|hours?|h|days?|d|years?|y)?$/i).exec(str);
- if (!match) {
- return;
- }
- var n = parseFloat(match[1]);
- var type = (match[2] || 'ms').toLowerCase();
- switch (type) {
- case 'years':
- case 'year':
- case 'y':
- return n * y;
- case 'days':
- case 'day':
- case 'd':
- return n * d;
- case 'hours':
- case 'hour':
- case 'h':
- return n * h;
- case 'minutes':
- case 'minute':
- case 'm':
- return n * m;
- case 'seconds':
- case 'second':
- case 's':
- return n * s;
- case 'ms':
- return n;
- default:
- // No default case
- }
-}
-
-/**
- * Short format for `ms`.
- *
- * @api private
- * @param {number} ms
- * @return {string}
- */
-function shortFormat(ms) {
- if (ms >= d) {
- return Math.round(ms / d) + 'd';
- }
- if (ms >= h) {
- return Math.round(ms / h) + 'h';
- }
- if (ms >= m) {
- return Math.round(ms / m) + 'm';
- }
- if (ms >= s) {
- return Math.round(ms / s) + 's';
- }
- return ms + 'ms';
-}
-
-/**
- * Long format for `ms`.
- *
- * @api private
- * @param {number} ms
- * @return {string}
- */
-function longFormat(ms) {
- return plural(ms, d, 'day')
- || plural(ms, h, 'hour')
- || plural(ms, m, 'minute')
- || plural(ms, s, 'second')
- || ms + ' ms';
-}
-
-/**
- * Pluralization helper.
- *
- * @api private
- * @param {number} ms
- * @param {number} n
- * @param {string} name
- */
-function plural(ms, n, name) {
- if (ms < n) {
- return;
- }
- if (ms < n * 1.5) {
- return Math.floor(ms / n) + ' ' + name;
- }
- return Math.ceil(ms / n) + ' ' + name + 's';
-}
-
-},{}],16:[function(require,module,exports){
-
-/**
- * Expose `Pending`.
- */
-
-module.exports = Pending;
-
-/**
- * Initialize a new `Pending` error with the given message.
- *
- * @param {string} message
- */
-function Pending(message) {
- this.message = message;
-}
-
-},{}],17:[function(require,module,exports){
-(function (process,global){
-/**
- * Module dependencies.
- */
-
-var tty = require('tty');
-var diff = require('diff');
-var ms = require('../ms');
-var utils = require('../utils');
-var supportsColor = process.browser ? null : require('supports-color');
-
-/**
- * Expose `Base`.
- */
-
-exports = module.exports = Base;
-
-/**
- * Save timer references to avoid Sinon interfering.
- * See: https://github.com/mochajs/mocha/issues/237
- */
-
-/* eslint-disable no-unused-vars, no-native-reassign */
-var Date = global.Date;
-var setTimeout = global.setTimeout;
-var setInterval = global.setInterval;
-var clearTimeout = global.clearTimeout;
-var clearInterval = global.clearInterval;
-/* eslint-enable no-unused-vars, no-native-reassign */
-
-/**
- * Check if both stdio streams are associated with a tty.
- */
-
-var isatty = tty.isatty(1) && tty.isatty(2);
-
-/**
- * Enable coloring by default, except in the browser interface.
- */
-
-exports.useColors = !process.browser && (supportsColor || (process.env.MOCHA_COLORS !== undefined));
-
-/**
- * Inline diffs instead of +/-
- */
-
-exports.inlineDiffs = false;
-
-/**
- * Default color map.
- */
-
-exports.colors = {
- pass: 90,
- fail: 31,
- 'bright pass': 92,
- 'bright fail': 91,
- 'bright yellow': 93,
- pending: 36,
- suite: 0,
- 'error title': 0,
- 'error message': 31,
- 'error stack': 90,
- checkmark: 32,
- fast: 90,
- medium: 33,
- slow: 31,
- green: 32,
- light: 90,
- 'diff gutter': 90,
- 'diff added': 32,
- 'diff removed': 31
-};
-
-/**
- * Default symbol map.
- */
-
-exports.symbols = {
- ok: '✓',
- err: '✖',
- dot: '․'
-};
-
-// With node.js on Windows: use symbols available in terminal default fonts
-if (process.platform === 'win32') {
- exports.symbols.ok = '\u221A';
- exports.symbols.err = '\u00D7';
- exports.symbols.dot = '.';
-}
-
-/**
- * Color `str` with the given `type`,
- * allowing colors to be disabled,
- * as well as user-defined color
- * schemes.
- *
- * @param {string} type
- * @param {string} str
- * @return {string}
- * @api private
- */
-var color = exports.color = function(type, str) {
- if (!exports.useColors) {
- return String(str);
- }
- return '\u001b[' + exports.colors[type] + 'm' + str + '\u001b[0m';
-};
-
-/**
- * Expose term window size, with some defaults for when stderr is not a tty.
- */
-
-exports.window = {
- width: 75
-};
-
-if (isatty) {
- exports.window.width = process.stdout.getWindowSize
- ? process.stdout.getWindowSize(1)[0]
- : tty.getWindowSize()[1];
-}
-
-/**
- * Expose some basic cursor interactions that are common among reporters.
- */
-
-exports.cursor = {
- hide: function() {
- isatty && process.stdout.write('\u001b[?25l');
- },
-
- show: function() {
- isatty && process.stdout.write('\u001b[?25h');
- },
-
- deleteLine: function() {
- isatty && process.stdout.write('\u001b[2K');
- },
-
- beginningOfLine: function() {
- isatty && process.stdout.write('\u001b[0G');
- },
-
- CR: function() {
- if (isatty) {
- exports.cursor.deleteLine();
- exports.cursor.beginningOfLine();
- } else {
- process.stdout.write('\r');
- }
- }
-};
-
-/**
- * Outut the given `failures` as a list.
- *
- * @param {Array} failures
- * @api public
- */
-
-exports.list = function(failures) {
- console.log();
- failures.forEach(function(test, i) {
- // format
- var fmt = color('error title', ' %s) %s:\n')
- + color('error message', ' %s')
- + color('error stack', '\n%s\n');
-
- // msg
- var msg;
- var err = test.err;
- var message;
- if (err.message && typeof err.message.toString === 'function') {
- message = err.message + '';
- } else if (typeof err.inspect === 'function') {
- message = err.inspect() + '';
- } else {
- message = '';
- }
- var stack = err.stack || message;
- var index = stack.indexOf(message);
- var actual = err.actual;
- var expected = err.expected;
- var escape = true;
-
- if (index === -1) {
- msg = message;
- } else {
- index += message.length;
- msg = stack.slice(0, index);
- // remove msg from stack
- stack = stack.slice(index + 1);
- }
-
- // uncaught
- if (err.uncaught) {
- msg = 'Uncaught ' + msg;
- }
- // explicitly show diff
- if (err.showDiff !== false && sameType(actual, expected) && expected !== undefined) {
- escape = false;
- if (!(utils.isString(actual) && utils.isString(expected))) {
- err.actual = actual = utils.stringify(actual);
- err.expected = expected = utils.stringify(expected);
- }
-
- fmt = color('error title', ' %s) %s:\n%s') + color('error stack', '\n%s\n');
- var match = message.match(/^([^:]+): expected/);
- msg = '\n ' + color('error message', match ? match[1] : msg);
-
- if (exports.inlineDiffs) {
- msg += inlineDiff(err, escape);
- } else {
- msg += unifiedDiff(err, escape);
- }
- }
-
- // indent stack trace
- stack = stack.replace(/^/gm, ' ');
-
- console.log(fmt, (i + 1), test.fullTitle(), msg, stack);
- });
-};
-
-/**
- * Initialize a new `Base` reporter.
- *
- * All other reporters generally
- * inherit from this reporter, providing
- * stats such as test duration, number
- * of tests passed / failed etc.
- *
- * @param {Runner} runner
- * @api public
- */
-
-function Base(runner) {
- var stats = this.stats = { suites: 0, tests: 0, passes: 0, pending: 0, failures: 0 };
- var failures = this.failures = [];
-
- if (!runner) {
- return;
- }
- this.runner = runner;
-
- runner.stats = stats;
-
- runner.on('start', function() {
- stats.start = new Date();
- });
-
- runner.on('suite', function(suite) {
- stats.suites = stats.suites || 0;
- suite.root || stats.suites++;
- });
-
- runner.on('test end', function() {
- stats.tests = stats.tests || 0;
- stats.tests++;
- });
-
- runner.on('pass', function(test) {
- stats.passes = stats.passes || 0;
-
- if (test.duration > test.slow()) {
- test.speed = 'slow';
- } else if (test.duration > test.slow() / 2) {
- test.speed = 'medium';
- } else {
- test.speed = 'fast';
- }
-
- stats.passes++;
- });
-
- runner.on('fail', function(test, err) {
- stats.failures = stats.failures || 0;
- stats.failures++;
- test.err = err;
- failures.push(test);
- });
-
- runner.on('end', function() {
- stats.end = new Date();
- stats.duration = new Date() - stats.start;
- });
-
- runner.on('pending', function() {
- stats.pending++;
- });
-}
-
-/**
- * Output common epilogue used by many of
- * the bundled reporters.
- *
- * @api public
- */
-Base.prototype.epilogue = function() {
- var stats = this.stats;
- var fmt;
-
- console.log();
-
- // passes
- fmt = color('bright pass', ' ')
- + color('green', ' %d passing')
- + color('light', ' (%s)');
-
- console.log(fmt,
- stats.passes || 0,
- ms(stats.duration));
-
- // pending
- if (stats.pending) {
- fmt = color('pending', ' ')
- + color('pending', ' %d pending');
-
- console.log(fmt, stats.pending);
- }
-
- // failures
- if (stats.failures) {
- fmt = color('fail', ' %d failing');
-
- console.log(fmt, stats.failures);
-
- Base.list(this.failures);
- console.log();
- }
-
- console.log();
-};
-
-/**
- * Pad the given `str` to `len`.
- *
- * @api private
- * @param {string} str
- * @param {string} len
- * @return {string}
- */
-function pad(str, len) {
- str = String(str);
- return Array(len - str.length + 1).join(' ') + str;
-}
-
-/**
- * Returns an inline diff between 2 strings with coloured ANSI output
- *
- * @api private
- * @param {Error} err with actual/expected
- * @param {boolean} escape
- * @return {string} Diff
- */
-function inlineDiff(err, escape) {
- var msg = errorDiff(err, 'WordsWithSpace', escape);
-
- // linenos
- var lines = msg.split('\n');
- if (lines.length > 4) {
- var width = String(lines.length).length;
- msg = lines.map(function(str, i) {
- return pad(++i, width) + ' |' + ' ' + str;
- }).join('\n');
- }
-
- // legend
- msg = '\n'
- + color('diff removed', 'actual')
- + ' '
- + color('diff added', 'expected')
- + '\n\n'
- + msg
- + '\n';
-
- // indent
- msg = msg.replace(/^/gm, ' ');
- return msg;
-}
-
-/**
- * Returns a unified diff between two strings.
- *
- * @api private
- * @param {Error} err with actual/expected
- * @param {boolean} escape
- * @return {string} The diff.
- */
-function unifiedDiff(err, escape) {
- var indent = ' ';
- function cleanUp(line) {
- if (escape) {
- line = escapeInvisibles(line);
- }
- if (line[0] === '+') {
- return indent + colorLines('diff added', line);
- }
- if (line[0] === '-') {
- return indent + colorLines('diff removed', line);
- }
- if (line.match(/\@\@/)) {
- return null;
- }
- if (line.match(/\\ No newline/)) {
- return null;
- }
- return indent + line;
- }
- function notBlank(line) {
- return typeof line !== 'undefined' && line !== null;
- }
- var msg = diff.createPatch('string', err.actual, err.expected);
- var lines = msg.split('\n').splice(4);
- return '\n '
- + colorLines('diff added', '+ expected') + ' '
- + colorLines('diff removed', '- actual')
- + '\n\n'
- + lines.map(cleanUp).filter(notBlank).join('\n');
-}
-
-/**
- * Return a character diff for `err`.
- *
- * @api private
- * @param {Error} err
- * @param {string} type
- * @param {boolean} escape
- * @return {string}
- */
-function errorDiff(err, type, escape) {
- var actual = escape ? escapeInvisibles(err.actual) : err.actual;
- var expected = escape ? escapeInvisibles(err.expected) : err.expected;
- return diff['diff' + type](actual, expected).map(function(str) {
- if (str.added) {
- return colorLines('diff added', str.value);
- }
- if (str.removed) {
- return colorLines('diff removed', str.value);
- }
- return str.value;
- }).join('');
-}
-
-/**
- * Returns a string with all invisible characters in plain text
- *
- * @api private
- * @param {string} line
- * @return {string}
- */
-function escapeInvisibles(line) {
- return line.replace(/\t/g, '<tab>')
- .replace(/\r/g, '<CR>')
- .replace(/\n/g, '<LF>\n');
-}
-
-/**
- * Color lines for `str`, using the color `name`.
- *
- * @api private
- * @param {string} name
- * @param {string} str
- * @return {string}
- */
-function colorLines(name, str) {
- return str.split('\n').map(function(str) {
- return color(name, str);
- }).join('\n');
-}
-
-/**
- * Object#toString reference.
- */
-var objToString = Object.prototype.toString;
-
-/**
- * Check that a / b have the same type.
- *
- * @api private
- * @param {Object} a
- * @param {Object} b
- * @return {boolean}
- */
-function sameType(a, b) {
- return objToString.call(a) === objToString.call(b);
-}
-
-}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"../ms":15,"../utils":39,"_process":58,"diff":48,"supports-color":43,"tty":5}],18:[function(require,module,exports){
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var utils = require('../utils');
-
-/**
- * Expose `Doc`.
- */
-
-exports = module.exports = Doc;
-
-/**
- * Initialize a new `Doc` reporter.
- *
- * @param {Runner} runner
- * @api public
- */
-function Doc(runner) {
- Base.call(this, runner);
-
- var indents = 2;
-
- function indent() {
- return Array(indents).join(' ');
- }
-
- runner.on('suite', function(suite) {
- if (suite.root) {
- return;
- }
- ++indents;
- console.log('%s<section class="suite">', indent());
- ++indents;
- console.log('%s<h1>%s</h1>', indent(), utils.escape(suite.title));
- console.log('%s<dl>', indent());
- });
-
- runner.on('suite end', function(suite) {
- if (suite.root) {
- return;
- }
- console.log('%s</dl>', indent());
- --indents;
- console.log('%s</section>', indent());
- --indents;
- });
-
- runner.on('pass', function(test) {
- console.log('%s <dt>%s</dt>', indent(), utils.escape(test.title));
- var code = utils.escape(utils.clean(test.body));
- console.log('%s <dd><pre><code>%s</code></pre></dd>', indent(), code);
- });
-
- runner.on('fail', function(test, err) {
- console.log('%s <dt class="error">%s</dt>', indent(), utils.escape(test.title));
- var code = utils.escape(utils.clean(test.fn.body));
- console.log('%s <dd class="error"><pre><code>%s</code></pre></dd>', indent(), code);
- console.log('%s <dd class="error">%s</dd>', indent(), utils.escape(err));
- });
-}
-
-},{"../utils":39,"./base":17}],19:[function(require,module,exports){
-(function (process){
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var inherits = require('../utils').inherits;
-var color = Base.color;
-
-/**
- * Expose `Dot`.
- */
-
-exports = module.exports = Dot;
-
-/**
- * Initialize a new `Dot` matrix test reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function Dot(runner) {
- Base.call(this, runner);
-
- var self = this;
- var width = Base.window.width * .75 | 0;
- var n = -1;
-
- runner.on('start', function() {
- process.stdout.write('\n');
- });
-
- runner.on('pending', function() {
- if (++n % width === 0) {
- process.stdout.write('\n ');
- }
- process.stdout.write(color('pending', Base.symbols.dot));
- });
-
- runner.on('pass', function(test) {
- if (++n % width === 0) {
- process.stdout.write('\n ');
- }
- if (test.speed === 'slow') {
- process.stdout.write(color('bright yellow', Base.symbols.dot));
- } else {
- process.stdout.write(color(test.speed, Base.symbols.dot));
- }
- });
-
- runner.on('fail', function() {
- if (++n % width === 0) {
- process.stdout.write('\n ');
- }
- process.stdout.write(color('fail', Base.symbols.dot));
- });
-
- runner.on('end', function() {
- console.log();
- self.epilogue();
- });
-}
-
-/**
- * Inherit from `Base.prototype`.
- */
-inherits(Dot, Base);
-
-}).call(this,require('_process'))
-},{"../utils":39,"./base":17,"_process":58}],20:[function(require,module,exports){
-(function (process,__dirname){
-/**
- * Module dependencies.
- */
-
-var JSONCov = require('./json-cov');
-var readFileSync = require('fs').readFileSync;
-var join = require('path').join;
-
-/**
- * Expose `HTMLCov`.
- */
-
-exports = module.exports = HTMLCov;
-
-/**
- * Initialize a new `JsCoverage` reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function HTMLCov(runner) {
- var jade = require('jade');
- var file = join(__dirname, '/templates/coverage.jade');
- var str = readFileSync(file, 'utf8');
- var fn = jade.compile(str, { filename: file });
- var self = this;
-
- JSONCov.call(this, runner, false);
-
- runner.on('end', function() {
- process.stdout.write(fn({
- cov: self.cov,
- coverageClass: coverageClass
- }));
- });
-}
-
-/**
- * Return coverage class for a given coverage percentage.
- *
- * @api private
- * @param {number} coveragePctg
- * @return {string}
- */
-function coverageClass(coveragePctg) {
- if (coveragePctg >= 75) {
- return 'high';
- }
- if (coveragePctg >= 50) {
- return 'medium';
- }
- if (coveragePctg >= 25) {
- return 'low';
- }
- return 'terrible';
-}
-
-}).call(this,require('_process'),"/lib/reporters")
-},{"./json-cov":23,"_process":58,"fs":43,"jade":43,"path":43}],21:[function(require,module,exports){
-(function (global){
-/* eslint-env browser */
-
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var utils = require('../utils');
-var Progress = require('../browser/progress');
-var escapeRe = require('escape-string-regexp');
-var escape = utils.escape;
-
-/**
- * Save timer references to avoid Sinon interfering (see GH-237).
- */
-
-/* eslint-disable no-unused-vars, no-native-reassign */
-var Date = global.Date;
-var setTimeout = global.setTimeout;
-var setInterval = global.setInterval;
-var clearTimeout = global.clearTimeout;
-var clearInterval = global.clearInterval;
-/* eslint-enable no-unused-vars, no-native-reassign */
-
-/**
- * Expose `HTML`.
- */
-
-exports = module.exports = HTML;
-
-/**
- * Stats template.
- */
-
-var statsTemplate = '<ul id="mocha-stats">'
- + '<li class="progress"><canvas width="40" height="40"></canvas></li>'
- + '<li class="passes"><a href="javascript:void(0);">passes:</a> <em>0</em></li>'
- + '<li class="failures"><a href="javascript:void(0);">failures:</a> <em>0</em></li>'
- + '<li class="duration">duration: <em>0</em>s</li>'
- + '</ul>';
-
-/**
- * Initialize a new `HTML` reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function HTML(runner) {
- Base.call(this, runner);
-
- var self = this;
- var stats = this.stats;
- var stat = fragment(statsTemplate);
- var items = stat.getElementsByTagName('li');
- var passes = items[1].getElementsByTagName('em')[0];
- var passesLink = items[1].getElementsByTagName('a')[0];
- var failures = items[2].getElementsByTagName('em')[0];
- var failuresLink = items[2].getElementsByTagName('a')[0];
- var duration = items[3].getElementsByTagName('em')[0];
- var canvas = stat.getElementsByTagName('canvas')[0];
- var report = fragment('<ul id="mocha-report"></ul>');
- var stack = [report];
- var progress;
- var ctx;
- var root = document.getElementById('mocha');
-
- if (canvas.getContext) {
- var ratio = window.devicePixelRatio || 1;
- canvas.style.width = canvas.width;
- canvas.style.height = canvas.height;
- canvas.width *= ratio;
- canvas.height *= ratio;
- ctx = canvas.getContext('2d');
- ctx.scale(ratio, ratio);
- progress = new Progress();
- }
-
- if (!root) {
- return error('#mocha div missing, add it to your document');
- }
-
- // pass toggle
- on(passesLink, 'click', function(evt) {
- evt.preventDefault();
- unhide();
- var name = (/pass/).test(report.className) ? '' : ' pass';
- report.className = report.className.replace(/fail|pass/g, '') + name;
- if (report.className.trim()) {
- hideSuitesWithout('test pass');
- }
- });
-
- // failure toggle
- on(failuresLink, 'click', function(evt) {
- evt.preventDefault();
- unhide();
- var name = (/fail/).test(report.className) ? '' : ' fail';
- report.className = report.className.replace(/fail|pass/g, '') + name;
- if (report.className.trim()) {
- hideSuitesWithout('test fail');
- }
- });
-
- root.appendChild(stat);
- root.appendChild(report);
-
- if (progress) {
- progress.size(40);
- }
-
- runner.on('suite', function(suite) {
- if (suite.root) {
- return;
- }
-
- // suite
- var url = self.suiteURL(suite);
- var el = fragment('<li class="suite"><h1><a href="%s">%s</a></h1></li>', url, escape(suite.title));
-
- // container
- stack[0].appendChild(el);
- stack.unshift(document.createElement('ul'));
- el.appendChild(stack[0]);
- });
-
- runner.on('suite end', function(suite) {
- if (suite.root) {
- return;
- }
- stack.shift();
- });
-
- runner.on('pass', function(test) {
- var url = self.testURL(test);
- var markup = '<li class="test pass %e"><h2>%e<span class="duration">%ems</span> '
- + '<a href="%s" class="replay">‣</a></h2></li>';
- var el = fragment(markup, test.speed, test.title, test.duration, url);
- self.addCodeToggle(el, test.body);
- appendToStack(el);
- updateStats();
- });
-
- runner.on('fail', function(test) {
- var el = fragment('<li class="test fail"><h2>%e <a href="%e" class="replay">‣</a></h2></li>',
- test.title, self.testURL(test));
- var stackString; // Note: Includes leading newline
- var message = test.err.toString();
-
- // <=IE7 stringifies to [Object Error]. Since it can be overloaded, we
- // check for the result of the stringifying.
- if (message === '[object Error]') {
- message = test.err.message;
- }
-
- if (test.err.stack) {
- var indexOfMessage = test.err.stack.indexOf(test.err.message);
- if (indexOfMessage === -1) {
- stackString = test.err.stack;
- } else {
- stackString = test.err.stack.substr(test.err.message.length + indexOfMessage);
- }
- } else if (test.err.sourceURL && test.err.line !== undefined) {
- // Safari doesn't give you a stack. Let's at least provide a source line.
- stackString = '\n(' + test.err.sourceURL + ':' + test.err.line + ')';
- }
-
- stackString = stackString || '';
-
- if (test.err.htmlMessage && stackString) {
- el.appendChild(fragment('<div class="html-error">%s\n<pre class="error">%e</pre></div>',
- test.err.htmlMessage, stackString));
- } else if (test.err.htmlMessage) {
- el.appendChild(fragment('<div class="html-error">%s</div>', test.err.htmlMessage));
- } else {
- el.appendChild(fragment('<pre class="error">%e%e</pre>', message, stackString));
- }
-
- self.addCodeToggle(el, test.body);
- appendToStack(el);
- updateStats();
- });
-
- runner.on('pending', function(test) {
- var el = fragment('<li class="test pass pending"><h2>%e</h2></li>', test.title);
- appendToStack(el);
- updateStats();
- });
-
- function appendToStack(el) {
- // Don't call .appendChild if #mocha-report was already .shift()'ed off the stack.
- if (stack[0]) {
- stack[0].appendChild(el);
- }
- }
-
- function updateStats() {
- // TODO: add to stats
- var percent = stats.tests / this.total * 100 | 0;
- if (progress) {
- progress.update(percent).draw(ctx);
- }
-
- // update stats
- var ms = new Date() - stats.start;
- text(passes, stats.passes);
- text(failures, stats.failures);
- text(duration, (ms / 1000).toFixed(2));
- }
-}
-
-/**
- * Makes a URL, preserving querystring ("search") parameters.
- *
- * @param {string} s
- * @return {string} A new URL.
- */
-function makeUrl(s) {
- var search = window.location.search;
-
- // Remove previous grep query parameter if present
- if (search) {
- search = search.replace(/[?&]grep=[^&\s]*/g, '').replace(/^&/, '?');
- }
-
- return window.location.pathname + (search ? search + '&' : '?') + 'grep=' + encodeURIComponent(escapeRe(s));
-}
-
-/**
- * Provide suite URL.
- *
- * @param {Object} [suite]
- */
-HTML.prototype.suiteURL = function(suite) {
- return makeUrl(suite.fullTitle());
-};
-
-/**
- * Provide test URL.
- *
- * @param {Object} [test]
- */
-HTML.prototype.testURL = function(test) {
- return makeUrl(test.fullTitle());
-};
-
-/**
- * Adds code toggle functionality for the provided test's list element.
- *
- * @param {HTMLLIElement} el
- * @param {string} contents
- */
-HTML.prototype.addCodeToggle = function(el, contents) {
- var h2 = el.getElementsByTagName('h2')[0];
-
- on(h2, 'click', function() {
- pre.style.display = pre.style.display === 'none' ? 'block' : 'none';
- });
-
- var pre = fragment('<pre><code>%e</code></pre>', utils.clean(contents));
- el.appendChild(pre);
- pre.style.display = 'none';
-};
-
-/**
- * Display error `msg`.
- *
- * @param {string} msg
- */
-function error(msg) {
- document.body.appendChild(fragment('<div id="mocha-error">%s</div>', msg));
-}
-
-/**
- * Return a DOM fragment from `html`.
- *
- * @param {string} html
- */
-function fragment(html) {
- var args = arguments;
- var div = document.createElement('div');
- var i = 1;
-
- div.innerHTML = html.replace(/%([se])/g, function(_, type) {
- switch (type) {
- case 's': return String(args[i++]);
- case 'e': return escape(args[i++]);
- // no default
- }
- });
-
- return div.firstChild;
-}
-
-/**
- * Check for suites that do not have elements
- * with `classname`, and hide them.
- *
- * @param {text} classname
- */
-function hideSuitesWithout(classname) {
- var suites = document.getElementsByClassName('suite');
- for (var i = 0; i < suites.length; i++) {
- var els = suites[i].getElementsByClassName(classname);
- if (!els.length) {
- suites[i].className += ' hidden';
- }
- }
-}
-
-/**
- * Unhide .hidden suites.
- */
-function unhide() {
- var els = document.getElementsByClassName('suite hidden');
- for (var i = 0; i < els.length; ++i) {
- els[i].className = els[i].className.replace('suite hidden', 'suite');
- }
-}
-
-/**
- * Set an element's text contents.
- *
- * @param {HTMLElement} el
- * @param {string} contents
- */
-function text(el, contents) {
- if (el.textContent) {
- el.textContent = contents;
- } else {
- el.innerText = contents;
- }
-}
-
-/**
- * Listen on `event` with callback `fn`.
- */
-function on(el, event, fn) {
- if (el.addEventListener) {
- el.addEventListener(event, fn, false);
- } else {
- el.attachEvent('on' + event, fn);
- }
-}
-
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"../browser/progress":4,"../utils":39,"./base":17,"escape-string-regexp":49}],22:[function(require,module,exports){
-// Alias exports to a their normalized format Mocha#reporter to prevent a need
-// for dynamic (try/catch) requires, which Browserify doesn't handle.
-exports.Base = exports.base = require('./base');
-exports.Dot = exports.dot = require('./dot');
-exports.Doc = exports.doc = require('./doc');
-exports.TAP = exports.tap = require('./tap');
-exports.JSON = exports.json = require('./json');
-exports.HTML = exports.html = require('./html');
-exports.List = exports.list = require('./list');
-exports.Min = exports.min = require('./min');
-exports.Spec = exports.spec = require('./spec');
-exports.Nyan = exports.nyan = require('./nyan');
-exports.XUnit = exports.xunit = require('./xunit');
-exports.Markdown = exports.markdown = require('./markdown');
-exports.Progress = exports.progress = require('./progress');
-exports.Landing = exports.landing = require('./landing');
-exports.JSONCov = exports['json-cov'] = require('./json-cov');
-exports.HTMLCov = exports['html-cov'] = require('./html-cov');
-exports.JSONStream = exports['json-stream'] = require('./json-stream');
-
-},{"./base":17,"./doc":18,"./dot":19,"./html":21,"./html-cov":20,"./json":25,"./json-cov":23,"./json-stream":24,"./landing":26,"./list":27,"./markdown":28,"./min":29,"./nyan":30,"./progress":31,"./spec":32,"./tap":33,"./xunit":34}],23:[function(require,module,exports){
-(function (process,global){
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-
-/**
- * Expose `JSONCov`.
- */
-
-exports = module.exports = JSONCov;
-
-/**
- * Initialize a new `JsCoverage` reporter.
- *
- * @api public
- * @param {Runner} runner
- * @param {boolean} output
- */
-function JSONCov(runner, output) {
- Base.call(this, runner);
-
- output = arguments.length === 1 || output;
- var self = this;
- var tests = [];
- var failures = [];
- var passes = [];
-
- runner.on('test end', function(test) {
- tests.push(test);
- });
-
- runner.on('pass', function(test) {
- passes.push(test);
- });
-
- runner.on('fail', function(test) {
- failures.push(test);
- });
-
- runner.on('end', function() {
- var cov = global._$jscoverage || {};
- var result = self.cov = map(cov);
- result.stats = self.stats;
- result.tests = tests.map(clean);
- result.failures = failures.map(clean);
- result.passes = passes.map(clean);
- if (!output) {
- return;
- }
- process.stdout.write(JSON.stringify(result, null, 2));
- });
-}
-
-/**
- * Map jscoverage data to a JSON structure
- * suitable for reporting.
- *
- * @api private
- * @param {Object} cov
- * @return {Object}
- */
-
-function map(cov) {
- var ret = {
- instrumentation: 'node-jscoverage',
- sloc: 0,
- hits: 0,
- misses: 0,
- coverage: 0,
- files: []
- };
-
- for (var filename in cov) {
- if (Object.prototype.hasOwnProperty.call(cov, filename)) {
- var data = coverage(filename, cov[filename]);
- ret.files.push(data);
- ret.hits += data.hits;
- ret.misses += data.misses;
- ret.sloc += data.sloc;
- }
- }
-
- ret.files.sort(function(a, b) {
- return a.filename.localeCompare(b.filename);
- });
-
- if (ret.sloc > 0) {
- ret.coverage = (ret.hits / ret.sloc) * 100;
- }
-
- return ret;
-}
-
-/**
- * Map jscoverage data for a single source file
- * to a JSON structure suitable for reporting.
- *
- * @api private
- * @param {string} filename name of the source file
- * @param {Object} data jscoverage coverage data
- * @return {Object}
- */
-function coverage(filename, data) {
- var ret = {
- filename: filename,
- coverage: 0,
- hits: 0,
- misses: 0,
- sloc: 0,
- source: {}
- };
-
- data.source.forEach(function(line, num) {
- num++;
-
- if (data[num] === 0) {
- ret.misses++;
- ret.sloc++;
- } else if (data[num] !== undefined) {
- ret.hits++;
- ret.sloc++;
- }
-
- ret.source[num] = {
- source: line,
- coverage: data[num] === undefined ? '' : data[num]
- };
- });
-
- ret.coverage = ret.hits / ret.sloc * 100;
-
- return ret;
-}
-
-/**
- * Return a plain-object representation of `test`
- * free of cyclic properties etc.
- *
- * @api private
- * @param {Object} test
- * @return {Object}
- */
-function clean(test) {
- return {
- duration: test.duration,
- currentRetry: test.currentRetry(),
- fullTitle: test.fullTitle(),
- title: test.title
- };
-}
-
-}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"./base":17,"_process":58}],24:[function(require,module,exports){
-(function (process){
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-
-/**
- * Expose `List`.
- */
-
-exports = module.exports = List;
-
-/**
- * Initialize a new `List` test reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function List(runner) {
- Base.call(this, runner);
-
- var self = this;
- var total = runner.total;
-
- runner.on('start', function() {
- console.log(JSON.stringify(['start', { total: total }]));
- });
-
- runner.on('pass', function(test) {
- console.log(JSON.stringify(['pass', clean(test)]));
- });
-
- runner.on('fail', function(test, err) {
- test = clean(test);
- test.err = err.message;
- test.stack = err.stack || null;
- console.log(JSON.stringify(['fail', test]));
- });
-
- runner.on('end', function() {
- process.stdout.write(JSON.stringify(['end', self.stats]));
- });
-}
-
-/**
- * Return a plain-object representation of `test`
- * free of cyclic properties etc.
- *
- * @api private
- * @param {Object} test
- * @return {Object}
- */
-function clean(test) {
- return {
- title: test.title,
- fullTitle: test.fullTitle(),
- duration: test.duration,
- currentRetry: test.currentRetry()
- };
-}
-
-}).call(this,require('_process'))
-},{"./base":17,"_process":58}],25:[function(require,module,exports){
-(function (process){
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-
-/**
- * Expose `JSON`.
- */
-
-exports = module.exports = JSONReporter;
-
-/**
- * Initialize a new `JSON` reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function JSONReporter(runner) {
- Base.call(this, runner);
-
- var self = this;
- var tests = [];
- var pending = [];
- var failures = [];
- var passes = [];
-
- runner.on('test end', function(test) {
- tests.push(test);
- });
-
- runner.on('pass', function(test) {
- passes.push(test);
- });
-
- runner.on('fail', function(test) {
- failures.push(test);
- });
-
- runner.on('pending', function(test) {
- pending.push(test);
- });
-
- runner.on('end', function() {
- var obj = {
- stats: self.stats,
- tests: tests.map(clean),
- pending: pending.map(clean),
- failures: failures.map(clean),
- passes: passes.map(clean)
- };
-
- runner.testResults = obj;
-
- process.stdout.write(JSON.stringify(obj, null, 2));
- });
-}
-
-/**
- * Return a plain-object representation of `test`
- * free of cyclic properties etc.
- *
- * @api private
- * @param {Object} test
- * @return {Object}
- */
-function clean(test) {
- return {
- title: test.title,
- fullTitle: test.fullTitle(),
- duration: test.duration,
- currentRetry: test.currentRetry(),
- err: errorJSON(test.err || {})
- };
-}
-
-/**
- * Transform `error` into a JSON object.
- *
- * @api private
- * @param {Error} err
- * @return {Object}
- */
-function errorJSON(err) {
- var res = {};
- Object.getOwnPropertyNames(err).forEach(function(key) {
- res[key] = err[key];
- }, err);
- return res;
-}
-
-}).call(this,require('_process'))
-},{"./base":17,"_process":58}],26:[function(require,module,exports){
-(function (process){
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var inherits = require('../utils').inherits;
-var cursor = Base.cursor;
-var color = Base.color;
-
-/**
- * Expose `Landing`.
- */
-
-exports = module.exports = Landing;
-
-/**
- * Airplane color.
- */
-
-Base.colors.plane = 0;
-
-/**
- * Airplane crash color.
- */
-
-Base.colors['plane crash'] = 31;
-
-/**
- * Runway color.
- */
-
-Base.colors.runway = 90;
-
-/**
- * Initialize a new `Landing` reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function Landing(runner) {
- Base.call(this, runner);
-
- var self = this;
- var width = Base.window.width * .75 | 0;
- var total = runner.total;
- var stream = process.stdout;
- var plane = color('plane', '✈');
- var crashed = -1;
- var n = 0;
-
- function runway() {
- var buf = Array(width).join('-');
- return ' ' + color('runway', buf);
- }
-
- runner.on('start', function() {
- stream.write('\n\n\n ');
- cursor.hide();
- });
-
- runner.on('test end', function(test) {
- // check if the plane crashed
- var col = crashed === -1 ? width * ++n / total | 0 : crashed;
-
- // show the crash
- if (test.state === 'failed') {
- plane = color('plane crash', '✈');
- crashed = col;
- }
-
- // render landing strip
- stream.write('\u001b[' + (width + 1) + 'D\u001b[2A');
- stream.write(runway());
- stream.write('\n ');
- stream.write(color('runway', Array(col).join('â‹…')));
- stream.write(plane);
- stream.write(color('runway', Array(width - col).join('â‹…') + '\n'));
- stream.write(runway());
- stream.write('\u001b[0m');
- });
-
- runner.on('end', function() {
- cursor.show();
- console.log();
- self.epilogue();
- });
-}
-
-/**
- * Inherit from `Base.prototype`.
- */
-inherits(Landing, Base);
-
-}).call(this,require('_process'))
-},{"../utils":39,"./base":17,"_process":58}],27:[function(require,module,exports){
-(function (process){
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var inherits = require('../utils').inherits;
-var color = Base.color;
-var cursor = Base.cursor;
-
-/**
- * Expose `List`.
- */
-
-exports = module.exports = List;
-
-/**
- * Initialize a new `List` test reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function List(runner) {
- Base.call(this, runner);
-
- var self = this;
- var n = 0;
-
- runner.on('start', function() {
- console.log();
- });
-
- runner.on('test', function(test) {
- process.stdout.write(color('pass', ' ' + test.fullTitle() + ': '));
- });
-
- runner.on('pending', function(test) {
- var fmt = color('checkmark', ' -')
- + color('pending', ' %s');
- console.log(fmt, test.fullTitle());
- });
-
- runner.on('pass', function(test) {
- var fmt = color('checkmark', ' ' + Base.symbols.dot)
- + color('pass', ' %s: ')
- + color(test.speed, '%dms');
- cursor.CR();
- console.log(fmt, test.fullTitle(), test.duration);
- });
-
- runner.on('fail', function(test) {
- cursor.CR();
- console.log(color('fail', ' %d) %s'), ++n, test.fullTitle());
- });
-
- runner.on('end', self.epilogue.bind(self));
-}
-
-/**
- * Inherit from `Base.prototype`.
- */
-inherits(List, Base);
-
-}).call(this,require('_process'))
-},{"../utils":39,"./base":17,"_process":58}],28:[function(require,module,exports){
-(function (process){
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var utils = require('../utils');
-
-/**
- * Constants
- */
-
-var SUITE_PREFIX = '$';
-
-/**
- * Expose `Markdown`.
- */
-
-exports = module.exports = Markdown;
-
-/**
- * Initialize a new `Markdown` reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function Markdown(runner) {
- Base.call(this, runner);
-
- var level = 0;
- var buf = '';
-
- function title(str) {
- return Array(level).join('#') + ' ' + str;
- }
-
- function mapTOC(suite, obj) {
- var ret = obj;
- var key = SUITE_PREFIX + suite.title;
-
- obj = obj[key] = obj[key] || { suite: suite };
- suite.suites.forEach(function(suite) {
- mapTOC(suite, obj);
- });
-
- return ret;
- }
-
- function stringifyTOC(obj, level) {
- ++level;
- var buf = '';
- var link;
- for (var key in obj) {
- if (key === 'suite') {
- continue;
- }
- if (key !== SUITE_PREFIX) {
- link = ' - [' + key.substring(1) + ']';
- link += '(#' + utils.slug(obj[key].suite.fullTitle()) + ')\n';
- buf += Array(level).join(' ') + link;
- }
- buf += stringifyTOC(obj[key], level);
- }
- return buf;
- }
-
- function generateTOC(suite) {
- var obj = mapTOC(suite, {});
- return stringifyTOC(obj, 0);
- }
-
- generateTOC(runner.suite);
-
- runner.on('suite', function(suite) {
- ++level;
- var slug = utils.slug(suite.fullTitle());
- buf += '<a name="' + slug + '"></a>' + '\n';
- buf += title(suite.title) + '\n';
- });
-
- runner.on('suite end', function() {
- --level;
- });
-
- runner.on('pass', function(test) {
- var code = utils.clean(test.body);
- buf += test.title + '.\n';
- buf += '\n```js\n';
- buf += code + '\n';
- buf += '```\n\n';
- });
-
- runner.on('end', function() {
- process.stdout.write('# TOC\n');
- process.stdout.write(generateTOC(runner.suite));
- process.stdout.write(buf);
- });
-}
-
-}).call(this,require('_process'))
-},{"../utils":39,"./base":17,"_process":58}],29:[function(require,module,exports){
-(function (process){
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var inherits = require('../utils').inherits;
-
-/**
- * Expose `Min`.
- */
-
-exports = module.exports = Min;
-
-/**
- * Initialize a new `Min` minimal test reporter (best used with --watch).
- *
- * @api public
- * @param {Runner} runner
- */
-function Min(runner) {
- Base.call(this, runner);
-
- runner.on('start', function() {
- // clear screen
- process.stdout.write('\u001b[2J');
- // set cursor position
- process.stdout.write('\u001b[1;3H');
- });
-
- runner.on('end', this.epilogue.bind(this));
-}
-
-/**
- * Inherit from `Base.prototype`.
- */
-inherits(Min, Base);
-
-}).call(this,require('_process'))
-},{"../utils":39,"./base":17,"_process":58}],30:[function(require,module,exports){
-(function (process){
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var inherits = require('../utils').inherits;
-
-/**
- * Expose `Dot`.
- */
-
-exports = module.exports = NyanCat;
-
-/**
- * Initialize a new `Dot` matrix test reporter.
- *
- * @param {Runner} runner
- * @api public
- */
-
-function NyanCat(runner) {
- Base.call(this, runner);
-
- var self = this;
- var width = Base.window.width * .75 | 0;
- var nyanCatWidth = this.nyanCatWidth = 11;
-
- this.colorIndex = 0;
- this.numberOfLines = 4;
- this.rainbowColors = self.generateColors();
- this.scoreboardWidth = 5;
- this.tick = 0;
- this.trajectories = [[], [], [], []];
- this.trajectoryWidthMax = (width - nyanCatWidth);
-
- runner.on('start', function() {
- Base.cursor.hide();
- self.draw();
- });
-
- runner.on('pending', function() {
- self.draw();
- });
-
- runner.on('pass', function() {
- self.draw();
- });
-
- runner.on('fail', function() {
- self.draw();
- });
-
- runner.on('end', function() {
- Base.cursor.show();
- for (var i = 0; i < self.numberOfLines; i++) {
- write('\n');
- }
- self.epilogue();
- });
-}
-
-/**
- * Inherit from `Base.prototype`.
- */
-inherits(NyanCat, Base);
-
-/**
- * Draw the nyan cat
- *
- * @api private
- */
-
-NyanCat.prototype.draw = function() {
- this.appendRainbow();
- this.drawScoreboard();
- this.drawRainbow();
- this.drawNyanCat();
- this.tick = !this.tick;
-};
-
-/**
- * Draw the "scoreboard" showing the number
- * of passes, failures and pending tests.
- *
- * @api private
- */
-
-NyanCat.prototype.drawScoreboard = function() {
- var stats = this.stats;
-
- function draw(type, n) {
- write(' ');
- write(Base.color(type, n));
- write('\n');
- }
-
- draw('green', stats.passes);
- draw('fail', stats.failures);
- draw('pending', stats.pending);
- write('\n');
-
- this.cursorUp(this.numberOfLines);
-};
-
-/**
- * Append the rainbow.
- *
- * @api private
- */
-
-NyanCat.prototype.appendRainbow = function() {
- var segment = this.tick ? '_' : '-';
- var rainbowified = this.rainbowify(segment);
-
- for (var index = 0; index < this.numberOfLines; index++) {
- var trajectory = this.trajectories[index];
- if (trajectory.length >= this.trajectoryWidthMax) {
- trajectory.shift();
- }
- trajectory.push(rainbowified);
- }
-};
-
-/**
- * Draw the rainbow.
- *
- * @api private
- */
-
-NyanCat.prototype.drawRainbow = function() {
- var self = this;
-
- this.trajectories.forEach(function(line) {
- write('\u001b[' + self.scoreboardWidth + 'C');
- write(line.join(''));
- write('\n');
- });
-
- this.cursorUp(this.numberOfLines);
-};
-
-/**
- * Draw the nyan cat
- *
- * @api private
- */
-NyanCat.prototype.drawNyanCat = function() {
- var self = this;
- var startWidth = this.scoreboardWidth + this.trajectories[0].length;
- var dist = '\u001b[' + startWidth + 'C';
- var padding = '';
-
- write(dist);
- write('_,------,');
- write('\n');
-
- write(dist);
- padding = self.tick ? ' ' : ' ';
- write('_|' + padding + '/\\_/\\ ');
- write('\n');
-
- write(dist);
- padding = self.tick ? '_' : '__';
- var tail = self.tick ? '~' : '^';
- write(tail + '|' + padding + this.face() + ' ');
- write('\n');
-
- write(dist);
- padding = self.tick ? ' ' : ' ';
- write(padding + '"" "" ');
- write('\n');
-
- this.cursorUp(this.numberOfLines);
-};
-
-/**
- * Draw nyan cat face.
- *
- * @api private
- * @return {string}
- */
-
-NyanCat.prototype.face = function() {
- var stats = this.stats;
- if (stats.failures) {
- return '( x .x)';
- } else if (stats.pending) {
- return '( o .o)';
- } else if (stats.passes) {
- return '( ^ .^)';
- }
- return '( - .-)';
-};
-
-/**
- * Move cursor up `n`.
- *
- * @api private
- * @param {number} n
- */
-
-NyanCat.prototype.cursorUp = function(n) {
- write('\u001b[' + n + 'A');
-};
-
-/**
- * Move cursor down `n`.
- *
- * @api private
- * @param {number} n
- */
-
-NyanCat.prototype.cursorDown = function(n) {
- write('\u001b[' + n + 'B');
-};
-
-/**
- * Generate rainbow colors.
- *
- * @api private
- * @return {Array}
- */
-NyanCat.prototype.generateColors = function() {
- var colors = [];
-
- for (var i = 0; i < (6 * 7); i++) {
- var pi3 = Math.floor(Math.PI / 3);
- var n = (i * (1.0 / 6));
- var r = Math.floor(3 * Math.sin(n) + 3);
- var g = Math.floor(3 * Math.sin(n + 2 * pi3) + 3);
- var b = Math.floor(3 * Math.sin(n + 4 * pi3) + 3);
- colors.push(36 * r + 6 * g + b + 16);
- }
-
- return colors;
-};
-
-/**
- * Apply rainbow to the given `str`.
- *
- * @api private
- * @param {string} str
- * @return {string}
- */
-NyanCat.prototype.rainbowify = function(str) {
- if (!Base.useColors) {
- return str;
- }
- var color = this.rainbowColors[this.colorIndex % this.rainbowColors.length];
- this.colorIndex += 1;
- return '\u001b[38;5;' + color + 'm' + str + '\u001b[0m';
-};
-
-/**
- * Stdout helper.
- *
- * @param {string} string A message to write to stdout.
- */
-function write(string) {
- process.stdout.write(string);
-}
-
-}).call(this,require('_process'))
-},{"../utils":39,"./base":17,"_process":58}],31:[function(require,module,exports){
-(function (process){
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var inherits = require('../utils').inherits;
-var color = Base.color;
-var cursor = Base.cursor;
-
-/**
- * Expose `Progress`.
- */
-
-exports = module.exports = Progress;
-
-/**
- * General progress bar color.
- */
-
-Base.colors.progress = 90;
-
-/**
- * Initialize a new `Progress` bar test reporter.
- *
- * @api public
- * @param {Runner} runner
- * @param {Object} options
- */
-function Progress(runner, options) {
- Base.call(this, runner);
-
- var self = this;
- var width = Base.window.width * .50 | 0;
- var total = runner.total;
- var complete = 0;
- var lastN = -1;
-
- // default chars
- options = options || {};
- options.open = options.open || '[';
- options.complete = options.complete || 'â–¬';
- options.incomplete = options.incomplete || Base.symbols.dot;
- options.close = options.close || ']';
- options.verbose = false;
-
- // tests started
- runner.on('start', function() {
- console.log();
- cursor.hide();
- });
-
- // tests complete
- runner.on('test end', function() {
- complete++;
-
- var percent = complete / total;
- var n = width * percent | 0;
- var i = width - n;
-
- if (n === lastN && !options.verbose) {
- // Don't re-render the line if it hasn't changed
- return;
- }
- lastN = n;
-
- cursor.CR();
- process.stdout.write('\u001b[J');
- process.stdout.write(color('progress', ' ' + options.open));
- process.stdout.write(Array(n).join(options.complete));
- process.stdout.write(Array(i).join(options.incomplete));
- process.stdout.write(color('progress', options.close));
- if (options.verbose) {
- process.stdout.write(color('progress', ' ' + complete + ' of ' + total));
- }
- });
-
- // tests are complete, output some stats
- // and the failures if any
- runner.on('end', function() {
- cursor.show();
- console.log();
- self.epilogue();
- });
-}
-
-/**
- * Inherit from `Base.prototype`.
- */
-inherits(Progress, Base);
-
-}).call(this,require('_process'))
-},{"../utils":39,"./base":17,"_process":58}],32:[function(require,module,exports){
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var inherits = require('../utils').inherits;
-var color = Base.color;
-var cursor = Base.cursor;
-
-/**
- * Expose `Spec`.
- */
-
-exports = module.exports = Spec;
-
-/**
- * Initialize a new `Spec` test reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function Spec(runner) {
- Base.call(this, runner);
-
- var self = this;
- var indents = 0;
- var n = 0;
-
- function indent() {
- return Array(indents).join(' ');
- }
-
- runner.on('start', function() {
- console.log();
- });
-
- runner.on('suite', function(suite) {
- ++indents;
- console.log(color('suite', '%s%s'), indent(), suite.title);
- });
-
- runner.on('suite end', function() {
- --indents;
- if (indents === 1) {
- console.log();
- }
- });
-
- runner.on('pending', function(test) {
- var fmt = indent() + color('pending', ' - %s');
- console.log(fmt, test.title);
- });
-
- runner.on('pass', function(test) {
- var fmt;
- if (test.speed === 'fast') {
- fmt = indent()
- + color('checkmark', ' ' + Base.symbols.ok)
- + color('pass', ' %s');
- cursor.CR();
- console.log(fmt, test.title);
- } else {
- fmt = indent()
- + color('checkmark', ' ' + Base.symbols.ok)
- + color('pass', ' %s')
- + color(test.speed, ' (%dms)');
- cursor.CR();
- console.log(fmt, test.title, test.duration);
- }
- });
-
- runner.on('fail', function(test) {
- cursor.CR();
- console.log(indent() + color('fail', ' %d) %s'), ++n, test.title);
- });
-
- runner.on('end', self.epilogue.bind(self));
-}
-
-/**
- * Inherit from `Base.prototype`.
- */
-inherits(Spec, Base);
-
-},{"../utils":39,"./base":17}],33:[function(require,module,exports){
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-
-/**
- * Expose `TAP`.
- */
-
-exports = module.exports = TAP;
-
-/**
- * Initialize a new `TAP` reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function TAP(runner) {
- Base.call(this, runner);
-
- var n = 1;
- var passes = 0;
- var failures = 0;
-
- runner.on('start', function() {
- var total = runner.grepTotal(runner.suite);
- console.log('%d..%d', 1, total);
- });
-
- runner.on('test end', function() {
- ++n;
- });
-
- runner.on('pending', function(test) {
- console.log('ok %d %s # SKIP -', n, title(test));
- });
-
- runner.on('pass', function(test) {
- passes++;
- console.log('ok %d %s', n, title(test));
- });
-
- runner.on('fail', function(test, err) {
- failures++;
- console.log('not ok %d %s', n, title(test));
- if (err.stack) {
- console.log(err.stack.replace(/^/gm, ' '));
- }
- });
-
- runner.on('end', function() {
- console.log('# tests ' + (passes + failures));
- console.log('# pass ' + passes);
- console.log('# fail ' + failures);
- });
-}
-
-/**
- * Return a TAP-safe title of `test`
- *
- * @api private
- * @param {Object} test
- * @return {String}
- */
-function title(test) {
- return test.fullTitle().replace(/#/g, '');
-}
-
-},{"./base":17}],34:[function(require,module,exports){
-(function (process,global){
-/**
- * Module dependencies.
- */
-
-var Base = require('./base');
-var utils = require('../utils');
-var inherits = utils.inherits;
-var fs = require('fs');
-var escape = utils.escape;
-var mkdirp = require('mkdirp');
-var path = require('path');
-
-/**
- * Save timer references to avoid Sinon interfering (see GH-237).
- */
-
-/* eslint-disable no-unused-vars, no-native-reassign */
-var Date = global.Date;
-var setTimeout = global.setTimeout;
-var setInterval = global.setInterval;
-var clearTimeout = global.clearTimeout;
-var clearInterval = global.clearInterval;
-/* eslint-enable no-unused-vars, no-native-reassign */
-
-/**
- * Expose `XUnit`.
- */
-
-exports = module.exports = XUnit;
-
-/**
- * Initialize a new `XUnit` reporter.
- *
- * @api public
- * @param {Runner} runner
- */
-function XUnit(runner, options) {
- Base.call(this, runner);
-
- var stats = this.stats;
- var tests = [];
- var self = this;
-
- if (options.reporterOptions && options.reporterOptions.output) {
- if (!fs.createWriteStream) {
- throw new Error('file output not supported in browser');
- }
- mkdirp.sync(path.dirname(options.reporterOptions.output));
- self.fileStream = fs.createWriteStream(options.reporterOptions.output);
- }
-
- runner.on('pending', function(test) {
- tests.push(test);
- });
-
- runner.on('pass', function(test) {
- tests.push(test);
- });
-
- runner.on('fail', function(test) {
- tests.push(test);
- });
-
- runner.on('end', function() {
- self.write(tag('testsuite', {
- name: 'Mocha Tests',
- tests: stats.tests,
- failures: stats.failures,
- errors: stats.failures,
- skipped: stats.tests - stats.failures - stats.passes,
- timestamp: (new Date()).toUTCString(),
- time: (stats.duration / 1000) || 0
- }, false));
-
- tests.forEach(function(t) {
- self.test(t);
- });
-
- self.write('</testsuite>');
- });
-}
-
-/**
- * Inherit from `Base.prototype`.
- */
-inherits(XUnit, Base);
-
-/**
- * Override done to close the stream (if it's a file).
- *
- * @param failures
- * @param {Function} fn
- */
-XUnit.prototype.done = function(failures, fn) {
- if (this.fileStream) {
- this.fileStream.end(function() {
- fn(failures);
- });
- } else {
- fn(failures);
- }
-};
-
-/**
- * Write out the given line.
- *
- * @param {string} line
- */
-XUnit.prototype.write = function(line) {
- if (this.fileStream) {
- this.fileStream.write(line + '\n');
- } else if (typeof process === 'object' && process.stdout) {
- process.stdout.write(line + '\n');
- } else {
- console.log(line);
- }
-};
-
-/**
- * Output tag for the given `test.`
- *
- * @param {Test} test
- */
-XUnit.prototype.test = function(test) {
- var attrs = {
- classname: test.parent.fullTitle(),
- name: test.title,
- time: (test.duration / 1000) || 0
- };
-
- if (test.state === 'failed') {
- var err = test.err;
- this.write(tag('testcase', attrs, false, tag('failure', {}, false, escape(err.message) + '\n' + escape(err.stack))));
- } else if (test.isPending()) {
- this.write(tag('testcase', attrs, false, tag('skipped', {}, true)));
- } else {
- this.write(tag('testcase', attrs, true));
- }
-};
-
-/**
- * HTML tag helper.
- *
- * @param name
- * @param attrs
- * @param close
- * @param content
- * @return {string}
- */
-function tag(name, attrs, close, content) {
- var end = close ? '/>' : '>';
- var pairs = [];
- var tag;
-
- for (var key in attrs) {
- if (Object.prototype.hasOwnProperty.call(attrs, key)) {
- pairs.push(key + '="' + escape(attrs[key]) + '"');
- }
- }
-
- tag = '<' + name + (pairs.length ? ' ' + pairs.join(' ') : '') + end;
- if (content) {
- tag += content + '</' + name + end;
- }
- return tag;
-}
-
-}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"../utils":39,"./base":17,"_process":58,"fs":43,"mkdirp":55,"path":43}],35:[function(require,module,exports){
-(function (global){
-/**
- * Module dependencies.
- */
-
-var EventEmitter = require('events').EventEmitter;
-var Pending = require('./pending');
-var debug = require('debug')('mocha:runnable');
-var milliseconds = require('./ms');
-var utils = require('./utils');
-var inherits = utils.inherits;
-
-/**
- * Save timer references to avoid Sinon interfering (see GH-237).
- */
-
-/* eslint-disable no-unused-vars, no-native-reassign */
-var Date = global.Date;
-var setTimeout = global.setTimeout;
-var setInterval = global.setInterval;
-var clearTimeout = global.clearTimeout;
-var clearInterval = global.clearInterval;
-/* eslint-enable no-unused-vars, no-native-reassign */
-
-/**
- * Object#toString().
- */
-
-var toString = Object.prototype.toString;
-
-/**
- * Expose `Runnable`.
- */
-
-module.exports = Runnable;
-
-/**
- * Initialize a new `Runnable` with the given `title` and callback `fn`.
- *
- * @param {String} title
- * @param {Function} fn
- * @api private
- * @param {string} title
- * @param {Function} fn
- */
-function Runnable(title, fn) {
- this.title = title;
- this.fn = fn;
- this.body = (fn || '').toString();
- this.async = fn && fn.length;
- this.sync = !this.async;
- this._timeout = 2000;
- this._slow = 75;
- this._enableTimeouts = true;
- this.timedOut = false;
- this._trace = new Error('done() called multiple times');
- this._retries = -1;
- this._currentRetry = 0;
- this.pending = false;
-}
-
-/**
- * Inherit from `EventEmitter.prototype`.
- */
-inherits(Runnable, EventEmitter);
-
-/**
- * Set & get timeout `ms`.
- *
- * @api private
- * @param {number|string} ms
- * @return {Runnable|number} ms or Runnable instance.
- */
-Runnable.prototype.timeout = function(ms) {
- if (!arguments.length) {
- return this._timeout;
- }
- if (ms === 0) {
- this._enableTimeouts = false;
- }
- if (typeof ms === 'string') {
- ms = milliseconds(ms);
- }
- debug('timeout %d', ms);
- this._timeout = ms;
- if (this.timer) {
- this.resetTimeout();
- }
- return this;
-};
-
-/**
- * Set & get slow `ms`.
- *
- * @api private
- * @param {number|string} ms
- * @return {Runnable|number} ms or Runnable instance.
- */
-Runnable.prototype.slow = function(ms) {
- if (!arguments.length) {
- return this._slow;
- }
- if (typeof ms === 'string') {
- ms = milliseconds(ms);
- }
- debug('timeout %d', ms);
- this._slow = ms;
- return this;
-};
-
-/**
- * Set and get whether timeout is `enabled`.
- *
- * @api private
- * @param {boolean} enabled
- * @return {Runnable|boolean} enabled or Runnable instance.
- */
-Runnable.prototype.enableTimeouts = function(enabled) {
- if (!arguments.length) {
- return this._enableTimeouts;
- }
- debug('enableTimeouts %s', enabled);
- this._enableTimeouts = enabled;
- return this;
-};
-
-/**
- * Halt and mark as pending.
- *
- * @api public
- */
-Runnable.prototype.skip = function() {
- throw new Pending();
-};
-
-/**
- * Check if this runnable or its parent suite is marked as pending.
- *
- * @api private
- */
-Runnable.prototype.isPending = function() {
- return this.pending || (this.parent && this.parent.isPending());
-};
-
-/**
- * Set number of retries.
- *
- * @api private
- */
-Runnable.prototype.retries = function(n) {
- if (!arguments.length) {
- return this._retries;
- }
- this._retries = n;
-};
-
-/**
- * Get current retry
- *
- * @api private
- */
-Runnable.prototype.currentRetry = function(n) {
- if (!arguments.length) {
- return this._currentRetry;
- }
- this._currentRetry = n;
-};
-
-/**
- * Return the full title generated by recursively concatenating the parent's
- * full title.
- *
- * @api public
- * @return {string}
- */
-Runnable.prototype.fullTitle = function() {
- return this.parent.fullTitle() + ' ' + this.title;
-};
-
-/**
- * Clear the timeout.
- *
- * @api private
- */
-Runnable.prototype.clearTimeout = function() {
- clearTimeout(this.timer);
-};
-
-/**
- * Inspect the runnable void of private properties.
- *
- * @api private
- * @return {string}
- */
-Runnable.prototype.inspect = function() {
- return JSON.stringify(this, function(key, val) {
- if (key[0] === '_') {
- return;
- }
- if (key === 'parent') {
- return '#<Suite>';
- }
- if (key === 'ctx') {
- return '#<Context>';
- }
- return val;
- }, 2);
-};
-
-/**
- * Reset the timeout.
- *
- * @api private
- */
-Runnable.prototype.resetTimeout = function() {
- var self = this;
- var ms = this.timeout() || 1e9;
-
- if (!this._enableTimeouts) {
- return;
- }
- this.clearTimeout();
- this.timer = setTimeout(function() {
- if (!self._enableTimeouts) {
- return;
- }
- self.callback(new Error('timeout of ' + ms + 'ms exceeded. Ensure the done() callback is being called in this test.'));
- self.timedOut = true;
- }, ms);
-};
-
-/**
- * Whitelist a list of globals for this test run.
- *
- * @api private
- * @param {string[]} globals
- */
-Runnable.prototype.globals = function(globals) {
- if (!arguments.length) {
- return this._allowedGlobals;
- }
- this._allowedGlobals = globals;
-};
-
-/**
- * Run the test and invoke `fn(err)`.
- *
- * @param {Function} fn
- * @api private
- */
-Runnable.prototype.run = function(fn) {
- var self = this;
- var start = new Date();
- var ctx = this.ctx;
- var finished;
- var emitted;
-
- // Sometimes the ctx exists, but it is not runnable
- if (ctx && ctx.runnable) {
- ctx.runnable(this);
- }
-
- // called multiple times
- function multiple(err) {
- if (emitted) {
- return;
- }
- emitted = true;
- self.emit('error', err || new Error('done() called multiple times; stacktrace may be inaccurate'));
- }
-
- // finished
- function done(err) {
- var ms = self.timeout();
- if (self.timedOut) {
- return;
- }
- if (finished) {
- return multiple(err || self._trace);
- }
-
- self.clearTimeout();
- self.duration = new Date() - start;
- finished = true;
- if (!err && self.duration > ms && self._enableTimeouts) {
- err = new Error('timeout of ' + ms + 'ms exceeded. Ensure the done() callback is being called in this test.');
- }
- fn(err);
- }
-
- // for .resetTimeout()
- this.callback = done;
-
- // explicit async with `done` argument
- if (this.async) {
- this.resetTimeout();
-
- if (this.allowUncaught) {
- return callFnAsync(this.fn);
- }
- try {
- callFnAsync(this.fn);
- } catch (err) {
- done(utils.getError(err));
- }
- return;
- }
-
- if (this.allowUncaught) {
- callFn(this.fn);
- done();
- return;
- }
-
- // sync or promise-returning
- try {
- if (this.isPending()) {
- done();
- } else {
- callFn(this.fn);
- }
- } catch (err) {
- done(utils.getError(err));
- }
-
- function callFn(fn) {
- var result = fn.call(ctx);
- if (result && typeof result.then === 'function') {
- self.resetTimeout();
- result
- .then(function() {
- done();
- // Return null so libraries like bluebird do not warn about
- // subsequently constructed Promises.
- return null;
- },
- function(reason) {
- done(reason || new Error('Promise rejected with no or falsy reason'));
- });
- } else {
- if (self.asyncOnly) {
- return done(new Error('--async-only option in use without declaring `done()` or returning a promise'));
- }
-
- done();
- }
- }
-
- function callFnAsync(fn) {
- fn.call(ctx, function(err) {
- if (err instanceof Error || toString.call(err) === '[object Error]') {
- return done(err);
- }
- if (err) {
- if (Object.prototype.toString.call(err) === '[object Object]') {
- return done(new Error('done() invoked with non-Error: '
- + JSON.stringify(err)));
- }
- return done(new Error('done() invoked with non-Error: ' + err));
- }
- done();
- });
- }
-};
-
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"./ms":15,"./pending":16,"./utils":39,"debug":2,"events":3}],36:[function(require,module,exports){
-(function (process,global){
-/**
- * Module dependencies.
- */
-
-var EventEmitter = require('events').EventEmitter;
-var Pending = require('./pending');
-var utils = require('./utils');
-var inherits = utils.inherits;
-var debug = require('debug')('mocha:runner');
-var Runnable = require('./runnable');
-var filter = utils.filter;
-var indexOf = utils.indexOf;
-var keys = utils.keys;
-var stackFilter = utils.stackTraceFilter();
-var stringify = utils.stringify;
-var type = utils.type;
-var undefinedError = utils.undefinedError;
-var isArray = utils.isArray;
-
-/**
- * Non-enumerable globals.
- */
-
-var globals = [
- 'setTimeout',
- 'clearTimeout',
- 'setInterval',
- 'clearInterval',
- 'XMLHttpRequest',
- 'Date',
- 'setImmediate',
- 'clearImmediate'
-];
-
-/**
- * Expose `Runner`.
- */
-
-module.exports = Runner;
-
-/**
- * Initialize a `Runner` for the given `suite`.
- *
- * Events:
- *
- * - `start` execution started
- * - `end` execution complete
- * - `suite` (suite) test suite execution started
- * - `suite end` (suite) all tests (and sub-suites) have finished
- * - `test` (test) test execution started
- * - `test end` (test) test completed
- * - `hook` (hook) hook execution started
- * - `hook end` (hook) hook complete
- * - `pass` (test) test passed
- * - `fail` (test, err) test failed
- * - `pending` (test) test pending
- *
- * @api public
- * @param {Suite} suite Root suite
- * @param {boolean} [delay] Whether or not to delay execution of root suite
- * until ready.
- */
-function Runner(suite, delay) {
- var self = this;
- this._globals = [];
- this._abort = false;
- this._delay = delay;
- this.suite = suite;
- this.started = false;
- this.total = suite.total();
- this.failures = 0;
- this.on('test end', function(test) {
- self.checkGlobals(test);
- });
- this.on('hook end', function(hook) {
- self.checkGlobals(hook);
- });
- this._defaultGrep = /.*/;
- this.grep(this._defaultGrep);
- this.globals(this.globalProps().concat(extraGlobals()));
-}
-
-/**
- * Wrapper for setImmediate, process.nextTick, or browser polyfill.
- *
- * @param {Function} fn
- * @api private
- */
-Runner.immediately = global.setImmediate || process.nextTick;
-
-/**
- * Inherit from `EventEmitter.prototype`.
- */
-inherits(Runner, EventEmitter);
-
-/**
- * Run tests with full titles matching `re`. Updates runner.total
- * with number of tests matched.
- *
- * @param {RegExp} re
- * @param {Boolean} invert
- * @return {Runner} for chaining
- * @api public
- * @param {RegExp} re
- * @param {boolean} invert
- * @return {Runner} Runner instance.
- */
-Runner.prototype.grep = function(re, invert) {
- debug('grep %s', re);
- this._grep = re;
- this._invert = invert;
- this.total = this.grepTotal(this.suite);
- return this;
-};
-
-/**
- * Returns the number of tests matching the grep search for the
- * given suite.
- *
- * @param {Suite} suite
- * @return {Number}
- * @api public
- * @param {Suite} suite
- * @return {number}
- */
-Runner.prototype.grepTotal = function(suite) {
- var self = this;
- var total = 0;
-
- suite.eachTest(function(test) {
- var match = self._grep.test(test.fullTitle());
- if (self._invert) {
- match = !match;
- }
- if (match) {
- total++;
- }
- });
-
- return total;
-};
-
-/**
- * Return a list of global properties.
- *
- * @return {Array}
- * @api private
- */
-Runner.prototype.globalProps = function() {
- var props = keys(global);
-
- // non-enumerables
- for (var i = 0; i < globals.length; ++i) {
- if (~indexOf(props, globals[i])) {
- continue;
- }
- props.push(globals[i]);
- }
-
- return props;
-};
-
-/**
- * Allow the given `arr` of globals.
- *
- * @param {Array} arr
- * @return {Runner} for chaining
- * @api public
- * @param {Array} arr
- * @return {Runner} Runner instance.
- */
-Runner.prototype.globals = function(arr) {
- if (!arguments.length) {
- return this._globals;
- }
- debug('globals %j', arr);
- this._globals = this._globals.concat(arr);
- return this;
-};
-
-/**
- * Check for global variable leaks.
- *
- * @api private
- */
-Runner.prototype.checkGlobals = function(test) {
- if (this.ignoreLeaks) {
- return;
- }
- var ok = this._globals;
-
- var globals = this.globalProps();
- var leaks;
-
- if (test) {
- ok = ok.concat(test._allowedGlobals || []);
- }
-
- if (this.prevGlobalsLength === globals.length) {
- return;
- }
- this.prevGlobalsLength = globals.length;
-
- leaks = filterLeaks(ok, globals);
- this._globals = this._globals.concat(leaks);
-
- if (leaks.length > 1) {
- this.fail(test, new Error('global leaks detected: ' + leaks.join(', ') + ''));
- } else if (leaks.length) {
- this.fail(test, new Error('global leak detected: ' + leaks[0]));
- }
-};
-
-/**
- * Fail the given `test`.
- *
- * @api private
- * @param {Test} test
- * @param {Error} err
- */
-Runner.prototype.fail = function(test, err) {
- ++this.failures;
- test.state = 'failed';
-
- if (!(err instanceof Error || err && typeof err.message === 'string')) {
- err = new Error('the ' + type(err) + ' ' + stringify(err) + ' was thrown, throw an Error :)');
- }
-
- err.stack = (this.fullStackTrace || !err.stack)
- ? err.stack
- : stackFilter(err.stack);
-
- this.emit('fail', test, err);
-};
-
-/**
- * Fail the given `hook` with `err`.
- *
- * Hook failures work in the following pattern:
- * - If bail, then exit
- * - Failed `before` hook skips all tests in a suite and subsuites,
- * but jumps to corresponding `after` hook
- * - Failed `before each` hook skips remaining tests in a
- * suite and jumps to corresponding `after each` hook,
- * which is run only once
- * - Failed `after` hook does not alter
- * execution order
- * - Failed `after each` hook skips remaining tests in a
- * suite and subsuites, but executes other `after each`
- * hooks
- *
- * @api private
- * @param {Hook} hook
- * @param {Error} err
- */
-Runner.prototype.failHook = function(hook, err) {
- if (hook.ctx && hook.ctx.currentTest) {
- hook.originalTitle = hook.originalTitle || hook.title;
- hook.title = hook.originalTitle + ' for "' + hook.ctx.currentTest.title + '"';
- }
-
- this.fail(hook, err);
- if (this.suite.bail()) {
- this.emit('end');
- }
-};
-
-/**
- * Run hook `name` callbacks and then invoke `fn()`.
- *
- * @api private
- * @param {string} name
- * @param {Function} fn
- */
-
-Runner.prototype.hook = function(name, fn) {
- var suite = this.suite;
- var hooks = suite['_' + name];
- var self = this;
-
- function next(i) {
- var hook = hooks[i];
- if (!hook) {
- return fn();
- }
- self.currentRunnable = hook;
-
- hook.ctx.currentTest = self.test;
-
- self.emit('hook', hook);
-
- if (!hook.listeners('error').length) {
- hook.on('error', function(err) {
- self.failHook(hook, err);
- });
- }
-
- hook.run(function(err) {
- var testError = hook.error();
- if (testError) {
- self.fail(self.test, testError);
- }
- if (err) {
- if (err instanceof Pending) {
- suite.pending = true;
- } else {
- self.failHook(hook, err);
-
- // stop executing hooks, notify callee of hook err
- return fn(err);
- }
- }
- self.emit('hook end', hook);
- delete hook.ctx.currentTest;
- next(++i);
- });
- }
-
- Runner.immediately(function() {
- next(0);
- });
-};
-
-/**
- * Run hook `name` for the given array of `suites`
- * in order, and callback `fn(err, errSuite)`.
- *
- * @api private
- * @param {string} name
- * @param {Array} suites
- * @param {Function} fn
- */
-Runner.prototype.hooks = function(name, suites, fn) {
- var self = this;
- var orig = this.suite;
-
- function next(suite) {
- self.suite = suite;
-
- if (!suite) {
- self.suite = orig;
- return fn();
- }
-
- self.hook(name, function(err) {
- if (err) {
- var errSuite = self.suite;
- self.suite = orig;
- return fn(err, errSuite);
- }
-
- next(suites.pop());
- });
- }
-
- next(suites.pop());
-};
-
-/**
- * Run hooks from the top level down.
- *
- * @param {String} name
- * @param {Function} fn
- * @api private
- */
-Runner.prototype.hookUp = function(name, fn) {
- var suites = [this.suite].concat(this.parents()).reverse();
- this.hooks(name, suites, fn);
-};
-
-/**
- * Run hooks from the bottom up.
- *
- * @param {String} name
- * @param {Function} fn
- * @api private
- */
-Runner.prototype.hookDown = function(name, fn) {
- var suites = [this.suite].concat(this.parents());
- this.hooks(name, suites, fn);
-};
-
-/**
- * Return an array of parent Suites from
- * closest to furthest.
- *
- * @return {Array}
- * @api private
- */
-Runner.prototype.parents = function() {
- var suite = this.suite;
- var suites = [];
- while (suite.parent) {
- suite = suite.parent;
- suites.push(suite);
- }
- return suites;
-};
-
-/**
- * Run the current test and callback `fn(err)`.
- *
- * @param {Function} fn
- * @api private
- */
-Runner.prototype.runTest = function(fn) {
- var self = this;
- var test = this.test;
-
- if (this.asyncOnly) {
- test.asyncOnly = true;
- }
-
- if (this.allowUncaught) {
- test.allowUncaught = true;
- return test.run(fn);
- }
- try {
- test.on('error', function(err) {
- self.fail(test, err);
- });
- test.run(fn);
- } catch (err) {
- fn(err);
- }
-};
-
-/**
- * Run tests in the given `suite` and invoke the callback `fn()` when complete.
- *
- * @api private
- * @param {Suite} suite
- * @param {Function} fn
- */
-Runner.prototype.runTests = function(suite, fn) {
- var self = this;
- var tests = suite.tests.slice();
- var test;
-
- function hookErr(_, errSuite, after) {
- // before/after Each hook for errSuite failed:
- var orig = self.suite;
-
- // for failed 'after each' hook start from errSuite parent,
- // otherwise start from errSuite itself
- self.suite = after ? errSuite.parent : errSuite;
-
- if (self.suite) {
- // call hookUp afterEach
- self.hookUp('afterEach', function(err2, errSuite2) {
- self.suite = orig;
- // some hooks may fail even now
- if (err2) {
- return hookErr(err2, errSuite2, true);
- }
- // report error suite
- fn(errSuite);
- });
- } else {
- // there is no need calling other 'after each' hooks
- self.suite = orig;
- fn(errSuite);
- }
- }
-
- function next(err, errSuite) {
- // if we bail after first err
- if (self.failures && suite._bail) {
- return fn();
- }
-
- if (self._abort) {
- return fn();
- }
-
- if (err) {
- return hookErr(err, errSuite, true);
- }
-
- // next test
- test = tests.shift();
-
- // all done
- if (!test) {
- return fn();
- }
-
- // grep
- var match = self._grep.test(test.fullTitle());
- if (self._invert) {
- match = !match;
- }
- if (!match) {
- // Run immediately only if we have defined a grep. When we
- // define a grep — It can cause maximum callstack error if
- // the grep is doing a large recursive loop by neglecting
- // all tests. The run immediately function also comes with
- // a performance cost. So we don't want to run immediately
- // if we run the whole test suite, because running the whole
- // test suite don't do any immediate recursive loops. Thus,
- // allowing a JS runtime to breathe.
- if (self._grep !== self._defaultGrep) {
- Runner.immediately(next);
- } else {
- next();
- }
- return;
- }
-
- if (test.isPending()) {
- self.emit('pending', test);
- self.emit('test end', test);
- return next();
- }
-
- // execute test and hook(s)
- self.emit('test', self.test = test);
- self.hookDown('beforeEach', function(err, errSuite) {
- if (suite.isPending()) {
- self.emit('pending', test);
- self.emit('test end', test);
- return next();
- }
- if (err) {
- return hookErr(err, errSuite, false);
- }
- self.currentRunnable = self.test;
- self.runTest(function(err) {
- test = self.test;
- if (err) {
- var retry = test.currentRetry();
- if (err instanceof Pending) {
- test.pending = true;
- self.emit('pending', test);
- } else if (retry < test.retries()) {
- var clonedTest = test.clone();
- clonedTest.currentRetry(retry + 1);
- tests.unshift(clonedTest);
-
- // Early return + hook trigger so that it doesn't
- // increment the count wrong
- return self.hookUp('afterEach', next);
- } else {
- self.fail(test, err);
- }
- self.emit('test end', test);
-
- if (err instanceof Pending) {
- return next();
- }
-
- return self.hookUp('afterEach', next);
- }
-
- test.state = 'passed';
- self.emit('pass', test);
- self.emit('test end', test);
- self.hookUp('afterEach', next);
- });
- });
- }
-
- this.next = next;
- this.hookErr = hookErr;
- next();
-};
-
-/**
- * Run the given `suite` and invoke the callback `fn()` when complete.
- *
- * @api private
- * @param {Suite} suite
- * @param {Function} fn
- */
-Runner.prototype.runSuite = function(suite, fn) {
- var i = 0;
- var self = this;
- var total = this.grepTotal(suite);
- var afterAllHookCalled = false;
-
- debug('run suite %s', suite.fullTitle());
-
- if (!total || (self.failures && suite._bail)) {
- return fn();
- }
-
- this.emit('suite', this.suite = suite);
-
- function next(errSuite) {
- if (errSuite) {
- // current suite failed on a hook from errSuite
- if (errSuite === suite) {
- // if errSuite is current suite
- // continue to the next sibling suite
- return done();
- }
- // errSuite is among the parents of current suite
- // stop execution of errSuite and all sub-suites
- return done(errSuite);
- }
-
- if (self._abort) {
- return done();
- }
-
- var curr = suite.suites[i++];
- if (!curr) {
- return done();
- }
-
- // Avoid grep neglecting large number of tests causing a
- // huge recursive loop and thus a maximum call stack error.
- // See comment in `this.runTests()` for more information.
- if (self._grep !== self._defaultGrep) {
- Runner.immediately(function() {
- self.runSuite(curr, next);
- });
- } else {
- self.runSuite(curr, next);
- }
- }
-
- function done(errSuite) {
- self.suite = suite;
- self.nextSuite = next;
-
- if (afterAllHookCalled) {
- fn(errSuite);
- } else {
- // mark that the afterAll block has been called once
- // and so can be skipped if there is an error in it.
- afterAllHookCalled = true;
-
- // remove reference to test
- delete self.test;
-
- self.hook('afterAll', function() {
- self.emit('suite end', suite);
- fn(errSuite);
- });
- }
- }
-
- this.nextSuite = next;
-
- this.hook('beforeAll', function(err) {
- if (err) {
- return done();
- }
- self.runTests(suite, next);
- });
-};
-
-/**
- * Handle uncaught exceptions.
- *
- * @param {Error} err
- * @api private
- */
-Runner.prototype.uncaught = function(err) {
- if (err) {
- debug('uncaught exception %s', err !== function() {
- return this;
- }.call(err) ? err : (err.message || err));
- } else {
- debug('uncaught undefined exception');
- err = undefinedError();
- }
- err.uncaught = true;
-
- var runnable = this.currentRunnable;
-
- if (!runnable) {
- runnable = new Runnable('Uncaught error outside test suite');
- runnable.parent = this.suite;
-
- if (this.started) {
- this.fail(runnable, err);
- } else {
- // Can't recover from this failure
- this.emit('start');
- this.fail(runnable, err);
- this.emit('end');
- }
-
- return;
- }
-
- runnable.clearTimeout();
-
- // Ignore errors if complete
- if (runnable.state) {
- return;
- }
- this.fail(runnable, err);
-
- // recover from test
- if (runnable.type === 'test') {
- this.emit('test end', runnable);
- this.hookUp('afterEach', this.next);
- return;
- }
-
- // recover from hooks
- if (runnable.type === 'hook') {
- var errSuite = this.suite;
- // if hook failure is in afterEach block
- if (runnable.fullTitle().indexOf('after each') > -1) {
- return this.hookErr(err, errSuite, true);
- }
- // if hook failure is in beforeEach block
- if (runnable.fullTitle().indexOf('before each') > -1) {
- return this.hookErr(err, errSuite, false);
- }
- // if hook failure is in after or before blocks
- return this.nextSuite(errSuite);
- }
-
- // bail
- this.emit('end');
-};
-
-/**
- * Cleans up the references to all the deferred functions
- * (before/after/beforeEach/afterEach) and tests of a Suite.
- * These must be deleted otherwise a memory leak can happen,
- * as those functions may reference variables from closures,
- * thus those variables can never be garbage collected as long
- * as the deferred functions exist.
- *
- * @param {Suite} suite
- */
-function cleanSuiteReferences(suite) {
- function cleanArrReferences(arr) {
- for (var i = 0; i < arr.length; i++) {
- delete arr[i].fn;
- }
- }
-
- if (isArray(suite._beforeAll)) {
- cleanArrReferences(suite._beforeAll);
- }
-
- if (isArray(suite._beforeEach)) {
- cleanArrReferences(suite._beforeEach);
- }
-
- if (isArray(suite._afterAll)) {
- cleanArrReferences(suite._afterAll);
- }
-
- if (isArray(suite._afterEach)) {
- cleanArrReferences(suite._afterEach);
- }
-
- for (var i = 0; i < suite.tests.length; i++) {
- delete suite.tests[i].fn;
- }
-}
-
-/**
- * Run the root suite and invoke `fn(failures)`
- * on completion.
- *
- * @param {Function} fn
- * @return {Runner} for chaining
- * @api public
- * @param {Function} fn
- * @return {Runner} Runner instance.
- */
-Runner.prototype.run = function(fn) {
- var self = this;
- var rootSuite = this.suite;
-
- fn = fn || function() {};
-
- function uncaught(err) {
- self.uncaught(err);
- }
-
- function start() {
- self.started = true;
- self.emit('start');
- self.runSuite(rootSuite, function() {
- debug('finished running');
- self.emit('end');
- });
- }
-
- debug('start');
-
- // references cleanup to avoid memory leaks
- this.on('suite end', cleanSuiteReferences);
-
- // callback
- this.on('end', function() {
- debug('end');
- process.removeListener('uncaughtException', uncaught);
- fn(self.failures);
- });
-
- // uncaught exception
- process.on('uncaughtException', uncaught);
-
- if (this._delay) {
- // for reporters, I guess.
- // might be nice to debounce some dots while we wait.
- this.emit('waiting', rootSuite);
- rootSuite.once('run', start);
- } else {
- start();
- }
-
- return this;
-};
-
-/**
- * Cleanly abort execution.
- *
- * @api public
- * @return {Runner} Runner instance.
- */
-Runner.prototype.abort = function() {
- debug('aborting');
- this._abort = true;
-
- return this;
-};
-
-/**
- * Filter leaks with the given globals flagged as `ok`.
- *
- * @api private
- * @param {Array} ok
- * @param {Array} globals
- * @return {Array}
- */
-function filterLeaks(ok, globals) {
- return filter(globals, function(key) {
- // Firefox and Chrome exposes iframes as index inside the window object
- if (/^d+/.test(key)) {
- return false;
- }
-
- // in firefox
- // if runner runs in an iframe, this iframe's window.getInterface method not init at first
- // it is assigned in some seconds
- if (global.navigator && (/^getInterface/).test(key)) {
- return false;
- }
-
- // an iframe could be approached by window[iframeIndex]
- // in ie6,7,8 and opera, iframeIndex is enumerable, this could cause leak
- if (global.navigator && (/^\d+/).test(key)) {
- return false;
- }
-
- // Opera and IE expose global variables for HTML element IDs (issue #243)
- if (/^mocha-/.test(key)) {
- return false;
- }
-
- var matched = filter(ok, function(ok) {
- if (~ok.indexOf('*')) {
- return key.indexOf(ok.split('*')[0]) === 0;
- }
- return key === ok;
- });
- return !matched.length && (!global.navigator || key !== 'onerror');
- });
-}
-
-/**
- * Array of globals dependent on the environment.
- *
- * @return {Array}
- * @api private
- */
-function extraGlobals() {
- if (typeof process === 'object' && typeof process.version === 'string') {
- var parts = process.version.split('.');
- var nodeVersion = utils.reduce(parts, function(a, v) {
- return a << 8 | v;
- });
-
- // 'errno' was renamed to process._errno in v0.9.11.
-
- if (nodeVersion < 0x00090B) {
- return ['errno'];
- }
- }
-
- return [];
-}
-
-}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"./pending":16,"./runnable":35,"./utils":39,"_process":58,"debug":2,"events":3}],37:[function(require,module,exports){
-/**
- * Module dependencies.
- */
-
-var EventEmitter = require('events').EventEmitter;
-var Hook = require('./hook');
-var utils = require('./utils');
-var inherits = utils.inherits;
-var debug = require('debug')('mocha:suite');
-var milliseconds = require('./ms');
-
-/**
- * Expose `Suite`.
- */
-
-exports = module.exports = Suite;
-
-/**
- * Create a new `Suite` with the given `title` and parent `Suite`. When a suite
- * with the same title is already present, that suite is returned to provide
- * nicer reporter and more flexible meta-testing.
- *
- * @api public
- * @param {Suite} parent
- * @param {string} title
- * @return {Suite}
- */
-exports.create = function(parent, title) {
- var suite = new Suite(title, parent.ctx);
- suite.parent = parent;
- title = suite.fullTitle();
- parent.addSuite(suite);
- return suite;
-};
-
-/**
- * Initialize a new `Suite` with the given `title` and `ctx`.
- *
- * @api private
- * @param {string} title
- * @param {Context} parentContext
- */
-function Suite(title, parentContext) {
- this.title = title;
- function Context() {}
- Context.prototype = parentContext;
- this.ctx = new Context();
- this.suites = [];
- this.tests = [];
- this.pending = false;
- this._beforeEach = [];
- this._beforeAll = [];
- this._afterEach = [];
- this._afterAll = [];
- this.root = !title;
- this._timeout = 2000;
- this._enableTimeouts = true;
- this._slow = 75;
- this._bail = false;
- this._retries = -1;
- this.delayed = false;
-}
-
-/**
- * Inherit from `EventEmitter.prototype`.
- */
-inherits(Suite, EventEmitter);
-
-/**
- * Return a clone of this `Suite`.
- *
- * @api private
- * @return {Suite}
- */
-Suite.prototype.clone = function() {
- var suite = new Suite(this.title);
- debug('clone');
- suite.ctx = this.ctx;
- suite.timeout(this.timeout());
- suite.retries(this.retries());
- suite.enableTimeouts(this.enableTimeouts());
- suite.slow(this.slow());
- suite.bail(this.bail());
- return suite;
-};
-
-/**
- * Set timeout `ms` or short-hand such as "2s".
- *
- * @api private
- * @param {number|string} ms
- * @return {Suite|number} for chaining
- */
-Suite.prototype.timeout = function(ms) {
- if (!arguments.length) {
- return this._timeout;
- }
- if (ms.toString() === '0') {
- this._enableTimeouts = false;
- }
- if (typeof ms === 'string') {
- ms = milliseconds(ms);
- }
- debug('timeout %d', ms);
- this._timeout = parseInt(ms, 10);
- return this;
-};
-
-/**
- * Set number of times to retry a failed test.
- *
- * @api private
- * @param {number|string} n
- * @return {Suite|number} for chaining
- */
-Suite.prototype.retries = function(n) {
- if (!arguments.length) {
- return this._retries;
- }
- debug('retries %d', n);
- this._retries = parseInt(n, 10) || 0;
- return this;
-};
-
-/**
- * Set timeout to `enabled`.
- *
- * @api private
- * @param {boolean} enabled
- * @return {Suite|boolean} self or enabled
- */
-Suite.prototype.enableTimeouts = function(enabled) {
- if (!arguments.length) {
- return this._enableTimeouts;
- }
- debug('enableTimeouts %s', enabled);
- this._enableTimeouts = enabled;
- return this;
-};
-
-/**
- * Set slow `ms` or short-hand such as "2s".
- *
- * @api private
- * @param {number|string} ms
- * @return {Suite|number} for chaining
- */
-Suite.prototype.slow = function(ms) {
- if (!arguments.length) {
- return this._slow;
- }
- if (typeof ms === 'string') {
- ms = milliseconds(ms);
- }
- debug('slow %d', ms);
- this._slow = ms;
- return this;
-};
-
-/**
- * Sets whether to bail after first error.
- *
- * @api private
- * @param {boolean} bail
- * @return {Suite|number} for chaining
- */
-Suite.prototype.bail = function(bail) {
- if (!arguments.length) {
- return this._bail;
- }
- debug('bail %s', bail);
- this._bail = bail;
- return this;
-};
-
-/**
- * Check if this suite or its parent suite is marked as pending.
- *
- * @api private
- */
-Suite.prototype.isPending = function() {
- return this.pending || (this.parent && this.parent.isPending());
-};
-
-/**
- * Run `fn(test[, done])` before running tests.
- *
- * @api private
- * @param {string} title
- * @param {Function} fn
- * @return {Suite} for chaining
- */
-Suite.prototype.beforeAll = function(title, fn) {
- if (this.isPending()) {
- return this;
- }
- if (typeof title === 'function') {
- fn = title;
- title = fn.name;
- }
- title = '"before all" hook' + (title ? ': ' + title : '');
-
- var hook = new Hook(title, fn);
- hook.parent = this;
- hook.timeout(this.timeout());
- hook.retries(this.retries());
- hook.enableTimeouts(this.enableTimeouts());
- hook.slow(this.slow());
- hook.ctx = this.ctx;
- this._beforeAll.push(hook);
- this.emit('beforeAll', hook);
- return this;
-};
-
-/**
- * Run `fn(test[, done])` after running tests.
- *
- * @api private
- * @param {string} title
- * @param {Function} fn
- * @return {Suite} for chaining
- */
-Suite.prototype.afterAll = function(title, fn) {
- if (this.isPending()) {
- return this;
- }
- if (typeof title === 'function') {
- fn = title;
- title = fn.name;
- }
- title = '"after all" hook' + (title ? ': ' + title : '');
-
- var hook = new Hook(title, fn);
- hook.parent = this;
- hook.timeout(this.timeout());
- hook.retries(this.retries());
- hook.enableTimeouts(this.enableTimeouts());
- hook.slow(this.slow());
- hook.ctx = this.ctx;
- this._afterAll.push(hook);
- this.emit('afterAll', hook);
- return this;
-};
-
-/**
- * Run `fn(test[, done])` before each test case.
- *
- * @api private
- * @param {string} title
- * @param {Function} fn
- * @return {Suite} for chaining
- */
-Suite.prototype.beforeEach = function(title, fn) {
- if (this.isPending()) {
- return this;
- }
- if (typeof title === 'function') {
- fn = title;
- title = fn.name;
- }
- title = '"before each" hook' + (title ? ': ' + title : '');
-
- var hook = new Hook(title, fn);
- hook.parent = this;
- hook.timeout(this.timeout());
- hook.retries(this.retries());
- hook.enableTimeouts(this.enableTimeouts());
- hook.slow(this.slow());
- hook.ctx = this.ctx;
- this._beforeEach.push(hook);
- this.emit('beforeEach', hook);
- return this;
-};
-
-/**
- * Run `fn(test[, done])` after each test case.
- *
- * @api private
- * @param {string} title
- * @param {Function} fn
- * @return {Suite} for chaining
- */
-Suite.prototype.afterEach = function(title, fn) {
- if (this.isPending()) {
- return this;
- }
- if (typeof title === 'function') {
- fn = title;
- title = fn.name;
- }
- title = '"after each" hook' + (title ? ': ' + title : '');
-
- var hook = new Hook(title, fn);
- hook.parent = this;
- hook.timeout(this.timeout());
- hook.retries(this.retries());
- hook.enableTimeouts(this.enableTimeouts());
- hook.slow(this.slow());
- hook.ctx = this.ctx;
- this._afterEach.push(hook);
- this.emit('afterEach', hook);
- return this;
-};
-
-/**
- * Add a test `suite`.
- *
- * @api private
- * @param {Suite} suite
- * @return {Suite} for chaining
- */
-Suite.prototype.addSuite = function(suite) {
- suite.parent = this;
- suite.timeout(this.timeout());
- suite.retries(this.retries());
- suite.enableTimeouts(this.enableTimeouts());
- suite.slow(this.slow());
- suite.bail(this.bail());
- this.suites.push(suite);
- this.emit('suite', suite);
- return this;
-};
-
-/**
- * Add a `test` to this suite.
- *
- * @api private
- * @param {Test} test
- * @return {Suite} for chaining
- */
-Suite.prototype.addTest = function(test) {
- test.parent = this;
- test.timeout(this.timeout());
- test.retries(this.retries());
- test.enableTimeouts(this.enableTimeouts());
- test.slow(this.slow());
- test.ctx = this.ctx;
- this.tests.push(test);
- this.emit('test', test);
- return this;
-};
-
-/**
- * Return the full title generated by recursively concatenating the parent's
- * full title.
- *
- * @api public
- * @return {string}
- */
-Suite.prototype.fullTitle = function() {
- if (this.parent) {
- var full = this.parent.fullTitle();
- if (full) {
- return full + ' ' + this.title;
- }
- }
- return this.title;
-};
-
-/**
- * Return the total number of tests.
- *
- * @api public
- * @return {number}
- */
-Suite.prototype.total = function() {
- return utils.reduce(this.suites, function(sum, suite) {
- return sum + suite.total();
- }, 0) + this.tests.length;
-};
-
-/**
- * Iterates through each suite recursively to find all tests. Applies a
- * function in the format `fn(test)`.
- *
- * @api private
- * @param {Function} fn
- * @return {Suite}
- */
-Suite.prototype.eachTest = function(fn) {
- utils.forEach(this.tests, fn);
- utils.forEach(this.suites, function(suite) {
- suite.eachTest(fn);
- });
- return this;
-};
-
-/**
- * This will run the root suite if we happen to be running in delayed mode.
- */
-Suite.prototype.run = function run() {
- if (this.root) {
- this.emit('run');
- }
-};
-
-},{"./hook":7,"./ms":15,"./utils":39,"debug":2,"events":3}],38:[function(require,module,exports){
-/**
- * Module dependencies.
- */
-
-var Runnable = require('./runnable');
-var inherits = require('./utils').inherits;
-
-/**
- * Expose `Test`.
- */
-
-module.exports = Test;
-
-/**
- * Initialize a new `Test` with the given `title` and callback `fn`.
- *
- * @api private
- * @param {String} title
- * @param {Function} fn
- */
-function Test(title, fn) {
- Runnable.call(this, title, fn);
- this.pending = !fn;
- this.type = 'test';
-}
-
-/**
- * Inherit from `Runnable.prototype`.
- */
-inherits(Test, Runnable);
-
-Test.prototype.clone = function() {
- var test = new Test(this.title, this.fn);
- test.timeout(this.timeout());
- test.slow(this.slow());
- test.enableTimeouts(this.enableTimeouts());
- test.retries(this.retries());
- test.currentRetry(this.currentRetry());
- test.globals(this.globals());
- test.parent = this.parent;
- test.file = this.file;
- test.ctx = this.ctx;
- return test;
-};
-
-},{"./runnable":35,"./utils":39}],39:[function(require,module,exports){
-(function (process,Buffer){
-/* eslint-env browser */
-
-/**
- * Module dependencies.
- */
-
-var basename = require('path').basename;
-var debug = require('debug')('mocha:watch');
-var exists = require('fs').existsSync || require('path').existsSync;
-var glob = require('glob');
-var join = require('path').join;
-var readdirSync = require('fs').readdirSync;
-var statSync = require('fs').statSync;
-var watchFile = require('fs').watchFile;
-var toISOString = require('to-iso-string');
-
-/**
- * Ignored directories.
- */
-
-var ignore = ['node_modules', '.git'];
-
-exports.inherits = require('util').inherits;
-
-/**
- * Escape special characters in the given string of html.
- *
- * @api private
- * @param {string} html
- * @return {string}
- */
-exports.escape = function(html) {
- return String(html)
- .replace(/&/g, '&amp;')
- .replace(/"/g, '&quot;')
- .replace(/</g, '&lt;')
- .replace(/>/g, '&gt;');
-};
-
-/**
- * Array#forEach (<=IE8)
- *
- * @api private
- * @param {Array} arr
- * @param {Function} fn
- * @param {Object} scope
- */
-exports.forEach = function(arr, fn, scope) {
- for (var i = 0, l = arr.length; i < l; i++) {
- fn.call(scope, arr[i], i);
- }
-};
-
-/**
- * Test if the given obj is type of string.
- *
- * @api private
- * @param {Object} obj
- * @return {boolean}
- */
-exports.isString = function(obj) {
- return typeof obj === 'string';
-};
-
-/**
- * Array#map (<=IE8)
- *
- * @api private
- * @param {Array} arr
- * @param {Function} fn
- * @param {Object} scope
- * @return {Array}
- */
-exports.map = function(arr, fn, scope) {
- var result = [];
- for (var i = 0, l = arr.length; i < l; i++) {
- result.push(fn.call(scope, arr[i], i, arr));
- }
- return result;
-};
-
-/**
- * Array#indexOf (<=IE8)
- *
- * @api private
- * @param {Array} arr
- * @param {Object} obj to find index of
- * @param {number} start
- * @return {number}
- */
-exports.indexOf = function(arr, obj, start) {
- for (var i = start || 0, l = arr.length; i < l; i++) {
- if (arr[i] === obj) {
- return i;
- }
- }
- return -1;
-};
-
-/**
- * Array#reduce (<=IE8)
- *
- * @api private
- * @param {Array} arr
- * @param {Function} fn
- * @param {Object} val Initial value.
- * @return {*}
- */
-exports.reduce = function(arr, fn, val) {
- var rval = val;
-
- for (var i = 0, l = arr.length; i < l; i++) {
- rval = fn(rval, arr[i], i, arr);
- }
-
- return rval;
-};
-
-/**
- * Array#filter (<=IE8)
- *
- * @api private
- * @param {Array} arr
- * @param {Function} fn
- * @return {Array}
- */
-exports.filter = function(arr, fn) {
- var ret = [];
-
- for (var i = 0, l = arr.length; i < l; i++) {
- var val = arr[i];
- if (fn(val, i, arr)) {
- ret.push(val);
- }
- }
-
- return ret;
-};
-
-/**
- * Object.keys (<=IE8)
- *
- * @api private
- * @param {Object} obj
- * @return {Array} keys
- */
-exports.keys = typeof Object.keys === 'function' ? Object.keys : function(obj) {
- var keys = [];
- var has = Object.prototype.hasOwnProperty; // for `window` on <=IE8
-
- for (var key in obj) {
- if (has.call(obj, key)) {
- keys.push(key);
- }
- }
-
- return keys;
-};
-
-/**
- * Watch the given `files` for changes
- * and invoke `fn(file)` on modification.
- *
- * @api private
- * @param {Array} files
- * @param {Function} fn
- */
-exports.watch = function(files, fn) {
- var options = { interval: 100 };
- files.forEach(function(file) {
- debug('file %s', file);
- watchFile(file, options, function(curr, prev) {
- if (prev.mtime < curr.mtime) {
- fn(file);
- }
- });
- });
-};
-
-/**
- * Array.isArray (<=IE8)
- *
- * @api private
- * @param {Object} obj
- * @return {Boolean}
- */
-var isArray = typeof Array.isArray === 'function' ? Array.isArray : function(obj) {
- return Object.prototype.toString.call(obj) === '[object Array]';
-};
-
-exports.isArray = isArray;
-
-/**
- * Buffer.prototype.toJSON polyfill.
- *
- * @type {Function}
- */
-if (typeof Buffer !== 'undefined' && Buffer.prototype) {
- Buffer.prototype.toJSON = Buffer.prototype.toJSON || function() {
- return Array.prototype.slice.call(this, 0);
- };
-}
-
-/**
- * Ignored files.
- *
- * @api private
- * @param {string} path
- * @return {boolean}
- */
-function ignored(path) {
- return !~ignore.indexOf(path);
-}
-
-/**
- * Lookup files in the given `dir`.
- *
- * @api private
- * @param {string} dir
- * @param {string[]} [ext=['.js']]
- * @param {Array} [ret=[]]
- * @return {Array}
- */
-exports.files = function(dir, ext, ret) {
- ret = ret || [];
- ext = ext || ['js'];
-
- var re = new RegExp('\\.(' + ext.join('|') + ')$');
-
- readdirSync(dir)
- .filter(ignored)
- .forEach(function(path) {
- path = join(dir, path);
- if (statSync(path).isDirectory()) {
- exports.files(path, ext, ret);
- } else if (path.match(re)) {
- ret.push(path);
- }
- });
-
- return ret;
-};
-
-/**
- * Compute a slug from the given `str`.
- *
- * @api private
- * @param {string} str
- * @return {string}
- */
-exports.slug = function(str) {
- return str
- .toLowerCase()
- .replace(/ +/g, '-')
- .replace(/[^-\w]/g, '');
-};
-
-/**
- * Strip the function definition from `str`, and re-indent for pre whitespace.
- *
- * @param {string} str
- * @return {string}
- */
-exports.clean = function(str) {
- str = str
- .replace(/\r\n?|[\n\u2028\u2029]/g, '\n').replace(/^\uFEFF/, '')
- .replace(/^function *\(.*\)\s*\{|\(.*\) *=> *\{?/, '')
- .replace(/\s+\}$/, '');
-
- var spaces = str.match(/^\n?( *)/)[1].length;
- var tabs = str.match(/^\n?(\t*)/)[1].length;
- var re = new RegExp('^\n?' + (tabs ? '\t' : ' ') + '{' + (tabs ? tabs : spaces) + '}', 'gm');
-
- str = str.replace(re, '');
-
- return exports.trim(str);
-};
-
-/**
- * Trim the given `str`.
- *
- * @api private
- * @param {string} str
- * @return {string}
- */
-exports.trim = function(str) {
- return str.replace(/^\s+|\s+$/g, '');
-};
-
-/**
- * Parse the given `qs`.
- *
- * @api private
- * @param {string} qs
- * @return {Object}
- */
-exports.parseQuery = function(qs) {
- return exports.reduce(qs.replace('?', '').split('&'), function(obj, pair) {
- var i = pair.indexOf('=');
- var key = pair.slice(0, i);
- var val = pair.slice(++i);
-
- obj[key] = decodeURIComponent(val);
- return obj;
- }, {});
-};
-
-/**
- * Highlight the given string of `js`.
- *
- * @api private
- * @param {string} js
- * @return {string}
- */
-function highlight(js) {
- return js
- .replace(/</g, '&lt;')
- .replace(/>/g, '&gt;')
- .replace(/\/\/(.*)/gm, '<span class="comment">//$1</span>')
- .replace(/('.*?')/gm, '<span class="string">$1</span>')
- .replace(/(\d+\.\d+)/gm, '<span class="number">$1</span>')
- .replace(/(\d+)/gm, '<span class="number">$1</span>')
- .replace(/\bnew[ \t]+(\w+)/gm, '<span class="keyword">new</span> <span class="init">$1</span>')
- .replace(/\b(function|new|throw|return|var|if|else)\b/gm, '<span class="keyword">$1</span>');
-}
-
-/**
- * Highlight the contents of tag `name`.
- *
- * @api private
- * @param {string} name
- */
-exports.highlightTags = function(name) {
- var code = document.getElementById('mocha').getElementsByTagName(name);
- for (var i = 0, len = code.length; i < len; ++i) {
- code[i].innerHTML = highlight(code[i].innerHTML);
- }
-};
-
-/**
- * If a value could have properties, and has none, this function is called,
- * which returns a string representation of the empty value.
- *
- * Functions w/ no properties return `'[Function]'`
- * Arrays w/ length === 0 return `'[]'`
- * Objects w/ no properties return `'{}'`
- * All else: return result of `value.toString()`
- *
- * @api private
- * @param {*} value The value to inspect.
- * @param {string} [type] The type of the value, if known.
- * @returns {string}
- */
-function emptyRepresentation(value, type) {
- type = type || exports.type(value);
-
- switch (type) {
- case 'function':
- return '[Function]';
- case 'object':
- return '{}';
- case 'array':
- return '[]';
- default:
- return value.toString();
- }
-}
-
-/**
- * Takes some variable and asks `Object.prototype.toString()` what it thinks it
- * is.
- *
- * @api private
- * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString
- * @param {*} value The value to test.
- * @returns {string}
- * @example
- * type({}) // 'object'
- * type([]) // 'array'
- * type(1) // 'number'
- * type(false) // 'boolean'
- * type(Infinity) // 'number'
- * type(null) // 'null'
- * type(new Date()) // 'date'
- * type(/foo/) // 'regexp'
- * type('type') // 'string'
- * type(global) // 'global'
- */
-exports.type = function type(value) {
- if (value === undefined) {
- return 'undefined';
- } else if (value === null) {
- return 'null';
- } else if (typeof Buffer !== 'undefined' && Buffer.isBuffer(value)) {
- return 'buffer';
- }
- return Object.prototype.toString.call(value)
- .replace(/^\[.+\s(.+?)\]$/, '$1')
- .toLowerCase();
-};
-
-/**
- * Stringify `value`. Different behavior depending on type of value:
- *
- * - If `value` is undefined or null, return `'[undefined]'` or `'[null]'`, respectively.
- * - If `value` is not an object, function or array, return result of `value.toString()` wrapped in double-quotes.
- * - If `value` is an *empty* object, function, or array, return result of function
- * {@link emptyRepresentation}.
- * - If `value` has properties, call {@link exports.canonicalize} on it, then return result of
- * JSON.stringify().
- *
- * @api private
- * @see exports.type
- * @param {*} value
- * @return {string}
- */
-exports.stringify = function(value) {
- var type = exports.type(value);
-
- if (!~exports.indexOf(['object', 'array', 'function'], type)) {
- if (type !== 'buffer') {
- return jsonStringify(value);
- }
- var json = value.toJSON();
- // Based on the toJSON result
- return jsonStringify(json.data && json.type ? json.data : json, 2)
- .replace(/,(\n|$)/g, '$1');
- }
-
- for (var prop in value) {
- if (Object.prototype.hasOwnProperty.call(value, prop)) {
- return jsonStringify(exports.canonicalize(value), 2).replace(/,(\n|$)/g, '$1');
- }
- }
-
- return emptyRepresentation(value, type);
-};
-
-/**
- * like JSON.stringify but more sense.
- *
- * @api private
- * @param {Object} object
- * @param {number=} spaces
- * @param {number=} depth
- * @returns {*}
- */
-function jsonStringify(object, spaces, depth) {
- if (typeof spaces === 'undefined') {
- // primitive types
- return _stringify(object);
- }
-
- depth = depth || 1;
- var space = spaces * depth;
- var str = isArray(object) ? '[' : '{';
- var end = isArray(object) ? ']' : '}';
- var length = typeof object.length === 'number' ? object.length : exports.keys(object).length;
- // `.repeat()` polyfill
- function repeat(s, n) {
- return new Array(n).join(s);
- }
-
- function _stringify(val) {
- switch (exports.type(val)) {
- case 'null':
- case 'undefined':
- val = '[' + val + ']';
- break;
- case 'array':
- case 'object':
- val = jsonStringify(val, spaces, depth + 1);
- break;
- case 'boolean':
- case 'regexp':
- case 'symbol':
- case 'number':
- val = val === 0 && (1 / val) === -Infinity // `-0`
- ? '-0'
- : val.toString();
- break;
- case 'date':
- var sDate;
- if (isNaN(val.getTime())) { // Invalid date
- sDate = val.toString();
- } else {
- sDate = val.toISOString ? val.toISOString() : toISOString(val);
- }
- val = '[Date: ' + sDate + ']';
- break;
- case 'buffer':
- var json = val.toJSON();
- // Based on the toJSON result
- json = json.data && json.type ? json.data : json;
- val = '[Buffer: ' + jsonStringify(json, 2, depth + 1) + ']';
- break;
- default:
- val = (val === '[Function]' || val === '[Circular]')
- ? val
- : JSON.stringify(val); // string
- }
- return val;
- }
-
- for (var i in object) {
- if (!Object.prototype.hasOwnProperty.call(object, i)) {
- continue; // not my business
- }
- --length;
- str += '\n ' + repeat(' ', space)
- + (isArray(object) ? '' : '"' + i + '": ') // key
- + _stringify(object[i]) // value
- + (length ? ',' : ''); // comma
- }
-
- return str
- // [], {}
- + (str.length !== 1 ? '\n' + repeat(' ', --space) + end : end);
-}
-
-/**
- * Test if a value is a buffer.
- *
- * @api private
- * @param {*} value The value to test.
- * @return {boolean} True if `value` is a buffer, otherwise false
- */
-exports.isBuffer = function(value) {
- return typeof Buffer !== 'undefined' && Buffer.isBuffer(value);
-};
-
-/**
- * Return a new Thing that has the keys in sorted order. Recursive.
- *
- * If the Thing...
- * - has already been seen, return string `'[Circular]'`
- * - is `undefined`, return string `'[undefined]'`
- * - is `null`, return value `null`
- * - is some other primitive, return the value
- * - is not a primitive or an `Array`, `Object`, or `Function`, return the value of the Thing's `toString()` method
- * - is a non-empty `Array`, `Object`, or `Function`, return the result of calling this function again.
- * - is an empty `Array`, `Object`, or `Function`, return the result of calling `emptyRepresentation()`
- *
- * @api private
- * @see {@link exports.stringify}
- * @param {*} value Thing to inspect. May or may not have properties.
- * @param {Array} [stack=[]] Stack of seen values
- * @return {(Object|Array|Function|string|undefined)}
- */
-exports.canonicalize = function(value, stack) {
- var canonicalizedObj;
- /* eslint-disable no-unused-vars */
- var prop;
- /* eslint-enable no-unused-vars */
- var type = exports.type(value);
- function withStack(value, fn) {
- stack.push(value);
- fn();
- stack.pop();
- }
-
- stack = stack || [];
-
- if (exports.indexOf(stack, value) !== -1) {
- return '[Circular]';
- }
-
- switch (type) {
- case 'undefined':
- case 'buffer':
- case 'null':
- canonicalizedObj = value;
- break;
- case 'array':
- withStack(value, function() {
- canonicalizedObj = exports.map(value, function(item) {
- return exports.canonicalize(item, stack);
- });
- });
- break;
- case 'function':
- /* eslint-disable guard-for-in */
- for (prop in value) {
- canonicalizedObj = {};
- break;
- }
- /* eslint-enable guard-for-in */
- if (!canonicalizedObj) {
- canonicalizedObj = emptyRepresentation(value, type);
- break;
- }
- /* falls through */
- case 'object':
- canonicalizedObj = canonicalizedObj || {};
- withStack(value, function() {
- exports.forEach(exports.keys(value).sort(), function(key) {
- canonicalizedObj[key] = exports.canonicalize(value[key], stack);
- });
- });
- break;
- case 'date':
- case 'number':
- case 'regexp':
- case 'boolean':
- case 'symbol':
- canonicalizedObj = value;
- break;
- default:
- canonicalizedObj = value + '';
- }
-
- return canonicalizedObj;
-};
-
-/**
- * Lookup file names at the given `path`.
- *
- * @api public
- * @param {string} path Base path to start searching from.
- * @param {string[]} extensions File extensions to look for.
- * @param {boolean} recursive Whether or not to recurse into subdirectories.
- * @return {string[]} An array of paths.
- */
-exports.lookupFiles = function lookupFiles(path, extensions, recursive) {
- var files = [];
- var re = new RegExp('\\.(' + extensions.join('|') + ')$');
-
- if (!exists(path)) {
- if (exists(path + '.js')) {
- path += '.js';
- } else {
- files = glob.sync(path);
- if (!files.length) {
- throw new Error("cannot resolve path (or pattern) '" + path + "'");
- }
- return files;
- }
- }
-
- try {
- var stat = statSync(path);
- if (stat.isFile()) {
- return path;
- }
- } catch (err) {
- // ignore error
- return;
- }
-
- readdirSync(path).forEach(function(file) {
- file = join(path, file);
- try {
- var stat = statSync(file);
- if (stat.isDirectory()) {
- if (recursive) {
- files = files.concat(lookupFiles(file, extensions, recursive));
- }
- return;
- }
- } catch (err) {
- // ignore error
- return;
- }
- if (!stat.isFile() || !re.test(file) || basename(file)[0] === '.') {
- return;
- }
- files.push(file);
- });
-
- return files;
-};
-
-/**
- * Generate an undefined error with a message warning the user.
- *
- * @return {Error}
- */
-
-exports.undefinedError = function() {
- return new Error('Caught undefined error, did you throw without specifying what?');
-};
-
-/**
- * Generate an undefined error if `err` is not defined.
- *
- * @param {Error} err
- * @return {Error}
- */
-
-exports.getError = function(err) {
- return err || exports.undefinedError();
-};
-
-/**
- * @summary
- * This Filter based on `mocha-clean` module.(see: `github.com/rstacruz/mocha-clean`)
- * @description
- * When invoking this function you get a filter function that get the Error.stack as an input,
- * and return a prettify output.
- * (i.e: strip Mocha and internal node functions from stack trace).
- * @returns {Function}
- */
-exports.stackTraceFilter = function() {
- // TODO: Replace with `process.browser`
- var slash = '/';
- var is = typeof document === 'undefined' ? { node: true } : { browser: true };
- var cwd = is.node
- ? process.cwd() + slash
- : (typeof location === 'undefined' ? window.location : location).href.replace(/\/[^\/]*$/, '/');
-
- function isMochaInternal(line) {
- return (~line.indexOf('node_modules' + slash + 'mocha' + slash))
- || (~line.indexOf('components' + slash + 'mochajs' + slash))
- || (~line.indexOf('components' + slash + 'mocha' + slash))
- || (~line.indexOf(slash + 'mocha.js'));
- }
-
- function isNodeInternal(line) {
- return (~line.indexOf('(timers.js:'))
- || (~line.indexOf('(events.js:'))
- || (~line.indexOf('(node.js:'))
- || (~line.indexOf('(module.js:'))
- || (~line.indexOf('GeneratorFunctionPrototype.next (native)'))
- || false;
- }
-
- return function(stack) {
- stack = stack.split('\n');
-
- stack = exports.reduce(stack, function(list, line) {
- if (isMochaInternal(line)) {
- return list;
- }
-
- if (is.node && isNodeInternal(line)) {
- return list;
- }
-
- // Clean up cwd(absolute)
- if (/\(?.+:\d+:\d+\)?$/.test(line)) {
- line = line.replace(cwd, '');
- }
-
- list.push(line);
- return list;
- }, []);
-
- return stack.join('\n');
- };
-};
-
-}).call(this,require('_process'),require("buffer").Buffer)
-},{"_process":58,"buffer":45,"debug":2,"fs":43,"glob":43,"path":43,"to-iso-string":72,"util":75}],40:[function(require,module,exports){
-'use strict'
-
-exports.toByteArray = toByteArray
-exports.fromByteArray = fromByteArray
-
-var lookup = []
-var revLookup = []
-var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
-
-function init () {
- var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
- for (var i = 0, len = code.length; i < len; ++i) {
- lookup[i] = code[i]
- revLookup[code.charCodeAt(i)] = i
- }
-
- revLookup['-'.charCodeAt(0)] = 62
- revLookup['_'.charCodeAt(0)] = 63
-}
-
-init()
-
-function toByteArray (b64) {
- var i, j, l, tmp, placeHolders, arr
- var len = b64.length
-
- if (len % 4 > 0) {
- throw new Error('Invalid string. Length must be a multiple of 4')
- }
-
- // the number of equal signs (place holders)
- // if there are two placeholders, than the two characters before it
- // represent one byte
- // if there is only one, then the three characters before it represent 2 bytes
- // this is just a cheap hack to not do indexOf twice
- placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0
-
- // base64 is 4/3 + up to two characters of the original data
- arr = new Arr(len * 3 / 4 - placeHolders)
-
- // if there are placeholders, only get up to the last complete 4 chars
- l = placeHolders > 0 ? len - 4 : len
-
- var L = 0
-
- for (i = 0, j = 0; i < l; i += 4, j += 3) {
- tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]
- arr[L++] = (tmp >> 16) & 0xFF
- arr[L++] = (tmp >> 8) & 0xFF
- arr[L++] = tmp & 0xFF
- }
-
- if (placeHolders === 2) {
- tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)
- arr[L++] = tmp & 0xFF
- } else if (placeHolders === 1) {
- tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)
- arr[L++] = (tmp >> 8) & 0xFF
- arr[L++] = tmp & 0xFF
- }
-
- return arr
-}
-
-function tripletToBase64 (num) {
- return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]
-}
-
-function encodeChunk (uint8, start, end) {
- var tmp
- var output = []
- for (var i = start; i < end; i += 3) {
- tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])
- output.push(tripletToBase64(tmp))
- }
- return output.join('')
-}
-
-function fromByteArray (uint8) {
- var tmp
- var len = uint8.length
- var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
- var output = ''
- var parts = []
- var maxChunkLength = 16383 // must be multiple of 3
-
- // go through the array every three bytes, we'll deal with trailing stuff later
- for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
- parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))
- }
-
- // pad the end with zeros, but make sure to not forget the extra bytes
- if (extraBytes === 1) {
- tmp = uint8[len - 1]
- output += lookup[tmp >> 2]
- output += lookup[(tmp << 4) & 0x3F]
- output += '=='
- } else if (extraBytes === 2) {
- tmp = (uint8[len - 2] << 8) + (uint8[len - 1])
- output += lookup[tmp >> 10]
- output += lookup[(tmp >> 4) & 0x3F]
- output += lookup[(tmp << 2) & 0x3F]
- output += '='
- }
-
- parts.push(output)
-
- return parts.join('')
-}
-
-},{}],41:[function(require,module,exports){
-
-},{}],42:[function(require,module,exports){
-(function (process){
-var WritableStream = require('stream').Writable
-var inherits = require('util').inherits
-
-module.exports = BrowserStdout
-
-
-inherits(BrowserStdout, WritableStream)
-
-function BrowserStdout(opts) {
- if (!(this instanceof BrowserStdout)) return new BrowserStdout(opts)
-
- opts = opts || {}
- WritableStream.call(this, opts)
- this.label = (opts.label !== undefined) ? opts.label : 'stdout'
-}
-
-BrowserStdout.prototype._write = function(chunks, encoding, cb) {
- var output = chunks.toString ? chunks.toString() : chunks
- if (this.label === false) {
- console.log(output)
- } else {
- console.log(this.label+':', output)
- }
- process.nextTick(cb)
-}
-
-}).call(this,require('_process'))
-},{"_process":58,"stream":59,"util":75}],43:[function(require,module,exports){
-arguments[4][41][0].apply(exports,arguments)
-},{"dup":41}],44:[function(require,module,exports){
-(function (global){
-'use strict';
-
-var buffer = require('buffer');
-var Buffer = buffer.Buffer;
-var SlowBuffer = buffer.SlowBuffer;
-var MAX_LEN = buffer.kMaxLength || 2147483647;
-exports.alloc = function alloc(size, fill, encoding) {
- if (typeof Buffer.alloc === 'function') {
- return Buffer.alloc(size, fill, encoding);
- }
- if (typeof encoding === 'number') {
- throw new TypeError('encoding must not be number');
- }
- if (typeof size !== 'number') {
- throw new TypeError('size must be a number');
- }
- if (size > MAX_LEN) {
- throw new RangeError('size is too large');
- }
- var enc = encoding;
- var _fill = fill;
- if (_fill === undefined) {
- enc = undefined;
- _fill = 0;
- }
- var buf = new Buffer(size);
- if (typeof _fill === 'string') {
- var fillBuf = new Buffer(_fill, enc);
- var flen = fillBuf.length;
- var i = -1;
- while (++i < size) {
- buf[i] = fillBuf[i % flen];
- }
- } else {
- buf.fill(_fill);
- }
- return buf;
-}
-exports.allocUnsafe = function allocUnsafe(size) {
- if (typeof Buffer.allocUnsafe === 'function') {
- return Buffer.allocUnsafe(size);
- }
- if (typeof size !== 'number') {
- throw new TypeError('size must be a number');
- }
- if (size > MAX_LEN) {
- throw new RangeError('size is too large');
- }
- return new Buffer(size);
-}
-exports.from = function from(value, encodingOrOffset, length) {
- if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
- return Buffer.from(value, encodingOrOffset, length);
- }
- if (typeof value === 'number') {
- throw new TypeError('"value" argument must not be a number');
- }
- if (typeof value === 'string') {
- return new Buffer(value, encodingOrOffset);
- }
- if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
- var offset = encodingOrOffset;
- if (arguments.length === 1) {
- return new Buffer(value);
- }
- if (typeof offset === 'undefined') {
- offset = 0;
- }
- var len = length;
- if (typeof len === 'undefined') {
- len = value.byteLength - offset;
- }
- if (offset >= value.byteLength) {
- throw new RangeError('\'offset\' is out of bounds');
- }
- if (len > value.byteLength - offset) {
- throw new RangeError('\'length\' is out of bounds');
- }
- return new Buffer(value.slice(offset, offset + len));
- }
- if (Buffer.isBuffer(value)) {
- var out = new Buffer(value.length);
- value.copy(out, 0, 0, value.length);
- return out;
- }
- if (value) {
- if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
- return new Buffer(value);
- }
- if (value.type === 'Buffer' && Array.isArray(value.data)) {
- return new Buffer(value.data);
- }
- }
-
- throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
-}
-exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
- if (typeof Buffer.allocUnsafeSlow === 'function') {
- return Buffer.allocUnsafeSlow(size);
- }
- if (typeof size !== 'number') {
- throw new TypeError('size must be a number');
- }
- if (size >= MAX_LEN) {
- throw new RangeError('size is too large');
- }
- return new SlowBuffer(size);
-}
-
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"buffer":45}],45:[function(require,module,exports){
-(function (global){
-/*!
- * The buffer module from node.js, for the browser.
- *
- * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
- * @license MIT
- */
-/* eslint-disable no-proto */
-
-'use strict'
-
-var base64 = require('base64-js')
-var ieee754 = require('ieee754')
-var isArray = require('isarray')
-
-exports.Buffer = Buffer
-exports.SlowBuffer = SlowBuffer
-exports.INSPECT_MAX_BYTES = 50
-
-/**
- * If `Buffer.TYPED_ARRAY_SUPPORT`:
- * === true Use Uint8Array implementation (fastest)
- * === false Use Object implementation (most compatible, even IE6)
- *
- * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
- * Opera 11.6+, iOS 4.2+.
- *
- * Due to various browser bugs, sometimes the Object implementation will be used even
- * when the browser supports typed arrays.
- *
- * Note:
- *
- * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
- * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
- *
- * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
- *
- * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
- * incorrect length in some situations.
-
- * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
- * get the Object implementation, which is slower but behaves correctly.
- */
-Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined
- ? global.TYPED_ARRAY_SUPPORT
- : typedArraySupport()
-
-/*
- * Export kMaxLength after typed array support is determined.
- */
-exports.kMaxLength = kMaxLength()
-
-function typedArraySupport () {
- try {
- var arr = new Uint8Array(1)
- arr.foo = function () { return 42 }
- return arr.foo() === 42 && // typed array instances can be augmented
- typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
- arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
- } catch (e) {
- return false
- }
-}
-
-function kMaxLength () {
- return Buffer.TYPED_ARRAY_SUPPORT
- ? 0x7fffffff
- : 0x3fffffff
-}
-
-function createBuffer (that, length) {
- if (kMaxLength() < length) {
- throw new RangeError('Invalid typed array length')
- }
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- // Return an augmented `Uint8Array` instance, for best performance
- that = new Uint8Array(length)
- that.__proto__ = Buffer.prototype
- } else {
- // Fallback: Return an object instance of the Buffer class
- if (that === null) {
- that = new Buffer(length)
- }
- that.length = length
- }
-
- return that
-}
-
-/**
- * The Buffer constructor returns instances of `Uint8Array` that have their
- * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
- * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
- * and the `Uint8Array` methods. Square bracket notation works as expected -- it
- * returns a single octet.
- *
- * The `Uint8Array` prototype remains unmodified.
- */
-
-function Buffer (arg, encodingOrOffset, length) {
- if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {
- return new Buffer(arg, encodingOrOffset, length)
- }
-
- // Common case.
- if (typeof arg === 'number') {
- if (typeof encodingOrOffset === 'string') {
- throw new Error(
- 'If encoding is specified then the first argument must be a string'
- )
- }
- return allocUnsafe(this, arg)
- }
- return from(this, arg, encodingOrOffset, length)
-}
-
-Buffer.poolSize = 8192 // not used by this implementation
-
-// TODO: Legacy, not needed anymore. Remove in next major version.
-Buffer._augment = function (arr) {
- arr.__proto__ = Buffer.prototype
- return arr
-}
-
-function from (that, value, encodingOrOffset, length) {
- if (typeof value === 'number') {
- throw new TypeError('"value" argument must not be a number')
- }
-
- if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
- return fromArrayBuffer(that, value, encodingOrOffset, length)
- }
-
- if (typeof value === 'string') {
- return fromString(that, value, encodingOrOffset)
- }
-
- return fromObject(that, value)
-}
-
-/**
- * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
- * if value is a number.
- * Buffer.from(str[, encoding])
- * Buffer.from(array)
- * Buffer.from(buffer)
- * Buffer.from(arrayBuffer[, byteOffset[, length]])
- **/
-Buffer.from = function (value, encodingOrOffset, length) {
- return from(null, value, encodingOrOffset, length)
-}
-
-if (Buffer.TYPED_ARRAY_SUPPORT) {
- Buffer.prototype.__proto__ = Uint8Array.prototype
- Buffer.__proto__ = Uint8Array
- if (typeof Symbol !== 'undefined' && Symbol.species &&
- Buffer[Symbol.species] === Buffer) {
- // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
- Object.defineProperty(Buffer, Symbol.species, {
- value: null,
- configurable: true
- })
- }
-}
-
-function assertSize (size) {
- if (typeof size !== 'number') {
- throw new TypeError('"size" argument must be a number')
- }
-}
-
-function alloc (that, size, fill, encoding) {
- assertSize(size)
- if (size <= 0) {
- return createBuffer(that, size)
- }
- if (fill !== undefined) {
- // Only pay attention to encoding if it's a string. This
- // prevents accidentally sending in a number that would
- // be interpretted as a start offset.
- return typeof encoding === 'string'
- ? createBuffer(that, size).fill(fill, encoding)
- : createBuffer(that, size).fill(fill)
- }
- return createBuffer(that, size)
-}
-
-/**
- * Creates a new filled Buffer instance.
- * alloc(size[, fill[, encoding]])
- **/
-Buffer.alloc = function (size, fill, encoding) {
- return alloc(null, size, fill, encoding)
-}
-
-function allocUnsafe (that, size) {
- assertSize(size)
- that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)
- if (!Buffer.TYPED_ARRAY_SUPPORT) {
- for (var i = 0; i < size; i++) {
- that[i] = 0
- }
- }
- return that
-}
-
-/**
- * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
- * */
-Buffer.allocUnsafe = function (size) {
- return allocUnsafe(null, size)
-}
-/**
- * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
- */
-Buffer.allocUnsafeSlow = function (size) {
- return allocUnsafe(null, size)
-}
-
-function fromString (that, string, encoding) {
- if (typeof encoding !== 'string' || encoding === '') {
- encoding = 'utf8'
- }
-
- if (!Buffer.isEncoding(encoding)) {
- throw new TypeError('"encoding" must be a valid string encoding')
- }
-
- var length = byteLength(string, encoding) | 0
- that = createBuffer(that, length)
-
- that.write(string, encoding)
- return that
-}
-
-function fromArrayLike (that, array) {
- var length = checked(array.length) | 0
- that = createBuffer(that, length)
- for (var i = 0; i < length; i += 1) {
- that[i] = array[i] & 255
- }
- return that
-}
-
-function fromArrayBuffer (that, array, byteOffset, length) {
- array.byteLength // this throws if `array` is not a valid ArrayBuffer
-
- if (byteOffset < 0 || array.byteLength < byteOffset) {
- throw new RangeError('\'offset\' is out of bounds')
- }
-
- if (array.byteLength < byteOffset + (length || 0)) {
- throw new RangeError('\'length\' is out of bounds')
- }
-
- if (length === undefined) {
- array = new Uint8Array(array, byteOffset)
- } else {
- array = new Uint8Array(array, byteOffset, length)
- }
-
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- // Return an augmented `Uint8Array` instance, for best performance
- that = array
- that.__proto__ = Buffer.prototype
- } else {
- // Fallback: Return an object instance of the Buffer class
- that = fromArrayLike(that, array)
- }
- return that
-}
-
-function fromObject (that, obj) {
- if (Buffer.isBuffer(obj)) {
- var len = checked(obj.length) | 0
- that = createBuffer(that, len)
-
- if (that.length === 0) {
- return that
- }
-
- obj.copy(that, 0, 0, len)
- return that
- }
-
- if (obj) {
- if ((typeof ArrayBuffer !== 'undefined' &&
- obj.buffer instanceof ArrayBuffer) || 'length' in obj) {
- if (typeof obj.length !== 'number' || isnan(obj.length)) {
- return createBuffer(that, 0)
- }
- return fromArrayLike(that, obj)
- }
-
- if (obj.type === 'Buffer' && isArray(obj.data)) {
- return fromArrayLike(that, obj.data)
- }
- }
-
- throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
-}
-
-function checked (length) {
- // Note: cannot use `length < kMaxLength` here because that fails when
- // length is NaN (which is otherwise coerced to zero.)
- if (length >= kMaxLength()) {
- throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
- 'size: 0x' + kMaxLength().toString(16) + ' bytes')
- }
- return length | 0
-}
-
-function SlowBuffer (length) {
- if (+length != length) { // eslint-disable-line eqeqeq
- length = 0
- }
- return Buffer.alloc(+length)
-}
-
-Buffer.isBuffer = function isBuffer (b) {
- return !!(b != null && b._isBuffer)
-}
-
-Buffer.compare = function compare (a, b) {
- if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
- throw new TypeError('Arguments must be Buffers')
- }
-
- if (a === b) return 0
-
- var x = a.length
- var y = b.length
-
- for (var i = 0, len = Math.min(x, y); i < len; ++i) {
- if (a[i] !== b[i]) {
- x = a[i]
- y = b[i]
- break
- }
- }
-
- if (x < y) return -1
- if (y < x) return 1
- return 0
-}
-
-Buffer.isEncoding = function isEncoding (encoding) {
- switch (String(encoding).toLowerCase()) {
- case 'hex':
- case 'utf8':
- case 'utf-8':
- case 'ascii':
- case 'binary':
- case 'base64':
- case 'raw':
- case 'ucs2':
- case 'ucs-2':
- case 'utf16le':
- case 'utf-16le':
- return true
- default:
- return false
- }
-}
-
-Buffer.concat = function concat (list, length) {
- if (!isArray(list)) {
- throw new TypeError('"list" argument must be an Array of Buffers')
- }
-
- if (list.length === 0) {
- return Buffer.alloc(0)
- }
-
- var i
- if (length === undefined) {
- length = 0
- for (i = 0; i < list.length; i++) {
- length += list[i].length
- }
- }
-
- var buffer = Buffer.allocUnsafe(length)
- var pos = 0
- for (i = 0; i < list.length; i++) {
- var buf = list[i]
- if (!Buffer.isBuffer(buf)) {
- throw new TypeError('"list" argument must be an Array of Buffers')
- }
- buf.copy(buffer, pos)
- pos += buf.length
- }
- return buffer
-}
-
-function byteLength (string, encoding) {
- if (Buffer.isBuffer(string)) {
- return string.length
- }
- if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
- (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
- return string.byteLength
- }
- if (typeof string !== 'string') {
- string = '' + string
- }
-
- var len = string.length
- if (len === 0) return 0
-
- // Use a for loop to avoid recursion
- var loweredCase = false
- for (;;) {
- switch (encoding) {
- case 'ascii':
- case 'binary':
- // Deprecated
- case 'raw':
- case 'raws':
- return len
- case 'utf8':
- case 'utf-8':
- case undefined:
- return utf8ToBytes(string).length
- case 'ucs2':
- case 'ucs-2':
- case 'utf16le':
- case 'utf-16le':
- return len * 2
- case 'hex':
- return len >>> 1
- case 'base64':
- return base64ToBytes(string).length
- default:
- if (loweredCase) return utf8ToBytes(string).length // assume utf8
- encoding = ('' + encoding).toLowerCase()
- loweredCase = true
- }
- }
-}
-Buffer.byteLength = byteLength
-
-function slowToString (encoding, start, end) {
- var loweredCase = false
-
- // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
- // property of a typed array.
-
- // This behaves neither like String nor Uint8Array in that we set start/end
- // to their upper/lower bounds if the value passed is out of range.
- // undefined is handled specially as per ECMA-262 6th Edition,
- // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
- if (start === undefined || start < 0) {
- start = 0
- }
- // Return early if start > this.length. Done here to prevent potential uint32
- // coercion fail below.
- if (start > this.length) {
- return ''
- }
-
- if (end === undefined || end > this.length) {
- end = this.length
- }
-
- if (end <= 0) {
- return ''
- }
-
- // Force coersion to uint32. This will also coerce falsey/NaN values to 0.
- end >>>= 0
- start >>>= 0
-
- if (end <= start) {
- return ''
- }
-
- if (!encoding) encoding = 'utf8'
-
- while (true) {
- switch (encoding) {
- case 'hex':
- return hexSlice(this, start, end)
-
- case 'utf8':
- case 'utf-8':
- return utf8Slice(this, start, end)
-
- case 'ascii':
- return asciiSlice(this, start, end)
-
- case 'binary':
- return binarySlice(this, start, end)
-
- case 'base64':
- return base64Slice(this, start, end)
-
- case 'ucs2':
- case 'ucs-2':
- case 'utf16le':
- case 'utf-16le':
- return utf16leSlice(this, start, end)
-
- default:
- if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
- encoding = (encoding + '').toLowerCase()
- loweredCase = true
- }
- }
-}
-
-// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
-// Buffer instances.
-Buffer.prototype._isBuffer = true
-
-function swap (b, n, m) {
- var i = b[n]
- b[n] = b[m]
- b[m] = i
-}
-
-Buffer.prototype.swap16 = function swap16 () {
- var len = this.length
- if (len % 2 !== 0) {
- throw new RangeError('Buffer size must be a multiple of 16-bits')
- }
- for (var i = 0; i < len; i += 2) {
- swap(this, i, i + 1)
- }
- return this
-}
-
-Buffer.prototype.swap32 = function swap32 () {
- var len = this.length
- if (len % 4 !== 0) {
- throw new RangeError('Buffer size must be a multiple of 32-bits')
- }
- for (var i = 0; i < len; i += 4) {
- swap(this, i, i + 3)
- swap(this, i + 1, i + 2)
- }
- return this
-}
-
-Buffer.prototype.toString = function toString () {
- var length = this.length | 0
- if (length === 0) return ''
- if (arguments.length === 0) return utf8Slice(this, 0, length)
- return slowToString.apply(this, arguments)
-}
-
-Buffer.prototype.equals = function equals (b) {
- if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
- if (this === b) return true
- return Buffer.compare(this, b) === 0
-}
-
-Buffer.prototype.inspect = function inspect () {
- var str = ''
- var max = exports.INSPECT_MAX_BYTES
- if (this.length > 0) {
- str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')
- if (this.length > max) str += ' ... '
- }
- return '<Buffer ' + str + '>'
-}
-
-Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
- if (!Buffer.isBuffer(target)) {
- throw new TypeError('Argument must be a Buffer')
- }
-
- if (start === undefined) {
- start = 0
- }
- if (end === undefined) {
- end = target ? target.length : 0
- }
- if (thisStart === undefined) {
- thisStart = 0
- }
- if (thisEnd === undefined) {
- thisEnd = this.length
- }
-
- if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
- throw new RangeError('out of range index')
- }
-
- if (thisStart >= thisEnd && start >= end) {
- return 0
- }
- if (thisStart >= thisEnd) {
- return -1
- }
- if (start >= end) {
- return 1
- }
-
- start >>>= 0
- end >>>= 0
- thisStart >>>= 0
- thisEnd >>>= 0
-
- if (this === target) return 0
-
- var x = thisEnd - thisStart
- var y = end - start
- var len = Math.min(x, y)
-
- var thisCopy = this.slice(thisStart, thisEnd)
- var targetCopy = target.slice(start, end)
-
- for (var i = 0; i < len; ++i) {
- if (thisCopy[i] !== targetCopy[i]) {
- x = thisCopy[i]
- y = targetCopy[i]
- break
- }
- }
-
- if (x < y) return -1
- if (y < x) return 1
- return 0
-}
-
-function arrayIndexOf (arr, val, byteOffset, encoding) {
- var indexSize = 1
- var arrLength = arr.length
- var valLength = val.length
-
- if (encoding !== undefined) {
- encoding = String(encoding).toLowerCase()
- if (encoding === 'ucs2' || encoding === 'ucs-2' ||
- encoding === 'utf16le' || encoding === 'utf-16le') {
- if (arr.length < 2 || val.length < 2) {
- return -1
- }
- indexSize = 2
- arrLength /= 2
- valLength /= 2
- byteOffset /= 2
- }
- }
-
- function read (buf, i) {
- if (indexSize === 1) {
- return buf[i]
- } else {
- return buf.readUInt16BE(i * indexSize)
- }
- }
-
- var foundIndex = -1
- for (var i = 0; byteOffset + i < arrLength; i++) {
- if (read(arr, byteOffset + i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
- if (foundIndex === -1) foundIndex = i
- if (i - foundIndex + 1 === valLength) return (byteOffset + foundIndex) * indexSize
- } else {
- if (foundIndex !== -1) i -= i - foundIndex
- foundIndex = -1
- }
- }
- return -1
-}
-
-Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
- if (typeof byteOffset === 'string') {
- encoding = byteOffset
- byteOffset = 0
- } else if (byteOffset > 0x7fffffff) {
- byteOffset = 0x7fffffff
- } else if (byteOffset < -0x80000000) {
- byteOffset = -0x80000000
- }
- byteOffset >>= 0
-
- if (this.length === 0) return -1
- if (byteOffset >= this.length) return -1
-
- // Negative offsets start from the end of the buffer
- if (byteOffset < 0) byteOffset = Math.max(this.length + byteOffset, 0)
-
- if (typeof val === 'string') {
- val = Buffer.from(val, encoding)
- }
-
- if (Buffer.isBuffer(val)) {
- // special case: looking for empty string/buffer always fails
- if (val.length === 0) {
- return -1
- }
- return arrayIndexOf(this, val, byteOffset, encoding)
- }
- if (typeof val === 'number') {
- if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') {
- return Uint8Array.prototype.indexOf.call(this, val, byteOffset)
- }
- return arrayIndexOf(this, [ val ], byteOffset, encoding)
- }
-
- throw new TypeError('val must be string, number or Buffer')
-}
-
-Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
- return this.indexOf(val, byteOffset, encoding) !== -1
-}
-
-function hexWrite (buf, string, offset, length) {
- offset = Number(offset) || 0
- var remaining = buf.length - offset
- if (!length) {
- length = remaining
- } else {
- length = Number(length)
- if (length > remaining) {
- length = remaining
- }
- }
-
- // must be an even number of digits
- var strLen = string.length
- if (strLen % 2 !== 0) throw new Error('Invalid hex string')
-
- if (length > strLen / 2) {
- length = strLen / 2
- }
- for (var i = 0; i < length; i++) {
- var parsed = parseInt(string.substr(i * 2, 2), 16)
- if (isNaN(parsed)) return i
- buf[offset + i] = parsed
- }
- return i
-}
-
-function utf8Write (buf, string, offset, length) {
- return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
-}
-
-function asciiWrite (buf, string, offset, length) {
- return blitBuffer(asciiToBytes(string), buf, offset, length)
-}
-
-function binaryWrite (buf, string, offset, length) {
- return asciiWrite(buf, string, offset, length)
-}
-
-function base64Write (buf, string, offset, length) {
- return blitBuffer(base64ToBytes(string), buf, offset, length)
-}
-
-function ucs2Write (buf, string, offset, length) {
- return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
-}
-
-Buffer.prototype.write = function write (string, offset, length, encoding) {
- // Buffer#write(string)
- if (offset === undefined) {
- encoding = 'utf8'
- length = this.length
- offset = 0
- // Buffer#write(string, encoding)
- } else if (length === undefined && typeof offset === 'string') {
- encoding = offset
- length = this.length
- offset = 0
- // Buffer#write(string, offset[, length][, encoding])
- } else if (isFinite(offset)) {
- offset = offset | 0
- if (isFinite(length)) {
- length = length | 0
- if (encoding === undefined) encoding = 'utf8'
- } else {
- encoding = length
- length = undefined
- }
- // legacy write(string, encoding, offset, length) - remove in v0.13
- } else {
- throw new Error(
- 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
- )
- }
-
- var remaining = this.length - offset
- if (length === undefined || length > remaining) length = remaining
-
- if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
- throw new RangeError('Attempt to write outside buffer bounds')
- }
-
- if (!encoding) encoding = 'utf8'
-
- var loweredCase = false
- for (;;) {
- switch (encoding) {
- case 'hex':
- return hexWrite(this, string, offset, length)
-
- case 'utf8':
- case 'utf-8':
- return utf8Write(this, string, offset, length)
-
- case 'ascii':
- return asciiWrite(this, string, offset, length)
-
- case 'binary':
- return binaryWrite(this, string, offset, length)
-
- case 'base64':
- // Warning: maxLength not taken into account in base64Write
- return base64Write(this, string, offset, length)
-
- case 'ucs2':
- case 'ucs-2':
- case 'utf16le':
- case 'utf-16le':
- return ucs2Write(this, string, offset, length)
-
- default:
- if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
- encoding = ('' + encoding).toLowerCase()
- loweredCase = true
- }
- }
-}
-
-Buffer.prototype.toJSON = function toJSON () {
- return {
- type: 'Buffer',
- data: Array.prototype.slice.call(this._arr || this, 0)
- }
-}
-
-function base64Slice (buf, start, end) {
- if (start === 0 && end === buf.length) {
- return base64.fromByteArray(buf)
- } else {
- return base64.fromByteArray(buf.slice(start, end))
- }
-}
-
-function utf8Slice (buf, start, end) {
- end = Math.min(buf.length, end)
- var res = []
-
- var i = start
- while (i < end) {
- var firstByte = buf[i]
- var codePoint = null
- var bytesPerSequence = (firstByte > 0xEF) ? 4
- : (firstByte > 0xDF) ? 3
- : (firstByte > 0xBF) ? 2
- : 1
-
- if (i + bytesPerSequence <= end) {
- var secondByte, thirdByte, fourthByte, tempCodePoint
-
- switch (bytesPerSequence) {
- case 1:
- if (firstByte < 0x80) {
- codePoint = firstByte
- }
- break
- case 2:
- secondByte = buf[i + 1]
- if ((secondByte & 0xC0) === 0x80) {
- tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
- if (tempCodePoint > 0x7F) {
- codePoint = tempCodePoint
- }
- }
- break
- case 3:
- secondByte = buf[i + 1]
- thirdByte = buf[i + 2]
- if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
- tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
- if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
- codePoint = tempCodePoint
- }
- }
- break
- case 4:
- secondByte = buf[i + 1]
- thirdByte = buf[i + 2]
- fourthByte = buf[i + 3]
- if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
- tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
- if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
- codePoint = tempCodePoint
- }
- }
- }
- }
-
- if (codePoint === null) {
- // we did not generate a valid codePoint so insert a
- // replacement char (U+FFFD) and advance only 1 byte
- codePoint = 0xFFFD
- bytesPerSequence = 1
- } else if (codePoint > 0xFFFF) {
- // encode to utf16 (surrogate pair dance)
- codePoint -= 0x10000
- res.push(codePoint >>> 10 & 0x3FF | 0xD800)
- codePoint = 0xDC00 | codePoint & 0x3FF
- }
-
- res.push(codePoint)
- i += bytesPerSequence
- }
-
- return decodeCodePointsArray(res)
-}
-
-// Based on http://stackoverflow.com/a/22747272/680742, the browser with
-// the lowest limit is Chrome, with 0x10000 args.
-// We go 1 magnitude less, for safety
-var MAX_ARGUMENTS_LENGTH = 0x1000
-
-function decodeCodePointsArray (codePoints) {
- var len = codePoints.length
- if (len <= MAX_ARGUMENTS_LENGTH) {
- return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
- }
-
- // Decode in chunks to avoid "call stack size exceeded".
- var res = ''
- var i = 0
- while (i < len) {
- res += String.fromCharCode.apply(
- String,
- codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
- )
- }
- return res
-}
-
-function asciiSlice (buf, start, end) {
- var ret = ''
- end = Math.min(buf.length, end)
-
- for (var i = start; i < end; i++) {
- ret += String.fromCharCode(buf[i] & 0x7F)
- }
- return ret
-}
-
-function binarySlice (buf, start, end) {
- var ret = ''
- end = Math.min(buf.length, end)
-
- for (var i = start; i < end; i++) {
- ret += String.fromCharCode(buf[i])
- }
- return ret
-}
-
-function hexSlice (buf, start, end) {
- var len = buf.length
-
- if (!start || start < 0) start = 0
- if (!end || end < 0 || end > len) end = len
-
- var out = ''
- for (var i = start; i < end; i++) {
- out += toHex(buf[i])
- }
- return out
-}
-
-function utf16leSlice (buf, start, end) {
- var bytes = buf.slice(start, end)
- var res = ''
- for (var i = 0; i < bytes.length; i += 2) {
- res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)
- }
- return res
-}
-
-Buffer.prototype.slice = function slice (start, end) {
- var len = this.length
- start = ~~start
- end = end === undefined ? len : ~~end
-
- if (start < 0) {
- start += len
- if (start < 0) start = 0
- } else if (start > len) {
- start = len
- }
-
- if (end < 0) {
- end += len
- if (end < 0) end = 0
- } else if (end > len) {
- end = len
- }
-
- if (end < start) end = start
-
- var newBuf
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- newBuf = this.subarray(start, end)
- newBuf.__proto__ = Buffer.prototype
- } else {
- var sliceLen = end - start
- newBuf = new Buffer(sliceLen, undefined)
- for (var i = 0; i < sliceLen; i++) {
- newBuf[i] = this[i + start]
- }
- }
-
- return newBuf
-}
-
-/*
- * Need to make sure that buffer isn't trying to write out of bounds.
- */
-function checkOffset (offset, ext, length) {
- if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
- if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
-}
-
-Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) checkOffset(offset, byteLength, this.length)
-
- var val = this[offset]
- var mul = 1
- var i = 0
- while (++i < byteLength && (mul *= 0x100)) {
- val += this[offset + i] * mul
- }
-
- return val
-}
-
-Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) {
- checkOffset(offset, byteLength, this.length)
- }
-
- var val = this[offset + --byteLength]
- var mul = 1
- while (byteLength > 0 && (mul *= 0x100)) {
- val += this[offset + --byteLength] * mul
- }
-
- return val
-}
-
-Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 1, this.length)
- return this[offset]
-}
-
-Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 2, this.length)
- return this[offset] | (this[offset + 1] << 8)
-}
-
-Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 2, this.length)
- return (this[offset] << 8) | this[offset + 1]
-}
-
-Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
-
- return ((this[offset]) |
- (this[offset + 1] << 8) |
- (this[offset + 2] << 16)) +
- (this[offset + 3] * 0x1000000)
-}
-
-Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
-
- return (this[offset] * 0x1000000) +
- ((this[offset + 1] << 16) |
- (this[offset + 2] << 8) |
- this[offset + 3])
-}
-
-Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) checkOffset(offset, byteLength, this.length)
-
- var val = this[offset]
- var mul = 1
- var i = 0
- while (++i < byteLength && (mul *= 0x100)) {
- val += this[offset + i] * mul
- }
- mul *= 0x80
-
- if (val >= mul) val -= Math.pow(2, 8 * byteLength)
-
- return val
-}
-
-Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) checkOffset(offset, byteLength, this.length)
-
- var i = byteLength
- var mul = 1
- var val = this[offset + --i]
- while (i > 0 && (mul *= 0x100)) {
- val += this[offset + --i] * mul
- }
- mul *= 0x80
-
- if (val >= mul) val -= Math.pow(2, 8 * byteLength)
-
- return val
-}
-
-Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 1, this.length)
- if (!(this[offset] & 0x80)) return (this[offset])
- return ((0xff - this[offset] + 1) * -1)
-}
-
-Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 2, this.length)
- var val = this[offset] | (this[offset + 1] << 8)
- return (val & 0x8000) ? val | 0xFFFF0000 : val
-}
-
-Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 2, this.length)
- var val = this[offset + 1] | (this[offset] << 8)
- return (val & 0x8000) ? val | 0xFFFF0000 : val
-}
-
-Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
-
- return (this[offset]) |
- (this[offset + 1] << 8) |
- (this[offset + 2] << 16) |
- (this[offset + 3] << 24)
-}
-
-Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
-
- return (this[offset] << 24) |
- (this[offset + 1] << 16) |
- (this[offset + 2] << 8) |
- (this[offset + 3])
-}
-
-Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
- return ieee754.read(this, offset, true, 23, 4)
-}
-
-Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
- return ieee754.read(this, offset, false, 23, 4)
-}
-
-Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 8, this.length)
- return ieee754.read(this, offset, true, 52, 8)
-}
-
-Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 8, this.length)
- return ieee754.read(this, offset, false, 52, 8)
-}
-
-function checkInt (buf, value, offset, ext, max, min) {
- if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
- if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
- if (offset + ext > buf.length) throw new RangeError('Index out of range')
-}
-
-Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
- value = +value
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) {
- var maxBytes = Math.pow(2, 8 * byteLength) - 1
- checkInt(this, value, offset, byteLength, maxBytes, 0)
- }
-
- var mul = 1
- var i = 0
- this[offset] = value & 0xFF
- while (++i < byteLength && (mul *= 0x100)) {
- this[offset + i] = (value / mul) & 0xFF
- }
-
- return offset + byteLength
-}
-
-Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
- value = +value
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) {
- var maxBytes = Math.pow(2, 8 * byteLength) - 1
- checkInt(this, value, offset, byteLength, maxBytes, 0)
- }
-
- var i = byteLength - 1
- var mul = 1
- this[offset + i] = value & 0xFF
- while (--i >= 0 && (mul *= 0x100)) {
- this[offset + i] = (value / mul) & 0xFF
- }
-
- return offset + byteLength
-}
-
-Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)
- if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
- this[offset] = (value & 0xff)
- return offset + 1
-}
-
-function objectWriteUInt16 (buf, value, offset, littleEndian) {
- if (value < 0) value = 0xffff + value + 1
- for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; i++) {
- buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
- (littleEndian ? i : 1 - i) * 8
- }
-}
-
-Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value & 0xff)
- this[offset + 1] = (value >>> 8)
- } else {
- objectWriteUInt16(this, value, offset, true)
- }
- return offset + 2
-}
-
-Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value >>> 8)
- this[offset + 1] = (value & 0xff)
- } else {
- objectWriteUInt16(this, value, offset, false)
- }
- return offset + 2
-}
-
-function objectWriteUInt32 (buf, value, offset, littleEndian) {
- if (value < 0) value = 0xffffffff + value + 1
- for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; i++) {
- buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
- }
-}
-
-Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset + 3] = (value >>> 24)
- this[offset + 2] = (value >>> 16)
- this[offset + 1] = (value >>> 8)
- this[offset] = (value & 0xff)
- } else {
- objectWriteUInt32(this, value, offset, true)
- }
- return offset + 4
-}
-
-Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value >>> 24)
- this[offset + 1] = (value >>> 16)
- this[offset + 2] = (value >>> 8)
- this[offset + 3] = (value & 0xff)
- } else {
- objectWriteUInt32(this, value, offset, false)
- }
- return offset + 4
-}
-
-Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) {
- var limit = Math.pow(2, 8 * byteLength - 1)
-
- checkInt(this, value, offset, byteLength, limit - 1, -limit)
- }
-
- var i = 0
- var mul = 1
- var sub = 0
- this[offset] = value & 0xFF
- while (++i < byteLength && (mul *= 0x100)) {
- if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
- sub = 1
- }
- this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
- }
-
- return offset + byteLength
-}
-
-Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) {
- var limit = Math.pow(2, 8 * byteLength - 1)
-
- checkInt(this, value, offset, byteLength, limit - 1, -limit)
- }
-
- var i = byteLength - 1
- var mul = 1
- var sub = 0
- this[offset + i] = value & 0xFF
- while (--i >= 0 && (mul *= 0x100)) {
- if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
- sub = 1
- }
- this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
- }
-
- return offset + byteLength
-}
-
-Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)
- if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
- if (value < 0) value = 0xff + value + 1
- this[offset] = (value & 0xff)
- return offset + 1
-}
-
-Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value & 0xff)
- this[offset + 1] = (value >>> 8)
- } else {
- objectWriteUInt16(this, value, offset, true)
- }
- return offset + 2
-}
-
-Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value >>> 8)
- this[offset + 1] = (value & 0xff)
- } else {
- objectWriteUInt16(this, value, offset, false)
- }
- return offset + 2
-}
-
-Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value & 0xff)
- this[offset + 1] = (value >>> 8)
- this[offset + 2] = (value >>> 16)
- this[offset + 3] = (value >>> 24)
- } else {
- objectWriteUInt32(this, value, offset, true)
- }
- return offset + 4
-}
-
-Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
- if (value < 0) value = 0xffffffff + value + 1
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value >>> 24)
- this[offset + 1] = (value >>> 16)
- this[offset + 2] = (value >>> 8)
- this[offset + 3] = (value & 0xff)
- } else {
- objectWriteUInt32(this, value, offset, false)
- }
- return offset + 4
-}
-
-function checkIEEE754 (buf, value, offset, ext, max, min) {
- if (offset + ext > buf.length) throw new RangeError('Index out of range')
- if (offset < 0) throw new RangeError('Index out of range')
-}
-
-function writeFloat (buf, value, offset, littleEndian, noAssert) {
- if (!noAssert) {
- checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
- }
- ieee754.write(buf, value, offset, littleEndian, 23, 4)
- return offset + 4
-}
-
-Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
- return writeFloat(this, value, offset, true, noAssert)
-}
-
-Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
- return writeFloat(this, value, offset, false, noAssert)
-}
-
-function writeDouble (buf, value, offset, littleEndian, noAssert) {
- if (!noAssert) {
- checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
- }
- ieee754.write(buf, value, offset, littleEndian, 52, 8)
- return offset + 8
-}
-
-Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
- return writeDouble(this, value, offset, true, noAssert)
-}
-
-Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
- return writeDouble(this, value, offset, false, noAssert)
-}
-
-// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
-Buffer.prototype.copy = function copy (target, targetStart, start, end) {
- if (!start) start = 0
- if (!end && end !== 0) end = this.length
- if (targetStart >= target.length) targetStart = target.length
- if (!targetStart) targetStart = 0
- if (end > 0 && end < start) end = start
-
- // Copy 0 bytes; we're done
- if (end === start) return 0
- if (target.length === 0 || this.length === 0) return 0
-
- // Fatal error conditions
- if (targetStart < 0) {
- throw new RangeError('targetStart out of bounds')
- }
- if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')
- if (end < 0) throw new RangeError('sourceEnd out of bounds')
-
- // Are we oob?
- if (end > this.length) end = this.length
- if (target.length - targetStart < end - start) {
- end = target.length - targetStart + start
- }
-
- var len = end - start
- var i
-
- if (this === target && start < targetStart && targetStart < end) {
- // descending copy from end
- for (i = len - 1; i >= 0; i--) {
- target[i + targetStart] = this[i + start]
- }
- } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
- // ascending copy from start
- for (i = 0; i < len; i++) {
- target[i + targetStart] = this[i + start]
- }
- } else {
- Uint8Array.prototype.set.call(
- target,
- this.subarray(start, start + len),
- targetStart
- )
- }
-
- return len
-}
-
-// Usage:
-// buffer.fill(number[, offset[, end]])
-// buffer.fill(buffer[, offset[, end]])
-// buffer.fill(string[, offset[, end]][, encoding])
-Buffer.prototype.fill = function fill (val, start, end, encoding) {
- // Handle string cases:
- if (typeof val === 'string') {
- if (typeof start === 'string') {
- encoding = start
- start = 0
- end = this.length
- } else if (typeof end === 'string') {
- encoding = end
- end = this.length
- }
- if (val.length === 1) {
- var code = val.charCodeAt(0)
- if (code < 256) {
- val = code
- }
- }
- if (encoding !== undefined && typeof encoding !== 'string') {
- throw new TypeError('encoding must be a string')
- }
- if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
- throw new TypeError('Unknown encoding: ' + encoding)
- }
- } else if (typeof val === 'number') {
- val = val & 255
- }
-
- // Invalid ranges are not set to a default, so can range check early.
- if (start < 0 || this.length < start || this.length < end) {
- throw new RangeError('Out of range index')
- }
-
- if (end <= start) {
- return this
- }
-
- start = start >>> 0
- end = end === undefined ? this.length : end >>> 0
-
- if (!val) val = 0
-
- var i
- if (typeof val === 'number') {
- for (i = start; i < end; i++) {
- this[i] = val
- }
- } else {
- var bytes = Buffer.isBuffer(val)
- ? val
- : utf8ToBytes(new Buffer(val, encoding).toString())
- var len = bytes.length
- for (i = 0; i < end - start; i++) {
- this[i + start] = bytes[i % len]
- }
- }
-
- return this
-}
-
-// HELPER FUNCTIONS
-// ================
-
-var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g
-
-function base64clean (str) {
- // Node strips out invalid characters like \n and \t from the string, base64-js does not
- str = stringtrim(str).replace(INVALID_BASE64_RE, '')
- // Node converts strings with length < 2 to ''
- if (str.length < 2) return ''
- // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
- while (str.length % 4 !== 0) {
- str = str + '='
- }
- return str
-}
-
-function stringtrim (str) {
- if (str.trim) return str.trim()
- return str.replace(/^\s+|\s+$/g, '')
-}
-
-function toHex (n) {
- if (n < 16) return '0' + n.toString(16)
- return n.toString(16)
-}
-
-function utf8ToBytes (string, units) {
- units = units || Infinity
- var codePoint
- var length = string.length
- var leadSurrogate = null
- var bytes = []
-
- for (var i = 0; i < length; i++) {
- codePoint = string.charCodeAt(i)
-
- // is surrogate component
- if (codePoint > 0xD7FF && codePoint < 0xE000) {
- // last char was a lead
- if (!leadSurrogate) {
- // no lead yet
- if (codePoint > 0xDBFF) {
- // unexpected trail
- if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
- continue
- } else if (i + 1 === length) {
- // unpaired lead
- if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
- continue
- }
-
- // valid lead
- leadSurrogate = codePoint
-
- continue
- }
-
- // 2 leads in a row
- if (codePoint < 0xDC00) {
- if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
- leadSurrogate = codePoint
- continue
- }
-
- // valid surrogate pair
- codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
- } else if (leadSurrogate) {
- // valid bmp char, but last char was a lead
- if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
- }
-
- leadSurrogate = null
-
- // encode utf8
- if (codePoint < 0x80) {
- if ((units -= 1) < 0) break
- bytes.push(codePoint)
- } else if (codePoint < 0x800) {
- if ((units -= 2) < 0) break
- bytes.push(
- codePoint >> 0x6 | 0xC0,
- codePoint & 0x3F | 0x80
- )
- } else if (codePoint < 0x10000) {
- if ((units -= 3) < 0) break
- bytes.push(
- codePoint >> 0xC | 0xE0,
- codePoint >> 0x6 & 0x3F | 0x80,
- codePoint & 0x3F | 0x80
- )
- } else if (codePoint < 0x110000) {
- if ((units -= 4) < 0) break
- bytes.push(
- codePoint >> 0x12 | 0xF0,
- codePoint >> 0xC & 0x3F | 0x80,
- codePoint >> 0x6 & 0x3F | 0x80,
- codePoint & 0x3F | 0x80
- )
- } else {
- throw new Error('Invalid code point')
- }
- }
-
- return bytes
-}
-
-function asciiToBytes (str) {
- var byteArray = []
- for (var i = 0; i < str.length; i++) {
- // Node's code seems to be doing this and not & 0x7F..
- byteArray.push(str.charCodeAt(i) & 0xFF)
- }
- return byteArray
-}
-
-function utf16leToBytes (str, units) {
- var c, hi, lo
- var byteArray = []
- for (var i = 0; i < str.length; i++) {
- if ((units -= 2) < 0) break
-
- c = str.charCodeAt(i)
- hi = c >> 8
- lo = c % 256
- byteArray.push(lo)
- byteArray.push(hi)
- }
-
- return byteArray
-}
-
-function base64ToBytes (str) {
- return base64.toByteArray(base64clean(str))
-}
-
-function blitBuffer (src, dst, offset, length) {
- for (var i = 0; i < length; i++) {
- if ((i + offset >= dst.length) || (i >= src.length)) break
- dst[i + offset] = src[i]
- }
- return i
-}
-
-function isnan (val) {
- return val !== val // eslint-disable-line no-self-compare
-}
-
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"base64-js":40,"ieee754":52,"isarray":46}],46:[function(require,module,exports){
-var toString = {}.toString;
-
-module.exports = Array.isArray || function (arr) {
- return toString.call(arr) == '[object Array]';
-};
-
-},{}],47:[function(require,module,exports){
-(function (Buffer){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// 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.
-
-// NOTE: These type checking functions intentionally don't use `instanceof`
-// because it is fragile and can be easily faked with `Object.create()`.
-
-function isArray(arg) {
- if (Array.isArray) {
- return Array.isArray(arg);
- }
- return objectToString(arg) === '[object Array]';
-}
-exports.isArray = isArray;
-
-function isBoolean(arg) {
- return typeof arg === 'boolean';
-}
-exports.isBoolean = isBoolean;
-
-function isNull(arg) {
- return arg === null;
-}
-exports.isNull = isNull;
-
-function isNullOrUndefined(arg) {
- return arg == null;
-}
-exports.isNullOrUndefined = isNullOrUndefined;
-
-function isNumber(arg) {
- return typeof arg === 'number';
-}
-exports.isNumber = isNumber;
-
-function isString(arg) {
- return typeof arg === 'string';
-}
-exports.isString = isString;
-
-function isSymbol(arg) {
- return typeof arg === 'symbol';
-}
-exports.isSymbol = isSymbol;
-
-function isUndefined(arg) {
- return arg === void 0;
-}
-exports.isUndefined = isUndefined;
-
-function isRegExp(re) {
- return objectToString(re) === '[object RegExp]';
-}
-exports.isRegExp = isRegExp;
-
-function isObject(arg) {
- return typeof arg === 'object' && arg !== null;
-}
-exports.isObject = isObject;
-
-function isDate(d) {
- return objectToString(d) === '[object Date]';
-}
-exports.isDate = isDate;
-
-function isError(e) {
- return (objectToString(e) === '[object Error]' || e instanceof Error);
-}
-exports.isError = isError;
-
-function isFunction(arg) {
- return typeof arg === 'function';
-}
-exports.isFunction = isFunction;
-
-function isPrimitive(arg) {
- return arg === null ||
- typeof arg === 'boolean' ||
- typeof arg === 'number' ||
- typeof arg === 'string' ||
- typeof arg === 'symbol' || // ES6 symbol
- typeof arg === 'undefined';
-}
-exports.isPrimitive = isPrimitive;
-
-exports.isBuffer = Buffer.isBuffer;
-
-function objectToString(o) {
- return Object.prototype.toString.call(o);
-}
-
-}).call(this,{"isBuffer":require("../../is-buffer/index.js")})
-},{"../../is-buffer/index.js":54}],48:[function(require,module,exports){
-/* See LICENSE file for terms of use */
-
-/*
- * Text diff implementation.
- *
- * This library supports the following APIS:
- * JsDiff.diffChars: Character by character diff
- * JsDiff.diffWords: Word (as defined by \b regex) diff which ignores whitespace
- * JsDiff.diffLines: Line based diff
- *
- * JsDiff.diffCss: Diff targeted at CSS content
- *
- * These methods are based on the implementation proposed in
- * "An O(ND) Difference Algorithm and its Variations" (Myers, 1986).
- * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927
- */
-(function(global, undefined) {
- var objectPrototypeToString = Object.prototype.toString;
-
- /*istanbul ignore next*/
- function map(arr, mapper, that) {
- if (Array.prototype.map) {
- return Array.prototype.map.call(arr, mapper, that);
- }
-
- var other = new Array(arr.length);
-
- for (var i = 0, n = arr.length; i < n; i++) {
- other[i] = mapper.call(that, arr[i], i, arr);
- }
- return other;
- }
- function clonePath(path) {
- return { newPos: path.newPos, components: path.components.slice(0) };
- }
- function removeEmpty(array) {
- var ret = [];
- for (var i = 0; i < array.length; i++) {
- if (array[i]) {
- ret.push(array[i]);
- }
- }
- return ret;
- }
- function escapeHTML(s) {
- var n = s;
- n = n.replace(/&/g, '&amp;');
- n = n.replace(/</g, '&lt;');
- n = n.replace(/>/g, '&gt;');
- n = n.replace(/"/g, '&quot;');
-
- return n;
- }
-
- // This function handles the presence of circular references by bailing out when encountering an
- // object that is already on the "stack" of items being processed.
- function canonicalize(obj, stack, replacementStack) {
- stack = stack || [];
- replacementStack = replacementStack || [];
-
- var i;
-
- for (i = 0; i < stack.length; i += 1) {
- if (stack[i] === obj) {
- return replacementStack[i];
- }
- }
-
- var canonicalizedObj;
-
- if ('[object Array]' === objectPrototypeToString.call(obj)) {
- stack.push(obj);
- canonicalizedObj = new Array(obj.length);
- replacementStack.push(canonicalizedObj);
- for (i = 0; i < obj.length; i += 1) {
- canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack);
- }
- stack.pop();
- replacementStack.pop();
- } else if (typeof obj === 'object' && obj !== null) {
- stack.push(obj);
- canonicalizedObj = {};
- replacementStack.push(canonicalizedObj);
- var sortedKeys = [],
- key;
- for (key in obj) {
- sortedKeys.push(key);
- }
- sortedKeys.sort();
- for (i = 0; i < sortedKeys.length; i += 1) {
- key = sortedKeys[i];
- canonicalizedObj[key] = canonicalize(obj[key], stack, replacementStack);
- }
- stack.pop();
- replacementStack.pop();
- } else {
- canonicalizedObj = obj;
- }
- return canonicalizedObj;
- }
-
- function buildValues(components, newString, oldString, useLongestToken) {
- var componentPos = 0,
- componentLen = components.length,
- newPos = 0,
- oldPos = 0;
-
- for (; componentPos < componentLen; componentPos++) {
- var component = components[componentPos];
- if (!component.removed) {
- if (!component.added && useLongestToken) {
- var value = newString.slice(newPos, newPos + component.count);
- value = map(value, function(value, i) {
- var oldValue = oldString[oldPos + i];
- return oldValue.length > value.length ? oldValue : value;
- });
-
- component.value = value.join('');
- } else {
- component.value = newString.slice(newPos, newPos + component.count).join('');
- }
- newPos += component.count;
-
- // Common case
- if (!component.added) {
- oldPos += component.count;
- }
- } else {
- component.value = oldString.slice(oldPos, oldPos + component.count).join('');
- oldPos += component.count;
-
- // Reverse add and remove so removes are output first to match common convention
- // The diffing algorithm is tied to add then remove output and this is the simplest
- // route to get the desired output with minimal overhead.
- if (componentPos && components[componentPos - 1].added) {
- var tmp = components[componentPos - 1];
- components[componentPos - 1] = components[componentPos];
- components[componentPos] = tmp;
- }
- }
- }
-
- return components;
- }
-
- function Diff(ignoreWhitespace) {
- this.ignoreWhitespace = ignoreWhitespace;
- }
- Diff.prototype = {
- diff: function(oldString, newString, callback) {
- var self = this;
-
- function done(value) {
- if (callback) {
- setTimeout(function() { callback(undefined, value); }, 0);
- return true;
- } else {
- return value;
- }
- }
-
- // Handle the identity case (this is due to unrolling editLength == 0
- if (newString === oldString) {
- return done([{ value: newString }]);
- }
- if (!newString) {
- return done([{ value: oldString, removed: true }]);
- }
- if (!oldString) {
- return done([{ value: newString, added: true }]);
- }
-
- newString = this.tokenize(newString);
- oldString = this.tokenize(oldString);
-
- var newLen = newString.length, oldLen = oldString.length;
- var editLength = 1;
- var maxEditLength = newLen + oldLen;
- var bestPath = [{ newPos: -1, components: [] }];
-
- // Seed editLength = 0, i.e. the content starts with the same values
- var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);
- if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {
- // Identity per the equality and tokenizer
- return done([{value: newString.join('')}]);
- }
-
- // Main worker method. checks all permutations of a given edit length for acceptance.
- function execEditLength() {
- for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {
- var basePath;
- var addPath = bestPath[diagonalPath - 1],
- removePath = bestPath[diagonalPath + 1],
- oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;
- if (addPath) {
- // No one else is going to attempt to use this value, clear it
- bestPath[diagonalPath - 1] = undefined;
- }
-
- var canAdd = addPath && addPath.newPos + 1 < newLen,
- canRemove = removePath && 0 <= oldPos && oldPos < oldLen;
- if (!canAdd && !canRemove) {
- // If this path is a terminal then prune
- bestPath[diagonalPath] = undefined;
- continue;
- }
-
- // Select the diagonal that we want to branch from. We select the prior
- // path whose position in the new string is the farthest from the origin
- // and does not pass the bounds of the diff graph
- if (!canAdd || (canRemove && addPath.newPos < removePath.newPos)) {
- basePath = clonePath(removePath);
- self.pushComponent(basePath.components, undefined, true);
- } else {
- basePath = addPath; // No need to clone, we've pulled it from the list
- basePath.newPos++;
- self.pushComponent(basePath.components, true, undefined);
- }
-
- oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath);
-
- // If we have hit the end of both strings, then we are done
- if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {
- return done(buildValues(basePath.components, newString, oldString, self.useLongestToken));
- } else {
- // Otherwise track this path as a potential candidate and continue.
- bestPath[diagonalPath] = basePath;
- }
- }
-
- editLength++;
- }
-
- // Performs the length of edit iteration. Is a bit fugly as this has to support the
- // sync and async mode which is never fun. Loops over execEditLength until a value
- // is produced.
- if (callback) {
- (function exec() {
- setTimeout(function() {
- // This should not happen, but we want to be safe.
- /*istanbul ignore next */
- if (editLength > maxEditLength) {
- return callback();
- }
-
- if (!execEditLength()) {
- exec();
- }
- }, 0);
- }());
- } else {
- while (editLength <= maxEditLength) {
- var ret = execEditLength();
- if (ret) {
- return ret;
- }
- }
- }
- },
-
- pushComponent: function(components, added, removed) {
- var last = components[components.length - 1];
- if (last && last.added === added && last.removed === removed) {
- // We need to clone here as the component clone operation is just
- // as shallow array clone
- components[components.length - 1] = {count: last.count + 1, added: added, removed: removed };
- } else {
- components.push({count: 1, added: added, removed: removed });
- }
- },
- extractCommon: function(basePath, newString, oldString, diagonalPath) {
- var newLen = newString.length,
- oldLen = oldString.length,
- newPos = basePath.newPos,
- oldPos = newPos - diagonalPath,
-
- commonCount = 0;
- while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {
- newPos++;
- oldPos++;
- commonCount++;
- }
-
- if (commonCount) {
- basePath.components.push({count: commonCount});
- }
-
- basePath.newPos = newPos;
- return oldPos;
- },
-
- equals: function(left, right) {
- var reWhitespace = /\S/;
- return left === right || (this.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right));
- },
- tokenize: function(value) {
- return value.split('');
- }
- };
-
- var CharDiff = new Diff();
-
- var WordDiff = new Diff(true);
- var WordWithSpaceDiff = new Diff();
- WordDiff.tokenize = WordWithSpaceDiff.tokenize = function(value) {
- return removeEmpty(value.split(/(\s+|\b)/));
- };
-
- var CssDiff = new Diff(true);
- CssDiff.tokenize = function(value) {
- return removeEmpty(value.split(/([{}:;,]|\s+)/));
- };
-
- var LineDiff = new Diff();
-
- var TrimmedLineDiff = new Diff();
- TrimmedLineDiff.ignoreTrim = true;
-
- LineDiff.tokenize = TrimmedLineDiff.tokenize = function(value) {
- var retLines = [],
- lines = value.split(/^/m);
- for (var i = 0; i < lines.length; i++) {
- var line = lines[i],
- lastLine = lines[i - 1],
- lastLineLastChar = lastLine && lastLine[lastLine.length - 1];
-
- // Merge lines that may contain windows new lines
- if (line === '\n' && lastLineLastChar === '\r') {
- retLines[retLines.length - 1] = retLines[retLines.length - 1].slice(0, -1) + '\r\n';
- } else {
- if (this.ignoreTrim) {
- line = line.trim();
- // add a newline unless this is the last line.
- if (i < lines.length - 1) {
- line += '\n';
- }
- }
- retLines.push(line);
- }
- }
-
- return retLines;
- };
-
- var PatchDiff = new Diff();
- PatchDiff.tokenize = function(value) {
- var ret = [],
- linesAndNewlines = value.split(/(\n|\r\n)/);
-
- // Ignore the final empty token that occurs if the string ends with a new line
- if (!linesAndNewlines[linesAndNewlines.length - 1]) {
- linesAndNewlines.pop();
- }
-
- // Merge the content and line separators into single tokens
- for (var i = 0; i < linesAndNewlines.length; i++) {
- var line = linesAndNewlines[i];
-
- if (i % 2) {
- ret[ret.length - 1] += line;
- } else {
- ret.push(line);
- }
- }
- return ret;
- };
-
- var SentenceDiff = new Diff();
- SentenceDiff.tokenize = function(value) {
- return removeEmpty(value.split(/(\S.+?[.!?])(?=\s+|$)/));
- };
-
- var JsonDiff = new Diff();
- // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a
- // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:
- JsonDiff.useLongestToken = true;
- JsonDiff.tokenize = LineDiff.tokenize;
- JsonDiff.equals = function(left, right) {
- return LineDiff.equals(left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1'));
- };
-
- var JsDiff = {
- Diff: Diff,
-
- diffChars: function(oldStr, newStr, callback) { return CharDiff.diff(oldStr, newStr, callback); },
- diffWords: function(oldStr, newStr, callback) { return WordDiff.diff(oldStr, newStr, callback); },
- diffWordsWithSpace: function(oldStr, newStr, callback) { return WordWithSpaceDiff.diff(oldStr, newStr, callback); },
- diffLines: function(oldStr, newStr, callback) { return LineDiff.diff(oldStr, newStr, callback); },
- diffTrimmedLines: function(oldStr, newStr, callback) { return TrimmedLineDiff.diff(oldStr, newStr, callback); },
-
- diffSentences: function(oldStr, newStr, callback) { return SentenceDiff.diff(oldStr, newStr, callback); },
-
- diffCss: function(oldStr, newStr, callback) { return CssDiff.diff(oldStr, newStr, callback); },
- diffJson: function(oldObj, newObj, callback) {
- return JsonDiff.diff(
- typeof oldObj === 'string' ? oldObj : JSON.stringify(canonicalize(oldObj), undefined, ' '),
- typeof newObj === 'string' ? newObj : JSON.stringify(canonicalize(newObj), undefined, ' '),
- callback
- );
- },
-
- createTwoFilesPatch: function(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader) {
- var ret = [];
-
- if (oldFileName == newFileName) {
- ret.push('Index: ' + oldFileName);
- }
- ret.push('===================================================================');
- ret.push('--- ' + oldFileName + (typeof oldHeader === 'undefined' ? '' : '\t' + oldHeader));
- ret.push('+++ ' + newFileName + (typeof newHeader === 'undefined' ? '' : '\t' + newHeader));
-
- var diff = PatchDiff.diff(oldStr, newStr);
- diff.push({value: '', lines: []}); // Append an empty value to make cleanup easier
-
- // Formats a given set of lines for printing as context lines in a patch
- function contextLines(lines) {
- return map(lines, function(entry) { return ' ' + entry; });
- }
-
- // Outputs the no newline at end of file warning if needed
- function eofNL(curRange, i, current) {
- var last = diff[diff.length - 2],
- isLast = i === diff.length - 2,
- isLastOfType = i === diff.length - 3 && current.added !== last.added;
-
- // Figure out if this is the last line for the given file and missing NL
- if (!(/\n$/.test(current.value)) && (isLast || isLastOfType)) {
- curRange.push('\\ No newline at end of file');
- }
- }
-
- var oldRangeStart = 0, newRangeStart = 0, curRange = [],
- oldLine = 1, newLine = 1;
- for (var i = 0; i < diff.length; i++) {
- var current = diff[i],
- lines = current.lines || current.value.replace(/\n$/, '').split('\n');
- current.lines = lines;
-
- if (current.added || current.removed) {
- // If we have previous context, start with that
- if (!oldRangeStart) {
- var prev = diff[i - 1];
- oldRangeStart = oldLine;
- newRangeStart = newLine;
-
- if (prev) {
- curRange = contextLines(prev.lines.slice(-4));
- oldRangeStart -= curRange.length;
- newRangeStart -= curRange.length;
- }
- }
-
- // Output our changes
- curRange.push.apply(curRange, map(lines, function(entry) {
- return (current.added ? '+' : '-') + entry;
- }));
- eofNL(curRange, i, current);
-
- // Track the updated file position
- if (current.added) {
- newLine += lines.length;
- } else {
- oldLine += lines.length;
- }
- } else {
- // Identical context lines. Track line changes
- if (oldRangeStart) {
- // Close out any changes that have been output (or join overlapping)
- if (lines.length <= 8 && i < diff.length - 2) {
- // Overlapping
- curRange.push.apply(curRange, contextLines(lines));
- } else {
- // end the range and output
- var contextSize = Math.min(lines.length, 4);
- ret.push(
- '@@ -' + oldRangeStart + ',' + (oldLine - oldRangeStart + contextSize)
- + ' +' + newRangeStart + ',' + (newLine - newRangeStart + contextSize)
- + ' @@');
- ret.push.apply(ret, curRange);
- ret.push.apply(ret, contextLines(lines.slice(0, contextSize)));
- if (lines.length <= 4) {
- eofNL(ret, i, current);
- }
-
- oldRangeStart = 0;
- newRangeStart = 0;
- curRange = [];
- }
- }
- oldLine += lines.length;
- newLine += lines.length;
- }
- }
-
- return ret.join('\n') + '\n';
- },
-
- createPatch: function(fileName, oldStr, newStr, oldHeader, newHeader) {
- return JsDiff.createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader);
- },
-
- applyPatch: function(oldStr, uniDiff) {
- var diffstr = uniDiff.split('\n'),
- hunks = [],
- i = 0,
- remEOFNL = false,
- addEOFNL = false;
-
- // Skip to the first change hunk
- while (i < diffstr.length && !(/^@@/.test(diffstr[i]))) {
- i++;
- }
-
- // Parse the unified diff
- for (; i < diffstr.length; i++) {
- if (diffstr[i][0] === '@') {
- var chnukHeader = diffstr[i].split(/@@ -(\d+),(\d+) \+(\d+),(\d+) @@/);
- hunks.unshift({
- start: chnukHeader[3],
- oldlength: +chnukHeader[2],
- removed: [],
- newlength: chnukHeader[4],
- added: []
- });
- } else if (diffstr[i][0] === '+') {
- hunks[0].added.push(diffstr[i].substr(1));
- } else if (diffstr[i][0] === '-') {
- hunks[0].removed.push(diffstr[i].substr(1));
- } else if (diffstr[i][0] === ' ') {
- hunks[0].added.push(diffstr[i].substr(1));
- hunks[0].removed.push(diffstr[i].substr(1));
- } else if (diffstr[i][0] === '\\') {
- if (diffstr[i - 1][0] === '+') {
- remEOFNL = true;
- } else if (diffstr[i - 1][0] === '-') {
- addEOFNL = true;
- }
- }
- }
-
- // Apply the diff to the input
- var lines = oldStr.split('\n');
- for (i = hunks.length - 1; i >= 0; i--) {
- var hunk = hunks[i];
- // Sanity check the input string. Bail if we don't match.
- for (var j = 0; j < hunk.oldlength; j++) {
- if (lines[hunk.start - 1 + j] !== hunk.removed[j]) {
- return false;
- }
- }
- Array.prototype.splice.apply(lines, [hunk.start - 1, hunk.oldlength].concat(hunk.added));
- }
-
- // Handle EOFNL insertion/removal
- if (remEOFNL) {
- while (!lines[lines.length - 1]) {
- lines.pop();
- }
- } else if (addEOFNL) {
- lines.push('');
- }
- return lines.join('\n');
- },
-
- convertChangesToXML: function(changes) {
- var ret = [];
- for (var i = 0; i < changes.length; i++) {
- var change = changes[i];
- if (change.added) {
- ret.push('<ins>');
- } else if (change.removed) {
- ret.push('<del>');
- }
-
- ret.push(escapeHTML(change.value));
-
- if (change.added) {
- ret.push('</ins>');
- } else if (change.removed) {
- ret.push('</del>');
- }
- }
- return ret.join('');
- },
-
- // See: http://code.google.com/p/google-diff-match-patch/wiki/API
- convertChangesToDMP: function(changes) {
- var ret = [],
- change,
- operation;
- for (var i = 0; i < changes.length; i++) {
- change = changes[i];
- if (change.added) {
- operation = 1;
- } else if (change.removed) {
- operation = -1;
- } else {
- operation = 0;
- }
-
- ret.push([operation, change.value]);
- }
- return ret;
- },
-
- canonicalize: canonicalize
- };
-
- /*istanbul ignore next */
- /*global module */
- if (typeof module !== 'undefined' && module.exports) {
- module.exports = JsDiff;
- } else if (typeof define === 'function' && define.amd) {
- /*global define */
- define([], function() { return JsDiff; });
- } else if (typeof global.JsDiff === 'undefined') {
- global.JsDiff = JsDiff;
- }
-}(this));
-
-},{}],49:[function(require,module,exports){
-'use strict';
-
-var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g;
-
-module.exports = function (str) {
- if (typeof str !== 'string') {
- throw new TypeError('Expected a string');
- }
-
- return str.replace(matchOperatorsRe, '\\$&');
-};
-
-},{}],50:[function(require,module,exports){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// 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.
-
-function EventEmitter() {
- this._events = this._events || {};
- this._maxListeners = this._maxListeners || undefined;
-}
-module.exports = EventEmitter;
-
-// Backwards-compat with node 0.10.x
-EventEmitter.EventEmitter = EventEmitter;
-
-EventEmitter.prototype._events = undefined;
-EventEmitter.prototype._maxListeners = undefined;
-
-// By default EventEmitters will print a warning if more than 10 listeners are
-// added to it. This is a useful default which helps finding memory leaks.
-EventEmitter.defaultMaxListeners = 10;
-
-// Obviously not all Emitters should be limited to 10. This function allows
-// that to be increased. Set to zero for unlimited.
-EventEmitter.prototype.setMaxListeners = function(n) {
- if (!isNumber(n) || n < 0 || isNaN(n))
- throw TypeError('n must be a positive number');
- this._maxListeners = n;
- return this;
-};
-
-EventEmitter.prototype.emit = function(type) {
- var er, handler, len, args, i, listeners;
-
- if (!this._events)
- this._events = {};
-
- // If there is no 'error' event listener then throw.
- if (type === 'error') {
- if (!this._events.error ||
- (isObject(this._events.error) && !this._events.error.length)) {
- er = arguments[1];
- if (er instanceof Error) {
- throw er; // Unhandled 'error' event
- }
- throw TypeError('Uncaught, unspecified "error" event.');
- }
- }
-
- handler = this._events[type];
-
- if (isUndefined(handler))
- return false;
-
- if (isFunction(handler)) {
- switch (arguments.length) {
- // fast cases
- case 1:
- handler.call(this);
- break;
- case 2:
- handler.call(this, arguments[1]);
- break;
- case 3:
- handler.call(this, arguments[1], arguments[2]);
- break;
- // slower
- default:
- args = Array.prototype.slice.call(arguments, 1);
- handler.apply(this, args);
- }
- } else if (isObject(handler)) {
- args = Array.prototype.slice.call(arguments, 1);
- listeners = handler.slice();
- len = listeners.length;
- for (i = 0; i < len; i++)
- listeners[i].apply(this, args);
- }
-
- return true;
-};
-
-EventEmitter.prototype.addListener = function(type, listener) {
- var m;
-
- if (!isFunction(listener))
- throw TypeError('listener must be a function');
-
- if (!this._events)
- this._events = {};
-
- // To avoid recursion in the case that type === "newListener"! Before
- // adding it to the listeners, first emit "newListener".
- if (this._events.newListener)
- this.emit('newListener', type,
- isFunction(listener.listener) ?
- listener.listener : listener);
-
- if (!this._events[type])
- // Optimize the case of one listener. Don't need the extra array object.
- this._events[type] = listener;
- else if (isObject(this._events[type]))
- // If we've already got an array, just append.
- this._events[type].push(listener);
- else
- // Adding the second element, need to change to array.
- this._events[type] = [this._events[type], listener];
-
- // Check for listener leak
- if (isObject(this._events[type]) && !this._events[type].warned) {
- if (!isUndefined(this._maxListeners)) {
- m = this._maxListeners;
- } else {
- m = EventEmitter.defaultMaxListeners;
- }
-
- if (m && m > 0 && this._events[type].length > m) {
- this._events[type].warned = true;
- console.error('(node) warning: possible EventEmitter memory ' +
- 'leak detected. %d listeners added. ' +
- 'Use emitter.setMaxListeners() to increase limit.',
- this._events[type].length);
- if (typeof console.trace === 'function') {
- // not supported in IE 10
- console.trace();
- }
- }
- }
-
- return this;
-};
-
-EventEmitter.prototype.on = EventEmitter.prototype.addListener;
-
-EventEmitter.prototype.once = function(type, listener) {
- if (!isFunction(listener))
- throw TypeError('listener must be a function');
-
- var fired = false;
-
- function g() {
- this.removeListener(type, g);
-
- if (!fired) {
- fired = true;
- listener.apply(this, arguments);
- }
- }
-
- g.listener = listener;
- this.on(type, g);
-
- return this;
-};
-
-// emits a 'removeListener' event iff the listener was removed
-EventEmitter.prototype.removeListener = function(type, listener) {
- var list, position, length, i;
-
- if (!isFunction(listener))
- throw TypeError('listener must be a function');
-
- if (!this._events || !this._events[type])
- return this;
-
- list = this._events[type];
- length = list.length;
- position = -1;
-
- if (list === listener ||
- (isFunction(list.listener) && list.listener === listener)) {
- delete this._events[type];
- if (this._events.removeListener)
- this.emit('removeListener', type, listener);
-
- } else if (isObject(list)) {
- for (i = length; i-- > 0;) {
- if (list[i] === listener ||
- (list[i].listener && list[i].listener === listener)) {
- position = i;
- break;
- }
- }
-
- if (position < 0)
- return this;
-
- if (list.length === 1) {
- list.length = 0;
- delete this._events[type];
- } else {
- list.splice(position, 1);
- }
-
- if (this._events.removeListener)
- this.emit('removeListener', type, listener);
- }
-
- return this;
-};
-
-EventEmitter.prototype.removeAllListeners = function(type) {
- var key, listeners;
-
- if (!this._events)
- return this;
-
- // not listening for removeListener, no need to emit
- if (!this._events.removeListener) {
- if (arguments.length === 0)
- this._events = {};
- else if (this._events[type])
- delete this._events[type];
- return this;
- }
-
- // emit removeListener for all listeners on all events
- if (arguments.length === 0) {
- for (key in this._events) {
- if (key === 'removeListener') continue;
- this.removeAllListeners(key);
- }
- this.removeAllListeners('removeListener');
- this._events = {};
- return this;
- }
-
- listeners = this._events[type];
-
- if (isFunction(listeners)) {
- this.removeListener(type, listeners);
- } else if (listeners) {
- // LIFO order
- while (listeners.length)
- this.removeListener(type, listeners[listeners.length - 1]);
- }
- delete this._events[type];
-
- return this;
-};
-
-EventEmitter.prototype.listeners = function(type) {
- var ret;
- if (!this._events || !this._events[type])
- ret = [];
- else if (isFunction(this._events[type]))
- ret = [this._events[type]];
- else
- ret = this._events[type].slice();
- return ret;
-};
-
-EventEmitter.prototype.listenerCount = function(type) {
- if (this._events) {
- var evlistener = this._events[type];
-
- if (isFunction(evlistener))
- return 1;
- else if (evlistener)
- return evlistener.length;
- }
- return 0;
-};
-
-EventEmitter.listenerCount = function(emitter, type) {
- return emitter.listenerCount(type);
-};
-
-function isFunction(arg) {
- return typeof arg === 'function';
-}
-
-function isNumber(arg) {
- return typeof arg === 'number';
-}
-
-function isObject(arg) {
- return typeof arg === 'object' && arg !== null;
-}
-
-function isUndefined(arg) {
- return arg === void 0;
-}
-
-},{}],51:[function(require,module,exports){
-(function (process){
-// Growl - Copyright TJ Holowaychuk <tj@vision-media.ca> (MIT Licensed)
-
-/**
- * Module dependencies.
- */
-
-var exec = require('child_process').exec
- , fs = require('fs')
- , path = require('path')
- , exists = fs.existsSync || path.existsSync
- , os = require('os')
- , quote = JSON.stringify
- , cmd;
-
-function which(name) {
- var paths = process.env.PATH.split(':');
- var loc;
-
- for (var i = 0, len = paths.length; i < len; ++i) {
- loc = path.join(paths[i], name);
- if (exists(loc)) return loc;
- }
-}
-
-switch(os.type()) {
- case 'Darwin':
- if (which('terminal-notifier')) {
- cmd = {
- type: "Darwin-NotificationCenter"
- , pkg: "terminal-notifier"
- , msg: '-message'
- , title: '-title'
- , subtitle: '-subtitle'
- , icon: '-appIcon'
- , sound: '-sound'
- , url: '-open'
- , priority: {
- cmd: '-execute'
- , range: []
- }
- };
- } else {
- cmd = {
- type: "Darwin-Growl"
- , pkg: "growlnotify"
- , msg: '-m'
- , sticky: '--sticky'
- , priority: {
- cmd: '--priority'
- , range: [
- -2
- , -1
- , 0
- , 1
- , 2
- , "Very Low"
- , "Moderate"
- , "Normal"
- , "High"
- , "Emergency"
- ]
- }
- };
- }
- break;
- case 'Linux':
- if (which('growl')) {
- cmd = {
- type: "Linux-Growl"
- , pkg: "growl"
- , msg: '-m'
- , title: '-title'
- , subtitle: '-subtitle'
- , host: {
- cmd: '-H'
- , hostname: '192.168.33.1'
- }
- };
- } else {
- cmd = {
- type: "Linux"
- , pkg: "notify-send"
- , msg: ''
- , sticky: '-t 0'
- , icon: '-i'
- , priority: {
- cmd: '-u'
- , range: [
- "low"
- , "normal"
- , "critical"
- ]
- }
- };
- }
- break;
- case 'Windows_NT':
- cmd = {
- type: "Windows"
- , pkg: "growlnotify"
- , msg: ''
- , sticky: '/s:true'
- , title: '/t:'
- , icon: '/i:'
- , url: '/cu:'
- , priority: {
- cmd: '/p:'
- , range: [
- -2
- , -1
- , 0
- , 1
- , 2
- ]
- }
- };
- break;
-}
-
-/**
- * Expose `growl`.
- */
-
-exports = module.exports = growl;
-
-/**
- * Node-growl version.
- */
-
-exports.version = '1.4.1'
-
-/**
- * Send growl notification _msg_ with _options_.
- *
- * Options:
- *
- * - title Notification title
- * - sticky Make the notification stick (defaults to false)
- * - priority Specify an int or named key (default is 0)
- * - name Application name (defaults to growlnotify)
- * - sound Sound efect ( in OSx defined in preferences -> sound -> effects) * works only in OSX > 10.8x
- * - image
- * - path to an icon sets --iconpath
- * - path to an image sets --image
- * - capitalized word sets --appIcon
- * - filename uses extname as --icon
- * - otherwise treated as --icon
- *
- * Examples:
- *
- * growl('New email')
- * growl('5 new emails', { title: 'Thunderbird' })
- * growl('5 new emails', { title: 'Thunderbird', sound: 'Purr' })
- * growl('Email sent', function(){
- * // ... notification sent
- * })
- *
- * @param {string} msg
- * @param {object} options
- * @param {function} fn
- * @api public
- */
-
-function growl(msg, options, fn) {
- var image
- , args
- , options = options || {}
- , fn = fn || function(){};
-
- if (options.exec) {
- cmd = {
- type: "Custom"
- , pkg: options.exec
- , range: []
- };
- }
-
- // noop
- if (!cmd) return fn(new Error('growl not supported on this platform'));
- args = [cmd.pkg];
-
- // image
- if (image = options.image) {
- switch(cmd.type) {
- case 'Darwin-Growl':
- var flag, ext = path.extname(image).substr(1)
- flag = flag || ext == 'icns' && 'iconpath'
- flag = flag || /^[A-Z]/.test(image) && 'appIcon'
- flag = flag || /^png|gif|jpe?g$/.test(ext) && 'image'
- flag = flag || ext && (image = ext) && 'icon'
- flag = flag || 'icon'
- args.push('--' + flag, quote(image))
- break;
- case 'Darwin-NotificationCenter':
- args.push(cmd.icon, quote(image));
- break;
- case 'Linux':
- args.push(cmd.icon, quote(image));
- // libnotify defaults to sticky, set a hint for transient notifications
- if (!options.sticky) args.push('--hint=int:transient:1');
- break;
- case 'Windows':
- args.push(cmd.icon + quote(image));
- break;
- }
- }
-
- // sticky
- if (options.sticky) args.push(cmd.sticky);
-
- // priority
- if (options.priority) {
- var priority = options.priority + '';
- var checkindexOf = cmd.priority.range.indexOf(priority);
- if (~cmd.priority.range.indexOf(priority)) {
- args.push(cmd.priority, options.priority);
- }
- }
-
- //sound
- if(options.sound && cmd.type === 'Darwin-NotificationCenter'){
- args.push(cmd.sound, options.sound)
- }
-
- // name
- if (options.name && cmd.type === "Darwin-Growl") {
- args.push('--name', options.name);
- }
-
- switch(cmd.type) {
- case 'Darwin-Growl':
- args.push(cmd.msg);
- args.push(quote(msg).replace(/\\n/g, '\n'));
- if (options.title) args.push(quote(options.title));
- break;
- case 'Darwin-NotificationCenter':
- args.push(cmd.msg);
- var stringifiedMsg = quote(msg);
- var escapedMsg = stringifiedMsg.replace(/\\n/g, '\n');
- args.push(escapedMsg);
- if (options.title) {
- args.push(cmd.title);
- args.push(quote(options.title));
- }
- if (options.subtitle) {
- args.push(cmd.subtitle);
- args.push(quote(options.subtitle));
- }
- if (options.url) {
- args.push(cmd.url);
- args.push(quote(options.url));
- }
- break;
- case 'Linux-Growl':
- args.push(cmd.msg);
- args.push(quote(msg).replace(/\\n/g, '\n'));
- if (options.title) args.push(quote(options.title));
- if (cmd.host) {
- args.push(cmd.host.cmd, cmd.host.hostname)
- }
- break;
- case 'Linux':
- if (options.title) {
- args.push(quote(options.title));
- args.push(cmd.msg);
- args.push(quote(msg).replace(/\\n/g, '\n'));
- } else {
- args.push(quote(msg).replace(/\\n/g, '\n'));
- }
- break;
- case 'Windows':
- args.push(quote(msg).replace(/\\n/g, '\n'));
- if (options.title) args.push(cmd.title + quote(options.title));
- if (options.url) args.push(cmd.url + quote(options.url));
- break;
- case 'Custom':
- args[0] = (function(origCommand) {
- var message = options.title
- ? options.title + ': ' + msg
- : msg;
- var command = origCommand.replace(/(^|[^%])%s/g, '$1' + quote(message));
- if (command === origCommand) args.push(quote(message));
- return command;
- })(args[0]);
- break;
- }
-
- // execute
- exec(args.join(' '), fn);
-};
-
-}).call(this,require('_process'))
-},{"_process":58,"child_process":43,"fs":43,"os":56,"path":43}],52:[function(require,module,exports){
-exports.read = function (buffer, offset, isLE, mLen, nBytes) {
- var e, m
- var eLen = nBytes * 8 - mLen - 1
- var eMax = (1 << eLen) - 1
- var eBias = eMax >> 1
- var nBits = -7
- var i = isLE ? (nBytes - 1) : 0
- var d = isLE ? -1 : 1
- var s = buffer[offset + i]
-
- i += d
-
- e = s & ((1 << (-nBits)) - 1)
- s >>= (-nBits)
- nBits += eLen
- for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
-
- m = e & ((1 << (-nBits)) - 1)
- e >>= (-nBits)
- nBits += mLen
- for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
-
- if (e === 0) {
- e = 1 - eBias
- } else if (e === eMax) {
- return m ? NaN : ((s ? -1 : 1) * Infinity)
- } else {
- m = m + Math.pow(2, mLen)
- e = e - eBias
- }
- return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
-}
-
-exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
- var e, m, c
- var eLen = nBytes * 8 - mLen - 1
- var eMax = (1 << eLen) - 1
- var eBias = eMax >> 1
- var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
- var i = isLE ? 0 : (nBytes - 1)
- var d = isLE ? 1 : -1
- var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
-
- value = Math.abs(value)
-
- if (isNaN(value) || value === Infinity) {
- m = isNaN(value) ? 1 : 0
- e = eMax
- } else {
- e = Math.floor(Math.log(value) / Math.LN2)
- if (value * (c = Math.pow(2, -e)) < 1) {
- e--
- c *= 2
- }
- if (e + eBias >= 1) {
- value += rt / c
- } else {
- value += rt * Math.pow(2, 1 - eBias)
- }
- if (value * c >= 2) {
- e++
- c /= 2
- }
-
- if (e + eBias >= eMax) {
- m = 0
- e = eMax
- } else if (e + eBias >= 1) {
- m = (value * c - 1) * Math.pow(2, mLen)
- e = e + eBias
- } else {
- m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
- e = 0
- }
- }
-
- for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
-
- e = (e << mLen) | m
- eLen += mLen
- for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
-
- buffer[offset + i - d] |= s * 128
-}
-
-},{}],53:[function(require,module,exports){
-if (typeof Object.create === 'function') {
- // implementation from standard node.js 'util' module
- module.exports = function inherits(ctor, superCtor) {
- ctor.super_ = superCtor
- ctor.prototype = Object.create(superCtor.prototype, {
- constructor: {
- value: ctor,
- enumerable: false,
- writable: true,
- configurable: true
- }
- });
- };
-} else {
- // old school shim for old browsers
- module.exports = function inherits(ctor, superCtor) {
- ctor.super_ = superCtor
- var TempCtor = function () {}
- TempCtor.prototype = superCtor.prototype
- ctor.prototype = new TempCtor()
- ctor.prototype.constructor = ctor
- }
-}
-
-},{}],54:[function(require,module,exports){
-/**
- * Determine if an object is Buffer
- *
- * Author: Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
- * License: MIT
- *
- * `npm install is-buffer`
- */
-
-module.exports = function (obj) {
- return !!(obj != null &&
- (obj._isBuffer || // For Safari 5-7 (missing Object.prototype.constructor)
- (obj.constructor &&
- typeof obj.constructor.isBuffer === 'function' &&
- obj.constructor.isBuffer(obj))
- ))
-}
-
-},{}],55:[function(require,module,exports){
-(function (process){
-var path = require('path');
-var fs = require('fs');
-var _0777 = parseInt('0777', 8);
-
-module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP;
-
-function mkdirP (p, opts, f, made) {
- if (typeof opts === 'function') {
- f = opts;
- opts = {};
- }
- else if (!opts || typeof opts !== 'object') {
- opts = { mode: opts };
- }
-
- var mode = opts.mode;
- var xfs = opts.fs || fs;
-
- if (mode === undefined) {
- mode = _0777 & (~process.umask());
- }
- if (!made) made = null;
-
- var cb = f || function () {};
- p = path.resolve(p);
-
- xfs.mkdir(p, mode, function (er) {
- if (!er) {
- made = made || p;
- return cb(null, made);
- }
- switch (er.code) {
- case 'ENOENT':
- mkdirP(path.dirname(p), opts, function (er, made) {
- if (er) cb(er, made);
- else mkdirP(p, opts, cb, made);
- });
- break;
-
- // In the case of any other error, just see if there's a dir
- // there already. If so, then hooray! If not, then something
- // is borked.
- default:
- xfs.stat(p, function (er2, stat) {
- // if the stat fails, then that's super weird.
- // let the original error be the failure reason.
- if (er2 || !stat.isDirectory()) cb(er, made)
- else cb(null, made);
- });
- break;
- }
- });
-}
-
-mkdirP.sync = function sync (p, opts, made) {
- if (!opts || typeof opts !== 'object') {
- opts = { mode: opts };
- }
-
- var mode = opts.mode;
- var xfs = opts.fs || fs;
-
- if (mode === undefined) {
- mode = _0777 & (~process.umask());
- }
- if (!made) made = null;
-
- p = path.resolve(p);
-
- try {
- xfs.mkdirSync(p, mode);
- made = made || p;
- }
- catch (err0) {
- switch (err0.code) {
- case 'ENOENT' :
- made = sync(path.dirname(p), opts, made);
- sync(p, opts, made);
- break;
-
- // In the case of any other error, just see if there's a dir
- // there already. If so, then hooray! If not, then something
- // is borked.
- default:
- var stat;
- try {
- stat = xfs.statSync(p);
- }
- catch (err1) {
- throw err0;
- }
- if (!stat.isDirectory()) throw err0;
- break;
- }
- }
-
- return made;
-};
-
-}).call(this,require('_process'))
-},{"_process":58,"fs":43,"path":43}],56:[function(require,module,exports){
-exports.endianness = function () { return 'LE' };
-
-exports.hostname = function () {
- if (typeof location !== 'undefined') {
- return location.hostname
- }
- else return '';
-};
-
-exports.loadavg = function () { return [] };
-
-exports.uptime = function () { return 0 };
-
-exports.freemem = function () {
- return Number.MAX_VALUE;
-};
-
-exports.totalmem = function () {
- return Number.MAX_VALUE;
-};
-
-exports.cpus = function () { return [] };
-
-exports.type = function () { return 'Browser' };
-
-exports.release = function () {
- if (typeof navigator !== 'undefined') {
- return navigator.appVersion;
- }
- return '';
-};
-
-exports.networkInterfaces
-= exports.getNetworkInterfaces
-= function () { return {} };
-
-exports.arch = function () { return 'javascript' };
-
-exports.platform = function () { return 'browser' };
-
-exports.tmpdir = exports.tmpDir = function () {
- return '/tmp';
-};
-
-exports.EOL = '\n';
-
-},{}],57:[function(require,module,exports){
-(function (process){
-'use strict';
-
-if (!process.version ||
- process.version.indexOf('v0.') === 0 ||
- process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
- module.exports = nextTick;
-} else {
- module.exports = process.nextTick;
-}
-
-function nextTick(fn, arg1, arg2, arg3) {
- if (typeof fn !== 'function') {
- throw new TypeError('"callback" argument must be a function');
- }
- var len = arguments.length;
- var args, i;
- switch (len) {
- case 0:
- case 1:
- return process.nextTick(fn);
- case 2:
- return process.nextTick(function afterTickOne() {
- fn.call(null, arg1);
- });
- case 3:
- return process.nextTick(function afterTickTwo() {
- fn.call(null, arg1, arg2);
- });
- case 4:
- return process.nextTick(function afterTickThree() {
- fn.call(null, arg1, arg2, arg3);
- });
- default:
- args = new Array(len - 1);
- i = 0;
- while (i < args.length) {
- args[i++] = arguments[i];
- }
- return process.nextTick(function afterTick() {
- fn.apply(null, args);
- });
- }
-}
-
-}).call(this,require('_process'))
-},{"_process":58}],58:[function(require,module,exports){
-// shim for using process in browser
-
-var process = module.exports = {};
-var queue = [];
-var draining = false;
-var currentQueue;
-var queueIndex = -1;
-
-function cleanUpNextTick() {
- if (!draining || !currentQueue) {
- return;
- }
- draining = false;
- if (currentQueue.length) {
- queue = currentQueue.concat(queue);
- } else {
- queueIndex = -1;
- }
- if (queue.length) {
- drainQueue();
- }
-}
-
-function drainQueue() {
- if (draining) {
- return;
- }
- var timeout = setTimeout(cleanUpNextTick);
- draining = true;
-
- var len = queue.length;
- while(len) {
- currentQueue = queue;
- queue = [];
- while (++queueIndex < len) {
- if (currentQueue) {
- currentQueue[queueIndex].run();
- }
- }
- queueIndex = -1;
- len = queue.length;
- }
- currentQueue = null;
- draining = false;
- clearTimeout(timeout);
-}
-
-process.nextTick = function (fun) {
- var args = new Array(arguments.length - 1);
- if (arguments.length > 1) {
- for (var i = 1; i < arguments.length; i++) {
- args[i - 1] = arguments[i];
- }
- }
- queue.push(new Item(fun, args));
- if (queue.length === 1 && !draining) {
- setTimeout(drainQueue, 0);
- }
-};
-
-// v8 likes predictible objects
-function Item(fun, array) {
- this.fun = fun;
- this.array = array;
-}
-Item.prototype.run = function () {
- this.fun.apply(null, this.array);
-};
-process.title = 'browser';
-process.browser = true;
-process.env = {};
-process.argv = [];
-process.version = ''; // empty string to avoid regexp issues
-process.versions = {};
-
-function noop() {}
-
-process.on = noop;
-process.addListener = noop;
-process.once = noop;
-process.off = noop;
-process.removeListener = noop;
-process.removeAllListeners = noop;
-process.emit = noop;
-
-process.binding = function (name) {
- throw new Error('process.binding is not supported');
-};
-
-process.cwd = function () { return '/' };
-process.chdir = function (dir) {
- throw new Error('process.chdir is not supported');
-};
-process.umask = function() { return 0; };
-
-},{}],59:[function(require,module,exports){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// 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.
-
-module.exports = Stream;
-
-var EE = require('events').EventEmitter;
-var inherits = require('inherits');
-
-inherits(Stream, EE);
-Stream.Readable = require('readable-stream/readable.js');
-Stream.Writable = require('readable-stream/writable.js');
-Stream.Duplex = require('readable-stream/duplex.js');
-Stream.Transform = require('readable-stream/transform.js');
-Stream.PassThrough = require('readable-stream/passthrough.js');
-
-// Backwards-compat with node 0.4.x
-Stream.Stream = Stream;
-
-
-
-// old-style streams. Note that the pipe method (the only relevant
-// part of this class) is overridden in the Readable class.
-
-function Stream() {
- EE.call(this);
-}
-
-Stream.prototype.pipe = function(dest, options) {
- var source = this;
-
- function ondata(chunk) {
- if (dest.writable) {
- if (false === dest.write(chunk) && source.pause) {
- source.pause();
- }
- }
- }
-
- source.on('data', ondata);
-
- function ondrain() {
- if (source.readable && source.resume) {
- source.resume();
- }
- }
-
- dest.on('drain', ondrain);
-
- // If the 'end' option is not supplied, dest.end() will be called when
- // source gets the 'end' or 'close' events. Only dest.end() once.
- if (!dest._isStdio && (!options || options.end !== false)) {
- source.on('end', onend);
- source.on('close', onclose);
- }
-
- var didOnEnd = false;
- function onend() {
- if (didOnEnd) return;
- didOnEnd = true;
-
- dest.end();
- }
-
-
- function onclose() {
- if (didOnEnd) return;
- didOnEnd = true;
-
- if (typeof dest.destroy === 'function') dest.destroy();
- }
-
- // don't leave dangling pipes when there are errors.
- function onerror(er) {
- cleanup();
- if (EE.listenerCount(this, 'error') === 0) {
- throw er; // Unhandled stream error in pipe.
- }
- }
-
- source.on('error', onerror);
- dest.on('error', onerror);
-
- // remove all the event listeners that were added.
- function cleanup() {
- source.removeListener('data', ondata);
- dest.removeListener('drain', ondrain);
-
- source.removeListener('end', onend);
- source.removeListener('close', onclose);
-
- source.removeListener('error', onerror);
- dest.removeListener('error', onerror);
-
- source.removeListener('end', cleanup);
- source.removeListener('close', cleanup);
-
- dest.removeListener('close', cleanup);
- }
-
- source.on('end', cleanup);
- source.on('close', cleanup);
-
- dest.on('close', cleanup);
-
- dest.emit('pipe', source);
-
- // Allow for unix-like usage: A.pipe(B).pipe(C)
- return dest;
-};
-
-},{"events":50,"inherits":53,"readable-stream/duplex.js":61,"readable-stream/passthrough.js":67,"readable-stream/readable.js":68,"readable-stream/transform.js":69,"readable-stream/writable.js":70}],60:[function(require,module,exports){
-arguments[4][46][0].apply(exports,arguments)
-},{"dup":46}],61:[function(require,module,exports){
-module.exports = require("./lib/_stream_duplex.js")
-
-},{"./lib/_stream_duplex.js":62}],62:[function(require,module,exports){
-// a duplex stream is just a stream that is both readable and writable.
-// Since JS doesn't have multiple prototypal inheritance, this class
-// prototypally inherits from Readable, and then parasitically from
-// Writable.
-
-'use strict';
-
-/*<replacement>*/
-
-var objectKeys = Object.keys || function (obj) {
- var keys = [];
- for (var key in obj) {
- keys.push(key);
- }return keys;
-};
-/*</replacement>*/
-
-module.exports = Duplex;
-
-/*<replacement>*/
-var processNextTick = require('process-nextick-args');
-/*</replacement>*/
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-var Readable = require('./_stream_readable');
-var Writable = require('./_stream_writable');
-
-util.inherits(Duplex, Readable);
-
-var keys = objectKeys(Writable.prototype);
-for (var v = 0; v < keys.length; v++) {
- var method = keys[v];
- if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
-}
-
-function Duplex(options) {
- if (!(this instanceof Duplex)) return new Duplex(options);
-
- Readable.call(this, options);
- Writable.call(this, options);
-
- if (options && options.readable === false) this.readable = false;
-
- if (options && options.writable === false) this.writable = false;
-
- this.allowHalfOpen = true;
- if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
-
- this.once('end', onend);
-}
-
-// the no-half-open enforcer
-function onend() {
- // if we allow half-open state, or if the writable side ended,
- // then we're ok.
- if (this.allowHalfOpen || this._writableState.ended) return;
-
- // no more data can be written.
- // But allow more writes to happen in this tick.
- processNextTick(onEndNT, this);
-}
-
-function onEndNT(self) {
- self.end();
-}
-
-function forEach(xs, f) {
- for (var i = 0, l = xs.length; i < l; i++) {
- f(xs[i], i);
- }
-}
-},{"./_stream_readable":64,"./_stream_writable":66,"core-util-is":47,"inherits":53,"process-nextick-args":57}],63:[function(require,module,exports){
-// a passthrough stream.
-// basically just the most minimal sort of Transform stream.
-// Every written chunk gets output as-is.
-
-'use strict';
-
-module.exports = PassThrough;
-
-var Transform = require('./_stream_transform');
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-util.inherits(PassThrough, Transform);
-
-function PassThrough(options) {
- if (!(this instanceof PassThrough)) return new PassThrough(options);
-
- Transform.call(this, options);
-}
-
-PassThrough.prototype._transform = function (chunk, encoding, cb) {
- cb(null, chunk);
-};
-},{"./_stream_transform":65,"core-util-is":47,"inherits":53}],64:[function(require,module,exports){
-(function (process){
-'use strict';
-
-module.exports = Readable;
-
-/*<replacement>*/
-var processNextTick = require('process-nextick-args');
-/*</replacement>*/
-
-/*<replacement>*/
-var isArray = require('isarray');
-/*</replacement>*/
-
-Readable.ReadableState = ReadableState;
-
-/*<replacement>*/
-var EE = require('events').EventEmitter;
-
-var EElistenerCount = function (emitter, type) {
- return emitter.listeners(type).length;
-};
-/*</replacement>*/
-
-/*<replacement>*/
-var Stream;
-(function () {
- try {
- Stream = require('st' + 'ream');
- } catch (_) {} finally {
- if (!Stream) Stream = require('events').EventEmitter;
- }
-})();
-/*</replacement>*/
-
-var Buffer = require('buffer').Buffer;
-/*<replacement>*/
-var bufferShim = require('buffer-shims');
-/*</replacement>*/
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-/*<replacement>*/
-var debugUtil = require('util');
-var debug = void 0;
-if (debugUtil && debugUtil.debuglog) {
- debug = debugUtil.debuglog('stream');
-} else {
- debug = function () {};
-}
-/*</replacement>*/
-
-var StringDecoder;
-
-util.inherits(Readable, Stream);
-
-var hasPrependListener = typeof EE.prototype.prependListener === 'function';
-
-function prependListener(emitter, event, fn) {
- if (hasPrependListener) return emitter.prependListener(event, fn);
-
- // This is a brutally ugly hack to make sure that our error handler
- // is attached before any userland ones. NEVER DO THIS. This is here
- // only because this code needs to continue to work with older versions
- // of Node.js that do not include the prependListener() method. The goal
- // is to eventually remove this hack.
- if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
-}
-
-var Duplex;
-function ReadableState(options, stream) {
- Duplex = Duplex || require('./_stream_duplex');
-
- options = options || {};
-
- // object stream flag. Used to make read(n) ignore n and to
- // make all the buffer merging and length checks go away
- this.objectMode = !!options.objectMode;
-
- if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
-
- // the point at which it stops calling _read() to fill the buffer
- // Note: 0 is a valid value, means "don't call _read preemptively ever"
- var hwm = options.highWaterMark;
- var defaultHwm = this.objectMode ? 16 : 16 * 1024;
- this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
-
- // cast to ints.
- this.highWaterMark = ~ ~this.highWaterMark;
-
- this.buffer = [];
- this.length = 0;
- this.pipes = null;
- this.pipesCount = 0;
- this.flowing = null;
- this.ended = false;
- this.endEmitted = false;
- this.reading = false;
-
- // a flag to be able to tell if the onwrite cb is called immediately,
- // or on a later tick. We set this to true at first, because any
- // actions that shouldn't happen until "later" should generally also
- // not happen before the first write call.
- this.sync = true;
-
- // whenever we return null, then we set a flag to say
- // that we're awaiting a 'readable' event emission.
- this.needReadable = false;
- this.emittedReadable = false;
- this.readableListening = false;
- this.resumeScheduled = false;
-
- // Crypto is kind of old and crusty. Historically, its default string
- // encoding is 'binary' so we have to make this configurable.
- // Everything else in the universe uses 'utf8', though.
- this.defaultEncoding = options.defaultEncoding || 'utf8';
-
- // when piping, we only care about 'readable' events that happen
- // after read()ing all the bytes and not getting any pushback.
- this.ranOut = false;
-
- // the number of writers that are awaiting a drain event in .pipe()s
- this.awaitDrain = 0;
-
- // if true, a maybeReadMore has been scheduled
- this.readingMore = false;
-
- this.decoder = null;
- this.encoding = null;
- if (options.encoding) {
- if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
- this.decoder = new StringDecoder(options.encoding);
- this.encoding = options.encoding;
- }
-}
-
-var Duplex;
-function Readable(options) {
- Duplex = Duplex || require('./_stream_duplex');
-
- if (!(this instanceof Readable)) return new Readable(options);
-
- this._readableState = new ReadableState(options, this);
-
- // legacy
- this.readable = true;
-
- if (options && typeof options.read === 'function') this._read = options.read;
-
- Stream.call(this);
-}
-
-// Manually shove something into the read() buffer.
-// This returns true if the highWaterMark has not been hit yet,
-// similar to how Writable.write() returns true if you should
-// write() some more.
-Readable.prototype.push = function (chunk, encoding) {
- var state = this._readableState;
-
- if (!state.objectMode && typeof chunk === 'string') {
- encoding = encoding || state.defaultEncoding;
- if (encoding !== state.encoding) {
- chunk = bufferShim.from(chunk, encoding);
- encoding = '';
- }
- }
-
- return readableAddChunk(this, state, chunk, encoding, false);
-};
-
-// Unshift should *always* be something directly out of read()
-Readable.prototype.unshift = function (chunk) {
- var state = this._readableState;
- return readableAddChunk(this, state, chunk, '', true);
-};
-
-Readable.prototype.isPaused = function () {
- return this._readableState.flowing === false;
-};
-
-function readableAddChunk(stream, state, chunk, encoding, addToFront) {
- var er = chunkInvalid(state, chunk);
- if (er) {
- stream.emit('error', er);
- } else if (chunk === null) {
- state.reading = false;
- onEofChunk(stream, state);
- } else if (state.objectMode || chunk && chunk.length > 0) {
- if (state.ended && !addToFront) {
- var e = new Error('stream.push() after EOF');
- stream.emit('error', e);
- } else if (state.endEmitted && addToFront) {
- var _e = new Error('stream.unshift() after end event');
- stream.emit('error', _e);
- } else {
- var skipAdd;
- if (state.decoder && !addToFront && !encoding) {
- chunk = state.decoder.write(chunk);
- skipAdd = !state.objectMode && chunk.length === 0;
- }
-
- if (!addToFront) state.reading = false;
-
- // Don't add to the buffer if we've decoded to an empty string chunk and
- // we're not in object mode
- if (!skipAdd) {
- // if we want the data now, just emit it.
- if (state.flowing && state.length === 0 && !state.sync) {
- stream.emit('data', chunk);
- stream.read(0);
- } else {
- // update the buffer info.
- state.length += state.objectMode ? 1 : chunk.length;
- if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
-
- if (state.needReadable) emitReadable(stream);
- }
- }
-
- maybeReadMore(stream, state);
- }
- } else if (!addToFront) {
- state.reading = false;
- }
-
- return needMoreData(state);
-}
-
-// if it's past the high water mark, we can push in some more.
-// Also, if we have no data yet, we can stand some
-// more bytes. This is to work around cases where hwm=0,
-// such as the repl. Also, if the push() triggered a
-// readable event, and the user called read(largeNumber) such that
-// needReadable was set, then we ought to push more, so that another
-// 'readable' event will be triggered.
-function needMoreData(state) {
- return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
-}
-
-// backwards compatibility.
-Readable.prototype.setEncoding = function (enc) {
- if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
- this._readableState.decoder = new StringDecoder(enc);
- this._readableState.encoding = enc;
- return this;
-};
-
-// Don't raise the hwm > 8MB
-var MAX_HWM = 0x800000;
-function computeNewHighWaterMark(n) {
- if (n >= MAX_HWM) {
- n = MAX_HWM;
- } else {
- // Get the next highest power of 2
- n--;
- n |= n >>> 1;
- n |= n >>> 2;
- n |= n >>> 4;
- n |= n >>> 8;
- n |= n >>> 16;
- n++;
- }
- return n;
-}
-
-function howMuchToRead(n, state) {
- if (state.length === 0 && state.ended) return 0;
-
- if (state.objectMode) return n === 0 ? 0 : 1;
-
- if (n === null || isNaN(n)) {
- // only flow one buffer at a time
- if (state.flowing && state.buffer.length) return state.buffer[0].length;else return state.length;
- }
-
- if (n <= 0) return 0;
-
- // If we're asking for more than the target buffer level,
- // then raise the water mark. Bump up to the next highest
- // power of 2, to prevent increasing it excessively in tiny
- // amounts.
- if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
-
- // don't have that much. return null, unless we've ended.
- if (n > state.length) {
- if (!state.ended) {
- state.needReadable = true;
- return 0;
- } else {
- return state.length;
- }
- }
-
- return n;
-}
-
-// you can override either this method, or the async _read(n) below.
-Readable.prototype.read = function (n) {
- debug('read', n);
- var state = this._readableState;
- var nOrig = n;
-
- if (typeof n !== 'number' || n > 0) state.emittedReadable = false;
-
- // if we're doing read(0) to trigger a readable event, but we
- // already have a bunch of data in the buffer, then just trigger
- // the 'readable' event and move on.
- if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
- debug('read: emitReadable', state.length, state.ended);
- if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
- return null;
- }
-
- n = howMuchToRead(n, state);
-
- // if we've ended, and we're now clear, then finish it up.
- if (n === 0 && state.ended) {
- if (state.length === 0) endReadable(this);
- return null;
- }
-
- // All the actual chunk generation logic needs to be
- // *below* the call to _read. The reason is that in certain
- // synthetic stream cases, such as passthrough streams, _read
- // may be a completely synchronous operation which may change
- // the state of the read buffer, providing enough data when
- // before there was *not* enough.
- //
- // So, the steps are:
- // 1. Figure out what the state of things will be after we do
- // a read from the buffer.
- //
- // 2. If that resulting state will trigger a _read, then call _read.
- // Note that this may be asynchronous, or synchronous. Yes, it is
- // deeply ugly to write APIs this way, but that still doesn't mean
- // that the Readable class should behave improperly, as streams are
- // designed to be sync/async agnostic.
- // Take note if the _read call is sync or async (ie, if the read call
- // has returned yet), so that we know whether or not it's safe to emit
- // 'readable' etc.
- //
- // 3. Actually pull the requested chunks out of the buffer and return.
-
- // if we need a readable event, then we need to do some reading.
- var doRead = state.needReadable;
- debug('need readable', doRead);
-
- // if we currently have less than the highWaterMark, then also read some
- if (state.length === 0 || state.length - n < state.highWaterMark) {
- doRead = true;
- debug('length less than watermark', doRead);
- }
-
- // however, if we've ended, then there's no point, and if we're already
- // reading, then it's unnecessary.
- if (state.ended || state.reading) {
- doRead = false;
- debug('reading or ended', doRead);
- }
-
- if (doRead) {
- debug('do read');
- state.reading = true;
- state.sync = true;
- // if the length is currently zero, then we *need* a readable event.
- if (state.length === 0) state.needReadable = true;
- // call internal read method
- this._read(state.highWaterMark);
- state.sync = false;
- }
-
- // If _read pushed data synchronously, then `reading` will be false,
- // and we need to re-evaluate how much data we can return to the user.
- if (doRead && !state.reading) n = howMuchToRead(nOrig, state);
-
- var ret;
- if (n > 0) ret = fromList(n, state);else ret = null;
-
- if (ret === null) {
- state.needReadable = true;
- n = 0;
- }
-
- state.length -= n;
-
- // If we have nothing in the buffer, then we want to know
- // as soon as we *do* get something into the buffer.
- if (state.length === 0 && !state.ended) state.needReadable = true;
-
- // If we tried to read() past the EOF, then emit end on the next tick.
- if (nOrig !== n && state.ended && state.length === 0) endReadable(this);
-
- if (ret !== null) this.emit('data', ret);
-
- return ret;
-};
-
-function chunkInvalid(state, chunk) {
- var er = null;
- if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
- er = new TypeError('Invalid non-string/buffer chunk');
- }
- return er;
-}
-
-function onEofChunk(stream, state) {
- if (state.ended) return;
- if (state.decoder) {
- var chunk = state.decoder.end();
- if (chunk && chunk.length) {
- state.buffer.push(chunk);
- state.length += state.objectMode ? 1 : chunk.length;
- }
- }
- state.ended = true;
-
- // emit 'readable' now to make sure it gets picked up.
- emitReadable(stream);
-}
-
-// Don't emit readable right away in sync mode, because this can trigger
-// another read() call => stack overflow. This way, it might trigger
-// a nextTick recursion warning, but that's not so bad.
-function emitReadable(stream) {
- var state = stream._readableState;
- state.needReadable = false;
- if (!state.emittedReadable) {
- debug('emitReadable', state.flowing);
- state.emittedReadable = true;
- if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
- }
-}
-
-function emitReadable_(stream) {
- debug('emit readable');
- stream.emit('readable');
- flow(stream);
-}
-
-// at this point, the user has presumably seen the 'readable' event,
-// and called read() to consume some data. that may have triggered
-// in turn another _read(n) call, in which case reading = true if
-// it's in progress.
-// However, if we're not ended, or reading, and the length < hwm,
-// then go ahead and try to read some more preemptively.
-function maybeReadMore(stream, state) {
- if (!state.readingMore) {
- state.readingMore = true;
- processNextTick(maybeReadMore_, stream, state);
- }
-}
-
-function maybeReadMore_(stream, state) {
- var len = state.length;
- while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
- debug('maybeReadMore read 0');
- stream.read(0);
- if (len === state.length)
- // didn't get any data, stop spinning.
- break;else len = state.length;
- }
- state.readingMore = false;
-}
-
-// abstract method. to be overridden in specific implementation classes.
-// call cb(er, data) where data is <= n in length.
-// for virtual (non-string, non-buffer) streams, "length" is somewhat
-// arbitrary, and perhaps not very meaningful.
-Readable.prototype._read = function (n) {
- this.emit('error', new Error('not implemented'));
-};
-
-Readable.prototype.pipe = function (dest, pipeOpts) {
- var src = this;
- var state = this._readableState;
-
- switch (state.pipesCount) {
- case 0:
- state.pipes = dest;
- break;
- case 1:
- state.pipes = [state.pipes, dest];
- break;
- default:
- state.pipes.push(dest);
- break;
- }
- state.pipesCount += 1;
- debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
-
- var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
-
- var endFn = doEnd ? onend : cleanup;
- if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
-
- dest.on('unpipe', onunpipe);
- function onunpipe(readable) {
- debug('onunpipe');
- if (readable === src) {
- cleanup();
- }
- }
-
- function onend() {
- debug('onend');
- dest.end();
- }
-
- // when the dest drains, it reduces the awaitDrain counter
- // on the source. This would be more elegant with a .once()
- // handler in flow(), but adding and removing repeatedly is
- // too slow.
- var ondrain = pipeOnDrain(src);
- dest.on('drain', ondrain);
-
- var cleanedUp = false;
- function cleanup() {
- debug('cleanup');
- // cleanup event handlers once the pipe is broken
- dest.removeListener('close', onclose);
- dest.removeListener('finish', onfinish);
- dest.removeListener('drain', ondrain);
- dest.removeListener('error', onerror);
- dest.removeListener('unpipe', onunpipe);
- src.removeListener('end', onend);
- src.removeListener('end', cleanup);
- src.removeListener('data', ondata);
-
- cleanedUp = true;
-
- // if the reader is waiting for a drain event from this
- // specific writer, then it would cause it to never start
- // flowing again.
- // So, if this is awaiting a drain, then we just call it now.
- // If we don't know, then assume that we are waiting for one.
- if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
- }
-
- src.on('data', ondata);
- function ondata(chunk) {
- debug('ondata');
- var ret = dest.write(chunk);
- if (false === ret) {
- // If the user unpiped during `dest.write()`, it is possible
- // to get stuck in a permanently paused state if that write
- // also returned false.
- // => Check whether `dest` is still a piping destination.
- if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
- debug('false write response, pause', src._readableState.awaitDrain);
- src._readableState.awaitDrain++;
- }
- src.pause();
- }
- }
-
- // if the dest has an error, then stop piping into it.
- // however, don't suppress the throwing behavior for this.
- function onerror(er) {
- debug('onerror', er);
- unpipe();
- dest.removeListener('error', onerror);
- if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
- }
-
- // Make sure our error handler is attached before userland ones.
- prependListener(dest, 'error', onerror);
-
- // Both close and finish should trigger unpipe, but only once.
- function onclose() {
- dest.removeListener('finish', onfinish);
- unpipe();
- }
- dest.once('close', onclose);
- function onfinish() {
- debug('onfinish');
- dest.removeListener('close', onclose);
- unpipe();
- }
- dest.once('finish', onfinish);
-
- function unpipe() {
- debug('unpipe');
- src.unpipe(dest);
- }
-
- // tell the dest that it's being piped to
- dest.emit('pipe', src);
-
- // start the flow if it hasn't been started already.
- if (!state.flowing) {
- debug('pipe resume');
- src.resume();
- }
-
- return dest;
-};
-
-function pipeOnDrain(src) {
- return function () {
- var state = src._readableState;
- debug('pipeOnDrain', state.awaitDrain);
- if (state.awaitDrain) state.awaitDrain--;
- if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
- state.flowing = true;
- flow(src);
- }
- };
-}
-
-Readable.prototype.unpipe = function (dest) {
- var state = this._readableState;
-
- // if we're not piping anywhere, then do nothing.
- if (state.pipesCount === 0) return this;
-
- // just one destination. most common case.
- if (state.pipesCount === 1) {
- // passed in one, but it's not the right one.
- if (dest && dest !== state.pipes) return this;
-
- if (!dest) dest = state.pipes;
-
- // got a match.
- state.pipes = null;
- state.pipesCount = 0;
- state.flowing = false;
- if (dest) dest.emit('unpipe', this);
- return this;
- }
-
- // slow case. multiple pipe destinations.
-
- if (!dest) {
- // remove all.
- var dests = state.pipes;
- var len = state.pipesCount;
- state.pipes = null;
- state.pipesCount = 0;
- state.flowing = false;
-
- for (var _i = 0; _i < len; _i++) {
- dests[_i].emit('unpipe', this);
- }return this;
- }
-
- // try to find the right one.
- var i = indexOf(state.pipes, dest);
- if (i === -1) return this;
-
- state.pipes.splice(i, 1);
- state.pipesCount -= 1;
- if (state.pipesCount === 1) state.pipes = state.pipes[0];
-
- dest.emit('unpipe', this);
-
- return this;
-};
-
-// set up data events if they are asked for
-// Ensure readable listeners eventually get something
-Readable.prototype.on = function (ev, fn) {
- var res = Stream.prototype.on.call(this, ev, fn);
-
- // If listening to data, and it has not explicitly been paused,
- // then call resume to start the flow of data on the next tick.
- if (ev === 'data' && false !== this._readableState.flowing) {
- this.resume();
- }
-
- if (ev === 'readable' && !this._readableState.endEmitted) {
- var state = this._readableState;
- if (!state.readableListening) {
- state.readableListening = true;
- state.emittedReadable = false;
- state.needReadable = true;
- if (!state.reading) {
- processNextTick(nReadingNextTick, this);
- } else if (state.length) {
- emitReadable(this, state);
- }
- }
- }
-
- return res;
-};
-Readable.prototype.addListener = Readable.prototype.on;
-
-function nReadingNextTick(self) {
- debug('readable nexttick read 0');
- self.read(0);
-}
-
-// pause() and resume() are remnants of the legacy readable stream API
-// If the user uses them, then switch into old mode.
-Readable.prototype.resume = function () {
- var state = this._readableState;
- if (!state.flowing) {
- debug('resume');
- state.flowing = true;
- resume(this, state);
- }
- return this;
-};
-
-function resume(stream, state) {
- if (!state.resumeScheduled) {
- state.resumeScheduled = true;
- processNextTick(resume_, stream, state);
- }
-}
-
-function resume_(stream, state) {
- if (!state.reading) {
- debug('resume read 0');
- stream.read(0);
- }
-
- state.resumeScheduled = false;
- stream.emit('resume');
- flow(stream);
- if (state.flowing && !state.reading) stream.read(0);
-}
-
-Readable.prototype.pause = function () {
- debug('call pause flowing=%j', this._readableState.flowing);
- if (false !== this._readableState.flowing) {
- debug('pause');
- this._readableState.flowing = false;
- this.emit('pause');
- }
- return this;
-};
-
-function flow(stream) {
- var state = stream._readableState;
- debug('flow', state.flowing);
- if (state.flowing) {
- do {
- var chunk = stream.read();
- } while (null !== chunk && state.flowing);
- }
-}
-
-// wrap an old-style stream as the async data source.
-// This is *not* part of the readable stream interface.
-// It is an ugly unfortunate mess of history.
-Readable.prototype.wrap = function (stream) {
- var state = this._readableState;
- var paused = false;
-
- var self = this;
- stream.on('end', function () {
- debug('wrapped end');
- if (state.decoder && !state.ended) {
- var chunk = state.decoder.end();
- if (chunk && chunk.length) self.push(chunk);
- }
-
- self.push(null);
- });
-
- stream.on('data', function (chunk) {
- debug('wrapped data');
- if (state.decoder) chunk = state.decoder.write(chunk);
-
- // don't skip over falsy values in objectMode
- if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
-
- var ret = self.push(chunk);
- if (!ret) {
- paused = true;
- stream.pause();
- }
- });
-
- // proxy all the other methods.
- // important when wrapping filters and duplexes.
- for (var i in stream) {
- if (this[i] === undefined && typeof stream[i] === 'function') {
- this[i] = function (method) {
- return function () {
- return stream[method].apply(stream, arguments);
- };
- }(i);
- }
- }
-
- // proxy certain important events.
- var events = ['error', 'close', 'destroy', 'pause', 'resume'];
- forEach(events, function (ev) {
- stream.on(ev, self.emit.bind(self, ev));
- });
-
- // when we try to consume some more bytes, simply unpause the
- // underlying stream.
- self._read = function (n) {
- debug('wrapped _read', n);
- if (paused) {
- paused = false;
- stream.resume();
- }
- };
-
- return self;
-};
-
-// exposed for testing purposes only.
-Readable._fromList = fromList;
-
-// Pluck off n bytes from an array of buffers.
-// Length is the combined lengths of all the buffers in the list.
-function fromList(n, state) {
- var list = state.buffer;
- var length = state.length;
- var stringMode = !!state.decoder;
- var objectMode = !!state.objectMode;
- var ret;
-
- // nothing in the list, definitely empty.
- if (list.length === 0) return null;
-
- if (length === 0) ret = null;else if (objectMode) ret = list.shift();else if (!n || n >= length) {
- // read it all, truncate the array.
- if (stringMode) ret = list.join('');else if (list.length === 1) ret = list[0];else ret = Buffer.concat(list, length);
- list.length = 0;
- } else {
- // read just some of it.
- if (n < list[0].length) {
- // just take a part of the first list item.
- // slice is the same for buffers and strings.
- var buf = list[0];
- ret = buf.slice(0, n);
- list[0] = buf.slice(n);
- } else if (n === list[0].length) {
- // first list is a perfect match
- ret = list.shift();
- } else {
- // complex case.
- // we have enough to cover it, but it spans past the first buffer.
- if (stringMode) ret = '';else ret = bufferShim.allocUnsafe(n);
-
- var c = 0;
- for (var i = 0, l = list.length; i < l && c < n; i++) {
- var _buf = list[0];
- var cpy = Math.min(n - c, _buf.length);
-
- if (stringMode) ret += _buf.slice(0, cpy);else _buf.copy(ret, c, 0, cpy);
-
- if (cpy < _buf.length) list[0] = _buf.slice(cpy);else list.shift();
-
- c += cpy;
- }
- }
- }
-
- return ret;
-}
-
-function endReadable(stream) {
- var state = stream._readableState;
-
- // If we get here before consuming all the bytes, then that is a
- // bug in node. Should never happen.
- if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');
-
- if (!state.endEmitted) {
- state.ended = true;
- processNextTick(endReadableNT, state, stream);
- }
-}
-
-function endReadableNT(state, stream) {
- // Check that we didn't get one last unshift.
- if (!state.endEmitted && state.length === 0) {
- state.endEmitted = true;
- stream.readable = false;
- stream.emit('end');
- }
-}
-
-function forEach(xs, f) {
- for (var i = 0, l = xs.length; i < l; i++) {
- f(xs[i], i);
- }
-}
-
-function indexOf(xs, x) {
- for (var i = 0, l = xs.length; i < l; i++) {
- if (xs[i] === x) return i;
- }
- return -1;
-}
-}).call(this,require('_process'))
-},{"./_stream_duplex":62,"_process":58,"buffer":45,"buffer-shims":44,"core-util-is":47,"events":50,"inherits":53,"isarray":60,"process-nextick-args":57,"string_decoder/":71,"util":41}],65:[function(require,module,exports){
-// a transform stream is a readable/writable stream where you do
-// something with the data. Sometimes it's called a "filter",
-// but that's not a great name for it, since that implies a thing where
-// some bits pass through, and others are simply ignored. (That would
-// be a valid example of a transform, of course.)
-//
-// While the output is causally related to the input, it's not a
-// necessarily symmetric or synchronous transformation. For example,
-// a zlib stream might take multiple plain-text writes(), and then
-// emit a single compressed chunk some time in the future.
-//
-// Here's how this works:
-//
-// The Transform stream has all the aspects of the readable and writable
-// stream classes. When you write(chunk), that calls _write(chunk,cb)
-// internally, and returns false if there's a lot of pending writes
-// buffered up. When you call read(), that calls _read(n) until
-// there's enough pending readable data buffered up.
-//
-// In a transform stream, the written data is placed in a buffer. When
-// _read(n) is called, it transforms the queued up data, calling the
-// buffered _write cb's as it consumes chunks. If consuming a single
-// written chunk would result in multiple output chunks, then the first
-// outputted bit calls the readcb, and subsequent chunks just go into
-// the read buffer, and will cause it to emit 'readable' if necessary.
-//
-// This way, back-pressure is actually determined by the reading side,
-// since _read has to be called to start processing a new chunk. However,
-// a pathological inflate type of transform can cause excessive buffering
-// here. For example, imagine a stream where every byte of input is
-// interpreted as an integer from 0-255, and then results in that many
-// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
-// 1kb of data being output. In this case, you could write a very small
-// amount of input, and end up with a very large amount of output. In
-// such a pathological inflating mechanism, there'd be no way to tell
-// the system to stop doing the transform. A single 4MB write could
-// cause the system to run out of memory.
-//
-// However, even in such a pathological case, only a single written chunk
-// would be consumed, and then the rest would wait (un-transformed) until
-// the results of the previous transformed chunk were consumed.
-
-'use strict';
-
-module.exports = Transform;
-
-var Duplex = require('./_stream_duplex');
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-util.inherits(Transform, Duplex);
-
-function TransformState(stream) {
- this.afterTransform = function (er, data) {
- return afterTransform(stream, er, data);
- };
-
- this.needTransform = false;
- this.transforming = false;
- this.writecb = null;
- this.writechunk = null;
- this.writeencoding = null;
-}
-
-function afterTransform(stream, er, data) {
- var ts = stream._transformState;
- ts.transforming = false;
-
- var cb = ts.writecb;
-
- if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
-
- ts.writechunk = null;
- ts.writecb = null;
-
- if (data !== null && data !== undefined) stream.push(data);
-
- cb(er);
-
- var rs = stream._readableState;
- rs.reading = false;
- if (rs.needReadable || rs.length < rs.highWaterMark) {
- stream._read(rs.highWaterMark);
- }
-}
-
-function Transform(options) {
- if (!(this instanceof Transform)) return new Transform(options);
-
- Duplex.call(this, options);
-
- this._transformState = new TransformState(this);
-
- // when the writable side finishes, then flush out anything remaining.
- var stream = this;
-
- // start out asking for a readable event once data is transformed.
- this._readableState.needReadable = true;
-
- // we have implemented the _read method, and done the other things
- // that Readable wants before the first _read call, so unset the
- // sync guard flag.
- this._readableState.sync = false;
-
- if (options) {
- if (typeof options.transform === 'function') this._transform = options.transform;
-
- if (typeof options.flush === 'function') this._flush = options.flush;
- }
-
- this.once('prefinish', function () {
- if (typeof this._flush === 'function') this._flush(function (er) {
- done(stream, er);
- });else done(stream);
- });
-}
-
-Transform.prototype.push = function (chunk, encoding) {
- this._transformState.needTransform = false;
- return Duplex.prototype.push.call(this, chunk, encoding);
-};
-
-// This is the part where you do stuff!
-// override this function in implementation classes.
-// 'chunk' is an input chunk.
-//
-// Call `push(newChunk)` to pass along transformed output
-// to the readable side. You may call 'push' zero or more times.
-//
-// Call `cb(err)` when you are done with this chunk. If you pass
-// an error, then that'll put the hurt on the whole operation. If you
-// never call cb(), then you'll never get another chunk.
-Transform.prototype._transform = function (chunk, encoding, cb) {
- throw new Error('Not implemented');
-};
-
-Transform.prototype._write = function (chunk, encoding, cb) {
- var ts = this._transformState;
- ts.writecb = cb;
- ts.writechunk = chunk;
- ts.writeencoding = encoding;
- if (!ts.transforming) {
- var rs = this._readableState;
- if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
- }
-};
-
-// Doesn't matter what the args are here.
-// _transform does all the work.
-// That we got here means that the readable side wants more data.
-Transform.prototype._read = function (n) {
- var ts = this._transformState;
-
- if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
- ts.transforming = true;
- this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
- } else {
- // mark that we need a transform, so that any data that comes in
- // will get processed, now that we've asked for it.
- ts.needTransform = true;
- }
-};
-
-function done(stream, er) {
- if (er) return stream.emit('error', er);
-
- // if there's nothing in the write buffer, then that means
- // that nothing more will ever be provided
- var ws = stream._writableState;
- var ts = stream._transformState;
-
- if (ws.length) throw new Error('Calling transform done when ws.length != 0');
-
- if (ts.transforming) throw new Error('Calling transform done when still transforming');
-
- return stream.push(null);
-}
-},{"./_stream_duplex":62,"core-util-is":47,"inherits":53}],66:[function(require,module,exports){
-(function (process){
-// A bit simpler than readable streams.
-// Implement an async ._write(chunk, encoding, cb), and it'll handle all
-// the drain event emission and buffering.
-
-'use strict';
-
-module.exports = Writable;
-
-/*<replacement>*/
-var processNextTick = require('process-nextick-args');
-/*</replacement>*/
-
-/*<replacement>*/
-var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;
-/*</replacement>*/
-
-Writable.WritableState = WritableState;
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-/*<replacement>*/
-var internalUtil = {
- deprecate: require('util-deprecate')
-};
-/*</replacement>*/
-
-/*<replacement>*/
-var Stream;
-(function () {
- try {
- Stream = require('st' + 'ream');
- } catch (_) {} finally {
- if (!Stream) Stream = require('events').EventEmitter;
- }
-})();
-/*</replacement>*/
-
-var Buffer = require('buffer').Buffer;
-/*<replacement>*/
-var bufferShim = require('buffer-shims');
-/*</replacement>*/
-
-util.inherits(Writable, Stream);
-
-function nop() {}
-
-function WriteReq(chunk, encoding, cb) {
- this.chunk = chunk;
- this.encoding = encoding;
- this.callback = cb;
- this.next = null;
-}
-
-var Duplex;
-function WritableState(options, stream) {
- Duplex = Duplex || require('./_stream_duplex');
-
- options = options || {};
-
- // object stream flag to indicate whether or not this stream
- // contains buffers or objects.
- this.objectMode = !!options.objectMode;
-
- if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
-
- // the point at which write() starts returning false
- // Note: 0 is a valid value, means that we always return false if
- // the entire buffer is not flushed immediately on write()
- var hwm = options.highWaterMark;
- var defaultHwm = this.objectMode ? 16 : 16 * 1024;
- this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
-
- // cast to ints.
- this.highWaterMark = ~ ~this.highWaterMark;
-
- this.needDrain = false;
- // at the start of calling end()
- this.ending = false;
- // when end() has been called, and returned
- this.ended = false;
- // when 'finish' is emitted
- this.finished = false;
-
- // should we decode strings into buffers before passing to _write?
- // this is here so that some node-core streams can optimize string
- // handling at a lower level.
- var noDecode = options.decodeStrings === false;
- this.decodeStrings = !noDecode;
-
- // Crypto is kind of old and crusty. Historically, its default string
- // encoding is 'binary' so we have to make this configurable.
- // Everything else in the universe uses 'utf8', though.
- this.defaultEncoding = options.defaultEncoding || 'utf8';
-
- // not an actual buffer we keep track of, but a measurement
- // of how much we're waiting to get pushed to some underlying
- // socket or file.
- this.length = 0;
-
- // a flag to see when we're in the middle of a write.
- this.writing = false;
-
- // when true all writes will be buffered until .uncork() call
- this.corked = 0;
-
- // a flag to be able to tell if the onwrite cb is called immediately,
- // or on a later tick. We set this to true at first, because any
- // actions that shouldn't happen until "later" should generally also
- // not happen before the first write call.
- this.sync = true;
-
- // a flag to know if we're processing previously buffered items, which
- // may call the _write() callback in the same tick, so that we don't
- // end up in an overlapped onwrite situation.
- this.bufferProcessing = false;
-
- // the callback that's passed to _write(chunk,cb)
- this.onwrite = function (er) {
- onwrite(stream, er);
- };
-
- // the callback that the user supplies to write(chunk,encoding,cb)
- this.writecb = null;
-
- // the amount that is being written when _write is called.
- this.writelen = 0;
-
- this.bufferedRequest = null;
- this.lastBufferedRequest = null;
-
- // number of pending user-supplied write callbacks
- // this must be 0 before 'finish' can be emitted
- this.pendingcb = 0;
-
- // emit prefinish if the only thing we're waiting for is _write cbs
- // This is relevant for synchronous Transform streams
- this.prefinished = false;
-
- // True if the error was already emitted and should not be thrown again
- this.errorEmitted = false;
-
- // count buffered requests
- this.bufferedRequestCount = 0;
-
- // allocate the first CorkedRequest, there is always
- // one allocated and free to use, and we maintain at most two
- this.corkedRequestsFree = new CorkedRequest(this);
-}
-
-WritableState.prototype.getBuffer = function writableStateGetBuffer() {
- var current = this.bufferedRequest;
- var out = [];
- while (current) {
- out.push(current);
- current = current.next;
- }
- return out;
-};
-
-(function () {
- try {
- Object.defineProperty(WritableState.prototype, 'buffer', {
- get: internalUtil.deprecate(function () {
- return this.getBuffer();
- }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
- });
- } catch (_) {}
-})();
-
-var Duplex;
-function Writable(options) {
- Duplex = Duplex || require('./_stream_duplex');
-
- // Writable ctor is applied to Duplexes, though they're not
- // instanceof Writable, they're instanceof Readable.
- if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);
-
- this._writableState = new WritableState(options, this);
-
- // legacy.
- this.writable = true;
-
- if (options) {
- if (typeof options.write === 'function') this._write = options.write;
-
- if (typeof options.writev === 'function') this._writev = options.writev;
- }
-
- Stream.call(this);
-}
-
-// Otherwise people can pipe Writable streams, which is just wrong.
-Writable.prototype.pipe = function () {
- this.emit('error', new Error('Cannot pipe, not readable'));
-};
-
-function writeAfterEnd(stream, cb) {
- var er = new Error('write after end');
- // TODO: defer error events consistently everywhere, not just the cb
- stream.emit('error', er);
- processNextTick(cb, er);
-}
-
-// If we get something that is not a buffer, string, null, or undefined,
-// and we're not in objectMode, then that's an error.
-// Otherwise stream chunks are all considered to be of length=1, and the
-// watermarks determine how many objects to keep in the buffer, rather than
-// how many bytes or characters.
-function validChunk(stream, state, chunk, cb) {
- var valid = true;
- var er = false;
- // Always throw error if a null is written
- // if we are not in object mode then throw
- // if it is not a buffer, string, or undefined.
- if (chunk === null) {
- er = new TypeError('May not write null values to stream');
- } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
- er = new TypeError('Invalid non-string/buffer chunk');
- }
- if (er) {
- stream.emit('error', er);
- processNextTick(cb, er);
- valid = false;
- }
- return valid;
-}
-
-Writable.prototype.write = function (chunk, encoding, cb) {
- var state = this._writableState;
- var ret = false;
-
- if (typeof encoding === 'function') {
- cb = encoding;
- encoding = null;
- }
-
- if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
-
- if (typeof cb !== 'function') cb = nop;
-
- if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
- state.pendingcb++;
- ret = writeOrBuffer(this, state, chunk, encoding, cb);
- }
-
- return ret;
-};
-
-Writable.prototype.cork = function () {
- var state = this._writableState;
-
- state.corked++;
-};
-
-Writable.prototype.uncork = function () {
- var state = this._writableState;
-
- if (state.corked) {
- state.corked--;
-
- if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
- }
-};
-
-Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
- // node::ParseEncoding() requires lower case.
- if (typeof encoding === 'string') encoding = encoding.toLowerCase();
- if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
- this._writableState.defaultEncoding = encoding;
- return this;
-};
-
-function decodeChunk(state, chunk, encoding) {
- if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
- chunk = bufferShim.from(chunk, encoding);
- }
- return chunk;
-}
-
-// if we're already writing something, then just put this
-// in the queue, and wait our turn. Otherwise, call _write
-// If we return false, then we need a drain event, so set that flag.
-function writeOrBuffer(stream, state, chunk, encoding, cb) {
- chunk = decodeChunk(state, chunk, encoding);
-
- if (Buffer.isBuffer(chunk)) encoding = 'buffer';
- var len = state.objectMode ? 1 : chunk.length;
-
- state.length += len;
-
- var ret = state.length < state.highWaterMark;
- // we must ensure that previous needDrain will not be reset to false.
- if (!ret) state.needDrain = true;
-
- if (state.writing || state.corked) {
- var last = state.lastBufferedRequest;
- state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
- if (last) {
- last.next = state.lastBufferedRequest;
- } else {
- state.bufferedRequest = state.lastBufferedRequest;
- }
- state.bufferedRequestCount += 1;
- } else {
- doWrite(stream, state, false, len, chunk, encoding, cb);
- }
-
- return ret;
-}
-
-function doWrite(stream, state, writev, len, chunk, encoding, cb) {
- state.writelen = len;
- state.writecb = cb;
- state.writing = true;
- state.sync = true;
- if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
- state.sync = false;
-}
-
-function onwriteError(stream, state, sync, er, cb) {
- --state.pendingcb;
- if (sync) processNextTick(cb, er);else cb(er);
-
- stream._writableState.errorEmitted = true;
- stream.emit('error', er);
-}
-
-function onwriteStateUpdate(state) {
- state.writing = false;
- state.writecb = null;
- state.length -= state.writelen;
- state.writelen = 0;
-}
-
-function onwrite(stream, er) {
- var state = stream._writableState;
- var sync = state.sync;
- var cb = state.writecb;
-
- onwriteStateUpdate(state);
-
- if (er) onwriteError(stream, state, sync, er, cb);else {
- // Check if we're actually ready to finish, but don't emit yet
- var finished = needFinish(state);
-
- if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
- clearBuffer(stream, state);
- }
-
- if (sync) {
- /*<replacement>*/
- asyncWrite(afterWrite, stream, state, finished, cb);
- /*</replacement>*/
- } else {
- afterWrite(stream, state, finished, cb);
- }
- }
-}
-
-function afterWrite(stream, state, finished, cb) {
- if (!finished) onwriteDrain(stream, state);
- state.pendingcb--;
- cb();
- finishMaybe(stream, state);
-}
-
-// Must force callback to be called on nextTick, so that we don't
-// emit 'drain' before the write() consumer gets the 'false' return
-// value, and has a chance to attach a 'drain' listener.
-function onwriteDrain(stream, state) {
- if (state.length === 0 && state.needDrain) {
- state.needDrain = false;
- stream.emit('drain');
- }
-}
-
-// if there's something in the buffer waiting, then process it
-function clearBuffer(stream, state) {
- state.bufferProcessing = true;
- var entry = state.bufferedRequest;
-
- if (stream._writev && entry && entry.next) {
- // Fast case, write everything using _writev()
- var l = state.bufferedRequestCount;
- var buffer = new Array(l);
- var holder = state.corkedRequestsFree;
- holder.entry = entry;
-
- var count = 0;
- while (entry) {
- buffer[count] = entry;
- entry = entry.next;
- count += 1;
- }
-
- doWrite(stream, state, true, state.length, buffer, '', holder.finish);
-
- // doWrite is almost always async, defer these to save a bit of time
- // as the hot path ends with doWrite
- state.pendingcb++;
- state.lastBufferedRequest = null;
- if (holder.next) {
- state.corkedRequestsFree = holder.next;
- holder.next = null;
- } else {
- state.corkedRequestsFree = new CorkedRequest(state);
- }
- } else {
- // Slow case, write chunks one-by-one
- while (entry) {
- var chunk = entry.chunk;
- var encoding = entry.encoding;
- var cb = entry.callback;
- var len = state.objectMode ? 1 : chunk.length;
-
- doWrite(stream, state, false, len, chunk, encoding, cb);
- entry = entry.next;
- // if we didn't call the onwrite immediately, then
- // it means that we need to wait until it does.
- // also, that means that the chunk and cb are currently
- // being processed, so move the buffer counter past them.
- if (state.writing) {
- break;
- }
- }
-
- if (entry === null) state.lastBufferedRequest = null;
- }
-
- state.bufferedRequestCount = 0;
- state.bufferedRequest = entry;
- state.bufferProcessing = false;
-}
-
-Writable.prototype._write = function (chunk, encoding, cb) {
- cb(new Error('not implemented'));
-};
-
-Writable.prototype._writev = null;
-
-Writable.prototype.end = function (chunk, encoding, cb) {
- var state = this._writableState;
-
- if (typeof chunk === 'function') {
- cb = chunk;
- chunk = null;
- encoding = null;
- } else if (typeof encoding === 'function') {
- cb = encoding;
- encoding = null;
- }
-
- if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
-
- // .end() fully uncorks
- if (state.corked) {
- state.corked = 1;
- this.uncork();
- }
-
- // ignore unnecessary end() calls.
- if (!state.ending && !state.finished) endWritable(this, state, cb);
-};
-
-function needFinish(state) {
- return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
-}
-
-function prefinish(stream, state) {
- if (!state.prefinished) {
- state.prefinished = true;
- stream.emit('prefinish');
- }
-}
-
-function finishMaybe(stream, state) {
- var need = needFinish(state);
- if (need) {
- if (state.pendingcb === 0) {
- prefinish(stream, state);
- state.finished = true;
- stream.emit('finish');
- } else {
- prefinish(stream, state);
- }
- }
- return need;
-}
-
-function endWritable(stream, state, cb) {
- state.ending = true;
- finishMaybe(stream, state);
- if (cb) {
- if (state.finished) processNextTick(cb);else stream.once('finish', cb);
- }
- state.ended = true;
- stream.writable = false;
-}
-
-// It seems a linked list but it is not
-// there will be only 2 of these for each stream
-function CorkedRequest(state) {
- var _this = this;
-
- this.next = null;
- this.entry = null;
-
- this.finish = function (err) {
- var entry = _this.entry;
- _this.entry = null;
- while (entry) {
- var cb = entry.callback;
- state.pendingcb--;
- cb(err);
- entry = entry.next;
- }
- if (state.corkedRequestsFree) {
- state.corkedRequestsFree.next = _this;
- } else {
- state.corkedRequestsFree = _this;
- }
- };
-}
-}).call(this,require('_process'))
-},{"./_stream_duplex":62,"_process":58,"buffer":45,"buffer-shims":44,"core-util-is":47,"events":50,"inherits":53,"process-nextick-args":57,"util-deprecate":73}],67:[function(require,module,exports){
-module.exports = require("./lib/_stream_passthrough.js")
-
-},{"./lib/_stream_passthrough.js":63}],68:[function(require,module,exports){
-(function (process){
-var Stream = (function (){
- try {
- return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
- } catch(_){}
-}());
-exports = module.exports = require('./lib/_stream_readable.js');
-exports.Stream = Stream || exports;
-exports.Readable = exports;
-exports.Writable = require('./lib/_stream_writable.js');
-exports.Duplex = require('./lib/_stream_duplex.js');
-exports.Transform = require('./lib/_stream_transform.js');
-exports.PassThrough = require('./lib/_stream_passthrough.js');
-
-if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
- module.exports = Stream;
-}
-
-}).call(this,require('_process'))
-},{"./lib/_stream_duplex.js":62,"./lib/_stream_passthrough.js":63,"./lib/_stream_readable.js":64,"./lib/_stream_transform.js":65,"./lib/_stream_writable.js":66,"_process":58}],69:[function(require,module,exports){
-module.exports = require("./lib/_stream_transform.js")
-
-},{"./lib/_stream_transform.js":65}],70:[function(require,module,exports){
-module.exports = require("./lib/_stream_writable.js")
-
-},{"./lib/_stream_writable.js":66}],71:[function(require,module,exports){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// 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.
-
-var Buffer = require('buffer').Buffer;
-
-var isBufferEncoding = Buffer.isEncoding
- || function(encoding) {
- switch (encoding && encoding.toLowerCase()) {
- case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;
- default: return false;
- }
- }
-
-
-function assertEncoding(encoding) {
- if (encoding && !isBufferEncoding(encoding)) {
- throw new Error('Unknown encoding: ' + encoding);
- }
-}
-
-// StringDecoder provides an interface for efficiently splitting a series of
-// buffers into a series of JS strings without breaking apart multi-byte
-// characters. CESU-8 is handled as part of the UTF-8 encoding.
-//
-// @TODO Handling all encodings inside a single object makes it very difficult
-// to reason about this code, so it should be split up in the future.
-// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code
-// points as used by CESU-8.
-var StringDecoder = exports.StringDecoder = function(encoding) {
- this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
- assertEncoding(encoding);
- switch (this.encoding) {
- case 'utf8':
- // CESU-8 represents each of Surrogate Pair by 3-bytes
- this.surrogateSize = 3;
- break;
- case 'ucs2':
- case 'utf16le':
- // UTF-16 represents each of Surrogate Pair by 2-bytes
- this.surrogateSize = 2;
- this.detectIncompleteChar = utf16DetectIncompleteChar;
- break;
- case 'base64':
- // Base-64 stores 3 bytes in 4 chars, and pads the remainder.
- this.surrogateSize = 3;
- this.detectIncompleteChar = base64DetectIncompleteChar;
- break;
- default:
- this.write = passThroughWrite;
- return;
- }
-
- // Enough space to store all bytes of a single character. UTF-8 needs 4
- // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).
- this.charBuffer = new Buffer(6);
- // Number of bytes received for the current incomplete multi-byte character.
- this.charReceived = 0;
- // Number of bytes expected for the current incomplete multi-byte character.
- this.charLength = 0;
-};
-
-
-// write decodes the given buffer and returns it as JS string that is
-// guaranteed to not contain any partial multi-byte characters. Any partial
-// character found at the end of the buffer is buffered up, and will be
-// returned when calling write again with the remaining bytes.
-//
-// Note: Converting a Buffer containing an orphan surrogate to a String
-// currently works, but converting a String to a Buffer (via `new Buffer`, or
-// Buffer#write) will replace incomplete surrogates with the unicode
-// replacement character. See https://codereview.chromium.org/121173009/ .
-StringDecoder.prototype.write = function(buffer) {
- var charStr = '';
- // if our last write ended with an incomplete multibyte character
- while (this.charLength) {
- // determine how many remaining bytes this buffer has to offer for this char
- var available = (buffer.length >= this.charLength - this.charReceived) ?
- this.charLength - this.charReceived :
- buffer.length;
-
- // add the new bytes to the char buffer
- buffer.copy(this.charBuffer, this.charReceived, 0, available);
- this.charReceived += available;
-
- if (this.charReceived < this.charLength) {
- // still not enough chars in this buffer? wait for more ...
- return '';
- }
-
- // remove bytes belonging to the current character from the buffer
- buffer = buffer.slice(available, buffer.length);
-
- // get the character that was split
- charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);
-
- // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
- var charCode = charStr.charCodeAt(charStr.length - 1);
- if (charCode >= 0xD800 && charCode <= 0xDBFF) {
- this.charLength += this.surrogateSize;
- charStr = '';
- continue;
- }
- this.charReceived = this.charLength = 0;
-
- // if there are no more bytes in this buffer, just emit our char
- if (buffer.length === 0) {
- return charStr;
- }
- break;
- }
-
- // determine and set charLength / charReceived
- this.detectIncompleteChar(buffer);
-
- var end = buffer.length;
- if (this.charLength) {
- // buffer the incomplete character bytes we got
- buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);
- end -= this.charReceived;
- }
-
- charStr += buffer.toString(this.encoding, 0, end);
-
- var end = charStr.length - 1;
- var charCode = charStr.charCodeAt(end);
- // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
- if (charCode >= 0xD800 && charCode <= 0xDBFF) {
- var size = this.surrogateSize;
- this.charLength += size;
- this.charReceived += size;
- this.charBuffer.copy(this.charBuffer, size, 0, size);
- buffer.copy(this.charBuffer, 0, 0, size);
- return charStr.substring(0, end);
- }
-
- // or just emit the charStr
- return charStr;
-};
-
-// detectIncompleteChar determines if there is an incomplete UTF-8 character at
-// the end of the given buffer. If so, it sets this.charLength to the byte
-// length that character, and sets this.charReceived to the number of bytes
-// that are available for this character.
-StringDecoder.prototype.detectIncompleteChar = function(buffer) {
- // determine how many bytes we have to check at the end of this buffer
- var i = (buffer.length >= 3) ? 3 : buffer.length;
-
- // Figure out if one of the last i bytes of our buffer announces an
- // incomplete char.
- for (; i > 0; i--) {
- var c = buffer[buffer.length - i];
-
- // See http://en.wikipedia.org/wiki/UTF-8#Description
-
- // 110XXXXX
- if (i == 1 && c >> 5 == 0x06) {
- this.charLength = 2;
- break;
- }
-
- // 1110XXXX
- if (i <= 2 && c >> 4 == 0x0E) {
- this.charLength = 3;
- break;
- }
-
- // 11110XXX
- if (i <= 3 && c >> 3 == 0x1E) {
- this.charLength = 4;
- break;
- }
- }
- this.charReceived = i;
-};
-
-StringDecoder.prototype.end = function(buffer) {
- var res = '';
- if (buffer && buffer.length)
- res = this.write(buffer);
-
- if (this.charReceived) {
- var cr = this.charReceived;
- var buf = this.charBuffer;
- var enc = this.encoding;
- res += buf.slice(0, cr).toString(enc);
- }
-
- return res;
-};
-
-function passThroughWrite(buffer) {
- return buffer.toString(this.encoding);
-}
-
-function utf16DetectIncompleteChar(buffer) {
- this.charReceived = buffer.length % 2;
- this.charLength = this.charReceived ? 2 : 0;
-}
-
-function base64DetectIncompleteChar(buffer) {
- this.charReceived = buffer.length % 3;
- this.charLength = this.charReceived ? 3 : 0;
-}
-
-},{"buffer":45}],72:[function(require,module,exports){
-
-/**
- * Expose `toIsoString`.
- */
-
-module.exports = toIsoString;
-
-
-/**
- * Turn a `date` into an ISO string.
- *
- * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
- *
- * @param {Date} date
- * @return {String}
- */
-
-function toIsoString (date) {
- return date.getUTCFullYear()
- + '-' + pad(date.getUTCMonth() + 1)
- + '-' + pad(date.getUTCDate())
- + 'T' + pad(date.getUTCHours())
- + ':' + pad(date.getUTCMinutes())
- + ':' + pad(date.getUTCSeconds())
- + '.' + String((date.getUTCMilliseconds()/1000).toFixed(3)).slice(2, 5)
- + 'Z';
-}
-
-
-/**
- * Pad a `number` with a ten's place zero.
- *
- * @param {Number} number
- * @return {String}
- */
-
-function pad (number) {
- var n = number.toString();
- return n.length === 1 ? '0' + n : n;
-}
-},{}],73:[function(require,module,exports){
-(function (global){
-
-/**
- * Module exports.
- */
-
-module.exports = deprecate;
-
-/**
- * Mark that a method should not be used.
- * Returns a modified function which warns once by default.
- *
- * If `localStorage.noDeprecation = true` is set, then it is a no-op.
- *
- * If `localStorage.throwDeprecation = true` is set, then deprecated functions
- * will throw an Error when invoked.
- *
- * If `localStorage.traceDeprecation = true` is set, then deprecated functions
- * will invoke `console.trace()` instead of `console.error()`.
- *
- * @param {Function} fn - the function to deprecate
- * @param {String} msg - the string to print to the console when `fn` is invoked
- * @returns {Function} a new "deprecated" version of `fn`
- * @api public
- */
-
-function deprecate (fn, msg) {
- if (config('noDeprecation')) {
- return fn;
- }
-
- var warned = false;
- function deprecated() {
- if (!warned) {
- if (config('throwDeprecation')) {
- throw new Error(msg);
- } else if (config('traceDeprecation')) {
- console.trace(msg);
- } else {
- console.warn(msg);
- }
- warned = true;
- }
- return fn.apply(this, arguments);
- }
-
- return deprecated;
-}
-
-/**
- * Checks `localStorage` for boolean values for the given `name`.
- *
- * @param {String} name
- * @returns {Boolean}
- * @api private
- */
-
-function config (name) {
- // accessing global.localStorage can trigger a DOMException in sandboxed iframes
- try {
- if (!global.localStorage) return false;
- } catch (_) {
- return false;
- }
- var val = global.localStorage[name];
- if (null == val) return false;
- return String(val).toLowerCase() === 'true';
-}
-
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],74:[function(require,module,exports){
-module.exports = function isBuffer(arg) {
- return arg && typeof arg === 'object'
- && typeof arg.copy === 'function'
- && typeof arg.fill === 'function'
- && typeof arg.readUInt8 === 'function';
-}
-},{}],75:[function(require,module,exports){
-(function (process,global){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// 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.
-
-var formatRegExp = /%[sdj%]/g;
-exports.format = function(f) {
- if (!isString(f)) {
- var objects = [];
- for (var i = 0; i < arguments.length; i++) {
- objects.push(inspect(arguments[i]));
- }
- return objects.join(' ');
- }
-
- var i = 1;
- var args = arguments;
- var len = args.length;
- var str = String(f).replace(formatRegExp, function(x) {
- if (x === '%%') return '%';
- if (i >= len) return x;
- switch (x) {
- case '%s': return String(args[i++]);
- case '%d': return Number(args[i++]);
- case '%j':
- try {
- return JSON.stringify(args[i++]);
- } catch (_) {
- return '[Circular]';
- }
- default:
- return x;
- }
- });
- for (var x = args[i]; i < len; x = args[++i]) {
- if (isNull(x) || !isObject(x)) {
- str += ' ' + x;
- } else {
- str += ' ' + inspect(x);
- }
- }
- return str;
-};
-
-
-// Mark that a method should not be used.
-// Returns a modified function which warns once by default.
-// If --no-deprecation is set, then it is a no-op.
-exports.deprecate = function(fn, msg) {
- // Allow for deprecating things in the process of starting up.
- if (isUndefined(global.process)) {
- return function() {
- return exports.deprecate(fn, msg).apply(this, arguments);
- };
- }
-
- if (process.noDeprecation === true) {
- return fn;
- }
-
- var warned = false;
- function deprecated() {
- if (!warned) {
- if (process.throwDeprecation) {
- throw new Error(msg);
- } else if (process.traceDeprecation) {
- console.trace(msg);
- } else {
- console.error(msg);
- }
- warned = true;
- }
- return fn.apply(this, arguments);
- }
-
- return deprecated;
-};
-
-
-var debugs = {};
-var debugEnviron;
-exports.debuglog = function(set) {
- if (isUndefined(debugEnviron))
- debugEnviron = process.env.NODE_DEBUG || '';
- set = set.toUpperCase();
- if (!debugs[set]) {
- if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
- var pid = process.pid;
- debugs[set] = function() {
- var msg = exports.format.apply(exports, arguments);
- console.error('%s %d: %s', set, pid, msg);
- };
- } else {
- debugs[set] = function() {};
- }
- }
- return debugs[set];
-};
-
-
-/**
- * Echos the value of a value. Trys to print the value out
- * in the best way possible given the different types.
- *
- * @param {Object} obj The object to print out.
- * @param {Object} opts Optional options object that alters the output.
- */
-/* legacy: obj, showHidden, depth, colors*/
-function inspect(obj, opts) {
- // default options
- var ctx = {
- seen: [],
- stylize: stylizeNoColor
- };
- // legacy...
- if (arguments.length >= 3) ctx.depth = arguments[2];
- if (arguments.length >= 4) ctx.colors = arguments[3];
- if (isBoolean(opts)) {
- // legacy...
- ctx.showHidden = opts;
- } else if (opts) {
- // got an "options" object
- exports._extend(ctx, opts);
- }
- // set default options
- if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
- if (isUndefined(ctx.depth)) ctx.depth = 2;
- if (isUndefined(ctx.colors)) ctx.colors = false;
- if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
- if (ctx.colors) ctx.stylize = stylizeWithColor;
- return formatValue(ctx, obj, ctx.depth);
-}
-exports.inspect = inspect;
-
-
-// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
-inspect.colors = {
- 'bold' : [1, 22],
- 'italic' : [3, 23],
- 'underline' : [4, 24],
- 'inverse' : [7, 27],
- 'white' : [37, 39],
- 'grey' : [90, 39],
- 'black' : [30, 39],
- 'blue' : [34, 39],
- 'cyan' : [36, 39],
- 'green' : [32, 39],
- 'magenta' : [35, 39],
- 'red' : [31, 39],
- 'yellow' : [33, 39]
-};
-
-// Don't use 'blue' not visible on cmd.exe
-inspect.styles = {
- 'special': 'cyan',
- 'number': 'yellow',
- 'boolean': 'yellow',
- 'undefined': 'grey',
- 'null': 'bold',
- 'string': 'green',
- 'date': 'magenta',
- // "name": intentionally not styling
- 'regexp': 'red'
-};
-
-
-function stylizeWithColor(str, styleType) {
- var style = inspect.styles[styleType];
-
- if (style) {
- return '\u001b[' + inspect.colors[style][0] + 'm' + str +
- '\u001b[' + inspect.colors[style][1] + 'm';
- } else {
- return str;
- }
-}
-
-
-function stylizeNoColor(str, styleType) {
- return str;
-}
-
-
-function arrayToHash(array) {
- var hash = {};
-
- array.forEach(function(val, idx) {
- hash[val] = true;
- });
-
- return hash;
-}
-
-
-function formatValue(ctx, value, recurseTimes) {
- // Provide a hook for user-specified inspect functions.
- // Check that value is an object with an inspect function on it
- if (ctx.customInspect &&
- value &&
- isFunction(value.inspect) &&
- // Filter out the util module, it's inspect function is special
- value.inspect !== exports.inspect &&
- // Also filter out any prototype objects using the circular check.
- !(value.constructor && value.constructor.prototype === value)) {
- var ret = value.inspect(recurseTimes, ctx);
- if (!isString(ret)) {
- ret = formatValue(ctx, ret, recurseTimes);
- }
- return ret;
- }
-
- // Primitive types cannot have properties
- var primitive = formatPrimitive(ctx, value);
- if (primitive) {
- return primitive;
- }
-
- // Look up the keys of the object.
- var keys = Object.keys(value);
- var visibleKeys = arrayToHash(keys);
-
- if (ctx.showHidden) {
- keys = Object.getOwnPropertyNames(value);
- }
-
- // IE doesn't make error fields non-enumerable
- // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx
- if (isError(value)
- && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {
- return formatError(value);
- }
-
- // Some type of object without properties can be shortcutted.
- if (keys.length === 0) {
- if (isFunction(value)) {
- var name = value.name ? ': ' + value.name : '';
- return ctx.stylize('[Function' + name + ']', 'special');
- }
- if (isRegExp(value)) {
- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
- }
- if (isDate(value)) {
- return ctx.stylize(Date.prototype.toString.call(value), 'date');
- }
- if (isError(value)) {
- return formatError(value);
- }
- }
-
- var base = '', array = false, braces = ['{', '}'];
-
- // Make Array say that they are Array
- if (isArray(value)) {
- array = true;
- braces = ['[', ']'];
- }
-
- // Make functions say that they are functions
- if (isFunction(value)) {
- var n = value.name ? ': ' + value.name : '';
- base = ' [Function' + n + ']';
- }
-
- // Make RegExps say that they are RegExps
- if (isRegExp(value)) {
- base = ' ' + RegExp.prototype.toString.call(value);
- }
-
- // Make dates with properties first say the date
- if (isDate(value)) {
- base = ' ' + Date.prototype.toUTCString.call(value);
- }
-
- // Make error with message first say the error
- if (isError(value)) {
- base = ' ' + formatError(value);
- }
-
- if (keys.length === 0 && (!array || value.length == 0)) {
- return braces[0] + base + braces[1];
- }
-
- if (recurseTimes < 0) {
- if (isRegExp(value)) {
- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
- } else {
- return ctx.stylize('[Object]', 'special');
- }
- }
-
- ctx.seen.push(value);
-
- var output;
- if (array) {
- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
- } else {
- output = keys.map(function(key) {
- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
- });
- }
-
- ctx.seen.pop();
-
- return reduceToSingleString(output, base, braces);
-}
-
-
-function formatPrimitive(ctx, value) {
- if (isUndefined(value))
- return ctx.stylize('undefined', 'undefined');
- if (isString(value)) {
- var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
- .replace(/'/g, "\\'")
- .replace(/\\"/g, '"') + '\'';
- return ctx.stylize(simple, 'string');
- }
- if (isNumber(value))
- return ctx.stylize('' + value, 'number');
- if (isBoolean(value))
- return ctx.stylize('' + value, 'boolean');
- // For some reason typeof null is "object", so special case here.
- if (isNull(value))
- return ctx.stylize('null', 'null');
-}
-
-
-function formatError(value) {
- return '[' + Error.prototype.toString.call(value) + ']';
-}
-
-
-function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
- var output = [];
- for (var i = 0, l = value.length; i < l; ++i) {
- if (hasOwnProperty(value, String(i))) {
- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
- String(i), true));
- } else {
- output.push('');
- }
- }
- keys.forEach(function(key) {
- if (!key.match(/^\d+$/)) {
- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
- key, true));
- }
- });
- return output;
-}
-
-
-function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
- var name, str, desc;
- desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
- if (desc.get) {
- if (desc.set) {
- str = ctx.stylize('[Getter/Setter]', 'special');
- } else {
- str = ctx.stylize('[Getter]', 'special');
- }
- } else {
- if (desc.set) {
- str = ctx.stylize('[Setter]', 'special');
- }
- }
- if (!hasOwnProperty(visibleKeys, key)) {
- name = '[' + key + ']';
- }
- if (!str) {
- if (ctx.seen.indexOf(desc.value) < 0) {
- if (isNull(recurseTimes)) {
- str = formatValue(ctx, desc.value, null);
- } else {
- str = formatValue(ctx, desc.value, recurseTimes - 1);
- }
- if (str.indexOf('\n') > -1) {
- if (array) {
- str = str.split('\n').map(function(line) {
- return ' ' + line;
- }).join('\n').substr(2);
- } else {
- str = '\n' + str.split('\n').map(function(line) {
- return ' ' + line;
- }).join('\n');
- }
- }
- } else {
- str = ctx.stylize('[Circular]', 'special');
- }
- }
- if (isUndefined(name)) {
- if (array && key.match(/^\d+$/)) {
- return str;
- }
- name = JSON.stringify('' + key);
- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
- name = name.substr(1, name.length - 2);
- name = ctx.stylize(name, 'name');
- } else {
- name = name.replace(/'/g, "\\'")
- .replace(/\\"/g, '"')
- .replace(/(^"|"$)/g, "'");
- name = ctx.stylize(name, 'string');
- }
- }
-
- return name + ': ' + str;
-}
-
-
-function reduceToSingleString(output, base, braces) {
- var numLinesEst = 0;
- var length = output.reduce(function(prev, cur) {
- numLinesEst++;
- if (cur.indexOf('\n') >= 0) numLinesEst++;
- return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
- }, 0);
-
- if (length > 60) {
- return braces[0] +
- (base === '' ? '' : base + '\n ') +
- ' ' +
- output.join(',\n ') +
- ' ' +
- braces[1];
- }
-
- return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
-}
-
-
-// NOTE: These type checking functions intentionally don't use `instanceof`
-// because it is fragile and can be easily faked with `Object.create()`.
-function isArray(ar) {
- return Array.isArray(ar);
-}
-exports.isArray = isArray;
-
-function isBoolean(arg) {
- return typeof arg === 'boolean';
-}
-exports.isBoolean = isBoolean;
-
-function isNull(arg) {
- return arg === null;
-}
-exports.isNull = isNull;
-
-function isNullOrUndefined(arg) {
- return arg == null;
-}
-exports.isNullOrUndefined = isNullOrUndefined;
-
-function isNumber(arg) {
- return typeof arg === 'number';
-}
-exports.isNumber = isNumber;
-
-function isString(arg) {
- return typeof arg === 'string';
-}
-exports.isString = isString;
-
-function isSymbol(arg) {
- return typeof arg === 'symbol';
-}
-exports.isSymbol = isSymbol;
-
-function isUndefined(arg) {
- return arg === void 0;
-}
-exports.isUndefined = isUndefined;
-
-function isRegExp(re) {
- return isObject(re) && objectToString(re) === '[object RegExp]';
-}
-exports.isRegExp = isRegExp;
-
-function isObject(arg) {
- return typeof arg === 'object' && arg !== null;
-}
-exports.isObject = isObject;
-
-function isDate(d) {
- return isObject(d) && objectToString(d) === '[object Date]';
-}
-exports.isDate = isDate;
-
-function isError(e) {
- return isObject(e) &&
- (objectToString(e) === '[object Error]' || e instanceof Error);
-}
-exports.isError = isError;
-
-function isFunction(arg) {
- return typeof arg === 'function';
-}
-exports.isFunction = isFunction;
-
-function isPrimitive(arg) {
- return arg === null ||
- typeof arg === 'boolean' ||
- typeof arg === 'number' ||
- typeof arg === 'string' ||
- typeof arg === 'symbol' || // ES6 symbol
- typeof arg === 'undefined';
-}
-exports.isPrimitive = isPrimitive;
-
-exports.isBuffer = require('./support/isBuffer');
-
-function objectToString(o) {
- return Object.prototype.toString.call(o);
-}
-
-
-function pad(n) {
- return n < 10 ? '0' + n.toString(10) : n.toString(10);
-}
-
-
-var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
- 'Oct', 'Nov', 'Dec'];
-
-// 26 Feb 16:19:34
-function timestamp() {
- var d = new Date();
- var time = [pad(d.getHours()),
- pad(d.getMinutes()),
- pad(d.getSeconds())].join(':');
- return [d.getDate(), months[d.getMonth()], time].join(' ');
-}
-
-
-// log is just a thin wrapper to console.log that prepends a timestamp
-exports.log = function() {
- console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
-};
-
-
-/**
- * Inherit the prototype methods from one constructor into another.
- *
- * The Function.prototype.inherits from lang.js rewritten as a standalone
- * function (not on Function.prototype). NOTE: If this file is to be loaded
- * during bootstrapping this function needs to be rewritten using some native
- * functions as prototype setup using normal JavaScript does not work as
- * expected during bootstrapping (see mirror.js in r114903).
- *
- * @param {function} ctor Constructor function which needs to inherit the
- * prototype.
- * @param {function} superCtor Constructor function to inherit prototype from.
- */
-exports.inherits = require('inherits');
-
-exports._extend = function(origin, add) {
- // Don't do anything if add isn't an object
- if (!add || !isObject(add)) return origin;
-
- var keys = Object.keys(add);
- var i = keys.length;
- while (i--) {
- origin[keys[i]] = add[keys[i]];
- }
- return origin;
-};
-
-function hasOwnProperty(obj, prop) {
- return Object.prototype.hasOwnProperty.call(obj, prop);
-}
-
-}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"./support/isBuffer":74,"_process":58,"inherits":53}]},{},[1]);
diff --git a/node_modules/mocha/node_modules/.bin/jade b/node_modules/mocha/node_modules/.bin/jade
deleted file mode 120000
index 2d0832099..000000000
--- a/node_modules/mocha/node_modules/.bin/jade
+++ /dev/null
@@ -1 +0,0 @@
-../../../jade/bin/jade \ No newline at end of file
diff --git a/node_modules/mocha/node_modules/.bin/mkdirp b/node_modules/mocha/node_modules/.bin/mkdirp
deleted file mode 120000
index 91a5f623f..000000000
--- a/node_modules/mocha/node_modules/.bin/mkdirp
+++ /dev/null
@@ -1 +0,0 @@
-../../../mkdirp/bin/cmd.js \ No newline at end of file
diff --git a/node_modules/mocha/node_modules/.bin/supports-color b/node_modules/mocha/node_modules/.bin/supports-color
deleted file mode 120000
index af0f05efe..000000000
--- a/node_modules/mocha/node_modules/.bin/supports-color
+++ /dev/null
@@ -1 +0,0 @@
-../supports-color/cli.js \ No newline at end of file
diff --git a/node_modules/mocha/node_modules/commander/Readme.md b/node_modules/mocha/node_modules/commander/Readme.md
deleted file mode 100644
index 7bb60b2c6..000000000
--- a/node_modules/mocha/node_modules/commander/Readme.md
+++ /dev/null
@@ -1,208 +0,0 @@
-# Commander.js
-
- The complete solution for [node.js](http://nodejs.org) command-line interfaces, inspired by Ruby's [commander](https://github.com/visionmedia/commander).
-
- [![Build Status](https://api.travis-ci.org/visionmedia/commander.js.svg)](http://travis-ci.org/visionmedia/commander.js)
-
-## Installation
-
- $ npm install commander
-
-## Option parsing
-
- Options with commander are defined with the `.option()` method, also serving as documentation for the options. The example below parses args and options from `process.argv`, leaving remaining args as the `program.args` array which were not consumed by options.
-
-```js
-#!/usr/bin/env node
-
-/**
- * Module dependencies.
- */
-
-var program = require('commander');
-
-program
- .version('0.0.1')
- .option('-p, --peppers', 'Add peppers')
- .option('-P, --pineapple', 'Add pineapple')
- .option('-b, --bbq', 'Add bbq sauce')
- .option('-c, --cheese [type]', 'Add the specified type of cheese [marble]', 'marble')
- .parse(process.argv);
-
-console.log('you ordered a pizza with:');
-if (program.peppers) console.log(' - peppers');
-if (program.pineapple) console.log(' - pineapple');
-if (program.bbq) console.log(' - bbq');
-console.log(' - %s cheese', program.cheese);
-```
-
- Short flags may be passed as a single arg, for example `-abc` is equivalent to `-a -b -c`. Multi-word options such as "--template-engine" are camel-cased, becoming `program.templateEngine` etc.
-
-## Automated --help
-
- The help information is auto-generated based on the information commander already knows about your program, so the following `--help` info is for free:
-
-```
- $ ./examples/pizza --help
-
- Usage: pizza [options]
-
- Options:
-
- -V, --version output the version number
- -p, --peppers Add peppers
- -P, --pineapple Add pineapple
- -b, --bbq Add bbq sauce
- -c, --cheese <type> Add the specified type of cheese [marble]
- -h, --help output usage information
-
-```
-
-## Coercion
-
-```js
-function range(val) {
- return val.split('..').map(Number);
-}
-
-function list(val) {
- return val.split(',');
-}
-
-function collect(val, memo) {
- memo.push(val);
- return memo;
-}
-
-function increaseVerbosity(v, total) {
- return total + 1;
-}
-
-program
- .version('0.0.1')
- .usage('[options] <file ...>')
- .option('-i, --integer <n>', 'An integer argument', parseInt)
- .option('-f, --float <n>', 'A float argument', parseFloat)
- .option('-r, --range <a>..<b>', 'A range', range)
- .option('-l, --list <items>', 'A list', list)
- .option('-o, --optional [value]', 'An optional value')
- .option('-c, --collect [value]', 'A repeatable value', collect, [])
- .option('-v, --verbose', 'A value that can be increased', increaseVerbosity, 0)
- .parse(process.argv);
-
-console.log(' int: %j', program.integer);
-console.log(' float: %j', program.float);
-console.log(' optional: %j', program.optional);
-program.range = program.range || [];
-console.log(' range: %j..%j', program.range[0], program.range[1]);
-console.log(' list: %j', program.list);
-console.log(' collect: %j', program.collect);
-console.log(' verbosity: %j', program.verbose);
-console.log(' args: %j', program.args);
-```
-
-## Custom help
-
- You can display arbitrary `-h, --help` information
- by listening for "--help". Commander will automatically
- exit once you are done so that the remainder of your program
- does not execute causing undesired behaviours, for example
- in the following executable "stuff" will not output when
- `--help` is used.
-
-```js
-#!/usr/bin/env node
-
-/**
- * Module dependencies.
- */
-
-var program = require('../');
-
-function list(val) {
- return val.split(',').map(Number);
-}
-
-program
- .version('0.0.1')
- .option('-f, --foo', 'enable some foo')
- .option('-b, --bar', 'enable some bar')
- .option('-B, --baz', 'enable some baz');
-
-// must be before .parse() since
-// node's emit() is immediate
-
-program.on('--help', function(){
- console.log(' Examples:');
- console.log('');
- console.log(' $ custom-help --help');
- console.log(' $ custom-help -h');
- console.log('');
-});
-
-program.parse(process.argv);
-
-console.log('stuff');
-```
-
-yielding the following help output:
-
-```
-
-Usage: custom-help [options]
-
-Options:
-
- -h, --help output usage information
- -V, --version output the version number
- -f, --foo enable some foo
- -b, --bar enable some bar
- -B, --baz enable some baz
-
-Examples:
-
- $ custom-help --help
- $ custom-help -h
-
-```
-
-## .outputHelp()
-
- Output help information without exiting.
-
-## .help()
-
- Output help information and exit immediately.
-
-## Links
-
- - [API documentation](http://visionmedia.github.com/commander.js/)
- - [ascii tables](https://github.com/LearnBoost/cli-table)
- - [progress bars](https://github.com/visionmedia/node-progress)
- - [more progress bars](https://github.com/substack/node-multimeter)
- - [examples](https://github.com/visionmedia/commander.js/tree/master/examples)
-
-## License
-
-(The MIT License)
-
-Copyright (c) 2011 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
-
-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.
diff --git a/node_modules/mocha/node_modules/commander/index.js b/node_modules/mocha/node_modules/commander/index.js
deleted file mode 100644
index 8378d19a2..000000000
--- a/node_modules/mocha/node_modules/commander/index.js
+++ /dev/null
@@ -1,876 +0,0 @@
-
-/**
- * Module dependencies.
- */
-
-var EventEmitter = require('events').EventEmitter;
-var spawn = require('child_process').spawn;
-var path = require('path');
-var dirname = path.dirname;
-var basename = path.basename;
-
-/**
- * Expose the root command.
- */
-
-exports = module.exports = new Command;
-
-/**
- * Expose `Command`.
- */
-
-exports.Command = Command;
-
-/**
- * Expose `Option`.
- */
-
-exports.Option = Option;
-
-/**
- * Initialize a new `Option` with the given `flags` and `description`.
- *
- * @param {String} flags
- * @param {String} description
- * @api public
- */
-
-function Option(flags, description) {
- this.flags = flags;
- this.required = ~flags.indexOf('<');
- this.optional = ~flags.indexOf('[');
- this.bool = !~flags.indexOf('-no-');
- flags = flags.split(/[ ,|]+/);
- if (flags.length > 1 && !/^[[<]/.test(flags[1])) this.short = flags.shift();
- this.long = flags.shift();
- this.description = description || '';
-}
-
-/**
- * Return option name.
- *
- * @return {String}
- * @api private
- */
-
-Option.prototype.name = function(){
- return this.long
- .replace('--', '')
- .replace('no-', '');
-};
-
-/**
- * Check if `arg` matches the short or long flag.
- *
- * @param {String} arg
- * @return {Boolean}
- * @api private
- */
-
-Option.prototype.is = function(arg){
- return arg == this.short
- || arg == this.long;
-};
-
-/**
- * Initialize a new `Command`.
- *
- * @param {String} name
- * @api public
- */
-
-function Command(name) {
- this.commands = [];
- this.options = [];
- this._execs = [];
- this._args = [];
- this._name = name;
-}
-
-/**
- * Inherit from `EventEmitter.prototype`.
- */
-
-Command.prototype.__proto__ = EventEmitter.prototype;
-
-/**
- * Add command `name`.
- *
- * The `.action()` callback is invoked when the
- * command `name` is specified via __ARGV__,
- * and the remaining arguments are applied to the
- * function for access.
- *
- * When the `name` is "*" an un-matched command
- * will be passed as the first arg, followed by
- * the rest of __ARGV__ remaining.
- *
- * Examples:
- *
- * program
- * .version('0.0.1')
- * .option('-C, --chdir <path>', 'change the working directory')
- * .option('-c, --config <path>', 'set config path. defaults to ./deploy.conf')
- * .option('-T, --no-tests', 'ignore test hook')
- *
- * program
- * .command('setup')
- * .description('run remote setup commands')
- * .action(function(){
- * console.log('setup');
- * });
- *
- * program
- * .command('exec <cmd>')
- * .description('run the given remote command')
- * .action(function(cmd){
- * console.log('exec "%s"', cmd);
- * });
- *
- * program
- * .command('*')
- * .description('deploy the given env')
- * .action(function(env){
- * console.log('deploying "%s"', env);
- * });
- *
- * program.parse(process.argv);
- *
- * @param {String} name
- * @param {String} [desc]
- * @return {Command} the new command
- * @api public
- */
-
-Command.prototype.command = function(name, desc) {
- var args = name.split(/ +/);
- var cmd = new Command(args.shift());
- if (desc) cmd.description(desc);
- if (desc) this.executables = true;
- if (desc) this._execs[cmd._name] = true;
- this.commands.push(cmd);
- cmd.parseExpectedArgs(args);
- cmd.parent = this;
- if (desc) return this;
- return cmd;
-};
-
-/**
- * Add an implicit `help [cmd]` subcommand
- * which invokes `--help` for the given command.
- *
- * @api private
- */
-
-Command.prototype.addImplicitHelpCommand = function() {
- this.command('help [cmd]', 'display help for [cmd]');
-};
-
-/**
- * Parse expected `args`.
- *
- * For example `["[type]"]` becomes `[{ required: false, name: 'type' }]`.
- *
- * @param {Array} args
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.parseExpectedArgs = function(args){
- if (!args.length) return;
- var self = this;
- args.forEach(function(arg){
- switch (arg[0]) {
- case '<':
- self._args.push({ required: true, name: arg.slice(1, -1) });
- break;
- case '[':
- self._args.push({ required: false, name: arg.slice(1, -1) });
- break;
- }
- });
- return this;
-};
-
-/**
- * Register callback `fn` for the command.
- *
- * Examples:
- *
- * program
- * .command('help')
- * .description('display verbose help')
- * .action(function(){
- * // output help here
- * });
- *
- * @param {Function} fn
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.action = function(fn){
- var self = this;
- var listener = function(args, unknown){
- // Parse any so-far unknown options
- args = args || [];
- unknown = unknown || [];
-
- var parsed = self.parseOptions(unknown);
-
- // Output help if necessary
- outputHelpIfNecessary(self, parsed.unknown);
-
- // If there are still any unknown options, then we simply
- // die, unless someone asked for help, in which case we give it
- // to them, and then we die.
- if (parsed.unknown.length > 0) {
- self.unknownOption(parsed.unknown[0]);
- }
-
- // Leftover arguments need to be pushed back. Fixes issue #56
- if (parsed.args.length) args = parsed.args.concat(args);
-
- self._args.forEach(function(arg, i){
- if (arg.required && null == args[i]) {
- self.missingArgument(arg.name);
- }
- });
-
- // Always append ourselves to the end of the arguments,
- // to make sure we match the number of arguments the user
- // expects
- if (self._args.length) {
- args[self._args.length] = self;
- } else {
- args.push(self);
- }
-
- fn.apply(this, args);
- };
- this.parent.on(this._name, listener);
- if (this._alias) this.parent.on(this._alias, listener);
- return this;
-};
-
-/**
- * Define option with `flags`, `description` and optional
- * coercion `fn`.
- *
- * The `flags` string should contain both the short and long flags,
- * separated by comma, a pipe or space. The following are all valid
- * all will output this way when `--help` is used.
- *
- * "-p, --pepper"
- * "-p|--pepper"
- * "-p --pepper"
- *
- * Examples:
- *
- * // simple boolean defaulting to false
- * program.option('-p, --pepper', 'add pepper');
- *
- * --pepper
- * program.pepper
- * // => Boolean
- *
- * // simple boolean defaulting to true
- * program.option('-C, --no-cheese', 'remove cheese');
- *
- * program.cheese
- * // => true
- *
- * --no-cheese
- * program.cheese
- * // => false
- *
- * // required argument
- * program.option('-C, --chdir <path>', 'change the working directory');
- *
- * --chdir /tmp
- * program.chdir
- * // => "/tmp"
- *
- * // optional argument
- * program.option('-c, --cheese [type]', 'add cheese [marble]');
- *
- * @param {String} flags
- * @param {String} description
- * @param {Function|Mixed} fn or default
- * @param {Mixed} defaultValue
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.option = function(flags, description, fn, defaultValue){
- var self = this
- , option = new Option(flags, description)
- , oname = option.name()
- , name = camelcase(oname);
-
- // default as 3rd arg
- if ('function' != typeof fn) defaultValue = fn, fn = null;
-
- // preassign default value only for --no-*, [optional], or <required>
- if (false == option.bool || option.optional || option.required) {
- // when --no-* we make sure default is true
- if (false == option.bool) defaultValue = true;
- // preassign only if we have a default
- if (undefined !== defaultValue) self[name] = defaultValue;
- }
-
- // register the option
- this.options.push(option);
-
- // when it's passed assign the value
- // and conditionally invoke the callback
- this.on(oname, function(val){
- // coercion
- if (null !== val && fn) val = fn(val, undefined === self[name] ? defaultValue : self[name]);
-
- // unassigned or bool
- if ('boolean' == typeof self[name] || 'undefined' == typeof self[name]) {
- // if no value, bool true, and we have a default, then use it!
- if (null == val) {
- self[name] = option.bool
- ? defaultValue || true
- : false;
- } else {
- self[name] = val;
- }
- } else if (null !== val) {
- // reassign
- self[name] = val;
- }
- });
-
- return this;
-};
-
-/**
- * Parse `argv`, settings options and invoking commands when defined.
- *
- * @param {Array} argv
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.parse = function(argv){
- // implicit help
- if (this.executables) this.addImplicitHelpCommand();
-
- // store raw args
- this.rawArgs = argv;
-
- // guess name
- this._name = this._name || basename(argv[1], '.js');
-
- // process argv
- var parsed = this.parseOptions(this.normalize(argv.slice(2)));
- var args = this.args = parsed.args;
-
- var result = this.parseArgs(this.args, parsed.unknown);
-
- // executable sub-commands
- var name = result.args[0];
- if (this._execs[name]) return this.executeSubCommand(argv, args, parsed.unknown);
-
- return result;
-};
-
-/**
- * Execute a sub-command executable.
- *
- * @param {Array} argv
- * @param {Array} args
- * @param {Array} unknown
- * @api private
- */
-
-Command.prototype.executeSubCommand = function(argv, args, unknown) {
- args = args.concat(unknown);
-
- if (!args.length) this.help();
- if ('help' == args[0] && 1 == args.length) this.help();
-
- // <cmd> --help
- if ('help' == args[0]) {
- args[0] = args[1];
- args[1] = '--help';
- }
-
- // executable
- var dir = dirname(argv[1]);
- var bin = basename(argv[1], '.js') + '-' + args[0];
-
- // check for ./<bin> first
- var local = path.join(dir, bin);
-
- // run it
- args = args.slice(1);
- args.unshift(local);
- var proc = spawn('node', args, { stdio: 'inherit', customFds: [0, 1, 2] });
- proc.on('error', function(err){
- if (err.code == "ENOENT") {
- console.error('\n %s(1) does not exist, try --help\n', bin);
- } else if (err.code == "EACCES") {
- console.error('\n %s(1) not executable. try chmod or run with root\n', bin);
- }
- });
-
- this.runningCommand = proc;
-};
-
-/**
- * Normalize `args`, splitting joined short flags. For example
- * the arg "-abc" is equivalent to "-a -b -c".
- * This also normalizes equal sign and splits "--abc=def" into "--abc def".
- *
- * @param {Array} args
- * @return {Array}
- * @api private
- */
-
-Command.prototype.normalize = function(args){
- var ret = []
- , arg
- , lastOpt
- , index;
-
- for (var i = 0, len = args.length; i < len; ++i) {
- arg = args[i];
- i > 0 && (lastOpt = this.optionFor(args[i-1]));
-
- if (lastOpt && lastOpt.required) {
- ret.push(arg);
- } else if (arg.length > 1 && '-' == arg[0] && '-' != arg[1]) {
- arg.slice(1).split('').forEach(function(c){
- ret.push('-' + c);
- });
- } else if (/^--/.test(arg) && ~(index = arg.indexOf('='))) {
- ret.push(arg.slice(0, index), arg.slice(index + 1));
- } else {
- ret.push(arg);
- }
- }
-
- return ret;
-};
-
-/**
- * Parse command `args`.
- *
- * When listener(s) are available those
- * callbacks are invoked, otherwise the "*"
- * event is emitted and those actions are invoked.
- *
- * @param {Array} args
- * @return {Command} for chaining
- * @api private
- */
-
-Command.prototype.parseArgs = function(args, unknown){
- var cmds = this.commands
- , len = cmds.length
- , name;
-
- if (args.length) {
- name = args[0];
- if (this.listeners(name).length) {
- this.emit(args.shift(), args, unknown);
- } else {
- this.emit('*', args);
- }
- } else {
- outputHelpIfNecessary(this, unknown);
-
- // If there were no args and we have unknown options,
- // then they are extraneous and we need to error.
- if (unknown.length > 0) {
- this.unknownOption(unknown[0]);
- }
- }
-
- return this;
-};
-
-/**
- * Return an option matching `arg` if any.
- *
- * @param {String} arg
- * @return {Option}
- * @api private
- */
-
-Command.prototype.optionFor = function(arg){
- for (var i = 0, len = this.options.length; i < len; ++i) {
- if (this.options[i].is(arg)) {
- return this.options[i];
- }
- }
-};
-
-/**
- * Parse options from `argv` returning `argv`
- * void of these options.
- *
- * @param {Array} argv
- * @return {Array}
- * @api public
- */
-
-Command.prototype.parseOptions = function(argv){
- var args = []
- , len = argv.length
- , literal
- , option
- , arg;
-
- var unknownOptions = [];
-
- // parse options
- for (var i = 0; i < len; ++i) {
- arg = argv[i];
-
- // literal args after --
- if ('--' == arg) {
- literal = true;
- continue;
- }
-
- if (literal) {
- args.push(arg);
- continue;
- }
-
- // find matching Option
- option = this.optionFor(arg);
-
- // option is defined
- if (option) {
- // requires arg
- if (option.required) {
- arg = argv[++i];
- if (null == arg) return this.optionMissingArgument(option);
- this.emit(option.name(), arg);
- // optional arg
- } else if (option.optional) {
- arg = argv[i+1];
- if (null == arg || ('-' == arg[0] && '-' != arg)) {
- arg = null;
- } else {
- ++i;
- }
- this.emit(option.name(), arg);
- // bool
- } else {
- this.emit(option.name());
- }
- continue;
- }
-
- // looks like an option
- if (arg.length > 1 && '-' == arg[0]) {
- unknownOptions.push(arg);
-
- // If the next argument looks like it might be
- // an argument for this option, we pass it on.
- // If it isn't, then it'll simply be ignored
- if (argv[i+1] && '-' != argv[i+1][0]) {
- unknownOptions.push(argv[++i]);
- }
- continue;
- }
-
- // arg
- args.push(arg);
- }
-
- return { args: args, unknown: unknownOptions };
-};
-
-/**
- * Argument `name` is missing.
- *
- * @param {String} name
- * @api private
- */
-
-Command.prototype.missingArgument = function(name){
- console.error();
- console.error(" error: missing required argument `%s'", name);
- console.error();
- process.exit(1);
-};
-
-/**
- * `Option` is missing an argument, but received `flag` or nothing.
- *
- * @param {String} option
- * @param {String} flag
- * @api private
- */
-
-Command.prototype.optionMissingArgument = function(option, flag){
- console.error();
- if (flag) {
- console.error(" error: option `%s' argument missing, got `%s'", option.flags, flag);
- } else {
- console.error(" error: option `%s' argument missing", option.flags);
- }
- console.error();
- process.exit(1);
-};
-
-/**
- * Unknown option `flag`.
- *
- * @param {String} flag
- * @api private
- */
-
-Command.prototype.unknownOption = function(flag){
- console.error();
- console.error(" error: unknown option `%s'", flag);
- console.error();
- process.exit(1);
-};
-
-
-/**
- * Set the program version to `str`.
- *
- * This method auto-registers the "-V, --version" flag
- * which will print the version number when passed.
- *
- * @param {String} str
- * @param {String} flags
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.version = function(str, flags){
- if (0 == arguments.length) return this._version;
- this._version = str;
- flags = flags || '-V, --version';
- this.option(flags, 'output the version number');
- this.on('version', function(){
- console.log(str);
- process.exit(0);
- });
- return this;
-};
-
-/**
- * Set the description `str`.
- *
- * @param {String} str
- * @return {String|Command}
- * @api public
- */
-
-Command.prototype.description = function(str){
- if (0 == arguments.length) return this._description;
- this._description = str;
- return this;
-};
-
-/**
- * Set an alias for the command
- *
- * @param {String} alias
- * @return {String|Command}
- * @api public
- */
-
-Command.prototype.alias = function(alias){
- if (0 == arguments.length) return this._alias;
- this._alias = alias;
- return this;
-};
-
-/**
- * Set / get the command usage `str`.
- *
- * @param {String} str
- * @return {String|Command}
- * @api public
- */
-
-Command.prototype.usage = function(str){
- var args = this._args.map(function(arg){
- return arg.required
- ? '<' + arg.name + '>'
- : '[' + arg.name + ']';
- });
-
- var usage = '[options'
- + (this.commands.length ? '] [command' : '')
- + ']'
- + (this._args.length ? ' ' + args : '');
-
- if (0 == arguments.length) return this._usage || usage;
- this._usage = str;
-
- return this;
-};
-
-/**
- * Return the largest option length.
- *
- * @return {Number}
- * @api private
- */
-
-Command.prototype.largestOptionLength = function(){
- return this.options.reduce(function(max, option){
- return Math.max(max, option.flags.length);
- }, 0);
-};
-
-/**
- * Return help for options.
- *
- * @return {String}
- * @api private
- */
-
-Command.prototype.optionHelp = function(){
- var width = this.largestOptionLength();
-
- // Prepend the help information
- return [pad('-h, --help', width) + ' ' + 'output usage information']
- .concat(this.options.map(function(option){
- return pad(option.flags, width)
- + ' ' + option.description;
- }))
- .join('\n');
-};
-
-/**
- * Return command help documentation.
- *
- * @return {String}
- * @api private
- */
-
-Command.prototype.commandHelp = function(){
- if (!this.commands.length) return '';
- return [
- ''
- , ' Commands:'
- , ''
- , this.commands.map(function(cmd){
- var args = cmd._args.map(function(arg){
- return arg.required
- ? '<' + arg.name + '>'
- : '[' + arg.name + ']';
- }).join(' ');
-
- return cmd._name
- + (cmd._alias
- ? '|' + cmd._alias
- : '')
- + (cmd.options.length
- ? ' [options]'
- : '') + ' ' + args
- + (cmd.description()
- ? '\n ' + cmd.description()
- : '')
- + '\n';
- }).join('\n').replace(/^/gm, ' ')
- , ''
- ].join('\n');
-};
-
-/**
- * Return program help documentation.
- *
- * @return {String}
- * @api private
- */
-
-Command.prototype.helpInformation = function(){
- return [
- ''
- , ' Usage: ' + this._name
- + (this._alias
- ? '|' + this._alias
- : '')
- + ' ' + this.usage()
- , '' + this.commandHelp()
- , ' Options:'
- , ''
- , '' + this.optionHelp().replace(/^/gm, ' ')
- , ''
- , ''
- ].join('\n');
-};
-
-/**
- * Output help information for this command
- *
- * @api public
- */
-
-Command.prototype.outputHelp = function(){
- process.stdout.write(this.helpInformation());
- this.emit('--help');
-};
-
-/**
- * Output help information and exit.
- *
- * @api public
- */
-
-Command.prototype.help = function(){
- this.outputHelp();
- process.exit();
-};
-
-/**
- * Camel-case the given `flag`
- *
- * @param {String} flag
- * @return {String}
- * @api private
- */
-
-function camelcase(flag) {
- return flag.split('-').reduce(function(str, word){
- return str + word[0].toUpperCase() + word.slice(1);
- });
-}
-
-/**
- * Pad `str` to `width`.
- *
- * @param {String} str
- * @param {Number} width
- * @return {String}
- * @api private
- */
-
-function pad(str, width) {
- var len = Math.max(0, width - str.length);
- return str + Array(len + 1).join(' ');
-}
-
-/**
- * Output help information if necessary
- *
- * @param {Command} command to output help for
- * @param {Array} array of options to search for -h or --help
- * @api private
- */
-
-function outputHelpIfNecessary(cmd, options) {
- options = options || [];
- for (var i = 0; i < options.length; i++) {
- if (options[i] == '--help' || options[i] == '-h') {
- cmd.outputHelp();
- process.exit(0);
- }
- }
-}
diff --git a/node_modules/mocha/node_modules/commander/package.json b/node_modules/mocha/node_modules/commander/package.json
deleted file mode 100644
index b6033c80f..000000000
--- a/node_modules/mocha/node_modules/commander/package.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "name": "commander"
- , "version": "2.3.0"
- , "description": "the complete solution for node.js command-line programs"
- , "keywords": ["command", "option", "parser", "prompt", "stdin"]
- , "author": "TJ Holowaychuk <tj@vision-media.ca>"
- , "repository": { "type": "git", "url": "https://github.com/visionmedia/commander.js.git" }
- , "devDependencies": { "should": ">= 0.0.1" }
- , "scripts": { "test": "make test" }
- , "main": "index"
- , "engines": { "node": ">= 0.6.x" }
- , "files": ["index.js"]
-}
diff --git a/node_modules/mocha/node_modules/debug/.jshintrc b/node_modules/mocha/node_modules/debug/.jshintrc
deleted file mode 100644
index 299877f26..000000000
--- a/node_modules/mocha/node_modules/debug/.jshintrc
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "laxbreak": true
-}
diff --git a/node_modules/mocha/node_modules/debug/.npmignore b/node_modules/mocha/node_modules/debug/.npmignore
deleted file mode 100644
index 7e6163db0..000000000
--- a/node_modules/mocha/node_modules/debug/.npmignore
+++ /dev/null
@@ -1,6 +0,0 @@
-support
-test
-examples
-example
-*.sock
-dist
diff --git a/node_modules/mocha/node_modules/debug/History.md b/node_modules/mocha/node_modules/debug/History.md
deleted file mode 100644
index 854c9711c..000000000
--- a/node_modules/mocha/node_modules/debug/History.md
+++ /dev/null
@@ -1,195 +0,0 @@
-
-2.2.0 / 2015-05-09
-==================
-
- * package: update "ms" to v0.7.1 (#202, @dougwilson)
- * README: add logging to file example (#193, @DanielOchoa)
- * README: fixed a typo (#191, @amir-s)
- * browser: expose `storage` (#190, @stephenmathieson)
- * Makefile: add a `distclean` target (#189, @stephenmathieson)
-
-2.1.3 / 2015-03-13
-==================
-
- * Updated stdout/stderr example (#186)
- * Updated example/stdout.js to match debug current behaviour
- * Renamed example/stderr.js to stdout.js
- * Update Readme.md (#184)
- * replace high intensity foreground color for bold (#182, #183)
-
-2.1.2 / 2015-03-01
-==================
-
- * dist: recompile
- * update "ms" to v0.7.0
- * package: update "browserify" to v9.0.3
- * component: fix "ms.js" repo location
- * changed bower package name
- * updated documentation about using debug in a browser
- * fix: security error on safari (#167, #168, @yields)
-
-2.1.1 / 2014-12-29
-==================
-
- * browser: use `typeof` to check for `console` existence
- * browser: check for `console.log` truthiness (fix IE 8/9)
- * browser: add support for Chrome apps
- * Readme: added Windows usage remarks
- * Add `bower.json` to properly support bower install
-
-2.1.0 / 2014-10-15
-==================
-
- * node: implement `DEBUG_FD` env variable support
- * package: update "browserify" to v6.1.0
- * package: add "license" field to package.json (#135, @panuhorsmalahti)
-
-2.0.0 / 2014-09-01
-==================
-
- * package: update "browserify" to v5.11.0
- * node: use stderr rather than stdout for logging (#29, @stephenmathieson)
-
-1.0.4 / 2014-07-15
-==================
-
- * dist: recompile
- * example: remove `console.info()` log usage
- * example: add "Content-Type" UTF-8 header to browser example
- * browser: place %c marker after the space character
- * browser: reset the "content" color via `color: inherit`
- * browser: add colors support for Firefox >= v31
- * debug: prefer an instance `log()` function over the global one (#119)
- * Readme: update documentation about styled console logs for FF v31 (#116, @wryk)
-
-1.0.3 / 2014-07-09
-==================
-
- * Add support for multiple wildcards in namespaces (#122, @seegno)
- * browser: fix lint
-
-1.0.2 / 2014-06-10
-==================
-
- * browser: update color palette (#113, @gscottolson)
- * common: make console logging function configurable (#108, @timoxley)
- * node: fix %o colors on old node <= 0.8.x
- * Makefile: find node path using shell/which (#109, @timoxley)
-
-1.0.1 / 2014-06-06
-==================
-
- * browser: use `removeItem()` to clear localStorage
- * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777)
- * package: add "contributors" section
- * node: fix comment typo
- * README: list authors
-
-1.0.0 / 2014-06-04
-==================
-
- * make ms diff be global, not be scope
- * debug: ignore empty strings in enable()
- * node: make DEBUG_COLORS able to disable coloring
- * *: export the `colors` array
- * npmignore: don't publish the `dist` dir
- * Makefile: refactor to use browserify
- * package: add "browserify" as a dev dependency
- * Readme: add Web Inspector Colors section
- * node: reset terminal color for the debug content
- * node: map "%o" to `util.inspect()`
- * browser: map "%j" to `JSON.stringify()`
- * debug: add custom "formatters"
- * debug: use "ms" module for humanizing the diff
- * Readme: add "bash" syntax highlighting
- * browser: add Firebug color support
- * browser: add colors for WebKit browsers
- * node: apply log to `console`
- * rewrite: abstract common logic for Node & browsers
- * add .jshintrc file
-
-0.8.1 / 2014-04-14
-==================
-
- * package: re-add the "component" section
-
-0.8.0 / 2014-03-30
-==================
-
- * add `enable()` method for nodejs. Closes #27
- * change from stderr to stdout
- * remove unnecessary index.js file
-
-0.7.4 / 2013-11-13
-==================
-
- * remove "browserify" key from package.json (fixes something in browserify)
-
-0.7.3 / 2013-10-30
-==================
-
- * fix: catch localStorage security error when cookies are blocked (Chrome)
- * add debug(err) support. Closes #46
- * add .browser prop to package.json. Closes #42
-
-0.7.2 / 2013-02-06
-==================
-
- * fix package.json
- * fix: Mobile Safari (private mode) is broken with debug
- * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript
-
-0.7.1 / 2013-02-05
-==================
-
- * add repository URL to package.json
- * add DEBUG_COLORED to force colored output
- * add browserify support
- * fix component. Closes #24
-
-0.7.0 / 2012-05-04
-==================
-
- * Added .component to package.json
- * Added debug.component.js build
-
-0.6.0 / 2012-03-16
-==================
-
- * Added support for "-" prefix in DEBUG [Vinay Pulim]
- * Added `.enabled` flag to the node version [TooTallNate]
-
-0.5.0 / 2012-02-02
-==================
-
- * Added: humanize diffs. Closes #8
- * Added `debug.disable()` to the CS variant
- * Removed padding. Closes #10
- * Fixed: persist client-side variant again. Closes #9
-
-0.4.0 / 2012-02-01
-==================
-
- * Added browser variant support for older browsers [TooTallNate]
- * Added `debug.enable('project:*')` to browser variant [TooTallNate]
- * Added padding to diff (moved it to the right)
-
-0.3.0 / 2012-01-26
-==================
-
- * Added millisecond diff when isatty, otherwise UTC string
-
-0.2.0 / 2012-01-22
-==================
-
- * Added wildcard support
-
-0.1.0 / 2011-12-02
-==================
-
- * Added: remove colors unless stderr isatty [TooTallNate]
-
-0.0.1 / 2010-01-03
-==================
-
- * Initial release
diff --git a/node_modules/mocha/node_modules/debug/Makefile b/node_modules/mocha/node_modules/debug/Makefile
deleted file mode 100644
index 5cf4a5962..000000000
--- a/node_modules/mocha/node_modules/debug/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-
-# get Makefile directory name: http://stackoverflow.com/a/5982798/376773
-THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
-THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)
-
-# BIN directory
-BIN := $(THIS_DIR)/node_modules/.bin
-
-# applications
-NODE ?= $(shell which node)
-NPM ?= $(NODE) $(shell which npm)
-BROWSERIFY ?= $(NODE) $(BIN)/browserify
-
-all: dist/debug.js
-
-install: node_modules
-
-clean:
- @rm -rf dist
-
-dist:
- @mkdir -p $@
-
-dist/debug.js: node_modules browser.js debug.js dist
- @$(BROWSERIFY) \
- --standalone debug \
- . > $@
-
-distclean: clean
- @rm -rf node_modules
-
-node_modules: package.json
- @NODE_ENV= $(NPM) install
- @touch node_modules
-
-.PHONY: all install clean distclean
diff --git a/node_modules/mocha/node_modules/debug/Readme.md b/node_modules/mocha/node_modules/debug/Readme.md
deleted file mode 100644
index b4f45e3cc..000000000
--- a/node_modules/mocha/node_modules/debug/Readme.md
+++ /dev/null
@@ -1,188 +0,0 @@
-# debug
-
- tiny node.js debugging utility modelled after node core's debugging technique.
-
-## Installation
-
-```bash
-$ npm install debug
-```
-
-## Usage
-
- With `debug` you simply invoke the exported function to generate your debug function, passing it a name which will determine if a noop function is returned, or a decorated `console.error`, so all of the `console` format string goodies you're used to work fine. A unique color is selected per-function for visibility.
-
-Example _app.js_:
-
-```js
-var debug = require('debug')('http')
- , http = require('http')
- , name = 'My App';
-
-// fake app
-
-debug('booting %s', name);
-
-http.createServer(function(req, res){
- debug(req.method + ' ' + req.url);
- res.end('hello\n');
-}).listen(3000, function(){
- debug('listening');
-});
-
-// fake worker of some kind
-
-require('./worker');
-```
-
-Example _worker.js_:
-
-```js
-var debug = require('debug')('worker');
-
-setInterval(function(){
- debug('doing some work');
-}, 1000);
-```
-
- The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples:
-
- ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png)
-
- ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png)
-
-#### Windows note
-
- On Windows the environment variable is set using the `set` command.
-
- ```cmd
- set DEBUG=*,-not_this
- ```
-
-Then, run the program to be debugged as usual.
-
-## Millisecond diff
-
- When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls.
-
- ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png)
-
- When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below:
-
- ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png)
-
-## Conventions
-
- If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser".
-
-## Wildcards
-
- The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.
-
- You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:".
-
-## Browser support
-
- Debug works in the browser as well, currently persisted by `localStorage`. Consider the situation shown below where you have `worker:a` and `worker:b`, and wish to debug both. Somewhere in the code on your page, include:
-
-```js
-window.myDebug = require("debug");
-```
-
- ("debug" is a global object in the browser so we give this object a different name.) When your page is open in the browser, type the following in the console:
-
-```js
-myDebug.enable("worker:*")
-```
-
- Refresh the page. Debug output will continue to be sent to the console until it is disabled by typing `myDebug.disable()` in the console.
-
-```js
-a = debug('worker:a');
-b = debug('worker:b');
-
-setInterval(function(){
- a('doing some work');
-}, 1000);
-
-setInterval(function(){
- b('doing some work');
-}, 1200);
-```
-
-#### Web Inspector Colors
-
- Colors are also enabled on "Web Inspectors" that understand the `%c` formatting
- option. These are WebKit web inspectors, Firefox ([since version
- 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/))
- and the Firebug plugin for Firefox (any version).
-
- Colored output looks something like:
-
- ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png)
-
-### stderr vs stdout
-
-You can set an alternative logging method per-namespace by overriding the `log` method on a per-namespace or globally:
-
-Example _stdout.js_:
-
-```js
-var debug = require('debug');
-var error = debug('app:error');
-
-// by default stderr is used
-error('goes to stderr!');
-
-var log = debug('app:log');
-// set this namespace to log via console.log
-log.log = console.log.bind(console); // don't forget to bind to console!
-log('goes to stdout');
-error('still goes to stderr!');
-
-// set all output to go via console.info
-// overrides all per-namespace log settings
-debug.log = console.info.bind(console);
-error('now goes to stdout via console.info');
-log('still goes to stdout, but via console.info now');
-```
-
-### Save debug output to a file
-
-You can save all debug statements to a file by piping them.
-
-Example:
-
-```bash
-$ DEBUG_FD=3 node your-app.js 3> whatever.log
-```
-
-## Authors
-
- - TJ Holowaychuk
- - Nathan Rajlich
-
-## License
-
-(The MIT License)
-
-Copyright (c) 2014 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
-
-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.
diff --git a/node_modules/mocha/node_modules/debug/bower.json b/node_modules/mocha/node_modules/debug/bower.json
deleted file mode 100644
index 6af573ff5..000000000
--- a/node_modules/mocha/node_modules/debug/bower.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": "visionmedia-debug",
- "main": "dist/debug.js",
- "version": "2.2.0",
- "homepage": "https://github.com/visionmedia/debug",
- "authors": [
- "TJ Holowaychuk <tj@vision-media.ca>"
- ],
- "description": "visionmedia-debug",
- "moduleType": [
- "amd",
- "es6",
- "globals",
- "node"
- ],
- "keywords": [
- "visionmedia",
- "debug"
- ],
- "license": "MIT",
- "ignore": [
- "**/.*",
- "node_modules",
- "bower_components",
- "test",
- "tests"
- ]
-}
diff --git a/node_modules/mocha/node_modules/debug/browser.js b/node_modules/mocha/node_modules/debug/browser.js
deleted file mode 100644
index 7c7645221..000000000
--- a/node_modules/mocha/node_modules/debug/browser.js
+++ /dev/null
@@ -1,168 +0,0 @@
-
-/**
- * This is the web browser implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = require('./debug');
-exports.log = log;
-exports.formatArgs = formatArgs;
-exports.save = save;
-exports.load = load;
-exports.useColors = useColors;
-exports.storage = 'undefined' != typeof chrome
- && 'undefined' != typeof chrome.storage
- ? chrome.storage.local
- : localstorage();
-
-/**
- * Colors.
- */
-
-exports.colors = [
- 'lightseagreen',
- 'forestgreen',
- 'goldenrod',
- 'dodgerblue',
- 'darkorchid',
- 'crimson'
-];
-
-/**
- * Currently only WebKit-based Web Inspectors, Firefox >= v31,
- * and the Firebug extension (any Firefox version) are known
- * to support "%c" CSS customizations.
- *
- * TODO: add a `localStorage` variable to explicitly enable/disable colors
- */
-
-function useColors() {
- // is webkit? http://stackoverflow.com/a/16459606/376773
- return ('WebkitAppearance' in document.documentElement.style) ||
- // is firebug? http://stackoverflow.com/a/398120/376773
- (window.console && (console.firebug || (console.exception && console.table))) ||
- // is firefox >= v31?
- // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
- (navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31);
-}
-
-/**
- * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
- */
-
-exports.formatters.j = function(v) {
- return JSON.stringify(v);
-};
-
-
-/**
- * Colorize log arguments if enabled.
- *
- * @api public
- */
-
-function formatArgs() {
- var args = arguments;
- var useColors = this.useColors;
-
- args[0] = (useColors ? '%c' : '')
- + this.namespace
- + (useColors ? ' %c' : ' ')
- + args[0]
- + (useColors ? '%c ' : ' ')
- + '+' + exports.humanize(this.diff);
-
- if (!useColors) return args;
-
- var c = 'color: ' + this.color;
- args = [args[0], c, 'color: inherit'].concat(Array.prototype.slice.call(args, 1));
-
- // the final "%c" is somewhat tricky, because there could be other
- // arguments passed either before or after the %c, so we need to
- // figure out the correct index to insert the CSS into
- var index = 0;
- var lastC = 0;
- args[0].replace(/%[a-z%]/g, function(match) {
- if ('%%' === match) return;
- index++;
- if ('%c' === match) {
- // we only are interested in the *last* %c
- // (the user may have provided their own)
- lastC = index;
- }
- });
-
- args.splice(lastC, 0, c);
- return args;
-}
-
-/**
- * Invokes `console.log()` when available.
- * No-op when `console.log` is not a "function".
- *
- * @api public
- */
-
-function log() {
- // this hackery is required for IE8/9, where
- // the `console.log` function doesn't have 'apply'
- return 'object' === typeof console
- && console.log
- && Function.prototype.apply.call(console.log, console, arguments);
-}
-
-/**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
-
-function save(namespaces) {
- try {
- if (null == namespaces) {
- exports.storage.removeItem('debug');
- } else {
- exports.storage.debug = namespaces;
- }
- } catch(e) {}
-}
-
-/**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
-
-function load() {
- var r;
- try {
- r = exports.storage.debug;
- } catch(e) {}
- return r;
-}
-
-/**
- * Enable namespaces listed in `localStorage.debug` initially.
- */
-
-exports.enable(load());
-
-/**
- * Localstorage attempts to return the localstorage.
- *
- * This is necessary because safari throws
- * when a user disables cookies/localstorage
- * and you attempt to access it.
- *
- * @return {LocalStorage}
- * @api private
- */
-
-function localstorage(){
- try {
- return window.localStorage;
- } catch (e) {}
-}
diff --git a/node_modules/mocha/node_modules/debug/component.json b/node_modules/mocha/node_modules/debug/component.json
deleted file mode 100644
index ca1063724..000000000
--- a/node_modules/mocha/node_modules/debug/component.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": "debug",
- "repo": "visionmedia/debug",
- "description": "small debugging utility",
- "version": "2.2.0",
- "keywords": [
- "debug",
- "log",
- "debugger"
- ],
- "main": "browser.js",
- "scripts": [
- "browser.js",
- "debug.js"
- ],
- "dependencies": {
- "rauchg/ms.js": "0.7.1"
- }
-}
diff --git a/node_modules/mocha/node_modules/debug/debug.js b/node_modules/mocha/node_modules/debug/debug.js
deleted file mode 100644
index 7571a8605..000000000
--- a/node_modules/mocha/node_modules/debug/debug.js
+++ /dev/null
@@ -1,197 +0,0 @@
-
-/**
- * This is the common logic for both the Node.js and web browser
- * implementations of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = debug;
-exports.coerce = coerce;
-exports.disable = disable;
-exports.enable = enable;
-exports.enabled = enabled;
-exports.humanize = require('ms');
-
-/**
- * The currently active debug mode names, and names to skip.
- */
-
-exports.names = [];
-exports.skips = [];
-
-/**
- * Map of special "%n" handling functions, for the debug "format" argument.
- *
- * Valid key names are a single, lowercased letter, i.e. "n".
- */
-
-exports.formatters = {};
-
-/**
- * Previously assigned color.
- */
-
-var prevColor = 0;
-
-/**
- * Previous log timestamp.
- */
-
-var prevTime;
-
-/**
- * Select a color.
- *
- * @return {Number}
- * @api private
- */
-
-function selectColor() {
- return exports.colors[prevColor++ % exports.colors.length];
-}
-
-/**
- * Create a debugger with the given `namespace`.
- *
- * @param {String} namespace
- * @return {Function}
- * @api public
- */
-
-function debug(namespace) {
-
- // define the `disabled` version
- function disabled() {
- }
- disabled.enabled = false;
-
- // define the `enabled` version
- function enabled() {
-
- var self = enabled;
-
- // set `diff` timestamp
- var curr = +new Date();
- var ms = curr - (prevTime || curr);
- self.diff = ms;
- self.prev = prevTime;
- self.curr = curr;
- prevTime = curr;
-
- // add the `color` if not set
- if (null == self.useColors) self.useColors = exports.useColors();
- if (null == self.color && self.useColors) self.color = selectColor();
-
- var args = Array.prototype.slice.call(arguments);
-
- args[0] = exports.coerce(args[0]);
-
- if ('string' !== typeof args[0]) {
- // anything else let's inspect with %o
- args = ['%o'].concat(args);
- }
-
- // apply any `formatters` transformations
- var index = 0;
- args[0] = args[0].replace(/%([a-z%])/g, function(match, format) {
- // if we encounter an escaped % then don't increase the array index
- if (match === '%%') return match;
- index++;
- var formatter = exports.formatters[format];
- if ('function' === typeof formatter) {
- var val = args[index];
- match = formatter.call(self, val);
-
- // now we need to remove `args[index]` since it's inlined in the `format`
- args.splice(index, 1);
- index--;
- }
- return match;
- });
-
- if ('function' === typeof exports.formatArgs) {
- args = exports.formatArgs.apply(self, args);
- }
- var logFn = enabled.log || exports.log || console.log.bind(console);
- logFn.apply(self, args);
- }
- enabled.enabled = true;
-
- var fn = exports.enabled(namespace) ? enabled : disabled;
-
- fn.namespace = namespace;
-
- return fn;
-}
-
-/**
- * Enables a debug mode by namespaces. This can include modes
- * separated by a colon and wildcards.
- *
- * @param {String} namespaces
- * @api public
- */
-
-function enable(namespaces) {
- exports.save(namespaces);
-
- var split = (namespaces || '').split(/[\s,]+/);
- var len = split.length;
-
- for (var i = 0; i < len; i++) {
- if (!split[i]) continue; // ignore empty strings
- namespaces = split[i].replace(/\*/g, '.*?');
- if (namespaces[0] === '-') {
- exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
- } else {
- exports.names.push(new RegExp('^' + namespaces + '$'));
- }
- }
-}
-
-/**
- * Disable debug output.
- *
- * @api public
- */
-
-function disable() {
- exports.enable('');
-}
-
-/**
- * Returns true if the given mode name is enabled, false otherwise.
- *
- * @param {String} name
- * @return {Boolean}
- * @api public
- */
-
-function enabled(name) {
- var i, len;
- for (i = 0, len = exports.skips.length; i < len; i++) {
- if (exports.skips[i].test(name)) {
- return false;
- }
- }
- for (i = 0, len = exports.names.length; i < len; i++) {
- if (exports.names[i].test(name)) {
- return true;
- }
- }
- return false;
-}
-
-/**
- * Coerce `val`.
- *
- * @param {Mixed} val
- * @return {Mixed}
- * @api private
- */
-
-function coerce(val) {
- if (val instanceof Error) return val.stack || val.message;
- return val;
-}
diff --git a/node_modules/mocha/node_modules/debug/node.js b/node_modules/mocha/node_modules/debug/node.js
deleted file mode 100644
index 1d392a81d..000000000
--- a/node_modules/mocha/node_modules/debug/node.js
+++ /dev/null
@@ -1,209 +0,0 @@
-
-/**
- * Module dependencies.
- */
-
-var tty = require('tty');
-var util = require('util');
-
-/**
- * This is the Node.js implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = require('./debug');
-exports.log = log;
-exports.formatArgs = formatArgs;
-exports.save = save;
-exports.load = load;
-exports.useColors = useColors;
-
-/**
- * Colors.
- */
-
-exports.colors = [6, 2, 3, 4, 5, 1];
-
-/**
- * The file descriptor to write the `debug()` calls to.
- * Set the `DEBUG_FD` env variable to override with another value. i.e.:
- *
- * $ DEBUG_FD=3 node script.js 3>debug.log
- */
-
-var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
-var stream = 1 === fd ? process.stdout :
- 2 === fd ? process.stderr :
- createWritableStdioStream(fd);
-
-/**
- * Is stdout a TTY? Colored output is enabled when `true`.
- */
-
-function useColors() {
- var debugColors = (process.env.DEBUG_COLORS || '').trim().toLowerCase();
- if (0 === debugColors.length) {
- return tty.isatty(fd);
- } else {
- return '0' !== debugColors
- && 'no' !== debugColors
- && 'false' !== debugColors
- && 'disabled' !== debugColors;
- }
-}
-
-/**
- * Map %o to `util.inspect()`, since Node doesn't do that out of the box.
- */
-
-var inspect = (4 === util.inspect.length ?
- // node <= 0.8.x
- function (v, colors) {
- return util.inspect(v, void 0, void 0, colors);
- } :
- // node > 0.8.x
- function (v, colors) {
- return util.inspect(v, { colors: colors });
- }
-);
-
-exports.formatters.o = function(v) {
- return inspect(v, this.useColors)
- .replace(/\s*\n\s*/g, ' ');
-};
-
-/**
- * Adds ANSI color escape codes if enabled.
- *
- * @api public
- */
-
-function formatArgs() {
- var args = arguments;
- var useColors = this.useColors;
- var name = this.namespace;
-
- if (useColors) {
- var c = this.color;
-
- args[0] = ' \u001b[3' + c + ';1m' + name + ' '
- + '\u001b[0m'
- + args[0] + '\u001b[3' + c + 'm'
- + ' +' + exports.humanize(this.diff) + '\u001b[0m';
- } else {
- args[0] = new Date().toUTCString()
- + ' ' + name + ' ' + args[0];
- }
- return args;
-}
-
-/**
- * Invokes `console.error()` with the specified arguments.
- */
-
-function log() {
- return stream.write(util.format.apply(this, arguments) + '\n');
-}
-
-/**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
-
-function save(namespaces) {
- if (null == namespaces) {
- // If you set a process.env field to null or undefined, it gets cast to the
- // string 'null' or 'undefined'. Just delete instead.
- delete process.env.DEBUG;
- } else {
- process.env.DEBUG = namespaces;
- }
-}
-
-/**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
-
-function load() {
- return process.env.DEBUG;
-}
-
-/**
- * Copied from `node/src/node.js`.
- *
- * XXX: It's lame that node doesn't expose this API out-of-the-box. It also
- * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.
- */
-
-function createWritableStdioStream (fd) {
- var stream;
- var tty_wrap = process.binding('tty_wrap');
-
- // Note stream._type is used for test-module-load-list.js
-
- switch (tty_wrap.guessHandleType(fd)) {
- case 'TTY':
- stream = new tty.WriteStream(fd);
- stream._type = 'tty';
-
- // Hack to have stream not keep the event loop alive.
- // See https://github.com/joyent/node/issues/1726
- if (stream._handle && stream._handle.unref) {
- stream._handle.unref();
- }
- break;
-
- case 'FILE':
- var fs = require('fs');
- stream = new fs.SyncWriteStream(fd, { autoClose: false });
- stream._type = 'fs';
- break;
-
- case 'PIPE':
- case 'TCP':
- var net = require('net');
- stream = new net.Socket({
- fd: fd,
- readable: false,
- writable: true
- });
-
- // FIXME Should probably have an option in net.Socket to create a
- // stream from an existing fd which is writable only. But for now
- // we'll just add this hack and set the `readable` member to false.
- // Test: ./node test/fixtures/echo.js < /etc/passwd
- stream.readable = false;
- stream.read = null;
- stream._type = 'pipe';
-
- // FIXME Hack to have stream not keep the event loop alive.
- // See https://github.com/joyent/node/issues/1726
- if (stream._handle && stream._handle.unref) {
- stream._handle.unref();
- }
- break;
-
- default:
- // Probably an error on in uv_guess_handle()
- throw new Error('Implement me. Unknown stream file type!');
- }
-
- // For supporting legacy API we put the FD here.
- stream.fd = fd;
-
- stream._isStdio = true;
-
- return stream;
-}
-
-/**
- * Enable namespaces listed in `process.env.DEBUG` initially.
- */
-
-exports.enable(load());
diff --git a/node_modules/mocha/node_modules/debug/package.json b/node_modules/mocha/node_modules/debug/package.json
deleted file mode 100644
index b9f033a77..000000000
--- a/node_modules/mocha/node_modules/debug/package.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "debug",
- "version": "2.2.0",
- "repository": {
- "type": "git",
- "url": "git://github.com/visionmedia/debug.git"
- },
- "description": "small debugging utility",
- "keywords": [
- "debug",
- "log",
- "debugger"
- ],
- "author": "TJ Holowaychuk <tj@vision-media.ca>",
- "contributors": [
- "Nathan Rajlich <nathan@tootallnate.net> (http://n8.io)"
- ],
- "license": "MIT",
- "dependencies": {
- "ms": "0.7.1"
- },
- "devDependencies": {
- "browserify": "9.0.3",
- "mocha": "*"
- },
- "main": "./node.js",
- "browser": "./browser.js",
- "component": {
- "scripts": {
- "debug/index.js": "browser.js",
- "debug/debug.js": "debug.js"
- }
- }
-}
diff --git a/node_modules/mocha/node_modules/glob/.npmignore b/node_modules/mocha/node_modules/glob/.npmignore
deleted file mode 100644
index 2af4b71c9..000000000
--- a/node_modules/mocha/node_modules/glob/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.*.swp
-test/a/
diff --git a/node_modules/mocha/node_modules/glob/.travis.yml b/node_modules/mocha/node_modules/glob/.travis.yml
deleted file mode 100644
index baa0031d5..000000000
--- a/node_modules/mocha/node_modules/glob/.travis.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-language: node_js
-node_js:
- - 0.8
diff --git a/node_modules/mocha/node_modules/glob/LICENSE b/node_modules/mocha/node_modules/glob/LICENSE
deleted file mode 100644
index 0c44ae716..000000000
--- a/node_modules/mocha/node_modules/glob/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) Isaac Z. Schlueter ("Author")
-All rights reserved.
-
-The BSD License
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/node_modules/mocha/node_modules/glob/README.md b/node_modules/mocha/node_modules/glob/README.md
deleted file mode 100644
index cc6916451..000000000
--- a/node_modules/mocha/node_modules/glob/README.md
+++ /dev/null
@@ -1,250 +0,0 @@
-# Glob
-
-Match files using the patterns the shell uses, like stars and stuff.
-
-This is a glob implementation in JavaScript. It uses the `minimatch`
-library to do its matching.
-
-## Attention: node-glob users!
-
-The API has changed dramatically between 2.x and 3.x. This library is
-now 100% JavaScript, and the integer flags have been replaced with an
-options object.
-
-Also, there's an event emitter class, proper tests, and all the other
-things you've come to expect from node modules.
-
-And best of all, no compilation!
-
-## Usage
-
-```javascript
-var glob = require("glob")
-
-// options is optional
-glob("**/*.js", options, function (er, files) {
- // files is an array of filenames.
- // If the `nonull` option is set, and nothing
- // was found, then files is ["**/*.js"]
- // er is an error object or null.
-})
-```
-
-## Features
-
-Please see the [minimatch
-documentation](https://github.com/isaacs/minimatch) for more details.
-
-Supports these glob features:
-
-* Brace Expansion
-* Extended glob matching
-* "Globstar" `**` matching
-
-See:
-
-* `man sh`
-* `man bash`
-* `man 3 fnmatch`
-* `man 5 gitignore`
-* [minimatch documentation](https://github.com/isaacs/minimatch)
-
-## glob(pattern, [options], cb)
-
-* `pattern` {String} Pattern to be matched
-* `options` {Object}
-* `cb` {Function}
- * `err` {Error | null}
- * `matches` {Array<String>} filenames found matching the pattern
-
-Perform an asynchronous glob search.
-
-## glob.sync(pattern, [options])
-
-* `pattern` {String} Pattern to be matched
-* `options` {Object}
-* return: {Array<String>} filenames found matching the pattern
-
-Perform a synchronous glob search.
-
-## Class: glob.Glob
-
-Create a Glob object by instanting the `glob.Glob` class.
-
-```javascript
-var Glob = require("glob").Glob
-var mg = new Glob(pattern, options, cb)
-```
-
-It's an EventEmitter, and starts walking the filesystem to find matches
-immediately.
-
-### new glob.Glob(pattern, [options], [cb])
-
-* `pattern` {String} pattern to search for
-* `options` {Object}
-* `cb` {Function} Called when an error occurs, or matches are found
- * `err` {Error | null}
- * `matches` {Array<String>} filenames found matching the pattern
-
-Note that if the `sync` flag is set in the options, then matches will
-be immediately available on the `g.found` member.
-
-### Properties
-
-* `minimatch` The minimatch object that the glob uses.
-* `options` The options object passed in.
-* `error` The error encountered. When an error is encountered, the
- glob object is in an undefined state, and should be discarded.
-* `aborted` Boolean which is set to true when calling `abort()`. There
- is no way at this time to continue a glob search after aborting, but
- you can re-use the statCache to avoid having to duplicate syscalls.
-* `statCache` Collection of all the stat results the glob search
- performed.
-* `cache` Convenience object. Each field has the following possible
- values:
- * `false` - Path does not exist
- * `true` - Path exists
- * `1` - Path exists, and is not a directory
- * `2` - Path exists, and is a directory
- * `[file, entries, ...]` - Path exists, is a directory, and the
- array value is the results of `fs.readdir`
-
-### Events
-
-* `end` When the matching is finished, this is emitted with all the
- matches found. If the `nonull` option is set, and no match was found,
- then the `matches` list contains the original pattern. The matches
- are sorted, unless the `nosort` flag is set.
-* `match` Every time a match is found, this is emitted with the matched.
-* `error` Emitted when an unexpected error is encountered, or whenever
- any fs error occurs if `options.strict` is set.
-* `abort` When `abort()` is called, this event is raised.
-
-### Methods
-
-* `abort` Stop the search.
-
-### Options
-
-All the options that can be passed to Minimatch can also be passed to
-Glob to change pattern matching behavior. Also, some have been added,
-or have glob-specific ramifications.
-
-All options are false by default, unless otherwise noted.
-
-All options are added to the glob object, as well.
-
-* `cwd` The current working directory in which to search. Defaults
- to `process.cwd()`.
-* `root` The place where patterns starting with `/` will be mounted
- onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix
- systems, and `C:\` or some such on Windows.)
-* `dot` Include `.dot` files in normal matches and `globstar` matches.
- Note that an explicit dot in a portion of the pattern will always
- match dot files.
-* `nomount` By default, a pattern starting with a forward-slash will be
- "mounted" onto the root setting, so that a valid filesystem path is
- returned. Set this flag to disable that behavior.
-* `mark` Add a `/` character to directory matches. Note that this
- requires additional stat calls.
-* `nosort` Don't sort the results.
-* `stat` Set to true to stat *all* results. This reduces performance
- somewhat, and is completely unnecessary, unless `readdir` is presumed
- to be an untrustworthy indicator of file existence. It will cause
- ELOOP to be triggered one level sooner in the case of cyclical
- symbolic links.
-* `silent` When an unusual error is encountered
- when attempting to read a directory, a warning will be printed to
- stderr. Set the `silent` option to true to suppress these warnings.
-* `strict` When an unusual error is encountered
- when attempting to read a directory, the process will just continue on
- in search of other matches. Set the `strict` option to raise an error
- in these cases.
-* `cache` See `cache` property above. Pass in a previously generated
- cache object to save some fs calls.
-* `statCache` A cache of results of filesystem information, to prevent
- unnecessary stat calls. While it should not normally be necessary to
- set this, you may pass the statCache from one glob() call to the
- options object of another, if you know that the filesystem will not
- change between calls. (See "Race Conditions" below.)
-* `sync` Perform a synchronous glob search.
-* `nounique` In some cases, brace-expanded patterns can result in the
- same file showing up multiple times in the result set. By default,
- this implementation prevents duplicates in the result set.
- Set this flag to disable that behavior.
-* `nonull` Set to never return an empty set, instead returning a set
- containing the pattern itself. This is the default in glob(3).
-* `nocase` Perform a case-insensitive match. Note that case-insensitive
- filesystems will sometimes result in glob returning results that are
- case-insensitively matched anyway, since readdir and stat will not
- raise an error.
-* `debug` Set to enable debug logging in minimatch and glob.
-* `globDebug` Set to enable debug logging in glob, but not minimatch.
-
-## Comparisons to other fnmatch/glob implementations
-
-While strict compliance with the existing standards is a worthwhile
-goal, some discrepancies exist between node-glob and other
-implementations, and are intentional.
-
-If the pattern starts with a `!` character, then it is negated. Set the
-`nonegate` flag to suppress this behavior, and treat leading `!`
-characters normally. This is perhaps relevant if you wish to start the
-pattern with a negative extglob pattern like `!(a|B)`. Multiple `!`
-characters at the start of a pattern will negate the pattern multiple
-times.
-
-If a pattern starts with `#`, then it is treated as a comment, and
-will not match anything. Use `\#` to match a literal `#` at the
-start of a line, or set the `nocomment` flag to suppress this behavior.
-
-The double-star character `**` is supported by default, unless the
-`noglobstar` flag is set. This is supported in the manner of bsdglob
-and bash 4.1, where `**` only has special significance if it is the only
-thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
-`a/**b` will not.
-
-If an escaped pattern has no matches, and the `nonull` flag is set,
-then glob returns the pattern as-provided, rather than
-interpreting the character escapes. For example,
-`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
-`"*a?"`. This is akin to setting the `nullglob` option in bash, except
-that it does not resolve escaped pattern characters.
-
-If brace expansion is not disabled, then it is performed before any
-other interpretation of the glob pattern. Thus, a pattern like
-`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
-**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
-checked for validity. Since those two are valid, matching proceeds.
-
-## Windows
-
-**Please only use forward-slashes in glob expressions.**
-
-Though windows uses either `/` or `\` as its path separator, only `/`
-characters are used by this glob implementation. You must use
-forward-slashes **only** in glob expressions. Back-slashes will always
-be interpreted as escape characters, not path separators.
-
-Results from absolute patterns such as `/foo/*` are mounted onto the
-root setting using `path.join`. On windows, this will by default result
-in `/foo/*` matching `C:\foo\bar.txt`.
-
-## Race Conditions
-
-Glob searching, by its very nature, is susceptible to race conditions,
-since it relies on directory walking and such.
-
-As a result, it is possible that a file that exists when glob looks for
-it may have been deleted or modified by the time it returns the result.
-
-As part of its internal implementation, this program caches all stat
-and readdir calls that it makes, in order to cut down on system
-overhead. However, this also makes it even more susceptible to races,
-especially if the cache or statCache objects are reused between glob
-calls.
-
-Users are thus advised not to use a glob result as a guarantee of
-filesystem state in the face of rapid changes. For the vast majority
-of operations, this is never a problem.
diff --git a/node_modules/mocha/node_modules/glob/examples/g.js b/node_modules/mocha/node_modules/glob/examples/g.js
deleted file mode 100644
index be122df00..000000000
--- a/node_modules/mocha/node_modules/glob/examples/g.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var Glob = require("../").Glob
-
-var pattern = "test/a/**/[cg]/../[cg]"
-console.log(pattern)
-
-var mg = new Glob(pattern, {mark: true, sync:true}, function (er, matches) {
- console.log("matches", matches)
-})
-console.log("after")
diff --git a/node_modules/mocha/node_modules/glob/examples/usr-local.js b/node_modules/mocha/node_modules/glob/examples/usr-local.js
deleted file mode 100644
index 327a425e4..000000000
--- a/node_modules/mocha/node_modules/glob/examples/usr-local.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var Glob = require("../").Glob
-
-var pattern = "{./*/*,/*,/usr/local/*}"
-console.log(pattern)
-
-var mg = new Glob(pattern, {mark: true}, function (er, matches) {
- console.log("matches", matches)
-})
-console.log("after")
diff --git a/node_modules/mocha/node_modules/glob/glob.js b/node_modules/mocha/node_modules/glob/glob.js
deleted file mode 100644
index f646c4483..000000000
--- a/node_modules/mocha/node_modules/glob/glob.js
+++ /dev/null
@@ -1,728 +0,0 @@
-// Approach:
-//
-// 1. Get the minimatch set
-// 2. For each pattern in the set, PROCESS(pattern)
-// 3. Store matches per-set, then uniq them
-//
-// PROCESS(pattern)
-// Get the first [n] items from pattern that are all strings
-// Join these together. This is PREFIX.
-// If there is no more remaining, then stat(PREFIX) and
-// add to matches if it succeeds. END.
-// readdir(PREFIX) as ENTRIES
-// If fails, END
-// If pattern[n] is GLOBSTAR
-// // handle the case where the globstar match is empty
-// // by pruning it out, and testing the resulting pattern
-// PROCESS(pattern[0..n] + pattern[n+1 .. $])
-// // handle other cases.
-// for ENTRY in ENTRIES (not dotfiles)
-// // attach globstar + tail onto the entry
-// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $])
-//
-// else // not globstar
-// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)
-// Test ENTRY against pattern[n]
-// If fails, continue
-// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])
-//
-// Caveat:
-// Cache all stats and readdirs results to minimize syscall. Since all
-// we ever care about is existence and directory-ness, we can just keep
-// `true` for files, and [children,...] for directories, or `false` for
-// things that don't exist.
-
-
-
-module.exports = glob
-
-var fs = require("fs")
-, minimatch = require("minimatch")
-, Minimatch = minimatch.Minimatch
-, inherits = require("inherits")
-, EE = require("events").EventEmitter
-, path = require("path")
-, isDir = {}
-, assert = require("assert").ok
-
-function glob (pattern, options, cb) {
- if (typeof options === "function") cb = options, options = {}
- if (!options) options = {}
-
- if (typeof options === "number") {
- deprecated()
- return
- }
-
- var g = new Glob(pattern, options, cb)
- return g.sync ? g.found : g
-}
-
-glob.fnmatch = deprecated
-
-function deprecated () {
- throw new Error("glob's interface has changed. Please see the docs.")
-}
-
-glob.sync = globSync
-function globSync (pattern, options) {
- if (typeof options === "number") {
- deprecated()
- return
- }
-
- options = options || {}
- options.sync = true
- return glob(pattern, options)
-}
-
-this._processingEmitQueue = false
-
-glob.Glob = Glob
-inherits(Glob, EE)
-function Glob (pattern, options, cb) {
- if (!(this instanceof Glob)) {
- return new Glob(pattern, options, cb)
- }
-
- if (typeof options === "function") {
- cb = options
- options = null
- }
-
- if (typeof cb === "function") {
- this.on("error", cb)
- this.on("end", function (matches) {
- cb(null, matches)
- })
- }
-
- options = options || {}
-
- this._endEmitted = false
- this.EOF = {}
- this._emitQueue = []
-
- this.paused = false
- this._processingEmitQueue = false
-
- this.maxDepth = options.maxDepth || 1000
- this.maxLength = options.maxLength || Infinity
- this.cache = options.cache || {}
- this.statCache = options.statCache || {}
-
- this.changedCwd = false
- var cwd = process.cwd()
- if (!options.hasOwnProperty("cwd")) this.cwd = cwd
- else {
- this.cwd = options.cwd
- this.changedCwd = path.resolve(options.cwd) !== cwd
- }
-
- this.root = options.root || path.resolve(this.cwd, "/")
- this.root = path.resolve(this.root)
- if (process.platform === "win32")
- this.root = this.root.replace(/\\/g, "/")
-
- this.nomount = !!options.nomount
-
- if (!pattern) {
- throw new Error("must provide pattern")
- }
-
- // base-matching: just use globstar for that.
- if (options.matchBase && -1 === pattern.indexOf("/")) {
- if (options.noglobstar) {
- throw new Error("base matching requires globstar")
- }
- pattern = "**/" + pattern
- }
-
- this.strict = options.strict !== false
- this.dot = !!options.dot
- this.mark = !!options.mark
- this.sync = !!options.sync
- this.nounique = !!options.nounique
- this.nonull = !!options.nonull
- this.nosort = !!options.nosort
- this.nocase = !!options.nocase
- this.stat = !!options.stat
-
- this.debug = !!options.debug || !!options.globDebug
- if (this.debug)
- this.log = console.error
-
- this.silent = !!options.silent
-
- var mm = this.minimatch = new Minimatch(pattern, options)
- this.options = mm.options
- pattern = this.pattern = mm.pattern
-
- this.error = null
- this.aborted = false
-
- // list of all the patterns that ** has resolved do, so
- // we can avoid visiting multiple times.
- this._globstars = {}
-
- EE.call(this)
-
- // process each pattern in the minimatch set
- var n = this.minimatch.set.length
-
- // The matches are stored as {<filename>: true,...} so that
- // duplicates are automagically pruned.
- // Later, we do an Object.keys() on these.
- // Keep them as a list so we can fill in when nonull is set.
- this.matches = new Array(n)
-
- this.minimatch.set.forEach(iterator.bind(this))
- function iterator (pattern, i, set) {
- this._process(pattern, 0, i, function (er) {
- if (er) this.emit("error", er)
- if (-- n <= 0) this._finish()
- })
- }
-}
-
-Glob.prototype.log = function () {}
-
-Glob.prototype._finish = function () {
- assert(this instanceof Glob)
-
- var nou = this.nounique
- , all = nou ? [] : {}
-
- for (var i = 0, l = this.matches.length; i < l; i ++) {
- var matches = this.matches[i]
- this.log("matches[%d] =", i, matches)
- // do like the shell, and spit out the literal glob
- if (!matches) {
- if (this.nonull) {
- var literal = this.minimatch.globSet[i]
- if (nou) all.push(literal)
- else all[literal] = true
- }
- } else {
- // had matches
- var m = Object.keys(matches)
- if (nou) all.push.apply(all, m)
- else m.forEach(function (m) {
- all[m] = true
- })
- }
- }
-
- if (!nou) all = Object.keys(all)
-
- if (!this.nosort) {
- all = all.sort(this.nocase ? alphasorti : alphasort)
- }
-
- if (this.mark) {
- // at *some* point we statted all of these
- all = all.map(this._mark, this)
- }
-
- this.log("emitting end", all)
-
- this.EOF = this.found = all
- this.emitMatch(this.EOF)
-}
-
-function alphasorti (a, b) {
- a = a.toLowerCase()
- b = b.toLowerCase()
- return alphasort(a, b)
-}
-
-function alphasort (a, b) {
- return a > b ? 1 : a < b ? -1 : 0
-}
-
-Glob.prototype._mark = function (p) {
- var c = this.cache[p]
- var m = p
- if (c) {
- var isDir = c === 2 || Array.isArray(c)
- var slash = p.slice(-1) === '/'
-
- if (isDir && !slash)
- m += '/'
- else if (!isDir && slash)
- m = m.slice(0, -1)
-
- if (m !== p) {
- this.statCache[m] = this.statCache[p]
- this.cache[m] = this.cache[p]
- }
- }
-
- return m
-}
-
-Glob.prototype.abort = function () {
- this.aborted = true
- this.emit("abort")
-}
-
-Glob.prototype.pause = function () {
- if (this.paused) return
- if (this.sync)
- this.emit("error", new Error("Can't pause/resume sync glob"))
- this.paused = true
- this.emit("pause")
-}
-
-Glob.prototype.resume = function () {
- if (!this.paused) return
- if (this.sync)
- this.emit("error", new Error("Can't pause/resume sync glob"))
- this.paused = false
- this.emit("resume")
- this._processEmitQueue()
- //process.nextTick(this.emit.bind(this, "resume"))
-}
-
-Glob.prototype.emitMatch = function (m) {
- this.log('emitMatch', m)
- this._emitQueue.push(m)
- this._processEmitQueue()
-}
-
-Glob.prototype._processEmitQueue = function (m) {
- this.log("pEQ paused=%j processing=%j m=%j", this.paused,
- this._processingEmitQueue, m)
- var done = false
- while (!this._processingEmitQueue &&
- !this.paused) {
- this._processingEmitQueue = true
- var m = this._emitQueue.shift()
- this.log(">processEmitQueue", m === this.EOF ? ":EOF:" : m)
- if (!m) {
- this.log(">processEmitQueue, falsey m")
- this._processingEmitQueue = false
- break
- }
-
- if (m === this.EOF || !(this.mark && !this.stat)) {
- this.log("peq: unmarked, or eof")
- next.call(this, 0, false)
- } else if (this.statCache[m]) {
- var sc = this.statCache[m]
- var exists
- if (sc)
- exists = sc.isDirectory() ? 2 : 1
- this.log("peq: stat cached")
- next.call(this, exists, exists === 2)
- } else {
- this.log("peq: _stat, then next")
- this._stat(m, next)
- }
-
- function next(exists, isDir) {
- this.log("next", m, exists, isDir)
- var ev = m === this.EOF ? "end" : "match"
-
- // "end" can only happen once.
- assert(!this._endEmitted)
- if (ev === "end")
- this._endEmitted = true
-
- if (exists) {
- // Doesn't mean it necessarily doesn't exist, it's possible
- // we just didn't check because we don't care that much, or
- // this is EOF anyway.
- if (isDir && !m.match(/\/$/)) {
- m = m + "/"
- } else if (!isDir && m.match(/\/$/)) {
- m = m.replace(/\/+$/, "")
- }
- }
- this.log("emit", ev, m)
- this.emit(ev, m)
- this._processingEmitQueue = false
- if (done && m !== this.EOF && !this.paused)
- this._processEmitQueue()
- }
- }
- done = true
-}
-
-Glob.prototype._process = function (pattern, depth, index, cb_) {
- assert(this instanceof Glob)
-
- var cb = function cb (er, res) {
- assert(this instanceof Glob)
- if (this.paused) {
- if (!this._processQueue) {
- this._processQueue = []
- this.once("resume", function () {
- var q = this._processQueue
- this._processQueue = null
- q.forEach(function (cb) { cb() })
- })
- }
- this._processQueue.push(cb_.bind(this, er, res))
- } else {
- cb_.call(this, er, res)
- }
- }.bind(this)
-
- if (this.aborted) return cb()
-
- if (depth > this.maxDepth) return cb()
-
- // Get the first [n] parts of pattern that are all strings.
- var n = 0
- while (typeof pattern[n] === "string") {
- n ++
- }
- // now n is the index of the first one that is *not* a string.
-
- // see if there's anything else
- var prefix
- switch (n) {
- // if not, then this is rather simple
- case pattern.length:
- prefix = pattern.join("/")
- this._stat(prefix, function (exists, isDir) {
- // either it's there, or it isn't.
- // nothing more to do, either way.
- if (exists) {
- if (prefix && isAbsolute(prefix) && !this.nomount) {
- if (prefix.charAt(0) === "/") {
- prefix = path.join(this.root, prefix)
- } else {
- prefix = path.resolve(this.root, prefix)
- }
- }
-
- if (process.platform === "win32")
- prefix = prefix.replace(/\\/g, "/")
-
- this.matches[index] = this.matches[index] || {}
- this.matches[index][prefix] = true
- this.emitMatch(prefix)
- }
- return cb()
- })
- return
-
- case 0:
- // pattern *starts* with some non-trivial item.
- // going to readdir(cwd), but not include the prefix in matches.
- prefix = null
- break
-
- default:
- // pattern has some string bits in the front.
- // whatever it starts with, whether that's "absolute" like /foo/bar,
- // or "relative" like "../baz"
- prefix = pattern.slice(0, n)
- prefix = prefix.join("/")
- break
- }
-
- // get the list of entries.
- var read
- if (prefix === null) read = "."
- else if (isAbsolute(prefix) || isAbsolute(pattern.join("/"))) {
- if (!prefix || !isAbsolute(prefix)) {
- prefix = path.join("/", prefix)
- }
- read = prefix = path.resolve(prefix)
-
- // if (process.platform === "win32")
- // read = prefix = prefix.replace(/^[a-zA-Z]:|\\/g, "/")
-
- this.log('absolute: ', prefix, this.root, pattern, read)
- } else {
- read = prefix
- }
-
- this.log('readdir(%j)', read, this.cwd, this.root)
-
- return this._readdir(read, function (er, entries) {
- if (er) {
- // not a directory!
- // this means that, whatever else comes after this, it can never match
- return cb()
- }
-
- // globstar is special
- if (pattern[n] === minimatch.GLOBSTAR) {
- // test without the globstar, and with every child both below
- // and replacing the globstar.
- var s = [ pattern.slice(0, n).concat(pattern.slice(n + 1)) ]
- entries.forEach(function (e) {
- if (e.charAt(0) === "." && !this.dot) return
- // instead of the globstar
- s.push(pattern.slice(0, n).concat(e).concat(pattern.slice(n + 1)))
- // below the globstar
- s.push(pattern.slice(0, n).concat(e).concat(pattern.slice(n)))
- }, this)
-
- s = s.filter(function (pattern) {
- var key = gsKey(pattern)
- var seen = !this._globstars[key]
- this._globstars[key] = true
- return seen
- }, this)
-
- if (!s.length)
- return cb()
-
- // now asyncForEach over this
- var l = s.length
- , errState = null
- s.forEach(function (gsPattern) {
- this._process(gsPattern, depth + 1, index, function (er) {
- if (errState) return
- if (er) return cb(errState = er)
- if (--l <= 0) return cb()
- })
- }, this)
-
- return
- }
-
- // not a globstar
- // It will only match dot entries if it starts with a dot, or if
- // dot is set. Stuff like @(.foo|.bar) isn't allowed.
- var pn = pattern[n]
- var rawGlob = pattern[n]._glob
- , dotOk = this.dot || rawGlob.charAt(0) === "."
-
- entries = entries.filter(function (e) {
- return (e.charAt(0) !== "." || dotOk) &&
- e.match(pattern[n])
- })
-
- // If n === pattern.length - 1, then there's no need for the extra stat
- // *unless* the user has specified "mark" or "stat" explicitly.
- // We know that they exist, since the readdir returned them.
- if (n === pattern.length - 1 &&
- !this.mark &&
- !this.stat) {
- entries.forEach(function (e) {
- if (prefix) {
- if (prefix !== "/") e = prefix + "/" + e
- else e = prefix + e
- }
- if (e.charAt(0) === "/" && !this.nomount) {
- e = path.join(this.root, e)
- }
-
- if (process.platform === "win32")
- e = e.replace(/\\/g, "/")
-
- this.matches[index] = this.matches[index] || {}
- this.matches[index][e] = true
- this.emitMatch(e)
- }, this)
- return cb.call(this)
- }
-
-
- // now test all the remaining entries as stand-ins for that part
- // of the pattern.
- var l = entries.length
- , errState = null
- if (l === 0) return cb() // no matches possible
- entries.forEach(function (e) {
- var p = pattern.slice(0, n).concat(e).concat(pattern.slice(n + 1))
- this._process(p, depth + 1, index, function (er) {
- if (errState) return
- if (er) return cb(errState = er)
- if (--l === 0) return cb.call(this)
- })
- }, this)
- })
-
-}
-
-function gsKey (pattern) {
- return '**' + pattern.map(function (p) {
- return (p === minimatch.GLOBSTAR) ? '**' : (''+p)
- }).join('/')
-}
-
-Glob.prototype._stat = function (f, cb) {
- assert(this instanceof Glob)
- var abs = f
- if (f.charAt(0) === "/") {
- abs = path.join(this.root, f)
- } else if (this.changedCwd) {
- abs = path.resolve(this.cwd, f)
- }
-
- if (f.length > this.maxLength) {
- var er = new Error("Path name too long")
- er.code = "ENAMETOOLONG"
- er.path = f
- return this._afterStat(f, abs, cb, er)
- }
-
- this.log('stat', [this.cwd, f, '=', abs])
-
- if (!this.stat && this.cache.hasOwnProperty(f)) {
- var exists = this.cache[f]
- , isDir = exists && (Array.isArray(exists) || exists === 2)
- if (this.sync) return cb.call(this, !!exists, isDir)
- return process.nextTick(cb.bind(this, !!exists, isDir))
- }
-
- var stat = this.statCache[abs]
- if (this.sync || stat) {
- var er
- try {
- stat = fs.statSync(abs)
- } catch (e) {
- er = e
- }
- this._afterStat(f, abs, cb, er, stat)
- } else {
- fs.stat(abs, this._afterStat.bind(this, f, abs, cb))
- }
-}
-
-Glob.prototype._afterStat = function (f, abs, cb, er, stat) {
- var exists
- assert(this instanceof Glob)
-
- if (abs.slice(-1) === "/" && stat && !stat.isDirectory()) {
- this.log("should be ENOTDIR, fake it")
-
- er = new Error("ENOTDIR, not a directory '" + abs + "'")
- er.path = abs
- er.code = "ENOTDIR"
- stat = null
- }
-
- var emit = !this.statCache[abs]
- this.statCache[abs] = stat
-
- if (er || !stat) {
- exists = false
- } else {
- exists = stat.isDirectory() ? 2 : 1
- if (emit)
- this.emit('stat', f, stat)
- }
- this.cache[f] = this.cache[f] || exists
- cb.call(this, !!exists, exists === 2)
-}
-
-Glob.prototype._readdir = function (f, cb) {
- assert(this instanceof Glob)
- var abs = f
- if (f.charAt(0) === "/") {
- abs = path.join(this.root, f)
- } else if (isAbsolute(f)) {
- abs = f
- } else if (this.changedCwd) {
- abs = path.resolve(this.cwd, f)
- }
-
- if (f.length > this.maxLength) {
- var er = new Error("Path name too long")
- er.code = "ENAMETOOLONG"
- er.path = f
- return this._afterReaddir(f, abs, cb, er)
- }
-
- this.log('readdir', [this.cwd, f, abs])
- if (this.cache.hasOwnProperty(f)) {
- var c = this.cache[f]
- if (Array.isArray(c)) {
- if (this.sync) return cb.call(this, null, c)
- return process.nextTick(cb.bind(this, null, c))
- }
-
- if (!c || c === 1) {
- // either ENOENT or ENOTDIR
- var code = c ? "ENOTDIR" : "ENOENT"
- , er = new Error((c ? "Not a directory" : "Not found") + ": " + f)
- er.path = f
- er.code = code
- this.log(f, er)
- if (this.sync) return cb.call(this, er)
- return process.nextTick(cb.bind(this, er))
- }
-
- // at this point, c === 2, meaning it's a dir, but we haven't
- // had to read it yet, or c === true, meaning it's *something*
- // but we don't have any idea what. Need to read it, either way.
- }
-
- if (this.sync) {
- var er, entries
- try {
- entries = fs.readdirSync(abs)
- } catch (e) {
- er = e
- }
- return this._afterReaddir(f, abs, cb, er, entries)
- }
-
- fs.readdir(abs, this._afterReaddir.bind(this, f, abs, cb))
-}
-
-Glob.prototype._afterReaddir = function (f, abs, cb, er, entries) {
- assert(this instanceof Glob)
- if (entries && !er) {
- this.cache[f] = entries
- // if we haven't asked to stat everything for suresies, then just
- // assume that everything in there exists, so we can avoid
- // having to stat it a second time. This also gets us one step
- // further into ELOOP territory.
- if (!this.mark && !this.stat) {
- entries.forEach(function (e) {
- if (f === "/") e = f + e
- else e = f + "/" + e
- this.cache[e] = true
- }, this)
- }
-
- return cb.call(this, er, entries)
- }
-
- // now handle errors, and cache the information
- if (er) switch (er.code) {
- case "ENOTDIR": // totally normal. means it *does* exist.
- this.cache[f] = 1
- return cb.call(this, er)
- case "ENOENT": // not terribly unusual
- case "ELOOP":
- case "ENAMETOOLONG":
- case "UNKNOWN":
- this.cache[f] = false
- return cb.call(this, er)
- default: // some unusual error. Treat as failure.
- this.cache[f] = false
- if (this.strict) this.emit("error", er)
- if (!this.silent) console.error("glob error", er)
- return cb.call(this, er)
- }
-}
-
-var isAbsolute = process.platform === "win32" ? absWin : absUnix
-
-function absWin (p) {
- if (absUnix(p)) return true
- // pull off the device/UNC bit from a windows path.
- // from node's lib/path.js
- var splitDeviceRe =
- /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/
- , result = splitDeviceRe.exec(p)
- , device = result[1] || ''
- , isUnc = device && device.charAt(1) !== ':'
- , isAbsolute = !!result[2] || isUnc // UNC paths are always absolute
-
- return isAbsolute
-}
-
-function absUnix (p) {
- return p.charAt(0) === "/" || p === ""
-}
diff --git a/node_modules/mocha/node_modules/glob/package.json b/node_modules/mocha/node_modules/glob/package.json
deleted file mode 100644
index b48bc6308..000000000
--- a/node_modules/mocha/node_modules/glob/package.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
- "name": "glob",
- "description": "a little globber",
- "version": "3.2.11",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/node-glob.git"
- },
- "main": "glob.js",
- "engines": {
- "node": "*"
- },
- "dependencies": {
- "inherits": "2",
- "minimatch": "0.3"
- },
- "devDependencies": {
- "tap": "~0.4.0",
- "mkdirp": "0",
- "rimraf": "1"
- },
- "scripts": {
- "test": "tap test/*.js",
- "test-regen": "TEST_REGEN=1 node test/00-setup.js"
- },
- "license": "BSD"
-}
diff --git a/node_modules/mocha/node_modules/glob/test/00-setup.js b/node_modules/mocha/node_modules/glob/test/00-setup.js
deleted file mode 100644
index 245afafda..000000000
--- a/node_modules/mocha/node_modules/glob/test/00-setup.js
+++ /dev/null
@@ -1,176 +0,0 @@
-// just a little pre-run script to set up the fixtures.
-// zz-finish cleans it up
-
-var mkdirp = require("mkdirp")
-var path = require("path")
-var i = 0
-var tap = require("tap")
-var fs = require("fs")
-var rimraf = require("rimraf")
-
-var files =
-[ "a/.abcdef/x/y/z/a"
-, "a/abcdef/g/h"
-, "a/abcfed/g/h"
-, "a/b/c/d"
-, "a/bc/e/f"
-, "a/c/d/c/b"
-, "a/cb/e/f"
-]
-
-var symlinkTo = path.resolve(__dirname, "a/symlink/a/b/c")
-var symlinkFrom = "../.."
-
-files = files.map(function (f) {
- return path.resolve(__dirname, f)
-})
-
-tap.test("remove fixtures", function (t) {
- rimraf(path.resolve(__dirname, "a"), function (er) {
- t.ifError(er, "remove fixtures")
- t.end()
- })
-})
-
-files.forEach(function (f) {
- tap.test(f, function (t) {
- var d = path.dirname(f)
- mkdirp(d, 0755, function (er) {
- if (er) {
- t.fail(er)
- return t.bailout()
- }
- fs.writeFile(f, "i like tests", function (er) {
- t.ifError(er, "make file")
- t.end()
- })
- })
- })
-})
-
-if (process.platform !== "win32") {
- tap.test("symlinky", function (t) {
- var d = path.dirname(symlinkTo)
- console.error("mkdirp", d)
- mkdirp(d, 0755, function (er) {
- t.ifError(er)
- fs.symlink(symlinkFrom, symlinkTo, "dir", function (er) {
- t.ifError(er, "make symlink")
- t.end()
- })
- })
- })
-}
-
-;["foo","bar","baz","asdf","quux","qwer","rewq"].forEach(function (w) {
- w = "/tmp/glob-test/" + w
- tap.test("create " + w, function (t) {
- mkdirp(w, function (er) {
- if (er)
- throw er
- t.pass(w)
- t.end()
- })
- })
-})
-
-
-// generate the bash pattern test-fixtures if possible
-if (process.platform === "win32" || !process.env.TEST_REGEN) {
- console.error("Windows, or TEST_REGEN unset. Using cached fixtures.")
- return
-}
-
-var spawn = require("child_process").spawn;
-var globs =
- // put more patterns here.
- // anything that would be directly in / should be in /tmp/glob-test
- ["test/a/*/+(c|g)/./d"
- ,"test/a/**/[cg]/../[cg]"
- ,"test/a/{b,c,d,e,f}/**/g"
- ,"test/a/b/**"
- ,"test/**/g"
- ,"test/a/abc{fed,def}/g/h"
- ,"test/a/abc{fed/g,def}/**/"
- ,"test/a/abc{fed/g,def}/**///**/"
- ,"test/**/a/**/"
- ,"test/+(a|b|c)/a{/,bc*}/**"
- ,"test/*/*/*/f"
- ,"test/**/f"
- ,"test/a/symlink/a/b/c/a/b/c/a/b/c//a/b/c////a/b/c/**/b/c/**"
- ,"{./*/*,/tmp/glob-test/*}"
- ,"{/tmp/glob-test/*,*}" // evil owl face! how you taunt me!
- ,"test/a/!(symlink)/**"
- ]
-var bashOutput = {}
-var fs = require("fs")
-
-globs.forEach(function (pattern) {
- tap.test("generate fixture " + pattern, function (t) {
- var cmd = "shopt -s globstar && " +
- "shopt -s extglob && " +
- "shopt -s nullglob && " +
- // "shopt >&2; " +
- "eval \'for i in " + pattern + "; do echo $i; done\'"
- var cp = spawn("bash", ["-c", cmd], { cwd: path.dirname(__dirname) })
- var out = []
- cp.stdout.on("data", function (c) {
- out.push(c)
- })
- cp.stderr.pipe(process.stderr)
- cp.on("close", function (code) {
- out = flatten(out)
- if (!out)
- out = []
- else
- out = cleanResults(out.split(/\r*\n/))
-
- bashOutput[pattern] = out
- t.notOk(code, "bash test should finish nicely")
- t.end()
- })
- })
-})
-
-tap.test("save fixtures", function (t) {
- var fname = path.resolve(__dirname, "bash-results.json")
- var data = JSON.stringify(bashOutput, null, 2) + "\n"
- fs.writeFile(fname, data, function (er) {
- t.ifError(er)
- t.end()
- })
-})
-
-function cleanResults (m) {
- // normalize discrepancies in ordering, duplication,
- // and ending slashes.
- return m.map(function (m) {
- return m.replace(/\/+/g, "/").replace(/\/$/, "")
- }).sort(alphasort).reduce(function (set, f) {
- if (f !== set[set.length - 1]) set.push(f)
- return set
- }, []).sort(alphasort).map(function (f) {
- // de-windows
- return (process.platform !== 'win32') ? f
- : f.replace(/^[a-zA-Z]:\\\\/, '/').replace(/\\/g, '/')
- })
-}
-
-function flatten (chunks) {
- var s = 0
- chunks.forEach(function (c) { s += c.length })
- var out = new Buffer(s)
- s = 0
- chunks.forEach(function (c) {
- c.copy(out, s)
- s += c.length
- })
-
- return out.toString().trim()
-}
-
-function alphasort (a, b) {
- a = a.toLowerCase()
- b = b.toLowerCase()
- return a > b ? 1 : a < b ? -1 : 0
-}
diff --git a/node_modules/mocha/node_modules/glob/test/bash-comparison.js b/node_modules/mocha/node_modules/glob/test/bash-comparison.js
deleted file mode 100644
index 239ed1a9c..000000000
--- a/node_modules/mocha/node_modules/glob/test/bash-comparison.js
+++ /dev/null
@@ -1,63 +0,0 @@
-// basic test
-// show that it does the same thing by default as the shell.
-var tap = require("tap")
-, child_process = require("child_process")
-, bashResults = require("./bash-results.json")
-, globs = Object.keys(bashResults)
-, glob = require("../")
-, path = require("path")
-
-// run from the root of the project
-// this is usually where you're at anyway, but be sure.
-process.chdir(path.resolve(__dirname, ".."))
-
-function alphasort (a, b) {
- a = a.toLowerCase()
- b = b.toLowerCase()
- return a > b ? 1 : a < b ? -1 : 0
-}
-
-globs.forEach(function (pattern) {
- var expect = bashResults[pattern]
- // anything regarding the symlink thing will fail on windows, so just skip it
- if (process.platform === "win32" &&
- expect.some(function (m) {
- return /\/symlink\//.test(m)
- }))
- return
-
- tap.test(pattern, function (t) {
- glob(pattern, function (er, matches) {
- if (er)
- throw er
-
- // sort and unmark, just to match the shell results
- matches = cleanResults(matches)
-
- t.deepEqual(matches, expect, pattern)
- t.end()
- })
- })
-
- tap.test(pattern + " sync", function (t) {
- var matches = cleanResults(glob.sync(pattern))
-
- t.deepEqual(matches, expect, "should match shell")
- t.end()
- })
-})
-
-function cleanResults (m) {
- // normalize discrepancies in ordering, duplication,
- // and ending slashes.
- return m.map(function (m) {
- return m.replace(/\/+/g, "/").replace(/\/$/, "")
- }).sort(alphasort).reduce(function (set, f) {
- if (f !== set[set.length - 1]) set.push(f)
- return set
- }, []).sort(alphasort).map(function (f) {
- // de-windows
- return (process.platform !== 'win32') ? f
- : f.replace(/^[a-zA-Z]:[\/\\]+/, '/').replace(/[\\\/]+/g, '/')
- })
-}
diff --git a/node_modules/mocha/node_modules/glob/test/bash-results.json b/node_modules/mocha/node_modules/glob/test/bash-results.json
deleted file mode 100644
index 8051c7238..000000000
--- a/node_modules/mocha/node_modules/glob/test/bash-results.json
+++ /dev/null
@@ -1,351 +0,0 @@
-{
- "test/a/*/+(c|g)/./d": [
- "test/a/b/c/./d"
- ],
- "test/a/**/[cg]/../[cg]": [
- "test/a/abcdef/g/../g",
- "test/a/abcfed/g/../g",
- "test/a/b/c/../c",
- "test/a/c/../c",
- "test/a/c/d/c/../c",
- "test/a/symlink/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c"
- ],
- "test/a/{b,c,d,e,f}/**/g": [],
- "test/a/b/**": [
- "test/a/b",
- "test/a/b/c",
- "test/a/b/c/d"
- ],
- "test/**/g": [
- "test/a/abcdef/g",
- "test/a/abcfed/g"
- ],
- "test/a/abc{fed,def}/g/h": [
- "test/a/abcdef/g/h",
- "test/a/abcfed/g/h"
- ],
- "test/a/abc{fed/g,def}/**/": [
- "test/a/abcdef",
- "test/a/abcdef/g",
- "test/a/abcfed/g"
- ],
- "test/a/abc{fed/g,def}/**///**/": [
- "test/a/abcdef",
- "test/a/abcdef/g",
- "test/a/abcfed/g"
- ],
- "test/**/a/**/": [
- "test/a",
- "test/a/abcdef",
- "test/a/abcdef/g",
- "test/a/abcfed",
- "test/a/abcfed/g",
- "test/a/b",
- "test/a/b/c",
- "test/a/bc",
- "test/a/bc/e",
- "test/a/c",
- "test/a/c/d",
- "test/a/c/d/c",
- "test/a/cb",
- "test/a/cb/e",
- "test/a/symlink",
- "test/a/symlink/a",
- "test/a/symlink/a/b",
- "test/a/symlink/a/b/c",
- "test/a/symlink/a/b/c/a",
- "test/a/symlink/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b"
- ],
- "test/+(a|b|c)/a{/,bc*}/**": [
- "test/a/abcdef",
- "test/a/abcdef/g",
- "test/a/abcdef/g/h",
- "test/a/abcfed",
- "test/a/abcfed/g",
- "test/a/abcfed/g/h"
- ],
- "test/*/*/*/f": [
- "test/a/bc/e/f",
- "test/a/cb/e/f"
- ],
- "test/**/f": [
- "test/a/bc/e/f",
- "test/a/cb/e/f"
- ],
- "test/a/symlink/a/b/c/a/b/c/a/b/c//a/b/c////a/b/c/**/b/c/**": [
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
- "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c"
- ],
- "{./*/*,/tmp/glob-test/*}": [
- "./examples/g.js",
- "./examples/usr-local.js",
- "./node_modules/inherits",
- "./node_modules/minimatch",
- "./node_modules/mkdirp",
- "./node_modules/rimraf",
- "./node_modules/tap",
- "./test/00-setup.js",
- "./test/a",
- "./test/bash-comparison.js",
- "./test/bash-results.json",
- "./test/cwd-test.js",
- "./test/globstar-match.js",
- "./test/mark.js",
- "./test/new-glob-optional-options.js",
- "./test/nocase-nomagic.js",
- "./test/pause-resume.js",
- "./test/readme-issue.js",
- "./test/root-nomount.js",
- "./test/root.js",
- "./test/stat.js",
- "./test/zz-cleanup.js",
- "/tmp/glob-test/asdf",
- "/tmp/glob-test/bar",
- "/tmp/glob-test/baz",
- "/tmp/glob-test/foo",
- "/tmp/glob-test/quux",
- "/tmp/glob-test/qwer",
- "/tmp/glob-test/rewq"
- ],
- "{/tmp/glob-test/*,*}": [
- "/tmp/glob-test/asdf",
- "/tmp/glob-test/bar",
- "/tmp/glob-test/baz",
- "/tmp/glob-test/foo",
- "/tmp/glob-test/quux",
- "/tmp/glob-test/qwer",
- "/tmp/glob-test/rewq",
- "examples",
- "glob.js",
- "LICENSE",
- "node_modules",
- "package.json",
- "README.md",
- "test"
- ],
- "test/a/!(symlink)/**": [
- "test/a/abcdef",
- "test/a/abcdef/g",
- "test/a/abcdef/g/h",
- "test/a/abcfed",
- "test/a/abcfed/g",
- "test/a/abcfed/g/h",
- "test/a/b",
- "test/a/b/c",
- "test/a/b/c/d",
- "test/a/bc",
- "test/a/bc/e",
- "test/a/bc/e/f",
- "test/a/c",
- "test/a/c/d",
- "test/a/c/d/c",
- "test/a/c/d/c/b",
- "test/a/cb",
- "test/a/cb/e",
- "test/a/cb/e/f"
- ]
-}
diff --git a/node_modules/mocha/node_modules/glob/test/cwd-test.js b/node_modules/mocha/node_modules/glob/test/cwd-test.js
deleted file mode 100644
index 352c27efa..000000000
--- a/node_modules/mocha/node_modules/glob/test/cwd-test.js
+++ /dev/null
@@ -1,55 +0,0 @@
-var tap = require("tap")
-
-var origCwd = process.cwd()
-process.chdir(__dirname)
-
-tap.test("changing cwd and searching for **/d", function (t) {
- var glob = require('../')
- var path = require('path')
- t.test('.', function (t) {
- glob('**/d', function (er, matches) {
- t.ifError(er)
- t.like(matches, [ 'a/b/c/d', 'a/c/d' ])
- t.end()
- })
- })
-
- t.test('a', function (t) {
- glob('**/d', {cwd:path.resolve('a')}, function (er, matches) {
- t.ifError(er)
- t.like(matches, [ 'b/c/d', 'c/d' ])
- t.end()
- })
- })
-
- t.test('a/b', function (t) {
- glob('**/d', {cwd:path.resolve('a/b')}, function (er, matches) {
- t.ifError(er)
- t.like(matches, [ 'c/d' ])
- t.end()
- })
- })
-
- t.test('a/b/', function (t) {
- glob('**/d', {cwd:path.resolve('a/b/')}, function (er, matches) {
- t.ifError(er)
- t.like(matches, [ 'c/d' ])
- t.end()
- })
- })
-
- t.test('.', function (t) {
- glob('**/d', {cwd: process.cwd()}, function (er, matches) {
- t.ifError(er)
- t.like(matches, [ 'a/b/c/d', 'a/c/d' ])
- t.end()
- })
- })
-
- t.test('cd -', function (t) {
- process.chdir(origCwd)
- t.end()
- })
-
- t.end()
-})
diff --git a/node_modules/mocha/node_modules/glob/test/globstar-match.js b/node_modules/mocha/node_modules/glob/test/globstar-match.js
deleted file mode 100644
index 9b234fa2a..000000000
--- a/node_modules/mocha/node_modules/glob/test/globstar-match.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var Glob = require("../glob.js").Glob
-var test = require('tap').test
-
-test('globstar should not have dupe matches', function(t) {
- var pattern = 'a/**/[gh]'
- var g = new Glob(pattern, { cwd: __dirname })
- var matches = []
- g.on('match', function(m) {
- console.error('match %j', m)
- matches.push(m)
- })
- g.on('end', function(set) {
- console.error('set', set)
- matches = matches.sort()
- set = set.sort()
- t.same(matches, set, 'should have same set of matches')
- t.end()
- })
-})
diff --git a/node_modules/mocha/node_modules/glob/test/mark.js b/node_modules/mocha/node_modules/glob/test/mark.js
deleted file mode 100644
index bf411c0e5..000000000
--- a/node_modules/mocha/node_modules/glob/test/mark.js
+++ /dev/null
@@ -1,118 +0,0 @@
-var test = require("tap").test
-var glob = require('../')
-process.chdir(__dirname)
-
-// expose timing issues
-var lag = 5
-glob.Glob.prototype._stat = function(o) { return function(f, cb) {
- var args = arguments
- setTimeout(function() {
- o.call(this, f, cb)
- }.bind(this), lag += 5)
-}}(glob.Glob.prototype._stat)
-
-
-test("mark, with **", function (t) {
- glob("a/*b*/**", {mark: true}, function (er, results) {
- if (er)
- throw er
- var expect =
- [ 'a/abcdef/',
- 'a/abcdef/g/',
- 'a/abcdef/g/h',
- 'a/abcfed/',
- 'a/abcfed/g/',
- 'a/abcfed/g/h',
- 'a/b/',
- 'a/b/c/',
- 'a/b/c/d',
- 'a/bc/',
- 'a/bc/e/',
- 'a/bc/e/f',
- 'a/cb/',
- 'a/cb/e/',
- 'a/cb/e/f' ]
-
- t.same(results, expect)
- t.end()
- })
-})
-
-test("mark, no / on pattern", function (t) {
- glob("a/*", {mark: true}, function (er, results) {
- if (er)
- throw er
- var expect = [ 'a/abcdef/',
- 'a/abcfed/',
- 'a/b/',
- 'a/bc/',
- 'a/c/',
- 'a/cb/' ]
-
- if (process.platform !== "win32")
- expect.push('a/symlink/')
-
- t.same(results, expect)
- t.end()
- }).on('match', function(m) {
- t.similar(m, /\/$/)
- })
-})
-
-test("mark=false, no / on pattern", function (t) {
- glob("a/*", function (er, results) {
- if (er)
- throw er
- var expect = [ 'a/abcdef',
- 'a/abcfed',
- 'a/b',
- 'a/bc',
- 'a/c',
- 'a/cb' ]
-
- if (process.platform !== "win32")
- expect.push('a/symlink')
- t.same(results, expect)
- t.end()
- }).on('match', function(m) {
- t.similar(m, /[^\/]$/)
- })
-})
-
-test("mark=true, / on pattern", function (t) {
- glob("a/*/", {mark: true}, function (er, results) {
- if (er)
- throw er
- var expect = [ 'a/abcdef/',
- 'a/abcfed/',
- 'a/b/',
- 'a/bc/',
- 'a/c/',
- 'a/cb/' ]
- if (process.platform !== "win32")
- expect.push('a/symlink/')
- t.same(results, expect)
- t.end()
- }).on('match', function(m) {
- t.similar(m, /\/$/)
- })
-})
-
-test("mark=false, / on pattern", function (t) {
- glob("a/*/", function (er, results) {
- if (er)
- throw er
- var expect = [ 'a/abcdef/',
- 'a/abcfed/',
- 'a/b/',
- 'a/bc/',
- 'a/c/',
- 'a/cb/' ]
- if (process.platform !== "win32")
- expect.push('a/symlink/')
- t.same(results, expect)
- t.end()
- }).on('match', function(m) {
- t.similar(m, /\/$/)
- })
-})
diff --git a/node_modules/mocha/node_modules/glob/test/new-glob-optional-options.js b/node_modules/mocha/node_modules/glob/test/new-glob-optional-options.js
deleted file mode 100644
index 3e7dc5acb..000000000
--- a/node_modules/mocha/node_modules/glob/test/new-glob-optional-options.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var Glob = require('../glob.js').Glob;
-var test = require('tap').test;
-
-test('new glob, with cb, and no options', function (t) {
- new Glob(__filename, function(er, results) {
- if (er) throw er;
- t.same(results, [__filename]);
- t.end();
- });
-});
diff --git a/node_modules/mocha/node_modules/glob/test/nocase-nomagic.js b/node_modules/mocha/node_modules/glob/test/nocase-nomagic.js
deleted file mode 100644
index 2503f2310..000000000
--- a/node_modules/mocha/node_modules/glob/test/nocase-nomagic.js
+++ /dev/null
@@ -1,113 +0,0 @@
-var fs = require('fs');
-var test = require('tap').test;
-var glob = require('../');
-
-test('mock fs', function(t) {
- var stat = fs.stat
- var statSync = fs.statSync
- var readdir = fs.readdir
- var readdirSync = fs.readdirSync
-
- function fakeStat(path) {
- var ret
- switch (path.toLowerCase()) {
- case '/tmp': case '/tmp/':
- ret = { isDirectory: function() { return true } }
- break
- case '/tmp/a':
- ret = { isDirectory: function() { return false } }
- break
- }
- return ret
- }
-
- fs.stat = function(path, cb) {
- var f = fakeStat(path);
- if (f) {
- process.nextTick(function() {
- cb(null, f)
- })
- } else {
- stat.call(fs, path, cb)
- }
- }
-
- fs.statSync = function(path) {
- return fakeStat(path) || statSync.call(fs, path)
- }
-
- function fakeReaddir(path) {
- var ret
- switch (path.toLowerCase()) {
- case '/tmp': case '/tmp/':
- ret = [ 'a', 'A' ]
- break
- case '/':
- ret = ['tmp', 'tMp', 'tMP', 'TMP']
- }
- return ret
- }
-
- fs.readdir = function(path, cb) {
- var f = fakeReaddir(path)
- if (f)
- process.nextTick(function() {
- cb(null, f)
- })
- else
- readdir.call(fs, path, cb)
- }
-
- fs.readdirSync = function(path) {
- return fakeReaddir(path) || readdirSync.call(fs, path)
- }
-
- t.pass('mocked')
- t.end()
-})
-
-test('nocase, nomagic', function(t) {
- var n = 2
- var want = [ '/TMP/A',
- '/TMP/a',
- '/tMP/A',
- '/tMP/a',
- '/tMp/A',
- '/tMp/a',
- '/tmp/A',
- '/tmp/a' ]
- glob('/tmp/a', { nocase: true }, function(er, res) {
- if (er)
- throw er
- t.same(res.sort(), want)
- if (--n === 0) t.end()
- })
- glob('/tmp/A', { nocase: true }, function(er, res) {
- if (er)
- throw er
- t.same(res.sort(), want)
- if (--n === 0) t.end()
- })
-})
-
-test('nocase, with some magic', function(t) {
- t.plan(2)
- var want = [ '/TMP/A',
- '/TMP/a',
- '/tMP/A',
- '/tMP/a',
- '/tMp/A',
- '/tMp/a',
- '/tmp/A',
- '/tmp/a' ]
- glob('/tmp/*', { nocase: true }, function(er, res) {
- if (er)
- throw er
- t.same(res.sort(), want)
- })
- glob('/tmp/*', { nocase: true }, function(er, res) {
- if (er)
- throw er
- t.same(res.sort(), want)
- })
-})
diff --git a/node_modules/mocha/node_modules/glob/test/pause-resume.js b/node_modules/mocha/node_modules/glob/test/pause-resume.js
deleted file mode 100644
index e1ffbab1c..000000000
--- a/node_modules/mocha/node_modules/glob/test/pause-resume.js
+++ /dev/null
@@ -1,73 +0,0 @@
-// show that no match events happen while paused.
-var tap = require("tap")
-, child_process = require("child_process")
-// just some gnarly pattern with lots of matches
-, pattern = "test/a/!(symlink)/**"
-, bashResults = require("./bash-results.json")
-, patterns = Object.keys(bashResults)
-, glob = require("../")
-, Glob = glob.Glob
-, path = require("path")
-
-// run from the root of the project
-// this is usually where you're at anyway, but be sure.
-process.chdir(path.resolve(__dirname, ".."))
-
-function alphasort (a, b) {
- a = a.toLowerCase()
- b = b.toLowerCase()
- return a > b ? 1 : a < b ? -1 : 0
-}
-
-function cleanResults (m) {
- // normalize discrepancies in ordering, duplication,
- // and ending slashes.
- return m.map(function (m) {
- return m.replace(/\/+/g, "/").replace(/\/$/, "")
- }).sort(alphasort).reduce(function (set, f) {
- if (f !== set[set.length - 1]) set.push(f)
- return set
- }, []).sort(alphasort).map(function (f) {
- // de-windows
- return (process.platform !== 'win32') ? f
- : f.replace(/^[a-zA-Z]:\\\\/, '/').replace(/\\/g, '/')
- })
-}
-
-var globResults = []
-tap.test("use a Glob object, and pause/resume it", function (t) {
- var g = new Glob(pattern)
- , paused = false
- , res = []
- , expect = bashResults[pattern]
-
- g.on("pause", function () {
- console.error("pause")
- })
-
- g.on("resume", function () {
- console.error("resume")
- })
-
- g.on("match", function (m) {
- t.notOk(g.paused, "must not be paused")
- globResults.push(m)
- g.pause()
- t.ok(g.paused, "must be paused")
- setTimeout(g.resume.bind(g), 10)
- })
-
- g.on("end", function (matches) {
- t.pass("reached glob end")
- globResults = cleanResults(globResults)
- matches = cleanResults(matches)
- t.deepEqual(matches, globResults,
- "end event matches should be the same as match events")
-
- t.deepEqual(matches, expect,
- "glob matches should be the same as bash results")
-
- t.end()
- })
-})
-
diff --git a/node_modules/mocha/node_modules/glob/test/readme-issue.js b/node_modules/mocha/node_modules/glob/test/readme-issue.js
deleted file mode 100644
index 0b4e0be29..000000000
--- a/node_modules/mocha/node_modules/glob/test/readme-issue.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var test = require("tap").test
-var glob = require("../")
-
-var mkdirp = require("mkdirp")
-var fs = require("fs")
-var rimraf = require("rimraf")
-var dir = __dirname + "/package"
-
-test("setup", function (t) {
- mkdirp.sync(dir)
- fs.writeFileSync(dir + "/package.json", "{}", "ascii")
- fs.writeFileSync(dir + "/README", "x", "ascii")
- t.pass("setup done")
- t.end()
-})
-
-test("glob", function (t) {
- var opt = {
- cwd: dir,
- nocase: true,
- mark: true
- }
-
- glob("README?(.*)", opt, function (er, files) {
- if (er)
- throw er
- t.same(files, ["README"])
- t.end()
- })
-})
-
-test("cleanup", function (t) {
- rimraf.sync(dir)
- t.pass("clean")
- t.end()
-})
diff --git a/node_modules/mocha/node_modules/glob/test/root-nomount.js b/node_modules/mocha/node_modules/glob/test/root-nomount.js
deleted file mode 100644
index 3ac5979b0..000000000
--- a/node_modules/mocha/node_modules/glob/test/root-nomount.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var tap = require("tap")
-
-var origCwd = process.cwd()
-process.chdir(__dirname)
-
-tap.test("changing root and searching for /b*/**", function (t) {
- var glob = require('../')
- var path = require('path')
- t.test('.', function (t) {
- glob('/b*/**', { globDebug: true, root: '.', nomount: true }, function (er, matches) {
- t.ifError(er)
- t.like(matches, [])
- t.end()
- })
- })
-
- t.test('a', function (t) {
- glob('/b*/**', { globDebug: true, root: path.resolve('a'), nomount: true }, function (er, matches) {
- t.ifError(er)
- t.like(matches, [ '/b', '/b/c', '/b/c/d', '/bc', '/bc/e', '/bc/e/f' ])
- t.end()
- })
- })
-
- t.test('root=a, cwd=a/b', function (t) {
- glob('/b*/**', { globDebug: true, root: 'a', cwd: path.resolve('a/b'), nomount: true }, function (er, matches) {
- t.ifError(er)
- t.like(matches, [ '/b', '/b/c', '/b/c/d', '/bc', '/bc/e', '/bc/e/f' ])
- t.end()
- })
- })
-
- t.test('cd -', function (t) {
- process.chdir(origCwd)
- t.end()
- })
-
- t.end()
-})
diff --git a/node_modules/mocha/node_modules/glob/test/root.js b/node_modules/mocha/node_modules/glob/test/root.js
deleted file mode 100644
index 95c23f99c..000000000
--- a/node_modules/mocha/node_modules/glob/test/root.js
+++ /dev/null
@@ -1,46 +0,0 @@
-var t = require("tap")
-
-var origCwd = process.cwd()
-process.chdir(__dirname)
-
-var glob = require('../')
-var path = require('path')
-
-t.test('.', function (t) {
- glob('/b*/**', { globDebug: true, root: '.' }, function (er, matches) {
- t.ifError(er)
- t.like(matches, [])
- t.end()
- })
-})
-
-
-t.test('a', function (t) {
- console.error("root=" + path.resolve('a'))
- glob('/b*/**', { globDebug: true, root: path.resolve('a') }, function (er, matches) {
- t.ifError(er)
- var wanted = [
- '/b', '/b/c', '/b/c/d', '/bc', '/bc/e', '/bc/e/f'
- ].map(function (m) {
- return path.join(path.resolve('a'), m).replace(/\\/g, '/')
- })
-
- t.like(matches, wanted)
- t.end()
- })
-})
-
-t.test('root=a, cwd=a/b', function (t) {
- glob('/b*/**', { globDebug: true, root: 'a', cwd: path.resolve('a/b') }, function (er, matches) {
- t.ifError(er)
- t.like(matches, [ '/b', '/b/c', '/b/c/d', '/bc', '/bc/e', '/bc/e/f' ].map(function (m) {
- return path.join(path.resolve('a'), m).replace(/\\/g, '/')
- }))
- t.end()
- })
-})
-
-t.test('cd -', function (t) {
- process.chdir(origCwd)
- t.end()
-})
diff --git a/node_modules/mocha/node_modules/glob/test/stat.js b/node_modules/mocha/node_modules/glob/test/stat.js
deleted file mode 100644
index 62917114b..000000000
--- a/node_modules/mocha/node_modules/glob/test/stat.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var glob = require('../')
-var test = require('tap').test
-var path = require('path')
-
-test('stat all the things', function(t) {
- var g = new glob.Glob('a/*abc*/**', { stat: true, cwd: __dirname })
- var matches = []
- g.on('match', function(m) {
- matches.push(m)
- })
- var stats = []
- g.on('stat', function(m) {
- stats.push(m)
- })
- g.on('end', function(eof) {
- stats = stats.sort()
- matches = matches.sort()
- eof = eof.sort()
- t.same(stats, matches)
- t.same(eof, matches)
- var cache = Object.keys(this.statCache)
- t.same(cache.map(function (f) {
- return path.relative(__dirname, f)
- }).sort(), matches)
-
- cache.forEach(function(c) {
- t.equal(typeof this.statCache[c], 'object')
- }, this)
-
- t.end()
- })
-})
diff --git a/node_modules/mocha/node_modules/glob/test/zz-cleanup.js b/node_modules/mocha/node_modules/glob/test/zz-cleanup.js
deleted file mode 100644
index e085f0fa7..000000000
--- a/node_modules/mocha/node_modules/glob/test/zz-cleanup.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// remove the fixtures
-var tap = require("tap")
-, rimraf = require("rimraf")
-, path = require("path")
-
-tap.test("cleanup fixtures", function (t) {
- rimraf(path.resolve(__dirname, "a"), function (er) {
- t.ifError(er, "removed")
- t.end()
- })
-})
diff --git a/node_modules/mocha/node_modules/minimatch/.npmignore b/node_modules/mocha/node_modules/minimatch/.npmignore
deleted file mode 100644
index 3c3629e64..000000000
--- a/node_modules/mocha/node_modules/minimatch/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/node_modules/mocha/node_modules/minimatch/LICENSE b/node_modules/mocha/node_modules/minimatch/LICENSE
deleted file mode 100644
index 05a401094..000000000
--- a/node_modules/mocha/node_modules/minimatch/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright 2009, 2010, 2011 Isaac Z. Schlueter.
-All rights reserved.
-
-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.
diff --git a/node_modules/mocha/node_modules/minimatch/README.md b/node_modules/mocha/node_modules/minimatch/README.md
deleted file mode 100644
index 5b3967ea9..000000000
--- a/node_modules/mocha/node_modules/minimatch/README.md
+++ /dev/null
@@ -1,218 +0,0 @@
-# minimatch
-
-A minimal matching utility.
-
-[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch)
-
-
-This is the matching library used internally by npm.
-
-Eventually, it will replace the C binding in node-glob.
-
-It works by converting glob expressions into JavaScript `RegExp`
-objects.
-
-## Usage
-
-```javascript
-var minimatch = require("minimatch")
-
-minimatch("bar.foo", "*.foo") // true!
-minimatch("bar.foo", "*.bar") // false!
-minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy!
-```
-
-## Features
-
-Supports these glob features:
-
-* Brace Expansion
-* Extended glob matching
-* "Globstar" `**` matching
-
-See:
-
-* `man sh`
-* `man bash`
-* `man 3 fnmatch`
-* `man 5 gitignore`
-
-## Minimatch Class
-
-Create a minimatch object by instanting the `minimatch.Minimatch` class.
-
-```javascript
-var Minimatch = require("minimatch").Minimatch
-var mm = new Minimatch(pattern, options)
-```
-
-### Properties
-
-* `pattern` The original pattern the minimatch object represents.
-* `options` The options supplied to the constructor.
-* `set` A 2-dimensional array of regexp or string expressions.
- Each row in the
- array corresponds to a brace-expanded pattern. Each item in the row
- corresponds to a single path-part. For example, the pattern
- `{a,b/c}/d` would expand to a set of patterns like:
-
- [ [ a, d ]
- , [ b, c, d ] ]
-
- If a portion of the pattern doesn't have any "magic" in it
- (that is, it's something like `"foo"` rather than `fo*o?`), then it
- will be left as a string rather than converted to a regular
- expression.
-
-* `regexp` Created by the `makeRe` method. A single regular expression
- expressing the entire pattern. This is useful in cases where you wish
- to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.
-* `negate` True if the pattern is negated.
-* `comment` True if the pattern is a comment.
-* `empty` True if the pattern is `""`.
-
-### Methods
-
-* `makeRe` Generate the `regexp` member if necessary, and return it.
- Will return `false` if the pattern is invalid.
-* `match(fname)` Return true if the filename matches the pattern, or
- false otherwise.
-* `matchOne(fileArray, patternArray, partial)` Take a `/`-split
- filename, and match it against a single row in the `regExpSet`. This
- method is mainly for internal use, but is exposed so that it can be
- used by a glob-walker that needs to avoid excessive filesystem calls.
-
-All other methods are internal, and will be called as necessary.
-
-## Functions
-
-The top-level exported function has a `cache` property, which is an LRU
-cache set to store 100 items. So, calling these methods repeatedly
-with the same pattern and options will use the same Minimatch object,
-saving the cost of parsing it multiple times.
-
-### minimatch(path, pattern, options)
-
-Main export. Tests a path against the pattern using the options.
-
-```javascript
-var isJS = minimatch(file, "*.js", { matchBase: true })
-```
-
-### minimatch.filter(pattern, options)
-
-Returns a function that tests its
-supplied argument, suitable for use with `Array.filter`. Example:
-
-```javascript
-var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))
-```
-
-### minimatch.match(list, pattern, options)
-
-Match against the list of
-files, in the style of fnmatch or glob. If nothing is matched, and
-options.nonull is set, then return a list containing the pattern itself.
-
-```javascript
-var javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))
-```
-
-### minimatch.makeRe(pattern, options)
-
-Make a regular expression object from the pattern.
-
-## Options
-
-All options are `false` by default.
-
-### debug
-
-Dump a ton of stuff to stderr.
-
-### nobrace
-
-Do not expand `{a,b}` and `{1..3}` brace sets.
-
-### noglobstar
-
-Disable `**` matching against multiple folder names.
-
-### dot
-
-Allow patterns to match filenames starting with a period, even if
-the pattern does not explicitly have a period in that spot.
-
-Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`
-is set.
-
-### noext
-
-Disable "extglob" style patterns like `+(a|b)`.
-
-### nocase
-
-Perform a case-insensitive match.
-
-### nonull
-
-When a match is not found by `minimatch.match`, return a list containing
-the pattern itself if this option is set. When not set, an empty list
-is returned if there are no matches.
-
-### matchBase
-
-If set, then patterns without slashes will be matched
-against the basename of the path if it contains slashes. For example,
-`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.
-
-### nocomment
-
-Suppress the behavior of treating `#` at the start of a pattern as a
-comment.
-
-### nonegate
-
-Suppress the behavior of treating a leading `!` character as negation.
-
-### flipNegate
-
-Returns from negate expressions the same as if they were not negated.
-(Ie, true on a hit, false on a miss.)
-
-
-## Comparisons to other fnmatch/glob implementations
-
-While strict compliance with the existing standards is a worthwhile
-goal, some discrepancies exist between minimatch and other
-implementations, and are intentional.
-
-If the pattern starts with a `!` character, then it is negated. Set the
-`nonegate` flag to suppress this behavior, and treat leading `!`
-characters normally. This is perhaps relevant if you wish to start the
-pattern with a negative extglob pattern like `!(a|B)`. Multiple `!`
-characters at the start of a pattern will negate the pattern multiple
-times.
-
-If a pattern starts with `#`, then it is treated as a comment, and
-will not match anything. Use `\#` to match a literal `#` at the
-start of a line, or set the `nocomment` flag to suppress this behavior.
-
-The double-star character `**` is supported by default, unless the
-`noglobstar` flag is set. This is supported in the manner of bsdglob
-and bash 4.1, where `**` only has special significance if it is the only
-thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
-`a/**b` will not.
-
-If an escaped pattern has no matches, and the `nonull` flag is set,
-then minimatch.match returns the pattern as-provided, rather than
-interpreting the character escapes. For example,
-`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
-`"*a?"`. This is akin to setting the `nullglob` option in bash, except
-that it does not resolve escaped pattern characters.
-
-If brace expansion is not disabled, then it is performed before any
-other interpretation of the glob pattern. Thus, a pattern like
-`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
-**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
-checked for validity. Since those two are valid, matching proceeds.
diff --git a/node_modules/mocha/node_modules/minimatch/minimatch.js b/node_modules/mocha/node_modules/minimatch/minimatch.js
deleted file mode 100644
index 453967894..000000000
--- a/node_modules/mocha/node_modules/minimatch/minimatch.js
+++ /dev/null
@@ -1,1061 +0,0 @@
-;(function (require, exports, module, platform) {
-
-if (module) module.exports = minimatch
-else exports.minimatch = minimatch
-
-if (!require) {
- require = function (id) {
- switch (id) {
- case "sigmund": return function sigmund (obj) {
- return JSON.stringify(obj)
- }
- case "path": return { basename: function (f) {
- f = f.split(/[\/\\]/)
- var e = f.pop()
- if (!e) e = f.pop()
- return e
- }}
- case "lru-cache": return function LRUCache () {
- // not quite an LRU, but still space-limited.
- var cache = {}
- var cnt = 0
- this.set = function (k, v) {
- cnt ++
- if (cnt >= 100) cache = {}
- cache[k] = v
- }
- this.get = function (k) { return cache[k] }
- }
- }
- }
-}
-
-minimatch.Minimatch = Minimatch
-
-var LRU = require("lru-cache")
- , cache = minimatch.cache = new LRU({max: 100})
- , GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
- , sigmund = require("sigmund")
-
-var path = require("path")
- // any single thing other than /
- // don't need to escape / when using new RegExp()
- , qmark = "[^/]"
-
- // * => any number of characters
- , star = qmark + "*?"
-
- // ** when dots are allowed. Anything goes, except .. and .
- // not (^ or / followed by one or two dots followed by $ or /),
- // followed by anything, any number of times.
- , twoStarDot = "(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?"
-
- // not a ^ or / followed by a dot,
- // followed by anything, any number of times.
- , twoStarNoDot = "(?:(?!(?:\\\/|^)\\.).)*?"
-
- // characters that need to be escaped in RegExp.
- , reSpecials = charSet("().*{}+?[]^$\\!")
-
-// "abc" -> { a:true, b:true, c:true }
-function charSet (s) {
- return s.split("").reduce(function (set, c) {
- set[c] = true
- return set
- }, {})
-}
-
-// normalizes slashes.
-var slashSplit = /\/+/
-
-minimatch.filter = filter
-function filter (pattern, options) {
- options = options || {}
- return function (p, i, list) {
- return minimatch(p, pattern, options)
- }
-}
-
-function ext (a, b) {
- a = a || {}
- b = b || {}
- var t = {}
- Object.keys(b).forEach(function (k) {
- t[k] = b[k]
- })
- Object.keys(a).forEach(function (k) {
- t[k] = a[k]
- })
- return t
-}
-
-minimatch.defaults = function (def) {
- if (!def || !Object.keys(def).length) return minimatch
-
- var orig = minimatch
-
- var m = function minimatch (p, pattern, options) {
- return orig.minimatch(p, pattern, ext(def, options))
- }
-
- m.Minimatch = function Minimatch (pattern, options) {
- return new orig.Minimatch(pattern, ext(def, options))
- }
-
- return m
-}
-
-Minimatch.defaults = function (def) {
- if (!def || !Object.keys(def).length) return Minimatch
- return minimatch.defaults(def).Minimatch
-}
-
-
-function minimatch (p, pattern, options) {
- if (typeof pattern !== "string") {
- throw new TypeError("glob pattern string required")
- }
-
- if (!options) options = {}
-
- // shortcut: comments match nothing.
- if (!options.nocomment && pattern.charAt(0) === "#") {
- return false
- }
-
- // "" only matches ""
- if (pattern.trim() === "") return p === ""
-
- return new Minimatch(pattern, options).match(p)
-}
-
-function Minimatch (pattern, options) {
- if (!(this instanceof Minimatch)) {
- return new Minimatch(pattern, options, cache)
- }
-
- if (typeof pattern !== "string") {
- throw new TypeError("glob pattern string required")
- }
-
- if (!options) options = {}
- pattern = pattern.trim()
-
- // windows: need to use /, not \
- // On other platforms, \ is a valid (albeit bad) filename char.
- if (platform === "win32") {
- pattern = pattern.split("\\").join("/")
- }
-
- // lru storage.
- // these things aren't particularly big, but walking down the string
- // and turning it into a regexp can get pretty costly.
- var cacheKey = pattern + "\n" + sigmund(options)
- var cached = minimatch.cache.get(cacheKey)
- if (cached) return cached
- minimatch.cache.set(cacheKey, this)
-
- this.options = options
- this.set = []
- this.pattern = pattern
- this.regexp = null
- this.negate = false
- this.comment = false
- this.empty = false
-
- // make the set of regexps etc.
- this.make()
-}
-
-Minimatch.prototype.debug = function() {}
-
-Minimatch.prototype.make = make
-function make () {
- // don't do it more than once.
- if (this._made) return
-
- var pattern = this.pattern
- var options = this.options
-
- // empty patterns and comments match nothing.
- if (!options.nocomment && pattern.charAt(0) === "#") {
- this.comment = true
- return
- }
- if (!pattern) {
- this.empty = true
- return
- }
-
- // step 1: figure out negation, etc.
- this.parseNegate()
-
- // step 2: expand braces
- var set = this.globSet = this.braceExpand()
-
- if (options.debug) this.debug = console.error
-
- this.debug(this.pattern, set)
-
- // step 3: now we have a set, so turn each one into a series of path-portion
- // matching patterns.
- // These will be regexps, except in the case of "**", which is
- // set to the GLOBSTAR object for globstar behavior,
- // and will not contain any / characters
- set = this.globParts = set.map(function (s) {
- return s.split(slashSplit)
- })
-
- this.debug(this.pattern, set)
-
- // glob --> regexps
- set = set.map(function (s, si, set) {
- return s.map(this.parse, this)
- }, this)
-
- this.debug(this.pattern, set)
-
- // filter out everything that didn't compile properly.
- set = set.filter(function (s) {
- return -1 === s.indexOf(false)
- })
-
- this.debug(this.pattern, set)
-
- this.set = set
-}
-
-Minimatch.prototype.parseNegate = parseNegate
-function parseNegate () {
- var pattern = this.pattern
- , negate = false
- , options = this.options
- , negateOffset = 0
-
- if (options.nonegate) return
-
- for ( var i = 0, l = pattern.length
- ; i < l && pattern.charAt(i) === "!"
- ; i ++) {
- negate = !negate
- negateOffset ++
- }
-
- if (negateOffset) this.pattern = pattern.substr(negateOffset)
- this.negate = negate
-}
-
-// Brace expansion:
-// a{b,c}d -> abd acd
-// a{b,}c -> abc ac
-// a{0..3}d -> a0d a1d a2d a3d
-// a{b,c{d,e}f}g -> abg acdfg acefg
-// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
-//
-// Invalid sets are not expanded.
-// a{2..}b -> a{2..}b
-// a{b}c -> a{b}c
-minimatch.braceExpand = function (pattern, options) {
- return new Minimatch(pattern, options).braceExpand()
-}
-
-Minimatch.prototype.braceExpand = braceExpand
-function braceExpand (pattern, options) {
- options = options || this.options
- pattern = typeof pattern === "undefined"
- ? this.pattern : pattern
-
- if (typeof pattern === "undefined") {
- throw new Error("undefined pattern")
- }
-
- if (options.nobrace ||
- !pattern.match(/\{.*\}/)) {
- // shortcut. no need to expand.
- return [pattern]
- }
-
- var escaping = false
-
- // examples and comments refer to this crazy pattern:
- // a{b,c{d,e},{f,g}h}x{y,z}
- // expected:
- // abxy
- // abxz
- // acdxy
- // acdxz
- // acexy
- // acexz
- // afhxy
- // afhxz
- // aghxy
- // aghxz
-
- // everything before the first \{ is just a prefix.
- // So, we pluck that off, and work with the rest,
- // and then prepend it to everything we find.
- if (pattern.charAt(0) !== "{") {
- this.debug(pattern)
- var prefix = null
- for (var i = 0, l = pattern.length; i < l; i ++) {
- var c = pattern.charAt(i)
- this.debug(i, c)
- if (c === "\\") {
- escaping = !escaping
- } else if (c === "{" && !escaping) {
- prefix = pattern.substr(0, i)
- break
- }
- }
-
- // actually no sets, all { were escaped.
- if (prefix === null) {
- this.debug("no sets")
- return [pattern]
- }
-
- var tail = braceExpand.call(this, pattern.substr(i), options)
- return tail.map(function (t) {
- return prefix + t
- })
- }
-
- // now we have something like:
- // {b,c{d,e},{f,g}h}x{y,z}
- // walk through the set, expanding each part, until
- // the set ends. then, we'll expand the suffix.
- // If the set only has a single member, then'll put the {} back
-
- // first, handle numeric sets, since they're easier
- var numset = pattern.match(/^\{(-?[0-9]+)\.\.(-?[0-9]+)\}/)
- if (numset) {
- this.debug("numset", numset[1], numset[2])
- var suf = braceExpand.call(this, pattern.substr(numset[0].length), options)
- , start = +numset[1]
- , end = +numset[2]
- , inc = start > end ? -1 : 1
- , set = []
- for (var i = start; i != (end + inc); i += inc) {
- // append all the suffixes
- for (var ii = 0, ll = suf.length; ii < ll; ii ++) {
- set.push(i + suf[ii])
- }
- }
- return set
- }
-
- // ok, walk through the set
- // We hope, somewhat optimistically, that there
- // will be a } at the end.
- // If the closing brace isn't found, then the pattern is
- // interpreted as braceExpand("\\" + pattern) so that
- // the leading \{ will be interpreted literally.
- var i = 1 // skip the \{
- , depth = 1
- , set = []
- , member = ""
- , sawEnd = false
- , escaping = false
-
- function addMember () {
- set.push(member)
- member = ""
- }
-
- this.debug("Entering for")
- FOR: for (i = 1, l = pattern.length; i < l; i ++) {
- var c = pattern.charAt(i)
- this.debug("", i, c)
-
- if (escaping) {
- escaping = false
- member += "\\" + c
- } else {
- switch (c) {
- case "\\":
- escaping = true
- continue
-
- case "{":
- depth ++
- member += "{"
- continue
-
- case "}":
- depth --
- // if this closes the actual set, then we're done
- if (depth === 0) {
- addMember()
- // pluck off the close-brace
- i ++
- break FOR
- } else {
- member += c
- continue
- }
-
- case ",":
- if (depth === 1) {
- addMember()
- } else {
- member += c
- }
- continue
-
- default:
- member += c
- continue
- } // switch
- } // else
- } // for
-
- // now we've either finished the set, and the suffix is
- // pattern.substr(i), or we have *not* closed the set,
- // and need to escape the leading brace
- if (depth !== 0) {
- this.debug("didn't close", pattern)
- return braceExpand.call(this, "\\" + pattern, options)
- }
-
- // x{y,z} -> ["xy", "xz"]
- this.debug("set", set)
- this.debug("suffix", pattern.substr(i))
- var suf = braceExpand.call(this, pattern.substr(i), options)
- // ["b", "c{d,e}","{f,g}h"] ->
- // [["b"], ["cd", "ce"], ["fh", "gh"]]
- var addBraces = set.length === 1
- this.debug("set pre-expanded", set)
- set = set.map(function (p) {
- return braceExpand.call(this, p, options)
- }, this)
- this.debug("set expanded", set)
-
-
- // [["b"], ["cd", "ce"], ["fh", "gh"]] ->
- // ["b", "cd", "ce", "fh", "gh"]
- set = set.reduce(function (l, r) {
- return l.concat(r)
- })
-
- if (addBraces) {
- set = set.map(function (s) {
- return "{" + s + "}"
- })
- }
-
- // now attach the suffixes.
- var ret = []
- for (var i = 0, l = set.length; i < l; i ++) {
- for (var ii = 0, ll = suf.length; ii < ll; ii ++) {
- ret.push(set[i] + suf[ii])
- }
- }
- return ret
-}
-
-// parse a component of the expanded set.
-// At this point, no pattern may contain "/" in it
-// so we're going to return a 2d array, where each entry is the full
-// pattern, split on '/', and then turned into a regular expression.
-// A regexp is made at the end which joins each array with an
-// escaped /, and another full one which joins each regexp with |.
-//
-// Following the lead of Bash 4.1, note that "**" only has special meaning
-// when it is the *only* thing in a path portion. Otherwise, any series
-// of * is equivalent to a single *. Globstar behavior is enabled by
-// default, and can be disabled by setting options.noglobstar.
-Minimatch.prototype.parse = parse
-var SUBPARSE = {}
-function parse (pattern, isSub) {
- var options = this.options
-
- // shortcuts
- if (!options.noglobstar && pattern === "**") return GLOBSTAR
- if (pattern === "") return ""
-
- var re = ""
- , hasMagic = !!options.nocase
- , escaping = false
- // ? => one single character
- , patternListStack = []
- , plType
- , stateChar
- , inClass = false
- , reClassStart = -1
- , classStart = -1
- // . and .. never match anything that doesn't start with .,
- // even when options.dot is set.
- , patternStart = pattern.charAt(0) === "." ? "" // anything
- // not (start or / followed by . or .. followed by / or end)
- : options.dot ? "(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))"
- : "(?!\\.)"
- , self = this
-
- function clearStateChar () {
- if (stateChar) {
- // we had some state-tracking character
- // that wasn't consumed by this pass.
- switch (stateChar) {
- case "*":
- re += star
- hasMagic = true
- break
- case "?":
- re += qmark
- hasMagic = true
- break
- default:
- re += "\\"+stateChar
- break
- }
- self.debug('clearStateChar %j %j', stateChar, re)
- stateChar = false
- }
- }
-
- for ( var i = 0, len = pattern.length, c
- ; (i < len) && (c = pattern.charAt(i))
- ; i ++ ) {
-
- this.debug("%s\t%s %s %j", pattern, i, re, c)
-
- // skip over any that are escaped.
- if (escaping && reSpecials[c]) {
- re += "\\" + c
- escaping = false
- continue
- }
-
- SWITCH: switch (c) {
- case "/":
- // completely not allowed, even escaped.
- // Should already be path-split by now.
- return false
-
- case "\\":
- clearStateChar()
- escaping = true
- continue
-
- // the various stateChar values
- // for the "extglob" stuff.
- case "?":
- case "*":
- case "+":
- case "@":
- case "!":
- this.debug("%s\t%s %s %j <-- stateChar", pattern, i, re, c)
-
- // all of those are literals inside a class, except that
- // the glob [!a] means [^a] in regexp
- if (inClass) {
- this.debug(' in class')
- if (c === "!" && i === classStart + 1) c = "^"
- re += c
- continue
- }
-
- // if we already have a stateChar, then it means
- // that there was something like ** or +? in there.
- // Handle the stateChar, then proceed with this one.
- self.debug('call clearStateChar %j', stateChar)
- clearStateChar()
- stateChar = c
- // if extglob is disabled, then +(asdf|foo) isn't a thing.
- // just clear the statechar *now*, rather than even diving into
- // the patternList stuff.
- if (options.noext) clearStateChar()
- continue
-
- case "(":
- if (inClass) {
- re += "("
- continue
- }
-
- if (!stateChar) {
- re += "\\("
- continue
- }
-
- plType = stateChar
- patternListStack.push({ type: plType
- , start: i - 1
- , reStart: re.length })
- // negation is (?:(?!js)[^/]*)
- re += stateChar === "!" ? "(?:(?!" : "(?:"
- this.debug('plType %j %j', stateChar, re)
- stateChar = false
- continue
-
- case ")":
- if (inClass || !patternListStack.length) {
- re += "\\)"
- continue
- }
-
- clearStateChar()
- hasMagic = true
- re += ")"
- plType = patternListStack.pop().type
- // negation is (?:(?!js)[^/]*)
- // The others are (?:<pattern>)<type>
- switch (plType) {
- case "!":
- re += "[^/]*?)"
- break
- case "?":
- case "+":
- case "*": re += plType
- case "@": break // the default anyway
- }
- continue
-
- case "|":
- if (inClass || !patternListStack.length || escaping) {
- re += "\\|"
- escaping = false
- continue
- }
-
- clearStateChar()
- re += "|"
- continue
-
- // these are mostly the same in regexp and glob
- case "[":
- // swallow any state-tracking char before the [
- clearStateChar()
-
- if (inClass) {
- re += "\\" + c
- continue
- }
-
- inClass = true
- classStart = i
- reClassStart = re.length
- re += c
- continue
-
- case "]":
- // a right bracket shall lose its special
- // meaning and represent itself in
- // a bracket expression if it occurs
- // first in the list. -- POSIX.2 2.8.3.2
- if (i === classStart + 1 || !inClass) {
- re += "\\" + c
- escaping = false
- continue
- }
-
- // finish up the class.
- hasMagic = true
- inClass = false
- re += c
- continue
-
- default:
- // swallow any state char that wasn't consumed
- clearStateChar()
-
- if (escaping) {
- // no need
- escaping = false
- } else if (reSpecials[c]
- && !(c === "^" && inClass)) {
- re += "\\"
- }
-
- re += c
-
- } // switch
- } // for
-
-
- // handle the case where we left a class open.
- // "[abc" is valid, equivalent to "\[abc"
- if (inClass) {
- // split where the last [ was, and escape it
- // this is a huge pita. We now have to re-walk
- // the contents of the would-be class to re-translate
- // any characters that were passed through as-is
- var cs = pattern.substr(classStart + 1)
- , sp = this.parse(cs, SUBPARSE)
- re = re.substr(0, reClassStart) + "\\[" + sp[0]
- hasMagic = hasMagic || sp[1]
- }
-
- // handle the case where we had a +( thing at the *end*
- // of the pattern.
- // each pattern list stack adds 3 chars, and we need to go through
- // and escape any | chars that were passed through as-is for the regexp.
- // Go through and escape them, taking care not to double-escape any
- // | chars that were already escaped.
- var pl
- while (pl = patternListStack.pop()) {
- var tail = re.slice(pl.reStart + 3)
- // maybe some even number of \, then maybe 1 \, followed by a |
- tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) {
- if (!$2) {
- // the | isn't already escaped, so escape it.
- $2 = "\\"
- }
-
- // need to escape all those slashes *again*, without escaping the
- // one that we need for escaping the | character. As it works out,
- // escaping an even number of slashes can be done by simply repeating
- // it exactly after itself. That's why this trick works.
- //
- // I am sorry that you have to see this.
- return $1 + $1 + $2 + "|"
- })
-
- this.debug("tail=%j\n %s", tail, tail)
- var t = pl.type === "*" ? star
- : pl.type === "?" ? qmark
- : "\\" + pl.type
-
- hasMagic = true
- re = re.slice(0, pl.reStart)
- + t + "\\("
- + tail
- }
-
- // handle trailing things that only matter at the very end.
- clearStateChar()
- if (escaping) {
- // trailing \\
- re += "\\\\"
- }
-
- // only need to apply the nodot start if the re starts with
- // something that could conceivably capture a dot
- var addPatternStart = false
- switch (re.charAt(0)) {
- case ".":
- case "[":
- case "(": addPatternStart = true
- }
-
- // if the re is not "" at this point, then we need to make sure
- // it doesn't match against an empty path part.
- // Otherwise a/* will match a/, which it should not.
- if (re !== "" && hasMagic) re = "(?=.)" + re
-
- if (addPatternStart) re = patternStart + re
-
- // parsing just a piece of a larger pattern.
- if (isSub === SUBPARSE) {
- return [ re, hasMagic ]
- }
-
- // skip the regexp for non-magical patterns
- // unescape anything in it, though, so that it'll be
- // an exact match against a file etc.
- if (!hasMagic) {
- return globUnescape(pattern)
- }
-
- var flags = options.nocase ? "i" : ""
- , regExp = new RegExp("^" + re + "$", flags)
-
- regExp._glob = pattern
- regExp._src = re
-
- return regExp
-}
-
-minimatch.makeRe = function (pattern, options) {
- return new Minimatch(pattern, options || {}).makeRe()
-}
-
-Minimatch.prototype.makeRe = makeRe
-function makeRe () {
- if (this.regexp || this.regexp === false) return this.regexp
-
- // at this point, this.set is a 2d array of partial
- // pattern strings, or "**".
- //
- // It's better to use .match(). This function shouldn't
- // be used, really, but it's pretty convenient sometimes,
- // when you just want to work with a regex.
- var set = this.set
-
- if (!set.length) return this.regexp = false
- var options = this.options
-
- var twoStar = options.noglobstar ? star
- : options.dot ? twoStarDot
- : twoStarNoDot
- , flags = options.nocase ? "i" : ""
-
- var re = set.map(function (pattern) {
- return pattern.map(function (p) {
- return (p === GLOBSTAR) ? twoStar
- : (typeof p === "string") ? regExpEscape(p)
- : p._src
- }).join("\\\/")
- }).join("|")
-
- // must match entire pattern
- // ending in a * or ** will make it less strict.
- re = "^(?:" + re + ")$"
-
- // can match anything, as long as it's not this.
- if (this.negate) re = "^(?!" + re + ").*$"
-
- try {
- return this.regexp = new RegExp(re, flags)
- } catch (ex) {
- return this.regexp = false
- }
-}
-
-minimatch.match = function (list, pattern, options) {
- options = options || {}
- var mm = new Minimatch(pattern, options)
- list = list.filter(function (f) {
- return mm.match(f)
- })
- if (mm.options.nonull && !list.length) {
- list.push(pattern)
- }
- return list
-}
-
-Minimatch.prototype.match = match
-function match (f, partial) {
- this.debug("match", f, this.pattern)
- // short-circuit in the case of busted things.
- // comments, etc.
- if (this.comment) return false
- if (this.empty) return f === ""
-
- if (f === "/" && partial) return true
-
- var options = this.options
-
- // windows: need to use /, not \
- // On other platforms, \ is a valid (albeit bad) filename char.
- if (platform === "win32") {
- f = f.split("\\").join("/")
- }
-
- // treat the test path as a set of pathparts.
- f = f.split(slashSplit)
- this.debug(this.pattern, "split", f)
-
- // just ONE of the pattern sets in this.set needs to match
- // in order for it to be valid. If negating, then just one
- // match means that we have failed.
- // Either way, return on the first hit.
-
- var set = this.set
- this.debug(this.pattern, "set", set)
-
- // Find the basename of the path by looking for the last non-empty segment
- var filename;
- for (var i = f.length - 1; i >= 0; i--) {
- filename = f[i]
- if (filename) break
- }
-
- for (var i = 0, l = set.length; i < l; i ++) {
- var pattern = set[i], file = f
- if (options.matchBase && pattern.length === 1) {
- file = [filename]
- }
- var hit = this.matchOne(file, pattern, partial)
- if (hit) {
- if (options.flipNegate) return true
- return !this.negate
- }
- }
-
- // didn't get any hits. this is success if it's a negative
- // pattern, failure otherwise.
- if (options.flipNegate) return false
- return this.negate
-}
-
-// set partial to true to test if, for example,
-// "/a/b" matches the start of "/*/b/*/d"
-// Partial means, if you run out of file before you run
-// out of pattern, then that's fine, as long as all
-// the parts match.
-Minimatch.prototype.matchOne = function (file, pattern, partial) {
- var options = this.options
-
- this.debug("matchOne",
- { "this": this
- , file: file
- , pattern: pattern })
-
- this.debug("matchOne", file.length, pattern.length)
-
- for ( var fi = 0
- , pi = 0
- , fl = file.length
- , pl = pattern.length
- ; (fi < fl) && (pi < pl)
- ; fi ++, pi ++ ) {
-
- this.debug("matchOne loop")
- var p = pattern[pi]
- , f = file[fi]
-
- this.debug(pattern, p, f)
-
- // should be impossible.
- // some invalid regexp stuff in the set.
- if (p === false) return false
-
- if (p === GLOBSTAR) {
- this.debug('GLOBSTAR', [pattern, p, f])
-
- // "**"
- // a/**/b/**/c would match the following:
- // a/b/x/y/z/c
- // a/x/y/z/b/c
- // a/b/x/b/x/c
- // a/b/c
- // To do this, take the rest of the pattern after
- // the **, and see if it would match the file remainder.
- // If so, return success.
- // If not, the ** "swallows" a segment, and try again.
- // This is recursively awful.
- //
- // a/**/b/**/c matching a/b/x/y/z/c
- // - a matches a
- // - doublestar
- // - matchOne(b/x/y/z/c, b/**/c)
- // - b matches b
- // - doublestar
- // - matchOne(x/y/z/c, c) -> no
- // - matchOne(y/z/c, c) -> no
- // - matchOne(z/c, c) -> no
- // - matchOne(c, c) yes, hit
- var fr = fi
- , pr = pi + 1
- if (pr === pl) {
- this.debug('** at the end')
- // a ** at the end will just swallow the rest.
- // We have found a match.
- // however, it will not swallow /.x, unless
- // options.dot is set.
- // . and .. are *never* matched by **, for explosively
- // exponential reasons.
- for ( ; fi < fl; fi ++) {
- if (file[fi] === "." || file[fi] === ".." ||
- (!options.dot && file[fi].charAt(0) === ".")) return false
- }
- return true
- }
-
- // ok, let's see if we can swallow whatever we can.
- WHILE: while (fr < fl) {
- var swallowee = file[fr]
-
- this.debug('\nglobstar while',
- file, fr, pattern, pr, swallowee)
-
- // XXX remove this slice. Just pass the start index.
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
- this.debug('globstar found match!', fr, fl, swallowee)
- // found a match.
- return true
- } else {
- // can't swallow "." or ".." ever.
- // can only swallow ".foo" when explicitly asked.
- if (swallowee === "." || swallowee === ".." ||
- (!options.dot && swallowee.charAt(0) === ".")) {
- this.debug("dot detected!", file, fr, pattern, pr)
- break WHILE
- }
-
- // ** swallows a segment, and continue.
- this.debug('globstar swallow a segment, and continue')
- fr ++
- }
- }
- // no match was found.
- // However, in partial mode, we can't say this is necessarily over.
- // If there's more *pattern* left, then
- if (partial) {
- // ran out of file
- this.debug("\n>>> no match, partial?", file, fr, pattern, pr)
- if (fr === fl) return true
- }
- return false
- }
-
- // something other than **
- // non-magic patterns just have to match exactly
- // patterns with magic have been turned into regexps.
- var hit
- if (typeof p === "string") {
- if (options.nocase) {
- hit = f.toLowerCase() === p.toLowerCase()
- } else {
- hit = f === p
- }
- this.debug("string match", p, f, hit)
- } else {
- hit = f.match(p)
- this.debug("pattern match", p, f, hit)
- }
-
- if (!hit) return false
- }
-
- // Note: ending in / means that we'll get a final ""
- // at the end of the pattern. This can only match a
- // corresponding "" at the end of the file.
- // If the file ends in /, then it can only match a
- // a pattern that ends in /, unless the pattern just
- // doesn't have any more for it. But, a/b/ should *not*
- // match "a/b/*", even though "" matches against the
- // [^/]*? pattern, except in partial mode, where it might
- // simply not be reached yet.
- // However, a/b/ should still satisfy a/*
-
- // now either we fell off the end of the pattern, or we're done.
- if (fi === fl && pi === pl) {
- // ran out of pattern and filename at the same time.
- // an exact hit!
- return true
- } else if (fi === fl) {
- // ran out of file, but still had pattern left.
- // this is ok if we're doing the match as part of
- // a glob fs traversal.
- return partial
- } else if (pi === pl) {
- // ran out of pattern, still have file left.
- // this is only acceptable if we're on the very last
- // empty segment of a file with a trailing slash.
- // a/* should match a/b/
- var emptyFileEnd = (fi === fl - 1) && (file[fi] === "")
- return emptyFileEnd
- }
-
- // should be unreachable.
- throw new Error("wtf?")
-}
-
-
-// replace stuff like \* with *
-function globUnescape (s) {
- return s.replace(/\\(.)/g, "$1")
-}
-
-
-function regExpEscape (s) {
- return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
-}
-
-})( typeof require === "function" ? require : null,
- this,
- typeof module === "object" ? module : null,
- typeof process === "object" ? process.platform : "win32"
- )
diff --git a/node_modules/mocha/node_modules/minimatch/package.json b/node_modules/mocha/node_modules/minimatch/package.json
deleted file mode 100644
index 0163841d9..000000000
--- a/node_modules/mocha/node_modules/minimatch/package.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)",
- "name": "minimatch",
- "description": "a glob matcher in javascript",
- "version": "0.3.0",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/minimatch.git"
- },
- "main": "minimatch.js",
- "scripts": {
- "test": "tap test/*.js"
- },
- "engines": {
- "node": "*"
- },
- "dependencies": {
- "lru-cache": "2",
- "sigmund": "~1.0.0"
- },
- "devDependencies": {
- "tap": ""
- },
- "license": {
- "type": "MIT",
- "url": "http://github.com/isaacs/minimatch/raw/master/LICENSE"
- }
-}
diff --git a/node_modules/mocha/node_modules/minimatch/test/basic.js b/node_modules/mocha/node_modules/minimatch/test/basic.js
deleted file mode 100644
index ae7ac73c7..000000000
--- a/node_modules/mocha/node_modules/minimatch/test/basic.js
+++ /dev/null
@@ -1,399 +0,0 @@
-// http://www.bashcookbook.com/bashinfo/source/bash-1.14.7/tests/glob-test
-//
-// TODO: Some of these tests do very bad things with backslashes, and will
-// most likely fail badly on windows. They should probably be skipped.
-
-var tap = require("tap")
- , globalBefore = Object.keys(global)
- , mm = require("../")
- , files = [ "a", "b", "c", "d", "abc"
- , "abd", "abe", "bb", "bcd"
- , "ca", "cb", "dd", "de"
- , "bdir/", "bdir/cfile"]
- , next = files.concat([ "a-b", "aXb"
- , ".x", ".y" ])
-
-
-var patterns =
- [ "http://www.bashcookbook.com/bashinfo/source/bash-1.14.7/tests/glob-test"
- , ["a*", ["a", "abc", "abd", "abe"]]
- , ["X*", ["X*"], {nonull: true}]
-
- // allow null glob expansion
- , ["X*", []]
-
- // isaacs: Slightly different than bash/sh/ksh
- // \\* is not un-escaped to literal "*" in a failed match,
- // but it does make it get treated as a literal star
- , ["\\*", ["\\*"], {nonull: true}]
- , ["\\**", ["\\**"], {nonull: true}]
- , ["\\*\\*", ["\\*\\*"], {nonull: true}]
-
- , ["b*/", ["bdir/"]]
- , ["c*", ["c", "ca", "cb"]]
- , ["**", files]
-
- , ["\\.\\./*/", ["\\.\\./*/"], {nonull: true}]
- , ["s/\\..*//", ["s/\\..*//"], {nonull: true}]
-
- , "legendary larry crashes bashes"
- , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/"
- , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/"], {nonull: true}]
- , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/"
- , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/"], {nonull: true}]
-
- , "character classes"
- , ["[a-c]b*", ["abc", "abd", "abe", "bb", "cb"]]
- , ["[a-y]*[^c]", ["abd", "abe", "bb", "bcd",
- "bdir/", "ca", "cb", "dd", "de"]]
- , ["a*[^c]", ["abd", "abe"]]
- , function () { files.push("a-b", "aXb") }
- , ["a[X-]b", ["a-b", "aXb"]]
- , function () { files.push(".x", ".y") }
- , ["[^a-c]*", ["d", "dd", "de"]]
- , function () { files.push("a*b/", "a*b/ooo") }
- , ["a\\*b/*", ["a*b/ooo"]]
- , ["a\\*?/*", ["a*b/ooo"]]
- , ["*\\\\!*", [], {null: true}, ["echo !7"]]
- , ["*\\!*", ["echo !7"], null, ["echo !7"]]
- , ["*.\\*", ["r.*"], null, ["r.*"]]
- , ["a[b]c", ["abc"]]
- , ["a[\\b]c", ["abc"]]
- , ["a?c", ["abc"]]
- , ["a\\*c", [], {null: true}, ["abc"]]
- , ["", [""], { null: true }, [""]]
-
- , "http://www.opensource.apple.com/source/bash/bash-23/" +
- "bash/tests/glob-test"
- , function () { files.push("man/", "man/man1/", "man/man1/bash.1") }
- , ["*/man*/bash.*", ["man/man1/bash.1"]]
- , ["man/man1/bash.1", ["man/man1/bash.1"]]
- , ["a***c", ["abc"], null, ["abc"]]
- , ["a*****?c", ["abc"], null, ["abc"]]
- , ["?*****??", ["abc"], null, ["abc"]]
- , ["*****??", ["abc"], null, ["abc"]]
- , ["?*****?c", ["abc"], null, ["abc"]]
- , ["?***?****c", ["abc"], null, ["abc"]]
- , ["?***?****?", ["abc"], null, ["abc"]]
- , ["?***?****", ["abc"], null, ["abc"]]
- , ["*******c", ["abc"], null, ["abc"]]
- , ["*******?", ["abc"], null, ["abc"]]
- , ["a*cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
- , ["a**?**cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
- , ["a**?**cd**?**??k***", ["abcdecdhjk"], null, ["abcdecdhjk"]]
- , ["a**?**cd**?**??***k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
- , ["a**?**cd**?**??***k**", ["abcdecdhjk"], null, ["abcdecdhjk"]]
- , ["a****c**?**??*****", ["abcdecdhjk"], null, ["abcdecdhjk"]]
- , ["[-abc]", ["-"], null, ["-"]]
- , ["[abc-]", ["-"], null, ["-"]]
- , ["\\", ["\\"], null, ["\\"]]
- , ["[\\\\]", ["\\"], null, ["\\"]]
- , ["[[]", ["["], null, ["["]]
- , ["[", ["["], null, ["["]]
- , ["[*", ["[abc"], null, ["[abc"]]
- , "a right bracket shall lose its special meaning and\n" +
- "represent itself in a bracket expression if it occurs\n" +
- "first in the list. -- POSIX.2 2.8.3.2"
- , ["[]]", ["]"], null, ["]"]]
- , ["[]-]", ["]"], null, ["]"]]
- , ["[a-\z]", ["p"], null, ["p"]]
- , ["??**********?****?", [], { null: true }, ["abc"]]
- , ["??**********?****c", [], { null: true }, ["abc"]]
- , ["?************c****?****", [], { null: true }, ["abc"]]
- , ["*c*?**", [], { null: true }, ["abc"]]
- , ["a*****c*?**", [], { null: true }, ["abc"]]
- , ["a********???*******", [], { null: true }, ["abc"]]
- , ["[]", [], { null: true }, ["a"]]
- , ["[abc", [], { null: true }, ["["]]
-
- , "nocase tests"
- , ["XYZ", ["xYz"], { nocase: true, null: true }
- , ["xYz", "ABC", "IjK"]]
- , ["ab*", ["ABC"], { nocase: true, null: true }
- , ["xYz", "ABC", "IjK"]]
- , ["[ia]?[ck]", ["ABC", "IjK"], { nocase: true, null: true }
- , ["xYz", "ABC", "IjK"]]
-
- // [ pattern, [matches], MM opts, files, TAP opts]
- , "onestar/twostar"
- , ["{/*,*}", [], {null: true}, ["/asdf/asdf/asdf"]]
- , ["{/?,*}", ["/a", "bb"], {null: true}
- , ["/a", "/b/b", "/a/b/c", "bb"]]
-
- , "dots should not match unless requested"
- , ["**", ["a/b"], {}, ["a/b", "a/.d", ".a/.d"]]
-
- // .. and . can only match patterns starting with .,
- // even when options.dot is set.
- , function () {
- files = ["a/./b", "a/../b", "a/c/b", "a/.d/b"]
- }
- , ["a/*/b", ["a/c/b", "a/.d/b"], {dot: true}]
- , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: true}]
- , ["a/*/b", ["a/c/b"], {dot:false}]
- , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: false}]
-
-
- // this also tests that changing the options needs
- // to change the cache key, even if the pattern is
- // the same!
- , ["**", ["a/b","a/.d",".a/.d"], { dot: true }
- , [ ".a/.d", "a/.d", "a/b"]]
-
- , "paren sets cannot contain slashes"
- , ["*(a/b)", ["*(a/b)"], {nonull: true}, ["a/b"]]
-
- // brace sets trump all else.
- //
- // invalid glob pattern. fails on bash4 and bsdglob.
- // however, in this implementation, it's easier just
- // to do the intuitive thing, and let brace-expansion
- // actually come before parsing any extglob patterns,
- // like the documentation seems to say.
- //
- // XXX: if anyone complains about this, either fix it
- // or tell them to grow up and stop complaining.
- //
- // bash/bsdglob says this:
- // , ["*(a|{b),c)}", ["*(a|{b),c)}"], {}, ["a", "ab", "ac", "ad"]]
- // but we do this instead:
- , ["*(a|{b),c)}", ["a", "ab", "ac"], {}, ["a", "ab", "ac", "ad"]]
-
- // test partial parsing in the presence of comment/negation chars
- , ["[!a*", ["[!ab"], {}, ["[!ab", "[ab"]]
- , ["[#a*", ["[#ab"], {}, ["[#ab", "[ab"]]
-
- // like: {a,b|c\\,d\\\|e} except it's unclosed, so it has to be escaped.
- , ["+(a|*\\|c\\\\|d\\\\\\|e\\\\\\\\|f\\\\\\\\\\|g"
- , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g"]
- , {}
- , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g", "a", "b\\c"]]
-
-
- // crazy nested {,,} and *(||) tests.
- , function () {
- files = [ "a", "b", "c", "d"
- , "ab", "ac", "ad"
- , "bc", "cb"
- , "bc,d", "c,db", "c,d"
- , "d)", "(b|c", "*(b|c"
- , "b|c", "b|cc", "cb|c"
- , "x(a|b|c)", "x(a|c)"
- , "(a|b|c)", "(a|c)"]
- }
- , ["*(a|{b,c})", ["a", "b", "c", "ab", "ac"]]
- , ["{a,*(b|c,d)}", ["a","(b|c", "*(b|c", "d)"]]
- // a
- // *(b|c)
- // *(b|d)
- , ["{a,*(b|{c,d})}", ["a","b", "bc", "cb", "c", "d"]]
- , ["*(a|{b|c,c})", ["a", "b", "c", "ab", "ac", "bc", "cb"]]
-
-
- // test various flag settings.
- , [ "*(a|{b|c,c})", ["x(a|b|c)", "x(a|c)", "(a|b|c)", "(a|c)"]
- , { noext: true } ]
- , ["a?b", ["x/y/acb", "acb/"], {matchBase: true}
- , ["x/y/acb", "acb/", "acb/d/e", "x/y/acb/d"] ]
- , ["#*", ["#a", "#b"], {nocomment: true}, ["#a", "#b", "c#d"]]
-
-
- // begin channelling Boole and deMorgan...
- , "negation tests"
- , function () {
- files = ["d", "e", "!ab", "!abc", "a!b", "\\!a"]
- }
-
- // anything that is NOT a* matches.
- , ["!a*", ["\\!a", "d", "e", "!ab", "!abc"]]
-
- // anything that IS !a* matches.
- , ["!a*", ["!ab", "!abc"], {nonegate: true}]
-
- // anything that IS a* matches
- , ["!!a*", ["a!b"]]
-
- // anything that is NOT !a* matches
- , ["!\\!a*", ["a!b", "d", "e", "\\!a"]]
-
- // negation nestled within a pattern
- , function () {
- files = [ "foo.js"
- , "foo.bar"
- // can't match this one without negative lookbehind.
- , "foo.js.js"
- , "blar.js"
- , "foo."
- , "boo.js.boo" ]
- }
- , ["*.!(js)", ["foo.bar", "foo.", "boo.js.boo"] ]
-
- // https://github.com/isaacs/minimatch/issues/5
- , function () {
- files = [ 'a/b/.x/c'
- , 'a/b/.x/c/d'
- , 'a/b/.x/c/d/e'
- , 'a/b/.x'
- , 'a/b/.x/'
- , 'a/.x/b'
- , '.x'
- , '.x/'
- , '.x/a'
- , '.x/a/b'
- , 'a/.x/b/.x/c'
- , '.x/.x' ]
- }
- , ["**/.x/**", [ '.x/'
- , '.x/a'
- , '.x/a/b'
- , 'a/.x/b'
- , 'a/b/.x/'
- , 'a/b/.x/c'
- , 'a/b/.x/c/d'
- , 'a/b/.x/c/d/e' ] ]
-
- ]
-
-var regexps =
- [ '/^(?:(?=.)a[^/]*?)$/',
- '/^(?:(?=.)X[^/]*?)$/',
- '/^(?:(?=.)X[^/]*?)$/',
- '/^(?:\\*)$/',
- '/^(?:(?=.)\\*[^/]*?)$/',
- '/^(?:\\*\\*)$/',
- '/^(?:(?=.)b[^/]*?\\/)$/',
- '/^(?:(?=.)c[^/]*?)$/',
- '/^(?:(?:(?!(?:\\/|^)\\.).)*?)$/',
- '/^(?:\\.\\.\\/(?!\\.)(?=.)[^/]*?\\/)$/',
- '/^(?:s\\/(?=.)\\.\\.[^/]*?\\/)$/',
- '/^(?:\\/\\^root:\\/\\{s\\/(?=.)\\^[^:][^/]*?:[^:][^/]*?:\\([^:]\\)[^/]*?\\.[^/]*?\\$\\/1\\/)$/',
- '/^(?:\\/\\^root:\\/\\{s\\/(?=.)\\^[^:][^/]*?:[^:][^/]*?:\\([^:]\\)[^/]*?\\.[^/]*?\\$\\/\u0001\\/)$/',
- '/^(?:(?!\\.)(?=.)[a-c]b[^/]*?)$/',
- '/^(?:(?!\\.)(?=.)[a-y][^/]*?[^c])$/',
- '/^(?:(?=.)a[^/]*?[^c])$/',
- '/^(?:(?=.)a[X-]b)$/',
- '/^(?:(?!\\.)(?=.)[^a-c][^/]*?)$/',
- '/^(?:a\\*b\\/(?!\\.)(?=.)[^/]*?)$/',
- '/^(?:(?=.)a\\*[^/]\\/(?!\\.)(?=.)[^/]*?)$/',
- '/^(?:(?!\\.)(?=.)[^/]*?\\\\\\![^/]*?)$/',
- '/^(?:(?!\\.)(?=.)[^/]*?\\![^/]*?)$/',
- '/^(?:(?!\\.)(?=.)[^/]*?\\.\\*)$/',
- '/^(?:(?=.)a[b]c)$/',
- '/^(?:(?=.)a[b]c)$/',
- '/^(?:(?=.)a[^/]c)$/',
- '/^(?:a\\*c)$/',
- 'false',
- '/^(?:(?!\\.)(?=.)[^/]*?\\/(?=.)man[^/]*?\\/(?=.)bash\\.[^/]*?)$/',
- '/^(?:man\\/man1\\/bash\\.1)$/',
- '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?c)$/',
- '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]c)$/',
- '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/])$/',
- '/^(?:(?!\\.)(?=.)[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/])$/',
- '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]c)$/',
- '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?c)$/',
- '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/])$/',
- '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?)$/',
- '/^(?:(?!\\.)(?=.)[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?c)$/',
- '/^(?:(?!\\.)(?=.)[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/])$/',
- '/^(?:(?=.)a[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/]k)$/',
- '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/]k)$/',
- '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/]k[^/]*?[^/]*?[^/]*?)$/',
- '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/][^/]*?[^/]*?[^/]*?k)$/',
- '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/][^/]*?[^/]*?[^/]*?k[^/]*?[^/]*?)$/',
- '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?c[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?)$/',
- '/^(?:(?!\\.)(?=.)[-abc])$/',
- '/^(?:(?!\\.)(?=.)[abc-])$/',
- '/^(?:\\\\)$/',
- '/^(?:(?!\\.)(?=.)[\\\\])$/',
- '/^(?:(?!\\.)(?=.)[\\[])$/',
- '/^(?:\\[)$/',
- '/^(?:(?=.)\\[(?!\\.)(?=.)[^/]*?)$/',
- '/^(?:(?!\\.)(?=.)[\\]])$/',
- '/^(?:(?!\\.)(?=.)[\\]-])$/',
- '/^(?:(?!\\.)(?=.)[a-z])$/',
- '/^(?:(?!\\.)(?=.)[^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/])$/',
- '/^(?:(?!\\.)(?=.)[^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?c)$/',
- '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?c[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?)$/',
- '/^(?:(?!\\.)(?=.)[^/]*?c[^/]*?[^/][^/]*?[^/]*?)$/',
- '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?c[^/]*?[^/][^/]*?[^/]*?)$/',
- '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?)$/',
- '/^(?:\\[\\])$/',
- '/^(?:\\[abc)$/',
- '/^(?:(?=.)XYZ)$/i',
- '/^(?:(?=.)ab[^/]*?)$/i',
- '/^(?:(?!\\.)(?=.)[ia][^/][ck])$/i',
- '/^(?:\\/(?!\\.)(?=.)[^/]*?|(?!\\.)(?=.)[^/]*?)$/',
- '/^(?:\\/(?!\\.)(?=.)[^/]|(?!\\.)(?=.)[^/]*?)$/',
- '/^(?:(?:(?!(?:\\/|^)\\.).)*?)$/',
- '/^(?:a\\/(?!(?:^|\\/)\\.{1,2}(?:$|\\/))(?=.)[^/]*?\\/b)$/',
- '/^(?:a\\/(?=.)\\.[^/]*?\\/b)$/',
- '/^(?:a\\/(?!\\.)(?=.)[^/]*?\\/b)$/',
- '/^(?:a\\/(?=.)\\.[^/]*?\\/b)$/',
- '/^(?:(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?)$/',
- '/^(?:(?!\\.)(?=.)[^/]*?\\(a\\/b\\))$/',
- '/^(?:(?!\\.)(?=.)(?:a|b)*|(?!\\.)(?=.)(?:a|c)*)$/',
- '/^(?:(?=.)\\[(?=.)\\!a[^/]*?)$/',
- '/^(?:(?=.)\\[(?=.)#a[^/]*?)$/',
- '/^(?:(?=.)\\+\\(a\\|[^/]*?\\|c\\\\\\\\\\|d\\\\\\\\\\|e\\\\\\\\\\\\\\\\\\|f\\\\\\\\\\\\\\\\\\|g)$/',
- '/^(?:(?!\\.)(?=.)(?:a|b)*|(?!\\.)(?=.)(?:a|c)*)$/',
- '/^(?:a|(?!\\.)(?=.)[^/]*?\\(b\\|c|d\\))$/',
- '/^(?:a|(?!\\.)(?=.)(?:b|c)*|(?!\\.)(?=.)(?:b|d)*)$/',
- '/^(?:(?!\\.)(?=.)(?:a|b|c)*|(?!\\.)(?=.)(?:a|c)*)$/',
- '/^(?:(?!\\.)(?=.)[^/]*?\\(a\\|b\\|c\\)|(?!\\.)(?=.)[^/]*?\\(a\\|c\\))$/',
- '/^(?:(?=.)a[^/]b)$/',
- '/^(?:(?=.)#[^/]*?)$/',
- '/^(?!^(?:(?=.)a[^/]*?)$).*$/',
- '/^(?:(?=.)\\!a[^/]*?)$/',
- '/^(?:(?=.)a[^/]*?)$/',
- '/^(?!^(?:(?=.)\\!a[^/]*?)$).*$/',
- '/^(?:(?!\\.)(?=.)[^/]*?\\.(?:(?!js)[^/]*?))$/',
- '/^(?:(?:(?!(?:\\/|^)\\.).)*?\\/\\.x\\/(?:(?!(?:\\/|^)\\.).)*?)$/' ]
-var re = 0;
-
-tap.test("basic tests", function (t) {
- var start = Date.now()
-
- // [ pattern, [matches], MM opts, files, TAP opts]
- patterns.forEach(function (c) {
- if (typeof c === "function") return c()
- if (typeof c === "string") return t.comment(c)
-
- var pattern = c[0]
- , expect = c[1].sort(alpha)
- , options = c[2] || {}
- , f = c[3] || files
- , tapOpts = c[4] || {}
-
- // options.debug = true
- var m = new mm.Minimatch(pattern, options)
- var r = m.makeRe()
- var expectRe = regexps[re++]
- tapOpts.re = String(r) || JSON.stringify(r)
- tapOpts.files = JSON.stringify(f)
- tapOpts.pattern = pattern
- tapOpts.set = m.set
- tapOpts.negated = m.negate
-
- var actual = mm.match(f, pattern, options)
- actual.sort(alpha)
-
- t.equivalent( actual, expect
- , JSON.stringify(pattern) + " " + JSON.stringify(expect)
- , tapOpts )
-
- t.equal(tapOpts.re, expectRe, tapOpts)
- })
-
- t.comment("time=" + (Date.now() - start) + "ms")
- t.end()
-})
-
-tap.test("global leak test", function (t) {
- var globalAfter = Object.keys(global)
- t.equivalent(globalAfter, globalBefore, "no new globals, please")
- t.end()
-})
-
-function alpha (a, b) {
- return a > b ? 1 : -1
-}
diff --git a/node_modules/mocha/node_modules/minimatch/test/brace-expand.js b/node_modules/mocha/node_modules/minimatch/test/brace-expand.js
deleted file mode 100644
index 7ee278a27..000000000
--- a/node_modules/mocha/node_modules/minimatch/test/brace-expand.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var tap = require("tap")
- , minimatch = require("../")
-
-tap.test("brace expansion", function (t) {
- // [ pattern, [expanded] ]
- ; [ [ "a{b,c{d,e},{f,g}h}x{y,z}"
- , [ "abxy"
- , "abxz"
- , "acdxy"
- , "acdxz"
- , "acexy"
- , "acexz"
- , "afhxy"
- , "afhxz"
- , "aghxy"
- , "aghxz" ] ]
- , [ "a{1..5}b"
- , [ "a1b"
- , "a2b"
- , "a3b"
- , "a4b"
- , "a5b" ] ]
- , [ "a{b}c", ["a{b}c"] ]
- ].forEach(function (tc) {
- var p = tc[0]
- , expect = tc[1]
- t.equivalent(minimatch.braceExpand(p), expect, p)
- })
- console.error("ending")
- t.end()
-})
-
-
diff --git a/node_modules/mocha/node_modules/minimatch/test/caching.js b/node_modules/mocha/node_modules/minimatch/test/caching.js
deleted file mode 100644
index 0fec4b0fa..000000000
--- a/node_modules/mocha/node_modules/minimatch/test/caching.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var Minimatch = require("../minimatch.js").Minimatch
-var tap = require("tap")
-tap.test("cache test", function (t) {
- var mm1 = new Minimatch("a?b")
- var mm2 = new Minimatch("a?b")
- t.equal(mm1, mm2, "should get the same object")
- // the lru should drop it after 100 entries
- for (var i = 0; i < 100; i ++) {
- new Minimatch("a"+i)
- }
- mm2 = new Minimatch("a?b")
- t.notEqual(mm1, mm2, "cache should have dropped")
- t.end()
-})
diff --git a/node_modules/mocha/node_modules/minimatch/test/defaults.js b/node_modules/mocha/node_modules/minimatch/test/defaults.js
deleted file mode 100644
index 75e05712d..000000000
--- a/node_modules/mocha/node_modules/minimatch/test/defaults.js
+++ /dev/null
@@ -1,274 +0,0 @@
-// http://www.bashcookbook.com/bashinfo/source/bash-1.14.7/tests/glob-test
-//
-// TODO: Some of these tests do very bad things with backslashes, and will
-// most likely fail badly on windows. They should probably be skipped.
-
-var tap = require("tap")
- , globalBefore = Object.keys(global)
- , mm = require("../")
- , files = [ "a", "b", "c", "d", "abc"
- , "abd", "abe", "bb", "bcd"
- , "ca", "cb", "dd", "de"
- , "bdir/", "bdir/cfile"]
- , next = files.concat([ "a-b", "aXb"
- , ".x", ".y" ])
-
-tap.test("basic tests", function (t) {
- var start = Date.now()
-
- // [ pattern, [matches], MM opts, files, TAP opts]
- ; [ "http://www.bashcookbook.com/bashinfo" +
- "/source/bash-1.14.7/tests/glob-test"
- , ["a*", ["a", "abc", "abd", "abe"]]
- , ["X*", ["X*"], {nonull: true}]
-
- // allow null glob expansion
- , ["X*", []]
-
- // isaacs: Slightly different than bash/sh/ksh
- // \\* is not un-escaped to literal "*" in a failed match,
- // but it does make it get treated as a literal star
- , ["\\*", ["\\*"], {nonull: true}]
- , ["\\**", ["\\**"], {nonull: true}]
- , ["\\*\\*", ["\\*\\*"], {nonull: true}]
-
- , ["b*/", ["bdir/"]]
- , ["c*", ["c", "ca", "cb"]]
- , ["**", files]
-
- , ["\\.\\./*/", ["\\.\\./*/"], {nonull: true}]
- , ["s/\\..*//", ["s/\\..*//"], {nonull: true}]
-
- , "legendary larry crashes bashes"
- , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/"
- , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/"], {nonull: true}]
- , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/"
- , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/"], {nonull: true}]
-
- , "character classes"
- , ["[a-c]b*", ["abc", "abd", "abe", "bb", "cb"]]
- , ["[a-y]*[^c]", ["abd", "abe", "bb", "bcd",
- "bdir/", "ca", "cb", "dd", "de"]]
- , ["a*[^c]", ["abd", "abe"]]
- , function () { files.push("a-b", "aXb") }
- , ["a[X-]b", ["a-b", "aXb"]]
- , function () { files.push(".x", ".y") }
- , ["[^a-c]*", ["d", "dd", "de"]]
- , function () { files.push("a*b/", "a*b/ooo") }
- , ["a\\*b/*", ["a*b/ooo"]]
- , ["a\\*?/*", ["a*b/ooo"]]
- , ["*\\\\!*", [], {null: true}, ["echo !7"]]
- , ["*\\!*", ["echo !7"], null, ["echo !7"]]
- , ["*.\\*", ["r.*"], null, ["r.*"]]
- , ["a[b]c", ["abc"]]
- , ["a[\\b]c", ["abc"]]
- , ["a?c", ["abc"]]
- , ["a\\*c", [], {null: true}, ["abc"]]
- , ["", [""], { null: true }, [""]]
-
- , "http://www.opensource.apple.com/source/bash/bash-23/" +
- "bash/tests/glob-test"
- , function () { files.push("man/", "man/man1/", "man/man1/bash.1") }
- , ["*/man*/bash.*", ["man/man1/bash.1"]]
- , ["man/man1/bash.1", ["man/man1/bash.1"]]
- , ["a***c", ["abc"], null, ["abc"]]
- , ["a*****?c", ["abc"], null, ["abc"]]
- , ["?*****??", ["abc"], null, ["abc"]]
- , ["*****??", ["abc"], null, ["abc"]]
- , ["?*****?c", ["abc"], null, ["abc"]]
- , ["?***?****c", ["abc"], null, ["abc"]]
- , ["?***?****?", ["abc"], null, ["abc"]]
- , ["?***?****", ["abc"], null, ["abc"]]
- , ["*******c", ["abc"], null, ["abc"]]
- , ["*******?", ["abc"], null, ["abc"]]
- , ["a*cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
- , ["a**?**cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
- , ["a**?**cd**?**??k***", ["abcdecdhjk"], null, ["abcdecdhjk"]]
- , ["a**?**cd**?**??***k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
- , ["a**?**cd**?**??***k**", ["abcdecdhjk"], null, ["abcdecdhjk"]]
- , ["a****c**?**??*****", ["abcdecdhjk"], null, ["abcdecdhjk"]]
- , ["[-abc]", ["-"], null, ["-"]]
- , ["[abc-]", ["-"], null, ["-"]]
- , ["\\", ["\\"], null, ["\\"]]
- , ["[\\\\]", ["\\"], null, ["\\"]]
- , ["[[]", ["["], null, ["["]]
- , ["[", ["["], null, ["["]]
- , ["[*", ["[abc"], null, ["[abc"]]
- , "a right bracket shall lose its special meaning and\n" +
- "represent itself in a bracket expression if it occurs\n" +
- "first in the list. -- POSIX.2 2.8.3.2"
- , ["[]]", ["]"], null, ["]"]]
- , ["[]-]", ["]"], null, ["]"]]
- , ["[a-\z]", ["p"], null, ["p"]]
- , ["??**********?****?", [], { null: true }, ["abc"]]
- , ["??**********?****c", [], { null: true }, ["abc"]]
- , ["?************c****?****", [], { null: true }, ["abc"]]
- , ["*c*?**", [], { null: true }, ["abc"]]
- , ["a*****c*?**", [], { null: true }, ["abc"]]
- , ["a********???*******", [], { null: true }, ["abc"]]
- , ["[]", [], { null: true }, ["a"]]
- , ["[abc", [], { null: true }, ["["]]
-
- , "nocase tests"
- , ["XYZ", ["xYz"], { nocase: true, null: true }
- , ["xYz", "ABC", "IjK"]]
- , ["ab*", ["ABC"], { nocase: true, null: true }
- , ["xYz", "ABC", "IjK"]]
- , ["[ia]?[ck]", ["ABC", "IjK"], { nocase: true, null: true }
- , ["xYz", "ABC", "IjK"]]
-
- // [ pattern, [matches], MM opts, files, TAP opts]
- , "onestar/twostar"
- , ["{/*,*}", [], {null: true}, ["/asdf/asdf/asdf"]]
- , ["{/?,*}", ["/a", "bb"], {null: true}
- , ["/a", "/b/b", "/a/b/c", "bb"]]
-
- , "dots should not match unless requested"
- , ["**", ["a/b"], {}, ["a/b", "a/.d", ".a/.d"]]
-
- // .. and . can only match patterns starting with .,
- // even when options.dot is set.
- , function () {
- files = ["a/./b", "a/../b", "a/c/b", "a/.d/b"]
- }
- , ["a/*/b", ["a/c/b", "a/.d/b"], {dot: true}]
- , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: true}]
- , ["a/*/b", ["a/c/b"], {dot:false}]
- , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: false}]
-
-
- // this also tests that changing the options needs
- // to change the cache key, even if the pattern is
- // the same!
- , ["**", ["a/b","a/.d",".a/.d"], { dot: true }
- , [ ".a/.d", "a/.d", "a/b"]]
-
- , "paren sets cannot contain slashes"
- , ["*(a/b)", ["*(a/b)"], {nonull: true}, ["a/b"]]
-
- // brace sets trump all else.
- //
- // invalid glob pattern. fails on bash4 and bsdglob.
- // however, in this implementation, it's easier just
- // to do the intuitive thing, and let brace-expansion
- // actually come before parsing any extglob patterns,
- // like the documentation seems to say.
- //
- // XXX: if anyone complains about this, either fix it
- // or tell them to grow up and stop complaining.
- //
- // bash/bsdglob says this:
- // , ["*(a|{b),c)}", ["*(a|{b),c)}"], {}, ["a", "ab", "ac", "ad"]]
- // but we do this instead:
- , ["*(a|{b),c)}", ["a", "ab", "ac"], {}, ["a", "ab", "ac", "ad"]]
-
- // test partial parsing in the presence of comment/negation chars
- , ["[!a*", ["[!ab"], {}, ["[!ab", "[ab"]]
- , ["[#a*", ["[#ab"], {}, ["[#ab", "[ab"]]
-
- // like: {a,b|c\\,d\\\|e} except it's unclosed, so it has to be escaped.
- , ["+(a|*\\|c\\\\|d\\\\\\|e\\\\\\\\|f\\\\\\\\\\|g"
- , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g"]
- , {}
- , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g", "a", "b\\c"]]
-
-
- // crazy nested {,,} and *(||) tests.
- , function () {
- files = [ "a", "b", "c", "d"
- , "ab", "ac", "ad"
- , "bc", "cb"
- , "bc,d", "c,db", "c,d"
- , "d)", "(b|c", "*(b|c"
- , "b|c", "b|cc", "cb|c"
- , "x(a|b|c)", "x(a|c)"
- , "(a|b|c)", "(a|c)"]
- }
- , ["*(a|{b,c})", ["a", "b", "c", "ab", "ac"]]
- , ["{a,*(b|c,d)}", ["a","(b|c", "*(b|c", "d)"]]
- // a
- // *(b|c)
- // *(b|d)
- , ["{a,*(b|{c,d})}", ["a","b", "bc", "cb", "c", "d"]]
- , ["*(a|{b|c,c})", ["a", "b", "c", "ab", "ac", "bc", "cb"]]
-
-
- // test various flag settings.
- , [ "*(a|{b|c,c})", ["x(a|b|c)", "x(a|c)", "(a|b|c)", "(a|c)"]
- , { noext: true } ]
- , ["a?b", ["x/y/acb", "acb/"], {matchBase: true}
- , ["x/y/acb", "acb/", "acb/d/e", "x/y/acb/d"] ]
- , ["#*", ["#a", "#b"], {nocomment: true}, ["#a", "#b", "c#d"]]
-
-
- // begin channelling Boole and deMorgan...
- , "negation tests"
- , function () {
- files = ["d", "e", "!ab", "!abc", "a!b", "\\!a"]
- }
-
- // anything that is NOT a* matches.
- , ["!a*", ["\\!a", "d", "e", "!ab", "!abc"]]
-
- // anything that IS !a* matches.
- , ["!a*", ["!ab", "!abc"], {nonegate: true}]
-
- // anything that IS a* matches
- , ["!!a*", ["a!b"]]
-
- // anything that is NOT !a* matches
- , ["!\\!a*", ["a!b", "d", "e", "\\!a"]]
-
- // negation nestled within a pattern
- , function () {
- files = [ "foo.js"
- , "foo.bar"
- // can't match this one without negative lookbehind.
- , "foo.js.js"
- , "blar.js"
- , "foo."
- , "boo.js.boo" ]
- }
- , ["*.!(js)", ["foo.bar", "foo.", "boo.js.boo"] ]
-
- ].forEach(function (c) {
- if (typeof c === "function") return c()
- if (typeof c === "string") return t.comment(c)
-
- var pattern = c[0]
- , expect = c[1].sort(alpha)
- , options = c[2]
- , f = c[3] || files
- , tapOpts = c[4] || {}
-
- // options.debug = true
- var Class = mm.defaults(options).Minimatch
- var m = new Class(pattern, {})
- var r = m.makeRe()
- tapOpts.re = String(r) || JSON.stringify(r)
- tapOpts.files = JSON.stringify(f)
- tapOpts.pattern = pattern
- tapOpts.set = m.set
- tapOpts.negated = m.negate
-
- var actual = mm.match(f, pattern, options)
- actual.sort(alpha)
-
- t.equivalent( actual, expect
- , JSON.stringify(pattern) + " " + JSON.stringify(expect)
- , tapOpts )
- })
-
- t.comment("time=" + (Date.now() - start) + "ms")
- t.end()
-})
-
-tap.test("global leak test", function (t) {
- var globalAfter = Object.keys(global)
- t.equivalent(globalAfter, globalBefore, "no new globals, please")
- t.end()
-})
-
-function alpha (a, b) {
- return a > b ? 1 : -1
-}
diff --git a/node_modules/mocha/node_modules/minimatch/test/extglob-ending-with-state-char.js b/node_modules/mocha/node_modules/minimatch/test/extglob-ending-with-state-char.js
deleted file mode 100644
index 6676e2629..000000000
--- a/node_modules/mocha/node_modules/minimatch/test/extglob-ending-with-state-char.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var test = require('tap').test
-var minimatch = require('../')
-
-test('extglob ending with statechar', function(t) {
- t.notOk(minimatch('ax', 'a?(b*)'))
- t.ok(minimatch('ax', '?(a*|b)'))
- t.end()
-})
diff --git a/node_modules/mocha/node_modules/ms/.npmignore b/node_modules/mocha/node_modules/ms/.npmignore
deleted file mode 100644
index d1aa0ce42..000000000
--- a/node_modules/mocha/node_modules/ms/.npmignore
+++ /dev/null
@@ -1,5 +0,0 @@
-node_modules
-test
-History.md
-Makefile
-component.json
diff --git a/node_modules/mocha/node_modules/ms/History.md b/node_modules/mocha/node_modules/ms/History.md
deleted file mode 100644
index 32fdfc176..000000000
--- a/node_modules/mocha/node_modules/ms/History.md
+++ /dev/null
@@ -1,66 +0,0 @@
-
-0.7.1 / 2015-04-20
-==================
-
- * prevent extraordinary long inputs (@evilpacket)
- * Fixed broken readme link
-
-0.7.0 / 2014-11-24
-==================
-
- * add time abbreviations, updated tests and readme for the new units
- * fix example in the readme.
- * add LICENSE file
-
-0.6.2 / 2013-12-05
-==================
-
- * Adding repository section to package.json to suppress warning from NPM.
-
-0.6.1 / 2013-05-10
-==================
-
- * fix singularization [visionmedia]
-
-0.6.0 / 2013-03-15
-==================
-
- * fix minutes
-
-0.5.1 / 2013-02-24
-==================
-
- * add component namespace
-
-0.5.0 / 2012-11-09
-==================
-
- * add short formatting as default and .long option
- * add .license property to component.json
- * add version to component.json
-
-0.4.0 / 2012-10-22
-==================
-
- * add rounding to fix crazy decimals
-
-0.3.0 / 2012-09-07
-==================
-
- * fix `ms(<String>)` [visionmedia]
-
-0.2.0 / 2012-09-03
-==================
-
- * add component.json [visionmedia]
- * add days support [visionmedia]
- * add hours support [visionmedia]
- * add minutes support [visionmedia]
- * add seconds support [visionmedia]
- * add ms string support [visionmedia]
- * refactor tests to facilitate ms(number) [visionmedia]
-
-0.1.0 / 2012-03-07
-==================
-
- * Initial release
diff --git a/node_modules/mocha/node_modules/ms/LICENSE b/node_modules/mocha/node_modules/ms/LICENSE
deleted file mode 100644
index 6c07561b6..000000000
--- a/node_modules/mocha/node_modules/ms/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2014 Guillermo Rauch <rauchg@gmail.com>
-
-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.
diff --git a/node_modules/mocha/node_modules/ms/README.md b/node_modules/mocha/node_modules/ms/README.md
deleted file mode 100644
index 9b4fd0358..000000000
--- a/node_modules/mocha/node_modules/ms/README.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# ms.js: miliseconds conversion utility
-
-```js
-ms('2 days') // 172800000
-ms('1d') // 86400000
-ms('10h') // 36000000
-ms('2.5 hrs') // 9000000
-ms('2h') // 7200000
-ms('1m') // 60000
-ms('5s') // 5000
-ms('100') // 100
-```
-
-```js
-ms(60000) // "1m"
-ms(2 * 60000) // "2m"
-ms(ms('10 hours')) // "10h"
-```
-
-```js
-ms(60000, { long: true }) // "1 minute"
-ms(2 * 60000, { long: true }) // "2 minutes"
-ms(ms('10 hours'), { long: true }) // "10 hours"
-```
-
-- Node/Browser compatible. Published as [`ms`](https://www.npmjs.org/package/ms) in [NPM](http://nodejs.org/download).
-- If a number is supplied to `ms`, a string with a unit is returned.
-- If a string that contains the number is supplied, it returns it as
-a number (e.g: it returns `100` for `'100'`).
-- If you pass a string with a number and a valid unit, the number of
-equivalent ms is returned.
-
-## License
-
-MIT
diff --git a/node_modules/mocha/node_modules/ms/index.js b/node_modules/mocha/node_modules/ms/index.js
deleted file mode 100644
index 4f9277169..000000000
--- a/node_modules/mocha/node_modules/ms/index.js
+++ /dev/null
@@ -1,125 +0,0 @@
-/**
- * Helpers.
- */
-
-var s = 1000;
-var m = s * 60;
-var h = m * 60;
-var d = h * 24;
-var y = d * 365.25;
-
-/**
- * Parse or format the given `val`.
- *
- * Options:
- *
- * - `long` verbose formatting [false]
- *
- * @param {String|Number} val
- * @param {Object} options
- * @return {String|Number}
- * @api public
- */
-
-module.exports = function(val, options){
- options = options || {};
- if ('string' == typeof val) return parse(val);
- return options.long
- ? long(val)
- : short(val);
-};
-
-/**
- * Parse the given `str` and return milliseconds.
- *
- * @param {String} str
- * @return {Number}
- * @api private
- */
-
-function parse(str) {
- str = '' + str;
- if (str.length > 10000) return;
- var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);
- if (!match) return;
- var n = parseFloat(match[1]);
- var type = (match[2] || 'ms').toLowerCase();
- switch (type) {
- case 'years':
- case 'year':
- case 'yrs':
- case 'yr':
- case 'y':
- return n * y;
- case 'days':
- case 'day':
- case 'd':
- return n * d;
- case 'hours':
- case 'hour':
- case 'hrs':
- case 'hr':
- case 'h':
- return n * h;
- case 'minutes':
- case 'minute':
- case 'mins':
- case 'min':
- case 'm':
- return n * m;
- case 'seconds':
- case 'second':
- case 'secs':
- case 'sec':
- case 's':
- return n * s;
- case 'milliseconds':
- case 'millisecond':
- case 'msecs':
- case 'msec':
- case 'ms':
- return n;
- }
-}
-
-/**
- * Short format for `ms`.
- *
- * @param {Number} ms
- * @return {String}
- * @api private
- */
-
-function short(ms) {
- if (ms >= d) return Math.round(ms / d) + 'd';
- if (ms >= h) return Math.round(ms / h) + 'h';
- if (ms >= m) return Math.round(ms / m) + 'm';
- if (ms >= s) return Math.round(ms / s) + 's';
- return ms + 'ms';
-}
-
-/**
- * Long format for `ms`.
- *
- * @param {Number} ms
- * @return {String}
- * @api private
- */
-
-function long(ms) {
- return plural(ms, d, 'day')
- || plural(ms, h, 'hour')
- || plural(ms, m, 'minute')
- || plural(ms, s, 'second')
- || ms + ' ms';
-}
-
-/**
- * Pluralization helper.
- */
-
-function plural(ms, n, name) {
- if (ms < n) return;
- if (ms < n * 1.5) return Math.floor(ms / n) + ' ' + name;
- return Math.ceil(ms / n) + ' ' + name + 's';
-}
diff --git a/node_modules/mocha/node_modules/ms/package.json b/node_modules/mocha/node_modules/ms/package.json
deleted file mode 100644
index a4e5bb603..000000000
--- a/node_modules/mocha/node_modules/ms/package.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "name": "ms",
- "version": "0.7.1",
- "description": "Tiny ms conversion utility",
- "repository": {
- "type": "git",
- "url": "git://github.com/guille/ms.js.git"
- },
- "main": "./index",
- "devDependencies": {
- "mocha": "*",
- "expect.js": "*",
- "serve": "*"
- },
- "component": {
- "scripts": {
- "ms/index.js": "index.js"
- }
- }
-}
diff --git a/node_modules/mocha/node_modules/supports-color/cli.js b/node_modules/mocha/node_modules/supports-color/cli.js
deleted file mode 100755
index e74698766..000000000
--- a/node_modules/mocha/node_modules/supports-color/cli.js
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env node
-'use strict';
-var pkg = require('./package.json');
-var supportsColor = require('./');
-var argv = process.argv.slice(2);
-
-function help() {
- console.log([
- '',
- ' ' + pkg.description,
- '',
- ' Usage',
- ' supports-color',
- '',
- ' Exits with code 0 if color is supported and 1 if not'
- ].join('\n'));
-}
-
-if (argv.indexOf('--help') !== -1) {
- help();
- return;
-}
-
-if (argv.indexOf('--version') !== -1) {
- console.log(pkg.version);
- return;
-}
-
-process.exit(supportsColor ? 0 : 1);
diff --git a/node_modules/mocha/node_modules/supports-color/index.js b/node_modules/mocha/node_modules/supports-color/index.js
deleted file mode 100644
index a2b978450..000000000
--- a/node_modules/mocha/node_modules/supports-color/index.js
+++ /dev/null
@@ -1,39 +0,0 @@
-'use strict';
-var argv = process.argv;
-
-module.exports = (function () {
- if (argv.indexOf('--no-color') !== -1 ||
- argv.indexOf('--no-colors') !== -1 ||
- argv.indexOf('--color=false') !== -1) {
- return false;
- }
-
- if (argv.indexOf('--color') !== -1 ||
- argv.indexOf('--colors') !== -1 ||
- argv.indexOf('--color=true') !== -1 ||
- argv.indexOf('--color=always') !== -1) {
- return true;
- }
-
- if (process.stdout && !process.stdout.isTTY) {
- return false;
- }
-
- if (process.platform === 'win32') {
- return true;
- }
-
- if ('COLORTERM' in process.env) {
- return true;
- }
-
- if (process.env.TERM === 'dumb') {
- return false;
- }
-
- if (/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(process.env.TERM)) {
- return true;
- }
-
- return false;
-})();
diff --git a/node_modules/mocha/node_modules/supports-color/package.json b/node_modules/mocha/node_modules/supports-color/package.json
deleted file mode 100644
index 7f72e762a..000000000
--- a/node_modules/mocha/node_modules/supports-color/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "name": "supports-color",
- "version": "1.2.0",
- "description": "Detect whether a terminal supports color",
- "license": "MIT",
- "repository": "sindresorhus/supports-color",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "http://sindresorhus.com"
- },
- "bin": {
- "supports-color": "cli.js"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "files": [
- "index.js",
- "cli.js"
- ],
- "keywords": [
- "cli",
- "bin",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "cli",
- "ansi",
- "styles",
- "tty",
- "rgb",
- "256",
- "shell",
- "xterm",
- "command-line",
- "support",
- "supports",
- "capability",
- "detect"
- ],
- "devDependencies": {
- "mocha": "*",
- "require-uncached": "^1.0.2"
- }
-}
diff --git a/node_modules/mocha/node_modules/supports-color/readme.md b/node_modules/mocha/node_modules/supports-color/readme.md
deleted file mode 100644
index 32d4f46e9..000000000
--- a/node_modules/mocha/node_modules/supports-color/readme.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# supports-color [![Build Status](https://travis-ci.org/sindresorhus/supports-color.svg?branch=master)](https://travis-ci.org/sindresorhus/supports-color)
-
-> Detect whether a terminal supports color
-
-
-## Install
-
-```sh
-$ npm install --save supports-color
-```
-
-
-## Usage
-
-```js
-var supportsColor = require('supports-color');
-
-if (supportsColor) {
- console.log('Terminal supports color');
-}
-```
-
-It obeys the `--color` and `--no-color` CLI flags.
-
-
-## CLI
-
-```sh
-$ npm install --global supports-color
-```
-
-```
-$ supports-color --help
-
- Usage
- supports-color
-
- Exits with code 0 if color is supported and 1 if not
-```
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/mocha/package.json b/node_modules/mocha/package.json
deleted file mode 100644
index 0aed134ac..000000000
--- a/node_modules/mocha/package.json
+++ /dev/null
@@ -1,374 +0,0 @@
-{
- "name": "mocha",
- "version": "2.5.3",
- "description": "simple, flexible, fun test framework",
- "keywords": [
- "mocha",
- "test",
- "bdd",
- "tdd",
- "tap"
- ],
- "author": "TJ Holowaychuk <tj@vision-media.ca>",
- "contributors": [
- "TJ Holowaychuk <tj@vision-media.ca>",
- "Travis Jeffery <tj@travisjeffery.com>",
- "Christopher Hiller <boneskull@boneskull.com>",
- "Daniel St. Jules <danielst.jules@gmail.com>",
- "Joshua Appelman <jappelman@xebia.com>",
- "David da Silva Contín <dasilvacontin@gmail.com>",
- "Guillermo Rauch <rauchg@gmail.com>",
- "Ariel Mashraki <ariel@mashraki.co.il>",
- "Attila Domokos <adomokos@gmail.com>",
- "John Firebaugh <john.firebaugh@gmail.com>",
- "Jo Liss <joliss42@gmail.com>",
- "Nathan Rajlich <nathan@tootallnate.net>",
- "Nathan Houle <nathan@nathanhoule.com>",
- "Mike Pennisi <mike@mikepennisi.com>",
- "James Carr <james.r.carr@gmail.com>",
- "Brendan Nee <brendan.nee@gmail.com>",
- "Glen Mailer <glenjamin@gmail.com>",
- "Mislav Marohnić <mislav.marohnic@gmail.com>",
- "Aaron Heckmann <aaron.heckmann+github@gmail.com>",
- "Ryunosuke SATO <tricknotes.rs@gmail.com>",
- "Jonathan Ong <jonathanrichardong@gmail.com>",
- "Joshua Krall <joshuakrall@pobox.com>",
- "Maximilian Antoni <mail@maxantoni.de>",
- "hokaccha <k.hokamura@gmail.com>",
- "Domenic Denicola <domenic@domenicdenicola.com>",
- "Forbes Lindesay <forbes@lindesay.co.uk>",
- "Raynos <raynos2@gmail.com>",
- "Xavier Antoviaque <xavier@antoviaque.org>",
- "Andreas Lind Petersen <andreas@one.com>",
- "Ben Lindsey <ben.lindsey@vungle.com>",
- "Mathieu Desvé <mathieudesve@MacBook-Pro-de-Mathieu.local>",
- "Fredrik Enestad <fredrik@devloop.se>",
- "Rico Sta. Cruz <rstacruz@users.noreply.github.com>",
- "Paul Miller <paul@paulmillr.com>",
- "Ben Bradley <ben@bradleyit.com>",
- "fool2fish <fool2fish@gmail.com>",
- "Cory Thomas <cory.thomas@bazaarvoice.com>",
- "Sune Simonsen <sune@we-knowhow.dk>",
- "Michael Demmer <demmer@jut.io>",
- "Tyson Tate <tyson@tysontate.com>",
- "eiji.ienaga <eiji.ienaga@gmail.com>",
- "Valentin Agachi <github-com@agachi.name>",
- "Sindre Sorhus <sindresorhus@gmail.com>",
- "Merrick Christensen <merrick.christensen@gmail.com>",
- "Wil Moore III <wil.moore@wilmoore.com>",
- "Nathan Bowser <nathan.bowser@spiderstrategies.com>",
- "Jesse Dailey <jesse.dailey@gmail.com>",
- "Benjie Gillam <benjie@jemjie.com>",
- "Vlad Magdalin <vlad@webflow.com>",
- "David Henderson <david.henderson@triggeredmessaging.com>",
- "Long Ho <longho@yahoo-inc.com>",
- "Adam Gruber <talknmime@gmail.com>",
- "Sean Lang <slang800@gmail.com>",
- "Shawn Krisman <telaviv@github>",
- "Simon Gaeremynck <gaeremyncks@gmail.com>",
- "John Reeves <github@jonnyreeves.co.uk>",
- "Soel <shachar.soel@sap.com>",
- "Buck Doyle <b@chromatin.ca>",
- "Max Goodman <c@chromakode.com>",
- "Jonas Westerlund <jonas.westerlund@me.com>",
- "Michael Riley <michael.riley@autodesk.com>",
- "Ian Storm Taylor <ian@ianstormtaylor.com>",
- "Timo Tijhof <krinklemail@gmail.com>",
- "Ian W. Remmel <design@ianwremmel.com>",
- "Tobias Bieniek <tobias.bieniek@gmail.com>",
- "Arian Stolwijk <arian@aryweb.nl>",
- "Nathan Alderson <nathan.alderson@adtran.com>",
- "Brian Beck <exogen@gmail.com>",
- "Dominique Quatravaux <dominique@quatravaux.org>",
- "Xavier Damman <xdamman@gmail.com>",
- "Benjamin Eidelman <beneidel@gmail.com>",
- "Outsider <outsideris@gmail.com>",
- "fcrisci <fabio.crisci@amadeus.com>",
- "FARKAS Máté <mate.farkas@virtual-call-center.eu>",
- "Parker Moore <parkrmoore@gmail.com>",
- "Paul Armstrong <paul@paularmstrongdesigns.com>",
- "jsdevel <js.developer.undefined@gmail.com>",
- "Justin DuJardin <justin.dujardin@sococo.com>",
- "Juzer Ali <er.juzerali@gmail.com>",
- "Jacob Wejendorp <jacob@wejendorp.dk>",
- "monowerker <monowerker@gmail.com>",
- "Alexander Early <alexander.early@gmail.com>",
- "Quang Van <quangvvv@gmail.com>",
- "Quanlong He <kyan.ql.he@gmail.com>",
- "James Nylen <jnylen@gmail.com>",
- "Konstantin Käfer <github@kkaefer.com>",
- "Jordan Sexton <jordan@jordansexton.com>",
- "Josh Lory <josh.lory@code.org>",
- "Julien Wajsberg <felash@gmail.com>",
- "Jussi Virtanen <jussi.k.virtanen@gmail.com>",
- "Jérémie Astori <jeremie@astori.fr>",
- "Katie Gengler <katiegengler@gmail.com>",
- "Keith Cirkel <github@keithcirkel.co.uk>",
- "Kent C. Dodds <kent+github@doddsfamily.us>",
- "Kevin Burke <kev@inburke.com>",
- "Kevin Conway <kevinjacobconway@gmail.com>",
- "Kevin Kirsche <Kev.Kirsche+GitHub@gmail.com>",
- "Kirill Korolyov <kirill.korolyov@gmail.com>",
- "Koen Punt <koen@koenpunt.nl>",
- "Kris Rasmussen <kristopher.rasmussen@gmail.com>",
- "Kyle Mitchell <kyle@kemitchell.com>",
- "Laszlo Bacsi <lackac@lackac.hu>",
- "Liam Newman <bitwiseman@gmail.com>",
- "Linus Unnebäck <linus@folkdatorn.se>",
- "Maciej Małecki <maciej.malecki@notimplemented.org>",
- "Mal Graty <mal.graty@googlemail.com>",
- "Marc Kuo <kuomarc2@gmail.com>",
- "Marcello Bastea-Forte <marcello@cellosoft.com>",
- "Mark Banner <standard8@mozilla.com>",
- "Martin Marko <marcus@gratex.com>",
- "Matija Marohnić <matija.marohnic@gmail.com>",
- "Matt Robenolt <matt@ydekproductions.com>",
- "Matt Smith <matthewgarysmith@gmail.com>",
- "Matthew Shanley <matthewshanley@littlesecretsrecords.com>",
- "Mattias Tidlund <mattias.tidlund@learningwell.se>",
- "Michael Jackson <mjijackson@gmail.com>",
- "Michael Olson <mwolson@member.fsf.org>",
- "Michael Schoonmaker <michael.r.schoonmaker@gmail.com>",
- "Michal Charemza <michalcharemza@gmail.com>",
- "Moshe Kolodny <mkolodny@integralads.com>",
- "Nathan Black <nathan@nathanblack.org>",
- "Nick Fitzgerald <fitzgen@gmail.com>",
- "Nicolo Taddei <taddei.uk@gmail.com>",
- "Noshir Patel <nosh@blackpiano.com>",
- "OlegTsyba <oleg.tsyba.ua@gmail.com>",
- "Panu Horsmalahti <panu.horsmalahti@iki.fi>",
- "Pavel Zubkou <pavel.zubkou@gmail.com>",
- "Pete Hawkins <pete@petes-imac.frontinternal.net>",
- "Phil Sung <psung@dnanexus.com>",
- "Prayag Verma <prayag.verma@gmail.com>",
- "R56 <rviskus@gmail.com>",
- "Refael Ackermann <refael@empeeric.com>",
- "Richard Dingwall <rdingwall@gmail.com>",
- "Richard Knop <RichardKnop@users.noreply.github.com>",
- "Rob Raux <rraux@peachworks.com>",
- "Rob Wu <rob@robwu.nl>",
- "Robert Rossmann <rr.rossmann@me.com>",
- "Romain Prieto <romain.prieto@gmail.com>",
- "Roman Neuhauser <rneuhauser@suse.cz>",
- "Roman Shtylman <shtylman@gmail.com>",
- "Russ Bradberry <devdazed@me.com>",
- "Russell Munson <rmunson@github.com>",
- "Rustem Mustafin <mustafin@kt-labs.com>",
- "Ryan Hubbard <ryanmhubbard@gmail.com>",
- "Ryan Shaw <ryan.shaw@min.vc>",
- "Salehen Shovon Rahman <salehen.rahman@gmail.com>",
- "Sam Mussell <smussell@gmail.com>",
- "Sasha Koss <koss@nocorp.me>",
- "ScottFreeCode <ScottFreeCode@users.noreply.github.com>",
- "Seiya Konno <nulltask@gmail.com>",
- "Sergey Simonchik <sergey.simonchik@jetbrains.com>",
- "Sergio Santoro <santoro.srg@gmail.com>",
- "Shaine Hatch <shaine@squidtree.com>",
- "Simon Goumaz <simon@attentif.ch>",
- "Sorin Iclanzan <sorin@iclanzan.com>",
- "Standa Opichal <opichals@gmail.com>",
- "Stephen Mathieson <smath23@gmail.com>",
- "Steve Mason <stevem@brandwatch.com>",
- "Stewart Taylor <stewart.taylor1@gmail.com>",
- "Stone <baoshi.li@adleida.com>",
- "Tapiwa Kelvin <tapiwa@munzwa.tk>",
- "Teddy Zeenny <teddyzeenny@gmail.com>",
- "Thedark1337 <thedark1337@thedark1337.com>",
- "Tim Ehat <timehat@gmail.com>",
- "Tingan Ho <tingan87@gmail.com>",
- "Todd Agulnick <tagulnick@onjack.com>",
- "Tom Coquereau <tom@thau.me>",
- "Tom Hughes <tom@compton.nu>",
- "Vadim Nikitin <vnikiti@ncsu.edu>",
- "Victor Costan <costan@gmail.com>",
- "Will Langstroth <william.langstroth@gmail.com>",
- "Yanis Wang <yanis.wang@gmail.com>",
- "Yuest Wang <yuestwang@gmail.com>",
- "Zsolt Takács <zsolt@takacs.cc>",
- "abrkn <a@abrkn.com>",
- "airportyh <airportyh@gmail.com>",
- "amsul <reach@amsul.ca>",
- "badunk <baduncaduncan@gmail.com>",
- "claudyus <claudyus@HEX.(none)>",
- "fengmk2 <fengmk2@gmail.com>",
- "gaye <gaye@mozilla.com>",
- "gigadude <gigadude@users.noreply.github.com>",
- "grasGendarme <me@grasgendar.me>",
- "klaemo <klaemo@fastmail.fm>",
- "lakmeer <lakmeerkravid@gmail.com>",
- "lodr <salva@unoyunodiez.com>",
- "mrShturman <mrshturman@gmail.com>",
- "nexdrew <andrew.goode@nextraq.com>",
- "nishigori <Takuya_Nishigori@voyagegroup.com>",
- "omardelarosa <thedelarosa@gmail.com>",
- "qiuzuhui <qiuzuhui@users.noreply.github.com>",
- "ryym <ryym.64@gmail.com>",
- "samuel goldszmidt <samuel.goldszmidt@gmail.com>",
- "sebv <seb.vincent@gmail.com>",
- "slyg <syl.faucherand@gmail.com>",
- "startswithaj <jake.mc@icloud.com>",
- "tgautier@yahoo.com <tgautier@gmail.com>",
- "tmont <tommy.mont@gmail.com>",
- "traleig1 <darkphoenix739@gmail.com>",
- "vlad <iamvlad@gmail.com>",
- "wsw <wsw0108@gmail.com>",
- "yuitest <yuitest@cjhat.net>",
- "Aaron Hamid <aaron.hamid@gmail.com>",
- "zhiyelee <zhiyelee@gmail.com>",
- "Aaron Krause <aaronjkrause@gmail.com>",
- "Adam Crabtree <adam.crabtree@redrobotlabs.com>",
- "Adrian Ludwig <me@adrianludwig.pl>",
- "Ajay Kodali <ajay.kodali@citrix.com>",
- "Andreas Brekken <andreas@opuno.com>",
- "Andrew Nesbitt <andrewnez@gmail.com>",
- "Andrey Popp <8mayday@gmail.com>",
- "Andrii Shumada <eagleeyes91@gmail.com>",
- "Anis Safine <anis.safine.ext@francetv.fr>",
- "Arnaud Brousseau <arnaud.brousseau@gmail.com>",
- "Atsuya Takagi <asoftonight@gmail.com>",
- "Austin Birch <mraustinbirch@gmail.com>",
- "Ben Noordhuis <info@bnoordhuis.nl>",
- "Ben Vinegar <ben@benv.ca>",
- "Benoit Larroque <zeta.ben@gmail.com>",
- "Benoît Zugmeyer <bzugmeyer@gmail.com>",
- "Berker Peksag <berker.peksag@gmail.com>",
- "Bjørge Næss <bjoerge@origo.no>",
- "Brian Lalor <blalor@bravo5.org>",
- "Brian M. Carlson <brian.m.carlson@gmail.com>",
- "Brian Moore <guardbionic-github@yahoo.com>",
- "Bryan Donovan <bdondo@gmail.com>",
- "C. Scott Ananian <cscott@cscott.net>",
- "Casey Foster <casey@caseywebdev.com>",
- "Charles Lowell <cowboyd@frontside.io>",
- "Chris Buckley <chris@cmbuckley.co.uk>",
- "ChrisWren <cthewren@gmail.com>",
- "Connor Dunn <connorhd@gmail.com>",
- "Corey Butler <corey@coreybutler.com>",
- "Daniel Stockman <daniel.stockman@gmail.com>",
- "Dave McKenna <davemckenna01@gmail.com>",
- "Denis Bardadym <bardadymchik@gmail.com>",
- "Devin Weaver <suki@tritarget.org>",
- "Di Wu <dwu@palantir.com>",
- "Diogo Monteiro <diogo.gmt@gmail.com>",
- "Dmitry Shirokov <deadrunk@gmail.com>",
- "Dominic Barnes <dominic@dbarnes.info>",
- "Douglas Christopher Wilson <doug@somethingdoug.com>",
- "Duncan Beevers <duncan@dweebd.com>",
- "Fede Ramirez <i@2fd.me>",
- "Fedor Indutny <fedor.indutny@gmail.com>",
- "Florian Margaine <florian@margaine.com>",
- "Frederico Silva <frederico.silva@gmail.com>",
- "Fredrik Lindin <fredriklindin@gmail.com>",
- "Gabriel Silk <gabesilk@gmail.com>",
- "Gareth Murphy <gareth.cpm@gmail.com>",
- "Gavin Mogan <GavinM@airg.com>",
- "Giovanni Bassi <giggio@giggio.net>",
- "Glen Huang <curvedmark@gmail.com>",
- "Greg Perkins <gregperkins@alum.mit.edu>",
- "Guy Arye <arye.guy@gmail.com>",
- "Gyandeep Singh <gyandeeps@gmail.com>",
- "Harish <hyeluri@gmail.com>",
- "Harry Brundage <harry.brundage@gmail.com>",
- "Herman Junge <herman@geekli.st>",
- "Ian Young <ian.greenleaf@gmail.com>",
- "Ian Zamojc <ian@thesecretlocation.net>",
- "Ivan <ivan@kinvey.com>",
- "JP Bochi <jpbochi@gmail.com>",
- "Jaakko Salonen <jaakko.salonen@iki.fi>",
- "Jake Craige <james.craige@gmail.com>",
- "Jake Marsh <jakemmarsh@gmail.com>",
- "Jakub Nešetřil <jakub@apiary.io>",
- "James Bowes <jbowes@repl.ca>",
- "James G. Kim <jgkim@jayg.org>",
- "James Lal <james@lightsofapollo.com>",
- "Jan Kopriva <jan.kopriva@gooddata.com>",
- "Jason Barry <jay@jcbarry.com>",
- "Jason Lai <jason@getpebble.com>",
- "Javier Aranda <javierav@javierav.com>",
- "Jean Ponchon <gelule@gmail.com>",
- "Jeff Kunkle <jeff.kunkle@nearinfinity.com>",
- "Jeff Schilling <jeff.schilling@q2ebanking.com>",
- "Jeremy Martin <jmar777@gmail.com>",
- "Jimmy Cuadra <jimmy@jimmycuadra.com>",
- "Joao Moreno <mail@joaomoreno.com>",
- "Joey Cozza <joey@grow.com>",
- "John Doty <jrhdoty@gmail.com>",
- "Johnathon Sanders <outdooricon@gmail.com>",
- "Jonas Dohse <jonas@mbr-targeting.com>",
- "Jonathan Creamer <matrixhasyou2k4@gmail.com>",
- "Jonathan Delgado <jdelgado@rewip.com>",
- "Jonathan Kim <jkimbo@gmail.com>",
- "Jonathan Park <jpark@daptiv.com>"
- ],
- "license": "MIT",
- "repository": {
- "type": "git",
- "url": "git://github.com/mochajs/mocha.git"
- },
- "bin": {
- "mocha": "./bin/mocha",
- "_mocha": "./bin/_mocha"
- },
- "engines": {
- "node": ">= 0.8.x"
- },
- "scripts": {
- "test": "make test"
- },
- "dependencies": {
- "commander": "2.3.0",
- "debug": "2.2.0",
- "diff": "1.4.0",
- "escape-string-regexp": "1.0.2",
- "glob": "3.2.11",
- "growl": "1.9.2",
- "jade": "0.26.3",
- "mkdirp": "0.5.1",
- "supports-color": "1.2.0",
- "to-iso-string": "0.0.2"
- },
- "devDependencies": {
- "browser-stdout": "^1.2.0",
- "browserify": "^13.0.0",
- "coffee-script": "~1.8.0",
- "eslint": "^1.2.1",
- "expect.js": "^0.3.1",
- "karma": "^0.13.22",
- "karma-browserify": "^5.0.5",
- "karma-expect": "^1.1.2",
- "karma-no-mocha": "^2.0.0",
- "karma-phantomjs-launcher": "^0.2.3",
- "karma-sauce-launcher": "^1.0.0",
- "karma-spec-reporter": "0.0.26",
- "phantomjs": "1.9.8",
- "should": "~8.0.0",
- "through2": "~0.6.5",
- "watchify": "^3.7.0"
- },
- "files": [
- "bin",
- "images",
- "lib",
- "index.js",
- "mocha.css",
- "mocha.js",
- "LICENSE"
- ],
- "browser": {
- "debug": "./lib/browser/debug.js",
- "events": "./lib/browser/events.js",
- "tty": "./lib/browser/tty.js",
- "./index.js": "./browser-entry.js",
- "jade": false,
- "fs": false,
- "glob": false,
- "path": false,
- "supports-color": false
- },
- "licenses": [
- {
- "type": "MIT",
- "url": "https://raw.github.com/mochajs/mocha/master/LICENSE"
- }
- ]
-}
diff --git a/node_modules/ms/index.js b/node_modules/ms/index.js
index 6a522b16b..4f9277169 100644
--- a/node_modules/ms/index.js
+++ b/node_modules/ms/index.js
@@ -16,24 +16,17 @@ var y = d * 365.25;
* - `long` verbose formatting [false]
*
* @param {String|Number} val
- * @param {Object} [options]
- * @throws {Error} throw an error if val is not a non-empty string or a number
+ * @param {Object} options
* @return {String|Number}
* @api public
*/
-module.exports = function(val, options) {
+module.exports = function(val, options){
options = options || {};
- var type = typeof val;
- if (type === 'string' && val.length > 0) {
- return parse(val);
- } else if (type === 'number' && isNaN(val) === false) {
- return options.long ? fmtLong(val) : fmtShort(val);
- }
- throw new Error(
- 'val is not a non-empty string or a valid number. val=' +
- JSON.stringify(val)
- );
+ if ('string' == typeof val) return parse(val);
+ return options.long
+ ? long(val)
+ : short(val);
};
/**
@@ -45,16 +38,10 @@ module.exports = function(val, options) {
*/
function parse(str) {
- str = String(str);
- if (str.length > 100) {
- return;
- }
- var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
- str
- );
- if (!match) {
- return;
- }
+ str = '' + str;
+ if (str.length > 10000) return;
+ var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);
+ if (!match) return;
var n = parseFloat(match[1]);
var type = (match[2] || 'ms').toLowerCase();
switch (type) {
@@ -92,8 +79,6 @@ function parse(str) {
case 'msec':
case 'ms':
return n;
- default:
- return undefined;
}
}
@@ -105,19 +90,11 @@ function parse(str) {
* @api private
*/
-function fmtShort(ms) {
- if (ms >= d) {
- return Math.round(ms / d) + 'd';
- }
- if (ms >= h) {
- return Math.round(ms / h) + 'h';
- }
- if (ms >= m) {
- return Math.round(ms / m) + 'm';
- }
- if (ms >= s) {
- return Math.round(ms / s) + 's';
- }
+function short(ms) {
+ if (ms >= d) return Math.round(ms / d) + 'd';
+ if (ms >= h) return Math.round(ms / h) + 'h';
+ if (ms >= m) return Math.round(ms / m) + 'm';
+ if (ms >= s) return Math.round(ms / s) + 's';
return ms + 'ms';
}
@@ -129,12 +106,12 @@ function fmtShort(ms) {
* @api private
*/
-function fmtLong(ms) {
- return plural(ms, d, 'day') ||
- plural(ms, h, 'hour') ||
- plural(ms, m, 'minute') ||
- plural(ms, s, 'second') ||
- ms + ' ms';
+function long(ms) {
+ return plural(ms, d, 'day')
+ || plural(ms, h, 'hour')
+ || plural(ms, m, 'minute')
+ || plural(ms, s, 'second')
+ || ms + ' ms';
}
/**
@@ -142,11 +119,7 @@ function fmtLong(ms) {
*/
function plural(ms, n, name) {
- if (ms < n) {
- return;
- }
- if (ms < n * 1.5) {
- return Math.floor(ms / n) + ' ' + name;
- }
+ if (ms < n) return;
+ if (ms < n * 1.5) return Math.floor(ms / n) + ' ' + name;
return Math.ceil(ms / n) + ' ' + name + 's';
}
diff --git a/node_modules/ms/license.md b/node_modules/ms/license.md
deleted file mode 100644
index 69b61253a..000000000
--- a/node_modules/ms/license.md
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Zeit, Inc.
-
-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.
diff --git a/node_modules/ms/package.json b/node_modules/ms/package.json
index 6a31c81fa..a4e5bb603 100644
--- a/node_modules/ms/package.json
+++ b/node_modules/ms/package.json
@@ -1,37 +1,20 @@
{
"name": "ms",
- "version": "2.0.0",
- "description": "Tiny milisecond conversion utility",
- "repository": "zeit/ms",
+ "version": "0.7.1",
+ "description": "Tiny ms conversion utility",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/guille/ms.js.git"
+ },
"main": "./index",
- "files": [
- "index.js"
- ],
- "scripts": {
- "precommit": "lint-staged",
- "lint": "eslint lib/* bin/*",
- "test": "mocha tests.js"
+ "devDependencies": {
+ "mocha": "*",
+ "expect.js": "*",
+ "serve": "*"
},
- "eslintConfig": {
- "extends": "eslint:recommended",
- "env": {
- "node": true,
- "es6": true
+ "component": {
+ "scripts": {
+ "ms/index.js": "index.js"
}
- },
- "lint-staged": {
- "*.js": [
- "npm run lint",
- "prettier --single-quote --write",
- "git add"
- ]
- },
- "license": "MIT",
- "devDependencies": {
- "eslint": "3.19.0",
- "expect.js": "0.3.1",
- "husky": "0.13.3",
- "lint-staged": "3.4.1",
- "mocha": "3.4.1"
}
}
diff --git a/node_modules/ms/readme.md b/node_modules/ms/readme.md
deleted file mode 100644
index 84a9974cc..000000000
--- a/node_modules/ms/readme.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# ms
-
-[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms)
-[![Slack Channel](http://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/)
-
-Use this package to easily convert various time formats to milliseconds.
-
-## Examples
-
-```js
-ms('2 days') // 172800000
-ms('1d') // 86400000
-ms('10h') // 36000000
-ms('2.5 hrs') // 9000000
-ms('2h') // 7200000
-ms('1m') // 60000
-ms('5s') // 5000
-ms('1y') // 31557600000
-ms('100') // 100
-```
-
-### Convert from milliseconds
-
-```js
-ms(60000) // "1m"
-ms(2 * 60000) // "2m"
-ms(ms('10 hours')) // "10h"
-```
-
-### Time format written-out
-
-```js
-ms(60000, { long: true }) // "1 minute"
-ms(2 * 60000, { long: true }) // "2 minutes"
-ms(ms('10 hours'), { long: true }) // "10 hours"
-```
-
-## Features
-
-- Works both in [node](https://nodejs.org) and in the browser.
-- If a number is supplied to `ms`, a string with a unit is returned.
-- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`).
-- If you pass a string with a number and a valid unit, the number of equivalent ms is returned.
-
-## Caught a bug?
-
-1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device
-2. Link the package to the global module directory: `npm link`
-3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms!
-
-As always, you can run the tests using: `npm test`
diff --git a/node_modules/nomnom/node_modules/chalk/node_modules/.bin/strip-ansi b/node_modules/nomnom/node_modules/chalk/node_modules/.bin/strip-ansi
index f7646606c..fcd9d3a5f 120000
--- a/node_modules/nomnom/node_modules/chalk/node_modules/.bin/strip-ansi
+++ b/node_modules/nomnom/node_modules/chalk/node_modules/.bin/strip-ansi
@@ -1 +1 @@
-../../../strip-ansi/cli.js \ No newline at end of file
+../../../../../time-require/node_modules/strip-ansi/cli.js \ No newline at end of file
diff --git a/node_modules/nopt/.npmignore b/node_modules/nopt/.npmignore
deleted file mode 100644
index 3c3629e64..000000000
--- a/node_modules/nopt/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/node_modules/nopt/.travis.yml b/node_modules/nopt/.travis.yml
deleted file mode 100644
index 99f2bbf50..000000000
--- a/node_modules/nopt/.travis.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-language: node_js
-language: node_js
-node_js:
- - '0.8'
- - '0.10'
- - '0.12'
- - 'iojs'
-before_install:
- - npm install -g npm@latest
diff --git a/node_modules/nopt/LICENSE b/node_modules/nopt/LICENSE
deleted file mode 100644
index 19129e315..000000000
--- a/node_modules/nopt/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/nopt/README.md b/node_modules/nopt/README.md
deleted file mode 100644
index f21a4b31c..000000000
--- a/node_modules/nopt/README.md
+++ /dev/null
@@ -1,211 +0,0 @@
-If you want to write an option parser, and have it be good, there are
-two ways to do it. The Right Way, and the Wrong Way.
-
-The Wrong Way is to sit down and write an option parser. We've all done
-that.
-
-The Right Way is to write some complex configurable program with so many
-options that you hit the limit of your frustration just trying to
-manage them all, and defer it with duct-tape solutions until you see
-exactly to the core of the problem, and finally snap and write an
-awesome option parser.
-
-If you want to write an option parser, don't write an option parser.
-Write a package manager, or a source control system, or a service
-restarter, or an operating system. You probably won't end up with a
-good one of those, but if you don't give up, and you are relentless and
-diligent enough in your procrastination, you may just end up with a very
-nice option parser.
-
-## USAGE
-
- // my-program.js
- var nopt = require("nopt")
- , Stream = require("stream").Stream
- , path = require("path")
- , knownOpts = { "foo" : [String, null]
- , "bar" : [Stream, Number]
- , "baz" : path
- , "bloo" : [ "big", "medium", "small" ]
- , "flag" : Boolean
- , "pick" : Boolean
- , "many1" : [String, Array]
- , "many2" : [path]
- }
- , shortHands = { "foofoo" : ["--foo", "Mr. Foo"]
- , "b7" : ["--bar", "7"]
- , "m" : ["--bloo", "medium"]
- , "p" : ["--pick"]
- , "f" : ["--flag"]
- }
- // everything is optional.
- // knownOpts and shorthands default to {}
- // arg list defaults to process.argv
- // slice defaults to 2
- , parsed = nopt(knownOpts, shortHands, process.argv, 2)
- console.log(parsed)
-
-This would give you support for any of the following:
-
-```bash
-$ node my-program.js --foo "blerp" --no-flag
-{ "foo" : "blerp", "flag" : false }
-
-$ node my-program.js ---bar 7 --foo "Mr. Hand" --flag
-{ bar: 7, foo: "Mr. Hand", flag: true }
-
-$ node my-program.js --foo "blerp" -f -----p
-{ foo: "blerp", flag: true, pick: true }
-
-$ node my-program.js -fp --foofoo
-{ foo: "Mr. Foo", flag: true, pick: true }
-
-$ node my-program.js --foofoo -- -fp # -- stops the flag parsing.
-{ foo: "Mr. Foo", argv: { remain: ["-fp"] } }
-
-$ node my-program.js --blatzk -fp # unknown opts are ok.
-{ blatzk: true, flag: true, pick: true }
-
-$ node my-program.js --blatzk=1000 -fp # but you need to use = if they have a value
-{ blatzk: 1000, flag: true, pick: true }
-
-$ node my-program.js --no-blatzk -fp # unless they start with "no-"
-{ blatzk: false, flag: true, pick: true }
-
-$ node my-program.js --baz b/a/z # known paths are resolved.
-{ baz: "/Users/isaacs/b/a/z" }
-
-# if Array is one of the types, then it can take many
-# values, and will always be an array. The other types provided
-# specify what types are allowed in the list.
-
-$ node my-program.js --many1 5 --many1 null --many1 foo
-{ many1: ["5", "null", "foo"] }
-
-$ node my-program.js --many2 foo --many2 bar
-{ many2: ["/path/to/foo", "path/to/bar"] }
-```
-
-Read the tests at the bottom of `lib/nopt.js` for more examples of
-what this puppy can do.
-
-## Types
-
-The following types are supported, and defined on `nopt.typeDefs`
-
-* String: A normal string. No parsing is done.
-* path: A file system path. Gets resolved against cwd if not absolute.
-* url: A url. If it doesn't parse, it isn't accepted.
-* Number: Must be numeric.
-* Date: Must parse as a date. If it does, and `Date` is one of the options,
- then it will return a Date object, not a string.
-* Boolean: Must be either `true` or `false`. If an option is a boolean,
- then it does not need a value, and its presence will imply `true` as
- the value. To negate boolean flags, do `--no-whatever` or `--whatever
- false`
-* NaN: Means that the option is strictly not allowed. Any value will
- fail.
-* Stream: An object matching the "Stream" class in node. Valuable
- for use when validating programmatically. (npm uses this to let you
- supply any WriteStream on the `outfd` and `logfd` config options.)
-* Array: If `Array` is specified as one of the types, then the value
- will be parsed as a list of options. This means that multiple values
- can be specified, and that the value will always be an array.
-
-If a type is an array of values not on this list, then those are
-considered valid values. For instance, in the example above, the
-`--bloo` option can only be one of `"big"`, `"medium"`, or `"small"`,
-and any other value will be rejected.
-
-When parsing unknown fields, `"true"`, `"false"`, and `"null"` will be
-interpreted as their JavaScript equivalents.
-
-You can also mix types and values, or multiple types, in a list. For
-instance `{ blah: [Number, null] }` would allow a value to be set to
-either a Number or null. When types are ordered, this implies a
-preference, and the first type that can be used to properly interpret
-the value will be used.
-
-To define a new type, add it to `nopt.typeDefs`. Each item in that
-hash is an object with a `type` member and a `validate` method. The
-`type` member is an object that matches what goes in the type list. The
-`validate` method is a function that gets called with `validate(data,
-key, val)`. Validate methods should assign `data[key]` to the valid
-value of `val` if it can be handled properly, or return boolean
-`false` if it cannot.
-
-You can also call `nopt.clean(data, types, typeDefs)` to clean up a
-config object and remove its invalid properties.
-
-## Error Handling
-
-By default, nopt outputs a warning to standard error when invalid values for
-known options are found. You can change this behavior by assigning a method
-to `nopt.invalidHandler`. This method will be called with
-the offending `nopt.invalidHandler(key, val, types)`.
-
-If no `nopt.invalidHandler` is assigned, then it will console.error
-its whining. If it is assigned to boolean `false` then the warning is
-suppressed.
-
-## Abbreviations
-
-Yes, they are supported. If you define options like this:
-
-```javascript
-{ "foolhardyelephants" : Boolean
-, "pileofmonkeys" : Boolean }
-```
-
-Then this will work:
-
-```bash
-node program.js --foolhar --pil
-node program.js --no-f --pileofmon
-# etc.
-```
-
-## Shorthands
-
-Shorthands are a hash of shorter option names to a snippet of args that
-they expand to.
-
-If multiple one-character shorthands are all combined, and the
-combination does not unambiguously match any other option or shorthand,
-then they will be broken up into their constituent parts. For example:
-
-```json
-{ "s" : ["--loglevel", "silent"]
-, "g" : "--global"
-, "f" : "--force"
-, "p" : "--parseable"
-, "l" : "--long"
-}
-```
-
-```bash
-npm ls -sgflp
-# just like doing this:
-npm ls --loglevel silent --global --force --long --parseable
-```
-
-## The Rest of the args
-
-The config object returned by nopt is given a special member called
-`argv`, which is an object with the following fields:
-
-* `remain`: The remaining args after all the parsing has occurred.
-* `original`: The args as they originally appeared.
-* `cooked`: The args after flags and shorthands are expanded.
-
-## Slicing
-
-Node programs are called with more or less the exact argv as it appears
-in C land, after the v8 and node-specific options have been plucked off.
-As such, `argv[0]` is always `node` and `argv[1]` is always the
-JavaScript program being run.
-
-That's usually not very useful to you. So they're sliced off by
-default. If you want them, then you can pass in `0` as the last
-argument, or any other number that you'd like to slice off the start of
-the list.
diff --git a/node_modules/nopt/bin/nopt.js b/node_modules/nopt/bin/nopt.js
deleted file mode 100755
index 3232d4c57..000000000
--- a/node_modules/nopt/bin/nopt.js
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/env node
-var nopt = require("../lib/nopt")
- , path = require("path")
- , types = { num: Number
- , bool: Boolean
- , help: Boolean
- , list: Array
- , "num-list": [Number, Array]
- , "str-list": [String, Array]
- , "bool-list": [Boolean, Array]
- , str: String
- , clear: Boolean
- , config: Boolean
- , length: Number
- , file: path
- }
- , shorthands = { s: [ "--str", "astring" ]
- , b: [ "--bool" ]
- , nb: [ "--no-bool" ]
- , tft: [ "--bool-list", "--no-bool-list", "--bool-list", "true" ]
- , "?": ["--help"]
- , h: ["--help"]
- , H: ["--help"]
- , n: [ "--num", "125" ]
- , c: ["--config"]
- , l: ["--length"]
- , f: ["--file"]
- }
- , parsed = nopt( types
- , shorthands
- , process.argv
- , 2 )
-
-console.log("parsed", parsed)
-
-if (parsed.help) {
- console.log("")
- console.log("nopt cli tester")
- console.log("")
- console.log("types")
- console.log(Object.keys(types).map(function M (t) {
- var type = types[t]
- if (Array.isArray(type)) {
- return [t, type.map(function (type) { return type.name })]
- }
- return [t, type && type.name]
- }).reduce(function (s, i) {
- s[i[0]] = i[1]
- return s
- }, {}))
- console.log("")
- console.log("shorthands")
- console.log(shorthands)
-}
diff --git a/node_modules/nopt/examples/my-program.js b/node_modules/nopt/examples/my-program.js
deleted file mode 100755
index 142447e18..000000000
--- a/node_modules/nopt/examples/my-program.js
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/env node
-
-//process.env.DEBUG_NOPT = 1
-
-// my-program.js
-var nopt = require("../lib/nopt")
- , Stream = require("stream").Stream
- , path = require("path")
- , knownOpts = { "foo" : [String, null]
- , "bar" : [Stream, Number]
- , "baz" : path
- , "bloo" : [ "big", "medium", "small" ]
- , "flag" : Boolean
- , "pick" : Boolean
- }
- , shortHands = { "foofoo" : ["--foo", "Mr. Foo"]
- , "b7" : ["--bar", "7"]
- , "m" : ["--bloo", "medium"]
- , "p" : ["--pick"]
- , "f" : ["--flag", "true"]
- , "g" : ["--flag"]
- , "s" : "--flag"
- }
- // everything is optional.
- // knownOpts and shorthands default to {}
- // arg list defaults to process.argv
- // slice defaults to 2
- , parsed = nopt(knownOpts, shortHands, process.argv, 2)
-
-console.log("parsed =\n"+ require("util").inspect(parsed))
diff --git a/node_modules/nopt/lib/nopt.js b/node_modules/nopt/lib/nopt.js
deleted file mode 100644
index 97707e784..000000000
--- a/node_modules/nopt/lib/nopt.js
+++ /dev/null
@@ -1,415 +0,0 @@
-// info about each config option.
-
-var debug = process.env.DEBUG_NOPT || process.env.NOPT_DEBUG
- ? function () { console.error.apply(console, arguments) }
- : function () {}
-
-var url = require("url")
- , path = require("path")
- , Stream = require("stream").Stream
- , abbrev = require("abbrev")
-
-module.exports = exports = nopt
-exports.clean = clean
-
-exports.typeDefs =
- { String : { type: String, validate: validateString }
- , Boolean : { type: Boolean, validate: validateBoolean }
- , url : { type: url, validate: validateUrl }
- , Number : { type: Number, validate: validateNumber }
- , path : { type: path, validate: validatePath }
- , Stream : { type: Stream, validate: validateStream }
- , Date : { type: Date, validate: validateDate }
- }
-
-function nopt (types, shorthands, args, slice) {
- args = args || process.argv
- types = types || {}
- shorthands = shorthands || {}
- if (typeof slice !== "number") slice = 2
-
- debug(types, shorthands, args, slice)
-
- args = args.slice(slice)
- var data = {}
- , key
- , remain = []
- , cooked = args
- , original = args.slice(0)
-
- parse(args, data, remain, types, shorthands)
- // now data is full
- clean(data, types, exports.typeDefs)
- data.argv = {remain:remain,cooked:cooked,original:original}
- Object.defineProperty(data.argv, 'toString', { value: function () {
- return this.original.map(JSON.stringify).join(" ")
- }, enumerable: false })
- return data
-}
-
-function clean (data, types, typeDefs) {
- typeDefs = typeDefs || exports.typeDefs
- var remove = {}
- , typeDefault = [false, true, null, String, Array]
-
- Object.keys(data).forEach(function (k) {
- if (k === "argv") return
- var val = data[k]
- , isArray = Array.isArray(val)
- , type = types[k]
- if (!isArray) val = [val]
- if (!type) type = typeDefault
- if (type === Array) type = typeDefault.concat(Array)
- if (!Array.isArray(type)) type = [type]
-
- debug("val=%j", val)
- debug("types=", type)
- val = val.map(function (val) {
- // if it's an unknown value, then parse false/true/null/numbers/dates
- if (typeof val === "string") {
- debug("string %j", val)
- val = val.trim()
- if ((val === "null" && ~type.indexOf(null))
- || (val === "true" &&
- (~type.indexOf(true) || ~type.indexOf(Boolean)))
- || (val === "false" &&
- (~type.indexOf(false) || ~type.indexOf(Boolean)))) {
- val = JSON.parse(val)
- debug("jsonable %j", val)
- } else if (~type.indexOf(Number) && !isNaN(val)) {
- debug("convert to number", val)
- val = +val
- } else if (~type.indexOf(Date) && !isNaN(Date.parse(val))) {
- debug("convert to date", val)
- val = new Date(val)
- }
- }
-
- if (!types.hasOwnProperty(k)) {
- return val
- }
-
- // allow `--no-blah` to set 'blah' to null if null is allowed
- if (val === false && ~type.indexOf(null) &&
- !(~type.indexOf(false) || ~type.indexOf(Boolean))) {
- val = null
- }
-
- var d = {}
- d[k] = val
- debug("prevalidated val", d, val, types[k])
- if (!validate(d, k, val, types[k], typeDefs)) {
- if (exports.invalidHandler) {
- exports.invalidHandler(k, val, types[k], data)
- } else if (exports.invalidHandler !== false) {
- debug("invalid: "+k+"="+val, types[k])
- }
- return remove
- }
- debug("validated val", d, val, types[k])
- return d[k]
- }).filter(function (val) { return val !== remove })
-
- if (!val.length) delete data[k]
- else if (isArray) {
- debug(isArray, data[k], val)
- data[k] = val
- } else data[k] = val[0]
-
- debug("k=%s val=%j", k, val, data[k])
- })
-}
-
-function validateString (data, k, val) {
- data[k] = String(val)
-}
-
-function validatePath (data, k, val) {
- if (val === true) return false
- if (val === null) return true
-
- val = String(val)
- var homePattern = process.platform === 'win32' ? /^~(\/|\\)/ : /^~\//
- if (val.match(homePattern) && process.env.HOME) {
- val = path.resolve(process.env.HOME, val.substr(2))
- }
- data[k] = path.resolve(String(val))
- return true
-}
-
-function validateNumber (data, k, val) {
- debug("validate Number %j %j %j", k, val, isNaN(val))
- if (isNaN(val)) return false
- data[k] = +val
-}
-
-function validateDate (data, k, val) {
- debug("validate Date %j %j %j", k, val, Date.parse(val))
- var s = Date.parse(val)
- if (isNaN(s)) return false
- data[k] = new Date(val)
-}
-
-function validateBoolean (data, k, val) {
- if (val instanceof Boolean) val = val.valueOf()
- else if (typeof val === "string") {
- if (!isNaN(val)) val = !!(+val)
- else if (val === "null" || val === "false") val = false
- else val = true
- } else val = !!val
- data[k] = val
-}
-
-function validateUrl (data, k, val) {
- val = url.parse(String(val))
- if (!val.host) return false
- data[k] = val.href
-}
-
-function validateStream (data, k, val) {
- if (!(val instanceof Stream)) return false
- data[k] = val
-}
-
-function validate (data, k, val, type, typeDefs) {
- // arrays are lists of types.
- if (Array.isArray(type)) {
- for (var i = 0, l = type.length; i < l; i ++) {
- if (type[i] === Array) continue
- if (validate(data, k, val, type[i], typeDefs)) return true
- }
- delete data[k]
- return false
- }
-
- // an array of anything?
- if (type === Array) return true
-
- // NaN is poisonous. Means that something is not allowed.
- if (type !== type) {
- debug("Poison NaN", k, val, type)
- delete data[k]
- return false
- }
-
- // explicit list of values
- if (val === type) {
- debug("Explicitly allowed %j", val)
- // if (isArray) (data[k] = data[k] || []).push(val)
- // else data[k] = val
- data[k] = val
- return true
- }
-
- // now go through the list of typeDefs, validate against each one.
- var ok = false
- , types = Object.keys(typeDefs)
- for (var i = 0, l = types.length; i < l; i ++) {
- debug("test type %j %j %j", k, val, types[i])
- var t = typeDefs[types[i]]
- if (t &&
- ((type && type.name && t.type && t.type.name) ? (type.name === t.type.name) : (type === t.type))) {
- var d = {}
- ok = false !== t.validate(d, k, val)
- val = d[k]
- if (ok) {
- // if (isArray) (data[k] = data[k] || []).push(val)
- // else data[k] = val
- data[k] = val
- break
- }
- }
- }
- debug("OK? %j (%j %j %j)", ok, k, val, types[i])
-
- if (!ok) delete data[k]
- return ok
-}
-
-function parse (args, data, remain, types, shorthands) {
- debug("parse", args, data, remain)
-
- var key = null
- , abbrevs = abbrev(Object.keys(types))
- , shortAbbr = abbrev(Object.keys(shorthands))
-
- for (var i = 0; i < args.length; i ++) {
- var arg = args[i]
- debug("arg", arg)
-
- if (arg.match(/^-{2,}$/)) {
- // done with keys.
- // the rest are args.
- remain.push.apply(remain, args.slice(i + 1))
- args[i] = "--"
- break
- }
- var hadEq = false
- if (arg.charAt(0) === "-" && arg.length > 1) {
- if (arg.indexOf("=") !== -1) {
- hadEq = true
- var v = arg.split("=")
- arg = v.shift()
- v = v.join("=")
- args.splice.apply(args, [i, 1].concat([arg, v]))
- }
-
- // see if it's a shorthand
- // if so, splice and back up to re-parse it.
- var shRes = resolveShort(arg, shorthands, shortAbbr, abbrevs)
- debug("arg=%j shRes=%j", arg, shRes)
- if (shRes) {
- debug(arg, shRes)
- args.splice.apply(args, [i, 1].concat(shRes))
- if (arg !== shRes[0]) {
- i --
- continue
- }
- }
- arg = arg.replace(/^-+/, "")
- var no = null
- while (arg.toLowerCase().indexOf("no-") === 0) {
- no = !no
- arg = arg.substr(3)
- }
-
- if (abbrevs[arg]) arg = abbrevs[arg]
-
- var isArray = types[arg] === Array ||
- Array.isArray(types[arg]) && types[arg].indexOf(Array) !== -1
-
- // allow unknown things to be arrays if specified multiple times.
- if (!types.hasOwnProperty(arg) && data.hasOwnProperty(arg)) {
- if (!Array.isArray(data[arg]))
- data[arg] = [data[arg]]
- isArray = true
- }
-
- var val
- , la = args[i + 1]
-
- var isBool = typeof no === 'boolean' ||
- types[arg] === Boolean ||
- Array.isArray(types[arg]) && types[arg].indexOf(Boolean) !== -1 ||
- (typeof types[arg] === 'undefined' && !hadEq) ||
- (la === "false" &&
- (types[arg] === null ||
- Array.isArray(types[arg]) && ~types[arg].indexOf(null)))
-
- if (isBool) {
- // just set and move along
- val = !no
- // however, also support --bool true or --bool false
- if (la === "true" || la === "false") {
- val = JSON.parse(la)
- la = null
- if (no) val = !val
- i ++
- }
-
- // also support "foo":[Boolean, "bar"] and "--foo bar"
- if (Array.isArray(types[arg]) && la) {
- if (~types[arg].indexOf(la)) {
- // an explicit type
- val = la
- i ++
- } else if ( la === "null" && ~types[arg].indexOf(null) ) {
- // null allowed
- val = null
- i ++
- } else if ( !la.match(/^-{2,}[^-]/) &&
- !isNaN(la) &&
- ~types[arg].indexOf(Number) ) {
- // number
- val = +la
- i ++
- } else if ( !la.match(/^-[^-]/) && ~types[arg].indexOf(String) ) {
- // string
- val = la
- i ++
- }
- }
-
- if (isArray) (data[arg] = data[arg] || []).push(val)
- else data[arg] = val
-
- continue
- }
-
- if (types[arg] === String && la === undefined)
- la = ""
-
- if (la && la.match(/^-{2,}$/)) {
- la = undefined
- i --
- }
-
- val = la === undefined ? true : la
- if (isArray) (data[arg] = data[arg] || []).push(val)
- else data[arg] = val
-
- i ++
- continue
- }
- remain.push(arg)
- }
-}
-
-function resolveShort (arg, shorthands, shortAbbr, abbrevs) {
- // handle single-char shorthands glommed together, like
- // npm ls -glp, but only if there is one dash, and only if
- // all of the chars are single-char shorthands, and it's
- // not a match to some other abbrev.
- arg = arg.replace(/^-+/, '')
-
- // if it's an exact known option, then don't go any further
- if (abbrevs[arg] === arg)
- return null
-
- // if it's an exact known shortopt, same deal
- if (shorthands[arg]) {
- // make it an array, if it's a list of words
- if (shorthands[arg] && !Array.isArray(shorthands[arg]))
- shorthands[arg] = shorthands[arg].split(/\s+/)
-
- return shorthands[arg]
- }
-
- // first check to see if this arg is a set of single-char shorthands
- var singles = shorthands.___singles
- if (!singles) {
- singles = Object.keys(shorthands).filter(function (s) {
- return s.length === 1
- }).reduce(function (l,r) {
- l[r] = true
- return l
- }, {})
- shorthands.___singles = singles
- debug('shorthand singles', singles)
- }
-
- var chrs = arg.split("").filter(function (c) {
- return singles[c]
- })
-
- if (chrs.join("") === arg) return chrs.map(function (c) {
- return shorthands[c]
- }).reduce(function (l, r) {
- return l.concat(r)
- }, [])
-
-
- // if it's an arg abbrev, and not a literal shorthand, then prefer the arg
- if (abbrevs[arg] && !shorthands[arg])
- return null
-
- // if it's an abbr for a shorthand, then use that
- if (shortAbbr[arg])
- arg = shortAbbr[arg]
-
- // make it an array, if it's a list of words
- if (shorthands[arg] && !Array.isArray(shorthands[arg]))
- shorthands[arg] = shorthands[arg].split(/\s+/)
-
- return shorthands[arg]
-}
diff --git a/node_modules/nopt/package.json b/node_modules/nopt/package.json
deleted file mode 100644
index bb2745d63..000000000
--- a/node_modules/nopt/package.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "name": "nopt",
- "version": "3.0.6",
- "description": "Option parsing for Node, supporting types, shorthands, etc. Used by npm.",
- "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
- "main": "lib/nopt.js",
- "scripts": {
- "test": "tap test/*.js"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/npm/nopt.git"
- },
- "bin": "./bin/nopt.js",
- "license": "ISC",
- "dependencies": {
- "abbrev": "1"
- },
- "devDependencies": {
- "tap": "^1.2.0"
- }
-}
diff --git a/node_modules/nopt/test/basic.js b/node_modules/nopt/test/basic.js
deleted file mode 100644
index d399de920..000000000
--- a/node_modules/nopt/test/basic.js
+++ /dev/null
@@ -1,273 +0,0 @@
-var nopt = require("../")
- , test = require('tap').test
-
-
-test("passing a string results in a string", function (t) {
- var parsed = nopt({ key: String }, {}, ["--key", "myvalue"], 0)
- t.same(parsed.key, "myvalue")
- t.end()
-})
-
-// https://github.com/npm/nopt/issues/31
-test("Empty String results in empty string, not true", function (t) {
- var parsed = nopt({ empty: String }, {}, ["--empty"], 0)
- t.same(parsed.empty, "")
- t.end()
-})
-
-test("~ path is resolved to $HOME", function (t) {
- var path = require("path")
- if (!process.env.HOME) process.env.HOME = "/tmp"
- var parsed = nopt({key: path}, {}, ["--key=~/val"], 0)
- t.same(parsed.key, path.resolve(process.env.HOME, "val"))
- t.end()
-})
-
-// https://github.com/npm/nopt/issues/24
-test("Unknown options are not parsed as numbers", function (t) {
- var parsed = nopt({"parse-me": Number}, null, ['--leave-as-is=1.20', '--parse-me=1.20'], 0)
- t.equal(parsed['leave-as-is'], '1.20')
- t.equal(parsed['parse-me'], 1.2)
- t.end()
-});
-
-// https://github.com/npm/nopt/issues/48
-test("Check types based on name of type", function (t) {
- var parsed = nopt({"parse-me": {name: "Number"}}, null, ['--parse-me=1.20'], 0)
- t.equal(parsed['parse-me'], 1.2)
- t.end()
-})
-
-
-test("Missing types are not parsed", function (t) {
- var parsed = nopt({"parse-me": {}}, null, ['--parse-me=1.20'], 0)
- //should only contain argv
- t.equal(Object.keys(parsed).length, 1)
- t.end()
-})
-
-test("Types passed without a name are not parsed", function (t) {
- var parsed = nopt({"parse-me": {}}, {}, ['--parse-me=1.20'], 0)
- //should only contain argv
- t.equal(Object.keys(parsed).length, 1)
- t.end()
-})
-
-test("other tests", function (t) {
-
- var util = require("util")
- , Stream = require("stream")
- , path = require("path")
- , url = require("url")
-
- , shorthands =
- { s : ["--loglevel", "silent"]
- , d : ["--loglevel", "info"]
- , dd : ["--loglevel", "verbose"]
- , ddd : ["--loglevel", "silly"]
- , noreg : ["--no-registry"]
- , reg : ["--registry"]
- , "no-reg" : ["--no-registry"]
- , silent : ["--loglevel", "silent"]
- , verbose : ["--loglevel", "verbose"]
- , h : ["--usage"]
- , H : ["--usage"]
- , "?" : ["--usage"]
- , help : ["--usage"]
- , v : ["--version"]
- , f : ["--force"]
- , desc : ["--description"]
- , "no-desc" : ["--no-description"]
- , "local" : ["--no-global"]
- , l : ["--long"]
- , p : ["--parseable"]
- , porcelain : ["--parseable"]
- , g : ["--global"]
- }
-
- , types =
- { aoa: Array
- , nullstream: [null, Stream]
- , date: Date
- , str: String
- , browser : String
- , cache : path
- , color : ["always", Boolean]
- , depth : Number
- , description : Boolean
- , dev : Boolean
- , editor : path
- , force : Boolean
- , global : Boolean
- , globalconfig : path
- , group : [String, Number]
- , gzipbin : String
- , logfd : [Number, Stream]
- , loglevel : ["silent","win","error","warn","info","verbose","silly"]
- , long : Boolean
- , "node-version" : [false, String]
- , npaturl : url
- , npat : Boolean
- , "onload-script" : [false, String]
- , outfd : [Number, Stream]
- , parseable : Boolean
- , pre: Boolean
- , prefix: path
- , proxy : url
- , "rebuild-bundle" : Boolean
- , registry : url
- , searchopts : String
- , searchexclude: [null, String]
- , shell : path
- , t: [Array, String]
- , tag : String
- , tar : String
- , tmp : path
- , "unsafe-perm" : Boolean
- , usage : Boolean
- , user : String
- , username : String
- , userconfig : path
- , version : Boolean
- , viewer: path
- , _exit : Boolean
- , path: path
- }
-
- ; [["-v", {version:true}, []]
- ,["---v", {version:true}, []]
- ,["ls -s --no-reg connect -d",
- {loglevel:"info",registry:null},["ls","connect"]]
- ,["ls ---s foo",{loglevel:"silent"},["ls","foo"]]
- ,["ls --registry blargle", {}, ["ls"]]
- ,["--no-registry", {registry:null}, []]
- ,["--no-color true", {color:false}, []]
- ,["--no-color false", {color:true}, []]
- ,["--no-color", {color:false}, []]
- ,["--color false", {color:false}, []]
- ,["--color --logfd 7", {logfd:7,color:true}, []]
- ,["--color=true", {color:true}, []]
- ,["--logfd=10", {logfd:10}, []]
- ,["--tmp=/tmp -tar=gtar",{tmp:"/tmp",tar:"gtar"},[]]
- ,["--tmp=tmp -tar=gtar",
- {tmp:path.resolve(process.cwd(), "tmp"),tar:"gtar"},[]]
- ,["--logfd x", {}, []]
- ,["a -true -- -no-false", {true:true},["a","-no-false"]]
- ,["a -no-false", {false:false},["a"]]
- ,["a -no-no-true", {true:true}, ["a"]]
- ,["a -no-no-no-false", {false:false}, ["a"]]
- ,["---NO-no-No-no-no-no-nO-no-no"+
- "-No-no-no-no-no-no-no-no-no"+
- "-no-no-no-no-NO-NO-no-no-no-no-no-no"+
- "-no-body-can-do-the-boogaloo-like-I-do"
- ,{"body-can-do-the-boogaloo-like-I-do":false}, []]
- ,["we are -no-strangers-to-love "+
- "--you-know=the-rules --and=so-do-i "+
- "---im-thinking-of=a-full-commitment "+
- "--no-you-would-get-this-from-any-other-guy "+
- "--no-gonna-give-you-up "+
- "-no-gonna-let-you-down=true "+
- "--no-no-gonna-run-around false "+
- "--desert-you=false "+
- "--make-you-cry false "+
- "--no-tell-a-lie "+
- "--no-no-and-hurt-you false"
- ,{"strangers-to-love":false
- ,"you-know":"the-rules"
- ,"and":"so-do-i"
- ,"you-would-get-this-from-any-other-guy":false
- ,"gonna-give-you-up":false
- ,"gonna-let-you-down":false
- ,"gonna-run-around":false
- ,"desert-you":false
- ,"make-you-cry":false
- ,"tell-a-lie":false
- ,"and-hurt-you":false
- },["we", "are"]]
- ,["-t one -t two -t three"
- ,{t: ["one", "two", "three"]}
- ,[]]
- ,["-t one -t null -t three four five null"
- ,{t: ["one", "null", "three"]}
- ,["four", "five", "null"]]
- ,["-t foo"
- ,{t:["foo"]}
- ,[]]
- ,["--no-t"
- ,{t:["false"]}
- ,[]]
- ,["-no-no-t"
- ,{t:["true"]}
- ,[]]
- ,["-aoa one -aoa null -aoa 100"
- ,{aoa:["one", null, '100']}
- ,[]]
- ,["-str 100"
- ,{str:"100"}
- ,[]]
- ,["--color always"
- ,{color:"always"}
- ,[]]
- ,["--no-nullstream"
- ,{nullstream:null}
- ,[]]
- ,["--nullstream false"
- ,{nullstream:null}
- ,[]]
- ,["--notadate=2011-01-25"
- ,{notadate: "2011-01-25"}
- ,[]]
- ,["--date 2011-01-25"
- ,{date: new Date("2011-01-25")}
- ,[]]
- ,["-cl 1"
- ,{config: true, length: 1}
- ,[]
- ,{config: Boolean, length: Number, clear: Boolean}
- ,{c: "--config", l: "--length"}]
- ,["--acount bla"
- ,{"acount":true}
- ,["bla"]
- ,{account: Boolean, credentials: Boolean, options: String}
- ,{a:"--account", c:"--credentials",o:"--options"}]
- ,["--clear"
- ,{clear:true}
- ,[]
- ,{clear:Boolean,con:Boolean,len:Boolean,exp:Boolean,add:Boolean,rep:Boolean}
- ,{c:"--con",l:"--len",e:"--exp",a:"--add",r:"--rep"}]
- ,["--file -"
- ,{"file":"-"}
- ,[]
- ,{file:String}
- ,{}]
- ,["--file -"
- ,{"file":true}
- ,["-"]
- ,{file:Boolean}
- ,{}]
- ,["--path"
- ,{"path":null}
- ,[]]
- ,["--path ."
- ,{"path":process.cwd()}
- ,[]]
- ].forEach(function (test) {
- var argv = test[0].split(/\s+/)
- , opts = test[1]
- , rem = test[2]
- , actual = nopt(test[3] || types, test[4] || shorthands, argv, 0)
- , parsed = actual.argv
- delete actual.argv
- for (var i in opts) {
- var e = JSON.stringify(opts[i])
- , a = JSON.stringify(actual[i] === undefined ? null : actual[i])
- if (e && typeof e === "object") {
- t.deepEqual(e, a)
- } else {
- t.equal(e, a)
- }
- }
- t.deepEqual(rem, parsed.remain)
- })
- t.end()
-})
diff --git a/node_modules/on-finished/HISTORY.md b/node_modules/on-finished/HISTORY.md
deleted file mode 100644
index 98ff0e992..000000000
--- a/node_modules/on-finished/HISTORY.md
+++ /dev/null
@@ -1,88 +0,0 @@
-2.3.0 / 2015-05-26
-==================
-
- * Add defined behavior for HTTP `CONNECT` requests
- * Add defined behavior for HTTP `Upgrade` requests
- * deps: ee-first@1.1.1
-
-2.2.1 / 2015-04-22
-==================
-
- * Fix `isFinished(req)` when data buffered
-
-2.2.0 / 2014-12-22
-==================
-
- * Add message object to callback arguments
-
-2.1.1 / 2014-10-22
-==================
-
- * Fix handling of pipelined requests
-
-2.1.0 / 2014-08-16
-==================
-
- * Check if `socket` is detached
- * Return `undefined` for `isFinished` if state unknown
-
-2.0.0 / 2014-08-16
-==================
-
- * Add `isFinished` function
- * Move to `jshttp` organization
- * Remove support for plain socket argument
- * Rename to `on-finished`
- * Support both `req` and `res` as arguments
- * deps: ee-first@1.0.5
-
-1.2.2 / 2014-06-10
-==================
-
- * Reduce listeners added to emitters
- - avoids "event emitter leak" warnings when used multiple times on same request
-
-1.2.1 / 2014-06-08
-==================
-
- * Fix returned value when already finished
-
-1.2.0 / 2014-06-05
-==================
-
- * Call callback when called on already-finished socket
-
-1.1.4 / 2014-05-27
-==================
-
- * Support node.js 0.8
-
-1.1.3 / 2014-04-30
-==================
-
- * Make sure errors passed as instanceof `Error`
-
-1.1.2 / 2014-04-18
-==================
-
- * Default the `socket` to passed-in object
-
-1.1.1 / 2014-01-16
-==================
-
- * Rename module to `finished`
-
-1.1.0 / 2013-12-25
-==================
-
- * Call callback when called on already-errored socket
-
-1.0.1 / 2013-12-20
-==================
-
- * Actually pass the error to the callback
-
-1.0.0 / 2013-12-20
-==================
-
- * Initial release
diff --git a/node_modules/on-finished/LICENSE b/node_modules/on-finished/LICENSE
deleted file mode 100644
index 5931fd23e..000000000
--- a/node_modules/on-finished/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2013 Jonathan Ong <me@jongleberry.com>
-Copyright (c) 2014 Douglas Christopher Wilson <doug@somethingdoug.com>
-
-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.
diff --git a/node_modules/on-finished/README.md b/node_modules/on-finished/README.md
deleted file mode 100644
index a0e115744..000000000
--- a/node_modules/on-finished/README.md
+++ /dev/null
@@ -1,154 +0,0 @@
-# on-finished
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Node.js Version][node-version-image]][node-version-url]
-[![Build Status][travis-image]][travis-url]
-[![Test Coverage][coveralls-image]][coveralls-url]
-
-Execute a callback when a HTTP request closes, finishes, or errors.
-
-## Install
-
-```sh
-$ npm install on-finished
-```
-
-## API
-
-```js
-var onFinished = require('on-finished')
-```
-
-### onFinished(res, listener)
-
-Attach a listener to listen for the response to finish. The listener will
-be invoked only once when the response finished. If the response finished
-to an error, the first argument will contain the error. If the response
-has already finished, the listener will be invoked.
-
-Listening to the end of a response would be used to close things associated
-with the response, like open files.
-
-Listener is invoked as `listener(err, res)`.
-
-```js
-onFinished(res, function (err, res) {
- // clean up open fds, etc.
- // err contains the error is request error'd
-})
-```
-
-### onFinished(req, listener)
-
-Attach a listener to listen for the request to finish. The listener will
-be invoked only once when the request finished. If the request finished
-to an error, the first argument will contain the error. If the request
-has already finished, the listener will be invoked.
-
-Listening to the end of a request would be used to know when to continue
-after reading the data.
-
-Listener is invoked as `listener(err, req)`.
-
-```js
-var data = ''
-
-req.setEncoding('utf8')
-res.on('data', function (str) {
- data += str
-})
-
-onFinished(req, function (err, req) {
- // data is read unless there is err
-})
-```
-
-### onFinished.isFinished(res)
-
-Determine if `res` is already finished. This would be useful to check and
-not even start certain operations if the response has already finished.
-
-### onFinished.isFinished(req)
-
-Determine if `req` is already finished. This would be useful to check and
-not even start certain operations if the request has already finished.
-
-## Special Node.js requests
-
-### HTTP CONNECT method
-
-The meaning of the `CONNECT` method from RFC 7231, section 4.3.6:
-
-> The CONNECT method requests that the recipient establish a tunnel to
-> the destination origin server identified by the request-target and,
-> if successful, thereafter restrict its behavior to blind forwarding
-> of packets, in both directions, until the tunnel is closed. Tunnels
-> are commonly used to create an end-to-end virtual connection, through
-> one or more proxies, which can then be secured using TLS (Transport
-> Layer Security, [RFC5246]).
-
-In Node.js, these request objects come from the `'connect'` event on
-the HTTP server.
-
-When this module is used on a HTTP `CONNECT` request, the request is
-considered "finished" immediately, **due to limitations in the Node.js
-interface**. This means if the `CONNECT` request contains a request entity,
-the request will be considered "finished" even before it has been read.
-
-There is no such thing as a response object to a `CONNECT` request in
-Node.js, so there is no support for for one.
-
-### HTTP Upgrade request
-
-The meaning of the `Upgrade` header from RFC 7230, section 6.1:
-
-> The "Upgrade" header field is intended to provide a simple mechanism
-> for transitioning from HTTP/1.1 to some other protocol on the same
-> connection.
-
-In Node.js, these request objects come from the `'upgrade'` event on
-the HTTP server.
-
-When this module is used on a HTTP request with an `Upgrade` header, the
-request is considered "finished" immediately, **due to limitations in the
-Node.js interface**. This means if the `Upgrade` request contains a request
-entity, the request will be considered "finished" even before it has been
-read.
-
-There is no such thing as a response object to a `Upgrade` request in
-Node.js, so there is no support for for one.
-
-## Example
-
-The following code ensures that file descriptors are always closed
-once the response finishes.
-
-```js
-var destroy = require('destroy')
-var http = require('http')
-var onFinished = require('on-finished')
-
-http.createServer(function onRequest(req, res) {
- var stream = fs.createReadStream('package.json')
- stream.pipe(res)
- onFinished(res, function (err) {
- destroy(stream)
- })
-})
-```
-
-## License
-
-[MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/on-finished.svg
-[npm-url]: https://npmjs.org/package/on-finished
-[node-version-image]: https://img.shields.io/node/v/on-finished.svg
-[node-version-url]: http://nodejs.org/download/
-[travis-image]: https://img.shields.io/travis/jshttp/on-finished/master.svg
-[travis-url]: https://travis-ci.org/jshttp/on-finished
-[coveralls-image]: https://img.shields.io/coveralls/jshttp/on-finished/master.svg
-[coveralls-url]: https://coveralls.io/r/jshttp/on-finished?branch=master
-[downloads-image]: https://img.shields.io/npm/dm/on-finished.svg
-[downloads-url]: https://npmjs.org/package/on-finished
diff --git a/node_modules/on-finished/index.js b/node_modules/on-finished/index.js
deleted file mode 100644
index 9abd98f9d..000000000
--- a/node_modules/on-finished/index.js
+++ /dev/null
@@ -1,196 +0,0 @@
-/*!
- * on-finished
- * Copyright(c) 2013 Jonathan Ong
- * Copyright(c) 2014 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = onFinished
-module.exports.isFinished = isFinished
-
-/**
- * Module dependencies.
- * @private
- */
-
-var first = require('ee-first')
-
-/**
- * Variables.
- * @private
- */
-
-/* istanbul ignore next */
-var defer = typeof setImmediate === 'function'
- ? setImmediate
- : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) }
-
-/**
- * Invoke callback when the response has finished, useful for
- * cleaning up resources afterwards.
- *
- * @param {object} msg
- * @param {function} listener
- * @return {object}
- * @public
- */
-
-function onFinished(msg, listener) {
- if (isFinished(msg) !== false) {
- defer(listener, null, msg)
- return msg
- }
-
- // attach the listener to the message
- attachListener(msg, listener)
-
- return msg
-}
-
-/**
- * Determine if message is already finished.
- *
- * @param {object} msg
- * @return {boolean}
- * @public
- */
-
-function isFinished(msg) {
- var socket = msg.socket
-
- if (typeof msg.finished === 'boolean') {
- // OutgoingMessage
- return Boolean(msg.finished || (socket && !socket.writable))
- }
-
- if (typeof msg.complete === 'boolean') {
- // IncomingMessage
- return Boolean(msg.upgrade || !socket || !socket.readable || (msg.complete && !msg.readable))
- }
-
- // don't know
- return undefined
-}
-
-/**
- * Attach a finished listener to the message.
- *
- * @param {object} msg
- * @param {function} callback
- * @private
- */
-
-function attachFinishedListener(msg, callback) {
- var eeMsg
- var eeSocket
- var finished = false
-
- function onFinish(error) {
- eeMsg.cancel()
- eeSocket.cancel()
-
- finished = true
- callback(error)
- }
-
- // finished on first message event
- eeMsg = eeSocket = first([[msg, 'end', 'finish']], onFinish)
-
- function onSocket(socket) {
- // remove listener
- msg.removeListener('socket', onSocket)
-
- if (finished) return
- if (eeMsg !== eeSocket) return
-
- // finished on first socket event
- eeSocket = first([[socket, 'error', 'close']], onFinish)
- }
-
- if (msg.socket) {
- // socket already assigned
- onSocket(msg.socket)
- return
- }
-
- // wait for socket to be assigned
- msg.on('socket', onSocket)
-
- if (msg.socket === undefined) {
- // node.js 0.8 patch
- patchAssignSocket(msg, onSocket)
- }
-}
-
-/**
- * Attach the listener to the message.
- *
- * @param {object} msg
- * @return {function}
- * @private
- */
-
-function attachListener(msg, listener) {
- var attached = msg.__onFinished
-
- // create a private single listener with queue
- if (!attached || !attached.queue) {
- attached = msg.__onFinished = createListener(msg)
- attachFinishedListener(msg, attached)
- }
-
- attached.queue.push(listener)
-}
-
-/**
- * Create listener on message.
- *
- * @param {object} msg
- * @return {function}
- * @private
- */
-
-function createListener(msg) {
- function listener(err) {
- if (msg.__onFinished === listener) msg.__onFinished = null
- if (!listener.queue) return
-
- var queue = listener.queue
- listener.queue = null
-
- for (var i = 0; i < queue.length; i++) {
- queue[i](err, msg)
- }
- }
-
- listener.queue = []
-
- return listener
-}
-
-/**
- * Patch ServerResponse.prototype.assignSocket for node.js 0.8.
- *
- * @param {ServerResponse} res
- * @param {function} callback
- * @private
- */
-
-function patchAssignSocket(res, callback) {
- var assignSocket = res.assignSocket
-
- if (typeof assignSocket !== 'function') return
-
- // res.on('socket', callback) is broken in 0.8
- res.assignSocket = function _assignSocket(socket) {
- assignSocket.call(this, socket)
- callback(socket)
- }
-}
diff --git a/node_modules/on-finished/package.json b/node_modules/on-finished/package.json
deleted file mode 100644
index b9df1bd20..000000000
--- a/node_modules/on-finished/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "on-finished",
- "description": "Execute a callback when a request closes, finishes, or errors",
- "version": "2.3.0",
- "contributors": [
- "Douglas Christopher Wilson <doug@somethingdoug.com>",
- "Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)"
- ],
- "license": "MIT",
- "repository": "jshttp/on-finished",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "devDependencies": {
- "istanbul": "0.3.9",
- "mocha": "2.2.5"
- },
- "engines": {
- "node": ">= 0.8"
- },
- "files": [
- "HISTORY.md",
- "LICENSE",
- "index.js"
- ],
- "scripts": {
- "test": "mocha --reporter spec --bail --check-leaks test/",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/",
- "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"
- }
-}
diff --git a/node_modules/optionator/CHANGELOG.md b/node_modules/optionator/CHANGELOG.md
deleted file mode 100644
index c0e0cf284..000000000
--- a/node_modules/optionator/CHANGELOG.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# 0.8.2
-- fix bug #18 - detect missing value when flag is last item
-- update dependencies
-
-# 0.8.1
-- update `fast-levenshtein` dependency
-
-# 0.8.0
-- update `levn` dependency - supplying a float value to an option with type `Int` now throws an error, instead of silently converting to an `Int`
-
-# 0.7.1
-- fix bug with use of `defaults` and `concatRepeatedArrays` or `mergeRepeatedObjects`
-
-# 0.7.0
-- added `concatrepeatedarrays` option: `oneValuePerFlag`, only allows one array value per flag
-- added `typeAliases` option
-- added `parseArgv` which takes an array and parses with the first two items sliced off
-- changed enum help style
-- bug fixes (#12)
-- use of `concatRepeatedArrays` and `mergeRepeatedObjects` at the top level is deprecated, use it as either a per-option option, or set them in the `defaults` object to set them for all objects
-
-# 0.6.0
-- added `defaults` lib-option flag, allowing one to set default properties for all options
-- added `concatRepeatedArrays` and `mergeRepeatedObjects` as option level properties, allowing you to turn this feature on for specific options only
-
-# 0.5.0
-- `Boolean` flags with `default: 'true'`, and no short aliases, will by default show the `--no` version in help
-
-# 0.4.0
-- add `mergeRepeatedObjects` setting
-
-# 0.3.0
-- add `concatRepeatedArrays` setting
-- add `overrideRequired` option setting
-- use just Levenshtein string compare algo rather than Levenshtein Damerau to due dependency license issue
-
-# 0.2.2
-- bug fixes
-
-# 0.2.1
-- improved interpolation
-- added changelog
-
-# 0.2.0
-- add dependency checks to options - added `dependsOn` as an option property
-- add interpolation for `prepend` and `append` text with new `generateHelp` option, `interpolate`
-
-# 0.1.1
-- update dependencies
-
-# 0.1.0
-- initial release
diff --git a/node_modules/optionator/LICENSE b/node_modules/optionator/LICENSE
deleted file mode 100644
index 525b11850..000000000
--- a/node_modules/optionator/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) George Zahariev
-
-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.
diff --git a/node_modules/optionator/README.md b/node_modules/optionator/README.md
deleted file mode 100644
index 91c59d379..000000000
--- a/node_modules/optionator/README.md
+++ /dev/null
@@ -1,236 +0,0 @@
-# Optionator
-<a name="optionator" />
-
-Optionator is a JavaScript option parsing and help generation library used by [eslint](http://eslint.org), [Grasp](http://graspjs.com), [LiveScript](http://livescript.net), [esmangle](https://github.com/estools/esmangle), [escodegen](https://github.com/estools/escodegen), and [many more](https://www.npmjs.com/browse/depended/optionator).
-
-For an online demo, check out the [Grasp online demo](http://www.graspjs.com/#demo).
-
-[About](#about) &middot; [Usage](#usage) &middot; [Settings Format](#settings-format) &middot; [Argument Format](#argument-format)
-
-## Why?
-The problem with other option parsers, such as `yargs` or `minimist`, is they just accept all input, valid or not.
-With Optionator, if you mistype an option, it will give you an error (with a suggestion for what you meant).
-If you give the wrong type of argument for an option, it will give you an error rather than supplying the wrong input to your application.
-
- $ cmd --halp
- Invalid option '--halp' - perhaps you meant '--help'?
-
- $ cmd --count str
- Invalid value for option 'count' - expected type Int, received value: str.
-
-Other helpful features include reformatting the help text based on the size of the console, so that it fits even if the console is narrow, and accepting not just an array (eg. process.argv), but a string or object as well, making things like testing much easier.
-
-## About
-Optionator uses [type-check](https://github.com/gkz/type-check) and [levn](https://github.com/gkz/levn) behind the scenes to cast and verify input according the specified types.
-
-MIT license. Version 0.8.2
-
- npm install optionator
-
-For updates on Optionator, [follow me on twitter](https://twitter.com/gkzahariev).
-
-## Usage
-`require('optionator');` returns a function. It has one property, `VERSION`, the current version of the library as a string. This function is called with an object specifying your options and other information, see the [settings format section](#settings-format). This in turn returns an object with three properties, `parse`, `parseArgv`, `generateHelp`, and `generateHelpForOption`, which are all functions.
-
-```js
-var optionator = require('optionator')({
- prepend: 'Usage: cmd [options]',
- append: 'Version 1.0.0',
- options: [{
- option: 'help',
- alias: 'h',
- type: 'Boolean',
- description: 'displays help'
- }, {
- option: 'count',
- alias: 'c',
- type: 'Int',
- description: 'number of things',
- example: 'cmd --count 2'
- }]
-});
-
-var options = optionator.parseArgv(process.argv);
-if (options.help) {
- console.log(optionator.generateHelp());
-}
-...
-```
-
-### parse(input, parseOptions)
-`parse` processes the `input` according to your settings, and returns an object with the results.
-
-##### arguments
-* input - `[String] | Object | String` - the input you wish to parse
-* parseOptions - `{slice: Int}` - all options optional
- - `slice` specifies how much to slice away from the beginning if the input is an array or string - by default `0` for string, `2` for array (works with `process.argv`)
-
-##### returns
-`Object` - the parsed options, each key is a camelCase version of the option name (specified in dash-case), and each value is the processed value for that option. Positional values are in an array under the `_` key.
-
-##### example
-```js
-parse(['node', 't.js', '--count', '2', 'positional']); // {count: 2, _: ['positional']}
-parse('--count 2 positional'); // {count: 2, _: ['positional']}
-parse({count: 2, _:['positional']}); // {count: 2, _: ['positional']}
-```
-
-### parseArgv(input)
-`parseArgv` works exactly like `parse`, but only for array input and it slices off the first two elements.
-
-##### arguments
-* input - `[String]` - the input you wish to parse
-
-##### returns
-See "returns" section in "parse"
-
-##### example
-```js
-parseArgv(process.argv);
-```
-
-### generateHelp(helpOptions)
-`generateHelp` produces help text based on your settings.
-
-##### arguments
-* helpOptions - `{showHidden: Boolean, interpolate: Object}` - all options optional
- - `showHidden` specifies whether to show options with `hidden: true` specified, by default it is `false`
- - `interpolate` specify data to be interpolated in `prepend` and `append` text, `{{key}}` is the format - eg. `generateHelp({interpolate:{version: '0.4.2'}})`, will change this `append` text: `Version {{version}}` to `Version 0.4.2`
-
-##### returns
-`String` - the generated help text
-
-##### example
-```js
-generateHelp(); /*
-"Usage: cmd [options] positional
-
- -h, --help displays help
- -c, --count Int number of things
-
-Version 1.0.0
-"*/
-```
-
-### generateHelpForOption(optionName)
-`generateHelpForOption` produces expanded help text for the specified with `optionName` option. If an `example` was specified for the option, it will be displayed, and if a `longDescription` was specified, it will display that instead of the `description`.
-
-##### arguments
-* optionName - `String` - the name of the option to display
-
-##### returns
-`String` - the generated help text for the option
-
-##### example
-```js
-generateHelpForOption('count'); /*
-"-c, --count Int
-description: number of things
-example: cmd --count 2
-"*/
-```
-
-## Settings Format
-When your `require('optionator')`, you get a function that takes in a settings object. This object has the type:
-
- {
- prepend: String,
- append: String,
- options: [{heading: String} | {
- option: String,
- alias: [String] | String,
- type: String,
- enum: [String],
- default: String,
- restPositional: Boolean,
- required: Boolean,
- overrideRequired: Boolean,
- dependsOn: [String] | String,
- concatRepeatedArrays: Boolean | (Boolean, Object),
- mergeRepeatedObjects: Boolean,
- description: String,
- longDescription: String,
- example: [String] | String
- }],
- helpStyle: {
- aliasSeparator: String,
- typeSeparator: String,
- descriptionSeparator: String,
- initialIndent: Int,
- secondaryIndent: Int,
- maxPadFactor: Number
- },
- mutuallyExclusive: [[String | [String]]],
- concatRepeatedArrays: Boolean | (Boolean, Object), // deprecated, set in defaults object
- mergeRepeatedObjects: Boolean, // deprecated, set in defaults object
- positionalAnywhere: Boolean,
- typeAliases: Object,
- defaults: Object
- }
-
-All of the properties are optional (the `Maybe` has been excluded for brevities sake), except for having either `heading: String` or `option: String` in each object in the `options` array.
-
-### Top Level Properties
-* `prepend` is an optional string to be placed before the options in the help text
-* `append` is an optional string to be placed after the options in the help text
-* `options` is a required array specifying your options and headings, the options and headings will be displayed in the order specified
-* `helpStyle` is an optional object which enables you to change the default appearance of some aspects of the help text
-* `mutuallyExclusive` is an optional array of arrays of either strings or arrays of strings. The top level array is a list of rules, each rule is a list of elements - each element can be either a string (the name of an option), or a list of strings (a group of option names) - there will be an error if more than one element is present
-* `concatRepeatedArrays` see description under the "Option Properties" heading - use at the top level is deprecated, if you want to set this for all options, use the `defaults` property
-* `mergeRepeatedObjects` see description under the "Option Properties" heading - use at the top level is deprecated, if you want to set this for all options, use the `defaults` property
-* `positionalAnywhere` is an optional boolean (defaults to `true`) - when `true` it allows positional arguments anywhere, when `false`, all arguments after the first positional one are taken to be positional as well, even if they look like a flag. For example, with `positionalAnywhere: false`, the arguments `--flag --boom 12 --crack` would have two positional arguments: `12` and `--crack`
-* `typeAliases` is an optional object, it allows you to set aliases for types, eg. `{Path: 'String'}` would allow you to use the type `Path` as an alias for the type `String`
-* `defaults` is an optional object following the option properties format, which specifies default values for all options. A default will be overridden if manually set. For example, you can do `default: { type: "String" }` to set the default type of all options to `String`, and then override that default in an individual option by setting the `type` property
-
-#### Heading Properties
-* `heading` a required string, the name of the heading
-
-#### Option Properties
-* `option` the required name of the option - use dash-case, without the leading dashes
-* `alias` is an optional string or array of strings which specify any aliases for the option
-* `type` is a required string in the [type check](https://github.com/gkz/type-check) [format](https://github.com/gkz/type-check#type-format), this will be used to cast the inputted value and validate it
-* `enum` is an optional array of strings, each string will be parsed by [levn](https://github.com/gkz/levn) - the argument value must be one of the resulting values - each potential value must validate against the specified `type`
-* `default` is a optional string, which will be parsed by [levn](https://github.com/gkz/levn) and used as the default value if none is set - the value must validate against the specified `type`
-* `restPositional` is an optional boolean - if set to `true`, everything after the option will be taken to be a positional argument, even if it looks like a named argument
-* `required` is an optional boolean - if set to `true`, the option parsing will fail if the option is not defined
-* `overrideRequired` is a optional boolean - if set to `true` and the option is used, and there is another option which is required but not set, it will override the need for the required option and there will be no error - this is useful if you have required options and want to use `--help` or `--version` flags
-* `concatRepeatedArrays` is an optional boolean or tuple with boolean and options object (defaults to `false`) - when set to `true` and an option contains an array value and is repeated, the subsequent values for the flag will be appended rather than overwriting the original value - eg. option `g` of type `[String]`: `-g a -g b -g c,d` will result in `['a','b','c','d']`
-
- You can supply an options object by giving the following value: `[true, options]`. The one currently supported option is `oneValuePerFlag`, this only allows one array value per flag. This is useful if your potential values contain a comma.
-* `mergeRepeatedObjects` is an optional boolean (defaults to `false`) - when set to `true` and an option contains an object value and is repeated, the subsequent values for the flag will be merged rather than overwriting the original value - eg. option `g` of type `Object`: `-g a:1 -g b:2 -g c:3,d:4` will result in `{a: 1, b: 2, c: 3, d: 4}`
-* `dependsOn` is an optional string or array of strings - if simply a string (the name of another option), it will make sure that that other option is set, if an array of strings, depending on whether `'and'` or `'or'` is first, it will either check whether all (`['and', 'option-a', 'option-b']`), or at least one (`['or', 'option-a', 'option-b']`) other options are set
-* `description` is an optional string, which will be displayed next to the option in the help text
-* `longDescription` is an optional string, it will be displayed instead of the `description` when `generateHelpForOption` is used
-* `example` is an optional string or array of strings with example(s) for the option - these will be displayed when `generateHelpForOption` is used
-
-#### Help Style Properties
-* `aliasSeparator` is an optional string, separates multiple names from each other - default: ' ,'
-* `typeSeparator` is an optional string, separates the type from the names - default: ' '
-* `descriptionSeparator` is an optional string , separates the description from the padded name and type - default: ' '
-* `initialIndent` is an optional int - the amount of indent for options - default: 2
-* `secondaryIndent` is an optional int - the amount of indent if wrapped fully (in addition to the initial indent) - default: 4
-* `maxPadFactor` is an optional number - affects the default level of padding for the names/type, it is multiplied by the average of the length of the names/type - default: 1.5
-
-## Argument Format
-At the highest level there are two types of arguments: named, and positional.
-
-Name arguments of any length are prefixed with `--` (eg. `--go`), and those of one character may be prefixed with either `--` or `-` (eg. `-g`).
-
-There are two types of named arguments: boolean flags (eg. `--problemo`, `-p`) which take no value and result in a `true` if they are present, the falsey `undefined` if they are not present, or `false` if present and explicitly prefixed with `no` (eg. `--no-problemo`). Named arguments with values (eg. `--tseries 800`, `-t 800`) are the other type. If the option has a type `Boolean` it will automatically be made into a boolean flag. Any other type results in a named argument that takes a value.
-
-For more information about how to properly set types to get the value you want, take a look at the [type check](https://github.com/gkz/type-check) and [levn](https://github.com/gkz/levn) pages.
-
-You can group single character arguments that use a single `-`, however all except the last must be boolean flags (which take no value). The last may be a boolean flag, or an argument which takes a value - eg. `-ba 2` is equivalent to `-b -a 2`.
-
-Positional arguments are all those values which do not fall under the above - they can be anywhere, not just at the end. For example, in `cmd -b one -a 2 two` where `b` is a boolean flag, and `a` has the type `Number`, there are two positional arguments, `one` and `two`.
-
-Everything after an `--` is positional, even if it looks like a named argument.
-
-You may optionally use `=` to separate option names from values, for example: `--count=2`.
-
-If you specify the option `NUM`, then any argument using a single `-` followed by a number will be valid and will set the value of `NUM`. Eg. `-2` will be parsed into `NUM: 2`.
-
-If duplicate named arguments are present, the last one will be taken.
-
-## Technical About
-`optionator` is written in [LiveScript](http://livescript.net/) - a language that compiles to JavaScript. It uses [levn](https://github.com/gkz/levn) to cast arguments to their specified type, and uses [type-check](https://github.com/gkz/type-check) to validate values. It also uses the [prelude.ls](http://preludels.com/) library.
diff --git a/node_modules/optionator/lib/help.js b/node_modules/optionator/lib/help.js
deleted file mode 100644
index a459c02c2..000000000
--- a/node_modules/optionator/lib/help.js
+++ /dev/null
@@ -1,247 +0,0 @@
-// Generated by LiveScript 1.5.0
-(function(){
- var ref$, id, find, sort, min, max, map, unlines, nameToRaw, dasherize, naturalJoin, wordwrap, getPreText, setHelpStyleDefaults, generateHelpForOption, generateHelp;
- ref$ = require('prelude-ls'), id = ref$.id, find = ref$.find, sort = ref$.sort, min = ref$.min, max = ref$.max, map = ref$.map, unlines = ref$.unlines;
- ref$ = require('./util'), nameToRaw = ref$.nameToRaw, dasherize = ref$.dasherize, naturalJoin = ref$.naturalJoin;
- wordwrap = require('wordwrap');
- getPreText = function(option, arg$, maxWidth){
- var mainName, shortNames, ref$, longNames, type, description, aliasSeparator, typeSeparator, initialIndent, names, namesString, namesStringLen, typeSeparatorString, typeSeparatorStringLen, wrap;
- mainName = option.option, shortNames = (ref$ = option.shortNames) != null
- ? ref$
- : [], longNames = (ref$ = option.longNames) != null
- ? ref$
- : [], type = option.type, description = option.description;
- aliasSeparator = arg$.aliasSeparator, typeSeparator = arg$.typeSeparator, initialIndent = arg$.initialIndent;
- if (option.negateName) {
- mainName = "no-" + mainName;
- if (longNames) {
- longNames = map(function(it){
- return "no-" + it;
- }, longNames);
- }
- }
- names = mainName.length === 1
- ? [mainName].concat(shortNames, longNames)
- : shortNames.concat([mainName], longNames);
- namesString = map(nameToRaw, names).join(aliasSeparator);
- namesStringLen = namesString.length;
- typeSeparatorString = mainName === 'NUM' ? '::' : typeSeparator;
- typeSeparatorStringLen = typeSeparatorString.length;
- if (maxWidth != null && !option.boolean && initialIndent + namesStringLen + typeSeparatorStringLen + type.length > maxWidth) {
- wrap = wordwrap(initialIndent + namesStringLen + typeSeparatorStringLen, maxWidth);
- return namesString + "" + typeSeparatorString + wrap(type).replace(/^\s+/, '');
- } else {
- return namesString + "" + (option.boolean
- ? ''
- : typeSeparatorString + "" + type);
- }
- };
- setHelpStyleDefaults = function(helpStyle){
- helpStyle.aliasSeparator == null && (helpStyle.aliasSeparator = ', ');
- helpStyle.typeSeparator == null && (helpStyle.typeSeparator = ' ');
- helpStyle.descriptionSeparator == null && (helpStyle.descriptionSeparator = ' ');
- helpStyle.initialIndent == null && (helpStyle.initialIndent = 2);
- helpStyle.secondaryIndent == null && (helpStyle.secondaryIndent = 4);
- helpStyle.maxPadFactor == null && (helpStyle.maxPadFactor = 1.5);
- };
- generateHelpForOption = function(getOption, arg$){
- var stdout, helpStyle, ref$;
- stdout = arg$.stdout, helpStyle = (ref$ = arg$.helpStyle) != null
- ? ref$
- : {};
- setHelpStyleDefaults(helpStyle);
- return function(optionName){
- var maxWidth, wrap, option, e, pre, defaultString, restPositionalString, description, fullDescription, that, preDescription, descriptionString, exampleString, examples, seperator;
- maxWidth = stdout != null && stdout.isTTY ? stdout.columns - 1 : null;
- wrap = maxWidth ? wordwrap(maxWidth) : id;
- try {
- option = getOption(dasherize(optionName));
- } catch (e$) {
- e = e$;
- return e.message;
- }
- pre = getPreText(option, helpStyle);
- defaultString = option['default'] && !option.negateName ? "\ndefault: " + option['default'] : '';
- restPositionalString = option.restPositional ? 'Everything after this option is considered a positional argument, even if it looks like an option.' : '';
- description = option.longDescription || option.description && sentencize(option.description);
- fullDescription = description && restPositionalString
- ? description + " " + restPositionalString
- : (that = description || restPositionalString) ? that : '';
- preDescription = 'description:';
- descriptionString = !fullDescription
- ? ''
- : maxWidth && fullDescription.length - 1 - preDescription.length > maxWidth
- ? "\n" + preDescription + "\n" + wrap(fullDescription)
- : "\n" + preDescription + " " + fullDescription;
- exampleString = (that = option.example) ? (examples = [].concat(that), examples.length > 1
- ? "\nexamples:\n" + unlines(examples)
- : "\nexample: " + examples[0]) : '';
- seperator = defaultString || descriptionString || exampleString ? "\n" + repeatString$('=', pre.length) : '';
- return pre + "" + seperator + defaultString + descriptionString + exampleString;
- };
- };
- generateHelp = function(arg$){
- var options, prepend, append, helpStyle, ref$, stdout, aliasSeparator, typeSeparator, descriptionSeparator, maxPadFactor, initialIndent, secondaryIndent;
- options = arg$.options, prepend = arg$.prepend, append = arg$.append, helpStyle = (ref$ = arg$.helpStyle) != null
- ? ref$
- : {}, stdout = arg$.stdout;
- setHelpStyleDefaults(helpStyle);
- aliasSeparator = helpStyle.aliasSeparator, typeSeparator = helpStyle.typeSeparator, descriptionSeparator = helpStyle.descriptionSeparator, maxPadFactor = helpStyle.maxPadFactor, initialIndent = helpStyle.initialIndent, secondaryIndent = helpStyle.secondaryIndent;
- return function(arg$){
- var ref$, showHidden, interpolate, maxWidth, output, out, data, optionCount, totalPreLen, preLens, i$, len$, item, that, pre, descParts, desc, preLen, sortedPreLens, maxPreLen, preLenMean, x, padAmount, descSepLen, fullWrapCount, partialWrapCount, descLen, totalLen, initialSpace, wrapAllFull, i, wrap;
- ref$ = arg$ != null
- ? arg$
- : {}, showHidden = ref$.showHidden, interpolate = ref$.interpolate;
- maxWidth = stdout != null && stdout.isTTY ? stdout.columns - 1 : null;
- output = [];
- out = function(it){
- return output.push(it != null ? it : '');
- };
- if (prepend) {
- out(interpolate ? interp(prepend, interpolate) : prepend);
- out();
- }
- data = [];
- optionCount = 0;
- totalPreLen = 0;
- preLens = [];
- for (i$ = 0, len$ = (ref$ = options).length; i$ < len$; ++i$) {
- item = ref$[i$];
- if (showHidden || !item.hidden) {
- if (that = item.heading) {
- data.push({
- type: 'heading',
- value: that
- });
- } else {
- pre = getPreText(item, helpStyle, maxWidth);
- descParts = [];
- if ((that = item.description) != null) {
- descParts.push(that);
- }
- if (that = item['enum']) {
- descParts.push("either: " + naturalJoin(that));
- }
- if (item['default'] && !item.negateName) {
- descParts.push("default: " + item['default']);
- }
- desc = descParts.join(' - ');
- data.push({
- type: 'option',
- pre: pre,
- desc: desc,
- descLen: desc.length
- });
- preLen = pre.length;
- optionCount++;
- totalPreLen += preLen;
- preLens.push(preLen);
- }
- }
- }
- sortedPreLens = sort(preLens);
- maxPreLen = sortedPreLens[sortedPreLens.length - 1];
- preLenMean = initialIndent + totalPreLen / optionCount;
- x = optionCount > 2 ? min(preLenMean * maxPadFactor, maxPreLen) : maxPreLen;
- for (i$ = sortedPreLens.length - 1; i$ >= 0; --i$) {
- preLen = sortedPreLens[i$];
- if (preLen <= x) {
- padAmount = preLen;
- break;
- }
- }
- descSepLen = descriptionSeparator.length;
- if (maxWidth != null) {
- fullWrapCount = 0;
- partialWrapCount = 0;
- for (i$ = 0, len$ = data.length; i$ < len$; ++i$) {
- item = data[i$];
- if (item.type === 'option') {
- pre = item.pre, desc = item.desc, descLen = item.descLen;
- if (descLen === 0) {
- item.wrap = 'none';
- } else {
- preLen = max(padAmount, pre.length) + initialIndent + descSepLen;
- totalLen = preLen + descLen;
- if (totalLen > maxWidth) {
- if (descLen / 2.5 > maxWidth - preLen) {
- fullWrapCount++;
- item.wrap = 'full';
- } else {
- partialWrapCount++;
- item.wrap = 'partial';
- }
- } else {
- item.wrap = 'none';
- }
- }
- }
- }
- }
- initialSpace = repeatString$(' ', initialIndent);
- wrapAllFull = optionCount > 1 && fullWrapCount + partialWrapCount * 0.5 > optionCount * 0.5;
- for (i$ = 0, len$ = data.length; i$ < len$; ++i$) {
- i = i$;
- item = data[i$];
- if (item.type === 'heading') {
- if (i !== 0) {
- out();
- }
- out(item.value + ":");
- } else {
- pre = item.pre, desc = item.desc, descLen = item.descLen, wrap = item.wrap;
- if (maxWidth != null) {
- if (wrapAllFull || wrap === 'full') {
- wrap = wordwrap(initialIndent + secondaryIndent, maxWidth);
- out(initialSpace + "" + pre + "\n" + wrap(desc));
- continue;
- } else if (wrap === 'partial') {
- wrap = wordwrap(initialIndent + descSepLen + max(padAmount, pre.length), maxWidth);
- out(initialSpace + "" + pad(pre, padAmount) + descriptionSeparator + wrap(desc).replace(/^\s+/, ''));
- continue;
- }
- }
- if (descLen === 0) {
- out(initialSpace + "" + pre);
- } else {
- out(initialSpace + "" + pad(pre, padAmount) + descriptionSeparator + desc);
- }
- }
- }
- if (append) {
- out();
- out(interpolate ? interp(append, interpolate) : append);
- }
- return unlines(output);
- };
- };
- function pad(str, num){
- var len, padAmount;
- len = str.length;
- padAmount = num - len;
- return str + "" + repeatString$(' ', padAmount > 0 ? padAmount : 0);
- }
- function sentencize(str){
- var first, rest, period;
- first = str.charAt(0).toUpperCase();
- rest = str.slice(1);
- period = /[\.!\?]$/.test(str) ? '' : '.';
- return first + "" + rest + period;
- }
- function interp(string, object){
- return string.replace(/{{([a-zA-Z$_][a-zA-Z$_0-9]*)}}/g, function(arg$, key){
- var ref$;
- return (ref$ = object[key]) != null
- ? ref$
- : "{{" + key + "}}";
- });
- }
- module.exports = {
- generateHelp: generateHelp,
- generateHelpForOption: generateHelpForOption
- };
- function repeatString$(str, n){
- for (var r = ''; n > 0; (n >>= 1) && (str += str)) if (n & 1) r += str;
- return r;
- }
-}).call(this);
diff --git a/node_modules/optionator/lib/index.js b/node_modules/optionator/lib/index.js
deleted file mode 100644
index d947286c7..000000000
--- a/node_modules/optionator/lib/index.js
+++ /dev/null
@@ -1,465 +0,0 @@
-// Generated by LiveScript 1.5.0
-(function(){
- var VERSION, ref$, id, map, compact, any, groupBy, partition, chars, isItNaN, keys, Obj, camelize, deepIs, closestString, nameToRaw, dasherize, naturalJoin, generateHelp, generateHelpForOption, parsedTypeCheck, parseType, parseLevn, camelizeKeys, parseString, main, toString$ = {}.toString, slice$ = [].slice;
- VERSION = '0.8.2';
- ref$ = require('prelude-ls'), id = ref$.id, map = ref$.map, compact = ref$.compact, any = ref$.any, groupBy = ref$.groupBy, partition = ref$.partition, chars = ref$.chars, isItNaN = ref$.isItNaN, keys = ref$.keys, Obj = ref$.Obj, camelize = ref$.camelize;
- deepIs = require('deep-is');
- ref$ = require('./util'), closestString = ref$.closestString, nameToRaw = ref$.nameToRaw, dasherize = ref$.dasherize, naturalJoin = ref$.naturalJoin;
- ref$ = require('./help'), generateHelp = ref$.generateHelp, generateHelpForOption = ref$.generateHelpForOption;
- ref$ = require('type-check'), parsedTypeCheck = ref$.parsedTypeCheck, parseType = ref$.parseType;
- parseLevn = require('levn').parsedTypeParse;
- camelizeKeys = function(obj){
- var key, value, resultObj$ = {};
- for (key in obj) {
- value = obj[key];
- resultObj$[camelize(key)] = value;
- }
- return resultObj$;
- };
- parseString = function(string){
- var assignOpt, regex, replaceRegex, result, this$ = this;
- assignOpt = '--?[a-zA-Z][-a-z-A-Z0-9]*=';
- regex = RegExp('(?:' + assignOpt + ')?(?:\'(?:\\\\\'|[^\'])+\'|"(?:\\\\"|[^"])+")|[^\'"\\s]+', 'g');
- replaceRegex = RegExp('^(' + assignOpt + ')?[\'"]([\\s\\S]*)[\'"]$');
- result = map(function(it){
- return it.replace(replaceRegex, '$1$2');
- }, string.match(regex) || []);
- return result;
- };
- main = function(libOptions){
- var opts, defaults, required, traverse, getOption, parse;
- opts = {};
- defaults = {};
- required = [];
- if (toString$.call(libOptions.stdout).slice(8, -1) === 'Undefined') {
- libOptions.stdout = process.stdout;
- }
- libOptions.positionalAnywhere == null && (libOptions.positionalAnywhere = true);
- libOptions.typeAliases == null && (libOptions.typeAliases = {});
- libOptions.defaults == null && (libOptions.defaults = {});
- if (libOptions.concatRepeatedArrays != null) {
- libOptions.defaults.concatRepeatedArrays = libOptions.concatRepeatedArrays;
- }
- if (libOptions.mergeRepeatedObjects != null) {
- libOptions.defaults.mergeRepeatedObjects = libOptions.mergeRepeatedObjects;
- }
- traverse = function(options){
- var i$, len$, option, name, k, ref$, v, type, that, e, parsedPossibilities, parsedType, j$, len1$, possibility, rawDependsType, dependsOpts, dependsType, cra, alias, shortNames, longNames, this$ = this;
- if (toString$.call(options).slice(8, -1) !== 'Array') {
- throw new Error('No options defined.');
- }
- for (i$ = 0, len$ = options.length; i$ < len$; ++i$) {
- option = options[i$];
- if (option.heading == null) {
- name = option.option;
- if (opts[name] != null) {
- throw new Error("Option '" + name + "' already defined.");
- }
- for (k in ref$ = libOptions.defaults) {
- v = ref$[k];
- option[k] == null && (option[k] = v);
- }
- if (option.type === 'Boolean') {
- option.boolean == null && (option.boolean = true);
- }
- if (option.parsedType == null) {
- if (!option.type) {
- throw new Error("No type defined for option '" + name + "'.");
- }
- try {
- type = (that = libOptions.typeAliases[option.type]) != null
- ? that
- : option.type;
- option.parsedType = parseType(type);
- } catch (e$) {
- e = e$;
- throw new Error("Option '" + name + "': Error parsing type '" + option.type + "': " + e.message);
- }
- }
- if (option['default']) {
- try {
- defaults[name] = parseLevn(option.parsedType, option['default']);
- } catch (e$) {
- e = e$;
- throw new Error("Option '" + name + "': Error parsing default value '" + option['default'] + "' for type '" + option.type + "': " + e.message);
- }
- }
- if (option['enum'] && !option.parsedPossiblities) {
- parsedPossibilities = [];
- parsedType = option.parsedType;
- for (j$ = 0, len1$ = (ref$ = option['enum']).length; j$ < len1$; ++j$) {
- possibility = ref$[j$];
- try {
- parsedPossibilities.push(parseLevn(parsedType, possibility));
- } catch (e$) {
- e = e$;
- throw new Error("Option '" + name + "': Error parsing enum value '" + possibility + "' for type '" + option.type + "': " + e.message);
- }
- }
- option.parsedPossibilities = parsedPossibilities;
- }
- if (that = option.dependsOn) {
- if (that.length) {
- ref$ = [].concat(option.dependsOn), rawDependsType = ref$[0], dependsOpts = slice$.call(ref$, 1);
- dependsType = rawDependsType.toLowerCase();
- if (dependsOpts.length) {
- if (dependsType === 'and' || dependsType === 'or') {
- option.dependsOn = [dependsType].concat(slice$.call(dependsOpts));
- } else {
- throw new Error("Option '" + name + "': If you have more than one dependency, you must specify either 'and' or 'or'");
- }
- } else {
- if ((ref$ = dependsType.toLowerCase()) === 'and' || ref$ === 'or') {
- option.dependsOn = null;
- } else {
- option.dependsOn = ['and', rawDependsType];
- }
- }
- } else {
- option.dependsOn = null;
- }
- }
- if (option.required) {
- required.push(name);
- }
- opts[name] = option;
- if (option.concatRepeatedArrays != null) {
- cra = option.concatRepeatedArrays;
- if ('Boolean' === toString$.call(cra).slice(8, -1)) {
- option.concatRepeatedArrays = [cra, {}];
- } else if (cra.length === 1) {
- option.concatRepeatedArrays = [cra[0], {}];
- } else if (cra.length !== 2) {
- throw new Error("Invalid setting for concatRepeatedArrays");
- }
- }
- if (option.alias || option.aliases) {
- if (name === 'NUM') {
- throw new Error("-NUM option can't have aliases.");
- }
- if (option.alias) {
- option.aliases == null && (option.aliases = [].concat(option.alias));
- }
- for (j$ = 0, len1$ = (ref$ = option.aliases).length; j$ < len1$; ++j$) {
- alias = ref$[j$];
- if (opts[alias] != null) {
- throw new Error("Option '" + alias + "' already defined.");
- }
- opts[alias] = option;
- }
- ref$ = partition(fn$, option.aliases), shortNames = ref$[0], longNames = ref$[1];
- option.shortNames == null && (option.shortNames = shortNames);
- option.longNames == null && (option.longNames = longNames);
- }
- if ((!option.aliases || option.shortNames.length === 0) && option.type === 'Boolean' && option['default'] === 'true') {
- option.negateName = true;
- }
- }
- }
- function fn$(it){
- return it.length === 1;
- }
- };
- traverse(libOptions.options);
- getOption = function(name){
- var opt, possiblyMeant;
- opt = opts[name];
- if (opt == null) {
- possiblyMeant = closestString(keys(opts), name);
- throw new Error("Invalid option '" + nameToRaw(name) + "'" + (possiblyMeant ? " - perhaps you meant '" + nameToRaw(possiblyMeant) + "'?" : '.'));
- }
- return opt;
- };
- parse = function(input, arg$){
- var slice, obj, positional, restPositional, overrideRequired, prop, setValue, setDefaults, checkRequired, mutuallyExclusiveError, checkMutuallyExclusive, checkDependency, checkDependencies, checkProp, args, key, value, option, ref$, i$, len$, arg, that, result, short, argName, usingAssign, val, flags, len, j$, len1$, i, flag, opt, name, valPrime, negated, noedName;
- slice = (arg$ != null
- ? arg$
- : {}).slice;
- obj = {};
- positional = [];
- restPositional = false;
- overrideRequired = false;
- prop = null;
- setValue = function(name, value){
- var opt, val, cra, e, currentType;
- opt = getOption(name);
- if (opt.boolean) {
- val = value;
- } else {
- try {
- cra = opt.concatRepeatedArrays;
- if (cra != null && cra[0] && cra[1].oneValuePerFlag && opt.parsedType.length === 1 && opt.parsedType[0].structure === 'array') {
- val = [parseLevn(opt.parsedType[0].of, value)];
- } else {
- val = parseLevn(opt.parsedType, value);
- }
- } catch (e$) {
- e = e$;
- throw new Error("Invalid value for option '" + name + "' - expected type " + opt.type + ", received value: " + value + ".");
- }
- if (opt['enum'] && !any(function(it){
- return deepIs(it, val);
- }, opt.parsedPossibilities)) {
- throw new Error("Option " + name + ": '" + val + "' not one of " + naturalJoin(opt['enum']) + ".");
- }
- }
- currentType = toString$.call(obj[name]).slice(8, -1);
- if (obj[name] != null) {
- if (opt.concatRepeatedArrays != null && opt.concatRepeatedArrays[0] && currentType === 'Array') {
- obj[name] = obj[name].concat(val);
- } else if (opt.mergeRepeatedObjects && currentType === 'Object') {
- import$(obj[name], val);
- } else {
- obj[name] = val;
- }
- } else {
- obj[name] = val;
- }
- if (opt.restPositional) {
- restPositional = true;
- }
- if (opt.overrideRequired) {
- overrideRequired = true;
- }
- };
- setDefaults = function(){
- var name, ref$, value;
- for (name in ref$ = defaults) {
- value = ref$[name];
- if (obj[name] == null) {
- obj[name] = value;
- }
- }
- };
- checkRequired = function(){
- var i$, ref$, len$, name;
- if (overrideRequired) {
- return;
- }
- for (i$ = 0, len$ = (ref$ = required).length; i$ < len$; ++i$) {
- name = ref$[i$];
- if (!obj[name]) {
- throw new Error("Option " + nameToRaw(name) + " is required.");
- }
- }
- };
- mutuallyExclusiveError = function(first, second){
- throw new Error("The options " + nameToRaw(first) + " and " + nameToRaw(second) + " are mutually exclusive - you cannot use them at the same time.");
- };
- checkMutuallyExclusive = function(){
- var rules, i$, len$, rule, present, j$, len1$, element, k$, len2$, opt;
- rules = libOptions.mutuallyExclusive;
- if (!rules) {
- return;
- }
- for (i$ = 0, len$ = rules.length; i$ < len$; ++i$) {
- rule = rules[i$];
- present = null;
- for (j$ = 0, len1$ = rule.length; j$ < len1$; ++j$) {
- element = rule[j$];
- if (toString$.call(element).slice(8, -1) === 'Array') {
- for (k$ = 0, len2$ = element.length; k$ < len2$; ++k$) {
- opt = element[k$];
- if (opt in obj) {
- if (present != null) {
- mutuallyExclusiveError(present, opt);
- } else {
- present = opt;
- break;
- }
- }
- }
- } else {
- if (element in obj) {
- if (present != null) {
- mutuallyExclusiveError(present, element);
- } else {
- present = element;
- }
- }
- }
- }
- }
- };
- checkDependency = function(option){
- var dependsOn, type, targetOptionNames, i$, len$, targetOptionName, targetOption;
- dependsOn = option.dependsOn;
- if (!dependsOn || option.dependenciesMet) {
- return true;
- }
- type = dependsOn[0], targetOptionNames = slice$.call(dependsOn, 1);
- for (i$ = 0, len$ = targetOptionNames.length; i$ < len$; ++i$) {
- targetOptionName = targetOptionNames[i$];
- targetOption = obj[targetOptionName];
- if (targetOption && checkDependency(targetOption)) {
- if (type === 'or') {
- return true;
- }
- } else if (type === 'and') {
- throw new Error("The option '" + option.option + "' did not have its dependencies met.");
- }
- }
- if (type === 'and') {
- return true;
- } else {
- throw new Error("The option '" + option.option + "' did not meet any of its dependencies.");
- }
- };
- checkDependencies = function(){
- var name;
- for (name in obj) {
- checkDependency(opts[name]);
- }
- };
- checkProp = function(){
- if (prop) {
- throw new Error("Value for '" + prop + "' of type '" + getOption(prop).type + "' required.");
- }
- };
- switch (toString$.call(input).slice(8, -1)) {
- case 'String':
- args = parseString(input.slice(slice != null ? slice : 0));
- break;
- case 'Array':
- args = input.slice(slice != null ? slice : 2);
- break;
- case 'Object':
- obj = {};
- for (key in input) {
- value = input[key];
- if (key !== '_') {
- option = getOption(dasherize(key));
- if (parsedTypeCheck(option.parsedType, value)) {
- obj[option.option] = value;
- } else {
- throw new Error("Option '" + option.option + "': Invalid type for '" + value + "' - expected type '" + option.type + "'.");
- }
- }
- }
- checkMutuallyExclusive();
- checkDependencies();
- setDefaults();
- checkRequired();
- return ref$ = camelizeKeys(obj), ref$._ = input._ || [], ref$;
- default:
- throw new Error("Invalid argument to 'parse': " + input + ".");
- }
- for (i$ = 0, len$ = args.length; i$ < len$; ++i$) {
- arg = args[i$];
- if (arg === '--') {
- restPositional = true;
- } else if (restPositional) {
- positional.push(arg);
- } else {
- if (that = arg.match(/^(--?)([a-zA-Z][-a-zA-Z0-9]*)(=)?(.*)?$/)) {
- result = that;
- checkProp();
- short = result[1].length === 1;
- argName = result[2];
- usingAssign = result[3] != null;
- val = result[4];
- if (usingAssign && val == null) {
- throw new Error("No value for '" + argName + "' specified.");
- }
- if (short) {
- flags = chars(argName);
- len = flags.length;
- for (j$ = 0, len1$ = flags.length; j$ < len1$; ++j$) {
- i = j$;
- flag = flags[j$];
- opt = getOption(flag);
- name = opt.option;
- if (restPositional) {
- positional.push(flag);
- } else if (i === len - 1) {
- if (usingAssign) {
- valPrime = opt.boolean ? parseLevn([{
- type: 'Boolean'
- }], val) : val;
- setValue(name, valPrime);
- } else if (opt.boolean) {
- setValue(name, true);
- } else {
- prop = name;
- }
- } else if (opt.boolean) {
- setValue(name, true);
- } else {
- throw new Error("Can't set argument '" + flag + "' when not last flag in a group of short flags.");
- }
- }
- } else {
- negated = false;
- if (that = argName.match(/^no-(.+)$/)) {
- negated = true;
- noedName = that[1];
- opt = getOption(noedName);
- } else {
- opt = getOption(argName);
- }
- name = opt.option;
- if (opt.boolean) {
- valPrime = usingAssign ? parseLevn([{
- type: 'Boolean'
- }], val) : true;
- if (negated) {
- setValue(name, !valPrime);
- } else {
- setValue(name, valPrime);
- }
- } else {
- if (negated) {
- throw new Error("Only use 'no-' prefix for Boolean options, not with '" + noedName + "'.");
- }
- if (usingAssign) {
- setValue(name, val);
- } else {
- prop = name;
- }
- }
- }
- } else if (that = arg.match(/^-([0-9]+(?:\.[0-9]+)?)$/)) {
- opt = opts.NUM;
- if (!opt) {
- throw new Error('No -NUM option defined.');
- }
- setValue(opt.option, that[1]);
- } else {
- if (prop) {
- setValue(prop, arg);
- prop = null;
- } else {
- positional.push(arg);
- if (!libOptions.positionalAnywhere) {
- restPositional = true;
- }
- }
- }
- }
- }
- checkProp();
- checkMutuallyExclusive();
- checkDependencies();
- setDefaults();
- checkRequired();
- return ref$ = camelizeKeys(obj), ref$._ = positional, ref$;
- };
- return {
- parse: parse,
- parseArgv: function(it){
- return parse(it, {
- slice: 2
- });
- },
- generateHelp: generateHelp(libOptions),
- generateHelpForOption: generateHelpForOption(getOption, libOptions)
- };
- };
- main.VERSION = VERSION;
- module.exports = main;
- function import$(obj, src){
- var own = {}.hasOwnProperty;
- for (var key in src) if (own.call(src, key)) obj[key] = src[key];
- return obj;
- }
-}).call(this);
diff --git a/node_modules/optionator/lib/util.js b/node_modules/optionator/lib/util.js
deleted file mode 100644
index d5c972def..000000000
--- a/node_modules/optionator/lib/util.js
+++ /dev/null
@@ -1,54 +0,0 @@
-// Generated by LiveScript 1.5.0
-(function(){
- var prelude, map, sortBy, fl, closestString, nameToRaw, dasherize, naturalJoin;
- prelude = require('prelude-ls'), map = prelude.map, sortBy = prelude.sortBy;
- fl = require('fast-levenshtein');
- closestString = function(possibilities, input){
- var distances, ref$, string, distance, this$ = this;
- if (!possibilities.length) {
- return;
- }
- distances = map(function(it){
- var ref$, longer, shorter;
- ref$ = input.length > it.length
- ? [input, it]
- : [it, input], longer = ref$[0], shorter = ref$[1];
- return {
- string: it,
- distance: fl.get(longer, shorter)
- };
- })(
- possibilities);
- ref$ = sortBy(function(it){
- return it.distance;
- }, distances)[0], string = ref$.string, distance = ref$.distance;
- return string;
- };
- nameToRaw = function(name){
- if (name.length === 1 || name === 'NUM') {
- return "-" + name;
- } else {
- return "--" + name;
- }
- };
- dasherize = function(string){
- if (/^[A-Z]/.test(string)) {
- return string;
- } else {
- return prelude.dasherize(string);
- }
- };
- naturalJoin = function(array){
- if (array.length < 3) {
- return array.join(' or ');
- } else {
- return array.slice(0, -1).join(', ') + ", or " + array[array.length - 1];
- }
- };
- module.exports = {
- closestString: closestString,
- nameToRaw: nameToRaw,
- dasherize: dasherize,
- naturalJoin: naturalJoin
- };
-}).call(this);
diff --git a/node_modules/optionator/package.json b/node_modules/optionator/package.json
deleted file mode 100644
index 5a4492483..000000000
--- a/node_modules/optionator/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "optionator",
- "version": "0.8.2",
- "author": "George Zahariev <z@georgezahariev.com>",
- "description": "option parsing and help generation",
- "homepage": "https://github.com/gkz/optionator",
- "keywords": [
- "options",
- "flags",
- "option parsing",
- "cli"
- ],
- "files": [
- "lib",
- "README.md",
- "LICENSE"
- ],
- "main": "./lib/",
- "bugs": "https://github.com/gkz/optionator/issues",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8.0"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/gkz/optionator.git"
- },
- "scripts": {
- "test": "make test"
- },
- "dependencies": {
- "prelude-ls": "~1.1.2",
- "deep-is": "~0.1.3",
- "wordwrap": "~1.0.0",
- "type-check": "~0.3.2",
- "levn": "~0.3.0",
- "fast-levenshtein": "~2.0.4"
- },
- "devDependencies": {
- "livescript": "~1.5.0",
- "mocha": "~3.0.2",
- "istanbul": "~0.4.1"
- }
-}
diff --git a/node_modules/parseurl/HISTORY.md b/node_modules/parseurl/HISTORY.md
deleted file mode 100644
index 395041ee6..000000000
--- a/node_modules/parseurl/HISTORY.md
+++ /dev/null
@@ -1,47 +0,0 @@
-1.3.1 / 2016-01-17
-==================
-
- * perf: enable strict mode
-
-1.3.0 / 2014-08-09
-==================
-
- * Add `parseurl.original` for parsing `req.originalUrl` with fallback
- * Return `undefined` if `req.url` is `undefined`
-
-1.2.0 / 2014-07-21
-==================
-
- * Cache URLs based on original value
- * Remove no-longer-needed URL mis-parse work-around
- * Simplify the "fast-path" `RegExp`
-
-1.1.3 / 2014-07-08
-==================
-
- * Fix typo
-
-1.1.2 / 2014-07-08
-==================
-
- * Seriously fix Node.js 0.8 compatibility
-
-1.1.1 / 2014-07-08
-==================
-
- * Fix Node.js 0.8 compatibility
-
-1.1.0 / 2014-07-08
-==================
-
- * Incorporate URL href-only parse fast-path
-
-1.0.1 / 2014-03-08
-==================
-
- * Add missing `require`
-
-1.0.0 / 2014-03-08
-==================
-
- * Genesis from `connect`
diff --git a/node_modules/parseurl/LICENSE b/node_modules/parseurl/LICENSE
deleted file mode 100644
index ec7dfe7be..000000000
--- a/node_modules/parseurl/LICENSE
+++ /dev/null
@@ -1,24 +0,0 @@
-
-(The MIT License)
-
-Copyright (c) 2014 Jonathan Ong <me@jongleberry.com>
-Copyright (c) 2014 Douglas Christopher Wilson <doug@somethingdoug.com>
-
-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.
diff --git a/node_modules/parseurl/README.md b/node_modules/parseurl/README.md
deleted file mode 100644
index f4796ebbc..000000000
--- a/node_modules/parseurl/README.md
+++ /dev/null
@@ -1,120 +0,0 @@
-# parseurl
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Node.js Version][node-version-image]][node-version-url]
-[![Build Status][travis-image]][travis-url]
-[![Test Coverage][coveralls-image]][coveralls-url]
-
-Parse a URL with memoization.
-
-## Install
-
-```bash
-$ npm install parseurl
-```
-
-## API
-
-```js
-var parseurl = require('parseurl')
-```
-
-### parseurl(req)
-
-Parse the URL of the given request object (looks at the `req.url` property)
-and return the result. The result is the same as `url.parse` in Node.js core.
-Calling this function multiple times on the same `req` where `req.url` does
-not change will return a cached parsed object, rather than parsing again.
-
-### parseurl.original(req)
-
-Parse the original URL of the given request object and return the result.
-This works by trying to parse `req.originalUrl` if it is a string, otherwise
-parses `req.url`. The result is the same as `url.parse` in Node.js core.
-Calling this function multiple times on the same `req` where `req.originalUrl`
-does not change will return a cached parsed object, rather than parsing again.
-
-## Benchmark
-
-```bash
-$ npm run-script bench
-
-> parseurl@1.3.1 bench nodejs-parseurl
-> node benchmark/index.js
-
-> node benchmark/fullurl.js
-
- Parsing URL "http://localhost:8888/foo/bar?user=tj&pet=fluffy"
-
- 1 test completed.
- 2 tests completed.
- 3 tests completed.
-
- fasturl x 1,290,780 ops/sec ±0.46% (195 runs sampled)
- nativeurl x 56,401 ops/sec ±0.22% (196 runs sampled)
- parseurl x 55,231 ops/sec ±0.22% (194 runs sampled)
-
-> node benchmark/pathquery.js
-
- Parsing URL "/foo/bar?user=tj&pet=fluffy"
-
- 1 test completed.
- 2 tests completed.
- 3 tests completed.
-
- fasturl x 1,986,668 ops/sec ±0.27% (190 runs sampled)
- nativeurl x 98,740 ops/sec ±0.21% (195 runs sampled)
- parseurl x 2,628,171 ops/sec ±0.36% (195 runs sampled)
-
-> node benchmark/samerequest.js
-
- Parsing URL "/foo/bar?user=tj&pet=fluffy" on same request object
-
- 1 test completed.
- 2 tests completed.
- 3 tests completed.
-
- fasturl x 2,184,468 ops/sec ±0.40% (194 runs sampled)
- nativeurl x 99,437 ops/sec ±0.71% (194 runs sampled)
- parseurl x 10,498,005 ops/sec ±0.61% (186 runs sampled)
-
-> node benchmark/simplepath.js
-
- Parsing URL "/foo/bar"
-
- 1 test completed.
- 2 tests completed.
- 3 tests completed.
-
- fasturl x 4,535,825 ops/sec ±0.27% (191 runs sampled)
- nativeurl x 98,769 ops/sec ±0.54% (191 runs sampled)
- parseurl x 4,164,865 ops/sec ±0.34% (192 runs sampled)
-
-> node benchmark/slash.js
-
- Parsing URL "/"
-
- 1 test completed.
- 2 tests completed.
- 3 tests completed.
-
- fasturl x 4,908,405 ops/sec ±0.42% (191 runs sampled)
- nativeurl x 100,945 ops/sec ±0.59% (188 runs sampled)
- parseurl x 4,333,208 ops/sec ±0.27% (194 runs sampled)
-```
-
-## License
-
- [MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/parseurl.svg
-[npm-url]: https://npmjs.org/package/parseurl
-[node-version-image]: https://img.shields.io/node/v/parseurl.svg
-[node-version-url]: http://nodejs.org/download/
-[travis-image]: https://img.shields.io/travis/pillarjs/parseurl/master.svg
-[travis-url]: https://travis-ci.org/pillarjs/parseurl
-[coveralls-image]: https://img.shields.io/coveralls/pillarjs/parseurl/master.svg
-[coveralls-url]: https://coveralls.io/r/pillarjs/parseurl?branch=master
-[downloads-image]: https://img.shields.io/npm/dm/parseurl.svg
-[downloads-url]: https://npmjs.org/package/parseurl
diff --git a/node_modules/parseurl/index.js b/node_modules/parseurl/index.js
deleted file mode 100644
index 56cc6ec7e..000000000
--- a/node_modules/parseurl/index.js
+++ /dev/null
@@ -1,138 +0,0 @@
-/*!
- * parseurl
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2014 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module dependencies.
- */
-
-var url = require('url')
-var parse = url.parse
-var Url = url.Url
-
-/**
- * Pattern for a simple path case.
- * See: https://github.com/joyent/node/pull/7878
- */
-
-var simplePathRegExp = /^(\/\/?(?!\/)[^\?#\s]*)(\?[^#\s]*)?$/
-
-/**
- * Exports.
- */
-
-module.exports = parseurl
-module.exports.original = originalurl
-
-/**
- * Parse the `req` url with memoization.
- *
- * @param {ServerRequest} req
- * @return {Object}
- * @api public
- */
-
-function parseurl(req) {
- var url = req.url
-
- if (url === undefined) {
- // URL is undefined
- return undefined
- }
-
- var parsed = req._parsedUrl
-
- if (fresh(url, parsed)) {
- // Return cached URL parse
- return parsed
- }
-
- // Parse the URL
- parsed = fastparse(url)
- parsed._raw = url
-
- return req._parsedUrl = parsed
-};
-
-/**
- * Parse the `req` original url with fallback and memoization.
- *
- * @param {ServerRequest} req
- * @return {Object}
- * @api public
- */
-
-function originalurl(req) {
- var url = req.originalUrl
-
- if (typeof url !== 'string') {
- // Fallback
- return parseurl(req)
- }
-
- var parsed = req._parsedOriginalUrl
-
- if (fresh(url, parsed)) {
- // Return cached URL parse
- return parsed
- }
-
- // Parse the URL
- parsed = fastparse(url)
- parsed._raw = url
-
- return req._parsedOriginalUrl = parsed
-};
-
-/**
- * Parse the `str` url with fast-path short-cut.
- *
- * @param {string} str
- * @return {Object}
- * @api private
- */
-
-function fastparse(str) {
- // Try fast path regexp
- // See: https://github.com/joyent/node/pull/7878
- var simplePath = typeof str === 'string' && simplePathRegExp.exec(str)
-
- // Construct simple URL
- if (simplePath) {
- var pathname = simplePath[1]
- var search = simplePath[2] || null
- var url = Url !== undefined
- ? new Url()
- : {}
- url.path = str
- url.href = str
- url.pathname = pathname
- url.search = search
- url.query = search && search.substr(1)
-
- return url
- }
-
- return parse(str)
-}
-
-/**
- * Determine if parsed is still fresh for url.
- *
- * @param {string} url
- * @param {object} parsedUrl
- * @return {boolean}
- * @api private
- */
-
-function fresh(url, parsedUrl) {
- return typeof parsedUrl === 'object'
- && parsedUrl !== null
- && (Url === undefined || parsedUrl instanceof Url)
- && parsedUrl._raw === url
-}
diff --git a/node_modules/parseurl/package.json b/node_modules/parseurl/package.json
deleted file mode 100644
index 6bca64c80..000000000
--- a/node_modules/parseurl/package.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "name": "parseurl",
- "description": "parse a url with memoization",
- "version": "1.3.1",
- "author": "Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)",
- "contributors": [
- "Douglas Christopher Wilson <doug@somethingdoug.com>"
- ],
- "repository": "pillarjs/parseurl",
- "license": "MIT",
- "devDependencies": {
- "benchmark": "2.0.0",
- "beautify-benchmark": "0.2.4",
- "fast-url-parser": "1.1.3",
- "istanbul": "0.4.2",
- "mocha": "~1.21.5"
- },
- "files": [
- "LICENSE",
- "HISTORY.md",
- "README.md",
- "index.js"
- ],
- "engines": {
- "node": ">= 0.8"
- },
- "scripts": {
- "bench": "node benchmark/index.js",
- "test": "mocha --check-leaks --bail --reporter spec test/",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot test/",
- "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec test/"
- }
-}
diff --git a/node_modules/path-is-inside/LICENSE.txt b/node_modules/path-is-inside/LICENSE.txt
deleted file mode 100644
index 0bdbb61c9..000000000
--- a/node_modules/path-is-inside/LICENSE.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-Dual licensed under WTFPL and MIT:
-
----
-
-Copyright © 2013–2016 Domenic Denicola <d@domenic.me>
-
-This work is free. You can redistribute it and/or modify it under the
-terms of the Do What The Fuck You Want To Public License, Version 2,
-as published by Sam Hocevar. See below for more details.
-
- DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
- Version 2, December 2004
-
- Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
-
- Everyone is permitted to copy and distribute verbatim or modified
- copies of this license document, and changing it is allowed as long
- as the name is changed.
-
- DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. You just DO WHAT THE FUCK YOU WANT TO.
-
----
-
-The MIT License (MIT)
-
-Copyright © 2013–2016 Domenic Denicola <d@domenic.me>
-
-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.
diff --git a/node_modules/path-is-inside/lib/path-is-inside.js b/node_modules/path-is-inside/lib/path-is-inside.js
deleted file mode 100644
index 596dfd3b3..000000000
--- a/node_modules/path-is-inside/lib/path-is-inside.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-
-var path = require("path");
-
-module.exports = function (thePath, potentialParent) {
- // For inside-directory checking, we want to allow trailing slashes, so normalize.
- thePath = stripTrailingSep(thePath);
- potentialParent = stripTrailingSep(potentialParent);
-
- // Node treats only Windows as case-insensitive in its path module; we follow those conventions.
- if (process.platform === "win32") {
- thePath = thePath.toLowerCase();
- potentialParent = potentialParent.toLowerCase();
- }
-
- return thePath.lastIndexOf(potentialParent, 0) === 0 &&
- (
- thePath[potentialParent.length] === path.sep ||
- thePath[potentialParent.length] === undefined
- );
-};
-
-function stripTrailingSep(thePath) {
- if (thePath[thePath.length - 1] === path.sep) {
- return thePath.slice(0, -1);
- }
- return thePath;
-}
diff --git a/node_modules/path-is-inside/package.json b/node_modules/path-is-inside/package.json
deleted file mode 100644
index 74c56e695..000000000
--- a/node_modules/path-is-inside/package.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "name": "path-is-inside",
- "description": "Tests whether one path is inside another path",
- "keywords": ["path", "directory", "folder", "inside", "relative"],
- "version": "1.0.2",
- "author": "Domenic Denicola <d@domenic.me> (https://domenic.me)",
- "license": "(WTFPL OR MIT)",
- "repository": "domenic/path-is-inside",
- "main": "lib/path-is-inside.js",
- "files": [
- "lib"
- ],
- "scripts": {
- "test": "mocha",
- "lint": "jshint lib"
- },
- "devDependencies": {
- "jshint": "~2.3.0",
- "mocha": "~1.15.1"
- }
-}
diff --git a/node_modules/prelude-ls/CHANGELOG.md b/node_modules/prelude-ls/CHANGELOG.md
deleted file mode 100644
index c2de12d56..000000000
--- a/node_modules/prelude-ls/CHANGELOG.md
+++ /dev/null
@@ -1,99 +0,0 @@
-# 1.1.2
-- add `Func.memoize`
-- fix `zip-all` and `zip-with-all` corner case (no input)
-- build with LiveScript 1.4.0
-
-# 1.1.1
-- curry `unique-by`, `minimum-by`
-
-# 1.1.0
-- added `List` functions: `maximum-by`, `minimum-by`, `unique-by`
-- added `List` functions: `at`, `elem-index`, `elem-indices`, `find-index`, `find-indices`
-- added `Str` functions: `capitalize`, `camelize`, `dasherize`
-- added `Func` function: `over` - eg. ``same-length = (==) `over` (.length)``
-- exported `Str.repeat` through main `prelude` object
-- fixed definition of `foldr` and `foldr1`, the new correct definition is backwards incompatible with the old, incorrect one
-- fixed issue with `fix`
-- improved code coverage
-
-# 1.0.3
-- build browser versions
-
-# 1.0.2
-- bug fix for `flatten` - slight change with bug fix, flattens arrays only, not array-like objects
-
-# 1.0.1
-- bug fixes for `drop-while` and `take-while`
-
-# 1.0.0
-* massive update - separated functions into separate modules
-* functions do not accept multiple types anymore - use different versions in their respective modules in some cases (eg. `Obj.map`), or use `chars` or `values` in other cases to transform into a list
-* objects are no longer transformed into functions, simply use `(obj.)` in LiveScript to do that
-* browser version now using browserify - use `prelude = require('prelude-ls')`
-* added `compact`, `split`, `flatten`, `difference`, `intersection`, `union`, `count-by`, `group-by`, `chars`, `unchars`, `apply`
-* added `lists-to-obj` which takes a list of keys and list of values and zips them up into an object, and the converse `obj-to-lists`
-* added `pairs-to-obj` which takes a list of pairs (2 element lists) and creates an object, and the converse `obj-to-pairs`
-* removed `cons`, `append` - use the concat operator
-* removed `compose` - use the compose operator
-* removed `obj-to-func` - use partially applied access (eg. `(obj.)`)
-* removed `length` - use `(.length)`
-* `sort-by` renamed to `sort-with`
-* added new `sort-by`
-* removed `compare` - just use the new `sort-by`
-* `break-it` renamed `break-list`, (`Str.break-str` for the string version)
-* added `Str.repeat` which creates a new string by repeating the input n times
-* `unfold` as alias to `unfoldr` is no longer used
-* fixed up style and compiled with LiveScript 1.1.1
-* use Make instead of Slake
-* greatly improved tests
-
-# 0.6.0
-* fixed various bugs
-* added `fix`, a fixpoint (Y combinator) for anonymous recursive functions
-* added `unfoldr` (alias `unfold`)
-* calling `replicate` with a string now returns a list of strings
-* removed `partial`, just use native partial application in LiveScript using the `_` placeholder, or currying
-* added `sort`, `sortBy`, and `compare`
-
-# 0.5.0
-* removed `lookup` - use (.prop)
-* removed `call` - use (.func arg1, arg2)
-* removed `pluck` - use map (.prop), xs
-* fixed buys wtih `head` and `last`
-* added non-minifed browser version, as `prelude-browser.js`
-* renamed `prelude-min.js` to `prelude-browser-min.js`
-* renamed `zip` to `zipAll`
-* renamed `zipWith` to `zipAllWith`
-* added `zip`, a curried zip that takes only two arguments
-* added `zipWith`, a curried zipWith that takes only two arguments
-
-# 0.4.0
-* added `parition` function
-* added `curry` function
-* removed `elem` function (use `in`)
-* removed `notElem` function (use `not in`)
-
-# 0.3.0
-* added `listToObject`
-* added `unique`
-* added `objToFunc`
-* added support for using strings in map and the like
-* added support for using objects in map and the like
-* added ability to use objects instead of functions in certain cases
-* removed `error` (just use throw)
-* added `tau` constant
-* added `join`
-* added `values`
-* added `keys`
-* added `partial`
-* renamed `log` to `ln`
-* added alias to `head`: `first`
-* added `installPrelude` helper
-
-# 0.2.0
-* removed functions that simply warp operators as you can now use operators as functions in LiveScript
-* `min/max` are now curried and take only 2 arguments
-* added `call`
-
-# 0.1.0
-* initial public release
diff --git a/node_modules/prelude-ls/LICENSE b/node_modules/prelude-ls/LICENSE
deleted file mode 100644
index 525b11850..000000000
--- a/node_modules/prelude-ls/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) George Zahariev
-
-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.
diff --git a/node_modules/prelude-ls/README.md b/node_modules/prelude-ls/README.md
deleted file mode 100644
index fabc212e7..000000000
--- a/node_modules/prelude-ls/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# prelude.ls [![Build Status](https://travis-ci.org/gkz/prelude-ls.png?branch=master)](https://travis-ci.org/gkz/prelude-ls)
-
-is a functionally oriented utility library. It is powerful and flexible. Almost all of its functions are curried. It is written in, and is the recommended base library for, <a href="http://livescript.net">LiveScript</a>.
-
-See **[the prelude.ls site](http://preludels.com)** for examples, a reference, and more.
-
-You can install via npm `npm install prelude-ls`
-
-### Development
-
-`make test` to test
-
-`make build` to build `lib` from `src`
-
-`make build-browser` to build browser versions
diff --git a/node_modules/prelude-ls/lib/Func.js b/node_modules/prelude-ls/lib/Func.js
deleted file mode 100644
index b80c9b13d..000000000
--- a/node_modules/prelude-ls/lib/Func.js
+++ /dev/null
@@ -1,65 +0,0 @@
-// Generated by LiveScript 1.4.0
-var apply, curry, flip, fix, over, memoize, slice$ = [].slice, toString$ = {}.toString;
-apply = curry$(function(f, list){
- return f.apply(null, list);
-});
-curry = function(f){
- return curry$(f);
-};
-flip = curry$(function(f, x, y){
- return f(y, x);
-});
-fix = function(f){
- return function(g){
- return function(){
- return f(g(g)).apply(null, arguments);
- };
- }(function(g){
- return function(){
- return f(g(g)).apply(null, arguments);
- };
- });
-};
-over = curry$(function(f, g, x, y){
- return f(g(x), g(y));
-});
-memoize = function(f){
- var memo;
- memo = {};
- return function(){
- var args, key, arg;
- args = slice$.call(arguments);
- key = (function(){
- var i$, ref$, len$, results$ = [];
- for (i$ = 0, len$ = (ref$ = args).length; i$ < len$; ++i$) {
- arg = ref$[i$];
- results$.push(arg + toString$.call(arg).slice(8, -1));
- }
- return results$;
- }()).join('');
- return memo[key] = key in memo
- ? memo[key]
- : f.apply(null, args);
- };
-};
-module.exports = {
- curry: curry,
- flip: flip,
- fix: fix,
- apply: apply,
- over: over,
- memoize: memoize
-};
-function curry$(f, bound){
- var context,
- _curry = function(args) {
- return f.length > 1 ? function(){
- var params = args ? args.concat() : [];
- context = bound ? context || this : this;
- return params.push.apply(params, arguments) <
- f.length && arguments.length ?
- _curry.call(context, params) : f.apply(context, params);
- } : f;
- };
- return _curry();
-} \ No newline at end of file
diff --git a/node_modules/prelude-ls/lib/List.js b/node_modules/prelude-ls/lib/List.js
deleted file mode 100644
index 5790816b1..000000000
--- a/node_modules/prelude-ls/lib/List.js
+++ /dev/null
@@ -1,686 +0,0 @@
-// Generated by LiveScript 1.4.0
-var each, map, compact, filter, reject, partition, find, head, first, tail, last, initial, empty, reverse, unique, uniqueBy, fold, foldl, fold1, foldl1, foldr, foldr1, unfoldr, concat, concatMap, flatten, difference, intersection, union, countBy, groupBy, andList, orList, any, all, sort, sortWith, sortBy, sum, product, mean, average, maximum, minimum, maximumBy, minimumBy, scan, scanl, scan1, scanl1, scanr, scanr1, slice, take, drop, splitAt, takeWhile, dropWhile, span, breakList, zip, zipWith, zipAll, zipAllWith, at, elemIndex, elemIndices, findIndex, findIndices, toString$ = {}.toString, slice$ = [].slice;
-each = curry$(function(f, xs){
- var i$, len$, x;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- f(x);
- }
- return xs;
-});
-map = curry$(function(f, xs){
- var i$, len$, x, results$ = [];
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- results$.push(f(x));
- }
- return results$;
-});
-compact = function(xs){
- var i$, len$, x, results$ = [];
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- if (x) {
- results$.push(x);
- }
- }
- return results$;
-};
-filter = curry$(function(f, xs){
- var i$, len$, x, results$ = [];
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- if (f(x)) {
- results$.push(x);
- }
- }
- return results$;
-});
-reject = curry$(function(f, xs){
- var i$, len$, x, results$ = [];
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- if (!f(x)) {
- results$.push(x);
- }
- }
- return results$;
-});
-partition = curry$(function(f, xs){
- var passed, failed, i$, len$, x;
- passed = [];
- failed = [];
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- (f(x) ? passed : failed).push(x);
- }
- return [passed, failed];
-});
-find = curry$(function(f, xs){
- var i$, len$, x;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- if (f(x)) {
- return x;
- }
- }
-});
-head = first = function(xs){
- return xs[0];
-};
-tail = function(xs){
- if (!xs.length) {
- return;
- }
- return xs.slice(1);
-};
-last = function(xs){
- return xs[xs.length - 1];
-};
-initial = function(xs){
- if (!xs.length) {
- return;
- }
- return xs.slice(0, -1);
-};
-empty = function(xs){
- return !xs.length;
-};
-reverse = function(xs){
- return xs.concat().reverse();
-};
-unique = function(xs){
- var result, i$, len$, x;
- result = [];
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- if (!in$(x, result)) {
- result.push(x);
- }
- }
- return result;
-};
-uniqueBy = curry$(function(f, xs){
- var seen, i$, len$, x, val, results$ = [];
- seen = [];
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- val = f(x);
- if (in$(val, seen)) {
- continue;
- }
- seen.push(val);
- results$.push(x);
- }
- return results$;
-});
-fold = foldl = curry$(function(f, memo, xs){
- var i$, len$, x;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- memo = f(memo, x);
- }
- return memo;
-});
-fold1 = foldl1 = curry$(function(f, xs){
- return fold(f, xs[0], xs.slice(1));
-});
-foldr = curry$(function(f, memo, xs){
- var i$, x;
- for (i$ = xs.length - 1; i$ >= 0; --i$) {
- x = xs[i$];
- memo = f(x, memo);
- }
- return memo;
-});
-foldr1 = curry$(function(f, xs){
- return foldr(f, xs[xs.length - 1], xs.slice(0, -1));
-});
-unfoldr = curry$(function(f, b){
- var result, x, that;
- result = [];
- x = b;
- while ((that = f(x)) != null) {
- result.push(that[0]);
- x = that[1];
- }
- return result;
-});
-concat = function(xss){
- return [].concat.apply([], xss);
-};
-concatMap = curry$(function(f, xs){
- var x;
- return [].concat.apply([], (function(){
- var i$, ref$, len$, results$ = [];
- for (i$ = 0, len$ = (ref$ = xs).length; i$ < len$; ++i$) {
- x = ref$[i$];
- results$.push(f(x));
- }
- return results$;
- }()));
-});
-flatten = function(xs){
- var x;
- return [].concat.apply([], (function(){
- var i$, ref$, len$, results$ = [];
- for (i$ = 0, len$ = (ref$ = xs).length; i$ < len$; ++i$) {
- x = ref$[i$];
- if (toString$.call(x).slice(8, -1) === 'Array') {
- results$.push(flatten(x));
- } else {
- results$.push(x);
- }
- }
- return results$;
- }()));
-};
-difference = function(xs){
- var yss, results, i$, len$, x, j$, len1$, ys;
- yss = slice$.call(arguments, 1);
- results = [];
- outer: for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- for (j$ = 0, len1$ = yss.length; j$ < len1$; ++j$) {
- ys = yss[j$];
- if (in$(x, ys)) {
- continue outer;
- }
- }
- results.push(x);
- }
- return results;
-};
-intersection = function(xs){
- var yss, results, i$, len$, x, j$, len1$, ys;
- yss = slice$.call(arguments, 1);
- results = [];
- outer: for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- for (j$ = 0, len1$ = yss.length; j$ < len1$; ++j$) {
- ys = yss[j$];
- if (!in$(x, ys)) {
- continue outer;
- }
- }
- results.push(x);
- }
- return results;
-};
-union = function(){
- var xss, results, i$, len$, xs, j$, len1$, x;
- xss = slice$.call(arguments);
- results = [];
- for (i$ = 0, len$ = xss.length; i$ < len$; ++i$) {
- xs = xss[i$];
- for (j$ = 0, len1$ = xs.length; j$ < len1$; ++j$) {
- x = xs[j$];
- if (!in$(x, results)) {
- results.push(x);
- }
- }
- }
- return results;
-};
-countBy = curry$(function(f, xs){
- var results, i$, len$, x, key;
- results = {};
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- key = f(x);
- if (key in results) {
- results[key] += 1;
- } else {
- results[key] = 1;
- }
- }
- return results;
-});
-groupBy = curry$(function(f, xs){
- var results, i$, len$, x, key;
- results = {};
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- key = f(x);
- if (key in results) {
- results[key].push(x);
- } else {
- results[key] = [x];
- }
- }
- return results;
-});
-andList = function(xs){
- var i$, len$, x;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- if (!x) {
- return false;
- }
- }
- return true;
-};
-orList = function(xs){
- var i$, len$, x;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- if (x) {
- return true;
- }
- }
- return false;
-};
-any = curry$(function(f, xs){
- var i$, len$, x;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- if (f(x)) {
- return true;
- }
- }
- return false;
-});
-all = curry$(function(f, xs){
- var i$, len$, x;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- if (!f(x)) {
- return false;
- }
- }
- return true;
-});
-sort = function(xs){
- return xs.concat().sort(function(x, y){
- if (x > y) {
- return 1;
- } else if (x < y) {
- return -1;
- } else {
- return 0;
- }
- });
-};
-sortWith = curry$(function(f, xs){
- return xs.concat().sort(f);
-});
-sortBy = curry$(function(f, xs){
- return xs.concat().sort(function(x, y){
- if (f(x) > f(y)) {
- return 1;
- } else if (f(x) < f(y)) {
- return -1;
- } else {
- return 0;
- }
- });
-});
-sum = function(xs){
- var result, i$, len$, x;
- result = 0;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- result += x;
- }
- return result;
-};
-product = function(xs){
- var result, i$, len$, x;
- result = 1;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- result *= x;
- }
- return result;
-};
-mean = average = function(xs){
- var sum, i$, len$, x;
- sum = 0;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- sum += x;
- }
- return sum / xs.length;
-};
-maximum = function(xs){
- var max, i$, ref$, len$, x;
- max = xs[0];
- for (i$ = 0, len$ = (ref$ = xs.slice(1)).length; i$ < len$; ++i$) {
- x = ref$[i$];
- if (x > max) {
- max = x;
- }
- }
- return max;
-};
-minimum = function(xs){
- var min, i$, ref$, len$, x;
- min = xs[0];
- for (i$ = 0, len$ = (ref$ = xs.slice(1)).length; i$ < len$; ++i$) {
- x = ref$[i$];
- if (x < min) {
- min = x;
- }
- }
- return min;
-};
-maximumBy = curry$(function(f, xs){
- var max, i$, ref$, len$, x;
- max = xs[0];
- for (i$ = 0, len$ = (ref$ = xs.slice(1)).length; i$ < len$; ++i$) {
- x = ref$[i$];
- if (f(x) > f(max)) {
- max = x;
- }
- }
- return max;
-});
-minimumBy = curry$(function(f, xs){
- var min, i$, ref$, len$, x;
- min = xs[0];
- for (i$ = 0, len$ = (ref$ = xs.slice(1)).length; i$ < len$; ++i$) {
- x = ref$[i$];
- if (f(x) < f(min)) {
- min = x;
- }
- }
- return min;
-});
-scan = scanl = curry$(function(f, memo, xs){
- var last, x;
- last = memo;
- return [memo].concat((function(){
- var i$, ref$, len$, results$ = [];
- for (i$ = 0, len$ = (ref$ = xs).length; i$ < len$; ++i$) {
- x = ref$[i$];
- results$.push(last = f(last, x));
- }
- return results$;
- }()));
-});
-scan1 = scanl1 = curry$(function(f, xs){
- if (!xs.length) {
- return;
- }
- return scan(f, xs[0], xs.slice(1));
-});
-scanr = curry$(function(f, memo, xs){
- xs = xs.concat().reverse();
- return scan(f, memo, xs).reverse();
-});
-scanr1 = curry$(function(f, xs){
- if (!xs.length) {
- return;
- }
- xs = xs.concat().reverse();
- return scan(f, xs[0], xs.slice(1)).reverse();
-});
-slice = curry$(function(x, y, xs){
- return xs.slice(x, y);
-});
-take = curry$(function(n, xs){
- if (n <= 0) {
- return xs.slice(0, 0);
- } else {
- return xs.slice(0, n);
- }
-});
-drop = curry$(function(n, xs){
- if (n <= 0) {
- return xs;
- } else {
- return xs.slice(n);
- }
-});
-splitAt = curry$(function(n, xs){
- return [take(n, xs), drop(n, xs)];
-});
-takeWhile = curry$(function(p, xs){
- var len, i;
- len = xs.length;
- if (!len) {
- return xs;
- }
- i = 0;
- while (i < len && p(xs[i])) {
- i += 1;
- }
- return xs.slice(0, i);
-});
-dropWhile = curry$(function(p, xs){
- var len, i;
- len = xs.length;
- if (!len) {
- return xs;
- }
- i = 0;
- while (i < len && p(xs[i])) {
- i += 1;
- }
- return xs.slice(i);
-});
-span = curry$(function(p, xs){
- return [takeWhile(p, xs), dropWhile(p, xs)];
-});
-breakList = curry$(function(p, xs){
- return span(compose$(p, not$), xs);
-});
-zip = curry$(function(xs, ys){
- var result, len, i$, len$, i, x;
- result = [];
- len = ys.length;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- i = i$;
- x = xs[i$];
- if (i === len) {
- break;
- }
- result.push([x, ys[i]]);
- }
- return result;
-});
-zipWith = curry$(function(f, xs, ys){
- var result, len, i$, len$, i, x;
- result = [];
- len = ys.length;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- i = i$;
- x = xs[i$];
- if (i === len) {
- break;
- }
- result.push(f(x, ys[i]));
- }
- return result;
-});
-zipAll = function(){
- var xss, minLength, i$, len$, xs, ref$, i, lresult$, j$, results$ = [];
- xss = slice$.call(arguments);
- minLength = undefined;
- for (i$ = 0, len$ = xss.length; i$ < len$; ++i$) {
- xs = xss[i$];
- minLength <= (ref$ = xs.length) || (minLength = ref$);
- }
- for (i$ = 0; i$ < minLength; ++i$) {
- i = i$;
- lresult$ = [];
- for (j$ = 0, len$ = xss.length; j$ < len$; ++j$) {
- xs = xss[j$];
- lresult$.push(xs[i]);
- }
- results$.push(lresult$);
- }
- return results$;
-};
-zipAllWith = function(f){
- var xss, minLength, i$, len$, xs, ref$, i, results$ = [];
- xss = slice$.call(arguments, 1);
- minLength = undefined;
- for (i$ = 0, len$ = xss.length; i$ < len$; ++i$) {
- xs = xss[i$];
- minLength <= (ref$ = xs.length) || (minLength = ref$);
- }
- for (i$ = 0; i$ < minLength; ++i$) {
- i = i$;
- results$.push(f.apply(null, (fn$())));
- }
- return results$;
- function fn$(){
- var i$, ref$, len$, results$ = [];
- for (i$ = 0, len$ = (ref$ = xss).length; i$ < len$; ++i$) {
- xs = ref$[i$];
- results$.push(xs[i]);
- }
- return results$;
- }
-};
-at = curry$(function(n, xs){
- if (n < 0) {
- return xs[xs.length + n];
- } else {
- return xs[n];
- }
-});
-elemIndex = curry$(function(el, xs){
- var i$, len$, i, x;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- i = i$;
- x = xs[i$];
- if (x === el) {
- return i;
- }
- }
-});
-elemIndices = curry$(function(el, xs){
- var i$, len$, i, x, results$ = [];
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- i = i$;
- x = xs[i$];
- if (x === el) {
- results$.push(i);
- }
- }
- return results$;
-});
-findIndex = curry$(function(f, xs){
- var i$, len$, i, x;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- i = i$;
- x = xs[i$];
- if (f(x)) {
- return i;
- }
- }
-});
-findIndices = curry$(function(f, xs){
- var i$, len$, i, x, results$ = [];
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- i = i$;
- x = xs[i$];
- if (f(x)) {
- results$.push(i);
- }
- }
- return results$;
-});
-module.exports = {
- each: each,
- map: map,
- filter: filter,
- compact: compact,
- reject: reject,
- partition: partition,
- find: find,
- head: head,
- first: first,
- tail: tail,
- last: last,
- initial: initial,
- empty: empty,
- reverse: reverse,
- difference: difference,
- intersection: intersection,
- union: union,
- countBy: countBy,
- groupBy: groupBy,
- fold: fold,
- fold1: fold1,
- foldl: foldl,
- foldl1: foldl1,
- foldr: foldr,
- foldr1: foldr1,
- unfoldr: unfoldr,
- andList: andList,
- orList: orList,
- any: any,
- all: all,
- unique: unique,
- uniqueBy: uniqueBy,
- sort: sort,
- sortWith: sortWith,
- sortBy: sortBy,
- sum: sum,
- product: product,
- mean: mean,
- average: average,
- concat: concat,
- concatMap: concatMap,
- flatten: flatten,
- maximum: maximum,
- minimum: minimum,
- maximumBy: maximumBy,
- minimumBy: minimumBy,
- scan: scan,
- scan1: scan1,
- scanl: scanl,
- scanl1: scanl1,
- scanr: scanr,
- scanr1: scanr1,
- slice: slice,
- take: take,
- drop: drop,
- splitAt: splitAt,
- takeWhile: takeWhile,
- dropWhile: dropWhile,
- span: span,
- breakList: breakList,
- zip: zip,
- zipWith: zipWith,
- zipAll: zipAll,
- zipAllWith: zipAllWith,
- at: at,
- elemIndex: elemIndex,
- elemIndices: elemIndices,
- findIndex: findIndex,
- findIndices: findIndices
-};
-function curry$(f, bound){
- var context,
- _curry = function(args) {
- return f.length > 1 ? function(){
- var params = args ? args.concat() : [];
- context = bound ? context || this : this;
- return params.push.apply(params, arguments) <
- f.length && arguments.length ?
- _curry.call(context, params) : f.apply(context, params);
- } : f;
- };
- return _curry();
-}
-function in$(x, xs){
- var i = -1, l = xs.length >>> 0;
- while (++i < l) if (x === xs[i]) return true;
- return false;
-}
-function compose$() {
- var functions = arguments;
- return function() {
- var i, result;
- result = functions[0].apply(this, arguments);
- for (i = 1; i < functions.length; ++i) {
- result = functions[i](result);
- }
- return result;
- };
-}
-function not$(x){ return !x; } \ No newline at end of file
diff --git a/node_modules/prelude-ls/lib/Num.js b/node_modules/prelude-ls/lib/Num.js
deleted file mode 100644
index 0e25be7b3..000000000
--- a/node_modules/prelude-ls/lib/Num.js
+++ /dev/null
@@ -1,130 +0,0 @@
-// Generated by LiveScript 1.4.0
-var max, min, negate, abs, signum, quot, rem, div, mod, recip, pi, tau, exp, sqrt, ln, pow, sin, tan, cos, asin, acos, atan, atan2, truncate, round, ceiling, floor, isItNaN, even, odd, gcd, lcm;
-max = curry$(function(x$, y$){
- return x$ > y$ ? x$ : y$;
-});
-min = curry$(function(x$, y$){
- return x$ < y$ ? x$ : y$;
-});
-negate = function(x){
- return -x;
-};
-abs = Math.abs;
-signum = function(x){
- if (x < 0) {
- return -1;
- } else if (x > 0) {
- return 1;
- } else {
- return 0;
- }
-};
-quot = curry$(function(x, y){
- return ~~(x / y);
-});
-rem = curry$(function(x$, y$){
- return x$ % y$;
-});
-div = curry$(function(x, y){
- return Math.floor(x / y);
-});
-mod = curry$(function(x$, y$){
- var ref$;
- return (((x$) % (ref$ = y$) + ref$) % ref$);
-});
-recip = (function(it){
- return 1 / it;
-});
-pi = Math.PI;
-tau = pi * 2;
-exp = Math.exp;
-sqrt = Math.sqrt;
-ln = Math.log;
-pow = curry$(function(x$, y$){
- return Math.pow(x$, y$);
-});
-sin = Math.sin;
-tan = Math.tan;
-cos = Math.cos;
-asin = Math.asin;
-acos = Math.acos;
-atan = Math.atan;
-atan2 = curry$(function(x, y){
- return Math.atan2(x, y);
-});
-truncate = function(x){
- return ~~x;
-};
-round = Math.round;
-ceiling = Math.ceil;
-floor = Math.floor;
-isItNaN = function(x){
- return x !== x;
-};
-even = function(x){
- return x % 2 === 0;
-};
-odd = function(x){
- return x % 2 !== 0;
-};
-gcd = curry$(function(x, y){
- var z;
- x = Math.abs(x);
- y = Math.abs(y);
- while (y !== 0) {
- z = x % y;
- x = y;
- y = z;
- }
- return x;
-});
-lcm = curry$(function(x, y){
- return Math.abs(Math.floor(x / gcd(x, y) * y));
-});
-module.exports = {
- max: max,
- min: min,
- negate: negate,
- abs: abs,
- signum: signum,
- quot: quot,
- rem: rem,
- div: div,
- mod: mod,
- recip: recip,
- pi: pi,
- tau: tau,
- exp: exp,
- sqrt: sqrt,
- ln: ln,
- pow: pow,
- sin: sin,
- tan: tan,
- cos: cos,
- acos: acos,
- asin: asin,
- atan: atan,
- atan2: atan2,
- truncate: truncate,
- round: round,
- ceiling: ceiling,
- floor: floor,
- isItNaN: isItNaN,
- even: even,
- odd: odd,
- gcd: gcd,
- lcm: lcm
-};
-function curry$(f, bound){
- var context,
- _curry = function(args) {
- return f.length > 1 ? function(){
- var params = args ? args.concat() : [];
- context = bound ? context || this : this;
- return params.push.apply(params, arguments) <
- f.length && arguments.length ?
- _curry.call(context, params) : f.apply(context, params);
- } : f;
- };
- return _curry();
-} \ No newline at end of file
diff --git a/node_modules/prelude-ls/lib/Obj.js b/node_modules/prelude-ls/lib/Obj.js
deleted file mode 100644
index f0a921ffd..000000000
--- a/node_modules/prelude-ls/lib/Obj.js
+++ /dev/null
@@ -1,154 +0,0 @@
-// Generated by LiveScript 1.4.0
-var values, keys, pairsToObj, objToPairs, listsToObj, objToLists, empty, each, map, compact, filter, reject, partition, find;
-values = function(object){
- var i$, x, results$ = [];
- for (i$ in object) {
- x = object[i$];
- results$.push(x);
- }
- return results$;
-};
-keys = function(object){
- var x, results$ = [];
- for (x in object) {
- results$.push(x);
- }
- return results$;
-};
-pairsToObj = function(object){
- var i$, len$, x, resultObj$ = {};
- for (i$ = 0, len$ = object.length; i$ < len$; ++i$) {
- x = object[i$];
- resultObj$[x[0]] = x[1];
- }
- return resultObj$;
-};
-objToPairs = function(object){
- var key, value, results$ = [];
- for (key in object) {
- value = object[key];
- results$.push([key, value]);
- }
- return results$;
-};
-listsToObj = curry$(function(keys, values){
- var i$, len$, i, key, resultObj$ = {};
- for (i$ = 0, len$ = keys.length; i$ < len$; ++i$) {
- i = i$;
- key = keys[i$];
- resultObj$[key] = values[i];
- }
- return resultObj$;
-});
-objToLists = function(object){
- var keys, values, key, value;
- keys = [];
- values = [];
- for (key in object) {
- value = object[key];
- keys.push(key);
- values.push(value);
- }
- return [keys, values];
-};
-empty = function(object){
- var x;
- for (x in object) {
- return false;
- }
- return true;
-};
-each = curry$(function(f, object){
- var i$, x;
- for (i$ in object) {
- x = object[i$];
- f(x);
- }
- return object;
-});
-map = curry$(function(f, object){
- var k, x, resultObj$ = {};
- for (k in object) {
- x = object[k];
- resultObj$[k] = f(x);
- }
- return resultObj$;
-});
-compact = function(object){
- var k, x, resultObj$ = {};
- for (k in object) {
- x = object[k];
- if (x) {
- resultObj$[k] = x;
- }
- }
- return resultObj$;
-};
-filter = curry$(function(f, object){
- var k, x, resultObj$ = {};
- for (k in object) {
- x = object[k];
- if (f(x)) {
- resultObj$[k] = x;
- }
- }
- return resultObj$;
-});
-reject = curry$(function(f, object){
- var k, x, resultObj$ = {};
- for (k in object) {
- x = object[k];
- if (!f(x)) {
- resultObj$[k] = x;
- }
- }
- return resultObj$;
-});
-partition = curry$(function(f, object){
- var passed, failed, k, x;
- passed = {};
- failed = {};
- for (k in object) {
- x = object[k];
- (f(x) ? passed : failed)[k] = x;
- }
- return [passed, failed];
-});
-find = curry$(function(f, object){
- var i$, x;
- for (i$ in object) {
- x = object[i$];
- if (f(x)) {
- return x;
- }
- }
-});
-module.exports = {
- values: values,
- keys: keys,
- pairsToObj: pairsToObj,
- objToPairs: objToPairs,
- listsToObj: listsToObj,
- objToLists: objToLists,
- empty: empty,
- each: each,
- map: map,
- filter: filter,
- compact: compact,
- reject: reject,
- partition: partition,
- find: find
-};
-function curry$(f, bound){
- var context,
- _curry = function(args) {
- return f.length > 1 ? function(){
- var params = args ? args.concat() : [];
- context = bound ? context || this : this;
- return params.push.apply(params, arguments) <
- f.length && arguments.length ?
- _curry.call(context, params) : f.apply(context, params);
- } : f;
- };
- return _curry();
-} \ No newline at end of file
diff --git a/node_modules/prelude-ls/lib/Str.js b/node_modules/prelude-ls/lib/Str.js
deleted file mode 100644
index eb9a1ac08..000000000
--- a/node_modules/prelude-ls/lib/Str.js
+++ /dev/null
@@ -1,92 +0,0 @@
-// Generated by LiveScript 1.4.0
-var split, join, lines, unlines, words, unwords, chars, unchars, reverse, repeat, capitalize, camelize, dasherize;
-split = curry$(function(sep, str){
- return str.split(sep);
-});
-join = curry$(function(sep, xs){
- return xs.join(sep);
-});
-lines = function(str){
- if (!str.length) {
- return [];
- }
- return str.split('\n');
-};
-unlines = function(it){
- return it.join('\n');
-};
-words = function(str){
- if (!str.length) {
- return [];
- }
- return str.split(/[ ]+/);
-};
-unwords = function(it){
- return it.join(' ');
-};
-chars = function(it){
- return it.split('');
-};
-unchars = function(it){
- return it.join('');
-};
-reverse = function(str){
- return str.split('').reverse().join('');
-};
-repeat = curry$(function(n, str){
- var result, i$;
- result = '';
- for (i$ = 0; i$ < n; ++i$) {
- result += str;
- }
- return result;
-});
-capitalize = function(str){
- return str.charAt(0).toUpperCase() + str.slice(1);
-};
-camelize = function(it){
- return it.replace(/[-_]+(.)?/g, function(arg$, c){
- return (c != null ? c : '').toUpperCase();
- });
-};
-dasherize = function(str){
- return str.replace(/([^-A-Z])([A-Z]+)/g, function(arg$, lower, upper){
- return lower + "-" + (upper.length > 1
- ? upper
- : upper.toLowerCase());
- }).replace(/^([A-Z]+)/, function(arg$, upper){
- if (upper.length > 1) {
- return upper + "-";
- } else {
- return upper.toLowerCase();
- }
- });
-};
-module.exports = {
- split: split,
- join: join,
- lines: lines,
- unlines: unlines,
- words: words,
- unwords: unwords,
- chars: chars,
- unchars: unchars,
- reverse: reverse,
- repeat: repeat,
- capitalize: capitalize,
- camelize: camelize,
- dasherize: dasherize
-};
-function curry$(f, bound){
- var context,
- _curry = function(args) {
- return f.length > 1 ? function(){
- var params = args ? args.concat() : [];
- context = bound ? context || this : this;
- return params.push.apply(params, arguments) <
- f.length && arguments.length ?
- _curry.call(context, params) : f.apply(context, params);
- } : f;
- };
- return _curry();
-} \ No newline at end of file
diff --git a/node_modules/prelude-ls/lib/index.js b/node_modules/prelude-ls/lib/index.js
deleted file mode 100644
index 391cb2ee3..000000000
--- a/node_modules/prelude-ls/lib/index.js
+++ /dev/null
@@ -1,178 +0,0 @@
-// Generated by LiveScript 1.4.0
-var Func, List, Obj, Str, Num, id, isType, replicate, prelude, toString$ = {}.toString;
-Func = require('./Func.js');
-List = require('./List.js');
-Obj = require('./Obj.js');
-Str = require('./Str.js');
-Num = require('./Num.js');
-id = function(x){
- return x;
-};
-isType = curry$(function(type, x){
- return toString$.call(x).slice(8, -1) === type;
-});
-replicate = curry$(function(n, x){
- var i$, results$ = [];
- for (i$ = 0; i$ < n; ++i$) {
- results$.push(x);
- }
- return results$;
-});
-Str.empty = List.empty;
-Str.slice = List.slice;
-Str.take = List.take;
-Str.drop = List.drop;
-Str.splitAt = List.splitAt;
-Str.takeWhile = List.takeWhile;
-Str.dropWhile = List.dropWhile;
-Str.span = List.span;
-Str.breakStr = List.breakList;
-prelude = {
- Func: Func,
- List: List,
- Obj: Obj,
- Str: Str,
- Num: Num,
- id: id,
- isType: isType,
- replicate: replicate
-};
-prelude.each = List.each;
-prelude.map = List.map;
-prelude.filter = List.filter;
-prelude.compact = List.compact;
-prelude.reject = List.reject;
-prelude.partition = List.partition;
-prelude.find = List.find;
-prelude.head = List.head;
-prelude.first = List.first;
-prelude.tail = List.tail;
-prelude.last = List.last;
-prelude.initial = List.initial;
-prelude.empty = List.empty;
-prelude.reverse = List.reverse;
-prelude.difference = List.difference;
-prelude.intersection = List.intersection;
-prelude.union = List.union;
-prelude.countBy = List.countBy;
-prelude.groupBy = List.groupBy;
-prelude.fold = List.fold;
-prelude.foldl = List.foldl;
-prelude.fold1 = List.fold1;
-prelude.foldl1 = List.foldl1;
-prelude.foldr = List.foldr;
-prelude.foldr1 = List.foldr1;
-prelude.unfoldr = List.unfoldr;
-prelude.andList = List.andList;
-prelude.orList = List.orList;
-prelude.any = List.any;
-prelude.all = List.all;
-prelude.unique = List.unique;
-prelude.uniqueBy = List.uniqueBy;
-prelude.sort = List.sort;
-prelude.sortWith = List.sortWith;
-prelude.sortBy = List.sortBy;
-prelude.sum = List.sum;
-prelude.product = List.product;
-prelude.mean = List.mean;
-prelude.average = List.average;
-prelude.concat = List.concat;
-prelude.concatMap = List.concatMap;
-prelude.flatten = List.flatten;
-prelude.maximum = List.maximum;
-prelude.minimum = List.minimum;
-prelude.maximumBy = List.maximumBy;
-prelude.minimumBy = List.minimumBy;
-prelude.scan = List.scan;
-prelude.scanl = List.scanl;
-prelude.scan1 = List.scan1;
-prelude.scanl1 = List.scanl1;
-prelude.scanr = List.scanr;
-prelude.scanr1 = List.scanr1;
-prelude.slice = List.slice;
-prelude.take = List.take;
-prelude.drop = List.drop;
-prelude.splitAt = List.splitAt;
-prelude.takeWhile = List.takeWhile;
-prelude.dropWhile = List.dropWhile;
-prelude.span = List.span;
-prelude.breakList = List.breakList;
-prelude.zip = List.zip;
-prelude.zipWith = List.zipWith;
-prelude.zipAll = List.zipAll;
-prelude.zipAllWith = List.zipAllWith;
-prelude.at = List.at;
-prelude.elemIndex = List.elemIndex;
-prelude.elemIndices = List.elemIndices;
-prelude.findIndex = List.findIndex;
-prelude.findIndices = List.findIndices;
-prelude.apply = Func.apply;
-prelude.curry = Func.curry;
-prelude.flip = Func.flip;
-prelude.fix = Func.fix;
-prelude.over = Func.over;
-prelude.split = Str.split;
-prelude.join = Str.join;
-prelude.lines = Str.lines;
-prelude.unlines = Str.unlines;
-prelude.words = Str.words;
-prelude.unwords = Str.unwords;
-prelude.chars = Str.chars;
-prelude.unchars = Str.unchars;
-prelude.repeat = Str.repeat;
-prelude.capitalize = Str.capitalize;
-prelude.camelize = Str.camelize;
-prelude.dasherize = Str.dasherize;
-prelude.values = Obj.values;
-prelude.keys = Obj.keys;
-prelude.pairsToObj = Obj.pairsToObj;
-prelude.objToPairs = Obj.objToPairs;
-prelude.listsToObj = Obj.listsToObj;
-prelude.objToLists = Obj.objToLists;
-prelude.max = Num.max;
-prelude.min = Num.min;
-prelude.negate = Num.negate;
-prelude.abs = Num.abs;
-prelude.signum = Num.signum;
-prelude.quot = Num.quot;
-prelude.rem = Num.rem;
-prelude.div = Num.div;
-prelude.mod = Num.mod;
-prelude.recip = Num.recip;
-prelude.pi = Num.pi;
-prelude.tau = Num.tau;
-prelude.exp = Num.exp;
-prelude.sqrt = Num.sqrt;
-prelude.ln = Num.ln;
-prelude.pow = Num.pow;
-prelude.sin = Num.sin;
-prelude.tan = Num.tan;
-prelude.cos = Num.cos;
-prelude.acos = Num.acos;
-prelude.asin = Num.asin;
-prelude.atan = Num.atan;
-prelude.atan2 = Num.atan2;
-prelude.truncate = Num.truncate;
-prelude.round = Num.round;
-prelude.ceiling = Num.ceiling;
-prelude.floor = Num.floor;
-prelude.isItNaN = Num.isItNaN;
-prelude.even = Num.even;
-prelude.odd = Num.odd;
-prelude.gcd = Num.gcd;
-prelude.lcm = Num.lcm;
-prelude.VERSION = '1.1.2';
-module.exports = prelude;
-function curry$(f, bound){
- var context,
- _curry = function(args) {
- return f.length > 1 ? function(){
- var params = args ? args.concat() : [];
- context = bound ? context || this : this;
- return params.push.apply(params, arguments) <
- f.length && arguments.length ?
- _curry.call(context, params) : f.apply(context, params);
- } : f;
- };
- return _curry();
-} \ No newline at end of file
diff --git a/node_modules/prelude-ls/package.json b/node_modules/prelude-ls/package.json
deleted file mode 100644
index 5507d3c7a..000000000
--- a/node_modules/prelude-ls/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "name": "prelude-ls",
- "version": "1.1.2",
- "author": "George Zahariev <z@georgezahariev.com>",
- "description": "prelude.ls is a functionally oriented utility library. It is powerful and flexible. Almost all of its functions are curried. It is written in, and is the recommended base library for, LiveScript.",
- "keywords": [
- "prelude",
- "livescript",
- "utility",
- "ls",
- "coffeescript",
- "javascript",
- "library",
- "functional",
- "array",
- "list",
- "object",
- "string"
- ],
- "main": "lib/",
- "files": [
- "lib/",
- "README.md",
- "LICENSE"
- ],
- "homepage": "http://preludels.com",
- "bugs": "https://github.com/gkz/prelude-ls/issues",
- "licenses": [
- {
- "type": "MIT",
- "url": "https://raw.github.com/gkz/prelude-ls/master/LICENSE"
- }
- ],
- "engines": {
- "node": ">= 0.8.0"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/gkz/prelude-ls.git"
- },
- "scripts": {
- "test": "make test"
- },
- "devDependencies": {
- "livescript": "~1.4.0",
- "uglify-js": "~2.4.12",
- "mocha": "~2.2.4",
- "istanbul": "~0.2.4",
- "browserify": "~3.24.13",
- "sinon": "~1.10.2"
- }
-}
diff --git a/node_modules/range-parser/HISTORY.md b/node_modules/range-parser/HISTORY.md
deleted file mode 100644
index 5e01eef46..000000000
--- a/node_modules/range-parser/HISTORY.md
+++ /dev/null
@@ -1,51 +0,0 @@
-1.2.0 / 2016-06-01
-==================
-
- * Add `combine` option to combine overlapping ranges
-
-1.1.0 / 2016-05-13
-==================
-
- * Fix incorrectly returning -1 when there is at least one valid range
- * perf: remove internal function
-
-1.0.3 / 2015-10-29
-==================
-
- * perf: enable strict mode
-
-1.0.2 / 2014-09-08
-==================
-
- * Support Node.js 0.6
-
-1.0.1 / 2014-09-07
-==================
-
- * Move repository to jshttp
-
-1.0.0 / 2013-12-11
-==================
-
- * Add repository to package.json
- * Add MIT license
-
-0.0.4 / 2012-06-17
-==================
-
- * Change ret -1 for unsatisfiable and -2 when invalid
-
-0.0.3 / 2012-06-17
-==================
-
- * Fix last-byte-pos default to len - 1
-
-0.0.2 / 2012-06-14
-==================
-
- * Add `.type`
-
-0.0.1 / 2012-06-11
-==================
-
- * Initial release
diff --git a/node_modules/range-parser/LICENSE b/node_modules/range-parser/LICENSE
deleted file mode 100644
index 359995436..000000000
--- a/node_modules/range-parser/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2012-2014 TJ Holowaychuk <tj@vision-media.ca>
-Copyright (c) 2015-2016 Douglas Christopher Wilson <doug@somethingdoug.com
-
-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.
diff --git a/node_modules/range-parser/README.md b/node_modules/range-parser/README.md
deleted file mode 100644
index 1b2437590..000000000
--- a/node_modules/range-parser/README.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# range-parser
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Node.js Version][node-version-image]][node-version-url]
-[![Build Status][travis-image]][travis-url]
-[![Test Coverage][coveralls-image]][coveralls-url]
-
-Range header field parser.
-
-## Installation
-
-```
-$ npm install range-parser
-```
-
-## API
-
-```js
-var parseRange = require('range-parser')
-```
-
-### parseRange(size, header, options)
-
-Parse the given `header` string where `size` is the maximum size of the resource.
-An array of ranges will be returned or negative numbers indicating an error parsing.
-
- * `-2` signals a malformed header string
- * `-1` signals an unsatisfiable range
-
-```js
-// parse header from request
-var range = parseRange(size, req.headers.range)
-
-// the type of the range
-if (range.type === 'bytes') {
- // the ranges
- range.forEach(function (r) {
- // do something with r.start and r.end
- })
-}
-```
-
-#### Options
-
-These properties are accepted in the options object.
-
-##### combine
-
-Specifies if overlapping & adjacent ranges should be combined, defaults to `false`.
-When `true`, ranges will be combined and returned as if they were specified that
-way in the header.
-
-```js
-parseRange(100, 'bytes=50-55,0-10,5-10,56-60', { combine: true })
-// => [
-// { start: 0, end: 10 },
-// { start: 50, end: 60 }
-// ]
-```
-
-## License
-
-[MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/range-parser.svg
-[npm-url]: https://npmjs.org/package/range-parser
-[node-version-image]: https://img.shields.io/node/v/range-parser.svg
-[node-version-url]: https://nodejs.org/endownload
-[travis-image]: https://img.shields.io/travis/jshttp/range-parser.svg
-[travis-url]: https://travis-ci.org/jshttp/range-parser
-[coveralls-image]: https://img.shields.io/coveralls/jshttp/range-parser.svg
-[coveralls-url]: https://coveralls.io/r/jshttp/range-parser
-[downloads-image]: https://img.shields.io/npm/dm/range-parser.svg
-[downloads-url]: https://npmjs.org/package/range-parser
diff --git a/node_modules/range-parser/index.js b/node_modules/range-parser/index.js
deleted file mode 100644
index 83b2eb6b3..000000000
--- a/node_modules/range-parser/index.js
+++ /dev/null
@@ -1,158 +0,0 @@
-/*!
- * range-parser
- * Copyright(c) 2012-2014 TJ Holowaychuk
- * Copyright(c) 2015-2016 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = rangeParser
-
-/**
- * Parse "Range" header `str` relative to the given file `size`.
- *
- * @param {Number} size
- * @param {String} str
- * @param {Object} [options]
- * @return {Array}
- * @public
- */
-
-function rangeParser (size, str, options) {
- var index = str.indexOf('=')
-
- if (index === -1) {
- return -2
- }
-
- // split the range string
- var arr = str.slice(index + 1).split(',')
- var ranges = []
-
- // add ranges type
- ranges.type = str.slice(0, index)
-
- // parse all ranges
- for (var i = 0; i < arr.length; i++) {
- var range = arr[i].split('-')
- var start = parseInt(range[0], 10)
- var end = parseInt(range[1], 10)
-
- // -nnn
- if (isNaN(start)) {
- start = size - end
- end = size - 1
- // nnn-
- } else if (isNaN(end)) {
- end = size - 1
- }
-
- // limit last-byte-pos to current length
- if (end > size - 1) {
- end = size - 1
- }
-
- // invalid or unsatisifiable
- if (isNaN(start) || isNaN(end) || start > end || start < 0) {
- continue
- }
-
- // add range
- ranges.push({
- start: start,
- end: end
- })
- }
-
- if (ranges.length < 1) {
- // unsatisifiable
- return -1
- }
-
- return options && options.combine
- ? combineRanges(ranges)
- : ranges
-}
-
-/**
- * Combine overlapping & adjacent ranges.
- * @private
- */
-
-function combineRanges (ranges) {
- var ordered = ranges.map(mapWithIndex).sort(sortByRangeStart)
-
- for (var j = 0, i = 1; i < ordered.length; i++) {
- var range = ordered[i]
- var current = ordered[j]
-
- if (range.start > current.end + 1) {
- // next range
- ordered[++j] = range
- } else if (range.end > current.end) {
- // extend range
- current.end = range.end
- current.index = Math.min(current.index, range.index)
- }
- }
-
- // trim ordered array
- ordered.length = j + 1
-
- // generate combined range
- var combined = ordered.sort(sortByRangeIndex).map(mapWithoutIndex)
-
- // copy ranges type
- combined.type = ranges.type
-
- return combined
-}
-
-/**
- * Map function to add index value to ranges.
- * @private
- */
-
-function mapWithIndex (range, index) {
- return {
- start: range.start,
- end: range.end,
- index: index
- }
-}
-
-/**
- * Map function to remove index value from ranges.
- * @private
- */
-
-function mapWithoutIndex (range) {
- return {
- start: range.start,
- end: range.end
- }
-}
-
-/**
- * Sort function to sort ranges by index.
- * @private
- */
-
-function sortByRangeIndex (a, b) {
- return a.index - b.index
-}
-
-/**
- * Sort function to sort ranges by start position.
- * @private
- */
-
-function sortByRangeStart (a, b) {
- return a.start - b.start
-}
diff --git a/node_modules/range-parser/package.json b/node_modules/range-parser/package.json
deleted file mode 100644
index 0c2884803..000000000
--- a/node_modules/range-parser/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "range-parser",
- "author": "TJ Holowaychuk <tj@vision-media.ca> (http://tjholowaychuk.com)",
- "description": "Range header field string parser",
- "version": "1.2.0",
- "contributors": [
- "Douglas Christopher Wilson <doug@somethingdoug.com>",
- "James Wyatt Cready <wyatt.cready@lanetix.com>",
- "Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)"
- ],
- "license": "MIT",
- "keywords": [
- "range",
- "parser",
- "http"
- ],
- "repository": "jshttp/range-parser",
- "devDependencies": {
- "eslint": "2.11.1",
- "eslint-config-standard": "5.3.1",
- "eslint-plugin-promise": "1.1.0",
- "eslint-plugin-standard": "1.3.2",
- "istanbul": "0.4.3",
- "mocha": "1.21.5"
- },
- "files": [
- "HISTORY.md",
- "LICENSE",
- "index.js"
- ],
- "engines": {
- "node": ">= 0.6"
- },
- "scripts": {
- "lint": "eslint **/*.js",
- "test": "mocha --reporter spec",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot",
- "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot"
- }
-}
diff --git a/node_modules/sax/LICENSE b/node_modules/sax/LICENSE
deleted file mode 100644
index ccffa082c..000000000
--- a/node_modules/sax/LICENSE
+++ /dev/null
@@ -1,41 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-====
-
-`String.fromCodePoint` by Mathias Bynens used according to terms of MIT
-License, as follows:
-
- Copyright Mathias Bynens <https://mathiasbynens.be/>
-
- 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.
diff --git a/node_modules/sax/README.md b/node_modules/sax/README.md
deleted file mode 100644
index afcd3f3dd..000000000
--- a/node_modules/sax/README.md
+++ /dev/null
@@ -1,225 +0,0 @@
-# sax js
-
-A sax-style parser for XML and HTML.
-
-Designed with [node](http://nodejs.org/) in mind, but should work fine in
-the browser or other CommonJS implementations.
-
-## What This Is
-
-* A very simple tool to parse through an XML string.
-* A stepping stone to a streaming HTML parser.
-* A handy way to deal with RSS and other mostly-ok-but-kinda-broken XML
- docs.
-
-## What This Is (probably) Not
-
-* An HTML Parser - That's a fine goal, but this isn't it. It's just
- XML.
-* A DOM Builder - You can use it to build an object model out of XML,
- but it doesn't do that out of the box.
-* XSLT - No DOM = no querying.
-* 100% Compliant with (some other SAX implementation) - Most SAX
- implementations are in Java and do a lot more than this does.
-* An XML Validator - It does a little validation when in strict mode, but
- not much.
-* A Schema-Aware XSD Thing - Schemas are an exercise in fetishistic
- masochism.
-* A DTD-aware Thing - Fetching DTDs is a much bigger job.
-
-## Regarding `<!DOCTYPE`s and `<!ENTITY`s
-
-The parser will handle the basic XML entities in text nodes and attribute
-values: `&amp; &lt; &gt; &apos; &quot;`. It's possible to define additional
-entities in XML by putting them in the DTD. This parser doesn't do anything
-with that. If you want to listen to the `ondoctype` event, and then fetch
-the doctypes, and read the entities and add them to `parser.ENTITIES`, then
-be my guest.
-
-Unknown entities will fail in strict mode, and in loose mode, will pass
-through unmolested.
-
-## Usage
-
-```javascript
-var sax = require("./lib/sax"),
- strict = true, // set to false for html-mode
- parser = sax.parser(strict);
-
-parser.onerror = function (e) {
- // an error happened.
-};
-parser.ontext = function (t) {
- // got some text. t is the string of text.
-};
-parser.onopentag = function (node) {
- // opened a tag. node has "name" and "attributes"
-};
-parser.onattribute = function (attr) {
- // an attribute. attr has "name" and "value"
-};
-parser.onend = function () {
- // parser stream is done, and ready to have more stuff written to it.
-};
-
-parser.write('<xml>Hello, <who name="world">world</who>!</xml>').close();
-
-// stream usage
-// takes the same options as the parser
-var saxStream = require("sax").createStream(strict, options)
-saxStream.on("error", function (e) {
- // unhandled errors will throw, since this is a proper node
- // event emitter.
- console.error("error!", e)
- // clear the error
- this._parser.error = null
- this._parser.resume()
-})
-saxStream.on("opentag", function (node) {
- // same object as above
-})
-// pipe is supported, and it's readable/writable
-// same chunks coming in also go out.
-fs.createReadStream("file.xml")
- .pipe(saxStream)
- .pipe(fs.createWriteStream("file-copy.xml"))
-```
-
-
-## Arguments
-
-Pass the following arguments to the parser function. All are optional.
-
-`strict` - Boolean. Whether or not to be a jerk. Default: `false`.
-
-`opt` - Object bag of settings regarding string formatting. All default to `false`.
-
-Settings supported:
-
-* `trim` - Boolean. Whether or not to trim text and comment nodes.
-* `normalize` - Boolean. If true, then turn any whitespace into a single
- space.
-* `lowercase` - Boolean. If true, then lowercase tag names and attribute names
- in loose mode, rather than uppercasing them.
-* `xmlns` - Boolean. If true, then namespaces are supported.
-* `position` - Boolean. If false, then don't track line/col/position.
-* `strictEntities` - Boolean. If true, only parse [predefined XML
- entities](http://www.w3.org/TR/REC-xml/#sec-predefined-ent)
- (`&amp;`, `&apos;`, `&gt;`, `&lt;`, and `&quot;`)
-
-## Methods
-
-`write` - Write bytes onto the stream. You don't have to do this all at
-once. You can keep writing as much as you want.
-
-`close` - Close the stream. Once closed, no more data may be written until
-it is done processing the buffer, which is signaled by the `end` event.
-
-`resume` - To gracefully handle errors, assign a listener to the `error`
-event. Then, when the error is taken care of, you can call `resume` to
-continue parsing. Otherwise, the parser will not continue while in an error
-state.
-
-## Members
-
-At all times, the parser object will have the following members:
-
-`line`, `column`, `position` - Indications of the position in the XML
-document where the parser currently is looking.
-
-`startTagPosition` - Indicates the position where the current tag starts.
-
-`closed` - Boolean indicating whether or not the parser can be written to.
-If it's `true`, then wait for the `ready` event to write again.
-
-`strict` - Boolean indicating whether or not the parser is a jerk.
-
-`opt` - Any options passed into the constructor.
-
-`tag` - The current tag being dealt with.
-
-And a bunch of other stuff that you probably shouldn't touch.
-
-## Events
-
-All events emit with a single argument. To listen to an event, assign a
-function to `on<eventname>`. Functions get executed in the this-context of
-the parser object. The list of supported events are also in the exported
-`EVENTS` array.
-
-When using the stream interface, assign handlers using the EventEmitter
-`on` function in the normal fashion.
-
-`error` - Indication that something bad happened. The error will be hanging
-out on `parser.error`, and must be deleted before parsing can continue. By
-listening to this event, you can keep an eye on that kind of stuff. Note:
-this happens *much* more in strict mode. Argument: instance of `Error`.
-
-`text` - Text node. Argument: string of text.
-
-`doctype` - The `<!DOCTYPE` declaration. Argument: doctype string.
-
-`processinginstruction` - Stuff like `<?xml foo="blerg" ?>`. Argument:
-object with `name` and `body` members. Attributes are not parsed, as
-processing instructions have implementation dependent semantics.
-
-`sgmldeclaration` - Random SGML declarations. Stuff like `<!ENTITY p>`
-would trigger this kind of event. This is a weird thing to support, so it
-might go away at some point. SAX isn't intended to be used to parse SGML,
-after all.
-
-`opentagstart` - Emitted immediately when the tag name is available,
-but before any attributes are encountered. Argument: object with a
-`name` field and an empty `attributes` set. Note that this is the
-same object that will later be emitted in the `opentag` event.
-
-`opentag` - An opening tag. Argument: object with `name` and `attributes`.
-In non-strict mode, tag names are uppercased, unless the `lowercase`
-option is set. If the `xmlns` option is set, then it will contain
-namespace binding information on the `ns` member, and will have a
-`local`, `prefix`, and `uri` member.
-
-`closetag` - A closing tag. In loose mode, tags are auto-closed if their
-parent closes. In strict mode, well-formedness is enforced. Note that
-self-closing tags will have `closeTag` emitted immediately after `openTag`.
-Argument: tag name.
-
-`attribute` - An attribute node. Argument: object with `name` and `value`.
-In non-strict mode, attribute names are uppercased, unless the `lowercase`
-option is set. If the `xmlns` option is set, it will also contains namespace
-information.
-
-`comment` - A comment node. Argument: the string of the comment.
-
-`opencdata` - The opening tag of a `<![CDATA[` block.
-
-`cdata` - The text of a `<![CDATA[` block. Since `<![CDATA[` blocks can get
-quite large, this event may fire multiple times for a single block, if it
-is broken up into multiple `write()`s. Argument: the string of random
-character data.
-
-`closecdata` - The closing tag (`]]>`) of a `<![CDATA[` block.
-
-`opennamespace` - If the `xmlns` option is set, then this event will
-signal the start of a new namespace binding.
-
-`closenamespace` - If the `xmlns` option is set, then this event will
-signal the end of a namespace binding.
-
-`end` - Indication that the closed stream has ended.
-
-`ready` - Indication that the stream has reset, and is ready to be written
-to.
-
-`noscript` - In non-strict mode, `<script>` tags trigger a `"script"`
-event, and their contents are not checked for special xml characters.
-If you pass `noscript: true`, then this behavior is suppressed.
-
-## Reporting Problems
-
-It's best to write a failing test if you find an issue. I will always
-accept pull requests with failing tests if they demonstrate intended
-behavior, but it is very hard to figure out what issue you're describing
-without a test. Writing a test is also the best way for you yourself
-to figure out if you really understand the issue you think you have with
-sax-js.
diff --git a/node_modules/sax/lib/sax.js b/node_modules/sax/lib/sax.js
deleted file mode 100644
index db0d4c316..000000000
--- a/node_modules/sax/lib/sax.js
+++ /dev/null
@@ -1,1581 +0,0 @@
-;(function (sax) { // wrapper for non-node envs
- sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }
- sax.SAXParser = SAXParser
- sax.SAXStream = SAXStream
- sax.createStream = createStream
-
- // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.
- // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),
- // since that's the earliest that a buffer overrun could occur. This way, checks are
- // as rare as required, but as often as necessary to ensure never crossing this bound.
- // Furthermore, buffers are only tested at most once per write(), so passing a very
- // large string into write() might have undesirable effects, but this is manageable by
- // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme
- // edge case, result in creating at most one complete copy of the string passed in.
- // Set to Infinity to have unlimited buffers.
- sax.MAX_BUFFER_LENGTH = 64 * 1024
-
- var buffers = [
- 'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype',
- 'procInstName', 'procInstBody', 'entity', 'attribName',
- 'attribValue', 'cdata', 'script'
- ]
-
- sax.EVENTS = [
- 'text',
- 'processinginstruction',
- 'sgmldeclaration',
- 'doctype',
- 'comment',
- 'opentagstart',
- 'attribute',
- 'opentag',
- 'closetag',
- 'opencdata',
- 'cdata',
- 'closecdata',
- 'error',
- 'end',
- 'ready',
- 'script',
- 'opennamespace',
- 'closenamespace'
- ]
-
- function SAXParser (strict, opt) {
- if (!(this instanceof SAXParser)) {
- return new SAXParser(strict, opt)
- }
-
- var parser = this
- clearBuffers(parser)
- parser.q = parser.c = ''
- parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH
- parser.opt = opt || {}
- parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags
- parser.looseCase = parser.opt.lowercase ? 'toLowerCase' : 'toUpperCase'
- parser.tags = []
- parser.closed = parser.closedRoot = parser.sawRoot = false
- parser.tag = parser.error = null
- parser.strict = !!strict
- parser.noscript = !!(strict || parser.opt.noscript)
- parser.state = S.BEGIN
- parser.strictEntities = parser.opt.strictEntities
- parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES)
- parser.attribList = []
-
- // namespaces form a prototype chain.
- // it always points at the current tag,
- // which protos to its parent tag.
- if (parser.opt.xmlns) {
- parser.ns = Object.create(rootNS)
- }
-
- // mostly just for error reporting
- parser.trackPosition = parser.opt.position !== false
- if (parser.trackPosition) {
- parser.position = parser.line = parser.column = 0
- }
- emit(parser, 'onready')
- }
-
- if (!Object.create) {
- Object.create = function (o) {
- function F () {}
- F.prototype = o
- var newf = new F()
- return newf
- }
- }
-
- if (!Object.keys) {
- Object.keys = function (o) {
- var a = []
- for (var i in o) if (o.hasOwnProperty(i)) a.push(i)
- return a
- }
- }
-
- function checkBufferLength (parser) {
- var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10)
- var maxActual = 0
- for (var i = 0, l = buffers.length; i < l; i++) {
- var len = parser[buffers[i]].length
- if (len > maxAllowed) {
- // Text/cdata nodes can get big, and since they're buffered,
- // we can get here under normal conditions.
- // Avoid issues by emitting the text node now,
- // so at least it won't get any bigger.
- switch (buffers[i]) {
- case 'textNode':
- closeText(parser)
- break
-
- case 'cdata':
- emitNode(parser, 'oncdata', parser.cdata)
- parser.cdata = ''
- break
-
- case 'script':
- emitNode(parser, 'onscript', parser.script)
- parser.script = ''
- break
-
- default:
- error(parser, 'Max buffer length exceeded: ' + buffers[i])
- }
- }
- maxActual = Math.max(maxActual, len)
- }
- // schedule the next check for the earliest possible buffer overrun.
- var m = sax.MAX_BUFFER_LENGTH - maxActual
- parser.bufferCheckPosition = m + parser.position
- }
-
- function clearBuffers (parser) {
- for (var i = 0, l = buffers.length; i < l; i++) {
- parser[buffers[i]] = ''
- }
- }
-
- function flushBuffers (parser) {
- closeText(parser)
- if (parser.cdata !== '') {
- emitNode(parser, 'oncdata', parser.cdata)
- parser.cdata = ''
- }
- if (parser.script !== '') {
- emitNode(parser, 'onscript', parser.script)
- parser.script = ''
- }
- }
-
- SAXParser.prototype = {
- end: function () { end(this) },
- write: write,
- resume: function () { this.error = null; return this },
- close: function () { return this.write(null) },
- flush: function () { flushBuffers(this) }
- }
-
- var Stream
- try {
- Stream = require('stream').Stream
- } catch (ex) {
- Stream = function () {}
- }
-
- var streamWraps = sax.EVENTS.filter(function (ev) {
- return ev !== 'error' && ev !== 'end'
- })
-
- function createStream (strict, opt) {
- return new SAXStream(strict, opt)
- }
-
- function SAXStream (strict, opt) {
- if (!(this instanceof SAXStream)) {
- return new SAXStream(strict, opt)
- }
-
- Stream.apply(this)
-
- this._parser = new SAXParser(strict, opt)
- this.writable = true
- this.readable = true
-
- var me = this
-
- this._parser.onend = function () {
- me.emit('end')
- }
-
- this._parser.onerror = function (er) {
- me.emit('error', er)
-
- // if didn't throw, then means error was handled.
- // go ahead and clear error, so we can write again.
- me._parser.error = null
- }
-
- this._decoder = null
-
- streamWraps.forEach(function (ev) {
- Object.defineProperty(me, 'on' + ev, {
- get: function () {
- return me._parser['on' + ev]
- },
- set: function (h) {
- if (!h) {
- me.removeAllListeners(ev)
- me._parser['on' + ev] = h
- return h
- }
- me.on(ev, h)
- },
- enumerable: true,
- configurable: false
- })
- })
- }
-
- SAXStream.prototype = Object.create(Stream.prototype, {
- constructor: {
- value: SAXStream
- }
- })
-
- SAXStream.prototype.write = function (data) {
- if (typeof Buffer === 'function' &&
- typeof Buffer.isBuffer === 'function' &&
- Buffer.isBuffer(data)) {
- if (!this._decoder) {
- var SD = require('string_decoder').StringDecoder
- this._decoder = new SD('utf8')
- }
- data = this._decoder.write(data)
- }
-
- this._parser.write(data.toString())
- this.emit('data', data)
- return true
- }
-
- SAXStream.prototype.end = function (chunk) {
- if (chunk && chunk.length) {
- this.write(chunk)
- }
- this._parser.end()
- return true
- }
-
- SAXStream.prototype.on = function (ev, handler) {
- var me = this
- if (!me._parser['on' + ev] && streamWraps.indexOf(ev) !== -1) {
- me._parser['on' + ev] = function () {
- var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments)
- args.splice(0, 0, ev)
- me.emit.apply(me, args)
- }
- }
-
- return Stream.prototype.on.call(me, ev, handler)
- }
-
- // character classes and tokens
- var whitespace = '\r\n\t '
-
- // this really needs to be replaced with character classes.
- // XML allows all manner of ridiculous numbers and digits.
-
- // (Letter | "_" | ":")
- var quote = '\'"'
- var attribEnd = whitespace + '>'
- var CDATA = '[CDATA['
- var DOCTYPE = 'DOCTYPE'
- var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace'
- var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/'
- var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE }
-
- // turn all the string character sets into character class objects.
- whitespace = charClass(whitespace)
-
- // http://www.w3.org/TR/REC-xml/#NT-NameStartChar
- // This implementation works on strings, a single character at a time
- // as such, it cannot ever support astral-plane characters (10000-EFFFF)
- // without a significant breaking change to either this parser, or the
- // JavaScript language. Implementation of an emoji-capable xml parser
- // is left as an exercise for the reader.
- var nameStart = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/
-
- var nameBody = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/
-
- var entityStart = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/
- var entityBody = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/
-
- quote = charClass(quote)
- attribEnd = charClass(attribEnd)
-
- function charClass (str) {
- return str.split('').reduce(function (s, c) {
- s[c] = true
- return s
- }, {})
- }
-
- function isMatch (regex, c) {
- return regex.test(c)
- }
-
- function is (charclass, c) {
- return charclass[c]
- }
-
- function notMatch (regex, c) {
- return !isMatch(regex, c)
- }
-
- function not (charclass, c) {
- return !is(charclass, c)
- }
-
- var S = 0
- sax.STATE = {
- BEGIN: S++, // leading byte order mark or whitespace
- BEGIN_WHITESPACE: S++, // leading whitespace
- TEXT: S++, // general stuff
- TEXT_ENTITY: S++, // &amp and such.
- OPEN_WAKA: S++, // <
- SGML_DECL: S++, // <!BLARG
- SGML_DECL_QUOTED: S++, // <!BLARG foo "bar
- DOCTYPE: S++, // <!DOCTYPE
- DOCTYPE_QUOTED: S++, // <!DOCTYPE "//blah
- DOCTYPE_DTD: S++, // <!DOCTYPE "//blah" [ ...
- DOCTYPE_DTD_QUOTED: S++, // <!DOCTYPE "//blah" [ "foo
- COMMENT_STARTING: S++, // <!-
- COMMENT: S++, // <!--
- COMMENT_ENDING: S++, // <!-- blah -
- COMMENT_ENDED: S++, // <!-- blah --
- CDATA: S++, // <![CDATA[ something
- CDATA_ENDING: S++, // ]
- CDATA_ENDING_2: S++, // ]]
- PROC_INST: S++, // <?hi
- PROC_INST_BODY: S++, // <?hi there
- PROC_INST_ENDING: S++, // <?hi "there" ?
- OPEN_TAG: S++, // <strong
- OPEN_TAG_SLASH: S++, // <strong /
- ATTRIB: S++, // <a
- ATTRIB_NAME: S++, // <a foo
- ATTRIB_NAME_SAW_WHITE: S++, // <a foo _
- ATTRIB_VALUE: S++, // <a foo=
- ATTRIB_VALUE_QUOTED: S++, // <a foo="bar
- ATTRIB_VALUE_CLOSED: S++, // <a foo="bar"
- ATTRIB_VALUE_UNQUOTED: S++, // <a foo=bar
- ATTRIB_VALUE_ENTITY_Q: S++, // <foo bar="&quot;"
- ATTRIB_VALUE_ENTITY_U: S++, // <foo bar=&quot
- CLOSE_TAG: S++, // </a
- CLOSE_TAG_SAW_WHITE: S++, // </a >
- SCRIPT: S++, // <script> ...
- SCRIPT_ENDING: S++ // <script> ... <
- }
-
- sax.XML_ENTITIES = {
- 'amp': '&',
- 'gt': '>',
- 'lt': '<',
- 'quot': '"',
- 'apos': "'"
- }
-
- sax.ENTITIES = {
- 'amp': '&',
- 'gt': '>',
- 'lt': '<',
- 'quot': '"',
- 'apos': "'",
- 'AElig': 198,
- 'Aacute': 193,
- 'Acirc': 194,
- 'Agrave': 192,
- 'Aring': 197,
- 'Atilde': 195,
- 'Auml': 196,
- 'Ccedil': 199,
- 'ETH': 208,
- 'Eacute': 201,
- 'Ecirc': 202,
- 'Egrave': 200,
- 'Euml': 203,
- 'Iacute': 205,
- 'Icirc': 206,
- 'Igrave': 204,
- 'Iuml': 207,
- 'Ntilde': 209,
- 'Oacute': 211,
- 'Ocirc': 212,
- 'Ograve': 210,
- 'Oslash': 216,
- 'Otilde': 213,
- 'Ouml': 214,
- 'THORN': 222,
- 'Uacute': 218,
- 'Ucirc': 219,
- 'Ugrave': 217,
- 'Uuml': 220,
- 'Yacute': 221,
- 'aacute': 225,
- 'acirc': 226,
- 'aelig': 230,
- 'agrave': 224,
- 'aring': 229,
- 'atilde': 227,
- 'auml': 228,
- 'ccedil': 231,
- 'eacute': 233,
- 'ecirc': 234,
- 'egrave': 232,
- 'eth': 240,
- 'euml': 235,
- 'iacute': 237,
- 'icirc': 238,
- 'igrave': 236,
- 'iuml': 239,
- 'ntilde': 241,
- 'oacute': 243,
- 'ocirc': 244,
- 'ograve': 242,
- 'oslash': 248,
- 'otilde': 245,
- 'ouml': 246,
- 'szlig': 223,
- 'thorn': 254,
- 'uacute': 250,
- 'ucirc': 251,
- 'ugrave': 249,
- 'uuml': 252,
- 'yacute': 253,
- 'yuml': 255,
- 'copy': 169,
- 'reg': 174,
- 'nbsp': 160,
- 'iexcl': 161,
- 'cent': 162,
- 'pound': 163,
- 'curren': 164,
- 'yen': 165,
- 'brvbar': 166,
- 'sect': 167,
- 'uml': 168,
- 'ordf': 170,
- 'laquo': 171,
- 'not': 172,
- 'shy': 173,
- 'macr': 175,
- 'deg': 176,
- 'plusmn': 177,
- 'sup1': 185,
- 'sup2': 178,
- 'sup3': 179,
- 'acute': 180,
- 'micro': 181,
- 'para': 182,
- 'middot': 183,
- 'cedil': 184,
- 'ordm': 186,
- 'raquo': 187,
- 'frac14': 188,
- 'frac12': 189,
- 'frac34': 190,
- 'iquest': 191,
- 'times': 215,
- 'divide': 247,
- 'OElig': 338,
- 'oelig': 339,
- 'Scaron': 352,
- 'scaron': 353,
- 'Yuml': 376,
- 'fnof': 402,
- 'circ': 710,
- 'tilde': 732,
- 'Alpha': 913,
- 'Beta': 914,
- 'Gamma': 915,
- 'Delta': 916,
- 'Epsilon': 917,
- 'Zeta': 918,
- 'Eta': 919,
- 'Theta': 920,
- 'Iota': 921,
- 'Kappa': 922,
- 'Lambda': 923,
- 'Mu': 924,
- 'Nu': 925,
- 'Xi': 926,
- 'Omicron': 927,
- 'Pi': 928,
- 'Rho': 929,
- 'Sigma': 931,
- 'Tau': 932,
- 'Upsilon': 933,
- 'Phi': 934,
- 'Chi': 935,
- 'Psi': 936,
- 'Omega': 937,
- 'alpha': 945,
- 'beta': 946,
- 'gamma': 947,
- 'delta': 948,
- 'epsilon': 949,
- 'zeta': 950,
- 'eta': 951,
- 'theta': 952,
- 'iota': 953,
- 'kappa': 954,
- 'lambda': 955,
- 'mu': 956,
- 'nu': 957,
- 'xi': 958,
- 'omicron': 959,
- 'pi': 960,
- 'rho': 961,
- 'sigmaf': 962,
- 'sigma': 963,
- 'tau': 964,
- 'upsilon': 965,
- 'phi': 966,
- 'chi': 967,
- 'psi': 968,
- 'omega': 969,
- 'thetasym': 977,
- 'upsih': 978,
- 'piv': 982,
- 'ensp': 8194,
- 'emsp': 8195,
- 'thinsp': 8201,
- 'zwnj': 8204,
- 'zwj': 8205,
- 'lrm': 8206,
- 'rlm': 8207,
- 'ndash': 8211,
- 'mdash': 8212,
- 'lsquo': 8216,
- 'rsquo': 8217,
- 'sbquo': 8218,
- 'ldquo': 8220,
- 'rdquo': 8221,
- 'bdquo': 8222,
- 'dagger': 8224,
- 'Dagger': 8225,
- 'bull': 8226,
- 'hellip': 8230,
- 'permil': 8240,
- 'prime': 8242,
- 'Prime': 8243,
- 'lsaquo': 8249,
- 'rsaquo': 8250,
- 'oline': 8254,
- 'frasl': 8260,
- 'euro': 8364,
- 'image': 8465,
- 'weierp': 8472,
- 'real': 8476,
- 'trade': 8482,
- 'alefsym': 8501,
- 'larr': 8592,
- 'uarr': 8593,
- 'rarr': 8594,
- 'darr': 8595,
- 'harr': 8596,
- 'crarr': 8629,
- 'lArr': 8656,
- 'uArr': 8657,
- 'rArr': 8658,
- 'dArr': 8659,
- 'hArr': 8660,
- 'forall': 8704,
- 'part': 8706,
- 'exist': 8707,
- 'empty': 8709,
- 'nabla': 8711,
- 'isin': 8712,
- 'notin': 8713,
- 'ni': 8715,
- 'prod': 8719,
- 'sum': 8721,
- 'minus': 8722,
- 'lowast': 8727,
- 'radic': 8730,
- 'prop': 8733,
- 'infin': 8734,
- 'ang': 8736,
- 'and': 8743,
- 'or': 8744,
- 'cap': 8745,
- 'cup': 8746,
- 'int': 8747,
- 'there4': 8756,
- 'sim': 8764,
- 'cong': 8773,
- 'asymp': 8776,
- 'ne': 8800,
- 'equiv': 8801,
- 'le': 8804,
- 'ge': 8805,
- 'sub': 8834,
- 'sup': 8835,
- 'nsub': 8836,
- 'sube': 8838,
- 'supe': 8839,
- 'oplus': 8853,
- 'otimes': 8855,
- 'perp': 8869,
- 'sdot': 8901,
- 'lceil': 8968,
- 'rceil': 8969,
- 'lfloor': 8970,
- 'rfloor': 8971,
- 'lang': 9001,
- 'rang': 9002,
- 'loz': 9674,
- 'spades': 9824,
- 'clubs': 9827,
- 'hearts': 9829,
- 'diams': 9830
- }
-
- Object.keys(sax.ENTITIES).forEach(function (key) {
- var e = sax.ENTITIES[key]
- var s = typeof e === 'number' ? String.fromCharCode(e) : e
- sax.ENTITIES[key] = s
- })
-
- for (var s in sax.STATE) {
- sax.STATE[sax.STATE[s]] = s
- }
-
- // shorthand
- S = sax.STATE
-
- function emit (parser, event, data) {
- parser[event] && parser[event](data)
- }
-
- function emitNode (parser, nodeType, data) {
- if (parser.textNode) closeText(parser)
- emit(parser, nodeType, data)
- }
-
- function closeText (parser) {
- parser.textNode = textopts(parser.opt, parser.textNode)
- if (parser.textNode) emit(parser, 'ontext', parser.textNode)
- parser.textNode = ''
- }
-
- function textopts (opt, text) {
- if (opt.trim) text = text.trim()
- if (opt.normalize) text = text.replace(/\s+/g, ' ')
- return text
- }
-
- function error (parser, er) {
- closeText(parser)
- if (parser.trackPosition) {
- er += '\nLine: ' + parser.line +
- '\nColumn: ' + parser.column +
- '\nChar: ' + parser.c
- }
- er = new Error(er)
- parser.error = er
- emit(parser, 'onerror', er)
- return parser
- }
-
- function end (parser) {
- if (parser.sawRoot && !parser.closedRoot) strictFail(parser, 'Unclosed root tag')
- if ((parser.state !== S.BEGIN) &&
- (parser.state !== S.BEGIN_WHITESPACE) &&
- (parser.state !== S.TEXT)) {
- error(parser, 'Unexpected end')
- }
- closeText(parser)
- parser.c = ''
- parser.closed = true
- emit(parser, 'onend')
- SAXParser.call(parser, parser.strict, parser.opt)
- return parser
- }
-
- function strictFail (parser, message) {
- if (typeof parser !== 'object' || !(parser instanceof SAXParser)) {
- throw new Error('bad call to strictFail')
- }
- if (parser.strict) {
- error(parser, message)
- }
- }
-
- function newTag (parser) {
- if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]()
- var parent = parser.tags[parser.tags.length - 1] || parser
- var tag = parser.tag = { name: parser.tagName, attributes: {} }
-
- // will be overridden if tag contails an xmlns="foo" or xmlns:foo="bar"
- if (parser.opt.xmlns) {
- tag.ns = parent.ns
- }
- parser.attribList.length = 0
- emitNode(parser, 'onopentagstart', tag)
- }
-
- function qname (name, attribute) {
- var i = name.indexOf(':')
- var qualName = i < 0 ? [ '', name ] : name.split(':')
- var prefix = qualName[0]
- var local = qualName[1]
-
- // <x "xmlns"="http://foo">
- if (attribute && name === 'xmlns') {
- prefix = 'xmlns'
- local = ''
- }
-
- return { prefix: prefix, local: local }
- }
-
- function attrib (parser) {
- if (!parser.strict) {
- parser.attribName = parser.attribName[parser.looseCase]()
- }
-
- if (parser.attribList.indexOf(parser.attribName) !== -1 ||
- parser.tag.attributes.hasOwnProperty(parser.attribName)) {
- parser.attribName = parser.attribValue = ''
- return
- }
-
- if (parser.opt.xmlns) {
- var qn = qname(parser.attribName, true)
- var prefix = qn.prefix
- var local = qn.local
-
- if (prefix === 'xmlns') {
- // namespace binding attribute. push the binding into scope
- if (local === 'xml' && parser.attribValue !== XML_NAMESPACE) {
- strictFail(parser,
- 'xml: prefix must be bound to ' + XML_NAMESPACE + '\n' +
- 'Actual: ' + parser.attribValue)
- } else if (local === 'xmlns' && parser.attribValue !== XMLNS_NAMESPACE) {
- strictFail(parser,
- 'xmlns: prefix must be bound to ' + XMLNS_NAMESPACE + '\n' +
- 'Actual: ' + parser.attribValue)
- } else {
- var tag = parser.tag
- var parent = parser.tags[parser.tags.length - 1] || parser
- if (tag.ns === parent.ns) {
- tag.ns = Object.create(parent.ns)
- }
- tag.ns[local] = parser.attribValue
- }
- }
-
- // defer onattribute events until all attributes have been seen
- // so any new bindings can take effect. preserve attribute order
- // so deferred events can be emitted in document order
- parser.attribList.push([parser.attribName, parser.attribValue])
- } else {
- // in non-xmlns mode, we can emit the event right away
- parser.tag.attributes[parser.attribName] = parser.attribValue
- emitNode(parser, 'onattribute', {
- name: parser.attribName,
- value: parser.attribValue
- })
- }
-
- parser.attribName = parser.attribValue = ''
- }
-
- function openTag (parser, selfClosing) {
- if (parser.opt.xmlns) {
- // emit namespace binding events
- var tag = parser.tag
-
- // add namespace info to tag
- var qn = qname(parser.tagName)
- tag.prefix = qn.prefix
- tag.local = qn.local
- tag.uri = tag.ns[qn.prefix] || ''
-
- if (tag.prefix && !tag.uri) {
- strictFail(parser, 'Unbound namespace prefix: ' +
- JSON.stringify(parser.tagName))
- tag.uri = qn.prefix
- }
-
- var parent = parser.tags[parser.tags.length - 1] || parser
- if (tag.ns && parent.ns !== tag.ns) {
- Object.keys(tag.ns).forEach(function (p) {
- emitNode(parser, 'onopennamespace', {
- prefix: p,
- uri: tag.ns[p]
- })
- })
- }
-
- // handle deferred onattribute events
- // Note: do not apply default ns to attributes:
- // http://www.w3.org/TR/REC-xml-names/#defaulting
- for (var i = 0, l = parser.attribList.length; i < l; i++) {
- var nv = parser.attribList[i]
- var name = nv[0]
- var value = nv[1]
- var qualName = qname(name, true)
- var prefix = qualName.prefix
- var local = qualName.local
- var uri = prefix === '' ? '' : (tag.ns[prefix] || '')
- var a = {
- name: name,
- value: value,
- prefix: prefix,
- local: local,
- uri: uri
- }
-
- // if there's any attributes with an undefined namespace,
- // then fail on them now.
- if (prefix && prefix !== 'xmlns' && !uri) {
- strictFail(parser, 'Unbound namespace prefix: ' +
- JSON.stringify(prefix))
- a.uri = prefix
- }
- parser.tag.attributes[name] = a
- emitNode(parser, 'onattribute', a)
- }
- parser.attribList.length = 0
- }
-
- parser.tag.isSelfClosing = !!selfClosing
-
- // process the tag
- parser.sawRoot = true
- parser.tags.push(parser.tag)
- emitNode(parser, 'onopentag', parser.tag)
- if (!selfClosing) {
- // special case for <script> in non-strict mode.
- if (!parser.noscript && parser.tagName.toLowerCase() === 'script') {
- parser.state = S.SCRIPT
- } else {
- parser.state = S.TEXT
- }
- parser.tag = null
- parser.tagName = ''
- }
- parser.attribName = parser.attribValue = ''
- parser.attribList.length = 0
- }
-
- function closeTag (parser) {
- if (!parser.tagName) {
- strictFail(parser, 'Weird empty close tag.')
- parser.textNode += '</>'
- parser.state = S.TEXT
- return
- }
-
- if (parser.script) {
- if (parser.tagName !== 'script') {
- parser.script += '</' + parser.tagName + '>'
- parser.tagName = ''
- parser.state = S.SCRIPT
- return
- }
- emitNode(parser, 'onscript', parser.script)
- parser.script = ''
- }
-
- // first make sure that the closing tag actually exists.
- // <a><b></c></b></a> will close everything, otherwise.
- var t = parser.tags.length
- var tagName = parser.tagName
- if (!parser.strict) {
- tagName = tagName[parser.looseCase]()
- }
- var closeTo = tagName
- while (t--) {
- var close = parser.tags[t]
- if (close.name !== closeTo) {
- // fail the first time in strict mode
- strictFail(parser, 'Unexpected close tag')
- } else {
- break
- }
- }
-
- // didn't find it. we already failed for strict, so just abort.
- if (t < 0) {
- strictFail(parser, 'Unmatched closing tag: ' + parser.tagName)
- parser.textNode += '</' + parser.tagName + '>'
- parser.state = S.TEXT
- return
- }
- parser.tagName = tagName
- var s = parser.tags.length
- while (s-- > t) {
- var tag = parser.tag = parser.tags.pop()
- parser.tagName = parser.tag.name
- emitNode(parser, 'onclosetag', parser.tagName)
-
- var x = {}
- for (var i in tag.ns) {
- x[i] = tag.ns[i]
- }
-
- var parent = parser.tags[parser.tags.length - 1] || parser
- if (parser.opt.xmlns && tag.ns !== parent.ns) {
- // remove namespace bindings introduced by tag
- Object.keys(tag.ns).forEach(function (p) {
- var n = tag.ns[p]
- emitNode(parser, 'onclosenamespace', { prefix: p, uri: n })
- })
- }
- }
- if (t === 0) parser.closedRoot = true
- parser.tagName = parser.attribValue = parser.attribName = ''
- parser.attribList.length = 0
- parser.state = S.TEXT
- }
-
- function parseEntity (parser) {
- var entity = parser.entity
- var entityLC = entity.toLowerCase()
- var num
- var numStr = ''
-
- if (parser.ENTITIES[entity]) {
- return parser.ENTITIES[entity]
- }
- if (parser.ENTITIES[entityLC]) {
- return parser.ENTITIES[entityLC]
- }
- entity = entityLC
- if (entity.charAt(0) === '#') {
- if (entity.charAt(1) === 'x') {
- entity = entity.slice(2)
- num = parseInt(entity, 16)
- numStr = num.toString(16)
- } else {
- entity = entity.slice(1)
- num = parseInt(entity, 10)
- numStr = num.toString(10)
- }
- }
- entity = entity.replace(/^0+/, '')
- if (numStr.toLowerCase() !== entity) {
- strictFail(parser, 'Invalid character entity')
- return '&' + parser.entity + ';'
- }
-
- return String.fromCodePoint(num)
- }
-
- function beginWhiteSpace (parser, c) {
- if (c === '<') {
- parser.state = S.OPEN_WAKA
- parser.startTagPosition = parser.position
- } else if (not(whitespace, c)) {
- // have to process this as a text node.
- // weird, but happens.
- strictFail(parser, 'Non-whitespace before first tag.')
- parser.textNode = c
- parser.state = S.TEXT
- }
- }
-
- function charAt (chunk, i) {
- var result = ''
- if (i < chunk.length) {
- result = chunk.charAt(i)
- }
- return result
- }
-
- function write (chunk) {
- var parser = this
- if (this.error) {
- throw this.error
- }
- if (parser.closed) {
- return error(parser,
- 'Cannot write after close. Assign an onready handler.')
- }
- if (chunk === null) {
- return end(parser)
- }
- if (typeof chunk === 'object') {
- chunk = chunk.toString()
- }
- var i = 0
- var c = ''
- while (true) {
- c = charAt(chunk, i++)
- parser.c = c
-
- if (!c) {
- break
- }
-
- if (parser.trackPosition) {
- parser.position++
- if (c === '\n') {
- parser.line++
- parser.column = 0
- } else {
- parser.column++
- }
- }
-
- switch (parser.state) {
- case S.BEGIN:
- parser.state = S.BEGIN_WHITESPACE
- if (c === '\uFEFF') {
- continue
- }
- beginWhiteSpace(parser, c)
- continue
-
- case S.BEGIN_WHITESPACE:
- beginWhiteSpace(parser, c)
- continue
-
- case S.TEXT:
- if (parser.sawRoot && !parser.closedRoot) {
- var starti = i - 1
- while (c && c !== '<' && c !== '&') {
- c = charAt(chunk, i++)
- if (c && parser.trackPosition) {
- parser.position++
- if (c === '\n') {
- parser.line++
- parser.column = 0
- } else {
- parser.column++
- }
- }
- }
- parser.textNode += chunk.substring(starti, i - 1)
- }
- if (c === '<' && !(parser.sawRoot && parser.closedRoot && !parser.strict)) {
- parser.state = S.OPEN_WAKA
- parser.startTagPosition = parser.position
- } else {
- if (not(whitespace, c) && (!parser.sawRoot || parser.closedRoot)) {
- strictFail(parser, 'Text data outside of root node.')
- }
- if (c === '&') {
- parser.state = S.TEXT_ENTITY
- } else {
- parser.textNode += c
- }
- }
- continue
-
- case S.SCRIPT:
- // only non-strict
- if (c === '<') {
- parser.state = S.SCRIPT_ENDING
- } else {
- parser.script += c
- }
- continue
-
- case S.SCRIPT_ENDING:
- if (c === '/') {
- parser.state = S.CLOSE_TAG
- } else {
- parser.script += '<' + c
- parser.state = S.SCRIPT
- }
- continue
-
- case S.OPEN_WAKA:
- // either a /, ?, !, or text is coming next.
- if (c === '!') {
- parser.state = S.SGML_DECL
- parser.sgmlDecl = ''
- } else if (is(whitespace, c)) {
- // wait for it...
- } else if (isMatch(nameStart, c)) {
- parser.state = S.OPEN_TAG
- parser.tagName = c
- } else if (c === '/') {
- parser.state = S.CLOSE_TAG
- parser.tagName = ''
- } else if (c === '?') {
- parser.state = S.PROC_INST
- parser.procInstName = parser.procInstBody = ''
- } else {
- strictFail(parser, 'Unencoded <')
- // if there was some whitespace, then add that in.
- if (parser.startTagPosition + 1 < parser.position) {
- var pad = parser.position - parser.startTagPosition
- c = new Array(pad).join(' ') + c
- }
- parser.textNode += '<' + c
- parser.state = S.TEXT
- }
- continue
-
- case S.SGML_DECL:
- if ((parser.sgmlDecl + c).toUpperCase() === CDATA) {
- emitNode(parser, 'onopencdata')
- parser.state = S.CDATA
- parser.sgmlDecl = ''
- parser.cdata = ''
- } else if (parser.sgmlDecl + c === '--') {
- parser.state = S.COMMENT
- parser.comment = ''
- parser.sgmlDecl = ''
- } else if ((parser.sgmlDecl + c).toUpperCase() === DOCTYPE) {
- parser.state = S.DOCTYPE
- if (parser.doctype || parser.sawRoot) {
- strictFail(parser,
- 'Inappropriately located doctype declaration')
- }
- parser.doctype = ''
- parser.sgmlDecl = ''
- } else if (c === '>') {
- emitNode(parser, 'onsgmldeclaration', parser.sgmlDecl)
- parser.sgmlDecl = ''
- parser.state = S.TEXT
- } else if (is(quote, c)) {
- parser.state = S.SGML_DECL_QUOTED
- parser.sgmlDecl += c
- } else {
- parser.sgmlDecl += c
- }
- continue
-
- case S.SGML_DECL_QUOTED:
- if (c === parser.q) {
- parser.state = S.SGML_DECL
- parser.q = ''
- }
- parser.sgmlDecl += c
- continue
-
- case S.DOCTYPE:
- if (c === '>') {
- parser.state = S.TEXT
- emitNode(parser, 'ondoctype', parser.doctype)
- parser.doctype = true // just remember that we saw it.
- } else {
- parser.doctype += c
- if (c === '[') {
- parser.state = S.DOCTYPE_DTD
- } else if (is(quote, c)) {
- parser.state = S.DOCTYPE_QUOTED
- parser.q = c
- }
- }
- continue
-
- case S.DOCTYPE_QUOTED:
- parser.doctype += c
- if (c === parser.q) {
- parser.q = ''
- parser.state = S.DOCTYPE
- }
- continue
-
- case S.DOCTYPE_DTD:
- parser.doctype += c
- if (c === ']') {
- parser.state = S.DOCTYPE
- } else if (is(quote, c)) {
- parser.state = S.DOCTYPE_DTD_QUOTED
- parser.q = c
- }
- continue
-
- case S.DOCTYPE_DTD_QUOTED:
- parser.doctype += c
- if (c === parser.q) {
- parser.state = S.DOCTYPE_DTD
- parser.q = ''
- }
- continue
-
- case S.COMMENT:
- if (c === '-') {
- parser.state = S.COMMENT_ENDING
- } else {
- parser.comment += c
- }
- continue
-
- case S.COMMENT_ENDING:
- if (c === '-') {
- parser.state = S.COMMENT_ENDED
- parser.comment = textopts(parser.opt, parser.comment)
- if (parser.comment) {
- emitNode(parser, 'oncomment', parser.comment)
- }
- parser.comment = ''
- } else {
- parser.comment += '-' + c
- parser.state = S.COMMENT
- }
- continue
-
- case S.COMMENT_ENDED:
- if (c !== '>') {
- strictFail(parser, 'Malformed comment')
- // allow <!-- blah -- bloo --> in non-strict mode,
- // which is a comment of " blah -- bloo "
- parser.comment += '--' + c
- parser.state = S.COMMENT
- } else {
- parser.state = S.TEXT
- }
- continue
-
- case S.CDATA:
- if (c === ']') {
- parser.state = S.CDATA_ENDING
- } else {
- parser.cdata += c
- }
- continue
-
- case S.CDATA_ENDING:
- if (c === ']') {
- parser.state = S.CDATA_ENDING_2
- } else {
- parser.cdata += ']' + c
- parser.state = S.CDATA
- }
- continue
-
- case S.CDATA_ENDING_2:
- if (c === '>') {
- if (parser.cdata) {
- emitNode(parser, 'oncdata', parser.cdata)
- }
- emitNode(parser, 'onclosecdata')
- parser.cdata = ''
- parser.state = S.TEXT
- } else if (c === ']') {
- parser.cdata += ']'
- } else {
- parser.cdata += ']]' + c
- parser.state = S.CDATA
- }
- continue
-
- case S.PROC_INST:
- if (c === '?') {
- parser.state = S.PROC_INST_ENDING
- } else if (is(whitespace, c)) {
- parser.state = S.PROC_INST_BODY
- } else {
- parser.procInstName += c
- }
- continue
-
- case S.PROC_INST_BODY:
- if (!parser.procInstBody && is(whitespace, c)) {
- continue
- } else if (c === '?') {
- parser.state = S.PROC_INST_ENDING
- } else {
- parser.procInstBody += c
- }
- continue
-
- case S.PROC_INST_ENDING:
- if (c === '>') {
- emitNode(parser, 'onprocessinginstruction', {
- name: parser.procInstName,
- body: parser.procInstBody
- })
- parser.procInstName = parser.procInstBody = ''
- parser.state = S.TEXT
- } else {
- parser.procInstBody += '?' + c
- parser.state = S.PROC_INST_BODY
- }
- continue
-
- case S.OPEN_TAG:
- if (isMatch(nameBody, c)) {
- parser.tagName += c
- } else {
- newTag(parser)
- if (c === '>') {
- openTag(parser)
- } else if (c === '/') {
- parser.state = S.OPEN_TAG_SLASH
- } else {
- if (not(whitespace, c)) {
- strictFail(parser, 'Invalid character in tag name')
- }
- parser.state = S.ATTRIB
- }
- }
- continue
-
- case S.OPEN_TAG_SLASH:
- if (c === '>') {
- openTag(parser, true)
- closeTag(parser)
- } else {
- strictFail(parser, 'Forward-slash in opening tag not followed by >')
- parser.state = S.ATTRIB
- }
- continue
-
- case S.ATTRIB:
- // haven't read the attribute name yet.
- if (is(whitespace, c)) {
- continue
- } else if (c === '>') {
- openTag(parser)
- } else if (c === '/') {
- parser.state = S.OPEN_TAG_SLASH
- } else if (isMatch(nameStart, c)) {
- parser.attribName = c
- parser.attribValue = ''
- parser.state = S.ATTRIB_NAME
- } else {
- strictFail(parser, 'Invalid attribute name')
- }
- continue
-
- case S.ATTRIB_NAME:
- if (c === '=') {
- parser.state = S.ATTRIB_VALUE
- } else if (c === '>') {
- strictFail(parser, 'Attribute without value')
- parser.attribValue = parser.attribName
- attrib(parser)
- openTag(parser)
- } else if (is(whitespace, c)) {
- parser.state = S.ATTRIB_NAME_SAW_WHITE
- } else if (isMatch(nameBody, c)) {
- parser.attribName += c
- } else {
- strictFail(parser, 'Invalid attribute name')
- }
- continue
-
- case S.ATTRIB_NAME_SAW_WHITE:
- if (c === '=') {
- parser.state = S.ATTRIB_VALUE
- } else if (is(whitespace, c)) {
- continue
- } else {
- strictFail(parser, 'Attribute without value')
- parser.tag.attributes[parser.attribName] = ''
- parser.attribValue = ''
- emitNode(parser, 'onattribute', {
- name: parser.attribName,
- value: ''
- })
- parser.attribName = ''
- if (c === '>') {
- openTag(parser)
- } else if (isMatch(nameStart, c)) {
- parser.attribName = c
- parser.state = S.ATTRIB_NAME
- } else {
- strictFail(parser, 'Invalid attribute name')
- parser.state = S.ATTRIB
- }
- }
- continue
-
- case S.ATTRIB_VALUE:
- if (is(whitespace, c)) {
- continue
- } else if (is(quote, c)) {
- parser.q = c
- parser.state = S.ATTRIB_VALUE_QUOTED
- } else {
- strictFail(parser, 'Unquoted attribute value')
- parser.state = S.ATTRIB_VALUE_UNQUOTED
- parser.attribValue = c
- }
- continue
-
- case S.ATTRIB_VALUE_QUOTED:
- if (c !== parser.q) {
- if (c === '&') {
- parser.state = S.ATTRIB_VALUE_ENTITY_Q
- } else {
- parser.attribValue += c
- }
- continue
- }
- attrib(parser)
- parser.q = ''
- parser.state = S.ATTRIB_VALUE_CLOSED
- continue
-
- case S.ATTRIB_VALUE_CLOSED:
- if (is(whitespace, c)) {
- parser.state = S.ATTRIB
- } else if (c === '>') {
- openTag(parser)
- } else if (c === '/') {
- parser.state = S.OPEN_TAG_SLASH
- } else if (isMatch(nameStart, c)) {
- strictFail(parser, 'No whitespace between attributes')
- parser.attribName = c
- parser.attribValue = ''
- parser.state = S.ATTRIB_NAME
- } else {
- strictFail(parser, 'Invalid attribute name')
- }
- continue
-
- case S.ATTRIB_VALUE_UNQUOTED:
- if (not(attribEnd, c)) {
- if (c === '&') {
- parser.state = S.ATTRIB_VALUE_ENTITY_U
- } else {
- parser.attribValue += c
- }
- continue
- }
- attrib(parser)
- if (c === '>') {
- openTag(parser)
- } else {
- parser.state = S.ATTRIB
- }
- continue
-
- case S.CLOSE_TAG:
- if (!parser.tagName) {
- if (is(whitespace, c)) {
- continue
- } else if (notMatch(nameStart, c)) {
- if (parser.script) {
- parser.script += '</' + c
- parser.state = S.SCRIPT
- } else {
- strictFail(parser, 'Invalid tagname in closing tag.')
- }
- } else {
- parser.tagName = c
- }
- } else if (c === '>') {
- closeTag(parser)
- } else if (isMatch(nameBody, c)) {
- parser.tagName += c
- } else if (parser.script) {
- parser.script += '</' + parser.tagName
- parser.tagName = ''
- parser.state = S.SCRIPT
- } else {
- if (not(whitespace, c)) {
- strictFail(parser, 'Invalid tagname in closing tag')
- }
- parser.state = S.CLOSE_TAG_SAW_WHITE
- }
- continue
-
- case S.CLOSE_TAG_SAW_WHITE:
- if (is(whitespace, c)) {
- continue
- }
- if (c === '>') {
- closeTag(parser)
- } else {
- strictFail(parser, 'Invalid characters in closing tag')
- }
- continue
-
- case S.TEXT_ENTITY:
- case S.ATTRIB_VALUE_ENTITY_Q:
- case S.ATTRIB_VALUE_ENTITY_U:
- var returnState
- var buffer
- switch (parser.state) {
- case S.TEXT_ENTITY:
- returnState = S.TEXT
- buffer = 'textNode'
- break
-
- case S.ATTRIB_VALUE_ENTITY_Q:
- returnState = S.ATTRIB_VALUE_QUOTED
- buffer = 'attribValue'
- break
-
- case S.ATTRIB_VALUE_ENTITY_U:
- returnState = S.ATTRIB_VALUE_UNQUOTED
- buffer = 'attribValue'
- break
- }
-
- if (c === ';') {
- parser[buffer] += parseEntity(parser)
- parser.entity = ''
- parser.state = returnState
- } else if (isMatch(parser.entity.length ? entityBody : entityStart, c)) {
- parser.entity += c
- } else {
- strictFail(parser, 'Invalid character in entity name')
- parser[buffer] += '&' + parser.entity + c
- parser.entity = ''
- parser.state = returnState
- }
-
- continue
-
- default:
- throw new Error(parser, 'Unknown state: ' + parser.state)
- }
- } // while
-
- if (parser.position >= parser.bufferCheckPosition) {
- checkBufferLength(parser)
- }
- return parser
- }
-
- /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */
- /* istanbul ignore next */
- if (!String.fromCodePoint) {
- (function () {
- var stringFromCharCode = String.fromCharCode
- var floor = Math.floor
- var fromCodePoint = function () {
- var MAX_SIZE = 0x4000
- var codeUnits = []
- var highSurrogate
- var lowSurrogate
- var index = -1
- var length = arguments.length
- if (!length) {
- return ''
- }
- var result = ''
- while (++index < length) {
- var codePoint = Number(arguments[index])
- if (
- !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`
- codePoint < 0 || // not a valid Unicode code point
- codePoint > 0x10FFFF || // not a valid Unicode code point
- floor(codePoint) !== codePoint // not an integer
- ) {
- throw RangeError('Invalid code point: ' + codePoint)
- }
- if (codePoint <= 0xFFFF) { // BMP code point
- codeUnits.push(codePoint)
- } else { // Astral code point; split in surrogate halves
- // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
- codePoint -= 0x10000
- highSurrogate = (codePoint >> 10) + 0xD800
- lowSurrogate = (codePoint % 0x400) + 0xDC00
- codeUnits.push(highSurrogate, lowSurrogate)
- }
- if (index + 1 === length || codeUnits.length > MAX_SIZE) {
- result += stringFromCharCode.apply(null, codeUnits)
- codeUnits.length = 0
- }
- }
- return result
- }
- /* istanbul ignore next */
- if (Object.defineProperty) {
- Object.defineProperty(String, 'fromCodePoint', {
- value: fromCodePoint,
- configurable: true,
- writable: true
- })
- } else {
- String.fromCodePoint = fromCodePoint
- }
- }())
- }
-})(typeof exports === 'undefined' ? this.sax = {} : exports)
diff --git a/node_modules/sax/package.json b/node_modules/sax/package.json
deleted file mode 100644
index f620ff845..000000000
--- a/node_modules/sax/package.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "name": "sax",
- "description": "An evented streaming XML parser in JavaScript",
- "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
- "version": "1.2.2",
- "main": "lib/sax.js",
- "license": "ISC",
- "scripts": {
- "test": "tap test/*.js --cov -j4",
- "posttest": "standard -F test/*.js lib/*.js"
- },
- "repository": "git://github.com/isaacs/sax-js.git",
- "files": [
- "lib/sax.js",
- "LICENSE",
- "README.md"
- ],
- "devDependencies": {
- "standard": "^8.6.0",
- "tap": "^10.0.2"
- }
-}
diff --git a/node_modules/selenium-webdriver/.npmignore b/node_modules/selenium-webdriver/.npmignore
deleted file mode 100644
index d5700888a..000000000
--- a/node_modules/selenium-webdriver/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules/
-
diff --git a/node_modules/selenium-webdriver/CHANGES.md b/node_modules/selenium-webdriver/CHANGES.md
deleted file mode 100644
index 0260b0604..000000000
--- a/node_modules/selenium-webdriver/CHANGES.md
+++ /dev/null
@@ -1,784 +0,0 @@
-## v3.4.0
-
-### Notice
-
-This release requires [geckodriver 0.15.0](https://github.com/mozilla/geckodriver/releases/tag/v0.15.0) or newer.
-
-### API Changes
-
-* Added `Options#getTimeouts()` for retrieving the currently configured session
- timeouts (i.e. implicit wait). This method will only work with W3C compatible
- WebDriver implementations.
-* Deprecated the `Timeouts` class in favor of `Options#setTimeouts()`, which
- supports setting multiple timeouts at once.
-* Added support for emulating different network conditions (e.g., offline, 2G, WiFi) on Chrome.
-
-### Changes for W3C WebDriver Spec Compliance
-
-* Fixed W3C response parsing, which expects response data to always be a JSON
- object with a `value` key.
-* Added W3C endpoints for interacting with various types of
- [user prompts](https://w3c.github.io/webdriver/webdriver-spec.html#user-prompts).
-* Added W3C endpoints for remotely executing scripts.
-* Added W3C endpoints to get current window handle and all windows handles.
-
-
-## v3.3.0
-
-* Added warning log messages when the user creates new managed promises, or
- schedules unchained tasks. Users may opt in to printing these log messages
- with
-
- ```js
- const {logging} = require('selenium-webdriver');
- logging.installConsoleHandler();
- logging.getLogger('promise.ControlFlow').setLevel(logging.Level.WARNING);
- ```
-* If the `JAVA_HOME` environment variable is set, use it to locate java.exe.
-
-
-## v3.2.0
-
-* Release skipped to stay in sync with the main Selenium project.
-
-
-## v3.1.0
-
-* The `lib` package is once again platform agnostic (excluding `lib/devmode`).
-* Deprecated `promise.when(value, callback, errback)`.
- Use `promise.fulfilled(value).then(callback, errback)`
-* Changed `promise.fulfilled(value)`, `promise.rejected(reason)` and
- `promise.defer()` to all use native promises when the promise manager is
- disabled.
-* Properly handle W3C error responses to new session commands.
-* Updated `selenium-webdriver/testing` to export `describe.only` along with
- `describe.skip`.
-* Fixed `selenium-webdriver/lib/until.ableToSwitchToFrame`. It was previously
- dropping arguments and would never work.
-* Added the ability to use Firefox Nightly
-* If Firefox cannot be found in the default location, look for it on the PATH
-* Allow SafariDriver to use Safari Technology Preview.
-* Use the proper wire command for WebElement.getLocation() and
- WebElement.getSize() for W3C compliant drivers.
-
-
-## v3.0.1
-
-* More API adjustments to align with native Promises
- - Deprecated `promise.fulfilled(value)`, use `promise.Promise#resolve(value)`
- - Deprecated `promise.rejected(reason)`, use `promise.Promise#reject(reason)`
-* When a `wait()` condition times out, the returned promise will now be
- rejected with an `error.TimeoutError` instead of a generic `Error` object.
-* `WebDriver#wait()` will now throw a TypeError if an invalid wait condition is
- provided.
-* Properly catch unhandled promise rejections with an action sequence (only
- impacts when the promise manager is disabled).
-
-
-## v3.0.0
-
-* (__NOTICE__) The minimum supported version of Node is now 6.9.0 LTS
-* Removed support for the SafariDriver browser extension. This has been
- replaced by Apple's safaridriver, which is included wtih Safari 10
- (available on OS X El Capitan and macOS Sierra).
-
- To use Safari 9 or older, users will have to use an older version of Selenium.
-
-* geckodriver v0.11.0 or newer is now required for Firefox.
-* Fixed potential reference errors in `selenium-webdriver/testing` when users
- create a cycle with mocha by running with mocha's `--hook` flag.
-* Fixed `WebDriver.switchTo().activeElement()` to use the correct HTTP method
- for compatibility with the W3C spec.
-* Update the `selenium-webdriver/firefox` module to use geckodriver's
- "moz:firefoxOptions" dictionary for Firefox-specific configuration values.
-* Extending the `selenium-webdriver/testing` module to support tests defined
- using generator functions.
-* The promise manager can be disabled by setting an enviornment variable:
- `SELENIUM_PROMISE_MANAGER=0`. This is part of a larger plan to remove the
- promise manager, as documented at
- <https://github.com/SeleniumHQ/selenium/issues/2969>
-* When communicating with a W3C-compliant remote end, use the atoms library for
- the `WebElement.getAttribute()` and `WebElement.isDisplayed()` commands. This
- behavior is consistent with the java, .net, python, and ruby clients.
-
-
-### API Changes
-
- * Removed `safari.Options#useLegacyDriver()`
- * Reduced the API on `promise.Thenable` for compatibility with native promises:
- - Removed `#isPending()`
- - Removed `#cancel()`
- - Removed `#finally()`
- * Changed all subclasses of `webdriver.WebDriver` to overload the static
- function `WebDriver.createSession()` instead of doing work in the
- constructor. All constructors now inherit the base class' function signature.
- Users are still encouraged to use the `Builder` class instead of creating
- drivers directly.
- * `Builder#build()` now returns a "thenable" WebDriver instance, allowing users
- to immediately schedule commands (as before), or issue them through standard
- promise callbacks. This is the same pattern already employed for WebElements.
- * Removed `Builder#buildAsync()` as it was redundant with the new semantics of
- `build()`.
-
-
-
-## v3.0.0-beta-3
-
-* Fixed a bug where the promise manager would silently drop callbacks after
- recovering from an unhandled promise rejection.
-* Added the `firefox.ServiceBuilder` class, which may be used to customize the
- geckodriver used for `firefox.Driver` instances.
-* Added support for Safari 10 safaridriver. safaridriver may be disabled
- via tha API, `safari.Options#useLegacyDriver`, to use the safari
- extension driver.
-* Updated the `lib/proxy` module to support configuring a SOCKS proxy.
-* For the `promise.ControlFlow`, fire the "uncaughtException" event in a new
- turn of the JS event loop. As a result of this change, any errors thrown by
- an event listener will propagate to the global error handler. Previously,
- this event was fired with in the context of a (native) promise callback,
- causing errors to be silently suppressed in the promise chain.
-
-### API Changes
-
-* Added `remote.DriverService.Builder` as a base class for configuring
- DriverService instances that run in a child-process. The
- `chrome.ServiceBuilder`, `edge.ServiceBuilder`, and `opera.ServiceBuilder`
- classes now all extend this base class with browser-specific options.
-* For each of the ServiceBuilder clases, renamed `usingPort` and
- `withEnvironment` to `setPort` and `setEnvironment`, respectively.
-* Renamed `chrome.ServiceBuilder#setUrlBasePath` to `#setPath`
-* Changed the signature of the `firefox.Driver` from `(config, flow, executor)`
- to `(config, executor, flow)`.
-* Exposed the `Condition` and `WebElementCondition` classes from the top-level
- `selenium-webdriver` module (these were previously only available from
- `lib/webdriver`).
-
-
-### Changes for W3C WebDriver Spec Compliance
-
-* Updated command mappings for [getting](https://w3c.github.io/webdriver/webdriver-spec.html#get-window-position)
- and [setting](https://w3c.github.io/webdriver/webdriver-spec.html#set-window-position)
- the window position.
-
-
-## v3.0.0-beta-2
-
-### API Changes
-
-* Moved the `builder.Builder` class into the main module (`selenium-webdriver`).
-* Removed the `builder` module.
-* Fix `webdriver.WebDriver#setFileDetector` when driving Chrome or Firefox on a
- remote machine.
-
-
-## v3.0.0-beta-1
-
-* Allow users to set the agent used for HTTP connections through
- `builder.Builder#usingHttpAgent()`
-* Added new wait conditions: `until.urlIs()`, `until.urlContains()`,
- `until.urlMatches()`
-* Added work around for [GeckoDriver bug](https://bugzilla.mozilla.org/show_bug.cgi?id=1274924)
- raising a type conversion error
-* Internal cleanup replacing uses of managed promises with native promises
-* Removed the mandatory use of Firefox Dev Edition, when using Marionette driver
-* Fixed timeouts' URL
-* Properly send HTTP requests when using a WebDriver server proxy
-* Properly configure proxies when using the geckodriver
-* `http.Executor` now accepts a promised client. The `builder.Builder` class
- will now use this instead of a `command.DeferredExecutor` when creating
- WebDriver instances.
-* For Chrome and Firefox, the `builder.Builder` class will always return an
- instanceof `chrome.Driver` and `firefox.Driver`, respectively, even when
- configured to use a remote server (from `builder.Builder#usingServer(url)`,
- `SELENIUM_REMOTE_URL`, etc).
-
-### API Changes
-
-* `promise.Deferred` is no longer a thenable object.
-* `Options#addCookie()` now takes a record object instead of 7 individual
- parameters. A TypeError will be thrown if addCookie() is called with invalid
- arguments.
-* When adding cookies, the desired expiry must be provided as a Date or in
- _seconds_ since epoch. When retrieving cookies, the expiration is always
- returned in seconds.
-* Renamed `firefox.Options#useMarionette` to `firefox.Options#useGeckoDriver`
-* Removed deprecated modules:
- - `selenium-webdriver/error` (use `selenium-webdriver/lib/error`,\
- or the `error` property exported by `selenium-webdriver`)
- - `selenium-webdriver/executors` — this was not previously deprecated, but
- is no longer used.
-* Removed deprecated types:
- - `command.DeferredExecutor` — this was not previously deprecated, but is no
- longer used. It can be trivially implemented by clients should it be
- needed.
- - `error.InvalidSessionIdError` (use `error.NoSuchSessionError`)
- - `executors.DeferredExecutor`
- - `until.Condition` (use `webdriver.Condition`)
- - `until.WebElementCondition` (use `webdriver.WebElementCondition`)
- - `webdriver.UnhandledAlertError` (use `error.UnexpectedAlertOpenError`)
-* Removed deprecated functions:
- - `Deferred#cancel()`
- - `Deferred#catch()`
- - `Deferred#finally()`
- - `Deferred#isPending()`
- - `Deferred#then()`
- - `Promise#thenCatch()`
- - `Promise#thenFinally()`
- - `WebDriver#isElementPresent()`
- - `WebElement#getInnerHtml()`
- - `WebElement#getOuterHtml()`
- - `WebElement#getRawId()`
- - `WebElement#isElementPresent()`
-* Removed deprecated properties:
- - `WebDriverError#code`
-
-
-## v2.53.2
-
-* Changed `io.exists()` to return a rejected promise if the input path is not
- a string
-* Deprecated `Promise#thenFinally()` - use `Promise#finally()`. The thenFinally
- shim added to the promise module in v2.53.0 will be removed in v3.0
- Sorry for the churn!
-* FIXED: capabilities serialization now properly handles undefined vs.
- false-like values.
-* FIXED: properly handle responses from the remote end in
- `WebDriver.attachToSession`
-
-## v2.53.1
-
-* FIXED: for consistency with the other language bindings, `remote.FileDetector`
- will ignore paths that refer to a directory.
-
-## v2.53.0
-
-### Change Summary
-
-* Added preliminary support for Marionette, Mozilla's WebDriver implementation
- for Firefox. Marionette may be enabled via the API,
- `firefox.Options#useMarionette`, or by setting the `SELENIUM_MARIONETTE`
- environment variable.
-* Moved all logic for parsing and interpreting responses from the remote end
- into the individual `command.Executor` implementations.
-* For consistency with the other Selenium language bindings,
- `WebDriver#isElementPresent()` and `WebElement#isElementPresent()` have
- been deprecated. These methods will be removed in v3.0. Use the findElements
- command to test for the presence of an element:
-
- driver.findElements(By.css('.foo')).then(found => !!found.length);
-* Added support for W3C-spec compliant servers.
-* For consistent naming, deprecating `error.InvalidSessionIdError` in favor of
- `error.NoSuchSessionError`.
-* Moved the `error` module to `lib/error` so all core modules are co-located.
- The top-level `error` module will be removed in v3.0.
-* Moved `until.Condition` and `until.WebElementCondition` to the webdriver
- module to break a circular dependency.
-* Added support for setting the username and password in basic auth pop-up
- dialogs (currently IE only).
-* Deprecated `WebElement#getInnerHtml()` and `WebEleemnt#getOuterHtml()`
-* Deprecated `Promise#thenCatch()` - use `Promise#catch()` instead
-* Deprecated `Promise#thenFinally()` - use `promise.thenFinally()` instead
-* FIXED: `io.findInPath()` will no longer match against directories that have
- the same basename as the target file.
-* FIXED: `phantomjs.Driver` now takes a third argument that defines the path to
- a log file to use for the phantomjs executable's output. This may be quickly
- set at runtime with the `SELENIUM_PHANTOMJS_LOG` environment variable.
-
-### Changes for W3C WebDriver Spec Compliance
-
-* Changed `element.sendKeys(...)` to send the key sequence as an array where
- each element defines a single key. The legacy wire protocol permits arrays
- where each element is a string of arbitrary length. This change is solely
- at the protocol level and should have no user-visible effect.
-
-
-## v2.52.0
-
-### Notice
-
-Starting with v2.52.0, each release of selenium-webdriver will support the
-latest _minor_ LTS and stable Node releases. All releases between the LTS and
-stable release will have best effort support. Further details are available in
-the selenium-webdriver package README.
-
-### Change Summary
-
-* Add support for Microsoft's Edge web browser
-* Added `webdriver.Builder#buildAsync()`, which returns a promise that will be
- fulfilled with the newly created WebDriver instance once the associated
- browser has been full initialized. This is purely a convenient alternative
- to the existing build() method as the WebDriver class will always defer
- commands until it has a fully created browser.
-* Added `firefox.Profile#setHost()` which may be used to set the host that
- the FirefoxDriver's server listens for commands on. The server uses
- "localhost" by default.
-* Added `promise.Promise#catch()` for API compatibility with native Promises.
- `promise.Promise#thenCatch()` is not yet deprecated, but it simply
- delegates to `catch`.
-* Changed some `io` operations to use native promises.
-* Changed `command.Executor#execute()` and `HttpClient#send()` to return
- promises instead of using callback passing.
-* Replaced the `Serializable` class with an internal, Symbol-defined method.
-* Changed the `Capabilities` class to extend the native `Map` type.
-* Changed the `Capabilities.has(key)` to only test if a capability has been set
- (Map semantics). To check whether the value is true, use `get(key)`.
-* Deprecated `executors.DeferredExecutor` in favor of
- `lib/command.DeferredExecutor`.
-* API documentation is no longer distributed with the npm package, but remains
- available at <http://seleniumhq.github.io/selenium/docs/api/javascript/>
-* Rewrote the `error` module to export an Error subtype for each type of error
- defined in the [W3C WebDriver spec](https://w3c.github.io/webdriver/webdriver-spec.html#handling-errors).
-* Changed the `http.Request` and `http.Response` classes to store headers in
- maps instead of object literals.
-* Updated `ws` dependency to version `1.0.1`.
-* Removed fluent predicates "is" and "not" from the experimental
- `testing/assert` module.
-* Wait conditions that locate an element, or that wait on an element's state,
- will return a WebElementPromise.
-* Lots of internal clean-up to break selenium-webdriver's long standing
- dependency on Google's Closure library.
-
-### Changes for W3C WebDriver Spec Compliance
-
-* Updated the `By` locators that are not in the W3C spec to delegated to using
- CSS selectors: `By.className`, `By.id`, `By.name`, and `By.tagName`.
-
-
-## v2.49-51
-
-* _Releases skipped to stay in sync with the rest of the Selenium project_
-
-
-## v2.48.2
-
-* Added `WebElement#takeScreenshot()`.
-* More adjustments to promise callback tracking.
-
-## v2.48.1
-
-* FIXED: Adjusted how the control flow tracks promise callbacks to avoid a
- potential deadlock.
-
-## v2.48.0
-
-* Node v0.12.x users must run with --harmony. _This is the last release that
- will support v0.12.x_
-* FIXED: (Promise/A+ compliance) When a promise is rejected with a thenable,
- the promise adopts the thenable as its rejection reason instead of waiting
- for it to settle. The previous (incorrect) behavior was hidden by bugs in
- the `promises-aplus-tests` compliance test suite that were fixed in version
- `2.1.1`.
-* FIXED: the `webdriver.promise.ControlFlow` now has a consistent execution
- order for tasks/callbacks scheduled in different turns of the JS event loop.
- Refer to the `webdriver.promise` documentation for more details.
-* FIXED: do not drop user auth from the WebDriver server URL.
-* FIXED: a single `firefox.Binary` instance may be used to configure and
- launch multiple FirefoxDriver sessions.
-
- var binary = new firefox.Binary();
- var options = new firefox.Options().setBinary(binary);
- var builder = new Builder().setFirefoxOptions(options);
-
- var driver1 = builder.build();
- var driver2 = builder.build();
-
-* FIXED: zip files created for transfer to a remote WebDriver server are no
- longer compressed. If the zip contained a file that was already compressed,
- the server would return an "invalid code lengths set" error.
-* FIXED: Surfaced the `loopback` option to `remote/SeleniumServer`. When set,
- the server will be accessed using the current host's loopback address.
-
-## v2.47.0
-
-### Notice
-
-This is the last release for `selenium-webdriver` that will support ES5.
-Subsequent releases will depend on ES6 features that are enabled by
-[default](https://nodejs.org/en/docs/es6/) in Node v4.0.0. Node v0.12.x will
-continue to be supported, but will require setting the `--harmony` flag.
-
-### Change Summary
-
-* Add support for [Node v4.0.0](https://nodejs.org/en/blog/release/v4.0.0/)
- * Updated `ws` dependency from `0.7.1` to `0.8.0`
-* Bumped the minimum supported version of Node from `0.10.x` to `0.12.x`. This
- is in accordance with the Node support policy established in `v2.45.0`.
-
-## v2.46.1
-
-* Fixed internal module loading on Windows.
-* Fixed error message format on timeouts for `until.elementLocated()`
- and `until.elementsLocated()`.
-
-## v2.46.0
-
-* Exposed a new logging API via the `webdriver.logging` module. For usage, see
- `example/logging.js`.
-* Added support for using a proxy server for WebDriver commands.
- See `Builder#usingWebDriverProxy()` for more info.
-* Removed deprecated functions:
- * Capabilities#toJSON()
- * UnhandledAlertError#getAlert()
- * chrome.createDriver()
- * phantomjs.createDriver()
- * promise.ControlFlow#annotateError()
- * promise.ControlFlow#await()
- * promise.ControlFlow#clearHistory()
- * promise.ControlFlow#getHistory()
-* Removed deprecated enum values: `ErrorCode.NO_MODAL_DIALOG_OPEN` and
- `ErrorCode.MODAL_DIALOG_OPENED`. Use `ErrorCode.NO_SUCH_ALERT` and
- `ErrorCode.UNEXPECTED_ALERT_OPEN`, respectively.
-* FIXED: The `promise.ControlFlow` will maintain state for promise chains
- generated in a loop.
-* FIXED: Correct serialize target elements used in an action sequence.
-* FIXED: `promise.ControlFlow#wait()` now has consistent semantics for an
- omitted or 0-timeout: it will wait indefinitely.
-* FIXED: `remote.DriverService#start()` will now fail if the child process dies
- while waiting for the server to start accepting requests. Previously, start
- would continue to poll the server address until the timeout expired.
-* FIXED: Skip launching Firefox with the `-silent` flag to preheat the profile.
- Starting with Firefox 38, this would cause the browser to crash. This step,
- which was first introduced for Selenium's java client back with Firefox 2,
- no longer appears to be required.
-* FIXED: 8564: `firefox.Driver#quit()` will wait for the Firefox process to
- terminate before deleting the temporary webdriver profile. This eliminates a
- race condition where Firefox would write profile data during shutdown,
- causing the `rm -rf` operation on the profile directory to fail.
-
-## v2.45.1
-
-* FIXED: 8548: Task callbacks are once again dropped if the task was cancelled
- due to a previously uncaught error within the frame.
-* FIXED: 8496: Extended the `chrome.Options` API to cover all configuration
- options (e.g. mobile emulation and performance logging) documented on the
- ChromeDriver [project site](https://sites.google.com/a/chromium.org/chromedriver/capabilities).
-
-## v2.45.0
-
-### Important Policy Change
-
-Starting with the 2.45.0 release, selenium-webdriver will support the last
-two stable minor releases for Node. For 2.45.0, this means Selenium will
-support Node 0.10.x and 0.12.x. Support for the intermediate, un-stable release
-(0.11.x) is "best-effort". This policy will be re-evaluated once Node has a
-major version release (i.e. 1.0.0).
-
-### Change Summary
-
-* Added native browser support for Internet Explorer, Opera 26+, and Safari
-* With the release of [Node 0.12.0](http://blog.nodejs.org/2015/02/06/node-v0-12-0-stable/)
- (finally!), the minimum supported version of Node is now `0.10.x`.
-* The `promise` module is now [Promises/A+](https://promisesaplus.com/)
- compliant. The biggest compliance change is that promise callbacks are now
- invoked in a future turn of the JS event loop. For example:
-
- var promise = require('selenium-webdriver').promise;
- console.log('start');
- promise.fulfilled().then(function() {
- console.log('middle');
- });
- console.log('end');
-
- // Output in selenium-webdriver@2.44.0
- // start
- // middle
- // end
- //
- // Output in selenium-webdriver@2.45.0
- // start
- // end
- // middle
-
- The `promise.ControlFlow` class has been updated to track the asynchronous
- breaks required by Promises/A+, so there are no changes to task execution
- order.
-* Updated how errors are annotated on failures. When a task fails, the
- stacktrace from when that task was scheduled is appended to the rejection
- reason with a `From: ` prefix (if it is an Error object). For example:
-
- var driver = new webdriver.Builder().forBrowser('chrome').build();
- driver.get('http://www.google.com/ncr');
- driver.call(function() {
- driver.wait(function() {
- return driver.isElementPresent(webdriver.By.id('not-there'));
- }, 2000, 'element not found');
- });
-
- This code will fail an error like:
-
- Error: element not found
- Wait timed out after 2002ms
- at <stack trace>
- From: Task: element not found
- at <stack trace>
- From: Task: WebDriver.call(function)
- at <stack trace>
-
-* Changed the format of strings returned by `promise.ControlFlow#getSchedule`.
- This function now accepts a boolean to control whether the returned string
- should include the stacktraces for when each task was scheduled.
-* Deprecating `promise.ControlFlow#getHistory`,
- `promise.ControlFlow#clearHistory`, and `promise.ControlFlow#annotateError`.
- These functions were all intended for internal use and are no longer
- necessary, so they have been made no-ops.
-* `WebDriver.wait()` may now be used to wait for a promise to resolve, with
- an optional timeout. Refer to the API documentation for more information.
-* Added support for copying files to a remote Selenium via `sendKeys` to test
- file uploads. Refer to the API documentation for more information. Sample
- usage included in `test/upload_test.js`
-* Expanded the interactions API to include touch actions.
- See `WebDriver.touchActions()`.
-* FIXED: 8380: `firefox.Driver` will delete its temporary profile on `quit`.
-* FIXED: 8306: Stack overflow in promise callbacks eliminated.
-* FIXED: 8221: Added support for defining custom command mappings. Includes
- support for PhantomJS's `executePhantomJS` (requires PhantomJS 1.9.7 or
- GhostDriver 1.1.0).
-* FIXED: 8128: When the FirefoxDriver marshals an object to the page for
- `executeScript`, it defines additional properties (required by the driver's
- implementation). These properties will no longer be enumerable and should
- be omitted (i.e. they won't show up in JSON.stringify output).
-* FIXED: 8094: The control flow will no longer deadlock when a task returns
- a promise that depends on the completion of sub-tasks.
-
-## v2.44.0
-
-* Added the `until` module, which defines common explicit wait conditions.
- Sample usage:
-
- var firefox = require('selenium-webdriver/firefox'),
- until = require('selenium-webdriver/until');
-
- var driver = new firefox.Driver();
- driver.get('http://www.google.com/ncr');
- driver.wait(until.titleIs('Google Search'), 1000);
-
-* FIXED: 8000: `Builder.forBrowser()` now accepts an empty string since some
- WebDriver implementations ignore the value. A value must still be specified,
- however, since it is a required field in WebDriver's wire protocol.
-* FIXED: 7994: The `stacktrace` module will not modify stack traces if the
- initial parse fails (e.g. the user defined `Error.prepareStackTrace`)
-* FIXED: 5855: Added a module (`until`) that defines several common conditions
- for use with explicit waits. See updated examples for usage.
-
-## v2.43.5
-
-* FIXED: 7905: `Builder.usingServer(url)` once again returns `this` for
- chaining.
-
-## v2.43.2-4
-
-* No changes; version bumps while attempting to work around an issue with
- publishing to npm (a version string may only be used once).
-
-## v2.43.1
-
-* Fixed an issue with flakiness when setting up the Firefox profile that could
- prevent the driver from initializing properly.
-
-## v2.43.0
-
-* Added native support for Firefox - the Java Selenium server is no longer
- required.
-* Added support for generator functions to `ControlFlow#execute` and
- `ControlFlow#wait`. For more information, see documentation on
- `webdriver.promise.consume`. Requires harmony support (run with
- `node --harmony-generators` in `v0.11.x`).
-* Various improvements to the `Builder` API. Notably, the `build()` function
- will no longer default to attempting to use a server at
- `http://localhost:4444/wd/hub` if it cannot start a browser directly -
- you must specify the WebDriver server with `usingServer(url)`. You can
- also set the target browser and WebDriver server through a pair of
- environment variables. See the documentation on the `Builder` constructor
- for more information.
-* For consistency with the other language bindings, added browser specific
- classes that can be used to start a browser without the builder.
-
- var webdriver = require('selenium-webdriver')
- chrome = require('selenium-webdriver/chrome');
-
- // The following are equivalent.
- var driver1 = new webdriver.Builder().forBrowser('chrome').build();
- var driver2 = new chrome.Driver();
-
-* Promise A+ compliance: a promise may no longer resolve to itself.
-* For consistency with other language bindings, deprecated
- `UnhandledAlertError#getAlert` and added `#getAlertText`.
- `getAlert` will be removed in `2.45.0`.
-* FIXED: 7641: Deprecated `ErrorCode.NO_MODAL_DIALOG_OPEN` and
- `ErrorCode.MODAL_DIALOG_OPENED` in favor of the new
- `ErrorCode.NO_SUCH_ALERT` and `ErrorCode.UNEXPECTED_ALERT_OPEN`,
- respectively.
-* FIXED: 7563: Mocha integration no longer disables timeouts. Default Mocha
- timeouts apply (2000 ms) and may be changed using `this.timeout(ms)`.
-* FIXED: 7470: Make it easier to create WebDriver instances in custom flows for
- parallel execution.
-
-## v2.42.1
-
-* FIXED: 7465: Fixed `net.getLoopbackAddress` on Windows
-* FIXED: 7277: Support `done` callback in Mocha's BDD interface
-* FIXED: 7156: `Promise#thenFinally` should not suppress original error
-
-## v2.42.0
-
-* Removed deprecated functions `Promise#addCallback()`,
- `Promise#addCallbacks()`, `Promise#addErrback()`, and `Promise#addBoth()`.
-* Fail with a more descriptive error if the server returns a malformed redirect
-* FIXED: 7300: Connect to ChromeDriver using the loopback address since
- ChromeDriver 2.10.267517 binds to localhost by default.
-* FIXED: 7339: Preserve wrapped test function's string representation for
- Mocha's BDD interface.
-
-## v2.41.0
-
-* FIXED: 7138: export logging API from webdriver module.
-* FIXED: 7105: beforeEach/it/afterEach properly bind `this` for Mocha tests.
-
-## v2.40.0
-
-* API documentation is now included in the docs directory.
-* Added utility functions for working with an array of promises:
- `promise.all`, `promise.map`, and `promise.filter`
-* Introduced `Promise#thenCatch()` and `Promise#thenFinally()`.
-* Deprecated `Promise#addCallback()`, `Promise#addCallbacks()`,
- `Promise#addErrback()`, and `Promise#addBoth()`.
-* Removed deprecated function `webdriver.WebDriver#getCapability`.
-* FIXED: 6826: Added support for custom locators.
-
-## v2.39.0
-
-* Version bump to stay in sync with the Selenium project.
-
-## v2.38.1
-
-* FIXED: 6686: Changed `webdriver.promise.Deferred#cancel()` to silently no-op
- if the deferred has already been resolved.
-
-## v2.38.0
-
-* When a promise is rejected, always annotate the stacktrace with the parent
- flow state so users can identify the source of an error.
-* Updated tests to reflect features not working correctly in the SafariDriver
- (cookie management and proxy support; see issues 5051, 5212, and 5503)
-* FIXED: 6284: For mouse moves, correctly omit the x/y offsets if not
- specified as a function argument (instead of passing (0,0)).
-* FIXED: 6471: Updated documentation on `webdriver.WebElement#getAttribute`
-* FIXED: 6612: On Unix, use the default IANA ephemeral port range if unable to
- retrieve the current system's port range.
-* FIXED: 6617: Avoid triggering the node debugger when initializing the
- stacktrace module.
-* FIXED: 6627: Safely rebuild chrome.Options from a partial JSON spec.
-
-## v2.37.0
-
-* FIXED: 6346: The remote.SeleniumServer class now accepts JVM arguments using
- the `jvmArgs` option.
-
-## v2.36.0
-
-* _Release skipped to stay in sync with main Selenium project._
-
-## v2.35.2
-
-* FIXED: 6200: Pass arguments to the Selenium server instead of to the JVM.
-
-## v2.35.1
-
-* FIXED: 6090: Changed example scripts to use chromedriver.
-
-## v2.35.0
-
-* Version bump to stay in sync with the Selenium project.
-
-## v2.34.1
-
-* FIXED: 6079: The parent process should not wait for spawn driver service
- processes (chromedriver, phantomjs, etc.)
-
-## v2.34.0
-
-* Added the `selenium-webdriver/testing/assert` module. This module
- simplifies writing assertions against promised values (see
- example in module documentation).
-* Added the `webdriver.Capabilities` class.
-* Added native support for the ChromeDriver. When using the `Builder`,
- requesting chrome without specifying a remote server URL will default to
- the native ChromeDriver implementation. The
- [ChromeDriver server](https://code.google.com/p/chromedriver/downloads/list)
- must be downloaded separately.
-
- // Will start ChromeDriver locally.
- var driver = new webdriver.Builder().
- withCapabilities(webdriver.Capabilities.chrome()).
- build();
-
- // Will start ChromeDriver using the remote server.
- var driver = new webdriver.Builder().
- withCapabilities(webdriver.Capabilities.chrome()).
- usingServer('http://server:1234/wd/hub').
- build();
-
-* Added support for configuring proxies through the builder. For examples, see
- `selenium-webdriver/test/proxy_test`.
-* Added native support for PhantomJS.
-* Changed signature of `SeleniumServer` to `SeleniumServer(jar, options)`.
-* Tests are now included in the npm published package. See `README.md` for
- execution instructions
-* Removed the deprecated `webdriver.Deferred#resolve` and
- `webdriver.promise.resolved` functions.
-* Removed the ability to connect to an existing session from the Builder. This
- feature is intended for use with the browser-based client.
-
-## v2.33.0
-
-* Added support for WebDriver's logging API
-* FIXED: 5511: Added webdriver.manage().timeouts().pageLoadTimeout(ms)
-
-## v2.32.1
-
-* FIXED: 5541: Added missing return statement for windows in
- `portprober.findFreePort()`
-
-## v2.32.0
-
-* Added the `selenium-webdriver/testing` package, which provides a basic
- framework for writing tests using Mocha. See
- `selenium-webdriver/example/google_search_test.js` for usage.
-* For Promises/A+ compatibility, backing out the change in 2.30.0 that ensured
- rejections were always Error objects. Rejection reasons are now left as is.
-* Removed deprecated functions originally scheduled for removal in 2.31.0
- * promise.Application.getInstance()
- * promise.ControlFlow#schedule()
- * promise.ControlFlow#scheduleTimeout()
- * promise.ControlFlow#scheduleWait()
-* Renamed some functions for consistency with Promises/A+ terminology. The
- original functions have been deprecated and will be removed in 2.34.0:
- * promise.resolved() -> promise.fulfilled()
- * promise.Deferred#resolve() -> promise.Deferred#fulfill()
-* FIXED: remote.SeleniumServer#stop now shuts down within the active control
- flow, allowing scripts to finish. Use #kill to shutdown immediately.
-* FIXED: 5321: cookie deletion commands
-
-## v2.31.0
-
-* Added an example script.
-* Added a class for controlling the standalone Selenium server (server
-available separately)
-* Added a portprober for finding free ports
-* FIXED: WebElements now belong to the same flow as their parent driver.
-
-## v2.30.0
-
-* Ensures promise rejections are always Error values.
-* Version bump to keep in sync with the Selenium project.
-
-## v2.29.1
-
-* Fixed a bug that could lead to an infinite loop.
-* Added a README.md
-
-## v2.29.0
-
-* Initial release for npm:
-
- npm install selenium-webdriver
diff --git a/node_modules/selenium-webdriver/LICENSE b/node_modules/selenium-webdriver/LICENSE
deleted file mode 100644
index d43f2c0a4..000000000
--- a/node_modules/selenium-webdriver/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2016 Software Freedom Conservancy (SFC)
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/node_modules/selenium-webdriver/NOTICE b/node_modules/selenium-webdriver/NOTICE
deleted file mode 100644
index 274450355..000000000
--- a/node_modules/selenium-webdriver/NOTICE
+++ /dev/null
@@ -1,2 +0,0 @@
-Copyright 2011-2016 Software Freedom Conservancy
-Copyright 2004-2011 Selenium committers
diff --git a/node_modules/selenium-webdriver/README.md b/node_modules/selenium-webdriver/README.md
deleted file mode 100644
index 2cf9ac924..000000000
--- a/node_modules/selenium-webdriver/README.md
+++ /dev/null
@@ -1,232 +0,0 @@
-# selenium-webdriver
-
-Selenium is a browser automation library. Most often used for testing
-web-applications, Selenium may be used for any task that requires automating
-interaction with the browser.
-
-## Installation
-
-Selenium may be installed via npm with
-
- npm install selenium-webdriver
-
-You will need to download additional components to work with each of the major
-browsers. The drivers for Chrome, Firefox, PhantomJS, Opera, and
-Microsoft's IE and Edge web browsers are all standalone executables that should
-be placed on your system [PATH]. Apple's safaridriver is shipped with
-Safari 10 for OS X El Capitan and macOS Sierra. You will need to enable Remote
-Automation in the Develop menu of Safari 10 before testing.
-
-> **NOTE:** Mozilla's [geckodriver] is only required for Firefox 47+.
-> Everything you need for Firefox 38-46 is included with this package.
-
-
-| Browser | Component |
-| ----------------- | ---------------------------------- |
-| Chrome | [chromedriver(.exe)][chrome] |
-| Internet Explorer | [IEDriverServer.exe][release] |
-| Edge | [MicrosoftWebDriver.msi][edge] |
-| Firefox 47+ | [geckodriver(.exe)][geckodriver] |
-| PhantomJS | [phantomjs(.exe)][phantomjs] |
-| Opera | [operadriver(.exe)][opera] |
-| Safari | [safaridriver] |
-
-## Usage
-
-The sample below and others are included in the `example` directory. You may
-also find the tests for selenium-webdriver informative.
-
- var webdriver = require('selenium-webdriver'),
- By = webdriver.By,
- until = webdriver.until;
-
- var driver = new webdriver.Builder()
- .forBrowser('firefox')
- .build();
-
- driver.get('http://www.google.com/ncr');
- driver.findElement(By.name('q')).sendKeys('webdriver');
- driver.findElement(By.name('btnG')).click();
- driver.wait(until.titleIs('webdriver - Google Search'), 1000);
- driver.quit();
-
-### Using the Builder API
-
-The `Builder` class is your one-stop shop for configuring new WebDriver
-instances. Rather than clutter your code with branches for the various browsers,
-the builder lets you set all options in one flow. When you call
-`Builder#build()`, all options irrelevant to the selected browser are dropped:
-
- var webdriver = require('selenium-webdriver'),
- chrome = require('selenium-webdriver/chrome'),
- firefox = require('selenium-webdriver/firefox');
-
- var driver = new webdriver.Builder()
- .forBrowser('firefox')
- .setChromeOptions(/* ... */)
- .setFirefoxOptions(/* ... */)
- .build();
-
-Why would you want to configure options irrelevant to the target browser? The
-`Builder`'s API defines your _default_ configuration. You can change the target
-browser at runtime through the `SELENIUM_BROWSER` environment variable. For
-example, the `example/google_search.js` script is configured to run against
-Firefox. You can run the example against other browsers just by changing the
-runtime environment
-
- # cd node_modules/selenium-webdriver
- node example/google_search
- SELENIUM_BROWSER=chrome node example/google_search
- SELENIUM_BROWSER=safari node example/google_search
-
-### The Standalone Selenium Server
-
-The standalone Selenium Server acts as a proxy between your script and the
-browser-specific drivers. The server may be used when running locally, but it's
-not recommend as it introduces an extra hop for each request and will slow
-things down. The server is required, however, to use a browser on a remote host
-(most browser drivers, like the IEDriverServer, do not accept remote
-connections).
-
-To use the Selenium Server, you will need to install the
-[JDK](http://www.oracle.com/technetwork/java/javase/downloads/index.html) and
-download the latest server from [Selenium][release]. Once downloaded, run the
-server with
-
- java -jar selenium-server-standalone-2.45.0.jar
-
-You may configure your tests to run against a remote server through the Builder
-API:
-
- var driver = new webdriver.Builder()
- .forBrowser('firefox')
- .usingServer('http://localhost:4444/wd/hub')
- .build();
-
-Or change the Builder's configuration at runtime with the `SELENIUM_REMOTE_URL`
-environment variable:
-
- SELENIUM_REMOTE_URL="http://localhost:4444/wd/hub" node script.js
-
-You can experiment with these options using the `example/google_search.js`
-script provided with `selenium-webdriver`.
-
-## Documentation
-
-API documentation is available online from the [Selenium project][api].
-Additional resources include
-
-- the #selenium channel on freenode IRC
-- the [selenium-users@googlegroups.com][users] list
-- [SeleniumHQ](http://www.seleniumhq.org/docs/) documentation
-
-## Contributing
-
-Contributions are accepted either through [GitHub][gh] pull requests or patches
-via the [Selenium issue tracker][issues]. You must sign our
-[Contributor License Agreement][cla] before your changes will be accepted.
-
-## Node Support Policy
-
-Each version of selenium-webdriver will support the latest _semver-minor_
-version of the [LTS] and stable Node releases. All _semver-major_ &
-_semver-minor_ versions between the LTS and stable release will have "best
-effort" support. Following a Selenium release, any _semver-minor_ Node releases
-will also have "best effort" support. Releases older than the latest LTS,
-_semver-major_ releases, and all unstable release branches (e.g. "v.Next")
-are considered strictly unsupported.
-
-For example, suppose the current LTS and stable releases are v6.9.5 and v7.5.0,
-respectively. Then a Selenium release would have the following support levels:
-
-| Version | Support |
-| ------- | ------------- |
-| <= 6.8 | _unsupported_ |
-| 6.9 | supported |
-| 7.0-4 | best effort |
-| 7.5 | supported |
-| >= 7.5 | best effort |
-| v.Next | _unsupported_ |
-
-### Support Level Definitions
-
-- _supported:_ A selenium-webdriver release will be API compatible with the
- platform API, without the use of runtime flags.
-
-- _best effort:_ Bugs will be investigated as time permits. API compatibility is
- only guaranteed where required by a _supported_ release. This effectively
- means the adoption of new JS features, such as ES2015 modules, will depend
- on what is supported in Node's LTS.
-
-- _unsupported:_ Bug submissions will be closed as will-not-fix and API
- compatibility is not guaranteed.
-
-### Projected Support Schedule
-
-If Node releases a new [LTS] each October and a new major version every 6
-months, the support window for selenium-webdriver will be roughly:
-
-| Date | LTS | Stable |
-| --------- | ---: | -----: |
-| (current) | 6.9 | 7.5 |
-| 2017-04 | 6.0 | 8.0 |
-| 2017-10 | 8.0 | 9.0 |
-| 2018-04 | 8.0 | 10.0 |
-| 2018-10 | 10.0 | 11.0 |
-
-## Issues
-
-Please report any issues using the [Selenium issue tracker][issues]. When using
-the issue tracker
-
-- __Do__ include a detailed description of the problem.
-- __Do__ include a link to a [gist](http://gist.github.com/) with any
- interesting stack traces/logs (you may also attach these directly to the bug
- report).
-- __Do__ include a [reduced test case][reduction]. Reporting "unable to find
- element on the page" is _not_ a valid report - there's nothing for us to
- look into. Expect your bug report to be closed if you do not provide enough
- information for us to investigate.
-- __Do not__ use the issue tracker to submit basic help requests. All help
- inquiries should be directed to the [user forum][users] or #selenium IRC
- channel.
-- __Do not__ post empty "I see this too" or "Any updates?" comments. These
- provide no additional information and clutter the log.
-- __Do not__ report regressions on closed bugs as they are not actively
- monitored for updates (especially bugs that are >6 months old). Please open a
- new issue and reference the original bug in your report.
-
-## License
-
-Licensed to the Software Freedom Conservancy (SFC) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The SFC licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
-
-[LTS]: https://github.com/nodejs/LTS
-[PATH]: http://en.wikipedia.org/wiki/PATH_%28variable%29
-[api]: http://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/
-[cla]: http://goo.gl/qC50R
-[chrome]: http://chromedriver.storage.googleapis.com/index.html
-[gh]: https://github.com/SeleniumHQ/selenium/
-[issues]: https://github.com/SeleniumHQ/selenium/issues
-[opera]: https://github.com/operasoftware/operachromiumdriver/releases
-[phantomjs]: http://phantomjs.org/
-[edge]: http://go.microsoft.com/fwlink/?LinkId=619687
-[geckodriver]: https://github.com/mozilla/geckodriver/releases/
-[reduction]: http://www.webkit.org/quality/reduction.html
-[release]: http://selenium-release.storage.googleapis.com/index.html
-[users]: https://groups.google.com/forum/#!forum/selenium-users
-[safaridriver]: https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_0.html#//apple_ref/doc/uid/TP40014305-CH11-DontLinkElementID_28
diff --git a/node_modules/selenium-webdriver/chrome.js b/node_modules/selenium-webdriver/chrome.js
deleted file mode 100644
index b1e8a29e4..000000000
--- a/node_modules/selenium-webdriver/chrome.js
+++ /dev/null
@@ -1,787 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Defines a {@linkplain Driver WebDriver} client for the Chrome
- * web browser. Before using this module, you must download the latest
- * [ChromeDriver release] and ensure it can be found on your system [PATH].
- *
- * There are three primary classes exported by this module:
- *
- * 1. {@linkplain ServiceBuilder}: configures the
- * {@link selenium-webdriver/remote.DriverService remote.DriverService}
- * that manages the [ChromeDriver] child process.
- *
- * 2. {@linkplain Options}: defines configuration options for each new Chrome
- * session, such as which {@linkplain Options#setProxy proxy} to use,
- * what {@linkplain Options#addExtensions extensions} to install, or
- * what {@linkplain Options#addArguments command-line switches} to use when
- * starting the browser.
- *
- * 3. {@linkplain Driver}: the WebDriver client; each new instance will control
- * a unique browser session with a clean user profile (unless otherwise
- * configured through the {@link Options} class).
- *
- * __Customizing the ChromeDriver Server__ <a id="custom-server"></a>
- *
- * By default, every Chrome session will use a single driver service, which is
- * started the first time a {@link Driver} instance is created and terminated
- * when this process exits. The default service will inherit its environment
- * from the current process and direct all output to /dev/null. You may obtain
- * a handle to this default service using
- * {@link #getDefaultService getDefaultService()} and change its configuration
- * with {@link #setDefaultService setDefaultService()}.
- *
- * You may also create a {@link Driver} with its own driver service. This is
- * useful if you need to capture the server's log output for a specific session:
- *
- * let chrome = require('selenium-webdriver/chrome');
- *
- * let service = new chrome.ServiceBuilder()
- * .loggingTo('/my/log/file.txt')
- * .enableVerboseLogging()
- * .build();
- *
- * let options = new chrome.Options();
- * // configure browser options ...
- *
- * let driver = chrome.Driver.createSession(options, service);
- *
- * Users should only instantiate the {@link Driver} class directly when they
- * need a custom driver service configuration (as shown above). For normal
- * operation, users should start Chrome using the
- * {@link selenium-webdriver.Builder}.
- *
- * __Working with Android__ <a id="android"></a>
- *
- * The [ChromeDriver][android] supports running tests on the Chrome browser as
- * well as [WebView apps][webview] starting in Android 4.4 (KitKat). In order to
- * work with Android, you must first start the adb
- *
- * adb start-server
- *
- * By default, adb will start on port 5037. You may change this port, but this
- * will require configuring a [custom server](#custom-server) that will connect
- * to adb on the {@linkplain ServiceBuilder#setAdbPort correct port}:
- *
- * let service = new chrome.ServiceBuilder()
- * .setAdbPort(1234)
- * build();
- * // etc.
- *
- * The ChromeDriver may be configured to launch Chrome on Android using
- * {@link Options#androidChrome()}:
- *
- * let driver = new Builder()
- * .forBrowser('chrome')
- * .setChromeOptions(new chrome.Options().androidChrome())
- * .build();
- *
- * Alternatively, you can configure the ChromeDriver to launch an app with a
- * Chrome-WebView by setting the {@linkplain Options#androidActivity
- * androidActivity} option:
- *
- * let driver = new Builder()
- * .forBrowser('chrome')
- * .setChromeOptions(new chrome.Options()
- * .androidPackage('com.example')
- * .androidActivity('com.example.Activity'))
- * .build();
- *
- * [Refer to the ChromeDriver site] for more information on using the
- * [ChromeDriver with Android][android].
- *
- * [ChromeDriver]: https://sites.google.com/a/chromium.org/chromedriver/
- * [ChromeDriver release]: http://chromedriver.storage.googleapis.com/index.html
- * [PATH]: http://en.wikipedia.org/wiki/PATH_%28variable%29
- * [android]: https://sites.google.com/a/chromium.org/chromedriver/getting-started/getting-started---android
- * [webview]: https://developer.chrome.com/multidevice/webview/overview
- */
-
-'use strict';
-
-const fs = require('fs'),
- util = require('util');
-
-const http = require('./http'),
- io = require('./io'),
- {Capabilities, Capability} = require('./lib/capabilities'),
- command = require('./lib/command'),
- logging = require('./lib/logging'),
- promise = require('./lib/promise'),
- Symbols = require('./lib/symbols'),
- webdriver = require('./lib/webdriver'),
- portprober = require('./net/portprober'),
- remote = require('./remote');
-
-
-/**
- * Name of the ChromeDriver executable.
- * @type {string}
- * @const
- */
-const CHROMEDRIVER_EXE =
- process.platform === 'win32' ? 'chromedriver.exe' : 'chromedriver';
-
-
-/**
- * Custom command names supported by ChromeDriver.
- * @enum {string}
- */
-const Command = {
- LAUNCH_APP: 'launchApp',
- GET_NETWORK_CONDITIONS: 'getNetworkConditions',
- SET_NETWORK_CONDITIONS: 'setNetworkConditions'
-};
-
-
-/**
- * Creates a command executor with support for ChromeDriver's custom commands.
- * @param {!Promise<string>} url The server's URL.
- * @return {!command.Executor} The new command executor.
- */
-function createExecutor(url) {
- let client = url.then(url => new http.HttpClient(url));
- let executor = new http.Executor(client);
- configureExecutor(executor);
- return executor;
-}
-
-
-/**
- * Configures the given executor with Chrome-specific commands.
- * @param {!http.Executor} executor the executor to configure.
- */
-function configureExecutor(executor) {
- executor.defineCommand(
- Command.LAUNCH_APP,
- 'POST',
- '/session/:sessionId/chromium/launch_app');
- executor.defineCommand(
- Command.GET_NETWORK_CONDITIONS,
- 'GET',
- '/session/:sessionId/chromium/network_conditions');
- executor.defineCommand(
- Command.SET_NETWORK_CONDITIONS,
- 'POST',
- '/session/:sessionId/chromium/network_conditions');
-}
-
-
-/**
- * Creates {@link selenium-webdriver/remote.DriverService} instances that manage
- * a [ChromeDriver](https://sites.google.com/a/chromium.org/chromedriver/)
- * server in a child process.
- */
-class ServiceBuilder extends remote.DriverService.Builder {
- /**
- * @param {string=} opt_exe Path to the server executable to use. If omitted,
- * the builder will attempt to locate the chromedriver on the current
- * PATH.
- * @throws {Error} If provided executable does not exist, or the chromedriver
- * cannot be found on the PATH.
- */
- constructor(opt_exe) {
- let exe = opt_exe || io.findInPath(CHROMEDRIVER_EXE, true);
- if (!exe) {
- throw Error(
- 'The ChromeDriver could not be found on the current PATH. Please ' +
- 'download the latest version of the ChromeDriver from ' +
- 'http://chromedriver.storage.googleapis.com/index.html and ensure ' +
- 'it can be found on your PATH.');
- }
-
- super(exe);
- this.setLoopback(true); // Required
- }
-
- /**
- * Sets which port adb is listening to. _The ChromeDriver will connect to adb
- * if an {@linkplain Options#androidPackage Android session} is requested, but
- * adb **must** be started beforehand._
- *
- * @param {number} port Which port adb is running on.
- * @return {!ServiceBuilder} A self reference.
- */
- setAdbPort(port) {
- return this.addArguments('--adb-port=' + port);
- }
-
- /**
- * Sets the path of the log file the driver should log to. If a log file is
- * not specified, the driver will log to stderr.
- * @param {string} path Path of the log file to use.
- * @return {!ServiceBuilder} A self reference.
- */
- loggingTo(path) {
- return this.addArguments('--log-path=' + path);
- }
-
- /**
- * Enables verbose logging.
- * @return {!ServiceBuilder} A self reference.
- */
- enableVerboseLogging() {
- return this.addArguments('--verbose');
- }
-
- /**
- * Sets the number of threads the driver should use to manage HTTP requests.
- * By default, the driver will use 4 threads.
- * @param {number} n The number of threads to use.
- * @return {!ServiceBuilder} A self reference.
- */
- setNumHttpThreads(n) {
- return this.addArguments('--http-threads=' + n);
- }
-
- /**
- * @override
- */
- setPath(path) {
- super.setPath(path);
- return this.addArguments('--url-base=' + path);
- }
-}
-
-
-
-/** @type {remote.DriverService} */
-let defaultService = null;
-
-
-/**
- * Sets the default service to use for new ChromeDriver instances.
- * @param {!remote.DriverService} service The service to use.
- * @throws {Error} If the default service is currently running.
- */
-function setDefaultService(service) {
- if (defaultService && defaultService.isRunning()) {
- throw Error(
- 'The previously configured ChromeDriver service is still running. ' +
- 'You must shut it down before you may adjust its configuration.');
- }
- defaultService = service;
-}
-
-
-/**
- * Returns the default ChromeDriver service. If such a service has not been
- * configured, one will be constructed using the default configuration for
- * a ChromeDriver executable found on the system PATH.
- * @return {!remote.DriverService} The default ChromeDriver service.
- */
-function getDefaultService() {
- if (!defaultService) {
- defaultService = new ServiceBuilder().build();
- }
- return defaultService;
-}
-
-
-/**
- * @type {string}
- * @const
- */
-let OPTIONS_CAPABILITY_KEY = 'chromeOptions';
-
-
-/**
- * Class for managing ChromeDriver specific options.
- */
-class Options {
- constructor() {
- /** @private {!Object} */
- this.options_ = {};
-
- /** @private {!Array<(string|!Buffer)>} */
- this.extensions_ = [];
-
- /** @private {?logging.Preferences} */
- this.logPrefs_ = null;
-
- /** @private {?./lib/capabilities.ProxyConfig} */
- this.proxy_ = null;
- }
-
- /**
- * Extracts the ChromeDriver specific options from the given capabilities
- * object.
- * @param {!Capabilities} caps The capabilities object.
- * @return {!Options} The ChromeDriver options.
- */
- static fromCapabilities(caps) {
- let options = new Options();
-
- let o = caps.get(OPTIONS_CAPABILITY_KEY);
- if (o instanceof Options) {
- options = o;
- } else if (o) {
- options.
- addArguments(o.args || []).
- addExtensions(o.extensions || []).
- detachDriver(o.detach).
- excludeSwitches(o.excludeSwitches || []).
- setChromeBinaryPath(o.binary).
- setChromeLogFile(o.logPath).
- setChromeMinidumpPath(o.minidumpPath).
- setLocalState(o.localState).
- setMobileEmulation(o.mobileEmulation).
- setUserPreferences(o.prefs).
- setPerfLoggingPrefs(o.perfLoggingPrefs);
- }
-
- if (caps.has(Capability.PROXY)) {
- options.setProxy(caps.get(Capability.PROXY));
- }
-
- if (caps.has(Capability.LOGGING_PREFS)) {
- options.setLoggingPrefs(
- caps.get(Capability.LOGGING_PREFS));
- }
-
- return options;
- }
-
- /**
- * Add additional command line arguments to use when launching the Chrome
- * browser. Each argument may be specified with or without the "--" prefix
- * (e.g. "--foo" and "foo"). Arguments with an associated value should be
- * delimited by an "=": "foo=bar".
- * @param {...(string|!Array<string>)} var_args The arguments to add.
- * @return {!Options} A self reference.
- */
- addArguments(var_args) {
- let args = this.options_.args || [];
- args = args.concat.apply(args, arguments);
- if (args.length) {
- this.options_.args = args;
- }
- return this;
- }
-
- /**
- * List of Chrome command line switches to exclude that ChromeDriver by default
- * passes when starting Chrome. Do not prefix switches with "--".
- *
- * @param {...(string|!Array<string>)} var_args The switches to exclude.
- * @return {!Options} A self reference.
- */
- excludeSwitches(var_args) {
- let switches = this.options_.excludeSwitches || [];
- switches = switches.concat.apply(switches, arguments);
- if (switches.length) {
- this.options_.excludeSwitches = switches;
- }
- return this;
- }
-
- /**
- * Add additional extensions to install when launching Chrome. Each extension
- * should be specified as the path to the packed CRX file, or a Buffer for an
- * extension.
- * @param {...(string|!Buffer|!Array<(string|!Buffer)>)} var_args The
- * extensions to add.
- * @return {!Options} A self reference.
- */
- addExtensions(var_args) {
- this.extensions_ =
- this.extensions_.concat.apply(this.extensions_, arguments);
- return this;
- }
-
- /**
- * Sets the path to the Chrome binary to use. On Mac OS X, this path should
- * reference the actual Chrome executable, not just the application binary
- * (e.g. "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome").
- *
- * The binary path be absolute or relative to the chromedriver server
- * executable, but it must exist on the machine that will launch Chrome.
- *
- * @param {string} path The path to the Chrome binary to use.
- * @return {!Options} A self reference.
- */
- setChromeBinaryPath(path) {
- this.options_.binary = path;
- return this;
- }
-
- /**
- * Sets whether to leave the started Chrome browser running if the controlling
- * ChromeDriver service is killed before {@link webdriver.WebDriver#quit()} is
- * called.
- * @param {boolean} detach Whether to leave the browser running if the
- * chromedriver service is killed before the session.
- * @return {!Options} A self reference.
- */
- detachDriver(detach) {
- this.options_.detach = detach;
- return this;
- }
-
- /**
- * Sets the user preferences for Chrome's user profile. See the "Preferences"
- * file in Chrome's user data directory for examples.
- * @param {!Object} prefs Dictionary of user preferences to use.
- * @return {!Options} A self reference.
- */
- setUserPreferences(prefs) {
- this.options_.prefs = prefs;
- return this;
- }
-
- /**
- * Sets the logging preferences for the new session.
- * @param {!logging.Preferences} prefs The logging preferences.
- * @return {!Options} A self reference.
- */
- setLoggingPrefs(prefs) {
- this.logPrefs_ = prefs;
- return this;
- }
-
- /**
- * Sets the performance logging preferences. Options include:
- *
- * - `enableNetwork`: Whether or not to collect events from Network domain.
- * - `enablePage`: Whether or not to collect events from Page domain.
- * - `enableTimeline`: Whether or not to collect events from Timeline domain.
- * Note: when tracing is enabled, Timeline domain is implicitly disabled,
- * unless `enableTimeline` is explicitly set to true.
- * - `tracingCategories`: A comma-separated string of Chrome tracing
- * categories for which trace events should be collected. An unspecified
- * or empty string disables tracing.
- * - `bufferUsageReportingInterval`: The requested number of milliseconds
- * between DevTools trace buffer usage events. For example, if 1000, then
- * once per second, DevTools will report how full the trace buffer is. If
- * a report indicates the buffer usage is 100%, a warning will be issued.
- *
- * @param {{enableNetwork: boolean,
- * enablePage: boolean,
- * enableTimeline: boolean,
- * tracingCategories: string,
- * bufferUsageReportingInterval: number}} prefs The performance
- * logging preferences.
- * @return {!Options} A self reference.
- */
- setPerfLoggingPrefs(prefs) {
- this.options_.perfLoggingPrefs = prefs;
- return this;
- }
-
- /**
- * Sets preferences for the "Local State" file in Chrome's user data
- * directory.
- * @param {!Object} state Dictionary of local state preferences.
- * @return {!Options} A self reference.
- */
- setLocalState(state) {
- this.options_.localState = state;
- return this;
- }
-
- /**
- * Sets the name of the activity hosting a Chrome-based Android WebView. This
- * option must be set to connect to an [Android WebView](
- * https://sites.google.com/a/chromium.org/chromedriver/getting-started/getting-started---android)
- *
- * @param {string} name The activity name.
- * @return {!Options} A self reference.
- */
- androidActivity(name) {
- this.options_.androidActivity = name;
- return this;
- }
-
- /**
- * Sets the device serial number to connect to via ADB. If not specified, the
- * ChromeDriver will select an unused device at random. An error will be
- * returned if all devices already have active sessions.
- *
- * @param {string} serial The device serial number to connect to.
- * @return {!Options} A self reference.
- */
- androidDeviceSerial(serial) {
- this.options_.androidDeviceSerial = serial;
- return this;
- }
-
- /**
- * Configures the ChromeDriver to launch Chrome on Android via adb. This
- * function is shorthand for
- * {@link #androidPackage options.androidPackage('com.android.chrome')}.
- * @return {!Options} A self reference.
- */
- androidChrome() {
- return this.androidPackage('com.android.chrome');
- }
-
- /**
- * Sets the package name of the Chrome or WebView app.
- *
- * @param {?string} pkg The package to connect to, or `null` to disable Android
- * and switch back to using desktop Chrome.
- * @return {!Options} A self reference.
- */
- androidPackage(pkg) {
- this.options_.androidPackage = pkg;
- return this;
- }
-
- /**
- * Sets the process name of the Activity hosting the WebView (as given by
- * `ps`). If not specified, the process name is assumed to be the same as
- * {@link #androidPackage}.
- *
- * @param {string} processName The main activity name.
- * @return {!Options} A self reference.
- */
- androidProcess(processName) {
- this.options_.androidProcess = processName;
- return this;
- }
-
- /**
- * Sets whether to connect to an already-running instead of the specified
- * {@linkplain #androidProcess app} instead of launching the app with a clean
- * data directory.
- *
- * @param {boolean} useRunning Whether to connect to a running instance.
- * @return {!Options} A self reference.
- */
- androidUseRunningApp(useRunning) {
- this.options_.androidUseRunningApp = useRunning;
- return this;
- }
-
- /**
- * Sets the path to Chrome's log file. This path should exist on the machine
- * that will launch Chrome.
- * @param {string} path Path to the log file to use.
- * @return {!Options} A self reference.
- */
- setChromeLogFile(path) {
- this.options_.logPath = path;
- return this;
- }
-
- /**
- * Sets the directory to store Chrome minidumps in. This option is only
- * supported when ChromeDriver is running on Linux.
- * @param {string} path The directory path.
- * @return {!Options} A self reference.
- */
- setChromeMinidumpPath(path) {
- this.options_.minidumpPath = path;
- return this;
- }
-
- /**
- * Configures Chrome to emulate a mobile device. For more information, refer
- * to the ChromeDriver project page on [mobile emulation][em]. Configuration
- * options include:
- *
- * - `deviceName`: The name of a pre-configured [emulated device][devem]
- * - `width`: screen width, in pixels
- * - `height`: screen height, in pixels
- * - `pixelRatio`: screen pixel ratio
- *
- * __Example 1: Using a Pre-configured Device__
- *
- * let options = new chrome.Options().setMobileEmulation(
- * {deviceName: 'Google Nexus 5'});
- *
- * let driver = chrome.Driver.createSession(options);
- *
- * __Example 2: Using Custom Screen Configuration__
- *
- * let options = new chrome.Options().setMobileEmulation({
- * width: 360,
- * height: 640,
- * pixelRatio: 3.0
- * });
- *
- * let driver = chrome.Driver.createSession(options);
- *
- *
- * [em]: https://sites.google.com/a/chromium.org/chromedriver/mobile-emulation
- * [devem]: https://developer.chrome.com/devtools/docs/device-mode
- *
- * @param {?({deviceName: string}|
- * {width: number, height: number, pixelRatio: number})} config The
- * mobile emulation configuration, or `null` to disable emulation.
- * @return {!Options} A self reference.
- */
- setMobileEmulation(config) {
- this.options_.mobileEmulation = config;
- return this;
- }
-
- /**
- * Sets the proxy settings for the new session.
- * @param {./lib/capabilities.ProxyConfig} proxy The proxy configuration to
- * use.
- * @return {!Options} A self reference.
- */
- setProxy(proxy) {
- this.proxy_ = proxy;
- return this;
- }
-
- /**
- * Converts this options instance to a {@link Capabilities} object.
- * @param {Capabilities=} opt_capabilities The capabilities to merge
- * these options into, if any.
- * @return {!Capabilities} The capabilities.
- */
- toCapabilities(opt_capabilities) {
- let caps = opt_capabilities || Capabilities.chrome();
- caps.
- set(Capability.PROXY, this.proxy_).
- set(Capability.LOGGING_PREFS, this.logPrefs_).
- set(OPTIONS_CAPABILITY_KEY, this);
- return caps;
- }
-
- /**
- * Converts this instance to its JSON wire protocol representation. Note this
- * function is an implementation not intended for general use.
- * @return {!Object} The JSON wire protocol representation of this instance.
- */
- [Symbols.serialize]() {
- let json = {};
- for (let key in this.options_) {
- if (this.options_[key] != null) {
- json[key] = this.options_[key];
- }
- }
- if (this.extensions_.length) {
- json.extensions = this.extensions_.map(function(extension) {
- if (Buffer.isBuffer(extension)) {
- return extension.toString('base64');
- }
- return io.read(/** @type {string} */(extension))
- .then(buffer => buffer.toString('base64'));
- });
- }
- return json;
- }
-}
-
-
-/**
- * Creates a new WebDriver client for Chrome.
- */
-class Driver extends webdriver.WebDriver {
-
- /**
- * Creates a new session with the ChromeDriver.
- *
- * @param {(Capabilities|Options)=} opt_config The configuration options.
- * @param {(remote.DriverService|http.Executor)=} opt_serviceExecutor Either
- * a DriverService to use for the remote end, or a preconfigured executor
- * for an externally managed endpoint. If neither is provided, the
- * {@linkplain ##getDefaultService default service} will be used by
- * default.
- * @param {promise.ControlFlow=} opt_flow The control flow to use, or `null`
- * to use the currently active flow.
- * @return {!Driver} A new driver instance.
- */
- static createSession(opt_config, opt_serviceExecutor, opt_flow) {
- let executor;
- if (opt_serviceExecutor instanceof http.Executor) {
- executor = opt_serviceExecutor;
- configureExecutor(executor);
- } else {
- let service = opt_serviceExecutor || getDefaultService();
- executor = createExecutor(service.start());
- }
-
- let caps =
- opt_config instanceof Options ? opt_config.toCapabilities() :
- (opt_config || Capabilities.chrome());
-
- return /** @type {!Driver} */(
- webdriver.WebDriver.createSession(executor, caps, opt_flow, this));
- }
-
- /**
- * This function is a no-op as file detectors are not supported by this
- * implementation.
- * @override
- */
- setFileDetector() {}
-
- /**
- * Schedules a command to launch Chrome App with given ID.
- * @param {string} id ID of the App to launch.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when app is launched.
- */
- launchApp(id) {
- return this.schedule(
- new command.Command(Command.LAUNCH_APP).setParameter('id', id),
- 'Driver.launchApp()');
- }
-
- /**
- * Schedules a command to get Chrome network emulation settings.
- * @return {!promise.Thenable<T>} A promise that will be resolved
- * when network emulation settings are retrievied.
- */
- getNetworkConditions() {
- return this.schedule(
- new command.Command(Command.GET_NETWORK_CONDITIONS),
- 'Driver.getNetworkConditions()');
- }
-
- /**
- * Schedules a command to set Chrome network emulation settings.
- *
- * __Sample Usage:__
- *
- * driver.setNetworkConditions({
- * offline: false,
- * latency: 5, // Additional latency (ms).
- * download_throughput: 500 * 1024, // Maximal aggregated download throughput.
- * upload_throughput: 500 * 1024 // Maximal aggregated upload throughput.
- * });
- *
- * @param {Object} spec Defines the network conditions to set
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when network emulation settings are set.
- */
- setNetworkConditions(spec) {
- if (!spec || typeof spec !== 'object') {
- throw TypeError('setNetworkConditions called with non-network-conditions parameter');
- }
-
- return this.schedule(
- new command.Command(Command.SET_NETWORK_CONDITIONS).setParameter('network_conditions', spec),
- 'Driver.setNetworkConditions(' + JSON.stringify(spec) + ')');
- }
-}
-
-
-// PUBLIC API
-
-
-exports.Driver = Driver;
-exports.Options = Options;
-exports.ServiceBuilder = ServiceBuilder;
-exports.getDefaultService = getDefaultService;
-exports.setDefaultService = setDefaultService;
diff --git a/node_modules/selenium-webdriver/edge.js b/node_modules/selenium-webdriver/edge.js
deleted file mode 100644
index 9280cabd9..000000000
--- a/node_modules/selenium-webdriver/edge.js
+++ /dev/null
@@ -1,301 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Defines a {@linkplain Driver WebDriver} client for
- * Microsoft's Edge web browser. Before using this module,
- * you must download and install the latest
- * [MicrosoftEdgeDriver](http://go.microsoft.com/fwlink/?LinkId=619687) server.
- * Ensure that the MicrosoftEdgeDriver is on your
- * [PATH](http://en.wikipedia.org/wiki/PATH_%28variable%29).
- *
- * There are three primary classes exported by this module:
- *
- * 1. {@linkplain ServiceBuilder}: configures the
- * {@link ./remote.DriverService remote.DriverService}
- * that manages the [MicrosoftEdgeDriver] child process.
- *
- * 2. {@linkplain Options}: defines configuration options for each new
- * MicrosoftEdgeDriver session, such as which
- * {@linkplain Options#setProxy proxy} to use when starting the browser.
- *
- * 3. {@linkplain Driver}: the WebDriver client; each new instance will control
- * a unique browser session.
- *
- * __Customizing the MicrosoftEdgeDriver Server__ <a id="custom-server"></a>
- *
- * By default, every MicrosoftEdge session will use a single driver service,
- * which is started the first time a {@link Driver} instance is created and
- * terminated when this process exits. The default service will inherit its
- * environment from the current process.
- * You may obtain a handle to this default service using
- * {@link #getDefaultService getDefaultService()} and change its configuration
- * with {@link #setDefaultService setDefaultService()}.
- *
- * You may also create a {@link Driver} with its own driver service. This is
- * useful if you need to capture the server's log output for a specific session:
- *
- * var edge = require('selenium-webdriver/edge');
- *
- * var service = new edge.ServiceBuilder()
- * .setPort(55555)
- * .build();
- *
- * var options = new edge.Options();
- * // configure browser options ...
- *
- * var driver = edge.Driver.createSession(options, service);
- *
- * Users should only instantiate the {@link Driver} class directly when they
- * need a custom driver service configuration (as shown above). For normal
- * operation, users should start MicrosoftEdge using the
- * {@link ./builder.Builder selenium-webdriver.Builder}.
- *
- * [MicrosoftEdgeDriver]: https://msdn.microsoft.com/en-us/library/mt188085(v=vs.85).aspx
- */
-
-'use strict';
-
-const fs = require('fs'),
- util = require('util');
-
-const http = require('./http'),
- io = require('./io'),
- capabilities = require('./lib/capabilities'),
- promise = require('./lib/promise'),
- Symbols = require('./lib/symbols'),
- webdriver = require('./lib/webdriver'),
- portprober = require('./net/portprober'),
- remote = require('./remote');
-
-const EDGEDRIVER_EXE = 'MicrosoftWebDriver.exe';
-
-
-/**
- * Option keys.
- * @enum {string}
- */
-const CAPABILITY_KEY = {
- PAGE_LOAD_STRATEGY: 'pageLoadStrategy'
-};
-
-
-/**
- * Class for managing MicrosoftEdgeDriver specific options.
- */
-class Options {
- constructor() {
- /** @private {!Object} */
- this.options_ = {};
-
- /** @private {?capabilities.ProxyConfig} */
- this.proxy_ = null;
- }
-
- /**
- * Extracts the MicrosoftEdgeDriver specific options from the given
- * capabilities object.
- * @param {!capabilities.Capabilities} caps The capabilities object.
- * @return {!Options} The MicrosoftEdgeDriver options.
- */
- static fromCapabilities(caps) {
- var options = new Options();
- var map = options.options_;
-
- Object.keys(CAPABILITY_KEY).forEach(function(key) {
- key = CAPABILITY_KEY[key];
- if (caps.has(key)) {
- map[key] = caps.get(key);
- }
- });
-
- if (caps.has(capabilities.Capability.PROXY)) {
- options.setProxy(caps.get(capabilities.Capability.PROXY));
- }
-
- return options;
- }
-
- /**
- * Sets the proxy settings for the new session.
- * @param {capabilities.ProxyConfig} proxy The proxy configuration to use.
- * @return {!Options} A self reference.
- */
- setProxy(proxy) {
- this.proxy_ = proxy;
- return this;
- }
-
- /**
- * Sets the page load strategy for Edge.
- * Supported values are "normal", "eager", and "none";
- *
- * @param {string} pageLoadStrategy The page load strategy to use.
- * @return {!Options} A self reference.
- */
- setPageLoadStrategy(pageLoadStrategy) {
- this.options_[CAPABILITY_KEY.PAGE_LOAD_STRATEGY] =
- pageLoadStrategy.toLowerCase();
- return this;
- }
-
- /**
- * Converts this options instance to a {@link capabilities.Capabilities}
- * object.
- * @param {capabilities.Capabilities=} opt_capabilities The capabilities to
- * merge these options into, if any.
- * @return {!capabilities.Capabilities} The capabilities.
- */
- toCapabilities(opt_capabilities) {
- var caps = opt_capabilities || capabilities.Capabilities.edge();
- if (this.proxy_) {
- caps.set(capabilities.Capability.PROXY, this.proxy_);
- }
- Object.keys(this.options_).forEach(function(key) {
- caps.set(key, this.options_[key]);
- }, this);
- return caps;
- }
-
- /**
- * Converts this instance to its JSON wire protocol representation. Note this
- * function is an implementation not intended for general use.
- * @return {{pageLoadStrategy: (string|undefined)}}
- * The JSON wire protocol representation of this instance.
- */
- [Symbols.serialize]() {
- var json = {};
- for (var key in this.options_) {
- if (this.options_[key] != null) {
- json[key] = this.options_[key];
- }
- }
- return json;
- }
-}
-
-
-/**
- * Creates {@link remote.DriverService} instances that manage a
- * MicrosoftEdgeDriver server in a child process.
- */
-class ServiceBuilder extends remote.DriverService.Builder {
- /**
- * @param {string=} opt_exe Path to the server executable to use. If omitted,
- * the builder will attempt to locate the MicrosoftEdgeDriver on the current
- * PATH.
- * @throws {Error} If provided executable does not exist, or the
- * MicrosoftEdgeDriver cannot be found on the PATH.
- */
- constructor(opt_exe) {
- let exe = opt_exe || io.findInPath(EDGEDRIVER_EXE, true);
- if (!exe) {
- throw Error(
- 'The ' + EDGEDRIVER_EXE + ' could not be found on the current PATH. ' +
- 'Please download the latest version of the MicrosoftEdgeDriver from ' +
- 'https://www.microsoft.com/en-us/download/details.aspx?id=48212 and ' +
- 'ensure it can be found on your PATH.');
- }
-
- super(exe);
-
- // Binding to the loopback address will fail if not running with
- // administrator privileges. Since we cannot test for that in script
- // (or can we?), force the DriverService to use "localhost".
- this.setHostname('localhost');
- }
-}
-
-
-/** @type {remote.DriverService} */
-var defaultService = null;
-
-
-/**
- * Sets the default service to use for new MicrosoftEdgeDriver instances.
- * @param {!remote.DriverService} service The service to use.
- * @throws {Error} If the default service is currently running.
- */
-function setDefaultService(service) {
- if (defaultService && defaultService.isRunning()) {
- throw Error(
- 'The previously configured EdgeDriver service is still running. ' +
- 'You must shut it down before you may adjust its configuration.');
- }
- defaultService = service;
-}
-
-
-/**
- * Returns the default MicrosoftEdgeDriver service. If such a service has
- * not been configured, one will be constructed using the default configuration
- * for an MicrosoftEdgeDriver executable found on the system PATH.
- * @return {!remote.DriverService} The default MicrosoftEdgeDriver service.
- */
-function getDefaultService() {
- if (!defaultService) {
- defaultService = new ServiceBuilder().build();
- }
- return defaultService;
-}
-
-
-/**
- * Creates a new WebDriver client for Microsoft's Edge.
- */
-class Driver extends webdriver.WebDriver {
- /**
- * Creates a new browser session for Microsoft's Edge browser.
- *
- * @param {(capabilities.Capabilities|Options)=} opt_config The configuration
- * options.
- * @param {remote.DriverService=} opt_service The session to use; will use
- * the {@linkplain #getDefaultService default service} by default.
- * @param {promise.ControlFlow=} opt_flow The control flow to use, or
- * {@code null} to use the currently active flow.
- * @return {!Driver} A new driver instance.
- */
- static createSession(opt_config, opt_service, opt_flow) {
- var service = opt_service || getDefaultService();
- var client = service.start().then(url => new http.HttpClient(url));
- var executor = new http.Executor(client);
-
- var caps =
- opt_config instanceof Options ? opt_config.toCapabilities() :
- (opt_config || capabilities.Capabilities.edge());
-
- return /** @type {!Driver} */(webdriver.WebDriver.createSession(
- executor, caps, opt_flow, this, () => service.kill()));
- }
-
- /**
- * This function is a no-op as file detectors are not supported by this
- * implementation.
- * @override
- */
- setFileDetector() {}
-}
-
-
-// PUBLIC API
-
-
-exports.Driver = Driver;
-exports.Options = Options;
-exports.ServiceBuilder = ServiceBuilder;
-exports.getDefaultService = getDefaultService;
-exports.setDefaultService = setDefaultService;
diff --git a/node_modules/selenium-webdriver/example/async_await_test.js b/node_modules/selenium-webdriver/example/async_await_test.js
deleted file mode 100644
index dd625db34..000000000
--- a/node_modules/selenium-webdriver/example/async_await_test.js
+++ /dev/null
@@ -1,68 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Example Mocha tests using async/await.
- *
- * Usage:
- *
- * mocha -t 20000 --harmony_async_await \
- * selenium-webdriver/example/async_await_test.js
- *
- * You can change which browser is started with the SELENIUM_BROWSER environment
- * variable:
- *
- * SELENIUM_BROWSER=chrome \
- * mocha -t 20000 --harmony_async_await \
- * selenium-webdriver/example/async_await_test.js
- */
-
-'use strict';
-
-const assert = require('assert');
-const {Builder, By, promise, until} = require('..');
-
-// async/await do not work well when the promise manager is enabled.
-// See https://github.com/SeleniumHQ/selenium/issues/3037
-//
-// 3037 does not impact these specific examples, but it is still recommended
-// that you disable the promise manager when using async/await.
-promise.USE_PROMISE_MANAGER = false;
-
-describe('Google Search', function() {
- let driver;
-
- beforeEach(async function() {
- driver = await new Builder().forBrowser('firefox').build();
- });
-
- afterEach(async function() {
- await driver.quit();
- });
-
- it('example', async function() {
- await driver.get('https://www.google.com/ncr');
-
- await driver.findElement(By.name('q')).sendKeys('webdriver');
- await driver.findElement(By.name('btnG')).click();
-
- await driver.wait(until.titleIs('webdriver - Google Search'), 1000);
-
- let url = await driver.getCurrentUrl();
- assert.equal(url, 'https://www.google.com/#q=webdriver');
- });
-});
diff --git a/node_modules/selenium-webdriver/example/chrome_android.js b/node_modules/selenium-webdriver/example/chrome_android.js
deleted file mode 100644
index bc0701cf9..000000000
--- a/node_modules/selenium-webdriver/example/chrome_android.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview A basic example of working with Chrome on Android. Before
- * running this example, you must start adb and connect a device (or start an
- * AVD).
- */
-
-'use strict';
-
-const {Builder, By, promise, until} = require('..');
-const {Options} = require('../chrome');
-
-promise.consume(function* () {
- let driver;
- try {
- driver = yield new Builder()
- .forBrowser('chrome')
- .setChromeOptions(new Options().androidChrome())
- .build();
- yield driver.get('http://www.google.com/ncr');
- yield driver.findElement(By.name('q')).sendKeys('webdriver');
- yield driver.findElement(By.name('btnG')).click();
- yield driver.wait(until.titleIs('webdriver - Google Search'), 1000);
- } finally {
- yield driver && driver.quit();
- }
-}).then(_ => console.log('SUCCESS'), err => console.error('ERROR: ' + err));
diff --git a/node_modules/selenium-webdriver/example/chrome_mobile_emulation.js b/node_modules/selenium-webdriver/example/chrome_mobile_emulation.js
deleted file mode 100644
index 790be2bcf..000000000
--- a/node_modules/selenium-webdriver/example/chrome_mobile_emulation.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview This is an example of emulating a mobile device using the
- * ChromeDriver.
- */
-
-'use strict';
-
-const {Builder, By, promise, until} = require('..');
-const {Options} = require('../chrome');
-
-promise.consume(function* () {
- let driver;
- try {
- driver = yield new Builder()
- .forBrowser('chrome')
- .setChromeOptions(
- new Options().setMobileEmulation({deviceName: 'Google Nexus 5'}))
- .build();
- yield driver.get('http://www.google.com/ncr');
- yield driver.findElement(By.name('q')).sendKeys('webdriver');
- yield driver.findElement(By.name('btnG')).click();
- yield driver.wait(until.titleIs('webdriver - Google Search'), 1000);
- } finally {
- yield driver && driver.quit();
- }
-}).then(_ => console.log('SUCCESS'), err => console.error('ERROR: ' + err));
diff --git a/node_modules/selenium-webdriver/example/firefox_channels.js b/node_modules/selenium-webdriver/example/firefox_channels.js
deleted file mode 100644
index b0a30f545..000000000
--- a/node_modules/selenium-webdriver/example/firefox_channels.js
+++ /dev/null
@@ -1,73 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview This is an example of working with the different Firefox
- * release channels. Before running this example, you will need to have
- * installed Firefox's release, nightly, and developer editions:
- *
- * - https://www.mozilla.org/en-US/firefox/channel/desktop/#aurora
- * - https://www.mozilla.org/en-US/firefox/channel/desktop/#nightly
- */
-
-
-'use strict';
-
-const {Builder, By, promise, until} = require('..');
-const {Channel, Options} = require('../firefox');
-
-let i = 0;
-function resposition(driver) {
- return driver.manage().window().setSize(600, 400)
- .then(_ => driver.manage().window().setPosition(300 * (i++), 0));
-}
-
-function doSearch(driver) {
- // Start on the base about page.
- return driver.get('about:')
- // Reposition so users can see the three windows.
- .then(_ => resposition(driver))
- // Pause so users can see the magic.
- .then(_ => promise.delayed(750))
- // Now do the rest.
- .then(_ => driver.get('http://www.google.com/ncr'))
- .then(_ => driver.findElement(By.name('q')).sendKeys('webdriver'))
- .then(_ => driver.findElement(By.name('btnG')).click())
- .then(_ => driver.wait(until.titleIs('webdriver - Google Search'), 1000))
- .then(_ => driver.quit());
-}
-
-function createDriver(channel) {
- let options = new Options().setBinary(channel);
- return new Builder().forBrowser('firefox').setFirefoxOptions(options).build();
-}
-
-// NOTE: disabling the promise manager so searches all run concurrently.
-// For more on the promise manager and its pending deprecation, see
-// https://github.com/SeleniumHQ/selenium/issues/2969
-promise.USE_PROMISE_MANAGER = false;
-
-Promise.all([
- doSearch(createDriver(Channel.RELEASE)),
- doSearch(createDriver(Channel.AURORA)), // Developer Edition.
- doSearch(createDriver(Channel.NIGHTLY)),
-]).then(_ => {
- console.log('Success!');
-}, err => {
- console.error('An error occured! ' + err);
- setTimeout(() => {throw err}, 0);
-});
diff --git a/node_modules/selenium-webdriver/example/google_search.js b/node_modules/selenium-webdriver/example/google_search.js
deleted file mode 100644
index b9b821328..000000000
--- a/node_modules/selenium-webdriver/example/google_search.js
+++ /dev/null
@@ -1,50 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview An example WebDriver script.
- *
- * Before running this script, ensure that Mozilla's geckodriver is present on
- * your system PATH: <https://github.com/mozilla/geckodriver/releases>
- *
- * Usage:
- * // Default behavior
- * node selenium-webdriver/example/google_search.js
- *
- * // Target Chrome locally; the chromedriver must be on your PATH
- * SELENIUM_BROWSER=chrome node selenium-webdriver/example/google_search.js
- *
- * // Use a local copy of the standalone Selenium server
- * SELENIUM_SERVER_JAR=/path/to/selenium-server-standalone.jar \
- * node selenium-webdriver/example/google_search.js
- *
- * // Target a remote Selenium server
- * SELENIUM_REMOTE_URL=http://www.example.com:4444/wd/hub \
- * node selenium-webdriver/example/google_search.js
- */
-
-const {Builder, By, until} = require('..');
-
-var driver = new Builder()
- .forBrowser('firefox')
- .build();
-
-driver.get('http://www.google.com/ncr')
- .then(_ => driver.findElement(By.name('q')).sendKeys('webdriver'))
- .then(_ => driver.findElement(By.name('btnG')).click())
- .then(_ => driver.wait(until.titleIs('webdriver - Google Search'), 1000))
- .then(_ => driver.quit());
diff --git a/node_modules/selenium-webdriver/example/google_search_generator.js b/node_modules/selenium-webdriver/example/google_search_generator.js
deleted file mode 100644
index 25df93ab9..000000000
--- a/node_modules/selenium-webdriver/example/google_search_generator.js
+++ /dev/null
@@ -1,50 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview An example WebDriver script using generator functions.
- *
- * Before running this script, ensure that Mozilla's geckodriver is present on
- * your system PATH: <https://github.com/mozilla/geckodriver/releases>
- *
- * Usage:
- *
- * node selenium-webdriver/example/google_search_generator.js
- */
-
-'use strict';
-
-const {Builder, By, promise, until} = require('..');
-
-promise.consume(function* () {
- let driver;
- try {
- driver = yield new Builder().forBrowser('firefox').build();
-
- yield driver.get('http://www.google.com/ncr');
-
- let q = yield driver.findElement(By.name('q'));
- yield q.sendKeys('webdriver');
-
- let btnG = yield driver.findElement(By.name('btnG'));
- yield btnG.click();
-
- yield driver.wait(until.titleIs('webdriver - Google Search'), 1000);
- } finally {
- yield driver && driver.quit();
- }
-}).then(_ => console.log('SUCCESS'), err => console.error('ERROR: ' + err));
diff --git a/node_modules/selenium-webdriver/example/google_search_test.js b/node_modules/selenium-webdriver/example/google_search_test.js
deleted file mode 100644
index 0ca2f4370..000000000
--- a/node_modules/selenium-webdriver/example/google_search_test.js
+++ /dev/null
@@ -1,61 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview An example test that may be run using Mocha.
- *
- * Usage:
- *
- * mocha -t 10000 selenium-webdriver/example/google_search_test.js
- *
- * You can change which browser is started with the SELENIUM_BROWSER environment
- * variable:
- *
- * SELENIUM_BROWSER=chrome \
- * mocha -t 10000 selenium-webdriver/example/google_search_test.js
- */
-
-const {Builder, By, until} = require('..');
-const test = require('../testing');
-
-test.describe('Google Search', function() {
- let driver;
-
- test.before(function *() {
- driver = yield new Builder().forBrowser('firefox').build();
- });
-
- // You can write tests either using traditional promises.
- it('works with promises', function() {
- return driver.get('http://www.google.com/ncr')
- .then(_ => driver.findElement(By.name('q')).sendKeys('webdriver'))
- .then(_ => driver.findElement(By.name('btnG')).click())
- .then(_ => driver.wait(until.titleIs('webdriver - Google Search'), 1000));
- });
-
- // Or you can define the test as a generator function. The test will wait for
- // any yielded promises to resolve before invoking the next step in the
- // generator.
- test.it('works with generators', function*() {
- yield driver.get('http://www.google.com/ncr');
- yield driver.findElement(By.name('q')).sendKeys('webdriver');
- yield driver.findElement(By.name('btnG')).click();
- yield driver.wait(until.titleIs('webdriver - Google Search'), 1000);
- });
-
- test.after(() => driver.quit());
-});
diff --git a/node_modules/selenium-webdriver/example/logging.js b/node_modules/selenium-webdriver/example/logging.js
deleted file mode 100644
index 633ac90c2..000000000
--- a/node_modules/selenium-webdriver/example/logging.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Demonstrates how to use WebDriver's logging sysem.
- */
-
-'use strict';
-
-const {Builder, By, logging, until} = require('..');
-
-logging.installConsoleHandler();
-logging.getLogger('webdriver.http').setLevel(logging.Level.ALL);
-
-var driver = new Builder().forBrowser('firefox').build();
-
-driver.get('http://www.google.com/ncr')
- .then(_ => driver.findElement(By.name('q')).sendKeys('webdriver'))
- .then(_ => driver.findElement(By.name('btnG')).click())
- .then(_ => driver.wait(until.titleIs('webdriver - Google Search'), 1000))
- .then(_ => driver.quit());
diff --git a/node_modules/selenium-webdriver/example/parallel_flows.js b/node_modules/selenium-webdriver/example/parallel_flows.js
deleted file mode 100644
index 59ff103fb..000000000
--- a/node_modules/selenium-webdriver/example/parallel_flows.js
+++ /dev/null
@@ -1,54 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview An example of starting multiple WebDriver clients that run
- * in parallel in separate control flows.
- *
- * This example will only work when the promise manager is enabled
- * (see <https://github.com/SeleniumHQ/selenium/issues/2969>).
- */
-
-var webdriver = require('..'),
- By = webdriver.By,
- until = webdriver.until;
-
-for (var i = 0; i < 3; i++) {
- (function(n) {
- var flow = new webdriver.promise.ControlFlow()
- .on('uncaughtException', function(e) {
- console.log('uncaughtException in flow %d: %s', n, e);
- });
-
- var driver = new webdriver.Builder().
- forBrowser('firefox').
- setControlFlow(flow). // Comment out this line to see the difference.
- build();
-
- // Position and resize window so it's easy to see them running together.
- driver.manage().window().setSize(600, 400);
- driver.manage().window().setPosition(300 * i, 400 * i);
-
- driver.get('http://www.google.com');
- driver.findElement(By.name('q')).sendKeys('webdriver');
- driver.findElement(By.name('btnG')).click();
- driver.wait(until.titleIs('webdriver - Google Search'), 1000);
-
- driver.quit();
- })(i);
-}
-
diff --git a/node_modules/selenium-webdriver/firefox/binary.js b/node_modules/selenium-webdriver/firefox/binary.js
deleted file mode 100644
index a1360bab7..000000000
--- a/node_modules/selenium-webdriver/firefox/binary.js
+++ /dev/null
@@ -1,344 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Manages Firefox binaries. This module is considered internal;
- * users should use {@link ./firefox selenium-webdriver/firefox}.
- */
-
-'use strict';
-
-const child = require('child_process'),
- fs = require('fs'),
- path = require('path'),
- util = require('util');
-
-const isDevMode = require('../lib/devmode'),
- Symbols = require('../lib/symbols'),
- io = require('../io'),
- exec = require('../io/exec');
-
-
-
-/** @const */
-const NO_FOCUS_LIB_X86 = isDevMode ?
- path.join(__dirname, '../../../../cpp/prebuilt/i386/libnoblur.so') :
- path.join(__dirname, '../lib/firefox/i386/libnoblur.so') ;
-
-/** @const */
-const NO_FOCUS_LIB_AMD64 = isDevMode ?
- path.join(__dirname, '../../../../cpp/prebuilt/amd64/libnoblur64.so') :
- path.join(__dirname, '../lib/firefox/amd64/libnoblur64.so') ;
-
-const X_IGNORE_NO_FOCUS_LIB = 'x_ignore_nofocus.so';
-
-
-/**
- * @param {string} file Path to the file to find, relative to the program files
- * root.
- * @return {!Promise<?string>} A promise for the located executable.
- * The promise will resolve to {@code null} if Firefox was not found.
- */
-function findInProgramFiles(file) {
- let files = [
- process.env['PROGRAMFILES'] || 'C:\\Program Files',
- process.env['PROGRAMFILES(X86)'] || 'C:\\Program Files (x86)'
- ].map(prefix => path.join(prefix, file));
- return io.exists(files[0]).then(function(exists) {
- return exists ? files[0] : io.exists(files[1]).then(function(exists) {
- return exists ? files[1] : null;
- });
- });
-}
-
-
-/**
- * Provides methods for locating the executable for a Firefox release channel
- * on Windows and MacOS. For other systems (i.e. Linux), Firefox will always
- * be located on the system PATH.
- *
- * @final
- */
-class Channel {
- /**
- * @param {string} darwin The path to check when running on MacOS.
- * @param {string} win32 The path to check when running on Windows.
- */
- constructor(darwin, win32) {
- /** @private @const */ this.darwin_ = darwin;
- /** @private @const */ this.win32_ = win32;
- /** @private {Promise<string>} */
- this.found_ = null;
- }
-
- /**
- * Attempts to locate the Firefox executable for this release channel. This
- * will first check the default installation location for the channel before
- * checking the user's PATH. The returned promise will be rejected if Firefox
- * can not be found.
- *
- * @return {!Promise<string>} A promise for the location of the located
- * Firefox executable.
- */
- locate() {
- if (this.found_) {
- return this.found_;
- }
-
- let found;
- switch (process.platform) {
- case 'darwin':
- found = io.exists(this.darwin_)
- .then(exists => exists ? this.darwin_ : io.findInPath('firefox'));
- break;
-
- case 'win32':
- found = findInProgramFiles(this.win32_)
- .then(found => found || io.findInPath('firefox.exe'));
- break;
-
- default:
- found = Promise.resolve(io.findInPath('firefox'));
- break;
- }
-
- this.found_ = found.then(found => {
- if (found) {
- // TODO: verify version info.
- return found;
- }
- throw Error('Could not locate Firefox on the current system');
- });
- return this.found_;
- }
-}
-
-
-/**
- * Firefox's developer channel.
- * @const
- * @see <https://www.mozilla.org/en-US/firefox/channel/desktop/#aurora>
- */
-Channel.AURORA = new Channel(
- '/Applications/FirefoxDeveloperEdition.app/Contents/MacOS/firefox-bin',
- 'Firefox Developer Edition\\firefox.exe');
-
-/**
- * Firefox's beta channel. Note this is provided mainly for convenience as
- * the beta channel has the same installation location as the main release
- * channel.
- * @const
- * @see <https://www.mozilla.org/en-US/firefox/channel/desktop/#beta>
- */
-Channel.BETA = new Channel(
- '/Applications/Firefox.app/Contents/MacOS/firefox-bin',
- 'Mozilla Firefox\\firefox.exe');
-
-/**
- * Firefox's release channel.
- * @const
- * @see <https://www.mozilla.org/en-US/firefox/desktop/>
- */
-Channel.RELEASE = new Channel(
- '/Applications/Firefox.app/Contents/MacOS/firefox-bin',
- 'Mozilla Firefox\\firefox.exe');
-
-/**
- * Firefox's nightly release channel.
- * @const
- * @see <https://www.mozilla.org/en-US/firefox/channel/desktop/#nightly>
- */
-Channel.NIGHTLY = new Channel(
- '/Applications/FirefoxNightly.app/Contents/MacOS/firefox-bin',
- 'Nightly\\firefox.exe');
-
-
-/**
- * Copies the no focus libs into the given profile directory.
- * @param {string} profileDir Path to the profile directory to install into.
- * @return {!Promise<string>} The LD_LIBRARY_PATH prefix string to use
- * for the installed libs.
- */
-function installNoFocusLibs(profileDir) {
- var x86 = path.join(profileDir, 'x86');
- var amd64 = path.join(profileDir, 'amd64');
-
- return io.mkdir(x86)
- .then(() => copyLib(NO_FOCUS_LIB_X86, x86))
- .then(() => io.mkdir(amd64))
- .then(() => copyLib(NO_FOCUS_LIB_AMD64, amd64))
- .then(function() {
- return x86 + ':' + amd64;
- });
-
- function copyLib(src, dir) {
- return io.copy(src, path.join(dir, X_IGNORE_NO_FOCUS_LIB));
- }
-}
-
-
-/**
- * Provides a mechanism to configure and launch Firefox in a subprocess for
- * use with WebDriver.
- *
- * If created _without_ a path for the Firefox binary to use, this class will
- * attempt to find Firefox when {@link #launch()} is called. For MacOS and
- * Windows, this class will look for Firefox in the current platform's default
- * installation location (e.g. /Applications/Firefox.app on MacOS). For all
- * other platforms, the Firefox executable must be available on your system
- * `PATH`.
- *
- * @final
- */
-class Binary {
- /**
- * @param {?(string|Channel)=} opt_exeOrChannel Either the path to a specific
- * Firefox binary to use, or a {@link Channel} instance that describes
- * how to locate the desired Firefox version.
- */
- constructor(opt_exeOrChannel) {
- /** @private {?(string|Channel)} */
- this.exe_ = opt_exeOrChannel || null;
-
- /** @private {!Array.<string>} */
- this.args_ = [];
-
- /** @private {!Object<string, string>} */
- this.env_ = {};
- Object.assign(this.env_, process.env, {
- MOZ_CRASHREPORTER_DISABLE: '1',
- MOZ_NO_REMOTE: '1',
- NO_EM_RESTART: '1'
- });
-
- /** @private {boolean} */
- this.devEdition_ = false;
- }
-
- /**
- * @return {(string|undefined)} The path to the Firefox executable to use, or
- * `undefined` if WebDriver should attempt to locate Firefox automatically
- * on the current system.
- */
- getExe() {
- return typeof this.exe_ === 'string' ? this.exe_ : undefined;
- }
-
- /**
- * Add arguments to the command line used to start Firefox.
- * @param {...(string|!Array.<string>)} var_args Either the arguments to add
- * as varargs, or the arguments as an array.
- */
- addArguments(var_args) {
- for (var i = 0; i < arguments.length; i++) {
- if (Array.isArray(arguments[i])) {
- this.args_ = this.args_.concat(arguments[i]);
- } else {
- this.args_.push(arguments[i]);
- }
- }
- }
-
- /**
- * @return {!Array<string>} The command line arguments to use when starting
- * the browser.
- */
- getArguments() {
- return this.args_;
- }
-
- /**
- * Specifies whether to use Firefox Developer Edition instead of the normal
- * stable channel. Setting this option has no effect if this instance was
- * created with a path to a specific Firefox binary.
- *
- * This method has no effect on Unix systems where the Firefox application
- * has the same (default) name regardless of version.
- *
- * @param {boolean=} opt_use Whether to use the developer edition. Defaults to
- * true.
- * @deprecated Use the {@link Channel} class to indicate the desired Firefox
- * version when creating a new binary: `new Binary(Channel.AURORA)`.
- */
- useDevEdition(opt_use) {
- this.devEdition_ = opt_use === undefined || !!opt_use;
- }
-
- /**
- * Returns a promise for the Firefox executable used by this instance. The
- * returned promise will be immediately resolved if the user supplied an
- * executable path when this instance was created. Otherwise, an attempt will
- * be made to find Firefox on the current system.
- *
- * @return {!Promise<string>} a promise for the path to the Firefox executable
- * used by this instance.
- */
- locate() {
- if (typeof this.exe_ === 'string') {
- return Promise.resolve(this.exe_);
- } else if (this.exe_ instanceof Channel) {
- return this.exe_.locate();
- }
- let channel = this.devEdition_ ? Channel.AURORA : Channel.RELEASE;
- return channel.locate();
- }
-
- /**
- * Launches Firefox and returns a promise that will be fulfilled when the
- * process terminates.
- * @param {string} profile Path to the profile directory to use.
- * @return {!Promise<!exec.Command>} A promise for the handle to the started
- * subprocess.
- */
- launch(profile) {
- let env = {};
- Object.assign(env, this.env_, {XRE_PROFILE_PATH: profile});
-
- let args = ['-foreground'].concat(this.args_);
-
- return this.locate().then(function(firefox) {
- if (process.platform === 'win32' || process.platform === 'darwin') {
- return exec(firefox, {args: args, env: env});
- }
- return installNoFocusLibs(profile).then(function(ldLibraryPath) {
- env['LD_LIBRARY_PATH'] = ldLibraryPath + ':' + env['LD_LIBRARY_PATH'];
- env['LD_PRELOAD'] = X_IGNORE_NO_FOCUS_LIB;
- return exec(firefox, {args: args, env: env});
- });
- });
- }
-
- /**
- * Returns a promise for the wire representation of this binary. Note: the
- * FirefoxDriver only supports passing the path to the binary executable over
- * the wire; all command line arguments and environment variables will be
- * discarded.
- *
- * @return {!Promise<string>} A promise for this binary's wire representation.
- */
- [Symbols.serialize]() {
- return this.locate();
- }
-}
-
-
-// PUBLIC API
-
-
-exports.Binary = Binary;
-exports.Channel = Channel;
-
diff --git a/node_modules/selenium-webdriver/firefox/extension.js b/node_modules/selenium-webdriver/firefox/extension.js
deleted file mode 100644
index 3bda759a7..000000000
--- a/node_modules/selenium-webdriver/firefox/extension.js
+++ /dev/null
@@ -1,187 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/** @fileoverview Utilities for working with Firefox extensions. */
-
-'use strict';
-
-const AdmZip = require('adm-zip'),
- fs = require('fs'),
- path = require('path'),
- xml = require('xml2js');
-
-const io = require('../io');
-
-
-/**
- * Thrown when there an add-on is malformed.
- */
-class AddonFormatError extends Error {
- /** @param {string} msg The error message. */
- constructor(msg) {
- super(msg);
- /** @override */
- this.name = this.constructor.name;
- }
-}
-
-
-
-/**
- * Installs an extension to the given directory.
- * @param {string} extension Path to the extension to install, as either a xpi
- * file or a directory.
- * @param {string} dir Path to the directory to install the extension in.
- * @return {!Promise<string>} A promise for the add-on ID once
- * installed.
- */
-function install(extension, dir) {
- return getDetails(extension).then(function(details) {
- var dst = path.join(dir, details.id);
- if (extension.slice(-4) === '.xpi') {
- if (!details.unpack) {
- return io.copy(extension, dst + '.xpi').then(() => details.id);
- } else {
- return Promise.resolve().then(function() {
- // TODO: find an async library for inflating a zip archive.
- new AdmZip(extension).extractAllTo(dst, true);
- return details.id;
- });
- }
- } else {
- return io.copyDir(extension, dst).then(() => details.id);
- }
- });
-}
-
-
-/**
- * Describes a Firefox add-on.
- * @typedef {{id: string, name: string, version: string, unpack: boolean}}
- */
-var AddonDetails;
-
-/** @typedef {{$: !Object<string, string>}} */
-var RdfRoot;
-
-
-
-/**
- * Extracts the details needed to install an add-on.
- * @param {string} addonPath Path to the extension directory.
- * @return {!Promise<!AddonDetails>} A promise for the add-on details.
- */
-function getDetails(addonPath) {
- return readManifest(addonPath).then(function(doc) {
- var em = getNamespaceId(doc, 'http://www.mozilla.org/2004/em-rdf#');
- var rdf = getNamespaceId(
- doc, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#');
-
- var description = doc[rdf + 'RDF'][rdf + 'Description'][0];
- var details = {
- id: getNodeText(description, em + 'id'),
- name: getNodeText(description, em + 'name'),
- version: getNodeText(description, em + 'version'),
- unpack: getNodeText(description, em + 'unpack') || false
- };
-
- if (typeof details.unpack === 'string') {
- details.unpack = details.unpack.toLowerCase() === 'true';
- }
-
- if (!details.id) {
- throw new AddonFormatError('Could not find add-on ID for ' + addonPath);
- }
-
- return details;
- });
-
- function getNodeText(node, name) {
- return node[name] && node[name][0] || '';
- }
-
- function getNamespaceId(doc, url) {
- var keys = Object.keys(doc);
- if (keys.length !== 1) {
- throw new AddonFormatError('Malformed manifest for add-on ' + addonPath);
- }
-
- var namespaces = /** @type {!RdfRoot} */(doc[keys[0]]).$;
- var id = '';
- Object.keys(namespaces).some(function(ns) {
- if (namespaces[ns] !== url) {
- return false;
- }
-
- if (ns.indexOf(':') != -1) {
- id = ns.split(':')[1] + ':';
- }
- return true;
- });
- return id;
- }
-}
-
-
-/**
- * Reads the manifest for a Firefox add-on.
- * @param {string} addonPath Path to a Firefox add-on as a xpi or an extension.
- * @return {!Promise<!Object>} A promise for the parsed manifest.
- */
-function readManifest(addonPath) {
- var manifest;
-
- if (addonPath.slice(-4) === '.xpi') {
- manifest = new Promise((resolve, reject) => {
- let zip = new AdmZip(addonPath);
-
- if (!zip.getEntry('install.rdf')) {
- reject(new AddonFormatError(
- 'Could not find install.rdf in ' + addonPath));
- return;
- }
-
- zip.readAsTextAsync('install.rdf', resolve);
- });
- } else {
- manifest = io.stat(addonPath).then(function(stats) {
- if (!stats.isDirectory()) {
- throw Error(
- 'Add-on path is neither a xpi nor a directory: ' + addonPath);
- }
- return io.read(path.join(addonPath, 'install.rdf'));
- });
- }
-
- return manifest.then(function(content) {
- return new Promise((resolve, reject) => {
- xml.parseString(content, (err, data) => {
- if (err) {
- reject(err);
- } else {
- resolve(data);
- }
- });
- });
- });
-}
-
-
-// PUBLIC API
-
-
-exports.install = install;
diff --git a/node_modules/selenium-webdriver/firefox/index.js b/node_modules/selenium-webdriver/firefox/index.js
deleted file mode 100644
index d5c88274a..000000000
--- a/node_modules/selenium-webdriver/firefox/index.js
+++ /dev/null
@@ -1,722 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Defines the {@linkplain Driver WebDriver} client for Firefox.
- * Before using this module, you must download the latest
- * [geckodriver release] and ensure it can be found on your system [PATH].
- *
- * Each FirefoxDriver instance will be created with an anonymous profile,
- * ensuring browser historys do not share session data (cookies, history, cache,
- * offline storage, etc.)
- *
- * __Customizing the Firefox Profile__
- *
- * The {@linkplain Profile} class may be used to configure the browser profile
- * used with WebDriver, with functions to install additional
- * {@linkplain Profile#addExtension extensions}, configure browser
- * {@linkplain Profile#setPreference preferences}, and more. For example, you
- * may wish to include Firebug:
- *
- * const {Builder} = require('selenium-webdriver');
- * const firefox = require('selenium-webdriver/firefox');
- *
- * let profile = new firefox.Profile();
- * profile.addExtension('/path/to/firebug.xpi');
- * profile.setPreference('extensions.firebug.showChromeErrors', true);
- *
- * let options = new firefox.Options().setProfile(profile);
- * let driver = new Builder()
- * .forBrowser('firefox')
- * .setFirefoxOptions(options)
- * .build();
- *
- * The {@linkplain Profile} class may also be used to configure WebDriver based
- * on a pre-existing browser profile:
- *
- * let profile = new firefox.Profile(
- * '/usr/local/home/bob/.mozilla/firefox/3fgog75h.testing');
- * let options = new firefox.Options().setProfile(profile);
- *
- * The FirefoxDriver will _never_ modify a pre-existing profile; instead it will
- * create a copy for it to modify. By extension, there are certain browser
- * preferences that are required for WebDriver to function properly and they
- * will always be overwritten.
- *
- * __Using a Custom Firefox Binary__
- *
- * On Windows and MacOS, the FirefoxDriver will search for Firefox in its
- * default installation location:
- *
- * - Windows: C:\Program Files and C:\Program Files (x86).
- * - MacOS: /Applications/Firefox.app
- *
- * For Linux, Firefox will always be located on the PATH: `$(where firefox)`.
- *
- * Several methods are provided for starting Firefox with a custom executable.
- * First, on Windows and MacOS, you may configure WebDriver to check the default
- * install location for a non-release channel. If the requested channel cannot
- * be found in its default location, WebDriver will fallback to searching your
- * PATH. _Note:_ on Linux, Firefox is _always_ located on your path, regardless
- * of the requested channel.
- *
- * const {Builder} = require('selenium-webdriver');
- * const firefox = require('selenium-webdriver/firefox');
- *
- * let options = new firefox.Options().setBinary(firefox.Channel.NIGHTLY);
- * let driver = new Builder()
- * .forBrowser('firefox')
- * .setFirefoxOptions(options)
- * .build();
- *
- * On all platforms, you may configrue WebDriver to use a Firefox specific
- * executable:
- *
- * let options = new firefox.Options()
- * .setBinary('/my/firefox/install/dir/firefox-bin');
- *
- * __Remote Testing__
- *
- * You may customize the Firefox binary and profile when running against a
- * remote Selenium server. Your custom profile will be packaged as a zip and
- * transfered to the remote host for use. The profile will be transferred
- * _once for each new session_. The performance impact should be minimal if
- * you've only configured a few extra browser preferences. If you have a large
- * profile with several extensions, you should consider installing it on the
- * remote host and defining its path via the {@link Options} class. Custom
- * binaries are never copied to remote machines and must be referenced by
- * installation path.
- *
- * const {Builder} = require('selenium-webdriver');
- * const firefox = require('selenium-webdriver/firefox');
- *
- * let options = new firefox.Options()
- * .setProfile('/profile/path/on/remote/host')
- * .setBinary('/install/dir/on/remote/host/firefox-bin');
- *
- * let driver = new Builder()
- * .forBrowser('firefox')
- * .usingServer('http://127.0.0.1:4444/wd/hub')
- * .setFirefoxOptions(options)
- * .build();
- *
- * __Testing Older Versions of Firefox__
- *
- * To test versions of Firefox prior to Firefox 47, you must disable the use of
- * the geckodriver using the {@link Options} class.
- *
- * let options = new firefox.Options().useGeckoDriver(false);
- *
- * Alternatively, you may disable the geckodriver at runtime by setting the
- * environment variable `SELENIUM_MARIONETTE=false`.
- *
- * [geckodriver release]: https://github.com/mozilla/geckodriver/releases/
- * [PATH]: http://en.wikipedia.org/wiki/PATH_%28variable%29
- */
-
-'use strict';
-
-const url = require('url');
-
-const {Binary, Channel} = require('./binary'),
- Profile = require('./profile').Profile,
- decodeProfile = require('./profile').decode,
- http = require('../http'),
- httpUtil = require('../http/util'),
- io = require('../io'),
- capabilities = require('../lib/capabilities'),
- command = require('../lib/command'),
- logging = require('../lib/logging'),
- promise = require('../lib/promise'),
- webdriver = require('../lib/webdriver'),
- net = require('../net'),
- portprober = require('../net/portprober'),
- remote = require('../remote');
-
-
-/**
- * Firefox-specific capability keys. Users should use the {@linkplain Options}
- * class instead of referencing these keys directly. _These keys are considered
- * implementation details and may be removed or changed at any time._
- *
- * @enum {string}
- */
-const Capability = {
- /**
- * Defines the Firefox binary to use. May be set to either a
- * {@linkplain Binary} instance, or a string path to the Firefox executable.
- */
- BINARY: 'firefox_binary',
-
- /**
- * Specifies whether to use Mozilla's Marionette, or the legacy FirefoxDriver
- * from the Selenium project. Defaults to false.
- */
- MARIONETTE: 'marionette',
-
- /**
- * Defines the Firefox profile to use. May be set to either a
- * {@linkplain Profile} instance, or to a base-64 encoded zip of a profile
- * directory.
- */
- PROFILE: 'firefox_profile'
-};
-
-
-/**
- * Configuration options for the FirefoxDriver.
- */
-class Options {
- constructor() {
- /** @private {Profile} */
- this.profile_ = null;
-
- /** @private {Binary} */
- this.binary_ = null;
-
- /** @private {logging.Preferences} */
- this.logPrefs_ = null;
-
- /** @private {?capabilities.ProxyConfig} */
- this.proxy_ = null;
-
- /** @private {boolean} */
- this.marionette_ = true;
- }
-
- /**
- * Sets the profile to use. The profile may be specified as a
- * {@link Profile} object or as the path to an existing Firefox profile to use
- * as a template.
- *
- * @param {(string|!Profile)} profile The profile to use.
- * @return {!Options} A self reference.
- */
- setProfile(profile) {
- if (typeof profile === 'string') {
- profile = new Profile(profile);
- }
- this.profile_ = profile;
- return this;
- }
-
- /**
- * Sets the binary to use. The binary may be specified as the path to a
- * Firefox executable, a specific {@link Channel}, or as a {@link Binary}
- * object.
- *
- * @param {(string|!Binary|!Channel)} binary The binary to use.
- * @return {!Options} A self reference.
- * @throws {TypeError} If `binary` is an invalid type.
- */
- setBinary(binary) {
- if (typeof binary === 'string' || binary instanceof Channel) {
- binary = new Binary(binary);
- }
-
- if (!(binary instanceof Binary)) {
- throw TypeError(
- 'binary must be a string path, Channel, or Binary object');
- }
-
- this.binary_ = binary;
- return this;
- }
-
- /**
- * Sets the logging preferences for the new session.
- * @param {logging.Preferences} prefs The logging preferences.
- * @return {!Options} A self reference.
- */
- setLoggingPreferences(prefs) {
- this.logPrefs_ = prefs;
- return this;
- }
-
- /**
- * Sets the proxy to use.
- *
- * @param {capabilities.ProxyConfig} proxy The proxy configuration to use.
- * @return {!Options} A self reference.
- */
- setProxy(proxy) {
- this.proxy_ = proxy;
- return this;
- }
-
- /**
- * Sets whether to use Mozilla's geckodriver to drive the browser. This option
- * is enabled by default and required for Firefox 47+.
- *
- * @param {boolean} enable Whether to enable the geckodriver.
- * @see https://github.com/mozilla/geckodriver
- */
- useGeckoDriver(enable) {
- this.marionette_ = enable;
- return this;
- }
-
- /**
- * Converts these options to a {@link capabilities.Capabilities} instance.
- *
- * @return {!capabilities.Capabilities} A new capabilities object.
- */
- toCapabilities() {
- var caps = capabilities.Capabilities.firefox();
- if (this.logPrefs_) {
- caps.set(capabilities.Capability.LOGGING_PREFS, this.logPrefs_);
- }
- if (this.proxy_) {
- caps.set(capabilities.Capability.PROXY, this.proxy_);
- }
- if (this.binary_) {
- caps.set(Capability.BINARY, this.binary_);
- }
- if (this.profile_) {
- caps.set(Capability.PROFILE, this.profile_);
- }
- caps.set(Capability.MARIONETTE, this.marionette_);
- return caps;
- }
-}
-
-
-/**
- * Enum of available command contexts.
- *
- * Command contexts are specific to Marionette, and may be used with the
- * {@link #context=} method. Contexts allow you to direct all subsequent
- * commands to either "content" (default) or "chrome". The latter gives
- * you elevated security permissions.
- *
- * @enum {string}
- */
-const Context = {
- CONTENT: "content",
- CHROME: "chrome",
-};
-
-
-const GECKO_DRIVER_EXE =
- process.platform === 'win32' ? 'geckodriver.exe' : 'geckodriver';
-
-
-/**
- * @return {string} .
- * @throws {Error}
- */
-function findGeckoDriver() {
- let exe = io.findInPath(GECKO_DRIVER_EXE, true);
- if (!exe) {
- throw Error(
- 'The ' + GECKO_DRIVER_EXE + ' executable could not be found on the current ' +
- 'PATH. Please download the latest version from ' +
- 'https://github.com/mozilla/geckodriver/releases/' +
- 'WebDriver and ensure it can be found on your PATH.');
- }
- return exe;
-}
-
-
-/**
- * @param {(Profile|string)} profile The profile to prepare.
- * @param {number} port The port the FirefoxDriver should listen on.
- * @return {!Promise<string>} a promise for the path to the profile directory.
- */
-function prepareProfile(profile, port) {
- if (typeof profile === 'string') {
- return decodeProfile(/** @type {string} */(profile)).then(dir => {
- profile = new Profile(dir);
- profile.setPreference('webdriver_firefox_port', port);
- return profile.writeToDisk();
- });
- }
-
- profile = profile || new Profile;
- profile.setPreference('webdriver_firefox_port', port);
- return profile.writeToDisk();
-}
-
-
-function normalizeProxyConfiguration(config) {
- if ('manual' === config.proxyType) {
- if (config.ftpProxy && !config.ftpProxyPort) {
- let hostAndPort = net.splitHostAndPort(config.ftpProxy);
- config.ftpProxy = hostAndPort.host;
- config.ftpProxyPort = hostAndPort.port;
- }
-
- if (config.httpProxy && !config.httpProxyPort) {
- let hostAndPort = net.splitHostAndPort(config.httpProxy);
- config.httpProxy = hostAndPort.host;
- config.httpProxyPort = hostAndPort.port;
- }
-
- if (config.sslProxy && !config.sslProxyPort) {
- let hostAndPort = net.splitHostAndPort(config.sslProxy);
- config.sslProxy = hostAndPort.host;
- config.sslProxyPort = hostAndPort.port;
- }
-
- if (config.socksProxy && !config.socksProxyPort) {
- let hostAndPort = net.splitHostAndPort(config.socksProxy);
- config.socksProxy = hostAndPort.host;
- config.socksProxyPort = hostAndPort.port;
- }
- } else if ('pac' === config.proxyType) {
- if (config.proxyAutoconfigUrl && !config.pacUrl) {
- config.pacUrl = config.proxyAutoconfigUrl;
- }
- }
- return config;
-}
-
-
-/** @enum {string} */
-const ExtensionCommand = {
- GET_CONTEXT: 'getContext',
- SET_CONTEXT: 'setContext',
-};
-
-
-/**
- * Creates a command executor with support for Marionette's custom commands.
- * @param {!Promise<string>} serverUrl The server's URL.
- * @return {!command.Executor} The new command executor.
- */
-function createExecutor(serverUrl) {
- let client = serverUrl.then(url => new http.HttpClient(url));
- let executor = new http.Executor(client);
- configureExecutor(executor);
- return executor;
-}
-
-
-/**
- * Configures the given executor with Firefox-specific commands.
- * @param {!http.Executor} executor the executor to configure.
- */
-function configureExecutor(executor) {
- executor.defineCommand(
- ExtensionCommand.GET_CONTEXT,
- 'GET',
- '/session/:sessionId/moz/context');
-
- executor.defineCommand(
- ExtensionCommand.SET_CONTEXT,
- 'POST',
- '/session/:sessionId/moz/context');
-}
-
-
-/**
- * Creates {@link selenium-webdriver/remote.DriverService} instances that manage
- * a [geckodriver](https://github.com/mozilla/geckodriver) server in a child
- * process.
- */
-class ServiceBuilder extends remote.DriverService.Builder {
- /**
- * @param {string=} opt_exe Path to the server executable to use. If omitted,
- * the builder will attempt to locate the geckodriver on the system PATH.
- */
- constructor(opt_exe) {
- super(opt_exe || findGeckoDriver());
- this.setLoopback(true); // Required.
- }
-
- /**
- * Enables verbose logging.
- *
- * @param {boolean=} opt_trace Whether to enable trace-level logging. By
- * default, only debug logging is enabled.
- * @return {!ServiceBuilder} A self reference.
- */
- enableVerboseLogging(opt_trace) {
- return this.addArguments(opt_trace ? '-vv' : '-v');
- }
-
- /**
- * Sets the path to the executable Firefox binary that the geckodriver should
- * use. If this method is not called, this builder will attempt to locate
- * Firefox in the default installation location for the current platform.
- *
- * @param {(string|!Binary)} binary Path to the executable Firefox binary to use.
- * @return {!ServiceBuilder} A self reference.
- * @see Binary#locate()
- */
- setFirefoxBinary(binary) {
- let exe = typeof binary === 'string'
- ? Promise.resolve(binary) : binary.locate();
- return this.addArguments('-b', exe);
- }
-}
-
-
-/**
- * @typedef {{executor: !command.Executor,
- * capabilities: (!capabilities.Capabilities|
- * {desired: (capabilities.Capabilities|undefined),
- * required: (capabilities.Capabilities|undefined)}),
- * onQuit: function(this: void): ?}}
- */
-var DriverSpec;
-
-
-/**
- * @param {(http.Executor|remote.DriverService|undefined)} executor
- * @param {!capabilities.Capabilities} caps
- * @param {Profile} profile
- * @param {Binary} binary
- * @return {DriverSpec}
- */
-function createGeckoDriver(executor, caps, profile, binary) {
- let firefoxOptions = {};
- caps.set('moz:firefoxOptions', firefoxOptions);
-
- if (binary) {
- if (binary.getExe()) {
- firefoxOptions['binary'] = binary.getExe();
- }
-
- let args = binary.getArguments();
- if (args.length) {
- firefoxOptions['args'] = args;
- }
- }
-
- if (profile) {
- // If the user specified a template directory or any extensions to install,
- // we need to encode the profile as a base64 string (which requires writing
- // it to disk first). Otherwise, if the user just specified some custom
- // preferences, we can send those directly.
- if (profile.getTemplateDir() || profile.getExtensions().length) {
- firefoxOptions['profile'] = profile.encode();
-
- } else {
- let prefs = profile.getPreferences();
- if (Object.keys(prefs).length) {
- firefoxOptions['prefs'] = prefs;
- }
- }
- }
-
- let sessionCaps = caps;
- if (caps.has(capabilities.Capability.PROXY)) {
- let proxy = normalizeProxyConfiguration(
- caps.get(capabilities.Capability.PROXY));
-
- // Marionette requires proxy settings to be specified as required
- // capabilities. See mozilla/geckodriver#97
- let required = new capabilities.Capabilities()
- .set(capabilities.Capability.PROXY, proxy);
-
- caps.delete(capabilities.Capability.PROXY);
- sessionCaps = {required, desired: caps};
- }
-
- /** @type {!command.Executor} */
- let cmdExecutor;
- let onQuit = function() {};
-
- if (executor instanceof http.Executor) {
- configureExecutor(executor);
- cmdExecutor = executor;
- } else if (executor instanceof remote.DriverService) {
- cmdExecutor = createExecutor(executor.start());
- onQuit = () => executor.kill();
- } else {
- let builder = new ServiceBuilder();
- if (binary) {
- builder.setFirefoxBinary(binary);
- }
- let service = builder.build();
- cmdExecutor = createExecutor(service.start());
- onQuit = () => service.kill();
- }
-
- return {
- executor: cmdExecutor,
- capabilities: sessionCaps,
- onQuit
- };
-}
-
-
-/**
- * @param {!capabilities.Capabilities} caps
- * @param {Profile} profile
- * @param {!Binary} binary
- * @return {DriverSpec}
- */
-function createLegacyDriver(caps, profile, binary, flow) {
- profile = profile || new Profile;
-
- let freePort = portprober.findFreePort();
- let preparedProfile =
- freePort.then(port => prepareProfile(profile, port));
- let command = preparedProfile.then(dir => binary.launch(dir));
-
- let serverUrl = command.then(() => freePort)
- .then(function(/** number */port) {
- let serverUrl = url.format({
- protocol: 'http',
- hostname: net.getLoopbackAddress(),
- port: port + '',
- pathname: '/hub'
- });
- let ready = httpUtil.waitForServer(serverUrl, 45 * 1000);
- return ready.then(() => serverUrl);
- });
-
- return {
- executor: createExecutor(serverUrl),
- capabilities: caps,
- onQuit: function() {
- return command.then(command => {
- command.kill();
- return preparedProfile.then(io.rmDir)
- .then(() => command.result(),
- () => command.result());
- });
- }
- };
-}
-
-
-/**
- * A WebDriver client for Firefox.
- */
-class Driver extends webdriver.WebDriver {
- /**
- * Creates a new Firefox session.
- *
- * @param {(Options|capabilities.Capabilities|Object)=} opt_config The
- * configuration options for this driver, specified as either an
- * {@link Options} or {@link capabilities.Capabilities}, or as a raw hash
- * object.
- * @param {(http.Executor|remote.DriverService)=} opt_executor Either a
- * pre-configured command executor to use for communicating with an
- * externally managed remote end (which is assumed to already be running),
- * or the `DriverService` to use to start the geckodriver in a child
- * process.
- *
- * If an executor is provided, care should e taken not to use reuse it with
- * other clients as its internal command mappings will be updated to support
- * Firefox-specific commands.
- *
- * _This parameter may only be used with Mozilla's GeckoDriver._
- *
- * @param {promise.ControlFlow=} opt_flow The flow to
- * schedule commands through. Defaults to the active flow object.
- * @throws {Error} If a custom command executor is provided and the driver is
- * configured to use the legacy FirefoxDriver from the Selenium project.
- * @return {!Driver} A new driver instance.
- */
- static createSession(opt_config, opt_executor, opt_flow) {
- let caps;
- if (opt_config instanceof Options) {
- caps = opt_config.toCapabilities();
- } else {
- caps = new capabilities.Capabilities(opt_config);
- }
-
- let binary = caps.get(Capability.BINARY) || new Binary();
- caps.delete(Capability.BINARY);
- if (typeof binary === 'string') {
- binary = new Binary(binary);
- }
-
- let profile;
- if (caps.has(Capability.PROFILE)) {
- profile = caps.get(Capability.PROFILE);
- caps.delete(Capability.PROFILE);
- }
-
- // Users must now explicitly disable marionette to use the legacy
- // FirefoxDriver.
- let noMarionette =
- caps.get(Capability.MARIONETTE) === false
- || /^0|false$/i.test(process.env['SELENIUM_MARIONETTE']);
- let useMarionette = !noMarionette;
-
- let spec;
- if (useMarionette) {
- spec = createGeckoDriver(opt_executor, caps, profile, binary);
- } else {
- if (opt_executor) {
- throw Error('You may not use a custom command executor with the legacy'
- + ' FirefoxDriver');
- }
- spec = createLegacyDriver(caps, profile, binary, opt_flow);
- }
-
- return /** @type {!Driver} */(webdriver.WebDriver.createSession(
- spec.executor, spec.capabilities, opt_flow, this, spec.onQuit));
- }
-
- /**
- * This function is a no-op as file detectors are not supported by this
- * implementation.
- * @override
- */
- setFileDetector() {
- }
-
- /**
- * Get the context that is currently in effect.
- *
- * @return {!promise.Thenable<Context>} Current context.
- */
- getContext() {
- return this.schedule(
- new command.Command(ExtensionCommand.GET_CONTEXT),
- 'get WebDriver.context');
- }
-
- /**
- * Changes target context for commands between chrome- and content.
- *
- * Changing the current context has a stateful impact on all subsequent
- * commands. The {@link Context.CONTENT} context has normal web
- * platform document permissions, as if you would evaluate arbitrary
- * JavaScript. The {@link Context.CHROME} context gets elevated
- * permissions that lets you manipulate the browser chrome itself,
- * with full access to the XUL toolkit.
- *
- * Use your powers wisely.
- *
- * @param {!promise.Thenable<void>} ctx The context to switch to.
- */
- setContext(ctx) {
- return this.schedule(
- new command.Command(ExtensionCommand.SET_CONTEXT)
- .setParameter("context", ctx),
- 'set WebDriver.context');
- }
-}
-
-
-// PUBLIC API
-
-
-exports.Binary = Binary;
-exports.Channel = Channel;
-exports.Context = Context;
-exports.Driver = Driver;
-exports.Options = Options;
-exports.Profile = Profile;
-exports.ServiceBuilder = ServiceBuilder;
diff --git a/node_modules/selenium-webdriver/firefox/profile.js b/node_modules/selenium-webdriver/firefox/profile.js
deleted file mode 100644
index b7f6363f9..000000000
--- a/node_modules/selenium-webdriver/firefox/profile.js
+++ /dev/null
@@ -1,430 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Profile management module. This module is considered internal;
- * users should use {@link selenium-webdriver/firefox}.
- */
-
-'use strict';
-
-const AdmZip = require('adm-zip'),
- fs = require('fs'),
- path = require('path'),
- vm = require('vm');
-
-const isDevMode = require('../lib/devmode'),
- Symbols = require('../lib/symbols'),
- io = require('../io'),
- extension = require('./extension');
-
-
-/** @const */
-const WEBDRIVER_PREFERENCES_PATH = isDevMode
- ? path.join(__dirname, '../../../firefox-driver/webdriver.json')
- : path.join(__dirname, '../lib/firefox/webdriver.json');
-
-/** @const */
-const WEBDRIVER_EXTENSION_PATH = isDevMode
- ? path.join(__dirname,
- '../../../../build/javascript/firefox-driver/webdriver.xpi')
- : path.join(__dirname, '../lib/firefox/webdriver.xpi');
-
-/** @const */
-const WEBDRIVER_EXTENSION_NAME = 'fxdriver@googlecode.com';
-
-
-
-/** @type {Object} */
-var defaultPreferences = null;
-
-/**
- * Synchronously loads the default preferences used for the FirefoxDriver.
- * @return {!Object} The default preferences JSON object.
- */
-function getDefaultPreferences() {
- if (!defaultPreferences) {
- var contents = /** @type {string} */(
- fs.readFileSync(WEBDRIVER_PREFERENCES_PATH, 'utf8'));
- defaultPreferences = /** @type {!Object} */(JSON.parse(contents));
- }
- return defaultPreferences;
-}
-
-
-/**
- * Parses a user.js file in a Firefox profile directory.
- * @param {string} f Path to the file to parse.
- * @return {!Promise<!Object>} A promise for the parsed preferences as
- * a JSON object. If the file does not exist, an empty object will be
- * returned.
- */
-function loadUserPrefs(f) {
- return io.read(f).then(
- function onSuccess(contents) {
- var prefs = {};
- var context = vm.createContext({
- 'user_pref': function(key, value) {
- prefs[key] = value;
- }
- });
- vm.runInContext(contents.toString(), context, f);
- return prefs;
- },
- function onError(err) {
- if (err && err.code === 'ENOENT') {
- return {};
- }
- throw err;
- });
-}
-
-
-
-/**
- * @param {!Object} prefs The default preferences to write. Will be
- * overridden by user.js preferences in the template directory and the
- * frozen preferences required by WebDriver.
- * @param {string} dir Path to the directory write the file to.
- * @return {!Promise<string>} A promise for the profile directory,
- * to be fulfilled when user preferences have been written.
- */
-function writeUserPrefs(prefs, dir) {
- var userPrefs = path.join(dir, 'user.js');
- return loadUserPrefs(userPrefs).then(function(overrides) {
- Object.assign(prefs, overrides);
- Object.assign(prefs, getDefaultPreferences()['frozen']);
-
- var contents = Object.keys(prefs).map(function(key) {
- return 'user_pref(' + JSON.stringify(key) + ', ' +
- JSON.stringify(prefs[key]) + ');';
- }).join('\n');
-
- return new Promise((resolve, reject) => {
- fs.writeFile(userPrefs, contents, function(err) {
- err && reject(err) || resolve(dir);
- });
- });
- });
-};
-
-
-/**
- * Installs a group of extensions in the given profile directory. If the
- * WebDriver extension is not included in this set, the default version
- * bundled with this package will be installed.
- * @param {!Array.<string>} extensions The extensions to install, as a
- * path to an unpacked extension directory or a path to a xpi file.
- * @param {string} dir The profile directory to install to.
- * @param {boolean=} opt_excludeWebDriverExt Whether to skip installation of
- * the default WebDriver extension.
- * @return {!Promise<string>} A promise for the main profile directory
- * once all extensions have been installed.
- */
-function installExtensions(extensions, dir, opt_excludeWebDriverExt) {
- var hasWebDriver = !!opt_excludeWebDriverExt;
- var next = 0;
- var extensionDir = path.join(dir, 'extensions');
-
- return new Promise(function(fulfill, reject) {
- io.mkdir(extensionDir).then(installNext, reject);
-
- function installNext() {
- if (next >= extensions.length) {
- if (hasWebDriver) {
- fulfill(dir);
- } else {
- install(WEBDRIVER_EXTENSION_PATH);
- }
- } else {
- install(extensions[next++]);
- }
- }
-
- function install(ext) {
- extension.install(ext, extensionDir).then(function(id) {
- hasWebDriver = hasWebDriver || (id === WEBDRIVER_EXTENSION_NAME);
- installNext();
- }, reject);
- }
- });
-}
-
-
-/**
- * Decodes a base64 encoded profile.
- * @param {string} data The base64 encoded string.
- * @return {!Promise<string>} A promise for the path to the decoded profile
- * directory.
- */
-function decode(data) {
- return io.tmpFile().then(function(file) {
- var buf = new Buffer(data, 'base64');
- return io.write(file, buf)
- .then(io.tmpDir)
- .then(function(dir) {
- var zip = new AdmZip(file);
- zip.extractAllTo(dir); // Sync only? Why?? :-(
- return dir;
- });
- });
-}
-
-
-
-/**
- * Models a Firefox profile directory for use with the FirefoxDriver. The
- * {@code Profile} directory uses an in-memory model until
- * {@link #writeToDisk} or {@link #encode} is called.
- */
-class Profile {
- /**
- * @param {string=} opt_dir Path to an existing Firefox profile directory to
- * use a template for this profile. If not specified, a blank profile will
- * be used.
- */
- constructor(opt_dir) {
- /** @private {!Object} */
- this.preferences_ = {};
-
- /** @private {boolean} */
- this.nativeEventsEnabled_ = true;
-
- /** @private {(string|undefined)} */
- this.template_ = opt_dir;
-
- /** @private {number} */
- this.port_ = 0;
-
- /** @private {!Array<string>} */
- this.extensions_ = [];
- }
-
- /**
- * @return {(string|undefined)} Path to an existing Firefox profile directory
- * to use as a template when writing this Profile to disk.
- */
- getTemplateDir() {
- return this.template_;
- }
-
- /**
- * Registers an extension to be included with this profile.
- * @param {string} extension Path to the extension to include, as either an
- * unpacked extension directory or the path to a xpi file.
- */
- addExtension(extension) {
- this.extensions_.push(extension);
- }
-
- /**
- * @return {!Array<string>} A list of extensions to install in this profile.
- */
- getExtensions() {
- return this.extensions_;
- }
-
- /**
- * Sets a desired preference for this profile.
- * @param {string} key The preference key.
- * @param {(string|number|boolean)} value The preference value.
- * @throws {Error} If attempting to set a frozen preference.
- */
- setPreference(key, value) {
- var frozen = getDefaultPreferences()['frozen'];
- if (frozen.hasOwnProperty(key) && frozen[key] !== value) {
- throw Error('You may not set ' + key + '=' + JSON.stringify(value)
- + '; value is frozen for proper WebDriver functionality ('
- + key + '=' + JSON.stringify(frozen[key]) + ')');
- }
- this.preferences_[key] = value;
- }
-
- /**
- * Returns the currently configured value of a profile preference. This does
- * not include any defaults defined in the profile's template directory user.js
- * file (if a template were specified on construction).
- * @param {string} key The desired preference.
- * @return {(string|number|boolean|undefined)} The current value of the
- * requested preference.
- */
- getPreference(key) {
- return this.preferences_[key];
- }
-
- /**
- * @return {!Object} A copy of all currently configured preferences.
- */
- getPreferences() {
- return Object.assign({}, this.preferences_);
- }
-
- /**
- * Specifies which host the driver should listen for commands on. If not
- * specified, the driver will default to "localhost". This option should be
- * specified when "localhost" is not mapped to the loopback address
- * (127.0.0.1) in `/etc/hosts`.
- *
- * @param {string} host the host the driver should listen for commands on
- */
- setHost(host) {
- this.preferences_['webdriver_firefox_allowed_hosts'] = host;
- }
-
- /**
- * @return {number} The port this profile is currently configured to use, or
- * 0 if the port will be selected at random when the profile is written
- * to disk.
- */
- getPort() {
- return this.port_;
- }
-
- /**
- * Sets the port to use for the WebDriver extension loaded by this profile.
- * @param {number} port The desired port, or 0 to use any free port.
- */
- setPort(port) {
- this.port_ = port;
- }
-
- /**
- * @return {boolean} Whether the FirefoxDriver is configured to automatically
- * accept untrusted SSL certificates.
- */
- acceptUntrustedCerts() {
- return !!this.preferences_['webdriver_accept_untrusted_certs'];
- }
-
- /**
- * Sets whether the FirefoxDriver should automatically accept untrusted SSL
- * certificates.
- * @param {boolean} value .
- */
- setAcceptUntrustedCerts(value) {
- this.preferences_['webdriver_accept_untrusted_certs'] = !!value;
- }
-
- /**
- * Sets whether to assume untrusted certificates come from untrusted issuers.
- * @param {boolean} value .
- */
- setAssumeUntrustedCertIssuer(value) {
- this.preferences_['webdriver_assume_untrusted_issuer'] = !!value;
- }
-
- /**
- * @return {boolean} Whether to assume untrusted certs come from untrusted
- * issuers.
- */
- assumeUntrustedCertIssuer() {
- return !!this.preferences_['webdriver_assume_untrusted_issuer'];
- }
-
- /**
- * Sets whether to use native events with this profile.
- * @param {boolean} enabled .
- */
- setNativeEventsEnabled(enabled) {
- this.nativeEventsEnabled_ = enabled;
- }
-
- /**
- * Returns whether native events are enabled in this profile.
- * @return {boolean} .
- */
- nativeEventsEnabled() {
- return this.nativeEventsEnabled_;
- }
-
- /**
- * Writes this profile to disk.
- * @param {boolean=} opt_excludeWebDriverExt Whether to exclude the WebDriver
- * extension from the generated profile. Used to reduce the size of an
- * {@link #encode() encoded profile} since the server will always install
- * the extension itself.
- * @return {!Promise<string>} A promise for the path to the new profile
- * directory.
- */
- writeToDisk(opt_excludeWebDriverExt) {
- var profileDir = io.tmpDir();
- if (this.template_) {
- profileDir = profileDir.then(function(dir) {
- return io.copyDir(
- /** @type {string} */(this.template_),
- dir, /(parent\.lock|lock|\.parentlock)/);
- }.bind(this));
- }
-
- // Freeze preferences for async operations.
- var prefs = {};
- Object.assign(prefs, getDefaultPreferences()['mutable']);
- Object.assign(prefs, getDefaultPreferences()['frozen']);
- Object.assign(prefs, this.preferences_);
-
- // Freeze extensions for async operations.
- var extensions = this.extensions_.concat();
-
- return profileDir.then(function(dir) {
- return writeUserPrefs(prefs, dir);
- }).then(function(dir) {
- return installExtensions(extensions, dir, !!opt_excludeWebDriverExt);
- });
- }
-
- /**
- * Write profile to disk, compress its containing directory, and return
- * it as a Base64 encoded string.
- *
- * @return {!Promise<string>} A promise for the encoded profile as
- * Base64 string.
- *
- */
- encode() {
- return this.writeToDisk(true).then(function(dir) {
- var zip = new AdmZip();
- zip.addLocalFolder(dir, '');
- // Stored compression, see https://en.wikipedia.org/wiki/Zip_(file_format)
- zip.getEntries().forEach(function(entry) {
- entry.header.method = 0;
- });
-
- return io.tmpFile().then(function(file) {
- zip.writeZip(file); // Sync! Why oh why :-(
- return io.read(file);
- });
- }).then(function(data) {
- return data.toString('base64');
- });
- }
-
- /**
- * Encodes this profile as a zipped, base64 encoded directory.
- * @return {!Promise<string>} A promise for the encoded profile.
- */
- [Symbols.serialize]() {
- return this.encode();
- }
-}
-
-
-// PUBLIC API
-
-
-exports.Profile = Profile;
-exports.decode = decode;
-exports.loadUserPrefs = loadUserPrefs;
diff --git a/node_modules/selenium-webdriver/http/index.js b/node_modules/selenium-webdriver/http/index.js
deleted file mode 100644
index fa98557a0..000000000
--- a/node_modules/selenium-webdriver/http/index.js
+++ /dev/null
@@ -1,255 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Defines an {@linkplain cmd.Executor command executor} that
- * communicates with a remote end using HTTP + JSON.
- */
-
-'use strict';
-
-const http = require('http');
-const https = require('https');
-const url = require('url');
-
-const httpLib = require('../lib/http');
-
-
-/**
- * @typedef {{protocol: (?string|undefined),
- * auth: (?string|undefined),
- * hostname: (?string|undefined),
- * host: (?string|undefined),
- * port: (?string|undefined),
- * path: (?string|undefined),
- * pathname: (?string|undefined)}}
- */
-var RequestOptions;
-
-
-/**
- * @param {string} aUrl The request URL to parse.
- * @return {RequestOptions} The request options.
- * @throws {Error} if the URL does not include a hostname.
- */
-function getRequestOptions(aUrl) {
- let options = url.parse(aUrl);
- if (!options.hostname) {
- throw new Error('Invalid URL: ' + aUrl);
- }
- // Delete the search and has portions as they are not used.
- options.search = null;
- options.hash = null;
- options.path = options.pathname;
- return options;
-}
-
-
-/**
- * A basic HTTP client used to send messages to a remote end.
- *
- * @implements {httpLib.Client}
- */
-class HttpClient {
- /**
- * @param {string} serverUrl URL for the WebDriver server to send commands to.
- * @param {http.Agent=} opt_agent The agent to use for each request.
- * Defaults to `http.globalAgent`.
- * @param {?string=} opt_proxy The proxy to use for the connection to the
- * server. Default is to use no proxy.
- */
- constructor(serverUrl, opt_agent, opt_proxy) {
- /** @private {http.Agent} */
- this.agent_ = opt_agent || null;
-
- /**
- * Base options for each request.
- * @private {RequestOptions}
- */
- this.options_ = getRequestOptions(serverUrl);
-
- /**
- * @private {?RequestOptions}
- */
- this.proxyOptions_ = opt_proxy ? getRequestOptions(opt_proxy) : null;
- }
-
- /** @override */
- send(httpRequest) {
- let data;
-
- let headers = {};
- httpRequest.headers.forEach(function(value, name) {
- headers[name] = value;
- });
-
- headers['Content-Length'] = 0;
- if (httpRequest.method == 'POST' || httpRequest.method == 'PUT') {
- data = JSON.stringify(httpRequest.data);
- headers['Content-Length'] = Buffer.byteLength(data, 'utf8');
- headers['Content-Type'] = 'application/json;charset=UTF-8';
- }
-
- let path = this.options_.path;
- if (path.endsWith('/') && httpRequest.path.startsWith('/')) {
- path += httpRequest.path.substring(1);
- } else {
- path += httpRequest.path;
- }
- let parsedPath = url.parse(path);
-
- let options = {
- agent: this.agent_ || null,
- method: httpRequest.method,
-
- auth: this.options_.auth,
- hostname: this.options_.hostname,
- port: this.options_.port,
- protocol: this.options_.protocol,
-
- path: parsedPath.path,
- pathname: parsedPath.pathname,
- search: parsedPath.search,
- hash: parsedPath.hash,
-
- headers,
- };
-
- return new Promise((fulfill, reject) => {
- sendRequest(options, fulfill, reject, data, this.proxyOptions_);
- });
- }
-}
-
-
-/**
- * Sends a single HTTP request.
- * @param {!Object} options The request options.
- * @param {function(!httpLib.Response)} onOk The function to call if the
- * request succeeds.
- * @param {function(!Error)} onError The function to call if the request fails.
- * @param {?string=} opt_data The data to send with the request.
- * @param {?RequestOptions=} opt_proxy The proxy server to use for the request.
- */
-function sendRequest(options, onOk, onError, opt_data, opt_proxy) {
- var hostname = options.hostname;
- var port = options.port;
-
- if (opt_proxy) {
- let proxy = /** @type {RequestOptions} */(opt_proxy);
-
- // RFC 2616, section 5.1.2:
- // The absoluteURI form is REQUIRED when the request is being made to a
- // proxy.
- let absoluteUri = url.format(options);
-
- // RFC 2616, section 14.23:
- // An HTTP/1.1 proxy MUST ensure that any request message it forwards does
- // contain an appropriate Host header field that identifies the service
- // being requested by the proxy.
- let targetHost = options.hostname
- if (options.port) {
- targetHost += ':' + options.port;
- }
-
- // Update the request options with our proxy info.
- options.headers['Host'] = targetHost;
- options.path = absoluteUri;
- options.host = proxy.host;
- options.hostname = proxy.hostname;
- options.port = proxy.port;
-
- if (proxy.auth) {
- options.headers['Proxy-Authorization'] =
- 'Basic ' + new Buffer(proxy.auth).toString('base64');
- }
- }
-
- let requestFn = options.protocol === 'https:' ? https.request : http.request;
- var request = requestFn(options, function onResponse(response) {
- if (response.statusCode == 302 || response.statusCode == 303) {
- try {
- var location = url.parse(response.headers['location']);
- } catch (ex) {
- onError(Error(
- 'Failed to parse "Location" header for server redirect: ' +
- ex.message + '\nResponse was: \n' +
- new httpLib.Response(response.statusCode, response.headers, '')));
- return;
- }
-
- if (!location.hostname) {
- location.hostname = hostname;
- location.port = port;
- }
-
- request.abort();
- sendRequest({
- method: 'GET',
- protocol: location.protocol || options.protocol,
- hostname: location.hostname,
- port: location.port,
- path: location.path,
- pathname: location.pathname,
- search: location.search,
- hash: location.hash,
- headers: {
- 'Accept': 'application/json; charset=utf-8'
- }
- }, onOk, onError, undefined, opt_proxy);
- return;
- }
-
- var body = [];
- response.on('data', body.push.bind(body));
- response.on('end', function() {
- var resp = new httpLib.Response(
- /** @type {number} */(response.statusCode),
- /** @type {!Object<string>} */(response.headers),
- body.join('').replace(/\0/g, ''));
- onOk(resp);
- });
- });
-
- request.on('error', function(e) {
- if (e.code === 'ECONNRESET') {
- setTimeout(function() {
- sendRequest(options, onOk, onError, opt_data, opt_proxy);
- }, 15);
- } else {
- var message = e.message;
- if (e.code) {
- message = e.code + ' ' + message;
- }
- onError(new Error(message));
- }
- });
-
- if (opt_data) {
- request.write(opt_data);
- }
-
- request.end();
-}
-
-
-// PUBLIC API
-
-exports.Executor = httpLib.Executor;
-exports.HttpClient = HttpClient;
-exports.Request = httpLib.Request;
-exports.Response = httpLib.Response;
diff --git a/node_modules/selenium-webdriver/http/util.js b/node_modules/selenium-webdriver/http/util.js
deleted file mode 100644
index 8662bed28..000000000
--- a/node_modules/selenium-webdriver/http/util.js
+++ /dev/null
@@ -1,175 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Various HTTP utilities.
- */
-
-'use strict';
-
-const Executor = require('./index').Executor,
- HttpClient = require('./index').HttpClient,
- HttpRequest = require('./index').Request,
- Command = require('../lib/command').Command,
- CommandName = require('../lib/command').Name,
- error = require('../lib/error'),
- promise = require('../lib/promise');
-
-
-
-/**
- * Queries a WebDriver server for its current status.
- * @param {string} url Base URL of the server to query.
- * @return {!Promise<!Object>} A promise that resolves with
- * a hash of the server status.
- */
-function getStatus(url) {
- var client = new HttpClient(url);
- var executor = new Executor(client);
- var command = new Command(CommandName.GET_SERVER_STATUS);
- return executor.execute(command);
-}
-
-
-// PUBLIC API
-
-
-/**
- * Queries a WebDriver server for its current status.
- * @param {string} url Base URL of the server to query.
- * @return {!Promise<!Object>} A promise that resolves with
- * a hash of the server status.
- */
-exports.getStatus = getStatus;
-
-
-/**
- * Waits for a WebDriver server to be healthy and accepting requests.
- * @param {string} url Base URL of the server to query.
- * @param {number} timeout How long to wait for the server.
- * @param {Promise=} opt_cancelToken A promise used as a cancellation signal:
- * if resolved before the server is ready, the wait will be terminated
- * early with a {@link promise.CancellationError}.
- * @return {!Promise} A promise that will resolve when the server is ready, or
- * if the wait is cancelled.
- */
-exports.waitForServer = function(url, timeout, opt_cancelToken) {
- return new Promise((onResolve, onReject) => {
- let start = Date.now();
-
- let done = false;
- let resolve = (status) => {
- done = true;
- onResolve(status);
- };
- let reject = (err) => {
- done = true;
- onReject(err);
- };
-
- if (opt_cancelToken) {
- opt_cancelToken.then(_ => reject(new promise.CancellationError));
- }
-
- checkServerStatus();
- function checkServerStatus() {
- return getStatus(url).then(status => resolve(status), onError);
- }
-
- function onError(e) {
- // Some servers don't support the status command. If they are able to
- // response with an error, then can consider the server ready.
- if (e instanceof error.UnsupportedOperationError) {
- resolve({});
- return;
- }
-
- if (Date.now() - start > timeout) {
- reject(Error('Timed out waiting for the WebDriver server at ' + url));
- } else {
- setTimeout(function() {
- if (!done) {
- checkServerStatus();
- }
- }, 50);
- }
- }
- });
-};
-
-
-/**
- * Polls a URL with GET requests until it returns a 2xx response or the
- * timeout expires.
- * @param {string} url The URL to poll.
- * @param {number} timeout How long to wait, in milliseconds.
- * @param {Promise=} opt_cancelToken A promise used as a cancellation signal:
- * if resolved before the a 2xx response is received, the wait will be
- * terminated early with a {@link promise.CancellationError}.
- * @return {!Promise} A promise that will resolve when a 2xx is received from
- * the given URL, or if the wait is cancelled.
- */
-exports.waitForUrl = function(url, timeout, opt_cancelToken) {
- return new Promise((onResolve, onReject) => {
- let client = new HttpClient(url);
- let request = new HttpRequest('GET', '');
- let start = Date.now();
-
- let done = false;
- let resolve = () => {
- done = true;
- onResolve();
- };
- let reject = (err) => {
- done = true;
- onReject(err);
- };
-
- if (opt_cancelToken) {
- opt_cancelToken.then(_ => reject(new promise.CancellationError));
- }
-
- testUrl();
-
- function testUrl() {
- client.send(request).then(onResponse, onError);
- }
-
- function onError() {
- if (Date.now() - start > timeout) {
- reject(Error('Timed out waiting for the URL to return 2xx: ' + url));
- } else {
- setTimeout(function() {
- if (!done) {
- testUrl();
- }
- }, 50);
- }
- }
-
- function onResponse(response) {
- if (done) {
- return;
- }
- if (response.status > 199 && response.status < 300) {
- resolve();
- return;
- }
- onError();
- }
- });
-};
diff --git a/node_modules/selenium-webdriver/ie.js b/node_modules/selenium-webdriver/ie.js
deleted file mode 100644
index 5b86fa58e..000000000
--- a/node_modules/selenium-webdriver/ie.js
+++ /dev/null
@@ -1,441 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Defines a {@linkplain Driver WebDriver} client for Microsoft's
- * Internet Explorer. Before using the IEDriver, you must download the latest
- * [IEDriverServer](http://selenium-release.storage.googleapis.com/index.html)
- * and place it on your
- * [PATH](http://en.wikipedia.org/wiki/PATH_%28variable%29). You must also apply
- * the system configuration outlined on the Selenium project
- * [wiki](https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver)
- */
-
-'use strict';
-
-const fs = require('fs'),
- util = require('util');
-
-const http = require('./http'),
- io = require('./io'),
- capabilities = require('./lib/capabilities'),
- promise = require('./lib/promise'),
- webdriver = require('./lib/webdriver'),
- portprober = require('./net/portprober'),
- remote = require('./remote');
-
-
-const IEDRIVER_EXE = 'IEDriverServer.exe';
-
-
-
-/**
- * IEDriverServer logging levels.
- * @enum {string}
- */
-const Level = {
- FATAL: 'FATAL',
- ERROR: 'ERROR',
- WARN: 'WARN',
- INFO: 'INFO',
- DEBUG: 'DEBUG',
- TRACE: 'TRACE'
-};
-
-
-
-/**
- * Option keys:
- * https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities#ie-specific
- * @enum {string}
- */
-const Key = {
- IGNORE_PROTECTED_MODE_SETTINGS: 'ignoreProtectedModeSettings',
- IGNORE_ZOOM_SETTING: 'ignoreZoomSetting',
- INITIAL_BROWSER_URL: 'initialBrowserUrl',
- ENABLE_PERSISTENT_HOVER: 'enablePersistentHover',
- ENABLE_ELEMENT_CACHE_CLEANUP: 'enableElementCacheCleanup',
- REQUIRE_WINDOW_FOCUS: 'requireWindowFocus',
- BROWSER_ATTACH_TIMEOUT: 'browserAttachTimeout',
- FORCE_CREATE_PROCESS: 'ie.forceCreateProcessApi',
- BROWSER_COMMAND_LINE_SWITCHES: 'ie.browserCommandLineSwitches',
- USE_PER_PROCESS_PROXY: 'ie.usePerProcessProxy',
- ENSURE_CLEAN_SESSION: 'ie.ensureCleanSession',
- LOG_FILE: 'logFile',
- LOG_LEVEL: 'logLevel',
- HOST: 'host',
- EXTRACT_PATH: 'extractPath',
- SILENT: 'silent'
-};
-
-
-/**
- * Class for managing IEDriver specific options.
- */
-class Options {
- constructor() {
- /** @private {!Object<(boolean|number|string|!Array<string>)>} */
- this.options_ = {};
-
- /** @private {(capabilities.ProxyConfig|null)} */
- this.proxy_ = null;
- }
-
- /**
- * Extracts the IEDriver specific options from the given capabilities
- * object.
- * @param {!capabilities.Capabilities} caps The capabilities object.
- * @return {!Options} The IEDriver options.
- */
- static fromCapabilities(caps) {
- var options = new Options();
- var map = options.options_;
-
- Object.keys(Key).forEach(function(key) {
- key = Key[key];
- if (caps.has(key)) {
- map[key] = caps.get(key);
- }
- });
-
- if (caps.has(capabilities.Capability.PROXY)) {
- options.setProxy(caps.get(capabilities.Capability.PROXY));
- }
-
- return options;
- }
-
- /**
- * Whether to disable the protected mode settings check when the session is
- * created. Disbling this setting may lead to significant instability as the
- * browser may become unresponsive/hang. Only "best effort" support is provided
- * when using this capability.
- *
- * For more information, refer to the IEDriver's
- * [required system configuration](http://goo.gl/eH0Yi3).
- *
- * @param {boolean} ignoreSettings Whether to ignore protected mode settings.
- * @return {!Options} A self reference.
- */
- introduceFlakinessByIgnoringProtectedModeSettings(ignoreSettings) {
- this.options_[Key.IGNORE_PROTECTED_MODE_SETTINGS] = !!ignoreSettings;
- return this;
- }
-
- /**
- * Indicates whether to skip the check that the browser's zoom level is set to
- * 100%.
- *
- * @param {boolean} ignore Whether to ignore the browser's zoom level settings.
- * @return {!Options} A self reference.
- */
- ignoreZoomSetting(ignore) {
- this.options_[Key.IGNORE_ZOOM_SETTING] = !!ignore;
- return this;
- }
-
- /**
- * Sets the initial URL loaded when IE starts. This is intended to be used with
- * {@link #ignoreProtectedModeSettings} to allow the user to initialize IE in
- * the proper Protected Mode zone. Setting this option may cause browser
- * instability or flaky and unresponsive code. Only "best effort" support is
- * provided when using this option.
- *
- * @param {string} url The initial browser URL.
- * @return {!Options} A self reference.
- */
- initialBrowserUrl(url) {
- this.options_[Key.INITIAL_BROWSER_URL] = url;
- return this;
- }
-
- /**
- * Configures whether to enable persistent mouse hovering (true by default).
- * Persistent hovering is achieved by continuously firing mouse over events at
- * the last location the mouse cursor has been moved to.
- *
- * @param {boolean} enable Whether to enable persistent hovering.
- * @return {!Options} A self reference.
- */
- enablePersistentHover(enable) {
- this.options_[Key.ENABLE_PERSISTENT_HOVER] = !!enable;
- return this;
- }
-
- /**
- * Configures whether the driver should attempt to remove obsolete
- * {@linkplain webdriver.WebElement WebElements} from its internal cache on
- * page navigation (true by default). Disabling this option will cause the
- * driver to run with a larger memory footprint.
- *
- * @param {boolean} enable Whether to enable element reference cleanup.
- * @return {!Options} A self reference.
- */
- enableElementCacheCleanup(enable) {
- this.options_[Key.ENABLE_ELEMENT_CACHE_CLEANUP] = !!enable;
- return this;
- }
-
- /**
- * Configures whether to require the IE window to have input focus before
- * performing any user interactions (i.e. mouse or keyboard events). This
- * option is disabled by default, but delivers much more accurate interaction
- * events when enabled.
- *
- * @param {boolean} require Whether to require window focus.
- * @return {!Options} A self reference.
- */
- requireWindowFocus(require) {
- this.options_[Key.REQUIRE_WINDOW_FOCUS] = !!require;
- return this;
- }
-
- /**
- * Configures the timeout, in milliseconds, that the driver will attempt to
- * located and attach to a newly opened instance of Internet Explorer. The
- * default is zero, which indicates waiting indefinitely.
- *
- * @param {number} timeout How long to wait for IE.
- * @return {!Options} A self reference.
- */
- browserAttachTimeout(timeout) {
- this.options_[Key.BROWSER_ATTACH_TIMEOUT] = Math.max(timeout, 0);
- return this;
- }
-
- /**
- * Configures whether to launch Internet Explorer using the CreateProcess API.
- * If this option is not specified, IE is launched using IELaunchURL, if
- * available. For IE 8 and above, this option requires the TabProcGrowth
- * registry value to be set to 0.
- *
- * @param {boolean} force Whether to use the CreateProcess API.
- * @return {!Options} A self reference.
- */
- forceCreateProcessApi(force) {
- this.options_[Key.FORCE_CREATE_PROCESS] = !!force;
- return this;
- }
-
- /**
- * Specifies command-line switches to use when launching Internet Explorer.
- * This is only valid when used with {@link #forceCreateProcessApi}.
- *
- * @param {...(string|!Array.<string>)} var_args The arguments to add.
- * @return {!Options} A self reference.
- */
- addArguments(var_args) {
- var args = this.options_[Key.BROWSER_COMMAND_LINE_SWITCHES] || [];
- args = args.concat.apply(args, arguments);
- this.options_[Key.BROWSER_COMMAND_LINE_SWITCHES] = args;
- return this;
- }
-
- /**
- * Configures whether proxies should be configured on a per-process basis. If
- * not set, setting a {@linkplain #setProxy proxy} will configure the system
- * proxy. The default behavior is to use the system proxy.
- *
- * @param {boolean} enable Whether to enable per-process proxy settings.
- * @return {!Options} A self reference.
- */
- usePerProcessProxy(enable) {
- this.options_[Key.USE_PER_PROCESS_PROXY] = !!enable;
- return this;
- }
-
- /**
- * Configures whether to clear the cache, cookies, history, and saved form data
- * before starting the browser. _Using this capability will clear session data
- * for all running instances of Internet Explorer, including those started
- * manually._
- *
- * @param {boolean} cleanSession Whether to clear all session data on startup.
- * @return {!Options} A self reference.
- */
- ensureCleanSession(cleanSession) {
- this.options_[Key.ENSURE_CLEAN_SESSION] = !!cleanSession;
- return this;
- }
-
- /**
- * Sets the path to the log file the driver should log to.
- * @param {string} file The log file path.
- * @return {!Options} A self reference.
- */
- setLogFile(file) {
- this.options_[Key.LOG_FILE] = file;
- return this;
- }
-
- /**
- * Sets the IEDriverServer's logging {@linkplain Level level}.
- * @param {Level} level The logging level.
- * @return {!Options} A self reference.
- */
- setLogLevel(level) {
- this.options_[Key.LOG_LEVEL] = level;
- return this;
- }
-
- /**
- * Sets the IP address of the driver's host adapter.
- * @param {string} host The IP address to use.
- * @return {!Options} A self reference.
- */
- setHost(host) {
- this.options_[Key.HOST] = host;
- return this;
- }
-
- /**
- * Sets the path of the temporary data directory to use.
- * @param {string} path The log file path.
- * @return {!Options} A self reference.
- */
- setExtractPath(path) {
- this.options_[Key.EXTRACT_PATH] = path;
- return this;
- }
-
- /**
- * Sets whether the driver should start in silent mode.
- * @param {boolean} silent Whether to run in silent mode.
- * @return {!Options} A self reference.
- */
- silent(silent) {
- this.options_[Key.SILENT] = silent;
- return this;
- }
-
- /**
- * Sets the proxy settings for the new session.
- * @param {capabilities.ProxyConfig} proxy The proxy configuration to use.
- * @return {!Options} A self reference.
- */
- setProxy(proxy) {
- this.proxy_ = proxy;
- return this;
- }
-
- /**
- * Converts this options instance to a {@link capabilities.Capabilities}
- * object.
- * @param {capabilities.Capabilities=} opt_capabilities The capabilities to
- * merge these options into, if any.
- * @return {!capabilities.Capabilities} The capabilities.
- */
- toCapabilities(opt_capabilities) {
- var caps = opt_capabilities || capabilities.Capabilities.ie();
- if (this.proxy_) {
- caps.set(capabilities.Capability.PROXY, this.proxy_);
- }
- Object.keys(this.options_).forEach(function(key) {
- caps.set(key, this.options_[key]);
- }, this);
- return caps;
- }
-}
-
-
-function createServiceFromCapabilities(capabilities) {
- if (process.platform !== 'win32') {
- throw Error(
- 'The IEDriver may only be used on Windows, but you appear to be on ' +
- process.platform + '. Did you mean to run against a remote ' +
- 'WebDriver server?');
- }
-
- let exe = io.findInPath(IEDRIVER_EXE, true);
- if (!exe || !fs.existsSync(exe)) {
- throw Error(
- `${IEDRIVER_EXE} could not be found on the current PATH. Please ` +
- `download the latest version of ${IEDRIVER_EXE} from ` +
- 'http://selenium-release.storage.googleapis.com/index.html and ' +
- 'ensure it can be found on your system PATH.');
- }
-
- var args = [];
- if (capabilities.has(Key.HOST)) {
- args.push('--host=' + capabilities.get(Key.HOST));
- }
- if (capabilities.has(Key.LOG_FILE)) {
- args.push('--log-file=' + capabilities.get(Key.LOG_FILE));
- }
- if (capabilities.has(Key.LOG_LEVEL)) {
- args.push('--log-level=' + capabilities.get(Key.LOG_LEVEL));
- }
- if (capabilities.has(Key.EXTRACT_PATH)) {
- args.push('--extract-path=' + capabilities.get(Key.EXTRACT_PATH));
- }
- if (capabilities.get(Key.SILENT)) {
- args.push('--silent');
- }
-
- var port = portprober.findFreePort();
- return new remote.DriverService(exe, {
- loopback: true,
- port: port,
- args: port.then(function(port) {
- return args.concat('--port=' + port);
- }),
- stdio: 'ignore'
- });
-}
-
-
-/**
- * A WebDriver client for Microsoft's Internet Explorer.
- */
-class Driver extends webdriver.WebDriver {
- /**
- * Creates a new session for Microsoft's Internet Explorer.
- *
- * @param {(capabilities.Capabilities|Options)=} opt_config The configuration
- * options.
- * @param {promise.ControlFlow=} opt_flow The control flow to use,
- * or {@code null} to use the currently active flow.
- * @return {!Driver} A new driver instance.
- */
- static createSession(opt_config, opt_flow) {
- var caps = opt_config instanceof Options ?
- opt_config.toCapabilities() :
- (opt_config || capabilities.Capabilities.ie());
-
- var service = createServiceFromCapabilities(caps);
- var client = service.start().then(url => new http.HttpClient(url));
- var executor = new http.Executor(client);
-
- return /** @type {!Driver} */(webdriver.WebDriver.createSession(
- executor, caps, opt_flow, this, () => service.kill()));
- }
-
- /**
- * This function is a no-op as file detectors are not supported by this
- * implementation.
- * @override
- */
- setFileDetector() {}
-}
-
-
-// PUBLIC API
-
-
-exports.Driver = Driver;
-exports.Options = Options;
-exports.Level = Level;
diff --git a/node_modules/selenium-webdriver/index.js b/node_modules/selenium-webdriver/index.js
deleted file mode 100644
index a1e208b46..000000000
--- a/node_modules/selenium-webdriver/index.js
+++ /dev/null
@@ -1,691 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview The main user facing module. Exports WebDriver's primary
- * public API and provides convenience assessors to certain sub-modules.
- */
-
-'use strict';
-
-const chrome = require('./chrome');
-const edge = require('./edge');
-const firefox = require('./firefox');
-const _http = require('./http');
-const ie = require('./ie');
-const actions = require('./lib/actions');
-const by = require('./lib/by');
-const capabilities = require('./lib/capabilities');
-const command = require('./lib/command');
-const error = require('./lib/error');
-const events = require('./lib/events');
-const input = require('./lib/input');
-const logging = require('./lib/logging');
-const promise = require('./lib/promise');
-const session = require('./lib/session');
-const until = require('./lib/until');
-const webdriver = require('./lib/webdriver');
-const opera = require('./opera');
-const phantomjs = require('./phantomjs');
-const remote = require('./remote');
-const safari = require('./safari');
-
-const Browser = capabilities.Browser;
-const Capabilities = capabilities.Capabilities;
-const Capability = capabilities.Capability;
-const Session = session.Session;
-const WebDriver = webdriver.WebDriver;
-
-
-
-var seleniumServer;
-
-/**
- * Starts an instance of the Selenium server if not yet running.
- * @param {string} jar Path to the server jar to use.
- * @return {!Promise<string>} A promise for the server's
- * address once started.
- */
-function startSeleniumServer(jar) {
- if (!seleniumServer) {
- seleniumServer = new remote.SeleniumServer(jar);
- }
- return seleniumServer.start();
-}
-
-
-/**
- * {@linkplain webdriver.WebDriver#setFileDetector WebDriver's setFileDetector}
- * method uses a non-standard command to transfer files from the local client
- * to the remote end hosting the browser. Many of the WebDriver sub-types, like
- * the {@link chrome.Driver} and {@link firefox.Driver}, do not support this
- * command. Thus, these classes override the `setFileDetector` to no-op.
- *
- * This function uses a mixin to re-enable `setFileDetector` by calling the
- * original method on the WebDriver prototype directly. This is used only when
- * the builder creates a Chrome or Firefox instance that communicates with a
- * remote end (and thus, support for remote file detectors is unknown).
- *
- * @param {function(new: webdriver.WebDriver, ...?)} ctor
- * @return {function(new: webdriver.WebDriver, ...?)}
- */
-function ensureFileDetectorsAreEnabled(ctor) {
- const mixin = class extends ctor {
- /** @param {input.FileDetector} detector */
- setFileDetector(detector) {
- webdriver.WebDriver.prototype.setFileDetector.call(this, detector);
- }
- };
- return mixin;
-}
-
-
-/**
- * A thenable wrapper around a {@linkplain webdriver.IWebDriver IWebDriver}
- * instance that allows commands to be issued directly instead of having to
- * repeatedly call `then`:
- *
- * let driver = new Builder().build();
- * driver.then(d => d.get(url)); // You can do this...
- * driver.get(url); // ...or this
- *
- * If the driver instance fails to resolve (e.g. the session cannot be created),
- * every issued command will fail.
- *
- * @extends {webdriver.IWebDriver}
- * @extends {promise.CancellableThenable<!webdriver.IWebDriver>}
- * @interface
- */
-class ThenableWebDriver {
- /** @param {...?} args */
- static createSession(...args) {}
-}
-
-
-/**
- * @const {!Map<function(new: WebDriver, !IThenable<!Session>, ...?),
- * function(new: ThenableWebDriver, !IThenable<!Session>, ...?)>}
- */
-const THENABLE_DRIVERS = new Map;
-
-
-/**
- * @param {function(new: WebDriver, !IThenable<!Session>, ...?)} ctor
- * @param {...?} args
- * @return {!ThenableWebDriver}
- */
-function createDriver(ctor, ...args) {
- let thenableWebDriverProxy = THENABLE_DRIVERS.get(ctor);
- if (!thenableWebDriverProxy) {
- /** @implements {ThenableWebDriver} */
- thenableWebDriverProxy = class extends ctor {
- /**
- * @param {!IThenable<!Session>} session
- * @param {...?} rest
- */
- constructor(session, ...rest) {
- super(session, ...rest);
-
- const pd = this.getSession().then(session => {
- return new ctor(session, ...rest);
- });
-
- /**
- * @param {(string|Error)=} opt_reason
- * @override
- */
- this.cancel = function(opt_reason) {
- if (promise.CancellableThenable.isImplementation(pd)) {
- /** @type {!promise.CancellableThenable} */(pd).cancel(opt_reason);
- }
- };
-
- /** @override */
- this.then = pd.then.bind(pd);
-
- /** @override */
- this.catch = pd.then.bind(pd);
- }
- };
- promise.CancellableThenable.addImplementation(thenableWebDriverProxy);
- THENABLE_DRIVERS.set(ctor, thenableWebDriverProxy);
- }
- return thenableWebDriverProxy.createSession(...args);
-}
-
-
-/**
- * Creates new {@link webdriver.WebDriver WebDriver} instances. The environment
- * variables listed below may be used to override a builder's configuration,
- * allowing quick runtime changes.
- *
- * - {@code SELENIUM_BROWSER}: defines the target browser in the form
- * {@code browser[:version][:platform]}.
- *
- * - {@code SELENIUM_REMOTE_URL}: defines the remote URL for all builder
- * instances. This environment variable should be set to a fully qualified
- * URL for a WebDriver server (e.g. http://localhost:4444/wd/hub). This
- * option always takes precedence over {@code SELENIUM_SERVER_JAR}.
- *
- * - {@code SELENIUM_SERVER_JAR}: defines the path to the
- * <a href="http://selenium-release.storage.googleapis.com/index.html">
- * standalone Selenium server</a> jar to use. The server will be started the
- * first time a WebDriver instance and be killed when the process exits.
- *
- * Suppose you had mytest.js that created WebDriver with
- *
- * var driver = new webdriver.Builder()
- * .forBrowser('chrome')
- * .build();
- *
- * This test could be made to use Firefox on the local machine by running with
- * `SELENIUM_BROWSER=firefox node mytest.js`. Rather than change the code to
- * target Google Chrome on a remote machine, you can simply set the
- * `SELENIUM_BROWSER` and `SELENIUM_REMOTE_URL` environment variables:
- *
- * SELENIUM_BROWSER=chrome:36:LINUX \
- * SELENIUM_REMOTE_URL=http://www.example.com:4444/wd/hub \
- * node mytest.js
- *
- * You could also use a local copy of the standalone Selenium server:
- *
- * SELENIUM_BROWSER=chrome:36:LINUX \
- * SELENIUM_SERVER_JAR=/path/to/selenium-server-standalone.jar \
- * node mytest.js
- */
-class Builder {
- constructor() {
- /** @private @const */
- this.log_ = logging.getLogger('webdriver.Builder');
-
- /** @private {promise.ControlFlow} */
- this.flow_ = null;
-
- /** @private {string} */
- this.url_ = '';
-
- /** @private {?string} */
- this.proxy_ = null;
-
- /** @private {!Capabilities} */
- this.capabilities_ = new Capabilities();
-
- /** @private {chrome.Options} */
- this.chromeOptions_ = null;
-
- /** @private {firefox.Options} */
- this.firefoxOptions_ = null;
-
- /** @private {opera.Options} */
- this.operaOptions_ = null;
-
- /** @private {ie.Options} */
- this.ieOptions_ = null;
-
- /** @private {safari.Options} */
- this.safariOptions_ = null;
-
- /** @private {edge.Options} */
- this.edgeOptions_ = null;
-
- /** @private {boolean} */
- this.ignoreEnv_ = false;
-
- /** @private {http.Agent} */
- this.agent_ = null;
- }
-
- /**
- * Configures this builder to ignore any environment variable overrides and to
- * only use the configuration specified through this instance's API.
- *
- * @return {!Builder} A self reference.
- */
- disableEnvironmentOverrides() {
- this.ignoreEnv_ = true;
- return this;
- }
-
- /**
- * Sets the URL of a remote WebDriver server to use. Once a remote URL has
- * been specified, the builder direct all new clients to that server. If this
- * method is never called, the Builder will attempt to create all clients
- * locally.
- *
- * As an alternative to this method, you may also set the
- * `SELENIUM_REMOTE_URL` environment variable.
- *
- * @param {string} url The URL of a remote server to use.
- * @return {!Builder} A self reference.
- */
- usingServer(url) {
- this.url_ = url;
- return this;
- }
-
- /**
- * @return {string} The URL of the WebDriver server this instance is
- * configured to use.
- */
- getServerUrl() {
- return this.url_;
- }
-
- /**
- * Sets the URL of the proxy to use for the WebDriver's HTTP connections.
- * If this method is never called, the Builder will create a connection
- * without a proxy.
- *
- * @param {string} proxy The URL of a proxy to use.
- * @return {!Builder} A self reference.
- */
- usingWebDriverProxy(proxy) {
- this.proxy_ = proxy;
- return this;
- }
-
- /**
- * @return {?string} The URL of the proxy server to use for the WebDriver's
- * HTTP connections, or `null` if not set.
- */
- getWebDriverProxy() {
- return this.proxy_;
- }
-
- /**
- * Sets the http agent to use for each request.
- * If this method is not called, the Builder will use http.globalAgent by default.
- *
- * @param {http.Agent} agent The agent to use for each request.
- * @return {!Builder} A self reference.
- */
- usingHttpAgent(agent) {
- this.agent_ = agent;
- return this;
- }
-
- /**
- * @return {http.Agent} The http agent used for each request
- */
- getHttpAgent() {
- return this.agent_;
- }
-
- /**
- * Sets the desired capabilities when requesting a new session. This will
- * overwrite any previously set capabilities.
- * @param {!(Object|Capabilities)} capabilities The desired capabilities for
- * a new session.
- * @return {!Builder} A self reference.
- */
- withCapabilities(capabilities) {
- this.capabilities_ = new Capabilities(capabilities);
- return this;
- }
-
- /**
- * Returns the base set of capabilities this instance is currently configured
- * to use.
- * @return {!Capabilities} The current capabilities for this builder.
- */
- getCapabilities() {
- return this.capabilities_;
- }
-
- /**
- * Configures the target browser for clients created by this instance.
- * Any calls to {@link #withCapabilities} after this function will
- * overwrite these settings.
- *
- * You may also define the target browser using the {@code SELENIUM_BROWSER}
- * environment variable. If set, this environment variable should be of the
- * form `browser[:[version][:platform]]`.
- *
- * @param {(string|Browser)} name The name of the target browser;
- * common defaults are available on the {@link webdriver.Browser} enum.
- * @param {string=} opt_version A desired version; may be omitted if any
- * version should be used.
- * @param {string=} opt_platform The desired platform; may be omitted if any
- * version may be used.
- * @return {!Builder} A self reference.
- */
- forBrowser(name, opt_version, opt_platform) {
- this.capabilities_.set(Capability.BROWSER_NAME, name);
- this.capabilities_.set(Capability.VERSION, opt_version || null);
- this.capabilities_.set(Capability.PLATFORM, opt_platform || null);
- return this;
- }
-
- /**
- * Sets the proxy configuration for the target browser.
- * Any calls to {@link #withCapabilities} after this function will
- * overwrite these settings.
- *
- * @param {!capabilities.ProxyConfig} config The configuration to use.
- * @return {!Builder} A self reference.
- */
- setProxy(config) {
- this.capabilities_.setProxy(config);
- return this;
- }
-
- /**
- * Sets the logging preferences for the created session. Preferences may be
- * changed by repeated calls, or by calling {@link #withCapabilities}.
- * @param {!(./lib/logging.Preferences|Object<string, string>)} prefs The
- * desired logging preferences.
- * @return {!Builder} A self reference.
- */
- setLoggingPrefs(prefs) {
- this.capabilities_.setLoggingPrefs(prefs);
- return this;
- }
-
- /**
- * Sets whether native events should be used.
- * @param {boolean} enabled Whether to enable native events.
- * @return {!Builder} A self reference.
- */
- setEnableNativeEvents(enabled) {
- this.capabilities_.setEnableNativeEvents(enabled);
- return this;
- }
-
- /**
- * Sets how elements should be scrolled into view for interaction.
- * @param {number} behavior The desired scroll behavior: either 0 to align
- * with the top of the viewport or 1 to align with the bottom.
- * @return {!Builder} A self reference.
- */
- setScrollBehavior(behavior) {
- this.capabilities_.setScrollBehavior(behavior);
- return this;
- }
-
- /**
- * Sets the default action to take with an unexpected alert before returning
- * an error.
- * @param {string} behavior The desired behavior; should be "accept",
- * "dismiss", or "ignore". Defaults to "dismiss".
- * @return {!Builder} A self reference.
- */
- setAlertBehavior(behavior) {
- this.capabilities_.setAlertBehavior(behavior);
- return this;
- }
-
- /**
- * Sets Chrome specific {@linkplain chrome.Options options} for drivers
- * created by this builder. Any logging or proxy settings defined on the given
- * options will take precedence over those set through
- * {@link #setLoggingPrefs} and {@link #setProxy}, respectively.
- *
- * @param {!chrome.Options} options The ChromeDriver options to use.
- * @return {!Builder} A self reference.
- */
- setChromeOptions(options) {
- this.chromeOptions_ = options;
- return this;
- }
-
- /**
- * Sets Firefox specific {@linkplain firefox.Options options} for drivers
- * created by this builder. Any logging or proxy settings defined on the given
- * options will take precedence over those set through
- * {@link #setLoggingPrefs} and {@link #setProxy}, respectively.
- *
- * @param {!firefox.Options} options The FirefoxDriver options to use.
- * @return {!Builder} A self reference.
- */
- setFirefoxOptions(options) {
- this.firefoxOptions_ = options;
- return this;
- }
-
- /**
- * @return {firefox.Options} the Firefox specific options currently configured
- * for this instance.
- */
- getFirefoxOptions() {
- return this.firefoxOptions_;
- }
-
- /**
- * Sets Opera specific {@linkplain opera.Options options} for drivers created
- * by this builder. Any logging or proxy settings defined on the given options
- * will take precedence over those set through {@link #setLoggingPrefs} and
- * {@link #setProxy}, respectively.
- *
- * @param {!opera.Options} options The OperaDriver options to use.
- * @return {!Builder} A self reference.
- */
- setOperaOptions(options) {
- this.operaOptions_ = options;
- return this;
- }
-
- /**
- * Set Internet Explorer specific {@linkplain ie.Options options} for drivers
- * created by this builder. Any proxy settings defined on the given options
- * will take precedence over those set through {@link #setProxy}.
- *
- * @param {!ie.Options} options The IEDriver options to use.
- * @return {!Builder} A self reference.
- */
- setIeOptions(options) {
- this.ieOptions_ = options;
- return this;
- }
-
- /**
- * Set {@linkplain edge.Options options} specific to Microsoft's Edge browser
- * for drivers created by this builder. Any proxy settings defined on the
- * given options will take precedence over those set through
- * {@link #setProxy}.
- *
- * @param {!edge.Options} options The MicrosoftEdgeDriver options to use.
- * @return {!Builder} A self reference.
- */
- setEdgeOptions(options) {
- this.edgeOptions_ = options;
- return this;
- }
-
- /**
- * Sets Safari specific {@linkplain safari.Options options} for drivers
- * created by this builder. Any logging settings defined on the given options
- * will take precedence over those set through {@link #setLoggingPrefs}.
- *
- * @param {!safari.Options} options The Safari options to use.
- * @return {!Builder} A self reference.
- */
- setSafariOptions(options) {
- this.safariOptions_ = options;
- return this;
- }
-
- /**
- * @return {safari.Options} the Safari specific options currently configured
- * for this instance.
- */
- getSafariOptions() {
- return this.safariOptions_;
- }
-
- /**
- * Sets the control flow that created drivers should execute actions in. If
- * the flow is never set, or is set to {@code null}, it will use the active
- * flow at the time {@link #build()} is called.
- * @param {promise.ControlFlow} flow The control flow to use, or
- * {@code null} to
- * @return {!Builder} A self reference.
- */
- setControlFlow(flow) {
- this.flow_ = flow;
- return this;
- }
-
- /**
- * Creates a new WebDriver client based on this builder's current
- * configuration.
- *
- * This method will return a {@linkplain ThenableWebDriver} instance, allowing
- * users to issue commands directly without calling `then()`. The returned
- * thenable wraps a promise that will resolve to a concrete
- * {@linkplain webdriver.WebDriver WebDriver} instance. The promise will be
- * rejected if the remote end fails to create a new session.
- *
- * @return {!ThenableWebDriver} A new WebDriver instance.
- * @throws {Error} If the current configuration is invalid.
- */
- build() {
- // Create a copy for any changes we may need to make based on the current
- // environment.
- var capabilities = new Capabilities(this.capabilities_);
-
- var browser;
- if (!this.ignoreEnv_ && process.env.SELENIUM_BROWSER) {
- this.log_.fine(`SELENIUM_BROWSER=${process.env.SELENIUM_BROWSER}`);
- browser = process.env.SELENIUM_BROWSER.split(/:/, 3);
- capabilities.set(Capability.BROWSER_NAME, browser[0]);
- capabilities.set(Capability.VERSION, browser[1] || null);
- capabilities.set(Capability.PLATFORM, browser[2] || null);
- }
-
- browser = capabilities.get(Capability.BROWSER_NAME);
-
- if (typeof browser !== 'string') {
- throw TypeError(
- `Target browser must be a string, but is <${typeof browser}>;` +
- ' did you forget to call forBrowser()?');
- }
-
- if (browser === 'ie') {
- browser = Browser.INTERNET_EXPLORER;
- }
-
- // Apply browser specific overrides.
- if (browser === Browser.CHROME && this.chromeOptions_) {
- capabilities.merge(this.chromeOptions_.toCapabilities());
-
- } else if (browser === Browser.FIREFOX && this.firefoxOptions_) {
- capabilities.merge(this.firefoxOptions_.toCapabilities());
-
- } else if (browser === Browser.INTERNET_EXPLORER && this.ieOptions_) {
- capabilities.merge(this.ieOptions_.toCapabilities());
-
- } else if (browser === Browser.OPERA && this.operaOptions_) {
- capabilities.merge(this.operaOptions_.toCapabilities());
-
- } else if (browser === Browser.SAFARI && this.safariOptions_) {
- capabilities.merge(this.safariOptions_.toCapabilities());
-
- } else if (browser === Browser.EDGE && this.edgeOptions_) {
- capabilities.merge(this.edgeOptions_.toCapabilities());
- }
-
- // Check for a remote browser.
- let url = this.url_;
- if (!this.ignoreEnv_) {
- if (process.env.SELENIUM_REMOTE_URL) {
- this.log_.fine(
- `SELENIUM_REMOTE_URL=${process.env.SELENIUM_REMOTE_URL}`);
- url = process.env.SELENIUM_REMOTE_URL;
- } else if (process.env.SELENIUM_SERVER_JAR) {
- this.log_.fine(
- `SELENIUM_SERVER_JAR=${process.env.SELENIUM_SERVER_JAR}`);
- url = startSeleniumServer(process.env.SELENIUM_SERVER_JAR);
- }
- }
-
- if (url) {
- this.log_.fine('Creating session on remote server');
- let client = Promise.resolve(url)
- .then(url => new _http.HttpClient(url, this.agent_, this.proxy_));
- let executor = new _http.Executor(client);
-
- if (browser === Browser.CHROME) {
- const driver = ensureFileDetectorsAreEnabled(chrome.Driver);
- return createDriver(
- driver, capabilities, executor, this.flow_);
- }
-
- if (browser === Browser.FIREFOX) {
- const driver = ensureFileDetectorsAreEnabled(firefox.Driver);
- return createDriver(
- driver, capabilities, executor, this.flow_);
- }
- return createDriver(
- WebDriver, executor, capabilities, this.flow_);
- }
-
- // Check for a native browser.
- switch (browser) {
- case Browser.CHROME:
- return createDriver(chrome.Driver, capabilities, null, this.flow_);
-
- case Browser.FIREFOX:
- return createDriver(firefox.Driver, capabilities, null, this.flow_);
-
- case Browser.INTERNET_EXPLORER:
- return createDriver(ie.Driver, capabilities, this.flow_);
-
- case Browser.EDGE:
- return createDriver(edge.Driver, capabilities, null, this.flow_);
-
- case Browser.OPERA:
- return createDriver(opera.Driver, capabilities, null, this.flow_);
-
- case Browser.PHANTOM_JS:
- return createDriver(phantomjs.Driver, capabilities, this.flow_);
-
- case Browser.SAFARI:
- return createDriver(safari.Driver, capabilities, this.flow_);
-
- default:
- throw new Error('Do not know how to build driver: ' + browser
- + '; did you forget to call usingServer(url)?');
- }
- }
-}
-
-
-// PUBLIC API
-
-
-exports.ActionSequence = actions.ActionSequence;
-exports.Browser = capabilities.Browser;
-exports.Builder = Builder;
-exports.Button = input.Button;
-exports.By = by.By;
-exports.Capabilities = capabilities.Capabilities;
-exports.Capability = capabilities.Capability;
-exports.Condition = webdriver.Condition;
-exports.EventEmitter = events.EventEmitter;
-exports.FileDetector = input.FileDetector;
-exports.Key = input.Key;
-exports.Session = session.Session;
-exports.ThenableWebDriver = ThenableWebDriver;
-exports.TouchSequence = actions.TouchSequence;
-exports.WebDriver = webdriver.WebDriver;
-exports.WebElement = webdriver.WebElement;
-exports.WebElementCondition = webdriver.WebElementCondition;
-exports.WebElementPromise = webdriver.WebElementPromise;
-exports.error = error;
-exports.logging = logging;
-exports.promise = promise;
-exports.until = until;
diff --git a/node_modules/selenium-webdriver/io/exec.js b/node_modules/selenium-webdriver/io/exec.js
deleted file mode 100644
index 948749e83..000000000
--- a/node_modules/selenium-webdriver/io/exec.js
+++ /dev/null
@@ -1,153 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const childProcess = require('child_process');
-
-
-/**
- * A hash with configuration options for an executed command.
- *
- * - `args` - Command line arguments.
- * - `env` - Command environment; will inherit from the current process if
- * missing.
- * - `stdio` - IO configuration for the spawned server process. For more
- * information, refer to the documentation of `child_process.spawn`.
- *
- * @typedef {{
- * args: (!Array<string>|undefined),
- * env: (!Object<string, string>|undefined),
- * stdio: (string|!Array<string|number|!stream.Stream|null|undefined>|
- * undefined)
- * }}
- */
-var Options;
-
-
-/**
- * Describes a command's termination conditions.
- */
-class Result {
- /**
- * @param {?number} code The exit code, or {@code null} if the command did not
- * exit normally.
- * @param {?string} signal The signal used to kill the command, or
- * {@code null}.
- */
- constructor(code, signal) {
- /** @type {?number} */
- this.code = code;
-
- /** @type {?string} */
- this.signal = signal;
- }
-
- /** @override */
- toString() {
- return `Result(code=${this.code}, signal=${this.signal})`;
- }
-}
-
-
-const COMMAND_RESULT = /** !WeakMap<!Command, !Promise<!Result>> */new WeakMap;
-const KILL_HOOK = /** !WeakMap<!Command, function(string)> */new WeakMap;
-
-/**
- * Represents a command running in a sub-process.
- */
-class Command {
- /**
- * @param {!Promise<!Result>} result The command result.
- * @param {function(string)} onKill The function to call when {@link #kill()}
- * is called.
- */
- constructor(result, onKill) {
- COMMAND_RESULT.set(this, result);
- KILL_HOOK.set(this, onKill);
- }
-
- /**
- * @return {!Promise<!Result>} A promise for the result of this
- * command.
- */
- result() {
- return /** @type {!Promise<!Result>} */(COMMAND_RESULT.get(this));
- }
-
- /**
- * Sends a signal to the underlying process.
- * @param {string=} opt_signal The signal to send; defaults to `SIGTERM`.
- */
- kill(opt_signal) {
- KILL_HOOK.get(this)(opt_signal || 'SIGTERM');
- }
-}
-
-
-// PUBLIC API
-
-
-/**
- * Spawns a child process. The returned {@link Command} may be used to wait
- * for the process result or to send signals to the process.
- *
- * @param {string} command The executable to spawn.
- * @param {Options=} opt_options The command options.
- * @return {!Command} The launched command.
- */
-module.exports = function exec(command, opt_options) {
- var options = opt_options || {};
-
- var proc = childProcess.spawn(command, options.args || [], {
- env: options.env || process.env,
- stdio: options.stdio || 'ignore'
- });
-
- // This process should not wait on the spawned child, however, we do
- // want to ensure the child is killed when this process exits.
- proc.unref();
- process.once('exit', onProcessExit);
-
- let result = new Promise(resolve => {
- proc.once('exit', (code, signal) => {
- proc = null;
- process.removeListener('exit', onProcessExit);
- resolve(new Result(code, signal));
- });
- });
- return new Command(result, killCommand);
-
- function onProcessExit() {
- killCommand('SIGTERM');
- }
-
- function killCommand(signal) {
- process.removeListener('exit', onProcessExit);
- if (proc) {
- proc.kill(signal);
- proc = null;
- }
- }
-};
-
-// Exported to improve generated API documentation.
-
-module.exports.Command = Command;
-/** @typedef {!Options} */
-module.exports.Options = Options;
-module.exports.Result = Result;
diff --git a/node_modules/selenium-webdriver/io/index.js b/node_modules/selenium-webdriver/io/index.js
deleted file mode 100644
index 17aceac47..000000000
--- a/node_modules/selenium-webdriver/io/index.js
+++ /dev/null
@@ -1,300 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var fs = require('fs'),
- path = require('path'),
- rimraf = require('rimraf'),
- tmp = require('tmp');
-
-
-/**
- * @param {!Function} fn .
- * @return {!Promise<T>} .
- * @template T
- */
-function checkedCall(fn) {
- return new Promise((resolve, reject) => {
- try {
- fn((err, value) => {
- if (err) {
- reject(err);
- } else {
- resolve(value);
- }
- });
- } catch (e) {
- reject(e);
- }
- });
-}
-
-
-
-// PUBLIC API
-
-
-
-/**
- * Recursively removes a directory and all of its contents. This is equivalent
- * to {@code rm -rf} on a POSIX system.
- * @param {string} dirPath Path to the directory to remove.
- * @return {!Promise} A promise to be resolved when the operation has
- * completed.
- */
-exports.rmDir = function(dirPath) {
- return new Promise(function(fulfill, reject) {
- var numAttempts = 0;
- attemptRm();
- function attemptRm() {
- numAttempts += 1;
- rimraf(dirPath, function(err) {
- if (err) {
- if (err.code && err.code === 'ENOTEMPTY' && numAttempts < 2) {
- attemptRm();
- return;
- }
- reject(err);
- } else {
- fulfill();
- }
- });
- }
- });
-};
-
-
-/**
- * Copies one file to another.
- * @param {string} src The source file.
- * @param {string} dst The destination file.
- * @return {!Promise<string>} A promise for the copied file's path.
- */
-exports.copy = function(src, dst) {
- return new Promise(function(fulfill, reject) {
- var rs = fs.createReadStream(src);
- rs.on('error', reject);
- rs.on('end', () => fulfill(dst));
-
- var ws = fs.createWriteStream(dst);
- ws.on('error', reject);
-
- rs.pipe(ws);
- });
-};
-
-
-/**
- * Recursively copies the contents of one directory to another.
- * @param {string} src The source directory to copy.
- * @param {string} dst The directory to copy into.
- * @param {(RegExp|function(string): boolean)=} opt_exclude An exclusion filter
- * as either a regex or predicate function. All files matching this filter
- * will not be copied.
- * @return {!Promise<string>} A promise for the destination
- * directory's path once all files have been copied.
- */
-exports.copyDir = function(src, dst, opt_exclude) {
- var predicate = opt_exclude;
- if (opt_exclude && typeof opt_exclude !== 'function') {
- predicate = function(p) {
- return !opt_exclude.test(p);
- };
- }
-
- // TODO(jleyba): Make this function completely async.
- if (!fs.existsSync(dst)) {
- fs.mkdirSync(dst);
- }
-
- var files = fs.readdirSync(src);
- files = files.map(function(file) {
- return path.join(src, file);
- });
-
- if (predicate) {
- files = files.filter(/** @type {function(string): boolean} */(predicate));
- }
-
- var results = [];
- files.forEach(function(file) {
- var stats = fs.statSync(file);
- var target = path.join(dst, path.basename(file));
-
- if (stats.isDirectory()) {
- if (!fs.existsSync(target)) {
- fs.mkdirSync(target, stats.mode);
- }
- results.push(exports.copyDir(file, target, predicate));
- } else {
- results.push(exports.copy(file, target));
- }
- });
-
- return Promise.all(results).then(() => dst);
-};
-
-
-/**
- * Tests if a file path exists.
- * @param {string} aPath The path to test.
- * @return {!Promise<boolean>} A promise for whether the file exists.
- */
-exports.exists = function(aPath) {
- return new Promise(function(fulfill, reject) {
- let type = typeof aPath;
- if (type !== 'string') {
- reject(TypeError(`expected string path, but got ${type}`));
- } else {
- fs.exists(aPath, fulfill);
- }
- });
-};
-
-
-/**
- * Calls `stat(2)`.
- * @param {string} aPath The path to stat.
- * @return {!Promise<!fs.Stats>} A promise for the file stats.
- */
-exports.stat = function stat(aPath) {
- return checkedCall(callback => fs.stat(aPath, callback));
-};
-
-
-/**
- * Deletes a name from the filesystem and possibly the file it refers to. Has
- * no effect if the file does not exist.
- * @param {string} aPath The path to remove.
- * @return {!Promise} A promise for when the file has been removed.
- */
-exports.unlink = function(aPath) {
- return new Promise(function(fulfill, reject) {
- fs.exists(aPath, function(exists) {
- if (exists) {
- fs.unlink(aPath, function(err) {
- err && reject(err) || fulfill();
- });
- } else {
- fulfill();
- }
- });
- });
-};
-
-
-/**
- * @return {!Promise<string>} A promise for the path to a temporary directory.
- * @see https://www.npmjs.org/package/tmp
- */
-exports.tmpDir = function() {
- return checkedCall(tmp.dir);
-};
-
-
-/**
- * @param {{postfix: string}=} opt_options Temporary file options.
- * @return {!Promise<string>} A promise for the path to a temporary file.
- * @see https://www.npmjs.org/package/tmp
- */
-exports.tmpFile = function(opt_options) {
- return checkedCall(callback => {
- // |tmp.file| checks arguments length to detect options rather than doing a
- // truthy check, so we must only pass options if there are some to pass.
- if (opt_options) {
- tmp.file(opt_options, callback);
- } else {
- tmp.file(callback);
- }
- });
-};
-
-
-/**
- * Searches the {@code PATH} environment variable for the given file.
- * @param {string} file The file to locate on the PATH.
- * @param {boolean=} opt_checkCwd Whether to always start with the search with
- * the current working directory, regardless of whether it is explicitly
- * listed on the PATH.
- * @return {?string} Path to the located file, or {@code null} if it could
- * not be found.
- */
-exports.findInPath = function(file, opt_checkCwd) {
- let dirs = [];
- if (opt_checkCwd) {
- dirs.push(process.cwd());
- }
- dirs.push.apply(dirs, process.env['PATH'].split(path.delimiter));
-
- let foundInDir = dirs.find(dir => {
- let tmp = path.join(dir, file);
- try {
- let stats = fs.statSync(tmp);
- return stats.isFile() && !stats.isDirectory();
- } catch (ex) {
- return false;
- }
- });
-
- return foundInDir ? path.join(foundInDir, file) : null;
-};
-
-
-/**
- * Reads the contents of the given file.
- *
- * @param {string} aPath Path to the file to read.
- * @return {!Promise<!Buffer>} A promise that will resolve with a buffer of the
- * file contents.
- */
-exports.read = function(aPath) {
- return checkedCall(callback => fs.readFile(aPath, callback));
-};
-
-
-/**
- * Writes to a file.
- *
- * @param {string} aPath Path to the file to write to.
- * @param {(string|!Buffer)} data The data to write.
- * @return {!Promise} A promise that will resolve when the operation has
- * completed.
- */
-exports.write = function(aPath, data) {
- return checkedCall(callback => fs.writeFile(aPath, data, callback));
-};
-
-
-/**
- * Creates a directory.
- *
- * @param {string} aPath The directory path.
- * @return {!Promise<string>} A promise that will resolve with the path of the
- * created directory.
- */
-exports.mkdir = function(aPath) {
- return checkedCall(callback => {
- fs.mkdir(aPath, undefined, err => {
- if (err && err.code !== 'EEXIST') {
- callback(err);
- } else {
- callback(null, aPath);
- }
- });
- });
-};
diff --git a/node_modules/selenium-webdriver/lib/README b/node_modules/selenium-webdriver/lib/README
deleted file mode 100644
index c39abbece..000000000
--- a/node_modules/selenium-webdriver/lib/README
+++ /dev/null
@@ -1,5 +0,0 @@
-This directory contains modules internal to selenium-webdriver that are not
-intended for general consumption. They may change at any time.
-
-All files in this directory and the atoms/ subdirectory may only depend on
-built-in JavaScript features and other modules in this directory.
diff --git a/node_modules/selenium-webdriver/lib/actions.js b/node_modules/selenium-webdriver/lib/actions.js
deleted file mode 100644
index 0e34f3783..000000000
--- a/node_modules/selenium-webdriver/lib/actions.js
+++ /dev/null
@@ -1,604 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const command = require('./command');
-const error = require('./error');
-const input = require('./input');
-
-
-/**
- * @param {!IArrayLike} args .
- * @return {!Array} .
- */
-function flatten(args) {
- let result = [];
- for (let i = 0; i < args.length; i++) {
- let element = args[i];
- if (Array.isArray(element)) {
- result.push.apply(result, flatten(element));
- } else {
- result.push(element);
- }
- }
- return result;
-}
-
-
-const MODIFIER_KEYS = new Set([
- input.Key.ALT,
- input.Key.CONTROL,
- input.Key.SHIFT,
- input.Key.COMMAND
-]);
-
-
-/**
- * Checks that a key is a modifier key.
- * @param {!input.Key} key The key to check.
- * @throws {error.InvalidArgumentError} If the key is not a modifier key.
- * @private
- */
-function checkModifierKey(key) {
- if (!MODIFIER_KEYS.has(key)) {
- throw new error.InvalidArgumentError('Not a modifier key');
- }
-}
-
-
-/**
- * Class for defining sequences of complex user interactions. Each sequence
- * will not be executed until {@link #perform} is called.
- *
- * This class should not be instantiated directly. Instead, obtain an instance
- * using {@link ./webdriver.WebDriver#actions() WebDriver.actions()}.
- *
- * Sample usage:
- *
- * driver.actions().
- * keyDown(Key.SHIFT).
- * click(element1).
- * click(element2).
- * dragAndDrop(element3, element4).
- * keyUp(Key.SHIFT).
- * perform();
- *
- */
-class ActionSequence {
- /**
- * @param {!./webdriver.WebDriver} driver The driver that should be used to
- * perform this action sequence.
- */
- constructor(driver) {
- /** @private {!./webdriver.WebDriver} */
- this.driver_ = driver;
-
- /** @private {!Array<{description: string, command: !command.Command}>} */
- this.actions_ = [];
- }
-
- /**
- * Schedules an action to be executed each time {@link #perform} is called on
- * this instance.
- *
- * @param {string} description A description of the command.
- * @param {!command.Command} command The command.
- * @private
- */
- schedule_(description, command) {
- this.actions_.push({
- description: description,
- command: command
- });
- }
-
- /**
- * Executes this action sequence.
- *
- * @return {!./promise.Thenable} A promise that will be resolved once
- * this sequence has completed.
- */
- perform() {
- // Make a protected copy of the scheduled actions. This will protect against
- // users defining additional commands before this sequence is actually
- // executed.
- let actions = this.actions_.concat();
- let driver = this.driver_;
- return driver.controlFlow().execute(function() {
- let results = actions.map(action => {
- return driver.schedule(action.command, action.description);
- });
- return Promise.all(results);
- }, 'ActionSequence.perform');
- }
-
- /**
- * Moves the mouse. The location to move to may be specified in terms of the
- * mouse's current location, an offset relative to the top-left corner of an
- * element, or an element (in which case the middle of the element is used).
- *
- * @param {(!./webdriver.WebElement|{x: number, y: number})} location The
- * location to drag to, as either another WebElement or an offset in
- * pixels.
- * @param {{x: number, y: number}=} opt_offset If the target {@code location}
- * is defined as a {@link ./webdriver.WebElement}, this parameter defines
- * an offset within that element. The offset should be specified in pixels
- * relative to the top-left corner of the element's bounding box. If
- * omitted, the element's center will be used as the target offset.
- * @return {!ActionSequence} A self reference.
- */
- mouseMove(location, opt_offset) {
- let cmd = new command.Command(command.Name.MOVE_TO);
-
- if (typeof location.x === 'number') {
- setOffset(/** @type {{x: number, y: number}} */(location));
- } else {
- cmd.setParameter('element', location.getId());
- if (opt_offset) {
- setOffset(opt_offset);
- }
- }
-
- this.schedule_('mouseMove', cmd);
- return this;
-
- /** @param {{x: number, y: number}} offset The offset to use. */
- function setOffset(offset) {
- cmd.setParameter('xoffset', offset.x || 0);
- cmd.setParameter('yoffset', offset.y || 0);
- }
- }
-
- /**
- * Schedules a mouse action.
- * @param {string} description A simple descriptive label for the scheduled
- * action.
- * @param {!command.Name} commandName The name of the command.
- * @param {(./webdriver.WebElement|input.Button)=} opt_elementOrButton Either
- * the element to interact with or the button to click with.
- * Defaults to {@link input.Button.LEFT} if neither an element nor
- * button is specified.
- * @param {input.Button=} opt_button The button to use. Defaults to
- * {@link input.Button.LEFT}. Ignored if the previous argument is
- * provided as a button.
- * @return {!ActionSequence} A self reference.
- * @private
- */
- scheduleMouseAction_(
- description, commandName, opt_elementOrButton, opt_button) {
- let button;
- if (typeof opt_elementOrButton === 'number') {
- button = opt_elementOrButton;
- } else {
- if (opt_elementOrButton) {
- this.mouseMove(
- /** @type {!./webdriver.WebElement} */ (opt_elementOrButton));
- }
- button = opt_button !== void(0) ? opt_button : input.Button.LEFT;
- }
-
- let cmd = new command.Command(commandName).
- setParameter('button', button);
- this.schedule_(description, cmd);
- return this;
- }
-
- /**
- * Presses a mouse button. The mouse button will not be released until
- * {@link #mouseUp} is called, regardless of whether that call is made in this
- * sequence or another. The behavior for out-of-order events (e.g. mouseDown,
- * click) is undefined.
- *
- * If an element is provided, the mouse will first be moved to the center
- * of that element. This is equivalent to:
- *
- * sequence.mouseMove(element).mouseDown()
- *
- * Warning: this method currently only supports the left mouse button. See
- * [issue 4047](http://code.google.com/p/selenium/issues/detail?id=4047).
- *
- * @param {(./webdriver.WebElement|input.Button)=} opt_elementOrButton Either
- * the element to interact with or the button to click with.
- * Defaults to {@link input.Button.LEFT} if neither an element nor
- * button is specified.
- * @param {input.Button=} opt_button The button to use. Defaults to
- * {@link input.Button.LEFT}. Ignored if a button is provided as the
- * first argument.
- * @return {!ActionSequence} A self reference.
- */
- mouseDown(opt_elementOrButton, opt_button) {
- return this.scheduleMouseAction_('mouseDown',
- command.Name.MOUSE_DOWN, opt_elementOrButton, opt_button);
- }
-
- /**
- * Releases a mouse button. Behavior is undefined for calling this function
- * without a previous call to {@link #mouseDown}.
- *
- * If an element is provided, the mouse will first be moved to the center
- * of that element. This is equivalent to:
- *
- * sequence.mouseMove(element).mouseUp()
- *
- * Warning: this method currently only supports the left mouse button. See
- * [issue 4047](http://code.google.com/p/selenium/issues/detail?id=4047).
- *
- * @param {(./webdriver.WebElement|input.Button)=} opt_elementOrButton Either
- * the element to interact with or the button to click with.
- * Defaults to {@link input.Button.LEFT} if neither an element nor
- * button is specified.
- * @param {input.Button=} opt_button The button to use. Defaults to
- * {@link input.Button.LEFT}. Ignored if a button is provided as the
- * first argument.
- * @return {!ActionSequence} A self reference.
- */
- mouseUp(opt_elementOrButton, opt_button) {
- return this.scheduleMouseAction_('mouseUp',
- command.Name.MOUSE_UP, opt_elementOrButton, opt_button);
- }
-
- /**
- * Convenience function for performing a "drag and drop" manuever. The target
- * element may be moved to the location of another element, or by an offset (in
- * pixels).
- *
- * @param {!./webdriver.WebElement} element The element to drag.
- * @param {(!./webdriver.WebElement|{x: number, y: number})} location The
- * location to drag to, either as another WebElement or an offset in
- * pixels.
- * @return {!ActionSequence} A self reference.
- */
- dragAndDrop(element, location) {
- return this.mouseDown(element).mouseMove(location).mouseUp();
- }
-
- /**
- * Clicks a mouse button.
- *
- * If an element is provided, the mouse will first be moved to the center
- * of that element. This is equivalent to:
- *
- * sequence.mouseMove(element).click()
- *
- * @param {(./webdriver.WebElement|input.Button)=} opt_elementOrButton Either
- * the element to interact with or the button to click with.
- * Defaults to {@link input.Button.LEFT} if neither an element nor
- * button is specified.
- * @param {input.Button=} opt_button The button to use. Defaults to
- * {@link input.Button.LEFT}. Ignored if a button is provided as the
- * first argument.
- * @return {!ActionSequence} A self reference.
- */
- click(opt_elementOrButton, opt_button) {
- return this.scheduleMouseAction_('click',
- command.Name.CLICK, opt_elementOrButton, opt_button);
- }
-
- /**
- * Double-clicks a mouse button.
- *
- * If an element is provided, the mouse will first be moved to the center of
- * that element. This is equivalent to:
- *
- * sequence.mouseMove(element).doubleClick()
- *
- * Warning: this method currently only supports the left mouse button. See
- * [issue 4047](http://code.google.com/p/selenium/issues/detail?id=4047).
- *
- * @param {(./webdriver.WebElement|input.Button)=} opt_elementOrButton Either
- * the element to interact with or the button to click with.
- * Defaults to {@link input.Button.LEFT} if neither an element nor
- * button is specified.
- * @param {input.Button=} opt_button The button to use. Defaults to
- * {@link input.Button.LEFT}. Ignored if a button is provided as the
- * first argument.
- * @return {!ActionSequence} A self reference.
- */
- doubleClick(opt_elementOrButton, opt_button) {
- return this.scheduleMouseAction_('doubleClick',
- command.Name.DOUBLE_CLICK, opt_elementOrButton, opt_button);
- }
-
- /**
- * Schedules a keyboard action.
- *
- * @param {string} description A simple descriptive label for the scheduled
- * action.
- * @param {!Array<(string|!input.Key)>} keys The keys to send.
- * @return {!ActionSequence} A self reference.
- * @private
- */
- scheduleKeyboardAction_(description, keys) {
- let cmd = new command.Command(command.Name.SEND_KEYS_TO_ACTIVE_ELEMENT)
- .setParameter('value', keys);
- this.schedule_(description, cmd);
- return this;
- }
-
- /**
- * Performs a modifier key press. The modifier key is <em>not released</em>
- * until {@link #keyUp} or {@link #sendKeys} is called. The key press will be
- * targeted at the currently focused element.
- *
- * @param {!input.Key} key The modifier key to push. Must be one of
- * {ALT, CONTROL, SHIFT, COMMAND, META}.
- * @return {!ActionSequence} A self reference.
- * @throws {error.InvalidArgumentError} If the key is not a valid modifier
- * key.
- */
- keyDown(key) {
- checkModifierKey(key);
- return this.scheduleKeyboardAction_('keyDown', [key]);
- }
-
- /**
- * Performs a modifier key release. The release is targeted at the currently
- * focused element.
- * @param {!input.Key} key The modifier key to release. Must be one of
- * {ALT, CONTROL, SHIFT, COMMAND, META}.
- * @return {!ActionSequence} A self reference.
- * @throws {error.InvalidArgumentError} If the key is not a valid modifier
- * key.
- */
- keyUp(key) {
- checkModifierKey(key);
- return this.scheduleKeyboardAction_('keyUp', [key]);
- }
-
- /**
- * Simulates typing multiple keys. Each modifier key encountered in the
- * sequence will not be released until it is encountered again. All key events
- * will be targeted at the currently focused element.
- *
- * @param {...(string|!input.Key|!Array<(string|!input.Key)>)} var_args
- * The keys to type.
- * @return {!ActionSequence} A self reference.
- * @throws {Error} If the key is not a valid modifier key.
- */
- sendKeys(var_args) {
- let keys = flatten(arguments);
- return this.scheduleKeyboardAction_('sendKeys', keys);
- }
-}
-
-
-/**
- * Class for defining sequences of user touch interactions. Each sequence
- * will not be executed until {@link #perform} is called.
- *
- * This class should not be instantiated directly. Instead, obtain an instance
- * using {@link ./webdriver.WebDriver#touchActions() WebDriver.touchActions()}.
- *
- * Sample usage:
- *
- * driver.touchActions().
- * tapAndHold({x: 0, y: 0}).
- * move({x: 3, y: 4}).
- * release({x: 10, y: 10}).
- * perform();
- *
- */
-class TouchSequence {
- /**
- * @param {!./webdriver.WebDriver} driver The driver that should be used to
- * perform this action sequence.
- */
- constructor(driver) {
- /** @private {!./webdriver.WebDriver} */
- this.driver_ = driver;
-
- /** @private {!Array<{description: string, command: !command.Command}>} */
- this.actions_ = [];
- }
-
- /**
- * Schedules an action to be executed each time {@link #perform} is called on
- * this instance.
- * @param {string} description A description of the command.
- * @param {!command.Command} command The command.
- * @private
- */
- schedule_(description, command) {
- this.actions_.push({
- description: description,
- command: command
- });
- }
-
- /**
- * Executes this action sequence.
- * @return {!./promise.Thenable} A promise that will be resolved once
- * this sequence has completed.
- */
- perform() {
- // Make a protected copy of the scheduled actions. This will protect against
- // users defining additional commands before this sequence is actually
- // executed.
- let actions = this.actions_.concat();
- let driver = this.driver_;
- return driver.controlFlow().execute(function() {
- let results = actions.map(action => {
- return driver.schedule(action.command, action.description);
- });
- return Promise.all(results);
- }, 'TouchSequence.perform');
- }
-
- /**
- * Taps an element.
- *
- * @param {!./webdriver.WebElement} elem The element to tap.
- * @return {!TouchSequence} A self reference.
- */
- tap(elem) {
- let cmd = new command.Command(command.Name.TOUCH_SINGLE_TAP).
- setParameter('element', elem.getId());
-
- this.schedule_('tap', cmd);
- return this;
- }
-
- /**
- * Double taps an element.
- *
- * @param {!./webdriver.WebElement} elem The element to double tap.
- * @return {!TouchSequence} A self reference.
- */
- doubleTap(elem) {
- let cmd = new command.Command(command.Name.TOUCH_DOUBLE_TAP).
- setParameter('element', elem.getId());
-
- this.schedule_('doubleTap', cmd);
- return this;
- }
-
- /**
- * Long press on an element.
- *
- * @param {!./webdriver.WebElement} elem The element to long press.
- * @return {!TouchSequence} A self reference.
- */
- longPress(elem) {
- let cmd = new command.Command(command.Name.TOUCH_LONG_PRESS).
- setParameter('element', elem.getId());
-
- this.schedule_('longPress', cmd);
- return this;
- }
-
- /**
- * Touch down at the given location.
- *
- * @param {{x: number, y: number}} location The location to touch down at.
- * @return {!TouchSequence} A self reference.
- */
- tapAndHold(location) {
- let cmd = new command.Command(command.Name.TOUCH_DOWN).
- setParameter('x', location.x).
- setParameter('y', location.y);
-
- this.schedule_('tapAndHold', cmd);
- return this;
- }
-
- /**
- * Move a held {@linkplain #tapAndHold touch} to the specified location.
- *
- * @param {{x: number, y: number}} location The location to move to.
- * @return {!TouchSequence} A self reference.
- */
- move(location) {
- let cmd = new command.Command(command.Name.TOUCH_MOVE).
- setParameter('x', location.x).
- setParameter('y', location.y);
-
- this.schedule_('move', cmd);
- return this;
- }
-
- /**
- * Release a held {@linkplain #tapAndHold touch} at the specified location.
- *
- * @param {{x: number, y: number}} location The location to release at.
- * @return {!TouchSequence} A self reference.
- */
- release(location) {
- let cmd = new command.Command(command.Name.TOUCH_UP).
- setParameter('x', location.x).
- setParameter('y', location.y);
-
- this.schedule_('release', cmd);
- return this;
- }
-
- /**
- * Scrolls the touch screen by the given offset.
- *
- * @param {{x: number, y: number}} offset The offset to scroll to.
- * @return {!TouchSequence} A self reference.
- */
- scroll(offset) {
- let cmd = new command.Command(command.Name.TOUCH_SCROLL).
- setParameter('xoffset', offset.x).
- setParameter('yoffset', offset.y);
-
- this.schedule_('scroll', cmd);
- return this;
- }
-
- /**
- * Scrolls the touch screen, starting on `elem` and moving by the specified
- * offset.
- *
- * @param {!./webdriver.WebElement} elem The element where scroll starts.
- * @param {{x: number, y: number}} offset The offset to scroll to.
- * @return {!TouchSequence} A self reference.
- */
- scrollFromElement(elem, offset) {
- let cmd = new command.Command(command.Name.TOUCH_SCROLL).
- setParameter('element', elem.getId()).
- setParameter('xoffset', offset.x).
- setParameter('yoffset', offset.y);
-
- this.schedule_('scrollFromElement', cmd);
- return this;
- }
-
- /**
- * Flick, starting anywhere on the screen, at speed xspeed and yspeed.
- *
- * @param {{xspeed: number, yspeed: number}} speed The speed to flick in each
- direction, in pixels per second.
- * @return {!TouchSequence} A self reference.
- */
- flick(speed) {
- let cmd = new command.Command(command.Name.TOUCH_FLICK).
- setParameter('xspeed', speed.xspeed).
- setParameter('yspeed', speed.yspeed);
-
- this.schedule_('flick', cmd);
- return this;
- }
-
- /**
- * Flick starting at elem and moving by x and y at specified speed.
- *
- * @param {!./webdriver.WebElement} elem The element where flick starts.
- * @param {{x: number, y: number}} offset The offset to flick to.
- * @param {number} speed The speed to flick at in pixels per second.
- * @return {!TouchSequence} A self reference.
- */
- flickElement(elem, offset, speed) {
- let cmd = new command.Command(command.Name.TOUCH_FLICK).
- setParameter('element', elem.getId()).
- setParameter('xoffset', offset.x).
- setParameter('yoffset', offset.y).
- setParameter('speed', speed);
-
- this.schedule_('flickElement', cmd);
- return this;
- }
-}
-
-
-// PUBLIC API
-
-module.exports = {
- ActionSequence: ActionSequence,
- TouchSequence: TouchSequence,
-};
diff --git a/node_modules/selenium-webdriver/lib/atoms/getAttribute.js b/node_modules/selenium-webdriver/lib/atoms/getAttribute.js
deleted file mode 100644
index b7d006bbe..000000000
--- a/node_modules/selenium-webdriver/lib/atoms/getAttribute.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// GENERATED CODE - DO NOT EDIT
-module.exports = function(){return function(){var aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,c,b){if(b.get||b.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[c]=b.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;
-function e(a,c){if(c){for(var b=ba,d=a.split("."),f=0;f<d.length-1;f++){var h=d[f];h in b||(b[h]={});b=b[h]}d=d[d.length-1];f=b[d];h=c(f);h!=f&&null!=h&&aa(b,d,{configurable:!0,writable:!0,value:h})}}
-e("String.prototype.repeat",function(a){return a?a:function(a){var b;if(null==this)throw new TypeError("The 'this' value for String.prototype.repeat must not be null or undefined");b=this+"";if(0>a||1342177279<a)throw new RangeError("Invalid count value");a|=0;for(var d="";a;)if(a&1&&(d+=b),a>>>=1)b+=b;return d}});e("Math.sign",function(a){return a?a:function(a){a=Number(a);return!a||isNaN(a)?a:0<a?1:-1}});var g=this;function l(a){return"string"==typeof a};function m(a,c){this.a=n[a]||p;this.message=c||"";var b=this.a.replace(/((?:^|\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^[\s\xa0]+/g,"")}),d=b.length-5;if(0>d||b.indexOf("Error",d)!=d)b+="Error";this.name=b;b=Error(this.message);b.name=this.name;this.stack=b.stack||""}
-(function(){var a=Error;function c(){}c.prototype=a.prototype;m.b=a.prototype;m.prototype=new c;m.prototype.constructor=m;m.a=function(b,c,f){for(var h=Array(arguments.length-2),k=2;k<arguments.length;k++)h[k-2]=arguments[k];return a.prototype[c].apply(b,h)}})();var p="unknown error",n={15:"element not selectable",11:"element not visible"};n[31]=p;n[30]=p;n[24]="invalid cookie domain";n[29]="invalid element coordinates";n[12]="invalid element state";n[32]="invalid selector";n[51]="invalid selector";
-n[52]="invalid selector";n[17]="javascript error";n[405]="unsupported operation";n[34]="move target out of bounds";n[27]="no such alert";n[7]="no such element";n[8]="no such frame";n[23]="no such window";n[28]="script timeout";n[33]="session not created";n[10]="stale element reference";n[21]="timeout";n[25]="unable to set cookie";n[26]="unexpected alert open";n[13]=p;n[9]="unknown command";m.prototype.toString=function(){return this.name+": "+this.message};var q=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};
-function r(a,c){for(var b=0,d=q(String(a)).split("."),f=q(String(c)).split("."),h=Math.max(d.length,f.length),k=0;!b&&k<h;k++){var S=d[k]||"",ja=f[k]||"",ka=RegExp("(\\d*)(\\D*)","g"),la=RegExp("(\\d*)(\\D*)","g");do{var t=ka.exec(S)||["","",""],u=la.exec(ja)||["","",""];if(0==t[0].length&&0==u[0].length)break;b=v(0==t[1].length?0:parseInt(t[1],10),0==u[1].length?0:parseInt(u[1],10))||v(0==t[2].length,0==u[2].length)||v(t[2],u[2])}while(!b)}return b}function v(a,c){return a<c?-1:a>c?1:0};var w;a:{var x=g.navigator;if(x){var y=x.userAgent;if(y){w=y;break a}}w=""}function z(a){return-1!=w.indexOf(a)};function ca(a,c){for(var b=a.length,d=l(a)?a.split(""):a,f=0;f<b;f++)f in d&&c.call(void 0,d[f],f,a)};function A(){return z("iPhone")&&!z("iPod")&&!z("iPad")};function B(){return z("Opera")||z("OPR")}function C(){return(z("Chrome")||z("CriOS"))&&!B()&&!z("Edge")};var D=B(),E=z("Trident")||z("MSIE"),F=z("Edge"),G=z("Gecko")&&!(-1!=w.toLowerCase().indexOf("webkit")&&!z("Edge"))&&!(z("Trident")||z("MSIE"))&&!z("Edge"),da=-1!=w.toLowerCase().indexOf("webkit")&&!z("Edge");function ea(){var a=w;if(G)return/rv\:([^\);]+)(\)|;)/.exec(a);if(F)return/Edge\/([\d\.]+)/.exec(a);if(E)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(da)return/WebKit\/(\S+)/.exec(a)}function H(){var a=g.document;return a?a.documentMode:void 0}
-var I=function(){if(D&&g.opera){var a;var c=g.opera.version;try{a=c()}catch(b){a=c}return a}a="";(c=ea())&&(a=c?c[1]:"");return E&&(c=H(),null!=c&&c>parseFloat(a))?String(c):a}(),J={},K=g.document,L=K&&E?H()||("CSS1Compat"==K.compatMode?parseInt(I,10):5):void 0;!G&&!E||E&&9<=Number(L)||G&&(J["1.9.1"]||(J["1.9.1"]=0<=r(I,"1.9.1")));E&&(J["9"]||(J["9"]=0<=r(I,"9")));var fa=z("Firefox"),ga=A()||z("iPod"),ha=z("iPad"),M=z("Android")&&!(C()||z("Firefox")||B()||z("Silk")),ia=C(),N=z("Safari")&&!(C()||z("Coast")||B()||z("Edge")||z("Silk")||z("Android"))&&!(A()||z("iPad")||z("iPod"));var ma={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1},na={IMG:" ",BR:"\n"};function oa(a,c,b){if(!(a.nodeName in ma))if(3==a.nodeType)b?c.push(String(a.nodeValue).replace(/(\r\n|\r|\n)/g,"")):c.push(a.nodeValue);else if(a.nodeName in na)c.push(na[a.nodeName]);else for(a=a.firstChild;a;)oa(a,c,b),a=a.nextSibling};function O(a){return(a=a.exec(w))?a[1]:""}var pa=function(){if(fa)return O(/Firefox\/([0-9.]+)/);if(E||F||D)return I;if(ia)return O(/Chrome\/([0-9.]+)/);if(N&&!(A()||z("iPad")||z("iPod")))return O(/Version\/([0-9.]+)/);if(ga||ha){var a=/Version\/(\S+).*Mobile\/(\S+)/.exec(w);if(a)return a[1]+"."+a[2]}else if(M)return(a=O(/Android\s+([0-9.]+)/))?a:O(/Version\/([0-9.]+)/);return""}();var qa;function P(a){ra?qa(a):M?r(sa,a):r(pa,a)}var ra=function(){if(!G)return!1;var a=g.Components;if(!a)return!1;try{if(!a.classes)return!1}catch(f){return!1}var c=a.classes,a=a.interfaces,b=c["@mozilla.org/xpcom/version-comparator;1"].getService(a.nsIVersionComparator),d=c["@mozilla.org/xre/app-info;1"].getService(a.nsIXULAppInfo).version;qa=function(a){b.compare(d,""+a)};return!0}(),Q;if(M){var ta=/Android\s+([0-9\.]+)/.exec(w);Q=ta?ta[1]:"0"}else Q="0";
-var sa=Q,ua=E&&!(8<=Number(L)),va=E&&!(9<=Number(L));M&&P(2.3);M&&P(4);N&&P(6);function R(a,c){c=c.toLowerCase();if("style"==c)return wa(a.style.cssText);if(ua&&"value"==c&&T(a,"INPUT"))return a.value;if(va&&!0===a[c])return String(a.getAttribute(c));var b=a.getAttributeNode(c);return b&&b.specified?b.value:null}var xa=/[;]+(?=(?:(?:[^"]*"){2})*[^"]*$)(?=(?:(?:[^']*'){2})*[^']*$)(?=(?:[^()]*\([^()]*\))*[^()]*$)/;
-function wa(a){var c=[];ca(a.split(xa),function(a){var d=a.indexOf(":");0<d&&(a=[a.slice(0,d),a.slice(d+1)],2==a.length&&c.push(a[0].toLowerCase(),":",a[1],";"))});c=c.join("");return c=";"==c.charAt(c.length-1)?c:c+";"}function U(a,c){var b;ua&&"value"==c&&T(a,"OPTION")&&null===R(a,"value")?(b=[],oa(a,b,!1),b=b.join("")):b=a[c];return b}function T(a,c){return!!a&&1==a.nodeType&&(!c||a.tagName.toUpperCase()==c)}
-function ya(a){return T(a,"OPTION")?!0:T(a,"INPUT")?(a=a.type.toLowerCase(),"checkbox"==a||"radio"==a):!1};var za={"class":"className",readonly:"readOnly"},V="async autofocus autoplay checked compact complete controls declare defaultchecked defaultselected defer disabled draggable ended formnovalidate hidden indeterminate iscontenteditable ismap itemscope loop multiple muted nohref noresize noshade novalidate nowrap open paused pubdate readonly required reversed scoped seamless seeking selected spellcheck truespeed willvalidate".split(" ");function Aa(a,c){var b=null,d=c.toLowerCase();if("style"==d)return(b=a.style)&&!l(b)&&(b=b.cssText),b;if(("selected"==d||"checked"==d)&&ya(a)){if(!ya(a))throw new m(15,"Element is not selectable");var b="selected",f=a.type&&a.type.toLowerCase();if("checkbox"==f||"radio"==f)b="checked";return U(a,b)?"true":null}var h=T(a,"A");if(T(a,"IMG")&&"src"==d||h&&"href"==d)return(b=R(a,d))&&(b=U(a,d)),b;if("spellcheck"==d){b=R(a,d);if(null!==b){if("false"==b.toLowerCase())return"false";if("true"==b.toLowerCase())return"true"}return U(a,
-d)+""}h=za[c]||c;a:if(l(V))d=l(d)&&1==d.length?V.indexOf(d,0):-1;else{for(var k=0;k<V.length;k++)if(k in V&&V[k]===d){d=k;break a}d=-1}if(0<=d)return(b=null!==R(a,c)||U(a,h))?"true":null;try{f=U(a,h)}catch(S){}(d=null==f)||(d=typeof f,d="object"==d&&null!=f||"function"==d);d?b=R(a,c):b=f;return null!=b?b.toString():null}var W=["_"],X=g;W[0]in X||!X.execScript||X.execScript("var "+W[0]);for(var Y;W.length&&(Y=W.shift());){var Z;if(Z=!W.length)Z=void 0!==Aa;Z?X[Y]=Aa:X[Y]?X=X[Y]:X=X[Y]={}};; return this._.apply(null,arguments);}.apply({navigator:typeof window!='undefined'?window.navigator:null,document:typeof window!='undefined'?window.document:null}, arguments);};
diff --git a/node_modules/selenium-webdriver/lib/atoms/is-displayed.js b/node_modules/selenium-webdriver/lib/atoms/is-displayed.js
deleted file mode 100644
index 66690f277..000000000
--- a/node_modules/selenium-webdriver/lib/atoms/is-displayed.js
+++ /dev/null
@@ -1,107 +0,0 @@
-// GENERATED CODE - DO NOT EDIT
-module.exports = function(){return function(){var aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;
-function ca(a,b){if(b){for(var c=ba,d=a.split("."),e=0;e<d.length-1;e++){var f=d[e];f in c||(c[f]={});c=c[f]}d=d[d.length-1];e=c[d];f=b(e);f!=e&&null!=f&&aa(c,d,{configurable:!0,writable:!0,value:f})}}
-ca("String.prototype.repeat",function(a){return a?a:function(a){var c;if(null==this)throw new TypeError("The 'this' value for String.prototype.repeat must not be null or undefined");c=this+"";if(0>a||1342177279<a)throw new RangeError("Invalid count value");a|=0;for(var d="";a;)if(a&1&&(d+=c),a>>>=1)c+=c;return d}});ca("Math.sign",function(a){return a?a:function(a){a=Number(a);return!a||isNaN(a)?a:0<a?1:-1}});var k=this;function l(a){return void 0!==a}
-function da(a,b){var c=a.split("."),d=k;c[0]in d||!d.execScript||d.execScript("var "+c[0]);for(var e;c.length&&(e=c.shift());)!c.length&&l(b)?d[e]=b:d[e]?d=d[e]:d=d[e]={}}
-function ea(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";
-else if("function"==b&&"undefined"==typeof a.call)return"object";return b}function n(a){return"string"==typeof a}function fa(a,b,c){return a.call.apply(a.bind,arguments)}function ga(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}
-function ha(a,b,c){ha=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?fa:ga;return ha.apply(null,arguments)}function ia(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}}
-function q(a,b){function c(){}c.prototype=b.prototype;a.H=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.G=function(a,c,f){for(var g=Array(arguments.length-2),h=2;h<arguments.length;h++)g[h-2]=arguments[h];return b.prototype[c].apply(a,g)}};function ja(a,b){this.a=r[a]||ka;this.message=b||"";var c=this.a.replace(/((?:^|\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^[\s\xa0]+/g,"")}),d=c.length-5;if(0>d||c.indexOf("Error",d)!=d)c+="Error";this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||""}q(ja,Error);var ka="unknown error",r={15:"element not selectable",11:"element not visible"};r[31]=ka;r[30]=ka;r[24]="invalid cookie domain";r[29]="invalid element coordinates";r[12]="invalid element state";r[32]="invalid selector";
-r[51]="invalid selector";r[52]="invalid selector";r[17]="javascript error";r[405]="unsupported operation";r[34]="move target out of bounds";r[27]="no such alert";r[7]="no such element";r[8]="no such frame";r[23]="no such window";r[28]="script timeout";r[33]="session not created";r[10]="stale element reference";r[21]="timeout";r[25]="unable to set cookie";r[26]="unexpected alert open";r[13]=ka;r[9]="unknown command";ja.prototype.toString=function(){return this.name+": "+this.message};var la={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",
-darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",
-ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",
-lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",
-moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",
-seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function ma(a,b){this.width=a;this.height=b}ma.prototype.clone=function(){return new ma(this.width,this.height)};ma.prototype.toString=function(){return"("+this.width+" x "+this.height+")"};ma.prototype.ceil=function(){this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};ma.prototype.floor=function(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};
-ma.prototype.round=function(){this.width=Math.round(this.width);this.height=Math.round(this.height);return this};var na=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};
-function oa(a,b){for(var c=0,d=na(String(a)).split("."),e=na(String(b)).split("."),f=Math.max(d.length,e.length),g=0;!c&&g<f;g++){var h=d[g]||"",p=e[g]||"",w=RegExp("(\\d*)(\\D*)","g"),m=RegExp("(\\d*)(\\D*)","g");do{var u=w.exec(h)||["","",""],y=m.exec(p)||["","",""];if(0==u[0].length&&0==y[0].length)break;c=pa(0==u[1].length?0:parseInt(u[1],10),0==y[1].length?0:parseInt(y[1],10))||pa(0==u[2].length,0==y[2].length)||pa(u[2],y[2])}while(!c)}return c}function pa(a,b){return a<b?-1:a>b?1:0}
-function qa(a){return String(a).replace(/\-([a-z])/g,function(a,c){return c.toUpperCase()})};/*
-
- The MIT License
-
- Copyright (c) 2007 Cybozu Labs, Inc.
- Copyright (c) 2012 Google Inc.
-
- 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.
-*/
-function ra(a,b,c){this.a=a;this.b=b||1;this.f=c||1};function sa(a){this.b=a;this.a=0}function ta(a){a=a.match(ua);for(var b=0;b<a.length;b++)va.test(a[b])&&a.splice(b,1);return new sa(a)}var ua=RegExp("\\$?(?:(?![0-9-\\.])(?:\\*|[\\w-\\.]+):)?(?![0-9-\\.])(?:\\*|[\\w-\\.]+)|\\/\\/|\\.\\.|::|\\d+(?:\\.\\d*)?|\\.\\d+|\"[^\"]*\"|'[^']*'|[!<>]=|\\s+|.","g"),va=/^\s/;function t(a,b){return a.b[a.a+(b||0)]}function v(a){return a.b[a.a++]}function wa(a){return a.b.length<=a.a};var x;a:{var xa=k.navigator;if(xa){var ya=xa.userAgent;if(ya){x=ya;break a}}x=""}function z(a){return-1!=x.indexOf(a)};function A(a,b){this.h=a;this.c=l(b)?b:null;this.b=null;switch(a){case "comment":this.b=8;break;case "text":this.b=3;break;case "processing-instruction":this.b=7;break;case "node":break;default:throw Error("Unexpected argument");}}function za(a){return"comment"==a||"text"==a||"processing-instruction"==a||"node"==a}A.prototype.a=function(a){return null===this.b||this.b==a.nodeType};A.prototype.f=function(){return this.h};
-A.prototype.toString=function(){var a="Kind Test: "+this.h;!this.c||(a+=B(this.c));return a};function Aa(a,b){this.j=a.toLowerCase();var c;c="*"==this.j?"*":"http://www.w3.org/1999/xhtml";this.c=b?b.toLowerCase():c}Aa.prototype.a=function(a){var b=a.nodeType;if(1!=b&&2!=b)return!1;b=l(a.localName)?a.localName:a.nodeName;return"*"!=this.j&&this.j!=b.toLowerCase()?!1:"*"==this.c?!0:this.c==(a.namespaceURI?a.namespaceURI.toLowerCase():"http://www.w3.org/1999/xhtml")};Aa.prototype.f=function(){return this.j};
-Aa.prototype.toString=function(){return"Name Test: "+("http://www.w3.org/1999/xhtml"==this.c?"":this.c+":")+this.j};function Ba(a){switch(a.nodeType){case 1:return ia(Ca,a);case 9:return Ba(a.documentElement);case 11:case 10:case 6:case 12:return Da;default:return a.parentNode?Ba(a.parentNode):Da}}function Da(){return null}function Ca(a,b){if(a.prefix==b)return a.namespaceURI||"http://www.w3.org/1999/xhtml";var c=a.getAttributeNode("xmlns:"+b);return c&&c.specified?c.value||null:a.parentNode&&9!=a.parentNode.nodeType?Ca(a.parentNode,b):null};function Ea(a,b){if(n(a))return n(b)&&1==b.length?a.indexOf(b,0):-1;for(var c=0;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1}function C(a,b){for(var c=a.length,d=n(a)?a.split(""):a,e=0;e<c;e++)e in d&&b.call(void 0,d[e],e,a)}function Fa(a,b){for(var c=a.length,d=[],e=0,f=n(a)?a.split(""):a,g=0;g<c;g++)if(g in f){var h=f[g];b.call(void 0,h,g,a)&&(d[e++]=h)}return d}function Ga(a,b,c){var d=c;C(a,function(c,f){d=b.call(void 0,d,c,f,a)});return d}
-function Ha(a,b){for(var c=a.length,d=n(a)?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a))return!0;return!1}function Ia(a,b){for(var c=a.length,d=n(a)?a.split(""):a,e=0;e<c;e++)if(e in d&&!b.call(void 0,d[e],e,a))return!1;return!0}function Ja(a,b){var c;a:{c=a.length;for(var d=n(a)?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a)){c=e;break a}c=-1}return 0>c?null:n(a)?a.charAt(c):a[c]}function Ka(a){return Array.prototype.concat.apply(Array.prototype,arguments)}
-function La(a,b,c){return 2>=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};function Ma(){return z("iPhone")&&!z("iPod")&&!z("iPad")};var Na="backgroundColor borderTopColor borderRightColor borderBottomColor borderLeftColor color outlineColor".split(" "),Oa=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/,Pa=/^#(?:[0-9a-f]{3}){1,2}$/i,Qa=/^(?:rgba)?\((\d{1,3}),\s?(\d{1,3}),\s?(\d{1,3}),\s?(0|1|0\.\d*)\)$/i,Ra=/^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i;function Sa(){return z("Opera")||z("OPR")}function Ta(){return(z("Chrome")||z("CriOS"))&&!Sa()&&!z("Edge")};function D(a,b){this.x=l(a)?a:0;this.y=l(b)?b:0}D.prototype.clone=function(){return new D(this.x,this.y)};D.prototype.toString=function(){return"("+this.x+", "+this.y+")"};D.prototype.ceil=function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this};D.prototype.floor=function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this};D.prototype.round=function(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this};var Ua=Sa(),E=z("Trident")||z("MSIE"),Va=z("Edge"),Wa=z("Gecko")&&!(-1!=x.toLowerCase().indexOf("webkit")&&!z("Edge"))&&!(z("Trident")||z("MSIE"))&&!z("Edge"),Xa=-1!=x.toLowerCase().indexOf("webkit")&&!z("Edge");function Ya(){var a=x;if(Wa)return/rv\:([^\);]+)(\)|;)/.exec(a);if(Va)return/Edge\/([\d\.]+)/.exec(a);if(E)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(Xa)return/WebKit\/(\S+)/.exec(a)}function Za(){var a=k.document;return a?a.documentMode:void 0}
-var $a=function(){if(Ua&&k.opera){var a;var b=k.opera.version;try{a=b()}catch(c){a=b}return a}a="";(b=Ya())&&(a=b?b[1]:"");return E&&(b=Za(),null!=b&&b>parseFloat(a))?String(b):a}(),ab={};function bb(a){return ab[a]||(ab[a]=0<=oa($a,a))}var cb=k.document,db=cb&&E?Za()||("CSS1Compat"==cb.compatMode?parseInt($a,10):5):void 0;!Wa&&!E||E&&9<=Number(db)||Wa&&bb("1.9.1");E&&bb("9");function eb(a,b,c,d){this.top=a;this.right=b;this.bottom=c;this.left=d}eb.prototype.clone=function(){return new eb(this.top,this.right,this.bottom,this.left)};eb.prototype.toString=function(){return"("+this.top+"t, "+this.right+"r, "+this.bottom+"b, "+this.left+"l)"};eb.prototype.ceil=function(){this.top=Math.ceil(this.top);this.right=Math.ceil(this.right);this.bottom=Math.ceil(this.bottom);this.left=Math.ceil(this.left);return this};
-eb.prototype.floor=function(){this.top=Math.floor(this.top);this.right=Math.floor(this.right);this.bottom=Math.floor(this.bottom);this.left=Math.floor(this.left);return this};eb.prototype.round=function(){this.top=Math.round(this.top);this.right=Math.round(this.right);this.bottom=Math.round(this.bottom);this.left=Math.round(this.left);return this};var fb=z("Firefox"),gb=Ma()||z("iPod"),hb=z("iPad"),ib=z("Android")&&!(Ta()||z("Firefox")||Sa()||z("Silk")),jb=Ta(),kb=z("Safari")&&!(Ta()||z("Coast")||Sa()||z("Edge")||z("Silk")||z("Android"))&&!(Ma()||z("iPad")||z("iPod"));var F=E&&!(9<=Number(db)),lb=E&&!(8<=Number(db));function mb(a,b){if(!a||!b)return!1;if(a.contains&&1==b.nodeType)return a==b||a.contains(b);if("undefined"!=typeof a.compareDocumentPosition)return a==b||!!(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a}
-function nb(a,b){if(a==b)return 0;if(a.compareDocumentPosition)return a.compareDocumentPosition(b)&2?1:-1;if(E&&!(9<=Number(db))){if(9==a.nodeType)return-1;if(9==b.nodeType)return 1}if("sourceIndex"in a||a.parentNode&&"sourceIndex"in a.parentNode){var c=1==a.nodeType,d=1==b.nodeType;if(c&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode,f=b.parentNode;return e==f?ob(a,b):!c&&mb(e,b)?-1*pb(a,b):!d&&mb(f,a)?pb(b,a):(c?a.sourceIndex:e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)}d=G(a);c=d.createRange();
-c.selectNode(a);c.collapse(!0);d=d.createRange();d.selectNode(b);d.collapse(!0);return c.compareBoundaryPoints(k.Range.START_TO_END,d)}function pb(a,b){var c=a.parentNode;if(c==b)return-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return ob(d,a)}function ob(a,b){for(var c=b;c=c.previousSibling;)if(c==a)return-1;return 1}function G(a){return 9==a.nodeType?a:a.ownerDocument||a.document}function qb(a,b){a=a.parentNode;for(var c=0;a;){if(b(a))return a;a=a.parentNode;c++}return null}
-function rb(a){this.a=a||k.document||document};function H(a,b,c,d){this.left=a;this.top=b;this.width=c;this.height=d}H.prototype.clone=function(){return new H(this.left,this.top,this.width,this.height)};H.prototype.toString=function(){return"("+this.left+", "+this.top+" - "+this.width+"w x "+this.height+"h)"};H.prototype.ceil=function(){this.left=Math.ceil(this.left);this.top=Math.ceil(this.top);this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};
-H.prototype.floor=function(){this.left=Math.floor(this.left);this.top=Math.floor(this.top);this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};H.prototype.round=function(){this.left=Math.round(this.left);this.top=Math.round(this.top);this.width=Math.round(this.width);this.height=Math.round(this.height);return this};function sb(a){return(a=a.exec(x))?a[1]:""}var tb=function(){if(fb)return sb(/Firefox\/([0-9.]+)/);if(E||Va||Ua)return $a;if(jb)return sb(/Chrome\/([0-9.]+)/);if(kb&&!(Ma()||z("iPad")||z("iPod")))return sb(/Version\/([0-9.]+)/);if(gb||hb){var a=/Version\/(\S+).*Mobile\/(\S+)/.exec(x);if(a)return a[1]+"."+a[2]}else if(ib)return(a=sb(/Android\s+([0-9.]+)/))?a:sb(/Version\/([0-9.]+)/);return""}();function ub(a,b,c,d){this.a=a;this.nodeName=c;this.nodeValue=d;this.nodeType=2;this.parentNode=this.ownerElement=b}function vb(a,b){var c=lb&&"href"==b.nodeName?a.getAttribute(b.nodeName,2):b.nodeValue;return new ub(b,a,b.nodeName,c)};var wb;function xb(a){yb?wb(a):ib?oa(zb,a):oa(tb,a)}var yb=function(){if(!Wa)return!1;var a=k.Components;if(!a)return!1;try{if(!a.classes)return!1}catch(e){return!1}var b=a.classes,a=a.interfaces,c=b["@mozilla.org/xpcom/version-comparator;1"].getService(a.nsIVersionComparator),d=b["@mozilla.org/xre/app-info;1"].getService(a.nsIXULAppInfo).version;wb=function(a){c.compare(d,""+a)};return!0}(),Ab;if(ib){var Bb=/Android\s+([0-9\.]+)/.exec(x);Ab=Bb?Bb[1]:"0"}else Ab="0";var zb=Ab,Cb=E&&!(9<=Number(db));
-ib&&xb(2.3);ib&&xb(4);kb&&xb(6);function I(a){var b=null,c=a.nodeType;1==c&&(b=a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0==b||null==b?"":b);if("string"!=typeof b)if(F&&"title"==a.nodeName.toLowerCase()&&1==c)b=a.text;else if(9==c||1==c){a=9==c?a.documentElement:a.firstChild;for(var c=0,d=[],b="";a;){do 1!=a.nodeType&&(b+=a.nodeValue),F&&"title"==a.nodeName.toLowerCase()&&(b+=a.text),d[c++]=a;while(a=a.firstChild);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue;return""+b}
-function J(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)return!1}catch(d){return!1}lb&&"class"==b&&(b="className");return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}function Db(a,b,c,d,e){return(F?Eb:Fb).call(null,a,b,n(c)?c:null,n(d)?d:null,e||new K)}
-function Eb(a,b,c,d,e){if(a instanceof Aa||8==a.b||c&&null===a.b){var f=b.all;if(!f)return e;a=Gb(a);if("*"!=a&&(f=b.getElementsByTagName(a),!f))return e;if(c){for(var g=[],h=0;b=f[h++];)J(b,c,d)&&g.push(b);f=g}for(h=0;b=f[h++];)"*"==a&&"!"==b.tagName||L(e,b);return e}Hb(a,b,c,d,e);return e}
-function Fb(a,b,c,d,e){b.getElementsByName&&d&&"name"==c&&!E?(b=b.getElementsByName(d),C(b,function(b){a.a(b)&&L(e,b)})):b.getElementsByClassName&&d&&"class"==c?(b=b.getElementsByClassName(d),C(b,function(b){b.className==d&&a.a(b)&&L(e,b)})):a instanceof A?Hb(a,b,c,d,e):b.getElementsByTagName&&(b=b.getElementsByTagName(a.f()),C(b,function(a){J(a,c,d)&&L(e,a)}));return e}
-function Ib(a,b,c,d,e){var f;if((a instanceof Aa||8==a.b||c&&null===a.b)&&(f=b.childNodes)){var g=Gb(a);if("*"!=g&&(f=Fa(f,function(a){return a.tagName&&a.tagName.toLowerCase()==g}),!f))return e;c&&(f=Fa(f,function(a){return J(a,c,d)}));C(f,function(a){"*"==g&&("!"==a.tagName||"*"==g&&1!=a.nodeType)||L(e,a)});return e}return Jb(a,b,c,d,e)}function Jb(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)J(b,c,d)&&a.a(b)&&L(e,b);return e}
-function Hb(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)J(b,c,d)&&a.a(b)&&L(e,b),Hb(a,b,c,d,e)}function Gb(a){if(a instanceof A){if(8==a.b)return"!";if(null===a.b)return"*"}return a.f()};function M(a,b){return!!a&&1==a.nodeType&&(!b||a.tagName.toUpperCase()==b)};function K(){this.b=this.a=null;this.l=0}function Kb(a){this.node=a;this.a=this.b=null}function Lb(a,b){if(!a.a)return b;if(!b.a)return a;for(var c=a.a,d=b.a,e=null,f,g=0;c&&d;){f=c.node;var h=d.node;f==h||f instanceof ub&&h instanceof ub&&f.a==h.a?(f=c,c=c.a,d=d.a):0<nb(c.node,d.node)?(f=d,d=d.a):(f=c,c=c.a);(f.b=e)?e.a=f:a.a=f;e=f;g++}for(f=c||d;f;)f.b=e,e=e.a=f,g++,f=f.a;a.b=e;a.l=g;return a}K.prototype.unshift=function(a){a=new Kb(a);a.a=this.a;this.b?this.a.b=a:this.a=this.b=a;this.a=a;this.l++};
-function L(a,b){var c=new Kb(b);c.b=a.b;a.a?a.b.a=c:a.a=a.b=c;a.b=c;a.l++}function Mb(a){return(a=a.a)?a.node:null}function Nb(a){return(a=Mb(a))?I(a):""}function N(a,b){return new Ob(a,!!b)}function Ob(a,b){this.f=a;this.b=(this.c=b)?a.b:a.a;this.a=null}function O(a){var b=a.b;if(b){var c=a.a=b;a.b=a.c?b.b:b.a;return c.node}return null};function P(a){this.i=a;this.b=this.g=!1;this.f=null}function B(a){return"\n "+a.toString().split("\n").join("\n ")}function Pb(a,b){a.g=b}function Qb(a,b){a.b=b}function R(a,b){var c=a.a(b);return c instanceof K?+Nb(c):+c}function S(a,b){var c=a.a(b);return c instanceof K?Nb(c):""+c}function Rb(a,b){var c=a.a(b);return c instanceof K?!!c.l:!!c};function Sb(a,b,c){P.call(this,a.i);this.c=a;this.h=b;this.o=c;this.g=b.g||c.g;this.b=b.b||c.b;this.c==Tb&&(c.b||c.g||4==c.i||0==c.i||!b.f?b.b||b.g||4==b.i||0==b.i||!c.f||(this.f={name:c.f.name,s:b}):this.f={name:b.f.name,s:c})}q(Sb,P);
-function Ub(a,b,c,d,e){b=b.a(d);c=c.a(d);var f;if(b instanceof K&&c instanceof K){b=N(b);for(d=O(b);d;d=O(b))for(e=N(c),f=O(e);f;f=O(e))if(a(I(d),I(f)))return!0;return!1}if(b instanceof K||c instanceof K){b instanceof K?(e=b,d=c):(e=c,d=b);f=N(e);for(var g=typeof d,h=O(f);h;h=O(f)){switch(g){case "number":h=+I(h);break;case "boolean":h=!!I(h);break;case "string":h=I(h);break;default:throw Error("Illegal primitive type for comparison.");}if(e==b&&a(h,d)||e==c&&a(d,h))return!0}return!1}return e?"boolean"==
-typeof b||"boolean"==typeof c?a(!!b,!!c):"number"==typeof b||"number"==typeof c?a(+b,+c):a(b,c):a(+b,+c)}Sb.prototype.a=function(a){return this.c.m(this.h,this.o,a)};Sb.prototype.toString=function(){var a="Binary Expression: "+this.c,a=a+B(this.h);return a+=B(this.o)};function Vb(a,b,c,d){this.a=a;this.A=b;this.i=c;this.m=d}Vb.prototype.toString=function(){return this.a};var Wb={};
-function T(a,b,c,d){if(Wb.hasOwnProperty(a))throw Error("Binary operator already created: "+a);a=new Vb(a,b,c,d);return Wb[a.toString()]=a}T("div",6,1,function(a,b,c){return R(a,c)/R(b,c)});T("mod",6,1,function(a,b,c){return R(a,c)%R(b,c)});T("*",6,1,function(a,b,c){return R(a,c)*R(b,c)});T("+",5,1,function(a,b,c){return R(a,c)+R(b,c)});T("-",5,1,function(a,b,c){return R(a,c)-R(b,c)});T("<",4,2,function(a,b,c){return Ub(function(a,b){return a<b},a,b,c)});
-T(">",4,2,function(a,b,c){return Ub(function(a,b){return a>b},a,b,c)});T("<=",4,2,function(a,b,c){return Ub(function(a,b){return a<=b},a,b,c)});T(">=",4,2,function(a,b,c){return Ub(function(a,b){return a>=b},a,b,c)});var Tb=T("=",3,2,function(a,b,c){return Ub(function(a,b){return a==b},a,b,c,!0)});T("!=",3,2,function(a,b,c){return Ub(function(a,b){return a!=b},a,b,c,!0)});T("and",2,2,function(a,b,c){return Rb(a,c)&&Rb(b,c)});T("or",1,2,function(a,b,c){return Rb(a,c)||Rb(b,c)});function Xb(a,b){if(b.a.length&&4!=a.i)throw Error("Primary expression must evaluate to nodeset if filter has predicate(s).");P.call(this,a.i);this.c=a;this.h=b;this.g=a.g;this.b=a.b}q(Xb,P);Xb.prototype.a=function(a){a=this.c.a(a);return Yb(this.h,a)};Xb.prototype.toString=function(){var a;a="Filter:"+B(this.c);return a+=B(this.h)};function Zb(a,b){if(b.length<a.B)throw Error("Function "+a.j+" expects at least"+a.B+" arguments, "+b.length+" given");if(null!==a.v&&b.length>a.v)throw Error("Function "+a.j+" expects at most "+a.v+" arguments, "+b.length+" given");a.C&&C(b,function(b,d){if(4!=b.i)throw Error("Argument "+d+" to function "+a.j+" is not of type Nodeset: "+b);});P.call(this,a.i);this.h=a;this.c=b;Pb(this,a.g||Ha(b,function(a){return a.g}));Qb(this,a.F&&!b.length||a.D&&!!b.length||Ha(b,function(a){return a.b}))}
-q(Zb,P);Zb.prototype.a=function(a){return this.h.m.apply(null,Ka(a,this.c))};Zb.prototype.toString=function(){var a="Function: "+this.h;if(this.c.length)var b=Ga(this.c,function(a,b){return a+B(b)},"Arguments:"),a=a+B(b);return a};function $b(a,b,c,d,e,f,g,h,p){this.j=a;this.i=b;this.g=c;this.F=d;this.D=e;this.m=f;this.B=g;this.v=l(h)?h:g;this.C=!!p}$b.prototype.toString=function(){return this.j};var ac={};
-function U(a,b,c,d,e,f,g,h){if(ac.hasOwnProperty(a))throw Error("Function already created: "+a+".");ac[a]=new $b(a,b,c,d,!1,e,f,g,h)}U("boolean",2,!1,!1,function(a,b){return Rb(b,a)},1);U("ceiling",1,!1,!1,function(a,b){return Math.ceil(R(b,a))},1);U("concat",3,!1,!1,function(a,b){return Ga(La(arguments,1),function(b,d){return b+S(d,a)},"")},2,null);U("contains",2,!1,!1,function(a,b,c){b=S(b,a);a=S(c,a);return-1!=b.indexOf(a)},2);U("count",1,!1,!1,function(a,b){return b.a(a).l},1,1,!0);
-U("false",2,!1,!1,function(){return!1},0);U("floor",1,!1,!1,function(a,b){return Math.floor(R(b,a))},1);U("id",4,!1,!1,function(a,b){function c(a){if(F){var b=e.all[a];if(b){if(b.nodeType&&a==b.id)return b;if(b.length)return Ja(b,function(b){return a==b.id})}return null}return e.getElementById(a)}var d=a.a,e=9==d.nodeType?d:d.ownerDocument,d=S(b,a).split(/\s+/),f=[];C(d,function(a){a=c(a);!a||0<=Ea(f,a)||f.push(a)});f.sort(nb);var g=new K;C(f,function(a){L(g,a)});return g},1);
-U("lang",2,!1,!1,function(){return!1},1);U("last",1,!0,!1,function(a){if(1!=arguments.length)throw Error("Function last expects ()");return a.f},0);U("local-name",3,!1,!0,function(a,b){var c=b?Mb(b.a(a)):a.a;return c?c.localName||c.nodeName.toLowerCase():""},0,1,!0);U("name",3,!1,!0,function(a,b){var c=b?Mb(b.a(a)):a.a;return c?c.nodeName.toLowerCase():""},0,1,!0);U("namespace-uri",3,!0,!1,function(){return""},0,1,!0);
-U("normalize-space",3,!1,!0,function(a,b){return(b?S(b,a):I(a.a)).replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")},0,1);U("not",2,!1,!1,function(a,b){return!Rb(b,a)},1);U("number",1,!1,!0,function(a,b){return b?R(b,a):+I(a.a)},0,1);U("position",1,!0,!1,function(a){return a.b},0);U("round",1,!1,!1,function(a,b){return Math.round(R(b,a))},1);U("starts-with",2,!1,!1,function(a,b,c){b=S(b,a);a=S(c,a);return!b.lastIndexOf(a,0)},2);U("string",3,!1,!0,function(a,b){return b?S(b,a):I(a.a)},0,1);
-U("string-length",1,!1,!0,function(a,b){return(b?S(b,a):I(a.a)).length},0,1);U("substring",3,!1,!1,function(a,b,c,d){c=R(c,a);if(isNaN(c)||Infinity==c||-Infinity==c)return"";d=d?R(d,a):Infinity;if(isNaN(d)||-Infinity===d)return"";c=Math.round(c)-1;var e=Math.max(c,0);a=S(b,a);return Infinity==d?a.substring(e):a.substring(e,c+Math.round(d))},2,3);U("substring-after",3,!1,!1,function(a,b,c){b=S(b,a);a=S(c,a);c=b.indexOf(a);return-1==c?"":b.substring(c+a.length)},2);
-U("substring-before",3,!1,!1,function(a,b,c){b=S(b,a);a=S(c,a);a=b.indexOf(a);return-1==a?"":b.substring(0,a)},2);U("sum",1,!1,!1,function(a,b){for(var c=N(b.a(a)),d=0,e=O(c);e;e=O(c))d+=+I(e);return d},1,1,!0);U("translate",3,!1,!1,function(a,b,c,d){b=S(b,a);c=S(c,a);var e=S(d,a);a={};for(d=0;d<c.length;d++){var f=c.charAt(d);f in a||(a[f]=e.charAt(d))}c="";for(d=0;d<b.length;d++)f=b.charAt(d),c+=f in a?a[f]:f;return c},3);U("true",2,!1,!1,function(){return!0},0);function bc(a){P.call(this,3);this.c=a.substring(1,a.length-1)}q(bc,P);bc.prototype.a=function(){return this.c};bc.prototype.toString=function(){return"Literal: "+this.c};function cc(a){P.call(this,1);this.c=a}q(cc,P);cc.prototype.a=function(){return this.c};cc.prototype.toString=function(){return"Number: "+this.c};function dc(a,b){P.call(this,a.i);this.h=a;this.c=b;this.g=a.g;this.b=a.b;if(1==this.c.length){var c=this.c[0];c.u||c.c!=ec||(c=c.o,"*"!=c.f()&&(this.f={name:c.f(),s:null}))}}q(dc,P);function fc(){P.call(this,4)}q(fc,P);fc.prototype.a=function(a){var b=new K;a=a.a;9==a.nodeType?L(b,a):L(b,a.ownerDocument);return b};fc.prototype.toString=function(){return"Root Helper Expression"};function gc(){P.call(this,4)}q(gc,P);gc.prototype.a=function(a){var b=new K;L(b,a.a);return b};gc.prototype.toString=function(){return"Context Helper Expression"};
-function hc(a){return"/"==a||"//"==a}dc.prototype.a=function(a){var b=this.h.a(a);if(!(b instanceof K))throw Error("Filter expression must evaluate to nodeset.");a=this.c;for(var c=0,d=a.length;c<d&&b.l;c++){var e=a[c],f=N(b,e.c.a),g;if(e.g||e.c!=ic)if(e.g||e.c!=jc)for(g=O(f),b=e.a(new ra(g));g=O(f);)g=e.a(new ra(g)),b=Lb(b,g);else g=O(f),b=e.a(new ra(g));else{for(g=O(f);(b=O(f))&&(!g.contains||g.contains(b))&&b.compareDocumentPosition(g)&8;g=b);b=e.a(new ra(g))}}return b};
-dc.prototype.toString=function(){var a;a="Path Expression:"+B(this.h);if(this.c.length){var b=Ga(this.c,function(a,b){return a+B(b)},"Steps:");a+=B(b)}return a};function kc(a,b){this.a=a;this.b=!!b}
-function Yb(a,b,c){for(c=c||0;c<a.a.length;c++)for(var d=a.a[c],e=N(b),f=b.l,g,h=0;g=O(e);h++){var p=a.b?f-h:h+1;g=d.a(new ra(g,p,f));if("number"==typeof g)p=p==g;else if("string"==typeof g||"boolean"==typeof g)p=!!g;else if(g instanceof K)p=0<g.l;else throw Error("Predicate.evaluate returned an unexpected type.");if(!p){p=e;g=p.f;var w=p.a;if(!w)throw Error("Next must be called at least once before remove.");var m=w.b,w=w.a;m?m.a=w:g.a=w;w?w.b=m:g.b=m;g.l--;p.a=null}}return b}
-kc.prototype.toString=function(){return Ga(this.a,function(a,b){return a+B(b)},"Predicates:")};function lc(a){P.call(this,1);this.c=a;this.g=a.g;this.b=a.b}q(lc,P);lc.prototype.a=function(a){return-R(this.c,a)};lc.prototype.toString=function(){return"Unary Expression: -"+B(this.c)};function mc(a){P.call(this,4);this.c=a;Pb(this,Ha(this.c,function(a){return a.g}));Qb(this,Ha(this.c,function(a){return a.b}))}q(mc,P);mc.prototype.a=function(a){var b=new K;C(this.c,function(c){c=c.a(a);if(!(c instanceof K))throw Error("Path expression must evaluate to NodeSet.");b=Lb(b,c)});return b};mc.prototype.toString=function(){return Ga(this.c,function(a,b){return a+B(b)},"Union Expression:")};function nc(a,b,c,d){P.call(this,4);this.c=a;this.o=b;this.h=c||new kc([]);this.u=!!d;b=this.h;b=0<b.a.length?b.a[0].f:null;a.b&&b&&(a=b.name,a=F?a.toLowerCase():a,this.f={name:a,s:b.s});a:{a=this.h;for(b=0;b<a.a.length;b++)if(c=a.a[b],c.g||1==c.i||0==c.i){a=!0;break a}a=!1}this.g=a}q(nc,P);
-nc.prototype.a=function(a){var b=a.a,c=this.f,d=null,e=null,f=0;c&&(d=c.name,e=c.s?S(c.s,a):null,f=1);if(this.u)if(this.g||this.c!=oc)if(b=N((new nc(pc,new A("node"))).a(a)),c=O(b))for(a=this.m(c,d,e,f);c=O(b);)a=Lb(a,this.m(c,d,e,f));else a=new K;else a=Db(this.o,b,d,e),a=Yb(this.h,a,f);else a=this.m(a.a,d,e,f);return a};nc.prototype.m=function(a,b,c,d){a=this.c.f(this.o,a,b,c);return a=Yb(this.h,a,d)};
-nc.prototype.toString=function(){var a;a="Step:"+B("Operator: "+(this.u?"//":"/"));this.c.j&&(a+=B("Axis: "+this.c));a+=B(this.o);if(this.h.a.length){var b=Ga(this.h.a,function(a,b){return a+B(b)},"Predicates:");a+=B(b)}return a};function qc(a,b,c,d){this.j=a;this.f=b;this.a=c;this.b=d}qc.prototype.toString=function(){return this.j};var rc={};function V(a,b,c,d){if(rc.hasOwnProperty(a))throw Error("Axis already created: "+a);b=new qc(a,b,c,!!d);return rc[a]=b}
-V("ancestor",function(a,b){for(var c=new K,d=b;d=d.parentNode;)a.a(d)&&c.unshift(d);return c},!0);V("ancestor-or-self",function(a,b){var c=new K,d=b;do a.a(d)&&c.unshift(d);while(d=d.parentNode);return c},!0);
-var ec=V("attribute",function(a,b){var c=new K,d=a.f();if("style"==d&&F&&b.style)return L(c,new ub(b.style,b,"style",b.style.cssText)),c;var e=b.attributes;if(e)if(a instanceof A&&null===a.b||"*"==d)for(var d=0,f;f=e[d];d++)F?f.nodeValue&&L(c,vb(b,f)):L(c,f);else(f=e.getNamedItem(d))&&(F?f.nodeValue&&L(c,vb(b,f)):L(c,f));return c},!1),oc=V("child",function(a,b,c,d,e){return(F?Ib:Jb).call(null,a,b,n(c)?c:null,n(d)?d:null,e||new K)},!1,!0);V("descendant",Db,!1,!0);
-var pc=V("descendant-or-self",function(a,b,c,d){var e=new K;J(b,c,d)&&a.a(b)&&L(e,b);return Db(a,b,c,d,e)},!1,!0),ic=V("following",function(a,b,c,d){var e=new K;do for(var f=b;f=f.nextSibling;)J(f,c,d)&&a.a(f)&&L(e,f),e=Db(a,f,c,d,e);while(b=b.parentNode);return e},!1,!0);V("following-sibling",function(a,b){for(var c=new K,d=b;d=d.nextSibling;)a.a(d)&&L(c,d);return c},!1);V("namespace",function(){return new K},!1);
-var sc=V("parent",function(a,b){var c=new K;if(9==b.nodeType)return c;if(2==b.nodeType)return L(c,b.ownerElement),c;var d=b.parentNode;a.a(d)&&L(c,d);return c},!1),jc=V("preceding",function(a,b,c,d){var e=new K,f=[];do f.unshift(b);while(b=b.parentNode);for(var g=1,h=f.length;g<h;g++){var p=[];for(b=f[g];b=b.previousSibling;)p.unshift(b);for(var w=0,m=p.length;w<m;w++)b=p[w],J(b,c,d)&&a.a(b)&&L(e,b),e=Db(a,b,c,d,e)}return e},!0,!0);
-V("preceding-sibling",function(a,b){for(var c=new K,d=b;d=d.previousSibling;)a.a(d)&&c.unshift(d);return c},!0);var tc=V("self",function(a,b){var c=new K;a.a(b)&&L(c,b);return c},!1);function uc(a,b){this.a=a;this.b=b}function vc(a){for(var b,c=[];;){W(a,"Missing right hand side of binary expression.");b=wc(a);var d=v(a.a);if(!d)break;var e=(d=Wb[d]||null)&&d.A;if(!e){a.a.a--;break}for(;c.length&&e<=c[c.length-1].A;)b=new Sb(c.pop(),c.pop(),b);c.push(b,d)}for(;c.length;)b=new Sb(c.pop(),c.pop(),b);return b}function W(a,b){if(wa(a.a))throw Error(b);}function xc(a,b){var c=v(a.a);if(c!=b)throw Error("Bad token, expected: "+b+" got: "+c);}
-function yc(a){a=v(a.a);if(")"!=a)throw Error("Bad token: "+a);}function zc(a){a=v(a.a);if(2>a.length)throw Error("Unclosed literal string");return new bc(a)}
-function Ac(a){var b,c=[],d;if(hc(t(a.a))){b=v(a.a);d=t(a.a);if("/"==b&&(wa(a.a)||"."!=d&&".."!=d&&"@"!=d&&"*"!=d&&!/(?![0-9])[\w]/.test(d)))return new fc;d=new fc;W(a,"Missing next location step.");b=Bc(a,b);c.push(b)}else{a:{b=t(a.a);d=b.charAt(0);switch(d){case "$":throw Error("Variable reference not allowed in HTML XPath");case "(":v(a.a);b=vc(a);W(a,'unclosed "("');xc(a,")");break;case '"':case "'":b=zc(a);break;default:if(isNaN(+b))if(!za(b)&&/(?![0-9])[\w]/.test(d)&&"("==t(a.a,1)){b=v(a.a);
-b=ac[b]||null;v(a.a);for(d=[];")"!=t(a.a);){W(a,"Missing function argument list.");d.push(vc(a));if(","!=t(a.a))break;v(a.a)}W(a,"Unclosed function argument list.");yc(a);b=new Zb(b,d)}else{b=null;break a}else b=new cc(+v(a.a))}"["==t(a.a)&&(d=new kc(Cc(a)),b=new Xb(b,d))}if(b)if(hc(t(a.a)))d=b;else return b;else b=Bc(a,"/"),d=new gc,c.push(b)}for(;hc(t(a.a));)b=v(a.a),W(a,"Missing next location step."),b=Bc(a,b),c.push(b);return new dc(d,c)}
-function Bc(a,b){var c,d,e;if("/"!=b&&"//"!=b)throw Error('Step op should be "/" or "//"');if("."==t(a.a))return d=new nc(tc,new A("node")),v(a.a),d;if(".."==t(a.a))return d=new nc(sc,new A("node")),v(a.a),d;var f;if("@"==t(a.a))f=ec,v(a.a),W(a,"Missing attribute name");else if("::"==t(a.a,1)){if(!/(?![0-9])[\w]/.test(t(a.a).charAt(0)))throw Error("Bad token: "+v(a.a));c=v(a.a);f=rc[c]||null;if(!f)throw Error("No axis with name: "+c);v(a.a);W(a,"Missing node name")}else f=oc;c=t(a.a);if(/(?![0-9])[\w\*]/.test(c.charAt(0)))if("("==
-t(a.a,1)){if(!za(c))throw Error("Invalid node type: "+c);c=v(a.a);if(!za(c))throw Error("Invalid type name: "+c);xc(a,"(");W(a,"Bad nodetype");e=t(a.a).charAt(0);var g=null;if('"'==e||"'"==e)g=zc(a);W(a,"Bad nodetype");yc(a);c=new A(c,g)}else if(c=v(a.a),e=c.indexOf(":"),-1==e)c=new Aa(c);else{var g=c.substring(0,e),h;if("*"==g)h="*";else if(h=a.b(g),!h)throw Error("Namespace prefix not declared: "+g);c=c.substr(e+1);c=new Aa(c,h)}else throw Error("Bad token: "+v(a.a));e=new kc(Cc(a),f.a);return d||
-new nc(f,c,e,"//"==b)}function Cc(a){for(var b=[];"["==t(a.a);){v(a.a);W(a,"Missing predicate expression.");var c=vc(a);b.push(c);W(a,"Unclosed predicate expression.");xc(a,"]")}return b}function wc(a){if("-"==t(a.a))return v(a.a),new lc(wc(a));var b=Ac(a);if("|"!=t(a.a))a=b;else{for(b=[b];"|"==v(a.a);)W(a,"Missing next union location path."),b.push(Ac(a));a.a.a--;a=new mc(b)}return a};function Dc(a,b){if(!a.length)throw Error("Empty XPath expression.");var c=ta(a);if(wa(c))throw Error("Invalid XPath expression.");b?"function"==ea(b)||(b=ha(b.lookupNamespaceURI,b)):b=function(){return null};var d=vc(new uc(c,b));if(!wa(c))throw Error("Bad token: "+v(c));this.evaluate=function(a,b){var c=d.a(new ra(a));return new X(c,b)}}
-function X(a,b){if(!b)if(a instanceof K)b=4;else if("string"==typeof a)b=2;else if("number"==typeof a)b=1;else if("boolean"==typeof a)b=3;else throw Error("Unexpected evaluation result.");if(2!=b&&1!=b&&3!=b&&!(a instanceof K))throw Error("value could not be converted to the specified type");this.resultType=b;var c;switch(b){case 2:this.stringValue=a instanceof K?Nb(a):""+a;break;case 1:this.numberValue=a instanceof K?+Nb(a):+a;break;case 3:this.booleanValue=a instanceof K?0<a.l:!!a;break;case 4:case 5:case 6:case 7:var d=
-N(a);c=[];for(var e=O(d);e;e=O(d))c.push(e instanceof ub?e.a:e);this.snapshotLength=a.l;this.invalidIteratorState=!1;break;case 8:case 9:d=Mb(a);this.singleNodeValue=d instanceof ub?d.a:d;break;default:throw Error("Unknown XPathResult type.");}var f=0;this.iterateNext=function(){if(4!=b&&5!=b)throw Error("iterateNext called with wrong result type");return f>=c.length?null:c[f++]};this.snapshotItem=function(a){if(6!=b&&7!=b)throw Error("snapshotItem called with wrong result type");return a>=c.length||
-0>a?null:c[a]}}X.ANY_TYPE=0;X.NUMBER_TYPE=1;X.STRING_TYPE=2;X.BOOLEAN_TYPE=3;X.UNORDERED_NODE_ITERATOR_TYPE=4;X.ORDERED_NODE_ITERATOR_TYPE=5;X.UNORDERED_NODE_SNAPSHOT_TYPE=6;X.ORDERED_NODE_SNAPSHOT_TYPE=7;X.ANY_UNORDERED_NODE_TYPE=8;X.FIRST_ORDERED_NODE_TYPE=9;function Ec(a){this.lookupNamespaceURI=Ba(a)}
-function Fc(a,b){var c=a||k,d=c.Document&&c.Document.prototype||c.document;if(!d.evaluate||b)c.XPathResult=X,d.evaluate=function(a,b,c,d){return(new Dc(a,c)).evaluate(b,d)},d.createExpression=function(a,b){return new Dc(a,b)},d.createNSResolver=function(a){return new Ec(a)}}da("wgxpath.install",Fc);var Gc=function(){var a={I:"http://www.w3.org/2000/svg"};return function(b){return a[b]||null}}();
-function Hc(a,b){var c=G(a);if(!c.documentElement)return null;(E||ib)&&Fc(c?c.parentWindow||c.defaultView:window);try{var d=c.createNSResolver?c.createNSResolver(c.documentElement):Gc;if(E&&!bb(7))return c.evaluate.call(c,b,a,d,9,null);if(!E||9<=Number(db)){for(var e={},f=c.getElementsByTagName("*"),g=0;g<f.length;++g){var h=f[g],p=h.namespaceURI;if(p&&!e[p]){var w=h.lookupPrefix(p);if(!w)var m=p.match(".*/(\\w+)/?$"),w=m?m[1]:"xhtml";e[p]=w}}var u={},y;for(y in e)u[e[y]]=y;d=function(a){return u[a]||
-null}}try{return c.evaluate(b,a,d,9,null)}catch(Q){if("TypeError"===Q.name)return d=c.createNSResolver?c.createNSResolver(c.documentElement):Gc,c.evaluate(b,a,d,9,null);throw Q;}}catch(Q){if(!Wa||"NS_ERROR_ILLEGAL_VALUE"!=Q.name)throw new ja(32,"Unable to locate an element with the xpath expression "+b+" because of the following error:\n"+Q);}}
-function Ic(a,b){var c=function(){var c=Hc(b,a);return c?c.singleNodeValue||null:b.selectSingleNode?(c=G(b),c.setProperty&&c.setProperty("SelectionLanguage","XPath"),b.selectSingleNode(a)):null}();if(null!==c&&(!c||1!=c.nodeType))throw new ja(32,'The result of the xpath expression "'+a+'" is: '+c+". It should be an element.");return c};var Jc="function"===typeof ShadowRoot;function Kc(a){for(a=a.parentNode;a&&1!=a.nodeType&&9!=a.nodeType&&11!=a.nodeType;)a=a.parentNode;return M(a)?a:null}
-function Y(a,b){var c=qa(b);if("float"==c||"cssFloat"==c||"styleFloat"==c)c=Cb?"styleFloat":"cssFloat";var d;a:{d=c;var e=G(a);if(e.defaultView&&e.defaultView.getComputedStyle&&(e=e.defaultView.getComputedStyle(a,null))){d=e[d]||e.getPropertyValue(d)||"";break a}d=""}d=d||Lc(a,c);if(null===d)d=null;else if(0<=Ea(Na,c)){b:{var f=d.match(Qa);if(f){var c=Number(f[1]),e=Number(f[2]),g=Number(f[3]),f=Number(f[4]);if(0<=c&&255>=c&&0<=e&&255>=e&&0<=g&&255>=g&&0<=f&&1>=f){c=[c,e,g,f];break b}}c=null}if(!c)b:{if(g=
-d.match(Ra))if(c=Number(g[1]),e=Number(g[2]),g=Number(g[3]),0<=c&&255>=c&&0<=e&&255>=e&&0<=g&&255>=g){c=[c,e,g,1];break b}c=null}if(!c)b:{c=d.toLowerCase();e=la[c.toLowerCase()];if(!e&&(e="#"==c.charAt(0)?c:"#"+c,4==e.length&&(e=e.replace(Oa,"#$1$1$2$2$3$3")),!Pa.test(e))){c=null;break b}c=[parseInt(e.substr(1,2),16),parseInt(e.substr(3,2),16),parseInt(e.substr(5,2),16),1]}d=c?"rgba("+c.join(", ")+")":d}return d}
-function Lc(a,b){var c=a.currentStyle||a.style,d=c[b];!l(d)&&"function"==ea(c.getPropertyValue)&&(d=c.getPropertyValue(b));return"inherit"!=d?l(d)?d:null:(c=Kc(a))?Lc(c,b):null}
-function Mc(a,b,c){function d(a){var b=Nc(a);return 0<b.height&&0<b.width?!0:M(a,"PATH")&&(0<b.height||0<b.width)?(a=Y(a,"stroke-width"),!!a&&0<parseInt(a,10)):"hidden"!=Y(a,"overflow")&&Ha(a.childNodes,function(a){return 3==a.nodeType||M(a)&&d(a)})}function e(a){return Oc(a)==Z&&Ia(a.childNodes,function(a){return!M(a)||e(a)||!d(a)})}if(!M(a))throw Error("Argument to isShown must be of type Element");if(M(a,"BODY"))return!0;if(M(a,"OPTION")||M(a,"OPTGROUP"))return a=qb(a,function(a){return M(a,"SELECT")}),
-!!a&&Mc(a,!0,c);var f=Pc(a);if(f)return!!f.w&&0<f.rect.width&&0<f.rect.height&&Mc(f.w,b,c);if(M(a,"INPUT")&&"hidden"==a.type.toLowerCase()||M(a,"NOSCRIPT"))return!1;f=Y(a,"visibility");return"collapse"!=f&&"hidden"!=f&&c(a)&&(b||Qc(a))&&d(a)?!e(a):!1}var Z="hidden";
-function Oc(a){function b(a){function b(a){return a==g?!0:!Y(a,"display").lastIndexOf("inline",0)||"absolute"==c&&"static"==Y(a,"position")?!1:!0}var c=Y(a,"position");if("fixed"==c)return w=!0,a==g?null:g;for(a=Kc(a);a&&!b(a);)a=Kc(a);return a}function c(a){var b=a;if("visible"==p)if(a==g&&h)b=h;else if(a==h)return{x:"visible",y:"visible"};b={x:Y(b,"overflow-x"),y:Y(b,"overflow-y")};a==g&&(b.x="visible"==b.x?"auto":b.x,b.y="visible"==b.y?"auto":b.y);return b}function d(a){if(a==g){var b=(new rb(f)).a;
-a=b.scrollingElement?b.scrollingElement:Xa||"CSS1Compat"!=b.compatMode?b.body||b.documentElement:b.documentElement;b=b.parentWindow||b.defaultView;a=E&&bb("10")&&b.pageYOffset!=a.scrollTop?new D(a.scrollLeft,a.scrollTop):new D(b.pageXOffset||a.scrollLeft,b.pageYOffset||a.scrollTop)}else a=new D(a.scrollLeft,a.scrollTop);return a}var e=Rc(a),f=G(a),g=f.documentElement,h=f.body,p=Y(g,"overflow"),w;for(a=b(a);a;a=b(a)){var m=c(a);if("visible"!=m.x||"visible"!=m.y){var u=Nc(a);if(!u.width||!u.height)return Z;
-var y=e.right<u.left,Q=e.bottom<u.top;if(y&&"hidden"==m.x||Q&&"hidden"==m.y)return Z;if(y&&"visible"!=m.x||Q&&"visible"!=m.y){y=d(a);Q=e.bottom<u.top-y.y;if(e.right<u.left-y.x&&"visible"!=m.x||Q&&"visible"!=m.x)return Z;e=Oc(a);return e==Z?Z:"scroll"}y=e.left>=u.left+u.width;u=e.top>=u.top+u.height;if(y&&"hidden"==m.x||u&&"hidden"==m.y)return Z;if(y&&"visible"!=m.x||u&&"visible"!=m.y){if(w&&(m=d(a),e.left>=g.scrollWidth-m.x||e.right>=g.scrollHeight-m.y))return Z;e=Oc(a);return e==Z?Z:"scroll"}}}return"none"}
-function Nc(a){var b=Pc(a);if(b)return b.rect;if(M(a,"HTML"))return a=G(a),a=((a?a.parentWindow||a.defaultView:window)||window).document,a="CSS1Compat"==a.compatMode?a.documentElement:a.body,a=new ma(a.clientWidth,a.clientHeight),new H(0,0,a.width,a.height);var c;try{c=a.getBoundingClientRect()}catch(d){return new H(0,0,0,0)}b=new H(c.left,c.top,c.right-c.left,c.bottom-c.top);E&&a.ownerDocument.body&&(a=G(a),b.left-=a.documentElement.clientLeft+a.body.clientLeft,b.top-=a.documentElement.clientTop+
-a.body.clientTop);return b}function Pc(a){var b=M(a,"MAP");if(!b&&!M(a,"AREA"))return null;var c=b?a:M(a.parentNode,"MAP")?a.parentNode:null,d=null,e=null;c&&c.name&&(d=Ic('/descendant::*[@usemap = "#'+c.name+'"]',G(c)))&&(e=Nc(d),b||"default"==a.shape.toLowerCase()||(a=Sc(a),b=Math.min(Math.max(a.left,0),e.width),c=Math.min(Math.max(a.top,0),e.height),e=new H(b+e.left,c+e.top,Math.min(a.width,e.width-b),Math.min(a.height,e.height-c))));return{w:d,rect:e||new H(0,0,0,0)}}
-function Sc(a){var b=a.shape.toLowerCase();a=a.coords.split(",");if("rect"==b&&4==a.length){var b=a[0],c=a[1];return new H(b,c,a[2]-b,a[3]-c)}if("circle"==b&&3==a.length)return b=a[2],new H(a[0]-b,a[1]-b,2*b,2*b);if("poly"==b&&2<a.length){for(var b=a[0],c=a[1],d=b,e=c,f=2;f+1<a.length;f+=2)b=Math.min(b,a[f]),d=Math.max(d,a[f]),c=Math.min(c,a[f+1]),e=Math.max(e,a[f+1]);return new H(b,c,d-b,e-c)}return new H(0,0,0,0)}function Rc(a){a=Nc(a);return new eb(a.top,a.left+a.width,a.top+a.height,a.left)}
-function Qc(a){if(Cb){if("relative"==Y(a,"position"))return 1;a=Y(a,"filter");return(a=a.match(/^alpha\(opacity=(\d*)\)/)||a.match(/^progid:DXImageTransform.Microsoft.Alpha\(Opacity=(\d*)\)/))?Number(a[1])/100:1}return Tc(a)}function Tc(a){var b=1,c=Y(a,"opacity");c&&(b=Number(c));(a=Kc(a))&&(b*=Tc(a));return b};da("_",function(a,b){var c;c=Jc?function(b){if("none"==Y(b,"display"))return!1;var e;do{e=b.parentNode;if(b.getDestinationInsertionPoints){var f=b.getDestinationInsertionPoints();0<f.length&&(e=f[f.length-1])}if(e instanceof ShadowRoot){if(e.host.shadowRoot!=e)return!1;e=e.host}else if(9==e.nodeType||11==e.nodeType)e=null}while(a&&1!=a.nodeType);return!e||c(e)}:function(a){if("none"==Y(a,"display"))return!1;a=Kc(a);return!a||c(a)};return Mc(a,!!b,c)});; return this._.apply(null,arguments);}.apply({navigator:typeof window!='undefined'?window.navigator:null,document:typeof window!='undefined'?window.document:null}, arguments);};
diff --git a/node_modules/selenium-webdriver/lib/by.js b/node_modules/selenium-webdriver/lib/by.js
deleted file mode 100644
index fc74b2056..000000000
--- a/node_modules/selenium-webdriver/lib/by.js
+++ /dev/null
@@ -1,285 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-/**
- * @fileoverview Factory methods for the supported locator strategies.
- */
-
-/**
- * Short-hand expressions for the primary element locator strategies.
- * For example the following two statements are equivalent:
- *
- * var e1 = driver.findElement(By.id('foo'));
- * var e2 = driver.findElement({id: 'foo'});
- *
- * Care should be taken when using JavaScript minifiers (such as the
- * Closure compiler), as locator hashes will always be parsed using
- * the un-obfuscated properties listed.
- *
- * @typedef {(
- * {className: string}|
- * {css: string}|
- * {id: string}|
- * {js: string}|
- * {linkText: string}|
- * {name: string}|
- * {partialLinkText: string}|
- * {tagName: string}|
- * {xpath: string})}
- */
-var ByHash;
-
-
-/**
- * Error thrown if an invalid character is encountered while escaping a CSS
- * identifier.
- * @see https://drafts.csswg.org/cssom/#serialize-an-identifier
- */
-class InvalidCharacterError extends Error {
- constructor() {
- super();
- this.name = this.constructor.name;
- }
-}
-
-
-/**
- * Escapes a CSS string.
- * @param {string} css the string to escape.
- * @return {string} the escaped string.
- * @throws {TypeError} if the input value is not a string.
- * @throws {InvalidCharacterError} if the string contains an invalid character.
- * @see https://drafts.csswg.org/cssom/#serialize-an-identifier
- */
-function escapeCss(css) {
- if (typeof css !== 'string') {
- throw new TypeError('input must be a string');
- }
- let ret = '';
- const n = css.length;
- for (let i = 0; i < n; i++) {
- const c = css.charCodeAt(i);
- if (c == 0x0) {
- throw new InvalidCharacterError();
- }
-
- if ((c >= 0x0001 && c <= 0x001F)
- || c == 0x007F
- || (i == 0 && c >= 0x0030 && c <= 0x0039)
- || (i == 1 && c >= 0x0030 && c <= 0x0039
- && css.charCodeAt(0) == 0x002D)) {
- ret += '\\' + c.toString(16) + ' ';
- continue;
- }
-
- if (i == 0 && c == 0x002D && n == 1) {
- ret += '\\' + css.charAt(i);
- continue;
- }
-
- if (c >= 0x0080
- || c == 0x002D // -
- || c == 0x005F // _
- || (c >= 0x0030 && c <= 0x0039) // [0-9]
- || (c >= 0x0041 && c <= 0x005A) // [A-Z]
- || (c >= 0x0061 && c <= 0x007A)) { // [a-z]
- ret += css.charAt(i);
- continue;
- }
-
- ret += '\\' + css.charAt(i);
- }
- return ret;
-}
-
-
-/**
- * Describes a mechanism for locating an element on the page.
- * @final
- */
-class By {
- /**
- * @param {string} using the name of the location strategy to use.
- * @param {string} value the value to search for.
- */
- constructor(using, value) {
- /** @type {string} */
- this.using = using;
-
- /** @type {string} */
- this.value = value;
- }
-
- /**
- * Locates elements that have a specific class name.
- *
- * @param {string} name The class name to search for.
- * @return {!By} The new locator.
- * @see http://www.w3.org/TR/2011/WD-html5-20110525/elements.html#classes
- * @see http://www.w3.org/TR/CSS2/selector.html#class-html
- */
- static className(name) {
- let names = name.split(/\s+/g)
- .filter(s => s.length > 0)
- .map(s => escapeCss(s));
- return By.css('.' + names.join('.'));
- }
-
- /**
- * Locates elements using a CSS selector.
- *
- * @param {string} selector The CSS selector to use.
- * @return {!By} The new locator.
- * @see http://www.w3.org/TR/CSS2/selector.html
- */
- static css(selector) {
- return new By('css selector', selector);
- }
-
- /**
- * Locates elements by the ID attribute. This locator uses the CSS selector
- * `*[id="$ID"]`, _not_ `document.getElementById`.
- *
- * @param {string} id The ID to search for.
- * @return {!By} The new locator.
- */
- static id(id) {
- return By.css('*[id="' + escapeCss(id) + '"]');
- }
-
- /**
- * Locates link elements whose
- * {@linkplain webdriver.WebElement#getText visible text} matches the given
- * string.
- *
- * @param {string} text The link text to search for.
- * @return {!By} The new locator.
- */
- static linkText(text) {
- return new By('link text', text);
- }
-
- /**
- * Locates an elements by evaluating a
- * {@linkplain webdriver.WebDriver#executeScript JavaScript expression}.
- * The result of this expression must be an element or list of elements.
- *
- * @param {!(string|Function)} script The script to execute.
- * @param {...*} var_args The arguments to pass to the script.
- * @return {function(!./webdriver.WebDriver): !./promise.Promise}
- * A new JavaScript-based locator function.
- */
- static js(script, var_args) {
- let args = Array.prototype.slice.call(arguments, 0);
- return function(driver) {
- return driver.executeScript.apply(driver, args);
- };
- }
-
- /**
- * Locates elements whose `name` attribute has the given value.
- *
- * @param {string} name The name attribute to search for.
- * @return {!By} The new locator.
- */
- static name(name) {
- return By.css('*[name="' + escapeCss(name) + '"]');
- }
-
- /**
- * Locates link elements whose
- * {@linkplain webdriver.WebElement#getText visible text} contains the given
- * substring.
- *
- * @param {string} text The substring to check for in a link's visible text.
- * @return {!By} The new locator.
- */
- static partialLinkText(text) {
- return new By('partial link text', text);
- }
-
- /**
- * Locates elements with a given tag name.
- *
- * @param {string} name The tag name to search for.
- * @return {!By} The new locator.
- * @deprecated Use {@link By.css() By.css(tagName)} instead.
- */
- static tagName(name) {
- return By.css(name);
- }
-
- /**
- * Locates elements matching a XPath selector. Care should be taken when
- * using an XPath selector with a {@link webdriver.WebElement} as WebDriver
- * will respect the context in the specified in the selector. For example,
- * given the selector `//div`, WebDriver will search from the document root
- * regardless of whether the locator was used with a WebElement.
- *
- * @param {string} xpath The XPath selector to use.
- * @return {!By} The new locator.
- * @see http://www.w3.org/TR/xpath/
- */
- static xpath(xpath) {
- return new By('xpath', xpath);
- }
-
- /** @override */
- toString() {
- // The static By.name() overrides this.constructor.name. Shame...
- return `By(${this.using}, ${this.value})`;
- }
-}
-
-
-/**
- * Checks if a value is a valid locator.
- * @param {!(By|Function|ByHash)} locator The value to check.
- * @return {!(By|Function)} The valid locator.
- * @throws {TypeError} If the given value does not define a valid locator
- * strategy.
- */
-function check(locator) {
- if (locator instanceof By || typeof locator === 'function') {
- return locator;
- }
-
- if (locator
- && typeof locator === 'object'
- && typeof locator.using === 'string'
- && typeof locator.value === 'string') {
- return new By(locator.using, locator.value);
- }
-
- for (let key in locator) {
- if (locator.hasOwnProperty(key) && By.hasOwnProperty(key)) {
- return By[key](locator[key]);
- }
- }
- throw new TypeError('Invalid locator');
-}
-
-
-
-// PUBLIC API
-
-module.exports = {
- By: By,
- checkedLocator: check,
-};
diff --git a/node_modules/selenium-webdriver/lib/capabilities.js b/node_modules/selenium-webdriver/lib/capabilities.js
deleted file mode 100644
index 65b290f5f..000000000
--- a/node_modules/selenium-webdriver/lib/capabilities.js
+++ /dev/null
@@ -1,450 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-/**
- * @fileoverview Defines types related to describing the capabilities of a
- * WebDriver session.
- */
-
-const Symbols = require('./symbols');
-
-
-/**
- * Recognized browser names.
- * @enum {string}
- */
-const Browser = {
- ANDROID: 'android',
- CHROME: 'chrome',
- EDGE: 'MicrosoftEdge',
- FIREFOX: 'firefox',
- IE: 'internet explorer',
- INTERNET_EXPLORER: 'internet explorer',
- IPAD: 'iPad',
- IPHONE: 'iPhone',
- OPERA: 'opera',
- PHANTOM_JS: 'phantomjs',
- SAFARI: 'safari',
- HTMLUNIT: 'htmlunit'
-};
-
-
-/**
- * Common Capability keys.
- * @enum {string}
- */
-const Capability = {
-
- /**
- * Indicates whether a driver should accept all SSL certs by default. This
- * capability only applies when requesting a new session. To query whether
- * a driver can handle insecure SSL certs, see {@link #SECURE_SSL}.
- */
- ACCEPT_SSL_CERTS: 'acceptSslCerts',
-
-
- /**
- * The browser name. Common browser names are defined in the {@link Browser}
- * enum.
- */
- BROWSER_NAME: 'browserName',
-
- /**
- * Defines how elements should be scrolled into the viewport for interaction.
- * This capability will be set to zero (0) if elements are aligned with the
- * top of the viewport, or one (1) if aligned with the bottom. The default
- * behavior is to align with the top of the viewport.
- */
- ELEMENT_SCROLL_BEHAVIOR: 'elementScrollBehavior',
-
- /**
- * Whether the driver is capable of handling modal alerts (e.g. alert,
- * confirm, prompt). To define how a driver <i>should</i> handle alerts,
- * use {@link #UNEXPECTED_ALERT_BEHAVIOR}.
- */
- HANDLES_ALERTS: 'handlesAlerts',
-
- /**
- * Key for the logging driver logging preferences.
- */
- LOGGING_PREFS: 'loggingPrefs',
-
- /**
- * Whether this session generates native events when simulating user input.
- */
- NATIVE_EVENTS: 'nativeEvents',
-
- /**
- * Describes the platform the browser is running on. Will be one of
- * ANDROID, IOS, LINUX, MAC, UNIX, or WINDOWS. When <i>requesting</i> a
- * session, ANY may be used to indicate no platform preference (this is
- * semantically equivalent to omitting the platform capability).
- */
- PLATFORM: 'platform',
-
- /**
- * Describes the proxy configuration to use for a new WebDriver session.
- */
- PROXY: 'proxy',
-
- /** Whether the driver supports changing the browser's orientation. */
- ROTATABLE: 'rotatable',
-
- /**
- * Whether a driver is only capable of handling secure SSL certs. To request
- * that a driver accept insecure SSL certs by default, use
- * {@link #ACCEPT_SSL_CERTS}.
- */
- SECURE_SSL: 'secureSsl',
-
- /** Whether the driver supports manipulating the app cache. */
- SUPPORTS_APPLICATION_CACHE: 'applicationCacheEnabled',
-
- /** Whether the driver supports locating elements with CSS selectors. */
- SUPPORTS_CSS_SELECTORS: 'cssSelectorsEnabled',
-
- /** Whether the browser supports JavaScript. */
- SUPPORTS_JAVASCRIPT: 'javascriptEnabled',
-
- /** Whether the driver supports controlling the browser's location info. */
- SUPPORTS_LOCATION_CONTEXT: 'locationContextEnabled',
-
- /** Whether the driver supports taking screenshots. */
- TAKES_SCREENSHOT: 'takesScreenshot',
-
- /**
- * Defines how the driver should handle unexpected alerts. The value should
- * be one of "accept", "dismiss", or "ignore".
- */
- UNEXPECTED_ALERT_BEHAVIOR: 'unexpectedAlertBehavior',
-
- /** Defines the browser version. */
- VERSION: 'version'
-};
-
-
-/**
- * Describes how a proxy should be configured for a WebDriver session.
- * @record
- */
-function ProxyConfig() {}
-
-/**
- * The proxy type. Must be one of {"manual", "pac", "system"}.
- * @type {string}
- */
-ProxyConfig.prototype.proxyType;
-
-/**
- * URL for the PAC file to use. Only used if {@link #proxyType} is "pac".
- * @type {(string|undefined)}
- */
-ProxyConfig.prototype.proxyAutoconfigUrl;
-
-/**
- * The proxy host for FTP requests. Only used if {@link #proxyType} is "manual".
- * @type {(string|undefined)}
- */
-ProxyConfig.prototype.ftpProxy;
-
-/**
- * The proxy host for HTTP requests. Only used if {@link #proxyType} is
- * "manual".
- * @type {(string|undefined)}
- */
-ProxyConfig.prototype.httpProxy;
-
-/**
- * The proxy host for HTTPS requests. Only used if {@link #proxyType} is
- * "manual".
- * @type {(string|undefined)}
- */
-ProxyConfig.prototype.sslProxy;
-
-/**
- * A comma delimited list of hosts which should bypass all proxies. Only used if
- * {@link #proxyType} is "manual".
- * @type {(string|undefined)}
- */
-ProxyConfig.prototype.noProxy;
-
-
-/**
- * Converts a generic hash object to a map.
- * @param {!Object<string, ?>} hash The hash object.
- * @return {!Map<string, ?>} The converted map.
- */
-function toMap(hash) {
- let m = new Map;
- for (let key in hash) {
- if (hash.hasOwnProperty(key)) {
- m.set(key, hash[key]);
- }
- }
- return m;
-}
-
-
-/**
- * Describes a set of capabilities for a WebDriver session.
- */
-class Capabilities extends Map {
- /**
- * @param {(Capabilities|Map<string, ?>|Object)=} opt_other Another set of
- * capabilities to initialize this instance from.
- */
- constructor(opt_other) {
- if (opt_other && !(opt_other instanceof Map)) {
- opt_other = toMap(opt_other);
- }
- super(opt_other);
- }
-
- /**
- * @return {!Capabilities} A basic set of capabilities for Android.
- */
- static android() {
- return new Capabilities()
- .set(Capability.BROWSER_NAME, Browser.ANDROID)
- .set(Capability.PLATFORM, 'ANDROID');
- }
-
- /**
- * @return {!Capabilities} A basic set of capabilities for Chrome.
- */
- static chrome() {
- return new Capabilities().set(Capability.BROWSER_NAME, Browser.CHROME);
- }
-
- /**
- * @return {!Capabilities} A basic set of capabilities for Microsoft Edge.
- */
- static edge() {
- return new Capabilities()
- .set(Capability.BROWSER_NAME, Browser.EDGE)
- .set(Capability.PLATFORM, 'WINDOWS');
- }
-
- /**
- * @return {!Capabilities} A basic set of capabilities for Firefox.
- */
- static firefox() {
- return new Capabilities().set(Capability.BROWSER_NAME, Browser.FIREFOX);
- }
-
- /**
- * @return {!Capabilities} A basic set of capabilities for Internet Explorer.
- */
- static ie() {
- return new Capabilities().
- set(Capability.BROWSER_NAME, Browser.INTERNET_EXPLORER).
- set(Capability.PLATFORM, 'WINDOWS');
- }
-
- /**
- * @return {!Capabilities} A basic set of capabilities for iPad.
- */
- static ipad() {
- return new Capabilities().
- set(Capability.BROWSER_NAME, Browser.IPAD).
- set(Capability.PLATFORM, 'MAC');
- }
-
- /**
- * @return {!Capabilities} A basic set of capabilities for iPhone.
- */
- static iphone() {
- return new Capabilities().
- set(Capability.BROWSER_NAME, Browser.IPHONE).
- set(Capability.PLATFORM, 'MAC');
- }
-
- /**
- * @return {!Capabilities} A basic set of capabilities for Opera.
- */
- static opera() {
- return new Capabilities().
- set(Capability.BROWSER_NAME, Browser.OPERA);
- }
-
- /**
- * @return {!Capabilities} A basic set of capabilities for PhantomJS.
- */
- static phantomjs() {
- return new Capabilities().
- set(Capability.BROWSER_NAME, Browser.PHANTOM_JS);
- }
-
- /**
- * @return {!Capabilities} A basic set of capabilities for Safari.
- */
- static safari() {
- return new Capabilities().
- set(Capability.BROWSER_NAME, Browser.SAFARI).
- set(Capability.PLATFORM, 'MAC');
- }
-
- /**
- * @return {!Capabilities} A basic set of capabilities for HTMLUnit.
- */
- static htmlunit() {
- return new Capabilities().
- set(Capability.BROWSER_NAME, Browser.HTMLUNIT);
- }
-
- /**
- * @return {!Capabilities} A basic set of capabilities for HTMLUnit
- * with enabled Javascript.
- */
- static htmlunitwithjs() {
- return new Capabilities().
- set(Capability.BROWSER_NAME, Browser.HTMLUNIT).
- set(Capability.SUPPORTS_JAVASCRIPT, true);
- }
-
- /**
- * @return {!Object<string, ?>} The JSON representation of this instance.
- * Note, the returned object may contain nested promised values.
- * @suppress {checkTypes} Suppress [] access on a struct (state inherited from
- * Map).
- */
- [Symbols.serialize]() {
- return serialize(this);
- }
-
- /**
- * Merges another set of capabilities into this instance.
- * @param {!(Capabilities|Map<String, ?>|Object<string, ?>)} other The other
- * set of capabilities to merge.
- * @return {!Capabilities} A self reference.
- */
- merge(other) {
- if (!other) {
- throw new TypeError('no capabilities provided for merge');
- }
-
- if (!(other instanceof Map)) {
- other = toMap(other);
- }
-
- for (let key of other.keys()) {
- this.set(key, other.get(key));
- }
-
- return this;
- }
-
- /**
- * @param {string} key The capability key.
- * @param {*} value The capability value.
- * @return {!Capabilities} A self reference.
- * @throws {TypeError} If the `key` is not a string.
- * @override
- */
- set(key, value) {
- if (typeof key !== 'string') {
- throw new TypeError('Capability keys must be strings: ' + typeof key);
- }
- super.set(key, value);
- return this;
- }
-
- /**
- * Sets the logging preferences. Preferences may be specified as a
- * {@link ./logging.Preferences} instance, or as a map of log-type to
- * log-level.
- * @param {!(./logging.Preferences|Object<string>)} prefs The logging
- * preferences.
- * @return {!Capabilities} A self reference.
- */
- setLoggingPrefs(prefs) {
- return this.set(Capability.LOGGING_PREFS, prefs);
- }
-
- /**
- * Sets the proxy configuration for this instance.
- * @param {ProxyConfig} proxy The desired proxy configuration.
- * @return {!Capabilities} A self reference.
- */
- setProxy(proxy) {
- return this.set(Capability.PROXY, proxy);
- }
-
- /**
- * Sets whether native events should be used.
- * @param {boolean} enabled Whether to enable native events.
- * @return {!Capabilities} A self reference.
- */
- setEnableNativeEvents(enabled) {
- return this.set(Capability.NATIVE_EVENTS, enabled);
- }
-
- /**
- * Sets how elements should be scrolled into view for interaction.
- * @param {number} behavior The desired scroll behavior: either 0 to align
- * with the top of the viewport or 1 to align with the bottom.
- * @return {!Capabilities} A self reference.
- */
- setScrollBehavior(behavior) {
- return this.set(Capability.ELEMENT_SCROLL_BEHAVIOR, behavior);
- }
-
- /**
- * Sets the default action to take with an unexpected alert before returning
- * an error.
- * @param {string} behavior The desired behavior should be "accept",
- * "dismiss", or "ignore". Defaults to "dismiss".
- * @return {!Capabilities} A self reference.
- */
- setAlertBehavior(behavior) {
- return this.set(Capability.UNEXPECTED_ALERT_BEHAVIOR, behavior);
- }
-}
-
-
-/**
- * Serializes a capabilities object. This is defined as a standalone function
- * so it may be type checked (where Capabilities[Symbols.serialize] has type
- * checking disabled since it is defined with [] access on a struct).
- *
- * @param {!Capabilities} caps The capabilities to serialize.
- * @return {!Object<string, ?>} The JSON representation of this instance.
- * Note, the returned object may contain nested promised values.
- */
-function serialize(caps) {
- let ret = {};
- for (let key of caps.keys()) {
- let cap = caps.get(key);
- if (cap !== undefined && cap !== null) {
- ret[key] = cap;
- }
- }
- return ret;
-}
-
-
-// PUBLIC API
-
-
-module.exports = {
- Browser: Browser,
- Capabilities: Capabilities,
- Capability: Capability,
- ProxyConfig: ProxyConfig
-};
diff --git a/node_modules/selenium-webdriver/lib/command.js b/node_modules/selenium-webdriver/lib/command.js
deleted file mode 100644
index 39db8c451..000000000
--- a/node_modules/selenium-webdriver/lib/command.js
+++ /dev/null
@@ -1,245 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Contains several classes for handling commands.
- */
-
-'use strict';
-
-/**
- * Describes a command to execute.
- * @final
- */
-class Command {
- /** @param {string} name The name of this command. */
- constructor(name) {
- /** @private {string} */
- this.name_ = name;
-
- /** @private {!Object<*>} */
- this.parameters_ = {};
- }
-
- /** @return {string} This command's name. */
- getName() {
- return this.name_;
- }
-
- /**
- * Sets a parameter to send with this command.
- * @param {string} name The parameter name.
- * @param {*} value The parameter value.
- * @return {!Command} A self reference.
- */
- setParameter(name, value) {
- this.parameters_[name] = value;
- return this;
- }
-
- /**
- * Sets the parameters for this command.
- * @param {!Object<*>} parameters The command parameters.
- * @return {!Command} A self reference.
- */
- setParameters(parameters) {
- this.parameters_ = parameters;
- return this;
- }
-
- /**
- * Returns a named command parameter.
- * @param {string} key The parameter key to look up.
- * @return {*} The parameter value, or undefined if it has not been set.
- */
- getParameter(key) {
- return this.parameters_[key];
- }
-
- /**
- * @return {!Object<*>} The parameters to send with this command.
- */
- getParameters() {
- return this.parameters_;
- }
-}
-
-
-/**
- * Enumeration of predefined names command names that all command processors
- * will support.
- * @enum {string}
- */
-// TODO: Delete obsolete command names.
-const Name = {
- GET_SERVER_STATUS: 'getStatus',
-
- NEW_SESSION: 'newSession',
- GET_SESSIONS: 'getSessions',
- DESCRIBE_SESSION: 'getSessionCapabilities',
-
- CLOSE: 'close',
- QUIT: 'quit',
-
- GET_CURRENT_URL: 'getCurrentUrl',
- GET: 'get',
- GO_BACK: 'goBack',
- GO_FORWARD: 'goForward',
- REFRESH: 'refresh',
-
- ADD_COOKIE: 'addCookie',
- GET_COOKIE: 'getCookie',
- GET_ALL_COOKIES: 'getCookies',
- DELETE_COOKIE: 'deleteCookie',
- DELETE_ALL_COOKIES: 'deleteAllCookies',
-
- GET_ACTIVE_ELEMENT: 'getActiveElement',
- FIND_ELEMENT: 'findElement',
- FIND_ELEMENTS: 'findElements',
- FIND_CHILD_ELEMENT: 'findChildElement',
- FIND_CHILD_ELEMENTS: 'findChildElements',
-
- CLEAR_ELEMENT: 'clearElement',
- CLICK_ELEMENT: 'clickElement',
- SEND_KEYS_TO_ELEMENT: 'sendKeysToElement',
- SUBMIT_ELEMENT: 'submitElement',
-
- GET_CURRENT_WINDOW_HANDLE: 'getCurrentWindowHandle',
- GET_WINDOW_HANDLES: 'getWindowHandles',
- GET_WINDOW_POSITION: 'getWindowPosition',
- SET_WINDOW_POSITION: 'setWindowPosition',
- GET_WINDOW_SIZE: 'getWindowSize',
- SET_WINDOW_SIZE: 'setWindowSize',
- MAXIMIZE_WINDOW: 'maximizeWindow',
-
- SWITCH_TO_WINDOW: 'switchToWindow',
- SWITCH_TO_FRAME: 'switchToFrame',
- GET_PAGE_SOURCE: 'getPageSource',
- GET_TITLE: 'getTitle',
-
- EXECUTE_SCRIPT: 'executeScript',
- EXECUTE_ASYNC_SCRIPT: 'executeAsyncScript',
-
- GET_ELEMENT_TEXT: 'getElementText',
- GET_ELEMENT_TAG_NAME: 'getElementTagName',
- IS_ELEMENT_SELECTED: 'isElementSelected',
- IS_ELEMENT_ENABLED: 'isElementEnabled',
- IS_ELEMENT_DISPLAYED: 'isElementDisplayed',
- GET_ELEMENT_LOCATION: 'getElementLocation',
- GET_ELEMENT_LOCATION_IN_VIEW: 'getElementLocationOnceScrolledIntoView',
- GET_ELEMENT_SIZE: 'getElementSize',
- GET_ELEMENT_ATTRIBUTE: 'getElementAttribute',
- GET_ELEMENT_VALUE_OF_CSS_PROPERTY: 'getElementValueOfCssProperty',
- ELEMENT_EQUALS: 'elementEquals',
-
- SCREENSHOT: 'screenshot',
- TAKE_ELEMENT_SCREENSHOT: 'takeElementScreenshot',
- IMPLICITLY_WAIT: 'implicitlyWait',
- SET_SCRIPT_TIMEOUT: 'setScriptTimeout',
-
- GET_TIMEOUT: 'getTimeout',
- SET_TIMEOUT: 'setTimeout',
-
- ACCEPT_ALERT: 'acceptAlert',
- DISMISS_ALERT: 'dismissAlert',
- GET_ALERT_TEXT: 'getAlertText',
- SET_ALERT_TEXT: 'setAlertValue',
- SET_ALERT_CREDENTIALS: 'setAlertCredentials',
-
- EXECUTE_SQL: 'executeSQL',
- GET_LOCATION: 'getLocation',
- SET_LOCATION: 'setLocation',
- GET_APP_CACHE: 'getAppCache',
- GET_APP_CACHE_STATUS: 'getStatus',
- CLEAR_APP_CACHE: 'clearAppCache',
- IS_BROWSER_ONLINE: 'isBrowserOnline',
- SET_BROWSER_ONLINE: 'setBrowserOnline',
-
- GET_LOCAL_STORAGE_ITEM: 'getLocalStorageItem',
- GET_LOCAL_STORAGE_KEYS: 'getLocalStorageKeys',
- SET_LOCAL_STORAGE_ITEM: 'setLocalStorageItem',
- REMOVE_LOCAL_STORAGE_ITEM: 'removeLocalStorageItem',
- CLEAR_LOCAL_STORAGE: 'clearLocalStorage',
- GET_LOCAL_STORAGE_SIZE: 'getLocalStorageSize',
-
- GET_SESSION_STORAGE_ITEM: 'getSessionStorageItem',
- GET_SESSION_STORAGE_KEYS: 'getSessionStorageKey',
- SET_SESSION_STORAGE_ITEM: 'setSessionStorageItem',
- REMOVE_SESSION_STORAGE_ITEM: 'removeSessionStorageItem',
- CLEAR_SESSION_STORAGE: 'clearSessionStorage',
- GET_SESSION_STORAGE_SIZE: 'getSessionStorageSize',
-
- SET_SCREEN_ORIENTATION: 'setScreenOrientation',
- GET_SCREEN_ORIENTATION: 'getScreenOrientation',
-
- // These belong to the Advanced user interactions - an element is
- // optional for these commands.
- CLICK: 'mouseClick',
- DOUBLE_CLICK: 'mouseDoubleClick',
- MOUSE_DOWN: 'mouseButtonDown',
- MOUSE_UP: 'mouseButtonUp',
- MOVE_TO: 'mouseMoveTo',
- SEND_KEYS_TO_ACTIVE_ELEMENT: 'sendKeysToActiveElement',
-
- // These belong to the Advanced Touch API
- TOUCH_SINGLE_TAP: 'touchSingleTap',
- TOUCH_DOWN: 'touchDown',
- TOUCH_UP: 'touchUp',
- TOUCH_MOVE: 'touchMove',
- TOUCH_SCROLL: 'touchScroll',
- TOUCH_DOUBLE_TAP: 'touchDoubleTap',
- TOUCH_LONG_PRESS: 'touchLongPress',
- TOUCH_FLICK: 'touchFlick',
-
- GET_AVAILABLE_LOG_TYPES: 'getAvailableLogTypes',
- GET_LOG: 'getLog',
- GET_SESSION_LOGS: 'getSessionLogs',
-
- // Non-standard commands used by the standalone Selenium server.
- UPLOAD_FILE: 'uploadFile'
-};
-
-
-
-/**
- * Handles the execution of WebDriver {@link Command commands}.
- * @interface
- */
-class Executor {
- /**
- * Executes the given {@code command}. If there is an error executing the
- * command, the provided callback will be invoked with the offending error.
- * Otherwise, the callback will be invoked with a null Error and non-null
- * response object.
- *
- * @param {!Command} command The command to execute.
- * @return {!Promise<?>} A promise that will be fulfilled with the command
- * result.
- */
- execute(command) {}
-}
-
-
-
-// PUBLIC API
-
-
-module.exports = {
- Command: Command,
- Name: Name,
- Executor: Executor
-};
diff --git a/node_modules/selenium-webdriver/lib/devmode.js b/node_modules/selenium-webdriver/lib/devmode.js
deleted file mode 100644
index 4862c6a70..000000000
--- a/node_modules/selenium-webdriver/lib/devmode.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Module used to detect if scripts are loaded from the Selenium
- * project repo instead of from a deployed package.
- */
-
-'use strict';
-
-const fs = require('fs');
-const path = require('path');
-
-/**
- * @const {boolean}
- */
-module.exports = (function() {
- let buildDescFile = path.join(__dirname, '..', '..', 'build.desc');
- return fs.existsSync(buildDescFile);
-})();
diff --git a/node_modules/selenium-webdriver/lib/error.js b/node_modules/selenium-webdriver/lib/error.js
deleted file mode 100644
index 82f81b07c..000000000
--- a/node_modules/selenium-webdriver/lib/error.js
+++ /dev/null
@@ -1,568 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-/**
- * The base WebDriver error type. This error type is only used directly when a
- * more appropriate category is not defined for the offending error.
- */
-class WebDriverError extends Error {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
-
- /** @override */
- this.name = this.constructor.name;
- }
-}
-
-
-/**
- * An attempt was made to select an element that cannot be selected.
- */
-class ElementNotSelectableError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * An element command could not be completed because the element is not visible
- * on the page.
- */
-class ElementNotVisibleError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * The arguments passed to a command are either invalid or malformed.
- */
-class InvalidArgumentError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * An illegal attempt was made to set a cookie under a different domain than
- * the current page.
- */
-class InvalidCookieDomainError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * The coordinates provided to an interactions operation are invalid.
- */
-class InvalidElementCoordinatesError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * An element command could not be completed because the element is in an
- * invalid state, e.g. attempting to click an element that is no longer attached
- * to the document.
- */
-class InvalidElementStateError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * Argument was an invalid selector.
- */
-class InvalidSelectorError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * Occurs when a command is directed to a session that does not exist.
- */
-class NoSuchSessionError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * An error occurred while executing JavaScript supplied by the user.
- */
-class JavascriptError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * The target for mouse interaction is not in the browser’s viewport and cannot
- * be brought into that viewport.
- */
-class MoveTargetOutOfBoundsError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * An attempt was made to operate on a modal dialog when one was not open.
- */
-class NoSuchAlertError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * An element could not be located on the page using the given search
- * parameters.
- */
-class NoSuchElementError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * A request to switch to a frame could not be satisfied because the frame
- * could not be found.
- */
-class NoSuchFrameError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * A request to switch to a window could not be satisfied because the window
- * could not be found.
- */
-class NoSuchWindowError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * A script did not complete before its timeout expired.
- */
-class ScriptTimeoutError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * A new session could not be created.
- */
-class SessionNotCreatedError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-
-/**
- * An element command failed because the referenced element is no longer
- * attached to the DOM.
- */
-class StaleElementReferenceError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * An operation did not complete before its timeout expired.
- */
-class TimeoutError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * A request to set a cookie’s value could not be satisfied.
- */
-class UnableToSetCookieError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * A screen capture operation was not possible.
- */
-class UnableToCaptureScreenError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * A modal dialog was open, blocking this operation.
- */
-class UnexpectedAlertOpenError extends WebDriverError {
- /**
- * @param {string=} opt_error the error message, if any.
- * @param {string=} opt_text the text of the open dialog, if available.
- */
- constructor(opt_error, opt_text) {
- super(opt_error);
-
- /** @private {(string|undefined)} */
- this.text_ = opt_text;
- }
-
- /**
- * @return {(string|undefined)} The text displayed with the unhandled alert,
- * if available.
- */
- getAlertText() {
- return this.text_;
- }
-}
-
-
-/**
- * A command could not be executed because the remote end is not aware of it.
- */
-class UnknownCommandError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * The requested command matched a known URL but did not match an method for
- * that URL.
- */
-class UnknownMethodError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-
-/**
- * Reports an unsupported operation.
- */
-class UnsupportedOperationError extends WebDriverError {
- /** @param {string=} opt_error the error message, if any. */
- constructor(opt_error) {
- super(opt_error);
- }
-}
-
-// TODO(jleyba): Define UnknownError as an alias of WebDriverError?
-
-
-/**
- * Enum of legacy error codes.
- * TODO: remove this when all code paths have been switched to the new error
- * types.
- * @deprecated
- * @enum {number}
- */
-const ErrorCode = {
- SUCCESS: 0,
- NO_SUCH_ELEMENT: 7,
- NO_SUCH_FRAME: 8,
- UNKNOWN_COMMAND: 9,
- UNSUPPORTED_OPERATION: 9,
- STALE_ELEMENT_REFERENCE: 10,
- ELEMENT_NOT_VISIBLE: 11,
- INVALID_ELEMENT_STATE: 12,
- UNKNOWN_ERROR: 13,
- ELEMENT_NOT_SELECTABLE: 15,
- JAVASCRIPT_ERROR: 17,
- XPATH_LOOKUP_ERROR: 19,
- TIMEOUT: 21,
- NO_SUCH_WINDOW: 23,
- INVALID_COOKIE_DOMAIN: 24,
- UNABLE_TO_SET_COOKIE: 25,
- UNEXPECTED_ALERT_OPEN: 26,
- NO_SUCH_ALERT: 27,
- SCRIPT_TIMEOUT: 28,
- INVALID_ELEMENT_COORDINATES: 29,
- IME_NOT_AVAILABLE: 30,
- IME_ENGINE_ACTIVATION_FAILED: 31,
- INVALID_SELECTOR_ERROR: 32,
- SESSION_NOT_CREATED: 33,
- MOVE_TARGET_OUT_OF_BOUNDS: 34,
- SQL_DATABASE_ERROR: 35,
- INVALID_XPATH_SELECTOR: 51,
- INVALID_XPATH_SELECTOR_RETURN_TYPE: 52,
- METHOD_NOT_ALLOWED: 405
-};
-
-
-const LEGACY_ERROR_CODE_TO_TYPE = new Map([
- [ErrorCode.NO_SUCH_ELEMENT, NoSuchElementError],
- [ErrorCode.NO_SUCH_FRAME, NoSuchFrameError],
- [ErrorCode.UNSUPPORTED_OPERATION, UnsupportedOperationError],
- [ErrorCode.STALE_ELEMENT_REFERENCE, StaleElementReferenceError],
- [ErrorCode.ELEMENT_NOT_VISIBLE, ElementNotVisibleError],
- [ErrorCode.INVALID_ELEMENT_STATE, InvalidElementStateError],
- [ErrorCode.UNKNOWN_ERROR, WebDriverError],
- [ErrorCode.ELEMENT_NOT_SELECTABLE, ElementNotSelectableError],
- [ErrorCode.JAVASCRIPT_ERROR, JavascriptError],
- [ErrorCode.XPATH_LOOKUP_ERROR, InvalidSelectorError],
- [ErrorCode.TIMEOUT, TimeoutError],
- [ErrorCode.NO_SUCH_WINDOW, NoSuchWindowError],
- [ErrorCode.INVALID_COOKIE_DOMAIN, InvalidCookieDomainError],
- [ErrorCode.UNABLE_TO_SET_COOKIE, UnableToSetCookieError],
- [ErrorCode.UNEXPECTED_ALERT_OPEN, UnexpectedAlertOpenError],
- [ErrorCode.NO_SUCH_ALERT, NoSuchAlertError],
- [ErrorCode.SCRIPT_TIMEOUT, ScriptTimeoutError],
- [ErrorCode.INVALID_ELEMENT_COORDINATES, InvalidElementCoordinatesError],
- [ErrorCode.INVALID_SELECTOR_ERROR, InvalidSelectorError],
- [ErrorCode.SESSION_NOT_CREATED, SessionNotCreatedError],
- [ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS, MoveTargetOutOfBoundsError],
- [ErrorCode.INVALID_XPATH_SELECTOR, InvalidSelectorError],
- [ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPE, InvalidSelectorError],
- [ErrorCode.METHOD_NOT_ALLOWED, UnsupportedOperationError]]);
-
-
-const ERROR_CODE_TO_TYPE = new Map([
- ['unknown error', WebDriverError],
- ['element not selectable', ElementNotSelectableError],
- ['element not visible', ElementNotVisibleError],
- ['invalid argument', InvalidArgumentError],
- ['invalid cookie domain', InvalidCookieDomainError],
- ['invalid element coordinates', InvalidElementCoordinatesError],
- ['invalid element state', InvalidElementStateError],
- ['invalid selector', InvalidSelectorError],
- ['invalid session id', NoSuchSessionError],
- ['javascript error', JavascriptError],
- ['move target out of bounds', MoveTargetOutOfBoundsError],
- ['no such alert', NoSuchAlertError],
- ['no such element', NoSuchElementError],
- ['no such frame', NoSuchFrameError],
- ['no such window', NoSuchWindowError],
- ['script timeout', ScriptTimeoutError],
- ['session not created', SessionNotCreatedError],
- ['stale element reference', StaleElementReferenceError],
- ['timeout', TimeoutError],
- ['unable to set cookie', UnableToSetCookieError],
- ['unable to capture screen', UnableToCaptureScreenError],
- ['unexpected alert open', UnexpectedAlertOpenError],
- ['unknown command', UnknownCommandError],
- ['unknown method', UnknownMethodError],
- ['unsupported operation', UnsupportedOperationError]]);
-
-
-const TYPE_TO_ERROR_CODE = new Map;
-ERROR_CODE_TO_TYPE.forEach((value, key) => {
- TYPE_TO_ERROR_CODE.set(value, key);
-});
-
-
-
-/**
- * @param {*} err The error to encode.
- * @return {{error: string, message: string}} the encoded error.
- */
-function encodeError(err) {
- let type = WebDriverError;
- if (err instanceof WebDriverError
- && TYPE_TO_ERROR_CODE.has(err.constructor)) {
- type = err.constructor;
- }
-
- let message = err instanceof Error
- ? err.message
- : err + '';
-
- let code = /** @type {string} */(TYPE_TO_ERROR_CODE.get(type));
- return {'error': code, 'message': message};
-}
-
-
-/**
- * Checks a response object from a server that adheres to the W3C WebDriver
- * protocol.
- * @param {*} data The response data to check.
- * @return {*} The response data if it was not an encoded error.
- * @throws {WebDriverError} the decoded error, if present in the data object.
- * @deprecated Use {@link #throwDecodedError(data)} instead.
- * @see https://w3c.github.io/webdriver/webdriver-spec.html#protocol
- */
-function checkResponse(data) {
- if (data && typeof data.error === 'string') {
- let ctor = ERROR_CODE_TO_TYPE.get(data.error) || WebDriverError;
- throw new ctor(data.message);
- }
- return data;
-}
-
-/**
- * Tests if the given value is a valid error response object according to the
- * W3C WebDriver spec.
- *
- * @param {?} data The value to test.
- * @return {boolean} Whether the given value data object is a valid error
- * response.
- * @see https://w3c.github.io/webdriver/webdriver-spec.html#protocol
- */
-function isErrorResponse(data) {
- return data && typeof data === 'object' && typeof data.error === 'string';
-}
-
-/**
- * Throws an error coded from the W3C protocol. A generic error will be thrown
- * if the provided `data` is not a valid encoded error.
- *
- * @param {{error: string, message: string}} data The error data to decode.
- * @throws {WebDriverError} the decoded error.
- * @see https://w3c.github.io/webdriver/webdriver-spec.html#protocol
- */
-function throwDecodedError(data) {
- if (isErrorResponse(data)) {
- let ctor = ERROR_CODE_TO_TYPE.get(data.error) || WebDriverError;
- throw new ctor(data.message);
- }
- throw new WebDriverError('Unknown error: ' + JSON.stringify(data));
-}
-
-
-/**
- * Checks a legacy response from the Selenium 2.0 wire protocol for an error.
- * @param {*} responseObj the response object to check.
- * @return {*} responseObj the original response if it does not define an error.
- * @throws {WebDriverError} if the response object defines an error.
- */
-function checkLegacyResponse(responseObj) {
- // Handle the legacy Selenium error response format.
- if (responseObj
- && typeof responseObj === 'object'
- && typeof responseObj['status'] === 'number'
- && responseObj['status'] !== 0) {
- let status = responseObj['status'];
- let ctor = LEGACY_ERROR_CODE_TO_TYPE.get(status) || WebDriverError;
-
- let value = responseObj['value'];
-
- if (!value || typeof value !== 'object') {
- throw new ctor(value + '');
- } else {
- let message = value['message'] + '';
- if (ctor !== UnexpectedAlertOpenError) {
- throw new ctor(message);
- }
-
- let text = '';
- if (value['alert'] && typeof value['alert']['text'] === 'string') {
- text = value['alert']['text'];
- }
- throw new UnexpectedAlertOpenError(message, text);
- }
- }
- return responseObj;
-}
-
-
-// PUBLIC API
-
-
-module.exports = {
- ErrorCode: ErrorCode,
-
- WebDriverError: WebDriverError,
- ElementNotSelectableError: ElementNotSelectableError,
- ElementNotVisibleError: ElementNotVisibleError,
- InvalidArgumentError: InvalidArgumentError,
- InvalidCookieDomainError: InvalidCookieDomainError,
- InvalidElementCoordinatesError: InvalidElementCoordinatesError,
- InvalidElementStateError: InvalidElementStateError,
- InvalidSelectorError: InvalidSelectorError,
- JavascriptError: JavascriptError,
- MoveTargetOutOfBoundsError: MoveTargetOutOfBoundsError,
- NoSuchAlertError: NoSuchAlertError,
- NoSuchElementError: NoSuchElementError,
- NoSuchFrameError: NoSuchFrameError,
- NoSuchSessionError: NoSuchSessionError,
- NoSuchWindowError: NoSuchWindowError,
- ScriptTimeoutError: ScriptTimeoutError,
- SessionNotCreatedError: SessionNotCreatedError,
- StaleElementReferenceError: StaleElementReferenceError,
- TimeoutError: TimeoutError,
- UnableToSetCookieError: UnableToSetCookieError,
- UnableToCaptureScreenError: UnableToCaptureScreenError,
- UnexpectedAlertOpenError: UnexpectedAlertOpenError,
- UnknownCommandError: UnknownCommandError,
- UnknownMethodError: UnknownMethodError,
- UnsupportedOperationError: UnsupportedOperationError,
-
- checkResponse: checkResponse,
- checkLegacyResponse: checkLegacyResponse,
- encodeError: encodeError,
- isErrorResponse: isErrorResponse,
- throwDecodedError: throwDecodedError,
-};
diff --git a/node_modules/selenium-webdriver/lib/events.js b/node_modules/selenium-webdriver/lib/events.js
deleted file mode 100644
index 82b34803e..000000000
--- a/node_modules/selenium-webdriver/lib/events.js
+++ /dev/null
@@ -1,210 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-/**
- * Describes an event listener registered on an {@linkplain EventEmitter}.
- */
-class Listener {
- /**
- * @param {!Function} fn The actual listener function.
- * @param {(Object|undefined)} scope The object in whose scope to invoke the
- * listener.
- * @param {boolean} oneshot Whether this listener should only be used once.
- */
- constructor(fn, scope, oneshot) {
- this.fn = fn;
- this.scope = scope;
- this.oneshot = oneshot;
- }
-}
-
-
-/** @type {!WeakMap<!EventEmitter, !Map<string, !Set<!Listener>>>} */
-const EVENTS = new WeakMap;
-
-
-/**
- * Object that can emit events for others to listen for.
- */
-class EventEmitter {
- /**
- * Fires an event and calls all listeners.
- * @param {string} type The type of event to emit.
- * @param {...*} var_args Any arguments to pass to each listener.
- */
- emit(type, var_args) {
- let events = EVENTS.get(this);
- if (!events) {
- return;
- }
-
- let args = Array.prototype.slice.call(arguments, 1);
-
- let listeners = events.get(type);
- if (listeners) {
- for (let listener of listeners) {
- listener.fn.apply(listener.scope, args);
- if (listener.oneshot) {
- listeners.delete(listener);
- }
- }
- }
- }
-
- /**
- * Returns a mutable list of listeners for a specific type of event.
- * @param {string} type The type of event to retrieve the listeners for.
- * @return {!Set<!Listener>} The registered listeners for the given event
- * type.
- */
- listeners(type) {
- let events = EVENTS.get(this);
- if (!events) {
- events = new Map;
- EVENTS.set(this, events);
- }
-
- let listeners = events.get(type);
- if (!listeners) {
- listeners = new Set;
- events.set(type, listeners);
- }
- return listeners;
- }
-
- /**
- * Registers a listener.
- * @param {string} type The type of event to listen for.
- * @param {!Function} fn The function to invoke when the event is fired.
- * @param {Object=} opt_self The object in whose scope to invoke the listener.
- * @param {boolean=} opt_oneshot Whether the listener should b (e removed after
- * the first event is fired.
- * @return {!EventEmitter} A self reference.
- * @private
- */
- addListener_(type, fn, opt_self, opt_oneshot) {
- let listeners = this.listeners(type);
- for (let listener of listeners) {
- if (listener.fn === fn) {
- return this;
- }
- }
- listeners.add(new Listener(fn, opt_self || undefined, !!opt_oneshot));
- return this;
- }
-
- /**
- * Registers a listener.
- * @param {string} type The type of event to listen for.
- * @param {!Function} fn The function to invoke when the event is fired.
- * @param {Object=} opt_self The object in whose scope to invoke the listener.
- * @return {!EventEmitter} A self reference.
- */
- addListener(type, fn, opt_self) {
- return this.addListener_(type, fn, opt_self, false);
- }
-
- /**
- * Registers a one-time listener which will be called only the first time an
- * event is emitted, after which it will be removed.
- * @param {string} type The type of event to listen for.
- * @param {!Function} fn The function to invoke when the event is fired.
- * @param {Object=} opt_self The object in whose scope to invoke the listener.
- * @return {!EventEmitter} A self reference.
- */
- once(type, fn, opt_self) {
- return this.addListener_(type, fn, opt_self, true);
- }
-
- /**
- * An alias for {@link #addListener() addListener()}.
- * @param {string} type The type of event to listen for.
- * @param {!Function} fn The function to invoke when the event is fired.
- * @param {Object=} opt_self The object in whose scope to invoke the listener.
- * @return {!EventEmitter} A self reference.
- */
- on(type, fn, opt_self) {
- return this.addListener(type, fn, opt_self);
- }
-
- /**
- * Removes a previously registered event listener.
- * @param {string} type The type of event to unregister.
- * @param {!Function} listenerFn The handler function to remove.
- * @return {!EventEmitter} A self reference.
- */
- removeListener(type, listenerFn) {
- if (typeof type !== 'string' || typeof listenerFn !== 'function') {
- throw TypeError('invalid args: expected (string, function), got ('
- + (typeof type) + ', ' + (typeof listenerFn) + ')');
- }
-
- let events = EVENTS.get(this);
- if (!events) {
- return this;
- }
-
- let listeners = events.get(type);
- if (!listeners) {
- return this;
- }
-
- let match;
- for (let listener of listeners) {
- if (listener.fn === listenerFn) {
- match = listener;
- break;
- }
- }
- if (match) {
- listeners.delete(match);
- if (!listeners.size) {
- events.delete(type);
- }
- }
- return this;
- }
-
- /**
- * Removes all listeners for a specific type of event. If no event is
- * specified, all listeners across all types will be removed.
- * @param {string=} opt_type The type of event to remove listeners from.
- * @return {!EventEmitter} A self reference.
- */
- removeAllListeners(opt_type) {
- let events = EVENTS.get(this);
- if (events) {
- if (typeof opt_type === 'string') {
- events.delete(opt_type);
- } else {
- EVENTS.delete(this);
- }
- }
- return this;
- }
-}
-
-
-// PUBLIC API
-
-
-module.exports = {
- EventEmitter: EventEmitter,
- Listener: Listener
-};
diff --git a/node_modules/selenium-webdriver/lib/firefox/webdriver.json b/node_modules/selenium-webdriver/lib/firefox/webdriver.json
deleted file mode 100644
index 0dbe56bbd..000000000
--- a/node_modules/selenium-webdriver/lib/firefox/webdriver.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "frozen": {
- "app.update.auto": false,
- "app.update.enabled": false,
- "browser.displayedE10SNotice": 4,
- "browser.download.manager.showWhenStarting": false,
- "browser.EULA.override": true,
- "browser.EULA.3.accepted": true,
- "browser.link.open_external": 2,
- "browser.link.open_newwindow": 2,
- "browser.offline": false,
- "browser.reader.detectedFirstArticle": true,
- "browser.safebrowsing.enabled": false,
- "browser.safebrowsing.malware.enabled": false,
- "browser.search.update": false,
- "browser.selfsupport.url" : "",
- "browser.sessionstore.resume_from_crash": false,
- "browser.shell.checkDefaultBrowser": false,
- "browser.tabs.warnOnClose": false,
- "browser.tabs.warnOnOpen": false,
- "datareporting.healthreport.service.enabled": false,
- "datareporting.healthreport.uploadEnabled": false,
- "datareporting.healthreport.service.firstRun": false,
- "datareporting.healthreport.logging.consoleEnabled": false,
- "datareporting.policy.dataSubmissionEnabled": false,
- "datareporting.policy.dataSubmissionPolicyAccepted": false,
- "devtools.errorconsole.enabled": true,
- "dom.disable_open_during_load": false,
- "extensions.autoDisableScopes": 10,
- "extensions.blocklist.enabled": false,
- "extensions.checkCompatibility.nightly": false,
- "extensions.logging.enabled": true,
- "extensions.update.enabled": false,
- "extensions.update.notifyUser": false,
- "javascript.enabled": true,
- "network.manage-offline-status": false,
- "network.http.phishy-userpass-length": 255,
- "offline-apps.allow_by_default": true,
- "prompts.tab_modal.enabled": false,
- "security.fileuri.origin_policy": 3,
- "security.fileuri.strict_origin_policy": false,
- "signon.rememberSignons": false,
- "toolkit.networkmanager.disable": true,
- "toolkit.telemetry.prompted": 2,
- "toolkit.telemetry.enabled": false,
- "toolkit.telemetry.rejected": true,
- "xpinstall.signatures.required": false,
- "xpinstall.whitelist.required": false
- },
- "mutable": {
- "browser.dom.window.dump.enabled": true,
- "browser.laterrun.enabled": false,
- "browser.newtab.url": "about:blank",
- "browser.newtabpage.enabled": false,
- "browser.startup.page": 0,
- "browser.startup.homepage": "about:blank",
- "browser.startup.homepage_override.mstone": "ignore",
- "browser.usedOnWindows10.introURL": "about:blank",
- "dom.max_chrome_script_run_time": 30,
- "dom.max_script_run_time": 30,
- "dom.report_all_js_exceptions": true,
- "javascript.options.showInConsole": true,
- "network.captive-portal-service.enabled": false,
- "security.csp.enable": false,
- "startup.homepage_welcome_url": "about:blank",
- "startup.homepage_welcome_url.additional": "about:blank",
- "webdriver_accept_untrusted_certs": true,
- "webdriver_assume_untrusted_issuer": true
- }
-}
diff --git a/node_modules/selenium-webdriver/lib/firefox/webdriver.xpi b/node_modules/selenium-webdriver/lib/firefox/webdriver.xpi
deleted file mode 100644
index 6c69f1d32..000000000
--- a/node_modules/selenium-webdriver/lib/firefox/webdriver.xpi
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/http.js b/node_modules/selenium-webdriver/lib/http.js
deleted file mode 100644
index e141bf190..000000000
--- a/node_modules/selenium-webdriver/lib/http.js
+++ /dev/null
@@ -1,582 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Defines an environment agnostic {@linkplain cmd.Executor
- * command executor} that communicates with a remote end using JSON over HTTP.
- *
- * Clients should implement the {@link Client} interface, which is used by
- * the {@link Executor} to send commands to the remote end.
- */
-
-'use strict';
-
-const cmd = require('./command');
-const error = require('./error');
-const logging = require('./logging');
-const promise = require('./promise');
-const Session = require('./session').Session;
-const WebElement = require('./webdriver').WebElement;
-
-const {getAttribute, isDisplayed} = (function() {
- try {
- return {
- getAttribute: require('./atoms/getAttribute.js'),
- isDisplayed: require('./atoms/is-displayed.js')
- };
- } catch (ex) {
- throw Error(
- 'Failed to import atoms modules. If running in devmode, you need to run'
- + ' `./go node:atoms` from the project root: ' + ex);
- }
-})();
-
-
-/**
- * Converts a headers map to a HTTP header block string.
- * @param {!Map<string, string>} headers The map to convert.
- * @return {string} The headers as a string.
- */
-function headersToString(headers) {
- let ret = [];
- headers.forEach(function(value, name) {
- ret.push(`${name.toLowerCase()}: ${value}`);
- });
- return ret.join('\n');
-}
-
-
-/**
- * Represents a HTTP request message. This class is a "partial" request and only
- * defines the path on the server to send a request to. It is each client's
- * responsibility to build the full URL for the final request.
- * @final
- */
-class Request {
- /**
- * @param {string} method The HTTP method to use for the request.
- * @param {string} path The path on the server to send the request to.
- * @param {Object=} opt_data This request's non-serialized JSON payload data.
- */
- constructor(method, path, opt_data) {
- this.method = /** string */method;
- this.path = /** string */path;
- this.data = /** Object */opt_data;
- this.headers = /** !Map<string, string> */new Map(
- [['Accept', 'application/json; charset=utf-8']]);
- }
-
- /** @override */
- toString() {
- let ret = `${this.method} ${this.path} HTTP/1.1\n`;
- ret += headersToString(this.headers) + '\n\n';
- if (this.data) {
- ret += JSON.stringify(this.data);
- }
- return ret;
- }
-}
-
-
-/**
- * Represents a HTTP response message.
- * @final
- */
-class Response {
- /**
- * @param {number} status The response code.
- * @param {!Object<string>} headers The response headers. All header names
- * will be converted to lowercase strings for consistent lookups.
- * @param {string} body The response body.
- */
- constructor(status, headers, body) {
- this.status = /** number */status;
- this.body = /** string */body;
- this.headers = /** !Map<string, string>*/new Map;
- for (let header in headers) {
- this.headers.set(header.toLowerCase(), headers[header]);
- }
- }
-
- /** @override */
- toString() {
- let ret = `HTTP/1.1 ${this.status}\n${headersToString(this.headers)}\n\n`;
- if (this.body) {
- ret += this.body;
- }
- return ret;
- }
-}
-
-
-const DEV_ROOT = '../../../../buck-out/gen/javascript/';
-
-/** @enum {!Function} */
-const Atom = {
- GET_ATTRIBUTE: getAttribute,
- IS_DISPLAYED: isDisplayed
-};
-
-
-const LOG = logging.getLogger('webdriver.http');
-
-
-function post(path) { return resource('POST', path); }
-function del(path) { return resource('DELETE', path); }
-function get(path) { return resource('GET', path); }
-function resource(method, path) { return {method: method, path: path}; }
-
-
-/** @typedef {{method: string, path: string}} */
-var CommandSpec;
-
-
-/** @typedef {function(!cmd.Command): !Promise<!cmd.Command>} */
-var CommandTransformer;
-
-
-class InternalTypeError extends TypeError {}
-
-
-/**
- * @param {!cmd.Command} command The initial command.
- * @param {Atom} atom The name of the atom to execute.
- * @return {!Promise<!cmd.Command>} The transformed command to execute.
- */
-function toExecuteAtomCommand(command, atom, ...params) {
- return new Promise((resolve, reject) => {
- if (typeof atom !== 'function') {
- reject(new InternalTypeError('atom is not a function: ' + typeof atom));
- return;
- }
-
- let newCmd = new cmd.Command(cmd.Name.EXECUTE_SCRIPT)
- .setParameter('sessionId', command.getParameter('sessionId'))
- .setParameter('script', `return (${atom}).apply(null, arguments)`)
- .setParameter('args', params.map(param => command.getParameter(param)));
- resolve(newCmd);
- });
-}
-
-
-
-/** @const {!Map<string, CommandSpec>} */
-const COMMAND_MAP = new Map([
- [cmd.Name.GET_SERVER_STATUS, get('/status')],
- [cmd.Name.NEW_SESSION, post('/session')],
- [cmd.Name.GET_SESSIONS, get('/sessions')],
- [cmd.Name.DESCRIBE_SESSION, get('/session/:sessionId')],
- [cmd.Name.QUIT, del('/session/:sessionId')],
- [cmd.Name.CLOSE, del('/session/:sessionId/window')],
- [cmd.Name.GET_CURRENT_WINDOW_HANDLE, get('/session/:sessionId/window_handle')],
- [cmd.Name.GET_WINDOW_HANDLES, get('/session/:sessionId/window_handles')],
- [cmd.Name.GET_CURRENT_URL, get('/session/:sessionId/url')],
- [cmd.Name.GET, post('/session/:sessionId/url')],
- [cmd.Name.GO_BACK, post('/session/:sessionId/back')],
- [cmd.Name.GO_FORWARD, post('/session/:sessionId/forward')],
- [cmd.Name.REFRESH, post('/session/:sessionId/refresh')],
- [cmd.Name.ADD_COOKIE, post('/session/:sessionId/cookie')],
- [cmd.Name.GET_ALL_COOKIES, get('/session/:sessionId/cookie')],
- [cmd.Name.DELETE_ALL_COOKIES, del('/session/:sessionId/cookie')],
- [cmd.Name.DELETE_COOKIE, del('/session/:sessionId/cookie/:name')],
- [cmd.Name.FIND_ELEMENT, post('/session/:sessionId/element')],
- [cmd.Name.FIND_ELEMENTS, post('/session/:sessionId/elements')],
- [cmd.Name.GET_ACTIVE_ELEMENT, post('/session/:sessionId/element/active')],
- [cmd.Name.FIND_CHILD_ELEMENT, post('/session/:sessionId/element/:id/element')],
- [cmd.Name.FIND_CHILD_ELEMENTS, post('/session/:sessionId/element/:id/elements')],
- [cmd.Name.CLEAR_ELEMENT, post('/session/:sessionId/element/:id/clear')],
- [cmd.Name.CLICK_ELEMENT, post('/session/:sessionId/element/:id/click')],
- [cmd.Name.SEND_KEYS_TO_ELEMENT, post('/session/:sessionId/element/:id/value')],
- [cmd.Name.SUBMIT_ELEMENT, post('/session/:sessionId/element/:id/submit')],
- [cmd.Name.GET_ELEMENT_TEXT, get('/session/:sessionId/element/:id/text')],
- [cmd.Name.GET_ELEMENT_TAG_NAME, get('/session/:sessionId/element/:id/name')],
- [cmd.Name.IS_ELEMENT_SELECTED, get('/session/:sessionId/element/:id/selected')],
- [cmd.Name.IS_ELEMENT_ENABLED, get('/session/:sessionId/element/:id/enabled')],
- [cmd.Name.IS_ELEMENT_DISPLAYED, get('/session/:sessionId/element/:id/displayed')],
- [cmd.Name.GET_ELEMENT_LOCATION, get('/session/:sessionId/element/:id/location')],
- [cmd.Name.GET_ELEMENT_SIZE, get('/session/:sessionId/element/:id/size')],
- [cmd.Name.GET_ELEMENT_ATTRIBUTE, get('/session/:sessionId/element/:id/attribute/:name')],
- [cmd.Name.GET_ELEMENT_VALUE_OF_CSS_PROPERTY, get('/session/:sessionId/element/:id/css/:propertyName')],
- [cmd.Name.ELEMENT_EQUALS, get('/session/:sessionId/element/:id/equals/:other')],
- [cmd.Name.TAKE_ELEMENT_SCREENSHOT, get('/session/:sessionId/element/:id/screenshot')],
- [cmd.Name.SWITCH_TO_WINDOW, post('/session/:sessionId/window')],
- [cmd.Name.MAXIMIZE_WINDOW, post('/session/:sessionId/window/current/maximize')],
- [cmd.Name.GET_WINDOW_POSITION, get('/session/:sessionId/window/current/position')],
- [cmd.Name.SET_WINDOW_POSITION, post('/session/:sessionId/window/current/position')],
- [cmd.Name.GET_WINDOW_SIZE, get('/session/:sessionId/window/current/size')],
- [cmd.Name.SET_WINDOW_SIZE, post('/session/:sessionId/window/current/size')],
- [cmd.Name.SWITCH_TO_FRAME, post('/session/:sessionId/frame')],
- [cmd.Name.GET_PAGE_SOURCE, get('/session/:sessionId/source')],
- [cmd.Name.GET_TITLE, get('/session/:sessionId/title')],
- [cmd.Name.EXECUTE_SCRIPT, post('/session/:sessionId/execute')],
- [cmd.Name.EXECUTE_ASYNC_SCRIPT, post('/session/:sessionId/execute_async')],
- [cmd.Name.SCREENSHOT, get('/session/:sessionId/screenshot')],
- [cmd.Name.GET_TIMEOUT, get('/session/:sessionId/timeouts')],
- [cmd.Name.SET_TIMEOUT, post('/session/:sessionId/timeouts')],
- [cmd.Name.MOVE_TO, post('/session/:sessionId/moveto')],
- [cmd.Name.CLICK, post('/session/:sessionId/click')],
- [cmd.Name.DOUBLE_CLICK, post('/session/:sessionId/doubleclick')],
- [cmd.Name.MOUSE_DOWN, post('/session/:sessionId/buttondown')],
- [cmd.Name.MOUSE_UP, post('/session/:sessionId/buttonup')],
- [cmd.Name.MOVE_TO, post('/session/:sessionId/moveto')],
- [cmd.Name.SEND_KEYS_TO_ACTIVE_ELEMENT, post('/session/:sessionId/keys')],
- [cmd.Name.TOUCH_SINGLE_TAP, post('/session/:sessionId/touch/click')],
- [cmd.Name.TOUCH_DOUBLE_TAP, post('/session/:sessionId/touch/doubleclick')],
- [cmd.Name.TOUCH_DOWN, post('/session/:sessionId/touch/down')],
- [cmd.Name.TOUCH_UP, post('/session/:sessionId/touch/up')],
- [cmd.Name.TOUCH_MOVE, post('/session/:sessionId/touch/move')],
- [cmd.Name.TOUCH_SCROLL, post('/session/:sessionId/touch/scroll')],
- [cmd.Name.TOUCH_LONG_PRESS, post('/session/:sessionId/touch/longclick')],
- [cmd.Name.TOUCH_FLICK, post('/session/:sessionId/touch/flick')],
- [cmd.Name.ACCEPT_ALERT, post('/session/:sessionId/accept_alert')],
- [cmd.Name.DISMISS_ALERT, post('/session/:sessionId/dismiss_alert')],
- [cmd.Name.GET_ALERT_TEXT, get('/session/:sessionId/alert_text')],
- [cmd.Name.SET_ALERT_TEXT, post('/session/:sessionId/alert_text')],
- [cmd.Name.SET_ALERT_CREDENTIALS, post('/session/:sessionId/alert/credentials')],
- [cmd.Name.GET_LOG, post('/session/:sessionId/log')],
- [cmd.Name.GET_AVAILABLE_LOG_TYPES, get('/session/:sessionId/log/types')],
- [cmd.Name.GET_SESSION_LOGS, post('/logs')],
- [cmd.Name.UPLOAD_FILE, post('/session/:sessionId/file')],
-]);
-
-
-/** @const {!Map<string, (CommandSpec|CommandTransformer)>} */
-const W3C_COMMAND_MAP = new Map([
- [cmd.Name.GET_ACTIVE_ELEMENT, get('/session/:sessionId/element/active')],
- [cmd.Name.GET_ALERT_TEXT, get('/session/:sessionId/alert/text')],
- [cmd.Name.SET_ALERT_TEXT, post('/session/:sessionId/alert/text')],
- [cmd.Name.ACCEPT_ALERT, post('/session/:sessionId/alert/accept')],
- [cmd.Name.DISMISS_ALERT, post('/session/:sessionId/alert/dismiss')],
- [cmd.Name.GET_ELEMENT_ATTRIBUTE, (cmd) => {
- return toExecuteAtomCommand(cmd, Atom.GET_ATTRIBUTE, 'id', 'name');
- }],
- [cmd.Name.GET_ELEMENT_LOCATION, get('/session/:sessionId/element/:id/rect')],
- [cmd.Name.GET_ELEMENT_SIZE, get('/session/:sessionId/element/:id/rect')],
- [cmd.Name.IS_ELEMENT_DISPLAYED, (cmd) => {
- return toExecuteAtomCommand(cmd, Atom.IS_DISPLAYED, 'id');
- }],
- [cmd.Name.EXECUTE_SCRIPT, post('/session/:sessionId/execute/sync')],
- [cmd.Name.EXECUTE_ASYNC_SCRIPT, post('/session/:sessionId/execute/async')],
- [cmd.Name.MAXIMIZE_WINDOW, post('/session/:sessionId/window/maximize')],
- [cmd.Name.GET_WINDOW_POSITION, get('/session/:sessionId/window/position')],
- [cmd.Name.SET_WINDOW_POSITION, post('/session/:sessionId/window/position')],
- [cmd.Name.GET_WINDOW_SIZE, get('/session/:sessionId/window/size')],
- [cmd.Name.SET_WINDOW_SIZE, post('/session/:sessionId/window/size')],
- [cmd.Name.GET_CURRENT_WINDOW_HANDLE, get('/session/:sessionId/window')],
- [cmd.Name.GET_WINDOW_HANDLES, get('/session/:sessionId/window/handles')],
-]);
-
-
-/**
- * Handles sending HTTP messages to a remote end.
- *
- * @interface
- */
-class Client {
-
- /**
- * Sends a request to the server. The client will automatically follow any
- * redirects returned by the server, fulfilling the returned promise with the
- * final response.
- *
- * @param {!Request} httpRequest The request to send.
- * @return {!Promise<Response>} A promise that will be fulfilled with the
- * server's response.
- */
- send(httpRequest) {}
-}
-
-
-const CLIENTS =
- /** !WeakMap<!Executor, !(Client|IThenable<!Client>)> */new WeakMap;
-
-
-/**
- * Sends a request using the given executor.
- * @param {!Executor} executor
- * @param {!Request} request
- * @return {!Promise<Response>}
- */
-function doSend(executor, request) {
- const client = CLIENTS.get(executor);
- if (promise.isPromise(client)) {
- return client.then(client => {
- CLIENTS.set(executor, client);
- return client.send(request);
- });
- } else {
- return client.send(request);
- }
-}
-
-
-/**
- * @param {Map<string, CommandSpec>} customCommands
- * A map of custom command definitions.
- * @param {boolean} w3c Whether to use W3C command mappings.
- * @param {!cmd.Command} command The command to resolve.
- * @return {!Promise<!Request>} A promise that will resolve with the
- * command to execute.
- */
-function buildRequest(customCommands, w3c, command) {
- LOG.finest(() => `Translating command: ${command.getName()}`);
- let spec = customCommands && customCommands.get(command.getName());
- if (spec) {
- return toHttpRequest(spec);
- }
-
- if (w3c) {
- spec = W3C_COMMAND_MAP.get(command.getName());
- if (typeof spec === 'function') {
- LOG.finest(() => `Transforming command for W3C: ${command.getName()}`);
- return spec(command)
- .then(newCommand => buildRequest(customCommands, w3c, newCommand));
- } else if (spec) {
- return toHttpRequest(spec);
- }
- }
-
- spec = COMMAND_MAP.get(command.getName());
- if (spec) {
- return toHttpRequest(spec);
- }
- return Promise.reject(
- new error.UnknownCommandError(
- 'Unrecognized command: ' + command.getName()));
-
- /**
- * @param {CommandSpec} resource
- * @return {!Promise<!Request>}
- */
- function toHttpRequest(resource) {
- LOG.finest(() => `Building HTTP request: ${JSON.stringify(resource)}`);
- let parameters = command.getParameters();
- let path = buildPath(resource.path, parameters);
- return Promise.resolve(new Request(resource.method, path, parameters));
- }
-}
-
-
-/**
- * A command executor that communicates with the server using JSON over HTTP.
- *
- * By default, each instance of this class will use the legacy wire protocol
- * from [Selenium project][json]. The executor will automatically switch to the
- * [W3C wire protocol][w3c] if the remote end returns a compliant response to
- * a new session command.
- *
- * [json]: https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol
- * [w3c]: https://w3c.github.io/webdriver/webdriver-spec.html
- *
- * @implements {cmd.Executor}
- */
-class Executor {
- /**
- * @param {!(Client|IThenable<!Client>)} client The client to use for sending
- * requests to the server, or a promise-like object that will resolve to
- * to the client.
- */
- constructor(client) {
- CLIENTS.set(this, client);
-
- /**
- * Whether this executor should use the W3C wire protocol. The executor
- * will automatically switch if the remote end sends a compliant response
- * to a new session command, however, this property may be directly set to
- * `true` to force the executor into W3C mode.
- * @type {boolean}
- */
- this.w3c = false;
-
- /** @private {Map<string, CommandSpec>} */
- this.customCommands_ = null;
-
- /** @private {!logging.Logger} */
- this.log_ = logging.getLogger('webdriver.http.Executor');
- }
-
- /**
- * Defines a new command for use with this executor. When a command is sent,
- * the {@code path} will be preprocessed using the command's parameters; any
- * path segments prefixed with ":" will be replaced by the parameter of the
- * same name. For example, given "/person/:name" and the parameters
- * "{name: 'Bob'}", the final command path will be "/person/Bob".
- *
- * @param {string} name The command name.
- * @param {string} method The HTTP method to use when sending this command.
- * @param {string} path The path to send the command to, relative to
- * the WebDriver server's command root and of the form
- * "/path/:variable/segment".
- */
- defineCommand(name, method, path) {
- if (!this.customCommands_) {
- this.customCommands_ = new Map;
- }
- this.customCommands_.set(name, {method, path});
- }
-
- /** @override */
- execute(command) {
- let request = buildRequest(this.customCommands_, this.w3c, command);
- return request.then(request => {
- this.log_.finer(() => `>>> ${request.method} ${request.path}`);
- return doSend(this, request).then(response => {
- this.log_.finer(() => `>>>\n${request}\n<<<\n${response}`);
-
- let httpResponse = /** @type {!Response} */(response);
- let {isW3C, value} = parseHttpResponse(command, httpResponse);
-
- if (command.getName() === cmd.Name.NEW_SESSION
- || command.getName() === cmd.Name.DESCRIBE_SESSION) {
- if (!value || !value.sessionId) {
- throw new error.WebDriverError(
- `Unable to parse new session response: ${response.body}`);
- }
-
- // The remote end is a W3C compliant server if there is no `status`
- // field in the response. This is not applicable for the DESCRIBE_SESSION
- // command, which is not defined in the W3C spec.
- if (command.getName() === cmd.Name.NEW_SESSION) {
- this.w3c = this.w3c || isW3C;
- }
-
- // No implementations use the `capabilities` key yet...
- let capabilities = value.capabilities || value.value;
- return new Session(value.sessionId, capabilities);
- }
-
- return typeof value === 'undefined' ? null : value;
- });
- });
- }
-}
-
-
-/**
- * @param {string} str .
- * @return {?} .
- */
-function tryParse(str) {
- try {
- return JSON.parse(str);
- } catch (ignored) {
- // Do nothing.
- }
-}
-
-
-/**
- * Callback used to parse {@link Response} objects from a
- * {@link HttpClient}.
- *
- * @param {!cmd.Command} command The command the response is for.
- * @param {!Response} httpResponse The HTTP response to parse.
- * @return {{isW3C: boolean, value: ?}} An object describing the parsed
- * response. This object will have two fields: `isW3C` indicates whether
- * the response looks like it came from a remote end that conforms with the
- * W3C WebDriver spec, and `value`, the actual response value.
- * @throws {WebDriverError} If the HTTP response is an error.
- */
-function parseHttpResponse(command, httpResponse) {
- if (httpResponse.status < 200) {
- // This should never happen, but throw the raw response so users report it.
- throw new error.WebDriverError(
- `Unexpected HTTP response:\n${httpResponse}`);
- }
-
- let parsed = tryParse(httpResponse.body);
- if (parsed && typeof parsed === 'object') {
- let value = parsed.value;
- let isW3C =
- value !== null && typeof value === 'object'
- && typeof parsed.status === 'undefined';
-
- if (!isW3C) {
- error.checkLegacyResponse(parsed);
-
- // Adjust legacy new session responses to look like W3C to simplify
- // later processing.
- if (command.getName() === cmd.Name.NEW_SESSION
- || command.getName() == cmd.Name.DESCRIBE_SESSION) {
- value = parsed;
- }
-
- } else if (httpResponse.status > 399) {
- error.throwDecodedError(value);
- }
-
- return {isW3C, value};
- }
-
- if (parsed !== undefined) {
- return {isW3C: false, value: parsed};
- }
-
- let value = httpResponse.body.replace(/\r\n/g, '\n');
-
- // 404 represents an unknown command; anything else > 399 is a generic unknown
- // error.
- if (httpResponse.status == 404) {
- throw new error.UnsupportedOperationError(value);
- } else if (httpResponse.status >= 400) {
- throw new error.WebDriverError(value);
- }
-
- return {isW3C: false, value: value || null};
-}
-
-
-/**
- * Builds a fully qualified path using the given set of command parameters. Each
- * path segment prefixed with ':' will be replaced by the value of the
- * corresponding parameter. All parameters spliced into the path will be
- * removed from the parameter map.
- * @param {string} path The original resource path.
- * @param {!Object<*>} parameters The parameters object to splice into the path.
- * @return {string} The modified path.
- */
-function buildPath(path, parameters) {
- let pathParameters = path.match(/\/:(\w+)\b/g);
- if (pathParameters) {
- for (let i = 0; i < pathParameters.length; ++i) {
- let key = pathParameters[i].substring(2); // Trim the /:
- if (key in parameters) {
- let value = parameters[key];
- if (WebElement.isId(value)) {
- // When inserting a WebElement into the URL, only use its ID value,
- // not the full JSON.
- value = WebElement.extractId(value);
- }
- path = path.replace(pathParameters[i], '/' + value);
- delete parameters[key];
- } else {
- throw new error.InvalidArgumentError(
- 'Missing required parameter: ' + key);
- }
- }
- }
- return path;
-}
-
-
-// PUBLIC API
-
-exports.Executor = Executor;
-exports.Client = Client;
-exports.Request = Request;
-exports.Response = Response;
-exports.buildPath = buildPath; // Exported for testing.
diff --git a/node_modules/selenium-webdriver/lib/input.js b/node_modules/selenium-webdriver/lib/input.js
deleted file mode 100644
index 4ea938d45..000000000
--- a/node_modules/selenium-webdriver/lib/input.js
+++ /dev/null
@@ -1,171 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-/**
- * @fileoverview Defines types related to user input with the WebDriver API.
- */
-
-
-/**
- * Enumeration of the buttons used in the advanced interactions API.
- * @enum {number}
- */
-const Button = {
- LEFT: 0,
- MIDDLE: 1,
- RIGHT: 2
-};
-
-
-
-/**
- * Representations of pressable keys that aren't text. These are stored in
- * the Unicode PUA (Private Use Area) code points, 0xE000-0xF8FF. Refer to
- * http://www.google.com.au/search?&q=unicode+pua&btnG=Search
- *
- * @enum {string}
- */
-const Key = {
- NULL: '\uE000',
- CANCEL: '\uE001', // ^break
- HELP: '\uE002',
- BACK_SPACE: '\uE003',
- TAB: '\uE004',
- CLEAR: '\uE005',
- RETURN: '\uE006',
- ENTER: '\uE007',
- SHIFT: '\uE008',
- CONTROL: '\uE009',
- ALT: '\uE00A',
- PAUSE: '\uE00B',
- ESCAPE: '\uE00C',
- SPACE: '\uE00D',
- PAGE_UP: '\uE00E',
- PAGE_DOWN: '\uE00F',
- END: '\uE010',
- HOME: '\uE011',
- ARROW_LEFT: '\uE012',
- LEFT: '\uE012',
- ARROW_UP: '\uE013',
- UP: '\uE013',
- ARROW_RIGHT: '\uE014',
- RIGHT: '\uE014',
- ARROW_DOWN: '\uE015',
- DOWN: '\uE015',
- INSERT: '\uE016',
- DELETE: '\uE017',
- SEMICOLON: '\uE018',
- EQUALS: '\uE019',
-
- NUMPAD0: '\uE01A', // number pad keys
- NUMPAD1: '\uE01B',
- NUMPAD2: '\uE01C',
- NUMPAD3: '\uE01D',
- NUMPAD4: '\uE01E',
- NUMPAD5: '\uE01F',
- NUMPAD6: '\uE020',
- NUMPAD7: '\uE021',
- NUMPAD8: '\uE022',
- NUMPAD9: '\uE023',
- MULTIPLY: '\uE024',
- ADD: '\uE025',
- SEPARATOR: '\uE026',
- SUBTRACT: '\uE027',
- DECIMAL: '\uE028',
- DIVIDE: '\uE029',
-
- F1: '\uE031', // function keys
- F2: '\uE032',
- F3: '\uE033',
- F4: '\uE034',
- F5: '\uE035',
- F6: '\uE036',
- F7: '\uE037',
- F8: '\uE038',
- F9: '\uE039',
- F10: '\uE03A',
- F11: '\uE03B',
- F12: '\uE03C',
-
- COMMAND: '\uE03D', // Apple command key
- META: '\uE03D' // alias for Windows key
-};
-
-
-/**
- * Simulate pressing many keys at once in a "chord". Takes a sequence of
- * {@linkplain Key keys} or strings, appends each of the values to a string,
- * adds the chord termination key ({@link Key.NULL}) and returns the resulting
- * string.
- *
- * Note: when the low-level webdriver key handlers see Keys.NULL, active
- * modifier keys (CTRL/ALT/SHIFT/etc) release via a keyup event.
- *
- * @param {...string} var_args The key sequence to concatenate.
- * @return {string} The null-terminated key sequence.
- */
-Key.chord = function(var_args) {
- return Array.prototype.slice.call(arguments, 0).join('') + Key.NULL;
-};
-
-
-/**
- * Used with {@link ./webelement.WebElement#sendKeys WebElement#sendKeys} on
- * file input elements (`<input type="file">`) to detect when the entered key
- * sequence defines the path to a file.
- *
- * By default, {@linkplain ./webelement.WebElement WebElement's} will enter all
- * key sequences exactly as entered. You may set a
- * {@linkplain ./webdriver.WebDriver#setFileDetector file detector} on the
- * parent WebDriver instance to define custom behavior for handling file
- * elements. Of particular note is the
- * {@link selenium-webdriver/remote.FileDetector}, which should be used when
- * running against a remote
- * [Selenium Server](http://docs.seleniumhq.org/download/).
- */
-class FileDetector {
-
- /**
- * Handles the file specified by the given path, preparing it for use with
- * the current browser. If the path does not refer to a valid file, it will
- * be returned unchanged, otherwise a path suitable for use with the current
- * browser will be returned.
- *
- * This default implementation is a no-op. Subtypes may override this function
- * for custom tailored file handling.
- *
- * @param {!./webdriver.WebDriver} driver The driver for the current browser.
- * @param {string} path The path to process.
- * @return {!Promise<string>} A promise for the processed file path.
- * @package
- */
- handleFile(driver, path) {
- return Promise.resolve(path);
- }
-}
-
-
-// PUBLIC API
-
-
-module.exports = {
- Button: Button,
- Key: Key,
- FileDetector: FileDetector
-};
diff --git a/node_modules/selenium-webdriver/lib/logging.js b/node_modules/selenium-webdriver/lib/logging.js
deleted file mode 100644
index 634a5cbc8..000000000
--- a/node_modules/selenium-webdriver/lib/logging.js
+++ /dev/null
@@ -1,676 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-/**
- * @fileoverview Defines WebDriver's logging system. The logging system is
- * broken into major components: local and remote logging.
- *
- * The local logging API, which is anchored by the {@linkplain Logger} class is
- * similar to Java's logging API. Loggers, retrieved by
- * {@linkplain #getLogger getLogger(name)}, use hierarchical, dot-delimited
- * namespaces (e.g. "" > "webdriver" > "webdriver.logging"). Recorded log
- * messages are represented by the {@linkplain Entry} class. You can capture log
- * records by {@linkplain Logger#addHandler attaching} a handler function to the
- * desired logger. For convenience, you can quickly enable logging to the
- * console by simply calling {@linkplain #installConsoleHandler
- * installConsoleHandler}.
- *
- * The [remote logging API](https://github.com/SeleniumHQ/selenium/wiki/Logging)
- * allows you to retrieve logs from a remote WebDriver server. This API uses the
- * {@link Preferences} class to define desired log levels prior to creating
- * a WebDriver session:
- *
- * var prefs = new logging.Preferences();
- * prefs.setLevel(logging.Type.BROWSER, logging.Level.DEBUG);
- *
- * var caps = Capabilities.chrome();
- * caps.setLoggingPrefs(prefs);
- * // ...
- *
- * Remote log entries, also represented by the {@link Entry} class, may be
- * retrieved via {@link webdriver.WebDriver.Logs}:
- *
- * driver.manage().logs().get(logging.Type.BROWSER)
- * .then(function(entries) {
- * entries.forEach(function(entry) {
- * console.log('[%s] %s', entry.level.name, entry.message);
- * });
- * });
- *
- * **NOTE:** Only a few browsers support the remote logging API (notably
- * Firefox and Chrome). Firefox supports basic logging functionality, while
- * Chrome exposes robust
- * [performance logging](https://sites.google.com/a/chromium.org/chromedriver/logging)
- * options. Remote logging is still considered a non-standard feature, and the
- * APIs exposed by this module for it are non-frozen. This module will be
- * updated, possibly breaking backwards-compatibility, once logging is
- * officially defined by the
- * [W3C WebDriver spec](http://www.w3.org/TR/webdriver/).
- */
-
-/**
- * Defines a message level that may be used to control logging output.
- *
- * @final
- */
-class Level {
- /**
- * @param {string} name the level's name.
- * @param {number} level the level's numeric value.
- */
- constructor(name, level) {
- if (level < 0) {
- throw new TypeError('Level must be >= 0');
- }
-
- /** @private {string} */
- this.name_ = name;
-
- /** @private {number} */
- this.value_ = level;
- }
-
- /** This logger's name. */
- get name() {
- return this.name_;
- }
-
- /** The numeric log level. */
- get value() {
- return this.value_;
- }
-
- /** @override */
- toString() {
- return this.name;
- }
-}
-
-/**
- * Indicates no log messages should be recorded.
- * @const
- */
-Level.OFF = new Level('OFF', Infinity);
-
-
-/**
- * Log messages with a level of `1000` or higher.
- * @const
- */
-Level.SEVERE = new Level('SEVERE', 1000);
-
-
-/**
- * Log messages with a level of `900` or higher.
- * @const
- */
-Level.WARNING = new Level('WARNING', 900);
-
-
-/**
- * Log messages with a level of `800` or higher.
- * @const
- */
-Level.INFO = new Level('INFO', 800);
-
-
-/**
- * Log messages with a level of `700` or higher.
- * @const
- */
-Level.DEBUG = new Level('DEBUG', 700);
-
-
-/**
- * Log messages with a level of `500` or higher.
- * @const
- */
-Level.FINE = new Level('FINE', 500);
-
-
-/**
- * Log messages with a level of `400` or higher.
- * @const
- */
-Level.FINER = new Level('FINER', 400);
-
-
-/**
- * Log messages with a level of `300` or higher.
- * @const
- */
-Level.FINEST = new Level('FINEST', 300);
-
-
-/**
- * Indicates all log messages should be recorded.
- * @const
- */
-Level.ALL = new Level('ALL', 0);
-
-
-const ALL_LEVELS = /** !Set<Level> */new Set([
- Level.OFF,
- Level.SEVERE,
- Level.WARNING,
- Level.INFO,
- Level.DEBUG,
- Level.FINE,
- Level.FINER,
- Level.FINEST,
- Level.ALL
-]);
-
-
-const LEVELS_BY_NAME = /** !Map<string, !Level> */ new Map([
- [Level.OFF.name, Level.OFF],
- [Level.SEVERE.name, Level.SEVERE],
- [Level.WARNING.name, Level.WARNING],
- [Level.INFO.name, Level.INFO],
- [Level.DEBUG.name, Level.DEBUG],
- [Level.FINE.name, Level.FINE],
- [Level.FINER.name, Level.FINER],
- [Level.FINEST.name, Level.FINEST],
- [Level.ALL.name, Level.ALL]
-]);
-
-
-/**
- * Converts a level name or value to a {@link Level} value. If the name/value
- * is not recognized, {@link Level.ALL} will be returned.
- *
- * @param {(number|string)} nameOrValue The log level name, or value, to
- * convert.
- * @return {!Level} The converted level.
- */
-function getLevel(nameOrValue) {
- if (typeof nameOrValue === 'string') {
- return LEVELS_BY_NAME.get(nameOrValue) || Level.ALL;
- }
- if (typeof nameOrValue !== 'number') {
- throw new TypeError('not a string or number');
- }
- for (let level of ALL_LEVELS) {
- if (nameOrValue >= level.value) {
- return level;
- }
- }
- return Level.ALL;
-}
-
-
-/**
- * Describes a single log entry.
- *
- * @final
- */
-class Entry {
- /**
- * @param {(!Level|string|number)} level The entry level.
- * @param {string} message The log message.
- * @param {number=} opt_timestamp The time this entry was generated, in
- * milliseconds since 0:00:00, January 1, 1970 UTC. If omitted, the
- * current time will be used.
- * @param {string=} opt_type The log type, if known.
- */
- constructor(level, message, opt_timestamp, opt_type) {
- this.level = level instanceof Level ? level : getLevel(level);
- this.message = message;
- this.timestamp =
- typeof opt_timestamp === 'number' ? opt_timestamp : Date.now();
- this.type = opt_type || '';
- }
-
- /**
- * @return {{level: string, message: string, timestamp: number,
- * type: string}} The JSON representation of this entry.
- */
- toJSON() {
- return {
- 'level': this.level.name,
- 'message': this.message,
- 'timestamp': this.timestamp,
- 'type': this.type
- };
- }
-}
-
-
-/** @typedef {(string|function(): string)} */
-let Loggable;
-
-
-/**
- * An object used to log debugging messages. Loggers use a hierarchical,
- * dot-separated naming scheme. For instance, "foo" is considered the parent of
- * the "foo.bar" and an ancestor of "foo.bar.baz".
- *
- * Each logger may be assigned a {@linkplain #setLevel log level}, which
- * controls which level of messages will be reported to the
- * {@linkplain #addHandler handlers} attached to this instance. If a log level
- * is not explicitly set on a logger, it will inherit its parent.
- *
- * This class should never be directly instantiated. Instead, users should
- * obtain logger references using the {@linkplain ./logging.getLogger()
- * getLogger()} function.
- *
- * @final
- */
-class Logger {
- /**
- * @param {string} name the name of this logger.
- * @param {Level=} opt_level the initial level for this logger.
- */
- constructor(name, opt_level) {
- /** @private {string} */
- this.name_ = name;
-
- /** @private {Level} */
- this.level_ = opt_level || null;
-
- /** @private {Logger} */
- this.parent_ = null;
-
- /** @private {Set<function(!Entry)>} */
- this.handlers_ = null;
- }
-
- /** @return {string} the name of this logger. */
- getName() {
- return this.name_;
- }
-
- /**
- * @param {Level} level the new level for this logger, or `null` if the logger
- * should inherit its level from its parent logger.
- */
- setLevel(level) {
- this.level_ = level;
- }
-
- /** @return {Level} the log level for this logger. */
- getLevel() {
- return this.level_;
- }
-
- /**
- * @return {!Level} the effective level for this logger.
- */
- getEffectiveLevel() {
- let logger = this;
- let level;
- do {
- level = logger.level_;
- logger = logger.parent_;
- } while (logger && !level);
- return level || Level.OFF;
- }
-
- /**
- * @param {!Level} level the level to check.
- * @return {boolean} whether messages recorded at the given level are loggable
- * by this instance.
- */
- isLoggable(level) {
- return level.value !== Level.OFF.value
- && level.value >= this.getEffectiveLevel().value;
- }
-
- /**
- * Adds a handler to this logger. The handler will be invoked for each message
- * logged with this instance, or any of its descendants.
- *
- * @param {function(!Entry)} handler the handler to add.
- */
- addHandler(handler) {
- if (!this.handlers_) {
- this.handlers_ = new Set;
- }
- this.handlers_.add(handler);
- }
-
- /**
- * Removes a handler from this logger.
- *
- * @param {function(!Entry)} handler the handler to remove.
- * @return {boolean} whether a handler was successfully removed.
- */
- removeHandler(handler) {
- if (!this.handlers_) {
- return false;
- }
- return this.handlers_.delete(handler);
- }
-
- /**
- * Logs a message at the given level. The message may be defined as a string
- * or as a function that will return the message. If a function is provided,
- * it will only be invoked if this logger's
- * {@linkplain #getEffectiveLevel() effective log level} includes the given
- * `level`.
- *
- * @param {!Level} level the level at which to log the message.
- * @param {(string|function(): string)} loggable the message to log, or a
- * function that will return the message.
- */
- log(level, loggable) {
- if (!this.isLoggable(level)) {
- return;
- }
- let message = '[' + this.name_ + '] '
- + (typeof loggable === 'function' ? loggable() : loggable);
- let entry = new Entry(level, message, Date.now());
- for (let logger = this; !!logger; logger = logger.parent_) {
- if (logger.handlers_) {
- for (let handler of logger.handlers_) {
- handler(entry);
- }
- }
- }
- }
-
- /**
- * Logs a message at the {@link Level.SEVERE} log level.
- * @param {(string|function(): string)} loggable the message to log, or a
- * function that will return the message.
- */
- severe(loggable) {
- this.log(Level.SEVERE, loggable);
- }
-
- /**
- * Logs a message at the {@link Level.WARNING} log level.
- * @param {(string|function(): string)} loggable the message to log, or a
- * function that will return the message.
- */
- warning(loggable) {
- this.log(Level.WARNING, loggable);
- }
-
- /**
- * Logs a message at the {@link Level.INFO} log level.
- * @param {(string|function(): string)} loggable the message to log, or a
- * function that will return the message.
- */
- info(loggable) {
- this.log(Level.INFO, loggable);
- }
-
- /**
- * Logs a message at the {@link Level.DEBUG} log level.
- * @param {(string|function(): string)} loggable the message to log, or a
- * function that will return the message.
- */
- debug(loggable) {
- this.log(Level.DEBUG, loggable);
- }
-
- /**
- * Logs a message at the {@link Level.FINE} log level.
- * @param {(string|function(): string)} loggable the message to log, or a
- * function that will return the message.
- */
- fine(loggable) {
- this.log(Level.FINE, loggable);
- }
-
- /**
- * Logs a message at the {@link Level.FINER} log level.
- * @param {(string|function(): string)} loggable the message to log, or a
- * function that will return the message.
- */
- finer(loggable) {
- this.log(Level.FINER, loggable);
- }
-
- /**
- * Logs a message at the {@link Level.FINEST} log level.
- * @param {(string|function(): string)} loggable the message to log, or a
- * function that will return the message.
- */
- finest(loggable) {
- this.log(Level.FINEST, loggable);
- }
-}
-
-
-/**
- * Maintains a collection of loggers.
- *
- * @final
- */
-class LogManager {
- constructor() {
- /** @private {!Map<string, !Logger>} */
- this.loggers_ = new Map;
- this.root_ = new Logger('', Level.OFF);
- }
-
- /**
- * Retrieves a named logger, creating it in the process. This function will
- * implicitly create the requested logger, and any of its parents, if they
- * do not yet exist.
- *
- * @param {string} name the logger's name.
- * @return {!Logger} the requested logger.
- */
- getLogger(name) {
- if (!name) {
- return this.root_;
- }
- let parent = this.root_;
- for (let i = name.indexOf('.'); i != -1; i = name.indexOf('.', i + 1)) {
- let parentName = name.substr(0, i);
- parent = this.createLogger_(parentName, parent);
- }
- return this.createLogger_(name, parent);
- }
-
- /**
- * Creates a new logger.
- *
- * @param {string} name the logger's name.
- * @param {!Logger} parent the logger's parent.
- * @return {!Logger} the new logger.
- * @private
- */
- createLogger_(name, parent) {
- if (this.loggers_.has(name)) {
- return /** @type {!Logger} */(this.loggers_.get(name));
- }
- let logger = new Logger(name, null);
- logger.parent_ = parent;
- this.loggers_.set(name, logger);
- return logger;
- }
-}
-
-
-const logManager = new LogManager;
-
-
-/**
- * Retrieves a named logger, creating it in the process. This function will
- * implicitly create the requested logger, and any of its parents, if they
- * do not yet exist.
- *
- * The log level will be unspecified for newly created loggers. Use
- * {@link Logger#setLevel(level)} to explicitly set a level.
- *
- * @param {string} name the logger's name.
- * @return {!Logger} the requested logger.
- */
-function getLogger(name) {
- return logManager.getLogger(name);
-}
-
-
-/**
- * Pads a number to ensure it has a minimum of two digits.
- *
- * @param {number} n the number to be padded.
- * @return {string} the padded number.
- */
-function pad(n) {
- if (n >= 10) {
- return '' + n;
- } else {
- return '0' + n;
- }
-}
-
-
-/**
- * Logs all messages to the Console API.
- * @param {!Entry} entry the entry to log.
- */
-function consoleHandler(entry) {
- if (typeof console === 'undefined' || !console) {
- return;
- }
-
- var timestamp = new Date(entry.timestamp);
- var msg =
- '[' + timestamp.getUTCFullYear() + '-' +
- pad(timestamp.getUTCMonth() + 1) + '-' +
- pad(timestamp.getUTCDate()) + 'T' +
- pad(timestamp.getUTCHours()) + ':' +
- pad(timestamp.getUTCMinutes()) + ':' +
- pad(timestamp.getUTCSeconds()) + 'Z] ' +
- '[' + entry.level.name + '] ' +
- entry.message;
-
- var level = entry.level.value;
- if (level >= Level.SEVERE.value) {
- console.error(msg);
- } else if (level >= Level.WARNING.value) {
- console.warn(msg);
- } else {
- console.log(msg);
- }
-}
-
-
-/**
- * Adds the console handler to the given logger. The console handler will log
- * all messages using the JavaScript Console API.
- *
- * @param {Logger=} opt_logger The logger to add the handler to; defaults
- * to the root logger.
- */
-function addConsoleHandler(opt_logger) {
- let logger = opt_logger || logManager.root_;
- logger.addHandler(consoleHandler);
-}
-
-
-/**
- * Removes the console log handler from the given logger.
- *
- * @param {Logger=} opt_logger The logger to remove the handler from; defaults
- * to the root logger.
- * @see exports.addConsoleHandler
- */
-function removeConsoleHandler(opt_logger) {
- let logger = opt_logger || logManager.root_;
- logger.removeHandler(consoleHandler);
-}
-
-
-/**
- * Installs the console log handler on the root logger.
- */
-function installConsoleHandler() {
- addConsoleHandler(logManager.root_);
-}
-
-
-/**
- * Common log types.
- * @enum {string}
- */
-const Type = {
- /** Logs originating from the browser. */
- BROWSER: 'browser',
- /** Logs from a WebDriver client. */
- CLIENT: 'client',
- /** Logs from a WebDriver implementation. */
- DRIVER: 'driver',
- /** Logs related to performance. */
- PERFORMANCE: 'performance',
- /** Logs from the remote server. */
- SERVER: 'server'
-};
-
-
-/**
- * Describes the log preferences for a WebDriver session.
- *
- * @final
- */
-class Preferences {
- constructor() {
- /** @private {!Map<string, !Level>} */
- this.prefs_ = new Map;
- }
-
- /**
- * Sets the desired logging level for a particular log type.
- * @param {(string|Type)} type The log type.
- * @param {(!Level|string|number)} level The desired log level.
- * @throws {TypeError} if `type` is not a `string`.
- */
- setLevel(type, level) {
- if (typeof type !== 'string') {
- throw TypeError('specified log type is not a string: ' + typeof type);
- }
- this.prefs_.set(type, level instanceof Level ? level : getLevel(level));
- }
-
- /**
- * Converts this instance to its JSON representation.
- * @return {!Object<string, string>} The JSON representation of this set of
- * preferences.
- */
- toJSON() {
- let json = {};
- for (let key of this.prefs_.keys()) {
- json[key] = this.prefs_.get(key).name;
- }
- return json;
- }
-}
-
-
-// PUBLIC API
-
-
-module.exports = {
- Entry: Entry,
- Level: Level,
- LogManager: LogManager,
- Logger: Logger,
- Preferences: Preferences,
- Type: Type,
- addConsoleHandler: addConsoleHandler,
- getLevel: getLevel,
- getLogger: getLogger,
- installConsoleHandler: installConsoleHandler,
- removeConsoleHandler: removeConsoleHandler
-};
diff --git a/node_modules/selenium-webdriver/lib/promise.js b/node_modules/selenium-webdriver/lib/promise.js
deleted file mode 100644
index b26cd23ff..000000000
--- a/node_modules/selenium-webdriver/lib/promise.js
+++ /dev/null
@@ -1,3412 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview
- *
- * > ### IMPORTANT NOTICE
- * >
- * > The promise manager contained in this module is in the process of being
- * > phased out in favor of native JavaScript promises. This will be a long
- * > process and will not be completed until there have been two major LTS Node
- * > releases (approx. Node v10.0) that support
- * > [async functions](https://tc39.github.io/ecmascript-asyncawait/).
- * >
- * > At this time, the promise manager can be disabled by setting an environment
- * > variable, `SELENIUM_PROMISE_MANAGER=0`. In the absence of async functions,
- * > users may use generators with the
- * > {@link ./promise.consume promise.consume()} function to write "synchronous"
- * > style tests:
- * >
- * > ```js
- * > const {Builder, By, promise, until} = require('selenium-webdriver');
- * >
- * > let result = promise.consume(function* doGoogleSearch() {
- * > let driver = new Builder().forBrowser('firefox').build();
- * > yield driver.get('http://www.google.com/ncr');
- * > yield driver.findElement(By.name('q')).sendKeys('webdriver');
- * > yield driver.findElement(By.name('btnG')).click();
- * > yield driver.wait(until.titleIs('webdriver - Google Search'), 1000);
- * > yield driver.quit();
- * > });
- * >
- * > result.then(_ => console.log('SUCCESS!'),
- * > e => console.error('FAILURE: ' + e));
- * > ```
- * >
- * > The motivation behind this change and full deprecation plan are documented
- * > in [issue 2969](https://github.com/SeleniumHQ/selenium/issues/2969).
- * >
- * >
- *
- * The promise module is centered around the {@linkplain ControlFlow}, a class
- * that coordinates the execution of asynchronous tasks. The ControlFlow allows
- * users to focus on the imperative commands for their script without worrying
- * about chaining together every single asynchronous action, which can be
- * tedious and verbose. APIs may be layered on top of the control flow to read
- * as if they were synchronous. For instance, the core
- * {@linkplain ./webdriver.WebDriver WebDriver} API is built on top of the
- * control flow, allowing users to write
- *
- * driver.get('http://www.google.com/ncr');
- * driver.findElement({name: 'q'}).sendKeys('webdriver');
- * driver.findElement({name: 'btnGn'}).click();
- *
- * instead of
- *
- * driver.get('http://www.google.com/ncr')
- * .then(function() {
- * return driver.findElement({name: 'q'});
- * })
- * .then(function(q) {
- * return q.sendKeys('webdriver');
- * })
- * .then(function() {
- * return driver.findElement({name: 'btnG'});
- * })
- * .then(function(btnG) {
- * return btnG.click();
- * });
- *
- * ## Tasks and Task Queues
- *
- * The control flow is based on the concept of tasks and task queues. Tasks are
- * functions that define the basic unit of work for the control flow to execute.
- * Each task is scheduled via {@link ControlFlow#execute()}, which will return
- * a {@link ManagedPromise} that will be resolved with the task's result.
- *
- * A task queue contains all of the tasks scheduled within a single turn of the
- * [JavaScript event loop][JSEL]. The control flow will create a new task queue
- * the first time a task is scheduled within an event loop.
- *
- * var flow = promise.controlFlow();
- * flow.execute(foo); // Creates a new task queue and inserts foo.
- * flow.execute(bar); // Inserts bar into the same queue as foo.
- * setTimeout(function() {
- * flow.execute(baz); // Creates a new task queue and inserts baz.
- * }, 0);
- *
- * Whenever the control flow creates a new task queue, it will automatically
- * begin executing tasks in the next available turn of the event loop. This
- * execution is [scheduled as a microtask][MicrotasksArticle] like e.g. a
- * (native) `Promise.then()` callback.
- *
- * setTimeout(() => console.log('a'));
- * Promise.resolve().then(() => console.log('b')); // A native promise.
- * flow.execute(() => console.log('c'));
- * Promise.resolve().then(() => console.log('d'));
- * setTimeout(() => console.log('fin'));
- * // b
- * // c
- * // d
- * // a
- * // fin
- *
- * In the example above, b/c/d is logged before a/fin because native promises
- * and this module use "microtask" timers, which have a higher priority than
- * "macrotasks" like `setTimeout`.
- *
- * ## Task Execution
- *
- * Upon creating a task queue, and whenever an existing queue completes a task,
- * the control flow will schedule a microtask timer to process any scheduled
- * tasks. This ensures no task is ever started within the same turn of the
- * JavaScript event loop in which it was scheduled, nor is a task ever started
- * within the same turn that another finishes.
- *
- * When the execution timer fires, a single task will be dequeued and executed.
- * There are several important events that may occur while executing a task
- * function:
- *
- * 1. A new task queue is created by a call to {@link ControlFlow#execute()}.
- * Any tasks scheduled within this task queue are considered subtasks of the
- * current task.
- * 2. The task function throws an error. Any scheduled tasks are immediately
- * discarded and the task's promised result (previously returned by
- * {@link ControlFlow#execute()}) is immediately rejected with the thrown
- * error.
- * 3. The task function returns successfully.
- *
- * If a task function created a new task queue, the control flow will wait for
- * that queue to complete before processing the task result. If the queue
- * completes without error, the flow will settle the task's promise with the
- * value originally returned by the task function. On the other hand, if the task
- * queue terminates with an error, the task's promise will be rejected with that
- * error.
- *
- * flow.execute(function() {
- * flow.execute(() => console.log('a'));
- * flow.execute(() => console.log('b'));
- * });
- * flow.execute(() => console.log('c'));
- * // a
- * // b
- * // c
- *
- * ## ManagedPromise Integration
- *
- * In addition to the {@link ControlFlow} class, the promise module also exports
- * a [Promises/A+] {@linkplain ManagedPromise implementation} that is deeply
- * integrated with the ControlFlow. First and foremost, each promise
- * {@linkplain ManagedPromise#then() callback} is scheduled with the
- * control flow as a task. As a result, each callback is invoked in its own turn
- * of the JavaScript event loop with its own task queue. If any tasks are
- * scheduled within a callback, the callback's promised result will not be
- * settled until the task queue has completed.
- *
- * promise.fulfilled().then(function() {
- * flow.execute(function() {
- * console.log('b');
- * });
- * }).then(() => console.log('a'));
- * // b
- * // a
- *
- * ### Scheduling ManagedPromise Callbacks <a id="scheduling_callbacks"></a>
- *
- * How callbacks are scheduled in the control flow depends on when they are
- * attached to the promise. Callbacks attached to a _previously_ resolved
- * promise are immediately enqueued as subtasks of the currently running task.
- *
- * var p = promise.fulfilled();
- * flow.execute(function() {
- * flow.execute(() => console.log('A'));
- * p.then( () => console.log('B'));
- * flow.execute(() => console.log('C'));
- * p.then( () => console.log('D'));
- * }).then(function() {
- * console.log('fin');
- * });
- * // A
- * // B
- * // C
- * // D
- * // fin
- *
- * When a promise is resolved while a task function is on the call stack, any
- * callbacks also registered in that stack frame are scheduled as if the promise
- * were already resolved:
- *
- * var d = promise.defer();
- * flow.execute(function() {
- * flow.execute( () => console.log('A'));
- * d.promise.then(() => console.log('B'));
- * flow.execute( () => console.log('C'));
- * d.promise.then(() => console.log('D'));
- *
- * d.fulfill();
- * }).then(function() {
- * console.log('fin');
- * });
- * // A
- * // B
- * // C
- * // D
- * // fin
- *
- * Callbacks attached to an _unresolved_ promise within a task function are
- * only weakly scheduled as subtasks and will be dropped if they reach the
- * front of the queue before the promise is resolved. In the example below, the
- * callbacks for `B` & `D` are dropped as sub-tasks since they are attached to
- * an unresolved promise when they reach the front of the task queue.
- *
- * var d = promise.defer();
- * flow.execute(function() {
- * flow.execute( () => console.log('A'));
- * d.promise.then(() => console.log('B'));
- * flow.execute( () => console.log('C'));
- * d.promise.then(() => console.log('D'));
- *
- * setTimeout(d.fulfill, 20);
- * }).then(function() {
- * console.log('fin')
- * });
- * // A
- * // C
- * // fin
- * // B
- * // D
- *
- * If a promise is resolved while a task function is on the call stack, any
- * previously registered and unqueued callbacks (i.e. either attached while no
- * task was on the call stack, or previously dropped as described above) act as
- * _interrupts_ and are inserted at the front of the task queue. If multiple
- * promises are fulfilled, their interrupts are enqueued in the order the
- * promises are resolved.
- *
- * var d1 = promise.defer();
- * d1.promise.then(() => console.log('A'));
- *
- * var d2 = promise.defer();
- * d2.promise.then(() => console.log('B'));
- *
- * flow.execute(function() {
- * d1.promise.then(() => console.log('C'));
- * flow.execute(() => console.log('D'));
- * });
- * flow.execute(function() {
- * flow.execute(() => console.log('E'));
- * flow.execute(() => console.log('F'));
- * d1.fulfill();
- * d2.fulfill();
- * }).then(function() {
- * console.log('fin');
- * });
- * // D
- * // A
- * // C
- * // B
- * // E
- * // F
- * // fin
- *
- * Within a task function (or callback), each step of a promise chain acts as
- * an interrupt on the task queue:
- *
- * var d = promise.defer();
- * flow.execute(function() {
- * d.promise.
- * then(() => console.log('A')).
- * then(() => console.log('B')).
- * then(() => console.log('C')).
- * then(() => console.log('D'));
- *
- * flow.execute(() => console.log('E'));
- * d.fulfill();
- * }).then(function() {
- * console.log('fin');
- * });
- * // A
- * // B
- * // C
- * // D
- * // E
- * // fin
- *
- * If there are multiple promise chains derived from a single promise, they are
- * processed in the order created:
- *
- * var d = promise.defer();
- * flow.execute(function() {
- * var chain = d.promise.then(() => console.log('A'));
- *
- * chain.then(() => console.log('B')).
- * then(() => console.log('C'));
- *
- * chain.then(() => console.log('D')).
- * then(() => console.log('E'));
- *
- * flow.execute(() => console.log('F'));
- *
- * d.fulfill();
- * }).then(function() {
- * console.log('fin');
- * });
- * // A
- * // B
- * // C
- * // D
- * // E
- * // F
- * // fin
- *
- * Even though a subtask's promised result will never resolve while the task
- * function is on the stack, it will be treated as a promise resolved within the
- * task. In all other scenarios, a task's promise behaves just like a normal
- * promise. In the sample below, `C/D` is logged before `B` because the
- * resolution of `subtask1` interrupts the flow of the enclosing task. Within
- * the final subtask, `E/F` is logged in order because `subtask1` is a resolved
- * promise when that task runs.
- *
- * flow.execute(function() {
- * var subtask1 = flow.execute(() => console.log('A'));
- * var subtask2 = flow.execute(() => console.log('B'));
- *
- * subtask1.then(() => console.log('C'));
- * subtask1.then(() => console.log('D'));
- *
- * flow.execute(function() {
- * flow.execute(() => console.log('E'));
- * subtask1.then(() => console.log('F'));
- * });
- * }).then(function() {
- * console.log('fin');
- * });
- * // A
- * // C
- * // D
- * // B
- * // E
- * // F
- * // fin
- *
- * Finally, consider the following:
- *
- * var d = promise.defer();
- * d.promise.then(() => console.log('A'));
- * d.promise.then(() => console.log('B'));
- *
- * flow.execute(function() {
- * flow.execute( () => console.log('C'));
- * d.promise.then(() => console.log('D'));
- *
- * flow.execute( () => console.log('E'));
- * d.promise.then(() => console.log('F'));
- *
- * d.fulfill();
- *
- * flow.execute( () => console.log('G'));
- * d.promise.then(() => console.log('H'));
- * }).then(function() {
- * console.log('fin');
- * });
- * // A
- * // B
- * // C
- * // D
- * // E
- * // F
- * // G
- * // H
- * // fin
- *
- * In this example, callbacks are registered on `d.promise` both before and
- * during the invocation of the task function. When `d.fulfill()` is called,
- * the callbacks registered before the task (`A` & `B`) are registered as
- * interrupts. The remaining callbacks were all attached within the task and
- * are scheduled in the flow as standard tasks.
- *
- * ## Generator Support
- *
- * [Generators][GF] may be scheduled as tasks within a control flow or attached
- * as callbacks to a promise. Each time the generator yields a promise, the
- * control flow will wait for that promise to settle before executing the next
- * iteration of the generator. The yielded promise's fulfilled value will be
- * passed back into the generator:
- *
- * flow.execute(function* () {
- * var d = promise.defer();
- *
- * setTimeout(() => console.log('...waiting...'), 25);
- * setTimeout(() => d.fulfill(123), 50);
- *
- * console.log('start: ' + Date.now());
- *
- * var value = yield d.promise;
- * console.log('mid: %d; value = %d', Date.now(), value);
- *
- * yield promise.delayed(10);
- * console.log('end: ' + Date.now());
- * }).then(function() {
- * console.log('fin');
- * });
- * // start: 0
- * // ...waiting...
- * // mid: 50; value = 123
- * // end: 60
- * // fin
- *
- * Yielding the result of a promise chain will wait for the entire chain to
- * complete:
- *
- * promise.fulfilled().then(function* () {
- * console.log('start: ' + Date.now());
- *
- * var value = yield flow.
- * execute(() => console.log('A')).
- * then( () => console.log('B')).
- * then( () => 123);
- *
- * console.log('mid: %s; value = %d', Date.now(), value);
- *
- * yield flow.execute(() => console.log('C'));
- * }).then(function() {
- * console.log('fin');
- * });
- * // start: 0
- * // A
- * // B
- * // mid: 2; value = 123
- * // C
- * // fin
- *
- * Yielding a _rejected_ promise will cause the rejected value to be thrown
- * within the generator function:
- *
- * flow.execute(function* () {
- * console.log('start: ' + Date.now());
- * try {
- * yield promise.delayed(10).then(function() {
- * throw Error('boom');
- * });
- * } catch (ex) {
- * console.log('caught time: ' + Date.now());
- * console.log(ex.message);
- * }
- * });
- * // start: 0
- * // caught time: 10
- * // boom
- *
- * # Error Handling
- *
- * ES6 promises do not require users to handle a promise rejections. This can
- * result in subtle bugs as the rejections are silently "swallowed" by the
- * Promise class.
- *
- * Promise.reject(Error('boom'));
- * // ... *crickets* ...
- *
- * Selenium's promise module, on the other hand, requires that every rejection
- * be explicitly handled. When a {@linkplain ManagedPromise ManagedPromise} is
- * rejected and no callbacks are defined on that promise, it is considered an
- * _unhandled rejection_ and reported to the active task queue. If the rejection
- * remains unhandled after a single turn of the [event loop][JSEL] (scheduled
- * with a microtask), it will propagate up the stack.
- *
- * ## Error Propagation
- *
- * If an unhandled rejection occurs within a task function, that task's promised
- * result is rejected and all remaining subtasks are discarded:
- *
- * flow.execute(function() {
- * // No callbacks registered on promise -> unhandled rejection
- * promise.rejected(Error('boom'));
- * flow.execute(function() { console.log('this will never run'); });
- * }).catch(function(e) {
- * console.log(e.message);
- * });
- * // boom
- *
- * The promised results for discarded tasks are silently rejected with a
- * cancellation error and existing callback chains will never fire.
- *
- * flow.execute(function() {
- * promise.rejected(Error('boom'));
- * flow.execute(function() { console.log('a'); }).
- * then(function() { console.log('b'); });
- * }).catch(function(e) {
- * console.log(e.message);
- * });
- * // boom
- *
- * An unhandled rejection takes precedence over a task function's returned
- * result, even if that value is another promise:
- *
- * flow.execute(function() {
- * promise.rejected(Error('boom'));
- * return flow.execute(someOtherTask);
- * }).catch(function(e) {
- * console.log(e.message);
- * });
- * // boom
- *
- * If there are multiple unhandled rejections within a task, they are packaged
- * in a {@link MultipleUnhandledRejectionError}, which has an `errors` property
- * that is a `Set` of the recorded unhandled rejections:
- *
- * flow.execute(function() {
- * promise.rejected(Error('boom1'));
- * promise.rejected(Error('boom2'));
- * }).catch(function(ex) {
- * console.log(ex instanceof MultipleUnhandledRejectionError);
- * for (var e of ex.errors) {
- * console.log(e.message);
- * }
- * });
- * // boom1
- * // boom2
- *
- * When a subtask is discarded due to an unreported rejection in its parent
- * frame, the existing callbacks on that task will never settle and the
- * callbacks will not be invoked. If a new callback is attached to the subtask
- * _after_ it has been discarded, it is handled the same as adding a callback
- * to a cancelled promise: the error-callback path is invoked. This behavior is
- * intended to handle cases where the user saves a reference to a task promise,
- * as illustrated below.
- *
- * var subTask;
- * flow.execute(function() {
- * promise.rejected(Error('boom'));
- * subTask = flow.execute(function() {});
- * }).catch(function(e) {
- * console.log(e.message);
- * }).then(function() {
- * return subTask.then(
- * () => console.log('subtask success!'),
- * (e) => console.log('subtask failed:\n' + e));
- * });
- * // boom
- * // subtask failed:
- * // DiscardedTaskError: Task was discarded due to a previous failure: boom
- *
- * When a subtask fails, its promised result is treated the same as any other
- * promise: it must be handled within one turn of the rejection or the unhandled
- * rejection is propagated to the parent task. This means users can catch errors
- * from complex flows from the top level task:
- *
- * flow.execute(function() {
- * flow.execute(function() {
- * flow.execute(function() {
- * throw Error('fail!');
- * });
- * });
- * }).catch(function(e) {
- * console.log(e.message);
- * });
- * // fail!
- *
- * ## Unhandled Rejection Events
- *
- * When an unhandled rejection propagates to the root of the control flow, the
- * flow will emit an __uncaughtException__ event. If no listeners are registered
- * on the flow, the error will be rethrown to the global error handler: an
- * __uncaughtException__ event from the
- * [`process`](https://nodejs.org/api/process.html) object in node, or
- * `window.onerror` when running in a browser.
- *
- * Bottom line: you __*must*__ handle rejected promises.
- *
- * # Promises/A+ Compatibility
- *
- * This `promise` module is compliant with the [Promises/A+] specification
- * except for sections `2.2.6.1` and `2.2.6.2`:
- *
- * >
- * > - `then` may be called multiple times on the same promise.
- * > - If/when `promise` is fulfilled, all respective `onFulfilled` callbacks
- * > must execute in the order of their originating calls to `then`.
- * > - If/when `promise` is rejected, all respective `onRejected` callbacks
- * > must execute in the order of their originating calls to `then`.
- * >
- *
- * Specifically, the conformance tests contain the following scenario (for
- * brevity, only the fulfillment version is shown):
- *
- * var p1 = Promise.resolve();
- * p1.then(function() {
- * console.log('A');
- * p1.then(() => console.log('B'));
- * });
- * p1.then(() => console.log('C'));
- * // A
- * // C
- * // B
- *
- * Since the [ControlFlow](#scheduling_callbacks) executes promise callbacks as
- * tasks, with this module, the result would be:
- *
- * var p2 = promise.fulfilled();
- * p2.then(function() {
- * console.log('A');
- * p2.then(() => console.log('B');
- * });
- * p2.then(() => console.log('C'));
- * // A
- * // B
- * // C
- *
- * [JSEL]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop
- * [GF]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function*
- * [Promises/A+]: https://promisesaplus.com/
- * [MicrotasksArticle]: https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/
- */
-
-'use strict';
-
-const error = require('./error');
-const events = require('./events');
-const logging = require('./logging');
-
-
-/**
- * Alias to help with readability and differentiate types.
- * @const
- */
-const NativePromise = Promise;
-
-
-/**
- * Whether to append traces of `then` to rejection errors.
- * @type {boolean}
- */
-var LONG_STACK_TRACES = false; // TODO: this should not be CONSTANT_CASE
-
-
-/** @const */
-const LOG = logging.getLogger('promise');
-
-
-const UNIQUE_IDS = new WeakMap;
-let nextId = 1;
-
-
-function getUid(obj) {
- let id = UNIQUE_IDS.get(obj);
- if (!id) {
- id = nextId;
- nextId += 1;
- UNIQUE_IDS.set(obj, id);
- }
- return id;
-}
-
-
-/**
- * Runs the given function after a microtask yield.
- * @param {function()} fn The function to run.
- */
-function asyncRun(fn) {
- NativePromise.resolve().then(function() {
- try {
- fn();
- } catch (ignored) {
- // Do nothing.
- }
- });
-}
-
-/**
- * @param {number} level What level of verbosity to log with.
- * @param {(string|function(this: T): string)} loggable The message to log.
- * @param {T=} opt_self The object in whose context to run the loggable
- * function.
- * @template T
- */
-function vlog(level, loggable, opt_self) {
- var logLevel = logging.Level.FINE;
- if (level > 1) {
- logLevel = logging.Level.FINEST;
- } else if (level > 0) {
- logLevel = logging.Level.FINER;
- }
-
- if (typeof loggable === 'function') {
- loggable = loggable.bind(opt_self);
- }
-
- LOG.log(logLevel, loggable);
-}
-
-
-/**
- * Generates an error to capture the current stack trace.
- * @param {string} name Error name for this stack trace.
- * @param {string} msg Message to record.
- * @param {Function=} opt_topFn The function that should appear at the top of
- * the stack; only applicable in V8.
- * @return {!Error} The generated error.
- */
-function captureStackTrace(name, msg, opt_topFn) {
- var e = Error(msg);
- e.name = name;
- if (Error.captureStackTrace) {
- Error.captureStackTrace(e, opt_topFn);
- } else {
- var stack = Error().stack;
- if (stack) {
- e.stack = e.toString();
- e.stack += '\n' + stack;
- }
- }
- return e;
-}
-
-
-/**
- * Error used when the computation of a promise is cancelled.
- */
-class CancellationError extends Error {
- /**
- * @param {string=} opt_msg The cancellation message.
- */
- constructor(opt_msg) {
- super(opt_msg);
-
- /** @override */
- this.name = this.constructor.name;
-
- /** @private {boolean} */
- this.silent_ = false;
- }
-
- /**
- * Wraps the given error in a CancellationError.
- *
- * @param {*} error The error to wrap.
- * @param {string=} opt_msg The prefix message to use.
- * @return {!CancellationError} A cancellation error.
- */
- static wrap(error, opt_msg) {
- var message;
- if (error instanceof CancellationError) {
- return new CancellationError(
- opt_msg ? (opt_msg + ': ' + error.message) : error.message);
- } else if (opt_msg) {
- message = opt_msg;
- if (error) {
- message += ': ' + error;
- }
- return new CancellationError(message);
- }
- if (error) {
- message = error + '';
- }
- return new CancellationError(message);
- }
-}
-
-
-/**
- * Error used to cancel tasks when a control flow is reset.
- * @final
- */
-class FlowResetError extends CancellationError {
- constructor() {
- super('ControlFlow was reset');
- this.silent_ = true;
- }
-}
-
-
-/**
- * Error used to cancel tasks that have been discarded due to an uncaught error
- * reported earlier in the control flow.
- * @final
- */
-class DiscardedTaskError extends CancellationError {
- /** @param {*} error The original error. */
- constructor(error) {
- if (error instanceof DiscardedTaskError) {
- return /** @type {!DiscardedTaskError} */(error);
- }
-
- var msg = '';
- if (error) {
- msg = ': ' + (
- typeof error.message === 'string' ? error.message : error);
- }
-
- super('Task was discarded due to a previous failure' + msg);
- this.silent_ = true;
- }
-}
-
-
-/**
- * Error used when there are multiple unhandled promise rejections detected
- * within a task or callback.
- *
- * @final
- */
-class MultipleUnhandledRejectionError extends Error {
- /**
- * @param {!(Set<*>)} errors The errors to report.
- */
- constructor(errors) {
- super('Multiple unhandled promise rejections reported');
-
- /** @override */
- this.name = this.constructor.name;
-
- /** @type {!Set<*>} */
- this.errors = errors;
- }
-}
-
-
-/**
- * Property used to flag constructor's as implementing the Thenable interface
- * for runtime type checking.
- * @const
- */
-const IMPLEMENTED_BY_SYMBOL = Symbol('promise.Thenable');
-const CANCELLABLE_SYMBOL = Symbol('promise.CancellableThenable');
-
-
-/**
- * @param {function(new: ?)} ctor
- * @param {!Object} symbol
- */
-function addMarkerSymbol(ctor, symbol) {
- try {
- ctor.prototype[symbol] = true;
- } catch (ignored) {
- // Property access denied?
- }
-}
-
-
-/**
- * @param {*} object
- * @param {!Object} symbol
- * @return {boolean}
- */
-function hasMarkerSymbol(object, symbol) {
- if (!object) {
- return false;
- }
- try {
- return !!object[symbol];
- } catch (e) {
- return false; // Property access seems to be forbidden.
- }
-}
-
-
-/**
- * Thenable is a promise-like object with a {@code then} method which may be
- * used to schedule callbacks on a promised value.
- *
- * @record
- * @extends {IThenable<T>}
- * @template T
- */
-class Thenable {
- /**
- * Adds a property to a class prototype to allow runtime checks of whether
- * instances of that class implement the Thenable interface.
- * @param {function(new: Thenable, ...?)} ctor The
- * constructor whose prototype to modify.
- */
- static addImplementation(ctor) {
- addMarkerSymbol(ctor, IMPLEMENTED_BY_SYMBOL);
- }
-
- /**
- * Checks if an object has been tagged for implementing the Thenable
- * interface as defined by {@link Thenable.addImplementation}.
- * @param {*} object The object to test.
- * @return {boolean} Whether the object is an implementation of the Thenable
- * interface.
- */
- static isImplementation(object) {
- return hasMarkerSymbol(object, IMPLEMENTED_BY_SYMBOL);
- }
-
- /**
- * Registers listeners for when this instance is resolved.
- *
- * @param {?(function(T): (R|IThenable<R>))=} opt_callback The
- * function to call if this promise is successfully resolved. The function
- * should expect a single argument: the promise's resolved value.
- * @param {?(function(*): (R|IThenable<R>))=} opt_errback
- * The function to call if this promise is rejected. The function should
- * expect a single argument: the rejection reason.
- * @return {!Thenable<R>} A new promise which will be resolved with the result
- * of the invoked callback.
- * @template R
- */
- then(opt_callback, opt_errback) {}
-
- /**
- * Registers a listener for when this promise is rejected. This is synonymous
- * with the {@code catch} clause in a synchronous API:
- *
- * // Synchronous API:
- * try {
- * doSynchronousWork();
- * } catch (ex) {
- * console.error(ex);
- * }
- *
- * // Asynchronous promise API:
- * doAsynchronousWork().catch(function(ex) {
- * console.error(ex);
- * });
- *
- * @param {function(*): (R|IThenable<R>)} errback The
- * function to call if this promise is rejected. The function should
- * expect a single argument: the rejection reason.
- * @return {!Thenable<R>} A new promise which will be resolved with the result
- * of the invoked callback.
- * @template R
- */
- catch(errback) {}
-}
-
-
-/**
- * Marker interface for objects that allow consumers to request the cancellation
- * of a promise-based operation. A cancelled promise will be rejected with a
- * {@link CancellationError}.
- *
- * This interface is considered package-private and should not be used outside
- * of selenium-webdriver.
- *
- * @interface
- * @extends {Thenable<T>}
- * @template T
- * @package
- */
-class CancellableThenable {
- /**
- * @param {function(new: CancellableThenable, ...?)} ctor
- */
- static addImplementation(ctor) {
- Thenable.addImplementation(ctor);
- addMarkerSymbol(ctor, CANCELLABLE_SYMBOL);
- }
-
- /**
- * @param {*} object
- * @return {boolean}
- */
- static isImplementation(object) {
- return hasMarkerSymbol(object, CANCELLABLE_SYMBOL);
- }
-
- /**
- * Requests the cancellation of the computation of this promise's value,
- * rejecting the promise in the process. This method is a no-op if the promise
- * has already been resolved.
- *
- * @param {(string|Error)=} opt_reason The reason this promise is being
- * cancelled. This value will be wrapped in a {@link CancellationError}.
- */
- cancel(opt_reason) {}
-}
-
-
-/**
- * @enum {string}
- */
-const PromiseState = {
- PENDING: 'pending',
- BLOCKED: 'blocked',
- REJECTED: 'rejected',
- FULFILLED: 'fulfilled'
-};
-
-
-/**
- * Internal map used to store cancellation handlers for {@link ManagedPromise}
- * objects. This is an internal implementation detail used by the
- * {@link TaskQueue} class to monitor for when a promise is cancelled without
- * generating an extra promise via then().
- *
- * @const {!WeakMap<!ManagedPromise, function(!CancellationError)>}
- */
-const ON_CANCEL_HANDLER = new WeakMap;
-
-const SKIP_LOG = Symbol('skip-log');
-const FLOW_LOG = logging.getLogger('promise.ControlFlow');
-
-
-/**
- * Represents the eventual value of a completed operation. Each promise may be
- * in one of three states: pending, fulfilled, or rejected. Each promise starts
- * in the pending state and may make a single transition to either a
- * fulfilled or rejected state, at which point the promise is considered
- * resolved.
- *
- * @implements {CancellableThenable<T>}
- * @template T
- * @see http://promises-aplus.github.io/promises-spec/
- */
-class ManagedPromise {
- /**
- * @param {function(
- * function((T|IThenable<T>|Thenable)=),
- * function(*=))} resolver
- * Function that is invoked immediately to begin computation of this
- * promise's value. The function should accept a pair of callback
- * functions, one for fulfilling the promise and another for rejecting it.
- * @param {ControlFlow=} opt_flow The control flow
- * this instance was created under. Defaults to the currently active flow.
- * @param {?=} opt_skipLog An internal parameter used to skip logging the
- * creation of this promise. This parameter has no effect unless it is
- * strictly equal to an internal symbol. In other words, this parameter
- * is always ignored for external code.
- */
- constructor(resolver, opt_flow, opt_skipLog) {
- if (!usePromiseManager()) {
- throw TypeError(
- 'Unable to create a managed promise instance: the promise manager has'
- + ' been disabled by the SELENIUM_PROMISE_MANAGER environment'
- + ' variable: ' + process.env['SELENIUM_PROMISE_MANAGER']);
- } else if (opt_skipLog !== SKIP_LOG) {
- FLOW_LOG.warning(() => {
- let e =
- captureStackTrace(
- 'ManagedPromiseError',
- 'Creating a new managed Promise. This call will fail when the'
- + ' promise manager is disabled',
- ManagedPromise)
- return e.stack;
- });
- }
-
- getUid(this);
-
- /** @private {!ControlFlow} */
- this.flow_ = opt_flow || controlFlow();
-
- /** @private {Error} */
- this.stack_ = null;
- if (LONG_STACK_TRACES) {
- this.stack_ = captureStackTrace('ManagedPromise', 'new', this.constructor);
- }
-
- /** @private {Thenable<?>} */
- this.parent_ = null;
-
- /** @private {Array<!Task>} */
- this.callbacks_ = null;
-
- /** @private {PromiseState} */
- this.state_ = PromiseState.PENDING;
-
- /** @private {boolean} */
- this.handled_ = false;
-
- /** @private {*} */
- this.value_ = undefined;
-
- /** @private {TaskQueue} */
- this.queue_ = null;
-
- try {
- var self = this;
- resolver(function(value) {
- self.resolve_(PromiseState.FULFILLED, value);
- }, function(reason) {
- self.resolve_(PromiseState.REJECTED, reason);
- });
- } catch (ex) {
- this.resolve_(PromiseState.REJECTED, ex);
- }
- }
-
- /**
- * Creates a promise that is immediately resolved with the given value.
- *
- * @param {T=} opt_value The value to resolve.
- * @return {!ManagedPromise<T>} A promise resolved with the given value.
- * @template T
- */
- static resolve(opt_value) {
- if (opt_value instanceof ManagedPromise) {
- return opt_value;
- }
- return new ManagedPromise(resolve => resolve(opt_value));
- }
-
- /**
- * Creates a promise that is immediately rejected with the given reason.
- *
- * @param {*=} opt_reason The rejection reason.
- * @return {!ManagedPromise<?>} A new rejected promise.
- */
- static reject(opt_reason) {
- return new ManagedPromise((_, reject) => reject(opt_reason));
- }
-
- /** @override */
- toString() {
- return 'ManagedPromise::' + getUid(this) +
- ' {[[PromiseStatus]]: "' + this.state_ + '"}';
- }
-
- /**
- * Resolves this promise. If the new value is itself a promise, this function
- * will wait for it to be resolved before notifying the registered listeners.
- * @param {PromiseState} newState The promise's new state.
- * @param {*} newValue The promise's new value.
- * @throws {TypeError} If {@code newValue === this}.
- * @private
- */
- resolve_(newState, newValue) {
- if (PromiseState.PENDING !== this.state_) {
- return;
- }
-
- if (newValue === this) {
- // See promise a+, 2.3.1
- // http://promises-aplus.github.io/promises-spec/#point-48
- newValue = new TypeError('A promise may not resolve to itself');
- newState = PromiseState.REJECTED;
- }
-
- this.parent_ = null;
- this.state_ = PromiseState.BLOCKED;
-
- if (newState !== PromiseState.REJECTED) {
- if (Thenable.isImplementation(newValue)) {
- // 2.3.2
- newValue = /** @type {!Thenable} */(newValue);
- this.parent_ = newValue;
- newValue.then(
- this.unblockAndResolve_.bind(this, PromiseState.FULFILLED),
- this.unblockAndResolve_.bind(this, PromiseState.REJECTED));
- return;
-
- } else if (newValue
- && (typeof newValue === 'object' || typeof newValue === 'function')) {
- // 2.3.3
-
- try {
- // 2.3.3.1
- var then = newValue['then'];
- } catch (e) {
- // 2.3.3.2
- this.state_ = PromiseState.REJECTED;
- this.value_ = e;
- this.scheduleNotifications_();
- return;
- }
-
- if (typeof then === 'function') {
- // 2.3.3.3
- this.invokeThen_(/** @type {!Object} */(newValue), then);
- return;
- }
- }
- }
-
- if (newState === PromiseState.REJECTED &&
- isError(newValue) && newValue.stack && this.stack_) {
- newValue.stack += '\nFrom: ' + (this.stack_.stack || this.stack_);
- }
-
- // 2.3.3.4 and 2.3.4
- this.state_ = newState;
- this.value_ = newValue;
- this.scheduleNotifications_();
- }
-
- /**
- * Invokes a thenable's "then" method according to 2.3.3.3 of the promise
- * A+ spec.
- * @param {!Object} x The thenable object.
- * @param {!Function} then The "then" function to invoke.
- * @private
- */
- invokeThen_(x, then) {
- var called = false;
- var self = this;
-
- var resolvePromise = function(value) {
- if (!called) { // 2.3.3.3.3
- called = true;
- // 2.3.3.3.1
- self.unblockAndResolve_(PromiseState.FULFILLED, value);
- }
- };
-
- var rejectPromise = function(reason) {
- if (!called) { // 2.3.3.3.3
- called = true;
- // 2.3.3.3.2
- self.unblockAndResolve_(PromiseState.REJECTED, reason);
- }
- };
-
- try {
- // 2.3.3.3
- then.call(x, resolvePromise, rejectPromise);
- } catch (e) {
- // 2.3.3.3.4.2
- rejectPromise(e);
- }
- }
-
- /**
- * @param {PromiseState} newState The promise's new state.
- * @param {*} newValue The promise's new value.
- * @private
- */
- unblockAndResolve_(newState, newValue) {
- if (this.state_ === PromiseState.BLOCKED) {
- this.state_ = PromiseState.PENDING;
- this.resolve_(newState, newValue);
- }
- }
-
- /**
- * @private
- */
- scheduleNotifications_() {
- vlog(2, () => this + ' scheduling notifications', this);
-
- ON_CANCEL_HANDLER.delete(this);
- if (this.value_ instanceof CancellationError
- && this.value_.silent_) {
- this.callbacks_ = null;
- }
-
- if (!this.queue_) {
- this.queue_ = this.flow_.getActiveQueue_();
- }
-
- if (!this.handled_ &&
- this.state_ === PromiseState.REJECTED &&
- !(this.value_ instanceof CancellationError)) {
- this.queue_.addUnhandledRejection(this);
- }
- this.queue_.scheduleCallbacks(this);
- }
-
- /** @override */
- cancel(opt_reason) {
- if (!canCancel(this)) {
- return;
- }
-
- if (this.parent_ && canCancel(this.parent_)) {
- /** @type {!CancellableThenable} */(this.parent_).cancel(opt_reason);
- } else {
- var reason = CancellationError.wrap(opt_reason);
- let onCancel = ON_CANCEL_HANDLER.get(this);
- if (onCancel) {
- onCancel(reason);
- ON_CANCEL_HANDLER.delete(this);
- }
-
- if (this.state_ === PromiseState.BLOCKED) {
- this.unblockAndResolve_(PromiseState.REJECTED, reason);
- } else {
- this.resolve_(PromiseState.REJECTED, reason);
- }
- }
-
- function canCancel(promise) {
- if (!(promise instanceof ManagedPromise)) {
- return CancellableThenable.isImplementation(promise);
- }
- return promise.state_ === PromiseState.PENDING
- || promise.state_ === PromiseState.BLOCKED;
- }
- }
-
- /** @override */
- then(opt_callback, opt_errback) {
- return this.addCallback_(
- opt_callback, opt_errback, 'then', ManagedPromise.prototype.then);
- }
-
- /** @override */
- catch(errback) {
- return this.addCallback_(
- null, errback, 'catch', ManagedPromise.prototype.catch);
- }
-
- /**
- * @param {function(): (R|IThenable<R>)} callback
- * @return {!ManagedPromise<R>}
- * @template R
- * @see ./promise.finally()
- */
- finally(callback) {
- let result = thenFinally(this, callback);
- return /** @type {!ManagedPromise} */(result);
- }
-
- /**
- * Registers a new callback with this promise
- * @param {(function(T): (R|IThenable<R>)|null|undefined)} callback The
- * fulfillment callback.
- * @param {(function(*): (R|IThenable<R>)|null|undefined)} errback The
- * rejection callback.
- * @param {string} name The callback name.
- * @param {!Function} fn The function to use as the top of the stack when
- * recording the callback's creation point.
- * @return {!ManagedPromise<R>} A new promise which will be resolved with the
- * result of the invoked callback.
- * @template R
- * @private
- */
- addCallback_(callback, errback, name, fn) {
- if (typeof callback !== 'function' && typeof errback !== 'function') {
- return this;
- }
-
- this.handled_ = true;
- if (this.queue_) {
- this.queue_.clearUnhandledRejection(this);
- }
-
- var cb = new Task(
- this.flow_,
- this.invokeCallback_.bind(this, callback, errback),
- name,
- LONG_STACK_TRACES ? {name: 'Promise', top: fn} : undefined);
- cb.promise.parent_ = this;
-
- if (this.state_ !== PromiseState.PENDING &&
- this.state_ !== PromiseState.BLOCKED) {
- this.flow_.getActiveQueue_().enqueue(cb);
- } else {
- if (!this.callbacks_) {
- this.callbacks_ = [];
- }
- this.callbacks_.push(cb);
- cb.blocked = true;
- this.flow_.getActiveQueue_().enqueue(cb);
- }
-
- return cb.promise;
- }
-
- /**
- * Invokes a callback function attached to this promise.
- * @param {(function(T): (R|IThenable<R>)|null|undefined)} callback The
- * fulfillment callback.
- * @param {(function(*): (R|IThenable<R>)|null|undefined)} errback The
- * rejection callback.
- * @template R
- * @private
- */
- invokeCallback_(callback, errback) {
- var callbackFn = callback;
- if (this.state_ === PromiseState.REJECTED) {
- callbackFn = errback;
- }
-
- if (typeof callbackFn === 'function') {
- if (isGenerator(callbackFn)) {
- return consume(callbackFn, null, this.value_);
- }
- return callbackFn(this.value_);
- } else if (this.state_ === PromiseState.REJECTED) {
- throw this.value_;
- } else {
- return this.value_;
- }
- }
-}
-CancellableThenable.addImplementation(ManagedPromise);
-
-
-/**
- * @param {!ManagedPromise} promise
- * @return {boolean}
- */
-function isPending(promise) {
- return promise.state_ === PromiseState.PENDING;
-}
-
-
-/**
- * Structural interface for a deferred promise resolver.
- * @record
- * @template T
- */
-function Resolver() {}
-
-
-/**
- * The promised value for this resolver.
- * @type {!Thenable<T>}
- */
-Resolver.prototype.promise;
-
-
-/**
- * Resolves the promised value with the given `value`.
- * @param {T|Thenable<T>} value
- * @return {void}
- */
-Resolver.prototype.resolve;
-
-
-/**
- * Rejects the promised value with the given `reason`.
- * @param {*} reason
- * @return {void}
- */
-Resolver.prototype.reject;
-
-
-/**
- * Represents a value that will be resolved at some point in the future. This
- * class represents the protected "producer" half of a ManagedPromise - each Deferred
- * has a {@code promise} property that may be returned to consumers for
- * registering callbacks, reserving the ability to resolve the deferred to the
- * producer.
- *
- * If this Deferred is rejected and there are no listeners registered before
- * the next turn of the event loop, the rejection will be passed to the
- * {@link ControlFlow} as an unhandled failure.
- *
- * @template T
- * @implements {Resolver<T>}
- */
-class Deferred {
- /**
- * @param {ControlFlow=} opt_flow The control flow this instance was
- * created under. This should only be provided during unit tests.
- * @param {?=} opt_skipLog An internal parameter used to skip logging the
- * creation of this promise. This parameter has no effect unless it is
- * strictly equal to an internal symbol. In other words, this parameter
- * is always ignored for external code.
- */
- constructor(opt_flow, opt_skipLog) {
- var fulfill, reject;
-
- /** @type {!ManagedPromise<T>} */
- this.promise = new ManagedPromise(function(f, r) {
- fulfill = f;
- reject = r;
- }, opt_flow, opt_skipLog);
-
- var self = this;
- var checkNotSelf = function(value) {
- if (value === self) {
- throw new TypeError('May not resolve a Deferred with itself');
- }
- };
-
- /**
- * Resolves this deferred with the given value. It is safe to call this as a
- * normal function (with no bound "this").
- * @param {(T|IThenable<T>|Thenable)=} opt_value The fulfilled value.
- * @const
- */
- this.resolve = function(opt_value) {
- checkNotSelf(opt_value);
- fulfill(opt_value);
- };
-
- /**
- * An alias for {@link #resolve}.
- * @const
- */
- this.fulfill = this.resolve;
-
- /**
- * Rejects this promise with the given reason. It is safe to call this as a
- * normal function (with no bound "this").
- * @param {*=} opt_reason The rejection reason.
- * @const
- */
- this.reject = function(opt_reason) {
- checkNotSelf(opt_reason);
- reject(opt_reason);
- };
- }
-}
-
-
-/**
- * Tests if a value is an Error-like object. This is more than an straight
- * instanceof check since the value may originate from another context.
- * @param {*} value The value to test.
- * @return {boolean} Whether the value is an error.
- */
-function isError(value) {
- return value instanceof Error ||
- (!!value && typeof value === 'object'
- && typeof value.message === 'string');
-}
-
-
-/**
- * Determines whether a {@code value} should be treated as a promise.
- * Any object whose "then" property is a function will be considered a promise.
- *
- * @param {?} value The value to test.
- * @return {boolean} Whether the value is a promise.
- */
-function isPromise(value) {
- try {
- // Use array notation so the Closure compiler does not obfuscate away our
- // contract.
- return value
- && (typeof value === 'object' || typeof value === 'function')
- && typeof value['then'] === 'function';
- } catch (ex) {
- return false;
- }
-}
-
-
-/**
- * Creates a promise that will be resolved at a set time in the future.
- * @param {number} ms The amount of time, in milliseconds, to wait before
- * resolving the promise.
- * @return {!Thenable} The promise.
- */
-function delayed(ms) {
- return createPromise(resolve => {
- setTimeout(() => resolve(), ms);
- });
-}
-
-
-/**
- * Creates a new deferred resolver.
- *
- * If the promise manager is currently enabled, this function will return a
- * {@link Deferred} instance. Otherwise, it will return a resolver for a
- * {@linkplain NativePromise native promise}.
- *
- * @return {!Resolver<T>} A new deferred resolver.
- * @template T
- */
-function defer() {
- if (usePromiseManager()) {
- return new Deferred();
- }
- let resolve, reject;
- let promise = new NativePromise((_resolve, _reject) => {
- resolve = _resolve;
- reject = _reject;
- });
- return {promise, resolve, reject};
-}
-
-
-/**
- * Creates a promise that has been resolved with the given value.
- *
- * If the promise manager is currently enabled, this function will return a
- * {@linkplain ManagedPromise managed promise}. Otherwise, it will return a
- * {@linkplain NativePromise native promise}.
- *
- * @param {T=} opt_value The resolved value.
- * @return {!Thenable<T>} The resolved promise.
- * @template T
- */
-function fulfilled(opt_value) {
- let ctor = usePromiseManager() ? ManagedPromise : NativePromise;
- if (opt_value instanceof ctor) {
- return /** @type {!Thenable} */(opt_value);
- }
-
- if (usePromiseManager()) {
- // We can skip logging warnings about creating a managed promise because
- // this function will automatically switch to use a native promise when
- // the promise manager is disabled.
- return new ManagedPromise(
- resolve => resolve(opt_value), undefined, SKIP_LOG);
- }
- return NativePromise.resolve(opt_value);
-}
-
-
-/**
- * Creates a promise that has been rejected with the given reason.
- *
- * If the promise manager is currently enabled, this function will return a
- * {@linkplain ManagedPromise managed promise}. Otherwise, it will return a
- * {@linkplain NativePromise native promise}.
- *
- * @param {*=} opt_reason The rejection reason; may be any value, but is
- * usually an Error or a string.
- * @return {!Thenable<?>} The rejected promise.
- */
-function rejected(opt_reason) {
- if (usePromiseManager()) {
- // We can skip logging warnings about creating a managed promise because
- // this function will automatically switch to use a native promise when
- // the promise manager is disabled.
- return new ManagedPromise(
- (_, reject) => reject(opt_reason), undefined, SKIP_LOG);
- }
- return NativePromise.reject(opt_reason);
-}
-
-
-/**
- * Wraps a function that expects a node-style callback as its final
- * argument. This callback expects two arguments: an error value (which will be
- * null if the call succeeded), and the success value as the second argument.
- * The callback will the resolve or reject the returned promise, based on its
- * arguments.
- * @param {!Function} fn The function to wrap.
- * @param {...?} var_args The arguments to apply to the function, excluding the
- * final callback.
- * @return {!Thenable} A promise that will be resolved with the
- * result of the provided function's callback.
- */
-function checkedNodeCall(fn, var_args) {
- let args = Array.prototype.slice.call(arguments, 1);
- return createPromise(function(fulfill, reject) {
- try {
- args.push(function(error, value) {
- error ? reject(error) : fulfill(value);
- });
- fn.apply(undefined, args);
- } catch (ex) {
- reject(ex);
- }
- });
-}
-
-/**
- * Registers a listener to invoke when a promise is resolved, regardless
- * of whether the promise's value was successfully computed. This function
- * is synonymous with the {@code finally} clause in a synchronous API:
- *
- * // Synchronous API:
- * try {
- * doSynchronousWork();
- * } finally {
- * cleanUp();
- * }
- *
- * // Asynchronous promise API:
- * doAsynchronousWork().finally(cleanUp);
- *
- * __Note:__ similar to the {@code finally} clause, if the registered
- * callback returns a rejected promise or throws an error, it will silently
- * replace the rejection error (if any) from this promise:
- *
- * try {
- * throw Error('one');
- * } finally {
- * throw Error('two'); // Hides Error: one
- * }
- *
- * let p = Promise.reject(Error('one'));
- * promise.finally(p, function() {
- * throw Error('two'); // Hides Error: one
- * });
- *
- * @param {!IThenable<?>} promise The promise to add the listener to.
- * @param {function(): (R|IThenable<R>)} callback The function to call when
- * the promise is resolved.
- * @return {!IThenable<R>} A promise that will be resolved with the callback
- * result.
- * @template R
- */
-function thenFinally(promise, callback) {
- let error;
- let mustThrow = false;
- return promise.then(function() {
- return callback();
- }, function(err) {
- error = err;
- mustThrow = true;
- return callback();
- }).then(function() {
- if (mustThrow) {
- throw error;
- }
- });
-}
-
-
-/**
- * Registers an observer on a promised {@code value}, returning a new promise
- * that will be resolved when the value is. If {@code value} is not a promise,
- * then the return promise will be immediately resolved.
- * @param {*} value The value to observe.
- * @param {Function=} opt_callback The function to call when the value is
- * resolved successfully.
- * @param {Function=} opt_errback The function to call when the value is
- * rejected.
- * @return {!Thenable} A new promise.
- * @deprecated Use `promise.fulfilled(value).then(opt_callback, opt_errback)`
- */
-function when(value, opt_callback, opt_errback) {
- return fulfilled(value).then(opt_callback, opt_errback);
-}
-
-
-/**
- * Invokes the appropriate callback function as soon as a promised `value` is
- * resolved.
- *
- * @param {*} value The value to observe.
- * @param {Function} callback The function to call when the value is
- * resolved successfully.
- * @param {Function=} opt_errback The function to call when the value is
- * rejected.
- */
-function asap(value, callback, opt_errback) {
- if (isPromise(value)) {
- value.then(callback, opt_errback);
-
- } else if (callback) {
- callback(value);
- }
-}
-
-
-/**
- * Given an array of promises, will return a promise that will be fulfilled
- * with the fulfillment values of the input array's values. If any of the
- * input array's promises are rejected, the returned promise will be rejected
- * with the same reason.
- *
- * @param {!Array<(T|!ManagedPromise<T>)>} arr An array of
- * promises to wait on.
- * @return {!Thenable<!Array<T>>} A promise that is
- * fulfilled with an array containing the fulfilled values of the
- * input array, or rejected with the same reason as the first
- * rejected value.
- * @template T
- */
-function all(arr) {
- return createPromise(function(fulfill, reject) {
- var n = arr.length;
- var values = [];
-
- if (!n) {
- fulfill(values);
- return;
- }
-
- var toFulfill = n;
- var onFulfilled = function(index, value) {
- values[index] = value;
- toFulfill--;
- if (toFulfill == 0) {
- fulfill(values);
- }
- };
-
- function processPromise(index) {
- asap(arr[index], function(value) {
- onFulfilled(index, value);
- }, reject);
- }
-
- for (var i = 0; i < n; ++i) {
- processPromise(i);
- }
- });
-}
-
-
-/**
- * Calls a function for each element in an array and inserts the result into a
- * new array, which is used as the fulfillment value of the promise returned
- * by this function.
- *
- * If the return value of the mapping function is a promise, this function
- * will wait for it to be fulfilled before inserting it into the new array.
- *
- * If the mapping function throws or returns a rejected promise, the
- * promise returned by this function will be rejected with the same reason.
- * Only the first failure will be reported; all subsequent errors will be
- * silently ignored.
- *
- * @param {!(Array<TYPE>|ManagedPromise<!Array<TYPE>>)} arr The
- * array to iterator over, or a promise that will resolve to said array.
- * @param {function(this: SELF, TYPE, number, !Array<TYPE>): ?} fn The
- * function to call for each element in the array. This function should
- * expect three arguments (the element, the index, and the array itself.
- * @param {SELF=} opt_self The object to be used as the value of 'this' within
- * {@code fn}.
- * @template TYPE, SELF
- */
-function map(arr, fn, opt_self) {
- return createPromise(resolve => resolve(arr)).then(v => {
- if (!Array.isArray(v)) {
- throw TypeError('not an array');
- }
- var arr = /** @type {!Array} */(v);
- return createPromise(function(fulfill, reject) {
- var n = arr.length;
- var values = new Array(n);
- (function processNext(i) {
- for (; i < n; i++) {
- if (i in arr) {
- break;
- }
- }
- if (i >= n) {
- fulfill(values);
- return;
- }
- try {
- asap(
- fn.call(opt_self, arr[i], i, /** @type {!Array} */(arr)),
- function(value) {
- values[i] = value;
- processNext(i + 1);
- },
- reject);
- } catch (ex) {
- reject(ex);
- }
- })(0);
- });
- });
-}
-
-
-/**
- * Calls a function for each element in an array, and if the function returns
- * true adds the element to a new array.
- *
- * If the return value of the filter function is a promise, this function
- * will wait for it to be fulfilled before determining whether to insert the
- * element into the new array.
- *
- * If the filter function throws or returns a rejected promise, the promise
- * returned by this function will be rejected with the same reason. Only the
- * first failure will be reported; all subsequent errors will be silently
- * ignored.
- *
- * @param {!(Array<TYPE>|ManagedPromise<!Array<TYPE>>)} arr The
- * array to iterator over, or a promise that will resolve to said array.
- * @param {function(this: SELF, TYPE, number, !Array<TYPE>): (
- * boolean|ManagedPromise<boolean>)} fn The function
- * to call for each element in the array.
- * @param {SELF=} opt_self The object to be used as the value of 'this' within
- * {@code fn}.
- * @template TYPE, SELF
- */
-function filter(arr, fn, opt_self) {
- return createPromise(resolve => resolve(arr)).then(v => {
- if (!Array.isArray(v)) {
- throw TypeError('not an array');
- }
- var arr = /** @type {!Array} */(v);
- return createPromise(function(fulfill, reject) {
- var n = arr.length;
- var values = [];
- var valuesLength = 0;
- (function processNext(i) {
- for (; i < n; i++) {
- if (i in arr) {
- break;
- }
- }
- if (i >= n) {
- fulfill(values);
- return;
- }
- try {
- var value = arr[i];
- var include = fn.call(opt_self, value, i, /** @type {!Array} */(arr));
- asap(include, function(include) {
- if (include) {
- values[valuesLength++] = value;
- }
- processNext(i + 1);
- }, reject);
- } catch (ex) {
- reject(ex);
- }
- })(0);
- });
- });
-}
-
-
-/**
- * Returns a promise that will be resolved with the input value in a
- * fully-resolved state. If the value is an array, each element will be fully
- * resolved. Likewise, if the value is an object, all keys will be fully
- * resolved. In both cases, all nested arrays and objects will also be
- * fully resolved. All fields are resolved in place; the returned promise will
- * resolve on {@code value} and not a copy.
- *
- * Warning: This function makes no checks against objects that contain
- * cyclical references:
- *
- * var value = {};
- * value['self'] = value;
- * promise.fullyResolved(value); // Stack overflow.
- *
- * @param {*} value The value to fully resolve.
- * @return {!Thenable} A promise for a fully resolved version
- * of the input value.
- */
-function fullyResolved(value) {
- if (isPromise(value)) {
- return fulfilled(value).then(fullyResolveValue);
- }
- return fullyResolveValue(value);
-}
-
-
-/**
- * @param {*} value The value to fully resolve. If a promise, assumed to
- * already be resolved.
- * @return {!Thenable} A promise for a fully resolved version
- * of the input value.
- */
-function fullyResolveValue(value) {
- if (Array.isArray(value)) {
- return fullyResolveKeys(/** @type {!Array} */ (value));
- }
-
- if (isPromise(value)) {
- if (isPromise(value)) {
- // We get here when the original input value is a promise that
- // resolves to itself. When the user provides us with such a promise,
- // trust that it counts as a "fully resolved" value and return it.
- // Of course, since it's already a promise, we can just return it
- // to the user instead of wrapping it in another promise.
- return /** @type {!ManagedPromise} */ (value);
- }
- }
-
- if (value && typeof value === 'object') {
- return fullyResolveKeys(/** @type {!Object} */ (value));
- }
-
- if (typeof value === 'function') {
- return fullyResolveKeys(/** @type {!Object} */ (value));
- }
-
- return createPromise(resolve => resolve(value));
-}
-
-
-/**
- * @param {!(Array|Object)} obj the object to resolve.
- * @return {!Thenable} A promise that will be resolved with the
- * input object once all of its values have been fully resolved.
- */
-function fullyResolveKeys(obj) {
- var isArray = Array.isArray(obj);
- var numKeys = isArray ? obj.length : (function() {
- let n = 0;
- for (let key in obj) {
- n += 1;
- }
- return n;
- })();
-
- if (!numKeys) {
- return createPromise(resolve => resolve(obj));
- }
-
- function forEachProperty(obj, fn) {
- for (let key in obj) {
- fn.call(null, obj[key], key, obj);
- }
- }
-
- function forEachElement(arr, fn) {
- arr.forEach(fn);
- }
-
- var numResolved = 0;
- return createPromise(function(fulfill, reject) {
- var forEachKey = isArray ? forEachElement: forEachProperty;
-
- forEachKey(obj, function(partialValue, key) {
- if (!Array.isArray(partialValue)
- && (!partialValue || typeof partialValue !== 'object')) {
- maybeResolveValue();
- return;
- }
-
- fullyResolved(partialValue).then(
- function(resolvedValue) {
- obj[key] = resolvedValue;
- maybeResolveValue();
- },
- reject);
- });
-
- function maybeResolveValue() {
- if (++numResolved == numKeys) {
- fulfill(obj);
- }
- }
- });
-}
-
-
-//////////////////////////////////////////////////////////////////////////////
-//
-// ControlFlow
-//
-//////////////////////////////////////////////////////////////////////////////
-
-
-/**
- * Defines methods for coordinating the execution of asynchronous tasks.
- * @record
- */
-class Scheduler {
- /**
- * Schedules a task for execution. If the task function is a generator, the
- * task will be executed using {@link ./promise.consume consume()}.
- *
- * @param {function(): (T|IThenable<T>)} fn The function to call to start the
- * task.
- * @param {string=} opt_description A description of the task for debugging
- * purposes.
- * @return {!Thenable<T>} A promise that will be resolved with the task
- * result.
- * @template T
- */
- execute(fn, opt_description) {}
-
- /**
- * Creates a new promise using the given resolver function.
- *
- * @param {function(
- * function((T|IThenable<T>|Thenable|null)=),
- * function(*=))} resolver
- * @return {!Thenable<T>}
- * @template T
- */
- promise(resolver) {}
-
- /**
- * Schedules a `setTimeout` call.
- *
- * @param {number} ms The timeout delay, in milliseconds.
- * @param {string=} opt_description A description to accompany the timeout.
- * @return {!Thenable<void>} A promise that will be resolved when the timeout
- * fires.
- */
- timeout(ms, opt_description) {}
-
- /**
- * Schedules a task to wait for a condition to hold.
- *
- * If the condition is defined as a function, it may return any value. Promise
- * will be resolved before testing if the condition holds (resolution time
- * counts towards the timeout). Once resolved, values are always evaluated as
- * booleans.
- *
- * If the condition function throws, or returns a rejected promise, the
- * wait task will fail.
- *
- * If the condition is defined as a promise, the scheduler will wait for it to
- * settle. If the timeout expires before the promise settles, the promise
- * returned by this function will be rejected.
- *
- * If this function is invoked with `timeout === 0`, or the timeout is
- * omitted, this scheduler will wait indefinitely for the condition to be
- * satisfied.
- *
- * @param {(!IThenable<T>|function())} condition The condition to poll,
- * or a promise to wait on.
- * @param {number=} opt_timeout How long to wait, in milliseconds, for the
- * condition to hold before timing out. If omitted, the flow will wait
- * indefinitely.
- * @param {string=} opt_message An optional error message to include if the
- * wait times out; defaults to the empty string.
- * @return {!Thenable<T>} A promise that will be fulfilled
- * when the condition has been satisfied. The promise shall be rejected
- * if the wait times out waiting for the condition.
- * @throws {TypeError} If condition is not a function or promise or if timeout
- * is not a number >= 0.
- * @template T
- */
- wait(condition, opt_timeout, opt_message) {}
-}
-
-
-let USE_PROMISE_MANAGER;
-function usePromiseManager() {
- if (typeof USE_PROMISE_MANAGER !== 'undefined') {
- return !!USE_PROMISE_MANAGER;
- }
- return process.env['SELENIUM_PROMISE_MANAGER'] === undefined
- || !/^0|false$/i.test(process.env['SELENIUM_PROMISE_MANAGER']);
-}
-
-
-/**
- * Creates a new promise with the given `resolver` function. If the promise
- * manager is currently enabled, the returned promise will be a
- * {@linkplain ManagedPromise} instance. Otherwise, it will be a native promise.
- *
- * @param {function(
- * function((T|IThenable<T>|Thenable|null)=),
- * function(*=))} resolver
- * @return {!Thenable<T>}
- * @template T
- */
-function createPromise(resolver) {
- let ctor = usePromiseManager() ? ManagedPromise : NativePromise;
- return new ctor(resolver);
-}
-
-
-/**
- * @param {!Scheduler} scheduler The scheduler to use.
- * @param {(!IThenable<T>|function())} condition The condition to poll,
- * or a promise to wait on.
- * @param {number=} opt_timeout How long to wait, in milliseconds, for the
- * condition to hold before timing out. If omitted, the flow will wait
- * indefinitely.
- * @param {string=} opt_message An optional error message to include if the
- * wait times out; defaults to the empty string.
- * @return {!Thenable<T>} A promise that will be fulfilled
- * when the condition has been satisfied. The promise shall be rejected
- * if the wait times out waiting for the condition.
- * @throws {TypeError} If condition is not a function or promise or if timeout
- * is not a number >= 0.
- * @template T
- */
-function scheduleWait(scheduler, condition, opt_timeout, opt_message) {
- let timeout = opt_timeout || 0;
- if (typeof timeout !== 'number' || timeout < 0) {
- throw TypeError('timeout must be a number >= 0: ' + timeout);
- }
-
- if (isPromise(condition)) {
- return scheduler.execute(function() {
- if (!timeout) {
- return condition;
- }
- return scheduler.promise(function(fulfill, reject) {
- let start = Date.now();
- let timer = setTimeout(function() {
- timer = null;
- reject(
- new error.TimeoutError(
- (opt_message ? opt_message + '\n' : '')
- + 'Timed out waiting for promise to resolve after '
- + (Date.now() - start) + 'ms'));
- }, timeout);
-
- /** @type {Thenable} */(condition).then(
- function(value) {
- timer && clearTimeout(timer);
- fulfill(value);
- },
- function(error) {
- timer && clearTimeout(timer);
- reject(error);
- });
- });
- }, opt_message || '<anonymous wait: promise resolution>');
- }
-
- if (typeof condition !== 'function') {
- throw TypeError('Invalid condition; must be a function or promise: ' +
- typeof condition);
- }
-
- if (isGenerator(condition)) {
- let original = condition;
- condition = () => consume(original);
- }
-
- return scheduler.execute(function() {
- var startTime = Date.now();
- return scheduler.promise(function(fulfill, reject) {
- pollCondition();
-
- function pollCondition() {
- var conditionFn = /** @type {function()} */(condition);
- scheduler.execute(conditionFn).then(function(value) {
- var elapsed = Date.now() - startTime;
- if (!!value) {
- fulfill(value);
- } else if (timeout && elapsed >= timeout) {
- reject(
- new error.TimeoutError(
- (opt_message ? opt_message + '\n' : '')
- + `Wait timed out after ${elapsed}ms`));
- } else {
- // Do not use asyncRun here because we need a non-micro yield
- // here so the UI thread is given a chance when running in a
- // browser.
- setTimeout(pollCondition, 0);
- }
- }, reject);
- }
- });
- }, opt_message || '<anonymous wait>');
-}
-
-
-/**
- * A scheduler that executes all tasks immediately, with no coordination. This
- * class is an event emitter for API compatibility with the {@link ControlFlow},
- * however, it emits no events.
- *
- * @implements {Scheduler}
- */
-class SimpleScheduler extends events.EventEmitter {
- /** @override */
- execute(fn) {
- return this.promise((resolve, reject) => {
- try {
- if (isGenerator(fn)) {
- consume(fn).then(resolve, reject);
- } else {
- resolve(fn.call(undefined));
- }
- } catch (ex) {
- reject(ex);
- }
- });
- }
-
- /** @override */
- promise(resolver) {
- return new NativePromise(resolver);
- }
-
- /** @override */
- timeout(ms) {
- return this.promise(resolve => setTimeout(_ => resolve(), ms));
- }
-
- /** @override */
- wait(condition, opt_timeout, opt_message) {
- return scheduleWait(this, condition, opt_timeout, opt_message);
- }
-}
-const SIMPLE_SCHEDULER = new SimpleScheduler;
-
-
-/**
- * Handles the execution of scheduled tasks, each of which may be an
- * asynchronous operation. The control flow will ensure tasks are executed in
- * the order scheduled, starting each task only once those before it have
- * completed.
- *
- * Each task scheduled within this flow may return a {@link ManagedPromise} to
- * indicate it is an asynchronous operation. The ControlFlow will wait for such
- * promises to be resolved before marking the task as completed.
- *
- * Tasks and each callback registered on a {@link ManagedPromise} will be run
- * in their own ControlFlow frame. Any tasks scheduled within a frame will take
- * priority over previously scheduled tasks. Furthermore, if any of the tasks in
- * the frame fail, the remainder of the tasks in that frame will be discarded
- * and the failure will be propagated to the user through the callback/task's
- * promised result.
- *
- * Each time a ControlFlow empties its task queue, it will fire an
- * {@link ControlFlow.EventType.IDLE IDLE} event. Conversely, whenever
- * the flow terminates due to an unhandled error, it will remove all
- * remaining tasks in its queue and fire an
- * {@link ControlFlow.EventType.UNCAUGHT_EXCEPTION UNCAUGHT_EXCEPTION} event.
- * If there are no listeners registered with the flow, the error will be
- * rethrown to the global error handler.
- *
- * Refer to the {@link ./promise} module documentation for a detailed
- * explanation of how the ControlFlow coordinates task execution.
- *
- * @implements {Scheduler}
- * @final
- */
-class ControlFlow extends events.EventEmitter {
- constructor() {
- if (!usePromiseManager()) {
- throw TypeError(
- 'Cannot instantiate control flow when the promise manager has'
- + ' been disabled');
- }
-
- super();
-
- /** @private {boolean} */
- this.propagateUnhandledRejections_ = true;
-
- /** @private {TaskQueue} */
- this.activeQueue_ = null;
-
- /** @private {Set<TaskQueue>} */
- this.taskQueues_ = null;
-
- /**
- * Microtask that controls shutting down the control flow. Upon shut down,
- * the flow will emit an
- * {@link ControlFlow.EventType.IDLE} event. Idle events
- * always follow a brief timeout in order to catch latent errors from the
- * last completed task. If this task had a callback registered, but no
- * errback, and the task fails, the unhandled failure would not be reported
- * by the promise system until the next turn of the event loop:
- *
- * // Schedule 1 task that fails.
- * var result = promise.controlFlow().execute(
- * () => promise.rejected('failed'), 'example');
- * // Set a callback on the result. This delays reporting the unhandled
- * // failure for 1 turn of the event loop.
- * result.then(function() {});
- *
- * @private {MicroTask}
- */
- this.shutdownTask_ = null;
-
- /**
- * ID for a long running interval used to keep a Node.js process running
- * while a control flow's event loop is still working. This is a cheap hack
- * required since JS events are only scheduled to run when there is
- * _actually_ something to run. When a control flow is waiting on a task,
- * there will be nothing in the JS event loop and the process would
- * terminate without this.
- * @private
- */
- this.hold_ = null;
- }
-
- /**
- * Returns a string representation of this control flow, which is its current
- * {@linkplain #getSchedule() schedule}, sans task stack traces.
- * @return {string} The string representation of this control flow.
- * @override
- */
- toString() {
- return this.getSchedule();
- }
-
- /**
- * Sets whether any unhandled rejections should propagate up through the
- * control flow stack and cause rejections within parent tasks. If error
- * propagation is disabled, tasks will not be aborted when an unhandled
- * promise rejection is detected, but the rejection _will_ trigger an
- * {@link ControlFlow.EventType.UNCAUGHT_EXCEPTION} event.
- *
- * The default behavior is to propagate all unhandled rejections. _The use
- * of this option is highly discouraged._
- *
- * @param {boolean} propagate whether to propagate errors.
- */
- setPropagateUnhandledRejections(propagate) {
- this.propagateUnhandledRejections_ = propagate;
- }
-
- /**
- * @return {boolean} Whether this flow is currently idle.
- */
- isIdle() {
- return !this.shutdownTask_ && (!this.taskQueues_ || !this.taskQueues_.size);
- }
-
- /**
- * Resets this instance, clearing its queue and removing all event listeners.
- */
- reset() {
- this.cancelQueues_(new FlowResetError);
- this.emit(ControlFlow.EventType.RESET);
- this.removeAllListeners();
- this.cancelShutdown_();
- }
-
- /**
- * Generates an annotated string describing the internal state of this control
- * flow, including the currently executing as well as pending tasks. If
- * {@code opt_includeStackTraces === true}, the string will include the
- * stack trace from when each task was scheduled.
- * @param {string=} opt_includeStackTraces Whether to include the stack traces
- * from when each task was scheduled. Defaults to false.
- * @return {string} String representation of this flow's internal state.
- */
- getSchedule(opt_includeStackTraces) {
- var ret = 'ControlFlow::' + getUid(this);
- var activeQueue = this.activeQueue_;
- if (!this.taskQueues_ || !this.taskQueues_.size) {
- return ret;
- }
- var childIndent = '| ';
- for (var q of this.taskQueues_) {
- ret += '\n' + printQ(q, childIndent);
- }
- return ret;
-
- function printQ(q, indent) {
- var ret = q.toString();
- if (q === activeQueue) {
- ret = '(active) ' + ret;
- }
- var prefix = indent + childIndent;
- if (q.pending_) {
- if (q.pending_.q.state_ !== TaskQueueState.FINISHED) {
- ret += '\n' + prefix + '(pending) ' + q.pending_.task;
- ret += '\n' + printQ(q.pending_.q, prefix + childIndent);
- } else {
- ret += '\n' + prefix + '(blocked) ' + q.pending_.task;
- }
- }
- if (q.interrupts_) {
- q.interrupts_.forEach((task) => {
- ret += '\n' + prefix + task;
- });
- }
- if (q.tasks_) {
- q.tasks_.forEach((task) => ret += printTask(task, '\n' + prefix));
- }
- return indent + ret;
- }
-
- function printTask(task, prefix) {
- var ret = prefix + task;
- if (opt_includeStackTraces && task.promise.stack_) {
- ret += prefix + childIndent
- + (task.promise.stack_.stack || task.promise.stack_)
- .replace(/\n/g, prefix);
- }
- return ret;
- }
- }
-
- /**
- * Returns the currently active task queue for this flow. If there is no
- * active queue, one will be created.
- * @return {!TaskQueue} the currently active task queue for this flow.
- * @private
- */
- getActiveQueue_() {
- if (this.activeQueue_) {
- return this.activeQueue_;
- }
-
- this.activeQueue_ = new TaskQueue(this);
- if (!this.taskQueues_) {
- this.taskQueues_ = new Set();
- }
- this.taskQueues_.add(this.activeQueue_);
- this.activeQueue_
- .once('end', this.onQueueEnd_, this)
- .once('error', this.onQueueError_, this);
-
- asyncRun(() => this.activeQueue_ = null);
- this.activeQueue_.start();
- return this.activeQueue_;
- }
-
- /** @override */
- execute(fn, opt_description) {
- if (isGenerator(fn)) {
- let original = fn;
- fn = () => consume(original);
- }
-
- if (!this.hold_) {
- let holdIntervalMs = 2147483647; // 2^31-1; max timer length for Node.js
- this.hold_ = setInterval(function() {}, holdIntervalMs);
- }
-
- let task = new Task(
- this, fn, opt_description || '<anonymous>',
- {name: 'Task', top: ControlFlow.prototype.execute},
- true);
-
- let q = this.getActiveQueue_();
-
- for (let i = q.tasks_.length; i > 0; i--) {
- let previousTask = q.tasks_[i - 1];
- if (previousTask.userTask_) {
- FLOW_LOG.warning(() => {
- return `Detected scheduling of an unchained task.
-When the promise manager is disabled, unchained tasks will not wait for
-previously scheduled tasks to finish before starting to execute.
-New task: ${task.promise.stack_.stack}
-Previous task: ${previousTask.promise.stack_.stack}`.split(/\n/).join('\n ');
- });
- break;
- }
- }
-
- q.enqueue(task);
- this.emit(ControlFlow.EventType.SCHEDULE_TASK, task.description);
- return task.promise;
- }
-
- /** @override */
- promise(resolver) {
- return new ManagedPromise(resolver, this, SKIP_LOG);
- }
-
- /** @override */
- timeout(ms, opt_description) {
- return this.execute(() => {
- return this.promise(resolve => setTimeout(() => resolve(), ms));
- }, opt_description);
- }
-
- /** @override */
- wait(condition, opt_timeout, opt_message) {
- return scheduleWait(this, condition, opt_timeout, opt_message);
- }
-
- /**
- * Executes a function in the next available turn of the JavaScript event
- * loop. This ensures the function runs with its own task queue and any
- * scheduled tasks will run in "parallel" to those scheduled in the current
- * function.
- *
- * flow.execute(() => console.log('a'));
- * flow.execute(() => console.log('b'));
- * flow.execute(() => console.log('c'));
- * flow.async(() => {
- * flow.execute(() => console.log('d'));
- * flow.execute(() => console.log('e'));
- * });
- * flow.async(() => {
- * flow.execute(() => console.log('f'));
- * flow.execute(() => console.log('g'));
- * });
- * flow.once('idle', () => console.log('fin'));
- * // a
- * // d
- * // f
- * // b
- * // e
- * // g
- * // c
- * // fin
- *
- * If the function itself throws, the error will be treated the same as an
- * unhandled rejection within the control flow.
- *
- * __NOTE__: This function is considered _unstable_.
- *
- * @param {!Function} fn The function to execute.
- * @param {Object=} opt_self The object in whose context to run the function.
- * @param {...*} var_args Any arguments to pass to the function.
- */
- async(fn, opt_self, var_args) {
- asyncRun(() => {
- // Clear any lingering queues, forces getActiveQueue_ to create a new one.
- this.activeQueue_ = null;
- var q = this.getActiveQueue_();
- try {
- q.execute_(fn.bind(opt_self, var_args));
- } catch (ex) {
- var cancellationError = CancellationError.wrap(ex,
- 'Function passed to ControlFlow.async() threw');
- cancellationError.silent_ = true;
- q.abort_(cancellationError);
- } finally {
- this.activeQueue_ = null;
- }
- });
- }
-
- /**
- * Event handler for when a task queue is exhausted. This starts the shutdown
- * sequence for this instance if there are no remaining task queues: after
- * one turn of the event loop, this object will emit the
- * {@link ControlFlow.EventType.IDLE IDLE} event to signal
- * listeners that it has completed. During this wait, if another task is
- * scheduled, the shutdown will be aborted.
- *
- * @param {!TaskQueue} q the completed task queue.
- * @private
- */
- onQueueEnd_(q) {
- if (!this.taskQueues_) {
- return;
- }
- this.taskQueues_.delete(q);
-
- vlog(1, () => q + ' has finished');
- vlog(1, () => this.taskQueues_.size + ' queues remain\n' + this, this);
-
- if (!this.taskQueues_.size) {
- if (this.shutdownTask_) {
- throw Error('Already have a shutdown task??');
- }
- vlog(1, () => 'Scheduling shutdown\n' + this);
- this.shutdownTask_ = new MicroTask(() => this.shutdown_());
- }
- }
-
- /**
- * Event handler for when a task queue terminates with an error. This triggers
- * the cancellation of all other task queues and a
- * {@link ControlFlow.EventType.UNCAUGHT_EXCEPTION} event.
- * If there are no error event listeners registered with this instance, the
- * error will be rethrown to the global error handler.
- *
- * @param {*} error the error that caused the task queue to terminate.
- * @param {!TaskQueue} q the task queue.
- * @private
- */
- onQueueError_(error, q) {
- if (this.taskQueues_) {
- this.taskQueues_.delete(q);
- }
- this.cancelQueues_(CancellationError.wrap(
- error, 'There was an uncaught error in the control flow'));
- this.cancelShutdown_();
- this.cancelHold_();
-
- setTimeout(() => {
- let listeners = this.listeners(ControlFlow.EventType.UNCAUGHT_EXCEPTION);
- if (!listeners.size) {
- throw error;
- } else {
- this.reportUncaughtException_(error);
- }
- }, 0);
- }
-
- /**
- * Cancels all remaining task queues.
- * @param {!CancellationError} reason The cancellation reason.
- * @private
- */
- cancelQueues_(reason) {
- reason.silent_ = true;
- if (this.taskQueues_) {
- for (var q of this.taskQueues_) {
- q.removeAllListeners();
- q.abort_(reason);
- }
- this.taskQueues_.clear();
- this.taskQueues_ = null;
- }
- }
-
- /**
- * Reports an uncaught exception using a
- * {@link ControlFlow.EventType.UNCAUGHT_EXCEPTION} event.
- *
- * @param {*} e the error to report.
- * @private
- */
- reportUncaughtException_(e) {
- this.emit(ControlFlow.EventType.UNCAUGHT_EXCEPTION, e);
- }
-
- /** @private */
- cancelHold_() {
- if (this.hold_) {
- clearInterval(this.hold_);
- this.hold_ = null;
- }
- }
-
- /** @private */
- shutdown_() {
- vlog(1, () => 'Going idle: ' + this);
- this.cancelHold_();
- this.shutdownTask_ = null;
- this.emit(ControlFlow.EventType.IDLE);
- }
-
- /**
- * Cancels the shutdown sequence if it is currently scheduled.
- * @private
- */
- cancelShutdown_() {
- if (this.shutdownTask_) {
- this.shutdownTask_.cancel();
- this.shutdownTask_ = null;
- }
- }
-}
-
-
-/**
- * Events that may be emitted by an {@link ControlFlow}.
- * @enum {string}
- */
-ControlFlow.EventType = {
-
- /** Emitted when all tasks have been successfully executed. */
- IDLE: 'idle',
-
- /** Emitted when a ControlFlow has been reset. */
- RESET: 'reset',
-
- /** Emitted whenever a new task has been scheduled. */
- SCHEDULE_TASK: 'scheduleTask',
-
- /**
- * Emitted whenever a control flow aborts due to an unhandled promise
- * rejection. This event will be emitted along with the offending rejection
- * reason. Upon emitting this event, the control flow will empty its task
- * queue and revert to its initial state.
- */
- UNCAUGHT_EXCEPTION: 'uncaughtException'
-};
-
-
-/**
- * Wraps a function to execute as a cancellable micro task.
- * @final
- */
-class MicroTask {
- /**
- * @param {function()} fn The function to run as a micro task.
- */
- constructor(fn) {
- /** @private {boolean} */
- this.cancelled_ = false;
- asyncRun(() => {
- if (!this.cancelled_) {
- fn();
- }
- });
- }
-
- /**
- * Runs the given function after a microtask yield.
- * @param {function()} fn The function to run.
- */
- static run(fn) {
- NativePromise.resolve().then(function() {
- try {
- fn();
- } catch (ignored) {
- // Do nothing.
- }
- });
- }
-
- /**
- * Cancels the execution of this task. Note: this will not prevent the task
- * timer from firing, just the invocation of the wrapped function.
- */
- cancel() {
- this.cancelled_ = true;
- }
-}
-
-
-/**
- * A task to be executed by a {@link ControlFlow}.
- *
- * @template T
- * @final
- */
-class Task extends Deferred {
- /**
- * @param {!ControlFlow} flow The flow this instances belongs
- * to.
- * @param {function(): (T|!ManagedPromise<T>)} fn The function to
- * call when the task executes. If it returns a
- * {@link ManagedPromise}, the flow will wait for it to be
- * resolved before starting the next task.
- * @param {string} description A description of the task for debugging.
- * @param {{name: string, top: !Function}=} opt_stackOptions Options to use
- * when capturing the stacktrace for when this task was created.
- * @param {boolean=} opt_isUserTask Whether this task was explicitly scheduled
- * by the use of the promise manager.
- */
- constructor(flow, fn, description, opt_stackOptions, opt_isUserTask) {
- super(flow, SKIP_LOG);
- getUid(this);
-
- /** @type {function(): (T|!ManagedPromise<T>)} */
- this.execute = fn;
-
- /** @type {string} */
- this.description = description;
-
- /** @type {TaskQueue} */
- this.queue = null;
-
- /** @private @const {boolean} */
- this.userTask_ = !!opt_isUserTask;
-
- /**
- * Whether this task is considered block. A blocked task may be registered
- * in a task queue, but will be dropped if it is still blocked when it
- * reaches the front of the queue. A dropped task may always be rescheduled.
- *
- * Blocked tasks are used when a callback is attached to an unsettled
- * promise to reserve a spot in line (in a manner of speaking). If the
- * promise is not settled before the callback reaches the front of the
- * of the queue, it will be dropped. Once the promise is settled, the
- * dropped task will be rescheduled as an interrupt on the currently task
- * queue.
- *
- * @type {boolean}
- */
- this.blocked = false;
-
- if (opt_stackOptions) {
- this.promise.stack_ = captureStackTrace(
- opt_stackOptions.name, this.description, opt_stackOptions.top);
- }
- }
-
- /** @override */
- toString() {
- return 'Task::' + getUid(this) + '<' + this.description + '>';
- }
-}
-
-
-/** @enum {string} */
-const TaskQueueState = {
- NEW: 'new',
- STARTED: 'started',
- FINISHED: 'finished'
-};
-
-
-/**
- * @final
- */
-class TaskQueue extends events.EventEmitter {
- /** @param {!ControlFlow} flow . */
- constructor(flow) {
- super();
-
- /** @private {string} */
- this.name_ = 'TaskQueue::' + getUid(this);
-
- /** @private {!ControlFlow} */
- this.flow_ = flow;
-
- /** @private {!Array<!Task>} */
- this.tasks_ = [];
-
- /** @private {Array<!Task>} */
- this.interrupts_ = null;
-
- /** @private {({task: !Task, q: !TaskQueue}|null)} */
- this.pending_ = null;
-
- /** @private {TaskQueue} */
- this.subQ_ = null;
-
- /** @private {TaskQueueState} */
- this.state_ = TaskQueueState.NEW;
-
- /** @private {!Set<!ManagedPromise>} */
- this.unhandledRejections_ = new Set();
- }
-
- /** @override */
- toString() {
- return 'TaskQueue::' + getUid(this);
- }
-
- /**
- * @param {!ManagedPromise} promise .
- */
- addUnhandledRejection(promise) {
- // TODO: node 4.0.0+
- vlog(2, () => this + ' registering unhandled rejection: ' + promise, this);
- this.unhandledRejections_.add(promise);
- }
-
- /**
- * @param {!ManagedPromise} promise .
- */
- clearUnhandledRejection(promise) {
- var deleted = this.unhandledRejections_.delete(promise);
- if (deleted) {
- // TODO: node 4.0.0+
- vlog(2, () => this + ' clearing unhandled rejection: ' + promise, this);
- }
- }
-
- /**
- * Enqueues a new task for execution.
- * @param {!Task} task The task to enqueue.
- * @throws {Error} If this instance has already started execution.
- */
- enqueue(task) {
- if (this.state_ !== TaskQueueState.NEW) {
- throw Error('TaskQueue has started: ' + this);
- }
-
- if (task.queue) {
- throw Error('Task is already scheduled in another queue');
- }
-
- this.tasks_.push(task);
- task.queue = this;
- ON_CANCEL_HANDLER.set(
- task.promise,
- (e) => this.onTaskCancelled_(task, e));
-
- vlog(1, () => this + '.enqueue(' + task + ')', this);
- vlog(2, () => this.flow_.toString(), this);
- }
-
- /**
- * Schedules the callbacks registered on the given promise in this queue.
- *
- * @param {!ManagedPromise} promise the promise whose callbacks should be
- * registered as interrupts in this task queue.
- * @throws {Error} if this queue has already finished.
- */
- scheduleCallbacks(promise) {
- if (this.state_ === TaskQueueState.FINISHED) {
- throw new Error('cannot interrupt a finished q(' + this + ')');
- }
-
- if (this.pending_ && this.pending_.task.promise === promise) {
- this.pending_.task.promise.queue_ = null;
- this.pending_ = null;
- asyncRun(() => this.executeNext_());
- }
-
- if (!promise.callbacks_) {
- return;
- }
- promise.callbacks_.forEach(function(cb) {
- cb.blocked = false;
- if (cb.queue) {
- return;
- }
-
- ON_CANCEL_HANDLER.set(
- cb.promise,
- (e) => this.onTaskCancelled_(cb, e));
-
- if (cb.queue === this && this.tasks_.indexOf(cb) !== -1) {
- return;
- }
-
- if (cb.queue) {
- cb.queue.dropTask_(cb);
- }
-
- cb.queue = this;
- if (!this.interrupts_) {
- this.interrupts_ = [];
- }
- this.interrupts_.push(cb);
- }, this);
- promise.callbacks_ = null;
- vlog(2, () => this + ' interrupted\n' + this.flow_, this);
- }
-
- /**
- * Starts executing tasks in this queue. Once called, no further tasks may
- * be {@linkplain #enqueue() enqueued} with this instance.
- *
- * @throws {Error} if this queue has already been started.
- */
- start() {
- if (this.state_ !== TaskQueueState.NEW) {
- throw new Error('TaskQueue has already started');
- }
- // Always asynchronously execute next, even if there doesn't look like
- // there is anything in the queue. This will catch pending unhandled
- // rejections that were registered before start was called.
- asyncRun(() => this.executeNext_());
- }
-
- /**
- * Aborts this task queue. If there are any scheduled tasks, they are silently
- * cancelled and discarded (their callbacks will never fire). If this queue
- * has a _pending_ task, the abortion error is used to cancel that task.
- * Otherwise, this queue will emit an error event.
- *
- * @param {*} error The abortion reason.
- * @private
- */
- abort_(error) {
- var cancellation;
-
- if (error instanceof FlowResetError) {
- cancellation = error;
- } else {
- cancellation = new DiscardedTaskError(error);
- }
-
- if (this.interrupts_ && this.interrupts_.length) {
- this.interrupts_.forEach((t) => t.reject(cancellation));
- this.interrupts_ = [];
- }
-
- if (this.tasks_ && this.tasks_.length) {
- this.tasks_.forEach((t) => t.reject(cancellation));
- this.tasks_ = [];
- }
-
- // Now that all of the remaining tasks have been silently cancelled (e.g. no
- // existing callbacks on those tasks will fire), clear the silence bit on
- // the cancellation error. This ensures additional callbacks registered in
- // the future will actually execute.
- cancellation.silent_ = false;
-
- if (this.pending_) {
- vlog(2, () => this + '.abort(); cancelling pending task', this);
- this.pending_.task.promise.cancel(
- /** @type {!CancellationError} */(error));
-
- } else {
- vlog(2, () => this + '.abort(); emitting error event', this);
- this.emit('error', error, this);
- }
- }
-
- /** @private */
- executeNext_() {
- if (this.state_ === TaskQueueState.FINISHED) {
- return;
- }
- this.state_ = TaskQueueState.STARTED;
-
- if (this.pending_ !== null || this.processUnhandledRejections_()) {
- return;
- }
-
- var task;
- do {
- task = this.getNextTask_();
- } while (task && !isPending(task.promise));
-
- if (!task) {
- this.state_ = TaskQueueState.FINISHED;
- this.tasks_ = [];
- this.interrupts_ = null;
- vlog(2, () => this + '.emit(end)', this);
- this.emit('end', this);
- return;
- }
-
- let result = undefined;
- this.subQ_ = new TaskQueue(this.flow_);
-
- this.subQ_.once('end', () => { // On task completion.
- this.subQ_ = null;
- this.pending_ && this.pending_.task.resolve(result);
- });
-
- this.subQ_.once('error', e => { // On task failure.
- this.subQ_ = null;
- if (Thenable.isImplementation(result)) {
- result.cancel(CancellationError.wrap(e));
- }
- this.pending_ && this.pending_.task.reject(e);
- });
- vlog(2, () => `${this} created ${this.subQ_} for ${task}`);
-
- try {
- this.pending_ = {task: task, q: this.subQ_};
- task.promise.queue_ = this;
- result = this.subQ_.execute_(task.execute);
- this.subQ_.start();
- } catch (ex) {
- this.subQ_.abort_(ex);
- }
- }
-
- /**
- * @param {!Function} fn .
- * @return {T} .
- * @template T
- * @private
- */
- execute_(fn) {
- try {
- activeFlows.push(this.flow_);
- this.flow_.activeQueue_ = this;
- return fn();
- } finally {
- this.flow_.activeQueue_ = null;
- activeFlows.pop();
- }
- }
-
- /**
- * Process any unhandled rejections registered with this task queue. If there
- * is a rejection, this queue will be aborted with the rejection error. If
- * there are multiple rejections registered, this queue will be aborted with
- * a {@link MultipleUnhandledRejectionError}.
- * @return {boolean} whether there was an unhandled rejection.
- * @private
- */
- processUnhandledRejections_() {
- if (!this.unhandledRejections_.size) {
- return false;
- }
-
- var errors = new Set();
- for (var rejection of this.unhandledRejections_) {
- errors.add(rejection.value_);
- }
- this.unhandledRejections_.clear();
-
- var errorToReport = errors.size === 1
- ? errors.values().next().value
- : new MultipleUnhandledRejectionError(errors);
-
- vlog(1, () => this + ' aborting due to unhandled rejections', this);
- if (this.flow_.propagateUnhandledRejections_) {
- this.abort_(errorToReport);
- return true;
- } else {
- vlog(1, 'error propagation disabled; reporting to control flow');
- this.flow_.reportUncaughtException_(errorToReport);
- return false;
- }
- }
-
- /**
- * @param {!Task} task The task to drop.
- * @private
- */
- dropTask_(task) {
- var index;
- if (this.interrupts_) {
- index = this.interrupts_.indexOf(task);
- if (index != -1) {
- task.queue = null;
- this.interrupts_.splice(index, 1);
- return;
- }
- }
-
- index = this.tasks_.indexOf(task);
- if (index != -1) {
- task.queue = null;
- this.tasks_.splice(index, 1);
- }
- }
-
- /**
- * @param {!Task} task The task that was cancelled.
- * @param {!CancellationError} reason The cancellation reason.
- * @private
- */
- onTaskCancelled_(task, reason) {
- if (this.pending_ && this.pending_.task === task) {
- this.pending_.q.abort_(reason);
- } else {
- this.dropTask_(task);
- }
- }
-
- /**
- * @return {(Task|undefined)} the next task scheduled within this queue,
- * if any.
- * @private
- */
- getNextTask_() {
- var task = undefined;
- while (true) {
- if (this.interrupts_) {
- task = this.interrupts_.shift();
- }
- if (!task && this.tasks_) {
- task = this.tasks_.shift();
- }
- if (task && task.blocked) {
- vlog(2, () => this + ' skipping blocked task ' + task, this);
- task.queue = null;
- task = null;
- // TODO: recurse when tail-call optimization is available in node.
- } else {
- break;
- }
- }
- return task;
- }
-}
-
-
-
-/**
- * The default flow to use if no others are active.
- * @type {ControlFlow}
- */
-var defaultFlow;
-
-
-/**
- * A stack of active control flows, with the top of the stack used to schedule
- * commands. When there are multiple flows on the stack, the flow at index N
- * represents a callback triggered within a task owned by the flow at index
- * N-1.
- * @type {!Array<!ControlFlow>}
- */
-var activeFlows = [];
-
-
-/**
- * Changes the default flow to use when no others are active.
- * @param {!ControlFlow} flow The new default flow.
- * @throws {Error} If the default flow is not currently active.
- */
-function setDefaultFlow(flow) {
- if (!usePromiseManager()) {
- throw Error(
- 'You may not change set the control flow when the promise'
- +' manager is disabled');
- }
- if (activeFlows.length) {
- throw Error('You may only change the default flow while it is active');
- }
- defaultFlow = flow;
-}
-
-
-/**
- * @return {!ControlFlow} The currently active control flow.
- * @suppress {checkTypes}
- */
-function controlFlow() {
- if (!usePromiseManager()) {
- return SIMPLE_SCHEDULER;
- }
-
- if (activeFlows.length) {
- return activeFlows[activeFlows.length - 1];
- }
-
- if (!defaultFlow) {
- defaultFlow = new ControlFlow;
- }
- return defaultFlow;
-}
-
-
-/**
- * Creates a new control flow. The provided callback will be invoked as the
- * first task within the new flow, with the flow as its sole argument. Returns
- * a promise that resolves to the callback result.
- * @param {function(!ControlFlow)} callback The entry point
- * to the newly created flow.
- * @return {!Thenable} A promise that resolves to the callback result.
- */
-function createFlow(callback) {
- var flow = new ControlFlow;
- return flow.execute(function() {
- return callback(flow);
- });
-}
-
-
-/**
- * Tests is a function is a generator.
- * @param {!Function} fn The function to test.
- * @return {boolean} Whether the function is a generator.
- */
-function isGenerator(fn) {
- return fn.constructor.name === 'GeneratorFunction';
-}
-
-
-/**
- * Consumes a {@code GeneratorFunction}. Each time the generator yields a
- * promise, this function will wait for it to be fulfilled before feeding the
- * fulfilled value back into {@code next}. Likewise, if a yielded promise is
- * rejected, the rejection error will be passed to {@code throw}.
- *
- * __Example 1:__ the Fibonacci Sequence.
- *
- * promise.consume(function* fibonacci() {
- * var n1 = 1, n2 = 1;
- * for (var i = 0; i < 4; ++i) {
- * var tmp = yield n1 + n2;
- * n1 = n2;
- * n2 = tmp;
- * }
- * return n1 + n2;
- * }).then(function(result) {
- * console.log(result); // 13
- * });
- *
- * __Example 2:__ a generator that throws.
- *
- * promise.consume(function* () {
- * yield promise.delayed(250).then(function() {
- * throw Error('boom');
- * });
- * }).catch(function(e) {
- * console.log(e.toString()); // Error: boom
- * });
- *
- * @param {!Function} generatorFn The generator function to execute.
- * @param {Object=} opt_self The object to use as "this" when invoking the
- * initial generator.
- * @param {...*} var_args Any arguments to pass to the initial generator.
- * @return {!Thenable<?>} A promise that will resolve to the
- * generator's final result.
- * @throws {TypeError} If the given function is not a generator.
- */
-function consume(generatorFn, opt_self, ...var_args) {
- if (!isGenerator(generatorFn)) {
- throw new TypeError('Input is not a GeneratorFunction: ' +
- generatorFn.constructor.name);
- }
-
- let ret;
- return ret = createPromise((resolve, reject) => {
- let generator = generatorFn.apply(opt_self, var_args);
- callNext();
-
- /** @param {*=} opt_value . */
- function callNext(opt_value) {
- pump(generator.next, opt_value);
- }
-
- /** @param {*=} opt_error . */
- function callThrow(opt_error) {
- pump(generator.throw, opt_error);
- }
-
- function pump(fn, opt_arg) {
- if (ret instanceof ManagedPromise && !isPending(ret)) {
- return; // Deferred was cancelled; silently abort.
- }
-
- try {
- var result = fn.call(generator, opt_arg);
- } catch (ex) {
- reject(ex);
- return;
- }
-
- if (result.done) {
- resolve(result.value);
- return;
- }
-
- asap(result.value, callNext, callThrow);
- }
- });
-}
-
-
-// PUBLIC API
-
-
-module.exports = {
- CancellableThenable: CancellableThenable,
- CancellationError: CancellationError,
- ControlFlow: ControlFlow,
- Deferred: Deferred,
- MultipleUnhandledRejectionError: MultipleUnhandledRejectionError,
- Thenable: Thenable,
- Promise: ManagedPromise,
- Resolver: Resolver,
- Scheduler: Scheduler,
- all: all,
- asap: asap,
- captureStackTrace: captureStackTrace,
- checkedNodeCall: checkedNodeCall,
- consume: consume,
- controlFlow: controlFlow,
- createFlow: createFlow,
- createPromise: createPromise,
- defer: defer,
- delayed: delayed,
- filter: filter,
- finally: thenFinally,
- fulfilled: fulfilled,
- fullyResolved: fullyResolved,
- isGenerator: isGenerator,
- isPromise: isPromise,
- map: map,
- rejected: rejected,
- setDefaultFlow: setDefaultFlow,
- when: when,
-
- /**
- * Indicates whether the promise manager is currently enabled. When disabled,
- * attempting to use the {@link ControlFlow} or {@link ManagedPromise Promise}
- * classes will generate an error.
- *
- * The promise manager is currently enabled by default, but may be disabled
- * by setting the environment variable `SELENIUM_PROMISE_MANAGER=0` or by
- * setting this property to false. Setting this property will always take
- * precedence over the use of the environment variable.
- *
- * @return {boolean} Whether the promise manager is enabled.
- * @see <https://github.com/SeleniumHQ/selenium/issues/2969>
- */
- get USE_PROMISE_MANAGER() { return usePromiseManager(); },
- set USE_PROMISE_MANAGER(/** boolean */value) { USE_PROMISE_MANAGER = value; },
-
- get LONG_STACK_TRACES() { return LONG_STACK_TRACES; },
- set LONG_STACK_TRACES(v) { LONG_STACK_TRACES = v; },
-};
diff --git a/node_modules/selenium-webdriver/lib/proxy.js b/node_modules/selenium-webdriver/lib/proxy.js
deleted file mode 100644
index 8632912f5..000000000
--- a/node_modules/selenium-webdriver/lib/proxy.js
+++ /dev/null
@@ -1,127 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Defines functions for configuring a webdriver proxy:
- *
- * const Capabilities = require('./capabilities').Capabilities;
- *
- * var capabilities = new Capabilities();
- * capabilities.setProxy(proxy.manual({http: 'host:1234'});
- */
-
-'use strict';
-
-var ProxyConfig = require('./capabilities').ProxyConfig;
-
-
-// PUBLIC API
-
-
-/**
- * Configures WebDriver to bypass all browser proxies.
- * @return {!ProxyConfig} A new proxy configuration object.
- */
-exports.direct = function() {
- return {proxyType: 'direct'};
-};
-
-
-/**
- * Manually configures the browser proxy. The following options are
- * supported:
- *
- * - `ftp`: Proxy host to use for FTP requests
- * - `http`: Proxy host to use for HTTP requests
- * - `https`: Proxy host to use for HTTPS requests
- * - `bypass`: A list of hosts requests should directly connect to,
- * bypassing any other proxies for that request. May be specified as a
- * comma separated string, or a list of strings.
- *
- * Behavior is undefined for FTP, HTTP, and HTTPS requests if the
- * corresponding key is omitted from the configuration options.
- *
- * @param {{ftp: (string|undefined),
- * http: (string|undefined),
- * https: (string|undefined),
- * bypass: (string|!Array.<string>|undefined)}} options Proxy
- * configuration options.
- * @return {!ProxyConfig} A new proxy configuration object.
- */
-exports.manual = function(options) {
- // TODO(jleyba): Figure out why the Closure compiler does not think this is
- // a ProxyConfig record without the cast.
- return /** @type {!ProxyConfig} */({
- proxyType: 'manual',
- ftpProxy: options.ftp,
- httpProxy: options.http,
- sslProxy: options.https,
- noProxy: Array.isArray(options.bypass) ?
- options.bypass.join(',') : options.bypass
- });
-};
-
-
-/**
- * Creates a proxy configuration for a socks proxy.
- *
- * __Example:__
- *
- * const {Capabilities} = require('selenium-webdriver');
- * const proxy = require('selenium-webdriver/lib/proxy');
- *
- * let capabilities = new Capabilities();
- * capabilities.setProxy(proxy.socks('localhost:1234', 'bob', 'password'));
- *
- *
- * @param {string} host The proxy host, in the form `hostname:port`.
- * @param {string} username The user name to authenticate as.
- * @param {string} password The password to authenticate with.
- * @return {!ProxyConfig} A new proxy configuration object.
- * @see https://en.wikipedia.org/wiki/SOCKS
- */
-exports.socks = function(host, username, password) {
- return /** @type {!ProxyConfig} */({
- proxyType: 'manual',
- socksProxy: host,
- socksUsername: username,
- socksPassword: password
- });
-};
-
-
-/**
- * Configures WebDriver to configure the browser proxy using the PAC file at
- * the given URL.
- * @param {string} url URL for the PAC proxy to use.
- * @return {!ProxyConfig} A new proxy configuration object.
- */
-exports.pac = function(url) {
- return {
- proxyType: 'pac',
- proxyAutoconfigUrl: url
- };
-};
-
-
-/**
- * Configures WebDriver to use the current system's proxy.
- * @return {!ProxyConfig} A new proxy configuration object.
- */
-exports.system = function() {
- return {proxyType: 'system'};
-};
diff --git a/node_modules/selenium-webdriver/lib/session.js b/node_modules/selenium-webdriver/lib/session.js
deleted file mode 100644
index 64ff6be76..000000000
--- a/node_modules/selenium-webdriver/lib/session.js
+++ /dev/null
@@ -1,80 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const {Capabilities} = require('./capabilities');
-
-
-/**
- * Contains information about a single WebDriver session.
- */
-class Session {
-
- /**
- * @param {string} id The session ID.
- * @param {!(Object|Capabilities)} capabilities The session
- * capabilities.
- */
- constructor(id, capabilities) {
- /** @private {string} */
- this.id_ = id;
-
- /** @private {!Capabilities} */
- this.caps_ = capabilities instanceof Capabilities
- ? /** @type {!Capabilities} */(capabilities)
- : new Capabilities(capabilities);
- }
-
- /**
- * @return {string} This session's ID.
- */
- getId() {
- return this.id_;
- }
-
- /**
- * @return {!Capabilities} This session's capabilities.
- */
- getCapabilities() {
- return this.caps_;
- }
-
- /**
- * Retrieves the value of a specific capability.
- * @param {string} key The capability to retrieve.
- * @return {*} The capability value.
- */
- getCapability(key) {
- return this.caps_.get(key);
- }
-
- /**
- * Returns the JSON representation of this object, which is just the string
- * session ID.
- * @return {string} The JSON representation of this Session.
- */
- toJSON() {
- return this.getId();
- }
-}
-
-
-// PUBLIC API
-
-
-module.exports = {Session: Session};
diff --git a/node_modules/selenium-webdriver/lib/symbols.js b/node_modules/selenium-webdriver/lib/symbols.js
deleted file mode 100644
index 6c7cd1d9d..000000000
--- a/node_modules/selenium-webdriver/lib/symbols.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-/**
- * @fileoverview Defines well-known symbols used within the selenium-webdriver
- * library.
- */
-
-
-module.exports = {
- /**
- * The serialize symbol specifies a method that returns an object's serialized
- * representation. If an object's serialized form is not immediately
- * available, the serialize method will return a promise that will be resolved
- * with the serialized form.
- *
- * Note that the described method is analogous to objects that define a
- * `toJSON()` method, except the serialized result may be a promise, or
- * another object with a promised property.
- */
- serialize: Symbol('serialize')
-};
diff --git a/node_modules/selenium-webdriver/lib/test/build.js b/node_modules/selenium-webdriver/lib/test/build.js
deleted file mode 100644
index 53b284ffb..000000000
--- a/node_modules/selenium-webdriver/lib/test/build.js
+++ /dev/null
@@ -1,151 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const spawn = require('child_process').spawn,
- fs = require('fs'),
- path = require('path');
-
-const isDevMode = require('../devmode');
-
-var projectRoot = path.normalize(path.join(__dirname, '../../../../..'));
-
-
-function checkIsDevMode() {
- if (!isDevMode) {
- throw Error('Cannot execute build; not running in dev mode');
- }
-}
-
-
-/**
- * Targets that have been previously built.
- * @type {!Object}
- */
-var builtTargets = {};
-
-
-/**
- * @param {!Array.<string>} targets The targets to build.
- * @throws {Error} If not running in dev mode.
- * @constructor
- */
-var Build = function(targets) {
- checkIsDevMode();
- this.targets_ = targets;
-};
-
-
-/** @private {boolean} */
-Build.prototype.cacheResults_ = false;
-
-
-/**
- * Configures this build to only execute if it has not previously been
- * run during the life of the current process.
- * @return {!Build} A self reference.
- */
-Build.prototype.onlyOnce = function() {
- this.cacheResults_ = true;
- return this;
-};
-
-
-/**
- * Executes the build.
- * @return {!Promise} A promise that will be resolved when
- * the build has completed.
- * @throws {Error} If no targets were specified.
- */
-Build.prototype.go = function() {
- var targets = this.targets_;
- if (!targets.length) {
- throw Error('No targets specified');
- }
-
- // Filter out cached results.
- if (this.cacheResults_) {
- targets = targets.filter(function(target) {
- return !builtTargets.hasOwnProperty(target);
- });
-
- if (!targets.length) {
- return Promise.resolve();
- }
- }
-
- console.log('\nBuilding', targets.join(' '), '...');
-
- var cmd, args = targets;
- if (process.platform === 'win32') {
- cmd = 'cmd.exe';
- args.unshift('/c', path.join(projectRoot, 'go.bat'));
- } else {
- cmd = path.join(projectRoot, 'go');
- }
-
- return new Promise((resolve, reject) => {
- spawn(cmd, args, {
- cwd: projectRoot,
- env: process.env,
- stdio: ['ignore', process.stdout, process.stderr]
- }).on('exit', function(code, signal) {
- if (code === 0) {
- targets.forEach(function(target) {
- builtTargets[target] = 1;
- });
- return resolve();
- }
-
- var msg = 'Unable to build artifacts';
- if (code) { // May be null.
- msg += '; code=' + code;
- }
- if (signal) {
- msg += '; signal=' + signal;
- }
-
- reject(Error(msg));
- });
- });
-};
-
-
-// PUBLIC API
-
-
-/**
- * Creates a build of the listed targets.
- * @param {...string} var_args The targets to build.
- * @return {!Build} The new build.
- * @throws {Error} If not running in dev mode.
- */
-exports.of = function(var_args) {
- var targets = Array.prototype.slice.call(arguments, 0);
- return new Build(targets);
-};
-
-
-/**
- * @return {string} Absolute path of the project's root directory.
- * @throws {Error} If not running in dev mode.
- */
-exports.projectRoot = function() {
- checkIsDevMode();
- return projectRoot;
-};
diff --git a/node_modules/selenium-webdriver/lib/test/data/ClickTest_testClicksASurroundingStrongTag.html b/node_modules/selenium-webdriver/lib/test/data/ClickTest_testClicksASurroundingStrongTag.html
deleted file mode 100644
index 3d117df3b..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/ClickTest_testClicksASurroundingStrongTag.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>ClickTest_testClicksASurroundingStrongTag</title>
-</head>
-<body>
- <div>
- <a href="xhtmlTest.html"><strong>Click</strong></a>
- </div>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/Page.aspx b/node_modules/selenium-webdriver/lib/test/data/Page.aspx
deleted file mode 100644
index 8e3a0d4dc..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/Page.aspx
+++ /dev/null
@@ -1,17 +0,0 @@
-<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Page.aspx.cs" Inherits="Page" %>
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" >
-<head runat="server">
- <title>Untitled Page</title>
-</head>
-<body>
- <a href="../xhtmlTest.html" target="_top">top</a>
- <form id="form1" runat="server">
- <div>
-
- </div>
- </form>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/Page.aspx.cs b/node_modules/selenium-webdriver/lib/test/data/Page.aspx.cs
deleted file mode 100644
index 1a8f7fe3e..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/Page.aspx.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-using System.Threading;
-
-public partial class Page : System.Web.UI.Page
-{
- protected void Page_Load(object sender, EventArgs e)
- {
- Response.ContentType = "text/html";
-
- int lastIndex = Request.PathInfo.LastIndexOf("/");
- string pageNumber = (lastIndex == -1 ? "Unknown" : Request.PathInfo.Substring(lastIndex + 1));
- if (!string.IsNullOrEmpty(Request.QueryString["pageNumber"]))
- {
- pageNumber = Request.QueryString["pageNumber"];
- }
- Response.Output.Write("<html><head><title>Page" + pageNumber + "</title></head>");
- Response.Output.Write("<body>Page number <span id=\"pageNumber\">");
- Response.Output.Write(pageNumber);
- //Response.Output.Write("<script>var s=''; for (var i in window) {s += i + ' -> ' + window[i] + '<p>';} document.write(s);</script>")'
- Response.Output.Write("</span></body></html>");
- }
-}
diff --git a/node_modules/selenium-webdriver/lib/test/data/Redirect.aspx b/node_modules/selenium-webdriver/lib/test/data/Redirect.aspx
deleted file mode 100644
index 52d2e6786..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/Redirect.aspx
+++ /dev/null
@@ -1,11 +0,0 @@
-<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Redirect.aspx.cs" Inherits="Redirect" %>
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" >
-<head runat="server">
- <title>Untitled Page</title>
-</head>
-<body>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/Redirect.aspx.cs b/node_modules/selenium-webdriver/lib/test/data/Redirect.aspx.cs
deleted file mode 100644
index 9e0650bfb..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/Redirect.aspx.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using System;
-
-public partial class Redirect : Page
-{
- protected new void Page_Load(object sender, EventArgs e)
- {
- Response.Redirect("resultPage.html");
- }
-}
diff --git a/node_modules/selenium-webdriver/lib/test/data/Settings.StyleCop b/node_modules/selenium-webdriver/lib/test/data/Settings.StyleCop
deleted file mode 100644
index fc955f815..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/Settings.StyleCop
+++ /dev/null
@@ -1,759 +0,0 @@
-<StyleCopSettings Version="4.3">
- <Analyzers>
- <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.DocumentationRules">
- <Rules>
- <Rule Name="ElementsMustBeDocumented">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="PartialElementsMustBeDocumented">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="EnumerationItemsMustBeDocumented">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="DocumentationMustContainValidXml">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ElementDocumentationMustHaveSummary">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="PartialElementDocumentationMustHaveSummary">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ElementDocumentationMustHaveSummaryText">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="PartialElementDocumentationMustHaveSummaryText">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ElementDocumentationMustNotHaveDefaultSummary">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ElementParametersMustBeDocumented">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ElementParameterDocumentationMustMatchElementParameters">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ElementParameterDocumentationMustDeclareParameterName">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ElementParameterDocumentationMustHaveText">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ElementReturnValueMustBeDocumented">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ElementReturnValueDocumentationMustHaveText">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="VoidReturnValueMustNotBeDocumented">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="GenericTypeParametersMustBeDocumented">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="GenericTypeParametersMustBeDocumentedPartialClass">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="GenericTypeParameterDocumentationMustMatchTypeParameters">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="GenericTypeParameterDocumentationMustDeclareParameterName">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="GenericTypeParameterDocumentationMustHaveText">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="PropertySummaryDocumentationMustMatchAccessors">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="PropertySummaryDocumentationMustOmitSetAccessorWithRestrictedAccess">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ElementDocumentationMustNotBeCopiedAndPasted">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="SingleLineCommentsMustNotUseDocumentationStyleSlashes">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="DocumentationTextMustNotBeEmpty">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="DocumentationTextMustContainWhitespace">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="DocumentationMustMeetCharacterPercentage">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="DocumentationTextMustMeetMinimumCharacterLength">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ConstructorSummaryDocumentationMustBeginWithStandardText">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="DestructorSummaryDocumentationMustBeginWithStandardText">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="DocumentationHeadersMustNotContainBlankLines">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="IncludedDocumentationXPathDoesNotExist">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="IncludeNodeDoesNotContainValidFileAndPath">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="FileMustHaveHeader">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="FileHeaderMustShowCopyright">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="FileHeaderMustHaveCopyrightText">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="FileHeaderMustContainFileName">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="FileHeaderFileNameDocumentationMustMatchFileName">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="FileHeaderMustHaveValidCompanyText">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- </Rules>
- <AnalyzerSettings />
- </Analyzer>
- <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.LayoutRules">
- <Rules>
- <Rule Name="CurlyBracketsForMultiLineStatementsMustNotShareLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="StatementMustNotBeOnSingleLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ElementMustNotBeOnSingleLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="CurlyBracketsMustNotBeOmitted">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="AllAccessorsMustBeMultiLineOrSingleLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="OpeningCurlyBracketsMustNotBeFollowedByBlankLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ElementDocumentationHeadersMustNotBeFollowedByBlankLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="CodeMustNotContainMultipleBlankLinesInARow">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ClosingCurlyBracketsMustNotBePrecededByBlankLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="OpeningCurlyBracketsMustNotBePrecededByBlankLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ChainedStatementBlocksMustNotBePrecededByBlankLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="WhileDoFooterMustNotBePrecededByBlankLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="SingleLineCommentsMustNotBeFollowedByBlankLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ClosingCurlyBracketMustBeFollowedByBlankLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ElementDocumentationHeaderMustBePrecededByBlankLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="SingleLineCommentMustBePrecededByBlankLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ElementsMustBeSeparatedByBlankLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- </Rules>
- <AnalyzerSettings />
- </Analyzer>
- <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.MaintainabilityRules">
- <Rules>
- <Rule Name="AccessModifierMustBeDeclared">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="FieldsMustBePrivate">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="CodeAnalysisSuppressionMustHaveJustification">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="DebugAssertMustProvideMessageText">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="DebugFailMustProvideMessageText">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="FileMayOnlyContainASingleClass">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="FileMayOnlyContainASingleNamespace">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="StatementMustNotUseUnnecessaryParenthesis">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ArithmeticExpressionsMustDeclarePrecedence">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ConditionalExpressionsMustDeclarePrecedence">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="RemoveDelegateParenthesisWhenPossible">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="RemoveUnnecessaryCode">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- </Rules>
- <AnalyzerSettings />
- </Analyzer>
- <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.NamingRules">
- <Rules>
- <Rule Name="ElementMustBeginWithUpperCaseLetter">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ElementMustBeginWithLowerCaseLetter">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="InterfaceNamesMustBeginWithI">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ConstFieldNamesMustBeginWithUpperCaseLetter">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="NonPrivateReadonlyFieldsMustBeginWithUpperCaseLetter">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="FieldNamesMustNotUseHungarianNotation">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="FieldNamesMustBeginWithLowerCaseLetter">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="AccessibleFieldsMustBeginWithUpperCaseLetter">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="VariableNamesMustNotBePrefixed">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="FieldNamesMustNotBeginWithUnderscore">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="FieldNamesMustNotContainUnderscore">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- </Rules>
- <AnalyzerSettings />
- </Analyzer>
- <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.OrderingRules">
- <Rules>
- <Rule Name="UsingDirectivesMustBePlacedWithinNamespace">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ElementsMustAppearInTheCorrectOrder">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ElementsMustBeOrderedByAccess">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ConstantsMustAppearBeforeFields">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="StaticElementsMustAppearBeforeInstanceElements">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="DeclarationKeywordsMustFollowOrder">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ProtectedMustComeBeforeInternal">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="PropertyAccessorsMustFollowOrder">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="EventAccessorsMustFollowOrder">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="SystemUsingDirectivesMustBePlacedBeforeOtherUsingDirectives">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="UsingAliasDirectivesMustBePlacedAfterOtherUsingDirectives">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="UsingDirectivesMustBeOrderedAlphabeticallyByNamespace">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="UsingAliasDirectivesMustBeOrderedAlphabeticallyByAliasName">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- </Rules>
- <AnalyzerSettings />
- </Analyzer>
- <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.ReadabilityRules">
- <Rules>
- <Rule Name="CommentsMustContainText">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="DoNotPrefixCallsWithBaseUnlessLocalImplementationExists">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="PrefixLocalCallsWithThis">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="OpeningParenthesisMustBeOnDeclarationLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ClosingParenthesisMustBeOnLineOfLastParameter">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ClosingParenthesisMustBeOnLineOfOpeningParenthesis">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="CommaMustBeOnSameLineAsPreviousParameter">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ParameterListMustFollowDeclaration">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ParameterMustFollowComma">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="SplitParametersMustStartOnLineAfterDeclaration">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ParametersMustBeOnSameLineOrSeparateLines">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ParameterMustNotSpanMultipleLines">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="QueryClauseMustFollowPreviousClause">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="QueryClausesMustBeOnSeparateLinesOrAllOnOneLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="QueryClauseMustBeginOnNewLineWhenPreviousClauseSpansMultipleLines">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="QueryClausesSpanningMultipleLinesMustBeginOnOwnLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="DoNotPlaceRegionsWithinElements">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="CodeMustNotContainEmptyStatements">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="CodeMustNotContainMultipleStatementsOnOneLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="BlockStatementsMustNotContainEmbeddedComments">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="BlockStatementsMustNotContainEmbeddedRegions">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="UseStringEmptyForEmptyStrings">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="UseBuiltInTypeAlias">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- </Rules>
- <AnalyzerSettings />
- </Analyzer>
- <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.SpacingRules">
- <Rules>
- <Rule Name="KeywordsMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="CommasMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="SemicolonsMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="SymbolsMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="DocumentationLinesMustBeginWithSingleSpace">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="SingleLineCommentsMustBeginWithSingleSpace">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="PreprocessorKeywordsMustNotBePrecededBySpace">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="OperatorKeywordMustBeFollowedBySpace">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="OpeningParenthesisMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ClosingParenthesisMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="OpeningSquareBracketsMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ClosingSquareBracketsMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="OpeningCurlyBracketsMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ClosingCurlyBracketsMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="OpeningGenericBracketsMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ClosingGenericBracketsMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="OpeningAttributeBracketsMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ClosingAttributeBracketsMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="NullableTypeSymbolsMustNotBePrecededBySpace">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="MemberAccessSymbolsMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="IncrementDecrementSymbolsMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="NegativeSignsMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="PositiveSignsMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="DereferenceAndAccessOfSymbolsMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="ColonsMustBeSpacedCorrectly">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="CodeMustNotContainMultipleWhitespaceInARow">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="CodeMustNotContainSpaceAfterNewKeywordInImplicitlyTypedArrayAllocation">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="TabsMustNotBeUsed">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- </Rules>
- <AnalyzerSettings />
- </Analyzer>
- </Analyzers>
-</StyleCopSettings> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/Web.Config b/node_modules/selenium-webdriver/lib/test/data/Web.Config
deleted file mode 100644
index 68b648f81..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/Web.Config
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Note: As an alternative to hand editing this file you can use the
- web admin tool to configure settings for your application. Use
- the Website->Asp.Net Configuration option in Visual Studio.
- A full list of settings and comments can be found in
- machine.config.comments usually located in
- \Windows\Microsoft.Net\Framework\v2.x\Config
--->
-<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
- <configSections>
- <section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>
- </configSections>
- <appSettings/>
- <connectionStrings/>
- <system.web>
- <!--
- Set compilation debug="true" to insert debugging
- symbols into the compiled page. Because this
- affects performance, set this value to true only
- during development.
- -->
- <compilation debug="true" defaultLanguage="c#" targetFramework="4.0"/>
- <!--
- The <authentication> section enables configuration
- of the security authentication mode used by
- ASP.NET to identify an incoming user.
- -->
- <authentication mode="Windows"/>
- <!--
- The <customErrors> section enables configuration
- of what to do if/when an unhandled error occurs
- during the execution of a request. Specifically,
- it enables developers to configure html error pages
- to be displayed in place of a error stack trace.
-
- <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
- <error statusCode="403" redirect="NoAccess.htm" />
- <error statusCode="404" redirect="FileNotFound.htm" />
- </customErrors>
- -->
- <httpModules>
- <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/>
- </httpModules>
- <!--urlMappings enabled="true">
- <add url="~/redirect" mappedUrl="~/Redirect.aspx" />
- </urlMappings-->
- <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/></system.web>
- <system.webServer>
- <modules runAllManagedModulesForAllRequests="true">
- <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule"/>
- </modules>
- </system.webServer>
- <rewriter>
- <rewrite url="~/redirect" to="~/Redirect.aspx"/>
- <rewrite url="~/page/([0-9]+)$" to="~/Page.aspx?pageNumber=$1"/>
- <rewrite url="~/page/([0-9]+)(\?)(.*)" to="~/Page.aspx?pageNumber=$1&amp;$3"/>
- </rewriter>
-</configuration>
diff --git a/node_modules/selenium-webdriver/lib/test/data/actualXhtmlPage.xhtml b/node_modules/selenium-webdriver/lib/test/data/actualXhtmlPage.xhtml
deleted file mode 100644
index a0f54703c..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/actualXhtmlPage.xhtml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>
- Title
- </title>
- </head>
- <body>
- <p>
- <a href="/foo">Foo</a>
- </p>
- </body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/ajaxy_page.html b/node_modules/selenium-webdriver/lib/test/data/ajaxy_page.html
deleted file mode 100644
index 4b34031d5..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/ajaxy_page.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE html>
-<html>
-<body>
-<form action="javascript:updateDom()">
- <label for="typer">New label text:</label>
- <input name="typer" type="text"/>
- <br/>
- <label for="color">Select label color:</label>
- <input name="color" id="red" value="red" type="radio"/>Red
- <input name="color" id="green" value="green" type="radio"/>Green
- <br/>
- <input name="submit" type="submit" value="Add Label"/>
-</form>
-<div id="update_butter" style="display:none"></div>
-<script>
- var butter = document.getElementById('update_butter');
-
- var textProperty = butter['innerText'] ? 'innerText' : 'textContent';
-
- var listeners = [];
- function registerListener(fn) {
- listeners.push(fn);
- }
-
- function updateDom() {
- butter.style.display = 'block';
- butter[textProperty] = 'Updating';
- disableForm();
- tick();
- }
-
- function disableForm() {
- var inputs = document.getElementsByTagName('input');
- for (var i = 0, input; input = inputs[i]; ++i) {
- input.disabled = true;
- }
- }
-
- function enableForm() {
- var inputs = document.getElementsByTagName('input');
- for (var i = 0, input; input = inputs[i]; ++i) {
- input.disabled = false;
- }
- }
-
- function tick() {
- var length = butter[textProperty].substring('Updating'.length).length;
- if (length != 10) {
- butter[textProperty] += '.';
- window.setTimeout(tick, 500);
- } else {
- enableForm();
- var div = document.createElement('div');
- var colors = document.forms[0].color;
- for (var i = 0, color; color = colors[i]; ++i) {
- if (color.checked) {
- div.style.backgroundColor = color.value;
- break;
- }
- }
- div[textProperty] = document.forms[0].typer.value;
- div.className = 'label';
- document.forms[0].typer.value = '';
- document.body.appendChild(div);
-
- butter[textProperty] = 'Done!';
-
- window.setTimeout(function() {
- while (listeners.length) {
- try {
- listeners.shift()(div[textProperty]);
- } catch (e) {
- butter[textProperty] = "Exception seen: " + e;
- }
- }
- }, 500);
- }
- }
-</script>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/alerts.html b/node_modules/selenium-webdriver/lib/test/data/alerts.html
deleted file mode 100644
index 1add0db99..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/alerts.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<html>
-<!-- Padding to account for small screens of mobile devices -->
-<style>
- p {margin-top:48px;}
-</style>
-<head>
- <title>Testing Alerts</title>
-
- <script type="text/javascript">
- function setInnerText(id, value) {
- document.getElementById(id).innerHTML = '<p>' + value + '</p>';
- }
-
- function displayPrompt() {
- setInnerText('text', prompt('Enter something'));
- }
-
- function displayPromptWithDefault() {
- setInnerText('text', prompt('Enter something', 'This is a default value'));
- }
-
- function displayTwoPrompts() {
- setInnerText('text1', prompt('First'));
- setInnerText('text2', prompt('Second'));
- }
-
- function slowAlert() {
- window.setTimeout(function() {
- alert('Slow');
- }, 200);
- }
- </script>
-</head>
-<body>
-
-<h1>Testing Alerts and Stuff</h1>
-
-<p>This tests alerts: <a href="#" id="alert" onclick="alert('cheese');">click me</a></p>
-
-<p>This tests alerts: <a href="#" id="empty-alert" onclick="alert('');">click me</a></p>
-
-<p>Let's make the <a href="#" id="prompt" onclick="displayPrompt();">prompt happen</a></p>
-
-<p>Let's make the <a href="#" id="prompt-with-default" onclick="displayPromptWithDefault();">prompt with default happen</a></p>
-
-<p>Let's make TWO <a href="#" id="double-prompt" onclick="displayTwoPrompts();">prompts happen</a></p>
-
-<p>A <a href="#" id="slow-alert" onclick="slowAlert();">SLOW</a> alert</p>
-
-<p>This is a test of a confirm:
- <a href="simpleTest.html" id="confirm" onclick="return confirm('Are you sure?');">test confirm</a></p>
-
-<p>This is a test of showModalDialog: <a href="#" id="dialog" onclick="showModalDialog('javascriptPage.html')">test dialog</a></p>
-
-<p>This is a test of an alert in an iframe:
- <iframe src="iframeWithAlert.html" name="iframeWithAlert"></iframe>
-</p>
-
-<p>This is a test of an alert in a nested iframe:
- <iframe src="iframeWithIframe.html" name="iframeWithIframe"></iframe>
-</p>
-
-<p>This is a test of an alert open from onload event handler: <a id="open-page-with-onload-alert" href="pageWithOnLoad.html">open new page</a></p>
-
-<p>This is a test of an alert open from onload event handler: <a id="open-window-with-onload-alert" href="pageWithOnLoad.html" target="onload">open new window</a></p>
-
-<p>This is a test of an alert open from onunload event handler: <a id="open-page-with-onunload-alert" href="pageWithOnUnload.html">open new page</a></p>
-
-<p>This is a test of an alert open from onclose event handler: <a id="open-window-with-onclose-alert" href="pageWithOnUnload.html" target="onclose">open new window</a></p>
-
-<p>This is a test of an alert open from onclose event handler: <a id="open-new-window" href="blank.html" target="newwindow">open new window</a></p>
-
-<div id="text"></div>
-<div id="text1"></div>
-<div id="text2"></div>
-
-<p><select id="select" onchange="alert('changed');">
- <option id="novalue" value="">Nothing selected</option>
- <option id="value1" value="1">One</option>
- <option id="value2" value="2">Two</option>
- <option id="value3" value="3">Three</option>
-</select></p>
-<p><input id="input" onchange="alert('change fired');" value="onchange"/></p>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/banner.gif b/node_modules/selenium-webdriver/lib/test/data/banner.gif
deleted file mode 100644
index 3f3435401..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/banner.gif
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/beach.jpg b/node_modules/selenium-webdriver/lib/test/data/beach.jpg
deleted file mode 100644
index 402237cbd..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/beach.jpg
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/blank.html b/node_modules/selenium-webdriver/lib/test/data/blank.html
deleted file mode 100644
index c3f376e76..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/blank.html
+++ /dev/null
@@ -1 +0,0 @@
-<html><head><title>blank</title></head><body></body></html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/bodyTypingTest.html b/node_modules/selenium-webdriver/lib/test/data/bodyTypingTest.html
deleted file mode 100644
index f2b1939f1..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/bodyTypingTest.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0"?>
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>Testing Typing into body</title>
- <script type="text/javascript">
- function appendMessage(message) {
- document.getElementById('result').innerHTML += message + " ";
- }
-
- function appendMessageFromBody(message) {
- document.getElementById('body_result').innerHTML += message + " ";
- }
- </script>
-</head>
-
-<body onkeypress="appendMessageFromBody('keypress')">
- <h1>Type Stuff</h1>
-
- <div id="result">
- &nbsp;
- </div>
-
- <div id="body_result">
- &nbsp;
- </div>
-
-
- <!-- Textbox - to confuse some browsers. -->
-
- <form action="resultPage.html" id="on-form">
- <input id="intext"
- onfocus="appendMessage('focus')"
- onkeydown="appendMessage('keydown')"
- onkeypress="appendMessage('keypress')"
- onkeyup="appendMessage('keyup')"
- onblur="appendMessage('blur')"
- onchange="appendMessage('change')"
- />
- </form>
-</body>
-
diff --git a/node_modules/selenium-webdriver/lib/test/data/booleanAttributes.html b/node_modules/selenium-webdriver/lib/test/data/booleanAttributes.html
deleted file mode 100644
index 16fbbe9f8..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/booleanAttributes.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html>
-<head>
- <title>Elements with boolean attributes</title>
-</head>
-<body>
-<form method="get" action="resultPage.html" name="required">
- <input type="text" id="working"/>
- <input type="email" id="emailRequired" required/>
- <input type="text" id="inputRequired" value="Example text" required=""/>
- <textarea id="textAreaRequired" rows="5" cols="5" required="false">Example text</textarea>
- <textarea id="emptyTextAreaRequired" rows="5" cols="5" required="required"></textarea>
-</form>
-
-<!-- Empty div to test GetAttribute -->
-<div id="wallace" class="gromit"></div>
-<!-- Div to test boolean attributes -->
-<div id="unwrappable" nowrap>Unwrappable text</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/child/childPage.html b/node_modules/selenium-webdriver/lib/test/data/child/childPage.html
deleted file mode 100644
index 9192b54a4..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/child/childPage.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-<head>
- <title>Depth one child page</title>
-</head>
-<body>
- <p>I'm a page in a child directory</p>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/child/grandchild/grandchildPage.html b/node_modules/selenium-webdriver/lib/test/data/child/grandchild/grandchildPage.html
deleted file mode 100644
index f52685e06..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/child/grandchild/grandchildPage.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-<head>
- <title>Depth two child page</title>
-</head>
-<body>
- <p>I'm a page in a grandchild directory! How cute!</p>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/clickEventPage.html b/node_modules/selenium-webdriver/lib/test/data/clickEventPage.html
deleted file mode 100644
index 8e0355d94..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/clickEventPage.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0"?>
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>Testing click events</title>
- <script type="text/javascript">
- function displayEvent(event) {
- var keys = ['x', 'y', 'clientX', 'clientY', 'pageX', 'pageY', 'screenX', 'screenY', 'shiftKey', 'ctrlKey'];
- var message = "<ul>";
- for (var i = 0; i < keys.length; i++) {
- message += "<li>" + keys[i] + ": <span id='" + keys[i] + "'>" + event[keys[i]] + "</span></li>";
- }
- message += "</ul>";
- document.getElementById('result').innerHTML = message;
- }
- </script>
-</head>
-<body>
- <div id="eventish" onclick="displayEvent(event);">
- Click me to view my coordinates
- </div>
-
- <div id="result" style="width:300;height:60">
- <p>&nbsp;</p>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_frames.html b/node_modules/selenium-webdriver/lib/test/data/click_frames.html
deleted file mode 100644
index bd055c7c7..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_frames.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<html>
-<head>
- <title>click frames</title>
-</head>
-<frameset rows="*" border="1">
- <frame src="clicks.html" name="source" scrolling="NO" noresize>
- <frame src="xhtmlTest.html" name="target">
-</frameset>
-</frameset>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_jacker.html b/node_modules/selenium-webdriver/lib/test/data/click_jacker.html
deleted file mode 100644
index 0ff3900ec..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_jacker.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>click-jacking</title>
- <script>
- var clickJacker;
-
- function setOpacity(opacity) {
- var matches = window.navigator.userAgent.match(/MSIE\s*(\d*)/);
- if (matches && matches.length > 1 && parseInt(matches[1]) <= 8) {
- clickJacker.style.filter = 'alpha(opacity=' + (opacity * 100) + ')';
- } else {
- clickJacker.style.opacity = opacity;
- }
- }
-
- function init() {
- clickJacker = document.getElementById('clickJacker');
- setOpacity(0);
- }
- </script>
-</head>
-<body onload="init()">
-<div>
- <div id="clickJacker"
- onclick="setOpacity(1);"
- style="position:absolute;float:left;
- width:200px;height:100px; padding:10px;
- background-color:darkred;
- border:1px solid darkred;">Click jacked!</div>
- <div style="width:200px; height:100px;
- border:1px solid black; padding:10px">Click Me</div>
- <script>
- clickJacker = document.getElementById('clickJacker');
- </script>
-</div>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_out_of_bounds.html b/node_modules/selenium-webdriver/lib/test/data/click_out_of_bounds.html
deleted file mode 100644
index 8a51659b2..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_out_of_bounds.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE html>
-<html>
-<body>
-
-<table>
- <tr>
-
- <td>
- <div style="width:752px;"></div>
- </td>
-
- <td>
- <div style="width:350px; text-align: center;">
- <form onsubmit="return false;" method="get">
- <input id="button" value="Click me" type="submit">
- </form>
- </div>
- </td>
- </tr>
-</table>
-
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_out_of_bounds_overflow.html b/node_modules/selenium-webdriver/lib/test/data/click_out_of_bounds_overflow.html
deleted file mode 100644
index 15ac17f92..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_out_of_bounds_overflow.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE html>
-<html><head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<body>
-<div style="height: 100px; overflow: auto;">
- <table>
- <tbody>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td>data</td></tr>
- <tr><td><a href="#clicked" id="link">click me</a></td></tr>
- </tbody>
-</table>
-</div>
-</body></html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_rtl.html b/node_modules/selenium-webdriver/lib/test/data/click_rtl.html
deleted file mode 100644
index e84fffa99..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_rtl.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>RTL test</title>
-<style type="text/css">
- .test { font-size: 150%; }
- table td { border: 1px solid #CCC; }
- img { margin: 10px; }
-</style>
-</head>
-<body>
-<div dir="rtl">
-
-<div class="test">Ù…Ùتاح<a href="clicks.html" id="ar_link"> معايير</a> الويب</div>
-
-<div class="test">פעילות<a id="hb_link" href="clicks.html"> הבינ××•× </a></div>
-
-</div>
-
-</body></html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_source.html b/node_modules/selenium-webdriver/lib/test/data/click_source.html
deleted file mode 100644
index 22e9319a5..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_source.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<html>
-<head>
- <title>Click Source</title>
-</head>
-<body>
- <a href="simpleTest.html" target="target" id="otherframe">I go to a target</a>
-</body>
-</html>
-
-<html>
-<head>
- <title>Click Source</title>
-</head>
-<body>
- <a href="simpleTest.html" target="target" id="otherframe">I go to a target</a>
-</body>
-</html>
- \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/click_iframe.html b/node_modules/selenium-webdriver/lib/test/data/click_tests/click_iframe.html
deleted file mode 100644
index 7b749bc04..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/click_iframe.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<html>
-<head>
- <title>click iframe</title>
-</head>
-<body><a id="link" href="submitted_page.html" target="_top">Click me</a></body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/click_in_iframe.html b/node_modules/selenium-webdriver/lib/test/data/click_tests/click_in_iframe.html
deleted file mode 100644
index 60b1ccab1..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/click_in_iframe.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-<head>
- <title>click in iframe</title>
-</head>
-<body>
-<iframe id="ifr" src="click_iframe.html" style="margin: 200px; width: 100px; height: 50px;" />
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/disabled_element.html b/node_modules/selenium-webdriver/lib/test/data/click_tests/disabled_element.html
deleted file mode 100644
index 7113e1bc0..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/disabled_element.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Clicking on a disabled element</title>
-</head>
-<body>
-<h1>See below</h1>
-<form action="POST">
- <input name="disabled" disabled="disabled" />
-</form>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/disappearing_element.html b/node_modules/selenium-webdriver/lib/test/data/click_tests/disappearing_element.html
deleted file mode 100644
index 4386d5d4b..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/disappearing_element.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>An element that disappears on click</title>
- <style>
-#under {
- position: absolute;
- top: 20;
- left: 20;
- width: 100px;
- height: 100px;
- background-color: white;
-}
-
-#over {
- position: absolute;
- top: 20;
- left: 20;
- width: 100px;
- height: 100px;
- background-color: red;
- opacity: 0.5;
-}
-
-#log {
- position: absolute;
- top: 120px;
-}
- </style>
-</head>
-<body id="body">
- <div id="under"><p id="contents">Hello</p></div>
- <div id="over"></div>
- <div id="log">
- <p>Log:<p>
- </div>
-<script>
-var byId = document.getElementById.bind(document);
-
-var log = byId("log");
-
-function handler(ev) {
- log.innerHTML += "<p></p>";
- log.lastElementChild.textContent = ev.type + " in " + ev.target.id + " (handled by " + ev.currentTarget.id + ")\n";
-}
-
-var under = byId("under");
-var over = byId("over");
-var body = document.body;
-
-var types = ["click", "mousedown", "mouseup"];
-for (var i = 0, type; (type = types[i]); ++i) {
- under.addEventListener(type, handler);
- over.addEventListener(type, handler);
- body.addEventListener(type, handler);
-}
-over.addEventListener("mousedown", function () {
- over.style.display = "none";
-})
-</script>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/google_map.html b/node_modules/selenium-webdriver/lib/test/data/click_tests/google_map.html
deleted file mode 100644
index eb2e556c9..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/google_map.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Google Image Map</title>
-</head>
-<body>
-<h1>Google Image Map</h1>
-<img id="google_logo" src="google_map.png" usemap="#google_map" border="0" width="364" height="126"/>
-<map id="google_map" name="google_map">
-<area id="rectG" shape="rect" coords="0,0,90,100" href="mapped_page1.html" alt="area 1"/>
-<area id="circleO" shape="circle" coords="120,60,30" href="mapped_page2.html" alt="area 2"/>
-<area id="polyLE" shape="poly" coords="280,0,310,0,360,30,360,90,280,90" href="mapped_page3.html" alt="area 3"/>
-</map>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/google_map.png b/node_modules/selenium-webdriver/lib/test/data/click_tests/google_map.png
deleted file mode 100644
index 763f56279..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/google_map.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/html5_submit_buttons.html b/node_modules/selenium-webdriver/lib/test/data/click_tests/html5_submit_buttons.html
deleted file mode 100644
index a8fc6ca54..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/html5_submit_buttons.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<title>HTML5 Submit Buttons</title>
-</head>
-<body>
-<form id="form1" action="submitted_page.html">
-<label for="name">Enter your name: </label><input type="text" name="name" id="name"/>
-<button id="internal_explicit_submit" type="submit">Explicit Submit</button>
-<button id="internal_implicit_submit">Implicit Submit</button>
-<button type="submit"><span id="internal_span_submit">Spanned Submit</span></button>
-</form>
-<button id="external_explicit_submit" type="submit" form="form1">Explicit Submit</button>
-<button id="external_implicit_submit" form="form1">Implicit Submit</button>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/issue5237.html b/node_modules/selenium-webdriver/lib/test/data/click_tests/issue5237.html
deleted file mode 100644
index 464fa1138..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/issue5237.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Sample page for issue 5237</title>
-</head>
-<body>
- <iframe id="search" src="issue5237_frame.html"></iframe>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/issue5237_frame.html b/node_modules/selenium-webdriver/lib/test/data/click_tests/issue5237_frame.html
deleted file mode 100644
index d6f4caf12..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/issue5237_frame.html
+++ /dev/null
@@ -1 +0,0 @@
-<a id="submit" href="#" onclick="window.top.location = 'issue5237_target.html'; return false;">Continue</a> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/issue5237_target.html b/node_modules/selenium-webdriver/lib/test/data/click_tests/issue5237_target.html
deleted file mode 100644
index cbc16e851..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/issue5237_target.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Target page for issue 5237</title>
-</head>
-<body>
-<h1>Test passed</h1>
-</map>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/link_that_wraps.html b/node_modules/selenium-webdriver/lib/test/data/click_tests/link_that_wraps.html
deleted file mode 100644
index 04434364f..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/link_that_wraps.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Link that continues on next line</title>
-</head>
-<body>
- <div style="width:300px">
- <div style="float:left;width:200px;background:red">placeholder</div><a id="link" href="submitted_page.html">Link that continues on next line</a>
- </div>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/mapped_page1.html b/node_modules/selenium-webdriver/lib/test/data/click_tests/mapped_page1.html
deleted file mode 100644
index 245f0385b..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/mapped_page1.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Target Page 1</title>
-</head>
-<body>
- <div>Target Page 1</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/mapped_page2.html b/node_modules/selenium-webdriver/lib/test/data/click_tests/mapped_page2.html
deleted file mode 100644
index 6f9636c5c..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/mapped_page2.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Target Page 2</title>
-</head>
-<body>
- <div>Target Page 2</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/mapped_page3.html b/node_modules/selenium-webdriver/lib/test/data/click_tests/mapped_page3.html
deleted file mode 100644
index 87a35f388..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/mapped_page3.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Target Page 3</title>
-</head>
-<body>
- <div>Target Page 3</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/overlapping_elements.html b/node_modules/selenium-webdriver/lib/test/data/click_tests/overlapping_elements.html
deleted file mode 100644
index 6cfa56ade..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/overlapping_elements.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>An element that disappears on click</title>
- <style>
-#under {
- position: absolute;
- top: 20px;
- left: 20px;
- width: 100px;
- height: 100px;
- background-color: white;
-}
-
-#partially_under {
- position: absolute;
- top: 20px;
- left: 10px;
- width: 100px;
- height: 100px;
- background-color: blue;
- opacity: 0.5;
-}
-
-#over {
- position: absolute;
- top: 20px;
- left: 20px;
- width: 100px;
- height: 100px;
- background-color: red;
- opacity: 0.5;
-}
-
-#log {
- position: absolute;
- top: 120px;
-}
- </style>
-</head>
-<body id="body">
- <div id="under"><p id="contents">Hello</p></div>
- <div id="partially_under"><p id="other_contents">Hello</p></div>
- <div id="over"></div>
- <div id="log">
- <p>Log:<p>
- </div>
-<script>
-var byId = document.getElementById.bind(document);
-
-var log = byId("log");
-
-function handler(ev) {
- log.innerHTML += "<p></p>";
- log.lastElementChild.textContent = ev.type + " in " + ev.target.id + " (handled by " + ev.currentTarget.id + ")\n";
-}
-
-var under = byId("under");
-var over = byId("over");
-var body = document.body;
-
-var types = ["click", "mousedown", "mouseup"];
-for (var i = 0, type; (type = types[i]); ++i) {
- under.addEventListener(type, handler);
- over.addEventListener(type, handler);
- body.addEventListener(type, handler);
-}
-</script>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/partially_overlapping_elements.html b/node_modules/selenium-webdriver/lib/test/data/click_tests/partially_overlapping_elements.html
deleted file mode 100644
index 2af62526e..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/partially_overlapping_elements.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>An element that disappears on click</title>
- <style>
-#under_under {
- position: absolute;
- top: 20px;
- left: 20px;
- width: 100px;
- height: 100px;
- background-color: white;
-}
-
-#under {
- position: absolute;
- top: 20px;
- left: 20px;
- width: 100px;
- height: 100px;
- background-color: blue;
- opacity: 0.1;
-}
-
-#over1 {
- position: absolute;
- top: 10px;
- left: 10px;
- width: 50px;
- height: 50px;
- background-color: red;
- opacity: 0.2;
-}
-
-#over2 {
- position: absolute;
- top: 80px;
- left: 10px;
- width: 50px;
- height: 50px;
- background-color: red;
- opacity: 0.2;
-}
-
-#over3 {
- position: absolute;
- top: 10px;
- left: 80px;
- width: 50px;
- height: 50px;
- background-color: red;
- opacity: 0.2;
-}
-
-#over4 {
- position: absolute;
- top: 80px;
- left: 80px;
- width: 50px;
- height: 50px;
- background-color: red;
- opacity: 0.2;
-}
-
-#over5 {
- position: absolute;
- top: 45px;
- left: 45px;
- width: 50px;
- height: 50px;
- background-color: red;
- opacity: 0.2;
-}
-
-#log {
- position: absolute;
- top: 120px;
-}
- </style>
-</head>
-<body id="body">
- <div id="under_under"><p id="contents">Hello</p></div>
- <div id="under"><p id="other_contents">Hello</p></div>
- <div id="over1"></div>
- <div id="over2"></div>
- <div id="over3"></div>
- <div id="over4"></div>
- <div id="over5"></div>
- <div id="log">
- <p>Log:<p>
- </div>
-<script>
-var byId = document.getElementById.bind(document);
-
-var log = byId("log");
-
-function handler(ev) {
- log.innerHTML += "<p></p>";
- log.lastElementChild.textContent = ev.type + " in " + ev.target.id + " (handled by " + ev.currentTarget.id + ")\n";
-}
-
-var under_under = byId("under_under");
-var under = byId("under");
-var over1 = byId("over1");
-var over2 = byId("over2");
-var over3 = byId("over3");
-var over4 = byId("over4");
-var over5 = byId("over5");
-var body = document.body;
-
-var types = ["click", "mousedown", "mouseup"];
-for (var i = 0, type; (type = types[i]); ++i) {
- under_under.addEventListener(type, handler);
- under.addEventListener(type, handler);
- over1.addEventListener(type, handler);
- over2.addEventListener(type, handler);
- over3.addEventListener(type, handler);
- over4.addEventListener(type, handler);
- over5.addEventListener(type, handler);
- body.addEventListener(type, handler);
-}
-</script>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/span_that_wraps.html b/node_modules/selenium-webdriver/lib/test/data/click_tests/span_that_wraps.html
deleted file mode 100644
index 77a9d6d50..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/span_that_wraps.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Link that continues on next line</title>
-</head>
-<body>
- <div style="width:300px">
- <div style="float:left;width:200px;background:red">placeholder</div><span id="span" onclick="document.location='submitted_page.html'">Span that continues on next line</span>
- </div>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/submitted_page.html b/node_modules/selenium-webdriver/lib/test/data/click_tests/submitted_page.html
deleted file mode 100644
index 0ed2cbacb..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/submitted_page.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<title>Submitted Successfully!</title>
-</head>
-<body>
-<h1>Submitted Successfully!</h1>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_tests/wrapped_overlapping_elements.html b/node_modules/selenium-webdriver/lib/test/data/click_tests/wrapped_overlapping_elements.html
deleted file mode 100644
index 1c0c3d03e..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_tests/wrapped_overlapping_elements.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>A wrapped element with overlapped first part</title>
-</head>
-<body id="body">
-<div style="width:300px">
- <div style="float:left;width:200px;background:green;">placeholder</div>
- <div style="float:left; position:absolute;width:100px;margin-left:200px;background:red;opacity:0.5;">Over</div>
- <a id="link" href="submitted_page.html">Link that continues on next line</a>
-</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_too_big.html b/node_modules/selenium-webdriver/lib/test/data/click_too_big.html
deleted file mode 100644
index 568ee77eb..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_too_big.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<body>
- <a id="click" href="clicks.html" target="_parent">
- <div style="width: 10001px; height: 10001px; background-color: green;">
- &nbsp; &nbsp; &nbsp;
- </div>
- </a>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/click_too_big_in_frame.html b/node_modules/selenium-webdriver/lib/test/data/click_too_big_in_frame.html
deleted file mode 100644
index cda990ed8..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/click_too_big_in_frame.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html>
-<head>
- <title>This page has iframes</title>
-</head>
-<body>
-<h1 id="iframe_page_heading">This is the heading</h1>
-
-<iframe src="click_too_big.html" marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" allowtransparency="true"
- frameborder="0" height="10001" scrolling="no" width="10001" id="iframe1" name="iframe1-name" />
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/clicks.html b/node_modules/selenium-webdriver/lib/test/data/clicks.html
deleted file mode 100644
index dc07fee6a..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/clicks.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<html>
-<head>
- <title>clicks</title>
-</head>
-<body>
-<h1>Testing Clicks</h1>
-
-<iframe id="source" src="click_source.html">
-
-</iframe>
-
-<iframe id="target" name="target">
-
-</iframe>
-<br>
-<a href="xhtmlTest.html" id="normal">I'm a normal link</a>
-<br/>
-<a href="#" id="anchor">I go to an anchor</a>
-<br>
-<a href="javascript:window.open('xhtmlTest.html', '_blank')" id="new-window">I open a window with javascript</a>
-<br/>
-<a href="xhtmlTest.html" id="twoClientRects"><span></span><span>Click me</span></a>
-<br/>
-<a href="xhtmlTest.html" id="link-with-enclosed-image"><img id="enclosed-image" src="./icon.gif"/></a>
-<br/>
-<a href="xhtmlTest.html" id="link-with-enclosed-span"><span id="enclosed-span" style="color: rgb(0, 255, 0)">I'm a green link</span></a>
-<p style="background: none repeat scroll 0% 0% rgb(0, 255, 0); width: 5em;"><a id="overflowLink" href="xhtmlTest.html">looooooooooong short looooooooooong</a>
- </p>
-<div id="bubblesTo" onclick="window.bubbledClick = true;">
- <a id="bubblesFrom">I bubble</a>
-</div>
-<a href="xhtmlTest.html">333333</a>
-<p><a href="xhtmlTest.html" id="embeddedBlock"><span style="display: block;">I have a span</span><div>And a div</div><span>And another span</span></a></p>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/closeable_window.html b/node_modules/selenium-webdriver/lib/test/data/closeable_window.html
deleted file mode 100644
index e64c599c9..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/closeable_window.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-<head>
-<title>closeable window</title>
-</head>
-<body>
-This window can be closed by clicking on <a id="close" onclick="window.setTimeout(function() { window.close();}, 0);" href="#">this</a>.
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/cn-test.html b/node_modules/selenium-webdriver/lib/test/data/cn-test.html
deleted file mode 100644
index df846ad46..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/cn-test.html
+++ /dev/null
@@ -1,156 +0,0 @@
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
-<style type="text/css">
-
-
-
- /* default css */
-
- table {
- font-size: 1em;
- line-height: inherit;
- }
-
-
- div, address, ol, ul, li, option, select {
- margin-top: 0px;
- margin-bottom: 0px;
- }
-
- p {
- margin: 0px;
- }
-
- body {
-
-
- margin: 0px;
-
-
-
- padding-left: 50px;
- padding-right: 50px;
- padding-top: 40px;
-
-
- }
-
- h6 { font-size: 10pt }
- h5 { font-size: 11pt }
- h4 { font-size: 12pt }
- h3 { font-size: 13pt }
- h2 { font-size: 14pt }
- h1 { font-size: 16pt }
-
- blockquote {padding: 10px; border: 1px #DDD dashed }
-
- a img {border: 0}
-
- div.google_header, div.google_footer {
- position: relative;
- margin-top: 1em;
- margin-bottom: 1em;
- }
- /* end default css */
-
-
- /* default print css */
-
- @media print {
- body {
- padding: 0;
- margin: 0;
- }
-
- div.google_header, div.google_footer {
- display: block;
- min-height: 0;
- border: none;
- }
-
- div.google_header {
- flow: static(header);
- }
-
- /* used to insert page numbers */
- div.google_header::before, div.google_footer::before {
- position: absolute;
- top: 0;
- }
-
- div.google_footer {
- flow: static(footer);
- }
-
- /* always consider this element at the start of the doc */
- div#google_footer {
- flow: static(footer, start);
- }
-
- span.google_pagenumber {
- content: counter(page);
- }
-
- span.google_pagecount {
- content: counter(pages);
- }
- }
-
- @page {
- @top {
- content: flow(header);
- }
- @bottom {
- content: flow(footer);
- }
- }
- /* end default print css */
-
-
- /* custom css */
-
-
- /* end custom css */
-
- /* ui edited css */
-
- body {
- font-family: Verdana;
-
- font-size: 10.0pt;
- line-height: normal;
- background-color: #ffffff;
- }
- /* end ui edited css */
-
-
-
-
-</style>
-
-
-</head>
-
-<body revision="cczv65wb_54f62cc9f2:3">
-
-<div id="result">
-</div>
-
-
-<h1>Õ¹Íû2008ÊÀ½ç´óÊÆ£º·çÆðÔÆÓ¿ ¼¤µ´ÈËÐÄ</h1><br>
-<br>
- 8ÔÂ8ÈÕÍí£¬±±¾©2008Äê°ÂÔ˻ᵹ¼ÆʱһÖÜÄêÇì×£»î¶¯ÔÚÌì°²ÃŹ㳡¾ÙÐС£Í¼ÎªÇì×£»î¶¯ÖеÄÎÄÒÕÑݳö¡£ лªÉç¼ÇÕßÁõÎÀ±øÉã
-
- £²£°£°£¸ÄêÊÀ½ç·çÆðÔÆÓ¿£¬¼¤µ´ÈËÐÄ¡£µ«Òª×÷³öÒ»¸öÔ¤²â£¬Ê×ÏÈÒª¶Ô½ñÌìËù´¦µÄÊÀ½çÓÐÒ»¸ö»ù±¾¹²Ê¶¡£<br>
-<br>
-<a href=simpleTest.html id=b7v9 title=ÖйúÖ®Éù>ÖйúÖ®Éù</a><br>
-<br>
-<br>
-
-<form action="simpleTest.html">
- <input name="i18n" onchange="document.getElementById('result').innerHTML = '<p>' + this.value + '</p>';" />
-</form>
-
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/colorPage.html b/node_modules/selenium-webdriver/lib/test/data/colorPage.html
deleted file mode 100644
index 0d1bfc0af..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/colorPage.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Color Page</title>
-</head>
-<body>
-<div id="namedColor" style="background-color: green;">namedColor</div>
-<div id="rgb" style="background-color: rgb(0,128,0);">rgb</div>
-<div id="rgbpct" style="background-color: rgb(0%,50%,0%);">rgbpct</div>
-<div id="hex" style="background-color: #008000;">hex</div>
-<div id="hexShort" style="background-color: #eee;">hex</div>
-<div id="hsl" style="background-color: hsl(120,100%,25%);">hsl</div>
-<div id="rgba" style="background-color: rgba(0,128,0, 0.5);">rgba</div>
-<div id="rgbapct" style="background-color: rgba(0%,50%,0%, 0.5);">rgba</div>
-<div id="hsla" style="background-color: hsla(120,100%,25%,0.5);">hsla</div>
-</body>
-</html>
-
-
-
diff --git a/node_modules/selenium-webdriver/lib/test/data/cookies.html b/node_modules/selenium-webdriver/lib/test/data/cookies.html
deleted file mode 100644
index 7db5b4931..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/cookies.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<html>
-<head>
- <title>Testing cookies</title>
-
- <script type="text/javascript">
- function setCookie(domain, name) {
- document.cookie = name + "=ok;path=/;domain=" + domain;
- }
-
- function showCookie() {
- document.getElementById("result").innerHTML = "<p>" + document.cookie + "</p>";
- }
- </script>
-</head>
-<body onload="showCookie();">
-<h2>Cookie Mashing</h2>
- .com <a href="#" onclick="setCookie('.com', 'the.com_one'); showCookie(); return false;">Click</a></br />
- . <a href="#" onclick="setCookie('.', 'the.one'); showCookie(); return false;">Click</a></br />
- google.com <a href="#" onclick="setCookie('google.com', 'google'); showCookie(); return false;">Click</a></br />
- .google.com <a href="#" onclick="setCookie('.google.com', '.google'); showCookie(); return false;">Click</a></br />
- 127.0.0.1 <a href="#" onclick="setCookie('127.0.0.1', 'localhost'); showCookie(); return false;">Click</a></br />
- localhost:3001 <a href="#" onclick="setCookie('mency.ad.corp.google.com:62210', 'with_port'); showCookie(); return false;">Click</a></br />
- .google:3001 <a href="#" onclick="setCookie('.google.com:62210', 'with_domain_and_port'); showCookie(); return false;">Click</a></br />
- 172.16.12.225 <a href="#" onclick="setCookie('172.16.12.225', 'raw_IP'); showCookie(); return false;">Click</a></br />
- 172.16.12.225:port <a href="#" onclick="setCookie('172.16.12.225:62210', 'raw_IP_and_port'); showCookie(); return false;">Click</a></br />
- <a href="#" onclick="document.cookie = 'foo=bar;path=/common/galaxy';">Set on a different path</a>
-
-<div id="result"></div>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/element_in_frame.html b/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/element_in_frame.html
deleted file mode 100644
index 7714a48ad..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/element_in_frame.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Welcome Page</title>
-</head>
-<body style="margin: 10px; padding: 0px;">
- <iframe name="ifr" src="simple_page.html" width="400" height="300" style="border: 5px solid;"></iframe>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/element_in_nested_frame.html b/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/element_in_nested_frame.html
deleted file mode 100644
index b3143b0d6..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/element_in_nested_frame.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Welcome Page</title>
-</head>
-<body style="margin: 10px; padding: 0px;">
- <iframe name="ifr" src="element_in_frame.html" width="500" height="400" style="border: 5px solid;"></iframe>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_element_out_of_view.html b/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_element_out_of_view.html
deleted file mode 100644
index 6f2bcd4f2..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_element_out_of_view.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Page With Element Out Of View</title>
-</head>
-<body style="margin: 10px; padding: 0px;">
- <div style="height: 5000px;">Placeholder</div>
- <div id="box" style="width: 100px; height: 100px; background-color: red;">Red box</div>
- <div>Tex after box</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_empty_element.html b/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_empty_element.html
deleted file mode 100644
index b07972abd..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_empty_element.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Page With Empty Element</title>
-</head>
-<body style="margin: 10px; padding: 0px;">
- <div id="box"></div>
- <div>Tex after box</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_fixed_element.html b/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_fixed_element.html
deleted file mode 100644
index 6cbb2738e..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_fixed_element.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Page With Fixed Element</title>
-</head>
-<body>
- <div id="fixed" style="position:fixed; top:0px; left:100px; background-color:red">fixed red box</div>
- <div id="placeholder" style="height: 5000px; background-color:green">Placeholder</div>
- <div id="bottom">Element at the bottom</div>
- <div>Tex after box</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_hidden_element.html b/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_hidden_element.html
deleted file mode 100644
index 286b04b17..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_hidden_element.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Page With Hidden Element</title>
-</head>
-<body style="margin: 10px; padding: 0px;">
- <div id="box" style="width: 100px; height: 100px; background-color: red; visibility: hidden;">Hidden box</div>
- <div>Tex after box</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_invisible_element.html b/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_invisible_element.html
deleted file mode 100644
index dc33c7185..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_invisible_element.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Page With Invisible Element</title>
-</head>
-<body style="margin: 10px; padding: 0px;">
- <div id="box" style="width: 100px; height: 100px; background-color: red; display: none;">Invisible box</div>
- <div>Tex after box</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_transparent_element.html b/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_transparent_element.html
deleted file mode 100644
index d0090d921..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/page_with_transparent_element.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Page With Transparent Element</title>
-</head>
-<body style="margin: 10px; padding: 0px;">
- <div id="box" style="width: 100px; height: 100px; background-color: red; opacity: 0;">Hidden box</div>
- <div>Tex after box</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/simple_page.html b/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/simple_page.html
deleted file mode 100644
index 7b857b9df..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/coordinates_tests/simple_page.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Simple Page</title>
-</head>
-<body style="margin: 10px; padding: 0px;">
- <div id="box" style="width: 100px; height: 100px; background-color: red;">Red box</div>
- <div>Tex after box</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
deleted file mode 100644
index 954e22dbd..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png b/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
deleted file mode 100644
index 64ece5707..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png b/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
deleted file mode 100644
index abdc01082..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png b/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
deleted file mode 100644
index 9b383f4d2..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png b/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
deleted file mode 100644
index a23baad25..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png b/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
deleted file mode 100644
index 42ccba269..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
deleted file mode 100644
index 39d5824d6..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
deleted file mode 100644
index f1273672d..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
deleted file mode 100644
index 359397acf..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_222222_256x240.png b/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_222222_256x240.png
deleted file mode 100644
index b273ff111..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_222222_256x240.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_228ef1_256x240.png b/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_228ef1_256x240.png
deleted file mode 100644
index a641a371a..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_228ef1_256x240.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_ef8c08_256x240.png b/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
deleted file mode 100644
index 85e63e9f6..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_ffd27a_256x240.png b/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
deleted file mode 100644
index e117effa3..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_ffffff_256x240.png b/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_ffffff_256x240.png
deleted file mode 100644
index 42f8f992c..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/images/ui-icons_ffffff_256x240.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/jquery-ui-1.8.10.custom.css b/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/jquery-ui-1.8.10.custom.css
deleted file mode 100644
index 1706e2207..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/css/ui-lightness/jquery-ui-1.8.10.custom.css
+++ /dev/null
@@ -1,573 +0,0 @@
-/*
- * jQuery UI CSS Framework 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden { display: none; }
-.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
-.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
-.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
-.ui-helper-clearfix { display: inline-block; }
-/* required comment for clearfix to work in Opera \*/
-* html .ui-helper-clearfix { height:1%; }
-.ui-helper-clearfix { display:block; }
-/* end clearfix */
-.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled { cursor: default !important; }
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
-
-
-/*
- * jQuery UI CSS Framework 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
- */
-
-
-/* Component containers
-----------------------------------*/
-.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
-.ui-widget .ui-widget { font-size: 1em; }
-.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
-.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
-.ui-widget-content a { color: #333333; }
-.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
-.ui-widget-header a { color: #ffffff; }
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
-.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; }
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
-.ui-widget :active { outline: none; }
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
-.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
-.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
-.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
-.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
-.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
-.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
-
-/* positioning */
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-off { background-position: -96px -144px; }
-.ui-icon-radio-on { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; }
-.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
-.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
-.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
-.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
-.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
-.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
-.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
-.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; }
-
-/* Overlays */
-.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
-.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*
- * jQuery UI Resizable 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
- * jQuery UI Selectable 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
-/*
- * jQuery UI Accordion 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion#theming
- */
-/* IE/Win - Fix animation bug - #4615 */
-.ui-accordion { width: 100%; }
-.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
-.ui-accordion .ui-accordion-li-fix { display: inline; }
-.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
-.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
-.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
-.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }
-/*
- * jQuery UI Autocomplete 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-
-/*
- * jQuery UI Menu 1.8.10
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Menu#theming
- */
-.ui-menu {
- list-style:none;
- padding: 2px;
- margin: 0;
- display:block;
- float: left;
-}
-.ui-menu .ui-menu {
- margin-top: -3px;
-}
-.ui-menu .ui-menu-item {
- margin:0;
- padding: 0;
- zoom: 1;
- float: left;
- clear: left;
- width: 100%;
-}
-.ui-menu .ui-menu-item a {
- text-decoration:none;
- display:block;
- padding:.2em .4em;
- line-height:1.5;
- zoom:1;
-}
-.ui-menu .ui-menu-item a.ui-state-hover,
-.ui-menu .ui-menu-item a.ui-state-active {
- font-weight: normal;
- margin: -1px;
-}
-/*
- * jQuery UI Button 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button#theming
- */
-.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
-.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
-button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; }
-button.ui-button-icons-only { width: 3.7em; }
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 1.4; }
-.ui-button-text-only .ui-button-text { padding: .4em 1em; }
-.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
-.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-/*
- * jQuery UI Dialog 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
-.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
-.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
-.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
-.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
-.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
-.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
-.ui-draggable .ui-dialog-titlebar { cursor: move; }
-/*
- * jQuery UI Slider 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider#theming
- */
-.ui-slider { position: relative; text-align: left; }
-.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
-.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
-
-.ui-slider-horizontal { height: .8em; }
-.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
-.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
-.ui-slider-horizontal .ui-slider-range-min { left: 0; }
-.ui-slider-horizontal .ui-slider-range-max { right: 0; }
-
-.ui-slider-vertical { width: .8em; height: 100px; }
-.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
-.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
-.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
-.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
- * jQuery UI Tabs 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs#theming
- */
-.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
-.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
-.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
-.ui-tabs .ui-tabs-hide { display: none !important; }
-/*
- * jQuery UI Datepicker 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker#theming
- */
-.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
-.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
-.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
-.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month,
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
- display: none; /*sorry for IE5*/
- display/**/: block; /*sorry for IE5*/
- position: absolute; /*must have*/
- z-index: -1; /*must have*/
- filter: mask(); /*must have*/
- top: -4px; /*must have*/
- left: -4px; /*must have*/
- width: 200px; /*must have*/
- height: 200px; /*must have*/
-}/*
- * jQuery UI Progressbar 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar#theming
- */
-.ui-progressbar { height:2em; text-align: left; }
-.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/cssTransform.html b/node_modules/selenium-webdriver/lib/test/data/cssTransform.html
deleted file mode 100644
index c3b99648a..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/cssTransform.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<style>
-#parentY {
- transform: translateY(-10000px);
- -webkit-transform: translateY(-10000px);
- -o-transform: translateY(-10000px);
- -ms-transform: translateY(-10000px);
- -moz-transform: translateY(-10000px);
-}
-#parentX {
- transform: translateX(-10000px);
- -webkit-transform: translateX(-10000px);
- -o-transform: translateX(-10000px);
- -ms-transform: translateX(-10000px);
- -moz-transform: translateX(-10000px);
-}
-#transformX {
- transform: translateX(-10000px);
- -webkit-transform: translateX(-10000px);
- -o-transform: translateX(-10000px);
- -ms-transform: translateX(-10000px);
- -moz-transform: translateX(-10000px);
-}
-#transformY {
- transform: translateY(-10000px);
- -webkit-transform: translateY(-10000px);
- -o-transform: translateY(-10000px);
- -ms-transform: translateY(-10000px);
- -moz-transform: translateY(-10000px);
-}
-
-#zero-transform {
- transform: translateY(0px);
- -webkit-transform: translateY(0px);
- -o-transform: translateY(0px);
- -ms-transform: translateY(0px);
- -moz-transform: translateY(0px);
- transform: translateX(0px);
- -webkit-transform: translateX(0px);
- -o-transform: translateX(0px);
- -ms-transform: translateX(0px);
- -moz-transform: translateX(0px);
-}
-</style>
-<div id='zero-tranform'>
-You shouldn't see anything other than this sentence on the page
-</div>
-<div id='parentY'>
- I have a hidden child
- <div id='childY'>
- I am a hidden child
- </div>
-</div>
-<div id='parentX'>
- I have a hidden child
- <div id='childX'>
- I am a hidden child
- </div>
-</div>
-<div id='transformX'>I am a hidden element </div>
-<div id='transformY'>I am a hidden element </div>
diff --git a/node_modules/selenium-webdriver/lib/test/data/cssTransform2.html b/node_modules/selenium-webdriver/lib/test/data/cssTransform2.html
deleted file mode 100644
index 602924bfb..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/cssTransform2.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<style>
-#negative-percentage-transformY{
- transform: translateY(-75px);
- -webkit-transform: translateY(-75%);
- -o-transform: translateY(-75%);
- -ms-transform: translateY(-75%);
- -moz-transform: translateY(-75%);
-}
-.block {
- display = block;
-}
-</style>
-<div class='block'>
- <br/>
-</div>
- <br/>
-<div class='block'>
-</div>
-<div id='negative-percentage-transformY'>I am not a hidden element </div>
diff --git a/node_modules/selenium-webdriver/lib/test/data/document_write_in_onload.html b/node_modules/selenium-webdriver/lib/test/data/document_write_in_onload.html
deleted file mode 100644
index a15fc479e..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/document_write_in_onload.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
- <title>Document Write In Onload</title>
- <script>
- function init() {
- document.writeln('goodbye, world!');
- }
- </script>
-</head>
-<body onload="init();">
-<p>hello world</p>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/dragAndDropInsideScrolledDiv.html b/node_modules/selenium-webdriver/lib/test/data/dragAndDropInsideScrolledDiv.html
deleted file mode 100644
index 0b2ee9a24..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/dragAndDropInsideScrolledDiv.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<html>
-<head>
-<style>
-<!--
-.dragme{position:relative;}
--->
-</style>
-<script language="JavaScript1.2">
-<!--
-
-var ie=document.all;
-var nn6=document.getElementById&&!document.all;
-
-var isdrag=false;
-var x,y;
-var dobj;
-
-function movemouse(e)
-{
-
- if (isdrag)
- {
- dobj.style.left = nn6 ? tx + e.clientX - x : tx + event.clientX - x;
- dobj.style.top = nn6 ? ty + e.clientY - y : ty + event.clientY - y;
- return false;
- }
-}
-
-function selectmouse(e)
-{
- var fobj = nn6 ? e.target : event.srcElement;
- var topelement = nn6 ? "HTML" : "BODY";
-
- while (fobj.tagName != topelement && fobj.className != "dragme")
- {
- fobj = nn6 ? fobj.parentNode : fobj.parentElement;
- }
-
- if (fobj.className=="dragme")
- {
- isdrag = true;
- dobj = fobj;
- tx = parseInt(dobj.style.left+0);
- ty = parseInt(dobj.style.top+0);
- x = nn6 ? e.clientX : event.clientX;
- y = nn6 ? e.clientY : event.clientY;
- document.onmousemove=movemouse;
- return false;
- }
-}
-
-document.onmousedown=selectmouse;
-document.onmouseup=new Function("isdrag=false");
-
-//-->
-</script>
-
-</head>
-<body>
- <div style="overflow: scroll; margin: 20px; height: 90%; width: 90%">
- <div style="height: 4000px; width: 4000px;">
- <div id="test1" class="dragme" style="width: 100px; height: 100px;
- background-color: black;" />
- </div>
- </div>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/dragAndDropTest.html b/node_modules/selenium-webdriver/lib/test/data/dragAndDropTest.html
deleted file mode 100644
index fdee16b0b..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/dragAndDropTest.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<html>
-<body>
-
-<style>
-<!--
-.dragme{position:relative;}
--->
-</style>
-<script language="JavaScript1.2">
-<!--
-
-var ie=document.all;
-var nn6=document.getElementById&&!document.all;
-
-var isdrag=false;
-var x,y;
-var dobj;
-
-function movemouse(e)
-{
- if (isdrag)
- {
- if (e && e.clientX)
- {
- dobj.style.left = tx + e.clientX - x;
- dobj.style.top = ty + e.clientY - y
- }
- else
- {
- dobj.style.left = tx + event.clientX - x;
- dobj.style.top = ty + event.clientY - y;
- }
- return false;
- }
-}
-
-function selectmouse(e)
-{
- var fobj;
- var topelement;
- if (e && e.target)
- {
- fobj = e.target;
- topelement = "HTML";
- }
- else
- {
- fobj = event.srcElement;
- topelement = "BODY";
- }
-
- while (fobj.tagName != topelement && fobj.className != "dragme")
- {
- if (fobj.parentNode)
- {
- fobj = fobj.parentNode;
- }
- else
- {
- fobj = fobj.parentElement;
- }
- }
-
- if (fobj.className=="dragme")
- {
- isdrag = true;
- dobj = fobj;
- tx = parseInt(dobj.style.left+0);
- ty = parseInt(dobj.style.top+0);
- if (e && e.clientX)
- {
- x = e.clientX;
- y = e.clientY;
- }
- else
- {
- x = event.clientX;
- y = event.clientY;
- }
-
- document.onmousemove=movemouse;
- return false;
- }
-}
-
-document.onmousedown=selectmouse;
-document.onmouseup=new Function("isdrag=false");
-
-//-->
-</script>
-
-
-
-<img src="icon.gif" class="dragme" id="test1"><br>
-<img src="icon.gif" class="dragme" id="test2"><br>
-<b>"Hi there</b>
-<div style="position: absolute; left: 210px; top: 80px; height: 400px; width: 100px; padding: 10em;">
-<img src="icon.gif" class="dragme" id="test3"><br>
-<img src="icon.gif" class="dragme" id="test4"><br>
-</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/dragDropOverflow.html b/node_modules/selenium-webdriver/lib/test/data/dragDropOverflow.html
deleted file mode 100644
index ecb25625d..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/dragDropOverflow.html
+++ /dev/null
@@ -1,104 +0,0 @@
-<html>
-<head>
- <meta content="text/html; charset=UTF-8" http-equiv="content-type">
- <style type="text/css">
- body {
- color: #222;
- font-size: 13px;
- }
-
- .time-slot {
- height: 47px;
- vertical-align: top;
- border-top: 1px solid #ddd;
- padding-right: 2px;
- z-index: 2;
- }
-
- #time-marker {
- border-top: 3px solid #4d90fe;
- height: 6px;
- position: absolute;
- width: 100%;
- z-index: 4;
- cursor: row-resize;
- }
- </style>
-</head>
-<body>
-<div style="position: absolute; overflow: hidden; width: 250px; height: 470px;">
- <div style="position: relative;">
- <div style="overflow: auto; position: relative; height: 85%; border: 1px solid #ebebeb">
- <div id="time-marker" style="top: 432;"></div>
- <div class="time-slot">12am</div>
- <div class="time-slot">1am</div>
- <div class="time-slot">2am</div>
- <div class="time-slot">3am</div>
- <div class="time-slot">4am</div>
- <div class="time-slot">5am</div>
- <div class="time-slot">6am</div>
- <div class="time-slot">7am</div>
- <div class="time-slot">8am</div>
- <div class="time-slot">9am</div>
- <div class="time-slot">10am</div>
- <div id="11am" class="time-slot">11am</div>
- <div class="time-slot">12pm</div>
- <div class="time-slot">1pm</div>
- <div class="time-slot">2pm</div>
- <div class="time-slot">3pm</div>
- <div class="time-slot">4pm</div>
- <div class="time-slot">5pm</div>
- <div class="time-slot">6pm</div>
- <div class="time-slot">7pm</div>
- <div class="time-slot">8pm</div>
- <div class="time-slot">9pm</div>
- <div class="time-slot">10pm</div>
- <div class="time-slot">11pm</div>
- </div>
- </div>
-</div>
-<script type="text/javascript">
- var startTime = document.getElementById('time-marker');
-
- var ie = document.all;
- var nn6 = document.getElementById && !document.all;
-
- var isDrag = false;
- var x, y, tx, ty;
- var dragEl;
-
- function movemouse(e) {
- if (isDrag) {
- var dy = (nn6 ? e.clientY - y : event.clientY - y);
- if (dy % 12 == 0) {
- dragEl.style.top = ty + dy;
- }
- return false;
- }
- }
-
- function selectmouse(e) {
- var srcEl = nn6 ? e.target : event.srcElement;
- var topElement = nn6 ? "HTML" : "BODY";
-
- while (srcEl.tagName != topElement && srcEl != startTime) {
- srcEl = nn6 ? srcEl.parentNode : srcEl.parentElement;
- }
-
- if (srcEl === startTime) {
- isDrag = true;
- dragEl = srcEl;
- tx = parseInt(dragEl.style.left + 0);
- ty = parseInt(dragEl.style.top + 0);
- x = nn6 ? e.clientX : event.clientX;
- y = nn6 ? e.clientY : event.clientY;
- document.onmousemove = movemouse;
- return false;
- }
- }
-
- document.onmousedown = selectmouse;
- document.onmouseup = function() { isDrag = false; };
-</script>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/draggableLists.html b/node_modules/selenium-webdriver/lib/test/data/draggableLists.html
deleted file mode 100644
index f7e0dcace..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/draggableLists.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <meta charset="UTF-8" />
- <title>jQuery UI Sortable - Connect lists</title>
- <!--link type="text/css" href="development-bundle/themes/base/jquery.ui.all.css" rel="stylesheet" /-->
- <!--link type="text/css" href="development-bundle/demos/demos.css" rel="stylesheet" /-->
- <link type="text/css" href="css/ui-lightness/jquery-ui-1.8.10.custom.css" rel="stylesheet" />
- <script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
- <script type="text/javascript" src="js/jquery-ui-1.8.10.custom.min.js"></script>
- <style type="text/css">
- #sortable1, #sortable2 { list-style-type: none; margin: 0; padding: 0; float: left; margin-right: 10px; }
- #sortable1 li, #sortable2 li { margin: 0 5px 5px 5px; padding: 5px; font-size: 1.2em; width: 120px; }
- </style>
- <script type="text/javascript">
- $(function() {
- $("#sortable1, #sortable2").sortable({
- connectWith: '.connectedSortable'
- }).disableSelection();
-
- var report_event = function(report_text) {
- var reportElement = $("#dragging_reports");
- var origText = reportElement.text();
- reportElement.text(origText + " " + report_text);
- }
-
- $("#sortable2").droppable({
- out: function(event, ui) {
- report_event("DragOut");
- }
- });
-
- $("#sortable1").droppable({
- drop: function(event, ui) {
- report_event("DropIn " + ui.draggable.text());
- }
- });
- });
- </script>
- </head>
- <body>
- <div class="demo">
- <ul id="sortable1" class="connectedSortable">
- <li id="leftitem-1" class="ui-state-default">LeftItem 1</li>
- <li id="leftitem-2" class="ui-state-default">LeftItem 2</li>
- <li id="leftitem-3" class="ui-state-default">LeftItem 3</li>
- <li id="leftitem-4" class="ui-state-default">LeftItem 4</li>
- <li id="leftitem-5" class="ui-state-default">LeftItem 5</li>
- </ul>
-
- <ul id="sortable2" class="connectedSortable">
- <li id="rightitem-1" class="ui-state-highlight">RightItem 1</li>
- <li id="rightitem-2" class="ui-state-highlight">RightItem 2</li>
- <li id="rightitem-3" class="ui-state-highlight">RightItem 3</li>
- <li id="rightitem-4" class="ui-state-highlight">RightItem 4</li>
- <li id="rightitem-5" class="ui-state-highlight">RightItem 5</li>
- </ul>
-
- </div>
-
- <br/>
- <div class="test-data">
- <p id="dragging_reports">Nothing happened.</p>
- </div>
-
- </body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/droppableItems.html b/node_modules/selenium-webdriver/lib/test/data/droppableItems.html
deleted file mode 100644
index fc850ac96..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/droppableItems.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="UTF-8" />
- <title>jQuery UI Droppable - Default Demo</title>
- <link type="text/css" href="css/ui-lightness/jquery-ui-1.8.10.custom.css" rel="stylesheet" />
- <script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
- <script type="text/javascript" src="js/jquery-ui-1.8.10.custom.min.js"></script>
- <style type="text/css">
- #draggable { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 10px 10px 10px 0; }
- #droppable { width: 150px; height: 150px; padding: 0.5em; float: left; margin: 10px; }
- </style>
- <script type="text/javascript">
- $(function() {
- $("#draggable").draggable();
- $("#droppable").droppable({
- drop: function(event, ui) {
- $(this).addClass('ui-state-highlight').find('p').html('Dropped!');
- }
- });
-
- var report_event = function(report_text) {
- var reportElement = $("#drop_reports");
- var origText = reportElement.text();
- reportElement.text(origText + " " + report_text);
- }
-
- $('body').mousedown(function() {
- report_event('down');
- });
-
- $('body').mousemove(function() {
- report_event('move');
- });
-
- $('body').mouseup(function() {
- report_event('up');
- });
- });
- </script>
-</head>
-<body>
-<div class="demo">
-
-<div id="draggable" class="ui-widget-content">
- <p>Drag me to my target</p>
-</div>
-
-<div id="droppable" class="ui-widget-header">
- <p>Drop here</p>
-</div>
-
-<div class="test-data">
- <p id="drop_reports">start</p>
-</div>
-
-</div><!-- End demo -->
-
-<div class="demo-description">
-
-<p>Taken from the JQuery demo.</p>
-
-</div><!-- End demo-description -->
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/dynamic.html b/node_modules/selenium-webdriver/lib/test/data/dynamic.html
deleted file mode 100644
index b9e60678d..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/dynamic.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
- <title></title>
- <script type="text/javascript">
- var next = 0;
-
- function addMore() {
- var box = document.createElement('DIV');
- box.id = 'box' + next++;
- box.className = 'redbox';
- box.style.width = '150px';
- box.style.height = '150px';
- box.style.backgroundColor = 'red';
- box.style.border = '1px solid black';
- box.style.margin = '5px';
-
- window.setTimeout(function() {
- document.body.appendChild(box);
- }, 1000);
- }
-
- function reveal() {
- var elem = document.getElementById('revealed');
- window.setTimeout(function() {
- elem.style.display = '';
- }, 1000);
- }
- </script>
- </head>
- <body>
- <input id="adder" type="button" value="Add a box!" onclick="addMore()"/>
-
- <input id="reveal" type="button" value="Reveal a new input" onclick="reveal();" />
-
- <input id="revealed" style="display:none;" />
- </body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/dynamicallyModifiedPage.html b/node_modules/selenium-webdriver/lib/test/data/dynamicallyModifiedPage.html
deleted file mode 100644
index ed7c7ed2b..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/dynamicallyModifiedPage.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <title>Delayed remove of an element</title>
-
- <script type="text/javascript">
-
- var parentNode;
- var elementId;
-
- function timedRemove()
- {
- var t = setTimeout('removeElement()', 500);
- t = setTimeout('insertElement()', 2000);
- }
-
- function removeElement()
- {
- var element = document.getElementById('element-to-remove');
- elementId = element.id;
- parentNode = element.parentNode;
- parentNode.removeChild(element);
- }
-
- function insertElement()
- {
- var newElement = document.createElement('p');
- newElement.setAttribute('id', elementId);
- newElement.innerHTML = 'new element';
- parentNode.appendChild(newElement);
- }
- </script>
-
- </head>
- <body>
- <form>
- <input id="buttonDelete" type="button" value="element will be removed in half a second"
- onclick="timedRemove()"/>
- </form>
- <p id="element-to-remove">element</p>
- </body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/errors.html b/node_modules/selenium-webdriver/lib/test/data/errors.html
deleted file mode 100644
index 78fb90207..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/errors.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <script type="text/javascript">
- window.ERRORS = [];
-
- window.onerror = function(e) {
- window.ERRORS.push(e);
- };
- </script>
- </head>
- <body>
- <input type="button" value="Throw!" onclick="throw Error('boom!');"/>
- </body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/firefox/jetpack-sample.xpi b/node_modules/selenium-webdriver/lib/test/data/firefox/jetpack-sample.xpi
deleted file mode 100644
index 84d6493dd..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/firefox/jetpack-sample.xpi
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/firefox/sample.xpi b/node_modules/selenium-webdriver/lib/test/data/firefox/sample.xpi
deleted file mode 100644
index 062f9a172..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/firefox/sample.xpi
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/fixedFooterNoScroll.html b/node_modules/selenium-webdriver/lib/test/data/fixedFooterNoScroll.html
deleted file mode 100644
index ca65d1fee..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/fixedFooterNoScroll.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Fixed footer with no scrollbar</title>
-</head>
-<body>
- <div style="width: 100%; min-height: 100%;">
- <div style="position: absolute; bottom: 0px;">
- <a id="link" href="xhtmlTest.html">Click me</a>
- </div>
- </div>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/fixedFooterNoScrollQuirksMode.html b/node_modules/selenium-webdriver/lib/test/data/fixedFooterNoScrollQuirksMode.html
deleted file mode 100644
index 2593bf35c..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/fixedFooterNoScrollQuirksMode.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head>
- <title>Fixed footer with no scrollbar</title>
-</head>
-<body>
- <div style="width: 100%; min-height: 100%;">
- <div style="position: absolute; bottom: 0px;">
- <a id="link" href="xhtmlTest.html">Click me</a>
- </div>
- </div>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/formPage.html b/node_modules/selenium-webdriver/lib/test/data/formPage.html
deleted file mode 100644
index 45ae2b7d6..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/formPage.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<html>
-<head>
- <title>We Leave From Here</title>
-
- <script type="text/javascript">
- function changePage() {
- var newLocation = '/common/page/3';
- window.location = newLocation;
- }
- </script>
-</head>
-<body>
-There should be a form here:
-
-<form method="get" action="resultPage.html" name="login">
- <input type="email" id="email"/>
- <input type="number" id="age"/>
- <input type="submit" id="submitButton" value="Hello there"/>
-</form>
-
-<form method="get" action="resultPage.html" name="image">
- <input type="image" id="imageButton" alt="click me!" src="images/button.gif"/>
-</form>
-
-<form method="get" action="resultPage.html" name="optional" style="display: block">
- Here's a checkbox:
- <input type="checkbox" id="checky" name="checky" value="furrfu"/>
- <input type="checkbox" id="checkedchecky" name="checkedchecky" checked="checked" />
- <input type="checkbox" id="disabledchecky" disabled="disabled" name="disabledchecky" />
- <input type="checkbox" id="randomly_disabled_checky" disabled="somerandomstring" checked="checked" name="randomlydisabledchecky" />
- <br/>
- <select name="selectomatic">
- <option selected="selected" id="non_multi_option" value="one">One</option>
- <option value="two">Two</option>
- <option value="four">Four</option>
- <option value="still learning how to count, apparently">Still learning how to count, apparently</option>
- </select>
-
- <select name="multi" id="multi" multiple="multiple">
- <option selected="selected" value="eggs">Eggs</option>
- <option value="ham">Ham</option>
- <option selected="selected" value="sausages">Sausages</option>
- <option value="onion gravy">Onion gravy</option>
- </select>
-
- <select name="no-select" disabled="disabled">
- <option value="foo">Foo</option>
- <option value="bar">Bar</option>
- </select>
-
- <select name="select_empty_multiple" multiple>
- <option id="multi_1" value="select_1">select_1</option>
- <option id="multi_2" value="select_2">select_2</option>
- <option id="multi_3" value="select_3">select_3</option>
- <option id="multi_4" value="select_4">select_4</option>
- </select>
-
- <select name="multi_true" multiple="true">
- <option id="multi_true_1" value="select_1">select_1</option>
- <option id="multi_true_2" value="select_2">select_2</option>
- </select>
-
- <select name="multi_false" multiple="false">
- <option id="multi_false_1" value="select_1">select_1</option>
- <option id="multi_false_2" value="select_2">select_2</option>
- </select>
-
- <select id="invisi_select" style="opacity:0;">
- <option selected value="apples">Apples</option>
- <option value="oranges">Oranges</option>
- </select>
-
- <select name="select-default">
- <option>One</option>
- <option>Two</option>
- <option>Four</option>
- <option>Still learning how to count, apparently</option>
- </select>
-
- <select name="select_with_spaces">
- <option>One</option>
- <option> Two </option>
- <option>
- Four
- </option>
- <option>
- Still learning how to count,
- apparently
- </option>
- </select>
-
- <select>
- <option id="blankOption"></option>
- <option id="optionEmptyValueSet" value="">nothing</option>
- </select>
-
- <br/>
-
- <input type="radio" id="cheese" name="snack" value="cheese"/>Cheese<br/>
- <input type="radio" id="peas" name="snack" value="peas"/>Peas<br/>
- <input type="radio" id="cheese_and_peas" name="snack" value="cheese and peas" checked/>Cheese and peas<br/>
- <input type="radio" id="nothing" name="snack" value="nowt" disabled="disabled"/>Not a sausage<br/>
- <input type="radio" id="randomly_disabled_nothing" name="snack" value="funny nowt" disabled="somedisablingstring"/>Not another sausage
-
- <input type="hidden" name="hidden" value="fromage" />
-
- <p id="cheeseLiker">I like cheese</p>
- <input type="submit" value="Click!"/>
-
- <input type="radio" id="lone_disabled_selected_radio" name="not_a_snack" value="cumberland" checked="checked" disabled="disabled" />Cumberland sausage
-</form>
-
-<form method="get" action="resultPage.html" name="disable">
- <input type="text" id="working"/>
- <input type="text" id="notWorking" disabled="true"/>
-
- <textarea id="notWorkingArea" disabled="disabled" cols="5" rows="5"></textarea>
-
- <input type="text" id="inputWithText" value="Example text"/>
- <textarea id="withText" rows="5" cols="5">Example text</textarea>
- <textarea id="emptyTextArea" rows="5" cols="5"></textarea>
-</form>
-
-<form method="post" action="resultPage.html">
- <select id="redirect" name="redirect" onchange="javascript:changePage();">
- <option selected="selected" value="one">One</option>
- <option id="changeme" value="two">Two</option>
- </select>
-
- <input id="no-type" />
- <input type="file" id="upload" onchange="document.getElementById('fileResults').innerHTML = 'changed';" />
- <span id="fileResults"></span>
-
- <input type="submit" />
-</form>
-
-<form method="get" action="resultPage.html">
- <input type="text" value="name" name="id-name1"/>
- <input type="text" value="id" id="id-name1"/>
-
- <!-- Reverse the ordering -->
- <input type="text" value="id" id="id-name2"/>
- <input type="text" value="name" name="id-name2"/>
- <input name="readonly" readonly="readonly" />
-</form>
-
-<!-- form with nested children -->
-<form method="get" action="resultPage.html" id="nested_form">
- <div>
- <input type="text" value="name" name="x"/>
- </div>
- <input type="submit" />
-</form>
-
-<!-- Form with disabled form elements -->
-<form method="get" action="xhtmlTest.html">
- <p>
- <input type="text" id="disabledTextElement1" disabled="foo" />
- <input type="text" id="disabledTextElement2" disabled="" />
- <input type="submit" id="disabledSubmitElement" disabled="qwerty" value="Submit" />
- </p>
-</form>
-<!-- Empty div to test GetAttribute -->
-<div id="wallace" class="gromit"></div>
-
-<input type='button' id='killIframe' onclick='top.remove();' value="Kill containing iframe" />
-
-<form method="get" action="formPage.html">
- <p>
- <label for="checkbox-with-label" id="label-for-checkbox-with-label">Label</label><input type="checkbox" id="checkbox-with-label" />
- </p>
-</form>
-<input id="vsearchGadget" name="SearchableText" type="text" size="18" value="" title="Hvad søger du?" accesskey="4" class="inputLabel" />
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/formSelectionPage.html b/node_modules/selenium-webdriver/lib/test/data/formSelectionPage.html
deleted file mode 100644
index 4890c08e8..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/formSelectionPage.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0"?>
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>Testing Typing into body</title>
- <script type="text/javascript">
- function setMessage(message) {
- document.getElementById('result').innerHTML = message;
- }
-
- function showSelected() {
- var selectElement = document.getElementById('multi');
- if (selectElement == null) {
- appendMessage("null!");
- }
-
- var options_array = selectElement.getElementsByTagName('option');
- var selected_cheese = "";
- for (var i = 0; i < options_array.length; i++) {
- if (options_array[i].selected) {
- selected_cheese = selected_cheese + options_array[i].label + " ";
- }
- }
- setMessage(selected_cheese);
- }
- </script>
-</head>
-
-<body>
- <h1>Type Stuff</h1>
-
- <div id="result">
- &nbsp;
- </div>
-
- <form action="" id="on-form" name="multichoice">
- <select name="multi" id="multi" multiple="multiple">
- <option selected="selected" label="emmental">Emmental</option>
- <option label="roquefort" >Roquefort</option>
- <option label="parmigiano">Parmigiano</option>
- <option label="cheddar">Cheddar</option>
- </select>
- </form>
-
- <input type="button" name="showselected" onclick="showSelected()" value="Show selected"/>
-</body>
-
diff --git a/node_modules/selenium-webdriver/lib/test/data/form_handling_js_submit.html b/node_modules/selenium-webdriver/lib/test/data/form_handling_js_submit.html
deleted file mode 100644
index 302314392..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/form_handling_js_submit.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--
- ~ Copyright 2012 Selenium committers
- ~ Copyright 2012 Software Freedom Conservancy
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License.
- -->
-
-<!DOCTYPE html>
-<html>
-<head>
- <title>Form with JS action</title>
-</head>
-<body>
- <form id="theForm" method="get" action="javascript:alert('Tasty cheese');">
- <input name="unused" type="submit">
- </form>
-
- <p id="result"></p>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/framePage3.html b/node_modules/selenium-webdriver/lib/test/data/framePage3.html
deleted file mode 100644
index 3e62e455c..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/framePage3.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<html>
- <head>
- <title>inner</title>
- </head>
- <body>
- </body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/frameScrollChild.html b/node_modules/selenium-webdriver/lib/test/data/frameScrollChild.html
deleted file mode 100644
index 3eb3bf47d..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/frameScrollChild.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Child frame</title>
-</head>
-<body>
- <h1>This is a scrolling frame test</h1>
- <div>
- <table>
- <tr height="50px">
- <td>First row</td>
- </tr>
- <tr height="50px">
- <td>Second row</td>
- </tr>
- <tr height="50px">
- <td>Third row</td>
- </tr>
- <tr height="50px">
- <td>Fourth row</td>
- </tr>
- </table>
- </div>
- <input type='checkbox' name='scroll_checkbox' />
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/frameScrollPage.html b/node_modules/selenium-webdriver/lib/test/data/frameScrollPage.html
deleted file mode 100644
index b7fb8f242..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/frameScrollPage.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Welcome Page</title>
-</head>
-<body>
- <div>
- <iframe name="scrolling_child_frame" src="frameScrollParent.html" width="800" height="200"></iframe>
- </div>
- <div>
- <iframe name="scrolling_frame" src="frameScrollChild.html" width="800" height="200" ></iframe>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/frameScrollParent.html b/node_modules/selenium-webdriver/lib/test/data/frameScrollParent.html
deleted file mode 100644
index 8fccb6d36..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/frameScrollParent.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Welcome Page</title>
-</head>
-<body>
- <div>
- <iframe name="scrolling_frame" src="frameScrollChild.html" width="600" height="500"></iframe>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/frameWithAnimals.html b/node_modules/selenium-webdriver/lib/test/data/frameWithAnimals.html
deleted file mode 100644
index 1e0dc8704..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/frameWithAnimals.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html>
-<head>
- <title>This page has iframes</title>
-</head>
-<body>
-<h1 id="iframe_page_heading">This is the heading</h1>
-
-<iframe src="animals" marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" allowtransparency="true"
- frameborder="0" height="600" scrolling="no" width="120" id="iframe1" name="iframe1-name" />
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/bug4876.html b/node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/bug4876.html
deleted file mode 100644
index 4ed597d37..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/bug4876.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<title>Test issue 4876</title>
-</head>
-<body>
-<iframe id="iframe" src="bug4876_iframe.html"></iframe>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/bug4876_iframe.html b/node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/bug4876_iframe.html
deleted file mode 100644
index 57d47d845..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/bug4876_iframe.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<html>
- <head></head>
- <body>
- <form >
- <input type="text" id="inputText" />
- <input type="submit" id="submitButton" value="submit" onclick="window.location=window.location;" />
- <form>
- </body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/deletingFrame.html b/node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/deletingFrame.html
deleted file mode 100644
index 9c27e04c4..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/deletingFrame.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<html>
-<head>
- <title>Deleting frame: main page</title>
-</head>
- <script type="text/javascript">
- function remove() {
- var iframe = document.getElementById("iframe1");
- var myDiv = document.getElementById("myDiv");
- myDiv.removeChild(iframe);
- }
- function addBack() {
- var iframe = '<iframe src="deletingFrame_iframe2.html" marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" allowtransparency="true" frameborder="0" height="200" scrolling="no" width="400" id="iframe1"></iframe>';
- var myDiv2 = document.getElementById("myDiv2");
- myDiv2.innerHTML = iframe;
- }
- </script>
-<body>
-
-<div id='myDiv'>
-<iframe src="deletingFrame_iframe.html" marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" allowtransparency="true"
- frameborder="1" height="200" scrolling="no" width="400" id="iframe1"></iframe>
-
- </div>
-<div id='myDiv2'>
-
-</div>
-<input type='button' id='addBackFrame' value='Add back frame' onclick='addBack();' />
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/deletingFrame_iframe.html b/node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/deletingFrame_iframe.html
deleted file mode 100644
index e4b9723e9..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/deletingFrame_iframe.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-<head>
- <title>Deleting frame: iframe</title>
-</head>
-<body>
-<input type='button' id='killIframe' onclick='top.remove();' value="Kill containing iframe" />
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/deletingFrame_iframe2.html b/node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/deletingFrame_iframe2.html
deleted file mode 100644
index 47764eb3e..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/frame_switching_tests/deletingFrame_iframe2.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<html>
-<head>
- <title>Deleting frame: iframe 2</title>
-</head>
-<body>
-<div id="success">Added back</div></body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/frameset.html b/node_modules/selenium-webdriver/lib/test/data/frameset.html
deleted file mode 100644
index 039c5f217..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/frameset.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<html>
- <head>
- <title>Unique title</title>
- </head>
-<frameset cols="*, *, *, *, *, *, *">
- <frame name="first" src="page/1"/>
- <frame name="second" src="page/2?title=Fish"/>
- <frame name="third" src="formPage.html"/>
- <frame name="fourth" src="framesetPage2.html"/>
- <frame id="fifth" src="xhtmlTest.html"/>
- <frame id="sixth" src="iframes.html"/>
- <frame id="sixth.iframe1" src="page/3"/>
-</frameset>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/framesetPage2.html b/node_modules/selenium-webdriver/lib/test/data/framesetPage2.html
deleted file mode 100644
index 4ea35ff71..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/framesetPage2.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<html>
-<head></head>
-<frameset cols="*, *">
- <frame name="child1" src="page/10"/>
- <frame name="child2" src="page/11"/>
-</frameset>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/framesetPage3.html b/node_modules/selenium-webdriver/lib/test/data/framesetPage3.html
deleted file mode 100644
index 42a93007f..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/framesetPage3.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<frameset>
- <frame src="framePage3.html" id="first"></frame>
- <frame src="framePage3.html" id="second"></frame>
-</frameset> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/globalscope.html b/node_modules/selenium-webdriver/lib/test/data/globalscope.html
deleted file mode 100644
index e4ca97ab7..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/globalscope.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Global scope</title>
- <script type="text/javascript">
- window.w = "w";
- window.h = "h";
- window.__webdriver_w = "__webdriver_w";
- window.__webdriver_h = "__webdriver_h";
- </script>
- </head>
- <body>
- <div style="position: absolute; left: 10px; top: 10px; height: 10px; width: 10px; background-color: blue;" id="toclick"></div>
- </body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/hidden.html b/node_modules/selenium-webdriver/lib/test/data/hidden.html
deleted file mode 100644
index 0e8097e97..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/hidden.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<!DOCTYPE html>
-<div id='singleHidden' hidden>This will not be visible</div>
-<div id='parent' hidden>
- <div id='child'>My parent is hidden so you can't see me</div>
-</div> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/hidden_partially.html b/node_modules/selenium-webdriver/lib/test/data/hidden_partially.html
deleted file mode 100644
index f0f9fe5b8..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/hidden_partially.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title></title>
- <script type="text/javascript">
- var next = 0;
-
- function addVisibleBox() {
- var box = document.createElement('DIV');
- box.id = 'box' + next++;
- box.className = 'redbox';
- box.style.width = '150px';
- box.style.height = '150px';
- box.style.backgroundColor = 'red';
- box.style.border = '1px solid black';
- box.style.margin = '5px';
- box.style.visibility = 'visible'
-
- window.setTimeout(function() {
- document.body.appendChild(box);
- }, 1000);
- }
-
- function addHiddenBox() {
- var box = document.createElement('DIV');
- box.id = 'box' + next++;
- box.className = 'redbox';
- box.style.width = '150px';
- box.style.height = '150px';
- box.style.backgroundColor = 'red';
- box.style.border = '1px solid black';
- box.style.margin = '5px';
- box.style.visibility = 'hidden';
-
- window.setTimeout(function() {
- document.body.appendChild(box);
- }, 1000);
- }
- </script>
- </head>
- <body>
- <input id="addVisible" type="button" value="Add a visible box!" onclick="addVisibleBox()"/>
- <input id="addHidden" type="button" value="Add a hidden box!" onclick="addHiddenBox();" />
- </body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/html5/blue.jpg b/node_modules/selenium-webdriver/lib/test/data/html5/blue.jpg
deleted file mode 100644
index 8ea27c42f..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/html5/blue.jpg
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/html5/database.js b/node_modules/selenium-webdriver/lib/test/data/html5/database.js
deleted file mode 100644
index c6333be8c..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/html5/database.js
+++ /dev/null
@@ -1,84 +0,0 @@
-var database={};
-database.db={};
-
-database.onError = function(tx, e) {
- var log = document.createElement('div');
- log.setAttribute('name','error');
- log.setAttribute('style','background-color:red');
- log.innerText = e.message;
- document.getElementById('logs').appendChild(log);
-}
-
-database.onSuccess = function(tx, r) {
- if (r.rows.length) {
- var ol;
- for (var i = 0; i < r.rows.length; i++) {
- ol = document.createElement('ol');
- ol.innerHTML = r.rows.item(i).ID + ": " + r.rows.item(i).docname + " (" + r.rows.item(i).created + ")";
- document.getElementById('logs').appendChild(ol);
- }
-
- }
-}
-
-database.open=function(){
- database.db=openDatabase('HTML5', '1.0', 'Offline document storage', 100*1024);
-}
-
-database.create=function(){
- database.db.transaction(function(tx) {
- tx.executeSql("CREATE TABLE IF NOT EXISTS docs(ID INTEGER PRIMARY KEY ASC, docname TEXT, created TIMESTAMP DEFAULT CURRENT_TIMESTAMP)",
- [],
- database.onSuccess,
- database.onError);
- });}
-
-database.add = function(message) {
- database.db.transaction(function(tx){
- tx.executeSql("INSERT INTO docs(docname) VALUES (?)",
- [message], database.onSuccess, database.onError);
- });
-}
-
-database.selectAll = function() {
- database.db.transaction(function(tx) {
- tx.executeSql("SELECT * FROM docs", [], database.onSuccess,
- database.onError);
- });
-}
-
-database.onDeleteAllSuccess = function(tx, r) {
- var doc = document.documentElement;
- var db_completed = document.createElement("div");
- db_completed.setAttribute("id", "db_completed");
- db_completed.innerText = "db operation completed";
- doc.appendChild(db_completed);
-}
-
-database.deleteAll = function() {
- database.db.transaction(function(tx) {
- tx.executeSql("delete from docs", [], database.onDeleteAllSuccess,
- database.onError);
- });
-}
-
-var log = document.createElement('div');
-log.setAttribute('name','notice');
-log.setAttribute('style','background-color:yellow');
-log.innerText = typeof window.openDatabase == "function" ? "Web Database is supported." : "Web Database is not supported.";
-document.getElementById('logs').appendChild(log);
-
-try {
- database.open();
- database.create();
- database.add('Doc 1');
- database.add('Doc 2');
- database.selectAll();
- database.deleteAll();
-} catch(error) {
- var log = document.createElement('div');
- log.setAttribute('name','critical');
- log.setAttribute('style','background-color:pink');
- log.innerText = error;
- document.getElementById('logs').appendChild(log);
-}
diff --git a/node_modules/selenium-webdriver/lib/test/data/html5/geolocation.js b/node_modules/selenium-webdriver/lib/test/data/html5/geolocation.js
deleted file mode 100644
index f07af148e..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/html5/geolocation.js
+++ /dev/null
@@ -1,18 +0,0 @@
-function success(position) {
- var message = document.getElementById("status");
- message.innerHTML ="<img src='http://maps.google.com/maps/api/staticmap?center=" + position.coords.latitude + "," + position.coords.longitude + "&size=300x200&maptype=roadmap&zoom=12&&markers=size:mid|color:red|" + position.coords.latitude + "," + position.coords.longitude + "&sensor=false' />";
- message.innerHTML += "<p>Longitude: " + position.coords.longitude + "</p>";
- message.innerHTML += "<p>Latitude: " + position.coords.latitude + "</p>";
- message.innerHTML += "<p>Altitude: " + position.coords.altitude + "</p>";
-}
-
-function error(msg) {
- var message = document.getElementById("status");
- message.innerHTML = "Failed to get geolocation.";
-}
-
-if (navigator.geolocation) {
- navigator.geolocation.getCurrentPosition(success, error);
-} else {
- error('Geolocation is not supported.');
-} \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/html5/green.jpg b/node_modules/selenium-webdriver/lib/test/data/html5/green.jpg
deleted file mode 100644
index 6a0d3bea4..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/html5/green.jpg
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/html5/red.jpg b/node_modules/selenium-webdriver/lib/test/data/html5/red.jpg
deleted file mode 100644
index f296e2719..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/html5/red.jpg
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/html5/status.html b/node_modules/selenium-webdriver/lib/test/data/html5/status.html
deleted file mode 100644
index 394116a52..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/html5/status.html
+++ /dev/null
@@ -1 +0,0 @@
-<html><head><title>Online</title></head><body></body></html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/html5/test.appcache b/node_modules/selenium-webdriver/lib/test/data/html5/test.appcache
deleted file mode 100644
index 3bc4e0025..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/html5/test.appcache
+++ /dev/null
@@ -1,11 +0,0 @@
-CACHE MANIFEST
-
-CACHE:
-# Additional items to cache.
-yellow.jpg
-red.jpg
-blue.jpg
-green.jpg
-
-FALLBACK:
-status.html offline.html
diff --git a/node_modules/selenium-webdriver/lib/test/data/html5/yellow.jpg b/node_modules/selenium-webdriver/lib/test/data/html5/yellow.jpg
deleted file mode 100644
index 7c609b371..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/html5/yellow.jpg
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/html5Page.html b/node_modules/selenium-webdriver/lib/test/data/html5Page.html
deleted file mode 100644
index 355ddc3a1..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/html5Page.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<html manifest="html5/test.appcache">
-<head>
-<title>HTML5</title>
-</head>
-<body>
-
-<h3>Geolocation Test</h3>
-<div id="status">Location unknown</div>
-<script language="javascript" type="text/javascript" src="html5/geolocation.js"></script>
-
-<h3>Web SQL Database Test</h3>
-<div id="logs"></div>
-<script language="javascript" type="text/javascript" src="html5/database.js"></script>
-
-<h3>Application Cache Test</h3>
-<div id="images">
- <p>Current network status: <span id="state"></span></p>
- <script>
- var state = document.getElementById('state')
- setInterval(function () {
- state.className = navigator.onLine ? 'online' : 'offline';
- state.innerHTML = navigator.onLine ? 'online' : 'offline';
- }, 250);
- </script>
- <img id="red" src="html5/red.jpg">
- <img id="blue" src="html5/blue.jpg">
- <img id="green" src="html5/green.jpg">
- <img id="yellow" src="html5/yellow.jpg">
-</div>
-
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/icon.gif b/node_modules/selenium-webdriver/lib/test/data/icon.gif
deleted file mode 100644
index bb9946192..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/icon.gif
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/idElements.html b/node_modules/selenium-webdriver/lib/test/data/idElements.html
deleted file mode 100644
index 47f0834ca..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/idElements.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!DOCTYPE html>
-<div id="with.dots">Element with a dot in the id</div>
diff --git a/node_modules/selenium-webdriver/lib/test/data/iframeAtBottom.html b/node_modules/selenium-webdriver/lib/test/data/iframeAtBottom.html
deleted file mode 100644
index a686ba312..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/iframeAtBottom.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<html>
-<head>
- <title>This page has iframes</title>
-</head>
-<body>
-<h1 id="iframe_page_heading">This is the heading</h1>
-
-<div style="position: fixed; bottom: 0px; right: 0px; width: 150px; height: 150px;">
- <iframe src="dragAndDropTest.html" marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" allowtransparency="true" frameborder="1" height="100" scrolling="no" width="100" id="iframe1" name="iframe1-name" />
-</div>
-
-</body>
-</html>
-
-
diff --git a/node_modules/selenium-webdriver/lib/test/data/iframeWithAlert.html b/node_modules/selenium-webdriver/lib/test/data/iframeWithAlert.html
deleted file mode 100644
index bc54ddd58..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/iframeWithAlert.html
+++ /dev/null
@@ -1 +0,0 @@
-<a href="#" id="alertInFrame" onclick="alert('framed cheese');">click me</a>
diff --git a/node_modules/selenium-webdriver/lib/test/data/iframeWithIframe.html b/node_modules/selenium-webdriver/lib/test/data/iframeWithIframe.html
deleted file mode 100644
index b29c54f3c..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/iframeWithIframe.html
+++ /dev/null
@@ -1 +0,0 @@
-<iframe src="iframeWithAlert.html" name="iframeWithAlert"></iframe>
diff --git a/node_modules/selenium-webdriver/lib/test/data/iframes.html b/node_modules/selenium-webdriver/lib/test/data/iframes.html
deleted file mode 100644
index e00b482aa..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/iframes.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html>
-<head>
- <title>This page has iframes</title>
-</head>
-<body>
-<h1 id="iframe_page_heading">This is the heading</h1>
-
-<iframe src="formPage.html" marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" allowtransparency="true"
- frameborder="0" height="600" scrolling="no" width="120" id="iframe1" name="iframe1-name" />
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/injectableContent.html b/node_modules/selenium-webdriver/lib/test/data/injectableContent.html
deleted file mode 100644
index 7248dccf8..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/injectableContent.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<html>
- <head>
- <title>random numbers</title>
- <script>
- function display() {
- document.getElementById('numbers').textContent = numbers.join(' ');
- }
- </script>
- </head>
- <body onload="display()">
- <p>Some random numbers between 0 and 100:</p>
-
- <!-- Placeholder for the list of random numbers -->
- <p id="numbers"></p>
- <script>
- numbers = [];
- while (numbers.length < 100) {
- numbers.push(Math.round(Math.random() * 100));
- }
- </script>
- </body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/javascriptEnhancedForm.html b/node_modules/selenium-webdriver/lib/test/data/javascriptEnhancedForm.html
deleted file mode 100644
index cbcff4335..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/javascriptEnhancedForm.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
- <head>
- <title>Javascript Enhanced Page</title>
- </head>
- <body>
- <form id="form1" action="javascriptEnhancedForm.html" method="post">
- <p>
- <label id="labelforusername" for="username">
- Username: <input id="username" type="text" name="username" />
- <script type="text/javascript">
- document.getElementById('username').value = 'Michael';
- </script>
- </label>
- </p>
- <p>
- <label for="password">
- Password: <input id="password" type="password" name="password" />
- <script type="text/javascript">
- var z = document.getElementById('password'); setTimeout('try{z.focus();z.select();} catch(e) {}', 1);
- </script>
- </label>
- </p>
- <p>
- <input type="submit" value="Submit" />
- </p>
- </form>
- </body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/javascriptPage.html b/node_modules/selenium-webdriver/lib/test/data/javascriptPage.html
deleted file mode 100644
index fcac252e8..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/javascriptPage.html
+++ /dev/null
@@ -1,285 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>Testing Javascript</title>
- <script type="text/javascript">
- var seen = {};
-
- function updateContent(input) {
- document.getElementById('resultParagraph').innerHTML = input.value;
- }
-
- function displayMessage(message) {
- document.getElementById('resultParagraph').innerHTML = message;
- }
-
- function appendMessage(message) {
- document.getElementById('resultParagraph').innerHTML += message + " ";
- }
-
- function register(message) {
- if (!seen[message]) {
- appendMessage(message);
- seen[message] = true;
- }
- }
-
- function delayedShowHide(delay, show) {
- var blackBox = document.getElementById('clickToHide');
- window.setTimeout(function() {
- blackBox.style.display = show ? '' : 'none';
- }, delay);
- }
- </script>
- <script type="text/javascript">
- var startList = function() {
- // Ugh. Let's hope no-one is faking their user agent when running the tests
- if (navigator.userAgent.indexOf("MSIE") != -1) {
- var navRoot = document.getElementById("nav");
- for (var i = 0; i < navRoot.childNodes.length; i++) {
- var node = navRoot.childNodes[i];
- if (node.nodeName == "LI") {
- node.onmouseover = function() {
- this.className += " over";
- };
- node.onmouseout = function() {
- this.className = this.className.replace(" over", "");
- };
- }
- }
- }
- };
- window.onload=startList;
- </script>
- <style type="text/css">
- #nav {
- padding: 0; margin: 0; list-style: none;
- }
- #nav li {
- float: left; position: relative; width: 10em;
- }
- #nav li ul {
- display: none; position: absolute; top: 1em; left: 0;
- }
- #nav li > ul { top: auto; left: auto; }
- #nav li:hover ul, #nav li.over ul{ display: block; background: white; }
- </style>
-</head>
-<body>
-<h1>Type Stuff</h1>
-
-<div>
- <ul id="nav">
- <li id="menu1">Menu 1
- <ul>
- <li id="item1" onclick="displayMessage('item 1');">Item 1</li>
- <li>Item 2</li>
- </ul>
- </li>
- </ul>
-</div>
-
-<div id="resultContainer" height="30">&nbsp;
- <div id="result" style="width:300;height:60">
- <p id="resultParagraph">&nbsp;</p>
- </div>
-
-</div>
-
-<div id="formageddon">
- <form action="#">
- Key Up: <input type="text" id="keyUp" onkeyup="javascript:updateContent(this)"/><br/>
- Key Down: <input type="text" id="keyDown" onkeydown="javascript:updateContent(this)"/><br/>
- Key Press: <input type="text" id="keyPress" onkeypress="javascript:updateContent(this)"/><br/>
- Change: <input type="text" id="change" onkeypress="javascript:displayMessage('change')"/><br/>
- <textarea id="keyDownArea" onkeydown="javascript:updateContent(this)" rows="2" cols="15"></textarea>
- <textarea id="keyPressArea" onkeypress="javascript:updateContent(this)" rows="2" cols="15"></textarea>
- <textarea id="keyUpArea" onkeyup="javascript:updateContent(this)" rows="2" cols="15"></textarea>
- <select id="selector" onchange="javascript:updateContent(this)">
- <option value="foo">Foo</option>
- <option value="bar">Bar</option>
- </select>
- <select id="selector2" onclick="javascript:updateContent(this)">
- <option value="foo">Foo</option>
- <option value="bar">Bar</option>
- </select>
- <input type="checkbox" id="checkbox" value="checkbox thing" onchange="javascript:updateContent(this)"/>
- <input id="clickField" type="text" onclick="document.getElementById('clickField').value='Clicked';" value="Hello"/>
- <input id="doubleClickField" type="text" onclick="document.getElementById('doubleClickField').value='Clicked';" ondblclick="document.getElementById('doubleClickField').value='DoubleClicked';" oncontextmenu="document.getElementById('doubleClickField').value='ContextClicked'; return false;" value="DoubleHello"/>
- <input id="clearMe" value="Something" onchange="displayMessage('Cleared')"/>
- </form>
-</div>
-
-<div>
- <p><a href="#" onclick="javascript:document.title='Changed'">Change the page title!</a></p>
-
- <p><a onclick="javascript:document.title='Changed'" id="nohref">No href</a></p>
-
- <p><a id="updatediv" href="#" onclick="javascript:document.getElementById('dynamo').innerHTML = 'Fish and chips!';">Update a
- div</a></p>
-</div>
-
-<div id="dynamo">What's for dinner?</div>
-
-<div id="mousedown" onmousedown="javascript:displayMessage('mouse down');">
- <p>Click for the mouse down event</p>
- <span><p id="child">Here's some text</p></span>
-</div>
-
-<div id="mouseup" onmouseup="javascript:displayMessage('mouse up');">
- <p>Click for the mouse up event</p>
-</div>
-
-<div id="mouseclick" onclick="javascript:displayMessage('mouse click');">
- <p>Click for the mouse click event</p>
-</div>
-
-<div id="error" onclick="document.getElementById('doesnotexist').innerHTML = 'cheese';">
- Clicking this causes a JS exception in the click handler
-</div>
-
-<div>
- <form action="resultPage.html" id="on-form">
- <input id="theworks"
- onfocus="appendMessage('focus')"
- onkeydown="appendMessage('keydown')"
- onkeypress="appendMessage('keypress')"
- onkeyup="appendMessage('keyup')"
- onblur="appendMessage('blur')"
- onchange="appendMessage('change')"
- />
-
- <input id="changeable" name="changeable" onfocus="appendMessage('focus')" onchange="appendMessage('change')" onblur="appendMessage('blur')"/>
-
- <button type="button" id="plainButton"
- onfocus="appendMessage('focus')"
- onkeydown="appendMessage('keydown')"
- onkeypress="appendMessage('keypress')"
- onkeyup="appendMessage('keyup')"
- onblur="appendMessage('blur')"
- onclick="appendMessage('click')"
- onmousedown="appendMessage('mousedown ')"
- onmouseup="appendMessage('mouseup ')"
- onmouseover="register('mouseover ')"
- onmousemove="register('mousemove ')"
- >
- <b>Go somewhere</b>
- </button>
- <button type="submit" id="submittingButton"><emph>submit</emph></button>
- <button type="button" id="jsSubmitButton" onclick="javascript:document.getElementById('on-form').submit();">Submitomatic</button>
-
- <button type="button" id="switchFocus" onclick="document.getElementById('theworks').focus();">Switch focus</button>
- <button type="button" onclick="var element = document.getElementById('switchFocus'); var clickEvent = document.createEvent('MouseEvents'); clickEvent.initMouseEvent('click', true, true, null, 0, 0, 0, 0, 0,false, false, false, false, 0, element);element.dispatchEvent(clickEvent);">Do magic</button><br/>
- <label id="labelForCheckbox" for="labeledCheckbox" onclick="appendMessage('labelclick')">Toggle checkbox</label><input type="checkbox" id="labeledCheckbox" onclick="appendMessage('chboxclick')"/>
- </form>
-
- <form action="javascriptPage.html" id="submitListeningForm" onsubmit="appendMessage('form-onsubmit '); return false;">
- <p>
- <input id="submitListeningForm-text" type="text" onsubmit="appendMessage('text-onsubmit ')" onclick="appendMessage('text-onclick ');" />
- <input id="submitListeningForm-submit" type="submit" onsubmit="appendMessage('submit-onsubmit ')" onclick="appendMessage('submit-onclick ');" />
- </p>
- </form>
-</div>
-
-<p id="suppressedParagraph" style="display: none">A paragraph suppressed using CSS display=none</p>
-
-<div>
- <p id="displayed">Displayed</p>
-
- <form action="#"><input type="hidden" name="hidden" /> </form>
-
- <p id="none" style="display: none;">Display set to none</p>
-
- <p id="hidden" style="visibility: hidden;">Hidden</p>
-
- <div id="hiddenparent" style="height: 2em; display: none;">
- <div id="hiddenchild">
- <a href="#" id="hiddenlink">ok</a>
- </div>
- </div>
-
- <div style="visibility: hidden;">
- <span>
- <input id="unclickable" />
- <input type="checkbox" id="untogglable" checked="checked" />Check box you can't see
- </span>
- </div>
-
- <p id="outer" style="visibility: hidden">A <b id="visibleSubElement" style="visibility: visible">sub-element that is explicitly visible</b> using CSS visibility=visible</p>
-</div>
-
-<div>
- <form>
- <input type="text" id="keyReporter" size="80"
- onkeyup="appendMessage('up: ' + event.keyCode)"
- onkeypress="appendMessage('press: ' + event.keyCode)"
- onkeydown="displayMessage(''); appendMessage('down: ' + event.keyCode)" />
- <input name="suppress" onkeydown="if (event.preventDefault) event.preventDefault(); event.returnValue = false; return false;" onkeypress="appendMessage('press');"/>
- </form>
-</div>
-
-<!-- Used for testing styles -->
-<div style="background-color: green;" id="green-parent">
- <p id="style1">This should be greenish</p>
- <ul>
- <li id="green-item">So should this</li>
- <li id="red-item" style="background-color: red;">But this is red</li>
- </ul>
-</div>
-
-<a href="#" id="close" onclick="window.close();">Close window</a>
-
-<div id="delete" onclick="var d = document.getElementById('deleted'); this.removeChild(d);">
- <p id="deleted">I should be deleted when you click my containing div</p>
- <p>Whereas, I should not</p>
-</div>
-
-<div>
- <span id="hideMe" onclick="this.style.display = 'none';">Click to hide me.</span>
-</div>
-
-<div id="hideOnBlur" tabindex="0"
- style="width: 100px; height: 100px; border: 1px solid red"
- onblur="appendMessage('blur'); this.style.display = 'none';">
- <div id="hideOnBlurChild"
- style="width: 30px; height: 30px; border: 1px solid blue">
- x
- </div>
- Focusable. Will hide when focus is lost.
-</div>
-
-<div style="margin-top: 10px;">
- Click actions delayed by 3000ms:
- <div id="clickToShow" onclick="delayedShowHide(3000, true);"
- style="float: left;width: 100px;height:100px;border: 1px solid black;">
- Click to show black box
- </div>
- <div id="clickToHide" onclick="delayedShowHide(3000, false);"
- style="float: left;width: 100px;height:100px;border: 1px solid black;
- background-color: black; color: white; display: none;">
- Click to hide black box
- </div>
- <div style="clear: both"></div>
-</div>
-
-<a id="new_window" onmouseup="window.open('closeable_window.html', 'close_me')" href="#">Click me to open a new window</a>
-
-<a id="throwing-mouseover" onmouseover="throw new Error()" href="#throwing-mouseover">Mouse over me will throw a JS error</a>
-
-<div id="parent">
- <span id="movable" onmouseover="var p = document.getElementById('movable'); displayMessage('parent matches? ' + (p != event.relatedTarget));">
- Click on me to show the related target
- </span>
-</div>
-
-<div id="zero" style="width:0;height:0">
- <div>
- <img src="map.png">
- </div>
-</div>
-
-</body>
-</html>
-
-
diff --git a/node_modules/selenium-webdriver/lib/test/data/jquery-1.3.2.js b/node_modules/selenium-webdriver/lib/test/data/jquery-1.3.2.js
deleted file mode 100644
index 462cde56c..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/jquery-1.3.2.js
+++ /dev/null
@@ -1,4376 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.3.2
- * http://jquery.com/
- *
- * Copyright (c) 2009 John Resig
- * Dual licensed under the MIT and GPL licenses.
- * http://docs.jquery.com/License
- *
- * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
- * Revision: 6246
- */
-(function(){
-
-var
- // Will speed up references to window, and allows munging its name.
- window = this,
- // Will speed up references to undefined, and allows munging its name.
- undefined,
- // Map over jQuery in case of overwrite
- _jQuery = window.jQuery,
- // Map over the $ in case of overwrite
- _$ = window.$,
-
- jQuery = window.jQuery = window.$ = function( selector, context ) {
- // The jQuery object is actually just the init constructor 'enhanced'
- return new jQuery.fn.init( selector, context );
- },
-
- // A simple way to check for HTML strings or ID strings
- // (both of which we optimize for)
- quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,
- // Is it a simple selector
- isSimple = /^.[^:#\[\.,]*$/;
-
-jQuery.fn = jQuery.prototype = {
- init: function( selector, context ) {
- // Make sure that a selection was provided
- selector = selector || document;
-
- // Handle $(DOMElement)
- if ( selector.nodeType ) {
- this[0] = selector;
- this.length = 1;
- this.context = selector;
- return this;
- }
- // Handle HTML strings
- if ( typeof selector === "string" ) {
- // Are we dealing with HTML string or an ID?
- var match = quickExpr.exec( selector );
-
- // Verify a match, and that no context was specified for #id
- if ( match && (match[1] || !context) ) {
-
- // HANDLE: $(html) -> $(array)
- if ( match[1] )
- selector = jQuery.clean( [ match[1] ], context );
-
- // HANDLE: $("#id")
- else {
- var elem = document.getElementById( match[3] );
-
- // Handle the case where IE and Opera return items
- // by name instead of ID
- if ( elem && elem.id != match[3] )
- return jQuery().find( selector );
-
- // Otherwise, we inject the element directly into the jQuery object
- var ret = jQuery( elem || [] );
- ret.context = document;
- ret.selector = selector;
- return ret;
- }
-
- // HANDLE: $(expr, [context])
- // (which is just equivalent to: $(content).find(expr)
- } else
- return jQuery( context ).find( selector );
-
- // HANDLE: $(function)
- // Shortcut for document ready
- } else if ( jQuery.isFunction( selector ) )
- return jQuery( document ).ready( selector );
-
- // Make sure that old selector state is passed along
- if ( selector.selector && selector.context ) {
- this.selector = selector.selector;
- this.context = selector.context;
- }
-
- return this.setArray(jQuery.isArray( selector ) ?
- selector :
- jQuery.makeArray(selector));
- },
-
- // Start with an empty selector
- selector: "",
-
- // The current version of jQuery being used
- jquery: "1.3.2",
-
- // The number of elements contained in the matched element set
- size: function() {
- return this.length;
- },
-
- // Get the Nth element in the matched element set OR
- // Get the whole matched element set as a clean array
- get: function( num ) {
- return num === undefined ?
-
- // Return a 'clean' array
- Array.prototype.slice.call( this ) :
-
- // Return just the object
- this[ num ];
- },
-
- // Take an array of elements and push it onto the stack
- // (returning the new matched element set)
- pushStack: function( elems, name, selector ) {
- // Build a new jQuery matched element set
- var ret = jQuery( elems );
-
- // Add the old object onto the stack (as a reference)
- ret.prevObject = this;
-
- ret.context = this.context;
-
- if ( name === "find" )
- ret.selector = this.selector + (this.selector ? " " : "") + selector;
- else if ( name )
- ret.selector = this.selector + "." + name + "(" + selector + ")";
-
- // Return the newly-formed element set
- return ret;
- },
-
- // Force the current matched set of elements to become
- // the specified array of elements (destroying the stack in the process)
- // You should use pushStack() in order to do this, but maintain the stack
- setArray: function( elems ) {
- // Resetting the length to 0, then using the native Array push
- // is a super-fast way to populate an object with array-like properties
- this.length = 0;
- Array.prototype.push.apply( this, elems );
-
- return this;
- },
-
- // Execute a callback for every element in the matched set.
- // (You can seed the arguments with an array of args, but this is
- // only used internally.)
- each: function( callback, args ) {
- return jQuery.each( this, callback, args );
- },
-
- // Determine the position of an element within
- // the matched set of elements
- index: function( elem ) {
- // Locate the position of the desired element
- return jQuery.inArray(
- // If it receives a jQuery object, the first element is used
- elem && elem.jquery ? elem[0] : elem
- , this );
- },
-
- attr: function( name, value, type ) {
- var options = name;
-
- // Look for the case where we're accessing a style value
- if ( typeof name === "string" )
- if ( value === undefined )
- return this[0] && jQuery[ type || "attr" ]( this[0], name );
-
- else {
- options = {};
- options[ name ] = value;
- }
-
- // Check to see if we're setting style values
- return this.each(function(i){
- // Set all the styles
- for ( name in options )
- jQuery.attr(
- type ?
- this.style :
- this,
- name, jQuery.prop( this, options[ name ], type, i, name )
- );
- });
- },
-
- css: function( key, value ) {
- // ignore negative width and height values
- if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 )
- value = undefined;
- return this.attr( key, value, "curCSS" );
- },
-
- text: function( text ) {
- if ( typeof text !== "object" && text != null )
- return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
-
- var ret = "";
-
- jQuery.each( text || this, function(){
- jQuery.each( this.childNodes, function(){
- if ( this.nodeType != 8 )
- ret += this.nodeType != 1 ?
- this.nodeValue :
- jQuery.fn.text( [ this ] );
- });
- });
-
- return ret;
- },
-
- wrapAll: function( html ) {
- if ( this[0] ) {
- // The elements to wrap the target around
- var wrap = jQuery( html, this[0].ownerDocument ).clone();
-
- if ( this[0].parentNode )
- wrap.insertBefore( this[0] );
-
- wrap.map(function(){
- var elem = this;
-
- while ( elem.firstChild )
- elem = elem.firstChild;
-
- return elem;
- }).append(this);
- }
-
- return this;
- },
-
- wrapInner: function( html ) {
- return this.each(function(){
- jQuery( this ).contents().wrapAll( html );
- });
- },
-
- wrap: function( html ) {
- return this.each(function(){
- jQuery( this ).wrapAll( html );
- });
- },
-
- append: function() {
- return this.domManip(arguments, true, function(elem){
- if (this.nodeType == 1)
- this.appendChild( elem );
- });
- },
-
- prepend: function() {
- return this.domManip(arguments, true, function(elem){
- if (this.nodeType == 1)
- this.insertBefore( elem, this.firstChild );
- });
- },
-
- before: function() {
- return this.domManip(arguments, false, function(elem){
- this.parentNode.insertBefore( elem, this );
- });
- },
-
- after: function() {
- return this.domManip(arguments, false, function(elem){
- this.parentNode.insertBefore( elem, this.nextSibling );
- });
- },
-
- end: function() {
- return this.prevObject || jQuery( [] );
- },
-
- // For internal use only.
- // Behaves like an Array's method, not like a jQuery method.
- push: [].push,
- sort: [].sort,
- splice: [].splice,
-
- find: function( selector ) {
- if ( this.length === 1 ) {
- var ret = this.pushStack( [], "find", selector );
- ret.length = 0;
- jQuery.find( selector, this[0], ret );
- return ret;
- } else {
- return this.pushStack( jQuery.unique(jQuery.map(this, function(elem){
- return jQuery.find( selector, elem );
- })), "find", selector );
- }
- },
-
- clone: function( events ) {
- // Do the clone
- var ret = this.map(function(){
- if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) {
- // IE copies events bound via attachEvent when
- // using cloneNode. Calling detachEvent on the
- // clone will also remove the events from the orignal
- // In order to get around this, we use innerHTML.
- // Unfortunately, this means some modifications to
- // attributes in IE that are actually only stored
- // as properties will not be copied (such as the
- // the name attribute on an input).
- var html = this.outerHTML;
- if ( !html ) {
- var div = this.ownerDocument.createElement("div");
- div.appendChild( this.cloneNode(true) );
- html = div.innerHTML;
- }
-
- return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0];
- } else
- return this.cloneNode(true);
- });
-
- // Copy the events from the original to the clone
- if ( events === true ) {
- var orig = this.find("*").andSelf(), i = 0;
-
- ret.find("*").andSelf().each(function(){
- if ( this.nodeName !== orig[i].nodeName )
- return;
-
- var events = jQuery.data( orig[i], "events" );
-
- for ( var type in events ) {
- for ( var handler in events[ type ] ) {
- jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data );
- }
- }
-
- i++;
- });
- }
-
- // Return the cloned set
- return ret;
- },
-
- filter: function( selector ) {
- return this.pushStack(
- jQuery.isFunction( selector ) &&
- jQuery.grep(this, function(elem, i){
- return selector.call( elem, i );
- }) ||
-
- jQuery.multiFilter( selector, jQuery.grep(this, function(elem){
- return elem.nodeType === 1;
- }) ), "filter", selector );
- },
-
- closest: function( selector ) {
- var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null,
- closer = 0;
-
- return this.map(function(){
- var cur = this;
- while ( cur && cur.ownerDocument ) {
- if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selector) ) {
- jQuery.data(cur, "closest", closer);
- return cur;
- }
- cur = cur.parentNode;
- closer++;
- }
- });
- },
-
- not: function( selector ) {
- if ( typeof selector === "string" )
- // test special case where just one selector is passed in
- if ( isSimple.test( selector ) )
- return this.pushStack( jQuery.multiFilter( selector, this, true ), "not", selector );
- else
- selector = jQuery.multiFilter( selector, this );
-
- var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType;
- return this.filter(function() {
- return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector;
- });
- },
-
- add: function( selector ) {
- return this.pushStack( jQuery.unique( jQuery.merge(
- this.get(),
- typeof selector === "string" ?
- jQuery( selector ) :
- jQuery.makeArray( selector )
- )));
- },
-
- is: function( selector ) {
- return !!selector && jQuery.multiFilter( selector, this ).length > 0;
- },
-
- hasClass: function( selector ) {
- return !!selector && this.is( "." + selector );
- },
-
- val: function( value ) {
- if ( value === undefined ) {
- var elem = this[0];
-
- if ( elem ) {
- if( jQuery.nodeName( elem, 'option' ) )
- return (elem.attributes.value || {}).specified ? elem.value : elem.text;
-
- // We need to handle select boxes special
- if ( jQuery.nodeName( elem, "select" ) ) {
- var index = elem.selectedIndex,
- values = [],
- options = elem.options,
- one = elem.type == "select-one";
-
- // Nothing was selected
- if ( index < 0 )
- return null;
-
- // Loop through all the selected options
- for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
- var option = options[ i ];
-
- if ( option.selected ) {
- // Get the specifc value for the option
- value = jQuery(option).val();
-
- // We don't need an array for one selects
- if ( one )
- return value;
-
- // Multi-Selects return an array
- values.push( value );
- }
- }
-
- return values;
- }
-
- // Everything else, we just grab the value
- return (elem.value || "").replace(/\r/g, "");
-
- }
-
- return undefined;
- }
-
- if ( typeof value === "number" )
- value += '';
-
- return this.each(function(){
- if ( this.nodeType != 1 )
- return;
-
- if ( jQuery.isArray(value) && /radio|checkbox/.test( this.type ) )
- this.checked = (jQuery.inArray(this.value, value) >= 0 ||
- jQuery.inArray(this.name, value) >= 0);
-
- else if ( jQuery.nodeName( this, "select" ) ) {
- var values = jQuery.makeArray(value);
-
- jQuery( "option", this ).each(function(){
- this.selected = (jQuery.inArray( this.value, values ) >= 0 ||
- jQuery.inArray( this.text, values ) >= 0);
- });
-
- if ( !values.length )
- this.selectedIndex = -1;
-
- } else
- this.value = value;
- });
- },
-
- html: function( value ) {
- return value === undefined ?
- (this[0] ?
- this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") :
- null) :
- this.empty().append( value );
- },
-
- replaceWith: function( value ) {
- return this.after( value ).remove();
- },
-
- eq: function( i ) {
- return this.slice( i, +i + 1 );
- },
-
- slice: function() {
- return this.pushStack( Array.prototype.slice.apply( this, arguments ),
- "slice", Array.prototype.slice.call(arguments).join(",") );
- },
-
- map: function( callback ) {
- return this.pushStack( jQuery.map(this, function(elem, i){
- return callback.call( elem, i, elem );
- }));
- },
-
- andSelf: function() {
- return this.add( this.prevObject );
- },
-
- domManip: function( args, table, callback ) {
- if ( this[0] ) {
- var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(),
- scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ),
- first = fragment.firstChild;
-
- if ( first )
- for ( var i = 0, l = this.length; i < l; i++ )
- callback.call( root(this[i], first), this.length > 1 || i > 0 ?
- fragment.cloneNode(true) : fragment );
-
- if ( scripts )
- jQuery.each( scripts, evalScript );
- }
-
- return this;
-
- function root( elem, cur ) {
- return table && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ?
- (elem.getElementsByTagName("tbody")[0] ||
- elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
- elem;
- }
- }
-};
-
-// Give the init function the jQuery prototype for later instantiation
-jQuery.fn.init.prototype = jQuery.fn;
-
-function evalScript( i, elem ) {
- if ( elem.src )
- jQuery.ajax({
- url: elem.src,
- async: false,
- dataType: "script"
- });
-
- else
- jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
-
- if ( elem.parentNode )
- elem.parentNode.removeChild( elem );
-}
-
-function now(){
- return +new Date;
-}
-
-jQuery.extend = jQuery.fn.extend = function() {
- // copy reference to target object
- var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options;
-
- // Handle a deep copy situation
- if ( typeof target === "boolean" ) {
- deep = target;
- target = arguments[1] || {};
- // skip the boolean and the target
- i = 2;
- }
-
- // Handle case when target is a string or something (possible in deep copy)
- if ( typeof target !== "object" && !jQuery.isFunction(target) )
- target = {};
-
- // extend jQuery itself if only one argument is passed
- if ( length == i ) {
- target = this;
- --i;
- }
-
- for ( ; i < length; i++ )
- // Only deal with non-null/undefined values
- if ( (options = arguments[ i ]) != null )
- // Extend the base object
- for ( var name in options ) {
- var src = target[ name ], copy = options[ name ];
-
- // Prevent never-ending loop
- if ( target === copy )
- continue;
-
- // Recurse if we're merging object values
- if ( deep && copy && typeof copy === "object" && !copy.nodeType )
- target[ name ] = jQuery.extend( deep,
- // Never move original objects, clone them
- src || ( copy.length != null ? [ ] : { } )
- , copy );
-
- // Don't bring in undefined values
- else if ( copy !== undefined )
- target[ name ] = copy;
-
- }
-
- // Return the modified object
- return target;
-};
-
-// exclude the following css properties to add px
-var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i,
- // cache defaultView
- defaultView = document.defaultView || {},
- toString = Object.prototype.toString;
-
-jQuery.extend({
- noConflict: function( deep ) {
- window.$ = _$;
-
- if ( deep )
- window.jQuery = _jQuery;
-
- return jQuery;
- },
-
- // See test/unit/core.js for details concerning isFunction.
- // Since version 1.3, DOM methods and functions like alert
- // aren't supported. They return false on IE (#2968).
- isFunction: function( obj ) {
- return toString.call(obj) === "[object Function]";
- },
-
- isArray: function( obj ) {
- return toString.call(obj) === "[object Array]";
- },
-
- // check if an element is in a (or is an) XML document
- isXMLDoc: function( elem ) {
- return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" ||
- !!elem.ownerDocument && jQuery.isXMLDoc( elem.ownerDocument );
- },
-
- // Evalulates a script in a global context
- globalEval: function( data ) {
- if ( data && /\S/.test(data) ) {
- // Inspired by code by Andrea Giammarchi
- // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
- var head = document.getElementsByTagName("head")[0] || document.documentElement,
- script = document.createElement("script");
-
- script.type = "text/javascript";
- if ( jQuery.support.scriptEval )
- script.appendChild( document.createTextNode( data ) );
- else
- script.text = data;
-
- // Use insertBefore instead of appendChild to circumvent an IE6 bug.
- // This arises when a base node is used (#2709).
- head.insertBefore( script, head.firstChild );
- head.removeChild( script );
- }
- },
-
- nodeName: function( elem, name ) {
- return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase();
- },
-
- // args is for internal usage only
- each: function( object, callback, args ) {
- var name, i = 0, length = object.length;
-
- if ( args ) {
- if ( length === undefined ) {
- for ( name in object )
- if ( callback.apply( object[ name ], args ) === false )
- break;
- } else
- for ( ; i < length; )
- if ( callback.apply( object[ i++ ], args ) === false )
- break;
-
- // A special, fast, case for the most common use of each
- } else {
- if ( length === undefined ) {
- for ( name in object )
- if ( callback.call( object[ name ], name, object[ name ] ) === false )
- break;
- } else
- for ( var value = object[0];
- i < length && callback.call( value, i, value ) !== false; value = object[++i] ){}
- }
-
- return object;
- },
-
- prop: function( elem, value, type, i, name ) {
- // Handle executable functions
- if ( jQuery.isFunction( value ) )
- value = value.call( elem, i );
-
- // Handle passing in a number to a CSS property
- return typeof value === "number" && type == "curCSS" && !exclude.test( name ) ?
- value + "px" :
- value;
- },
-
- className: {
- // internal only, use addClass("class")
- add: function( elem, classNames ) {
- jQuery.each((classNames || "").split(/\s+/), function(i, className){
- if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) )
- elem.className += (elem.className ? " " : "") + className;
- });
- },
-
- // internal only, use removeClass("class")
- remove: function( elem, classNames ) {
- if (elem.nodeType == 1)
- elem.className = classNames !== undefined ?
- jQuery.grep(elem.className.split(/\s+/), function(className){
- return !jQuery.className.has( classNames, className );
- }).join(" ") :
- "";
- },
-
- // internal only, use hasClass("class")
- has: function( elem, className ) {
- return elem && jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1;
- }
- },
-
- // A method for quickly swapping in/out CSS properties to get correct calculations
- swap: function( elem, options, callback ) {
- var old = {};
- // Remember the old values, and insert the new ones
- for ( var name in options ) {
- old[ name ] = elem.style[ name ];
- elem.style[ name ] = options[ name ];
- }
-
- callback.call( elem );
-
- // Revert the old values
- for ( var name in options )
- elem.style[ name ] = old[ name ];
- },
-
- css: function( elem, name, force, extra ) {
- if ( name == "width" || name == "height" ) {
- var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ];
-
- function getWH() {
- val = name == "width" ? elem.offsetWidth : elem.offsetHeight;
-
- if ( extra === "border" )
- return;
-
- jQuery.each( which, function() {
- if ( !extra )
- val -= parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0;
- if ( extra === "margin" )
- val += parseFloat(jQuery.curCSS( elem, "margin" + this, true)) || 0;
- else
- val -= parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0;
- });
- }
-
- if ( elem.offsetWidth !== 0 )
- getWH();
- else
- jQuery.swap( elem, props, getWH );
-
- return Math.max(0, Math.round(val));
- }
-
- return jQuery.curCSS( elem, name, force );
- },
-
- curCSS: function( elem, name, force ) {
- var ret, style = elem.style;
-
- // We need to handle opacity special in IE
- if ( name == "opacity" && !jQuery.support.opacity ) {
- ret = jQuery.attr( style, "opacity" );
-
- return ret == "" ?
- "1" :
- ret;
- }
-
- // Make sure we're using the right name for getting the float value
- if ( name.match( /float/i ) )
- name = styleFloat;
-
- if ( !force && style && style[ name ] )
- ret = style[ name ];
-
- else if ( defaultView.getComputedStyle ) {
-
- // Only "float" is needed here
- if ( name.match( /float/i ) )
- name = "float";
-
- name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase();
-
- var computedStyle = defaultView.getComputedStyle( elem, null );
-
- if ( computedStyle )
- ret = computedStyle.getPropertyValue( name );
-
- // We should always get a number back from opacity
- if ( name == "opacity" && ret == "" )
- ret = "1";
-
- } else if ( elem.currentStyle ) {
- var camelCase = name.replace(/\-(\w)/g, function(all, letter){
- return letter.toUpperCase();
- });
-
- ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ];
-
- // From the awesome hack by Dean Edwards
- // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
-
- // If we're not dealing with a regular pixel number
- // but a number that has a weird ending, we need to convert it to pixels
- if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) {
- // Remember the original values
- var left = style.left, rsLeft = elem.runtimeStyle.left;
-
- // Put in the new values to get a computed value out
- elem.runtimeStyle.left = elem.currentStyle.left;
- style.left = ret || 0;
- ret = style.pixelLeft + "px";
-
- // Revert the changed values
- style.left = left;
- elem.runtimeStyle.left = rsLeft;
- }
- }
-
- return ret;
- },
-
- clean: function( elems, context, fragment ) {
- context = context || document;
-
- // !context.createElement fails in IE with an error but returns typeof 'object'
- if ( typeof context.createElement === "undefined" )
- context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
-
- // If a single string is passed in and it's a single tag
- // just do a createElement and skip the rest
- if ( !fragment && elems.length === 1 && typeof elems[0] === "string" ) {
- var match = /^<(\w+)\s*\/?>$/.exec(elems[0]);
- if ( match )
- return [ context.createElement( match[1] ) ];
- }
-
- var ret = [], scripts = [], div = context.createElement("div");
-
- jQuery.each(elems, function(i, elem){
- if ( typeof elem === "number" )
- elem += '';
-
- if ( !elem )
- return;
-
- // Convert html string into DOM nodes
- if ( typeof elem === "string" ) {
- // Fix "XHTML"-style tags in all browsers
- elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){
- return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ?
- all :
- front + "></" + tag + ">";
- });
-
- // Trim whitespace, otherwise indexOf won't work as expected
- var tags = elem.replace(/^\s+/, "").substring(0, 10).toLowerCase();
-
- var wrap =
- // option or optgroup
- !tags.indexOf("<opt") &&
- [ 1, "<select multiple='multiple'>", "</select>" ] ||
-
- !tags.indexOf("<leg") &&
- [ 1, "<fieldset>", "</fieldset>" ] ||
-
- tags.match(/^<(thead|tbody|tfoot|colg|cap)/) &&
- [ 1, "<table>", "</table>" ] ||
-
- !tags.indexOf("<tr") &&
- [ 2, "<table><tbody>", "</tbody></table>" ] ||
-
- // <thead> matched above
- (!tags.indexOf("<td") || !tags.indexOf("<th")) &&
- [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ] ||
-
- !tags.indexOf("<col") &&
- [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ] ||
-
- // IE can't serialize <link> and <script> tags normally
- !jQuery.support.htmlSerialize &&
- [ 1, "div<div>", "</div>" ] ||
-
- [ 0, "", "" ];
-
- // Go to html and back, then peel off extra wrappers
- div.innerHTML = wrap[1] + elem + wrap[2];
-
- // Move to the right depth
- while ( wrap[0]-- )
- div = div.lastChild;
-
- // Remove IE's autoinserted <tbody> from table fragments
- if ( !jQuery.support.tbody ) {
-
- // String was a <table>, *may* have spurious <tbody>
- var hasBody = /<tbody/i.test(elem),
- tbody = !tags.indexOf("<table") && !hasBody ?
- div.firstChild && div.firstChild.childNodes :
-
- // String was a bare <thead> or <tfoot>
- wrap[1] == "<table>" && !hasBody ?
- div.childNodes :
- [];
-
- for ( var j = tbody.length - 1; j >= 0 ; --j )
- if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length )
- tbody[ j ].parentNode.removeChild( tbody[ j ] );
-
- }
-
- // IE completely kills leading whitespace when innerHTML is used
- if ( !jQuery.support.leadingWhitespace && /^\s/.test( elem ) )
- div.insertBefore( context.createTextNode( elem.match(/^\s*/)[0] ), div.firstChild );
-
- elem = jQuery.makeArray( div.childNodes );
- }
-
- if ( elem.nodeType )
- ret.push( elem );
- else
- ret = jQuery.merge( ret, elem );
-
- });
-
- if ( fragment ) {
- for ( var i = 0; ret[i]; i++ ) {
- if ( jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
- scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
- } else {
- if ( ret[i].nodeType === 1 )
- ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) );
- fragment.appendChild( ret[i] );
- }
- }
-
- return scripts;
- }
-
- return ret;
- },
-
- attr: function( elem, name, value ) {
- // don't set attributes on text and comment nodes
- if (!elem || elem.nodeType == 3 || elem.nodeType == 8)
- return undefined;
-
- var notxml = !jQuery.isXMLDoc( elem ),
- // Whether we are setting (or getting)
- set = value !== undefined;
-
- // Try to normalize/fix the name
- name = notxml && jQuery.props[ name ] || name;
-
- // Only do all the following if this is a node (faster for style)
- // IE elem.getAttribute passes even for style
- if ( elem.tagName ) {
-
- // These attributes require special treatment
- var special = /href|src|style/.test( name );
-
- // Safari mis-reports the default selected property of a hidden option
- // Accessing the parent's selectedIndex property fixes it
- if ( name == "selected" && elem.parentNode )
- elem.parentNode.selectedIndex;
-
- // If applicable, access the attribute via the DOM 0 way
- if ( name in elem && notxml && !special ) {
- if ( set ){
- // We can't allow the type property to be changed (since it causes problems in IE)
- if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
- throw "type property can't be changed";
-
- elem[ name ] = value;
- }
-
- // browsers index elements by id/name on forms, give priority to attributes.
- if( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) )
- return elem.getAttributeNode( name ).nodeValue;
-
- // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
- // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
- if ( name == "tabIndex" ) {
- var attributeNode = elem.getAttributeNode( "tabIndex" );
- return attributeNode && attributeNode.specified
- ? attributeNode.value
- : elem.nodeName.match(/(button|input|object|select|textarea)/i)
- ? 0
- : elem.nodeName.match(/^(a|area)$/i) && elem.href
- ? 0
- : undefined;
- }
-
- return elem[ name ];
- }
-
- if ( !jQuery.support.style && notxml && name == "style" )
- return jQuery.attr( elem.style, "cssText", value );
-
- if ( set )
- // convert the value to a string (all browsers do this but IE) see #1070
- elem.setAttribute( name, "" + value );
-
- var attr = !jQuery.support.hrefNormalized && notxml && special
- // Some attributes require a special call on IE
- ? elem.getAttribute( name, 2 )
- : elem.getAttribute( name );
-
- // Non-existent attributes return null, we normalize to undefined
- return attr === null ? undefined : attr;
- }
-
- // elem is actually elem.style ... set the style
-
- // IE uses filters for opacity
- if ( !jQuery.support.opacity && name == "opacity" ) {
- if ( set ) {
- // IE has trouble with opacity if it does not have layout
- // Force it by setting the zoom level
- elem.zoom = 1;
-
- // Set the alpha filter to set the opacity
- elem.filter = (elem.filter || "").replace( /alpha\([^)]*\)/, "" ) +
- (parseInt( value ) + '' == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")");
- }
-
- return elem.filter && elem.filter.indexOf("opacity=") >= 0 ?
- (parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100) + '':
- "";
- }
-
- name = name.replace(/-([a-z])/ig, function(all, letter){
- return letter.toUpperCase();
- });
-
- if ( set )
- elem[ name ] = value;
-
- return elem[ name ];
- },
-
- trim: function( text ) {
- return (text || "").replace( /^\s+|\s+$/g, "" );
- },
-
- makeArray: function( array ) {
- var ret = [];
-
- if( array != null ){
- var i = array.length;
- // The window, strings (and functions) also have 'length'
- if( i == null || typeof array === "string" || jQuery.isFunction(array) || array.setInterval )
- ret[0] = array;
- else
- while( i )
- ret[--i] = array[i];
- }
-
- return ret;
- },
-
- inArray: function( elem, array ) {
- for ( var i = 0, length = array.length; i < length; i++ )
- // Use === because on IE, window == document
- if ( array[ i ] === elem )
- return i;
-
- return -1;
- },
-
- merge: function( first, second ) {
- // We have to loop this way because IE & Opera overwrite the length
- // expando of getElementsByTagName
- var i = 0, elem, pos = first.length;
- // Also, we need to make sure that the correct elements are being returned
- // (IE returns comment nodes in a '*' query)
- if ( !jQuery.support.getAll ) {
- while ( (elem = second[ i++ ]) != null )
- if ( elem.nodeType != 8 )
- first[ pos++ ] = elem;
-
- } else
- while ( (elem = second[ i++ ]) != null )
- first[ pos++ ] = elem;
-
- return first;
- },
-
- unique: function( array ) {
- var ret = [], done = {};
-
- try {
-
- for ( var i = 0, length = array.length; i < length; i++ ) {
- var id = jQuery.data( array[ i ] );
-
- if ( !done[ id ] ) {
- done[ id ] = true;
- ret.push( array[ i ] );
- }
- }
-
- } catch( e ) {
- ret = array;
- }
-
- return ret;
- },
-
- grep: function( elems, callback, inv ) {
- var ret = [];
-
- // Go through the array, only saving the items
- // that pass the validator function
- for ( var i = 0, length = elems.length; i < length; i++ )
- if ( !inv != !callback( elems[ i ], i ) )
- ret.push( elems[ i ] );
-
- return ret;
- },
-
- map: function( elems, callback ) {
- var ret = [];
-
- // Go through the array, translating each of the items to their
- // new value (or values).
- for ( var i = 0, length = elems.length; i < length; i++ ) {
- var value = callback( elems[ i ], i );
-
- if ( value != null )
- ret[ ret.length ] = value;
- }
-
- return ret.concat.apply( [], ret );
- }
-});
-
-// Use of jQuery.browser is deprecated.
-// It's included for backwards compatibility and plugins,
-// although they should work to migrate away.
-
-var userAgent = navigator.userAgent.toLowerCase();
-
-// Figure out what browser is being used
-jQuery.browser = {
- version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1],
- safari: /webkit/.test( userAgent ),
- opera: /opera/.test( userAgent ),
- msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
- mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
-};
-
-jQuery.each({
- parent: function(elem){return elem.parentNode;},
- parents: function(elem){return jQuery.dir(elem,"parentNode");},
- next: function(elem){return jQuery.nth(elem,2,"nextSibling");},
- prev: function(elem){return jQuery.nth(elem,2,"previousSibling");},
- nextAll: function(elem){return jQuery.dir(elem,"nextSibling");},
- prevAll: function(elem){return jQuery.dir(elem,"previousSibling");},
- siblings: function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},
- children: function(elem){return jQuery.sibling(elem.firstChild);},
- contents: function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}
-}, function(name, fn){
- jQuery.fn[ name ] = function( selector ) {
- var ret = jQuery.map( this, fn );
-
- if ( selector && typeof selector == "string" )
- ret = jQuery.multiFilter( selector, ret );
-
- return this.pushStack( jQuery.unique( ret ), name, selector );
- };
-});
-
-jQuery.each({
- appendTo: "append",
- prependTo: "prepend",
- insertBefore: "before",
- insertAfter: "after",
- replaceAll: "replaceWith"
-}, function(name, original){
- jQuery.fn[ name ] = function( selector ) {
- var ret = [], insert = jQuery( selector );
-
- for ( var i = 0, l = insert.length; i < l; i++ ) {
- var elems = (i > 0 ? this.clone(true) : this).get();
- jQuery.fn[ original ].apply( jQuery(insert[i]), elems );
- ret = ret.concat( elems );
- }
-
- return this.pushStack( ret, name, selector );
- };
-});
-
-jQuery.each({
- removeAttr: function( name ) {
- jQuery.attr( this, name, "" );
- if (this.nodeType == 1)
- this.removeAttribute( name );
- },
-
- addClass: function( classNames ) {
- jQuery.className.add( this, classNames );
- },
-
- removeClass: function( classNames ) {
- jQuery.className.remove( this, classNames );
- },
-
- toggleClass: function( classNames, state ) {
- if( typeof state !== "boolean" )
- state = !jQuery.className.has( this, classNames );
- jQuery.className[ state ? "add" : "remove" ]( this, classNames );
- },
-
- remove: function( selector ) {
- if ( !selector || jQuery.filter( selector, [ this ] ).length ) {
- // Prevent memory leaks
- jQuery( "*", this ).add([this]).each(function(){
- jQuery.event.remove(this);
- jQuery.removeData(this);
- });
- if (this.parentNode)
- this.parentNode.removeChild( this );
- }
- },
-
- empty: function() {
- // Remove element nodes and prevent memory leaks
- jQuery(this).children().remove();
-
- // Remove any remaining nodes
- while ( this.firstChild )
- this.removeChild( this.firstChild );
- }
-}, function(name, fn){
- jQuery.fn[ name ] = function(){
- return this.each( fn, arguments );
- };
-});
-
-// Helper function used by the dimensions and offset modules
-function num(elem, prop) {
- return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0;
-}
-var expando = "jQuery" + now(), uuid = 0, windowData = {};
-
-jQuery.extend({
- cache: {},
-
- data: function( elem, name, data ) {
- elem = elem == window ?
- windowData :
- elem;
-
- var id = elem[ expando ];
-
- // Compute a unique ID for the element
- if ( !id )
- id = elem[ expando ] = ++uuid;
-
- // Only generate the data cache if we're
- // trying to access or manipulate it
- if ( name && !jQuery.cache[ id ] )
- jQuery.cache[ id ] = {};
-
- // Prevent overriding the named cache with undefined values
- if ( data !== undefined )
- jQuery.cache[ id ][ name ] = data;
-
- // Return the named cache data, or the ID for the element
- return name ?
- jQuery.cache[ id ][ name ] :
- id;
- },
-
- removeData: function( elem, name ) {
- elem = elem == window ?
- windowData :
- elem;
-
- var id = elem[ expando ];
-
- // If we want to remove a specific section of the element's data
- if ( name ) {
- if ( jQuery.cache[ id ] ) {
- // Remove the section of cache data
- delete jQuery.cache[ id ][ name ];
-
- // If we've removed all the data, remove the element's cache
- name = "";
-
- for ( name in jQuery.cache[ id ] )
- break;
-
- if ( !name )
- jQuery.removeData( elem );
- }
-
- // Otherwise, we want to remove all of the element's data
- } else {
- // Clean up the element expando
- try {
- delete elem[ expando ];
- } catch(e){
- // IE has trouble directly removing the expando
- // but it's ok with using removeAttribute
- if ( elem.removeAttribute )
- elem.removeAttribute( expando );
- }
-
- // Completely remove the data cache
- delete jQuery.cache[ id ];
- }
- },
- queue: function( elem, type, data ) {
- if ( elem ){
-
- type = (type || "fx") + "queue";
-
- var q = jQuery.data( elem, type );
-
- if ( !q || jQuery.isArray(data) )
- q = jQuery.data( elem, type, jQuery.makeArray(data) );
- else if( data )
- q.push( data );
-
- }
- return q;
- },
-
- dequeue: function( elem, type ){
- var queue = jQuery.queue( elem, type ),
- fn = queue.shift();
-
- if( !type || type === "fx" )
- fn = queue[0];
-
- if( fn !== undefined )
- fn.call(elem);
- }
-});
-
-jQuery.fn.extend({
- data: function( key, value ){
- var parts = key.split(".");
- parts[1] = parts[1] ? "." + parts[1] : "";
-
- if ( value === undefined ) {
- var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
-
- if ( data === undefined && this.length )
- data = jQuery.data( this[0], key );
-
- return data === undefined && parts[1] ?
- this.data( parts[0] ) :
- data;
- } else
- return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){
- jQuery.data( this, key, value );
- });
- },
-
- removeData: function( key ){
- return this.each(function(){
- jQuery.removeData( this, key );
- });
- },
- queue: function(type, data){
- if ( typeof type !== "string" ) {
- data = type;
- type = "fx";
- }
-
- if ( data === undefined )
- return jQuery.queue( this[0], type );
-
- return this.each(function(){
- var queue = jQuery.queue( this, type, data );
-
- if( type == "fx" && queue.length == 1 )
- queue[0].call(this);
- });
- },
- dequeue: function(type){
- return this.each(function(){
- jQuery.dequeue( this, type );
- });
- }
-});/*!
- * Sizzle CSS Selector Engine - v0.9.3
- * Copyright 2009, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- * More information: http://sizzlejs.com/
- */
-(function(){
-
-var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,
- done = 0,
- toString = Object.prototype.toString;
-
-var Sizzle = function(selector, context, results, seed) {
- results = results || [];
- context = context || document;
-
- if ( context.nodeType !== 1 && context.nodeType !== 9 )
- return [];
-
- if ( !selector || typeof selector !== "string" ) {
- return results;
- }
-
- var parts = [], m, set, checkSet, check, mode, extra, prune = true;
-
- // Reset the position of the chunker regexp (start from head)
- chunker.lastIndex = 0;
-
- while ( (m = chunker.exec(selector)) !== null ) {
- parts.push( m[1] );
-
- if ( m[2] ) {
- extra = RegExp.rightContext;
- break;
- }
- }
-
- if ( parts.length > 1 && origPOS.exec( selector ) ) {
- if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
- set = posProcess( parts[0] + parts[1], context );
- } else {
- set = Expr.relative[ parts[0] ] ?
- [ context ] :
- Sizzle( parts.shift(), context );
-
- while ( parts.length ) {
- selector = parts.shift();
-
- if ( Expr.relative[ selector ] )
- selector += parts.shift();
-
- set = posProcess( selector, set );
- }
- }
- } else {
- var ret = seed ?
- { expr: parts.pop(), set: makeArray(seed) } :
- Sizzle.find( parts.pop(), parts.length === 1 && context.parentNode ? context.parentNode : context, isXML(context) );
- set = Sizzle.filter( ret.expr, ret.set );
-
- if ( parts.length > 0 ) {
- checkSet = makeArray(set);
- } else {
- prune = false;
- }
-
- while ( parts.length ) {
- var cur = parts.pop(), pop = cur;
-
- if ( !Expr.relative[ cur ] ) {
- cur = "";
- } else {
- pop = parts.pop();
- }
-
- if ( pop == null ) {
- pop = context;
- }
-
- Expr.relative[ cur ]( checkSet, pop, isXML(context) );
- }
- }
-
- if ( !checkSet ) {
- checkSet = set;
- }
-
- if ( !checkSet ) {
- throw "Syntax error, unrecognized expression: " + (cur || selector);
- }
-
- if ( toString.call(checkSet) === "[object Array]" ) {
- if ( !prune ) {
- results.push.apply( results, checkSet );
- } else if ( context.nodeType === 1 ) {
- for ( var i = 0; checkSet[i] != null; i++ ) {
- if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && contains(context, checkSet[i])) ) {
- results.push( set[i] );
- }
- }
- } else {
- for ( var i = 0; checkSet[i] != null; i++ ) {
- if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
- results.push( set[i] );
- }
- }
- }
- } else {
- makeArray( checkSet, results );
- }
-
- if ( extra ) {
- Sizzle( extra, context, results, seed );
-
- if ( sortOrder ) {
- hasDuplicate = false;
- results.sort(sortOrder);
-
- if ( hasDuplicate ) {
- for ( var i = 1; i < results.length; i++ ) {
- if ( results[i] === results[i-1] ) {
- results.splice(i--, 1);
- }
- }
- }
- }
- }
-
- return results;
-};
-
-Sizzle.matches = function(expr, set){
- return Sizzle(expr, null, null, set);
-};
-
-Sizzle.find = function(expr, context, isXML){
- var set, match;
-
- if ( !expr ) {
- return [];
- }
-
- for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
- var type = Expr.order[i], match;
-
- if ( (match = Expr.match[ type ].exec( expr )) ) {
- var left = RegExp.leftContext;
-
- if ( left.substr( left.length - 1 ) !== "\\" ) {
- match[1] = (match[1] || "").replace(/\\/g, "");
- set = Expr.find[ type ]( match, context, isXML );
- if ( set != null ) {
- expr = expr.replace( Expr.match[ type ], "" );
- break;
- }
- }
- }
- }
-
- if ( !set ) {
- set = context.getElementsByTagName("*");
- }
-
- return {set: set, expr: expr};
-};
-
-Sizzle.filter = function(expr, set, inplace, not){
- var old = expr, result = [], curLoop = set, match, anyFound,
- isXMLFilter = set && set[0] && isXML(set[0]);
-
- while ( expr && set.length ) {
- for ( var type in Expr.filter ) {
- if ( (match = Expr.match[ type ].exec( expr )) != null ) {
- var filter = Expr.filter[ type ], found, item;
- anyFound = false;
-
- if ( curLoop == result ) {
- result = [];
- }
-
- if ( Expr.preFilter[ type ] ) {
- match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
-
- if ( !match ) {
- anyFound = found = true;
- } else if ( match === true ) {
- continue;
- }
- }
-
- if ( match ) {
- for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
- if ( item ) {
- found = filter( item, match, i, curLoop );
- var pass = not ^ !!found;
-
- if ( inplace && found != null ) {
- if ( pass ) {
- anyFound = true;
- } else {
- curLoop[i] = false;
- }
- } else if ( pass ) {
- result.push( item );
- anyFound = true;
- }
- }
- }
- }
-
- if ( found !== undefined ) {
- if ( !inplace ) {
- curLoop = result;
- }
-
- expr = expr.replace( Expr.match[ type ], "" );
-
- if ( !anyFound ) {
- return [];
- }
-
- break;
- }
- }
- }
-
- // Improper expression
- if ( expr == old ) {
- if ( anyFound == null ) {
- throw "Syntax error, unrecognized expression: " + expr;
- } else {
- break;
- }
- }
-
- old = expr;
- }
-
- return curLoop;
-};
-
-var Expr = Sizzle.selectors = {
- order: [ "ID", "NAME", "TAG" ],
- match: {
- ID: /#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
- CLASS: /\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
- NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,
- ATTR: /\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
- TAG: /^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,
- CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,
- POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,
- PSEUDO: /:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/
- },
- attrMap: {
- "class": "className",
- "for": "htmlFor"
- },
- attrHandle: {
- href: function(elem){
- return elem.getAttribute("href");
- }
- },
- relative: {
- "+": function(checkSet, part, isXML){
- var isPartStr = typeof part === "string",
- isTag = isPartStr && !/\W/.test(part),
- isPartStrNotTag = isPartStr && !isTag;
-
- if ( isTag && !isXML ) {
- part = part.toUpperCase();
- }
-
- for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
- if ( (elem = checkSet[i]) ) {
- while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
-
- checkSet[i] = isPartStrNotTag || elem && elem.nodeName === part ?
- elem || false :
- elem === part;
- }
- }
-
- if ( isPartStrNotTag ) {
- Sizzle.filter( part, checkSet, true );
- }
- },
- ">": function(checkSet, part, isXML){
- var isPartStr = typeof part === "string";
-
- if ( isPartStr && !/\W/.test(part) ) {
- part = isXML ? part : part.toUpperCase();
-
- for ( var i = 0, l = checkSet.length; i < l; i++ ) {
- var elem = checkSet[i];
- if ( elem ) {
- var parent = elem.parentNode;
- checkSet[i] = parent.nodeName === part ? parent : false;
- }
- }
- } else {
- for ( var i = 0, l = checkSet.length; i < l; i++ ) {
- var elem = checkSet[i];
- if ( elem ) {
- checkSet[i] = isPartStr ?
- elem.parentNode :
- elem.parentNode === part;
- }
- }
-
- if ( isPartStr ) {
- Sizzle.filter( part, checkSet, true );
- }
- }
- },
- "": function(checkSet, part, isXML){
- var doneName = done++, checkFn = dirCheck;
-
- if ( !part.match(/\W/) ) {
- var nodeCheck = part = isXML ? part : part.toUpperCase();
- checkFn = dirNodeCheck;
- }
-
- checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML);
- },
- "~": function(checkSet, part, isXML){
- var doneName = done++, checkFn = dirCheck;
-
- if ( typeof part === "string" && !part.match(/\W/) ) {
- var nodeCheck = part = isXML ? part : part.toUpperCase();
- checkFn = dirNodeCheck;
- }
-
- checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML);
- }
- },
- find: {
- ID: function(match, context, isXML){
- if ( typeof context.getElementById !== "undefined" && !isXML ) {
- var m = context.getElementById(match[1]);
- return m ? [m] : [];
- }
- },
- NAME: function(match, context, isXML){
- if ( typeof context.getElementsByName !== "undefined" ) {
- var ret = [], results = context.getElementsByName(match[1]);
-
- for ( var i = 0, l = results.length; i < l; i++ ) {
- if ( results[i].getAttribute("name") === match[1] ) {
- ret.push( results[i] );
- }
- }
-
- return ret.length === 0 ? null : ret;
- }
- },
- TAG: function(match, context){
- return context.getElementsByTagName(match[1]);
- }
- },
- preFilter: {
- CLASS: function(match, curLoop, inplace, result, not, isXML){
- match = " " + match[1].replace(/\\/g, "") + " ";
-
- if ( isXML ) {
- return match;
- }
-
- for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
- if ( elem ) {
- if ( not ^ (elem.className && (" " + elem.className + " ").indexOf(match) >= 0) ) {
- if ( !inplace )
- result.push( elem );
- } else if ( inplace ) {
- curLoop[i] = false;
- }
- }
- }
-
- return false;
- },
- ID: function(match){
- return match[1].replace(/\\/g, "");
- },
- TAG: function(match, curLoop){
- for ( var i = 0; curLoop[i] === false; i++ ){}
- return curLoop[i] && isXML(curLoop[i]) ? match[1] : match[1].toUpperCase();
- },
- CHILD: function(match){
- if ( match[1] == "nth" ) {
- // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
- var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
- match[2] == "even" && "2n" || match[2] == "odd" && "2n+1" ||
- !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
-
- // calculate the numbers (first)n+(last) including if they are negative
- match[2] = (test[1] + (test[2] || 1)) - 0;
- match[3] = test[3] - 0;
- }
-
- // TODO: Move to normal caching system
- match[0] = done++;
-
- return match;
- },
- ATTR: function(match, curLoop, inplace, result, not, isXML){
- var name = match[1].replace(/\\/g, "");
-
- if ( !isXML && Expr.attrMap[name] ) {
- match[1] = Expr.attrMap[name];
- }
-
- if ( match[2] === "~=" ) {
- match[4] = " " + match[4] + " ";
- }
-
- return match;
- },
- PSEUDO: function(match, curLoop, inplace, result, not){
- if ( match[1] === "not" ) {
- // If we're dealing with a complex expression, or a simple one
- if ( match[3].match(chunker).length > 1 || /^\w/.test(match[3]) ) {
- match[3] = Sizzle(match[3], null, null, curLoop);
- } else {
- var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
- if ( !inplace ) {
- result.push.apply( result, ret );
- }
- return false;
- }
- } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
- return true;
- }
-
- return match;
- },
- POS: function(match){
- match.unshift( true );
- return match;
- }
- },
- filters: {
- enabled: function(elem){
- return elem.disabled === false && elem.type !== "hidden";
- },
- disabled: function(elem){
- return elem.disabled === true;
- },
- checked: function(elem){
- return elem.checked === true;
- },
- selected: function(elem){
- // Accessing this property makes selected-by-default
- // options in Safari work properly
- elem.parentNode.selectedIndex;
- return elem.selected === true;
- },
- parent: function(elem){
- return !!elem.firstChild;
- },
- empty: function(elem){
- return !elem.firstChild;
- },
- has: function(elem, i, match){
- return !!Sizzle( match[3], elem ).length;
- },
- header: function(elem){
- return /h\d/i.test( elem.nodeName );
- },
- text: function(elem){
- return "text" === elem.type;
- },
- radio: function(elem){
- return "radio" === elem.type;
- },
- checkbox: function(elem){
- return "checkbox" === elem.type;
- },
- file: function(elem){
- return "file" === elem.type;
- },
- password: function(elem){
- return "password" === elem.type;
- },
- submit: function(elem){
- return "submit" === elem.type;
- },
- image: function(elem){
- return "image" === elem.type;
- },
- reset: function(elem){
- return "reset" === elem.type;
- },
- button: function(elem){
- return "button" === elem.type || elem.nodeName.toUpperCase() === "BUTTON";
- },
- input: function(elem){
- return /input|select|textarea|button/i.test(elem.nodeName);
- }
- },
- setFilters: {
- first: function(elem, i){
- return i === 0;
- },
- last: function(elem, i, match, array){
- return i === array.length - 1;
- },
- even: function(elem, i){
- return i % 2 === 0;
- },
- odd: function(elem, i){
- return i % 2 === 1;
- },
- lt: function(elem, i, match){
- return i < match[3] - 0;
- },
- gt: function(elem, i, match){
- return i > match[3] - 0;
- },
- nth: function(elem, i, match){
- return match[3] - 0 == i;
- },
- eq: function(elem, i, match){
- return match[3] - 0 == i;
- }
- },
- filter: {
- PSEUDO: function(elem, match, i, array){
- var name = match[1], filter = Expr.filters[ name ];
-
- if ( filter ) {
- return filter( elem, i, match, array );
- } else if ( name === "contains" ) {
- return (elem.textContent || elem.innerText || "").indexOf(match[3]) >= 0;
- } else if ( name === "not" ) {
- var not = match[3];
-
- for ( var i = 0, l = not.length; i < l; i++ ) {
- if ( not[i] === elem ) {
- return false;
- }
- }
-
- return true;
- }
- },
- CHILD: function(elem, match){
- var type = match[1], node = elem;
- switch (type) {
- case 'only':
- case 'first':
- while (node = node.previousSibling) {
- if ( node.nodeType === 1 ) return false;
- }
- if ( type == 'first') return true;
- node = elem;
- case 'last':
- while (node = node.nextSibling) {
- if ( node.nodeType === 1 ) return false;
- }
- return true;
- case 'nth':
- var first = match[2], last = match[3];
-
- if ( first == 1 && last == 0 ) {
- return true;
- }
-
- var doneName = match[0],
- parent = elem.parentNode;
-
- if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) {
- var count = 0;
- for ( node = parent.firstChild; node; node = node.nextSibling ) {
- if ( node.nodeType === 1 ) {
- node.nodeIndex = ++count;
- }
- }
- parent.sizcache = doneName;
- }
-
- var diff = elem.nodeIndex - last;
- if ( first == 0 ) {
- return diff == 0;
- } else {
- return ( diff % first == 0 && diff / first >= 0 );
- }
- }
- },
- ID: function(elem, match){
- return elem.nodeType === 1 && elem.getAttribute("id") === match;
- },
- TAG: function(elem, match){
- return (match === "*" && elem.nodeType === 1) || elem.nodeName === match;
- },
- CLASS: function(elem, match){
- return (" " + (elem.className || elem.getAttribute("class")) + " ")
- .indexOf( match ) > -1;
- },
- ATTR: function(elem, match){
- var name = match[1],
- result = Expr.attrHandle[ name ] ?
- Expr.attrHandle[ name ]( elem ) :
- elem[ name ] != null ?
- elem[ name ] :
- elem.getAttribute( name ),
- value = result + "",
- type = match[2],
- check = match[4];
-
- return result == null ?
- type === "!=" :
- type === "=" ?
- value === check :
- type === "*=" ?
- value.indexOf(check) >= 0 :
- type === "~=" ?
- (" " + value + " ").indexOf(check) >= 0 :
- !check ?
- value && result !== false :
- type === "!=" ?
- value != check :
- type === "^=" ?
- value.indexOf(check) === 0 :
- type === "$=" ?
- value.substr(value.length - check.length) === check :
- type === "|=" ?
- value === check || value.substr(0, check.length + 1) === check + "-" :
- false;
- },
- POS: function(elem, match, i, array){
- var name = match[2], filter = Expr.setFilters[ name ];
-
- if ( filter ) {
- return filter( elem, i, match, array );
- }
- }
- }
-};
-
-var origPOS = Expr.match.POS;
-
-for ( var type in Expr.match ) {
- Expr.match[ type ] = RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source );
-}
-
-var makeArray = function(array, results) {
- array = Array.prototype.slice.call( array );
-
- if ( results ) {
- results.push.apply( results, array );
- return results;
- }
-
- return array;
-};
-
-// Perform a simple check to determine if the browser is capable of
-// converting a NodeList to an array using builtin methods.
-try {
- Array.prototype.slice.call( document.documentElement.childNodes );
-
-// Provide a fallback method if it does not work
-} catch(e){
- makeArray = function(array, results) {
- var ret = results || [];
-
- if ( toString.call(array) === "[object Array]" ) {
- Array.prototype.push.apply( ret, array );
- } else {
- if ( typeof array.length === "number" ) {
- for ( var i = 0, l = array.length; i < l; i++ ) {
- ret.push( array[i] );
- }
- } else {
- for ( var i = 0; array[i]; i++ ) {
- ret.push( array[i] );
- }
- }
- }
-
- return ret;
- };
-}
-
-var sortOrder;
-
-if ( document.documentElement.compareDocumentPosition ) {
- sortOrder = function( a, b ) {
- var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1;
- if ( ret === 0 ) {
- hasDuplicate = true;
- }
- return ret;
- };
-} else if ( "sourceIndex" in document.documentElement ) {
- sortOrder = function( a, b ) {
- var ret = a.sourceIndex - b.sourceIndex;
- if ( ret === 0 ) {
- hasDuplicate = true;
- }
- return ret;
- };
-} else if ( document.createRange ) {
- sortOrder = function( a, b ) {
- var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange();
- aRange.selectNode(a);
- aRange.collapse(true);
- bRange.selectNode(b);
- bRange.collapse(true);
- var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange);
- if ( ret === 0 ) {
- hasDuplicate = true;
- }
- return ret;
- };
-}
-
-// Check to see if the browser returns elements by name when
-// querying by getElementById (and provide a workaround)
-(function(){
- // We're going to inject a fake input element with a specified name
- var form = document.createElement("form"),
- id = "script" + (new Date).getTime();
- form.innerHTML = "<input name='" + id + "'/>";
-
- // Inject it into the root element, check its status, and remove it quickly
- var root = document.documentElement;
- root.insertBefore( form, root.firstChild );
-
- // The workaround has to do additional checks after a getElementById
- // Which slows things down for other browsers (hence the branching)
- if ( !!document.getElementById( id ) ) {
- Expr.find.ID = function(match, context, isXML){
- if ( typeof context.getElementById !== "undefined" && !isXML ) {
- var m = context.getElementById(match[1]);
- return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : [];
- }
- };
-
- Expr.filter.ID = function(elem, match){
- var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
- return elem.nodeType === 1 && node && node.nodeValue === match;
- };
- }
-
- root.removeChild( form );
-})();
-
-(function(){
- // Check to see if the browser returns only elements
- // when doing getElementsByTagName("*")
-
- // Create a fake element
- var div = document.createElement("div");
- div.appendChild( document.createComment("") );
-
- // Make sure no comments are found
- if ( div.getElementsByTagName("*").length > 0 ) {
- Expr.find.TAG = function(match, context){
- var results = context.getElementsByTagName(match[1]);
-
- // Filter out possible comments
- if ( match[1] === "*" ) {
- var tmp = [];
-
- for ( var i = 0; results[i]; i++ ) {
- if ( results[i].nodeType === 1 ) {
- tmp.push( results[i] );
- }
- }
-
- results = tmp;
- }
-
- return results;
- };
- }
-
- // Check to see if an attribute returns normalized href attributes
- div.innerHTML = "<a href='#'></a>";
- if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
- div.firstChild.getAttribute("href") !== "#" ) {
- Expr.attrHandle.href = function(elem){
- return elem.getAttribute("href", 2);
- };
- }
-})();
-
-if ( document.querySelectorAll ) (function(){
- var oldSizzle = Sizzle, div = document.createElement("div");
- div.innerHTML = "<p class='TEST'></p>";
-
- // Safari can't handle uppercase or unicode characters when
- // in quirks mode.
- if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
- return;
- }
-
- Sizzle = function(query, context, extra, seed){
- context = context || document;
-
- // Only use querySelectorAll on non-XML documents
- // (ID selectors don't work in non-HTML documents)
- if ( !seed && context.nodeType === 9 && !isXML(context) ) {
- try {
- return makeArray( context.querySelectorAll(query), extra );
- } catch(e){}
- }
-
- return oldSizzle(query, context, extra, seed);
- };
-
- Sizzle.find = oldSizzle.find;
- Sizzle.filter = oldSizzle.filter;
- Sizzle.selectors = oldSizzle.selectors;
- Sizzle.matches = oldSizzle.matches;
-})();
-
-if ( document.getElementsByClassName && document.documentElement.getElementsByClassName ) (function(){
- var div = document.createElement("div");
- div.innerHTML = "<div class='test e'></div><div class='test'></div>";
-
- // Opera can't find a second classname (in 9.6)
- if ( div.getElementsByClassName("e").length === 0 )
- return;
-
- // Safari caches class attributes, doesn't catch changes (in 3.2)
- div.lastChild.className = "e";
-
- if ( div.getElementsByClassName("e").length === 1 )
- return;
-
- Expr.order.splice(1, 0, "CLASS");
- Expr.find.CLASS = function(match, context, isXML) {
- if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
- return context.getElementsByClassName(match[1]);
- }
- };
-})();
-
-function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
- var sibDir = dir == "previousSibling" && !isXML;
- for ( var i = 0, l = checkSet.length; i < l; i++ ) {
- var elem = checkSet[i];
- if ( elem ) {
- if ( sibDir && elem.nodeType === 1 ){
- elem.sizcache = doneName;
- elem.sizset = i;
- }
- elem = elem[dir];
- var match = false;
-
- while ( elem ) {
- if ( elem.sizcache === doneName ) {
- match = checkSet[elem.sizset];
- break;
- }
-
- if ( elem.nodeType === 1 && !isXML ){
- elem.sizcache = doneName;
- elem.sizset = i;
- }
-
- if ( elem.nodeName === cur ) {
- match = elem;
- break;
- }
-
- elem = elem[dir];
- }
-
- checkSet[i] = match;
- }
- }
-}
-
-function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
- var sibDir = dir == "previousSibling" && !isXML;
- for ( var i = 0, l = checkSet.length; i < l; i++ ) {
- var elem = checkSet[i];
- if ( elem ) {
- if ( sibDir && elem.nodeType === 1 ) {
- elem.sizcache = doneName;
- elem.sizset = i;
- }
- elem = elem[dir];
- var match = false;
-
- while ( elem ) {
- if ( elem.sizcache === doneName ) {
- match = checkSet[elem.sizset];
- break;
- }
-
- if ( elem.nodeType === 1 ) {
- if ( !isXML ) {
- elem.sizcache = doneName;
- elem.sizset = i;
- }
- if ( typeof cur !== "string" ) {
- if ( elem === cur ) {
- match = true;
- break;
- }
-
- } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
- match = elem;
- break;
- }
- }
-
- elem = elem[dir];
- }
-
- checkSet[i] = match;
- }
- }
-}
-
-var contains = document.compareDocumentPosition ? function(a, b){
- return a.compareDocumentPosition(b) & 16;
-} : function(a, b){
- return a !== b && (a.contains ? a.contains(b) : true);
-};
-
-var isXML = function(elem){
- return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" ||
- !!elem.ownerDocument && isXML( elem.ownerDocument );
-};
-
-var posProcess = function(selector, context){
- var tmpSet = [], later = "", match,
- root = context.nodeType ? [context] : context;
-
- // Position selectors must be done after the filter
- // And so must :not(positional) so we move all PSEUDOs to the end
- while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
- later += match[0];
- selector = selector.replace( Expr.match.PSEUDO, "" );
- }
-
- selector = Expr.relative[selector] ? selector + "*" : selector;
-
- for ( var i = 0, l = root.length; i < l; i++ ) {
- Sizzle( selector, root[i], tmpSet );
- }
-
- return Sizzle.filter( later, tmpSet );
-};
-
-// EXPOSE
-jQuery.find = Sizzle;
-jQuery.filter = Sizzle.filter;
-jQuery.expr = Sizzle.selectors;
-jQuery.expr[":"] = jQuery.expr.filters;
-
-Sizzle.selectors.filters.hidden = function(elem){
- return elem.offsetWidth === 0 || elem.offsetHeight === 0;
-};
-
-Sizzle.selectors.filters.visible = function(elem){
- return elem.offsetWidth > 0 || elem.offsetHeight > 0;
-};
-
-Sizzle.selectors.filters.animated = function(elem){
- return jQuery.grep(jQuery.timers, function(fn){
- return elem === fn.elem;
- }).length;
-};
-
-jQuery.multiFilter = function( expr, elems, not ) {
- if ( not ) {
- expr = ":not(" + expr + ")";
- }
-
- return Sizzle.matches(expr, elems);
-};
-
-jQuery.dir = function( elem, dir ){
- var matched = [], cur = elem[dir];
- while ( cur && cur != document ) {
- if ( cur.nodeType == 1 )
- matched.push( cur );
- cur = cur[dir];
- }
- return matched;
-};
-
-jQuery.nth = function(cur, result, dir, elem){
- result = result || 1;
- var num = 0;
-
- for ( ; cur; cur = cur[dir] )
- if ( cur.nodeType == 1 && ++num == result )
- break;
-
- return cur;
-};
-
-jQuery.sibling = function(n, elem){
- var r = [];
-
- for ( ; n; n = n.nextSibling ) {
- if ( n.nodeType == 1 && n != elem )
- r.push( n );
- }
-
- return r;
-};
-
-return;
-
-window.Sizzle = Sizzle;
-
-})();
-/*
- * A number of helper functions used for managing events.
- * Many of the ideas behind this code originated from
- * Dean Edwards' addEvent library.
- */
-jQuery.event = {
-
- // Bind an event to an element
- // Original by Dean Edwards
- add: function(elem, types, handler, data) {
- if ( elem.nodeType == 3 || elem.nodeType == 8 )
- return;
-
- // For whatever reason, IE has trouble passing the window object
- // around, causing it to be cloned in the process
- if ( elem.setInterval && elem != window )
- elem = window;
-
- // Make sure that the function being executed has a unique ID
- if ( !handler.guid )
- handler.guid = this.guid++;
-
- // if data is passed, bind to handler
- if ( data !== undefined ) {
- // Create temporary function pointer to original handler
- var fn = handler;
-
- // Create unique handler function, wrapped around original handler
- handler = this.proxy( fn );
-
- // Store data in unique handler
- handler.data = data;
- }
-
- // Init the element's event structure
- var events = jQuery.data(elem, "events") || jQuery.data(elem, "events", {}),
- handle = jQuery.data(elem, "handle") || jQuery.data(elem, "handle", function(){
- // Handle the second event of a trigger and when
- // an event is called after a page has unloaded
- return typeof jQuery !== "undefined" && !jQuery.event.triggered ?
- jQuery.event.handle.apply(arguments.callee.elem, arguments) :
- undefined;
- });
- // Add elem as a property of the handle function
- // This is to prevent a memory leak with non-native
- // event in IE.
- handle.elem = elem;
-
- // Handle multiple events separated by a space
- // jQuery(...).bind("mouseover mouseout", fn);
- jQuery.each(types.split(/\s+/), function(index, type) {
- // Namespaced event handlers
- var namespaces = type.split(".");
- type = namespaces.shift();
- handler.type = namespaces.slice().sort().join(".");
-
- // Get the current list of functions bound to this event
- var handlers = events[type];
-
- if ( jQuery.event.specialAll[type] )
- jQuery.event.specialAll[type].setup.call(elem, data, namespaces);
-
- // Init the event handler queue
- if (!handlers) {
- handlers = events[type] = {};
-
- // Check for a special event handler
- // Only use addEventListener/attachEvent if the special
- // events handler returns false
- if ( !jQuery.event.special[type] || jQuery.event.special[type].setup.call(elem, data, namespaces) === false ) {
- // Bind the global event handler to the element
- if (elem.addEventListener)
- elem.addEventListener(type, handle, false);
- else if (elem.attachEvent)
- elem.attachEvent("on" + type, handle);
- }
- }
-
- // Add the function to the element's handler list
- handlers[handler.guid] = handler;
-
- // Keep track of which events have been used, for global triggering
- jQuery.event.global[type] = true;
- });
-
- // Nullify elem to prevent memory leaks in IE
- elem = null;
- },
-
- guid: 1,
- global: {},
-
- // Detach an event or set of events from an element
- remove: function(elem, types, handler) {
- // don't do events on text and comment nodes
- if ( elem.nodeType == 3 || elem.nodeType == 8 )
- return;
-
- var events = jQuery.data(elem, "events"), ret, index;
-
- if ( events ) {
- // Unbind all events for the element
- if ( types === undefined || (typeof types === "string" && types.charAt(0) == ".") )
- for ( var type in events )
- this.remove( elem, type + (types || "") );
- else {
- // types is actually an event object here
- if ( types.type ) {
- handler = types.handler;
- types = types.type;
- }
-
- // Handle multiple events seperated by a space
- // jQuery(...).unbind("mouseover mouseout", fn);
- jQuery.each(types.split(/\s+/), function(index, type){
- // Namespaced event handlers
- var namespaces = type.split(".");
- type = namespaces.shift();
- var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)");
-
- if ( events[type] ) {
- // remove the given handler for the given type
- if ( handler )
- delete events[type][handler.guid];
-
- // remove all handlers for the given type
- else
- for ( var handle in events[type] )
- // Handle the removal of namespaced events
- if ( namespace.test(events[type][handle].type) )
- delete events[type][handle];
-
- if ( jQuery.event.specialAll[type] )
- jQuery.event.specialAll[type].teardown.call(elem, namespaces);
-
- // remove generic event handler if no more handlers exist
- for ( ret in events[type] ) break;
- if ( !ret ) {
- if ( !jQuery.event.special[type] || jQuery.event.special[type].teardown.call(elem, namespaces) === false ) {
- if (elem.removeEventListener)
- elem.removeEventListener(type, jQuery.data(elem, "handle"), false);
- else if (elem.detachEvent)
- elem.detachEvent("on" + type, jQuery.data(elem, "handle"));
- }
- ret = null;
- delete events[type];
- }
- }
- });
- }
-
- // Remove the expando if it's no longer used
- for ( ret in events ) break;
- if ( !ret ) {
- var handle = jQuery.data( elem, "handle" );
- if ( handle ) handle.elem = null;
- jQuery.removeData( elem, "events" );
- jQuery.removeData( elem, "handle" );
- }
- }
- },
-
- // bubbling is internal
- trigger: function( event, data, elem, bubbling ) {
- // Event object or event type
- var type = event.type || event;
-
- if( !bubbling ){
- event = typeof event === "object" ?
- // jQuery.Event object
- event[expando] ? event :
- // Object literal
- jQuery.extend( jQuery.Event(type), event ) :
- // Just the event type (string)
- jQuery.Event(type);
-
- if ( type.indexOf("!") >= 0 ) {
- event.type = type = type.slice(0, -1);
- event.exclusive = true;
- }
-
- // Handle a global trigger
- if ( !elem ) {
- // Don't bubble custom events when global (to avoid too much overhead)
- event.stopPropagation();
- // Only trigger if we've ever bound an event for it
- if ( this.global[type] )
- jQuery.each( jQuery.cache, function(){
- if ( this.events && this.events[type] )
- jQuery.event.trigger( event, data, this.handle.elem );
- });
- }
-
- // Handle triggering a single element
-
- // don't do events on text and comment nodes
- if ( !elem || elem.nodeType == 3 || elem.nodeType == 8 )
- return undefined;
-
- // Clean up in case it is reused
- event.result = undefined;
- event.target = elem;
-
- // Clone the incoming data, if any
- data = jQuery.makeArray(data);
- data.unshift( event );
- }
-
- event.currentTarget = elem;
-
- // Trigger the event, it is assumed that "handle" is a function
- var handle = jQuery.data(elem, "handle");
- if ( handle )
- handle.apply( elem, data );
-
- // Handle triggering native .onfoo handlers (and on links since we don't call .click() for links)
- if ( (!elem[type] || (jQuery.nodeName(elem, 'a') && type == "click")) && elem["on"+type] && elem["on"+type].apply( elem, data ) === false )
- event.result = false;
-
- // Trigger the native events (except for clicks on links)
- if ( !bubbling && elem[type] && !event.isDefaultPrevented() && !(jQuery.nodeName(elem, 'a') && type == "click") ) {
- this.triggered = true;
- try {
- elem[ type ]();
- // prevent IE from throwing an error for some hidden elements
- } catch (e) {}
- }
-
- this.triggered = false;
-
- if ( !event.isPropagationStopped() ) {
- var parent = elem.parentNode || elem.ownerDocument;
- if ( parent )
- jQuery.event.trigger(event, data, parent, true);
- }
- },
-
- handle: function(event) {
- // returned undefined or false
- var all, handlers;
-
- event = arguments[0] = jQuery.event.fix( event || window.event );
- event.currentTarget = this;
-
- // Namespaced event handlers
- var namespaces = event.type.split(".");
- event.type = namespaces.shift();
-
- // Cache this now, all = true means, any handler
- all = !namespaces.length && !event.exclusive;
-
- var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)");
-
- handlers = ( jQuery.data(this, "events") || {} )[event.type];
-
- for ( var j in handlers ) {
- var handler = handlers[j];
-
- // Filter the functions by class
- if ( all || namespace.test(handler.type) ) {
- // Pass in a reference to the handler function itself
- // So that we can later remove it
- event.handler = handler;
- event.data = handler.data;
-
- var ret = handler.apply(this, arguments);
-
- if( ret !== undefined ){
- event.result = ret;
- if ( ret === false ) {
- event.preventDefault();
- event.stopPropagation();
- }
- }
-
- if( event.isImmediatePropagationStopped() )
- break;
-
- }
- }
- },
-
- props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
-
- fix: function(event) {
- if ( event[expando] )
- return event;
-
- // store a copy of the original event object
- // and "clone" to set read-only properties
- var originalEvent = event;
- event = jQuery.Event( originalEvent );
-
- for ( var i = this.props.length, prop; i; ){
- prop = this.props[ --i ];
- event[ prop ] = originalEvent[ prop ];
- }
-
- // Fix target property, if necessary
- if ( !event.target )
- event.target = event.srcElement || document; // Fixes #1925 where srcElement might not be defined either
-
- // check if target is a textnode (safari)
- if ( event.target.nodeType == 3 )
- event.target = event.target.parentNode;
-
- // Add relatedTarget, if necessary
- if ( !event.relatedTarget && event.fromElement )
- event.relatedTarget = event.fromElement == event.target ? event.toElement : event.fromElement;
-
- // Calculate pageX/Y if missing and clientX/Y available
- if ( event.pageX == null && event.clientX != null ) {
- var doc = document.documentElement, body = document.body;
- event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0);
- event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0);
- }
-
- // Add which for key events
- if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) )
- event.which = event.charCode || event.keyCode;
-
- // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
- if ( !event.metaKey && event.ctrlKey )
- event.metaKey = event.ctrlKey;
-
- // Add which for click: 1 == left; 2 == middle; 3 == right
- // Note: button is not normalized, so don't use it
- if ( !event.which && event.button )
- event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
-
- return event;
- },
-
- proxy: function( fn, proxy ){
- proxy = proxy || function(){ return fn.apply(this, arguments); };
- // Set the guid of unique handler to the same of original handler, so it can be removed
- proxy.guid = fn.guid = fn.guid || proxy.guid || this.guid++;
- // So proxy can be declared as an argument
- return proxy;
- },
-
- special: {
- ready: {
- // Make sure the ready event is setup
- setup: bindReady,
- teardown: function() {}
- }
- },
-
- specialAll: {
- live: {
- setup: function( selector, namespaces ){
- jQuery.event.add( this, namespaces[0], liveHandler );
- },
- teardown: function( namespaces ){
- if ( namespaces.length ) {
- var remove = 0, name = RegExp("(^|\\.)" + namespaces[0] + "(\\.|$)");
-
- jQuery.each( (jQuery.data(this, "events").live || {}), function(){
- if ( name.test(this.type) )
- remove++;
- });
-
- if ( remove < 1 )
- jQuery.event.remove( this, namespaces[0], liveHandler );
- }
- }
- }
- }
-};
-
-jQuery.Event = function( src ){
- // Allow instantiation without the 'new' keyword
- if( !this.preventDefault )
- return new jQuery.Event(src);
-
- // Event object
- if( src && src.type ){
- this.originalEvent = src;
- this.type = src.type;
- // Event type
- }else
- this.type = src;
-
- // timeStamp is buggy for some events on Firefox(#3843)
- // So we won't rely on the native value
- this.timeStamp = now();
-
- // Mark it as fixed
- this[expando] = true;
-};
-
-function returnFalse(){
- return false;
-}
-function returnTrue(){
- return true;
-}
-
-// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
-// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
-jQuery.Event.prototype = {
- preventDefault: function() {
- this.isDefaultPrevented = returnTrue;
-
- var e = this.originalEvent;
- if( !e )
- return;
- // if preventDefault exists run it on the original event
- if (e.preventDefault)
- e.preventDefault();
- // otherwise set the returnValue property of the original event to false (IE)
- e.returnValue = false;
- },
- stopPropagation: function() {
- this.isPropagationStopped = returnTrue;
-
- var e = this.originalEvent;
- if( !e )
- return;
- // if stopPropagation exists run it on the original event
- if (e.stopPropagation)
- e.stopPropagation();
- // otherwise set the cancelBubble property of the original event to true (IE)
- e.cancelBubble = true;
- },
- stopImmediatePropagation:function(){
- this.isImmediatePropagationStopped = returnTrue;
- this.stopPropagation();
- },
- isDefaultPrevented: returnFalse,
- isPropagationStopped: returnFalse,
- isImmediatePropagationStopped: returnFalse
-};
-// Checks if an event happened on an element within another element
-// Used in jQuery.event.special.mouseenter and mouseleave handlers
-var withinElement = function(event) {
- // Check if mouse(over|out) are still within the same parent element
- var parent = event.relatedTarget;
- // Traverse up the tree
- while ( parent && parent != this )
- try { parent = parent.parentNode; }
- catch(e) { parent = this; }
-
- if( parent != this ){
- // set the correct event type
- event.type = event.data;
- // handle event if we actually just moused on to a non sub-element
- jQuery.event.handle.apply( this, arguments );
- }
-};
-
-jQuery.each({
- mouseover: 'mouseenter',
- mouseout: 'mouseleave'
-}, function( orig, fix ){
- jQuery.event.special[ fix ] = {
- setup: function(){
- jQuery.event.add( this, orig, withinElement, fix );
- },
- teardown: function(){
- jQuery.event.remove( this, orig, withinElement );
- }
- };
-});
-
-jQuery.fn.extend({
- bind: function( type, data, fn ) {
- return type == "unload" ? this.one(type, data, fn) : this.each(function(){
- jQuery.event.add( this, type, fn || data, fn && data );
- });
- },
-
- one: function( type, data, fn ) {
- var one = jQuery.event.proxy( fn || data, function(event) {
- jQuery(this).unbind(event, one);
- return (fn || data).apply( this, arguments );
- });
- return this.each(function(){
- jQuery.event.add( this, type, one, fn && data);
- });
- },
-
- unbind: function( type, fn ) {
- return this.each(function(){
- jQuery.event.remove( this, type, fn );
- });
- },
-
- trigger: function( type, data ) {
- return this.each(function(){
- jQuery.event.trigger( type, data, this );
- });
- },
-
- triggerHandler: function( type, data ) {
- if( this[0] ){
- var event = jQuery.Event(type);
- event.preventDefault();
- event.stopPropagation();
- jQuery.event.trigger( event, data, this[0] );
- return event.result;
- }
- },
-
- toggle: function( fn ) {
- // Save reference to arguments for access in closure
- var args = arguments, i = 1;
-
- // link all the functions, so any of them can unbind this click handler
- while( i < args.length )
- jQuery.event.proxy( fn, args[i++] );
-
- return this.click( jQuery.event.proxy( fn, function(event) {
- // Figure out which function to execute
- this.lastToggle = ( this.lastToggle || 0 ) % i;
-
- // Make sure that clicks stop
- event.preventDefault();
-
- // and execute the function
- return args[ this.lastToggle++ ].apply( this, arguments ) || false;
- }));
- },
-
- hover: function(fnOver, fnOut) {
- return this.mouseenter(fnOver).mouseleave(fnOut);
- },
-
- ready: function(fn) {
- // Attach the listeners
- bindReady();
-
- // If the DOM is already ready
- if ( jQuery.isReady )
- // Execute the function immediately
- fn.call( document, jQuery );
-
- // Otherwise, remember the function for later
- else
- // Add the function to the wait list
- jQuery.readyList.push( fn );
-
- return this;
- },
-
- live: function( type, fn ){
- var proxy = jQuery.event.proxy( fn );
- proxy.guid += this.selector + type;
-
- jQuery(document).bind( liveConvert(type, this.selector), this.selector, proxy );
-
- return this;
- },
-
- die: function( type, fn ){
- jQuery(document).unbind( liveConvert(type, this.selector), fn ? { guid: fn.guid + this.selector + type } : null );
- return this;
- }
-});
-
-function liveHandler( event ){
- var check = RegExp("(^|\\.)" + event.type + "(\\.|$)"),
- stop = true,
- elems = [];
-
- jQuery.each(jQuery.data(this, "events").live || [], function(i, fn){
- if ( check.test(fn.type) ) {
- var elem = jQuery(event.target).closest(fn.data)[0];
- if ( elem )
- elems.push({ elem: elem, fn: fn });
- }
- });
-
- elems.sort(function(a,b) {
- return jQuery.data(a.elem, "closest") - jQuery.data(b.elem, "closest");
- });
-
- jQuery.each(elems, function(){
- if ( this.fn.call(this.elem, event, this.fn.data) === false )
- return (stop = false);
- });
-
- return stop;
-}
-
-function liveConvert(type, selector){
- return ["live", type, selector.replace(/\./g, "`").replace(/ /g, "|")].join(".");
-}
-
-jQuery.extend({
- isReady: false,
- readyList: [],
- // Handle when the DOM is ready
- ready: function() {
- // Make sure that the DOM is not already loaded
- if ( !jQuery.isReady ) {
- // Remember that the DOM is ready
- jQuery.isReady = true;
-
- // If there are functions bound, to execute
- if ( jQuery.readyList ) {
- // Execute all of them
- jQuery.each( jQuery.readyList, function(){
- this.call( document, jQuery );
- });
-
- // Reset the list of functions
- jQuery.readyList = null;
- }
-
- // Trigger any bound ready events
- jQuery(document).triggerHandler("ready");
- }
- }
-});
-
-var readyBound = false;
-
-function bindReady(){
- if ( readyBound ) return;
- readyBound = true;
-
- // Mozilla, Opera and webkit nightlies currently support this event
- if ( document.addEventListener ) {
- // Use the handy event callback
- document.addEventListener( "DOMContentLoaded", function(){
- document.removeEventListener( "DOMContentLoaded", arguments.callee, false );
- jQuery.ready();
- }, false );
-
- // If IE event model is used
- } else if ( document.attachEvent ) {
- // ensure firing before onload,
- // maybe late but safe also for iframes
- document.attachEvent("onreadystatechange", function(){
- if ( document.readyState === "complete" ) {
- document.detachEvent( "onreadystatechange", arguments.callee );
- jQuery.ready();
- }
- });
-
- // If IE and not an iframe
- // continually check to see if the document is ready
- if ( document.documentElement.doScroll && window == window.top ) (function(){
- if ( jQuery.isReady ) return;
-
- try {
- // If IE is used, use the trick by Diego Perini
- // http://javascript.nwbox.com/IEContentLoaded/
- document.documentElement.doScroll("left");
- } catch( error ) {
- setTimeout( arguments.callee, 0 );
- return;
- }
-
- // and execute any waiting functions
- jQuery.ready();
- })();
- }
-
- // A fallback to window.onload, that will always work
- jQuery.event.add( window, "load", jQuery.ready );
-}
-
-jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
- "mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave," +
- "change,select,submit,keydown,keypress,keyup,error").split(","), function(i, name){
-
- // Handle event binding
- jQuery.fn[name] = function(fn){
- return fn ? this.bind(name, fn) : this.trigger(name);
- };
-});
-
-// Prevent memory leaks in IE
-// And prevent errors on refresh with events like mouseover in other browsers
-// Window isn't included so as not to unbind existing unload events
-jQuery( window ).bind( 'unload', function(){
- for ( var id in jQuery.cache )
- // Skip the window
- if ( id != 1 && jQuery.cache[ id ].handle )
- jQuery.event.remove( jQuery.cache[ id ].handle.elem );
-});
-(function(){
-
- jQuery.support = {};
-
- var root = document.documentElement,
- script = document.createElement("script"),
- div = document.createElement("div"),
- id = "script" + (new Date).getTime();
-
- div.style.display = "none";
- div.innerHTML = ' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';
-
- var all = div.getElementsByTagName("*"),
- a = div.getElementsByTagName("a")[0];
-
- // Can't get basic test support
- if ( !all || !all.length || !a ) {
- return;
- }
-
- jQuery.support = {
- // IE strips leading whitespace when .innerHTML is used
- leadingWhitespace: div.firstChild.nodeType == 3,
-
- // Make sure that tbody elements aren't automatically inserted
- // IE will insert them into empty tables
- tbody: !div.getElementsByTagName("tbody").length,
-
- // Make sure that you can get all elements in an <object> element
- // IE 7 always returns no results
- objectAll: !!div.getElementsByTagName("object")[0]
- .getElementsByTagName("*").length,
-
- // Make sure that link elements get serialized correctly by innerHTML
- // This requires a wrapper element in IE
- htmlSerialize: !!div.getElementsByTagName("link").length,
-
- // Get the style information from getAttribute
- // (IE uses .cssText insted)
- style: /red/.test( a.getAttribute("style") ),
-
- // Make sure that URLs aren't manipulated
- // (IE normalizes it by default)
- hrefNormalized: a.getAttribute("href") === "/a",
-
- // Make sure that element opacity exists
- // (IE uses filter instead)
- opacity: a.style.opacity === "0.5",
-
- // Verify style float existence
- // (IE uses styleFloat instead of cssFloat)
- cssFloat: !!a.style.cssFloat,
-
- // Will be defined later
- scriptEval: false,
- noCloneEvent: true,
- boxModel: null
- };
-
- script.type = "text/javascript";
- try {
- script.appendChild( document.createTextNode( "window." + id + "=1;" ) );
- } catch(e){}
-
- root.insertBefore( script, root.firstChild );
-
- // Make sure that the execution of code works by injecting a script
- // tag with appendChild/createTextNode
- // (IE doesn't support this, fails, and uses .text instead)
- if ( window[ id ] ) {
- jQuery.support.scriptEval = true;
- delete window[ id ];
- }
-
- root.removeChild( script );
-
- if ( div.attachEvent && div.fireEvent ) {
- div.attachEvent("onclick", function(){
- // Cloning a node shouldn't copy over any
- // bound event handlers (IE does this)
- jQuery.support.noCloneEvent = false;
- div.detachEvent("onclick", arguments.callee);
- });
- div.cloneNode(true).fireEvent("onclick");
- }
-
- // Figure out if the W3C box model works as expected
- // document.body must exist before we can do this
- jQuery(function(){
- var div = document.createElement("div");
- div.style.width = div.style.paddingLeft = "1px";
-
- document.body.appendChild( div );
- jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2;
- document.body.removeChild( div ).style.display = 'none';
- });
-})();
-
-var styleFloat = jQuery.support.cssFloat ? "cssFloat" : "styleFloat";
-
-jQuery.props = {
- "for": "htmlFor",
- "class": "className",
- "float": styleFloat,
- cssFloat: styleFloat,
- styleFloat: styleFloat,
- readonly: "readOnly",
- maxlength: "maxLength",
- cellspacing: "cellSpacing",
- rowspan: "rowSpan",
- tabindex: "tabIndex"
-};
-jQuery.fn.extend({
- // Keep a copy of the old load
- _load: jQuery.fn.load,
-
- load: function( url, params, callback ) {
- if ( typeof url !== "string" )
- return this._load( url );
-
- var off = url.indexOf(" ");
- if ( off >= 0 ) {
- var selector = url.slice(off, url.length);
- url = url.slice(0, off);
- }
-
- // Default to a GET request
- var type = "GET";
-
- // If the second parameter was provided
- if ( params )
- // If it's a function
- if ( jQuery.isFunction( params ) ) {
- // We assume that it's the callback
- callback = params;
- params = null;
-
- // Otherwise, build a param string
- } else if( typeof params === "object" ) {
- params = jQuery.param( params );
- type = "POST";
- }
-
- var self = this;
-
- // Request the remote document
- jQuery.ajax({
- url: url,
- type: type,
- dataType: "html",
- data: params,
- complete: function(res, status){
- // If successful, inject the HTML into all the matched elements
- if ( status == "success" || status == "notmodified" )
- // See if a selector was specified
- self.html( selector ?
- // Create a dummy div to hold the results
- jQuery("<div/>")
- // inject the contents of the document in, removing the scripts
- // to avoid any 'Permission Denied' errors in IE
- .append(res.responseText.replace(/<script(.|\s)*?\/script>/g, ""))
-
- // Locate the specified elements
- .find(selector) :
-
- // If not, just inject the full result
- res.responseText );
-
- if( callback )
- self.each( callback, [res.responseText, status, res] );
- }
- });
- return this;
- },
-
- serialize: function() {
- return jQuery.param(this.serializeArray());
- },
- serializeArray: function() {
- return this.map(function(){
- return this.elements ? jQuery.makeArray(this.elements) : this;
- })
- .filter(function(){
- return this.name && !this.disabled &&
- (this.checked || /select|textarea/i.test(this.nodeName) ||
- /text|hidden|password|search/i.test(this.type));
- })
- .map(function(i, elem){
- var val = jQuery(this).val();
- return val == null ? null :
- jQuery.isArray(val) ?
- jQuery.map( val, function(val, i){
- return {name: elem.name, value: val};
- }) :
- {name: elem.name, value: val};
- }).get();
- }
-});
-
-// Attach a bunch of functions for handling common AJAX events
-jQuery.each( "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function(i,o){
- jQuery.fn[o] = function(f){
- return this.bind(o, f);
- };
-});
-
-var jsc = now();
-
-jQuery.extend({
-
- get: function( url, data, callback, type ) {
- // shift arguments if data argument was ommited
- if ( jQuery.isFunction( data ) ) {
- callback = data;
- data = null;
- }
-
- return jQuery.ajax({
- type: "GET",
- url: url,
- data: data,
- success: callback,
- dataType: type
- });
- },
-
- getScript: function( url, callback ) {
- return jQuery.get(url, null, callback, "script");
- },
-
- getJSON: function( url, data, callback ) {
- return jQuery.get(url, data, callback, "json");
- },
-
- post: function( url, data, callback, type ) {
- if ( jQuery.isFunction( data ) ) {
- callback = data;
- data = {};
- }
-
- return jQuery.ajax({
- type: "POST",
- url: url,
- data: data,
- success: callback,
- dataType: type
- });
- },
-
- ajaxSetup: function( settings ) {
- jQuery.extend( jQuery.ajaxSettings, settings );
- },
-
- ajaxSettings: {
- url: location.href,
- global: true,
- type: "GET",
- contentType: "application/x-www-form-urlencoded",
- processData: true,
- async: true,
- /*
- timeout: 0,
- data: null,
- username: null,
- password: null,
- */
- // Create the request object; Microsoft failed to properly
- // implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available
- // This function can be overriden by calling jQuery.ajaxSetup
- xhr:function(){
- return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
- },
- accepts: {
- xml: "application/xml, text/xml",
- html: "text/html",
- script: "text/javascript, application/javascript",
- json: "application/json, text/javascript",
- text: "text/plain",
- _default: "*/*"
- }
- },
-
- // Last-Modified header cache for next request
- lastModified: {},
-
- ajax: function( s ) {
- // Extend the settings, but re-extend 's' so that it can be
- // checked again later (in the test suite, specifically)
- s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s));
-
- var jsonp, jsre = /=\?(&|$)/g, status, data,
- type = s.type.toUpperCase();
-
- // convert data if not already a string
- if ( s.data && s.processData && typeof s.data !== "string" )
- s.data = jQuery.param(s.data);
-
- // Handle JSONP Parameter Callbacks
- if ( s.dataType == "jsonp" ) {
- if ( type == "GET" ) {
- if ( !s.url.match(jsre) )
- s.url += (s.url.match(/\?/) ? "&" : "?") + (s.jsonp || "callback") + "=?";
- } else if ( !s.data || !s.data.match(jsre) )
- s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?";
- s.dataType = "json";
- }
-
- // Build temporary JSONP function
- if ( s.dataType == "json" && (s.data && s.data.match(jsre) || s.url.match(jsre)) ) {
- jsonp = "jsonp" + jsc++;
-
- // Replace the =? sequence both in the query string and the data
- if ( s.data )
- s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1");
- s.url = s.url.replace(jsre, "=" + jsonp + "$1");
-
- // We need to make sure
- // that a JSONP style response is executed properly
- s.dataType = "script";
-
- // Handle JSONP-style loading
- window[ jsonp ] = function(tmp){
- data = tmp;
- success();
- complete();
- // Garbage collect
- window[ jsonp ] = undefined;
- try{ delete window[ jsonp ]; } catch(e){}
- if ( head )
- head.removeChild( script );
- };
- }
-
- if ( s.dataType == "script" && s.cache == null )
- s.cache = false;
-
- if ( s.cache === false && type == "GET" ) {
- var ts = now();
- // try replacing _= if it is there
- var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2");
- // if nothing was replaced, add timestamp to the end
- s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + ts : "");
- }
-
- // If data is available, append data to url for get requests
- if ( s.data && type == "GET" ) {
- s.url += (s.url.match(/\?/) ? "&" : "?") + s.data;
-
- // IE likes to send both get and post data, prevent this
- s.data = null;
- }
-
- // Watch for a new set of requests
- if ( s.global && ! jQuery.active++ )
- jQuery.event.trigger( "ajaxStart" );
-
- // Matches an absolute URL, and saves the domain
- var parts = /^(\w+:)?\/\/([^\/?#]+)/.exec( s.url );
-
- // If we're requesting a remote document
- // and trying to load JSON or Script with a GET
- if ( s.dataType == "script" && type == "GET" && parts
- && ( parts[1] && parts[1] != location.protocol || parts[2] != location.host )){
-
- var head = document.getElementsByTagName("head")[0];
- var script = document.createElement("script");
- script.src = s.url;
- if (s.scriptCharset)
- script.charset = s.scriptCharset;
-
- // Handle Script loading
- if ( !jsonp ) {
- var done = false;
-
- // Attach handlers for all browsers
- script.onload = script.onreadystatechange = function(){
- if ( !done && (!this.readyState ||
- this.readyState == "loaded" || this.readyState == "complete") ) {
- done = true;
- success();
- complete();
-
- // Handle memory leak in IE
- script.onload = script.onreadystatechange = null;
- head.removeChild( script );
- }
- };
- }
-
- head.appendChild(script);
-
- // We handle everything using the script element injection
- return undefined;
- }
-
- var requestDone = false;
-
- // Create the request object
- var xhr = s.xhr();
-
- // Open the socket
- // Passing null username, generates a login popup on Opera (#2865)
- if( s.username )
- xhr.open(type, s.url, s.async, s.username, s.password);
- else
- xhr.open(type, s.url, s.async);
-
- // Need an extra try/catch for cross domain requests in Firefox 3
- try {
- // Set the correct header, if data is being sent
- if ( s.data )
- xhr.setRequestHeader("Content-Type", s.contentType);
-
- // Set the If-Modified-Since header, if ifModified mode.
- if ( s.ifModified )
- xhr.setRequestHeader("If-Modified-Since",
- jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT" );
-
- // Set header so the called script knows that it's an XMLHttpRequest
- xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
-
- // Set the Accepts header for the server, depending on the dataType
- xhr.setRequestHeader("Accept", s.dataType && s.accepts[ s.dataType ] ?
- s.accepts[ s.dataType ] + ", */*" :
- s.accepts._default );
- } catch(e){}
-
- // Allow custom headers/mimetypes and early abort
- if ( s.beforeSend && s.beforeSend(xhr, s) === false ) {
- // Handle the global AJAX counter
- if ( s.global && ! --jQuery.active )
- jQuery.event.trigger( "ajaxStop" );
- // close opended socket
- xhr.abort();
- return false;
- }
-
- if ( s.global )
- jQuery.event.trigger("ajaxSend", [xhr, s]);
-
- // Wait for a response to come back
- var onreadystatechange = function(isTimeout){
- // The request was aborted, clear the interval and decrement jQuery.active
- if (xhr.readyState == 0) {
- if (ival) {
- // clear poll interval
- clearInterval(ival);
- ival = null;
- // Handle the global AJAX counter
- if ( s.global && ! --jQuery.active )
- jQuery.event.trigger( "ajaxStop" );
- }
- // The transfer is complete and the data is available, or the request timed out
- } else if ( !requestDone && xhr && (xhr.readyState == 4 || isTimeout == "timeout") ) {
- requestDone = true;
-
- // clear poll interval
- if (ival) {
- clearInterval(ival);
- ival = null;
- }
-
- status = isTimeout == "timeout" ? "timeout" :
- !jQuery.httpSuccess( xhr ) ? "error" :
- s.ifModified && jQuery.httpNotModified( xhr, s.url ) ? "notmodified" :
- "success";
-
- if ( status == "success" ) {
- // Watch for, and catch, XML document parse errors
- try {
- // process the data (runs the xml through httpData regardless of callback)
- data = jQuery.httpData( xhr, s.dataType, s );
- } catch(e) {
- status = "parsererror";
- }
- }
-
- // Make sure that the request was successful or notmodified
- if ( status == "success" ) {
- // Cache Last-Modified header, if ifModified mode.
- var modRes;
- try {
- modRes = xhr.getResponseHeader("Last-Modified");
- } catch(e) {} // swallow exception thrown by FF if header is not available
-
- if ( s.ifModified && modRes )
- jQuery.lastModified[s.url] = modRes;
-
- // JSONP handles its own success callback
- if ( !jsonp )
- success();
- } else
- jQuery.handleError(s, xhr, status);
-
- // Fire the complete handlers
- complete();
-
- if ( isTimeout )
- xhr.abort();
-
- // Stop memory leaks
- if ( s.async )
- xhr = null;
- }
- };
-
- if ( s.async ) {
- // don't attach the handler to the request, just poll it instead
- var ival = setInterval(onreadystatechange, 13);
-
- // Timeout checker
- if ( s.timeout > 0 )
- setTimeout(function(){
- // Check to see if the request is still happening
- if ( xhr && !requestDone )
- onreadystatechange( "timeout" );
- }, s.timeout);
- }
-
- // Send the data
- try {
- xhr.send(s.data);
- } catch(e) {
- jQuery.handleError(s, xhr, null, e);
- }
-
- // firefox 1.5 doesn't fire statechange for sync requests
- if ( !s.async )
- onreadystatechange();
-
- function success(){
- // If a local callback was specified, fire it and pass it the data
- if ( s.success )
- s.success( data, status );
-
- // Fire the global callback
- if ( s.global )
- jQuery.event.trigger( "ajaxSuccess", [xhr, s] );
- }
-
- function complete(){
- // Process result
- if ( s.complete )
- s.complete(xhr, status);
-
- // The request was completed
- if ( s.global )
- jQuery.event.trigger( "ajaxComplete", [xhr, s] );
-
- // Handle the global AJAX counter
- if ( s.global && ! --jQuery.active )
- jQuery.event.trigger( "ajaxStop" );
- }
-
- // return XMLHttpRequest to allow aborting the request etc.
- return xhr;
- },
-
- handleError: function( s, xhr, status, e ) {
- // If a local callback was specified, fire it
- if ( s.error ) s.error( xhr, status, e );
-
- // Fire the global callback
- if ( s.global )
- jQuery.event.trigger( "ajaxError", [xhr, s, e] );
- },
-
- // Counter for holding the number of active queries
- active: 0,
-
- // Determines if an XMLHttpRequest was successful or not
- httpSuccess: function( xhr ) {
- try {
- // IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450
- return !xhr.status && location.protocol == "file:" ||
- ( xhr.status >= 200 && xhr.status < 300 ) || xhr.status == 304 || xhr.status == 1223;
- } catch(e){}
- return false;
- },
-
- // Determines if an XMLHttpRequest returns NotModified
- httpNotModified: function( xhr, url ) {
- try {
- var xhrRes = xhr.getResponseHeader("Last-Modified");
-
- // Firefox always returns 200. check Last-Modified date
- return xhr.status == 304 || xhrRes == jQuery.lastModified[url];
- } catch(e){}
- return false;
- },
-
- httpData: function( xhr, type, s ) {
- var ct = xhr.getResponseHeader("content-type"),
- xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0,
- data = xml ? xhr.responseXML : xhr.responseText;
-
- if ( xml && data.documentElement.tagName == "parsererror" )
- throw "parsererror";
-
- // Allow a pre-filtering function to sanitize the response
- // s != null is checked to keep backwards compatibility
- if( s && s.dataFilter )
- data = s.dataFilter( data, type );
-
- // The filter can actually parse the response
- if( typeof data === "string" ){
-
- // If the type is "script", eval it in global context
- if ( type == "script" )
- jQuery.globalEval( data );
-
- // Get the JavaScript object, if JSON is used.
- if ( type == "json" )
- data = window["eval"]("(" + data + ")");
- }
-
- return data;
- },
-
- // Serialize an array of form elements or a set of
- // key/values into a query string
- param: function( a ) {
- var s = [ ];
-
- function add( key, value ){
- s[ s.length ] = encodeURIComponent(key) + '=' + encodeURIComponent(value);
- };
-
- // If an array was passed in, assume that it is an array
- // of form elements
- if ( jQuery.isArray(a) || a.jquery )
- // Serialize the form elements
- jQuery.each( a, function(){
- add( this.name, this.value );
- });
-
- // Otherwise, assume that it's an object of key/value pairs
- else
- // Serialize the key/values
- for ( var j in a )
- // If the value is an array then the key names need to be repeated
- if ( jQuery.isArray(a[j]) )
- jQuery.each( a[j], function(){
- add( j, this );
- });
- else
- add( j, jQuery.isFunction(a[j]) ? a[j]() : a[j] );
-
- // Return the resulting serialization
- return s.join("&").replace(/%20/g, "+");
- }
-
-});
-var elemdisplay = {},
- timerId,
- fxAttrs = [
- // height animations
- [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
- // width animations
- [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
- // opacity animations
- [ "opacity" ]
- ];
-
-function genFx( type, num ){
- var obj = {};
- jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function(){
- obj[ this ] = type;
- });
- return obj;
-}
-
-jQuery.fn.extend({
- show: function(speed,callback){
- if ( speed ) {
- return this.animate( genFx("show", 3), speed, callback);
- } else {
- for ( var i = 0, l = this.length; i < l; i++ ){
- var old = jQuery.data(this[i], "olddisplay");
-
- this[i].style.display = old || "";
-
- if ( jQuery.css(this[i], "display") === "none" ) {
- var tagName = this[i].tagName, display;
-
- if ( elemdisplay[ tagName ] ) {
- display = elemdisplay[ tagName ];
- } else {
- var elem = jQuery("<" + tagName + " />").appendTo("body");
-
- display = elem.css("display");
- if ( display === "none" )
- display = "block";
-
- elem.remove();
-
- elemdisplay[ tagName ] = display;
- }
-
- jQuery.data(this[i], "olddisplay", display);
- }
- }
-
- // Set the display of the elements in a second loop
- // to avoid the constant reflow
- for ( var i = 0, l = this.length; i < l; i++ ){
- this[i].style.display = jQuery.data(this[i], "olddisplay") || "";
- }
-
- return this;
- }
- },
-
- hide: function(speed,callback){
- if ( speed ) {
- return this.animate( genFx("hide", 3), speed, callback);
- } else {
- for ( var i = 0, l = this.length; i < l; i++ ){
- var old = jQuery.data(this[i], "olddisplay");
- if ( !old && old !== "none" )
- jQuery.data(this[i], "olddisplay", jQuery.css(this[i], "display"));
- }
-
- // Set the display of the elements in a second loop
- // to avoid the constant reflow
- for ( var i = 0, l = this.length; i < l; i++ ){
- this[i].style.display = "none";
- }
-
- return this;
- }
- },
-
- // Save the old toggle function
- _toggle: jQuery.fn.toggle,
-
- toggle: function( fn, fn2 ){
- var bool = typeof fn === "boolean";
-
- return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ?
- this._toggle.apply( this, arguments ) :
- fn == null || bool ?
- this.each(function(){
- var state = bool ? fn : jQuery(this).is(":hidden");
- jQuery(this)[ state ? "show" : "hide" ]();
- }) :
- this.animate(genFx("toggle", 3), fn, fn2);
- },
-
- fadeTo: function(speed,to,callback){
- return this.animate({opacity: to}, speed, callback);
- },
-
- animate: function( prop, speed, easing, callback ) {
- var optall = jQuery.speed(speed, easing, callback);
-
- return this[ optall.queue === false ? "each" : "queue" ](function(){
-
- var opt = jQuery.extend({}, optall), p,
- hidden = this.nodeType == 1 && jQuery(this).is(":hidden"),
- self = this;
-
- for ( p in prop ) {
- if ( prop[p] == "hide" && hidden || prop[p] == "show" && !hidden )
- return opt.complete.call(this);
-
- if ( ( p == "height" || p == "width" ) && this.style ) {
- // Store display property
- opt.display = jQuery.css(this, "display");
-
- // Make sure that nothing sneaks out
- opt.overflow = this.style.overflow;
- }
- }
-
- if ( opt.overflow != null )
- this.style.overflow = "hidden";
-
- opt.curAnim = jQuery.extend({}, prop);
-
- jQuery.each( prop, function(name, val){
- var e = new jQuery.fx( self, opt, name );
-
- if ( /toggle|show|hide/.test(val) )
- e[ val == "toggle" ? hidden ? "show" : "hide" : val ]( prop );
- else {
- var parts = val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),
- start = e.cur(true) || 0;
-
- if ( parts ) {
- var end = parseFloat(parts[2]),
- unit = parts[3] || "px";
-
- // We need to compute starting value
- if ( unit != "px" ) {
- self.style[ name ] = (end || 1) + unit;
- start = ((end || 1) / e.cur(true)) * start;
- self.style[ name ] = start + unit;
- }
-
- // If a +=/-= token was provided, we're doing a relative animation
- if ( parts[1] )
- end = ((parts[1] == "-=" ? -1 : 1) * end) + start;
-
- e.custom( start, end, unit );
- } else
- e.custom( start, val, "" );
- }
- });
-
- // For JS strict compliance
- return true;
- });
- },
-
- stop: function(clearQueue, gotoEnd){
- var timers = jQuery.timers;
-
- if (clearQueue)
- this.queue([]);
-
- this.each(function(){
- // go in reverse order so anything added to the queue during the loop is ignored
- for ( var i = timers.length - 1; i >= 0; i-- )
- if ( timers[i].elem == this ) {
- if (gotoEnd)
- // force the next step to be the last
- timers[i](true);
- timers.splice(i, 1);
- }
- });
-
- // start the next in the queue if the last step wasn't forced
- if (!gotoEnd)
- this.dequeue();
-
- return this;
- }
-
-});
-
-// Generate shortcuts for custom animations
-jQuery.each({
- slideDown: genFx("show", 1),
- slideUp: genFx("hide", 1),
- slideToggle: genFx("toggle", 1),
- fadeIn: { opacity: "show" },
- fadeOut: { opacity: "hide" }
-}, function( name, props ){
- jQuery.fn[ name ] = function( speed, callback ){
- return this.animate( props, speed, callback );
- };
-});
-
-jQuery.extend({
-
- speed: function(speed, easing, fn) {
- var opt = typeof speed === "object" ? speed : {
- complete: fn || !fn && easing ||
- jQuery.isFunction( speed ) && speed,
- duration: speed,
- easing: fn && easing || easing && !jQuery.isFunction(easing) && easing
- };
-
- opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
- jQuery.fx.speeds[opt.duration] || jQuery.fx.speeds._default;
-
- // Queueing
- opt.old = opt.complete;
- opt.complete = function(){
- if ( opt.queue !== false )
- jQuery(this).dequeue();
- if ( jQuery.isFunction( opt.old ) )
- opt.old.call( this );
- };
-
- return opt;
- },
-
- easing: {
- linear: function( p, n, firstNum, diff ) {
- return firstNum + diff * p;
- },
- swing: function( p, n, firstNum, diff ) {
- return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;
- }
- },
-
- timers: [],
-
- fx: function( elem, options, prop ){
- this.options = options;
- this.elem = elem;
- this.prop = prop;
-
- if ( !options.orig )
- options.orig = {};
- }
-
-});
-
-jQuery.fx.prototype = {
-
- // Simple function for setting a style value
- update: function(){
- if ( this.options.step )
- this.options.step.call( this.elem, this.now, this );
-
- (jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );
-
- // Set display property to block for height/width animations
- if ( ( this.prop == "height" || this.prop == "width" ) && this.elem.style )
- this.elem.style.display = "block";
- },
-
- // Get the current size
- cur: function(force){
- if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) )
- return this.elem[ this.prop ];
-
- var r = parseFloat(jQuery.css(this.elem, this.prop, force));
- return r && r > -10000 ? r : parseFloat(jQuery.curCSS(this.elem, this.prop)) || 0;
- },
-
- // Start an animation from one number to another
- custom: function(from, to, unit){
- this.startTime = now();
- this.start = from;
- this.end = to;
- this.unit = unit || this.unit || "px";
- this.now = this.start;
- this.pos = this.state = 0;
-
- var self = this;
- function t(gotoEnd){
- return self.step(gotoEnd);
- }
-
- t.elem = this.elem;
-
- if ( t() && jQuery.timers.push(t) && !timerId ) {
- timerId = setInterval(function(){
- var timers = jQuery.timers;
-
- for ( var i = 0; i < timers.length; i++ )
- if ( !timers[i]() )
- timers.splice(i--, 1);
-
- if ( !timers.length ) {
- clearInterval( timerId );
- timerId = undefined;
- }
- }, 13);
- }
- },
-
- // Simple 'show' function
- show: function(){
- // Remember where we started, so that we can go back to it later
- this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
- this.options.show = true;
-
- // Begin the animation
- // Make sure that we start at a small width/height to avoid any
- // flash of content
- this.custom(this.prop == "width" || this.prop == "height" ? 1 : 0, this.cur());
-
- // Start by showing the element
- jQuery(this.elem).show();
- },
-
- // Simple 'hide' function
- hide: function(){
- // Remember where we started, so that we can go back to it later
- this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
- this.options.hide = true;
-
- // Begin the animation
- this.custom(this.cur(), 0);
- },
-
- // Each step of an animation
- step: function(gotoEnd){
- var t = now();
-
- if ( gotoEnd || t >= this.options.duration + this.startTime ) {
- this.now = this.end;
- this.pos = this.state = 1;
- this.update();
-
- this.options.curAnim[ this.prop ] = true;
-
- var done = true;
- for ( var i in this.options.curAnim )
- if ( this.options.curAnim[i] !== true )
- done = false;
-
- if ( done ) {
- if ( this.options.display != null ) {
- // Reset the overflow
- this.elem.style.overflow = this.options.overflow;
-
- // Reset the display
- this.elem.style.display = this.options.display;
- if ( jQuery.css(this.elem, "display") == "none" )
- this.elem.style.display = "block";
- }
-
- // Hide the element if the "hide" operation was done
- if ( this.options.hide )
- jQuery(this.elem).hide();
-
- // Reset the properties, if the item has been hidden or shown
- if ( this.options.hide || this.options.show )
- for ( var p in this.options.curAnim )
- jQuery.attr(this.elem.style, p, this.options.orig[p]);
-
- // Execute the complete function
- this.options.complete.call( this.elem );
- }
-
- return false;
- } else {
- var n = t - this.startTime;
- this.state = n / this.options.duration;
-
- // Perform the easing function, defaults to swing
- this.pos = jQuery.easing[this.options.easing || (jQuery.easing.swing ? "swing" : "linear")](this.state, n, 0, 1, this.options.duration);
- this.now = this.start + ((this.end - this.start) * this.pos);
-
- // Perform the next step of the animation
- this.update();
- }
-
- return true;
- }
-
-};
-
-jQuery.extend( jQuery.fx, {
- speeds:{
- slow: 600,
- fast: 200,
- // Default speed
- _default: 400
- },
- step: {
-
- opacity: function(fx){
- jQuery.attr(fx.elem.style, "opacity", fx.now);
- },
-
- _default: function(fx){
- if ( fx.elem.style && fx.elem.style[ fx.prop ] != null )
- fx.elem.style[ fx.prop ] = fx.now + fx.unit;
- else
- fx.elem[ fx.prop ] = fx.now;
- }
- }
-});
-if ( document.documentElement["getBoundingClientRect"] )
- jQuery.fn.offset = function() {
- if ( !this[0] ) return { top: 0, left: 0 };
- if ( this[0] === this[0].ownerDocument.body ) return jQuery.offset.bodyOffset( this[0] );
- var box = this[0].getBoundingClientRect(), doc = this[0].ownerDocument, body = doc.body, docElem = doc.documentElement,
- clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,
- top = box.top + (self.pageYOffset || jQuery.boxModel && docElem.scrollTop || body.scrollTop ) - clientTop,
- left = box.left + (self.pageXOffset || jQuery.boxModel && docElem.scrollLeft || body.scrollLeft) - clientLeft;
- return { top: top, left: left };
- };
-else
- jQuery.fn.offset = function() {
- if ( !this[0] ) return { top: 0, left: 0 };
- if ( this[0] === this[0].ownerDocument.body ) return jQuery.offset.bodyOffset( this[0] );
- jQuery.offset.initialized || jQuery.offset.initialize();
-
- var elem = this[0], offsetParent = elem.offsetParent, prevOffsetParent = elem,
- doc = elem.ownerDocument, computedStyle, docElem = doc.documentElement,
- body = doc.body, defaultView = doc.defaultView,
- prevComputedStyle = defaultView.getComputedStyle(elem, null),
- top = elem.offsetTop, left = elem.offsetLeft;
-
- while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
- computedStyle = defaultView.getComputedStyle(elem, null);
- top -= elem.scrollTop, left -= elem.scrollLeft;
- if ( elem === offsetParent ) {
- top += elem.offsetTop, left += elem.offsetLeft;
- if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(elem.tagName)) )
- top += parseInt( computedStyle.borderTopWidth, 10) || 0,
- left += parseInt( computedStyle.borderLeftWidth, 10) || 0;
- prevOffsetParent = offsetParent, offsetParent = elem.offsetParent;
- }
- if ( jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" )
- top += parseInt( computedStyle.borderTopWidth, 10) || 0,
- left += parseInt( computedStyle.borderLeftWidth, 10) || 0;
- prevComputedStyle = computedStyle;
- }
-
- if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" )
- top += body.offsetTop,
- left += body.offsetLeft;
-
- if ( prevComputedStyle.position === "fixed" )
- top += Math.max(docElem.scrollTop, body.scrollTop),
- left += Math.max(docElem.scrollLeft, body.scrollLeft);
-
- return { top: top, left: left };
- };
-
-jQuery.offset = {
- initialize: function() {
- if ( this.initialized ) return;
- var body = document.body, container = document.createElement('div'), innerDiv, checkDiv, table, td, rules, prop, bodyMarginTop = body.style.marginTop,
- html = '<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';
-
- rules = { position: 'absolute', top: 0, left: 0, margin: 0, border: 0, width: '1px', height: '1px', visibility: 'hidden' };
- for ( prop in rules ) container.style[prop] = rules[prop];
-
- container.innerHTML = html;
- body.insertBefore(container, body.firstChild);
- innerDiv = container.firstChild, checkDiv = innerDiv.firstChild, td = innerDiv.nextSibling.firstChild.firstChild;
-
- this.doesNotAddBorder = (checkDiv.offsetTop !== 5);
- this.doesAddBorderForTableAndCells = (td.offsetTop === 5);
-
- innerDiv.style.overflow = 'hidden', innerDiv.style.position = 'relative';
- this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop === -5);
-
- body.style.marginTop = '1px';
- this.doesNotIncludeMarginInBodyOffset = (body.offsetTop === 0);
- body.style.marginTop = bodyMarginTop;
-
- body.removeChild(container);
- this.initialized = true;
- },
-
- bodyOffset: function(body) {
- jQuery.offset.initialized || jQuery.offset.initialize();
- var top = body.offsetTop, left = body.offsetLeft;
- if ( jQuery.offset.doesNotIncludeMarginInBodyOffset )
- top += parseInt( jQuery.curCSS(body, 'marginTop', true), 10 ) || 0,
- left += parseInt( jQuery.curCSS(body, 'marginLeft', true), 10 ) || 0;
- return { top: top, left: left };
- }
-};
-
-
-jQuery.fn.extend({
- position: function() {
- var left = 0, top = 0, results;
-
- if ( this[0] ) {
- // Get *real* offsetParent
- var offsetParent = this.offsetParent(),
-
- // Get correct offsets
- offset = this.offset(),
- parentOffset = /^body|html$/i.test(offsetParent[0].tagName) ? { top: 0, left: 0 } : offsetParent.offset();
-
- // Subtract element margins
- // note: when an element has margin: auto the offsetLeft and marginLeft
- // are the same in Safari causing offset.left to incorrectly be 0
- offset.top -= num( this, 'marginTop' );
- offset.left -= num( this, 'marginLeft' );
-
- // Add offsetParent borders
- parentOffset.top += num( offsetParent, 'borderTopWidth' );
- parentOffset.left += num( offsetParent, 'borderLeftWidth' );
-
- // Subtract the two offsets
- results = {
- top: offset.top - parentOffset.top,
- left: offset.left - parentOffset.left
- };
- }
-
- return results;
- },
-
- offsetParent: function() {
- var offsetParent = this[0].offsetParent || document.body;
- while ( offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && jQuery.css(offsetParent, 'position') == 'static') )
- offsetParent = offsetParent.offsetParent;
- return jQuery(offsetParent);
- }
-});
-
-
-// Create scrollLeft and scrollTop methods
-jQuery.each( ['Left', 'Top'], function(i, name) {
- var method = 'scroll' + name;
-
- jQuery.fn[ method ] = function(val) {
- if (!this[0]) return null;
-
- return val !== undefined ?
-
- // Set the scroll offset
- this.each(function() {
- this == window || this == document ?
- window.scrollTo(
- !i ? val : jQuery(window).scrollLeft(),
- i ? val : jQuery(window).scrollTop()
- ) :
- this[ method ] = val;
- }) :
-
- // Return the scroll offset
- this[0] == window || this[0] == document ?
- self[ i ? 'pageYOffset' : 'pageXOffset' ] ||
- jQuery.boxModel && document.documentElement[ method ] ||
- document.body[ method ] :
- this[0][ method ];
- };
-});
-// Create innerHeight, innerWidth, outerHeight and outerWidth methods
-jQuery.each([ "Height", "Width" ], function(i, name){
-
- var tl = i ? "Left" : "Top", // top or left
- br = i ? "Right" : "Bottom", // bottom or right
- lower = name.toLowerCase();
-
- // innerHeight and innerWidth
- jQuery.fn["inner" + name] = function(){
- return this[0] ?
- jQuery.css( this[0], lower, false, "padding" ) :
- null;
- };
-
- // outerHeight and outerWidth
- jQuery.fn["outer" + name] = function(margin) {
- return this[0] ?
- jQuery.css( this[0], lower, false, margin ? "margin" : "border" ) :
- null;
- };
-
- var type = name.toLowerCase();
-
- jQuery.fn[ type ] = function( size ) {
- // Get window width or height
- return this[0] == window ?
- // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
- document.compatMode == "CSS1Compat" && document.documentElement[ "client" + name ] ||
- document.body[ "client" + name ] :
-
- // Get document width or height
- this[0] == document ?
- // Either scroll[Width/Height] or offset[Width/Height], whichever is greater
- Math.max(
- document.documentElement["client" + name],
- document.body["scroll" + name], document.documentElement["scroll" + name],
- document.body["offset" + name], document.documentElement["offset" + name]
- ) :
-
- // Get or set width or height on the element
- size === undefined ?
- // Get width or height on the element
- (this.length ? jQuery.css( this[0], type ) : null) :
-
- // Set the width or height on the element (default to pixels if value is unitless)
- this.css( type, typeof size === "string" ? size : size + "px" );
- };
-
-});
-})();
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/jquery-1.4.4.min.js b/node_modules/selenium-webdriver/lib/test/data/js/jquery-1.4.4.min.js
deleted file mode 100644
index 8f3ca2e2d..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/jquery-1.4.4.min.js
+++ /dev/null
@@ -1,167 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.4.4
- * http://jquery.com/
- *
- * Copyright 2010, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- * Copyright 2010, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- *
- * Date: Thu Nov 11 19:04:53 2010 -0500
- */
-(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h=
-h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"||
-h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La,
-"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,
-e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,
-"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+
-a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,
-C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j,
-s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this,
-j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length},
-toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j===
--1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false;
-if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--;
-if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload",
-b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&&
-!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&&
-l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z],
-z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j,
-s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v=
-s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)||
-[];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u,
-false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"),
-k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false,
-scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent=
-false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom=
-1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display=
-"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h=
-c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando);
-else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this,
-a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e=
-c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,
-a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",
-colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===
-1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "),
-l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,
-"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one";
-if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r=
-a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},
-attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&
-b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0};
-c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,
-arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid=
-d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+
-c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b=
-w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===
-8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k===
-"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+
-d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
-fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
-d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this,
-Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=
-c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U};
-var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!==
-"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V,
-xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired=
-B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type===
-"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]===
-0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d,
-a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d=
-1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d===
-"object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}});
-c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
-(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i,
-[y]).length>0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3];
-break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr,
-q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h=
-l;g.sort(w);if(h)for(var i=1;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*"));
-return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!==
-B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
-POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()===
-i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=
-i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g,
-"")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n,
-m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===
-true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===
-g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return n[3]-
-0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n===
-"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===
-i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]];
-if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m,
-g);else if(typeof g.length==="number")for(var p=g.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1;
-for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"),
-i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g);
-n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&&
-function(){var g=k,i=t.createElement("div");i.innerHTML="<p class='TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F||
-p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g=
-t.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition?
-function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML;
-c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})},
-not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h=
-h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context):
-c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,
-2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,
-b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&
-e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1,
-"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
-c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
-wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
-prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
-this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
-return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null;
-else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=
-c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a,
-b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")):
-this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",
-prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument||
-b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1></$2>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]==="<table>"&&!x?r.childNodes:[];for(o=k.length-
-1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script"))));
-d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i,
-jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,
-zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b),
-h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b);
-if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f=
-d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left;
-e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
-ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b===
-"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&
-!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})},
-getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html",
-script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data||
-!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache=
-false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset;
-A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type",
-b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&&
-c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d||
-c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]=
-encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess",
-[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),
-e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}});
-if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show",
-3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay",
-d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b,
-d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)===
-"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L||
-1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b,
-d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a*
-Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)}
-var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;
-this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide||
-this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=
-c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===
-b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&&
-h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle;
-for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+=
-parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",
-height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells=
-f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a,
-"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a,
-e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&&
-c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();
-c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+
-b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window);
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/jquery-ui-1.8.10.custom.min.js b/node_modules/selenium-webdriver/lib/test/data/js/jquery-ui-1.8.10.custom.min.js
deleted file mode 100644
index 7d4ff1cec..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/jquery-ui-1.8.10.custom.min.js
+++ /dev/null
@@ -1,782 +0,0 @@
-/*!
- * jQuery UI 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI
- */
-(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.10",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,
-NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,
-"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");
-if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f,
-"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,
-d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}});
-c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&
-b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&c.ui.isOverAxis(b,e,i)}})}})(jQuery);
-;/*!
- * jQuery UI Widget 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Widget
- */
-(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)b(d).triggerHandler("remove");k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){b(this).triggerHandler("remove")});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,
-a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.charAt(0)==="_")return h;
-e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=b.extend(true,{},this.options,
-this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},
-widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},
-enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
-;/*!
- * jQuery UI Mouse 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Mouse
- *
- * Depends:
- * jquery.ui.widget.js
- */
-(function(c){c.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(b){return a._mouseDown(b)}).bind("click."+this.widgetName,function(b){if(true===c.data(b.target,a.widgetName+".preventClickEvent")){c.removeData(b.target,a.widgetName+".preventClickEvent");b.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(a){a.originalEvent=
-a.originalEvent||{};if(!a.originalEvent.mouseHandled){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var b=this,e=a.which==1,f=typeof this.options.cancel=="string"?c(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){b.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=
-this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}this._mouseMoveDelegate=function(d){return b._mouseMove(d)};this._mouseUpDelegate=function(d){return b._mouseUp(d)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return a.originalEvent.mouseHandled=true}},_mouseMove:function(a){if(c.browser.msie&&!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);
-return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;a.target==this._mouseDownEvent.target&&c.data(a.target,this.widgetName+".preventClickEvent",
-true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
-;/*
- * jQuery UI Position 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Position
- */
-(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY,
-left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+=
-k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-=
-m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left=
-d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+=
-a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b),
-g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery);
-;/*
- * jQuery UI Draggable 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Draggables
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.mouse.js
- * jquery.ui.widget.js
- */
-(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper==
-"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b=
-this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-
-this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();
-d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||
-this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&
-this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==
-a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||
-0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],
-this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-
-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment==
-"parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[(a.containment=="document"?0:d(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(a.containment=="document"?0:d(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?
-0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),
-10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(a.containment.constructor==
-Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():
-f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;
-if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])e=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/
-b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;e=this.originalPageX+Math.round((e-this.originalPageX)/b.grid[0])*b.grid[0];e=this.containment?!(e-this.offset.click.left<this.containment[0]||e-this.offset.click.left>this.containment[2])?e:!(e-this.offset.click.left<this.containment[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:g-this.offset.click.top-
-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=
-this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs=this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b,c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.10"});
-d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var g=d.data(this,"sortable");if(g&&!g.options.disabled){c.sortables.push({instance:g,shouldRevert:g.options.revert});g._refreshItems();g._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=
-0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper;c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs=
-c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=d(f).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};a.target=this.instance.currentItem[0];this.instance._mouseCapture(a,
-true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver=
-0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor=
-a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","iframeFix",{start:function(){var a=d(this).data("draggable").options;d(a.iframeFix===true?"iframe":a.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})},
-stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=
-document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-
-c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX-b.overflowOffset.left<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-
-(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()-c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable",
-"snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this,width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),f=c.options,e=f.snapTolerance,g=b.offset.left,n=g+c.helperProportions.width,m=b.offset.top,o=m+c.helperProportions.height,h=
-c.snapElements.length-1;h>=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e<g&&g<k+e&&j-e<m&&m<l+e||i-e<g&&g<k+e&&j-e<o&&o<l+e||i-e<n&&n<k+e&&j-e<m&&m<l+e||i-e<n&&n<k+e&&j-e<o&&o<l+e){if(f.snapMode!="inner"){var p=Math.abs(j-o)<=e,q=Math.abs(l-m)<=e,r=Math.abs(i-n)<=e,s=Math.abs(k-g)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",
-{top:l,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k}).left-c.margins.left}var t=p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(j-m)<=e;q=Math.abs(l-o)<=e;r=Math.abs(i-g)<=e;s=Math.abs(k-n)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l-c.helperProportions.height,
-left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[h].snapping&&(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=p||q||r||s||t}else{c.snapElements[h].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,
-a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"),10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,
-b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery);
-;/*
- * jQuery UI Droppable 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Droppables
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- * jquery.ui.mouse.js
- * jquery.ui.draggable.js
- */
-(function(d){d.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var a=this.options,b=a.accept;this.isover=0;this.isout=1;this.accept=d.isFunction(b)?b:function(c){return c.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};d.ui.ddmanager.droppables[a.scope]=d.ui.ddmanager.droppables[a.scope]||[];d.ui.ddmanager.droppables[a.scope].push(this);
-a.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var a=d.ui.ddmanager.droppables[this.options.scope],b=0;b<a.length;b++)a[b]==this&&a.splice(b,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(a,b){if(a=="accept")this.accept=d.isFunction(b)?b:function(c){return c.is(b)};d.Widget.prototype._setOption.apply(this,arguments)},_activate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&
-this.element.addClass(this.options.activeClass);b&&this._trigger("activate",a,this.ui(b))},_deactivate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);b&&this._trigger("deactivate",a,this.ui(b))},_over:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass);
-this._trigger("over",a,this.ui(b))}},_out:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",a,this.ui(b))}},_drop:function(a,b){var c=b||d.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g=
-d.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==c.options.scope&&g.accept.call(g.element[0],c.currentItem||c.element)&&d.ui.intersect(c,d.extend(g,{offset:g.element.offset()}),g.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop",
-a,this.ui(c));return this.element}return false},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}});d.extend(d.ui.droppable,{version:"1.8.10"});d.ui.intersect=function(a,b,c){if(!b.offset)return false;var e=(a.positionAbs||a.position.absolute).left,g=e+a.helperProportions.width,f=(a.positionAbs||a.position.absolute).top,h=f+a.helperProportions.height,i=b.offset.left,k=i+b.proportions.width,j=b.offset.top,l=j+b.proportions.height;
-switch(c){case "fit":return i<=e&&g<=k&&j<=f&&h<=l;case "intersect":return i<e+a.helperProportions.width/2&&g-a.helperProportions.width/2<k&&j<f+a.helperProportions.height/2&&h-a.helperProportions.height/2<l;case "pointer":return d.ui.isOver((a.positionAbs||a.position.absolute).top+(a.clickOffset||a.offset.click).top,(a.positionAbs||a.position.absolute).left+(a.clickOffset||a.offset.click).left,j,i,b.proportions.height,b.proportions.width);case "touch":return(f>=j&&f<=l||h>=j&&h<=l||f<j&&h>l)&&(e>=
-i&&e<=k||g>=i&&g<=k||e<i&&g>k);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f<c.length;f++)if(!(c[f].options.disabled||a&&!c[f].accept.call(c[f].element[0],a.currentItem||a.element))){for(var h=0;h<g.length;h++)if(g[h]==c[f].element[0]){c[f].proportions.height=0;continue a}c[f].visible=c[f].element.css("display")!=
-"none";if(c[f].visible){c[f].offset=c[f].element.offset();c[f].proportions={width:c[f].element[0].offsetWidth,height:c[f].element[0].offsetHeight};e=="mousedown"&&c[f]._activate.call(c[f],b)}}},drop:function(a,b){var c=false;d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&d.ui.intersect(a,this,this.options.tolerance))c=c||this._drop.call(this,b);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],a.currentItem||
-a.element)){this.isout=1;this.isover=0;this._deactivate.call(this,b)}}});return c},drag:function(a,b){a.options.refreshPositions&&d.ui.ddmanager.prepareOffsets(a,b);d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=d.ui.intersect(a,this,this.options.tolerance);if(c=!c&&this.isover==1?"isout":c&&this.isover==0?"isover":null){var e;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){e=
-d.data(g[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,b)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,b);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,b)}}}})}}})(jQuery);
-;/*
- * jQuery UI Resizable 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizables
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.mouse.js
- * jquery.ui.widget.js
- */
-(function(e){e.widget("ui.resizable",e.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");e.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,
-_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&e.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),
-top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=
-this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",
-nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d<c.length;d++){var f=e.trim(c[d]),g=e('<div class="ui-resizable-handle '+("ui-resizable-"+f)+'"></div>');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor==
-String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection();
-this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){e(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};
-if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),
-d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=
-this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:
-this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",
-b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;
-f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");
-this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=
-null}if(d=="nw"){b.top=a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidth<b.width,f=l(b.height)&&a.maxHeight&&a.maxHeight<b.height,g=l(b.width)&&a.minWidth&&a.minWidth>b.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+
-this.size.height,k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var d=
-[c.css("borderTopWidth"),c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],f=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=e.map(d,function(g,h){g=parseInt(g,10)||0;h=parseInt(f[h],10)||0;return g+h})}e.browser.msie&&(e(b).is(":hidden")||e(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=
-this.options;this.elementOffset=this.element.offset();if(this._helper){this.helper=this.helper||e('<div style="overflow:hidden;"></div>');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,
-a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,
-c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,
-originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.10"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=
-b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width",
-"height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};
-if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-
-g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,
-height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=
-e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,
-d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?
-d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=
-a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&
-/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");
-b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/
-(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery);
-;/*
- * jQuery UI Selectable 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectables
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.mouse.js
- * jquery.ui.widget.js
- */
-(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),
-selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,
-c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting",
-c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d=
-this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");
-a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&
-!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=
-e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.10"})})(jQuery);
-;/*
- * jQuery UI Sortable 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Sortables
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.mouse.js
- * jquery.ui.widget.js
- */
-(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable");
-this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,
-arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=
-c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,
-{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();
-if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",
-a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");
-if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+b.scrollSpeed;else if(a.pageY-this.overflowOffset.top<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-b.scrollSpeed;if(this.overflowOffset.left+
-this.scrollParent[0].offsetWidth-a.pageX<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+b.scrollSpeed;else if(a.pageX-this.overflowOffset.left<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-b.scrollSpeed}else{if(a.pageY-d(document).scrollTop()<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()-b.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()+
-b.scrollSpeed);if(a.pageX-d(document).scrollLeft()<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()-b.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()+b.scrollSpeed)}c!==false&&d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+
-"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(b=this.items.length-1;b>=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,
-c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==
-document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length-
-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});
-this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},toArray:function(a){var b=this._getItemsAsjQuery(a&&
-a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+j<k&&b+l>g&&b+l<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?
-"width":"height"]>a[this.floating?"width":"height"]?j:g<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width);b=b&&a;a=this._getDragVerticalDirection();var c=this._getDragHorizontalDirection();if(!b)return false;return this.floating?
-c&&c=="right"||a=="down"?2:1:a&&(a=="down"?2:1)},_intersectsWithSides:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&a||e=="left"&&!a:c&&(c=="down"&&b||c=="up"&&!b)},_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;
-return a!=0&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=
-d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});
-return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(a){this.items=[];this.containers=[this];var b=this.items,c=[[d.isFunction(this.options.items)?this.options.items.call(this.element[0],a,{item:this.currentItem}):d(this.options.items,this.element),this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var g=
-d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h<g;h++){i=d(e[h]);i.data("sortable-item",a);b.push({item:i,instance:a,width:0,height:0,left:0,top:0})}}},refreshPositions:function(a){if(this.offsetParent&&this.helper)this.offset.parent=
-this._getParentOffset();for(var b=this.items.length-1;b>=0;b--){var c=this.items[b],e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=
-e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];
-if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);
-c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===
-1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-f)<b){b=Math.abs(h-f);e=this.items[g]}}if(e||this.options.dropOnEmpty){this.currentContainer=
-this.containers[c];e?this._rearrange(a,e,null,true):this._rearrange(a,null,this.containers[c].element,true);this._trigger("change",a,this._uiHash());this.containers[c]._trigger("change",a,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a,this.currentItem])):
-b.helper=="clone"?this.currentItem.clone():this.currentItem;a.parents("body").length||d(b.appendTo!="parent"?b.appendTo:this.currentItem[0].parentNode)[0].appendChild(a[0]);if(a[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(a[0].style.width==""||b.forceHelperSize)a.width(this.currentItem.width());if(a[0].style.height==
-""||b.forceHelperSize)a.height(this.currentItem.height());return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=
-this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),
-10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions=
-{width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||
-document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)){var b=d(a.containment)[0];a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,
-b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=
-document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():
-e?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();var f=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-
-this.offset.click.left<this.containment[0])f=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<
-this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;f=this.originalPageX+Math.round((f-this.originalPageX)/b.grid[0])*b.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-b.grid[0]:f+b.grid[0]:f}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&
-this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(a,b,c,e){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?b.item[0]:b.item[0].nextSibling);this.counter=
-this.counter?++this.counter:1;var f=this,g=this.counter;window.setTimeout(function(){g==f.counter&&f.refreshPositions(!e)},0)},_clear:function(a,b){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem[0].parentNode&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();
-this.fromOutside&&!b&&c.push(function(f){this._trigger("receive",f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!b)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!d.ui.contains(this.element[0],this.currentItem[0])){b||c.push(function(f){this._trigger("remove",f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(d.ui.contains(this.containers[e].element[0],
-this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",
-g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",a,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}return false}b||
-this._trigger("beforeStop",a,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!b){for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){d.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},_uiHash:function(a){var b=a||this;return{helper:b.helper,placeholder:b.placeholder||d([]),position:b.position,
-originalPosition:b.originalPosition,offset:b.positionAbs,item:b.currentItem,sender:a?a.element:null}}});d.extend(d.ui.sortable,{version:"1.8.10"})})(jQuery);
-;/*
- * jQuery UI Accordion 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- */
-(function(c){c.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");
-a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
-if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion",
-function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a=this.options;if(a.icons){c("<span></span>").addClass("ui-icon "+
-a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex");
-this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons();
-b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target);
-a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+
-c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options;
-if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
-if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(),
-e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight||
-e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false",
-tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.10",animations:{slide:function(a,b){a=
-c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/);f[i]={value:j[1],
-unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide",paddingTop:"hide",
-paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery);
-;/*
- * jQuery UI Autocomplete 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- * jquery.ui.position.js
- */
-(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){g=false;var f=d.ui.keyCode;
-switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!=a.element.val()){a.selectedItem=
-null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)};this.menu=d("<ul></ul>").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||
-"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&&a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),
-i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");
-this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&&b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source===
-"string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search",b)!==false)return this._search(a)},
-_search:function(a){this.pending++;this.element.addClass("ui-autocomplete-loading");this.source({term:a},this.response)},_response:function(a){if(!this.options.disabled&&a&&a.length){a=this._normalize(a);this._suggest(a);this._trigger("open")}else this.close();this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.deactivate();this._trigger("close",a)}},_change:function(a){this.previous!==
-this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return d.map(a,function(b){if(typeof b==="string")return{label:b,value:b};return d.extend({label:b.label||b.value,value:b.value||b.label},b)})},_suggest:function(a){var b=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(b,a);this.menu.deactivate();this.menu.refresh();b.show();this._resizeMenu();b.position(d.extend({of:this.element},this.options.position))},
-_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(a,b){var g=this;d.each(b,function(c,f){g._renderItem(a,f)})},_renderItem:function(a,b){return d("<li></li>").data("item.autocomplete",b).append(d("<a></a>").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);
-else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery);
-(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
--1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.attr("scrollTop"),c=this.element.height();if(b<0)this.element.attr("scrollTop",g+b);else b>=c&&this.element.attr("scrollTop",g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})},
-deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0);
-e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b,this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e,
-g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));
-this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element.attr("scrollHeight")},select:function(e){this._trigger("selected",e,{item:this.active})}})})(jQuery);
-;/*
- * jQuery UI Button 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- */
-(function(a){var g,i=function(b){a(":ui-button",b.target.form).each(function(){var c=a(this).data("button");setTimeout(function(){c.refresh()},1)})},h=function(b){var c=b.name,d=b.form,f=a([]);if(c)f=d?a(d).find("[name='"+c+"']"):a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form});return f};a.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",
-i);if(typeof this.options.disabled!=="boolean")this.options.disabled=this.element.attr("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var b=this,c=this.options,d=this.type==="checkbox"||this.type==="radio",f="ui-state-hover"+(!d?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",
-function(){if(!c.disabled){a(this).addClass("ui-state-hover");this===g&&a(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){c.disabled||a(this).removeClass(f)}).bind("focus.button",function(){a(this).addClass("ui-state-focus")}).bind("blur.button",function(){a(this).removeClass("ui-state-focus")});d&&this.element.bind("change.button",function(){b.refresh()});if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).toggleClass("ui-state-active");
-b.buttonElement.attr("aria-pressed",b.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");b.buttonElement.attr("aria-pressed",true);var e=b.element[0];h(e).not(e).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed",false)});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");
-g=this;a(document).one("mouseup",function(){g=null})}).bind("mouseup.button",function(){if(c.disabled)return false;a(this).removeClass("ui-state-active")}).bind("keydown.button",function(e){if(c.disabled)return false;if(e.keyCode==a.ui.keyCode.SPACE||e.keyCode==a.ui.keyCode.ENTER)a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(e){e.keyCode===a.ui.keyCode.SPACE&&a(this).click()})}this._setOption("disabled",
-c.disabled)},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type==="radio"){this.buttonElement=this.element.parents().last().find("label[for="+this.element.attr("id")+"]");this.element.addClass("ui-helper-hidden-accessible");var b=this.element.is(":checked");b&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",b)}else this.buttonElement=
-this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());this.hasTitle||
-this.buttonElement.removeAttr("title");a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments);if(b==="disabled")c?this.element.attr("disabled",true):this.element.removeAttr("disabled");this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b);if(this.type==="radio")h(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
-true):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed",false)});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed",true):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed",false)},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),
-c=a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,f=d.primary&&d.secondary,e=[];if(d.primary||d.secondary){e.push("ui-button-text-icon"+(f?"s":d.primary?"-primary":"-secondary"));d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>");d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>");if(!this.options.text){e.push(f?"ui-button-icons-only":"ui-button-icon-only");
-b.removeClass("ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary");this.hasTitle||b.attr("title",c)}}else e.push("ui-button-text-only");b.addClass(e.join(" "))}}});a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,
-arguments)},refresh:function(){this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()},destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");
-a.Widget.prototype.destroy.call(this)}})})(jQuery);
-;/*
- * jQuery UI Dialog 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- * jquery.ui.button.js
- * jquery.ui.draggable.js
- * jquery.ui.mouse.js
- * jquery.ui.position.js
- * jquery.ui.resizable.js
- */
-(function(c,j){var k={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},l={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&
-c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||"&#160;",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",
--1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),h=c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role",
-"button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("<span></span>").addClass("ui-dialog-title").attr("id",e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=
-b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");a.uiDialog.remove();a.originalTitle&&
-a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==b.uiDialog[0]){e=c(this).css("z-index");
-isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);
-d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target===f[0]&&e.shiftKey){g.focus(1);return false}}});
-c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a,function(f,
-h){h=c.isFunction(h)?{click:h,text:f}:h;f=c('<button type="button"></button>').attr(h,true).unbind("click").click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.fn.button&&f.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=
-d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,originalSize:f.originalSize,
-position:f.position,size:f.size}}a=a===j?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",f,b(h))},stop:function(f,
-h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length===
-1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f);if(g in k)e=true;if(g in
-l)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"):e.removeClass("ui-dialog-disabled");
-break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||"&#160;"));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a=this.options,b,d,e=
-this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height-b,0));this.uiDialog.is(":data(resizable)")&&
-this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.10",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length===
-0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()<c.ui.dialog.overlay.maxZ)return false})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=(this.oldInstances.pop()||c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),
-height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);
-b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a<b?c(window).height()+"px":a+"px"}else return c(document).height()+"px"},width:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);b=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return a<b?c(window).width()+"px":a+"px"}else return c(document).width()+"px"},resize:function(){var a=c([]);c.each(c.ui.dialog.overlay.instances,
-function(){a=a.add(this)});a.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
-;/*
- * jQuery UI Slider 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.mouse.js
- * jquery.ui.widget.js
- */
-(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var b=this,a=this.options;this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");a.disabled&&this.element.addClass("ui-slider-disabled ui-disabled");
-this.range=d([]);if(a.range){if(a.range===true){this.range=d("<div></div>");if(!a.values)a.values=[this._valueMin(),this._valueMin()];if(a.values.length&&a.values.length!==2)a.values=[a.values[0],a.values[0]]}else this.range=d("<div></div>");this.range.appendTo(this.element).addClass("ui-slider-range");if(a.range==="min"||a.range==="max")this.range.addClass("ui-slider-range-"+a.range);this.range.addClass("ui-widget-header")}d(".ui-slider-handle",this.element).length===0&&d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");
-if(a.values&&a.values.length)for(;d(".ui-slider-handle",this.element).length<a.values.length;)d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");this.handles=d(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(c){c.preventDefault()}).hover(function(){a.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(a.disabled)d(this).blur();
-else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(c){d(this).data("index.ui-slider-handle",c)});this.handles.keydown(function(c){var e=true,f=d(this).data("index.ui-slider-handle"),h,g,i;if(!b.options.disabled){switch(c.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:e=
-false;if(!b._keySliding){b._keySliding=true;d(this).addClass("ui-state-active");h=b._start(c,f);if(h===false)return}break}i=b.options.step;h=b.options.values&&b.options.values.length?(g=b.values(f)):(g=b.value());switch(c.keyCode){case d.ui.keyCode.HOME:g=b._valueMin();break;case d.ui.keyCode.END:g=b._valueMax();break;case d.ui.keyCode.PAGE_UP:g=b._trimAlignValue(h+(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:g=b._trimAlignValue(h-(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(h===
-b._valueMax())return;g=b._trimAlignValue(h+i);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(h===b._valueMin())return;g=b._trimAlignValue(h-i);break}b._slide(c,f,g);return e}}).keyup(function(c){var e=d(this).data("index.ui-slider-handle");if(b._keySliding){b._keySliding=false;b._stop(c,e);b._change(c,e);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");
-this._mouseDestroy();return this},_mouseCapture:function(b){var a=this.options,c,e,f,h,g;if(a.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:b.pageX,y:b.pageY});e=this._valueMax()-this._valueMin()+1;h=this;this.handles.each(function(i){var j=Math.abs(c-h.values(i));if(e>j){e=j;f=d(this);g=i}});if(a.range===true&&this.values(1)===a.min){g+=1;f=d(this.handles[g])}if(this._start(b,
-g)===false)return false;this._mouseSliding=true;h._handleIndex=g;f.addClass("ui-state-active").focus();a=f.offset();this._clickOffset=!d(b.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:b.pageX-a.left-f.width()/2,top:b.pageY-a.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(b,g,c);return this._animateOff=true},_mouseStart:function(){return true},
-_mouseDrag:function(b){var a=this._normValueFromMouse({x:b.pageX,y:b.pageY});this._slide(b,this._handleIndex,a);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(b){var a;
-if(this.orientation==="horizontal"){a=this.elementSize.width;b=b.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{a=this.elementSize.height;b=b.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}a=b/a;if(a>1)a=1;if(a<0)a=0;if(this.orientation==="vertical")a=1-a;b=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+a*b)},_start:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=
-this.values(a);c.values=this.values()}return this._trigger("start",b,c)},_slide:function(b,a,c){var e;if(this.options.values&&this.options.values.length){e=this.values(a?0:1);if(this.options.values.length===2&&this.options.range===true&&(a===0&&c>e||a===1&&c<e))c=e;if(c!==this.values(a)){e=this.values();e[a]=c;b=this._trigger("slide",b,{handle:this.handles[a],value:c,values:e});this.values(a?0:1);b!==false&&this.values(a,c,true)}}else if(c!==this.value()){b=this._trigger("slide",b,{handle:this.handles[a],
-value:c});b!==false&&this.value(c)}},_stop:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a);c.values=this.values()}this._trigger("stop",b,c)},_change:function(b,a){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a);c.values=this.values()}this._trigger("change",b,c)}},value:function(b){if(arguments.length){this.options.value=
-this._trimAlignValue(b);this._refreshValue();this._change(null,0)}return this._value()},values:function(b,a){var c,e,f;if(arguments.length>1){this.options.values[b]=this._trimAlignValue(a);this._refreshValue();this._change(null,b)}if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;f<c.length;f+=1){c[f]=this._trimAlignValue(e[f]);this._change(null,f)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(b):this.value();
-else return this._values()},_setOption:function(b,a){var c,e=0;if(d.isArray(this.options.values))e=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(b){case "disabled":if(a){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled");this.element.addClass("ui-disabled")}else{this.handles.removeAttr("disabled");this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation();
-this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<e;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var b=this.options.value;return b=this._trimAlignValue(b)},_values:function(b){var a,c;if(arguments.length){a=this.options.values[b];
-return a=this._trimAlignValue(a)}else{a=this.options.values.slice();for(c=0;c<a.length;c+=1)a[c]=this._trimAlignValue(a[c]);return a}},_trimAlignValue:function(b){if(b<=this._valueMin())return this._valueMin();if(b>=this._valueMax())return this._valueMax();var a=this.options.step>0?this.options.step:1,c=(b-this._valueMin())%a;alignValue=b-c;if(Math.abs(c)*2>=a)alignValue+=c>0?a:-a;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},
-_refreshValue:function(){var b=this.options.range,a=this.options,c=this,e=!this._animateOff?a.animate:false,f,h={},g,i,j,l;if(this.options.values&&this.options.values.length)this.handles.each(function(k){f=(c.values(k)-c._valueMin())/(c._valueMax()-c._valueMin())*100;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";d(this).stop(1,1)[e?"animate":"css"](h,a.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(k===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},a.animate);
-if(k===1)c.range[e?"animate":"css"]({width:f-g+"%"},{queue:false,duration:a.animate})}else{if(k===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},a.animate);if(k===1)c.range[e?"animate":"css"]({height:f-g+"%"},{queue:false,duration:a.animate})}g=f});else{i=this.value();j=this._valueMin();l=this._valueMax();f=l!==j?(i-j)/(l-j)*100:0;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](h,a.animate);if(b==="min"&&this.orientation==="horizontal")this.range.stop(1,
-1)[e?"animate":"css"]({width:f+"%"},a.animate);if(b==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:a.animate});if(b==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},a.animate);if(b==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:a.animate})}}});d.extend(d.ui.slider,{version:"1.8.10"})})(jQuery);
-;/*
- * jQuery UI Tabs 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- */
-(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&&
-e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=
-d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]||
-(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");
-this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected=
-this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");
-if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));
-this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+
-g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",
-function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};
-this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected=
--1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";
-d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e=
-d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b,
-e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);
-j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();
-if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=b}),function(h){return h>=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null,
-this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this},
-load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c,
-"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},
-url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.10"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k<a.anchors.length?k:0)},b);j&&j.stopPropagation()});e=a._unrotate||(a._unrotate=!e?function(j){j.clientX&&
-a.rotate(null)}:function(){t=c.selected;h()});if(b){this.element.bind("tabsshow",h);this.anchors.bind(c.event+".tabs",e);h()}else{clearTimeout(a.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(c.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery);
-;/*
- * jQuery UI Datepicker 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker
- *
- * Depends:
- * jquery.ui.core.js
- */
-(function(d,G){function K(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass=
-"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su",
-"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",
-minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false};d.extend(this._defaults,this.regional[""]);this.dpDiv=d('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}function E(a,b){d.extend(a,b);for(var c in b)if(b[c]==
-null||b[c]==G)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.10"}});var y=(new Date).getTime();d.extend(K.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){E(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();
-f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:d('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}},
-_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&
-b.append.remove();if(c){b.append=d('<span class="'+this._appendClass+'">'+c+"</span>");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("<img/>").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('<button type="button"></button>').addClass(this._triggerClass).html(f==
-""?c:d("<img/>").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;g<f.length;g++)if(f[g].length>h){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,
-c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),
-true);this._updateDatepicker(b);this._updateAlternate(b);b.dpDiv.show()}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}E(a.settings,e||{});
-b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);
-this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",
-this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,
-function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:
-f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return true;return false},_getInst:function(a){try{return d.data(a,"datepicker")}catch(b){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(a,b,c){var e=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?d.extend({},d.datepicker._defaults):e?b=="all"?d.extend({},
-e.settings):this._get(e,b):null;var f=b||{};if(typeof b=="string"){f={};f[b]=c}if(e){this._curInst==e&&this._hideDatepicker();var h=this._getDateDatepicker(a,true);E(e.settings,f);this._attachments(d(a),e);this._autoSize(e);this._setDateDatepicker(a,h);this._updateDatepicker(e)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){(a=this._getInst(a))&&this._updateDatepicker(a)},_setDateDatepicker:function(a,b){if(a=this._getInst(a)){this._setDate(a,b);
-this._updateDatepicker(a);this._updateAlternate(a)}},_getDateDatepicker:function(a,b){(a=this._getInst(a))&&!a.inline&&this._setDateFromField(a,b);return a?this._getDate(a):null},_doKeyDown:function(a){var b=d.datepicker._getInst(a.target),c=true,e=b.dpDiv.is(".ui-datepicker-rtl");b._keyEvent=true;if(d.datepicker._datepickerShowing)switch(a.keyCode){case 9:d.datepicker._hideDatepicker();c=false;break;case 13:c=d("td."+d.datepicker._dayOverClass+":not(."+d.datepicker._currentClass+")",b.dpDiv);c[0]?
-d.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,c[0]):d.datepicker._hideDatepicker();return false;case 27:d.datepicker._hideDatepicker();break;case 33:d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 34:d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 35:if(a.ctrlKey||a.metaKey)d.datepicker._clearDate(a.target);c=a.ctrlKey||
-a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)d.datepicker._gotoToday(a.target);c=a.ctrlKey||a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?+1:-1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 38:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,-7,"D");c=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,
-e?-1:+1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 40:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,+7,"D");c=a.ctrlKey||a.metaKey;break;default:c=false}else if(a.keyCode==36&&a.ctrlKey)d.datepicker._showDatepicker(this);else c=false;if(c){a.preventDefault();a.stopPropagation()}},_doKeyPress:function(a){var b=d.datepicker._getInst(a.target);if(d.datepicker._get(b,
-"constrainInput")){b=d.datepicker._possibleChars(d.datepicker._get(b,"dateFormat"));var c=String.fromCharCode(a.charCode==G?a.keyCode:a.charCode);return a.ctrlKey||a.metaKey||c<" "||!b||b.indexOf(c)>-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},
-_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);d.datepicker._curInst&&d.datepicker._curInst!=b&&d.datepicker._curInst.dpDiv.stop(true,true);var c=d.datepicker._get(b,"beforeShow");E(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=
-d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,
-c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){d.datepicker._datepickerShowing=true;var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.effects&&
-d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=this,c=d.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a));var e=a.dpDiv.find("iframe.ui-datepicker-cover");e.length&&e.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",
-function(){d(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!b._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");d(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=
--1&&d(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).addClass("ui-datepicker-next-hover")}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();c=this._getNumberOfMonths(a);e=c[1];e>1?a.dpDiv.addClass("ui-datepicker-multi-"+e).css("width",17*e+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(c[0]!=1||c[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,
-"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var f=a.yearshtml;setTimeout(function(){f===a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);f=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),
-parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,
-b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);
-this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();if(a=this._get(b,"onClose"))a.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},
-_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):
-0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=
-false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear=!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=
-d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);
-else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=
-a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,
-g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=z+1<a.length&&a.charAt(z+1)==p)&&z++;return p},m=function(p){var v=o(p);p=new RegExp("^\\d{1,"+(p=="@"?14:p=="!"?20:p=="y"&&v?4:p=="o"?3:2)+"}");p=b.substring(s).match(p);if(!p)throw"Missing number at position "+s;s+=p[0].length;return parseInt(p[0],10)},n=function(p,v,H){p=o(p)?H:v;for(v=0;v<p.length;v++)if(b.substr(s,p[v].length).toLowerCase()==p[v].toLowerCase()){s+=p[v].length;return v+1}throw"Unknown name at position "+
-s;},r=function(){if(b.charAt(s)!=a.charAt(z))throw"Unexpected literal at position "+s;s++},s=0,z=0;z<a.length;z++)if(k)if(a.charAt(z)=="'"&&!o("'"))k=false;else r();else switch(a.charAt(z)){case "d":l=m("d");break;case "D":n("D",f,h);break;case "o":u=m("o");break;case "m":j=m("m");break;case "M":j=n("M",i,g);break;case "y":c=m("y");break;case "@":var w=new Date(m("@"));c=w.getFullYear();j=w.getMonth()+1;l=w.getDate();break;case "!":w=new Date((m("!")-this._ticksTo1970)/1E4);c=w.getFullYear();j=w.getMonth()+
-1;l=w.getDate();break;case "'":if(o("'"))r();else k=true;break;default:r()}if(c==-1)c=(new Date).getFullYear();else if(c<100)c+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c<=e?0:-100);if(u>-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}w=this._daylightSavingAdjust(new Date(c,j-1,l));if(w.getFullYear()!=c||w.getMonth()+1!=j||w.getDate()!=l)throw"Invalid date";return w},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",
-RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+1<a.length&&
-a.charAt(k+1)==o)&&k++;return o},g=function(o,m,n){m=""+m;if(i(o))for(;m.length<n;)m="0"+m;return m},j=function(o,m,n,r){return i(o)?r[m]:n[m]},l="",u=false;if(b)for(var k=0;k<a.length;k++)if(u)if(a.charAt(k)=="'"&&!i("'"))u=false;else l+=a.charAt(k);else switch(a.charAt(k)){case "d":l+=g("d",b.getDate(),2);break;case "D":l+=j("D",b.getDay(),e,f);break;case "o":l+=g("o",(b.getTime()-(new Date(b.getFullYear(),0,0)).getTime())/864E5,3);break;case "m":l+=g("m",b.getMonth()+1,2);break;case "M":l+=j("M",
-b.getMonth(),h,c);break;case "y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case "@":l+=b.getTime();break;case "!":l+=b.getTime()*1E4+this._ticksTo1970;break;case "'":if(i("'"))l+="'";else u=true;break;default:l+=a.charAt(k)}return l},_possibleChars:function(a){for(var b="",c=false,e=function(h){(h=f+1<a.length&&a.charAt(f+1)==h)&&f++;return h},f=0;f<a.length;f++)if(c)if(a.charAt(f)=="'"&&!e("'"))c=false;else b+=a.charAt(f);else switch(a.charAt(f)){case "d":case "m":case "y":case "@":b+=
-"0123456789";break;case "D":case "M":return null;case "'":if(e("'"))b+="'";else c=true;break;default:b+=a.charAt(f)}return b},_get:function(a,b){return a.settings[b]!==G?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var c=this._get(a,"dateFormat"),e=a.lastVal=a.input?a.input.val():null,f,h;f=h=this._getDefaultDate(a);var i=this._getFormatConfig(a);try{f=this.parseDate(c,e,i)||h}catch(g){this.log(g);e=b?"":e}a.selectedDay=f.getDate();a.drawMonth=a.selectedMonth=
-f.getMonth();a.drawYear=a.selectedYear=f.getFullYear();a.currentDay=e?f.getDate():0;a.currentMonth=e?f.getMonth():0;a.currentYear=e?f.getFullYear():0;this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var e=function(h){var i=new Date;i.setDate(i.getDate()+h);return i},f=function(h){try{return d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),h,d.datepicker._getFormatConfig(a))}catch(i){}var g=
-(h.toLowerCase().match(/^c/)?d.datepicker._getDate(a):null)||new Date,j=g.getFullYear(),l=g.getMonth();g=g.getDate();for(var u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,k=u.exec(h);k;){switch(k[2]||"d"){case "d":case "D":g+=parseInt(k[1],10);break;case "w":case "W":g+=parseInt(k[1],10)*7;break;case "m":case "M":l+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break;case "y":case "Y":j+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break}k=u.exec(h)}return new Date(j,
-l,g)};if(b=(b=b==null||b===""?c:typeof b=="string"?f(b):typeof b=="number"?isNaN(b)?c:e(b):new Date(b.getTime()))&&b.toString()=="Invalid Date"?c:b){b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0)}return this._daylightSavingAdjust(b)},_daylightSavingAdjust:function(a){if(!a)return null;a.setHours(a.getHours()>12?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=
-a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),
-b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=
-this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&n<k?k:n;this._daylightSavingAdjust(new Date(m,g,1))>n;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', -"+j+", 'M');\" title=\""+n+'"><span class="ui-icon ui-icon-circle-triangle-'+
-(c?"e":"w")+'">'+n+"</span></a>":f?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>";var r=this._get(a,"nextText");r=!h?r:this.formatDate(r,this._daylightSavingAdjust(new Date(m,g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', +"+j+", 'M');\" title=\""+r+'"><span class="ui-icon ui-icon-circle-triangle-'+
-(c?"w":"e")+'">'+r+"</span></a>":f?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+r+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+r+"</span></a>";j=this._get(a,"currentText");r=this._get(a,"gotoCurrent")&&a.currentDay?u:b;j=!h?j:this.formatDate(j,r,this._getFormatConfig(a));h=!a.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+y+'.datepicker._hideDatepicker();">'+this._get(a,
-"closeText")+"</button>":"";e=e?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?h:"")+(this._isInRange(a,r)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._gotoToday('#"+a.id+"');\">"+j+"</button>":"")+(c?"":h)+"</div>":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");r=this._get(a,"dayNames");this._get(a,"dayNamesShort");var s=this._get(a,"dayNamesMin"),z=
-this._get(a,"monthNames"),w=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),v=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var L=this._getDefaultDate(a),I="",C=0;C<i[0];C++){for(var M="",D=0;D<i[1];D++){var N=this._daylightSavingAdjust(new Date(m,g,a.selectedDay)),t=" ui-corner-all",x="";if(l){x+='<div class="ui-datepicker-group';if(i[1]>1)switch(D){case 0:x+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-
-1:x+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:x+=" ui-datepicker-group-middle";t="";break}x+='">'}x+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+t+'">'+(/all|left/.test(t)&&C==0?c?f:n:"")+(/all|right/.test(t)&&C==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,C>0||D>0,z,w)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var A=j?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(t=0;t<7;t++){var q=
-(t+h)%7;A+="<th"+((t+h+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+r[q]+'">'+s[q]+"</span></th>"}x+=A+"</tr></thead><tbody>";A=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,A);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;A=l?6:Math.ceil((t+A)/7);q=this._daylightSavingAdjust(new Date(m,g,1-t));for(var O=0;O<A;O++){x+="<tr>";var P=!j?"":'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(q)+"</td>";for(t=0;t<7;t++){var F=
-p?p.apply(a.input?a.input[0]:null,[q]):[true,""],B=q.getMonth()!=g,J=B&&!H||!F[0]||k&&q<k||o&&q>o;P+='<td class="'+((t+h+6)%7>=5?" ui-datepicker-week-end":"")+(B?" ui-datepicker-other-month":"")+(q.getTime()==N.getTime()&&g==a.selectedMonth&&a._keyEvent||L.getTime()==q.getTime()&&L.getTime()==N.getTime()?" "+this._dayOverClass:"")+(J?" "+this._unselectableClass+" ui-state-disabled":"")+(B&&!v?"":" "+F[1]+(q.getTime()==u.getTime()?" "+this._currentClass:"")+(q.getTime()==b.getTime()?" ui-datepicker-today":
-""))+'"'+((!B||v)&&F[2]?' title="'+F[2]+'"':"")+(J?"":' onclick="DP_jQuery_'+y+".datepicker._selectDay('#"+a.id+"',"+q.getMonth()+","+q.getFullYear()+', this);return false;"')+">"+(B&&!v?"&#xa0;":J?'<span class="ui-state-default">'+q.getDate()+"</span>":'<a class="ui-state-default'+(q.getTime()==b.getTime()?" ui-state-highlight":"")+(q.getTime()==u.getTime()?" ui-state-active":"")+(B?" ui-priority-secondary":"")+'" href="#">'+q.getDate()+"</a>")+"</td>";q.setDate(q.getDate()+1);q=this._daylightSavingAdjust(q)}x+=
-P+"</tr>"}g++;if(g>11){g=0;m++}x+="</tbody></table>"+(l?"</div>"+(i[0]>0&&D==i[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");M+=x}I+=M}I+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");a._keyEvent=false;return I},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='<div class="ui-datepicker-title">',
-o="";if(h||!j)o+='<span class="ui-datepicker-month">'+i[b]+"</span>";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');\">";for(var n=0;n<12;n++)if((!i||n>=e.getMonth())&&(!m||n<=f.getMonth()))o+='<option value="'+n+'"'+(n==b?' selected="selected"':"")+">"+g[n]+"</option>";o+="</select>"}u||(k+=o+(h||!(j&&
-l)?"&#xa0;":""));a.yearshtml="";if(h||!l)k+='<span class="ui-datepicker-year">'+c+"</span>";else{g=this._get(a,"yearRange").split(":");var r=(new Date).getFullYear();i=function(s){s=s.match(/c[+-].*/)?c+parseInt(s.substring(1),10):s.match(/[+-].*/)?r+parseInt(s,10):parseInt(s,10);return isNaN(s)?r:s};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+
-a.id+"', this, 'Y');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');\">";b<=g;b++)a.yearshtml+='<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";a.yearshtml+="</select>";if(d.browser.mozilla)k+='<select class="ui-datepicker-year"><option value="'+c+'" selected="selected">'+c+"</option></select>";else{k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?"&#xa0;":"")+o;k+="</div>";return k},_adjustInstDate:function(a,b,c){var e=
-a.drawYear+(c=="Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&b<c?c:b;return b=a&&b>a?a:b},_notifyChange:function(a){var b=this._get(a,
-"onChangeMonthYear");if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);
-c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,
-"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=
-function(a){if(!this.length)return this;if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,
-[this[0]].concat(b));return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new K;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.10";window["DP_jQuery_"+y]=d})(jQuery);
-;/*
- * jQuery UI Progressbar 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- */
-(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
-this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*
-this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.10"})})(jQuery);
-;/*
- * jQuery UI Effects 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/
- */
-jQuery.effects||function(f,j){function n(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
-16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return o.transparent;return o[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return n(b)}function p(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,
-a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function q(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d=
-a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function m(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor",
-"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=n(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var o={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,
-0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,
-211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},r=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,
-d){if(f.isFunction(b)){d=b;b=null}return this.queue("fx",function(){var e=f(this),g=e.attr("style")||" ",h=q(p.call(this)),l,v=e.attr("className");f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});l=q(p.call(this));e.attr("className",v);e.animate(u(h,l),a,b,function(){f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments)});h=f.queue(this);l=h.splice(h.length-1,1)[0];
-h.splice(1,0,l);f.dequeue(this)})};f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,
-a):f.effects.animateClass.apply(this,[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.10",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,
-a){var b;switch(c[0]){case "top":b=0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",
-border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);
-return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(m(c))return this._show.apply(this,arguments);
-else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(m(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(m(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),
-b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,
-a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,
-a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==
-e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=
-g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/
-h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,
-a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
-;/*
- * jQuery UI Effects Blind 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Blind
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(b){b.effects.blind=function(c){return this.queue(function(){var a=b(this),g=["position","top","bottom","left","right"],f=b.effects.setMode(a,c.options.mode||"hide"),d=c.options.direction||"vertical";b.effects.save(a,g);a.show();var e=b.effects.createWrapper(a).css({overflow:"hidden"}),h=d=="vertical"?"height":"width";d=d=="vertical"?e.height():e.width();f=="show"&&e.css(h,0);var i={};i[h]=f=="show"?d:0;e.animate(i,c.duration,c.options.easing,function(){f=="hide"&&a.hide();b.effects.restore(a,
-g);b.effects.removeWrapper(a);c.callback&&c.callback.apply(a[0],arguments);a.dequeue()})})}})(jQuery);
-;/*
- * jQuery UI Effects Bounce 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Bounce
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(e){e.effects.bounce=function(b){return this.queue(function(){var a=e(this),l=["position","top","bottom","left","right"],h=e.effects.setMode(a,b.options.mode||"effect"),d=b.options.direction||"up",c=b.options.distance||20,m=b.options.times||5,i=b.duration||250;/show|hide/.test(h)&&l.push("opacity");e.effects.save(a,l);a.show();e.effects.createWrapper(a);var f=d=="up"||d=="down"?"top":"left";d=d=="up"||d=="left"?"pos":"neg";c=b.options.distance||(f=="top"?a.outerHeight({margin:true})/3:a.outerWidth({margin:true})/
-3);if(h=="show")a.css("opacity",0).css(f,d=="pos"?-c:c);if(h=="hide")c/=m*2;h!="hide"&&m--;if(h=="show"){var g={opacity:1};g[f]=(d=="pos"?"+=":"-=")+c;a.animate(g,i/2,b.options.easing);c/=2;m--}for(g=0;g<m;g++){var j={},k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing);c=h=="hide"?c*2:c/2}if(h=="hide"){g={opacity:0};g[f]=(d=="pos"?"-=":"+=")+c;a.animate(g,i/2,b.options.easing,function(){a.hide();e.effects.restore(a,l);e.effects.removeWrapper(a);
-b.callback&&b.callback.apply(this,arguments)})}else{j={};k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing,function(){e.effects.restore(a,l);e.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments)})}a.queue("fx",function(){a.dequeue()});a.dequeue()})}})(jQuery);
-;/*
- * jQuery UI Effects Clip 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Clip
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(b){b.effects.clip=function(e){return this.queue(function(){var a=b(this),i=["position","top","bottom","left","right","height","width"],f=b.effects.setMode(a,e.options.mode||"hide"),c=e.options.direction||"vertical";b.effects.save(a,i);a.show();var d=b.effects.createWrapper(a).css({overflow:"hidden"});d=a[0].tagName=="IMG"?d:a;var g={size:c=="vertical"?"height":"width",position:c=="vertical"?"top":"left"};c=c=="vertical"?d.height():d.width();if(f=="show"){d.css(g.size,0);d.css(g.position,
-c/2)}var h={};h[g.size]=f=="show"?c:0;h[g.position]=f=="show"?0:c/2;d.animate(h,{queue:false,duration:e.duration,easing:e.options.easing,complete:function(){f=="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);e.callback&&e.callback.apply(a[0],arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Drop 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Drop
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(c){c.effects.drop=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right","opacity"],e=c.effects.setMode(a,d.options.mode||"hide"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a);var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true})/2:a.outerWidth({margin:true})/2);if(e=="show")a.css("opacity",0).css(f,b=="pos"?-g:g);var i={opacity:e==
-"show"?1:0};i[f]=(e=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Explode 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Explode
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(j){j.effects.explode=function(a){return this.queue(function(){var c=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3,d=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3;a.options.mode=a.options.mode=="toggle"?j(this).is(":visible")?"hide":"show":a.options.mode;var b=j(this).show().css("visibility","hidden"),g=b.offset();g.top-=parseInt(b.css("marginTop"),10)||0;g.left-=parseInt(b.css("marginLeft"),10)||0;for(var h=b.outerWidth(true),i=b.outerHeight(true),e=0;e<c;e++)for(var f=
-0;f<d;f++)b.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+
-e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery);
-;/*
- * jQuery UI Effects Fade 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Fade
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Fold 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Fold
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1],
-10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery);
-;/*
- * jQuery UI Effects Highlight 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Highlight
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&&
-this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Pulsate 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Pulsate
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c<times;c++){b.animate({opacity:animateTo},duration,a.options.easing);animateTo=(animateTo+1)%2}b.animate({opacity:animateTo},duration,
-a.options.easing,function(){animateTo==0&&b.hide();a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()}).dequeue()})}})(jQuery);
-;/*
- * jQuery UI Effects Scale 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Scale
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(c){c.effects.puff=function(b){return this.queue(function(){var a=c(this),e=c.effects.setMode(a,b.options.mode||"hide"),g=parseInt(b.options.percent,10)||150,h=g/100,i={height:a.height(),width:a.width()};c.extend(b.options,{fade:true,mode:e,percent:e=="hide"?g:100,from:e=="hide"?i:{height:i.height*h,width:i.width*h}});a.effect("scale",b.options,b.duration,b.callback);a.dequeue()})};c.effects.scale=function(b){return this.queue(function(){var a=c(this),e=c.extend(true,{},b.options),g=c.effects.setMode(a,
-b.options.mode||"effect"),h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:g=="hide"?0:100),i=b.options.direction||"both",f=b.options.origin;if(g!="effect"){e.origin=f||["middle","center"];e.restore=true}f={height:a.height(),width:a.width()};a.from=b.options.from||(g=="show"?{height:0,width:0}:f);h={y:i!="horizontal"?h/100:1,x:i!="vertical"?h/100:1};a.to={height:f.height*h.y,width:f.width*h.x};if(b.options.fade){if(g=="show"){a.from.opacity=0;a.to.opacity=1}if(g=="hide"){a.from.opacity=
-1;a.to.opacity=0}}e.from=a.from;e.to=a.to;e.mode=g;a.effect("size",e,b.duration,b.callback);a.dequeue()})};c.effects.size=function(b){return this.queue(function(){var a=c(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],g=["position","top","bottom","left","right","overflow","opacity"],h=["width","height","overflow"],i=["fontSize"],f=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],
-p=c.effects.setMode(a,b.options.mode||"effect"),n=b.options.restore||false,m=b.options.scale||"both",l=b.options.origin,j={height:a.height(),width:a.width()};a.from=b.options.from||j;a.to=b.options.to||j;if(l){l=c.effects.getBaseline(l,j);a.from.top=(j.height-a.from.height)*l.y;a.from.left=(j.width-a.from.width)*l.x;a.to.top=(j.height-a.to.height)*l.y;a.to.left=(j.width-a.to.width)*l.x}var d={from:{y:a.from.height/j.height,x:a.from.width/j.width},to:{y:a.to.height/j.height,x:a.to.width/j.width}};
-if(m=="box"||m=="both"){if(d.from.y!=d.to.y){e=e.concat(f);a.from=c.effects.setTransition(a,f,d.from.y,a.from);a.to=c.effects.setTransition(a,f,d.to.y,a.to)}if(d.from.x!=d.to.x){e=e.concat(k);a.from=c.effects.setTransition(a,k,d.from.x,a.from);a.to=c.effects.setTransition(a,k,d.to.x,a.to)}}if(m=="content"||m=="both")if(d.from.y!=d.to.y){e=e.concat(i);a.from=c.effects.setTransition(a,i,d.from.y,a.from);a.to=c.effects.setTransition(a,i,d.to.y,a.to)}c.effects.save(a,n?e:g);a.show();c.effects.createWrapper(a);
-a.css("overflow","hidden").css(a.from);if(m=="content"||m=="both"){f=f.concat(["marginTop","marginBottom"]).concat(i);k=k.concat(["marginLeft","marginRight"]);h=e.concat(f).concat(k);a.find("*[width]").each(function(){child=c(this);n&&c.effects.save(child,h);var o={height:child.height(),width:child.width()};child.from={height:o.height*d.from.y,width:o.width*d.from.x};child.to={height:o.height*d.to.y,width:o.width*d.to.x};if(d.from.y!=d.to.y){child.from=c.effects.setTransition(child,f,d.from.y,child.from);
-child.to=c.effects.setTransition(child,f,d.to.y,child.to)}if(d.from.x!=d.to.x){child.from=c.effects.setTransition(child,k,d.from.x,child.from);child.to=c.effects.setTransition(child,k,d.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){n&&c.effects.restore(child,h)})})}a.animate(a.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){a.to.opacity===0&&a.css("opacity",a.from.opacity);p=="hide"&&a.hide();c.effects.restore(a,
-n?e:g);c.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Shake 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Shake
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(d){d.effects.shake=function(a){return this.queue(function(){var b=d(this),j=["position","top","bottom","left","right"];d.effects.setMode(b,a.options.mode||"effect");var c=a.options.direction||"left",e=a.options.distance||20,l=a.options.times||3,f=a.duration||a.options.duration||140;d.effects.save(b,j);b.show();d.effects.createWrapper(b);var g=c=="up"||c=="down"?"top":"left",h=c=="up"||c=="left"?"pos":"neg";c={};var i={},k={};c[g]=(h=="pos"?"-=":"+=")+e;i[g]=(h=="pos"?"+=":"-=")+e*2;k[g]=
-(h=="pos"?"-=":"+=")+e*2;b.animate(c,f,a.options.easing);for(e=1;e<l;e++)b.animate(i,f,a.options.easing).animate(k,f,a.options.easing);b.animate(i,f,a.options.easing).animate(c,f/2,a.options.easing,function(){d.effects.restore(b,j);d.effects.removeWrapper(b);a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()});b.dequeue()})}})(jQuery);
-;/*
- * jQuery UI Effects Slide 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Slide
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(c){c.effects.slide=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right"],f=c.effects.setMode(a,d.options.mode||"show"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a).css({overflow:"hidden"});var g=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var e=d.options.distance||(g=="top"?a.outerHeight({margin:true}):a.outerWidth({margin:true}));if(f=="show")a.css(g,b=="pos"?isNaN(e)?"-"+e:-e:e);
-var i={};i[g]=(f=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+e;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){f=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Transfer 1.8.10
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Transfer
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(e){e.effects.transfer=function(a){return this.queue(function(){var b=e(this),c=e(a.options.to),d=c.offset();c={top:d.top,left:d.left,height:c.innerHeight(),width:c.innerWidth()};d=b.offset();var f=e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments);
-b.dequeue()})})}})(jQuery);
-; \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/content.inline.min.css b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/content.inline.min.css
deleted file mode 100644
index 9f194f6a6..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/content.inline.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.mce-object{border:1px dotted #3A3A3A;background:#d5d5d5 url(img/object.gif) no-repeat center}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0px}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#d5d5d5 url(img/anchor.gif) no-repeat center}.mce-nbsp{background:#AAA}hr{cursor:default}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid #F00;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td.mce-item-selected,th.mce-item-selected{background-color:#3399ff !important}.mce-edit-focus{outline:1px dotted #333} \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/content.min.css b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/content.min.css
deleted file mode 100644
index ea08c6896..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/content.min.css
+++ /dev/null
@@ -1 +0,0 @@
-body{background-color:#FFFFFF;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDDDDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px}.mce-object{border:1px dotted #3A3A3A;background:#d5d5d5 url(img/object.gif) no-repeat center}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0px}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#d5d5d5 url(img/anchor.gif) no-repeat center}.mce-nbsp{background:#AAA}hr{cursor:default}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid #F00;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td.mce-item-selected,th.mce-item-selected{background-color:#3399ff !important}.mce-edit-focus{outline:1px dotted #333} \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/readme.md b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/readme.md
deleted file mode 100644
index fa5d63946..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-Icons are generated and provided by the http://icomoon.io service.
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.dev.svg b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.dev.svg
deleted file mode 100644
index 578b86954..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.dev.svg
+++ /dev/null
@@ -1,175 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata>
-This is a custom SVG font generated by IcoMoon.
-<iconset grid="16"></iconset>
-</metadata>
-<defs>
-<font id="tinymce-small" horiz-adv-x="512" >
-<font-face units-per-em="512" ascent="480" descent="-32" />
-<missing-glyph horiz-adv-x="512" />
-<glyph class="hidden" unicode="&#xf000;" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
-<glyph unicode="&#xe020;" d="M 352,64l0,18.502 c 75.674,30.814, 128,96.91, 128,173.498c0,106.039-100.288,192-224,192S 32,362.039, 32,256
- c0-76.588, 52.327-142.684, 128-173.498L 160,64 L 64,64 l-32,48l0-112 l 160,0 L 192,111.406 c-50.45,25.681-85.333,80.77-85.333,144.594
- c0,88.366, 66.859,160, 149.333,160c 82.474,0, 149.333-71.634, 149.333-160c0-63.824-34.883-118.913-85.333-144.594L 320,0 l 160,0 L 480,112 l-32-48
- L 352,64 z" />
-<glyph unicode="&#xe013;" d="M 128,448l0-448 l 128,128l 128-128L 384,448 L 128,448 z M 352,85.255l-96,96l-96-96L 160,416 l 192,0 L 352,85.255 z" />
-<glyph unicode="&#xe012;" d="M 463.637,364.892l-66.745,66.744C 386.34,442.188, 372.276,448, 357.293,448s-29.047-5.812-39.598-16.363l-82.746-82.745
- c-21.834-21.834-21.834-57.362,0-79.196l 1.373-1.373l 33.941,33.941l-1.373,1.373c-3.066,3.066-3.066,8.247,0,11.313l 82.746,82.746
- C 353.641,399.7, 356.040,400, 357.292,400s 3.651-0.299, 5.656-2.305l 66.745-66.744c 3.066-3.067, 3.066-8.249, 0.001-11.314l-82.747-82.747
- c-2.004-2.004-4.403-2.304-5.655-2.304s-3.651,0.3-5.656,2.306l-1.373,1.373l-33.94-33.942l 1.371-1.371
- c 10.553-10.554, 24.615-16.364, 39.6-16.364s 29.047,5.812, 39.598,16.363l 82.747,82.746C 485.47,307.53, 485.47,343.057, 463.637,364.892
- zM 275.678,179.678l-33.941-33.941l 1.373-1.373c 2.004-2.004, 2.305-4.403, 2.305-5.655c0-1.253-0.299-3.651-2.303-5.657
- l-82.747-82.745c-2.005-2.005-4.405-2.305-5.657-2.305s-3.652,0.3-5.657,2.305L 82.305,117.050C 80.3,119.055, 80,121.455, 80,122.707
- s 0.299,3.65, 2.305,5.656l 82.745,82.744c 2.005,2.006, 4.405,2.306, 5.657,2.306s 3.652-0.3, 5.657-2.306l 1.373-1.371l 33.941,33.94
- l-1.373,1.373c-10.552,10.552-24.615,16.363-39.598,16.363s-29.046-5.812-39.598-16.363l-82.744-82.743
- C 37.812,151.754, 32,137.689, 32,122.707s 5.812-29.047, 16.363-39.599l 66.745-66.745C 125.661,5.812, 139.724,0, 154.707,0
- s 29.046,5.812, 39.598,16.363l 82.747,82.746c 10.552,10.552, 16.361,24.615, 16.361,39.598s-5.812,29.047-16.363,39.598
- L 275.678,179.678zM 400,61c-4.862,0-9.725,1.854-13.435,5.565l-64,63.999c-7.422,7.42-7.422,19.449,0,26.869
- c 7.42,7.422, 19.448,7.422, 26.868,0l 64-64c 7.422-7.42, 7.422-19.448,0-26.868C 409.725,62.854, 404.862,61, 400,61zM 304,0c-8.837,0-16,7.163-16,16l0,64 c0,8.837, 7.163,16, 16,16s 16-7.163, 16-16l0-64 C 320,7.163, 312.837,0, 304,0zM 464,160l-64,0 c-8.837,0-16,7.163-16,16s 7.163,16, 16,16l 64,0 c 8.837,0, 16-7.163, 16-16S 472.837,160, 464,160zM 112,387c 4.862,0, 9.725-1.854, 13.435-5.565l 64-64c 7.421-7.42, 7.421-19.449,0-26.869c-7.42-7.422-19.449-7.422-26.869,0
- l-64,64c-7.421,7.42-7.421,19.449,0,26.869C 102.275,385.146, 107.138,387, 112,387zM 208,448c 8.837,0, 16-7.163, 16-16l0-64 c0-8.837-7.163-16-16-16s-16,7.163-16,16L 192,432 C 192,440.837, 199.163,448, 208,448zM 48,288l 64,0 c 8.837,0, 16-7.163, 16-16s-7.163-16-16-16L 48,256 c-8.837,0-16,7.163-16,16S 39.163,288, 48,288z" />
-<glyph unicode="&#xe011;" d="M 463.637,364.892l-66.745,66.744C 386.34,442.188, 372.276,448, 357.293,448s-29.047-5.812-39.598-16.363l-82.746-82.745
- c-21.834-21.834-21.834-57.362,0-79.196l 1.373-1.373l 33.941,33.941l-1.373,1.373c-3.066,3.066-3.066,8.247,0,11.313l 82.746,82.746
- C 353.641,399.7, 356.040,400, 357.292,400s 3.651-0.299, 5.656-2.305l 66.745-66.744c 3.066-3.067, 3.066-8.249, 0.001-11.314l-82.747-82.747
- c-2.004-2.004-4.403-2.304-5.655-2.304s-3.651,0.3-5.656,2.306l-1.373,1.373l-33.94-33.942l 1.371-1.371
- c 10.553-10.554, 24.615-16.364, 39.6-16.364s 29.047,5.812, 39.598,16.363l 82.747,82.746C 485.47,307.53, 485.47,343.057, 463.637,364.892
- zM 275.678,179.678l-33.941-33.941l 1.373-1.373c 2.004-2.004, 2.305-4.403, 2.305-5.655c0-1.253-0.299-3.651-2.303-5.657
- l-82.747-82.745c-2.005-2.005-4.405-2.305-5.657-2.305s-3.652,0.3-5.657,2.305L 82.305,117.050C 80.3,119.055, 80,121.455, 80,122.707
- s 0.299,3.65, 2.305,5.656l 82.745,82.744c 2.005,2.006, 4.405,2.306, 5.657,2.306s 3.652-0.3, 5.657-2.306l 1.373-1.371l 33.941,33.94
- l-1.373,1.373c-10.552,10.552-24.615,16.363-39.598,16.363s-29.046-5.812-39.598-16.363l-82.744-82.743
- C 37.812,151.754, 32,137.689, 32,122.707s 5.812-29.047, 16.363-39.599l 66.745-66.745C 125.661,5.812, 139.724,0, 154.707,0
- s 29.046,5.812, 39.598,16.363l 82.747,82.746c 10.552,10.552, 16.361,24.615, 16.361,39.598s-5.812,29.047-16.363,39.598
- L 275.678,179.678zM 176,125c-4.862,0-9.725,1.855-13.435,5.564c-7.42,7.42-7.42,19.449,0,26.869l 160,160c 7.42,7.42, 19.448,7.42, 26.868,0
- c 7.422-7.42, 7.422-19.45,0-26.87l-160-160C 185.725,126.855, 180.862,125, 176,125z" />
-<glyph unicode="&#xe010;" d="M 288,339.337L 288,448 l 168.001-168L 288,112L 288,223.048 C 92.547,227.633, 130.5,99.5, 160,0C 16,160, 53.954,345.437, 288,339.337z" />
-<glyph unicode="&#xe00f;" d="M 352,0c 29.5,99.5, 67.453,227.633-128,223.048L 224,112 L 55.999,280L 224,448l0-108.663 C 458.046,345.437, 496,160, 352,0z" />
-<glyph unicode="&#xe00e;" d="M 128.214,267.637c 52.9,0, 95.786-45.585, 95.786-101.819C 224,109.586, 181.114,64, 128.214,64
- c-52.901,0-95.786,45.585-95.786,101.818L 32,180.364C 32,292.829, 117.77,384, 223.572,384l0-58.182 c-36.55,0-70.913-15.13-96.758-42.602
- c-4.977-5.289-9.517-10.917-13.612-16.828C 118.094,267.208, 123.105,267.637, 128.214,267.637zM 384.214,267.637c 52.9,0, 95.786-45.585, 95.786-101.819C 480,109.586, 437.114,64, 384.214,64
- c-52.901,0-95.786,45.585-95.786,101.818L 288,180.364C 288,292.829, 373.77,384, 479.572,384l0-58.182 c-36.55,0-70.913-15.13-96.758-42.602
- c-4.978-5.289-9.518-10.917-13.612-16.828C 374.094,267.208, 379.105,267.637, 384.214,267.637z" />
-<glyph unicode="&#xe00c;" d="M 32,384L 480,384L 480,320L 32,320zM 192,192L 480,192L 480,128L 192,128zM 192,288L 480,288L 480,224L 192,224zM 32,96L 480,96L 480,32L 32,32zM 32,288L 144,208L 32,128 z" />
-<glyph unicode="&#xe00d;" d="M 32,384L 480,384L 480,320L 32,320zM 32,192L 320,192L 320,128L 32,128zM 32,288L 320,288L 320,224L 32,224zM 32,96L 480,96L 480,32L 32,32zM 480,288L 368,208L 480,128 z" />
-<glyph unicode="&#xe00b;" d="M 192,416L 480,416L 480,352L 192,352zM 192,256L 480,256L 480,192L 192,192zM 192,96L 480,96L 480,32L 192,32zM 160,215L 160,288L 128,288L 128,448L 64,448L 64,416L 96,416L 96,288L 64,288L 64,256L 128,256L 128,231L 64,201L 64,128L 128,128L 128,96L 64,96L 64,64L 128,64L 128,32L 64,32L 64,0L 160,0L 160,160L 96,160L 96,185 z" />
-<glyph unicode="&#xe00a;" d="M 192,416L 480,416L 480,352L 192,352zM 192,256L 480,256L 480,192L 192,192zM 192,96L 480,96L 480,32L 192,32zM 64,384A32,32 2700 1 1 128,384A32,32 2700 1 1 64,384zM 64,224A32,32 2700 1 1 128,224A32,32 2700 1 1 64,224zM 64,64A32,32 2700 1 1 128,64A32,32 2700 1 1 64,64z" />
-<glyph unicode="&#xe009;" d="M 444,288l-28,0 L 416,416 l 32,0 L 448,448 L 288,448 l0-32 l 32,0 l0-128 L 192,288 L 192,416 l 32,0 L 224,448 L 64,448 l0-32 l 32,0 l0-128 L 68,288 c-19.8,0-36-16.2-36-36l0-216 c0-19.8, 16.2-36, 36-36l 120,0
- c 19.8,0, 36,16.2, 36,36L 224,192 l 64,0 l0-156 c0-19.8, 16.2-36, 36-36l 120,0 c 19.8,0, 36,16.2, 36,36L 480,252 C 480,271.8, 463.8,288, 444,288z M 174,32L 82,32
- c-9.9,0-18,7.2-18,16s 8.1,16, 18,16l 92,0 c 9.9,0, 18-7.2, 18-16S 183.9,32, 174,32z M 272,224l-32,0 c-8.8,0-16,7.2-16,16s 7.2,16, 16,16l 32,0
- c 8.8,0, 16-7.2, 16-16S 280.8,224, 272,224z M 430,32l-92,0 c-9.9,0-18,7.2-18,16s 8.1,16, 18,16l 92,0 c 9.9,0, 18-7.2, 18-16S 439.9,32, 430,32z" />
-<glyph unicode="&#xe008;" d="M 352,288l0,80 c0,8.8-7.2,16-16,16l-80,0 L 256,416 c0,17.6-14.4,32-32,32l-64,0 c-17.602,0-32-14.4-32-32l0-32 L 48,384 c-8.801,0-16-7.2-16-16l0-256
- c0-8.8, 7.199-16, 16-16l 112,0 l0-96 l 192,0 l 96,96L 448,288 L 352,288 z M 160,415.943c 0.017,0.019, 0.036,0.039, 0.057,0.057l 63.884,0
- c 0.021-0.018, 0.041-0.038, 0.059-0.057L 224,384 l-64,0 L 160,415.943 L 160,415.943z M 96,320l0,32 l 192,0 l0-32 L 96,320 z M 352,45.255L 352,96 l 50.745,0 L 352,45.255z
- M 416,128l-96,0 l0-96 L 192,32 L 192,256 l 224,0 L 416,128 z" />
-<glyph unicode="&#xe031;" d="M 416,320l-96,0 l0,32 l-96,96L 32,448 l0-352 l 192,0 l0-96 l 288,0 L 512,224 L 416,320z M 416,274.745L 466.745,224L 416,224 L 416,274.745 z M 224,402.745L 274.745,352
- L 224,352 L 224,402.745 z M 64,416l 128,0 l0-96 l 96,0 l0-192 L 64,128 L 64,416 z M 480,32L 256,32 l0,64 l 64,0 L 320,288 l 64,0 l0-96 l 96,0 L 480,32 z" />
-<glyph unicode="&#xe007;" d="M 432.204,144.934c-23.235,23.235-53.469,34.002-80.541,31.403L 320,208l 96,96c0,0, 64,64,0,128L 256,272L 96,432
- c-64-64,0-128,0-128l 96-96l-31.663-31.663c-27.072,2.599-57.305-8.169-80.54-31.403c-37.49-37.49-42.556-93.209-11.313-124.45
- c 31.241-31.241, 86.96-26.177, 124.45,11.313c 23.235,23.234, 34.001,53.469, 31.403,80.54L 256,144l 31.664-31.664
- c-2.598-27.072, 8.168-57.305, 31.403-80.539c 37.489-37.49, 93.209-42.556, 124.449-11.313
- C 474.76,51.725, 469.694,107.443, 432.204,144.934z M 176.562,100.711c-1.106-12.166-7.51-24.913-17.57-34.973
- C 147.886,54.631, 133.452,48, 120.383,48c-5.262,0-12.649,1.114-17.958,6.424c-10.703,10.702-8.688,36.566, 11.313,56.568
- c 11.106,11.107, 25.54,17.738, 38.609,17.738c 5.262,0, 12.649-1.114, 17.958-6.424C 176.861,115.751, 177.040,105.962, 176.562,100.711z
- M 256,176c-17.673,0-32,14.327-32,32s 14.327,32, 32,32s 32-14.327, 32-32S 273.673,176, 256,176z M 409.576,54.424
- c-5.31-5.31-12.696-6.424-17.958-6.424c-13.069,0-27.503,6.631-38.609,17.738c-10.061,10.060-16.464,22.807-17.569,34.973
- c-0.479,5.251-0.3,15.040, 6.257,21.596c 5.309,5.311, 12.695,6.424, 17.958,6.424c 13.068,0, 27.503-6.631, 38.608-17.737
- C 418.265,90.99, 420.279,65.126, 409.576,54.424z" />
-<glyph unicode="&#xe006;" d="M 32,384L 480,384L 480,320L 32,320zM 32,192L 480,192L 480,128L 32,128zM 32,288L 480,288L 480,224L 32,224zM 32,96L 480,96L 480,32L 32,32z" />
-<glyph unicode="&#xe004;" d="M 32,384L 480,384L 480,320L 32,320zM 32,192L 480,192L 480,128L 32,128zM 128,288L 384,288L 384,224L 128,224zM 128,96L 384,96L 384,32L 128,32z" />
-<glyph unicode="&#xe005;" d="M 32,384L 480,384L 480,320L 32,320zM 32,192L 480,192L 480,128L 32,128zM 192,288L 480,288L 480,224L 192,224zM 192,96L 480,96L 480,32L 192,32z" />
-<glyph unicode="&#xe003;" d="M 32,384L 480,384L 480,320L 32,320zM 32,192L 480,192L 480,128L 32,128zM 32,288L 320,288L 320,224L 32,224zM 32,96L 320,96L 320,32L 32,32z" />
-<glyph unicode="&#xe02d;" d="M 480,224l-4.571,0 L 347.062,224 c-25.039,17.71-57.215,27.43-91.062,27.43c-44.603,0-82.286,25.121-82.286,54.856
- c0,29.735, 37.683,54.857, 82.286,54.857c 37.529,0, 70.154-17.788, 79.56-41.143l 56.508,0 c-3.965,25.322-18.79,48.984-42.029,66.413
- C 324.599,405.493, 291.201,416, 256,416c-35.202,0-68.598-10.507-94.037-29.587c-27.394-20.545-43.106-49.751-43.106-80.127
- s 15.712-59.582, 43.106-80.127c 0.978-0.733, 1.971-1.449, 2.973-2.158L 36.571,224.001 L 32,224.001 l0-32 l 256.266,0 c 29.104-8.553, 50.021-28.135, 50.021-50.286
- c0-29.734-37.684-54.855-82.286-54.855c-37.53,0-70.154,17.787-79.559,41.143l-56.508,0 c 3.965-25.32, 18.791-48.984, 42.030-66.413
- C 187.402,42.508, 220.798,32, 256,32c 35.201,0, 68.599,10.508, 94.037,29.587c 27.395,20.545, 43.104,49.751, 43.104,80.127
- c0,17.649-5.327,34.896-15.147,50.286L 480,192 L 480,224 z" />
-<glyph unicode="&#xe02c;" d="M 96,64l 288,0 l0-32 L 96,32 L 96,64 zM 320,416l0-192 c0-15.656-7.35-30.812-20.695-42.676C 283.834,167.573, 262.771,160, 240,160c-22.772,0-43.834,7.573-59.304,21.324
- C 167.35,193.188, 160,208.344, 160,224L 160,416 L 96,416 l0-192 c0-70.691, 64.471-128, 144-128c 79.529,0, 144,57.309, 144,128L 384,416 L 320,416 z" />
-<glyph unicode="&#xe02b;" d="M 416,416l0-32 l-72,0 L 216,64l 72,0 l0-32 L 64,32 l0,32 l 72,0 L 264,384l-72,0 L 192,416 L 416,416 z" />
-<glyph unicode="&#xe02a;" d="M 312.721,232.909C 336.758,251.984, 352,280.337, 352,312c0,57.438-50.145,104-112,104L 128,416 l0-384 l 144,0
- c 61.856,0, 112,46.562, 112,104C 384,180.098, 354.441,217.781, 312.721,232.909z M 192,328c0,13.255, 10.745,24, 24,24l 33.602,0
- C 270.809,352, 288,330.51, 288,304s-17.191-48-38.398-48L 192,256 L 192,328 z M 273.6,96L 216,96 c-13.255,0-24,10.745-24,24l0,72 l 81.6,0
- c 21.209,0, 38.4-21.49, 38.4-48S 294.809,96, 273.6,96z" />
-<glyph unicode="&#xe001;" d="M 425.373,358.627l-66.746,66.745C 346.183,437.818, 321.6,448, 304,448L 96,448 c-17.6,0-32-14.4-32-32l0-384 c0-17.6, 14.4-32, 32-32l 320,0
- c 17.6,0, 32,14.4, 32,32L 448,304 C 448,321.6, 437.817,346.182, 425.373,358.627z M 402.745,336.001c 3.396-3.398, 6.896-9.581, 9.447-16.001L 320,320
- L 320,412.193 c 6.42-2.55, 12.602-6.050, 16-9.448L 402.745,336.001z M 415.942,32L 96.057,32 c-0.020,0.017-0.041,0.038-0.057,0.058L 96,415.943
- c 0.017,0.020, 0.038,0.041, 0.057,0.057L 288,416 l0-128 l 128,0 l0-255.942 C 415.983,32.038, 415.962,32.017, 415.942,32z" />
-<glyph unicode="&#xe000;" d="M 480,40L 480,335.969 L 368.031,448L 72,448 c-22.091,0-40-17.908-40-40l0-368 c0-22.092, 17.909-40, 40-40l 368,0
- C 462.092,0, 480,17.908, 480,40z M 288,384l 32,0 l0-96 l-32,0 L 288,384 z M 352,64L 160,64 L 160,191.941 c 0.017,0.021, 0.038,0.041, 0.058,0.059l 191.885,0
- c 0.020-0.018, 0.041-0.038, 0.058-0.059L 352,64L 352,64z M 416,64l-32,0 L 384,192 c0,17.6-14.4,32-32,32L 160,224 c-17.6,0-32-14.4-32-32l0-128 L 96,64 L 96,384
- l 32,0 l0-96 c0-17.6, 14.4-32, 32-32l 160,0 c 17.6,0, 32,14.4, 32,32l0,85.505 l 64-64.036L 416,64 z" />
-<glyph unicode="&#xe01b;" d="M 32,384l0-352 l 448,0 L 480,384 L 32,384 z M 192,160l0,64 l 128,0 l0-64 L 192,160 z M 320,128l0-64 L 192,64 l0,64 L 320,128 z M 320,320l0-64 L 192,256 l0,64 L 320,320 z M 160,320l0-64 L 64,256 l0,64 L 160,320
- z M 64,224l 96,0 l0-64 L 64,160 L 64,224 z M 352,224l 96,0 l0-64 l-96,0 L 352,224 z M 352,256l0,64 l 96,0 l0-64 L 352,256 z M 64,128l 96,0 l0-64 L 64,64 L 64,128 z M 352,64l0,64 l 96,0 l0-64 L 352,64 z" />
-<glyph unicode="&#xe021;" d="M 256,410c 49.683,0, 96.391-19.347, 131.521-54.478S 442,273.683, 442,224s-19.348-96.391-54.479-131.521S 305.683,38, 256,38
- s-96.391,19.348-131.522,54.479S 70,174.317, 70,224s 19.347,96.391, 54.478,131.522S 206.317,410, 256,410 M 256,448
- C 132.288,448, 32,347.712, 32,224s 100.288-224, 224-224s 224,100.288, 224,224S 379.712,448, 256,448L 256,448zM 160,288A32,32 2700 1 1 224,288A32,32 2700 1 1 160,288zM 288,288A32,32 2700 1 1 352,288A32,32 2700 1 1 288,288zM 256,152c-50.92,0-96.28,18.437-125.583,47.164C 141.98,140.36, 193.806,96, 256,96c 62.194,0, 114.020,44.36, 125.584,103.164
- C 352.28,170.437, 306.92,152, 256,152z" />
-<glyph unicode="&#xe023;" d="M 240,288L 144,384L 208,448L 32,448L 32,272L 96,336L 192,240 zM 320,240L 416,336L 480,272L 480,448L 304,448L 368,384L 272,288 zM 272,160L 368,64L 304,0L 480,0L 480,176L 416,112L 320,208 zM 192,208L 96,112L 32,176L 32,0L 208,0L 144,64L 240,160 z" />
-<glyph unicode="&#xe01c;" d="M 32,256L 480,256L 480,192L 32,192z" />
-<glyph unicode="&#xe01d;" d="M 32,96l 256,0 l0-64 L 32,32 L 32,96 z M 384,384L 273.721,384 l-91.883-256l-66.144,0 l 91.881,256L 96,384 L 96,448 l 288,0 L 384,384 z M 464.887,32L 400,96.887
- L 335.113,32L 304,63.113L 368.887,128L 304,192.887L 335.113,224L 400,159.113L 464.887,224L 496,192.887L 431.113,128L 496,63.113
- L 464.887,32z" />
-<glyph unicode="&#xe022;" d="M 128,416l 256,0 l0-64 L 128,352 L 128,416 z M 448,320L 64,320 c-17.6,0-32-14.4-32-32l0-128 c0-17.6, 14.398-32, 32-32l 64,0 l0-96 l 256,0 l0,96 l 64,0
- c 17.6,0, 32,14.4, 32,32L 480,288 C 480,305.6, 465.6,320, 448,320z M 352,64L 160,64 L 160,192 l 192,0 L 352,64 z M 455.2,272c0-12.813-10.387-23.2-23.199-23.2
- S 408.8,259.187, 408.8,272s 10.389,23.2, 23.201,23.2C 444.814,295.2, 455.2,284.813, 455.2,272z" />
-<glyph unicode="&#xe02e;" d="M 192,416c-61.856,0-112-50.144-112-112s 50.144-112, 112-112l0-160 l 64,0 L 256,352 l 32,0 l0-320 l 64,0 L 352,352 l 64,0 L 416,416 L 192,416 z" />
-<glyph unicode="&#xe02f;" d="M 224,416c-61.856,0-112-50.144-112-112s 50.144-112, 112-112l0-160 l 64,0 L 288,352 l 32,0 l0-320 l 64,0 L 384,352 l 64,0 L 448,416 L 224,416 zM 32,32L 144,128L 32,224 z" />
-<glyph unicode="&#xe030;" d="M 160,416C 98.144,416, 48,365.856, 48,304s 50.144-112, 112-112l0-160 l 64,0 L 224,352 l 32,0 l0-320 l 64,0 L 320,352 l 64,0 L 384,416 L 160,416 zM 480,224L 368,128L 480,32 z" />
-<glyph unicode="&#xe026;" d="M 256,288L 320,288L 320,256L 256,256zM 256,96L 320,96L 320,64L 256,64zM 288,192L 352,192L 352,160L 288,160zM 384,192L 384,96L 352,96L 352,64L 416,64L 416,192 zM 192,192L 256,192L 256,160L 192,160zM 160,96L 224,96L 224,64L 160,64zM 160,288L 224,288L 224,256L 160,256zM 96,384L 96,256L 128,256L 128,352L 160,352L 160,384 zM 352,256L 416,256L 416,384L 384,384L 384,288L 352,288 zM 32,448l0-448 l 448,0 L 480,448 L 32,448 z M 448,32L 64,32 L 64,416 l 384,0 L 448,32 zM 96,192L 96,64L 128,64L 128,160L 160,160L 160,192 zM 288,384L 352,384L 352,352L 288,352zM 192,384L 256,384L 256,352L 192,352z" />
-<glyph unicode="&#xe027;" d="M 408,448l 8-192L 96,256 l 8,192l 16,0 l 8-160l 256,0 l 8,160L 408,448 z M 104,0l-8,160l 320,0 l-8-160l-16,0 l-8,128L 128,128 l-8-128L 104,0 zM 32,224L 96,224L 96,192L 32,192zM 128,224L 192,224L 192,192L 128,192zM 224,224L 288,224L 288,192L 224,192zM 320,224L 384,224L 384,192L 320,192zM 416,224L 480,224L 480,192L 416,192z" />
-<glyph unicode="&#xe024;" d="M 480,416L 480,448 l-96,0 c-17.601,0-32-14.4-32-32l0-160 c0-7.928, 2.929-15.201, 7.748-20.807L 208,105l-71,74l-41-35l 112-144l 208,224l 64,0
- l0,32 l-96,0 L 384,416 L 480,416 zM 128,224l 32,0 L 160,416 c0,17.6-14.4,32-32,32L 64,448 c-17.6,0-32-14.4-32-32l0-192 l 32,0 l0,96 l 64,0 L 128,224 z M 64,352L 64,416 l 64,0 l0-64 L 64,352 zM 320,256l0,48 c0,17.6-4.4,32-22,32c 17.6,0, 22,14.4, 22,32L 320,416 c0,17.6-14.4,32-32,32l-96,0 l0-224 l 96,0 C 305.6,224, 320,238.4, 320,256z
- M 224,416l 64,0 l0-64 l-64,0 L 224,416 z M 224,320l 64,0 l0-64 l-64,0 L 224,320 z" />
-<glyph unicode="&#xe025;" d="M 224,224l-64,0 l0,64 l 64,0 l0,64 l 64,0 l0-64 l 64,0 l0-64 l-64,0 l0-64 l-64,0 L 224,224 z M 480,192l0-160 L 32,32 L 32,192 l 64,0 l0-96 l 320,0 l0,96 L 480,192 z" />
-<glyph unicode="&#xe017;" d="M 208,128L 112,224L 208,320L 176,352L 48,224L 176,96 zM 336,352L 304,320L 400,224L 304,128L 336,96L 464,224 z" />
-<glyph unicode="&#xe016;" d="M 224,128l 64,0 l0-64 l-64,0 L 224,128 z M 352,352c 17.673,0, 32-14.327, 32-32l0-83 l-114-77l-46,0 l0,32 l 96,64l0,32 L 160,288 l0,64 L 352,352 z M 256,448
- c-59.833,0-116.083-23.3-158.392-65.608C 55.301,340.083, 32,283.833, 32,224c0-59.832, 23.301-116.084, 65.608-158.392
- C 139.917,23.3, 196.167,0, 256,0c 59.832,0, 116.084,23.3, 158.392,65.608C 456.7,107.916, 480,164.168, 480,224
- c0,59.833-23.3,116.083-65.608,158.392C 372.084,424.7, 315.832,448, 256,448z" />
-<glyph unicode="&#xe014;" d="M 448,416L 64,416 c-17.6,0-32-14.4-32-32l0-320 c0-17.6, 14.4-32, 32-32l 384,0 c 17.6,0, 32,14.4, 32,32L 480,384 C 480,401.6, 465.6,416, 448,416z
- M 448,64.058c-0.006-0.007-0.015-0.014-0.021-0.021L 352,224l-80-64L 160,304L 64.016,64.042c-0.005,0.005-0.011,0.011-0.016,0.016
- L 64,383.943 c 0.017,0.020, 0.038,0.041, 0.057,0.057l 383.885,0 c 0.020-0.017, 0.041-0.038, 0.058-0.058L 448,64.058 zM 320,304A48,48 2700 1 1 416,304A48,48 2700 1 1 320,304z" />
-<glyph unicode="&#xe015;" d="M 448,416L 64,416 c-17.6,0-32-14.4-32-32l0-320 c0-17.6, 14.4-32, 32-32l 384,0 c 17.6,0, 32,14.4, 32,32L 480,384 C 480,401.6, 465.6,416, 448,416z
- M 128,64L 64,64 l0,64 l 64,0 L 128,64 z M 128,192L 64,192 l0,64 l 64,0 L 128,192 z M 128,320L 64,320 L 64,384 l 64,0 L 128,320 z M 352,64L 160,64 L 160,384 l 192,0 L 352,64 z M 448,64l-64,0 l0,64 l 64,0 L 448,64 z
- M 448,192l-64,0 l0,64 l 64,0 L 448,192 z M 448,320l-64,0 L 384,384 l 64,0 L 448,320 zM 192,320L 192,128L 336,224 z" />
-<glyph unicode="&#xe018;" d="M 38.899,327.688l 40.707-25.441C 105.007,342.804, 144,373.974, 190.21,389.37l-15.183,45.547
- C 118.153,415.968, 70.163,377.604, 38.899,327.688zM 336.973,434.917L 321.79,389.37c 46.211-15.396, 85.202-46.566, 110.604-87.124l 40.706,25.441
- C 441.837,377.604, 393.847,415.968, 336.973,434.917zM 303.987,127.996c-2.404,0-4.846,0.545-7.143,1.693L 224,166.111L 224,272 c0,8.836, 7.164,16, 16,16s 16-7.164, 16-16l0-86.111
- l 55.155-27.578c 7.903-3.951, 11.107-13.562, 7.155-21.466C 315.508,131.238, 309.856,127.997, 303.987,127.996zM 256,384C 149.961,384, 64,298.039, 64,192c0-106.039, 85.961-192, 192-192c 106.039,0, 192,85.961, 192,192
- C 448,298.039, 362.039,384, 256,384z M 256,48c-79.529,0-144,64.471-144,144c0,79.529, 64.471,144, 144,144c 79.529,0, 144-64.471, 144-144
- C 400,112.471, 335.529,48, 256,48z" />
-<glyph unicode="&#xe019;" d="M 32,252.127c 22.659,24.96, 48.581,46.18, 76.636,62.562C 153.802,341.061, 204.759,355, 256,355
- c 51.24,0, 102.198-13.939, 147.363-40.312c 28.056-16.382, 53.978-37.602, 76.637-62.562l0,58.716
- c-16.505,14.059-34.062,26.57-52.434,37.297C 375.063,378.796, 315.737,395, 256,395s-119.064-16.204-171.567-46.86
- C 66.062,337.413, 48.505,324.901, 32,310.842L 32,252.127 zM 256,320c-91.598,0-172.919-50.278-224-128c 51.081-77.724, 132.402-128, 224-128c 91.598,0, 172.919,50.276, 224,128
- C 428.919,269.722, 347.598,320, 256,320z M 256,224c0-17.673-14.327-32-32-32s-32,14.327-32,32c0,17.674, 14.327,32, 32,32
- S 256,241.674, 256,224z M 364.033,131.669C 330.316,111.982, 293.969,102, 256,102s-74.316,9.982-108.033,29.669
- C 122.19,146.721, 98.659,167.324, 78.91,192c 19.749,24.675, 43.28,45.279, 69.058,60.33c 6.638,3.876, 13.379,7.37, 20.213,10.491
- C 162.925,250.95, 160,237.817, 160,224c0-53.020, 42.981-96, 96-96c 53.020,0, 96,42.98, 96,96c0,13.817-2.925,26.95-8.18,38.821
- c 6.834-3.122, 13.575-6.615, 20.213-10.491c 25.777-15.051, 49.308-35.655, 69.058-60.33
- C 413.342,167.324, 389.811,146.721, 364.033,131.669z" />
-<glyph unicode="&#xe01a;" d="M 325.584,338.083C 313.278,379.064, 311.146,384, 272,384l-32,0 c-39.809,0-41.332-5.076-54.209-48c0-0.001,0-0.001-0.001-0.002
- L 113.791,96l 56.818,0 l 28.8,96l 113.183,0 l 28.8-96l 56.815,0 L 325.584,338.083z M 218.609,256l 19.2,68c 5.043,16.809, 18.19,15, 18.19,15
- s 13.147,1.809, 18.19-15l 0.002,0 l 19.2-68L 218.609,256 z" />
-<glyph unicode="&#xe028;" d="M 288,448 C 411.712,448 512,347.712 512,224 C 512,100.288 411.712,0 288,0 L 288,48 C 335.012,48 379.209,66.307 412.451,99.549 C 445.693,132.791 464,176.988 464,224 C 464,271.011 445.693,315.209 412.451,348.451 C 379.209,381.693 335.012,400 288,400 C 240.989,400 196.791,381.693 163.549,348.451 C 137.979,322.882 121.258,290.828 114.896,256 L 208,256 L 96,128 L -16,256 L 66.285,256 C 81.815,364.551 175.154,448 288,448 ZM 384,256 L 384,192 L 256,192 L 256,352 L 320,352 L 320,256 Z" />
-<glyph unicode="&#xe002;" d="M 512,183.771l0,80.458 l-79.572,7.957c-4.093,15.021-10.044,29.274-17.605,42.49l 52.298,63.919L 410.595,435.12l-63.918-52.298
- c-13.217,7.562-27.471,13.513-42.491,17.604L 296.229,480l-80.458,0 l-7.957-79.573c-15.021-4.093-29.274-10.043-42.49-17.604
- L 101.405,435.12L 44.88,378.595l 52.298-63.918c-7.562-13.216-13.513-27.47-17.605-42.49L0,264.229l0-80.458 l 79.573-7.957
- c 4.093-15.021, 10.043-29.274, 17.605-42.491L 44.88,69.405l 56.524-56.524l 63.919,52.298c 13.216-7.562, 27.47-13.514, 42.49-17.605
- L 215.771-32l 80.458,0 l 7.957,79.572c 15.021,4.093, 29.274,10.044, 42.491,17.605l 63.918-52.298l 56.524,56.524l-52.298,63.918
- c 7.562,13.217, 13.514,27.471, 17.605,42.49L 512,183.771z M 352,192l-64-64l-64,0 l-64,64l0,64 l 64,64l 64,0 l 64-64L 352,192 z" />
-<glyph unicode="&#xe01f;" d="M 384,377 L 384,352 L 448,352 L 448,320 L 352,320 L 352,393 L 416,423 L 416,448 L 352,448 L 352,480 L 448,480 L 448,407 ZM 338,352L 270,352L 176,258L 82,352L 14,352L 142,224L 14,96L 82,96L 176,190L 270,96L 338,96L 210,224 z" />
-<glyph unicode="&#xe01e;" d="M 384,25 L 384,0 L 448,0 L 448-32 L 352-32 L 352,41 L 416,71 L 416,96 L 352,96 L 352,128 L 448,128 L 448,55 ZM 338,352L 270,352L 176,258L 82,352L 14,352L 142,224L 14,96L 82,96L 176,190L 270,96L 338,96L 210,224 z" />
-<glyph unicode="&#xe035;" d="M 352,288l0,80 c0,8.8-7.2,16-16,16l-80,0 L 256,416 c0,17.6-14.4,32-32,32l-64,0 c-17.602,0-32-14.4-32-32l0-32 L 48,384 c-8.801,0-16-7.2-16-16
- l0-256 c0-8.8, 7.199-16, 16-16l 112,0 l0-96 l 288,0 L 448,288 L 352,288 z M 160,415.943c 0.017,0.019, 0.036,0.039, 0.057,0.057l 63.884,0
- c 0.021-0.018, 0.041-0.038, 0.059-0.057L 224,384 l-64,0 L 160,415.943 z M 96,320l0,32 l 192,0 l0-32 L 96,320 z M 416,32L 192,32 L 192,256 l 224,0 L 416,32 zM 224,224L 224,160L 240,160L 256,192L 288,192L 288,96L 264,96L 264,64L 344,64L 344,96L 320,96L 320,192L 352,192L 368,160L 384,160L 384,224 z" data-tags="pastetext" />
-<glyph unicode="&#xe032;" d="M 384,352L 416,352L 416,320L 384,320zM 320,288L 352,288L 352,256L 320,256zM 320,224L 352,224L 352,192L 320,192zM 320,160L 352,160L 352,128L 320,128zM 256,224L 288,224L 288,192L 256,192zM 256,160L 288,160L 288,128L 256,128zM 192,160L 224,160L 224,128L 192,128zM 384,288L 416,288L 416,256L 384,256zM 384,224L 416,224L 416,192L 384,192zM 384,160L 416,160L 416,128L 384,128zM 384,96L 416,96L 416,64L 384,64zM 320,96L 352,96L 352,64L 320,64zM 256,96L 288,96L 288,64L 256,64zM 192,96L 224,96L 224,64L 192,64zM 128,96L 160,96L 160,64L 128,64z" data-tags="resize, dots" />
-<glyph unicode="&#xe034;" d="M 464,416L 256,416L 240,448L 64,448L 32,384L 480,384 zM 420.17,128L 464,128 l 16,224L 32,352 l 32-320l 178.040,0 C 189.599,50.888, 152,101.133, 152,160c0,74.991, 61.009,136, 136,136
- c 74.99,0, 136-61.009, 136-136C 424,149.161, 422.689,138.425, 420.17,128zM 437.498,55.125l-67.248,55.346C 378.977,124.932, 384,141.878, 384,160c0,53.020-42.98,96-96,96s-96-42.98-96-96
- s 42.98-96, 96-96c 18.122,0, 35.069,5.023, 49.529,13.75l 55.346-67.248c 11.481-13.339, 31.059-14.070, 43.503-1.626l 2.746,2.746
- C 451.568,24.066, 450.837,43.644, 437.498,55.125z M 288,98c-34.242,0-62,27.758-62,62s 27.758,62, 62,62s 62-27.758, 62-62
- S 322.242,98, 288,98z" data-tags="browse" />
-<glyph unicode="&#x20;" horiz-adv-x="256" />
-</font></defs></svg> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.eot b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.eot
deleted file mode 100644
index 60e2d2e5c..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.eot
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.svg b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.svg
deleted file mode 100644
index 930c48dce..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata>Generated by IcoMoon</metadata>
-<defs>
-<font id="tinymce-small" horiz-adv-x="512">
-<font-face units-per-em="512" ascent="480" descent="-32" />
-<missing-glyph horiz-adv-x="512" />
-<glyph unicode="&#x20;" d="" horiz-adv-x="256" />
-<glyph unicode="&#xe000;" d="M480 40v295.969l-111.969 112.031h-296.031c-22.091 0-40-17.908-40-40v-368c0-22.092 17.909-40 40-40h368c22.092 0 40 17.908 40 40zM288 384h32v-96h-32v96zM352 64h-192v127.941c0.017 0.021 0.038 0.041 0.058 0.059h191.885c0.020-0.018 0.041-0.038 0.058-0.059l-0.001-127.941zM416 64h-32v128c0 17.6-14.4 32-32 32h-192c-17.6 0-32-14.4-32-32v-128h-32v320h32v-96c0-17.6 14.4-32 32-32h160c17.6 0 32 14.4 32 32v85.505l64-64.036v-245.469z" />
-<glyph unicode="&#xe001;" d="M425.373 358.627l-66.746 66.745c-12.444 12.446-37.027 22.628-54.627 22.628h-208c-17.6 0-32-14.4-32-32v-384c0-17.6 14.4-32 32-32h320c17.6 0 32 14.4 32 32v272c0 17.6-10.183 42.182-22.627 54.627zM402.745 336.001c3.396-3.398 6.896-9.581 9.447-16.001h-92.192v92.193c6.42-2.55 12.602-6.050 16-9.448l66.745-66.744zM415.942 32h-319.885c-0.020 0.017-0.041 0.038-0.057 0.058v383.885c0.017 0.020 0.038 0.041 0.057 0.057h191.943v-128h128v-255.942c-0.017-0.020-0.038-0.041-0.058-0.058z" />
-<glyph unicode="&#xe002;" d="M512 183.771v80.458l-79.572 7.957c-4.093 15.021-10.044 29.274-17.605 42.49l52.298 63.919-56.526 56.525-63.918-52.298c-13.217 7.562-27.471 13.513-42.491 17.604l-7.957 79.574h-80.458l-7.957-79.573c-15.021-4.093-29.274-10.043-42.49-17.604l-63.919 52.297-56.525-56.525 52.298-63.918c-7.562-13.216-13.513-27.47-17.605-42.49l-79.573-7.958v-80.458l79.573-7.957c4.093-15.021 10.043-29.274 17.605-42.491l-52.298-63.918 56.524-56.524 63.919 52.298c13.216-7.562 27.47-13.514 42.49-17.605l7.958-79.574h80.458l7.957 79.572c15.021 4.093 29.274 10.044 42.491 17.605l63.918-52.298 56.524 56.524-52.298 63.918c7.562 13.217 13.514 27.471 17.605 42.49l79.574 7.96zM352 192l-64-64h-64l-64 64v64l64 64h64l64-64v-64z" />
-<glyph unicode="&#xe003;" d="M32 384h448v-64h-448zM32 192h448v-64h-448zM32 288h288v-64h-288zM32 96h288v-64h-288z" />
-<glyph unicode="&#xe004;" d="M32 384h448v-64h-448zM32 192h448v-64h-448zM128 288h256v-64h-256zM128 96h256v-64h-256z" />
-<glyph unicode="&#xe005;" d="M32 384h448v-64h-448zM32 192h448v-64h-448zM192 288h288v-64h-288zM192 96h288v-64h-288z" />
-<glyph unicode="&#xe006;" d="M32 384h448v-64h-448zM32 192h448v-64h-448zM32 288h448v-64h-448zM32 96h448v-64h-448z" />
-<glyph unicode="&#xe007;" d="M432.204 144.934c-23.235 23.235-53.469 34.002-80.541 31.403l-31.663 31.663 96 96c0 0 64 64 0 128l-160-160-160 160c-64-64 0-128 0-128l96-96-31.663-31.663c-27.072 2.599-57.305-8.169-80.54-31.403-37.49-37.49-42.556-93.209-11.313-124.45 31.241-31.241 86.96-26.177 124.45 11.313 23.235 23.234 34.001 53.469 31.403 80.54l31.663 31.663 31.664-31.664c-2.598-27.072 8.168-57.305 31.403-80.539 37.489-37.49 93.209-42.556 124.449-11.313 31.244 31.241 26.178 86.959-11.312 124.45zM176.562 100.711c-1.106-12.166-7.51-24.913-17.57-34.973-11.106-11.107-25.54-17.738-38.609-17.738-5.262 0-12.649 1.114-17.958 6.424-10.703 10.702-8.688 36.566 11.313 56.568 11.106 11.107 25.54 17.738 38.609 17.738 5.262 0 12.649-1.114 17.958-6.424 6.556-6.555 6.735-16.344 6.257-21.595zM256 176c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM409.576 54.424c-5.31-5.31-12.696-6.424-17.958-6.424-13.069 0-27.503 6.631-38.609 17.738-10.061 10.060-16.464 22.807-17.569 34.973-0.479 5.251-0.3 15.040 6.257 21.596 5.309 5.311 12.695 6.424 17.958 6.424 13.068 0 27.503-6.631 38.608-17.737 20.002-20.004 22.016-45.868 11.313-56.57z" />
-<glyph unicode="&#xe008;" d="M352 288v80c0 8.8-7.2 16-16 16h-80v32c0 17.6-14.4 32-32 32h-64c-17.602 0-32-14.4-32-32v-32h-80c-8.801 0-16-7.2-16-16v-256c0-8.8 7.199-16 16-16h112v-96h192l96 96v192h-96zM160 415.943c0.017 0.019 0.036 0.039 0.057 0.057h63.884c0.021-0.018 0.041-0.038 0.059-0.057v-31.943h-64v31.943zM96 320v32h192v-32h-192zM352 45.255v50.745h50.745l-50.745-50.745zM416 128h-96v-96h-128v224h224v-128z" />
-<glyph unicode="&#xe009;" d="M444 288h-28v128h32v32h-160v-32h32v-128h-128v128h32v32h-160v-32h32v-128h-28c-19.8 0-36-16.2-36-36v-216c0-19.8 16.2-36 36-36h120c19.8 0 36 16.2 36 36v156h64v-156c0-19.8 16.2-36 36-36h120c19.8 0 36 16.2 36 36v216c0 19.8-16.2 36-36 36zM174 32h-92c-9.9 0-18 7.2-18 16s8.1 16 18 16h92c9.9 0 18-7.2 18-16s-8.1-16-18-16zM272 224h-32c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16zM430 32h-92c-9.9 0-18 7.2-18 16s8.1 16 18 16h92c9.9 0 18-7.2 18-16s-8.1-16-18-16z" />
-<glyph unicode="&#xe00a;" d="M192 416h288v-64h-288zM192 256h288v-64h-288zM192 96h288v-64h-288zM64 384c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32zM64 224c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32zM64 64c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32z" />
-<glyph unicode="&#xe00b;" d="M192 416h288v-64h-288zM192 256h288v-64h-288zM192 96h288v-64h-288zM160 215v73h-32v160h-64v-32h32v-128h-32v-32h64v-25l-64-30v-73h64v-32h-64v-32h64v-32h-64v-32h96v160h-64v25z" />
-<glyph unicode="&#xe00c;" d="M32 384h448v-64h-448zM192 192h288v-64h-288zM192 288h288v-64h-288zM32 96h448v-64h-448zM32 288l112-80-112-80z" />
-<glyph unicode="&#xe00d;" d="M32 384h448v-64h-448zM32 192h288v-64h-288zM32 288h288v-64h-288zM32 96h448v-64h-448zM480 288l-112-80 112-80z" />
-<glyph unicode="&#xe00e;" d="M128.214 267.637c52.9 0 95.786-45.585 95.786-101.819 0-56.232-42.886-101.818-95.786-101.818-52.901 0-95.786 45.585-95.786 101.818l-0.428 14.546c0 112.465 85.77 203.636 191.572 203.636v-58.182c-36.55 0-70.913-15.13-96.758-42.602-4.977-5.289-9.517-10.917-13.612-16.828 4.892 0.82 9.903 1.249 15.012 1.249zM384.214 267.637c52.9 0 95.786-45.585 95.786-101.819 0-56.232-42.886-101.818-95.786-101.818-52.901 0-95.786 45.585-95.786 101.818l-0.428 14.546c0 112.465 85.77 203.636 191.572 203.636v-58.182c-36.55 0-70.913-15.13-96.758-42.602-4.978-5.289-9.518-10.917-13.612-16.828 4.892 0.82 9.903 1.249 15.012 1.249z" />
-<glyph unicode="&#xe00f;" d="M352 0c29.5 99.5 67.453 227.633-128 223.048v-111.048l-168.001 168 168.001 168v-108.663c234.046 6.1 272-179.337 128-339.337z" />
-<glyph unicode="&#xe010;" d="M288 339.337v108.663l168.001-168-168.001-168v111.048c-195.453 4.585-157.5-123.548-128-223.048-144 160-106.046 345.437 128 339.337z" />
-<glyph unicode="&#xe011;" d="M463.637 364.892l-66.745 66.744c-10.552 10.552-24.616 16.364-39.599 16.364s-29.047-5.812-39.598-16.363l-82.746-82.745c-21.834-21.834-21.834-57.362 0-79.196l1.373-1.373 33.941 33.941-1.373 1.373c-3.066 3.066-3.066 8.247 0 11.313l82.746 82.746c2.005 2.004 4.404 2.304 5.656 2.304s3.651-0.299 5.656-2.305l66.745-66.744c3.066-3.067 3.066-8.249 0.001-11.314l-82.747-82.747c-2.004-2.004-4.403-2.304-5.655-2.304s-3.651 0.3-5.656 2.306l-1.373 1.373-33.94-33.942 1.371-1.371c10.553-10.554 24.615-16.364 39.6-16.364s29.047 5.812 39.598 16.363l82.747 82.746c21.831 21.833 21.831 57.36-0.002 79.195zM275.678 179.678l-33.941-33.941 1.373-1.373c2.004-2.004 2.305-4.403 2.305-5.655 0-1.253-0.299-3.651-2.303-5.657l-82.747-82.745c-2.005-2.005-4.405-2.305-5.657-2.305s-3.652 0.3-5.657 2.305l-66.746 66.743c-2.005 2.005-2.305 4.405-2.305 5.657s0.299 3.65 2.305 5.656l82.745 82.744c2.005 2.006 4.405 2.306 5.657 2.306s3.652-0.3 5.657-2.306l1.373-1.371 33.941 33.94-1.373 1.373c-10.552 10.552-24.615 16.363-39.598 16.363s-29.046-5.812-39.598-16.363l-82.744-82.743c-10.553-10.552-16.365-24.617-16.365-39.599s5.812-29.047 16.363-39.599l66.745-66.745c10.553-10.551 24.616-16.363 39.599-16.363s29.046 5.812 39.598 16.363l82.747 82.746c10.552 10.552 16.361 24.615 16.361 39.598s-5.812 29.047-16.363 39.598l-1.372 1.373zM176 125c-4.862 0-9.725 1.855-13.435 5.564-7.42 7.42-7.42 19.449 0 26.869l160 160c7.42 7.42 19.448 7.42 26.868 0 7.422-7.42 7.422-19.45 0-26.87l-160-160c-3.708-3.708-8.571-5.563-13.433-5.563z" />
-<glyph unicode="&#xe012;" d="M463.637 364.892l-66.745 66.744c-10.552 10.552-24.616 16.364-39.599 16.364s-29.047-5.812-39.598-16.363l-82.746-82.745c-21.834-21.834-21.834-57.362 0-79.196l1.373-1.373 33.941 33.941-1.373 1.373c-3.066 3.066-3.066 8.247 0 11.313l82.746 82.746c2.005 2.004 4.404 2.304 5.656 2.304s3.651-0.299 5.656-2.305l66.745-66.744c3.066-3.067 3.066-8.249 0.001-11.314l-82.747-82.747c-2.004-2.004-4.403-2.304-5.655-2.304s-3.651 0.3-5.656 2.306l-1.373 1.373-33.94-33.942 1.371-1.371c10.553-10.554 24.615-16.364 39.6-16.364s29.047 5.812 39.598 16.363l82.747 82.746c21.831 21.833 21.831 57.36-0.002 79.195zM275.678 179.678l-33.941-33.941 1.373-1.373c2.004-2.004 2.305-4.403 2.305-5.655 0-1.253-0.299-3.651-2.303-5.657l-82.747-82.745c-2.005-2.005-4.405-2.305-5.657-2.305s-3.652 0.3-5.657 2.305l-66.746 66.743c-2.005 2.005-2.305 4.405-2.305 5.657s0.299 3.65 2.305 5.656l82.745 82.744c2.005 2.006 4.405 2.306 5.657 2.306s3.652-0.3 5.657-2.306l1.373-1.371 33.941 33.94-1.373 1.373c-10.552 10.552-24.615 16.363-39.598 16.363s-29.046-5.812-39.598-16.363l-82.744-82.743c-10.553-10.552-16.365-24.617-16.365-39.599s5.812-29.047 16.363-39.599l66.745-66.745c10.553-10.551 24.616-16.363 39.599-16.363s29.046 5.812 39.598 16.363l82.747 82.746c10.552 10.552 16.361 24.615 16.361 39.598s-5.812 29.047-16.363 39.598l-1.372 1.373zM400 61c-4.862 0-9.725 1.854-13.435 5.565l-64 63.999c-7.422 7.42-7.422 19.449 0 26.869 7.42 7.422 19.448 7.422 26.868 0l64-64c7.422-7.42 7.422-19.448 0-26.868-3.708-3.711-8.571-5.565-13.433-5.565zM304 0c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16s16-7.163 16-16v-64c0-8.837-7.163-16-16-16zM464 160h-64c-8.837 0-16 7.163-16 16s7.163 16 16 16h64c8.837 0 16-7.163 16-16s-7.163-16-16-16zM112 387c4.862 0 9.725-1.854 13.435-5.565l64-64c7.421-7.42 7.421-19.449 0-26.869-7.42-7.422-19.449-7.422-26.869 0l-64 64c-7.421 7.42-7.421 19.449 0 26.869 3.709 3.711 8.572 5.565 13.434 5.565zM208 448c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16s-16 7.163-16 16v64c0 8.837 7.163 16 16 16zM48 288h64c8.837 0 16-7.163 16-16s-7.163-16-16-16h-64c-8.837 0-16 7.163-16 16s7.163 16 16 16z" />
-<glyph unicode="&#xe013;" d="M128 448v-448l128 128 128-128v448h-256zM352 85.255l-96 96-96-96v330.745h192v-330.745z" />
-<glyph unicode="&#xe014;" d="M448 416h-384c-17.6 0-32-14.4-32-32v-320c0-17.6 14.4-32 32-32h384c17.6 0 32 14.4 32 32v320c0 17.6-14.4 32-32 32zM448 64.058c-0.006-0.007-0.015-0.014-0.021-0.021l-95.979 159.963-80-64-112 144-95.984-239.958c-0.005 0.005-0.011 0.011-0.016 0.016v319.885c0.017 0.020 0.038 0.041 0.057 0.057h383.885c0.020-0.017 0.041-0.038 0.058-0.058v-319.884zM320 304c0-26.51 21.49-48 48-48s48 21.49 48 48c0 26.51-21.49 48-48 48-26.51 0-48-21.49-48-48z" />
-<glyph unicode="&#xe015;" d="M448 416h-384c-17.6 0-32-14.4-32-32v-320c0-17.6 14.4-32 32-32h384c17.6 0 32 14.4 32 32v320c0 17.6-14.4 32-32 32zM128 64h-64v64h64v-64zM128 192h-64v64h64v-64zM128 320h-64v64h64v-64zM352 64h-192v320h192v-320zM448 64h-64v64h64v-64zM448 192h-64v64h64v-64zM448 320h-64v64h64v-64zM192 320v-192l144 96z" />
-<glyph unicode="&#xe016;" d="M224 128h64v-64h-64v64zM352 352c17.673 0 32-14.327 32-32v-83l-114-77h-46v32l96 64v32h-160v64h192zM256 448c-59.833 0-116.083-23.3-158.392-65.608-42.307-42.309-65.608-98.559-65.608-158.392 0-59.832 23.301-116.084 65.608-158.392 42.309-42.308 98.559-65.608 158.392-65.608 59.832 0 116.084 23.3 158.392 65.608 42.308 42.308 65.608 98.56 65.608 158.392 0 59.833-23.3 116.083-65.608 158.392-42.308 42.308-98.56 65.608-158.392 65.608z" />
-<glyph unicode="&#xe017;" d="M208 128l-96 96 96 96-32 32-128-128 128-128zM336 352l-32-32 96-96-96-96 32-32 128 128z" />
-<glyph unicode="&#xe018;" d="M38.899 327.688l40.707-25.441c25.401 40.557 64.394 71.727 110.604 87.123l-15.183 45.547c-56.874-18.949-104.864-57.313-136.128-107.229zM336.973 434.917l-15.183-45.547c46.211-15.396 85.202-46.566 110.604-87.124l40.706 25.441c-31.263 49.917-79.253 88.281-136.127 107.23zM303.987 127.996c-2.404 0-4.846 0.545-7.143 1.693l-72.844 36.422v105.889c0 8.836 7.164 16 16 16s16-7.164 16-16v-86.111l55.155-27.578c7.903-3.951 11.107-13.562 7.155-21.466-2.802-5.607-8.454-8.848-14.323-8.849zM256 384c-106.039 0-192-85.961-192-192s85.961-192 192-192c106.039 0 192 85.961 192 192 0 106.039-85.961 192-192 192zM256 48c-79.529 0-144 64.471-144 144s64.471 144 144 144c79.529 0 144-64.471 144-144 0-79.529-64.471-144-144-144z" />
-<glyph unicode="&#xe019;" d="M32 252.127c22.659 24.96 48.581 46.18 76.636 62.562 45.166 26.372 96.123 40.311 147.364 40.311 51.24 0 102.198-13.939 147.363-40.312 28.056-16.382 53.978-37.602 76.637-62.562v58.716c-16.505 14.059-34.062 26.57-52.434 37.297-52.503 30.657-111.829 46.861-171.566 46.861s-119.064-16.204-171.567-46.86c-18.371-10.727-35.928-23.239-52.433-37.298v-58.715zM256 320c-91.598 0-172.919-50.278-224-128 51.081-77.724 132.402-128 224-128 91.598 0 172.919 50.276 224 128-51.081 77.722-132.402 128-224 128zM256 224c0-17.673-14.327-32-32-32s-32 14.327-32 32c0 17.674 14.327 32 32 32s32-14.326 32-32zM364.033 131.669c-33.717-19.687-70.064-29.669-108.033-29.669s-74.316 9.982-108.033 29.669c-25.777 15.052-49.308 35.655-69.057 60.331 19.749 24.675 43.28 45.279 69.058 60.33 6.638 3.876 13.379 7.37 20.213 10.491-5.256-11.871-8.181-25.004-8.181-38.821 0-53.020 42.981-96 96-96 53.020 0 96 42.98 96 96 0 13.817-2.925 26.95-8.18 38.821 6.834-3.122 13.575-6.615 20.213-10.491 25.777-15.051 49.308-35.655 69.058-60.33-19.749-24.676-43.28-45.279-69.058-60.331z" />
-<glyph unicode="&#xe01a;" d="M325.584 338.083c-12.306 40.981-14.438 45.917-53.584 45.917h-32c-39.809 0-41.332-5.076-54.209-48 0-0.001 0-0.001-0.001-0.002l-71.999-239.998h56.818l28.8 96h113.183l28.8-96h56.815l-72.623 242.083zM218.609 256l19.2 68c5.043 16.809 18.19 15 18.19 15s13.147 1.809 18.19-15h0.002l19.2-68h-74.782z" />
-<glyph unicode="&#xe01b;" d="M32 384v-352h448v352h-448zM192 160v64h128v-64h-128zM320 128v-64h-128v64h128zM320 320v-64h-128v64h128zM160 320v-64h-96v64h96zM64 224h96v-64h-96v64zM352 224h96v-64h-96v64zM352 256v64h96v-64h-96zM64 128h96v-64h-96v64zM352 64v64h96v-64h-96z" />
-<glyph unicode="&#xe01c;" d="M32 256h448v-64h-448z" />
-<glyph unicode="&#xe01d;" d="M32 96h256v-64h-256v64zM384 384h-110.279l-91.883-256h-66.144l91.881 256h-111.575v64h288v-64zM464.887 32l-64.887 64.887-64.887-64.887-31.113 31.113 64.887 64.887-64.887 64.887 31.113 31.113 64.887-64.887 64.887 64.887 31.113-31.113-64.887-64.887 64.887-64.887-31.113-31.113z" />
-<glyph unicode="&#xe01e;" d="M384 25v-25h64v-32h-96v73l64 30v25h-64v32h96v-73zM338 352h-68l-94-94-94 94h-68l128-128-128-128h68l94 94 94-94h68l-128 128z" />
-<glyph unicode="&#xe01f;" d="M384 377v-25h64v-32h-96v73l64 30v25h-64v32h96v-73zM338 352h-68l-94-94-94 94h-68l128-128-128-128h68l94 94 94-94h68l-128 128z" />
-<glyph unicode="&#xe020;" d="M352 64v18.502c75.674 30.814 128 96.91 128 173.498 0 106.039-100.288 192-224 192s-224-85.961-224-192c0-76.588 52.327-142.684 128-173.498v-18.502h-96l-32 48v-112h160v111.406c-50.45 25.681-85.333 80.77-85.333 144.594 0 88.366 66.859 160 149.333 160 82.474 0 149.333-71.634 149.333-160 0-63.824-34.883-118.913-85.333-144.594v-111.406h160v112l-32-48h-96z" />
-<glyph unicode="&#xe021;" d="M256 410c49.683 0 96.391-19.347 131.521-54.478s54.479-81.839 54.479-131.522-19.348-96.391-54.479-131.521-81.838-54.479-131.521-54.479-96.391 19.348-131.522 54.479-54.478 81.838-54.478 131.521 19.347 96.391 54.478 131.522 81.839 54.478 131.522 54.478zM256 448c-123.712 0-224-100.288-224-224s100.288-224 224-224 224 100.288 224 224-100.288 224-224 224v0zM160 288c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32zM288 288c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32zM256 152c-50.92 0-96.28 18.437-125.583 47.164 11.563-58.804 63.389-103.164 125.583-103.164 62.194 0 114.020 44.36 125.584 103.164-29.304-28.727-74.664-47.164-125.584-47.164z" />
-<glyph unicode="&#xe022;" d="M128 416h256v-64h-256v64zM448 320h-384c-17.6 0-32-14.4-32-32v-128c0-17.6 14.398-32 32-32h64v-96h256v96h64c17.6 0 32 14.4 32 32v128c0 17.6-14.4 32-32 32zM352 64h-192v128h192v-128zM455.2 272c0-12.813-10.387-23.2-23.199-23.2s-23.201 10.387-23.201 23.2 10.389 23.2 23.201 23.2c12.813 0 23.199-10.387 23.199-23.2z" />
-<glyph unicode="&#xe023;" d="M240 288l-96 96 64 64h-176v-176l64 64 96-96zM320 240l96 96 64-64v176h-176l64-64-96-96zM272 160l96-96-64-64h176v176l-64-64-96 96zM192 208l-96-96-64 64v-176h176l-64 64 96 96z" />
-<glyph unicode="&#xe024;" d="M480 416v32h-96c-17.601 0-32-14.4-32-32v-160c0-7.928 2.929-15.201 7.748-20.807l-151.748-130.193-71 74-41-35 112-144 208 224h64v32h-96v160h96zM128 224h32v192c0 17.6-14.4 32-32 32h-64c-17.6 0-32-14.4-32-32v-192h32v96h64v-96zM64 352v64h64v-64h-64zM320 256v48c0 17.6-4.4 32-22 32 17.6 0 22 14.4 22 32v48c0 17.6-14.4 32-32 32h-96v-224h96c17.6 0 32 14.4 32 32zM224 416h64v-64h-64v64zM224 320h64v-64h-64v64z" />
-<glyph unicode="&#xe025;" d="M224 224h-64v64h64v64h64v-64h64v-64h-64v-64h-64v64zM480 192v-160h-448v160h64v-96h320v96h64z" />
-<glyph unicode="&#xe026;" d="M256 288h64v-32h-64zM256 96h64v-32h-64zM288 192h64v-32h-64zM384 192v-96h-32v-32h64v128zM192 192h64v-32h-64zM160 96h64v-32h-64zM160 288h64v-32h-64zM96 384v-128h32v96h32v32zM352 256h64v128h-32v-96h-32zM32 448v-448h448v448h-448zM448 32h-384v384h384v-384zM96 192v-128h32v96h32v32zM288 384h64v-32h-64zM192 384h64v-32h-64z" />
-<glyph unicode="&#xe027;" d="M408 448l8-192h-320l8 192h16l8-160h256l8 160h16zM104 0l-8 160h320l-8-160h-16l-8 128h-256l-8-128h-16zM32 224h64v-32h-64zM128 224h64v-32h-64zM224 224h64v-32h-64zM320 224h64v-32h-64zM416 224h64v-32h-64z" />
-<glyph unicode="&#xe028;" d="M288 448c123.712 0 224-100.288 224-224s-100.288-224-224-224v48c47.012 0 91.209 18.307 124.451 51.549 33.242 33.242 51.549 77.439 51.549 124.451 0 47.011-18.307 91.209-51.549 124.451-33.242 33.242-77.439 51.549-124.451 51.549-47.011 0-91.209-18.307-124.451-51.549-25.57-25.569-42.291-57.623-48.653-92.451h93.104l-112-128-112 128h82.285c15.53 108.551 108.869 192 221.715 192zM384 256v-64h-128v160h64v-96z" />
-<glyph unicode="&#xe02a;" d="M312.721 232.909c24.037 19.075 39.279 47.428 39.279 79.091 0 57.438-50.145 104-112 104h-112v-384h144c61.856 0 112 46.562 112 104 0 44.098-29.559 81.781-71.279 96.909zM192 328c0 13.255 10.745 24 24 24h33.602c21.207 0 38.398-21.49 38.398-48s-17.191-48-38.398-48h-57.602v72zM273.6 96h-57.6c-13.255 0-24 10.745-24 24v72h81.6c21.209 0 38.4-21.49 38.4-48s-17.191-48-38.4-48z" />
-<glyph unicode="&#xe02b;" d="M416 416v-32h-72l-128-320h72v-32h-224v32h72l128 320h-72v32h224z" />
-<glyph unicode="&#xe02c;" d="M96 64h288v-32h-288v32zM320 416v-192c0-15.656-7.35-30.812-20.695-42.676-15.471-13.751-36.534-21.324-59.305-21.324-22.772 0-43.834 7.573-59.304 21.324-13.346 11.864-20.696 27.020-20.696 42.676v192h-64v-192c0-70.691 64.471-128 144-128s144 57.309 144 128v192h-64z" />
-<glyph unicode="&#xe02d;" d="M480 224h-132.938c-25.039 17.71-57.215 27.43-91.062 27.43-44.603 0-82.286 25.121-82.286 54.856 0 29.735 37.683 54.857 82.286 54.857 37.529 0 70.154-17.788 79.56-41.143h56.508c-3.965 25.322-18.79 48.984-42.029 66.413-25.44 19.080-58.838 29.587-94.039 29.587-35.202 0-68.598-10.507-94.037-29.587-27.394-20.545-43.106-49.751-43.106-80.127s15.712-59.582 43.106-80.127c0.978-0.733 1.971-1.449 2.973-2.158h-132.936v-32h256.266c29.104-8.553 50.021-28.135 50.021-50.286 0-29.734-37.684-54.855-82.286-54.855-37.53 0-70.154 17.787-79.559 41.143h-56.508c3.965-25.32 18.791-48.984 42.030-66.413 25.438-19.082 58.834-29.59 94.036-29.59 35.201 0 68.599 10.508 94.037 29.587 27.395 20.545 43.104 49.751 43.104 80.127 0 17.649-5.327 34.896-15.147 50.286h102.006v32z" />
-<glyph unicode="&#xe02e;" d="M192 416c-61.856 0-112-50.144-112-112s50.144-112 112-112v-160h64v320h32v-320h64v320h64v64h-224z" />
-<glyph unicode="&#xe02f;" d="M224 416c-61.856 0-112-50.144-112-112s50.144-112 112-112v-160h64v320h32v-320h64v320h64v64h-224zM32 32l112 96-112 96z" />
-<glyph unicode="&#xe030;" d="M160 416c-61.856 0-112-50.144-112-112s50.144-112 112-112v-160h64v320h32v-320h64v320h64v64h-224zM480 224l-112-96 112-96z" />
-<glyph unicode="&#xe031;" d="M416 320h-96v32l-96 96h-192v-352h192v-96h288v224l-96 96zM416 274.745l50.745-50.745h-50.745v50.745zM224 402.745l50.745-50.745h-50.745v50.745zM64 416h128v-96h96v-192h-224v288zM480 32h-224v64h64v192h64v-96h96v-160z" />
-<glyph unicode="&#xe032;" d="M384 352h32v-32h-32zM320 288h32v-32h-32zM320 224h32v-32h-32zM320 160h32v-32h-32zM256 224h32v-32h-32zM256 160h32v-32h-32zM192 160h32v-32h-32zM384 288h32v-32h-32zM384 224h32v-32h-32zM384 160h32v-32h-32zM384 96h32v-32h-32zM320 96h32v-32h-32zM256 96h32v-32h-32zM192 96h32v-32h-32zM128 96h32v-32h-32z" />
-<glyph unicode="&#xe034;" d="M464 416h-208l-16 32h-176l-32-64h448zM420.17 128h43.83l16 224h-448l32-320h178.040c-52.441 18.888-90.040 69.133-90.040 128 0 74.991 61.009 136 136 136 74.99 0 136-61.009 136-136 0-10.839-1.311-21.575-3.83-32zM437.498 55.125l-67.248 55.346c8.727 14.461 13.75 31.407 13.75 49.529 0 53.020-42.98 96-96 96s-96-42.98-96-96 42.98-96 96-96c18.122 0 35.069 5.023 49.529 13.75l55.346-67.248c11.481-13.339 31.059-14.070 43.503-1.626l2.746 2.746c12.444 12.444 11.713 32.022-1.626 43.503zM288 98c-34.242 0-62 27.758-62 62s27.758 62 62 62 62-27.758 62-62-27.758-62-62-62z" />
-<glyph unicode="&#xe035;" d="M352 288v80c0 8.8-7.2 16-16 16h-80v32c0 17.6-14.4 32-32 32h-64c-17.602 0-32-14.4-32-32v-32h-80c-8.801 0-16-7.2-16-16v-256c0-8.8 7.199-16 16-16h112v-96h288v288h-96zM160 415.943c0.017 0.019 0.036 0.039 0.057 0.057h63.884c0.021-0.018 0.041-0.038 0.059-0.057v-31.943h-64v31.943zM96 320v32h192v-32h-192zM416 32h-224v224h224v-224zM224 224v-64h16l16 32h32v-96h-24v-32h80v32h-24v96h32l16-32h16v64z" />
-</font></defs></svg> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.ttf b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.ttf
deleted file mode 100644
index afc6ec458..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.ttf
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.woff b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.woff
deleted file mode 100644
index fa72c74b4..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce-small.woff
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.dev.svg b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.dev.svg
deleted file mode 100644
index c87b8cd1a..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.dev.svg
+++ /dev/null
@@ -1,153 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata>
-This is a custom SVG font generated by IcoMoon.
-<iconset grid="16"></iconset>
-</metadata>
-<defs>
-<font id="tinymce" horiz-adv-x="512" >
-<font-face units-per-em="512" ascent="480" descent="-32" />
-<missing-glyph horiz-adv-x="512" />
-<glyph class="hidden" unicode="&#xf000;" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
-<glyph unicode="&#xe034;" d="M 464,416L 256,416L 240,448L 64,448L 32,384L 480,384 zM 452.17,128l 37.43,0 L 512,352L0,352 l 32-320l 242.040,0 C 221.599,50.888, 184,101.133, 184,160c0,74.991, 61.009,136, 136,136
- c 74.99,0, 136-61.009, 136-136C 456,149.161, 454.689,138.425, 452.17,128zM 501.498,23.125l-99.248,87.346C 410.977,124.931, 416,141.878, 416,160c0,53.020-42.98,96-96,96s-96-42.98-96-96
- s 42.98-96, 96-96c 18.122,0, 35.069,5.023, 49.529,13.75l 87.346-99.248c 11.481-13.339, 31.059-14.070, 43.503-1.626l 2.746,2.746
- C 515.568-7.934, 514.837,11.644, 501.498,23.125z M 320,98c-34.242,0-62,27.758-62,62s 27.758,62, 62,62s 62-27.758, 62-62
- S 354.242,98, 320,98z" />
-<glyph unicode="&#xe032;" d="M 384,352L 416,352L 416,320L 384,320zM 320,288L 352,288L 352,256L 320,256zM 320,224L 352,224L 352,192L 320,192zM 320,160L 352,160L 352,128L 320,128zM 256,224L 288,224L 288,192L 256,192zM 256,160L 288,160L 288,128L 256,128zM 192,160L 224,160L 224,128L 192,128zM 384,288L 416,288L 416,256L 384,256zM 384,224L 416,224L 416,192L 384,192zM 384,160L 416,160L 416,128L 384,128zM 384,96L 416,96L 416,64L 384,64zM 320,96L 352,96L 352,64L 320,64zM 256,96L 288,96L 288,64L 256,64zM 192,96L 224,96L 224,64L 192,64zM 128,96L 160,96L 160,64L 128,64z" data-tags="resize, dots" />
-<glyph unicode="&#xe031;" d="M 416,352l-96,0 L 320,384 L 224,480L0,480 l0-384 l 192,0 l0-128 l 320,0 L 512,256 L 416,352z M 416,306.745L 466.745,256L 416,256 L 416,306.745 z M 224,434.745L 274.745,384L 224,384
- L 224,434.745 z M 32,448l 160,0 l0-96 l 96,0 l0-224 L 32,128 L 32,448 z M 480,0L 224,0 l0,96 l 96,0 L 320,320 l 64,0 l0-96 l 96,0 L 480,0 z" data-tags="copy" />
-<glyph unicode="&#xe030;" d="M 128,448 L 384,448 L 384,384 L 320,384 L 320,0 L 256,0 L 256,384 L 192,384 L 192,0 L 128,0 L 128,224 C 66.144,224 16,274.144 16,336 C 16,397.856 66.144,448 128,448 ZM 480,32L 352,144L 480,256 z" data-tags="rtl" />
-<glyph unicode="&#xe02f;" d="M 224,448 L 480,448 L 480,384 L 416,384 L 416,0 L 352,0 L 352,384 L 288,384 L 288,0 L 224,0 L 224,224 C 162.144,224 112,274.144 112,336 C 112,397.856 162.144,448 224,448 ZM 32,256L 160,144L 32,32 z" data-tags="ltr" />
-<glyph unicode="&#xe02e;" d="M 192,448 L 448,448 L 448,384 L 384,384 L 384,0 L 320,0 L 320,384 L 256,384 L 256,0 L 192,0 L 192,224 C 130.144,224 80,274.144 80,336 C 80,397.856 130.144,448 192,448 Z" data-tags="visualchars" />
-<glyph unicode="&#xe02d;" d="M 365.71,221.482 C 397.67,197.513 416,163.439 416,128 C 416,92.561 397.67,58.487 365.71,34.518 C 336.031,12.259 297.068,0 256,0 C 214.931,0 175.969,12.259 146.29,34.518 C 114.33,58.487 96,92.561 96,128 L 160,128 C 160,93.309 203.963,64 256,64 C 308.037,64 352,93.309 352,128 C 352,162.691 308.037,192 256,192 C 214.931,192 175.969,204.259 146.29,226.518 C 114.33,250.488 96,284.561 96,320 C 96,355.439 114.33,389.512 146.29,413.482 C 175.969,435.741 214.931,448 256,448 C 297.068,448 336.031,435.741 365.71,413.482 C 397.67,389.512 416,355.439 416,320 L 352,320 C 352,354.691 308.037,384 256,384 C 203.963,384 160,354.691 160,320 C 160,285.309 203.963,256 256,256 C 297.068,256 336.031,243.741 365.71,221.482 ZM0,224L 512,224L 512,192L0,192z" data-tags="strikethrough" />
-<glyph unicode="&#xe02c;" d="M 352,448 L 416,448 L 416,240 C 416,160.471 344.366,96 256,96 C 167.635,96 96,160.471 96,240 L 96,448 L 160,448 L 160,240 C 160,219.917 169.119,200.648 185.677,185.747 C 204.125,169.145 229.1,160 256,160 C 282.9,160 307.875,169.145 326.323,185.747 C 342.881,200.648 352,219.917 352,240 L 352,448 ZM 96,64L 416,64L 416,0L 96,0z" data-tags="underline" />
-<glyph unicode="&#xe02b;" d="M 448,448 L 448,416 L 384,416 L 224,32 L 288,32 L 288,0 L 64,0 L 64,32 L 128,32 L 288,416 L 224,416 L 224,448 Z" data-tags="italic" />
-<glyph unicode="&#xe02a;" d="M 353.94,237.674C 372.689,259.945, 384,288.678, 384,320c0,70.58-57.421,128-128,128l-64,0 l-64,0 L 96,448 l0-448 l 32,0 l 64,0 l 96,0
- c 70.579,0, 128,57.421, 128,128C 416,174.478, 391.101,215.248, 353.94,237.674z M 192,384l 50.75,0 c 27.984,0, 50.75-28.71, 50.75-64
- s-22.766-64-50.75-64L 192,256 L 192,384 z M 271.5,64L 192,64 L 192,192 l 79.5,0 c 29.225,0, 53-28.71, 53-64S 300.725,64, 271.5,64z" data-tags="bold0" />
-<glyph unicode="&#xe029;" d="M 192,64L 288,64L 288-32L 192-32zM 400,448 C 426.51,448 448,426.51 448,400 L 448,256 L 288,160 L 288,96 L 192,96 L 192,192 L 352,288 L 352,352 L 96,352 L 96,448 L 400,448 Z" />
-<glyph unicode="&#xe028;" d="M 288,448 C 411.712,448 512,347.712 512,224 C 512,100.288 411.712,0 288,0 L 288,48 C 335.012,48 379.209,66.307 412.451,99.549 C 445.693,132.791 464,176.988 464,224 C 464,271.011 445.693,315.209 412.451,348.451 C 379.209,381.693 335.012,400 288,400 C 240.989,400 196.791,381.693 163.549,348.451 C 137.979,322.882 121.258,290.828 114.896,256 L 208,256 L 96,128 L -16,256 L 66.285,256 C 81.815,364.551 175.154,448 288,448 ZM 384,256 L 384,192 L 256,192 L 256,352 L 320,352 L 320,256 Z" data-tags="restoredraft" />
-<glyph unicode="&#xe027;" d="M0,224L 64,224L 64,192L0,192zM 96,224L 192,224L 192,192L 96,192zM 224,224L 288,224L 288,192L 224,192zM 320,224L 416,224L 416,192L 320,192zM 448,224L 512,224L 512,192L 448,192zM 440,480 L 448,256 L 64,256 L 72,480 L 88,480 L 96,288 L 416,288 L 424,480 ZM 72-32 L 64,160 L 448,160 L 440-32 L 424-32 L 416,128 L 96,128 L 88-32 Z" data-tags="pagebreak" />
-<glyph unicode="&#xe026;" d="M 192,384L 256,384L 256,352L 192,352zM 288,384L 352,384L 352,352L 288,352zM 448,384 L 448,256 L 352,256 L 352,288 L 416,288 L 416,352 L 384,352 L 384,384 ZM 160,288L 224,288L 224,256L 160,256zM 256,288L 320,288L 320,256L 256,256zM 96,352 L 96,288 L 128,288 L 128,256 L 64,256 L 64,384 L 160,384 L 160,352 ZM 192,192L 256,192L 256,160L 192,160zM 288,192L 352,192L 352,160L 288,160zM 448,192 L 448,64 L 352,64 L 352,96 L 416,96 L 416,160 L 384,160 L 384,192 ZM 160,96L 224,96L 224,64L 160,64zM 256,96L 320,96L 320,64L 256,64zM 96,160 L 96,96 L 128,96 L 128,64 L 64,64 L 64,192 L 160,192 L 160,160 ZM 480,448 L 32,448 L 32,0 L 480,0 L 480,448 Z M 512,480 L 512,480 L 512-32 L 0-32 L 0,480 L 512,480 Z" data-tags="template" />
-<glyph unicode="&#xe025;" d="M 224,192 L 128,192 L 128,256 L 224,256 L 224,352 L 288,352 L 288,256 L 384,256 L 384,192 L 288,192 L 288,96 L 224,96 ZM 512,160 L 512-32 L 0-32 L 0,160 L 64,160 L 64,32 L 448,32 L 448,160 Z" data-tags="nonbreaking" />
-<glyph unicode="&#xe024;" d="M 64,352l 64,0 l0-96 l 32,0 L 160,448 c0,17.6-14.4,32-32,32L 64,480 C 46.4,480, 32,465.6, 32,448l0-192 l 32,0 L 64,352 z M 64,448l 64,0 l0-64 L 64,384 L 64,448 z M 480,448L 480,480 l-96,0
- c-17.601,0-32-14.4-32-32l0-160 c0-17.6, 14.399-32, 32-32l 96,0 l0,32 l-96,0 L 384,448 L 480,448 z M 320,400L 320,448 c0,17.6-14.4,32-32,32l-96,0 l0-224 l 96,0
- c 17.6,0, 32,14.4, 32,32l0,48 c0,17.6-4.4,32-22,32C 315.6,368, 320,382.4, 320,400z M 288,288l-64,0 l0,64 l 64,0 L 288,288 z M 288,384l-64,0 L 224,448 l 64,0 L 288,384 zM 416,192 L 208-32 L 96,112 L 137,147 L 208,73 L 384,224 Z" data-tags="spellchecker" />
-<glyph unicode="&#xe023;" d="M 512,480 L 512,288 L 442.87,357.13 L 336.87,251.13 L 283.13,304.87 L 389.13,410.87 L 320,480 ZM 122.87,410.87 L 228.87,304.87 L 175.13,251.13 L 69.13,357.13 L 0,288 L 0,480 L 192,480 ZM 442.87,90.87 L 512,160 L 512-32 L 320-32 L 389.13,37.13 L 283.13,143.13 L 336.87,196.87 ZM 228.87,143.13 L 122.87,37.13 L 192-32 L 0-32 L 0,160 L 69.13,90.87 L 175.13,196.87 Z" data-tags="fullscreen" />
-<glyph unicode="&#xe022;" d="M 128,448L 384,448L 384,384L 128,384zM 480,352L 32,352 C 14.4,352,0,337.6,0,320l0-160 c0-17.6, 14.398-32, 32-32l 96,0 l0-128 l 256,0 L 384,128 l 96,0 c 17.6,0, 32,14.4, 32,32L 512,320
- C 512,337.6, 497.6,352, 480,352z M 352,32L 160,32 L 160,192 l 192,0 L 352,32 z M 487.2,304c0-12.813-10.387-23.2-23.199-23.2
- c-12.813,0-23.201,10.387-23.201,23.2s 10.388,23.2, 23.201,23.2C 476.814,327.2, 487.2,316.813, 487.2,304z" data-tags="print" />
-<glyph unicode="&#xe021;" d="M 256,480C 114.615,480,0,365.386,0,224c0-141.385, 114.614-256, 256-256c 141.385,0, 256,114.615, 256,256
- C 512,365.386, 397.385,480, 256,480z M 256,8c-119.293,0-216,96.706-216,216c0,119.293, 96.707,216, 216,216c 119.295,0, 216-96.707, 216-216
- C 472,104.706, 375.295,8, 256,8z M 192,320c0-17.673-14.327-32-32-32s-32,14.327-32,32s 14.327,32, 32,32S 192,337.673, 192,320z
- M 384,320c0-17.673-14.326-32-32-32s-32,14.327-32,32s 14.326,32, 32,32S 384,337.673, 384,320zM 256,154 C 326.537,154 387.344,182.766 415.231,215.596 C 404.795,129.986 337.087,64 256,64 C 174.941,64 107.251,130.013 96.778,215.584 C 124.671,182.761 185.471,154 256,154 Z" data-tags="emoticons" />
-<glyph unicode="&#xe020;" d="M 352,32 L 480,32 L 512,96 L 512-32 L 320-32 L 320,75.107 C 385.556,103.349 432,173.688 432,256 C 432,363.216 353.201,447.133 256,447.133 C 158.797,447.133 80,363.217 80,256 C 80,173.688 126.443,103.349 192,75.107 L 192-32 L 0-32 L 0,96 L 32,32 L 160,32 L 160,48.295 C 66.185,81.525 0,161.996 0,256 C 0,379.712 114.615,480 256,480 C 397.385,480 512,379.712 512,256 C 512,161.996 445.815,81.525 352,48.295 L 352,32 Z" data-tags="charmap" />
-<glyph unicode="&#xe01f;" d="M 384,377 L 384,352 L 448,352 L 448,320 L 352,320 L 352,393 L 416,423 L 416,448 L 352,448 L 352,480 L 448,480 L 448,407 ZM 338,352L 270,352L 176,258L 82,352L 14,352L 142,224L 14,96L 82,96L 176,190L 270,96L 338,96L 210,224 z" data-tags="sup" />
-<glyph unicode="&#xe01e;" d="M 384,25 L 384,0 L 448,0 L 448-32 L 352-32 L 352,41 L 416,71 L 416,96 L 352,96 L 352,128 L 448,128 L 448,55 ZM 338,352L 270,352L 176,258L 82,352L 14,352L 142,224L 14,96L 82,96L 176,190L 270,96L 338,96L 210,224 z" data-tags="sub" />
-<glyph unicode="&#xe01d;" d="M0,32L 288,32L 288-32L0-32zM 96,480L 448,480L 448,416L 96,416zM 138.694,64 L 241.038,456.082 L 302.963,439.918 L 204.838,64 ZM 464.887-32 L 400,32.887 L 335.113-32 L 304-0.887 L 368.887,64 L 304,128.887 L 335.113,160 L 400,95.113 L 464.887,160 L 496,128.887 L 431.113,64 L 496-0.887 Z" data-tags="removeformat" />
-<glyph unicode="&#xe01c;" d="M0,256L 512,256L 512,192L0,192z" data-tags="hr" />
-<glyph unicode="&#xe01b;" d="M0,448l0-448 l 512,0 L 512,448 L0,448 z M 192,160l0,96 l 128,0 l0-96 L 192,160 z M 320,128l0-96 L 192,32 l0,96 L 320,128 z M 320,384l0-96 L 192,288 L 192,384 L 320,384 z M 160,384l0-96 L 32,288 L 32,384 L 160,384 z
- M 32,256l 128,0 l0-96 L 32,160 L 32,256 z M 352,256l 128,0 l0-96 L 352,160 L 352,256 z M 352,288L 352,384 l 128,0 l0-96 L 352,288 z M 32,128l 128,0 l0-96 L 32,32 L 32,128 z M 352,32l0,96 l 128,0 l0-96 L 352,32 z" data-tags="table" />
-<glyph unicode="&#xe01a;" d="M 161.009,64l 28.8,96l 132.382,0 l 28.8-96l 56.816,0 L 311.809,384L 200.191,384 l-96-320L 161.009,64 z M 237.809,320l 36.382,0 l 28.8-96l-93.982,0
- L 237.809,320z" data-tags="forecolor" />
-<glyph unicode="&#xe019;" d="M 256,320C 151.316,320, 58.378,269.722,0,192c 58.378-77.723, 151.316-128, 256-128c 104.684,0, 197.622,50.277, 256,128
- C 453.622,269.722, 360.684,320, 256,320z M 224,256c 17.673,0, 32-14.327, 32-32s-14.327-32-32-32s-32,14.327-32,32S 206.327,256, 224,256z
- M 386.808,127.352c-19.824-10.129-40.826-17.931-62.423-23.188C 302.141,98.746, 279.134,96, 256,96
- c-23.133,0-46.141,2.746-68.384,8.162c-21.597,5.259-42.599,13.061-62.423,23.188c-31.51,16.101-60.111,38.205-83.82,64.649
- c 23.709,26.444, 52.31,48.55, 83.82,64.649c 16.168,8.261, 33.121,14.973, 50.541,20.020C 165.79,261.547, 160,243.451, 160,224
- c0-53.020, 42.981-96, 96-96c 53.019,0, 96,42.98, 96,96c0,19.451-5.791,37.547-15.733,52.67c 17.419-5.048, 34.372-11.76, 50.541-20.021
- c 31.511-16.099, 60.109-38.204, 83.819-64.649C 446.917,165.557, 418.318,143.45, 386.808,127.352z M 430.459,358.139
- C 376.099,385.916, 317.403,400, 256,400c-61.403,0-120.099-14.084-174.459-41.861C 52.155,343.123, 24.675,324.187,0,302.101l0-54.603
- c 27.669,29.283, 60.347,53.877, 96.097,72.145C 145.907,345.095, 199.706,358, 256,358s 110.093-12.905, 159.902-38.358
- c 35.751-18.268, 68.429-42.862, 96.098-72.145L 512,302.1 C 487.325,324.187, 459.846,343.123, 430.459,358.139z" data-tags="preview" />
-<glyph unicode="&#xe018;" d="M 256,384C 149.962,384, 64,298.039, 64,192s 85.961-192, 192-192c 106.037,0, 192,85.961, 192,192S 362.037,384, 256,384z
- M 357.822,90.177C 330.626,62.979, 294.464,48, 256,48s-74.625,14.979-101.823,42.177C 126.979,117.374, 112,153.536, 112,192
- s 14.979,74.625, 42.177,101.823C 181.375,321.021, 217.536,336, 256,336s 74.626-14.979, 101.821-42.177
- C 385.022,266.625, 400,230.464, 400,192S 385.021,117.374, 357.822,90.177zM 162.965,378.069l-21.47,42.939C 92.058,396.24, 51.76,355.942, 26.992,306.504l 42.938-21.47
- C 90.054,325.202, 122.796,357.945, 162.965,378.069zM 442.067,285.035l 42.939,21.469C 460.24,355.942, 419.943,396.24, 370.504,421.008l-21.472-42.939
- C 389.201,357.945, 421.944,325.203, 442.067,285.035zM 256,288l-32,0 l0-96 c0-5.055, 2.35-9.555, 6.011-12.486l-0.006-0.008l 80-64l 19.988,24.988L 256,199.689L 256,288 z" data-tags="inserttime" />
-<glyph unicode="&#xe017;" d="M 160,352L 32,224L 160,96L 224,96L 96,224L 224,352 zM 352,352L 288,352L 416,224L 288,96L 352,96L 480,224 z" data-tags="code" />
-<glyph unicode="&#xe016;" d="M 224,128L 288,128L 288,64L 224,64zM 352,352 C 369.673,352 384,337.673 384,320 L 384,224 L 288,160 L 224,160 L 224,192 L 320,256 L 320,288 L 160,288 L 160,352 L 352,352 ZM 256,432 C 200.441,432 148.208,410.364 108.922,371.078 C 69.636,331.792 48,279.559 48,224 C 48,168.441 69.636,116.208 108.922,76.922 C 148.208,37.636 200.441,16 256,16 C 311.559,16 363.792,37.636 403.078,76.922 C 442.364,116.208 464,168.441 464,224 C 464,279.559 442.364,331.792 403.078,371.078 C 363.792,410.364 311.559,432 256,432 Z M 256,480 L 256,480 C 397.385,480 512,365.385 512,224 C 512,82.615 397.385-32 256-32 C 114.615-32 0,82.615 0,224 C 0,365.385 114.615,480 256,480 Z" data-tags="help" />
-<glyph unicode="&#xe015;" d="M0,416l0-384 l 512,0 L 512,416 L0,416 z M 96,64L 32,64 l0,64 l 64,0 L 96,64 z M 96,192L 32,192 l0,64 l 64,0 L 96,192 z M 96,320L 32,320 L 32,384 l 64,0 L 96,320 z M 384,64L 128,64 L 128,384 l 256,0 L 384,64 z
- M 480,64l-64,0 l0,64 l 64,0 L 480,64 z M 480,192l-64,0 l0,64 l 64,0 L 480,192 z M 480,320l-64,0 L 416,384 l 64,0 L 480,320 zM 192,320L 192,128L 320,224 z" data-tags="media" />
-<glyph unicode="&#xe014;" d="M0,416l0-416 l 512,0 L 512,416 L0,416 z M 480,32L 32,32 L 32,384 l 448,0 L 480,32 zM 352,304A48,48 3060 1 0 448,304A48,48 3060 1 0 352,304zM 448,64 L 64,64 L 160,320 L 288,160 L 352,208 Z" data-tags="image" />
-<glyph unicode="&#xe013;" d="M 96,480l0-512 l 160,160l 160-160L 416,480 L 96,480 z M 384,45.255l-128,128l-128-128L 128,448 l 256,0 L 384,45.255 z" data-tags="anchor" />
-<glyph unicode="&#xe012;" d="M 238.444,142.443c 2.28-4.524, 3.495-9.579, 3.495-14.848c0-8.808-3.372-17.029-9.496-23.154l-81.69-81.69
- c-6.124-6.124-14.348-9.496-23.154-9.496s-17.030,3.372-23.154,9.496l-49.69,49.69c-6.124,6.125-9.496,14.348-9.496,23.154
- s 3.372,17.030, 9.496,23.154l 81.69,81.691c 6.124,6.123, 14.348,9.496, 23.154,9.496c 5.269,0, 10.322-1.215, 14.848-3.494l 32.669,32.668
- c-13.935,10.705-30.72,16.080-47.517,16.080c-19.993,0-39.986-7.583-55.154-22.751l-81.69-81.691
- c-30.335-30.335-30.335-79.975,0-110.309l 49.69-49.691c 15.167-15.166, 35.16-22.75, 55.153-22.75
- c 19.994,0, 39.987,7.584, 55.154,22.751l 81.69,81.69c 27.91,27.91, 30.119,72.149, 6.672,102.673L 238.444,142.443zM 489.248,407.558l-49.69,49.691C 424.391,472.417, 404.398,480, 384.404,480c-19.993,0-39.985-7.583-55.153-22.751l-81.691-81.691
- c-27.91-27.91-30.119-72.149-6.671-102.671l 32.669,32.67c-2.279,4.525-3.494,9.58-3.494,14.847c0,8.808, 3.372,17.030, 9.496,23.154
- l 81.691,81.691c 6.123,6.124, 14.347,9.497, 23.153,9.497c 8.808,0, 17.030-3.373, 23.154-9.497l 49.69-49.691
- c 6.124-6.124, 9.496-14.347, 9.496-23.154c0-8.807-3.372-17.030-9.496-23.154l-81.69-81.691c-6.124-6.124-14.347-9.496-23.154-9.496
- c-5.268,0-10.322,1.215-14.848,3.495l-32.669-32.669c 13.936-10.705, 30.72-16.080, 47.517-16.080c 19.994,0, 39.987,7.584, 55.154,22.752
- l 81.69,81.69C 519.584,327.584, 519.584,377.223, 489.248,407.558zM 116.684,340.688L 20.687,436.685L 43.315,459.313L 139.312,363.316zM 192,480L 224,480L 224,384L 192,384zM0,288L 96,288L 96,256L0,256zM 395.316,107.312L 491.314,11.314L 468.686-11.314L 372.688,84.684zM 288,64L 320,64L 320-32L 288-32zM 416,192L 512,192L 512,160L 416,160z" data-tags="unlink" />
-<glyph unicode="&#xe011;" d="M 160,128c 8.8-8.8, 23.637-8.363, 32.971,0.971L 351.030,287.029C 360.364,296.363, 360.8,311.2, 352,320
- s-23.637,8.363-32.971-0.971L 160.971,160.971C 151.637,151.637, 151.2,136.8, 160,128zM 238.444,142.444c 2.28-4.525, 3.495-9.58, 3.495-14.848c0-8.808-3.372-17.030-9.496-23.154l-81.691-81.691
- c-6.124-6.124-14.347-9.496-23.154-9.496s-17.030,3.372-23.154,9.496l-49.691,49.691c-6.124,6.124-9.496,14.347-9.496,23.154
- s 3.372,17.030, 9.496,23.154l 81.691,81.691c 6.124,6.124, 14.347,9.497, 23.154,9.497c 5.268,0, 10.322-1.215, 14.848-3.495l 32.669,32.669
- c-13.935,10.705-30.72,16.080-47.517,16.080c-19.993,0-39.986-7.583-55.154-22.751l-81.691-81.691
- c-30.335-30.335-30.335-79.974,0-110.309l 49.691-49.691C 87.611-24.416, 107.604-32, 127.597-32
- c 19.994,0, 39.987,7.584, 55.154,22.751l 81.691,81.691c 27.91,27.91, 30.119,72.149, 6.672,102.672L 238.444,142.444zM 489.249,407.558l-49.691,49.691C 424.391,472.417, 404.398,480, 384.404,480c-19.993,0-39.986-7.583-55.154-22.751l-81.691-81.691
- c-27.91-27.91-30.119-72.149-6.671-102.671l 32.669,32.67c-2.279,4.525-3.494,9.58-3.494,14.847c0,8.808, 3.372,17.030, 9.496,23.154
- l 81.691,81.691c 6.124,6.124, 14.347,9.497, 23.154,9.497s 17.030-3.373, 23.154-9.497l 49.691-49.691
- c 6.124-6.124, 9.496-14.347, 9.496-23.154s-3.372-17.030-9.496-23.154l-81.691-81.691c-6.124-6.124-14.347-9.496-23.154-9.496
- c-5.268,0-10.322,1.215-14.848,3.495l-32.669-32.669c 13.936-10.705, 30.72-16.080, 47.517-16.080c 19.994,0, 39.987,7.584, 55.154,22.751
- l 81.691,81.691C 519.584,327.584, 519.584,377.223, 489.249,407.558z" data-tags="link" />
-<glyph unicode="&#xe010;" d="M 288,355.814L 288,480 l 192-192L 288,96L 288,222.912 C 64.625,228.153, 74.206,71.016, 131.070-32
- C-9.286,119.707, 20.52,362.785, 288,355.814z" data-tags="redo" />
-<glyph unicode="&#xe00f;" d="M 380.931-32C 437.794,71.016, 447.375,228.153, 224,222.912L 224,96 L 32,288L 224,480l0-124.186
- C 491.481,362.785, 521.285,119.707, 380.931-32z" data-tags="undo" />
-<glyph unicode="&#xe00e;" d="M 112.5,256 C 174.356,256 224.5,205.855 224.5,144 C 224.5,82.144 174.356,32 112.5,32 C 50.644,32 0.5,82.144 0.5,144 L 0,160 C 0,283.712 100.288,384 224,384 L 224,320 C 181.263,320 141.083,303.357 110.863,273.137 C 105.046,267.319 99.737,261.129 94.948,254.627 C 100.667,255.527 106.528,256 112.5,256 ZM 400.5,256 C 462.355,256 512.5,205.855 512.5,144 C 512.5,82.144 462.355,32 400.5,32 C 338.645,32 288.5,82.144 288.5,144 L 288,160 C 288,283.712 388.288,384 512,384 L 512,320 C 469.263,320 429.083,303.357 398.863,273.137 C 393.045,267.319 387.736,261.129 382.947,254.627 C 388.667,255.527 394.527,256 400.5,256 Z" data-tags="blockquote" />
-<glyph unicode="&#xe00d;" d="M0,448L 512,448L 512,384L0,384zM 192,352L 512,352L 512,288L 192,288zM 192,256L 512,256L 512,192L 192,192zM 192,160L 512,160L 512,96L 192,96zM0,64L 512,64L 512,0L0,0zM 128,320 L 128,128 L 0,224 Z" data-tags="outdent" />
-<glyph unicode="&#xe00c;" d="M0,448L 512,448L 512,384L0,384zM 192,352L 512,352L 512,288L 192,288zM 192,256L 512,256L 512,192L 192,192zM 192,160L 512,160L 512,96L 192,96zM0,64L 512,64L 512,0L0,0zM 0,128 L 0,320 L 128,224 Z" data-tags="indent" />
-<glyph unicode="&#xe00b;" d="M 192,64L 512,64L 512,0L 192,0zM 192,256L 512,256L 512,192L 192,192zM 192,448L 512,448L 512,384L 192,384zM 96,480 L 96,352 L 64,352 L 64,448 L 32,448 L 32,480 ZM 64,217 L 64,192 L 128,192 L 128,160 L 32,160 L 32,233 L 96,263 L 96,288 L 32,288 L 32,320 L 128,320 L 128,247 ZM 128,128 L 128-32 L 32-32 L 32,0 L 96,0 L 96,32 L 32,32 L 32,64 L 96,64 L 96,96 L 32,96 L 32,128 Z" data-tags="numlist" />
-<glyph unicode="&#xe00a;" d="M 192,448l 320,0 l0-64 L 192,384 L 192,448 z M 192,256l 320,0 l0-64 L 192,192 L 192,256 z M 192,64l 320,0 l0-64 L 192,0 L 192,64 zM0,416A64,64 3060 1 0 128,416A64,64 3060 1 0 0,416zM0,224A64,64 3060 1 0 128,224A64,64 3060 1 0 0,224zM0,32A64,64 3060 1 0 128,32A64,64 3060 1 0 0,32z" data-tags="bullist" />
-<glyph unicode="&#xe009;" d="M 32,480L 224,480L 224,448L 32,448zM 288,480L 480,480L 480,448L 288,448zM 476,320l-28,0 L 448,448 L 320,448 l0-128 L 192,320 L 192,448 L 64,448 l0-128 L 36,320 c-19.8,0-36-16.2-36-36l0-280 c0-19.8, 16.2-36, 36-36l 152,0 c 19.8,0, 36,16.2, 36,36L 224,192 l 64,0
- l0-188 c0-19.8, 16.2-36, 36-36l 152,0 c 19.8,0, 36,16.2, 36,36L 512,284 C 512,303.8, 495.8,320, 476,320z M 174,0L 50,0 c-9.9,0-18,7.2-18,16
- s 8.1,16, 18,16l 124,0 c 9.9,0, 18-7.2, 18-16S 183.9,0, 174,0z M 272,224l-32,0 c-8.8,0-16,7.2-16,16s 7.2,16, 16,16l 32,0 c 8.8,0, 16-7.2, 16-16
- S 280.8,224, 272,224z M 462,0L 338,0 c-9.9,0-18,7.2-18,16s 8.1,16, 18,16l 124,0 c 9.9,0, 18-7.2, 18-16S 471.9,0, 462,0z" data-tags="searchreplace" />
-<glyph unicode="&#xe008;" d="M 416,320L 416,400 c0,8.8-7.2,16-16,16L 288,416 L 288,448 c0,17.6-14.4,32-32,32l-64,0 c-17.602,0-32-14.4-32-32l0-32 L 48,416 c-8.801,0-16-7.2-16-16l0-320
- c0-8.8, 7.199-16, 16-16l 144,0 l0-96 l 224,0 l 96,96L 512,320 L 416,320 z M 192,447.943c 0.017,0.019, 0.036,0.039, 0.057,0.057l 63.884,0
- c 0.021-0.018, 0.041-0.038, 0.059-0.057L 256,416 l-64,0 L 192,447.943 z M 96,352L 96,384 l 256,0 l0-32 L 96,352 z M 416,13.255L 416,64 l 50.745,0 L 416,13.255z M 480,96l-96,0 l0-96
- L 224,0 L 224,288 l 256,0 L 480,96 z" data-tags="paste" />
-<glyph unicode="&#xe007;" d="M 445.387,125.423c-22.827,22.778-51.864,34.536-78.973,34.536l-14.556,0 l-31.952,32.004l 127.81,128.019
- c 31.952,32.005, 31.952,96.014,0,128.019L 256.001,255.973L 64.285,448c-31.952-32.004-31.952-96.014,0-128.019l 127.811-128.017
- l-31.953-32.004l-14.557,0 c-27.11,0-56.146-11.759-78.974-34.538c-40.811-40.721-46.325-101.242-12.315-135.175
- C 69.282-24.704, 89.441-32, 110.795-32c 27.108,0, 56.145,11.757, 78.973,34.536c 26.792,26.732, 38.371,62, 33.542,92.674l 32.692,32.744
- l 32.688-32.744c-4.828-30.674, 6.753-65.941, 33.542-92.674C 345.063-20.243, 374.098-32, 401.206-32
- c 21.354,0, 41.512,7.296, 56.497,22.248C 491.713,24.181, 486.197,84.702, 445.387,125.423z M 176.512,57.231
- c-3.849-8.941-9.505-17.173-16.813-24.463c-7.318-7.302-15.586-12.959-24.574-16.812c-8.066-3.458-16.48-5.284-24.331-5.284
- c-7.573,0-18.306,1.701-26.431,9.806c-8.068,8.052-9.76,18.659-9.76,26.144c0,7.771, 1.821,16.105, 5.263,24.106
- c 3.85,8.942, 9.507,17.173, 16.813,24.463c 7.317,7.303, 15.586,12.957, 24.575,16.812c 8.067,3.457, 16.48,5.284, 24.332,5.284
- c 7.573,0, 18.306-1.7, 26.429-9.807c 8.067-8.049, 9.761-18.658, 9.761-26.142C 181.777,73.567, 179.957,65.23, 176.512,57.231z
- M 256.002,146.702c-24.957,0-45.188,20.266-45.188,45.263c0,24.996, 20.231,45.26, 45.188,45.26s 45.186-20.264, 45.186-45.26
- C 301.188,166.966, 280.958,146.702, 256.002,146.702z M 427.636,20.479c-8.124-8.104-18.856-9.806-26.43-9.806
- c-7.852,0-16.265,1.826-24.333,5.284c-8.986,3.853-17.254,9.51-24.571,16.812c-7.307,7.29-12.963,15.521-16.813,24.463
- c-3.443,7.999-5.263,16.336-5.263,24.106c0,7.483, 1.692,18.094, 9.76,26.143c 8.123,8.104, 18.856,9.807, 26.43,9.807
- c 7.85,0, 16.265-1.827, 24.33-5.284c 8.989-3.854, 17.258-9.509, 24.575-16.812c 7.305-7.29, 12.962-15.521, 16.813-24.463
- c 3.442-7.999, 5.263-16.335, 5.263-24.106C 437.396,39.138, 435.702,28.53, 427.636,20.479z" data-tags="cut" />
-<glyph unicode="&#xe006;" d="M0,448L 512,448L 512,384L0,384zM0,352L 512,352L 512,288L0,288zM0,256L 512,256L 512,192L0,192zM0,160L 512,160L 512,96L0,96zM0,64L 512,64L 512,0L0,0z" data-tags="alignjustify" />
-<glyph unicode="&#xe005;" d="M0,448L 512,448L 512,384L0,384zM 192,352L 512,352L 512,288L 192,288zM 192,160L 512,160L 512,96L 192,96zM0,256L 512,256L 512,192L0,192zM0,64L 512,64L 512,0L0,0z" data-tags="alignright" />
-<glyph unicode="&#xe004;" d="M0,448L 512,448L 512,384L0,384zM 96,352L 416,352L 416,288L 96,288zM 96,160L 416,160L 416,96L 96,96zM0,256L 512,256L 512,192L0,192zM0,64L 512,64L 512,0L0,0z" data-tags="aligncenter" />
-<glyph unicode="&#xe003;" d="M0,448L 512,448L 512,384L0,384zM0,352L 320,352L 320,288L0,288zM0,160L 320,160L 320,96L0,96zM0,256L 512,256L 512,192L0,192zM0,64L 512,64L 512,0L0,0z" data-tags="alignleft" />
-<glyph unicode="&#xe002;" d="M 512,183.771l0,80.458 l-79.572,7.957c-4.093,15.021-10.044,29.274-17.605,42.49l 52.298,63.919L 410.595,435.12l-63.918-52.298
- c-13.217,7.562-27.471,13.513-42.491,17.604L 296.229,480l-80.458,0 l-7.957-79.573c-15.021-4.093-29.274-10.043-42.49-17.604
- L 101.405,435.12L 44.88,378.595l 52.298-63.918c-7.562-13.216-13.513-27.47-17.605-42.49L0,264.229l0-80.458 l 79.573-7.957
- c 4.093-15.021, 10.043-29.274, 17.605-42.491L 44.88,69.405l 56.524-56.524l 63.919,52.298c 13.216-7.562, 27.47-13.514, 42.49-17.605
- L 215.771-32l 80.458,0 l 7.957,79.572c 15.021,4.093, 29.274,10.044, 42.491,17.605l 63.918-52.298l 56.524,56.524l-52.298,63.918
- c 7.562,13.217, 13.514,27.471, 17.605,42.49L 512,183.771z M 352,192l-64-64l-64,0 l-64,64l0,64 l 64,64l 64,0 l 64-64L 352,192 z" data-tags="fullpage" />
-<glyph unicode="&#xe001;" d="M 451.716,380.285l-71.432,71.431C 364.728,467.272, 334,480, 312,480L 72,480 C 50,480, 32,462, 32,440l0-432 c0-22, 18-40, 40-40l 368,0 c 22,0, 40,18, 40,40
- L 480,312 C 480,334, 467.272,364.729, 451.716,380.285z M 429.089,357.657c 1.565-1.565, 3.125-3.487, 4.64-5.657L 352,352 L 352,433.728
- c 2.17-1.515, 4.092-3.075, 5.657-4.64L 429.089,357.657z M 448,8c0-4.336-3.664-8-8-8L 72,0 c-4.336,0-8,3.664-8,8L 64,440 c0,4.336, 3.664,8, 8,8
- l 240,0 c 2.416,0, 5.127-0.305, 8-0.852L 320,320 l 127.148,0 c 0.547-2.873, 0.852-5.583, 0.852-8L 448,8 z" data-tags="newdocument" />
-<glyph unicode="&#xe000;" d="M 448,480L0,480 l0-512 l 512,0 L 512,416 L 448,480z M 256,416l 64,0 l0-128 l-64,0 L 256,416 z M 448,32L 64,32 L 64,416 l 32,0 l0-160 l 288,0 L 384,416 l 37.489,0 L 448,389.491L 448,32 z" data-tags="save" />
-<glyph unicode="&#xe033;" d="M 64,208L 208,64L 448,304L 384,368L 208,192L 128,272 z" />
-<glyph unicode="&#xe035;" d="M 256,224L 256,160L 272,160L 288,192L 320,192L 320,64L 296,64L 296,32L 408,32L 408,64L 384,64L 384,192L 416,192L 432,160L 448,160L 448,224 zM 416,320L 416,400 c0,8.8-7.2,16-16,16L 288,416 L 288,448 c0,17.6-14.4,32-32,32l-64,0 c-17.602,0-32-14.4-32-32l0-32 L 48,416 c-8.801,0-16-7.2-16-16l0-320
- c0-8.8, 7.199-16, 16-16l 144,0 l0-96 l 320,0 L 512,320 L 416,320 z M 192,447.943c 0.017,0.019, 0.036,0.039, 0.057,0.057l 63.884,0
- c 0.021-0.018, 0.041-0.038, 0.059-0.057L 256,416 l-64,0 L 192,447.943 z M 96,352L 96,384 l 256,0 l0-32 L 96,352 z M 480,0L 224,0 L 224,288 l 256,0 L 480,0 z" data-tags="pastetext" />
-<glyph unicode="&#x20;" horiz-adv-x="256" />
-</font></defs></svg> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.eot b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.eot
deleted file mode 100644
index c1085bfd2..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.eot
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.svg b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.svg
deleted file mode 100644
index feb9ba38d..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata>Generated by IcoMoon</metadata>
-<defs>
-<font id="tinymce" horiz-adv-x="512">
-<font-face units-per-em="512" ascent="480" descent="-32" />
-<missing-glyph horiz-adv-x="512" />
-<glyph unicode="&#x20;" d="" horiz-adv-x="256" />
-<glyph unicode="&#xe000;" d="M448 480h-448v-512h512v448l-64 64zM256 416h64v-128h-64v128zM448 32h-384v384h32v-160h288v160h37.489l26.511-26.509v-357.491z" />
-<glyph unicode="&#xe001;" d="M451.716 380.285l-71.432 71.431c-15.556 15.556-46.284 28.284-68.284 28.284h-240c-22 0-40-18-40-40v-432c0-22 18-40 40-40h368c22 0 40 18 40 40v304c0 22-12.728 52.729-28.284 68.285zM429.089 357.657c1.565-1.565 3.125-3.487 4.64-5.657h-81.729v81.728c2.17-1.515 4.092-3.075 5.657-4.64l71.432-71.431zM448 8c0-4.336-3.664-8-8-8h-368c-4.336 0-8 3.664-8 8v432c0 4.336 3.664 8 8 8h240c2.416 0 5.127-0.305 8-0.852v-127.148h127.148c0.547-2.873 0.852-5.583 0.852-8v-304z" />
-<glyph unicode="&#xe002;" d="M512 183.771v80.458l-79.572 7.957c-4.093 15.021-10.044 29.274-17.605 42.49l52.298 63.919-56.526 56.525-63.918-52.298c-13.217 7.562-27.471 13.513-42.491 17.604l-7.957 79.574h-80.458l-7.957-79.573c-15.021-4.093-29.274-10.043-42.49-17.604l-63.919 52.297-56.525-56.525 52.298-63.918c-7.562-13.216-13.513-27.47-17.605-42.49l-79.573-7.958v-80.458l79.573-7.957c4.093-15.021 10.043-29.274 17.605-42.491l-52.298-63.918 56.524-56.524 63.919 52.298c13.216-7.562 27.47-13.514 42.49-17.605l7.958-79.574h80.458l7.957 79.572c15.021 4.093 29.274 10.044 42.491 17.605l63.918-52.298 56.524 56.524-52.298 63.918c7.562 13.217 13.514 27.471 17.605 42.49l79.574 7.96zM352 192l-64-64h-64l-64 64v64l64 64h64l64-64v-64z" />
-<glyph unicode="&#xe003;" d="M0 448h512v-64h-512zM0 352h320v-64h-320zM0 160h320v-64h-320zM0 256h512v-64h-512zM0 64h512v-64h-512z" />
-<glyph unicode="&#xe004;" d="M0 448h512v-64h-512zM96 352h320v-64h-320zM96 160h320v-64h-320zM0 256h512v-64h-512zM0 64h512v-64h-512z" />
-<glyph unicode="&#xe005;" d="M0 448h512v-64h-512zM192 352h320v-64h-320zM192 160h320v-64h-320zM0 256h512v-64h-512zM0 64h512v-64h-512z" />
-<glyph unicode="&#xe006;" d="M0 448h512v-64h-512zM0 352h512v-64h-512zM0 256h512v-64h-512zM0 160h512v-64h-512zM0 64h512v-64h-512z" />
-<glyph unicode="&#xe007;" d="M445.387 125.423c-22.827 22.778-51.864 34.536-78.973 34.536h-14.556l-31.952 32.004 127.81 128.019c31.952 32.005 31.952 96.014 0 128.019l-191.715-192.028-191.716 192.027c-31.952-32.004-31.952-96.014 0-128.019l127.811-128.017-31.953-32.004h-14.557c-27.11 0-56.146-11.759-78.974-34.538-40.811-40.721-46.325-101.242-12.315-135.175 14.985-14.951 35.144-22.247 56.498-22.247 27.108 0 56.145 11.757 78.973 34.536 26.792 26.732 38.371 62 33.542 92.674l32.692 32.744 32.688-32.744c-4.828-30.674 6.753-65.941 33.542-92.674 22.831-22.779 51.866-34.536 78.974-34.536 21.354 0 41.512 7.296 56.497 22.248 34.010 33.933 28.494 94.454-12.316 135.175zM176.512 57.231c-3.849-8.941-9.505-17.173-16.813-24.463-7.318-7.302-15.586-12.959-24.574-16.812-8.066-3.458-16.48-5.284-24.331-5.284-7.573 0-18.306 1.701-26.431 9.806-8.068 8.052-9.76 18.659-9.76 26.144 0 7.771 1.821 16.105 5.263 24.106 3.85 8.942 9.507 17.173 16.813 24.463 7.317 7.303 15.586 12.957 24.575 16.812 8.067 3.457 16.48 5.284 24.332 5.284 7.573 0 18.306-1.7 26.429-9.807 8.067-8.049 9.761-18.658 9.761-26.142 0.001-7.771-1.819-16.108-5.264-24.107zM256.002 146.702c-24.957 0-45.188 20.266-45.188 45.263 0 24.996 20.231 45.26 45.188 45.26s45.186-20.264 45.186-45.26c0-24.999-20.23-45.263-45.186-45.263zM427.636 20.479c-8.124-8.104-18.856-9.806-26.43-9.806-7.852 0-16.265 1.826-24.333 5.284-8.986 3.853-17.254 9.51-24.571 16.812-7.307 7.29-12.963 15.521-16.813 24.463-3.443 7.999-5.263 16.336-5.263 24.106 0 7.483 1.692 18.094 9.76 26.143 8.123 8.104 18.856 9.807 26.43 9.807 7.85 0 16.265-1.827 24.33-5.284 8.989-3.854 17.258-9.509 24.575-16.812 7.305-7.29 12.962-15.521 16.813-24.463 3.442-7.999 5.263-16.335 5.263-24.106-0.001-7.485-1.695-18.093-9.761-26.144z" />
-<glyph unicode="&#xe008;" d="M416 320v80c0 8.8-7.2 16-16 16h-112v32c0 17.6-14.4 32-32 32h-64c-17.602 0-32-14.4-32-32v-32h-112c-8.801 0-16-7.2-16-16v-320c0-8.8 7.199-16 16-16h144v-96h224l96 96v256h-96zM192 447.943c0.017 0.019 0.036 0.039 0.057 0.057h63.884c0.021-0.018 0.041-0.038 0.059-0.057v-31.943h-64v31.943zM96 352v32h256v-32h-256zM416 13.255v50.745h50.745l-50.745-50.745zM480 96h-96v-96h-160v288h256v-192z" />
-<glyph unicode="&#xe009;" d="M32 480h192v-32h-192zM288 480h192v-32h-192zM476 320h-28v128h-128v-128h-128v128h-128v-128h-28c-19.8 0-36-16.2-36-36v-280c0-19.8 16.2-36 36-36h152c19.8 0 36 16.2 36 36v188h64v-188c0-19.8 16.2-36 36-36h152c19.8 0 36 16.2 36 36v280c0 19.8-16.2 36-36 36zM174 0h-124c-9.9 0-18 7.2-18 16s8.1 16 18 16h124c9.9 0 18-7.2 18-16s-8.1-16-18-16zM272 224h-32c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16zM462 0h-124c-9.9 0-18 7.2-18 16s8.1 16 18 16h124c9.9 0 18-7.2 18-16s-8.1-16-18-16z" />
-<glyph unicode="&#xe00a;" d="M192 448h320v-64h-320v64zM192 256h320v-64h-320v64zM192 64h320v-64h-320v64zM0 416c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM0 224c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM0 32c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64z" />
-<glyph unicode="&#xe00b;" d="M192 64h320v-64h-320zM192 256h320v-64h-320zM192 448h320v-64h-320zM96 480v-128h-32v96h-32v32zM64 217v-25h64v-32h-96v73l64 30v25h-64v32h96v-73zM128 128v-160h-96v32h64v32h-64v32h64v32h-64v32z" />
-<glyph unicode="&#xe00c;" d="M0 448h512v-64h-512zM192 352h320v-64h-320zM192 256h320v-64h-320zM192 160h320v-64h-320zM0 64h512v-64h-512zM0 128v192l128-96z" />
-<glyph unicode="&#xe00d;" d="M0 448h512v-64h-512zM192 352h320v-64h-320zM192 256h320v-64h-320zM192 160h320v-64h-320zM0 64h512v-64h-512zM128 320v-192l-128 96z" />
-<glyph unicode="&#xe00e;" d="M112.5 256c61.856 0 112-50.145 112-112 0-61.856-50.144-112-112-112-61.856 0-112 50.144-112 112l-0.5 16c0 123.712 100.288 224 224 224v-64c-42.737 0-82.917-16.643-113.137-46.863-5.817-5.818-11.126-12.008-15.915-18.51 5.719 0.9 11.58 1.373 17.552 1.373zM400.5 256c61.855 0 112-50.145 112-112 0-61.856-50.145-112-112-112-61.855 0-112 50.144-112 112l-0.5 16c0 123.712 100.288 224 224 224v-64c-42.737 0-82.917-16.643-113.137-46.863-5.818-5.818-11.127-12.008-15.916-18.51 5.72 0.9 11.58 1.373 17.553 1.373z" />
-<glyph unicode="&#xe00f;" d="M380.931-32c56.863 103.016 66.444 260.153-156.931 254.912v-126.912l-192 192 192 192v-124.186c267.481 6.971 297.285-236.107 156.931-387.814z" />
-<glyph unicode="&#xe010;" d="M288 355.814v124.186l192-192-192-192v126.912c-223.375 5.241-213.794-151.896-156.93-254.912-140.356 151.707-110.55 394.785 156.93 387.814z" />
-<glyph unicode="&#xe011;" d="M160 128c8.8-8.8 23.637-8.363 32.971 0.971l158.059 158.058c9.334 9.334 9.77 24.171 0.97 32.971s-23.637 8.363-32.971-0.971l-158.058-158.058c-9.334-9.334-9.771-24.171-0.971-32.971zM238.444 142.444c2.28-4.525 3.495-9.58 3.495-14.848 0-8.808-3.372-17.030-9.496-23.154l-81.691-81.691c-6.124-6.124-14.347-9.496-23.154-9.496s-17.030 3.372-23.154 9.496l-49.691 49.691c-6.124 6.124-9.496 14.347-9.496 23.154s3.372 17.030 9.496 23.154l81.691 81.691c6.124 6.124 14.347 9.497 23.154 9.497 5.268 0 10.322-1.215 14.848-3.495l32.669 32.669c-13.935 10.705-30.72 16.080-47.517 16.080-19.993 0-39.986-7.583-55.154-22.751l-81.691-81.691c-30.335-30.335-30.335-79.974 0-110.309l49.691-49.691c15.167-15.166 35.16-22.75 55.153-22.75 19.994 0 39.987 7.584 55.154 22.751l81.691 81.691c27.91 27.91 30.119 72.149 6.672 102.672l-32.67-32.67zM489.249 407.558l-49.691 49.691c-15.167 15.168-35.16 22.751-55.154 22.751-19.993 0-39.986-7.583-55.154-22.751l-81.691-81.691c-27.91-27.91-30.119-72.149-6.671-102.671l32.669 32.67c-2.279 4.525-3.494 9.58-3.494 14.847 0 8.808 3.372 17.030 9.496 23.154l81.691 81.691c6.124 6.124 14.347 9.497 23.154 9.497s17.030-3.373 23.154-9.497l49.691-49.691c6.124-6.124 9.496-14.347 9.496-23.154s-3.372-17.030-9.496-23.154l-81.691-81.691c-6.124-6.124-14.347-9.496-23.154-9.496-5.268 0-10.322 1.215-14.848 3.495l-32.669-32.669c13.936-10.705 30.72-16.080 47.517-16.080 19.994 0 39.987 7.584 55.154 22.751l81.691 81.691c30.335 30.333 30.335 79.972 0 110.307z" />
-<glyph unicode="&#xe012;" d="M238.444 142.443c2.28-4.524 3.495-9.579 3.495-14.848 0-8.808-3.372-17.029-9.496-23.154l-81.69-81.69c-6.124-6.124-14.348-9.496-23.154-9.496s-17.030 3.372-23.154 9.496l-49.69 49.69c-6.124 6.125-9.496 14.348-9.496 23.154s3.372 17.030 9.496 23.154l81.69 81.691c6.124 6.123 14.348 9.496 23.154 9.496 5.269 0 10.322-1.215 14.848-3.494l32.669 32.668c-13.935 10.705-30.72 16.080-47.517 16.080-19.993 0-39.986-7.583-55.154-22.751l-81.69-81.691c-30.335-30.335-30.335-79.975 0-110.309l49.69-49.691c15.167-15.166 35.16-22.75 55.153-22.75 19.994 0 39.987 7.584 55.154 22.751l81.69 81.69c27.91 27.91 30.119 72.149 6.672 102.673l-32.67-32.669zM489.248 407.558l-49.69 49.691c-15.167 15.168-35.16 22.751-55.154 22.751-19.993 0-39.985-7.583-55.153-22.751l-81.691-81.691c-27.91-27.91-30.119-72.149-6.671-102.671l32.669 32.67c-2.279 4.525-3.494 9.58-3.494 14.847 0 8.808 3.372 17.030 9.496 23.154l81.691 81.691c6.123 6.124 14.347 9.497 23.153 9.497 8.808 0 17.030-3.373 23.154-9.497l49.69-49.691c6.124-6.124 9.496-14.347 9.496-23.154s-3.372-17.030-9.496-23.154l-81.69-81.691c-6.124-6.124-14.347-9.496-23.154-9.496-5.268 0-10.322 1.215-14.848 3.495l-32.669-32.669c13.936-10.705 30.72-16.080 47.517-16.080 19.994 0 39.987 7.584 55.154 22.752l81.69 81.69c30.336 30.333 30.336 79.972 0 110.307zM116.684 340.688l-95.997 95.997 22.628 22.628 95.997-95.997zM192 480h32v-96h-32zM0 288h96v-32h-96zM395.316 107.312l95.998-95.998-22.628-22.628-95.998 95.998zM288 64h32v-96h-32zM416 192h96v-32h-96z" />
-<glyph unicode="&#xe013;" d="M96 480v-512l160 160 160-160v512h-320zM384 45.255l-128 128-128-128v402.745h256v-402.745z" />
-<glyph unicode="&#xe014;" d="M0 416v-416h512v416h-512zM480 32h-448v352h448v-352zM352 304c0 26.51 21.49 48 48 48s48-21.49 48-48c0-26.51-21.49-48-48-48-26.51 0-48 21.49-48 48zM448 64h-384l96 256 128-160 64 48z" />
-<glyph unicode="&#xe015;" d="M0 416v-384h512v384h-512zM96 64h-64v64h64v-64zM96 192h-64v64h64v-64zM96 320h-64v64h64v-64zM384 64h-256v320h256v-320zM480 64h-64v64h64v-64zM480 192h-64v64h64v-64zM480 320h-64v64h64v-64zM192 320v-192l128 96z" />
-<glyph unicode="&#xe016;" d="M224 128h64v-64h-64zM352 352c17.673 0 32-14.327 32-32v-96l-96-64h-64v32l96 64v32h-160v64h192zM256 432c-55.559 0-107.792-21.636-147.078-60.922s-60.922-91.519-60.922-147.078c0-55.559 21.636-107.792 60.922-147.078 39.286-39.286 91.519-60.922 147.078-60.922 55.559 0 107.792 21.636 147.078 60.922 39.286 39.286 60.922 91.519 60.922 147.078 0 55.559-21.636 107.792-60.922 147.078-39.286 39.286-91.519 60.922-147.078 60.922zM256 480v0c141.385 0 256-114.615 256-256s-114.615-256-256-256c-141.385 0-256 114.615-256 256 0 141.385 114.615 256 256 256z" />
-<glyph unicode="&#xe017;" d="M160 352l-128-128 128-128h64l-128 128 128 128zM352 352h-64l128-128-128-128h64l128 128z" />
-<glyph unicode="&#xe018;" d="M256 384c-106.038 0-192-85.961-192-192s85.961-192 192-192c106.037 0 192 85.961 192 192s-85.963 192-192 192zM357.822 90.177c-27.196-27.198-63.358-42.177-101.822-42.177s-74.625 14.979-101.823 42.177c-27.198 27.197-42.177 63.359-42.177 101.823s14.979 74.625 42.177 101.823c27.198 27.198 63.359 42.177 101.823 42.177s74.626-14.979 101.821-42.177c27.201-27.198 42.179-63.359 42.179-101.823s-14.979-74.626-42.178-101.823zM162.965 378.069l-21.47 42.939c-49.437-24.768-89.735-65.066-114.503-114.504l42.938-21.47c20.124 40.168 52.866 72.911 93.035 93.035zM442.067 285.035l42.939 21.469c-24.766 49.438-65.063 89.736-114.502 114.504l-21.472-42.939c40.169-20.124 72.912-52.866 93.035-93.034zM256 288h-32v-96c0-5.055 2.35-9.555 6.011-12.486l-0.006-0.008 80-64 19.988 24.988-73.993 59.195v88.311z" />
-<glyph unicode="&#xe019;" d="M256 320c-104.684 0-197.622-50.278-256-128 58.378-77.723 151.316-128 256-128 104.684 0 197.622 50.277 256 128-58.378 77.722-151.316 128-256 128zM224 256c17.673 0 32-14.327 32-32s-14.327-32-32-32-32 14.327-32 32 14.327 32 32 32zM386.808 127.352c-19.824-10.129-40.826-17.931-62.423-23.188-22.244-5.418-45.251-8.164-68.385-8.164-23.133 0-46.141 2.746-68.384 8.162-21.597 5.259-42.599 13.061-62.423 23.188-31.51 16.101-60.111 38.205-83.82 64.649 23.709 26.444 52.31 48.55 83.82 64.649 16.168 8.261 33.121 14.973 50.541 20.020-9.944-15.121-15.734-33.217-15.734-52.668 0-53.020 42.981-96 96-96 53.019 0 96 42.98 96 96 0 19.451-5.791 37.547-15.733 52.67 17.419-5.048 34.372-11.76 50.541-20.021 31.511-16.099 60.109-38.204 83.819-64.649-23.71-26.443-52.309-48.55-83.819-64.648zM430.459 358.139c-54.36 27.777-113.056 41.861-174.459 41.861-61.403 0-120.099-14.084-174.459-41.861-29.386-15.016-56.866-33.952-81.541-56.038v-54.603c27.669 29.283 60.347 53.877 96.097 72.145 49.81 25.452 103.609 38.357 159.903 38.357s110.093-12.905 159.902-38.358c35.751-18.268 68.429-42.862 96.098-72.145v54.603c-24.675 22.087-52.154 41.023-81.541 56.039z" />
-<glyph unicode="&#xe01a;" d="M161.009 64l28.8 96h132.382l28.8-96h56.816l-95.998 320h-111.618l-96-320h56.818zM237.809 320h36.382l28.8-96h-93.982l28.8 96z" />
-<glyph unicode="&#xe01b;" d="M0 448v-448h512v448h-512zM192 160v96h128v-96h-128zM320 128v-96h-128v96h128zM320 384v-96h-128v96h128zM160 384v-96h-128v96h128zM32 256h128v-96h-128v96zM352 256h128v-96h-128v96zM352 288v96h128v-96h-128zM32 128h128v-96h-128v96zM352 32v96h128v-96h-128z" />
-<glyph unicode="&#xe01c;" d="M0 256h512v-64h-512z" />
-<glyph unicode="&#xe01d;" d="M0 32h288v-64h-288zM96 480h352v-64h-352zM138.694 64l102.344 392.082 61.925-16.164-98.125-375.918zM464.887-32l-64.887 64.887-64.887-64.887-31.113 31.113 64.887 64.887-64.887 64.887 31.113 31.113 64.887-64.887 64.887 64.887 31.113-31.113-64.887-64.887 64.887-64.887z" />
-<glyph unicode="&#xe01e;" d="M384 25v-25h64v-32h-96v73l64 30v25h-64v32h96v-73zM338 352h-68l-94-94-94 94h-68l128-128-128-128h68l94 94 94-94h68l-128 128z" />
-<glyph unicode="&#xe01f;" d="M384 377v-25h64v-32h-96v73l64 30v25h-64v32h96v-73zM338 352h-68l-94-94-94 94h-68l128-128-128-128h68l94 94 94-94h68l-128 128z" />
-<glyph unicode="&#xe020;" d="M352 32h128l32 64v-128h-192v107.107c65.556 28.242 112 98.581 112 180.893 0 107.216-78.799 191.133-176 191.133-97.203 0-176-83.916-176-191.133 0-82.312 46.443-152.651 112-180.893v-107.107h-192v128l32-64h128v16.295c-93.815 33.23-160 113.701-160 207.705 0 123.712 114.615 224 256 224 141.385 0 256-100.288 256-224 0-94.004-66.185-174.475-160-207.705v-16.295z" />
-<glyph unicode="&#xe021;" d="M256 480c-141.385 0-256-114.614-256-256 0-141.385 114.614-256 256-256 141.385 0 256 114.615 256 256 0 141.386-114.615 256-256 256zM256 8c-119.293 0-216 96.706-216 216 0 119.293 96.707 216 216 216 119.295 0 216-96.707 216-216 0-119.294-96.705-216-216-216zM192 320c0-17.673-14.327-32-32-32s-32 14.327-32 32 14.327 32 32 32 32-14.327 32-32zM384 320c0-17.673-14.326-32-32-32s-32 14.327-32 32 14.326 32 32 32 32-14.327 32-32zM256 154c70.537 0 131.344 28.766 159.231 61.596-10.436-85.61-78.144-151.596-159.231-151.596-81.059 0-148.749 66.013-159.222 151.584 27.893-32.823 88.693-61.584 159.222-61.584z" />
-<glyph unicode="&#xe022;" d="M128 448h256v-64h-256zM480 352h-448c-17.6 0-32-14.4-32-32v-160c0-17.6 14.398-32 32-32h96v-128h256v128h96c17.6 0 32 14.4 32 32v160c0 17.6-14.4 32-32 32zM352 32h-192v160h192v-160zM487.2 304c0-12.813-10.387-23.2-23.199-23.2-12.813 0-23.201 10.387-23.201 23.2s10.388 23.2 23.201 23.2c12.813 0 23.199-10.387 23.199-23.2z" />
-<glyph unicode="&#xe023;" d="M512 480v-192l-69.13 69.13-106-106-53.74 53.74 106 106-69.13 69.13zM122.87 410.87l106-106-53.74-53.74-106 106-69.13-69.13v192h192zM442.87 90.87l69.13 69.13v-192h-192l69.13 69.13-106 106 53.74 53.74zM228.87 143.13l-106-106 69.13-69.13h-192v192l69.13-69.13 106 106z" />
-<glyph unicode="&#xe024;" d="M64 352h64v-96h32v192c0 17.6-14.4 32-32 32h-64c-17.6 0-32-14.4-32-32v-192h32v96zM64 448h64v-64h-64v64zM480 448v32h-96c-17.601 0-32-14.4-32-32v-160c0-17.6 14.399-32 32-32h96v32h-96v160h96zM320 400v48c0 17.6-14.4 32-32 32h-96v-224h96c17.6 0 32 14.4 32 32v48c0 17.6-4.4 32-22 32 17.6 0 22 14.4 22 32zM288 288h-64v64h64v-64zM288 384h-64v64h64v-64zM416 192l-208-224-112 144 41 35 71-74 176 151z" />
-<glyph unicode="&#xe025;" d="M224 192h-96v64h96v96h64v-96h96v-64h-96v-96h-64zM512 160v-192h-512v192h64v-128h384v128z" />
-<glyph unicode="&#xe026;" d="M192 384h64v-32h-64zM288 384h64v-32h-64zM448 384v-128h-96v32h64v64h-32v32zM160 288h64v-32h-64zM256 288h64v-32h-64zM96 352v-64h32v-32h-64v128h96v-32zM192 192h64v-32h-64zM288 192h64v-32h-64zM448 192v-128h-96v32h64v64h-32v32zM160 96h64v-32h-64zM256 96h64v-32h-64zM96 160v-64h32v-32h-64v128h96v-32zM480 448h-448v-448h448v448zM512 480v0-512h-512v512h512z" />
-<glyph unicode="&#xe027;" d="M0 224h64v-32h-64zM96 224h96v-32h-96zM224 224h64v-32h-64zM320 224h96v-32h-96zM448 224h64v-32h-64zM440 480l8-224h-384l8 224h16l8-192h320l8 192zM72-32l-8 192h384l-8-192h-16l-8 160h-320l-8-160z" />
-<glyph unicode="&#xe028;" d="M288 448c123.712 0 224-100.288 224-224s-100.288-224-224-224v48c47.012 0 91.209 18.307 124.451 51.549 33.242 33.242 51.549 77.439 51.549 124.451 0 47.011-18.307 91.209-51.549 124.451-33.242 33.242-77.439 51.549-124.451 51.549-47.011 0-91.209-18.307-124.451-51.549-25.57-25.569-42.291-57.623-48.653-92.451h93.104l-112-128-112 128h82.285c15.53 108.551 108.869 192 221.715 192zM384 256v-64h-128v160h64v-96z" />
-<glyph unicode="&#xe02a;" d="M353.94 237.674c18.749 22.271 30.060 51.004 30.060 82.326 0 70.58-57.421 128-128 128h-160v-448h192c70.579 0 128 57.421 128 128 0 46.478-24.899 87.248-62.060 109.674zM192 384h50.75c27.984 0 50.75-28.71 50.75-64s-22.766-64-50.75-64h-50.75v128zM271.5 64h-79.5v128h79.5c29.225 0 53-28.71 53-64s-23.775-64-53-64z" />
-<glyph unicode="&#xe02b;" d="M448 448v-32h-64l-160-384h64v-32h-224v32h64l160 384h-64v32z" />
-<glyph unicode="&#xe02c;" d="M352 448h64v-208c0-79.529-71.634-144-160-144-88.365 0-160 64.471-160 144v208h64v-208c0-20.083 9.119-39.352 25.677-54.253 18.448-16.602 43.423-25.747 70.323-25.747 26.9 0 51.875 9.145 70.323 25.747 16.558 14.901 25.677 34.17 25.677 54.253v208zM96 64h320v-64h-320z" />
-<glyph unicode="&#xe02d;" d="M365.71 221.482c31.96-23.969 50.29-58.043 50.29-93.482s-18.33-69.513-50.29-93.482c-29.679-22.259-68.642-34.518-109.71-34.518-41.069 0-80.031 12.259-109.71 34.518-31.96 23.969-50.29 58.043-50.29 93.482h64c0-34.691 43.963-64 96-64s96 29.309 96 64c0 34.691-43.963 64-96 64-41.069 0-80.031 12.259-109.71 34.518-31.96 23.97-50.29 58.043-50.29 93.482 0 35.439 18.33 69.512 50.29 93.482 29.679 22.259 68.641 34.518 109.71 34.518 41.068 0 80.031-12.259 109.71-34.518 31.96-23.97 50.29-58.043 50.29-93.482h-64c0 34.691-43.963 64-96 64-52.037 0-96-29.309-96-64 0-34.691 43.963-64 96-64 41.068 0 80.031-12.259 109.71-34.518zM0 224h512v-32h-512z" />
-<glyph unicode="&#xe02e;" d="M192 448h256v-64h-64v-384h-64v384h-64v-384h-64v224c-61.856 0-112 50.144-112 112s50.144 112 112 112z" />
-<glyph unicode="&#xe02f;" d="M224 448h256v-64h-64v-384h-64v384h-64v-384h-64v224c-61.856 0-112 50.144-112 112s50.144 112 112 112zM32 256l128-112-128-112z" />
-<glyph unicode="&#xe030;" d="M128 448h256v-64h-64v-384h-64v384h-64v-384h-64v224c-61.856 0-112 50.144-112 112s50.144 112 112 112zM480 32l-128 112 128 112z" />
-<glyph unicode="&#xe031;" d="M416 352h-96v32l-96 96h-224v-384h192v-128h320v288l-96 96zM416 306.745l50.745-50.745h-50.745v50.745zM224 434.745l50.745-50.745h-50.745v50.745zM32 448h160v-96h96v-224h-256v320zM480 0h-256v96h96v224h64v-96h96v-224z" />
-<glyph unicode="&#xe032;" d="M384 352h32v-32h-32zM320 288h32v-32h-32zM320 224h32v-32h-32zM320 160h32v-32h-32zM256 224h32v-32h-32zM256 160h32v-32h-32zM192 160h32v-32h-32zM384 288h32v-32h-32zM384 224h32v-32h-32zM384 160h32v-32h-32zM384 96h32v-32h-32zM320 96h32v-32h-32zM256 96h32v-32h-32zM192 96h32v-32h-32zM128 96h32v-32h-32z" />
-<glyph unicode="&#xe033;" d="M64 208l144-144 240 240-64 64-176-176-80 80z" />
-<glyph unicode="&#xe034;" d="M464 416h-208l-16 32h-176l-32-64h448zM452.17 128h37.43l22.4 224h-512l32-320h242.040c-52.441 18.888-90.040 69.133-90.040 128 0 74.991 61.009 136 136 136 74.99 0 136-61.009 136-136 0-10.839-1.311-21.575-3.83-32zM501.498 23.125l-99.248 87.346c8.727 14.46 13.75 31.407 13.75 49.529 0 53.020-42.98 96-96 96s-96-42.98-96-96 42.98-96 96-96c18.122 0 35.069 5.023 49.529 13.75l87.346-99.248c11.481-13.339 31.059-14.070 43.503-1.626l2.746 2.746c12.444 12.444 11.713 32.022-1.626 43.503zM320 98c-34.242 0-62 27.758-62 62s27.758 62 62 62 62-27.758 62-62-27.758-62-62-62z" />
-<glyph unicode="&#xe035;" d="M256 224v-64h16l16 32h32v-128h-24v-32h112v32h-24v128h32l16-32h16v64zM416 320v80c0 8.8-7.2 16-16 16h-112v32c0 17.6-14.4 32-32 32h-64c-17.602 0-32-14.4-32-32v-32h-112c-8.801 0-16-7.2-16-16v-320c0-8.8 7.199-16 16-16h144v-96h320v352h-96zM192 447.943c0.017 0.019 0.036 0.039 0.057 0.057h63.884c0.021-0.018 0.041-0.038 0.059-0.057v-31.943h-64v31.943zM96 352v32h256v-32h-256zM480 0h-256v288h256v-288z" />
-</font></defs></svg> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.ttf b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.ttf
deleted file mode 100644
index 58103c2b6..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.ttf
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.woff b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.woff
deleted file mode 100644
index ad1ae396a..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/fonts/tinymce.woff
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/img/anchor.gif b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/img/anchor.gif
deleted file mode 100644
index 606348c7f..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/img/anchor.gif
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/img/loader.gif b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/img/loader.gif
deleted file mode 100644
index c69e93723..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/img/loader.gif
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/img/object.gif b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/img/object.gif
deleted file mode 100644
index cccd7f023..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/img/object.gif
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/img/trans.gif b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/img/trans.gif
deleted file mode 100644
index 388486517..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/img/trans.gif
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/skin.ie7.min.css b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/skin.ie7.min.css
deleted file mode 100644
index cd2bbdf3f..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/skin.ie7.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:visible !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td div{border:1px solid #d6d6d6;width:12px;height:12px;margin:2px;cursor:pointer}.mce-grid td div:focus{border-color:#a1a1a1}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fdfdfd, #ddd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#ddd));background-image:-webkit-linear-gradient(top, #fdfdfd, #ddd);background-image:-o-linear-gradient(top, #fdfdfd, #ddd);background-image:linear-gradient(to bottom, #fdfdfd, #ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000000;-moz-box-shadow:0 0 5px #000000;box-shadow:0 0 5px #000000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top, #f2f2f2, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#ccc));background-image:-webkit-linear-gradient(top, #f2f2f2, #ccc);background-image:-o-linear-gradient(top, #f2f2f2, #ccc);background-image:linear-gradient(to bottom, #f2f2f2, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn:not(.mce-disabled):active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #08c, #04c);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));background-image:-webkit-linear-gradient(top, #08c, #04c);background-image:-o-linear-gradient(top, #08c, #04c);background-image:linear-gradient(to bottom, #08c, #04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top, #0077b3, #003cb3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0077b3), to(#003cb3));background-image:-webkit-linear-gradient(top, #0077b3, #003cb3);background-image:-o-linear-gradient(top, #0077b3, #003cb3);background-image:linear-gradient(to bottom, #0077b3, #003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top, #069, #039);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#069), to(#039));background-image:-webkit-linear-gradient(top, #069, #039);background-image:-o-linear-gradient(top, #069, #039);background-image:linear-gradient(to bottom, #069, #039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,0.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,0.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #08c, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));background-image:-webkit-linear-gradient(top, #08c, #0077b3);background-image:-o-linear-gradient(top, #08c, #0077b3);background-image:linear-gradient(to bottom, #08c, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce';font-style:normal;font-weight:normal;font-size:16px;line-height:16px;vertical-align:text-top;-webkit-font-smoothing:antialiased;display:inline-block;background:transparent center center;width:16px;height:16px;color:#333;-ie7-icon:' '}.mce-btn-small .mce-ico{font-family:'tinymce-small'}.mce-ico,i.mce-i-checkbox{zoom:expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = this.currentStyle['-ie7-icon'].substr(1, 1) + '&nbsp;')}.mce-i-save{-ie7-icon:"\e000"}.mce-i-newdocument{-ie7-icon:"\e001"}.mce-i-fullpage{-ie7-icon:"\e002"}.mce-i-alignleft{-ie7-icon:"\e003"}.mce-i-aligncenter{-ie7-icon:"\e004"}.mce-i-alignright{-ie7-icon:"\e005"}.mce-i-alignjustify{-ie7-icon:"\e006"}.mce-i-cut{-ie7-icon:"\e007"}.mce-i-paste{-ie7-icon:"\e008"}.mce-i-searchreplace{-ie7-icon:"\e009"}.mce-i-bullist{-ie7-icon:"\e00a"}.mce-i-numlist{-ie7-icon:"\e00b"}.mce-i-indent{-ie7-icon:"\e00c"}.mce-i-outdent{-ie7-icon:"\e00d"}.mce-i-blockquote{-ie7-icon:"\e00e"}.mce-i-undo{-ie7-icon:"\e00f"}.mce-i-redo{-ie7-icon:"\e010"}.mce-i-link{-ie7-icon:"\e011"}.mce-i-unlink{-ie7-icon:"\e012"}.mce-i-anchor{-ie7-icon:"\e013"}.mce-i-image{-ie7-icon:"\e014"}.mce-i-media{-ie7-icon:"\e015"}.mce-i-help{-ie7-icon:"\e016"}.mce-i-code{-ie7-icon:"\e017"}.mce-i-insertdatetime{-ie7-icon:"\e018"}.mce-i-preview{-ie7-icon:"\e019"}.mce-i-forecolor{-ie7-icon:"\e01a"}.mce-i-backcolor{-ie7-icon:"\e01a"}.mce-i-table{-ie7-icon:"\e01b"}.mce-i-hr{-ie7-icon:"\e01c"}.mce-i-removeformat{-ie7-icon:"\e01d"}.mce-i-subscript{-ie7-icon:"\e01e"}.mce-i-superscript{-ie7-icon:"\e01f"}.mce-i-charmap{-ie7-icon:"\e020"}.mce-i-emoticons{-ie7-icon:"\e021"}.mce-i-print{-ie7-icon:"\e022"}.mce-i-fullscreen{-ie7-icon:"\e023"}.mce-i-spellchecker{-ie7-icon:"\e024"}.mce-i-nonbreaking{-ie7-icon:"\e025"}.mce-i-template{-ie7-icon:"\e026"}.mce-i-pagebreak{-ie7-icon:"\e027"}.mce-i-restoredraft{-ie7-icon:"\e028"}.mce-i-untitled{-ie7-icon:"\e029"}.mce-i-bold{-ie7-icon:"\e02a"}.mce-i-italic{-ie7-icon:"\e02b"}.mce-i-underline{-ie7-icon:"\e02c"}.mce-i-strikethrough{-ie7-icon:"\e02d"}.mce-i-visualchars{-ie7-icon:"\e02e"}.mce-i-ltr{-ie7-icon:"\e02f"}.mce-i-rtl{-ie7-icon:"\e030"}.mce-i-copy{-ie7-icon:"\e031"}.mce-i-resize{-ie7-icon:"\e032"}.mce-i-browse{-ie7-icon:"\e034"}.mce-i-pastetext{-ie7-icon:"\e035"}.mce-i-checkbox,.mce-i-selected{-ie7-icon:"\e033"}.mce-i-selected{visibility:hidden}.mce-i-backcolor{background:#BBB} \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/skin.min.css b/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/skin.min.css
deleted file mode 100644
index 284ac1dea..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/skins/lightgray/skin.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:visible !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td div{border:1px solid #d6d6d6;width:12px;height:12px;margin:2px;cursor:pointer}.mce-grid td div:focus{border-color:#a1a1a1}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fdfdfd, #ddd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#ddd));background-image:-webkit-linear-gradient(top, #fdfdfd, #ddd);background-image:-o-linear-gradient(top, #fdfdfd, #ddd);background-image:linear-gradient(to bottom, #fdfdfd, #ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000000;-moz-box-shadow:0 0 5px #000000;box-shadow:0 0 5px #000000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top, #f2f2f2, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#ccc));background-image:-webkit-linear-gradient(top, #f2f2f2, #ccc);background-image:-o-linear-gradient(top, #f2f2f2, #ccc);background-image:linear-gradient(to bottom, #f2f2f2, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn:not(.mce-disabled):active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #08c, #04c);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));background-image:-webkit-linear-gradient(top, #08c, #04c);background-image:-o-linear-gradient(top, #08c, #04c);background-image:linear-gradient(to bottom, #08c, #04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top, #0077b3, #003cb3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0077b3), to(#003cb3));background-image:-webkit-linear-gradient(top, #0077b3, #003cb3);background-image:-o-linear-gradient(top, #0077b3, #003cb3);background-image:linear-gradient(to bottom, #0077b3, #003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top, #069, #039);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#069), to(#039));background-image:-webkit-linear-gradient(top, #069, #039);background-image:-o-linear-gradient(top, #069, #039);background-image:linear-gradient(to bottom, #069, #039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,0.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,0.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #08c, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));background-image:-webkit-linear-gradient(top, #08c, #0077b3);background-image:-o-linear-gradient(top, #08c, #0077b3);background-image:linear-gradient(to bottom, #08c, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#333}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-untitled:before{content:"\e029"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#bbb} \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/themes/modern/theme.min.js b/node_modules/selenium-webdriver/lib/test/data/js/themes/modern/theme.min.js
deleted file mode 100644
index e25849df3..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/themes/modern/theme.min.js
+++ /dev/null
@@ -1 +0,0 @@
-tinymce.ThemeManager.add("modern",function(e){function t(){function t(t){var n,o=[];if(t)return d(t.split(/[ ,]/),function(t){function i(){var i=e.selection;"bullist"==r&&i.selectorChanged("ul > li",function(e,i){for(var n,o=i.parents.length;o--&&(n=i.parents[o].nodeName,"OL"!=n&&"UL"!=n););t.active(e&&"UL"==n)}),"numlist"==r&&i.selectorChanged("ol > li",function(e,i){for(var n,o=i.parents.length;o--&&(n=i.parents[o].nodeName,"OL"!=n&&"UL"!=n););t.active(e&&"OL"==n)}),t.settings.stateSelector&&i.selectorChanged(t.settings.stateSelector,function(e){t.active(e)},!0),t.settings.disabledStateSelector&&i.selectorChanged(t.settings.disabledStateSelector,function(e){t.disabled(e)})}var r;"|"==t?n=null:c.has(t)?(t={type:t},u.toolbar_items_size&&(t.size=u.toolbar_items_size),o.push(t),n=null):(n||(n={type:"buttongroup",items:[]},o.push(n)),e.buttons[t]&&(r=t,t=e.buttons[r],"function"==typeof t&&(t=t()),t.type=t.type||"button",u.toolbar_items_size&&(t.size=u.toolbar_items_size),t=c.create(t),n.items.push(t),e.initialized?i():e.on("init",i)))}),i.push({type:"toolbar",layout:"flow",items:o}),!0}var i=[];if(tinymce.isArray(u.toolbar)){if(0===u.toolbar.length)return;tinymce.each(u.toolbar,function(e,t){u["toolbar"+(t+1)]=e}),delete u.toolbar}for(var n=1;10>n&&t(u["toolbar"+n]);n++);return i.length||u.toolbar===!1||t(u.toolbar||f),i.length?{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:i}:void 0}function i(){function t(t){var i;return"|"==t?{text:"|"}:i=e.menuItems[t]}function i(i){var n,o,r,a,s;if(s=tinymce.makeMap((u.removed_menuitems||"").split(/[ ,]/)),u.menu?(o=u.menu[i],a=!0):o=h[i],o){n={text:o.title},r=[],d((o.items||"").split(/[ ,]/),function(e){var i=t(e);i&&!s[e]&&r.push(t(e))}),a||d(e.menuItems,function(e){e.context==i&&("before"==e.separator&&r.push({text:"|"}),e.prependToContext?r.unshift(e):r.push(e),"after"==e.separator&&r.push({text:"|"}))});for(var l=0;l<r.length;l++)"|"==r[l].text&&(0===l||l==r.length-1)&&r.splice(l,1);if(n.menu=r,!n.menu.length)return null}return n}var n,o=[],r=[];if(u.menu)for(n in u.menu)r.push(n);else for(n in h)r.push(n);for(var a="string"==typeof u.menubar?u.menubar.split(/[ ,]/):r,s=0;s<a.length;s++){var l=a[s];l=i(l),l&&o.push(l)}return o}function n(t){function i(e){var i=t.find(e)[0];i&&i.focus(!0)}e.shortcuts.add("Alt+F9","",function(){i("menubar")}),e.shortcuts.add("Alt+F10","",function(){i("toolbar")}),e.shortcuts.add("Alt+F11","",function(){i("elementpath")}),t.on("cancel",function(){e.focus()})}function o(t,i){function n(e){return{width:e.clientWidth,height:e.clientHeight}}var o,r,a,s;o=e.getContainer(),r=e.getContentAreaContainer().firstChild,a=n(o),s=n(r),null!==t&&(t=Math.max(u.min_width||100,t),t=Math.min(u.max_width||65535,t),m.css(o,"width",t+(a.width-s.width)),m.css(r,"width",t)),i=Math.max(u.min_height||100,i),i=Math.min(u.max_height||65535,i),m.css(r,"height",i),e.fire("ResizeEditor")}function r(t,i){var n=e.getContentAreaContainer();l.resizeTo(n.clientWidth+t,n.clientHeight+i)}function a(o){function r(){if(h&&h.moveRel&&h.visible()&&!h._fixed){var t=e.selection.getScrollContainer(),i=e.getBody(),n=0,o=0;if(t){var r=m.getPos(i),a=m.getPos(t);n=Math.max(0,a.x-r.x),o=Math.max(0,a.y-r.y)}h.fixed(!1).moveRel(i,e.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl"]).moveBy(n,o)}}function a(){h&&(h.show(),r(),m.addClass(e.getBody(),"mce-edit-focus"))}function s(){h&&(h.hide(),m.removeClass(e.getBody(),"mce-edit-focus"))}function d(){return h?void(h.visible()||a()):(h=l.panel=c.create({type:f?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!!f,border:1,items:[u.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:i()},t()]}),e.fire("BeforeRenderUI"),h.renderTo(f||document.body).reflow(),n(h),a(),e.on("nodeChange",r),e.on("activate",a),e.on("deactivate",s),void e.nodeChanged())}var h,f;return u.fixed_toolbar_container&&(f=m.select(u.fixed_toolbar_container)[0]),u.content_editable=!0,e.on("focus",function(){o.skinUiCss?tinymce.DOM.styleSheetLoader.load(o.skinUiCss,d,d):d()}),e.on("blur hide",s),e.on("remove",function(){h&&(h.remove(),h=null)}),o.skinUiCss&&tinymce.DOM.styleSheetLoader.load(o.skinUiCss),{}}function s(r){var a,s,d;return r.skinUiCss&&tinymce.DOM.loadCSS(r.skinUiCss),a=l.panel=c.create({type:"panel",role:"application",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[u.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:i()},t(),{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",html:"",border:"1 0 0 0"}]}),u.resize!==!1&&(s={type:"resizehandle",direction:u.resize,onResizeStart:function(){var t=e.getContentAreaContainer().firstChild;d={width:t.clientWidth,height:t.clientHeight}},onResize:function(e){"both"==u.resize?o(d.width+e.deltaX,d.height+e.deltaY):o(null,d.height+e.deltaY)}}),u.statusbar!==!1&&a.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath"},s]}),u.readonly&&a.find("*").disabled(!0),e.fire("BeforeRenderUI"),a.renderBefore(r.targetNode).reflow(),u.width&&tinymce.DOM.setStyle(a.getEl(),"width",u.width),e.on("remove",function(){a.remove(),a=null}),n(a),{iframeContainer:a.find("#iframe")[0].getEl(),editorContainer:a.getEl()}}var l=this,u=e.settings,c=tinymce.ui.Factory,d=tinymce.each,m=tinymce.DOM,h={file:{title:"File",items:"newdocument"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall"},insert:{title:"Insert",items:"|"},view:{title:"View",items:"visualaid |"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript | formats | removeformat"},table:{title:"Table"},tools:{title:"Tools"}},f="undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image";l.renderUI=function(t){var i=u.skin!==!1?u.skin||"lightgray":!1;if(i){var n=u.skin_url;n=n?e.documentBaseURI.toAbsolute(n):tinymce.baseURL+"/skins/"+i,t.skinUiCss=tinymce.Env.documentMode<=7?n+"/skin.ie7.min.css":n+"/skin.min.css",e.contentCSS.push(n+"/content"+(e.inline?".inline":"")+".min.css")}return e.on("ProgressState",function(e){l.throbber=l.throbber||new tinymce.ui.Throbber(l.panel.getEl("body")),e.state?l.throbber.show(e.time):l.throbber.hide()}),u.inline?a(t):s(t)},l.resizeTo=o,l.resizeBy=r}); \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/js/tinymce.min.js b/node_modules/selenium-webdriver/lib/test/data/js/tinymce.min.js
deleted file mode 100644
index 3ab7df7fc..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/js/tinymce.min.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// 4.0.26 (2014-05-06)
-!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/dom/EventUtils",c="tinymce/dom/Sizzle",u="tinymce/dom/DomQuery",d="tinymce/html/Styles",f="tinymce/dom/TreeWalker",p="tinymce/util/Tools",h="tinymce/dom/Range",m="tinymce/html/Entities",g="tinymce/Env",v="tinymce/dom/StyleSheetLoader",y="tinymce/dom/DOMUtils",b="tinymce/dom/ScriptLoader",C="tinymce/AddOnManager",x="tinymce/html/Node",w="tinymce/html/Schema",_="tinymce/html/SaxParser",N="tinymce/html/DomParser",E="tinymce/html/Writer",S="tinymce/html/Serializer",k="tinymce/dom/Serializer",T="tinymce/dom/TridentSelection",R="tinymce/util/VK",A="tinymce/dom/ControlSelection",B="tinymce/dom/RangeUtils",D="tinymce/dom/Selection",L="tinymce/fmt/Preview",M="tinymce/Formatter",H="tinymce/UndoManager",P="tinymce/EnterKey",O="tinymce/ForceBlocks",I="tinymce/EditorCommands",F="tinymce/util/URI",z="tinymce/util/Class",W="tinymce/util/EventDispatcher",V="tinymce/ui/Selector",U="tinymce/ui/Collection",q="tinymce/ui/DomUtils",$="tinymce/ui/Control",j="tinymce/ui/Factory",K="tinymce/ui/KeyboardNavigation",G="tinymce/ui/Container",Y="tinymce/ui/DragHelper",X="tinymce/ui/Scrollable",J="tinymce/ui/Panel",Q="tinymce/ui/Movable",Z="tinymce/ui/Resizable",et="tinymce/ui/FloatPanel",tt="tinymce/ui/Window",nt="tinymce/ui/MessageBox",rt="tinymce/WindowManager",it="tinymce/util/Quirks",ot="tinymce/util/Observable",at="tinymce/EditorObservable",st="tinymce/Shortcuts",lt="tinymce/Editor",ct="tinymce/util/I18n",ut="tinymce/FocusManager",dt="tinymce/EditorManager",ft="tinymce/LegacyInput",pt="tinymce/util/XHR",ht="tinymce/util/JSON",mt="tinymce/util/JSONRequest",gt="tinymce/util/JSONP",vt="tinymce/util/LocalStorage",yt="tinymce/Compat",bt="tinymce/ui/Layout",Ct="tinymce/ui/AbsoluteLayout",xt="tinymce/ui/Tooltip",wt="tinymce/ui/Widget",_t="tinymce/ui/Button",Nt="tinymce/ui/ButtonGroup",Et="tinymce/ui/Checkbox",St="tinymce/ui/PanelButton",kt="tinymce/ui/ColorButton",Tt="tinymce/ui/ComboBox",Rt="tinymce/ui/Path",At="tinymce/ui/ElementPath",Bt="tinymce/ui/FormItem",Dt="tinymce/ui/Form",Lt="tinymce/ui/FieldSet",Mt="tinymce/ui/FilePicker",Ht="tinymce/ui/FitLayout",Pt="tinymce/ui/FlexLayout",Ot="tinymce/ui/FlowLayout",It="tinymce/ui/FormatControls",Ft="tinymce/ui/GridLayout",zt="tinymce/ui/Iframe",Wt="tinymce/ui/Label",Vt="tinymce/ui/Toolbar",Ut="tinymce/ui/MenuBar",qt="tinymce/ui/MenuButton",$t="tinymce/ui/ListBox",jt="tinymce/ui/MenuItem",Kt="tinymce/ui/Menu",Gt="tinymce/ui/Radio",Yt="tinymce/ui/ResizeHandle",Xt="tinymce/ui/Spacer",Jt="tinymce/ui/SplitButton",Qt="tinymce/ui/StackLayout",Zt="tinymce/ui/TabPanel",en="tinymce/ui/TextBox",tn="tinymce/ui/Throbber";r(l,[],function(){function e(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)}function t(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)}function n(e,t){function n(){return!1}function r(){return!0}var i,o=t||{},l;for(i in e)s[i]||(o[i]=e[i]);if(o.target||(o.target=o.srcElement||document),e&&a.test(e.type)&&e.pageX===l&&e.clientX!==l){var c=o.target.ownerDocument||document,u=c.documentElement,d=c.body;o.pageX=e.clientX+(u&&u.scrollLeft||d&&d.scrollLeft||0)-(u&&u.clientLeft||d&&d.clientLeft||0),o.pageY=e.clientY+(u&&u.scrollTop||d&&d.scrollTop||0)-(u&&u.clientTop||d&&d.clientTop||0)}return o.preventDefault=function(){o.isDefaultPrevented=r,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},o.stopPropagation=function(){o.isPropagationStopped=r,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},o.stopImmediatePropagation=function(){o.isImmediatePropagationStopped=r,o.stopPropagation()},o.isDefaultPrevented||(o.isDefaultPrevented=n,o.isPropagationStopped=n,o.isImmediatePropagationStopped=n),o}function r(n,r,i){function o(){i.domLoaded||(i.domLoaded=!0,r(c))}function a(){("complete"===l.readyState||"interactive"===l.readyState&&l.body)&&(t(l,"readystatechange",a),o())}function s(){try{l.documentElement.doScroll("left")}catch(e){return void setTimeout(s,0)}o()}var l=n.document,c={type:"ready"};return i.domLoaded?void r(c):(l.addEventListener?"complete"===l.readyState?o():e(n,"DOMContentLoaded",o):(e(l,"readystatechange",a),l.documentElement.doScroll&&n.self===n.top&&s()),void e(n,"load",o))}function i(){function i(e,t){var n,r,i,o,a=s[t];if(n=a&&a[e.type])for(r=0,i=n.length;i>r;r++)if(o=n[r],o&&o.func.call(o.scope,e)===!1&&e.preventDefault(),e.isImmediatePropagationStopped())return}var a=this,s={},l,c,u,d,f;c=o+(+new Date).toString(32),d="onmouseenter"in document.documentElement,u="onfocusin"in document.documentElement,f={mouseenter:"mouseover",mouseleave:"mouseout"},l=1,a.domLoaded=!1,a.events=s,a.bind=function(t,o,p,h){function m(e){i(n(e||_.event),g)}var g,v,y,b,C,x,w,_=window;if(t&&3!==t.nodeType&&8!==t.nodeType){for(t[c]?g=t[c]:(g=l++,t[c]=g,s[g]={}),h=h||t,o=o.split(" "),y=o.length;y--;)b=o[y],x=m,C=w=!1,"DOMContentLoaded"===b&&(b="ready"),a.domLoaded&&"ready"===b&&"complete"==t.readyState?p.call(h,n({type:b})):(d||(C=f[b],C&&(x=function(e){var t,r;if(t=e.currentTarget,r=e.relatedTarget,r&&t.contains)r=t.contains(r);else for(;r&&r!==t;)r=r.parentNode;r||(e=n(e||_.event),e.type="mouseout"===e.type?"mouseleave":"mouseenter",e.target=t,i(e,g))})),u||"focusin"!==b&&"focusout"!==b||(w=!0,C="focusin"===b?"focus":"blur",x=function(e){e=n(e||_.event),e.type="focus"===e.type?"focusin":"focusout",i(e,g)}),v=s[g][b],v?"ready"===b&&a.domLoaded?p({type:b}):v.push({func:p,scope:h}):(s[g][b]=v=[{func:p,scope:h}],v.fakeName=C,v.capture=w,v.nativeHandler=x,"ready"===b?r(t,x,a):e(t,C||b,x,w)));return t=v=0,p}},a.unbind=function(e,n,r){var i,o,l,u,d,f;if(!e||3===e.nodeType||8===e.nodeType)return a;if(i=e[c]){if(f=s[i],n){for(n=n.split(" "),l=n.length;l--;)if(d=n[l],o=f[d]){if(r)for(u=o.length;u--;)if(o[u].func===r){var p=o.nativeHandler,h=o.fakeName,m=o.capture;o=o.slice(0,u).concat(o.slice(u+1)),o.nativeHandler=p,o.fakeName=h,o.capture=m,f[d]=o}r&&0!==o.length||(delete f[d],t(e,o.fakeName||d,o.nativeHandler,o.capture))}}else{for(d in f)o=f[d],t(e,o.fakeName||d,o.nativeHandler,o.capture);f={}}for(d in f)return a;delete s[i];try{delete e[c]}catch(g){e[c]=null}}return a},a.fire=function(e,t,r){var o;if(!e||3===e.nodeType||8===e.nodeType)return a;r=n(null,r),r.type=t,r.target=e;do o=e[c],o&&i(r,o),e=e.parentNode||e.ownerDocument||e.defaultView||e.parentWindow;while(e&&!r.isPropagationStopped());return a},a.clean=function(e){var t,n,r=a.unbind;if(!e||3===e.nodeType||8===e.nodeType)return a;if(e[c]&&r(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(r(e),n=e.getElementsByTagName("*"),t=n.length;t--;)e=n[t],e[c]&&r(e);return a},a.destroy=function(){s={}},a.cancel=function(e){return e&&(e.preventDefault(),e.stopImmediatePropagation()),!1}}var o="mce-data-",a=/^(?:mouse|contextmenu)|click/,s={keyLocation:1,layerX:1,layerY:1,returnValue:1};return i.Event=new i,i.Event.bind(window,"ready",function(){}),i}),r(c,[],function(){function e(e){return mt.test(e+"")}function n(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>_.cacheLength&&delete e[t.shift()],e[n]=r,r}}function r(e){return e[I]=!0,e}function i(e){var t=B.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t=null}}function o(e,t,n,r){var i,o,a,s,l,c,f,p,h,m;if((t?t.ownerDocument||t:F)!==B&&A(t),t=t||B,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(L&&!r){if(i=gt.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&O(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return Z.apply(n,t.getElementsByTagName(e)),n;if((a=i[3])&&z.getElementsByClassName&&t.getElementsByClassName)return Z.apply(n,t.getElementsByClassName(a)),n}if(z.qsa&&!M.test(e)){if(f=!0,p=I,h=t,m=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=u(e),(f=t.getAttribute("id"))?p=f.replace(bt,"\\$&"):t.setAttribute("id",p),p="[id='"+p+"'] ",l=c.length;l--;)c[l]=p+d(c[l]);h=ht.test(e)&&t.parentNode||t,m=c.join(",")}if(m)try{return Z.apply(n,h.querySelectorAll(m)),n}catch(g){}finally{f||t.removeAttribute("id")}}}return b(e.replace(lt,"$1"),t,n,r)}function a(e,t){var n=t&&e,r=n&&(~t.sourceIndex||Y)-(~e.sourceIndex||Y);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function u(e,t){var n,r,i,a,s,l,c,u=q[e+" "];if(u)return t?0:u.slice(0);for(s=e,l=[],c=_.preFilter;s;){(!n||(r=ct.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=ut.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(lt," ")}),s=s.slice(n.length));for(a in _.filter)!(r=pt[a].exec(s))||c[a]&&!(r=c[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?o.error(e):q(e,l).slice(0)}function d(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function f(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=V++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,l,c,u=W+" "+o;if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i)if(c=t[I]||(t[I]={}),(l=c[r])&&l[0]===u){if((s=l[1])===!0||s===w)return s===!0}else if(l=c[r]=[u],l[1]=e(t,n,a)||w,l[1]===!0)return!0}}function p(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function h(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,c=null!=t;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),c&&t.push(s));return a}function m(e,t,n,i,o,a){return i&&!i[I]&&(i=m(i)),o&&!o[I]&&(o=m(o,a)),r(function(r,a,s,l){var c,u,d,f=[],p=[],m=a.length,g=r||y(t||"*",s.nodeType?[s]:s,[]),v=!e||!r&&t?g:h(g,f,e,s,l),b=n?o||(r?e:m||i)?[]:a:v;if(n&&n(v,b,s,l),i)for(c=h(b,p),i(c,[],s,l),u=c.length;u--;)(d=c[u])&&(b[p[u]]=!(v[p[u]]=d));if(r){if(o||e){if(o){for(c=[],u=b.length;u--;)(d=b[u])&&c.push(v[u]=d);o(null,b=[],c,l)}for(u=b.length;u--;)(d=b[u])&&(c=o?tt.call(r,d):f[u])>-1&&(r[c]=!(a[c]=d))}}else b=h(b===a?b.splice(m,b.length):b),o?o(null,a,b,l):Z.apply(a,b)})}function g(e){for(var t,n,r,i=e.length,o=_.relative[e[0].type],a=o||_.relative[" "],s=o?1:0,l=f(function(e){return e===t},a,!0),c=f(function(e){return tt.call(t,e)>-1},a,!0),u=[function(e,n,r){return!o&&(r||n!==k)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];i>s;s++)if(n=_.relative[e[s].type])u=[f(p(u),n)];else{if(n=_.filter[e[s].type].apply(null,e[s].matches),n[I]){for(r=++s;i>r&&!_.relative[e[r].type];r++);return m(s>1&&p(u),s>1&&d(e.slice(0,s-1)).replace(lt,"$1"),n,r>s&&g(e.slice(s,r)),i>r&&g(e=e.slice(r)),i>r&&d(e))}u.push(n)}return p(u)}function v(e,t){var n=0,i=t.length>0,a=e.length>0,s=function(r,s,l,c,u){var d,f,p,m=[],g=0,v="0",y=r&&[],b=null!=u,C=k,x=r||a&&_.find.TAG("*",u&&s.parentNode||s),N=W+=null==C?1:Math.random()||.1;for(b&&(k=s!==B&&s,w=n);null!=(d=x[v]);v++){if(a&&d){for(f=0;p=e[f++];)if(p(d,s,l)){c.push(d);break}b&&(W=N,w=++n)}i&&((d=!p&&d)&&g--,r&&y.push(d))}if(g+=v,i&&v!==g){for(f=0;p=t[f++];)p(y,m,s,l);if(r){if(g>0)for(;v--;)y[v]||m[v]||(m[v]=J.call(c));m=h(m)}Z.apply(c,m),b&&!r&&m.length>0&&g+t.length>1&&o.uniqueSort(c)}return b&&(W=N,k=C),y};return i?r(s):s}function y(e,t,n){for(var r=0,i=t.length;i>r;r++)o(e,t[r],n);return n}function b(e,t,n,r){var i,o,a,s,l,c=u(e);if(!r&&1===c.length){if(o=c[0]=c[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&9===t.nodeType&&L&&_.relative[o[1].type]){if(t=(_.find.ID(a.matches[0].replace(xt,wt),t)||[])[0],!t)return n;e=e.slice(o.shift().value.length)}for(i=pt.needsContext.test(e)?0:o.length;i--&&(a=o[i],!_.relative[s=a.type]);)if((l=_.find[s])&&(r=l(a.matches[0].replace(xt,wt),ht.test(o[0].type)&&t.parentNode||t))){if(o.splice(i,1),e=r.length&&d(o),!e)return Z.apply(n,r),n;break}}return S(e,c)(r,t,!L,n,ht.test(e)),n}function C(){}var x,w,_,N,E,S,k,T,R,A,B,D,L,M,H,P,O,I="sizzle"+-new Date,F=window.document,z={},W=0,V=0,U=n(),q=n(),$=n(),j=!1,K=function(){return 0},G=typeof t,Y=1<<31,X=[],J=X.pop,Q=X.push,Z=X.push,et=X.slice,tt=X.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},nt="[\\x20\\t\\r\\n\\f]",rt="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",it=rt.replace("w","w#"),ot="([*^$|!~]?=)",at="\\["+nt+"*("+rt+")"+nt+"*(?:"+ot+nt+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+it+")|)|)"+nt+"*\\]",st=":("+rt+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+at.replace(3,8)+")*)|.*)\\)|)",lt=new RegExp("^"+nt+"+|((?:^|[^\\\\])(?:\\\\.)*)"+nt+"+$","g"),ct=new RegExp("^"+nt+"*,"+nt+"*"),ut=new RegExp("^"+nt+"*([\\x20\\t\\r\\n\\f>+~])"+nt+"*"),dt=new RegExp(st),ft=new RegExp("^"+it+"$"),pt={ID:new RegExp("^#("+rt+")"),CLASS:new RegExp("^\\.("+rt+")"),NAME:new RegExp("^\\[name=['\"]?("+rt+")['\"]?\\]"),TAG:new RegExp("^("+rt.replace("w","w*")+")"),ATTR:new RegExp("^"+at),PSEUDO:new RegExp("^"+st),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+nt+"*(even|odd|(([+-]|)(\\d*)n|)"+nt+"*(?:([+-]|)"+nt+"*(\\d+)|))"+nt+"*\\)|)","i"),needsContext:new RegExp("^"+nt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+nt+"*((?:-\\d)?\\d*)"+nt+"*\\)|)(?=[^-]|$)","i")},ht=/[\x20\t\r\n\f]*[+~]/,mt=/^[^{]+\{\s*\[native code/,gt=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,vt=/^(?:input|select|textarea|button)$/i,yt=/^h\d$/i,bt=/'|\\/g,Ct=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,xt=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,wt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320)};try{Z.apply(X=et.call(F.childNodes),F.childNodes),X[F.childNodes.length].nodeType}catch(_t){Z={apply:X.length?function(e,t){Q.apply(e,et.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}E=o.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},A=o.setDocument=function(n){var r=n?n.ownerDocument||n:F;return r!==B&&9===r.nodeType&&r.documentElement?(B=r,D=r.documentElement,L=!E(r),z.getElementsByTagName=i(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),z.attributes=i(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),z.getElementsByClassName=i(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),z.getByName=i(function(e){e.id=I+0,e.appendChild(B.createElement("a")).setAttribute("name",I),e.appendChild(B.createElement("i")).setAttribute("name",I),D.appendChild(e);var t=r.getElementsByName&&r.getElementsByName(I).length===2+r.getElementsByName(I+0).length;return D.removeChild(e),t}),z.sortDetached=i(function(e){return e.compareDocumentPosition&&1&e.compareDocumentPosition(B.createElement("div"))}),_.attrHandle=i(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==G&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},z.getByName?(_.find.ID=function(e,t){if(typeof t.getElementById!==G&&L){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},_.filter.ID=function(e){var t=e.replace(xt,wt);return function(e){return e.getAttribute("id")===t}}):(_.find.ID=function(e,n){if(typeof n.getElementById!==G&&L){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==G&&r.getAttributeNode("id").value===e?[r]:t:[]}},_.filter.ID=function(e){var t=e.replace(xt,wt);return function(e){var n=typeof e.getAttributeNode!==G&&e.getAttributeNode("id");return n&&n.value===t}}),_.find.TAG=z.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==G?t.getElementsByTagName(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},_.find.NAME=z.getByName&&function(e,t){return typeof t.getElementsByName!==G?t.getElementsByName(name):void 0},_.find.CLASS=z.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==G&&L?t.getElementsByClassName(e):void 0},H=[],M=[":focus"],(z.qsa=e(r.querySelectorAll))&&(i(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||M.push("\\["+nt+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||M.push(":checked")}),i(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&M.push("[*^$]="+nt+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||M.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),M.push(",.*:")})),(z.matchesSelector=e(P=D.matchesSelector||D.mozMatchesSelector||D.webkitMatchesSelector||D.oMatchesSelector||D.msMatchesSelector))&&i(function(e){z.disconnectedMatch=P.call(e,"div"),P.call(e,"[s!='']:x"),H.push("!=",st)}),M=new RegExp(M.join("|")),H=H.length&&new RegExp(H.join("|")),O=e(D.contains)||D.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},K=D.compareDocumentPosition?function(e,t){if(e===t)return j=!0,0;var n=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return n?1&n||T&&t.compareDocumentPosition(e)===n?e===r||O(F,e)?-1:t===r||O(F,t)?1:R?tt.call(R,e)-tt.call(R,t):0:4&n?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var n,i=0,o=e.parentNode,s=t.parentNode,l=[e],c=[t];if(e===t)return j=!0,0;if(!o||!s)return e===r?-1:t===r?1:o?-1:s?1:0;if(o===s)return a(e,t);for(n=e;n=n.parentNode;)l.unshift(n);for(n=t;n=n.parentNode;)c.unshift(n);for(;l[i]===c[i];)i++;return i?a(l[i],c[i]):l[i]===F?-1:c[i]===F?1:0},B):B},o.matches=function(e,t){return o(e,null,null,t)},o.matchesSelector=function(e,t){if((e.ownerDocument||e)!==B&&A(e),t=t.replace(Ct,"='$1']"),z.matchesSelector&&L&&(!H||!H.test(t))&&!M.test(t))try{var n=P.call(e,t);if(n||z.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return o(t,B,null,[e]).length>0},o.contains=function(e,t){return(e.ownerDocument||e)!==B&&A(e),O(e,t)},o.attr=function(e,t){var n;return(e.ownerDocument||e)!==B&&A(e),L&&(t=t.toLowerCase()),(n=_.attrHandle[t])?n(e):!L||z.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},o.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},o.uniqueSort=function(e){var t,n=[],r=0,i=0;if(j=!z.detectDuplicates,T=!z.sortDetached,R=!z.sortStable&&e.slice(0),e.sort(K),j){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return e},N=o.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=N(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=N(t);return n},_=o.selectors={cacheLength:50,createPseudo:r,match:pt,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(xt,wt),e[3]=(e[4]||e[5]||"").replace(xt,wt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||o.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&o.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return pt.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&dt.test(n)&&(t=u(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(xt,wt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=U[e+" "];return t||(t=new RegExp("(^|"+nt+")"+e+"("+nt+"|$)"))&&U(e,function(e){return t.test(e.className||typeof e.getAttribute!==G&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=o.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,f,p,h,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(g){if(o){for(;m;){for(d=t;d=d[m];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&y){for(u=g[I]||(g[I]={}),c=u[e]||[],p=c[0]===W&&c[1],f=c[0]===W&&c[2],d=p&&g.childNodes[p];d=++p&&d&&d[m]||(f=p=0)||h.pop();)if(1===d.nodeType&&++f&&d===t){u[e]=[W,p,f];break}}else if(y&&(c=(t[I]||(t[I]={}))[e])&&c[0]===W)f=c[1];else for(;(d=++p&&d&&d[m]||(f=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[I]||(d[I]={}))[e]=[W,f]),d!==t)););return f-=i,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(e,t){var n,i=_.pseudos[e]||_.setFilters[e.toLowerCase()]||o.error("unsupported pseudo: "+e);return i[I]?i(t):i.length>1?(n=[e,e,"",t],_.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,n){for(var r,o=i(e,t),a=o.length;a--;)r=tt.call(e,o[a]),e[r]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:r(function(e){var t=[],n=[],i=S(e.replace(lt,"$1"));return i[I]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),!n.pop()}}),has:r(function(e){return function(t){return o(e,t).length>0}}),contains:r(function(e){return function(t){return(t.textContent||t.innerText||N(t)).indexOf(e)>-1}}),lang:r(function(e){return ft.test(e||"")||o.error("unsupported lang: "+e),e=e.replace(xt,wt).toLowerCase(),function(t){var n;do if(n=L?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===D},focus:function(e){return e===B.activeElement&&(!B.hasFocus||B.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!_.pseudos.empty(e)},header:function(e){return yt.test(e.nodeName)},input:function(e){return vt.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:c(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}};for(x in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})_.pseudos[x]=s(x);for(x in{submit:!0,reset:!0})_.pseudos[x]=l(x);return S=o.compile=function(e,t){var n,r=[],i=[],o=$[e+" "];if(!o){for(t||(t=u(e)),n=t.length;n--;)o=g(t[n]),o[I]?r.push(o):i.push(o);o=$(e,v(i,r))}return o},_.pseudos.nth=_.pseudos.eq,C.prototype=_.filters=_.pseudos,_.setFilters=new C,z.sortStable=I.split("").sort(K).join("")===I,A(),[0,0].sort(K),z.detectDuplicates=j,o}),r(u,[l,c],function(e,n){function r(e){return"undefined"!=typeof e}function i(e){return"string"==typeof e}function o(e){var t,n,r;for(r=v.createElement("div"),t=v.createDocumentFragment(),r.innerHTML=e;n=r.firstChild;)t.appendChild(n);return t}function a(e,t,n){var r;if("string"==typeof t)t=o(t);else if(t.length){for(r=0;r<t.length;r++)a(e,t[r],n);return e}for(r=e.length;r--;)n.call(e[r],t.parentNode?t:t);return e}function s(e,t){return e&&t&&-1!==(" "+e.className+" ").indexOf(" "+t+" ")}function l(e,t){var n;for(e=e||[],"string"==typeof e&&(e=e.split(" ")),t=t||{},n=e.length;n--;)t[e[n]]={};return t}function c(e,t){return new c.fn.init(e,t)}function u(e){var t=arguments,n,r,i;for(r=1;r<t.length;r++){n=t[r];for(i in n)e[i]=n[i]}return e}function d(e){var t=[],n,r;for(n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function f(e,t){var n;if(t.indexOf)return t.indexOf(e);for(n=t.length;n--;)if(t[n]===e)return n;return-1}function p(e){return null===e||e===t?"":(""+e).replace(N,"")}function h(e,t){var n,r,i,o,a;if(e)if(n=e.length,n===o){for(r in e)if(e.hasOwnProperty(r)&&(a=e[r],t.call(a,a,r)===!1))break}else for(i=0;n>i&&(a=e[i],t.call(a,a,r)!==!1);i++);return e}function m(e,n,r){for(var i=[],o=e[n];o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!c(o).is(r));)1===o.nodeType&&i.push(o),o=o[n];return i}function g(e,t,n,r){for(var i=[];e;e=e[n])r&&e.nodeType!==r||e===t||i.push(e);return i}var v=document,y=Array.prototype.push,b=Array.prototype.slice,C=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,x=e.Event,w=l("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"),_=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},N=/^\s*|\s*$/g;return c.fn=c.prototype={constructor:c,selector:"",length:0,init:function(e,t){var n=this,r,a;if(!e)return n;if(e.nodeType)return n.context=n[0]=e,n.length=1,n;if(i(e)){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:C.exec(e),!r)return c(t||document).find(e);if(r[1])for(a=o(e).firstChild;a;)this.add(a),a=a.nextSibling;else{if(a=v.getElementById(r[2]),a.id!==r[2])return n.find(e);n.length=1,n[0]=a}}else this.add(e);return n},toArray:function(){return d(this)},add:function(e){var t=this;return _(e)?y.apply(t,e):e instanceof c?t.add(e.toArray()):y.call(t,e),t},attr:function(e,n){var i=this;if("object"==typeof e)h(e,function(e,t){i.attr(t,e)});else{if(!r(n))return i[0]&&1===i[0].nodeType?i[0].getAttribute(e):t;this.each(function(){1===this.nodeType&&this.setAttribute(e,n)})}return i},css:function(e,n){var i=this;if("object"==typeof e)h(e,function(e,t){i.css(t,e)});else{if(e=e.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),!r(n))return i[0]?i[0].style[e]:t;"number"!=typeof n||w[e]||(n+="px"),i.each(function(){var t=this.style;"opacity"===e&&this.runtimeStyle&&"undefined"==typeof this.runtimeStyle.opacity&&(t.filter=""===n?"":"alpha(opacity="+100*n+")");try{t[e]=n}catch(r){}})}return i},remove:function(){for(var e=this,t,n=this.length;n--;)t=e[n],x.clean(t),t.parentNode&&t.parentNode.removeChild(t);return this},empty:function(){for(var e=this,t,n=this.length;n--;)for(t=e[n];t.firstChild;)t.removeChild(t.firstChild);return this},html:function(e){var t=this,n;if(r(e)){for(n=t.length;n--;)t[n].innerHTML=e;return t}return t[0]?t[0].innerHTML:""},text:function(e){var t=this,n;if(r(e)){for(n=t.length;n--;)t[n].innerText=t[0].textContent=e;return t}return t[0]?t[0].innerText||t[0].textContent:""},append:function(){return a(this,arguments,function(e){1===this.nodeType&&this.appendChild(e)})},prepend:function(){return a(this,arguments,function(e){1===this.nodeType&&this.insertBefore(e,this.firstChild)})},before:function(){var e=this;return e[0]&&e[0].parentNode?a(e,arguments,function(e){this.parentNode.insertBefore(e,this.nextSibling)}):e},after:function(){var e=this;return e[0]&&e[0].parentNode?a(e,arguments,function(e){this.parentNode.insertBefore(e,this)}):e},appendTo:function(e){return c(e).append(this),this},addClass:function(e){return this.toggleClass(e,!0)},removeClass:function(e){return this.toggleClass(e,!1)},toggleClass:function(e,t){var n=this;return-1!==e.indexOf(" ")?h(e.split(" "),function(){n.toggleClass(this,t)}):n.each(function(n){var r;s(n,e)!==t&&(r=n.className,t?n.className+=r?" "+e:e:n.className=p((" "+r+" ").replace(" "+e+" "," ")))}),n},hasClass:function(e){return s(this[0],e)},each:function(e){return h(this,e)},on:function(e,t){return this.each(function(){x.bind(this,e,t)})},off:function(e,t){return this.each(function(){x.unbind(this,e,t)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new c(b.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},replaceWith:function(e){var t=this;return t[0]&&t[0].parentNode.replaceChild(c(e)[0],t[0]),t},wrap:function(e){return e=c(e)[0],this.each(function(){var t=this,n=e.cloneNode(!1);t.parentNode.insertBefore(n,t),n.appendChild(t)})},unwrap:function(){return this.each(function(){for(var e=this,t=e.firstChild,n;t;)n=t,t=t.nextSibling,e.parentNode.insertBefore(n,e)})},clone:function(){var e=[];return this.each(function(){e.push(this.cloneNode(!0))}),c(e)},find:function(e){var t,n,r=[];for(t=0,n=this.length;n>t;t++)c.find(e,this[t],r);return c(r)},push:y,sort:[].sort,splice:[].splice},u(c,{extend:u,toArray:d,inArray:f,isArray:_,each:h,trim:p,makeMap:l,find:n,expr:n.selectors,unique:n.uniqueSort,text:n.getText,isXMLDoc:n.isXML,contains:n.contains,filter:function(e,t,n){return n&&(e=":not("+e+")"),t=1===t.length?c.find.matchesSelector(t[0],e)?[t[0]]:[]:c.find.matches(e,t)}}),h({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return m(e,"parentNode")},parentsUntil:function(e,t){return m(e,"parentNode",t)},next:function(e){return g(e,"nextSibling",1)},prev:function(e){return g(e,"previousSibling",1)},nextNodes:function(e){return g(e,"nextSibling")},prevNodes:function(e){return g(e,"previousSibling")},children:function(e){return g(e.firstChild,"nextSibling",1)},contents:function(e){return d(("iframe"===e.nodeName?e.contentDocument||e.contentWindow.document:e).childNodes)}},function(e,t){c.fn[e]=function(n){var r=this,i;if(r.length>1)throw new Error("DomQuery only supports traverse functions on a single node.");return r[0]&&(i=t(r[0],n)),i=c(i),n&&"parentsUntil"!==e?i.filter(n):i}}),c.fn.filter=function(e){return c.filter(e)},c.fn.is=function(e){return!!e&&this.filter(e).length>0},c.fn.init.prototype=c.fn,c}),r(d,[],function(){return function(e,t){function n(e,t,n,r){function i(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e
-}return"#"+i(t)+i(n)+i(r)}var r=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,i=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,o=/\s*([^:]+):\s*([^;]+);?/g,a=/\s+$/,s,l,c={},u,d="\ufeff";for(e=e||{},u=("\\\" \\' \\; \\: ; : "+d).split(" "),l=0;l<u.length;l++)c[u[l]]=d+l,c[d+l]=u[l];return{toHex:function(e){return e.replace(r,n)},parse:function(t){function s(e,t,n){var r,i,o,a;if(r=m[e+"-top"+t],r&&(i=m[e+"-right"+t],i&&(o=m[e+"-bottom"+t],o&&(a=m[e+"-left"+t])))){var s=[r,i,o,a];for(l=s.length-1;l--&&s[l]===s[l+1];);l>-1&&n||(m[e+t]=-1==l?s[0]:s.join(" "),delete m[e+"-top"+t],delete m[e+"-right"+t],delete m[e+"-bottom"+t],delete m[e+"-left"+t])}}function u(e){var t=m[e],n;if(t){for(t=t.split(" "),n=t.length;n--;)if(t[n]!==t[0])return!1;return m[e]=t[0],!0}}function d(e,t,n,r){u(t)&&u(n)&&u(r)&&(m[e]=m[t]+" "+m[n]+" "+m[r],delete m[t],delete m[n],delete m[r])}function f(e){return b=!0,c[e]}function p(e,t){return b&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return c[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e}function h(t,n,r,i,o,a){if(o=o||a)return o=p(o),"'"+o.replace(/\'/g,"\\'")+"'";if(n=p(n||r||i),!e.allow_script_urls){var s=n.replace(/[\s\r\n]+/,"");if(/(java|vb)script:/i.test(s))return"";if(!e.allow_svg_data_urls&&/^data:image\/svg/i.test(s))return""}return C&&(n=C.call(x,n,"style")),"url('"+n.replace(/\'/g,"\\'")+"')"}var m={},g,v,y,b,C=e.url_converter,x=e.url_converter_scope||this;if(t){for(t=t.replace(/[\u0000-\u001F]/g,""),t=t.replace(/\\[\"\';:\uFEFF]/g,f).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,f)});g=o.exec(t);){if(v=g[1].replace(a,"").toLowerCase(),y=g[2].replace(a,""),y=y.replace(/\\[0-9a-f]+/g,function(e){return String.fromCharCode(parseInt(e.substr(1),16))}),v&&y.length>0){if(!e.allow_script_urls&&("behavior"==v||/expression\s*\(|\/\*|\*\//.test(y)))continue;"font-weight"===v&&"700"===y?y="bold":("color"===v||"background-color"===v)&&(y=y.toLowerCase()),y=y.replace(r,n),y=y.replace(i,h),m[v]=b?p(y,!0):y}o.lastIndex=g.index+g[0].length}s("border","",!0),s("border","-width"),s("border","-color"),s("border","-style"),s("padding",""),s("margin",""),d("border","border-width","border-style","border-color"),"medium none"===m.border&&delete m.border,"none"===m["border-image"]&&delete m["border-image"]}return m},serialize:function(e,n){function r(n){var r,o,a,l;if(r=t.styles[n])for(o=0,a=r.length;a>o;o++)n=r[o],l=e[n],l!==s&&l.length>0&&(i+=(i.length>0?" ":"")+n+": "+l+";")}var i="",o,a;if(n&&t&&t.styles)r("*"),r(n);else for(o in e)a=e[o],a!==s&&a.length>0&&(i+=(i.length>0?" ":"")+o+": "+a+";");return i}}}}),r(f,[],function(){return function(e,t){function n(e,n,r,i){var o,a;if(e){if(!i&&e[n])return e[n];if(e!=t){if(o=e[r])return o;for(a=e.parentNode;a&&a!=t;a=a.parentNode)if(o=a[r])return o}}}var r=e;this.current=function(){return r},this.next=function(e){return r=n(r,"firstChild","nextSibling",e)},this.prev=function(e){return r=n(r,"lastChild","previousSibling",e)}}}),r(p,[],function(){function e(e){return null===e||e===t?"":(""+e).replace(m,"")}function n(e,n){return n?"array"==n&&g(e)?!0:typeof e==n:e!==t}function r(e){var t=[],n,r;for(n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function i(e,t,n){var r;for(e=e||[],t=t||",","string"==typeof e&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n}function o(e,n,r){var i,o;if(!e)return 0;if(r=r||e,e.length!==t){for(i=0,o=e.length;o>i;i++)if(n.call(r,e[i],i,e)===!1)return 0}else for(i in e)if(e.hasOwnProperty(i)&&n.call(r,e[i],i,e)===!1)return 0;return 1}function a(e,t){var n=[];return o(e,function(e){n.push(t(e))}),n}function s(e,t){var n=[];return o(e,function(e){(!t||t(e))&&n.push(e)}),n}function l(e,t,n){var r=this,i,o,a,s,l,c=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),a=e[3].match(/(^|\.)(\w+)$/i)[2],o=r.createNS(e[3].replace(/\.\w+$/,""),n),!o[a]){if("static"==e[2])return o[a]=t,void(this.onCreate&&this.onCreate(e[2],e[3],o[a]));t[a]||(t[a]=function(){},c=1),o[a]=t[a],r.extend(o[a].prototype,t),e[5]&&(i=r.resolve(e[5]).prototype,s=e[5].match(/\.(\w+)$/i)[1],l=o[a],o[a]=c?function(){return i[s].apply(this,arguments)}:function(){return this.parent=i[s],l.apply(this,arguments)},o[a].prototype[a]=o[a],r.each(i,function(e,t){o[a].prototype[t]=i[t]}),r.each(t,function(e,t){i[t]?o[a].prototype[t]=function(){return this.parent=i[t],e.apply(this,arguments)}:t!=a&&(o[a].prototype[t]=e)})),r.each(t["static"],function(e,t){o[a][t]=e})}}function c(e,t){var n,r;if(e)for(n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1}function u(e,n){var r,i,o,a=arguments,s;for(r=1,i=a.length;i>r;r++){n=a[r];for(o in n)n.hasOwnProperty(o)&&(s=n[o],s!==t&&(e[o]=s))}return e}function d(e,t,n,r){r=r||this,e&&(n&&(e=e[n]),o(e,function(e,i){return t.call(r,e,i,n)===!1?!1:void d(e,t,n,r)}))}function f(e,t){var n,r;for(t=t||window,e=e.split("."),n=0;n<e.length;n++)r=e[n],t[r]||(t[r]={}),t=t[r];return t}function p(e,t){var n,r;for(t=t||window,e=e.split("."),n=0,r=e.length;r>n&&(t=t[e[n]],t);n++);return t}function h(t,r){return!t||n(t,"array")?t:a(t.split(r||","),e)}var m=/^\s*|\s*$/g,g=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};return{trim:e,isArray:g,is:n,toArray:r,makeMap:i,each:o,map:a,grep:s,inArray:c,extend:u,create:l,walk:d,createNS:f,resolve:p,explode:h}}),r(h,[p],function(e){function t(n){function r(){return H.createDocumentFragment()}function i(e,t){_(F,e,t)}function o(e,t){_(z,e,t)}function a(e){i(e.parentNode,j(e))}function s(e){i(e.parentNode,j(e)+1)}function l(e){o(e.parentNode,j(e))}function c(e){o(e.parentNode,j(e)+1)}function u(e){e?(M[U]=M[V],M[q]=M[W]):(M[V]=M[U],M[W]=M[q]),M.collapsed=F}function d(e){a(e),c(e)}function f(e){i(e,0),o(e,1===e.nodeType?e.childNodes.length:e.nodeValue.length)}function p(e,t){var n=M[V],r=M[W],i=M[U],o=M[q],a=t.startContainer,s=t.startOffset,l=t.endContainer,c=t.endOffset;return 0===e?w(n,r,a,s):1===e?w(i,o,a,s):2===e?w(i,o,l,c):3===e?w(n,r,l,c):void 0}function h(){N(I)}function m(){return N(P)}function g(){return N(O)}function v(e){var t=this[V],r=this[W],i,o;3!==t.nodeType&&4!==t.nodeType||!t.nodeValue?(t.childNodes.length>0&&(o=t.childNodes[r]),o?t.insertBefore(e,o):3==t.nodeType?n.insertAfter(e,t):t.appendChild(e)):r?r>=t.nodeValue.length?n.insertAfter(e,t):(i=t.splitText(r),t.parentNode.insertBefore(e,i)):t.parentNode.insertBefore(e,t)}function y(e){var t=M.extractContents();M.insertNode(e),e.appendChild(t),M.selectNode(e)}function b(){return $(new t(n),{startContainer:M[V],startOffset:M[W],endContainer:M[U],endOffset:M[q],collapsed:M.collapsed,commonAncestorContainer:M.commonAncestorContainer})}function C(e,t){var n;if(3==e.nodeType)return e;if(0>t)return e;for(n=e.firstChild;n&&t>0;)--t,n=n.nextSibling;return n?n:e}function x(){return M[V]==M[U]&&M[W]==M[q]}function w(e,t,r,i){var o,a,s,l,c,u;if(e==r)return t==i?0:i>t?-1:1;for(o=r;o&&o.parentNode!=e;)o=o.parentNode;if(o){for(a=0,s=e.firstChild;s!=o&&t>a;)a++,s=s.nextSibling;return a>=t?-1:1}for(o=e;o&&o.parentNode!=r;)o=o.parentNode;if(o){for(a=0,s=r.firstChild;s!=o&&i>a;)a++,s=s.nextSibling;return i>a?-1:1}for(l=n.findCommonAncestor(e,r),c=e;c&&c.parentNode!=l;)c=c.parentNode;for(c||(c=l),u=r;u&&u.parentNode!=l;)u=u.parentNode;if(u||(u=l),c==u)return 0;for(s=l.firstChild;s;){if(s==c)return-1;if(s==u)return 1;s=s.nextSibling}}function _(e,t,r){var i,o;for(e?(M[V]=t,M[W]=r):(M[U]=t,M[q]=r),i=M[U];i.parentNode;)i=i.parentNode;for(o=M[V];o.parentNode;)o=o.parentNode;o==i?w(M[V],M[W],M[U],M[q])>0&&M.collapse(e):M.collapse(e),M.collapsed=x(),M.commonAncestorContainer=n.findCommonAncestor(M[V],M[U])}function N(e){var t,n=0,r=0,i,o,a,s,l,c;if(M[V]==M[U])return E(e);for(t=M[U],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[V])return S(t,e);++n}for(t=M[V],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[U])return k(t,e);++r}for(o=r-n,a=M[V];o>0;)a=a.parentNode,o--;for(s=M[U];0>o;)s=s.parentNode,o++;for(l=a.parentNode,c=s.parentNode;l!=c;l=l.parentNode,c=c.parentNode)a=l,s=c;return T(a,s,e)}function E(e){var t,n,i,o,a,s,l,c,u;if(e!=I&&(t=r()),M[W]==M[q])return t;if(3==M[V].nodeType){if(n=M[V].nodeValue,i=n.substring(M[W],M[q]),e!=O&&(o=M[V],c=M[W],u=M[q]-M[W],0===c&&u>=o.nodeValue.length-1?o.parentNode.removeChild(o):o.deleteData(c,u),M.collapse(F)),e==I)return;return i.length>0&&t.appendChild(H.createTextNode(i)),t}for(o=C(M[V],M[W]),a=M[q]-M[W];o&&a>0;)s=o.nextSibling,l=D(o,e),t&&t.appendChild(l),--a,o=s;return e!=O&&M.collapse(F),t}function S(e,t){var n,i,o,a,s,l;if(t!=I&&(n=r()),i=R(e,t),n&&n.appendChild(i),o=j(e),a=o-M[W],0>=a)return t!=O&&(M.setEndBefore(e),M.collapse(z)),n;for(i=e.previousSibling;a>0;)s=i.previousSibling,l=D(i,t),n&&n.insertBefore(l,n.firstChild),--a,i=s;return t!=O&&(M.setEndBefore(e),M.collapse(z)),n}function k(e,t){var n,i,o,a,s,l;for(t!=I&&(n=r()),o=A(e,t),n&&n.appendChild(o),i=j(e),++i,a=M[q]-i,o=e.nextSibling;o&&a>0;)s=o.nextSibling,l=D(o,t),n&&n.appendChild(l),--a,o=s;return t!=O&&(M.setStartAfter(e),M.collapse(F)),n}function T(e,t,n){var i,o,a,s,l,c,u;for(n!=I&&(o=r()),i=A(e,n),o&&o.appendChild(i),a=j(e),s=j(t),++a,l=s-a,c=e.nextSibling;l>0;)u=c.nextSibling,i=D(c,n),o&&o.appendChild(i),c=u,--l;return i=R(t,n),o&&o.appendChild(i),n!=O&&(M.setStartAfter(e),M.collapse(F)),o}function R(e,t){var n=C(M[U],M[q]-1),r,i,o,a,s,l=n!=M[U];if(n==e)return B(n,l,z,t);for(r=n.parentNode,i=B(r,z,z,t);r;){for(;n;)o=n.previousSibling,a=B(n,l,z,t),t!=I&&i.insertBefore(a,i.firstChild),l=F,n=o;if(r==e)return i;n=r.previousSibling,r=r.parentNode,s=B(r,z,z,t),t!=I&&s.appendChild(i),i=s}}function A(e,t){var n=C(M[V],M[W]),r=n!=M[V],i,o,a,s,l;if(n==e)return B(n,r,F,t);for(i=n.parentNode,o=B(i,z,F,t);i;){for(;n;)a=n.nextSibling,s=B(n,r,F,t),t!=I&&o.appendChild(s),r=F,n=a;if(i==e)return o;n=i.nextSibling,i=i.parentNode,l=B(i,z,F,t),t!=I&&l.appendChild(o),o=l}}function B(e,t,r,i){var o,a,s,l,c;if(t)return D(e,i);if(3==e.nodeType){if(o=e.nodeValue,r?(l=M[W],a=o.substring(l),s=o.substring(0,l)):(l=M[q],a=o.substring(0,l),s=o.substring(l)),i!=O&&(e.nodeValue=s),i==I)return;return c=n.clone(e,z),c.nodeValue=a,c}if(i!=I)return n.clone(e,z)}function D(e,t){return t!=I?t==O?n.clone(e,F):e:void e.parentNode.removeChild(e)}function L(){return n.create("body",null,g()).outerText}var M=this,H=n.doc,P=0,O=1,I=2,F=!0,z=!1,W="startOffset",V="startContainer",U="endContainer",q="endOffset",$=e.extend,j=n.nodeIndex;return $(M,{startContainer:H,startOffset:0,endContainer:H,endOffset:0,collapsed:F,commonAncestorContainer:H,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:i,setEnd:o,setStartBefore:a,setStartAfter:s,setEndBefore:l,setEndAfter:c,collapse:u,selectNode:d,selectNodeContents:f,compareBoundaryPoints:p,deleteContents:h,extractContents:m,cloneContents:g,insertNode:v,surroundContents:y,cloneRange:b,toStringIE:L}),M}return t.prototype.toString=function(){return this.toStringIE()},t}),r(m,[p],function(e){function t(e){var t;return t=document.createElement("div"),t.innerHTML=e,t.textContent||t.innerText||e}function n(e,t){var n,r,i,a={};if(e){for(e=e.split(","),t=t||10,n=0;n<e.length;n+=2)r=String.fromCharCode(parseInt(e[n],t)),o[r]||(i="&"+e[n+1]+";",a[r]=i,a[i]=r);return a}}var r=e.makeMap,i,o,a,s=/[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=/[<>&\"\']/g,u=/&(#x|#)?([\w]+);/g,d={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};o={'"':"&quot;","'":"&#39;","<":"&lt;",">":"&gt;","&":"&amp;","`":"&#96;"},a={"&lt;":"<","&gt;":">","&amp;":"&","&quot;":'"',"&apos;":"'"},i=n("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var f={encodeRaw:function(e,t){return e.replace(t?s:l,function(e){return o[e]||e})},encodeAllRaw:function(e){return(""+e).replace(c,function(e){return o[e]||e})},encodeNumeric:function(e,t){return e.replace(t?s:l,function(e){return e.length>1?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":o[e]||"&#"+e.charCodeAt(0)+";"})},encodeNamed:function(e,t,n){return n=n||i,e.replace(t?s:l,function(e){return o[e]||n[e]||e})},getEncodeFunc:function(e,t){function a(e,n){return e.replace(n?s:l,function(e){return o[e]||t[e]||"&#"+e.charCodeAt(0)+";"||e})}function c(e,n){return f.encodeNamed(e,n,t)}return t=n(t)||i,e=r(e.replace(/\+/g,",")),e.named&&e.numeric?a:e.named?t?c:f.encodeNamed:e.numeric?f.encodeNumeric:f.encodeRaw},decode:function(e){return e.replace(u,function(e,n,r){return n?(r=parseInt(r,2===n.length?16:10),r>65535?(r-=65536,String.fromCharCode(55296+(r>>10),56320+(1023&r))):d[r]||String.fromCharCode(r)):a[e]||i[e]||t(e)})}};return f}),r(g,[],function(){var e=navigator,t=e.userAgent,n,r,i,o,a,s,l;n=window.opera&&window.opera.buildNumber,r=/WebKit/.test(t),i=!r&&!n&&/MSIE/gi.test(t)&&/Explorer/gi.test(e.appName),i=i&&/MSIE (\w+)\./.exec(t)[1],o=-1==t.indexOf("Trident/")||-1==t.indexOf("rv:")&&-1==e.appName.indexOf("Netscape")?!1:11,i=i||o,a=!r&&!o&&/Gecko/.test(t),s=-1!=t.indexOf("Mac"),l=/(iPad|iPhone)/.test(t);var c=!l||t.match(/AppleWebKit\/(\d*)/)[1]>=534;return{opera:n,webkit:r,ie:i,gecko:a,mac:s,iOS:l,contentEditable:c,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!=i,range:window.getSelection&&"Range"in window,documentMode:i?document.documentMode||7:10}}),r(v,[],function(){return function(e,t){function n(t){e.getElementsByTagName("head")[0].appendChild(t)}function r(t,r,s){function l(){for(var e=v.passed,t=e.length;t--;)e[t]();v.status=2,v.passed=[],v.failed=[]}function c(){for(var e=v.failed,t=e.length;t--;)e[t]();v.status=3,v.passed=[],v.failed=[]}function u(){var e=navigator.userAgent.match(/WebKit\/(\d*)/);return!!(e&&e[1]<536)}function d(e,t){e()||((new Date).getTime()-g<a?window.setTimeout(t,0):c())}function f(){d(function(){for(var t=e.styleSheets,n,r=t.length,i;r--;)if(n=t[r],i=n.ownerNode?n.ownerNode:n.owningElement,i&&i.id===h.id)return l(),!0},f)}function p(){d(function(){try{var e=m.sheet.cssRules;return l(),!!e}catch(t){}},p)}var h,m,g,v;if(o[t]?v=o[t]:(v={passed:[],failed:[]},o[t]=v),r&&v.passed.push(r),s&&v.failed.push(s),1!=v.status){if(2==v.status)return void l();if(3==v.status)return void c();if(v.status=1,h=e.createElement("link"),h.rel="stylesheet",h.type="text/css",h.id="u"+i++,h.async=!1,h.defer=!1,g=(new Date).getTime(),"onload"in h&&!u())h.onload=f,h.onerror=c;else{if(navigator.userAgent.indexOf("Firefox")>0)return m=e.createElement("style"),m.textContent='@import "'+t+'"',p(),void n(m);f()}n(h),h.href=t}}var i=0,o={},a;t=t||{},a=t.maxLoadTime||5e3,this.load=r}}),r(y,[c,d,l,f,h,m,g,p,v],function(e,n,r,i,o,a,s,l,c){function u(e,t){var i=this,o;i.doc=e,i.win=window,i.files={},i.counter=0,i.stdMode=!v||e.documentMode>=8,i.boxModel=!v||"CSS1Compat"==e.compatMode||i.stdMode,i.hasOuterHTML="outerHTML"in e.createElement("a"),i.styleSheetLoader=new c(e),this.boundEvents=[],i.settings=t=m({keep_values:!1,hex_colors:1},t),i.schema=t.schema,i.styles=new n({url_converter:t.url_converter,url_converter_scope:t.url_converter_scope},t.schema),i.fixDoc(e),i.events=t.ownEvents?new r(t.proxy):r.Event,o=t.schema?t.schema.getBlockElements():{},i.isBlock=function(e){if(!e)return!1;var t=e.nodeType;return t?!(1!==t||!o[e.nodeName]):!!o[e]}}var d=l.each,f=l.is,p=l.grep,h=l.trim,m=l.extend,g=s.webkit,v=s.ie,y=/^([a-z0-9],?)+$/i,b=/^[ \t\r\n]*$/,C=l.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," ");return u.prototype={root:null,props:{"for":"htmlFor","class":"className",className:"className",checked:"checked",disabled:"disabled",maxlength:"maxLength",readonly:"readOnly",selected:"selected",value:"value",id:"id",name:"name",type:"type"},fixDoc:function(e){var t=this.settings,n;if(v&&t.schema){"abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video".replace(/\w+/g,function(t){e.createElement(t)});for(n in t.schema.getCustomElements())e.createElement(n)}},clone:function(e,t){var n=this,r,i;return!v||1!==e.nodeType||t?e.cloneNode(t):(i=n.doc,t?r.firstChild:(r=i.createElement(e.nodeName),d(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),r))},getRoot:function(){var e=this;return e.get(e.settings.root_element)||e.doc.body},getViewPort:function(e){var t,n;return e=e?e:this.win,t=e.document,n=this.boxModel?t.documentElement:t.body,{x:e.pageXOffset||n.scrollLeft,y:e.pageYOffset||n.scrollTop,w:e.innerWidth||n.clientWidth,h:e.innerHeight||n.clientHeight}},getRect:function(e){var t=this,n,r;return e=t.get(e),n=t.getPos(e),r=t.getSize(e),{x:n.x,y:n.y,w:r.w,h:r.h}},getSize:function(e){var t=this,n,r;return e=t.get(e),n=t.getStyle(e,"width"),r=t.getStyle(e,"height"),-1===n.indexOf("px")&&(n=0),-1===r.indexOf("px")&&(r=0),{w:parseInt(n,10)||e.offsetWidth||e.clientWidth,h:parseInt(r,10)||e.offsetHeight||e.clientHeight}},getParent:function(e,t,n){return this.getParents(e,t,n,!1)},getParents:function(e,n,r,i){var o=this,a,s=[];for(e=o.get(e),i=i===t,r=r||("BODY"!=o.getRoot().nodeName?o.getRoot().parentNode:null),f(n,"string")&&(a=n,n="*"===n?function(e){return 1==e.nodeType}:function(e){return o.is(e,a)});e&&e!=r&&e.nodeType&&9!==e.nodeType;){if(!n||n(e)){if(!i)return e;s.push(e)}e=e.parentNode}return i?s:null},get:function(e){var t;return e&&this.doc&&"string"==typeof e&&(t=e,e=this.doc.getElementById(e),e&&e.id!==t)?this.doc.getElementsByName(t)[1]:e},getNext:function(e,t){return this._findSib(e,t,"nextSibling")},getPrev:function(e,t){return this._findSib(e,t,"previousSibling")},select:function(t,n){var r=this;return e(t,r.get(n)||r.get(r.settings.root_element)||r.doc,[])},is:function(n,r){var i;if(n.length===t){if("*"===r)return 1==n.nodeType;if(y.test(r)){for(r=r.toLowerCase().split(/,/),n=n.nodeName.toLowerCase(),i=r.length-1;i>=0;i--)if(r[i]==n)return!0;return!1}}if(n.nodeType&&1!=n.nodeType)return!1;var o=n.nodeType?[n]:n;return e(r,o[0].ownerDocument||o[0],null,o).length>0},add:function(e,t,n,r,i){var o=this;return this.run(e,function(e){var a;return a=f(t,"string")?o.doc.createElement(t):t,o.setAttribs(a,n),r&&(r.nodeType?a.appendChild(r):o.setHTML(a,r)),i?a:e.appendChild(a)})},create:function(e,t,n){return this.add(this.doc.createElement(e),e,t,n,1)},createHTML:function(e,t,n){var r="",i;r+="<"+e;for(i in t)t.hasOwnProperty(i)&&null!==t[i]&&(r+=" "+i+'="'+this.encode(t[i])+'"');return"undefined"!=typeof n?r+">"+n+"</"+e+">":r+" />"},createFragment:function(e){var t,n,r=this.doc,i;for(i=r.createElement("div"),t=r.createDocumentFragment(),e&&(i.innerHTML=e);n=i.firstChild;)t.appendChild(n);return t},remove:function(e,t){return this.run(e,function(e){var n,r=e.parentNode;if(!r)return null;if(t)for(;n=e.firstChild;)!v||3!==n.nodeType||n.nodeValue?r.insertBefore(n,e):e.removeChild(n);return r.removeChild(e)})},setStyle:function(e,t,n){return this.run(e,function(e){var r=this,i,o;if(t)if("string"==typeof t){i=e.style,t=t.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"number"!=typeof n||C[t]||(n+="px"),"opacity"===t&&e.runtimeStyle&&"undefined"==typeof e.runtimeStyle.opacity&&(i.filter=""===n?"":"alpha(opacity="+100*n+")"),"float"==t&&(t="cssFloat"in e.style?"cssFloat":"styleFloat");try{i[t]=n}catch(a){}r.settings.update_styles&&e.removeAttribute("data-mce-style")}else for(o in t)r.setStyle(e,o,t[o])})},getStyle:function(e,n,r){if(e=this.get(e)){if(this.doc.defaultView&&r){n=n.replace(/[A-Z]/g,function(e){return"-"+e});try{return this.doc.defaultView.getComputedStyle(e,null).getPropertyValue(n)}catch(i){return null}}return n=n.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"float"==n&&(n=v?"styleFloat":"cssFloat"),e.currentStyle&&r?e.currentStyle[n]:e.style?e.style[n]:t}},setStyles:function(e,t){this.setStyle(e,t)},css:function(e,t,n){this.setStyle(e,t,n)},removeAllAttribs:function(e){return this.run(e,function(e){var t,n=e.attributes;for(t=n.length-1;t>=0;t--)e.removeAttributeNode(n.item(t))})},setAttrib:function(e,t,n){var r=this;if(e&&t)return this.run(e,function(e){var i=r.settings,o=e.getAttribute(t);if(null!==n)switch(t){case"style":if(!f(n,"string"))return void d(n,function(t,n){r.setStyle(e,n,t)});i.keep_values&&(n?e.setAttribute("data-mce-style",n,2):e.removeAttribute("data-mce-style",2)),e.style.cssText=n;break;case"class":e.className=n||"";break;case"src":case"href":i.keep_values&&(i.url_converter&&(n=i.url_converter.call(i.url_converter_scope||r,n,t,e)),r.setAttrib(e,"data-mce-"+t,n,2));break;case"shape":e.setAttribute("data-mce-style",n)}f(n)&&null!==n&&0!==n.length?e.setAttribute(t,""+n,2):e.removeAttribute(t,2),o!=n&&i.onSetAttrib&&i.onSetAttrib({attrElm:e,attrName:t,attrValue:n})})},setAttribs:function(e,t){var n=this;return this.run(e,function(e){d(t,function(t,r){n.setAttrib(e,r,t)})})},getAttrib:function(e,t,n){var r,i=this,o;if(e=i.get(e),!e||1!==e.nodeType)return n===o?!1:n;if(f(n)||(n=""),/^(src|href|style|coords|shape)$/.test(t)&&(r=e.getAttribute("data-mce-"+t)))return r;if(v&&i.props[t]&&(r=e[i.props[t]],r=r&&r.nodeValue?r.nodeValue:r),r||(r=e.getAttribute(t,2)),/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(t))return e[i.props[t]]===!0&&""===r?t:r?t:"";if("FORM"===e.nodeName&&e.getAttributeNode(t))return e.getAttributeNode(t).nodeValue;if("style"===t&&(r=r||e.style.cssText,r&&(r=i.serializeStyle(i.parseStyle(r),e.nodeName),i.settings.keep_values&&e.setAttribute("data-mce-style",r))),g&&"class"===t&&r&&(r=r.replace(/(apple|webkit)\-[a-z\-]+/gi,"")),v)switch(t){case"rowspan":case"colspan":1===r&&(r="");break;case"size":("+0"===r||20===r||0===r)&&(r="");break;case"width":case"height":case"vspace":case"checked":case"disabled":case"readonly":0===r&&(r="");break;case"hspace":-1===r&&(r="");break;case"maxlength":case"tabindex":(32768===r||2147483647===r||"32768"===r)&&(r="");break;case"multiple":case"compact":case"noshade":case"nowrap":return 65535===r?t:n;case"shape":r=r.toLowerCase();break;default:0===t.indexOf("on")&&r&&(r=(""+r).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1"))}return r!==o&&null!==r&&""!==r?""+r:n},getPos:function(e,t){var n=this,r=0,i=0,o,a=n.doc,s;if(e=n.get(e),t=t||a.body,e){if(t===a.body&&e.getBoundingClientRect)return s=e.getBoundingClientRect(),t=n.boxModel?a.documentElement:a.body,r=s.left+(a.documentElement.scrollLeft||a.body.scrollLeft)-t.clientLeft,i=s.top+(a.documentElement.scrollTop||a.body.scrollTop)-t.clientTop,{x:r,y:i};for(o=e;o&&o!=t&&o.nodeType;)r+=o.offsetLeft||0,i+=o.offsetTop||0,o=o.offsetParent;for(o=e.parentNode;o&&o!=t&&o.nodeType;)r-=o.scrollLeft||0,i-=o.scrollTop||0,o=o.parentNode}return{x:r,y:i}},parseStyle:function(e){return this.styles.parse(e)},serializeStyle:function(e,t){return this.styles.serialize(e,t)},addStyle:function(e){var t=this,n=t.doc,r,i;if(t!==u.DOM&&n===document){var o=u.DOM.addedStyles;if(o=o||[],o[e])return;o[e]=!0,u.DOM.addedStyles=o}i=n.getElementById("mceDefaultStyles"),i||(i=n.createElement("style"),i.id="mceDefaultStyles",i.type="text/css",r=n.getElementsByTagName("head")[0],r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i)),i.styleSheet?i.styleSheet.cssText+=e:i.appendChild(n.createTextNode(e))},loadCSS:function(e){var t=this,n=t.doc,r;return t!==u.DOM&&n===document?void u.DOM.loadCSS(e):(e||(e=""),r=n.getElementsByTagName("head")[0],void d(e.split(","),function(e){var i;t.files[e]||(t.files[e]=!0,i=t.create("link",{rel:"stylesheet",href:e}),v&&n.documentMode&&n.recalc&&(i.onload=function(){n.recalc&&n.recalc(),i.onload=null}),r.appendChild(i))}))},addClass:function(e,t){return this.run(e,function(e){var n;return t?this.hasClass(e,t)?e.className:(n=this.removeClass(e,t),e.className=n=(""!==n?n+" ":"")+t,n):0})},removeClass:function(e,t){var n=this,r;return n.run(e,function(e){var i;return n.hasClass(e,t)?(r||(r=new RegExp("(^|\\s+)"+t+"(\\s+|$)","g")),i=e.className.replace(r," "),i=h(" "!=i?i:""),e.className=i,i||(e.removeAttribute("class"),e.removeAttribute("className")),i):e.className})},hasClass:function(e,t){return e=this.get(e),e&&t?-1!==(" "+e.className+" ").indexOf(" "+t+" "):!1},toggleClass:function(e,n,r){r=r===t?!this.hasClass(e,n):r,this.hasClass(e,n)!==r&&(r?this.addClass(e,n):this.removeClass(e,n))},show:function(e){return this.setStyle(e,"display","block")},hide:function(e){return this.setStyle(e,"display","none")},isHidden:function(e){return e=this.get(e),!e||"none"==e.style.display||"none"==this.getStyle(e,"display")},uniqueId:function(e){return(e?e:"mce_")+this.counter++},setHTML:function(e,t){var n=this;return n.run(e,function(e){if(v){for(;e.firstChild;)e.removeChild(e.firstChild);try{e.innerHTML="<br />"+t,e.removeChild(e.firstChild)}catch(r){var i=n.create("div");i.innerHTML="<br />"+t,d(p(i.childNodes),function(t,n){n&&e.canHaveHTML&&e.appendChild(t)})}}else e.innerHTML=t;return t})},getOuterHTML:function(e){var t,n=this;return(e=n.get(e))?1===e.nodeType&&n.hasOuterHTML?e.outerHTML:(t=(e.ownerDocument||n.doc).createElement("body"),t.appendChild(e.cloneNode(!0)),t.innerHTML):null},setOuterHTML:function(e,t,n){var r=this;return r.run(e,function(e){function i(){var i,o;for(o=n.createElement("body"),o.innerHTML=t,i=o.lastChild;i;)r.insertAfter(i.cloneNode(!0),e),i=i.previousSibling;r.remove(e)}if(1==e.nodeType)if(n=n||e.ownerDocument||r.doc,v)try{1==e.nodeType&&r.hasOuterHTML?e.outerHTML=t:i()}catch(o){i()}else i()})},decode:a.decode,encode:a.encodeAllRaw,insertAfter:function(e,t){return t=this.get(t),this.run(e,function(e){var n,r;return n=t.parentNode,r=t.nextSibling,r?n.insertBefore(e,r):n.appendChild(e),e})},replace:function(e,t,n){var r=this;return r.run(t,function(t){return f(t,"array")&&(e=e.cloneNode(!0)),n&&d(p(t.childNodes),function(t){e.appendChild(t)}),t.parentNode.replaceChild(e,t)})},rename:function(e,t){var n=this,r;return e.nodeName!=t.toUpperCase()&&(r=n.create(t),d(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),n.replace(r,e,1)),r||e},findCommonAncestor:function(e,t){for(var n=e,r;n;){for(r=t;r&&n!=r;)r=r.parentNode;if(n==r)break;n=n.parentNode}return!n&&e.ownerDocument?e.ownerDocument.documentElement:n},toHex:function(e){return this.styles.toHex(l.trim(e))},run:function(e,t,n){var r=this,i;return"string"==typeof e&&(e=r.get(e)),e?(n=n||this,e.nodeType||!e.length&&0!==e.length?t.call(n,e):(i=[],d(e,function(e,o){e&&("string"==typeof e&&(e=r.get(e)),i.push(t.call(n,e,o)))}),i)):!1},getAttribs:function(e){var t;if(e=this.get(e),!e)return[];if(v){if(t=[],"OBJECT"==e.nodeName)return e.attributes;"OPTION"===e.nodeName&&this.getAttrib(e,"selected")&&t.push({specified:1,nodeName:"selected"});var n=/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;return e.cloneNode(!1).outerHTML.replace(n,"").replace(/[\w:\-]+/gi,function(e){t.push({specified:1,nodeName:e})}),t}return e.attributes},isEmpty:function(e,t){var n=this,r,o,a,s,l,c=0;if(e=e.firstChild){s=new i(e,e.parentNode),t=t||n.schema?n.schema.getNonEmptyElements():null;do{if(a=e.nodeType,1===a){if(e.getAttribute("data-mce-bogus"))continue;if(l=e.nodeName.toLowerCase(),t&&t[l]){if("br"===l){c++;continue}return!1}for(o=n.getAttribs(e),r=o.length;r--;)if(l=o[r].nodeName,"name"===l||"data-mce-bookmark"===l)return!1}if(8==a)return!1;if(3===a&&!b.test(e.nodeValue))return!1}while(e=s.next())}return 1>=c},createRng:function(){var e=this.doc;return e.createRange?e.createRange():new o(this)},nodeIndex:function(e,t){var n=0,r,i;if(e)for(r=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)i=e.nodeType,(!t||3!=i||i!=r&&e.nodeValue.length)&&(n++,r=i);return n},split:function(e,t,n){function r(e){function t(e){var t=e.previousSibling&&"SPAN"==e.previousSibling.nodeName,n=e.nextSibling&&"SPAN"==e.nextSibling.nodeName;return t&&n}var n,o=e.childNodes,a=e.nodeType;if(1!=a||"bookmark"!=e.getAttribute("data-mce-type")){for(n=o.length-1;n>=0;n--)r(o[n]);if(9!=a){if(3==a&&e.nodeValue.length>0){var s=h(e.nodeValue).length;if(!i.isBlock(e.parentNode)||s>0||0===s&&t(e))return}else if(1==a&&(o=e.childNodes,1==o.length&&o[0]&&1==o[0].nodeType&&"bookmark"==o[0].getAttribute("data-mce-type")&&e.parentNode.insertBefore(o[0],e),o.length||/^(br|hr|input|img)$/i.test(e.nodeName)))return;i.remove(e)}return e}}var i=this,o=i.createRng(),a,s,l;return e&&t?(o.setStart(e.parentNode,i.nodeIndex(e)),o.setEnd(t.parentNode,i.nodeIndex(t)),a=o.extractContents(),o=i.createRng(),o.setStart(t.parentNode,i.nodeIndex(t)+1),o.setEnd(e.parentNode,i.nodeIndex(e)+1),s=o.extractContents(),l=e.parentNode,l.insertBefore(r(a),e),n?l.replaceChild(n,t):l.insertBefore(t,e),l.insertBefore(r(s),e),i.remove(e),n||t):void 0},bind:function(e,t,n,r){var i=this;if(l.isArray(e)){for(var o=e.length;o--;)e[o]=i.bind(e[o],t,n,r);return e}return!i.settings.collect||e!==i.doc&&e!==i.win||i.boundEvents.push([e,t,n,r]),i.events.bind(e,t,n,r||i)},unbind:function(e,t,n){var r=this,i;if(l.isArray(e)){for(i=e.length;i--;)e[i]=r.unbind(e[i],t,n);return e}if(r.boundEvents&&(e===r.doc||e===r.win))for(i=r.boundEvents.length;i--;){var o=r.boundEvents[i];e!=o[0]||t&&t!=o[1]||n&&n!=o[2]||this.events.unbind(o[0],o[1],o[2])}return this.events.unbind(e,t,n)},fire:function(e,t,n){return this.events.fire(e,t,n)},getContentEditable:function(e){var t;return e&&1==e.nodeType?(t=e.getAttribute("data-mce-contenteditable"),t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null):null},getContentEditableParent:function(e){for(var t=this.getRoot(),n=null;e&&e!==t&&(n=this.getContentEditable(e),null===n);e=e.parentNode);return n},destroy:function(){var t=this;if(t.boundEvents){for(var n=t.boundEvents.length;n--;){var r=t.boundEvents[n];
-this.events.unbind(r[0],r[1],r[2])}t.boundEvents=null}e.setDocument&&e.setDocument(),t.win=t.doc=t.root=t.events=t.frag=null},isChildOf:function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset},_findSib:function(e,t,n){var r=this,i=t;if(e)for("string"==typeof i&&(i=function(e){return r.is(e,t)}),e=e[n];e;e=e[n])if(i(e))return e;return null}},u.DOM=new u(document),u}),r(b,[y,p],function(e,t){function n(){function e(e,t){function n(){o.remove(s),a&&(a.onreadystatechange=a.onload=a=null),t()}function i(){"undefined"!=typeof console&&console.log&&console.log("Failed to load: "+e)}var o=r,a,s;s=o.uniqueId(),a=document.createElement("script"),a.id=s,a.type="text/javascript",a.src=e,"onreadystatechange"in a?a.onreadystatechange=function(){/loaded|complete/.test(a.readyState)&&n()}:a.onload=n,a.onerror=i,(document.getElementsByTagName("head")[0]||document.body).appendChild(a)}var t=0,n=1,a=2,s={},l=[],c={},u=[],d=0,f;this.isDone=function(e){return s[e]==a},this.markDone=function(e){s[e]=a},this.add=this.load=function(e,n,r){var i=s[e];i==f&&(l.push(e),s[e]=t),n&&(c[e]||(c[e]=[]),c[e].push({func:n,scope:r||this}))},this.loadQueue=function(e,t){this.loadScripts(l,e,t)},this.loadScripts=function(t,r,l){function p(e){i(c[e],function(e){e.func.call(e.scope)}),c[e]=f}var h;u.push({func:r,scope:l||this}),(h=function(){var r=o(t);t.length=0,i(r,function(t){return s[t]==a?void p(t):void(s[t]!=n&&(s[t]=n,d++,e(t,function(){s[t]=a,d--,p(t),h()})))}),d||(i(u,function(e){e.func.call(e.scope)}),u.length=0)})()}}var r=e.DOM,i=t.each,o=t.grep;return n.ScriptLoader=new n,n}),r(C,[b,p],function(e,n){function r(){var e=this;e.items=[],e.urls={},e.lookup={}}var i=n.each;return r.prototype={get:function(e){return this.lookup[e]?this.lookup[e].instance:t},dependencies:function(e){var t;return this.lookup[e]&&(t=this.lookup[e].dependencies),t||[]},requireLangPack:function(t,n){var i=r.language;if(i&&r.languageLoad!==!1){if(n)if(n=","+n+",",-1!=n.indexOf(","+i.substr(0,2)+","))i=i.substr(0,2);else if(-1==n.indexOf(","+i+","))return;e.ScriptLoader.add(this.urls[t]+"/langs/"+i+".js")}},add:function(e,t,n){return this.items.push(t),this.lookup[e]={instance:t,dependencies:n},t},createUrl:function(e,t){return"object"==typeof t?t:{prefix:e.prefix,resource:t,suffix:e.suffix}},addComponents:function(t,n){var r=this.urls[t];i(n,function(t){e.ScriptLoader.add(r+"/"+t)})},load:function(n,o,a,s){function l(){var r=c.dependencies(n);i(r,function(e){var n=c.createUrl(o,e);c.load(n.resource,n,t,t)}),a&&a.call(s?s:e)}var c=this,u=o;c.urls[n]||("object"==typeof o&&(u=o.prefix+o.resource+o.suffix),0!==u.indexOf("/")&&-1==u.indexOf("://")&&(u=r.baseURL+"/"+u),c.urls[n]=u.substring(0,u.lastIndexOf("/")),c.lookup[n]?l():e.ScriptLoader.add(u,l,s))}},r.PluginManager=new r,r.ThemeManager=new r,r}),r(x,[],function(){function e(e,t,n){var r,i,o=n?"lastChild":"firstChild",a=n?"prev":"next";if(e[o])return e[o];if(e!==t){if(r=e[a])return r;for(i=e.parent;i&&i!==t;i=i.parent)if(r=i[a])return r}}function t(e,t){this.name=e,this.type=t,1===t&&(this.attributes=[],this.attributes.map={})}var n=/^[ \t\r\n]*$/,r={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};return t.prototype={replace:function(e){var t=this;return e.parent&&e.remove(),t.insert(e,t),t.remove(),t},attr:function(e,t){var n=this,r,i,o;if("string"!=typeof e){for(i in e)n.attr(i,e[i]);return n}if(r=n.attributes){if(t!==o){if(null===t){if(e in r.map)for(delete r.map[e],i=r.length;i--;)if(r[i].name===e)return r=r.splice(i,1),n;return n}if(e in r.map){for(i=r.length;i--;)if(r[i].name===e){r[i].value=t;break}}else r.push({name:e,value:t});return r.map[e]=t,n}return r.map[e]}},clone:function(){var e=this,n=new t(e.name,e.type),r,i,o,a,s;if(o=e.attributes){for(s=[],s.map={},r=0,i=o.length;i>r;r++)a=o[r],"id"!==a.name&&(s[s.length]={name:a.name,value:a.value},s.map[a.name]=a.value);n.attributes=s}return n.value=e.value,n.shortEnded=e.shortEnded,n},wrap:function(e){var t=this;return t.parent.insert(e,t),e.append(t),t},unwrap:function(){var e=this,t,n;for(t=e.firstChild;t;)n=t.next,e.insert(t,e,!0),t=n;e.remove()},remove:function(){var e=this,t=e.parent,n=e.next,r=e.prev;return t&&(t.firstChild===e?(t.firstChild=n,n&&(n.prev=null)):r.next=n,t.lastChild===e?(t.lastChild=r,r&&(r.next=null)):n.prev=r,e.parent=e.next=e.prev=null),e},append:function(e){var t=this,n;return e.parent&&e.remove(),n=t.lastChild,n?(n.next=e,e.prev=n,t.lastChild=e):t.lastChild=t.firstChild=e,e.parent=t,e},insert:function(e,t,n){var r;return e.parent&&e.remove(),r=t.parent||this,n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.prev=t.prev,e.next=t,t.prev=e):(t===r.lastChild?r.lastChild=e:t.next.prev=e,e.next=t.next,e.prev=t,t.next=e),e.parent=r,e},getAll:function(t){var n=this,r,i=[];for(r=n.firstChild;r;r=e(r,n))r.name===t&&i.push(r);return i},empty:function(){var t=this,n,r,i;if(t.firstChild){for(n=[],i=t.firstChild;i;i=e(i,t))n.push(i);for(r=n.length;r--;)i=n[r],i.parent=i.firstChild=i.lastChild=i.next=i.prev=null}return t.firstChild=t.lastChild=null,t},isEmpty:function(t){var r=this,i=r.firstChild,o,a;if(i)do{if(1===i.type){if(i.attributes.map["data-mce-bogus"])continue;if(t[i.name])return!1;for(o=i.attributes.length;o--;)if(a=i.attributes[o].name,"name"===a||0===a.indexOf("data-mce-"))return!1}if(8===i.type)return!1;if(3===i.type&&!n.test(i.value))return!1}while(i=e(i,r));return!0},walk:function(t){return e(this,null,t)}},t.create=function(e,n){var i,o;if(i=new t(e,r[e]||1),n)for(o in n)i.attr(o,n[o]);return i},t}),r(w,[p],function(e){function t(e,t){return e?e.split(t||" "):[]}function n(e){function n(e,n,r){function i(e){var t={},n,r;for(n=0,r=e.length;r>n;n++)t[e[n]]={};return t}var o,l,c,u=arguments;for(r=r||[],n=n||"","string"==typeof r&&(r=t(r)),l=3;l<u.length;l++)"string"==typeof u[l]&&(u[l]=t(u[l])),r.push.apply(r,u[l]);for(e=t(e),o=e.length;o--;)c=[].concat(s,t(n)),a[e[o]]={attributes:i(c),attributesOrder:c,children:i(r)}}function i(e,n){var r,i,o,s;for(e=t(e),r=e.length,n=t(n);r--;)for(i=a[e[r]],o=0,s=n.length;s>o;o++)i.attributes[n[o]]={},i.attributesOrder.push(n[o])}var a={},s,l,c,u,d,f;return r[e]?r[e]:(s=t("id accesskey class dir lang style tabindex title"),l=t("address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul"),c=t("a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment"),"html4"!=e&&(s.push.apply(s,t("contenteditable contextmenu draggable dropzone hidden spellcheck translate")),l.push.apply(l,t("article aside details dialog figure header footer hgroup section nav")),c.push.apply(c,t("audio canvas command datalist mark meter output progress time wbr video ruby bdi keygen"))),"html5-strict"!=e&&(s.push("xml:lang"),f=t("acronym applet basefont big font strike tt"),c.push.apply(c,f),o(f,function(e){n(e,"",c)}),d=t("center dir isindex noframes"),l.push.apply(l,d),u=[].concat(l,c),o(d,function(e){n(e,"",u)})),u=u||[].concat(l,c),n("html","manifest","head body"),n("head","","base command link meta noscript script style title"),n("title hr noscript br"),n("base","href target"),n("link","href rel media hreflang type sizes hreflang"),n("meta","name http-equiv content charset"),n("style","media type scoped"),n("script","src async defer type charset"),n("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",u),n("address dt dd div caption","",u),n("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",c),n("blockquote","cite",u),n("ol","reversed start type","li"),n("ul","","li"),n("li","value",u),n("dl","","dt dd"),n("a","href target rel media hreflang type",c),n("q","cite",c),n("ins del","cite datetime",u),n("img","src alt usemap ismap width height"),n("iframe","src name width height",u),n("embed","src type width height"),n("object","data type typemustmatch name usemap form width height",u,"param"),n("param","name value"),n("map","name",u,"area"),n("area","alt coords shape href target rel media hreflang type"),n("table","border","caption colgroup thead tfoot tbody tr"+("html4"==e?" col":"")),n("colgroup","span","col"),n("col","span"),n("tbody thead tfoot","","tr"),n("tr","","td th"),n("td","colspan rowspan headers",u),n("th","colspan rowspan headers scope abbr",u),n("form","accept-charset action autocomplete enctype method name novalidate target",u),n("fieldset","disabled form name",u,"legend"),n("label","form for",c),n("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),n("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"==e?u:c),n("select","disabled form multiple name required size","option optgroup"),n("optgroup","disabled label","option"),n("option","disabled label selected value"),n("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),n("menu","type label",u,"li"),n("noscript","",u),"html4"!=e&&(n("wbr"),n("ruby","",c,"rt rp"),n("figcaption","",u),n("mark rt rp summary bdi","",c),n("canvas","width height",u),n("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height buffered",u,"track source"),n("audio","src crossorigin preload autoplay mediagroup loop muted controls buffered volume",u,"track source"),n("source","src type media"),n("track","kind src srclang label default"),n("datalist","",c,"option"),n("article section nav aside header footer","",u),n("hgroup","","h1 h2 h3 h4 h5 h6"),n("figure","",u,"figcaption"),n("time","datetime",c),n("dialog","open",u),n("command","type label icon disabled checked radiogroup command"),n("output","for form name",c),n("progress","value max",c),n("meter","value min max low high optimum",c),n("details","open",u,"summary"),n("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!=e&&(i("script","language xml:space"),i("style","xml:space"),i("object","declare classid codebase codetype archive standby align border hspace vspace"),i("param","valuetype type"),i("a","charset name rev shape coords"),i("br","clear"),i("applet","codebase archive code object alt name width height align hspace vspace"),i("img","name longdesc align border hspace vspace"),i("iframe","longdesc frameborder marginwidth marginheight scrolling align"),i("font basefont","size color face"),i("input","usemap align"),i("select","onchange"),i("textarea"),i("h1 h2 h3 h4 h5 h6 div p legend caption","align"),i("ul","type compact"),i("li","type"),i("ol dl menu dir","compact"),i("pre","width xml:space"),i("hr","align noshade size width"),i("isindex","prompt"),i("table","summary width frame rules cellspacing cellpadding align bgcolor"),i("col","width align char charoff valign"),i("colgroup","width align char charoff valign"),i("thead","align char charoff valign"),i("tr","align char charoff valign bgcolor"),i("th","axis align char charoff valign nowrap bgcolor width height"),i("form","accept"),i("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),i("tfoot","align char charoff valign"),i("tbody","align char charoff valign"),i("area","nohref"),i("body","background bgcolor text link vlink alink")),"html4"!=e&&(i("input button select textarea","autofocus"),i("input textarea","placeholder"),i("a","download"),i("link script img","crossorigin"),i("iframe","sandbox seamless allowfullscreen")),o(t("a form meter progress dfn"),function(e){a[e]&&delete a[e].children[e]}),delete a.caption.children.table,r[e]=a,a)}var r={},i=e.makeMap,o=e.each,a=e.extend,s=e.explode,l=e.inArray;return function(e){function c(t,n,o){var s=e[t];return s?s=i(s,/[, ]/,i(s.toUpperCase(),/[, ]/)):(s=r[t],s||(s=i(n," ",i(n.toUpperCase()," ")),s=a(s,o),r[t]=s)),s}function u(e){return new RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")}function d(e){var n,r,o,a,s,c,d,f,p,h,m,g,y,C,x,w,_,N,E,S=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,k=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,T=/[*?+]/;if(e)for(e=t(e,","),v["@"]&&(w=v["@"].attributes,_=v["@"].attributesOrder),n=0,r=e.length;r>n;n++)if(s=S.exec(e[n])){if(C=s[1],p=s[2],x=s[3],f=s[5],g={},y=[],c={attributes:g,attributesOrder:y},"#"===C&&(c.paddEmpty=!0),"-"===C&&(c.removeEmpty=!0),"!"===s[4]&&(c.removeEmptyAttrs=!0),w){for(N in w)g[N]=w[N];y.push.apply(y,_)}if(f)for(f=t(f,"|"),o=0,a=f.length;a>o;o++)if(s=k.exec(f[o])){if(d={},m=s[1],h=s[2].replace(/::/g,":"),C=s[3],E=s[4],"!"===m&&(c.attributesRequired=c.attributesRequired||[],c.attributesRequired.push(h),d.required=!0),"-"===m){delete g[h],y.splice(l(y,h),1);continue}C&&("="===C&&(c.attributesDefault=c.attributesDefault||[],c.attributesDefault.push({name:h,value:E}),d.defaultValue=E),":"===C&&(c.attributesForced=c.attributesForced||[],c.attributesForced.push({name:h,value:E}),d.forcedValue=E),"<"===C&&(d.validValues=i(E,"?"))),T.test(h)?(c.attributePatterns=c.attributePatterns||[],d.pattern=u(h),c.attributePatterns.push(d)):(g[h]||y.push(h),g[h]=d)}w||"@"!=p||(w=g,_=y),x&&(c.outputName=p,v[x]=c),T.test(p)?(c.pattern=u(p),b.push(c)):v[p]=c}}function f(e){v={},b=[],d(e),o(x,function(e,t){y[t]=e.children})}function p(e){var n=/^(~)?(.+)$/;e&&(r.text_block_elements=r.block_elements=null,o(t(e,","),function(e){var t=n.exec(e),r="~"===t[1],i=r?"span":"div",s=t[2];if(y[s]=y[i],R[s]=i,r||(S[s.toUpperCase()]={},S[s]={}),!v[s]){var l=v[i];l=a({},l),delete l.removeEmptyAttrs,delete l.removeEmpty,v[s]=l}o(y,function(e,t){e[i]&&(y[t]=e=a({},y[t]),e[s]=e[i])})}))}function h(e){var n=/^([+\-]?)(\w+)\[([^\]]+)\]$/;e&&o(t(e,","),function(e){var r=n.exec(e),i,s;r&&(s=r[1],i=s?y[r[2]]:y[r[2]]={"#comment":{}},i=y[r[2]],o(t(r[3],"|"),function(e){"-"===s?(y[r[2]]=i=a({},y[r[2]]),delete i[e]):i[e]={}}))})}function m(e){var t=v[e],n;if(t)return t;for(n=b.length;n--;)if(t=b[n],t.pattern.test(e))return t}var g=this,v={},y={},b=[],C,x,w,_,N,E,S,k,T,R={},A={};e=e||{},x=n(e.schema),e.verify_html===!1&&(e.valid_elements="*[*]"),e.valid_styles&&(C={},o(e.valid_styles,function(e,t){C[t]=s(e)})),w=c("whitespace_elements","pre script noscript style textarea video audio iframe object"),_=c("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),N=c("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),E=c("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),k=c("non_empty_elements","td th iframe video audio object script",N),T=c("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),S=c("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup",T),o((e.special||"script noscript style textarea").split(" "),function(e){A[e]=new RegExp("</"+e+"[^>]*>","gi")}),e.valid_elements?f(e.valid_elements):(o(x,function(e,t){v[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},y[t]=e.children}),"html5"!=e.schema&&o(t("strong/b em/i"),function(e){e=t(e,"/"),v[e[1]].outputName=e[0]}),v.img.attributesDefault=[{name:"alt",value:""}],o(t("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(e){v[e]&&(v[e].removeEmpty=!0)}),o(t("p h1 h2 h3 h4 h5 h6 th td pre div address caption"),function(e){v[e].paddEmpty=!0}),o(t("span"),function(e){v[e].removeEmptyAttrs=!0})),p(e.custom_elements),h(e.valid_children),d(e.extended_valid_elements),h("+ol[ul|ol],+ul[ul|ol]"),e.invalid_elements&&o(s(e.invalid_elements),function(e){v[e]&&delete v[e]}),m("span")||d("span[!data-mce-type|*]"),g.children=y,g.styles=C,g.getBoolAttrs=function(){return E},g.getBlockElements=function(){return S},g.getTextBlockElements=function(){return T},g.getShortEndedElements=function(){return N},g.getSelfClosingElements=function(){return _},g.getNonEmptyElements=function(){return k},g.getWhiteSpaceElements=function(){return w},g.getSpecialElements=function(){return A},g.isValidChild=function(e,t){var n=y[e];return!(!n||!n[t])},g.isValid=function(e,t){var n,r,i=m(e);if(i){if(!t)return!0;if(i.attributes[t])return!0;if(n=i.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},g.getElementRule=m,g.getCustomElements=function(){return R},g.addValidElements=d,g.setValidElements=f,g.addCustomElements=p,g.addValidChildren=h,g.elements=v}}),r(_,[w,m,p],function(e,t,n){var r=n.each;return function(i,o){function a(){}var s=this;i=i||{},s.schema=o=o||new e,i.fix_self_closing!==!1&&(i.fix_self_closing=!0),r("comment cdata text start end pi doctype".split(" "),function(e){e&&(s[e]=i[e]||a)}),s.parse=function(e){function r(e){var t,n;for(t=f.length;t--&&f[t].name!==e;);if(t>=0){for(n=f.length-1;n>=t;n--)e=f[n],e.valid&&s.end(e.name);f.length=t}}function a(e,t,n,r,o){var a,s,l=/[\s\u0000-\u001F]+/g;if(t=t.toLowerCase(),n=t in C?t:F(n||r||o||""),w&&!v&&0!==t.indexOf("data-")){if(a=k[t],!a&&T){for(s=T.length;s--&&(a=T[s],!a.pattern.test(t)););-1===s&&(a=null)}if(!a)return;if(a.validValues&&!(n in a.validValues))return}if(W[t]&&!i.allow_script_urls){var c=n.replace(l,"");try{c=decodeURIComponent(c)}catch(u){c=unescape(c)}if(V.test(c))return;if(!i.allow_html_data_urls&&U.test(c)&&!/^data:image\//i.test(c))return}p.map[t]=n,p.push({name:t,value:n})}var s=this,l,c=0,u,d,f=[],p,h,m,g,v,y,b,C,x,w,_,N,E,S,k,T,R,A,B,D,L,M,H,P,O,I=0,F=t.decode,z,W=n.makeMap("src,href,data,background,formaction,poster"),V=/((java|vb)script|mhtml):/i,U=/^data:/i;for(M=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-\\:\\.]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g"),H=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,b=o.getShortEndedElements(),L=i.self_closing_elements||o.getSelfClosingElements(),C=o.getBoolAttrs(),w=i.validate,y=i.remove_internals,z=i.fix_self_closing,P=o.getSpecialElements();l=M.exec(e);){if(c<l.index&&s.text(F(e.substr(c,l.index-c))),u=l[6])u=u.toLowerCase(),":"===u.charAt(0)&&(u=u.substr(1)),r(u);else if(u=l[7]){if(u=u.toLowerCase(),":"===u.charAt(0)&&(u=u.substr(1)),x=u in b,z&&L[u]&&f.length>0&&f[f.length-1].name===u&&r(u),!w||(_=o.getElementRule(u))){if(N=!0,w&&(k=_.attributes,T=_.attributePatterns),(S=l[8])?(v=-1!==S.indexOf("data-mce-type"),v&&y&&(N=!1),p=[],p.map={},S.replace(H,a)):(p=[],p.map={}),w&&!v){if(R=_.attributesRequired,A=_.attributesDefault,B=_.attributesForced,D=_.removeEmptyAttrs,D&&!p.length&&(N=!1),B)for(h=B.length;h--;)E=B[h],g=E.name,O=E.value,"{$uid}"===O&&(O="mce_"+I++),p.map[g]=O,p.push({name:g,value:O});if(A)for(h=A.length;h--;)E=A[h],g=E.name,g in p.map||(O=E.value,"{$uid}"===O&&(O="mce_"+I++),p.map[g]=O,p.push({name:g,value:O}));if(R){for(h=R.length;h--&&!(R[h]in p.map););-1===h&&(N=!1)}p.map["data-mce-bogus"]&&(N=!1)}N&&s.start(u,p,x)}else N=!1;if(d=P[u]){d.lastIndex=c=l.index+l[0].length,(l=d.exec(e))?(N&&(m=e.substr(c,l.index-c)),c=l.index+l[0].length):(m=e.substr(c),c=e.length),N&&(m.length>0&&s.text(m,!0),s.end(u)),M.lastIndex=c;continue}x||(S&&S.indexOf("/")==S.length-1?N&&s.end(u):f.push({name:u,valid:N}))}else(u=l[1])?(">"===u.charAt(0)&&(u=" "+u),i.allow_conditional_comments||"[if"!==u.substr(0,3)||(u=" "+u),s.comment(u)):(u=l[2])?s.cdata(u):(u=l[3])?s.doctype(u):(u=l[4])&&s.pi(u,l[5]);c=l.index+l[0].length}for(c<e.length&&s.text(F(e.substr(c))),h=f.length-1;h>=0;h--)u=f[h],u.valid&&s.end(u.name)}}}),r(N,[x,w,_,p],function(e,t,n,r){var i=r.makeMap,o=r.each,a=r.explode,s=r.extend;return function(r,l){function c(t){var n,r,o,a,s,c,d,f,p,h,m,g,v,y;for(m=i("tr,td,th,tbody,thead,tfoot,table"),h=l.getNonEmptyElements(),g=l.getTextBlockElements(),n=0;n<t.length;n++)if(r=t[n],r.parent&&!r.fixed)if(g[r.name]&&"li"==r.parent.name){for(v=r.next;v&&g[v.name];)v.name="li",v.fixed=!0,r.parent.insert(v,r.parent),v=v.next;r.unwrap(r)}else{for(a=[r],o=r.parent;o&&!l.isValidChild(o.name,r.name)&&!m[o.name];o=o.parent)a.push(o);if(o&&a.length>1){for(a.reverse(),s=c=u.filterNode(a[0].clone()),p=0;p<a.length-1;p++){for(l.isValidChild(c.name,a[p].name)?(d=u.filterNode(a[p].clone()),c.append(d)):d=c,f=a[p].firstChild;f&&f!=a[p+1];)y=f.next,d.append(f),f=y;c=d}s.isEmpty(h)?o.insert(r,a[0],!0):(o.insert(s,a[0],!0),o.insert(r,s)),o=a[0],(o.isEmpty(h)||o.firstChild===o.lastChild&&"br"===o.firstChild.name)&&o.empty().remove()}else if(r.parent){if("li"===r.name){if(v=r.prev,v&&("ul"===v.name||"ul"===v.name)){v.append(r);continue}if(v=r.next,v&&("ul"===v.name||"ul"===v.name)){v.insert(r,v.firstChild,!0);continue}r.wrap(u.filterNode(new e("ul",1)));continue}l.isValidChild(r.parent.name,"div")&&l.isValidChild("div",r.name)?r.wrap(u.filterNode(new e("div",1))):"style"===r.name||"script"===r.name?r.empty().remove():r.unwrap()}}}var u=this,d={},f=[],p={},h={};r=r||{},r.validate="validate"in r?r.validate:!0,r.root_name=r.root_name||"body",u.schema=l=l||new t,u.filterNode=function(e){var t,n,r;n in d&&(r=p[n],r?r.push(e):p[n]=[e]),t=f.length;for(;t--;)n=f[t].name,n in e.attributes.map&&(r=h[n],r?r.push(e):h[n]=[e]);return e},u.addNodeFilter=function(e,t){o(a(e),function(e){var n=d[e];n||(d[e]=n=[]),n.push(t)})},u.addAttributeFilter=function(e,t){o(a(e),function(e){var n;for(n=0;n<f.length;n++)if(f[n].name===e)return void f[n].callbacks.push(t);f.push({name:e,callbacks:[t]})})},u.parse=function(t,o){function a(){function e(e){e&&(t=e.firstChild,t&&3==t.type&&(t.value=t.value.replace(R,"")),t=e.lastChild,t&&3==t.type&&(t.value=t.value.replace(D,"")))}var t=y.firstChild,n,i;if(l.isValidChild(y.name,I.toLowerCase())){for(;t;)n=t.next,3==t.type||1==t.type&&"p"!==t.name&&!T[t.name]&&!t.attr("data-mce-type")?i?i.append(t):(i=u(I,1),i.attr(r.forced_root_block_attrs),y.insert(i,t),i.append(t)):(e(i),i=null),t=n;e(i)}}function u(t,n){var r=new e(t,n),i;return t in d&&(i=p[t],i?i.push(r):p[t]=[r]),r}function m(e){var t,n,r;for(t=e.prev;t&&3===t.type;)n=t.value.replace(D,""),n.length>0?(t.value=n,t=t.prev):(r=t.prev,t.remove(),t=r)}function g(e){var t,n={};for(t in e)"li"!==t&&"p"!=t&&(n[t]=e[t]);return n}var v,y,b,C,x,w,_,N,E,S,k,T,R,A=[],B,D,L,M,H,P,O,I;if(o=o||{},p={},h={},T=s(i("script,style,head,html,body,title,meta,param"),l.getBlockElements()),O=l.getNonEmptyElements(),P=l.children,k=r.validate,I="forced_root_block"in o?o.forced_root_block:r.forced_root_block,H=l.getWhiteSpaceElements(),R=/^[ \t\r\n]+/,D=/[ \t\r\n]+$/,L=/[ \t\r\n]+/g,M=/^[ \t\r\n]+$/,v=new n({validate:k,allow_script_urls:r.allow_script_urls,allow_conditional_comments:r.allow_conditional_comments,self_closing_elements:g(l.getSelfClosingElements()),cdata:function(e){b.append(u("#cdata",4)).value=e},text:function(e,t){var n;B||(e=e.replace(L," "),b.lastChild&&T[b.lastChild.name]&&(e=e.replace(R,""))),0!==e.length&&(n=u("#text",3),n.raw=!!t,b.append(n).value=e)},comment:function(e){b.append(u("#comment",8)).value=e},pi:function(e,t){b.append(u(e,7)).value=t,m(b)},doctype:function(e){var t;t=b.append(u("#doctype",10)),t.value=e,m(b)},start:function(e,t,n){var r,i,o,a,s;if(o=k?l.getElementRule(e):{}){for(r=u(o.outputName||e,1),r.attributes=t,r.shortEnded=n,b.append(r),s=P[b.name],s&&P[r.name]&&!s[r.name]&&A.push(r),i=f.length;i--;)a=f[i].name,a in t.map&&(E=h[a],E?E.push(r):h[a]=[r]);T[e]&&m(r),n||(b=r),!B&&H[e]&&(B=!0)}},end:function(t){var n,r,i,o,a;if(r=k?l.getElementRule(t):{}){if(T[t]&&!B){if(n=b.firstChild,n&&3===n.type)if(i=n.value.replace(R,""),i.length>0)n.value=i,n=n.next;else for(o=n.next,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.next,(0===i.length||M.test(i))&&(n.remove(),n=o),n=o;if(n=b.lastChild,n&&3===n.type)if(i=n.value.replace(D,""),i.length>0)n.value=i,n=n.prev;else for(o=n.prev,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.prev,(0===i.length||M.test(i))&&(n.remove(),n=o),n=o}if(B&&H[t]&&(B=!1),(r.removeEmpty||r.paddEmpty)&&b.isEmpty(O))if(r.paddEmpty)b.empty().append(new e("#text","3")).value="\xa0";else if(!b.attributes.map.name&&!b.attributes.map.id)return a=b.parent,b.empty().remove(),void(b=a);b=b.parent}}},l),y=b=new e(o.context||r.root_name,11),v.parse(t),k&&A.length&&(o.context?o.invalid=!0:c(A)),I&&("body"==y.name||o.isRootContent)&&a(),!o.invalid){for(S in p){for(E=d[S],C=p[S],_=C.length;_--;)C[_].parent||C.splice(_,1);for(x=0,w=E.length;w>x;x++)E[x](C,S,o)}for(x=0,w=f.length;w>x;x++)if(E=f[x],E.name in h){for(C=h[E.name],_=C.length;_--;)C[_].parent||C.splice(_,1);for(_=0,N=E.callbacks.length;N>_;_++)E.callbacks[_](C,E.name,o)}}return y},r.remove_trailing_brs&&u.addNodeFilter("br",function(t){var n,r=t.length,i,o=s({},l.getBlockElements()),a=l.getNonEmptyElements(),c,u,d,f,p,h;for(o.body=1,n=0;r>n;n++)if(i=t[n],c=i.parent,o[i.parent.name]&&i===c.lastChild){for(d=i.prev;d;){if(f=d.name,"span"!==f||"bookmark"!==d.attr("data-mce-type")){if("br"!==f)break;if("br"===f){i=null;break}}d=d.prev}i&&(i.remove(),c.isEmpty(a)&&(p=l.getElementRule(c.name),p&&(p.removeEmpty?c.remove():p.paddEmpty&&(c.empty().append(new e("#text",3)).value="\xa0"))))}else{for(u=i;c&&c.firstChild===u&&c.lastChild===u&&(u=c,!o[c.name]);)c=c.parent;u===c&&(h=new e("#text",3),h.value="\xa0",i.replace(h))}}),r.allow_html_in_named_anchor||u.addAttributeFilter("id,name",function(e){for(var t=e.length,n,r,i,o;t--;)if(o=e[t],"a"===o.name&&o.firstChild&&!o.attr("href")){i=o.parent,n=o.lastChild;do r=n.prev,i.insert(n,o),n=r;while(n)}})}}),r(E,[m,p],function(e,t){var n=t.makeMap;return function(t){var r=[],i,o,a,s,l;return t=t||{},i=t.indent,o=n(t.indent_before||""),a=n(t.indent_after||""),s=e.getEncodeFunc(t.entity_encoding||"raw",t.entities),l="html"==t.element_format,{start:function(e,t,n){var c,u,d,f;if(i&&o[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n")),r.push("<",e),t)for(c=0,u=t.length;u>c;c++)d=t[c],r.push(" ",d.name,'="',s(d.value,!0),'"');r[r.length]=!n||l?">":" />",n&&i&&a[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n"))},end:function(e){var t;r.push("</",e,">"),i&&a[e]&&r.length>0&&(t=r[r.length-1],t.length>0&&"\n"!==t&&r.push("\n"))},text:function(e,t){e.length>0&&(r[r.length]=t?e:s(e))},cdata:function(e){r.push("<![CDATA[",e,"]]>")},comment:function(e){r.push("<!--",e,"-->")},pi:function(e,t){t?r.push("<?",e," ",t,"?>"):r.push("<?",e,"?>"),i&&r.push("\n")},doctype:function(e){r.push("<!DOCTYPE",e,">",i?"\n":"")},reset:function(){r.length=0},getContent:function(){return r.join("").replace(/\n$/,"")}}}}),r(S,[E,w],function(e,t){return function(n,r){var i=this,o=new e(n);n=n||{},n.validate="validate"in n?n.validate:!0,i.schema=r=r||new t,i.writer=o,i.serialize=function(e){function t(e){var n=i[e.type],s,l,c,u,d,f,p,h,m;if(n)n(e);else{if(s=e.name,l=e.shortEnded,c=e.attributes,a&&c&&c.length>1){for(f=[],f.map={},m=r.getElementRule(e.name),p=0,h=m.attributesOrder.length;h>p;p++)u=m.attributesOrder[p],u in c.map&&(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));for(p=0,h=c.length;h>p;p++)u=c[p].name,u in f.map||(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));c=f}if(o.start(e.name,c,l),!l){if(e=e.firstChild)do t(e);while(e=e.next);o.end(s)}}}var i,a;return a=n.validate,i={3:function(e){o.text(e.value,e.raw)},8:function(e){o.comment(e.value)},7:function(e){o.pi(e.name,e.value)},10:function(e){o.doctype(e.value)},4:function(e){o.cdata(e.value)},11:function(e){if(e=e.firstChild)do t(e);while(e=e.next)}},o.reset(),1!=e.type||n.inner?i[11](e):t(e),o.getContent()}}}),r(k,[y,N,m,S,x,w,g,p],function(e,t,n,r,i,o,a,s){var l=s.each,c=s.trim,u=e.DOM;return function(e,i){var s,d,f;return i&&(s=i.dom,d=i.schema),s=s||u,d=d||new o(e),e.entity_encoding=e.entity_encoding||"named",e.remove_trailing_brs="remove_trailing_brs"in e?e.remove_trailing_brs:!0,f=new t(e,d),f.addAttributeFilter("data-mce-tabindex",function(e,t){for(var n=e.length,r;n--;)r=e[n],r.attr("tabindex",r.attributes.map["data-mce-tabindex"]),r.attr(t,null)}),f.addAttributeFilter("src,href,style",function(t,n){for(var r=t.length,i,o,a="data-mce-"+n,l=e.url_converter,c=e.url_converter_scope,u;r--;)i=t[r],o=i.attributes.map[a],o!==u?(i.attr(n,o.length>0?o:null),i.attr(a,null)):(o=i.attributes.map[n],"style"===n?o=s.serializeStyle(s.parseStyle(o),i.name):l&&(o=l.call(c,o,n,i.name)),i.attr(n,o.length>0?o:null))}),f.addAttributeFilter("class",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),n.attr("class",r.length>0?r:null)}),f.addAttributeFilter("data-mce-type",function(e,t,n){for(var r=e.length,i;r--;)i=e[r],"bookmark"!==i.attributes.map["data-mce-type"]||n.cleanup||i.remove()}),f.addAttributeFilter("data-mce-expando",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),f.addNodeFilter("noscript",function(e){for(var t=e.length,r;t--;)r=e[t].firstChild,r&&(r.value=n.decode(r.value))}),f.addNodeFilter("script,style",function(e,t){function n(e){return e.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}for(var r=e.length,i,o;r--;)if(i=e[r],o=i.firstChild?i.firstChild.value:"","script"===t){var a=(i.attr("type")||"text/javascript").replace(/^mce\-/,"");i.attr("type","text/javascript"===a?null:a),o.length>0&&(i.firstChild.value="// <![CDATA[\n"+n(o)+"\n// ]]>")}else o.length>0&&(i.firstChild.value="<!--\n"+n(o)+"\n-->")}),f.addNodeFilter("#comment",function(e){for(var t=e.length,n;t--;)n=e[t],0===n.value.indexOf("[CDATA[")?(n.name="#cdata",n.type=4,n.value=n.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===n.value.indexOf("mce:protected ")&&(n.name="#text",n.type=3,n.raw=!0,n.value=unescape(n.value).substr(14))}),f.addNodeFilter("xml:namespace,input",function(e,t){for(var n=e.length,r;n--;)r=e[n],7===r.type?r.remove():1===r.type&&("input"!==t||"type"in r.attributes.map||r.attr("type","text"))}),e.fix_list_elements&&f.addNodeFilter("ul,ol",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.parent,("ul"===r.name||"ol"===r.name)&&n.prev&&"li"===n.prev.name&&n.prev.append(n)}),f.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),{schema:d,addNodeFilter:f.addNodeFilter,addAttributeFilter:f.addAttributeFilter,serialize:function(t,n){var i=this,o,u,p,h,m;return a.ie&&s.select("script,style,select,map").length>0?(m=t.innerHTML,t=t.cloneNode(!1),s.setHTML(t,m)):t=t.cloneNode(!0),o=t.ownerDocument.implementation,o.createHTMLDocument&&(u=o.createHTMLDocument(""),l("BODY"==t.nodeName?t.childNodes:[t],function(e){u.body.appendChild(u.importNode(e,!0))}),t="BODY"!=t.nodeName?u.body.firstChild:u.body,p=s.doc,s.doc=u),n=n||{},n.format=n.format||"html",n.selection&&(n.forced_root_block=""),n.no_events||(n.node=t,i.onPreProcess(n)),h=new r(e,d),n.content=h.serialize(f.parse(c(n.getInner?t.innerHTML:s.getOuterHTML(t)),n)),n.cleanup||(n.content=n.content.replace(/\uFEFF/g,"")),n.no_events||i.onPostProcess(n),p&&(s.doc=p),n.node=null,n.content},addRules:function(e){d.addValidElements(e)},setRules:function(e){d.setValidElements(e)},onPreProcess:function(e){i&&i.fire("PreProcess",e)},onPostProcess:function(e){i&&i.fire("PostProcess",e)}}}}),r(T,[],function(){function e(e){function t(t,n){var r,i=0,o,a,s,l,c,u,d=-1,f;if(r=t.duplicate(),r.collapse(n),f=r.parentElement(),f.ownerDocument===e.dom.doc){for(;"false"===f.contentEditable;)f=f.parentNode;
-if(!f.hasChildNodes())return{node:f,inside:1};for(s=f.children,o=s.length-1;o>=i;)if(u=Math.floor((i+o)/2),l=s[u],r.moveToElementText(l),d=r.compareEndPoints(n?"StartToStart":"EndToEnd",t),d>0)o=u-1;else{if(!(0>d))return{node:l};i=u+1}if(0>d)for(l?r.collapse(!1):(r.moveToElementText(f),r.collapse(!0),l=f,a=!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",1)&&f==r.parentElement();)c++;else for(r.collapse(!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",-1)&&f==r.parentElement();)c++;return{node:l,position:d,offset:c,inside:a}}}function n(){function n(e){var n=t(o,e),r,i,s=0,l,c,u;if(r=n.node,i=n.offset,n.inside&&!r.hasChildNodes())return void a[e?"setStart":"setEnd"](r,0);if(i===c)return void a[e?"setStartBefore":"setEndAfter"](r);if(n.position<0){if(l=n.inside?r.firstChild:r.nextSibling,!l)return void a[e?"setStartAfter":"setEndAfter"](r);if(!i)return void(3==l.nodeType?a[e?"setStart":"setEnd"](l,0):a[e?"setStartBefore":"setEndBefore"](l));for(;l;){if(u=l.nodeValue,s+=u.length,s>=i){r=l,s-=i,s=u.length-s;break}l=l.nextSibling}}else{if(l=r.previousSibling,!l)return a[e?"setStartBefore":"setEndBefore"](r);if(!i)return void(3==r.nodeType?a[e?"setStart":"setEnd"](l,r.nodeValue.length):a[e?"setStartAfter":"setEndAfter"](l));for(;l;){if(s+=l.nodeValue.length,s>=i){r=l,s-=i;break}l=l.previousSibling}}a[e?"setStart":"setEnd"](r,s)}var o=e.getRng(),a=i.createRng(),s,l,c,u,d;if(s=o.item?o.item(0):o.parentElement(),s.ownerDocument!=i.doc)return a;if(l=e.isCollapsed(),o.item)return a.setStart(s.parentNode,i.nodeIndex(s)),a.setEnd(a.startContainer,a.startOffset+1),a;try{n(!0),l||n()}catch(f){if(-2147024809!=f.number)throw f;d=r.getBookmark(2),c=o.duplicate(),c.collapse(!0),s=c.parentElement(),l||(c=o.duplicate(),c.collapse(!1),u=c.parentElement(),u.innerHTML=u.innerHTML),s.innerHTML=s.innerHTML,r.moveToBookmark(d),o=e.getRng(),n(!0),l||n()}return a}var r=this,i=e.dom,o=!1;this.getBookmark=function(n){function r(e){var t,n,r,o,a=[];for(t=e.parentNode,n=i.getRoot().parentNode;t!=n&&9!==t.nodeType;){for(r=t.children,o=r.length;o--;)if(e===r[o]){a.push(o);break}e=t,t=t.parentNode}return a}function o(e){var n;return n=t(a,e),n?{position:n.position,offset:n.offset,indexes:r(n.node),inside:n.inside}:void 0}var a=e.getRng(),s={};return 2===n&&(a.item?s.start={ctrl:!0,indexes:r(a.item(0))}:(s.start=o(!0),e.isCollapsed()||(s.end=o()))),s},this.moveToBookmark=function(e){function t(e){var t,n,r,o;for(t=i.getRoot(),n=e.length-1;n>=0;n--)o=t.children,r=e[n],r<=o.length-1&&(t=o[r]);return t}function n(n){var i=e[n?"start":"end"],a,s,l,c;i&&(a=i.position>0,s=o.createTextRange(),s.moveToElementText(t(i.indexes)),c=i.offset,c!==l?(s.collapse(i.inside||a),s.moveStart("character",a?-c:c)):s.collapse(n),r.setEndPoint(n?"StartToStart":"EndToStart",s),n&&r.collapse(!0))}var r,o=i.doc.body;e.start&&(e.start.ctrl?(r=o.createControlRange(),r.addElement(t(e.start.indexes)),r.select()):(r=o.createTextRange(),n(!0),n(),r.select()))},this.addRange=function(t){function n(e){var t,n,a,d,h;a=i.create("a"),t=e?s:c,n=e?l:u,d=r.duplicate(),(t==f||t==f.documentElement)&&(t=p,n=0),3==t.nodeType?(t.parentNode.insertBefore(a,t),d.moveToElementText(a),d.moveStart("character",n),i.remove(a),r.setEndPoint(e?"StartToStart":"EndToEnd",d)):(h=t.childNodes,h.length?(n>=h.length?i.insertAfter(a,h[h.length-1]):t.insertBefore(a,h[n]),d.moveToElementText(a)):t.canHaveHTML&&(t.innerHTML="<span>&#xFEFF;</span>",a=t.firstChild,d.moveToElementText(a),d.collapse(o)),r.setEndPoint(e?"StartToStart":"EndToEnd",d),i.remove(a))}var r,a,s,l,c,u,d,f=e.dom.doc,p=f.body,h,m;if(s=t.startContainer,l=t.startOffset,c=t.endContainer,u=t.endOffset,r=p.createTextRange(),s==c&&1==s.nodeType){if(l==u&&!s.hasChildNodes()){if(s.canHaveHTML)return d=s.previousSibling,d&&!d.hasChildNodes()&&i.isBlock(d)?d.innerHTML="&#xFEFF;":d=null,s.innerHTML="<span>&#xFEFF;</span><span>&#xFEFF;</span>",r.moveToElementText(s.lastChild),r.select(),i.doc.selection.clear(),s.innerHTML="",void(d&&(d.innerHTML=""));l=i.nodeIndex(s),s=s.parentNode}if(l==u-1)try{if(m=s.childNodes[l],a=p.createControlRange(),a.addElement(m),a.select(),h=e.getRng(),h.item&&m===h.item(0))return}catch(g){}}n(!0),n(),r.select()},this.getRangeAt=n}return e}),r(R,[g],function(e){return{BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(e){return e.shiftKey||e.ctrlKey||e.altKey},metaKeyPressed:function(t){return(e.mac?t.metaKey:t.ctrlKey)&&!t.altKey}}}),r(A,[R,p,g],function(e,t,n){return function(r,i){function o(e){var t=i.settings.object_resizing;return t===!1||n.iOS?!1:("string"!=typeof t&&(t="table,img,div"),"false"===e.getAttribute("data-mce-resize")?!1:i.dom.is(e,t))}function a(t){var n,r;n=t.screenX-k,r=t.screenY-T,H=n*E[2]+B,P=r*E[3]+D,H=5>H?5:H,P=5>P?5:P,(e.modifierPressed(t)||"IMG"==w.nodeName&&E[2]*E[3]!==0)&&(H=Math.round(P/L),P=Math.round(H*L)),C.setStyles(_,{width:H,height:P}),E[2]<0&&_.clientWidth<=H&&C.setStyle(_,"left",R+(B-H)),E[3]<0&&_.clientHeight<=P&&C.setStyle(_,"top",A+(D-P)),M||(i.fire("ObjectResizeStart",{target:w,width:B,height:D}),M=!0)}function s(){function e(e,t){t&&(w.style[e]||!i.schema.isValid(w.nodeName.toLowerCase(),e)?C.setStyle(w,e,t):C.setAttrib(w,e,t))}M=!1,e("width",H),e("height",P),C.unbind(O,"mousemove",a),C.unbind(O,"mouseup",s),I!=O&&(C.unbind(I,"mousemove",a),C.unbind(I,"mouseup",s)),C.remove(_),F&&"TABLE"!=w.nodeName||l(w),i.fire("ObjectResized",{target:w,width:H,height:P}),i.nodeChanged()}function l(e,t,r){var l,u,d,f,p,h=i.getBody();g(),l=C.getPos(e,h),R=l.x,A=l.y,p=e.getBoundingClientRect(),u=p.width||p.right-p.left,d=p.height||p.bottom-p.top,w!=e&&(m(),w=e,H=P=0),f=i.fire("ObjectSelected",{target:e}),o(e)&&!f.isDefaultPrevented()?x(N,function(e,o){function l(t){k=t.screenX,T=t.screenY,B=w.clientWidth,D=w.clientHeight,L=D/B,E=e,_=w.cloneNode(!0),C.addClass(_,"mce-clonedresizable"),_.contentEditable=!1,_.unSelectabe=!0,C.setStyles(_,{left:R,top:A,margin:0}),_.removeAttribute("data-mce-selected"),i.getBody().appendChild(_),C.bind(O,"mousemove",a),C.bind(O,"mouseup",s),I!=O&&(C.bind(I,"mousemove",a),C.bind(I,"mouseup",s))}var c,f;return t?void(o==t&&l(r)):(c=C.get("mceResizeHandle"+o),c?C.show(c):(f=i.getBody(),c=C.add(f,"div",{id:"mceResizeHandle"+o,"data-mce-bogus":!0,"class":"mce-resizehandle",unselectable:!0,style:"cursor:"+o+"-resize; margin:0; padding:0"}),n.ie&&(c.contentEditable=!1)),e.elm||(C.bind(c,"mousedown",function(e){e.stopImmediatePropagation(),e.preventDefault(),l(e)}),e.elm=c),void C.setStyles(c,{left:u*e[0]+R-c.offsetWidth/2,top:d*e[1]+A-c.offsetHeight/2}))}):c(),w.setAttribute("data-mce-selected","1")}function c(){var e,t;g(),w&&w.removeAttribute("data-mce-selected");for(e in N)t=C.get("mceResizeHandle"+e),t&&(C.unbind(t),C.remove(t))}function u(e){function t(e,t){if(e)do if(e===t)return!0;while(e=e.parentNode)}var n;return x(C.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),n="mousedown"==e.type?e.target:r.getNode(),n=C.getParent(n,F?"table":"table,img,hr"),t(n,i.getBody())&&(v(),t(r.getStart(),n)&&t(r.getEnd(),n)&&(!F||n!=r.getStart()&&"IMG"!==r.getStart().nodeName))?void l(n):void c()}function d(e,t,n){e&&e.attachEvent&&e.attachEvent("on"+t,n)}function f(e,t,n){e&&e.detachEvent&&e.detachEvent("on"+t,n)}function p(e){var t=e.srcElement,n,r,o,a,s,c,u;n=t.getBoundingClientRect(),c=S.clientX-n.left,u=S.clientY-n.top;for(r in N)if(o=N[r],a=t.offsetWidth*o[0],s=t.offsetHeight*o[1],Math.abs(a-c)<8&&Math.abs(s-u)<8){E=o;break}M=!0,i.getDoc().selection.empty(),l(t,r,S)}function h(e){var t=e.srcElement;if(t!=w){if(m(),0===t.id.indexOf("mceResizeHandle"))return void(e.returnValue=!1);("IMG"==t.nodeName||"TABLE"==t.nodeName)&&(c(),w=t,d(t,"resizestart",p))}}function m(){f(w,"resizestart",p)}function g(){for(var e in N){var t=N[e];t.elm&&(C.unbind(t.elm),delete t.elm)}}function v(){try{i.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}}function y(e){var t;if(F){t=O.body.createControlRange();try{return t.addElement(e),t.select(),!0}catch(n){}}}function b(){w=_=null,F&&(m(),f(i.getBody(),"controlselect",h))}var C=i.dom,x=t.each,w,_,N,E,S,k,T,R,A,B,D,L,M,H,P,O=i.getDoc(),I=document,F=n.ie&&n.ie<11;N={n:[.5,0,0,-1],e:[1,.5,1,0],s:[.5,1,0,1],w:[0,.5,-1,0],nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var z=".mce-content-body";return i.contentStyles.push(z+" div.mce-resizehandle {position: absolute;border: 1px solid black;background: #FFF;width: 5px;height: 5px;z-index: 10000}"+z+" .mce-resizehandle:hover {background: #000}"+z+" img[data-mce-selected], hr[data-mce-selected] {outline: 1px solid black;resize: none}"+z+" .mce-clonedresizable {position: absolute;"+(n.gecko?"":"outline: 1px dashed black;")+"opacity: .5;filter: alpha(opacity=50);z-index: 10000}"),i.on("init",function(){F?(i.on("ObjectResized",function(e){"TABLE"!=e.target.nodeName&&(c(),y(e.target))}),d(i.getBody(),"controlselect",h),i.on("mousedown",function(e){S=e})):(v(),n.ie>=11&&(i.on("mouseup",function(e){var t=e.target.nodeName;/^(TABLE|IMG|HR)$/.test(t)&&(i.selection.select(e.target,"TABLE"==t),i.nodeChanged())}),i.dom.bind(i.getBody(),"mscontrolselect",function(e){/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"==e.target.tagName&&window.setTimeout(function(){i.selection.select(e.target)},0))}))),i.on("nodechange mousedown mouseup ResizeEditor",u),i.on("keydown keyup",function(e){w&&"TABLE"==w.nodeName&&u(e)}),i.on("hide",c)}),i.on("remove",g),{isResizable:o,showResizeRect:l,hideResizeRect:c,updateResizeRect:u,controlSelect:y,destroy:b}}}),r(B,[p,f],function(e,t){function n(e){this.walk=function(t,n){function i(e){var t;return t=e[0],3===t.nodeType&&t===l&&c>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===d&&e.length>0&&t===u&&3===t.nodeType&&e.splice(e.length-1,1),e}function o(e,t,n){for(var r=[];e&&e!=n;e=e[t])r.push(e);return r}function a(e,t){do{if(e.parentNode==t)return e;e=e.parentNode}while(e)}function s(e,t,r){var a=r?"nextSibling":"previousSibling";for(m=e,g=m.parentNode;m&&m!=t;m=g)g=m.parentNode,v=o(m==e?m:m[a],a),v.length&&(r||v.reverse(),n(i(v)))}var l=t.startContainer,c=t.startOffset,u=t.endContainer,d=t.endOffset,f,p,h,m,g,v,y;if(y=e.select("td.mce-item-selected,th.mce-item-selected"),y.length>0)return void r(y,function(e){n([e])});if(1==l.nodeType&&l.hasChildNodes()&&(l=l.childNodes[c]),1==u.nodeType&&u.hasChildNodes()&&(u=u.childNodes[Math.min(d-1,u.childNodes.length-1)]),l==u)return n(i([l]));for(f=e.findCommonAncestor(l,u),m=l;m;m=m.parentNode){if(m===u)return s(l,f,!0);if(m===f)break}for(m=u;m;m=m.parentNode){if(m===l)return s(u,f);if(m===f)break}p=a(l,f)||l,h=a(u,f)||u,s(l,p,!0),v=o(p==l?p:p.nextSibling,"nextSibling",h==u?h.nextSibling:h),v.length&&n(i(v)),s(u,h)},this.split=function(e){function t(e,t){return e.splitText(t)}var n=e.startContainer,r=e.startOffset,i=e.endContainer,o=e.endOffset;return n==i&&3==n.nodeType?r>0&&r<n.nodeValue.length&&(i=t(n,r),n=i.previousSibling,o>r?(o-=r,n=i=t(i,o).previousSibling,o=i.nodeValue.length,r=0):o=0):(3==n.nodeType&&r>0&&r<n.nodeValue.length&&(n=t(n,r),r=0),3==i.nodeType&&o>0&&o<i.nodeValue.length&&(i=t(i,o).previousSibling,o=i.nodeValue.length)),{startContainer:n,startOffset:r,endContainer:i,endOffset:o}},this.normalize=function(n){function r(r){function a(n,r){for(var i=new t(n,e.getParent(n.parentNode,e.isBlock)||f);n=i[r?"prev":"next"]();)if("BR"===n.nodeName)return!0}function s(e,t){return e.previousSibling&&e.previousSibling.nodeName==t}function l(n,r){var a,s,l;if(r=r||c,l=e.getParent(r.parentNode,e.isBlock)||f,n&&"BR"==r.nodeName&&g&&e.isEmpty(l))return c=r.parentNode,u=e.nodeIndex(r),void(i=!0);for(a=new t(r,l);p=a[n?"prev":"next"]();){if("false"===e.getContentEditableParent(p))return;if(3===p.nodeType&&p.nodeValue.length>0)return c=p,u=n?p.nodeValue.length:0,void(i=!0);if(e.isBlock(p)||h[p.nodeName.toLowerCase()])return;s=p}o&&s&&(c=s,i=!0,u=0)}var c,u,d,f=e.getRoot(),p,h,m,g;if(c=n[(r?"start":"end")+"Container"],u=n[(r?"start":"end")+"Offset"],g=1==c.nodeType&&u===c.childNodes.length,h=e.schema.getNonEmptyElements(),m=r,1==c.nodeType&&u>c.childNodes.length-1&&(m=!1),9===c.nodeType&&(c=e.getRoot(),u=0),c===f){if(m&&(p=c.childNodes[u>0?u-1:0],p&&(h[p.nodeName]||"TABLE"==p.nodeName)))return;if(c.hasChildNodes()&&(u=Math.min(!m&&u>0?u-1:u,c.childNodes.length-1),c=c.childNodes[u],u=0,c.hasChildNodes()&&!/TABLE/.test(c.nodeName))){p=c,d=new t(c,f);do{if(3===p.nodeType&&p.nodeValue.length>0){u=m?0:p.nodeValue.length,c=p,i=!0;break}if(h[p.nodeName.toLowerCase()]){u=e.nodeIndex(p),c=p.parentNode,"IMG"!=p.nodeName||m||u++,i=!0;break}}while(p=m?d.next():d.prev())}}o&&(3===c.nodeType&&0===u&&l(!0),1===c.nodeType&&(p=c.childNodes[u],p||(p=c.childNodes[u-1]),!p||"BR"!==p.nodeName||s(p,"A")||a(p)||a(p,!0)||l(!0,p))),m&&!o&&3===c.nodeType&&u===c.nodeValue.length&&l(!1),i&&n["set"+(r?"Start":"End")](c,u)}var i,o;return o=n.collapsed,r(!0),o||r(),i&&o&&n.collapse(!0),i}}var r=e.each;return n.compareRanges=function(e,t){if(e&&t){if(!e.item&&!e.duplicate)return e.startContainer==t.startContainer&&e.startOffset==t.startOffset;if(e.item&&t.item&&e.item(0)===t.item(0))return!0;if(e.isEqual&&t.isEqual&&t.isEqual(e))return!0}return!1},n}),r(D,[f,T,A,B,g,p],function(e,n,r,i,o,a){function s(e,t,i,o){var a=this;a.dom=e,a.win=t,a.serializer=i,a.editor=o,a.controlSelection=new r(a,o),a.win.getSelection||(a.tridentSel=new n(a))}var l=a.each,c=a.grep,u=a.trim,d=o.ie,f=o.opera;return s.prototype={setCursorLocation:function(e,t){var n=this,r=n.dom.createRng();e?(r.setStart(e,t),r.setEnd(e,t),n.setRng(r),n.collapse(!1)):(n._moveEndPoint(r,n.editor.getBody(),!0),n.setRng(r))},getContent:function(e){var n=this,r=n.getRng(),i=n.dom.create("body"),o=n.getSel(),a,s,l;return e=e||{},a=s="",e.get=!0,e.format=e.format||"html",e.selection=!0,n.editor.fire("BeforeGetContent",e),"text"==e.format?n.isCollapsed()?"":r.text||(o.toString?o.toString():""):(r.cloneContents?(l=r.cloneContents(),l&&i.appendChild(l)):r.item!==t||r.htmlText!==t?(i.innerHTML="<br>"+(r.item?r.item(0).outerHTML:r.htmlText),i.removeChild(i.firstChild)):i.innerHTML=r.toString(),/^\s/.test(i.innerHTML)&&(a=" "),/\s+$/.test(i.innerHTML)&&(s=" "),e.getInner=!0,e.content=n.isCollapsed()?"":a+n.serializer.serialize(i,e)+s,n.editor.fire("GetContent",e),e.content)},setContent:function(e,t){var n=this,r=n.getRng(),i,o=n.win.document,a,s;if(t=t||{format:"html"},t.set=!0,t.selection=!0,e=t.content=e,t.no_events||n.editor.fire("BeforeSetContent",t),e=t.content,r.insertNode){e+='<span id="__caret">_</span>',r.startContainer==o&&r.endContainer==o?o.body.innerHTML=e:(r.deleteContents(),0===o.body.childNodes.length?o.body.innerHTML=e:r.createContextualFragment?r.insertNode(r.createContextualFragment(e)):(a=o.createDocumentFragment(),s=o.createElement("div"),a.appendChild(s),s.outerHTML=e,r.insertNode(a))),i=n.dom.get("__caret"),r=o.createRange(),r.setStartBefore(i),r.setEndBefore(i),n.setRng(r),n.dom.remove("__caret");try{n.setRng(r)}catch(l){}}else r.item&&(o.execCommand("Delete",!1,null),r=n.getRng()),/^\s+/.test(e)?(r.pasteHTML('<span id="__mce_tmp">_</span>'+e),n.dom.remove("__mce_tmp")):r.pasteHTML(e);t.no_events||n.editor.fire("SetContent",t)},getStart:function(){var e=this,t=e.getRng(),n,r,i,o;if(t.duplicate||t.item){if(t.item)return t.item(0);for(i=t.duplicate(),i.collapse(1),n=i.parentElement(),n.ownerDocument!==e.dom.doc&&(n=e.dom.getRoot()),r=o=t.parentElement();o=o.parentNode;)if(o==n){n=r;break}return n}return n=t.startContainer,1==n.nodeType&&n.hasChildNodes()&&(n=n.childNodes[Math.min(n.childNodes.length-1,t.startOffset)]),n&&3==n.nodeType?n.parentNode:n},getEnd:function(){var e=this,t=e.getRng(),n,r;return t.duplicate||t.item?t.item?t.item(0):(t=t.duplicate(),t.collapse(0),n=t.parentElement(),n.ownerDocument!==e.dom.doc&&(n=e.dom.getRoot()),n&&"BODY"==n.nodeName?n.lastChild||n:n):(n=t.endContainer,r=t.endOffset,1==n.nodeType&&n.hasChildNodes()&&(n=n.childNodes[r>0?r-1:r]),n&&3==n.nodeType?n.parentNode:n)},getBookmark:function(e,t){function n(e,t){var n=0;return l(a.select(e),function(e,r){e==t&&(n=r)}),n}function r(e){function t(t){var n,r,i,o=t?"start":"end";n=e[o+"Container"],r=e[o+"Offset"],1==n.nodeType&&"TR"==n.nodeName&&(i=n.childNodes,n=i[Math.min(t?r:r-1,i.length-1)],n&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r)))}return t(!0),t(),e}function i(){function e(e,n){var i=e[n?"startContainer":"endContainer"],a=e[n?"startOffset":"endOffset"],s=[],l,c,u=0;if(3==i.nodeType){if(t)for(l=i.previousSibling;l&&3==l.nodeType;l=l.previousSibling)a+=l.nodeValue.length;s.push(a)}else c=i.childNodes,a>=c.length&&c.length&&(u=1,a=Math.max(0,c.length-1)),s.push(o.dom.nodeIndex(c[a],t)+u);for(;i&&i!=r;i=i.parentNode)s.push(o.dom.nodeIndex(i,t));return s}var n=o.getRng(!0),r=a.getRoot(),i={};return i.start=e(n,!0),o.isCollapsed()||(i.end=e(n)),i}var o=this,a=o.dom,s,c,u,d,f,p,h="&#xFEFF;",m;if(2==e)return p=o.getNode(),f=p?p.nodeName:null,"IMG"==f?{name:f,index:n(f,p)}:o.tridentSel?o.tridentSel.getBookmark(e):i();if(e)return{rng:o.getRng()};if(s=o.getRng(),u=a.uniqueId(),d=o.isCollapsed(),m="overflow:hidden;line-height:0px",s.duplicate||s.item){if(s.item)return p=s.item(0),f=p.nodeName,{name:f,index:n(f,p)};c=s.duplicate();try{s.collapse(),s.pasteHTML('<span data-mce-type="bookmark" id="'+u+'_start" style="'+m+'">'+h+"</span>"),d||(c.collapse(!1),s.moveToElementText(c.parentElement()),0===s.compareEndPoints("StartToEnd",c)&&c.move("character",-1),c.pasteHTML('<span data-mce-type="bookmark" id="'+u+'_end" style="'+m+'">'+h+"</span>"))}catch(g){return null}}else{if(p=o.getNode(),f=p.nodeName,"IMG"==f)return{name:f,index:n(f,p)};c=r(s.cloneRange()),d||(c.collapse(!1),c.insertNode(a.create("span",{"data-mce-type":"bookmark",id:u+"_end",style:m},h))),s=r(s),s.collapse(!0),s.insertNode(a.create("span",{"data-mce-type":"bookmark",id:u+"_start",style:m},h))}return o.moveToBookmark({id:u,keep:1}),{id:u}},moveToBookmark:function(e){function t(t){var n=e[t?"start":"end"],r,i,o,l;if(n){for(o=n[0],i=s,r=n.length-1;r>=1;r--){if(l=i.childNodes,n[r]>l.length-1)return;i=l[n[r]]}3===i.nodeType&&(o=Math.min(n[0],i.nodeValue.length)),1===i.nodeType&&(o=Math.min(n[0],i.childNodes.length)),t?a.setStart(i,o):a.setEnd(i,o)}return!0}function n(t){var n=o.get(e.id+"_"+t),r,i,a,s,d=e.keep;if(n&&(r=n.parentNode,"start"==t?(d?(r=n.firstChild,i=1):i=o.nodeIndex(n),u=p=r,h=m=i):(d?(r=n.firstChild,i=1):i=o.nodeIndex(n),p=r,m=i),!d)){for(s=n.previousSibling,a=n.nextSibling,l(c(n.childNodes),function(e){3==e.nodeType&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});n=o.get(e.id+"_"+t);)o.remove(n,1);s&&a&&s.nodeType==a.nodeType&&3==s.nodeType&&!f&&(i=s.nodeValue.length,s.appendData(a.nodeValue),o.remove(a),"start"==t?(u=p=s,h=m=i):(p=s,m=i))}}function r(e){return!o.isBlock(e)||e.innerHTML||d||(e.innerHTML='<br data-mce-bogus="1" />'),e}var i=this,o=i.dom,a,s,u,p,h,m;if(e)if(e.start){if(a=o.createRng(),s=o.getRoot(),i.tridentSel)return i.tridentSel.moveToBookmark(e);t(!0)&&t()&&i.setRng(a)}else e.id?(n("start"),n("end"),u&&(a=o.createRng(),a.setStart(r(u),h),a.setEnd(r(p),m),i.setRng(a))):e.name?i.select(o.select(e.name)[e.index]):e.rng&&i.setRng(e.rng)},select:function(e,t){var n=this,r=n.dom,i=r.createRng(),o;if(n.lastFocusBookmark=null,e){if(!t&&n.controlSelection.controlSelect(e))return;o=r.nodeIndex(e),i.setStart(e.parentNode,o),i.setEnd(e.parentNode,o+1),t&&(n._moveEndPoint(i,e,!0),n._moveEndPoint(i,e)),n.setRng(i)}return e},isCollapsed:function(){var e=this,t=e.getRng(),n=e.getSel();return!t||t.item?!1:t.compareEndPoints?0===t.compareEndPoints("StartToEnd",t):!n||t.collapsed},collapse:function(e){var t=this,n=t.getRng(),r;n.item&&(r=n.item(0),n=t.win.document.body.createTextRange(),n.moveToElementText(r)),n.collapse(!!e),t.setRng(n)},getSel:function(){var e=this.win;return e.getSelection?e.getSelection():e.document.selection},getRng:function(e){function t(e,t,n){try{return t.compareBoundaryPoints(e,n)}catch(r){return-1}}var n=this,r,i,o,a=n.win.document,s;if(!e&&n.lastFocusBookmark){var l=n.lastFocusBookmark;return l.startContainer?(i=a.createRange(),i.setStart(l.startContainer,l.startOffset),i.setEnd(l.endContainer,l.endOffset)):i=l,i}if(e&&n.tridentSel)return n.tridentSel.getRangeAt(0);try{(r=n.getSel())&&(i=r.rangeCount>0?r.getRangeAt(0):r.createRange?r.createRange():a.createRange())}catch(c){}if(d&&i&&i.setStart&&a.selection){try{s=a.selection.createRange()}catch(c){}s&&s.item&&(o=s.item(0),i=a.createRange(),i.setStartBefore(o),i.setEndAfter(o))}return i||(i=a.createRange?a.createRange():a.body.createTextRange()),i.setStart&&9===i.startContainer.nodeType&&i.collapsed&&(o=n.dom.getRoot(),i.setStart(o,0),i.setEnd(o,0)),n.selectedRange&&n.explicitRange&&(0===t(i.START_TO_START,i,n.selectedRange)&&0===t(i.END_TO_END,i,n.selectedRange)?i=n.explicitRange:(n.selectedRange=null,n.explicitRange=null)),i},setRng:function(e,t){var n=this,r;if(e.select)try{e.select()}catch(i){}else if(n.tridentSel){if(e.cloneRange)try{return void n.tridentSel.addRange(e)}catch(i){}}else if(r=n.getSel()){n.explicitRange=e;try{r.removeAllRanges(),r.addRange(e)}catch(i){}t===!1&&r.extend&&(r.collapse(e.endContainer,e.endOffset),r.extend(e.startContainer,e.startOffset)),n.selectedRange=r.rangeCount>0?r.getRangeAt(0):null}},setNode:function(e){var t=this;return t.setContent(t.dom.getOuterHTML(e)),e},getNode:function(){function e(e,t){for(var n=e;e&&3===e.nodeType&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n}var t=this,n=t.getRng(),r,i=n.startContainer,o=n.endContainer,a=n.startOffset,s=n.endOffset,l=t.dom.getRoot();return n?n.setStart?(r=n.commonAncestorContainer,!n.collapsed&&(i==o&&2>s-a&&i.hasChildNodes()&&(r=i.childNodes[a]),3===i.nodeType&&3===o.nodeType&&(i=i.length===a?e(i.nextSibling,!0):i.parentNode,o=0===s?e(o.previousSibling,!1):o.parentNode,i&&i===o))?i:r&&3==r.nodeType?r.parentNode:r):(r=n.item?n.item(0):n.parentElement(),r.ownerDocument!==t.win.document&&(r=l),r):l},getSelectedBlocks:function(t,n){var r=this,i=r.dom,o,a,s=[];if(a=i.getRoot(),t=i.getParent(t||r.getStart(),i.isBlock),n=i.getParent(n||r.getEnd(),i.isBlock),t&&t!=a&&s.push(t),t&&n&&t!=n){o=t;for(var l=new e(t,a);(o=l.next())&&o!=n;)i.isBlock(o)&&s.push(o)}return n&&t!=n&&n!=a&&s.push(n),s},isForward:function(){var e=this.dom,t=this.getSel(),n,r;return t&&t.anchorNode&&t.focusNode?(n=e.createRng(),n.setStart(t.anchorNode,t.anchorOffset),n.collapse(!0),r=e.createRng(),r.setStart(t.focusNode,t.focusOffset),r.collapse(!0),n.compareBoundaryPoints(n.START_TO_START,r)<=0):!0},normalize:function(){var e=this,t=e.getRng();return!d&&new i(e.dom).normalize(t)&&e.setRng(t,e.isForward()),t},selectorChanged:function(e,t){var n=this,r;return n.selectorChangedData||(n.selectorChangedData={},r={},n.editor.on("NodeChange",function(e){var t=e.element,i=n.dom,o=i.getParents(t,null,i.getRoot()),a={};l(n.selectorChangedData,function(e,t){l(o,function(n){return i.is(n,t)?(r[t]||(l(e,function(e){e(!0,{node:n,selector:t,parents:o})}),r[t]=e),a[t]=e,!1):void 0})}),l(r,function(e,n){a[n]||(delete r[n],l(e,function(e){e(!1,{node:t,selector:n,parents:o})}))})})),n.selectorChangedData[e]||(n.selectorChangedData[e]=[]),n.selectorChangedData[e].push(t),n},getScrollContainer:function(){for(var e,t=this.dom.getRoot();t&&"BODY"!=t.nodeName;){if(t.scrollHeight>t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e){function t(e){for(var t=0,n=0,r=e;r&&r.nodeType;)t+=r.offsetLeft||0,n+=r.offsetTop||0,r=r.offsetParent;return{x:t,y:n}}var n,r,i=this,o=i.dom,a=o.getRoot(),s,l;if("BODY"!=a.nodeName){var c=i.getScrollContainer();if(c)return n=t(e).y-t(c).y,l=c.clientHeight,s=c.scrollTop,void((s>n||n+25>s+l)&&(c.scrollTop=s>n?n:n-l+25))}r=o.getViewPort(i.editor.getWin()),n=o.getPos(e).y,s=r.y,l=r.h,(n<r.y||n+25>s+l)&&i.editor.getWin().scrollTo(0,s>n?n:n-l+25)},_moveEndPoint:function(t,n,r){var i=n,a=new e(n,i),s=this.dom.schema.getNonEmptyElements();do{if(3==n.nodeType&&0!==u(n.nodeValue).length)return void(r?t.setStart(n,0):t.setEnd(n,n.nodeValue.length));if(s[n.nodeName])return void(r?t.setStartBefore(n):"BR"==n.nodeName?t.setEndBefore(n):t.setEndAfter(n));if(o.ie&&o.ie<11&&this.dom.isBlock(n)&&this.dom.isEmpty(n))return void(r?t.setStart(n,0):t.setEnd(n,0))}while(n=r?a.next():a.prev());"BODY"==i.nodeName&&(r?t.setStart(i,0):t.setEnd(i,i.childNodes.length))},destroy:function(){this.win=null,this.controlSelection.destroy()}},s}),r(L,[p],function(e){function t(e,t){function r(e){return e.replace(/%(\w+)/g,"")}var i,o,a=e.dom,s="",l,c;if(c=e.settings.preview_styles,c===!1)return"";if(c||(c="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"),"string"==typeof t){if(t=e.formatter.get(t),!t)return;t=t[0]}return i=t.block||t.inline||"span",o=a.create(i),n(t.styles,function(e,t){e=r(e),e&&a.setStyle(o,t,e)}),n(t.attributes,function(e,t){e=r(e),e&&a.setAttrib(o,t,e)}),n(t.classes,function(e){e=r(e),a.hasClass(o,e)||a.addClass(o,e)}),e.fire("PreviewFormats"),a.setStyles(o,{position:"absolute",left:-65535}),e.getBody().appendChild(o),l=a.getStyle(e.getBody(),"fontSize",!0),l=/px$/.test(l)?parseInt(l,10):0,n(c.split(" "),function(t){var n=a.getStyle(o,t,!0);if(!("background-color"==t&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(n)&&(n=a.getStyle(e.getBody(),t,!0),"#ffffff"==a.toHex(n).toLowerCase())||"color"==t&&"#000000"==a.toHex(n).toLowerCase())){if("font-size"==t&&/em|%$/.test(n)){if(0===l)return;n=parseFloat(n,10)/(/%$/.test(n)?100:1),n=n*l+"px"}"border"==t&&n&&(s+="padding:0 2px;"),s+=t+":"+n+";"}}),e.fire("AfterPreviewFormats"),a.remove(o),s}var n=e.each;return{getCssText:t}}),r(M,[f,B,p,L],function(e,t,n,r){return function(i){function o(e){return e.nodeType&&(e=e.nodeName),!!i.schema.getTextBlockElements()[e.toLowerCase()]}function a(e,t){return z.getParents(e,t,z.getRoot())}function s(e){return 1===e.nodeType&&"_mce_caret"===e.id}function l(){d({valigntop:[{selector:"td,th",styles:{verticalAlign:"top"}}],valignmiddle:[{selector:"td,th",styles:{verticalAlign:"middle"}}],valignbottom:[{selector:"td,th",styles:{verticalAlign:"bottom"}}],alignleft:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"}}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},defaultBlock:"div"},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"}}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},defaultBlock:"div"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},wrap_links:!1},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},wrap_links:!1},fontname:{inline:"span",styles:{fontFamily:"%value"}},fontsize:{inline:"span",styles:{fontSize:"%value"}},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0},onformat:function(e,t,n){nt(n,function(t,n){z.setAttrib(e,n,t)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]}),nt("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){d(e,{block:e,remove:"all"})}),d(i.settings.formats)}function c(){i.addShortcut("ctrl+b","bold_desc","Bold"),i.addShortcut("ctrl+i","italic_desc","Italic"),i.addShortcut("ctrl+u","underline_desc","Underline");for(var e=1;6>=e;e++)i.addShortcut("ctrl+"+e,"",["FormatBlock",!1,"h"+e]);i.addShortcut("ctrl+7","",["FormatBlock",!1,"p"]),i.addShortcut("ctrl+8","",["FormatBlock",!1,"div"]),i.addShortcut("ctrl+9","",["FormatBlock",!1,"address"])}function u(e){return e?F[e]:F}function d(e,t){e&&("string"!=typeof e?nt(e,function(e,t){d(t,e)}):(t=t.length?t:[t],nt(t,function(e){e.deep===Q&&(e.deep=!e.selector),e.split===Q&&(e.split=!e.selector||e.inline),e.remove===Q&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),F[e]=t))}function f(e){var t;return i.dom.getParent(e,function(e){return t=i.dom.getStyle(e,"text-decoration"),t&&"none"!==t}),t}function p(e){var t;1===e.nodeType&&e.parentNode&&1===e.parentNode.nodeType&&(t=f(e.parentNode),i.dom.getStyle(e,"color")&&t?i.dom.setStyle(e,"text-decoration",t):i.dom.getStyle(e,"textdecoration")===t&&i.dom.setStyle(e,"text-decoration",null))}function h(t,n,r){function a(e,t){if(t=t||m,e){if(t.onformat&&t.onformat(e,t,n,r),nt(t.styles,function(t,r){z.setStyle(e,r,k(t,n))}),t.styles){var i=z.getAttrib(e,"style");i&&e.setAttribute("data-mce-style",i)}nt(t.attributes,function(t,r){z.setAttrib(e,r,k(t,n))}),nt(t.classes,function(t){t=k(t,n),z.hasClass(e,t)||z.addClass(e,t)})}}function l(){function t(t,n){var i=new e(n);for(r=i.current();r;r=i.prev())if(r.childNodes.length>1||r==t||"BR"==r.tagName)return r}var n=i.selection.getRng(),o=n.startContainer,a=n.endContainer;if(o!=a&&0===n.endOffset){var s=t(o,a),l=3==s.nodeType?s.length:s.childNodes.length;n.setEnd(s,l)}return n}function c(e,t,n,r,i){var o=[],a=-1,s,l=-1,c=-1,u;return nt(e.childNodes,function(e,t){return"UL"===e.nodeName||"OL"===e.nodeName?(a=t,s=e,!1):void 0}),nt(e.childNodes,function(e,n){"SPAN"===e.nodeName&&"bookmark"==z.getAttrib(e,"data-mce-type")&&(e.id==t.id+"_start"?l=n:e.id==t.id+"_end"&&(c=n))}),0>=a||a>l&&c>a?(nt(rt(e.childNodes),i),0):(u=z.clone(n,Y),nt(rt(e.childNodes),function(e,t){(a>l&&a>t||l>a&&t>a)&&(o.push(e),e.parentNode.removeChild(e))}),a>l?e.insertBefore(u,s):l>a&&e.insertBefore(u,s.nextSibling),r.push(u),nt(o,function(e){u.appendChild(e)}),u)}function d(e,r,i){var l=[],u,d,p=!0;u=m.inline||m.block,d=z.create(u),a(d),V.walk(e,function(e){function h(e){var y,C,x,w,_;return _=p,y=e.nodeName.toLowerCase(),C=e.parentNode.nodeName.toLowerCase(),1===e.nodeType&&Z(e)&&(_=p,p="true"===Z(e),w=!0),N(y,"br")?(g=0,void(m.block&&z.remove(e))):m.wrapper&&v(e,t,n)?void(g=0):p&&!w&&m.block&&!m.wrapper&&o(y)&&U(C,u)?(e=z.rename(e,u),a(e),l.push(e),void(g=0)):m.selector&&(nt(f,function(t){"collapsed"in t&&t.collapsed!==b||z.is(e,t.selector)&&!s(e)&&(a(e,t),x=!0)}),!m.inline||x)?void(g=0):void(!p||w||!U(u,y)||!U(C,u)||!i&&3===e.nodeType&&1===e.nodeValue.length&&65279===e.nodeValue.charCodeAt(0)||s(e)||m.inline&&q(e)?"li"==y&&r?g=c(e,r,d,l,h):(g=0,nt(rt(e.childNodes),h),w&&(p=_),g=0):(g||(g=z.clone(d,Y),e.parentNode.insertBefore(g,e),l.push(g)),g.appendChild(e)))}var g;nt(e,h)}),m.wrap_links===!1&&nt(l,function(e){function t(e){var n,r,i;if("A"===e.nodeName){for(r=z.clone(d,Y),l.push(r),i=rt(e.childNodes),n=0;n<i.length;n++)r.appendChild(i[n]);e.appendChild(r)}nt(rt(e.childNodes),t)}t(e)}),nt(l,function(e){function r(e){var t=0;return nt(e.childNodes,function(e){T(e)||M(e)||t++}),t}function i(e){var t,n;return nt(e.childNodes,function(e){return 1!=e.nodeType||M(e)||s(e)?void 0:(t=e,Y)
-}),t&&!M(t)&&_(t,m)&&(n=z.clone(t,Y),a(n),z.replace(n,e,X),z.remove(t,1)),n||e}var o;if(o=r(e),(l.length>1||!q(e))&&0===o)return void z.remove(e,1);if(m.inline||m.wrapper){if(m.exact||1!==o||(e=i(e)),nt(f,function(t){nt(z.select(t.inline,e),function(e){var r;if(!M(e)){if(t.wrap_links===!1){r=e.parentNode;do if("A"===r.nodeName)return;while(r=r.parentNode)}B(t,n,e,t.exact?e:null)}})}),v(e.parentNode,t,n))return z.remove(e,1),e=0,X;m.merge_with_parents&&z.getParent(e.parentNode,function(r){return v(r,t,n)?(z.remove(e,1),e=0,X):void 0}),e&&m.merge_siblings!==!1&&(e=H(L(e),e),e=H(e,L(e,X)))}})}var f=u(t),m=f[0],g,y,b=!r&&W.isCollapsed();if(m)if(r)r.nodeType?(y=z.createRng(),y.setStartBefore(r),y.setEndAfter(r),d(A(y,f),null,!0)):d(r,null,!0);else if(b&&m.inline&&!z.select("td.mce-item-selected,th.mce-item-selected").length)O("apply",t,n);else{var C=i.selection.getNode();$||!f[0].defaultBlock||z.getParent(C,z.isBlock)||h(f[0].defaultBlock),i.selection.setRng(l()),g=W.getBookmark(),d(A(W.getRng(X),f),g),m.styles&&(m.styles.color||m.styles.textDecoration)&&(it(C,p,"childNodes"),p(C)),W.moveToBookmark(g),I(W.getRng(X)),i.nodeChanged()}}function m(e,t,n){function r(e){var n,i,o,a,s;if(1===e.nodeType&&Z(e)&&(a=b,b="true"===Z(e),s=!0),n=rt(e.childNodes),b&&!s)for(i=0,o=p.length;o>i&&!B(p[i],t,e,e);i++);if(h.deep&&n.length){for(i=0,o=n.length;o>i;i++)r(n[i]);s&&(b=a)}}function o(n){var r;return nt(a(n.parentNode).reverse(),function(n){var i;r||"_start"==n.id||"_end"==n.id||(i=v(n,e,t),i&&i.split!==!1&&(r=n))}),r}function s(e,n,r,i){var o,a,s,l,c,u;if(e){for(u=e.parentNode,o=n.parentNode;o&&o!=u;o=o.parentNode){for(a=z.clone(o,Y),c=0;c<p.length;c++)if(B(p[c],t,a,a)){a=0;break}a&&(s&&a.appendChild(s),l||(l=a),s=a)}!i||h.mixed&&q(e)||(n=z.split(e,n)),s&&(r.parentNode.insertBefore(s,r),l.appendChild(r))}return n}function l(e){return s(o(e),e,e,!0)}function c(e){var t=z.get(e?"_start":"_end"),n=t[e?"firstChild":"lastChild"];return M(n)&&(n=n[e?"firstChild":"lastChild"]),z.remove(t,!0),n}function d(e){var t,n,o=e.commonAncestorContainer;e=A(e,p,X),h.split&&(t=P(e,X),n=P(e),t!=n?(/^(TR|TH|TD)$/.test(t.nodeName)&&t.firstChild&&(t="TR"==t.nodeName?t.firstChild.firstChild||t:t.firstChild||t),o&&/^T(HEAD|BODY|FOOT|R)$/.test(o.nodeName)&&/^(TH|TD)$/.test(n.nodeName)&&n.firstChild&&(n=n.firstChild||n),t=R(t,"span",{id:"_start","data-mce-type":"bookmark"}),n=R(n,"span",{id:"_end","data-mce-type":"bookmark"}),l(t),l(n),t=c(X),n=c()):t=n=l(t),e.startContainer=t.parentNode,e.startOffset=j(t),e.endContainer=n.parentNode,e.endOffset=j(n)+1),V.walk(e,function(e){nt(e,function(e){r(e),1===e.nodeType&&"underline"===i.dom.getStyle(e,"text-decoration")&&e.parentNode&&"underline"===f(e.parentNode)&&B({deep:!1,exact:!0,inline:"span",styles:{textDecoration:"underline"}},null,e)})})}var p=u(e),h=p[0],m,g,b=!0;return n?void(n.nodeType?(g=z.createRng(),g.setStartBefore(n),g.setEndAfter(n),d(g)):d(n)):void(W.isCollapsed()&&h.inline&&!z.select("td.mce-item-selected,th.mce-item-selected").length?O("remove",e,t):(m=W.getBookmark(),d(W.getRng(X)),W.moveToBookmark(m),h.inline&&y(e,t,W.getStart())&&I(W.getRng(!0)),i.nodeChanged()))}function g(e,t,n){var r=u(e);!y(e,t,n)||"toggle"in r[0]&&!r[0].toggle?h(e,t,n):m(e,t,n)}function v(e,t,n,r){function i(e,t,i){var o,a,s=t[i],l;if(t.onmatch)return t.onmatch(e,t,i);if(s)if(s.length===Q){for(o in s)if(s.hasOwnProperty(o)){if(a="attributes"===i?z.getAttrib(e,o):E(e,o),r&&!a&&!t.exact)return;if((!r||t.exact)&&!N(a,S(k(s[o],n),o)))return}}else for(l=0;l<s.length;l++)if("attributes"===i?z.getAttrib(e,s[l]):E(e,s[l]))return t;return t}var o=u(t),a,s,l;if(o&&e)for(s=0;s<o.length;s++)if(a=o[s],_(e,a)&&i(e,a,"attributes")&&i(e,a,"styles")){if(l=a.classes)for(s=0;s<l.length;s++)if(!z.hasClass(e,l[s]))return;return a}}function y(e,t,n){function r(n){var r=z.getRoot();return n===r?!1:(n=z.getParent(n,function(n){return n.parentNode===r||!!v(n,e,t,!0)}),v(n,e,t))}var i;return n?r(n):(n=W.getNode(),r(n)?X:(i=W.getStart(),i!=n&&r(i)?X:Y))}function b(e,t){var n,r=[],i={};return n=W.getStart(),z.getParent(n,function(n){var o,a;for(o=0;o<e.length;o++)a=e[o],!i[a]&&v(n,a,t)&&(i[a]=!0,r.push(a))},z.getRoot()),r}function C(e){var t=u(e),n,r,i,o,s;if(t)for(n=W.getStart(),r=a(n),o=t.length-1;o>=0;o--){if(s=t[o].selector,!s||t[o].defaultBlock)return X;for(i=r.length-1;i>=0;i--)if(z.is(r[i],s))return X}return Y}function x(e,t,n){var r;return J||(J={},r={},i.on("NodeChange",function(e){var t=a(e.element),n={};nt(J,function(e,i){nt(t,function(o){return v(o,i,{},e.similar)?(r[i]||(nt(e,function(e){e(!0,{node:o,format:i,parents:t})}),r[i]=e),n[i]=e,!1):void 0})}),nt(r,function(i,o){n[o]||(delete r[o],nt(i,function(n){n(!1,{node:e.element,format:o,parents:t})}))})})),nt(e.split(","),function(e){J[e]||(J[e]=[],J[e].similar=n),J[e].push(t)}),this}function w(e){return r.getCssText(i,e)}function _(e,t){return N(e,t.inline)?X:N(e,t.block)?X:t.selector?1==e.nodeType&&z.is(e,t.selector):void 0}function N(e,t){return e=e||"",t=t||"",e=""+(e.nodeName||e),t=""+(t.nodeName||t),e.toLowerCase()==t.toLowerCase()}function E(e,t){return S(z.getStyle(e,t),t)}function S(e,t){return("color"==t||"backgroundColor"==t)&&(e=z.toHex(e)),"fontWeight"==t&&700==e&&(e="bold"),"fontFamily"==t&&(e=e.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+e}function k(e,t){return"string"!=typeof e?e=e(t):t&&(e=e.replace(/%(\w+)/g,function(e,n){return t[n]||e})),e}function T(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)}function R(e,t,n){var r=z.create(t,n);return e.parentNode.insertBefore(r,e),r.appendChild(e),r}function A(t,n,r){function s(e){function t(e){return"BR"==e.nodeName&&e.getAttribute("data-mce-bogus")&&!e.nextSibling}var r,i,o,a,s;if(r=i=e?g:y,a=e?"previousSibling":"nextSibling",s=z.getRoot(),3==r.nodeType&&!T(r)&&(e?v>0:b<r.nodeValue.length))return r;for(;;){if(!n[0].block_expand&&q(i))return i;for(o=i[a];o;o=o[a])if(!M(o)&&!T(o)&&!t(o))return i;if(i.parentNode==s){r=i;break}i=i.parentNode}return r}function l(e,t){for(t===Q&&(t=3===e.nodeType?e.length:e.childNodes.length);e&&e.hasChildNodes();)e=e.childNodes[t],e&&(t=3===e.nodeType?e.length:e.childNodes.length);return{node:e,offset:t}}function c(e){for(var t=e;t;){if(1===t.nodeType&&Z(t))return"false"===Z(t)?t:e;t=t.parentNode}return e}function u(t,n,o){function a(e,t){var n,i,a=e.nodeValue;return"undefined"==typeof t&&(t=o?a.length:0),o?(n=a.lastIndexOf(" ",t),i=a.lastIndexOf("\xa0",t),n=n>i?n:i,-1===n||r||n++):(n=a.indexOf(" ",t),i=a.indexOf("\xa0",t),n=-1!==n&&(-1===i||i>n)?n:i),n}var s,l,c,u;if(3===t.nodeType){if(c=a(t,n),-1!==c)return{container:t,offset:c};u=t}for(s=new e(t,z.getParent(t,q)||i.getBody());l=s[o?"prev":"next"]();)if(3===l.nodeType){if(u=l,c=a(l),-1!==c)return{container:l,offset:c}}else if(q(l))break;return u?(n=o?0:u.length,{container:u,offset:n}):void 0}function d(e,r){var i,o,s,l;for(3==e.nodeType&&0===e.nodeValue.length&&e[r]&&(e=e[r]),i=a(e),o=0;o<i.length;o++)for(s=0;s<n.length;s++)if(l=n[s],!("collapsed"in l&&l.collapsed!==t.collapsed)&&z.is(i[o],l.selector))return i[o];return e}function f(e,t){var r,i=z.getRoot();if(n[0].wrapper||(r=z.getParent(e,n[0].block,i)),r||(r=z.getParent(3==e.nodeType?e.parentNode:e,function(e){return e!=i&&o(e)})),r&&n[0].wrapper&&(r=a(r,"ul,ol").reverse()[0]||r),!r)for(r=e;r[t]&&!q(r[t])&&(r=r[t],!N(r,"br")););return r||e}var p,h,m,g=t.startContainer,v=t.startOffset,y=t.endContainer,b=t.endOffset;if(1==g.nodeType&&g.hasChildNodes()&&(p=g.childNodes.length-1,g=g.childNodes[v>p?p:v],3==g.nodeType&&(v=0)),1==y.nodeType&&y.hasChildNodes()&&(p=y.childNodes.length-1,y=y.childNodes[b>p?p:b-1],3==y.nodeType&&(b=y.nodeValue.length)),g=c(g),y=c(y),(M(g.parentNode)||M(g))&&(g=M(g)?g:g.parentNode,g=g.nextSibling||g,3==g.nodeType&&(v=0)),(M(y.parentNode)||M(y))&&(y=M(y)?y:y.parentNode,y=y.previousSibling||y,3==y.nodeType&&(b=y.length)),n[0].inline&&(t.collapsed&&(m=u(g,v,!0),m&&(g=m.container,v=m.offset),m=u(y,b),m&&(y=m.container,b=m.offset)),h=l(y,b),h.node)){for(;h.node&&0===h.offset&&h.node.previousSibling;)h=l(h.node.previousSibling);h.node&&h.offset>0&&3===h.node.nodeType&&" "===h.node.nodeValue.charAt(h.offset-1)&&h.offset>1&&(y=h.node,y.splitText(h.offset-1))}return(n[0].inline||n[0].block_expand)&&(n[0].inline&&3==g.nodeType&&0!==v||(g=s(!0)),n[0].inline&&3==y.nodeType&&b!==y.nodeValue.length||(y=s())),n[0].selector&&n[0].expand!==Y&&!n[0].inline&&(g=d(g,"previousSibling"),y=d(y,"nextSibling")),(n[0].block||n[0].selector)&&(g=f(g,"previousSibling"),y=f(y,"nextSibling"),n[0].block&&(q(g)||(g=s(!0)),q(y)||(y=s()))),1==g.nodeType&&(v=j(g),g=g.parentNode),1==y.nodeType&&(b=j(y)+1,y=y.parentNode),{startContainer:g,startOffset:v,endContainer:y,endOffset:b}}function B(e,t,n,r){var i,o,a;if(!_(n,e))return Y;if("all"!=e.remove)for(nt(e.styles,function(e,i){e=S(k(e,t),i),"number"==typeof i&&(i=e,r=0),(!r||N(E(r,i),e))&&z.setStyle(n,i,""),a=1}),a&&""===z.getAttrib(n,"style")&&(n.removeAttribute("style"),n.removeAttribute("data-mce-style")),nt(e.attributes,function(e,i){var o;if(e=k(e,t),"number"==typeof i&&(i=e,r=0),!r||N(z.getAttrib(r,i),e)){if("class"==i&&(e=z.getAttrib(n,i),e&&(o="",nt(e.split(/\s+/),function(e){/mce\w+/.test(e)&&(o+=(o?" ":"")+e)}),o)))return void z.setAttrib(n,i,o);"class"==i&&n.removeAttribute("className"),G.test(i)&&n.removeAttribute("data-mce-"+i),n.removeAttribute(i)}}),nt(e.classes,function(e){e=k(e,t),(!r||z.hasClass(r,e))&&z.removeClass(n,e)}),o=z.getAttribs(n),i=0;i<o.length;i++)if(0!==o[i].nodeName.indexOf("_"))return Y;return"none"!=e.remove?(D(n,e),X):void 0}function D(e,t){function n(e,t,n){return e=L(e,t,n),!e||"BR"==e.nodeName||q(e)}var r=e.parentNode,o;t.block&&($?r==z.getRoot()&&(t.list_block&&N(e,t.list_block)||nt(rt(e.childNodes),function(e){U($,e.nodeName.toLowerCase())?o?o.appendChild(e):(o=R(e,$),z.setAttribs(o,i.settings.forced_root_block_attrs)):o=0})):q(e)&&!q(r)&&(n(e,Y)||n(e.firstChild,X,1)||e.insertBefore(z.create("br"),e.firstChild),n(e,X)||n(e.lastChild,Y,1)||e.appendChild(z.create("br")))),t.selector&&t.inline&&!N(t.inline,e)||z.remove(e,1)}function L(e,t,n){if(e)for(t=t?"nextSibling":"previousSibling",e=n?e:e[t];e;e=e[t])if(1==e.nodeType||!T(e))return e}function M(e){return e&&1==e.nodeType&&"bookmark"==e.getAttribute("data-mce-type")}function H(e,t){function n(e,t){function n(e){var t={};return nt(z.getAttribs(e),function(n){var r=n.nodeName.toLowerCase();0!==r.indexOf("_")&&"style"!==r&&"data-mce-style"!==r&&(t[r]=z.getAttrib(e,r))}),t}function r(e,t){var n,r;for(r in e)if(e.hasOwnProperty(r)){if(n=t[r],n===Q)return Y;if(e[r]!=n)return Y;delete t[r]}for(r in t)if(t.hasOwnProperty(r))return Y;return X}return e.nodeName!=t.nodeName?Y:r(n(e),n(t))&&r(z.parseStyle(z.getAttrib(e,"style")),z.parseStyle(z.getAttrib(t,"style")))?!M(e)&&!M(t):Y}function r(e,t){for(i=e;i;i=i[t]){if(3==i.nodeType&&0!==i.nodeValue.length)return e;if(1==i.nodeType&&!M(i))return i}return e}var i,o;if(e&&t&&(e=r(e,"previousSibling"),t=r(t,"nextSibling"),n(e,t))){for(i=e.nextSibling;i&&i!=t;)o=i,i=i.nextSibling,e.appendChild(o);return z.remove(t),nt(rt(t.childNodes),function(t){e.appendChild(t)}),e}return t}function P(t,n){var r,o,a;return r=t[n?"startContainer":"endContainer"],o=t[n?"startOffset":"endOffset"],1==r.nodeType&&(a=r.childNodes.length-1,!n&&o&&o--,r=r.childNodes[o>a?a:o]),3===r.nodeType&&n&&o>=r.nodeValue.length&&(r=new e(r,i.getBody()).next()||r),3!==r.nodeType||n||0!==o||(r=new e(r,i.getBody()).prev()||r),r}function O(t,n,r){function a(e){var t=z.create("span",{id:y,"data-mce-bogus":!0,style:b?"color:red":""});return e&&t.appendChild(i.getDoc().createTextNode(K)),t}function s(e,t){for(;e;){if(3===e.nodeType&&e.nodeValue!==K||e.childNodes.length>1)return!1;t&&1===e.nodeType&&t.push(e),e=e.firstChild}return!0}function l(e){for(;e;){if(e.id===y)return e;e=e.parentNode}}function c(t){var n;if(t)for(n=new e(t,t),t=n.current();t;t=n.next())if(3===t.nodeType)return t}function d(e,t){var n,r;if(e)r=W.getRng(!0),s(e)?(t!==!1&&(r.setStartBefore(e),r.setEndBefore(e)),z.remove(e)):(n=c(e),n.nodeValue.charAt(0)===K&&(n=n.deleteData(0,1)),z.remove(e,1)),W.setRng(r);else if(e=l(W.getStart()),!e)for(;e=z.get(y);)d(e,!1)}function f(){var e,t,i,o,s,d,f;e=W.getRng(!0),o=e.startOffset,d=e.startContainer,f=d.nodeValue,t=l(W.getStart()),t&&(i=c(t)),f&&o>0&&o<f.length&&/\w/.test(f.charAt(o))&&/\w/.test(f.charAt(o-1))?(s=W.getBookmark(),e.collapse(!0),e=A(e,u(n)),e=V.split(e),h(n,r,e),W.moveToBookmark(s)):(t&&i.nodeValue===K?h(n,r,t):(t=a(!0),i=t.firstChild,e.insertNode(t),o=1,h(n,r,t)),W.setCursorLocation(i,o))}function p(){var e=W.getRng(!0),t,i,s,l,c,d,f=[],p,h;for(t=e.startContainer,i=e.startOffset,c=t,3==t.nodeType&&((i!=t.nodeValue.length||t.nodeValue===K)&&(l=!0),c=c.parentNode);c;){if(v(c,n,r)){d=c;break}c.nextSibling&&(l=!0),f.push(c),c=c.parentNode}if(d)if(l)s=W.getBookmark(),e.collapse(!0),e=A(e,u(n),!0),e=V.split(e),m(n,r,e),W.moveToBookmark(s);else{for(h=a(),c=h,p=f.length-1;p>=0;p--)c.appendChild(z.clone(f[p],!1)),c=c.firstChild;c.appendChild(z.doc.createTextNode(K)),c=c.firstChild;var g=z.getParent(d,o);g&&z.isEmpty(g)?d.parentNode.replaceChild(h,d):z.insertAfter(h,d),W.setCursorLocation(c,1),z.isEmpty(d)&&z.remove(d)}}function g(){var e;e=l(W.getStart()),e&&!z.isEmpty(e)&&it(e,function(e){1!=e.nodeType||e.id===y||z.isEmpty(e)||z.setAttrib(e,"data-mce-bogus",null)},"childNodes")}var y="_mce_caret",b=i.settings.caret_debug;i._hasCaretEvents||(tt=function(){var e=[],t;if(s(l(W.getStart()),e))for(t=e.length;t--;)z.setAttrib(e[t],"data-mce-bogus","1")},et=function(e){var t=e.keyCode;d(),(8==t||37==t||39==t)&&d(l(W.getStart())),g()},i.on("SetContent",function(e){e.selection&&g()}),i._hasCaretEvents=!0),"apply"==t?f():p()}function I(t){var n=t.startContainer,r=t.startOffset,i,o,a,s,l;if(3==n.nodeType&&r>=n.nodeValue.length&&(r=j(n),n=n.parentNode,i=!0),1==n.nodeType)for(s=n.childNodes,n=s[Math.min(r,s.length-1)],o=new e(n,z.getParent(n,z.isBlock)),(r>s.length-1||i)&&o.next(),a=o.current();a;a=o.next())if(3==a.nodeType&&!T(a))return l=z.create("a",null,K),a.parentNode.insertBefore(l,a),t.setStart(a,0),W.setRng(t),void z.remove(l)}var F={},z=i.dom,W=i.selection,V=new t(z),U=i.schema.isValidChild,q=z.isBlock,$=i.settings.forced_root_block,j=z.nodeIndex,K="\ufeff",G=/^(src|href|style)$/,Y=!1,X=!0,J,Q,Z=z.getContentEditable,et,tt,nt=n.each,rt=n.grep,it=n.walk,ot=n.extend;ot(this,{get:u,register:d,apply:h,remove:m,toggle:g,match:y,matchAll:b,matchNode:v,canApply:C,formatChanged:x,getCssText:w}),l(),c(),i.on("BeforeGetContent",function(){tt&&tt()}),i.on("mouseup keydown",function(e){et&&et(e)})}}),r(H,[g,p],function(e,t){var n=t.trim,r;return r=new RegExp(["<span[^>]+data-mce-bogus[^>]+>[\u200b\ufeff]+<\\/span>","<div[^>]+data-mce-bogus[^>]+><\\/div>",'\\s?data-mce-selected="[^"]+"'].join("|"),"gi"),function(t){function i(){return n(t.getContent({format:"raw",no_events:1}).replace(r,""))}function o(e){a.typing=!1,a.add({},e)}var a=this,s=0,l=[],c,u,d=0;return t.on("init",function(){a.add()}),t.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&a.beforeChange()}),t.on("ExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&o(e)}),t.on("ObjectResizeStart",function(){a.beforeChange()}),t.on("SaveContent ObjectResized blur",o),t.on("DragEnd",o),t.on("KeyUp",function(n){var r=n.keyCode;(r>=33&&36>=r||r>=37&&40>=r||45==r||13==r||n.ctrlKey)&&(o(),t.nodeChanged()),(46==r||8==r||e.mac&&(91==r||93==r))&&t.nodeChanged(),u&&a.typing&&(t.isDirty()||(t.isNotDirty=!l[0]||i()==l[0].content,t.isNotDirty||t.fire("change",{level:l[0],lastLevel:null})),t.fire("TypingUndo"),u=!1,t.nodeChanged())}),t.on("KeyDown",function(e){var t=e.keyCode;return t>=33&&36>=t||t>=37&&40>=t||45==t?void(a.typing&&o(e)):void((16>t||t>20)&&224!=t&&91!=t&&!a.typing&&(a.beforeChange(),a.typing=!0,a.add({},e),u=!0))}),t.on("MouseDown",function(e){a.typing&&o(e)}),t.addShortcut("ctrl+z","","Undo"),t.addShortcut("ctrl+y,ctrl+shift+z","","Redo"),t.on("AddUndo Undo Redo ClearUndos MouseUp",function(e){e.isDefaultPrevented()||t.nodeChanged()}),a={data:l,typing:!1,beforeChange:function(){d||(c=t.selection.getBookmark(2,!0))},add:function(e,n){var r,o=t.settings,a;if(e=e||{},e.content=i(),d||t.removed)return null;if(a=l[s],t.fire("BeforeAddUndo",{level:e,lastLevel:a,originalEvent:n}).isDefaultPrevented())return null;if(a&&a.content==e.content)return null;if(l[s]&&(l[s].beforeBookmark=c),o.custom_undo_redo_levels&&l.length>o.custom_undo_redo_levels){for(r=0;r<l.length-1;r++)l[r]=l[r+1];l.length--,s=l.length}e.bookmark=t.selection.getBookmark(2,!0),s<l.length-1&&(l.length=s+1),l.push(e),s=l.length-1;var u={level:e,lastLevel:a,originalEvent:n};return t.fire("AddUndo",u),s>0&&(t.isNotDirty=!1,t.fire("change",u)),e},undo:function(){var e;return a.typing&&(a.add(),a.typing=!1),s>0&&(e=l[--s],0===s&&(t.isNotDirty=!0),t.setContent(e.content,{format:"raw"}),t.selection.moveToBookmark(e.beforeBookmark),t.fire("undo",{level:e})),e},redo:function(){var e;return s<l.length-1&&(e=l[++s],t.setContent(e.content,{format:"raw"}),t.selection.moveToBookmark(e.bookmark),t.fire("redo",{level:e})),e},clear:function(){l=[],s=0,a.typing=!1,t.fire("ClearUndos")},hasUndo:function(){return s>0||a.typing&&l[0]&&i()!=l[0].content},hasRedo:function(){return s<l.length-1&&!this.typing},transact:function(e){a.beforeChange();try{d++,e()}finally{d--}a.add()}}}}),r(P,[f,B,g],function(e,t,n){var r=n.ie&&n.ie<11;return function(i){function o(o){function f(e){return e&&a.isBlock(e)&&!/^(TD|TH|CAPTION|FORM)$/.test(e.nodeName)&&!/^(fixed|absolute)/i.test(e.style.position)&&"true"!==a.getContentEditable(e)}function p(e){var t;a.isBlock(e)&&(t=s.getRng(),e.appendChild(a.create("span",null,"\xa0")),s.select(e),e.lastChild.outerHTML="",s.setRng(t))}function h(e){for(var t=e,n=[],r;t=t.firstChild;){if(a.isBlock(t))return;1!=t.nodeType||d[t.nodeName.toLowerCase()]||n.push(t)}for(r=n.length;r--;)t=n[r],!t.hasChildNodes()||t.firstChild==t.lastChild&&""===t.firstChild.nodeValue?a.remove(t):"A"==t.nodeName&&" "===(t.innerText||t.textContent)&&a.remove(t)}function m(t){function r(e){for(;e;){if(1==e.nodeType||3==e.nodeType&&e.data&&/[\r\n\s]/.test(e.data))return e;e=e.nextSibling}}var i,o,l,c=t,u;if(n.ie&&n.ie<9&&B&&B.firstChild&&B.firstChild==B.lastChild&&"BR"==B.firstChild.tagName&&a.remove(B.firstChild),"LI"==t.nodeName){var f=r(t.firstChild);f&&/^(UL|OL)$/.test(f.nodeName)&&t.insertBefore(a.doc.createTextNode("\xa0"),t.firstChild)}if(l=a.createRng(),t.hasChildNodes()){for(i=new e(t,t);o=i.current();){if(3==o.nodeType){l.setStart(o,0),l.setEnd(o,0);break}if(d[o.nodeName.toLowerCase()]){l.setStartBefore(o),l.setEndBefore(o);break}c=o,o=i.next()}o||(l.setStart(c,0),l.setEnd(c,0))}else"BR"==t.nodeName?t.nextSibling&&a.isBlock(t.nextSibling)?((!D||9>D)&&(u=a.create("br"),t.parentNode.insertBefore(u,t)),l.setStartBefore(t),l.setEndBefore(t)):(l.setStartAfter(t),l.setEndAfter(t)):(l.setStart(t,0),l.setEnd(t,0));s.setRng(l),a.remove(u),s.scrollIntoView(t)}function g(e){var t=l.forced_root_block;t&&t.toLowerCase()===e.tagName.toLowerCase()&&a.setAttribs(e,l.forced_root_block_attrs)}function v(e){var t=R,n,i,o;if(e||"TABLE"==O?(n=a.create(e||F),g(n)):n=B.cloneNode(!1),o=n,l.keep_styles!==!1)do if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U|VAR|CITE|DFN|CODE|MARK|Q|SUP|SUB|SAMP)$/.test(t.nodeName)){if("_mce_caret"==t.id)continue;i=t.cloneNode(!1),a.setAttrib(i,"id",""),n.hasChildNodes()?(i.appendChild(n.firstChild),n.appendChild(i)):(o=i,n.appendChild(i))}while(t=t.parentNode);return r||(o.innerHTML='<br data-mce-bogus="1">'),n}function y(t){var n,r,i;if(3==R.nodeType&&(t?A>0:A<R.nodeValue.length))return!1;if(R.parentNode==B&&z&&!t)return!0;if(t&&1==R.nodeType&&R==B.firstChild)return!0;if("TABLE"===R.nodeName||R.previousSibling&&"TABLE"==R.previousSibling.nodeName)return z&&!t||!z&&t;for(n=new e(R,B),3==R.nodeType&&(t&&0===A?n.prev():t||A!=R.nodeValue.length||n.next());r=n.current();){if(1===r.nodeType){if(!r.getAttribute("data-mce-bogus")&&(i=r.nodeName.toLowerCase(),d[i]&&"br"!==i))return!1}else if(3===r.nodeType&&!/^[ \t\r\n]*$/.test(r.nodeValue))return!1;t?n.prev():n.next()}return!0}function b(e,t){var n,r,o,s,l,c,d=F||"P";if(r=a.getParent(e,a.isBlock),c=i.getBody().nodeName.toLowerCase(),!r||!f(r)){if(r=r||T,!r.hasChildNodes())return n=a.create(d),g(n),r.appendChild(n),S.setStart(n,0),S.setEnd(n,0),n;for(s=e;s.parentNode!=r;)s=s.parentNode;for(;s&&!a.isBlock(s);)o=s,s=s.previousSibling;if(o&&u.isValidChild(c,d.toLowerCase())){for(n=a.create(d),g(n),o.parentNode.insertBefore(n,o),s=o;s&&!a.isBlock(s);)l=s.nextSibling,n.appendChild(s),s=l;S.setStart(e,t),S.setEnd(e,t)}}return e}function C(){function e(e){for(var t=P[e?"firstChild":"lastChild"];t&&1!=t.nodeType;)t=t[e?"nextSibling":"previousSibling"];return t===B}function t(){var e=P.parentNode;return"LI"==e.nodeName?e:P}var n=P.parentNode.nodeName;/^(OL|UL|LI)$/.test(n)&&(F="LI"),M=F?v(F):a.create("BR"),e(!0)&&e()?"LI"==n?a.insertAfter(M,t()):a.replace(M,P):e(!0)?"LI"==n?(a.insertAfter(M,t()),M.appendChild(a.doc.createTextNode(" ")),M.appendChild(P)):P.parentNode.insertBefore(M,P):e()?(a.insertAfter(M,t()),p(M)):(P=t(),k=S.cloneRange(),k.setStartAfter(B),k.setEndAfter(P),H=k.extractContents(),"LI"==F&&"LI"==H.firstChild.nodeName?(M=H.firstChild,a.insertAfter(H,P)):(a.insertAfter(H,P),a.insertAfter(M,P))),a.remove(B),m(M),c.add()}function x(){for(var t=new e(R,B),n;n=t.next();)if(d[n.nodeName.toLowerCase()]||n.length>0)return!0}function w(){var e,t,n;R&&3==R.nodeType&&A>=R.nodeValue.length&&(r||x()||(e=a.create("br"),S.insertNode(e),S.setStartAfter(e),S.setEndAfter(e),t=!0)),e=a.create("br"),S.insertNode(e),r&&"PRE"==O&&(!D||8>D)&&e.parentNode.insertBefore(a.doc.createTextNode("\r"),e),n=a.create("span",{},"&nbsp;"),e.parentNode.insertBefore(n,e),s.scrollIntoView(n),a.remove(n),t?(S.setStartBefore(e),S.setEndBefore(e)):(S.setStartAfter(e),S.setEndAfter(e)),s.setRng(S),c.add()}function _(e){do 3===e.nodeType&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;while(e)}function N(e){var t=a.getRoot(),n,r;for(n=e;n!==t&&"false"!==a.getContentEditable(n);)"true"===a.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==t?r:t}function E(e){var t;r||(e.normalize(),t=e.lastChild,(!t||/^(left|right)$/gi.test(a.getStyle(t,"float",!0)))&&a.add(e,"br"))}var S,k,T,R,A,B,D,L,M,H,P,O,I,F,z;if(S=s.getRng(!0),!o.isDefaultPrevented()){if(!S.collapsed)return void i.execCommand("Delete");if(new t(a).normalize(S),R=S.startContainer,A=S.startOffset,F=(l.force_p_newlines?"p":"")||l.forced_root_block,F=F?F.toUpperCase():"",D=a.doc.documentMode,L=o.shiftKey,1==R.nodeType&&R.hasChildNodes()&&(z=A>R.childNodes.length-1,R=R.childNodes[Math.min(A,R.childNodes.length-1)]||R,A=z&&3==R.nodeType?R.nodeValue.length:0),T=N(R)){if(c.beforeChange(),!a.isBlock(T)&&T!=a.getRoot())return void((!F||L)&&w());if((F&&!L||!F&&L)&&(R=b(R,A)),B=a.getParent(R,a.isBlock),P=B?a.getParent(B.parentNode,a.isBlock):null,O=B?B.nodeName.toUpperCase():"",I=P?P.nodeName.toUpperCase():"","LI"!=I||o.ctrlKey||(B=P,O=I),"LI"==O){if(!F&&L)return void w();if(a.isEmpty(B))return void C()}if("PRE"==O&&l.br_in_pre!==!1){if(!L)return void w()}else if(!F&&!L&&"LI"!=O||F&&L)return void w();F&&B===i.getBody()||(F=F||"P",y()?(M=/^(H[1-6]|PRE|FIGURE)$/.test(O)&&"HGROUP"!=I?v(F):v(),l.end_container_on_empty_block&&f(P)&&a.isEmpty(B)?M=a.split(P,B):a.insertAfter(M,B),m(M)):y(!0)?(M=B.parentNode.insertBefore(v(),B),p(M),m(B)):(k=S.cloneRange(),k.setEndAfter(B),H=k.extractContents(),_(H),M=H.firstChild,a.insertAfter(H,B),h(M),E(B),m(M)),a.setAttrib(M,"id",""),i.fire("NewBlock",{newBlock:M}),c.add())}}}var a=i.dom,s=i.selection,l=i.settings,c=i.undoManager,u=i.schema,d=u.getNonEmptyElements();i.on("keydown",function(e){13==e.keyCode&&o(e)!==!1&&e.preventDefault()})}}),r(O,[],function(){return function(e){function t(){var t=i.getStart(),s=e.getBody(),l,c,u,d,f,p,h,m=-16777215,g,v,y,b,C;if(C=n.forced_root_block,t&&1===t.nodeType&&C){for(;t&&t!=s;){if(a[t.nodeName])return;t=t.parentNode}if(l=i.getRng(),l.setStart){c=l.startContainer,u=l.startOffset,d=l.endContainer,f=l.endOffset;try{v=e.getDoc().activeElement===s}catch(x){}}else l.item&&(t=l.item(0),l=e.getDoc().body.createTextRange(),l.moveToElementText(t)),v=l.parentElement().ownerDocument===e.getDoc(),y=l.duplicate(),y.collapse(!0),u=-1*y.move("character",m),y.collapsed||(y=l.duplicate(),y.collapse(!1),f=-1*y.move("character",m)-u);for(t=s.firstChild,b=s.nodeName.toLowerCase();t;)if((3===t.nodeType||1==t.nodeType&&!a[t.nodeName])&&o.isValidChild(b,C.toLowerCase())){if(3===t.nodeType&&0===t.nodeValue.length){h=t,t=t.nextSibling,r.remove(h);continue}p||(p=r.create(C,e.settings.forced_root_block_attrs),t.parentNode.insertBefore(p,t),g=!0),h=t,t=t.nextSibling,p.appendChild(h)}else p=null,t=t.nextSibling;if(g&&v){if(l.setStart)l.setStart(c,u),l.setEnd(d,f),i.setRng(l);else try{l=e.getDoc().body.createTextRange(),l.moveToElementText(s),l.collapse(!0),l.moveStart("character",u),f>0&&l.moveEnd("character",f),l.select()}catch(x){}e.nodeChanged()}}}var n=e.settings,r=e.dom,i=e.selection,o=e.schema,a=o.getBlockElements();n.forced_root_block&&e.on("NodeChange",t)}}),r(I,[S,g,p],function(e,n,r){var i=r.each,o=r.extend,a=r.map,s=r.inArray,l=r.explode,c=n.gecko,u=n.ie,d=!0,f=!1;return function(r){function p(e,t,n){var r;return e=e.toLowerCase(),(r=N.exec[e])?(r(e,t,n),d):f}function h(e){var t;return e=e.toLowerCase(),(t=N.state[e])?t(e):-1}function m(e){var t;return e=e.toLowerCase(),(t=N.value[e])?t(e):f}function g(e,t){t=t||"exec",i(e,function(e,n){i(n.toLowerCase().split(","),function(n){N[t][n]=e})})}function v(e,n,i){return n===t&&(n=f),i===t&&(i=null),r.getDoc().execCommand(e,n,i)}function y(e){return S.match(e)}function b(e,n){S.toggle(e,n?{value:n}:t),r.nodeChanged()}function C(e){k=_.getBookmark(e)}function x(){_.moveToBookmark(k)}var w=r.dom,_=r.selection,N={state:{},exec:{},value:{}},E=r.settings,S=r.formatter,k;o(this,{execCommand:p,queryCommandState:h,queryCommandValue:m,addCommands:g}),g({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){r.undoManager.add()},"Cut,Copy,Paste":function(e){var t=r.getDoc(),i;try{v(e)}catch(o){i=d}if(i||!t.queryCommandSupported(e)){var a=r.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");n.mac&&(a=a.replace(/Ctrl\+/g,"\u2318+")),r.windowManager.alert(a)}},unlink:function(){if(_.isCollapsed()){var e=_.getNode();return void("A"==e.tagName&&r.dom.remove(e,!0))}S.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t=e.substring(7);"full"==t&&(t="justify"),i("left,center,right,justify".split(","),function(e){t!=e&&S.remove("align"+e)}),b("align"+t),p("mceRepaint")},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;v(e),t=w.getParent(_.getNode(),"ol,ul"),t&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(C(),w.split(n,t),x()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){b(e)},"ForeColor,HiliteColor,FontName":function(e,t,n){b(e,n)},FontSize:function(e,t,n){var r,i;n>=1&&7>=n&&(i=l(E.font_size_style_values),r=l(E.font_size_classes),n=r?r[n-1]||n:i[n-1]||n),b(e,n)},RemoveFormat:function(e){S.remove(e)},mceBlockQuote:function(){b("blockquote")},FormatBlock:function(e,t,n){return b(n||"p")},mceCleanup:function(){var e=_.getBookmark();r.setContent(r.getContent({cleanup:d}),{cleanup:d}),_.moveToBookmark(e)},mceRemoveNode:function(e,t,n){var i=n||_.getNode();i!=r.getBody()&&(C(),r.dom.remove(i,d),x())},mceSelectNodeDepth:function(e,t,n){var i=0;w.getParent(_.getNode(),function(e){return 1==e.nodeType&&i++==n?(_.select(e),f):void 0},r.getBody())},mceSelectNode:function(e,t,n){_.select(n)},mceInsertContent:function(t,n,i){function o(e){function t(e){return r[e]&&3==r[e].nodeType}var n,r,i;return n=_.getRng(!0),r=n.startContainer,i=n.startOffset,3==r.nodeType&&(i>0?e=e.replace(/^&nbsp;/," "):t("previousSibling")||(e=e.replace(/^ /,"&nbsp;")),i<r.length?e=e.replace(/&nbsp;(<br>|)$/," "):t("nextSibling")||(e=e.replace(/(&nbsp;| )(<br>|)$/,"&nbsp;"))),e}var a,s,l,c,d,f,p,h,m,g,v;/^ | $/.test(i)&&(i=o(i)),a=r.parser,s=new e({},r.schema),v='<span id="mce_marker" data-mce-type="bookmark">&#xFEFF;&#200B;</span>',f={content:i,format:"html",selection:!0},r.fire("BeforeSetContent",f),i=f.content,-1==i.indexOf("{$caret}")&&(i+="{$caret}"),i=i.replace(/\{\$caret\}/,v),h=_.getRng();var y=h.startContainer||(h.parentElement?h.parentElement():null),b=r.getBody();y===b&&_.isCollapsed()&&w.isBlock(b.firstChild)&&w.isEmpty(b.firstChild)&&(h=w.createRng(),h.setStart(b.firstChild,0),h.setEnd(b.firstChild,0),_.setRng(h)),_.isCollapsed()||r.getDoc().execCommand("Delete",!1,null),l=_.getNode();var C={context:l.nodeName.toLowerCase()};if(d=a.parse(i,C),m=d.lastChild,"mce_marker"==m.attr("id"))for(p=m,m=m.prev;m;m=m.walk(!0))if(3==m.type||!w.isBlock(m.name)){m.parent.insert(p,m,"br"===m.name);break}if(C.invalid){for(_.setContent(v),l=_.getNode(),c=r.getBody(),9==l.nodeType?l=m=c:m=l;m!==c;)l=m,m=m.parentNode;i=l==c?c.innerHTML:w.getOuterHTML(l),i=s.serialize(a.parse(i.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return s.serialize(d)}))),l==c?w.setHTML(c,i):w.setOuterHTML(l,i)}else i=s.serialize(d),m=l.firstChild,g=l.lastChild,!m||m===g&&"BR"===m.nodeName?w.setHTML(l,i):_.setContent(i);p=w.get("mce_marker"),_.scrollIntoView(p),h=w.createRng(),m=p.previousSibling,m&&3==m.nodeType?(h.setStart(m,m.nodeValue.length),u||(g=p.nextSibling,g&&3==g.nodeType&&(m.appendData(g.data),g.parentNode.removeChild(g)))):(h.setStartBefore(p),h.setEndBefore(p)),w.remove(p),_.setRng(h),r.fire("SetContent",f),r.addVisual()},mceInsertRawHTML:function(e,t,n){_.setContent("tiny_mce_marker"),r.setContent(r.getContent().replace(/tiny_mce_marker/g,function(){return n}))},mceToggleFormat:function(e,t,n){b(n)},mceSetContent:function(e,t,n){r.setContent(n)},"Indent,Outdent":function(e){var t,n,o;t=E.indentation,n=/[a-z%]+$/i.exec(t),t=parseInt(t,10),h("InsertUnorderedList")||h("InsertOrderedList")?v(e):(E.forced_root_block||w.getParent(_.getNode(),w.isBlock)||S.apply("div"),i(_.getSelectedBlocks(),function(i){if("LI"!=i.nodeName){var a=r.getParam("indent_use_margin",!1)?"margin":"padding";a+="rtl"==w.getStyle(i,"direction",!0)?"Right":"Left","outdent"==e?(o=Math.max(0,parseInt(i.style[a]||0,10)-t),w.setStyle(i,a,o?o+n:"")):(o=parseInt(i.style[a]||0,10)+t+n,w.setStyle(i,a,o))}}))},mceRepaint:function(){if(c)try{C(d),_.getSel()&&_.getSel().selectAllChildren(r.getBody()),_.collapse(d),x()}catch(e){}},InsertHorizontalRule:function(){r.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){r.hasVisual=!r.hasVisual,r.addVisual()},mceReplaceContent:function(e,t,n){r.execCommand("mceInsertContent",!1,n.replace(/\{\$selection\}/g,_.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=w.getParent(_.getNode(),"a"),n.href=n.href.replace(" ","%20"),r&&n.href||S.remove("link"),n.href&&S.apply("link",n,r)},selectAll:function(){var e=w.getRoot(),t;_.getRng().setStart?(t=w.createRng(),t.setStart(e,0),t.setEnd(e,e.childNodes.length),_.setRng(t)):(t=_.getRng(),t.item||(t.moveToElementText(e),t.select()))},"delete":function(){v("Delete");var e=r.getBody();w.isEmpty(e)&&(r.setContent(""),e.firstChild&&w.isBlock(e.firstChild)?r.selection.setCursorLocation(e.firstChild,0):r.selection.setCursorLocation(e,0))},mceNewDocument:function(){r.setContent("")}}),g({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t="align"+e.substring(7),n=_.isCollapsed()?[w.getParent(_.getNode(),w.isBlock)]:_.getSelectedBlocks(),r=a(n,function(e){return!!S.matchNode(e,t)});return-1!==s(r,d)},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return y(e)},mceBlockQuote:function(){return y("blockquote")},Outdent:function(){var e;if(E.inline_styles){if((e=w.getParent(_.getStart(),w.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return d;if((e=w.getParent(_.getEnd(),w.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return d
-}return h("InsertUnorderedList")||h("InsertOrderedList")||!E.inline_styles&&!!w.getParent(_.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var t=w.getParent(_.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"===e&&"OL"===t.tagName)}},"state"),g({"FontSize,FontName":function(e){var t=0,n;return(n=w.getParent(_.getNode(),"span"))&&(t="fontsize"==e?n.style.fontSize:n.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()),t}},"value"),g({Undo:function(){r.undoManager.undo()},Redo:function(){r.undoManager.redo()}})}}),r(F,[p],function(e){function t(e,i){var o=this,a,s;if(e=r(e),i=o.settings=i||{},/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e))return void(o.source=e);var l=0===e.indexOf("//");0!==e.indexOf("/")||l||(e=(i.base_uri?i.base_uri.protocol||"http":"http")+"://mce_host"+e),/^[\w\-]*:?\/\//.test(e)||(s=i.base_uri?i.base_uri.path:new t(location.href).directory,e=""===i.base_uri.protocol?"//mce_host"+o.toAbsPath(s,e):(i.base_uri&&i.base_uri.protocol||"http")+"://mce_host"+o.toAbsPath(s,e)),e=e.replace(/@@/g,"(mce_at)"),e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e),n(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(t,n){var r=e[n];r&&(r=r.replace(/\(mce_at\)/g,"@@")),o[t]=r}),a=i.base_uri,a&&(o.protocol||(o.protocol=a.protocol),o.userInfo||(o.userInfo=a.userInfo),o.port||"mce_host"!==o.host||(o.port=a.port),o.host&&"mce_host"!==o.host||(o.host=a.host),o.source=""),l&&(o.protocol="")}var n=e.each,r=e.trim,i={ftp:21,http:80,https:443,mailto:25};return t.prototype={setPath:function(e){var t=this;e=/^(.*?)\/?(\w+)?$/.exec(e),t.path=e[0],t.directory=e[1],t.file=e[2],t.source="",t.getURI()},toRelative:function(e){var n=this,r;if("./"===e)return e;if(e=new t(e,{base_uri:n}),"mce_host"!=e.host&&n.host!=e.host&&e.host||n.port!=e.port||n.protocol!=e.protocol&&""!==e.protocol)return e.getURI();var i=n.getURI(),o=e.getURI();return i==o||"/"==i.charAt(i.length-1)&&i.substr(0,i.length-1)==o?i:(r=n.toRelPath(n.path,e.path),e.query&&(r+="?"+e.query),e.anchor&&(r+="#"+e.anchor),r)},toAbsolute:function(e,n){return e=new t(e,{base_uri:this}),e.getURI(n&&this.isSameOrigin(e))},isSameOrigin:function(e){if(this.host==e.host&&this.protocol==e.protocol){if(this.port==e.port)return!0;var t=i[this.protocol];if(t&&(this.port||t)==(e.port||t))return!0}return!1},toRelPath:function(e,t){var n,r=0,i="",o,a;if(e=e.substring(0,e.lastIndexOf("/")),e=e.split("/"),n=t.split("/"),e.length>=n.length)for(o=0,a=e.length;a>o;o++)if(o>=n.length||e[o]!=n[o]){r=o+1;break}if(e.length<n.length)for(o=0,a=n.length;a>o;o++)if(o>=e.length||e[o]!=n[o]){r=o+1;break}if(1===r)return t;for(o=0,a=e.length-(r-1);a>o;o++)i+="../";for(o=r-1,a=n.length;a>o;o++)i+=o!=r-1?"/"+n[o]:n[o];return i},toAbsPath:function(e,t){var r,i=0,o=[],a,s;for(a=/\/$/.test(t)?"/":"",e=e.split("/"),t=t.split("/"),n(e,function(e){e&&o.push(e)}),e=o,r=t.length-1,o=[];r>=0;r--)0!==t[r].length&&"."!==t[r]&&(".."!==t[r]?i>0?i--:o.push(t[r]):i++);return r=e.length-i,s=0>=r?o.reverse().join("/"):e.slice(0,r).join("/")+"/"+o.reverse().join("/"),0!==s.indexOf("/")&&(s="/"+s),a&&s.lastIndexOf("/")!==s.length-1&&(s+=a),s},getURI:function(e){var t,n=this;return(!n.source||e)&&(t="",e||(t+=n.protocol?n.protocol+"://":"//",n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},t}),r(z,[p],function(e){function t(){}var n=e.each,r=e.extend,i,o;return t.extend=i=function(e){function t(){var e,t,n,r=this;if(!o&&(r.init&&r.init.apply(r,arguments),t=r.Mixins))for(e=t.length;e--;)n=t[e],n.init&&n.init.apply(r,arguments)}function a(){return this}function s(e,t){return function(){var n=this,r=n._super,i;return n._super=c[e],i=t.apply(n,arguments),n._super=r,i}}var l=this,c=l.prototype,u,d,f;o=!0,u=new l,o=!1,e.Mixins&&(n(e.Mixins,function(t){t=t;for(var n in t)"init"!==n&&(e[n]=t[n])}),c.Mixins&&(e.Mixins=c.Mixins.concat(e.Mixins))),e.Methods&&n(e.Methods.split(","),function(t){e[t]=a}),e.Properties&&n(e.Properties.split(","),function(t){var n="_"+t;e[t]=function(e){var t=this,r;return e!==r?(t[n]=e,t):t[n]}}),e.Statics&&n(e.Statics,function(e,n){t[n]=e}),e.Defaults&&c.Defaults&&(e.Defaults=r({},c.Defaults,e.Defaults));for(d in e)f=e[d],u[d]="function"==typeof f&&c[d]?s(d,f):f;return t.prototype=u,t.constructor=t,t.extend=i,t},t}),r(W,[p],function(e){function t(e){function t(){return!1}function n(){return!0}function r(r,i){var o,a,s,u;if(r=r.toLowerCase(),i=i||{},i.type=r,i.target||(i.target=l),i.preventDefault||(i.preventDefault=function(){i.isDefaultPrevented=n},i.stopPropagation=function(){i.isPropagationStopped=n},i.stopImmediatePropagation=function(){i.isImmediatePropagationStopped=n},i.isDefaultPrevented=t,i.isPropagationStopped=t,i.isImmediatePropagationStopped=t),e.beforeFire&&e.beforeFire(i),o=c[r])for(a=0,s=o.length;s>a;a++){if(o[a]=u=o[a],i.isImmediatePropagationStopped())return i.stopPropagation(),i;if(u.call(l,i)===!1)return i.preventDefault(),i}return i}function i(e,n,r){var i,o,a;if(n===!1&&(n=t),n)for(o=e.toLowerCase().split(" "),a=o.length;a--;)e=o[a],i=c[e],i||(i=c[e]=[],u(e,!0)),r?i.unshift(n):i.push(n);return s}function o(e,t){var n,r,i,o,a;if(e)for(o=e.toLowerCase().split(" "),n=o.length;n--;){if(e=o[n],r=c[e],!e){for(i in c)u(i,!1),delete c[i];return s}if(r){if(t)for(a=r.length;a--;)r[a]===t&&r.splice(a,1);else r.length=0;r.length||(u(e,!1),delete c[e])}}else{for(e in c)u(e,!1);c={}}return s}function a(e){return e=e.toLowerCase(),!(!c[e]||0===c[e].length)}var s=this,l,c={},u;e=e||{},l=e.scope||s,u=e.toggleEvent||t,s.fire=r,s.on=i,s.off=o,s.has=a}var n=e.makeMap("focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover draggesture dragdrop drop drag submit"," ");return t.isNative=function(e){return!!n[e.toLowerCase()]},t}),r(V,[z],function(e){function t(e){for(var t=[],n=e.length,r;n--;)r=e[n],r.__checked||(t.push(r),r.__checked=1);for(n=t.length;n--;)delete t[n].__checked;return t}var n=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,r=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i=/^\s*|\s*$/g,o,a=e.extend({init:function(e){function t(e){return e?(e=e.toLowerCase(),function(t){return"*"===e||t.type===e}):void 0}function o(e){return e?function(t){return t._name===e}:void 0}function a(e){return e?(e=e.split("."),function(t){for(var n=e.length;n--;)if(!t.hasClass(e[n]))return!1;return!0}):void 0}function s(e,t,n){return e?function(r){var i=r[e]?r[e]():"";return t?"="===t?i===n:"*="===t?i.indexOf(n)>=0:"~="===t?(" "+i+" ").indexOf(" "+n+" ")>=0:"!="===t?i!=n:"^="===t?0===i.indexOf(n):"$="===t?i.substr(i.length-n.length)===n:!1:!!n}:void 0}function l(e){var t;return e?(e=/(?:not\((.+)\))|(.+)/i.exec(e),e[1]?(t=u(e[1],[]),function(e){return!d(e,t)}):(e=e[2],function(t,n,r){return"first"===e?0===n:"last"===e?n===r-1:"even"===e?n%2===0:"odd"===e?n%2===1:t[e]?t[e]():!1})):void 0}function c(e,r,c){function u(e){e&&r.push(e)}var d;return d=n.exec(e.replace(i,"")),u(t(d[1])),u(o(d[2])),u(a(d[3])),u(s(d[4],d[5],d[6])),u(l(d[7])),r.psuedo=!!d[7],r.direct=c,r}function u(e,t){var n=[],i,o,a;do if(r.exec(""),o=r.exec(e),o&&(e=o[3],n.push(o[1]),o[2])){i=o[3];break}while(o);for(i&&u(i,t),e=[],a=0;a<n.length;a++)">"!=n[a]&&e.push(c(n[a],[],">"===n[a-1]));return t.push(e),t}var d=this.match;this._selectors=u(e,[])},match:function(e,t){var n,r,i,o,a,s,l,c,u,d,f,p,h;for(t=t||this._selectors,n=0,r=t.length;r>n;n++){for(a=t[n],o=a.length,h=e,p=0,i=o-1;i>=0;i--)for(c=a[i];h;){if(c.psuedo)for(f=h.parent().items(),u=d=f.length;u--&&f[u]!==h;);for(s=0,l=c.length;l>s;s++)if(!c[s](h,u,d)){s=l+1;break}if(s===l){p++;break}if(i===o-1)break;h=h.parent()}if(p===o)return!0}return!1},find:function(e){function n(e,t,i){var o,a,s,l,c,u=t[i];for(o=0,a=e.length;a>o;o++){for(c=e[o],s=0,l=u.length;l>s;s++)if(!u[s](c,o,a)){s=l+1;break}if(s===l)i==t.length-1?r.push(c):c.items&&n(c.items(),t,i+1);else if(u.direct)return;c.items&&n(c.items(),t,i)}}var r=[],i,s,l=this._selectors;if(e.items){for(i=0,s=l.length;s>i;i++)n(e.items(),l[i],0);s>1&&(r=t(r))}return o||(o=a.Collection),new o(r)}});return a}),r(U,[p,V,z],function(e,t,n){var r,i,o=Array.prototype.push,a=Array.prototype.slice;return i={length:0,init:function(e){e&&this.add(e)},add:function(t){var n=this;return e.isArray(t)?o.apply(n,t):t instanceof r?n.add(t.toArray()):o.call(n,t),n},set:function(e){var t=this,n=t.length,r;for(t.length=0,t.add(e),r=t.length;n>r;r++)delete t[r];return t},filter:function(e){var n=this,i,o,a=[],s,l;for("string"==typeof e?(e=new t(e),l=function(t){return e.match(t)}):l=e,i=0,o=n.length;o>i;i++)s=n[i],l(s)&&a.push(s);return new r(a)},slice:function(){return new r(a.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},each:function(t){return e.each(this,t),this},toArray:function(){return e.toArray(this)},indexOf:function(e){for(var t=this,n=t.length;n--&&t[n]!==e;);return n},reverse:function(){return new r(e.toArray(this).reverse())},hasClass:function(e){return this[0]?this[0].hasClass(e):!1},prop:function(e,t){var n=this,r,i;return t!==r?(n.each(function(n){n[e]&&n[e](t)}),n):(i=n[0],i&&i[e]?i[e]():void 0)},exec:function(t){var n=this,r=e.toArray(arguments).slice(1);return n.each(function(e){e[t]&&e[t].apply(e,r)}),n},remove:function(){for(var e=this.length;e--;)this[e].remove();return this}},e.each("fire on off show hide addClass removeClass append prepend before after reflow".split(" "),function(t){i[t]=function(){var n=e.toArray(arguments);return this.each(function(e){t in e&&e[t].apply(e,n)}),this}}),e.each("text name disabled active selected checked visible parent value data".split(" "),function(e){i[e]=function(t){return this.prop(e,t)}}),r=n.extend(i),t.Collection=r,r}),r(q,[p,y],function(e,t){return{id:function(){return t.DOM.uniqueId()},createFragment:function(e){return t.DOM.createFragment(e)},getWindowSize:function(){return t.DOM.getViewPort()},getSize:function(e){var t,n;if(e.getBoundingClientRect){var r=e.getBoundingClientRect();t=Math.max(r.width||r.right-r.left,e.offsetWidth),n=Math.max(r.height||r.bottom-r.bottom,e.offsetHeight)}else t=e.offsetWidth,n=e.offsetHeight;return{width:t,height:n}},getPos:function(e,n){return t.DOM.getPos(e,n)},getViewPort:function(e){return t.DOM.getViewPort(e)},get:function(e){return document.getElementById(e)},addClass:function(e,n){return t.DOM.addClass(e,n)},removeClass:function(e,n){return t.DOM.removeClass(e,n)},hasClass:function(e,n){return t.DOM.hasClass(e,n)},toggleClass:function(e,n,r){return t.DOM.toggleClass(e,n,r)},css:function(e,n,r){return t.DOM.setStyle(e,n,r)},on:function(e,n,r,i){return t.DOM.bind(e,n,r,i)},off:function(e,n,r){return t.DOM.unbind(e,n,r)},fire:function(e,n,r){return t.DOM.fire(e,n,r)},innerHtml:function(e,n){t.DOM.setHTML(e,n)}}}),r($,[z,p,W,U,q],function(e,t,n,r,i){function o(e){return e._eventDispatcher||(e._eventDispatcher=new n({scope:e,toggleEvent:function(t,r){r&&n.isNative(t)&&(e._nativeEvents||(e._nativeEvents={}),e._nativeEvents[t]=!0,e._rendered&&e.bindPendingEvents())}})),e._eventDispatcher}var a={},s="onmousewheel"in document,l=!1,c="mce-",u=e.extend({Statics:{elementIdCache:a,classPrefix:c},isRtl:function(){return u.rtl},classPrefix:c,init:function(e){var n=this,r,o;if(n.settings=e=t.extend({},n.Defaults,e),n._id=e.id||i.id(),n._text=n._name="",n._width=n._height=0,n._aria={role:e.role},r=e.classes)for(r=r.split(" "),r.map={},o=r.length;o--;)r.map[r[o]]=!0;n._classes=r||[],n.visible(!0),t.each("title text width height name classes visible disabled active value".split(" "),function(t){var r=e[t],i;r!==i?n[t](r):n["_"+t]===i&&(n["_"+t]=!1)}),n.on("click",function(){return n.disabled()?!1:void 0}),e.classes&&t.each(e.classes.split(" "),function(e){n.addClass(e)}),n.settings=e,n._borderBox=n.parseBox(e.border),n._paddingBox=n.parseBox(e.padding),n._marginBox=n.parseBox(e.margin),e.hidden&&n.hide()},Properties:"parent,title,text,width,height,disabled,active,name,value",Methods:"renderHtml",getContainerElm:function(){return document.body},getParentCtrl:function(e){for(var t,n=this.getRoot().controlIdLookup;e&&n&&!(t=n[e.id]);)e=e.parentNode;return t},parseBox:function(e){var t,n=10;if(e)return"number"==typeof e?(e=e||0,{top:e,left:e,bottom:e,right:e}):(e=e.split(" "),t=e.length,1===t?e[1]=e[2]=e[3]=e[0]:2===t?(e[2]=e[0],e[3]=e[1]):3===t&&(e[3]=e[1]),{top:parseInt(e[0],n)||0,right:parseInt(e[1],n)||0,bottom:parseInt(e[2],n)||0,left:parseInt(e[3],n)||0})},borderBox:function(){return this._borderBox},paddingBox:function(){return this._paddingBox},marginBox:function(){return this._marginBox},measureBox:function(e,t){function n(t){var n=document.defaultView;return n?(t=t.replace(/[A-Z]/g,function(e){return"-"+e}),n.getComputedStyle(e,null).getPropertyValue(t)):e.currentStyle[t]}function r(e){var t=parseFloat(n(e),10);return isNaN(t)?0:t}return{top:r(t+"TopWidth"),right:r(t+"RightWidth"),bottom:r(t+"BottomWidth"),left:r(t+"LeftWidth")}},initLayoutRect:function(){var e=this,t=e.settings,n,r,o=e.getEl(),a,s,l,c,u,d,f,p;n=e._borderBox=e._borderBox||e.measureBox(o,"border"),e._paddingBox=e._paddingBox||e.measureBox(o,"padding"),e._marginBox=e._marginBox||e.measureBox(o,"margin"),p=i.getSize(o),d=t.minWidth,f=t.minHeight,l=d||p.width,c=f||p.height,a=t.width,s=t.height,u=t.autoResize,u="undefined"!=typeof u?u:!a&&!s,a=a||l,s=s||c;var h=n.left+n.right,m=n.top+n.bottom,g=t.maxWidth||65535,v=t.maxHeight||65535;return e._layoutRect=r={x:t.x||0,y:t.y||0,w:a,h:s,deltaW:h,deltaH:m,contentW:a-h,contentH:s-m,innerW:a-h,innerH:s-m,startMinWidth:d||0,startMinHeight:f||0,minW:Math.min(l,g),minH:Math.min(c,v),maxW:g,maxH:v,autoResize:u,scrollW:0},e._lastLayoutRect={},r},layoutRect:function(e){var t=this,n=t._layoutRect,r,i,o,a,s,l;return n||(n=t.initLayoutRect()),e?(o=n.deltaW,a=n.deltaH,e.x!==s&&(n.x=e.x),e.y!==s&&(n.y=e.y),e.minW!==s&&(n.minW=e.minW),e.minH!==s&&(n.minH=e.minH),i=e.w,i!==s&&(i=i<n.minW?n.minW:i,i=i>n.maxW?n.maxW:i,n.w=i,n.innerW=i-o),i=e.h,i!==s&&(i=i<n.minH?n.minH:i,i=i>n.maxH?n.maxH:i,n.h=i,n.innerH=i-a),i=e.innerW,i!==s&&(i=i<n.minW-o?n.minW-o:i,i=i>n.maxW-o?n.maxW-o:i,n.innerW=i,n.w=i+o),i=e.innerH,i!==s&&(i=i<n.minH-a?n.minH-a:i,i=i>n.maxH-a?n.maxH-a:i,n.innerH=i,n.h=i+a),e.contentW!==s&&(n.contentW=e.contentW),e.contentH!==s&&(n.contentH=e.contentH),r=t._lastLayoutRect,(r.x!==n.x||r.y!==n.y||r.w!==n.w||r.h!==n.h)&&(l=u.repaintControls,l&&l.map&&!l.map[t._id]&&(l.push(t),l.map[t._id]=!0),r.x=n.x,r.y=n.y,r.w=n.w,r.h=n.h),t):n},repaint:function(){var e=this,t,n,r,i,o=0,a=0,s,l;l=document.createRange?function(e){return e}:Math.round,t=e.getEl().style,r=e._layoutRect,s=e._lastRepaintRect||{},i=e._borderBox,o=i.left+i.right,a=i.top+i.bottom,r.x!==s.x&&(t.left=l(r.x)+"px",s.x=r.x),r.y!==s.y&&(t.top=l(r.y)+"px",s.y=r.y),r.w!==s.w&&(t.width=l(r.w-o)+"px",s.w=r.w),r.h!==s.h&&(t.height=l(r.h-a)+"px",s.h=r.h),e._hasBody&&r.innerW!==s.innerW&&(n=e.getEl("body").style,n.width=l(r.innerW)+"px",s.innerW=r.innerW),e._hasBody&&r.innerH!==s.innerH&&(n=n||e.getEl("body").style,n.height=l(r.innerH)+"px",s.innerH=r.innerH),e._lastRepaintRect=s,e.fire("repaint",{},!1)},on:function(e,t){function n(e){var t,n;return"string"!=typeof e?e:function(i){return t||r.parentsAndSelf().each(function(r){var i=r.settings.callbacks;return i&&(t=i[e])?(n=r,!1):void 0}),t.call(n,i)}}var r=this;return o(r).on(e,n(t)),r},off:function(e,t){return o(this).off(e,t),this},fire:function(e,t,n){var r=this;if(t=t||{},t.control||(t.control=r),t=o(r).fire(e,t),n!==!1&&r.parent)for(var i=r.parent();i&&!t.isPropagationStopped();)i.fire(e,t,!1),i=i.parent();return t},hasEventListeners:function(e){return o(this).has(e)},parents:function(e){var t=this,n,i=new r;for(n=t.parent();n;n=n.parent())i.add(n);return e&&(i=i.filter(e)),i},parentsAndSelf:function(e){return new r(this).add(this.parents(e))},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},findCommonAncestor:function(e,t){for(var n;e;){for(n=t;n&&e!=n;)n=n.parent();if(e==n)break;e=e.parent()}return e},hasClass:function(e,t){var n=this._classes[t||"control"];return e=this.classPrefix+e,n&&!!n.map[e]},addClass:function(e,t){var n=this,r,i;return e=this.classPrefix+e,r=n._classes[t||"control"],r||(r=[],r.map={},n._classes[t||"control"]=r),r.map[e]||(r.map[e]=e,r.push(e),n._rendered&&(i=n.getEl(t),i&&(i.className=r.join(" ")))),n},removeClass:function(e,t){var n=this,r,i,o;if(e=this.classPrefix+e,r=n._classes[t||"control"],r&&r.map[e])for(delete r.map[e],i=r.length;i--;)r[i]===e&&r.splice(i,1);return n._rendered&&(o=n.getEl(t),o&&(o.className=r.join(" "))),n},toggleClass:function(e,t,n){var r=this;return t?r.addClass(e,n):r.removeClass(e,n),r},classes:function(e){var t=this._classes[e||"control"];return t?t.join(" "):""},innerHtml:function(e){return i.innerHtml(this.getEl(),e),this},getEl:function(e,t){var n,r=e?this._id+"-"+e:this._id;return n=a[r]=(t===!0?null:a[r])||i.get(r)},visible:function(e){var t=this,n;return"undefined"!=typeof e?(t._visible!==e&&(t._rendered&&(t.getEl().style.display=e?"":"none"),t._visible=e,n=t.parent(),n&&(n._lastRect=null),t.fire(e?"show":"hide")),t):t._visible},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}return this},blur:function(){return this.getEl().blur(),this},aria:function(e,t){var n=this,r=n.getEl(n.ariaTarget);return"undefined"==typeof t?n._aria[e]:(n._aria[e]=t,n._rendered&&r.setAttribute("role"==e?e:"aria-"+e,t),n)},encode:function(e,t){return t!==!1&&(e=this.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},translate:function(e){return u.translate?u.translate(e):e},before:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t),!0),t},after:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t)),t},remove:function(){var e=this,t=e.getEl(),n=e.parent(),r,o;if(e.items){var s=e.items().toArray();for(o=s.length;o--;)s[o].remove()}n&&n.items&&(r=[],n.items().each(function(t){t!==e&&r.push(t)}),n.items().set(r),n._lastRect=null),e._eventsRoot&&e._eventsRoot==e&&i.off(t);var l=e.getRoot().controlIdLookup;if(l&&delete l[e._id],delete a[e._id],t&&t.parentNode){var c=t.getElementsByTagName("*");for(o=c.length;o--;)delete a[c[o].id];t.parentNode.removeChild(t)}return e._rendered=!1,e},renderBefore:function(e){var t=this;return e.parentNode.insertBefore(i.createFragment(t.renderHtml()),e),t.postRender(),t},renderTo:function(e){var t=this;return e=e||t.getContainerElm(),e.appendChild(i.createFragment(t.renderHtml())),t.postRender(),t},postRender:function(){var e=this,t=e.settings,n,r,o,a,s;for(a in t)0===a.indexOf("on")&&e.on(a.substr(2),t[a]);if(e._eventsRoot){for(o=e.parent();!s&&o;o=o.parent())s=o._eventsRoot;if(s)for(a in s._nativeEvents)e._nativeEvents[a]=!0}e.bindPendingEvents(),t.style&&(n=e.getEl(),n&&(n.setAttribute("style",t.style),n.style.cssText=t.style)),e._visible||i.css(e.getEl(),"display","none"),e.settings.border&&(r=e.borderBox(),i.css(e.getEl(),{"border-top-width":r.top,"border-right-width":r.right,"border-bottom-width":r.bottom,"border-left-width":r.left}));var l=e.getRoot();l.controlIdLookup||(l.controlIdLookup={}),l.controlIdLookup[e._id]=e;for(var c in e._aria)e.aria(c,e._aria[c]);e.fire("postrender",{},!1)},scrollIntoView:function(e){function t(e,t){var n,r,i=e;for(n=r=0;i&&i!=t&&i.nodeType;)n+=i.offsetLeft||0,r+=i.offsetTop||0,i=i.offsetParent;return{x:n,y:r}}var n=this.getEl(),r=n.parentNode,i,o,a,s,l,c,u=t(n,r);return i=u.x,o=u.y,a=n.offsetWidth,s=n.offsetHeight,l=r.clientWidth,c=r.clientHeight,"end"==e?(i-=l-a,o-=c-s):"center"==e&&(i-=l/2-a/2,o-=c/2-s/2),r.scrollLeft=i,r.scrollTop=o,this},bindPendingEvents:function(){function e(e){var t=o.getParentCtrl(e.target);t&&t.fire(e.type,e)}function t(){var e=d._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),d._lastHoverCtrl=null)}function n(e){var t=o.getParentCtrl(e.target),n=d._lastHoverCtrl,r=0,i,a,s;if(t!==n){if(d._lastHoverCtrl=t,a=t.parents().toArray().reverse(),a.push(t),n){for(s=n.parents().toArray().reverse(),s.push(n),r=0;r<s.length&&a[r]===s[r];r++);for(i=s.length-1;i>=r;i--)n=s[i],n.fire("mouseleave",{target:n.getEl()})}for(i=r;i<a.length;i++)t=a[i],t.fire("mouseenter",{target:t.getEl()})}}function r(e){e.preventDefault(),"mousewheel"==e.type?(e.deltaY=-1/40*e.wheelDelta,e.wheelDeltaX&&(e.deltaX=-1/40*e.wheelDeltaX)):(e.deltaX=0,e.deltaY=e.detail),e=o.fire("wheel",e)}var o=this,a,c,u,d,f,p;if(o._rendered=!0,f=o._nativeEvents){for(u=o.parents().toArray(),u.unshift(o),a=0,c=u.length;!d&&c>a;a++)d=u[a]._eventsRoot;for(d||(d=u[u.length-1]||o),o._eventsRoot=d,c=a,a=0;c>a;a++)u[a]._eventsRoot=d;var h=d._delegates;h||(h=d._delegates={});for(p in f){if(!f)return!1;"wheel"!==p||l?("mouseenter"===p||"mouseleave"===p?d._hasMouseEnter||(i.on(d.getEl(),"mouseleave",t),i.on(d.getEl(),"mouseover",n),d._hasMouseEnter=1):h[p]||(i.on(d.getEl(),p,e),h[p]=!0),f[p]=!1):s?i.on(o.getEl(),"mousewheel",r):i.on(o.getEl(),"DOMMouseScroll",r)}}},getRoot:function(){for(var e=this,t,n=[];e;){if(e.rootControl){t=e.rootControl;break}n.push(e),t=e,e=e.parent()}t||(t=this);for(var r=n.length;r--;)n[r].rootControl=t;return t},reflow:function(){return this.repaint(),this}});return u}),r(j,[],function(){var e={},t;return{add:function(t,n){e[t.toLowerCase()]=n},has:function(t){return!!e[t.toLowerCase()]},create:function(n,r){var i,o,a;if(!t){a=tinymce.ui;for(o in a)e[o.toLowerCase()]=a[o];t=!0}if("string"==typeof n?(r=r||{},r.type=n):(r=n,n=r.type),n=n.toLowerCase(),i=e[n],!i)throw new Error("Could not find control by type: "+n);return i=new i(r),i.type=n,i}}}),r(K,[],function(){return function(e){function t(e){return e=e||b,e&&e.getAttribute("role")}function n(e){for(var n,r=e||b;r=r.parentNode;)if(n=t(r))return n}function r(e){var t=b;return t?t.getAttribute("aria-"+e):void 0}function i(e){var t=e.tagName.toUpperCase();return"INPUT"==t||"TEXTAREA"==t}function o(e){return i(e)&&!e.hidden?!0:/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell)$/.test(t(e))?!0:!1}function a(e){function t(e){if(1==e.nodeType&&"none"!=e.style.display){o(e)&&n.push(e);for(var r=0;r<e.childNodes.length;r++)t(e.childNodes[r])}}var n=[];return t(e||y.getEl()),n}function s(e){var t,n;e=e||C,n=e.parents().toArray(),n.unshift(e);for(var r=0;r<n.length&&(t=n[r],!t.settings.ariaRoot);r++);return t}function l(e){var t=s(e),n=a(t.getEl());t.settings.ariaRemember&&"lastAriaIndex"in t?c(t.lastAriaIndex,n):c(0,n)}function c(e,t){return 0>e?e=t.length-1:e>=t.length&&(e=0),t[e]&&t[e].focus(),e}function u(e,t){var n=-1,r=s();t=t||a(r.getEl());for(var i=0;i<t.length;i++)t[i]===b&&(n=i);n+=e,r.lastAriaIndex=c(n,t)}function d(){var e=n();"tablist"==e?u(-1,a(b.parentNode)):C.parent().submenu?g():u(-1)}function f(){var e=t(),i=n();"tablist"==i?u(1,a(b.parentNode)):"menuitem"==e&&"menu"==i&&r("haspopup")?v():u(1)}function p(){u(-1)}function h(){var e=t(),i=n();"menuitem"==e&&"menubar"==i?v():"button"==e&&r("haspopup")?v({key:"down"}):u(1)}function m(e){var t=n();if("tablist"==t){var r=a(C.getEl("body"))[0];r&&r.focus()}else u(e.shiftKey?-1:1)}function g(){C.fire("cancel")}function v(e){e=e||{},C.fire("click",{target:b,aria:e})}var y=e.root,b,C;return b=document.activeElement,C=y.getParentCtrl(b),y.on("keydown",function(e){function t(e,t){i(b)||t(e)!==!1&&e.preventDefault()}if(!e.isDefaultPrevented())switch(e.keyCode){case 37:t(e,d);break;case 39:t(e,f);break;case 38:t(e,p);break;case 40:t(e,h);break;case 27:g();break;case 14:case 13:case 32:t(e,v);break;case 9:m(e)!==!1&&e.preventDefault()}}),y.on("focusin",function(e){b=e.target,C=e.control}),{focusFirst:l}}}),r(G,[$,U,V,j,K,p,q],function(e,t,n,r,i,o,a){var s={};return e.extend({layout:"",innerClass:"container-inner",init:function(e){var n=this;n._super(e),e=n.settings,n._fixed=e.fixed,n._items=new t,n.isRtl()&&n.addClass("rtl"),n.addClass("container"),n.addClass("container-body","body"),e.containerCls&&n.addClass(e.containerCls),n._layout=r.create((e.layout||n.layout)+"layout"),n.settings.items&&n.add(n.settings.items),n._hasBody=!0},items:function(){return this._items},find:function(e){return e=s[e]=s[e]||new n(e),e.find(this)},add:function(e){var t=this;return t.items().add(t.create(e)).parent(t),t},focus:function(e){var t=this,n,r,i;return e&&(r=t.keyboardNav||t.parents().eq(-1)[0].keyboardNav)?void r.focusFirst(t):(i=t.find("*"),t.statusbar&&i.add(t.statusbar.items()),i.each(function(e){return e.settings.autofocus?(n=null,!1):void(e.canFocus&&(n=n||e))}),n&&n.focus(),t)},replace:function(e,t){for(var n,r=this.items(),i=r.length;i--;)if(r[i]===e){r[i]=t;break}i>=0&&(n=t.getEl(),n&&n.parentNode.removeChild(n),n=e.getEl(),n&&n.parentNode.removeChild(n)),t.parent(this)},create:function(t){var n=this,i,a=[];return o.isArray(t)||(t=[t]),o.each(t,function(t){t&&(t instanceof e||("string"==typeof t&&(t={type:t}),i=o.extend({},n.settings.defaults,t),t.type=i.type=i.type||t.type||n.settings.defaultType||(i.defaults?i.defaults.type:null),t=r.create(i)),a.push(t))}),a},renderNew:function(){var e=this;return e.items().each(function(t,n){var r,i;t.parent(e),t._rendered||(r=e.getEl("body"),i=a.createFragment(t.renderHtml()),r.hasChildNodes()&&n<=r.childNodes.length-1?r.insertBefore(i,r.childNodes[n]):r.appendChild(i),t.postRender())}),e._layout.applyClasses(e),e._lastRect=null,e},append:function(e){return this.add(e).renderNew()},prepend:function(e){var t=this;return t.items().set(t.create(e).concat(t.items().toArray())),t.renderNew()},insert:function(e,t,n){var r=this,i,o,a;return e=r.create(e),i=r.items(),!n&&t<i.length-1&&(t+=1),t>=0&&t<i.length&&(o=i.slice(0,t).toArray(),a=i.slice(t).toArray(),i.set(o.concat(e,a))),r.renderNew()},fromJSON:function(e){var t=this;for(var n in e)t.find("#"+n).value(e[n]);return t},toJSON:function(){var e=this,t={};return e.find("*").each(function(e){var n=e.name(),r=e.value();n&&"undefined"!=typeof r&&(t[n]=r)}),t},preRender:function(){},renderHtml:function(){var e=this,t=e._layout,n=this.settings.role;return e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'"'+(n?' role="'+this.settings.role+'"':"")+'><div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this,t;return e.items().exec("postRender"),e._super(),e._layout.postRender(e),e._rendered=!0,e.settings.style&&a.css(e.getEl(),e.settings.style),e.settings.border&&(t=e.borderBox(),a.css(e.getEl(),{"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e.parent()||(e.keyboardNav=new i({root:e})),e},initLayoutRect:function(){var e=this,t=e._super();return e._layout.recalc(e),t},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;return n&&n.w==t.w&&n.h==t.h?void 0:(e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0)},reflow:function(){var t;if(this.visible()){for(e.repaintControls=[],e.repaintControls.map={},this.recalc(),t=e.repaintControls.length;t--;)e.repaintControls[t].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),e.repaintControls=[]}return this}})}),r(Y,[q],function(e){function t(){var e=document,t,n,r,i,o,a,s,l,c=Math.max;return t=e.documentElement,n=e.body,r=c(t.scrollWidth,n.scrollWidth),i=c(t.clientWidth,n.clientWidth),o=c(t.offsetWidth,n.offsetWidth),a=c(t.scrollHeight,n.scrollHeight),s=c(t.clientHeight,n.clientHeight),l=c(t.offsetHeight,n.offsetHeight),{width:o>r?i:r,height:l>a?s:a}}return function(n,r){function i(){return a.getElementById(r.handle||n)}var o,a=document,s,l,c,u,d,f;r=r||{},l=function(n){var l=t(),p,h;n.preventDefault(),s=n.button,p=i(),d=n.screenX,f=n.screenY,h=window.getComputedStyle?window.getComputedStyle(p,null).getPropertyValue("cursor"):p.runtimeStyle.cursor,o=a.createElement("div"),e.css(o,{position:"absolute",top:0,left:0,width:l.width,height:l.height,zIndex:2147483647,opacity:1e-4,background:"red",cursor:h}),a.body.appendChild(o),e.on(a,"mousemove",u),e.on(a,"mouseup",c),r.start(n)},u=function(e){return e.button!==s?c(e):(e.deltaX=e.screenX-d,e.deltaY=e.screenY-f,e.preventDefault(),void r.drag(e))},c=function(t){e.off(a,"mousemove",u),e.off(a,"mouseup",c),o.parentNode.removeChild(o),r.stop&&r.stop(t)},this.destroy=function(){e.off(i())},e.on(i(),"mousedown",l)}}),r(X,[q,Y],function(e,t){return{init:function(){var e=this;e.on("repaint",e.renderScroll)},renderScroll:function(){function n(){function t(t,a,s,l,c,u){var d,f,p,h,m,g,v,y,b;if(f=i.getEl("scroll"+t)){if(y=a.toLowerCase(),b=s.toLowerCase(),i.getEl("absend")&&e.css(i.getEl("absend"),y,i.layoutRect()[l]-1),!c)return void e.css(f,"display","none");e.css(f,"display","block"),d=i.getEl("body"),p=i.getEl("scroll"+t+"t"),h=d["client"+s]-2*o,h-=n&&r?f["client"+u]:0,m=d["scroll"+s],g=h/m,v={},v[y]=d["offset"+a]+o,v[b]=h,e.css(f,v),v={},v[y]=d["scroll"+a]*g,v[b]=h*g,e.css(p,v)}}var n,r,a;a=i.getEl("body"),n=a.scrollWidth>a.clientWidth,r=a.scrollHeight>a.clientHeight,t("h","Left","Width","contentW",n,"Height"),t("v","Top","Height","contentH",r,"Width")}function r(){function n(n,r,a,s,l){var c,u=i._id+"-scroll"+n,d=i.classPrefix;i.getEl().appendChild(e.createFragment('<div id="'+u+'" class="'+d+"scrollbar "+d+"scrollbar-"+n+'"><div id="'+u+'t" class="'+d+'scrollbar-thumb"></div></div>')),i.draghelper=new t(u+"t",{start:function(){c=i.getEl("body")["scroll"+r],e.addClass(e.get(u),d+"active")},drag:function(e){var t,u,d,f,p=i.layoutRect();u=p.contentW>p.innerW,d=p.contentH>p.innerH,f=i.getEl("body")["client"+a]-2*o,f-=u&&d?i.getEl("scroll"+n)["client"+l]:0,t=f/i.getEl("body")["scroll"+a],i.getEl("body")["scroll"+r]=c+e["delta"+s]/t},stop:function(){e.removeClass(e.get(u),d+"active")}})}i.addClass("scroll"),n("v","Top","Height","Y","Width"),n("h","Left","Width","X","Height")}var i=this,o=2;i.settings.autoScroll&&(i._hasScroll||(i._hasScroll=!0,r(),i.on("wheel",function(e){var t=i.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,n()}),e.on(i.getEl("body"),"scroll",n)),n())}}}),r(J,[G,X],function(e,t){return e.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[t],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),"undefined"==typeof n?n='<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div>":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'<div id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1" role="group">'+(e._preBodyHtml||"")+n+"</div>"}})}),r(Q,[q],function(e){function t(t,n,r){var i,o,a,s,l,c,u,d,f,p;return f=e.getViewPort(),o=e.getPos(n),a=o.x,s=o.y,t._fixed&&(a-=f.x,s-=f.y),i=t.getEl(),p=e.getSize(i),l=p.width,c=p.height,p=e.getSize(n),u=p.width,d=p.height,r=(r||"").split(""),"b"===r[0]&&(s+=d),"r"===r[1]&&(a+=u),"c"===r[0]&&(s+=Math.round(d/2)),"c"===r[1]&&(a+=Math.round(u/2)),"b"===r[3]&&(s-=c),"r"===r[4]&&(a-=l),"c"===r[3]&&(s-=Math.round(c/2)),"c"===r[4]&&(a-=Math.round(l/2)),{x:a,y:s,w:l,h:c}}return{testMoveRel:function(n,r){for(var i=e.getViewPort(),o=0;o<r.length;o++){var a=t(this,n,r[o]);if(this._fixed){if(a.x>0&&a.x+a.w<i.w&&a.y>0&&a.y+a.h<i.h)return r[o]}else if(a.x>i.x&&a.x+a.w<i.w+i.x&&a.y>i.y&&a.y+a.h<i.h+i.y)return r[o]}return r[0]},moveRel:function(e,n){"string"!=typeof n&&(n=this.testMoveRel(e,n));
-var r=t(this,e,n);return this.moveTo(r.x,r.y)},moveBy:function(e,t){var n=this,r=n.layoutRect();return n.moveTo(r.x+e,r.y+t),n},moveTo:function(t,n){function r(e,t,n){return 0>e?0:e+n>t?(e=t-n,0>e?0:e):e}var i=this;if(i.settings.constrainToViewport){var o=e.getViewPort(window),a=i.layoutRect();t=r(t,o.w+o.x,a.w),n=r(n,o.h+o.y,a.h)}return i._rendered?i.layoutRect({x:t,y:n}).repaint():(i.settings.x=t,i.settings.y=n),i.fire("move",{x:t,y:n}),i}}}),r(Z,[q],function(e){return{resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(t,n){if(1>=t||1>=n){var r=e.getWindowSize();t=1>=t?t*r.w:t,n=1>=n?n*r.h:n}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:n,w:t,h:n}).reflow()},resizeBy:function(e,t){var n=this,r=n.layoutRect();return n.resizeTo(r.w+e,r.h+t)}}}),r(et,[J,Q,Z,q],function(e,t,n,r){function i(e){var t;for(t=s.length;t--;)s[t]===e&&s.splice(t,1);for(t=l.length;t--;)l[t]===e&&l.splice(t,1)}var o,a,s=[],l=[],c,u=e.extend({Mixins:[t,n],init:function(e){function t(){var e,t=u.zIndex||65535,n;if(l.length)for(e=0;e<l.length;e++)l[e].modal&&(t++,n=l[e]),l[e].getEl().style.zIndex=t,l[e].zIndex=t,t++;var i=document.getElementById(d.classPrefix+"modal-block");n?r.css(i,"z-index",n.zIndex-1):i&&(i.parentNode.removeChild(i),c=!1),u.currentZIndex=t}function n(e,t){for(;e;){if(e==t)return!0;e=e.parent()}}function i(e){function t(t,n){for(var r,i=0;i<s.length;i++)if(s[i]!=e)for(r=s[i].parent();r&&(r=r.parent());)r==e&&s[i].fixed(t).moveBy(0,n).repaint()}var n=r.getViewPort().y;e.settings.autofix&&(e._fixed?e._autoFixY>n&&(e.fixed(!1).layoutRect({y:e._autoFixY}).repaint(),t(!1,e._autoFixY-n)):(e._autoFixY=e.layoutRect().y,e._autoFixY<n&&(e.fixed(!0).layoutRect({y:0}).repaint(),t(!0,n-e._autoFixY))))}var d=this;d._super(e),d._eventsRoot=d,d.addClass("floatpanel"),e.autohide&&(o||(o=function(e){for(var t=s.length;t--;){var r=s[t],i=r.getParentCtrl(e.target);if(r.settings.autohide){if(i&&(n(i,r)||r.parent()===i))continue;e=r.fire("autohide",{target:e.target}),e.isDefaultPrevented()||r.hide()}}},r.on(document,"click",o)),s.push(d)),e.autofix&&(a||(a=function(){var e;for(e=s.length;e--;)i(s[e])},r.on(window,"scroll",a)),d.on("move",function(){i(this)})),d.on("postrender show",function(e){if(e.control==d){var n,i=d.classPrefix;d.modal&&!c&&(n=r.createFragment('<div id="'+i+'modal-block" class="'+i+"reset "+i+'fade"></div>'),n=n.firstChild,d.getContainerElm().appendChild(n),setTimeout(function(){r.addClass(n,i+"in"),r.addClass(d.getEl(),i+"in")},0),c=!0),l.push(d),t()}}),d.on("close hide",function(e){if(e.control==d){for(var n=l.length;n--;)l[n]===d&&l.splice(n,1);t()}}),d.on("show",function(){d.parents().each(function(e){return e._fixed?(d.fixed(!0),!1):void 0})}),e.popover&&(d._preBodyHtml='<div class="'+d.classPrefix+'arrow"></div>',d.addClass("popover").addClass("bottom").addClass(d.isRtl()?"end":"start"))},fixed:function(e){var t=this;if(t._fixed!=e){if(t._rendered){var n=r.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+=n.y}t.toggleClass("fixed",e),t._fixed=e}return t},show:function(){var e=this,t,n=e._super();for(t=s.length;t--&&s[t]!==e;);return-1===t&&s.push(e),n},hide:function(){return i(this),this._super()},hideAll:function(){u.hideAll()},close:function(){var e=this;return e.fire("close"),e.remove()},remove:function(){i(this),this._super()},postRender:function(){var e=this;return e.settings.bodyRole&&this.getEl("body").setAttribute("role",e.settings.bodyRole),e._super()}});return u.hideAll=function(){for(var e=s.length;e--;){var t=s[e];t&&t.settings.autohide&&(t.hide(),s.splice(e,1))}},u}),r(tt,[et,J,q,Y],function(e,t,n,r){var i=e.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(e){var n=this;n._super(e),n.isRtl()&&n.addClass("rtl"),n.addClass("window"),n._fixed=!0,e.buttons&&(n.statusbar=new t({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:n.isRtl()?"start":"end",defaults:{type:"button"},items:e.buttons}),n.statusbar.addClass("foot"),n.statusbar.parent(n)),n.on("click",function(e){-1!=e.target.className.indexOf(n.classPrefix+"close")&&n.close()}),n.on("cancel",function(){n.close()}),n.aria("describedby",n.describedBy||n._id+"-none"),n.aria("label",e.title),n._fullscreen=!1},recalc:function(){var e=this,t=e.statusbar,r,i,o,a;e._fullscreen&&(e.layoutRect(n.getWindowSize()),e.layoutRect().contentH=e.layoutRect().innerH),e._super(),r=e.layoutRect(),e.settings.title&&!e._fullscreen&&(i=r.headerW,i>r.w&&(o=r.x-Math.max(0,i/2),e.layoutRect({w:i,x:o}),a=!0)),t&&(t.layoutRect({w:e.layoutRect().innerW}).recalc(),i=t.layoutRect().minW+r.deltaW,i>r.w&&(o=r.x-Math.max(0,i-r.w),e.layoutRect({w:i,x:o}),a=!0)),a&&e.recalc()},initLayoutRect:function(){var e=this,t=e._super(),r=0,i;if(e.settings.title&&!e._fullscreen){i=e.getEl("head");var o=n.getSize(i);t.headerW=o.width,t.headerH=o.height,r+=t.headerH}e.statusbar&&(r+=e.statusbar.layoutRect().h),t.deltaH+=r,t.minH+=r,t.h+=r;var a=n.getWindowSize();return t.x=Math.max(0,a.w/2-t.w/2),t.y=Math.max(0,a.h/2-t.h/2),t},renderHtml:function(){var e=this,t=e._layout,n=e._id,r=e.classPrefix,i=e.settings,o="",a="",s=i.html;return e.preRender(),t.preRender(e),i.title&&(o='<div id="'+n+'-head" class="'+r+'window-head"><div id="'+n+'-title" class="'+r+'title">'+e.encode(i.title)+'</div><button type="button" class="'+r+'close" aria-hidden="true">\xd7</button><div id="'+n+'-dragh" class="'+r+'dragh"></div></div>'),i.url&&(s='<iframe src="'+i.url+'" tabindex="-1"></iframe>'),"undefined"==typeof s&&(s=t.renderHtml(e)),e.statusbar&&(a=e.statusbar.renderHtml()),'<div id="'+n+'" class="'+e.classes()+'" hidefocus="1"><div class="'+e.classPrefix+'reset" role="application">'+o+'<div id="'+n+'-body" class="'+e.classes("body")+'">'+s+"</div>"+a+"</div></div>"},fullscreen:function(e){var t=this,r=document.documentElement,i,o=t.classPrefix,a;if(e!=t._fullscreen)if(n.on(window,"resize",function(){var e;if(t._fullscreen)if(i)t._timer||(t._timer=setTimeout(function(){var e=n.getWindowSize();t.moveTo(0,0).resizeTo(e.w,e.h),t._timer=0},50));else{e=(new Date).getTime();var r=n.getWindowSize();t.moveTo(0,0).resizeTo(r.w,r.h),(new Date).getTime()-e>50&&(i=!0)}}),a=t.layoutRect(),t._fullscreen=e,e){t._initial={x:a.x,y:a.y,w:a.w,h:a.h},t._borderBox=t.parseBox("0"),t.getEl("head").style.display="none",a.deltaH-=a.headerH+2,n.addClass(r,o+"fullscreen"),n.addClass(document.body,o+"fullscreen"),t.addClass("fullscreen");var s=n.getWindowSize();t.moveTo(0,0).resizeTo(s.w,s.h)}else t._borderBox=t.parseBox(t.settings.border),t.getEl("head").style.display="",a.deltaH+=a.headerH,n.removeClass(r,o+"fullscreen"),n.removeClass(document.body,o+"fullscreen"),t.removeClass("fullscreen"),t.moveTo(t._initial.x,t._initial.y).resizeTo(t._initial.w,t._initial.h);return t.reflow()},postRender:function(){var e=this,t;setTimeout(function(){e.addClass("in")},0),e._super(),e.statusbar&&e.statusbar.postRender(),e.focus(),this.dragHelper=new r(e._id+"-dragh",{start:function(){t={x:e.layoutRect().x,y:e.layoutRect().y}},drag:function(n){e.moveTo(t.x+n.deltaX,t.y+n.deltaY)}}),e.on("submit",function(t){t.isDefaultPrevented()||e.close()})},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e=this,t=e.classPrefix;e.dragHelper.destroy(),e._super(),e.statusbar&&this.statusbar.remove(),e._fullscreen&&(n.removeClass(document.documentElement,t+"fullscreen"),n.removeClass(document.body,t+"fullscreen"))},getContentWindow:function(){var e=this.getEl().getElementsByTagName("iframe")[0];return e?e.contentWindow:null}});return i}),r(nt,[tt],function(e){var t=e.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(n){var r,i=n.callback||function(){};switch(n.buttons){case t.OK_CANCEL:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}},{type:"button",text:"Cancel",onClick:function(e){e.control.parents()[1].close(),i(!1)}}];break;case t.YES_NO:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}}];break;case t.YES_NO_CANCEL:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close()}}];break;default:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}}]}return new e({padding:20,x:n.x,y:n.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:r,title:n.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:n.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:n.onClose,onCancel:function(){i(!1)}}).renderTo(document.body).reflow()},alert:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,t.msgBox(e)},confirm:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,e.buttons=t.OK_CANCEL,t.msgBox(e)}}});return t}),r(rt,[tt,nt],function(e,t){return function(n){function r(){return o.length?o[o.length-1]:void 0}var i=this,o=[];i.windows=o,i.open=function(t,r){var i;return n.editorManager.activeEditor=n,t.title=t.title||" ",t.url=t.url||t.file,t.url&&(t.width=parseInt(t.width||320,10),t.height=parseInt(t.height||240,10)),t.body&&(t.items={defaults:t.defaults,type:t.bodyType||"form",items:t.body}),t.url||t.buttons||(t.buttons=[{text:"Ok",subtype:"primary",onclick:function(){i.find("form")[0].submit()}},{text:"Cancel",onclick:function(){i.close()}}]),i=new e(t),o.push(i),i.on("close",function(){for(var e=o.length;e--;)o[e]===i&&o.splice(e,1);n.focus()}),t.data&&i.on("postRender",function(){this.find("*").each(function(e){var n=e.name();n in t.data&&e.value(t.data[n])})}),i.features=t||{},i.params=r||{},n.nodeChanged(),i.renderTo().reflow()},i.alert=function(e,r,i){t.alert(e,function(){r?r.call(i||this):n.focus()})},i.confirm=function(e,n,r){t.confirm(e,function(e){n.call(r||this,e)})},i.close=function(){r()&&r().close()},i.getParams=function(){return r()?r().params:null},i.setParams=function(e){r()&&(r().params=e)},i.getWindows=function(){return o}}}),r(it,[R,B,x,m,g,p],function(e,t,n,r,i,o){return function(a){function s(e,t){try{a.getDoc().execCommand(e,!1,t)}catch(n){}}function l(){var e=a.getDoc().documentMode;return e?e:6}function c(e){return e.isDefaultPrevented()}function u(){function t(e){var t=new i(function(){});o.each(a.getBody().getElementsByTagName("*"),function(e){"SPAN"==e.tagName&&e.setAttribute("mce-data-marked",1),!e.hasAttribute("data-mce-style")&&e.hasAttribute("style")&&a.dom.setAttrib(e,"style",e.getAttribute("style"))}),t.observe(a.getDoc(),{childList:!0,attributes:!0,subtree:!0,attributeFilter:["style"]}),a.getDoc().execCommand(e?"ForwardDelete":"Delete",!1,null);var n=a.selection.getRng(),r=n.startContainer.parentNode;o.each(t.takeRecords(),function(e){if(q.isChildOf(e.target,a.getBody())){if("style"==e.attributeName){var t=e.target.getAttribute("data-mce-style");t?e.target.setAttribute("style",t):e.target.removeAttribute("style")}o.each(e.addedNodes,function(e){if("SPAN"==e.nodeName&&!e.getAttribute("mce-data-marked")){var t,i;e==r&&(t=n.startOffset,i=e.firstChild),q.remove(e,!0),i&&(n.setStart(i,t),n.setEnd(i,t),a.selection.setRng(n))}})}}),t.disconnect(),o.each(a.dom.select("span[mce-data-marked]"),function(e){e.removeAttribute("mce-data-marked")})}var n=a.getDoc(),r="data:text/mce-internal,",i=window.MutationObserver,s,l;i||(s=!0,i=function(){function e(e){var t=e.relatedNode||e.target;n.push({target:t,addedNodes:[t]})}function t(e){var t=e.relatedNode||e.target;n.push({target:t,attributeName:e.attrName})}var n=[],r;this.observe=function(n){r=n,r.addEventListener("DOMSubtreeModified",e,!1),r.addEventListener("DOMNodeInsertedIntoDocument",e,!1),r.addEventListener("DOMNodeInserted",e,!1),r.addEventListener("DOMAttrModified",t,!1)},this.disconnect=function(){r.removeEventListener("DOMSubtreeModified",e,!1),r.removeEventListener("DOMNodeInsertedIntoDocument",e,!1),r.removeEventListener("DOMNodeInserted",e,!1),r.removeEventListener("DOMAttrModified",t,!1)},this.takeRecords=function(){return n}}),a.on("keydown",function(n){var r=n.keyCode==U,i=e.metaKeyPressed(n);if(!c(n)&&(r||n.keyCode==V)){var o=a.selection.getRng(),s=o.startContainer,l=o.startOffset;if(!i&&o.collapsed&&3==s.nodeType&&(r?l<s.data.length:l>0))return;n.preventDefault(),i&&a.selection.getSel().modify("extend",r?"forward":"backward","word"),t(r)}}),a.on("keypress",function(n){c(n)||$.isCollapsed()||!n.charCode||e.metaKeyPressed(n)||(n.preventDefault(),t(!0),a.selection.setContent(String.fromCharCode(n.charCode)))}),a.addCommand("Delete",function(){t()}),a.addCommand("ForwardDelete",function(){t(!0)}),s||(a.on("dragstart",function(e){var t;a.selection.isCollapsed()&&"IMG"==e.target.tagName&&$.select(e.target),l=$.getRng(),t=a.selection.getContent(),t.length>0&&e.dataTransfer.setData("URL","data:text/mce-internal,"+escape(t))}),a.on("drop",function(e){if(!c(e)){var i=e.dataTransfer.getData("URL");if(!i||-1==i.indexOf(r)||!n.caretRangeFromPoint)return;i=unescape(i.substr(r.length)),n.caretRangeFromPoint&&(e.preventDefault(),window.setTimeout(function(){var r=n.caretRangeFromPoint(e.x,e.y);l&&($.setRng(l),l=null),t(),$.setRng(r),a.insertContent(i)},0))}}),a.on("cut",function(e){!c(e)&&e.clipboardData&&(e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/html",a.selection.getContent()),e.clipboardData.setData("text/plain",a.selection.getContent({format:"text"})),t(!0))}))}function d(){function e(e){var t=q.create("body"),n=e.cloneContents();return t.appendChild(n),$.serializer.serialize(t,{format:"html"})}function n(n){if(!n.setStart){if(n.item)return!1;var r=n.duplicate();return r.moveToElementText(a.getBody()),t.compareRanges(n,r)}var i=e(n),o=q.createRng();o.selectNode(a.getBody());var s=e(o);return i===s}a.on("keydown",function(e){var t=e.keyCode,r,i;if(!c(e)&&(t==U||t==V)){if(r=a.selection.isCollapsed(),i=a.getBody(),r&&!q.isEmpty(i))return;if(!r&&!n(a.selection.getRng()))return;e.preventDefault(),a.setContent(""),i.firstChild&&q.isBlock(i.firstChild)?a.selection.setCursorLocation(i.firstChild,0):a.selection.setCursorLocation(i,0),a.nodeChanged()}})}function f(){a.on("keydown",function(t){!c(t)&&65==t.keyCode&&e.metaKeyPressed(t)&&(t.preventDefault(),a.execCommand("SelectAll"))})}function p(){a.settings.content_editable||(q.bind(a.getDoc(),"focusin",function(){$.setRng($.getRng())}),q.bind(a.getDoc(),"mousedown",function(e){e.target==a.getDoc().documentElement&&(a.getBody().focus(),$.setRng($.getRng()))}))}function h(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===V&&$.isCollapsed()&&0===$.getRng(!0).startOffset){var t=$.getNode(),n=t.previousSibling;if("HR"==t.nodeName)return q.remove(t),void e.preventDefault();n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(q.remove(n),e.preventDefault())}})}function m(){window.Range.prototype.getClientRects||a.on("mousedown",function(e){if(!c(e)&&"HTML"===e.target.nodeName){var t=a.getBody();t.blur(),setTimeout(function(){t.focus()},0)}})}function g(){a.on("click",function(e){e=e.target,/^(IMG|HR)$/.test(e.nodeName)&&$.getSel().setBaseAndExtent(e,0,e,1),"A"==e.nodeName&&q.hasClass(e,"mce-item-anchor")&&$.select(e),a.nodeChanged()})}function v(){function e(){var e=q.getAttribs($.getStart().cloneNode(!1));return function(){var t=$.getStart();t!==a.getBody()&&(q.setAttrib(t,"style",null),W(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}}function t(){return!$.isCollapsed()&&q.getParent($.getStart(),q.isBlock)!=q.getParent($.getEnd(),q.isBlock)}a.on("keypress",function(n){var r;return c(n)||8!=n.keyCode&&46!=n.keyCode||!t()?void 0:(r=e(),a.getDoc().execCommand("delete",!1,null),r(),n.preventDefault(),!1)}),q.bind(a.getDoc(),"cut",function(n){var r;!c(n)&&t()&&(r=e(),setTimeout(function(){r()},0))})}function y(){var e,n;a.on("selectionchange",function(){n&&(clearTimeout(n),n=0),n=window.setTimeout(function(){if(!a.removed){var n=$.getRng();e&&t.compareRanges(n,e)||(a.nodeChanged(),e=n)}},50)})}function b(){document.body.setAttribute("role","application")}function C(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===V&&$.isCollapsed()&&0===$.getRng(!0).startOffset){var t=$.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})}function x(){l()>7||(s("RespectVisibilityInDesign",!0),a.contentStyles.push(".mceHideBrInPre pre br {display: none}"),q.addClass(a.getBody(),"mceHideBrInPre"),K.addNodeFilter("pre",function(e){for(var t=e.length,r,i,o,a;t--;)for(r=e[t].getAll("br"),i=r.length;i--;)o=r[i],a=o.prev,a&&3===a.type&&"\n"!=a.value.charAt(a.value-1)?a.value+="\n":o.parent.insert(new n("#text",3),o,!0).value="\n"}),G.addNodeFilter("pre",function(e){for(var t=e.length,n,r,i,o;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)i=n[r],o=i.prev,o&&3==o.type&&(o.value=o.value.replace(/\r?\n$/,""))}))}function w(){q.bind(a.getBody(),"mouseup",function(){var e,t=$.getNode();"IMG"==t.nodeName&&((e=q.getStyle(t,"width"))&&(q.setAttrib(t,"width",e.replace(/[^0-9%]+/g,"")),q.setStyle(t,"width","")),(e=q.getStyle(t,"height"))&&(q.setAttrib(t,"height",e.replace(/[^0-9%]+/g,"")),q.setStyle(t,"height","")))})}function _(){a.on("keydown",function(t){var n,r,i,o,s;if(!c(t)&&t.keyCode==e.BACKSPACE&&(n=$.getRng(),r=n.startContainer,i=n.startOffset,o=q.getRoot(),s=r,n.collapsed&&0===i)){for(;s&&s.parentNode&&s.parentNode.firstChild==s&&s.parentNode!=o;)s=s.parentNode;"BLOCKQUOTE"===s.tagName&&(a.formatter.toggle("blockquote",null,s),n=q.createRng(),n.setStart(r,0),n.setEnd(r,0),$.setRng(n))}})}function N(){function e(){a._refreshContentEditable(),s("StyleWithCSS",!1),s("enableInlineTableEditing",!1),j.object_resizing||s("enableObjectResizing",!1)}j.readonly||a.on("BeforeExecCommand MouseDown",e)}function E(){function e(){W(q.select("a"),function(e){var t=e.parentNode,n=q.getRoot();if(t.lastChild===e){for(;t&&!q.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}q.add(t,"br",{"data-mce-bogus":1})}})}a.on("SetContent ExecCommand",function(t){("setcontent"==t.type||"mceInsertLink"===t.command)&&e()})}function S(){j.forced_root_block&&a.on("init",function(){s("DefaultParagraphSeparator",j.forced_root_block)})}function k(){a.on("Undo Redo SetContent",function(e){e.initial||a.execCommand("mceRepaint")})}function T(){a.on("keydown",function(e){var t;c(e)||e.keyCode!=V||(t=a.getDoc().selection.createRange(),t&&t.item&&(e.preventDefault(),a.undoManager.beforeChange(),q.remove(t.item(0)),a.undoManager.add()))})}function R(){var e;l()>=10&&(e="",W("p div h1 h2 h3 h4 h5 h6".split(" "),function(t,n){e+=(n>0?",":"")+t+":empty"}),a.contentStyles.push(e+"{padding-right: 1px !important}"))}function A(){l()<9&&(K.addNodeFilter("noscript",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.firstChild,r&&n.attr("data-mce-innertext",r.value)}),G.addNodeFilter("noscript",function(e){for(var t=e.length,i,o,a;t--;)i=e[t],o=e[t].firstChild,o?o.value=r.decode(o.value):(a=i.attributes.map["data-mce-innertext"],a&&(i.attr("data-mce-innertext",null),o=new n("#text",3),o.value=a,o.raw=!0,i.append(o)))}))}function B(){function e(e,t){var n=i.createTextRange();try{n.moveToPoint(e,t)}catch(r){n=null}return n}function t(t){var r;t.button?(r=e(t.x,t.y),r&&(r.compareEndPoints("StartToStart",a)>0?r.setEndPoint("StartToStart",a):r.setEndPoint("EndToEnd",a),r.select())):n()}function n(){var e=r.selection.createRange();a&&!e.item&&0===e.compareEndPoints("StartToEnd",e)&&a.select(),q.unbind(r,"mouseup",n),q.unbind(r,"mousemove",t),a=o=0}var r=q.doc,i=r.body,o,a,s;r.documentElement.unselectable=!0,q.bind(r,"mousedown contextmenu",function(i){if("HTML"===i.target.nodeName){if(o&&n(),s=r.documentElement,s.scrollHeight>s.clientHeight)return;o=1,a=e(i.x,i.y),a&&(q.bind(r,"mouseup",n),q.bind(r,"mousemove",t),q.getRoot().focus(),a.select())}})}function D(){a.on("keyup focusin mouseup",function(t){65==t.keyCode&&e.metaKeyPressed(t)||$.normalize()},!0)}function L(){a.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}")}function M(){a.inline||a.on("keydown",function(){document.activeElement==document.body&&a.getWin().focus()})}function H(){a.inline||(a.contentStyles.push("body {min-height: 150px}"),a.on("click",function(e){"HTML"==e.target.nodeName&&(a.getBody().focus(),a.selection.normalize(),a.nodeChanged())}))}function P(){i.mac&&a.on("keydown",function(t){!e.metaKeyPressed(t)||37!=t.keyCode&&39!=t.keyCode||(t.preventDefault(),a.selection.getSel().modify("move",37==t.keyCode?"backward":"forward","word"))})}function O(){s("AutoUrlDetect",!1)}function I(){a.inline||a.on("focus blur beforegetcontent",function(){var e=a.dom.create("br");a.getBody().appendChild(e),e.parentNode.removeChild(e)},!0)}function F(){a.on("click",function(e){var t=e.target;do if("A"===t.tagName)return void e.preventDefault();while(t=t.parentNode)}),a.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")}function z(){a.on("init",function(){a.dom.bind(a.getBody(),"submit",function(e){e.preventDefault()})})}var W=o.each,V=e.BACKSPACE,U=e.DELETE,q=a.dom,$=a.selection,j=a.settings,K=a.parser,G=a.serializer,Y=i.gecko,X=i.ie,J=i.webkit;C(),_(),d(),D(),J&&(u(),p(),g(),S(),z(),i.iOS?(y(),M(),H(),F()):f()),X&&i.ie<11&&(h(),b(),x(),w(),T(),R(),A(),B()),i.ie>=11&&(H(),I()),i.ie&&(f(),O()),Y&&(h(),m(),v(),N(),E(),k(),L(),P())}}),r(ot,[W],function(e){function t(t){return t._eventDispatcher||(t._eventDispatcher=new e({scope:t,toggleEvent:function(n,r){e.isNative(n)&&t.toggleNativeEvent&&t.toggleNativeEvent(n,r)}})),t._eventDispatcher}return{fire:function(e,n,r){var i=this;if(i.removed&&"remove"!==e)return n;if(n=t(i).fire(e,n,r),r!==!1&&i.parent)for(var o=i.parent();o&&!n.isPropagationStopped();)o.fire(e,n,!1),o=o.parent();return n},on:function(e,n,r){return t(this).on(e,n,r)},off:function(e,n){return t(this).off(e,n)},hasEventListeners:function(e){return t(this).has(e)}}}),r(at,[ot,y,p],function(e,t,n){function r(e,t){return"selectionchange"==t?e.getDoc():!e.inline&&/^mouse|click|contextmenu|drop/.test(t)?e.getDoc():e.getBody()}function i(e,t){var n=e.settings.event_root,i=e.editorManager,a=i.eventRootElm||r(e,t);if(n){if(i.rootEvents||(i.rootEvents={},i.on("RemoveEditor",function(){i.activeEditor||(o.unbind(a),delete i.rootEvents)})),i.rootEvents[t])return;a==e.getBody()&&(a=o.select(n)[0],i.eventRootElm=a),i.rootEvents[t]=!0,o.bind(a,t,function(e){for(var n=e.target,r=i.editors,a=r.length;a--;){var s=r[a].getBody();(s===n||o.isChildOf(n,s))&&(r[a].hidden||r[a].fire(t,e))}})}else e.dom.bind(a,t,function(n){e.hidden||e.fire(t,n)})}var o=t.DOM,a={bindPendingEventDelegates:function(){var e=this;n.each(e._pendingNativeEvents,function(t){i(e,t)})},toggleNativeEvent:function(e,t){var n=this;n.settings.readonly||"focus"!=e&&"blur"!=e&&(t?n.initialized?i(n,e):n._pendingNativeEvents?n._pendingNativeEvents.push(e):n._pendingNativeEvents=[e]:n.initialized&&n.dom.unbind(r(n,e),e))}};return a=n.extend({},e,a)}),r(st,[p,g],function(e,t){var n=e.each,r=e.explode,i={f9:120,f10:121,f11:122};return function(o){var a=this,s={};o.on("keyup keypress keydown",function(e){(e.altKey||e.ctrlKey||e.metaKey)&&n(s,function(n){var r=t.mac?e.metaKey:e.ctrlKey;if(n.ctrl==r&&n.alt==e.altKey&&n.shift==e.shiftKey)return e.keyCode==n.keyCode||e.charCode&&e.charCode==n.charCode?(e.preventDefault(),"keydown"==e.type&&n.func.call(n.scope),!0):void 0})}),a.add=function(t,a,l,c){var u;return u=l,"string"==typeof l?l=function(){o.execCommand(u,!1,null)}:e.isArray(u)&&(l=function(){o.execCommand(u[0],u[1],u[2])}),n(r(t.toLowerCase()),function(e){var t={func:l,scope:c||o,desc:o.translate(a),alt:!1,ctrl:!1,shift:!1};n(r(e,"+"),function(e){switch(e){case"alt":case"ctrl":case"shift":t[e]=!0;break;default:t.charCode=e.charCodeAt(0),t.keyCode=i[e]||e.toUpperCase().charCodeAt(0)}}),s[(t.ctrl?"ctrl":"")+","+(t.alt?"alt":"")+","+(t.shift?"shift":"")+","+t.keyCode]=t}),!0}}}),r(lt,[y,C,x,k,S,D,M,H,P,O,I,F,b,l,rt,w,N,it,g,p,at,st],function(e,n,r,i,o,a,s,l,c,u,d,f,p,h,m,g,v,y,b,C,x,w){function _(e,t,r){var i=this,o,a;o=i.documentBaseUrl=r.documentBaseURL,a=r.baseURI,i.settings=t=k({id:e,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:o,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",validate:!0,entity_encoding:"named",url_converter:i.convertURL,url_converter_scope:i,ie7_compat:!0},t),n.language=t.language||"en",n.languageLoad=t.language_load,n.baseURL=r.baseURL,i.id=t.id=e,i.isNotDirty=!0,i.plugins={},i.documentBaseURI=new f(t.document_base_url||o,{base_uri:a}),i.baseURI=a,i.contentCSS=[],i.contentStyles=[],i.shortcuts=new w(i),i.execCommands={},i.queryStateCommands={},i.queryValueCommands={},i.loadedCSS={},i.suffix=r.suffix,i.editorManager=r,i.inline=t.inline,r.fire("SetupEditor",i),i.execCallback("setup",i)}var N=e.DOM,E=n.ThemeManager,S=n.PluginManager,k=C.extend,T=C.each,R=C.explode,A=C.inArray,B=C.trim,D=C.resolve,L=h.Event,M=b.gecko,H=b.ie;return _.prototype={render:function(){function e(){N.unbind(window,"ready",e),n.render()}function t(){var e=p.ScriptLoader;if(r.language&&"en"!=r.language&&!r.language_url&&(r.language_url=n.editorManager.baseURL+"/langs/"+r.language+".js"),r.language_url&&e.add(r.language_url),r.theme&&"function"!=typeof r.theme&&"-"!=r.theme.charAt(0)&&!E.urls[r.theme]){var t=r.theme_url;t=t?n.documentBaseURI.toAbsolute(t):"themes/"+r.theme+"/theme"+o+".js",E.load(r.theme,t)}C.isArray(r.plugins)&&(r.plugins=r.plugins.join(" ")),T(r.external_plugins,function(e,t){S.load(t,e),r.plugins+=" "+t}),T(r.plugins.split(/[ ,]/),function(e){if(e=B(e),e&&!S.urls[e])if("-"==e.charAt(0)){e=e.substr(1,e.length);var t=S.dependencies(e);T(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"};e=S.createUrl(t,e),S.load(e.resource,e)})}else S.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"})}),e.loadQueue(function(){n.removed||n.init()})}var n=this,r=n.settings,i=n.id,o=n.suffix;if(!L.domLoaded)return void N.bind(window,"ready",e);if(n.getElement()&&b.contentEditable){r.inline?n.inline=!0:(n.orgVisibility=n.getElement().style.visibility,n.getElement().style.visibility="hidden");var a=n.getElement().form||N.getParent(i,"form");a&&(n.formElement=a,r.hidden_input&&!/TEXTAREA|INPUT/i.test(n.getElement().nodeName)&&(N.insertAfter(N.create("input",{type:"hidden",name:i}),i),n.hasHiddenInput=!0),n.formEventDelegate=function(e){n.fire(e.type,e)},N.bind(a,"submit reset",n.formEventDelegate),n.on("reset",function(){n.setContent(n.startContent,{format:"raw"})}),!r.submit_patch||a.submit.nodeType||a.submit.length||a._mceOldSubmit||(a._mceOldSubmit=a.submit,a.submit=function(){return n.editorManager.triggerSave(),n.isNotDirty=!0,a._mceOldSubmit(a)})),n.windowManager=new m(n),"xml"==r.encoding&&n.on("GetContent",function(e){e.save&&(e.content=N.encode(e.content))}),r.add_form_submit_trigger&&n.on("submit",function(){n.initialized&&n.save()}),r.add_unload_trigger&&(n._beforeUnload=function(){!n.initialized||n.destroyed||n.isHidden()||n.save({format:"raw",no_events:!0,set_dirty:!1})},n.editorManager.on("BeforeUnload",n._beforeUnload)),t()}},init:function(){function e(n){var r=S.get(n),i,o;i=S.urls[n]||t.documentBaseUrl.replace(/\/$/,""),n=B(n),r&&-1===A(m,n)&&(T(S.dependencies(n),function(t){e(t)}),o=new r(t,i),t.plugins[n]=o,o.init&&(o.init(t,i),m.push(n)))}var t=this,n=t.settings,r=t.getElement(),i,o,a,s,l,c,u,d,f,p,h,m=[];if(t.rtl=this.editorManager.i18n.rtl,t.editorManager.add(t),n.aria_label=n.aria_label||N.getAttrib(r,"aria-label",t.getLang("aria.rich_text_area")),n.theme&&("function"!=typeof n.theme?(n.theme=n.theme.replace(/-/,""),c=E.get(n.theme),t.theme=new c(t,E.urls[n.theme]),t.theme.init&&t.theme.init(t,E.urls[n.theme]||t.documentBaseUrl.replace(/\/$/,""))):t.theme=n.theme),T(n.plugins.replace(/\-/g,"").split(/[ ,]/),e),n.render_ui&&t.theme&&(t.orgDisplay=r.style.display,"function"!=typeof n.theme?(i=n.width||r.style.width||r.offsetWidth,o=n.height||r.style.height||r.offsetHeight,a=n.min_height||100,p=/^[0-9\.]+(|px)$/i,p.test(""+i)&&(i=Math.max(parseInt(i,10),100)),p.test(""+o)&&(o=Math.max(parseInt(o,10),a)),l=t.theme.renderUI({targetNode:r,width:i,height:o,deltaWidth:n.delta_width,deltaHeight:n.delta_height}),n.content_editable||(N.setStyles(l.sizeContainer||l.editorContainer,{wi2dth:i,h2eight:o}),o=(l.iframeHeight||o)+("number"==typeof o?l.deltaHeight||0:""),a>o&&(o=a))):(l=n.theme(t,r),l.editorContainer.nodeType&&(l.editorContainer=l.editorContainer.id=l.editorContainer.id||t.id+"_parent"),l.iframeContainer.nodeType&&(l.iframeContainer=l.iframeContainer.id=l.iframeContainer.id||t.id+"_iframecontainer"),o=l.iframeHeight||r.offsetHeight),t.editorContainer=l.editorContainer),n.content_css&&T(R(n.content_css),function(e){t.contentCSS.push(t.documentBaseURI.toAbsolute(e))}),n.content_style&&t.contentStyles.push(n.content_style),n.content_editable)return r=s=l=null,t.initContentBody();for(t.iframeHTML=n.doctype+"<html><head>",n.document_base_url!=t.documentBaseUrl&&(t.iframeHTML+='<base href="'+t.documentBaseURI.getURI()+'" />'),!b.caretAfter&&n.ie7_compat&&(t.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" />'),t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',h=0;h<t.contentCSS.length;h++){var g=t.contentCSS[h];t.iframeHTML+='<link type="text/css" rel="stylesheet" href="'+g+'" />',t.loadedCSS[g]=!0}d=n.body_id||"tinymce",-1!=d.indexOf("=")&&(d=t.getParam("body_id","","hash"),d=d[t.id]||d),f=n.body_class||"",-1!=f.indexOf("=")&&(f=t.getParam("body_class","","hash"),f=f[t.id]||""),t.iframeHTML+='</head><body id="'+d+'" class="mce-content-body '+f+'" onload="window.parent.tinymce.get(\''+t.id+"').fire('load');\"><br></body></html>";var v='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()';if(document.domain!=location.hostname&&(u=v),s=N.add(l.iframeContainer,"iframe",{id:t.id+"_ifr",src:u||'javascript:""',frameBorder:"0",allowTransparency:"true",title:t.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:o,display:"block"}}),H)try{t.getDoc()}catch(y){s.src=u=v}t.contentAreaContainer=l.iframeContainer,l.editorContainer&&(N.get(l.editorContainer).style.display=t.orgDisplay),N.get(t.id).style.display="none",N.setAttrib(t.id,"aria-hidden",!0),u||t.initContentBody(),r=s=l=null},initContentBody:function(t){var n=this,o=n.settings,f=N.get(n.id),p=n.getDoc(),h,m;o.inline||(n.getElement().style.visibility=n.orgVisibility),t||o.content_editable||(p.open(),p.write(n.iframeHTML),p.close()),o.content_editable&&(n.on("remove",function(){var e=this.getBody();N.removeClass(e,"mce-content-body"),N.removeClass(e,"mce-edit-focus"),N.setAttrib(e,"contentEditable",null)}),N.addClass(f,"mce-content-body"),n.contentDocument=p=o.content_document||document,n.contentWindow=o.content_window||window,n.bodyElement=f,o.content_document=o.content_window=null,o.root_name=f.nodeName.toLowerCase()),h=n.getBody(),h.disabled=!0,o.readonly||(n.inline&&"static"==N.getStyle(h,"position",!0)&&(h.style.position="relative"),h.contentEditable=n.getParam("content_editable_state",!0)),h.disabled=!1,n.schema=new g(o),n.dom=new e(p,{keep_values:!0,url_converter:n.convertURL,url_converter_scope:n,hex_colors:o.force_hex_style_colors,class_filter:o.class_filter,update_styles:!0,root_element:o.content_editable?n.id:null,collect:o.content_editable,schema:n.schema,onSetAttrib:function(e){n.fire("SetAttrib",e)
-}}),n.parser=new v(o,n.schema),n.parser.addAttributeFilter("src,href,style,tabindex",function(e,t){for(var r=e.length,i,o=n.dom,a,s;r--;)i=e[r],a=i.attr(t),s="data-mce-"+t,i.attributes.map[s]||("style"===t?i.attr(s,o.serializeStyle(o.parseStyle(a),i.name)):"tabindex"===t?(i.attr(s,a),i.attr(t,null)):i.attr(s,n.convertURL(a,t,i.name)))}),n.parser.addNodeFilter("script",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("type","mce-"+(n.attr("type")||"text/javascript"))}),n.parser.addNodeFilter("#cdata",function(e){for(var t=e.length,n;t--;)n=e[t],n.type=8,n.name="#comment",n.value="[CDATA["+n.value+"]]"}),n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t=e.length,i,o=n.schema.getNonEmptyElements();t--;)i=e[t],i.isEmpty(o)&&(i.empty().append(new r("br",1)).shortEnded=!0)}),n.serializer=new i(o,n),n.selection=new a(n.dom,n.getWin(),n.serializer,n),n.formatter=new s(n),n.undoManager=new l(n),n.forceBlocks=new u(n),n.enterKey=new c(n),n.editorCommands=new d(n),n.fire("PreInit"),o.browser_spellcheck||o.gecko_spellcheck||(p.body.spellcheck=!1,N.setAttrib(h,"spellcheck","false")),n.fire("PostRender"),n.quirks=y(n),o.directionality&&(h.dir=o.directionality),o.nowrap&&(h.style.whiteSpace="nowrap"),o.protect&&n.on("BeforeSetContent",function(e){T(o.protect,function(t){e.content=e.content.replace(t,function(e){return"<!--mce:protected "+escape(e)+"-->"})})}),n.on("SetContent",function(){n.addVisual(n.getBody())}),o.padd_empty_editor&&n.on("PostProcess",function(e){e.content=e.content.replace(/^(<p[^>]*>(&nbsp;|&#160;|\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")}),n.load({initial:!0,format:"html"}),n.startContent=n.getContent({format:"raw"}),n.initialized=!0,n.bindPendingEventDelegates(),n.fire("init"),n.focus(!0),n.nodeChanged({initial:!0}),n.execCallback("init_instance_callback",n),n.contentStyles.length>0&&(m="",T(n.contentStyles,function(e){m+=e+"\r\n"}),n.dom.addStyle(m)),T(n.contentCSS,function(e){n.loadedCSS[e]||(n.dom.loadCSS(e),n.loadedCSS[e]=!0)}),o.auto_focus&&setTimeout(function(){var e=n.editorManager.get(o.auto_focus);e.selection.select(e.getBody(),1),e.selection.collapse(1),e.getBody().focus(),e.getWin().focus()},100),f=p=h=null},focus:function(e){var t,n=this,r=n.selection,i=n.settings.content_editable,o,a,s=n.getDoc(),l;if(!e){if(o=r.getRng(),o.item&&(a=o.item(0)),n._refreshContentEditable(),i||(b.opera||n.getBody().focus(),n.getWin().focus()),M||i){if(l=n.getBody(),l.setActive)try{l.setActive()}catch(c){l.focus()}else l.focus();i&&r.normalize()}a&&a.ownerDocument==s&&(o=s.body.createControlRange(),o.addElement(a),o.select())}n.editorManager.activeEditor!=n&&((t=n.editorManager.activeEditor)&&t.fire("deactivate",{relatedTarget:n}),n.fire("activate",{relatedTarget:t})),n.editorManager.activeEditor=n},execCallback:function(e){var t=this,n=t.settings[e],r;if(n)return t.callbackLookup&&(r=t.callbackLookup[e])&&(n=r.func,r=r.scope),"string"==typeof n&&(r=n.replace(/\.\w+$/,""),r=r?D(r):0,n=D(n),t.callbackLookup=t.callbackLookup||{},t.callbackLookup[e]={func:n,scope:r}),n.apply(r||t,Array.prototype.slice.call(arguments,1))},translate:function(e){var t=this.settings.language||"en",n=this.editorManager.i18n;return e?n.data[t+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,r){return n.data[t+"."+r]||"{#"+r+"}"}):""},getLang:function(e,n){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+e]||(n!==t?n:"{#"+e+"}")},getParam:function(e,t,n){var r=e in this.settings?this.settings[e]:t,i;return"hash"===n?(i={},"string"==typeof r?T(r.split(r.indexOf("=")>0?/[;,](?![^=;,]*(?:[;,]|$))/:","),function(e){e=e.split("="),i[B(e[0])]=B(e.length>1?e[1]:e)}):i=r,i):r},nodeChanged:function(){var e=this,t=e.selection,n,r,i;!e.initialized||e.settings.disable_nodechange||e.settings.readonly||(i=e.getBody(),n=t.getStart()||i,n=H&&n.ownerDocument!=e.getDoc()?e.getBody():n,"IMG"==n.nodeName&&t.isCollapsed()&&(n=n.parentNode),r=[],e.dom.getParent(n,function(e){return e===i?!0:void r.push(e)}),e.fire("NodeChange",{element:n,parents:r}))},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.text||t.icon||(t.icon=e),n.buttons=n.buttons||{},t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems||{},n.menuItems[e]=t},addCommand:function(e,t,n){this.execCommands[e]={func:t,scope:n||this}},addQueryStateHandler:function(e,t,n){this.queryStateCommands[e]={func:t,scope:n||this}},addQueryValueHandler:function(e,t,n){this.queryValueCommands[e]={func:t,scope:n||this}},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){var i=this,o=0,a;return/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(e)||r&&r.skip_focus||i.focus(),r=k({},r),r=i.fire("BeforeExecCommand",{command:e,ui:t,value:n}),r.isDefaultPrevented()?!1:(a=i.execCommands[e])&&a.func.call(a.scope,t,n)!==!0?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):(T(i.plugins,function(r){return r.execCommand&&r.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),o=!0,!1):void 0}),o?o:i.theme&&i.theme.execCommand&&i.theme.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):i.editorCommands.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):(i.getDoc().execCommand(e,t,n),void i.fire("ExecCommand",{command:e,ui:t,value:n})))},queryCommandState:function(e){var t=this,n,r;if(!t._isHidden()){if((n=t.queryStateCommands[e])&&(r=n.func.call(n.scope),r!==!0))return r;if(r=t.editorCommands.queryCommandState(e),-1!==r)return r;try{return t.getDoc().queryCommandState(e)}catch(i){}}},queryCommandValue:function(e){var n=this,r,i;if(!n._isHidden()){if((r=n.queryValueCommands[e])&&(i=r.func.call(r.scope),i!==!0))return i;if(i=n.editorCommands.queryCommandValue(e),i!==t)return i;try{return n.getDoc().queryCommandValue(e)}catch(o){}}},show:function(){var e=this;e.hidden&&(e.hidden=!1,e.inline?e.getBody().contentEditable=!0:(N.show(e.getContainer()),N.hide(e.id)),e.load(),e.fire("show"))},hide:function(){var e=this,t=e.getDoc();e.hidden||(e.hidden=!0,H&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),e.inline?(e.getBody().contentEditable=!1,e==e.editorManager.focusedEditor&&(e.editorManager.focusedEditor=null)):(N.hide(e.getContainer()),N.setStyle(e.id,"display",e.orgDisplay)),e.fire("hide"))},isHidden:function(){return!!this.hidden},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var n=this,r=n.getElement(),i;return r?(e=e||{},e.load=!0,i=n.setContent(r.value!==t?r.value:r.innerHTML,e),e.element=r,e.no_events||n.fire("LoadContent",e),e.element=r=null,i):void 0},save:function(e){var t=this,n=t.getElement(),r,i;if(n&&t.initialized)return e=e||{},e.save=!0,e.element=n,r=e.content=t.getContent(e),e.no_events||t.fire("SaveContent",e),r=e.content,/TEXTAREA|INPUT/i.test(n.nodeName)?n.value=r:(t.inline||(n.innerHTML=r),(i=N.getParent(t.id,"form"))&&T(i.elements,function(e){return e.name==t.id?(e.value=r,!1):void 0})),e.element=n=null,e.set_dirty!==!1&&(t.isNotDirty=!0),r},setContent:function(e,t){var n=this,r=n.getBody(),i;return t=t||{},t.format=t.format||"html",t.set=!0,t.content=e,t.no_events||n.fire("BeforeSetContent",t),e=t.content,0===e.length||/^\s+$/.test(e)?(i=n.settings.forced_root_block,i&&n.schema.isValidChild(r.nodeName.toLowerCase(),i.toLowerCase())?(e=H&&11>H?"":'<br data-mce-bogus="1">',e=n.dom.createHTML(i,n.settings.forced_root_block_attrs,e)):H||(e='<br data-mce-bogus="1">'),r.innerHTML=e,n.fire("SetContent",t)):("raw"!==t.format&&(e=new o({},n.schema).serialize(n.parser.parse(e,{isRootContent:!0}))),t.content=B(e),n.dom.setHTML(r,t.content),t.no_events||n.fire("SetContent",t)),t.content},getContent:function(e){var t=this,n,r=t.getBody();return e=e||{},e.format=e.format||"html",e.get=!0,e.getInner=!0,e.no_events||t.fire("BeforeGetContent",e),n="raw"==e.format?r.innerHTML:"text"==e.format?r.innerText||r.textContent:t.serializer.serialize(r,e),e.content="text"!=e.format?B(n):n,e.no_events||t.fire("GetContent",e),e.content},insertContent:function(e){this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},getContainer:function(){var e=this;return e.container||(e.container=N.get(e.editorContainer||e.id+"_parent")),e.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return N.get(this.settings.content_element||this.id)},getWin:function(){var e=this,t;return e.contentWindow||(t=N.get(e.id+"_ifr"),t&&(e.contentWindow=t.contentWindow)),e.contentWindow},getDoc:function(){var e=this,t;return e.contentDocument||(t=e.getWin(),t&&(e.contentDocument=t.document)),e.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(e,t,n){var r=this,i=r.settings;return i.urlconverter_callback?r.execCallback("urlconverter_callback",e,n,!0,t):!i.convert_urls||n&&"LINK"==n.nodeName||0===e.indexOf("file:")||0===e.length?e:i.relative_urls?r.documentBaseURI.toRelative(e):e=r.documentBaseURI.toAbsolute(e,i.remove_script_host)},addVisual:function(e){var n=this,r=n.settings,i=n.dom,o;e=e||n.getBody(),n.hasVisual===t&&(n.hasVisual=r.visual),T(i.select("table,a",e),function(e){var t;switch(e.nodeName){case"TABLE":return o=r.visual_table_class||"mce-item-table",t=i.getAttrib(e,"border"),void(t&&"0"!=t||(n.hasVisual?i.addClass(e,o):i.removeClass(e,o)));case"A":return void(i.getAttrib(e,"href",!1)||(t=i.getAttrib(e,"name")||e.id,o=r.visual_anchor_class||"mce-item-anchor",t&&(n.hasVisual?i.addClass(e,o):i.removeClass(e,o))))}}),n.fire("VisualAid",{element:e,hasVisual:n.hasVisual})},remove:function(){var e=this;if(!e.removed){e.removed=1,e.save(),e.hasHiddenInput&&N.remove(e.getElement().nextSibling),e.inline||(H&&10>H&&e.getDoc().execCommand("SelectAll",!1,null),N.setStyle(e.id,"display",e.orgDisplay),e.getBody().onload=null,L.unbind(e.getWin()),L.unbind(e.getDoc()));var t=e.getContainer();L.unbind(e.getBody()),L.unbind(t),e.fire("remove"),e.editorManager.remove(e),N.remove(t),e.destroy()}},destroy:function(e){var t=this,n;if(!t.destroyed){if(!e&&!t.removed)return void t.remove();e&&M&&(L.unbind(t.getDoc()),L.unbind(t.getWin()),L.unbind(t.getBody())),e||(t.editorManager.off("beforeunload",t._beforeUnload),t.theme&&t.theme.destroy&&t.theme.destroy(),t.selection.destroy(),t.dom.destroy()),n=t.formElement,n&&(n._mceOldSubmit&&(n.submit=n._mceOldSubmit,n._mceOldSubmit=null),N.unbind(n,"submit reset",t.formEventDelegate)),t.contentAreaContainer=t.formElement=t.container=t.editorContainer=null,t.settings.content_element=t.bodyElement=t.contentDocument=t.contentWindow=null,t.selection&&(t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null),t.destroyed=1}},_refreshContentEditable:function(){var e=this,t,n;e._isHidden()&&(t=e.getBody(),n=t.parentNode,n.removeChild(t),n.appendChild(t),t.focus())},_isHidden:function(){var e;return M?(e=this.selection.getSel(),!e||!e.rangeCount||0===e.rangeCount):0}},k(_.prototype,x),_}),r(ct,[],function(){var e={};return{rtl:!1,add:function(t,n){for(var r in n)e[r]=n[r];this.rtl=this.rtl||"rtl"===e._dir},translate:function(t){if("undefined"==typeof t)return t;if("string"!=typeof t&&t.raw)return t.raw;if(t.push){var n=t.slice(1);t=(e[t[0]]||t[0]).replace(/\{([^\}]+)\}/g,function(e,t){return n[t]})}return e[t]||t},data:e}}),r(ut,[y,g],function(e,t){function n(e){function s(){try{return document.activeElement}catch(e){return document.body}}function l(e,t){if(t&&t.startContainer){if(!e.isChildOf(t.startContainer,e.getRoot())||!e.isChildOf(t.endContainer,e.getRoot()))return;return{startContainer:t.startContainer,startOffset:t.startOffset,endContainer:t.endContainer,endOffset:t.endOffset}}return t}function c(e,t){var n;return t.startContainer?(n=e.getDoc().createRange(),n.setStart(t.startContainer,t.startOffset),n.setEnd(t.endContainer,t.endOffset)):n=t,n}function u(e){return!!a.getParent(e,n.isEditorUIElement)}function d(n){var d=n.editor;d.on("init",function(){(d.inline||t.ie)&&(d.on("nodechange keyup",function(){var e=document.activeElement;e&&e.id==d.id+"_ifr"&&(e=d.getBody()),d.dom.isChildOf(e,d.getBody())&&(d.lastRng=d.selection.getRng())}),t.webkit&&!r&&(r=function(){var t=e.activeEditor;if(t&&t.selection){var n=t.selection.getRng();n&&!n.collapsed&&(d.lastRng=n)}},a.bind(document,"selectionchange",r)))}),d.on("setcontent",function(){d.lastRng=null}),d.on("mousedown",function(){d.selection.lastFocusBookmark=null}),d.on("focusin",function(){var t=e.focusedEditor;d.selection.lastFocusBookmark&&(d.selection.setRng(c(d,d.selection.lastFocusBookmark)),d.selection.lastFocusBookmark=null),t!=d&&(t&&t.fire("blur",{focusedEditor:d}),e.activeEditor=d,e.focusedEditor=d,d.fire("focus",{blurredEditor:t}),d.focus(!0)),d.lastRng=null}),d.on("focusout",function(){window.setTimeout(function(){var t=e.focusedEditor;u(s())||t!=d||(d.fire("blur",{focusedEditor:null}),e.focusedEditor=null,d.selection&&(d.selection.lastFocusBookmark=null))},0)}),i||(i=function(t){var n=e.activeEditor;n&&t.target.ownerDocument==document&&(n.selection&&(n.selection.lastFocusBookmark=l(n.dom,n.lastRng)),u(t.target)||e.focusedEditor!=n||(n.fire("blur",{focusedEditor:null}),e.focusedEditor=null))},a.bind(document,"focusin",i)),d.inline&&!o&&(o=function(t){var n=e.activeEditor;if(n.inline&&!n.dom.isChildOf(t.target,n.getBody())){var r=n.selection.getRng();r.collapsed||(n.lastRng=r)}},a.bind(document,"mouseup",o))}function f(t){e.focusedEditor==t.editor&&(e.focusedEditor=null),e.activeEditor||(a.unbind(document,"selectionchange",r),a.unbind(document,"focusin",i),a.unbind(document,"mouseup",o),r=i=o=null)}e.on("AddEditor",d),e.on("RemoveEditor",f)}var r,i,o,a=e.DOM;return n.isEditorUIElement=function(e){return-1!==e.className.toString().indexOf("mce-")},n}),r(dt,[lt,y,F,g,p,ot,ct,ut],function(e,t,n,r,i,o,a,s){function l(e){var t=g.editors,n;delete t[e.id];for(var r=0;r<t.length;r++)if(t[r]==e){t.splice(r,1),n=!0;break}return g.activeEditor==e&&(g.activeEditor=t[0]),g.focusedEditor==e&&(g.focusedEditor=null),n}function c(e){return e&&!(e.getContainer()||e.getBody()).parentNode&&(l(e),e.destroy(!0),e=null),e}var u=t.DOM,d=i.explode,f=i.each,p=i.extend,h=0,m,g;return g={majorVersion:"4",minorVersion:"0.26",releaseDate:"2014-05-06",editors:[],i18n:a,activeEditor:null,setup:function(){var e=this,t,r,i="",o,a;if(r=document.location.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(r)||(r+="/"),o=window.tinymce||window.tinyMCEPreInit)t=o.base||o.baseURL,i=o.suffix;else{for(var l=document.getElementsByTagName("script"),c=0;c<l.length;c++)if(a=l[c].src,/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(a)){-1!=a.indexOf(".min")&&(i=".min"),t=a.substring(0,a.lastIndexOf("/"));break}!t&&document.currentScript&&(a=document.currentScript.src,-1!=a.indexOf(".min")&&(i=".min"),t=a.substring(0,a.lastIndexOf("/")))}e.baseURL=new n(r).toAbsolute(t),e.documentBaseURL=r,e.baseURI=new n(e.baseURL),e.suffix=i,e.focusManager=new s(e)},init:function(t){function n(e){var t=e.id;return t||(t=e.name,t=t&&!u.get(t)?e.name:u.uniqueId(),e.setAttribute("id",t)),t}function r(t,n){if(!c(s.get(t))){var r=new e(t,n,s);l.push(r),r.render()}}function i(e,t,n){var r=e[t];if(r)return r.apply(n||this,Array.prototype.slice.call(arguments,2))}function o(e,t){return t.constructor===RegExp?t.test(e.className):u.hasClass(e,t)}function a(){var c,g;if(u.unbind(window,"ready",a),i(t,"onpageload"),t.types)return void f(t.types,function(e){f(u.select(e.selector),function(i){r(n(i),p({},t,e))})});if(t.selector)return void f(u.select(t.selector),function(e){r(n(e),t)});switch(t.mode){case"exact":c=t.elements||"",c.length>0&&f(d(c),function(n){u.get(n)?(m=new e(n,t,s),l.push(m),m.render()):f(document.forms,function(e){f(e.elements,function(e){e.name===n&&(n="mce_editor_"+h++,u.setAttrib(e,"id",n),r(n,t))})})});break;case"textareas":case"specific_textareas":f(u.select("textarea"),function(e){t.editor_deselector&&o(e,t.editor_deselector)||(!t.editor_selector||o(e,t.editor_selector))&&r(n(e),t)})}t.oninit&&(c=g=0,f(l,function(e){g++,e.initialized?c++:e.on("init",function(){c++,c==g&&i(t,"oninit")}),c==g&&i(t,"oninit")}))}var s=this,l=[],m;s.settings=t,u.bind(window,"ready",a)},get:function(e){return arguments.length?e in this.editors?this.editors[e]:null:this.editors},add:function(e){var t=this,n=t.editors;return n[e.id]=e,n.push(e),t.activeEditor=e,t.fire("AddEditor",{editor:e}),m||(m=function(){t.fire("BeforeUnload")},u.bind(window,"beforeunload",m)),e},createEditor:function(t,n){return this.add(new e(t,n,this))},remove:function(e){var t=this,n,r=t.editors,i;{if(e)return"string"==typeof e?(e=e.selector||e,void f(u.select(e),function(e){t.remove(r[e.id])})):(i=e,r[i.id]?(l(i)&&t.fire("RemoveEditor",{editor:i}),r.length||u.unbind(window,"beforeunload",m),i.remove(),i):null);for(n=r.length-1;n>=0;n--)t.remove(r[n])}},execCommand:function(t,n,r){var i=this,o=i.get(r);switch(t){case"mceAddEditor":return i.get(r)||new e(r,i.settings,i).render(),!0;case"mceRemoveEditor":return o&&o.remove(),!0;case"mceToggleEditor":return o?(o.isHidden()?o.show():o.hide(),!0):(i.execCommand("mceAddEditor",0,r),!0)}return i.activeEditor?i.activeEditor.execCommand(t,n,r):!1},triggerSave:function(){f(this.editors,function(e){e.save()})},addI18n:function(e,t){a.add(e,t)},translate:function(e){return a.translate(e)}},p(g,o),g.setup(),window.tinymce=window.tinyMCE=g,g}),r(ft,[dt,p],function(e,t){var n=t.each,r=t.explode;e.on("AddEditor",function(e){var t=e.editor;t.on("preInit",function(){function e(e,t){n(t,function(t,n){t&&s.setStyle(e,n,t)}),s.rename(e,"span")}function i(e){s=t.dom,l.convert_fonts_to_spans&&n(s.select("font,u,strike",e.node),function(e){o[e.nodeName.toLowerCase()](s,e)})}var o,a,s,l=t.settings;l.inline_styles&&(a=r(l.font_size_legacy_values),o={font:function(t,n){e(n,{backgroundColor:n.style.backgroundColor,color:n.color,fontFamily:n.face,fontSize:a[parseInt(n.size,10)-1]})},u:function(t,n){e(n,{textDecoration:"underline"})},strike:function(t,n){e(n,{textDecoration:"line-through"})}},t.on("PreProcess SetContent",i))})})}),r(pt,[],function(){return{send:function(e){function t(){!e.async||4==n.readyState||r++>1e4?(e.success&&1e4>r&&200==n.status?e.success.call(e.success_scope,""+n.responseText,n,e):e.error&&e.error.call(e.error_scope,r>1e4?"TIMED_OUT":"GENERAL",n,e),n=null):setTimeout(t,10)}var n,r=0;if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=e.async===!1?!1:!0,e.data=e.data||"",n=new XMLHttpRequest){if(n.overrideMimeType&&n.overrideMimeType(e.content_type),n.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.content_type&&n.setRequestHeader("Content-Type",e.content_type),n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.send(e.data),!e.async)return t();setTimeout(t,10)}}}}),r(ht,[],function(){function e(t,n){var r,i,o,a;if(n=n||'"',null===t)return"null";if(o=typeof t,"string"==o)return i="\bb t\nn\ff\rr\"\"''\\\\",n+t.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=i.indexOf(t),r+1?"\\"+i.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e))})+n;if("object"==o){if(t.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(t)){for(r=0,i="[";r<t.length;r++)i+=(r>0?",":"")+e(t[r],n);return i+"]"}i="{";for(a in t)t.hasOwnProperty(a)&&(i+="function"!=typeof t[a]?(i.length>1?","+n:n)+a+n+":"+e(t[a],n):"");return i+"}"}return""+t}return{serialize:e,parse:function(e){try{return window[String.fromCharCode(101)+"val"]("("+e+")")}catch(t){}}}}),r(mt,[ht,pt,p],function(e,t,n){function r(e){this.settings=i({},e),this.count=0}var i=n.extend;return r.sendRPC=function(e){return(new r).send(e)},r.prototype={send:function(n){var r=n.error,o=n.success;n=i(this.settings,n),n.success=function(t,i){t=e.parse(t),"undefined"==typeof t&&(t={error:"JSON Parse error."}),t.error?r.call(n.error_scope||n.scope,t.error,i):o.call(n.success_scope||n.scope,t.result)},n.error=function(e,t){r&&r.call(n.error_scope||n.scope,e,t)},n.data=e.serialize({id:n.id||"c"+this.count++,method:n.method,params:n.params}),n.content_type="application/json",t.send(n)}},r}),r(gt,[y],function(e){return{callbacks:{},count:0,send:function(n){var r=this,i=e.DOM,o=n.count!==t?n.count:r.count,a="tinymce_jsonp_"+o;r.callbacks[o]=function(e){i.remove(a),delete r.callbacks[o],n.callback(e)},i.add(i.doc.body,"script",{id:a,src:n.url,type:"text/javascript"}),r.count++}}}),r(vt,[],function(){function e(){s=[];for(var e in a)s.push(e);i.length=s.length}function n(){function n(e){var n,r;return r=e!==t?u+e:i.indexOf(",",u),-1===r||r>i.length?null:(n=i.substring(u,r),u=r+1,n)}var r,i,s,u=0;if(a={},c){o.load(l),i=o.getAttribute(l)||"";do{var d=n();if(null===d)break;if(r=n(parseInt(d,32)||0),null!==r){if(d=n(),null===d)break;s=n(parseInt(d,32)||0),r&&(a[r]=s)}}while(null!==r);e()}}function r(){var t,n="";if(c){for(var r in a)t=a[r],n+=(n?",":"")+r.length.toString(32)+","+r+","+t.length.toString(32)+","+t;o.setAttribute(l,n);try{o.save(l)}catch(i){}e()}}var i,o,a,s,l,c;try{if(window.localStorage)return localStorage}catch(u){}return l="tinymce",o=document.documentElement,c=!!o.addBehavior,c&&o.addBehavior("#default#userData"),i={key:function(e){return s[e]},getItem:function(e){return e in a?a[e]:null},setItem:function(e,t){a[e]=""+t,r()},removeItem:function(e){delete a[e],r()},clear:function(){a={},r()}},n(),i}),r(yt,[y,l,b,C,p,g],function(e,t,n,r,i,o){var a=window.tinymce;return a.DOM=e.DOM,a.ScriptLoader=n.ScriptLoader,a.PluginManager=r.PluginManager,a.ThemeManager=r.ThemeManager,a.dom=a.dom||{},a.dom.Event=t.Event,i.each(i,function(e,t){a[t]=e}),i.each("isOpera isWebKit isIE isGecko isMac".split(" "),function(e){a[e]=o[e.substr(2).toLowerCase()]}),{}}),r(bt,[z,p],function(e,t){return e.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=t.extend({},this.Defaults,e)},preRender:function(e){e.addClass(this.settings.containerClass,"body")},applyClasses:function(e){var t=this,n=t.settings,r,i,o;r=e.items().filter(":visible"),i=n.firstControlClass,o=n.lastControlClass,r.each(function(e){e.removeClass(i).removeClass(o),n.controlClass&&e.addClass(n.controlClass)}),r.eq(0).addClass(i),r.eq(-1).addClass(o)},renderHtml:function(e){var t=this,n=t.settings,r,i="";return r=e.items(),r.eq(0).addClass(n.firstControlClass),r.eq(-1).addClass(n.lastControlClass),r.each(function(e){n.controlClass&&e.addClass(n.controlClass),i+=e.renderHtml()}),i},recalc:function(){},postRender:function(){}})}),r(Ct,[bt],function(e){return e.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'<div id="'+e._id+'-absend" class="'+e.classPrefix+'abs-end"></div>'+this._super(e)}})}),r(xt,[$,Q],function(e,t){return e.extend({Mixins:[t],Defaults:{classes:"widget tooltip tooltip-n"},text:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().lastChild.innerHTML=t.encode(e)),t):t._value},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes()+'" role="presentation"><div class="'+t+'tooltip-arrow"></div><div class="'+t+'tooltip-inner">'+e.encode(e._text)+"</div></div>"},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=131070}})}),r(wt,[$,xt],function(e,t){var n,r=e.extend({init:function(e){var t=this;t._super(e),e=t.settings,t.canFocus=!0,e.tooltip&&r.tooltips!==!1&&(t.on("mouseenter",function(n){var r=t.tooltip().moveTo(-65535);if(n.control==t){var i=r.text(e.tooltip).show().testMoveRel(t.getEl(),["bc-tc","bc-tl","bc-tr"]);r.toggleClass("tooltip-n","bc-tc"==i),r.toggleClass("tooltip-nw","bc-tl"==i),r.toggleClass("tooltip-ne","bc-tr"==i),r.moveRel(t.getEl(),i)}else r.hide()}),t.on("mouseleave mousedown click",function(){t.tooltip().hide()})),t.aria("label",e.ariaLabel||e.tooltip)},tooltip:function(){return n||(n=new t({type:"tooltip"}),n.renderTo()),n},active:function(e){var t=this,n;return e!==n&&(t.aria("pressed",e),t.toggleClass("active",e)),t._super(e)},disabled:function(e){var t=this,n;return e!==n&&(t.aria("disabled",e),t.toggleClass("disabled",e)),t._super(e)},postRender:function(){var e=this,t=e.settings;e._rendered=!0,e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&e.focus()},remove:function(){this._super(),n&&(n.remove(),n=null)}});return r}),r(_t,[wt],function(e){return e.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t=this,n;t.on("click mousedown",function(e){e.preventDefault()}),t._super(e),n=e.size,e.subtype&&t.addClass(e.subtype),n&&t.addClass("btn-"+n)},icon:function(e){var t=this,n=t.classPrefix;if("undefined"==typeof e)return t.settings.icon;if(t.settings.icon=e,e=e?n+"ico "+n+"i-"+t.settings.icon:"",t._rendered){var r=t.getEl().firstChild,i=r.getElementsByTagName("i")[0];e?(i&&i==r.firstChild||(i=document.createElement("i"),r.insertBefore(i,r.firstChild)),i.className=e):i&&r.removeChild(i),t.text(t._text)}return t},repaint:function(){var e=this.getEl().firstChild.style;e.width=e.height="100%",this._super()},text:function(e){var t=this;if(t._rendered){var n=t.getEl().lastChild.lastChild;n&&(n.data=t.translate(e))}return t._super(e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon,i;return i=e.settings.image,i?(r="none","string"!=typeof i&&(i=window.getSelection?i[0]:i[1]),i=" style=\"background-image: url('"+i+"')\""):i="",r=e.settings.icon?n+"ico "+n+"i-"+r:"",'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1" aria-labelledby="'+t+'"><button role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+(e._text?(r?"\xa0":"")+e.encode(e._text):"")+"</button></div>"}})}),r(Nt,[G],function(e){return e.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var e=this,t=e._layout;return e.addClass("btn-group"),e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'"><div id="'+e._id+'-body">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(Et,[wt],function(e){return e.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){var t=this;return"undefined"!=typeof e?(e?t.addClass("checked"):t.removeClass("checked"),t._checked=e,t.aria("checked",e),t):t._checked},value:function(e){return this.checked(e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes()+'" unselectable="on" aria-labelledby="'+t+'-al" tabindex="-1"><i class="'+n+"ico "+n+'i-checkbox"></i><span id="'+t+'-al" class="'+n+'label">'+e.encode(e._text)+"</span></div>"}})}),r(St,[_t,et],function(e,t){return e.extend({showPanel:function(){var e=this,n=e.settings;if(e.active(!0),e.panel)e.panel.show();else{var r=n.panel;r.type&&(r={layout:"grid",items:r}),r.role=r.role||"dialog",r.popover=!0,r.autohide=!0,r.ariaRoot=!0,e.panel=new t(r).on("hide",function(){e.active(!1)}).on("cancel",function(t){t.stopPropagation(),e.focus(),e.hidePanel()}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()}e.panel.moveRel(e.getEl(),n.popoverAlign||(e.isRtl()?["bc-tr","bc-tc"]:["bc-tl","bc-tc"]))},hidePanel:function(){var e=this;e.panel&&e.panel.hide()},postRender:function(){var e=this;return e.aria("haspopup",!0),e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():(e.showPanel(),e.panel.focus(!!t.aria)))}),e._super()}})}),r(kt,[St,y],function(e,t){var n=t.DOM;return e.extend({init:function(e){this._super(e),this.addClass("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",i=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"":"";return'<div id="'+t+'" class="'+e.classes()+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus="1" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+'<span id="'+t+'-preview" class="'+n+'preview"></span>'+(e._text?(r?" ":"")+e._text:"")+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1"> <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(r){r.aria&&"down"==r.aria.key||r.control!=e||n.getParent(r.target,"."+e.classPrefix+"open")||(r.stopImmediatePropagation(),t.call(e,r))}),delete e.settings.onclick,e._super()}})}),r(Tt,[wt,j,q],function(e,t,n){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("combobox"),t.subinput=!0,t.ariaTarget="inp",e=t.settings,e.menu=e.menu||e.values,e.menu&&(e.icon="caret"),t.on("click",function(n){for(var r=n.target,i=t.getEl();r&&r!=i;)r.id&&-1!=r.id.indexOf("-open")&&(t.fire("action"),e.menu&&(t.showMenu(),n.aria&&t.menu.items()[0].focus())),r=r.parentNode}),t.on("keydown",function(e){"INPUT"==e.target.nodeName&&13==e.keyCode&&t.parents().reverse().each(function(n){return e.preventDefault(),t.fire("change"),n.hasEventListeners("submit")&&n.toJSON?(n.fire("submit",{data:n.toJSON()}),!1):void 0})}),e.placeholder&&(t.addClass("placeholder"),t.on("focusin",function(){t._hasOnChange||(n.on(t.getEl("inp"),"change",function(){t.fire("change")}),t._hasOnChange=!0),t.hasClass("placeholder")&&(t.getEl("inp").value="",t.removeClass("placeholder"))}),t.on("focusout",function(){0===t.value().length&&(t.getEl("inp").value=e.placeholder,t.addClass("placeholder"))}))},showMenu:function(){var e=this,n=e.settings,r;e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control.items().each(function(t){t.active(t.value()==e.value())})}).fire("show"),e.menu.on("select",function(t){e.value(t.control.value())}),e.on("focusin",function(t){"INPUT"==t.target.tagName.toUpperCase()&&e.menu.hide()}),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t.removeClass("placeholder"),t._rendered&&(t.getEl("inp").value=e),t):t._rendered?(e=t.getEl("inp").value,e!=t.settings.placeholder?e:""):t._value},disabled:function(e){var t=this;return t._rendered&&"undefined"!=typeof e&&(t.getEl("inp").disabled=e),t._super(e)},focus:function(){this.getEl("inp").focus()},repaint:function(){var e=this,t=e.getEl(),r=e.getEl("open"),i=e.layoutRect(),o,a;o=r?i.w-n.getSize(r).width-10:i.w-10;var s=document;return s.all&&(!s.documentMode||s.documentMode<=8)&&(a=e.layoutRect().h-2+"px"),n.css(t.firstChild,{width:o,lineHeight:a}),e._super(),e},postRender:function(){var e=this;return n.on(this.getEl("inp"),"change",function(){e.fire("change")}),e._super()},remove:function(){n.off(this.getEl("inp")),this._super()},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.classPrefix,i=n.value||n.placeholder||"",o,a,s="",l="";return"spellcheck"in n&&(l+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(l+=' maxlength="'+n.maxLength+'"'),n.size&&(l+=' size="'+n.size+'"'),n.subtype&&(l+=' type="'+n.subtype+'"'),e.disabled()&&(l+=' disabled="disabled"'),o=n.icon,o&&"caret"!=o&&(o=r+"ico "+r+"i-"+n.icon),a=e._text,(o||a)&&(s='<div id="'+t+'-open" class="'+r+"btn "+r+'open" tabIndex="-1" role="button"><button id="'+t+'-action" type="button" hidefocus="1" tabindex="-1">'+("caret"!=o?'<i class="'+o+'"></i>':'<i class="'+r+'caret"></i>')+(a?(o?" ":"")+a:"")+"</button></div>",e.addClass("has-open")),'<div id="'+t+'" class="'+e.classes()+'"><input id="'+t+'-inp" class="'+r+"textbox "+r+'placeholder" value="'+i+'" hidefocus="1"'+l+" />"+s+"</div>"
-}})}),r(Rt,[wt],function(e){return e.extend({init:function(e){var t=this;e.delimiter||(e.delimiter="\xbb"),t._super(e),t.addClass("path"),t.canFocus=!0,t.on("click",function(e){var n,r=e.target;(n=r.getAttribute("data-index"))&&t.fire("select",{value:t.data()[n],index:n})})},focus:function(){var e=this;return e.getEl().firstChild.focus(),e},data:function(e){var t=this;return"undefined"!=typeof e?(t._data=e,t.update(),t):t._data},update:function(){this.innerHtml(this._getPathHtml())},postRender:function(){var e=this;e._super(),e.data(e.settings.data)},renderHtml:function(){var e=this;return'<div id="'+e._id+'" class="'+e.classes()+'">'+e._getPathHtml()+"</div>"},_getPathHtml:function(){var e=this,t=e._data||[],n,r,i="",o=e.classPrefix;for(n=0,r=t.length;r>n;n++)i+=(n>0?'<div class="'+o+'divider" aria-hidden="true"> '+e.settings.delimiter+" </div>":"")+'<div role="button" class="'+o+"path-item"+(n==r-1?" "+o+"last":"")+'" data-index="'+n+'" tabindex="-1" id="'+e._id+"-"+n+'" aria-level="'+n+'">'+t[n].name+"</div>";return i||(i='<div class="'+o+'path-item">\xa0</div>'),i}})}),r(At,[Rt,dt],function(e,t){return e.extend({postRender:function(){function e(e){if(1===e.nodeType){if("BR"==e.nodeName||e.getAttribute("data-mce-bogus"))return!0;if("bookmark"===e.getAttribute("data-mce-type"))return!0}return!1}var n=this,r=t.activeEditor;return n.on("select",function(t){var n=[],i,o=r.getBody();for(r.focus(),i=r.selection.getStart();i&&i!=o;)e(i)||n.push(i),i=i.parentNode;r.selection.select(n[n.length-1-t.index]),r.nodeChanged()}),r.on("nodeChange",function(t){for(var i=[],o=t.parents,a=o.length;a--;)if(1==o[a].nodeType&&!e(o[a])){var s=r.fire("ResolveName",{name:o[a].nodeName.toLowerCase(),target:o[a]});i.push({name:s.name})}n.data(i)}),n._super()}})}),r(Bt,[G],function(e){return e.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.addClass("formitem"),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<div id="'+e._id+'-title" class="'+n+'title">'+e.settings.title+"</div>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(Dt,[G,Bt],function(e,t){return e.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var e=this,n=e.items();n.each(function(n){var r,i=n.settings.label;i&&(r=new t({layout:"flex",autoResize:"overflow",defaults:{flex:1},items:[{type:"label",id:n._id+"-l",text:i,flex:0,forId:n._id,disabled:n.disabled()}]}),r.type="formitem",n.aria("labelledby",n._id+"-l"),"undefined"==typeof n.settings.flex&&(n.settings.flex=1),e.replace(n,r),r.add(n))})},recalcLabels:function(){var e=this,t=0,n=[],r,i;if(e.settings.labelGapCalc!==!1)for(e.items().filter("formitem").each(function(e){var r=e.items()[0],i=r.getEl().clientWidth;t=i>t?i:t,n.push(r)}),i=e.settings.labelGap||0,r=n.length;r--;)n[r].settings.minWidth=t+i},visible:function(e){var t=this._super(e);return e===!0&&this._rendered&&this.recalcLabels(),t},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){var e=this;e._super(),e.recalcLabels(),e.fromJSON(e.settings.data)}})}),r(Lt,[Dt],function(e){return e.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'<fieldset id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<legend id="'+e._id+'-title" class="'+n+'fieldset-title">'+e.settings.title+"</legend>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></fieldset>"}})}),r(Mt,[Tt],function(e){return e.extend({init:function(e){var t=this,n=tinymce.activeEditor,r;e.spellcheck=!1,r=n.settings.file_browser_callback,r&&(e.icon="browse",e.onaction=function(){r(t.getEl("inp").id,t.getEl("inp").value,e.filetype,window)}),t._super(e)}})}),r(Ht,[Ct],function(e){return e.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox();e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc()})}})}),r(Pt,[Ct],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,c,u,d,f,p,h,m,g,v=[],y,b,C,x,w,_,N,E,S,k,T,R,A,B,D,L,M,H,P,O,I,F,z=Math.max,W=Math.min;for(r=e.items().filter(":visible"),i=e.layoutRect(),o=e._paddingBox,a=e.settings,f=e.isRtl()?a.direction||"row-reversed":a.direction,s=a.align,l=e.isRtl()?a.pack||"end":a.pack,c=a.spacing||0,("row-reversed"==f||"column-reverse"==f)&&(r=r.set(r.toArray().reverse()),f=f.split("-")[0]),"column"==f?(S="y",N="h",E="minH",k="maxH",R="innerH",T="top",A="deltaH",B="contentH",P="left",M="w",D="x",L="innerW",H="minW",O="right",I="deltaW",F="contentW"):(S="x",N="w",E="minW",k="maxW",R="innerW",T="left",A="deltaW",B="contentW",P="top",M="h",D="y",L="innerH",H="minH",O="bottom",I="deltaH",F="contentH"),d=i[R]-o[T]-o[T],_=u=0,t=0,n=r.length;n>t;t++)p=r[t],h=p.layoutRect(),m=p.settings,g=m.flex,d-=n-1>t?c:0,g>0&&(u+=g,h[k]&&v.push(p),h.flex=g),d-=h[E],y=o[P]+h[H]+o[O],y>_&&(_=y);if(x={},x[E]=0>d?i[E]-d+i[A]:i[R]-d+i[A],x[H]=_+i[I],x[B]=i[R]-d,x[F]=_,x.minW=W(x.minW,i.maxW),x.minH=W(x.minH,i.maxH),x.minW=z(x.minW,i.startMinWidth),x.minH=z(x.minH,i.startMinHeight),!i.autoResize||x.minW==i.minW&&x.minH==i.minH){for(C=d/u,t=0,n=v.length;n>t;t++)p=v[t],h=p.layoutRect(),b=h[k],y=h[E]+h.flex*C,y>b?(d-=h[k]-h[E],u-=h.flex,h.flex=0,h.maxFlexSize=b):h.maxFlexSize=0;for(C=d/u,w=o[T],x={},0===u&&("end"==l?w=d+o[T]:"center"==l?(w=Math.round(i[R]/2-(i[R]-d)/2)+o[T],0>w&&(w=o[T])):"justify"==l&&(w=o[T],c=Math.floor(d/(r.length-1)))),x[D]=o[P],t=0,n=r.length;n>t;t++)p=r[t],h=p.layoutRect(),y=h.maxFlexSize||h[E],"center"===s?x[D]=Math.round(i[L]/2-h[M]/2):"stretch"===s?(x[M]=z(h[H]||0,i[L]-o[P]-o[O]),x[D]=o[P]):"end"===s&&(x[D]=i[L]-h[M]-o.top),h.flex>0&&(y+=h.flex*C),x[N]=y,x[S]=w,p.layoutRect(x),p.recalc&&p.recalc(),w+=y+c}else if(x.w=x.minW,x.h=x.minH,e.layoutRect(x),this.recalc(e),null===e._lastRect){var V=e.parent();V&&(V._lastRect=null,V.recalc())}}})}),r(Ot,[bt],function(e){return e.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})}})}),r(It,[$,wt,et,p,dt,g],function(e,t,n,r,i,o){function a(e){function t(t,n){return function(){var r=this;e.on("nodeChange",function(i){var o=e.formatter,a=null;s(i.parents,function(e){return s(t,function(t){return n?o.matchNode(e,n,{value:t.value})&&(a=t.value):o.matchNode(e,t.value)&&(a=t.value),a?!1:void 0}),a?!1:void 0}),r.value(a)})}}function r(e){e=e.replace(/;$/,"").split(";");for(var t=e.length;t--;)e[t]=e[t].split("=");return e}function i(){function t(e){var n=[];if(e)return s(e,function(e){var o={text:e.title,icon:e.icon};if(e.items)o.menu=t(e.items);else{var a=e.format||"custom"+r++;e.format||(e.name=a,i.push(e)),o.format=a}n.push(o)}),n}function n(){var n;return n=t(e.settings.style_formats_merge?e.settings.style_formats?o.concat(e.settings.style_formats):o:e.settings.style_formats||o)}var r=0,i=[],o=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];return e.on("init",function(){s(i,function(t){e.formatter.register(t.name,t)})}),{type:"menu",items:n(),onPostRender:function(t){e.fire("renderFormatsMenu",{control:t.control})},itemDefaults:{preview:!0,textStyle:function(){return this.settings.format?e.formatter.getCssText(this.settings.format):void 0},onPostRender:function(){var t=this,n=this.settings.format;n&&t.parent().on("show",function(){t.disabled(!e.formatter.canApply(n)),t.active(e.formatter.match(n))})},onclick:function(){this.settings.format&&d(this.settings.format)}}}}function o(){return e.undoManager?e.undoManager.hasUndo():!1}function a(){return e.undoManager?e.undoManager.hasRedo():!1}function l(){var t=this;t.disabled(!o()),e.on("Undo Redo AddUndo TypingUndo",function(){t.disabled(!o())})}function c(){var t=this;t.disabled(!a()),e.on("Undo Redo AddUndo TypingUndo",function(){t.disabled(!a())})}function u(){var t=this;e.on("VisualAid",function(e){t.active(e.hasVisual)}),t.active(e.hasVisual)}function d(t){t.control&&(t=t.control.value()),t&&e.execCommand("mceToggleFormat",!1,t)}var f;f=i(),s({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(t,n){e.addButton(n,{tooltip:t,onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})},onclick:function(){d(n)}})}),s({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],hr:["Insert horizontal rule","InsertHorizontalRule"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1]})}),s({blockquote:["Blockquote","mceBlockQuote"],numlist:["Numbered list","InsertOrderedList"],bullist:["Bullet list","InsertUnorderedList"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1],onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})}})}),e.addButton("undo",{tooltip:"Undo",onPostRender:l,cmd:"undo"}),e.addButton("redo",{tooltip:"Redo",onPostRender:c,cmd:"redo"}),e.addMenuItem("newdocument",{text:"New document",shortcut:"Ctrl+N",icon:"newdocument",cmd:"mceNewDocument"}),e.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Ctrl+Z",onPostRender:l,cmd:"undo"}),e.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Ctrl+Y",onPostRender:c,cmd:"redo"}),e.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:u,cmd:"mceToggleVisualAid"}),s({cut:["Cut","Cut","Ctrl+X"],copy:["Copy","Copy","Ctrl+C"],paste:["Paste","Paste","Ctrl+V"],selectall:["Select all","SelectAll","Ctrl+A"],bold:["Bold","Bold","Ctrl+B"],italic:["Italic","Italic","Ctrl+I"],underline:["Underline","Underline"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(t,n){e.addMenuItem(n,{text:t[0],icon:n,shortcut:t[2],cmd:t[1]})}),e.on("mousedown",function(){n.hideAll()}),e.addButton("styleselect",{type:"menubutton",text:"Formats",menu:f}),e.addButton("formatselect",function(){var n=[],i=r(e.settings.block_formats||"Paragraph=p;Address=address;Pre=pre;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6");return s(i,function(t){n.push({text:t[0],value:t[1],textStyle:function(){return e.formatter.getCssText(t[1])}})}),{type:"listbox",text:i[0][0],values:n,fixedWidth:!0,onselect:d,onPostRender:t(n)}}),e.addButton("fontselect",function(){var n="Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",i=[],o=r(e.settings.font_formats||n);return s(o,function(e){i.push({text:{raw:e[0]},value:e[1],textStyle:-1==e[1].indexOf("dings")?"font-family:"+e[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:i,fixedWidth:!0,onPostRender:t(i,"fontname"),onselect:function(t){t.control.settings.value&&e.execCommand("FontName",!1,t.control.settings.value)}}}),e.addButton("fontsizeselect",function(){var n=[],r="8pt 10pt 12pt 14pt 18pt 24pt 36pt",i=e.settings.fontsize_formats||r;return s(i.split(" "),function(e){n.push({text:e,value:e})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:n,fixedWidth:!0,onPostRender:t(n,"fontsize"),onclick:function(t){t.control.settings.value&&e.execCommand("FontSize",!1,t.control.settings.value)}}}),e.addMenuItem("formats",{text:"Formats",menu:f})}var s=r.each;i.on("AddEditor",function(t){t.editor.rtl&&(e.rtl=!0),a(t.editor)}),e.translate=function(e){return i.translate(e)},t.tooltips=!o.iOS}),r(Ft,[Ct],function(e){return e.extend({recalc:function(e){var t=e.settings,n,r,i,o,a,s,l,c,u,d,f,p,h,m,g,v,y,b,C,x,w,_,N=[],E=[],S,k,T,R;for(t=e.settings,i=e.items().filter(":visible"),o=e.layoutRect(),r=t.columns||Math.ceil(Math.sqrt(i.length)),n=Math.ceil(i.length/r),y=t.spacingH||t.spacing||0,b=t.spacingV||t.spacing||0,C=t.alignH||t.align,x=t.alignV||t.align,g=e._paddingBox,C&&"string"==typeof C&&(C=[C]),x&&"string"==typeof x&&(x=[x]),d=0;r>d;d++)N.push(0);for(f=0;n>f;f++)E.push(0);for(f=0;n>f;f++)for(d=0;r>d&&(u=i[f*r+d],u);d++)c=u.layoutRect(),S=c.minW,k=c.minH,N[d]=S>N[d]?S:N[d],E[f]=k>E[f]?k:E[f];for(T=o.innerW-g.left-g.right,w=0,d=0;r>d;d++)w+=N[d]+(d>0?y:0),T-=(d>0?y:0)+N[d];for(R=o.innerH-g.top-g.bottom,_=0,f=0;n>f;f++)_+=E[f]+(f>0?b:0),R-=(f>0?b:0)+E[f];if(w+=g.left+g.right,_+=g.top+g.bottom,l={},l.minW=w+(o.w-o.innerW),l.minH=_+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW==o.minW&&l.minH==o.minH){o.autoResize&&(l=e.layoutRect(l),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH);var A;A="start"==t.packV?0:R>0?Math.floor(R/n):0;var B=0,D=t.flexWidths;if(D)for(d=0;d<D.length;d++)B+=D[d];else B=r;var L=T/B;for(d=0;r>d;d++)N[d]+=D?D[d]*L:L;for(h=g.top,f=0;n>f;f++){for(p=g.left,s=E[f]+A,d=0;r>d&&(u=i[f*r+d],u);d++)m=u.settings,c=u.layoutRect(),a=Math.max(N[d],c.startMinWidth),c.x=p,c.y=h,v=m.alignH||(C?C[d]||C[0]:null),"center"==v?c.x=p+a/2-c.w/2:"right"==v?c.x=p+a-c.w:"stretch"==v&&(c.w=a),v=m.alignV||(x?x[d]||x[0]:null),"center"==v?c.y=h+s/2-c.h/2:"bottom"==v?c.y=h+s-c.h:"stretch"==v&&(c.h=s),u.layoutRect(c),p+=a+y,u.recalc&&u.recalc();h+=s+b}}else if(l.w=l.minW,l.h=l.minH,e.layoutRect(l),this.recalc(e),null===e._lastRect){var M=e.parent();M&&(M._lastRect=null,M.recalc())}}})}),r(zt,[wt],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("iframe"),e.canFocus=!1,'<iframe id="'+e._id+'" class="'+e.classes()+'" tabindex="-1" src="'+(e.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(e){this.getEl().src=e},html:function(e,t){var n=this,r=this.getEl().contentWindow.document.body;return r?(r.innerHTML=e,t&&t()):setTimeout(function(){n.html(e)},0),this}})}),r(Wt,[wt,q],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("widget"),t.addClass("label"),t.canFocus=!1,e.multiline&&t.addClass("autoscroll"),e.strong&&t.addClass("strong")},initLayoutRect:function(){var e=this,n=e._super();if(e.settings.multiline){var r=t.getSize(e.getEl());r.width>n.maxW&&(n.minW=n.maxW,e.addClass("multiline")),e.getEl().style.width=n.minW+"px",n.startMinH=n.h=n.minH=Math.min(n.maxH,t.getSize(e.getEl()).height)}return n},repaint:function(){var e=this;return e.settings.multiline||(e.getEl().style.lineHeight=e.layoutRect().h+"px"),e._super()},text:function(e){var t=this;return t._rendered&&e&&this.innerHtml(t.encode(e)),t._super(e)},renderHtml:function(){var e=this,t=e.settings.forId;return'<label id="'+e._id+'" class="'+e.classes()+'"'+(t?' for="'+t+'"':"")+">"+e.encode(e._text)+"</label>"}})}),r(Vt,[G],function(e){return e.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){var t=this;t._super(e),t.addClass("toolbar")},postRender:function(){var e=this;return e.items().addClass("toolbar-item"),e._super()}})}),r(Ut,[Vt],function(e){return e.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}})}),r(qt,[_t,j,Ut],function(e,t,n){function r(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}var i=e.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),t.addClass("menubtn"),e.fixedWidth&&t.addClass("fixed-width"),t.aria("haspopup",!0),t.hasPopup=!0},showMenu:function(){var e=this,n=e.settings,r;return e.menu&&e.menu.visible()?e.hideMenu():(e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control.parent()===e.menu&&(t.stopPropagation(),e.focus(),e.hideMenu())}),e.menu.on("select",function(){e.focus()}),e.menu.on("show hide",function(t){t.control==e.menu&&e.activeMenu("show"==t.type),e.aria("expanded","show"==t.type)}).fire("show")),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),void e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]))},hideMenu:function(){var e=this;e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide())},activeMenu:function(e){this.toggleClass("active",e)},renderHtml:function(){var e=this,t=e._id,r=e.classPrefix,i=e.settings.icon?r+"ico "+r+"i-"+e.settings.icon:"";return e.aria("role",e.parent()instanceof n?"menuitem":"button"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1" aria-labelledby="'+t+'"><button id="'+t+'-open" role="presentation" type="button" tabindex="-1">'+(i?'<i class="'+i+'"></i>':"")+"<span>"+(e._text?(i?"\xa0":"")+e.encode(e._text):"")+'</span> <i class="'+r+'caret"></i></button></div>'},postRender:function(){var e=this;return e.on("click",function(t){t.control===e&&r(t.target,e.getEl())&&(e.showMenu(),t.aria&&e.menu.items()[0].focus())}),e.on("mouseenter",function(t){var n=t.control,r=e.parent(),o;n&&r&&n instanceof i&&n.parent()==r&&(r.items().filter("MenuButton").each(function(e){e.hideMenu&&e!=n&&(e.menu&&e.menu.visible()&&(o=!0),e.hideMenu())}),o&&(n.focus(),n.showMenu()))}),e._super()},text:function(e){var t=this,n,r;if(t._rendered)for(r=t.getEl("open").getElementsByTagName("span"),n=0;n<r.length;n++)r[n].innerHTML=(t.settings.icon&&e?"\xa0":"")+t.encode(e);return this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}});return i}),r($t,[qt],function(e){return e.extend({init:function(e){var t=this,n,r,i,o,a;if(t._values=n=e.values,n){for(r=0;r<n.length;r++)if(i=n[r].selected||e.value===n[r].value){o=o||n[r].text,t._value=n[r].value;break}!i&&n.length>0&&(o=n[0].text,t._value=n[0].value),e.menu=n}e.text=e.text||o||n[0].text,t._super(e),t.addClass("listbox"),t.on("select",function(n){var r=n.control;a&&(n.lastControl=a),e.multiple?r.active(!r.active()):t.value(n.control.settings.value),a=r})},value:function(e){function t(e,n){e.items().each(function(e){r=e.value()===n,r&&(i=i||e.text()),e.active(r),e.menu&&t(e.menu,n)})}var n=this,r,i,o,a;if("undefined"!=typeof e){if(n.menu)t(n.menu,e);else for(o=n.settings.menu,a=0;a<o.length;a++)r=o[a].value==e,r&&(i=i||o[a].text),o[a].active=r;n.text(i||this.settings.text)}return n._super(e)}})}),r(jt,[wt,j,g],function(e,t,n){return e.extend({Defaults:{border:0,role:"menuitem"},init:function(e){var t=this;t.hasPopup=!0,t._super(e),e=t.settings,t.addClass("menu-item"),e.menu&&t.addClass("menu-item-expand"),e.preview&&t.addClass("menu-item-preview"),("-"===t._text||"|"===t._text)&&(t.addClass("menu-item-sep"),t.aria("role","separator"),t._text="-"),e.selectable&&(t.aria("role","menuitemcheckbox"),t.addClass("menu-item-checkbox"),e.icon="selected"),e.preview||e.selectable||t.addClass("menu-item-normal"),t.on("mousedown",function(e){e.preventDefault()}),e.menu&&!e.ariaHideMenu&&t.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var e=this,n=e.settings,r,i=e.parent();if(i.items().each(function(t){t!==e&&t.hideMenu()}),n.menu){r=e.menu,r?r.show():(r=n.menu,r.length?r={type:"menu",items:r}:r.type=r.type||"menu",i.settings.itemDefaults&&(r.itemDefaults=i.settings.itemDefaults),r=e.menu=t.create(r).parent(e).renderTo(),r.reflow(),r.fire("show"),r.on("cancel",function(t){t.stopPropagation(),e.focus(),r.hide()}),r.on("hide",function(t){t.control===r&&e.removeClass("selected")}),r.submenu=!0),r._parentMenu=i,r.addClass("menu-sub");var o=r.testMoveRel(e.getEl(),e.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);r.moveRel(e.getEl(),o),r.rel=o,o="menu-sub-"+o,r.removeClass(r._lastRel),r.addClass(o),r._lastRel=o,e.addClass("selected"),e.aria("expanded",!0)}},hideMenu:function(){var e=this;return e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1)),e},renderHtml:function(){var e=this,t=e._id,r=e.settings,i=e.classPrefix,o=e.encode(e._text),a=e.settings.icon,s="",l=r.shortcut;return a&&e.parent().addClass("menu-has-icons"),r.image&&(a="none",s=" style=\"background-image: url('"+r.image+"')\""),l&&n.mac&&(l=l.replace(/ctrl\+alt\+/i,"&#x2325;&#x2318;"),l=l.replace(/ctrl\+/i,"&#x2318;"),l=l.replace(/alt\+/i,"&#x2325;"),l=l.replace(/shift\+/i,"&#x21E7;")),a=i+"ico "+i+"i-"+(e.settings.icon||"none"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1">'+("-"!==o?'<i class="'+a+'"'+s+"></i>\xa0":"")+("-"!==o?'<span id="'+t+'-text" class="'+i+'text">'+o+"</span>":"")+(l?'<div id="'+t+'-shortcut" class="'+i+'menu-shortcut">'+l+"</div>":"")+(r.menu?'<div class="'+i+'caret"></div>':"")+"</div>"},postRender:function(){var e=this,t=e.settings,n=t.textStyle;if("function"==typeof n&&(n=n.call(this)),n){var r=e.getEl("text");r&&r.setAttribute("style",n)}return e.on("mouseenter click",function(n){n.control===e&&(t.menu||"click"!==n.type?(e.showMenu(),n.aria&&e.menu.focus(!0)):(e.fire("select"),e.parent().hideAll()))}),e._super(),e},active:function(e){return"undefined"!=typeof e&&this.aria("checked",e),this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}})}),r(Kt,[et,jt,p],function(e,t,n){var r=e.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(e){var t=this;if(e.autohide=!0,e.constrainToViewport=!0,e.itemDefaults)for(var r=e.items,i=r.length;i--;)r[i]=n.extend({},e.itemDefaults,r[i]);t._super(e),t.addClass("menu")},repaint:function(){return this.toggleClass("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){var e=this;e.hideAll(),e.fire("select")},hideAll:function(){var e=this;return this.find("menuitem").exec("hideMenu"),e._super()},preRender:function(){var e=this;return e.items().each(function(t){var n=t.settings;return n.icon||n.selectable?(e._hasIcons=!0,!1):void 0}),e._super()}});return r}),r(Gt,[Et],function(e){return e.extend({Defaults:{classes:"radio",role:"radio"}})}),r(Yt,[wt,Y],function(e,t){return e.extend({renderHtml:function(){var e=this,t=e.classPrefix;return e.addClass("resizehandle"),"both"==e.settings.direction&&e.addClass("resizehandle-both"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"><i class="'+t+"ico "+t+'i-resize"></i></div>'},postRender:function(){var e=this;e._super(),e.resizeDragHelper=new t(this._id,{start:function(){e.fire("ResizeStart")},drag:function(t){"both"!=e.settings.direction&&(t.deltaX=0),e.fire("Resize",t)},stop:function(){e.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}})}),r(Xt,[wt],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("spacer"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"></div>'}})}),r(Jt,[qt,q],function(e,t){return e.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var e=this,n=e.getEl(),r=e.layoutRect(),i,o;return e._super(),i=n.firstChild,o=n.lastChild,t.css(i,{width:r.w-t.getSize(o).width,height:r.h-2}),t.css(o,{height:r.h-2}),e},activeMenu:function(e){var n=this;t.toggleClass(n.getEl().lastChild,n.classPrefix+"active",e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"";return'<div id="'+t+'" class="'+e.classes()+'" role="button" tabindex="-1"><button type="button" hidefocus="1" tabindex="-1">'+(r?'<i class="'+r+'"></i>':"")+(e._text?(r?" ":"")+e._text:"")+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1">'+(e._menuBtnText?(r?"\xa0":"")+e._menuBtnText:"")+' <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(e){var n=e.target;if(e.control==this)for(;n;){if(e.aria&&"down"!=e.aria.key||"BUTTON"==n.nodeName&&-1==n.className.indexOf("open"))return e.stopImmediatePropagation(),void t.call(this,e);n=n.parentNode}}),delete e.settings.onclick,e._super()}})}),r(Qt,[Ot],function(e){return e.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"}})}),r(Zt,[J,q],function(e,t){return e.extend({lastIdx:0,Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(e){var n;this.activeTabId&&(n=this.getEl(this.activeTabId),t.removeClass(n,this.classPrefix+"active"),n.setAttribute("aria-selected","false")),this.activeTabId="t"+e,n=this.getEl("t"+e),n.setAttribute("aria-selected","true"),t.addClass(n,this.classPrefix+"active"),e!=this.lastIdx&&(this.items()[this.lastIdx].hide(),this.lastIdx=e),this.items()[e].show().fire("showtab"),this.reflow()},renderHtml:function(){var e=this,t=e._layout,n="",r=e.classPrefix;return e.preRender(),t.preRender(e),e.items().each(function(t,i){var o=e._id+"-t"+i;t.aria("role","tabpanel"),t.aria("labelledby",o),n+='<div id="'+o+'" class="'+r+'tab" unselectable="on" role="tab" aria-controls="'+t._id+'" aria-selected="false" tabIndex="-1">'+e.encode(t.settings.title)+"</div>"}),'<div id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1"><div id="'+e._id+'-head" class="'+r+'tabs" role="tablist">'+n+'</div><div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this;e._super(),e.settings.activeTab=e.settings.activeTab||0,e.activateTab(e.settings.activeTab),this.on("click",function(t){var n=t.target.parentNode;if(t.target.parentNode.id==e._id+"-head")for(var r=n.childNodes.length;r--;)n.childNodes[r]==t.target&&e.activateTab(r)})},initLayoutRect:function(){var e=this,n,r,i;r=t.getSize(e.getEl("head")).width,r=0>r?0:r,i=0,e.items().each(function(t,n){r=Math.max(r,t.layoutRect().minW),i=Math.max(i,t.layoutRect().minH),e.settings.activeTab!=n&&t.hide()}),e.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=r,e.settings.h=i,e.layoutRect({x:0,y:0,w:r,h:i})});var o=t.getSize(e.getEl("head")).height;return e.settings.minWidth=r,e.settings.minHeight=i+o,n=e._super(),n.deltaH+=o,n.innerH=n.h-n.deltaH,n}})}),r(en,[wt,q],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t._value=e.value||"",t.addClass("textbox"),e.multiline?t.addClass("multiline"):t.on("keydown",function(e){13==e.keyCode&&t.parents().reverse().each(function(t){return e.preventDefault(),t.hasEventListeners("submit")&&t.toJSON?(t.fire("submit",{data:t.toJSON()}),!1):void 0})})},disabled:function(e){var t=this;return t._rendered&&"undefined"!=typeof e&&(t.getEl().disabled=e),t._super(e)},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().value=e),t):t._rendered?t.getEl().value:t._value},repaint:function(){var e=this,t,n,r,i=0,o=0,a;t=e.getEl().style,n=e._layoutRect,a=e._lastRepaintRect||{};var s=document;return!e.settings.multiline&&s.all&&(!s.documentMode||s.documentMode<=8)&&(t.lineHeight=n.h-o+"px"),r=e._borderBox,i=r.left+r.right+8,o=r.top+r.bottom+(e.settings.multiline?8:0),n.x!==a.x&&(t.left=n.x+"px",a.x=n.x),n.y!==a.y&&(t.top=n.y+"px",a.y=n.y),n.w!==a.w&&(t.width=n.w-i+"px",a.w=n.w),n.h!==a.h&&(t.height=n.h-o+"px",a.h=n.h),e._lastRepaintRect=a,e.fire("repaint",{},!1),e},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.encode(e._value,!1),i="";return"spellcheck"in n&&(i+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(i+=' maxlength="'+n.maxLength+'"'),n.size&&(i+=' size="'+n.size+'"'),n.subtype&&(i+=' type="'+n.subtype+'"'),e.disabled()&&(i+=' disabled="disabled"'),n.multiline?'<textarea id="'+t+'" class="'+e.classes()+'" '+(n.rows?' rows="'+n.rows+'"':"")+' hidefocus="1"'+i+">"+r+"</textarea>":'<input id="'+t+'" class="'+e.classes()+'" value="'+r+'" hidefocus="1"'+i+" />"},postRender:function(){var e=this;return t.on(e.getEl(),"change",function(t){e.fire("change",t)}),e._super()},remove:function(){t.off(this.getEl()),this._super()}})}),r(tn,[q,$],function(e,t){return function(n,r){var i=this,o,a=t.classPrefix;i.show=function(t){return i.hide(),o=!0,window.setTimeout(function(){o&&n.appendChild(e.createFragment('<div class="'+a+"throbber"+(r?" "+a+"throbber-inline":"")+'"></div>'))},t||0),i},i.hide=function(){var e=n.lastChild;return e&&-1!=e.className.indexOf("throbber")&&e.parentNode.removeChild(e),o=!1,i}}}),a([l,c,u,d,f,p,h,m,g,v,y,b,C,x,w,_,N,E,S,k,T,R,A,B,D,L,M,H,P,O,I,F,z,W,V,U,q,$,j,K,G,Y,X,J,Q,Z,et,tt,nt,rt,it,ot,at,st,lt,ct,ut,dt,ft,pt,ht,mt,gt,vt,yt,bt,Ct,xt,wt,_t,Nt,Et,St,kt,Tt,Rt,At,Bt,Dt,Lt,Mt,Ht,Pt,Ot,It,Ft,zt,Wt,Vt,Ut,qt,$t,jt,Kt,Gt,Yt,Xt,Jt,Qt,Zt,en,tn])}(this);tinymce.PluginManager.add("advlist",function(t){function e(t,e){var n=[];return tinymce.each(e.split(/[ ,]/),function(t){n.push({text:t.replace(/\-/g," ").replace(/\b\w/g,function(t){return t.toUpperCase()}),data:"default"==t?"":t})}),n}function n(e,n){var o,l=t.dom,a=t.selection;o=l.getParent(a.getNode(),"ol,ul"),o&&o.nodeName==e&&n!==!1||t.execCommand("UL"==e?"InsertUnorderedList":"InsertOrderedList"),n=n===!1?i[e]:n,i[e]=n,o=l.getParent(a.getNode(),"ol,ul"),o&&(l.setStyle(o,"listStyleType",n),o.removeAttribute("data-mce-style")),t.focus()}function o(e){var n=t.dom.getStyle(t.dom.getParent(t.selection.getNode(),"ol,ul"),"listStyleType")||"";e.control.items().each(function(t){t.active(t.settings.data===n)})}var l,a,i={};l=e("OL",t.getParam("advlist_number_styles","default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman")),a=e("UL",t.getParam("advlist_bullet_styles","default,circle,disc,square")),t.addButton("numlist",{type:"splitbutton",tooltip:"Numbered list",menu:l,onshow:o,onselect:function(t){n("OL",t.control.settings.data)},onclick:function(){n("OL",!1)}}),t.addButton("bullist",{type:"splitbutton",tooltip:"Bullet list",menu:a,onshow:o,onselect:function(t){n("UL",t.control.settings.data)},onclick:function(){n("UL",!1)}})});tinymce.PluginManager.add("anchor",function(n){function e(){var e=n.selection.getNode();n.windowManager.open({title:"Anchor",body:{type:"textbox",name:"name",size:40,label:"Name",value:e.name||e.id},onsubmit:function(e){n.execCommand("mceInsertContent",!1,n.dom.createHTML("a",{id:e.data.name}))}})}n.addButton("anchor",{icon:"anchor",tooltip:"Anchor",onclick:e,stateSelector:"a:not([href])"}),n.addMenuItem("anchor",{icon:"anchor",text:"Anchor",context:"insert",onclick:e})});tinymce.PluginManager.add("autolink",function(t){function n(t){o(t,-1,"(",!0)}function e(t){o(t,0,"",!0)}function i(t){o(t,-1,"",!1)}function o(t,n,e){function i(t,n){if(0>n&&(n=0),3==t.nodeType){var e=t.data.length;n>e&&(n=e)}return n}function o(t,n){f.setStart(t,i(t,n))}function r(t,n){f.setEnd(t,i(t,n))}var f,d,a,s,c,l,u,g,h;if(f=t.selection.getRng(!0).cloneRange(),f.startOffset<5){if(g=f.endContainer.previousSibling,!g){if(!f.endContainer.firstChild||!f.endContainer.firstChild.nextSibling)return;g=f.endContainer.firstChild.nextSibling}if(h=g.length,o(g,h),r(g,h),f.endOffset<5)return;d=f.endOffset,s=g}else{if(s=f.endContainer,3!=s.nodeType&&s.firstChild){for(;3!=s.nodeType&&s.firstChild;)s=s.firstChild;3==s.nodeType&&(o(s,0),r(s,s.nodeValue.length))}d=1==f.endOffset?2:f.endOffset-1-n}a=d;do o(s,d>=2?d-2:0),r(s,d>=1?d-1:0),d-=1;while(" "!=f.toString()&&""!==f.toString()&&160!=f.toString().charCodeAt(0)&&d-2>=0&&f.toString()!=e);f.toString()==e||160==f.toString().charCodeAt(0)?(o(s,d),r(s,a),d+=1):0===f.startOffset?(o(s,0),r(s,a)):(o(s,d),r(s,a)),l=f.toString(),"."==l.charAt(l.length-1)&&r(s,a-1),l=f.toString(),u=l.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+\-]+@)(.+)$/i),u&&("www."==u[1]?u[1]="http://www.":/@$/.test(u[1])&&!/^mailto:/.test(u[1])&&(u[1]="mailto:"+u[1]),c=t.selection.getBookmark(),t.selection.setRng(f),t.execCommand("createlink",!1,u[1]+u[2]),t.selection.moveToBookmark(c),t.nodeChanged())}var r;return t.on("keydown",function(n){return 13==n.keyCode?i(t):void 0}),tinymce.Env.ie?void t.on("focus",function(){if(!r){r=!0;try{t.execCommand("AutoUrlDetect",!1,!0)}catch(n){}}}):(t.on("keypress",function(e){return 41==e.keyCode?n(t):void 0}),void t.on("keyup",function(n){return 32==n.keyCode?e(t):void 0}))});tinymce.PluginManager.add("autoresize",function(e){function t(){return e.plugins.fullscreen&&e.plugins.fullscreen.isFullscreen()}function i(n){var s,r,g,u,l,m,h,d,f=tinymce.DOM;if(r=e.getDoc()){if(g=r.body,u=r.documentElement,l=o.autoresize_min_height,!g||n&&"setcontent"===n.type&&n.initial||t())return void(g&&u&&(g.style.overflowY="auto",u.style.overflowY="auto"));h=e.dom.getStyle(g,"margin-top",!0),d=e.dom.getStyle(g,"margin-bottom",!0),m=g.offsetHeight+parseInt(h,10)+parseInt(d,10),(isNaN(m)||0>=m)&&(m=tinymce.Env.ie?g.scrollHeight:tinymce.Env.webkit&&0===g.clientHeight?0:g.offsetHeight),m>o.autoresize_min_height&&(l=m),o.autoresize_max_height&&m>o.autoresize_max_height?(l=o.autoresize_max_height,g.style.overflowY="auto",u.style.overflowY="auto"):(g.style.overflowY="hidden",u.style.overflowY="hidden",g.scrollTop=0),l!==a&&(s=l-a,f.setStyle(f.get(e.id+"_ifr"),"height",l+"px"),a=l,tinymce.isWebKit&&0>s&&i(n))}}function n(e,t,o){setTimeout(function(){i({}),e--?n(e,t,o):o&&o()},t)}var o=e.settings,a=0;e.settings.inline||(o.autoresize_min_height=parseInt(e.getParam("autoresize_min_height",e.getElement().offsetHeight),10),o.autoresize_max_height=parseInt(e.getParam("autoresize_max_height",0),10),e.on("init",function(){var t=e.getParam("autoresize_overflow_padding",1);e.dom.setStyles(e.getBody(),{paddingBottom:e.getParam("autoresize_bottom_margin",50),paddingLeft:t,paddingRight:t})}),e.on("nodechange setcontent keyup FullscreenStateChanged",i),e.getParam("autoresize_on_init",!0)&&e.on("init",function(){n(20,100,function(){n(5,1e3)})}),e.addCommand("mceAutoResize",i))});tinymce.PluginManager.add("autosave",function(e){function t(e,t){var n={s:1e3,m:6e4};return e=/^(\d+)([ms]?)$/.exec(""+(e||t)),(e[2]?n[e[2]]:1)*parseInt(e,10)}function n(){var e=parseInt(l.getItem(d+"time"),10)||0;return(new Date).getTime()-e>v.autosave_retention?(a(!1),!1):!0}function a(t){l.removeItem(d+"draft"),l.removeItem(d+"time"),t!==!1&&e.fire("RemoveDraft")}function r(){!c()&&e.isDirty()&&(l.setItem(d+"draft",e.getContent({format:"raw",no_events:!0})),l.setItem(d+"time",(new Date).getTime()),e.fire("StoreDraft"))}function o(){n()&&(e.setContent(l.getItem(d+"draft"),{format:"raw"}),e.fire("RestoreDraft"))}function i(){m||(setInterval(function(){e.removed||r()},v.autosave_interval),m=!0)}function s(){var t=this;t.disabled(!n()),e.on("StoreDraft RestoreDraft RemoveDraft",function(){t.disabled(!n())}),i()}function u(){e.undoManager.beforeChange(),o(),a(),e.undoManager.add()}function f(){var e;return tinymce.each(tinymce.editors,function(t){t.plugins.autosave&&t.plugins.autosave.storeDraft(),!e&&t.isDirty()&&t.getParam("autosave_ask_before_unload",!0)&&(e=t.translate("You have unsaved changes are you sure you want to navigate away?"))}),e}function c(t){var n=e.settings.forced_root_block;return t=tinymce.trim("undefined"==typeof t?e.getBody().innerHTML:t),""===t||new RegExp("^<"+n+"[^>]*>(( |&nbsp;|[ ]|<br[^>]*>)+?|)</"+n+">|<br>$","i").test(t)}var d,m,v=e.settings,l=tinymce.util.LocalStorage;d=v.autosave_prefix||"tinymce-autosave-{path}{query}-{id}-",d=d.replace(/\{path\}/g,document.location.pathname),d=d.replace(/\{query\}/g,document.location.search),d=d.replace(/\{id\}/g,e.id),v.autosave_interval=t(v.autosave_interval,"30s"),v.autosave_retention=t(v.autosave_retention,"20m"),e.addButton("restoredraft",{title:"Restore last draft",onclick:u,onPostRender:s}),e.addMenuItem("restoredraft",{text:"Restore last draft",onclick:u,onPostRender:s,context:"file"}),e.settings.autosave_restore_when_empty!==!1&&(e.on("init",function(){n()&&c()&&o()}),e.on("saveContent",function(){a()})),window.onbeforeunload=f,this.hasDraft=n,this.storeDraft=r,this.restoreDraft=o,this.removeDraft=a,this.isEmpty=c});!function(){tinymce.create("tinymce.plugins.BBCodePlugin",{init:function(o){var e=this,t=o.getParam("bbcode_dialect","punbb").toLowerCase();o.on("beforeSetContent",function(o){o.content=e["_"+t+"_bbcode2html"](o.content)}),o.on("postProcess",function(o){o.set&&(o.content=e["_"+t+"_bbcode2html"](o.content)),o.get&&(o.content=e["_"+t+"_html2bbcode"](o.content))})},getInfo:function(){return{longname:"BBCode Plugin",author:"Moxiecode Systems AB",authorurl:"http://www.tinymce.com",infourl:"http://www.tinymce.com/wiki.php/Plugin:bbcode"}},_punbb_html2bbcode:function(o){function e(e,t){o=o.replace(e,t)}return o=tinymce.trim(o),e(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]"),e(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),e(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),e(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),e(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),e(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]"),e(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]"),e(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]"),e(/<font>(.*?)<\/font>/gi,"$1"),e(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]"),e(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]"),e(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]"),e(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"),e(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"),e(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"),e(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"),e(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"),e(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"),e(/<\/(strong|b)>/gi,"[/b]"),e(/<(strong|b)>/gi,"[b]"),e(/<\/(em|i)>/gi,"[/i]"),e(/<(em|i)>/gi,"[i]"),e(/<\/u>/gi,"[/u]"),e(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]"),e(/<u>/gi,"[u]"),e(/<blockquote[^>]*>/gi,"[quote]"),e(/<\/blockquote>/gi,"[/quote]"),e(/<br \/>/gi,"\n"),e(/<br\/>/gi,"\n"),e(/<br>/gi,"\n"),e(/<p>/gi,""),e(/<\/p>/gi,"\n"),e(/&nbsp;|\u00a0/gi," "),e(/&quot;/gi,'"'),e(/&lt;/gi,"<"),e(/&gt;/gi,">"),e(/&amp;/gi,"&"),o},_punbb_bbcode2html:function(o){function e(e,t){o=o.replace(e,t)}return o=tinymce.trim(o),e(/\n/gi,"<br />"),e(/\[b\]/gi,"<strong>"),e(/\[\/b\]/gi,"</strong>"),e(/\[i\]/gi,"<em>"),e(/\[\/i\]/gi,"</em>"),e(/\[u\]/gi,"<u>"),e(/\[\/u\]/gi,"</u>"),e(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'<a href="$1">$2</a>'),e(/\[url\](.*?)\[\/url\]/gi,'<a href="$1">$1</a>'),e(/\[img\](.*?)\[\/img\]/gi,'<img src="$1" />'),e(/\[color=(.*?)\](.*?)\[\/color\]/gi,'<font color="$1">$2</font>'),e(/\[code\](.*?)\[\/code\]/gi,'<span class="codeStyle">$1</span>&nbsp;'),e(/\[quote.*?\](.*?)\[\/quote\]/gi,'<span class="quoteStyle">$1</span>&nbsp;'),o}}),tinymce.PluginManager.add("bbcode",tinymce.plugins.BBCodePlugin)}();tinymce.PluginManager.add("charmap",function(e){function a(){function a(e){for(;e;){if("TD"==e.nodeName)return e;e=e.parentNode}}var t,r,o,n;t='<table role="presentation" cellspacing="0" class="mce-charmap"><tbody>';var l=25;for(o=0;10>o;o++){for(t+="<tr>",r=0;l>r;r++){var s=i[o*l+r];t+='<td title="'+s[1]+'"><div tabindex="-1" title="'+s[1]+'" role="button">'+(s?String.fromCharCode(parseInt(s[0],10)):"&nbsp;")+"</div></td>"}t+="</tr>"}t+="</tbody></table>";var c={type:"container",html:t,onclick:function(a){var i=a.target;"TD"==i.tagName&&(i=i.firstChild),"DIV"==i.tagName&&(e.execCommand("mceInsertContent",!1,i.firstChild.data),a.ctrlKey||n.close())},onmouseover:function(e){var i=a(e.target);i&&n.find("#preview").text(i.firstChild.firstChild.data)}};n=e.windowManager.open({title:"Special character",spacing:10,padding:10,items:[c,{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:100,minHeight:80}],buttons:[{text:"Close",onclick:function(){n.close()}}]})}var i=[["160","no-break space"],["38","ampersand"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["221","Y - acute"],["376","Y - diaeresis"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["913","Alpha"],["914","Beta"],["915","Gamma"],["916","Delta"],["917","Epsilon"],["918","Zeta"],["919","Eta"],["920","Theta"],["921","Iota"],["922","Kappa"],["923","Lambda"],["924","Mu"],["925","Nu"],["926","Xi"],["927","Omicron"],["928","Pi"],["929","Rho"],["931","Sigma"],["932","Tau"],["933","Upsilon"],["934","Phi"],["935","Chi"],["936","Psi"],["937","Omega"],["945","alpha"],["946","beta"],["947","gamma"],["948","delta"],["949","epsilon"],["950","zeta"],["951","eta"],["952","theta"],["953","iota"],["954","kappa"],["955","lambda"],["956","mu"],["957","nu"],["958","xi"],["959","omicron"],["960","pi"],["961","rho"],["962","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"],["173","soft hyphen"]];e.addButton("charmap",{icon:"charmap",tooltip:"Special character",onclick:a}),e.addMenuItem("charmap",{icon:"charmap",text:"Special character",onclick:a,context:"insert"})});tinymce.PluginManager.add("code",function(e){function o(){e.windowManager.open({title:"Source code",body:{type:"textbox",name:"code",multiline:!0,minWidth:e.getParam("code_dialog_width",600),minHeight:e.getParam("code_dialog_height",Math.min(tinymce.DOM.getViewPort().h-200,500)),value:e.getContent({source_view:!0}),spellcheck:!1,style:"direction: ltr; text-align: left"},onSubmit:function(o){e.focus(),e.undoManager.transact(function(){e.setContent(o.data.code)}),e.selection.setCursorLocation(),e.nodeChanged()}})}e.addCommand("mceCodeEditor",o),e.addButton("code",{icon:"code",tooltip:"Source code",onclick:o}),e.addMenuItem("code",{icon:"code",text:"Source code",context:"tools",onclick:o})});tinymce.PluginManager.add("contextmenu",function(e){var n,t=e.settings.contextmenu_never_use_native;e.on("contextmenu",function(i){var o;if(!i.ctrlKey||t){if(i.preventDefault(),o=e.settings.contextmenu||"link image inserttable | cell row column deletetable",n)n.show();else{var c=[];tinymce.each(o.split(/[ ,]/),function(n){var t=e.menuItems[n];"|"==n&&(t={text:n}),t&&(t.shortcut="",c.push(t))});for(var a=0;a<c.length;a++)"|"==c[a].text&&(0===a||a==c.length-1)&&c.splice(a,1);n=new tinymce.ui.Menu({items:c,context:"contextmenu"}).addClass("contextmenu").renderTo(),e.on("remove",function(){n.remove(),n=null})}var l={x:i.pageX,y:i.pageY};e.inline||(l=tinymce.DOM.getPos(e.getContentAreaContainer()),l.x+=i.clientX,l.y+=i.clientY),n.moveTo(l.x,l.y)}})});tinymce.PluginManager.add("directionality",function(t){function e(e){var i,n=t.dom,r=t.selection.getSelectedBlocks();r.length&&(i=n.getAttrib(r[0],"dir"),tinymce.each(r,function(t){n.getParent(t.parentNode,"*[dir='"+e+"']",n.getRoot())||(i!=e?n.setAttrib(t,"dir",e):n.setAttrib(t,"dir",null))}),t.nodeChanged())}function i(t){var e=[];return tinymce.each("h1 h2 h3 h4 h5 h6 div p".split(" "),function(i){e.push(i+"[dir="+t+"]")}),e.join(",")}t.addCommand("mceDirectionLTR",function(){e("ltr")}),t.addCommand("mceDirectionRTL",function(){e("rtl")}),t.addButton("ltr",{title:"Left to right",cmd:"mceDirectionLTR",stateSelector:i("ltr")}),t.addButton("rtl",{title:"Right to left",cmd:"mceDirectionRTL",stateSelector:i("rtl")})});tinymce.PluginManager.add("emoticons",function(t,e){function a(){var t;return t='<table role="list" class="mce-grid">',tinymce.each(i,function(a){t+="<tr>",tinymce.each(a,function(a){var i=e+"/img/smiley-"+a+".gif";t+='<td><a href="#" data-mce-url="'+i+'" data-mce-alt="'+a+'" tabindex="-1" role="option" aria-label="'+a+'"><img src="'+i+'" style="width: 18px; height: 18px" role="presentation" /></a></td>'}),t+="</tr>"}),t+="</table>"}var i=[["cool","cry","embarassed","foot-in-mouth"],["frown","innocent","kiss","laughing"],["money-mouth","sealed","smile","surprised"],["tongue-out","undecided","wink","yell"]];t.addButton("emoticons",{type:"panelbutton",panel:{role:"application",autohide:!0,html:a,onclick:function(e){var a=t.dom.getParent(e.target,"a");a&&(t.insertContent('<img src="'+a.getAttribute("data-mce-url")+'" alt="'+a.getAttribute("data-mce-alt")+'" />'),this.hide())}},tooltip:"Emoticons"})});tinymce.PluginManager.add("fullpage",function(e){function t(){var t=n();e.windowManager.open({title:"Document properties",data:t,defaults:{type:"textbox",size:40},body:[{name:"title",label:"Title"},{name:"keywords",label:"Keywords"},{name:"description",label:"Description"},{name:"robots",label:"Robots"},{name:"author",label:"Author"},{name:"docencoding",label:"Encoding"}],onSubmit:function(e){l(tinymce.extend(t,e.data))}})}function n(){function t(e,t){var n=e.attr(t);return n||""}var n,l,a=i(),r={};return r.fontface=e.getParam("fullpage_default_fontface",""),r.fontsize=e.getParam("fullpage_default_fontsize",""),n=a.firstChild,7==n.type&&(r.xml_pi=!0,l=/encoding="([^"]+)"/.exec(n.value),l&&(r.docencoding=l[1])),n=a.getAll("#doctype")[0],n&&(r.doctype="<!DOCTYPE"+n.value+">"),n=a.getAll("title")[0],n&&n.firstChild&&(r.title=n.firstChild.value),s(a.getAll("meta"),function(e){var t,n=e.attr("name"),l=e.attr("http-equiv");n?r[n.toLowerCase()]=e.attr("content"):"Content-Type"==l&&(t=/charset\s*=\s*(.*)\s*/gi.exec(e.attr("content")),t&&(r.docencoding=t[1]))}),n=a.getAll("html")[0],n&&(r.langcode=t(n,"lang")||t(n,"xml:lang")),r.stylesheets=[],tinymce.each(a.getAll("link"),function(e){"stylesheet"==e.attr("rel")&&r.stylesheets.push(e.attr("href"))}),n=a.getAll("body")[0],n&&(r.langdir=t(n,"dir"),r.style=t(n,"style"),r.visited_color=t(n,"vlink"),r.link_color=t(n,"link"),r.active_color=t(n,"alink")),r}function l(t){function n(e,t,n){e.attr(t,n?n:void 0)}function l(e){r.firstChild?r.insert(e,r.firstChild):r.append(e)}var a,r,o,c,u,f=e.dom;a=i(),r=a.getAll("head")[0],r||(c=a.getAll("html")[0],r=new m("head",1),c.firstChild?c.insert(r,c.firstChild,!0):c.append(r)),c=a.firstChild,t.xml_pi?(u='version="1.0"',t.docencoding&&(u+=' encoding="'+t.docencoding+'"'),7!=c.type&&(c=new m("xml",7),a.insert(c,a.firstChild,!0)),c.value=u):c&&7==c.type&&c.remove(),c=a.getAll("#doctype")[0],t.doctype?(c||(c=new m("#doctype",10),t.xml_pi?a.insert(c,a.firstChild):l(c)),c.value=t.doctype.substring(9,t.doctype.length-1)):c&&c.remove(),c=null,s(a.getAll("meta"),function(e){"Content-Type"==e.attr("http-equiv")&&(c=e)}),t.docencoding?(c||(c=new m("meta",1),c.attr("http-equiv","Content-Type"),c.shortEnded=!0,l(c)),c.attr("content","text/html; charset="+t.docencoding)):c.remove(),c=a.getAll("title")[0],t.title?(c?c.empty():(c=new m("title",1),l(c)),c.append(new m("#text",3)).value=t.title):c&&c.remove(),s("keywords,description,author,copyright,robots".split(","),function(e){var n,i,r=a.getAll("meta"),o=t[e];for(n=0;n<r.length;n++)if(i=r[n],i.attr("name")==e)return void(o?i.attr("content",o):i.remove());o&&(c=new m("meta",1),c.attr("name",e),c.attr("content",o),c.shortEnded=!0,l(c))});var g={};tinymce.each(a.getAll("link"),function(e){"stylesheet"==e.attr("rel")&&(g[e.attr("href")]=e)}),tinymce.each(t.stylesheets,function(e){g[e]||(c=new m("link",1),c.attr({rel:"stylesheet",text:"text/css",href:e}),c.shortEnded=!0,l(c)),delete g[e]}),tinymce.each(g,function(e){e.remove()}),c=a.getAll("body")[0],c&&(n(c,"dir",t.langdir),n(c,"style",t.style),n(c,"vlink",t.visited_color),n(c,"link",t.link_color),n(c,"alink",t.active_color),f.setAttribs(e.getBody(),{style:t.style,dir:t.dir,vLink:t.visited_color,link:t.link_color,aLink:t.active_color})),c=a.getAll("html")[0],c&&(n(c,"lang",t.langcode),n(c,"xml:lang",t.langcode)),r.firstChild||r.remove(),o=new tinymce.html.Serializer({validate:!1,indent:!0,apply_source_formatting:!0,indent_before:"head,html,body,meta,title,script,link,style",indent_after:"head,html,body,meta,title,script,link,style"}).serialize(a),d=o.substring(0,o.indexOf("</body>"))}function i(){return new tinymce.html.DomParser({validate:!1,root_name:"#document"}).parse(d)}function a(t){function n(e){return e.replace(/<\/?[A-Z]+/g,function(e){return e.toLowerCase()})}var l,a,o,m,u=t.content,f="",g=e.dom;if(!t.selection&&!("raw"==t.format&&d||t.source_view&&e.getParam("fullpage_hide_in_source_view"))){u=u.replace(/<(\/?)BODY/gi,"<$1body"),l=u.indexOf("<body"),-1!=l?(l=u.indexOf(">",l),d=n(u.substring(0,l+1)),a=u.indexOf("</body",l),-1==a&&(a=u.length),t.content=u.substring(l+1,a),c=n(u.substring(a))):(d=r(),c="\n</body>\n</html>"),o=i(),s(o.getAll("style"),function(e){e.firstChild&&(f+=e.firstChild.value)}),m=o.getAll("body")[0],m&&g.setAttribs(e.getBody(),{style:m.attr("style")||"",dir:m.attr("dir")||"",vLink:m.attr("vlink")||"",link:m.attr("link")||"",aLink:m.attr("alink")||""}),g.remove("fullpage_styles");var y=e.getDoc().getElementsByTagName("head")[0];f&&(g.add(y,"style",{id:"fullpage_styles"},f),m=g.get("fullpage_styles"),m.styleSheet&&(m.styleSheet.cssText=f));var h={};tinymce.each(y.getElementsByTagName("link"),function(e){"stylesheet"==e.rel&&e.getAttribute("data-mce-fullpage")&&(h[e.href]=e)}),tinymce.each(o.getAll("link"),function(e){var t=e.attr("href");h[t]||"stylesheet"!=e.attr("rel")||g.add(y,"link",{rel:"stylesheet",text:"text/css",href:t,"data-mce-fullpage":"1"}),delete h[t]}),tinymce.each(h,function(e){e.parentNode.removeChild(e)})}}function r(){var t,n="",l="";return e.getParam("fullpage_default_xml_pi")&&(n+='<?xml version="1.0" encoding="'+e.getParam("fullpage_default_encoding","ISO-8859-1")+'" ?>\n'),n+=e.getParam("fullpage_default_doctype","<!DOCTYPE html>"),n+="\n<html>\n<head>\n",(t=e.getParam("fullpage_default_title"))&&(n+="<title>"+t+"</title>\n"),(t=e.getParam("fullpage_default_encoding"))&&(n+='<meta http-equiv="Content-Type" content="text/html; charset='+t+'" />\n'),(t=e.getParam("fullpage_default_font_family"))&&(l+="font-family: "+t+";"),(t=e.getParam("fullpage_default_font_size"))&&(l+="font-size: "+t+";"),(t=e.getParam("fullpage_default_text_color"))&&(l+="color: "+t+";"),n+="</head>\n<body"+(l?' style="'+l+'"':"")+">\n"}function o(t){t.selection||t.source_view&&e.getParam("fullpage_hide_in_source_view")||(t.content=tinymce.trim(d)+"\n"+tinymce.trim(t.content)+"\n"+tinymce.trim(c))}var d,c,s=tinymce.each,m=tinymce.html.Node;e.addCommand("mceFullPageProperties",t),e.addButton("fullpage",{title:"Document properties",cmd:"mceFullPageProperties"}),e.addMenuItem("fullpage",{text:"Document properties",cmd:"mceFullPageProperties",context:"file"}),e.on("BeforeSetContent",a),e.on("GetContent",o)});tinymce.PluginManager.add("fullscreen",function(e){function t(){var e,t,n=window,i=document,l=i.body;return l.offsetWidth&&(e=l.offsetWidth,t=l.offsetHeight),n.innerWidth&&n.innerHeight&&(e=n.innerWidth,t=n.innerHeight),{w:e,h:t}}function n(){function n(){d.setStyle(a,"height",t().h-(h.clientHeight-a.clientHeight))}var u,h,a,f,m=document.body,g=document.documentElement;s=!s,h=e.getContainer(),u=h.style,a=e.getContentAreaContainer().firstChild,f=a.style,s?(i=f.width,l=f.height,f.width=f.height="100%",c=u.width,o=u.height,u.width=u.height="",d.addClass(m,"mce-fullscreen"),d.addClass(g,"mce-fullscreen"),d.addClass(h,"mce-fullscreen"),d.bind(window,"resize",n),n(),r=n):(f.width=i,f.height=l,c&&(u.width=c),o&&(u.height=o),d.removeClass(m,"mce-fullscreen"),d.removeClass(g,"mce-fullscreen"),d.removeClass(h,"mce-fullscreen"),d.unbind(window,"resize",r)),e.fire("FullscreenStateChanged",{state:s})}var i,l,r,c,o,s=!1,d=tinymce.DOM;return e.settings.inline?void 0:(e.on("init",function(){e.addShortcut("Ctrl+Alt+F","",n)}),e.on("remove",function(){r&&d.unbind(window,"resize",r)}),e.addCommand("mceFullScreen",n),e.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Alt+F",selectable:!0,onClick:n,onPostRender:function(){var t=this;e.on("FullscreenStateChanged",function(e){t.active(e.state)})},context:"view"}),e.addButton("fullscreen",{tooltip:"Fullscreen",shortcut:"Ctrl+Alt+F",onClick:n,onPostRender:function(){var t=this;e.on("FullscreenStateChanged",function(e){t.active(e.state)})}}),{isFullscreen:function(){return s}})});tinymce.PluginManager.add("hr",function(n){n.addCommand("InsertHorizontalRule",function(){n.execCommand("mceInsertContent",!1,"<hr />")}),n.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),n.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})});tinymce.PluginManager.add("image",function(e){function t(e,t){function i(e,i){n.parentNode&&n.parentNode.removeChild(n),t({width:e,height:i})}var n=document.createElement("img");n.onload=function(){i(n.clientWidth,n.clientHeight)},n.onerror=function(){i()};var a=n.style;a.visibility="hidden",a.position="fixed",a.bottom=a.left=0,a.width=a.height="auto",document.body.appendChild(n),n.src=e}function i(t){return tinymce.each(t,function(t){t.textStyle=function(){return e.formatter.getCssText({inline:"img",classes:[t.value]})}}),t}function n(t){return function(){var i=e.settings.image_list;"string"==typeof i?tinymce.util.XHR.send({url:i,success:function(e){t(tinymce.util.JSON.parse(e))}}):"function"==typeof i?i(t):t(i)}}function a(n){function a(t,i,n){var a,l=[];return tinymce.each(e.settings[t]||n,function(e){var t={text:e.text||e.title,value:e.value};l.push(t),(f[i]===e.value||!a&&e.selected)&&(a=t)}),a&&!f[i]&&(f[i]=a.value,a.selected=!0),l}function l(){var t=[{text:"None",value:""}];return tinymce.each(n,function(i){t.push({text:i.text||i.title,value:e.convertURL(i.value||i.url,"src"),menu:i.menu})}),t}function o(){var e,t,i,n;e=u.find("#width")[0],t=u.find("#height")[0],i=e.value(),n=t.value(),u.find("#constrain")[0].checked()&&g&&h&&i&&n&&(g!=i?(n=Math.round(i/g*n),t.value(n)):(i=Math.round(n/h*i),e.value(i))),g=i,h=n}function s(){function t(t){function i(){t.onload=t.onerror=null,e.selection.select(t),e.nodeChanged()}t.onload=function(){f.width||f.height||y.setAttribs(t,{width:t.clientWidth,height:t.clientHeight}),i()},t.onerror=i}d(),o(),f=tinymce.extend(f,u.toJSON()),f.alt||(f.alt=""),""===f.width&&(f.width=null),""===f.height&&(f.height=null),f.style||(f.style=null),f={src:f.src,alt:f.alt,width:f.width,height:f.height,style:f.style,"class":f["class"]},f["class"]||delete f["class"],e.undoManager.transact(function(){return f.src?(v?y.setAttribs(v,f):(f.id="__mcenew",e.focus(),e.selection.setContent(y.createHTML("img",f)),v=y.get("__mcenew"),y.setAttrib(v,"id",null)),void t(v)):void(v&&(y.remove(v),e.focus(),e.nodeChanged()))})}function r(e){return e&&(e=e.replace(/px$/,"")),e}function c(){m&&m.value(e.convertURL(this.value(),"src")),t(this.value(),function(e){e.width&&e.height&&(g=e.width,h=e.height,u.find("#width").value(g),u.find("#height").value(h))})}function d(){function t(e){return e.length>0&&/^[0-9]+$/.test(e)&&(e+="px"),e}if(e.settings.image_advtab){var i=u.toJSON(),n=y.parseStyle(i.style);delete n.margin,n["margin-top"]=n["margin-bottom"]=t(i.vspace),n["margin-left"]=n["margin-right"]=t(i.hspace),n["border-width"]=t(i.border),u.find("#style").value(y.serializeStyle(y.parseStyle(y.serializeStyle(n))))}}var u,g,h,m,p,f={},y=e.dom,v=e.selection.getNode();g=y.getAttrib(v,"width"),h=y.getAttrib(v,"height"),"IMG"!=v.nodeName||v.getAttribute("data-mce-object")||v.getAttribute("data-mce-placeholder")?v=null:f={src:y.getAttrib(v,"src"),alt:y.getAttrib(v,"alt"),"class":y.getAttrib(v,"class"),width:g,height:h},n&&(m={type:"listbox",label:"Image list",values:l(),value:f.src&&e.convertURL(f.src,"src"),onselect:function(e){var t=u.find("#alt");(!t.value()||e.lastControl&&t.value()==e.lastControl.text())&&t.value(e.control.text()),u.find("#src").value(e.control.value())},onPostRender:function(){m=this}}),e.settings.image_class_list&&(p={name:"class",type:"listbox",label:"Class",values:i(a("image_class_list","class"))});var b=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:c},m];e.settings.image_description!==!1&&b.push({name:"alt",type:"textbox",label:"Image description"}),e.settings.image_dimensions!==!1&&b.push({type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:3,onchange:o,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:3,onchange:o,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),b.push(p),e.settings.image_advtab?(v&&(f.hspace=r(v.style.marginLeft||v.style.marginRight),f.vspace=r(v.style.marginTop||v.style.marginBottom),f.border=r(v.style.borderWidth),f.style=e.dom.serializeStyle(e.dom.parseStyle(e.dom.getAttrib(v,"style")))),u=e.windowManager.open({title:"Insert/edit image",data:f,bodyType:"tabpanel",body:[{title:"General",type:"form",items:b},{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox"},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,alignH:["left","right"],defaults:{type:"textbox",maxWidth:50,onchange:d},items:[{label:"Vertical space",name:"vspace"},{label:"Horizontal space",name:"hspace"},{label:"Border",name:"border"}]}]}],onSubmit:s})):u=e.windowManager.open({title:"Insert/edit image",data:f,body:b,onSubmit:s})}e.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:n(a),stateSelector:"img:not([data-mce-object],[data-mce-placeholder])"}),e.addMenuItem("image",{icon:"image",text:"Insert image",onclick:n(a),context:"insert",prependToContext:!0})});tinymce.PluginManager.add("importcss",function(t){function e(t){return"string"==typeof t?function(e){return-1!==e.indexOf(t)}:t instanceof RegExp?function(e){return t.test(e)}:t}function n(e,n){function i(t,e){var c,o=t.href;if(o&&n(o,e)){s(t.imports,function(t){i(t,!0)});try{c=t.cssRules||t.rules}catch(a){}s(c,function(t){t.styleSheet?i(t.styleSheet,!0):t.selectorText&&s(t.selectorText.split(","),function(t){r.push(tinymce.trim(t))})})}}var r=[],c={};s(t.contentCSS,function(t){c[t]=!0}),n||(n=function(t,e){return e||c[t]});try{s(e.styleSheets,function(t){i(t)})}catch(o){}return r}function i(e){var n,i=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(e);if(i){var r=i[1],s=i[2].substr(1).split(".").join(" "),c=tinymce.makeMap("a,img");return i[1]?(n={title:e},t.schema.getTextBlockElements()[r]?n.block=r:t.schema.getBlockElements()[r]||c[r.toLowerCase()]?n.selector=r:n.inline=r):i[2]&&(n={inline:"span",title:e.substr(1),classes:s}),t.settings.importcss_merge_classes!==!1?n.classes=s:n.attributes={"class":s},n}}var r=this,s=tinymce.each;t.on("renderFormatsMenu",function(c){var o=t.settings,a={},l=o.importcss_selector_converter||i,f=e(o.importcss_selector_filter),m=c.control;t.settings.importcss_append||m.items().remove();var u=[];tinymce.each(o.importcss_groups,function(t){t=tinymce.extend({},t),t.filter=e(t.filter),u.push(t)}),s(n(c.doc||t.getDoc(),e(o.importcss_file_filter)),function(e){if(-1===e.indexOf(".mce-")&&!a[e]&&(!f||f(e))){var n,i=l.call(r,e);if(i){var s=i.name||tinymce.DOM.uniqueId();if(u)for(var c=0;c<u.length;c++)if(!u[c].filter||u[c].filter(e)){u[c].item||(u[c].item={text:u[c].title,menu:[]}),n=u[c].item.menu;break}t.formatter.register(s,i);var o=tinymce.extend({},m.settings.itemDefaults,{text:i.title,format:s});n?n.push(o):m.add(o)}a[e]=!0}}),s(u,function(t){m.add(t.item)}),c.control.renderNew()}),r.convertSelectorToFormat=i});tinymce.PluginManager.add("insertdatetime",function(e){function t(t,a){function n(e,t){if(e=""+e,e.length<t)for(var a=0;a<t-e.length;a++)e="0"+e;return e}return a=a||new Date,t=t.replace("%D","%m/%d/%Y"),t=t.replace("%r","%I:%M:%S %p"),t=t.replace("%Y",""+a.getFullYear()),t=t.replace("%y",""+a.getYear()),t=t.replace("%m",n(a.getMonth()+1,2)),t=t.replace("%d",n(a.getDate(),2)),t=t.replace("%H",""+n(a.getHours(),2)),t=t.replace("%M",""+n(a.getMinutes(),2)),t=t.replace("%S",""+n(a.getSeconds(),2)),t=t.replace("%I",""+((a.getHours()+11)%12+1)),t=t.replace("%p",""+(a.getHours()<12?"AM":"PM")),t=t.replace("%B",""+e.translate(m[a.getMonth()])),t=t.replace("%b",""+e.translate(c[a.getMonth()])),t=t.replace("%A",""+e.translate(d[a.getDay()])),t=t.replace("%a",""+e.translate(i[a.getDay()])),t=t.replace("%%","%")}function a(a){var n=t(a);if(e.settings.insertdatetime_element){var r;r=t(/%[HMSIp]/.test(a)?"%Y-%m-%dT%H:%M":"%Y-%m-%d"),n='<time datetime="'+r+'">'+n+"</time>";var i=e.dom.getParent(e.selection.getStart(),"time");if(i)return void e.dom.setOuterHTML(i,n)}e.insertContent(n)}var n,r,i="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),d="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),c="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),m="January February March April May June July August September October November December".split(" "),u=[];e.addCommand("mceInsertDate",function(){a(e.getParam("insertdatetime_dateformat",e.translate("%Y-%m-%d")))}),e.addCommand("mceInsertTime",function(){a(e.getParam("insertdatetime_timeformat",e.translate("%H:%M:%S")))}),e.addButton("insertdatetime",{type:"splitbutton",title:"Insert date/time",onclick:function(){a(n||r)},menu:u}),tinymce.each(e.settings.insertdatetime_formats||["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"],function(e){r||(r=e),u.push({text:t(e),onclick:function(){n=e,a(e)}})}),e.addMenuItem("insertdatetime",{icon:"date",text:"Insert date/time",menu:u,context:"insert"})});!function(e){e.on("AddEditor",function(e){e.editor.settings.inline_styles=!1}),e.PluginManager.add("legacyoutput",function(t){t.on("init",function(){var i="p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img",n=e.explode(t.settings.font_size_style_values),l=t.schema;t.formatter.register({alignleft:{selector:i,attributes:{align:"left"}},aligncenter:{selector:i,attributes:{align:"center"}},alignright:{selector:i,attributes:{align:"right"}},alignjustify:{selector:i,attributes:{align:"justify"}},bold:[{inline:"b",remove:"all"},{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}}],italic:[{inline:"i",remove:"all"},{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}}],underline:[{inline:"u",remove:"all"},{inline:"span",styles:{textDecoration:"underline"},exact:!0}],strikethrough:[{inline:"strike",remove:"all"},{inline:"span",styles:{textDecoration:"line-through"},exact:!0}],fontname:{inline:"font",attributes:{face:"%value"}},fontsize:{inline:"font",attributes:{size:function(t){return e.inArray(n,t.value)+1}}},forecolor:{inline:"font",attributes:{color:"%value"}},hilitecolor:{inline:"font",styles:{backgroundColor:"%value"}}}),e.each("b,i,u,strike".split(","),function(e){l.addValidElements(e+"[*]")}),l.getElementRule("font")||l.addValidElements("font[face|size|color|style]"),e.each(i.split(","),function(e){var t=l.getElementRule(e);t&&(t.attributes.align||(t.attributes.align={},t.attributesOrder.push("align")))})})})}(tinymce);tinymce.PluginManager.add("link",function(t){function e(e){return function(){var n=t.settings.link_list;"string"==typeof n?tinymce.util.XHR.send({url:n,success:function(t){e(tinymce.util.JSON.parse(t))}}):"function"==typeof n?n(e):e(n)}}function n(e){function n(t){var e=d.find("#text");(!e.value()||t.lastControl&&e.value()==t.lastControl.text())&&e.value(t.control.text()),d.find("#href").value(t.control.value())}function l(){var n=[{text:"None",value:""}];return tinymce.each(e,function(e){n.push({text:e.text||e.title,value:t.convertURL(e.value||e.url,"href"),menu:e.menu})}),n}function i(e){return tinymce.each(e,function(e){e.textStyle=function(){return t.formatter.getCssText({inline:"a",classes:[e.value]})}}),e}function a(e,n,l){var i,a=[];return tinymce.each(t.settings[e]||l,function(t){var e={text:t.text||t.title,value:t.value};a.push(e),(b[n]===t.value||!i&&t.selected)&&(i=e)}),i&&!b[n]&&(b[n]=i.value,i.selected=!0),a}function r(e){var l=[];return tinymce.each(t.dom.select("a:not([href])"),function(t){var n=t.name||t.id;n&&l.push({text:n,value:"#"+n,selected:-1!=e.indexOf("#"+n)})}),l.length?(l.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:l,onselect:n}):void 0}function o(){h&&h.value(t.convertURL(this.value(),"href")),!f&&0===b.text.length&&x&&this.parent().parent().find("#text")[0].value(this.value())}function s(t){var e=k.getContent();if(/</.test(e)&&(!/^<a [^>]+>[^<]+<\/a>$/.test(e)||-1==e.indexOf("href=")))return!1;if(t){var n,l=t.childNodes;if(0===l.length)return!1;for(n=l.length-1;n>=0;n--)if(3!=l[n].nodeType)return!1}return!0}var u,c,f,d,x,v,h,g,m,p,y,b={},k=t.selection,w=t.dom;u=k.getNode(),c=w.getParent(u,"a[href]"),x=s(),b.text=f=c?c.innerText||c.textContent:k.getContent({format:"text"}),b.href=c?w.getAttrib(c,"href"):"",b.target=c?w.getAttrib(c,"target"):t.settings.default_link_target||null,b.rel=c?w.getAttrib(c,"rel"):null,b["class"]=c?w.getAttrib(c,"class"):null,b.title=c?w.getAttrib(c,"title"):"",x&&(v={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){b.text=this.value()}}),e&&(h={type:"listbox",label:"Link list",values:l(),onselect:n,value:t.convertURL(b.href,"href"),onPostRender:function(){h=this}}),t.settings.target_list!==!1&&(m={name:"target",type:"listbox",label:"Target",values:a("target_list","target",[{text:"None",value:""},{text:"New window",value:"_blank"}])}),t.settings.rel_list&&(g={name:"rel",type:"listbox",label:"Rel",values:a("rel_list","rel",[{text:"None",value:""}])}),t.settings.link_class_list&&(p={name:"class",type:"listbox",label:"Class",values:i(a("link_class_list","class"))}),t.settings.link_title!==!1&&(y={name:"title",type:"textbox",label:"Title",value:b.title}),d=t.windowManager.open({title:"Insert link",data:b,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:o,onkeyup:o},v,y,r(b.href),h,g,m,p],onSubmit:function(e){function n(e,n){var l=t.selection.getRng();window.setTimeout(function(){t.windowManager.confirm(e,function(e){t.selection.setRng(l),n(e)})},0)}function l(){var e={href:i,target:b.target?b.target:null,rel:b.rel?b.rel:null,"class":b["class"]?b["class"]:null,title:b.title?b.title:null};c?(t.focus(),x&&b.text!=f&&("innerText"in c?c.innerText=b.text:c.textContent=b.text),w.setAttribs(c,e),k.select(c),t.undoManager.add()):x?t.insertContent(w.createHTML("a",e,w.encode(b.text))):t.execCommand("mceInsertLink",!1,e)}var i;return b=tinymce.extend(b,e.data),(i=b.href)?i.indexOf("@")>0&&-1==i.indexOf("//")&&-1==i.indexOf("mailto:")?void n("The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(t){t&&(i="mailto:"+i),l()}):/^\s*www\./i.test(i)?void n("The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(t){t&&(i="http://"+i),l()}):void l():void t.execCommand("unlink")}})}t.addButton("link",{icon:"link",tooltip:"Insert/edit link",shortcut:"Ctrl+K",onclick:e(n),stateSelector:"a[href]"}),t.addButton("unlink",{icon:"unlink",tooltip:"Remove link",cmd:"unlink",stateSelector:"a[href]"}),t.addShortcut("Ctrl+K","",e(n)),this.showDialog=n,t.addMenuItem("link",{icon:"link",text:"Insert link",shortcut:"Ctrl+K",onclick:e(n),stateSelector:"a[href]",context:"insert",prependToContext:!0})});tinymce.PluginManager.add("lists",function(e){function t(e){return e&&/^(OL|UL)$/.test(e.nodeName)}function n(e){return e.parentNode.firstChild==e}function r(e){return e.parentNode.lastChild==e}function o(t){return t&&!!e.schema.getTextBlockElements()[t.nodeName]}function i(e){return e&&"SPAN"===e.nodeName&&"bookmark"===e.getAttribute("data-mce-type")}var a=this;e.on("init",function(){function d(e){function t(t){var r,o,i;o=e[t?"startContainer":"endContainer"],i=e[t?"startOffset":"endOffset"],1==o.nodeType&&(r=b.create("span",{"data-mce-type":"bookmark"}),o.hasChildNodes()?(i=Math.min(i,o.childNodes.length-1),t?o.insertBefore(r,o.childNodes[i]):b.insertAfter(r,o.childNodes[i])):o.appendChild(r),o=r,i=0),n[t?"startContainer":"endContainer"]=o,n[t?"startOffset":"endOffset"]=i}var n={};return t(!0),e.collapsed||t(),n}function s(e){function t(t){function n(e){for(var t=e.parentNode.firstChild,n=0;t;){if(t==e)return n;(1!=t.nodeType||"bookmark"!=t.getAttribute("data-mce-type"))&&n++,t=t.nextSibling}return-1}var r,o,i;r=i=e[t?"startContainer":"endContainer"],o=e[t?"startOffset":"endOffset"],r&&(1==r.nodeType&&(o=n(r),r=r.parentNode,b.remove(i)),e[t?"startContainer":"endContainer"]=r,e[t?"startOffset":"endOffset"]=o)}t(!0),t();var n=b.createRng();n.setStart(e.startContainer,e.startOffset),e.endContainer&&n.setEnd(e.endContainer,e.endOffset),k.setRng(n)}function f(t,n){var r,o,i,a=b.createFragment(),d=e.schema.getBlockElements();if(e.settings.forced_root_block&&(n=n||e.settings.forced_root_block),n&&(o=b.create(n),o.tagName===e.settings.forced_root_block&&b.setAttribs(o,e.settings.forced_root_block_attrs),a.appendChild(o)),t)for(;r=t.firstChild;){var s=r.nodeName;i||"SPAN"==s&&"bookmark"==r.getAttribute("data-mce-type")||(i=!0),d[s]?(a.appendChild(r),o=null):n?(o||(o=b.create(n),a.appendChild(o)),o.appendChild(r)):a.appendChild(r)}return e.settings.forced_root_block?i||tinymce.Env.ie&&!(tinymce.Env.ie>10)||o.appendChild(b.create("br",{"data-mce-bogus":"1"})):a.appendChild(b.create("br")),a}function l(){return tinymce.grep(k.getSelectedBlocks(),function(e){return"LI"==e.nodeName})}function c(e,t,n){var r,o,i=b.select('span[data-mce-type="bookmark"]',e);n=n||f(t),r=b.createRng(),r.setStartAfter(t),r.setEndAfter(e),o=r.extractContents(),b.isEmpty(o)||b.insertAfter(o,e),b.insertAfter(n,e),b.isEmpty(t.parentNode)&&(tinymce.each(i,function(e){t.parentNode.parentNode.insertBefore(e,t.parentNode)}),b.remove(t.parentNode)),b.remove(t)}function p(e){var n,r;if(n=e.nextSibling,n&&t(n)&&n.nodeName==e.nodeName){for(;r=n.firstChild;)e.appendChild(r);b.remove(n)}if(n=e.previousSibling,n&&t(n)&&n.nodeName==e.nodeName){for(;r=n.firstChild;)e.insertBefore(r,e.firstChild);b.remove(n)}}function u(e){tinymce.each(tinymce.grep(b.select("ol,ul",e)),function(e){var n,r=e.parentNode;"LI"==r.nodeName&&r.firstChild==e&&(n=r.previousSibling,n&&"LI"==n.nodeName&&(n.appendChild(e),b.isEmpty(r)&&b.remove(r))),t(r)&&(n=r.previousSibling,n&&"LI"==n.nodeName&&n.appendChild(e))})}function m(e){function o(e){b.isEmpty(e)&&b.remove(e)}var i,a=e.parentNode,d=a.parentNode;return n(e)&&r(e)?("LI"==d.nodeName?(b.insertAfter(e,d),o(d),b.remove(a)):t(d)?b.remove(a,!0):(d.insertBefore(f(e),a),b.remove(a)),!0):n(e)?("LI"==d.nodeName?(b.insertAfter(e,d),e.appendChild(a),o(d)):t(d)?d.insertBefore(e,a):(d.insertBefore(f(e),a),b.remove(e)),!0):r(e)?("LI"==d.nodeName?b.insertAfter(e,d):t(d)?b.insertAfter(e,a):(b.insertAfter(f(e),a),b.remove(e)),!0):("LI"==d.nodeName?(a=d,i=f(e,"LI")):i=t(d)?f(e,"LI"):f(e),c(a,e,i),u(a.parentNode),!0)}function h(e){function n(n,r){var o;if(t(n)){for(;o=e.lastChild.firstChild;)r.appendChild(o);b.remove(n)}}var r,o;return r=e.previousSibling,r&&t(r)?(r.appendChild(e),!0):r&&"LI"==r.nodeName&&t(r.lastChild)?(r.lastChild.appendChild(e),n(e.lastChild,r.lastChild),!0):(r=e.nextSibling,r&&t(r)?(r.insertBefore(e,r.firstChild),!0):r&&"LI"==r.nodeName&&t(e.lastChild)?!1:(r=e.previousSibling,r&&"LI"==r.nodeName?(o=b.create(e.parentNode.nodeName),r.appendChild(o),o.appendChild(e),n(e.lastChild,o),!0):!1))}function v(){var t=l();if(t.length){for(var n=d(k.getRng(!0)),r=0;r<t.length&&(h(t[r])||0!==r);r++);return s(n),e.nodeChanged(),!0}}function C(){var t=l();if(t.length){var n,r,o=d(k.getRng(!0)),i=e.getBody();for(n=t.length;n--;)for(var a=t[n].parentNode;a&&a!=i;){for(r=t.length;r--;)if(t[r]===a){t.splice(n,1);break}a=a.parentNode}for(n=0;n<t.length&&(m(t[n])||0!==n);n++);return s(o),e.nodeChanged(),!0}}function g(n){function r(){function t(e){var t,n;for(t=a[e?"startContainer":"endContainer"],n=a[e?"startOffset":"endOffset"],1==t.nodeType&&(t=t.childNodes[Math.min(n,t.childNodes.length-1)]||t);t.parentNode!=d;){if(o(t))return t;if(/^(TD|TH)$/.test(t.parentNode.nodeName))return t;t=t.parentNode}return t}for(var n,r=[],d=e.getBody(),s=t(!0),f=t(),l=[],c=s;c&&(l.push(c),c!=f);c=c.nextSibling);return tinymce.each(l,function(e){if(o(e))return r.push(e),void(n=null);if(b.isBlock(e)||"BR"==e.nodeName)return"BR"==e.nodeName&&b.remove(e),void(n=null);var t=e.nextSibling;return i(e)&&(o(t)||!t&&e.parentNode==d)?void(n=null):(n||(n=b.create("p"),e.parentNode.insertBefore(n,e),r.push(n)),void n.appendChild(e))}),r}var a=k.getRng(!0),f=d(a),l=r();tinymce.each(l,function(e){var r,o;o=e.previousSibling,o&&t(o)&&o.nodeName==n?(r=o,e=b.rename(e,"LI"),o.appendChild(e)):(r=b.create(n),e.parentNode.insertBefore(r,e),r.appendChild(e),e=b.rename(e,"LI")),p(r)}),s(f)}function N(){var n=d(k.getRng(!0)),r=e.getBody();tinymce.each(l(),function(e){var n,o;if(b.isEmpty(e))return void m(e);for(n=e;n&&n!=r;n=n.parentNode)t(n)&&(o=n);c(o,e)}),s(n)}function y(e){var t=b.getParent(k.getStart(),"OL,UL");if(t)if(t.nodeName==e)N(e);else{var n=d(k.getRng(!0));p(b.rename(t,e)),s(n)}else g(e)}var b=e.dom,k=e.selection;a.backspaceDelete=function(e){function n(e,t){var n=e.startContainer,r=e.startOffset;if(3==n.nodeType&&(t?r<n.data.length:r>0))return n;for(var o=new tinymce.dom.TreeWalker(e.startContainer);n=o[t?"next":"prev"]();)if(3==n.nodeType&&n.data.length>0)return n}function r(e,n){var r,o,i=e.parentNode;for(t(n.lastChild)&&(o=n.lastChild),r=n.lastChild,r&&"BR"==r.nodeName&&e.hasChildNodes()&&b.remove(r);r=e.firstChild;)n.appendChild(r);o&&n.appendChild(o),b.remove(e),b.isEmpty(i)&&b.remove(i)}if(k.isCollapsed()){var o=b.getParent(k.getStart(),"LI");if(o){var i=k.getRng(!0),a=b.getParent(n(i,e),"LI");if(a&&a!=o){var f=d(i);return e?r(a,o):r(o,a),s(f),!0}if(!a&&!e&&N(o.parentNode.nodeName))return!0}}},e.addCommand("Indent",function(){return v()?void 0:!0}),e.addCommand("Outdent",function(){return C()?void 0:!0}),e.addCommand("InsertUnorderedList",function(){y("UL")}),e.addCommand("InsertOrderedList",function(){y("OL")}),e.on("keydown",function(t){9==t.keyCode&&e.dom.getParent(e.selection.getStart(),"LI")&&(t.preventDefault(),t.shiftKey?C():v())})}),e.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent",onPostRender:function(){var t=this;e.on("nodechange",function(){for(var r=e.selection.getSelectedBlocks(),o=!1,i=0,a=r.length;!o&&a>i;i++){var d=r[i].nodeName;o="LI"==d&&n(r[i])||"UL"==d||"OL"==d}t.disabled(o)})}}),e.on("keydown",function(e){e.keyCode==tinymce.util.VK.BACKSPACE?a.backspaceDelete()&&e.preventDefault():e.keyCode==tinymce.util.VK.DELETE&&a.backspaceDelete(!0)&&e.preventDefault()})});tinymce.PluginManager.add("media",function(e,t){function i(e){return-1!=e.indexOf(".mp3")?"audio/mpeg":-1!=e.indexOf(".wav")?"audio/wav":-1!=e.indexOf(".mp4")?"video/mp4":-1!=e.indexOf(".webm")?"video/webm":-1!=e.indexOf(".ogg")?"video/ogg":-1!=e.indexOf(".swf")?"application/x-shockwave-flash":""}function r(t){var i=e.settings.media_scripts;if(i)for(var r=0;r<i.length;r++)if(-1!==t.indexOf(i[r].filter))return i[r]}function o(){function t(e){var t,a,c,s;t=i.find("#width")[0],a=i.find("#height")[0],c=t.value(),s=a.value(),i.find("#constrain")[0].checked()&&r&&o&&c&&s&&(e.control==t?(s=Math.round(c/r*s),a.value(s)):(c=Math.round(s/o*c),t.value(c))),r=c,o=s}var i,r,o,m,u=[{name:"source1",type:"filepicker",filetype:"media",size:40,autofocus:!0,label:"Source"}];e.settings.media_alt_source!==!1&&u.push({name:"source2",type:"filepicker",filetype:"media",size:40,label:"Alternative source"}),e.settings.media_poster!==!1&&u.push({name:"poster",type:"filepicker",filetype:"image",size:40,label:"Poster"}),e.settings.media_dimensions!==!1&&u.push({type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:3,size:3,onchange:t},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:3,size:3,onchange:t},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),m=n(e.selection.getNode()),r=m.width,o=m.height,i=e.windowManager.open({title:"Insert/edit video",data:m,bodyType:"tabpanel",body:[{title:"General",type:"form",onShowTab:function(){m=s(this.next().find("#embed").value()),this.fromJSON(m)},items:u},{title:"Embed",type:"panel",layout:"flex",direction:"column",align:"stretch",padding:10,spacing:10,onShowTab:function(){this.find("#embed").value(c(this.parent().toJSON()))},items:[{type:"label",text:"Paste your embed code below:",forId:"mcemediasource"},{id:"mcemediasource",type:"textbox",flex:1,name:"embed",value:a(),multiline:!0,label:"Source"}]}],onSubmit:function(){e.insertContent(c(this.toJSON()))}})}function a(){var t=e.selection.getNode();return t.getAttribute("data-mce-object")?e.selection.getContent():void 0}function c(o){var a="";if(!o.source1&&(tinymce.extend(o,s(o.embed)),!o.source1))return"";if(o.source2||(o.source2=""),o.poster||(o.poster=""),o.source1=e.convertURL(o.source1,"source"),o.source2=e.convertURL(o.source2,"source"),o.source1mime=i(o.source1),o.source2mime=i(o.source2),o.poster=e.convertURL(o.poster,"poster"),o.flashPlayerUrl=e.convertURL(t+"/moxieplayer.swf","movie"),tinymce.each(u,function(e){var t,i,r;if(t=e.regex.exec(o.source1)){for(r=e.url,i=0;t[i];i++)r=r.replace("$"+i,function(){return t[i]});o.source1=r,o.type=e.type,o.width=o.width||e.w,o.height=o.height||e.h}}),o.embed)a=m(o.embed,o,!0);else{var c=r(o.source1);c&&(o.type="script",o.width=c.width,o.height=c.height),o.width=o.width||300,o.height=o.height||150,tinymce.each(o,function(t,i){o[i]=e.dom.encode(t)}),"iframe"==o.type?a+='<iframe src="'+o.source1+'" width="'+o.width+'" height="'+o.height+'"></iframe>':"application/x-shockwave-flash"==o.source1mime?(a+='<object data="'+o.source1+'" width="'+o.width+'" height="'+o.height+'" type="application/x-shockwave-flash">',o.poster&&(a+='<img src="'+o.poster+'" width="'+o.width+'" height="'+o.height+'" />'),a+="</object>"):-1!=o.source1mime.indexOf("audio")?e.settings.audio_template_callback?a=e.settings.audio_template_callback(o):a+='<audio controls="controls" src="'+o.source1+'">'+(o.source2?'\n<source src="'+o.source2+'"'+(o.source2mime?' type="'+o.source2mime+'"':"")+" />\n":"")+"</audio>":"script"==o.type?a+='<script src="'+o.source1+'"></script>':a=e.settings.video_template_callback?e.settings.video_template_callback(o):'<video width="'+o.width+'" height="'+o.height+'"'+(o.poster?' poster="'+o.poster+'"':"")+' controls="controls">\n<source src="'+o.source1+'"'+(o.source1mime?' type="'+o.source1mime+'"':"")+" />\n"+(o.source2?'<source src="'+o.source2+'"'+(o.source2mime?' type="'+o.source2mime+'"':"")+" />\n":"")+"</video>"}return a}function s(e){var t={};return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",start:function(e,i){if(t.source1||"param"!=e||(t.source1=i.map.movie),("iframe"==e||"object"==e||"embed"==e||"video"==e||"audio"==e)&&(t.type||(t.type=e),t=tinymce.extend(i.map,t)),"script"==e){var o=r(i.map.src);if(!o)return;t={type:"script",source1:i.map.src,width:o.width,height:o.height}}"source"==e&&(t.source1?t.source2||(t.source2=i.map.src):t.source1=i.map.src),"img"!=e||t.poster||(t.poster=i.map.src)}}).parse(e),t.source1=t.source1||t.src||t.data,t.source2=t.source2||"",t.poster=t.poster||"",t}function n(t){return t.getAttribute("data-mce-object")?s(e.serializer.serialize(t,{selection:!0})):{}}function m(e,t,i){function r(e,t){var i,r,o,a;for(i in t)if(o=""+t[i],e.map[i])for(r=e.length;r--;)a=e[r],a.name==i&&(o?(e.map[i]=o,a.value=o):(delete e.map[i],e.splice(r,1)));else o&&(e.push({name:i,value:o}),e.map[i]=o)}var o,a=new tinymce.html.Writer,c=0;return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",comment:function(e){a.comment(e)},cdata:function(e){a.cdata(e)},text:function(e,t){a.text(e,t)},start:function(e,s,n){switch(e){case"video":case"object":case"embed":case"img":case"iframe":r(s,{width:t.width,height:t.height})}if(i)switch(e){case"video":r(s,{poster:t.poster,src:""}),t.source2&&r(s,{src:""});break;case"iframe":r(s,{src:t.source1});break;case"source":if(c++,2>=c&&(r(s,{src:t["source"+c],type:t["source"+c+"mime"]}),!t["source"+c]))return;break;case"img":if(!t.poster)return;o=!0}a.start(e,s,n)},end:function(e){if("video"==e&&i)for(var s=1;2>=s;s++)if(t["source"+s]){var n=[];n.map={},s>c&&(r(n,{src:t["source"+s],type:t["source"+s+"mime"]}),a.start("source",n,!0))}if(t.poster&&"object"==e&&i&&!o){var m=[];m.map={},r(m,{src:t.poster,width:t.width,height:t.height}),a.start("img",m,!0)}a.end(e)}},new tinymce.html.Schema({})).parse(e),a.getContent()}var u=[{regex:/youtu\.be\/([\w\-.]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$1"},{regex:/youtube\.com(.+)v=([^&]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$2"},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc"},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'//maps.google.com/maps/ms?msid=$2&output=embed"'}];e.on("ResolveName",function(e){var t;1==e.target.nodeType&&(t=e.target.getAttribute("data-mce-object"))&&(e.name=t)}),e.on("preInit",function(){var t=e.schema.getSpecialElements();tinymce.each("video audio iframe object".split(" "),function(e){t[e]=new RegExp("</"+e+"[^>]*>","gi")});var i=e.schema.getBoolAttrs();tinymce.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(e){i[e]={}}),e.parser.addNodeFilter("iframe,video,audio,object,embed,script",function(t,i){for(var o,a,c,s,n,m,u,d,l=t.length;l--;)if(a=t[l],a.parent&&("script"!=a.name||(d=r(a.attr("src"))))){for(c=new tinymce.html.Node("img",1),c.shortEnded=!0,d&&(d.width&&a.attr("width",d.width.toString()),d.height&&a.attr("height",d.height.toString())),m=a.attributes,o=m.length;o--;)s=m[o].name,n=m[o].value,"width"!==s&&"height"!==s&&"style"!==s&&(("data"==s||"src"==s)&&(n=e.convertURL(n,s)),c.attr("data-mce-p-"+s,n));u=a.firstChild&&a.firstChild.value,u&&(c.attr("data-mce-html",escape(u)),c.firstChild=null),c.attr({width:a.attr("width")||"300",height:a.attr("height")||("audio"==i?"30":"150"),style:a.attr("style"),src:tinymce.Env.transparentSrc,"data-mce-object":i,"class":"mce-object mce-object-"+i}),a.replace(c)}}),e.serializer.addAttributeFilter("data-mce-object",function(e,t){for(var i,r,o,a,c,s,n,m=e.length;m--;)if(i=e[m],i.parent){for(n=i.attr(t),r=new tinymce.html.Node(n,1),"audio"!=n&&"script"!=n&&r.attr({width:i.attr("width"),height:i.attr("height")}),r.attr({style:i.attr("style")}),a=i.attributes,o=a.length;o--;){var u=a[o].name;0===u.indexOf("data-mce-p-")&&r.attr(u.substr(11),a[o].value)}"script"==n&&r.attr("type","text/javascript"),c=i.attr("data-mce-html"),c&&(s=new tinymce.html.Node("#text",3),s.raw=!0,s.value=unescape(c),r.append(s)),i.replace(r)}})}),e.on("ObjectSelected",function(e){var t=e.target.getAttribute("data-mce-object");("audio"==t||"script"==t)&&e.preventDefault()}),e.on("objectResized",function(e){var t,i=e.target;i.getAttribute("data-mce-object")&&(t=i.getAttribute("data-mce-html"),t&&(t=unescape(t),i.setAttribute("data-mce-html",escape(m(t,{width:e.width,height:e.height})))))}),e.addButton("media",{tooltip:"Insert/edit video",onclick:o,stateSelector:["img[data-mce-object=video]","img[data-mce-object=iframe]"]}),e.addMenuItem("media",{icon:"media",text:"Insert video",onclick:o,context:"insert",prependToContext:!0})});tinymce.PluginManager.add("nonbreaking",function(n){var e=n.getParam("nonbreaking_force_tab");if(n.addCommand("mceNonBreaking",function(){n.insertContent(n.plugins.visualchars&&n.plugins.visualchars.state?'<span class="mce-nbsp">&nbsp;</span>':"&nbsp;"),n.dom.setAttrib(n.dom.select("span.mce-nbsp"),"data-mce-bogus","1")}),n.addButton("nonbreaking",{title:"Insert nonbreaking space",cmd:"mceNonBreaking"}),n.addMenuItem("nonbreaking",{text:"Nonbreaking space",cmd:"mceNonBreaking",context:"insert"}),e){var a=+e>1?+e:3;n.on("keydown",function(e){if(9==e.keyCode){if(e.shiftKey)return;e.preventDefault();for(var t=0;a>t;t++)n.execCommand("mceNonBreaking")}})}});tinymce.PluginManager.add("noneditable",function(e){function t(e){var t;if(1===e.nodeType){if(t=e.getAttribute(u),t&&"inherit"!==t)return t;if(t=e.contentEditable,"inherit"!==t)return t}return null}function n(e){for(var n;e;){if(n=t(e))return"false"===n?e:null;e=e.parentNode}}function r(){function r(e){for(;e;){if(e.id===g)return e;e=e.parentNode}}function a(e){var t;if(e)for(t=new f(e,e),e=t.current();e;e=t.next())if(3===e.nodeType)return e}function i(n,r){var a,i;return"false"===t(n)&&u.isBlock(n)?void s.select(n):(i=u.createRng(),"true"===t(n)&&(n.firstChild||n.appendChild(e.getDoc().createTextNode(" ")),n=n.firstChild,r=!0),a=u.create("span",{id:g,"data-mce-bogus":!0},m),r?n.parentNode.insertBefore(a,n):u.insertAfter(a,n),i.setStart(a.firstChild,1),i.collapse(!0),s.setRng(i),a)}function o(e){var t,n,i,o;if(e)t=s.getRng(!0),t.setStartBefore(e),t.setEndBefore(e),n=a(e),n&&n.nodeValue.charAt(0)==m&&(n=n.deleteData(0,1)),u.remove(e,!0),s.setRng(t);else for(i=r(s.getStart());(e=u.get(g))&&e!==o;)i!==e&&(n=a(e),n&&n.nodeValue.charAt(0)==m&&(n=n.deleteData(0,1)),u.remove(e,!0)),o=e}function l(){function e(e,n){var r,a,i,o,l;if(r=d.startContainer,a=d.startOffset,3==r.nodeType){if(l=r.nodeValue.length,a>0&&l>a||(n?a==l:0===a))return}else{if(!(a<r.childNodes.length))return n?null:e;var u=!n&&a>0?a-1:a;r=r.childNodes[u],r.hasChildNodes()&&(r=r.firstChild)}for(i=new f(r,e);o=i[n?"prev":"next"]();){if(3===o.nodeType&&o.nodeValue.length>0)return;if("true"===t(o))return o}return e}var r,a,l,d,u;o(),l=s.isCollapsed(),r=n(s.getStart()),a=n(s.getEnd()),(r||a)&&(d=s.getRng(!0),l?(r=r||a,(u=e(r,!0))?i(u,!0):(u=e(r,!1))?i(u,!1):s.select(r)):(d=s.getRng(!0),r&&d.setStartBefore(r),a&&d.setEndAfter(a),s.setRng(d)))}function d(a){function i(e,t){for(;e=e[t?"previousSibling":"nextSibling"];)if(3!==e.nodeType||e.nodeValue.length>0)return e}function d(e,t){s.select(e),s.collapse(t)}function g(a){function i(e){for(var t=d;t;){if(t===e)return;t=t.parentNode}u.remove(e),l()}function o(){var r,o,l=e.schema.getNonEmptyElements();for(o=new tinymce.dom.TreeWalker(d,e.getBody());(r=a?o.prev():o.next())&&!l[r.nodeName.toLowerCase()]&&!(3===r.nodeType&&tinymce.trim(r.nodeValue).length>0);)if("false"===t(r))return i(r),!0;return n(r)?!0:!1}var f,d,c,g;if(s.isCollapsed()){if(f=s.getRng(!0),d=f.startContainer,c=f.startOffset,d=r(d)||d,g=n(d))return i(g),!1;if(3==d.nodeType&&(a?c>0:c<d.nodeValue.length))return!0;if(1==d.nodeType&&(d=d.childNodes[c]||d),o())return!1}return!0}var m,p,v,E,h=a.keyCode;if(v=s.getStart(),E=s.getEnd(),m=n(v)||n(E),m&&(112>h||h>124)&&h!=c.DELETE&&h!=c.BACKSPACE){if((tinymce.isMac?a.metaKey:a.ctrlKey)&&(67==h||88==h||86==h))return;if(a.preventDefault(),h==c.LEFT||h==c.RIGHT){var y=h==c.LEFT;if(e.dom.isBlock(m)){var T=y?m.previousSibling:m.nextSibling,C=new f(T,T),b=y?C.prev():C.next();d(b,!y)}else d(m,y)}}else if(h==c.LEFT||h==c.RIGHT||h==c.BACKSPACE||h==c.DELETE){if(p=r(v)){if(h==c.LEFT||h==c.BACKSPACE)if(m=i(p,!0),m&&"false"===t(m)){if(a.preventDefault(),h!=c.LEFT)return void u.remove(m);d(m,!0)}else o(p);if(h==c.RIGHT||h==c.DELETE)if(m=i(p),m&&"false"===t(m)){if(a.preventDefault(),h!=c.RIGHT)return void u.remove(m);d(m,!1)}else o(p)}if((h==c.BACKSPACE||h==c.DELETE)&&!g(h==c.BACKSPACE))return a.preventDefault(),!1}}var u=e.dom,s=e.selection,g="mce_noneditablecaret",m="";e.on("mousedown",function(n){var r=e.selection.getNode();"false"===t(r)&&r==n.target&&l()}),e.on("mouseup keyup",l),e.on("keydown",d)}function a(t){var n=l.length,r=t.content,a=tinymce.trim(o);if("raw"!=t.format){for(;n--;)r=r.replace(l[n],function(t){var n=arguments,i=n[n.length-2];return i>0&&'"'==r.charAt(i-1)?t:'<span class="'+a+'" data-mce-content="'+e.dom.encode(n[0])+'">'+e.dom.encode("string"==typeof n[1]?n[1]:n[0])+"</span>"});t.content=r}}var i,o,l,f=tinymce.dom.TreeWalker,d="contenteditable",u="data-mce-"+d,c=tinymce.util.VK;i=" "+tinymce.trim(e.getParam("noneditable_editable_class","mceEditable"))+" ",o=" "+tinymce.trim(e.getParam("noneditable_noneditable_class","mceNonEditable"))+" ",l=e.getParam("noneditable_regexp"),l&&!l.length&&(l=[l]),e.on("PreInit",function(){r(),l&&e.on("BeforeSetContent",a),e.parser.addAttributeFilter("class",function(e){for(var t,n,r=e.length;r--;)n=e[r],t=" "+n.attr("class")+" ",-1!==t.indexOf(i)?n.attr(u,"true"):-1!==t.indexOf(o)&&n.attr(u,"false")}),e.serializer.addAttributeFilter(u,function(e){for(var t,n=e.length;n--;)t=e[n],l&&t.attr("data-mce-content")?(t.name="#text",t.type=3,t.raw=!0,t.value=t.attr("data-mce-content")):(t.attr(d,null),t.attr(u,null))}),e.parser.addAttributeFilter(d,function(e){for(var t,n=e.length;n--;)t=e[n],t.attr(u,t.attr(d)),t.attr(d,null)})}),e.on("drop",function(e){n(e.target)&&e.preventDefault()})});tinymce.PluginManager.add("pagebreak",function(e){var a="mce-pagebreak",t=e.getParam("pagebreak_separator","<!-- pagebreak -->"),n=new RegExp(t.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(e){return"\\"+e}),"gi"),r='<img src="'+tinymce.Env.transparentSrc+'" class="'+a+'" data-mce-resize="false" />';e.addCommand("mcePageBreak",function(){e.insertContent(e.settings.pagebreak_split_block?"<p>"+r+"</p>":r)}),e.addButton("pagebreak",{title:"Page break",cmd:"mcePageBreak"}),e.addMenuItem("pagebreak",{text:"Page break",icon:"pagebreak",cmd:"mcePageBreak",context:"insert"}),e.on("ResolveName",function(t){"IMG"==t.target.nodeName&&e.dom.hasClass(t.target,a)&&(t.name="pagebreak")}),e.on("click",function(t){t=t.target,"IMG"===t.nodeName&&e.dom.hasClass(t,a)&&e.selection.select(t)}),e.on("BeforeSetContent",function(e){e.content=e.content.replace(n,r)}),e.on("PreInit",function(){e.serializer.addNodeFilter("img",function(a){for(var n,r,c=a.length;c--;)if(n=a[c],r=n.attr("class"),r&&-1!==r.indexOf("mce-pagebreak")){var o=n.parent;if(e.schema.getBlockElements()[o.name]&&e.settings.pagebreak_split_block){o.type=3,o.value=t,o.raw=!0,n.remove();continue}n.type=3,n.value=t,n.raw=!0}})})});!function(e,t){"use strict";function n(e,t){for(var n,i=[],r=0;r<e.length;++r){if(n=s[e[r]]||o(e[r]),!n)throw"module definition dependecy not found: "+e[r];i.push(n)}t.apply(null,i)}function i(e,i,r){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(i===t)throw"invalid module definition, dependencies must be specified";if(r===t)throw"invalid module definition, definition function must be specified";n(i,function(){s[e]=r.apply(null,arguments)})}function r(e){return!!s[e]}function o(t){for(var n=e,i=t.split(/[.\/]/),r=0;r<i.length;++r){if(!n[i[r]])return;n=n[i[r]]}return n}function a(n){for(var i=0;i<n.length;i++){for(var r=e,o=n[i],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)r[a[l]]===t&&(r[a[l]]={}),r=r[a[l]];r[a[a.length-1]]=s[o]}}var s={},l="tinymce/pasteplugin/Utils",c="tinymce/util/Tools",d="tinymce/html/DomParser",u="tinymce/html/Schema",f="tinymce/pasteplugin/Clipboard",m="tinymce/Env",p="tinymce/util/VK",g="tinymce/pasteplugin/WordFilter",h="tinymce/html/Serializer",v="tinymce/html/Node",b="tinymce/pasteplugin/Quirks",y="tinymce/pasteplugin/Plugin",x="tinymce/PluginManager";i(l,[c,d,u],function(e,t,n){function i(t,n){return e.each(n,function(e){t=e.constructor==RegExp?t.replace(e,""):t.replace(e[0],e[1])}),t}function r(i){function r(e){var t=e.name,n=e;if("br"===t)return void(s+="\n");if(l[t]&&(s+=" "),c[t])return void(s+=" ");if(3==e.type&&(s+=e.value),!e.shortEnded&&(e=e.firstChild))do r(e);while(e=e.next);d[t]&&n.next&&(s+="\n","p"==t&&(s+="\n"))}var o=new n,a=new t({},o),s="",l=o.getShortEndedElements(),c=e.makeMap("script noscript style textarea video audio iframe object"," "),d=o.getBlockElements();return r(a.parse(i)),s}return{filter:i,innerText:r}}),i(f,[m,p,l],function(e,t,n){return function(i){function r(e){var t,n=i.dom;if(t=i.fire("BeforePastePreProcess",{content:e}),t=i.fire("PastePreProcess",t),e=t.content,!t.isDefaultPrevented()){if(i.hasEventListeners("PastePostProcess")&&!t.isDefaultPrevented()){var r=n.add(i.getBody(),"div",{style:"display:none"},e);t=i.fire("PastePostProcess",{node:r}),n.remove(r),e=t.node.innerHTML}t.isDefaultPrevented()||i.insertContent(e)}}function o(e){e=i.dom.encode(e).replace(/\r\n/g,"\n");var t=i.dom.getParent(i.selection.getStart(),i.dom.isBlock),o=i.settings.forced_root_block,a;o&&(a=i.dom.createHTML(o,i.settings.forced_root_block_attrs),a=a.substr(0,a.length-3)+">"),t&&/^(PRE|DIV)$/.test(t.nodeName)||!o?e=n.filter(e,[[/\n/g,"<br>"]]):(e=n.filter(e,[[/\n\n/g,"</p>"+a],[/^(.*<\/p>)(<p>)$/,a+"$1"],[/\n/g,"<br />"]]),-1!=e.indexOf("<p>")&&(e=a+e)),r(e)}function a(){var t=i.dom,n=i.getBody(),r=i.dom.getViewPort(i.getWin()),o=r.y,a=20,s;if(v=i.selection.getRng(),i.inline&&(s=i.selection.getScrollContainer(),s&&s.scrollTop>0&&(o=s.scrollTop)),v.getClientRects){var l=v.getClientRects();if(l.length)a=o+(l[0].top-t.getPos(n).y);else{a=o;var c=v.startContainer;c&&(3==c.nodeType&&c.parentNode!=n&&(c=c.parentNode),1==c.nodeType&&(a=t.getPos(c,s||n).y))}}h=t.add(i.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"1",style:"position: absolute; top: "+a+"px;width: 10px; height: 10px; overflow: hidden; opacity: 0"},y),(e.ie||e.gecko)&&t.setStyle(h,"left","rtl"==t.getStyle(n,"direction",!0)?65535:-65535),t.bind(h,"beforedeactivate focusin focusout",function(e){e.stopPropagation()}),h.focus(),i.selection.select(h,!0)}function s(){if(h){for(var e;e=i.dom.get("mcepastebin");)i.dom.remove(e),i.dom.unbind(e);v&&i.selection.setRng(v)}x=!1,h=v=null}function l(){var e=y,t,n;for(t=i.dom.select("div[id=mcepastebin]"),n=t.length;n--;){var r=t[n].innerHTML;e==y&&(e=""),r.length>e.length&&(e=r)}return e}function c(e){var t={};if(e&&e.types){var n=e.getData("Text");n&&n.length>0&&(t["text/plain"]=n);for(var i=0;i<e.types.length;i++){var r=e.types[i];t[r]=e.getData(r)}}return t}function d(e){return c(e.clipboardData||i.getDoc().dataTransfer)}function u(e,t){function n(e){if("image/png"==o[a].type){var t=new FileReader;return t.onload=function(){r('<img src="'+t.result+'">')},t.readAsDataURL(e.getAsFile()),!0}}if(!(!i.settings.paste_data_images||"text/html"in t||"text/plain"in t)&&e.clipboardData){var o=e.clipboardData.items;if(o)for(var a=0;a<o.length;a++)if(n(o[a]))return!0}}function f(e){var t=i.getDoc(),n;if(t.caretPositionFromPoint){var r=t.caretPositionFromPoint(e.clientX,e.clientY);n=t.createRange(),n.setStart(r.offsetNode,r.offset),n.collapse(!0)}else t.caretRangeFromPoint&&(n=t.caretRangeFromPoint(e.clientX,e.clientY));return n}function m(e,t){return t in e&&e[t].length>0}function p(){i.on("keydown",function(n){if(!n.isDefaultPrevented()&&(t.metaKeyPressed(n)&&86==n.keyCode||n.shiftKey&&45==n.keyCode)){if(x=n.shiftKey&&86==n.keyCode,n.stopImmediatePropagation(),b=(new Date).getTime(),e.ie&&x)return n.preventDefault(),void i.fire("paste",{ieFake:!0});s(),a()}}),i.on("paste",function(t){var c=d(t),f=(new Date).getTime()-b<1e3,p="text"==g.pasteFormat||x;return t.isDefaultPrevented()?void s():u(t,c)?void s():(f||t.preventDefault(),!e.ie||f&&!t.ieFake||(a(),i.dom.bind(h,"paste",function(e){e.stopPropagation()}),i.getDoc().execCommand("Paste",!1,null),c["text/html"]=l()),void setTimeout(function(){var e=l();return h&&h.firstChild&&"mcepastebin"===h.firstChild.id&&(p=!0),s(),!p&&f&&e&&e!=y&&(c["text/html"]=e),e!=y&&f||(e=c["text/html"]||c["text/plain"]||y,e!=y)?(!m(c,"text/html")&&m(c,"text/plain")&&(p=!0),void(p?o(c["text/plain"]||n.innerText(e)):r(e))):void(f||i.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents."))},0))}),i.on("dragstart",function(e){if(e.dataTransfer.types)try{e.dataTransfer.setData("mce-internal",i.selection.getContent())}catch(t){}}),i.on("drop",function(e){var t=f(e);if(t&&!e.isDefaultPrevented()){var n=c(e.dataTransfer),a=n["mce-internal"]||n["text/html"]||n["text/plain"];a&&(e.preventDefault(),i.undoManager.transact(function(){n["mce-internal"]&&i.execCommand("Delete"),i.selection.setRng(t),n["text/html"]?r(a):o(a)}))}})}var g=this,h,v,b=0,y="%MCEPASTEBIN%",x;g.pasteHtml=r,g.pasteText=o,i.on("preInit",function(){p(),i.parser.addNodeFilter("img",function(t){if(!i.settings.paste_data_images)for(var n=t.length;n--;){var r=t[n].attributes.map.src;r&&0===r.indexOf("data:image")&&(t[n].attr("data-mce-object")||r===e.transparentSrc||t[n].remove())}})}),i.on("PreProcess",function(){i.dom.remove(i.dom.get("mcepastebin"))})}}),i(g,[c,d,u,h,v,l],function(e,t,n,i,r,o){function a(e){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(e)||/class="OutlineElement/.test(e)||/id="?docs\-internal\-guid\-/.test(e)}function s(s){var l=s.settings;s.on("BeforePastePreProcess",function(c){function d(e){function t(e,t,a,s){var l=e._listLevel||o;l!=o&&(o>l?n&&(n=n.parent.parent):(i=n,n=null)),n&&n.name==a?n.append(e):(i=i||n,n=new r(a,1),s>1&&n.attr("start",""+s),e.wrap(n)),e.name="li",t.value="";var c=t.next;c&&3==c.type&&(c.value=c.value.replace(/^\u00a0+/,"")),l>o&&i&&i.lastChild.append(n),o=l}for(var n,i,o=1,a=e.getAll("p"),s=0;s<a.length;s++)if(e=a[s],"p"==e.name&&e.firstChild){for(var l="",c=e.firstChild;c&&!(l=c.value);)c=c.firstChild;if(/^\s*[\u2022\u00b7\u00a7\u00d8\u25CF]\s*$/.test(l)){t(e,c,"ul");continue}if(/^\s*\w+\.$/.test(l)){var d=/([0-9])\./.exec(l),u=1;d&&(u=parseInt(d[1],10)),t(e,c,"ol",u);continue}n=null}}function u(t,n){var i={},o=s.dom.parseStyle(n);if("p"===t.name){var a=/mso-list:\w+ \w+([0-9]+)/.exec(n);a&&(t._listLevel=parseInt(a[1],10))}return e.each(o,function(e,n){switch(n){case"horiz-align":n="text-align";break;case"vert-align":n="vertical-align";break;case"font-color":case"mso-foreground":n="color";break;case"mso-background":case"mso-highlight":n="background";break;case"font-weight":case"font-style":return void("normal"!=e&&(i[n]=e));case"mso-element":if(/^(comment|comment-list)$/i.test(e))return void t.remove()}return 0===n.indexOf("mso-comment")?void t.remove():void(0!==n.indexOf("mso-")&&("all"==m||p&&p[n])&&(i[n]=e))}),/(bold)/i.test(i["font-weight"])&&(delete i["font-weight"],t.wrap(new r("b",1))),/(italic)/i.test(i["font-style"])&&(delete i["font-style"],t.wrap(new r("i",1))),i=s.dom.serializeStyle(i,t.name),i?i:null}var f=c.content,m,p;if(m=l.paste_retain_style_properties,m&&(p=e.makeMap(m.split(/[, ]/))),l.paste_enable_default_filters!==!1&&a(c.content)){c.wordContent=!0,f=o.filter(f,[/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/&nbsp;/gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(e,t){return t.length>0?t.replace(/./," ").slice(Math.floor(t.length/2)).split("").join("\xa0"):""}]]);var g=l.paste_word_valid_elements;g||(g="-strong/b,-em/i,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-table[width],-tr,-td[colspan|rowspan|width],-th,-thead,-tfoot,-tbody,-a[href|name],sub,sup,strike,br,del");var h=new n({valid_elements:g,valid_children:"-li[p]"});e.each(h.elements,function(e){e.attributes["class"]||(e.attributes["class"]={},e.attributesOrder.push("class")),e.attributes.style||(e.attributes.style={},e.attributesOrder.push("style"))});var v=new t({},h);v.addAttributeFilter("style",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("style",u(n,n.attr("style"))),"span"==n.name&&n.parent&&!n.attributes.length&&n.unwrap()}),v.addAttributeFilter("class",function(e){for(var t=e.length,n,i;t--;)n=e[t],i=n.attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(i)&&n.remove(),n.attr("class",null)}),v.addNodeFilter("del",function(e){for(var t=e.length;t--;)e[t].remove()}),v.addNodeFilter("a",function(e){for(var t=e.length,n,i,r;t--;)if(n=e[t],i=n.attr("href"),r=n.attr("name"),i&&-1!=i.indexOf("#_msocom_"))n.remove();else if(i&&0===i.indexOf("file://")&&(i=i.split("#")[1],i&&(i="#"+i)),i||r){if(r&&!/^_?(?:toc|edn|ftn)/i.test(r)){n.unwrap();continue}n.attr({href:i,name:r})}else n.unwrap()});var b=v.parse(f);d(b),c.content=new i({},h).serialize(b)}})}return s.isWordContent=a,s}),i(b,[m,c,g,l],function(e,t,n,i){return function(r){function o(e){r.on("BeforePastePreProcess",function(t){t.content=e(t.content)})}function a(e){return e=i.filter(e,[/^[\s\S]*<body[^>]*>\s*<!--StartFragment-->|<!--EndFragment-->\s*<\/body[^>]*>[\s\S]*$/g,/<!--StartFragment-->|<!--EndFragment-->/g,[/<span class="Apple-converted-space">\u00a0<\/span>/g,"\xa0"],/<br>$/i])}function s(e){if(!n.isWordContent(e))return e;var o=[];t.each(r.schema.getBlockElements(),function(e,t){o.push(t)});var a=new RegExp("(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*(<\\/?("+o.join("|")+")[^>]*>)(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*","g");return e=i.filter(e,[[a,"$1"]]),e=i.filter(e,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function l(e){if(n.isWordContent(e))return e;var t=r.settings.paste_webkit_styles;if(r.settings.paste_remove_styles_if_webkit===!1||"all"==t)return e;if(t&&(t=t.split(/[, ]/)),t){var i=r.dom,o=r.selection.getNode();e=e.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(e,n,r,a){var s=i.parseStyle(r,"span"),l={};if("none"===t)return n+a;for(var c=0;c<t.length;c++){var d=s[t[c]],u=i.getStyle(o,t[c],!0);/color/.test(t[c])&&(d=i.toHex(d),u=i.toHex(u)),u!=d&&(l[t[c]]=d)}return l=i.serializeStyle(l,"span"),l?n+' style="'+l+'"'+a:""})}else e=e.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return e=e.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(e,t,n,i){return t+' style="'+n+'"'+i})}e.webkit&&(o(l),o(a)),e.ie&&o(s)}}),i(y,[x,f,g,b],function(e,t,n,i){var r;e.add("paste",function(e){function o(){"text"==s.pasteFormat?(this.active(!1),s.pasteFormat="html"):(s.pasteFormat="text",this.active(!0),r||(e.windowManager.alert("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off."),r=!0))}var a=this,s,l=e.settings;a.clipboard=s=new t(e),a.quirks=new i(e),a.wordFilter=new n(e),e.settings.paste_as_text&&(a.clipboard.pasteFormat="text"),l.paste_preprocess&&e.on("PastePreProcess",function(e){l.paste_preprocess.call(a,a,e)}),l.paste_postprocess&&e.on("PastePostProcess",function(e){l.paste_postprocess.call(a,a,e)}),e.addCommand("mceInsertClipboardContent",function(e,t){t.content&&a.clipboard.pasteHtml(t.content),t.text&&a.clipboard.pasteText(t.text)}),e.paste_block_drop&&e.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault(),e.stopPropagation()}),e.settings.paste_data_images||e.on("drop",function(e){var t=e.dataTransfer;t&&t.files&&t.files.length>0&&e.preventDefault()}),e.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:o,active:"text"==a.clipboard.pasteFormat}),e.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:s.pasteFormat,onclick:o})})}),a([l,f,g,b,y])}(this);tinymce.PluginManager.add("preview",function(e){var t=e.settings,i=!tinymce.Env.ie;e.addCommand("mcePreview",function(){e.windowManager.open({title:"Preview",width:parseInt(e.getParam("plugin_preview_width","650"),10),height:parseInt(e.getParam("plugin_preview_height","500"),10),html:'<iframe src="javascript:\'\'" frameborder="0"'+(i?' sandbox="allow-scripts"':"")+"></iframe>",buttons:{text:"Close",onclick:function(){this.parent().parent().close()}},onPostRender:function(){var n,a="";a+='<base href="'+e.documentBaseURI.getURI()+'">',tinymce.each(e.contentCSS,function(t){a+='<link type="text/css" rel="stylesheet" href="'+e.documentBaseURI.toAbsolute(t)+'">'});var r=t.body_id||"tinymce";-1!=r.indexOf("=")&&(r=e.getParam("body_id","","hash"),r=r[e.id]||r);var d=t.body_class||"";-1!=d.indexOf("=")&&(d=e.getParam("body_class","","hash"),d=d[e.id]||"");var o=e.settings.directionality?' dir="'+e.settings.directionality+'"':"";if(n="<!DOCTYPE html><html><head>"+a+'</head><body id="'+r+'" class="mce-content-body '+d+'"'+o+">"+e.getContent()+"</body></html>",i)this.getEl("body").firstChild.src="data:text/html;charset=utf-8,"+encodeURIComponent(n);else{var s=this.getEl("body").firstChild.contentWindow.document;s.open(),s.write(n),s.close()}}})}),e.addButton("preview",{title:"Preview",cmd:"mcePreview"}),e.addMenuItem("preview",{text:"Preview",cmd:"mcePreview",context:"view"})});tinymce.PluginManager.add("print",function(t){t.addCommand("mcePrint",function(){t.getWin().print()}),t.addButton("print",{title:"Print",cmd:"mcePrint"}),t.addShortcut("Ctrl+P","","mcePrint"),t.addMenuItem("print",{text:"Print",cmd:"mcePrint",icon:"print",shortcut:"Ctrl+P",context:"file"})});tinymce.PluginManager.add("save",function(e){function a(){var a;return a=tinymce.DOM.getParent(e.id,"form"),!e.getParam("save_enablewhendirty",!0)||e.isDirty()?(tinymce.triggerSave(),e.getParam("save_onsavecallback")?void(e.execCallback("save_onsavecallback",e)&&(e.startContent=tinymce.trim(e.getContent({format:"raw"})),e.nodeChanged())):void(a?(e.isNotDirty=!0,(!a.onsubmit||a.onsubmit())&&("function"==typeof a.submit?a.submit():e.windowManager.alert("Error: Form submit field collision.")),e.nodeChanged()):e.windowManager.alert("Error: No form element found."))):void 0}function n(){var a=tinymce.trim(e.startContent);return e.getParam("save_oncancelcallback")?void e.execCallback("save_oncancelcallback",e):(e.setContent(a),e.undoManager.clear(),void e.nodeChanged())}function t(){var a=this;e.on("nodeChange",function(){a.disabled(e.getParam("save_enablewhendirty",!0)&&!e.isDirty())})}e.addCommand("mceSave",a),e.addCommand("mceCancel",n),e.addButton("save",{icon:"save",text:"Save",cmd:"mceSave",disabled:!0,onPostRender:t}),e.addButton("cancel",{text:"Cancel",icon:!1,cmd:"mceCancel",disabled:!0,onPostRender:t}),e.addShortcut("ctrl+s","","mceSave")});!function(){function e(e,t,n,a,r){function i(e,t){if(t=t||0,!e[0])throw"findAndReplaceDOMText cannot handle zero-length matches";var n=e.index;if(t>0){var a=e[t];if(!a)throw"Invalid capture group";n+=e[0].indexOf(a),e[0]=a}return[n,n+e[0].length,[e[0]]]}function d(e){var t;if(3===e.nodeType)return e.data;if(h[e.nodeName]&&!u[e.nodeName])return"";if(t="",(u[e.nodeName]||m[e.nodeName])&&(t+="\n"),e=e.firstChild)do t+=d(e);while(e=e.nextSibling);return t}function o(e,t,n){var a,r,i,d,o=[],l=0,c=e,s=t.shift(),f=0;e:for(;;){if((u[c.nodeName]||m[c.nodeName])&&l++,3===c.nodeType&&(!r&&c.length+l>=s[1]?(r=c,d=s[1]-l):a&&o.push(c),!a&&c.length+l>s[0]&&(a=c,i=s[0]-l),l+=c.length),a&&r){if(c=n({startNode:a,startNodeIndex:i,endNode:r,endNodeIndex:d,innerNodes:o,match:s[2],matchIndex:f}),l-=r.length-d,a=null,r=null,o=[],s=t.shift(),f++,!s)break}else{if((!h[c.nodeName]||u[c.nodeName])&&c.firstChild){c=c.firstChild;continue}if(c.nextSibling){c=c.nextSibling;continue}}for(;;){if(c.nextSibling){c=c.nextSibling;break}if(c.parentNode===e)break e;c=c.parentNode}}}function l(e){var t;if("function"!=typeof e){var n=e.nodeType?e:f.createElement(e);t=function(e,t){var a=n.cloneNode(!1);return a.setAttribute("data-mce-index",t),e&&a.appendChild(f.createTextNode(e)),a}}else t=e;return function(e){var n,a,r,i=e.startNode,d=e.endNode,o=e.matchIndex;if(i===d){var l=i;r=l.parentNode,e.startNodeIndex>0&&(n=f.createTextNode(l.data.substring(0,e.startNodeIndex)),r.insertBefore(n,l));var c=t(e.match[0],o);return r.insertBefore(c,l),e.endNodeIndex<l.length&&(a=f.createTextNode(l.data.substring(e.endNodeIndex)),r.insertBefore(a,l)),l.parentNode.removeChild(l),c}n=f.createTextNode(i.data.substring(0,e.startNodeIndex)),a=f.createTextNode(d.data.substring(e.endNodeIndex));for(var s=t(i.data.substring(e.startNodeIndex),o),u=[],h=0,m=e.innerNodes.length;m>h;++h){var g=e.innerNodes[h],p=t(g.data,o);g.parentNode.replaceChild(p,g),u.push(p)}var x=t(d.data.substring(0,e.endNodeIndex),o);return r=i.parentNode,r.insertBefore(n,i),r.insertBefore(s,i),r.removeChild(i),r=d.parentNode,r.insertBefore(x,d),r.insertBefore(a,d),r.removeChild(d),x}}var c,s,f,u,h,m,g=[],p=0;if(f=t.ownerDocument,u=r.getBlockElements(),h=r.getWhiteSpaceElements(),m=r.getShortEndedElements(),s=d(t)){if(e.global)for(;c=e.exec(s);)g.push(i(c,a));else c=s.match(e),g.push(i(c,a));return g.length&&(p=g.length,o(t,g,l(n))),p}}function t(t){function n(){function e(){r.statusbar.find("#next").disabled(!d(s+1).length),r.statusbar.find("#prev").disabled(!d(s-1).length)}function n(){tinymce.ui.MessageBox.alert("Could not find the specified string.",function(){r.find("#find")[0].focus()})}var a={},r=tinymce.ui.Factory.create({type:"window",layout:"flex",pack:"center",align:"center",onClose:function(){t.focus(),c.done()},onSubmit:function(t){var i,o,l,f;return t.preventDefault(),o=r.find("#case").checked(),f=r.find("#words").checked(),l=r.find("#find").value(),l.length?a.text==l&&a.caseState==o&&a.wholeWord==f?0===d(s+1).length?void n():(c.next(),void e()):(i=c.find(l,o,f),i||n(),r.statusbar.items().slice(1).disabled(0===i),e(),void(a={text:l,caseState:o,wholeWord:f})):(c.done(!1),void r.statusbar.items().slice(1).disabled(!0))},buttons:[{text:"Find",onclick:function(){r.submit()}},{text:"Replace",disabled:!0,onclick:function(){c.replace(r.find("#replace").value())||(r.statusbar.items().slice(1).disabled(!0),s=-1,a={})}},{text:"Replace all",disabled:!0,onclick:function(){c.replace(r.find("#replace").value(),!0,!0),r.statusbar.items().slice(1).disabled(!0),a={}}},{type:"spacer",flex:1},{text:"Prev",name:"prev",disabled:!0,onclick:function(){c.prev(),e()}},{text:"Next",name:"next",disabled:!0,onclick:function(){c.next(),e()}}],title:"Find and replace",items:{type:"form",padding:20,labelGap:30,spacing:10,items:[{type:"textbox",name:"find",size:40,label:"Find",value:t.selection.getNode().src},{type:"textbox",name:"replace",size:40,label:"Replace with"},{type:"checkbox",name:"case",text:"Match case",label:" "},{type:"checkbox",name:"words",text:"Whole words",label:" "}]}}).renderTo().reflow()}function a(e){var t=e.getAttribute("data-mce-index");return"number"==typeof t?""+t:t}function r(n){var a,r;return r=t.dom.create("span",{"data-mce-bogus":1}),r.className="mce-match-marker",a=t.getBody(),c.done(!1),e(n,a,r,!1,t.schema)}function i(e){var t=e.parentNode;e.firstChild&&t.insertBefore(e.firstChild,e),e.parentNode.removeChild(e)}function d(e){var n,r=[];if(n=tinymce.toArray(t.getBody().getElementsByTagName("span")),n.length)for(var i=0;i<n.length;i++){var d=a(n[i]);null!==d&&d.length&&d===e.toString()&&r.push(n[i])}return r}function o(e){var n=s,a=t.dom;e=e!==!1,e?n++:n--,a.removeClass(d(s),"mce-match-marker-selected");var r=d(n);return r.length?(a.addClass(d(n),"mce-match-marker-selected"),t.selection.scrollIntoView(r[0]),n):-1}function l(e){e.parentNode.removeChild(e)}var c=this,s=-1;c.init=function(e){e.addMenuItem("searchreplace",{text:"Find and replace",shortcut:"Ctrl+F",onclick:n,separator:"before",context:"edit"}),e.addButton("searchreplace",{tooltip:"Find and replace",shortcut:"Ctrl+F",onclick:n}),e.addCommand("SearchReplace",n),e.shortcuts.add("Ctrl+F","",n)},c.find=function(e,t,n){e=e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),e=n?"\\b"+e+"\\b":e;var a=r(new RegExp(e,t?"g":"gi"));return a&&(s=-1,s=o(!0)),a},c.next=function(){var e=o(!0);-1!==e&&(s=e)},c.prev=function(){var e=o(!1);-1!==e&&(s=e)},c.replace=function(e,n,r){var o,f,u,h,m,g,p=s;for(n=n!==!1,u=t.getBody(),f=tinymce.toArray(u.getElementsByTagName("span")),o=0;o<f.length;o++){var x=a(f[o]);if(null!==x&&x.length)if(h=m=parseInt(x,10),r||h===s){for(e.length?(f[o].firstChild.nodeValue=e,i(f[o])):l(f[o]);f[++o];)if(h=a(f[o]),null!==x&&x.length){if(h!==m){o--;break}l(f[o])}n&&p--}else m>s&&f[o].setAttribute("data-mce-index",m-1)}return t.undoManager.add(),s=p,n?(g=d(p+1).length>0,c.next()):(g=d(p-1).length>0,c.prev()),!r&&g},c.done=function(e){var n,r,d,o;for(r=tinymce.toArray(t.getBody().getElementsByTagName("span")),n=0;n<r.length;n++){var l=a(r[n]);null!==l&&l.length&&(l===s.toString()&&(d||(d=r[n].firstChild),o=r[n].firstChild),i(r[n]))}if(d&&o){var c=t.dom.createRng();return c.setStart(d,0),c.setEnd(o,o.data.length),e!==!1&&t.selection.setRng(c),c}}}tinymce.PluginManager.add("searchreplace",t)}();!function(e,t){"use strict";function n(e,t){for(var n,o=[],r=0;r<e.length;++r){if(n=l[e[r]]||i(e[r]),!n)throw"module definition dependecy not found: "+e[r];o.push(n)}t.apply(null,o)}function o(e,o,r){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(o===t)throw"invalid module definition, dependencies must be specified";if(r===t)throw"invalid module definition, definition function must be specified";n(o,function(){l[e]=r.apply(null,arguments)})}function r(e){return!!l[e]}function i(t){for(var n=e,o=t.split(/[.\/]/),r=0;r<o.length;++r){if(!n[o[r]])return;n=n[o[r]]}return n}function a(n){for(var o=0;o<n.length;o++){for(var r=e,i=n[o],a=i.split(/[.\/]/),s=0;s<a.length-1;++s)r[a[s]]===t&&(r[a[s]]={}),r=r[a[s]];r[a[a.length-1]]=l[i]}}var l={},s="tinymce/spellcheckerplugin/DomTextMatcher",c="tinymce/spellcheckerplugin/Plugin",d="tinymce/PluginManager",u="tinymce/util/Tools",f="tinymce/ui/Menu",m="tinymce/dom/DOMUtils",p="tinymce/util/XHR",g="tinymce/util/URI",h="tinymce/util/JSON";o(s,[],function(){return function(e,t){function n(e,t){if(!e[0])throw"findAndReplaceDOMText cannot handle zero-length matches";return{start:e.index,end:e.index+e[0].length,text:e[0],data:t}}function o(e){var t;if(3===e.nodeType)return e.data;if(P[e.nodeName]&&!S[e.nodeName])return"";if(t="",(S[e.nodeName]||N[e.nodeName])&&(t+="\n"),e=e.firstChild)do t+=o(e);while(e=e.nextSibling);return t}function r(e,t,n){var o,r,i,a,l=[],s=0,c=e,d,u=0;t=t.slice(0),t.sort(function(e,t){return e.start-t.start}),d=t.shift();e:for(;;){if((S[c.nodeName]||N[c.nodeName])&&s++,3===c.nodeType&&(!r&&c.length+s>=d.end?(r=c,a=d.end-s):o&&l.push(c),!o&&c.length+s>d.start&&(o=c,i=d.start-s),s+=c.length),o&&r){if(c=n({startNode:o,startNodeIndex:i,endNode:r,endNodeIndex:a,innerNodes:l,match:d.text,matchIndex:u}),s-=r.length-a,o=null,r=null,l=[],d=t.shift(),u++,!d)break}else{if((!P[c.nodeName]||S[c.nodeName])&&c.firstChild){c=c.firstChild;continue}if(c.nextSibling){c=c.nextSibling;continue}}for(;;){if(c.nextSibling){c=c.nextSibling;break}if(c.parentNode===e)break e;c=c.parentNode}}}function i(e){function t(t,n){var o=w[n];o.stencil||(o.stencil=e(o));var r=o.stencil.cloneNode(!1);return r.setAttribute("data-mce-index",n),t&&r.appendChild(k.doc.createTextNode(t)),r}return function(e){var n,o,r,i=e.startNode,a=e.endNode,l=e.matchIndex,s=k.doc;if(i===a){var c=i;r=c.parentNode,e.startNodeIndex>0&&(n=s.createTextNode(c.data.substring(0,e.startNodeIndex)),r.insertBefore(n,c));var d=t(e.match,l);return r.insertBefore(d,c),e.endNodeIndex<c.length&&(o=s.createTextNode(c.data.substring(e.endNodeIndex)),r.insertBefore(o,c)),c.parentNode.removeChild(c),d}n=s.createTextNode(i.data.substring(0,e.startNodeIndex)),o=s.createTextNode(a.data.substring(e.endNodeIndex));for(var u=t(i.data.substring(e.startNodeIndex),l),f=[],m=0,p=e.innerNodes.length;p>m;++m){var g=e.innerNodes[m],h=t(g.data,l);g.parentNode.replaceChild(h,g),f.push(h)}var v=t(a.data.substring(0,e.endNodeIndex),l);return r=i.parentNode,r.insertBefore(n,i),r.insertBefore(u,i),r.removeChild(i),r=a.parentNode,r.insertBefore(v,a),r.insertBefore(o,a),r.removeChild(a),v}}function a(e){var t=e.parentNode;t.insertBefore(e.firstChild,e),e.parentNode.removeChild(e)}function l(t){var n=e.getElementsByTagName("*"),o=[];t="number"==typeof t?""+t:null;for(var r=0;r<n.length;r++){var i=n[r],a=i.getAttribute("data-mce-index");null!==a&&a.length&&(a===t||null===t)&&o.push(i)}return o}function s(e){for(var t=w.length;t--;)if(w[t]===e)return t;return-1}function c(e){var t=[];return d(function(n,o){e(n,o)&&t.push(n)}),w=t,this}function d(e){for(var t=0,n=w.length;n>t&&e(w[t],t)!==!1;t++);return this}function u(t){return w.length&&r(e,w,i(t)),this}function f(e,t){if(C&&e.global)for(;x=e.exec(C);)w.push(n(x,t));return this}function m(e){var t,n=l(e?s(e):null);for(t=n.length;t--;)a(n[t]);return this}function p(e){return w[e.getAttribute("data-mce-index")]}function g(e){return l(s(e))[0]}function h(e,t,n){return w.push({start:e,end:e+t,text:C.substr(e,t),data:n}),this}function v(e){var n=l(s(e)),o=t.dom.createRng();return o.setStartBefore(n[0]),o.setEndAfter(n[n.length-1]),o}function b(e,n){var o=v(e);return o.deleteContents(),n.length>0&&o.insertNode(t.dom.doc.createTextNode(n)),o}function y(){return w.splice(0,w.length),m(),this}var x,w=[],C,k=t.dom,S,P,N;return S=t.schema.getBlockElements(),P=t.schema.getWhiteSpaceElements(),N=t.schema.getShortEndedElements(),C=o(e),{text:C,matches:w,each:d,filter:c,reset:y,matchFromElement:p,elementFromMatch:g,find:f,add:h,wrap:u,unwrap:m,replace:b,rangeFromMatch:v,indexOf:s}}}),o(c,[s,d,u,f,m,p,g,h],function(e,t,n,o,r,i,a,l){t.add("spellchecker",function(t,s){function c(){return C.textMatcher||(C.textMatcher=new e(t.getBody(),t)),C.textMatcher}function d(e,t){var o=[];return n.each(t,function(e){o.push({selectable:!0,text:e.name,data:e.value})}),o}function u(e){for(var t in e)return!1;return!0}function f(e,i){var a=[],l=k[e];n.each(l,function(e){a.push({text:e,onclick:function(){t.insertContent(t.dom.encode(e)),t.dom.remove(i),g()}})}),a.push.apply(a,[{text:"-"},{text:"Ignore",onclick:function(){h(e,i)}},{text:"Ignore all",onclick:function(){h(e,i,!0)}},{text:"Finish",onclick:v}]),P=new o({items:a,context:"contextmenu",onautohide:function(e){-1!=e.target.className.indexOf("spellchecker")&&e.preventDefault()},onhide:function(){P.remove(),P=null}}),P.renderTo(document.body);var s=r.DOM.getPos(t.getContentAreaContainer()),c=t.dom.getPos(i[0]),d=t.dom.getRoot();"BODY"==d.nodeName?(c.x-=d.ownerDocument.documentElement.scrollLeft||d.scrollLeft,c.y-=d.ownerDocument.documentElement.scrollTop||d.scrollTop):(c.x-=d.scrollLeft,c.y-=d.scrollTop),s.x+=c.x,s.y+=c.y,P.moveTo(s.x,s.y+i[0].offsetHeight)}function m(){return t.getParam("spellchecker_wordchar_pattern")||new RegExp('[^\\s!"#$%&()*+,-./:;<=>?@[\\]^_{|}`\xa7\xa9\xab\xae\xb1\xb6\xb7\xb8\xbb\xbc\xbd\xbe\xbf\xd7\xf7\xa4\u201d\u201c\u201e]+',"g")}function p(){function e(e){return t.setProgressState(!1),u(e)?(t.windowManager.alert("No misspellings found"),void(S=!1)):(k=e,c().find(m()).filter(function(t){return!!e[t.text]}).wrap(function(e){return t.dom.create("span",{"class":"mce-spellchecker-word","data-mce-bogus":1,"data-mce-word":e.text})}),void t.fire("SpellcheckStart"))}function n(e){t.windowManager.alert(e),t.setProgressState(!1),v()}function o(e,t,o){i.send({url:new a(s).toAbsolute(N.spellchecker_rpc_url),type:"post",content_type:"application/x-www-form-urlencoded",data:"text="+encodeURIComponent(t)+"&lang="+N.spellchecker_language,success:function(e){e=l.parse(e),e?e.error?n(e.error):o(e.words):n("Sever response wasn't proper JSON.")},error:function(e,t){n("Spellchecker request error: "+t.status)}})}if(S)return void v();v(),S=!0,t.setProgressState(!0);var r=N.spellchecker_callback||o;r.call(C,"spellcheck",c().text,e,n),t.focus()}function g(){t.dom.select("span.mce-spellchecker-word").length||v()}function h(e,o,r){t.selection.collapse(),r?n.each(t.dom.select("span.mce-spellchecker-word"),function(n){n.getAttribute("data-mce-word")==e&&t.dom.remove(n,!0)}):t.dom.remove(o,!0),g()}function v(){c().reset(),C.textMatcher=null,S&&(S=!1,t.fire("SpellcheckEnd"))}function b(e){var t=e.getAttribute("data-mce-index");return"number"==typeof t?""+t:t}function y(e){var o,r=[];if(o=n.toArray(t.getBody().getElementsByTagName("span")),o.length)for(var i=0;i<o.length;i++){var a=b(o[i]);null!==a&&a.length&&a===e.toString()&&r.push(o[i])}return r}function x(e){var t=N.spellchecker_language;e.control.items().each(function(e){e.active(e.settings.data===t)})}var w,C=this,k,S,P,N=t.settings,R=N.spellchecker_languages||"English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr_FR,German=de,Italian=it,Polish=pl,Portuguese=pt_BR,Spanish=es,Swedish=sv";w=d("Language",n.map(R.split(","),function(e){var t=e.split("=");return{name:t[0],value:t[1]}})),t.on("click",function(e){var n=e.target;if("mce-spellchecker-word"==n.className){e.preventDefault();var o=y(b(n));if(o.length>0){var r=t.dom.createRng();r.setStartBefore(o[0]),r.setEndAfter(o[o.length-1]),t.selection.setRng(r),f(n.getAttribute("data-mce-word"),o)}}}),t.addMenuItem("spellchecker",{text:"Spellcheck",context:"tools",onclick:p,selectable:!0,onPostRender:function(){var e=this;t.on("SpellcheckStart SpellcheckEnd",function(){e.active(S)})}});var T={tooltip:"Spellcheck",onclick:p,onPostRender:function(){var e=this;t.on("SpellcheckStart SpellcheckEnd",function(){e.active(S)})}};w.length>1&&(T.type="splitbutton",T.menu=w,T.onshow=x,T.onselect=function(e){N.spellchecker_language=e.control.settings.data}),t.addButton("spellchecker",T),t.addCommand("mceSpellCheck",p),t.on("remove",function(){P&&(P.remove(),P=null)}),t.on("change",g),this.getTextMatcher=c,this.getWordCharPattern=m,this.getLanguage=function(){return N.spellchecker_language},N.spellchecker_language=N.spellchecker_language||N.language||"en"})}),a([s,c])}(this);tinymce.PluginManager.add("tabfocus",function(e){function n(e){9!==e.keyCode||e.ctrlKey||e.altKey||e.metaKey||e.preventDefault()}function t(n){function t(n){function t(e){return"BODY"===e.nodeName||"hidden"!=e.type&&"none"!=e.style.display&&"hidden"!=e.style.visibility&&t(e.parentNode)}function r(e){return e.tabIndex||"INPUT"==e.nodeName||"TEXTAREA"==e.nodeName}function c(e){return!r(e)&&"-1"!=e.getAttribute("tabindex")&&t(e)}if(u=i.select(":input:enabled,*[tabindex]:not(iframe)"),o(u,function(n,t){return n.id==e.id?(a=t,!1):void 0}),n>0){for(d=a+1;d<u.length;d++)if(c(u[d]))return u[d]}else for(d=a-1;d>=0;d--)if(c(u[d]))return u[d];return null}var a,u,c,d;if(!(9!==n.keyCode||n.ctrlKey||n.altKey||n.metaKey)&&(c=r(e.getParam("tab_focus",e.getParam("tabfocus_elements",":prev,:next"))),1==c.length&&(c[1]=c[0],c[0]=":prev"),u=n.shiftKey?":prev"==c[0]?t(-1):i.get(c[0]):":next"==c[1]?t(1):i.get(c[1]))){var y=tinymce.get(u.id||u.name);u.id&&y?y.focus():window.setTimeout(function(){tinymce.Env.webkit||window.focus(),u.focus()},10),n.preventDefault()}}var i=tinymce.DOM,o=tinymce.each,r=tinymce.explode;e.on("init",function(){e.inline&&tinymce.DOM.setAttrib(e.getBody(),"tabIndex",null)}),e.on("keyup",n),tinymce.Env.gecko?e.on("keypress keydown",t):e.on("keydown",t)});!function(e,t){"use strict";function n(e,t){for(var n,o=[],i=0;i<e.length;++i){if(n=l[e[i]]||r(e[i]),!n)throw"module definition dependecy not found: "+e[i];o.push(n)}t.apply(null,o)}function o(e,o,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(o===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(o,function(){l[e]=i.apply(null,arguments)})}function i(e){return!!l[e]}function r(t){for(var n=e,o=t.split(/[.\/]/),i=0;i<o.length;++i){if(!n[o[i]])return;n=n[o[i]]}return n}function a(n){for(var o=0;o<n.length;o++){for(var i=e,r=n[o],a=r.split(/[.\/]/),s=0;s<a.length-1;++s)i[a[s]]===t&&(i[a[s]]={}),i=i[a[s]];i[a[a.length-1]]=l[r]}}var l={},s="tinymce/tableplugin/TableGrid",c="tinymce/util/Tools",d="tinymce/Env",u="tinymce/tableplugin/Quirks",f="tinymce/util/VK",m="tinymce/tableplugin/CellSelection",p="tinymce/dom/TreeWalker",g="tinymce/tableplugin/Plugin",h="tinymce/PluginManager";o(s,[c,d],function(e,n){function o(e,t){return parseInt(e.getAttribute(t)||1,10)}var i=e.each;return function(r,a){function l(){var e=0;A=[],i(["thead","tbody","tfoot"],function(t){var n=I.select("> "+t+" tr",a);i(n,function(n,r){r+=e,i(I.select("> td, > th",n),function(e,n){var i,a,l,s;if(A[r])for(;A[r][n];)n++;for(l=o(e,"rowspan"),s=o(e,"colspan"),a=r;r+l>a;a++)for(A[a]||(A[a]=[]),i=n;n+s>i;i++)A[a][i]={part:t,real:a==r&&i==n,elm:e,rowspan:l,colspan:s}})}),e+=n.length})}function s(e,t){return e=e.cloneNode(t),e.removeAttribute("id"),e}function c(e,t){var n;return n=A[t],n?n[e]:void 0}function d(e,t,n){e&&(n=parseInt(n,10),1===n?e.removeAttribute(t,1):e.setAttribute(t,n,1))}function u(e){return e&&(I.hasClass(e.elm,"mce-item-selected")||e==M)}function f(){var e=[];return i(a.rows,function(t){i(t.cells,function(n){return I.hasClass(n,"mce-item-selected")||M&&n==M.elm?(e.push(t),!1):void 0})}),e}function m(){var e=I.createRng();e.setStartAfter(a),e.setEndAfter(a),E.setRng(e),I.remove(a)}function p(t){var o,a={};return r.settings.table_clone_elements!==!1&&(a=e.makeMap((r.settings.table_clone_elements||"strong em b i span font h1 h2 h3 h4 h5 h6 p div").toUpperCase(),/[ ,]/)),e.walk(t,function(e){var r;return 3==e.nodeType?(i(I.getParents(e.parentNode,null,t).reverse(),function(e){a[e.nodeName]&&(e=s(e,!1),o?r&&r.appendChild(e):o=r=e,r=e)}),r&&(r.innerHTML=n.ie?"&nbsp;":'<br data-mce-bogus="1" />'),!1):void 0},"childNodes"),t=s(t,!1),d(t,"rowSpan",1),d(t,"colSpan",1),o?t.appendChild(o):n.ie||(t.innerHTML='<br data-mce-bogus="1" />'),t}function g(){var e=I.createRng(),t;return i(I.select("tr",a),function(e){0===e.cells.length&&I.remove(e)}),0===I.select("tr",a).length?(e.setStartBefore(a),e.setEndBefore(a),E.setRng(e),void I.remove(a)):(i(I.select("thead,tbody,tfoot",a),function(e){0===e.rows.length&&I.remove(e)}),l(),void(B&&(t=A[Math.min(A.length-1,B.y)],t&&(E.select(t[Math.min(t.length-1,B.x)].elm,!0),E.collapse(!0)))))}function h(e,t,n,o){var i,r,a,l,s;for(i=A[t][e].elm.parentNode,a=1;n>=a;a++)if(i=I.getNext(i,"tr")){for(r=e;r>=0;r--)if(s=A[t+a][r].elm,s.parentNode==i){for(l=1;o>=l;l++)I.insertAfter(p(s),s);break}if(-1==r)for(l=1;o>=l;l++)i.insertBefore(p(i.cells[0]),i.cells[0])}}function v(){i(A,function(e,t){i(e,function(e,n){var i,r,a;if(u(e)&&(e=e.elm,i=o(e,"colspan"),r=o(e,"rowspan"),i>1||r>1)){for(d(e,"rowSpan",1),d(e,"colSpan",1),a=0;i-1>a;a++)I.insertAfter(p(e),e);h(n,t,r-1,i)}})})}function b(t,n,o){var r,a,s,f,m,p,h,b,y,w,x;if(t?(r=T(t),a=r.x,s=r.y,f=a+(n-1),m=s+(o-1)):(B=D=null,i(A,function(e,t){i(e,function(e,n){u(e)&&(B||(B={x:n,y:t}),D={x:n,y:t})})}),B&&(a=B.x,s=B.y,f=D.x,m=D.y)),b=c(a,s),y=c(f,m),b&&y&&b.part==y.part){for(v(),l(),b=c(a,s).elm,d(b,"colSpan",f-a+1),d(b,"rowSpan",m-s+1),h=s;m>=h;h++)for(p=a;f>=p;p++)A[h]&&A[h][p]&&(t=A[h][p].elm,t!=b&&(w=e.grep(t.childNodes),i(w,function(e){b.appendChild(e)}),w.length&&(w=e.grep(b.childNodes),x=0,i(w,function(e){"BR"==e.nodeName&&I.getAttrib(e,"data-mce-bogus")&&x++<w.length-1&&b.removeChild(e)})),I.remove(t)));g()}}function y(e){var n,r,a,l,c,f,m,g,h;if(i(A,function(t,o){return i(t,function(t){return u(t)&&(t=t.elm,c=t.parentNode,f=s(c,!1),n=o,e)?!1:void 0}),e?!n:void 0}),n!==t){for(l=0;l<A[0].length;l++)if(A[n][l]&&(r=A[n][l].elm,r!=a)){if(e){if(n>0&&A[n-1][l]&&(g=A[n-1][l].elm,h=o(g,"rowSpan"),h>1)){d(g,"rowSpan",h+1);continue}}else if(h=o(r,"rowspan"),h>1){d(r,"rowSpan",h+1);continue}m=p(r),d(m,"colSpan",r.colSpan),f.appendChild(m),a=r}f.hasChildNodes()&&(e?c.parentNode.insertBefore(f,c):I.insertAfter(f,c))}}function w(e){var t,n;i(A,function(n){return i(n,function(n,o){return u(n)&&(t=o,e)?!1:void 0}),e?!t:void 0}),i(A,function(i,r){var a,l,s;i[t]&&(a=i[t].elm,a!=n&&(s=o(a,"colspan"),l=o(a,"rowspan"),1==s?e?(a.parentNode.insertBefore(p(a),a),h(t,r,l-1,s)):(I.insertAfter(p(a),a),h(t,r,l-1,s)):d(a,"colSpan",a.colSpan+1),n=a))})}function x(){var t=[];i(A,function(n){i(n,function(n,r){u(n)&&-1===e.inArray(t,r)&&(i(A,function(e){var t=e[r].elm,n;n=o(t,"colSpan"),n>1?d(t,"colSpan",n-1):I.remove(t)}),t.push(r))})}),g()}function C(){function e(e){var t,n,r;t=I.getNext(e,"tr"),i(e.cells,function(e){var t=o(e,"rowSpan");t>1&&(d(e,"rowSpan",t-1),n=T(e),h(n.x,n.y,1,1))}),n=T(e.cells[0]),i(A[n.y],function(e){var t;e=e.elm,e!=r&&(t=o(e,"rowSpan"),1>=t?I.remove(e):d(e,"rowSpan",t-1),r=e)})}var t;t=f(),i(t.reverse(),function(t){e(t)}),g()}function P(){var e=f();return I.remove(e),g(),e}function S(){var e=f();return i(e,function(t,n){e[n]=s(t,!0)}),e}function R(e,t){var n=f(),o=n[t?0:n.length-1],r=o.cells.length;e&&(i(A,function(e){var t;return r=0,i(e,function(e){e.real&&(r+=e.colspan),e.elm.parentNode==o&&(t=1)}),t?!1:void 0}),t||e.reverse(),i(e,function(e){var n,i=e.cells.length,a;for(n=0;i>n;n++)a=e.cells[n],d(a,"colSpan",1),d(a,"rowSpan",1);for(n=i;r>n;n++)e.appendChild(p(e.cells[i-1]));for(n=r;i>n;n++)I.remove(e.cells[n]);t?o.parentNode.insertBefore(e,o):I.insertAfter(e,o)}),I.removeClass(I.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"))}function T(e){var t;return i(A,function(n,o){return i(n,function(n,i){return n.elm==e?(t={x:i,y:o},!1):void 0}),!t}),t}function k(e){B=T(e)}function N(){var e,t;return e=t=0,i(A,function(n,o){i(n,function(n,i){var r,a;u(n)&&(n=A[o][i],i>e&&(e=i),o>t&&(t=o),n.real&&(r=n.colspan-1,a=n.rowspan-1,r&&i+r>e&&(e=i+r),a&&o+a>t&&(t=o+a)))})}),{x:e,y:t}}function _(e){var t,n,o,i,r,a,l,s,c,d;if(D=T(e),B&&D){for(t=Math.min(B.x,D.x),n=Math.min(B.y,D.y),o=Math.max(B.x,D.x),i=Math.max(B.y,D.y),r=o,a=i,d=n;a>=d;d++)e=A[d][t],e.real||t-(e.colspan-1)<t&&(t-=e.colspan-1);for(c=t;r>=c;c++)e=A[n][c],e.real||n-(e.rowspan-1)<n&&(n-=e.rowspan-1);for(d=n;i>=d;d++)for(c=t;o>=c;c++)e=A[d][c],e.real&&(l=e.colspan-1,s=e.rowspan-1,l&&c+l>r&&(r=c+l),s&&d+s>a&&(a=d+s));for(I.removeClass(I.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),d=n;a>=d;d++)for(c=t;r>=c;c++)A[d][c]&&I.addClass(A[d][c].elm,"mce-item-selected")}}var A,B,D,M,E=r.selection,I=E.dom;a=a||I.getParent(E.getStart(),"table"),l(),M=I.getParent(E.getStart(),"th,td"),M&&(B=T(M),D=N(),M=c(B.x,B.y)),e.extend(this,{deleteTable:m,split:v,merge:b,insertRow:y,insertCol:w,deleteCols:x,deleteRows:C,cutRows:P,copyRows:S,pasteRows:R,getPos:T,setStartCell:k,setEndCell:_})}}),o(u,[f,d,c],function(e,t,n){function o(e,t){return parseInt(e.getAttribute(t)||1,10)}var i=n.each;return function(n){function r(){function t(t){function r(e,o){var i=e?"previousSibling":"nextSibling",r=n.dom.getParent(o,"tr"),l=r[i];if(l)return h(n,o,l,e),t.preventDefault(),!0;var d=n.dom.getParent(r,"table"),u=r.parentNode,f=u.nodeName.toLowerCase();if("tbody"===f||f===(e?"tfoot":"thead")){var m=a(e,d,u,"tbody");if(null!==m)return s(e,m,o)}return c(e,r,i,d)}function a(e,t,o,i){var r=n.dom.select(">"+i,t),a=r.indexOf(o);if(e&&0===a||!e&&a===r.length-1)return l(e,t);if(-1===a){var s="thead"===o.tagName.toLowerCase()?0:r.length-1;return r[s]}return r[a+(e?-1:1)]}function l(e,t){var o=e?"thead":"tfoot",i=n.dom.select(">"+o,t);return 0!==i.length?i[0]:null}function s(e,o,i){var r=d(o,e);return r&&h(n,i,r,e),t.preventDefault(),!0}function c(e,o,i,a){var l=a[i];if(l)return u(l),!0;var s=n.dom.getParent(a,"td,th");if(s)return r(e,s,t);var c=d(o,!e);return u(c),t.preventDefault(),!1}function d(e,t){var o=e&&e[t?"lastChild":"firstChild"];return o&&"BR"===o.nodeName?n.dom.getParent(o,"td,th"):o}function u(e){n.selection.setCursorLocation(e,0)}function f(){return y==e.UP||y==e.DOWN}function m(e){var t=e.selection.getNode(),n=e.dom.getParent(t,"tr");return null!==n}function p(e){for(var t=0,n=e;n.previousSibling;)n=n.previousSibling,t+=o(n,"colspan");return t}function g(e,t){var n=0,r=0;return i(e.children,function(e,i){return n+=o(e,"colspan"),r=i,n>t?!1:void 0}),r}function h(e,t,o,i){var r=p(n.dom.getParent(t,"td,th")),a=g(o,r),l=o.childNodes[a],s=d(l,i);u(s||l)}function v(e){var t=n.selection.getNode(),o=n.dom.getParent(t,"td,th"),i=n.dom.getParent(e,"td,th");return o&&o!==i&&b(o,i)}function b(e,t){return n.dom.getParent(e,"TABLE")===n.dom.getParent(t,"TABLE")}var y=t.keyCode;if(f()&&m(n)){var w=n.selection.getNode();setTimeout(function(){v(w)&&r(!t.shiftKey&&y===e.UP,w,t)},0)}}n.on("KeyDown",function(e){t(e)})}function a(){function e(e,t){var n=t.ownerDocument,o=n.createRange(),i;return o.setStartBefore(t),o.setEnd(e.endContainer,e.endOffset),i=n.createElement("body"),i.appendChild(o.cloneContents()),0===i.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}n.on("KeyDown",function(t){var o,i,r=n.dom;(37==t.keyCode||38==t.keyCode)&&(o=n.selection.getRng(),i=r.getParent(o.startContainer,"table"),i&&n.getBody().firstChild==i&&e(o,i)&&(o=r.createRng(),o.setStartBefore(i),o.setEndBefore(i),n.selection.setRng(o),t.preventDefault()))})}function l(){n.on("KeyDown SetContent VisualAid",function(){var e;for(e=n.getBody().lastChild;e;e=e.previousSibling)if(3==e.nodeType){if(e.nodeValue.length>0)break}else if(1==e.nodeType&&!e.getAttribute("data-mce-bogus"))break;e&&"TABLE"==e.nodeName&&(n.settings.forced_root_block?n.dom.add(n.getBody(),n.settings.forced_root_block,n.settings.forced_root_block_attrs,t.ie&&t.ie<11?"&nbsp;":'<br data-mce-bogus="1" />'):n.dom.add(n.getBody(),"br",{"data-mce-bogus":"1"}))}),n.on("PreProcess",function(e){var t=e.node.lastChild;t&&("BR"==t.nodeName||1==t.childNodes.length&&("BR"==t.firstChild.nodeName||"\xa0"==t.firstChild.nodeValue))&&t.previousSibling&&"TABLE"==t.previousSibling.nodeName&&n.dom.remove(t)})}function s(){function e(e,t,n,o){var i=3,r=e.dom.getParent(t.startContainer,"TABLE"),a,l,s;return r&&(a=r.parentNode),l=t.startContainer.nodeType==i&&0===t.startOffset&&0===t.endOffset&&o&&("TR"==n.nodeName||n==a),s=("TD"==n.nodeName||"TH"==n.nodeName)&&!o,l||s}function t(){var t=n.selection.getRng(),o=n.selection.getNode(),i=n.dom.getParent(t.startContainer,"TD,TH");if(e(n,t,o,i)){i||(i=o);for(var r=i.lastChild;r.lastChild;)r=r.lastChild;t.setEnd(r,r.nodeValue.length),n.selection.setRng(t)}}n.on("KeyDown",function(){t()}),n.on("MouseDown",function(e){2!=e.button&&t()})}function c(){n.on("keydown",function(t){if((t.keyCode==e.DELETE||t.keyCode==e.BACKSPACE)&&!t.isDefaultPrevented()){var o=n.dom.getParent(n.selection.getStart(),"table");if(o){for(var i=n.dom.select("td,th",o),r=i.length;r--;)if(!n.dom.hasClass(i[r],"mce-item-selected"))return;t.preventDefault(),n.execCommand("mceTableDelete")}}})}c(),t.webkit&&(r(),s()),t.gecko&&(a(),l()),t.ie>10&&(a(),l())}}),o(m,[s,p,c],function(e,t,n){return function(o){function i(){o.getBody().style.webkitUserSelect="",d&&(o.dom.removeClass(o.dom.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),d=!1)}function r(t){var n,i,r=t.target;if(s&&(l||r!=s)&&("TD"==r.nodeName||"TH"==r.nodeName)){i=a.getParent(r,"table"),i==c&&(l||(l=new e(o,i),l.setStartCell(s),o.getBody().style.webkitUserSelect="none"),l.setEndCell(r),d=!0),n=o.selection.getSel();try{n.removeAllRanges?n.removeAllRanges():n.empty()}catch(u){}t.preventDefault()}}var a=o.dom,l,s,c,d=!0;return o.on("MouseDown",function(e){2!=e.button&&(i(),s=a.getParent(e.target,"td,th"),c=a.getParent(s,"table"))}),o.on("mouseover",r),o.on("remove",function(){a.unbind(o.getDoc(),"mouseover",r)}),o.on("MouseUp",function(){function e(e,o){var r=new t(e,e);do{if(3==e.nodeType&&0!==n.trim(e.nodeValue).length)return void(o?i.setStart(e,0):i.setEnd(e,e.nodeValue.length));if("BR"==e.nodeName)return void(o?i.setStartBefore(e):i.setEndBefore(e))}while(e=o?r.next():r.prev())}var i,r=o.selection,d,u,f,m,p;if(s){if(l&&(o.getBody().style.webkitUserSelect=""),d=a.select("td.mce-item-selected,th.mce-item-selected"),d.length>0){i=a.createRng(),f=d[0],p=d[d.length-1],i.setStartBefore(f),i.setEndAfter(f),e(f,1),u=new t(f,a.getParent(d[0],"table"));do if("TD"==f.nodeName||"TH"==f.nodeName){if(!a.hasClass(f,"mce-item-selected"))break;m=f}while(f=u.next());e(m),r.setRng(i)}o.nodeChanged(),s=l=c=null}}),o.on("KeyUp Drop",function(){i(),s=l=c=null}),{clear:i}}}),o(g,[s,u,m,c,p,d,h],function(e,t,n,o,i,r,a){function l(o){function i(e){return e?e.replace(/px$/,""):""}function a(e){return/^[0-9]+$/.test(e)&&(e+="px"),e}function l(e){s("left center right".split(" "),function(t){o.formatter.remove("align"+t,{},e)})}function c(e){s("top middle bottom".split(" "),function(t){o.formatter.remove("valign"+t,{},e)})}function d(){var e=o.dom,t,n,c,d;t=e.getParent(o.selection.getStart(),"table"),d={width:i(e.getStyle(t,"width")||e.getAttrib(t,"width")),height:i(e.getStyle(t,"height")||e.getAttrib(t,"height")),cellspacing:t?e.getAttrib(t,"cellspacing"):"",cellpadding:t?e.getAttrib(t,"cellpadding"):"",border:t?e.getAttrib(t,"border"):"",caption:!!e.select("caption",t)[0]},s("left center right".split(" "),function(e){o.formatter.matchNode(t,"align"+e)&&(d.align=e)}),t||(n={label:"Cols",name:"cols"},c={label:"Rows",name:"rows"}),o.windowManager.open({title:"Table properties",items:{type:"form",layout:"grid",columns:2,data:d,defaults:{type:"textbox",maxWidth:50},items:[n,c,{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"},{label:"Alignment",minWidth:90,name:"align",type:"listbox",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]}]},onsubmit:function(){var n=this.toJSON(),i;o.undoManager.transact(function(){t||(t=g(n.cols||1,n.rows||1)),o.dom.setAttribs(t,{cellspacing:n.cellspacing,cellpadding:n.cellpadding,border:n.border}),o.dom.setStyles(t,{width:a(n.width),height:a(n.height)}),i=e.select("caption",t)[0],i&&!n.caption&&e.remove(i),!i&&n.caption&&(i=e.create("caption"),i.innerHTML=r.ie?"\xa0":'<br data-mce-bogus="1"/>',t.insertBefore(i,t.firstChild)),l(t),n.align&&o.formatter.apply("align"+n.align,{},t),o.focus(),o.addVisual()})}})}function u(e,t){o.windowManager.open({title:"Merge cells",body:[{label:"Cols",name:"cols",type:"textbox",size:10},{label:"Rows",name:"rows",type:"textbox",size:10}],onsubmit:function(){var n=this.toJSON();o.undoManager.transact(function(){e.merge(t,n.cols,n.rows)})}})}function f(){var e=o.dom,t,n,r=[];r=o.dom.select("td.mce-item-selected,th.mce-item-selected"),t=o.dom.getParent(o.selection.getStart(),"td,th"),!r.length&&t&&r.push(t),t=t||r[0],t&&(n={width:i(e.getStyle(t,"width")||e.getAttrib(t,"width")),height:i(e.getStyle(t,"height")||e.getAttrib(t,"height")),scope:e.getAttrib(t,"scope")},n.type=t.nodeName.toLowerCase(),s("left center right".split(" "),function(e){o.formatter.matchNode(t,"align"+e)&&(n.align=e)}),s("top middle bottom".split(" "),function(e){o.formatter.matchNode(t,"valign"+e)&&(n.valign=e)}),o.windowManager.open({title:"Cell properties",items:{type:"form",data:n,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"H Align",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"V Align",name:"valign",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}]}]},onsubmit:function(){var t=this.toJSON();o.undoManager.transact(function(){s(r,function(n){o.dom.setAttrib(n,"scope",t.scope),o.dom.setStyles(n,{width:a(t.width),height:a(t.height)}),t.type&&n.nodeName.toLowerCase()!=t.type&&(n=e.rename(n,t.type)),l(n),t.align&&o.formatter.apply("align"+t.align,{},n),c(n),t.valign&&o.formatter.apply("valign"+t.valign,{},n)}),o.focus()})}}))}function m(){var e=o.dom,t,n,r,c,d=[];t=o.dom.getParent(o.selection.getStart(),"table"),n=o.dom.getParent(o.selection.getStart(),"td,th"),s(t.rows,function(t){s(t.cells,function(o){return e.hasClass(o,"mce-item-selected")||o==n?(d.push(t),!1):void 0})}),r=d[0],r&&(c={height:i(e.getStyle(r,"height")||e.getAttrib(r,"height")),scope:e.getAttrib(r,"scope")},c.type=r.parentNode.nodeName.toLowerCase(),s("left center right".split(" "),function(e){o.formatter.matchNode(r,"align"+e)&&(c.align=e)}),o.windowManager.open({title:"Row properties",items:{type:"form",data:c,columns:2,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"None",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"}]},onsubmit:function(){var t=this.toJSON(),n,i,r;o.undoManager.transact(function(){var c=t.type;s(d,function(s){o.dom.setAttrib(s,"scope",t.scope),o.dom.setStyles(s,{height:a(t.height)}),c!=s.parentNode.nodeName.toLowerCase()&&(n=e.getParent(s,"table"),i=s.parentNode,r=e.select(c,n)[0],r||(r=e.create(c),n.firstChild?n.insertBefore(r,n.firstChild):n.appendChild(r)),r.appendChild(s),i.hasChildNodes()||e.remove(i)),l(s),t.align&&o.formatter.apply("align"+t.align,{},s)}),o.focus()})}}))}function p(e){return function(){o.execCommand(e)}}function g(e,t){var n,i,a;for(a='<table id="__mce"><tbody>',n=0;t>n;n++){for(a+="<tr>",i=0;e>i;i++)a+="<td>"+(r.ie?" ":"<br>")+"</td>";a+="</tr>"}a+="</tbody></table>",o.insertContent(a);var l=o.dom.get("__mce");return o.dom.setAttrib(l,"id",null),l}function h(e,t){function n(){e.disabled(!o.dom.getParent(o.selection.getStart(),t)),o.selection.selectorChanged(t,function(t){e.disabled(!t)})}o.initialized?n():o.on("init",n)}function v(){h(this,"table")}function b(){h(this,"td,th")}function y(){var e="";e='<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">';for(var t=0;10>t;t++){e+="<tr>";for(var n=0;10>n;n++)e+='<td role="gridcell" tabindex="-1"><a id="mcegrid'+(10*t+n)+'" href="#" data-mce-x="'+n+'" data-mce-y="'+t+'"></a></td>';e+="</tr>"}return e+="</table>",e+='<div class="mce-text-center" role="presentation">1 x 1</div>'}function w(e,t,n){var i=n.getEl().getElementsByTagName("table")[0],r,a,l,s,c,d=n.isRtl()||"tl-tr"==n.parent().rel;for(i.nextSibling.innerHTML=e+1+" x "+(t+1),d&&(e=9-e),a=0;10>a;a++)for(r=0;10>r;r++)s=i.rows[a].childNodes[r].firstChild,c=(d?r>=e:e>=r)&&t>=a,o.dom.toggleClass(s,"mce-active",c),c&&(l=s);return l.parentNode}var x,C,P=this;o.settings.table_grid===!1?o.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",onclick:d}):o.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(e){e.aria&&(this.parent().hideAll(),e.stopImmediatePropagation(),d())},onshow:function(){w(0,0,this.menu.items()[0])},onhide:function(){var e=this.menu.items()[0].getEl().getElementsByTagName("a");o.dom.removeClass(e,"mce-active"),o.dom.addClass(e[0],"mce-active")},menu:[{type:"container",html:y(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(e){var t=e.target,n,o;"A"==t.tagName.toUpperCase()&&(n=parseInt(t.getAttribute("data-mce-x"),10),o=parseInt(t.getAttribute("data-mce-y"),10),(this.isRtl()||"tl-tr"==this.parent().rel)&&(n=9-n),(n!==this.lastX||o!==this.lastY)&&(w(n,o,e.control),this.lastX=n,this.lastY=o))},onkeydown:function(e){var t=this.lastX,n=this.lastY,o;switch(e.keyCode){case 37:t>0&&(t--,o=!0);break;case 39:o=!0,9>t&&t++;break;case 38:o=!0,n>0&&n--;break;case 40:o=!0,9>n&&n++}o&&(e.preventDefault(),e.stopPropagation(),w(t,n,e.control).focus(),this.lastX=t,this.lastY=n)},onclick:function(e){"A"==e.target.tagName.toUpperCase()&&(e.preventDefault(),e.stopPropagation(),this.parent().cancel(),g(this.lastX+1,this.lastY+1))}}]}),o.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:v,onclick:d}),o.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:v,cmd:"mceTableDelete"}),o.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:p("mceTableCellProps"),onPostRender:b},{text:"Merge cells",onclick:p("mceTableMergeCells"),onPostRender:b},{text:"Split cell",onclick:p("mceTableSplitCells"),onPostRender:b}]}),o.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:p("mceTableInsertRowBefore"),onPostRender:b},{text:"Insert row after",onclick:p("mceTableInsertRowAfter"),onPostRender:b},{text:"Delete row",onclick:p("mceTableDeleteRow"),onPostRender:b},{text:"Row properties",onclick:p("mceTableRowProps"),onPostRender:b},{text:"-"},{text:"Cut row",onclick:p("mceTableCutRow"),onPostRender:b},{text:"Copy row",onclick:p("mceTableCopyRow"),onPostRender:b},{text:"Paste row before",onclick:p("mceTablePasteRowBefore"),onPostRender:b},{text:"Paste row after",onclick:p("mceTablePasteRowAfter"),onPostRender:b}]}),o.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:p("mceTableInsertColBefore"),onPostRender:b},{text:"Insert column after",onclick:p("mceTableInsertColAfter"),onPostRender:b},{text:"Delete column",onclick:p("mceTableDeleteCol"),onPostRender:b}]});var S=[];s("inserttable tableprops deletetable | cell row column".split(" "),function(e){S.push("|"==e?{text:"-"}:o.menuItems[e])}),o.addButton("table",{type:"menubutton",title:"Table",menu:S}),r.isIE||o.on("click",function(e){e=e.target,"TABLE"===e.nodeName&&(o.selection.select(e),o.nodeChanged())}),P.quirks=new t(o),o.on("Init",function(){x=o.windowManager,P.cellSelection=new n(o)}),s({mceTableSplitCells:function(e){e.split()},mceTableMergeCells:function(e){var t,n,i;i=o.dom.getParent(o.selection.getStart(),"th,td"),i&&(t=i.rowSpan,n=i.colSpan),o.dom.select("td.mce-item-selected,th.mce-item-selected").length?e.merge():u(e,i)},mceTableInsertRowBefore:function(e){e.insertRow(!0)},mceTableInsertRowAfter:function(e){e.insertRow()},mceTableInsertColBefore:function(e){e.insertCol(!0)},mceTableInsertColAfter:function(e){e.insertCol()},mceTableDeleteCol:function(e){e.deleteCols()},mceTableDeleteRow:function(e){e.deleteRows()},mceTableCutRow:function(e){C=e.cutRows()},mceTableCopyRow:function(e){C=e.copyRows()},mceTablePasteRowBefore:function(e){e.pasteRows(C,!0)},mceTablePasteRowAfter:function(e){e.pasteRows(C)},mceTableDelete:function(e){e.deleteTable()}},function(t,n){o.addCommand(n,function(){var n=new e(o);n&&(t(n),o.execCommand("mceRepaint"),P.cellSelection.clear())})}),s({mceInsertTable:function(){d()},mceTableRowProps:m,mceTableCellProps:f},function(e,t){o.addCommand(t,function(t,n){e(n)})})}var s=o.each;a.add("table",l)}),a([s,u,m,g])}(this);tinymce.PluginManager.add("template",function(e){function t(t){return function(){var a=e.settings.templates;"string"==typeof a?tinymce.util.XHR.send({url:a,success:function(e){t(tinymce.util.JSON.parse(e))}}):t(a)}}function a(t){function a(t){function a(t){if(-1==t.indexOf("<html>")){var a="";tinymce.each(e.contentCSS,function(t){a+='<link type="text/css" rel="stylesheet" href="'+e.documentBaseURI.toAbsolute(t)+'">'}),t="<!DOCTYPE html><html><head>"+a+"</head><body>"+t+"</body></html>"}t=r(t,"template_preview_replace_values");var l=n.find("iframe")[0].getEl().contentWindow.document;l.open(),l.write(t),l.close()}var c=t.control.value();c.url?tinymce.util.XHR.send({url:c.url,success:function(e){l=e,a(l)}}):(l=c.content,a(l)),n.find("#description")[0].text(t.control.value().description)}var n,l,i=[];return t&&0!==t.length?(tinymce.each(t,function(e){i.push({selected:!i.length,text:e.title,value:{url:e.url,content:e.content,description:e.description}})}),n=e.windowManager.open({title:"Insert template",layout:"flex",direction:"column",align:"stretch",padding:15,spacing:10,items:[{type:"form",flex:0,padding:0,items:[{type:"container",label:"Templates",items:{type:"listbox",label:"Templates",name:"template",values:i,onselect:a}}]},{type:"label",name:"description",label:"Description",text:" "},{type:"iframe",flex:1,border:1}],onsubmit:function(){c(!1,l)},width:e.getParam("template_popup_width",600),height:e.getParam("template_popup_height",500)}),void n.find("listbox")[0].fire("select")):void e.windowManager.alert("No templates defined")}function n(t,a){function n(e,t){if(e=""+e,e.length<t)for(var a=0;a<t-e.length;a++)e="0"+e;return e}var l="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),r="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),c="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),i="January February March April May June July August September October November December".split(" ");return a=a||new Date,t=t.replace("%D","%m/%d/%Y"),t=t.replace("%r","%I:%M:%S %p"),t=t.replace("%Y",""+a.getFullYear()),t=t.replace("%y",""+a.getYear()),t=t.replace("%m",n(a.getMonth()+1,2)),t=t.replace("%d",n(a.getDate(),2)),t=t.replace("%H",""+n(a.getHours(),2)),t=t.replace("%M",""+n(a.getMinutes(),2)),t=t.replace("%S",""+n(a.getSeconds(),2)),t=t.replace("%I",""+((a.getHours()+11)%12+1)),t=t.replace("%p",""+(a.getHours()<12?"AM":"PM")),t=t.replace("%B",""+e.translate(i[a.getMonth()])),t=t.replace("%b",""+e.translate(c[a.getMonth()])),t=t.replace("%A",""+e.translate(r[a.getDay()])),t=t.replace("%a",""+e.translate(l[a.getDay()])),t=t.replace("%%","%")}function l(t){var a=e.dom,n=e.getParam("template_replace_values");i(a.select("*",t),function(e){i(n,function(t,l){a.hasClass(e,l)&&"function"==typeof n[l]&&n[l](e)})})}function r(t,a){return i(e.getParam(a),function(e,a){"function"!=typeof e&&(t=t.replace(new RegExp("\\{\\$"+a+"\\}","g"),e))}),t}function c(t,a){function c(e,t){return new RegExp("\\b"+t+"\\b","g").test(e.className)}var o,s,p=e.dom,m=e.selection.getContent();a=r(a,"template_replace_values"),o=p.create("div",null,a),s=p.select(".mceTmpl",o),s&&s.length>0&&(o=p.create("div",null),o.appendChild(s[0].cloneNode(!0))),i(p.select("*",o),function(t){c(t,e.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))&&(t.innerHTML=n(e.getParam("template_cdate_format",e.getLang("template.cdate_format")))),c(t,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(t.innerHTML=n(e.getParam("template_mdate_format",e.getLang("template.mdate_format")))),c(t,e.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))&&(t.innerHTML=m)}),l(o),e.execCommand("mceInsertContent",!1,o.innerHTML),e.addVisual()}var i=tinymce.each;e.addCommand("mceInsertTemplate",c),e.addButton("template",{title:"Insert template",onclick:t(a)}),e.addMenuItem("template",{text:"Insert template",onclick:t(a),context:"insert"}),e.on("PreProcess",function(t){var a=e.dom;i(a.select("div",t.node),function(t){a.hasClass(t,"mceTmpl")&&(i(a.select("*",t),function(t){a.hasClass(t,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(t.innerHTML=n(e.getParam("template_mdate_format",e.getLang("template.mdate_format"))))}),l(t))})})});tinymce.PluginManager.add("textcolor",function(e){function t(){var t,o,l=[];for(o=e.settings.textcolor_map||["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Magenta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Red violet","C0C0C0","Silver","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum","FFFFFF","White"],t=0;t<o.length;t+=2)l.push({text:o[t+1],color:o[t]});return l}function o(){var o,l,r,a,c,i,n,F,d,s=this;for(o=t(),r='<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>',a=o.length-1,c=e.settings.textcolor_rows||5,i=e.settings.textcolor_cols||8,F=0;c>F;F++){for(r+="<tr>",n=0;i>n;n++)d=F*i+n,d>a?r+="<td></td>":(l=o[d],r+='<td><div id="'+s._id+"-"+d+'" data-mce-color="'+l.color+'" role="option" tabIndex="-1" style="'+(l?"background-color: #"+l.color:"")+'" title="'+l.text+'"></div></td>');r+="</tr>"}return r+="</tbody></table>"}function l(t){var o,l=this.parent();(o=t.target.getAttribute("data-mce-color"))&&(this.lastId&&document.getElementById(this.lastId).setAttribute("aria-selected",!1),t.target.setAttribute("aria-selected",!0),this.lastId=t.target.id,l.hidePanel(),o="#"+o,l.color(o),e.execCommand(l.settings.selectcmd,!1,o))}function r(){var t=this;t._color&&e.execCommand(t.settings.selectcmd,!1,t._color)}e.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",selectcmd:"ForeColor",panel:{role:"application",ariaRemember:!0,html:o,onclick:l},onclick:r}),e.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",selectcmd:"HiliteColor",panel:{role:"application",ariaRemember:!0,html:o,onclick:l},onclick:r})});tinymce.PluginManager.add("visualblocks",function(e,s){function o(){var s=this;s.active(a),e.on("VisualBlocks",function(){s.active(e.dom.hasClass(e.getBody(),"mce-visualblocks"))})}var l,t,a;window.NodeList&&(e.addCommand("mceVisualBlocks",function(){var o,c=e.dom;l||(l=c.uniqueId(),o=c.create("link",{id:l,rel:"stylesheet",href:s+"/css/visualblocks.css"}),e.getDoc().getElementsByTagName("head")[0].appendChild(o)),e.on("PreviewFormats AfterPreviewFormats",function(s){a&&c.toggleClass(e.getBody(),"mce-visualblocks","afterpreviewformats"==s.type)}),c.toggleClass(e.getBody(),"mce-visualblocks"),a=e.dom.hasClass(e.getBody(),"mce-visualblocks"),t&&t.active(c.hasClass(e.getBody(),"mce-visualblocks")),e.fire("VisualBlocks")}),e.addButton("visualblocks",{title:"Show blocks",cmd:"mceVisualBlocks",onPostRender:o}),e.addMenuItem("visualblocks",{text:"Show blocks",cmd:"mceVisualBlocks",onPostRender:o,selectable:!0,context:"view",prependToContext:!0}),e.on("init",function(){e.settings.visualblocks_default_state&&e.execCommand("mceVisualBlocks",!1,null,{skip_focus:!0})}),e.on("remove",function(){e.dom.removeClass(e.getBody(),"mce-visualblocks")}))});tinymce.PluginManager.add("visualchars",function(e){function a(a){var t,s,i,r,c,d,l=e.getBody(),m=e.selection;if(n=!n,o.state=n,e.fire("VisualChars",{state:n}),a&&(d=m.getBookmark()),n)for(s=[],tinymce.walk(l,function(e){3==e.nodeType&&e.nodeValue&&-1!=e.nodeValue.indexOf(" ")&&s.push(e)},"childNodes"),i=0;i<s.length;i++){for(r=s[i].nodeValue,r=r.replace(/(\u00a0)/g,'<span data-mce-bogus="1" class="mce-nbsp">$1</span>'),c=e.dom.create("div",null,r);t=c.lastChild;)e.dom.insertAfter(t,s[i]);e.dom.remove(s[i])}else for(s=e.dom.select("span.mce-nbsp",l),i=s.length-1;i>=0;i--)e.dom.remove(s[i],1);m.moveToBookmark(d)}function t(){var a=this;e.on("VisualChars",function(e){a.active(e.state)})}var n,o=this;e.addCommand("mceVisualChars",a),e.addButton("visualchars",{title:"Show invisible characters",cmd:"mceVisualChars",onPostRender:t}),e.addMenuItem("visualchars",{text:"Show invisible characters",cmd:"mceVisualChars",onPostRender:t,selectable:!0,context:"view",prependToContext:!0}),e.on("beforegetcontent",function(e){n&&"raw"!=e.format&&!e.draft&&(n=!0,a(!1))})});tinymce.PluginManager.add("wordcount",function(e){function t(){e.theme.panel.find("#wordcount").text(["Words: {0}",a.getCount()])}var n,o,a=this;n=e.getParam("wordcount_countregex",/[\w\u2019\x27\-\u00C0-\u1FFF]+/g),o=e.getParam("wordcount_cleanregex",/[0-9.(),;:!?%#$?\x27\x22_+=\\\/\-]*/g),e.on("init",function(){var n=e.theme.panel&&e.theme.panel.find("#statusbar")[0];n&&window.setTimeout(function(){n.insert({type:"label",name:"wordcount",text:["Words: {0}",a.getCount()],classes:"wordcount",disabled:e.settings.readonly},0),e.on("setcontent beforeaddundo",t),e.on("keyup",function(e){32==e.keyCode&&t()})},0)}),a.getCount=function(){var t=e.getContent({format:"raw"}),a=0;if(t){t=t.replace(/\.\.\./g," "),t=t.replace(/<.[^<>]*?>/g," ").replace(/&nbsp;|&#160;/gi," "),t=t.replace(/(\w+)(&#?[a-z0-9]+;)+(\w+)/i,"$1$3").replace(/&.+?;/g," "),t=t.replace(o,"");var r=t.match(n);r&&(a=r.length)}return a}});tinymce.ThemeManager.add("modern",function(e){function t(){function t(t){var n,o=[];if(t)return d(t.split(/[ ,]/),function(t){function i(){var i=e.selection;"bullist"==r&&i.selectorChanged("ul > li",function(e,i){for(var n,o=i.parents.length;o--&&(n=i.parents[o].nodeName,"OL"!=n&&"UL"!=n););t.active(e&&"UL"==n)}),"numlist"==r&&i.selectorChanged("ol > li",function(e,i){for(var n,o=i.parents.length;o--&&(n=i.parents[o].nodeName,"OL"!=n&&"UL"!=n););t.active(e&&"OL"==n)}),t.settings.stateSelector&&i.selectorChanged(t.settings.stateSelector,function(e){t.active(e)},!0),t.settings.disabledStateSelector&&i.selectorChanged(t.settings.disabledStateSelector,function(e){t.disabled(e)})}var r;"|"==t?n=null:c.has(t)?(t={type:t},u.toolbar_items_size&&(t.size=u.toolbar_items_size),o.push(t),n=null):(n||(n={type:"buttongroup",items:[]},o.push(n)),e.buttons[t]&&(r=t,t=e.buttons[r],"function"==typeof t&&(t=t()),t.type=t.type||"button",u.toolbar_items_size&&(t.size=u.toolbar_items_size),t=c.create(t),n.items.push(t),e.initialized?i():e.on("init",i)))}),i.push({type:"toolbar",layout:"flow",items:o}),!0}var i=[];if(tinymce.isArray(u.toolbar)){if(0===u.toolbar.length)return;tinymce.each(u.toolbar,function(e,t){u["toolbar"+(t+1)]=e}),delete u.toolbar}for(var n=1;10>n&&t(u["toolbar"+n]);n++);return i.length||u.toolbar===!1||t(u.toolbar||f),i.length?{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:i}:void 0}function i(){function t(t){var i;return"|"==t?{text:"|"}:i=e.menuItems[t]}function i(i){var n,o,r,a,s;if(s=tinymce.makeMap((u.removed_menuitems||"").split(/[ ,]/)),u.menu?(o=u.menu[i],a=!0):o=h[i],o){n={text:o.title},r=[],d((o.items||"").split(/[ ,]/),function(e){var i=t(e);i&&!s[e]&&r.push(t(e))}),a||d(e.menuItems,function(e){e.context==i&&("before"==e.separator&&r.push({text:"|"}),e.prependToContext?r.unshift(e):r.push(e),"after"==e.separator&&r.push({text:"|"}))});for(var l=0;l<r.length;l++)"|"==r[l].text&&(0===l||l==r.length-1)&&r.splice(l,1);if(n.menu=r,!n.menu.length)return null}return n}var n,o=[],r=[];if(u.menu)for(n in u.menu)r.push(n);else for(n in h)r.push(n);for(var a="string"==typeof u.menubar?u.menubar.split(/[ ,]/):r,s=0;s<a.length;s++){var l=a[s];l=i(l),l&&o.push(l)}return o}function n(t){function i(e){var i=t.find(e)[0];i&&i.focus(!0)}e.shortcuts.add("Alt+F9","",function(){i("menubar")}),e.shortcuts.add("Alt+F10","",function(){i("toolbar")}),e.shortcuts.add("Alt+F11","",function(){i("elementpath")}),t.on("cancel",function(){e.focus()})}function o(t,i){function n(e){return{width:e.clientWidth,height:e.clientHeight}}var o,r,a,s;o=e.getContainer(),r=e.getContentAreaContainer().firstChild,a=n(o),s=n(r),null!==t&&(t=Math.max(u.min_width||100,t),t=Math.min(u.max_width||65535,t),m.css(o,"width",t+(a.width-s.width)),m.css(r,"width",t)),i=Math.max(u.min_height||100,i),i=Math.min(u.max_height||65535,i),m.css(r,"height",i),e.fire("ResizeEditor")}function r(t,i){var n=e.getContentAreaContainer();l.resizeTo(n.clientWidth+t,n.clientHeight+i)}function a(o){function r(){if(h&&h.moveRel&&h.visible()&&!h._fixed){var t=e.selection.getScrollContainer(),i=e.getBody(),n=0,o=0;if(t){var r=m.getPos(i),a=m.getPos(t);n=Math.max(0,a.x-r.x),o=Math.max(0,a.y-r.y)}h.fixed(!1).moveRel(i,e.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl"]).moveBy(n,o)}}function a(){h&&(h.show(),r(),m.addClass(e.getBody(),"mce-edit-focus"))}function s(){h&&(h.hide(),m.removeClass(e.getBody(),"mce-edit-focus"))}function d(){return h?void(h.visible()||a()):(h=l.panel=c.create({type:f?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!!f,border:1,items:[u.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:i()},t()]}),e.fire("BeforeRenderUI"),h.renderTo(f||document.body).reflow(),n(h),a(),e.on("nodeChange",r),e.on("activate",a),e.on("deactivate",s),void e.nodeChanged())}var h,f;return u.fixed_toolbar_container&&(f=m.select(u.fixed_toolbar_container)[0]),u.content_editable=!0,e.on("focus",function(){o.skinUiCss?tinymce.DOM.styleSheetLoader.load(o.skinUiCss,d,d):d()}),e.on("blur hide",s),e.on("remove",function(){h&&(h.remove(),h=null)}),o.skinUiCss&&tinymce.DOM.styleSheetLoader.load(o.skinUiCss),{}}function s(r){var a,s,d;return r.skinUiCss&&tinymce.DOM.loadCSS(r.skinUiCss),a=l.panel=c.create({type:"panel",role:"application",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[u.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:i()},t(),{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",html:"",border:"1 0 0 0"}]}),u.resize!==!1&&(s={type:"resizehandle",direction:u.resize,onResizeStart:function(){var t=e.getContentAreaContainer().firstChild;d={width:t.clientWidth,height:t.clientHeight}},onResize:function(e){"both"==u.resize?o(d.width+e.deltaX,d.height+e.deltaY):o(null,d.height+e.deltaY)}}),u.statusbar!==!1&&a.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath"},s]}),u.readonly&&a.find("*").disabled(!0),e.fire("BeforeRenderUI"),a.renderBefore(r.targetNode).reflow(),u.width&&tinymce.DOM.setStyle(a.getEl(),"width",u.width),e.on("remove",function(){a.remove(),a=null}),n(a),{iframeContainer:a.find("#iframe")[0].getEl(),editorContainer:a.getEl()}}var l=this,u=e.settings,c=tinymce.ui.Factory,d=tinymce.each,m=tinymce.DOM,h={file:{title:"File",items:"newdocument"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall"},insert:{title:"Insert",items:"|"},view:{title:"View",items:"visualaid |"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript | formats | removeformat"},table:{title:"Table"},tools:{title:"Tools"}},f="undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image";l.renderUI=function(t){var i=u.skin!==!1?u.skin||"lightgray":!1;if(i){var n=u.skin_url;n=n?e.documentBaseURI.toAbsolute(n):tinymce.baseURL+"/skins/"+i,t.skinUiCss=tinymce.Env.documentMode<=7?n+"/skin.ie7.min.css":n+"/skin.min.css",e.contentCSS.push(n+"/content"+(e.inline?".inline":"")+".min.css")}return e.on("ProgressState",function(e){l.throbber=l.throbber||new tinymce.ui.Throbber(l.panel.getEl("body")),e.state?l.throbber.show(e.time):l.throbber.hide()}),u.inline?a(t):s(t)},l.resizeTo=o,l.resizeBy=r}); \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/key_tests/remove_on_keypress.html b/node_modules/selenium-webdriver/lib/test/data/key_tests/remove_on_keypress.html
deleted file mode 100644
index c0f3aab4c..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/key_tests/remove_on_keypress.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html>
-<div><input id="target" type="checkbox">Pressing "a" while this checkbox is
- focused will remove it from the DOM.</div>
-<div><textarea id="log" style="width:250px; height:250px;"></textarea></div>
-<div><button id="clear">Clear log</button></div>
-<script>
- function removeNode(node) {
- if (node && node.parentNode) {
- node.parentNode.removeChild(node);
- }
- }
-
- function log(msg) {
- document.getElementById('log').value += msg + '\n';
- }
-
- document.body.onkeyup = function() {
- log('keyup (body)');
- };
-
- document.getElementById('clear').onclick = function() {
- document.getElementById('log').value = '';
- };
-
- var target = document.getElementById('target');
- target.onkeydown = function() { log('keydown (target)'); };
- target.onkeypress = function(e) {
- e = e || window.event;
- var k = e.keyCode || e.which;
- if (k == 97) {
- log('a pressed; removing');
- removeNode(target.parentNode);
- }
- };
- target.onkeyup = function() { log('keyup (target)'); };
-</script>
diff --git a/node_modules/selenium-webdriver/lib/test/data/keyboard_shortcut.html b/node_modules/selenium-webdriver/lib/test/data/keyboard_shortcut.html
deleted file mode 100644
index 741d7f4b8..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/keyboard_shortcut.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html>
-<body style="background: white">
-<div style="background: red">CTRL + 1: red</div>
-<div style="background: green">SHIFT + 1: green</div>
-<div style="background: yellow">CTRL + SHIFT + 1: yellow</div>
-<div style="background: lightblue">ALT + 1: lightblue</div>
-<div style="background: lightgreen">CTRL + ALT + 1: lightgreen</div>
-<div style="background: silver">SHIFT + ALT + 1: silver</div>
-<div style="background: magenta">CTRL + SHIFT + ALT + 1: magenta</div>
-<script>
- var colors = {};
- colors[0x001] = 'red';
- colors[0x010] = 'green';
- colors[0x011] = 'yellow';
- colors[0x100] = 'lightblue';
- colors[0x101] = 'lightgreen';
- colors[0x110] = 'silver';
- colors[0x111] = 'magenta';
-
- document.onkeydown = function(e) {
- if (e.keyCode != 49) return;
- var mask = 0;
- if (e.ctrlKey) mask |= 0x001;
- if (e.shiftKey) mask |= 0x010;
- if (e.altKey) mask |= 0x100;
-
- console.log(mask);
- if (mask) {
- document.body.style.backgroundColor = colors[mask];
- }
-
- e.preventDefault();
- e.stopPropagation();
- return false;
- };
-</script>
diff --git a/node_modules/selenium-webdriver/lib/test/data/linked_image.html b/node_modules/selenium-webdriver/lib/test/data/linked_image.html
deleted file mode 100644
index 7c8df0031..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/linked_image.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html">
-<title>Linking with an image</title>
-</head>
-<body>
-<img style="width: 644px; height: 41px;" alt="banner" src="banner.gif"><br>
-<a id="link" href="./resultPage.html">Click here for next page</a><br>
-<a id="linkWithEnclosedImage" href="./resultPage.html"><img id="enclosedImage" src="./banner.gif"></a><br/>
-<a id="linkToAnchorOnThisPage" href="#link">link to other link</a><br/>
-<a id="justanotherLink" href="./resultPage.html">Just another link.</a><br/>
-<a id="linkWithExtraEnclosedImage" href="./resultPage.html"><div><img id="extraEnclosedImage" src="./banner.gif"></div></a><br/>
-</body>
-
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/locators_tests/boolean_attribute_selected.html b/node_modules/selenium-webdriver/lib/test/data/locators_tests/boolean_attribute_selected.html
deleted file mode 100644
index 42b0442b0..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/locators_tests/boolean_attribute_selected.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
- <title>Boolean Attribute Selected</title>
-</head>
-<body>
-<form method="get" action="#" name="myForm">
- <select name="myDropdown">
- <option value="one">One</option>
- <option selected="selected" value="two">Two</option>
- <option value="four">Four</option>
- </select>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/locators_tests/boolean_attribute_selected_html4.html b/node_modules/selenium-webdriver/lib/test/data/locators_tests/boolean_attribute_selected_html4.html
deleted file mode 100644
index 60cd03381..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/locators_tests/boolean_attribute_selected_html4.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
- <title>Boolean Attribute Selected</title>
-</head>
-<body>
-<form method="get" action="#" name="myForm">
- <select name="myDropdown">
- <option value="one">One</option>
- <option selected value="two">Two</option>
- <option value="four">Four</option>
- </select>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/longContentPage.html b/node_modules/selenium-webdriver/lib/test/data/longContentPage.html
deleted file mode 100644
index 99a45e773..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/longContentPage.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<html>
-<head>
- <title>TouchLongContent</title>
-</head>
-
-<body>
- <h1>Touch API</h1>
- <h2>Page with long content</h2>
- <pre> <a id="imagestart"><img src="icon.gif"></a></pre></br></br></br>
- <p><pre>Long text: This is a very long text to make the screen horizontally movable, to test the flick gesture at a long horizontal distance <a href="xhtmlTest.html" id="link1">Normal link</a> at normal and fast speeds to see results of it <a href="xhtmlTest.html" id="link2">Normal link end</a></pre></p>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- Middle of the screen <a href="xhtmlTest.html" id="link3">Normal link</a>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- </br></br></br></br></br></br></br></br></br></br></br>
- Bottom of the screen <a href="xhtmlTest.html" id="link4">Normal link</a></br></br></br>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/macbeth.html b/node_modules/selenium-webdriver/lib/test/data/macbeth.html
deleted file mode 100644
index 9fa39d566..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/macbeth.html
+++ /dev/null
@@ -1,5255 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
- <html>
- <head>
- <title>Macbeth: Entire Play
- </title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- </HEAD>
- <body bgcolor="#ffffff" text="#000000">
-
- <!-- Originally from http://shakespeare.mit.edu/macbeth/full.html -->
-
-<a href="#5.8.86">Quick link to last speech</a>
-
-<H3>ACT I</h3>
-<h3>SCENE I. A desert place.</h3>
-<p><blockquote>
-<i>Thunder and lightning. Enter three Witches</i>
-</blockquote>
-
-<A NAME=speech1><b>First Witch</b></a>
-<blockquote>
-<A NAME=1.1.1>When shall we three meet again</A><br>
-<A NAME=1.1.2>In thunder, lightning, or in rain?</A><br>
-</blockquote>
-
-<A NAME=speech2><b>Second Witch</b></a>
-<blockquote>
-<A NAME=1.1.3>When the hurlyburly's done,</A><br>
-<A NAME=1.1.4>When the battle's lost and won.</A><br>
-</blockquote>
-
-<A NAME=speech3><b>Third Witch</b></a>
-<blockquote>
-<A NAME=1.1.5>That will be ere the set of sun.</A><br>
-</blockquote>
-
-<A NAME=speech4><b>First Witch</b></a>
-<blockquote>
-<A NAME=1.1.6>Where the place?</A><br>
-</blockquote>
-
-<A NAME=speech5><b>Second Witch</b></a>
-<blockquote>
-<A NAME=1.1.7> Upon the heath.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>Third Witch</b></a>
-<blockquote>
-<A NAME=1.1.8>There to meet with Macbeth.</A><br>
-</blockquote>
-
-<A NAME=speech7><b>First Witch</b></a>
-<blockquote>
-<A NAME=1.1.9>I come, Graymalkin!</A><br>
-</blockquote>
-
-<A NAME=speech8><b>Second Witch</b></a>
-<blockquote>
-<A NAME=1.1.10>Paddock calls.</A><br>
-</blockquote>
-
-<A NAME=speech9><b>Third Witch</b></a>
-<blockquote>
-<A NAME=1.1.11>Anon.</A><br>
-</blockquote>
-
-<A NAME=speech10><b>ALL</b></a>
-<blockquote>
-<A NAME=1.1.12>Fair is foul, and foul is fair:</A><br>
-<A NAME=1.1.13>Hover through the fog and filthy air.</A><br>
-<p><i>Exeunt</i></p>
-</blockquote>
-<h3>SCENE II. A camp near Forres.</h3>
-<p><blockquote>
-<i>Alarum within. Enter DUNCAN, MALCOLM, DONALBAIN, LENNOX, with Attendants, meeting a bleeding Sergeant</i>
-</blockquote>
-
-<A NAME=speech1><b>DUNCAN</b></a>
-<blockquote>
-<A NAME=1.2.1>What bloody man is that? He can report,</A><br>
-<A NAME=1.2.2>As seemeth by his plight, of the revolt</A><br>
-<A NAME=1.2.3>The newest state.</A><br>
-</blockquote>
-
-<A NAME=speech2><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=1.2.4> This is the sergeant</A><br>
-<A NAME=1.2.5>Who like a good and hardy soldier fought</A><br>
-<A NAME=1.2.6>'Gainst my captivity. Hail, brave friend!</A><br>
-<A NAME=1.2.7>Say to the king the knowledge of the broil</A><br>
-<A NAME=1.2.8>As thou didst leave it.</A><br>
-</blockquote>
-
-<A NAME=speech3><b>Sergeant</b></a>
-<blockquote>
-<A NAME=1.2.9>Doubtful it stood;</A><br>
-<A NAME=1.2.10>As two spent swimmers, that do cling together</A><br>
-<A NAME=1.2.11>And choke their art. The merciless Macdonwald--</A><br>
-<A NAME=1.2.12>Worthy to be a rebel, for to that</A><br>
-<A NAME=1.2.13>The multiplying villanies of nature</A><br>
-<A NAME=1.2.14>Do swarm upon him--from the western isles</A><br>
-<A NAME=1.2.15>Of kerns and gallowglasses is supplied;</A><br>
-<A NAME=1.2.16>And fortune, on his damned quarrel smiling,</A><br>
-<A NAME=1.2.17>Show'd like a rebel's whore: but all's too weak:</A><br>
-<A NAME=1.2.18>For brave Macbeth--well he deserves that name--</A><br>
-<A NAME=1.2.19>Disdaining fortune, with his brandish'd steel,</A><br>
-<A NAME=1.2.20>Which smoked with bloody execution,</A><br>
-<A NAME=1.2.21>Like valour's minion carved out his passage</A><br>
-<A NAME=1.2.22>Till he faced the slave;</A><br>
-<A NAME=1.2.23>Which ne'er shook hands, nor bade farewell to him,</A><br>
-<A NAME=1.2.24>Till he unseam'd him from the nave to the chaps,</A><br>
-<A NAME=1.2.25>And fix'd his head upon our battlements.</A><br>
-</blockquote>
-
-<A NAME=speech4><b>DUNCAN</b></a>
-<blockquote>
-<A NAME=1.2.26>O valiant cousin! worthy gentleman!</A><br>
-</blockquote>
-
-<A NAME=speech5><b>Sergeant</b></a>
-<blockquote>
-<A NAME=1.2.27>As whence the sun 'gins his reflection</A><br>
-<A NAME=1.2.28>Shipwrecking storms and direful thunders break,</A><br>
-<A NAME=1.2.29>So from that spring whence comfort seem'd to come</A><br>
-<A NAME=1.2.30>Discomfort swells. Mark, king of Scotland, mark:</A><br>
-<A NAME=1.2.31>No sooner justice had with valour arm'd</A><br>
-<A NAME=1.2.32>Compell'd these skipping kerns to trust their heels,</A><br>
-<A NAME=1.2.33>But the Norweyan lord surveying vantage,</A><br>
-<A NAME=1.2.34>With furbish'd arms and new supplies of men</A><br>
-<A NAME=1.2.35>Began a fresh assault.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>DUNCAN</b></a>
-<blockquote>
-<A NAME=1.2.36>Dismay'd not this</A><br>
-<A NAME=1.2.37>Our captains, Macbeth and Banquo?</A><br>
-</blockquote>
-
-<A NAME=speech7><b>Sergeant</b></a>
-<blockquote>
-<A NAME=1.2.38>Yes;</A><br>
-<A NAME=1.2.39>As sparrows eagles, or the hare the lion.</A><br>
-<A NAME=1.2.40>If I say sooth, I must report they were</A><br>
-<A NAME=1.2.41>As cannons overcharged with double cracks, so they</A><br>
-<A NAME=1.2.42>Doubly redoubled strokes upon the foe:</A><br>
-<A NAME=1.2.43>Except they meant to bathe in reeking wounds,</A><br>
-<A NAME=1.2.44>Or memorise another Golgotha,</A><br>
-<A NAME=1.2.45>I cannot tell.</A><br>
-<A NAME=1.2.46>But I am faint, my gashes cry for help.</A><br>
-</blockquote>
-
-<A NAME=speech8><b>DUNCAN</b></a>
-<blockquote>
-<A NAME=1.2.47>So well thy words become thee as thy wounds;</A><br>
-<A NAME=1.2.48>They smack of honour both. Go get him surgeons.</A><br>
-<p><i>Exit Sergeant, attended</i></p>
-<A NAME=1.2.49>Who comes here?</A><br>
-<p><i>Enter ROSS</i></p>
-</blockquote>
-
-<A NAME=speech9><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=1.2.50> The worthy thane of Ross.</A><br>
-</blockquote>
-
-<A NAME=speech10><b>LENNOX</b></a>
-<blockquote>
-<A NAME=1.2.51>What a haste looks through his eyes! So should he look</A><br>
-<A NAME=1.2.52>That seems to speak things strange.</A><br>
-</blockquote>
-
-<A NAME=speech11><b>ROSS</b></a>
-<blockquote>
-<A NAME=1.2.53>God save the king!</A><br>
-</blockquote>
-
-<A NAME=speech12><b>DUNCAN</b></a>
-<blockquote>
-<A NAME=1.2.54>Whence camest thou, worthy thane?</A><br>
-</blockquote>
-
-<A NAME=speech13><b>ROSS</b></a>
-<blockquote>
-<A NAME=1.2.55>From Fife, great king;</A><br>
-<A NAME=1.2.56>Where the Norweyan banners flout the sky</A><br>
-<A NAME=1.2.57>And fan our people cold. Norway himself,</A><br>
-<A NAME=1.2.58>With terrible numbers,</A><br>
-<A NAME=1.2.59>Assisted by that most disloyal traitor</A><br>
-<A NAME=1.2.60>The thane of Cawdor, began a dismal conflict;</A><br>
-<A NAME=1.2.61>Till that Bellona's bridegroom, lapp'd in proof,</A><br>
-<A NAME=1.2.62>Confronted him with self-comparisons,</A><br>
-<A NAME=1.2.63>Point against point rebellious, arm 'gainst arm.</A><br>
-<A NAME=1.2.64>Curbing his lavish spirit: and, to conclude,</A><br>
-<A NAME=1.2.65>The victory fell on us.</A><br>
-</blockquote>
-
-<A NAME=speech14><b>DUNCAN</b></a>
-<blockquote>
-<A NAME=1.2.66>Great happiness!</A><br>
-</blockquote>
-
-<A NAME=speech15><b>ROSS</b></a>
-<blockquote>
-<A NAME=1.2.67>That now</A><br>
-<A NAME=1.2.68>Sweno, the Norways' king, craves composition:</A><br>
-<A NAME=1.2.69>Nor would we deign him burial of his men</A><br>
-<A NAME=1.2.70>Till he disbursed at Saint Colme's inch</A><br>
-<A NAME=1.2.71>Ten thousand dollars to our general use.</A><br>
-</blockquote>
-
-<A NAME=speech16><b>DUNCAN</b></a>
-<blockquote>
-<A NAME=1.2.72>No more that thane of Cawdor shall deceive</A><br>
-<A NAME=1.2.73>Our bosom interest: go pronounce his present death,</A><br>
-<A NAME=1.2.74>And with his former title greet Macbeth.</A><br>
-</blockquote>
-
-<A NAME=speech17><b>ROSS</b></a>
-<blockquote>
-<A NAME=1.2.75>I'll see it done.</A><br>
-</blockquote>
-
-<A NAME=speech18><b>DUNCAN</b></a>
-<blockquote>
-<A NAME=1.2.76>What he hath lost noble Macbeth hath won.</A><br>
-<p><i>Exeunt</i></p>
-</blockquote>
-<h3>SCENE III. A heath near Forres.</h3>
-<p><blockquote>
-<i>Thunder. Enter the three Witches</i>
-</blockquote>
-
-<A NAME=speech1><b>First Witch</b></a>
-<blockquote>
-<A NAME=1.3.1>Where hast thou been, sister?</A><br>
-</blockquote>
-
-<A NAME=speech2><b>Second Witch</b></a>
-<blockquote>
-<A NAME=1.3.2>Killing swine.</A><br>
-</blockquote>
-
-<A NAME=speech3><b>Third Witch</b></a>
-<blockquote>
-<A NAME=1.3.3>Sister, where thou?</A><br>
-</blockquote>
-
-<A NAME=speech4><b>First Witch</b></a>
-<blockquote>
-<A NAME=1.3.4>A sailor's wife had chestnuts in her lap,</A><br>
-<A NAME=1.3.5>And munch'd, and munch'd, and munch'd:--</A><br>
-<A NAME=1.3.6>'Give me,' quoth I:</A><br>
-<A NAME=1.3.7>'Aroint thee, witch!' the rump-fed ronyon cries.</A><br>
-<A NAME=1.3.8>Her husband's to Aleppo gone, master o' the Tiger:</A><br>
-<A NAME=1.3.9>But in a sieve I'll thither sail,</A><br>
-<A NAME=1.3.10>And, like a rat without a tail,</A><br>
-<A NAME=1.3.11>I'll do, I'll do, and I'll do.</A><br>
-</blockquote>
-
-<A NAME=speech5><b>Second Witch</b></a>
-<blockquote>
-<A NAME=1.3.12>I'll give thee a wind.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>First Witch</b></a>
-<blockquote>
-<A NAME=1.3.13>Thou'rt kind.</A><br>
-</blockquote>
-
-<A NAME=speech7><b>Third Witch</b></a>
-<blockquote>
-<A NAME=1.3.14>And I another.</A><br>
-</blockquote>
-
-<A NAME=speech8><b>First Witch</b></a>
-<blockquote>
-<A NAME=1.3.15>I myself have all the other,</A><br>
-<A NAME=1.3.16>And the very ports they blow,</A><br>
-<A NAME=1.3.17>All the quarters that they know</A><br>
-<A NAME=1.3.18>I' the shipman's card.</A><br>
-<A NAME=1.3.19>I will drain him dry as hay:</A><br>
-<A NAME=1.3.20>Sleep shall neither night nor day</A><br>
-<A NAME=1.3.21>Hang upon his pent-house lid;</A><br>
-<A NAME=1.3.22>He shall live a man forbid:</A><br>
-<A NAME=1.3.23>Weary se'nnights nine times nine</A><br>
-<A NAME=1.3.24>Shall he dwindle, peak and pine:</A><br>
-<A NAME=1.3.25>Though his bark cannot be lost,</A><br>
-<A NAME=1.3.26>Yet it shall be tempest-tost.</A><br>
-<A NAME=1.3.27>Look what I have.</A><br>
-</blockquote>
-
-<A NAME=speech9><b>Second Witch</b></a>
-<blockquote>
-<A NAME=1.3.28>Show me, show me.</A><br>
-</blockquote>
-
-<A NAME=speech10><b>First Witch</b></a>
-<blockquote>
-<A NAME=1.3.29>Here I have a pilot's thumb,</A><br>
-<A NAME=1.3.30>Wreck'd as homeward he did come.</A><br>
-<p><i>Drum within</i></p>
-</blockquote>
-
-<A NAME=speech11><b>Third Witch</b></a>
-<blockquote>
-<A NAME=1.3.31>A drum, a drum!</A><br>
-<A NAME=1.3.32>Macbeth doth come.</A><br>
-</blockquote>
-
-<A NAME=speech12><b>ALL</b></a>
-<blockquote>
-<A NAME=1.3.33>The weird sisters, hand in hand,</A><br>
-<A NAME=1.3.34>Posters of the sea and land,</A><br>
-<A NAME=1.3.35>Thus do go about, about:</A><br>
-<A NAME=1.3.36>Thrice to thine and thrice to mine</A><br>
-<A NAME=1.3.37>And thrice again, to make up nine.</A><br>
-<A NAME=1.3.38>Peace! the charm's wound up.</A><br>
-<p><i>Enter MACBETH and BANQUO</i></p>
-</blockquote>
-
-<A NAME=speech13><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.3.39>So foul and fair a day I have not seen.</A><br>
-</blockquote>
-
-<A NAME=speech14><b>BANQUO</b></a>
-<blockquote>
-<A NAME=1.3.40>How far is't call'd to Forres? What are these</A><br>
-<A NAME=1.3.41>So wither'd and so wild in their attire,</A><br>
-<A NAME=1.3.42>That look not like the inhabitants o' the earth,</A><br>
-<A NAME=1.3.43>And yet are on't? Live you? or are you aught</A><br>
-<A NAME=1.3.44>That man may question? You seem to understand me,</A><br>
-<A NAME=1.3.45>By each at once her chappy finger laying</A><br>
-<A NAME=1.3.46>Upon her skinny lips: you should be women,</A><br>
-<A NAME=1.3.47>And yet your beards forbid me to interpret</A><br>
-<A NAME=1.3.48>That you are so.</A><br>
-</blockquote>
-
-<A NAME=speech15><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.3.49> Speak, if you can: what are you?</A><br>
-</blockquote>
-
-<A NAME=speech16><b>First Witch</b></a>
-<blockquote>
-<A NAME=1.3.50>All hail, Macbeth! hail to thee, thane of Glamis!</A><br>
-</blockquote>
-
-<A NAME=speech17><b>Second Witch</b></a>
-<blockquote>
-<A NAME=1.3.51>All hail, Macbeth, hail to thee, thane of Cawdor!</A><br>
-</blockquote>
-
-<A NAME=speech18><b>Third Witch</b></a>
-<blockquote>
-<A NAME=1.3.52>All hail, Macbeth, thou shalt be king hereafter!</A><br>
-</blockquote>
-
-<A NAME=speech19><b>BANQUO</b></a>
-<blockquote>
-<A NAME=1.3.53>Good sir, why do you start; and seem to fear</A><br>
-<A NAME=1.3.54>Things that do sound so fair? I' the name of truth,</A><br>
-<A NAME=1.3.55>Are ye fantastical, or that indeed</A><br>
-<A NAME=1.3.56>Which outwardly ye show? My noble partner</A><br>
-<A NAME=1.3.57>You greet with present grace and great prediction</A><br>
-<A NAME=1.3.58>Of noble having and of royal hope,</A><br>
-<A NAME=1.3.59>That he seems rapt withal: to me you speak not.</A><br>
-<A NAME=1.3.60>If you can look into the seeds of time,</A><br>
-<A NAME=1.3.61>And say which grain will grow and which will not,</A><br>
-<A NAME=1.3.62>Speak then to me, who neither beg nor fear</A><br>
-<A NAME=1.3.63>Your favours nor your hate.</A><br>
-</blockquote>
-
-<A NAME=speech20><b>First Witch</b></a>
-<blockquote>
-<A NAME=1.3.64>Hail!</A><br>
-</blockquote>
-
-<A NAME=speech21><b>Second Witch</b></a>
-<blockquote>
-<A NAME=1.3.65>Hail!</A><br>
-</blockquote>
-
-<A NAME=speech22><b>Third Witch</b></a>
-<blockquote>
-<A NAME=1.3.66>Hail!</A><br>
-</blockquote>
-
-<A NAME=speech23><b>First Witch</b></a>
-<blockquote>
-<A NAME=1.3.67>Lesser than Macbeth, and greater.</A><br>
-</blockquote>
-
-<A NAME=speech24><b>Second Witch</b></a>
-<blockquote>
-<A NAME=1.3.68>Not so happy, yet much happier.</A><br>
-</blockquote>
-
-<A NAME=speech25><b>Third Witch</b></a>
-<blockquote>
-<A NAME=1.3.69>Thou shalt get kings, though thou be none:</A><br>
-<A NAME=1.3.70>So all hail, Macbeth and Banquo!</A><br>
-</blockquote>
-
-<A NAME=speech26><b>First Witch</b></a>
-<blockquote>
-<A NAME=1.3.71>Banquo and Macbeth, all hail!</A><br>
-</blockquote>
-
-<A NAME=speech27><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.3.72>Stay, you imperfect speakers, tell me more:</A><br>
-<A NAME=1.3.73>By Sinel's death I know I am thane of Glamis;</A><br>
-<A NAME=1.3.74>But how of Cawdor? the thane of Cawdor lives,</A><br>
-<A NAME=1.3.75>A prosperous gentleman; and to be king</A><br>
-<A NAME=1.3.76>Stands not within the prospect of belief,</A><br>
-<A NAME=1.3.77>No more than to be Cawdor. Say from whence</A><br>
-<A NAME=1.3.78>You owe this strange intelligence? or why</A><br>
-<A NAME=1.3.79>Upon this blasted heath you stop our way</A><br>
-<A NAME=1.3.80>With such prophetic greeting? Speak, I charge you.</A><br>
-<p><i>Witches vanish</i></p>
-</blockquote>
-
-<A NAME=speech28><b>BANQUO</b></a>
-<blockquote>
-<A NAME=1.3.81>The earth hath bubbles, as the water has,</A><br>
-<A NAME=1.3.82>And these are of them. Whither are they vanish'd?</A><br>
-</blockquote>
-
-<A NAME=speech29><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.3.83>Into the air; and what seem'd corporal melted</A><br>
-<A NAME=1.3.84>As breath into the wind. Would they had stay'd!</A><br>
-</blockquote>
-
-<A NAME=speech30><b>BANQUO</b></a>
-<blockquote>
-<A NAME=1.3.85>Were such things here as we do speak about?</A><br>
-<A NAME=1.3.86>Or have we eaten on the insane root</A><br>
-<A NAME=1.3.87>That takes the reason prisoner?</A><br>
-</blockquote>
-
-<A NAME=speech31><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.3.88>Your children shall be kings.</A><br>
-</blockquote>
-
-<A NAME=speech32><b>BANQUO</b></a>
-<blockquote>
-<A NAME=1.3.89>You shall be king.</A><br>
-</blockquote>
-
-<A NAME=speech33><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.3.90>And thane of Cawdor too: went it not so?</A><br>
-</blockquote>
-
-<A NAME=speech34><b>BANQUO</b></a>
-<blockquote>
-<A NAME=1.3.91>To the selfsame tune and words. Who's here?</A><br>
-<p><i>Enter ROSS and ANGUS</i></p>
-</blockquote>
-
-<A NAME=speech35><b>ROSS</b></a>
-<blockquote>
-<A NAME=1.3.92>The king hath happily received, Macbeth,</A><br>
-<A NAME=1.3.93>The news of thy success; and when he reads</A><br>
-<A NAME=1.3.94>Thy personal venture in the rebels' fight,</A><br>
-<A NAME=1.3.95>His wonders and his praises do contend</A><br>
-<A NAME=1.3.96>Which should be thine or his: silenced with that,</A><br>
-<A NAME=1.3.97>In viewing o'er the rest o' the selfsame day,</A><br>
-<A NAME=1.3.98>He finds thee in the stout Norweyan ranks,</A><br>
-<A NAME=1.3.99>Nothing afeard of what thyself didst make,</A><br>
-<A NAME=1.3.100>Strange images of death. As thick as hail</A><br>
-<A NAME=1.3.101>Came post with post; and every one did bear</A><br>
-<A NAME=1.3.102>Thy praises in his kingdom's great defence,</A><br>
-<A NAME=1.3.103>And pour'd them down before him.</A><br>
-</blockquote>
-
-<A NAME=speech36><b>ANGUS</b></a>
-<blockquote>
-<A NAME=1.3.104>We are sent</A><br>
-<A NAME=1.3.105>To give thee from our royal master thanks;</A><br>
-<A NAME=1.3.106>Only to herald thee into his sight,</A><br>
-<A NAME=1.3.107>Not pay thee.</A><br>
-</blockquote>
-
-<A NAME=speech37><b>ROSS</b></a>
-<blockquote>
-<A NAME=1.3.108>And, for an earnest of a greater honour,</A><br>
-<A NAME=1.3.109>He bade me, from him, call thee thane of Cawdor:</A><br>
-<A NAME=1.3.110>In which addition, hail, most worthy thane!</A><br>
-<A NAME=1.3.111>For it is thine.</A><br>
-</blockquote>
-
-<A NAME=speech38><b>BANQUO</b></a>
-<blockquote>
-<A NAME=1.3.112> What, can the devil speak true?</A><br>
-</blockquote>
-
-<A NAME=speech39><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.3.113>The thane of Cawdor lives: why do you dress me</A><br>
-<A NAME=1.3.114>In borrow'd robes?</A><br>
-</blockquote>
-
-<A NAME=speech40><b>ANGUS</b></a>
-<blockquote>
-<A NAME=1.3.115> Who was the thane lives yet;</A><br>
-<A NAME=1.3.116>But under heavy judgment bears that life</A><br>
-<A NAME=1.3.117>Which he deserves to lose. Whether he was combined</A><br>
-<A NAME=1.3.118>With those of Norway, or did line the rebel</A><br>
-<A NAME=1.3.119>With hidden help and vantage, or that with both</A><br>
-<A NAME=1.3.120>He labour'd in his country's wreck, I know not;</A><br>
-<A NAME=1.3.121>But treasons capital, confess'd and proved,</A><br>
-<A NAME=1.3.122>Have overthrown him.</A><br>
-</blockquote>
-
-<A NAME=speech41><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.3.123>[Aside] Glamis, and thane of Cawdor!</A><br>
-<A NAME=1.3.124>The greatest is behind.</A><br>
-<p><i>To ROSS and ANGUS</i></p>
-<A NAME=1.3.125>Thanks for your pains.</A><br>
-<p><i>To BANQUO</i></p>
-<A NAME=1.3.126>Do you not hope your children shall be kings,</A><br>
-<A NAME=1.3.127>When those that gave the thane of Cawdor to me</A><br>
-<A NAME=1.3.128>Promised no less to them?</A><br>
-</blockquote>
-
-<A NAME=speech42><b>BANQUO</b></a>
-<blockquote>
-<A NAME=1.3.129>That trusted home</A><br>
-<A NAME=1.3.130>Might yet enkindle you unto the crown,</A><br>
-<A NAME=1.3.131>Besides the thane of Cawdor. But 'tis strange:</A><br>
-<A NAME=1.3.132>And oftentimes, to win us to our harm,</A><br>
-<A NAME=1.3.133>The instruments of darkness tell us truths,</A><br>
-<A NAME=1.3.134>Win us with honest trifles, to betray's</A><br>
-<A NAME=1.3.135>In deepest consequence.</A><br>
-<A NAME=1.3.136>Cousins, a word, I pray you.</A><br>
-</blockquote>
-
-<A NAME=speech43><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.3.137>[Aside] Two truths are told,</A><br>
-<A NAME=1.3.138>As happy prologues to the swelling act</A><br>
-<A NAME=1.3.139>Of the imperial theme.--I thank you, gentlemen.</A><br>
-<p><i>Aside</i></p>
-<A NAME=1.3.140>Cannot be ill, cannot be good: if ill,</A><br>
-<A NAME=1.3.141>Why hath it given me earnest of success,</A><br>
-<A NAME=1.3.142>Commencing in a truth? I am thane of Cawdor:</A><br>
-<A NAME=1.3.143>If good, why do I yield to that suggestion</A><br>
-<A NAME=1.3.144>Whose horrid image doth unfix my hair</A><br>
-<A NAME=1.3.145>And make my seated heart knock at my ribs,</A><br>
-<A NAME=1.3.146>Against the use of nature? Present fears</A><br>
-<A NAME=1.3.147>Are less than horrible imaginings:</A><br>
-<A NAME=1.3.148>My thought, whose murder yet is but fantastical,</A><br>
-<A NAME=1.3.149>Shakes so my single state of man that function</A><br>
-<A NAME=1.3.150>Is smother'd in surmise, and nothing is</A><br>
-<A NAME=1.3.151>But what is not.</A><br>
-</blockquote>
-
-<A NAME=speech44><b>BANQUO</b></a>
-<blockquote>
-<A NAME=1.3.152> Look, how our partner's rapt.</A><br>
-</blockquote>
-
-<A NAME=speech45><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.3.153>[Aside] If chance will have me king, why, chance may crown me,</A><br>
-<A NAME=1.3.154>Without my stir.</A><br>
-</blockquote>
-
-<A NAME=speech46><b>BANQUO</b></a>
-<blockquote>
-<A NAME=1.3.155> New horrors come upon him,</A><br>
-<A NAME=1.3.156>Like our strange garments, cleave not to their mould</A><br>
-<A NAME=1.3.157>But with the aid of use.</A><br>
-</blockquote>
-
-<A NAME=speech47><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.3.158>[Aside] Come what come may,</A><br>
-<A NAME=1.3.159>Time and the hour runs through the roughest day.</A><br>
-</blockquote>
-
-<A NAME=speech48><b>BANQUO</b></a>
-<blockquote>
-<A NAME=1.3.160>Worthy Macbeth, we stay upon your leisure.</A><br>
-</blockquote>
-
-<A NAME=speech49><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.3.161>Give me your favour: my dull brain was wrought</A><br>
-<A NAME=1.3.162>With things forgotten. Kind gentlemen, your pains</A><br>
-<A NAME=1.3.163>Are register'd where every day I turn</A><br>
-<A NAME=1.3.164>The leaf to read them. Let us toward the king.</A><br>
-<A NAME=1.3.165>Think upon what hath chanced, and, at more time,</A><br>
-<A NAME=1.3.166>The interim having weigh'd it, let us speak</A><br>
-<A NAME=1.3.167>Our free hearts each to other.</A><br>
-</blockquote>
-
-<A NAME=speech50><b>BANQUO</b></a>
-<blockquote>
-<A NAME=1.3.168>Very gladly.</A><br>
-</blockquote>
-
-<A NAME=speech51><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.3.169>Till then, enough. Come, friends.</A><br>
-<p><i>Exeunt</i></p>
-</blockquote>
-<h3>SCENE IV. Forres. The palace.</h3>
-<p><blockquote>
-<i>Flourish. Enter DUNCAN, MALCOLM, DONALBAIN, LENNOX, and Attendants</i>
-</blockquote>
-
-<A NAME=speech1><b>DUNCAN</b></a>
-<blockquote>
-<A NAME=1.4.1>Is execution done on Cawdor? Are not</A><br>
-<A NAME=1.4.2>Those in commission yet return'd?</A><br>
-</blockquote>
-
-<A NAME=speech2><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=1.4.3>My liege,</A><br>
-<A NAME=1.4.4>They are not yet come back. But I have spoke</A><br>
-<A NAME=1.4.5>With one that saw him die: who did report</A><br>
-<A NAME=1.4.6>That very frankly he confess'd his treasons,</A><br>
-<A NAME=1.4.7>Implored your highness' pardon and set forth</A><br>
-<A NAME=1.4.8>A deep repentance: nothing in his life</A><br>
-<A NAME=1.4.9>Became him like the leaving it; he died</A><br>
-<A NAME=1.4.10>As one that had been studied in his death</A><br>
-<A NAME=1.4.11>To throw away the dearest thing he owed,</A><br>
-<A NAME=1.4.12>As 'twere a careless trifle.</A><br>
-</blockquote>
-
-<A NAME=speech3><b>DUNCAN</b></a>
-<blockquote>
-<A NAME=1.4.13>There's no art</A><br>
-<A NAME=1.4.14>To find the mind's construction in the face:</A><br>
-<A NAME=1.4.15>He was a gentleman on whom I built</A><br>
-<A NAME=1.4.16>An absolute trust.</A><br>
-<p><i>Enter MACBETH, BANQUO, ROSS, and ANGUS</i></p>
-<A NAME=1.4.17>O worthiest cousin!</A><br>
-<A NAME=1.4.18>The sin of my ingratitude even now</A><br>
-<A NAME=1.4.19>Was heavy on me: thou art so far before</A><br>
-<A NAME=1.4.20>That swiftest wing of recompense is slow</A><br>
-<A NAME=1.4.21>To overtake thee. Would thou hadst less deserved,</A><br>
-<A NAME=1.4.22>That the proportion both of thanks and payment</A><br>
-<A NAME=1.4.23>Might have been mine! only I have left to say,</A><br>
-<A NAME=1.4.24>More is thy due than more than all can pay.</A><br>
-</blockquote>
-
-<A NAME=speech4><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.4.25>The service and the loyalty I owe,</A><br>
-<A NAME=1.4.26>In doing it, pays itself. Your highness' part</A><br>
-<A NAME=1.4.27>Is to receive our duties; and our duties</A><br>
-<A NAME=1.4.28>Are to your throne and state children and servants,</A><br>
-<A NAME=1.4.29>Which do but what they should, by doing every thing</A><br>
-<A NAME=1.4.30>Safe toward your love and honour.</A><br>
-</blockquote>
-
-<A NAME=speech5><b>DUNCAN</b></a>
-<blockquote>
-<A NAME=1.4.31>Welcome hither:</A><br>
-<A NAME=1.4.32>I have begun to plant thee, and will labour</A><br>
-<A NAME=1.4.33>To make thee full of growing. Noble Banquo,</A><br>
-<A NAME=1.4.34>That hast no less deserved, nor must be known</A><br>
-<A NAME=1.4.35>No less to have done so, let me enfold thee</A><br>
-<A NAME=1.4.36>And hold thee to my heart.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>BANQUO</b></a>
-<blockquote>
-<A NAME=1.4.37>There if I grow,</A><br>
-<A NAME=1.4.38>The harvest is your own.</A><br>
-</blockquote>
-
-<A NAME=speech7><b>DUNCAN</b></a>
-<blockquote>
-<A NAME=1.4.39>My plenteous joys,</A><br>
-<A NAME=1.4.40>Wanton in fulness, seek to hide themselves</A><br>
-<A NAME=1.4.41>In drops of sorrow. Sons, kinsmen, thanes,</A><br>
-<A NAME=1.4.42>And you whose places are the nearest, know</A><br>
-<A NAME=1.4.43>We will establish our estate upon</A><br>
-<A NAME=1.4.44>Our eldest, Malcolm, whom we name hereafter</A><br>
-<A NAME=1.4.45>The Prince of Cumberland; which honour must</A><br>
-<A NAME=1.4.46>Not unaccompanied invest him only,</A><br>
-<A NAME=1.4.47>But signs of nobleness, like stars, shall shine</A><br>
-<A NAME=1.4.48>On all deservers. From hence to Inverness,</A><br>
-<A NAME=1.4.49>And bind us further to you.</A><br>
-</blockquote>
-
-<A NAME=speech8><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.4.50>The rest is labour, which is not used for you:</A><br>
-<A NAME=1.4.51>I'll be myself the harbinger and make joyful</A><br>
-<A NAME=1.4.52>The hearing of my wife with your approach;</A><br>
-<A NAME=1.4.53>So humbly take my leave.</A><br>
-</blockquote>
-
-<A NAME=speech9><b>DUNCAN</b></a>
-<blockquote>
-<A NAME=1.4.54>My worthy Cawdor!</A><br>
-</blockquote>
-
-<A NAME=speech10><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.4.55>[Aside] The Prince of Cumberland! that is a step</A><br>
-<A NAME=1.4.56>On which I must fall down, or else o'erleap,</A><br>
-<A NAME=1.4.57>For in my way it lies. Stars, hide your fires;</A><br>
-<A NAME=1.4.58>Let not light see my black and deep desires:</A><br>
-<A NAME=1.4.59>The eye wink at the hand; yet let that be,</A><br>
-<A NAME=1.4.60>Which the eye fears, when it is done, to see.</A><br>
-<p><i>Exit</i></p>
-</blockquote>
-
-<A NAME=speech11><b>DUNCAN</b></a>
-<blockquote>
-<A NAME=1.4.61>True, worthy Banquo; he is full so valiant,</A><br>
-<A NAME=1.4.62>And in his commendations I am fed;</A><br>
-<A NAME=1.4.63>It is a banquet to me. Let's after him,</A><br>
-<A NAME=1.4.64>Whose care is gone before to bid us welcome:</A><br>
-<A NAME=1.4.65>It is a peerless kinsman.</A><br>
-<p><i>Flourish. Exeunt</i></p>
-</blockquote>
-<h3>SCENE V. Inverness. Macbeth's castle.</h3>
-<p><blockquote>
-<i>Enter LADY MACBETH, reading a letter</i>
-</blockquote>
-
-<A NAME=speech1><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=1.5.1>'They met me in the day of success: and I have</A><br>
-<A NAME=1.5.2>learned by the perfectest report, they have more in</A><br>
-<A NAME=1.5.3>them than mortal knowledge. When I burned in desire</A><br>
-<A NAME=1.5.4>to question them further, they made themselves air,</A><br>
-<A NAME=1.5.5>into which they vanished. Whiles I stood rapt in</A><br>
-<A NAME=1.5.6>the wonder of it, came missives from the king, who</A><br>
-<A NAME=1.5.7>all-hailed me 'Thane of Cawdor;' by which title,</A><br>
-<A NAME=1.5.8>before, these weird sisters saluted me, and referred</A><br>
-<A NAME=1.5.9>me to the coming on of time, with 'Hail, king that</A><br>
-<A NAME=1.5.10>shalt be!' This have I thought good to deliver</A><br>
-<A NAME=1.5.11>thee, my dearest partner of greatness, that thou</A><br>
-<A NAME=1.5.12>mightst not lose the dues of rejoicing, by being</A><br>
-<A NAME=1.5.13>ignorant of what greatness is promised thee. Lay it</A><br>
-<A NAME=1.5.14>to thy heart, and farewell.'</A><br>
-<A NAME=1.5.15>Glamis thou art, and Cawdor; and shalt be</A><br>
-<A NAME=1.5.16>What thou art promised: yet do I fear thy nature;</A><br>
-<A NAME=1.5.17>It is too full o' the milk of human kindness</A><br>
-<A NAME=1.5.18>To catch the nearest way: thou wouldst be great;</A><br>
-<A NAME=1.5.19>Art not without ambition, but without</A><br>
-<A NAME=1.5.20>The illness should attend it: what thou wouldst highly,</A><br>
-<A NAME=1.5.21>That wouldst thou holily; wouldst not play false,</A><br>
-<A NAME=1.5.22>And yet wouldst wrongly win: thou'ldst have, great Glamis,</A><br>
-<A NAME=1.5.23>That which cries 'Thus thou must do, if thou have it;</A><br>
-<A NAME=1.5.24>And that which rather thou dost fear to do</A><br>
-<A NAME=1.5.25>Than wishest should be undone.' Hie thee hither,</A><br>
-<A NAME=1.5.26>That I may pour my spirits in thine ear;</A><br>
-<A NAME=1.5.27>And chastise with the valour of my tongue</A><br>
-<A NAME=1.5.28>All that impedes thee from the golden round,</A><br>
-<A NAME=1.5.29>Which fate and metaphysical aid doth seem</A><br>
-<A NAME=1.5.30>To have thee crown'd withal.</A><br>
-<p><i>Enter a Messenger</i></p>
-<A NAME=1.5.31>What is your tidings?</A><br>
-</blockquote>
-
-<A NAME=speech2><b>Messenger</b></a>
-<blockquote>
-<A NAME=1.5.32>The king comes here to-night.</A><br>
-</blockquote>
-
-<A NAME=speech3><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=1.5.33>Thou'rt mad to say it:</A><br>
-<A NAME=1.5.34>Is not thy master with him? who, were't so,</A><br>
-<A NAME=1.5.35>Would have inform'd for preparation.</A><br>
-</blockquote>
-
-<A NAME=speech4><b>Messenger</b></a>
-<blockquote>
-<A NAME=1.5.36>So please you, it is true: our thane is coming:</A><br>
-<A NAME=1.5.37>One of my fellows had the speed of him,</A><br>
-<A NAME=1.5.38>Who, almost dead for breath, had scarcely more</A><br>
-<A NAME=1.5.39>Than would make up his message.</A><br>
-</blockquote>
-
-<A NAME=speech5><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=1.5.40>Give him tending;</A><br>
-<A NAME=1.5.41>He brings great news.</A><br>
-<p><i>Exit Messenger</i></p>
-<A NAME=1.5.42>The raven himself is hoarse</A><br>
-<A NAME=1.5.43>That croaks the fatal entrance of Duncan</A><br>
-<A NAME=1.5.44>Under my battlements. Come, you spirits</A><br>
-<A NAME=1.5.45>That tend on mortal thoughts, unsex me here,</A><br>
-<A NAME=1.5.46>And fill me from the crown to the toe top-full</A><br>
-<A NAME=1.5.47>Of direst cruelty! make thick my blood;</A><br>
-<A NAME=1.5.48>Stop up the access and passage to remorse,</A><br>
-<A NAME=1.5.49>That no compunctious visitings of nature</A><br>
-<A NAME=1.5.50>Shake my fell purpose, nor keep peace between</A><br>
-<A NAME=1.5.51>The effect and it! Come to my woman's breasts,</A><br>
-<A NAME=1.5.52>And take my milk for gall, you murdering ministers,</A><br>
-<A NAME=1.5.53>Wherever in your sightless substances</A><br>
-<A NAME=1.5.54>You wait on nature's mischief! Come, thick night,</A><br>
-<A NAME=1.5.55>And pall thee in the dunnest smoke of hell,</A><br>
-<A NAME=1.5.56>That my keen knife see not the wound it makes,</A><br>
-<A NAME=1.5.57>Nor heaven peep through the blanket of the dark,</A><br>
-<A NAME=1.5.58>To cry 'Hold, hold!'</A><br>
-<p><i>Enter MACBETH</i></p>
-<A NAME=1.5.59>Great Glamis! worthy Cawdor!</A><br>
-<A NAME=1.5.60>Greater than both, by the all-hail hereafter!</A><br>
-<A NAME=1.5.61>Thy letters have transported me beyond</A><br>
-<A NAME=1.5.62>This ignorant present, and I feel now</A><br>
-<A NAME=1.5.63>The future in the instant.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.5.64>My dearest love,</A><br>
-<A NAME=1.5.65>Duncan comes here to-night.</A><br>
-</blockquote>
-
-<A NAME=speech7><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=1.5.66>And when goes hence?</A><br>
-</blockquote>
-
-<A NAME=speech8><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.5.67>To-morrow, as he purposes.</A><br>
-</blockquote>
-
-<A NAME=speech9><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=1.5.68>O, never</A><br>
-<A NAME=1.5.69>Shall sun that morrow see!</A><br>
-<A NAME=1.5.70>Your face, my thane, is as a book where men</A><br>
-<A NAME=1.5.71>May read strange matters. To beguile the time,</A><br>
-<A NAME=1.5.72>Look like the time; bear welcome in your eye,</A><br>
-<A NAME=1.5.73>Your hand, your tongue: look like the innocent flower,</A><br>
-<A NAME=1.5.74>But be the serpent under't. He that's coming</A><br>
-<A NAME=1.5.75>Must be provided for: and you shall put</A><br>
-<A NAME=1.5.76>This night's great business into my dispatch;</A><br>
-<A NAME=1.5.77>Which shall to all our nights and days to come</A><br>
-<A NAME=1.5.78>Give solely sovereign sway and masterdom.</A><br>
-</blockquote>
-
-<A NAME=speech10><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.5.79>We will speak further.</A><br>
-</blockquote>
-
-<A NAME=speech11><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=1.5.80>Only look up clear;</A><br>
-<A NAME=1.5.81>To alter favour ever is to fear:</A><br>
-<A NAME=1.5.82>Leave all the rest to me.</A><br>
-<p><i>Exeunt</i></p>
-</blockquote>
-<h3>SCENE VI. Before Macbeth's castle.</h3>
-<p><blockquote>
-<i>Hautboys and torches. Enter DUNCAN, MALCOLM, DONALBAIN, BANQUO, LENNOX, MACDUFF, ROSS, ANGUS, and Attendants</i>
-</blockquote>
-
-<A NAME=speech1><b>DUNCAN</b></a>
-<blockquote>
-<A NAME=1.6.1>This castle hath a pleasant seat; the air</A><br>
-<A NAME=1.6.2>Nimbly and sweetly recommends itself</A><br>
-<A NAME=1.6.3>Unto our gentle senses.</A><br>
-</blockquote>
-
-<A NAME=speech2><b>BANQUO</b></a>
-<blockquote>
-<A NAME=1.6.4>This guest of summer,</A><br>
-<A NAME=1.6.5>The temple-haunting martlet, does approve,</A><br>
-<A NAME=1.6.6>By his loved mansionry, that the heaven's breath</A><br>
-<A NAME=1.6.7>Smells wooingly here: no jutty, frieze,</A><br>
-<A NAME=1.6.8>Buttress, nor coign of vantage, but this bird</A><br>
-<A NAME=1.6.9>Hath made his pendent bed and procreant cradle:</A><br>
-<A NAME=1.6.10>Where they most breed and haunt, I have observed,</A><br>
-<A NAME=1.6.11>The air is delicate.</A><br>
-<p><i>Enter LADY MACBETH</i></p>
-</blockquote>
-
-<A NAME=speech3><b>DUNCAN</b></a>
-<blockquote>
-<A NAME=1.6.12>See, see, our honour'd hostess!</A><br>
-<A NAME=1.6.13>The love that follows us sometime is our trouble,</A><br>
-<A NAME=1.6.14>Which still we thank as love. Herein I teach you</A><br>
-<A NAME=1.6.15>How you shall bid God 'ild us for your pains,</A><br>
-<A NAME=1.6.16>And thank us for your trouble.</A><br>
-</blockquote>
-
-<A NAME=speech4><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=1.6.17>All our service</A><br>
-<A NAME=1.6.18>In every point twice done and then done double</A><br>
-<A NAME=1.6.19>Were poor and single business to contend</A><br>
-<A NAME=1.6.20>Against those honours deep and broad wherewith</A><br>
-<A NAME=1.6.21>Your majesty loads our house: for those of old,</A><br>
-<A NAME=1.6.22>And the late dignities heap'd up to them,</A><br>
-<A NAME=1.6.23>We rest your hermits.</A><br>
-</blockquote>
-
-<A NAME=speech5><b>DUNCAN</b></a>
-<blockquote>
-<A NAME=1.6.24>Where's the thane of Cawdor?</A><br>
-<A NAME=1.6.25>We coursed him at the heels, and had a purpose</A><br>
-<A NAME=1.6.26>To be his purveyor: but he rides well;</A><br>
-<A NAME=1.6.27>And his great love, sharp as his spur, hath holp him</A><br>
-<A NAME=1.6.28>To his home before us. Fair and noble hostess,</A><br>
-<A NAME=1.6.29>We are your guest to-night.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=1.6.30>Your servants ever</A><br>
-<A NAME=1.6.31>Have theirs, themselves and what is theirs, in compt,</A><br>
-<A NAME=1.6.32>To make their audit at your highness' pleasure,</A><br>
-<A NAME=1.6.33>Still to return your own.</A><br>
-</blockquote>
-
-<A NAME=speech7><b>DUNCAN</b></a>
-<blockquote>
-<A NAME=1.6.34>Give me your hand;</A><br>
-<A NAME=1.6.35>Conduct me to mine host: we love him highly,</A><br>
-<A NAME=1.6.36>And shall continue our graces towards him.</A><br>
-<A NAME=1.6.37>By your leave, hostess.</A><br>
-<p><i>Exeunt</i></p>
-</blockquote>
-<h3>SCENE VII. Macbeth's castle.</h3>
-<p><blockquote>
-<i>Hautboys and torches. Enter a Sewer, and divers Servants with dishes and service, and pass over the stage. Then enter MACBETH</i>
-</blockquote>
-
-<A NAME=speech1><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.7.1>If it were done when 'tis done, then 'twere well</A><br>
-<A NAME=1.7.2>It were done quickly: if the assassination</A><br>
-<A NAME=1.7.3>Could trammel up the consequence, and catch</A><br>
-<A NAME=1.7.4>With his surcease success; that but this blow</A><br>
-<A NAME=1.7.5>Might be the be-all and the end-all here,</A><br>
-<A NAME=1.7.6>But here, upon this bank and shoal of time,</A><br>
-<A NAME=1.7.7>We'ld jump the life to come. But in these cases</A><br>
-<A NAME=1.7.8>We still have judgment here; that we but teach</A><br>
-<A NAME=1.7.9>Bloody instructions, which, being taught, return</A><br>
-<A NAME=1.7.10>To plague the inventor: this even-handed justice</A><br>
-<A NAME=1.7.11>Commends the ingredients of our poison'd chalice</A><br>
-<A NAME=1.7.12>To our own lips. He's here in double trust;</A><br>
-<A NAME=1.7.13>First, as I am his kinsman and his subject,</A><br>
-<A NAME=1.7.14>Strong both against the deed; then, as his host,</A><br>
-<A NAME=1.7.15>Who should against his murderer shut the door,</A><br>
-<A NAME=1.7.16>Not bear the knife myself. Besides, this Duncan</A><br>
-<A NAME=1.7.17>Hath borne his faculties so meek, hath been</A><br>
-<A NAME=1.7.18>So clear in his great office, that his virtues</A><br>
-<A NAME=1.7.19>Will plead like angels, trumpet-tongued, against</A><br>
-<A NAME=1.7.20>The deep damnation of his taking-off;</A><br>
-<A NAME=1.7.21>And pity, like a naked new-born babe,</A><br>
-<A NAME=1.7.22>Striding the blast, or heaven's cherubim, horsed</A><br>
-<A NAME=1.7.23>Upon the sightless couriers of the air,</A><br>
-<A NAME=1.7.24>Shall blow the horrid deed in every eye,</A><br>
-<A NAME=1.7.25>That tears shall drown the wind. I have no spur</A><br>
-<A NAME=1.7.26>To prick the sides of my intent, but only</A><br>
-<A NAME=1.7.27>Vaulting ambition, which o'erleaps itself</A><br>
-<A NAME=1.7.28>And falls on the other.</A><br>
-<p><i>Enter LADY MACBETH</i></p>
-<A NAME=1.7.29>How now! what news?</A><br>
-</blockquote>
-
-<A NAME=speech2><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=1.7.30>He has almost supp'd: why have you left the chamber?</A><br>
-</blockquote>
-
-<A NAME=speech3><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.7.31>Hath he ask'd for me?</A><br>
-</blockquote>
-
-<A NAME=speech4><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=1.7.32>Know you not he has?</A><br>
-</blockquote>
-
-<A NAME=speech5><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.7.33>We will proceed no further in this business:</A><br>
-<A NAME=1.7.34>He hath honour'd me of late; and I have bought</A><br>
-<A NAME=1.7.35>Golden opinions from all sorts of people,</A><br>
-<A NAME=1.7.36>Which would be worn now in their newest gloss,</A><br>
-<A NAME=1.7.37>Not cast aside so soon.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=1.7.38>Was the hope drunk</A><br>
-<A NAME=1.7.39>Wherein you dress'd yourself? hath it slept since?</A><br>
-<A NAME=1.7.40>And wakes it now, to look so green and pale</A><br>
-<A NAME=1.7.41>At what it did so freely? From this time</A><br>
-<A NAME=1.7.42>Such I account thy love. Art thou afeard</A><br>
-<A NAME=1.7.43>To be the same in thine own act and valour</A><br>
-<A NAME=1.7.44>As thou art in desire? Wouldst thou have that</A><br>
-<A NAME=1.7.45>Which thou esteem'st the ornament of life,</A><br>
-<A NAME=1.7.46>And live a coward in thine own esteem,</A><br>
-<A NAME=1.7.47>Letting 'I dare not' wait upon 'I would,'</A><br>
-<A NAME=1.7.48>Like the poor cat i' the adage?</A><br>
-</blockquote>
-
-<A NAME=speech7><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.7.49>Prithee, peace:</A><br>
-<A NAME=1.7.50>I dare do all that may become a man;</A><br>
-<A NAME=1.7.51>Who dares do more is none.</A><br>
-</blockquote>
-
-<A NAME=speech8><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=1.7.52>What beast was't, then,</A><br>
-<A NAME=1.7.53>That made you break this enterprise to me?</A><br>
-<A NAME=1.7.54>When you durst do it, then you were a man;</A><br>
-<A NAME=1.7.55>And, to be more than what you were, you would</A><br>
-<A NAME=1.7.56>Be so much more the man. Nor time nor place</A><br>
-<A NAME=1.7.57>Did then adhere, and yet you would make both:</A><br>
-<A NAME=1.7.58>They have made themselves, and that their fitness now</A><br>
-<A NAME=1.7.59>Does unmake you. I have given suck, and know</A><br>
-<A NAME=1.7.60>How tender 'tis to love the babe that milks me:</A><br>
-<A NAME=1.7.61>I would, while it was smiling in my face,</A><br>
-<A NAME=1.7.62>Have pluck'd my nipple from his boneless gums,</A><br>
-<A NAME=1.7.63>And dash'd the brains out, had I so sworn as you</A><br>
-<A NAME=1.7.64>Have done to this.</A><br>
-</blockquote>
-
-<A NAME=speech9><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.7.65> If we should fail?</A><br>
-</blockquote>
-
-<A NAME=speech10><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=1.7.66>We fail!</A><br>
-<A NAME=1.7.67>But screw your courage to the sticking-place,</A><br>
-<A NAME=1.7.68>And we'll not fail. When Duncan is asleep--</A><br>
-<A NAME=1.7.69>Whereto the rather shall his day's hard journey</A><br>
-<A NAME=1.7.70>Soundly invite him--his two chamberlains</A><br>
-<A NAME=1.7.71>Will I with wine and wassail so convince</A><br>
-<A NAME=1.7.72>That memory, the warder of the brain,</A><br>
-<A NAME=1.7.73>Shall be a fume, and the receipt of reason</A><br>
-<A NAME=1.7.74>A limbeck only: when in swinish sleep</A><br>
-<A NAME=1.7.75>Their drenched natures lie as in a death,</A><br>
-<A NAME=1.7.76>What cannot you and I perform upon</A><br>
-<A NAME=1.7.77>The unguarded Duncan? what not put upon</A><br>
-<A NAME=1.7.78>His spongy officers, who shall bear the guilt</A><br>
-<A NAME=1.7.79>Of our great quell?</A><br>
-</blockquote>
-
-<A NAME=speech11><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.7.80>Bring forth men-children only;</A><br>
-<A NAME=1.7.81>For thy undaunted mettle should compose</A><br>
-<A NAME=1.7.82>Nothing but males. Will it not be received,</A><br>
-<A NAME=1.7.83>When we have mark'd with blood those sleepy two</A><br>
-<A NAME=1.7.84>Of his own chamber and used their very daggers,</A><br>
-<A NAME=1.7.85>That they have done't?</A><br>
-</blockquote>
-
-<A NAME=speech12><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=1.7.86>Who dares receive it other,</A><br>
-<A NAME=1.7.87>As we shall make our griefs and clamour roar</A><br>
-<A NAME=1.7.88>Upon his death?</A><br>
-</blockquote>
-
-<A NAME=speech13><b>MACBETH</b></a>
-<blockquote>
-<A NAME=1.7.89> I am settled, and bend up</A><br>
-<A NAME=1.7.90>Each corporal agent to this terrible feat.</A><br>
-<A NAME=1.7.91>Away, and mock the time with fairest show:</A><br>
-<A NAME=1.7.92>False face must hide what the false heart doth know.</A><br>
-<p><i>Exeunt</i></p>
-</blockquote><p>
-<H3>ACT II</h3>
-<h3>SCENE I. Court of Macbeth's castle.</h3>
-<p><blockquote>
-<i>Enter BANQUO, and FLEANCE bearing a torch before him</i>
-</blockquote>
-
-<A NAME=speech1><b>BANQUO</b></a>
-<blockquote>
-<A NAME=2.1.1>How goes the night, boy?</A><br>
-</blockquote>
-
-<A NAME=speech2><b>FLEANCE</b></a>
-<blockquote>
-<A NAME=2.1.2>The moon is down; I have not heard the clock.</A><br>
-</blockquote>
-
-<A NAME=speech3><b>BANQUO</b></a>
-<blockquote>
-<A NAME=2.1.3>And she goes down at twelve.</A><br>
-</blockquote>
-
-<A NAME=speech4><b>FLEANCE</b></a>
-<blockquote>
-<A NAME=2.1.4>I take't, 'tis later, sir.</A><br>
-</blockquote>
-
-<A NAME=speech5><b>BANQUO</b></a>
-<blockquote>
-<A NAME=2.1.5>Hold, take my sword. There's husbandry in heaven;</A><br>
-<A NAME=2.1.6>Their candles are all out. Take thee that too.</A><br>
-<A NAME=2.1.7>A heavy summons lies like lead upon me,</A><br>
-<A NAME=2.1.8>And yet I would not sleep: merciful powers,</A><br>
-<A NAME=2.1.9>Restrain in me the cursed thoughts that nature</A><br>
-<A NAME=2.1.10>Gives way to in repose!</A><br>
-<p><i>Enter MACBETH, and a Servant with a torch</i></p>
-<A NAME=2.1.11>Give me my sword.</A><br>
-<A NAME=2.1.12>Who's there?</A><br>
-</blockquote>
-
-<A NAME=speech6><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.1.13>A friend.</A><br>
-</blockquote>
-
-<A NAME=speech7><b>BANQUO</b></a>
-<blockquote>
-<A NAME=2.1.14>What, sir, not yet at rest? The king's a-bed:</A><br>
-<A NAME=2.1.15>He hath been in unusual pleasure, and</A><br>
-<A NAME=2.1.16>Sent forth great largess to your offices.</A><br>
-<A NAME=2.1.17>This diamond he greets your wife withal,</A><br>
-<A NAME=2.1.18>By the name of most kind hostess; and shut up</A><br>
-<A NAME=2.1.19>In measureless content.</A><br>
-</blockquote>
-
-<A NAME=speech8><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.1.20>Being unprepared,</A><br>
-<A NAME=2.1.21>Our will became the servant to defect;</A><br>
-<A NAME=2.1.22>Which else should free have wrought.</A><br>
-</blockquote>
-
-<A NAME=speech9><b>BANQUO</b></a>
-<blockquote>
-<A NAME=2.1.23>All's well.</A><br>
-<A NAME=2.1.24>I dreamt last night of the three weird sisters:</A><br>
-<A NAME=2.1.25>To you they have show'd some truth.</A><br>
-</blockquote>
-
-<A NAME=speech10><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.1.26>I think not of them:</A><br>
-<A NAME=2.1.27>Yet, when we can entreat an hour to serve,</A><br>
-<A NAME=2.1.28>We would spend it in some words upon that business,</A><br>
-<A NAME=2.1.29>If you would grant the time.</A><br>
-</blockquote>
-
-<A NAME=speech11><b>BANQUO</b></a>
-<blockquote>
-<A NAME=2.1.30>At your kind'st leisure.</A><br>
-</blockquote>
-
-<A NAME=speech12><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.1.31>If you shall cleave to my consent, when 'tis,</A><br>
-<A NAME=2.1.32>It shall make honour for you.</A><br>
-</blockquote>
-
-<A NAME=speech13><b>BANQUO</b></a>
-<blockquote>
-<A NAME=2.1.33>So I lose none</A><br>
-<A NAME=2.1.34>In seeking to augment it, but still keep</A><br>
-<A NAME=2.1.35>My bosom franchised and allegiance clear,</A><br>
-<A NAME=2.1.36>I shall be counsell'd.</A><br>
-</blockquote>
-
-<A NAME=speech14><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.1.37>Good repose the while!</A><br>
-</blockquote>
-
-<A NAME=speech15><b>BANQUO</b></a>
-<blockquote>
-<A NAME=2.1.38>Thanks, sir: the like to you!</A><br>
-<p><i>Exeunt BANQUO and FLEANCE</i></p>
-</blockquote>
-
-<A NAME=speech16><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.1.39>Go bid thy mistress, when my drink is ready,</A><br>
-<A NAME=2.1.40>She strike upon the bell. Get thee to bed.</A><br>
-<p><i>Exit Servant</i></p>
-<A NAME=2.1.41>Is this a dagger which I see before me,</A><br>
-<A NAME=2.1.42>The handle toward my hand? Come, let me clutch thee.</A><br>
-<A NAME=2.1.43>I have thee not, and yet I see thee still.</A><br>
-<A NAME=2.1.44>Art thou not, fatal vision, sensible</A><br>
-<A NAME=2.1.45>To feeling as to sight? or art thou but</A><br>
-<A NAME=2.1.46>A dagger of the mind, a false creation,</A><br>
-<A NAME=2.1.47>Proceeding from the heat-oppressed brain?</A><br>
-<A NAME=2.1.48>I see thee yet, in form as palpable</A><br>
-<A NAME=2.1.49>As this which now I draw.</A><br>
-<A NAME=2.1.50>Thou marshall'st me the way that I was going;</A><br>
-<A NAME=2.1.51>And such an instrument I was to use.</A><br>
-<A NAME=2.1.52>Mine eyes are made the fools o' the other senses,</A><br>
-<A NAME=2.1.53>Or else worth all the rest; I see thee still,</A><br>
-<A NAME=2.1.54>And on thy blade and dudgeon gouts of blood,</A><br>
-<A NAME=2.1.55>Which was not so before. There's no such thing:</A><br>
-<A NAME=2.1.56>It is the bloody business which informs</A><br>
-<A NAME=2.1.57>Thus to mine eyes. Now o'er the one halfworld</A><br>
-<A NAME=2.1.58>Nature seems dead, and wicked dreams abuse</A><br>
-<A NAME=2.1.59>The curtain'd sleep; witchcraft celebrates</A><br>
-<A NAME=2.1.60>Pale Hecate's offerings, and wither'd murder,</A><br>
-<A NAME=2.1.61>Alarum'd by his sentinel, the wolf,</A><br>
-<A NAME=2.1.62>Whose howl's his watch, thus with his stealthy pace.</A><br>
-<A NAME=2.1.63>With Tarquin's ravishing strides, towards his design</A><br>
-<A NAME=2.1.64>Moves like a ghost. Thou sure and firm-set earth,</A><br>
-<A NAME=2.1.65>Hear not my steps, which way they walk, for fear</A><br>
-<A NAME=2.1.66>Thy very stones prate of my whereabout,</A><br>
-<A NAME=2.1.67>And take the present horror from the time,</A><br>
-<A NAME=2.1.68>Which now suits with it. Whiles I threat, he lives:</A><br>
-<A NAME=2.1.69>Words to the heat of deeds too cold breath gives.</A><br>
-<p><i>A bell rings</i></p>
-<A NAME=2.1.70>I go, and it is done; the bell invites me.</A><br>
-<A NAME=2.1.71>Hear it not, Duncan; for it is a knell</A><br>
-<A NAME=2.1.72>That summons thee to heaven or to hell.</A><br>
-<p><i>Exit</i></p>
-</blockquote>
-<h3>SCENE II. The same.</h3>
-<p><blockquote>
-<i>Enter LADY MACBETH</i>
-</blockquote>
-
-<A NAME=speech1><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.1>That which hath made them drunk hath made me bold;</A><br>
-<A NAME=2.2.2>What hath quench'd them hath given me fire.</A><br>
-<A NAME=2.2.3>Hark! Peace!</A><br>
-<A NAME=2.2.4>It was the owl that shriek'd, the fatal bellman,</A><br>
-<A NAME=2.2.5>Which gives the stern'st good-night. He is about it:</A><br>
-<A NAME=2.2.6>The doors are open; and the surfeited grooms</A><br>
-<A NAME=2.2.7>Do mock their charge with snores: I have drugg'd</A><br>
-<A NAME=2.2.8>their possets,</A><br>
-<A NAME=2.2.9>That death and nature do contend about them,</A><br>
-<A NAME=2.2.10>Whether they live or die.</A><br>
-</blockquote>
-
-<A NAME=speech2><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.11>[Within] Who's there? what, ho!</A><br>
-</blockquote>
-
-<A NAME=speech3><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.12>Alack, I am afraid they have awaked,</A><br>
-<A NAME=2.2.13>And 'tis not done. The attempt and not the deed</A><br>
-<A NAME=2.2.14>Confounds us. Hark! I laid their daggers ready;</A><br>
-<A NAME=2.2.15>He could not miss 'em. Had he not resembled</A><br>
-<A NAME=2.2.16>My father as he slept, I had done't.</A><br>
-<p><i>Enter MACBETH</i></p>
-<A NAME=2.2.17>My husband!</A><br>
-</blockquote>
-
-<A NAME=speech4><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.18>I have done the deed. Didst thou not hear a noise?</A><br>
-</blockquote>
-
-<A NAME=speech5><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.19>I heard the owl scream and the crickets cry.</A><br>
-<A NAME=2.2.20>Did not you speak?</A><br>
-</blockquote>
-
-<A NAME=speech6><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.21> When?</A><br>
-</blockquote>
-
-<A NAME=speech7><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.22>Now.</A><br>
-</blockquote>
-
-<A NAME=speech8><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.23>As I descended?</A><br>
-</blockquote>
-
-<A NAME=speech9><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.24>Ay.</A><br>
-</blockquote>
-
-<A NAME=speech10><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.25>Hark!</A><br>
-<A NAME=2.2.26>Who lies i' the second chamber?</A><br>
-</blockquote>
-
-<A NAME=speech11><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.27>Donalbain.</A><br>
-</blockquote>
-
-<A NAME=speech12><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.28>This is a sorry sight.</A><br>
-<p><i>Looking on his hands</i></p>
-</blockquote>
-
-<A NAME=speech13><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.29>A foolish thought, to say a sorry sight.</A><br>
-</blockquote>
-
-<A NAME=speech14><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.30>There's one did laugh in's sleep, and one cried</A><br>
-<A NAME=2.2.31>'Murder!'</A><br>
-<A NAME=2.2.32>That they did wake each other: I stood and heard them:</A><br>
-<A NAME=2.2.33>But they did say their prayers, and address'd them</A><br>
-<A NAME=2.2.34>Again to sleep.</A><br>
-</blockquote>
-
-<A NAME=speech15><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.35> There are two lodged together.</A><br>
-</blockquote>
-
-<A NAME=speech16><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.36>One cried 'God bless us!' and 'Amen' the other;</A><br>
-<A NAME=2.2.37>As they had seen me with these hangman's hands.</A><br>
-<A NAME=2.2.38>Listening their fear, I could not say 'Amen,'</A><br>
-<A NAME=2.2.39>When they did say 'God bless us!'</A><br>
-</blockquote>
-
-<A NAME=speech17><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.40>Consider it not so deeply.</A><br>
-</blockquote>
-
-<A NAME=speech18><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.41>But wherefore could not I pronounce 'Amen'?</A><br>
-<A NAME=2.2.42>I had most need of blessing, and 'Amen'</A><br>
-<A NAME=2.2.43>Stuck in my throat.</A><br>
-</blockquote>
-
-<A NAME=speech19><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.44>These deeds must not be thought</A><br>
-<A NAME=2.2.45>After these ways; so, it will make us mad.</A><br>
-</blockquote>
-
-<A NAME=speech20><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.46>Methought I heard a voice cry 'Sleep no more!</A><br>
-<A NAME=2.2.47>Macbeth does murder sleep', the innocent sleep,</A><br>
-<A NAME=2.2.48>Sleep that knits up the ravell'd sleeve of care,</A><br>
-<A NAME=2.2.49>The death of each day's life, sore labour's bath,</A><br>
-<A NAME=2.2.50>Balm of hurt minds, great nature's second course,</A><br>
-<A NAME=2.2.51>Chief nourisher in life's feast,--</A><br>
-</blockquote>
-
-<A NAME=speech21><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.52>What do you mean?</A><br>
-</blockquote>
-
-<A NAME=speech22><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.53>Still it cried 'Sleep no more!' to all the house:</A><br>
-<A NAME=2.2.54>'Glamis hath murder'd sleep, and therefore Cawdor</A><br>
-<A NAME=2.2.55>Shall sleep no more; Macbeth shall sleep no more.'</A><br>
-</blockquote>
-
-<A NAME=speech23><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.56>Who was it that thus cried? Why, worthy thane,</A><br>
-<A NAME=2.2.57>You do unbend your noble strength, to think</A><br>
-<A NAME=2.2.58>So brainsickly of things. Go get some water,</A><br>
-<A NAME=2.2.59>And wash this filthy witness from your hand.</A><br>
-<A NAME=2.2.60>Why did you bring these daggers from the place?</A><br>
-<A NAME=2.2.61>They must lie there: go carry them; and smear</A><br>
-<A NAME=2.2.62>The sleepy grooms with blood.</A><br>
-</blockquote>
-
-<A NAME=speech24><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.63>I'll go no more:</A><br>
-<A NAME=2.2.64>I am afraid to think what I have done;</A><br>
-<A NAME=2.2.65>Look on't again I dare not.</A><br>
-</blockquote>
-
-<A NAME=speech25><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.66>Infirm of purpose!</A><br>
-<A NAME=2.2.67>Give me the daggers: the sleeping and the dead</A><br>
-<A NAME=2.2.68>Are but as pictures: 'tis the eye of childhood</A><br>
-<A NAME=2.2.69>That fears a painted devil. If he do bleed,</A><br>
-<A NAME=2.2.70>I'll gild the faces of the grooms withal;</A><br>
-<A NAME=2.2.71>For it must seem their guilt.</A><br>
-<p><i>Exit. Knocking within</i></p>
-</blockquote>
-
-<A NAME=speech26><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.72>Whence is that knocking?</A><br>
-<A NAME=2.2.73>How is't with me, when every noise appals me?</A><br>
-<A NAME=2.2.74>What hands are here? ha! they pluck out mine eyes.</A><br>
-<A NAME=2.2.75>Will all great Neptune's ocean wash this blood</A><br>
-<A NAME=2.2.76>Clean from my hand? No, this my hand will rather</A><br>
-<A NAME=2.2.77>The multitudinous seas in incarnadine,</A><br>
-<A NAME=2.2.78>Making the green one red.</A><br>
-<p><i>Re-enter LADY MACBETH</i></p>
-</blockquote>
-
-<A NAME=speech27><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.79>My hands are of your colour; but I shame</A><br>
-<A NAME=2.2.80>To wear a heart so white.</A><br>
-<p><i>Knocking within</i></p>
-<A NAME=2.2.81>I hear a knocking</A><br>
-<A NAME=2.2.82>At the south entry: retire we to our chamber;</A><br>
-<A NAME=2.2.83>A little water clears us of this deed:</A><br>
-<A NAME=2.2.84>How easy is it, then! Your constancy</A><br>
-<A NAME=2.2.85>Hath left you unattended.</A><br>
-<p><i>Knocking within</i></p>
-<A NAME=2.2.86>Hark! more knocking.</A><br>
-<A NAME=2.2.87>Get on your nightgown, lest occasion call us,</A><br>
-<A NAME=2.2.88>And show us to be watchers. Be not lost</A><br>
-<A NAME=2.2.89>So poorly in your thoughts.</A><br>
-</blockquote>
-
-<A NAME=speech28><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.2.90>To know my deed, 'twere best not know myself.</A><br>
-<p><i>Knocking within</i></p>
-<A NAME=2.2.91>Wake Duncan with thy knocking! I would thou couldst!</A><br>
-<p><i>Exeunt</i></p>
-</blockquote>
-<h3>SCENE III. The same.</h3>
-<p><blockquote>
-<i>Knocking within. Enter a Porter</i>
-</blockquote>
-
-<A NAME=speech1><b>Porter</b></a>
-<blockquote>
-<A NAME=2.3.1>Here's a knocking indeed! If a</A><br>
-<A NAME=2.3.2>man were porter of hell-gate, he should have</A><br>
-<A NAME=2.3.3>old turning the key.</A><br>
-<p><i>Knocking within</i></p>
-<A NAME=2.3.4>Knock,</A><br>
-<A NAME=2.3.5>knock, knock! Who's there, i' the name of</A><br>
-<A NAME=2.3.6>Beelzebub? Here's a farmer, that hanged</A><br>
-<A NAME=2.3.7>himself on the expectation of plenty: come in</A><br>
-<A NAME=2.3.8>time; have napkins enow about you; here</A><br>
-<A NAME=2.3.9>you'll sweat for't.</A><br>
-<p><i>Knocking within</i></p>
-<A NAME=2.3.10>Knock,</A><br>
-<A NAME=2.3.11>knock! Who's there, in the other devil's</A><br>
-<A NAME=2.3.12>name? Faith, here's an equivocator, that could</A><br>
-<A NAME=2.3.13>swear in both the scales against either scale;</A><br>
-<A NAME=2.3.14>who committed treason enough for God's sake,</A><br>
-<A NAME=2.3.15>yet could not equivocate to heaven: O, come</A><br>
-<A NAME=2.3.16>in, equivocator.</A><br>
-<p><i>Knocking within</i></p>
-<A NAME=2.3.17>Knock,</A><br>
-<A NAME=2.3.18>knock, knock! Who's there? Faith, here's an</A><br>
-<A NAME=2.3.19>English tailor come hither, for stealing out of</A><br>
-<A NAME=2.3.20>a French hose: come in, tailor; here you may</A><br>
-<A NAME=2.3.21>roast your goose.</A><br>
-<p><i>Knocking within</i></p>
-<A NAME=2.3.22>Knock,</A><br>
-<A NAME=2.3.23>knock; never at quiet! What are you? But</A><br>
-<A NAME=2.3.24>this place is too cold for hell. I'll devil-porter</A><br>
-<A NAME=2.3.25>it no further: I had thought to have let in</A><br>
-<A NAME=2.3.26>some of all professions that go the primrose</A><br>
-<A NAME=2.3.27>way to the everlasting bonfire.</A><br>
-<p><i>Knocking within</i></p>
-<A NAME=2.3.28>Anon, anon! I pray you, remember the porter.</A><br>
-<p><i>Opens the gate</i></p>
-<p><i>Enter MACDUFF and LENNOX</i></p>
-</blockquote>
-
-<A NAME=speech2><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.3.29>Was it so late, friend, ere you went to bed,</A><br>
-<A NAME=2.3.30>That you do lie so late?</A><br>
-</blockquote>
-
-<A NAME=speech3><b>Porter</b></a>
-<blockquote>
-<A NAME=2.3.31>'Faith sir, we were carousing till the</A><br>
-<A NAME=2.3.32>second cock: and drink, sir, is a great</A><br>
-<A NAME=2.3.33>provoker of three things.</A><br>
-</blockquote>
-
-<A NAME=speech4><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.3.34>What three things does drink especially provoke?</A><br>
-</blockquote>
-
-<A NAME=speech5><b>Porter</b></a>
-<blockquote>
-<A NAME=2.3.35>Marry, sir, nose-painting, sleep, and</A><br>
-<A NAME=2.3.36>urine. Lechery, sir, it provokes, and unprovokes;</A><br>
-<A NAME=2.3.37>it provokes the desire, but it takes</A><br>
-<A NAME=2.3.38>away the performance: therefore, much drink</A><br>
-<A NAME=2.3.39>may be said to be an equivocator with lechery:</A><br>
-<A NAME=2.3.40>it makes him, and it mars him; it sets</A><br>
-<A NAME=2.3.41>him on, and it takes him off; it persuades him,</A><br>
-<A NAME=2.3.42>and disheartens him; makes him stand to, and</A><br>
-<A NAME=2.3.43>not stand to; in conclusion, equivocates him</A><br>
-<A NAME=2.3.44>in a sleep, and, giving him the lie, leaves him.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.3.45>I believe drink gave thee the lie last night.</A><br>
-</blockquote>
-
-<A NAME=speech7><b>Porter</b></a>
-<blockquote>
-<A NAME=2.3.46>That it did, sir, i' the very throat on</A><br>
-<A NAME=2.3.47>me: but I requited him for his lie; and, I</A><br>
-<A NAME=2.3.48>think, being too strong for him, though he took</A><br>
-<A NAME=2.3.49>up my legs sometime, yet I made a shift to cast</A><br>
-<A NAME=2.3.50>him.</A><br>
-</blockquote>
-
-<A NAME=speech8><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.3.51>Is thy master stirring?</A><br>
-<p><i>Enter MACBETH</i></p>
-<A NAME=2.3.52>Our knocking has awaked him; here he comes.</A><br>
-</blockquote>
-
-<A NAME=speech9><b>LENNOX</b></a>
-<blockquote>
-<A NAME=2.3.53>Good morrow, noble sir.</A><br>
-</blockquote>
-
-<A NAME=speech10><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.3.54>Good morrow, both.</A><br>
-</blockquote>
-
-<A NAME=speech11><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.3.55>Is the king stirring, worthy thane?</A><br>
-</blockquote>
-
-<A NAME=speech12><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.3.56>Not yet.</A><br>
-</blockquote>
-
-<A NAME=speech13><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.3.57>He did command me to call timely on him:</A><br>
-<A NAME=2.3.58>I have almost slipp'd the hour.</A><br>
-</blockquote>
-
-<A NAME=speech14><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.3.59>I'll bring you to him.</A><br>
-</blockquote>
-
-<A NAME=speech15><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.3.60>I know this is a joyful trouble to you;</A><br>
-<A NAME=2.3.61>But yet 'tis one.</A><br>
-</blockquote>
-
-<A NAME=speech16><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.3.62>The labour we delight in physics pain.</A><br>
-<A NAME=2.3.63>This is the door.</A><br>
-</blockquote>
-
-<A NAME=speech17><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.3.64> I'll make so bold to call,</A><br>
-<A NAME=2.3.65>For 'tis my limited service.</A><br>
-<p><i>Exit</i></p>
-</blockquote>
-
-<A NAME=speech18><b>LENNOX</b></a>
-<blockquote>
-<A NAME=2.3.66>Goes the king hence to-day?</A><br>
-</blockquote>
-
-<A NAME=speech19><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.3.67>He does: he did appoint so.</A><br>
-</blockquote>
-
-<A NAME=speech20><b>LENNOX</b></a>
-<blockquote>
-<A NAME=2.3.68>The night has been unruly: where we lay,</A><br>
-<A NAME=2.3.69>Our chimneys were blown down; and, as they say,</A><br>
-<A NAME=2.3.70>Lamentings heard i' the air; strange screams of death,</A><br>
-<A NAME=2.3.71>And prophesying with accents terrible</A><br>
-<A NAME=2.3.72>Of dire combustion and confused events</A><br>
-<A NAME=2.3.73>New hatch'd to the woeful time: the obscure bird</A><br>
-<A NAME=2.3.74>Clamour'd the livelong night: some say, the earth</A><br>
-<A NAME=2.3.75>Was feverous and did shake.</A><br>
-</blockquote>
-
-<A NAME=speech21><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.3.76>'Twas a rough night.</A><br>
-</blockquote>
-
-<A NAME=speech22><b>LENNOX</b></a>
-<blockquote>
-<A NAME=2.3.77>My young remembrance cannot parallel</A><br>
-<A NAME=2.3.78>A fellow to it.</A><br>
-<p><i>Re-enter MACDUFF</i></p>
-</blockquote>
-
-<A NAME=speech23><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.3.79>O horror, horror, horror! Tongue nor heart</A><br>
-<A NAME=2.3.80>Cannot conceive nor name thee!</A><br>
-</blockquote>
-
-<A NAME=speech24><b>MACBETH</b></a>
-
-<A NAME=speech25><b>LENNOX</b></a>
-<blockquote>
-<A NAME=2.3.81>What's the matter.</A><br>
-</blockquote>
-
-<A NAME=speech26><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.3.82>Confusion now hath made his masterpiece!</A><br>
-<A NAME=2.3.83>Most sacrilegious murder hath broke ope</A><br>
-<A NAME=2.3.84>The Lord's anointed temple, and stole thence</A><br>
-<A NAME=2.3.85>The life o' the building!</A><br>
-</blockquote>
-
-<A NAME=speech27><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.3.86>What is 't you say? the life?</A><br>
-</blockquote>
-
-<A NAME=speech28><b>LENNOX</b></a>
-<blockquote>
-<A NAME=2.3.87>Mean you his majesty?</A><br>
-</blockquote>
-
-<A NAME=speech29><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.3.88>Approach the chamber, and destroy your sight</A><br>
-<A NAME=2.3.89>With a new Gorgon: do not bid me speak;</A><br>
-<A NAME=2.3.90>See, and then speak yourselves.</A><br>
-<p><i>Exeunt MACBETH and LENNOX</i></p>
-<A NAME=2.3.91>Awake, awake!</A><br>
-<A NAME=2.3.92>Ring the alarum-bell. Murder and treason!</A><br>
-<A NAME=2.3.93>Banquo and Donalbain! Malcolm! awake!</A><br>
-<A NAME=2.3.94>Shake off this downy sleep, death's counterfeit,</A><br>
-<A NAME=2.3.95>And look on death itself! up, up, and see</A><br>
-<A NAME=2.3.96>The great doom's image! Malcolm! Banquo!</A><br>
-<A NAME=2.3.97>As from your graves rise up, and walk like sprites,</A><br>
-<A NAME=2.3.98>To countenance this horror! Ring the bell.</A><br>
-<p><i>Bell rings</i></p>
-<p><i>Enter LADY MACBETH</i></p>
-</blockquote>
-
-<A NAME=speech30><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=2.3.99>What's the business,</A><br>
-<A NAME=2.3.100>That such a hideous trumpet calls to parley</A><br>
-<A NAME=2.3.101>The sleepers of the house? speak, speak!</A><br>
-</blockquote>
-
-<A NAME=speech31><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.3.102>O gentle lady,</A><br>
-<A NAME=2.3.103>'Tis not for you to hear what I can speak:</A><br>
-<A NAME=2.3.104>The repetition, in a woman's ear,</A><br>
-<A NAME=2.3.105>Would murder as it fell.</A><br>
-<p><i>Enter BANQUO</i></p>
-<A NAME=2.3.106>O Banquo, Banquo,</A><br>
-<A NAME=2.3.107>Our royal master 's murder'd!</A><br>
-</blockquote>
-
-<A NAME=speech32><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=2.3.108>Woe, alas!</A><br>
-<A NAME=2.3.109>What, in our house?</A><br>
-</blockquote>
-
-<A NAME=speech33><b>BANQUO</b></a>
-<blockquote>
-<A NAME=2.3.110>Too cruel any where.</A><br>
-<A NAME=2.3.111>Dear Duff, I prithee, contradict thyself,</A><br>
-<A NAME=2.3.112>And say it is not so.</A><br>
-<p><i>Re-enter MACBETH and LENNOX, with ROSS</i></p>
-</blockquote>
-
-<A NAME=speech34><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.3.113>Had I but died an hour before this chance,</A><br>
-<A NAME=2.3.114>I had lived a blessed time; for, from this instant,</A><br>
-<A NAME=2.3.115>There 's nothing serious in mortality:</A><br>
-<A NAME=2.3.116>All is but toys: renown and grace is dead;</A><br>
-<A NAME=2.3.117>The wine of life is drawn, and the mere lees</A><br>
-<A NAME=2.3.118>Is left this vault to brag of.</A><br>
-<p><i>Enter MALCOLM and DONALBAIN</i></p>
-</blockquote>
-
-<A NAME=speech35><b>DONALBAIN</b></a>
-<blockquote>
-<A NAME=2.3.119>What is amiss?</A><br>
-</blockquote>
-
-<A NAME=speech36><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.3.120> You are, and do not know't:</A><br>
-<A NAME=2.3.121>The spring, the head, the fountain of your blood</A><br>
-<A NAME=2.3.122>Is stopp'd; the very source of it is stopp'd.</A><br>
-</blockquote>
-
-<A NAME=speech37><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.3.123>Your royal father 's murder'd.</A><br>
-</blockquote>
-
-<A NAME=speech38><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=2.3.124>O, by whom?</A><br>
-</blockquote>
-
-<A NAME=speech39><b>LENNOX</b></a>
-<blockquote>
-<A NAME=2.3.125>Those of his chamber, as it seem'd, had done 't:</A><br>
-<A NAME=2.3.126>Their hands and faces were an badged with blood;</A><br>
-<A NAME=2.3.127>So were their daggers, which unwiped we found</A><br>
-<A NAME=2.3.128>Upon their pillows:</A><br>
-<A NAME=2.3.129>They stared, and were distracted; no man's life</A><br>
-<A NAME=2.3.130>Was to be trusted with them.</A><br>
-</blockquote>
-
-<A NAME=speech40><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.3.131>O, yet I do repent me of my fury,</A><br>
-<A NAME=2.3.132>That I did kill them.</A><br>
-</blockquote>
-
-<A NAME=speech41><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.3.133>Wherefore did you so?</A><br>
-</blockquote>
-
-<A NAME=speech42><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.3.134>Who can be wise, amazed, temperate and furious,</A><br>
-<A NAME=2.3.135>Loyal and neutral, in a moment? No man:</A><br>
-<A NAME=2.3.136>The expedition my violent love</A><br>
-<A NAME=2.3.137>Outrun the pauser, reason. Here lay Duncan,</A><br>
-<A NAME=2.3.138>His silver skin laced with his golden blood;</A><br>
-<A NAME=2.3.139>And his gash'd stabs look'd like a breach in nature</A><br>
-<A NAME=2.3.140>For ruin's wasteful entrance: there, the murderers,</A><br>
-<A NAME=2.3.141>Steep'd in the colours of their trade, their daggers</A><br>
-<A NAME=2.3.142>Unmannerly breech'd with gore: who could refrain,</A><br>
-<A NAME=2.3.143>That had a heart to love, and in that heart</A><br>
-<A NAME=2.3.144>Courage to make 's love kno wn?</A><br>
-</blockquote>
-
-<A NAME=speech43><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=2.3.145>Help me hence, ho!</A><br>
-</blockquote>
-
-<A NAME=speech44><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.3.146>Look to the lady.</A><br>
-</blockquote>
-
-<A NAME=speech45><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=2.3.147>[Aside to DONALBAIN] Why do we hold our tongues,</A><br>
-<A NAME=2.3.148>That most may claim this argument for ours?</A><br>
-</blockquote>
-
-<A NAME=speech46><b>DONALBAIN</b></a>
-<blockquote>
-<A NAME=2.3.149>[Aside to MALCOLM] What should be spoken here,</A><br>
-<A NAME=2.3.150>where our fate,</A><br>
-<A NAME=2.3.151>Hid in an auger-hole, may rush, and seize us?</A><br>
-<A NAME=2.3.152>Let 's away;</A><br>
-<A NAME=2.3.153>Our tears are not yet brew'd.</A><br>
-</blockquote>
-
-<A NAME=speech47><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=2.3.154>[Aside to DONALBAIN] Nor our strong sorrow</A><br>
-<A NAME=2.3.155>Upon the foot of motion.</A><br>
-</blockquote>
-
-<A NAME=speech48><b>BANQUO</b></a>
-<blockquote>
-<A NAME=2.3.156>Look to the lady:</A><br>
-<p><i>LADY MACBETH is carried out</i></p>
-<A NAME=2.3.157>And when we have our naked frailties hid,</A><br>
-<A NAME=2.3.158>That suffer in exposure, let us meet,</A><br>
-<A NAME=2.3.159>And question this most bloody piece of work,</A><br>
-<A NAME=2.3.160>To know it further. Fears and scruples shake us:</A><br>
-<A NAME=2.3.161>In the great hand of God I stand; and thence</A><br>
-<A NAME=2.3.162>Against the undivulged pretence I fight</A><br>
-<A NAME=2.3.163>Of treasonous malice.</A><br>
-</blockquote>
-
-<A NAME=speech49><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.3.164>And so do I.</A><br>
-</blockquote>
-
-<A NAME=speech50><b>ALL</b></a>
-<blockquote>
-<A NAME=2.3.165>So all.</A><br>
-</blockquote>
-
-<A NAME=speech51><b>MACBETH</b></a>
-<blockquote>
-<A NAME=2.3.166>Let's briefly put on manly readiness,</A><br>
-<A NAME=2.3.167>And meet i' the hall together.</A><br>
-</blockquote>
-
-<A NAME=speech52><b>ALL</b></a>
-<blockquote>
-<A NAME=2.3.168>Well contented.</A><br>
-<p><i>Exeunt all but Malcolm and Donalbain.</i></p>
-</blockquote>
-
-<A NAME=speech53><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=2.3.169>What will you do? Let's not consort with them:</A><br>
-<A NAME=2.3.170>To show an unfelt sorrow is an office</A><br>
-<A NAME=2.3.171>Which the false man does easy. I'll to England.</A><br>
-</blockquote>
-
-<A NAME=speech54><b>DONALBAIN</b></a>
-<blockquote>
-<A NAME=2.3.172>To Ireland, I; our separated fortune</A><br>
-<A NAME=2.3.173>Shall keep us both the safer: where we are,</A><br>
-<A NAME=2.3.174>There's daggers in men's smiles: the near in blood,</A><br>
-<A NAME=2.3.175>The nearer bloody.</A><br>
-</blockquote>
-
-<A NAME=speech55><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=2.3.176> This murderous shaft that's shot</A><br>
-<A NAME=2.3.177>Hath not yet lighted, and our safest way</A><br>
-<A NAME=2.3.178>Is to avoid the aim. Therefore, to horse;</A><br>
-<A NAME=2.3.179>And let us not be dainty of leave-taking,</A><br>
-<A NAME=2.3.180>But shift away: there's warrant in that theft</A><br>
-<A NAME=2.3.181>Which steals itself, when there's no mercy left.</A><br>
-<p><i>Exeunt</i></p>
-</blockquote>
-<h3>SCENE IV. Outside Macbeth's castle.</h3>
-<p><blockquote>
-<i>Enter ROSS and an old Man</i>
-</blockquote>
-
-<A NAME=speech1><b>Old Man</b></a>
-<blockquote>
-<A NAME=2.4.1>Threescore and ten I can remember well:</A><br>
-<A NAME=2.4.2>Within the volume of which time I have seen</A><br>
-<A NAME=2.4.3>Hours dreadful and things strange; but this sore night</A><br>
-<A NAME=2.4.4>Hath trifled former knowings.</A><br>
-</blockquote>
-
-<A NAME=speech2><b>ROSS</b></a>
-<blockquote>
-<A NAME=2.4.5>Ah, good father,</A><br>
-<A NAME=2.4.6>Thou seest, the heavens, as troubled with man's act,</A><br>
-<A NAME=2.4.7>Threaten his bloody stage: by the clock, 'tis day,</A><br>
-<A NAME=2.4.8>And yet dark night strangles the travelling lamp:</A><br>
-<A NAME=2.4.9>Is't night's predominance, or the day's shame,</A><br>
-<A NAME=2.4.10>That darkness does the face of earth entomb,</A><br>
-<A NAME=2.4.11>When living light should kiss it?</A><br>
-</blockquote>
-
-<A NAME=speech3><b>Old Man</b></a>
-<blockquote>
-<A NAME=2.4.12>'Tis unnatural,</A><br>
-<A NAME=2.4.13>Even like the deed that's done. On Tuesday last,</A><br>
-<A NAME=2.4.14>A falcon, towering in her pride of place,</A><br>
-<A NAME=2.4.15>Was by a mousing owl hawk'd at and kill'd.</A><br>
-</blockquote>
-
-<A NAME=speech4><b>ROSS</b></a>
-<blockquote>
-<A NAME=2.4.16>And Duncan's horses--a thing most strange and certain--</A><br>
-<A NAME=2.4.17>Beauteous and swift, the minions of their race,</A><br>
-<A NAME=2.4.18>Turn'd wild in nature, broke their stalls, flung out,</A><br>
-<A NAME=2.4.19>Contending 'gainst obedience, as they would make</A><br>
-<A NAME=2.4.20>War with mankind.</A><br>
-</blockquote>
-
-<A NAME=speech5><b>Old Man</b></a>
-<blockquote>
-<A NAME=2.4.21>'Tis said they eat each other.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>ROSS</b></a>
-<blockquote>
-<A NAME=2.4.22>They did so, to the amazement of mine eyes</A><br>
-<A NAME=2.4.23>That look'd upon't. Here comes the good Macduff.</A><br>
-<p><i>Enter MACDUFF</i></p>
-<A NAME=2.4.24>How goes the world, sir, now?</A><br>
-</blockquote>
-
-<A NAME=speech7><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.4.25>Why, see you not?</A><br>
-</blockquote>
-
-<A NAME=speech8><b>ROSS</b></a>
-<blockquote>
-<A NAME=2.4.26>Is't known who did this more than bloody deed?</A><br>
-</blockquote>
-
-<A NAME=speech9><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.4.27>Those that Macbeth hath slain.</A><br>
-</blockquote>
-
-<A NAME=speech10><b>ROSS</b></a>
-<blockquote>
-<A NAME=2.4.28>Alas, the day!</A><br>
-<A NAME=2.4.29>What good could they pretend?</A><br>
-</blockquote>
-
-<A NAME=speech11><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.4.30>They were suborn'd:</A><br>
-<A NAME=2.4.31>Malcolm and Donalbain, the king's two sons,</A><br>
-<A NAME=2.4.32>Are stol'n away and fled; which puts upon them</A><br>
-<A NAME=2.4.33>Suspicion of the deed.</A><br>
-</blockquote>
-
-<A NAME=speech12><b>ROSS</b></a>
-<blockquote>
-<A NAME=2.4.34>'Gainst nature still!</A><br>
-<A NAME=2.4.35>Thriftless ambition, that wilt ravin up</A><br>
-<A NAME=2.4.36>Thine own life's means! Then 'tis most like</A><br>
-<A NAME=2.4.37>The sovereignty will fall upon Macbeth.</A><br>
-</blockquote>
-
-<A NAME=speech13><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.4.38>He is already named, and gone to Scone</A><br>
-<A NAME=2.4.39>To be invested.</A><br>
-</blockquote>
-
-<A NAME=speech14><b>ROSS</b></a>
-<blockquote>
-<A NAME=2.4.40> Where is Duncan's body?</A><br>
-</blockquote>
-
-<A NAME=speech15><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.4.41>Carried to Colmekill,</A><br>
-<A NAME=2.4.42>The sacred storehouse of his predecessors,</A><br>
-<A NAME=2.4.43>And guardian of their bones.</A><br>
-</blockquote>
-
-<A NAME=speech16><b>ROSS</b></a>
-<blockquote>
-<A NAME=2.4.44>Will you to Scone?</A><br>
-</blockquote>
-
-<A NAME=speech17><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.4.45>No, cousin, I'll to Fife.</A><br>
-</blockquote>
-
-<A NAME=speech18><b>ROSS</b></a>
-<blockquote>
-<A NAME=2.4.46>Well, I will thither.</A><br>
-</blockquote>
-
-<A NAME=speech19><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=2.4.47>Well, may you see things well done there: adieu!</A><br>
-<A NAME=2.4.48>Lest our old robes sit easier than our new!</A><br>
-</blockquote>
-
-<A NAME=speech20><b>ROSS</b></a>
-<blockquote>
-<A NAME=2.4.49>Farewell, father.</A><br>
-</blockquote>
-
-<A NAME=speech21><b>Old Man</b></a>
-<blockquote>
-<A NAME=2.4.50>God's benison go with you; and with those</A><br>
-<A NAME=2.4.51>That would make good of bad, and friends of foes!</A><br>
-<p><i>Exeunt</i></p>
-</blockquote><p>
-<H3>ACT III</h3>
-<h3>SCENE I. Forres. The palace.</h3>
-<p><blockquote>
-<i>Enter BANQUO</i>
-</blockquote>
-
-<A NAME=speech1><b>BANQUO</b></a>
-<blockquote>
-<A NAME=3.1.1>Thou hast it now: king, Cawdor, Glamis, all,</A><br>
-<A NAME=3.1.2>As the weird women promised, and, I fear,</A><br>
-<A NAME=3.1.3>Thou play'dst most foully for't: yet it was said</A><br>
-<A NAME=3.1.4>It should not stand in thy posterity,</A><br>
-<A NAME=3.1.5>But that myself should be the root and father</A><br>
-<A NAME=3.1.6>Of many kings. If there come truth from them--</A><br>
-<A NAME=3.1.7>As upon thee, Macbeth, their speeches shine--</A><br>
-<A NAME=3.1.8>Why, by the verities on thee made good,</A><br>
-<A NAME=3.1.9>May they not be my oracles as well,</A><br>
-<A NAME=3.1.10>And set me up in hope? But hush! no more.</A><br>
-<p><i>Sennet sounded. Enter MACBETH, as king, LADY MACBETH, as queen, LENNOX, ROSS, Lords, Ladies, and Attendants</i></p>
-</blockquote>
-
-<A NAME=speech2><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.1.11>Here's our chief guest.</A><br>
-</blockquote>
-
-<A NAME=speech3><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.1.12>If he had been forgotten,</A><br>
-<A NAME=3.1.13>It had been as a gap in our great feast,</A><br>
-<A NAME=3.1.14>And all-thing unbecoming.</A><br>
-</blockquote>
-
-<A NAME=speech4><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.1.15>To-night we hold a solemn supper sir,</A><br>
-<A NAME=3.1.16>And I'll request your presence.</A><br>
-</blockquote>
-
-<A NAME=speech5><b>BANQUO</b></a>
-<blockquote>
-<A NAME=3.1.17>Let your highness</A><br>
-<A NAME=3.1.18>Command upon me; to the which my duties</A><br>
-<A NAME=3.1.19>Are with a most indissoluble tie</A><br>
-<A NAME=3.1.20>For ever knit.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.1.21> Ride you this afternoon?</A><br>
-</blockquote>
-
-<A NAME=speech7><b>BANQUO</b></a>
-<blockquote>
-<A NAME=3.1.22>Ay, my good lord.</A><br>
-</blockquote>
-
-<A NAME=speech8><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.1.23>We should have else desired your good advice,</A><br>
-<A NAME=3.1.24>Which still hath been both grave and prosperous,</A><br>
-<A NAME=3.1.25>In this day's council; but we'll take to-morrow.</A><br>
-<A NAME=3.1.26>Is't far you ride?</A><br>
-</blockquote>
-
-<A NAME=speech9><b>BANQUO</b></a>
-<blockquote>
-<A NAME=3.1.27>As far, my lord, as will fill up the time</A><br>
-<A NAME=3.1.28>'Twixt this and supper: go not my horse the better,</A><br>
-<A NAME=3.1.29>I must become a borrower of the night</A><br>
-<A NAME=3.1.30>For a dark hour or twain.</A><br>
-</blockquote>
-
-<A NAME=speech10><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.1.31>Fail not our feast.</A><br>
-</blockquote>
-
-<A NAME=speech11><b>BANQUO</b></a>
-<blockquote>
-<A NAME=3.1.32>My lord, I will not.</A><br>
-</blockquote>
-
-<A NAME=speech12><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.1.33>We hear, our bloody cousins are bestow'd</A><br>
-<A NAME=3.1.34>In England and in Ireland, not confessing</A><br>
-<A NAME=3.1.35>Their cruel parricide, filling their hearers</A><br>
-<A NAME=3.1.36>With strange invention: but of that to-morrow,</A><br>
-<A NAME=3.1.37>When therewithal we shall have cause of state</A><br>
-<A NAME=3.1.38>Craving us jointly. Hie you to horse: adieu,</A><br>
-<A NAME=3.1.39>Till you return at night. Goes Fleance with you?</A><br>
-</blockquote>
-
-<A NAME=speech13><b>BANQUO</b></a>
-<blockquote>
-<A NAME=3.1.40>Ay, my good lord: our time does call upon 's.</A><br>
-</blockquote>
-
-<A NAME=speech14><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.1.41>I wish your horses swift and sure of foot;</A><br>
-<A NAME=3.1.42>And so I do commend you to their backs. Farewell.</A><br>
-<p><i>Exit BANQUO</i></p>
-<A NAME=3.1.43>Let every man be master of his time</A><br>
-<A NAME=3.1.44>Till seven at night: to make society</A><br>
-<A NAME=3.1.45>The sweeter welcome, we will keep ourself</A><br>
-<A NAME=3.1.46>Till supper-time alone: while then, God be with you!</A><br>
-<p><i>Exeunt all but MACBETH, and an attendant</i></p>
-<A NAME=3.1.47>Sirrah, a word with you: attend those men</A><br>
-<A NAME=3.1.48>Our pleasure?</A><br>
-</blockquote>
-
-<A NAME=speech15><b>ATTENDANT</b></a>
-<blockquote>
-<A NAME=3.1.49>They are, my lord, without the palace gate.</A><br>
-</blockquote>
-
-<A NAME=speech16><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.1.50>Bring them before us.</A><br>
-<p><i>Exit Attendant</i></p>
-<A NAME=3.1.51>To be thus is nothing;</A><br>
-<A NAME=3.1.52>But to be safely thus.--Our fears in Banquo</A><br>
-<A NAME=3.1.53>Stick deep; and in his royalty of nature</A><br>
-<A NAME=3.1.54>Reigns that which would be fear'd: 'tis much he dares;</A><br>
-<A NAME=3.1.55>And, to that dauntless temper of his mind,</A><br>
-<A NAME=3.1.56>He hath a wisdom that doth guide his valour</A><br>
-<A NAME=3.1.57>To act in safety. There is none but he</A><br>
-<A NAME=3.1.58>Whose being I do fear: and, under him,</A><br>
-<A NAME=3.1.59>My Genius is rebuked; as, it is said,</A><br>
-<A NAME=3.1.60>Mark Antony's was by Caesar. He chid the sisters</A><br>
-<A NAME=3.1.61>When first they put the name of king upon me,</A><br>
-<A NAME=3.1.62>And bade them speak to him: then prophet-like</A><br>
-<A NAME=3.1.63>They hail'd him father to a line of kings:</A><br>
-<A NAME=3.1.64>Upon my head they placed a fruitless crown,</A><br>
-<A NAME=3.1.65>And put a barren sceptre in my gripe,</A><br>
-<A NAME=3.1.66>Thence to be wrench'd with an unlineal hand,</A><br>
-<A NAME=3.1.67>No son of mine succeeding. If 't be so,</A><br>
-<A NAME=3.1.68>For Banquo's issue have I filed my mind;</A><br>
-<A NAME=3.1.69>For them the gracious Duncan have I murder'd;</A><br>
-<A NAME=3.1.70>Put rancours in the vessel of my peace</A><br>
-<A NAME=3.1.71>Only for them; and mine eternal jewel</A><br>
-<A NAME=3.1.72>Given to the common enemy of man,</A><br>
-<A NAME=3.1.73>To make them kings, the seed of Banquo kings!</A><br>
-<A NAME=3.1.74>Rather than so, come fate into the list.</A><br>
-<A NAME=3.1.75>And champion me to the utterance! Who's there!</A><br>
-<p><i>Re-enter Attendant, with two Murderers</i></p>
-<A NAME=3.1.76>Now go to the door, and stay there till we call.</A><br>
-<p><i>Exit Attendant</i></p>
-<A NAME=3.1.77>Was it not yesterday we spoke together?</A><br>
-</blockquote>
-
-<A NAME=speech17><b>First Murderer</b></a>
-<blockquote>
-<A NAME=3.1.78>It was, so please your highness.</A><br>
-</blockquote>
-
-<A NAME=speech18><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.1.79>Well then, now</A><br>
-<A NAME=3.1.80>Have you consider'd of my speeches? Know</A><br>
-<A NAME=3.1.81>That it was he in the times past which held you</A><br>
-<A NAME=3.1.82>So under fortune, which you thought had been</A><br>
-<A NAME=3.1.83>Our innocent self: this I made good to you</A><br>
-<A NAME=3.1.84>In our last conference, pass'd in probation with you,</A><br>
-<A NAME=3.1.85>How you were borne in hand, how cross'd,</A><br>
-<A NAME=3.1.86>the instruments,</A><br>
-<A NAME=3.1.87>Who wrought with them, and all things else that might</A><br>
-<A NAME=3.1.88>To half a soul and to a notion crazed</A><br>
-<A NAME=3.1.89>Say 'Thus did Banquo.'</A><br>
-</blockquote>
-
-<A NAME=speech19><b>First Murderer</b></a>
-<blockquote>
-<A NAME=3.1.90>You made it known to us.</A><br>
-</blockquote>
-
-<A NAME=speech20><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.1.91>I did so, and went further, which is now</A><br>
-<A NAME=3.1.92>Our point of second meeting. Do you find</A><br>
-<A NAME=3.1.93>Your patience so predominant in your nature</A><br>
-<A NAME=3.1.94>That you can let this go? Are you so gospell'd</A><br>
-<A NAME=3.1.95>To pray for this good man and for his issue,</A><br>
-<A NAME=3.1.96>Whose heavy hand hath bow'd you to the grave</A><br>
-<A NAME=3.1.97>And beggar'd yours for ever?</A><br>
-</blockquote>
-
-<A NAME=speech21><b>First Murderer</b></a>
-<blockquote>
-<A NAME=3.1.98>We are men, my liege.</A><br>
-</blockquote>
-
-<A NAME=speech22><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.1.99>Ay, in the catalogue ye go for men;</A><br>
-<A NAME=3.1.100>As hounds and greyhounds, mongrels, spaniels, curs,</A><br>
-<A NAME=3.1.101>Shoughs, water-rugs and demi-wolves, are clept</A><br>
-<A NAME=3.1.102>All by the name of dogs: the valued file</A><br>
-<A NAME=3.1.103>Distinguishes the swift, the slow, the subtle,</A><br>
-<A NAME=3.1.104>The housekeeper, the hunter, every one</A><br>
-<A NAME=3.1.105>According to the gift which bounteous nature</A><br>
-<A NAME=3.1.106>Hath in him closed; whereby he does receive</A><br>
-<A NAME=3.1.107>Particular addition. from the bill</A><br>
-<A NAME=3.1.108>That writes them all alike: and so of men.</A><br>
-<A NAME=3.1.109>Now, if you have a station in the file,</A><br>
-<A NAME=3.1.110>Not i' the worst rank of manhood, say 't;</A><br>
-<A NAME=3.1.111>And I will put that business in your bosoms,</A><br>
-<A NAME=3.1.112>Whose execution takes your enemy off,</A><br>
-<A NAME=3.1.113>Grapples you to the heart and love of us,</A><br>
-<A NAME=3.1.114>Who wear our health but sickly in his life,</A><br>
-<A NAME=3.1.115>Which in his death were perfect.</A><br>
-</blockquote>
-
-<A NAME=speech23><b>Second Murderer</b></a>
-<blockquote>
-<A NAME=3.1.116>I am one, my liege,</A><br>
-<A NAME=3.1.117>Whom the vile blows and buffets of the world</A><br>
-<A NAME=3.1.118>Have so incensed that I am reckless what</A><br>
-<A NAME=3.1.119>I do to spite the world.</A><br>
-</blockquote>
-
-<A NAME=speech24><b>First Murderer</b></a>
-<blockquote>
-<A NAME=3.1.120>And I another</A><br>
-<A NAME=3.1.121>So weary with disasters, tugg'd with fortune,</A><br>
-<A NAME=3.1.122>That I would set my lie on any chance,</A><br>
-<A NAME=3.1.123>To mend it, or be rid on't.</A><br>
-</blockquote>
-
-<A NAME=speech25><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.1.124>Both of you</A><br>
-<A NAME=3.1.125>Know Banquo was your enemy.</A><br>
-</blockquote>
-
-<A NAME=speech26><b>Both Murderers</b></a>
-<blockquote>
-<A NAME=3.1.126>True, my lord.</A><br>
-</blockquote>
-
-<A NAME=speech27><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.1.127>So is he mine; and in such bloody distance,</A><br>
-<A NAME=3.1.128>That every minute of his being thrusts</A><br>
-<A NAME=3.1.129>Against my near'st of life: and though I could</A><br>
-<A NAME=3.1.130>With barefaced power sweep him from my sight</A><br>
-<A NAME=3.1.131>And bid my will avouch it, yet I must not,</A><br>
-<A NAME=3.1.132>For certain friends that are both his and mine,</A><br>
-<A NAME=3.1.133>Whose loves I may not drop, but wail his fall</A><br>
-<A NAME=3.1.134>Who I myself struck down; and thence it is,</A><br>
-<A NAME=3.1.135>That I to your assistance do make love,</A><br>
-<A NAME=3.1.136>Masking the business from the common eye</A><br>
-<A NAME=3.1.137>For sundry weighty reasons.</A><br>
-</blockquote>
-
-<A NAME=speech28><b>Second Murderer</b></a>
-<blockquote>
-<A NAME=3.1.138>We shall, my lord,</A><br>
-<A NAME=3.1.139>Perform what you command us.</A><br>
-</blockquote>
-
-<A NAME=speech29><b>First Murderer</b></a>
-<blockquote>
-<A NAME=3.1.140>Though our lives--</A><br>
-</blockquote>
-
-<A NAME=speech30><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.1.141>Your spirits shine through you. Within this hour at most</A><br>
-<A NAME=3.1.142>I will advise you where to plant yourselves;</A><br>
-<A NAME=3.1.143>Acquaint you with the perfect spy o' the time,</A><br>
-<A NAME=3.1.144>The moment on't; for't must be done to-night,</A><br>
-<A NAME=3.1.145>And something from the palace; always thought</A><br>
-<A NAME=3.1.146>That I require a clearness: and with him--</A><br>
-<A NAME=3.1.147>To leave no rubs nor botches in the work--</A><br>
-<A NAME=3.1.148>Fleance his son, that keeps him company,</A><br>
-<A NAME=3.1.149>Whose absence is no less material to me</A><br>
-<A NAME=3.1.150>Than is his father's, must embrace the fate</A><br>
-<A NAME=3.1.151>Of that dark hour. Resolve yourselves apart:</A><br>
-<A NAME=3.1.152>I'll come to you anon.</A><br>
-</blockquote>
-
-<A NAME=speech31><b>Both Murderers</b></a>
-<blockquote>
-<A NAME=3.1.153>We are resolved, my lord.</A><br>
-</blockquote>
-
-<A NAME=speech32><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.1.154>I'll call upon you straight: abide within.</A><br>
-<p><i>Exeunt Murderers</i></p>
-<A NAME=3.1.155>It is concluded. Banquo, thy soul's flight,</A><br>
-<A NAME=3.1.156>If it find heaven, must find it out to-night.</A><br>
-<p><i>Exit</i></p>
-</blockquote>
-<h3>SCENE II. The palace.</h3>
-<p><blockquote>
-<i>Enter LADY MACBETH and a Servant</i>
-</blockquote>
-
-<A NAME=speech1><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.2.1>Is Banquo gone from court?</A><br>
-</blockquote>
-
-<A NAME=speech2><b>Servant</b></a>
-<blockquote>
-<A NAME=3.2.2>Ay, madam, but returns again to-night.</A><br>
-</blockquote>
-
-<A NAME=speech3><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.2.3>Say to the king, I would attend his leisure</A><br>
-<A NAME=3.2.4>For a few words.</A><br>
-</blockquote>
-
-<A NAME=speech4><b>Servant</b></a>
-<blockquote>
-<A NAME=3.2.5> Madam, I will.</A><br>
-<p><i>Exit</i></p>
-</blockquote>
-
-<A NAME=speech5><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.2.6>Nought's had, all's spent,</A><br>
-<A NAME=3.2.7>Where our desire is got without content:</A><br>
-<A NAME=3.2.8>'Tis safer to be that which we destroy</A><br>
-<A NAME=3.2.9>Than by destruction dwell in doubtful joy.</A><br>
-<p><i>Enter MACBETH</i></p>
-<A NAME=3.2.10>How now, my lord! why do you keep alone,</A><br>
-<A NAME=3.2.11>Of sorriest fancies your companions making,</A><br>
-<A NAME=3.2.12>Using those thoughts which should indeed have died</A><br>
-<A NAME=3.2.13>With them they think on? Things without all remedy</A><br>
-<A NAME=3.2.14>Should be without regard: what's done is done.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.2.15>We have scotch'd the snake, not kill'd it:</A><br>
-<A NAME=3.2.16>She'll close and be herself, whilst our poor malice</A><br>
-<A NAME=3.2.17>Remains in danger of her former tooth.</A><br>
-<A NAME=3.2.18>But let the frame of things disjoint, both the</A><br>
-<A NAME=3.2.19>worlds suffer,</A><br>
-<A NAME=3.2.20>Ere we will eat our meal in fear and sleep</A><br>
-<A NAME=3.2.21>In the affliction of these terrible dreams</A><br>
-<A NAME=3.2.22>That shake us nightly: better be with the dead,</A><br>
-<A NAME=3.2.23>Whom we, to gain our peace, have sent to peace,</A><br>
-<A NAME=3.2.24>Than on the torture of the mind to lie</A><br>
-<A NAME=3.2.25>In restless ecstasy. Duncan is in his grave;</A><br>
-<A NAME=3.2.26>After life's fitful fever he sleeps well;</A><br>
-<A NAME=3.2.27>Treason has done his worst: nor steel, nor poison,</A><br>
-<A NAME=3.2.28>Malice domestic, foreign levy, nothing,</A><br>
-<A NAME=3.2.29>Can touch him further.</A><br>
-</blockquote>
-
-<A NAME=speech7><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.2.30>Come on;</A><br>
-<A NAME=3.2.31>Gentle my lord, sleek o'er your rugged looks;</A><br>
-<A NAME=3.2.32>Be bright and jovial among your guests to-night.</A><br>
-</blockquote>
-
-<A NAME=speech8><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.2.33>So shall I, love; and so, I pray, be you:</A><br>
-<A NAME=3.2.34>Let your remembrance apply to Banquo;</A><br>
-<A NAME=3.2.35>Present him eminence, both with eye and tongue:</A><br>
-<A NAME=3.2.36>Unsafe the while, that we</A><br>
-<A NAME=3.2.37>Must lave our honours in these flattering streams,</A><br>
-<A NAME=3.2.38>And make our faces vizards to our hearts,</A><br>
-<A NAME=3.2.39>Disguising what they are.</A><br>
-</blockquote>
-
-<A NAME=speech9><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.2.40>You must leave this.</A><br>
-</blockquote>
-
-<A NAME=speech10><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.2.41>O, full of scorpions is my mind, dear wife!</A><br>
-<A NAME=3.2.42>Thou know'st that Banquo, and his Fleance, lives.</A><br>
-</blockquote>
-
-<A NAME=speech11><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.2.43>But in them nature's copy's not eterne.</A><br>
-</blockquote>
-
-<A NAME=speech12><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.2.44>There's comfort yet; they are assailable;</A><br>
-<A NAME=3.2.45>Then be thou jocund: ere the bat hath flown</A><br>
-<A NAME=3.2.46>His cloister'd flight, ere to black Hecate's summons</A><br>
-<A NAME=3.2.47>The shard-borne beetle with his drowsy hums</A><br>
-<A NAME=3.2.48>Hath rung night's yawning peal, there shall be done</A><br>
-<A NAME=3.2.49>A deed of dreadful note.</A><br>
-</blockquote>
-
-<A NAME=speech13><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.2.50>What's to be done?</A><br>
-</blockquote>
-
-<A NAME=speech14><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.2.51>Be innocent of the knowledge, dearest chuck,</A><br>
-<A NAME=3.2.52>Till thou applaud the deed. Come, seeling night,</A><br>
-<A NAME=3.2.53>Scarf up the tender eye of pitiful day;</A><br>
-<A NAME=3.2.54>And with thy bloody and invisible hand</A><br>
-<A NAME=3.2.55>Cancel and tear to pieces that great bond</A><br>
-<A NAME=3.2.56>Which keeps me pale! Light thickens; and the crow</A><br>
-<A NAME=3.2.57>Makes wing to the rooky wood:</A><br>
-<A NAME=3.2.58>Good things of day begin to droop and drowse;</A><br>
-<A NAME=3.2.59>While night's black agents to their preys do rouse.</A><br>
-<A NAME=3.2.60>Thou marvell'st at my words: but hold thee still;</A><br>
-<A NAME=3.2.61>Things bad begun make strong themselves by ill.</A><br>
-<A NAME=3.2.62>So, prithee, go with me.</A><br>
-<p><i>Exeunt</i></p>
-</blockquote>
-<h3>SCENE III. A park near the palace.</h3>
-<p><blockquote>
-<i>Enter three Murderers</i>
-</blockquote>
-
-<A NAME=speech1><b>First Murderer</b></a>
-<blockquote>
-<A NAME=3.3.1>But who did bid thee join with us?</A><br>
-</blockquote>
-
-<A NAME=speech2><b>Third Murderer</b></a>
-<blockquote>
-<A NAME=3.3.2>Macbeth.</A><br>
-</blockquote>
-
-<A NAME=speech3><b>Second Murderer</b></a>
-<blockquote>
-<A NAME=3.3.3>He needs not our mistrust, since he delivers</A><br>
-<A NAME=3.3.4>Our offices and what we have to do</A><br>
-<A NAME=3.3.5>To the direction just.</A><br>
-</blockquote>
-
-<A NAME=speech4><b>First Murderer</b></a>
-<blockquote>
-<A NAME=3.3.6>Then stand with us.</A><br>
-<A NAME=3.3.7>The west yet glimmers with some streaks of day:</A><br>
-<A NAME=3.3.8>Now spurs the lated traveller apace</A><br>
-<A NAME=3.3.9>To gain the timely inn; and near approaches</A><br>
-<A NAME=3.3.10>The subject of our watch.</A><br>
-</blockquote>
-
-<A NAME=speech5><b>Third Murderer</b></a>
-<blockquote>
-<A NAME=3.3.11>Hark! I hear horses.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>BANQUO</b></a>
-<blockquote>
-<A NAME=3.3.12>[Within] Give us a light there, ho!</A><br>
-</blockquote>
-
-<A NAME=speech7><b>Second Murderer</b></a>
-<blockquote>
-<A NAME=3.3.13>Then 'tis he: the rest</A><br>
-<A NAME=3.3.14>That are within the note of expectation</A><br>
-<A NAME=3.3.15>Already are i' the court.</A><br>
-</blockquote>
-
-<A NAME=speech8><b>First Murderer</b></a>
-<blockquote>
-<A NAME=3.3.16>His horses go about.</A><br>
-</blockquote>
-
-<A NAME=speech9><b>Third Murderer</b></a>
-<blockquote>
-<A NAME=3.3.17>Almost a mile: but he does usually,</A><br>
-<A NAME=3.3.18>So all men do, from hence to the palace gate</A><br>
-<A NAME=3.3.19>Make it their walk.</A><br>
-</blockquote>
-
-<A NAME=speech10><b>Second Murderer</b></a>
-<blockquote>
-<A NAME=3.3.20>A light, a light!</A><br>
-<p><i>Enter BANQUO, and FLEANCE with a torch</i></p>
-</blockquote>
-
-<A NAME=speech11><b>Third Murderer</b></a>
-<blockquote>
-<A NAME=3.3.21>'Tis he.</A><br>
-</blockquote>
-
-<A NAME=speech12><b>First Murderer</b></a>
-<blockquote>
-<A NAME=3.3.22>Stand to't.</A><br>
-</blockquote>
-
-<A NAME=speech13><b>BANQUO</b></a>
-<blockquote>
-<A NAME=3.3.23>It will be rain to-night.</A><br>
-</blockquote>
-
-<A NAME=speech14><b>First Murderer</b></a>
-<blockquote>
-<A NAME=3.3.24>Let it come down.</A><br>
-<p><i>They set upon BANQUO</i></p>
-</blockquote>
-
-<A NAME=speech15><b>BANQUO</b></a>
-<blockquote>
-<A NAME=3.3.25>O, treachery! Fly, good Fleance, fly, fly, fly!</A><br>
-<A NAME=3.3.26>Thou mayst revenge. O slave!</A><br>
-<p><i>Dies. FLEANCE escapes</i></p>
-</blockquote>
-
-<A NAME=speech16><b>Third Murderer</b></a>
-<blockquote>
-<A NAME=3.3.27>Who did strike out the light?</A><br>
-</blockquote>
-
-<A NAME=speech17><b>First Murderer</b></a>
-<blockquote>
-<A NAME=3.3.28>Wast not the way?</A><br>
-</blockquote>
-
-<A NAME=speech18><b>Third Murderer</b></a>
-<blockquote>
-<A NAME=3.3.29>There's but one down; the son is fled.</A><br>
-</blockquote>
-
-<A NAME=speech19><b>Second Murderer</b></a>
-<blockquote>
-<A NAME=3.3.30>We have lost</A><br>
-<A NAME=3.3.31>Best half of our affair.</A><br>
-</blockquote>
-
-<A NAME=speech20><b>First Murderer</b></a>
-<blockquote>
-<A NAME=3.3.32>Well, let's away, and say how much is done.</A><br>
-<p><i>Exeunt</i></p>
-</blockquote>
-<h3>SCENE IV. The same. Hall in the palace.</h3>
-<p><blockquote>
-<i>A banquet prepared. Enter MACBETH, LADY MACBETH, ROSS, LENNOX, Lords, and Attendants</i>
-</blockquote>
-
-<A NAME=speech1><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.1>You know your own degrees; sit down: at first</A><br>
-<A NAME=3.4.2>And last the hearty welcome.</A><br>
-</blockquote>
-
-<A NAME=speech2><b>Lords</b></a>
-<blockquote>
-<A NAME=3.4.3>Thanks to your majesty.</A><br>
-</blockquote>
-
-<A NAME=speech3><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.4>Ourself will mingle with society,</A><br>
-<A NAME=3.4.5>And play the humble host.</A><br>
-<A NAME=3.4.6>Our hostess keeps her state, but in best time</A><br>
-<A NAME=3.4.7>We will require her welcome.</A><br>
-</blockquote>
-
-<A NAME=speech4><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.8>Pronounce it for me, sir, to all our friends;</A><br>
-<A NAME=3.4.9>For my heart speaks they are welcome.</A><br>
-<p><i>First Murderer appears at the door</i></p>
-</blockquote>
-
-<A NAME=speech5><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.10>See, they encounter thee with their hearts' thanks.</A><br>
-<A NAME=3.4.11>Both sides are even: here I'll sit i' the midst:</A><br>
-<A NAME=3.4.12>Be large in mirth; anon we'll drink a measure</A><br>
-<A NAME=3.4.13>The table round.</A><br>
-<p><i>Approaching the door</i></p>
-<A NAME=3.4.14>There's blood on thy face.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>First Murderer</b></a>
-<blockquote>
-<A NAME=3.4.15>'Tis Banquo's then.</A><br>
-</blockquote>
-
-<A NAME=speech7><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.16>'Tis better thee without than he within.</A><br>
-<A NAME=3.4.17>Is he dispatch'd?</A><br>
-</blockquote>
-
-<A NAME=speech8><b>First Murderer</b></a>
-<blockquote>
-<A NAME=3.4.18>My lord, his throat is cut; that I did for him.</A><br>
-</blockquote>
-
-<A NAME=speech9><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.19>Thou art the best o' the cut-throats: yet he's good</A><br>
-<A NAME=3.4.20>That did the like for Fleance: if thou didst it,</A><br>
-<A NAME=3.4.21>Thou art the nonpareil.</A><br>
-</blockquote>
-
-<A NAME=speech10><b>First Murderer</b></a>
-<blockquote>
-<A NAME=3.4.22>Most royal sir,</A><br>
-<A NAME=3.4.23>Fleance is 'scaped.</A><br>
-</blockquote>
-
-<A NAME=speech11><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.24>Then comes my fit again: I had else been perfect,</A><br>
-<A NAME=3.4.25>Whole as the marble, founded as the rock,</A><br>
-<A NAME=3.4.26>As broad and general as the casing air:</A><br>
-<A NAME=3.4.27>But now I am cabin'd, cribb'd, confined, bound in</A><br>
-<A NAME=3.4.28>To saucy doubts and fears. But Banquo's safe?</A><br>
-</blockquote>
-
-<A NAME=speech12><b>First Murderer</b></a>
-<blockquote>
-<A NAME=3.4.29>Ay, my good lord: safe in a ditch he bides,</A><br>
-<A NAME=3.4.30>With twenty trenched gashes on his head;</A><br>
-<A NAME=3.4.31>The least a death to nature.</A><br>
-</blockquote>
-
-<A NAME=speech13><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.32>Thanks for that:</A><br>
-<A NAME=3.4.33>There the grown serpent lies; the worm that's fled</A><br>
-<A NAME=3.4.34>Hath nature that in time will venom breed,</A><br>
-<A NAME=3.4.35>No teeth for the present. Get thee gone: to-morrow</A><br>
-<A NAME=3.4.36>We'll hear, ourselves, again.</A><br>
-<p><i>Exit Murderer</i></p>
-</blockquote>
-
-<A NAME=speech14><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.37>My royal lord,</A><br>
-<A NAME=3.4.38>You do not give the cheer: the feast is sold</A><br>
-<A NAME=3.4.39>That is not often vouch'd, while 'tis a-making,</A><br>
-<A NAME=3.4.40>'Tis given with welcome: to feed were best at home;</A><br>
-<A NAME=3.4.41>From thence the sauce to meat is ceremony;</A><br>
-<A NAME=3.4.42>Meeting were bare without it.</A><br>
-</blockquote>
-
-<A NAME=speech15><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.43>Sweet remembrancer!</A><br>
-<A NAME=3.4.44>Now, good digestion wait on appetite,</A><br>
-<A NAME=3.4.45>And health on both!</A><br>
-</blockquote>
-
-<A NAME=speech16><b>LENNOX</b></a>
-<blockquote>
-<A NAME=3.4.46>May't please your highness sit.</A><br>
-<p><i>The GHOST OF BANQUO enters, and sits in MACBETH's place</i></p>
-</blockquote>
-
-<A NAME=speech17><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.47>Here had we now our country's honour roof'd,</A><br>
-<A NAME=3.4.48>Were the graced person of our Banquo present;</A><br>
-<A NAME=3.4.49>Who may I rather challenge for unkindness</A><br>
-<A NAME=3.4.50>Than pity for mischance!</A><br>
-</blockquote>
-
-<A NAME=speech18><b>ROSS</b></a>
-<blockquote>
-<A NAME=3.4.51>His absence, sir,</A><br>
-<A NAME=3.4.52>Lays blame upon his promise. Please't your highness</A><br>
-<A NAME=3.4.53>To grace us with your royal company.</A><br>
-</blockquote>
-
-<A NAME=speech19><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.54>The table's full.</A><br>
-</blockquote>
-
-<A NAME=speech20><b>LENNOX</b></a>
-<blockquote>
-<A NAME=3.4.55> Here is a place reserved, sir.</A><br>
-</blockquote>
-
-<A NAME=speech21><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.56>Where?</A><br>
-</blockquote>
-
-<A NAME=speech22><b>LENNOX</b></a>
-<blockquote>
-<A NAME=3.4.57>Here, my good lord. What is't that moves your highness?</A><br>
-</blockquote>
-
-<A NAME=speech23><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.58>Which of you have done this?</A><br>
-</blockquote>
-
-<A NAME=speech24><b>Lords</b></a>
-<blockquote>
-<A NAME=3.4.59>What, my good lord?</A><br>
-</blockquote>
-
-<A NAME=speech25><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.60>Thou canst not say I did it: never shake</A><br>
-<A NAME=3.4.61>Thy gory locks at me.</A><br>
-</blockquote>
-
-<A NAME=speech26><b>ROSS</b></a>
-<blockquote>
-<A NAME=3.4.62>Gentlemen, rise: his highness is not well.</A><br>
-</blockquote>
-
-<A NAME=speech27><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.63>Sit, worthy friends: my lord is often thus,</A><br>
-<A NAME=3.4.64>And hath been from his youth: pray you, keep seat;</A><br>
-<A NAME=3.4.65>The fit is momentary; upon a thought</A><br>
-<A NAME=3.4.66>He will again be well: if much you note him,</A><br>
-<A NAME=3.4.67>You shall offend him and extend his passion:</A><br>
-<A NAME=3.4.68>Feed, and regard him not. Are you a man?</A><br>
-</blockquote>
-
-<A NAME=speech28><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.69>Ay, and a bold one, that dare look on that</A><br>
-<A NAME=3.4.70>Which might appal the devil.</A><br>
-</blockquote>
-
-<A NAME=speech29><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.71>O proper stuff!</A><br>
-<A NAME=3.4.72>This is the very painting of your fear:</A><br>
-<A NAME=3.4.73>This is the air-drawn dagger which, you said,</A><br>
-<A NAME=3.4.74>Led you to Duncan. O, these flaws and starts,</A><br>
-<A NAME=3.4.75>Impostors to true fear, would well become</A><br>
-<A NAME=3.4.76>A woman's story at a winter's fire,</A><br>
-<A NAME=3.4.77>Authorized by her grandam. Shame itself!</A><br>
-<A NAME=3.4.78>Why do you make such faces? When all's done,</A><br>
-<A NAME=3.4.79>You look but on a stool.</A><br>
-</blockquote>
-
-<A NAME=speech30><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.80>Prithee, see there! behold! look! lo!</A><br>
-<A NAME=3.4.81>how say you?</A><br>
-<A NAME=3.4.82>Why, what care I? If thou canst nod, speak too.</A><br>
-<A NAME=3.4.83>If charnel-houses and our graves must send</A><br>
-<A NAME=3.4.84>Those that we bury back, our monuments</A><br>
-<A NAME=3.4.85>Shall be the maws of kites.</A><br>
-<p><i>GHOST OF BANQUO vanishes</i></p>
-</blockquote>
-
-<A NAME=speech31><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.86>What, quite unmann'd in folly?</A><br>
-</blockquote>
-
-<A NAME=speech32><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.87>If I stand here, I saw him.</A><br>
-</blockquote>
-
-<A NAME=speech33><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.88>Fie, for shame!</A><br>
-</blockquote>
-
-<A NAME=speech34><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.89>Blood hath been shed ere now, i' the olden time,</A><br>
-<A NAME=3.4.90>Ere human statute purged the gentle weal;</A><br>
-<A NAME=3.4.91>Ay, and since too, murders have been perform'd</A><br>
-<A NAME=3.4.92>Too terrible for the ear: the times have been,</A><br>
-<A NAME=3.4.93>That, when the brains were out, the man would die,</A><br>
-<A NAME=3.4.94>And there an end; but now they rise again,</A><br>
-<A NAME=3.4.95>With twenty mortal murders on their crowns,</A><br>
-<A NAME=3.4.96>And push us from our stools: this is more strange</A><br>
-<A NAME=3.4.97>Than such a murder is.</A><br>
-</blockquote>
-
-<A NAME=speech35><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.98>My worthy lord,</A><br>
-<A NAME=3.4.99>Your noble friends do lack you.</A><br>
-</blockquote>
-
-<A NAME=speech36><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.100>I do forget.</A><br>
-<A NAME=3.4.101>Do not muse at me, my most worthy friends,</A><br>
-<A NAME=3.4.102>I have a strange infirmity, which is nothing</A><br>
-<A NAME=3.4.103>To those that know me. Come, love and health to all;</A><br>
-<A NAME=3.4.104>Then I'll sit down. Give me some wine; fill full.</A><br>
-<A NAME=3.4.105>I drink to the general joy o' the whole table,</A><br>
-<A NAME=3.4.106>And to our dear friend Banquo, whom we miss;</A><br>
-<A NAME=3.4.107>Would he were here! to all, and him, we thirst,</A><br>
-<A NAME=3.4.108>And all to all.</A><br>
-</blockquote>
-
-<A NAME=speech37><b>Lords</b></a>
-<blockquote>
-<A NAME=3.4.109> Our duties, and the pledge.</A><br>
-<p><i>Re-enter GHOST OF BANQUO</i></p>
-</blockquote>
-
-<A NAME=speech38><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.110>Avaunt! and quit my sight! let the earth hide thee!</A><br>
-<A NAME=3.4.111>Thy bones are marrowless, thy blood is cold;</A><br>
-<A NAME=3.4.112>Thou hast no speculation in those eyes</A><br>
-<A NAME=3.4.113>Which thou dost glare with!</A><br>
-</blockquote>
-
-<A NAME=speech39><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.114>Think of this, good peers,</A><br>
-<A NAME=3.4.115>But as a thing of custom: 'tis no other;</A><br>
-<A NAME=3.4.116>Only it spoils the pleasure of the time.</A><br>
-</blockquote>
-
-<A NAME=speech40><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.117>What man dare, I dare:</A><br>
-<A NAME=3.4.118>Approach thou like the rugged Russian bear,</A><br>
-<A NAME=3.4.119>The arm'd rhinoceros, or the Hyrcan tiger;</A><br>
-<A NAME=3.4.120>Take any shape but that, and my firm nerves</A><br>
-<A NAME=3.4.121>Shall never tremble: or be alive again,</A><br>
-<A NAME=3.4.122>And dare me to the desert with thy sword;</A><br>
-<A NAME=3.4.123>If trembling I inhabit then, protest me</A><br>
-<A NAME=3.4.124>The baby of a girl. Hence, horrible shadow!</A><br>
-<A NAME=3.4.125>Unreal mockery, hence!</A><br>
-<p><i>GHOST OF BANQUO vanishes</i></p>
-<A NAME=3.4.126>Why, so: being gone,</A><br>
-<A NAME=3.4.127>I am a man again. Pray you, sit still.</A><br>
-</blockquote>
-
-<A NAME=speech41><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.128>You have displaced the mirth, broke the good meeting,</A><br>
-<A NAME=3.4.129>With most admired disorder.</A><br>
-</blockquote>
-
-<A NAME=speech42><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.130>Can such things be,</A><br>
-<A NAME=3.4.131>And overcome us like a summer's cloud,</A><br>
-<A NAME=3.4.132>Without our special wonder? You make me strange</A><br>
-<A NAME=3.4.133>Even to the disposition that I owe,</A><br>
-<A NAME=3.4.134>When now I think you can behold such sights,</A><br>
-<A NAME=3.4.135>And keep the natural ruby of your cheeks,</A><br>
-<A NAME=3.4.136>When mine is blanched with fear.</A><br>
-</blockquote>
-
-<A NAME=speech43><b>ROSS</b></a>
-<blockquote>
-<A NAME=3.4.137>What sights, my lord?</A><br>
-</blockquote>
-
-<A NAME=speech44><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.138>I pray you, speak not; he grows worse and worse;</A><br>
-<A NAME=3.4.139>Question enrages him. At once, good night:</A><br>
-<A NAME=3.4.140>Stand not upon the order of your going,</A><br>
-<A NAME=3.4.141>But go at once.</A><br>
-</blockquote>
-
-<A NAME=speech45><b>LENNOX</b></a>
-<blockquote>
-<A NAME=3.4.142> Good night; and better health</A><br>
-<A NAME=3.4.143>Attend his majesty!</A><br>
-</blockquote>
-
-<A NAME=speech46><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.144>A kind good night to all!</A><br>
-<p><i>Exeunt all but MACBETH and LADY MACBETH</i></p>
-</blockquote>
-
-<A NAME=speech47><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.145>It will have blood; they say, blood will have blood:</A><br>
-<A NAME=3.4.146>Stones have been known to move and trees to speak;</A><br>
-<A NAME=3.4.147>Augurs and understood relations have</A><br>
-<A NAME=3.4.148>By magot-pies and choughs and rooks brought forth</A><br>
-<A NAME=3.4.149>The secret'st man of blood. What is the night?</A><br>
-</blockquote>
-
-<A NAME=speech48><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.150>Almost at odds with morning, which is which.</A><br>
-</blockquote>
-
-<A NAME=speech49><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.151>How say'st thou, that Macduff denies his person</A><br>
-<A NAME=3.4.152>At our great bidding?</A><br>
-</blockquote>
-
-<A NAME=speech50><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.153>Did you send to him, sir?</A><br>
-</blockquote>
-
-<A NAME=speech51><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.154>I hear it by the way; but I will send:</A><br>
-<A NAME=3.4.155>There's not a one of them but in his house</A><br>
-<A NAME=3.4.156>I keep a servant fee'd. I will to-morrow,</A><br>
-<A NAME=3.4.157>And betimes I will, to the weird sisters:</A><br>
-<A NAME=3.4.158>More shall they speak; for now I am bent to know,</A><br>
-<A NAME=3.4.159>By the worst means, the worst. For mine own good,</A><br>
-<A NAME=3.4.160>All causes shall give way: I am in blood</A><br>
-<A NAME=3.4.161>Stepp'd in so far that, should I wade no more,</A><br>
-<A NAME=3.4.162>Returning were as tedious as go o'er:</A><br>
-<A NAME=3.4.163>Strange things I have in head, that will to hand;</A><br>
-<A NAME=3.4.164>Which must be acted ere they may be scann'd.</A><br>
-</blockquote>
-
-<A NAME=speech52><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.165>You lack the season of all natures, sleep.</A><br>
-</blockquote>
-
-<A NAME=speech53><b>MACBETH</b></a>
-<blockquote>
-<A NAME=3.4.166>Come, we'll to sleep. My strange and self-abuse</A><br>
-<A NAME=3.4.167>Is the initiate fear that wants hard use:</A><br>
-<A NAME=3.4.168>We are yet but young in deed.</A><br>
-<p><i>Exeunt</i></p>
-</blockquote>
-<h3>SCENE V. A Heath.</h3>
-<p><blockquote>
-<i>Thunder. Enter the three Witches meeting HECATE</i>
-</blockquote>
-
-<A NAME=speech1><b>First Witch</b></a>
-<blockquote>
-<A NAME=3.5.1>Why, how now, Hecate! you look angerly.</A><br>
-</blockquote>
-
-<A NAME=speech2><b>HECATE</b></a>
-<blockquote>
-<A NAME=3.5.2>Have I not reason, beldams as you are,</A><br>
-<A NAME=3.5.3>Saucy and overbold? How did you dare</A><br>
-<A NAME=3.5.4>To trade and traffic with Macbeth</A><br>
-<A NAME=3.5.5>In riddles and affairs of death;</A><br>
-<A NAME=3.5.6>And I, the mistress of your charms,</A><br>
-<A NAME=3.5.7>The close contriver of all harms,</A><br>
-<A NAME=3.5.8>Was never call'd to bear my part,</A><br>
-<A NAME=3.5.9>Or show the glory of our art?</A><br>
-<A NAME=3.5.10>And, which is worse, all you have done</A><br>
-<A NAME=3.5.11>Hath been but for a wayward son,</A><br>
-<A NAME=3.5.12>Spiteful and wrathful, who, as others do,</A><br>
-<A NAME=3.5.13>Loves for his own ends, not for you.</A><br>
-<A NAME=3.5.14>But make amends now: get you gone,</A><br>
-<A NAME=3.5.15>And at the pit of Acheron</A><br>
-<A NAME=3.5.16>Meet me i' the morning: thither he</A><br>
-<A NAME=3.5.17>Will come to know his destiny:</A><br>
-<A NAME=3.5.18>Your vessels and your spells provide,</A><br>
-<A NAME=3.5.19>Your charms and every thing beside.</A><br>
-<A NAME=3.5.20>I am for the air; this night I'll spend</A><br>
-<A NAME=3.5.21>Unto a dismal and a fatal end:</A><br>
-<A NAME=3.5.22>Great business must be wrought ere noon:</A><br>
-<A NAME=3.5.23>Upon the corner of the moon</A><br>
-<A NAME=3.5.24>There hangs a vaporous drop profound;</A><br>
-<A NAME=3.5.25>I'll catch it ere it come to ground:</A><br>
-<A NAME=3.5.26>And that distill'd by magic sleights</A><br>
-<A NAME=3.5.27>Shall raise such artificial sprites</A><br>
-<A NAME=3.5.28>As by the strength of their illusion</A><br>
-<A NAME=3.5.29>Shall draw him on to his confusion:</A><br>
-<A NAME=3.5.30>He shall spurn fate, scorn death, and bear</A><br>
-<A NAME=3.5.31>He hopes 'bove wisdom, grace and fear:</A><br>
-<A NAME=3.5.32>And you all know, security</A><br>
-<A NAME=3.5.33>Is mortals' chiefest enemy.</A><br>
-<p><i>Music and a song within: 'Come away, come away,' & c</i></p>
-<A NAME=3.5.34>Hark! I am call'd; my little spirit, see,</A><br>
-<A NAME=3.5.35>Sits in a foggy cloud, and stays for me.</A><br>
-<p><i>Exit</i></p>
-</blockquote>
-
-<A NAME=speech3><b>First Witch</b></a>
-<blockquote>
-<A NAME=3.5.36>Come, let's make haste; she'll soon be back again.</A><br>
-<p><i>Exeunt</i></p>
-</blockquote>
-<h3>SCENE VI. Forres. The palace.</h3>
-<p><blockquote>
-<i>Enter LENNOX and another Lord</i>
-</blockquote>
-
-<A NAME=speech1><b>LENNOX</b></a>
-<blockquote>
-<A NAME=3.6.1>My former speeches have but hit your thoughts,</A><br>
-<A NAME=3.6.2>Which can interpret further: only, I say,</A><br>
-<A NAME=3.6.3>Things have been strangely borne. The</A><br>
-<A NAME=3.6.4>gracious Duncan</A><br>
-<A NAME=3.6.5>Was pitied of Macbeth: marry, he was dead:</A><br>
-<A NAME=3.6.6>And the right-valiant Banquo walk'd too late;</A><br>
-<A NAME=3.6.7>Whom, you may say, if't please you, Fleance kill'd,</A><br>
-<A NAME=3.6.8>For Fleance fled: men must not walk too late.</A><br>
-<A NAME=3.6.9>Who cannot want the thought how monstrous</A><br>
-<A NAME=3.6.10>It was for Malcolm and for Donalbain</A><br>
-<A NAME=3.6.11>To kill their gracious father? damned fact!</A><br>
-<A NAME=3.6.12>How it did grieve Macbeth! did he not straight</A><br>
-<A NAME=3.6.13>In pious rage the two delinquents tear,</A><br>
-<A NAME=3.6.14>That were the slaves of drink and thralls of sleep?</A><br>
-<A NAME=3.6.15>Was not that nobly done? Ay, and wisely too;</A><br>
-<A NAME=3.6.16>For 'twould have anger'd any heart alive</A><br>
-<A NAME=3.6.17>To hear the men deny't. So that, I say,</A><br>
-<A NAME=3.6.18>He has borne all things well: and I do think</A><br>
-<A NAME=3.6.19>That had he Duncan's sons under his key--</A><br>
-<A NAME=3.6.20>As, an't please heaven, he shall not--they</A><br>
-<A NAME=3.6.21>should find</A><br>
-<A NAME=3.6.22>What 'twere to kill a father; so should Fleance.</A><br>
-<A NAME=3.6.23>But, peace! for from broad words and 'cause he fail'd</A><br>
-<A NAME=3.6.24>His presence at the tyrant's feast, I hear</A><br>
-<A NAME=3.6.25>Macduff lives in disgrace: sir, can you tell</A><br>
-<A NAME=3.6.26>Where he bestows himself?</A><br>
-</blockquote>
-
-<A NAME=speech2><b>Lord</b></a>
-<blockquote>
-<A NAME=3.6.27>The son of Duncan,</A><br>
-<A NAME=3.6.28>From whom this tyrant holds the due of birth</A><br>
-<A NAME=3.6.29>Lives in the English court, and is received</A><br>
-<A NAME=3.6.30>Of the most pious Edward with such grace</A><br>
-<A NAME=3.6.31>That the malevolence of fortune nothing</A><br>
-<A NAME=3.6.32>Takes from his high respect: thither Macduff</A><br>
-<A NAME=3.6.33>Is gone to pray the holy king, upon his aid</A><br>
-<A NAME=3.6.34>To wake Northumberland and warlike Siward:</A><br>
-<A NAME=3.6.35>That, by the help of these--with Him above</A><br>
-<A NAME=3.6.36>To ratify the work--we may again</A><br>
-<A NAME=3.6.37>Give to our tables meat, sleep to our nights,</A><br>
-<A NAME=3.6.38>Free from our feasts and banquets bloody knives,</A><br>
-<A NAME=3.6.39>Do faithful homage and receive free honours:</A><br>
-<A NAME=3.6.40>All which we pine for now: and this report</A><br>
-<A NAME=3.6.41>Hath so exasperate the king that he</A><br>
-<A NAME=3.6.42>Prepares for some attempt of war.</A><br>
-</blockquote>
-
-<A NAME=speech3><b>LENNOX</b></a>
-<blockquote>
-<A NAME=3.6.43>Sent he to Macduff?</A><br>
-</blockquote>
-
-<A NAME=speech4><b>Lord</b></a>
-<blockquote>
-<A NAME=3.6.44>He did: and with an absolute 'Sir, not I,'</A><br>
-<A NAME=3.6.45>The cloudy messenger turns me his back,</A><br>
-<A NAME=3.6.46>And hums, as who should say 'You'll rue the time</A><br>
-<A NAME=3.6.47>That clogs me with this answer.'</A><br>
-</blockquote>
-
-<A NAME=speech5><b>LENNOX</b></a>
-<blockquote>
-<A NAME=3.6.48>And that well might</A><br>
-<A NAME=3.6.49>Advise him to a caution, to hold what distance</A><br>
-<A NAME=3.6.50>His wisdom can provide. Some holy angel</A><br>
-<A NAME=3.6.51>Fly to the court of England and unfold</A><br>
-<A NAME=3.6.52>His message ere he come, that a swift blessing</A><br>
-<A NAME=3.6.53>May soon return to this our suffering country</A><br>
-<A NAME=3.6.54>Under a hand accursed!</A><br>
-</blockquote>
-
-<A NAME=speech6><b>Lord</b></a>
-<blockquote>
-<A NAME=3.6.55>I'll send my prayers with him.</A><br>
-<p><i>Exeunt</i></p>
-</blockquote><p>
-<H3>ACT IV</h3>
-<h3>SCENE I. A cavern. In the middle, a boiling cauldron.</h3>
-<p><blockquote>
-<i>Thunder. Enter the three Witches</i>
-</blockquote>
-
-<A NAME=speech1><b>First Witch</b></a>
-<blockquote>
-<A NAME=4.1.1>Thrice the brinded cat hath mew'd.</A><br>
-</blockquote>
-
-<A NAME=speech2><b>Second Witch</b></a>
-<blockquote>
-<A NAME=4.1.2>Thrice and once the hedge-pig whined.</A><br>
-</blockquote>
-
-<A NAME=speech3><b>Third Witch</b></a>
-<blockquote>
-<A NAME=4.1.3>Harpier cries 'Tis time, 'tis time.</A><br>
-</blockquote>
-
-<A NAME=speech4><b>First Witch</b></a>
-<blockquote>
-<A NAME=4.1.4>Round about the cauldron go;</A><br>
-<A NAME=4.1.5>In the poison'd entrails throw.</A><br>
-<A NAME=4.1.6>Toad, that under cold stone</A><br>
-<A NAME=4.1.7>Days and nights has thirty-one</A><br>
-<A NAME=4.1.8>Swelter'd venom sleeping got,</A><br>
-<A NAME=4.1.9>Boil thou first i' the charmed pot.</A><br>
-</blockquote>
-
-<A NAME=speech5><b>ALL</b></a>
-<blockquote>
-<A NAME=4.1.10>Double, double toil and trouble;</A><br>
-<A NAME=4.1.11>Fire burn, and cauldron bubble.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>Second Witch</b></a>
-<blockquote>
-<A NAME=4.1.12>Fillet of a fenny snake,</A><br>
-<A NAME=4.1.13>In the cauldron boil and bake;</A><br>
-<A NAME=4.1.14>Eye of newt and toe of frog,</A><br>
-<A NAME=4.1.15>Wool of bat and tongue of dog,</A><br>
-<A NAME=4.1.16>Adder's fork and blind-worm's sting,</A><br>
-<A NAME=4.1.17>Lizard's leg and owlet's wing,</A><br>
-<A NAME=4.1.18>For a charm of powerful trouble,</A><br>
-<A NAME=4.1.19>Like a hell-broth boil and bubble.</A><br>
-</blockquote>
-
-<A NAME=speech7><b>ALL</b></a>
-<blockquote>
-<A NAME=4.1.20>Double, double toil and trouble;</A><br>
-<A NAME=4.1.21>Fire burn and cauldron bubble.</A><br>
-</blockquote>
-
-<A NAME=speech8><b>Third Witch</b></a>
-<blockquote>
-<A NAME=4.1.22>Scale of dragon, tooth of wolf,</A><br>
-<A NAME=4.1.23>Witches' mummy, maw and gulf</A><br>
-<A NAME=4.1.24>Of the ravin'd salt-sea shark,</A><br>
-<A NAME=4.1.25>Root of hemlock digg'd i' the dark,</A><br>
-<A NAME=4.1.26>Liver of blaspheming Jew,</A><br>
-<A NAME=4.1.27>Gall of goat, and slips of yew</A><br>
-<A NAME=4.1.28>Silver'd in the moon's eclipse,</A><br>
-<A NAME=4.1.29>Nose of Turk and Tartar's lips,</A><br>
-<A NAME=4.1.30>Finger of birth-strangled babe</A><br>
-<A NAME=4.1.31>Ditch-deliver'd by a drab,</A><br>
-<A NAME=4.1.32>Make the gruel thick and slab:</A><br>
-<A NAME=4.1.33>Add thereto a tiger's chaudron,</A><br>
-<A NAME=4.1.34>For the ingredients of our cauldron.</A><br>
-</blockquote>
-
-<A NAME=speech9><b>ALL</b></a>
-<blockquote>
-<A NAME=4.1.35>Double, double toil and trouble;</A><br>
-<A NAME=4.1.36>Fire burn and cauldron bubble.</A><br>
-</blockquote>
-
-<A NAME=speech10><b>Second Witch</b></a>
-<blockquote>
-<A NAME=4.1.37>Cool it with a baboon's blood,</A><br>
-<A NAME=4.1.38>Then the charm is firm and good.</A><br>
-<p><i>Enter HECATE to the other three Witches</i></p>
-</blockquote>
-
-<A NAME=speech11><b>HECATE</b></a>
-<blockquote>
-<A NAME=4.1.39>O well done! I commend your pains;</A><br>
-<A NAME=4.1.40>And every one shall share i' the gains;</A><br>
-<A NAME=4.1.41>And now about the cauldron sing,</A><br>
-<A NAME=4.1.42>Live elves and fairies in a ring,</A><br>
-<A NAME=4.1.43>Enchanting all that you put in.</A><br>
-<p><i>Music and a song: 'Black spirits,' & c</i></p>
-<p><i>HECATE retires</i></p>
-</blockquote>
-
-<A NAME=speech12><b>Second Witch</b></a>
-<blockquote>
-<A NAME=4.1.44>By the pricking of my thumbs,</A><br>
-<A NAME=4.1.45>Something wicked this way comes.</A><br>
-<A NAME=4.1.46>Open, locks,</A><br>
-<A NAME=4.1.47>Whoever knocks!</A><br>
-<p><i>Enter MACBETH</i></p>
-</blockquote>
-
-<A NAME=speech13><b>MACBETH</b></a>
-<blockquote>
-<A NAME=4.1.48>How now, you secret, black, and midnight hags!</A><br>
-<A NAME=4.1.49>What is't you do?</A><br>
-</blockquote>
-
-<A NAME=speech14><b>ALL</b></a>
-<blockquote>
-<A NAME=4.1.50> A deed without a name.</A><br>
-</blockquote>
-
-<A NAME=speech15><b>MACBETH</b></a>
-<blockquote>
-<A NAME=4.1.51>I conjure you, by that which you profess,</A><br>
-<A NAME=4.1.52>Howe'er you come to know it, answer me:</A><br>
-<A NAME=4.1.53>Though you untie the winds and let them fight</A><br>
-<A NAME=4.1.54>Against the churches; though the yesty waves</A><br>
-<A NAME=4.1.55>Confound and swallow navigation up;</A><br>
-<A NAME=4.1.56>Though bladed corn be lodged and trees blown down;</A><br>
-<A NAME=4.1.57>Though castles topple on their warders' heads;</A><br>
-<A NAME=4.1.58>Though palaces and pyramids do slope</A><br>
-<A NAME=4.1.59>Their heads to their foundations; though the treasure</A><br>
-<A NAME=4.1.60>Of nature's germens tumble all together,</A><br>
-<A NAME=4.1.61>Even till destruction sicken; answer me</A><br>
-<A NAME=4.1.62>To what I ask you.</A><br>
-</blockquote>
-
-<A NAME=speech16><b>First Witch</b></a>
-<blockquote>
-<A NAME=4.1.63> Speak.</A><br>
-</blockquote>
-
-<A NAME=speech17><b>Second Witch</b></a>
-<blockquote>
-<A NAME=4.1.64>Demand.</A><br>
-</blockquote>
-
-<A NAME=speech18><b>Third Witch</b></a>
-<blockquote>
-<A NAME=4.1.65>We'll answer.</A><br>
-</blockquote>
-
-<A NAME=speech19><b>First Witch</b></a>
-<blockquote>
-<A NAME=4.1.66>Say, if thou'dst rather hear it from our mouths,</A><br>
-<A NAME=4.1.67>Or from our masters?</A><br>
-</blockquote>
-
-<A NAME=speech20><b>MACBETH</b></a>
-<blockquote>
-<A NAME=4.1.68>Call 'em; let me see 'em.</A><br>
-</blockquote>
-
-<A NAME=speech21><b>First Witch</b></a>
-<blockquote>
-<A NAME=4.1.69>Pour in sow's blood, that hath eaten</A><br>
-<A NAME=4.1.70>Her nine farrow; grease that's sweaten</A><br>
-<A NAME=4.1.71>From the murderer's gibbet throw</A><br>
-<A NAME=4.1.72>Into the flame.</A><br>
-</blockquote>
-
-<A NAME=speech22><b>ALL</b></a>
-<blockquote>
-<A NAME=4.1.73> Come, high or low;</A><br>
-<A NAME=4.1.74>Thyself and office deftly show!</A><br>
-<p><i>Thunder. First Apparition: an armed Head</i></p>
-</blockquote>
-
-<A NAME=speech23><b>MACBETH</b></a>
-<blockquote>
-<A NAME=4.1.75>Tell me, thou unknown power,--</A><br>
-</blockquote>
-
-<A NAME=speech24><b>First Witch</b></a>
-<blockquote>
-<A NAME=4.1.76>He knows thy thought:</A><br>
-<A NAME=4.1.77>Hear his speech, but say thou nought.</A><br>
-</blockquote>
-
-<A NAME=speech25><b>First Apparition</b></a>
-<blockquote>
-<A NAME=4.1.78>Macbeth! Macbeth! Macbeth! beware Macduff;</A><br>
-<A NAME=4.1.79>Beware the thane of Fife. Dismiss me. Enough.</A><br>
-<p><i>Descends</i></p>
-</blockquote>
-
-<A NAME=speech26><b>MACBETH</b></a>
-<blockquote>
-<A NAME=4.1.80>Whate'er thou art, for thy good caution, thanks;</A><br>
-<A NAME=4.1.81>Thou hast harp'd my fear aright: but one</A><br>
-<A NAME=4.1.82>word more,--</A><br>
-</blockquote>
-
-<A NAME=speech27><b>First Witch</b></a>
-<blockquote>
-<A NAME=4.1.83>He will not be commanded: here's another,</A><br>
-<A NAME=4.1.84>More potent than the first.</A><br>
-<p><i>Thunder. Second Apparition: A bloody Child</i></p>
-</blockquote>
-
-<A NAME=speech28><b>Second Apparition</b></a>
-<blockquote>
-<A NAME=4.1.85>Macbeth! Macbeth! Macbeth!</A><br>
-</blockquote>
-
-<A NAME=speech29><b>MACBETH</b></a>
-<blockquote>
-<A NAME=4.1.86>Had I three ears, I'ld hear thee.</A><br>
-</blockquote>
-
-<A NAME=speech30><b>Second Apparition</b></a>
-<blockquote>
-<A NAME=4.1.87>Be bloody, bold, and resolute; laugh to scorn</A><br>
-<A NAME=4.1.88>The power of man, for none of woman born</A><br>
-<A NAME=4.1.89>Shall harm Macbeth.</A><br>
-<p><i>Descends</i></p>
-</blockquote>
-
-<A NAME=speech31><b>MACBETH</b></a>
-<blockquote>
-<A NAME=4.1.90>Then live, Macduff: what need I fear of thee?</A><br>
-<A NAME=4.1.91>But yet I'll make assurance double sure,</A><br>
-<A NAME=4.1.92>And take a bond of fate: thou shalt not live;</A><br>
-<A NAME=4.1.93>That I may tell pale-hearted fear it lies,</A><br>
-<A NAME=4.1.94>And sleep in spite of thunder.</A><br>
-<p><i>Thunder. Third Apparition: a Child crowned, with a tree in his hand</i></p>
-<A NAME=4.1.95>What is this</A><br>
-<A NAME=4.1.96>That rises like the issue of a king,</A><br>
-<A NAME=4.1.97>And wears upon his baby-brow the round</A><br>
-<A NAME=4.1.98>And top of sovereignty?</A><br>
-</blockquote>
-
-<A NAME=speech32><b>ALL</b></a>
-<blockquote>
-<A NAME=4.1.99>Listen, but speak not to't.</A><br>
-</blockquote>
-
-<A NAME=speech33><b>Third Apparition</b></a>
-<blockquote>
-<A NAME=4.1.100>Be lion-mettled, proud; and take no care</A><br>
-<A NAME=4.1.101>Who chafes, who frets, or where conspirers are:</A><br>
-<A NAME=4.1.102>Macbeth shall never vanquish'd be until</A><br>
-<A NAME=4.1.103>Great Birnam wood to high Dunsinane hill</A><br>
-<A NAME=4.1.104>Shall come against him.</A><br>
-<p><i>Descends</i></p>
-</blockquote>
-
-<A NAME=speech34><b>MACBETH</b></a>
-<blockquote>
-<A NAME=4.1.105>That will never be</A><br>
-<A NAME=4.1.106>Who can impress the forest, bid the tree</A><br>
-<A NAME=4.1.107>Unfix his earth-bound root? Sweet bodements! good!</A><br>
-<A NAME=4.1.108>Rebellion's head, rise never till the wood</A><br>
-<A NAME=4.1.109>Of Birnam rise, and our high-placed Macbeth</A><br>
-<A NAME=4.1.110>Shall live the lease of nature, pay his breath</A><br>
-<A NAME=4.1.111>To time and mortal custom. Yet my heart</A><br>
-<A NAME=4.1.112>Throbs to know one thing: tell me, if your art</A><br>
-<A NAME=4.1.113>Can tell so much: shall Banquo's issue ever</A><br>
-<A NAME=4.1.114>Reign in this kingdom?</A><br>
-</blockquote>
-
-<A NAME=speech35><b>ALL</b></a>
-<blockquote>
-<A NAME=4.1.115>Seek to know no more.</A><br>
-</blockquote>
-
-<A NAME=speech36><b>MACBETH</b></a>
-<blockquote>
-<A NAME=4.1.116>I will be satisfied: deny me this,</A><br>
-<A NAME=4.1.117>And an eternal curse fall on you! Let me know.</A><br>
-<A NAME=4.1.118>Why sinks that cauldron? and what noise is this?</A><br>
-<p><i>Hautboys</i></p>
-</blockquote>
-
-<A NAME=speech37><b>First Witch</b></a>
-<blockquote>
-<A NAME=4.1.119>Show!</A><br>
-</blockquote>
-
-<A NAME=speech38><b>Second Witch</b></a>
-<blockquote>
-<A NAME=4.1.120>Show!</A><br>
-</blockquote>
-
-<A NAME=speech39><b>Third Witch</b></a>
-<blockquote>
-<A NAME=4.1.121>Show!</A><br>
-</blockquote>
-
-<A NAME=speech40><b>ALL</b></a>
-<blockquote>
-<A NAME=4.1.122>Show his eyes, and grieve his heart;</A><br>
-<A NAME=4.1.123>Come like shadows, so depart!</A><br>
-<p><i>A show of Eight Kings, the last with a glass in his hand; GHOST OF BANQUO following</i></p>
-</blockquote>
-
-<A NAME=speech41><b>MACBETH</b></a>
-<blockquote>
-<A NAME=4.1.124>Thou art too like the spirit of Banquo: down!</A><br>
-<A NAME=4.1.125>Thy crown does sear mine eye-balls. And thy hair,</A><br>
-<A NAME=4.1.126>Thou other gold-bound brow, is like the first.</A><br>
-<A NAME=4.1.127>A third is like the former. Filthy hags!</A><br>
-<A NAME=4.1.128>Why do you show me this? A fourth! Start, eyes!</A><br>
-<A NAME=4.1.129>What, will the line stretch out to the crack of doom?</A><br>
-<A NAME=4.1.130>Another yet! A seventh! I'll see no more:</A><br>
-<A NAME=4.1.131>And yet the eighth appears, who bears a glass</A><br>
-<A NAME=4.1.132>Which shows me many more; and some I see</A><br>
-<A NAME=4.1.133>That two-fold balls and treble scepters carry:</A><br>
-<A NAME=4.1.134>Horrible sight! Now, I see, 'tis true;</A><br>
-<A NAME=4.1.135>For the blood-bolter'd Banquo smiles upon me,</A><br>
-<A NAME=4.1.136>And points at them for his.</A><br>
-<p><i>Apparitions vanish</i></p>
-<A NAME=4.1.137>What, is this so?</A><br>
-</blockquote>
-
-<A NAME=speech42><b>First Witch</b></a>
-<blockquote>
-<A NAME=4.1.138>Ay, sir, all this is so: but why</A><br>
-<A NAME=4.1.139>Stands Macbeth thus amazedly?</A><br>
-<A NAME=4.1.140>Come, sisters, cheer we up his sprites,</A><br>
-<A NAME=4.1.141>And show the best of our delights:</A><br>
-<A NAME=4.1.142>I'll charm the air to give a sound,</A><br>
-<A NAME=4.1.143>While you perform your antic round:</A><br>
-<A NAME=4.1.144>That this great king may kindly say,</A><br>
-<A NAME=4.1.145>Our duties did his welcome pay.</A><br>
-<p><i>Music. The witches dance and then vanish, with HECATE</i></p>
-</blockquote>
-
-<A NAME=speech43><b>MACBETH</b></a>
-<blockquote>
-<A NAME=4.1.146>Where are they? Gone? Let this pernicious hour</A><br>
-<A NAME=4.1.147>Stand aye accursed in the calendar!</A><br>
-<A NAME=4.1.148>Come in, without there!</A><br>
-<p><i>Enter LENNOX</i></p>
-</blockquote>
-
-<A NAME=speech44><b>LENNOX</b></a>
-<blockquote>
-<A NAME=4.1.149>What's your grace's will?</A><br>
-</blockquote>
-
-<A NAME=speech45><b>MACBETH</b></a>
-<blockquote>
-<A NAME=4.1.150>Saw you the weird sisters?</A><br>
-</blockquote>
-
-<A NAME=speech46><b>LENNOX</b></a>
-<blockquote>
-<A NAME=4.1.151>No, my lord.</A><br>
-</blockquote>
-
-<A NAME=speech47><b>MACBETH</b></a>
-<blockquote>
-<A NAME=4.1.152>Came they not by you?</A><br>
-</blockquote>
-
-<A NAME=speech48><b>LENNOX</b></a>
-<blockquote>
-<A NAME=4.1.153>No, indeed, my lord.</A><br>
-</blockquote>
-
-<A NAME=speech49><b>MACBETH</b></a>
-<blockquote>
-<A NAME=4.1.154>Infected be the air whereon they ride;</A><br>
-<A NAME=4.1.155>And damn'd all those that trust them! I did hear</A><br>
-<A NAME=4.1.156>The galloping of horse: who was't came by?</A><br>
-</blockquote>
-
-<A NAME=speech50><b>LENNOX</b></a>
-<blockquote>
-<A NAME=4.1.157>'Tis two or three, my lord, that bring you word</A><br>
-<A NAME=4.1.158>Macduff is fled to England.</A><br>
-</blockquote>
-
-<A NAME=speech51><b>MACBETH</b></a>
-<blockquote>
-<A NAME=4.1.159>Fled to England!</A><br>
-</blockquote>
-
-<A NAME=speech52><b>LENNOX</b></a>
-<blockquote>
-<A NAME=4.1.160>Ay, my good lord.</A><br>
-</blockquote>
-
-<A NAME=speech53><b>MACBETH</b></a>
-<blockquote>
-<A NAME=4.1.161>Time, thou anticipatest my dread exploits:</A><br>
-<A NAME=4.1.162>The flighty purpose never is o'ertook</A><br>
-<A NAME=4.1.163>Unless the deed go with it; from this moment</A><br>
-<A NAME=4.1.164>The very firstlings of my heart shall be</A><br>
-<A NAME=4.1.165>The firstlings of my hand. And even now,</A><br>
-<A NAME=4.1.166>To crown my thoughts with acts, be it thought and done:</A><br>
-<A NAME=4.1.167>The castle of Macduff I will surprise;</A><br>
-<A NAME=4.1.168>Seize upon Fife; give to the edge o' the sword</A><br>
-<A NAME=4.1.169>His wife, his babes, and all unfortunate souls</A><br>
-<A NAME=4.1.170>That trace him in his line. No boasting like a fool;</A><br>
-<A NAME=4.1.171>This deed I'll do before this purpose cool.</A><br>
-<A NAME=4.1.172>But no more sights!--Where are these gentlemen?</A><br>
-<A NAME=4.1.173>Come, bring me where they are.</A><br>
-<p><i>Exeunt</i></p>
-</blockquote>
-<h3>SCENE II. Fife. Macduff's castle.</h3>
-<p><blockquote>
-<i>Enter LADY MACDUFF, her Son, and ROSS</i>
-</blockquote>
-
-<A NAME=speech1><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.1>What had he done, to make him fly the land?</A><br>
-</blockquote>
-
-<A NAME=speech2><b>ROSS</b></a>
-<blockquote>
-<A NAME=4.2.2>You must have patience, madam.</A><br>
-</blockquote>
-
-<A NAME=speech3><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.3>He had none:</A><br>
-<A NAME=4.2.4>His flight was madness: when our actions do not,</A><br>
-<A NAME=4.2.5>Our fears do make us traitors.</A><br>
-</blockquote>
-
-<A NAME=speech4><b>ROSS</b></a>
-<blockquote>
-<A NAME=4.2.6>You know not</A><br>
-<A NAME=4.2.7>Whether it was his wisdom or his fear.</A><br>
-</blockquote>
-
-<A NAME=speech5><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.8>Wisdom! to leave his wife, to leave his babes,</A><br>
-<A NAME=4.2.9>His mansion and his titles in a place</A><br>
-<A NAME=4.2.10>From whence himself does fly? He loves us not;</A><br>
-<A NAME=4.2.11>He wants the natural touch: for the poor wren,</A><br>
-<A NAME=4.2.12>The most diminutive of birds, will fight,</A><br>
-<A NAME=4.2.13>Her young ones in her nest, against the owl.</A><br>
-<A NAME=4.2.14>All is the fear and nothing is the love;</A><br>
-<A NAME=4.2.15>As little is the wisdom, where the flight</A><br>
-<A NAME=4.2.16>So runs against all reason.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>ROSS</b></a>
-<blockquote>
-<A NAME=4.2.17>My dearest coz,</A><br>
-<A NAME=4.2.18>I pray you, school yourself: but for your husband,</A><br>
-<A NAME=4.2.19>He is noble, wise, judicious, and best knows</A><br>
-<A NAME=4.2.20>The fits o' the season. I dare not speak</A><br>
-<A NAME=4.2.21>much further;</A><br>
-<A NAME=4.2.22>But cruel are the times, when we are traitors</A><br>
-<A NAME=4.2.23>And do not know ourselves, when we hold rumour</A><br>
-<A NAME=4.2.24>From what we fear, yet know not what we fear,</A><br>
-<A NAME=4.2.25>But float upon a wild and violent sea</A><br>
-<A NAME=4.2.26>Each way and move. I take my leave of you:</A><br>
-<A NAME=4.2.27>Shall not be long but I'll be here again:</A><br>
-<A NAME=4.2.28>Things at the worst will cease, or else climb upward</A><br>
-<A NAME=4.2.29>To what they were before. My pretty cousin,</A><br>
-<A NAME=4.2.30>Blessing upon you!</A><br>
-</blockquote>
-
-<A NAME=speech7><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.31>Father'd he is, and yet he's fatherless.</A><br>
-</blockquote>
-
-<A NAME=speech8><b>ROSS</b></a>
-<blockquote>
-<A NAME=4.2.32>I am so much a fool, should I stay longer,</A><br>
-<A NAME=4.2.33>It would be my disgrace and your discomfort:</A><br>
-<A NAME=4.2.34>I take my leave at once.</A><br>
-<p><i>Exit</i></p>
-</blockquote>
-
-<A NAME=speech9><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.35>Sirrah, your father's dead;</A><br>
-<A NAME=4.2.36>And what will you do now? How will you live?</A><br>
-</blockquote>
-
-<A NAME=speech10><b>Son</b></a>
-<blockquote>
-<A NAME=4.2.37>As birds do, mother.</A><br>
-</blockquote>
-
-<A NAME=speech11><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.38>What, with worms and flies?</A><br>
-</blockquote>
-
-<A NAME=speech12><b>Son</b></a>
-<blockquote>
-<A NAME=4.2.39>With what I get, I mean; and so do they.</A><br>
-</blockquote>
-
-<A NAME=speech13><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.40>Poor bird! thou'ldst never fear the net nor lime,</A><br>
-<A NAME=4.2.41>The pitfall nor the gin.</A><br>
-</blockquote>
-
-<A NAME=speech14><b>Son</b></a>
-<blockquote>
-<A NAME=4.2.42>Why should I, mother? Poor birds they are not set for.</A><br>
-<A NAME=4.2.43>My father is not dead, for all your saying.</A><br>
-</blockquote>
-
-<A NAME=speech15><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.44>Yes, he is dead; how wilt thou do for a father?</A><br>
-</blockquote>
-
-<A NAME=speech16><b>Son</b></a>
-<blockquote>
-<A NAME=4.2.45>Nay, how will you do for a husband?</A><br>
-</blockquote>
-
-<A NAME=speech17><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.46>Why, I can buy me twenty at any market.</A><br>
-</blockquote>
-
-<A NAME=speech18><b>Son</b></a>
-<blockquote>
-<A NAME=4.2.47>Then you'll buy 'em to sell again.</A><br>
-</blockquote>
-
-<A NAME=speech19><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.48>Thou speak'st with all thy wit: and yet, i' faith,</A><br>
-<A NAME=4.2.49>With wit enough for thee.</A><br>
-</blockquote>
-
-<A NAME=speech20><b>Son</b></a>
-<blockquote>
-<A NAME=4.2.50>Was my father a traitor, mother?</A><br>
-</blockquote>
-
-<A NAME=speech21><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.51>Ay, that he was.</A><br>
-</blockquote>
-
-<A NAME=speech22><b>Son</b></a>
-<blockquote>
-<A NAME=4.2.52>What is a traitor?</A><br>
-</blockquote>
-
-<A NAME=speech23><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.53>Why, one that swears and lies.</A><br>
-</blockquote>
-
-<A NAME=speech24><b>Son</b></a>
-<blockquote>
-<A NAME=4.2.54>And be all traitors that do so?</A><br>
-</blockquote>
-
-<A NAME=speech25><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.55>Every one that does so is a traitor, and must be hanged.</A><br>
-</blockquote>
-
-<A NAME=speech26><b>Son</b></a>
-<blockquote>
-<A NAME=4.2.56>And must they all be hanged that swear and lie?</A><br>
-</blockquote>
-
-<A NAME=speech27><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.57>Every one.</A><br>
-</blockquote>
-
-<A NAME=speech28><b>Son</b></a>
-<blockquote>
-<A NAME=4.2.58>Who must hang them?</A><br>
-</blockquote>
-
-<A NAME=speech29><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.59>Why, the honest men.</A><br>
-</blockquote>
-
-<A NAME=speech30><b>Son</b></a>
-<blockquote>
-<A NAME=4.2.60>Then the liars and swearers are fools,</A><br>
-<A NAME=4.2.61>for there are liars and swearers enow to beat</A><br>
-<A NAME=4.2.62>the honest men and hang up them.</A><br>
-</blockquote>
-
-<A NAME=speech31><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.63>Now, God help thee, poor monkey!</A><br>
-<A NAME=4.2.64>But how wilt thou do for a father?</A><br>
-</blockquote>
-
-<A NAME=speech32><b>Son</b></a>
-<blockquote>
-<A NAME=4.2.65>If he were dead, you'ld weep for</A><br>
-<A NAME=4.2.66>him: if you would not, it were a good sign</A><br>
-<A NAME=4.2.67>that I should quickly have a new father.</A><br>
-</blockquote>
-
-<A NAME=speech33><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.68>Poor prattler, how thou talk'st!</A><br>
-<p><i>Enter a Messenger</i></p>
-</blockquote>
-
-<A NAME=speech34><b>Messenger</b></a>
-<blockquote>
-<A NAME=4.2.69>Bless you, fair dame! I am not to you known,</A><br>
-<A NAME=4.2.70>Though in your state of honour I am perfect.</A><br>
-<A NAME=4.2.71>I doubt some danger does approach you nearly:</A><br>
-<A NAME=4.2.72>If you will take a homely man's advice,</A><br>
-<A NAME=4.2.73>Be not found here; hence, with your little ones.</A><br>
-<A NAME=4.2.74>To fright you thus, methinks, I am too savage;</A><br>
-<A NAME=4.2.75>To do worse to you were fell cruelty,</A><br>
-<A NAME=4.2.76>Which is too nigh your person. Heaven preserve you!</A><br>
-<A NAME=4.2.77>I dare abide no longer.</A><br>
-<p><i>Exit</i></p>
-</blockquote>
-
-<A NAME=speech35><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.78>Whither should I fly?</A><br>
-<A NAME=4.2.79>I have done no harm. But I remember now</A><br>
-<A NAME=4.2.80>I am in this earthly world; where to do harm</A><br>
-<A NAME=4.2.81>Is often laudable, to do good sometime</A><br>
-<A NAME=4.2.82>Accounted dangerous folly: why then, alas,</A><br>
-<A NAME=4.2.83>Do I put up that womanly defence,</A><br>
-<A NAME=4.2.84>To say I have done no harm?</A><br>
-<p><i>Enter Murderers</i></p>
-<A NAME=4.2.85>What are these faces?</A><br>
-</blockquote>
-
-<A NAME=speech36><b>First Murderer</b></a>
-<blockquote>
-<A NAME=4.2.86>Where is your husband?</A><br>
-</blockquote>
-
-<A NAME=speech37><b>LADY MACDUFF</b></a>
-<blockquote>
-<A NAME=4.2.87>I hope, in no place so unsanctified</A><br>
-<A NAME=4.2.88>Where such as thou mayst find him.</A><br>
-</blockquote>
-
-<A NAME=speech38><b>First Murderer</b></a>
-<blockquote>
-<A NAME=4.2.89>He's a traitor.</A><br>
-</blockquote>
-
-<A NAME=speech39><b>Son</b></a>
-<blockquote>
-<A NAME=4.2.90>Thou liest, thou shag-hair'd villain!</A><br>
-</blockquote>
-
-<A NAME=speech40><b>First Murderer</b></a>
-<blockquote>
-<A NAME=4.2.91>What, you egg!</A><br>
-<p><i>Stabbing him</i></p>
-<A NAME=4.2.92>Young fry of treachery!</A><br>
-</blockquote>
-
-<A NAME=speech41><b>Son</b></a>
-<blockquote>
-<A NAME=4.2.93>He has kill'd me, mother:</A><br>
-<A NAME=4.2.94>Run away, I pray you!</A><br>
-<p><i>Dies</i></p>
-<p><i>Exit LADY MACDUFF, crying 'Murder!' Exeunt Murderers, following her</i></p>
-</blockquote>
-<h3>SCENE III. England. Before the King's palace.</h3>
-<p><blockquote>
-<i>Enter MALCOLM and MACDUFF</i>
-</blockquote>
-
-<A NAME=speech1><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.1>Let us seek out some desolate shade, and there</A><br>
-<A NAME=4.3.2>Weep our sad bosoms empty.</A><br>
-</blockquote>
-
-<A NAME=speech2><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.3>Let us rather</A><br>
-<A NAME=4.3.4>Hold fast the mortal sword, and like good men</A><br>
-<A NAME=4.3.5>Bestride our down-fall'n birthdom: each new morn</A><br>
-<A NAME=4.3.6>New widows howl, new orphans cry, new sorrows</A><br>
-<A NAME=4.3.7>Strike heaven on the face, that it resounds</A><br>
-<A NAME=4.3.8>As if it felt with Scotland and yell'd out</A><br>
-<A NAME=4.3.9>Like syllable of dolour.</A><br>
-</blockquote>
-
-<A NAME=speech3><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.10>What I believe I'll wail,</A><br>
-<A NAME=4.3.11>What know believe, and what I can redress,</A><br>
-<A NAME=4.3.12>As I shall find the time to friend, I will.</A><br>
-<A NAME=4.3.13>What you have spoke, it may be so perchance.</A><br>
-<A NAME=4.3.14>This tyrant, whose sole name blisters our tongues,</A><br>
-<A NAME=4.3.15>Was once thought honest: you have loved him well.</A><br>
-<A NAME=4.3.16>He hath not touch'd you yet. I am young;</A><br>
-<A NAME=4.3.17>but something</A><br>
-<A NAME=4.3.18>You may deserve of him through me, and wisdom</A><br>
-<A NAME=4.3.19>To offer up a weak poor innocent lamb</A><br>
-<A NAME=4.3.20>To appease an angry god.</A><br>
-</blockquote>
-
-<A NAME=speech4><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.21>I am not treacherous.</A><br>
-</blockquote>
-
-<A NAME=speech5><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.22>But Macbeth is.</A><br>
-<A NAME=4.3.23>A good and virtuous nature may recoil</A><br>
-<A NAME=4.3.24>In an imperial charge. But I shall crave</A><br>
-<A NAME=4.3.25>your pardon;</A><br>
-<A NAME=4.3.26>That which you are my thoughts cannot transpose:</A><br>
-<A NAME=4.3.27>Angels are bright still, though the brightest fell;</A><br>
-<A NAME=4.3.28>Though all things foul would wear the brows of grace,</A><br>
-<A NAME=4.3.29>Yet grace must still look so.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.30>I have lost my hopes.</A><br>
-</blockquote>
-
-<A NAME=speech7><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.31>Perchance even there where I did find my doubts.</A><br>
-<A NAME=4.3.32>Why in that rawness left you wife and child,</A><br>
-<A NAME=4.3.33>Those precious motives, those strong knots of love,</A><br>
-<A NAME=4.3.34>Without leave-taking? I pray you,</A><br>
-<A NAME=4.3.35>Let not my jealousies be your dishonours,</A><br>
-<A NAME=4.3.36>But mine own safeties. You may be rightly just,</A><br>
-<A NAME=4.3.37>Whatever I shall think.</A><br>
-</blockquote>
-
-<A NAME=speech8><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.38>Bleed, bleed, poor country!</A><br>
-<A NAME=4.3.39>Great tyranny! lay thou thy basis sure,</A><br>
-<A NAME=4.3.40>For goodness dare not cheque thee: wear thou</A><br>
-<A NAME=4.3.41>thy wrongs;</A><br>
-<A NAME=4.3.42>The title is affeer'd! Fare thee well, lord:</A><br>
-<A NAME=4.3.43>I would not be the villain that thou think'st</A><br>
-<A NAME=4.3.44>For the whole space that's in the tyrant's grasp,</A><br>
-<A NAME=4.3.45>And the rich East to boot.</A><br>
-</blockquote>
-
-<A NAME=speech9><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.46>Be not offended:</A><br>
-<A NAME=4.3.47>I speak not as in absolute fear of you.</A><br>
-<A NAME=4.3.48>I think our country sinks beneath the yoke;</A><br>
-<A NAME=4.3.49>It weeps, it bleeds; and each new day a gash</A><br>
-<A NAME=4.3.50>Is added to her wounds: I think withal</A><br>
-<A NAME=4.3.51>There would be hands uplifted in my right;</A><br>
-<A NAME=4.3.52>And here from gracious England have I offer</A><br>
-<A NAME=4.3.53>Of goodly thousands: but, for all this,</A><br>
-<A NAME=4.3.54>When I shall tread upon the tyrant's head,</A><br>
-<A NAME=4.3.55>Or wear it on my sword, yet my poor country</A><br>
-<A NAME=4.3.56>Shall have more vices than it had before,</A><br>
-<A NAME=4.3.57>More suffer and more sundry ways than ever,</A><br>
-<A NAME=4.3.58>By him that shall succeed.</A><br>
-</blockquote>
-
-<A NAME=speech10><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.59>What should he be?</A><br>
-</blockquote>
-
-<A NAME=speech11><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.60>It is myself I mean: in whom I know</A><br>
-<A NAME=4.3.61>All the particulars of vice so grafted</A><br>
-<A NAME=4.3.62>That, when they shall be open'd, black Macbeth</A><br>
-<A NAME=4.3.63>Will seem as pure as snow, and the poor state</A><br>
-<A NAME=4.3.64>Esteem him as a lamb, being compared</A><br>
-<A NAME=4.3.65>With my confineless harms.</A><br>
-</blockquote>
-
-<A NAME=speech12><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.66>Not in the legions</A><br>
-<A NAME=4.3.67>Of horrid hell can come a devil more damn'd</A><br>
-<A NAME=4.3.68>In evils to top Macbeth.</A><br>
-</blockquote>
-
-<A NAME=speech13><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.69>I grant him bloody,</A><br>
-<A NAME=4.3.70>Luxurious, avaricious, false, deceitful,</A><br>
-<A NAME=4.3.71>Sudden, malicious, smacking of every sin</A><br>
-<A NAME=4.3.72>That has a name: but there's no bottom, none,</A><br>
-<A NAME=4.3.73>In my voluptuousness: your wives, your daughters,</A><br>
-<A NAME=4.3.74>Your matrons and your maids, could not fill up</A><br>
-<A NAME=4.3.75>The cistern of my lust, and my desire</A><br>
-<A NAME=4.3.76>All continent impediments would o'erbear</A><br>
-<A NAME=4.3.77>That did oppose my will: better Macbeth</A><br>
-<A NAME=4.3.78>Than such an one to reign.</A><br>
-</blockquote>
-
-<A NAME=speech14><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.79>Boundless intemperance</A><br>
-<A NAME=4.3.80>In nature is a tyranny; it hath been</A><br>
-<A NAME=4.3.81>The untimely emptying of the happy throne</A><br>
-<A NAME=4.3.82>And fall of many kings. But fear not yet</A><br>
-<A NAME=4.3.83>To take upon you what is yours: you may</A><br>
-<A NAME=4.3.84>Convey your pleasures in a spacious plenty,</A><br>
-<A NAME=4.3.85>And yet seem cold, the time you may so hoodwink.</A><br>
-<A NAME=4.3.86>We have willing dames enough: there cannot be</A><br>
-<A NAME=4.3.87>That vulture in you, to devour so many</A><br>
-<A NAME=4.3.88>As will to greatness dedicate themselves,</A><br>
-<A NAME=4.3.89>Finding it so inclined.</A><br>
-</blockquote>
-
-<A NAME=speech15><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.90>With this there grows</A><br>
-<A NAME=4.3.91>In my most ill-composed affection such</A><br>
-<A NAME=4.3.92>A stanchless avarice that, were I king,</A><br>
-<A NAME=4.3.93>I should cut off the nobles for their lands,</A><br>
-<A NAME=4.3.94>Desire his jewels and this other's house:</A><br>
-<A NAME=4.3.95>And my more-having would be as a sauce</A><br>
-<A NAME=4.3.96>To make me hunger more; that I should forge</A><br>
-<A NAME=4.3.97>Quarrels unjust against the good and loyal,</A><br>
-<A NAME=4.3.98>Destroying them for wealth.</A><br>
-</blockquote>
-
-<A NAME=speech16><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.99>This avarice</A><br>
-<A NAME=4.3.100>Sticks deeper, grows with more pernicious root</A><br>
-<A NAME=4.3.101>Than summer-seeming lust, and it hath been</A><br>
-<A NAME=4.3.102>The sword of our slain kings: yet do not fear;</A><br>
-<A NAME=4.3.103>Scotland hath foisons to fill up your will.</A><br>
-<A NAME=4.3.104>Of your mere own: all these are portable,</A><br>
-<A NAME=4.3.105>With other graces weigh'd.</A><br>
-</blockquote>
-
-<A NAME=speech17><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.106>But I have none: the king-becoming graces,</A><br>
-<A NAME=4.3.107>As justice, verity, temperance, stableness,</A><br>
-<A NAME=4.3.108>Bounty, perseverance, mercy, lowliness,</A><br>
-<A NAME=4.3.109>Devotion, patience, courage, fortitude,</A><br>
-<A NAME=4.3.110>I have no relish of them, but abound</A><br>
-<A NAME=4.3.111>In the division of each several crime,</A><br>
-<A NAME=4.3.112>Acting it many ways. Nay, had I power, I should</A><br>
-<A NAME=4.3.113>Pour the sweet milk of concord into hell,</A><br>
-<A NAME=4.3.114>Uproar the universal peace, confound</A><br>
-<A NAME=4.3.115>All unity on earth.</A><br>
-</blockquote>
-
-<A NAME=speech18><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.116>O Scotland, Scotland!</A><br>
-</blockquote>
-
-<A NAME=speech19><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.117>If such a one be fit to govern, speak:</A><br>
-<A NAME=4.3.118>I am as I have spoken.</A><br>
-</blockquote>
-
-<A NAME=speech20><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.119>Fit to govern!</A><br>
-<A NAME=4.3.120>No, not to live. O nation miserable,</A><br>
-<A NAME=4.3.121>With an untitled tyrant bloody-scepter'd,</A><br>
-<A NAME=4.3.122>When shalt thou see thy wholesome days again,</A><br>
-<A NAME=4.3.123>Since that the truest issue of thy throne</A><br>
-<A NAME=4.3.124>By his own interdiction stands accursed,</A><br>
-<A NAME=4.3.125>And does blaspheme his breed? Thy royal father</A><br>
-<A NAME=4.3.126>Was a most sainted king: the queen that bore thee,</A><br>
-<A NAME=4.3.127>Oftener upon her knees than on her feet,</A><br>
-<A NAME=4.3.128>Died every day she lived. Fare thee well!</A><br>
-<A NAME=4.3.129>These evils thou repeat'st upon thyself</A><br>
-<A NAME=4.3.130>Have banish'd me from Scotland. O my breast,</A><br>
-<A NAME=4.3.131>Thy hope ends here!</A><br>
-</blockquote>
-
-<A NAME=speech21><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.132>Macduff, this noble passion,</A><br>
-<A NAME=4.3.133>Child of integrity, hath from my soul</A><br>
-<A NAME=4.3.134>Wiped the black scruples, reconciled my thoughts</A><br>
-<A NAME=4.3.135>To thy good truth and honour. Devilish Macbeth</A><br>
-<A NAME=4.3.136>By many of these trains hath sought to win me</A><br>
-<A NAME=4.3.137>Into his power, and modest wisdom plucks me</A><br>
-<A NAME=4.3.138>From over-credulous haste: but God above</A><br>
-<A NAME=4.3.139>Deal between thee and me! for even now</A><br>
-<A NAME=4.3.140>I put myself to thy direction, and</A><br>
-<A NAME=4.3.141>Unspeak mine own detraction, here abjure</A><br>
-<A NAME=4.3.142>The taints and blames I laid upon myself,</A><br>
-<A NAME=4.3.143>For strangers to my nature. I am yet</A><br>
-<A NAME=4.3.144>Unknown to woman, never was forsworn,</A><br>
-<A NAME=4.3.145>Scarcely have coveted what was mine own,</A><br>
-<A NAME=4.3.146>At no time broke my faith, would not betray</A><br>
-<A NAME=4.3.147>The devil to his fellow and delight</A><br>
-<A NAME=4.3.148>No less in truth than life: my first false speaking</A><br>
-<A NAME=4.3.149>Was this upon myself: what I am truly,</A><br>
-<A NAME=4.3.150>Is thine and my poor country's to command:</A><br>
-<A NAME=4.3.151>Whither indeed, before thy here-approach,</A><br>
-<A NAME=4.3.152>Old Siward, with ten thousand warlike men,</A><br>
-<A NAME=4.3.153>Already at a point, was setting forth.</A><br>
-<A NAME=4.3.154>Now we'll together; and the chance of goodness</A><br>
-<A NAME=4.3.155>Be like our warranted quarrel! Why are you silent?</A><br>
-</blockquote>
-
-<A NAME=speech22><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.156>Such welcome and unwelcome things at once</A><br>
-<A NAME=4.3.157>'Tis hard to reconcile.</A><br>
-<p><i>Enter a Doctor</i></p>
-</blockquote>
-
-<A NAME=speech23><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.158>Well; more anon.--Comes the king forth, I pray you?</A><br>
-</blockquote>
-
-<A NAME=speech24><b>Doctor</b></a>
-<blockquote>
-<A NAME=4.3.159>Ay, sir; there are a crew of wretched souls</A><br>
-<A NAME=4.3.160>That stay his cure: their malady convinces</A><br>
-<A NAME=4.3.161>The great assay of art; but at his touch--</A><br>
-<A NAME=4.3.162>Such sanctity hath heaven given his hand--</A><br>
-<A NAME=4.3.163>They presently amend.</A><br>
-</blockquote>
-
-<A NAME=speech25><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.164>I thank you, doctor.</A><br>
-<p><i>Exit Doctor</i></p>
-</blockquote>
-
-<A NAME=speech26><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.165>What's the disease he means?</A><br>
-</blockquote>
-
-<A NAME=speech27><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.166>'Tis call'd the evil:</A><br>
-<A NAME=4.3.167>A most miraculous work in this good king;</A><br>
-<A NAME=4.3.168>Which often, since my here-remain in England,</A><br>
-<A NAME=4.3.169>I have seen him do. How he solicits heaven,</A><br>
-<A NAME=4.3.170>Himself best knows: but strangely-visited people,</A><br>
-<A NAME=4.3.171>All swoln and ulcerous, pitiful to the eye,</A><br>
-<A NAME=4.3.172>The mere despair of surgery, he cures,</A><br>
-<A NAME=4.3.173>Hanging a golden stamp about their necks,</A><br>
-<A NAME=4.3.174>Put on with holy prayers: and 'tis spoken,</A><br>
-<A NAME=4.3.175>To the succeeding royalty he leaves</A><br>
-<A NAME=4.3.176>The healing benediction. With this strange virtue,</A><br>
-<A NAME=4.3.177>He hath a heavenly gift of prophecy,</A><br>
-<A NAME=4.3.178>And sundry blessings hang about his throne,</A><br>
-<A NAME=4.3.179>That speak him full of grace.</A><br>
-<p><i>Enter ROSS</i></p>
-</blockquote>
-
-<A NAME=speech28><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.180>See, who comes here?</A><br>
-</blockquote>
-
-<A NAME=speech29><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.181>My countryman; but yet I know him not.</A><br>
-</blockquote>
-
-<A NAME=speech30><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.182>My ever-gentle cousin, welcome hither.</A><br>
-</blockquote>
-
-<A NAME=speech31><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.183>I know him now. Good God, betimes remove</A><br>
-<A NAME=4.3.184>The means that makes us strangers!</A><br>
-</blockquote>
-
-<A NAME=speech32><b>ROSS</b></a>
-<blockquote>
-<A NAME=4.3.185>Sir, amen.</A><br>
-</blockquote>
-
-<A NAME=speech33><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.186>Stands Scotland where it did?</A><br>
-</blockquote>
-
-<A NAME=speech34><b>ROSS</b></a>
-<blockquote>
-<A NAME=4.3.187>Alas, poor country!</A><br>
-<A NAME=4.3.188>Almost afraid to know itself. It cannot</A><br>
-<A NAME=4.3.189>Be call'd our mother, but our grave; where nothing,</A><br>
-<A NAME=4.3.190>But who knows nothing, is once seen to smile;</A><br>
-<A NAME=4.3.191>Where sighs and groans and shrieks that rend the air</A><br>
-<A NAME=4.3.192>Are made, not mark'd; where violent sorrow seems</A><br>
-<A NAME=4.3.193>A modern ecstasy; the dead man's knell</A><br>
-<A NAME=4.3.194>Is there scarce ask'd for who; and good men's lives</A><br>
-<A NAME=4.3.195>Expire before the flowers in their caps,</A><br>
-<A NAME=4.3.196>Dying or ere they sicken.</A><br>
-</blockquote>
-
-<A NAME=speech35><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.197>O, relation</A><br>
-<A NAME=4.3.198>Too nice, and yet too true!</A><br>
-</blockquote>
-
-<A NAME=speech36><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.199>What's the newest grief?</A><br>
-</blockquote>
-
-<A NAME=speech37><b>ROSS</b></a>
-<blockquote>
-<A NAME=4.3.200>That of an hour's age doth hiss the speaker:</A><br>
-<A NAME=4.3.201>Each minute teems a new one.</A><br>
-</blockquote>
-
-<A NAME=speech38><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.202>How does my wife?</A><br>
-</blockquote>
-
-<A NAME=speech39><b>ROSS</b></a>
-<blockquote>
-<A NAME=4.3.203>Why, well.</A><br>
-</blockquote>
-
-<A NAME=speech40><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.204> And all my children?</A><br>
-</blockquote>
-
-<A NAME=speech41><b>ROSS</b></a>
-<blockquote>
-<A NAME=4.3.205>Well too.</A><br>
-</blockquote>
-
-<A NAME=speech42><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.206>The tyrant has not batter'd at their peace?</A><br>
-</blockquote>
-
-<A NAME=speech43><b>ROSS</b></a>
-<blockquote>
-<A NAME=4.3.207>No; they were well at peace when I did leave 'em.</A><br>
-</blockquote>
-
-<A NAME=speech44><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.208>But not a niggard of your speech: how goes't?</A><br>
-</blockquote>
-
-<A NAME=speech45><b>ROSS</b></a>
-<blockquote>
-<A NAME=4.3.209>When I came hither to transport the tidings,</A><br>
-<A NAME=4.3.210>Which I have heavily borne, there ran a rumour</A><br>
-<A NAME=4.3.211>Of many worthy fellows that were out;</A><br>
-<A NAME=4.3.212>Which was to my belief witness'd the rather,</A><br>
-<A NAME=4.3.213>For that I saw the tyrant's power a-foot:</A><br>
-<A NAME=4.3.214>Now is the time of help; your eye in Scotland</A><br>
-<A NAME=4.3.215>Would create soldiers, make our women fight,</A><br>
-<A NAME=4.3.216>To doff their dire distresses.</A><br>
-</blockquote>
-
-<A NAME=speech46><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.217>Be't their comfort</A><br>
-<A NAME=4.3.218>We are coming thither: gracious England hath</A><br>
-<A NAME=4.3.219>Lent us good Siward and ten thousand men;</A><br>
-<A NAME=4.3.220>An older and a better soldier none</A><br>
-<A NAME=4.3.221>That Christendom gives out.</A><br>
-</blockquote>
-
-<A NAME=speech47><b>ROSS</b></a>
-<blockquote>
-<A NAME=4.3.222>Would I could answer</A><br>
-<A NAME=4.3.223>This comfort with the like! But I have words</A><br>
-<A NAME=4.3.224>That would be howl'd out in the desert air,</A><br>
-<A NAME=4.3.225>Where hearing should not latch them.</A><br>
-</blockquote>
-
-<A NAME=speech48><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.226>What concern they?</A><br>
-<A NAME=4.3.227>The general cause? or is it a fee-grief</A><br>
-<A NAME=4.3.228>Due to some single breast?</A><br>
-</blockquote>
-
-<A NAME=speech49><b>ROSS</b></a>
-<blockquote>
-<A NAME=4.3.229>No mind that's honest</A><br>
-<A NAME=4.3.230>But in it shares some woe; though the main part</A><br>
-<A NAME=4.3.231>Pertains to you alone.</A><br>
-</blockquote>
-
-<A NAME=speech50><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.232>If it be mine,</A><br>
-<A NAME=4.3.233>Keep it not from me, quickly let me have it.</A><br>
-</blockquote>
-
-<A NAME=speech51><b>ROSS</b></a>
-<blockquote>
-<A NAME=4.3.234>Let not your ears despise my tongue for ever,</A><br>
-<A NAME=4.3.235>Which shall possess them with the heaviest sound</A><br>
-<A NAME=4.3.236>That ever yet they heard.</A><br>
-</blockquote>
-
-<A NAME=speech52><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.237>Hum! I guess at it.</A><br>
-</blockquote>
-
-<A NAME=speech53><b>ROSS</b></a>
-<blockquote>
-<A NAME=4.3.238>Your castle is surprised; your wife and babes</A><br>
-<A NAME=4.3.239>Savagely slaughter'd: to relate the manner,</A><br>
-<A NAME=4.3.240>Were, on the quarry of these murder'd deer,</A><br>
-<A NAME=4.3.241>To add the death of you.</A><br>
-</blockquote>
-
-<A NAME=speech54><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.242>Merciful heaven!</A><br>
-<A NAME=4.3.243>What, man! ne'er pull your hat upon your brows;</A><br>
-<A NAME=4.3.244>Give sorrow words: the grief that does not speak</A><br>
-<A NAME=4.3.245>Whispers the o'er-fraught heart and bids it break.</A><br>
-</blockquote>
-
-<A NAME=speech55><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.246>My children too?</A><br>
-</blockquote>
-
-<A NAME=speech56><b>ROSS</b></a>
-<blockquote>
-<A NAME=4.3.247> Wife, children, servants, all</A><br>
-<A NAME=4.3.248>That could be found.</A><br>
-</blockquote>
-
-<A NAME=speech57><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.249>And I must be from thence!</A><br>
-<A NAME=4.3.250>My wife kill'd too?</A><br>
-</blockquote>
-
-<A NAME=speech58><b>ROSS</b></a>
-<blockquote>
-<A NAME=4.3.251>I have said.</A><br>
-</blockquote>
-
-<A NAME=speech59><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.252>Be comforted:</A><br>
-<A NAME=4.3.253>Let's make us medicines of our great revenge,</A><br>
-<A NAME=4.3.254>To cure this deadly grief.</A><br>
-</blockquote>
-
-<A NAME=speech60><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.255>He has no children. All my pretty ones?</A><br>
-<A NAME=4.3.256>Did you say all? O hell-kite! All?</A><br>
-<A NAME=4.3.257>What, all my pretty chickens and their dam</A><br>
-<A NAME=4.3.258>At one fell swoop?</A><br>
-</blockquote>
-
-<A NAME=speech61><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.259>Dispute it like a man.</A><br>
-</blockquote>
-
-<A NAME=speech62><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.260>I shall do so;</A><br>
-<A NAME=4.3.261>But I must also feel it as a man:</A><br>
-<A NAME=4.3.262>I cannot but remember such things were,</A><br>
-<A NAME=4.3.263>That were most precious to me. Did heaven look on,</A><br>
-<A NAME=4.3.264>And would not take their part? Sinful Macduff,</A><br>
-<A NAME=4.3.265>They were all struck for thee! naught that I am,</A><br>
-<A NAME=4.3.266>Not for their own demerits, but for mine,</A><br>
-<A NAME=4.3.267>Fell slaughter on their souls. Heaven rest them now!</A><br>
-</blockquote>
-
-<A NAME=speech63><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.268>Be this the whetstone of your sword: let grief</A><br>
-<A NAME=4.3.269>Convert to anger; blunt not the heart, enrage it.</A><br>
-</blockquote>
-
-<A NAME=speech64><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=4.3.270>O, I could play the woman with mine eyes</A><br>
-<A NAME=4.3.271>And braggart with my tongue! But, gentle heavens,</A><br>
-<A NAME=4.3.272>Cut short all intermission; front to front</A><br>
-<A NAME=4.3.273>Bring thou this fiend of Scotland and myself;</A><br>
-<A NAME=4.3.274>Within my sword's length set him; if he 'scape,</A><br>
-<A NAME=4.3.275>Heaven forgive him too!</A><br>
-</blockquote>
-
-<A NAME=speech65><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=4.3.276>This tune goes manly.</A><br>
-<A NAME=4.3.277>Come, go we to the king; our power is ready;</A><br>
-<A NAME=4.3.278>Our lack is nothing but our leave; Macbeth</A><br>
-<A NAME=4.3.279>Is ripe for shaking, and the powers above</A><br>
-<A NAME=4.3.280>Put on their instruments. Receive what cheer you may:</A><br>
-<A NAME=4.3.281>The night is long that never finds the day.</A><br>
-<p><i>Exeunt</i></p>
-</blockquote><p>
-<H3>ACT V</h3>
-<h3>SCENE I. Dunsinane. Ante-room in the castle.</h3>
-<p><blockquote>
-<i>Enter a Doctor of Physic and a Waiting-Gentlewoman</i>
-</blockquote>
-
-<A NAME=speech1><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.1.1>I have two nights watched with you, but can perceive</A><br>
-<A NAME=5.1.2>no truth in your report. When was it she last walked?</A><br>
-</blockquote>
-
-<A NAME=speech2><b>Gentlewoman</b></a>
-<blockquote>
-<A NAME=5.1.3>Since his majesty went into the field, I have seen</A><br>
-<A NAME=5.1.4>her rise from her bed, throw her night-gown upon</A><br>
-<A NAME=5.1.5>her, unlock her closet, take forth paper, fold it,</A><br>
-<A NAME=5.1.6>write upon't, read it, afterwards seal it, and again</A><br>
-<A NAME=5.1.7>return to bed; yet all this while in a most fast sleep.</A><br>
-</blockquote>
-
-<A NAME=speech3><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.1.8>A great perturbation in nature, to receive at once</A><br>
-<A NAME=5.1.9>the benefit of sleep, and do the effects of</A><br>
-<A NAME=5.1.10>watching! In this slumbery agitation, besides her</A><br>
-<A NAME=5.1.11>walking and other actual performances, what, at any</A><br>
-<A NAME=5.1.12>time, have you heard her say?</A><br>
-</blockquote>
-
-<A NAME=speech4><b>Gentlewoman</b></a>
-<blockquote>
-<A NAME=5.1.13>That, sir, which I will not report after her.</A><br>
-</blockquote>
-
-<A NAME=speech5><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.1.14>You may to me: and 'tis most meet you should.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>Gentlewoman</b></a>
-<blockquote>
-<A NAME=5.1.15>Neither to you nor any one; having no witness to</A><br>
-<A NAME=5.1.16>confirm my speech.</A><br>
-<p><i>Enter LADY MACBETH, with a taper</i></p>
-<A NAME=5.1.17>Lo you, here she comes! This is her very guise;</A><br>
-<A NAME=5.1.18>and, upon my life, fast asleep. Observe her; stand close.</A><br>
-</blockquote>
-
-<A NAME=speech7><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.1.19>How came she by that light?</A><br>
-</blockquote>
-
-<A NAME=speech8><b>Gentlewoman</b></a>
-<blockquote>
-<A NAME=5.1.20>Why, it stood by her: she has light by her</A><br>
-<A NAME=5.1.21>continually; 'tis her command.</A><br>
-</blockquote>
-
-<A NAME=speech9><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.1.22>You see, her eyes are open.</A><br>
-</blockquote>
-
-<A NAME=speech10><b>Gentlewoman</b></a>
-<blockquote>
-<A NAME=5.1.23>Ay, but their sense is shut.</A><br>
-</blockquote>
-
-<A NAME=speech11><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.1.24>What is it she does now? Look, how she rubs her hands.</A><br>
-</blockquote>
-
-<A NAME=speech12><b>Gentlewoman</b></a>
-<blockquote>
-<A NAME=5.1.25>It is an accustomed action with her, to seem thus</A><br>
-<A NAME=5.1.26>washing her hands: I have known her continue in</A><br>
-<A NAME=5.1.27>this a quarter of an hour.</A><br>
-</blockquote>
-
-<A NAME=speech13><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=5.1.28>Yet here's a spot.</A><br>
-</blockquote>
-
-<A NAME=speech14><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.1.29>Hark! she speaks: I will set down what comes from</A><br>
-<A NAME=5.1.30>her, to satisfy my remembrance the more strongly.</A><br>
-</blockquote>
-
-<A NAME=speech15><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=5.1.31>Out, damned spot! out, I say!--One: two: why,</A><br>
-<A NAME=5.1.32>then, 'tis time to do't.--Hell is murky!--Fie, my</A><br>
-<A NAME=5.1.33>lord, fie! a soldier, and afeard? What need we</A><br>
-<A NAME=5.1.34>fear who knows it, when none can call our power to</A><br>
-<A NAME=5.1.35>account?--Yet who would have thought the old man</A><br>
-<A NAME=5.1.36>to have had so much blood in him.</A><br>
-</blockquote>
-
-<A NAME=speech16><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.1.37>Do you mark that?</A><br>
-</blockquote>
-
-<A NAME=speech17><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=5.1.38>The thane of Fife had a wife: where is she now?--</A><br>
-<A NAME=5.1.39>What, will these hands ne'er be clean?--No more o'</A><br>
-<A NAME=5.1.40>that, my lord, no more o' that: you mar all with</A><br>
-<A NAME=5.1.41>this starting.</A><br>
-</blockquote>
-
-<A NAME=speech18><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.1.42>Go to, go to; you have known what you should not.</A><br>
-</blockquote>
-
-<A NAME=speech19><b>Gentlewoman</b></a>
-<blockquote>
-<A NAME=5.1.43>She has spoke what she should not, I am sure of</A><br>
-<A NAME=5.1.44>that: heaven knows what she has known.</A><br>
-</blockquote>
-
-<A NAME=speech20><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=5.1.45>Here's the smell of the blood still: all the</A><br>
-<A NAME=5.1.46>perfumes of Arabia will not sweeten this little</A><br>
-<A NAME=5.1.47>hand. Oh, oh, oh!</A><br>
-</blockquote>
-
-<A NAME=speech21><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.1.48>What a sigh is there! The heart is sorely charged.</A><br>
-</blockquote>
-
-<A NAME=speech22><b>Gentlewoman</b></a>
-<blockquote>
-<A NAME=5.1.49>I would not have such a heart in my bosom for the</A><br>
-<A NAME=5.1.50>dignity of the whole body.</A><br>
-</blockquote>
-
-<A NAME=speech23><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.1.51>Well, well, well,--</A><br>
-</blockquote>
-
-<A NAME=speech24><b>Gentlewoman</b></a>
-<blockquote>
-<A NAME=5.1.52>Pray God it be, sir.</A><br>
-</blockquote>
-
-<A NAME=speech25><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.1.53>This disease is beyond my practise: yet I have known</A><br>
-<A NAME=5.1.54>those which have walked in their sleep who have died</A><br>
-<A NAME=5.1.55>holily in their beds.</A><br>
-</blockquote>
-
-<A NAME=speech26><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=5.1.56>Wash your hands, put on your nightgown; look not so</A><br>
-<A NAME=5.1.57>pale.--I tell you yet again, Banquo's buried; he</A><br>
-<A NAME=5.1.58>cannot come out on's grave.</A><br>
-</blockquote>
-
-<A NAME=speech27><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.1.59>Even so?</A><br>
-</blockquote>
-
-<A NAME=speech28><b>LADY MACBETH</b></a>
-<blockquote>
-<A NAME=5.1.60>To bed, to bed! there's knocking at the gate:</A><br>
-<A NAME=5.1.61>come, come, come, come, give me your hand. What's</A><br>
-<A NAME=5.1.62>done cannot be undone.--To bed, to bed, to bed!</A><br>
-<p><i>Exit</i></p>
-</blockquote>
-
-<A NAME=speech29><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.1.63>Will she go now to bed?</A><br>
-</blockquote>
-
-<A NAME=speech30><b>Gentlewoman</b></a>
-<blockquote>
-<A NAME=5.1.64>Directly.</A><br>
-</blockquote>
-
-<A NAME=speech31><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.1.65>Foul whisperings are abroad: unnatural deeds</A><br>
-<A NAME=5.1.66>Do breed unnatural troubles: infected minds</A><br>
-<A NAME=5.1.67>To their deaf pillows will discharge their secrets:</A><br>
-<A NAME=5.1.68>More needs she the divine than the physician.</A><br>
-<A NAME=5.1.69>God, God forgive us all! Look after her;</A><br>
-<A NAME=5.1.70>Remove from her the means of all annoyance,</A><br>
-<A NAME=5.1.71>And still keep eyes upon her. So, good night:</A><br>
-<A NAME=5.1.72>My mind she has mated, and amazed my sight.</A><br>
-<A NAME=5.1.73>I think, but dare not speak.</A><br>
-</blockquote>
-
-<A NAME=speech32><b>Gentlewoman</b></a>
-<blockquote>
-<A NAME=5.1.74>Good night, good doctor.</A><br>
-<p><i>Exeunt</i></p>
-</blockquote>
-<h3>SCENE II. The country near Dunsinane.</h3>
-<p><blockquote>
-<i>Drum and colours. Enter MENTEITH, CAITHNESS, ANGUS, LENNOX, and Soldiers</i>
-</blockquote>
-
-<A NAME=speech1><b>MENTEITH</b></a>
-<blockquote>
-<A NAME=5.2.1>The English power is near, led on by Malcolm,</A><br>
-<A NAME=5.2.2>His uncle Siward and the good Macduff:</A><br>
-<A NAME=5.2.3>Revenges burn in them; for their dear causes</A><br>
-<A NAME=5.2.4>Would to the bleeding and the grim alarm</A><br>
-<A NAME=5.2.5>Excite the mortified man.</A><br>
-</blockquote>
-
-<A NAME=speech2><b>ANGUS</b></a>
-<blockquote>
-<A NAME=5.2.6>Near Birnam wood</A><br>
-<A NAME=5.2.7>Shall we well meet them; that way are they coming.</A><br>
-</blockquote>
-
-<A NAME=speech3><b>CAITHNESS</b></a>
-<blockquote>
-<A NAME=5.2.8>Who knows if Donalbain be with his brother?</A><br>
-</blockquote>
-
-<A NAME=speech4><b>LENNOX</b></a>
-<blockquote>
-<A NAME=5.2.9>For certain, sir, he is not: I have a file</A><br>
-<A NAME=5.2.10>Of all the gentry: there is Siward's son,</A><br>
-<A NAME=5.2.11>And many unrough youths that even now</A><br>
-<A NAME=5.2.12>Protest their first of manhood.</A><br>
-</blockquote>
-
-<A NAME=speech5><b>MENTEITH</b></a>
-<blockquote>
-<A NAME=5.2.13>What does the tyrant?</A><br>
-</blockquote>
-
-<A NAME=speech6><b>CAITHNESS</b></a>
-<blockquote>
-<A NAME=5.2.14>Great Dunsinane he strongly fortifies:</A><br>
-<A NAME=5.2.15>Some say he's mad; others that lesser hate him</A><br>
-<A NAME=5.2.16>Do call it valiant fury: but, for certain,</A><br>
-<A NAME=5.2.17>He cannot buckle his distemper'd cause</A><br>
-<A NAME=5.2.18>Within the belt of rule.</A><br>
-</blockquote>
-
-<A NAME=speech7><b>ANGUS</b></a>
-<blockquote>
-<A NAME=5.2.19>Now does he feel</A><br>
-<A NAME=5.2.20>His secret murders sticking on his hands;</A><br>
-<A NAME=5.2.21>Now minutely revolts upbraid his faith-breach;</A><br>
-<A NAME=5.2.22>Those he commands move only in command,</A><br>
-<A NAME=5.2.23>Nothing in love: now does he feel his title</A><br>
-<A NAME=5.2.24>Hang loose about him, like a giant's robe</A><br>
-<A NAME=5.2.25>Upon a dwarfish thief.</A><br>
-</blockquote>
-
-<A NAME=speech8><b>MENTEITH</b></a>
-<blockquote>
-<A NAME=5.2.26>Who then shall blame</A><br>
-<A NAME=5.2.27>His pester'd senses to recoil and start,</A><br>
-<A NAME=5.2.28>When all that is within him does condemn</A><br>
-<A NAME=5.2.29>Itself for being there?</A><br>
-</blockquote>
-
-<A NAME=speech9><b>CAITHNESS</b></a>
-<blockquote>
-<A NAME=5.2.30>Well, march we on,</A><br>
-<A NAME=5.2.31>To give obedience where 'tis truly owed:</A><br>
-<A NAME=5.2.32>Meet we the medicine of the sickly weal,</A><br>
-<A NAME=5.2.33>And with him pour we in our country's purge</A><br>
-<A NAME=5.2.34>Each drop of us.</A><br>
-</blockquote>
-
-<A NAME=speech10><b>LENNOX</b></a>
-<blockquote>
-<A NAME=5.2.35> Or so much as it needs,</A><br>
-<A NAME=5.2.36>To dew the sovereign flower and drown the weeds.</A><br>
-<A NAME=5.2.37>Make we our march towards Birnam.</A><br>
-<p><i>Exeunt, marching</i></p>
-</blockquote>
-<h3>SCENE III. Dunsinane. A room in the castle.</h3>
-<p><blockquote>
-<i>Enter MACBETH, Doctor, and Attendants</i>
-</blockquote>
-
-<A NAME=speech1><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.3.1>Bring me no more reports; let them fly all:</A><br>
-<A NAME=5.3.2>Till Birnam wood remove to Dunsinane,</A><br>
-<A NAME=5.3.3>I cannot taint with fear. What's the boy Malcolm?</A><br>
-<A NAME=5.3.4>Was he not born of woman? The spirits that know</A><br>
-<A NAME=5.3.5>All mortal consequences have pronounced me thus:</A><br>
-<A NAME=5.3.6>'Fear not, Macbeth; no man that's born of woman</A><br>
-<A NAME=5.3.7>Shall e'er have power upon thee.' Then fly,</A><br>
-<A NAME=5.3.8>false thanes,</A><br>
-<A NAME=5.3.9>And mingle with the English epicures:</A><br>
-<A NAME=5.3.10>The mind I sway by and the heart I bear</A><br>
-<A NAME=5.3.11>Shall never sag with doubt nor shake with fear.</A><br>
-<p><i>Enter a Servant</i></p>
-<A NAME=5.3.12>The devil damn thee black, thou cream-faced loon!</A><br>
-<A NAME=5.3.13>Where got'st thou that goose look?</A><br>
-</blockquote>
-
-<A NAME=speech2><b>Servant</b></a>
-<blockquote>
-<A NAME=5.3.14>There is ten thousand--</A><br>
-</blockquote>
-
-<A NAME=speech3><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.3.15>Geese, villain!</A><br>
-</blockquote>
-
-<A NAME=speech4><b>Servant</b></a>
-<blockquote>
-<A NAME=5.3.16>Soldiers, sir.</A><br>
-</blockquote>
-
-<A NAME=speech5><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.3.17>Go prick thy face, and over-red thy fear,</A><br>
-<A NAME=5.3.18>Thou lily-liver'd boy. What soldiers, patch?</A><br>
-<A NAME=5.3.19>Death of thy soul! those linen cheeks of thine</A><br>
-<A NAME=5.3.20>Are counsellors to fear. What soldiers, whey-face?</A><br>
-</blockquote>
-
-<A NAME=speech6><b>Servant</b></a>
-<blockquote>
-<A NAME=5.3.21>The English force, so please you.</A><br>
-</blockquote>
-
-<A NAME=speech7><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.3.22>Take thy face hence.</A><br>
-<p><i>Exit Servant</i></p>
-<A NAME=5.3.23>Seyton!--I am sick at heart,</A><br>
-<A NAME=5.3.24>When I behold--Seyton, I say!--This push</A><br>
-<A NAME=5.3.25>Will cheer me ever, or disseat me now.</A><br>
-<A NAME=5.3.26>I have lived long enough: my way of life</A><br>
-<A NAME=5.3.27>Is fall'n into the sear, the yellow leaf;</A><br>
-<A NAME=5.3.28>And that which should accompany old age,</A><br>
-<A NAME=5.3.29>As honour, love, obedience, troops of friends,</A><br>
-<A NAME=5.3.30>I must not look to have; but, in their stead,</A><br>
-<A NAME=5.3.31>Curses, not loud but deep, mouth-honour, breath,</A><br>
-<A NAME=5.3.32>Which the poor heart would fain deny, and dare not. Seyton!</A><br>
-<p><i>Enter SEYTON</i></p>
-</blockquote>
-
-<A NAME=speech8><b>SEYTON</b></a>
-<blockquote>
-<A NAME=5.3.33>What is your gracious pleasure?</A><br>
-</blockquote>
-
-<A NAME=speech9><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.3.34>What news more?</A><br>
-</blockquote>
-
-<A NAME=speech10><b>SEYTON</b></a>
-<blockquote>
-<A NAME=5.3.35>All is confirm'd, my lord, which was reported.</A><br>
-</blockquote>
-
-<A NAME=speech11><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.3.36>I'll fight till from my bones my flesh be hack'd.</A><br>
-<A NAME=5.3.37>Give me my armour.</A><br>
-</blockquote>
-
-<A NAME=speech12><b>SEYTON</b></a>
-<blockquote>
-<A NAME=5.3.38>'Tis not needed yet.</A><br>
-</blockquote>
-
-<A NAME=speech13><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.3.39>I'll put it on.</A><br>
-<A NAME=5.3.40>Send out more horses; skirr the country round;</A><br>
-<A NAME=5.3.41>Hang those that talk of fear. Give me mine armour.</A><br>
-<A NAME=5.3.42>How does your patient, doctor?</A><br>
-</blockquote>
-
-<A NAME=speech14><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.3.43>Not so sick, my lord,</A><br>
-<A NAME=5.3.44>As she is troubled with thick coming fancies,</A><br>
-<A NAME=5.3.45>That keep her from her rest.</A><br>
-</blockquote>
-
-<A NAME=speech15><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.3.46>Cure her of that.</A><br>
-<A NAME=5.3.47>Canst thou not minister to a mind diseased,</A><br>
-<A NAME=5.3.48>Pluck from the memory a rooted sorrow,</A><br>
-<A NAME=5.3.49>Raze out the written troubles of the brain</A><br>
-<A NAME=5.3.50>And with some sweet oblivious antidote</A><br>
-<A NAME=5.3.51>Cleanse the stuff'd bosom of that perilous stuff</A><br>
-<A NAME=5.3.52>Which weighs upon the heart?</A><br>
-</blockquote>
-
-<A NAME=speech16><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.3.53>Therein the patient</A><br>
-<A NAME=5.3.54>Must minister to himself.</A><br>
-</blockquote>
-
-<A NAME=speech17><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.3.55>Throw physic to the dogs; I'll none of it.</A><br>
-<A NAME=5.3.56>Come, put mine armour on; give me my staff.</A><br>
-<A NAME=5.3.57>Seyton, send out. Doctor, the thanes fly from me.</A><br>
-<A NAME=5.3.58>Come, sir, dispatch. If thou couldst, doctor, cast</A><br>
-<A NAME=5.3.59>The water of my land, find her disease,</A><br>
-<A NAME=5.3.60>And purge it to a sound and pristine health,</A><br>
-<A NAME=5.3.61>I would applaud thee to the very echo,</A><br>
-<A NAME=5.3.62>That should applaud again.--Pull't off, I say.--</A><br>
-<A NAME=5.3.63>What rhubarb, cyme, or what purgative drug,</A><br>
-<A NAME=5.3.64>Would scour these English hence? Hear'st thou of them?</A><br>
-</blockquote>
-
-<A NAME=speech18><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.3.65>Ay, my good lord; your royal preparation</A><br>
-<A NAME=5.3.66>Makes us hear something.</A><br>
-</blockquote>
-
-<A NAME=speech19><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.3.67>Bring it after me.</A><br>
-<A NAME=5.3.68>I will not be afraid of death and bane,</A><br>
-<A NAME=5.3.69>Till Birnam forest come to Dunsinane.</A><br>
-</blockquote>
-
-<A NAME=speech20><b>Doctor</b></a>
-<blockquote>
-<A NAME=5.3.70>[Aside] Were I from Dunsinane away and clear,</A><br>
-<A NAME=5.3.71>Profit again should hardly draw me here.</A><br>
-<p><i>Exeunt</i></p>
-</blockquote>
-<h3>SCENE IV. Country near Birnam wood.</h3>
-<p><blockquote>
-<i>Drum and colours. Enter MALCOLM, SIWARD and YOUNG SIWARD, MACDUFF, MENTEITH, CAITHNESS, ANGUS, LENNOX, ROSS, and Soldiers, marching</i>
-</blockquote>
-
-<A NAME=speech1><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=5.4.1>Cousins, I hope the days are near at hand</A><br>
-<A NAME=5.4.2>That chambers will be safe.</A><br>
-</blockquote>
-
-<A NAME=speech2><b>MENTEITH</b></a>
-<blockquote>
-<A NAME=5.4.3>We doubt it nothing.</A><br>
-</blockquote>
-
-<A NAME=speech3><b>SIWARD</b></a>
-<blockquote>
-<A NAME=5.4.4>What wood is this before us?</A><br>
-</blockquote>
-
-<A NAME=speech4><b>MENTEITH</b></a>
-<blockquote>
-<A NAME=5.4.5>The wood of Birnam.</A><br>
-</blockquote>
-
-<A NAME=speech5><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=5.4.6>Let every soldier hew him down a bough</A><br>
-<A NAME=5.4.7>And bear't before him: thereby shall we shadow</A><br>
-<A NAME=5.4.8>The numbers of our host and make discovery</A><br>
-<A NAME=5.4.9>Err in report of us.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>Soldiers</b></a>
-<blockquote>
-<A NAME=5.4.10>It shall be done.</A><br>
-</blockquote>
-
-<A NAME=speech7><b>SIWARD</b></a>
-<blockquote>
-<A NAME=5.4.11>We learn no other but the confident tyrant</A><br>
-<A NAME=5.4.12>Keeps still in Dunsinane, and will endure</A><br>
-<A NAME=5.4.13>Our setting down before 't.</A><br>
-</blockquote>
-
-<A NAME=speech8><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=5.4.14>'Tis his main hope:</A><br>
-<A NAME=5.4.15>For where there is advantage to be given,</A><br>
-<A NAME=5.4.16>Both more and less have given him the revolt,</A><br>
-<A NAME=5.4.17>And none serve with him but constrained things</A><br>
-<A NAME=5.4.18>Whose hearts are absent too.</A><br>
-</blockquote>
-
-<A NAME=speech9><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=5.4.19>Let our just censures</A><br>
-<A NAME=5.4.20>Attend the true event, and put we on</A><br>
-<A NAME=5.4.21>Industrious soldiership.</A><br>
-</blockquote>
-
-<A NAME=speech10><b>SIWARD</b></a>
-<blockquote>
-<A NAME=5.4.22>The time approaches</A><br>
-<A NAME=5.4.23>That will with due decision make us know</A><br>
-<A NAME=5.4.24>What we shall say we have and what we owe.</A><br>
-<A NAME=5.4.25>Thoughts speculative their unsure hopes relate,</A><br>
-<A NAME=5.4.26>But certain issue strokes must arbitrate:</A><br>
-<A NAME=5.4.27>Towards which advance the war.</A><br>
-<p><i>Exeunt, marching</i></p>
-</blockquote>
-<h3>SCENE V. Dunsinane. Within the castle.</h3>
-<p><blockquote>
-<i>Enter MACBETH, SEYTON, and Soldiers, with drum and colours</i>
-</blockquote>
-
-<A NAME=speech1><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.5.1>Hang out our banners on the outward walls;</A><br>
-<A NAME=5.5.2>The cry is still 'They come:' our castle's strength</A><br>
-<A NAME=5.5.3>Will laugh a siege to scorn: here let them lie</A><br>
-<A NAME=5.5.4>Till famine and the ague eat them up:</A><br>
-<A NAME=5.5.5>Were they not forced with those that should be ours,</A><br>
-<A NAME=5.5.6>We might have met them dareful, beard to beard,</A><br>
-<A NAME=5.5.7>And beat them backward home.</A><br>
-<p><i>A cry of women within</i></p>
-<A NAME=5.5.8>What is that noise?</A><br>
-</blockquote>
-
-<A NAME=speech2><b>SEYTON</b></a>
-<blockquote>
-<A NAME=5.5.9>It is the cry of women, my good lord.</A><br>
-<p><i>Exit</i></p>
-</blockquote>
-
-<A NAME=speech3><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.5.10>I have almost forgot the taste of fears;</A><br>
-<A NAME=5.5.11>The time has been, my senses would have cool'd</A><br>
-<A NAME=5.5.12>To hear a night-shriek; and my fell of hair</A><br>
-<A NAME=5.5.13>Would at a dismal treatise rouse and stir</A><br>
-<A NAME=5.5.14>As life were in't: I have supp'd full with horrors;</A><br>
-<A NAME=5.5.15>Direness, familiar to my slaughterous thoughts</A><br>
-<A NAME=5.5.16>Cannot once start me.</A><br>
-<p><i>Re-enter SEYTON</i></p>
-<A NAME=5.5.17>Wherefore was that cry?</A><br>
-</blockquote>
-
-<A NAME=speech4><b>SEYTON</b></a>
-<blockquote>
-<A NAME=5.5.18>The queen, my lord, is dead.</A><br>
-</blockquote>
-
-<A NAME=speech5><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.5.19>She should have died hereafter;</A><br>
-<A NAME=5.5.20>There would have been a time for such a word.</A><br>
-<A NAME=5.5.21>To-morrow, and to-morrow, and to-morrow,</A><br>
-<A NAME=5.5.22>Creeps in this petty pace from day to day</A><br>
-<A NAME=5.5.23>To the last syllable of recorded time,</A><br>
-<A NAME=5.5.24>And all our yesterdays have lighted fools</A><br>
-<A NAME=5.5.25>The way to dusty death. Out, out, brief candle!</A><br>
-<A NAME=5.5.26>Life's but a walking shadow, a poor player</A><br>
-<A NAME=5.5.27>That struts and frets his hour upon the stage</A><br>
-<A NAME=5.5.28>And then is heard no more: it is a tale</A><br>
-<A NAME=5.5.29>Told by an idiot, full of sound and fury,</A><br>
-<A NAME=5.5.30>Signifying nothing.</A><br>
-<p><i>Enter a Messenger</i></p>
-<A NAME=5.5.31>Thou comest to use thy tongue; thy story quickly.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>Messenger</b></a>
-<blockquote>
-<A NAME=5.5.32>Gracious my lord,</A><br>
-<A NAME=5.5.33>I should report that which I say I saw,</A><br>
-<A NAME=5.5.34>But know not how to do it.</A><br>
-</blockquote>
-
-<A NAME=speech7><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.5.35>Well, say, sir.</A><br>
-</blockquote>
-
-<A NAME=speech8><b>Messenger</b></a>
-<blockquote>
-<A NAME=5.5.36>As I did stand my watch upon the hill,</A><br>
-<A NAME=5.5.37>I look'd toward Birnam, and anon, methought,</A><br>
-<A NAME=5.5.38>The wood began to move.</A><br>
-</blockquote>
-
-<A NAME=speech9><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.5.39>Liar and slave!</A><br>
-</blockquote>
-
-<A NAME=speech10><b>Messenger</b></a>
-<blockquote>
-<A NAME=5.5.40>Let me endure your wrath, if't be not so:</A><br>
-<A NAME=5.5.41>Within this three mile may you see it coming;</A><br>
-<A NAME=5.5.42>I say, a moving grove.</A><br>
-</blockquote>
-
-<A NAME=speech11><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.5.43>If thou speak'st false,</A><br>
-<A NAME=5.5.44>Upon the next tree shalt thou hang alive,</A><br>
-<A NAME=5.5.45>Till famine cling thee: if thy speech be sooth,</A><br>
-<A NAME=5.5.46>I care not if thou dost for me as much.</A><br>
-<A NAME=5.5.47>I pull in resolution, and begin</A><br>
-<A NAME=5.5.48>To doubt the equivocation of the fiend</A><br>
-<A NAME=5.5.49>That lies like truth: 'Fear not, till Birnam wood</A><br>
-<A NAME=5.5.50>Do come to Dunsinane:' and now a wood</A><br>
-<A NAME=5.5.51>Comes toward Dunsinane. Arm, arm, and out!</A><br>
-<A NAME=5.5.52>If this which he avouches does appear,</A><br>
-<A NAME=5.5.53>There is nor flying hence nor tarrying here.</A><br>
-<A NAME=5.5.54>I gin to be aweary of the sun,</A><br>
-<A NAME=5.5.55>And wish the estate o' the world were now undone.</A><br>
-<A NAME=5.5.56>Ring the alarum-bell! Blow, wind! come, wrack!</A><br>
-<A NAME=5.5.57>At least we'll die with harness on our back.</A><br>
-<p><i>Exeunt</i></p>
-</blockquote>
-<h3>SCENE VI. Dunsinane. Before the castle.</h3>
-<p><blockquote>
-<i>Drum and colours. Enter MALCOLM, SIWARD, MACDUFF, and their Army, with boughs</i>
-</blockquote>
-
-<A NAME=speech1><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=5.6.1>Now near enough: your leafy screens throw down.</A><br>
-<A NAME=5.6.2>And show like those you are. You, worthy uncle,</A><br>
-<A NAME=5.6.3>Shall, with my cousin, your right-noble son,</A><br>
-<A NAME=5.6.4>Lead our first battle: worthy Macduff and we</A><br>
-<A NAME=5.6.5>Shall take upon 's what else remains to do,</A><br>
-<A NAME=5.6.6>According to our order.</A><br>
-</blockquote>
-
-<A NAME=speech2><b>SIWARD</b></a>
-<blockquote>
-<A NAME=5.6.7>Fare you well.</A><br>
-<A NAME=5.6.8>Do we but find the tyrant's power to-night,</A><br>
-<A NAME=5.6.9>Let us be beaten, if we cannot fight.</A><br>
-</blockquote>
-
-<A NAME=speech3><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=5.6.10>Make all our trumpets speak; give them all breath,</A><br>
-<A NAME=5.6.11>Those clamorous harbingers of blood and death.</A><br>
-<p><i>Exeunt</i></p>
-</blockquote>
-<h3>SCENE VII. Another part of the field.</h3>
-<p><blockquote>
-<i>Alarums. Enter MACBETH</i>
-</blockquote>
-
-<A NAME=speech1><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.7.1>They have tied me to a stake; I cannot fly,</A><br>
-<A NAME=5.7.2>But, bear-like, I must fight the course. What's he</A><br>
-<A NAME=5.7.3>That was not born of woman? Such a one</A><br>
-<A NAME=5.7.4>Am I to fear, or none.</A><br>
-<p><i>Enter YOUNG SIWARD</i></p>
-</blockquote>
-
-<A NAME=speech2><b>YOUNG SIWARD</b></a>
-<blockquote>
-<A NAME=5.7.5>What is thy name?</A><br>
-</blockquote>
-
-<A NAME=speech3><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.7.6> Thou'lt be afraid to hear it.</A><br>
-</blockquote>
-
-<A NAME=speech4><b>YOUNG SIWARD</b></a>
-<blockquote>
-<A NAME=5.7.7>No; though thou call'st thyself a hotter name</A><br>
-<A NAME=5.7.8>Than any is in hell.</A><br>
-</blockquote>
-
-<A NAME=speech5><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.7.9>My name's Macbeth.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>YOUNG SIWARD</b></a>
-<blockquote>
-<A NAME=5.7.10>The devil himself could not pronounce a title</A><br>
-<A NAME=5.7.11>More hateful to mine ear.</A><br>
-</blockquote>
-
-<A NAME=speech7><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.7.12>No, nor more fearful.</A><br>
-</blockquote>
-
-<A NAME=speech8><b>YOUNG SIWARD</b></a>
-<blockquote>
-<A NAME=5.7.13>Thou liest, abhorred tyrant; with my sword</A><br>
-<A NAME=5.7.14>I'll prove the lie thou speak'st.</A><br>
-<p><i>They fight and YOUNG SIWARD is slain</i></p>
-</blockquote>
-
-<A NAME=speech9><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.7.15>Thou wast born of woman</A><br>
-<A NAME=5.7.16>But swords I smile at, weapons laugh to scorn,</A><br>
-<A NAME=5.7.17>Brandish'd by man that's of a woman born.</A><br>
-<p><i>Exit</i></p>
-<p><i>Alarums. Enter MACDUFF</i></p>
-</blockquote>
-
-<A NAME=speech10><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=5.7.18>That way the noise is. Tyrant, show thy face!</A><br>
-<A NAME=5.7.19>If thou be'st slain and with no stroke of mine,</A><br>
-<A NAME=5.7.20>My wife and children's ghosts will haunt me still.</A><br>
-<A NAME=5.7.21>I cannot strike at wretched kerns, whose arms</A><br>
-<A NAME=5.7.22>Are hired to bear their staves: either thou, Macbeth,</A><br>
-<A NAME=5.7.23>Or else my sword with an unbatter'd edge</A><br>
-<A NAME=5.7.24>I sheathe again undeeded. There thou shouldst be;</A><br>
-<A NAME=5.7.25>By this great clatter, one of greatest note</A><br>
-<A NAME=5.7.26>Seems bruited. Let me find him, fortune!</A><br>
-<A NAME=5.7.27>And more I beg not.</A><br>
-<p><i>Exit. Alarums</i></p>
-<p><i>Enter MALCOLM and SIWARD</i></p>
-</blockquote>
-
-<A NAME=speech11><b>SIWARD</b></a>
-<blockquote>
-<A NAME=5.7.28>This way, my lord; the castle's gently render'd:</A><br>
-<A NAME=5.7.29>The tyrant's people on both sides do fight;</A><br>
-<A NAME=5.7.30>The noble thanes do bravely in the war;</A><br>
-<A NAME=5.7.31>The day almost itself professes yours,</A><br>
-<A NAME=5.7.32>And little is to do.</A><br>
-</blockquote>
-
-<A NAME=speech12><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=5.7.33>We have met with foes</A><br>
-<A NAME=5.7.34>That strike beside us.</A><br>
-</blockquote>
-
-<A NAME=speech13><b>SIWARD</b></a>
-<blockquote>
-<A NAME=5.7.35>Enter, sir, the castle.</A><br>
-<p><i>Exeunt. Alarums</i></p>
-</blockquote>
-<h3>SCENE VIII. Another part of the field.</h3>
-<p><blockquote>
-<i>Enter MACBETH</i>
-</blockquote>
-
-<A NAME=speech1><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.8.1>Why should I play the Roman fool, and die</A><br>
-<A NAME=5.8.2>On mine own sword? whiles I see lives, the gashes</A><br>
-<A NAME=5.8.3>Do better upon them.</A><br>
-<p><i>Enter MACDUFF</i></p>
-</blockquote>
-
-<A NAME=speech2><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=5.8.4>Turn, hell-hound, turn!</A><br>
-</blockquote>
-
-<A NAME=speech3><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.8.5>Of all men else I have avoided thee:</A><br>
-<A NAME=5.8.6>But get thee back; my soul is too much charged</A><br>
-<A NAME=5.8.7>With blood of thine already.</A><br>
-</blockquote>
-
-<A NAME=speech4><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=5.8.8>I have no words:</A><br>
-<A NAME=5.8.9>My voice is in my sword: thou bloodier villain</A><br>
-<A NAME=5.8.10>Than terms can give thee out!</A><br>
-<p><i>They fight</i></p>
-</blockquote>
-
-<A NAME=speech5><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.8.11>Thou losest labour:</A><br>
-<A NAME=5.8.12>As easy mayst thou the intrenchant air</A><br>
-<A NAME=5.8.13>With thy keen sword impress as make me bleed:</A><br>
-<A NAME=5.8.14>Let fall thy blade on vulnerable crests;</A><br>
-<A NAME=5.8.15>I bear a charmed life, which must not yield,</A><br>
-<A NAME=5.8.16>To one of woman born.</A><br>
-</blockquote>
-
-<A NAME=speech6><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=5.8.17>Despair thy charm;</A><br>
-<A NAME=5.8.18>And let the angel whom thou still hast served</A><br>
-<A NAME=5.8.19>Tell thee, Macduff was from his mother's womb</A><br>
-<A NAME=5.8.20>Untimely ripp'd.</A><br>
-</blockquote>
-
-<A NAME=speech7><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.8.21>Accursed be that tongue that tells me so,</A><br>
-<A NAME=5.8.22>For it hath cow'd my better part of man!</A><br>
-<A NAME=5.8.23>And be these juggling fiends no more believed,</A><br>
-<A NAME=5.8.24>That palter with us in a double sense;</A><br>
-<A NAME=5.8.25>That keep the word of promise to our ear,</A><br>
-<A NAME=5.8.26>And break it to our hope. I'll not fight with thee.</A><br>
-</blockquote>
-
-<A NAME=speech8><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=5.8.27>Then yield thee, coward,</A><br>
-<A NAME=5.8.28>And live to be the show and gaze o' the time:</A><br>
-<A NAME=5.8.29>We'll have thee, as our rarer monsters are,</A><br>
-<A NAME=5.8.30>Painted on a pole, and underwrit,</A><br>
-<A NAME=5.8.31>'Here may you see the tyrant.'</A><br>
-</blockquote>
-
-<A NAME=speech9><b>MACBETH</b></a>
-<blockquote>
-<A NAME=5.8.32>I will not yield,</A><br>
-<A NAME=5.8.33>To kiss the ground before young Malcolm's feet,</A><br>
-<A NAME=5.8.34>And to be baited with the rabble's curse.</A><br>
-<A NAME=5.8.35>Though Birnam wood be come to Dunsinane,</A><br>
-<A NAME=5.8.36>And thou opposed, being of no woman born,</A><br>
-<A NAME=5.8.37>Yet I will try the last. Before my body</A><br>
-<A NAME=5.8.38>I throw my warlike shield. Lay on, Macduff,</A><br>
-<A NAME=5.8.39>And damn'd be him that first cries, 'Hold, enough!'</A><br>
-<p><i>Exeunt, fighting. Alarums</i></p>
-<p><i>Retreat. Flourish. Enter, with drum and colours, MALCOLM, SIWARD, ROSS, the other Thanes, and Soldiers</i></p>
-</blockquote>
-
-<A NAME=speech10><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=5.8.40>I would the friends we miss were safe arrived.</A><br>
-</blockquote>
-
-<A NAME=speech11><b>SIWARD</b></a>
-<blockquote>
-<A NAME=5.8.41>Some must go off: and yet, by these I see,</A><br>
-<A NAME=5.8.42>So great a day as this is cheaply bought.</A><br>
-</blockquote>
-
-<A NAME=speech12><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=5.8.43>Macduff is missing, and your noble son.</A><br>
-</blockquote>
-
-<A NAME=speech13><b>ROSS</b></a>
-<blockquote>
-<A NAME=5.8.44>Your son, my lord, has paid a soldier's debt:</A><br>
-<A NAME=5.8.45>He only lived but till he was a man;</A><br>
-<A NAME=5.8.46>The which no sooner had his prowess confirm'd</A><br>
-<A NAME=5.8.47>In the unshrinking station where he fought,</A><br>
-<A NAME=5.8.48>But like a man he died.</A><br>
-</blockquote>
-
-<A NAME=speech14><b>SIWARD</b></a>
-<blockquote>
-<A NAME=5.8.49>Then he is dead?</A><br>
-</blockquote>
-
-<A NAME=speech15><b>ROSS</b></a>
-<blockquote>
-<A NAME=5.8.50>Ay, and brought off the field: your cause of sorrow</A><br>
-<A NAME=5.8.51>Must not be measured by his worth, for then</A><br>
-<A NAME=5.8.52>It hath no end.</A><br>
-</blockquote>
-
-<A NAME=speech16><b>SIWARD</b></a>
-<blockquote>
-<A NAME=5.8.53> Had he his hurts before?</A><br>
-</blockquote>
-
-<A NAME=speech17><b>ROSS</b></a>
-<blockquote>
-<A NAME=5.8.54>Ay, on the front.</A><br>
-</blockquote>
-
-<A NAME=speech18><b>SIWARD</b></a>
-<blockquote>
-<A NAME=5.8.55> Why then, God's soldier be he!</A><br>
-<A NAME=5.8.56>Had I as many sons as I have hairs,</A><br>
-<A NAME=5.8.57>I would not wish them to a fairer death:</A><br>
-<A NAME=5.8.58>And so, his knell is knoll'd.</A><br>
-</blockquote>
-
-<A NAME=speech19><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=5.8.59>He's worth more sorrow,</A><br>
-<A NAME=5.8.60>And that I'll spend for him.</A><br>
-</blockquote>
-
-<A NAME=speech20><b>SIWARD</b></a>
-<blockquote>
-<A NAME=5.8.61>He's worth no more</A><br>
-<A NAME=5.8.62>They say he parted well, and paid his score:</A><br>
-<A NAME=5.8.63>And so, God be with him! Here comes newer comfort.</A><br>
-<p><i>Re-enter MACDUFF, with MACBETH's head</i></p>
-</blockquote>
-
-<A NAME=speech21><b>MACDUFF</b></a>
-<blockquote>
-<A NAME=5.8.64>Hail, king! for so thou art: behold, where stands</A><br>
-<A NAME=5.8.65>The usurper's cursed head: the time is free:</A><br>
-<A NAME=5.8.66>I see thee compass'd with thy kingdom's pearl,</A><br>
-<A NAME=5.8.67>That speak my salutation in their minds;</A><br>
-<A NAME=5.8.68>Whose voices I desire aloud with mine:</A><br>
-<A NAME=5.8.69>Hail, King of Scotland!</A><br>
-</blockquote>
-
-<A NAME=speech22><b>ALL</b></a>
-<blockquote>
-<A NAME=5.8.70>Hail, King of Scotland!</A><br>
-<p><i>Flourish</i></p>
-</blockquote>
-
-<A NAME=speech23><b>MALCOLM</b></a>
-<blockquote>
-<A NAME=5.8.71>We shall not spend a large expense of time</A><br>
-<A NAME=5.8.72>Before we reckon with your several loves,</A><br>
-<A NAME=5.8.73>And make us even with you. My thanes and kinsmen,</A><br>
-<A NAME=5.8.74>Henceforth be earls, the first that ever Scotland</A><br>
-<A NAME=5.8.75>In such an honour named. What's more to do,</A><br>
-<A NAME=5.8.76>Which would be planted newly with the time,</A><br>
-<A NAME=5.8.77>As calling home our exiled friends abroad</A><br>
-<A NAME=5.8.78>That fled the snares of watchful tyranny;</A><br>
-<A NAME=5.8.79>Producing forth the cruel ministers</A><br>
-<A NAME=5.8.80>Of this dead butcher and his fiend-like queen,</A><br>
-<A NAME=5.8.81>Who, as 'tis thought, by self and violent hands</A><br>
-<A NAME=5.8.82>Took off her life; this, and what needful else</A><br>
-<A NAME=5.8.83>That calls upon us, by the grace of Grace,</A><br>
-<A NAME=5.8.84>We will perform in measure, time and place:</A><br>
-<A NAME=5.8.85>So, thanks to all at once and to each one,</A><br>
-<A NAME=5.8.86>Whom we invite to see us crown'd at Scone.</A><br>
-<p><i>Flourish. Exeunt</i></p>
-</body>
-</html>
-
diff --git a/node_modules/selenium-webdriver/lib/test/data/map.png b/node_modules/selenium-webdriver/lib/test/data/map.png
deleted file mode 100644
index 763f56279..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/map.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/map_visibility.html b/node_modules/selenium-webdriver/lib/test/data/map_visibility.html
deleted file mode 100644
index 6cf5f763e..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/map_visibility.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-<head>
- <title>Map test page</title>
-</head>
-<body>
-<div style="position: absolute; left: 0px; top: 0px; z-index: 106;"><img style="position: absolute; left: 271px; top: 320px; width: 20px; height: 34px; -moz-user-select: none; border: 0px none; padding: 0px; margin: 0px; z-index: -140270496;" src="markerTransparent.png" class="gmnoprint" usemap="#gmimap0"><map name="gmimap0" id="gmimap0"><area log="miw" coords="9,0,6,1,4,2,2,4,0,8,0,12,1,14,2,16,5,19,7,23,8,26,9,30,9,34,11,34,11,30,12,26,13,24,14,21,16,18,18,16,20,12,20,8,18,4,16,2,15,1,13,0" shape="poly" alt="" href="javascript:void(0)" id="mtgt_unnamed_0" style="position: absolute; left: 159px; top: 342px;"></map></div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/markerTransparent.png b/node_modules/selenium-webdriver/lib/test/data/markerTransparent.png
deleted file mode 100644
index ed4e5e7f4..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/markerTransparent.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/selenium-webdriver/lib/test/data/messages.html b/node_modules/selenium-webdriver/lib/test/data/messages.html
deleted file mode 100644
index 74f1a37f7..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/messages.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html>
-<script>
- var messages = [];
- window.addEventListener('message', function(e) {
- var message = JSON.stringify(e.data);
- messages.push(message);
-
- var pre = document.createElement('pre');
- pre.style.margin = 0;
- pre.style.padding = 0;
- pre.textContent = message;
-
- document.body.appendChild(pre);
- }, true);
-</script> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/meta-redirect.html b/node_modules/selenium-webdriver/lib/test/data/meta-redirect.html
deleted file mode 100644
index 9d9c2f0cc..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/meta-redirect.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html>
-<head>
- <title>Some test page</title>
- <meta http-equiv="refresh" content="0;URL=resultPage.html"/>
-</head>
-<body>
-<script type="text/javascript" language="javascript"><!--
-location.replace("resultPage.html");
-//--> </script>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/missedJsReference.html b/node_modules/selenium-webdriver/lib/test/data/missedJsReference.html
deleted file mode 100644
index 616775276..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/missedJsReference.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Example page</title>
-</head>
-<body>
-<p>This page contains a nested iframe. Execute some JS to locate a reference to an element in this
- frame and return it. You should need to switch to that frame in order to use that element.</p>
-<iframe src="simpleTest.html" name="inner"></iframe>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/modal_dialogs/modal_1.html b/node_modules/selenium-webdriver/lib/test/data/modal_dialogs/modal_1.html
deleted file mode 100644
index 4eff01acd..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/modal_dialogs/modal_1.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<html>
-<head>
-<title>First Modal</title>
-<script>
- function openModal() {
- window.showModalDialog("modal_2.html",'dialogWidth:250px;dialogHeight:200px;resizable:yes')
- }
-</script>
-</head>
-
-<body>
-<p>Modal dialog sample</p>
-
-<input type="button" value="btn2" onclick="openModal();">
-
-<a id="lnk2" href="javascript:openModal()">lnk2</a>
-<div>
-
-</div>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/modal_dialogs/modal_2.html b/node_modules/selenium-webdriver/lib/test/data/modal_dialogs/modal_2.html
deleted file mode 100644
index cec3f3f14..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/modal_dialogs/modal_2.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<html>
-<head>
-<title>Second Modal</title>
-<script>
- function openModal() {
- window.showModalDialog("modal_3.html",'dialogWidth:250px;dialogHeight:200px;resizable:yes')
- }
-</script>
-</head>
-
-<body>
-<p>Modal dialog sample</p>
-
-<input type="button" value="btn3" onclick="openModal();">
-
-<a id="lnk3" href="javascript:openModal()">lnk3</a>
-<div>
-
-</div>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/modal_dialogs/modal_3.html b/node_modules/selenium-webdriver/lib/test/data/modal_dialogs/modal_3.html
deleted file mode 100644
index 6c5eb7231..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/modal_dialogs/modal_3.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<html>
-<head>
-<title>Third Modal</title>
-
-</head>
-
-<body>
-<p>Modal dialog sample</p>
-
-
-<div>
-
-</div>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/modal_dialogs/modalindex.html b/node_modules/selenium-webdriver/lib/test/data/modal_dialogs/modalindex.html
deleted file mode 100644
index 0a1c4c941..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/modal_dialogs/modalindex.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<html>
-<head>
-<title>Main window</title>
-<script>
- function openModal() {
- window.showModalDialog("modal_1.html",'dialogWidth:250px;dialogHeight:200px;resizable:yes')
- }
-</script>
-</head>
-
-<body>
-<p>Modal dialog sample</p>
-
-<input type="button" value="btn1" onclick="openModal();">
-
-<a id="lnk1" href="javascript:openModal()">lnk1</a>
-<div>
-
-</div>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/mouseOver.html b/node_modules/selenium-webdriver/lib/test/data/mouseOver.html
deleted file mode 100644
index d4751bfdf..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/mouseOver.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html>
-<body style="margin: 0; padding: 0;">
-<div style="position: absolute; overflow: hidden;
- left: 0; top: 0; width: 250px; height: 250px;
- background: green"
- id="greenbox">
- <div style="position: relative; left: 75px; top: 75px;
- width: 75px; height: 75px;
- background: green"
- id="redbox">
- </div>
- <script>
- var redbox = document.getElementById('redbox');
- redbox.onmouseover = function() { redbox.style.background = 'red'; };
- redbox.onmouseout = function() { redbox.style.background = 'green'; };
- </script>
-</div>
diff --git a/node_modules/selenium-webdriver/lib/test/data/mousePositionTracker.html b/node_modules/selenium-webdriver/lib/test/data/mousePositionTracker.html
deleted file mode 100644
index 39a31cda4..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/mousePositionTracker.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<html>
- <head>
- <style type="text/css">
- div.solidborder
- {
- border-style:solid;
- border-width:1px;
- }
- </style>
-
- <script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
- <script type="text/javascript" src="js/jquery-ui-1.8.10.custom.min.js"></script>
- <script type="text/javascript">
- jQuery(document).ready(function(){
- $('#mousetracker').mousemove(function(e){
- xPos = e.pageX - this.offsetLeft;
- yPos = e.pageY - this.offsetTop;
- $('#status').html(xPos + ', ' + yPos);
- });
- })
-
-</script>
-<body>
- <b>Div tracking mouse position.</b>
- <br>
-<div id="mousetracker" class="solidborder" style="position: absolute; left: 10px; top: 80px; height: 400px; width: 100px; padding: 0px;">
- Move mouse here.
-</div>
-<h2 id="status">
-0, 0
-</h2>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/nestedElements.html b/node_modules/selenium-webdriver/lib/test/data/nestedElements.html
deleted file mode 100644
index 88eda51fe..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/nestedElements.html
+++ /dev/null
@@ -1,164 +0,0 @@
-<html>
- <body>
- <p id="test_id">outside</p>
- <p id="test_id_out">outside</p>
- <div id="test_id_div">
- <p id="test_id">inside</p>
- </div>
- <div id="test_special_chars">
- <p id="white space">space</p>
- <p id="css#.chars">css escapes</p>
- </div>
- <div id="test_special_chars_2">
- <p id="white space">second copy for testing plural findElements</p>
- <p id="css#.chars">second copy</p>
- </div>
-
-<form method="get" action="resultPage.html" name="form1" style="display: block">
- Here's a checkbox: <input type="checkbox" id="checky" name="checky" value="furrfu"/><br/>
- <select name="selectomatic" id="1">
- <option selected="selected">One</option>
- <option>Two</option>
- <option>Four</option>
- <option>Still learning how to count, apparently</option>
- </select>
-</form>
-
-<form method="get" action="resultPage.html" name="form2" style="display: block">
- Here's a checkbox: <input type="checkbox" id="checky" name="checky" value="furrfu"/><br/>
- <select name="selectomatic" id="2">
- <option selected="selected">One</option>
- <option>Two</option>
- <option>Four</option>
- <option>Still learning how to count, apparently</option>
- </select>
- <select name="selectomatic" id="2">
- <option selected="selected">One</option>
- <option>Two</option>
- <option>Four</option>
- <option>Still learning how to count, apparently</option>
- </select>
-</form>
-
-<a href="1.html">hello world</a>
-<div name="div1">
- <a href="2.html" name="link1">hello world</a>
- <a href="2.html" name="link2">hello world</a>
-</div>
-</body>
-</html>
-<html>
- <body>
-
-<form method="get" action="resultPage.html" name="form1" style="display: block">
- Here's a checkbox: <input type="checkbox" id="checky" name="checky" value="furrfu"/><br/>
- <select name="selectomatic" id="1">
- <option selected="selected">One</option>
- <option>Two</option>
- <option>Four</option>
- <option>Still learning how to count, apparently</option>
- </select>
-</form>
-
-<form method="get" action="resultPage.html" name="form2" style="display: block">
- Here's a checkbox: <input type="checkbox" id="checky" name="checky" value="furrfu"/><br/>
- <select name="selectomatic" id="2">
- <option selected="selected">One</option>
- <option>Two</option>
- <option>Four</option>
- <option>Still learning how to count, apparently</option>
- </select>
- <select name="selectomatic" id="2">
- <option selected="selected">One</option>
- <option>Two</option>
- <option>Four</option>
- <option>Still learning how to count, apparently</option>
- </select>
-</form>
-
-<a href="1.html">hello world</a>
-<div name="div1">
- <a href="2.html">hello world</a>
- <a href="2.html">hello world</a>
-</div>
-</body>
-</html>
-<html>
- <body>
-
-<form method="get" action="resultPage.html" name="form1" style="display: block">
- Here's a checkbox: <input type="checkbox" id="checky" name="checky" value="furrfu"/><br/>
- <select name="selectomatic" id="1">
- <option selected="selected">One</option>
- <option>Two</option>
- <option>Four</option>
- <option>Still learning how to count, apparently</option>
- </select>
-</form>
-
-<form method="get" action="resultPage.html" name="form2" style="display: block">
- Here's a checkbox: <input type="checkbox" id="checky" name="checky" value="furrfu"/><br/>
- <select name="selectomatic" id="2">
- <option selected="selected">One</option>
- <option>Two</option>
- <option>Four</option>
- <option>Still learning how to count, apparently</option>
- </select>
- <select name="selectomatic" id="2">
- <option selected="selected">One</option>
- <option>Two</option>
- <option>Four</option>
- <option>Still learning how to count, apparently</option>
- </select>
-</form>
-
-<a href="1.html">hello world</a>
-<div name="div1">
- <a href="2.html">hello world</a>
- <a href="2.html">hello world</a>
-</div>
-</body>
-</html>
-<html>
- <body>
-
-<form method="get" action="resultPage.html" name="form1" style="display: block">
- Here's a checkbox: <input type="checkbox" id="checky" name="checky" value="furrfu"/><br/>
- <select name="selectomatic" id="1">
- <option selected="selected">One</option>
- <option>Two</option>
- <option>Four</option>
- <option>Still learning how to count, apparently</option>
- </select>
-</form>
-
-<form method="get" action="resultPage.html" name="form2" style="display: block">
- Here's a checkbox: <input type="checkbox" id="checky" name="checky" value="furrfu"/><br/>
- <select name="selectomatic" id="2">
- <option selected="selected">One</option>
- <option>Two</option>
- <option>Four</option>
- <option>Still learning how to count, apparently</option>
- </select>
- <select name="selectomatic" id="2">
- <option selected="selected">One</option>
- <option>Two</option>
- <option>Four</option>
- <option>Still learning how to count, apparently</option>
- </select>
-</form>
-
-<a href="1.html">hello world</a>
-<div name="div1">
- <a href="2.html">hello world</a>
- <a href="2.html">hello world</a>
-</div>
-
-<span class="one">Span with class of one</span>
-<div name="classes">
- <span class="one">Find me</span>
- <span class="one">Also me</span>
- <span class="oneother">But not me</span>
-</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/overflow-body.html b/node_modules/selenium-webdriver/lib/test/data/overflow-body.html
deleted file mode 100644
index 2d2264ce6..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/overflow-body.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html>
-<html style="overflow: auto;">
-<head>
- <title>The Visibility of Everyday Things</title>
-</head>
-<body style="overflow: hidden;">
-<!-- When the test is run, the window is resized to less than 700 pixels high -->
-<p>This image is copyright Simon Stewart and donated to the Selenium project for use in its test suites.
-</p>
-<img src="beach.jpg" height="480" width="640" alt="a nice beach">
-
-<!-- So this is off screen -->
-<iframe width="100%" height="1000" name="resultsFrame" src="xhtmlTest.html"></iframe>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/overflow/x_auto_y_auto.html b/node_modules/selenium-webdriver/lib/test/data/overflow/x_auto_y_auto.html
deleted file mode 100644
index cf8a64719..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/overflow/x_auto_y_auto.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Page with overflow</title>
- <style>
- #over {
- width:400px;
- height: 300px;
- overflow-x: auto;
- overflow-y: auto;
- }
- </style>
-</head>
-<body>
- <div id="over">
- <div style="width: 5000px;">
- <div style="width: 100%; text-align: right;" ><a href="#" id="right" onclick="document.getElementById('right-clicked').innerText='ok'">Click right</a></div>
- </div>
- <div style="height: 5000px; width: 5000px;">
- Right clicked: <span id="right-clicked"></span></br>
- Bottom clicked: <span id="bottom-clicked"></span></br>
- Bottom-right clicked: <span id="bottom-right-clicked"></span></br>
- </div>
- <div style="width: 5000px;">
- <div style="width: 100%; text-align: right;" ><a href="#" id="bottom-right" onclick="document.getElementById('bottom-right-clicked').innerText='ok'">Click bottom-right</a></div>
- </div>
- <a href="#" id="bottom" onclick="document.getElementById('bottom-clicked').innerText='ok'">Click bottom</a>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/overflow/x_auto_y_hidden.html b/node_modules/selenium-webdriver/lib/test/data/overflow/x_auto_y_hidden.html
deleted file mode 100644
index 96fd750a6..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/overflow/x_auto_y_hidden.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Page with overflow</title>
- <style>
- #over {
- width:400px;
- height: 300px;
- overflow-x: auto;
- overflow-y: hidden;
- }
- </style>
-</head>
-<body>
- <div id="over">
- <div style="width: 5000px;">
- <div style="width: 100%; text-align: right;" ><a href="#" id="right" onclick="document.getElementById('right-clicked').innerText='ok'">Click right</a></div>
- </div>
- <div style="height: 5000px; width: 5000px;">
- Right clicked: <span id="right-clicked"></span></br>
- Bottom clicked: <span id="bottom-clicked"></span></br>
- Bottom-right clicked: <span id="bottom-right-clicked"></span></br>
- </div>
- <div style="width: 5000px;">
- <div style="width: 100%; text-align: right;" ><a href="#" id="bottom-right" onclick="document.getElementById('bottom-right-clicked').innerText='ok'">Click bottom-right</a></div>
- </div>
- <a href="#" id="bottom" onclick="document.getElementById('bottom-clicked').innerText='ok'">Click bottom</a>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/overflow/x_auto_y_scroll.html b/node_modules/selenium-webdriver/lib/test/data/overflow/x_auto_y_scroll.html
deleted file mode 100644
index 6f1d90b6d..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/overflow/x_auto_y_scroll.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Page with overflow</title>
- <style>
- #over {
- width:400px;
- height: 300px;
- overflow-x: auto;
- overflow-y: scroll;
- }
- </style>
-</head>
-<body>
- <div id="over">
- <div style="width: 5000px;">
- <div style="width: 100%; text-align: right;" ><a href="#" id="right" onclick="document.getElementById('right-clicked').innerText='ok'">Click right</a></div>
- </div>
- <div style="height: 5000px; width: 5000px;">
- Right clicked: <span id="right-clicked"></span></br>
- Bottom clicked: <span id="bottom-clicked"></span></br>
- Bottom-right clicked: <span id="bottom-right-clicked"></span></br>
- </div>
- <div style="width: 5000px;">
- <div style="width: 100%; text-align: right;" ><a href="#" id="bottom-right" onclick="document.getElementById('bottom-right-clicked').innerText='ok'">Click bottom-right</a></div>
- </div>
- <a href="#" id="bottom" onclick="document.getElementById('bottom-clicked').innerText='ok'">Click bottom</a>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/overflow/x_hidden_y_auto.html b/node_modules/selenium-webdriver/lib/test/data/overflow/x_hidden_y_auto.html
deleted file mode 100644
index 24dd19283..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/overflow/x_hidden_y_auto.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Page with overflow</title>
- <style>
- #over {
- width:400px;
- height: 300px;
- overflow-x: hidden;
- overflow-y: auto;
- }
- </style>
-</head>
-<body>
- <div id="over">
- <div style="width: 5000px;">
- <div style="width: 100%; text-align: right;" ><a href="#" id="right" onclick="document.getElementById('right-clicked').innerText='ok'">Click right</a></div>
- </div>
- <div style="height: 5000px; width: 5000px;">
- Right clicked: <span id="right-clicked"></span></br>
- Bottom clicked: <span id="bottom-clicked"></span></br>
- Bottom-right clicked: <span id="bottom-right-clicked"></span></br>
- </div>
- <div style="width: 5000px;">
- <div style="width: 100%; text-align: right;" ><a href="#" id="bottom-right" onclick="document.getElementById('bottom-right-clicked').innerText='ok'">Click bottom-right</a></div>
- </div>
- <a href="#" id="bottom" onclick="document.getElementById('bottom-clicked').innerText='ok'">Click bottom</a>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/overflow/x_hidden_y_hidden.html b/node_modules/selenium-webdriver/lib/test/data/overflow/x_hidden_y_hidden.html
deleted file mode 100644
index cae566578..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/overflow/x_hidden_y_hidden.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Page with overflow</title>
- <style>
- #over {
- width:400px;
- height: 300px;
- overflow-x: hidden;
- overflow-y: hidden;
- }
- </style>
-</head>
-<body>
- <div id="over">
- <div style="width: 5000px;">
- <div style="width: 100%; text-align: right;" ><a href="#" id="right" onclick="document.getElementById('right-clicked').innerText='ok'">Click right</a></div>
- </div>
- <div style="height: 5000px; width: 5000px;">
- Right clicked: <span id="right-clicked"></span></br>
- Bottom clicked: <span id="bottom-clicked"></span></br>
- Bottom-right clicked: <span id="bottom-right-clicked"></span></br>
- </div>
- <div style="width: 5000px;">
- <div style="width: 100%; text-align: right;" ><a href="#" id="bottom-right" onclick="document.getElementById('bottom-right-clicked').innerText='ok'">Click bottom-right</a></div>
- </div>
- <a href="#" id="bottom" onclick="document.getElementById('bottom-clicked').innerText='ok'">Click bottom</a>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/overflow/x_hidden_y_scroll.html b/node_modules/selenium-webdriver/lib/test/data/overflow/x_hidden_y_scroll.html
deleted file mode 100644
index d4ffa3970..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/overflow/x_hidden_y_scroll.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Page with overflow</title>
- <style>
- #over {
- width:400px;
- height: 300px;
- overflow-x: hidden;
- overflow-y: scroll;
- }
- </style>
-</head>
-<body>
- <div id="over">
- <div style="width: 5000px;">
- <div style="width: 100%; text-align: right;" ><a href="#" id="right" onclick="document.getElementById('right-clicked').innerText='ok'">Click right</a></div>
- </div>
- <div style="height: 5000px; width: 5000px;">
- Right clicked: <span id="right-clicked"></span></br>
- Bottom clicked: <span id="bottom-clicked"></span></br>
- Bottom-right clicked: <span id="bottom-right-clicked"></span></br>
- </div>
- <div style="width: 5000px;">
- <div style="width: 100%; text-align: right;" ><a href="#" id="bottom-right" onclick="document.getElementById('bottom-right-clicked').innerText='ok'">Click bottom-right</a></div>
- </div>
- <a href="#" id="bottom" onclick="document.getElementById('bottom-clicked').innerText='ok'">Click bottom</a>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/overflow/x_scroll_y_auto.html b/node_modules/selenium-webdriver/lib/test/data/overflow/x_scroll_y_auto.html
deleted file mode 100644
index d425a2a8a..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/overflow/x_scroll_y_auto.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Page with overflow</title>
- <style>
- #over {
- width:400px;
- height: 300px;
- overflow-x: scroll;
- overflow-y: auto;
- }
- </style>
-</head>
-<body>
- <div id="over">
- <div style="width: 5000px;">
- <div style="width: 100%; text-align: right;" ><a href="#" id="right" onclick="document.getElementById('right-clicked').innerText='ok'">Click right</a></div>
- </div>
- <div style="height: 5000px; width: 5000px;">
- Right clicked: <span id="right-clicked"></span></br>
- Bottom clicked: <span id="bottom-clicked"></span></br>
- Bottom-right clicked: <span id="bottom-right-clicked"></span></br>
- </div>
- <div style="width: 5000px;">
- <div style="width: 100%; text-align: right;" ><a href="#" id="bottom-right" onclick="document.getElementById('bottom-right-clicked').innerText='ok'">Click bottom-right</a></div>
- </div>
- <a href="#" id="bottom" onclick="document.getElementById('bottom-clicked').innerText='ok'">Click bottom</a>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/overflow/x_scroll_y_hidden.html b/node_modules/selenium-webdriver/lib/test/data/overflow/x_scroll_y_hidden.html
deleted file mode 100644
index 4a6ff595d..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/overflow/x_scroll_y_hidden.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Page with overflow</title>
- <style>
- #over {
- width:400px;
- height: 300px;
- overflow-x: scroll;
- overflow-y: hidden;
- }
- </style>
-</head>
-<body>
- <div id="over">
- <div style="width: 5000px;">
- <div style="width: 100%; text-align: right;" ><a href="#" id="right" onclick="document.getElementById('right-clicked').innerText='ok'">Click right</a></div>
- </div>
- <div style="height: 5000px; width: 5000px;">
- Right clicked: <span id="right-clicked"></span></br>
- Bottom clicked: <span id="bottom-clicked"></span></br>
- Bottom-right clicked: <span id="bottom-right-clicked"></span></br>
- </div>
- <div style="width: 5000px;">
- <div style="width: 100%; text-align: right;" ><a href="#" id="bottom-right" onclick="document.getElementById('bottom-right-clicked').innerText='ok'">Click bottom-right</a></div>
- </div>
- <a href="#" id="bottom" onclick="document.getElementById('bottom-clicked').innerText='ok'">Click bottom</a>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/overflow/x_scroll_y_scroll.html b/node_modules/selenium-webdriver/lib/test/data/overflow/x_scroll_y_scroll.html
deleted file mode 100644
index efa80742a..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/overflow/x_scroll_y_scroll.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Page with overflow</title>
- <style>
- #over {
- width:400px;
- height: 300px;
- overflow-x: scroll;
- overflow-y: scroll;
- }
- </style>
-</head>
-<body>
- <div id="over">
- <div style="width: 5000px;">
- <div style="width: 100%; text-align: right;" ><a href="#" id="right" onclick="document.getElementById('right-clicked').innerText='ok'">Click right</a></div>
- </div>
- <div style="height: 5000px; width: 5000px;">
- Right clicked: <span id="right-clicked"></span></br>
- Bottom clicked: <span id="bottom-clicked"></span></br>
- Bottom-right clicked: <span id="bottom-right-clicked"></span></br>
- </div>
- <div style="width: 5000px;">
- <div style="width: 100%; text-align: right;" ><a href="#" id="bottom-right" onclick="document.getElementById('bottom-right-clicked').innerText='ok'">Click bottom-right</a></div>
- </div>
- <a href="#" id="bottom" onclick="document.getElementById('bottom-clicked').innerText='ok'">Click bottom</a>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/pageWithOnBeforeUnloadMessage.html b/node_modules/selenium-webdriver/lib/test/data/pageWithOnBeforeUnloadMessage.html
deleted file mode 100644
index cb59707ed..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/pageWithOnBeforeUnloadMessage.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <!--
- This page differs from pageWithOnUnload.html in that it returns a string in the
- event handler, which causes a different type of alert to appear (the "Stay on
- page/Leave current page" alert).
- -->
- <script type="text/javascript">
- function onBeforeUnloadHandler() {
- return "This is for WebDriver with onbeforeunload event handler.";
- }
- window.onbeforeunload = onBeforeUnloadHandler;
- </script>
- <title>Page with OnBeforeUnload handler</title>
- </head>
- <body>
- <p>Page with onbeforeunload event handler. <a id="navigate" href="alerts.html">Click here to navigate to another page.</a></p>
- </body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/pageWithOnLoad.html b/node_modules/selenium-webdriver/lib/test/data/pageWithOnLoad.html
deleted file mode 100644
index 2c644ff95..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/pageWithOnLoad.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<!DOCTYPE html>
-<html>
-<body onload="javascript:alert('onload')">
-<p>Page with onload event handler</p>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/pageWithOnUnload.html b/node_modules/selenium-webdriver/lib/test/data/pageWithOnUnload.html
deleted file mode 100644
index 6070341e2..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/pageWithOnUnload.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<!DOCTYPE html>
-<html>
-<body onbeforeunload="alert('onunload')">
-<p>Page with onunload event handler</p>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/page_with_link_to_slow_loading_page.html b/node_modules/selenium-webdriver/lib/test/data/page_with_link_to_slow_loading_page.html
deleted file mode 100644
index ea94f8ec1..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/page_with_link_to_slow_loading_page.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<!DOCTYPE html>
-<html>
-<body>
-<a id="link-to-slow-loading-page" href="sleep?time=5">load a slow page</a>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/plain.txt b/node_modules/selenium-webdriver/lib/test/data/plain.txt
deleted file mode 100644
index 8318c86b3..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/plain.txt
+++ /dev/null
@@ -1 +0,0 @@
-Test \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/proxy/page1.html b/node_modules/selenium-webdriver/lib/test/data/proxy/page1.html
deleted file mode 100644
index 1810f1cdf..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/proxy/page1.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<meta http-equiv="X-UA-Compatible" content="IE=edge">
-<title>Page 1</title>
-<p>The <code>next</code> query param must be the URL for the next page to
-link to.
-<script>
- var match = document.location.search.match(/next=(.*)/);
- if (match && match.length == 2) {
- var next = decodeURIComponent(match[1]);
- var link = document.createElement('a');
- link.innerText = 'Next!';
- link.textContent = 'Next!';
- link.id = 'next';
- link.href = next + '?next=' + encodeURIComponent(
- 'http://' + document.location.host +
- document.location.pathname.replace('page1.html', 'page3.html'));
- document.body.appendChild(link);
- }
-</script>
diff --git a/node_modules/selenium-webdriver/lib/test/data/proxy/page2.html b/node_modules/selenium-webdriver/lib/test/data/proxy/page2.html
deleted file mode 100644
index d826f1742..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/proxy/page2.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html>
-<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<meta http-equiv="X-UA-Compatible" content="IE=edge">
-<title>Page 2</title>
-This page is a middle man for referrer tests.
-This page will include a link to a "next" page if the <code>next</code> query
-parameter, or the <code>document.referrer</code> is set.
-<p><input type="button" id="forward" value="Forward" onclick="history.go(1)"/>
-<script>
- var match = document.location.search.match(/next=(.*)/);
- var next = document.referrer || '';
- if (match && match.length == 2) {
- next = decodeURIComponent(match[1]);
- }
-
- if (next) {
- var link = document.createElement('a');
- link.innerText = 'Next!';
- link.textContent = 'Next!';
- link.id = 'next';
- link.href = next;
- document.body.appendChild(link);
- }
-</script>
diff --git a/node_modules/selenium-webdriver/lib/test/data/proxy/page3.html b/node_modules/selenium-webdriver/lib/test/data/proxy/page3.html
deleted file mode 100644
index 27048f729..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/proxy/page3.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<!DOCTYPE html>
-<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<meta http-equiv="X-UA-Compatible" content="IE=edge">
-<title>Page 3</title>
-<p><input type="button" id="back" value="Back" onclick="history.go(-1)"/>
diff --git a/node_modules/selenium-webdriver/lib/test/data/readOnlyPage.html b/node_modules/selenium-webdriver/lib/test/data/readOnlyPage.html
deleted file mode 100644
index 8f257fdc7..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/readOnlyPage.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<html>
-<body>
-<input id="writableTextInput" type="text" value="Test"/>
-
-<input id="readOnlyTextInput" type="text" readonly value="Test"/>
-
-<input id="textInputnotenabled" type="text" disabled="true" value="Test"/>
-
-<textarea id="writableTextArea" rows="2" cols="20">
-This is a sample text area which is supposed to be cleared
-</textarea>
-
-<textarea id="textAreaReadOnly" readonly rows="5" cols="20">
-text area which is not supposed to be cleared</textarea>
-
-<textarea rows="5" id="textAreaNotenabled" disabled="true" cols="20">
-text area which is not supposed to be cleared</textarea>
-
-<div id="content-editable" contentEditable="true"><h1>This</h1><h2>is a</h2><p>contentEditable area</p></div>
-
-<div id="content-editable-blank" contentEditable="true" style="height:50px;"></div>
-</body>
-</html>
-
diff --git a/node_modules/selenium-webdriver/lib/test/data/rectangles.html b/node_modules/selenium-webdriver/lib/test/data/rectangles.html
deleted file mode 100644
index 8ba233984..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/rectangles.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0"?>
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>Rectangles</title>
- <style type="text/css">
- div {
- position: absolute;
- margin: 0;
- border: 0;
- padding: 0;
- }
- #r1 {
- background-color: blue;
- left: 10px;
- top: 10px;
- width: 100px;
- height: 50px;
- }
- #r2 {
- background-color: red;
- left: 10.9px;
- top: 10.1px;
- width: 48.666666667px;
- height: 49.333333333px;
- }
- #r3 {
- background-color: yellow;
- left: 60px;
- top: 10px;
- width: 50px;
- height: 25px;
- }
- </style>
-</head>
- <body>
- <div id="r1">r1</div>
- <div id="r2">r2</div>
- <div id="r3">r3</div>
- </body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/resultPage.html b/node_modules/selenium-webdriver/lib/test/data/resultPage.html
deleted file mode 100644
index 94f3e246e..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/resultPage.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<html>
-<head>
- <title>We Arrive Here</title>
-</head>
-<body>
-
-<p id="greeting">Success!</p>
-
-<div>
- <h1>List of stuff</h1>
- <ol>
- <li class="items">Item 1</li>
- <li>Item 2</li>
- </ol>
-</div>
-<div>
- <h1>Almost empty</h1>
-</div>
-
-<script language="Javascript">
- document.write("<p>Window name is: " + window.name + "</p>");
-</script>
-
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/rich_text.html b/node_modules/selenium-webdriver/lib/test/data/rich_text.html
deleted file mode 100644
index a42e43aab..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/rich_text.html
+++ /dev/null
@@ -1,161 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<script type="text/javascript">
-function setKeypressHandler (el, keyHandler) {
- if (el.addEventListener) {
- el.addEventListener('keypress', keyHandler, false);
- el.addEventListener('keydown', keyHandler, false);
- el.addEventListener('keyup', keyHandler, false);
- } else {
- el.attachEvent('onkeypress', keyHandler);
- el.attachEvent('onkeydown', keyHandler);
- el.attachEvent('onkeyup', keyHandler);
- }
-}
-
-function output (text) {
- var div = document.getElementById('debugOutput');
- div.appendChild(document.createTextNode(text));
- div.appendChild(document.createElement('br'));
-}
-
-window.onload = function () {
- // Super dumb browser detection
- var isIE = window.navigator.userAgent.search('MSIE') != -1
- || window.navigator.userAgent.search('Trident') != -1;
-
- var editFrame = document.getElementById('editFrame').contentWindow;
- setKeypressHandler(editFrame.document, printEventData);
- if (isIE) {
- editFrame.document.body.contentEditable = true;
- } else {
- editFrame.document.designMode = 'On';
- // Attach a name to the containing HTML element
- editFrame.document.getElementsByTagName("html")[0].id = "frameHtml";
- }
-
- var editDiv = document.getElementById('editDiv');
- setKeypressHandler(editDiv, printEventData);
- editDiv.contentEditable = true;
-
- editFrame.document.body.style.margin = 1;
- editFrame.document.body.style.padding = 0;
- editFrame.document.body.id = 'theBody';
-
- editDiv.style.margin = 1;
- editDiv.style.padding = 0;
-
- window.setTimeout(function() {
- var pre = document.createElement('pre');
- function write(text) {
- pre.appendChild(document.createTextNode(text));
- pre.appendChild(document.createElement('br'));
- }
-
- write('frame.contentWindow.document.designMode: ' +
- editFrame.document.designMode);
- write('frame.contentWindow.document.body.contentEditable: ' +
- editFrame.document.body.contentEditable);
- document.getElementById('editFrameInfo').appendChild(pre);
-
- pre = document.createElement('pre');
- write('div.ownerDocument.designMode: ' +
- editDiv.ownerDocument.designMode);
- write('div.ownerDocument.body.contentEditable: ' +
- editDiv.ownerDocument.body.contentEditable);
- write('div.contentEditable: ' +
- editDiv.contentEditable);
- document.getElementById('editDivInfo').appendChild(pre);
- }, 0);
-};
-
-function isDef(obj, prop) {
- return typeof obj[prop] != 'undefined';
-}
-
-function printEventData(e) {
- e = e || window.event;
-
- function write(id, text, opt_color) {
- var el = document.getElementById(id);
- el.innerHTML = '[' + text + ']';
- el.style.backgroundColor = opt_color || 'white';
- }
- write('type', e.type);
- write('tagName', isDef(e, 'target') ? e.target.tagName : e.srcElement.tagName);
- write('tagId', isDef(e, 'target') ? e.target.id : e.srcElement.id);
- write('keyidentifier', isDef(e, 'keyIdentifier') ? e.keyIdentifier : 'n/a');
- write('keylocation', isDef(e, 'keyLocation') ? e.keyLocation : 'n/a');
- write('keycode', e.keyCode);
- write('charcode', e.charCode);
- write('which', e.which);
- if (isDef(e, 'isTrusted')) {
- write('istrusted', e.isTrusted, e.isTrusted ? '#afa' : '#faa');
- } else {
- write('istrusted', 'n/a');
- }
- write('alt', e.altKey);
- write('ctrl', e.ctrlKey);
- write('shift', e.shiftKey);
- write('meta', e.metaKey);
-
- var s = "";
- for (var i in e) {
- s += i + ": " + e[i] + " ";
- }
- //alert(s);
-}
-</script>
-</head>
-<body>
-<div>
- <div id="butter" style="background-color: #ffa;">
- </div>
- <table width="100%">
- <tr valign="top">
- <td width="50%">
- <div>IFRAME</div>
- <iframe id="editFrame" name="editFrame" src="" height="200px" width="300px" frameborder="0" style="border: 1px solid black;">
- </iframe>
- <div id="editFrameInfo">
- <pre>frame.contentWindow.document.designMode: on<br>frame.contentWindow.document.body.contentEditable: false<br></pre></div>
- </td>
- <td>
- <div>DIV</div>
- <div id="editDiv" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; height: 200px; width: 300px; overflow-x: auto; overflow-y: auto; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " contenteditable="true">
- </div>
- <div id="editDivInfo">
- <pre>div.ownerDocument.designMode: off<br>div.ownerDocument.body.contentEditable: false<br>div.contentEditable: true<br></pre></div>
- </td>
- </tr>
- </table>
-</div>
-
-<HR>
-<DIV style="margin: 0px;padding:0px;padding-left:10px;font-family:Courier;">
- <TABLE cellpadding="0" cellspacing="0" width="200px" style="font-size:9pt;">
- <TBODY>
- <TR><TD width="110px">type:</TD><TD id="type" width="90px">[]</TD></TR>
- <TR><TD>tagName:</TD><TD id="tagName">[]</TD></TR>
- <TR><TD>id:</TD><TD id="tagId">[]</TD></TR>
- <TR><TD>keyIdentifier:</TD><TD id="keyidentifier">[]</TD></TR>
- <TR><TD>keyLocation:</TD><TD id="keylocation">[]</TD></TR>
- <TR><TD>keyCode:</TD><TD id="keycode">[]</TD></TR>
- <TR><TD>charCode:</TD><TD id="charcode">[]</TD></TR>
- <TR><TD>which:</TD><TD id="which">[]</TD></TR>
- <TR><TD>isTrusted:</TD><TD id="istrusted">[]</TD></TR>
- <TR><TD colspan="2">---------------------</TD></TR>
- <TR><TD colspan="2">Modifiers</TD></TR>
- <TR><TD>alt:</TD><TD id="alt">[]</TD></TR>
- <TR><TD>ctrl:</TD><TD id="ctrl">[]</TD></TR>
- <TR><TD>shift:</TD><TD id="shift">[]</TD></TR>
- <TR><TD>meta:</TD><TD id="meta">[]</TD></TR>
- </TBODY>
- </TABLE>
-</DIV>
-
-
-
-</BODY></HTML> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/safari/frames_benchmark.html b/node_modules/selenium-webdriver/lib/test/data/safari/frames_benchmark.html
deleted file mode 100644
index 8a0592556..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/safari/frames_benchmark.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html>
-<script>
- var start;
- var dom;
-
- function run() {
- if (dom) {
- dom.parentNode.removeChild(dom);
- }
-
- dom = document.createElement('div');
- var result = document.createElement('div');
- dom.appendChild(result);
- document.body.appendChild(dom);
-
- start = Date.now();
-
- for (var i = 0; i < 100; i++) {
- var iframe = document.createElement('iframe');
- iframe.style.width = '200px';
- iframe.style.height = '30px';
- dom.appendChild(iframe);
- var content = iframe.contentWindow.document.createTextNode('hello, world');
- iframe.contentWindow.document.body.appendChild(content);
- iframe.contentWindow.document.body.style.overflow = 'hidden';
- }
-
- result.innerHTML = 'Done! ' + (Date.now() - start) + ' ms';
- }
-</script>
-<input type="button" value="Go!" onclick="run()"> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/screen/screen.css b/node_modules/selenium-webdriver/lib/test/data/screen/screen.css
deleted file mode 100644
index 815261850..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/screen/screen.css
+++ /dev/null
@@ -1,19 +0,0 @@
-* {
- margin: 0;
-}
-html, body, #output {
- width: 100%;
- height: 100%;
-}
-table {
- border: 0px;
- border-collapse: collapse;
- border-spacing: 0px;
- display: table;
-}
-table td {
- padding: 0px;
-}
-.cell {
- color: black;
-}
diff --git a/node_modules/selenium-webdriver/lib/test/data/screen/screen.html b/node_modules/selenium-webdriver/lib/test/data/screen/screen.html
deleted file mode 100644
index 166665da3..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/screen/screen.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>screen test</title>
-<script type="text/javascript" src="screen.js"></script>
-<link rel="stylesheet" type="text/css" href="screen.css" />
-</head>
-<body>
-<style>
-#content {
- width: 100%;
- height: 100%;
-}
-.row {
- height: 20px;
- width: 100%;
-}
-.column {
- height: 20%;
- width: 20px;
-}
-</style>
-<table id="content">
-<tr class="row row1">
-<td class="column column1 cell" id="cell11">&nbsp;</td>
-<td class="column column2 cell" id="cell12">&nbsp;</td>
-<td class="column column3 cell" id="cell13">&nbsp;</td>
-<td class="column column4 cell" id="cell14">&nbsp;</td>
-<td class="column column5 cell" id="cell15">&nbsp;</td>
-</tr>
-<tr class="row row2">
-<td class="column column1 cell" id="cell21">&nbsp;</td>
-<td class="column column2 cell" id="cell22">&nbsp;</td>
-<td class="column column3 cell" id="cell23">&nbsp;</td>
-<td class="column column4 cell" id="cell24">&nbsp;</td>
-<td class="column column5 cell" id="cell25">&nbsp;</td>
-</tr>
-<tr class="row row3">
-<td class="column column1 cell" id="cell31">&nbsp;</td>
-<td class="column column2 cell" id="cell32">&nbsp;</td>
-<td class="column column3 cell" id="cell33">&nbsp;</td>
-<td class="column column4 cell" id="cell34">&nbsp;</td>
-<td class="column column5 cell" id="cell35">&nbsp;</td>
-</tr>
-<tr class="row row4">
-<td class="column column1 cell" id="cell41">&nbsp;</td>
-<td class="column column2 cell" id="cell42">&nbsp;</td>
-<td class="column column3 cell" id="cell43">&nbsp;</td>
-<td class="column column4 cell" id="cell44">&nbsp;</td>
-<td class="column column5 cell" id="cell45">&nbsp;</td>
-</tr>
-<tr class="row row5">
-<td class="column column1 cell" id="cell51">&nbsp;</td>
-<td class="column column2 cell" id="cell52">&nbsp;</td>
-<td class="column column3 cell" id="cell53">&nbsp;</td>
-<td class="column column4 cell" id="cell54">&nbsp;</td>
-<td class="column column5 cell" id="cell55">&nbsp;</td>
-</tr>
-</table>
-<script>
-var initialColor = 0x0F0F0F;
-var stepColor = 1000;
-var cnt = 1;
-for (var i = 1; i < 6; i++) {
- for (var j = 1; j < 6; j++) {
- el = document.getElementById('cell' + i + '' + j);
- el.style.backgroundColor = toColor(initialColor + (cnt * stepColor));
- cnt++;
- }
-}
-</script>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/screen/screen.js b/node_modules/selenium-webdriver/lib/test/data/screen/screen.js
deleted file mode 100644
index 1d1685980..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/screen/screen.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function toColor(num) {
- num >>>= 0;
- var b = num & 0xFF,
- g = (num & 0xFF00) >>> 8,
- r = (num & 0xFF0000) >>> 16;
- return "rgb(" + [r, g, b].join(",") + ")";
-} \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/screen/screen_frame1.html b/node_modules/selenium-webdriver/lib/test/data/screen/screen_frame1.html
deleted file mode 100644
index 35b03ae13..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/screen/screen_frame1.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>screen frame1</title>
-<script type="text/javascript" src="screen.js"></script>
-<link rel="stylesheet" type="text/css" href="screen.css" />
-</head>
-<body style="width: 100px; height: 100px;">
-<style>
-#content {
- width: 100%;
- height: 100%;
-}
-.row {
- height: 20px;
- width: 100%;
-}
-.column {
- height: 20px;
- width: 20px;
-}
-</style>
-<table id="content">
-<tr class="row row1">
-<td class="column column1 cell" id="cell11">&nbsp;</td>
-<td class="column column2 cell" id="cell12">&nbsp;</td>
-<td class="column column3 cell" id="cell13">&nbsp;</td>
-<td class="column column4 cell" id="cell14">&nbsp;</td>
-<td class="column column5 cell" id="cell15">&nbsp;</td>
-</tr>
-<tr class="row row2">
-<td class="column column1 cell" id="cell21">&nbsp;</td>
-<td class="column column2 cell" id="cell22">&nbsp;</td>
-<td class="column column3 cell" id="cell23">&nbsp;</td>
-<td class="column column4 cell" id="cell24">&nbsp;</td>
-<td class="column column5 cell" id="cell25">&nbsp;</td>
-</tr>
-<tr class="row row3">
-<td class="column column1 cell" id="cell31">&nbsp;</td>
-<td class="column column2 cell" id="cell32">&nbsp;</td>
-<td class="column column3 cell" id="cell33">&nbsp;</td>
-<td class="column column4 cell" id="cell34">&nbsp;</td>
-<td class="column column5 cell" id="cell35">&nbsp;</td>
-</tr>
-<tr class="row row4">
-<td class="column column1 cell" id="cell41">&nbsp;</td>
-<td class="column column2 cell" id="cell42">&nbsp;</td>
-<td class="column column3 cell" id="cell43">&nbsp;</td>
-<td class="column column4 cell" id="cell44">&nbsp;</td>
-<td class="column column5 cell" id="cell45">&nbsp;</td>
-</tr>
-<tr class="row row5">
-<td class="column column1 cell" id="cell51">&nbsp;</td>
-<td class="column column2 cell" id="cell52">&nbsp;</td>
-<td class="column column3 cell" id="cell53">&nbsp;</td>
-<td class="column column4 cell" id="cell54">&nbsp;</td>
-<td class="column column5 cell" id="cell55">&nbsp;</td>
-</tr>
-</table>
-<script>
-var initialColor = 0xDFDFDF;
-var stepColor = 1000;
-var cnt = 1;
-for (var i = 1; i < 6; i++) {
- for (var j = 1; j < 6; j++) {
- el = document.getElementById('cell' + i + '' + j);
- el.style.backgroundColor = toColor(initialColor + (cnt * stepColor));
- cnt++;
- }
-}
-</script>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/screen/screen_frame2.html b/node_modules/selenium-webdriver/lib/test/data/screen/screen_frame2.html
deleted file mode 100644
index e6e17e630..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/screen/screen_frame2.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>screen frame2</title>
-<script type="text/javascript" src="screen.js"></script>
-<link rel="stylesheet" type="text/css" href="screen.css" />
-</head>
-<body style="width: 100px; height: 100px;">
-<style>
-#content {
- width: 100%;
- height: 100%;
-}
-.row {
- height: 20px;
- width: 100%;
-}
-.column {
- height: 20px;
- width: 20px;
-}
-</style>
-<table id="content">
-<tr class="row row1">
-<td class="column column1 cell" id="cell11">&nbsp;</td>
-<td class="column column2 cell" id="cell12">&nbsp;</td>
-<td class="column column3 cell" id="cell13">&nbsp;</td>
-<td class="column column4 cell" id="cell14">&nbsp;</td>
-<td class="column column5 cell" id="cell15">&nbsp;</td>
-</tr>
-<tr class="row row2">
-<td class="column column1 cell" id="cell21">&nbsp;</td>
-<td class="column column2 cell" id="cell22">&nbsp;</td>
-<td class="column column3 cell" id="cell23">&nbsp;</td>
-<td class="column column4 cell" id="cell24">&nbsp;</td>
-<td class="column column5 cell" id="cell25">&nbsp;</td>
-</tr>
-<tr class="row row3">
-<td class="column column1 cell" id="cell31">&nbsp;</td>
-<td class="column column2 cell" id="cell32">&nbsp;</td>
-<td class="column column3 cell" id="cell33">&nbsp;</td>
-<td class="column column4 cell" id="cell34">&nbsp;</td>
-<td class="column column5 cell" id="cell35">&nbsp;</td>
-</tr>
-<tr class="row row4">
-<td class="column column1 cell" id="cell41">&nbsp;</td>
-<td class="column column2 cell" id="cell42">&nbsp;</td>
-<td class="column column3 cell" id="cell43">&nbsp;</td>
-<td class="column column4 cell" id="cell44">&nbsp;</td>
-<td class="column column5 cell" id="cell45">&nbsp;</td>
-</tr>
-<tr class="row row5">
-<td class="column column1 cell" id="cell51">&nbsp;</td>
-<td class="column column2 cell" id="cell52">&nbsp;</td>
-<td class="column column3 cell" id="cell53">&nbsp;</td>
-<td class="column column4 cell" id="cell54">&nbsp;</td>
-<td class="column column5 cell" id="cell55">&nbsp;</td>
-</tr>
-</table>
-<script>
-var initialColor = 0x0F0F0F;
-var stepColor = 1000;
-var cnt = 1;
-for (var i = 1; i < 6; i++) {
- for (var j = 1; j < 6; j++) {
- el = document.getElementById('cell' + i + '' + j);
- el.style.backgroundColor = toColor(initialColor + (cnt * stepColor));
- cnt++;
- }
-}
-</script>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/screen/screen_frames.html b/node_modules/selenium-webdriver/lib/test/data/screen/screen_frames.html
deleted file mode 100644
index 46852dcf5..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/screen/screen_frames.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html>
-<head>
- <title>screen test</title>
-</head>
-
-<frameset border="0" frameborder="0" framespacing="0" cols="50%, *" rows="*">
- <frame id="frame1" src="screen_frame1.html"/>
- <frame id="frame2" src="screen_frame2.html"/>
-</frameset>
-
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/screen/screen_iframes.html b/node_modules/selenium-webdriver/lib/test/data/screen/screen_iframes.html
deleted file mode 100644
index ae3ea1e24..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/screen/screen_iframes.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>Screen test</title>
-</head>
-<body>
-<table><tr><td>
-<iframe src="screen_frame1.html" marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" allowtransparency="true" frameborder="0" height="500" scrolling="no" width="500" id="iframe1" name="iframe1-name"></iframe>
-</td><td>
-<iframe src="screen_frame2.html" marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" allowtransparency="true" frameborder="0" height="500" scrolling="no" width="500" id="iframe2" name="iframe2-name"></iframe>
-</td></tr></table>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/screen/screen_too_long.html b/node_modules/selenium-webdriver/lib/test/data/screen/screen_too_long.html
deleted file mode 100644
index 4d00f0270..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/screen/screen_too_long.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>screen test</title>
-<script type="text/javascript" src="screen.js"></script>
-<link rel="stylesheet" type="text/css" href="screen.css" />
-</head>
-<body>
-<style>
-#content {
- width: 70000px;
- height: 70000px;
-}
-.column {
- height: 14000px;
- width: 14000px;
-}
-</style>
-<table id="content">
-<tr class="row row1">
-<td class="column column1 cell" id="cell11">&nbsp;</td>
-<td class="column column2 cell" id="cell12">&nbsp;</td>
-<td class="column column3 cell" id="cell13">&nbsp;</td>
-<td class="column column4 cell" id="cell14">&nbsp;</td>
-<td class="column column5 cell" id="cell15">&nbsp;</td>
-</tr>
-<tr class="row row2">
-<td class="column column1 cell" id="cell21">&nbsp;</td>
-<td class="column column2 cell" id="cell22">&nbsp;</td>
-<td class="column column3 cell" id="cell23">&nbsp;</td>
-<td class="column column4 cell" id="cell24">&nbsp;</td>
-<td class="column column5 cell" id="cell25">&nbsp;</td>
-</tr>
-<tr class="row row3">
-<td class="column column1 cell" id="cell31">&nbsp;</td>
-<td class="column column2 cell" id="cell32">&nbsp;</td>
-<td class="column column3 cell" id="cell33">&nbsp;</td>
-<td class="column column4 cell" id="cell34">&nbsp;</td>
-<td class="column column5 cell" id="cell35">&nbsp;</td>
-</tr>
-<tr class="row row4">
-<td class="column column1 cell" id="cell41">&nbsp;</td>
-<td class="column column2 cell" id="cell42">&nbsp;</td>
-<td class="column column3 cell" id="cell43">&nbsp;</td>
-<td class="column column4 cell" id="cell44">&nbsp;</td>
-<td class="column column5 cell" id="cell45">&nbsp;</td>
-</tr>
-<tr class="row row5">
-<td class="column column1 cell" id="cell51">&nbsp;</td>
-<td class="column column2 cell" id="cell52">&nbsp;</td>
-<td class="column column3 cell" id="cell53">&nbsp;</td>
-<td class="column column4 cell" id="cell54">&nbsp;</td>
-<td class="column column5 cell" id="cell55">&nbsp;</td>
-</tr>
-</table>
-<script>
-var initialColor = 0x0F0F0F;
-var stepColor = 1000;
-var cnt = 1;
-for (var i = 1; i < 6; i++) {
- for (var j = 1; j < 6; j++) {
- el = document.getElementById('cell' + i + '' + j);
- el.style.backgroundColor = toColor(initialColor + (cnt * stepColor));
- cnt++;
- }
-}
-</script>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/screen/screen_x_long.html b/node_modules/selenium-webdriver/lib/test/data/screen/screen_x_long.html
deleted file mode 100644
index 1a6a1002f..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/screen/screen_x_long.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>screen test</title>
-<script type="text/javascript" src="screen.js"></script>
-<link rel="stylesheet" type="text/css" href="screen.css" />
-</head>
-<body>
-<style>
-#content {
- width: 3000px;
- height: 100%;
-}
-.row {
- height: 20px;
- width: 3000px;
-}
-.column {
- height: 20%;
- width: 600px;
-}
-</style>
-<table id="content">
-<tr class="row row1">
-<td class="column column1 cell" id="cell11">&nbsp;</td>
-<td class="column column2 cell" id="cell12">&nbsp;</td>
-<td class="column column3 cell" id="cell13">&nbsp;</td>
-<td class="column column4 cell" id="cell14">&nbsp;</td>
-<td class="column column5 cell" id="cell15">&nbsp;</td>
-</tr>
-<tr class="row row2">
-<td class="column column1 cell" id="cell21">&nbsp;</td>
-<td class="column column2 cell" id="cell22">&nbsp;</td>
-<td class="column column3 cell" id="cell23">&nbsp;</td>
-<td class="column column4 cell" id="cell24">&nbsp;</td>
-<td class="column column5 cell" id="cell25">&nbsp;</td>
-</tr>
-<tr class="row row3">
-<td class="column column1 cell" id="cell31">&nbsp;</td>
-<td class="column column2 cell" id="cell32">&nbsp;</td>
-<td class="column column3 cell" id="cell33">&nbsp;</td>
-<td class="column column4 cell" id="cell34">&nbsp;</td>
-<td class="column column5 cell" id="cell35">&nbsp;</td>
-</tr>
-<tr class="row row4">
-<td class="column column1 cell" id="cell41">&nbsp;</td>
-<td class="column column2 cell" id="cell42">&nbsp;</td>
-<td class="column column3 cell" id="cell43">&nbsp;</td>
-<td class="column column4 cell" id="cell44">&nbsp;</td>
-<td class="column column5 cell" id="cell45">&nbsp;</td>
-</tr>
-<tr class="row row5">
-<td class="column column1 cell" id="cell51">&nbsp;</td>
-<td class="column column2 cell" id="cell52">&nbsp;</td>
-<td class="column column3 cell" id="cell53">&nbsp;</td>
-<td class="column column4 cell" id="cell54">&nbsp;</td>
-<td class="column column5 cell" id="cell55">&nbsp;</td>
-</tr>
-</table>
-<script>
-var initialColor = 0x0F0F0F;
-var stepColor = 1000;
-var cnt = 1;
-for (var i = 1; i < 6; i++) {
- for (var j = 1; j < 6; j++) {
- el = document.getElementById('cell' + i + '' + j);
- el.style.backgroundColor = toColor(initialColor + (cnt * stepColor));
- cnt++;
- }
-}
-</script>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/screen/screen_x_too_long.html b/node_modules/selenium-webdriver/lib/test/data/screen/screen_x_too_long.html
deleted file mode 100644
index 3fee005d5..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/screen/screen_x_too_long.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>screen test</title>
-<script type="text/javascript" src="screen.js"></script>
-<link rel="stylesheet" type="text/css" href="screen.css" />
-</head>
-<body>
-<style>
-#content {
- width: 70000px;
- height: 100%;
-}
-.row {
- height: 20px;
- width: 70000px;
-}
-.column {
- height: 20%;
- width: 14000px;
-}
-</style>
-<table id="content">
-<tr class="row row1">
-<td class="column column1 cell" id="cell11">&nbsp;</td>
-<td class="column column2 cell" id="cell12">&nbsp;</td>
-<td class="column column3 cell" id="cell13">&nbsp;</td>
-<td class="column column4 cell" id="cell14">&nbsp;</td>
-<td class="column column5 cell" id="cell15">&nbsp;</td>
-</tr>
-<tr class="row row2">
-<td class="column column1 cell" id="cell21">&nbsp;</td>
-<td class="column column2 cell" id="cell22">&nbsp;</td>
-<td class="column column3 cell" id="cell23">&nbsp;</td>
-<td class="column column4 cell" id="cell24">&nbsp;</td>
-<td class="column column5 cell" id="cell25">&nbsp;</td>
-</tr>
-<tr class="row row3">
-<td class="column column1 cell" id="cell31">&nbsp;</td>
-<td class="column column2 cell" id="cell32">&nbsp;</td>
-<td class="column column3 cell" id="cell33">&nbsp;</td>
-<td class="column column4 cell" id="cell34">&nbsp;</td>
-<td class="column column5 cell" id="cell35">&nbsp;</td>
-</tr>
-<tr class="row row4">
-<td class="column column1 cell" id="cell41">&nbsp;</td>
-<td class="column column2 cell" id="cell42">&nbsp;</td>
-<td class="column column3 cell" id="cell43">&nbsp;</td>
-<td class="column column4 cell" id="cell44">&nbsp;</td>
-<td class="column column5 cell" id="cell45">&nbsp;</td>
-</tr>
-<tr class="row row5">
-<td class="column column1 cell" id="cell51">&nbsp;</td>
-<td class="column column2 cell" id="cell52">&nbsp;</td>
-<td class="column column3 cell" id="cell53">&nbsp;</td>
-<td class="column column4 cell" id="cell54">&nbsp;</td>
-<td class="column column5 cell" id="cell55">&nbsp;</td>
-</tr>
-</table>
-<script>
-var initialColor = 0x0F0F0F;
-var stepColor = 1000;
-var cnt = 1;
-for (var i = 1; i < 6; i++) {
- for (var j = 1; j < 6; j++) {
- el = document.getElementById('cell' + i + '' + j);
- el.style.backgroundColor = toColor(initialColor + (cnt * stepColor));
- cnt++;
- }
-}
-</script>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/screen/screen_y_long.html b/node_modules/selenium-webdriver/lib/test/data/screen/screen_y_long.html
deleted file mode 100644
index 31733e073..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/screen/screen_y_long.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>screen test</title>
-<script type="text/javascript" src="screen.js"></script>
-<link rel="stylesheet" type="text/css" href="screen.css" />
-</head>
-<body>
-<style>
-#content {
- width: 100%;
- height: 3000px;
-}
-.row {
- height: 600px;
- width: 100%;
-}
-.column {
- height: 20%;
- width: 20px;
-}
-</style>
-<table id="content">
-<tr class="row row1">
-<td class="column column1 cell" id="cell11">&nbsp;</td>
-<td class="column column2 cell" id="cell12">&nbsp;</td>
-<td class="column column3 cell" id="cell13">&nbsp;</td>
-<td class="column column4 cell" id="cell14">&nbsp;</td>
-<td class="column column5 cell" id="cell15">&nbsp;</td>
-</tr>
-<tr class="row row2">
-<td class="column column1 cell" id="cell21">&nbsp;</td>
-<td class="column column2 cell" id="cell22">&nbsp;</td>
-<td class="column column3 cell" id="cell23">&nbsp;</td>
-<td class="column column4 cell" id="cell24">&nbsp;</td>
-<td class="column column5 cell" id="cell25">&nbsp;</td>
-</tr>
-<tr class="row row3">
-<td class="column column1 cell" id="cell31">&nbsp;</td>
-<td class="column column2 cell" id="cell32">&nbsp;</td>
-<td class="column column3 cell" id="cell33">&nbsp;</td>
-<td class="column column4 cell" id="cell34">&nbsp;</td>
-<td class="column column5 cell" id="cell35">&nbsp;</td>
-</tr>
-<tr class="row row4">
-<td class="column column1 cell" id="cell41">&nbsp;</td>
-<td class="column column2 cell" id="cell42">&nbsp;</td>
-<td class="column column3 cell" id="cell43">&nbsp;</td>
-<td class="column column4 cell" id="cell44">&nbsp;</td>
-<td class="column column5 cell" id="cell45">&nbsp;</td>
-</tr>
-<tr class="row row5">
-<td class="column column1 cell" id="cell51">&nbsp;</td>
-<td class="column column2 cell" id="cell52">&nbsp;</td>
-<td class="column column3 cell" id="cell53">&nbsp;</td>
-<td class="column column4 cell" id="cell54">&nbsp;</td>
-<td class="column column5 cell" id="cell55">&nbsp;</td>
-</tr>
-</table>
-<script>
-var initialColor = 0x0F0F0F;
-var stepColor = 1000;
-var cnt = 1;
-for (var i = 1; i < 6; i++) {
- for (var j = 1; j < 6; j++) {
- el = document.getElementById('cell' + i + '' + j);
- el.style.backgroundColor = toColor(initialColor + (cnt * stepColor));
- cnt++;
- }
-}
-</script>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/screen/screen_y_too_long.html b/node_modules/selenium-webdriver/lib/test/data/screen/screen_y_too_long.html
deleted file mode 100644
index dbef9361a..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/screen/screen_y_too_long.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>screen test</title>
-<script type="text/javascript" src="screen.js"></script>
-<link rel="stylesheet" type="text/css" href="screen.css" />
-</head>
-<body>
-<style>
-#content {
- width: 100%;
- height: 70000px;
-}
-.row {
- height: 14000px;
- width: 100%;
-}
-.column {
- height: 20%;
- width: 20px;
-}
-</style>
-<table id="content">
-<tr class="row row1">
-<td class="column column1 cell" id="cell11">&nbsp;</td>
-<td class="column column2 cell" id="cell12">&nbsp;</td>
-<td class="column column3 cell" id="cell13">&nbsp;</td>
-<td class="column column4 cell" id="cell14">&nbsp;</td>
-<td class="column column5 cell" id="cell15">&nbsp;</td>
-</tr>
-<tr class="row row2">
-<td class="column column1 cell" id="cell21">&nbsp;</td>
-<td class="column column2 cell" id="cell22">&nbsp;</td>
-<td class="column column3 cell" id="cell23">&nbsp;</td>
-<td class="column column4 cell" id="cell24">&nbsp;</td>
-<td class="column column5 cell" id="cell25">&nbsp;</td>
-</tr>
-<tr class="row row3">
-<td class="column column1 cell" id="cell31">&nbsp;</td>
-<td class="column column2 cell" id="cell32">&nbsp;</td>
-<td class="column column3 cell" id="cell33">&nbsp;</td>
-<td class="column column4 cell" id="cell34">&nbsp;</td>
-<td class="column column5 cell" id="cell35">&nbsp;</td>
-</tr>
-<tr class="row row4">
-<td class="column column1 cell" id="cell41">&nbsp;</td>
-<td class="column column2 cell" id="cell42">&nbsp;</td>
-<td class="column column3 cell" id="cell43">&nbsp;</td>
-<td class="column column4 cell" id="cell44">&nbsp;</td>
-<td class="column column5 cell" id="cell45">&nbsp;</td>
-</tr>
-<tr class="row row5">
-<td class="column column1 cell" id="cell51">&nbsp;</td>
-<td class="column column2 cell" id="cell52">&nbsp;</td>
-<td class="column column3 cell" id="cell53">&nbsp;</td>
-<td class="column column4 cell" id="cell54">&nbsp;</td>
-<td class="column column5 cell" id="cell55">&nbsp;</td>
-</tr>
-</table>
-<script>
-var initialColor = 0x0F0F0F;
-var stepColor = 1000;
-var cnt = 1;
-for (var i = 1; i < 6; i++) {
- for (var j = 1; j < 6; j++) {
- el = document.getElementById('cell' + i + '' + j);
- el.style.backgroundColor = toColor(initialColor + (cnt * stepColor));
- cnt++;
- }
-}
-</script>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/scroll.html b/node_modules/selenium-webdriver/lib/test/data/scroll.html
deleted file mode 100644
index cd5214f15..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scroll.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-<script>
-function dump(event) {
- var elt = event.target || event.srcElement;
- document.getElementById('clicked').innerHTML = elt.innerHTML;
-}
-</script>
-<div style='height: 150px'></div>
-<ul style='overflow: scroll; width: 150px; height: 80px; background-color: yellow' onclick="dump(event)">
-<li id='line1'>line1</li>
-<li id='line2'>line2</li>
-<li id='line3'>line3</li>
-<li id='line4'>line4</li>
-<li id='line5'>line5</li>
-<li id='line6'>line6</li>
-<li id='line7'>line7</li>
-<li id='line8'>line8</li>
-<li id='line9'>line9</li>
-</ul>
-<div>
-Clicked: <span id='clicked'></span>
-</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/scroll2.html b/node_modules/selenium-webdriver/lib/test/data/scroll2.html
deleted file mode 100644
index 0ea66d378..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scroll2.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-<ul style='overflow: scroll; height: 100px;'>
-<li></li>
-<li></li>
-<li id="desired">Text</li>
-<li></li>
-<li></li>
-<li></li>
-<li></li>
-<li></li>
-<li></li>
-<li></li>
-<li></li>
-<li></li>
-<li></li>
-</ul>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/scroll3.html b/node_modules/selenium-webdriver/lib/test/data/scroll3.html
deleted file mode 100644
index 1aa170929..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scroll3.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-<body>
-<br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br />
-<button id="button1">Button1</button>
-<br /><br /><br /><br />
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<button id="button2">Button2</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-<br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /><br /></br /><br /> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/scroll4.html b/node_modules/selenium-webdriver/lib/test/data/scroll4.html
deleted file mode 100644
index 652a778eb..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scroll4.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<html>
-<body>
- <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
- <input type="radio" id="radio" />
- <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/scroll5.html b/node_modules/selenium-webdriver/lib/test/data/scroll5.html
deleted file mode 100644
index b345a8c3f..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scroll5.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-<script>
-function dump(text) {
- document.getElementById('clicked').innerHTML = text;
-}
-</script>
-<div style='overflow: scroll; width: 150px; height: 200px; background-color: yellow' id="outer">
- <div style="width: 150px; height: 5000px; background-color: red;" onclick="dump('clicked')" id="inner">
- </div>
-</div>
-<div>
-Clicked: <span id='clicked'></span>
-</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_height_above_200.html b/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_height_above_200.html
deleted file mode 100644
index 3eb3bf47d..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_height_above_200.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Child frame</title>
-</head>
-<body>
- <h1>This is a scrolling frame test</h1>
- <div>
- <table>
- <tr height="50px">
- <td>First row</td>
- </tr>
- <tr height="50px">
- <td>Second row</td>
- </tr>
- <tr height="50px">
- <td>Third row</td>
- </tr>
- <tr height="50px">
- <td>Fourth row</td>
- </tr>
- </table>
- </div>
- <input type='checkbox' name='scroll_checkbox' />
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_height_above_2000.html b/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_height_above_2000.html
deleted file mode 100644
index 61ffe85da..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_height_above_2000.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Child frame</title>
-</head>
-<body>
- <h1>This is a tall frame test</h1>
- <div>
- <table>
- <tr height="500px">
- <td>First row</td>
- </tr>
- <tr height="500px">
- <td>Second row</td>
- </tr>
- <tr height="500px">
- <td>Third row</td>
- </tr>
- <tr height="500px">
- <td>Fourth row</td>
- </tr>
- </table>
- </div>
- <input type='checkbox' name='checkbox' />
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_nested_scrolling_frame.html b/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_nested_scrolling_frame.html
deleted file mode 100644
index 153013869..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_nested_scrolling_frame.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Welcome Page</title>
-</head>
-<body>
- <div>
- <iframe name="nested_scrolling_frame" src="frame_with_height_above_200.html" width="800" height="200" ></iframe>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_nested_scrolling_frame_out_of_view.html b/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_nested_scrolling_frame_out_of_view.html
deleted file mode 100644
index 5781aeb9f..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_nested_scrolling_frame_out_of_view.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Welcome Page</title>
-</head>
-<body>
- <div style="height: 5000px;">Placeholder</div>
- <div>
- <iframe name="nested_scrolling_frame" src="frame_with_height_above_200.html" width="800" height="200" ></iframe>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_small_height.html b/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_small_height.html
deleted file mode 100644
index 047de0f18..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/frame_with_small_height.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Child frame</title>
-</head>
-<body>
- <h1>This is a non-scrolling frame test</h1>
- <input type='checkbox' name='checkbox' />
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_double_overflow_auto.html b/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_double_overflow_auto.html
deleted file mode 100644
index 01b7c3058..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_double_overflow_auto.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Page with overflow: auto</title>
- <style type="text/css">
- html, body {
- width: 100%;
- height: 100%;
- overflow: auto;
- }
- </style>
-</head>
-<body>
- <div style="height: 5000px;">Placeholder</div>
- <div>
- <a id="link" href="target_page.html">Click me!</a>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_frame_out_of_view.html b/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_frame_out_of_view.html
deleted file mode 100644
index c536e41d7..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_frame_out_of_view.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Welcome Page</title>
-</head>
-<body>
- <div style="height: 5000px;">Placeholder</div>
- <div>
- <iframe name="frame" src="frame_with_small_height.html" width="800" height="200" ></iframe>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_nested_scrolling_frames.html b/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_nested_scrolling_frames.html
deleted file mode 100644
index e5b76022b..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_nested_scrolling_frames.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Welcome Page</title>
-</head>
-<body>
- <div>
- <iframe name="scrolling_frame" src="frame_with_nested_scrolling_frame.html" width="800" height="150" ></iframe>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_nested_scrolling_frames_out_of_view.html b/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_nested_scrolling_frames_out_of_view.html
deleted file mode 100644
index f79f7c848..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_nested_scrolling_frames_out_of_view.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Welcome Page</title>
-</head>
-<body>
- <div style="height: 5000px;">Placeholder</div>
- <div>
- <iframe name="scrolling_frame" src="frame_with_nested_scrolling_frame_out_of_view.html" width="800" height="150" ></iframe>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_non_scrolling_frame.html b/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_non_scrolling_frame.html
deleted file mode 100644
index 0a493fa5d..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_non_scrolling_frame.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Welcome Page</title>
-</head>
-<body>
- <div>
- <iframe name="scrolling_frame" src="frame_with_height_above_200.html" width="800" height="200" scrolling="no"></iframe>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_scrolling_frame.html b/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_scrolling_frame.html
deleted file mode 100644
index cb5d53a44..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_scrolling_frame.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Welcome Page</title>
-</head>
-<body>
- <div>
- <iframe name="scrolling_frame" src="frame_with_height_above_200.html" width="800" height="200" ></iframe>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_scrolling_frame_out_of_view.html b/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_scrolling_frame_out_of_view.html
deleted file mode 100644
index 5df1115c2..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_scrolling_frame_out_of_view.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Welcome Page</title>
-</head>
-<body>
- <div style="height: 5000px;">Placeholder</div>
- <div>
- <iframe name="scrolling_frame" src="frame_with_height_above_200.html" width="800" height="200" ></iframe>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_tall_frame.html b/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_tall_frame.html
deleted file mode 100644
index b7cfaf5a3..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_tall_frame.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Welcome Page</title>
-</head>
-<body>
- <div>
- <iframe name="tall_frame" src="frame_with_height_above_2000.html" width="800" height="2500" ></iframe>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_y_overflow_auto.html b/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_y_overflow_auto.html
deleted file mode 100644
index b5716e731..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/page_with_y_overflow_auto.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Page with overflow: auto</title>
-</head>
-<body>
- <div style="width:100%; height: 500px; overflow: hidden; overflow-y: auto;">
- <div style="height: 5000px; width: 5000px;">Placeholder</div>
- <div>
- <a id="link" href="target_page.html">Click me!</a>
- </div>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/target_page.html b/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/target_page.html
deleted file mode 100644
index 0457a822f..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/scrolling_tests/target_page.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<title>Clicked Successfully!</title>
-</head>
-<body>
-<h1>Clicked Successfully!</h1>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/selectPage.html b/node_modules/selenium-webdriver/lib/test/data/selectPage.html
deleted file mode 100644
index 4028414c1..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/selectPage.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Multiple Selection test page</title>
-</head>
-<body>
- <select id="selectWithoutMultiple">
- <option value="one">one</option>
- <option value="two" />two</option>
- </select>
-
- <select id="selectWithMultipleEqualsMultiple" multiple="multiple">
- <option selected="selected" label="emmental">Emmental</option>
- <option label="roquefort">Roquefort</option>
- <option label="parmigiano">Parmigiano</option>
- <option label="cheddar">Cheddar</option>
- </select>
-
- <select id="selectWithEmptyStringMultiple" multiple="">
- <option value="one">one</option>
- <option value="two">two</option>
- </select>
-
- <select id="selectWithMultipleWithoutValue" multiple>
- <option value="one">one</option>
- <option value="two">two</option>
- </select>
-
- <select id="selectWithRandomMultipleValue" multiple="somethingElse">
- <option value="one">one</option>
- <option value="two">two</option>
- </select>
-
- <select>
- <optgroup label="Group">
- <option value="one">one</option>
- <option id="two-in-group" value="two">two</option>
- </optgroup>
- </select>
-
- <select id="selectWithMultipleLongList" multiple>
- <option>one</option>
- <option>two</option>
- <option>three</option>
- <option>four</option>
- <option>five</option>
- <option>six</option>
- </select>
-
- <select id="narrow" style="width: 50px;">
- <option value="evalon">LaClare Farms Evalon with Cummin</option>
- <option value="savourine">Yarra Valley Vintage Savourine</option>
- <option value="cheddar">Avonlea Clothbound Cheddar</option>
- </select>
-
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/selectableItems.html b/node_modules/selenium-webdriver/lib/test/data/selectableItems.html
deleted file mode 100644
index 190b2ada7..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/selectableItems.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="UTF-8" />
- <title>jQuery UI Selectable - Default functionality</title>
- <link type="text/css" href="css/ui-lightness/jquery-ui-1.8.1.custom.css" rel="stylesheet" />
- <script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
- <script type="text/javascript" src="js/jquery-ui-1.8.10.custom.min.js"></script>
-
- <style type="text/css">
- #feedback { font-size: 1.4em; }
- #selectable .ui-selecting { background: #FECA40; }
- #selectable .ui-selected { background: #F39814; color: white; }
- #selectable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
- #selectable li { margin: 3px; padding: 0.4em; font-size: 1.4em; height: 18px; }
- </style>
- <script type="text/javascript">
- $(function() {
- $("#selectable").selectable({
- stop: function() {
- var infodiv = $("#infodiv").empty();
- $(".ui-selected", this).each(function() {
- var that_id = this.id;
- infodiv.append(' #' + that_id);
- });
- }
- });
- $("button").button();
- $("button").click(function() {
- var list_disabled = $("#selectable").selectable("option", "disabled");
- $("#infodiv").find('p').html('Disabled: ' + !list_disabled);
- $("#selectable").selectable("option", "disabled", !list_disabled);
- });
- });
- </script>
-</head>
-<body>
-<div class="demo">
-
-<ol id="selectable">
- <li id="item1" class="ui-widget-content">Item 1</li>
- <li id="item2" class="ui-widget-content">Item 2</li>
- <li id="item3" class="ui-widget-content">Item 3</li>
- <li id="item4" class="ui-widget-content">Item 4</li>
- <li id="item5" class="ui-widget-content">Item 5</li>
- <li id="item6" class="ui-widget-content">Item 6</li>
- <li id="item7" class="ui-widget-content">Item 7</li>
-</ol>
-
-</div><!-- End demo -->
-
-<div class="demo-description">
-
- <p>Enable a DOM element (or group of elements) to be selectable. Draw a box with your cursor to select items. Hold down the Ctrl key to make multiple non-adjacent selections. </p>
-
- <button type="button" id="somebutton">Click to lock</button>
-
- <div id="infodiv">
- <p>no info</p>
- </div>
-
-
-</div><!-- End demo-description -->
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/sessionCookie.html b/node_modules/selenium-webdriver/lib/test/data/sessionCookie.html
deleted file mode 100644
index 0ada24ed3..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/sessionCookie.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title></title>
- <script type="text/javascript">
- function setcolor(what){
- document.body.style.backgroundColor=what
- document.cookie="bgcolor="+what
- }
-
- function popuponclick() {
- my_window = window.open("sessionCookieDest.html", "cookiedestwindow", "status=1,width=350,height=150");
- }
- </script>
-</head>
-<body>
- <input id="setcolorbutton" type="button" value="Set Background Color" onclick="setcolor('#80FFFF')"/>
- <input id="openwindowbutton" type="button" value="Open New Window" onclick="popuponclick()"/>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/sessionCookieDest.html b/node_modules/selenium-webdriver/lib/test/data/sessionCookieDest.html
deleted file mode 100644
index f5e2ef2e4..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/sessionCookieDest.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Session cookie destination</title>
- <script type="text/javascript">
- //Get cookie routine by Shelley Powers
- function get_cookie(Name) {
- var search = Name + "=";
- var returnvalue = "";
- if (document.cookie.length > 0) {
- offset = document.cookie.indexOf(search);
- // if cookie exists
- if (offset != -1) {
- offset += search.length;
- // set index of beginning of value
- end = document.cookie.indexOf(";", offset);
- // set index of end of cookie value
- if (end == -1) end = document.cookie.length;
- returnvalue=unescape(document.cookie.substring(offset, end))
- }
- }
- return returnvalue;
- }
-
- function setcolor(){
- document.body.style.backgroundColor=get_cookie("bgcolor")
- }
- </script>
-</head>
-<body onload="setcolor()">
-This is the cookie destination page.
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/simple.xml b/node_modules/selenium-webdriver/lib/test/data/simple.xml
deleted file mode 100644
index 01f4c87cc..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/simple.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<xml>
- <foo>
- <bar>baz</bar>
- </foo>
-</xml> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/simpleTest.html b/node_modules/selenium-webdriver/lib/test/data/simpleTest.html
deleted file mode 100644
index 38210b9df..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/simpleTest.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<html>
-<head>
- <title>Hello WebDriver</title>
-</head>
-<body style="" name="body">
-<h1>Heading</h1>
-
-<p id="oneline">A single line of text</p>
-<p id="hiddenline" style="visibility: hidden">A hidden line of text</p>
-
-<div id="multiline">
- <p>A div containing</p>
- More than one line of text<br/>
-
- <div>and block level elements</div>
-</div>
-
-<span id="span">An inline element</span>
-
-<p id="lotsofspaces">This line has lots
-
- of spaces.
-</p>
-
-<p id="nbsp">This line has a&nbsp;non-breaking space</p>
-
-<p id="nbspandspaces">This line has a &nbsp; non-breaking space and spaces</p>
-
-<p id="multilinenbsp">These lines &nbsp<br />&nbsp have leading and trailing NBSPs&nbsp;&nbsp;</p>
-
-<p id="inline">This <span id="inlinespan"> line has <em>text</em> </span> within elements that are meant to be displayed
- <!-- not as a block but --> inline</p>
-
-<div id="div-with-pre">
-<p>before pre</p>
-<pre id="preformatted"> This section has a preformatted
- text block
- split in four lines
- </pre>
-<p>after pre</p>
-</div>
-
-<div id="twoblocks"><p>Some text</p><p>Some more text</p></div>
-
-<div id="nestedblocks">Cheese <div><p>Some text</p><div><p>Some more text</p><p>and also</p></div></div>Brie</div>
-
-<div id="collapsingtext"><span></span><div>Hello, world</div><span></span></div>
-
-<div id="withDocumentWrite">
-<script>
-document.write("with document.write");
-document.write(" and with document.write again");
-</script>
-</div>
-
-<form action="resultPage.html">
- <p>
- <input type="checkbox" id="checkbox1">
- <label id="label1" for="checkbox1">foo<br />bar</label>
- </p>
-</form>
-
-<div id="links">
-<a href=""> link with leading space</a>
-<a href="" id="linkWithTrailingSpace">link with trailing space
-</a>
-<a href=""><b>link with formatting tags</b></a>
-<a href="" id="quote">link with " (double quote)</a>
-<a href="" id="squote">link with ' (single quote)</a>
-<a href="" id="backslash">link with \ (backslash)</a>
-</div>
-
-<div style="text-indent:80%"><a href="resultPage.html" id="multilinelink">this link should break<br />on multiple lines</a></div>
-
-<div name="someDiv">Top level</div>
-<div id="containsSomeDiv">
- <div name="someDiv">Nested</div>
-</div>
-
-<table id="wrappingtext">
- <tbody>
- <tr><td style="width: 10px;"><span>beforeSpace</span><span> </span><span>afterSpace</span></td></tr>
- </tbody>
-</table>
-
-<!-- Here comes an invalid <img> tag which has no src attribute ... -->
-<img id="invalidImgTag" />
-
-<img id="validImgTag" src="icon.gif" />
-<a id="validAnchorTag" href="icon.gif">a link to an icon</a>
-
-<span id="simpleJsonText">{a="b", c=1, d=true}</span>
-<span id="complexJsonText">{a="\\b\\\"'\'"}</span>
-
-<span id="trimmedSpace">  â€â€‚        ​‌â€â€¯âŸâ ã€€test  â€â€‚        ​‌â€â€¯âŸâ ã€€</span>
-
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/slowLoadingAlert.html b/node_modules/selenium-webdriver/lib/test/data/slowLoadingAlert.html
deleted file mode 100644
index a6216e375..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/slowLoadingAlert.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<title>slowLoadingAlert</title>
-</head>
-
-<body onload="window.setTimeout(function() { window.alert('Look, an alert!'); }, 200);">
-</body>
-
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/slowLoadingResourcePage.html b/node_modules/selenium-webdriver/lib/test/data/slowLoadingResourcePage.html
deleted file mode 100644
index 02796c34a..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/slowLoadingResourcePage.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head>
- <title>This page loads something slowly</title>
-</head>
-<body>
- <p id="peas">Simulate the situation where a web-bug or analytics script takes waaay
- too long to respond. Normally these things are loaded in an iframe, which is
- what we're doing here.</p>
-
- <img src="sleep?time=7"></img>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/slow_loading_iframes.html b/node_modules/selenium-webdriver/lib/test/data/slow_loading_iframes.html
deleted file mode 100644
index d007248e2..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/slow_loading_iframes.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
- <title>Page with slow loading iFrames</title>
- </head>
- <body>
- <!-- Takes 3 seconds to load -->
- <iframe src="/common/sleep?time=3"></iframe>
-
- <!-- Important: do not add a src attribute! -->
- <iframe id="noSrc"></iframe>
- </body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/styledPage.html b/node_modules/selenium-webdriver/lib/test/data/styledPage.html
deleted file mode 100644
index 30810f091..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/styledPage.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Styled Page</title>
- <script>
- function log(message) {
- document.getElementById('log').innerHTML = "<p>" + message + "</p>"
- }
- </script>
-
-</head>
-<body>
-<div style="height: 200px"></div>
-
-<form action="#" method="get" onsubmit="return false;">
- <input name="searchBox">
- <input type="submit" name="btn" style="padding-top: 4px; padding-bottom: 4px" value="Search" onclick="log('click');">
-</form>
-
-<div id="log"></div>
-
-<div style="height: 4000px">Content</div>
-</body>
-</html>
-
-
-
-
diff --git a/node_modules/selenium-webdriver/lib/test/data/svgPiechart.xhtml b/node_modules/selenium-webdriver/lib/test/data/svgPiechart.xhtml
deleted file mode 100644
index bf060fded..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/svgPiechart.xhtml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink">
-<head>
- <title>Pie Chart Test</title>
-</head>
-<body>
-<script type="text/javascript">
- function markClick(input) {
- var element = document.getElementById('result');
- element.innerHTML = input;
- }
-</script>
- <div id="someText">
- Some text for the chart.
- </div>
- <div id="result">Nothing.</div>
- <div id="chart_container" style="width: 400px; height: 220px; border: 1px solid #808080;">
-<svg:svg id="chart_container" height="220" width="400">
- <svg:defs id="defs"></svg:defs>
- <svg:g>
- <svg:rect fill="white" height="220" width="400" y="0" x="0"></svg:rect>
- <svg:text fill="black" font-weight="bold" font-size="10" font-family="Arial" y="16" x="200" text-anchor="middle">Test Chart</svg:text>
- <svg:rect fill="white" height="83" width="97" y="77" x="296"></svg:rect>
- <svg:rect fill="red" stroke="none" height="12" width="12" y="84" x="303"></svg:rect>
- <svg:text fill="black" font-size="12" font-family="Arial" y="94" x="318" onclick="markClick('text_apple')">Apple</svg:text>
- <svg:rect fill="green" stroke="none" height="12" width="12" y="103" x="303"></svg:rect>
- <svg:text fill="black" font-size="12" font-family="Arial" y="113" x="318">Orange</svg:text>
- <svg:rect fill="#808080" stroke="none" height="12" width="12" y="122" x="303"></svg:rect>
- <svg:text fill="black" font-size="12" font-family="Arial" y="132" x="318">Banana</svg:text>
- <svg:rect fill="green" stroke="none" height="12" width="12" y="141" x="303"></svg:rect>
- <svg:text fill="black" font-size="12" font-family="Arial" y="151" x="318">Orange</svg:text>
- <svg:g onclick="markClick('slice_red')"><svg:path fill="red" stroke="none" d="M148,119L148,43A76,76,0,0,1,198,61.77Z"></svg:path></svg:g>
- <svg:g onclick="markClick('slice_green')"><svg:path fill="green" stroke="none" d="M148,119L198,61.77A76,76,0,0,1,202.93,171.52Z"></svg:path></svg:g>
- <svg:g><svg:path fill="#808080" stroke="none" d="M148,119L202.93,171.52A76,76,0,0,1,72.08,122.41Z"></svg:path></svg:g>
- <svg:g><svg:path fill="green" stroke="none" d="M148,119L72.08,122.41A76,76,0,0,1,148,43Z"></svg:path></svg:g>
- </svg:g>
-</svg:svg>
-<svg:svg width="400px" height="120px">
- <svg:desc>Example RotateScale - Rotate and scale transforms</svg:desc>
- <svg:g fill="none" stroke="black" stroke-width="3" >
- <!-- Draw the axes of the original coordinate system -->
- <svg:line x1="0" y1="1.5" x2="400" y2="1.5" />
- <svg:line x1="1.5" y1="0" x2="1.5" y2="120" />
- </svg:g>
- <!-- Establish a new coordinate system whose origin is at (50,30)
- in the initial coord. system and which is rotated by 30 degrees. -->
- <svg:g transform="translate(50,30)">
- <svg:g transform="rotate(30)" id="rotate">
- <svg:g fill="none" stroke="red" stroke-width="3" >
- <svg:line x1="0" y1="0" x2="50" y2="0" />
- <svg:line x1="0" y1="0" x2="0" y2="50" />
- </svg:g>
- <svg:text x="0" y="0" font-size="20" font-family="Verdana" fill="blue" >
- ABC (rotate)
- </svg:text>
- </svg:g>
- </svg:g>
- <!-- Establish a new coordinate system whose origin is at (200,40)
- in the initial coord. system and which is scaled by 1.5. -->
- <svg:g transform="translate(200,40)">
- <svg:g transform="scale(1.5)">
- <svg:g fill="none" stroke="red" stroke-width="3" >
- <svg:line x1="0" y1="0" x2="50" y2="0" />
- <svg:line x1="0" y1="0" x2="0" y2="50" />
- </svg:g>
- <svg:text x="0" y="0" font-size="20" font-family="Verdana" fill="blue" >
- ABC (scale)
- </svg:text>
- </svg:g>
- </svg:g>
-</svg:svg>
- <div style="position: absolute; white-space: nowrap; top: 230px; left: 410px; font-family: Arial; font-size: 12px; display: none; ">WOrange</div>
- </div>
- <div style="display: none; position: absolute; top: 230px; left: 410px; white-space: nowrap; font-family: Arial; font-size: 12px;">WOrange</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/svgTest.svg b/node_modules/selenium-webdriver/lib/test/data/svgTest.svg
deleted file mode 100644
index c6cc28390..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/svgTest.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" version="1.1" baseProfile="full" width="100px" height="100px" viewBox="0 0 100 100">
- <rect id="rect" width="50" height="50" fill="blue" onclick="document.getElementById('rect').setAttribute('fill', 'green')" />
-</svg>
diff --git a/node_modules/selenium-webdriver/lib/test/data/tables.html b/node_modules/selenium-webdriver/lib/test/data/tables.html
deleted file mode 100644
index a2bc957b8..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/tables.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <title>Here be tables</title>
-</head>
-<body>
-
-<table id="base">
- <tr>
- <td>Hello</td>
- <td>World</td>
- <td>(Cheese!)</td>
- </tr>
-</table>
-
-<table>
- <tr id="hidden_text">
- <td>some text
- <div style="display: none;">some more text</div>
- </td>
- </tr>
-</table>
-
-<table>
- <tr>
- <th colspan="3" id="th1">Heading</th>
- </tr>
- <tr>
- <td id="td1">Data 1</td>
- <td colspan="2" id="td2">Data 2</td>
- </tr>
-</table>
-
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/tinymce.html b/node_modules/selenium-webdriver/lib/test/data/tinymce.html
deleted file mode 100644
index 067b66cd8..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/tinymce.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>TinyMCE</title>
- <script src="js/tinymce.min.js"></script>
-</head>
-<body onload="tinymce.init({selector:'textarea'})">
-<textarea>Initial content</textarea>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/transformable.xml b/node_modules/selenium-webdriver/lib/test/data/transformable.xml
deleted file mode 100644
index 0b7e7fd58..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/transformable.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet type="text/xsl" href="transformable.xsl"?>
-<!DOCTYPE html [ <!ENTITY nbsp "&#160;"> ]>
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:ui="http://dummy.com/mynamespace">
- <body id='body'>
- <p>Click the button.</p>
- <ui:app url="xhtmlTest.html">
- <ui:someButton id="x" name="y">Go to another page</ui:someButton>
- </ui:app>
- </body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/transformable.xsl b/node_modules/selenium-webdriver/lib/test/data/transformable.xsl
deleted file mode 100644
index 53db9fded..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/transformable.xsl
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:ui="http://dummy.com/mynamespace"
- xmlns="http://www.w3.org/1999/xhtml"
- xmlns:html="http://www.w3.org/1999/xhtml"
- version="1.0">
-
- <xsl:output method="html"
- doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
- doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" indent="yes"/>
-
- <xsl:template match="ui:app">
- <form>
- <xsl:attribute name="action">
- <xsl:value-of select="@url" />
- </xsl:attribute>
- <xsl:apply-templates select="./*" />
- </form>
- </xsl:template>
-
- <xsl:template match="ui:someButton">
- <input type="submit">
- <xsl:attribute name="id">
- <xsl:value-of select="@id" />
- </xsl:attribute>
- <xsl:attribute name="name">
- <xsl:value-of select="@name" />
- </xsl:attribute>
- <xsl:attribute name="value">
- <xsl:value-of select="normalize-space(.)"/>
- </xsl:attribute>
- </input>
- </xsl:template>
-
-</xsl:stylesheet> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/transparentUpload.html b/node_modules/selenium-webdriver/lib/test/data/transparentUpload.html
deleted file mode 100644
index 87b02bfbc..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/transparentUpload.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Upload Form</title>
- <style>
- .fileUpload {
- position: relative;
- overflow: hidden;
- margin: 10px;
- background-color: #FFFFFF;
- width: 50px;
- text-align: center;
- }
- .fileUpload input.upload {
- position: absolute;
- top: 0;
- right: 0;
- margin: 0;
- padding: 0;
- font-size: 20px;
- cursor: pointer;
- opacity: 0;
- filter: alpha(opacity=0);
- height: 100%;
- text-align: center;
- }
- </style>
- <script>
- var intervalId;
- function onTick() {
- var label = document.getElementById('upload_label');
- label.innerHTML += '.';
- }
-
- function onUploadSubmit() {
- document.getElementById('upload_target').contentWindow.document.body.
- innerHTML = '';
- var label = document.getElementById('upload_label');
- label.innerHTML = 'Uploading "' + document.forms[0].upload.value + '"';
- label.style.display = '';
- intervalId = window.setInterval(onTick, 500);
- return true;
- }
-
- function onUploadDone() {
- var label = document.getElementById('upload_label');
- label.style.display = 'none';
- window.clearInterval(intervalId);
- return true;
- }
- </script>
-</head>
-<body>
-<form action="/common/upload" method="post" name="upload_form"
- target="upload_target" enctype="multipart/form-data"
- onsubmit="onUploadSubmit();">
- <div>
- <div class="fileUpload">
- <span>Upload</span>
- <input id="upload" name="upload" type="file" class="upload" />
- </div>
- <div><input id="go" type="submit" value="Go!"/></div>
- </div>
- <div id="upload_label" style="display:none"></div>
- <iframe src="" id="upload_target" name="upload_target"
- style="width:300px;height:200px">
- </iframe>
-</form>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/underscore.html b/node_modules/selenium-webdriver/lib/test/data/underscore.html
deleted file mode 100644
index 904a4441f..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/underscore.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<html>
-<head>
-<script type="text/javascript">
-_ = [1, 2, 3];
-</script>
-</head>
-<body>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/unicode_ltr.html b/node_modules/selenium-webdriver/lib/test/data/unicode_ltr.html
deleted file mode 100644
index 245acc74e..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/unicode_ltr.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- </head>
- <body dir="ltr" class="Dw">
- <div id="EH"><nobr class="">‎Some notes‎</nobr></div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/upload.html b/node_modules/selenium-webdriver/lib/test/data/upload.html
deleted file mode 100644
index aca398ab7..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/upload.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Upload Form</title>
- <script>
- var intervalId;
- function onTick() {
- var label = document.getElementById('upload_label');
- label.innerHTML += '.';
- }
-
- function onUploadSubmit() {
- document.getElementById('upload_target').contentWindow.document.body.
- innerHTML = '';
- var label = document.getElementById('upload_label');
- label.innerHTML = 'Uploading "' + document.forms[0].upload.value + '"';
- label.style.display = '';
- intervalId = window.setInterval(onTick, 500);
- return true;
- }
-
- function onUploadDone() {
- var label = document.getElementById('upload_label');
- label.style.display = 'none';
- window.clearInterval(intervalId);
- return true;
- }
- </script>
-</head>
-<body>
-<form action="/common/upload" method="post" name="upload_form"
- target="upload_target" enctype="multipart/form-data"
- onsubmit="onUploadSubmit();">
- <div>
- Enter a file to upload:
- <div><input id="upload" name="upload" type="file"/></div>
- <div><input id="go" type="submit" value="Go!"/></div>
- </div>
- <div id="upload_label" style="display:none"></div>
- <iframe src="" id="upload_target" name="upload_target"
- style="width:300px;height:200px">
- </iframe>
-</form>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/userDefinedProperty.html b/node_modules/selenium-webdriver/lib/test/data/userDefinedProperty.html
deleted file mode 100644
index 2453e6921..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/userDefinedProperty.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-<body>
-<div id="d"></div>
-<script>
-document.getElementById("d").dynamicProperty = 'sampleValue';
-</script>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/veryLargeCanvas.html b/node_modules/selenium-webdriver/lib/test/data/veryLargeCanvas.html
deleted file mode 100644
index 54a2aba46..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/veryLargeCanvas.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0"?>
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>Rectangles</title>
- <script type="text/javascript">
- function appendMessage(message) {
- document.getElementById('result').innerHTML += message
- + " ";
- }
- </script>
- <style type="text/css">
- #r1 {
- position: absolute;
- background-color: lightblue;
- left: 100px;
- top: 100px;
- width: 100px;
- height: 50px;
- }
- #r2 {
- position: absolute;
- background-color: red;
- left: 2500px;
- top: 50px;
- width: 80px;
- height: 50px;
- }
- #r3 {
- position: absolute;
- background-color: yellow;
- left: 60px;
- top: 1500px;
- width: 80px;
- height: 50px;
- }
- #r4 {
- position: absolute;
- background-color: cyan;
- left: 220px;
- top: 180px;
- width: 100px;
- height: 50px;
- }
- #r5 {
- position: absolute;
- background-color: blue;
- left: 60px;
- top: 1600px;
- width: 80px;
- height: 50px;
- }
- #r6 {
- position: absolute;
- background-color: green;
- left: 2581px;
- top: 50px;
- width: 80px;
- height: 50px;
- }
- #result {
- border: 10;
- padding: 5;
- background-color: grey;
- position: absolute;
- left: 20px;
- top: 30px;
- width: 400px;
- height: 20px;
- }
- </style>
-</head>
-<body>
- <div id="result"></div>
- <div id="r1" onclick="appendMessage('First')">First Target</div>
- <div id="r2" onclick="appendMessage('Second')">Second Target</div>
- <div id="r3" onclick="appendMessage('Third')">Third Target</div>
- <div id="r4" onclick="appendMessage('Fourth')">Fourth Target</div>
- <div id="r5" onclick="appendMessage('OOPS2')">Not a Target</div>
- <div id="r6" onclick="appendMessage('OOPS')">Not a Target</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/visibility-css.html b/node_modules/selenium-webdriver/lib/test/data/visibility-css.html
deleted file mode 100644
index 80cc649ce..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/visibility-css.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta content="text/html; charset=UTF-8" http-equiv="content-type" />
-<title>Visibility test via CSS</title>
-<style>
-
-.box-popup {
- border : 1px;
- min-width : 150px;
-}
-body {
- overflow : hidden;
-}
-</style></head><body>
-<div style="left: 30px; top: 10px; visibility: visible; position: absolute; overflow: visible;"
- class="box-popup" id="suggest">
- <p>Hello world. I like cheese.</p>
-</div>
-</body>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/win32frameset.html b/node_modules/selenium-webdriver/lib/test/data/win32frameset.html
deleted file mode 100644
index 108b80f8c..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/win32frameset.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-<head></head>
-<frameset cols="*, *, *">
- <frame name="first" src="page/1"/>
- <frame name="second" src="page/2?title=Fish"/>
- <frame name="third" src="formPage.html"/>
-</frameset>
-</html> \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/lib/test/data/window_switching_tests/page_with_frame.html b/node_modules/selenium-webdriver/lib/test/data/window_switching_tests/page_with_frame.html
deleted file mode 100644
index b94733b5c..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/window_switching_tests/page_with_frame.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Test page for WindowSwitchingTest.testShouldFocusOnTheTopMostFrameAfterSwitchingToAWindow</title>
-</head>
-<body>
- <p><a id="a-link-that-opens-a-new-window" target="newWindow" href="simple_page.html">Open new window</a></p>
- <div>
- <iframe name="myframe" src="simple_page.html" width="400" height="200"></iframe>
- </div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/window_switching_tests/simple_page.html b/node_modules/selenium-webdriver/lib/test/data/window_switching_tests/simple_page.html
deleted file mode 100644
index 52c163cbf..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/window_switching_tests/simple_page.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Simple Page</title>
-</head>
-<body>
- <div>Simple page with simple test.</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/xhtmlFormPage.xhtml b/node_modules/selenium-webdriver/lib/test/data/xhtmlFormPage.xhtml
deleted file mode 100644
index aca53d343..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/xhtmlFormPage.xhtml
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>XHTML</title>
-</head>
-<body>
-
- <form method="POST" enctype="multipart/form-data">
- <input name="file" id="file" type="file" />
- <input name="submit" id="submit" type="submit" />
- </form>
-
-<p id="self-closed" />Here is some content that should not be in the previous p tag
-
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/data/xhtmlTest.html b/node_modules/selenium-webdriver/lib/test/data/xhtmlTest.html
deleted file mode 100644
index d2f3a5da8..000000000
--- a/node_modules/selenium-webdriver/lib/test/data/xhtmlTest.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0"?>
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>XHTML Test Page</title>
-</head>
-<body>
-<div class="navigation">
- <p><a href="resultPage.html" target="result" name="windowOne">Open new window</a></p>
- <p><a href="iframes.html" target="_blank" name="windowTwo">Create a new anonymous window</a></p>
- <p><a href="iframes.html" name="sameWindow">Open page with iframes in same window</a></p>
- <p><a href="javascriptPage.html" target="result" name="windowThree">Open a window with a close button</a></p>
-</div>
-
-<a name="notext"><b></b></a>
-
-<div class="content">
- <h1 class="header">XHTML Might Be The Future</h1>
-
- <p>If you'd like to go elsewhere then <a href="resultPage.html">click me</a>.</p>
-
- <p>Alternatively, <a href="resultPage.html" id="linkId">this goes to the same place</a>.</p>
-
- <form name="someForm">
- <input id="username" type="text" value="change"/>
- </form>
-
- This link has the same text as another link: <a href="resultPage.html">click me</a>.
-</div>
-
-<div class="extraDiv">Another div starts here.<p/>
- <h2 class="nameA nameBnoise nameC">An H2 title</h2>
- <p class="nameC">Some more text</p>
-</div>
-
-<div>
- <a id="id1" href="#">Foo</a>
- <ul id="id2" />
- <span id="id3"/>
-</div>
-
-<div>
- <table id="table" ></table>
-</div>
-
-<span id="amazing">
-<div>
- <div>
- <div>
- <span/>
- <a>I have width</a>
- </div>
- </div>
-</div>
-</span>
-
-<a name="text" />
-<p id="spaces"> </p>
-<p id="empty"></p>
-<a href="foo" id="linkWithEqualsSign">Link=equalssign</a>
-
-<p class=" spaceAround ">Spaced out</p>
-
-<span id="my_span">
- <div>first_div</div>
- <div>second_div</div>
- <span>first_span</span>
- <span>second_span</span>
-</span>
-
-<div id="parent">I'm a parent
- <div id="child">I'm a child</div>
-</div>
-
-<div id="only-exists-on-xhtmltest">Woo woo</div>
-</body>
-</html>
diff --git a/node_modules/selenium-webdriver/lib/test/fileserver.js b/node_modules/selenium-webdriver/lib/test/fileserver.js
deleted file mode 100644
index 8194778ea..000000000
--- a/node_modules/selenium-webdriver/lib/test/fileserver.js
+++ /dev/null
@@ -1,321 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var fs = require('fs'),
- http = require('http'),
- path = require('path'),
- url = require('url');
-
-var express = require('express');
-var multer = require('multer');
-var serveIndex = require('serve-index');
-
-var Server = require('./httpserver').Server,
- resources = require('./resources'),
- isDevMode = require('../devmode');
-
-var WEB_ROOT = '/common';
-var JS_ROOT = '/javascript';
-
-var baseDirectory = resources.locate(isDevMode ? 'common/src/web' : '.');
-var jsDirectory = resources.locate(isDevMode ? 'javascript' : '..');
-
-var Pages = (function() {
- var pages = {};
- function addPage(page, path) {
- pages.__defineGetter__(page, function() {
- return exports.whereIs(path);
- });
- }
-
- addPage('ajaxyPage', 'ajaxy_page.html');
- addPage('alertsPage', 'alerts.html');
- addPage('bodyTypingPage', 'bodyTypingTest.html');
- addPage('booleanAttributes', 'booleanAttributes.html');
- addPage('childPage', 'child/childPage.html');
- addPage('chinesePage', 'cn-test.html');
- addPage('clickJacker', 'click_jacker.html');
- addPage('clickEventPage', 'clickEventPage.html');
- addPage('clicksPage', 'clicks.html');
- addPage('colorPage', 'colorPage.html');
- addPage('deletingFrame', 'deletingFrame.htm');
- addPage('draggableLists', 'draggableLists.html');
- addPage('dragAndDropPage', 'dragAndDropTest.html');
- addPage('droppableItems', 'droppableItems.html');
- addPage('documentWrite', 'document_write_in_onload.html');
- addPage('dynamicallyModifiedPage', 'dynamicallyModifiedPage.html');
- addPage('dynamicPage', 'dynamic.html');
- addPage('echoPage', 'echo');
- addPage('errorsPage', 'errors.html');
- addPage('xhtmlFormPage', 'xhtmlFormPage.xhtml');
- addPage('formPage', 'formPage.html');
- addPage('formSelectionPage', 'formSelectionPage.html');
- addPage('framesetPage', 'frameset.html');
- addPage('grandchildPage', 'child/grandchild/grandchildPage.html');
- addPage('html5Page', 'html5Page.html');
- addPage('html5OfflinePage', 'html5/offline.html');
- addPage('iframePage', 'iframes.html');
- addPage('javascriptEnhancedForm', 'javascriptEnhancedForm.html');
- addPage('javascriptPage', 'javascriptPage.html');
- addPage('linkedImage', 'linked_image.html');
- addPage('longContentPage', 'longContentPage.html');
- addPage('macbethPage', 'macbeth.html');
- addPage('mapVisibilityPage', 'map_visibility.html');
- addPage('metaRedirectPage', 'meta-redirect.html');
- addPage('missedJsReferencePage', 'missedJsReference.html');
- addPage('mouseTrackerPage', 'mousePositionTracker.html');
- addPage('nestedPage', 'nestedElements.html');
- addPage('readOnlyPage', 'readOnlyPage.html');
- addPage('rectanglesPage', 'rectangles.html');
- addPage('redirectPage', 'redirect');
- addPage('resultPage', 'resultPage.html');
- addPage('richTextPage', 'rich_text.html');
- addPage('selectableItemsPage', 'selectableItems.html');
- addPage('selectPage', 'selectPage.html');
- addPage('simpleTestPage', 'simpleTest.html');
- addPage('simpleXmlDocument', 'simple.xml');
- addPage('sleepingPage', 'sleep');
- addPage('slowIframes', 'slow_loading_iframes.html');
- addPage('slowLoadingAlertPage', 'slowLoadingAlert.html');
- addPage('svgPage', 'svgPiechart.xhtml');
- addPage('tables', 'tables.html');
- addPage('underscorePage', 'underscore.html');
- addPage('unicodeLtrPage', 'utf8/unicode_ltr.html');
- addPage('uploadPage', 'upload.html');
- addPage('veryLargeCanvas', 'veryLargeCanvas.html');
- addPage('xhtmlTestPage', 'xhtmlTest.html');
-
- return pages;
-})();
-
-
-var Path = {
- BASIC_AUTH: WEB_ROOT + '/basicAuth',
- ECHO: WEB_ROOT + '/echo',
- GENERATED: WEB_ROOT + '/generated',
- MANIFEST: WEB_ROOT + '/manifest',
- REDIRECT: WEB_ROOT + '/redirect',
- PAGE: WEB_ROOT + '/page',
- SLEEP: WEB_ROOT + '/sleep',
- UPLOAD: WEB_ROOT + '/upload'
-};
-
-var app = express();
-
-app.get('/', sendIndex)
-.get('/favicon.ico', function(req, res) {
- res.writeHead(204);
- res.end();
-})
-.use(JS_ROOT, serveIndex(jsDirectory), express.static(jsDirectory))
-.post(Path.UPLOAD, handleUpload)
-.use(WEB_ROOT, serveIndex(baseDirectory), express.static(baseDirectory))
-.get(Path.ECHO, sendEcho)
-.get(Path.PAGE, sendInifinitePage)
-.get(Path.PAGE + '/*', sendInifinitePage)
-.get(Path.REDIRECT, redirectToResultPage)
-.get(Path.SLEEP, sendDelayedResponse)
-
-if (isDevMode) {
- var closureDir = resources.locate('third_party/closure/goog');
- app.use('/third_party/closure/goog',
- serveIndex(closureDir), express.static(closureDir));
-}
-var server = new Server(app);
-
-
-function redirectToResultPage(_, response) {
- response.writeHead(303, {
- Location: Pages.resultPage
- });
- return response.end();
-}
-
-
-function sendInifinitePage(request, response) {
- var pathname = url.parse(request.url).pathname;
- var lastIndex = pathname.lastIndexOf('/');
- var pageNumber =
- (lastIndex == -1 ? 'Unknown' : pathname.substring(lastIndex + 1));
- var body = [
- '<!DOCTYPE html>',
- '<title>Page', pageNumber, '</title>',
- 'Page number <span id="pageNumber">', pageNumber, '</span>',
- '<p><a href="../xhtmlTest.html" target="_top">top</a>'
- ].join('');
- response.writeHead(200, {
- 'Content-Length': Buffer.byteLength(body, 'utf8'),
- 'Content-Type': 'text/html; charset=utf-8'
- });
- response.end(body);
-}
-
-
-function sendDelayedResponse(request, response) {
- var duration = 0;
- var query = url.parse(request.url).query || '';
- var match = query.match(/\btime=(\d+)/);
- if (match) {
- duration = parseInt(match[1], 10);
- }
-
- setTimeout(function() {
- var body = [
- '<!DOCTYPE html>',
- '<title>Done</title>',
- '<body>Slept for ', duration, 's</body>'
- ].join('');
- response.writeHead(200, {
- 'Content-Length': Buffer.byteLength(body, 'utf8'),
- 'Content-Type': 'text/html; charset=utf-8',
- 'Cache-Control': 'no-cache',
- 'Pragma': 'no-cache',
- 'Expires': 0
- });
- response.end(body);
- }, duration * 1000);
-}
-
-
-function handleUpload(request, response) {
- let upload = multer({storage: multer.memoryStorage()}).any();
- upload(request, response, function(err) {
- if (err) {
- response.writeHead(500);
- response.end(err + '');
- } else {
- response.writeHead(200);
- response.write(request.files[0].buffer);
- response.end('<script>window.top.window.onUploadDone();</script>');
- }
- });
-}
-
-
-function sendEcho(request, response) {
- var body = [
- '<!DOCTYPE html>',
- '<title>Echo</title>',
- '<div class="request">',
- request.method, ' ', request.url, ' ', 'HTTP/', request.httpVersion,
- '</div>'
- ];
- for (var name in request.headers) {
- body.push('<div class="header ', name , '">',
- name, ': ', request.headers[name], '</div>');
- }
- body = body.join('');
- response.writeHead(200, {
- 'Content-Length': Buffer.byteLength(body, 'utf8'),
- 'Content-Type': 'text/html; charset=utf-8'
- });
- response.end(body);
-}
-
-
-/**
- * Responds to a request for the file server's main index.
- * @param {!http.ServerRequest} request The request object.
- * @param {!http.ServerResponse} response The response object.
- */
-function sendIndex(request, response) {
- var pathname = url.parse(request.url).pathname;
-
- var host = request.headers.host;
- if (!host) {
- host = server.host();
- }
-
- var requestUrl = ['http://' + host + pathname].join('');
-
- function createListEntry(path) {
- var url = requestUrl + path;
- return ['<li><a href="', url, '">', path, '</a>'].join('');
- }
-
- var data = ['<!DOCTYPE html><h1>/</h1><hr/><ul>',
- createListEntry('common')];
- if (isDevMode) {
- data.push(createListEntry('javascript'));
- }
- data.push('</ul>');
- data = data.join('');
-
- response.writeHead(200, {
- 'Content-Type': 'text/html; charset=UTF-8',
- 'Content-Length': Buffer.byteLength(data, 'utf8')
- });
- response.end(data);
-}
-
-
-// PUBLIC application
-
-
-/**
- * Starts the server on the specified port.
- * @param {number=} opt_port The port to use, or 0 for any free port.
- * @return {!Promise<Host>} A promise that will resolve
- * with the server host when it has fully started.
- */
-exports.start = server.start.bind(server);
-
-
-/**
- * Stops the server.
- * @return {!Promise} A promise that will resolve when the
- * server has closed all connections.
- */
-exports.stop = server.stop.bind(server);
-
-
-/**
- * Formats a URL for this server.
- * @param {string=} opt_pathname The desired pathname on the server.
- * @return {string} The formatted URL.
- * @throws {Error} If the server is not running.
- */
-exports.url = server.url.bind(server);
-
-
-/**
- * Builds the URL for a file in the //common/src/web directory of the
- * Selenium client.
- * @param {string} filePath A path relative to //common/src/web to compute a
- * URL for.
- * @return {string} The formatted URL.
- * @throws {Error} If the server is not running.
- */
-exports.whereIs = function(filePath) {
- filePath = filePath.replace(/\\/g, '/');
- if (!filePath.startsWith('/')) {
- filePath = '/' + filePath;
- }
- return server.url(WEB_ROOT + filePath);
-};
-
-
-exports.Pages = Pages;
-
-
-if (require.main === module) {
- server.start(2310).then(function() {
- console.log('Server running at ' + server.url());
- });
-}
diff --git a/node_modules/selenium-webdriver/lib/test/httpserver.js b/node_modules/selenium-webdriver/lib/test/httpserver.js
deleted file mode 100644
index f7847f734..000000000
--- a/node_modules/selenium-webdriver/lib/test/httpserver.js
+++ /dev/null
@@ -1,120 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var assert = require('assert'),
- http = require('http'),
- url = require('url');
-
-var net = require('../../net'),
- portprober = require('../../net/portprober'),
- promise = require('../..').promise;
-
-
-
-/**
- * Encapsulates a simple HTTP server for testing. The {@code onrequest}
- * function should be overridden to define request handling behavior.
- * @param {function(!http.ServerRequest, !http.ServerResponse)} requestHandler
- * The request handler for the server.
- * @constructor
- */
-var Server = function(requestHandler) {
- var server = http.createServer(function(req, res) {
- requestHandler(req, res);
- });
-
- server.on('connection', function(stream) {
- stream.setTimeout(4000);
- });
-
- /** @typedef {{port: number, address: string, family: string}} */
- var Host;
-
- /**
- * Starts the server on the given port. If no port, or 0, is provided,
- * the server will be started on a random port.
- * @param {number=} opt_port The port to start on.
- * @return {!Promise<Host>} A promise that will resolve
- * with the server host when it has fully started.
- */
- this.start = function(opt_port) {
- assert(typeof opt_port !== 'function',
- "start invoked with function, not port (mocha callback)?");
- var port = opt_port || portprober.findFreePort('localhost');
- return Promise.resolve(port).then(port => {
- return promise.checkedNodeCall(
- server.listen.bind(server, port, 'localhost'));
- }).then(function() {
- return server.address();
- });
- };
-
- /**
- * Stops the server.
- * @return {!Promise} A promise that will resolve when the
- * server has closed all connections.
- */
- this.stop = function() {
- return new Promise(resolve => server.close(resolve));
- };
-
- /**
- * @return {Host} This server's host info.
- * @throws {Error} If the server is not running.
- */
- this.address = function() {
- var addr = server.address();
- if (!addr) {
- throw Error('There server is not running!');
- }
- return addr;
- };
-
- /**
- * return {string} The host:port of this server.
- * @throws {Error} If the server is not running.
- */
- this.host = function() {
- return net.getLoopbackAddress() + ':' +
- this.address().port;
- };
-
- /**
- * Formats a URL for this server.
- * @param {string=} opt_pathname The desired pathname on the server.
- * @return {string} The formatted URL.
- * @throws {Error} If the server is not running.
- */
- this.url = function(opt_pathname) {
- var addr = this.address();
- var pathname = opt_pathname || '';
- return url.format({
- protocol: 'http',
- hostname: net.getLoopbackAddress(),
- port: addr.port,
- pathname: pathname
- });
- };
-};
-
-
-// PUBLIC API
-
-
-exports.Server = Server;
diff --git a/node_modules/selenium-webdriver/lib/test/index.js b/node_modules/selenium-webdriver/lib/test/index.js
deleted file mode 100644
index 7dd1a1fc8..000000000
--- a/node_modules/selenium-webdriver/lib/test/index.js
+++ /dev/null
@@ -1,303 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var assert = require('assert');
-
-var build = require('./build'),
- isDevMode = require('../devmode'),
- webdriver = require('../../'),
- flow = webdriver.promise.controlFlow(),
- firefox = require('../../firefox'),
- logging = require('../../lib/logging'),
- safari = require('../../safari'),
- remote = require('../../remote'),
- testing = require('../../testing'),
- fileserver = require('./fileserver');
-
-
-const LEGACY_FIREFOX = 'legacy-' + webdriver.Browser.FIREFOX;
-
-
-/**
- * Browsers with native support.
- * @type {!Array.<webdriver.Browser>}
- */
-var NATIVE_BROWSERS = [
- webdriver.Browser.CHROME,
- webdriver.Browser.EDGE,
- webdriver.Browser.FIREFOX,
- LEGACY_FIREFOX,
- webdriver.Browser.IE,
- webdriver.Browser.OPERA,
- webdriver.Browser.PHANTOM_JS,
- webdriver.Browser.SAFARI
-];
-
-
-var noBuild = /^1|true$/i.test(process.env['SELENIUM_NO_BUILD']);
-var serverJar = process.env['SELENIUM_SERVER_JAR'];
-var remoteUrl = process.env['SELENIUM_REMOTE_URL'];
-var useLoopback = process.env['SELENIUM_USE_LOOP_BACK'] == '1';
-var noMarionette = /^0|false$/i.test(process.env['SELENIUM_GECKODRIVER']);
-var startServer = !!serverJar && !remoteUrl;
-var nativeRun = !serverJar && !remoteUrl;
-
-if (/^1|true$/i.test(process.env['SELENIUM_VERBOSE'])) {
- logging.installConsoleHandler();
- logging.getLogger('webdriver.http').setLevel(logging.Level.ALL);
-}
-
-var browsersToTest = (function() {
- var permitRemoteBrowsers = !!remoteUrl || !!serverJar;
- var permitUnknownBrowsers = !nativeRun;
- var browsers = process.env['SELENIUM_BROWSER'] || webdriver.Browser.FIREFOX;
-
- browsers = browsers.split(',').map(function(browser) {
- var parts = browser.split(/:/);
- if (parts[0] === 'ie') {
- parts[0] = webdriver.Browser.IE;
- }
- if (parts[0] === 'edge') {
- parts[0] = webdriver.Browser.EDGE;
- }
- if (noMarionette && parts[0] === webdriver.Browser.FIREFOX) {
- parts[0] = LEGACY_FIREFOX;
- }
- return parts.join(':');
- });
-
- browsers.forEach(function(browser) {
- var parts = browser.split(/:/, 3);
- if (parts[0] === 'ie') {
- parts[0] = webdriver.Browser.IE;
- }
-
- if (parts[0] === LEGACY_FIREFOX) {
- return;
- }
-
- if (NATIVE_BROWSERS.indexOf(parts[0]) == -1 && !permitRemoteBrowsers) {
- throw Error('Browser ' + parts[0] + ' requires a WebDriver server and ' +
- 'neither the SELENIUM_REMOTE_URL nor the SELENIUM_SERVER_JAR ' +
- 'environment variables have been set.');
- }
-
- var recognized = false;
- for (var prop in webdriver.Browser) {
- if (webdriver.Browser.hasOwnProperty(prop) &&
- webdriver.Browser[prop] === parts[0]) {
- recognized = true;
- break;
- }
- }
-
- if (!recognized && !permitUnknownBrowsers) {
- throw Error('Unrecognized browser: ' + browser);
- }
- });
-
- console.log('Running tests against [' + browsers.join(',') + ']');
- if (remoteUrl) {
- console.log('Using remote server ' + remoteUrl);
- } else if (serverJar) {
- console.log('Using standalone Selenium server ' + serverJar);
- if (useLoopback) {
- console.log('Running tests using loopback address')
- }
- }
- console.log(
- 'Promise manager is enabled? ' + webdriver.promise.USE_PROMISE_MANAGER);
-
- return browsers;
-})();
-
-
-/**
- * Creates a predicate function that ignores tests for specific browsers.
- * @param {string} currentBrowser The name of the current browser.
- * @param {!Array.<!Browser>} browsersToIgnore The browsers to ignore.
- * @return {function(): boolean} The predicate function.
- */
-function browsers(currentBrowser, browsersToIgnore) {
- return function() {
- return browsersToIgnore.indexOf(currentBrowser) != -1;
- };
-}
-
-
-/**
- * @param {string} browserName The name to use.
- * @param {remote.DriverService} server The server to use, if any.
- * @constructor
- */
-function TestEnvironment(browserName, server) {
- var name = browserName;
-
- this.currentBrowser = function() {
- return browserName;
- };
-
- this.isRemote = function() {
- return server || remoteUrl;
- };
-
- this.isMarionette = function() {
- return !noMarionette;
- };
-
- this.browsers = function(var_args) {
- var browsersToIgnore = Array.prototype.slice.apply(arguments, [0]);
- return browsers(browserName, browsersToIgnore);
- };
-
- this.builder = function() {
- var builder = new webdriver.Builder();
- var realBuild = builder.build;
-
- builder.build = function() {
- var parts = browserName.split(/:/, 3);
-
- if (parts[0] === LEGACY_FIREFOX) {
- var options = builder.getFirefoxOptions() || new firefox.Options();
- options.useGeckoDriver(false);
- builder.setFirefoxOptions(options);
-
- parts[0] = webdriver.Browser.FIREFOX;
- }
-
- builder.forBrowser(parts[0], parts[1], parts[2]);
- if (server) {
- builder.usingServer(server.address());
- } else if (remoteUrl) {
- builder.usingServer(remoteUrl);
- }
-
- builder.disableEnvironmentOverrides();
- return realBuild.call(builder);
- };
-
- return builder;
- };
-}
-
-
-var seleniumServer;
-var inSuite = false;
-
-
-/**
- * Expands a function to cover each of the target browsers.
- * @param {function(!TestEnvironment)} fn The top level suite
- * function.
- * @param {{browsers: !Array.<string>}=} opt_options Suite specific options.
- */
-function suite(fn, opt_options) {
- assert.ok(!inSuite, 'You may not nest suite calls');
- inSuite = true;
-
- var suiteOptions = opt_options || {};
- var browsers = suiteOptions.browsers;
- if (browsers) {
- // Filter out browser specific tests when that browser is not currently
- // selected for testing.
- browsers = browsers.filter(function(browser) {
- return browsersToTest.indexOf(browser) != -1;
- });
- } else {
- browsers = browsersToTest;
- }
-
- try {
-
- before(function() {
- if (isDevMode && !noBuild) {
- return build.of(
- '//javascript/atoms/fragments:is-displayed',
- '//javascript/webdriver/atoms:getAttribute')
- .onlyOnce().go();
- }
- });
-
- // Server is only started if required for a specific config.
- after(function() {
- if (seleniumServer) {
- return seleniumServer.stop();
- }
- });
-
- browsers.forEach(function(browser) {
- describe('[' + browser + ']', function() {
-
- if (isDevMode && nativeRun) {
- if (browser === LEGACY_FIREFOX) {
- before(function() {
- return build.of('//javascript/firefox-driver:webdriver')
- .onlyOnce().go();
- });
- }
- }
-
- var serverToUse = null;
-
- if (!!serverJar && !remoteUrl) {
- if (!(serverToUse = seleniumServer)) {
- serverToUse = seleniumServer = new remote.SeleniumServer(
- serverJar, {loopback: useLoopback});
- }
-
- before(function() {
- this.timeout(0);
- return seleniumServer.start(60 * 1000);
- });
- }
- fn(new TestEnvironment(browser, serverToUse));
- });
- });
- } finally {
- inSuite = false;
- }
-}
-
-
-// GLOBAL TEST SETUP
-
-before(function() {
- // Do not pass register fileserver.start directly with testing.before,
- // as start takes an optional port, which before assumes is an async
- // callback.
- return fileserver.start();
-});
-
-after(function() {
- return fileserver.stop();
-});
-
-// PUBLIC API
-
-
-exports.suite = suite;
-exports.after = testing.after;
-exports.afterEach = testing.afterEach;
-exports.before = testing.before;
-exports.beforeEach = testing.beforeEach;
-exports.it = testing.it;
-exports.ignore = testing.ignore;
-
-exports.Pages = fileserver.Pages;
-exports.whereIs = fileserver.whereIs;
diff --git a/node_modules/selenium-webdriver/lib/test/promise.js b/node_modules/selenium-webdriver/lib/test/promise.js
deleted file mode 100644
index 073e21d6b..000000000
--- a/node_modules/selenium-webdriver/lib/test/promise.js
+++ /dev/null
@@ -1,79 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-
-/**
- * Configures a block of mocha tests, ensuring the promise manager is either
- * enabled or disabled for the tests' execution.
- * for their execution.
- */
-function withPromiseManager(enabled, fn) {
- describe(`SELENIUM_PROMISE_MANAGER=${enabled}`, function() {
- let saved;
-
- function changeState() {
- saved = process.env.SELENIUM_PROMISE_MANAGER;
- process.env.SELENIUM_PROMISE_MANAGER = enabled;
- }
-
- function restoreState() {
- if (saved === undefined) {
- delete process.env.SELENIUM_PROMISE_MANAGER;
- } else {
- process.env.SELENIUM_PROMISE_MANAGER = saved;
- }
- }
-
- before(changeState);
- after(restoreState);
-
- try {
- changeState();
- fn();
- } finally {
- restoreState();
- }
- });
-};
-
-
-/**
- * Defines a set of tests to run both with and without the promise manager
- * enabled.
- */
-exports.promiseManagerSuite = function(fn) {
- withPromiseManager(true, fn);
- withPromiseManager(false, fn);
-};
-
-
-/**
- * Ensures the promise manager is enabled when the provided tests run.
- */
-exports.enablePromiseManager = function(fn) {
- withPromiseManager(true, fn);
-};
-
-
-/**
- * Ensures the promise manager is disabled when the provided tests run.
- */
-exports.disablePromiseManager = function(fn) {
- withPromiseManager(false, fn);
-};
diff --git a/node_modules/selenium-webdriver/lib/test/resources.js b/node_modules/selenium-webdriver/lib/test/resources.js
deleted file mode 100644
index 8e9cceb40..000000000
--- a/node_modules/selenium-webdriver/lib/test/resources.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var fs = require('fs'),
- path = require('path');
-
-var resourceRoot = require('../devmode') ?
- require('./build').projectRoot() :
- path.join(__dirname, 'data');
-
-
-// PUBLIC API
-
-
-/**
- * Locates a test resource.
- * @param {string} resourcePath Path of the resource to locate.
- * @param {string} filePath The file to locate from the root of the project.
- * @return {string} The full path for the file, if it exists.
- * @throws {Error} If the file does not exist.
- */
-exports.locate = function(filePath) {
- var fullPath = path.normalize(path.join(resourceRoot, filePath));
- if (!fs.existsSync(fullPath)) {
- throw Error('File does not exist: ' + filePath);
- }
- return fullPath;
-};
diff --git a/node_modules/selenium-webdriver/lib/until.js b/node_modules/selenium-webdriver/lib/until.js
deleted file mode 100644
index b0e68b88b..000000000
--- a/node_modules/selenium-webdriver/lib/until.js
+++ /dev/null
@@ -1,427 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Defines common conditions for use with
- * {@link webdriver.WebDriver#wait WebDriver wait}.
- *
- * Sample usage:
- *
- * driver.get('http://www.google.com/ncr');
- *
- * var query = driver.wait(until.elementLocated(By.name('q')));
- * query.sendKeys('webdriver\n');
- *
- * driver.wait(until.titleIs('webdriver - Google Search'));
- *
- * To define a custom condition, simply call WebDriver.wait with a function
- * that will eventually return a truthy-value (neither null, undefined, false,
- * 0, or the empty string):
- *
- * driver.wait(function() {
- * return driver.getTitle().then(function(title) {
- * return title === 'webdriver - Google Search';
- * });
- * }, 1000);
- */
-
-'use strict';
-
-const by = require('./by');
-const By = require('./by').By;
-const error = require('./error');
-const webdriver = require('./webdriver'),
- Condition = webdriver.Condition,
- WebElementCondition = webdriver.WebElementCondition;
-
-
-/**
- * Creates a condition that will wait until the input driver is able to switch
- * to the designated frame. The target frame may be specified as
- *
- * 1. a numeric index into
- * [window.frames](https://developer.mozilla.org/en-US/docs/Web/API/Window.frames)
- * for the currently selected frame.
- * 2. a {@link ./webdriver.WebElement}, which must reference a FRAME or IFRAME
- * element on the current page.
- * 3. a locator which may be used to first locate a FRAME or IFRAME on the
- * current page before attempting to switch to it.
- *
- * Upon successful resolution of this condition, the driver will be left
- * focused on the new frame.
- *
- * @param {!(number|./webdriver.WebElement|By|
- * function(!./webdriver.WebDriver): !./webdriver.WebElement)} frame
- * The frame identifier.
- * @return {!Condition<boolean>} A new condition.
- */
-exports.ableToSwitchToFrame = function ableToSwitchToFrame(frame) {
- var condition;
- if (typeof frame === 'number' || frame instanceof webdriver.WebElement) {
- condition = driver => attemptToSwitchFrames(driver, frame);
- } else {
- condition = function(driver) {
- let locator = /** @type {!(By|Function)} */(frame);
- return driver.findElements(locator).then(function(els) {
- if (els.length) {
- return attemptToSwitchFrames(driver, els[0]);
- }
- });
- };
- }
-
- return new Condition('to be able to switch to frame', condition);
-
- function attemptToSwitchFrames(driver, frame) {
- return driver.switchTo().frame(frame).then(
- function() { return true; },
- function(e) {
- if (!(e instanceof error.NoSuchFrameError)) {
- throw e;
- }
- });
- }
-};
-
-
-/**
- * Creates a condition that waits for an alert to be opened. Upon success, the
- * returned promise will be fulfilled with the handle for the opened alert.
- *
- * @return {!Condition<!./webdriver.Alert>} The new condition.
- */
-exports.alertIsPresent = function alertIsPresent() {
- return new Condition('for alert to be present', function(driver) {
- return driver.switchTo().alert().catch(function(e) {
- if (!(e instanceof error.NoSuchAlertError
- // XXX: Workaround for GeckoDriver error `TypeError: can't convert null
- // to object`. For more details, see
- // https://github.com/SeleniumHQ/selenium/pull/2137
- || (e instanceof error.WebDriverError
- && e.message === `can't convert null to object`)
- )) {
- throw e;
- }
- });
- });
-};
-
-
-/**
- * Creates a condition that will wait for the current page's title to match the
- * given value.
- *
- * @param {string} title The expected page title.
- * @return {!Condition<boolean>} The new condition.
- */
-exports.titleIs = function titleIs(title) {
- return new Condition(
- 'for title to be ' + JSON.stringify(title),
- function(driver) {
- return driver.getTitle().then(function(t) {
- return t === title;
- });
- });
-};
-
-
-/**
- * Creates a condition that will wait for the current page's title to contain
- * the given substring.
- *
- * @param {string} substr The substring that should be present in the page
- * title.
- * @return {!Condition<boolean>} The new condition.
- */
-exports.titleContains = function titleContains(substr) {
- return new Condition(
- 'for title to contain ' + JSON.stringify(substr),
- function(driver) {
- return driver.getTitle().then(function(title) {
- return title.indexOf(substr) !== -1;
- });
- });
-};
-
-
-/**
- * Creates a condition that will wait for the current page's title to match the
- * given regular expression.
- *
- * @param {!RegExp} regex The regular expression to test against.
- * @return {!Condition<boolean>} The new condition.
- */
-exports.titleMatches = function titleMatches(regex) {
- return new Condition('for title to match ' + regex, function(driver) {
- return driver.getTitle().then(function(title) {
- return regex.test(title);
- });
- });
-};
-
-
-/**
- * Creates a condition that will wait for the current page's url to match the
- * given value.
- *
- * @param {string} url The expected page url.
- * @return {!Condition<boolean>} The new condition.
- */
-exports.urlIs = function urlIs(url) {
- return new Condition(
- 'for URL to be ' + JSON.stringify(url),
- function(driver) {
- return driver.getCurrentUrl().then(function(u) {
- return u === url;
- });
- });
-};
-
-
-/**
- * Creates a condition that will wait for the current page's url to contain
- * the given substring.
- *
- * @param {string} substrUrl The substring that should be present in the current
- * URL.
- * @return {!Condition<boolean>} The new condition.
- */
-exports.urlContains = function urlContains(substrUrl) {
- return new Condition(
- 'for URL to contain ' + JSON.stringify(substrUrl),
- function(driver) {
- return driver.getCurrentUrl().then(function(url) {
- return url.indexOf(substrUrl) !== -1;
- });
- });
-};
-
-
-/**
- * Creates a condition that will wait for the current page's url to match the
- * given regular expression.
- *
- * @param {!RegExp} regex The regular expression to test against.
- * @return {!Condition<boolean>} The new condition.
- */
-exports.urlMatches = function urlMatches(regex) {
- return new Condition('for URL to match ' + regex, function(driver) {
- return driver.getCurrentUrl().then(function(url) {
- return regex.test(url);
- });
- });
-};
-
-
-/**
- * Creates a condition that will loop until an element is
- * {@link ./webdriver.WebDriver#findElement found} with the given locator.
- *
- * @param {!(By|Function)} locator The locator to use.
- * @return {!WebElementCondition} The new condition.
- */
-exports.elementLocated = function elementLocated(locator) {
- locator = by.checkedLocator(locator);
- let locatorStr =
- typeof locator === 'function' ? 'by function()' : locator + '';
- return new WebElementCondition('for element to be located ' + locatorStr,
- function(driver) {
- return driver.findElements(locator).then(function(elements) {
- return elements[0];
- });
- });
-};
-
-
-/**
- * Creates a condition that will loop until at least one element is
- * {@link ./webdriver.WebDriver#findElement found} with the given locator.
- *
- * @param {!(By|Function)} locator The locator to use.
- * @return {!Condition<!Array<!./webdriver.WebElement>>} The new
- * condition.
- */
-exports.elementsLocated = function elementsLocated(locator) {
- locator = by.checkedLocator(locator);
- let locatorStr =
- typeof locator === 'function' ? 'by function()' : locator + '';
- return new Condition(
- 'for at least one element to be located ' + locatorStr,
- function(driver) {
- return driver.findElements(locator).then(function(elements) {
- return elements.length > 0 ? elements : null;
- });
- });
-};
-
-
-/**
- * Creates a condition that will wait for the given element to become stale. An
- * element is considered stale once it is removed from the DOM, or a new page
- * has loaded.
- *
- * @param {!./webdriver.WebElement} element The element that should become stale.
- * @return {!Condition<boolean>} The new condition.
- */
-exports.stalenessOf = function stalenessOf(element) {
- return new Condition('element to become stale', function() {
- return element.getTagName().then(
- function() { return false; },
- function(e) {
- if (e instanceof error.StaleElementReferenceError) {
- return true;
- }
- throw e;
- });
- });
-};
-
-
-/**
- * Creates a condition that will wait for the given element to become visible.
- *
- * @param {!./webdriver.WebElement} element The element to test.
- * @return {!WebElementCondition} The new condition.
- * @see ./webdriver.WebDriver#isDisplayed
- */
-exports.elementIsVisible = function elementIsVisible(element) {
- return new WebElementCondition('until element is visible', function() {
- return element.isDisplayed().then(v => v ? element : null);
- });
-};
-
-
-/**
- * Creates a condition that will wait for the given element to be in the DOM,
- * yet not visible to the user.
- *
- * @param {!./webdriver.WebElement} element The element to test.
- * @return {!WebElementCondition} The new condition.
- * @see ./webdriver.WebDriver#isDisplayed
- */
-exports.elementIsNotVisible = function elementIsNotVisible(element) {
- return new WebElementCondition('until element is not visible', function() {
- return element.isDisplayed().then(v => v ? null : element);
- });
-};
-
-
-/**
- * Creates a condition that will wait for the given element to be enabled.
- *
- * @param {!./webdriver.WebElement} element The element to test.
- * @return {!WebElementCondition} The new condition.
- * @see webdriver.WebDriver#isEnabled
- */
-exports.elementIsEnabled = function elementIsEnabled(element) {
- return new WebElementCondition('until element is enabled', function() {
- return element.isEnabled().then(v => v ? element : null);
- });
-};
-
-
-/**
- * Creates a condition that will wait for the given element to be disabled.
- *
- * @param {!./webdriver.WebElement} element The element to test.
- * @return {!WebElementCondition} The new condition.
- * @see webdriver.WebDriver#isEnabled
- */
-exports.elementIsDisabled = function elementIsDisabled(element) {
- return new WebElementCondition('until element is disabled', function() {
- return element.isEnabled().then(v => v ? null : element);
- });
-};
-
-
-/**
- * Creates a condition that will wait for the given element to be selected.
- * @param {!./webdriver.WebElement} element The element to test.
- * @return {!WebElementCondition} The new condition.
- * @see webdriver.WebDriver#isSelected
- */
-exports.elementIsSelected = function elementIsSelected(element) {
- return new WebElementCondition('until element is selected', function() {
- return element.isSelected().then(v => v ? element : null);
- });
-};
-
-
-/**
- * Creates a condition that will wait for the given element to be deselected.
- *
- * @param {!./webdriver.WebElement} element The element to test.
- * @return {!WebElementCondition} The new condition.
- * @see webdriver.WebDriver#isSelected
- */
-exports.elementIsNotSelected = function elementIsNotSelected(element) {
- return new WebElementCondition('until element is not selected', function() {
- return element.isSelected().then(v => v ? null : element);
- });
-};
-
-
-/**
- * Creates a condition that will wait for the given element's
- * {@link webdriver.WebDriver#getText visible text} to match the given
- * {@code text} exactly.
- *
- * @param {!./webdriver.WebElement} element The element to test.
- * @param {string} text The expected text.
- * @return {!WebElementCondition} The new condition.
- * @see webdriver.WebDriver#getText
- */
-exports.elementTextIs = function elementTextIs(element, text) {
- return new WebElementCondition('until element text is', function() {
- return element.getText().then(t => t === text ? element : null);
- });
-};
-
-
-/**
- * Creates a condition that will wait for the given element's
- * {@link webdriver.WebDriver#getText visible text} to contain the given
- * substring.
- *
- * @param {!./webdriver.WebElement} element The element to test.
- * @param {string} substr The substring to search for.
- * @return {!WebElementCondition} The new condition.
- * @see webdriver.WebDriver#getText
- */
-exports.elementTextContains = function elementTextContains(element, substr) {
- return new WebElementCondition('until element text contains', function() {
- return element.getText()
- .then(t => t.indexOf(substr) != -1 ? element : null);
- });
-};
-
-
-/**
- * Creates a condition that will wait for the given element's
- * {@link webdriver.WebDriver#getText visible text} to match a regular
- * expression.
- *
- * @param {!./webdriver.WebElement} element The element to test.
- * @param {!RegExp} regex The regular expression to test against.
- * @return {!WebElementCondition} The new condition.
- * @see webdriver.WebDriver#getText
- */
-exports.elementTextMatches = function elementTextMatches(element, regex) {
- return new WebElementCondition('until element text matches', function() {
- return element.getText().then(t => regex.test(t) ? element : null);
- });
-};
diff --git a/node_modules/selenium-webdriver/lib/webdriver.js b/node_modules/selenium-webdriver/lib/webdriver.js
deleted file mode 100644
index 1c63112d7..000000000
--- a/node_modules/selenium-webdriver/lib/webdriver.js
+++ /dev/null
@@ -1,2669 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview The heart of the WebDriver JavaScript API.
- */
-
-'use strict';
-
-const actions = require('./actions');
-const by = require('./by');
-const Capabilities = require('./capabilities').Capabilities;
-const command = require('./command');
-const error = require('./error');
-const input = require('./input');
-const logging = require('./logging');
-const {Session} = require('./session');
-const Symbols = require('./symbols');
-const promise = require('./promise');
-
-
-/**
- * Defines a condition for use with WebDriver's {@linkplain WebDriver#wait wait
- * command}.
- *
- * @template OUT
- */
-class Condition {
- /**
- * @param {string} message A descriptive error message. Should complete the
- * sentence "Waiting [...]"
- * @param {function(!WebDriver): OUT} fn The condition function to
- * evaluate on each iteration of the wait loop.
- */
- constructor(message, fn) {
- /** @private {string} */
- this.description_ = 'Waiting ' + message;
-
- /** @type {function(!WebDriver): OUT} */
- this.fn = fn;
- }
-
- /** @return {string} A description of this condition. */
- description() {
- return this.description_;
- }
-}
-
-
-/**
- * Defines a condition that will result in a {@link WebElement}.
- *
- * @extends {Condition<!(WebElement|IThenable<!WebElement>)>}
- */
-class WebElementCondition extends Condition {
- /**
- * @param {string} message A descriptive error message. Should complete the
- * sentence "Waiting [...]"
- * @param {function(!WebDriver): !(WebElement|IThenable<!WebElement>)}
- * fn The condition function to evaluate on each iteration of the wait
- * loop.
- */
- constructor(message, fn) {
- super(message, fn);
- }
-}
-
-
-//////////////////////////////////////////////////////////////////////////////
-//
-// WebDriver
-//
-//////////////////////////////////////////////////////////////////////////////
-
-
-/**
- * Translates a command to its wire-protocol representation before passing it
- * to the given `executor` for execution.
- * @param {!command.Executor} executor The executor to use.
- * @param {!command.Command} command The command to execute.
- * @return {!Promise} A promise that will resolve with the command response.
- */
-function executeCommand(executor, command) {
- return toWireValue(command.getParameters()).
- then(function(parameters) {
- command.setParameters(parameters);
- return executor.execute(command);
- });
-}
-
-
-/**
- * Converts an object to its JSON representation in the WebDriver wire protocol.
- * When converting values of type object, the following steps will be taken:
- * <ol>
- * <li>if the object is a WebElement, the return value will be the element's
- * server ID
- * <li>if the object defines a {@link Symbols.serialize} method, this algorithm
- * will be recursively applied to the object's serialized representation
- * <li>if the object provides a "toJSON" function, this algorithm will
- * recursively be applied to the result of that function
- * <li>otherwise, the value of each key will be recursively converted according
- * to the rules above.
- * </ol>
- *
- * @param {*} obj The object to convert.
- * @return {!Promise<?>} A promise that will resolve to the input value's JSON
- * representation.
- */
-function toWireValue(obj) {
- if (promise.isPromise(obj)) {
- return Promise.resolve(obj).then(toWireValue);
- }
- return Promise.resolve(convertValue(obj));
-}
-
-
-function convertValue(value) {
- if (value === void 0 || value === null) {
- return value;
- }
-
- if (typeof value === 'boolean'
- || typeof value === 'number'
- || typeof value === 'string') {
- return value;
- }
-
- if (Array.isArray(value)) {
- return convertKeys(value);
- }
-
- if (typeof value === 'function') {
- return '' + value;
- }
-
- if (typeof value[Symbols.serialize] === 'function') {
- return toWireValue(value[Symbols.serialize]());
- } else if (typeof value.toJSON === 'function') {
- return toWireValue(value.toJSON());
- }
- return convertKeys(value);
-}
-
-
-function convertKeys(obj) {
- const isArray = Array.isArray(obj);
- const numKeys = isArray ? obj.length : Object.keys(obj).length;
- const ret = isArray ? new Array(numKeys) : {};
- if (!numKeys) {
- return Promise.resolve(ret);
- }
-
- let numResolved = 0;
-
- function forEachKey(obj, fn) {
- if (Array.isArray(obj)) {
- for (let i = 0, n = obj.length; i < n; i++) {
- fn(obj[i], i);
- }
- } else {
- for (let key in obj) {
- fn(obj[key], key);
- }
- }
- }
-
- return new Promise(function(done, reject) {
- forEachKey(obj, function(value, key) {
- if (promise.isPromise(value)) {
- value.then(toWireValue).then(setValue, reject);
- } else {
- value = convertValue(value);
- if (promise.isPromise(value)) {
- value.then(toWireValue).then(setValue, reject);
- } else {
- setValue(value);
- }
- }
-
- function setValue(value) {
- ret[key] = value;
- maybeFulfill();
- }
- });
-
- function maybeFulfill() {
- if (++numResolved === numKeys) {
- done(ret);
- }
- }
- });
-}
-
-
-/**
- * Converts a value from its JSON representation according to the WebDriver wire
- * protocol. Any JSON object that defines a WebElement ID will be decoded to a
- * {@link WebElement} object. All other values will be passed through as is.
- *
- * @param {!WebDriver} driver The driver to use as the parent of any unwrapped
- * {@link WebElement} values.
- * @param {*} value The value to convert.
- * @return {*} The converted value.
- */
-function fromWireValue(driver, value) {
- if (Array.isArray(value)) {
- value = value.map(v => fromWireValue(driver, v));
- } else if (WebElement.isId(value)) {
- let id = WebElement.extractId(value);
- value = new WebElement(driver, id);
- } else if (value && typeof value === 'object') {
- let result = {};
- for (let key in value) {
- if (value.hasOwnProperty(key)) {
- result[key] = fromWireValue(driver, value[key]);
- }
- }
- value = result;
- }
- return value;
-}
-
-
-/**
- * Structural interface for a WebDriver client.
- *
- * @record
- */
-class IWebDriver {
-
- /** @return {!promise.ControlFlow} The control flow used by this instance. */
- controlFlow() {}
-
- /**
- * Schedules a {@link command.Command} to be executed by this driver's
- * {@link command.Executor}.
- *
- * @param {!command.Command} command The command to schedule.
- * @param {string} description A description of the command for debugging.
- * @return {!promise.Thenable<T>} A promise that will be resolved
- * with the command result.
- * @template T
- */
- schedule(command, description) {}
-
- /**
- * Sets the {@linkplain input.FileDetector file detector} that should be
- * used with this instance.
- * @param {input.FileDetector} detector The detector to use or {@code null}.
- */
- setFileDetector(detector) {}
-
- /**
- * @return {!command.Executor} The command executor used by this instance.
- */
- getExecutor() {}
-
- /**
- * @return {!promise.Thenable<!Session>} A promise for this client's session.
- */
- getSession() {}
-
- /**
- * @return {!promise.Thenable<!Capabilities>} A promise that will resolve with
- * the this instance's capabilities.
- */
- getCapabilities() {}
-
- /**
- * Terminates the browser session. After calling quit, this instance will be
- * invalidated and may no longer be used to issue commands against the
- * browser.
- *
- * @return {!promise.Thenable<void>} A promise that will be resolved when the
- * command has completed.
- */
- quit() {}
-
- /**
- * Creates a new action sequence using this driver. The sequence will not be
- * scheduled for execution until {@link actions.ActionSequence#perform} is
- * called. Example:
- *
- * driver.actions().
- * mouseDown(element1).
- * mouseMove(element2).
- * mouseUp().
- * perform();
- *
- * @return {!actions.ActionSequence} A new action sequence for this instance.
- */
- actions() {}
-
- /**
- * Creates a new touch sequence using this driver. The sequence will not be
- * scheduled for execution until {@link actions.TouchSequence#perform} is
- * called. Example:
- *
- * driver.touchActions().
- * tap(element1).
- * doubleTap(element2).
- * perform();
- *
- * @return {!actions.TouchSequence} A new touch sequence for this instance.
- */
- touchActions() {}
-
- /**
- * Schedules a command to execute JavaScript in the context of the currently
- * selected frame or window. The script fragment will be executed as the body
- * of an anonymous function. If the script is provided as a function object,
- * that function will be converted to a string for injection into the target
- * window.
- *
- * Any arguments provided in addition to the script will be included as script
- * arguments and may be referenced using the {@code arguments} object.
- * Arguments may be a boolean, number, string, or {@linkplain WebElement}.
- * Arrays and objects may also be used as script arguments as long as each item
- * adheres to the types previously mentioned.
- *
- * The script may refer to any variables accessible from the current window.
- * Furthermore, the script will execute in the window's context, thus
- * {@code document} may be used to refer to the current document. Any local
- * variables will not be available once the script has finished executing,
- * though global variables will persist.
- *
- * If the script has a return value (i.e. if the script contains a return
- * statement), then the following steps will be taken for resolving this
- * functions return value:
- *
- * - For a HTML element, the value will resolve to a {@linkplain WebElement}
- * - Null and undefined return values will resolve to null</li>
- * - Booleans, numbers, and strings will resolve as is</li>
- * - Functions will resolve to their string representation</li>
- * - For arrays and objects, each member item will be converted according to
- * the rules above
- *
- * @param {!(string|Function)} script The script to execute.
- * @param {...*} var_args The arguments to pass to the script.
- * @return {!promise.Thenable<T>} A promise that will resolve to the
- * scripts return value.
- * @template T
- */
- executeScript(script, var_args) {}
-
- /**
- * Schedules a command to execute asynchronous JavaScript in the context of the
- * currently selected frame or window. The script fragment will be executed as
- * the body of an anonymous function. If the script is provided as a function
- * object, that function will be converted to a string for injection into the
- * target window.
- *
- * Any arguments provided in addition to the script will be included as script
- * arguments and may be referenced using the {@code arguments} object.
- * Arguments may be a boolean, number, string, or {@code WebElement}.
- * Arrays and objects may also be used as script arguments as long as each item
- * adheres to the types previously mentioned.
- *
- * Unlike executing synchronous JavaScript with {@link #executeScript},
- * scripts executed with this function must explicitly signal they are finished
- * by invoking the provided callback. This callback will always be injected
- * into the executed function as the last argument, and thus may be referenced
- * with {@code arguments[arguments.length - 1]}. The following steps will be
- * taken for resolving this functions return value against the first argument
- * to the script's callback function:
- *
- * - For a HTML element, the value will resolve to a
- * {@link WebElement}
- * - Null and undefined return values will resolve to null
- * - Booleans, numbers, and strings will resolve as is
- * - Functions will resolve to their string representation
- * - For arrays and objects, each member item will be converted according to
- * the rules above
- *
- * __Example #1:__ Performing a sleep that is synchronized with the currently
- * selected window:
- *
- * var start = new Date().getTime();
- * driver.executeAsyncScript(
- * 'window.setTimeout(arguments[arguments.length - 1], 500);').
- * then(function() {
- * console.log(
- * 'Elapsed time: ' + (new Date().getTime() - start) + ' ms');
- * });
- *
- * __Example #2:__ Synchronizing a test with an AJAX application:
- *
- * var button = driver.findElement(By.id('compose-button'));
- * button.click();
- * driver.executeAsyncScript(
- * 'var callback = arguments[arguments.length - 1];' +
- * 'mailClient.getComposeWindowWidget().onload(callback);');
- * driver.switchTo().frame('composeWidget');
- * driver.findElement(By.id('to')).sendKeys('dog@example.com');
- *
- * __Example #3:__ Injecting a XMLHttpRequest and waiting for the result. In
- * this example, the inject script is specified with a function literal. When
- * using this format, the function is converted to a string for injection, so it
- * should not reference any symbols not defined in the scope of the page under
- * test.
- *
- * driver.executeAsyncScript(function() {
- * var callback = arguments[arguments.length - 1];
- * var xhr = new XMLHttpRequest();
- * xhr.open("GET", "/resource/data.json", true);
- * xhr.onreadystatechange = function() {
- * if (xhr.readyState == 4) {
- * callback(xhr.responseText);
- * }
- * };
- * xhr.send('');
- * }).then(function(str) {
- * console.log(JSON.parse(str)['food']);
- * });
- *
- * @param {!(string|Function)} script The script to execute.
- * @param {...*} var_args The arguments to pass to the script.
- * @return {!promise.Thenable<T>} A promise that will resolve to the
- * scripts return value.
- * @template T
- */
- executeAsyncScript(script, var_args) {}
-
- /**
- * Schedules a command to execute a custom function.
- * @param {function(...): (T|IThenable<T>)} fn The function to execute.
- * @param {Object=} opt_scope The object in whose scope to execute the function.
- * @param {...*} var_args Any arguments to pass to the function.
- * @return {!promise.Thenable<T>} A promise that will be resolved'
- * with the function's result.
- * @template T
- */
- call(fn, opt_scope, var_args) {}
-
- /**
- * Schedules a command to wait for a condition to hold. The condition may be
- * specified by a {@link Condition}, as a custom function, or as any
- * promise-like thenable.
- *
- * For a {@link Condition} or function, the wait will repeatedly
- * evaluate the condition until it returns a truthy value. If any errors occur
- * while evaluating the condition, they will be allowed to propagate. In the
- * event a condition returns a {@link promise.Promise promise}, the polling
- * loop will wait for it to be resolved and use the resolved value for whether
- * the condition has been satisfied. Note the resolution time for a promise
- * is factored into whether a wait has timed out.
- *
- * Note, if the provided condition is a {@link WebElementCondition}, then
- * the wait will return a {@link WebElementPromise} that will resolve to the
- * element that satisfied the condition.
- *
- * _Example:_ waiting up to 10 seconds for an element to be present on the
- * page.
- *
- * var button = driver.wait(until.elementLocated(By.id('foo')), 10000);
- * button.click();
- *
- * This function may also be used to block the command flow on the resolution
- * of any thenable promise object. When given a promise, the command will
- * simply wait for its resolution before completing. A timeout may be provided
- * to fail the command if the promise does not resolve before the timeout
- * expires.
- *
- * _Example:_ Suppose you have a function, `startTestServer`, that returns a
- * promise for when a server is ready for requests. You can block a WebDriver
- * client on this promise with:
- *
- * var started = startTestServer();
- * driver.wait(started, 5 * 1000, 'Server should start within 5 seconds');
- * driver.get(getServerUrl());
- *
- * @param {!(IThenable<T>|
- * Condition<T>|
- * function(!WebDriver): T)} condition The condition to
- * wait on, defined as a promise, condition object, or a function to
- * evaluate as a condition.
- * @param {number=} opt_timeout How long to wait for the condition to be true.
- * @param {string=} opt_message An optional message to use if the wait times
- * out.
- * @return {!(promise.Thenable<T>|WebElementPromise)} A promise that will be
- * resolved with the first truthy value returned by the condition
- * function, or rejected if the condition times out. If the input
- * input condition is an instance of a {@link WebElementCondition},
- * the returned value will be a {@link WebElementPromise}.
- * @throws {TypeError} if the provided `condition` is not a valid type.
- * @template T
- */
- wait(condition, opt_timeout, opt_message) {}
-
- /**
- * Schedules a command to make the driver sleep for the given amount of time.
- * @param {number} ms The amount of time, in milliseconds, to sleep.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the sleep has finished.
- */
- sleep(ms) {}
-
- /**
- * Schedules a command to retrieve the current window handle.
- * @return {!promise.Thenable<string>} A promise that will be
- * resolved with the current window handle.
- */
- getWindowHandle() {}
-
- /**
- * Schedules a command to retrieve the current list of available window handles.
- * @return {!promise.Thenable<!Array<string>>} A promise that will
- * be resolved with an array of window handles.
- */
- getAllWindowHandles() {}
-
- /**
- * Schedules a command to retrieve the current page's source. The page source
- * returned is a representation of the underlying DOM: do not expect it to be
- * formatted or escaped in the same way as the response sent from the web
- * server.
- * @return {!promise.Thenable<string>} A promise that will be
- * resolved with the current page source.
- */
- getPageSource() {}
-
- /**
- * Schedules a command to close the current window.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when this command has completed.
- */
- close() {}
-
- /**
- * Schedules a command to navigate to the given URL.
- * @param {string} url The fully qualified URL to open.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the document has finished loading.
- */
- get(url) {}
-
- /**
- * Schedules a command to retrieve the URL of the current page.
- * @return {!promise.Thenable<string>} A promise that will be
- * resolved with the current URL.
- */
- getCurrentUrl() {}
-
- /**
- * Schedules a command to retrieve the current page's title.
- * @return {!promise.Thenable<string>} A promise that will be
- * resolved with the current page's title.
- */
- getTitle() {}
-
- /**
- * Schedule a command to find an element on the page. If the element cannot be
- * found, a {@link bot.ErrorCode.NO_SUCH_ELEMENT} result will be returned
- * by the driver. Unlike other commands, this error cannot be suppressed. In
- * other words, scheduling a command to find an element doubles as an assert
- * that the element is present on the page. To test whether an element is
- * present on the page, use {@link #findElements}:
- *
- * driver.findElements(By.id('foo'))
- * .then(found => console.log('Element found? %s', !!found.length));
- *
- * The search criteria for an element may be defined using one of the
- * factories in the {@link webdriver.By} namespace, or as a short-hand
- * {@link webdriver.By.Hash} object. For example, the following two statements
- * are equivalent:
- *
- * var e1 = driver.findElement(By.id('foo'));
- * var e2 = driver.findElement({id:'foo'});
- *
- * You may also provide a custom locator function, which takes as input this
- * instance and returns a {@link WebElement}, or a promise that will resolve
- * to a WebElement. If the returned promise resolves to an array of
- * WebElements, WebDriver will use the first element. For example, to find the
- * first visible link on a page, you could write:
- *
- * var link = driver.findElement(firstVisibleLink);
- *
- * function firstVisibleLink(driver) {
- * var links = driver.findElements(By.tagName('a'));
- * return promise.filter(links, function(link) {
- * return link.isDisplayed();
- * });
- * }
- *
- * @param {!(by.By|Function)} locator The locator to use.
- * @return {!WebElementPromise} A WebElement that can be used to issue
- * commands against the located element. If the element is not found, the
- * element will be invalidated and all scheduled commands aborted.
- */
- findElement(locator) {}
-
- /**
- * Schedule a command to search for multiple elements on the page.
- *
- * @param {!(by.By|Function)} locator The locator to use.
- * @return {!promise.Thenable<!Array<!WebElement>>} A
- * promise that will resolve to an array of WebElements.
- */
- findElements(locator) {}
-
- /**
- * Schedule a command to take a screenshot. The driver makes a best effort to
- * return a screenshot of the following, in order of preference:
- *
- * 1. Entire page
- * 2. Current window
- * 3. Visible portion of the current frame
- * 4. The entire display containing the browser
- *
- * @return {!promise.Thenable<string>} A promise that will be
- * resolved to the screenshot as a base-64 encoded PNG.
- */
- takeScreenshot() {}
-
- /**
- * @return {!Options} The options interface for this instance.
- */
- manage() {}
-
- /**
- * @return {!Navigation} The navigation interface for this instance.
- */
- navigate() {}
-
- /**
- * @return {!TargetLocator} The target locator interface for this
- * instance.
- */
- switchTo() {}
-}
-
-
-/**
- * Each WebDriver instance provides automated control over a browser session.
- *
- * @implements {IWebDriver}
- */
-class WebDriver {
- /**
- * @param {!(Session|IThenable<!Session>)} session Either a known session or a
- * promise that will be resolved to a session.
- * @param {!command.Executor} executor The executor to use when sending
- * commands to the browser.
- * @param {promise.ControlFlow=} opt_flow The flow to
- * schedule commands through. Defaults to the active flow object.
- * @param {(function(this: void): ?)=} opt_onQuit A function to call, if any,
- * when the session is terminated.
- */
- constructor(session, executor, opt_flow, opt_onQuit) {
- /** @private {!promise.ControlFlow} */
- this.flow_ = opt_flow || promise.controlFlow();
-
- /** @private {!promise.Thenable<!Session>} */
- this.session_ = this.flow_.promise(resolve => resolve(session));
-
- /** @private {!command.Executor} */
- this.executor_ = executor;
-
- /** @private {input.FileDetector} */
- this.fileDetector_ = null;
-
- /** @private @const {(function(this: void): ?|undefined)} */
- this.onQuit_ = opt_onQuit;
- }
-
- /**
- * Creates a new WebDriver client for an existing session.
- * @param {!command.Executor} executor Command executor to use when querying
- * for session details.
- * @param {string} sessionId ID of the session to attach to.
- * @param {promise.ControlFlow=} opt_flow The control flow all
- * driver commands should execute under. Defaults to the
- * {@link promise.controlFlow() currently active} control flow.
- * @return {!WebDriver} A new client for the specified session.
- */
- static attachToSession(executor, sessionId, opt_flow) {
- let flow = opt_flow || promise.controlFlow();
- let cmd = new command.Command(command.Name.DESCRIBE_SESSION)
- .setParameter('sessionId', sessionId);
- let session = flow.execute(
- () => executeCommand(executor, cmd).catch(err => {
- // The DESCRIBE_SESSION command is not supported by the W3C spec, so
- // if we get back an unknown command, just return a session with
- // unknown capabilities.
- if (err instanceof error.UnknownCommandError) {
- return new Session(sessionId, new Capabilities);
- }
- throw err;
- }),
- 'WebDriver.attachToSession()');
- return new WebDriver(session, executor, flow);
- }
-
- /**
- * Creates a new WebDriver session.
- *
- * By default, the requested session `capabilities` are merely "desired" and
- * the remote end will still create a new session even if it cannot satisfy
- * all of the requested capabilities. You can query which capabilities a
- * session actually has using the
- * {@linkplain #getCapabilities() getCapabilities()} method on the returned
- * WebDriver instance.
- *
- * To define _required capabilities_, provide the `capabilities` as an object
- * literal with `required` and `desired` keys. The `desired` key may be
- * omitted if all capabilities are required, and vice versa. If the server
- * cannot create a session with all of the required capabilities, it will
- * return an {@linkplain error.SessionNotCreatedError}.
- *
- * let required = new Capabilities().set('browserName', 'firefox');
- * let desired = new Capabilities().set('version', '45');
- * let driver = WebDriver.createSession(executor, {required, desired});
- *
- * This function will always return a WebDriver instance. If there is an error
- * creating the session, such as the aforementioned SessionNotCreatedError,
- * the driver will have a rejected {@linkplain #getSession session} promise.
- * It is recommended that this promise is left _unhandled_ so it will
- * propagate through the {@linkplain promise.ControlFlow control flow} and
- * cause subsequent commands to fail.
- *
- * let required = Capabilities.firefox();
- * let driver = WebDriver.createSession(executor, {required});
- *
- * // If the createSession operation failed, then this command will also
- * // also fail, propagating the creation failure.
- * driver.get('http://www.google.com').catch(e => console.log(e));
- *
- * @param {!command.Executor} executor The executor to create the new session
- * with.
- * @param {(!Capabilities|
- * {desired: (Capabilities|undefined),
- * required: (Capabilities|undefined)})} capabilities The desired
- * capabilities for the new session.
- * @param {promise.ControlFlow=} opt_flow The control flow all driver
- * commands should execute under, including the initial session creation.
- * Defaults to the {@link promise.controlFlow() currently active}
- * control flow.
- * @param {(function(new: WebDriver,
- * !IThenable<!Session>,
- * !command.Executor,
- * promise.ControlFlow=))=} opt_ctor
- * A reference to the constructor of the specific type of WebDriver client
- * to instantiate. Will create a vanilla {@linkplain WebDriver} instance
- * if a constructor is not provided.
- * @param {(function(this: void): ?)=} opt_onQuit A callback to invoke when
- * the newly created session is terminated. This should be used to clean
- * up any resources associated with the session.
- * @return {!WebDriver} The driver for the newly created session.
- */
- static createSession(
- executor, capabilities, opt_flow, opt_ctor, opt_onQuit) {
- let flow = opt_flow || promise.controlFlow();
- let cmd = new command.Command(command.Name.NEW_SESSION);
-
- if (capabilities && (capabilities.desired || capabilities.required)) {
- cmd.setParameter('desiredCapabilities', capabilities.desired);
- cmd.setParameter('requiredCapabilities', capabilities.required);
- } else {
- cmd.setParameter('desiredCapabilities', capabilities);
- }
-
- let session = flow.execute(
- () => executeCommand(executor, cmd),
- 'WebDriver.createSession()');
- if (typeof opt_onQuit === 'function') {
- session = session.catch(err => {
- return Promise.resolve(opt_onQuit.call(void 0)).then(_ => {throw err;});
- });
- }
- const ctor = opt_ctor || WebDriver;
- return new ctor(session, executor, flow, opt_onQuit);
- }
-
- /** @override */
- controlFlow() {
- return this.flow_;
- }
-
- /** @override */
- schedule(command, description) {
- command.setParameter('sessionId', this.session_);
-
- // If any of the command parameters are rejected promises, those
- // rejections may be reported as unhandled before the control flow
- // attempts to execute the command. To ensure parameters errors
- // propagate through the command itself, we resolve all of the
- // command parameters now, but suppress any errors until the ControlFlow
- // actually executes the command. This addresses scenarios like catching
- // an element not found error in:
- //
- // driver.findElement(By.id('foo')).click().catch(function(e) {
- // if (e instanceof NoSuchElementError) {
- // // Do something.
- // }
- // });
- var prepCommand = toWireValue(command.getParameters());
- prepCommand.catch(function() {});
-
- var flow = this.flow_;
- var executor = this.executor_;
- return flow.execute(() => {
- // Retrieve resolved command parameters; any previously suppressed errors
- // will now propagate up through the control flow as part of the command
- // execution.
- return prepCommand.then(function(parameters) {
- command.setParameters(parameters);
- return executor.execute(command);
- }).then(value => fromWireValue(this, value));
- }, description);
- }
-
- /** @override */
- setFileDetector(detector) {
- this.fileDetector_ = detector;
- }
-
- /** @override */
- getExecutor() {
- return this.executor_;
- }
-
- /** @override */
- getSession() {
- return this.session_;
- }
-
- /** @override */
- getCapabilities() {
- return this.session_.then(s => s.getCapabilities());
- }
-
- /** @override */
- quit() {
- var result = this.schedule(
- new command.Command(command.Name.QUIT),
- 'WebDriver.quit()');
- // Delete our session ID when the quit command finishes; this will allow us
- // to throw an error when attempting to use a driver post-quit.
- return /** @type {!promise.Thenable} */(promise.finally(result, () => {
- this.session_ = this.flow_.promise((_, reject) => {
- reject(new error.NoSuchSessionError(
- 'This driver instance does not have a valid session ID ' +
- '(did you call WebDriver.quit()?) and may no longer be used.'));
- });
-
- // Only want the session rejection to bubble if accessed.
- this.session_.catch(function() {});
-
- if (this.onQuit_) {
- return this.onQuit_.call(void 0);
- }
- }));
- }
-
- /** @override */
- actions() {
- return new actions.ActionSequence(this);
- }
-
- /** @override */
- touchActions() {
- return new actions.TouchSequence(this);
- }
-
- /** @override */
- executeScript(script, var_args) {
- if (typeof script === 'function') {
- script = 'return (' + script + ').apply(null, arguments);';
- }
- let args =
- arguments.length > 1 ? Array.prototype.slice.call(arguments, 1) : [];
- return this.schedule(
- new command.Command(command.Name.EXECUTE_SCRIPT).
- setParameter('script', script).
- setParameter('args', args),
- 'WebDriver.executeScript()');
- }
-
- /** @override */
- executeAsyncScript(script, var_args) {
- if (typeof script === 'function') {
- script = 'return (' + script + ').apply(null, arguments);';
- }
- let args = Array.prototype.slice.call(arguments, 1);
- return this.schedule(
- new command.Command(command.Name.EXECUTE_ASYNC_SCRIPT).
- setParameter('script', script).
- setParameter('args', args),
- 'WebDriver.executeScript()');
- }
-
- /** @override */
- call(fn, opt_scope, var_args) {
- let args = Array.prototype.slice.call(arguments, 2);
- return this.flow_.execute(function() {
- return promise.fullyResolved(args).then(function(args) {
- if (promise.isGenerator(fn)) {
- args.unshift(fn, opt_scope);
- return promise.consume.apply(null, args);
- }
- return fn.apply(opt_scope, args);
- });
- }, 'WebDriver.call(' + (fn.name || 'function') + ')');
- }
-
- /** @override */
- wait(condition, opt_timeout, opt_message) {
- if (promise.isPromise(condition)) {
- return this.flow_.wait(
- /** @type {!IThenable} */(condition),
- opt_timeout, opt_message);
- }
-
- var message = opt_message;
- var fn = /** @type {!Function} */(condition);
- if (condition instanceof Condition) {
- message = message || condition.description();
- fn = condition.fn;
- }
-
- if (typeof fn !== 'function') {
- throw TypeError(
- 'Wait condition must be a promise-like object, function, or a '
- + 'Condition object');
- }
-
- var driver = this;
- var result = this.flow_.wait(function() {
- if (promise.isGenerator(fn)) {
- return promise.consume(fn, null, [driver]);
- }
- return fn(driver);
- }, opt_timeout, message);
-
- if (condition instanceof WebElementCondition) {
- result = new WebElementPromise(this, result.then(function(value) {
- if (!(value instanceof WebElement)) {
- throw TypeError(
- 'WebElementCondition did not resolve to a WebElement: '
- + Object.prototype.toString.call(value));
- }
- return value;
- }));
- }
- return result;
- }
-
- /** @override */
- sleep(ms) {
- return this.flow_.timeout(ms, 'WebDriver.sleep(' + ms + ')');
- }
-
- /** @override */
- getWindowHandle() {
- return this.schedule(
- new command.Command(command.Name.GET_CURRENT_WINDOW_HANDLE),
- 'WebDriver.getWindowHandle()');
- }
-
- /** @override */
- getAllWindowHandles() {
- return this.schedule(
- new command.Command(command.Name.GET_WINDOW_HANDLES),
- 'WebDriver.getAllWindowHandles()');
- }
-
- /** @override */
- getPageSource() {
- return this.schedule(
- new command.Command(command.Name.GET_PAGE_SOURCE),
- 'WebDriver.getPageSource()');
- }
-
- /** @override */
- close() {
- return this.schedule(new command.Command(command.Name.CLOSE),
- 'WebDriver.close()');
- }
-
- /** @override */
- get(url) {
- return this.navigate().to(url);
- }
-
- /** @override */
- getCurrentUrl() {
- return this.schedule(
- new command.Command(command.Name.GET_CURRENT_URL),
- 'WebDriver.getCurrentUrl()');
- }
-
- /** @override */
- getTitle() {
- return this.schedule(new command.Command(command.Name.GET_TITLE),
- 'WebDriver.getTitle()');
- }
-
- /** @override */
- findElement(locator) {
- let id;
- locator = by.checkedLocator(locator);
- if (typeof locator === 'function') {
- id = this.findElementInternal_(locator, this);
- } else {
- let cmd = new command.Command(command.Name.FIND_ELEMENT).
- setParameter('using', locator.using).
- setParameter('value', locator.value);
- id = this.schedule(cmd, 'WebDriver.findElement(' + locator + ')');
- }
- return new WebElementPromise(this, id);
- }
-
- /**
- * @param {!Function} locatorFn The locator function to use.
- * @param {!(WebDriver|WebElement)} context The search
- * context.
- * @return {!promise.Thenable<!WebElement>} A
- * promise that will resolve to a list of WebElements.
- * @private
- */
- findElementInternal_(locatorFn, context) {
- return this.call(() => locatorFn(context)).then(function(result) {
- if (Array.isArray(result)) {
- result = result[0];
- }
- if (!(result instanceof WebElement)) {
- throw new TypeError('Custom locator did not return a WebElement');
- }
- return result;
- });
- }
-
- /** @override */
- findElements(locator) {
- locator = by.checkedLocator(locator);
- if (typeof locator === 'function') {
- return this.findElementsInternal_(locator, this);
- } else {
- let cmd = new command.Command(command.Name.FIND_ELEMENTS).
- setParameter('using', locator.using).
- setParameter('value', locator.value);
- let res = this.schedule(cmd, 'WebDriver.findElements(' + locator + ')');
- return res.catch(function(e) {
- if (e instanceof error.NoSuchElementError) {
- return [];
- }
- throw e;
- });
- }
- }
-
- /**
- * @param {!Function} locatorFn The locator function to use.
- * @param {!(WebDriver|WebElement)} context The search context.
- * @return {!promise.Thenable<!Array<!WebElement>>} A promise that
- * will resolve to an array of WebElements.
- * @private
- */
- findElementsInternal_(locatorFn, context) {
- return this.call(() => locatorFn(context)).then(function(result) {
- if (result instanceof WebElement) {
- return [result];
- }
-
- if (!Array.isArray(result)) {
- return [];
- }
-
- return result.filter(function(item) {
- return item instanceof WebElement;
- });
- });
- }
-
- /** @override */
- takeScreenshot() {
- return this.schedule(new command.Command(command.Name.SCREENSHOT),
- 'WebDriver.takeScreenshot()');
- }
-
- /** @override */
- manage() {
- return new Options(this);
- }
-
- /** @override */
- navigate() {
- return new Navigation(this);
- }
-
- /** @override */
- switchTo() {
- return new TargetLocator(this);
- }
-}
-
-
-/**
- * Interface for navigating back and forth in the browser history.
- *
- * This class should never be instantiated directly. Instead, obtain an instance
- * with
- *
- * webdriver.navigate()
- *
- * @see WebDriver#navigate()
- */
-class Navigation {
- /**
- * @param {!WebDriver} driver The parent driver.
- * @private
- */
- constructor(driver) {
- /** @private {!WebDriver} */
- this.driver_ = driver;
- }
-
- /**
- * Schedules a command to navigate to a new URL.
- * @param {string} url The URL to navigate to.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the URL has been loaded.
- */
- to(url) {
- return this.driver_.schedule(
- new command.Command(command.Name.GET).
- setParameter('url', url),
- 'WebDriver.navigate().to(' + url + ')');
- }
-
- /**
- * Schedules a command to move backwards in the browser history.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the navigation event has completed.
- */
- back() {
- return this.driver_.schedule(
- new command.Command(command.Name.GO_BACK),
- 'WebDriver.navigate().back()');
- }
-
- /**
- * Schedules a command to move forwards in the browser history.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the navigation event has completed.
- */
- forward() {
- return this.driver_.schedule(
- new command.Command(command.Name.GO_FORWARD),
- 'WebDriver.navigate().forward()');
- }
-
- /**
- * Schedules a command to refresh the current page.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the navigation event has completed.
- */
- refresh() {
- return this.driver_.schedule(
- new command.Command(command.Name.REFRESH),
- 'WebDriver.navigate().refresh()');
- }
-}
-
-
-/**
- * Provides methods for managing browser and driver state.
- *
- * This class should never be instantiated directly. Instead, obtain an instance
- * with {@linkplain WebDriver#manage() webdriver.manage()}.
- */
-class Options {
- /**
- * @param {!WebDriver} driver The parent driver.
- * @private
- */
- constructor(driver) {
- /** @private {!WebDriver} */
- this.driver_ = driver;
- }
-
- /**
- * Schedules a command to add a cookie.
- *
- * __Sample Usage:__
- *
- * // Set a basic cookie.
- * driver.options().addCookie({name: 'foo', value: 'bar'});
- *
- * // Set a cookie that expires in 10 minutes.
- * let expiry = new Date(Date.now() + (10 * 60 * 1000));
- * driver.options().addCookie({name: 'foo', value: 'bar', expiry});
- *
- * // The cookie expiration may also be specified in seconds since epoch.
- * driver.options().addCookie({
- * name: 'foo',
- * value: 'bar',
- * expiry: Math.floor(Date.now() / 1000)
- * });
- *
- * @param {!Options.Cookie} spec Defines the cookie to add.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the cookie has been added to the page.
- * @throws {error.InvalidArgumentError} if any of the cookie parameters are
- * invalid.
- * @throws {TypeError} if `spec` is not a cookie object.
- */
- addCookie(spec) {
- if (!spec || typeof spec !== 'object') {
- throw TypeError('addCookie called with non-cookie parameter');
- }
-
- // We do not allow '=' or ';' in the name.
- let name = spec.name;
- if (/[;=]/.test(name)) {
- throw new error.InvalidArgumentError(
- 'Invalid cookie name "' + name + '"');
- }
-
- // We do not allow ';' in value.
- let value = spec.value;
- if (/;/.test(value)) {
- throw new error.InvalidArgumentError(
- 'Invalid cookie value "' + value + '"');
- }
-
- let cookieString = name + '=' + value +
- (spec.domain ? ';domain=' + spec.domain : '') +
- (spec.path ? ';path=' + spec.path : '') +
- (spec.secure ? ';secure' : '');
-
- let expiry;
- if (typeof spec.expiry === 'number') {
- expiry = Math.floor(spec.expiry);
- cookieString += ';expires=' + new Date(spec.expiry * 1000).toUTCString();
- } else if (spec.expiry instanceof Date) {
- let date = /** @type {!Date} */(spec.expiry);
- expiry = Math.floor(date.getTime() / 1000);
- cookieString += ';expires=' + date.toUTCString();
- }
-
- return this.driver_.schedule(
- new command.Command(command.Name.ADD_COOKIE).
- setParameter('cookie', {
- 'name': name,
- 'value': value,
- 'path': spec.path,
- 'domain': spec.domain,
- 'secure': !!spec.secure,
- 'expiry': expiry
- }),
- 'WebDriver.manage().addCookie(' + cookieString + ')');
- }
-
- /**
- * Schedules a command to delete all cookies visible to the current page.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when all cookies have been deleted.
- */
- deleteAllCookies() {
- return this.driver_.schedule(
- new command.Command(command.Name.DELETE_ALL_COOKIES),
- 'WebDriver.manage().deleteAllCookies()');
- }
-
- /**
- * Schedules a command to delete the cookie with the given name. This command
- * is a no-op if there is no cookie with the given name visible to the current
- * page.
- * @param {string} name The name of the cookie to delete.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the cookie has been deleted.
- */
- deleteCookie(name) {
- return this.driver_.schedule(
- new command.Command(command.Name.DELETE_COOKIE).
- setParameter('name', name),
- 'WebDriver.manage().deleteCookie(' + name + ')');
- }
-
- /**
- * Schedules a command to retrieve all cookies visible to the current page.
- * Each cookie will be returned as a JSON object as described by the WebDriver
- * wire protocol.
- * @return {!promise.Thenable<!Array<!Options.Cookie>>} A promise that will be
- * resolved with the cookies visible to the current browsing context.
- */
- getCookies() {
- return this.driver_.schedule(
- new command.Command(command.Name.GET_ALL_COOKIES),
- 'WebDriver.manage().getCookies()');
- }
-
- /**
- * Schedules a command to retrieve the cookie with the given name. Returns null
- * if there is no such cookie. The cookie will be returned as a JSON object as
- * described by the WebDriver wire protocol.
- *
- * @param {string} name The name of the cookie to retrieve.
- * @return {!promise.Thenable<?Options.Cookie>} A promise that will be resolved
- * with the named cookie, or `null` if there is no such cookie.
- */
- getCookie(name) {
- return this.getCookies().then(function(cookies) {
- for (let cookie of cookies) {
- if (cookie && cookie['name'] === name) {
- return cookie;
- }
- }
- return null;
- });
- }
-
- /**
- * Schedules a command to fetch the timeouts currently configured for the
- * current session.
- *
- * @return {!promise.Thenable<{script: number,
- * pageLoad: number,
- * implicit: number}>} A promise that will be
- * resolved with the timeouts currently configured for the current
- * session.
- * @see #setTimeouts()
- */
- getTimeouts() {
- return this.driver_.schedule(
- new command.Command(command.Name.GET_TIMEOUT),
- `WebDriver.manage().getTimeouts()`)
- }
-
- /**
- * Schedules a command to set timeout durations associated with the current
- * session.
- *
- * The following timeouts are supported (all timeouts are specified in
- * milliseconds):
- *
- * - `implicit` specifies the maximum amount of time to wait for an element
- * locator to succeed when {@linkplain WebDriver#findElement locating}
- * {@linkplain WebDriver#findElements elements} on the page.
- * Defaults to 0 milliseconds.
- *
- * - `pageLoad` specifies the maximum amount of time to wait for a page to
- * finishing loading. Defaults to 300000 milliseconds.
- *
- * - `script` specifies the maximum amount of time to wait for an
- * {@linkplain WebDriver#executeScript evaluated script} to run. If set to
- * `null`, the script timeout will be indefinite.
- * Defaults to 30000 milliseconds.
- *
- * @param {{script: (number|null|undefined),
- * pageLoad: (number|null|undefined),
- * implicit: (number|null|undefined)}} conf
- * The desired timeout configuration.
- * @return {!promise.Thenable<void>} A promise that will be resolved when the
- * timeouts have been set.
- * @throws {!TypeError} if an invalid options object is provided.
- * @see #getTimeouts()
- * @see <https://w3c.github.io/webdriver/webdriver-spec.html#dfn-set-timeouts>
- */
- setTimeouts({script, pageLoad, implicit} = {}) {
- let cmd = new command.Command(command.Name.SET_TIMEOUT);
-
- let valid = false;
- function setParam(key, value) {
- if (value === null || typeof value === 'number') {
- valid = true;
- cmd.setParameter(key, value);
- } else if (typeof value !== 'undefined') {
- throw TypeError(
- 'invalid timeouts configuration:'
- + ` expected "${key}" to be a number, got ${typeof value}`);
- }
- }
- setParam('implicit', implicit);
- setParam('pageLoad', pageLoad);
- setParam('script', script);
-
- if (valid) {
- return this.driver_.schedule(cmd, `WebDriver.manage().setTimeouts()`)
- .catch(() => {
- // Fallback to the legacy method.
- let cmds = [];
- if (typeof script === 'number') {
- cmds.push(legacyTimeout(this.driver_, 'script', script));
- }
- if (typeof implicit === 'number') {
- cmds.push(legacyTimeout(this.driver_, 'implicit', implicit));
- }
- if (typeof pageLoad === 'number') {
- cmds.push(legacyTimeout(this.driver_, 'page load', pageLoad));
- }
- return Promise.all(cmds);
- });
- }
- throw TypeError('no timeouts specified');
- }
-
- /**
- * @return {!Logs} The interface for managing driver
- * logs.
- */
- logs() {
- return new Logs(this.driver_);
- }
-
- /**
- * @return {!Timeouts} The interface for managing driver timeouts.
- * @deprecated Use {@link #setTimeouts()} instead.
- */
- timeouts() {
- return new Timeouts(this.driver_);
- }
-
- /**
- * @return {!Window} The interface for managing the current window.
- */
- window() {
- return new Window(this.driver_);
- }
-}
-
-
-/**
- * @param {!WebDriver} driver
- * @param {string} type
- * @param {number} ms
- * @return {!promise.Thenable<void>}
- */
-function legacyTimeout(driver, type, ms) {
- return driver.schedule(
- new command.Command(command.Name.SET_TIMEOUT)
- .setParameter('type', type)
- .setParameter('ms', ms),
- `WebDriver.manage().setTimeouts({${type}: ${ms}})`);
-}
-
-
-
-/**
- * A record object describing a browser cookie.
- *
- * @record
- */
-Options.Cookie = function() {};
-
-
-/**
- * The name of the cookie.
- *
- * @type {string}
- */
-Options.Cookie.prototype.name;
-
-
-/**
- * The cookie value.
- *
- * @type {string}
- */
-Options.Cookie.prototype.value;
-
-
-/**
- * The cookie path. Defaults to "/" when adding a cookie.
- *
- * @type {(string|undefined)}
- */
-Options.Cookie.prototype.path;
-
-
-/**
- * The domain the cookie is visible to. Defaults to the current browsing
- * context's document's URL when adding a cookie.
- *
- * @type {(string|undefined)}
- */
-Options.Cookie.prototype.domain;
-
-
-/**
- * Whether the cookie is a secure cookie. Defaults to false when adding a new
- * cookie.
- *
- * @type {(boolean|undefined)}
- */
-Options.Cookie.prototype.secure;
-
-
-/**
- * Whether the cookie is an HTTP only cookie. Defaults to false when adding a
- * new cookie.
- *
- * @type {(boolean|undefined)}
- */
-Options.Cookie.prototype.httpOnly;
-
-
-/**
- * When the cookie expires.
- *
- * When {@linkplain Options#addCookie() adding a cookie}, this may be specified
- * in _seconds_ since Unix epoch (January 1, 1970). The expiry will default to
- * 20 years in the future if omitted.
- *
- * The expiry is always returned in seconds since epoch when
- * {@linkplain Options#getCookies() retrieving cookies} from the browser.
- *
- * @type {(!Date|number|undefined)}
- */
-Options.Cookie.prototype.expiry;
-
-
-/**
- * An interface for managing timeout behavior for WebDriver instances.
- *
- * This class should never be instantiated directly. Instead, obtain an instance
- * with
- *
- * webdriver.manage().timeouts()
- *
- * @deprecated This has been deprecated in favor of
- * {@link Options#setTimeouts()}, which supports setting multiple timeouts
- * at once.
- * @see WebDriver#manage()
- * @see Options#timeouts()
- */
-class Timeouts {
- /**
- * @param {!WebDriver} driver The parent driver.
- * @private
- */
- constructor(driver) {
- /** @private {!WebDriver} */
- this.driver_ = driver;
- }
-
- /**
- * Specifies the amount of time the driver should wait when searching for an
- * element if it is not immediately present.
- *
- * When searching for a single element, the driver should poll the page
- * until the element has been found, or this timeout expires before failing
- * with a {@link bot.ErrorCode.NO_SUCH_ELEMENT} error. When searching
- * for multiple elements, the driver should poll the page until at least one
- * element has been found or this timeout has expired.
- *
- * Setting the wait timeout to 0 (its default value), disables implicit
- * waiting.
- *
- * Increasing the implicit wait timeout should be used judiciously as it
- * will have an adverse effect on test run time, especially when used with
- * slower location strategies like XPath.
- *
- * @param {number} ms The amount of time to wait, in milliseconds.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the implicit wait timeout has been set.
- * @deprecated Use {@link Options#setTimeouts()
- * driver.manage().setTimeouts({implicit: ms})}.
- */
- implicitlyWait(ms) {
- return this.driver_.manage().setTimeouts({implicit: ms});
- }
-
- /**
- * Sets the amount of time to wait, in milliseconds, for an asynchronous
- * script to finish execution before returning an error. If the timeout is
- * less than or equal to 0, the script will be allowed to run indefinitely.
- *
- * @param {number} ms The amount of time to wait, in milliseconds.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the script timeout has been set.
- * @deprecated Use {@link Options#setTimeouts()
- * driver.manage().setTimeouts({script: ms})}.
- */
- setScriptTimeout(ms) {
- return this.driver_.manage().setTimeouts({script: ms});
- }
-
- /**
- * Sets the amount of time to wait for a page load to complete before
- * returning an error. If the timeout is negative, page loads may be
- * indefinite.
- *
- * @param {number} ms The amount of time to wait, in milliseconds.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the timeout has been set.
- * @deprecated Use {@link Options#setTimeouts()
- * driver.manage().setTimeouts({pageLoad: ms})}.
- */
- pageLoadTimeout(ms) {
- return this.driver_.manage().setTimeouts({pageLoad: ms});
- }
-}
-
-
-/**
- * An interface for managing the current window.
- *
- * This class should never be instantiated directly. Instead, obtain an instance
- * with
- *
- * webdriver.manage().window()
- *
- * @see WebDriver#manage()
- * @see Options#window()
- */
-class Window {
- /**
- * @param {!WebDriver} driver The parent driver.
- * @private
- */
- constructor(driver) {
- /** @private {!WebDriver} */
- this.driver_ = driver;
- }
-
- /**
- * Retrieves the window's current position, relative to the top left corner of
- * the screen.
- * @return {!promise.Thenable<{x: number, y: number}>} A promise
- * that will be resolved with the window's position in the form of a
- * {x:number, y:number} object literal.
- */
- getPosition() {
- return this.driver_.schedule(
- new command.Command(command.Name.GET_WINDOW_POSITION).
- setParameter('windowHandle', 'current'),
- 'WebDriver.manage().window().getPosition()');
- }
-
- /**
- * Repositions the current window.
- * @param {number} x The desired horizontal position, relative to the left
- * side of the screen.
- * @param {number} y The desired vertical position, relative to the top of the
- * of the screen.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the command has completed.
- */
- setPosition(x, y) {
- return this.driver_.schedule(
- new command.Command(command.Name.SET_WINDOW_POSITION).
- setParameter('windowHandle', 'current').
- setParameter('x', x).
- setParameter('y', y),
- 'WebDriver.manage().window().setPosition(' + x + ', ' + y + ')');
- }
-
- /**
- * Retrieves the window's current size.
- * @return {!promise.Thenable<{width: number, height: number}>} A
- * promise that will be resolved with the window's size in the form of a
- * {width:number, height:number} object literal.
- */
- getSize() {
- return this.driver_.schedule(
- new command.Command(command.Name.GET_WINDOW_SIZE).
- setParameter('windowHandle', 'current'),
- 'WebDriver.manage().window().getSize()');
- }
-
- /**
- * Resizes the current window.
- * @param {number} width The desired window width.
- * @param {number} height The desired window height.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the command has completed.
- */
- setSize(width, height) {
- return this.driver_.schedule(
- new command.Command(command.Name.SET_WINDOW_SIZE).
- setParameter('windowHandle', 'current').
- setParameter('width', width).
- setParameter('height', height),
- 'WebDriver.manage().window().setSize(' + width + ', ' + height + ')');
- }
-
- /**
- * Maximizes the current window.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the command has completed.
- */
- maximize() {
- return this.driver_.schedule(
- new command.Command(command.Name.MAXIMIZE_WINDOW).
- setParameter('windowHandle', 'current'),
- 'WebDriver.manage().window().maximize()');
- }
-}
-
-
-/**
- * Interface for managing WebDriver log records.
- *
- * This class should never be instantiated directly. Instead, obtain an
- * instance with
- *
- * webdriver.manage().logs()
- *
- * @see WebDriver#manage()
- * @see Options#logs()
- */
-class Logs {
- /**
- * @param {!WebDriver} driver The parent driver.
- * @private
- */
- constructor(driver) {
- /** @private {!WebDriver} */
- this.driver_ = driver;
- }
-
- /**
- * Fetches available log entries for the given type.
- *
- * Note that log buffers are reset after each call, meaning that available
- * log entries correspond to those entries not yet returned for a given log
- * type. In practice, this means that this call will return the available log
- * entries since the last call, or from the start of the session.
- *
- * @param {!logging.Type} type The desired log type.
- * @return {!promise.Thenable<!Array.<!logging.Entry>>} A
- * promise that will resolve to a list of log entries for the specified
- * type.
- */
- get(type) {
- let cmd = new command.Command(command.Name.GET_LOG).
- setParameter('type', type);
- return this.driver_.schedule(
- cmd, 'WebDriver.manage().logs().get(' + type + ')').
- then(function(entries) {
- return entries.map(function(entry) {
- if (!(entry instanceof logging.Entry)) {
- return new logging.Entry(
- entry['level'], entry['message'], entry['timestamp'],
- entry['type']);
- }
- return entry;
- });
- });
- }
-
- /**
- * Retrieves the log types available to this driver.
- * @return {!promise.Thenable<!Array<!logging.Type>>} A
- * promise that will resolve to a list of available log types.
- */
- getAvailableLogTypes() {
- return this.driver_.schedule(
- new command.Command(command.Name.GET_AVAILABLE_LOG_TYPES),
- 'WebDriver.manage().logs().getAvailableLogTypes()');
- }
-}
-
-
-/**
- * An interface for changing the focus of the driver to another frame or window.
- *
- * This class should never be instantiated directly. Instead, obtain an
- * instance with
- *
- * webdriver.switchTo()
- *
- * @see WebDriver#switchTo()
- */
-class TargetLocator {
- /**
- * @param {!WebDriver} driver The parent driver.
- * @private
- */
- constructor(driver) {
- /** @private {!WebDriver} */
- this.driver_ = driver;
- }
-
- /**
- * Schedules a command retrieve the {@code document.activeElement} element on
- * the current document, or {@code document.body} if activeElement is not
- * available.
- * @return {!WebElementPromise} The active element.
- */
- activeElement() {
- var id = this.driver_.schedule(
- new command.Command(command.Name.GET_ACTIVE_ELEMENT),
- 'WebDriver.switchTo().activeElement()');
- return new WebElementPromise(this.driver_, id);
- }
-
- /**
- * Schedules a command to switch focus of all future commands to the topmost
- * frame on the page.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the driver has changed focus to the default content.
- */
- defaultContent() {
- return this.driver_.schedule(
- new command.Command(command.Name.SWITCH_TO_FRAME).
- setParameter('id', null),
- 'WebDriver.switchTo().defaultContent()');
- }
-
- /**
- * Schedules a command to switch the focus of all future commands to another
- * frame on the page. The target frame may be specified as one of the
- * following:
- *
- * - A number that specifies a (zero-based) index into [window.frames](
- * https://developer.mozilla.org/en-US/docs/Web/API/Window.frames).
- * - A {@link WebElement} reference, which correspond to a `frame` or `iframe`
- * DOM element.
- * - The `null` value, to select the topmost frame on the page. Passing `null`
- * is the same as calling {@link #defaultContent defaultContent()}.
- *
- * If the specified frame can not be found, the returned promise will be
- * rejected with a {@linkplain error.NoSuchFrameError}.
- *
- * @param {(number|WebElement|null)} id The frame locator.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the driver has changed focus to the specified frame.
- */
- frame(id) {
- return this.driver_.schedule(
- new command.Command(command.Name.SWITCH_TO_FRAME).
- setParameter('id', id),
- 'WebDriver.switchTo().frame(' + id + ')');
- }
-
- /**
- * Schedules a command to switch the focus of all future commands to another
- * window. Windows may be specified by their {@code window.name} attribute or
- * by its handle (as returned by {@link WebDriver#getWindowHandles}).
- *
- * If the specified window cannot be found, the returned promise will be
- * rejected with a {@linkplain error.NoSuchWindowError}.
- *
- * @param {string} nameOrHandle The name or window handle of the window to
- * switch focus to.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the driver has changed focus to the specified window.
- */
- window(nameOrHandle) {
- return this.driver_.schedule(
- new command.Command(command.Name.SWITCH_TO_WINDOW).
- // "name" supports the legacy drivers. "handle" is the W3C
- // compliant parameter.
- setParameter('name', nameOrHandle).
- setParameter('handle', nameOrHandle),
- 'WebDriver.switchTo().window(' + nameOrHandle + ')');
- }
-
- /**
- * Schedules a command to change focus to the active modal dialog, such as
- * those opened by `window.alert()`, `window.confirm()`, and
- * `window.prompt()`. The returned promise will be rejected with a
- * {@linkplain error.NoSuchAlertError} if there are no open alerts.
- *
- * @return {!AlertPromise} The open alert.
- */
- alert() {
- var text = this.driver_.schedule(
- new command.Command(command.Name.GET_ALERT_TEXT),
- 'WebDriver.switchTo().alert()');
- var driver = this.driver_;
- return new AlertPromise(driver, text.then(function(text) {
- return new Alert(driver, text);
- }));
- }
-}
-
-
-//////////////////////////////////////////////////////////////////////////////
-//
-// WebElement
-//
-//////////////////////////////////////////////////////////////////////////////
-
-
-const LEGACY_ELEMENT_ID_KEY = 'ELEMENT';
-const ELEMENT_ID_KEY = 'element-6066-11e4-a52e-4f735466cecf';
-
-
-/**
- * Represents a DOM element. WebElements can be found by searching from the
- * document root using a {@link WebDriver} instance, or by searching
- * under another WebElement:
- *
- * driver.get('http://www.google.com');
- * var searchForm = driver.findElement(By.tagName('form'));
- * var searchBox = searchForm.findElement(By.name('q'));
- * searchBox.sendKeys('webdriver');
- */
-class WebElement {
- /**
- * @param {!WebDriver} driver the parent WebDriver instance for this element.
- * @param {(!IThenable<string>|string)} id The server-assigned opaque ID for
- * the underlying DOM element.
- */
- constructor(driver, id) {
- /** @private {!WebDriver} */
- this.driver_ = driver;
-
- /** @private {!promise.Thenable<string>} */
- this.id_ = driver.controlFlow().promise(resolve => resolve(id));
- }
-
- /**
- * @param {string} id The raw ID.
- * @param {boolean=} opt_noLegacy Whether to exclude the legacy element key.
- * @return {!Object} The element ID for use with WebDriver's wire protocol.
- */
- static buildId(id, opt_noLegacy) {
- return opt_noLegacy
- ? {[ELEMENT_ID_KEY]: id}
- : {[ELEMENT_ID_KEY]: id, [LEGACY_ELEMENT_ID_KEY]: id};
- }
-
- /**
- * Extracts the encoded WebElement ID from the object.
- *
- * @param {?} obj The object to extract the ID from.
- * @return {string} the extracted ID.
- * @throws {TypeError} if the object is not a valid encoded ID.
- */
- static extractId(obj) {
- if (obj && typeof obj === 'object') {
- if (typeof obj[ELEMENT_ID_KEY] === 'string') {
- return obj[ELEMENT_ID_KEY];
- } else if (typeof obj[LEGACY_ELEMENT_ID_KEY] === 'string') {
- return obj[LEGACY_ELEMENT_ID_KEY];
- }
- }
- throw new TypeError('object is not a WebElement ID');
- }
-
- /**
- * @param {?} obj the object to test.
- * @return {boolean} whether the object is a valid encoded WebElement ID.
- */
- static isId(obj) {
- return obj && typeof obj === 'object'
- && (typeof obj[ELEMENT_ID_KEY] === 'string'
- || typeof obj[LEGACY_ELEMENT_ID_KEY] === 'string');
- }
-
- /**
- * Compares two WebElements for equality.
- *
- * @param {!WebElement} a A WebElement.
- * @param {!WebElement} b A WebElement.
- * @return {!promise.Thenable<boolean>} A promise that will be
- * resolved to whether the two WebElements are equal.
- */
- static equals(a, b) {
- if (a === b) {
- return a.driver_.controlFlow().promise(resolve => resolve(true));
- }
- let ids = [a.getId(), b.getId()];
- return promise.all(ids).then(function(ids) {
- // If the two element's have the same ID, they should be considered
- // equal. Otherwise, they may still be equivalent, but we'll need to
- // ask the server to check for us.
- if (ids[0] === ids[1]) {
- return true;
- }
-
- let cmd = new command.Command(command.Name.ELEMENT_EQUALS);
- cmd.setParameter('id', ids[0]);
- cmd.setParameter('other', ids[1]);
- return a.driver_.schedule(cmd, 'WebElement.equals()');
- });
- }
-
- /** @return {!WebDriver} The parent driver for this instance. */
- getDriver() {
- return this.driver_;
- }
-
- /**
- * @return {!promise.Thenable<string>} A promise that resolves to
- * the server-assigned opaque ID assigned to this element.
- */
- getId() {
- return this.id_;
- }
-
- /**
- * @return {!Object} Returns the serialized representation of this WebElement.
- */
- [Symbols.serialize]() {
- return this.getId().then(WebElement.buildId);
- }
-
- /**
- * Schedules a command that targets this element with the parent WebDriver
- * instance. Will ensure this element's ID is included in the command
- * parameters under the "id" key.
- *
- * @param {!command.Command} command The command to schedule.
- * @param {string} description A description of the command for debugging.
- * @return {!promise.Thenable<T>} A promise that will be resolved
- * with the command result.
- * @template T
- * @see WebDriver#schedule
- * @private
- */
- schedule_(command, description) {
- command.setParameter('id', this);
- return this.driver_.schedule(command, description);
- }
-
- /**
- * Schedule a command to find a descendant of this element. If the element
- * cannot be found, the returned promise will be rejected with a
- * {@linkplain error.NoSuchElementError NoSuchElementError}.
- *
- * The search criteria for an element may be defined using one of the static
- * factories on the {@link by.By} class, or as a short-hand
- * {@link ./by.ByHash} object. For example, the following two statements
- * are equivalent:
- *
- * var e1 = element.findElement(By.id('foo'));
- * var e2 = element.findElement({id:'foo'});
- *
- * You may also provide a custom locator function, which takes as input this
- * instance and returns a {@link WebElement}, or a promise that will resolve
- * to a WebElement. If the returned promise resolves to an array of
- * WebElements, WebDriver will use the first element. For example, to find the
- * first visible link on a page, you could write:
- *
- * var link = element.findElement(firstVisibleLink);
- *
- * function firstVisibleLink(element) {
- * var links = element.findElements(By.tagName('a'));
- * return promise.filter(links, function(link) {
- * return link.isDisplayed();
- * });
- * }
- *
- * @param {!(by.By|Function)} locator The locator strategy to use when
- * searching for the element.
- * @return {!WebElementPromise} A WebElement that can be used to issue
- * commands against the located element. If the element is not found, the
- * element will be invalidated and all scheduled commands aborted.
- */
- findElement(locator) {
- locator = by.checkedLocator(locator);
- let id;
- if (typeof locator === 'function') {
- id = this.driver_.findElementInternal_(locator, this);
- } else {
- let cmd = new command.Command(
- command.Name.FIND_CHILD_ELEMENT).
- setParameter('using', locator.using).
- setParameter('value', locator.value);
- id = this.schedule_(cmd, 'WebElement.findElement(' + locator + ')');
- }
- return new WebElementPromise(this.driver_, id);
- }
-
- /**
- * Schedules a command to find all of the descendants of this element that
- * match the given search criteria.
- *
- * @param {!(by.By|Function)} locator The locator strategy to use when
- * searching for the element.
- * @return {!promise.Thenable<!Array<!WebElement>>} A
- * promise that will resolve to an array of WebElements.
- */
- findElements(locator) {
- locator = by.checkedLocator(locator);
- let id;
- if (typeof locator === 'function') {
- return this.driver_.findElementsInternal_(locator, this);
- } else {
- var cmd = new command.Command(
- command.Name.FIND_CHILD_ELEMENTS).
- setParameter('using', locator.using).
- setParameter('value', locator.value);
- return this.schedule_(cmd, 'WebElement.findElements(' + locator + ')');
- }
- }
-
- /**
- * Schedules a command to click on this element.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the click command has completed.
- */
- click() {
- return this.schedule_(
- new command.Command(command.Name.CLICK_ELEMENT),
- 'WebElement.click()');
- }
-
- /**
- * Schedules a command to type a sequence on the DOM element represented by
- * this instance.
- *
- * Modifier keys (SHIFT, CONTROL, ALT, META) are stateful; once a modifier is
- * processed in the key sequence, that key state is toggled until one of the
- * following occurs:
- *
- * - The modifier key is encountered again in the sequence. At this point the
- * state of the key is toggled (along with the appropriate keyup/down
- * events).
- * - The {@link input.Key.NULL} key is encountered in the sequence. When
- * this key is encountered, all modifier keys current in the down state are
- * released (with accompanying keyup events). The NULL key can be used to
- * simulate common keyboard shortcuts:
- *
- * element.sendKeys("text was",
- * Key.CONTROL, "a", Key.NULL,
- * "now text is");
- * // Alternatively:
- * element.sendKeys("text was",
- * Key.chord(Key.CONTROL, "a"),
- * "now text is");
- *
- * - The end of the key sequence is encountered. When there are no more keys
- * to type, all depressed modifier keys are released (with accompanying
- * keyup events).
- *
- * If this element is a file input ({@code <input type="file">}), the
- * specified key sequence should specify the path to the file to attach to
- * the element. This is analogous to the user clicking "Browse..." and entering
- * the path into the file select dialog.
- *
- * var form = driver.findElement(By.css('form'));
- * var element = form.findElement(By.css('input[type=file]'));
- * element.sendKeys('/path/to/file.txt');
- * form.submit();
- *
- * For uploads to function correctly, the entered path must reference a file
- * on the _browser's_ machine, not the local machine running this script. When
- * running against a remote Selenium server, a {@link input.FileDetector}
- * may be used to transparently copy files to the remote machine before
- * attempting to upload them in the browser.
- *
- * __Note:__ On browsers where native keyboard events are not supported
- * (e.g. Firefox on OS X), key events will be synthesized. Special
- * punctuation keys will be synthesized according to a standard QWERTY en-us
- * keyboard layout.
- *
- * @param {...(number|string|!IThenable<(number|string)>)} var_args The
- * sequence of keys to type. Number keys may be referenced numerically or
- * by string (1 or '1'). All arguments will be joined into a single
- * sequence.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when all keys have been typed.
- */
- sendKeys(var_args) {
- let keys = Promise.all(Array.prototype.slice.call(arguments, 0)).
- then(keys => {
- let ret = [];
- keys.forEach(key => {
- let type = typeof key;
- if (type === 'number') {
- key = String(key);
- } else if (type !== 'string') {
- throw TypeError(
- 'each key must be a number of string; got ' + type);
- }
-
- // The W3C protocol requires keys to be specified as an array where
- // each element is a single key.
- ret.push.apply(ret, key.split(''));
- });
- return ret;
- });
-
- if (!this.driver_.fileDetector_) {
- return this.schedule_(
- new command.Command(command.Name.SEND_KEYS_TO_ELEMENT).
- setParameter('text', keys).
- setParameter('value', keys),
- 'WebElement.sendKeys()');
- }
-
- // Suppress unhandled rejection errors until the flow executes the command.
- keys.catch(function() {});
-
- var element = this;
- return this.getDriver().controlFlow().execute(function() {
- return keys.then(function(keys) {
- return element.driver_.fileDetector_
- .handleFile(element.driver_, keys.join(''));
- }).then(function(keys) {
- return element.schedule_(
- new command.Command(command.Name.SEND_KEYS_TO_ELEMENT).
- setParameter('text', keys).
- setParameter('value', keys.split('')),
- 'WebElement.sendKeys()');
- });
- }, 'WebElement.sendKeys()');
- }
-
- /**
- * Schedules a command to query for the tag/node name of this element.
- * @return {!promise.Thenable<string>} A promise that will be
- * resolved with the element's tag name.
- */
- getTagName() {
- return this.schedule_(
- new command.Command(command.Name.GET_ELEMENT_TAG_NAME),
- 'WebElement.getTagName()');
- }
-
- /**
- * Schedules a command to query for the computed style of the element
- * represented by this instance. If the element inherits the named style from
- * its parent, the parent will be queried for its value. Where possible, color
- * values will be converted to their hex representation (e.g. #00ff00 instead
- * of rgb(0, 255, 0)).
- *
- * _Warning:_ the value returned will be as the browser interprets it, so
- * it may be tricky to form a proper assertion.
- *
- * @param {string} cssStyleProperty The name of the CSS style property to look
- * up.
- * @return {!promise.Thenable<string>} A promise that will be
- * resolved with the requested CSS value.
- */
- getCssValue(cssStyleProperty) {
- var name = command.Name.GET_ELEMENT_VALUE_OF_CSS_PROPERTY;
- return this.schedule_(
- new command.Command(name).
- setParameter('propertyName', cssStyleProperty),
- 'WebElement.getCssValue(' + cssStyleProperty + ')');
- }
-
- /**
- * Schedules a command to query for the value of the given attribute of the
- * element. Will return the current value, even if it has been modified after
- * the page has been loaded. More exactly, this method will return the value
- * of the given attribute, unless that attribute is not present, in which case
- * the value of the property with the same name is returned. If neither value
- * is set, null is returned (for example, the "value" property of a textarea
- * element). The "style" attribute is converted as best can be to a
- * text representation with a trailing semi-colon. The following are deemed to
- * be "boolean" attributes and will return either "true" or null:
- *
- * async, autofocus, autoplay, checked, compact, complete, controls, declare,
- * defaultchecked, defaultselected, defer, disabled, draggable, ended,
- * formnovalidate, hidden, indeterminate, iscontenteditable, ismap, itemscope,
- * loop, multiple, muted, nohref, noresize, noshade, novalidate, nowrap, open,
- * paused, pubdate, readonly, required, reversed, scoped, seamless, seeking,
- * selected, spellcheck, truespeed, willvalidate
- *
- * Finally, the following commonly mis-capitalized attribute/property names
- * are evaluated as expected:
- *
- * - "class"
- * - "readonly"
- *
- * @param {string} attributeName The name of the attribute to query.
- * @return {!promise.Thenable<?string>} A promise that will be
- * resolved with the attribute's value. The returned value will always be
- * either a string or null.
- */
- getAttribute(attributeName) {
- return this.schedule_(
- new command.Command(command.Name.GET_ELEMENT_ATTRIBUTE).
- setParameter('name', attributeName),
- 'WebElement.getAttribute(' + attributeName + ')');
- }
-
- /**
- * Get the visible (i.e. not hidden by CSS) innerText of this element,
- * including sub-elements, without any leading or trailing whitespace.
- *
- * @return {!promise.Thenable<string>} A promise that will be
- * resolved with the element's visible text.
- */
- getText() {
- return this.schedule_(
- new command.Command(command.Name.GET_ELEMENT_TEXT),
- 'WebElement.getText()');
- }
-
- /**
- * Schedules a command to compute the size of this element's bounding box, in
- * pixels.
- * @return {!promise.Thenable<{width: number, height: number}>} A
- * promise that will be resolved with the element's size as a
- * {@code {width:number, height:number}} object.
- */
- getSize() {
- return this.schedule_(
- new command.Command(command.Name.GET_ELEMENT_SIZE),
- 'WebElement.getSize()');
- }
-
- /**
- * Schedules a command to compute the location of this element in page space.
- * @return {!promise.Thenable<{x: number, y: number}>} A promise that
- * will be resolved to the element's location as a
- * {@code {x:number, y:number}} object.
- */
- getLocation() {
- return this.schedule_(
- new command.Command(command.Name.GET_ELEMENT_LOCATION),
- 'WebElement.getLocation()');
- }
-
- /**
- * Schedules a command to query whether the DOM element represented by this
- * instance is enabled, as dictated by the {@code disabled} attribute.
- * @return {!promise.Thenable<boolean>} A promise that will be
- * resolved with whether this element is currently enabled.
- */
- isEnabled() {
- return this.schedule_(
- new command.Command(command.Name.IS_ELEMENT_ENABLED),
- 'WebElement.isEnabled()');
- }
-
- /**
- * Schedules a command to query whether this element is selected.
- * @return {!promise.Thenable<boolean>} A promise that will be
- * resolved with whether this element is currently selected.
- */
- isSelected() {
- return this.schedule_(
- new command.Command(command.Name.IS_ELEMENT_SELECTED),
- 'WebElement.isSelected()');
- }
-
- /**
- * Schedules a command to submit the form containing this element (or this
- * element if it is a FORM element). This command is a no-op if the element is
- * not contained in a form.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the form has been submitted.
- */
- submit() {
- return this.schedule_(
- new command.Command(command.Name.SUBMIT_ELEMENT),
- 'WebElement.submit()');
- }
-
- /**
- * Schedules a command to clear the `value` of this element. This command has
- * no effect if the underlying DOM element is neither a text INPUT element
- * nor a TEXTAREA element.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when the element has been cleared.
- */
- clear() {
- return this.schedule_(
- new command.Command(command.Name.CLEAR_ELEMENT),
- 'WebElement.clear()');
- }
-
- /**
- * Schedules a command to test whether this element is currently displayed.
- * @return {!promise.Thenable<boolean>} A promise that will be
- * resolved with whether this element is currently visible on the page.
- */
- isDisplayed() {
- return this.schedule_(
- new command.Command(command.Name.IS_ELEMENT_DISPLAYED),
- 'WebElement.isDisplayed()');
- }
-
- /**
- * Take a screenshot of the visible region encompassed by this element's
- * bounding rectangle.
- *
- * @param {boolean=} opt_scroll Optional argument that indicates whether the
- * element should be scrolled into view before taking a screenshot.
- * Defaults to false.
- * @return {!promise.Thenable<string>} A promise that will be
- * resolved to the screenshot as a base-64 encoded PNG.
- */
- takeScreenshot(opt_scroll) {
- var scroll = !!opt_scroll;
- return this.schedule_(
- new command.Command(command.Name.TAKE_ELEMENT_SCREENSHOT)
- .setParameter('scroll', scroll),
- 'WebElement.takeScreenshot(' + scroll + ')');
- }
-}
-
-
-/**
- * WebElementPromise is a promise that will be fulfilled with a WebElement.
- * This serves as a forward proxy on WebElement, allowing calls to be
- * scheduled without directly on this instance before the underlying
- * WebElement has been fulfilled. In other words, the following two statements
- * are equivalent:
- *
- * driver.findElement({id: 'my-button'}).click();
- * driver.findElement({id: 'my-button'}).then(function(el) {
- * return el.click();
- * });
- *
- * @implements {promise.CancellableThenable<!WebElement>}
- * @final
- */
-class WebElementPromise extends WebElement {
- /**
- * @param {!WebDriver} driver The parent WebDriver instance for this
- * element.
- * @param {!promise.Thenable<!WebElement>} el A promise
- * that will resolve to the promised element.
- */
- constructor(driver, el) {
- super(driver, 'unused');
-
- /**
- * Cancel operation is only supported if the wrapped thenable is also
- * cancellable.
- * @param {(string|Error)=} opt_reason
- * @override
- */
- this.cancel = function(opt_reason) {
- if (promise.CancellableThenable.isImplementation(el)) {
- /** @type {!promise.CancellableThenable} */(el).cancel(opt_reason);
- }
- };
-
- /** @override */
- this.then = el.then.bind(el);
-
- /** @override */
- this.catch = el.catch.bind(el);
-
- /**
- * Defers returning the element ID until the wrapped WebElement has been
- * resolved.
- * @override
- */
- this.getId = function() {
- return el.then(function(el) {
- return el.getId();
- });
- };
- }
-}
-promise.CancellableThenable.addImplementation(WebElementPromise);
-
-
-//////////////////////////////////////////////////////////////////////////////
-//
-// Alert
-//
-//////////////////////////////////////////////////////////////////////////////
-
-
-/**
- * Represents a modal dialog such as {@code alert}, {@code confirm}, or
- * {@code prompt}. Provides functions to retrieve the message displayed with
- * the alert, accept or dismiss the alert, and set the response text (in the
- * case of {@code prompt}).
- */
-class Alert {
- /**
- * @param {!WebDriver} driver The driver controlling the browser this alert
- * is attached to.
- * @param {string} text The message text displayed with this alert.
- */
- constructor(driver, text) {
- /** @private {!WebDriver} */
- this.driver_ = driver;
-
- /** @private {!promise.Thenable<string>} */
- this.text_ = driver.controlFlow().promise(resolve => resolve(text));
- }
-
- /**
- * Retrieves the message text displayed with this alert. For instance, if the
- * alert were opened with alert("hello"), then this would return "hello".
- *
- * @return {!promise.Thenable<string>} A promise that will be
- * resolved to the text displayed with this alert.
- */
- getText() {
- return this.text_;
- }
-
- /**
- * Sets the username and password in an alert prompting for credentials (such
- * as a Basic HTTP Auth prompt). This method will implicitly
- * {@linkplain #accept() submit} the dialog.
- *
- * @param {string} username The username to send.
- * @param {string} password The password to send.
- * @return {!promise.Thenable<void>} A promise that will be resolved when this
- * command has completed.
- */
- authenticateAs(username, password) {
- return this.driver_.schedule(
- new command.Command(command.Name.SET_ALERT_CREDENTIALS),
- 'WebDriver.switchTo().alert()'
- + `.authenticateAs("${username}", "${password}")`);
- }
-
- /**
- * Accepts this alert.
- *
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when this command has completed.
- */
- accept() {
- return this.driver_.schedule(
- new command.Command(command.Name.ACCEPT_ALERT),
- 'WebDriver.switchTo().alert().accept()');
- }
-
- /**
- * Dismisses this alert.
- *
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when this command has completed.
- */
- dismiss() {
- return this.driver_.schedule(
- new command.Command(command.Name.DISMISS_ALERT),
- 'WebDriver.switchTo().alert().dismiss()');
- }
-
- /**
- * Sets the response text on this alert. This command will return an error if
- * the underlying alert does not support response text (e.g. window.alert and
- * window.confirm).
- *
- * @param {string} text The text to set.
- * @return {!promise.Thenable<void>} A promise that will be resolved
- * when this command has completed.
- */
- sendKeys(text) {
- return this.driver_.schedule(
- new command.Command(command.Name.SET_ALERT_TEXT).
- setParameter('text', text),
- 'WebDriver.switchTo().alert().sendKeys(' + text + ')');
- }
-}
-
-
-/**
- * AlertPromise is a promise that will be fulfilled with an Alert. This promise
- * serves as a forward proxy on an Alert, allowing calls to be scheduled
- * directly on this instance before the underlying Alert has been fulfilled. In
- * other words, the following two statements are equivalent:
- *
- * driver.switchTo().alert().dismiss();
- * driver.switchTo().alert().then(function(alert) {
- * return alert.dismiss();
- * });
- *
- * @implements {promise.CancellableThenable<!webdriver.Alert>}
- * @final
- */
-class AlertPromise extends Alert {
- /**
- * @param {!WebDriver} driver The driver controlling the browser this
- * alert is attached to.
- * @param {!promise.Thenable<!Alert>} alert A thenable
- * that will be fulfilled with the promised alert.
- */
- constructor(driver, alert) {
- super(driver, 'unused');
-
- /**
- * Cancel operation is only supported if the wrapped thenable is also
- * cancellable.
- * @param {(string|Error)=} opt_reason
- * @override
- */
- this.cancel = function(opt_reason) {
- if (promise.CancellableThenable.isImplementation(alert)) {
- /** @type {!promise.CancellableThenable} */(alert).cancel(opt_reason);
- }
- };
-
- /** @override */
- this.then = alert.then.bind(alert);
-
- /** @override */
- this.catch = alert.catch.bind(alert);
-
- /**
- * Defer returning text until the promised alert has been resolved.
- * @override
- */
- this.getText = function() {
- return alert.then(function(alert) {
- return alert.getText();
- });
- };
-
- /**
- * Defers action until the alert has been located.
- * @override
- */
- this.authenticateAs = function(username, password) {
- return alert.then(function(alert) {
- return alert.authenticateAs(username, password);
- });
- };
-
- /**
- * Defers action until the alert has been located.
- * @override
- */
- this.accept = function() {
- return alert.then(function(alert) {
- return alert.accept();
- });
- };
-
- /**
- * Defers action until the alert has been located.
- * @override
- */
- this.dismiss = function() {
- return alert.then(function(alert) {
- return alert.dismiss();
- });
- };
-
- /**
- * Defers action until the alert has been located.
- * @override
- */
- this.sendKeys = function(text) {
- return alert.then(function(alert) {
- return alert.sendKeys(text);
- });
- };
- }
-}
-promise.CancellableThenable.addImplementation(AlertPromise);
-
-
-// PUBLIC API
-
-
-module.exports = {
- Alert: Alert,
- AlertPromise: AlertPromise,
- Condition: Condition,
- Logs: Logs,
- Navigation: Navigation,
- Options: Options,
- TargetLocator: TargetLocator,
- Timeouts: Timeouts,
- IWebDriver: IWebDriver,
- WebDriver: WebDriver,
- WebElement: WebElement,
- WebElementCondition: WebElementCondition,
- WebElementPromise: WebElementPromise,
- Window: Window
-};
diff --git a/node_modules/selenium-webdriver/net/index.js b/node_modules/selenium-webdriver/net/index.js
deleted file mode 100644
index 6c193db5c..000000000
--- a/node_modules/selenium-webdriver/net/index.js
+++ /dev/null
@@ -1,117 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var os = require('os');
-
-
-function getLoInterface() {
- var name;
- if (process.platform === 'darwin') {
- name = 'lo0';
- } else if (process.platform === 'linux') {
- name = 'lo';
- }
- return name ? os.networkInterfaces()[name] : null;
-}
-
-
-/**
- * Queries the system network interfaces for an IP address.
- * @param {boolean} loopback Whether to find a loopback address.
- * @param {string=} opt_family The IP family (IPv4 or IPv6). Defaults to IPv4.
- * @return {string} The located IP address or undefined.
- */
-function getAddress(loopback, opt_family) {
- var family = opt_family || 'IPv4';
- var addresses = [];
-
- var interfaces;
- if (loopback) {
- var lo = getLoInterface();
- interfaces = lo ? [lo] : null;
- }
- interfaces = interfaces || os.networkInterfaces();
- for (var key in interfaces) {
- if (!interfaces.hasOwnProperty(key)) {
- continue;
- }
-
- interfaces[key].forEach(function(ipAddress) {
- if (ipAddress.family === family &&
- ipAddress.internal === loopback) {
- addresses.push(ipAddress.address);
- }
- });
- }
- return addresses[0];
-}
-
-
-// PUBLIC API
-
-
-/**
- * Retrieves the external IP address for this host.
- * @param {string=} opt_family The IP family to retrieve. Defaults to "IPv4".
- * @return {string} The IP address or undefined if not available.
- */
-exports.getAddress = function(opt_family) {
- return getAddress(false, opt_family);
-};
-
-
-/**
- * Retrieves a loopback address for this machine.
- * @param {string=} opt_family The IP family to retrieve. Defaults to "IPv4".
- * @return {string} The IP address or undefined if not available.
- */
-exports.getLoopbackAddress = function(opt_family) {
- return getAddress(true, opt_family);
-};
-
-
-/**
- * Splits a hostport string, e.g. "www.example.com:80", into its component
- * parts.
- *
- * @param {string} hostport The string to split.
- * @return {{host: string, port: ?number}} A host and port. If no port is
- * present in the argument `hostport`, port is null.
- */
-exports.splitHostAndPort = function(hostport) {
- let lastIndex = hostport.lastIndexOf(':');
- if (lastIndex < 0) {
- return {host: hostport, port: null};
- }
-
- let firstIndex = hostport.indexOf(':');
- if (firstIndex != lastIndex && !hostport.includes('[')) {
- // Multiple colons but no brackets, so assume the string is an IPv6 address
- // with no port (e.g. "1234:5678:9:0:1234:5678:9:0").
- return {host: hostport, port: null};
- }
-
- let host = hostport.slice(0, lastIndex);
- if (host.startsWith('[') && host.endsWith(']')) {
- host = host.slice(1, -1);
- }
-
- let port = parseInt(hostport.slice(lastIndex + 1), 10);
- return {host, port};
-};
diff --git a/node_modules/selenium-webdriver/net/portprober.js b/node_modules/selenium-webdriver/net/portprober.js
deleted file mode 100644
index 311077b64..000000000
--- a/node_modules/selenium-webdriver/net/portprober.js
+++ /dev/null
@@ -1,205 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var exec = require('child_process').exec,
- fs = require('fs'),
- net = require('net');
-
-
-/**
- * The IANA suggested ephemeral port range.
- * @type {{min: number, max: number}}
- * @const
- * @see http://en.wikipedia.org/wiki/Ephemeral_ports
- */
-const DEFAULT_IANA_RANGE = {min: 49152, max: 65535};
-
-
-/**
- * The epheremal port range for the current system. Lazily computed on first
- * access.
- * @type {Promise.<{min: number, max: number}>}
- */
-var systemRange = null;
-
-
-/**
- * Computes the ephemeral port range for the current system. This is based on
- * http://stackoverflow.com/a/924337.
- * @return {!Promise<{min: number, max: number}>} A promise that will resolve to
- * the ephemeral port range of the current system.
- */
-function findSystemPortRange() {
- if (systemRange) {
- return systemRange;
- }
- var range = process.platform === 'win32' ?
- findWindowsPortRange() : findUnixPortRange();
- return systemRange = range.catch(function() {
- return DEFAULT_IANA_RANGE;
- });
-}
-
-
-/**
- * Executes a command and returns its output if it succeeds.
- * @param {string} cmd The command to execute.
- * @return {!Promise<string>} A promise that will resolve with the command's
- * stdout data.
- */
-function execute(cmd) {
- return new Promise((resolve, reject) => {
- exec(cmd, function(err, stdout) {
- if (err) {
- reject(err);
- } else {
- resolve(stdout);
- }
- });
- });
-}
-
-
-/**
- * Computes the ephemeral port range for a Unix-like system.
- * @return {!Promise<{min: number, max: number}>} A promise that will resolve
- * with the ephemeral port range on the current system.
- */
-function findUnixPortRange() {
- var cmd;
- if (process.platform === 'sunos') {
- cmd =
- '/usr/sbin/ndd /dev/tcp tcp_smallest_anon_port tcp_largest_anon_port';
- } else if (fs.existsSync('/proc/sys/net/ipv4/ip_local_port_range')) {
- // Linux
- cmd = 'cat /proc/sys/net/ipv4/ip_local_port_range';
- } else {
- cmd = 'sysctl net.inet.ip.portrange.first net.inet.ip.portrange.last' +
- ' | sed -e "s/.*:\\s*//"';
- }
-
- return execute(cmd).then(function(stdout) {
- if (!stdout || !stdout.length) return DEFAULT_IANA_RANGE;
- var range = stdout.trim().split(/\s+/).map(Number);
- if (range.some(isNaN)) return DEFAULT_IANA_RANGE;
- return {min: range[0], max: range[1]};
- });
-}
-
-
-/**
- * Computes the ephemeral port range for a Windows system.
- * @return {!Promise<{min: number, max: number}>} A promise that will resolve
- * with the ephemeral port range on the current system.
- */
-function findWindowsPortRange() {
- // First, check if we're running on XP. If this initial command fails,
- // we just fallback on the default IANA range.
- return execute('cmd.exe /c ver').then(function(stdout) {
- if (/Windows XP/.test(stdout)) {
- // TODO: Try to read these values from the registry.
- return {min: 1025, max: 5000};
- } else {
- return execute('netsh int ipv4 show dynamicport tcp').
- then(function(stdout) {
- /* > netsh int ipv4 show dynamicport tcp
- Protocol tcp Dynamic Port Range
- ---------------------------------
- Start Port : 49152
- Number of Ports : 16384
- */
- var range = stdout.split(/\n/).filter(function(line) {
- return /.*:\s*\d+/.test(line);
- }).map(function(line) {
- return Number(line.split(/:\s*/)[1]);
- });
-
- return {
- min: range[0],
- max: range[0] + range[1]
- };
- });
- }
- });
-}
-
-
-/**
- * Tests if a port is free.
- * @param {number} port The port to test.
- * @param {string=} opt_host The bound host to test the {@code port} against.
- * Defaults to {@code INADDR_ANY}.
- * @return {!Promise<boolean>} A promise that will resolve with whether the port
- * is free.
- */
-function isFree(port, opt_host) {
- return new Promise((resolve, reject) => {
- let server = net.createServer().on('error', function(e) {
- if (e.code === 'EADDRINUSE') {
- resolve(false);
- } else {
- reject(e);
- }
- });
-
- server.listen(port, opt_host, function() {
- server.close(() => resolve(true));
- });
- });
-}
-
-
-/**
- * @param {string=} opt_host The bound host to test the {@code port} against.
- * Defaults to {@code INADDR_ANY}.
- * @return {!Promise<number>} A promise that will resolve to a free port. If a
- * port cannot be found, the promise will be rejected.
- */
-function findFreePort(opt_host) {
- return findSystemPortRange().then(function(range) {
- var attempts = 0;
- return new Promise((resolve, reject) => {
- findPort();
-
- function findPort() {
- attempts += 1;
- if (attempts > 10) {
- reject(Error('Unable to find a free port'));
- }
-
- var port = Math.floor(
- Math.random() * (range.max - range.min) + range.min);
- isFree(port, opt_host).then(function(isFree) {
- if (isFree) {
- resolve(port);
- } else {
- findPort();
- }
- }, findPort);
- }
- });
- });
-}
-
-
-// PUBLIC API
-
-
-exports.findFreePort = findFreePort;
-exports.isFree = isFree;
diff --git a/node_modules/selenium-webdriver/node_modules/.bin/rimraf b/node_modules/selenium-webdriver/node_modules/.bin/rimraf
deleted file mode 120000
index 632d6da23..000000000
--- a/node_modules/selenium-webdriver/node_modules/.bin/rimraf
+++ /dev/null
@@ -1 +0,0 @@
-../../../rimraf/bin.js \ No newline at end of file
diff --git a/node_modules/selenium-webdriver/opera.js b/node_modules/selenium-webdriver/opera.js
deleted file mode 100644
index 5107bae4e..000000000
--- a/node_modules/selenium-webdriver/opera.js
+++ /dev/null
@@ -1,405 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Defines a {@linkplain Driver WebDriver} client for the
- * Opera web browser (v26+). Before using this module, you must download the
- * latest OperaDriver
- * [release](https://github.com/operasoftware/operachromiumdriver/releases) and
- * ensure it can be found on your system
- * [PATH](http://en.wikipedia.org/wiki/PATH_%28variable%29).
- *
- * There are three primary classes exported by this module:
- *
- * 1. {@linkplain ServiceBuilder}: configures the
- * {@link selenium-webdriver/remote.DriverService remote.DriverService}
- * that manages the
- * [OperaDriver](https://github.com/operasoftware/operachromiumdriver)
- * child process.
- *
- * 2. {@linkplain Options}: defines configuration options for each new Opera
- * session, such as which {@linkplain Options#setProxy proxy} to use,
- * what {@linkplain Options#addExtensions extensions} to install, or
- * what {@linkplain Options#addArguments command-line switches} to use when
- * starting the browser.
- *
- * 3. {@linkplain Driver}: the WebDriver client; each new instance will control
- * a unique browser session with a clean user profile (unless otherwise
- * configured through the {@link Options} class).
- *
- * By default, every Opera session will use a single driver service, which is
- * started the first time a {@link Driver} instance is created and terminated
- * when this process exits. The default service will inherit its environment
- * from the current process and direct all output to /dev/null. You may obtain
- * a handle to this default service using
- * {@link #getDefaultService getDefaultService()} and change its configuration
- * with {@link #setDefaultService setDefaultService()}.
- *
- * You may also create a {@link Driver} with its own driver service. This is
- * useful if you need to capture the server's log output for a specific session:
- *
- * var opera = require('selenium-webdriver/opera');
- *
- * var service = new opera.ServiceBuilder()
- * .loggingTo('/my/log/file.txt')
- * .enableVerboseLogging()
- * .build();
- *
- * var options = new opera.Options();
- * // configure browser options ...
- *
- * var driver = opera.Driver.createSession(options, service);
- *
- * Users should only instantiate the {@link Driver} class directly when they
- * need a custom driver service configuration (as shown above). For normal
- * operation, users should start Opera using the
- * {@link selenium-webdriver.Builder}.
- */
-
-'use strict';
-
-const fs = require('fs');
-
-const http = require('./http'),
- io = require('./io'),
- capabilities = require('./lib/capabilities'),
- promise = require('./lib/promise'),
- Symbols = require('./lib/symbols'),
- webdriver = require('./lib/webdriver'),
- portprober = require('./net/portprober'),
- remote = require('./remote');
-
-
-/**
- * Name of the OperaDriver executable.
- * @type {string}
- * @const
- */
-const OPERADRIVER_EXE =
- process.platform === 'win32' ? 'operadriver.exe' : 'operadriver';
-
-
-/**
- * Creates {@link remote.DriverService} instances that manages an
- * [OperaDriver](https://github.com/operasoftware/operachromiumdriver)
- * server in a child process.
- */
-class ServiceBuilder extends remote.DriverService.Builder {
- /**
- * @param {string=} opt_exe Path to the server executable to use. If omitted,
- * the builder will attempt to locate the operadriver on the current
- * PATH.
- * @throws {Error} If provided executable does not exist, or the operadriver
- * cannot be found on the PATH.
- */
- constructor(opt_exe) {
- let exe = opt_exe || io.findInPath(OPERADRIVER_EXE, true);
- if (!exe) {
- throw Error(
- 'The OperaDriver could not be found on the current PATH. Please ' +
- 'download the latest version of the OperaDriver from ' +
- 'https://github.com/operasoftware/operachromiumdriver/releases and ' +
- 'ensure it can be found on your PATH.');
- }
-
- super(exe);
- this.setLoopback(true);
- }
-
- /**
- * Sets the path of the log file the driver should log to. If a log file is
- * not specified, the driver will log to stderr.
- * @param {string} path Path of the log file to use.
- * @return {!ServiceBuilder} A self reference.
- */
- loggingTo(path) {
- return this.addArguments('--log-path=' + path);
- }
-
- /**
- * Enables verbose logging.
- * @return {!ServiceBuilder} A self reference.
- */
- enableVerboseLogging() {
- return this.addArguments('--verbose');
- }
-
- /**
- * Silence sthe drivers output.
- * @return {!ServiceBuilder} A self reference.
- */
- silent() {
- return this.addArguments('--silent');
- }
-}
-
-
-
-/** @type {remote.DriverService} */
-var defaultService = null;
-
-
-/**
- * Sets the default service to use for new OperaDriver instances.
- * @param {!remote.DriverService} service The service to use.
- * @throws {Error} If the default service is currently running.
- */
-function setDefaultService(service) {
- if (defaultService && defaultService.isRunning()) {
- throw Error(
- 'The previously configured OperaDriver service is still running. ' +
- 'You must shut it down before you may adjust its configuration.');
- }
- defaultService = service;
-}
-
-
-/**
- * Returns the default OperaDriver service. If such a service has not been
- * configured, one will be constructed using the default configuration for
- * a OperaDriver executable found on the system PATH.
- * @return {!remote.DriverService} The default OperaDriver service.
- */
-function getDefaultService() {
- if (!defaultService) {
- defaultService = new ServiceBuilder().build();
- }
- return defaultService;
-}
-
-
-/**
- * @type {string}
- * @const
- */
-var OPTIONS_CAPABILITY_KEY = 'chromeOptions';
-
-
-/**
- * Class for managing {@linkplain Driver OperaDriver} specific options.
- */
-class Options {
- constructor() {
- /** @private {!Array.<string>} */
- this.args_ = [];
-
- /** @private {?string} */
- this.binary_ = null;
-
- /** @private {!Array.<(string|!Buffer)>} */
- this.extensions_ = [];
-
- /** @private {./lib/logging.Preferences} */
- this.logPrefs_ = null;
-
- /** @private {?capabilities.ProxyConfig} */
- this.proxy_ = null;
- }
-
- /**
- * Extracts the OperaDriver specific options from the given capabilities
- * object.
- * @param {!capabilities.Capabilities} caps The capabilities object.
- * @return {!Options} The OperaDriver options.
- */
- static fromCapabilities(caps) {
- var options;
- var o = caps.get(OPTIONS_CAPABILITY_KEY);
- if (o instanceof Options) {
- options = o;
- } else if (o) {
- options = new Options()
- .addArguments(o.args || [])
- .addExtensions(o.extensions || [])
- .setOperaBinaryPath(o.binary);
- } else {
- options = new Options;
- }
-
- if (caps.has(capabilities.Capability.PROXY)) {
- options.setProxy(caps.get(capabilities.Capability.PROXY));
- }
-
- if (caps.has(capabilities.Capability.LOGGING_PREFS)) {
- options.setLoggingPrefs(
- caps.get(capabilities.Capability.LOGGING_PREFS));
- }
-
- return options;
- }
-
- /**
- * Add additional command line arguments to use when launching the Opera
- * browser. Each argument may be specified with or without the "--" prefix
- * (e.g. "--foo" and "foo"). Arguments with an associated value should be
- * delimited by an "=": "foo=bar".
- * @param {...(string|!Array.<string>)} var_args The arguments to add.
- * @return {!Options} A self reference.
- */
- addArguments(var_args) {
- this.args_ = this.args_.concat.apply(this.args_, arguments);
- return this;
- }
-
- /**
- * Add additional extensions to install when launching Opera. Each extension
- * should be specified as the path to the packed CRX file, or a Buffer for an
- * extension.
- * @param {...(string|!Buffer|!Array.<(string|!Buffer)>)} var_args The
- * extensions to add.
- * @return {!Options} A self reference.
- */
- addExtensions(var_args) {
- this.extensions_ = this.extensions_.concat.apply(
- this.extensions_, arguments);
- return this;
- }
-
- /**
- * Sets the path to the Opera binary to use. On Mac OS X, this path should
- * reference the actual Opera executable, not just the application binary. The
- * binary path be absolute or relative to the operadriver server executable, but
- * it must exist on the machine that will launch Opera.
- *
- * @param {string} path The path to the Opera binary to use.
- * @return {!Options} A self reference.
- */
- setOperaBinaryPath(path) {
- this.binary_ = path;
- return this;
- }
-
- /**
- * Sets the logging preferences for the new session.
- * @param {!./lib/logging.Preferences} prefs The logging preferences.
- * @return {!Options} A self reference.
- */
- setLoggingPrefs(prefs) {
- this.logPrefs_ = prefs;
- return this;
- }
-
- /**
- * Sets the proxy settings for the new session.
- * @param {capabilities.ProxyConfig} proxy The proxy configuration to use.
- * @return {!Options} A self reference.
- */
- setProxy(proxy) {
- this.proxy_ = proxy;
- return this;
- }
-
- /**
- * Converts this options instance to a {@link capabilities.Capabilities}
- * object.
- * @param {capabilities.Capabilities=} opt_capabilities The capabilities to
- * merge these options into, if any.
- * @return {!capabilities.Capabilities} The capabilities.
- */
- toCapabilities(opt_capabilities) {
- var caps = opt_capabilities || capabilities.Capabilities.opera();
- caps.
- set(capabilities.Capability.PROXY, this.proxy_).
- set(capabilities.Capability.LOGGING_PREFS, this.logPrefs_).
- set(OPTIONS_CAPABILITY_KEY, this);
- return caps;
- }
-
- /**
- * Converts this instance to its JSON wire protocol representation. Note this
- * function is an implementation not intended for general use.
- * @return {!Object} The JSON wire protocol representation of this instance.
- */
- [Symbols.serialize]() {
- var json = {
- args: this.args_,
- extensions: this.extensions_.map(function(extension) {
- if (Buffer.isBuffer(extension)) {
- return extension.toString('base64');
- }
- return io.read(/** @type {string} */(extension))
- .then(buffer => buffer.toString('base64'));
- })
- };
- if (this.binary_) {
- json.binary = this.binary_;
- }
- return json;
- }
-}
-
-
-/**
- * Creates a new WebDriver client for Opera.
- */
-class Driver extends webdriver.WebDriver {
- /**
- * Creates a new session for Opera.
- *
- * @param {(capabilities.Capabilities|Options)=} opt_config The configuration
- * options.
- * @param {remote.DriverService=} opt_service The session to use; will use
- * the {@link getDefaultService default service} by default.
- * @param {promise.ControlFlow=} opt_flow The control flow to use,
- * or {@code null} to use the currently active flow.
- * @return {!Driver} A new driver instance.
- */
- static createSession(opt_config, opt_service, opt_flow) {
- var service = opt_service || getDefaultService();
- var client = service.start().then(url => new http.HttpClient(url));
- var executor = new http.Executor(client);
-
- var caps =
- opt_config instanceof Options ? opt_config.toCapabilities() :
- (opt_config || capabilities.Capabilities.opera());
-
- // On Linux, the OperaDriver does not look for Opera on the PATH, so we
- // must explicitly find it. See: operachromiumdriver #9.
- if (process.platform === 'linux') {
- var options = Options.fromCapabilities(caps);
- if (!options.binary_) {
- let exe = io.findInPath('opera', true);
- if (!exe) {
- throw Error(
- 'The opera executable could not be found on the current PATH');
- }
- options.setOperaBinaryPath(exe);
- }
- caps = options.toCapabilities(caps);
- }
-
- return /** @type {!Driver} */(
- webdriver.WebDriver.createSession(executor, caps, opt_flow, this));
- }
-
- /**
- * This function is a no-op as file detectors are not supported by this
- * implementation.
- * @override
- */
- setFileDetector() {}
-}
-
-
-// PUBLIC API
-
-
-exports.Driver = Driver;
-exports.Options = Options;
-exports.ServiceBuilder = ServiceBuilder;
-exports.getDefaultService = getDefaultService;
-exports.setDefaultService = setDefaultService;
diff --git a/node_modules/selenium-webdriver/package.json b/node_modules/selenium-webdriver/package.json
deleted file mode 100644
index 729871330..000000000
--- a/node_modules/selenium-webdriver/package.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "selenium-webdriver",
- "version": "3.4.0",
- "description": "The official WebDriver JavaScript bindings from the Selenium project",
- "license": "Apache-2.0",
- "keywords": [
- "automation",
- "selenium",
- "testing",
- "webdriver",
- "webdriverjs"
- ],
- "homepage": "https://github.com/SeleniumHQ/selenium",
- "bugs": {
- "url": "https://github.com/SeleniumHQ/selenium/issues"
- },
- "main": "./index",
- "repository": {
- "type": "git",
- "url": "https://github.com/SeleniumHQ/selenium.git"
- },
- "engines": {
- "node": ">= 6.9.0"
- },
- "dependencies": {
- "adm-zip": "^0.4.7",
- "rimraf": "^2.5.4",
- "tmp": "0.0.30",
- "xml2js": "^0.4.17"
- },
- "devDependencies": {
- "express": "^4.14.0",
- "mocha": "^3.1.2",
- "multer": "^1.2.0",
- "promises-aplus-tests": "^2.1.2",
- "serve-index": "^1.8.0",
- "sinon": "^1.17.6"
- },
- "scripts": {
- "test": "mocha -t 600000 --recursive test"
- }
-}
diff --git a/node_modules/selenium-webdriver/phantomjs.js b/node_modules/selenium-webdriver/phantomjs.js
deleted file mode 100644
index baa7cb378..000000000
--- a/node_modules/selenium-webdriver/phantomjs.js
+++ /dev/null
@@ -1,282 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Defines a {@linkplain Driver WebDriver} client for the
- * PhantomJS web browser. By default, it is expected that the PhantomJS
- * executable can be located on your
- * [PATH](https://en.wikipedia.org/wiki/PATH_(variable))
- *
- * __Using a Custom PhantomJS Binary__
- *
- * If you have PhantomJS.exe placed somewhere other than the root of your
- * working directory, you can build a custom Capability and attach the
- * executable's location to the Capability
- *
- * For example, if you're using the
- * [phantomjs-prebuilt](https://www.npmjs.com/package/phantomjs-prebuilt) module
- * from npm:
- *
- * //setup custom phantomJS capability
- * var phantomjs_exe = require('phantomjs-prebuilt').path;
- * var customPhantom = selenium.Capabilities.phantomjs();
- * customPhantom.set("phantomjs.binary.path", phantomjs_exe);
- * //build custom phantomJS driver
- * var driver = new selenium.Builder().
- * withCapabilities(customPhantom).
- * build();
- *
- */
-
-'use strict';
-
-const fs = require('fs');
-
-const http = require('./http'),
- io = require('./io'),
- capabilities = require('./lib/capabilities'),
- command = require('./lib/command'),
- logging = require('./lib/logging'),
- promise = require('./lib/promise'),
- webdriver = require('./lib/webdriver'),
- portprober = require('./net/portprober'),
- remote = require('./remote');
-
-
-/**
- * Name of the PhantomJS executable.
- * @type {string}
- * @const
- */
-const PHANTOMJS_EXE =
- process.platform === 'win32' ? 'phantomjs.exe' : 'phantomjs';
-
-
-/**
- * Capability that designates the location of the PhantomJS executable to use.
- * @type {string}
- * @const
- */
-const BINARY_PATH_CAPABILITY = 'phantomjs.binary.path';
-
-
-/**
- * Capability that designates the CLI arguments to pass to PhantomJS.
- * @type {string}
- * @const
- */
-const CLI_ARGS_CAPABILITY = 'phantomjs.cli.args';
-
-
-/**
- * Custom command names supported by PhantomJS.
- * @enum {string}
- */
-const Command = {
- EXECUTE_PHANTOM_SCRIPT: 'executePhantomScript'
-};
-
-
-/**
- * Finds the PhantomJS executable.
- * @param {string=} opt_exe Path to the executable to use.
- * @return {string} The located executable.
- * @throws {Error} If the executable cannot be found on the PATH, or if the
- * provided executable path does not exist.
- */
-function findExecutable(opt_exe) {
- var exe = opt_exe || io.findInPath(PHANTOMJS_EXE, true);
- if (!exe) {
- throw Error(
- 'The PhantomJS executable could not be found on the current PATH. ' +
- 'Please download the latest version from ' +
- 'http://phantomjs.org/download.html and ensure it can be found on ' +
- 'your PATH. For more information, see ' +
- 'https://github.com/ariya/phantomjs/wiki');
- }
- if (!fs.existsSync(exe)) {
- throw Error('File does not exist: ' + exe);
- }
- return exe;
-}
-
-
-/**
- * Maps WebDriver logging level name to those recognised by PhantomJS.
- * @const {!Map<string, string>}
- */
-const WEBDRIVER_TO_PHANTOMJS_LEVEL = new Map([
- [logging.Level.ALL.name, 'DEBUG'],
- [logging.Level.DEBUG.name, 'DEBUG'],
- [logging.Level.INFO.name, 'INFO'],
- [logging.Level.WARNING.name, 'WARN'],
- [logging.Level.SEVERE.name, 'ERROR']]);
-
-
-/**
- * Creates a command executor with support for PhantomJS' custom commands.
- * @param {!Promise<string>} url The server's URL.
- * @return {!command.Executor} The new command executor.
- */
-function createExecutor(url) {
- let client = url.then(url => new http.HttpClient(url));
- let executor = new http.Executor(client);
-
- executor.defineCommand(
- Command.EXECUTE_PHANTOM_SCRIPT,
- 'POST', '/session/:sessionId/phantom/execute');
-
- return executor;
-}
-
-/**
- * Creates a new WebDriver client for PhantomJS.
- */
-class Driver extends webdriver.WebDriver {
- /**
- * Creates a new PhantomJS session.
- *
- * @param {capabilities.Capabilities=} opt_capabilities The desired
- * capabilities.
- * @param {promise.ControlFlow=} opt_flow The control flow to use,
- * or {@code null} to use the currently active flow.
- * @param {string=} opt_logFile Path to the log file for the phantomjs
- * executable's output. For convenience, this may be set at runtime with
- * the `SELENIUM_PHANTOMJS_LOG` environment variable.
- * @return {!Driver} A new driver reference.
- */
- static createSession(opt_capabilities, opt_flow, opt_logFile) {
- // TODO: add an Options class for consistency with the other driver types.
-
- var caps = opt_capabilities || capabilities.Capabilities.phantomjs();
- var exe = findExecutable(caps.get(BINARY_PATH_CAPABILITY));
- var args = [];
-
- var logPrefs = caps.get(capabilities.Capability.LOGGING_PREFS);
- if (logPrefs instanceof logging.Preferences) {
- logPrefs = logPrefs.toJSON();
- }
-
- if (logPrefs && logPrefs[logging.Type.DRIVER]) {
- let level = WEBDRIVER_TO_PHANTOMJS_LEVEL.get(
- logPrefs[logging.Type.DRIVER]);
- if (level) {
- args.push('--webdriver-loglevel=' + level);
- }
- }
-
- opt_logFile = process.env['SELENIUM_PHANTOMJS_LOG'] || opt_logFile;
- if (typeof opt_logFile === 'string') {
- args.push('--webdriver-logfile=' + opt_logFile);
- }
-
- var proxy = caps.get(capabilities.Capability.PROXY);
- if (proxy) {
- switch (proxy.proxyType) {
- case 'manual':
- if (proxy.httpProxy) {
- args.push(
- '--proxy-type=http',
- '--proxy=' + proxy.httpProxy);
- console.log(args);
- }
- break;
- case 'pac':
- throw Error('PhantomJS does not support Proxy PAC files');
- case 'system':
- args.push('--proxy-type=system');
- break;
- case 'direct':
- args.push('--proxy-type=none');
- break;
- }
- }
- args = args.concat(caps.get(CLI_ARGS_CAPABILITY) || []);
-
- var port = portprober.findFreePort();
- var service = new remote.DriverService(exe, {
- port: port,
- args: Promise.resolve(port).then(function(port) {
- args.push('--webdriver=' + port);
- return args;
- })
- });
-
- var executor = createExecutor(service.start());
- return /** @type {!Driver} */(webdriver.WebDriver.createSession(
- executor, caps, opt_flow, this, () => service.kill()));
- }
-
- /**
- * This function is a no-op as file detectors are not supported by this
- * implementation.
- * @override
- */
- setFileDetector() {}
-
- /**
- * Executes a PhantomJS fragment. This method is similar to
- * {@link #executeScript}, except it exposes the
- * <a href="http://phantomjs.org/api/">PhantomJS API</a> to the injected
- * script.
- *
- * <p>The injected script will execute in the context of PhantomJS's
- * {@code page} variable. If a page has not been loaded before calling this
- * method, one will be created.</p>
- *
- * <p>Be sure to wrap callback definitions in a try/catch block, as failures
- * may cause future WebDriver calls to fail.</p>
- *
- * <p>Certain callbacks are used by GhostDriver (the PhantomJS WebDriver
- * implementation) and overriding these may cause the script to fail. It is
- * recommended that you check for existing callbacks before defining your own.
- * </p>
- *
- * As with {@link #executeScript}, the injected script may be defined as
- * a string for an anonymous function body (e.g. "return 123;"), or as a
- * function. If a function is provided, it will be decompiled to its original
- * source. Note that injecting functions is provided as a convenience to
- * simplify defining complex scripts. Care must be taken that the function
- * only references variables that will be defined in the page's scope and
- * that the function does not override {@code Function.prototype.toString}
- * (overriding toString() will interfere with how the function is
- * decompiled.
- *
- * @param {(string|!Function)} script The script to execute.
- * @param {...*} var_args The arguments to pass to the script.
- * @return {!promise.Thenable<T>} A promise that resolve to the
- * script's return value.
- * @template T
- */
- executePhantomJS(script, var_args) {
- if (typeof script === 'function') {
- script = 'return (' + script + ').apply(this, arguments);';
- }
- var args = arguments.length > 1
- ? Array.prototype.slice.call(arguments, 1) : [];
- return this.schedule(
- new command.Command(Command.EXECUTE_PHANTOM_SCRIPT)
- .setParameter('script', script)
- .setParameter('args', args),
- 'Driver.executePhantomJS()');
- }
-}
-
-
-// PUBLIC API
-
-exports.Driver = Driver;
diff --git a/node_modules/selenium-webdriver/proxy.js b/node_modules/selenium-webdriver/proxy.js
deleted file mode 100644
index 80e52a7a8..000000000
--- a/node_modules/selenium-webdriver/proxy.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Proxy module alias.
- *
- * var webdriver = require('selenium-webdriver'),
- * proxy = require('selenium-webdriver/proxy');
- *
- * var driver = new webdriver.Builder()
- * .withCapabilities(webdriver.Capabilities.chrome())
- * .setProxy(proxy.manual({http: 'host:1234'}))
- * .build();
- */
-
-'use strict';
-
-module.exports = require('./lib/proxy');
diff --git a/node_modules/selenium-webdriver/remote/index.js b/node_modules/selenium-webdriver/remote/index.js
deleted file mode 100644
index cc0b66462..000000000
--- a/node_modules/selenium-webdriver/remote/index.js
+++ /dev/null
@@ -1,602 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const AdmZip = require('adm-zip');
-const fs = require('fs');
-const path = require('path');
-const url = require('url');
-const util = require('util');
-
-const httpUtil = require('../http/util');
-const io = require('../io');
-const exec = require('../io/exec');
-const cmd = require('../lib/command');
-const input = require('../lib/input');
-const promise = require('../lib/promise');
-const webdriver = require('../lib/webdriver');
-const net = require('../net');
-const portprober = require('../net/portprober');
-
-
-/**
- * @typedef {(string|!Array<string|number|!stream.Stream|null|undefined>)}
- */
-var StdIoOptions;
-
-
-/**
- * @typedef {(string|!IThenable<string>)}
- */
-var CommandLineFlag;
-
-
-/**
- * A record object that defines the configuration options for a DriverService
- * instance.
- *
- * @record
- */
-function ServiceOptions() {}
-
-/**
- * Whether the service should only be accessed on this host's loopback address.
- *
- * @type {(boolean|undefined)}
- */
-ServiceOptions.prototype.loopback;
-
-/**
- * The host name to access the server on. If this option is specified, the
- * {@link #loopback} option will be ignored.
- *
- * @type {(string|undefined)}
- */
-ServiceOptions.prototype.hostname;
-
-/**
- * The port to start the server on (must be > 0). If the port is provided as a
- * promise, the service will wait for the promise to resolve before starting.
- *
- * @type {(number|!IThenable<number>)}
- */
-ServiceOptions.prototype.port;
-
-/**
- * The arguments to pass to the service. If a promise is provided, the service
- * will wait for it to resolve before starting.
- *
- * @type {!(Array<CommandLineFlag>|IThenable<!Array<CommandLineFlag>>)}
- */
-ServiceOptions.prototype.args;
-
-/**
- * The base path on the server for the WebDriver wire protocol (e.g. '/wd/hub').
- * Defaults to '/'.
- *
- * @type {(string|undefined|null)}
- */
-ServiceOptions.prototype.path;
-
-/**
- * The environment variables that should be visible to the server process.
- * Defaults to inheriting the current process's environment.
- *
- * @type {(Object<string, string>|undefined)}
- */
-ServiceOptions.prototype.env;
-
-/**
- * IO configuration for the spawned server process. For more information, refer
- * to the documentation of `child_process.spawn`.
- *
- * @type {(StdIoOptions|undefined)}
- * @see https://nodejs.org/dist/latest-v4.x/docs/api/child_process.html#child_process_options_stdio
- */
-ServiceOptions.prototype.stdio;
-
-
-/**
- * Manages the life and death of a native executable WebDriver server.
- *
- * It is expected that the driver server implements the
- * https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol.
- * Furthermore, the managed server should support multiple concurrent sessions,
- * so that this class may be reused for multiple clients.
- */
-class DriverService {
- /**
- * @param {string} executable Path to the executable to run.
- * @param {!ServiceOptions} options Configuration options for the service.
- */
- constructor(executable, options) {
- /** @private {string} */
- this.executable_ = executable;
-
- /** @private {boolean} */
- this.loopbackOnly_ = !!options.loopback;
-
- /** @private {(string|undefined)} */
- this.hostname_ = options.hostname;
-
- /** @private {(number|!IThenable<number>)} */
- this.port_ = options.port;
-
- /**
- * @private {!(Array<CommandLineFlag>|
- * IThenable<!Array<CommandLineFlag>>)}
- */
- this.args_ = options.args;
-
- /** @private {string} */
- this.path_ = options.path || '/';
-
- /** @private {!Object<string, string>} */
- this.env_ = options.env || process.env;
-
- /**
- * @private {(string|!Array<string|number|!stream.Stream|null|undefined>)}
- */
- this.stdio_ = options.stdio || 'ignore';
-
- /**
- * A promise for the managed subprocess, or null if the server has not been
- * started yet. This promise will never be rejected.
- * @private {Promise<!exec.Command>}
- */
- this.command_ = null;
-
- /**
- * Promise that resolves to the server's address or null if the server has
- * not been started. This promise will be rejected if the server terminates
- * before it starts accepting WebDriver requests.
- * @private {Promise<string>}
- */
- this.address_ = null;
- }
-
- /**
- * @return {!Promise<string>} A promise that resolves to the server's address.
- * @throws {Error} If the server has not been started.
- */
- address() {
- if (this.address_) {
- return this.address_;
- }
- throw Error('Server has not been started.');
- }
-
- /**
- * Returns whether the underlying process is still running. This does not take
- * into account whether the process is in the process of shutting down.
- * @return {boolean} Whether the underlying service process is running.
- */
- isRunning() {
- return !!this.address_;
- }
-
- /**
- * Starts the server if it is not already running.
- * @param {number=} opt_timeoutMs How long to wait, in milliseconds, for the
- * server to start accepting requests. Defaults to 30 seconds.
- * @return {!Promise<string>} A promise that will resolve to the server's base
- * URL when it has started accepting requests. If the timeout expires
- * before the server has started, the promise will be rejected.
- */
- start(opt_timeoutMs) {
- if (this.address_) {
- return this.address_;
- }
-
- var timeout = opt_timeoutMs || DriverService.DEFAULT_START_TIMEOUT_MS;
- var self = this;
-
- let resolveCommand;
- this.command_ = new Promise(resolve => resolveCommand = resolve);
-
- this.address_ = new Promise((resolveAddress, rejectAddress) => {
- resolveAddress(Promise.resolve(this.port_).then(port => {
- if (port <= 0) {
- throw Error('Port must be > 0: ' + port);
- }
-
- return resolveCommandLineFlags(this.args_).then(args => {
- var command = exec(self.executable_, {
- args: args,
- env: self.env_,
- stdio: self.stdio_
- });
-
- resolveCommand(command);
-
- var earlyTermination = command.result().then(function(result) {
- var error = result.code == null ?
- Error('Server was killed with ' + result.signal) :
- Error('Server terminated early with status ' + result.code);
- rejectAddress(error);
- self.address_ = null;
- self.command_ = null;
- throw error;
- });
-
- var hostname = self.hostname_;
- if (!hostname) {
- hostname = !self.loopbackOnly_ && net.getAddress()
- || net.getLoopbackAddress();
- }
-
- var serverUrl = url.format({
- protocol: 'http',
- hostname: hostname,
- port: port + '',
- pathname: self.path_
- });
-
- return new Promise((fulfill, reject) => {
- let cancelToken =
- earlyTermination.catch(e => reject(Error(e.message)));
-
- httpUtil.waitForServer(serverUrl, timeout, cancelToken)
- .then(_ => fulfill(serverUrl), err => {
- if (err instanceof promise.CancellationError) {
- fulfill(serverUrl);
- } else {
- reject(err);
- }
- });
- });
- });
- }));
- });
-
- return this.address_;
- }
-
- /**
- * Stops the service if it is not currently running. This function will kill
- * the server immediately. To synchronize with the active control flow, use
- * {@link #stop()}.
- * @return {!Promise} A promise that will be resolved when the server has been
- * stopped.
- */
- kill() {
- if (!this.address_ || !this.command_) {
- return Promise.resolve(); // Not currently running.
- }
- return this.command_.then(function(command) {
- command.kill('SIGTERM');
- });
- }
-
- /**
- * Schedules a task in the current control flow to stop the server if it is
- * currently running.
- * @return {!promise.Thenable} A promise that will be resolved when
- * the server has been stopped.
- */
- stop() {
- return promise.controlFlow().execute(this.kill.bind(this));
- }
-}
-
-
-/**
- * @param {!(Array<CommandLineFlag>|IThenable<!Array<CommandLineFlag>>)} args
- * @return {!Promise<!Array<string>>}
- */
-function resolveCommandLineFlags(args) {
- // Resolve the outer array, then the individual flags.
- return Promise.resolve(args)
- .then(/** !Array<CommandLineFlag> */args => Promise.all(args));
-}
-
-
-/**
- * The default amount of time, in milliseconds, to wait for the server to
- * start.
- * @const {number}
- */
-DriverService.DEFAULT_START_TIMEOUT_MS = 30 * 1000;
-
-
-/**
- * Creates {@link DriverService} objects that manage a WebDriver server in a
- * child process.
- */
-DriverService.Builder = class {
- /**
- * @param {string} exe Path to the executable to use. This executable must
- * accept the `--port` flag for defining the port to start the server on.
- * @throws {Error} If the provided executable path does not exist.
- */
- constructor(exe) {
- if (!fs.existsSync(exe)) {
- throw Error(`The specified executable path does not exist: ${exe}`);
- }
-
- /** @private @const {string} */
- this.exe_ = exe;
-
- /** @private {!ServiceOptions} */
- this.options_ = {
- args: [],
- port: 0,
- env: null,
- stdio: 'ignore'
- };
- }
-
- /**
- * Define additional command line arguments to use when starting the server.
- *
- * @param {...CommandLineFlag} var_args The arguments to include.
- * @return {!THIS} A self reference.
- * @this {THIS}
- * @template THIS
- */
- addArguments(var_args) {
- let args = Array.prototype.slice.call(arguments, 0);
- this.options_.args = this.options_.args.concat(args);
- return this;
- }
-
- /**
- * Sets the host name to access the server on. If specified, the
- * {@linkplain #setLoopback() loopback} setting will be ignored.
- *
- * @param {string} hostname
- * @return {!DriverService.Builder} A self reference.
- */
- setHostname(hostname) {
- this.options_.hostname = hostname;
- return this;
- }
-
- /**
- * Sets whether the service should be accessed at this host's loopback
- * address.
- *
- * @param {boolean} loopback
- * @return {!DriverService.Builder} A self reference.
- */
- setLoopback(loopback) {
- this.options_.loopback = loopback;
- return this;
- }
-
- /**
- * Sets the base path for WebDriver REST commands (e.g. "/wd/hub").
- * By default, the driver will accept commands relative to "/".
- *
- * @param {?string} basePath The base path to use, or `null` to use the
- * default.
- * @return {!DriverService.Builder} A self reference.
- */
- setPath(basePath) {
- this.options_.path = basePath;
- return this;
- }
-
- /**
- * Sets the port to start the server on.
- *
- * @param {number} port The port to use, or 0 for any free port.
- * @return {!DriverService.Builder} A self reference.
- * @throws {Error} If an invalid port is specified.
- */
- setPort(port) {
- if (port < 0) {
- throw Error(`port must be >= 0: ${port}`);
- }
- this.options_.port = port;
- return this;
- }
-
- /**
- * Defines the environment to start the server under. This setting will be
- * inherited by every browser session started by the server. By default, the
- * server will inherit the enviroment of the current process.
- *
- * @param {(Map<string, string>|Object<string, string>|null)} env The desired
- * environment to use, or `null` if the server should inherit the
- * current environment.
- * @return {!DriverService.Builder} A self reference.
- */
- setEnvironment(env) {
- if (env instanceof Map) {
- let tmp = {};
- env.forEach((value, key) => tmp[key] = value);
- env = tmp;
- }
- this.options_.env = env;
- return this;
- }
-
- /**
- * IO configuration for the spawned server process. For more information,
- * refer to the documentation of `child_process.spawn`.
- *
- * @param {StdIoOptions} config The desired IO configuration.
- * @return {!DriverService.Builder} A self reference.
- * @see https://nodejs.org/dist/latest-v4.x/docs/api/child_process.html#child_process_options_stdio
- */
- setStdio(config) {
- this.options_.stdio = config;
- return this;
- }
-
- /**
- * Creates a new DriverService using this instance's current configuration.
- *
- * @return {!DriverService} A new driver service.
- */
- build() {
- let port = this.options_.port || portprober.findFreePort();
- let args = Promise.resolve(port).then(port => {
- return this.options_.args.concat('--port=' + port);
- });
-
- let options =
- /** @type {!ServiceOptions} */
- (Object.assign({}, this.options_, {args, port}));
- return new DriverService(this.exe_, options);
- }
-};
-
-
-/**
- * Manages the life and death of the
- * <a href="http://selenium-release.storage.googleapis.com/index.html">
- * standalone Selenium server</a>.
- */
-class SeleniumServer extends DriverService {
- /**
- * @param {string} jar Path to the Selenium server jar.
- * @param {SeleniumServer.Options=} opt_options Configuration options for the
- * server.
- * @throws {Error} If the path to the Selenium jar is not specified or if an
- * invalid port is specified.
- */
- constructor(jar, opt_options) {
- if (!jar) {
- throw Error('Path to the Selenium jar not specified');
- }
-
- var options = opt_options || {};
-
- if (options.port < 0) {
- throw Error('Port must be >= 0: ' + options.port);
- }
-
- let port = options.port || portprober.findFreePort();
- let args = Promise.all([port, options.jvmArgs || [], options.args || []])
- .then(resolved => {
- let port = resolved[0];
- let jvmArgs = resolved[1];
- let args = resolved[2];
- return jvmArgs.concat('-jar', jar, '-port', port).concat(args);
- });
-
- let java = 'java';
- if (process.env['JAVA_HOME']) {
- java = path.join(process.env['JAVA_HOME'], 'bin/java');
- }
-
- super(java, {
- loopback: options.loopback,
- port: port,
- args: args,
- path: '/wd/hub',
- env: options.env,
- stdio: options.stdio
- });
- }
-}
-
-
-/**
- * Options for the Selenium server:
- *
- * - `loopback` - Whether the server should only be accessed on this host's
- * loopback address.
- * - `port` - The port to start the server on (must be > 0). If the port is
- * provided as a promise, the service will wait for the promise to resolve
- * before starting.
- * - `args` - The arguments to pass to the service. If a promise is provided,
- * the service will wait for it to resolve before starting.
- * - `jvmArgs` - The arguments to pass to the JVM. If a promise is provided,
- * the service will wait for it to resolve before starting.
- * - `env` - The environment variables that should be visible to the server
- * process. Defaults to inheriting the current process's environment.
- * - `stdio` - IO configuration for the spawned server process. For more
- * information, refer to the documentation of `child_process.spawn`.
- *
- * @typedef {{
- * loopback: (boolean|undefined),
- * port: (number|!promise.Promise<number>),
- * args: !(Array<string>|promise.Promise<!Array<string>>),
- * jvmArgs: (!Array<string>|
- * !promise.Promise<!Array<string>>|
- * undefined),
- * env: (!Object<string, string>|undefined),
- * stdio: (string|!Array<string|number|!stream.Stream|null|undefined>|
- * undefined)
- * }}
- */
-SeleniumServer.Options;
-
-
-
-/**
- * A {@link webdriver.FileDetector} that may be used when running
- * against a remote
- * [Selenium server](http://selenium-release.storage.googleapis.com/index.html).
- *
- * When a file path on the local machine running this script is entered with
- * {@link webdriver.WebElement#sendKeys WebElement#sendKeys}, this file detector
- * will transfer the specified file to the Selenium server's host; the sendKeys
- * command will be updated to use the transfered file's path.
- *
- * __Note:__ This class depends on a non-standard command supported on the
- * Java Selenium server. The file detector will fail if used with a server that
- * only supports standard WebDriver commands (such as the ChromeDriver).
- *
- * @final
- */
-class FileDetector extends input.FileDetector {
- /**
- * Prepares a `file` for use with the remote browser. If the provided path
- * does not reference a normal file (i.e. it does not exist or is a
- * directory), then the promise returned by this method will be resolved with
- * the original file path. Otherwise, this method will upload the file to the
- * remote server, which will return the file's path on the remote system so
- * it may be referenced in subsequent commands.
- *
- * @override
- */
- handleFile(driver, file) {
- return io.stat(file).then(function(stats) {
- if (stats.isDirectory()) {
- return file; // Not a valid file, return original input.
- }
-
- var zip = new AdmZip();
- zip.addLocalFile(file);
- // Stored compression, see https://en.wikipedia.org/wiki/Zip_(file_format)
- zip.getEntries()[0].header.method = 0;
-
- var command = new cmd.Command(cmd.Name.UPLOAD_FILE)
- .setParameter('file', zip.toBuffer().toString('base64'));
- return driver.schedule(command,
- 'remote.FileDetector.handleFile(' + file + ')');
- }, function(err) {
- if (err.code === 'ENOENT') {
- return file; // Not a file; return original input.
- }
- throw err;
- });
- }
-}
-
-
-// PUBLIC API
-
-exports.DriverService = DriverService;
-exports.FileDetector = FileDetector;
-exports.SeleniumServer = SeleniumServer;
-exports.ServiceOptions = ServiceOptions; // Exported for API docs.
diff --git a/node_modules/selenium-webdriver/safari.js b/node_modules/selenium-webdriver/safari.js
deleted file mode 100644
index 5a57387c1..000000000
--- a/node_modules/selenium-webdriver/safari.js
+++ /dev/null
@@ -1,264 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Defines a WebDriver client for Safari.
- */
-
-'use strict';
-
-const http = require('./http');
-const io = require('./io');
-const {Capabilities, Capability} = require('./lib/capabilities');
-const command = require('./lib/command');
-const error = require('./lib/error');
-const logging = require('./lib/logging');
-const promise = require('./lib/promise');
-const Symbols = require('./lib/symbols');
-const webdriver = require('./lib/webdriver');
-const portprober = require('./net/portprober');
-const remote = require('./remote');
-
-
-/**
- * @return {string} .
- * @throws {Error}
- */
-function findSafariDriver() {
- let exe = io.findInPath('safaridriver', true);
- if (!exe) {
- throw Error(
- `The safaridriver executable could not be found on the current PATH.
- Please ensure you are using Safari 10.0 or above.`);
- }
- return exe;
-}
-
-
-/**
- * Creates {@link selenium-webdriver/remote.DriverService} instances that manage
- * a [safaridriver] server in a child process.
- *
- * [safaridriver]: https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_0.html#//apple_ref/doc/uid/TP40014305-CH11-DontLinkElementID_28
- */
-class ServiceBuilder extends remote.DriverService.Builder {
- /**
- * @param {string=} opt_exe Path to the server executable to use. If omitted,
- * the builder will attempt to locate the safaridriver on the system PATH.
- */
- constructor(opt_exe) {
- super(opt_exe || findSafariDriver());
- this.setLoopback(true); // Required.
- }
-}
-
-
-const OPTIONS_CAPABILITY_KEY = 'safari.options';
-const TECHNOLOGY_PREVIEW_OPTIONS_KEY = 'technologyPreview';
-
-/**
- * Configuration options specific to the {@link Driver SafariDriver}.
- */
-class Options {
- constructor() {
- /** @private {Object<string, *>} */
- this.options_ = null;
-
- /** @private {./lib/logging.Preferences} */
- this.logPrefs_ = null;
-
- /** @private {?./lib/capabilities.ProxyConfig} */
- this.proxy_ = null;
- }
-
- /**
- * Extracts the SafariDriver specific options from the given capabilities
- * object.
- * @param {!Capabilities} capabilities The capabilities object.
- * @return {!Options} The SafariDriver options.
- */
- static fromCapabilities(capabilities) {
- var options = new Options();
- var o = capabilities.get(OPTIONS_CAPABILITY_KEY);
-
- if (o instanceof Options) {
- options = o;
- } else if (o) {
- options.setCleanSession(o.cleanSession);
- options.setTechnologyPreview(o[TECHNOLOGY_PREVIEW_OPTIONS_KEY]);
- }
-
- if (capabilities.has(Capability.PROXY)) {
- options.setProxy(capabilities.get(Capability.PROXY));
- }
-
- if (capabilities.has(Capability.LOGGING_PREFS)) {
- options.setLoggingPrefs(capabilities.get(Capability.LOGGING_PREFS));
- }
-
- return options;
- }
-
- /**
- * Sets whether to force Safari to start with a clean session. Enabling this
- * option will cause all global browser data to be deleted.
- * @param {boolean} clean Whether to make sure the session has no cookies,
- * cache entries, local storage, or databases.
- * @return {!Options} A self reference.
- */
- setCleanSession(clean) {
- if (!this.options_) {
- this.options_ = {};
- }
- this.options_['cleanSession'] = clean;
- return this;
- }
-
- /**
- * Sets the logging preferences for the new session.
- * @param {!./lib/logging.Preferences} prefs The logging preferences.
- * @return {!Options} A self reference.
- */
- setLoggingPrefs(prefs) {
- this.logPrefs_ = prefs;
- return this;
- }
-
- /**
- * Sets the proxy to use.
- *
- * @param {./lib/capabilities.ProxyConfig} proxy The proxy configuration to use.
- * @return {!Options} A self reference.
- */
- setProxy(proxy) {
- this.proxy_ = proxy;
- return this;
- }
-
- /**
- * Instruct the SafariDriver to use the Safari Technology Preview if true.
- * Otherwise, use the release version of Safari. Defaults to using the release version of Safari.
- *
- * @param {boolean} useTechnologyPreview
- * @return {!Options} A self reference.
- */
- setTechnologyPreview(useTechnologyPreview) {
- if (!this.options_) {
- this.options_ = {};
- }
-
- this.options_[TECHNOLOGY_PREVIEW_OPTIONS_KEY] = !!useTechnologyPreview;
- return this;
- }
-
- /**
- * Converts this options instance to a {@link Capabilities} object.
- * @param {Capabilities=} opt_capabilities The capabilities to
- * merge these options into, if any.
- * @return {!Capabilities} The capabilities.
- */
- toCapabilities(opt_capabilities) {
- var caps = opt_capabilities || Capabilities.safari();
- if (this.logPrefs_) {
- caps.set(Capability.LOGGING_PREFS, this.logPrefs_);
- }
- if (this.proxy_) {
- caps.set(Capability.PROXY, this.proxy_);
- }
- if (this.options_) {
- caps.set(OPTIONS_CAPABILITY_KEY, this);
- }
- return caps;
- }
-
- /**
- * Converts this instance to its JSON wire protocol representation. Note this
- * function is an implementation detail not intended for general use.
- * @return {!Object<string, *>} The JSON wire protocol representation of this
- * instance.
- */
- [Symbols.serialize]() {
- return this.options_ || {};
- }
-}
-
-/**
- * @param {(Options|Object<string, *>)=} o The options object
- * @return {boolean}
- */
-function useTechnologyPreview(o) {
- if (o instanceof Options) {
- return !!(o.options_ && o.options_[TECHNOLOGY_PREVIEW_OPTIONS_KEY]);
- }
-
- if (o && typeof o === 'object') {
- return !!o[TECHNOLOGY_PREVIEW_OPTIONS_KEY];
- }
-
- return false;
-}
-
-const SAFARIDRIVER_TECHNOLOGY_PREVIEW_EXE = '/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver';
-
-/**
- * A WebDriver client for Safari. This class should never be instantiated
- * directly; instead, use the {@linkplain ./builder.Builder Builder}:
- *
- * var driver = new Builder()
- * .forBrowser('safari')
- * .build();
- *
- */
-class Driver extends webdriver.WebDriver {
- /**
- * Creates a new Safari session.
- *
- * @param {(Options|Capabilities)=} opt_config The configuration
- * options for the new session.
- * @param {promise.ControlFlow=} opt_flow The control flow to create
- * the driver under.
- * @return {!Driver} A new driver instance.
- */
- static createSession(opt_config, opt_flow) {
- let caps, exe;
-
- if (opt_config instanceof Options) {
- caps = opt_config.toCapabilities();
- } else {
- caps = opt_config || Capabilities.safari();
- }
-
- if (useTechnologyPreview(caps.get(OPTIONS_CAPABILITY_KEY))) {
- exe = SAFARIDRIVER_TECHNOLOGY_PREVIEW_EXE;
- }
-
- let service = new ServiceBuilder(exe).build();
- let executor = new http.Executor(
- service.start().then(url => new http.HttpClient(url)));
-
- return /** @type {!Driver} */(webdriver.WebDriver.createSession(
- executor, caps, opt_flow, this, () => service.kill()));
- }
-}
-
-
-// Public API
-
-
-exports.Driver = Driver;
-exports.Options = Options;
-exports.ServiceBuilder = ServiceBuilder;
diff --git a/node_modules/selenium-webdriver/test/actions_test.js b/node_modules/selenium-webdriver/test/actions_test.js
deleted file mode 100644
index ef218f7d7..000000000
--- a/node_modules/selenium-webdriver/test/actions_test.js
+++ /dev/null
@@ -1,52 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var Browser = require('..').Browser,
- By = require('..').By,
- until = require('..').until,
- test = require('../lib/test'),
- fileServer = require('../lib/test/fileserver');
-
-
-test.suite(function(env) {
- var driver;
- test.beforeEach(function*() { driver = yield env.builder().build(); });
- test.afterEach(function() { return driver.quit(); });
-
- test.ignore(
- env.browsers(Browser.FIREFOX, Browser.PHANTOM_JS, Browser.SAFARI)).
- describe('WebDriver.actions()', function() {
-
- test.it('can move to and click element in an iframe', function*() {
- yield driver.get(fileServer.whereIs('click_tests/click_in_iframe.html'));
-
- yield driver.wait(until.elementLocated(By.id('ifr')), 5000)
- .then(frame => driver.switchTo().frame(frame));
-
- let link = yield driver.findElement(By.id('link'));
- yield driver.actions()
- .mouseMove(link)
- .click()
- .perform();
-
- return driver.wait(until.titleIs('Submitted Successfully!'), 5000);
- });
-
- });
-});
diff --git a/node_modules/selenium-webdriver/test/chrome/options_test.js b/node_modules/selenium-webdriver/test/chrome/options_test.js
deleted file mode 100644
index d36a044e4..000000000
--- a/node_modules/selenium-webdriver/test/chrome/options_test.js
+++ /dev/null
@@ -1,227 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var fs = require('fs');
-
-var webdriver = require('../..'),
- chrome = require('../../chrome'),
- symbols = require('../../lib/symbols'),
- proxy = require('../../proxy'),
- assert = require('../../testing/assert');
-
-var test = require('../../lib/test');
-
-
-describe('chrome.Options', function() {
- describe('fromCapabilities', function() {
-
- it('should return a new Options instance if none were defined',
- function() {
- var options = chrome.Options.fromCapabilities(
- new webdriver.Capabilities());
- assert(options).instanceOf(chrome.Options);
- });
-
- it('should return options instance if present', function() {
- var options = new chrome.Options();
- var caps = options.toCapabilities();
- assert(caps).instanceOf(webdriver.Capabilities);
- assert(chrome.Options.fromCapabilities(caps)).equalTo(options);
- });
-
- it('should rebuild options from wire representation', function() {
- var expectedExtension = fs.readFileSync(__filename, 'base64');
- var caps = webdriver.Capabilities.chrome().set('chromeOptions', {
- args: ['a', 'b'],
- extensions: [__filename],
- binary: 'binaryPath',
- logPath: 'logFilePath',
- detach: true,
- localState: 'localStateValue',
- prefs: 'prefsValue'
- });
-
- var options = chrome.Options.fromCapabilities(caps);
- var json = options[symbols.serialize]();
-
- assert(json.args.length).equalTo(2);
- assert(json.args[0]).equalTo('a');
- assert(json.args[1]).equalTo('b');
- assert(json.extensions.length).equalTo(1);
- assert(json.extensions[0]).equalTo(expectedExtension);
- assert(json.binary).equalTo('binaryPath');
- assert(json.logPath).equalTo('logFilePath');
- assert(json.detach).equalTo(true);
- assert(json.localState).equalTo('localStateValue');
- assert(json.prefs).equalTo('prefsValue');
- });
-
- it('should rebuild options from incomplete wire representation',
- function() {
- var caps = webdriver.Capabilities.chrome().set('chromeOptions', {
- logPath: 'logFilePath'
- });
-
- var options = chrome.Options.fromCapabilities(caps);
- var json = options[symbols.serialize]();
- assert(json.args).isUndefined();
- assert(json.binary).isUndefined();
- assert(json.detach).isUndefined();
- assert(json.excludeSwitches).isUndefined();
- assert(json.extensions).isUndefined();
- assert(json.localState).isUndefined();
- assert(json.logPath).equalTo('logFilePath');
- assert(json.prefs).isUndefined();
- assert(json.minidumpPath).isUndefined();
- assert(json.mobileEmulation).isUndefined();
- assert(json.perfLoggingPrefs).isUndefined();
- });
-
- it('should extract supported WebDriver capabilities', function() {
- var proxyPrefs = proxy.direct();
- var logPrefs = {};
- var caps = webdriver.Capabilities.chrome().
- set(webdriver.Capability.PROXY, proxyPrefs).
- set(webdriver.Capability.LOGGING_PREFS, logPrefs);
-
- var options = chrome.Options.fromCapabilities(caps);
- assert(options.proxy_).equalTo(proxyPrefs);
- assert(options.logPrefs_).equalTo(logPrefs);
- });
- });
-
- describe('addArguments', function() {
- it('takes var_args', function() {
- var options = new chrome.Options();
- assert(options[symbols.serialize]().args).isUndefined();
-
- options.addArguments('a', 'b');
- var json = options[symbols.serialize]();
- assert(json.args.length).equalTo(2);
- assert(json.args[0]).equalTo('a');
- assert(json.args[1]).equalTo('b');
- });
-
- it('flattens input arrays', function() {
- var options = new chrome.Options();
- assert(options[symbols.serialize]().args).isUndefined();
-
- options.addArguments(['a', 'b'], 'c', [1, 2], 3);
- var json = options[symbols.serialize]();
- assert(json.args.length).equalTo(6);
- assert(json.args[0]).equalTo('a');
- assert(json.args[1]).equalTo('b');
- assert(json.args[2]).equalTo('c');
- assert(json.args[3]).equalTo(1);
- assert(json.args[4]).equalTo(2);
- assert(json.args[5]).equalTo(3);
- });
- });
-
- describe('addExtensions', function() {
- it('takes var_args', function() {
- var options = new chrome.Options();
- assert(options.extensions_.length).equalTo(0);
-
- options.addExtensions('a', 'b');
- assert(options.extensions_.length).equalTo(2);
- assert(options.extensions_[0]).equalTo('a');
- assert(options.extensions_[1]).equalTo('b');
- });
-
- it('flattens input arrays', function() {
- var options = new chrome.Options();
- assert(options.extensions_.length).equalTo(0);
-
- options.addExtensions(['a', 'b'], 'c', [1, 2], 3);
- assert(options.extensions_.length).equalTo(6);
- assert(options.extensions_[0]).equalTo('a');
- assert(options.extensions_[1]).equalTo('b');
- assert(options.extensions_[2]).equalTo('c');
- assert(options.extensions_[3]).equalTo(1);
- assert(options.extensions_[4]).equalTo(2);
- assert(options.extensions_[5]).equalTo(3);
- });
- });
-
- describe('serialize', function() {
- it('base64 encodes extensions', function() {
- var expected = fs.readFileSync(__filename, 'base64');
- var wire = new chrome.Options()
- .addExtensions(__filename)
- [symbols.serialize]();
- assert(wire.extensions.length).equalTo(1);
- assert(wire.extensions[0]).equalTo(expected);
- });
- });
-
- describe('toCapabilities', function() {
- it('returns a new capabilities object if one is not provided', function() {
- var options = new chrome.Options();
- var caps = options.toCapabilities();
- assert(caps.get('browserName')).equalTo('chrome');
- assert(caps.get('chromeOptions')).equalTo(options);
- });
-
- it('adds to input capabilities object', function() {
- var caps = webdriver.Capabilities.firefox();
- var options = new chrome.Options();
- assert(options.toCapabilities(caps)).equalTo(caps);
- assert(caps.get('browserName')).equalTo('firefox');
- assert(caps.get('chromeOptions')).equalTo(options);
- });
-
- it('sets generic driver capabilities', function() {
- var proxyPrefs = {};
- var loggingPrefs = {};
- var options = new chrome.Options().
- setLoggingPrefs(loggingPrefs).
- setProxy(proxyPrefs);
-
- var caps = options.toCapabilities();
- assert(caps.get('proxy')).equalTo(proxyPrefs);
- assert(caps.get('loggingPrefs')).equalTo(loggingPrefs);
- });
- });
-});
-
-test.suite(function(env) {
- var driver;
-
- test.afterEach(function() {
- return driver.quit();
- });
-
- describe('Chrome options', function() {
- test.it('can start Chrome with custom args', function*() {
- var options = new chrome.Options().
- addArguments('user-agent=foo;bar');
-
- driver = yield env.builder()
- .setChromeOptions(options)
- .build();
-
- yield driver.get(test.Pages.ajaxyPage);
-
- var userAgent =
- yield driver.executeScript('return window.navigator.userAgent');
- assert(userAgent).equalTo('foo;bar');
- });
- });
-}, {browsers: ['chrome']});
diff --git a/node_modules/selenium-webdriver/test/chrome/service_test.js b/node_modules/selenium-webdriver/test/chrome/service_test.js
deleted file mode 100644
index 0ccc93b5a..000000000
--- a/node_modules/selenium-webdriver/test/chrome/service_test.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var webdriver = require('../..'),
- chrome = require('../../chrome'),
- assert = require('../../testing/assert');
-
-var test = require('../../lib/test');
-
-
-test.suite(function(env) {
- describe('chromedriver', function() {
- var service;
- test.afterEach(function() {
- if (service) {
- return service.kill();
- }
- });
-
- test.it('can be started on a custom path', function() {
- service = new chrome.ServiceBuilder()
- .setPath('/foo/bar/baz')
- .build();
- return service.start().then(function(url) {
- assert(url).endsWith('/foo/bar/baz');
- });
- });
- });
-}, {browsers: ['chrome']});
diff --git a/node_modules/selenium-webdriver/test/cookie_test.js b/node_modules/selenium-webdriver/test/cookie_test.js
deleted file mode 100644
index 40f7d9b57..000000000
--- a/node_modules/selenium-webdriver/test/cookie_test.js
+++ /dev/null
@@ -1,214 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var assert = require('assert'),
- url = require('url');
-
-var test = require('../lib/test'),
- fileserver = require('../lib/test/fileserver'),
- Browser = require('..').Browser,
- Pages = test.Pages;
-
-
-test.suite(function(env) {
- var driver;
-
- test.before(function*() {
- driver = yield env.builder().build();
- });
-
- test.after(function() {
- return driver.quit();
- });
-
- // Cookie handling is broken.
- test.ignore(env.browsers(Browser.PHANTOM_JS, Browser.SAFARI)).
- describe('Cookie Management;', function() {
-
- test.beforeEach(function*() {
- yield driver.get(fileserver.Pages.ajaxyPage);
- yield driver.manage().deleteAllCookies();
- return assertHasCookies();
- });
-
- test.it('can add new cookies', function*() {
- var cookie = createCookieSpec();
-
- yield driver.manage().addCookie(cookie);
- yield driver.manage().getCookie(cookie.name).then(function(actual) {
- assert.equal(actual.value, cookie.value);
- });
- });
-
- test.it('can get all cookies', function*() {
- var cookie1 = createCookieSpec();
- var cookie2 = createCookieSpec();
-
- yield driver.manage().addCookie(cookie1);
- yield driver.manage().addCookie(cookie2);
-
- return assertHasCookies(cookie1, cookie2);
- });
-
- test.ignore(env.browsers(Browser.IE)).
- it('only returns cookies visible to the current page', function*() {
- var cookie1 = createCookieSpec();
-
- yield driver.manage().addCookie(cookie1);
-
- var pageUrl = fileserver.whereIs('page/1');
- var cookie2 = createCookieSpec({
- path: url.parse(pageUrl).pathname
- });
- yield driver.get(pageUrl);
- yield driver.manage().addCookie(cookie2);
- yield assertHasCookies(cookie1, cookie2);
-
- yield driver.get(fileserver.Pages.ajaxyPage);
- yield assertHasCookies(cookie1);
-
- yield driver.get(pageUrl);
- yield assertHasCookies(cookie1, cookie2);
- });
-
- test.it('can delete all cookies', function*() {
- var cookie1 = createCookieSpec();
- var cookie2 = createCookieSpec();
-
- yield driver.executeScript(
- 'document.cookie = arguments[0] + "=" + arguments[1];' +
- 'document.cookie = arguments[2] + "=" + arguments[3];',
- cookie1.name, cookie1.value, cookie2.name, cookie2.value);
- yield assertHasCookies(cookie1, cookie2);
-
- yield driver.manage().deleteAllCookies();
- yield assertHasCookies();
- });
-
- test.it('can delete cookies by name', function*() {
- var cookie1 = createCookieSpec();
- var cookie2 = createCookieSpec();
-
- yield driver.executeScript(
- 'document.cookie = arguments[0] + "=" + arguments[1];' +
- 'document.cookie = arguments[2] + "=" + arguments[3];',
- cookie1.name, cookie1.value, cookie2.name, cookie2.value);
- yield assertHasCookies(cookie1, cookie2);
-
- yield driver.manage().deleteCookie(cookie1.name);
- yield assertHasCookies(cookie2);
- });
-
- test.it('should only delete cookie with exact name', function*() {
- var cookie1 = createCookieSpec();
- var cookie2 = createCookieSpec();
- var cookie3 = {name: cookie1.name + 'xx', value: cookie1.value};
-
- yield driver.executeScript(
- 'document.cookie = arguments[0] + "=" + arguments[1];' +
- 'document.cookie = arguments[2] + "=" + arguments[3];' +
- 'document.cookie = arguments[4] + "=" + arguments[5];',
- cookie1.name, cookie1.value, cookie2.name, cookie2.value,
- cookie3.name, cookie3.value);
- yield assertHasCookies(cookie1, cookie2, cookie3);
-
- yield driver.manage().deleteCookie(cookie1.name);
- yield assertHasCookies(cookie2, cookie3);
- });
-
- test.it('can delete cookies set higher in the path', function*() {
- var cookie = createCookieSpec();
- var childUrl = fileserver.whereIs('child/childPage.html');
- var grandchildUrl = fileserver.whereIs(
- 'child/grandchild/grandchildPage.html');
-
- yield driver.get(childUrl);
- yield driver.manage().addCookie(cookie);
- yield assertHasCookies(cookie);
-
- yield driver.get(grandchildUrl);
- yield assertHasCookies(cookie);
-
- yield driver.manage().deleteCookie(cookie.name);
- yield assertHasCookies();
-
- yield driver.get(childUrl);
- yield assertHasCookies();
- });
-
- test.ignore(env.browsers(
- Browser.ANDROID,
- Browser.FIREFOX,
- 'legacy-' + Browser.FIREFOX,
- Browser.IE)).
- it('should retain cookie expiry', function*() {
- let expirationDelay = 5 * 1000;
- let expiry = new Date(Date.now() + expirationDelay);
- let cookie = createCookieSpec({expiry});
-
- yield driver.manage().addCookie(cookie);
- yield driver.manage().getCookie(cookie.name).then(function(actual) {
- assert.equal(actual.value, cookie.value);
- // expiry times are exchanged in seconds since January 1, 1970 UTC.
- assert.equal(actual.expiry, Math.floor(expiry.getTime() / 1000));
- });
-
- yield driver.sleep(expirationDelay);
- yield assertHasCookies();
- });
- });
-
- function createCookieSpec(opt_options) {
- let spec = {
- name: getRandomString(),
- value: getRandomString()
- };
- if (opt_options) {
- spec = Object.assign(spec, opt_options);
- }
- return spec;
- }
-
- function buildCookieMap(cookies) {
- var map = {};
- cookies.forEach(function(cookie) {
- map[cookie.name] = cookie;
- });
- return map;
- }
-
- function assertHasCookies(...expected) {
- return driver.manage().getCookies().then(function(cookies) {
- assert.equal(cookies.length, expected.length,
- 'Wrong # of cookies.' +
- '\n Expected: ' + JSON.stringify(expected) +
- '\n Was : ' + JSON.stringify(cookies));
-
- var map = buildCookieMap(cookies);
- for (var i = 0; i < expected.length; ++i) {
- assert.equal(expected[i].value, map[expected[i].name].value);
- }
- });
- }
-
- function getRandomString() {
- var x = 1234567890;
- return Math.floor(Math.random() * x).toString(36);
- }
-});
diff --git a/node_modules/selenium-webdriver/test/element_finding_test.js b/node_modules/selenium-webdriver/test/element_finding_test.js
deleted file mode 100644
index 9f4568b8b..000000000
--- a/node_modules/selenium-webdriver/test/element_finding_test.js
+++ /dev/null
@@ -1,426 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var fail = require('assert').fail;
-
-var Browser = require('..').Browser,
- By = require('..').By,
- error = require('..').error,
- until = require('..').until,
- promise = require('../lib/promise'),
- test = require('../lib/test'),
- assert = require('../testing/assert'),
- Pages = test.Pages;
-
-
-test.suite(function(env) {
- var browsers = env.browsers;
-
- var driver;
-
- test.before(function*() {
- driver = yield env.builder().build();
- });
-
- after(function() {
- return driver.quit();
- });
-
- describe('finding elements', function() {
- test.it(
- 'should work after loading multiple pages in a row',
- function*() {
- yield driver.get(Pages.formPage);
- yield driver.get(Pages.xhtmlTestPage);
- yield driver.findElement(By.linkText('click me')).click();
- yield driver.wait(until.titleIs('We Arrive Here'), 5000);
- });
-
- describe('By.id()', function() {
- test.it('should work', function*() {
- yield driver.get(Pages.xhtmlTestPage);
- yield driver.findElement(By.id('linkId')).click();
- yield driver.wait(until.titleIs('We Arrive Here'), 5000);
- });
-
- test.it('should fail if ID not present on page', function*() {
- yield driver.get(Pages.formPage);
- return driver.findElement(By.id('nonExistantButton')).
- then(fail, function(e) {
- assert(e).instanceOf(error.NoSuchElementError);
- });
- });
-
- test.it(
- 'should find multiple elements by ID even though that is ' +
- 'malformed HTML',
- function*() {
- yield driver.get(Pages.nestedPage);
-
- let elements = yield driver.findElements(By.id('2'));
- assert(elements.length).equalTo(8);
- });
- });
-
- describe('By.linkText()', function() {
- test.it('should be able to click on link identified by text', function*() {
- yield driver.get(Pages.xhtmlTestPage);
- yield driver.findElement(By.linkText('click me')).click();
- yield driver.wait(until.titleIs('We Arrive Here'), 5000);
- });
-
- test.it(
- 'should be able to find elements by partial link text',
- function*() {
- yield driver.get(Pages.xhtmlTestPage);
- yield driver.findElement(By.partialLinkText('ick me')).click();
- yield driver.wait(until.titleIs('We Arrive Here'), 5000);
- });
-
- test.it('should work when link text contains equals sign', function*() {
- yield driver.get(Pages.xhtmlTestPage);
- let el = yield driver.findElement(By.linkText('Link=equalssign'));
-
- let id = yield el.getAttribute('id');
- assert(id).equalTo('linkWithEqualsSign');
- });
-
- test.it('matches by partial text when containing equals sign',
- function*() {
- yield driver.get(Pages.xhtmlTestPage);
- let link = yield driver.findElement(By.partialLinkText('Link='));
-
- let id = yield link.getAttribute('id');
- assert(id).equalTo('linkWithEqualsSign');
- });
-
- test.it('works when searching for multiple and text contains =',
- function*() {
- yield driver.get(Pages.xhtmlTestPage);
- let elements =
- yield driver.findElements(By.linkText('Link=equalssign'));
-
- assert(elements.length).equalTo(1);
-
- let id = yield elements[0].getAttribute('id');
- assert(id).equalTo('linkWithEqualsSign');
- });
-
- test.it(
- 'works when searching for multiple with partial text containing =',
- function*() {
- yield driver.get(Pages.xhtmlTestPage);
- let elements =
- yield driver.findElements(By.partialLinkText('Link='));
-
- assert(elements.length).equalTo(1);
-
- let id = yield elements[0].getAttribute('id');
- assert(id).equalTo('linkWithEqualsSign');
- });
-
- test.it('should be able to find multiple exact matches',
- function*() {
- yield driver.get(Pages.xhtmlTestPage);
- let elements = yield driver.findElements(By.linkText('click me'));
- assert(elements.length).equalTo(2);
- });
-
- test.it('should be able to find multiple partial matches',
- function*() {
- yield driver.get(Pages.xhtmlTestPage);
- let elements =
- yield driver.findElements(By.partialLinkText('ick me'));
- assert(elements.length).equalTo(2);
- });
-
- test.ignore(browsers(Browser.SAFARI)).
- it('works on XHTML pages', function*() {
- yield driver.get(test.whereIs('actualXhtmlPage.xhtml'));
-
- let el = yield driver.findElement(By.linkText('Foo'));
- return assert(el.getText()).equalTo('Foo');
- });
- });
-
- describe('By.name()', function() {
- test.it('should work', function*() {
- yield driver.get(Pages.formPage);
-
- let el = yield driver.findElement(By.name('checky'));
- yield assert(el.getAttribute('value')).equalTo('furrfu');
- });
-
- test.it('should find multiple elements with same name', function*() {
- yield driver.get(Pages.nestedPage);
-
- let elements = yield driver.findElements(By.name('checky'));
- assert(elements.length).greaterThan(1);
- });
-
- test.it(
- 'should be able to find elements that do not support name property',
- function*() {
- yield driver.get(Pages.nestedPage);
- yield driver.findElement(By.name('div1'));
- // Pass if this does not return an error.
- });
-
- test.it('shoudl be able to find hidden elements by name', function*() {
- yield driver.get(Pages.formPage);
- yield driver.findElement(By.name('hidden'));
- // Pass if this does not return an error.
- });
- });
-
- describe('By.className()', function() {
- test.it('should work', function*() {
- yield driver.get(Pages.xhtmlTestPage);
-
- let el = yield driver.findElement(By.className('extraDiv'));
- yield assert(el.getText()).startsWith('Another div starts here.');
- });
-
- test.it('should work when name is first name among many', function*() {
- yield driver.get(Pages.xhtmlTestPage);
-
- let el = yield driver.findElement(By.className('nameA'));
- yield assert(el.getText()).equalTo('An H2 title');
- });
-
- test.it('should work when name is last name among many', function*() {
- yield driver.get(Pages.xhtmlTestPage);
-
- let el = yield driver.findElement(By.className('nameC'));
- yield assert(el.getText()).equalTo('An H2 title');
- });
-
- test.it('should work when name is middle of many', function*() {
- yield driver.get(Pages.xhtmlTestPage);
-
- let el = yield driver.findElement(By.className('nameBnoise'));
- yield assert(el.getText()).equalTo('An H2 title');
- });
-
- test.it('should work when name surrounded by whitespace', function*() {
- yield driver.get(Pages.xhtmlTestPage);
-
- let el = yield driver.findElement(By.className('spaceAround'));
- yield assert(el.getText()).equalTo('Spaced out');
- });
-
- test.it('should fail if queried name only partially matches', function*() {
- yield driver.get(Pages.xhtmlTestPage);
- return driver.findElement(By.className('nameB')).
- then(fail, function(e) {
- assert(e).instanceOf(error.NoSuchElementError);
- });
- });
-
- test.it('should implicitly wait', function*() {
- var TIMEOUT_IN_MS = 1000;
- var EPSILON = TIMEOUT_IN_MS / 2;
-
- yield driver.manage().timeouts().implicitlyWait(TIMEOUT_IN_MS);
- yield driver.get(Pages.formPage);
-
- var start = new Date();
- return driver.findElement(By.id('nonExistantButton')).
- then(fail, function(e) {
- var end = new Date();
- assert(e).instanceOf(error.NoSuchElementError);
- assert(end - start).closeTo(TIMEOUT_IN_MS, EPSILON);
- });
- });
-
- test.it('should be able to find multiple matches', function*() {
- yield driver.get(Pages.xhtmlTestPage);
-
- let elements = yield driver.findElements(By.className('nameC'));
- assert(elements.length).greaterThan(1);
- });
-
- test.it('permits compound class names', function() {
- return driver.get(Pages.xhtmlTestPage)
- .then(() => driver.findElement(By.className('nameA nameC')))
- .then(el => el.getText())
- .then(text => assert(text).equalTo('An H2 title'));
- });
- });
-
- describe('By.xpath()', function() {
- test.it('should work with multiple matches', function*() {
- yield driver.get(Pages.xhtmlTestPage);
- let elements = yield driver.findElements(By.xpath('//div'));
- assert(elements.length).greaterThan(1);
- });
-
- test.it('should work for selectors using contains keyword', function*() {
- yield driver.get(Pages.nestedPage);
- yield driver.findElement(By.xpath('//a[contains(., "hello world")]'));
- // Pass if no error.
- });
- });
-
- describe('By.tagName()', function() {
- test.it('works', function*() {
- yield driver.get(Pages.formPage);
-
- let el = yield driver.findElement(By.tagName('input'));
- yield assert(el.getTagName()).equalTo('input');
- });
-
- test.it('can find multiple elements', function*() {
- yield driver.get(Pages.formPage);
-
- let elements = yield driver.findElements(By.tagName('input'));
- assert(elements.length).greaterThan(1);
- });
- });
-
- describe('By.css()', function() {
- test.it('works', function*() {
- yield driver.get(Pages.xhtmlTestPage);
- yield driver.findElement(By.css('div.content'));
- // Pass if no error.
- });
-
- test.it('can find multiple elements', function*() {
- yield driver.get(Pages.xhtmlTestPage);
-
- let elements = yield driver.findElements(By.css('p'));
- assert(elements.length).greaterThan(1);
- // Pass if no error.
- });
-
- test.it(
- 'should find first matching element when searching by ' +
- 'compound CSS selector',
- function*() {
- yield driver.get(Pages.xhtmlTestPage);
-
- let el =
- yield driver.findElement(By.css('div.extraDiv, div.content'));
- yield assert(el.getAttribute('class')).equalTo('content');
- });
-
- test.it('should be able to find multiple elements by compound selector',
- function*() {
- yield driver.get(Pages.xhtmlTestPage);
- let elements =
- yield driver.findElements(By.css('div.extraDiv, div.content'));
-
- return Promise.all([
- assertClassIs(elements[0], 'content'),
- assertClassIs(elements[1], 'extraDiv')
- ]);
-
- function assertClassIs(el, expected) {
- return assert(el.getAttribute('class')).equalTo(expected);
- }
- });
-
- // IE only supports short version option[selected].
- test.ignore(browsers(Browser.IE)).
- it('should be able to find element by boolean attribute', function*() {
- yield driver.get(test.whereIs(
- 'locators_tests/boolean_attribute_selected.html'));
-
- let el = yield driver.findElement(By.css('option[selected="selected"]'));
- yield assert(el.getAttribute('value')).equalTo('two');
- });
-
- test.it(
- 'should be able to find element with short ' +
- 'boolean attribute selector',
- function*() {
- yield driver.get(test.whereIs(
- 'locators_tests/boolean_attribute_selected.html'));
-
- let el = yield driver.findElement(By.css('option[selected]'));
- yield assert(el.getAttribute('value')).equalTo('two');
- });
-
- test.it(
- 'should be able to find element with short boolean attribute ' +
- 'selector on HTML4 page',
- function*() {
- yield driver.get(test.whereIs(
- 'locators_tests/boolean_attribute_selected_html4.html'));
-
- let el = yield driver.findElement(By.css('option[selected]'));
- yield assert(el.getAttribute('value')).equalTo('two');
- });
- });
-
- describe('by custom locator', function() {
- test.it('handles single element result', function*() {
- yield driver.get(Pages.javascriptPage);
-
- let link = yield driver.findElement(function(driver) {
- let links = driver.findElements(By.tagName('a'));
- return promise.filter(links, function(link) {
- return link.getAttribute('id').then(id => id === 'updatediv');
- }).then(links => links[0]);
- });
-
- yield assert(link.getText()).matches(/Update\s+a\s+div/);
- });
-
- test.it('uses first element if locator resolves to list', function*() {
- yield driver.get(Pages.javascriptPage);
-
- let link = yield driver.findElement(function() {
- return driver.findElements(By.tagName('a'));
- });
-
- yield assert(link.getText()).isEqualTo('Change the page title!');
- });
-
- test.it('fails if locator returns non-webelement value', function*() {
- yield driver.get(Pages.javascriptPage);
-
- let link = driver.findElement(function() {
- return driver.getTitle();
- });
-
- return link.then(
- () => fail('Should have failed'),
- (e) => assert(e).instanceOf(TypeError));
- });
- });
-
- describe('switchTo().activeElement()', function() {
- // SAFARI's new session response does not identify it as a W3C browser,
- // so the command is sent in the unsupported wire protocol format.
- test.ignore(browsers(Browser.SAFARI)).
- it('returns document.activeElement', function*() {
- yield driver.get(Pages.formPage);
-
- let email = yield driver.findElement(By.css('#email'));
- yield driver.executeScript('arguments[0].focus()', email);
-
- let ae = yield driver.switchTo().activeElement();
- let equal = yield driver.executeScript(
- 'return arguments[0] === arguments[1]', email, ae);
- assert(equal).isTrue();
- });
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/execute_script_test.js b/node_modules/selenium-webdriver/test/execute_script_test.js
deleted file mode 100644
index 97eaa1ed1..000000000
--- a/node_modules/selenium-webdriver/test/execute_script_test.js
+++ /dev/null
@@ -1,350 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var fail = require('assert').fail;
-
-var webdriver = require('..'),
- Browser = webdriver.Browser,
- By = webdriver.By,
- assert = require('../testing/assert'),
- test = require('../lib/test');
-
-
-test.suite(function(env) {
- var driver;
-
- test.before(function*() {
- driver = yield env.builder().build();
- });
-
- test.after(function() {
- return driver.quit();
- });
-
- test.beforeEach(function() {
- return driver.get(test.Pages.echoPage);
- });
-
- describe('executeScript;', function() {
- var shouldHaveFailed = new Error('Should have failed');
-
- test.it('fails if script throws', function() {
- return execute('throw new Error("boom")')
- .then(function() { throw shouldHaveFailed; })
- .catch(function(e) {
- // The java WebDriver server adds a bunch of crap to error messages.
- // Error message will just be "JavaScript error" for IE.
- assert(e.message).matches(/.*(JavaScript error|boom).*/);
- });
- });
-
- test.it('fails if script does not parse', function() {
- return execute('throw function\\*')
- .then(function() { throw shouldHaveFailed; })
- .catch(function(e) {
- assert(e).notEqualTo(shouldHaveFailed);
- });
- });
-
- describe('scripts;', function() {
- test.it('do not pollute the global scope', function*() {
- yield execute('var x = 1;');
- yield assert(execute('return typeof x;')).equalTo('undefined');
- });
-
- test.it('can set global variables', function*() {
- yield execute('window.x = 1234;');
- yield assert(execute('return x;')).equalTo(1234);
- });
-
- test.it('may be defined as a function expression', function*() {
- let result = yield execute(function() {
- return 1234 + 'abc';
- });
- assert(result).equalTo('1234abc');
- });
- });
-
- describe('return values;', function() {
-
- test.it('returns undefined as null', function() {
- return assert(execute('var x; return x;')).isNull();
- });
-
- test.it('can return null', function() {
- return assert(execute('return null;')).isNull();
- });
-
- test.it('can return numbers', function*() {
- yield assert(execute('return 1234')).equalTo(1234);
- yield assert(execute('return 3.1456')).equalTo(3.1456);
- });
-
- test.it('can return strings', function() {
- return assert(execute('return "hello"')).equalTo('hello');
- });
-
- test.it('can return booleans', function*() {
- yield assert(execute('return true')).equalTo(true);
- yield assert(execute('return false')).equalTo(false);
- });
-
- test.it('can return an array of primitives', function() {
- return execute('var x; return [1, false, null, 3.14, x]')
- .then(verifyJson([1, false, null, 3.14, null]));
- });
-
- test.it('can return nested arrays', function() {
- return execute('return [[1, 2, [3]]]').then(verifyJson([[1, 2, [3]]]));
- });
-
- test.ignore(env.browsers(Browser.IE)).
- it('can return empty object literal', function() {
- return execute('return {}').then(verifyJson({}));
- });
-
- test.it('can return object literals', function() {
- return execute('return {a: 1, b: false, c: null}').then(result => {
- verifyJson(['a', 'b', 'c'])(Object.keys(result).sort());
- assert(result.a).equalTo(1);
- assert(result.b).equalTo(false);
- assert(result.c).isNull();
- });
- });
-
- test.it('can return complex object literals', function() {
- return execute('return {a:{b: "hello"}}')
- .then(verifyJson({a:{b: 'hello'}}));
- });
-
- test.it('can return dom elements as web elements', function*() {
- let result =
- yield execute('return document.querySelector(".header.host")');
- assert(result).instanceOf(webdriver.WebElement);
-
- return assert(result.getText()).startsWith('host: ');
- });
-
- test.it('can return array of dom elements', function*() {
- let result = yield execute(
- 'var nodes = document.querySelectorAll(".request,.host");' +
- 'return [nodes[0], nodes[1]];');
- assert(result.length).equalTo(2);
-
- assert(result[0]).instanceOf(webdriver.WebElement);
- yield assert(result[0].getText()).startsWith('GET ');
-
- assert(result[1]).instanceOf(webdriver.WebElement);
- yield assert(result[1].getText()).startsWith('host: ');
- });
-
- test.it('can return a NodeList as an array of web elements', function*() {
- let result =
- yield execute('return document.querySelectorAll(".request,.host");')
-
- assert(result.length).equalTo(2);
-
- assert(result[0]).instanceOf(webdriver.WebElement);
- yield assert(result[0].getText()).startsWith('GET ');
-
- assert(result[1]).instanceOf(webdriver.WebElement);
- yield assert(result[1].getText()).startsWith('host: ');
- });
-
- test.it('can return object literal with element property', function*() {
- let result = yield execute('return {a: document.body}');
-
- assert(result.a).instanceOf(webdriver.WebElement);
- yield assert(result.a.getTagName()).equalTo('body');
- });
- });
-
- describe('parameters;', function() {
- test.it('can pass numeric arguments', function*() {
- yield assert(execute('return arguments[0]', 12)).equalTo(12);
- yield assert(execute('return arguments[0]', 3.14)).equalTo(3.14);
- });
-
- test.it('can pass boolean arguments', function*() {
- yield assert(execute('return arguments[0]', true)).equalTo(true);
- yield assert(execute('return arguments[0]', false)).equalTo(false);
- });
-
- test.it('can pass string arguments', function*() {
- yield assert(execute('return arguments[0]', 'hi')).equalTo('hi');
- });
-
- test.it('can pass null arguments', function*() {
- yield assert(execute('return arguments[0] === null', null)).equalTo(true);
- yield assert(execute('return arguments[0]', null)).equalTo(null);
- });
-
- test.it('passes undefined as a null argument', function*() {
- var x;
- yield assert(execute('return arguments[0] === null', x)).equalTo(true);
- yield assert(execute('return arguments[0]', x)).equalTo(null);
- });
-
- test.it('can pass multiple arguments', function*() {
- yield assert(execute('return arguments.length')).equalTo(0);
- yield assert(execute('return arguments.length', 1, 'a', false)).equalTo(3);
- });
-
- test.ignore(env.browsers(Browser.FIREFOX, Browser.SAFARI)).
- it('can return arguments object as array', function*() {
- let val = yield execute('return arguments', 1, 'a', false);
-
- assert(val.length).equalTo(3);
- assert(val[0]).equalTo(1);
- assert(val[1]).equalTo('a');
- assert(val[2]).equalTo(false);
- });
-
- test.it('can pass object literal', function*() {
- let result = yield execute(
- 'return [typeof arguments[0], arguments[0].a]', {a: 'hello'})
- assert(result[0]).equalTo('object');
- assert(result[1]).equalTo('hello');
- });
-
- test.it('WebElement arguments are passed as DOM elements', function*() {
- let el = yield driver.findElement(By.tagName('div'));
- let result =
- yield execute('return arguments[0].tagName.toLowerCase();', el);
- assert(result).equalTo('div');
- });
-
- test.it('can pass array containing object literals', function*() {
- let result = yield execute('return arguments[0]', [{color: "red"}]);
- assert(result.length).equalTo(1);
- assert(result[0].color).equalTo('red');
- });
-
- test.it('does not modify object literal parameters', function() {
- var input = {color: 'red'};
- return execute('return arguments[0];', input).then(verifyJson(input));
- });
- });
-
- // See https://code.google.com/p/selenium/issues/detail?id=8223.
- describe('issue 8223;', function() {
- describe('using for..in loops;', function() {
- test.it('can return array built from for-loop index', function() {
- return execute(function() {
- var ret = [];
- for (var i = 0; i < 3; i++) {
- ret.push(i);
- }
- return ret;
- }).then(verifyJson[0, 1, 2]);
- });
-
- test.it('can copy input array contents', function() {
- return execute(function(input) {
- var ret = [];
- for (var i in input) {
- ret.push(input[i]);
- }
- return ret;
- }, ['fa', 'fe', 'fi']).then(verifyJson(['fa', 'fe', 'fi']));
- });
-
- test.it('can iterate over input object keys', function() {
- return execute(function(thing) {
- var ret = [];
- for (var w in thing.words) {
- ret.push(thing.words[w].word);
- }
- return ret;
- }, {words: [{word: 'fa'}, {word: 'fe'}, {word: 'fi'}]})
- .then(verifyJson(['fa', 'fe', 'fi']));
- });
-
- describe('recursive functions;', function() {
- test.it('can build array from input', function() {
- var input = ['fa', 'fe', 'fi'];
- return execute(function(thearray) {
- var ret = [];
- function build_response(thearray, ret) {
- ret.push(thearray.shift());
- return (!thearray.length && ret
- || build_response(thearray, ret));
- }
- return build_response(thearray, ret);
- }, input).then(verifyJson(input));
- });
-
- test.it('can build array from elements in object', function() {
- var input = {words: [{word: 'fa'}, {word: 'fe'}, {word: 'fi'}]};
- return execute(function(thing) {
- var ret = [];
- function build_response(thing, ret) {
- var item = thing.words.shift();
- ret.push(item.word);
- return (!thing.words.length && ret
- || build_response(thing, ret));
- }
- return build_response(thing, ret);
- }, input).then(verifyJson(['fa', 'fe', 'fi']));
- });
- });
- });
- });
-
- describe('async timeouts', function() {
- var TIMEOUT_IN_MS = 200;
- var ACCEPTABLE_WAIT = TIMEOUT_IN_MS / 10;
- var TOO_LONG_WAIT = TIMEOUT_IN_MS * 10;
-
- before(function() {
- return driver.manage().timeouts().setScriptTimeout(TIMEOUT_IN_MS)
- });
-
- test.it('does not fail if script execute in time', function() {
- return executeTimeOutScript(ACCEPTABLE_WAIT);
- });
-
- test.it('fails if script took too long', function() {
- return executeTimeOutScript(TOO_LONG_WAIT)
- .then(function() {
- fail('it should have timed out');
- }).catch(function(e) {
- assert(e.name).equalTo('ScriptTimeoutError');
- });
- });
-
- function executeTimeOutScript(sleepTime) {
- return driver.executeAsyncScript(function(sleepTime) {
- var callback = arguments[arguments.length - 1];
- setTimeout(callback, sleepTime)
- }, sleepTime);
- }
- })
- });
-
- function verifyJson(expected) {
- return function(actual) {
- return assert(JSON.stringify(actual)).equalTo(JSON.stringify(expected));
- };
- }
-
- function execute() {
- return driver.executeScript.apply(driver, arguments);
- }
-});
diff --git a/node_modules/selenium-webdriver/test/fingerprint_test.js b/node_modules/selenium-webdriver/test/fingerprint_test.js
deleted file mode 100644
index 0a13dd748..000000000
--- a/node_modules/selenium-webdriver/test/fingerprint_test.js
+++ /dev/null
@@ -1,62 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var assert = require('../testing/assert'),
- test = require('../lib/test'),
- Pages = test.Pages;
-
-
-test.suite(function(env) {
- var browsers = env.browsers;
-
- var driver;
- test.before(function() {
- driver = env.builder().build();
- });
-
- test.after(function() {
- driver.quit();
- });
-
- describe('fingerprinting', function() {
- test.it('it should fingerprint the navigator object', function*() {
- yield driver.get(Pages.simpleTestPage);
-
- let wd = yield driver.executeScript('return navigator.webdriver');
- assert(wd).equalTo(true);
- });
-
- test.it('fingerprint must not be writable', function*() {
- yield driver.get(Pages.simpleTestPage);
-
- let wd = yield driver.executeScript(
- 'navigator.webdriver = "ohai"; return navigator.webdriver');
- assert(wd).equalTo(true);
- });
-
- test.it('leaves fingerprint on svg pages', function*() {
- yield driver.get(Pages.svgPage);
-
- let wd = yield driver.executeScript('return navigator.webdriver');
- assert(wd).equalTo(true);
- });
- });
-
-// Currently only implemented in legacy firefox.
-}, {browsers: ['legacy-firefox']});
diff --git a/node_modules/selenium-webdriver/test/firefox/extension_test.js b/node_modules/selenium-webdriver/test/firefox/extension_test.js
deleted file mode 100644
index 50936f7cd..000000000
--- a/node_modules/selenium-webdriver/test/firefox/extension_test.js
+++ /dev/null
@@ -1,96 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var AdmZip = require('adm-zip'),
- assert = require('assert'),
- crypto = require('crypto'),
- fs = require('fs'),
- path = require('path');
-
-var extension = require('../../firefox/extension'),
- io = require('../../io'),
- it = require('../../testing').it;
-
-
-var JETPACK_EXTENSION = path.join(__dirname,
- '../../lib/test/data/firefox/jetpack-sample.xpi');
-var NORMAL_EXTENSION = path.join(__dirname,
- '../../lib/test/data/firefox/sample.xpi');
-
-var JETPACK_EXTENSION_ID = 'jid1-EaXX7k0wwiZR7w@jetpack';
-var NORMAL_EXTENSION_ID = 'sample@seleniumhq.org';
-
-
-describe('extension', function() {
- it('can install a jetpack xpi file', function() {
- return io.tmpDir().then(function(dir) {
- return extension.install(JETPACK_EXTENSION, dir).then(function(id) {
- assert.equal(JETPACK_EXTENSION_ID, id);
- var file = path.join(dir, id + '.xpi');
- assert.ok(fs.existsSync(file), 'no such file: ' + file);
- assert.ok(!fs.statSync(file).isDirectory());
-
- var copiedSha1 = crypto.createHash('sha1')
- .update(fs.readFileSync(file))
- .digest('hex');
-
- var goldenSha1 = crypto.createHash('sha1')
- .update(fs.readFileSync(JETPACK_EXTENSION))
- .digest('hex');
-
- assert.equal(copiedSha1, goldenSha1);
- });
- });
- });
-
- it('can install a normal xpi file', function() {
- return io.tmpDir().then(function(dir) {
- return extension.install(NORMAL_EXTENSION, dir).then(function(id) {
- assert.equal(NORMAL_EXTENSION_ID, id);
-
- var file = path.join(dir, NORMAL_EXTENSION_ID);
- assert.ok(fs.statSync(file).isDirectory());
-
- assert.ok(fs.existsSync(path.join(file, 'chrome.manifest')));
- assert.ok(fs.existsSync(path.join(file, 'content/overlay.xul')));
- assert.ok(fs.existsSync(path.join(file, 'content/overlay.js')));
- assert.ok(fs.existsSync(path.join(file, 'install.rdf')));
- });
- });
- });
-
- it('can install an extension from a directory', function() {
- return io.tmpDir().then(function(srcDir) {
- var buf = fs.readFileSync(NORMAL_EXTENSION);
- new AdmZip(buf).extractAllTo(srcDir, true);
- return io.tmpDir().then(function(dstDir) {
- return extension.install(srcDir, dstDir).then(function(id) {
- assert.equal(NORMAL_EXTENSION_ID, id);
-
- var dir = path.join(dstDir, NORMAL_EXTENSION_ID);
-
- assert.ok(fs.existsSync(path.join(dir, 'chrome.manifest')));
- assert.ok(fs.existsSync(path.join(dir, 'content/overlay.xul')));
- assert.ok(fs.existsSync(path.join(dir, 'content/overlay.js')));
- assert.ok(fs.existsSync(path.join(dir, 'install.rdf')));
- });
- });
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/firefox/firefox_test.js b/node_modules/selenium-webdriver/test/firefox/firefox_test.js
deleted file mode 100644
index dbf9910fa..000000000
--- a/node_modules/selenium-webdriver/test/firefox/firefox_test.js
+++ /dev/null
@@ -1,226 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var path = require('path');
-
-var firefox = require('../../firefox'),
- io = require('../../io'),
- test = require('../../lib/test'),
- assert = require('../../testing/assert'),
- Context = require('../../firefox').Context,
- error = require('../..').error;
-
-var {consume} = require('../../lib/promise');
-
-
-var JETPACK_EXTENSION = path.join(__dirname,
- '../../lib/test/data/firefox/jetpack-sample.xpi');
-var NORMAL_EXTENSION = path.join(__dirname,
- '../../lib/test/data/firefox/sample.xpi');
-
-
-test.suite(function(env) {
- describe('firefox', function() {
- describe('Options', function() {
- var driver;
-
- test.beforeEach(function() {
- driver = null;
- });
-
- test.afterEach(function() {
- if (driver) {
- return driver.quit();
- }
- });
-
- /**
- * Runs a test that requires Firefox Developer Edition. The test will be
- * skipped if dev cannot be found on the current system.
- */
- function runWithFirefoxDev(options, testFn) {
- return firefox.Channel.AURORA.locate().then(exe => {
- options.setBinary(exe);
- driver = env.builder()
- .setFirefoxOptions(options)
- .build();
- return driver.call(testFn);
- }, err => {
- console.warn(
- 'Skipping test: could not find Firefox Dev Edition: ' + err);
- });
- }
-
- describe('can start Firefox with custom preferences', function() {
- function runTest(opt_dir) {
- return consume(function*() {
- let profile = new firefox.Profile(opt_dir);
- profile.setPreference('general.useragent.override', 'foo;bar');
-
- let options = new firefox.Options().setProfile(profile);
-
- driver = env.builder().
- setFirefoxOptions(options).
- build();
-
- yield driver.get('data:text/html,<html><div>content</div></html>');
-
- var userAgent = yield driver.executeScript(
- 'return window.navigator.userAgent');
- assert(userAgent).equalTo('foo;bar');
- });
- }
-
- test.it('profile created from scratch', function() {
- return runTest();
- });
-
- test.it('profile created from template', function() {
- return io.tmpDir().then(runTest);
- });
- });
-
- test.it('can start Firefox with a jetpack extension', function() {
- let profile = new firefox.Profile();
- profile.addExtension(JETPACK_EXTENSION);
-
- let options = new firefox.Options().setProfile(profile);
-
- return runWithFirefoxDev(options, function*() {
- yield loadJetpackPage(driver,
- 'data:text/html;charset=UTF-8,<html><div>content</div></html>');
-
- let text =
- yield driver.findElement({id: 'jetpack-sample-banner'}).getText();
- assert(text).equalTo('Hello, world!');
- });
- });
-
- test.it('can start Firefox with a normal extension', function() {
- let profile = new firefox.Profile();
- profile.addExtension(NORMAL_EXTENSION);
-
- let options = new firefox.Options().setProfile(profile);
-
- return runWithFirefoxDev(options, function*() {
- yield driver.get('data:text/html,<html><div>content</div></html>');
-
- let footer =
- yield driver.findElement({id: 'sample-extension-footer'});
- let text = yield footer.getText();
- assert(text).equalTo('Goodbye');
- });
- });
-
- test.it('can start Firefox with multiple extensions', function() {
- let profile = new firefox.Profile();
- profile.addExtension(JETPACK_EXTENSION);
- profile.addExtension(NORMAL_EXTENSION);
-
- let options = new firefox.Options().setProfile(profile);
-
- return runWithFirefoxDev(options, function*() {
- yield loadJetpackPage(driver,
- 'data:text/html;charset=UTF-8,<html><div>content</div></html>');
-
- let banner =
- yield driver.findElement({id: 'jetpack-sample-banner'}).getText();
- assert(banner).equalTo('Hello, world!');
-
- let footer =
- yield driver.findElement({id: 'sample-extension-footer'})
- .getText();
- assert(footer).equalTo('Goodbye');
- });
- });
-
- function loadJetpackPage(driver, url) {
- // On linux the jetpack extension does not always run the first time
- // we load a page. If this happens, just reload the page (a simple
- // refresh doesn't appear to work).
- return driver.wait(function() {
- driver.get(url);
- return driver.findElements({id: 'jetpack-sample-banner'})
- .then(found => found.length > 0);
- }, 3000);
- }
- });
-
- describe('binary management', function() {
- var driver1, driver2;
-
- test.ignore(env.isRemote).
- it('can start multiple sessions with single binary instance', function*() {
- var options = new firefox.Options().setBinary(new firefox.Binary);
- env.builder().setFirefoxOptions(options);
- driver1 = yield env.builder().build();
- driver2 = yield env.builder().build();
- // Ok if this doesn't fail.
- });
-
- test.afterEach(function*() {
- if (driver1) {
- yield driver1.quit();
- }
-
- if (driver2) {
- yield driver2.quit();
- }
- });
- });
-
- describe('context switching', function() {
- var driver;
-
- test.beforeEach(function*() {
- driver = yield env.builder().build();
- });
-
- test.afterEach(function() {
- if (driver) {
- return driver.quit();
- }
- });
-
- test.ignore(() => !env.isMarionette).
- it('can get context', function() {
- return assert(driver.getContext()).equalTo(Context.CONTENT);
- });
-
- test.ignore(() => !env.isMarionette).
- it('can set context', function*() {
- yield driver.setContext(Context.CHROME);
- let ctxt = yield driver.getContext();
- assert(ctxt).equalTo(Context.CHROME);
-
- yield driver.setContext(Context.CONTENT);
- ctxt = yield driver.getContext();
- assert(ctxt).equalTo(Context.CONTENT);
- });
-
- test.ignore(() => !env.isMarionette).
- it('throws on unknown context', function() {
- return driver.setContext("foo").then(assert.fail, function(e) {
- assert(e).instanceOf(error.InvalidArgumentError);
- });
- });
- });
-
- });
-}, {browsers: ['firefox']});
diff --git a/node_modules/selenium-webdriver/test/firefox/profile_test.js b/node_modules/selenium-webdriver/test/firefox/profile_test.js
deleted file mode 100644
index de61c26b5..000000000
--- a/node_modules/selenium-webdriver/test/firefox/profile_test.js
+++ /dev/null
@@ -1,185 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var AdmZip = require('adm-zip'),
- assert = require('assert'),
- fs = require('fs'),
- path = require('path');
-
-var promise = require('../..').promise,
- Profile = require('../../firefox/profile').Profile,
- decode = require('../../firefox/profile').decode,
- loadUserPrefs = require('../../firefox/profile').loadUserPrefs,
- io = require('../../io');
-
-
-var JETPACK_EXTENSION = path.join(__dirname,
- '../../lib/test/data/firefox/jetpack-sample.xpi');
-var NORMAL_EXTENSION = path.join(__dirname,
- '../../lib/test/data/firefox/sample.xpi');
-
-var JETPACK_EXTENSION_ID = 'jid1-EaXX7k0wwiZR7w@jetpack.xpi';
-var NORMAL_EXTENSION_ID = 'sample@seleniumhq.org';
-var WEBDRIVER_EXTENSION_ID = 'fxdriver@googlecode.com';
-
-
-
-describe('Profile', function() {
- describe('setPreference', function() {
- it('allows setting custom properties', function() {
- var profile = new Profile();
- assert.equal(undefined, profile.getPreference('foo'));
-
- profile.setPreference('foo', 'bar');
- assert.equal('bar', profile.getPreference('foo'));
- });
-
- it('allows overriding mutable properties', function() {
- var profile = new Profile();
-
- profile.setPreference('browser.newtab.url', 'http://www.example.com');
- assert.equal('http://www.example.com',
- profile.getPreference('browser.newtab.url'));
- });
-
- it('throws if setting a frozen preference', function() {
- var profile = new Profile();
- assert.throws(function() {
- profile.setPreference('app.update.auto', true);
- });
- });
- });
-
- describe('writeToDisk', function() {
- it('copies template directory recursively', function() {
- var templateDir;
- return io.tmpDir().then(function(td) {
- templateDir = td;
- var foo = path.join(templateDir, 'foo');
- fs.writeFileSync(foo, 'Hello, world');
-
- var bar = path.join(templateDir, 'subfolder/bar');
- fs.mkdirSync(path.dirname(bar));
- fs.writeFileSync(bar, 'Goodbye, world!');
-
- return new Profile(templateDir).writeToDisk();
- }).then(function(profileDir) {
- assert.notEqual(profileDir, templateDir);
-
- assert.equal('Hello, world',
- fs.readFileSync(path.join(profileDir, 'foo')));
- assert.equal('Goodbye, world!',
- fs.readFileSync(path.join(profileDir, 'subfolder/bar')));
- });
- });
-
- it('does not copy lock files', function() {
- return io.tmpDir().then(function(dir) {
- fs.writeFileSync(path.join(dir, 'parent.lock'), 'lock');
- fs.writeFileSync(path.join(dir, 'lock'), 'lock');
- fs.writeFileSync(path.join(dir, '.parentlock'), 'lock');
- return new Profile(dir).writeToDisk();
- }).then(function(dir) {
- assert.ok(fs.existsSync(dir));
- assert.ok(!fs.existsSync(path.join(dir, 'parent.lock')));
- assert.ok(!fs.existsSync(path.join(dir, 'lock')));
- assert.ok(!fs.existsSync(path.join(dir, '.parentlock')));
- });
- });
-
- describe('user.js', function() {
-
- it('writes defaults', function() {
- return new Profile().writeToDisk().then(function(dir) {
- return loadUserPrefs(path.join(dir, 'user.js'));
- }).then(function(prefs) {
- // Just check a few.
- assert.equal(false, prefs['app.update.auto']);
- assert.equal(true, prefs['browser.EULA.override']);
- assert.equal(false, prefs['extensions.update.enabled']);
- assert.equal('about:blank', prefs['browser.newtab.url']);
- assert.equal(30, prefs['dom.max_script_run_time']);
- });
- });
-
- it('merges template user.js into preferences', function() {
- return io.tmpDir().then(function(dir) {
- fs.writeFileSync(path.join(dir, 'user.js'), [
- 'user_pref("browser.newtab.url", "http://www.example.com")',
- 'user_pref("dom.max_script_run_time", 1234)'
- ].join('\n'));
-
- return new Profile(dir).writeToDisk();
- }).then(function(profile) {
- return loadUserPrefs(path.join(profile, 'user.js'));
- }).then(function(prefs) {
- assert.equal('http://www.example.com', prefs['browser.newtab.url']);
- assert.equal(1234, prefs['dom.max_script_run_time']);
- });
- });
-
- it('ignores frozen preferences when merging template user.js',
- function() {
- return io.tmpDir().then(function(dir) {
- fs.writeFileSync(path.join(dir, 'user.js'),
- 'user_pref("app.update.auto", true)');
- return new Profile(dir).writeToDisk();
- }).then(function(profile) {
- return loadUserPrefs(path.join(profile, 'user.js'));
- }).then(function(prefs) {
- assert.equal(false, prefs['app.update.auto']);
- });
- });
- });
-
- describe('extensions', function() {
- it('are copied into new profile directory', function() {
- var profile = new Profile();
- profile.addExtension(JETPACK_EXTENSION);
- profile.addExtension(NORMAL_EXTENSION);
-
- return profile.writeToDisk().then(function(dir) {
- dir = path.join(dir, 'extensions');
- assert.ok(fs.existsSync(path.join(dir, JETPACK_EXTENSION_ID)));
- assert.ok(fs.existsSync(path.join(dir, NORMAL_EXTENSION_ID)));
- assert.ok(fs.existsSync(path.join(dir, WEBDRIVER_EXTENSION_ID)));
- });
- });
- });
- });
-
- describe('encode', function() {
- it('excludes the bundled WebDriver extension', function() {
- return new Profile().encode().then(function(data) {
- return decode(data);
- }).then(function(dir) {
- assert.ok(fs.existsSync(path.join(dir, 'user.js')));
- assert.ok(fs.existsSync(path.join(dir, 'extensions')));
- return loadUserPrefs(path.join(dir, 'user.js'));
- }).then(function(prefs) {
- // Just check a few.
- assert.equal(false, prefs['app.update.auto']);
- assert.equal(true, prefs['browser.EULA.override']);
- assert.equal(false, prefs['extensions.update.enabled']);
- assert.equal('about:blank', prefs['browser.newtab.url']);
- assert.equal(30, prefs['dom.max_script_run_time']);
- });
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/http/http_test.js b/node_modules/selenium-webdriver/test/http/http_test.js
deleted file mode 100644
index 6056cda8e..000000000
--- a/node_modules/selenium-webdriver/test/http/http_test.js
+++ /dev/null
@@ -1,205 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var assert = require('assert'),
- http = require('http'),
- url = require('url');
-
-var HttpClient = require('../../http').HttpClient,
- HttpRequest = require('../../lib/http').Request,
- HttpResponse = require('../../lib/http').Response,
- Server = require('../../lib/test/httpserver').Server;
-
-describe('HttpClient', function() {
- this.timeout(4 * 1000);
-
- var server = new Server(function(req, res) {
- let parsedUrl = url.parse(req.url);
-
- if (req.method == 'GET' && req.url == '/echo') {
- res.writeHead(200, req.headers);
- res.end();
-
- } else if (req.method == 'GET' && req.url == '/redirect') {
- res.writeHead(303, {'Location': server.url('/hello')});
- res.end();
-
- } else if (req.method == 'GET' && req.url == '/hello') {
- res.writeHead(200, {'content-type': 'text/plain'});
- res.end('hello, world!');
-
- } else if (req.method == 'GET' && req.url == '/badredirect') {
- res.writeHead(303, {});
- res.end();
-
- } else if (req.method == 'GET' && req.url == '/protected') {
- var denyAccess = function() {
- res.writeHead(401, {'WWW-Authenticate': 'Basic realm="test"'});
- res.end('Access denied');
- };
-
- var basicAuthRegExp = /^\s*basic\s+([a-z0-9\-\._~\+\/]+)=*\s*$/i
- var auth = req.headers.authorization;
- var match = basicAuthRegExp.exec(auth || '');
- if (!match) {
- denyAccess();
- return;
- }
-
- var userNameAndPass = new Buffer(match[1], 'base64').toString();
- var parts = userNameAndPass.split(':', 2);
- if (parts[0] !== 'genie' && parts[1] !== 'bottle') {
- denyAccess();
- return;
- }
-
- res.writeHead(200, {'content-type': 'text/plain'});
- res.end('Access granted!');
-
- } else if (req.method == 'GET'
- && parsedUrl.pathname
- && parsedUrl.pathname.endsWith('/proxy')) {
- let headers = Object.assign({}, req.headers);
- headers['x-proxy-request-uri'] = req.url;
- res.writeHead(200, headers);
- res.end();
-
- } else if (req.method == 'GET'
- && parsedUrl.pathname
- && parsedUrl.pathname.endsWith('/proxy/redirect')) {
- let path = `/proxy${parsedUrl.search || ''}${parsedUrl.hash || ''}`;
- res.writeHead(303, {'Location': path});
- res.end();
-
- } else {
- res.writeHead(404, {});
- res.end();
- }
- });
-
- before(function() {
- return server.start();
- });
-
- after(function() {
- return server.stop();
- });
-
- it('can send a basic HTTP request', function() {
- var request = new HttpRequest('GET', '/echo');
- request.headers.set('Foo', 'Bar');
-
- var agent = new http.Agent();
- agent.maxSockets = 1; // Only making 1 request.
-
- var client = new HttpClient(server.url(), agent);
- return client.send(request).then(function(response) {
- assert.equal(200, response.status);
- assert.equal(response.headers.get('content-length'), '0');
- assert.equal(response.headers.get('connection'), 'keep-alive');
- assert.equal(response.headers.get('host'), server.host());
-
- assert.equal(request.headers.get('Foo'), 'Bar');
- assert.equal(
- request.headers.get('Accept'), 'application/json; charset=utf-8');
- });
- });
-
- it('can use basic auth', function() {
- var parsed = url.parse(server.url());
- parsed.auth = 'genie:bottle';
-
- var client = new HttpClient(url.format(parsed));
- var request = new HttpRequest('GET', '/protected');
- return client.send(request).then(function(response) {
- assert.equal(200, response.status);
- assert.equal(response.headers.get('content-type'), 'text/plain');
- assert.equal(response.body, 'Access granted!');
- });
- });
-
- it('fails requests missing required basic auth', function() {
- var client = new HttpClient(server.url());
- var request = new HttpRequest('GET', '/protected');
- return client.send(request).then(function(response) {
- assert.equal(401, response.status);
- assert.equal(response.body, 'Access denied');
- });
- });
-
- it('automatically follows redirects', function() {
- var request = new HttpRequest('GET', '/redirect');
- var client = new HttpClient(server.url());
- return client.send(request).then(function(response) {
- assert.equal(200, response.status);
- assert.equal(response.headers.get('content-type'), 'text/plain');
- assert.equal(response.body, 'hello, world!');
- });
- });
-
- it('handles malformed redirect responses', function() {
- var request = new HttpRequest('GET', '/badredirect');
- var client = new HttpClient(server.url());
- return client.send(request).then(assert.fail, function(err) {
- assert.ok(/Failed to parse "Location"/.test(err.message),
- 'Not the expected error: ' + err.message);
- });
- });
-
- describe('with proxy', function() {
- it('sends request to proxy with absolute URI', function() {
- var request = new HttpRequest('GET', '/proxy');
- var client = new HttpClient(
- 'http://another.server.com', undefined, server.url());
- return client.send(request).then(function(response) {
- assert.equal(200, response.status);
- assert.equal(response.headers.get('host'), 'another.server.com');
- assert.equal(
- response.headers.get('x-proxy-request-uri'),
- 'http://another.server.com/proxy');
- });
- });
-
- it('uses proxy when following redirects', function() {
- var request = new HttpRequest('GET', '/proxy/redirect');
- var client = new HttpClient(
- 'http://another.server.com', undefined, server.url());
- return client.send(request).then(function(response) {
- assert.equal(200, response.status);
- assert.equal(response.headers.get('host'), 'another.server.com');
- assert.equal(
- response.headers.get('x-proxy-request-uri'),
- 'http://another.server.com/proxy');
- });
- });
-
- it('includes search and hash in redirect URI', function() {
- var request = new HttpRequest('GET', '/proxy/redirect?foo#bar');
- var client = new HttpClient(
- 'http://another.server.com', undefined, server.url());
- return client.send(request).then(function(response) {
- assert.equal(200, response.status);
- assert.equal(response.headers.get('host'), 'another.server.com');
- assert.equal(
- response.headers.get('x-proxy-request-uri'),
- 'http://another.server.com/proxy?foo#bar');
- });
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/http/util_test.js b/node_modules/selenium-webdriver/test/http/util_test.js
deleted file mode 100644
index 6361c0650..000000000
--- a/node_modules/selenium-webdriver/test/http/util_test.js
+++ /dev/null
@@ -1,178 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const assert = require('assert');
-const http = require('http');
-
-const error = require('../../lib/error');
-const util = require('../../http/util');
-const promise = require('../../lib/promise');
-
-describe('selenium-webdriver/http/util', function() {
-
- var server, baseUrl;
-
- var status, value, responseCode;
-
- function startServer(done) {
- if (server) return done();
-
- server = http.createServer(function(req, res) {
- var data = JSON.stringify({status: status, value: value});
- res.writeHead(responseCode, {
- 'Content-Type': 'application/json; charset=utf-8',
- 'Content-Length': Buffer.byteLength(data, 'utf8')
- });
- res.end(data);
- });
-
- server.listen(0, '127.0.0.1', function(e) {
- if (e) return done(e);
-
- var addr = server.address();
- baseUrl = 'http://' + addr.address + ':' + addr.port;
- done();
- });
- }
-
- function killServer(done) {
- if (!server) return done();
- server.close(done);
- server = null;
- }
-
- after(killServer);
-
- beforeEach(function(done) {
- status = 0;
- value = 'abc123';
- responseCode = 200;
- startServer(done);
- });
-
- describe('#getStatus', function() {
- it('should return value field on success', function() {
- return util.getStatus(baseUrl).then(function(response) {
- assert.equal('abc123', response);
- });
- });
-
- it('should fail if response object is not success', function() {
- status = 1;
- return util.getStatus(baseUrl).then(function() {
- throw Error('expected a failure');
- }, function(err) {
- assert.ok(err instanceof error.WebDriverError);
- assert.equal(err.code, error.WebDriverError.code);
- assert.equal(err.message, value);
- });
- });
-
- it('should fail if the server is not listening', function(done) {
- killServer(function(e) {
- if(e) return done(e);
-
- util.getStatus(baseUrl).then(function() {
- done(Error('expected a failure'));
- }, function() {
- // Expected.
- done();
- });
- });
- });
-
- it('should fail if HTTP status is not 200', function() {
- status = 1;
- responseCode = 404;
- return util.getStatus(baseUrl).then(function() {
- throw Error('expected a failure');
- }, function(err) {
- assert.ok(err instanceof error.WebDriverError);
- assert.equal(err.code, error.WebDriverError.code);
- assert.equal(err.message, value);
- });
- });
- });
-
- describe('#waitForServer', function() {
- it('resolves when server is ready', function() {
- status = 1;
- setTimeout(function() { status = 0; }, 50);
- return util.waitForServer(baseUrl, 100);
- });
-
- it('should fail if server does not become ready', function() {
- status = 1;
- return util.waitForServer(baseUrl, 50).
- then(function() {throw Error('Expected to time out')},
- function() {});
- });
-
- it('can cancel wait', function() {
- status = 1;
- let cancel = new Promise(resolve => {
- setTimeout(_ => resolve(), 50)
- });
- return util.waitForServer(baseUrl, 200, cancel)
- .then(
- () => { throw Error('Did not expect to succeed!'); },
- (e) => assert.ok(e instanceof promise.CancellationError));
- });
- });
-
- describe('#waitForUrl', function() {
- it('succeeds when URL returns 2xx', function() {
- responseCode = 404;
- setTimeout(function() { responseCode = 200; }, 50);
-
- return util.waitForUrl(baseUrl, 200);
- });
-
- it('fails if URL always returns 4xx', function() {
- responseCode = 404;
-
- return util.waitForUrl(baseUrl, 50)
- .then(() => assert.fail('Expected to time out'),
- () => true);
- });
-
- it('fails if cannot connect to server', function() {
- return new Promise((resolve, reject) => {
- killServer(function(e) {
- if (e) return reject(e);
-
- util.waitForUrl(baseUrl, 50).
- then(function() { reject(Error('Expected to time out')); },
- function() { resolve(); });
- });
- });
- });
-
- it('can cancel wait', function() {
- responseCode = 404;
- let cancel = new Promise(resolve => {
- setTimeout(_ => resolve(), 50);
- });
- return util.waitForUrl(baseUrl, 200, cancel)
- .then(
- () => { throw Error('Did not expect to succeed!'); },
- (e) => assert.ok(e instanceof promise.CancellationError));
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/io_test.js b/node_modules/selenium-webdriver/test/io_test.js
deleted file mode 100644
index 840d7644b..000000000
--- a/node_modules/selenium-webdriver/test/io_test.js
+++ /dev/null
@@ -1,321 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var assert = require('assert'),
- fs = require('fs'),
- path = require('path'),
- tmp = require('tmp');
-
-var io = require('../io');
-
-
-describe('io', function() {
- describe('copy', function() {
- var tmpDir;
-
- before(function() {
- return io.tmpDir().then(function(d) {
- tmpDir = d;
-
- fs.writeFileSync(path.join(d, 'foo'), 'Hello, world');
- });
- });
-
- it('can copy one file to another', function() {
- return io.tmpFile().then(function(f) {
- return io.copy(path.join(tmpDir, 'foo'), f).then(function(p) {
- assert.equal(p, f);
- assert.equal('Hello, world', fs.readFileSync(p));
- });
- });
- });
-
- it('can copy symlink to destination', function() {
- if (process.platform === 'win32') {
- return; // No symlinks on windows.
- }
- fs.symlinkSync(
- path.join(tmpDir, 'foo'),
- path.join(tmpDir, 'symlinked-foo'));
- return io.tmpFile().then(function(f) {
- return io.copy(path.join(tmpDir, 'symlinked-foo'), f).then(function(p) {
- assert.equal(p, f);
- assert.equal('Hello, world', fs.readFileSync(p));
- });
- });
- });
-
- it('fails if given a directory as a source', function() {
- return io.tmpFile().then(function(f) {
- return io.copy(tmpDir, f);
- }).then(function() {
- throw Error('Should have failed with a type error');
- }, function() {
- // Do nothing; expected.
- });
- });
- });
-
- describe('copyDir', function() {
- it('copies recursively', function() {
- return io.tmpDir().then(function(dir) {
- fs.writeFileSync(path.join(dir, 'file1'), 'hello');
- fs.mkdirSync(path.join(dir, 'sub'));
- fs.mkdirSync(path.join(dir, 'sub/folder'));
- fs.writeFileSync(path.join(dir, 'sub/folder/file2'), 'goodbye');
-
- return io.tmpDir().then(function(dst) {
- return io.copyDir(dir, dst).then(function(ret) {
- assert.equal(dst, ret);
-
- assert.equal('hello',
- fs.readFileSync(path.join(dst, 'file1')));
- assert.equal('goodbye',
- fs.readFileSync(path.join(dst, 'sub/folder/file2')));
- });
- });
- });
- });
-
- it('creates destination dir if necessary', function() {
- return io.tmpDir().then(function(srcDir) {
- fs.writeFileSync(path.join(srcDir, 'foo'), 'hi');
- return io.tmpDir().then(function(dstDir) {
- return io.copyDir(srcDir, path.join(dstDir, 'sub'));
- });
- }).then(function(p) {
- assert.equal('sub', path.basename(p));
- assert.equal('hi', fs.readFileSync(path.join(p, 'foo')));
- });
- });
-
- it('supports regex exclusion filter', function() {
- return io.tmpDir().then(function(src) {
- fs.writeFileSync(path.join(src, 'foo'), 'a');
- fs.writeFileSync(path.join(src, 'bar'), 'b');
- fs.writeFileSync(path.join(src, 'baz'), 'c');
- fs.mkdirSync(path.join(src, 'sub'));
- fs.writeFileSync(path.join(src, 'sub/quux'), 'd');
- fs.writeFileSync(path.join(src, 'sub/quot'), 'e');
-
- return io.tmpDir().then(function(dst) {
- return io.copyDir(src, dst, /(bar|quux)/);
- });
- }).then(function(dir) {
- assert.equal('a', fs.readFileSync(path.join(dir, 'foo')));
- assert.equal('c', fs.readFileSync(path.join(dir, 'baz')));
- assert.equal('e', fs.readFileSync(path.join(dir, 'sub/quot')));
-
- assert.ok(!fs.existsSync(path.join(dir, 'bar')));
- assert.ok(!fs.existsSync(path.join(dir, 'sub/quux')));
- });
- });
-
- it('supports exclusion filter function', function() {
- return io.tmpDir().then(function(src) {
- fs.writeFileSync(path.join(src, 'foo'), 'a');
- fs.writeFileSync(path.join(src, 'bar'), 'b');
- fs.writeFileSync(path.join(src, 'baz'), 'c');
- fs.mkdirSync(path.join(src, 'sub'));
- fs.writeFileSync(path.join(src, 'sub/quux'), 'd');
- fs.writeFileSync(path.join(src, 'sub/quot'), 'e');
-
- return io.tmpDir().then(function(dst) {
- return io.copyDir(src, dst, function(f) {
- return f !== path.join(src, 'foo')
- && f !== path.join(src, 'sub/quot');
- });
- });
- }).then(function(dir) {
- assert.equal('b', fs.readFileSync(path.join(dir, 'bar')));
- assert.equal('c', fs.readFileSync(path.join(dir, 'baz')));
- assert.equal('d', fs.readFileSync(path.join(dir, 'sub/quux')));
-
- assert.ok(!fs.existsSync(path.join(dir, 'foo')));
- assert.ok(!fs.existsSync(path.join(dir, 'sub/quot')));
- });
- });
- });
-
- describe('exists', function() {
- var dir;
-
- before(function() {
- return io.tmpDir().then(function(d) {
- dir = d;
- });
- });
-
- it('returns a rejected promise if input value is invalid', function() {
- return io.exists(undefined).then(
- () => assert.fail('should have failed'),
- e => assert.ok(e instanceof TypeError));
- });
-
- it('works for directories', function() {
- return io.exists(dir).then(assert.ok);
- });
-
- it('works for files', function() {
- var file = path.join(dir, 'foo');
- fs.writeFileSync(file, '');
- return io.exists(file).then(assert.ok);
- });
-
- it('does not return a rejected promise if file does not exist', function() {
- return io.exists(path.join(dir, 'not-there')).then(function(exists) {
- assert.ok(!exists);
- });
- });
- });
-
- describe('unlink', function() {
- var dir;
-
- before(function() {
- return io.tmpDir().then(function(d) {
- dir = d;
- });
- });
-
- it('silently succeeds if the path does not exist', function() {
- return io.unlink(path.join(dir, 'not-there'));
- });
-
- it('deletes files', function() {
- var file = path.join(dir, 'foo');
- fs.writeFileSync(file, '');
- return io.exists(file).then(assert.ok).then(function() {
- return io.unlink(file);
- }).then(function() {
- return io.exists(file);
- }).then(function(exists) {
- return assert.ok(!exists);
- });
- });
- });
-
- describe('rmDir', function() {
- it('succeeds if the designated directory does not exist', function() {
- return io.tmpDir().then(function(d) {
- return io.rmDir(path.join(d, 'i/do/not/exist'));
- });
- });
-
- it('deletes recursively', function() {
- return io.tmpDir().then(function(dir) {
- fs.writeFileSync(path.join(dir, 'file1'), 'hello');
- fs.mkdirSync(path.join(dir, 'sub'));
- fs.mkdirSync(path.join(dir, 'sub/folder'));
- fs.writeFileSync(path.join(dir, 'sub/folder/file2'), 'goodbye');
-
- return io.rmDir(dir).then(function() {
- assert.ok(!fs.existsSync(dir));
- assert.ok(!fs.existsSync(path.join(dir, 'sub/folder/file2')));
- });
- });
- });
- });
-
- describe('findInPath', function() {
- const savedPathEnv = process.env['PATH'];
- afterEach(() => process.env['PATH'] = savedPathEnv);
-
- const cwd = process.cwd;
- afterEach(() => process.cwd = cwd);
-
- let dirs;
- beforeEach(() => {
- return Promise.all([io.tmpDir(), io.tmpDir(), io.tmpDir()]).then(arr => {
- dirs = arr;
- process.env['PATH'] = arr.join(path.delimiter);
- });
- });
-
- it('returns null if file cannot be found', () => {
- assert.strictEqual(io.findInPath('foo.txt'), null);
- });
-
- it('can find file on path', () => {
- let filePath = path.join(dirs[1], 'foo.txt');
- fs.writeFileSync(filePath, 'hi');
-
- assert.strictEqual(io.findInPath('foo.txt'), filePath);
- });
-
- it('returns null if file is in a subdir of a directory on the path', () => {
- let subDir = path.join(dirs[2], 'sub');
- fs.mkdirSync(subDir);
-
- let filePath = path.join(subDir, 'foo.txt');
- fs.writeFileSync(filePath, 'hi');
-
- assert.strictEqual(io.findInPath('foo.txt'), null);
- });
-
- it('does not match on directories', () => {
- fs.mkdirSync(path.join(dirs[2], 'sub'));
- assert.strictEqual(io.findInPath('sub'), null);
- });
-
- it('will look in cwd first if requested', () => {
- return io.tmpDir().then(fakeCwd => {
- process.cwd = () => fakeCwd;
-
- let theFile = path.join(fakeCwd, 'foo.txt');
-
- fs.writeFileSync(path.join(dirs[1], 'foo.txt'), 'hi');
- fs.writeFileSync(theFile, 'bye');
-
- assert.strictEqual(io.findInPath('foo.txt', true), theFile);
- });
- });
- });
-
- describe('read', function() {
- var tmpDir;
-
- before(function() {
- return io.tmpDir().then(function(d) {
- tmpDir = d;
-
- fs.writeFileSync(path.join(d, 'foo'), 'Hello, world');
- });
- });
-
- it('can read a file', function() {
- return io.read(path.join(tmpDir, 'foo')).then(buff => {
- assert.ok(buff instanceof Buffer);
- assert.equal('Hello, world', buff.toString());
- });
- });
-
- it('catches errors from invalid input', function() {
- return io.read({})
- .then(() => assert.fail('should have failed'),
- (e) => assert.ok(e instanceof TypeError));
- });
-
- it('rejects returned promise if file does not exist', function() {
- return io.read(path.join(tmpDir, 'not-there'))
- .then(() => assert.fail('should have failed'),
- (e) => assert.equal('ENOENT', e.code));
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/lib/by_test.js b/node_modules/selenium-webdriver/test/lib/by_test.js
deleted file mode 100644
index 34314fbf8..000000000
--- a/node_modules/selenium-webdriver/test/lib/by_test.js
+++ /dev/null
@@ -1,160 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var assert = require('assert');
-var by = require('../../lib/by');
-
-describe('by', function() {
- describe('By', function() {
- describe('className', function() {
- it('delegates to By.css', function() {
- let locator = by.By.className('foo');
- assert.equal('css selector', locator.using);
- assert.equal('.foo', locator.value);
- });
-
- it('escapes class name', function() {
- let locator = by.By.className('foo#bar');
- assert.equal('css selector', locator.using);
- assert.equal('.foo\\#bar', locator.value);
- });
-
- it('translates compound class names', function() {
- let locator = by.By.className('a b');
- assert.equal('css selector', locator.using);
- assert.equal('.a.b', locator.value);
-
- locator = by.By.className(' x y z-1 "g" ');
- assert.equal('css selector', locator.using);
- assert.equal('.x.y.z-1.\\"g\\"', locator.value);
- });
- });
-
- describe('id', function() {
- it('delegates to By.css', function() {
- let locator = by.By.id('foo');
- assert.equal('css selector', locator.using);
- assert.equal('*[id="foo"]', locator.value);
- });
-
- it('escapes the ID', function() {
- let locator = by.By.id('foo#bar');
- assert.equal('css selector', locator.using);
- assert.equal('*[id="foo\\#bar"]', locator.value);
- });
- });
-
- describe('name', function() {
- it('delegates to By.css', function() {
- let locator = by.By.name('foo')
- assert.equal('css selector', locator.using);
- assert.equal('*[name="foo"]', locator.value);
- });
-
- it('escapes the name', function() {
- let locator = by.By.name('foo"bar"')
- assert.equal('css selector', locator.using);
- assert.equal('*[name="foo\\"bar\\""]', locator.value);
- });
-
- it('escapes the name when it starts with a number', function() {
- let locator = by.By.name('123foo"bar"')
- assert.equal('css selector', locator.using);
- assert.equal('*[name="\\31 23foo\\"bar\\""]', locator.value);
- });
-
- it('escapes the name when it starts with a negative number', function() {
- let locator = by.By.name('-123foo"bar"')
- assert.equal('css selector', locator.using);
- assert.equal('*[name="-\\31 23foo\\"bar\\""]', locator.value);
- });
- });
- });
-
- describe('checkedLocator', function() {
- it('accepts a By instance', function() {
- let original = by.By.name('foo');
- let locator = by.checkedLocator(original);
- assert.strictEqual(locator, original);
- });
-
- it('accepts custom locator functions', function() {
- let original = function() {};
- let locator = by.checkedLocator(original);
- assert.strictEqual(locator, original);
- });
-
- // See https://github.com/SeleniumHQ/selenium/issues/3056
- it('accepts By-like objects', function() {
- let fakeBy = {using: 'id', value: 'foo'};
- let locator = by.checkedLocator(fakeBy);
- assert.strictEqual(locator.constructor, by.By);
- assert.equal(locator.using, 'id');
- assert.equal(locator.value, 'foo');
- });
-
- it('accepts class name', function() {
- let locator = by.checkedLocator({className: 'foo'});
- assert.equal('css selector', locator.using);
- assert.equal('.foo', locator.value);
- });
-
- it('accepts css', function() {
- let locator = by.checkedLocator({css: 'a > b'});
- assert.equal('css selector', locator.using);
- assert.equal('a > b', locator.value);
- });
-
- it('accepts id', function() {
- let locator = by.checkedLocator({id: 'foobar'});
- assert.equal('css selector', locator.using);
- assert.equal('*[id="foobar"]', locator.value);
- });
-
- it('accepts linkText', function() {
- let locator = by.checkedLocator({linkText: 'hello'});
- assert.equal('link text', locator.using);
- assert.equal('hello', locator.value);
- });
-
- it('accepts name', function() {
- let locator = by.checkedLocator({name: 'foobar'});
- assert.equal('css selector', locator.using);
- assert.equal('*[name="foobar"]', locator.value);
- });
-
- it('accepts partialLinkText', function() {
- let locator = by.checkedLocator({partialLinkText: 'hello'});
- assert.equal('partial link text', locator.using);
- assert.equal('hello', locator.value);
- });
-
- it('accepts tagName', function() {
- let locator = by.checkedLocator({tagName: 'div'});
- assert.equal('css selector', locator.using);
- assert.equal('div', locator.value);
- });
-
- it('accepts xpath', function() {
- let locator = by.checkedLocator({xpath: '//div[1]'});
- assert.equal('xpath', locator.using);
- assert.equal('//div[1]', locator.value);
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/lib/capabilities_test.js b/node_modules/selenium-webdriver/test/lib/capabilities_test.js
deleted file mode 100644
index 0d0c67c9a..000000000
--- a/node_modules/selenium-webdriver/test/lib/capabilities_test.js
+++ /dev/null
@@ -1,111 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const Capabilities = require('../../lib/capabilities').Capabilities;
-const Symbols = require('../../lib/symbols');
-
-const assert = require('assert');
-
-describe('Capabilities', function() {
- it('can set and unset a capability', function() {
- let caps = new Capabilities();
- assert.equal(undefined, caps.get('foo'));
- assert.ok(!caps.has('foo'));
-
- caps.set('foo', 'bar');
- assert.equal('bar', caps.get('foo'));
- assert.ok(caps.has('foo'));
-
- caps.set('foo', null);
- assert.equal(null, caps.get('foo'));
- assert.ok(caps.has('foo'));
- });
-
- it('requires string capability keys', function() {
- let caps = new Capabilities();
- assert.throws(() => caps.set({}, 'hi'));
- });
-
- it('can merge capabilities', function() {
- let caps1 = new Capabilities()
- .set('foo', 'bar')
- .set('color', 'red');
-
- let caps2 = new Capabilities()
- .set('color', 'green');
-
- assert.equal('bar', caps1.get('foo'));
- assert.equal('red', caps1.get('color'));
- assert.equal('green', caps2.get('color'));
- assert.equal(undefined, caps2.get('foo'));
-
- caps2.merge(caps1);
- assert.equal('bar', caps1.get('foo'));
- assert.equal('red', caps1.get('color'));
- assert.equal('red', caps2.get('color'));
- assert.equal('bar', caps2.get('foo'));
- });
-
- it('can be initialized from a hash object', function() {
- let caps = new Capabilities({'one': 123, 'abc': 'def'});
- assert.equal(123, caps.get('one'));
- assert.equal('def', caps.get('abc'));
- });
-
- it('can be initialized from a map', function() {
- let m = new Map([['one', 123], ['abc', 'def']]);
-
- let caps = new Capabilities(m);
- assert.equal(123, caps.get('one'));
- assert.equal('def', caps.get('abc'));
- });
-
- describe('serialize', function() {
- it('works for simple capabilities', function() {
- let m = new Map([['one', 123], ['abc', 'def']]);
- let caps = new Capabilities(m);
- assert.deepEqual({one: 123, abc: 'def'}, caps[Symbols.serialize]());
- });
-
- it('does not omit capabilities set to a false-like value', function() {
- let caps = new Capabilities;
- caps.set('bool', false);
- caps.set('number', 0);
- caps.set('string', '');
-
- assert.deepEqual(
- {bool: false, number: 0, string: ''},
- caps[Symbols.serialize]());
- });
-
- it('omits capabilities with a null value', function() {
- let caps = new Capabilities;
- caps.set('foo', null);
- caps.set('bar', 123);
- assert.deepEqual({bar: 123}, caps[Symbols.serialize]());
- });
-
- it('omits capabilities with an undefined value', function() {
- let caps = new Capabilities;
- caps.set('foo', undefined);
- caps.set('bar', 123);
- assert.deepEqual({bar: 123}, caps[Symbols.serialize]());
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/lib/error_test.js b/node_modules/selenium-webdriver/test/lib/error_test.js
deleted file mode 100644
index a9fc87193..000000000
--- a/node_modules/selenium-webdriver/test/lib/error_test.js
+++ /dev/null
@@ -1,286 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-describe('error', function() {
- let assert = require('assert');
- let error = require('../../lib/error');
-
- describe('checkResponse', function() {
- it('defaults to WebDriverError if type is unrecognized', function() {
- assert.throws(
- () => error.checkResponse({error: 'foo', message: 'hi there'}),
- (e) => {
- assert.equal(e.constructor, error.WebDriverError);
- return true;
- });
- });
-
- it('does not throw if error property is not a string', function() {
- let resp = {error: 123, message: 'abc123'};
- let out = error.checkResponse(resp);
- assert.strictEqual(out, resp);
- });
-
- test('unknown error', error.WebDriverError);
- test('element not selectable', error.ElementNotSelectableError);
- test('element not visible', error.ElementNotVisibleError);
- test('invalid argument', error.InvalidArgumentError);
- test('invalid cookie domain', error.InvalidCookieDomainError);
- test('invalid element coordinates', error.InvalidElementCoordinatesError);
- test('invalid element state', error.InvalidElementStateError);
- test('invalid selector', error.InvalidSelectorError);
- test('invalid session id', error.NoSuchSessionError);
- test('javascript error', error.JavascriptError);
- test('move target out of bounds', error.MoveTargetOutOfBoundsError);
- test('no such alert', error.NoSuchAlertError);
- test('no such element', error.NoSuchElementError);
- test('no such frame', error.NoSuchFrameError);
- test('no such window', error.NoSuchWindowError);
- test('script timeout', error.ScriptTimeoutError);
- test('session not created', error.SessionNotCreatedError);
- test('stale element reference', error.StaleElementReferenceError);
- test('timeout', error.TimeoutError);
- test('unable to set cookie', error.UnableToSetCookieError);
- test('unable to capture screen', error.UnableToCaptureScreenError);
- test('unexpected alert open', error.UnexpectedAlertOpenError);
- test('unknown command', error.UnknownCommandError);
- test('unknown method', error.UnknownMethodError);
- test('unsupported operation', error.UnsupportedOperationError);
-
- function test(status, expectedType) {
- it(`"${status}" => ${expectedType.name}`, function() {
- assert.throws(
- () => error.checkResponse({error: status, message: 'oops'}),
- (e) => {
- assert.equal(expectedType, e.constructor);
- assert.equal(e.message, 'oops');
- return true;
- });
- });
- }
- });
-
- describe('encodeError', function() {
- describe('defaults to an unknown error', function() {
- it('for a generic error value', function() {
- runTest('hi', 'unknown error', 'hi');
- runTest(1, 'unknown error', '1');
- runTest({}, 'unknown error', '[object Object]');
- });
-
- it('for a generic Error object', function() {
- runTest(Error('oops'), 'unknown error', 'oops');
- runTest(TypeError('bad value'), 'unknown error', 'bad value');
- });
- });
-
- test(error.WebDriverError, 'unknown error');
- test(error.ElementNotSelectableError, 'element not selectable');
- test(error.ElementNotVisibleError, 'element not visible');
- test(error.InvalidArgumentError, 'invalid argument');
- test(error.InvalidCookieDomainError, 'invalid cookie domain');
- test(error.InvalidElementStateError, 'invalid element state');
- test(error.InvalidSelectorError, 'invalid selector');
- test(error.NoSuchSessionError, 'invalid session id');
- test(error.JavascriptError, 'javascript error');
- test(error.MoveTargetOutOfBoundsError, 'move target out of bounds');
- test(error.NoSuchAlertError, 'no such alert');
- test(error.NoSuchElementError, 'no such element');
- test(error.NoSuchFrameError, 'no such frame');
- test(error.NoSuchWindowError, 'no such window');
- test(error.ScriptTimeoutError, 'script timeout');
- test(error.SessionNotCreatedError, 'session not created');
- test(error.StaleElementReferenceError, 'stale element reference');
- test(error.TimeoutError, 'timeout');
- test(error.UnableToSetCookieError, 'unable to set cookie');
- test(error.UnableToCaptureScreenError, 'unable to capture screen');
- test(error.UnexpectedAlertOpenError, 'unexpected alert open');
- test(error.UnknownCommandError, 'unknown command');
- test(error.UnknownMethodError, 'unknown method');
- test(error.UnsupportedOperationError, 'unsupported operation');
-
- function test(ctor, code) {
- it(`${ctor.name} => "${code}"`, () => {
- runTest(new ctor('oops'), code, 'oops');
- });
- }
-
- function runTest(err, code, message) {
- let obj = error.encodeError(err);
- assert.strictEqual(obj['error'], code);
- assert.strictEqual(obj['message'], message);
- }
- });
-
- describe('throwDecodedError', function() {
- it('defaults to WebDriverError if type is unrecognized', function() {
- assert.throws(
- () => error.throwDecodedError({error: 'foo', message: 'hi there'}),
- (e) => {
- assert.equal(e.constructor, error.WebDriverError);
- return true;
- });
- });
-
- it('throws generic error if encoded data is not valid', function() {
- assert.throws(
- () => error.throwDecodedError({error: 123, message: 'abc123'}),
- (e) => {
- assert.strictEqual(e.constructor, error.WebDriverError);
- return true;
- });
-
- assert.throws(
- () => error.throwDecodedError('null'),
- (e) => {
- assert.strictEqual(e.constructor, error.WebDriverError);
- return true;
- });
-
- assert.throws(
- () => error.throwDecodedError(''),
- (e) => {
- assert.strictEqual(e.constructor, error.WebDriverError);
- return true;
- });
- });
-
- test('unknown error', error.WebDriverError);
- test('element not selectable', error.ElementNotSelectableError);
- test('element not visible', error.ElementNotVisibleError);
- test('invalid argument', error.InvalidArgumentError);
- test('invalid cookie domain', error.InvalidCookieDomainError);
- test('invalid element coordinates', error.InvalidElementCoordinatesError);
- test('invalid element state', error.InvalidElementStateError);
- test('invalid selector', error.InvalidSelectorError);
- test('invalid session id', error.NoSuchSessionError);
- test('javascript error', error.JavascriptError);
- test('move target out of bounds', error.MoveTargetOutOfBoundsError);
- test('no such alert', error.NoSuchAlertError);
- test('no such element', error.NoSuchElementError);
- test('no such frame', error.NoSuchFrameError);
- test('no such window', error.NoSuchWindowError);
- test('script timeout', error.ScriptTimeoutError);
- test('session not created', error.SessionNotCreatedError);
- test('stale element reference', error.StaleElementReferenceError);
- test('timeout', error.TimeoutError);
- test('unable to set cookie', error.UnableToSetCookieError);
- test('unable to capture screen', error.UnableToCaptureScreenError);
- test('unexpected alert open', error.UnexpectedAlertOpenError);
- test('unknown command', error.UnknownCommandError);
- test('unknown method', error.UnknownMethodError);
- test('unsupported operation', error.UnsupportedOperationError);
-
- function test(status, expectedType) {
- it(`"${status}" => ${expectedType.name}`, function() {
- assert.throws(
- () => error.throwDecodedError({error: status, message: 'oops'}),
- (e) => {
- assert.strictEqual(e.constructor, expectedType);
- assert.strictEqual(e.message, 'oops');
- return true;
- });
- });
- }
- });
-
- describe('checkLegacyResponse', function() {
- it('does not throw for success', function() {
- let resp = {status: error.ErrorCode.SUCCESS};
- assert.strictEqual(resp, error.checkLegacyResponse(resp));
- });
-
- test('NO_SUCH_ELEMENT', error.NoSuchElementError);
- test('NO_SUCH_FRAME', error.NoSuchFrameError);
- test('UNKNOWN_COMMAND', error.UnsupportedOperationError);
- test('UNSUPPORTED_OPERATION', error.UnsupportedOperationError);
- test('STALE_ELEMENT_REFERENCE', error.StaleElementReferenceError);
- test('ELEMENT_NOT_VISIBLE', error.ElementNotVisibleError);
- test('INVALID_ELEMENT_STATE', error.InvalidElementStateError);
- test('UNKNOWN_ERROR', error.WebDriverError);
- test('ELEMENT_NOT_SELECTABLE', error.ElementNotSelectableError);
- test('JAVASCRIPT_ERROR', error.JavascriptError);
- test('XPATH_LOOKUP_ERROR', error.InvalidSelectorError);
- test('TIMEOUT', error.TimeoutError);
- test('NO_SUCH_WINDOW', error.NoSuchWindowError);
- test('INVALID_COOKIE_DOMAIN', error.InvalidCookieDomainError);
- test('UNABLE_TO_SET_COOKIE', error.UnableToSetCookieError);
- test('UNEXPECTED_ALERT_OPEN', error.UnexpectedAlertOpenError);
- test('NO_SUCH_ALERT', error.NoSuchAlertError);
- test('SCRIPT_TIMEOUT', error.ScriptTimeoutError);
- test('INVALID_ELEMENT_COORDINATES', error.InvalidElementCoordinatesError);
- test('INVALID_SELECTOR_ERROR', error.InvalidSelectorError);
- test('SESSION_NOT_CREATED', error.SessionNotCreatedError);
- test('MOVE_TARGET_OUT_OF_BOUNDS', error.MoveTargetOutOfBoundsError);
- test('INVALID_XPATH_SELECTOR', error.InvalidSelectorError);
- test('INVALID_XPATH_SELECTOR_RETURN_TYPE', error.InvalidSelectorError);
- test('METHOD_NOT_ALLOWED', error.UnsupportedOperationError);
-
- describe('UnexpectedAlertOpenError', function() {
- it('includes alert text from the response object', function() {
- let response = {
- status: error.ErrorCode.UNEXPECTED_ALERT_OPEN,
- value: {
- message: 'hi',
- alert: {text: 'alert text here'}
- }
- };
- assert.throws(
- () => error.checkLegacyResponse(response),
- (e) => {
- assert.equal(error.UnexpectedAlertOpenError, e.constructor);
- assert.equal(e.message, 'hi');
- assert.equal(e.getAlertText(), 'alert text here');
- return true;
- });
- });
-
- it('uses an empty string if alert text omitted', function() {
- let response = {
- status: error.ErrorCode.UNEXPECTED_ALERT_OPEN,
- value: {
- message: 'hi'
- }
- };
- assert.throws(
- () => error.checkLegacyResponse(response),
- (e) => {
- assert.equal(error.UnexpectedAlertOpenError, e.constructor);
- assert.equal(e.message, 'hi');
- assert.equal(e.getAlertText(), '');
- return true;
- });
- });
- });
-
- function test(codeKey, expectedType) {
- it(`${codeKey} => ${expectedType.name}`, function() {
- let code = error.ErrorCode[codeKey];
- let resp = {status: code, value: {message: 'hi'}};
- assert.throws(
- () => error.checkLegacyResponse(resp),
- (e) => {
- assert.equal(expectedType, e.constructor);
- assert.equal(e.message, 'hi');
- return true;
- });
- });
- }
- });
-});
diff --git a/node_modules/selenium-webdriver/test/lib/events_test.js b/node_modules/selenium-webdriver/test/lib/events_test.js
deleted file mode 100644
index a02da9747..000000000
--- a/node_modules/selenium-webdriver/test/lib/events_test.js
+++ /dev/null
@@ -1,177 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const EventEmitter = require('../../lib/events').EventEmitter;
-
-const assert = require('assert');
-const sinon = require('sinon');
-
-describe('EventEmitter', function() {
- describe('#emit()', function() {
- it('can emit events when nothing is registered', function() {
- let emitter = new EventEmitter;
- emitter.emit('foo');
- // Ok if no errors are thrown.
- });
-
- it('can pass args to listeners on emit', function() {
- let emitter = new EventEmitter;
- let now = Date.now();
-
- let messages = [];
- emitter.on('foo', (arg) => messages.push(arg));
-
- emitter.emit('foo', now);
- assert.deepEqual([now], messages);
-
- emitter.emit('foo', now + 15);
- assert.deepEqual([now, now + 15], messages);
- });
- });
-
- describe('#addListener()', function() {
- it('can add multiple listeners for one event', function() {
- let emitter = new EventEmitter;
- let count = 0;
- emitter.addListener('foo', () => count++);
- emitter.addListener('foo', () => count++);
- emitter.addListener('foo', () => count++);
- emitter.emit('foo');
- assert.equal(3, count);
- });
-
- it('only registers each listener function once', function() {
- let emitter = new EventEmitter;
- let count = 0;
- let onFoo = () => count++;
- emitter.addListener('foo', onFoo);
- emitter.addListener('foo', onFoo);
- emitter.addListener('foo', onFoo);
-
- emitter.emit('foo');
- assert.equal(1, count);
-
- emitter.emit('foo');
- assert.equal(2, count);
- });
-
- it('allows users to specify a custom scope', function() {
- let obj = {
- count: 0,
- inc: function() {
- this.count++;
- }
- };
- let emitter = new EventEmitter;
- emitter.addListener('foo', obj.inc, obj);
-
- emitter.emit('foo');
- assert.equal(1, obj.count);
-
- emitter.emit('foo');
- assert.equal(2, obj.count);
- });
- });
-
- describe('#once()', function() {
- it('only calls registered callback once', function() {
- let emitter = new EventEmitter;
- let count = 0;
- emitter.once('foo', () => count++);
- emitter.once('foo', () => count++);
- emitter.once('foo', () => count++);
-
- emitter.emit('foo');
- assert.equal(3, count);
-
- emitter.emit('foo');
- assert.equal(3, count);
-
- emitter.emit('foo');
- assert.equal(3, count);
- });
- });
-
- describe('#removeListeners()', function() {
- it('only removes the given listener function', function() {
- let emitter = new EventEmitter;
- let count = 0;
- emitter.addListener('foo', () => count++);
- emitter.addListener('foo', () => count++);
-
- let toRemove = () => count++;
- emitter.addListener('foo', toRemove);
-
- emitter.emit('foo');
- assert.equal(3, count);
-
- emitter.removeListener('foo', toRemove);
- emitter.emit('foo');
- assert.equal(5, count);
- });
- });
-
- describe('#removeAllListeners()', function() {
- it('only removes listeners for type if specified', function() {
- let emitter = new EventEmitter;
- let count = 0;
- emitter.addListener('foo', () => count++);
- emitter.addListener('foo', () => count++);
- emitter.addListener('foo', () => count++);
- emitter.addListener('bar', () => count++);
-
- emitter.emit('foo');
- assert.equal(3, count);
-
- emitter.removeAllListeners('foo');
-
- emitter.emit('foo');
- assert.equal(3, count);
-
- emitter.emit('bar');
- assert.equal(4, count);
- });
-
- it('removes absolutely all listeners if no type specified', function() {
- let emitter = new EventEmitter;
- let count = 0;
- emitter.addListener('foo', () => count++);
- emitter.addListener('bar', () => count++);
- emitter.addListener('baz', () => count++);
- emitter.addListener('baz', () => count++);
-
- emitter.emit('foo');
- assert.equal(1, count);
-
- emitter.emit('baz');
- assert.equal(3, count);
-
- emitter.removeAllListeners();
-
- emitter.emit('foo');
- assert.equal(3, count);
-
- emitter.emit('bar');
- assert.equal(3, count);
-
- emitter.emit('baz');
- assert.equal(3, count);
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/lib/http_test.js b/node_modules/selenium-webdriver/test/lib/http_test.js
deleted file mode 100644
index 7cb0050f7..000000000
--- a/node_modules/selenium-webdriver/test/lib/http_test.js
+++ /dev/null
@@ -1,696 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var assert = require('assert'),
- sinon = require('sinon');
-
-var Capabilities = require('../../lib/capabilities').Capabilities,
- Command = require('../../lib/command').Command,
- CommandName = require('../../lib/command').Name,
- error = require('../../lib/error'),
- http = require('../../lib/http'),
- Session = require('../../lib/session').Session,
- promise = require('../../lib/promise'),
- WebElement = require('../../lib/webdriver').WebElement;
-
-describe('http', function() {
- describe('buildPath', function() {
- it('properly replaces path segments with command parameters', function() {
- var parameters = {'sessionId':'foo', 'url':'http://www.google.com'};
- var finalPath = http.buildPath('/session/:sessionId/url', parameters);
- assert.equal(finalPath, '/session/foo/url');
- assert.deepEqual(parameters, {'url':'http://www.google.com'});
- });
-
- it('handles web element references', function() {
- var parameters = {'sessionId':'foo', 'id': WebElement.buildId('bar')};
-
- var finalPath = http.buildPath(
- '/session/:sessionId/element/:id/click', parameters);
- assert.equal(finalPath, '/session/foo/element/bar/click');
- assert.deepEqual(parameters, {});
- });
-
- it('throws if missing a parameter', function() {
- assert.throws(
- () => http.buildPath('/session/:sessionId', {}),
- function(err) {
- return err instanceof error.InvalidArgumentError
- && 'Missing required parameter: sessionId' === err.message;
- });
-
- assert.throws(
- () => http.buildPath(
- '/session/:sessionId/element/:id', {'sessionId': 'foo'}),
- function(err) {
- return err instanceof error.InvalidArgumentError
- && 'Missing required parameter: id' === err.message;
- });
- });
-
- it('does not match on segments that do not start with a colon', function() {
- assert.equal(
- http.buildPath('/session/foo:bar/baz', {}),
- '/session/foo:bar/baz');
- });
- });
-
- describe('Executor', function() {
- let executor;
- let client;
- let send;
-
- beforeEach(function setUp() {
- client = new http.Client;
- send = sinon.stub(client, 'send');
- executor = new http.Executor(client);
- });
-
- describe('command routing', function() {
- it('rejects unrecognized commands', function() {
- return executor.execute(new Command('fake-name'))
- .then(assert.fail, err => {
- if (err instanceof error.UnknownCommandError
- && 'Unrecognized command: fake-name' === err.message) {
- return;
- }
- throw err;
- })
- });
-
- it('rejects promise if client fails to send request', function() {
- let error = new Error('boom');
- send.returns(Promise.reject(error));
- return assertFailsToSend(new Command(CommandName.NEW_SESSION))
- .then(function(e) {
- assert.strictEqual(error, e);
- assertSent(
- 'POST', '/session', {},
- [['Accept', 'application/json; charset=utf-8']]);
- });
- });
-
- it('can execute commands with no URL parameters', function() {
- var resp = JSON.stringify({sessionId: 'abc123'});
- send.returns(Promise.resolve(new http.Response(200, {}, resp)));
-
- let command = new Command(CommandName.NEW_SESSION);
- return assertSendsSuccessfully(command).then(function(response) {
- assertSent(
- 'POST', '/session', {},
- [['Accept', 'application/json; charset=utf-8']]);
- });
- });
-
- it('rejects commands missing URL parameters', function() {
- let command =
- new Command(CommandName.FIND_CHILD_ELEMENT).
- setParameter('sessionId', 's123').
- // Let this be missing: setParameter('id', {'ELEMENT': 'e456'}).
- setParameter('using', 'id').
- setParameter('value', 'foo');
-
- assert.throws(
- () => executor.execute(command),
- function(err) {
- return err instanceof error.InvalidArgumentError
- && 'Missing required parameter: id' === err.message;
- });
- assert.ok(!send.called);
- });
-
- it('replaces URL parameters with command parameters', function() {
- var command = new Command(CommandName.GET).
- setParameter('sessionId', 's123').
- setParameter('url', 'http://www.google.com');
-
- send.returns(Promise.resolve(new http.Response(200, {}, '')));
-
- return assertSendsSuccessfully(command).then(function(response) {
- assertSent(
- 'POST', '/session/s123/url', {'url': 'http://www.google.com'},
- [['Accept', 'application/json; charset=utf-8']]);
- });
- });
-
- describe('uses correct URL', function() {
- beforeEach(() => executor = new http.Executor(client));
-
- describe('in legacy mode', function() {
- test(CommandName.GET_WINDOW_SIZE, {sessionId:'s123'}, false,
- 'GET', '/session/s123/window/current/size');
-
- test(CommandName.SET_WINDOW_SIZE,
- {sessionId:'s123', width: 1, height: 1}, false,
- 'POST', '/session/s123/window/current/size',
- {width: 1, height: 1});
-
- test(CommandName.MAXIMIZE_WINDOW, {sessionId:'s123'}, false,
- 'POST', '/session/s123/window/current/maximize');
-
- // This is consistent b/w legacy and W3C, just making sure.
- test(CommandName.GET,
- {sessionId:'s123', url: 'http://www.example.com'}, false,
- 'POST', '/session/s123/url', {url: 'http://www.example.com'});
- });
-
- describe('in W3C mode', function() {
- test(CommandName.GET_WINDOW_SIZE,
- {sessionId:'s123'}, true,
- 'GET', '/session/s123/window/size');
-
- test(CommandName.SET_WINDOW_SIZE,
- {sessionId:'s123', width: 1, height: 1}, true,
- 'POST', '/session/s123/window/size', {width: 1, height: 1});
-
- test(CommandName.MAXIMIZE_WINDOW, {sessionId:'s123'}, true,
- 'POST', '/session/s123/window/maximize');
-
- // This is consistent b/w legacy and W3C, just making sure.
- test(CommandName.GET,
- {sessionId:'s123', url: 'http://www.example.com'}, true,
- 'POST', '/session/s123/url', {url: 'http://www.example.com'});
- });
-
- function test(command, parameters, w3c,
- expectedMethod, expectedUrl, opt_expectedParams) {
- it(`command=${command}`, function() {
- var resp = JSON.stringify({sessionId: 'abc123'});
- send.returns(Promise.resolve(new http.Response(200, {}, resp)));
-
- let cmd = new Command(command).setParameters(parameters);
- executor.w3c = w3c;
- return executor.execute(cmd).then(function() {
- assertSent(
- expectedMethod, expectedUrl, opt_expectedParams || {},
- [['Accept', 'application/json; charset=utf-8']]);
- });
- });
- }
- });
- });
-
- describe('response parsing', function() {
- it('extracts value from JSON response', function() {
- var responseObj = {
- 'status': error.ErrorCode.SUCCESS,
- 'value': 'http://www.google.com'
- };
-
- var command = new Command(CommandName.GET_CURRENT_URL)
- .setParameter('sessionId', 's123');
-
- send.returns(Promise.resolve(
- new http.Response(200, {}, JSON.stringify(responseObj))));
-
- return executor.execute(command).then(function(response) {
- assertSent('GET', '/session/s123/url', {},
- [['Accept', 'application/json; charset=utf-8']]);
- assert.strictEqual(response, 'http://www.google.com');
- });
- });
-
- describe('extracts Session from NEW_SESSION response', function() {
- beforeEach(() => executor = new http.Executor(client));
-
- const command = new Command(CommandName.NEW_SESSION);
-
- describe('fails if server returns invalid response', function() {
- describe('(empty response)', function() {
- test(true);
- test(false);
-
- function test(w3c) {
- it('w3c === ' + w3c, function() {
- send.returns(Promise.resolve(new http.Response(200, {}, '')));
- executor.w3c = w3c;
- return executor.execute(command).then(
- () => assert.fail('expected to fail'),
- (e) => {
- if (!e.message.startsWith('Unable to parse')) {
- throw e;
- }
- });
- });
- }
- });
-
- describe('(no session ID)', function() {
- test(true);
- test(false);
-
- function test(w3c) {
- it('w3c === ' + w3c, function() {
- let resp = {value:{name: 'Bob'}};
- send.returns(Promise.resolve(
- new http.Response(200, {}, JSON.stringify(resp))));
- executor.w3c = w3c;
- return executor.execute(command).then(
- () => assert.fail('expected to fail'),
- (e) => {
- if (!e.message.startsWith('Unable to parse')) {
- throw e;
- }
- });
- });
- }
- });
- });
-
- it('handles legacy response', function() {
- var rawResponse = {sessionId: 's123', status: 0, value: {name: 'Bob'}};
-
- send.returns(Promise.resolve(
- new http.Response(200, {}, JSON.stringify(rawResponse))));
-
- assert.ok(!executor.w3c);
- return executor.execute(command).then(function(response) {
- assert.ok(response instanceof Session);
- assert.equal(response.getId(), 's123');
-
- let caps = response.getCapabilities();
- assert.ok(caps instanceof Capabilities);
- assert.equal(caps.get('name'), 'Bob');
-
- assert.ok(!executor.w3c);
- });
- });
-
- it('auto-upgrades on W3C response', function() {
- let rawResponse = {
- value: {
- sessionId: 's123',
- value: {
- name: 'Bob'
- }
- }
- };
-
- send.returns(Promise.resolve(
- new http.Response(200, {}, JSON.stringify(rawResponse))));
-
- assert.ok(!executor.w3c);
- return executor.execute(command).then(function(response) {
- assert.ok(response instanceof Session);
- assert.equal(response.getId(), 's123');
-
- let caps = response.getCapabilities();
- assert.ok(caps instanceof Capabilities);
- assert.equal(caps.get('name'), 'Bob');
-
- assert.ok(executor.w3c);
- });
- });
-
- it('if w3c, does not downgrade on legacy response', function() {
- var rawResponse = {sessionId: 's123', status: 0, value: null};
-
- send.returns(Promise.resolve(
- new http.Response(200, {}, JSON.stringify(rawResponse))));
-
- executor.w3c = true;
- return executor.execute(command).then(function(response) {
- assert.ok(response instanceof Session);
- assert.equal(response.getId(), 's123');
- assert.equal(response.getCapabilities().size, 0);
- assert.ok(executor.w3c, 'should never downgrade');
- });
- });
-
- it('handles legacy new session failures', function() {
- let rawResponse = {
- status: error.ErrorCode.NO_SUCH_ELEMENT,
- value: {message: 'hi'}
- };
-
- send.returns(Promise.resolve(
- new http.Response(500, {}, JSON.stringify(rawResponse))));
-
- return executor.execute(command)
- .then(() => assert.fail('should have failed'),
- e => {
- assert.ok(e instanceof error.NoSuchElementError);
- assert.equal(e.message, 'hi');
- });
- });
-
- it('handles w3c new session failures', function() {
- let rawResponse =
- {value: {error: 'no such element', message: 'oops'}};
-
- send.returns(Promise.resolve(
- new http.Response(500, {}, JSON.stringify(rawResponse))));
-
- return executor.execute(command)
- .then(() => assert.fail('should have failed'),
- e => {
- assert.ok(e instanceof error.NoSuchElementError);
- assert.equal(e.message, 'oops');
- });
- });
- });
-
- describe('extracts Session from DESCRIBE_SESSION response', function() {
- let command;
-
- beforeEach(function() {
- executor = new http.Executor(client);
- command = new Command(CommandName.DESCRIBE_SESSION)
- .setParameter('sessionId', 'foo');
- });
-
- describe('fails if server returns invalid response', function() {
- describe('(empty response)', function() {
- test(true);
- test(false);
-
- function test(w3c) {
- it('w3c === ' + w3c, function() {
- send.returns(Promise.resolve(new http.Response(200, {}, '')));
- executor.w3c = w3c;
- return executor.execute(command).then(
- () => assert.fail('expected to fail'),
- (e) => {
- if (!e.message.startsWith('Unable to parse')) {
- throw e;
- }
- });
- });
- }
- });
-
- describe('(no session ID)', function() {
- test(true);
- test(false);
-
- function test(w3c) {
- it('w3c === ' + w3c, function() {
- let resp = {value:{name: 'Bob'}};
- send.returns(Promise.resolve(
- new http.Response(200, {}, JSON.stringify(resp))));
- executor.w3c = w3c;
- return executor.execute(command).then(
- () => assert.fail('expected to fail'),
- (e) => {
- if (!e.message.startsWith('Unable to parse')) {
- throw e;
- }
- });
- });
- }
- });
- });
-
- it('handles legacy response', function() {
- var rawResponse = {sessionId: 's123', status: 0, value: {name: 'Bob'}};
-
- send.returns(Promise.resolve(
- new http.Response(200, {}, JSON.stringify(rawResponse))));
-
- assert.ok(!executor.w3c);
- return executor.execute(command).then(function(response) {
- assert.ok(response instanceof Session);
- assert.equal(response.getId(), 's123');
-
- let caps = response.getCapabilities();
- assert.ok(caps instanceof Capabilities);
- assert.equal(caps.get('name'), 'Bob');
-
- assert.ok(!executor.w3c);
- });
- });
-
- it('does not auto-upgrade on W3C response', function() {
- var rawResponse = {value: {sessionId: 's123', value: {name: 'Bob'}}};
-
- send.returns(Promise.resolve(
- new http.Response(200, {}, JSON.stringify(rawResponse))));
-
- assert.ok(!executor.w3c);
- return executor.execute(command).then(function(response) {
- assert.ok(response instanceof Session);
- assert.equal(response.getId(), 's123');
-
- let caps = response.getCapabilities();
- assert.ok(caps instanceof Capabilities);
- assert.equal(caps.get('name'), 'Bob');
-
- assert.ok(!executor.w3c);
- });
- });
-
- it('if w3c, does not downgrade on legacy response', function() {
- var rawResponse = {sessionId: 's123', status: 0, value: null};
-
- send.returns(Promise.resolve(
- new http.Response(200, {}, JSON.stringify(rawResponse))));
-
- executor.w3c = true;
- return executor.execute(command).then(function(response) {
- assert.ok(response instanceof Session);
- assert.equal(response.getId(), 's123');
- assert.equal(response.getCapabilities().size, 0);
- assert.ok(executor.w3c, 'should never downgrade');
- });
- });
- });
-
- it('handles JSON null', function() {
- var command = new Command(CommandName.GET_CURRENT_URL)
- .setParameter('sessionId', 's123');
-
- send.returns(Promise.resolve(new http.Response(200, {}, 'null')));
-
- return executor.execute(command).then(function(response) {
- assertSent('GET', '/session/s123/url', {},
- [['Accept', 'application/json; charset=utf-8']]);
- assert.strictEqual(response, null);
- });
- });
-
- describe('falsy values', function() {
- test(0);
- test(false);
- test('');
-
- function test(value) {
- it(`value=${value}`, function() {
- var command = new Command(CommandName.GET_CURRENT_URL)
- .setParameter('sessionId', 's123');
-
- send.returns(Promise.resolve(
- new http.Response(200, {},
- JSON.stringify({status: 0, value: value}))));
-
- return executor.execute(command).then(function(response) {
- assertSent('GET', '/session/s123/url', {},
- [['Accept', 'application/json; charset=utf-8']]);
- assert.strictEqual(response, value);
- });
- });
- }
- });
-
- it('handles non-object JSON', function() {
- var command = new Command(CommandName.GET_CURRENT_URL)
- .setParameter('sessionId', 's123');
-
- send.returns(Promise.resolve(new http.Response(200, {}, '123')));
-
- return executor.execute(command).then(function(response) {
- assertSent('GET', '/session/s123/url', {},
- [['Accept', 'application/json; charset=utf-8']]);
- assert.strictEqual(response, 123);
- });
- });
-
- it('returns body text when 2xx but not JSON', function() {
- var command = new Command(CommandName.GET_CURRENT_URL)
- .setParameter('sessionId', 's123');
-
- send.returns(Promise.resolve(
- new http.Response(200, {}, 'hello, world\r\ngoodbye, world!')));
-
- return executor.execute(command).then(function(response) {
- assertSent('GET', '/session/s123/url', {},
- [['Accept', 'application/json; charset=utf-8']]);
- assert.strictEqual(response, 'hello, world\ngoodbye, world!');
- });
- });
-
- it('returns body text when 2xx but invalid JSON', function() {
- var command = new Command(CommandName.GET_CURRENT_URL)
- .setParameter('sessionId', 's123');
-
- send.returns(Promise.resolve(
- new http.Response(200, {}, '[')));
-
- return executor.execute(command).then(function(response) {
- assertSent('GET', '/session/s123/url', {},
- [['Accept', 'application/json; charset=utf-8']]);
- assert.strictEqual(response, '[');
- });
- });
-
- it('returns null if no body text and 2xx', function() {
- var command = new Command(CommandName.GET_CURRENT_URL)
- .setParameter('sessionId', 's123');
-
- send.returns(Promise.resolve(new http.Response(200, {}, '')));
-
- return executor.execute(command).then(function(response) {
- assertSent('GET', '/session/s123/url', {},
- [['Accept', 'application/json; charset=utf-8']]);
- assert.strictEqual(response, null);
- });
- });
-
- it('returns normalized body text when 2xx but not JSON', function() {
- var command = new Command(CommandName.GET_CURRENT_URL)
- .setParameter('sessionId', 's123');
-
- send.returns(Promise.resolve(new http.Response(200, {}, '\r\n\n\n\r\n')));
-
- return executor.execute(command).then(function(response) {
- assertSent('GET', '/session/s123/url', {},
- [['Accept', 'application/json; charset=utf-8']]);
- assert.strictEqual(response, '\n\n\n\n');
- });
- });
-
- it('throws UnsupportedOperationError for 404 and body not JSON',
- function() {
- var command = new Command(CommandName.GET_CURRENT_URL)
- .setParameter('sessionId', 's123');
-
- send.returns(Promise.resolve(
- new http.Response(404, {}, 'hello, world\r\ngoodbye, world!')));
-
- return executor.execute(command)
- .then(
- () => assert.fail('should have failed'),
- checkError(
- error.UnsupportedOperationError,
- 'hello, world\ngoodbye, world!'));
- });
-
- it('throws WebDriverError for generic 4xx when body not JSON',
- function() {
- var command = new Command(CommandName.GET_CURRENT_URL)
- .setParameter('sessionId', 's123');
-
- send.returns(Promise.resolve(
- new http.Response(500, {}, 'hello, world\r\ngoodbye, world!')));
-
- return executor.execute(command)
- .then(
- () => assert.fail('should have failed'),
- checkError(
- error.WebDriverError,
- 'hello, world\ngoodbye, world!'))
- .then(function() {
- assertSent('GET', '/session/s123/url', {},
- [['Accept', 'application/json; charset=utf-8']]);
- });
- });
- });
-
- it('canDefineNewCommands', function() {
- executor.defineCommand('greet', 'GET', '/person/:name');
-
- var command = new Command('greet').
- setParameter('name', 'Bob');
-
- send.returns(Promise.resolve(new http.Response(200, {}, '')));
-
- return assertSendsSuccessfully(command).then(function(response) {
- assertSent('GET', '/person/Bob', {},
- [['Accept', 'application/json; charset=utf-8']]);
- });
- });
-
- it('canRedefineStandardCommands', function() {
- executor.defineCommand(CommandName.GO_BACK, 'POST', '/custom/back');
-
- var command = new Command(CommandName.GO_BACK).
- setParameter('times', 3);
-
- send.returns(Promise.resolve(new http.Response(200, {}, '')));
-
- return assertSendsSuccessfully(command).then(function(response) {
- assertSent('POST', '/custom/back', {'times': 3},
- [['Accept', 'application/json; charset=utf-8']]);
- });
- });
-
- it('accepts promised http clients', function() {
- executor = new http.Executor(Promise.resolve(client));
-
- var resp = JSON.stringify({sessionId: 'abc123'});
- send.returns(Promise.resolve(new http.Response(200, {}, resp)));
-
- let command = new Command(CommandName.NEW_SESSION);
- return executor.execute(command).then(response => {
- assertSent(
- 'POST', '/session', {},
- [['Accept', 'application/json; charset=utf-8']]);
- });
- });
-
- function entries(map) {
- let entries = [];
- for (let e of map.entries()) {
- entries.push(e);
- }
- return entries;
- }
-
- function checkError(type, message) {
- return function(e) {
- if (e instanceof type) {
- assert.strictEqual(e.message, message);
- } else {
- throw e;
- }
- };
- }
-
- function assertSent(method, path, data, headers) {
- assert.ok(send.calledWith(sinon.match(function(value) {
- assert.equal(value.method, method);
- assert.equal(value.path, path);
- assert.deepEqual(value.data, data);
- assert.deepEqual(entries(value.headers), headers);
- return true;
- })));
- }
-
- function assertSendsSuccessfully(command) {
- return executor.execute(command).then(function(response) {
- return response;
- });
- }
-
- function assertFailsToSend(command, opt_onError) {
- return executor.execute(command).then(
- () => {throw Error('should have failed')},
- (e) => {return e});
- }
- });
-});
diff --git a/node_modules/selenium-webdriver/test/lib/logging_test.js b/node_modules/selenium-webdriver/test/lib/logging_test.js
deleted file mode 100644
index 29d2af40f..000000000
--- a/node_modules/selenium-webdriver/test/lib/logging_test.js
+++ /dev/null
@@ -1,272 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const assert = require('assert');
-const sinon = require('sinon');
-const logging = require('../../lib/logging');
-
-describe('logging', function() {
- let mgr, root, clock;
-
- beforeEach(function setUp() {
- mgr = new logging.LogManager;
- root = mgr.getLogger('');
-
- clock = sinon.useFakeTimers();
- });
-
- afterEach(function tearDown() {
- clock.restore();
- });
-
- describe('LogManager', function() {
- describe('getLogger()', function() {
- it('handles falsey input', function() {
- assert.strictEqual(root, mgr.getLogger());
- assert.strictEqual(root, mgr.getLogger(''));
- assert.strictEqual(root, mgr.getLogger(null));
- assert.strictEqual(root, mgr.getLogger(0));
- });
-
- it('creates parent loggers', function() {
- let logger = mgr.getLogger('foo.bar.baz');
- assert.strictEqual(logger.parent_, mgr.getLogger('foo.bar'));
-
- logger = logger.parent_;
- assert.strictEqual(logger.parent_, mgr.getLogger('foo'));
-
- logger = logger.parent_;
- assert.strictEqual(logger.parent_, mgr.getLogger(''));
-
- assert.strictEqual(logger.parent_.parent_, null);
- });
- });
- });
-
- describe('Logger', function() {
- describe('getEffectiveLevel()', function() {
- it('defaults to OFF', function() {
- assert.strictEqual(root.getLevel(), logging.Level.OFF);
- assert.strictEqual(root.getEffectiveLevel(), logging.Level.OFF);
-
- root.setLevel(null);
- assert.strictEqual(root.getLevel(), null);
- assert.strictEqual(root.getEffectiveLevel(), logging.Level.OFF);
- });
-
- it('uses own level if set', function() {
- let logger = mgr.getLogger('foo.bar.baz');
- assert.strictEqual(logger.getLevel(), null);
- assert.strictEqual(logger.getEffectiveLevel(), logging.Level.OFF);
-
- logger.setLevel(logging.Level.INFO);
- assert.strictEqual(logger.getLevel(), logging.Level.INFO);
- assert.strictEqual(logger.getEffectiveLevel(), logging.Level.INFO);
- });
-
- it('uses level from set on nearest parent', function() {
- let ancestor = mgr.getLogger('foo');
- ancestor.setLevel(logging.Level.SEVERE);
-
- let logger = mgr.getLogger('foo.bar.baz');
- assert.strictEqual(logger.getLevel(), null);
- assert.strictEqual(logger.getEffectiveLevel(), logging.Level.SEVERE);
- });
- });
-
- describe('isLoggable()', function() {
- it('compares level against logger\'s effective level', function() {
- const log1 = mgr.getLogger('foo');
- log1.setLevel(logging.Level.WARNING);
-
- const log2 = mgr.getLogger('foo.bar.baz');
-
- assert(!log2.isLoggable(logging.Level.FINEST));
- assert(!log2.isLoggable(logging.Level.INFO));
- assert(log2.isLoggable(logging.Level.WARNING));
- assert(log2.isLoggable(logging.Level.SEVERE));
-
- log2.setLevel(logging.Level.INFO);
-
- assert(!log2.isLoggable(logging.Level.FINEST));
- assert(log2.isLoggable(logging.Level.INFO));
- assert(log2.isLoggable(logging.Level.WARNING));
- assert(log2.isLoggable(logging.Level.SEVERE));
-
- log2.setLevel(logging.Level.ALL);
-
- assert(log2.isLoggable(logging.Level.FINEST));
- assert(log2.isLoggable(logging.Level.INFO));
- assert(log2.isLoggable(logging.Level.WARNING));
- assert(log2.isLoggable(logging.Level.SEVERE));
- });
-
- it('Level.OFF is never loggable', function() {
- function test(level) {
- root.setLevel(level);
- assert(!root.isLoggable(logging.Level.OFF),
- 'OFF should not be loggable at ' + level);
- }
-
- test(logging.Level.ALL);
- test(logging.Level.INFO);
- test(logging.Level.OFF);
- });
- });
-
- describe('log()', function() {
- it('does not invoke loggable if message is not loggable', function() {
- const log = mgr.getLogger('foo');
- log.setLevel(logging.Level.OFF);
-
- let callback = sinon.spy();
- log.addHandler(callback);
- root.addHandler(callback);
-
- assert(!callback.called);
- });
-
- it('invokes handlers for each parent logger', function() {
- const cb1 = sinon.spy();
- const cb2 = sinon.spy();
- const cb3 = sinon.spy();
- const cb4 = sinon.spy();
-
- const log1 = mgr.getLogger('foo');
- const log2 = mgr.getLogger('foo.bar');
- const log3 = mgr.getLogger('foo.bar.baz');
- const log4 = mgr.getLogger('foo.bar.baz.quot');
-
- log1.addHandler(cb1);
- log1.setLevel(logging.Level.INFO);
-
- log2.addHandler(cb2);
- log2.setLevel(logging.Level.WARNING);
-
- log3.addHandler(cb3);
- log3.setLevel(logging.Level.FINER);
-
- clock.tick(123456);
-
- log4.finest('this is the finest message');
- log4.finer('this is a finer message');
- log4.info('this is an info message');
- log4.warning('this is a warning message');
- log4.severe('this is a severe message');
-
- assert.equal(4, cb1.callCount);
- assert.equal(4, cb2.callCount);
- assert.equal(4, cb3.callCount);
-
- const entry1 = new logging.Entry(
- logging.Level.FINER,
- '[foo.bar.baz.quot] this is a finer message',
- 123456);
- const entry2 = new logging.Entry(
- logging.Level.INFO,
- '[foo.bar.baz.quot] this is an info message',
- 123456);
- const entry3 = new logging.Entry(
- logging.Level.WARNING,
- '[foo.bar.baz.quot] this is a warning message',
- 123456);
- const entry4 = new logging.Entry(
- logging.Level.SEVERE,
- '[foo.bar.baz.quot] this is a severe message',
- 123456);
-
- check(cb1.getCall(0).args[0], entry1);
- check(cb1.getCall(1).args[0], entry2);
- check(cb1.getCall(2).args[0], entry3);
- check(cb1.getCall(3).args[0], entry4);
-
- check(cb2.getCall(0).args[0], entry1);
- check(cb2.getCall(1).args[0], entry2);
- check(cb2.getCall(2).args[0], entry3);
- check(cb2.getCall(3).args[0], entry4);
-
- check(cb3.getCall(0).args[0], entry1);
- check(cb3.getCall(1).args[0], entry2);
- check(cb3.getCall(2).args[0], entry3);
- check(cb3.getCall(3).args[0], entry4);
-
- function check(entry, expected) {
- assert.equal(entry.level, expected.level, 'wrong level');
- assert.equal(entry.message, expected.message, 'wrong message');
- assert.equal(entry.timestamp, expected.timestamp, 'wrong time');
- }
- });
-
- it('does not invoke removed handler', function() {
- root.setLevel(logging.Level.INFO);
- const cb = sinon.spy();
-
- root.addHandler(cb);
- root.info('hi');
- assert.equal(1, cb.callCount);
-
- assert(root.removeHandler(cb));
- root.info('bye');
- assert.equal(1, cb.callCount);
-
- assert(!root.removeHandler(cb));
- });
- });
- });
-
- describe('getLevel()', function() {
- it('converts named levels', function() {
- assert.strictEqual(logging.Level.DEBUG, logging.getLevel('DEBUG'));
- assert.strictEqual(logging.Level.ALL, logging.getLevel('FAKE'));
- });
-
- it('converts numeric levels', function() {
- assert.strictEqual(
- logging.Level.DEBUG,
- logging.getLevel(logging.Level.DEBUG.value));
- });
-
- it('normalizes numeric levels', function() {
- assert.strictEqual(
- logging.Level.OFF,
- logging.getLevel(logging.Level.OFF.value * 2));
-
- let diff = logging.Level.SEVERE.value - logging.Level.WARNING.value;
- assert.strictEqual(
- logging.Level.WARNING,
- logging.getLevel(logging.Level.WARNING.value + (diff * .5)));
-
- assert.strictEqual(logging.Level.ALL, logging.getLevel(0));
- assert.strictEqual(logging.Level.ALL, logging.getLevel(-1));
- });
- });
-
- describe('Preferences', function() {
- it('can be converted to JSON', function() {
- let prefs = new logging.Preferences;
- assert.equal('{}', JSON.stringify(prefs));
-
- prefs.setLevel('foo', logging.Level.DEBUG);
- assert.equal('{"foo":"DEBUG"}', JSON.stringify(prefs));
-
- prefs.setLevel(logging.Type.BROWSER, logging.Level.FINE);
- assert.equal('{"foo":"DEBUG","browser":"FINE"}', JSON.stringify(prefs));
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/lib/promise_aplus_test.js b/node_modules/selenium-webdriver/test/lib/promise_aplus_test.js
deleted file mode 100644
index 207f490a1..000000000
--- a/node_modules/selenium-webdriver/test/lib/promise_aplus_test.js
+++ /dev/null
@@ -1,78 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const promise = require('../../lib/promise');
-const {enablePromiseManager} = require('../../lib/test/promise');
-
-describe('Promises/A+ Compliance Tests', function() {
- enablePromiseManager(() => {
- // The promise spec does not define behavior for unhandled rejections and
- // assumes they are effectively swallowed. This is not the case with our
- // implementation, so we have to disable error propagation to test that the
- // rest of our behavior is compliant.
- // We run the tests with a separate instance of the control flow to ensure
- // disablign error propagation does not impact other tests.
- var flow = new promise.ControlFlow();
- flow.setPropagateUnhandledRejections(false);
-
- // Skip the tests in 2.2.6.1/2. We are not compliant in these scenarios.
- var realDescribe = global.describe;
- global.describe = function(name, fn) {
- realDescribe(name, function() {
- var prefix = 'Promises/A+ Compliance Tests '
- + 'SELENIUM_PROMISE_MANAGER=true 2.2.6: '
- + '`then` may be called multiple times on the same promise.';
- var suffix = 'even when one handler is added inside another handler';
- if (this.fullTitle().startsWith(prefix)
- && this.fullTitle().endsWith(suffix)) {
- var realSpecify = global.specify;
- try {
- global.specify = function(name) {
- realSpecify(name);
- };
- fn();
- } finally {
- global.specify = realSpecify;
- }
- } else {
- fn();
- }
- });
- };
-
- require('promises-aplus-tests').mocha({
- resolved: function(value) {
- return new promise.Promise((fulfill) => fulfill(value), flow);
- },
- rejected: function(error) {
- return new promise.Promise((_, reject) => reject(error), flow);
- },
- deferred: function() {
- var d = new promise.Deferred(flow);
- return {
- resolve: d.fulfill,
- reject: d.reject,
- promise: d.promise
- };
- }
- });
-
- global.describe = realDescribe;
- });
-});
diff --git a/node_modules/selenium-webdriver/test/lib/promise_error_test.js b/node_modules/selenium-webdriver/test/lib/promise_error_test.js
deleted file mode 100644
index b89a2f875..000000000
--- a/node_modules/selenium-webdriver/test/lib/promise_error_test.js
+++ /dev/null
@@ -1,884 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Contains tests against promise error handling. Many tests use
- * NativePromise to control test termination independent of promise
- * (and notably promise.ControlFlow).
- */
-
-'use strict';
-
-const testutil = require('./testutil');
-
-const assert = require('assert');
-const promise = require('../../lib/promise');
-const {enablePromiseManager} = require('../../lib/test/promise');
-
-const NativePromise = Promise;
-const StubError = testutil.StubError;
-const throwStubError = testutil.throwStubError;
-const assertIsStubError = testutil.assertIsStubError;
-
-describe('promise error handling', function() {
- enablePromiseManager(() => {
- var flow, uncaughtExceptions;
-
- beforeEach(function setUp() {
- if (promise.USE_PROMISE_MANAGER) {
- flow = promise.controlFlow();
- uncaughtExceptions = [];
- flow.on('uncaughtException', onUncaughtException);
- }
- });
-
- afterEach(function tearDown() {
- if (promise.USE_PROMISE_MANAGER) {
- return waitForIdle(flow).then(function() {
- assert.deepEqual(
- [], uncaughtExceptions, 'There were uncaught exceptions');
- flow.reset();
- });
- }
- });
-
- function onUncaughtException(e) {
- uncaughtExceptions.push(e);
- }
-
- function waitForAbort(opt_flow, opt_n) {
- var n = opt_n || 1;
- var theFlow = opt_flow || flow;
- theFlow.removeAllListeners(
- promise.ControlFlow.EventType.UNCAUGHT_EXCEPTION);
- return new NativePromise(function(fulfill, reject) {
- theFlow.once('idle', function() {
- reject(Error('expected flow to report an unhandled error'));
- });
-
- var errors = [];
- theFlow.on('uncaughtException', onError);
- function onError(e) {
- errors.push(e);
- if (errors.length === n) {
- theFlow.removeListener('uncaughtException', onError);
- fulfill(n === 1 ? errors[0] : errors);
- }
- }
- });
- }
-
- function waitForIdle(opt_flow) {
- var theFlow = opt_flow || flow;
- return new NativePromise(function(fulfill, reject) {
- if (theFlow.isIdle()) {
- fulfill();
- return;
- }
- theFlow.once('idle', fulfill);
- theFlow.once('uncaughtException', reject);
- });
- }
-
- it('testRejectedPromiseTriggersErrorCallback', function() {
- return promise.rejected(new StubError).
- then(assert.fail, assertIsStubError);
- });
-
- describe('callback throws trigger subsequent error callback', function() {
- it('fulfilled promise', function() {
- return promise.fulfilled().
- then(throwStubError).
- then(assert.fail, assertIsStubError);
- });
-
- it('rejected promise', function() {
- var e = Error('not the droids you are looking for');
- return promise.rejected(e).
- then(assert.fail, throwStubError).
- then(assert.fail, assertIsStubError);
- });
- });
-
- describe('callback returns rejected promise triggers subsequent errback', function() {
- it('from fulfilled callback', function() {
- return promise.fulfilled().then(function() {
- return promise.rejected(new StubError);
- }).then(assert.fail, assertIsStubError);
- });
-
- it('from rejected callback', function() {
- var e = Error('not the droids you are looking for');
- return promise.rejected(e).
- then(assert.fail, function() {
- return promise.rejected(new StubError);
- }).
- then(assert.fail, assertIsStubError);
- });
- });
-
- it('testReportsUnhandledRejectionsThroughTheControlFlow', function() {
- promise.rejected(new StubError);
- return waitForAbort().then(assertIsStubError);
- });
-
- describe('multiple unhandled rejections outside a task', function() {
- it('are reported in order they occurred', function() {
- var e1 = Error('error 1');
- var e2 = Error('error 2');
-
- promise.rejected(e1);
- promise.rejected(e2);
-
- return waitForAbort(flow).then(function(error) {
- assert.ok(
- error instanceof promise.MultipleUnhandledRejectionError);
- // TODO: switch to Array.from when we drop node 0.12.x
- var errors = [];
- for (var e of error.errors) {
- errors.push(e);
- }
- assert.deepEqual([e1, e2], errors);
- });
- });
- });
-
- describe('does not report unhandled rejection when', function() {
- it('handler added before next tick', function() {
- promise.rejected(new StubError).then(assert.fail, assertIsStubError);
- return waitForIdle();
- });
-
- it('added async but before next tick', function() {
- var called = false;
- return new NativePromise(function(fulfill, reject) {
- var aPromise;
- NativePromise.resolve().then(function() {
- aPromise.then(assert.fail, function(e) {
- called = true;
- assertIsStubError(e);
- });
- waitForIdle().then(fulfill, reject);
- });
- aPromise = promise.rejected(new StubError);
- }).then(function() {
- assert.ok(called);
- })
- });
- });
-
- it('testTaskThrows', function() {
- return flow.execute(throwStubError).then(assert.fail, assertIsStubError);
- });
-
- it('testTaskReturnsRejectedPromise', function() {
- return flow.execute(function() {
- return promise.rejected(new StubError)
- }).then(assert.fail, assertIsStubError);
- });
-
- it('testTaskHasUnhandledRejection', function() {
- return flow.execute(function() {
- promise.rejected(new StubError)
- }).then(assert.fail, assertIsStubError);
- });
-
- it('testTaskfails_returnedPromiseIsUnhandled', function() {
- flow.execute(throwStubError);
- return waitForAbort().then(assertIsStubError);
- });
-
- it('testTaskHasUnhandledRejection_cancelsRemainingSubTasks', function() {
- var seen = [];
- flow.execute(function() {
- promise.rejected(new StubError);
-
- flow.execute(() => seen.push('a'))
- .then(() => seen.push('b'), (e) => seen.push(e));
- flow.execute(() => seen.push('c'))
- .then(() => seen.push('b'), (e) => seen.push(e));
- });
-
- return waitForAbort()
- .then(assertIsStubError)
- .then(() => assert.deepEqual([], seen));
- });
-
- describe('nested task failures', function() {
- it('returns up to paren', function() {
- return flow.execute(function() {
- return flow.execute(function() {
- return flow.execute(throwStubError);
- });
- }).then(assert.fail, assertIsStubError);
- });
-
- it('task throws; uncaught error bubbles up', function() {
- flow.execute(function() {
- flow.execute(function() {
- flow.execute(throwStubError);
- });
- });
- return waitForAbort().then(assertIsStubError);
- });
-
- it('task throws; uncaught error bubbles up; is caught at root', function() {
- flow.execute(function() {
- flow.execute(function() {
- flow.execute(throwStubError);
- });
- }).then(assert.fail, assertIsStubError);
- return waitForIdle();
- });
-
- it('unhandled rejection bubbles up', function() {
- flow.execute(function() {
- flow.execute(function() {
- flow.execute(function() {
- promise.rejected(new StubError);
- });
- });
- });
- return waitForAbort().then(assertIsStubError);
- });
-
- it('unhandled rejection bubbles up; caught at root', function() {
- flow.execute(function() {
- flow.execute(function() {
- promise.rejected(new StubError);
- });
- }).then(assert.fail, assertIsStubError);
- return waitForIdle();
- });
-
- it('mixtureof hanging and free subtasks', function() {
- flow.execute(function() {
- return flow.execute(function() {
- flow.execute(throwStubError);
- });
- });
- return waitForAbort().then(assertIsStubError);
- });
-
- it('cancels remaining tasks', function() {
- var seen = [];
- flow.execute(function() {
- flow.execute(() => promise.rejected(new StubError));
- flow.execute(() => seen.push('a'))
- .then(() => seen.push('b'), (e) => seen.push(e));
- flow.execute(() => seen.push('c'))
- .then(() => seen.push('b'), (e) => seen.push(e));
- });
-
- return waitForAbort()
- .then(assertIsStubError)
- .then(() => assert.deepEqual([], seen));
- });
- });
-
- it('testTaskReturnsPromiseLikeObjectThatInvokesErrback', function() {
- return flow.execute(function() {
- return {
- 'then': function(_, errback) {
- errback('abc123');
- }
- };
- }).then(assert.fail, function(value) {
- assert.equal('abc123', value);
- });
- });
-
- describe('ControlFlow#wait();', function() {
- describe('condition throws;', function() {
- it('failure is caught', function() {
- return flow.wait(throwStubError, 50).then(assert.fail, assertIsStubError);
- });
-
- it('failure is not caught', function() {
- flow.wait(throwStubError, 50);
- return waitForAbort().then(assertIsStubError);
- });
- });
-
- describe('condition returns promise', function() {
- it('failure is caught', function() {
- return flow.wait(function() {
- return promise.rejected(new StubError);
- }, 50).then(assert.fail, assertIsStubError);
- });
-
- it('failure is not caught', function() {
- flow.wait(function() {
- return promise.rejected(new StubError);
- }, 50);
- return waitForAbort().then(assertIsStubError);
- });
- });
-
- describe('condition has unhandled promise rejection', function() {
- it('failure is caught', function() {
- return flow.wait(function() {
- promise.rejected(new StubError);
- }, 50).then(assert.fail, assertIsStubError);
- });
-
- it('failure is not caught', function() {
- flow.wait(function() {
- promise.rejected(new StubError);
- }, 50);
- return waitForAbort().then(assertIsStubError);
- });
- });
-
- describe('condition has subtask failure', function() {
- it('failure is caught', function() {
- return flow.wait(function() {
- flow.execute(function() {
- flow.execute(throwStubError);
- });
- }, 50).then(assert.fail, assertIsStubError);
- });
-
- it('failure is not caught', function() {
- flow.wait(function() {
- flow.execute(function() {
- flow.execute(throwStubError);
- });
- }, 50);
- return waitForAbort().then(assertIsStubError);
- });
- });
- });
-
- describe('errback throws a new error', function() {
- it('start with normal promise', function() {
- var error = Error('an error');
- return promise.rejected(error).
- catch(function(e) {
- assert.equal(e, error);
- throw new StubError;
- }).
- catch(assertIsStubError);
- });
-
- it('start with task result', function() {
- var error = Error('an error');
- return flow.execute(function() {
- throw error;
- }).
- catch(function(e) {
- assert.equal(e, error);
- throw new StubError;
- }).
- catch(assertIsStubError);
- });
-
- it('start with normal promise; uncaught error', function() {
- var error = Error('an error');
- promise.rejected(error).
- catch(function(e) {
- assert.equal(e, error);
- throw new StubError;
- });
- return waitForAbort().then(assertIsStubError);
- });
-
- it('start with task result; uncaught error', function() {
- var error = Error('an error');
- flow.execute(function() {
- throw error;
- }).
- catch(function(e) {
- assert.equal(e, error);
- throw new StubError;
- });
- return waitForAbort().then(assertIsStubError);
- });
- });
-
- it('thrownPromiseCausesCallbackRejection', function() {
- let p = promise.fulfilled(1234);
- return promise.fulfilled().then(function() {
- throw p;
- }).then(assert.fail, function(value) {
- assert.strictEqual(p, value);
- });
- });
-
- describe('task throws promise', function() {
- it('promise was fulfilled', function() {
- var toThrow = promise.fulfilled(1234);
- flow.execute(function() {
- throw toThrow;
- }).then(assert.fail, function(value) {
- assert.equal(toThrow, value);
- return toThrow;
- }).then(function(value) {
- assert.equal(1234, value);
- });
- return waitForIdle();
- });
-
- it('promise was rejected', function() {
- var toThrow = promise.rejected(new StubError);
- toThrow.catch(function() {}); // For tearDown.
- flow.execute(function() {
- throw toThrow;
- }).then(assert.fail, function(e) {
- assert.equal(toThrow, e);
- return e;
- }).then(assert.fail, assertIsStubError);
- return waitForIdle();
- });
- });
-
- it('testFailsTaskIfThereIsAnUnhandledErrorWhileWaitingOnTaskResult', function() {
- var d = promise.defer();
- flow.execute(function() {
- promise.rejected(new StubError);
- return d.promise;
- }).then(assert.fail, assertIsStubError);
-
- return waitForIdle().then(function() {
- return d.promise;
- }).then(assert.fail, function(e) {
- assert.equal('CancellationError: StubError', e.toString());
- });
- });
-
- it('testFailsParentTaskIfAsyncScheduledTaskFails', function() {
- var d = promise.defer();
- flow.execute(function() {
- flow.execute(throwStubError);
- return d.promise;
- }).then(assert.fail, assertIsStubError);
-
- return waitForIdle().then(function() {
- return d.promise;
- }).then(assert.fail, function(e) {
- assert.equal('CancellationError: StubError', e.toString());
- });
- });
-
- describe('long stack traces', function() {
- afterEach(() => promise.LONG_STACK_TRACES = false);
-
- it('always includes task stacks in failures', function() {
- promise.LONG_STACK_TRACES = false;
- flow.execute(function() {
- flow.execute(function() {
- flow.execute(throwStubError, 'throw error');
- }, 'two');
- }, 'three').
- then(assert.fail, function(e) {
- assertIsStubError(e);
- if (typeof e.stack !== 'string') {
- return;
- }
- var messages = e.stack.split(/\n/).filter(function(line, index) {
- return /^From: /.test(line);
- });
- assert.deepEqual([
- 'From: Task: throw error',
- 'From: Task: two',
- 'From: Task: three'
- ], messages);
- });
- return waitForIdle();
- });
-
- it('does not include completed tasks', function () {
- flow.execute(function() {}, 'succeeds');
- flow.execute(throwStubError, 'kaboom').then(assert.fail, function(e) {
- assertIsStubError(e);
- if (typeof e.stack !== 'string') {
- return;
- }
- var messages = e.stack.split(/\n/).filter(function(line, index) {
- return /^From: /.test(line);
- });
- assert.deepEqual(['From: Task: kaboom'], messages);
- });
- return waitForIdle();
- });
-
- it('does not include promise chain when disabled', function() {
- promise.LONG_STACK_TRACES = false;
- flow.execute(function() {
- flow.execute(function() {
- return promise.fulfilled().
- then(function() {}).
- then(function() {}).
- then(throwStubError);
- }, 'eventually assert.fails');
- }, 'start').
- then(assert.fail, function(e) {
- assertIsStubError(e);
- if (typeof e.stack !== 'string') {
- return;
- }
- var messages = e.stack.split(/\n/).filter(function(line, index) {
- return /^From: /.test(line);
- });
- assert.deepEqual([
- 'From: Task: eventually assert.fails',
- 'From: Task: start'
- ], messages);
- });
- return waitForIdle();
- });
-
- it('includes promise chain when enabled', function() {
- promise.LONG_STACK_TRACES = true;
- flow.execute(function() {
- flow.execute(function() {
- return promise.fulfilled().
- then(function() {}).
- then(function() {}).
- then(throwStubError);
- }, 'eventually assert.fails');
- }, 'start').
- then(assert.fail, function(e) {
- assertIsStubError(e);
- if (typeof e.stack !== 'string') {
- return;
- }
- var messages = e.stack.split(/\n/).filter(function(line, index) {
- return /^From: /.test(line);
- });
- assert.deepEqual([
- 'From: Promise: then',
- 'From: Task: eventually assert.fails',
- 'From: Task: start'
- ], messages);
- });
- return waitForIdle();
- });
- });
-
- describe('frame cancels remaining tasks', function() {
- it('on unhandled task failure', function() {
- var run = false;
- return flow.execute(function() {
- flow.execute(throwStubError);
- flow.execute(function() { run = true; });
- }).then(assert.fail, function(e) {
- assertIsStubError(e);
- assert.ok(!run);
- });
- });
-
- it('on unhandled promise rejection', function() {
- var run = false;
- return flow.execute(function() {
- promise.rejected(new StubError);
- flow.execute(function() { run = true; });
- }).then(assert.fail, function(e) {
- assertIsStubError(e);
- assert.ok(!run);
- });
- });
-
- it('if task throws', function() {
- var run = false;
- return flow.execute(function() {
- flow.execute(function() { run = true; });
- throw new StubError;
- }).then(assert.fail, function(e) {
- assertIsStubError(e);
- assert.ok(!run);
- });
- });
-
- describe('task callbacks scheduled in another frame', function() {
- flow = promise.controlFlow();
- function noop() {}
-
- let subTask;
-
- before(function() {
- flow.execute(function() {
- // This task will be discarded and never run because of the error below.
- subTask = flow.execute(() => 'abc');
- throw new StubError('stub');
- }).catch(noop);
- });
-
- function assertCancellation(e) {
- assert.ok(e instanceof promise.CancellationError);
- assert.equal(
- 'Task was discarded due to a previous failure: stub', e.message);
- }
-
- it('are rejected with cancellation error', function() {
- let result;
- return Promise.resolve().then(function() {
- return flow.execute(function() {
- result = subTask.then(assert.fail);
- });
- })
- .then(() => result)
- .then(assert.fail, assertCancellation);
- });
-
- it('cancellation errors propagate through callbacks (1)', function() {
- let result;
- return Promise.resolve().then(function() {
- return flow.execute(function() {
- result = subTask
- .then(assert.fail, assertCancellation)
- .then(() => 'abc123');
- });
- })
- .then(() => result)
- .then(value => assert.equal('abc123', value));
- });
-
- it('cancellation errors propagate through callbacks (2)', function() {
- let result;
- return Promise.resolve().then(function() {
- return flow.execute(function() {
- result = subTask.then(assert.fail)
- .then(noop, assertCancellation)
- .then(() => 'fin');
- });
- })
- // Verify result actually computed successfully all the way through.
- .then(() => result)
- .then(value => assert.equal('fin', value));
- });
- });
- });
-
- it('testRegisteredTaskCallbacksAreDroppedWhenTaskIsCancelled_return', function() {
- var seen = [];
- return flow.execute(function() {
- flow.execute(throwStubError);
-
- flow.execute(function() {
- seen.push(1);
- }).then(function() {
- seen.push(2);
- }, function() {
- seen.push(3);
- });
- }).then(assert.fail, function(e) {
- assertIsStubError(e);
- assert.deepEqual([], seen);
- });
- });
-
- it('testRegisteredTaskCallbacksAreDroppedWhenTaskIsCancelled_withReturn', function() {
- var seen = [];
- return flow.execute(function() {
- flow.execute(throwStubError);
-
- return flow.execute(function() {
- seen.push(1);
- }).then(function() {
- seen.push(2);
- }, function() {
- seen.push(3);
- });
- }).then(assert.fail, function(e) {
- assertIsStubError(e);
- assert.deepEqual([], seen);
- });
- });
-
- it('testTasksWithinACallbackAreDroppedIfContainingTaskIsAborted', function() {
- var seen = [];
- return flow.execute(function() {
- flow.execute(throwStubError);
-
- // None of the callbacks on this promise should execute because the
- // task assert.failure above is never handled, causing the containing task to
- // abort.
- promise.fulfilled().then(function() {
- seen.push(1);
- return flow.execute(function() {
- seen.push(2);
- });
- }).finally(function() {
- seen.push(3);
- });
-
- }).then(assert.fail, function(e) {
- assertIsStubError(e);
- assert.deepEqual([], seen);
- });
- });
-
- it('testTaskIsCancelledAfterWaitTimeout', function() {
- var seen = [];
- return flow.execute(function() {
- flow.wait(function() {
- return promise.delayed(50);
- }, 5);
-
- return flow.execute(function() {
- seen.push(1);
- }).then(function() {
- seen.push(2);
- }, function() {
- seen.push(3);
- });
- }).then(assert.fail, function() {
- assert.deepEqual([], seen);
- });
- });
-
- describe('task callbacks get cancellation error if registered after task was cancelled', function() {
- it('(a)', function() {
- var task;
- flow.execute(function() {
- flow.execute(throwStubError);
- task = flow.execute(function() {});
- }).then(assert.fail, assertIsStubError);
- return waitForIdle().then(function() {
- return task.then(assert.fail, function(e) {
- assert.ok(e instanceof promise.CancellationError);
- });
- });
- });
-
- it('(b)', function() {
- var seen = [];
-
- var task;
- flow.execute(function() {
- flow.execute(throwStubError);
- task = flow.execute(function() {});
-
- task.then(() => seen.push(1))
- .then(() => seen.push(2));
- task.then(() => seen.push(3))
- .then(() => seen.push(4));
-
- }).then(assert.fail, assertIsStubError);
-
- return waitForIdle().then(function() {
- return task.then(assert.fail, function(e) {
- seen.push(5);
- assert.ok(e instanceof promise.CancellationError);
- });
- }).then(() => assert.deepEqual([5], seen));
- });
- });
-
- it('unhandledRejectionInParallelTaskQueue', function() {
- var seen = [];
- function schedule(name) {
- return flow.execute(() => seen.push(name), name);
- }
-
- flow.async(function() {
- schedule('a.1');
- flow.execute(throwStubError, 'a.2 (throws)');
- });
-
- var b3;
- flow.async(function() {
- schedule('b.1');
- schedule('b.2');
- b3 = schedule('b.3');
- });
-
- var c3;
- flow.async(function() {
- schedule('c.1');
- schedule('c.2');
- c3 = schedule('c.3');
- });
-
- function assertWasCancelled(p) {
- return p.then(assert.fail, function(e) {
- assert.ok(e instanceof promise.CancellationError);
- });
- }
-
- return waitForAbort()
- .then(function() {
- assert.deepEqual(['a.1', 'b.1', 'c.1', 'b.2', 'c.2'], seen);
- })
- .then(() => assertWasCancelled(b3))
- .then(() => assertWasCancelled(c3));
- });
-
- it('errorsInAsyncFunctionsAreReportedAsUnhandledRejection', function() {
- flow.removeAllListeners(); // For tearDown.
-
- var task;
- return new Promise(function(fulfill) {
- flow.once('uncaughtException', fulfill);
- flow.async(function() {
- task = flow.execute(function() {});
- throw Error('boom');
- });
- }).then(function(error) {
- assert.ok(error instanceof promise.CancellationError);
- return task.catch(function(error) {
- assert.ok(error instanceof promise.CancellationError);
- });
- });
- });
-
- describe('does not wait for values thrown from callbacks to be resolved', function() {
- it('(a)', function() {
- var p1 = promise.fulfilled();
- var reason = promise.fulfilled('should not see me');
- return p1.then(function() {
- throw reason;
- }).then(assert.fail, function(e) {
- assert.equal(reason, e);
- });
- });
-
- it('(b)', function() {
- var p1 = promise.fulfilled();
- var reason = promise.rejected('should not see me');
- reason.catch(function() {}); // For tearDown.
- return p1.then(function() {
- throw reason;
- }).then(assert.fail, function(e) {
- assert.equal(reason, e);
- });
- });
-
- it('(c)', function() {
- var p1 = promise.fulfilled();
- var reason = promise.defer();
- setTimeout(() => reason.fulfill('should not see me'), 100);
- return p1.then(function() {
- throw reason.promise;
- }).then(assert.fail, function(e) {
- assert.equal(reason.promise, e);
- });
- });
-
- it('(d)', function() {
- var p1 = promise.fulfilled();
- var reason = {then: function() {}}; // A thenable like object.
- return p1.then(function() {
- throw reason;
- }).then(assert.fail, function(e) {
- assert.equal(reason, e);
- });
- });
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/lib/promise_flow_test.js b/node_modules/selenium-webdriver/test/lib/promise_flow_test.js
deleted file mode 100644
index 407fd547e..000000000
--- a/node_modules/selenium-webdriver/test/lib/promise_flow_test.js
+++ /dev/null
@@ -1,2288 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const assert = require('assert');
-const fail = assert.fail;
-const sinon = require('sinon');
-
-const testutil = require('./testutil');
-const {TimeoutError} = require('../../lib/error');
-const promise = require('../../lib/promise');
-const {enablePromiseManager} = require('../../lib/test/promise');
-
-const NativePromise = Promise;
-
-// Aliases for readability.
-const StubError = testutil.StubError;
-const assertIsStubError = testutil.assertIsStubError;
-const callbackPair = testutil.callbackPair;
-const throwStubError = testutil.throwStubError;
-
-describe('promise control flow', function() {
- enablePromiseManager(() => {
- let flow, flowHistory, messages, uncaughtExceptions;
-
- beforeEach(function setUp() {
- promise.LONG_STACK_TRACES = false;
- flow = new promise.ControlFlow();
- promise.setDefaultFlow(flow);
- messages = [];
- flowHistory = [];
-
- uncaughtExceptions = [];
- flow.on(promise.ControlFlow.EventType.UNCAUGHT_EXCEPTION,
- onUncaughtException);
- });
-
- afterEach(function tearDown() {
- flow.removeAllListeners(
- promise.ControlFlow.EventType.UNCAUGHT_EXCEPTION);
- assert.deepEqual([], uncaughtExceptions,
- 'There were uncaught exceptions');
- flow.reset();
- promise.LONG_STACK_TRACES = false;
- });
-
- function onUncaughtException(e) {
- uncaughtExceptions.push(e);
- }
-
- function defer() {
- let d = {};
- let promise = new Promise((resolve, reject) => {
- Object.assign(d, {resolve, reject});
- });
- d.promise = promise;
- return d;
- }
-
- function waitForAbort(opt_flow) {
- var theFlow = opt_flow || flow;
- theFlow.removeAllListeners(
- promise.ControlFlow.EventType.UNCAUGHT_EXCEPTION);
- return new NativePromise(function(fulfill, reject) {
- theFlow.once(promise.ControlFlow.EventType.IDLE, function() {
- reject(Error('expected flow to report an unhandled error'));
- });
- theFlow.once(
- promise.ControlFlow.EventType.UNCAUGHT_EXCEPTION,
- fulfill);
- });
- }
-
- function waitForIdle(opt_flow) {
- var theFlow = opt_flow || flow;
- return new NativePromise(function(fulfill, reject) {
- theFlow.once(promise.ControlFlow.EventType.IDLE, fulfill);
- theFlow.once(
- promise.ControlFlow.EventType.UNCAUGHT_EXCEPTION, reject);
- });
- }
-
- function timeout(ms) {
- return new NativePromise(function(fulfill) {
- setTimeout(fulfill, ms);
- });
- }
-
-
- function schedule(msg, opt_return) {
- return scheduleAction(msg, function() {
- return opt_return;
- });
- }
-
- /**
- * @param {string} value The value to push.
- * @param {promise.Promise=} opt_taskPromise Promise to return from
- * the task.
- * @return {!promise.Promise} The result.
- */
- function schedulePush(value, opt_taskPromise) {
- return scheduleAction(value, function() {
- messages.push(value);
- return opt_taskPromise;
- });
- }
-
- /**
- * @param {string} msg Debug message.
- * @param {!Function} actionFn The function.
- * @return {!promise.Promise} The function result.
- */
- function scheduleAction(msg, actionFn) {
- return promise.controlFlow().execute(function() {
- flowHistory.push(msg);
- return actionFn();
- }, msg);
- }
-
- /**
- * @param {!Function} condition The condition function.
- * @param {number=} opt_timeout The timeout.
- * @param {string=} opt_message Optional message.
- * @return {!promise.Promise} The wait result.
- */
- function scheduleWait(condition, opt_timeout, opt_message) {
- var msg = opt_message || '';
- // It's not possible to hook into when the wait itself is scheduled, so
- // we record each iteration of the wait loop.
- var count = 0;
- return promise.controlFlow().wait(function() {
- flowHistory.push((count++) + ': ' + msg);
- return condition();
- }, opt_timeout, msg);
- }
-
- function asyncRun(fn, opt_self) {
- NativePromise.resolve().then(() => fn.call(opt_self));
- }
-
- function assertFlowHistory(var_args) {
- var expected = Array.prototype.slice.call(arguments, 0);
- assert.deepEqual(expected, flowHistory);
- }
-
- function assertMessages(var_args) {
- var expected = Array.prototype.slice.call(arguments, 0);
- assert.deepEqual(expected, messages);
- }
-
- function assertingMessages(var_args) {
- var args = Array.prototype.slice.call(arguments, 0);
- return () => assertMessages.apply(null, args);
- }
-
- function assertFlowIs(flow) {
- assert.equal(flow, promise.controlFlow());
- }
-
- describe('testScheduling', function() {
- it('aSimpleFunction', function() {
- schedule('go');
- return waitForIdle().then(function() {
- assertFlowHistory('go');
- });
- });
-
- it('aSimpleFunctionWithANonPromiseReturnValue', function() {
- schedule('go', 123).then(function(value) {
- assert.equal(123, value);
- });
- return waitForIdle().then(function() {
- assertFlowHistory('go');
- });
- });
-
- it('aSimpleSequence', function() {
- schedule('a');
- schedule('b');
- schedule('c');
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c');
- });
- });
-
- it('invokesCallbacksWhenTaskIsDone', function() {
- var d = new promise.Deferred();
- var called = false;
- var done = schedule('a', d.promise).then(function(value) {
- called = true;
- assert.equal(123, value);
- });
- return timeout(5).then(function() {
- assert.ok(!called);
- d.fulfill(123);
- return done;
- }).
- then(function() {
- assertFlowHistory('a');
- });
- });
-
- it('blocksUntilPromiseReturnedByTaskIsResolved', function() {
- var done = promise.defer();
- schedulePush('a', done.promise);
- schedulePush('b');
- setTimeout(function() {
- done.fulfill();
- messages.push('c');
- }, 25);
- return waitForIdle().then(assertingMessages('a', 'c', 'b'));
- });
-
- it('waitsForReturnedPromisesToResolve', function() {
- var d1 = new promise.Deferred();
- var d2 = new promise.Deferred();
-
- var callback = sinon.spy();
- schedule('a', d1.promise).then(callback);
-
- return timeout(5).then(function() {
- assert(!callback.called);
- d1.fulfill(d2.promise);
- return timeout(5);
- }).then(function() {
- assert(!callback.called);
- d2.fulfill('fluffy bunny');
- return waitForIdle();
- }).then(function() {
- assert(callback.called);
- assert.equal('fluffy bunny', callback.getCall(0).args[0]);
- assertFlowHistory('a');
- });
- });
-
- it('executesTasksInAFutureTurnAfterTheyAreScheduled', function() {
- var count = 0;
- function incr() { count++; }
-
- scheduleAction('', incr);
- assert.equal(0, count);
- return waitForIdle().then(function() {
- assert.equal(1, count);
- });
- });
-
- it('executesOneTaskPerTurnOfTheEventLoop', function() {
- var order = [];
- function go() {
- order.push(order.length / 2);
- asyncRun(function() {
- order.push('-');
- });
- }
-
- scheduleAction('', go);
- scheduleAction('', go);
- return waitForIdle().then(function() {
- assert.deepEqual([0, '-', 1, '-'], order);
- })
- });
-
- it('firstScheduledTaskIsWithinACallback', function() {
- promise.fulfilled().then(function() {
- schedule('a');
- schedule('b');
- schedule('c');
- }).then(function() {
- assertFlowHistory('a', 'b', 'c');
- });
- return waitForIdle();
- });
-
- it('newTasksAddedWhileWaitingOnTaskReturnedPromise1', function() {
- scheduleAction('a', function() {
- var d = promise.defer();
- setTimeout(function() {
- schedule('c');
- d.fulfill();
- }, 10);
- return d.promise;
- });
- schedule('b');
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c');
- });
- });
-
- it('newTasksAddedWhileWaitingOnTaskReturnedPromise2', function() {
- scheduleAction('a', function() {
- var d = promise.defer();
- setTimeout(function() {
- schedule('c');
- asyncRun(d.fulfill);
- }, 10);
- return d.promise;
- });
- schedule('b');
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'c', 'b');
- });
- });
- });
-
- describe('testFraming', function() {
- it('callbacksRunInANewFrame', function() {
- schedule('a').then(function() {
- schedule('c');
- });
- schedule('b');
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'c', 'b');
- });
- });
-
- it('lotsOfNesting', function() {
- schedule('a').then(function() {
- schedule('c').then(function() {
- schedule('e').then(function() {
- schedule('g');
- });
- schedule('f');
- });
- schedule('d');
- });
- schedule('b');
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'c', 'e', 'g', 'f', 'd', 'b');
- });
- });
-
- it('callbackReturnsPromiseThatDependsOnATask_1', function() {
- schedule('a').then(function() {
- schedule('b');
- return promise.delayed(5).then(function() {
- return schedule('c');
- });
- });
- schedule('d');
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c', 'd');
- });
- });
-
- it('callbackReturnsPromiseThatDependsOnATask_2', function() {
- schedule('a').then(function() {
- schedule('b');
- return promise.delayed(5).
- then(function() { return promise.delayed(5) }).
- then(function() { return promise.delayed(5) }).
- then(function() { return promise.delayed(5) }).
- then(function() { return schedule('c'); });
- });
- schedule('d');
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c', 'd');
- });
- });
-
- it('eachCallbackWaitsForAllScheduledTasksToComplete', function() {
- schedule('a').
- then(function() {
- schedule('b');
- schedule('c');
- }).
- then(function() {
- schedule('d');
- });
- schedule('e');
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c', 'd', 'e');
- });
- });
-
- it('eachCallbackWaitsForReturnTasksToComplete', function() {
- schedule('a').
- then(function() {
- schedule('b');
- return schedule('c');
- }).
- then(function() {
- schedule('d');
- });
- schedule('e');
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c', 'd', 'e');
- });
- });
-
- it('callbacksOnAResolvedPromiseInsertIntoTheCurrentFlow', function() {
- promise.fulfilled().then(function() {
- schedule('b');
- });
- schedule('a');
-
- return waitForIdle().then(function() {
- assertFlowHistory('b', 'a');
- });
- });
-
- it('callbacksInterruptTheFlowWhenPromiseIsResolved', function() {
- schedule('a').then(function() {
- schedule('c');
- });
- schedule('b');
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'c', 'b');
- });
- });
-
- it('allCallbacksInAFrameAreScheduledWhenPromiseIsResolved', function() {
- var a = schedule('a');
- a.then(function() { schedule('b'); });
- schedule('c');
- a.then(function() { schedule('d'); });
- schedule('e');
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c', 'd', 'e');
- });
- });
-
- it('tasksScheduledInInActiveFrameDoNotGetPrecedence', function() {
- var d = promise.fulfilled();
- schedule('a');
- schedule('b');
- d.then(function() { schedule('c'); });
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c');
- });
- });
-
- it('tasksScheduledInAFrameGetPrecedence_1', function() {
- var a = schedule('a');
- schedule('b').then(function() {
- a.then(function() {
- schedule('c');
- schedule('d');
- });
- var e = schedule('e');
- a.then(function() {
- schedule('f');
- e.then(function() {
- schedule('g');
- });
- schedule('h');
- });
- schedule('i');
- });
- schedule('j');
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j');
- });
- });
- });
-
- describe('testErrorHandling', function() {
- it('thrownErrorsArePassedToTaskErrback', function() {
- scheduleAction('function that throws', throwStubError).
- then(fail, assertIsStubError);
- return waitForIdle();
- });
-
- it('thrownErrorsPropagateThroughPromiseChain', function() {
- scheduleAction('function that throws', throwStubError).
- then(fail).
- then(fail, assertIsStubError);
- return waitForIdle();
- });
-
- it('catchesErrorsFromFailedTasksInAFrame', function() {
- schedule('a').then(function() {
- schedule('b');
- scheduleAction('function that throws', throwStubError);
- }).
- then(fail, assertIsStubError);
- return waitForIdle();
- });
-
- it('abortsIfOnlyTaskReturnsAnUnhandledRejection', function() {
- scheduleAction('function that returns rejected promise', function() {
- return promise.rejected(new StubError);
- });
- return waitForAbort().then(assertIsStubError);
- });
-
- it('abortsIfThereIsAnUnhandledRejection', function() {
- promise.rejected(new StubError);
- schedule('this should not run');
- return waitForAbort().
- then(assertIsStubError).
- then(function() {
- assertFlowHistory(/* none */);
- });
- });
-
- it('abortsSequenceIfATaskFails', function() {
- schedule('a');
- schedule('b');
- scheduleAction('c', throwStubError);
- schedule('d'); // Should never execute.
-
- return waitForAbort().
- then(assertIsStubError).
- then(function() {
- assertFlowHistory('a', 'b', 'c');
- });
- });
-
- it('abortsFromUnhandledFramedTaskFailures_1', function() {
- schedule('outer task').then(function() {
- scheduleAction('inner task', throwStubError);
- });
- schedule('this should not run');
- return waitForAbort().
- then(assertIsStubError).
- then(function() {
- assertFlowHistory('outer task', 'inner task');
- });
- });
-
- it('abortsFromUnhandledFramedTaskFailures_2', function() {
- schedule('a').then(function() {
- schedule('b').then(function() {
- scheduleAction('c', throwStubError);
- // This should not execute.
- schedule('d');
- });
- });
-
- return waitForAbort().
- then(assertIsStubError).
- then(function() {
- assertFlowHistory('a', 'b', 'c');
- });
- });
-
- it('abortsWhenErrorBubblesUpFromFullyResolvingAnObject', function() {
- var callback = sinon.spy();
-
- scheduleAction('', function() {
- var obj = {'foo': promise.rejected(new StubError)};
- return promise.fullyResolved(obj).then(callback);
- });
-
- return waitForAbort().
- then(assertIsStubError).
- then(() => assert(!callback.called));
- });
-
- it('abortsWhenErrorBubblesUpFromFullyResolvingAnObject_withCallback', function() {
- var callback1 = sinon.spy();
- var callback2 = sinon.spy();
-
- scheduleAction('', function() {
- var obj = {'foo': promise.rejected(new StubError)};
- return promise.fullyResolved(obj).then(callback1);
- }).then(callback2);
-
- return waitForAbort().
- then(assertIsStubError).
- then(() => assert(!callback1.called)).
- then(() => assert(!callback2.called));
- });
-
- it('canCatchErrorsFromNestedTasks', function() {
- var errback = sinon.spy();
- schedule('a').
- then(function() {
- return scheduleAction('b', throwStubError);
- }).
- catch(errback);
- return waitForIdle().then(function() {
- assert(errback.called);
- assertIsStubError(errback.getCall(0).args[0]);
- });
- });
-
- it('nestedCommandFailuresCanBeCaughtAndSuppressed', function() {
- var errback = sinon.spy();
- schedule('a').then(function() {
- return schedule('b').then(function() {
- return schedule('c').then(function() {
- throw new StubError;
- });
- });
- }).catch(errback);
- schedule('d');
- return waitForIdle().
- then(function() {
- assert(errback.called);
- assertIsStubError(errback.getCall(0).args[0]);
- assertFlowHistory('a', 'b', 'c', 'd');
- });
- });
-
- it('aTaskWithAnUnhandledPromiseRejection', function() {
- schedule('a');
- scheduleAction('sub-tasks', function() {
- promise.rejected(new StubError);
- });
- schedule('should never run');
-
- return waitForAbort().
- then(assertIsStubError).
- then(function() {
- assertFlowHistory('a', 'sub-tasks');
- });
- });
-
- it('aTaskThatReutrnsARejectedPromise', function() {
- schedule('a');
- scheduleAction('sub-tasks', function() {
- return promise.rejected(new StubError);
- });
- schedule('should never run');
-
- return waitForAbort().
- then(assertIsStubError).
- then(function() {
- assertFlowHistory('a', 'sub-tasks');
- });
- });
-
- it('discardsSubtasksIfTaskThrows', function() {
- var pair = callbackPair(null, assertIsStubError);
- scheduleAction('a', function() {
- schedule('b');
- schedule('c');
- throwStubError();
- }).then(pair.callback, pair.errback);
- schedule('d');
-
- return waitForIdle().
- then(pair.assertErrback).
- then(function() {
- assertFlowHistory('a', 'd');
- });
- });
-
- it('discardsRemainingSubtasksIfASubtaskFails', function() {
- var pair = callbackPair(null, assertIsStubError);
- scheduleAction('a', function() {
- schedule('b');
- scheduleAction('c', throwStubError);
- schedule('d');
- }).then(pair.callback, pair.errback);
- schedule('e');
-
- return waitForIdle().
- then(pair.assertErrback).
- then(function() {
- assertFlowHistory('a', 'b', 'c', 'e');
- });
- });
- });
-
- describe('testTryModelingFinally', function() {
- it('happyPath', function() {
- /* Model:
- try {
- doFoo();
- doBar();
- } finally {
- doBaz();
- }
- */
- schedulePush('foo').
- then(() => schedulePush('bar')).
- finally(() => schedulePush('baz'));
- return waitForIdle().then(assertingMessages('foo', 'bar', 'baz'));
- });
-
- it('firstTryFails', function() {
- /* Model:
- try {
- doFoo();
- doBar();
- } finally {
- doBaz();
- }
- */
-
- scheduleAction('doFoo and throw', function() {
- messages.push('foo');
- throw new StubError;
- }).
- then(function() { schedulePush('bar'); }).
- finally(function() { schedulePush('baz'); });
-
- return waitForAbort().
- then(assertIsStubError).
- then(assertingMessages('foo', 'baz'));
- });
-
- it('secondTryFails', function() {
- /* Model:
- try {
- doFoo();
- doBar();
- } finally {
- doBaz();
- }
- */
-
- schedulePush('foo').
- then(function() {
- return scheduleAction('doBar and throw', function() {
- messages.push('bar');
- throw new StubError;
- });
- }).
- finally(function() {
- return schedulePush('baz');
- });
- return waitForAbort().
- then(assertIsStubError).
- then(assertingMessages('foo', 'bar', 'baz'));
- });
- });
-
- describe('testTaskCallbacksInterruptFlow', function() {
- it('(base case)', function() {
- schedule('a').then(function() {
- schedule('b');
- });
- schedule('c');
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c');
- });
- });
-
- it('taskDependsOnImmediatelyFulfilledPromise', function() {
- scheduleAction('a', function() {
- return promise.fulfilled();
- }).then(function() {
- schedule('b');
- });
- schedule('c');
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c');
- });
- });
-
- it('taskDependsOnPreviouslyFulfilledPromise', function() {
- var aPromise = promise.fulfilled(123);
- scheduleAction('a', function() {
- return aPromise;
- }).then(function(value) {
- assert.equal(123, value);
- schedule('b');
- });
- schedule('c');
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c');
- });
- });
-
- it('taskDependsOnAsyncPromise', function() {
- scheduleAction('a', function() {
- return promise.delayed(25);
- }).then(function() {
- schedule('b');
- });
- schedule('c');
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c');
- });
- });
-
- it('promiseChainedToTaskInterruptFlow', function() {
- schedule('a').then(function() {
- return promise.fulfilled();
- }).then(function() {
- return promise.fulfilled();
- }).then(function() {
- schedule('b');
- });
- schedule('c');
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c');
- });
- });
-
- it('nestedTaskCallbacksInterruptFlowWhenResolved', function() {
- schedule('a').then(function() {
- schedule('b').then(function() {
- schedule('c');
- });
- });
- schedule('d');
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c', 'd');
- });
- });
- });
-
- describe('testDelayedNesting', function() {
-
- it('1', function() {
- var a = schedule('a');
- schedule('b').then(function() {
- a.then(function() { schedule('c'); });
- schedule('d');
- });
- schedule('e');
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c', 'd', 'e');
- });
- });
-
- it('2', function() {
- var a = schedule('a');
- schedule('b').then(function() {
- a.then(function() { schedule('c'); });
- schedule('d');
- a.then(function() { schedule('e'); });
- });
- schedule('f');
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c', 'd', 'e', 'f');
- });
- });
-
- it('3', function() {
- var a = schedule('a');
- schedule('b').then(function() {
- a.then(function() { schedule('c'); });
- a.then(function() { schedule('d'); });
- });
- schedule('e');
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c', 'd', 'e');
- });
- });
-
- it('4', function() {
- var a = schedule('a');
- schedule('b').then(function() {
- a.then(function() { schedule('c'); }).then(function() {
- schedule('d');
- });
- a.then(function() { schedule('e'); });
- });
- schedule('f');
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c', 'd', 'e', 'f');
- });
- });
-
- it('5', function() {
- var a = schedule('a');
- schedule('b').then(function() {
- var c;
- a.then(function() { c = schedule('c'); }).then(function() {
- schedule('d');
- a.then(function() { schedule('e'); });
- c.then(function() { schedule('f'); });
- schedule('g');
- });
- a.then(function() { schedule('h'); });
- });
- schedule('i');
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i');
- });
- });
- });
-
- describe('testWaiting', function() {
- it('onAConditionThatIsAlwaysTrue', function() {
- scheduleWait(function() { return true;}, 0, 'waiting on true');
- return waitForIdle().then(function() {
- assertFlowHistory('0: waiting on true');
- });
- });
-
- it('aSimpleCountingCondition', function() {
- var count = 0;
- scheduleWait(function() {
- return ++count == 3;
- }, 100, 'counting to 3');
-
- return waitForIdle().then(function() {
- assert.equal(3, count);
- });
- });
-
- it('aConditionThatReturnsAPromise', function() {
- var d = new promise.Deferred();
- var count = 0;
-
- scheduleWait(function() {
- count += 1;
- return d.promise;
- }, 0, 'waiting for promise');
-
- return timeout(50).then(function() {
- assert.equal(1, count);
- d.fulfill(123);
- return waitForIdle();
- });
- });
-
- it('aConditionThatReturnsAPromise_2', function() {
- var count = 0;
- scheduleWait(function() {
- return promise.fulfilled(++count == 3);
- }, 100, 'waiting for promise');
-
- return waitForIdle().then(function() {
- assert.equal(3, count);
- });
- });
-
- it('aConditionThatReturnsATaskResult', function() {
- var count = 0;
- scheduleWait(function() {
- return scheduleAction('increment count', function() {
- return ++count == 3;
- });
- }, 100, 'counting to 3');
- schedule('post wait');
-
- return waitForIdle().then(function() {
- assert.equal(3, count);
- assertFlowHistory(
- '0: counting to 3', 'increment count',
- '1: counting to 3', 'increment count',
- '2: counting to 3', 'increment count',
- 'post wait');
- });
- });
-
- it('conditionContainsASubtask', function() {
- var count = 0;
- scheduleWait(function() {
- schedule('sub task');
- return ++count == 3;
- }, 100, 'counting to 3');
- schedule('post wait');
-
- return waitForIdle().then(function() {
- assert.equal(3, count);
- assertFlowHistory(
- '0: counting to 3', 'sub task',
- '1: counting to 3', 'sub task',
- '2: counting to 3', 'sub task',
- 'post wait');
- });
- });
-
- it('cancelsWaitIfScheduledTaskFails', function() {
- var pair = callbackPair(null, assertIsStubError);
- scheduleWait(function() {
- scheduleAction('boom', throwStubError);
- schedule('this should not run');
- return true;
- }, 100, 'waiting to go boom').then(pair.callback, pair.errback);
- schedule('post wait');
-
- return waitForIdle().
- then(pair.assertErrback).
- then(function() {
- assertFlowHistory(
- '0: waiting to go boom', 'boom',
- 'post wait');
- });
- });
-
- it('failsIfConditionThrows', function() {
- var callbacks = callbackPair(null, assertIsStubError);
- scheduleWait(throwStubError, 0, 'goes boom').
- then(callbacks.callback, callbacks.errback);
- schedule('post wait');
-
- return waitForIdle().
- then(callbacks.assertErrback).
- then(function() {
- assertFlowHistory('0: goes boom', 'post wait');
- });
- });
-
- it('failsIfConditionReturnsARejectedPromise', function() {
- var callbacks = callbackPair(null, assertIsStubError);
- scheduleWait(function() {
- return promise.rejected(new StubError);
- }, 0, 'goes boom').then(callbacks.callback, callbacks.errback);
- schedule('post wait');
-
- return waitForIdle().
- then(callbacks.assertErrback).
- then(function() {
- assertFlowHistory('0: goes boom', 'post wait');
- });
- });
-
- it('failsIfConditionHasUnhandledRejection', function() {
- var callbacks = callbackPair(null, assertIsStubError);
- scheduleWait(function() {
- promise.controlFlow().execute(throwStubError);
- }, 0, 'goes boom').then(callbacks.callback, callbacks.errback);
- schedule('post wait');
-
- return waitForIdle().
- then(callbacks.assertErrback).
- then(function() {
- assertFlowHistory('0: goes boom', 'post wait');
- });
- });
-
- it('failsIfConditionHasAFailedSubtask', function() {
- var callbacks = callbackPair(null, assertIsStubError);
- var count = 0;
- scheduleWait(function() {
- scheduleAction('maybe throw', function() {
- if (++count == 2) {
- throw new StubError;
- }
- });
- }, 100, 'waiting').then(callbacks.callback, callbacks.errback);
- schedule('post wait');
-
- return waitForIdle().then(function() {
- assert.equal(2, count);
- assertFlowHistory(
- '0: waiting', 'maybe throw',
- '1: waiting', 'maybe throw',
- 'post wait');
- });
- });
-
- it('pollingLoopWaitsForAllScheduledTasksInCondition', function() {
- var count = 0;
- scheduleWait(function() {
- scheduleAction('increment count', function() { ++count; });
- return count >= 3;
- }, 100, 'counting to 3');
- schedule('post wait');
-
- return waitForIdle().then(function() {
- assert.equal(4, count);
- assertFlowHistory(
- '0: counting to 3', 'increment count',
- '1: counting to 3', 'increment count',
- '2: counting to 3', 'increment count',
- '3: counting to 3', 'increment count',
- 'post wait');
- });
- });
-
- it('waitsForeverOnAZeroTimeout', function() {
- var done = false;
- setTimeout(function() {
- done = true;
- }, 150);
- var waitResult = scheduleWait(function() {
- return done;
- }, 0);
-
- return timeout(75).then(function() {
- assert.ok(!done);
- return timeout(100);
- }).then(function() {
- assert.ok(done);
- return waitResult;
- });
- });
-
- it('waitsForeverIfTimeoutOmitted', function() {
- var done = false;
- setTimeout(function() {
- done = true;
- }, 150);
- var waitResult = scheduleWait(function() {
- return done;
- });
-
- return timeout(75).then(function() {
- assert.ok(!done);
- return timeout(100);
- }).then(function() {
- assert.ok(done);
- return waitResult;
- });
- });
-
- it('timesOut_nonZeroTimeout', function() {
- var count = 0;
- scheduleWait(function() {
- count += 1;
- var ms = count === 2 ? 65 : 5;
- return promise.delayed(ms).then(function() {
- return false;
- });
- }, 60, 'counting to 3');
- return waitForAbort().then(function(e) {
- switch (count) {
- case 1:
- assertFlowHistory('0: counting to 3');
- break;
- case 2:
- assertFlowHistory('0: counting to 3', '1: counting to 3');
- break;
- default:
- fail('unexpected polling count: ' + count);
- }
- assert.ok(e instanceof TimeoutError, 'Unexpected error: ' + e);
- assert.ok(
- /^counting to 3\nWait timed out after \d+ms$/.test(e.message));
- });
- });
-
- it('shouldFailIfConditionReturnsARejectedPromise', function() {
- scheduleWait(function() {
- return promise.rejected(new StubError);
- }, 100, 'returns rejected promise on first pass');
- return waitForAbort().then(assertIsStubError);
- });
-
- it('scheduleWithIntermittentWaits', function() {
- schedule('a');
- scheduleWait(function() { return true; }, 0, 'wait 1');
- schedule('b');
- scheduleWait(function() { return true; }, 0, 'wait 2');
- schedule('c');
- scheduleWait(function() { return true; }, 0, 'wait 3');
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', '0: wait 1', 'b', '0: wait 2', 'c', '0: wait 3');
- });
- });
-
- it('scheduleWithIntermittentAndNestedWaits', function() {
- schedule('a');
- scheduleWait(function() { return true; }, 0, 'wait 1').
- then(function() {
- schedule('d');
- scheduleWait(function() { return true; }, 0, 'wait 2');
- schedule('e');
- });
- schedule('b');
- scheduleWait(function() { return true; }, 0, 'wait 3');
- schedule('c');
- scheduleWait(function() { return true; }, 0, 'wait 4');
-
- return waitForIdle().then(function() {
- assertFlowHistory(
- 'a', '0: wait 1', 'd', '0: wait 2', 'e', 'b', '0: wait 3', 'c',
- '0: wait 4');
- });
- });
-
- it('requiresConditionToBeAPromiseOrFunction', function() {
- assert.throws(function() {
- flow.wait(1234, 0);
- });
- flow.wait(function() { return true;}, 0);
- flow.wait(promise.fulfilled(), 0);
- return waitForIdle();
- });
-
- it('promiseThatDoesNotResolveBeforeTimeout', function() {
- var d = promise.defer();
- flow.wait(d.promise, 5).then(fail, function(e) {
- assert.ok(e instanceof TimeoutError, 'Unexpected error: ' + e);
- assert.ok(
- /Timed out waiting for promise to resolve after \d+ms/
- .test(e.message),
- 'unexpected error message: ' + e.message);
- });
- return waitForIdle();
- });
-
- it('unboundedWaitOnPromiseResolution', function() {
- var messages = [];
- var d = promise.defer();
- var waitResult = flow.wait(d.promise).then(function(value) {
- messages.push('b');
- assert.equal(1234, value);
- });
- setTimeout(function() {
- messages.push('a');
- }, 5);
-
- timeout(10).then(function() {
- assert.deepEqual(['a'], messages);
- d.fulfill(1234);
- return waitResult;
- }).then(function() {
- assert.deepEqual(['a', 'b'], messages);
- });
-
- return waitForIdle();
- });
- });
-
- describe('testSubtasks', function() {
- it('(base case)', function() {
- schedule('a');
- scheduleAction('sub-tasks', function() {
- schedule('c');
- schedule('d');
- });
- schedule('b');
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'sub-tasks', 'c', 'd', 'b');
- });
- });
-
- it('nesting', function() {
- schedule('a');
- scheduleAction('sub-tasks', function() {
- schedule('b');
- scheduleAction('sub-sub-tasks', function() {
- schedule('c');
- schedule('d');
- });
- schedule('e');
- });
- schedule('f');
-
- return waitForIdle().then(function() {
- assertFlowHistory(
- 'a', 'sub-tasks', 'b', 'sub-sub-tasks', 'c', 'd', 'e', 'f');
- });
- });
-
- it('taskReturnsSubTaskResult_1', function() {
- schedule('a');
- scheduleAction('sub-tasks', function() {
- return schedule('c');
- });
- schedule('b');
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'sub-tasks', 'c', 'b');
- });
- });
-
- it('taskReturnsSubTaskResult_2', function() {
- let pair = callbackPair((value) => assert.equal(123, value));
- schedule('a');
- schedule('sub-tasks', promise.fulfilled(123)).then(pair.callback);
- schedule('b');
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'sub-tasks','b');
- pair.assertCallback();
- });
- });
-
- it('taskReturnsPromiseThatDependsOnSubtask_1', function() {
- scheduleAction('a', function() {
- return promise.delayed(10).then(function() {
- schedule('b');
- });
- });
- schedule('c');
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c');
- });
- });
-
- it('taskReturnsPromiseThatDependsOnSubtask_2', function() {
- scheduleAction('a', function() {
- return promise.fulfilled().then(function() {
- schedule('b');
- });
- });
- schedule('c');
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c');
- });
- });
-
- it('taskReturnsPromiseThatDependsOnSubtask_3', function() {
- scheduleAction('a', function() {
- return promise.delayed(10).then(function() {
- return schedule('b');
- });
- });
- schedule('c');
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c');
- });
- });
-
- it('taskReturnsPromiseThatDependsOnSubtask_4', function() {
- scheduleAction('a', function() {
- return promise.delayed(5).then(function() {
- return promise.delayed(5).then(function() {
- return schedule('b');
- });
- });
- });
- schedule('c');
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c');
- });
- });
-
- it('taskReturnsPromiseThatDependsOnSubtask_5', function() {
- scheduleAction('a', function() {
- return promise.delayed(5).then(function() {
- return promise.delayed(5).then(function() {
- return promise.delayed(5).then(function() {
- return promise.delayed(5).then(function() {
- return schedule('b');
- });
- });
- });
- });
- });
- schedule('c');
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c');
- });
- });
-
- it('taskReturnsPromiseThatDependsOnSubtask_6', function() {
- scheduleAction('a', function() {
- return promise.delayed(5).
- then(function() { return promise.delayed(5) }).
- then(function() { return promise.delayed(5) }).
- then(function() { return promise.delayed(5) }).
- then(function() { return schedule('b'); });
- });
- schedule('c');
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'b', 'c');
- });
- });
-
- it('subTaskFails_1', function() {
- schedule('a');
- scheduleAction('sub-tasks', function() {
- scheduleAction('sub-task that fails', throwStubError);
- });
- schedule('should never execute');
-
- return waitForAbort().
- then(assertIsStubError).
- then(function() {
- assertFlowHistory('a', 'sub-tasks', 'sub-task that fails');
- });
- });
-
- it('subTaskFails_2', function() {
- schedule('a');
- scheduleAction('sub-tasks', function() {
- return promise.rejected(new StubError);
- });
- schedule('should never execute');
-
- return waitForAbort().
- then(assertIsStubError).
- then(function() {
- assertFlowHistory('a', 'sub-tasks');
- });
- });
-
- it('subTaskFails_3', function() {
- var callbacks = callbackPair(null, assertIsStubError);
-
- schedule('a');
- scheduleAction('sub-tasks', function() {
- return promise.rejected(new StubError);
- }).then(callbacks.callback, callbacks.errback);
- schedule('b');
-
- return waitForIdle().
- then(function() {
- assertFlowHistory('a', 'sub-tasks', 'b');
- callbacks.assertErrback();
- });
- });
- });
-
- describe('testEventLoopWaitsOnPendingPromiseRejections', function() {
- it('oneRejection', function() {
- var d = new promise.Deferred;
- scheduleAction('one', function() {
- return d.promise;
- });
- scheduleAction('two', function() {});
-
- return timeout(50).then(function() {
- assertFlowHistory('one');
- d.reject(new StubError);
- return waitForAbort();
- }).
- then(assertIsStubError).
- then(function() {
- assertFlowHistory('one');
- });
- });
-
- it('multipleRejections', function() {
- var once = Error('once');
- var twice = Error('twice');
-
- scheduleAction('one', function() {
- promise.rejected(once);
- promise.rejected(twice);
- });
- var twoResult = scheduleAction('two', function() {});
-
- flow.removeAllListeners(
- promise.ControlFlow.EventType.UNCAUGHT_EXCEPTION);
- return new NativePromise(function(fulfill, reject) {
- setTimeout(function() {
- reject(Error('Should have reported the two errors by now'));
- }, 50);
- flow.on(
- promise.ControlFlow.EventType.UNCAUGHT_EXCEPTION,
- fulfill);
- }).then(function(e) {
- assert.ok(e instanceof promise.MultipleUnhandledRejectionError,
- 'Not a MultipleUnhandledRejectionError');
- let errors = Array.from(e.errors);
- assert.deepEqual([once, twice], errors);
- assertFlowHistory('one');
- });
- });
- });
-
- describe('testCancelsPromiseReturnedByCallbackIfFrameFails', function() {
- it('promiseCallback', function() {
- var chainPair = callbackPair(null, assertIsStubError);
- var deferredPair = callbackPair(null, function(e) {
- assert.equal('CancellationError: StubError', e.toString(),
- 'callback result should be cancelled');
- });
-
- var d = new promise.Deferred();
- d.promise.then(deferredPair.callback, deferredPair.errback);
-
- promise.fulfilled().
- then(function() {
- scheduleAction('boom', throwStubError);
- schedule('this should not run');
- return d.promise;
- }).
- then(chainPair.callback, chainPair.errback);
-
- return waitForIdle().then(function() {
- assertFlowHistory('boom');
- chainPair.assertErrback('chain errback not invoked');
- deferredPair.assertErrback('deferred errback not invoked');
- });
- });
-
- it('taskCallback', function() {
- var chainPair = callbackPair(null, assertIsStubError);
- var deferredPair = callbackPair(null, function(e) {
- assert.equal('CancellationError: StubError', e.toString(),
- 'callback result should be cancelled');
- });
-
- var d = new promise.Deferred();
- d.promise.then(deferredPair.callback, deferredPair.errback);
-
- schedule('a').
- then(function() {
- scheduleAction('boom', throwStubError);
- schedule('this should not run');
- return d.promise;
- }).
- then(chainPair.callback, chainPair.errback);
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'boom');
- chainPair.assertErrback('chain errback not invoked');
- deferredPair.assertErrback('deferred errback not invoked');
- });
- });
- });
-
- it('testMaintainsOrderInCallbacksWhenATaskReturnsAPromise', function() {
- schedule('__start__', promise.fulfilled()).
- then(function() {
- messages.push('a');
- schedulePush('b');
- messages.push('c');
- }).
- then(function() {
- messages.push('d');
- });
- schedulePush('e');
-
- return waitForIdle().then(function() {
- assertFlowHistory('__start__', 'b', 'e');
- assertMessages('a', 'c', 'b', 'd', 'e');
- });
- });
-
- it('testOwningFlowIsActivatedForExecutingTasks', function() {
- var defaultFlow = promise.controlFlow();
- var order = [];
-
- promise.createFlow(function(flow) {
- assertFlowIs(flow);
- order.push(0);
-
- defaultFlow.execute(function() {
- assertFlowIs(defaultFlow);
- order.push(1);
- });
- });
-
- return waitForIdle().then(function() {
- assertFlowIs(defaultFlow);
- assert.deepEqual([0, 1], order);
- });
- });
-
- it('testCreateFlowReturnsPromisePairedWithCreatedFlow', function() {
- return new NativePromise(function(fulfill, reject) {
- var newFlow;
- promise.createFlow(function(flow) {
- newFlow = flow;
- assertFlowIs(newFlow);
- }).then(function() {
- assertFlowIs(newFlow);
- waitForIdle(newFlow).then(fulfill, reject);
- });
- });
- });
-
- it('testDeferredFactoriesCreateForActiveFlow_defaultFlow', function() {
- var e = Error();
- var defaultFlow = promise.controlFlow();
- promise.fulfilled().then(function() {
- assertFlowIs(defaultFlow);
- });
- promise.rejected(e).then(null, function(err) {
- assert.equal(e, err);
- assertFlowIs(defaultFlow);
- });
- promise.defer().promise.then(function() {
- assertFlowIs(defaultFlow);
- });
-
- return waitForIdle();
- });
-
- it('testDeferredFactoriesCreateForActiveFlow_newFlow', function() {
- var e = Error();
- var newFlow = new promise.ControlFlow;
- newFlow.execute(function() {
- promise.fulfilled().then(function() {
- assertFlowIs(newFlow);
- });
-
- promise.rejected(e).then(null, function(err) {
- assert.equal(e, err);
- assertFlowIs(newFlow);
- });
-
- let d = promise.defer();
- d.promise.then(function() {
- assertFlowIs(newFlow);
- });
- d.fulfill();
- }).then(function() {
- assertFlowIs(newFlow);
- });
-
- return waitForIdle(newFlow);
- });
-
- it('testFlowsSynchronizeWithThemselvesNotEachOther', function() {
- var defaultFlow = promise.controlFlow();
- schedulePush('a', 'a');
- promise.controlFlow().timeout(500);
- schedulePush('b', 'b');
-
- promise.createFlow(function(flow2) {
- assertFlowIs(flow2);
- schedulePush('c', 'c');
- schedulePush('d', 'd');
- });
-
- return waitForIdle().then(function() {
- assertMessages('a', 'c', 'd', 'b');
- });
- });
-
- it('testUnhandledErrorsAreReportedToTheOwningFlow', function() {
- var error1 = Error('e1');
- var error2 = Error('e2');
-
- var defaultFlow = promise.controlFlow();
- defaultFlow.removeAllListeners('uncaughtException');
-
- var flow1Error = defer();
- flow1Error.promise.then(function(value) {
- assert.equal(error2, value);
- });
-
- var flow2Error = defer();
- flow2Error.promise.then(function(value) {
- assert.equal(error1, value);
- });
-
- promise.createFlow(function(flow) {
- flow.once('uncaughtException', flow2Error.resolve);
- promise.rejected(error1);
-
- defaultFlow.once('uncaughtException', flow1Error.resolve);
- defaultFlow.execute(function() {
- promise.rejected(error2);
- });
- });
-
- return NativePromise.all([flow1Error.promise, flow2Error.promise]);
- });
-
- it('testCanSynchronizeFlowsByReturningPromiseFromOneToAnother', function() {
- var flow1 = new promise.ControlFlow;
- var flow1Done = defer();
- flow1.once('idle', flow1Done.resolve);
- flow1.once('uncaughtException', flow1Done.reject);
-
- var flow2 = new promise.ControlFlow;
- var flow2Done = defer();
- flow2.once('idle', flow2Done.resolve);
- flow2.once('uncaughtException', flow2Done.reject);
-
- flow1.execute(function() {
- schedulePush('a', 'a');
- return promise.delayed(25);
- }, 'start flow 1');
-
- flow2.execute(function() {
- schedulePush('b', 'b');
- schedulePush('c', 'c');
- flow2.execute(function() {
- return flow1.execute(function() {
- schedulePush('d', 'd');
- }, 'flow 1 task');
- }, 'inject flow1 result into flow2');
- schedulePush('e', 'e');
- }, 'start flow 2');
-
- return NativePromise.all([flow1Done.promise, flow2Done.promise]).
- then(function() {
- assertMessages('a', 'b', 'c', 'd', 'e');
- });
- });
-
- it('testFramesWaitToCompleteForPendingRejections', function() {
- return new NativePromise(function(fulfill, reject) {
-
- promise.controlFlow().execute(function() {
- promise.rejected(new StubError);
- }).then(fulfill, reject);
-
- }).
- then(() => fail('expected to fail'), assertIsStubError);
- });
-
- it('testSynchronizeErrorsPropagateToOuterFlow', function() {
- var outerFlow = new promise.ControlFlow;
- var innerFlow = new promise.ControlFlow;
-
- var block = defer();
- innerFlow.execute(function() {
- return block.promise;
- }, 'block inner flow');
-
- outerFlow.execute(function() {
- block.resolve();
- return innerFlow.execute(function() {
- promise.rejected(new StubError);
- }, 'trigger unhandled rejection error');
- }, 'run test');
-
- return NativePromise.all([
- waitForIdle(innerFlow),
- waitForAbort(outerFlow).then(assertIsStubError)
- ]);
- });
-
- it('testFailsIfErrbackThrows', function() {
- promise.rejected('').then(null, throwStubError);
- return waitForAbort().then(assertIsStubError);
- });
-
- it('testFailsIfCallbackReturnsRejectedPromise', function() {
- promise.fulfilled().then(function() {
- return promise.rejected(new StubError);
- });
- return waitForAbort().then(assertIsStubError);
- });
-
- it('testAbortsFrameIfTaskFails', function() {
- promise.fulfilled().then(function() {
- promise.controlFlow().execute(throwStubError);
- });
- return waitForAbort().then(assertIsStubError);
- });
-
- it('testAbortsFramePromisedChainedFromTaskIsNotHandled', function() {
- promise.fulfilled().then(function() {
- promise.controlFlow().execute(function() {}).
- then(throwStubError);
- });
- return waitForAbort().then(assertIsStubError);
- });
-
- it('testTrapsChainedUnhandledRejectionsWithinAFrame', function() {
- var pair = callbackPair(null, assertIsStubError);
- promise.fulfilled().then(function() {
- promise.controlFlow().execute(function() {}).
- then(throwStubError);
- }).then(pair.callback, pair.errback);
-
- return waitForIdle().then(pair.assertErrback);
- });
-
- it('testCancelsRemainingTasksIfFrameThrowsDuringScheduling', function() {
- var task1, task2;
- var pair = callbackPair(null, assertIsStubError);
- var flow = promise.controlFlow();
- flow.execute(function() {
- task1 = flow.execute(function() {});
- task2 = flow.execute(function() {});
- throw new StubError;
- }).then(pair.callback, pair.errback);
-
- return waitForIdle().
- then(pair.assertErrback).
- then(function() {
- pair = callbackPair();
- return task1.then(pair.callback, pair.errback);
- }).
- then(function() {
- pair.assertErrback();
- pair = callbackPair();
- return task2.then(pair.callback, pair.errback);
- }).
- then(function() {
- pair.assertErrback();
- });
- });
-
- it('testCancelsRemainingTasksInFrameIfATaskFails', function() {
- var task;
- var pair = callbackPair(null, assertIsStubError);
- var flow = promise.controlFlow();
- flow.execute(function() {
- flow.execute(throwStubError);
- task = flow.execute(function() {});
- }).then(pair.callback, pair.errback);
-
- return waitForIdle().then(pair.assertErrback).then(function() {
- pair = callbackPair();
- task.then(pair.callback, pair.errback);
- }).then(function() {
- pair.assertErrback();
- });
- });
-
- it('testDoesNotModifyRejectionErrorIfPromiseNotInsideAFlow', function() {
- var error = Error('original message');
- var originalStack = error.stack;
- var originalStr = error.toString();
-
- var pair = callbackPair(null, function(e) {
- assert.equal(error, e);
- assert.equal('original message', e.message);
- assert.equal(originalStack, e.stack);
- assert.equal(originalStr, e.toString());
- });
-
- promise.rejected(error).then(pair.callback, pair.errback);
- return waitForIdle().then(pair.assertErrback);
- });
-
- /** See https://github.com/SeleniumHQ/selenium/issues/444 */
- it('testMaintainsOrderWithPromiseChainsCreatedWithinAForeach_1', function() {
- var messages = [];
- flow.execute(function() {
- return promise.fulfilled(['a', 'b', 'c', 'd']);
- }, 'start').then(function(steps) {
- steps.forEach(function(step) {
- promise.fulfilled(step)
- .then(function() {
- messages.push(step + '.1');
- }).then(function() {
- messages.push(step + '.2');
- });
- })
- });
- return waitForIdle().then(function() {
- assert.deepEqual(
- ['a.1', 'a.2', 'b.1', 'b.2', 'c.1', 'c.2', 'd.1', 'd.2'],
- messages);
- });
- });
-
- /** See https://github.com/SeleniumHQ/selenium/issues/444 */
- it('testMaintainsOrderWithPromiseChainsCreatedWithinAForeach_2', function() {
- var messages = [];
- flow.execute(function() {
- return promise.fulfilled(['a', 'b', 'c', 'd']);
- }, 'start').then(function(steps) {
- steps.forEach(function(step) {
- promise.fulfilled(step)
- .then(function() {
- messages.push(step + '.1');
- }).then(function() {
- flow.execute(function() {}, step + '.2').then(function() {
- messages.push(step + '.2');
- });
- });
- })
- });
- return waitForIdle().then(function() {
- assert.deepEqual(
- ['a.1', 'a.2', 'b.1', 'b.2', 'c.1', 'c.2', 'd.1', 'd.2'],
- messages);
- });
- });
-
- /** See https://github.com/SeleniumHQ/selenium/issues/444 */
- it('testMaintainsOrderWithPromiseChainsCreatedWithinAForeach_3', function() {
- var messages = [];
- flow.execute(function() {
- return promise.fulfilled(['a', 'b', 'c', 'd']);
- }, 'start').then(function(steps) {
- steps.forEach(function(step) {
- promise.fulfilled(step)
- .then(function(){})
- .then(function() {
- messages.push(step + '.1');
- return flow.execute(function() {}, step + '.1');
- }).then(function() {
- flow.execute(function() {}, step + '.2').then(function(text) {
- messages.push(step + '.2');
- });
- });
- })
- });
- return waitForIdle().then(function() {
- assert.deepEqual(
- ['a.1', 'a.2', 'b.1', 'b.2', 'c.1', 'c.2', 'd.1', 'd.2'],
- messages);
- });
- });
-
- /** See https://github.com/SeleniumHQ/selenium/issues/363 */
- it('testTasksScheduledInASeparateTurnOfTheEventLoopGetASeparateTaskQueue_2', function() {
- scheduleAction('a', () => promise.delayed(10));
- schedule('b');
- setTimeout(() => schedule('c'), 0);
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'c', 'b');
- });
- });
-
- /** See https://github.com/SeleniumHQ/selenium/issues/363 */
- it('testTasksScheduledInASeparateTurnOfTheEventLoopGetASeparateTaskQueue_2', function() {
- scheduleAction('a', () => promise.delayed(10));
- schedule('b');
- schedule('c');
- setTimeout(function() {
- schedule('d');
- scheduleAction('e', () => promise.delayed(10));
- schedule('f');
- }, 0);
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'd', 'e', 'b', 'c', 'f');
- });
- });
-
- /** See https://github.com/SeleniumHQ/selenium/issues/363 */
- it('testCanSynchronizeTasksFromAdjacentTaskQueues', function() {
- var task1 = scheduleAction('a', () => promise.delayed(10));
- schedule('b');
- setTimeout(function() {
- scheduleAction('c', () => task1);
- schedule('d');
- }, 0);
-
- return waitForIdle().then(function() {
- assertFlowHistory('a', 'c', 'd', 'b');
- });
- });
-
- describe('testCancellingAScheduledTask', function() {
- it('1', function() {
- var called = false;
- var task1 = scheduleAction('a', () => called = true);
- task1.cancel('no soup for you');
-
- return waitForIdle().then(function() {
- assert.ok(!called);
- assertFlowHistory();
- return task1.catch(function(e) {
- assert.ok(e instanceof promise.CancellationError);
- assert.equal('no soup for you', e.message);
- });
- });
- });
-
- it('2', function() {
- schedule('a');
- var called = false;
- var task2 = scheduleAction('b', () => called = true);
- schedule('c');
-
- task2.cancel('no soup for you');
-
- return waitForIdle().then(function() {
- assert.ok(!called);
- assertFlowHistory('a', 'c');
- return task2.catch(function(e) {
- assert.ok(e instanceof promise.CancellationError);
- assert.equal('no soup for you', e.message);
- });
- });
- });
-
- it('3', function() {
- var called = false;
- var task = scheduleAction('a', () => called = true);
- task.cancel(new StubError);
-
- return waitForIdle().then(function() {
- assert.ok(!called);
- assertFlowHistory();
- return task.catch(function(e) {
- assert.ok(e instanceof promise.CancellationError);
- });
- });
- });
-
- it('4', function() {
- var seen = [];
- var task = scheduleAction('a', () => seen.push(1))
- .then(() => seen.push(2))
- .then(() => seen.push(3))
- .then(() => seen.push(4))
- .then(() => seen.push(5));
- task.cancel(new StubError);
-
- return waitForIdle().then(function() {
- assert.deepEqual([], seen);
- assertFlowHistory();
- return task.catch(function(e) {
- assert.ok(e instanceof promise.CancellationError);
- });
- });
- });
-
- it('fromWithinAnExecutingTask', function() {
- var called = false;
- var task;
- scheduleAction('a', function() {
- task.cancel('no soup for you');
- });
- task = scheduleAction('b', () => called = true);
- schedule('c');
-
- return waitForIdle().then(function() {
- assert.ok(!called);
- assertFlowHistory('a', 'c');
- return task.catch(function(e) {
- assert.ok(e instanceof promise.CancellationError);
- assert.equal('no soup for you', e.message);
- });
- });
- });
- });
-
- it('testCancellingAPendingTask', function() {
- var order = [];
- var unresolved = promise.defer();
-
- var innerTask;
- var outerTask = scheduleAction('a', function() {
- order.push(1);
-
- // Schedule a task that will never finish.
- innerTask = scheduleAction('a.1', function() {
- return unresolved.promise;
- });
-
- // Since the outerTask is cancelled below, innerTask should be cancelled
- // with a DiscardedTaskError, which means its callbacks are silently
- // dropped - so this should never execute.
- innerTask.catch(function(e) {
- order.push(2);
- });
- });
- schedule('b');
-
- outerTask.catch(function(e) {
- order.push(3);
- assert.ok(e instanceof promise.CancellationError);
- assert.equal('no soup for you', e.message);
- });
-
- unresolved.promise.catch(function(e) {
- order.push(4);
- assert.ok(e instanceof promise.CancellationError);
- });
-
- return timeout(10).then(function() {
- assert.deepEqual([1], order);
-
- outerTask.cancel('no soup for you');
- return waitForIdle();
- }).then(function() {
- assertFlowHistory('a', 'a.1', 'b');
- assert.deepEqual([1, 3, 4], order);
- });
- });
-
- it('testCancellingAPendingPromiseCallback', function() {
- var called = false;
-
- var root = promise.fulfilled();
- root.then(function() {
- cb2.cancel('no soup for you');
- });
-
- var cb2 = root.then(fail, fail); // These callbacks should never be called.
- cb2.then(fail, function(e) {
- called = true;
- assert.ok(e instanceof promise.CancellationError);
- assert.equal('no soup for you', e.message);
- });
-
- return waitForIdle().then(function() {
- assert.ok(called);
- });
- });
-
- describe('testResetFlow', function() {
- it('1', function() {
- var called = 0;
- var task = flow.execute(() => called++);
- task.finally(() => called++);
-
- return new Promise(function(fulfill) {
- flow.once('reset', fulfill);
- flow.reset();
-
- }).then(function() {
- assert.equal(0, called);
- return task;
-
- }).then(fail, function(e) {
- assert.ok(e instanceof promise.CancellationError);
- assert.equal('ControlFlow was reset', e.message);
- });
- });
-
- it('2', function() {
- var called = 0;
- var task1 = flow.execute(() => called++);
- task1.finally(() => called++);
-
- var task2 = flow.execute(() => called++);
- task2.finally(() => called++);
-
- var task3 = flow.execute(() => called++);
- task3.finally(() => called++);
-
- return new Promise(function(fulfill) {
- flow.once('reset', fulfill);
- flow.reset();
-
- }).then(function() {
- assert.equal(0, called);
- });
- });
- });
-
- describe('testPromiseFulfilledInsideTask', function() {
- it('1', function() {
- var order = [];
-
- flow.execute(function() {
- var d = promise.defer();
-
- d.promise.then(() => order.push('a'));
- d.promise.then(() => order.push('b'));
- d.promise.then(() => order.push('c'));
- d.fulfill();
-
- flow.execute(() => order.push('d'));
-
- }).then(() => order.push('fin'));
-
- return waitForIdle().then(function() {
- assert.deepEqual(['a', 'b', 'c', 'd', 'fin'], order);
- });
- });
-
- it('2', function() {
- var order = [];
-
- flow.execute(function() {
- flow.execute(() => order.push('a'));
- flow.execute(() => order.push('b'));
-
- var d = promise.defer();
- d.promise.then(() => order.push('c'));
- d.promise.then(() => order.push('d'));
- d.fulfill();
-
- flow.execute(() => order.push('e'));
-
- }).then(() => order.push('fin'));
-
- return waitForIdle().then(function() {
- assert.deepEqual(['a', 'b', 'c', 'd', 'e', 'fin'], order);
- });
- });
-
- it('3', function() {
- var order = [];
- var d = promise.defer();
- d.promise.then(() => order.push('c'));
- d.promise.then(() => order.push('d'));
-
- flow.execute(function() {
- flow.execute(() => order.push('a'));
- flow.execute(() => order.push('b'));
-
- d.promise.then(() => order.push('e'));
- d.fulfill();
-
- flow.execute(() => order.push('f'));
-
- }).then(() => order.push('fin'));
-
- return waitForIdle().then(function() {
- assert.deepEqual(['c', 'd', 'a', 'b', 'e', 'f', 'fin'], order);
- });
- });
-
- it('4', function() {
- var order = [];
- var d = promise.defer();
- d.promise.then(() => order.push('a'));
- d.promise.then(() => order.push('b'));
-
- flow.execute(function() {
- flow.execute(function() {
- order.push('c');
- flow.execute(() => order.push('d'));
- d.promise.then(() => order.push('e'));
- });
- flow.execute(() => order.push('f'));
-
- d.promise.then(() => order.push('g'));
- d.fulfill();
-
- flow.execute(() => order.push('h'));
-
- }).then(() => order.push('fin'));
-
- return waitForIdle().then(function() {
- assert.deepEqual(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'fin'], order);
- });
- });
- });
-
- describe('testSettledPromiseCallbacksInsideATask', function() {
- it('1', function() {
- var order = [];
- var p = promise.fulfilled();
-
- flow.execute(function() {
- flow.execute(() => order.push('a'));
- p.then(() => order.push('b'));
- flow.execute(() => order.push('c'));
- p.then(() => order.push('d'));
- }).then(() => order.push('fin'));
-
- return waitForIdle().then(function() {
- assert.deepEqual(['a', 'b', 'c', 'd', 'fin'], order);
- });
- });
-
- it('2', function() {
- var order = [];
-
- flow.execute(function() {
- flow.execute(() => order.push('a'))
- .then( () => order.push('c'));
- flow.execute(() => order.push('b'));
- }).then(() => order.push('fin'));
-
- return waitForIdle().then(function() {
- assert.deepEqual(['a', 'c', 'b', 'fin'], order);
- });
- });
- });
-
- it('testTasksDoNotWaitForNewlyCreatedPromises', function() {
- var order = [];
-
- flow.execute(function() {
- var d = promise.defer();
-
- // This is a normal promise, not a task, so the task for this callback is
- // considered volatile. Volatile tasks should be skipped when they reach
- // the front of the task queue.
- d.promise.then(() => order.push('a'));
-
- flow.execute(() => order.push('b'));
- flow.execute(function() {
- flow.execute(() => order.push('c'));
- d.promise.then(() => order.push('d'));
- d.fulfill();
- });
- flow.execute(() => order.push('e'));
-
- }).then(() => order.push('fin'));
-
- return waitForIdle().then(function() {
- assert.deepEqual(['b', 'a', 'c', 'd', 'e', 'fin'], order);
- });
- });
-
- it('testCallbackDependenciesDoNotDeadlock', function() {
- var order = [];
- var root = promise.defer();
- var dep = promise.fulfilled().then(function() {
- order.push('a');
- return root.promise.then(function() {
- order.push('b');
- });
- });
- // This callback depends on |dep|, which depends on another callback
- // attached to |root| via a chain.
- root.promise.then(function() {
- order.push('c');
- return dep.then(() => order.push('d'));
- }).then(() => order.push('fin'));
-
- setTimeout(() => root.fulfill(), 20);
-
- return waitForIdle().then(function() {
- assert.deepEqual(['a', 'b', 'c', 'd', 'fin'], order);
- });
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/lib/promise_generator_test.js b/node_modules/selenium-webdriver/test/lib/promise_generator_test.js
deleted file mode 100644
index b3388da78..000000000
--- a/node_modules/selenium-webdriver/test/lib/promise_generator_test.js
+++ /dev/null
@@ -1,310 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const assert = require('assert');
-const promise = require('../../lib/promise');
-const {enablePromiseManager, promiseManagerSuite} = require('../../lib/test/promise');
-
-describe('promise.consume()', function() {
- promiseManagerSuite(() => {
- it('requires inputs to be generator functions', function() {
- assert.throws(function() {
- promise.consume(function() {});
- });
- });
-
- it('handles a basic generator with no yielded promises', function() {
- var values = [];
- return promise.consume(function* () {
- var i = 0;
- while (i < 4) {
- i = yield i + 1;
- values.push(i);
- }
- }).then(function() {
- assert.deepEqual([1, 2, 3, 4], values);
- });
- });
-
- it('handles a promise yielding generator', function() {
- var values = [];
- return promise.consume(function* () {
- var i = 0;
- while (i < 4) {
- // Test that things are actually async here.
- setTimeout(function() {
- values.push(i * 2);
- }, 10);
-
- yield promise.delayed(10).then(function() {
- values.push(i++);
- });
- }
- }).then(function() {
- assert.deepEqual([0, 0, 2, 1, 4, 2, 6, 3], values);
- });
- });
-
- it('assignments to yielded promises get fulfilled value', function() {
- return promise.consume(function* () {
- let x = yield Promise.resolve(2);
- assert.equal(2, x);
- });
- });
-
- it('uses final return value as fulfillment value', function() {
- return promise.consume(function* () {
- yield 1;
- yield 2;
- return 3;
- }).then(function(value) {
- assert.equal(3, value);
- });
- });
-
- it('throws rejected promise errors within the generator', function() {
- var values = [];
- return promise.consume(function* () {
- values.push('a');
- var e = Error('stub error');
- try {
- yield Promise.reject(e);
- values.push('b');
- } catch (ex) {
- assert.equal(e, ex);
- values.push('c');
- }
- values.push('d');
- }).then(function() {
- assert.deepEqual(['a', 'c', 'd'], values);
- });
- });
-
- it('aborts the generator if there is an unhandled rejection', function() {
- var values = [];
- var e = Error('stub error');
- return promise.consume(function* () {
- values.push(1);
- yield promise.rejected(e);
- values.push(2);
- }).catch(function() {
- assert.deepEqual([1], values);
- });
- });
-
- it('yield waits for promises', function() {
- let values = [];
- let blocker = promise.delayed(100).then(() => {
- assert.deepEqual([1], values);
- return 2;
- });
-
- return promise.consume(function* () {
- values.push(1);
- values.push(yield blocker, 3);
- }).then(function() {
- assert.deepEqual([1, 2, 3], values);
- });
- });
-
- it('accepts custom scopes', function() {
- return promise.consume(function* () {
- return this.name;
- }, {name: 'Bob'}).then(function(value) {
- assert.equal('Bob', value);
- });
- });
-
- it('accepts initial generator arguments', function() {
- return promise.consume(function* (a, b) {
- assert.equal('red', a);
- assert.equal('apples', b);
- }, null, 'red', 'apples');
- });
- });
-
- enablePromiseManager(() => {
- it('is possible to cancel promise generators', function() {
- var values = [];
- var p = promise.consume(function* () {
- var i = 0;
- while (i < 3) {
- yield promise.delayed(100).then(function() {
- values.push(i++);
- });
- }
- });
- return promise.delayed(75).then(function() {
- p.cancel();
- return p.catch(function() {
- return promise.delayed(300);
- });
- }).then(function() {
- assert.deepEqual([0], values);
- });
- });
-
- it('executes generator within the control flow', function() {
- var promises = [
- promise.defer(),
- promise.defer()
- ];
- var values = [];
-
- setTimeout(function() {
- assert.deepEqual([], values);
- promises[0].fulfill(1);
- }, 100);
-
- setTimeout(function() {
- assert.deepEqual([1], values);
- promises[1].fulfill(2);
- }, 200);
-
- return promise.controlFlow().execute(function* () {
- values.push(yield promises[0].promise);
- values.push(yield promises[1].promise);
- values.push('fin');
- }).then(function() {
- assert.deepEqual([1, 2, 'fin'], values);
- });
- });
-
- it('handles tasks scheduled in generator', function() {
- var flow = promise.controlFlow();
- return flow.execute(function* () {
- var x = yield flow.execute(function() {
- return promise.delayed(10).then(function() {
- return 1;
- });
- });
-
- var y = yield flow.execute(function() {
- return 2;
- });
-
- return x + y;
- }).then(function(value) {
- assert.equal(3, value);
- });
- });
-
- it('blocks the control flow while processing generator', function() {
- var values = [];
- return promise.controlFlow().wait(function* () {
- yield values.push(1);
- values.push(yield promise.delayed(10).then(function() {
- return 2;
- }));
- yield values.push(3);
- return values.length === 6;
- }, 250).then(function() {
- assert.deepEqual([1, 2, 3, 1, 2, 3], values);
- });
- });
-
- it('ControlFlow.wait() will timeout on long generator', function() {
- var values = [];
- return promise.controlFlow().wait(function* () {
- var i = 0;
- while (i < 3) {
- yield promise.delayed(100).then(function() {
- values.push(i++);
- });
- }
- }, 75).catch(function() {
- assert.deepEqual(
- [0, 1, 2], values, 'Should complete one loop of wait condition');
- });
- });
-
- describe('generators in promise callbacks', function() {
- it('works with no initial value', function() {
- var promises = [
- promise.defer(),
- promise.defer()
- ];
- var values = [];
-
- setTimeout(function() {
- promises[0].fulfill(1);
- }, 50);
-
- setTimeout(function() {
- promises[1].fulfill(2);
- }, 100);
-
- return promise.fulfilled().then(function*() {
- values.push(yield promises[0].promise);
- values.push(yield promises[1].promise);
- values.push('fin');
- }).then(function() {
- assert.deepEqual([1, 2, 'fin'], values);
- });
- });
-
- it('starts the generator with promised value', function() {
- var promises = [
- promise.defer(),
- promise.defer()
- ];
- var values = [];
-
- setTimeout(function() {
- promises[0].fulfill(1);
- }, 50);
-
- setTimeout(function() {
- promises[1].fulfill(2);
- }, 100);
-
- return promise.fulfilled(3).then(function*(value) {
- var p1 = yield promises[0].promise;
- var p2 = yield promises[1].promise;
- values.push(value + p1);
- values.push(value + p2);
- values.push('fin');
- }).then(function() {
- assert.deepEqual([4, 5, 'fin'], values);
- });
- });
-
- it('throws yielded rejections within the generator callback', function() {
- var d = promise.defer();
- var e = Error('stub');
-
- setTimeout(function() {
- d.reject(e);
- }, 50);
-
- return promise.fulfilled().then(function*() {
- var threw = false;
- try {
- yield d.promise;
- } catch (ex) {
- threw = true;
- assert.equal(e, ex);
- }
- assert.ok(threw);
- });
- });
- });
- });
-});
-
diff --git a/node_modules/selenium-webdriver/test/lib/promise_test.js b/node_modules/selenium-webdriver/test/lib/promise_test.js
deleted file mode 100644
index 8da1cd89e..000000000
--- a/node_modules/selenium-webdriver/test/lib/promise_test.js
+++ /dev/null
@@ -1,1109 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const assert = require('assert');
-
-const testutil = require('./testutil');
-const promise = require('../../lib/promise');
-const {enablePromiseManager, promiseManagerSuite} = require('../../lib/test/promise');
-
-// Aliases for readability.
-const NativePromise = Promise;
-const StubError = testutil.StubError;
-const assertIsStubError = testutil.assertIsStubError;
-const callbackHelper = testutil.callbackHelper;
-const callbackPair = testutil.callbackPair;
-const throwStubError = testutil.throwStubError;
-const fail = () => assert.fail();
-
-// Refer to promise_aplus_test for promise compliance with standard behavior.
-describe('promise', function() {
- var app, uncaughtExceptions;
-
- beforeEach(function setUp() {
- if (promise.USE_PROMISE_MANAGER) {
- promise.LONG_STACK_TRACES = false;
- uncaughtExceptions = [];
-
- app = promise.controlFlow();
- app.on(promise.ControlFlow.EventType.UNCAUGHT_EXCEPTION,
- (e) => uncaughtExceptions.push(e));
- }
- });
-
- afterEach(function tearDown() {
- if (promise.USE_PROMISE_MANAGER) {
- app.reset();
- promise.setDefaultFlow(new promise.ControlFlow);
- assert.deepEqual([], uncaughtExceptions,
- 'Did not expect any uncaught exceptions');
- promise.LONG_STACK_TRACES = false;
- }
- });
-
- const assertIsPromise = (p) => assert.ok(promise.isPromise(p));
- const assertNotPromise = (v) => assert.ok(!promise.isPromise(v));
-
- function defer() {
- let d = {};
- let promise = new Promise((resolve, reject) => {
- Object.assign(d, {resolve, reject});
- });
- d.promise = promise;
- return d;
- }
-
- function createRejectedPromise(reason) {
- var p = Promise.reject(reason);
- p.catch(function() {}); // Silence unhandled rejection handlers.
- return p;
- }
-
- enablePromiseManager(() => {
- it('testCanDetectPromiseLikeObjects', function() {
- assertIsPromise(new promise.Promise(function(fulfill) {
- fulfill();
- }));
- assertIsPromise(new promise.Deferred().promise);
- assertIsPromise(Promise.resolve(123));
- assertIsPromise({then:function() {}});
-
- assertNotPromise(new promise.Deferred());
- assertNotPromise(undefined);
- assertNotPromise(null);
- assertNotPromise('');
- assertNotPromise(true);
- assertNotPromise(false);
- assertNotPromise(1);
- assertNotPromise({});
- assertNotPromise({then:1});
- assertNotPromise({then:true});
- assertNotPromise({then:''});
- });
-
- describe('then', function() {
- it('returnsOwnPromiseIfNoCallbacksWereGiven', function() {
- var deferred = new promise.Deferred();
- assert.equal(deferred.promise, deferred.promise.then());
- assert.equal(deferred.promise, deferred.promise.catch());
- assert.equal(deferred.promise, promise.when(deferred.promise));
- });
-
- it('stillConsideredUnHandledIfNoCallbacksWereGivenOnCallsToThen', function() {
- promise.rejected(new StubError).then();
- var handler = callbackHelper(assertIsStubError);
-
- // so tearDown() doesn't throw
- app.removeAllListeners();
- app.on(promise.ControlFlow.EventType.UNCAUGHT_EXCEPTION, handler);
- return NativePromise.resolve()
- // Macro yield so the uncaught exception has a chance to trigger.
- .then(() => new NativePromise(resolve => setTimeout(resolve, 0)))
- .then(() => handler.assertCalled());
- });
- });
-
- describe('finally', function() {
- it('nonFailingCallbackDoesNotSuppressOriginalError', function() {
- var done = callbackHelper(assertIsStubError);
- return promise.rejected(new StubError).
- finally(function() {}).
- catch(done).
- finally(done.assertCalled);
- });
-
- it('failingCallbackSuppressesOriginalError', function() {
- var done = callbackHelper(assertIsStubError);
- return promise.rejected(new Error('original')).
- finally(throwStubError).
- catch(done).
- finally(done.assertCalled);
- });
-
- it('callbackThrowsAfterFulfilledPromise', function() {
- var done = callbackHelper(assertIsStubError);
- return promise.fulfilled().
- finally(throwStubError).
- catch(done).
- finally(done.assertCalled);
- });
-
- it('callbackReturnsRejectedPromise', function() {
- var done = callbackHelper(assertIsStubError);
- return promise.fulfilled().
- finally(function() {
- return promise.rejected(new StubError);
- }).
- catch(done).
- finally(done.assertCalled);
- });
- });
-
- describe('cancel', function() {
- it('passesTheCancellationReasonToReject', function() {
- var d = new promise.Deferred();
- var res = d.promise.then(assert.fail, function(e) {
- assert.ok(e instanceof promise.CancellationError);
- assert.equal('because i said so', e.message);
- });
- d.promise.cancel('because i said so');
- return res;
- });
-
- describe('can cancel original promise from its child;', function() {
- it('child created by then()', function() {
- var d = new promise.Deferred();
- var p = d.promise.then(assert.fail, function(e) {
- assert.ok(e instanceof promise.CancellationError);
- assert.equal('because i said so', e.message);
- return 123;
- });
-
- p.cancel('because i said so');
- return p.then(v => assert.equal(123, v));
- });
-
- it('child linked by resolving with parent', function() {
- let parent = promise.defer();
- let child = new promise.Promise(resolve => resolve(parent.promise));
- child.cancel('all done');
-
- return parent.promise.then(
- () => assert.fail('expected a cancellation'),
- e => {
- assert.ok(e instanceof promise.CancellationError);
- assert.equal('all done', e.message);
- });
- });
-
- it('grand child through thenable chain', function() {
- let p = new promise.Promise(function() {/* never resolve*/});
-
- let noop = function() {};
- let gc = p.then(noop).then(noop).then(noop);
- gc.cancel('stop!');
-
- return p.then(
- () => assert.fail('expected to be cancelled'),
- (e) => {
- assert.ok(e instanceof promise.CancellationError);
- assert.equal('stop!', e.message);
- });
- });
-
- it('grand child through thenable chain started at resolve', function() {
- function noop() {}
-
- let parent = promise.defer();
- let child = new promise.Promise(resolve => resolve(parent.promise));
- let grandChild = child.then(noop).then(noop).then(noop);
- grandChild.cancel('all done');
-
- return parent.promise.then(
- () => assert.fail('expected a cancellation'),
- e => {
- assert.ok(e instanceof promise.CancellationError);
- assert.equal('all done', e.message);
- });
- });
-
- it('"parent" is a CancellableThenable', function() {
- function noop() {}
-
- class FakeThenable {
- constructor(p) {
- this.promise = p;
- }
-
- cancel(reason) {
- this.promise.cancel(reason);
- }
-
- then(cb, eb) {
- let result = this.promise.then(cb, eb);
- return new FakeThenable(result);
- }
- }
- promise.CancellableThenable.addImplementation(FakeThenable);
-
- let root = new promise.Promise(noop);
- let thenable = new FakeThenable(root);
- assert.ok(promise.Thenable.isImplementation(thenable));
- assert.ok(promise.CancellableThenable.isImplementation(thenable));
-
- let child = new promise.Promise(resolve => resolve(thenable));
- assert.ok(child instanceof promise.Promise);
- child.cancel('stop!');
-
- function assertStopped(p) {
- return p.then(
- () => assert.fail('not stopped!'),
- (e) => {
- assert.ok(e instanceof promise.CancellationError);
- assert.equal('stop!', e.message);
- });
- }
-
- return assertStopped(child).then(() => assertStopped(root));
- });
- });
-
- it('canCancelATimeout', function() {
- var p = promise.delayed(25)
- .then(assert.fail, (e) => e instanceof promise.CancellationError);
- setTimeout(() => p.cancel(), 20);
- p.cancel();
- return p;
- });
-
- it('can cancel timeout from grandchild', function() {
- });
-
- it('cancelIsANoopOnceAPromiseHasBeenFulfilled', function() {
- var p = promise.fulfilled(123);
- p.cancel();
- return p.then((v) => assert.equal(123, v));
- });
-
- it('cancelIsANoopOnceAPromiseHasBeenRejected', function() {
- var p = promise.rejected(new StubError);
- p.cancel();
-
- var pair = callbackPair(null, assertIsStubError);
- return p.then(assert.fail, assertIsStubError);
- });
-
- it('noopCancelTriggeredOnCallbackOfResolvedPromise', function() {
- var d = promise.defer();
- var p = d.promise.then();
-
- d.fulfill();
- p.cancel(); // This should not throw.
- return p; // This should not trigger a failure.
- });
- });
- });
-
- promiseManagerSuite(() => {
- describe('fulfilled', function() {
- it('returns input value if it is already a valid promise', function() {
- let p = promise.createPromise(function() {});
- let r = promise.fulfilled(p);
- assert.strictEqual(p, r);
- });
-
- it('creates a new promise fulfilled with input', function() {
- return promise.fulfilled(1234).then(v => assert.equal(1234, v));
- });
-
- it('can convert thenables to valid promise', function() {
- let thenable = {then: function(cb) {cb(1234)}};
- let p = promise.fulfilled(thenable);
- assert.notStrictEqual(thenable, p);
- return p.then(v => assert.equal(1234, v));
- });
- });
-
- describe('when', function() {
- it('ReturnsAResolvedPromiseIfGivenANonPromiseValue', function() {
- var ret = promise.when('abc');
- assertIsPromise(ret);
- return ret.then((value) => assert.equal('abc', value));
- });
-
- it('PassesRawErrorsToCallbacks', function() {
- var error = new Error('boo!');
- return promise.when(error, function(value) {
- assert.equal(error, value);
- });
- });
-
- it('WaitsForValueToBeResolvedBeforeInvokingCallback', function() {
- let d = defer();
- let callback;
- let result = promise.when(d.promise, callback = callbackHelper(function(value) {
- assert.equal('hi', value);
- }));
- callback.assertNotCalled();
- d.resolve('hi');
- return result.then(callback.assertCalled);
- });
- });
-
- describe('fullyResolved', function() {
- it('primitives', function() {
- function runTest(value) {
- var callback, errback;
- return promise.fullyResolved(value)
- .then((resolved) => assert.equal(value, resolved));
- }
- return runTest(true)
- .then(() => runTest(function() {}))
- .then(() => runTest(null))
- .then(() => runTest(123))
- .then(() => runTest('foo bar'))
- .then(() => runTest(undefined));
- });
-
- it('arrayOfPrimitives', function() {
- var fn = function() {};
- var array = [true, fn, null, 123, '', undefined, 1];
- return promise.fullyResolved(array).then(function(resolved) {
- assert.equal(array, resolved);
- assert.deepEqual([true, fn, null, 123, '', undefined, 1],
- resolved);
- });
- });
-
- it('nestedArrayOfPrimitives', function() {
- var fn = function() {};
- var array = [true, [fn, null, 123], '', undefined];
- return promise.fullyResolved(array)
- .then(function(resolved) {
- assert.equal(array, resolved);
- assert.deepEqual([true, [fn, null, 123], '', undefined], resolved);
- assert.deepEqual([fn, null, 123], resolved[1]);
- });
- });
-
- it('arrayWithPromisedPrimitive', function() {
- return promise.fullyResolved([Promise.resolve(123)])
- .then(function(resolved) {
- assert.deepEqual([123], resolved);
- });
- });
-
- it('promiseResolvesToPrimitive', function() {
- return promise.fullyResolved(Promise.resolve(123))
- .then((resolved) => assert.equal(123, resolved));
- });
-
- it('promiseResolvesToArray', function() {
- var fn = function() {};
- var array = [true, [fn, null, 123], '', undefined];
- var aPromise = Promise.resolve(array);
-
- var result = promise.fullyResolved(aPromise);
- return result.then(function(resolved) {
- assert.equal(array, resolved);
- assert.deepEqual([true, [fn, null, 123], '', undefined],
- resolved);
- assert.deepEqual([fn, null, 123], resolved[1]);
- });
- });
-
- it('promiseResolvesToArrayWithPromises', function() {
- var nestedPromise = Promise.resolve(123);
- var aPromise = Promise.resolve([true, nestedPromise]);
- return promise.fullyResolved(aPromise)
- .then(function(resolved) {
- assert.deepEqual([true, 123], resolved);
- });
- });
-
- it('rejectsIfArrayPromiseRejects', function() {
- var nestedPromise = createRejectedPromise(new StubError);
- var aPromise = Promise.resolve([true, nestedPromise]);
-
- var pair = callbackPair(null, assertIsStubError);
- return promise.fullyResolved(aPromise)
- .then(assert.fail, assertIsStubError);
- });
-
- it('rejectsOnFirstArrayRejection', function() {
- var e1 = new Error('foo');
- var e2 = new Error('bar');
- var aPromise = Promise.resolve([
- createRejectedPromise(e1),
- createRejectedPromise(e2)
- ]);
-
- return promise.fullyResolved(aPromise)
- .then(assert.fail, function(error) {
- assert.strictEqual(e1, error);
- });
- });
-
- it('rejectsIfNestedArrayPromiseRejects', function() {
- var aPromise = Promise.resolve([
- Promise.resolve([
- createRejectedPromise(new StubError)
- ])
- ]);
-
- return promise.fullyResolved(aPromise)
- .then(assert.fail, assertIsStubError);
- });
-
- it('simpleHash', function() {
- var hash = {'a': 123};
- return promise.fullyResolved(hash)
- .then(function(resolved) {
- assert.strictEqual(hash, resolved);
- assert.deepEqual(hash, {'a': 123});
- });
- });
-
- it('nestedHash', function() {
- var nestedHash = {'foo':'bar'};
- var hash = {'a': 123, 'b': nestedHash};
-
- return promise.fullyResolved(hash)
- .then(function(resolved) {
- assert.strictEqual(hash, resolved);
- assert.deepEqual({'a': 123, 'b': {'foo': 'bar'}}, resolved);
- assert.strictEqual(nestedHash, resolved['b']);
- });
- });
-
- it('promiseResolvesToSimpleHash', function() {
- var hash = {'a': 123};
- var aPromise = Promise.resolve(hash);
-
- return promise.fullyResolved(aPromise)
- .then((resolved) => assert.strictEqual(hash, resolved));
- });
-
- it('promiseResolvesToNestedHash', function() {
- var nestedHash = {'foo':'bar'};
- var hash = {'a': 123, 'b': nestedHash};
- var aPromise = Promise.resolve(hash);
-
- return promise.fullyResolved(aPromise)
- .then(function(resolved) {
- assert.strictEqual(hash, resolved);
- assert.strictEqual(nestedHash, resolved['b']);
- assert.deepEqual(hash, {'a': 123, 'b': {'foo': 'bar'}});
- });
- });
-
- it('promiseResolvesToHashWithPromises', function() {
- var aPromise = Promise.resolve({
- 'a': Promise.resolve(123)
- });
-
- return promise.fullyResolved(aPromise)
- .then(function(resolved) {
- assert.deepEqual({'a': 123}, resolved);
- });
- });
-
- it('rejectsIfHashPromiseRejects', function() {
- var aPromise = Promise.resolve({
- 'a': createRejectedPromise(new StubError)
- });
-
- return promise.fullyResolved(aPromise)
- .then(assert.fail, assertIsStubError);
- });
-
- it('rejectsIfNestedHashPromiseRejects', function() {
- var aPromise = Promise.resolve({
- 'a': {'b': createRejectedPromise(new StubError)}
- });
-
- return promise.fullyResolved(aPromise)
- .then(assert.fail, assertIsStubError);
- });
-
- it('instantiatedObject', function() {
- function Foo() {
- this.bar = 'baz';
- }
- var foo = new Foo;
-
- return promise.fullyResolved(foo).then(function(resolvedFoo) {
- assert.equal(foo, resolvedFoo);
- assert.ok(resolvedFoo instanceof Foo);
- assert.deepEqual(new Foo, resolvedFoo);
- });
- });
-
- it('withEmptyArray', function() {
- return promise.fullyResolved([]).then(function(resolved) {
- assert.deepEqual([], resolved);
- });
- });
-
- it('withEmptyHash', function() {
- return promise.fullyResolved({}).then(function(resolved) {
- assert.deepEqual({}, resolved);
- });
- });
-
- it('arrayWithPromisedHash', function() {
- var obj = {'foo': 'bar'};
- var array = [Promise.resolve(obj)];
-
- return promise.fullyResolved(array).then(function(resolved) {
- assert.deepEqual(resolved, [obj]);
- });
- });
- });
-
- describe('checkedNodeCall', function() {
- it('functionThrows', function() {
- return promise.checkedNodeCall(throwStubError)
- .then(assert.fail, assertIsStubError);
- });
-
- it('functionReturnsAnError', function() {
- return promise.checkedNodeCall(function(callback) {
- callback(new StubError);
- }).then(assert.fail, assertIsStubError);
- });
-
- it('functionReturnsSuccess', function() {
- var success = 'success!';
- return promise.checkedNodeCall(function(callback) {
- callback(null, success);
- }).then((value) => assert.equal(success, value));
- });
-
- it('functionReturnsAndThrows', function() {
- var error = new Error('boom');
- var error2 = new Error('boom again');
- return promise.checkedNodeCall(function(callback) {
- callback(error);
- throw error2;
- }).then(assert.fail, (e) => assert.equal(error, e));
- });
-
- it('functionThrowsAndReturns', function() {
- var error = new Error('boom');
- var error2 = new Error('boom again');
- return promise.checkedNodeCall(function(callback) {
- setTimeout(() => callback(error), 10);
- throw error2;
- }).then(assert.fail, (e) => assert.equal(error2, e));
- });
- });
-
- describe('all', function() {
- it('(base case)', function() {
- let deferredObjs = [defer(), defer()];
- var a = [
- 0, 1,
- deferredObjs[0].promise,
- deferredObjs[1].promise,
- 4, 5, 6
- ];
- delete a[5];
-
- var pair = callbackPair(function(value) {
- assert.deepEqual([0, 1, 2, 3, 4, undefined, 6], value);
- });
-
- var result = promise.all(a).then(pair.callback, pair.errback);
- pair.assertNeither();
-
- deferredObjs[0].resolve(2);
- pair.assertNeither();
-
- deferredObjs[1].resolve(3);
- return result.then(() => pair.assertCallback());
- });
-
- it('empty array', function() {
- return promise.all([]).then((a) => assert.deepEqual([], a));
- });
-
- it('usesFirstRejection', function() {
- let deferredObjs = [defer(), defer()];
- let a = [deferredObjs[0].promise, deferredObjs[1].promise];
-
- var result = promise.all(a).then(assert.fail, assertIsStubError);
- deferredObjs[1].reject(new StubError);
- setTimeout(() => deferredObjs[0].reject(Error('ignored')), 0);
- return result;
- });
- });
-
- describe('map', function() {
- it('(base case)', function() {
- var a = [1, 2, 3];
- return promise.map(a, function(value, index, a2) {
- assert.equal(a, a2);
- assert.equal('number', typeof index, 'not a number');
- return value + 1;
- }).then(function(value) {
- assert.deepEqual([2, 3, 4], value);
- });
- });
-
- it('omitsDeleted', function() {
- var a = [0, 1, 2, 3, 4, 5, 6];
- delete a[1];
- delete a[3];
- delete a[4];
- delete a[6];
-
- var expected = [0, 1, 4, 9, 16, 25, 36];
- delete expected[1];
- delete expected[3];
- delete expected[4];
- delete expected[6];
-
- return promise.map(a, function(value) {
- return value * value;
- }).then(function(value) {
- assert.deepEqual(expected, value);
- });
- });
-
- it('emptyArray', function() {
- return promise.map([], function(value) {
- return value + 1;
- }).then(function(value) {
- assert.deepEqual([], value);
- });
- });
-
- it('inputIsPromise', function() {
- var input = defer();
- var result = promise.map(input.promise, function(value) {
- return value + 1;
- });
-
- var pair = callbackPair(function(value) {
- assert.deepEqual([2, 3, 4], value);
- });
- result = result.then(pair.callback, pair.errback);
-
- setTimeout(function() {
- pair.assertNeither();
- input.resolve([1, 2, 3]);
- }, 10);
-
- return result;
- });
-
- it('waitsForFunctionResultToResolve', function() {
- var innerResults = [
- defer(),
- defer()
- ];
-
- var result = promise.map([1, 2], function(value, index) {
- return innerResults[index].promise;
- });
-
- var pair = callbackPair(function(value) {
- assert.deepEqual(['a', 'b'], value);
- });
- result = result.then(pair.callback, pair.errback);
-
- return NativePromise.resolve()
- .then(function() {
- pair.assertNeither();
- innerResults[0].resolve('a');
- })
- .then(function() {
- pair.assertNeither();
- innerResults[1].resolve('b');
- return result;
- })
- .then(pair.assertCallback);
- });
-
- it('rejectsPromiseIfFunctionThrows', function() {
- return promise.map([1], throwStubError)
- .then(assert.fail, assertIsStubError);
- });
-
- it('rejectsPromiseIfFunctionReturnsRejectedPromise', function() {
- return promise.map([1], function() {
- return createRejectedPromise(new StubError);
- }).then(assert.fail, assertIsStubError);
- });
-
- it('stopsCallingFunctionIfPreviousIterationFailed', function() {
- var count = 0;
- return promise.map([1, 2, 3, 4], function() {
- count++;
- if (count == 3) {
- throw new StubError;
- }
- }).then(assert.fail, function(e) {
- assertIsStubError(e);
- assert.equal(3, count);
- });
- });
-
- it('rejectsWithFirstRejectedPromise', function() {
- var innerResult = [
- Promise.resolve(),
- createRejectedPromise(new StubError),
- createRejectedPromise(Error('should be ignored'))
- ];
- var count = 0;
- return promise.map([1, 2, 3, 4], function(value, index) {
- count += 1;
- return innerResult[index];
- }).then(assert.fail, function(e) {
- assertIsStubError(e);
- assert.equal(2, count);
- });
- });
-
- it('preservesOrderWhenMapReturnsPromise', function() {
- var deferreds = [
- defer(),
- defer(),
- defer(),
- defer()
- ];
- var result = promise.map(deferreds, function(value) {
- return value.promise;
- });
-
- var pair = callbackPair(function(value) {
- assert.deepEqual([0, 1, 2, 3], value);
- });
- result = result.then(pair.callback, pair.errback);
-
- return Promise.resolve()
- .then(function() {
- pair.assertNeither();
- for (let i = deferreds.length; i > 0; i -= 1) {
- deferreds[i - 1].resolve(i - 1);
- }
- return result;
- }).then(pair.assertCallback);
- });
- });
-
- describe('filter', function() {
- it('basicFiltering', function() {
- var a = [0, 1, 2, 3];
- return promise.filter(a, function(val, index, a2) {
- assert.equal(a, a2);
- assert.equal('number', typeof index, 'not a number');
- return val > 1;
- }).then(function(val) {
- assert.deepEqual([2, 3], val);
- });
- });
-
- it('omitsDeleted', function() {
- var a = [0, 1, 2, 3, 4, 5, 6];
- delete a[3];
- delete a[4];
-
- return promise.filter(a, function(value) {
- return value > 1 && value < 6;
- }).then(function(val) {
- assert.deepEqual([2, 5], val);
- });
- });
-
- it('preservesInputs', function() {
- var a = [0, 1, 2, 3];
-
- return promise.filter(a, function(value, i, a2) {
- assert.equal(a, a2);
- // Even if a function modifies the input array, the original value
- // should be inserted into the new array.
- a2[i] = a2[i] - 1;
- return a2[i] >= 1;
- }).then(function(val) {
- assert.deepEqual([2, 3], val);
- });
- });
-
- it('inputIsPromise', function() {
- var input = defer();
- var result = promise.filter(input.promise, function(value) {
- return value > 1 && value < 3;
- });
-
- var pair = callbackPair(function(value) {
- assert.deepEqual([2], value);
- });
- result = result.then(pair.callback, pair.errback);
- return NativePromise.resolve()
- .then(function() {
- pair.assertNeither();
- input.resolve([1, 2, 3]);
- return result;
- })
- .then(pair.assertCallback);
- });
-
- it('waitsForFunctionResultToResolve', function() {
- var innerResults = [
- defer(),
- defer()
- ];
-
- var result = promise.filter([1, 2], function(value, index) {
- return innerResults[index].promise;
- });
-
- var pair = callbackPair(function(value) {
- assert.deepEqual([2], value);
- });
- result = result.then(pair.callback, pair.errback);
- return NativePromise.resolve()
- .then(function() {
- pair.assertNeither();
- innerResults[0].resolve(false);
- })
- .then(function() {
- pair.assertNeither();
- innerResults[1].resolve(true);
- return result;
- })
- .then(pair.assertCallback);
- });
-
- it('rejectsPromiseIfFunctionReturnsRejectedPromise', function() {
- return promise.filter([1], function() {
- return createRejectedPromise(new StubError);
- }).then(assert.fail, assertIsStubError);
- });
-
- it('stopsCallingFunctionIfPreviousIterationFailed', function() {
- var count = 0;
- return promise.filter([1, 2, 3, 4], function() {
- count++;
- if (count == 3) {
- throw new StubError;
- }
- }).then(assert.fail, function(e) {
- assertIsStubError(e);
- assert.equal(3, count);
- });
- });
-
- it('rejectsWithFirstRejectedPromise', function() {
- var innerResult = [
- Promise.resolve(),
- createRejectedPromise(new StubError),
- createRejectedPromise(Error('should be ignored'))
- ];
-
- return promise.filter([1, 2, 3, 4], function(value, index) {
- assert.ok(index < innerResult.length);
- return innerResult[index];
- }).then(assert.fail, assertIsStubError);
- });
-
- it('preservesOrderWhenFilterReturnsPromise', function() {
- var deferreds = [
- defer(),
- defer(),
- defer(),
- defer()
- ];
- var result = promise.filter([0, 1, 2, 3], function(value, index) {
- return deferreds[index].promise;
- });
-
- var pair = callbackPair(function(value) {
- assert.deepEqual([1, 2], value);
- });
- result = result.then(pair.callback, pair.errback);
-
- return NativePromise.resolve()
- .then(function() {
- pair.assertNeither();
- for (let i = deferreds.length - 1; i >= 0; i -= 1) {
- deferreds[i].resolve(i > 0 && i < 3);
- }
- return result;
- }).then(pair.assertCallback);
- });
- });
- });
-
- enablePromiseManager(() => {
- it('firesUncaughtExceptionEventIfRejectionNeverHandled', function() {
- promise.rejected(new StubError);
- var handler = callbackHelper(assertIsStubError);
-
- // so tearDown() doesn't throw
- app.removeAllListeners();
- app.on(promise.ControlFlow.EventType.UNCAUGHT_EXCEPTION, handler);
-
- return NativePromise.resolve()
- // Macro yield so the uncaught exception has a chance to trigger.
- .then(() => new NativePromise(resolve => setTimeout(resolve, 0)))
- .then(handler.assertCalled);
- });
-
- it('cannotResolveADeferredWithItself', function() {
- var deferred = new promise.Deferred();
- assert.throws(() => deferred.fulfill(deferred));
- assert.throws(() => deferred.reject(deferred));
- });
-
- describe('testLongStackTraces', function() {
- beforeEach(() => promise.LONG_STACK_TRACES = false);
- afterEach(() => promise.LONG_STACK_TRACES = false);
-
- it('doesNotAppendStackIfFeatureDisabled', function() {
- promise.LONG_STACK_TRACES = false;
-
- var error = Error('hello');
- var originalStack = error.stack;
- return promise.rejected(error).
- then(fail).
- then(fail).
- then(fail).
- then(fail, function(e) {
- assert.equal(error, e);
- assert.equal(originalStack, e.stack);
- });
- });
-
- function getStackMessages(error) {
- return error.stack.split(/\n/).filter(function(line) {
- return /^From: /.test(line);
- });
- }
-
- it('appendsInitialPromiseCreation_resolverThrows', function() {
- promise.LONG_STACK_TRACES = true;
-
- var error = Error('hello');
- var originalStack = '(placeholder; will be overwritten later)';
-
- return new promise.Promise(function() {
- try {
- throw error;
- } catch (e) {
- originalStack = e.stack;
- throw e;
- }
- }).then(fail, function(e) {
- assert.strictEqual(error, e);
- if (typeof originalStack !== 'string') {
- return;
- }
- assert.notEqual(originalStack, e.stack);
- assert.equal(e.stack.indexOf(originalStack), 0,
- 'should start with original stack');
- assert.deepEqual(['From: ManagedPromise: new'], getStackMessages(e));
- });
- });
-
- it('appendsInitialPromiseCreation_rejectCalled', function() {
- promise.LONG_STACK_TRACES = true;
-
- var error = Error('hello');
- var originalStack = error.stack;
-
- return new promise.Promise(function(_, reject) {
- reject(error);
- }).then(fail, function(e) {
- assert.equal(error, e);
- if (typeof originalStack !== 'string') {
- return;
- }
- assert.notEqual(originalStack, e.stack);
- assert.equal(e.stack.indexOf(originalStack), 0,
- 'should start with original stack');
- assert.deepEqual(['From: ManagedPromise: new'], getStackMessages(e));
- });
- });
-
- it('appendsEachStepToRejectionError', function() {
- promise.LONG_STACK_TRACES = true;
-
- var error = Error('hello');
- var originalStack = '(placeholder; will be overwritten later)';
-
- return new promise.Promise(function() {
- try {
- throw error;
- } catch (e) {
- originalStack = e.stack;
- throw e;
- }
- }).
- then(fail).
- catch(function(e) { throw e; }).
- then(fail).
- catch(function(e) { throw e; }).
- then(fail, function(e) {
- assert.equal(error, e);
- if (typeof originalStack !== 'string') {
- return;
- }
- assert.notEqual(originalStack, e.stack);
- assert.equal(e.stack.indexOf(originalStack), 0,
- 'should start with original stack');
- assert.deepEqual([
- 'From: ManagedPromise: new',
- 'From: Promise: then',
- 'From: Promise: catch',
- 'From: Promise: then',
- 'From: Promise: catch',
- ], getStackMessages(e));
- });
- });
-
- it('errorOccursInCallbackChain', function() {
- promise.LONG_STACK_TRACES = true;
-
- var error = Error('hello');
- var originalStack = '(placeholder; will be overwritten later)';
-
- return promise.fulfilled().
- then(function() {}).
- then(function() {}).
- then(function() {
- try {
- throw error;
- } catch (e) {
- originalStack = e.stack;
- throw e;
- }
- }).
- catch(function(e) { throw e; }).
- then(fail, function(e) {
- assert.equal(error, e);
- if (typeof originalStack !== 'string') {
- return;
- }
- assert.notEqual(originalStack, e.stack);
- assert.equal(e.stack.indexOf(originalStack), 0,
- 'should start with original stack');
- assert.deepEqual([
- 'From: Promise: then',
- 'From: Promise: catch',
- ], getStackMessages(e));
- });
- });
- });
- });
-
- it('testAddThenableImplementation', function() {
- function tmp() {}
- assert.ok(!promise.Thenable.isImplementation(new tmp()));
- promise.Thenable.addImplementation(tmp);
- assert.ok(promise.Thenable.isImplementation(new tmp()));
-
- class tmpClass {}
- assert.ok(!promise.Thenable.isImplementation(new tmpClass()));
- promise.Thenable.addImplementation(tmpClass);
- assert.ok(promise.Thenable.isImplementation(new tmpClass()));
- });
-});
diff --git a/node_modules/selenium-webdriver/test/lib/testutil.js b/node_modules/selenium-webdriver/test/lib/testutil.js
deleted file mode 100644
index e68ca28ba..000000000
--- a/node_modules/selenium-webdriver/test/lib/testutil.js
+++ /dev/null
@@ -1,90 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const assert = require('assert');
-const sinon = require('sinon');
-
-
-class StubError extends Error {
- constructor(opt_msg) {
- super(opt_msg);
- this.name = this.constructor.name;
- }
-}
-exports.StubError = StubError;
-
-exports.throwStubError = function() {
- throw new StubError;
-};
-
-exports.assertIsStubError = function(value) {
- assert.ok(value instanceof StubError, value + ' is not a ' + StubError.name);
-};
-
-exports.assertIsInstance = function(ctor, value) {
- assert.ok(value instanceof ctor, 'Not a ' + ctor.name + ': ' + value);
-};
-
-function callbackPair(cb, eb) {
- if (cb && eb) {
- throw new TypeError('can only specify one of callback or errback');
- }
-
- let callback = cb ? sinon.spy(cb) : sinon.spy();
- let errback = eb ? sinon.spy(eb) : sinon.spy();
-
- function assertCallback() {
- assert.ok(callback.called, 'callback not called');
- assert.ok(!errback.called, 'errback called');
- if (callback.threw()) {
- throw callback.exceptions[0];
- }
- }
-
- function assertErrback() {
- assert.ok(!callback.called, 'callback called');
- assert.ok(errback.called, 'errback not called');
- if (errback.threw()) {
- throw errback.exceptions[0];
- }
- }
-
- function assertNeither() {
- assert.ok(!callback.called, 'callback called');
- assert.ok(!errback.called, 'errback called');
- }
-
- return {
- callback,
- errback,
- assertCallback,
- assertErrback,
- assertNeither
- };
-}
-exports.callbackPair = callbackPair;
-
-
-exports.callbackHelper = function(cb) {
- let pair = callbackPair(cb);
- let wrapped = pair.callback.bind(null);
- wrapped.assertCalled = () => pair.assertCallback();
- wrapped.assertNotCalled = () => pair.assertNeither();
- return wrapped;
-};
diff --git a/node_modules/selenium-webdriver/test/lib/until_test.js b/node_modules/selenium-webdriver/test/lib/until_test.js
deleted file mode 100644
index 3226a467a..000000000
--- a/node_modules/selenium-webdriver/test/lib/until_test.js
+++ /dev/null
@@ -1,478 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const assert = require('assert');
-
-const By = require('../../lib/by').By;
-const CommandName = require('../../lib/command').Name;
-const error = require('../../lib/error');
-const promise = require('../../lib/promise');
-const until = require('../../lib/until');
-const webdriver = require('../../lib/webdriver'),
- WebElement = webdriver.WebElement;
-
-describe('until', function() {
- let driver, executor;
-
- class TestExecutor {
- constructor() {
- this.handlers_ = {};
- }
-
- on(cmd, handler) {
- this.handlers_[cmd] = handler;
- return this;
- }
-
- execute(cmd) {
- let self = this;
- return Promise.resolve().then(function() {
- if (!self.handlers_[cmd.getName()]) {
- throw new error.UnknownCommandError(cmd.getName());
- }
- return self.handlers_[cmd.getName()](cmd);
- });
- }
- }
-
- function fail(opt_msg) {
- throw new assert.AssertionError({message: opt_msg});
- }
-
- beforeEach(function setUp() {
- executor = new TestExecutor();
- driver = new webdriver.WebDriver('session-id', executor);
- });
-
- describe('ableToSwitchToFrame', function() {
- it('failsFastForNonSwitchErrors', function() {
- let e = Error('boom');
- executor.on(CommandName.SWITCH_TO_FRAME, function() {
- throw e;
- });
- return driver.wait(until.ableToSwitchToFrame(0), 100)
- .then(fail, (e2) => assert.strictEqual(e2, e));
- });
-
- const ELEMENT_ID = 'some-element-id';
- const ELEMENT_INDEX = 1234;
-
- function onSwitchFrame(expectedId) {
- if (typeof expectedId === 'string') {
- expectedId = WebElement.buildId(expectedId);
- } else {
- assert.equal(typeof expectedId, 'number', 'must be string or number');
- }
- return cmd => {
- assert.deepEqual(
- cmd.getParameter('id'), expectedId, 'frame ID not specified');
- return true;
- };
- }
-
- it('byIndex', function() {
- executor.on(CommandName.SWITCH_TO_FRAME, onSwitchFrame(ELEMENT_INDEX));
- return driver.wait(until.ableToSwitchToFrame(ELEMENT_INDEX), 100);
- });
-
- it('byWebElement', function() {
- executor.on(CommandName.SWITCH_TO_FRAME, onSwitchFrame(ELEMENT_ID));
-
- var el = new webdriver.WebElement(driver, ELEMENT_ID);
- return driver.wait(until.ableToSwitchToFrame(el), 100);
- });
-
- it('byWebElementPromise', function() {
- executor.on(CommandName.SWITCH_TO_FRAME, onSwitchFrame(ELEMENT_ID));
- var el = new webdriver.WebElementPromise(driver,
- Promise.resolve(new webdriver.WebElement(driver, ELEMENT_ID)));
- return driver.wait(until.ableToSwitchToFrame(el), 100);
- });
-
- it('byLocator', function() {
- executor.on(CommandName.FIND_ELEMENTS, () => [WebElement.buildId(ELEMENT_ID)]);
- executor.on(CommandName.SWITCH_TO_FRAME, onSwitchFrame(ELEMENT_ID));
- return driver.wait(until.ableToSwitchToFrame(By.id('foo')), 100);
- });
-
- it('byLocator_elementNotInitiallyFound', function() {
- let foundResponses = [[], [], [WebElement.buildId(ELEMENT_ID)]];
- executor.on(CommandName.FIND_ELEMENTS, () => foundResponses.shift());
- executor.on(CommandName.SWITCH_TO_FRAME, onSwitchFrame(ELEMENT_ID));
-
- return driver.wait(until.ableToSwitchToFrame(By.id('foo')), 2000)
- .then(() => assert.deepEqual(foundResponses, []));
- });
-
- it('timesOutIfNeverAbletoSwitchFrames', function() {
- var count = 0;
- executor.on(CommandName.SWITCH_TO_FRAME, function() {
- count += 1;
- throw new error.NoSuchFrameError;
- });
-
- return driver.wait(until.ableToSwitchToFrame(0), 100)
- .then(fail, function(e) {
- assert.ok(count > 0);
- assert.ok(
- e.message.startsWith('Waiting to be able to switch to frame'),
- 'Wrong message: ' + e.message);
- });
- });
- });
-
- describe('alertIsPresent', function() {
- it('failsFastForNonAlertSwitchErrors', function() {
- return driver.wait(until.alertIsPresent(), 100).then(fail, function(e) {
- assert.ok(e instanceof error.UnknownCommandError);
- assert.equal(e.message, CommandName.GET_ALERT_TEXT);
- });
- });
-
- it('waitsForAlert', function() {
- var count = 0;
- executor.on(CommandName.GET_ALERT_TEXT, function() {
- if (count++ < 3) {
- throw new error.NoSuchAlertError;
- } else {
- return true;
- }
- }).on(CommandName.DISMISS_ALERT, () => true);
-
- return driver.wait(until.alertIsPresent(), 1000).then(function(alert) {
- assert.equal(count, 4);
- return alert.dismiss();
- });
- });
-
- // TODO: Remove once GeckoDriver doesn't throw this unwanted error.
- // See https://github.com/SeleniumHQ/selenium/pull/2137
- describe('workaround for GeckoDriver', function() {
- it('doesNotFailWhenCannotConvertNullToObject', function() {
- var count = 0;
- executor.on(CommandName.GET_ALERT_TEXT, function() {
- if (count++ < 3) {
- throw new error.WebDriverError(`can't convert null to object`);
- } else {
- return true;
- }
- }).on(CommandName.DISMISS_ALERT, () => true);
-
- return driver.wait(until.alertIsPresent(), 1000).then(function(alert) {
- assert.equal(count, 4);
- return alert.dismiss();
- });
- });
-
- it('keepsRaisingRegularWebdriverError', function() {
- var webDriverError = new error.WebDriverError;
-
- executor.on(CommandName.GET_ALERT_TEXT, function() {
- throw webDriverError;
- });
-
- return driver.wait(until.alertIsPresent(), 1000).then(function() {
- throw new Error('driver did not fail against WebDriverError');
- }, function(error) {
- assert.equal(error, webDriverError);
- });
- })
- });
- });
-
- it('testUntilTitleIs', function() {
- var titles = ['foo', 'bar', 'baz'];
- executor.on(CommandName.GET_TITLE, () => titles.shift());
-
- return driver.wait(until.titleIs('bar'), 3000).then(function() {
- assert.deepStrictEqual(titles, ['baz']);
- });
- });
-
- it('testUntilTitleContains', function() {
- var titles = ['foo', 'froogle', 'google'];
- executor.on(CommandName.GET_TITLE, () => titles.shift());
-
- return driver.wait(until.titleContains('oogle'), 3000).then(function() {
- assert.deepStrictEqual(titles, ['google']);
- });
- });
-
- it('testUntilTitleMatches', function() {
- var titles = ['foo', 'froogle', 'aaaabc', 'aabbbc', 'google'];
- executor.on(CommandName.GET_TITLE, () => titles.shift());
-
- return driver.wait(until.titleMatches(/^a{2,3}b+c$/), 3000)
- .then(function() {
- assert.deepStrictEqual(titles, ['google']);
- });
- });
-
- it('testUntilUrlIs', function() {
- var urls = ['http://www.foo.com', 'https://boo.com', 'http://docs.yes.com'];
- executor.on(CommandName.GET_CURRENT_URL, () => urls.shift());
-
- return driver.wait(until.urlIs('https://boo.com'), 3000).then(function() {
- assert.deepStrictEqual(urls, ['http://docs.yes.com']);
- });
- });
-
- it('testUntilUrlContains', function() {
- var urls =
- ['http://foo.com', 'https://groups.froogle.com', 'http://google.com'];
- executor.on(CommandName.GET_CURRENT_URL, () => urls.shift());
-
- return driver.wait(until.urlContains('oogle.com'), 3000).then(function() {
- assert.deepStrictEqual(urls, ['http://google.com']);
- });
- });
-
- it('testUntilUrlMatches', function() {
- var urls = ['foo', 'froogle', 'aaaabc', 'aabbbc', 'google'];
- executor.on(CommandName.GET_CURRENT_URL, () => urls.shift());
-
- return driver.wait(until.urlMatches(/^a{2,3}b+c$/), 3000)
- .then(function() {
- assert.deepStrictEqual(urls, ['google']);
- });
- });
-
- it('testUntilElementLocated', function() {
- var responses = [
- [],
- [WebElement.buildId('abc123'), WebElement.buildId('foo')],
- ['end']
- ];
- executor.on(CommandName.FIND_ELEMENTS, () => responses.shift());
-
- let element = driver.wait(until.elementLocated(By.id('quux')), 2000);
- assert.ok(element instanceof webdriver.WebElementPromise);
- return element.getId().then(function(id) {
- assert.deepStrictEqual(responses, [['end']]);
- assert.equal(id, 'abc123');
- });
- });
-
- describe('untilElementLocated, elementNeverFound', function() {
- function runNoElementFoundTest(locator, locatorStr) {
- executor.on(CommandName.FIND_ELEMENTS, () => []);
-
- function expectedFailure() {
- fail('expected condition to timeout');
- }
-
- return driver.wait(until.elementLocated(locator), 100)
- .then(expectedFailure, function(error) {
- var expected = 'Waiting for element to be located ' + locatorStr;
- var lines = error.message.split(/\n/, 2);
- assert.equal(lines[0], expected);
-
- let regex = /^Wait timed out after \d+ms$/;
- assert.ok(regex.test(lines[1]),
- `Lines <${lines[1]}> does not match ${regex}`);
- });
- }
-
- it('byLocator', function() {
- return runNoElementFoundTest(
- By.id('quux'), 'By(css selector, *[id="quux"])');
- });
-
- it('byHash', function() {
- return runNoElementFoundTest(
- {id: 'quux'}, 'By(css selector, *[id="quux"])');
- });
-
- it('byFunction', function() {
- return runNoElementFoundTest(function() {}, 'by function()');
- });
- });
-
- it('testUntilElementsLocated', function() {
- var responses = [
- [],
- [WebElement.buildId('abc123'), WebElement.buildId('foo')],
- ['end']
- ];
- executor.on(CommandName.FIND_ELEMENTS, () => responses.shift());
-
- return driver.wait(until.elementsLocated(By.id('quux')), 2000)
- .then(function(els) {
- return Promise.all(els.map(e => e.getId()));
- }).then(function(ids) {
- assert.deepStrictEqual(responses, [['end']]);
- assert.equal(ids.length, 2);
- assert.equal(ids[0], 'abc123');
- assert.equal(ids[1], 'foo');
- });
- });
-
- describe('untilElementsLocated, noElementsFound', function() {
- function runNoElementsFoundTest(locator, locatorStr) {
- executor.on(CommandName.FIND_ELEMENTS, () => []);
-
- function expectedFailure() {
- fail('expected condition to timeout');
- }
-
- return driver.wait(until.elementsLocated(locator), 100)
- .then(expectedFailure, function(error) {
- var expected =
- 'Waiting for at least one element to be located ' + locatorStr;
- var lines = error.message.split(/\n/, 2);
- assert.equal(lines[0], expected);
-
- let regex = /^Wait timed out after \d+ms$/;
- assert.ok(regex.test(lines[1]),
- `Lines <${lines[1]}> does not match ${regex}`);
- });
- }
-
- it('byLocator', function() {
- return runNoElementsFoundTest(
- By.id('quux'), 'By(css selector, *[id="quux"])');
- });
-
- it('byHash', function() {
- return runNoElementsFoundTest(
- {id: 'quux'}, 'By(css selector, *[id="quux"])');
- });
-
- it('byFunction', function() {
- return runNoElementsFoundTest(function() {}, 'by function()');
- });
- });
-
- it('testUntilStalenessOf', function() {
- let count = 0;
- executor.on(CommandName.GET_ELEMENT_TAG_NAME, function() {
- while (count < 3) {
- count += 1;
- return 'body';
- }
- throw new error.StaleElementReferenceError('now stale');
- });
-
- var el = new webdriver.WebElement(driver, {ELEMENT: 'foo'});
- return driver.wait(until.stalenessOf(el), 2000)
- .then(() => assert.equal(count, 3));
- });
-
- describe('element state conditions', function() {
- function runElementStateTest(predicate, command, responses, var_args) {
- let original = new webdriver.WebElement(driver, 'foo');
- let predicateArgs = [original];
- if (arguments.length > 3) {
- predicateArgs = predicateArgs.concat(arguments[1]);
- command = arguments[2];
- responses = arguments[3];
- }
-
- assert.ok(responses.length > 1);
-
- responses = responses.concat(['end']);
- executor.on(command, () => responses.shift());
-
- let result = driver.wait(predicate.apply(null, predicateArgs), 2000);
- assert.ok(result instanceof webdriver.WebElementPromise);
- return result.then(function(value) {
- assert.ok(value instanceof webdriver.WebElement);
- assert.ok(!(value instanceof webdriver.WebElementPromise));
- return value.getId();
- }).then(function(id) {
- assert.equal('foo', id);
- assert.deepStrictEqual(responses, ['end']);
- });
- }
-
- it('elementIsVisible', function() {
- return runElementStateTest(
- until.elementIsVisible,
- CommandName.IS_ELEMENT_DISPLAYED, [false, false, true]);
- });
-
- it('elementIsNotVisible', function() {
- return runElementStateTest(
- until.elementIsNotVisible,
- CommandName.IS_ELEMENT_DISPLAYED, [true, true, false]);
- });
-
- it('elementIsEnabled', function() {
- return runElementStateTest(
- until.elementIsEnabled,
- CommandName.IS_ELEMENT_ENABLED, [false, false, true]);
- });
-
- it('elementIsDisabled', function() {
- return runElementStateTest(
- until.elementIsDisabled,
- CommandName.IS_ELEMENT_ENABLED, [true, true, false]);
- });
-
- it('elementIsSelected', function() {
- return runElementStateTest(
- until.elementIsSelected,
- CommandName.IS_ELEMENT_SELECTED, [false, false, true]);
- });
-
- it('elementIsNotSelected', function() {
- return runElementStateTest(
- until.elementIsNotSelected,
- CommandName.IS_ELEMENT_SELECTED, [true, true, false]);
- });
-
- it('elementTextIs', function() {
- return runElementStateTest(
- until.elementTextIs, 'foobar',
- CommandName.GET_ELEMENT_TEXT,
- ['foo', 'fooba', 'foobar']);
- });
-
- it('elementTextContains', function() {
- return runElementStateTest(
- until.elementTextContains, 'bar',
- CommandName.GET_ELEMENT_TEXT,
- ['foo', 'foobaz', 'foobarbaz']);
- });
-
- it('elementTextMatches', function() {
- return runElementStateTest(
- until.elementTextMatches, /fo+bar{3}/,
- CommandName.GET_ELEMENT_TEXT,
- ['foo', 'foobar', 'fooobarrr']);
- });
- });
-
- describe('WebElementCondition', function() {
- it('fails if wait completes with a non-WebElement value', function() {
- let result = driver.wait(
- new webdriver.WebElementCondition('testing', () => 123), 1000);
-
- return result.then(
- () => assert.fail('expected to fail'),
- function(e) {
- assert.ok(e instanceof TypeError);
- assert.equal(
- 'WebElementCondition did not resolve to a WebElement: '
- + '[object Number]',
- e.message);
- });
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/lib/webdriver_test.js b/node_modules/selenium-webdriver/test/lib/webdriver_test.js
deleted file mode 100644
index 65fa5193a..000000000
--- a/node_modules/selenium-webdriver/test/lib/webdriver_test.js
+++ /dev/null
@@ -1,2309 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const testutil = require('./testutil');
-
-const By = require('../../lib/by').By;
-const Capabilities = require('../../lib/capabilities').Capabilities;
-const Executor = require('../../lib/command').Executor;
-const CName = require('../../lib/command').Name;
-const error = require('../../lib/error');
-const Button = require('../../lib/input').Button;
-const Key = require('../../lib/input').Key;
-const logging = require('../../lib/logging');
-const Session = require('../../lib/session').Session;
-const promise = require('../../lib/promise');
-const {enablePromiseManager, promiseManagerSuite} = require('../../lib/test/promise');
-const until = require('../../lib/until');
-const Alert = require('../../lib/webdriver').Alert;
-const AlertPromise = require('../../lib/webdriver').AlertPromise;
-const UnhandledAlertError = require('../../lib/webdriver').UnhandledAlertError;
-const WebDriver = require('../../lib/webdriver').WebDriver;
-const WebElement = require('../../lib/webdriver').WebElement;
-const WebElementPromise = require('../../lib/webdriver').WebElementPromise;
-
-const assert = require('assert');
-const sinon = require('sinon');
-
-const SESSION_ID = 'test_session_id';
-
-// Aliases for readability.
-const NativePromise = Promise;
-const StubError = testutil.StubError;
-const assertIsInstance = testutil.assertIsInstance;
-const assertIsStubError = testutil.assertIsStubError;
-const throwStubError = testutil.throwStubError;
-const fail = (msg) => assert.fail(msg);
-
-describe('WebDriver', function() {
- const LOG = logging.getLogger('webdriver.test');
-
- // before(function() {
- // logging.getLogger('webdriver').setLevel(logging.Level.ALL);
- // logging.installConsoleHandler();
- // });
-
- // after(function() {
- // logging.getLogger('webdriver').setLevel(null);
- // logging.removeConsoleHandler();
- // });
-
- var driver;
- var flow;
- var uncaughtExceptions;
-
- beforeEach(function setUp() {
- flow = promise.controlFlow();
- uncaughtExceptions = [];
- flow.on('uncaughtException', onUncaughtException);
- });
-
- afterEach(function tearDown() {
- if (!promise.USE_PROMISE_MANAGER) {
- return;
- }
- return waitForIdle(flow).then(function() {
- assert.deepEqual([], uncaughtExceptions);
- flow.reset();
- });
- });
-
- function onUncaughtException(e) {
- uncaughtExceptions.push(e);
- }
-
- function defer() {
- let d = {};
- let promise = new Promise((resolve, reject) => {
- Object.assign(d, {resolve, reject});
- });
- d.promise = promise;
- return d;
- }
-
- function waitForIdle(opt_flow) {
- if (!promise.USE_PROMISE_MANAGER) {
- return Promise.resolve();
- }
- var theFlow = opt_flow || flow;
- return new Promise(function(fulfill, reject) {
- if (theFlow.isIdle()) {
- fulfill();
- return;
- }
- theFlow.once('idle', fulfill);
- theFlow.once('uncaughtException', reject);
- });
- }
-
- function waitForAbort(opt_flow, opt_n) {
- var n = opt_n || 1;
- var theFlow = opt_flow || flow;
- theFlow.removeAllListeners(
- promise.ControlFlow.EventType.UNCAUGHT_EXCEPTION);
- return new Promise(function(fulfill, reject) {
- theFlow.once('idle', function() {
- reject(Error('expected flow to report an unhandled error'));
- });
-
- var errors = [];
- theFlow.on('uncaughtException', onError);
- function onError(e) {
- errors.push(e);
- if (errors.length === n) {
- theFlow.removeListener('uncaughtException', onError);
- fulfill(n === 1 ? errors[0] : errors);
- }
- }
- });
- }
-
- function expectedError(ctor, message) {
- return function(e) {
- assertIsInstance(ctor, e);
- assert.equal(message, e.message);
- };
- }
-
- class Expectation {
- constructor(executor, name, opt_parameters) {
- this.executor_ = executor;
- this.name_ = name;
- this.times_ = 1;
- this.sessionId_ = SESSION_ID;
- this.check_ = null;
- this.toDo_ = null;
- this.withParameters(opt_parameters || {});
- }
-
- anyTimes() {
- this.times_ = Infinity;
- return this;
- }
-
- times(n) {
- this.times_ = n;
- return this;
- }
-
- withParameters(parameters) {
- this.parameters_ = parameters;
- if (this.name_ !== CName.NEW_SESSION) {
- this.parameters_['sessionId'] = this.sessionId_;
- }
- return this;
- }
-
- andReturn(code, opt_value) {
- this.toDo_ = function(command) {
- LOG.info('executing ' + command.getName() + '; returning ' + code);
- return Promise.resolve(opt_value !== void(0) ? opt_value : null);
- };
- return this;
- }
-
- andReturnSuccess(opt_value) {
- this.toDo_ = function(command) {
- LOG.info('executing ' + command.getName() + '; returning success');
- return Promise.resolve(opt_value !== void(0) ? opt_value : null);
- };
- return this;
- }
-
- andReturnError(error) {
- if (typeof error === 'number') {
- throw Error('need error type');
- }
- this.toDo_ = function(command) {
- LOG.info('executing ' + command.getName() + '; returning failure');
- return Promise.reject(error);
- };
- return this;
- }
-
- expect(name, opt_parameters) {
- this.end();
- return this.executor_.expect(name, opt_parameters);
- }
-
- end() {
- if (!this.toDo_) {
- this.andReturnSuccess(null);
- }
- return this.executor_;
- }
-
- execute(command) {
- assert.deepEqual(this.parameters_, command.getParameters());
- return this.toDo_(command);
- }
- }
-
- class FakeExecutor {
- constructor() {
- this.commands_ = new Map;
- }
-
- execute(command) {
- let expectations = this.commands_.get(command.getName());
- if (!expectations || !expectations.length) {
- assert.fail('unexpected command: ' + command.getName());
- return;
- }
-
- let next = expectations[0];
- let result = next.execute(command);
- if (next.times_ != Infinity) {
- next.times_ -= 1;
- if (!next.times_) {
- expectations.shift();
- }
- }
- return result;
- }
-
- expect(commandName, opt_parameters) {
- if (!this.commands_.has(commandName)) {
- this.commands_.set(commandName, []);
- }
- let e = new Expectation(this, commandName, opt_parameters);
- this.commands_.get(commandName).push(e);
- return e;
- }
-
- createDriver(opt_session) {
- let session = opt_session || new Session(SESSION_ID, {});
- return new WebDriver(session, this);
- }
- }
-
-
- /////////////////////////////////////////////////////////////////////////////
- //
- // Tests
- //
- /////////////////////////////////////////////////////////////////////////////
-
-
- describe('testAttachToSession', function() {
- it('sessionIsAvailable', function() {
- let aSession = new Session(SESSION_ID, {'browserName': 'firefox'});
- let executor = new FakeExecutor().
- expect(CName.DESCRIBE_SESSION).
- withParameters({'sessionId': SESSION_ID}).
- andReturnSuccess(aSession).
- end();
-
- let driver = WebDriver.attachToSession(executor, SESSION_ID);
- return driver.getSession().then(v => assert.strictEqual(v, aSession));
- });
-
- it('failsToGetSessionInfo', function() {
- let e = new Error('boom');
- let executor = new FakeExecutor().
- expect(CName.DESCRIBE_SESSION).
- withParameters({'sessionId': SESSION_ID}).
- andReturnError(e).
- end();
-
- let driver = WebDriver.attachToSession(executor, SESSION_ID);
- return driver.getSession()
- .then(() => assert.fail('should have failed!'),
- (actual) => assert.strictEqual(actual, e));
- });
-
- it('remote end does not recognize DESCRIBE_SESSION command', function() {
- let e = new error.UnknownCommandError;
- let executor = new FakeExecutor().
- expect(CName.DESCRIBE_SESSION).
- withParameters({'sessionId': SESSION_ID}).
- andReturnError(e).
- end();
-
- let driver = WebDriver.attachToSession(executor, SESSION_ID);
- return driver.getSession().then(session => {
- assert.ok(session instanceof Session);
- assert.strictEqual(session.getId(), SESSION_ID);
- assert.equal(session.getCapabilities().size, 0);
- });
- });
-
- it('usesActiveFlowByDefault', function() {
- let executor = new FakeExecutor().
- expect(CName.DESCRIBE_SESSION).
- withParameters({'sessionId': SESSION_ID}).
- andReturnSuccess({}).
- end();
-
- var driver = WebDriver.attachToSession(executor, SESSION_ID);
- assert.equal(driver.controlFlow(), promise.controlFlow());
-
- return waitForIdle(driver.controlFlow());
- });
-
- enablePromiseManager(() => {
- it('canAttachInCustomFlow', function() {
- let executor = new FakeExecutor().
- expect(CName.DESCRIBE_SESSION).
- withParameters({'sessionId': SESSION_ID}).
- andReturnSuccess({}).
- end();
-
- var otherFlow = new promise.ControlFlow();
- var driver = WebDriver.attachToSession(executor, SESSION_ID, otherFlow);
- assert.equal(otherFlow, driver.controlFlow());
- assert.notEqual(otherFlow, promise.controlFlow());
-
- return waitForIdle(otherFlow);
- });
- });
- });
-
- describe('testCreateSession', function() {
- it('happyPathWithCapabilitiesHashObject', function() {
- let aSession = new Session(SESSION_ID, {'browserName': 'firefox'});
- let executor = new FakeExecutor().
- expect(CName.NEW_SESSION).
- withParameters({
- 'desiredCapabilities': {'browserName': 'firefox'}
- }).
- andReturnSuccess(aSession).
- end();
-
- var driver = WebDriver.createSession(executor, {
- 'browserName': 'firefox'
- });
- return driver.getSession().then(v => assert.strictEqual(v, aSession));
- });
-
- it('happyPathWithCapabilitiesInstance', function() {
- let aSession = new Session(SESSION_ID, {'browserName': 'firefox'});
- let executor = new FakeExecutor().
- expect(CName.NEW_SESSION).
- withParameters({'desiredCapabilities': {'browserName': 'firefox'}}).
- andReturnSuccess(aSession).
- end();
-
- var driver = WebDriver.createSession(executor, Capabilities.firefox());
- return driver.getSession().then(v => assert.strictEqual(v, aSession));
- });
-
- it('handles desired and required capabilities', function() {
- let aSession = new Session(SESSION_ID, {'browserName': 'firefox'});
- let executor = new FakeExecutor().
- expect(CName.NEW_SESSION).
- withParameters({
- 'desiredCapabilities': {'foo': 'bar'},
- 'requiredCapabilities': {'bim': 'baz'}
- }).
- andReturnSuccess(aSession).
- end();
-
- let desired = new Capabilities().set('foo', 'bar');
- let required = new Capabilities().set('bim', 'baz');
- var driver = WebDriver.createSession(executor, {desired, required});
- return driver.getSession().then(v => assert.strictEqual(v, aSession));
- });
-
- it('failsToCreateSession', function() {
- let executor = new FakeExecutor().
- expect(CName.NEW_SESSION).
- withParameters({'desiredCapabilities': {'browserName': 'firefox'}}).
- andReturnError(new StubError()).
- end();
-
- var driver =
- WebDriver.createSession(executor, {'browserName': 'firefox'});
- return driver.getSession().then(fail, assertIsStubError);
- });
-
- it('invokes quit callback if it fails to create a session', function() {
- let called = false;
- let executor = new FakeExecutor()
- .expect(CName.NEW_SESSION)
- .withParameters({'desiredCapabilities': {'browserName': 'firefox'}})
- .andReturnError(new StubError())
- .end();
-
- var driver =
- WebDriver.createSession(executor, {'browserName': 'firefox'},
- null, null, () => called = true);
- return driver.getSession().then(fail, err => {
- assert.ok(called);
- assertIsStubError(err);
- });
- });
-
- it('usesActiveFlowByDefault', function() {
- let executor = new FakeExecutor().
- expect(CName.NEW_SESSION).
- withParameters({'desiredCapabilities': {}}).
- andReturnSuccess(new Session(SESSION_ID)).
- end();
-
- var driver = WebDriver.createSession(executor, {});
- assert.equal(promise.controlFlow(), driver.controlFlow());
-
- return waitForIdle(driver.controlFlow());
- });
-
- enablePromiseManager(() => {
- it('canCreateInCustomFlow', function() {
- let executor = new FakeExecutor().
- expect(CName.NEW_SESSION).
- withParameters({'desiredCapabilities': {}}).
- andReturnSuccess({}).
- end();
-
- var otherFlow = new promise.ControlFlow();
- var driver = WebDriver.createSession(executor, {}, otherFlow);
- assert.equal(otherFlow, driver.controlFlow());
- assert.notEqual(otherFlow, promise.controlFlow());
-
- return waitForIdle(otherFlow);
- });
-
- describe('creation failures bubble up in control flow', function() {
- function runTest(...args) {
- let executor = new FakeExecutor()
- .expect(CName.NEW_SESSION)
- .withParameters({'desiredCapabilities': {'browserName': 'firefox'}})
- .andReturnError(new StubError())
- .end();
-
- WebDriver.createSession(
- executor, {'browserName': 'firefox'}, ...args);
- return waitForAbort().then(assertIsStubError);
- }
-
- it('no onQuit callback', () => runTest());
- it('has onQuit callback', () => runTest(null, null, function() {}));
-
- it('onQuit callback failure suppress creation failure', function() {
- let e = new Error('hi!');
- let executor = new FakeExecutor()
- .expect(CName.NEW_SESSION)
- .withParameters({'desiredCapabilities': {'browserName': 'firefox'}})
- .andReturnError(new StubError())
- .end();
-
- WebDriver.createSession(
- executor, {'browserName': 'firefox'}, null, null,
- () => {throw e});
- return waitForAbort().then(err => assert.strictEqual(err, e));
- });
- });
- });
- });
-
- it('testDoesNotExecuteCommandIfSessionDoesNotResolve', function() {
- var session = Promise.reject(new StubError);
- return new FakeExecutor().createDriver(session)
- .getTitle()
- .then(_ => assert.fail('should have failed'), assertIsStubError);
- });
-
- it('testCommandReturnValuesArePassedToFirstCallback', function() {
- let executor = new FakeExecutor().
- expect(CName.GET_TITLE).andReturnSuccess('Google Search').
- end();
-
- var driver = executor.createDriver();
- return driver.getTitle()
- .then(title => assert.equal('Google Search', title));
- });
-
- it('testStopsCommandExecutionWhenAnErrorOccurs', function() {
- let e = new error.NoSuchWindowError('window not found');
- let executor = new FakeExecutor().
- expect(CName.SWITCH_TO_WINDOW).
- withParameters({
- 'name': 'foo',
- 'handle': 'foo'
- }).
- andReturnError(e).
- end();
-
- let driver = executor.createDriver();
- return driver.switchTo().window('foo')
- .then(
- _ => driver.getTitle(), // mock should blow if this gets executed
- v => assert.strictEqual(v, e));
- });
-
- it('testCanSuppressCommandFailures', function() {
- let e = new error.NoSuchWindowError('window not found');
- let executor = new FakeExecutor().
- expect(CName.SWITCH_TO_WINDOW).
- withParameters({
- 'name': 'foo',
- 'handle': 'foo'
- }).
- andReturnError(e).
- expect(CName.GET_TITLE).
- andReturnSuccess('Google Search').
- end();
-
- var driver = executor.createDriver();
- driver.switchTo().window('foo')
- .catch(v => assert.strictEqual(v, e));
- driver.getTitle();
- return waitForIdle();
- });
-
- it('testErrorsPropagateUpToTheRunningApplication', function() {
- let e = new error.NoSuchWindowError('window not found');
- let executor = new FakeExecutor().
- expect(CName.SWITCH_TO_WINDOW).
- withParameters({
- 'name': 'foo',
- 'handle': 'foo'
- }).
- andReturnError(e).
- end();
-
- return executor.createDriver()
- .switchTo().window('foo')
- .then(_ => assert.fail(), v => assert.strictEqual(v, e));
- });
-
- it('testErrbacksThatReturnErrorsStillSwitchToCallbackChain', function() {
- let executor = new FakeExecutor().
- expect(CName.SWITCH_TO_WINDOW).
- withParameters({
- 'name': 'foo',
- 'handle': 'foo'
- }).
- andReturnError(new error.NoSuchWindowError('window not found')).
- end();
-
- var driver = executor.createDriver();
- return driver.switchTo().window('foo').
- catch(function() { return new StubError; });
- then(assertIsStubError, () => assert.fail());
- });
-
- it('testErrbacksThrownCanOverrideOriginalError', function() {
- let executor = new FakeExecutor().
- expect(CName.SWITCH_TO_WINDOW, {
- 'name': 'foo',
- 'handle': 'foo'
- }).
- andReturnError(new error.NoSuchWindowError('window not found')).
- end();
-
- var driver = executor.createDriver();
- return driver.switchTo().window('foo')
- .catch(throwStubError)
- .then(assert.fail, assertIsStubError);
- });
-
- it('testReportsErrorWhenExecutingCommandsAfterExecutingAQuit', function() {
- let executor = new FakeExecutor().
- expect(CName.QUIT).
- end();
-
- let verifyError = expectedError(
- error.NoSuchSessionError,
- 'This driver instance does not have a valid session ID ' +
- '(did you call WebDriver.quit()?) and may no longer be used.');
-
- let driver = executor.createDriver();
- return driver.quit()
- .then(_ => driver.get('http://www.google.com'))
- .then(assert.fail, verifyError);
- });
-
- it('testCallbackCommandsExecuteBeforeNextCommand', function() {
- let executor = new FakeExecutor().
- expect(CName.GET_CURRENT_URL).
- expect(CName.GET, {'url': 'http://www.google.com'}).
- expect(CName.CLOSE).
- expect(CName.GET_TITLE).
- end();
-
- var driver = executor.createDriver();
- driver.getCurrentUrl().then(function() {
- driver.get('http://www.google.com').then(function() {
- driver.close();
- });
- });
- driver.getTitle();
-
- return waitForIdle();
- });
-
- enablePromiseManager(() => {
- it('testEachCallbackFrameRunsToCompletionBeforeTheNext', function() {
- let executor = new FakeExecutor().
- expect(CName.GET_TITLE).
- expect(CName.GET_CURRENT_URL).
- expect(CName.GET_CURRENT_WINDOW_HANDLE).
- expect(CName.CLOSE).
- expect(CName.QUIT).
- end();
-
- var driver = executor.createDriver();
- driver.getTitle().
- // Everything in this callback...
- then(function() {
- driver.getCurrentUrl();
- driver.getWindowHandle();
- }).
- // ...should execute before everything in this callback.
- then(function() {
- driver.close();
- });
- // This should execute after everything above
- driver.quit();
-
- return waitForIdle();
- });
- });
-
- describe('returningAPromise', function() {
- it('fromACallback', function() {
- let executor = new FakeExecutor().
- expect(CName.GET_TITLE).
- expect(CName.GET_CURRENT_URL).
- andReturnSuccess('http://www.google.com').
- end();
-
- var driver = executor.createDriver();
- return driver.getTitle().
- then(function() {
- return driver.getCurrentUrl();
- }).
- then(function(value) {
- assert.equal('http://www.google.com', value);
- });
- });
-
- it('fromAnErrbackSuppressesTheError', function() {
- let executor = new FakeExecutor().
- expect(CName.SWITCH_TO_WINDOW, {
- 'name': 'foo',
- 'handle': 'foo'
- }).
- andReturnError(new StubError()).
- expect(CName.GET_CURRENT_URL).
- andReturnSuccess('http://www.google.com').
- end();
-
- var driver = executor.createDriver();
- return driver.switchTo().window('foo').
- catch(function(e) {
- assertIsStubError(e);
- return driver.getCurrentUrl();
- }).
- then(url => assert.equal('http://www.google.com', url));
- });
- });
-
- describe('customFunctions', function() {
- it('returnsANonPromiseValue', function() {
- var driver = new FakeExecutor().createDriver();
- return driver.call(() => 'abc123').then(function(value) {
- assert.equal('abc123', value);
- });
- });
-
- enablePromiseManager(() => {
- it('executionOrderWithCustomFunctions', function() {
- var msg = [];
- let executor = new FakeExecutor().
- expect(CName.GET_TITLE).andReturnSuccess('cheese ').
- expect(CName.GET_CURRENT_URL).andReturnSuccess('tasty').
- end();
-
- var driver = executor.createDriver();
-
- var pushMsg = msg.push.bind(msg);
- driver.getTitle().then(pushMsg);
- driver.call(() => 'is ').then(pushMsg);
- driver.getCurrentUrl().then(pushMsg);
- driver.call(() => '!').then(pushMsg);
-
- return waitForIdle().then(function() {
- assert.equal('cheese is tasty!', msg.join(''));
- });
- });
- });
-
- it('passingArgumentsToACustomFunction', function() {
- var add = function(a, b) {
- return a + b;
- };
- var driver = new FakeExecutor().createDriver();
- return driver.call(add, null, 1, 2).then(function(value) {
- assert.equal(3, value);
- });
- });
-
- it('passingPromisedArgumentsToACustomFunction', function() {
- var promisedArg = Promise.resolve(2);
- var add = function(a, b) {
- return a + b;
- };
- var driver = new FakeExecutor().createDriver();
- return driver.call(add, null, 1, promisedArg).then(function(value) {
- assert.equal(3, value);
- });
- });
-
- it('passingArgumentsAndScopeToACustomFunction', function() {
- function Foo(name) {
- this.name = name;
- }
- Foo.prototype.getName = function() {
- return this.name;
- };
- var foo = new Foo('foo');
-
- var driver = new FakeExecutor().createDriver();
- return driver.call(foo.getName, foo).then(function(value) {
- assert.equal('foo', value);
- });
- });
-
- it('customFunctionThrowsAnError', function() {
- var driver = new FakeExecutor().createDriver();
- return driver.call(throwStubError).then(fail, assertIsStubError);
- });
-
- it('customFunctionSchedulesCommands', function() {
- let executor = new FakeExecutor().
- expect(CName.GET_TITLE).
- expect(CName.CLOSE).
- expect(CName.QUIT).
- end();
-
- var driver = executor.createDriver();
- driver.call(function() {
- driver.getTitle();
- driver.close();
- });
- driver.quit();
- return waitForIdle();
- });
-
- it('returnsATaskResultAfterSchedulingAnother', function() {
- let executor = new FakeExecutor().
- expect(CName.GET_TITLE).
- andReturnSuccess('Google Search').
- expect(CName.CLOSE).
- end();
-
- var driver = executor.createDriver();
- return driver.call(function() {
- var title = driver.getTitle();
- driver.close();
- return title;
- }).then(function(title) {
- assert.equal('Google Search', title);
- });
- });
-
- it('hasANestedCommandThatFails', function() {
- let executor = new FakeExecutor().
- expect(CName.SWITCH_TO_WINDOW, {
- 'name': 'foo',
- 'handle': 'foo'
- }).
- andReturnError(new StubError()).
- end();
-
- var driver = executor.createDriver();
- return driver.call(function() {
- return driver.switchTo().window('foo');
- }).then(fail, assertIsStubError);
- });
-
- enablePromiseManager(() => {
- it('doesNotCompleteUntilReturnedPromiseIsResolved', function() {
- var order = [];
- var driver = new FakeExecutor().createDriver();
-
- var d = promise.defer();
- d.promise.then(function() {
- order.push('b');
- });
-
- driver.call(function() {
- order.push('a');
- return d.promise;
- });
- driver.call(function() {
- order.push('c');
- });
-
- // timeout to ensure the first function starts its execution before we
- // trigger d's callbacks.
- return new Promise(f => setTimeout(f, 0)).then(function() {
- assert.deepEqual(['a'], order);
- d.fulfill();
- return waitForIdle().then(function() {
- assert.deepEqual(['a', 'b', 'c'], order);
- });
- });
- });
- });
-
- it('returnsADeferredAction', function() {
- let executor = new FakeExecutor().
- expect(CName.GET_TITLE).andReturnSuccess('Google').
- end();
-
- var driver = executor.createDriver();
- driver.call(function() {
- return driver.getTitle();
- }).then(function(title) {
- assert.equal('Google', title);
- });
- return waitForIdle();
- });
- });
-
- describe('nestedCommands', function() {
- enablePromiseManager(() => {
- it('commandExecutionOrder', function() {
- var msg = [];
- var driver = new FakeExecutor().createDriver();
- driver.call(msg.push, msg, 'a');
- driver.call(function() {
- driver.call(msg.push, msg, 'c');
- driver.call(function() {
- driver.call(msg.push, msg, 'e');
- driver.call(msg.push, msg, 'f');
- });
- driver.call(msg.push, msg, 'd');
- });
- driver.call(msg.push, msg, 'b');
- return waitForIdle().then(function() {
- assert.equal('acefdb', msg.join(''));
- });
- });
-
- it('basicUsage', function() {
- var msg = [];
- var driver = new FakeExecutor().createDriver();
- var pushMsg = msg.push.bind(msg);
- driver.call(() => 'cheese ').then(pushMsg);
- driver.call(function() {
- driver.call(() => 'is ').then(pushMsg);
- driver.call(() => 'tasty').then(pushMsg);
- });
- driver.call(() => '!').then(pushMsg);
- return waitForIdle().then(function() {
- assert.equal('cheese is tasty!', msg.join(''));
- });
- });
-
- it('normalCommandAfterNestedCommandThatReturnsAnAction', function() {
- var msg = [];
- let executor = new FakeExecutor().
- expect(CName.CLOSE).
- end();
- var driver = executor.createDriver();
- driver.call(function() {
- return driver.call(function() {
- msg.push('a');
- return driver.call(() => 'foobar');
- });
- });
- driver.close().then(function() {
- msg.push('b');
- });
- return waitForIdle().then(function() {
- assert.equal('ab', msg.join(''));
- });
- });
- });
-
- it('canReturnValueFromNestedFunction', function() {
- var driver = new FakeExecutor().createDriver();
- return driver.call(function() {
- return driver.call(function() {
- return driver.call(() => 'foobar');
- });
- }).then(function(value) {
- assert.equal('foobar', value);
- });
- });
-
- it('errorsBubbleUp_caught', function() {
- var driver = new FakeExecutor().createDriver();
- var result = driver.call(function() {
- return driver.call(function() {
- return driver.call(throwStubError);
- });
- }).then(fail, assertIsStubError);
- return Promise.all([waitForIdle(), result]);
- });
-
- it('errorsBubbleUp_uncaught', function() {
- var driver = new FakeExecutor().createDriver();
- return driver.call(function() {
- return driver.call(function() {
- return driver.call(throwStubError);
- });
- })
- .then(_ => assert.fail('should have failed'), assertIsStubError);
- });
-
- it('canScheduleCommands', function() {
- let executor = new FakeExecutor().
- expect(CName.GET_TITLE).
- expect(CName.CLOSE).
- end();
-
- var driver = executor.createDriver();
- driver.call(function() {
- driver.call(function() {
- driver.getTitle();
- });
- driver.close();
- });
- return waitForIdle();
- });
- });
-
- describe('WebElementPromise', function() {
- let driver = new FakeExecutor().createDriver();
-
- it('resolvesWhenUnderlyingElementDoes', function() {
- let el = new WebElement(driver, {'ELEMENT': 'foo'});
- return new WebElementPromise(driver, Promise.resolve(el))
- .then(e => assert.strictEqual(e, el));
- });
-
- it('resolvesBeforeCallbacksOnWireValueTrigger', function() {
- var el = defer();
-
- var element = new WebElementPromise(driver, el.promise);
- var messages = [];
-
- let steps = [
- element.then(_ => messages.push('element resolved')),
- element.getId().then(_ => messages.push('wire value resolved'))
- ];
-
- el.resolve(new WebElement(driver, {'ELEMENT': 'foo'}));
- return Promise.all(steps).then(function() {
- assert.deepEqual([
- 'element resolved',
- 'wire value resolved'
- ], messages);
- });
- });
-
- it('isRejectedIfUnderlyingIdIsRejected', function() {
- let element =
- new WebElementPromise(driver, Promise.reject(new StubError));
- return element.then(fail, assertIsStubError);
- });
- });
-
- describe('executeScript', function() {
- it('nullReturnValue', function() {
- let executor = new FakeExecutor().
- expect(CName.EXECUTE_SCRIPT).
- withParameters({
- 'script': 'return document.body;',
- 'args': []
- }).
- andReturnSuccess(null).
- end();
-
- var driver = executor.createDriver();
- return driver.executeScript('return document.body;')
- .then((result) => assert.equal(null, result));
- });
-
- it('primitiveReturnValue', function() {
- let executor = new FakeExecutor().
- expect(CName.EXECUTE_SCRIPT).
- withParameters({
- 'script': 'return document.body;',
- 'args': []
- }).
- andReturnSuccess(123).
- end();
-
- var driver = executor.createDriver();
- return driver.executeScript('return document.body;')
- .then((result) => assert.equal(123, result));
- });
-
- it('webElementReturnValue', function() {
- var json = WebElement.buildId('foo');
-
- let executor = new FakeExecutor().
- expect(CName.EXECUTE_SCRIPT).
- withParameters({
- 'script': 'return document.body;',
- 'args': []
- }).
- andReturnSuccess(json).
- end();
-
- var driver = executor.createDriver();
- return driver.executeScript('return document.body;')
- .then((element) => element.getId())
- .then((id) => assert.equal(id, 'foo'));
- });
-
- it('arrayReturnValue', function() {
- var json = [WebElement.buildId('foo')];
-
- let executor = new FakeExecutor().
- expect(CName.EXECUTE_SCRIPT).
- withParameters({
- 'script': 'return document.body;',
- 'args': []
- }).
- andReturnSuccess(json).
- end();
-
- var driver = executor.createDriver();
- return driver.executeScript('return document.body;')
- .then(function(array) {
- assert.equal(1, array.length);
- return array[0].getId();
- })
- .then((id) => assert.equal('foo', id));
- });
-
- it('objectReturnValue', function() {
- var json = {'foo': WebElement.buildId('foo')};
-
- let executor = new FakeExecutor().
- expect(CName.EXECUTE_SCRIPT).
- withParameters({
- 'script': 'return document.body;',
- 'args': []
- }).
- andReturnSuccess(json).
- end();
-
- var driver = executor.createDriver();
- var callback;
- return driver.executeScript('return document.body;')
- .then((obj) => obj['foo'].getId())
- .then((id) => assert.equal(id, 'foo'));
- });
-
- it('scriptAsFunction', function() {
- let executor = new FakeExecutor().
- expect(CName.EXECUTE_SCRIPT).
- withParameters({
- 'script': 'return (' + function() {} +
- ').apply(null, arguments);',
- 'args': []
- }).
- andReturnSuccess(null).
- end();
-
- var driver = executor.createDriver();
- return driver.executeScript(function() {});
- });
-
- it('simpleArgumentConversion', function() {
- let executor = new FakeExecutor().
- expect(CName.EXECUTE_SCRIPT).
- withParameters({
- 'script': 'return 1;',
- 'args': ['abc', 123, true, [123, {'foo': 'bar'}]]
- }).
- andReturnSuccess(null).
- end();
-
- var driver = executor.createDriver();
- return driver.executeScript(
- 'return 1;', 'abc', 123, true, [123, {'foo': 'bar'}]);
- });
-
- it('webElementArgumentConversion', function() {
- var elementJson = WebElement.buildId('fefifofum');
-
- let executor = new FakeExecutor().
- expect(CName.EXECUTE_SCRIPT).
- withParameters({
- 'script': 'return 1;',
- 'args': [elementJson]
- }).
- andReturnSuccess(null).
- end();
-
- var driver = executor.createDriver();
- return driver.executeScript('return 1;',
- new WebElement(driver, 'fefifofum'));
- });
-
- it('webElementPromiseArgumentConversion', function() {
- var elementJson = WebElement.buildId('bar');
-
- let executor = new FakeExecutor().
- expect(CName.FIND_ELEMENT,
- {'using': 'css selector', 'value': '*[id="foo"]'}).
- andReturnSuccess(elementJson).
- expect(CName.EXECUTE_SCRIPT).
- withParameters({
- 'script': 'return 1;',
- 'args': [elementJson]
- }).
- andReturnSuccess(null).
- end();
-
- var driver = executor.createDriver();
- var element = driver.findElement(By.id('foo'));
- return driver.executeScript('return 1;', element);
- });
-
- it('argumentConversion', function() {
- var elementJson = WebElement.buildId('fefifofum');
-
- let executor = new FakeExecutor().
- expect(CName.EXECUTE_SCRIPT).
- withParameters({
- 'script': 'return 1;',
- 'args': ['abc', 123, true, elementJson, [123, {'foo': 'bar'}]]
- }).
- andReturnSuccess(null).
- end();
-
- var driver = executor.createDriver();
- var element = new WebElement(driver, 'fefifofum');
- return driver.executeScript('return 1;',
- 'abc', 123, true, element, [123, {'foo': 'bar'}]);
- });
-
- it('scriptReturnsAnError', function() {
- let executor = new FakeExecutor().
- expect(CName.EXECUTE_SCRIPT).
- withParameters({
- 'script': 'throw Error(arguments[0]);',
- 'args': ['bam']
- }).
- andReturnError(new StubError).
- end();
- var driver = executor.createDriver();
- return driver.executeScript('throw Error(arguments[0]);', 'bam').
- then(fail, assertIsStubError);
- });
-
- it('failsIfArgumentIsARejectedPromise', function() {
- let executor = new FakeExecutor();
-
- var arg = Promise.reject(new StubError);
- arg.catch(function() {}); // Suppress default handler.
-
- var driver = executor.createDriver();
- return driver.executeScript(function() {}, arg).
- then(fail, assertIsStubError);
- });
- });
-
- describe('executeAsyncScript', function() {
- it('failsIfArgumentIsARejectedPromise', function() {
- var arg = Promise.reject(new StubError);
- arg.catch(function() {}); // Suppress default handler.
-
- var driver = new FakeExecutor().createDriver();
- return driver.executeAsyncScript(function() {}, arg).
- then(fail, assertIsStubError);
- });
- });
-
- describe('findElement', function() {
- it('elementNotFound', function() {
- let executor = new FakeExecutor().
- expect(CName.FIND_ELEMENT,
- {using: 'css selector', value: '*[id="foo"]'}).
- andReturnError(new StubError).
- end();
-
- var driver = executor.createDriver();
- return driver.findElement(By.id('foo'))
- .then(assert.fail, assertIsStubError);
- });
-
- it('elementNotFoundInACallback', function() {
- let executor = new FakeExecutor().
- expect(CName.FIND_ELEMENT,
- {using: 'css selector', value: '*[id="foo"]'}).
- andReturnError(new StubError).
- end();
-
- var driver = executor.createDriver();
- return Promise.resolve()
- .then(_ => driver.findElement(By.id('foo')))
- .then(assert.fail, assertIsStubError);
- });
-
- it('elementFound', function() {
- let executor = new FakeExecutor().
- expect(CName.FIND_ELEMENT,
- {using: 'css selector', value: '*[id="foo"]'}).
- andReturnSuccess(WebElement.buildId('bar')).
- expect(CName.CLICK_ELEMENT, {'id': WebElement.buildId('bar')}).
- andReturnSuccess().
- end();
-
- var driver = executor.createDriver();
- var element = driver.findElement(By.id('foo'));
- element.click();
- return waitForIdle();
- });
-
- it('canUseElementInCallback', function() {
- let executor = new FakeExecutor().
- expect(CName.FIND_ELEMENT,
- {using: 'css selector', value: '*[id="foo"]'}).
- andReturnSuccess(WebElement.buildId('bar')).
- expect(CName.CLICK_ELEMENT, {'id': WebElement.buildId('bar')}).
- andReturnSuccess().
- end();
-
- var driver = executor.createDriver();
- driver.findElement(By.id('foo')).then(function(element) {
- element.click();
- });
- return waitForIdle();
- });
-
- it('byJs', function() {
- let executor = new FakeExecutor().
- expect(CName.EXECUTE_SCRIPT, {
- 'script': 'return document.body',
- 'args': []
- }).
- andReturnSuccess(WebElement.buildId('bar')).
- expect(CName.CLICK_ELEMENT, {'id': WebElement.buildId('bar')}).
- end();
-
- var driver = executor.createDriver();
- var element = driver.findElement(By.js('return document.body'));
- element.click(); // just to make sure
- return waitForIdle();
- });
-
- it('byJs_returnsNonWebElementValue', function() {
- let executor = new FakeExecutor().
- expect(CName.EXECUTE_SCRIPT, {'script': 'return 123', 'args': []}).
- andReturnSuccess(123).
- end();
-
- var driver = executor.createDriver();
- return driver.findElement(By.js('return 123'))
- .then(assert.fail, function(e) {
- assertIsInstance(TypeError, e);
- assert.equal(
- 'Custom locator did not return a WebElement', e.message);
- });
- });
-
- it('byJs_canPassArguments', function() {
- var script = 'return document.getElementsByTagName(arguments[0]);';
- let executor = new FakeExecutor().
- expect(CName.EXECUTE_SCRIPT, {
- 'script': script,
- 'args': ['div']
- }).
- andReturnSuccess(WebElement.buildId('one')).
- end();
- var driver = executor.createDriver();
- driver.findElement(By.js(script, 'div'));
- return waitForIdle();
- });
-
- it('customLocator', function() {
- let executor = new FakeExecutor().
- expect(CName.FIND_ELEMENTS, {'using': 'css selector', 'value': 'a'}).
- andReturnSuccess([
- WebElement.buildId('foo'),
- WebElement.buildId('bar')]).
- expect(CName.CLICK_ELEMENT, {'id': WebElement.buildId('foo')}).
- andReturnSuccess().
- end();
-
- var driver = executor.createDriver();
- var element = driver.findElement(function(d) {
- assert.equal(driver, d);
- return d.findElements(By.tagName('a'));
- });
- return element.click();
- });
-
- it('customLocatorThrowsIfresultIsNotAWebElement', function() {
- var driver = new FakeExecutor().createDriver();
- return driver.findElement(_ => 1)
- .then(assert.fail, function(e) {
- assertIsInstance(TypeError, e);
- assert.equal(
- 'Custom locator did not return a WebElement', e.message);
- });
- });
- });
-
- describe('findElements', function() {
- it('returnsMultipleElements', function() {
- var ids = ['foo', 'bar', 'baz'];
- let executor = new FakeExecutor().
- expect(CName.FIND_ELEMENTS, {'using':'css selector', 'value':'a'}).
- andReturnSuccess(ids.map(WebElement.buildId)).
- end();
-
- var driver = executor.createDriver();
- return driver.findElements(By.tagName('a'))
- .then(function(elements) {
- return promise.all(elements.map(function(e) {
- assert.ok(e instanceof WebElement);
- return e.getId();
- }));
- })
- .then((actual) => assert.deepEqual(ids, actual));
- });
-
- it('byJs', function() {
- var ids = ['foo', 'bar', 'baz'];
- let executor = new FakeExecutor().
- expect(CName.EXECUTE_SCRIPT, {
- 'script': 'return document.getElementsByTagName("div");',
- 'args': []
- }).
- andReturnSuccess(ids.map(WebElement.buildId)).
- end();
-
- var driver = executor.createDriver();
-
- return driver.
- findElements(By.js('return document.getElementsByTagName("div");')).
- then(function(elements) {
- return promise.all(elements.map(function(e) {
- assert.ok(e instanceof WebElement);
- return e.getId();
- }));
- }).
- then((actual) => assert.deepEqual(ids, actual));
- });
-
- it('byJs_filtersOutNonWebElementResponses', function() {
- var ids = ['foo', 'bar', 'baz'];
- var json = [
- WebElement.buildId(ids[0]),
- 123,
- 'a',
- false,
- WebElement.buildId(ids[1]),
- {'not a web element': 1},
- WebElement.buildId(ids[2])
- ];
- let executor = new FakeExecutor().
- expect(CName.EXECUTE_SCRIPT, {
- 'script': 'return document.getElementsByTagName("div");',
- 'args': []
- }).
- andReturnSuccess(json).
- end();
-
- var driver = executor.createDriver();
- driver.findElements(By.js('return document.getElementsByTagName("div");')).
- then(function(elements) {
- return promise.all(elements.map(function(e) {
- assert.ok(e instanceof WebElement);
- return e.getId();
- }));
- }).
- then((actual) => assert.deepEqual(ids, actual));
- return waitForIdle();
- });
-
- it('byJs_convertsSingleWebElementResponseToArray', function() {
- let executor = new FakeExecutor().
- expect(CName.EXECUTE_SCRIPT, {
- 'script': 'return document.getElementsByTagName("div");',
- 'args': []
- }).
- andReturnSuccess(WebElement.buildId('foo')).
- end();
-
- var driver = executor.createDriver();
- return driver.
- findElements(By.js('return document.getElementsByTagName("div");')).
- then(function(elements) {
- return promise.all(elements.map(function(e) {
- assert.ok(e instanceof WebElement);
- return e.getId();
- }));
- }).
- then((actual) => assert.deepEqual(['foo'], actual));
- });
-
- it('byJs_canPassScriptArguments', function() {
- var script = 'return document.getElementsByTagName(arguments[0]);';
- let executor = new FakeExecutor().
- expect(CName.EXECUTE_SCRIPT, {
- 'script': script,
- 'args': ['div']
- }).
- andReturnSuccess([
- WebElement.buildId('one'),
- WebElement.buildId('two')
- ]).
- end();
-
- var driver = executor.createDriver();
- return driver.findElements(By.js(script, 'div'))
- then(function(elements) {
- return promise.all(elements.map(function(e) {
- assert.ok(e instanceof WebElement);
- return e.getId();
- }));
- }).
- then((actual) => assert.deepEqual(['one', 'two'], actual));
- });
- });
-
- describe('sendKeys', function() {
- it('convertsVarArgsIntoStrings_simpleArgs', function() {
- let executor = new FakeExecutor().
- expect(CName.SEND_KEYS_TO_ELEMENT,
- {'id': WebElement.buildId('one'),
- 'value':'12abc3'.split('')}).
- andReturnSuccess().
- end();
-
- var driver = executor.createDriver();
- var element = new WebElement(driver, 'one');
- element.sendKeys(1, 2, 'abc', 3);
- return waitForIdle();
- });
-
- it('convertsVarArgsIntoStrings_promisedArgs', function() {
- let executor = new FakeExecutor().
- expect(CName.FIND_ELEMENT,
- {'using':'css selector', 'value':'*[id="foo"]'}).
- andReturnSuccess(WebElement.buildId('one')).
- expect(CName.SEND_KEYS_TO_ELEMENT,
- {'id':WebElement.buildId('one'),
- 'value':'abc123def'.split('')}).
- andReturnSuccess().
- end();
-
- var driver = executor.createDriver();
- var element = driver.findElement(By.id('foo'));
- return element.sendKeys(
- Promise.resolve('abc'),
- 123,
- Promise.resolve('def'));
- });
-
- it('sendKeysWithAFileDetector', function() {
- let executor = new FakeExecutor().
- expect(CName.FIND_ELEMENT,
- {'using':'css selector', 'value':'*[id="foo"]'}).
- andReturnSuccess(WebElement.buildId('one')).
- expect(CName.SEND_KEYS_TO_ELEMENT,
- {'id': WebElement.buildId('one'),
- 'value':'modified/path'.split('')}).
- andReturnSuccess().
- end();
-
- let driver = executor.createDriver();
- let handleFile = function(d, path) {
- assert.strictEqual(driver, d);
- assert.equal(path, 'original/path');
- return Promise.resolve('modified/path');
- };
- driver.setFileDetector({handleFile});
-
- return driver.findElement(By.id('foo')).sendKeys('original/', 'path');
- });
- });
-
- describe("switchTo()", function() {
- describe("window", function() {
- it('should return a resolved promise when the window is found', function() {
- let executor = new FakeExecutor().
- expect(CName.SWITCH_TO_WINDOW).
- withParameters({
- 'name': 'foo',
- 'handle': 'foo'
- }).
- andReturnSuccess().
- end();
-
- executor.createDriver().switchTo().window('foo');
- return waitForIdle();
- });
-
- it('should propagate exceptions', function() {
- let e = new error.NoSuchWindowError('window not found');
- let executor = new FakeExecutor().
- expect(CName.SWITCH_TO_WINDOW).
- withParameters({
- 'name': 'foo',
- 'handle': 'foo'
- }).
- andReturnError(e).
- end();
-
- return executor.createDriver()
- .switchTo().window('foo')
- .then(assert.fail, v => assert.strictEqual(v, e));
- });
- });
- });
-
- describe('elementEquality', function() {
- it('isReflexive', function() {
- var a = new WebElement(new FakeExecutor().createDriver(), 'foo');
- return WebElement.equals(a, a).then(assert.ok);
- });
-
- it('failsIfAnInputElementCouldNotBeFound', function() {
- let id = Promise.reject(new StubError);
-
- var driver = new FakeExecutor().createDriver();
- var a = new WebElement(driver, 'foo');
- var b = new WebElementPromise(driver, id);
-
- return WebElement.equals(a, b).then(fail, assertIsStubError);
- });
- });
-
- describe('waiting', function() {
- describe('supports custom wait functions', function() {
- it('waitSucceeds', function() {
- let executor = new FakeExecutor().
- expect(CName.FIND_ELEMENTS,
- {using: 'css selector', value: '*[id="foo"]'}).
- andReturnSuccess([]).
- times(2).
- expect(CName.FIND_ELEMENTS,
- {using: 'css selector', value: '*[id="foo"]'}).
- andReturnSuccess([WebElement.buildId('bar')]).
- end();
-
- var driver = executor.createDriver();
- driver.wait(function() {
- return driver.findElements(By.id('foo')).then(els => els.length > 0);
- }, 200);
- return waitForIdle();
- });
-
- it('waitTimesout_timeoutCaught', function() {
- let executor = new FakeExecutor().
- expect(CName.FIND_ELEMENTS,
- {using: 'css selector', value: '*[id="foo"]'}).
- andReturnSuccess([]).
- anyTimes().
- end();
-
- var driver = executor.createDriver();
- return driver.wait(function() {
- return driver.findElements(By.id('foo')).then(els => els.length > 0);
- }, 25).then(fail, function(e) {
- assert.equal('Wait timed out after ',
- e.message.substring(0, 'Wait timed out after '.length));
- });
- });
-
- enablePromiseManager(() => {
- it('waitTimesout_timeoutNotCaught', function() {
- let executor = new FakeExecutor().
- expect(CName.FIND_ELEMENTS,
- {using: 'css selector', value: '*[id="foo"]'}).
- andReturnSuccess([]).
- anyTimes().
- end();
-
- var driver = executor.createDriver();
- driver.wait(function() {
- return driver.findElements(By.id('foo')).then(els => els.length > 0);
- }, 25);
- return waitForAbort().then(function(e) {
- assert.equal('Wait timed out after ',
- e.message.substring(0, 'Wait timed out after '.length));
- });
- });
- });
- });
-
- describe('supports condition objects', function() {
- it('wait succeeds', function() {
- let executor = new FakeExecutor()
- .expect(CName.FIND_ELEMENTS,
- {using: 'css selector', value: '*[id="foo"]'})
- .andReturnSuccess([])
- .times(2)
- .expect(CName.FIND_ELEMENTS,
- {using: 'css selector', value: '*[id="foo"]'})
- .andReturnSuccess([WebElement.buildId('bar')])
- .end();
-
- let driver = executor.createDriver();
- return driver.wait(until.elementLocated(By.id('foo')), 200);
- });
-
- it('wait times out', function() {
- let executor = new FakeExecutor()
- .expect(CName.FIND_ELEMENTS,
- {using: 'css selector', value: '*[id="foo"]'})
- .andReturnSuccess([])
- .anyTimes()
- .end();
-
- let driver = executor.createDriver();
- return driver.wait(until.elementLocated(By.id('foo')), 5)
- .then(fail, err => assert.ok(err instanceof error.TimeoutError));
- });
- });
-
- describe('supports promise objects', function() {
- it('wait succeeds', function() {
- let promise = new Promise(resolve => {
- setTimeout(() => resolve(1), 10);
- });
-
- let driver = new FakeExecutor().createDriver();
- return driver.wait(promise, 200).then(v => assert.equal(v, 1));
- });
-
- it('wait times out', function() {
- let promise = new Promise(resolve => {/* never resolves */});
-
- let driver = new FakeExecutor().createDriver();
- return driver.wait(promise, 5)
- .then(fail, err => assert.ok(err instanceof error.TimeoutError));
- });
-
- it('wait fails if promise is rejected', function() {
- let err = Error('boom');
- let driver = new FakeExecutor().createDriver();
- return driver.wait(Promise.reject(err), 5)
- .then(fail, e => assert.strictEqual(e, err));
- });
- });
-
- it('fails if not supported condition type provided', function() {
- let driver = new FakeExecutor().createDriver();
- assert.throws(() => driver.wait({}, 5), TypeError);
- });
- });
-
- describe('alert handling', function() {
- it('alertResolvesWhenPromisedTextResolves', function() {
- let driver = new FakeExecutor().createDriver();
- let deferredText = defer();
-
- let alert = new AlertPromise(driver, deferredText.promise);
-
- deferredText.resolve(new Alert(driver, 'foo'));
- return alert.getText().then(text => assert.equal(text, 'foo'));
- });
-
- it('cannotSwitchToAlertThatIsNotPresent', function() {
- let e = new error.NoSuchAlertError;
- let executor = new FakeExecutor()
- .expect(CName.GET_ALERT_TEXT)
- .andReturnError(e)
- .end();
-
- return executor.createDriver()
- .switchTo().alert()
- .then(assert.fail, v => assert.strictEqual(v, e));
- });
-
- enablePromiseManager(() => {
- it('alertsBelongToSameFlowAsParentDriver', function() {
- let executor = new FakeExecutor()
- .expect(CName.GET_ALERT_TEXT).andReturnSuccess('hello')
- .end();
-
- var driver = executor.createDriver();
- var otherFlow = new promise.ControlFlow();
- otherFlow.execute(function() {
- driver.switchTo().alert().then(function() {
- assert.strictEqual(
- driver.controlFlow(), promise.controlFlow(),
- 'Alert should belong to the same flow as its parent driver');
- });
- });
-
- assert.notEqual(otherFlow, driver.controlFlow);
- return Promise.all([
- waitForIdle(otherFlow),
- waitForIdle(driver.controlFlow())
- ]);
- });
- });
-
- it('commandsFailIfAlertNotPresent', function() {
- let e = new error.NoSuchAlertError;
- let executor = new FakeExecutor()
- .expect(CName.GET_ALERT_TEXT)
- .andReturnError(e)
- .end();
-
- var driver = executor.createDriver();
- var alert = driver.switchTo().alert();
-
- var expectError = (v) => assert.strictEqual(v, e);
-
- return alert.getText()
- .then(fail, expectedError)
- .then(() => alert.accept())
- .then(fail, expectedError)
- .then(() => alert.dismiss())
- .then(fail, expectError)
- .then(() => alert.sendKeys('hi'))
- .then(fail, expectError);
- });
- });
-
- enablePromiseManager(() => {
- it('testWebElementsBelongToSameFlowAsParentDriver', function() {
- let executor = new FakeExecutor()
- .expect(CName.FIND_ELEMENT,
- {using: 'css selector', value: '*[id="foo"]'})
- .andReturnSuccess(WebElement.buildId('abc123'))
- .end();
-
- var driver = executor.createDriver();
- var otherFlow = new promise.ControlFlow();
- otherFlow.execute(function() {
- driver.findElement({id: 'foo'}).then(function() {
- assert.equal(driver.controlFlow(), promise.controlFlow());
- });
- });
-
- assert.notEqual(otherFlow, driver.controlFlow);
- return Promise.all([
- waitForIdle(otherFlow),
- waitForIdle(driver.controlFlow())
- ]);
- });
- });
-
- it('testFetchingLogs', function() {
- let executor = new FakeExecutor().
- expect(CName.GET_LOG, {'type': 'browser'}).
- andReturnSuccess([
- {'level': 'INFO', 'message': 'hello', 'timestamp': 1234},
- {'level': 'DEBUG', 'message': 'abc123', 'timestamp': 5678}
- ]).
- end();
-
- var driver = executor.createDriver();
- return driver.manage().logs().get('browser').then(function(entries) {
- assert.equal(2, entries.length);
-
- assert.ok(entries[0] instanceof logging.Entry);
- assert.equal(logging.Level.INFO.value, entries[0].level.value);
- assert.equal('hello', entries[0].message);
- assert.equal(1234, entries[0].timestamp);
-
- assert.ok(entries[1] instanceof logging.Entry);
- assert.equal(logging.Level.DEBUG.value, entries[1].level.value);
- assert.equal('abc123', entries[1].message);
- assert.equal(5678, entries[1].timestamp);
- });
- });
-
- it('testCommandsFailIfInitialSessionCreationFailed', function() {
- var session = Promise.reject(new StubError);
-
- var driver = new FakeExecutor().createDriver(session);
- var navigateResult = driver.get('some-url').then(fail, assertIsStubError);
- var quitResult = driver.quit().then(fail, assertIsStubError);
-
- return waitForIdle().then(function() {
- return promise.all(navigateResult, quitResult);
- });
- });
-
- it('testWebElementCommandsFailIfInitialDriverCreationFailed', function() {
- var session = Promise.reject(new StubError);
- var driver = new FakeExecutor().createDriver(session);
- return driver.findElement(By.id('foo')).click().
- then(fail, assertIsStubError);
- });
-
- it('testWebElementCommansFailIfElementCouldNotBeFound', function() {
- let e = new error.NoSuchElementError('Unable to find element');
- let executor = new FakeExecutor().
- expect(CName.FIND_ELEMENT,
- {using: 'css selector', value: '*[id="foo"]'}).
- andReturnError(e).
- end();
-
- var driver = executor.createDriver();
- return driver.findElement(By.id('foo')).click()
- .then(fail, v => assert.strictEqual(v, e));
- });
-
- it('testCannotFindChildElementsIfParentCouldNotBeFound', function() {
- let e = new error.NoSuchElementError('Unable to find element');
- let executor = new FakeExecutor().
- expect(CName.FIND_ELEMENT,
- {using: 'css selector', value: '*[id="foo"]'}).
- andReturnError(e).
- end();
-
- var driver = executor.createDriver();
- return driver.findElement(By.id('foo'))
- .findElement(By.id('bar'))
- .findElement(By.id('baz'))
- .then(fail, v => assert.strictEqual(v, e));
- });
-
- describe('actions()', function() {
- it('failsIfInitialDriverCreationFailed', function() {
- let session = Promise.reject(new StubError('no session for you'));
- let driver = new FakeExecutor().createDriver(session);
- driver.getSession().catch(function() {});
- return driver.
- actions().
- mouseDown().
- mouseUp().
- perform().
- catch(assertIsStubError);
- });
-
- describe('mouseMove', function() {
- it('noElement', function() {
- let executor = new FakeExecutor()
- .expect(CName.MOVE_TO, {'xoffset': 0, 'yoffset': 125})
- .andReturnSuccess()
- .end();
-
- return executor.createDriver().
- actions().
- mouseMove({x: 0, y: 125}).
- perform();
- });
-
- it('element', function() {
- let executor = new FakeExecutor()
- .expect(CName.FIND_ELEMENT,
- {using: 'css selector', value: '*[id="foo"]'})
- .andReturnSuccess(WebElement.buildId('abc123'))
- .expect(CName.MOVE_TO,
- {'element': 'abc123', 'xoffset': 0, 'yoffset': 125})
- .andReturnSuccess()
- .end();
-
- var driver = executor.createDriver();
- var element = driver.findElement(By.id('foo'));
- return driver.actions()
- .mouseMove(element, {x: 0, y: 125})
- .perform();
- });
- });
-
- it('supportsMouseDown', function() {
- let executor = new FakeExecutor()
- .expect(CName.MOUSE_DOWN, {'button': Button.LEFT})
- .andReturnSuccess()
- .end();
-
- return executor.createDriver().
- actions().
- mouseDown().
- perform();
- });
-
- it('testActionSequence', function() {
- let executor = new FakeExecutor()
- .expect(CName.FIND_ELEMENT,
- {using: 'css selector', value: '*[id="a"]'})
- .andReturnSuccess(WebElement.buildId('id1'))
- .expect(CName.FIND_ELEMENT,
- {using: 'css selector', value: '*[id="b"]'})
- .andReturnSuccess(WebElement.buildId('id2'))
- .expect(CName.SEND_KEYS_TO_ACTIVE_ELEMENT,
- {'value': [Key.SHIFT]})
- .andReturnSuccess()
- .expect(CName.MOVE_TO, {'element': 'id1'})
- .andReturnSuccess()
- .expect(CName.CLICK, {'button': Button.LEFT})
- .andReturnSuccess()
- .expect(CName.MOVE_TO, {'element': 'id2'})
- .andReturnSuccess()
- .expect(CName.CLICK, {'button': Button.LEFT})
- .andReturnSuccess()
- .end();
-
- var driver = executor.createDriver();
- var element1 = driver.findElement(By.id('a'));
- var element2 = driver.findElement(By.id('b'));
-
- return driver.actions()
- .keyDown(Key.SHIFT)
- .click(element1)
- .click(element2)
- .perform();
- });
- });
-
- describe('touchActions()', function() {
- it('failsIfInitialDriverCreationFailed', function() {
- let session = Promise.reject(new StubError);
- let driver = new FakeExecutor().createDriver(session);
- driver.getSession().catch(function() {});
- return driver.
- touchActions().
- scroll({x: 3, y: 4}).
- perform().
- catch(assertIsStubError);
- });
-
- it('testTouchActionSequence', function() {
- let executor = new FakeExecutor()
- .expect(CName.TOUCH_DOWN, {x: 1, y: 2}).andReturnSuccess()
- .expect(CName.TOUCH_MOVE, {x: 3, y: 4}).andReturnSuccess()
- .expect(CName.TOUCH_UP, {x: 5, y: 6}).andReturnSuccess()
- .end();
-
- var driver = executor.createDriver();
- return driver.touchActions()
- .tapAndHold({x: 1, y: 2})
- .move({x: 3, y: 4})
- .release({x: 5, y: 6})
- .perform();
- });
- });
-
- describe('manage()', function() {
- describe('setTimeouts()', function() {
- describe('throws if no timeouts are specified', function() {
- let driver;
- before(() => driver = new FakeExecutor().createDriver());
-
- it('; no arguments', function() {
- assert.throws(() => driver.manage().setTimeouts(), TypeError);
- });
-
- it('; ignores unrecognized timeout keys', function() {
- assert.throws(
- () => driver.manage().setTimeouts({foo: 123}), TypeError);
- });
-
- it('; ignores positional arguments', function() {
- assert.throws(
- () => driver.manage().setTimeouts(1234, 56), TypeError);
- });
- });
-
- describe('throws timeout is not a number, null, or undefined', () => {
- let driver;
- before(() => driver = new FakeExecutor().createDriver());
-
- function checkError(e) {
- return e instanceof TypeError
- && /expected "(script|pageLoad|implicit)" to be a number/.test(
- e.message);
- }
-
- it('script', function() {
- assert.throws(
- () => driver.manage().setTimeouts({script: 'abc'}),
- checkError);
- });
-
- it('pageLoad', function() {
- assert.throws(
- () => driver.manage().setTimeouts({pageLoad: 'abc'}),
- checkError);
- });
-
- it('implicit', function() {
- assert.throws(
- () => driver.manage().setTimeouts({implicit: 'abc'}),
- checkError);
- });
- });
-
- it('can set multiple timeouts', function() {
- let executor = new FakeExecutor()
- .expect(CName.SET_TIMEOUT, {script:1, pageLoad: 2, implicit: 3})
- .andReturnSuccess()
- .end();
- let driver = executor.createDriver();
- return driver.manage()
- .setTimeouts({script: 1, pageLoad: 2, implicit: 3});
- });
-
- it('falls back to legacy wire format if W3C version fails', () => {
- let executor = new FakeExecutor()
- .expect(CName.SET_TIMEOUT, {implicit: 3})
- .andReturnError(Error('oops'))
- .expect(CName.SET_TIMEOUT, {type: 'implicit', ms: 3})
- .andReturnSuccess()
- .end();
- let driver = executor.createDriver();
- return driver.manage().setTimeouts({implicit: 3});
- });
-
- describe('deprecated API calls setTimeouts()', function() {
- it('implicitlyWait()', function() {
- let executor = new FakeExecutor()
- .expect(CName.SET_TIMEOUT, {implicit: 3})
- .andReturnSuccess()
- .end();
- let driver = executor.createDriver();
- return driver.manage().timeouts().implicitlyWait(3);
- });
-
- it('setScriptTimeout()', function() {
- let executor = new FakeExecutor()
- .expect(CName.SET_TIMEOUT, {script: 3})
- .andReturnSuccess()
- .end();
- let driver = executor.createDriver();
- return driver.manage().timeouts().setScriptTimeout(3);
- });
-
- it('pageLoadTimeout()', function() {
- let executor = new FakeExecutor()
- .expect(CName.SET_TIMEOUT, {pageLoad: 3})
- .andReturnSuccess()
- .end();
- let driver = executor.createDriver();
- return driver.manage().timeouts().pageLoadTimeout(3);
- });
- });
- });
- });
-
- describe('generator support', function() {
- var driver;
-
- beforeEach(function() {
- driver = new WebDriver(
- new Session('test-session', {}),
- new ExplodingExecutor());
- });
-
- it('canUseGeneratorsWithWebDriverCall', function() {
- return driver.call(function* () {
- var x = yield Promise.resolve(1);
- var y = yield Promise.resolve(2);
- return x + y;
- }).then(function(value) {
- assert.deepEqual(3, value);
- });
- });
-
- it('canDefineScopeOnGeneratorCall', function() {
- return driver.call(function* () {
- var x = yield Promise.resolve(1);
- return this.name + x;
- }, {name: 'Bob'}).then(function(value) {
- assert.deepEqual('Bob1', value);
- });
- });
-
- it('canSpecifyArgsOnGeneratorCall', function() {
- return driver.call(function* (a, b) {
- var x = yield Promise.resolve(1);
- var y = yield Promise.resolve(2);
- return [x + y, a, b];
- }, null, 'abc', 123).then(function(value) {
- assert.deepEqual([3, 'abc', 123], value);
- });
- });
-
- it('canUseGeneratorWithWebDriverWait', function() {
- var values = [];
- return driver.wait(function* () {
- yield values.push(1);
- values.push(yield promise.delayed(10).then(function() {
- return 2;
- }));
- yield values.push(3);
- return values.length === 6;
- }, 250).then(function() {
- assert.deepEqual([1, 2, 3, 1, 2, 3], values);
- });
- });
-
- /**
- * @constructor
- * @implements {CommandExecutor}
- */
- function ExplodingExecutor() {}
-
-
- /** @override */
- ExplodingExecutor.prototype.execute = function(command, cb) {
- cb(Error('Unsupported operation'));
- };
- });
-
- describe('wire format', function() {
- const FAKE_DRIVER = new FakeExecutor().createDriver();
-
- describe('can serialize', function() {
- function runSerializeTest(input, want) {
- let executor = new FakeExecutor().
- expect(CName.NEW_SESSION).
- withParameters({'desiredCapabilities': want}).
- andReturnSuccess({'browserName': 'firefox'}).
- end();
- return WebDriver.createSession(executor, input)
- .getSession();
- }
-
- it('function as a string', function() {
- function foo() { return 'foo'; }
- return runSerializeTest(foo, '' + foo);
- });
-
- it('object with toJSON()', function() {
- return runSerializeTest(
- new Date(605728511546),
- '1989-03-12T17:55:11.546Z');
- });
-
- it('Session', function() {
- return runSerializeTest(new Session('foo', {}), 'foo');
- });
-
- it('Capabilities', function() {
- var prefs = new logging.Preferences();
- prefs.setLevel(logging.Type.BROWSER, logging.Level.DEBUG);
-
- var caps = Capabilities.chrome();
- caps.setLoggingPrefs(prefs);
-
- return runSerializeTest(
- caps,
- {
- 'browserName': 'chrome',
- 'loggingPrefs': {'browser': 'DEBUG'}
- });
- });
-
- it('WebElement', function() {
- return runSerializeTest(
- new WebElement(FAKE_DRIVER, 'fefifofum'),
- WebElement.buildId('fefifofum'));
- });
-
- it('WebElementPromise', function() {
- return runSerializeTest(
- new WebElementPromise(
- FAKE_DRIVER,
- Promise.resolve(new WebElement(FAKE_DRIVER, 'fefifofum'))),
- WebElement.buildId('fefifofum'));
- });
-
- describe('an array', function() {
- it('with Serializable', function() {
- return runSerializeTest([new Session('foo', {})], ['foo']);
- });
-
- it('with WebElement', function() {
- return runSerializeTest(
- [new WebElement(FAKE_DRIVER, 'fefifofum')],
- [WebElement.buildId('fefifofum')]);
- });
-
- it('with WebElementPromise', function() {
- return runSerializeTest(
- [new WebElementPromise(
- FAKE_DRIVER,
- Promise.resolve(new WebElement(FAKE_DRIVER, 'fefifofum')))],
- [WebElement.buildId('fefifofum')]);
- });
-
- it('complex array', function() {
- var expected = [
- 'abc', 123, true, WebElement.buildId('fefifofum'),
- [123, {'foo': 'bar'}]
- ];
-
- var element = new WebElement(FAKE_DRIVER, 'fefifofum');
- var input = ['abc', 123, true, element, [123, {'foo': 'bar'}]];
- return runSerializeTest(input, expected);
- });
-
- it('nested promises', function() {
- return runSerializeTest(
- ['abc', Promise.resolve([123, Promise.resolve(true)])],
- ['abc', [123, true]]);
- });
- });
-
- describe('an object', function() {
- it('literal', function() {
- var expected = {sessionId: 'foo'};
- return runSerializeTest({sessionId: 'foo'}, expected);
- });
-
- it('with sub-objects', function() {
- var expected = {sessionId: {value: 'foo'}};
- return runSerializeTest(
- {sessionId: {value: 'foo'}}, expected);
- });
-
- it('with values that have toJSON', function() {
- return runSerializeTest(
- {a: {b: new Date(605728511546)}},
- {a: {b: '1989-03-12T17:55:11.546Z'}});
- });
-
- it('with a Session', function() {
- return runSerializeTest(
- {a: new Session('foo', {})},
- {a: 'foo'});
- });
-
- it('nested', function() {
- var elementJson = WebElement.buildId('fefifofum');
- var expected = {
- 'script': 'return 1',
- 'args': ['abc', 123, true, elementJson, [123, {'foo': 'bar'}]],
- 'sessionId': 'foo'
- };
-
- var element = new WebElement(FAKE_DRIVER, 'fefifofum');
- var parameters = {
- 'script': 'return 1',
- 'args':['abc', 123, true, element, [123, {'foo': 'bar'}]],
- 'sessionId': new Session('foo', {})
- };
-
- return runSerializeTest(parameters, expected);
- });
- });
- });
-
- describe('can deserialize', function() {
- function runDeserializeTest(original, want) {
- let executor = new FakeExecutor()
- .expect(CName.GET_CURRENT_URL)
- .andReturnSuccess(original)
- .end();
- let driver = executor.createDriver();
- return driver.getCurrentUrl().then(function(got) {
- assert.deepEqual(got, want);
- });
- }
-
- it('primitives', function() {
- return Promise.all([
- runDeserializeTest(1, 1),
- runDeserializeTest('', ''),
- runDeserializeTest(true, true),
- runDeserializeTest(undefined, undefined),
- runDeserializeTest(null, null)
- ]);
- });
-
- it('simple object', function() {
- return runDeserializeTest(
- {sessionId: 'foo'},
- {sessionId: 'foo'});
- });
-
- it('nested object', function() {
- return runDeserializeTest(
- {'foo': {'bar': 123}},
- {'foo': {'bar': 123}});
- });
-
- it('array', function() {
- return runDeserializeTest(
- [{'foo': {'bar': 123}}],
- [{'foo': {'bar': 123}}]);
- });
-
- it('passes through function properties', function() {
- function bar() {}
- return runDeserializeTest(
- [{foo: {'bar': 123}, func: bar}],
- [{foo: {'bar': 123}, func: bar}]);
- });
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/logging_test.js b/node_modules/selenium-webdriver/test/logging_test.js
deleted file mode 100644
index 546879715..000000000
--- a/node_modules/selenium-webdriver/test/logging_test.js
+++ /dev/null
@@ -1,167 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var Browser = require('..').Browser,
- By = require('..').By,
- logging = require('..').logging,
- assert = require('../testing/assert'),
- test = require('../lib/test');
-
-test.suite(function(env) {
- // Logging API has numerous issues with PhantomJS:
- // - does not support adjusting log levels for type "browser".
- // - does not return proper log level for "browser" messages.
- // - does not delete logs after retrieval
- // Logging API is not supported in IE.
- // Logging API not supported in Marionette.
- // Tests depend on opening data URLs, which is broken in Safari (issue 7586)
- test.ignore(env.browsers(
- Browser.PHANTOM_JS, Browser.IE, Browser.SAFARI, Browser.FIREFOX)).
- describe('logging', function() {
- var driver;
-
- test.beforeEach(function() {
- driver = null;
- });
-
- test.afterEach(function*() {
- if (driver) {
- return driver.quit();
- }
- });
-
- test.it('can be disabled', function*() {
- var prefs = new logging.Preferences();
- prefs.setLevel(logging.Type.BROWSER, logging.Level.OFF);
-
- driver = yield env.builder()
- .setLoggingPrefs(prefs)
- .build();
-
- yield driver.get(dataUrl(
- '<!DOCTYPE html><script>',
- 'console.info("hello");',
- 'console.warn("this is a warning");',
- 'console.error("and this is an error");',
- '</script>'));
- return driver.manage().logs().get(logging.Type.BROWSER)
- .then(entries => assert(entries.length).equalTo(0));
- });
-
- // Firefox does not capture JS error console log messages.
- test.ignore(env.browsers(Browser.FIREFOX, 'legacy-firefox')).
- it('can be turned down', function*() {
- var prefs = new logging.Preferences();
- prefs.setLevel(logging.Type.BROWSER, logging.Level.SEVERE);
-
- driver = yield env.builder()
- .setLoggingPrefs(prefs)
- .build();
-
- yield driver.get(dataUrl(
- '<!DOCTYPE html><script>',
- 'console.info("hello");',
- 'console.warn("this is a warning");',
- 'console.error("and this is an error");',
- '</script>'));
- return driver.manage().logs().get(logging.Type.BROWSER)
- .then(function(entries) {
- assert(entries.length).equalTo(1);
- assert(entries[0].level.name).equalTo('SEVERE');
- assert(entries[0].message).matches(/.*\"?and this is an error\"?/);
- });
- });
-
- // Firefox does not capture JS error console log messages.
- test.ignore(env.browsers(Browser.FIREFOX, 'legacy-firefox')).
- it('can be made verbose', function*() {
- var prefs = new logging.Preferences();
- prefs.setLevel(logging.Type.BROWSER, logging.Level.DEBUG);
-
- driver = yield env.builder()
- .setLoggingPrefs(prefs)
- .build();
-
- yield driver.get(dataUrl(
- '<!DOCTYPE html><script>',
- 'console.debug("hello");',
- 'console.warn("this is a warning");',
- 'console.error("and this is an error");',
- '</script>'));
- return driver.manage().logs().get(logging.Type.BROWSER)
- .then(function(entries) {
- assert(entries.length).equalTo(3);
- assert(entries[0].level.name).equalTo('DEBUG');
- assert(entries[0].message).matches(/.*\"?hello\"?/);
-
- assert(entries[1].level.name).equalTo('WARNING');
- assert(entries[1].message).matches(/.*\"?this is a warning\"?/);
-
- assert(entries[2].level.name).equalTo('SEVERE');
- assert(entries[2].message).matches(/.*\"?and this is an error\"?/);
- });
- });
-
- // Firefox does not capture JS error console log messages.
- test.ignore(env.browsers(Browser.FIREFOX, 'legacy-firefox')).
- it('clears records after retrieval', function*() {
- var prefs = new logging.Preferences();
- prefs.setLevel(logging.Type.BROWSER, logging.Level.DEBUG);
-
- driver = yield env.builder()
- .setLoggingPrefs(prefs)
- .build();
-
- yield driver.get(dataUrl(
- '<!DOCTYPE html><script>',
- 'console.debug("hello");',
- 'console.warn("this is a warning");',
- 'console.error("and this is an error");',
- '</script>'));
- yield driver.manage().logs().get(logging.Type.BROWSER)
- .then(entries => assert(entries.length).equalTo(3));
- return driver.manage().logs().get(logging.Type.BROWSER)
- .then(entries => assert(entries.length).equalTo(0));
- });
-
- test.it('does not mix log types', function*() {
- var prefs = new logging.Preferences();
- prefs.setLevel(logging.Type.BROWSER, logging.Level.DEBUG);
- prefs.setLevel(logging.Type.DRIVER, logging.Level.SEVERE);
-
- driver = yield env.builder()
- .setLoggingPrefs(prefs)
- .build();
-
- yield driver.get(dataUrl(
- '<!DOCTYPE html><script>',
- 'console.debug("hello");',
- 'console.warn("this is a warning");',
- 'console.error("and this is an error");',
- '</script>'));
- return driver.manage().logs().get(logging.Type.DRIVER)
- .then(entries => assert(entries.length).equalTo(0));
- });
- });
-
- function dataUrl(var_args) {
- return 'data:text/html,'
- + Array.prototype.slice.call(arguments, 0).join('');
- }
-});
diff --git a/node_modules/selenium-webdriver/test/net/index_test.js b/node_modules/selenium-webdriver/test/net/index_test.js
deleted file mode 100644
index 88c52c063..000000000
--- a/node_modules/selenium-webdriver/test/net/index_test.js
+++ /dev/null
@@ -1,60 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var assert = require('assert');
-
-var net = require('../../net');
-
-describe('net.splitHostAndPort', function() {
- it('hostname with no port', function() {
- assert.deepEqual(
- net.splitHostAndPort('www.example.com'),
- {host: 'www.example.com', port: null});
- });
-
- it('hostname with port', function() {
- assert.deepEqual(
- net.splitHostAndPort('www.example.com:80'),
- {host: 'www.example.com', port: 80});
- });
-
- it('IPv4 with no port', function() {
- assert.deepEqual(
- net.splitHostAndPort('127.0.0.1'),
- {host: '127.0.0.1', port: null});
- });
-
- it('IPv4 with port', function() {
- assert.deepEqual(
- net.splitHostAndPort('127.0.0.1:1234'),
- {host: '127.0.0.1', port: 1234});
- });
-
- it('IPv6 with no port', function() {
- assert.deepEqual(
- net.splitHostAndPort('1234:0:1000:5768:1234:5678:90'),
- {host: '1234:0:1000:5768:1234:5678:90', port: null});
- });
-
- it('IPv6 with port', function() {
- assert.deepEqual(
- net.splitHostAndPort('[1234:0:1000:5768:1234:5678:90]:1234'),
- {host: '1234:0:1000:5768:1234:5678:90', port: 1234});
- });
-});
diff --git a/node_modules/selenium-webdriver/test/net/portprober_test.js b/node_modules/selenium-webdriver/test/net/portprober_test.js
deleted file mode 100644
index 668c4ae0e..000000000
--- a/node_modules/selenium-webdriver/test/net/portprober_test.js
+++ /dev/null
@@ -1,128 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const assert = require('assert');
-const net = require('net');
-
-const portprober = require('../../net/portprober');
-
-describe('isFree', function() {
-
- var server;
-
- beforeEach(function() {
- server = net.createServer(function(){});
- })
-
- afterEach(function(done) {
- if (!server) return done();
- server.close(function() {
- done();
- });
- });
-
- it('should work for INADDR_ANY', function(done) {
- server.listen(0, function() {
- var port = server.address().port;
- assertPortNotfree(port).then(function() {
- return new Promise(resolve => {
- server.close(function() {
- server = null;
- resolve(assertPortIsFree(port));
- });
- });
- }).then(function() { done(); }, done);
- });
- });
-
- it('should work for a specific host', function(done) {
- var host = '127.0.0.1';
- server.listen(0, host, function() {
- var port = server.address().port;
- assertPortNotfree(port, host).then(function() {
- return new Promise(resolve => {
- server.close(function() {
- server = null;
- resolve(assertPortIsFree(port, host));
- });
- });
- }).then(function() { done(); }, done);
- });
- });
-});
-
-describe('findFreePort', function() {
- var server;
-
- beforeEach(function() {
- server = net.createServer(function(){});
- })
-
- afterEach(function(done) {
- if (!server) return done();
- server.close(function() {
- done();
- });
- });
-
- it('should work for INADDR_ANY', function(done) {
- portprober.findFreePort().then(function(port) {
- server.listen(port, function() {
- assertPortNotfree(port).then(function() {
- return new Promise(resolve => {
- server.close(function() {
- server = null;
- resolve(assertPortIsFree(port));
- });
- });
- }).then(function() { done(); }, done);
- });
- });
- });
-
- it('should work for a specific host', function(done) {
- var host = '127.0.0.1';
- portprober.findFreePort(host).then(function(port) {
- server.listen(port, host, function() {
- assertPortNotfree(port, host).then(function() {
- return new Promise(resolve => {
- server.close(function() {
- server = null;
- resolve(assertPortIsFree(port, host));
- });
- });
- }).then(function() { done(); }, done);
- });
- });
- });
-});
-
-
-function assertPortIsFree(port, opt_host) {
- return portprober.isFree(port, opt_host).then(function(free) {
- assert.ok(free, 'port should be free');
- });
-}
-
-
-function assertPortNotfree(port, opt_host) {
- return portprober.isFree(port, opt_host).then(function(free) {
- assert.ok(!free, 'port should is not free');
- });
-}
diff --git a/node_modules/selenium-webdriver/test/page_loading_test.js b/node_modules/selenium-webdriver/test/page_loading_test.js
deleted file mode 100644
index 1f09db5b5..000000000
--- a/node_modules/selenium-webdriver/test/page_loading_test.js
+++ /dev/null
@@ -1,172 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var Browser = require('..').Browser,
- By = require('..').By,
- until = require('..').until,
- assert = require('../testing/assert'),
- error = require('../lib/error'),
- test = require('../lib/test'),
- Pages = test.Pages;
-
-
-test.suite(function(env) {
- var browsers = env.browsers;
-
- var driver;
- test.before(function*() {
- driver = yield env.builder().build();
- });
-
- test.beforeEach(function*() {
- if (!driver) {
- driver = yield env.builder().build();
- }
- });
-
- test.after(function() {
- if (driver) {
- return driver.quit();
- }
- });
-
- test.it('should wait for document to be loaded', function*() {
- yield driver.get(Pages.simpleTestPage);
- return assert(driver.getTitle()).equalTo('Hello WebDriver');
- });
-
- test.it('should follow redirects sent in the http response headers',
- function*() {
- yield driver.get(Pages.redirectPage);
- return assert(driver.getTitle()).equalTo('We Arrive Here');
- });
-
- test.ignore(browsers(Browser.SAFARI)).
- it('should follow meta redirects', function*() {
- yield driver.get(Pages.metaRedirectPage);
- return assert(driver.getTitle()).equalTo('We Arrive Here');
- });
-
- // Skip Firefox; see https://bugzilla.mozilla.org/show_bug.cgi?id=1280300
- test.ignore(browsers(Browser.FIREFOX)).
- it('should be able to get a fragment on the current page', function*() {
- yield driver.get(Pages.xhtmlTestPage);
- yield driver.get(Pages.xhtmlTestPage + '#text');
- yield driver.findElement(By.id('id1'));
- });
-
- test.ignore(browsers(Browser.IPAD, Browser.IPHONE)).
- it('should wait for all frames to load in a frameset', function*() {
- yield driver.get(Pages.framesetPage);
- yield driver.switchTo().frame(0);
-
- let txt = yield driver.findElement(By.css('span#pageNumber')).getText();
- assert(txt.trim()).equalTo('1');
-
- yield driver.switchTo().defaultContent();
- yield driver.switchTo().frame(1);
- txt = yield driver.findElement(By.css('span#pageNumber')).getText();
-
- assert(txt.trim()).equalTo('2');
- });
-
- test.ignore(browsers(Browser.SAFARI)).
- it('should be able to navigate back in browser history', function*() {
- yield driver.get(Pages.formPage);
-
- yield driver.findElement(By.id('imageButton')).click();
- yield driver.wait(until.titleIs('We Arrive Here'), 2500);
-
- yield driver.navigate().back();
- yield driver.wait(until.titleIs('We Leave From Here'), 2500);
- });
-
- test.ignore(browsers(Browser.SAFARI)).
- it('should be able to navigate back in presence of iframes', function*() {
- yield driver.get(Pages.xhtmlTestPage);
-
- yield driver.findElement(By.name('sameWindow')).click();
- yield driver.wait(until.titleIs('This page has iframes'), 2500);
-
- yield driver.navigate().back();
- yield driver.wait(until.titleIs('XHTML Test Page'), 2500);
- });
-
- test.ignore(browsers(Browser.SAFARI)).
- it('should be able to navigate forwards in browser history', function*() {
- yield driver.get(Pages.formPage);
-
- yield driver.findElement(By.id('imageButton')).click();
- yield driver.wait(until.titleIs('We Arrive Here'), 5000);
-
- yield driver.navigate().back();
- yield driver.wait(until.titleIs('We Leave From Here'), 5000);
-
- yield driver.navigate().forward();
- yield driver.wait(until.titleIs('We Arrive Here'), 5000);
- });
-
- // PhantomJS 2.0 does not properly reload pages on refresh.
- test.ignore(browsers(Browser.PHANTOM_JS)).
- it('should be able to refresh a page', function*() {
- yield driver.get(Pages.xhtmlTestPage);
-
- yield driver.navigate().refresh();
-
- yield assert(driver.getTitle()).equalTo('XHTML Test Page');
- });
-
- test.it('should return title of page if set', function*() {
- yield driver.get(Pages.xhtmlTestPage);
- yield assert(driver.getTitle()).equalTo('XHTML Test Page');
-
- yield driver.get(Pages.simpleTestPage);
- yield assert(driver.getTitle()).equalTo('Hello WebDriver');
- });
-
- describe('timeouts', function() {
- test.afterEach(function() {
- let nullDriver = () => driver = null;
- if (driver) {
- return driver.quit().then(nullDriver, nullDriver);
- }
- });
-
- // Only implemented in Firefox.
- test.ignore(browsers(
- Browser.CHROME,
- Browser.IE,
- Browser.IPAD,
- Browser.IPHONE,
- Browser.OPERA,
- Browser.PHANTOM_JS)).
- it('should timeout if page load timeout is set', function*() {
- yield driver.manage().timeouts().pageLoadTimeout(1);
- return driver.get(Pages.sleepingPage + '?time=3')
- .then(function() {
- throw Error('Should have timed out on page load');
- }, function(e) {
- if (!(e instanceof error.ScriptTimeoutError)
- && !(e instanceof error.TimeoutError)) {
- throw Error('Unexpected error response: ' + e);
- }
- });
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/phantomjs/execute_phantomjs_test.js b/node_modules/selenium-webdriver/test/phantomjs/execute_phantomjs_test.js
deleted file mode 100644
index 8b7a99f8d..000000000
--- a/node_modules/selenium-webdriver/test/phantomjs/execute_phantomjs_test.js
+++ /dev/null
@@ -1,59 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var assert = require('assert');
-var path = require('path');
-var test = require('../../lib/test');
-
-test.suite(function(env) {
- var driver;
-
- test.before(function*() {
- driver = yield env.builder().build();
- });
-
- test.after(function() {
- return driver.quit();
- });
-
- var testPageUrl =
- 'data:text/html,<html><h1>' + path.basename(__filename) + '</h1></html>';
-
- test.beforeEach(function() {
- return driver.get(testPageUrl);
- });
-
- describe('phantomjs.Driver', function() {
- describe('#executePhantomJS()', function() {
-
- test.it('can execute scripts using PhantomJS API', function*() {
- let url = yield driver.executePhantomJS('return this.url;');
- assert.equal(testPageUrl, decodeURIComponent(url));
- });
-
- test.it('can execute scripts as functions', function*() {
- let result = yield driver.executePhantomJS(function(a, b) {
- return a + b;
- }, 1, 2);
-
- assert.equal(3, result);
- });
- });
- });
-}, {browsers: ['phantomjs']});
diff --git a/node_modules/selenium-webdriver/test/proxy_test.js b/node_modules/selenium-webdriver/test/proxy_test.js
deleted file mode 100644
index 442ff606e..000000000
--- a/node_modules/selenium-webdriver/test/proxy_test.js
+++ /dev/null
@@ -1,180 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var http = require('http'),
- url = require('url');
-
-var Browser = require('..').Browser,
- promise = require('..').promise,
- firefox = require('../firefox'),
- proxy = require('../proxy'),
- assert = require('../testing/assert'),
- test = require('../lib/test'),
- Server = require('../lib/test/httpserver').Server,
- Pages = test.Pages;
-
-test.suite(function(env) {
- function writeResponse(res, body, encoding, contentType) {
- res.writeHead(200, {
- 'Content-Length': Buffer.byteLength(body, encoding),
- 'Content-Type': contentType
- });
- res.end(body);
- }
-
- function writePacFile(res) {
- writeResponse(res, [
- 'function FindProxyForURL(url, host) {',
- ' if (shExpMatch(url, "' + goodbyeServer.url('*') + '")) {',
- ' return "DIRECT";',
- ' }',
- ' return "PROXY ' + proxyServer.host() + '";',
- '}'
- ].join('\n'), 'ascii', 'application/x-javascript-config');
- }
-
- var proxyServer = new Server(function(req, res) {
- var pathname = url.parse(req.url).pathname;
- if (pathname === '/proxy.pac') {
- return writePacFile(res);
- }
-
- writeResponse(res, [
- '<!DOCTYPE html>',
- '<title>Proxy page</title>',
- '<h3>This is the proxy landing page</h3>'
- ].join(''), 'utf8', 'text/html; charset=UTF-8');
- });
-
- var helloServer = new Server(function(req, res) {
- writeResponse(res, [
- '<!DOCTYPE html>',
- '<title>Hello</title>',
- '<h3>Hello, world!</h3>'
- ].join(''), 'utf8', 'text/html; charset=UTF-8');
- });
-
- var goodbyeServer = new Server(function(req, res) {
- writeResponse(res, [
- '<!DOCTYPE html>',
- '<title>Goodbye</title>',
- '<h3>Goodbye, world!</h3>'
- ].join(''), 'utf8', 'text/html; charset=UTF-8');
- });
-
- // Cannot pass start directly to mocha's before, as mocha will interpret the optional
- // port parameter as an async callback parameter.
- function mkStartFunc(server) {
- return function() {
- return server.start();
- };
- }
-
- test.before(mkStartFunc(proxyServer));
- test.before(mkStartFunc(helloServer));
- test.before(mkStartFunc(goodbyeServer));
-
- test.after(proxyServer.stop.bind(proxyServer));
- test.after(helloServer.stop.bind(helloServer));
- test.after(goodbyeServer.stop.bind(goodbyeServer));
-
- var driver;
- test.beforeEach(function() { driver = null; });
- test.afterEach(function() { return driver && driver.quit(); });
-
- function createDriver(proxy) {
- // For Firefox we need to explicitly enable proxies for localhost by
- // clearing the network.proxy.no_proxies_on preference.
- let profile = new firefox.Profile();
- profile.setPreference('network.proxy.no_proxies_on', '');
-
- return driver = env.builder()
- .setFirefoxOptions(new firefox.Options().setProfile(profile))
- .setProxy(proxy)
- .build();
- }
-
- // Proxy support not implemented.
- test.ignore(env.browsers(Browser.IE, Browser.OPERA, Browser.SAFARI)).
- describe('manual proxy settings', function() {
- // phantomjs 1.9.1 in webdriver mode does not appear to respect proxy
- // settings.
- test.ignore(env.browsers(Browser.PHANTOM_JS)).
- it('can configure HTTP proxy host', function*() {
- yield createDriver(proxy.manual({
- http: proxyServer.host()
- }));
-
- yield driver.get(helloServer.url());
- yield assert(driver.getTitle()).equalTo('Proxy page');
- yield assert(driver.findElement({tagName: 'h3'}).getText()).
- equalTo('This is the proxy landing page');
- });
-
- // PhantomJS does not support bypassing the proxy for individual hosts.
- // geckodriver does not support the bypass option, this must be configured
- // through profile preferences.
- test.ignore(env.browsers(
- Browser.FIREFOX,
- 'legacy-' + Browser.FIREFOX,
- Browser.PHANTOM_JS)).
- it('can bypass proxy for specific hosts', function*() {
- yield createDriver(proxy.manual({
- http: proxyServer.host(),
- bypass: helloServer.host()
- }));
-
- yield driver.get(helloServer.url());
- yield assert(driver.getTitle()).equalTo('Hello');
- yield assert(driver.findElement({tagName: 'h3'}).getText()).
- equalTo('Hello, world!');
-
- yield driver.get(goodbyeServer.url());
- yield assert(driver.getTitle()).equalTo('Proxy page');
- yield assert(driver.findElement({tagName: 'h3'}).getText()).
- equalTo('This is the proxy landing page');
- });
-
- // TODO: test ftp and https proxies.
- });
-
- // PhantomJS does not support PAC file proxy configuration.
- // Safari does not support proxies.
- test.ignore(env.browsers(
- Browser.IE, Browser.OPERA, Browser.PHANTOM_JS, Browser.SAFARI)).
- describe('pac proxy settings', function() {
- test.it('can configure proxy through PAC file', function*() {
- yield createDriver(proxy.pac(proxyServer.url('/proxy.pac')));
-
- yield driver.get(helloServer.url());
- yield assert(driver.getTitle()).equalTo('Proxy page');
- yield assert(driver.findElement({tagName: 'h3'}).getText()).
- equalTo('This is the proxy landing page');
-
- yield driver.get(goodbyeServer.url());
- yield assert(driver.getTitle()).equalTo('Goodbye');
- yield assert(driver.findElement({tagName: 'h3'}).getText()).
- equalTo('Goodbye, world!');
- });
- });
-
- // TODO: figure out how to test direct and system proxy settings.
- describe.skip('direct proxy settings', function() {});
- describe.skip('system proxy settings', function() {});
-});
diff --git a/node_modules/selenium-webdriver/test/rect_test.js b/node_modules/selenium-webdriver/test/rect_test.js
deleted file mode 100644
index e5ea36525..000000000
--- a/node_modules/selenium-webdriver/test/rect_test.js
+++ /dev/null
@@ -1,60 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const assert = require('assert');
-
-const {By} = require('..');
-const test = require('../lib/test');
-
-test.suite(function(env) {
- describe('rect commands', function() {
- let driver;
- let el;
-
- test.before(function*() {
- driver = yield env.builder().build();
- yield driver.get(
- 'data:text/html,<!DOCTYPE html><style>'
- + '*{padding:0; margin:0}'
- + 'div{position: absolute; top: 50px; left: 50px;'
- + 'height: 50px;width:50px;background: green;}'
- + '</style><div>Hello</div>');
- el = yield driver.findElement(By.css('div'));
- });
-
- after(function() {
- if (driver) {
- return driver.quit();
- }
- });
-
- test.it('WebElement.getLocation()', function*() {
- let location = yield el.getLocation();
- assert.equal(location.x, 50);
- assert.equal(location.y, 50);
- });
-
- test.it('WebElement.getSize()', function*() {
- let size = yield el.getSize();
- assert.equal(size.width, 50);
- assert.equal(size.height, 50);
- });
-
- });
-});
diff --git a/node_modules/selenium-webdriver/test/remote_test.js b/node_modules/selenium-webdriver/test/remote_test.js
deleted file mode 100644
index 9b2b2eb73..000000000
--- a/node_modules/selenium-webdriver/test/remote_test.js
+++ /dev/null
@@ -1,117 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var assert = require('assert'),
- fs = require('fs'),
- path = require('path');
-
-var promise = require('../').promise,
- io = require('../io'),
- cmd = require('../lib/command'),
- remote = require('../remote');
-
-const {enablePromiseManager} = require('../lib/test/promise');
-
-describe('DriverService', function() {
- describe('start()', function() {
- var service;
-
- beforeEach(function() {
- service = new remote.DriverService(process.execPath, {
- port: 1234,
- args: ['-e', 'process.exit(1)']
- });
- });
-
- afterEach(function() {
- return service.kill();
- });
-
- it('fails if child-process dies', function() {
- this.timeout(1000);
- return service.start(500).then(expectFailure, verifyFailure);
- });
-
- enablePromiseManager(function() {
- describe(
- 'failures propagate through control flow if child-process dies',
- function() {
- it('', function() {
- this.timeout(1000);
-
- return promise.controlFlow().execute(function() {
- promise.controlFlow().execute(function() {
- return service.start(500);
- });
- }).then(expectFailure, verifyFailure);
- });
- });
- });
-
- function verifyFailure(e) {
- assert.ok(!(e instanceof promise.CancellationError));
- assert.equal('Server terminated early with status 1', e.message);
- }
-
- function expectFailure() {
- throw Error('expected to fail');
- }
- });
-});
-
-describe('FileDetector', function() {
- class ExplodingDriver {
- schedule() {
- throw Error('unexpected call');
- }
- }
-
- it('returns the original path if the file does not exist', function() {
- return io.tmpDir(dir => {
- let theFile = path.join(dir, 'not-there');
- return (new remote.FileDetector)
- .handleFile(new ExplodingDriver, theFile)
- .then(f => assert.equal(f, theFile));
- });
- });
-
- it('returns the original path if it is a directory', function() {
- return io.tmpDir(dir => {
- return (new remote.FileDetector)
- .handleFile(new ExplodingDriver, dir)
- .then(f => assert.equal(f, dir));
- });
- });
-
- it('attempts to upload valid files', function() {
- return io.tmpFile(theFile => {
- return (new remote.FileDetector)
- .handleFile(
- new (class FakeDriver {
- schedule(command) {
- assert.equal(command.getName(), cmd.Name.UPLOAD_FILE);
- assert.equal(typeof command.getParameters()['file'], 'string');
- return Promise.resolve('success!');
- }
- }),
- theFile)
- .then(f => assert.equal(f, 'success!'));
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/safari_test.js b/node_modules/selenium-webdriver/test/safari_test.js
deleted file mode 100644
index 6032b865d..000000000
--- a/node_modules/selenium-webdriver/test/safari_test.js
+++ /dev/null
@@ -1,108 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const webdriver = require('..'),
- proxy = require('../proxy'),
- safari = require('../safari'),
- assert = require('../testing/assert'),
- test = require('../lib/test');
-
-
-describe('safari.Options', function() {
- describe('fromCapabilities', function() {
- it('returns a new Options instance if none were defined', function() {
- let options = safari.Options.fromCapabilities(
- new webdriver.Capabilities());
- assert(options).instanceOf(safari.Options);
- });
-
- it('returns the options instance if present', function() {
- let options = new safari.Options().setCleanSession(true),
- caps = options.toCapabilities();
- assert(safari.Options.fromCapabilities(caps)).equalTo(options);
- });
-
- it('extracts supported WebDriver capabilities', function() {
- let proxyPrefs = proxy.direct(),
- logPrefs = {},
- caps = webdriver.Capabilities.chrome()
- .set(webdriver.Capability.PROXY, proxyPrefs)
- .set(webdriver.Capability.LOGGING_PREFS, logPrefs);
-
- let options = safari.Options.fromCapabilities(caps);
- assert(options.proxy_).equalTo(proxyPrefs);
- assert(options.logPrefs_).equalTo(logPrefs);
- });
- });
-
- describe('toCapabilities', function() {
- let options;
-
- before(function() {
- options = new safari.Options()
- .setCleanSession(true);
- });
-
- it('returns a new capabilities object if one is not provided', function() {
- let caps = options.toCapabilities();
- assert(caps).instanceOf(webdriver.Capabilities);
- assert(caps.get('browserName')).equalTo('safari');
- assert(caps.get('safari.options')).equalTo(options);
- });
-
- it('adds to input capabilities object', function() {
- let caps = webdriver.Capabilities.safari();
- assert(options.toCapabilities(caps)).equalTo(caps);
- assert(caps.get('safari.options')).equalTo(options);
- });
-
- it('sets generic driver capabilities', function() {
- let proxyPrefs = proxy.direct(),
- loggingPrefs = {};
-
- options
- .setLoggingPrefs(loggingPrefs)
- .setProxy(proxyPrefs);
-
- let caps = options.toCapabilities();
- assert(caps.get('proxy')).equalTo(proxyPrefs);
- assert(caps.get('loggingPrefs')).equalTo(loggingPrefs);
- });
- });
-});
-
-test.suite(function(env) {
- describe('safaridriver', function() {
- let service;
-
- afterEach(function() {
- if (service) {
- return service.kill();
- }
- });
-
- it('can start safaridriver', function() {
- service = new safari.ServiceBuilder().build();
-
- return service.start().then(function(url) {
- assert(url).matches(/127\.0\.0\.1/);
- });
- });
- });
-}, {browsers: ['safari']});
diff --git a/node_modules/selenium-webdriver/test/session_test.js b/node_modules/selenium-webdriver/test/session_test.js
deleted file mode 100644
index 546cd7fe9..000000000
--- a/node_modules/selenium-webdriver/test/session_test.js
+++ /dev/null
@@ -1,54 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var WebDriver = require('..').WebDriver,
- assert = require('../testing/assert'),
- test = require('../lib/test'),
- Pages = test.Pages;
-
-
-test.suite(function(env) {
- var browsers = env.browsers;
-
- var driver;
- test.before(function*() {
- driver = yield env.builder().build();
- });
-
- test.after(function() {
- return driver.quit();
- });
-
- test.it('can connect to an existing session', function*() {
- yield driver.get(Pages.simpleTestPage);
- yield assert(driver.getTitle()).equalTo('Hello WebDriver');
-
- return driver.getSession().then(session1 => {
- let driver2 = WebDriver.attachToSession(
- driver.getExecutor(),
- session1.getId());
-
- return assert(driver2.getTitle()).equalTo('Hello WebDriver')
- .then(_ => {
- let session2Id = driver2.getSession().then(s => s.getId());
- return assert(session2Id).equalTo(session1.getId());
- });
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/stale_element_test.js b/node_modules/selenium-webdriver/test/stale_element_test.js
deleted file mode 100644
index d00b5d440..000000000
--- a/node_modules/selenium-webdriver/test/stale_element_test.js
+++ /dev/null
@@ -1,63 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var fail = require('assert').fail;
-
-var Browser = require('..').Browser,
- By = require('..').By,
- error = require('..').error,
- until = require('..').until,
- assert = require('../testing/assert'),
- test = require('../lib/test'),
- Pages = test.Pages;
-
-
-test.suite(function(env) {
- var driver;
- test.before(function*() { driver = yield env.builder().build(); });
- test.after(function() { return driver.quit(); });
-
- // Element never goes stale in Safari.
- test.ignore(env.browsers(Browser.SAFARI)).
- it(
- 'dynamically removing elements from the DOM trigger a ' +
- 'StaleElementReferenceError',
- function*() {
- yield driver.get(Pages.javascriptPage);
-
- var toBeDeleted = yield driver.findElement(By.id('deleted'));
- yield assert(toBeDeleted.getTagName()).isEqualTo('p');
-
- yield driver.findElement(By.id('delete')).click();
- yield driver.wait(until.stalenessOf(toBeDeleted), 5000);
- });
-
- test.it('an element found in a different frame is stale', function*() {
- yield driver.get(Pages.missedJsReferencePage);
-
- var frame = yield driver.findElement(By.css('iframe[name="inner"]'));
- yield driver.switchTo().frame(frame);
-
- var el = yield driver.findElement(By.id('oneline'));
- yield driver.switchTo().defaultContent();
- return el.getText().then(fail, function(e) {
- assert(e).instanceOf(error.StaleElementReferenceError);
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/tag_name_test.js b/node_modules/selenium-webdriver/test/tag_name_test.js
deleted file mode 100644
index b934e6bb3..000000000
--- a/node_modules/selenium-webdriver/test/tag_name_test.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var By = require('..').By,
- assert = require('../testing/assert'),
- test = require('../lib/test');
-
-
-test.suite(function(env) {
- var driver;
- test.after(function() { return driver.quit(); });
-
- test.it('should return lower case tag name', function*() {
- driver = yield env.builder().build();
- yield driver.get(test.Pages.formPage);
-
- let el = yield driver.findElement(By.id('cheese'));
- return assert(el.getTagName()).equalTo('input');
- });
-});
diff --git a/node_modules/selenium-webdriver/test/testing/assert_test.js b/node_modules/selenium-webdriver/test/testing/assert_test.js
deleted file mode 100644
index eaced8bf1..000000000
--- a/node_modules/selenium-webdriver/test/testing/assert_test.js
+++ /dev/null
@@ -1,373 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const assert = require('../../testing/assert');
-
-const AssertionError = require('assert').AssertionError;
-const assertTrue = require('assert').ok;
-const assertEqual = require('assert').equal;
-const assertThrows = require('assert').throws;
-const fail = require('assert').fail;
-
-
-describe('assert', function() {
- describe('atLeast', function() {
- it('compares subject >= value', function() {
- assert(1).atLeast(0);
- assert(1).atLeast(1);
- assertThrows(() => assert(1).atLeast(2));
- });
-
- it('accepts failure message', function() {
- assertThrows(
- () => assert(1).atLeast(2, 'hi there!'),
- (error) => error.message.indexOf('hi there') != -1);
- });
-
- it('fails if given a non-numeric subject', function() {
- assertThrows(() => assert('a').atLeast(1));
- });
-
- it('fails if given a non-numeric bound', function() {
- assertThrows(() => assert(1).atLeast('a'));
- });
-
- it('waits for promised subject', function() {
- return assert(Promise.resolve(123)).atLeast(100);
- });
-
- it('waits for promised subject (with failure)', function() {
- return assert(Promise.resolve(100))
- .atLeast(123)
- .then(() => fail('should have failed'), function(e) {
- assertInstanceOf(AssertionError, e);
- assertEqual('100 >= 123', e.message);
- });
- });
- });
-
- describe('atMost', function() {
- it('compares subject <= value', function() {
- assertThrows(() => assert(1).atMost(0));
- assert(1).atMost(1);
- assert(1).atMost(2);
- });
-
- it('accepts failure message', function() {
- assertThrows(
- () => assert(1).atMost(0, 'hi there!'),
- (error) => error.message.indexOf('hi there!') != -1);
- });
-
- it('fails if given a non-numeric subject', function() {
- assertThrows(() => assert(1).atMost('a'));
- });
-
- it('fails if given a non-numeric bound', function() {
- assertThrows(() => assert('a').atMost(1));
- });
-
- it('waits for promised subject', function() {
- return assert(Promise.resolve(100)).atMost(123);
- });
-
- it('waits for promised subject (with failure)', function() {
- return assert(Promise.resolve(123))
- .atMost(100)
- .then(() => fail('should have failed'), function(e) {
- assertInstanceOf(AssertionError, e);
- assertEqual('123 <= 100', e.message);
- });
- });
- });
-
- describe('greaterThan', function() {
- it('compares subject > value', function() {
- assertThrows(() => assert(1).greaterThan(1));
- assertThrows(() => assert(1).greaterThan(2));
- assert(2).greaterThan(1);
- });
-
- it('accepts failure message', function() {
- assertThrows(
- () => assert(0).greaterThan(1, 'hi there!'),
- (error) => error.message.indexOf('hi there!') != -1);
- });
-
- it('fails if given a non-numeric subject', function() {
- assertThrows(() => assert('a').atMost(1));
- });
-
- it('fails if given a non-numeric bound', function() {
- assertThrows(() => assert(1).atMost('a'));
- });
-
- it('waits for promised subject', function() {
- return assert(Promise.resolve(123)).greaterThan(100);
- });
-
- it('waits for promised subject (with failure)', function() {
- return assert(Promise.resolve(100))
- .greaterThan(123)
- .then(() => fail('should have failed'), function(e) {
- assertInstanceOf(AssertionError, e);
- assertEqual('100 > 123', e.message);
- });
- });
- });
-
- describe('lessThan', function() {
- it('compares subject < value', function() {
- assertThrows(() => assert(1).lessThan(0));
- assertThrows(() => assert(1).lessThan(1));
- assert(1).lessThan(2);
- });
-
- it('accepts failure message', function() {
- assertThrows(
- () => assert(1).lessThan(0, 'hi there!'),
- (error) => error.message.indexOf('hi there!') != -1);
- });
-
- it('fails if given a non-numeric subject', function() {
- assertThrows(() => assert('a').lessThan(1));
- });
-
- it('fails if given a non-numeric bound', function() {
- assertThrows(() => assert(1).lessThan('a'));
- });
-
- it('waits for promised subject', function() {
- return assert(Promise.resolve(100)).lessThan(123);
- });
-
- it('waits for promised subject (with failure)', function() {
- return assert(Promise.resolve(123))
- .lessThan(100)
- .then(() => fail('should have failed'), function(e) {
- assertInstanceOf(AssertionError, e);
- assertEqual('123 < 100', e.message);
- });
- });
- });
-
- describe('closeTo', function() {
- it('accepts values within epislon of target', function() {
- assert(123).closeTo(123, 0);
- assert(123).closeTo(124, 1);
- assert(125).closeTo(124, 1);
-
- assertThrows(() => assert(123).closeTo(125, .1));
- assertThrows(() => assert(1./3).closeTo(.8, .01));
- });
-
- it('waits for promised values', function() {
- let p = new Promise(resolve => setTimeout(() => resolve(123), 10));
- return assert(p).closeTo(124, 1);
- });
- });
-
- describe('instanceOf', function() {
- it('works with direct instances', function() {
- assert(Error('foo')).instanceOf(Error);
- });
-
- it('works with sub-types', function() {
- assert(TypeError('foo')).instanceOf(Error);
- });
-
- it('parent types are not instances of sub-types', function() {
- assertThrows(() => assert(Error('foo')).instanceOf(TypeError));
- });
- });
-
- describe('isNull', function() {
- it('normal case', function() {
- assert(null).isNull();
- assertThrows(() => assert(1).isNull());
- });
-
- it('handles promised values', function() {
- let p = new Promise(function(f) {
- setTimeout(() => f(null), 10);
- });
- return assert(p).isNull();
- });
-
- it('does not match on undefined', function() {
- assertThrows(() => assert(void(0)).isNull());
- })
- });
-
- describe('isUndefined', function() {
- it('normal case', function() {
- assert(void(0)).isUndefined();
- assertThrows(() => assert(1).isUndefined());
- });
-
- it('handles promised values', function() {
- let p = new Promise(function(f) {
- setTimeout(() => f(void(0)), 10);
- });
- return assert(p).isUndefined();
- });
-
- it('does not match on null', function() {
- assertThrows(() => assert(null).isUndefined());
- })
- });
-
- describe('contains', function() {
- it('works with strings', function() {
- assert('abc').contains('a');
- assert('abc').contains('ab');
- assert('abc').contains('abc');
- assert('abc').contains('bc');
- assert('abc').contains('c');
- assertThrows(() => assert('abc').contains('d'));
- });
-
- it('works with arrays', function() {
- assert([1, 2, 3]).contains(1);
- assert([1, 2, 3]).contains(2);
- assert([1, 2, 3]).contains(3);
- assertThrows(() => assert([1, 2]).contains(3));
- });
-
- it('works with maps', function() {
- let m = new Map;
- m.set(1, 2);
- assert(m).contains(1);
- assertThrows(() => assert(m).contains(2));
- });
-
- it('works with sets', function() {
- let s = new Set;
- s.add(1);
- assert(s).contains(1);
- assertThrows(() => assert(s).contains(2));
- });
-
- it('requires an array, string, map, or set subject', function() {
- assertThrows(() => assert(123).contains('a'));
- });
- });
-
- describe('endsWith', function() {
- it('works', function() {
- assert('abc').endsWith('abc');
- assert('abc').endsWith('bc');
- assert('abc').endsWith('c');
- assertThrows(() => assert('abc').endsWith('d'));
- })
- });
-
- describe('startsWith', function() {
- it('works', function() {
- assert('abc').startsWith('abc');
- assert('abc').startsWith('ab');
- assert('abc').startsWith('a');
- assertThrows(() => assert('abc').startsWith('d'));
- })
- });
-
- describe('matches', function() {
- it('requires a regex value', function() {
- assertThrows(() => assert('abc').matches(1234));
- });
-
- it('requires a string value', function() {
- assertThrows(() => assert(1234).matches(/abc/));
- });
-
- it('requires a string value (promise case)', function() {
- return assert(Promise.resolve(1234))
- .matches(/abc/)
- .then(fail, function(error) {
- assertEqual(
- 'Expected a string matching /abc/, got <1234> (number)',
- error.message);
- });
- });
-
- it('applies regex', function() {
- assert('abc').matches(/abc/);
- assertThrows(() => assert('def').matches(/abc/));
- });
- });
-
- describe('isTrue', function() {
- it('only accepts booleans', function() {
- assertThrows(() => assert(123).isTrue());
- });
-
- it('accepts true values', function() {
- assert(true).isTrue();
- assert(Boolean('abc')).isTrue();
- return assert(Promise.resolve(true)).isTrue();
- });
-
- it('rejects false values', function() {
- assertThrows(() => assert(false).isTrue());
- assertThrows(() => assert(Boolean(0)).isTrue());
- return assert(Promise.resolve(false)).isTrue()
- .then(fail, function() {/*no-op, ok*/});
- });
- });
-
- describe('isFalse', function() {
- it('only accepts booleans', function() {
- assertThrows(() => assert(123).isFalse());
- })
-
- it('accepts false values', function() {
- assert(false).isFalse();
- assert(Boolean('')).isFalse();
- return assert(Promise.resolve(false)).isFalse();
- });
-
- it('rejects true values', function() {
- assertThrows(() => assert(true).isFalse());
- assertThrows(() => assert(Boolean(1)).isFalse());
- return assert(Promise.resolve(true)).isFalse()
- .then(fail, function() {/*no-op, ok*/});
- });
- });
-
- describe('isEqualTo', function() {
- it('is strict equality', function() {
- assert('abc').isEqualTo('abc');
- assert('abc').equals('abc');
- assert('abc').equalTo('abc');
- assertThrows(() => assert('1').isEqualTo(1));
- });
- });
-
- describe('notEqualTo', function() {
- it('tests strict equality', function() {
- assert('1').notEqualTo(1);
- assert(1).notEqualTo('1');
- assertThrows(() => assert('abc').notEqualTo('abc'));
- });
- });
-
- function assertInstanceOf(ctor, value) {
- assertTrue(value instanceof ctor);
- }
-});
diff --git a/node_modules/selenium-webdriver/test/testing/index_test.js b/node_modules/selenium-webdriver/test/testing/index_test.js
deleted file mode 100644
index edc841bbe..000000000
--- a/node_modules/selenium-webdriver/test/testing/index_test.js
+++ /dev/null
@@ -1,224 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-const assert = require('assert');
-const promise = require('../..').promise;
-const {enablePromiseManager} = require('../../lib/test/promise');
-
-
-var test = require('../../testing');
-
-describe('Mocha Integration', function() {
-
- describe('beforeEach properly binds "this"', function() {
- beforeEach(function() { this.x = 1; });
- test.beforeEach(function() { this.x = 2; });
- it('', function() { assert.equal(this.x, 2); });
- });
-
- describe('afterEach properly binds "this"', function() {
- it('', function() { this.x = 1; });
- test.afterEach(function() { this.x = 2; });
- afterEach(function() { assert.equal(this.x, 2); });
- });
-
- describe('it properly binds "this"', function() {
- beforeEach(function() { this.x = 1; });
- test.it('', function() { this.x = 2; });
- afterEach(function() { assert.equal(this.x, 2); });
- });
-
- enablePromiseManager(function() {
- describe('timeout handling', function() {
- describe('it does not reset the control flow on a non-timeout', function() {
- var flowReset = false;
-
- beforeEach(function() {
- flowReset = false;
- test.controlFlow().once(promise.ControlFlow.EventType.RESET, onreset);
- });
-
- test.it('', function() {
- this.timeout(100);
- return promise.delayed(50);
- });
-
- afterEach(function() {
- assert.ok(!flowReset);
- test.controlFlow().removeListener(
- promise.ControlFlow.EventType.RESET, onreset);
- });
-
- function onreset() {
- flowReset = true;
- }
- });
-
- describe('it resets the control flow after a timeout' ,function() {
- var timeoutErr, flowReset;
-
- beforeEach(function() {
- flowReset = false;
- test.controlFlow().once(promise.ControlFlow.EventType.RESET, onreset);
- });
-
- test.it('', function() {
- var callback = this.runnable().callback;
- var test = this;
- this.runnable().callback = function(err) {
- timeoutErr = err;
- // Reset our timeout to 0 so Mocha does not fail the test.
- test.timeout(0);
- // When we invoke the real callback, do not pass along the error so
- // Mocha does not fail the test.
- return callback.call(this);
- };
-
- test.timeout(50);
- return promise.defer().promise;
- });
-
- afterEach(function() {
- return Promise.resolve().then(function() {
- test.controlFlow().removeListener(
- promise.ControlFlow.EventType.RESET, onreset);
- assert.ok(flowReset, 'control flow was not reset after a timeout');
- });
- });
-
- function onreset() {
- flowReset = true;
- }
- });
- });
-
- describe('async "done" support', function() {
- this.timeout(2*1000);
-
- var waited = false;
- var DELAY = 100; // ms enough to notice
-
- // Each test asynchronously sets waited to true, so clear/check waited
- // before/after:
- beforeEach(function() {
- waited = false;
- });
-
- afterEach(function() {
- assert.strictEqual(waited, true);
- });
-
- // --- First, vanilla mocha "it" should support the "done" callback correctly.
-
- // This 'it' should block until 'done' is invoked
- it('vanilla delayed', function(done) {
- setTimeout(function delayedVanillaTimeout() {
- waited = true;
- done();
- }, DELAY);
- });
-
- // --- Now with the webdriver wrappers for 'it' should support the "done" callback:
-
- test.it('delayed', function(done) {
- assert(done);
- assert.strictEqual(typeof done, 'function');
- setTimeout(function delayedTimeoutCallback() {
- waited = true;
- done();
- }, DELAY);
- });
-
- // --- And test that the webdriver wrapper for 'it' works with a returned promise, too:
-
- test.it('delayed by promise', function() {
- var defer = promise.defer();
- setTimeout(function delayedPromiseCallback() {
- waited = true;
- defer.fulfill('ignored');
- });
- return defer.promise;
- });
- });
-
- describe('ControlFlow and "done" work together', function() {
- var flow, order;
- before(function() {
- order = [];
- flow = test.controlFlow();
- flow.execute(function() { order.push(1); });
- });
-
- test.it('control flow updates and async done', function(done) {
- flow.execute(function() { order.push(2); });
- flow.execute(function() { order.push(3); }).then(function() {
- order.push(4);
- });
- done();
- });
-
- after(function() {
- assert.deepEqual([1, 2, 3, 4], order);
- });
- });
- });
-
- describe('generator support', function() {
- let arr;
-
- beforeEach(() => arr = []);
- afterEach(() => assert.deepEqual(arr, [0, 1, 2, 3]));
-
- test.it('sync generator', function* () {
- arr.push(yield arr.length);
- arr.push(yield arr.length);
- arr.push(yield arr.length);
- arr.push(yield arr.length);
- });
-
- test.it('async generator', function* () {
- arr.push(yield Promise.resolve(arr.length));
- arr.push(yield Promise.resolve(arr.length));
- arr.push(yield Promise.resolve(arr.length));
- arr.push(yield Promise.resolve(arr.length));
- });
-
- test.it('generator returns promise', function*() {
- arr.push(yield Promise.resolve(arr.length));
- arr.push(yield Promise.resolve(arr.length));
- arr.push(yield Promise.resolve(arr.length));
- setTimeout(_ => arr.push(arr.length), 10);
- return new Promise((resolve) => setTimeout(_ => resolve(), 25));
- });
-
- describe('generator runs with proper "this" context', () => {
- before(function() { this.values = [0, 1, 2, 3]; });
- test.it('', function*() {
- arr = this.values;
- });
- });
-
- it('generator function must not take a callback', function() {
- arr = [0, 1, 2, 3]; // For teardown hook.
- assert.throws(_ => {
- test.it('', function*(done){});
- }, TypeError);
- });
- });
-});
diff --git a/node_modules/selenium-webdriver/test/upload_test.js b/node_modules/selenium-webdriver/test/upload_test.js
deleted file mode 100644
index c677550fc..000000000
--- a/node_modules/selenium-webdriver/test/upload_test.js
+++ /dev/null
@@ -1,86 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var fs = require('fs');
-
-var Browser = require('..').Browser,
- By = require('..').By,
- until = require('..').until,
- io = require('../io'),
- remote = require('../remote'),
- assert = require('../testing/assert'),
- test = require('../lib/test'),
- Pages = test.Pages;
-
-test.suite(function(env) {
- var LOREM_IPSUM_TEXT = 'lorem ipsum dolor sit amet';
- var FILE_HTML = '<!DOCTYPE html><div>' + LOREM_IPSUM_TEXT + '</div>';
-
- var fp;
- test.before(function() {
- return fp = io.tmpFile().then(function(fp) {
- fs.writeFileSync(fp, FILE_HTML);
- return fp;
- });
- })
-
- var driver;
- test.before(function*() {
- driver = yield env.builder().build();
- });
-
- test.after(function() {
- if (driver) {
- return driver.quit();
- }
- });
-
- test.ignore(env.browsers(
- Browser.IPAD,
- Browser.IPHONE,
- // Uploads broken in PhantomJS 2.0.
- // See https://github.com/ariya/phantomjs/issues/12506
- Browser.PHANTOM_JS,
- Browser.SAFARI)).
- it('can upload files', function*() {
- driver.setFileDetector(new remote.FileDetector);
-
- yield driver.get(Pages.uploadPage);
-
- var fp = yield driver.call(function() {
- return io.tmpFile().then(function(fp) {
- fs.writeFileSync(fp, FILE_HTML);
- return fp;
- });
- });
-
- yield driver.findElement(By.id('upload')).sendKeys(fp);
- yield driver.findElement(By.id('go')).click();
-
- // Uploading files across a network may take a while, even if they're small.
- var label = yield driver.findElement(By.id('upload_label'));
- yield driver.wait(until.elementIsNotVisible(label),
- 10 * 1000, 'File took longer than 10 seconds to upload!');
-
- var frame = yield driver.findElement(By.id('upload_target'));
- yield driver.switchTo().frame(frame);
- yield assert(driver.findElement(By.css('body')).getText())
- .equalTo(LOREM_IPSUM_TEXT);
- });
-});
diff --git a/node_modules/selenium-webdriver/test/window_test.js b/node_modules/selenium-webdriver/test/window_test.js
deleted file mode 100644
index 73cdd802d..000000000
--- a/node_modules/selenium-webdriver/test/window_test.js
+++ /dev/null
@@ -1,161 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-'use strict';
-
-var Browser = require('..').Browser,
- By = require('..').By,
- assert = require('../testing/assert'),
- test = require('../lib/test');
-
-
-test.suite(function(env) {
- var driver;
-
- test.before(function*() { driver = yield env.builder().build(); });
- test.after(function() { return driver.quit(); });
-
- test.beforeEach(function() {
- return driver.switchTo().defaultContent();
- });
-
- test.it('can set size of the current window', function*() {
- yield driver.get(test.Pages.echoPage);
- yield changeSizeBy(-20, -20);
- });
-
- test.it('can set size of the current window from frame', function*() {
- yield driver.get(test.Pages.framesetPage);
-
- var frame = yield driver.findElement({css: 'frame[name="fourth"]'});
- yield driver.switchTo().frame(frame);
- yield changeSizeBy(-20, -20);
- });
-
- test.it('can set size of the current window from iframe', function*() {
- yield driver.get(test.Pages.iframePage);
-
- var frame = yield driver.findElement({css: 'iframe[name="iframe1-name"]'});
- yield driver.switchTo().frame(frame);
- yield changeSizeBy(-20, -20);
- });
-
- test.it('can switch to a new window', function*() {
- yield driver.get(test.Pages.xhtmlTestPage);
-
- let handle = yield driver.getWindowHandle();
- let originalHandles = yield driver.getAllWindowHandles();
-
- yield driver.findElement(By.linkText("Open new window")).click();
- yield driver.wait(forNewWindowToBeOpened(originalHandles), 2000);
- yield assert(driver.getTitle()).equalTo("XHTML Test Page");
-
- let newHandle = yield getNewWindowHandle(originalHandles);
-
- yield driver.switchTo().window(newHandle);
- yield assert(driver.getTitle()).equalTo("We Arrive Here");
- });
-
- test.it('can set the window position of the current window', function*() {
- let position = yield driver.manage().window().getPosition();
-
- yield driver.manage().window().setSize(640, 480);
- yield driver.manage().window().setPosition(position.x + 10, position.y + 10);
-
- // For phantomjs, setPosition is a no-op and the "window" stays at (0, 0)
- if (env.currentBrowser() === Browser.PHANTOM_JS) {
- position = yield driver.manage().window().getPosition();
- assert(position.x).equalTo(0);
- assert(position.y).equalTo(0);
- } else {
- var dx = position.x + 10;
- var dy = position.y + 10;
- return driver.wait(forPositionToBe(dx, dy), 1000);
- }
- });
-
- test.it('can set the window position from a frame', function*() {
- yield driver.get(test.Pages.iframePage);
-
- let frame = yield driver.findElement(By.name('iframe1-name'));
- yield driver.switchTo().frame(frame);
-
- let position = yield driver.manage().window().getPosition();
- yield driver.manage().window().setSize(640, 480);
- yield driver.manage().window().setPosition(position.x + 10, position.y + 10);
-
- // For phantomjs, setPosition is a no-op and the "window" stays at (0, 0)
- if (env.currentBrowser() === Browser.PHANTOM_JS) {
- return driver.manage().window().getPosition().then(function(position) {
- assert(position.x).equalTo(0);
- assert(position.y).equalTo(0);
- });
- } else {
- var dx = position.x + 10;
- var dy = position.y + 10;
- return driver.wait(forPositionToBe(dx, dy), 1000);
- }
- });
-
- function changeSizeBy(dx, dy) {
- return driver.manage().window().getSize().then(function(size) {
- return driver.manage().window()
- .setSize(size.width + dx, size.height + dy)
- .then(_ => {
- return driver.wait(
- forSizeToBe(size.width + dx, size.height + dy), 1000);
- });
- });
- }
-
- function forSizeToBe(w, h) {
- return function() {
- return driver.manage().window().getSize().then(function(size) {
- return size.width === w && size.height === h;
- });
- };
- }
-
- function forPositionToBe(x, y) {
- return function() {
- return driver.manage().window().getPosition().then(function(position) {
- return position.x === x &&
- // On OSX, the window height may be bumped down 22px for the top
- // status bar.
- // On Linux, Opera's window position will be off by 28px.
- (position.y >= y && position.y <= (y + 28));
- });
- };
- }
-
- function forNewWindowToBeOpened(originalHandles) {
- return function() {
- return driver.getAllWindowHandles().then(function(currentHandles) {
- return currentHandles.length > originalHandles.length;
- });
- };
- }
-
- function getNewWindowHandle(originalHandles) {
- // Note: this assumes there's just one new window.
- return driver.getAllWindowHandles().then(function(currentHandles) {
- return currentHandles.filter(function(i) {
- return originalHandles.indexOf(i) < 0;
- })[0];
- });
- }
-});
diff --git a/node_modules/selenium-webdriver/testing/assert.js b/node_modules/selenium-webdriver/testing/assert.js
deleted file mode 100644
index 253aca034..000000000
--- a/node_modules/selenium-webdriver/testing/assert.js
+++ /dev/null
@@ -1,378 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Defines a library that simplifies writing assertions against
- * promised values.
- *
- * > <hr>
- * > __NOTE:__ This module is considered experimental and is subject to
- * > change, or removal, at any time!
- * > <hr>
- *
- * Sample usage:
- *
- * var driver = new webdriver.Builder().build();
- * driver.get('http://www.google.com');
- *
- * assert(driver.getTitle()).equalTo('Google');
- */
-
-'use strict';
-
-const assert = require('assert');
-
-function trueType(v) {
- if (v === null) {
- return 'null';
- }
-
- let type = typeof v;
- if (type === 'object') {
- if (Array.isArray(v)) {
- type = 'array';
- }
- }
- return type;
-}
-
-
-function checkType(v, want) {
- let got = trueType(v);
- if (got !== want) {
- throw new TypeError('require ' + want + ', but got ' + got);
- }
- return v;
-}
-
-const checkNumber = v => checkType(v, 'number');
-const checkFunction = v => checkType(v, 'function');
-const checkString = v => checkType(v, 'string');
-
-const isFunction = v => trueType(v) === 'function';
-const isNumber = v => trueType(v) === 'number';
-const isObject = v => trueType(v) === 'object';
-const isString = v => trueType(v) === 'string';
-
-
-function describe(value) {
- let ret;
- try {
- ret = `<${String(value)}>`;
- } catch (e) {
- ret = `<toString failed: ${e.message}>`;
- }
-
- if (null !== value && void(0) !== value) {
- ret += ` (${trueType(value)})`;
- }
-
- return ret;
-}
-
-
-function evaluate(value, predicate) {
- if (isObject(value) && isFunction(value.then)) {
- return value.then(predicate);
- }
- predicate(value);
-}
-
-
-/**
- * @private
- */
-class Assertion {
- /**
- * @param {?} subject The subject of this assertion.
- * @param {boolean=} opt_invert Whether to invert any assertions performed by
- * this instance.
- */
- constructor(subject, opt_invert) {
- /** @private {?} */
- this.subject_ = subject;
- /** @private {boolean} */
- this.invert_ = !!opt_invert;
- }
-
- /**
- * @param {number} expected The minimum permissible value (inclusive).
- * @param {string=} opt_message An optional failure message.
- * @return {(Promise|undefined)} The result of this assertion, if the subject
- * is a promised-value. Otherwise, the assertion is performed immediately
- * and nothing is returned.
- */
- atLeast(expected, opt_message) {
- checkNumber(expected);
- return evaluate(this.subject_, function(actual) {
- if (!isNumber(actual) || actual < expected) {
- assert.fail(actual, expected, opt_message, '>=');
- }
- });
- }
-
- /**
- * @param {number} expected The maximum permissible value (inclusive).
- * @param {string=} opt_message An optional failure message.
- * @return {(Promise|undefined)} The result of this assertion, if the subject
- * is a promised-value. Otherwise, the assertion is performed immediately
- * and nothing is returned.
- */
- atMost(expected, opt_message) {
- checkNumber(expected);
- return evaluate(this.subject_, function (actual) {
- if (!isNumber(actual) || actual > expected) {
- assert.fail(actual, expected, opt_message, '<=');
- }
- });
- }
-
- /**
- * @param {number} expected The maximum permissible value (exclusive).
- * @param {string=} opt_message An optional failure message.
- * @return {(Promise|undefined)} The result of this assertion, if the subject
- * is a promised-value. Otherwise, the assertion is performed immediately
- * and nothing is returned.
- */
- greaterThan(expected, opt_message) {
- checkNumber(expected);
- return evaluate(this.subject_, function(actual) {
- if (!isNumber(actual) || actual <= expected) {
- assert.fail(actual, expected, opt_message, '>');
- }
- });
- }
-
- /**
- * @param {number} expected The minimum permissible value (exclusive).
- * @param {string=} opt_message An optional failure message.
- * @return {(Promise|undefined)} The result of this assertion, if the subject
- * is a promised-value. Otherwise, the assertion is performed immediately
- * and nothing is returned.
- */
- lessThan(expected, opt_message) {
- checkNumber(expected);
- return evaluate(this.subject_, function (actual) {
- if (!isNumber(actual) || actual >= expected) {
- assert.fail(actual, expected, opt_message, '<');
- }
- });
- }
-
- /**
- * @param {number} expected The desired value.
- * @param {number} epsilon The maximum distance from the desired value.
- * @param {string=} opt_message An optional failure message.
- * @return {(Promise|undefined)} The result of this assertion, if the subject
- * is a promised-value. Otherwise, the assertion is performed immediately
- * and nothing is returned.
- */
- closeTo(expected, epsilon, opt_message) {
- checkNumber(expected);
- checkNumber(epsilon);
- return evaluate(this.subject_, function(actual) {
- checkNumber(actual);
- if (Math.abs(expected - actual) > epsilon) {
- assert.fail(opt_message || `${actual} === ${expected} (± ${epsilon})`);
- }
- });
- }
-
- /**
- * @param {function(new: ?)} ctor The exptected type's constructor.
- * @param {string=} opt_message An optional failure message.
- * @return {(Promise|undefined)} The result of this assertion, if the subject
- * is a promised-value. Otherwise, the assertion is performed immediately
- * and nothing is returned.
- */
- instanceOf(ctor, opt_message) {
- checkFunction(ctor);
- return evaluate(this.subject_, function(actual) {
- if (!(actual instanceof ctor)) {
- assert.fail(
- opt_message
- || `${describe(actual)} instanceof ${ctor.name || ctor}`);
- }
- });
- }
-
- /**
- * @param {string=} opt_message An optional failure message.
- * @return {(Promise|undefined)} The result of this assertion, if the subject
- * is a promised-value. Otherwise, the assertion is performed immediately
- * and nothing is returned.
- */
- isNull(opt_message) {
- return this.isEqualTo(null);
- }
-
- /**
- * @param {string=} opt_message An optional failure message.
- * @return {(Promise|undefined)} The result of this assertion, if the subject
- * is a promised-value. Otherwise, the assertion is performed immediately
- * and nothing is returned.
- */
- isUndefined(opt_message) {
- return this.isEqualTo(void(0));
- }
-
- /**
- * Ensures the subject of this assertion is either a string or array
- * containing the given `value`.
- *
- * @param {?} value The value expected to be contained within the subject.
- * @param {string=} opt_message An optional failure message.
- * @return {(Promise|undefined)} The result of this assertion, if the subject
- * is a promised-value. Otherwise, the assertion is performed immediately
- * and nothing is returned.
- */
- contains(value, opt_message) {
- return evaluate(this.subject_, function(actual) {
- if (actual instanceof Map || actual instanceof Set) {
- assert.ok(actual.has(value), opt_message || `${actual}.has(${value})`);
- } else if (Array.isArray(actual) || isString(actual)) {
- assert.ok(
- actual.indexOf(value) !== -1,
- opt_message || `${actual}.indexOf(${value}) !== -1`);
- } else {
- assert.fail(
- `Expected an array, map, set, or string: got ${describe(actual)}`);
- }
- });
- }
-
- /**
- * @param {string} str The expected suffix.
- * @param {string=} opt_message An optional failure message.
- * @return {(Promise|undefined)} The result of this assertion, if the subject
- * is a promised-value. Otherwise, the assertion is performed immediately
- * and nothing is returned.
- */
- endsWith(str, opt_message) {
- checkString(str);
- return evaluate(this.subject_, function(actual) {
- if (!isString(actual) || !actual.endsWith(str)) {
- assert.fail(actual, str, 'ends with');
- }
- });
- }
-
- /**
- * @param {string} str The expected prefix.
- * @param {string=} opt_message An optional failure message.
- * @return {(Promise|undefined)} The result of this assertion, if the subject
- * is a promised-value. Otherwise, the assertion is performed immediately
- * and nothing is returned.
- */
- startsWith(str, opt_message) {
- checkString(str);
- return evaluate(this.subject_, function(actual) {
- if (!isString(actual) || !actual.startsWith(str)) {
- assert.fail(actual, str, 'starts with');
- }
- });
- }
-
- /**
- * @param {!RegExp} regex The regex the subject is expected to match.
- * @param {string=} opt_message An optional failure message.
- * @return {(Promise|undefined)} The result of this assertion, if the subject
- * is a promised-value. Otherwise, the assertion is performed immediately
- * and nothing is returned.
- */
- matches(regex, opt_message) {
- if (!(regex instanceof RegExp)) {
- throw TypeError(`Not a RegExp: ${describe(regex)}`);
- }
- return evaluate(this.subject_, function(actual) {
- if (!isString(actual) || !regex.test(actual)) {
- let message = opt_message
- || `Expected a string matching ${regex}, got ${describe(actual)}`;
- assert.fail(actual, regex, message);
- }
- });
- }
-
- /**
- * @param {?} value The unexpected value.
- * @param {string=} opt_message An optional failure message.
- * @return {(Promise|undefined)} The result of this assertion, if the subject
- * is a promised-value. Otherwise, the assertion is performed immediately
- * and nothing is returned.
- */
- notEqualTo(value, opt_message) {
- return evaluate(this.subject_, function(actual) {
- assert.notStrictEqual(actual, value, opt_message);
- });
- }
-
- /** An alias for {@link #isEqualTo}. */
- equalTo(value, opt_message) {
- return this.isEqualTo(value, opt_message);
- }
-
- /** An alias for {@link #isEqualTo}. */
- equals(value, opt_message) {
- return this.isEqualTo(value, opt_message);
- }
-
- /**
- * @param {?} value The expected value.
- * @param {string=} opt_message An optional failure message.
- * @return {(Promise|undefined)} The result of this assertion, if the subject
- * is a promised-value. Otherwise, the assertion is performed immediately
- * and nothing is returned.
- */
- isEqualTo(value, opt_message) {
- return evaluate(this.subject_, function(actual) {
- assert.strictEqual(actual, value, opt_message);
- });
- }
-
- /**
- * @param {string=} opt_message An optional failure message.
- * @return {(Promise|undefined)} The result of this assertion, if the subject
- * is a promised-value. Otherwise, the assertion is performed immediately
- * and nothing is returned.
- */
- isTrue(opt_message) {
- return this.isEqualTo(true, opt_message);
- }
-
- /**
- * @param {string=} opt_message An optional failure message.
- * @return {(Promise|undefined)} The result of this assertion, if the subject
- * is a promised-value. Otherwise, the assertion is performed immediately
- * and nothing is returned.
- */
- isFalse(opt_message) {
- return this.isEqualTo(false, opt_message);
- }
-}
-
-
-// PUBLIC API
-
-
-/**
- * Creates an assertion about the given `value`.
- * @return {!Assertion} the new assertion.
- */
-module.exports = function assertThat(value) {
- return new Assertion(value);
-};
-module.exports.Assertion = Assertion; // Exported to help generated docs
diff --git a/node_modules/selenium-webdriver/testing/index.js b/node_modules/selenium-webdriver/testing/index.js
deleted file mode 100644
index 88763c7d5..000000000
--- a/node_modules/selenium-webdriver/testing/index.js
+++ /dev/null
@@ -1,427 +0,0 @@
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/**
- * @fileoverview Provides wrappers around the following global functions from
- * [Mocha's BDD interface](https://github.com/mochajs/mocha):
- *
- * - after
- * - afterEach
- * - before
- * - beforeEach
- * - it
- * - it.only
- * - it.skip
- * - xit
- *
- * Each of the wrapped functions support generator functions. If the generator
- * {@linkplain ../lib/promise.consume yields a promise}, the test will wait
- * for that promise to resolve before invoking the next iteration of the
- * generator:
- *
- * test.it('generators', function*() {
- * let x = yield Promise.resolve(1);
- * assert.equal(x, 1);
- * });
- *
- * The provided wrappers leverage the {@link webdriver.promise.ControlFlow}
- * to simplify writing asynchronous tests:
- *
- * var {Builder, By, until} = require('selenium-webdriver');
- * var test = require('selenium-webdriver/testing');
- *
- * test.describe('Google Search', function() {
- * var driver;
- *
- * test.before(function() {
- * driver = new Builder().forBrowser('firefox').build();
- * });
- *
- * test.after(function() {
- * driver.quit();
- * });
- *
- * test.it('should append query to title', function() {
- * driver.get('http://www.google.com/ncr');
- * driver.findElement(By.name('q')).sendKeys('webdriver');
- * driver.findElement(By.name('btnG')).click();
- * driver.wait(until.titleIs('webdriver - Google Search'), 1000);
- * });
- * });
- *
- * You may conditionally suppress a test function using the exported
- * "ignore" function. If the provided predicate returns true, the attached
- * test case will be skipped:
- *
- * test.ignore(maybe()).it('is flaky', function() {
- * if (Math.random() < 0.5) throw Error();
- * });
- *
- * function maybe() { return Math.random() < 0.5; }
- */
-
-'use strict';
-
-const promise = require('..').promise;
-const flow = (function() {
- const initial = process.env['SELENIUM_PROMISE_MANAGER'];
- try {
- process.env['SELENIUM_PROMISE_MANAGER'] = '1';
- return promise.controlFlow();
- } finally {
- if (initial === undefined) {
- delete process.env['SELENIUM_PROMISE_MANAGER'];
- } else {
- process.env['SELENIUM_PROMISE_MANAGER'] = initial;
- }
- }
-})();
-
-
-/**
- * Wraps a function so that all passed arguments are ignored.
- * @param {!Function} fn The function to wrap.
- * @return {!Function} The wrapped function.
- */
-function seal(fn) {
- return function() {
- fn();
- };
-}
-
-
-/**
- * Wraps a function on Mocha's BDD interface so it runs inside a
- * webdriver.promise.ControlFlow and waits for the flow to complete before
- * continuing.
- * @param {!Function} globalFn The function to wrap.
- * @return {!Function} The new function.
- */
-function wrapped(globalFn) {
- return function() {
- if (arguments.length === 1) {
- return globalFn(wrapArgument(arguments[0]));
-
- } else if (arguments.length === 2) {
- return globalFn(arguments[0], wrapArgument(arguments[1]));
-
- } else {
- throw Error('Invalid # arguments: ' + arguments.length);
- }
- };
-}
-
-
-function wrapArgument(value) {
- if (typeof value === 'function') {
- return makeAsyncTestFn(value);
- }
- return value;
-}
-
-
-/**
- * Make a wrapper to invoke caller's test function, fn. Run the test function
- * within a ControlFlow.
- *
- * Should preserve the semantics of Mocha's Runnable.prototype.run (See
- * https://github.com/mochajs/mocha/blob/master/lib/runnable.js#L192)
- *
- * @param {!Function} fn
- * @return {!Function}
- */
-function makeAsyncTestFn(fn) {
- const isAsync = fn.length > 0;
- const isGenerator = promise.isGenerator(fn);
- if (isAsync && isGenerator) {
- throw TypeError(
- 'generator-based tests must not take a callback; for async testing,'
- + ' return a promise (or yield on a promise)');
- }
-
- var ret = /** @type {function(this: mocha.Context)}*/ (function(done) {
- const runTest = (resolve, reject) => {
- try {
- if (isAsync) {
- fn.call(this, err => err ? reject(err) : resolve());
- } else if (isGenerator) {
- resolve(promise.consume(fn, this));
- } else {
- resolve(fn.call(this));
- }
- } catch (ex) {
- reject(ex);
- }
- };
-
- if (!promise.USE_PROMISE_MANAGER) {
- new Promise(runTest).then(seal(done), done);
- return;
- }
-
- var runnable = this.runnable();
- var mochaCallback = runnable.callback;
- runnable.callback = function() {
- flow.reset();
- return mochaCallback.apply(this, arguments);
- };
-
- flow.execute(function controlFlowExecute() {
- return new promise.Promise(function(fulfill, reject) {
- return runTest(fulfill, reject);
- }, flow);
- }, runnable.fullTitle()).then(seal(done), done);
- });
-
- ret.toString = function() {
- return fn.toString();
- };
-
- return ret;
-}
-
-
-/**
- * Ignores the test chained to this function if the provided predicate returns
- * true.
- * @param {function(): boolean} predicateFn A predicate to call to determine
- * if the test should be suppressed. This function MUST be synchronous.
- * @return {!Object} An object with wrapped versions of {@link #it()} and
- * {@link #describe()} that ignore tests as indicated by the predicate.
- */
-function ignore(predicateFn) {
- var describe = wrap(exports.xdescribe, exports.describe);
- describe.only = wrap(exports.xdescribe, exports.describe.only);
-
- var it = wrap(exports.xit, exports.it);
- it.only = wrap(exports.xit, exports.it.only);
-
- return {
- describe: describe,
- it: it
- };
-
- function wrap(onSkip, onRun) {
- return function(title, fn) {
- if (predicateFn()) {
- onSkip(title, fn);
- } else {
- onRun(title, fn);
- }
- };
- }
-}
-
-
-/**
- * @param {string} name
- * @return {!Function}
- * @throws {TypeError}
- */
-function getMochaGlobal(name) {
- let fn = global[name];
- let type = typeof fn;
- if (type !== 'function') {
- throw TypeError(
- `Expected global.${name} to be a function, but is ${type}. `
- + 'This can happen if you try using this module when running '
- + 'with node directly instead of using the mocha executable');
- }
- return fn;
-}
-
-
-const WRAPPED = {
- after: null,
- afterEach: null,
- before: null,
- beforeEach: null,
- it: null,
- itOnly: null,
- xit: null
-};
-
-
-function wrapIt() {
- if (!WRAPPED.it) {
- let it = getMochaGlobal('it');
- WRAPPED.it = wrapped(it);
- WRAPPED.itOnly = wrapped(it.only);
- }
-}
-
-
-
-// PUBLIC API
-
-
-/**
- * @return {!promise.ControlFlow} the control flow instance used by this module
- * to coordinate test actions.
- */
-exports.controlFlow = function(){
- return flow;
-};
-
-
-/**
- * Registers a new test suite.
- * @param {string} name The suite name.
- * @param {function()=} opt_fn The suite function, or `undefined` to define
- * a pending test suite.
- */
-exports.describe = function(name, opt_fn) {
- let fn = getMochaGlobal('describe');
- return opt_fn ? fn(name, opt_fn) : fn(name);
-};
-
-
-/**
- * An alias for {@link #describe()} that marks the suite as exclusive,
- * suppressing all other test suites.
- * @param {string} name The suite name.
- * @param {function()=} opt_fn The suite function, or `undefined` to define
- * a pending test suite.
- */
-exports.describe.only = function(name, opt_fn) {
- let desc = getMochaGlobal('describe');
- return opt_fn ? desc.only(name, opt_fn) : desc.only(name);
-};
-
-
-/**
- * Defines a suppressed test suite.
- * @param {string} name The suite name.
- * @param {function()=} opt_fn The suite function, or `undefined` to define
- * a pending test suite.
- */
-exports.describe.skip = function(name, opt_fn) {
- let fn = getMochaGlobal('describe');
- return opt_fn ? fn.skip(name, opt_fn) : fn.skip(name);
-};
-
-
-/**
- * Defines a suppressed test suite.
- * @param {string} name The suite name.
- * @param {function()=} opt_fn The suite function, or `undefined` to define
- * a pending test suite.
- */
-exports.xdescribe = function(name, opt_fn) {
- let fn = getMochaGlobal('xdescribe');
- return opt_fn ? fn(name, opt_fn) : fn(name);
-};
-
-
-/**
- * Register a function to call after the current suite finishes.
- * @param {function()} fn .
- */
-exports.after = function(fn) {
- if (!WRAPPED.after) {
- WRAPPED.after = wrapped(getMochaGlobal('after'));
- }
- WRAPPED.after(fn);
-};
-
-
-/**
- * Register a function to call after each test in a suite.
- * @param {function()} fn .
- */
-exports.afterEach = function(fn) {
- if (!WRAPPED.afterEach) {
- WRAPPED.afterEach = wrapped(getMochaGlobal('afterEach'));
- }
- WRAPPED.afterEach(fn);
-};
-
-
-/**
- * Register a function to call before the current suite starts.
- * @param {function()} fn .
- */
-exports.before = function(fn) {
- if (!WRAPPED.before) {
- WRAPPED.before = wrapped(getMochaGlobal('before'));
- }
- WRAPPED.before(fn);
-};
-
-/**
- * Register a function to call before each test in a suite.
- * @param {function()} fn .
- */
-exports.beforeEach = function(fn) {
- if (!WRAPPED.beforeEach) {
- WRAPPED.beforeEach = wrapped(getMochaGlobal('beforeEach'));
- }
- WRAPPED.beforeEach(fn);
-};
-
-/**
- * Add a test to the current suite.
- * @param {string} name The test name.
- * @param {function()=} opt_fn The test function, or `undefined` to define
- * a pending test case.
- */
-exports.it = function(name, opt_fn) {
- wrapIt();
- if (opt_fn) {
- WRAPPED.it(name, opt_fn);
- } else {
- WRAPPED.it(name);
- }
-};
-
-/**
- * An alias for {@link #it()} that flags the test as the only one that should
- * be run within the current suite.
- * @param {string} name The test name.
- * @param {function()=} opt_fn The test function, or `undefined` to define
- * a pending test case.
- */
-exports.it.only = function(name, opt_fn) {
- wrapIt();
- if (opt_fn) {
- WRAPPED.itOnly(name, opt_fn);
- } else {
- WRAPPED.itOnly(name);
- }
-};
-
-
-/**
- * Adds a test to the current suite while suppressing it so it is not run.
- * @param {string} name The test name.
- * @param {function()=} opt_fn The test function, or `undefined` to define
- * a pending test case.
- */
-exports.xit = function(name, opt_fn) {
- if (!WRAPPED.xit) {
- WRAPPED.xit = wrapped(getMochaGlobal('xit'));
- }
- if (opt_fn) {
- WRAPPED.xit(name, opt_fn);
- } else {
- WRAPPED.xit(name);
- }
-};
-
-
-exports.it.skip = exports.xit;
-exports.ignore = ignore;
diff --git a/node_modules/send/HISTORY.md b/node_modules/send/HISTORY.md
deleted file mode 100644
index 3297ba078..000000000
--- a/node_modules/send/HISTORY.md
+++ /dev/null
@@ -1,411 +0,0 @@
-0.15.3 / 2017-05-16
-===================
-
- * deps: debug@2.6.7
- - deps: ms@2.0.0
- * deps: ms@2.0.0
-
-0.15.2 / 2017-04-26
-===================
-
- * deps: debug@2.6.4
- - Fix `DEBUG_MAX_ARRAY_LENGTH`
- - deps: ms@0.7.3
- * deps: ms@1.0.0
-
-0.15.1 / 2017-03-04
-===================
-
- * Fix issue when `Date.parse` does not return `NaN` on invalid date
- * Fix strict violation in broken environments
-
-0.15.0 / 2017-02-25
-===================
-
- * Support `If-Match` and `If-Unmodified-Since` headers
- * Add `res` and `path` arguments to `directory` event
- * Remove usage of `res._headers` private field
- - Improves compatibility with Node.js 8 nightly
- * Send complete HTML document in redirect & error responses
- * Set default CSP header in redirect & error responses
- * Use `res.getHeaderNames()` when available
- * Use `res.headersSent` when available
- * deps: debug@2.6.1
- - Allow colors in workers
- - Deprecated `DEBUG_FD` environment variable set to `3` or higher
- - Fix error when running under React Native
- - Use same color for same namespace
- - deps: ms@0.7.2
- * deps: etag@~1.8.0
- * deps: fresh@0.5.0
- - Fix false detection of `no-cache` request directive
- - Fix incorrect result when `If-None-Match` has both `*` and ETags
- - Fix weak `ETag` matching to match spec
- - perf: delay reading header values until needed
- - perf: enable strict mode
- - perf: hoist regular expressions
- - perf: remove duplicate conditional
- - perf: remove unnecessary boolean coercions
- - perf: skip checking modified time if ETag check failed
- - perf: skip parsing `If-None-Match` when no `ETag` header
- - perf: use `Date.parse` instead of `new Date`
- * deps: http-errors@~1.6.1
- - Make `message` property enumerable for `HttpError`s
- - deps: setprototypeof@1.0.3
-
-0.14.2 / 2017-01-23
-===================
-
- * deps: http-errors@~1.5.1
- - deps: inherits@2.0.3
- - deps: setprototypeof@1.0.2
- - deps: statuses@'>= 1.3.1 < 2'
- * deps: ms@0.7.2
- * deps: statuses@~1.3.1
-
-0.14.1 / 2016-06-09
-===================
-
- * Fix redirect error when `path` contains raw non-URL characters
- * Fix redirect when `path` starts with multiple forward slashes
-
-0.14.0 / 2016-06-06
-===================
-
- * Add `acceptRanges` option
- * Add `cacheControl` option
- * Attempt to combine multiple ranges into single range
- * Correctly inherit from `Stream` class
- * Fix `Content-Range` header in 416 responses when using `start`/`end` options
- * Fix `Content-Range` header missing from default 416 responses
- * Ignore non-byte `Range` headers
- * deps: http-errors@~1.5.0
- - Add `HttpError` export, for `err instanceof createError.HttpError`
- - Support new code `421 Misdirected Request`
- - Use `setprototypeof` module to replace `__proto__` setting
- - deps: inherits@2.0.1
- - deps: statuses@'>= 1.3.0 < 2'
- - perf: enable strict mode
- * deps: range-parser@~1.2.0
- - Fix incorrectly returning -1 when there is at least one valid range
- - perf: remove internal function
- * deps: statuses@~1.3.0
- - Add `421 Misdirected Request`
- - perf: enable strict mode
- * perf: remove argument reassignment
-
-0.13.2 / 2016-03-05
-===================
-
- * Fix invalid `Content-Type` header when `send.mime.default_type` unset
-
-0.13.1 / 2016-01-16
-===================
-
- * deps: depd@~1.1.0
- - Support web browser loading
- - perf: enable strict mode
- * deps: destroy@~1.0.4
- - perf: enable strict mode
- * deps: escape-html@~1.0.3
- - perf: enable strict mode
- - perf: optimize string replacement
- - perf: use faster string coercion
- * deps: range-parser@~1.0.3
- - perf: enable strict mode
-
-0.13.0 / 2015-06-16
-===================
-
- * Allow Node.js HTTP server to set `Date` response header
- * Fix incorrectly removing `Content-Location` on 304 response
- * Improve the default redirect response headers
- * Send appropriate headers on default error response
- * Use `http-errors` for standard emitted errors
- * Use `statuses` instead of `http` module for status messages
- * deps: escape-html@1.0.2
- * deps: etag@~1.7.0
- - Improve stat performance by removing hashing
- * deps: fresh@0.3.0
- - Add weak `ETag` matching support
- * deps: on-finished@~2.3.0
- - Add defined behavior for HTTP `CONNECT` requests
- - Add defined behavior for HTTP `Upgrade` requests
- - deps: ee-first@1.1.1
- * perf: enable strict mode
- * perf: remove unnecessary array allocations
-
-0.12.3 / 2015-05-13
-===================
-
- * deps: debug@~2.2.0
- - deps: ms@0.7.1
- * deps: depd@~1.0.1
- * deps: etag@~1.6.0
- - Improve support for JXcore
- - Support "fake" stats objects in environments without `fs`
- * deps: ms@0.7.1
- - Prevent extraordinarily long inputs
- * deps: on-finished@~2.2.1
-
-0.12.2 / 2015-03-13
-===================
-
- * Throw errors early for invalid `extensions` or `index` options
- * deps: debug@~2.1.3
- - Fix high intensity foreground color for bold
- - deps: ms@0.7.0
-
-0.12.1 / 2015-02-17
-===================
-
- * Fix regression sending zero-length files
-
-0.12.0 / 2015-02-16
-===================
-
- * Always read the stat size from the file
- * Fix mutating passed-in `options`
- * deps: mime@1.3.4
-
-0.11.1 / 2015-01-20
-===================
-
- * Fix `root` path disclosure
-
-0.11.0 / 2015-01-05
-===================
-
- * deps: debug@~2.1.1
- * deps: etag@~1.5.1
- - deps: crc@3.2.1
- * deps: ms@0.7.0
- - Add `milliseconds`
- - Add `msecs`
- - Add `secs`
- - Add `mins`
- - Add `hrs`
- - Add `yrs`
- * deps: on-finished@~2.2.0
-
-0.10.1 / 2014-10-22
-===================
-
- * deps: on-finished@~2.1.1
- - Fix handling of pipelined requests
-
-0.10.0 / 2014-10-15
-===================
-
- * deps: debug@~2.1.0
- - Implement `DEBUG_FD` env variable support
- * deps: depd@~1.0.0
- * deps: etag@~1.5.0
- - Improve string performance
- - Slightly improve speed for weak ETags over 1KB
-
-0.9.3 / 2014-09-24
-==================
-
- * deps: etag@~1.4.0
- - Support "fake" stats objects
-
-0.9.2 / 2014-09-15
-==================
-
- * deps: depd@0.4.5
- * deps: etag@~1.3.1
- * deps: range-parser@~1.0.2
-
-0.9.1 / 2014-09-07
-==================
-
- * deps: fresh@0.2.4
-
-0.9.0 / 2014-09-07
-==================
-
- * Add `lastModified` option
- * Use `etag` to generate `ETag` header
- * deps: debug@~2.0.0
-
-0.8.5 / 2014-09-04
-==================
-
- * Fix malicious path detection for empty string path
-
-0.8.4 / 2014-09-04
-==================
-
- * Fix a path traversal issue when using `root`
-
-0.8.3 / 2014-08-16
-==================
-
- * deps: destroy@1.0.3
- - renamed from dethroy
- * deps: on-finished@2.1.0
-
-0.8.2 / 2014-08-14
-==================
-
- * Work around `fd` leak in Node.js 0.10 for `fs.ReadStream`
- * deps: dethroy@1.0.2
-
-0.8.1 / 2014-08-05
-==================
-
- * Fix `extensions` behavior when file already has extension
-
-0.8.0 / 2014-08-05
-==================
-
- * Add `extensions` option
-
-0.7.4 / 2014-08-04
-==================
-
- * Fix serving index files without root dir
-
-0.7.3 / 2014-07-29
-==================
-
- * Fix incorrect 403 on Windows and Node.js 0.11
-
-0.7.2 / 2014-07-27
-==================
-
- * deps: depd@0.4.4
- - Work-around v8 generating empty stack traces
-
-0.7.1 / 2014-07-26
-==================
-
- * deps: depd@0.4.3
- - Fix exception when global `Error.stackTraceLimit` is too low
-
-0.7.0 / 2014-07-20
-==================
-
- * Deprecate `hidden` option; use `dotfiles` option
- * Add `dotfiles` option
- * deps: debug@1.0.4
- * deps: depd@0.4.2
- - Add `TRACE_DEPRECATION` environment variable
- - Remove non-standard grey color from color output
- - Support `--no-deprecation` argument
- - Support `--trace-deprecation` argument
-
-0.6.0 / 2014-07-11
-==================
-
- * Deprecate `from` option; use `root` option
- * Deprecate `send.etag()` -- use `etag` in `options`
- * Deprecate `send.hidden()` -- use `hidden` in `options`
- * Deprecate `send.index()` -- use `index` in `options`
- * Deprecate `send.maxage()` -- use `maxAge` in `options`
- * Deprecate `send.root()` -- use `root` in `options`
- * Cap `maxAge` value to 1 year
- * deps: debug@1.0.3
- - Add support for multiple wildcards in namespaces
-
-0.5.0 / 2014-06-28
-==================
-
- * Accept string for `maxAge` (converted by `ms`)
- * Add `headers` event
- * Include link in default redirect response
- * Use `EventEmitter.listenerCount` to count listeners
-
-0.4.3 / 2014-06-11
-==================
-
- * Do not throw un-catchable error on file open race condition
- * Use `escape-html` for HTML escaping
- * deps: debug@1.0.2
- - fix some debugging output colors on node.js 0.8
- * deps: finished@1.2.2
- * deps: fresh@0.2.2
-
-0.4.2 / 2014-06-09
-==================
-
- * fix "event emitter leak" warnings
- * deps: debug@1.0.1
- * deps: finished@1.2.1
-
-0.4.1 / 2014-06-02
-==================
-
- * Send `max-age` in `Cache-Control` in correct format
-
-0.4.0 / 2014-05-27
-==================
-
- * Calculate ETag with md5 for reduced collisions
- * Fix wrong behavior when index file matches directory
- * Ignore stream errors after request ends
- - Goodbye `EBADF, read`
- * Skip directories in index file search
- * deps: debug@0.8.1
-
-0.3.0 / 2014-04-24
-==================
-
- * Fix sending files with dots without root set
- * Coerce option types
- * Accept API options in options object
- * Set etags to "weak"
- * Include file path in etag
- * Make "Can't set headers after they are sent." catchable
- * Send full entity-body for multi range requests
- * Default directory access to 403 when index disabled
- * Support multiple index paths
- * Support "If-Range" header
- * Control whether to generate etags
- * deps: mime@1.2.11
-
-0.2.0 / 2014-01-29
-==================
-
- * update range-parser and fresh
-
-0.1.4 / 2013-08-11
-==================
-
- * update fresh
-
-0.1.3 / 2013-07-08
-==================
-
- * Revert "Fix fd leak"
-
-0.1.2 / 2013-07-03
-==================
-
- * Fix fd leak
-
-0.1.0 / 2012-08-25
-==================
-
- * add options parameter to send() that is passed to fs.createReadStream() [kanongil]
-
-0.0.4 / 2012-08-16
-==================
-
- * allow custom "Accept-Ranges" definition
-
-0.0.3 / 2012-07-16
-==================
-
- * fix normalization of the root directory. Closes #3
-
-0.0.2 / 2012-07-09
-==================
-
- * add passing of req explicitly for now (YUCK)
-
-0.0.1 / 2010-01-03
-==================
-
- * Initial release
diff --git a/node_modules/send/LICENSE b/node_modules/send/LICENSE
deleted file mode 100644
index 4aa69e83d..000000000
--- a/node_modules/send/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2012 TJ Holowaychuk
-Copyright (c) 2014-2016 Douglas Christopher Wilson
-
-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.
diff --git a/node_modules/send/README.md b/node_modules/send/README.md
deleted file mode 100644
index 0c8d11df6..000000000
--- a/node_modules/send/README.md
+++ /dev/null
@@ -1,301 +0,0 @@
-# send
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Linux Build][travis-image]][travis-url]
-[![Windows Build][appveyor-image]][appveyor-url]
-[![Test Coverage][coveralls-image]][coveralls-url]
-[![Gratipay][gratipay-image]][gratipay-url]
-
-Send is a library for streaming files from the file system as a http response
-supporting partial responses (Ranges), conditional-GET negotiation (If-Match,
-If-Unmodified-Since, If-None-Match, If-Modified-Since), high test coverage,
-and granular events which may be leveraged to take appropriate actions in your
-application or framework.
-
-Looking to serve up entire folders mapped to URLs? Try [serve-static](https://www.npmjs.org/package/serve-static).
-
-## Installation
-
-This is a [Node.js](https://nodejs.org/en/) module available through the
-[npm registry](https://www.npmjs.com/). Installation is done using the
-[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
-
-```bash
-$ npm install send
-```
-
-## API
-
-<!-- eslint-disable no-unused-vars -->
-
-```js
-var send = require('send')
-```
-
-### send(req, path, [options])
-
-Create a new `SendStream` for the given path to send to a `res`. The `req` is
-the Node.js HTTP request and the `path` is a urlencoded path to send (urlencoded,
-not the actual file-system path).
-
-#### Options
-
-##### acceptRanges
-
-Enable or disable accepting ranged requests, defaults to true.
-Disabling this will not send `Accept-Ranges` and ignore the contents
-of the `Range` request header.
-
-##### cacheControl
-
-Enable or disable setting `Cache-Control` response header, defaults to
-true. Disabling this will ignore the `maxAge` option.
-
-##### dotfiles
-
-Set how "dotfiles" are treated when encountered. A dotfile is a file
-or directory that begins with a dot ("."). Note this check is done on
-the path itself without checking if the path actually exists on the
-disk. If `root` is specified, only the dotfiles above the root are
-checked (i.e. the root itself can be within a dotfile when when set
-to "deny").
-
- - `'allow'` No special treatment for dotfiles.
- - `'deny'` Send a 403 for any request for a dotfile.
- - `'ignore'` Pretend like the dotfile does not exist and 404.
-
-The default value is _similar_ to `'ignore'`, with the exception that
-this default will not ignore the files within a directory that begins
-with a dot, for backward-compatibility.
-
-##### end
-
-Byte offset at which the stream ends, defaults to the length of the file
-minus 1. The end is inclusive in the stream, meaning `end: 3` will include
-the 4th byte in the stream.
-
-##### etag
-
-Enable or disable etag generation, defaults to true.
-
-##### extensions
-
-If a given file doesn't exist, try appending one of the given extensions,
-in the given order. By default, this is disabled (set to `false`). An
-example value that will serve extension-less HTML files: `['html', 'htm']`.
-This is skipped if the requested file already has an extension.
-
-##### index
-
-By default send supports "index.html" files, to disable this
-set `false` or to supply a new index pass a string or an array
-in preferred order.
-
-##### lastModified
-
-Enable or disable `Last-Modified` header, defaults to true. Uses the file
-system's last modified value.
-
-##### maxAge
-
-Provide a max-age in milliseconds for http caching, defaults to 0.
-This can also be a string accepted by the
-[ms](https://www.npmjs.org/package/ms#readme) module.
-
-##### root
-
-Serve files relative to `path`.
-
-##### start
-
-Byte offset at which the stream starts, defaults to 0. The start is inclusive,
-meaning `start: 2` will include the 3rd byte in the stream.
-
-#### Events
-
-The `SendStream` is an event emitter and will emit the following events:
-
- - `error` an error occurred `(err)`
- - `directory` a directory was requested `(res, path)`
- - `file` a file was requested `(path, stat)`
- - `headers` the headers are about to be set on a file `(res, path, stat)`
- - `stream` file streaming has started `(stream)`
- - `end` streaming has completed
-
-#### .pipe
-
-The `pipe` method is used to pipe the response into the Node.js HTTP response
-object, typically `send(req, path, options).pipe(res)`.
-
-### .mime
-
-The `mime` export is the global instance of of the
-[`mime` npm module](https://www.npmjs.com/package/mime).
-
-This is used to configure the MIME types that are associated with file extensions
-as well as other options for how to resolve the MIME type of a file (like the
-default type to use for an unknown file extension).
-
-## Error-handling
-
-By default when no `error` listeners are present an automatic response will be
-made, otherwise you have full control over the response, aka you may show a 5xx
-page etc.
-
-## Caching
-
-It does _not_ perform internal caching, you should use a reverse proxy cache
-such as Varnish for this, or those fancy things called CDNs. If your
-application is small enough that it would benefit from single-node memory
-caching, it's small enough that it does not need caching at all ;).
-
-## Debugging
-
-To enable `debug()` instrumentation output export __DEBUG__:
-
-```
-$ DEBUG=send node app
-```
-
-## Running tests
-
-```
-$ npm install
-$ npm test
-```
-
-## Examples
-
-### Small example
-
-```js
-var http = require('http')
-var parseUrl = require('parseurl')
-var send = require('send')
-
-var server = http.createServer(function onRequest (req, res) {
- send(req, parseUrl(req).pathname).pipe(res)
-})
-
-server.listen(3000)
-```
-
-### Custom file types
-
-```js
-var http = require('http')
-var parseUrl = require('parseurl')
-var send = require('send')
-
-// Default unknown types to text/plain
-send.mime.default_type = 'text/plain'
-
-// Add a custom type
-send.mime.define({
- 'application/x-my-type': ['x-mt', 'x-mtt']
-})
-
-var server = http.createServer(function onRequest (req, res) {
- send(req, parseUrl(req).pathname).pipe(res)
-})
-
-server.listen(3000)
-```
-
-### Custom directory index view
-
-This is a example of serving up a structure of directories with a
-custom function to render a listing of a directory.
-
-```js
-var http = require('http')
-var fs = require('fs')
-var parseUrl = require('parseurl')
-var send = require('send')
-
-// Transfer arbitrary files from within /www/example.com/public/*
-// with a custom handler for directory listing
-var server = http.createServer(function onRequest (req, res) {
- send(req, parseUrl(req).pathname, {index: false, root: '/www/example.com/public'})
- .once('directory', directory)
- .pipe(res)
-})
-
-server.listen(3000)
-
-// Custom directory handler
-function directory (res, path) {
- var stream = this
-
- // redirect to trailing slash for consistent url
- if (!stream.hasTrailingSlash()) {
- return stream.redirect(path)
- }
-
- // get directory list
- fs.readdir(path, function onReaddir (err, list) {
- if (err) return stream.error(err)
-
- // render an index for the directory
- res.setHeader('Content-Type', 'text/plain; charset=UTF-8')
- res.end(list.join('\n') + '\n')
- })
-}
-```
-
-### Serving from a root directory with custom error-handling
-
-```js
-var http = require('http')
-var parseUrl = require('parseurl')
-var send = require('send')
-
-var server = http.createServer(function onRequest (req, res) {
- // your custom error-handling logic:
- function error (err) {
- res.statusCode = err.status || 500
- res.end(err.message)
- }
-
- // your custom headers
- function headers (res, path, stat) {
- // serve all files for download
- res.setHeader('Content-Disposition', 'attachment')
- }
-
- // your custom directory handling logic:
- function redirect () {
- res.statusCode = 301
- res.setHeader('Location', req.url + '/')
- res.end('Redirecting to ' + req.url + '/')
- }
-
- // transfer arbitrary files from within
- // /www/example.com/public/*
- send(req, parseUrl(req).pathname, {root: '/www/example.com/public'})
- .on('error', error)
- .on('directory', redirect)
- .on('headers', headers)
- .pipe(res)
-})
-
-server.listen(3000)
-```
-
-## License
-
-[MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/send.svg
-[npm-url]: https://npmjs.org/package/send
-[travis-image]: https://img.shields.io/travis/pillarjs/send/master.svg?label=linux
-[travis-url]: https://travis-ci.org/pillarjs/send
-[appveyor-image]: https://img.shields.io/appveyor/ci/dougwilson/send/master.svg?label=windows
-[appveyor-url]: https://ci.appveyor.com/project/dougwilson/send
-[coveralls-image]: https://img.shields.io/coveralls/pillarjs/send/master.svg
-[coveralls-url]: https://coveralls.io/r/pillarjs/send?branch=master
-[downloads-image]: https://img.shields.io/npm/dm/send.svg
-[downloads-url]: https://npmjs.org/package/send
-[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg
-[gratipay-url]: https://www.gratipay.com/dougwilson/
diff --git a/node_modules/send/index.js b/node_modules/send/index.js
deleted file mode 100644
index 375684125..000000000
--- a/node_modules/send/index.js
+++ /dev/null
@@ -1,1074 +0,0 @@
-/*!
- * send
- * Copyright(c) 2012 TJ Holowaychuk
- * Copyright(c) 2014-2016 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module dependencies.
- * @private
- */
-
-var createError = require('http-errors')
-var debug = require('debug')('send')
-var deprecate = require('depd')('send')
-var destroy = require('destroy')
-var encodeUrl = require('encodeurl')
-var escapeHtml = require('escape-html')
-var etag = require('etag')
-var EventEmitter = require('events').EventEmitter
-var fresh = require('fresh')
-var fs = require('fs')
-var mime = require('mime')
-var ms = require('ms')
-var onFinished = require('on-finished')
-var parseRange = require('range-parser')
-var path = require('path')
-var statuses = require('statuses')
-var Stream = require('stream')
-var util = require('util')
-
-/**
- * Path function references.
- * @private
- */
-
-var extname = path.extname
-var join = path.join
-var normalize = path.normalize
-var resolve = path.resolve
-var sep = path.sep
-
-/**
- * Regular expression for identifying a bytes Range header.
- * @private
- */
-
-var BYTES_RANGE_REGEXP = /^ *bytes=/
-
-/**
- * Simple expression to split token list.
- * @private
- */
-
-var TOKEN_LIST_REGEXP = / *, */
-
-/**
- * Maximum value allowed for the max age.
- * @private
- */
-
-var MAX_MAXAGE = 60 * 60 * 24 * 365 * 1000 // 1 year
-
-/**
- * Regular expression to match a path with a directory up component.
- * @private
- */
-
-var UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = send
-module.exports.mime = mime
-
-/**
- * Shim EventEmitter.listenerCount for node.js < 0.10
- */
-
-/* istanbul ignore next */
-var listenerCount = EventEmitter.listenerCount ||
- function (emitter, type) { return emitter.listeners(type).length }
-
-/**
- * Return a `SendStream` for `req` and `path`.
- *
- * @param {object} req
- * @param {string} path
- * @param {object} [options]
- * @return {SendStream}
- * @public
- */
-
-function send (req, path, options) {
- return new SendStream(req, path, options)
-}
-
-/**
- * Initialize a `SendStream` with the given `path`.
- *
- * @param {Request} req
- * @param {String} path
- * @param {object} [options]
- * @private
- */
-
-function SendStream (req, path, options) {
- Stream.call(this)
-
- var opts = options || {}
-
- this.options = opts
- this.path = path
- this.req = req
-
- this._acceptRanges = opts.acceptRanges !== undefined
- ? Boolean(opts.acceptRanges)
- : true
-
- this._cacheControl = opts.cacheControl !== undefined
- ? Boolean(opts.cacheControl)
- : true
-
- this._etag = opts.etag !== undefined
- ? Boolean(opts.etag)
- : true
-
- this._dotfiles = opts.dotfiles !== undefined
- ? opts.dotfiles
- : 'ignore'
-
- if (this._dotfiles !== 'ignore' && this._dotfiles !== 'allow' && this._dotfiles !== 'deny') {
- throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"')
- }
-
- this._hidden = Boolean(opts.hidden)
-
- if (opts.hidden !== undefined) {
- deprecate('hidden: use dotfiles: \'' + (this._hidden ? 'allow' : 'ignore') + '\' instead')
- }
-
- // legacy support
- if (opts.dotfiles === undefined) {
- this._dotfiles = undefined
- }
-
- this._extensions = opts.extensions !== undefined
- ? normalizeList(opts.extensions, 'extensions option')
- : []
-
- this._index = opts.index !== undefined
- ? normalizeList(opts.index, 'index option')
- : ['index.html']
-
- this._lastModified = opts.lastModified !== undefined
- ? Boolean(opts.lastModified)
- : true
-
- this._maxage = opts.maxAge || opts.maxage
- this._maxage = typeof this._maxage === 'string'
- ? ms(this._maxage)
- : Number(this._maxage)
- this._maxage = !isNaN(this._maxage)
- ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE)
- : 0
-
- this._root = opts.root
- ? resolve(opts.root)
- : null
-
- if (!this._root && opts.from) {
- this.from(opts.from)
- }
-}
-
-/**
- * Inherits from `Stream`.
- */
-
-util.inherits(SendStream, Stream)
-
-/**
- * Enable or disable etag generation.
- *
- * @param {Boolean} val
- * @return {SendStream}
- * @api public
- */
-
-SendStream.prototype.etag = deprecate.function(function etag (val) {
- this._etag = Boolean(val)
- debug('etag %s', this._etag)
- return this
-}, 'send.etag: pass etag as option')
-
-/**
- * Enable or disable "hidden" (dot) files.
- *
- * @param {Boolean} path
- * @return {SendStream}
- * @api public
- */
-
-SendStream.prototype.hidden = deprecate.function(function hidden (val) {
- this._hidden = Boolean(val)
- this._dotfiles = undefined
- debug('hidden %s', this._hidden)
- return this
-}, 'send.hidden: use dotfiles option')
-
-/**
- * Set index `paths`, set to a falsy
- * value to disable index support.
- *
- * @param {String|Boolean|Array} paths
- * @return {SendStream}
- * @api public
- */
-
-SendStream.prototype.index = deprecate.function(function index (paths) {
- var index = !paths ? [] : normalizeList(paths, 'paths argument')
- debug('index %o', paths)
- this._index = index
- return this
-}, 'send.index: pass index as option')
-
-/**
- * Set root `path`.
- *
- * @param {String} path
- * @return {SendStream}
- * @api public
- */
-
-SendStream.prototype.root = function root (path) {
- this._root = resolve(String(path))
- debug('root %s', this._root)
- return this
-}
-
-SendStream.prototype.from = deprecate.function(SendStream.prototype.root,
- 'send.from: pass root as option')
-
-SendStream.prototype.root = deprecate.function(SendStream.prototype.root,
- 'send.root: pass root as option')
-
-/**
- * Set max-age to `maxAge`.
- *
- * @param {Number} maxAge
- * @return {SendStream}
- * @api public
- */
-
-SendStream.prototype.maxage = deprecate.function(function maxage (maxAge) {
- this._maxage = typeof maxAge === 'string'
- ? ms(maxAge)
- : Number(maxAge)
- this._maxage = !isNaN(this._maxage)
- ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE)
- : 0
- debug('max-age %d', this._maxage)
- return this
-}, 'send.maxage: pass maxAge as option')
-
-/**
- * Emit error with `status`.
- *
- * @param {number} status
- * @param {Error} [err]
- * @private
- */
-
-SendStream.prototype.error = function error (status, err) {
- // emit if listeners instead of responding
- if (listenerCount(this, 'error') !== 0) {
- return this.emit('error', createError(status, err, {
- expose: false
- }))
- }
-
- var res = this.res
- var msg = statuses[status] || String(status)
- var doc = createHtmlDocument('Error', escapeHtml(msg))
-
- // clear existing headers
- clearHeaders(res)
-
- // add error headers
- if (err && err.headers) {
- setHeaders(res, err.headers)
- }
-
- // send basic response
- res.statusCode = status
- res.setHeader('Content-Type', 'text/html; charset=UTF-8')
- res.setHeader('Content-Length', Buffer.byteLength(doc))
- res.setHeader('Content-Security-Policy', "default-src 'self'")
- res.setHeader('X-Content-Type-Options', 'nosniff')
- res.end(doc)
-}
-
-/**
- * Check if the pathname ends with "/".
- *
- * @return {boolean}
- * @private
- */
-
-SendStream.prototype.hasTrailingSlash = function hasTrailingSlash () {
- return this.path[this.path.length - 1] === '/'
-}
-
-/**
- * Check if this is a conditional GET request.
- *
- * @return {Boolean}
- * @api private
- */
-
-SendStream.prototype.isConditionalGET = function isConditionalGET () {
- return this.req.headers['if-match'] ||
- this.req.headers['if-unmodified-since'] ||
- this.req.headers['if-none-match'] ||
- this.req.headers['if-modified-since']
-}
-
-/**
- * Check if the request preconditions failed.
- *
- * @return {boolean}
- * @private
- */
-
-SendStream.prototype.isPreconditionFailure = function isPreconditionFailure () {
- var req = this.req
- var res = this.res
-
- // if-match
- var match = req.headers['if-match']
- if (match) {
- var etag = res.getHeader('ETag')
- return !etag || (match !== '*' && match.split(TOKEN_LIST_REGEXP).every(function (match) {
- return match !== etag && match !== 'W/' + etag && 'W/' + match !== etag
- }))
- }
-
- // if-unmodified-since
- var unmodifiedSince = parseHttpDate(req.headers['if-unmodified-since'])
- if (!isNaN(unmodifiedSince)) {
- var lastModified = parseHttpDate(res.getHeader('Last-Modified'))
- return isNaN(lastModified) || lastModified > unmodifiedSince
- }
-
- return false
-}
-
-/**
- * Strip content-* header fields.
- *
- * @private
- */
-
-SendStream.prototype.removeContentHeaderFields = function removeContentHeaderFields () {
- var res = this.res
- var headers = getHeaderNames(res)
-
- for (var i = 0; i < headers.length; i++) {
- var header = headers[i]
- if (header.substr(0, 8) === 'content-' && header !== 'content-location') {
- res.removeHeader(header)
- }
- }
-}
-
-/**
- * Respond with 304 not modified.
- *
- * @api private
- */
-
-SendStream.prototype.notModified = function notModified () {
- var res = this.res
- debug('not modified')
- this.removeContentHeaderFields()
- res.statusCode = 304
- res.end()
-}
-
-/**
- * Raise error that headers already sent.
- *
- * @api private
- */
-
-SendStream.prototype.headersAlreadySent = function headersAlreadySent () {
- var err = new Error('Can\'t set headers after they are sent.')
- debug('headers already sent')
- this.error(500, err)
-}
-
-/**
- * Check if the request is cacheable, aka
- * responded with 2xx or 304 (see RFC 2616 section 14.2{5,6}).
- *
- * @return {Boolean}
- * @api private
- */
-
-SendStream.prototype.isCachable = function isCachable () {
- var statusCode = this.res.statusCode
- return (statusCode >= 200 && statusCode < 300) ||
- statusCode === 304
-}
-
-/**
- * Handle stat() error.
- *
- * @param {Error} error
- * @private
- */
-
-SendStream.prototype.onStatError = function onStatError (error) {
- switch (error.code) {
- case 'ENAMETOOLONG':
- case 'ENOENT':
- case 'ENOTDIR':
- this.error(404, error)
- break
- default:
- this.error(500, error)
- break
- }
-}
-
-/**
- * Check if the cache is fresh.
- *
- * @return {Boolean}
- * @api private
- */
-
-SendStream.prototype.isFresh = function isFresh () {
- return fresh(this.req.headers, {
- 'etag': this.res.getHeader('ETag'),
- 'last-modified': this.res.getHeader('Last-Modified')
- })
-}
-
-/**
- * Check if the range is fresh.
- *
- * @return {Boolean}
- * @api private
- */
-
-SendStream.prototype.isRangeFresh = function isRangeFresh () {
- var ifRange = this.req.headers['if-range']
-
- if (!ifRange) {
- return true
- }
-
- // if-range as etag
- if (ifRange.indexOf('"') !== -1) {
- var etag = this.res.getHeader('ETag')
- return Boolean(etag && ifRange.indexOf(etag) !== -1)
- }
-
- // if-range as modified date
- var lastModified = this.res.getHeader('Last-Modified')
- return parseHttpDate(lastModified) <= parseHttpDate(ifRange)
-}
-
-/**
- * Redirect to path.
- *
- * @param {string} path
- * @private
- */
-
-SendStream.prototype.redirect = function redirect (path) {
- var res = this.res
-
- if (listenerCount(this, 'directory') !== 0) {
- this.emit('directory', res, path)
- return
- }
-
- if (this.hasTrailingSlash()) {
- this.error(403)
- return
- }
-
- var loc = encodeUrl(collapseLeadingSlashes(this.path + '/'))
- var doc = createHtmlDocument('Redirecting', 'Redirecting to <a href="' + escapeHtml(loc) + '">' +
- escapeHtml(loc) + '</a>')
-
- // redirect
- res.statusCode = 301
- res.setHeader('Content-Type', 'text/html; charset=UTF-8')
- res.setHeader('Content-Length', Buffer.byteLength(doc))
- res.setHeader('Content-Security-Policy', "default-src 'self'")
- res.setHeader('X-Content-Type-Options', 'nosniff')
- res.setHeader('Location', loc)
- res.end(doc)
-}
-
-/**
- * Pipe to `res.
- *
- * @param {Stream} res
- * @return {Stream} res
- * @api public
- */
-
-SendStream.prototype.pipe = function pipe (res) {
- // root path
- var root = this._root
-
- // references
- this.res = res
-
- // decode the path
- var path = decode(this.path)
- if (path === -1) {
- this.error(400)
- return res
- }
-
- // null byte(s)
- if (~path.indexOf('\0')) {
- this.error(400)
- return res
- }
-
- var parts
- if (root !== null) {
- // malicious path
- if (UP_PATH_REGEXP.test(normalize('.' + sep + path))) {
- debug('malicious path "%s"', path)
- this.error(403)
- return res
- }
-
- // join / normalize from optional root dir
- path = normalize(join(root, path))
- root = normalize(root + sep)
-
- // explode path parts
- parts = path.substr(root.length).split(sep)
- } else {
- // ".." is malicious without "root"
- if (UP_PATH_REGEXP.test(path)) {
- debug('malicious path "%s"', path)
- this.error(403)
- return res
- }
-
- // explode path parts
- parts = normalize(path).split(sep)
-
- // resolve the path
- path = resolve(path)
- }
-
- // dotfile handling
- if (containsDotFile(parts)) {
- var access = this._dotfiles
-
- // legacy support
- if (access === undefined) {
- access = parts[parts.length - 1][0] === '.'
- ? (this._hidden ? 'allow' : 'ignore')
- : 'allow'
- }
-
- debug('%s dotfile "%s"', access, path)
- switch (access) {
- case 'allow':
- break
- case 'deny':
- this.error(403)
- return res
- case 'ignore':
- default:
- this.error(404)
- return res
- }
- }
-
- // index file support
- if (this._index.length && this.hasTrailingSlash()) {
- this.sendIndex(path)
- return res
- }
-
- this.sendFile(path)
- return res
-}
-
-/**
- * Transfer `path`.
- *
- * @param {String} path
- * @api public
- */
-
-SendStream.prototype.send = function send (path, stat) {
- var len = stat.size
- var options = this.options
- var opts = {}
- var res = this.res
- var req = this.req
- var ranges = req.headers.range
- var offset = options.start || 0
-
- if (headersSent(res)) {
- // impossible to send now
- this.headersAlreadySent()
- return
- }
-
- debug('pipe "%s"', path)
-
- // set header fields
- this.setHeader(path, stat)
-
- // set content-type
- this.type(path)
-
- // conditional GET support
- if (this.isConditionalGET()) {
- if (this.isPreconditionFailure()) {
- this.error(412)
- return
- }
-
- if (this.isCachable() && this.isFresh()) {
- this.notModified()
- return
- }
- }
-
- // adjust len to start/end options
- len = Math.max(0, len - offset)
- if (options.end !== undefined) {
- var bytes = options.end - offset + 1
- if (len > bytes) len = bytes
- }
-
- // Range support
- if (this._acceptRanges && BYTES_RANGE_REGEXP.test(ranges)) {
- // parse
- ranges = parseRange(len, ranges, {
- combine: true
- })
-
- // If-Range support
- if (!this.isRangeFresh()) {
- debug('range stale')
- ranges = -2
- }
-
- // unsatisfiable
- if (ranges === -1) {
- debug('range unsatisfiable')
-
- // Content-Range
- res.setHeader('Content-Range', contentRange('bytes', len))
-
- // 416 Requested Range Not Satisfiable
- return this.error(416, {
- headers: {'Content-Range': res.getHeader('Content-Range')}
- })
- }
-
- // valid (syntactically invalid/multiple ranges are treated as a regular response)
- if (ranges !== -2 && ranges.length === 1) {
- debug('range %j', ranges)
-
- // Content-Range
- res.statusCode = 206
- res.setHeader('Content-Range', contentRange('bytes', len, ranges[0]))
-
- // adjust for requested range
- offset += ranges[0].start
- len = ranges[0].end - ranges[0].start + 1
- }
- }
-
- // clone options
- for (var prop in options) {
- opts[prop] = options[prop]
- }
-
- // set read options
- opts.start = offset
- opts.end = Math.max(offset, offset + len - 1)
-
- // content-length
- res.setHeader('Content-Length', len)
-
- // HEAD support
- if (req.method === 'HEAD') {
- res.end()
- return
- }
-
- this.stream(path, opts)
-}
-
-/**
- * Transfer file for `path`.
- *
- * @param {String} path
- * @api private
- */
-SendStream.prototype.sendFile = function sendFile (path) {
- var i = 0
- var self = this
-
- debug('stat "%s"', path)
- fs.stat(path, function onstat (err, stat) {
- if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {
- // not found, check extensions
- return next(err)
- }
- if (err) return self.onStatError(err)
- if (stat.isDirectory()) return self.redirect(path)
- self.emit('file', path, stat)
- self.send(path, stat)
- })
-
- function next (err) {
- if (self._extensions.length <= i) {
- return err
- ? self.onStatError(err)
- : self.error(404)
- }
-
- var p = path + '.' + self._extensions[i++]
-
- debug('stat "%s"', p)
- fs.stat(p, function (err, stat) {
- if (err) return next(err)
- if (stat.isDirectory()) return next()
- self.emit('file', p, stat)
- self.send(p, stat)
- })
- }
-}
-
-/**
- * Transfer index for `path`.
- *
- * @param {String} path
- * @api private
- */
-SendStream.prototype.sendIndex = function sendIndex (path) {
- var i = -1
- var self = this
-
- function next (err) {
- if (++i >= self._index.length) {
- if (err) return self.onStatError(err)
- return self.error(404)
- }
-
- var p = join(path, self._index[i])
-
- debug('stat "%s"', p)
- fs.stat(p, function (err, stat) {
- if (err) return next(err)
- if (stat.isDirectory()) return next()
- self.emit('file', p, stat)
- self.send(p, stat)
- })
- }
-
- next()
-}
-
-/**
- * Stream `path` to the response.
- *
- * @param {String} path
- * @param {Object} options
- * @api private
- */
-
-SendStream.prototype.stream = function stream (path, options) {
- // TODO: this is all lame, refactor meeee
- var finished = false
- var self = this
- var res = this.res
-
- // pipe
- var stream = fs.createReadStream(path, options)
- this.emit('stream', stream)
- stream.pipe(res)
-
- // response finished, done with the fd
- onFinished(res, function onfinished () {
- finished = true
- destroy(stream)
- })
-
- // error handling code-smell
- stream.on('error', function onerror (err) {
- // request already finished
- if (finished) return
-
- // clean up stream
- finished = true
- destroy(stream)
-
- // error
- self.onStatError(err)
- })
-
- // end
- stream.on('end', function onend () {
- self.emit('end')
- })
-}
-
-/**
- * Set content-type based on `path`
- * if it hasn't been explicitly set.
- *
- * @param {String} path
- * @api private
- */
-
-SendStream.prototype.type = function type (path) {
- var res = this.res
-
- if (res.getHeader('Content-Type')) return
-
- var type = mime.lookup(path)
-
- if (!type) {
- debug('no content-type')
- return
- }
-
- var charset = mime.charsets.lookup(type)
-
- debug('content-type %s', type)
- res.setHeader('Content-Type', type + (charset ? '; charset=' + charset : ''))
-}
-
-/**
- * Set response header fields, most
- * fields may be pre-defined.
- *
- * @param {String} path
- * @param {Object} stat
- * @api private
- */
-
-SendStream.prototype.setHeader = function setHeader (path, stat) {
- var res = this.res
-
- this.emit('headers', res, path, stat)
-
- if (this._acceptRanges && !res.getHeader('Accept-Ranges')) {
- debug('accept ranges')
- res.setHeader('Accept-Ranges', 'bytes')
- }
-
- if (this._cacheControl && !res.getHeader('Cache-Control')) {
- var cacheControl = 'public, max-age=' + Math.floor(this._maxage / 1000)
- debug('cache-control %s', cacheControl)
- res.setHeader('Cache-Control', cacheControl)
- }
-
- if (this._lastModified && !res.getHeader('Last-Modified')) {
- var modified = stat.mtime.toUTCString()
- debug('modified %s', modified)
- res.setHeader('Last-Modified', modified)
- }
-
- if (this._etag && !res.getHeader('ETag')) {
- var val = etag(stat)
- debug('etag %s', val)
- res.setHeader('ETag', val)
- }
-}
-
-/**
- * Clear all headers from a response.
- *
- * @param {object} res
- * @private
- */
-
-function clearHeaders (res) {
- var headers = getHeaderNames(res)
-
- for (var i = 0; i < headers.length; i++) {
- res.removeHeader(headers[i])
- }
-}
-
-/**
- * Collapse all leading slashes into a single slash
- *
- * @param {string} str
- * @private
- */
-function collapseLeadingSlashes (str) {
- for (var i = 0; i < str.length; i++) {
- if (str[i] !== '/') {
- break
- }
- }
-
- return i > 1
- ? '/' + str.substr(i)
- : str
-}
-
-/**
- * Determine if path parts contain a dotfile.
- *
- * @api private
- */
-
-function containsDotFile (parts) {
- for (var i = 0; i < parts.length; i++) {
- if (parts[i][0] === '.') {
- return true
- }
- }
-
- return false
-}
-
-/**
- * Create a Content-Range header.
- *
- * @param {string} type
- * @param {number} size
- * @param {array} [range]
- */
-
-function contentRange (type, size, range) {
- return type + ' ' + (range ? range.start + '-' + range.end : '*') + '/' + size
-}
-
-/**
- * Create a minimal HTML document.
- *
- * @param {string} title
- * @param {string} body
- * @private
- */
-
-function createHtmlDocument (title, body) {
- return '<!DOCTYPE html>\n' +
- '<html lang="en">\n' +
- '<head>\n' +
- '<meta charset="utf-8">\n' +
- '<title>' + title + '</title>\n' +
- '</head>\n' +
- '<body>\n' +
- '<pre>' + body + '</pre>\n' +
- '</body>\n'
-}
-
-/**
- * decodeURIComponent.
- *
- * Allows V8 to only deoptimize this fn instead of all
- * of send().
- *
- * @param {String} path
- * @api private
- */
-
-function decode (path) {
- try {
- return decodeURIComponent(path)
- } catch (err) {
- return -1
- }
-}
-
-/**
- * Get the header names on a respnse.
- *
- * @param {object} res
- * @returns {array[string]}
- * @private
- */
-
-function getHeaderNames (res) {
- return typeof res.getHeaderNames !== 'function'
- ? Object.keys(res._headers || {})
- : res.getHeaderNames()
-}
-
-/**
- * Determine if the response headers have been sent.
- *
- * @param {object} res
- * @returns {boolean}
- * @private
- */
-
-function headersSent (res) {
- return typeof res.headersSent !== 'boolean'
- ? Boolean(res._header)
- : res.headersSent
-}
-
-/**
- * Normalize the index option into an array.
- *
- * @param {boolean|string|array} val
- * @param {string} name
- * @private
- */
-
-function normalizeList (val, name) {
- var list = [].concat(val || [])
-
- for (var i = 0; i < list.length; i++) {
- if (typeof list[i] !== 'string') {
- throw new TypeError(name + ' must be array of strings or false')
- }
- }
-
- return list
-}
-
-/**
- * Parse an HTTP Date into a number.
- *
- * @param {string} date
- * @private
- */
-
-function parseHttpDate (date) {
- var timestamp = date && Date.parse(date)
-
- return typeof timestamp === 'number'
- ? timestamp
- : NaN
-}
-
-/**
- * Set an object of headers on a response.
- *
- * @param {object} res
- * @param {object} headers
- * @private
- */
-
-function setHeaders (res, headers) {
- var keys = Object.keys(headers)
-
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i]
- res.setHeader(key, headers[key])
- }
-}
diff --git a/node_modules/send/node_modules/.bin/mime b/node_modules/send/node_modules/.bin/mime
deleted file mode 120000
index 210a0bd45..000000000
--- a/node_modules/send/node_modules/.bin/mime
+++ /dev/null
@@ -1 +0,0 @@
-../../../mime/cli.js \ No newline at end of file
diff --git a/node_modules/send/package.json b/node_modules/send/package.json
deleted file mode 100644
index 7298be2b4..000000000
--- a/node_modules/send/package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "name": "send",
- "description": "Better streaming static file server with Range and conditional-GET support",
- "version": "0.15.3",
- "author": "TJ Holowaychuk <tj@vision-media.ca>",
- "contributors": [
- "Douglas Christopher Wilson <doug@somethingdoug.com>",
- "James Wyatt Cready <jcready@gmail.com>",
- "Jesús Leganés Combarro <piranna@gmail.com>"
- ],
- "license": "MIT",
- "repository": "pillarjs/send",
- "keywords": [
- "static",
- "file",
- "server"
- ],
- "dependencies": {
- "debug": "2.6.7",
- "depd": "~1.1.0",
- "destroy": "~1.0.4",
- "encodeurl": "~1.0.1",
- "escape-html": "~1.0.3",
- "etag": "~1.8.0",
- "fresh": "0.5.0",
- "http-errors": "~1.6.1",
- "mime": "1.3.4",
- "ms": "2.0.0",
- "on-finished": "~2.3.0",
- "range-parser": "~1.2.0",
- "statuses": "~1.3.1"
- },
- "devDependencies": {
- "after": "0.8.2",
- "eslint": "3.19.0",
- "eslint-config-standard": "7.1.0",
- "eslint-plugin-markdown": "1.0.0-beta.6",
- "eslint-plugin-promise": "3.5.0",
- "eslint-plugin-standard": "2.3.1",
- "istanbul": "0.4.5",
- "mocha": "2.5.3",
- "supertest": "1.1.0"
- },
- "files": [
- "HISTORY.md",
- "LICENSE",
- "README.md",
- "index.js"
- ],
- "engines": {
- "node": ">= 0.8.0"
- },
- "scripts": {
- "lint": "eslint --plugin markdown --ext js,md .",
- "test": "mocha --check-leaks --reporter spec --bail",
- "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot"
- }
-}
diff --git a/node_modules/serve-static/HISTORY.md b/node_modules/serve-static/HISTORY.md
deleted file mode 100644
index c9811070d..000000000
--- a/node_modules/serve-static/HISTORY.md
+++ /dev/null
@@ -1,377 +0,0 @@
-1.12.3 / 2017-05-16
-===================
-
- * deps: send@0.15.3
- - deps: debug@2.6.7
-
-1.12.2 / 2017-04-26
-===================
-
- * deps: send@0.15.2
- - deps: debug@2.6.4
-
-1.12.1 / 2017-03-04
-===================
-
- * deps: send@0.15.1
- - Fix issue when `Date.parse` does not return `NaN` on invalid date
- - Fix strict violation in broken environments
-
-1.12.0 / 2017-02-25
-===================
-
- * Send complete HTML document in redirect response
- * Set default CSP header in redirect response
- * deps: send@0.15.0
- - Fix false detection of `no-cache` request directive
- - Fix incorrect result when `If-None-Match` has both `*` and ETags
- - Fix weak `ETag` matching to match spec
- - Remove usage of `res._headers` private field
- - Support `If-Match` and `If-Unmodified-Since` headers
- - Use `res.getHeaderNames()` when available
- - Use `res.headersSent` when available
- - deps: debug@2.6.1
- - deps: etag@~1.8.0
- - deps: fresh@0.5.0
- - deps: http-errors@~1.6.1
-
-1.11.2 / 2017-01-23
-===================
-
- * deps: send@0.14.2
- - deps: http-errors@~1.5.1
- - deps: ms@0.7.2
- - deps: statuses@~1.3.1
-
-1.11.1 / 2016-06-10
-===================
-
- * Fix redirect error when `req.url` contains raw non-URL characters
- * deps: send@0.14.1
-
-1.11.0 / 2016-06-07
-===================
-
- * Use status code 301 for redirects
- * deps: send@0.14.0
- - Add `acceptRanges` option
- - Add `cacheControl` option
- - Attempt to combine multiple ranges into single range
- - Correctly inherit from `Stream` class
- - Fix `Content-Range` header in 416 responses when using `start`/`end` options
- - Fix `Content-Range` header missing from default 416 responses
- - Ignore non-byte `Range` headers
- - deps: http-errors@~1.5.0
- - deps: range-parser@~1.2.0
- - deps: statuses@~1.3.0
- - perf: remove argument reassignment
-
-1.10.3 / 2016-05-30
-===================
-
- * deps: send@0.13.2
- - Fix invalid `Content-Type` header when `send.mime.default_type` unset
-
-1.10.2 / 2016-01-19
-===================
-
- * deps: parseurl@~1.3.1
- - perf: enable strict mode
-
-1.10.1 / 2016-01-16
-===================
-
- * deps: escape-html@~1.0.3
- - perf: enable strict mode
- - perf: optimize string replacement
- - perf: use faster string coercion
- * deps: send@0.13.1
- - deps: depd@~1.1.0
- - deps: destroy@~1.0.4
- - deps: escape-html@~1.0.3
- - deps: range-parser@~1.0.3
-
-1.10.0 / 2015-06-17
-===================
-
- * Add `fallthrough` option
- - Allows declaring this middleware is the final destination
- - Provides better integration with Express patterns
- * Fix reading options from options prototype
- * Improve the default redirect response headers
- * deps: escape-html@1.0.2
- * deps: send@0.13.0
- - Allow Node.js HTTP server to set `Date` response header
- - Fix incorrectly removing `Content-Location` on 304 response
- - Improve the default redirect response headers
- - Send appropriate headers on default error response
- - Use `http-errors` for standard emitted errors
- - Use `statuses` instead of `http` module for status messages
- - deps: escape-html@1.0.2
- - deps: etag@~1.7.0
- - deps: fresh@0.3.0
- - deps: on-finished@~2.3.0
- - perf: enable strict mode
- - perf: remove unnecessary array allocations
- * perf: enable strict mode
- * perf: remove argument reassignment
-
-1.9.3 / 2015-05-14
-==================
-
- * deps: send@0.12.3
- - deps: debug@~2.2.0
- - deps: depd@~1.0.1
- - deps: etag@~1.6.0
- - deps: ms@0.7.1
- - deps: on-finished@~2.2.1
-
-1.9.2 / 2015-03-14
-==================
-
- * deps: send@0.12.2
- - Throw errors early for invalid `extensions` or `index` options
- - deps: debug@~2.1.3
-
-1.9.1 / 2015-02-17
-==================
-
- * deps: send@0.12.1
- - Fix regression sending zero-length files
-
-1.9.0 / 2015-02-16
-==================
-
- * deps: send@0.12.0
- - Always read the stat size from the file
- - Fix mutating passed-in `options`
- - deps: mime@1.3.4
-
-1.8.1 / 2015-01-20
-==================
-
- * Fix redirect loop in Node.js 0.11.14
- * deps: send@0.11.1
- - Fix root path disclosure
-
-1.8.0 / 2015-01-05
-==================
-
- * deps: send@0.11.0
- - deps: debug@~2.1.1
- - deps: etag@~1.5.1
- - deps: ms@0.7.0
- - deps: on-finished@~2.2.0
-
-1.7.2 / 2015-01-02
-==================
-
- * Fix potential open redirect when mounted at root
-
-1.7.1 / 2014-10-22
-==================
-
- * deps: send@0.10.1
- - deps: on-finished@~2.1.1
-
-1.7.0 / 2014-10-15
-==================
-
- * deps: send@0.10.0
- - deps: debug@~2.1.0
- - deps: depd@~1.0.0
- - deps: etag@~1.5.0
-
-1.6.5 / 2015-02-04
-==================
-
- * Fix potential open redirect when mounted at root
- - Back-ported from v1.7.2
-
-1.6.4 / 2014-10-08
-==================
-
- * Fix redirect loop when index file serving disabled
-
-1.6.3 / 2014-09-24
-==================
-
- * deps: send@0.9.3
- - deps: etag@~1.4.0
-
-1.6.2 / 2014-09-15
-==================
-
- * deps: send@0.9.2
- - deps: depd@0.4.5
- - deps: etag@~1.3.1
- - deps: range-parser@~1.0.2
-
-1.6.1 / 2014-09-07
-==================
-
- * deps: send@0.9.1
- - deps: fresh@0.2.4
-
-1.6.0 / 2014-09-07
-==================
-
- * deps: send@0.9.0
- - Add `lastModified` option
- - Use `etag` to generate `ETag` header
- - deps: debug@~2.0.0
-
-1.5.4 / 2014-09-04
-==================
-
- * deps: send@0.8.5
- - Fix a path traversal issue when using `root`
- - Fix malicious path detection for empty string path
-
-1.5.3 / 2014-08-17
-==================
-
- * deps: send@0.8.3
-
-1.5.2 / 2014-08-14
-==================
-
- * deps: send@0.8.2
- - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream`
-
-1.5.1 / 2014-08-09
-==================
-
- * Fix parsing of weird `req.originalUrl` values
- * deps: parseurl@~1.3.0
- * deps: utils-merge@1.0.0
-
-1.5.0 / 2014-08-05
-==================
-
- * deps: send@0.8.1
- - Add `extensions` option
-
-1.4.4 / 2014-08-04
-==================
-
- * deps: send@0.7.4
- - Fix serving index files without root dir
-
-1.4.3 / 2014-07-29
-==================
-
- * deps: send@0.7.3
- - Fix incorrect 403 on Windows and Node.js 0.11
-
-1.4.2 / 2014-07-27
-==================
-
- * deps: send@0.7.2
- - deps: depd@0.4.4
-
-1.4.1 / 2014-07-26
-==================
-
- * deps: send@0.7.1
- - deps: depd@0.4.3
-
-1.4.0 / 2014-07-21
-==================
-
- * deps: parseurl@~1.2.0
- - Cache URLs based on original value
- - Remove no-longer-needed URL mis-parse work-around
- - Simplify the "fast-path" `RegExp`
- * deps: send@0.7.0
- - Add `dotfiles` option
- - deps: debug@1.0.4
- - deps: depd@0.4.2
-
-1.3.2 / 2014-07-11
-==================
-
- * deps: send@0.6.0
- - Cap `maxAge` value to 1 year
- - deps: debug@1.0.3
-
-1.3.1 / 2014-07-09
-==================
-
- * deps: parseurl@~1.1.3
- - faster parsing of href-only URLs
-
-1.3.0 / 2014-06-28
-==================
-
- * Add `setHeaders` option
- * Include HTML link in redirect response
- * deps: send@0.5.0
- - Accept string for `maxAge` (converted by `ms`)
-
-1.2.3 / 2014-06-11
-==================
-
- * deps: send@0.4.3
- - Do not throw un-catchable error on file open race condition
- - Use `escape-html` for HTML escaping
- - deps: debug@1.0.2
- - deps: finished@1.2.2
- - deps: fresh@0.2.2
-
-1.2.2 / 2014-06-09
-==================
-
- * deps: send@0.4.2
- - fix "event emitter leak" warnings
- - deps: debug@1.0.1
- - deps: finished@1.2.1
-
-1.2.1 / 2014-06-02
-==================
-
- * use `escape-html` for escaping
- * deps: send@0.4.1
- - Send `max-age` in `Cache-Control` in correct format
-
-1.2.0 / 2014-05-29
-==================
-
- * deps: send@0.4.0
- - Calculate ETag with md5 for reduced collisions
- - Fix wrong behavior when index file matches directory
- - Ignore stream errors after request ends
- - Skip directories in index file search
- - deps: debug@0.8.1
-
-1.1.0 / 2014-04-24
-==================
-
- * Accept options directly to `send` module
- * deps: send@0.3.0
-
-1.0.4 / 2014-04-07
-==================
-
- * Resolve relative paths at middleware setup
- * Use parseurl to parse the URL from request
-
-1.0.3 / 2014-03-20
-==================
-
- * Do not rely on connect-like environments
-
-1.0.2 / 2014-03-06
-==================
-
- * deps: send@0.2.0
-
-1.0.1 / 2014-03-05
-==================
-
- * Add mime export for back-compat
-
-1.0.0 / 2014-03-05
-==================
-
- * Genesis from `connect`
diff --git a/node_modules/serve-static/LICENSE b/node_modules/serve-static/LICENSE
deleted file mode 100644
index cbe62e8e7..000000000
--- a/node_modules/serve-static/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2010 Sencha Inc.
-Copyright (c) 2011 LearnBoost
-Copyright (c) 2011 TJ Holowaychuk
-Copyright (c) 2014-2016 Douglas Christopher Wilson
-
-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.
diff --git a/node_modules/serve-static/README.md b/node_modules/serve-static/README.md
deleted file mode 100644
index 3dd5f48c3..000000000
--- a/node_modules/serve-static/README.md
+++ /dev/null
@@ -1,253 +0,0 @@
-# serve-static
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Linux Build][travis-image]][travis-url]
-[![Windows Build][appveyor-image]][appveyor-url]
-[![Test Coverage][coveralls-image]][coveralls-url]
-[![Gratipay][gratipay-image]][gratipay-url]
-
-## Install
-
-This is a [Node.js](https://nodejs.org/en/) module available through the
-[npm registry](https://www.npmjs.com/). Installation is done using the
-[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
-
-```sh
-$ npm install serve-static
-```
-
-## API
-
-<!-- eslint-disable no-unused-vars -->
-
-```js
-var serveStatic = require('serve-static')
-```
-
-### serveStatic(root, options)
-
-Create a new middleware function to serve files from within a given root
-directory. The file to serve will be determined by combining `req.url`
-with the provided root directory. When a file is not found, instead of
-sending a 404 response, this module will instead call `next()` to move on
-to the next middleware, allowing for stacking and fall-backs.
-
-#### Options
-
-##### acceptRanges
-
-Enable or disable accepting ranged requests, defaults to true.
-Disabling this will not send `Accept-Ranges` and ignore the contents
-of the `Range` request header.
-
-##### cacheControl
-
-Enable or disable setting `Cache-Control` response header, defaults to
-true. Disabling this will ignore the `maxAge` option.
-
-##### dotfiles
-
- Set how "dotfiles" are treated when encountered. A dotfile is a file
-or directory that begins with a dot ("."). Note this check is done on
-the path itself without checking if the path actually exists on the
-disk. If `root` is specified, only the dotfiles above the root are
-checked (i.e. the root itself can be within a dotfile when set
-to "deny").
-
- - `'allow'` No special treatment for dotfiles.
- - `'deny'` Deny a request for a dotfile and 403/`next()`.
- - `'ignore'` Pretend like the dotfile does not exist and 404/`next()`.
-
-The default value is similar to `'ignore'`, with the exception that this
-default will not ignore the files within a directory that begins with a dot.
-
-##### etag
-
-Enable or disable etag generation, defaults to true.
-
-##### extensions
-
-Set file extension fallbacks. When set, if a file is not found, the given
-extensions will be added to the file name and search for. The first that
-exists will be served. Example: `['html', 'htm']`.
-
-The default value is `false`.
-
-##### fallthrough
-
-Set the middleware to have client errors fall-through as just unhandled
-requests, otherwise forward a client error. The difference is that client
-errors like a bad request or a request to a non-existent file will cause
-this middleware to simply `next()` to your next middleware when this value
-is `true`. When this value is `false`, these errors (even 404s), will invoke
-`next(err)`.
-
-Typically `true` is desired such that multiple physical directories can be
-mapped to the same web address or for routes to fill in non-existent files.
-
-The value `false` can be used if this middleware is mounted at a path that
-is designed to be strictly a single file system directory, which allows for
-short-circuiting 404s for less overhead. This middleware will also reply to
-all methods.
-
-The default value is `true`.
-
-##### index
-
-By default this module will send "index.html" files in response to a request
-on a directory. To disable this set `false` or to supply a new index pass a
-string or an array in preferred order.
-
-##### lastModified
-
-Enable or disable `Last-Modified` header, defaults to true. Uses the file
-system's last modified value.
-
-##### maxAge
-
-Provide a max-age in milliseconds for http caching, defaults to 0. This
-can also be a string accepted by the [ms](https://www.npmjs.org/package/ms#readme)
-module.
-
-##### redirect
-
-Redirect to trailing "/" when the pathname is a dir. Defaults to `true`.
-
-##### setHeaders
-
-Function to set custom headers on response. Alterations to the headers need to
-occur synchronously. The function is called as `fn(res, path, stat)`, where
-the arguments are:
-
- - `res` the response object
- - `path` the file path that is being sent
- - `stat` the stat object of the file that is being sent
-
-## Examples
-
-### Serve files with vanilla node.js http server
-
-```js
-var finalhandler = require('finalhandler')
-var http = require('http')
-var serveStatic = require('serve-static')
-
-// Serve up public/ftp folder
-var serve = serveStatic('public/ftp', {'index': ['index.html', 'index.htm']})
-
-// Create server
-var server = http.createServer(function onRequest (req, res) {
- serve(req, res, finalhandler(req, res))
-})
-
-// Listen
-server.listen(3000)
-```
-
-### Serve all files as downloads
-
-```js
-var contentDisposition = require('content-disposition')
-var finalhandler = require('finalhandler')
-var http = require('http')
-var serveStatic = require('serve-static')
-
-// Serve up public/ftp folder
-var serve = serveStatic('public/ftp', {
- 'index': false,
- 'setHeaders': setHeaders
-})
-
-// Set header to force download
-function setHeaders (res, path) {
- res.setHeader('Content-Disposition', contentDisposition(path))
-}
-
-// Create server
-var server = http.createServer(function onRequest (req, res) {
- serve(req, res, finalhandler(req, res))
-})
-
-// Listen
-server.listen(3000)
-```
-
-### Serving using express
-
-#### Simple
-
-This is a simple example of using Express.
-
-```js
-var express = require('express')
-var serveStatic = require('serve-static')
-
-var app = express()
-
-app.use(serveStatic('public/ftp', {'index': ['default.html', 'default.htm']}))
-app.listen(3000)
-```
-
-#### Multiple roots
-
-This example shows a simple way to search through multiple directories.
-Files are look for in `public-optimized/` first, then `public/` second as
-a fallback.
-
-```js
-var express = require('express')
-var path = require('path')
-var serveStatic = require('serve-static')
-
-var app = express()
-
-app.use(serveStatic(path.join(__dirname, 'public-optimized')))
-app.use(serveStatic(path.join(__dirname, 'public')))
-app.listen(3000)
-```
-
-#### Different settings for paths
-
-This example shows how to set a different max age depending on the served
-file type. In this example, HTML files are not cached, while everything else
-is for 1 day.
-
-```js
-var express = require('express')
-var path = require('path')
-var serveStatic = require('serve-static')
-
-var app = express()
-
-app.use(serveStatic(path.join(__dirname, 'public'), {
- maxAge: '1d',
- setHeaders: setCustomCacheControl
-}))
-
-app.listen(3000)
-
-function setCustomCacheControl (res, path) {
- if (serveStatic.mime.lookup(path) === 'text/html') {
- // Custom Cache-Control for HTML files
- res.setHeader('Cache-Control', 'public, max-age=0')
- }
-}
-```
-
-## License
-
-[MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/serve-static.svg
-[npm-url]: https://npmjs.org/package/serve-static
-[travis-image]: https://img.shields.io/travis/expressjs/serve-static/master.svg?label=linux
-[travis-url]: https://travis-ci.org/expressjs/serve-static
-[appveyor-image]: https://img.shields.io/appveyor/ci/dougwilson/serve-static/master.svg?label=windows
-[appveyor-url]: https://ci.appveyor.com/project/dougwilson/serve-static
-[coveralls-image]: https://img.shields.io/coveralls/expressjs/serve-static/master.svg
-[coveralls-url]: https://coveralls.io/r/expressjs/serve-static
-[downloads-image]: https://img.shields.io/npm/dm/serve-static.svg
-[downloads-url]: https://npmjs.org/package/serve-static
-[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg
-[gratipay-url]: https://gratipay.com/dougwilson/
diff --git a/node_modules/serve-static/index.js b/node_modules/serve-static/index.js
deleted file mode 100644
index 85df3d05d..000000000
--- a/node_modules/serve-static/index.js
+++ /dev/null
@@ -1,209 +0,0 @@
-/*!
- * serve-static
- * Copyright(c) 2010 Sencha Inc.
- * Copyright(c) 2011 TJ Holowaychuk
- * Copyright(c) 2014-2016 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module dependencies.
- * @private
- */
-
-var encodeUrl = require('encodeurl')
-var escapeHtml = require('escape-html')
-var parseUrl = require('parseurl')
-var resolve = require('path').resolve
-var send = require('send')
-var url = require('url')
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = serveStatic
-module.exports.mime = send.mime
-
-/**
- * @param {string} root
- * @param {object} [options]
- * @return {function}
- * @public
- */
-
-function serveStatic (root, options) {
- if (!root) {
- throw new TypeError('root path required')
- }
-
- if (typeof root !== 'string') {
- throw new TypeError('root path must be a string')
- }
-
- // copy options object
- var opts = Object.create(options || null)
-
- // fall-though
- var fallthrough = opts.fallthrough !== false
-
- // default redirect
- var redirect = opts.redirect !== false
-
- // headers listener
- var setHeaders = opts.setHeaders
-
- if (setHeaders && typeof setHeaders !== 'function') {
- throw new TypeError('option setHeaders must be function')
- }
-
- // setup options for send
- opts.maxage = opts.maxage || opts.maxAge || 0
- opts.root = resolve(root)
-
- // construct directory listener
- var onDirectory = redirect
- ? createRedirectDirectoryListener()
- : createNotFoundDirectoryListener()
-
- return function serveStatic (req, res, next) {
- if (req.method !== 'GET' && req.method !== 'HEAD') {
- if (fallthrough) {
- return next()
- }
-
- // method not allowed
- res.statusCode = 405
- res.setHeader('Allow', 'GET, HEAD')
- res.setHeader('Content-Length', '0')
- res.end()
- return
- }
-
- var forwardError = !fallthrough
- var originalUrl = parseUrl.original(req)
- var path = parseUrl(req).pathname
-
- // make sure redirect occurs at mount
- if (path === '/' && originalUrl.pathname.substr(-1) !== '/') {
- path = ''
- }
-
- // create send stream
- var stream = send(req, path, opts)
-
- // add directory handler
- stream.on('directory', onDirectory)
-
- // add headers listener
- if (setHeaders) {
- stream.on('headers', setHeaders)
- }
-
- // add file listener for fallthrough
- if (fallthrough) {
- stream.on('file', function onFile () {
- // once file is determined, always forward error
- forwardError = true
- })
- }
-
- // forward errors
- stream.on('error', function error (err) {
- if (forwardError || !(err.statusCode < 500)) {
- next(err)
- return
- }
-
- next()
- })
-
- // pipe
- stream.pipe(res)
- }
-}
-
-/**
- * Collapse all leading slashes into a single slash
- * @private
- */
-function collapseLeadingSlashes (str) {
- for (var i = 0; i < str.length; i++) {
- if (str[i] !== '/') {
- break
- }
- }
-
- return i > 1
- ? '/' + str.substr(i)
- : str
-}
-
- /**
- * Create a minimal HTML document.
- *
- * @param {string} title
- * @param {string} body
- * @private
- */
-
-function createHtmlDocument (title, body) {
- return '<!DOCTYPE html>\n' +
- '<html lang="en">\n' +
- '<head>\n' +
- '<meta charset="utf-8">\n' +
- '<title>' + title + '</title>\n' +
- '</head>\n' +
- '<body>\n' +
- '<pre>' + body + '</pre>\n' +
- '</body>\n'
-}
-
-/**
- * Create a directory listener that just 404s.
- * @private
- */
-
-function createNotFoundDirectoryListener () {
- return function notFound () {
- this.error(404)
- }
-}
-
-/**
- * Create a directory listener that performs a redirect.
- * @private
- */
-
-function createRedirectDirectoryListener () {
- return function redirect (res) {
- if (this.hasTrailingSlash()) {
- this.error(404)
- return
- }
-
- // get original URL
- var originalUrl = parseUrl.original(this.req)
-
- // append trailing slash
- originalUrl.path = null
- originalUrl.pathname = collapseLeadingSlashes(originalUrl.pathname + '/')
-
- // reformat the URL
- var loc = encodeUrl(url.format(originalUrl))
- var doc = createHtmlDocument('Redirecting', 'Redirecting to <a href="' + escapeHtml(loc) + '">' +
- escapeHtml(loc) + '</a>')
-
- // send redirect response
- res.statusCode = 301
- res.setHeader('Content-Type', 'text/html; charset=UTF-8')
- res.setHeader('Content-Length', Buffer.byteLength(doc))
- res.setHeader('Content-Security-Policy', "default-src 'self'")
- res.setHeader('X-Content-Type-Options', 'nosniff')
- res.setHeader('Location', loc)
- res.end(doc)
- }
-}
diff --git a/node_modules/serve-static/package.json b/node_modules/serve-static/package.json
deleted file mode 100644
index d78ce81f5..000000000
--- a/node_modules/serve-static/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "serve-static",
- "description": "Serve static files",
- "version": "1.12.3",
- "author": "Douglas Christopher Wilson <doug@somethingdoug.com>",
- "license": "MIT",
- "repository": "expressjs/serve-static",
- "dependencies": {
- "encodeurl": "~1.0.1",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.1",
- "send": "0.15.3"
- },
- "devDependencies": {
- "eslint": "3.19.0",
- "eslint-config-standard": "10.2.1",
- "eslint-plugin-import": "2.2.0",
- "eslint-plugin-markdown": "1.0.0-beta.6",
- "eslint-plugin-node": "4.2.2",
- "eslint-plugin-promise": "3.5.0",
- "eslint-plugin-standard": "3.0.1",
- "istanbul": "0.4.5",
- "mocha": "2.5.3",
- "supertest": "1.1.0"
- },
- "files": [
- "LICENSE",
- "HISTORY.md",
- "index.js"
- ],
- "engines": {
- "node": ">= 0.8.0"
- },
- "scripts": {
- "lint": "eslint --plugin markdown --ext js,md .",
- "test": "mocha --reporter spec --bail --check-leaks test/",
- "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/"
- }
-}
diff --git a/node_modules/setprototypeof/LICENSE b/node_modules/setprototypeof/LICENSE
deleted file mode 100644
index 61afa2f18..000000000
--- a/node_modules/setprototypeof/LICENSE
+++ /dev/null
@@ -1,13 +0,0 @@
-Copyright (c) 2015, Wes Todd
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/setprototypeof/README.md b/node_modules/setprototypeof/README.md
deleted file mode 100644
index 01d794705..000000000
--- a/node_modules/setprototypeof/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Polyfill for `Object.setPrototypeOf`
-
-A simple cross platform implementation to set the prototype of an instianted object. Supports all modern browsers and at least back to IE8.
-
-## Usage:
-
-```
-$ npm install --save setprototypeof
-```
-
-```javascript
-var setPrototypeOf = require('setprototypeof');
-
-var obj = {};
-setPrototypeOf(obj, {
- foo: function() {
- return 'bar';
- }
-});
-obj.foo(); // bar
-```
diff --git a/node_modules/setprototypeof/index.js b/node_modules/setprototypeof/index.js
deleted file mode 100644
index 93ea4176c..000000000
--- a/node_modules/setprototypeof/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-module.exports = Object.setPrototypeOf || ({__proto__:[]} instanceof Array ? setProtoOf : mixinProperties);
-
-function setProtoOf(obj, proto) {
- obj.__proto__ = proto;
- return obj;
-}
-
-function mixinProperties(obj, proto) {
- for (var prop in proto) {
- if (!obj.hasOwnProperty(prop)) {
- obj[prop] = proto[prop];
- }
- }
- return obj;
-}
diff --git a/node_modules/setprototypeof/package.json b/node_modules/setprototypeof/package.json
deleted file mode 100644
index d7ca9f681..000000000
--- a/node_modules/setprototypeof/package.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "name": "setprototypeof",
- "version": "1.0.3",
- "description": "A small polyfill for Object.setprototypeof",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/wesleytodd/setprototypeof.git"
- },
- "keywords": [
- "polyfill",
- "object",
- "setprototypeof"
- ],
- "author": "Wes Todd",
- "license": "ISC",
- "bugs": {
- "url": "https://github.com/wesleytodd/setprototypeof/issues"
- },
- "homepage": "https://github.com/wesleytodd/setprototypeof"
-}
diff --git a/node_modules/statuses/HISTORY.md b/node_modules/statuses/HISTORY.md
deleted file mode 100644
index 3015a5fec..000000000
--- a/node_modules/statuses/HISTORY.md
+++ /dev/null
@@ -1,55 +0,0 @@
-1.3.1 / 2016-11-11
-==================
-
- * Fix return type in JSDoc
-
-1.3.0 / 2016-05-17
-==================
-
- * Add `421 Misdirected Request`
- * perf: enable strict mode
-
-1.2.1 / 2015-02-01
-==================
-
- * Fix message for status 451
- - `451 Unavailable For Legal Reasons`
-
-1.2.0 / 2014-09-28
-==================
-
- * Add `208 Already Repored`
- * Add `226 IM Used`
- * Add `306 (Unused)`
- * Add `415 Unable For Legal Reasons`
- * Add `508 Loop Detected`
-
-1.1.1 / 2014-09-24
-==================
-
- * Add missing 308 to `codes.json`
-
-1.1.0 / 2014-09-21
-==================
-
- * Add `codes.json` for universal support
-
-1.0.4 / 2014-08-20
-==================
-
- * Package cleanup
-
-1.0.3 / 2014-06-08
-==================
-
- * Add 308 to `.redirect` category
-
-1.0.2 / 2014-03-13
-==================
-
- * Add `.retry` category
-
-1.0.1 / 2014-03-12
-==================
-
- * Initial release
diff --git a/node_modules/statuses/LICENSE b/node_modules/statuses/LICENSE
deleted file mode 100644
index 82af4df54..000000000
--- a/node_modules/statuses/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-
-The MIT License (MIT)
-
-Copyright (c) 2014 Jonathan Ong me@jongleberry.com
-Copyright (c) 2016 Douglas Christopher Wilson doug@somethingdoug.com
-
-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.
diff --git a/node_modules/statuses/README.md b/node_modules/statuses/README.md
deleted file mode 100644
index 2bf0756e0..000000000
--- a/node_modules/statuses/README.md
+++ /dev/null
@@ -1,103 +0,0 @@
-# Statuses
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Node.js Version][node-version-image]][node-version-url]
-[![Build Status][travis-image]][travis-url]
-[![Test Coverage][coveralls-image]][coveralls-url]
-
-HTTP status utility for node.
-
-## API
-
-```js
-var status = require('statuses')
-```
-
-### var code = status(Integer || String)
-
-If `Integer` or `String` is a valid HTTP code or status message, then the appropriate `code` will be returned. Otherwise, an error will be thrown.
-
-```js
-status(403) // => 403
-status('403') // => 403
-status('forbidden') // => 403
-status('Forbidden') // => 403
-status(306) // throws, as it's not supported by node.js
-```
-
-### status.codes
-
-Returns an array of all the status codes as `Integer`s.
-
-### var msg = status[code]
-
-Map of `code` to `status message`. `undefined` for invalid `code`s.
-
-```js
-status[404] // => 'Not Found'
-```
-
-### var code = status[msg]
-
-Map of `status message` to `code`. `msg` can either be title-cased or lower-cased. `undefined` for invalid `status message`s.
-
-```js
-status['not found'] // => 404
-status['Not Found'] // => 404
-```
-
-### status.redirect[code]
-
-Returns `true` if a status code is a valid redirect status.
-
-```js
-status.redirect[200] // => undefined
-status.redirect[301] // => true
-```
-
-### status.empty[code]
-
-Returns `true` if a status code expects an empty body.
-
-```js
-status.empty[200] // => undefined
-status.empty[204] // => true
-status.empty[304] // => true
-```
-
-### status.retry[code]
-
-Returns `true` if you should retry the rest.
-
-```js
-status.retry[501] // => undefined
-status.retry[503] // => true
-```
-
-## Adding Status Codes
-
-The status codes are primarily sourced from http://www.iana.org/assignments/http-status-codes/http-status-codes-1.csv.
-Additionally, custom codes are added from http://en.wikipedia.org/wiki/List_of_HTTP_status_codes.
-These are added manually in the `lib/*.json` files.
-If you would like to add a status code, add it to the appropriate JSON file.
-
-To rebuild `codes.json`, run the following:
-
-```bash
-# update src/iana.json
-npm run fetch
-# build codes.json
-npm run build
-```
-
-[npm-image]: https://img.shields.io/npm/v/statuses.svg
-[npm-url]: https://npmjs.org/package/statuses
-[node-version-image]: https://img.shields.io/badge/node.js-%3E%3D_0.6-brightgreen.svg
-[node-version-url]: https://nodejs.org/en/download
-[travis-image]: https://img.shields.io/travis/jshttp/statuses.svg
-[travis-url]: https://travis-ci.org/jshttp/statuses
-[coveralls-image]: https://img.shields.io/coveralls/jshttp/statuses.svg
-[coveralls-url]: https://coveralls.io/r/jshttp/statuses?branch=master
-[downloads-image]: https://img.shields.io/npm/dm/statuses.svg
-[downloads-url]: https://npmjs.org/package/statuses
diff --git a/node_modules/statuses/codes.json b/node_modules/statuses/codes.json
deleted file mode 100644
index e76512337..000000000
--- a/node_modules/statuses/codes.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "100": "Continue",
- "101": "Switching Protocols",
- "102": "Processing",
- "200": "OK",
- "201": "Created",
- "202": "Accepted",
- "203": "Non-Authoritative Information",
- "204": "No Content",
- "205": "Reset Content",
- "206": "Partial Content",
- "207": "Multi-Status",
- "208": "Already Reported",
- "226": "IM Used",
- "300": "Multiple Choices",
- "301": "Moved Permanently",
- "302": "Found",
- "303": "See Other",
- "304": "Not Modified",
- "305": "Use Proxy",
- "306": "(Unused)",
- "307": "Temporary Redirect",
- "308": "Permanent Redirect",
- "400": "Bad Request",
- "401": "Unauthorized",
- "402": "Payment Required",
- "403": "Forbidden",
- "404": "Not Found",
- "405": "Method Not Allowed",
- "406": "Not Acceptable",
- "407": "Proxy Authentication Required",
- "408": "Request Timeout",
- "409": "Conflict",
- "410": "Gone",
- "411": "Length Required",
- "412": "Precondition Failed",
- "413": "Payload Too Large",
- "414": "URI Too Long",
- "415": "Unsupported Media Type",
- "416": "Range Not Satisfiable",
- "417": "Expectation Failed",
- "418": "I'm a teapot",
- "421": "Misdirected Request",
- "422": "Unprocessable Entity",
- "423": "Locked",
- "424": "Failed Dependency",
- "425": "Unordered Collection",
- "426": "Upgrade Required",
- "428": "Precondition Required",
- "429": "Too Many Requests",
- "431": "Request Header Fields Too Large",
- "451": "Unavailable For Legal Reasons",
- "500": "Internal Server Error",
- "501": "Not Implemented",
- "502": "Bad Gateway",
- "503": "Service Unavailable",
- "504": "Gateway Timeout",
- "505": "HTTP Version Not Supported",
- "506": "Variant Also Negotiates",
- "507": "Insufficient Storage",
- "508": "Loop Detected",
- "509": "Bandwidth Limit Exceeded",
- "510": "Not Extended",
- "511": "Network Authentication Required"
-} \ No newline at end of file
diff --git a/node_modules/statuses/index.js b/node_modules/statuses/index.js
deleted file mode 100644
index 9f955c6fc..000000000
--- a/node_modules/statuses/index.js
+++ /dev/null
@@ -1,110 +0,0 @@
-/*!
- * statuses
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2016 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module dependencies.
- * @private
- */
-
-var codes = require('./codes.json')
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = status
-
-// array of status codes
-status.codes = populateStatusesMap(status, codes)
-
-// status codes for redirects
-status.redirect = {
- 300: true,
- 301: true,
- 302: true,
- 303: true,
- 305: true,
- 307: true,
- 308: true
-}
-
-// status codes for empty bodies
-status.empty = {
- 204: true,
- 205: true,
- 304: true
-}
-
-// status codes for when you should retry the request
-status.retry = {
- 502: true,
- 503: true,
- 504: true
-}
-
-/**
- * Populate the statuses map for given codes.
- * @private
- */
-
-function populateStatusesMap (statuses, codes) {
- var arr = []
-
- Object.keys(codes).forEach(function forEachCode (code) {
- var message = codes[code]
- var status = Number(code)
-
- // Populate properties
- statuses[status] = message
- statuses[message] = status
- statuses[message.toLowerCase()] = status
-
- // Add to array
- arr.push(status)
- })
-
- return arr
-}
-
-/**
- * Get the status code.
- *
- * Given a number, this will throw if it is not a known status
- * code, otherwise the code will be returned. Given a string,
- * the string will be parsed for a number and return the code
- * if valid, otherwise will lookup the code assuming this is
- * the status message.
- *
- * @param {string|number} code
- * @returns {number}
- * @public
- */
-
-function status (code) {
- if (typeof code === 'number') {
- if (!status[code]) throw new Error('invalid status code: ' + code)
- return code
- }
-
- if (typeof code !== 'string') {
- throw new TypeError('code must be a number or string')
- }
-
- // '403'
- var n = parseInt(code, 10)
- if (!isNaN(n)) {
- if (!status[n]) throw new Error('invalid status code: ' + n)
- return n
- }
-
- n = status[code.toLowerCase()]
- if (!n) throw new Error('invalid status message: "' + code + '"')
- return n
-}
diff --git a/node_modules/statuses/package.json b/node_modules/statuses/package.json
deleted file mode 100644
index f1637397f..000000000
--- a/node_modules/statuses/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "statuses",
- "description": "HTTP status utility",
- "version": "1.3.1",
- "contributors": [
- "Douglas Christopher Wilson <doug@somethingdoug.com>",
- "Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)"
- ],
- "repository": "jshttp/statuses",
- "license": "MIT",
- "keywords": [
- "http",
- "status",
- "code"
- ],
- "files": [
- "HISTORY.md",
- "index.js",
- "codes.json",
- "LICENSE"
- ],
- "devDependencies": {
- "csv-parse": "1.1.7",
- "eslint": "3.10.0",
- "eslint-config-standard": "6.2.1",
- "eslint-plugin-promise": "3.3.2",
- "eslint-plugin-standard": "2.0.1",
- "istanbul": "0.4.5",
- "mocha": "1.21.5",
- "stream-to-array": "2.3.0"
- },
- "engines": {
- "node": ">= 0.6"
- },
- "scripts": {
- "build": "node scripts/build.js",
- "fetch": "node scripts/fetch.js",
- "lint": "eslint .",
- "test": "mocha --reporter spec --check-leaks --bail test/",
- "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/",
- "update": "npm run fetch && npm run build"
- }
-}
diff --git a/node_modules/systemjs/LICENSE b/node_modules/systemjs/LICENSE
deleted file mode 100644
index 1e467a8cf..000000000
--- a/node_modules/systemjs/LICENSE
+++ /dev/null
@@ -1,10 +0,0 @@
-MIT License
------------
-
-Copyright (C) 2013-2016 Guy Bedford
-
-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.
diff --git a/node_modules/systemjs/README.md b/node_modules/systemjs/README.md
deleted file mode 100644
index 8eab2cc46..000000000
--- a/node_modules/systemjs/README.md
+++ /dev/null
@@ -1,152 +0,0 @@
-SystemJS
-========
-
-[![Build Status][travis-image]][travis-url]
-[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/systemjs/systemjs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-[![Support](https://supporterhq.com/api/b/33df4abbec4d39260f49015d2457eafe/SystemJS)](https://supporterhq.com/support/33df4abbec4d39260f49015d2457eafe/SystemJS)
-
-_SystemJS 0.20.0-alpha.1 is now available with performance improvements and Web Assembly support. [Try it out here](https://github.com/systemjs/systemjs/releases/tag/0.20.0-alpha.1)._
-
-Universal dynamic module loader - loads ES6 modules, AMD, CommonJS and global scripts in the browser and NodeJS.
-
-* [Loads any module format](docs/module-formats.md) with [exact circular reference and binding support](https://github.com/ModuleLoader/es6-module-loader/blob/v0.17.0/docs/circular-references-bindings.md).
-* Loads [ES6 modules compiled into the `System.register` bundle format for production](docs/production-workflows.md), maintaining circular references support.
-* Supports RequireJS-style [map](docs/overview.md#map-config), [paths](https://github.com/ModuleLoader/es6-module-loader/blob/master/docs/loader-config.md#paths-implementation), [bundles](docs/production-workflows.md#bundle-extension) and [global shims](docs/module-formats.md#shim-dependencies).
-* [Loader plugins](docs/overview.md#plugin-loaders) allow custom transpilation or asset loading.
-
-Built to the format ES6-specified loader API from [ES6 Specification Draft Rev 27, Section 15](http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27),
-and will be updated to the [WhatWG loader API](https://whatwg.github.io/loader/) as soon as it can be considered stable for implementation.
-
-~19KB minified and gzipped, runs in IE8+ and NodeJS.
-
-For discussion, join the [Gitter Room](https://gitter.im/systemjs/systemjs).
-
-Documentation
----
-
-* [ES6 Modules Overview](docs/es6-modules-overview.md)
-* [SystemJS Overview](docs/overview.md)
-* [Config API](docs/config-api.md)
-* [Module Formats](docs/module-formats.md)
-* [Production Workflows](docs/production-workflows.md)
-* [System API](docs/system-api.md)
-* [Creating Plugins](docs/creating-plugins.md)
-
-Basic Use
----
-
-### Browser
-
-```html
-<script src="system.js"></script>
-<script>
- // set our baseURL reference path
- SystemJS.config({
- baseURL: '/js'
- });
-
- // loads /js/main.js
- SystemJS.import('main.js');
-</script>
-```
-
-The above will support loading all module formats, including ES Modules transpiled into the System.register format.
-
-To load ES6 code with in-browser transpilation, configure one of the following transpiler plugins:
-
-* [Babel](https://github.com/systemjs/plugin-babel)
-* [TypeScript](https://github.com/frankwallis/plugin-typescript)
-* [Traceur](http://github.com/systemjs/plugin-traceur)
-
-### Promise Polyfill
-
-SystemJS relies on `Promise` being present in the environment.
-
-For the best performance in IE and older browsers, it is advisable to load a polyfill like [Bluebird](https://github.com/petkaantonov/bluebird) or [es6-promise](https://github.com/stefanpenner/es6-promise) before SystemJS.
-
-Otherwise, when Promise is not available, SystemJS will attempt to load the `system-polyfills.js` file located in the dist folder which contains the when.js Promise polyfill.
-
-### NodeJS
-
-To load modules in NodeJS, install SystemJS with:
-
-```
- npm install systemjs
-```
-
-If transpiling ES6, also install the transpiler plugin, following the instructions from the transpiler project page.
-
-We can then load modules equivalently in NodeJS as we do in the browser:
-
-```javascript
-var SystemJS = require('systemjs');
-
-// loads './app.js' from the current directory
-SystemJS.import('./app.js').then(function(m) {
- console.log(m);
-});
-```
-
-If you are using jspm as a package manager you will also need to load the generated configuration.
-The best way to do this in node is to get your `System` instance through jspm, which will automatically load your config correctly for you:
-
-```js
-var Loader = require('jspm').Loader;
-var SystemJS = new Loader();
-
-SystemJS.import('lodash').then(function (_) {
- console.log(_);
-});
-```
-
-### Plugins
-
-Supported loader plugins:
-
-* [CSS](https://github.com/systemjs/plugin-css)
-* [LESS](https://github.com/systemjs/plugin-less)
-* [Image](https://github.com/systemjs/plugin-image)
-* [JSON](https://github.com/systemjs/plugin-json)
-* [Text](https://github.com/systemjs/plugin-text)
-* [Node Binary](https://github.com/systemjs/plugin-node-binary)
-
-Additional Plugins:
-
-* [Audio](https://github.com/ozsay/plugin-audio)
-* [CoffeeScript](https://github.com/forresto/plugin-coffee)
-* [Ember Handlebars](https://github.com/n-fuse/plugin-ember-hbs)
-* [Handlebars](https://github.com/davis/plugin-hbs)
-* [HTML](https://github.com/Hypercubed/systemjs-plugin-html/)
-* [Image (lazy)](https://github.com/laurentgoudet/plugin-lazyimage)
-* [Jade](https://github.com/johnsoftek/plugin-jade)
-* [Jade VirtualDOM](https://github.com/WorldMaker/system-jade-virtualdom)
-* [jst](https://github.com/podio/plugin-jst)
-* [JSX](https://github.com/floatdrop/plugin-jsx)
-* [Markdown](https://github.com/guybedford/plugin-md)
-* [raw](https://github.com/matthewbauer/plugin-raw)
-* [SASS](https://github.com/screendriver/plugin-sass)
-* [SCSS](https://github.com/kevcjones/plugin-scss)
-* [sofe](https://github.com/CanopyTax/sofe)
-* [svelte](https://github.com/CanopyTax/system-svelte)
-* [SVG](https://github.com/vuzonp/systemjs-plugin-svg)
-* [WebFont](https://github.com/guybedford/plugin-font)
-* [WebWorkers](https://github.com/casperlamboo/plugin-worker)
-* [YAML](https://github.com/tb/plugin-yaml)
-
-Guides:
-
-* [Using plugins](docs/overview.md#plugin-loaders)
-* [Creating plugins](docs/creating-plugins.md)
-
-#### Running the tests
-
-To install the dependencies correctly, run `bower install` from the root of the repo, then open `test/test.html` in a browser with a local server
-or file access flags enabled.
-
-License
----
-
-MIT
-
-[travis-url]: https://travis-ci.org/systemjs/systemjs
-[travis-image]: https://travis-ci.org/systemjs/systemjs.svg?branch=master
diff --git a/node_modules/systemjs/dist/system-csp-production.js b/node_modules/systemjs/dist/system-csp-production.js
deleted file mode 100644
index 8cbabeb0e..000000000
--- a/node_modules/systemjs/dist/system-csp-production.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
- * SystemJS v0.19.47
- */
-!function(){function e(){!function(e){function t(e,n){if("string"!=typeof e)throw new TypeError("URL must be a string");var r=String(e).replace(/^\s+|\s+$/g,"").replace(/\\/g,"/").match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@\/?#]*)(?::([^:@\/?#]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);if(!r)throw new RangeError("Invalid URL format");var a=r[1]||"",o=r[2]||"",i=r[3]||"",s=r[4]||"",l=r[5]||"",u=r[6]||"",d=r[7]||"",c=r[8]||"",f=r[9]||"";if(void 0!==n){var m=n instanceof t?n:new t(n),p=!a&&!s&&!o;!p||d||c||(c=m.search),p&&"/"!==d[0]&&(d=d?(!m.host&&!m.username||m.pathname?"":"/")+m.pathname.slice(0,m.pathname.lastIndexOf("/")+1)+d:m.pathname);var h=[];d.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(e){"/.."===e?h.pop():h.push(e)}),d=h.join("").replace(/^\//,"/"===d[0]?"/":""),p&&(u=m.port,l=m.hostname,s=m.host,i=m.password,o=m.username),a||(a=m.protocol)}d=d.replace(/\\/g,"/"),this.origin=s?a+(""!==a||""!==s?"//":"")+s:"",this.href=a+(a&&s||"file:"==a?"//":"")+(""!==o?o+(""!==i?":"+i:"")+"@":"")+s+d+c+f,this.protocol=a,this.username=o,this.password=i,this.host=s,this.hostname=l,this.port=u,this.pathname=d,this.search=c,this.hash=f}e.URLPolyfill=t}("undefined"!=typeof self?self:global),function(e){function t(e,t){if(!e.originalErr)for(var n=((e.message||e)+(e.stack?"\n"+e.stack:"")).toString().split("\n"),r=[],a=0;a<n.length;a++)("undefined"==typeof $__curScript||-1==n[a].indexOf($__curScript.src))&&r.push(n[a]);var o="(SystemJS) "+(r?r.join("\n "):e.message.substr(11))+"\n "+t;U||(o=o.replace(A?/file:\/\/\//g:/file:\/\//g,""));var i=F?new Error(o,e.fileName,e.lineNumber):new Error(o);return i.stack=o,i.originalErr=e.originalErr||e,i}function n(){}function r(t){this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},J(this,"global",{get:function(){return e}})}function a(){r.call(this),this.paths={},this._loader.paths={},Y.call(this)}function o(){}function i(e,t){a.prototype[e]=t(a.prototype[e]||function(){})}function s(e){Y=e(Y||function(){})}function l(e){return e.match(Z)}function u(e){return"."==e[0]&&(!e[1]||"/"==e[1]||"."==e[1])||"/"==e[0]}function d(e){return!u(e)&&!l(e)}function c(e,t){if("."==e[0]){if("/"==e[1]&&"."!=e[2])return(t&&t.substr(0,t.lastIndexOf("/")+1)||N)+e.substr(2)}else if("/"!=e[0]&&-1==e.indexOf(":"))return(t&&t.substr(0,t.lastIndexOf("/")+1)||N)+e;return new G(e,t&&t.replace(/#/g,"%05")||K).href.replace(/%05/g,"#")}function f(e,t){var n,r="",a=0,o=e.paths,i=e._loader.paths;for(var s in o)if(!o.hasOwnProperty||o.hasOwnProperty(s)){var l=o[s];if(l!==i[s]&&(l=o[s]=i[s]=c(o[s],u(o[s])?N:e.baseURL)),-1===s.indexOf("*")){if(t==s)return o[s];if(t.substr(0,s.length-1)==s.substr(0,s.length-1)&&(t.length<s.length||t[s.length-1]==s[s.length-1])&&("/"==o[s][o[s].length-1]||""==o[s]))return o[s].substr(0,o[s].length-1)+(t.length>s.length?(o[s]&&"/"||"")+t.substr(s.length):"")}else{var d=s.split("*");if(d.length>2)throw new TypeError("Only one wildcard in a path is permitted");var f=d[0].length;f>=a&&t.substr(0,d[0].length)==d[0]&&t.substr(t.length-d[1].length)==d[1]&&(a=f,r=s,n=t.substr(d[0].length,t.length-d[1].length-d[0].length))}}var m=o[r];return"string"==typeof n&&(m=m.replace("*",n)),m}function m(e){for(var t=[],n=[],r=0,a=e.length;a>r;r++){var o=$.call(t,e[r]);-1===o?(t.push(e[r]),n.push([r])):n[o].push(r)}return{names:t,indices:n}}function p(t){var n={};if(("object"==typeof t||"function"==typeof t)&&t!==e)if(Q)for(var r in t)"default"!==r&&h(n,t,r);else g(n,t);return n["default"]=t,J(n,"__useDefault",{value:!0}),n}function h(e,t,n){try{var r;(r=Object.getOwnPropertyDescriptor(t,n))&&J(e,n,r)}catch(a){return e[n]=t[n],!1}}function g(e,t,n){var r=t&&t.hasOwnProperty;for(var a in t)(!r||t.hasOwnProperty(a))&&(n&&a in e||(e[a]=t[a]));return e}function v(e,t,n){var r=t&&t.hasOwnProperty;for(var a in t)if(!r||t.hasOwnProperty(a)){var o=t[a];a in e?o instanceof Array&&e[a]instanceof Array?e[a]=[].concat(n?o:e[a]).concat(n?e[a]:o):"object"==typeof o&&null!==o&&"object"==typeof e[a]?e[a]=g(g({},e[a]),o,n):n||(e[a]=o):e[a]=o}}function y(e,t,n,r,a){for(var o in t)if(-1!=$.call(["main","format","defaultExtension","basePath"],o))e[o]=t[o];else if("map"==o)g(e.map=e.map||{},t.map);else if("meta"==o)g(e.meta=e.meta||{},t.meta);else if("depCache"==o)for(var i in t.depCache){var s;s="./"==i.substr(0,2)?n+"/"+i.substr(2):k.call(r,i),r.depCache[s]=(r.depCache[s]||[]).concat(t.depCache[i])}else!a||-1!=$.call(["browserConfig","nodeConfig","devConfig","productionConfig"],o)||t.hasOwnProperty&&!t.hasOwnProperty(o)||w.call(r,'"'+o+'" is not a valid package configuration option in package '+n)}function b(e,t,n,r){var a;if(e.packages[t]){var o=e.packages[t];a=e.packages[t]={},y(a,r?n:o,t,e,r),y(a,r?o:n,t,e,!r)}else a=e.packages[t]=n;return"object"==typeof a.main&&(a.map=a.map||{},a.map["./@main"]=a.main,a.main["default"]=a.main["default"]||"./",a.main="@main"),a}function w(e){this.warnings&&"undefined"!=typeof console&&console.warn&&console.warn(e)}function x(e,t){e.metadata.entry=R(),e.metadata.entry.execute=function(){return t},e.metadata.entry.deps=[],e.metadata.format="defined"}function S(e,t){for(var n=e.split(".");n.length;)t=t[n.shift()];return t}function E(e,t){var n,r=0;for(var a in e)if(t.substr(0,a.length)==a&&(t.length==a.length||"/"==t[a.length])){var o=a.split("/").length;if(r>=o)continue;n=a,r=o}return n}function _(e){this._loader.baseURL!==this.baseURL&&("/"!=this.baseURL[this.baseURL.length-1]&&(this.baseURL+="/"),this._loader.baseURL=this.baseURL=new G(this.baseURL,K).href)}function P(e,t){this.set("@system-env",te=this.newModule({browser:U,node:!!this._nodeRequire,production:!t&&e,dev:t||!e,build:t,"default":!0}))}function j(e,t){if(!d(e))throw new Error("Node module "+e+" can't be loaded as it is not a package require.");if(!ne){var n=this._nodeRequire("module"),r=t.substr(A?8:7);ne=new n(r),ne.paths=n._nodeModulePaths(r)}return ne.require(e)}function k(e,t){if(u(e))return c(e,t);if(l(e))return e;var n=E(this.map,e);if(n){if(e=this.map[n]+e.substr(n.length),u(e))return c(e);if(l(e))return e}if(this.has(e))return e;if("@node/"==e.substr(0,6)){if(!this._nodeRequire)throw new TypeError("Error loading "+e+". Can only load node core modules in Node.");return this.builder?this.set(e,this.newModule({})):this.set(e,this.newModule(p(j.call(this,e.substr(6),this.baseURL)))),e}return _.call(this),f(this,e)||this.baseURL+e}function O(e,t,n){te.browser&&t.browserConfig&&n(t.browserConfig),te.node&&t.nodeConfig&&n(t.nodeConfig),te.dev&&t.devConfig&&n(t.devConfig),te.build&&t.buildConfig&&n(t.buildConfig),te.production&&t.productionConfig&&n(t.productionConfig)}function M(e){var t=e.match(oe);return t&&"System.register"==e.substr(t[0].length,15)}function R(){return{name:null,deps:null,originalIndices:null,declare:null,execute:null,executingRequire:!1,declarative:!1,normalizedDeps:null,groupIndex:null,evaluated:!1,module:null,esModule:null,esmExports:!1}}function z(t){if("string"==typeof t)return S(t,e);if(!(t instanceof Array))throw new Error("Global exports must be a string or array.");for(var n={},r=!0,a=0;a<t.length;a++){var o=S(t[a],e);r&&(n["default"]=o,r=!1),n[t[a].split(".").pop()]=o}return n}function I(e){var t,n,r,r="~"==e[0],a=e.lastIndexOf("|");return-1!=a?(t=e.substr(a+1),n=e.substr(r,a-r),r&&w.call(this,'Condition negation form "'+e+'" is deprecated for "'+n+"|~"+t+'"'),"~"==t[0]&&(r=!0,t=t.substr(1))):(t="default",n=e.substr(r),-1!=ie.indexOf(n)&&(t=n,n=null)),{module:n||"@system-env",prop:t,negate:r}}function C(e){return e.module+"|"+(e.negate?"~":"")+e.prop}function L(e,t,n){var r=this;return this.normalize(e.module,t).then(function(t){return r.load(t).then(function(a){var o=S(e.prop,r.get(t));if(n&&"boolean"!=typeof o)throw new TypeError("Condition "+C(e)+" did not resolve to a boolean.");return e.negate?!o:o})})}function T(e,t){var n=e.match(se);if(!n)return Promise.resolve(e);var r=I.call(this,n[0].substr(2,n[0].length-3));return this.builder?this.normalize(r.module,t).then(function(t){return r.module=t,e.replace(se,"#{"+C(r)+"}")}):L.call(this,r,t,!1).then(function(n){if("string"!=typeof n)throw new TypeError("The condition value for "+e+" doesn't resolve to a string.");if(-1!=n.indexOf("/"))throw new TypeError("Unabled to interpolate conditional "+e+(t?" in "+t:"")+"\n The condition value "+n+' cannot contain a "/" separator.');return e.replace(se,n)})}function D(e,t){var n=e.lastIndexOf("#?");if(-1==n)return Promise.resolve(e);var r=I.call(this,e.substr(n+2));return this.builder?this.normalize(r.module,t).then(function(t){return r.module=t,e.substr(0,n)+"#?"+C(r)}):L.call(this,r,t,!0).then(function(t){return t?e.substr(0,n):"@empty"})}var q="undefined"==typeof window&&"undefined"!=typeof self&&"undefined"!=typeof importScripts,U="undefined"!=typeof window&&"undefined"!=typeof document,A="undefined"!=typeof process&&"undefined"!=typeof process.platform&&!!process.platform.match(/^win/);e.console||(e.console={assert:function(){}});var J,$=Array.prototype.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1};!function(){try{Object.defineProperty({},"a",{})&&(J=Object.defineProperty)}catch(e){J=function(e,t,n){try{e[t]=n.value||n.get.call(e)}catch(r){}}}}();var N,F="_"==new Error(0,"_").fileName;if("undefined"!=typeof document&&document.getElementsByTagName){if(N=document.baseURI,!N){var B=document.getElementsByTagName("base");N=B[0]&&B[0].href||window.location.href}}else"undefined"!=typeof location&&(N=e.location.href);if(N)N=N.split("#")[0].split("?")[0],N=N.substr(0,N.lastIndexOf("/")+1);else{if("undefined"==typeof process||!process.cwd)throw new TypeError("No environment baseURI");N="file://"+(A?"/":"")+process.cwd()+"/",A&&(N=N.replace(/\\/g,"/"))}try{var H="test:"==new e.URL("test:///").protocol}catch(X){}var G=H?e.URL:e.URLPolyfill;J(n.prototype,"toString",{value:function(){return"Module"}}),function(){function e(e){return{status:"loading",name:e||"<Anonymous"+ ++b+">",linkSets:[],dependencies:[],metadata:{}}}function a(e,t,n){return new Promise(u({step:n.address?"fetch":"locate",loader:e,moduleName:t,moduleMetadata:n&&n.metadata||{},moduleSource:n.source,moduleAddress:n.address}))}function o(t,n,r,a){return new Promise(function(e,o){e(t.loaderObj.normalize(n,r,a))}).then(function(n){var r;if(t.modules[n])return r=e(n),r.status="linked",r.module=t.modules[n],r;for(var a=0,o=t.loads.length;o>a;a++)if(r=t.loads[a],r.name==n)return r;return r=e(n),t.loads.push(r),i(t,r),r})}function i(e,t){s(e,t,Promise.resolve().then(function(){return e.loaderObj.locate({name:t.name,metadata:t.metadata})}))}function s(e,t,n){l(e,t,n.then(function(n){return"loading"==t.status?(t.address=n,e.loaderObj.fetch({name:t.name,metadata:t.metadata,address:n})):void 0}))}function l(e,t,n){n.then(function(n){return"loading"==t.status?(t.address=t.address||t.name,Promise.resolve(e.loaderObj.translate({name:t.name,metadata:t.metadata,address:t.address,source:n})).then(function(n){return t.source=n,e.loaderObj.instantiate({name:t.name,metadata:t.metadata,address:t.address,source:n})}).then(function(e){if(void 0===e)throw new TypeError("Declarative modules unsupported in the polyfill.");if("object"!=typeof e)throw new TypeError("Invalid instantiate return value");t.depsList=e.deps||[],t.execute=e.execute}).then(function(){t.dependencies=[];for(var n=t.depsList,r=[],a=0,i=n.length;i>a;a++)(function(n,a){r.push(o(e,n,t.name,t.address).then(function(e){if(t.dependencies[a]={key:n,value:e.name},"linked"!=e.status)for(var r=t.linkSets.concat([]),o=0,i=r.length;i>o;o++)c(r[o],e)}))})(n[a],a);return Promise.all(r)}).then(function(){t.status="loaded";for(var e=t.linkSets.concat([]),n=0,r=e.length;r>n;n++)m(e[n],t)})):void 0})["catch"](function(e){t.status="failed",t.exception=e;for(var n=t.linkSets.concat([]),r=0,a=n.length;a>r;r++)p(n[r],t,e)})}function u(t){return function(n,r){var a=t.loader,o=t.moduleName,u=t.step;if(a.modules[o])throw new TypeError('"'+o+'" already exists in the module table');for(var c,f=0,m=a.loads.length;m>f;f++)if(a.loads[f].name==o&&(c=a.loads[f],"translate"!=u||c.source||(c.address=t.moduleAddress,l(a,c,Promise.resolve(t.moduleSource))),c.linkSets.length&&c.linkSets[0].loads[0].name==c.name))return c.linkSets[0].done.then(function(){n(c)});var p=c||e(o);p.metadata=t.moduleMetadata;var h=d(a,p);a.loads.push(p),n(h.done),"locate"==u?i(a,p):"fetch"==u?s(a,p,Promise.resolve(t.moduleAddress)):(p.address=t.moduleAddress,l(a,p,Promise.resolve(t.moduleSource)))}}function d(e,t){var n={loader:e,loads:[],startingLoad:t,loadingCount:0};return n.done=new Promise(function(e,t){n.resolve=e,n.reject=t}),c(n,t),n}function c(e,t){if("failed"!=t.status){for(var n=0,r=e.loads.length;r>n;n++)if(e.loads[n]==t)return;e.loads.push(t),t.linkSets.push(e),"loaded"!=t.status&&e.loadingCount++;for(var a=e.loader,n=0,r=t.dependencies.length;r>n;n++)if(t.dependencies[n]){var o=t.dependencies[n].value;if(!a.modules[o])for(var i=0,s=a.loads.length;s>i;i++)if(a.loads[i].name==o){c(e,a.loads[i]);break}}}}function f(e){var t=!1;try{y(e,function(n,r){p(e,n,r),t=!0})}catch(n){p(e,null,n),t=!0}return t}function m(e,t){if(e.loadingCount--,!(e.loadingCount>0)){var n=e.startingLoad;if(e.loader.loaderObj.execute===!1){for(var r=[].concat(e.loads),a=0,o=r.length;o>a;a++){var t=r[a];t.module={name:t.name,module:w({}),evaluated:!0},t.status="linked",h(e.loader,t)}return e.resolve(n)}var i=f(e);i||e.resolve(n)}}function p(e,n,r){var a=e.loader;e:if(n)if(e.loads[0].name==n.name)r=t(r,"Error loading "+n.name);else{for(var o=0;o<e.loads.length;o++)for(var i=e.loads[o],s=0;s<i.dependencies.length;s++){var l=i.dependencies[s];if(l.value==n.name){r=t(r,"Error loading "+n.name+' as "'+l.key+'" from '+i.name);break e}}r=t(r,"Error loading "+n.name+" from "+e.loads[0].name)}else r=t(r,"Error linking "+e.loads[0].name);for(var u=e.loads.concat([]),o=0,d=u.length;d>o;o++){var n=u[o];a.loaderObj.failed=a.loaderObj.failed||[],-1==$.call(a.loaderObj.failed,n)&&a.loaderObj.failed.push(n);var c=$.call(n.linkSets,e);if(n.linkSets.splice(c,1),0==n.linkSets.length){var f=$.call(e.loader.loads,n);-1!=f&&e.loader.loads.splice(f,1)}}e.reject(r)}function h(e,t){if(e.loaderObj.trace){e.loaderObj.loads||(e.loaderObj.loads={});var n={};t.dependencies.forEach(function(e){n[e.key]=e.value}),e.loaderObj.loads[t.name]={name:t.name,deps:t.dependencies.map(function(e){return e.key}),depMap:n,address:t.address,metadata:t.metadata,source:t.source}}t.name&&(e.modules[t.name]=t.module);var r=$.call(e.loads,t);-1!=r&&e.loads.splice(r,1);for(var a=0,o=t.linkSets.length;o>a;a++)r=$.call(t.linkSets[a].loads,t),-1!=r&&t.linkSets[a].loads.splice(r,1);t.linkSets.splice(0,t.linkSets.length)}function g(e,t,r){try{var a=t.execute()}catch(o){return void r(t,o)}return a&&a instanceof n?a:void r(t,new TypeError("Execution must define a Module instance"))}function v(e,t,n){var r=e._loader.importPromises;return r[t]=n.then(function(e){return r[t]=void 0,e},function(e){throw r[t]=void 0,e})}function y(e,t){var n=e.loader;if(e.loads.length)for(var r=e.loads.concat([]),a=0;a<r.length;a++){var o=r[a],i=g(e,o,t);if(!i)return;o.module={name:o.name,module:i},o.status="linked",h(n,o)}}var b=0;r.prototype={constructor:r,define:function(e,t,n){if(this._loader.importPromises[e])throw new TypeError("Module is already loading.");return v(this,e,new Promise(u({step:"translate",loader:this._loader,moduleName:e,moduleMetadata:n&&n.metadata||{},moduleSource:t,moduleAddress:n&&n.address})))},"delete":function(e){var t=this._loader;return delete t.importPromises[e],delete t.moduleRecords[e],t.modules[e]?delete t.modules[e]:!1},get:function(e){return this._loader.modules[e]?this._loader.modules[e].module:void 0},has:function(e){return!!this._loader.modules[e]},"import":function(e,t,n){"object"==typeof t&&(t=t.name);var r=this;return Promise.resolve(r.normalize(e,t)).then(function(e){var t=r._loader;return t.modules[e]?t.modules[e].module:t.importPromises[e]||v(r,e,a(t,e,{}).then(function(n){return delete t.importPromises[e],n.module.module}))})},load:function(e){var t=this._loader;return t.modules[e]?Promise.resolve():(t.importPromises[e]||v(this,e,new Promise(u({step:"locate",loader:t,moduleName:e,moduleMetadata:{},moduleSource:void 0,moduleAddress:void 0})).then(function(n){return delete t.importPromises[e],n.module.module}))).then(function(){})},module:function(t,n){var r=e();r.address=n&&n.address;var a=d(this._loader,r),o=Promise.resolve(t),i=this._loader,s=a.done.then(function(){return r.module.module});return l(i,r,o),s},newModule:function(e){if("object"!=typeof e)throw new TypeError("Expected object");var t=new n,r=[];if(Object.getOwnPropertyNames&&null!=e)r=Object.getOwnPropertyNames(e);else for(var a in e)r.push(a);for(var o=0;o<r.length;o++)(function(n){J(t,n,{configurable:!1,enumerable:!0,get:function(){return e[n]},set:function(){throw new Error("Module exports cannot be changed externally.")}})})(r[o]);return Object.freeze&&Object.freeze(t),t},set:function(e,t){if(!(t instanceof n))throw new TypeError("Loader.set("+e+", module) must be a module");this._loader.modules[e]={module:t}},normalize:function(e,t,n){},locate:function(e){return e.name},fetch:function(e){},translate:function(e){return e.source},instantiate:function(e){}};var w=r.prototype.newModule}();var V;o.prototype=r.prototype,a.prototype=new o,a.prototype.constructor=a;var Y,Z=/^[^\/]+:\/\//,K=new G(N),Q=!0;try{Object.getOwnPropertyDescriptor({a:0},"a")}catch(X){Q=!1}var W;if("undefined"!=typeof XMLHttpRequest)W=function(e,t,n,r){function a(){n(i.responseText)}function o(){r(new Error("XHR error"+(i.status?" ("+i.status+(i.statusText?" "+i.statusText:"")+")":"")+" loading "+e))}var i=new XMLHttpRequest,s=!0,l=!1;if(!("withCredentials"in i)){var u=/^(\w+:)?\/\/([^\/]+)/.exec(e);u&&(s=u[2]===window.location.host,u[1]&&(s&=u[1]===window.location.protocol))}s||"undefined"==typeof XDomainRequest||(i=new XDomainRequest,i.onload=a,i.onerror=o,i.ontimeout=o,i.onprogress=function(){},i.timeout=0,l=!0),i.onreadystatechange=function(){4===i.readyState&&(0==i.status?i.responseText?a():(i.addEventListener("error",o),i.addEventListener("load",a)):200===i.status?a():o())},i.open("GET",e,!0),i.setRequestHeader&&(i.setRequestHeader("Accept","application/x-es-module, */*"),t&&("string"==typeof t&&i.setRequestHeader("Authorization",t),i.withCredentials=!0)),l?setTimeout(function(){i.send()},0):i.send(null)};else if("undefined"!=typeof require&&"undefined"!=typeof process){var ee;W=function(e,t,n,r){if("file:///"!=e.substr(0,8))throw new Error('Unable to fetch "'+e+'". Only file URLs of the form file:/// allowed running in Node.');return ee=ee||require("fs"),e=A?e.replace(/\//g,"\\").substr(8):e.substr(7),ee.readFile(e,function(e,t){if(e)return r(e);var a=t+"";"\ufeff"===a[0]&&(a=a.substr(1)),n(a)})}}else{if("undefined"==typeof self||"undefined"==typeof self.fetch)throw new TypeError("No environment fetch API available.");W=function(e,t,n,r){var a={headers:{Accept:"application/x-es-module, */*"}};t&&("string"==typeof t&&(a.headers.Authorization=t),a.credentials="include"),fetch(e,a).then(function(e){if(e.ok)return e.text();throw new Error("Fetch error: "+e.status+" "+e.statusText)}).then(n,r)}}var te;s(function(e){return function(){e.call(this),this.baseURL=N,this.map={},"undefined"!=typeof $__curScript&&(this.scriptSrc=$__curScript.src),this.warnings=!1,this.defaultJSExtensions=!1,this.pluginFirst=!1,this.loaderErrorStack=!1,this.set("@empty",this.newModule({})),P.call(this,!1,!1)}}),"undefined"==typeof require||"undefined"==typeof process||process.browser||(a.prototype._nodeRequire=require);var ne;i("normalize",function(e){return function(e,t,n){var r=k.call(this,e,t);return!this.defaultJSExtensions||n||".js"==r.substr(r.length-3,3)||d(r)||(r+=".js"),r}});var re="undefined"!=typeof XMLHttpRequest;i("locate",function(e){return function(t){return Promise.resolve(e.call(this,t)).then(function(e){return re?e.replace(/#/g,"%23"):e})}}),i("fetch",function(){return function(e){return new Promise(function(t,n){W(e.address,e.metadata.authorization,t,n)})}}),i("import",function(e){return function(t,n,r){return n&&n.name&&w.call(this,"SystemJS.import(name, { name: parentName }) is deprecated for SystemJS.import(name, parentName), while importing "+t+" from "+n.name),e.call(this,t,n,r).then(function(e){return e.__useDefault?e["default"]:e})}}),i("translate",function(e){return function(t){return"detect"==t.metadata.format&&(t.metadata.format=void 0),e.apply(this,arguments)}}),i("instantiate",function(e){return function(e){if("json"==e.metadata.format&&!this.builder){var t=e.metadata.entry=R();t.deps=[],t.execute=function(){try{return JSON.parse(e.source)}catch(t){throw new Error("Invalid JSON file "+e.name)}}}}}),a.prototype.getConfig=function(e){var t={},n=this;for(var r in n)n.hasOwnProperty&&!n.hasOwnProperty(r)||r in a.prototype&&"transpiler"!=r||-1==$.call(["_loader","amdDefine","amdRequire","defined","failed","version","loads"],r)&&(t[r]=n[r]);return t.production=te.production,t};var ae;a.prototype.config=function(e,t){function n(e){for(var t in e)if(e.hasOwnProperty(t))return!0}var r=this;if("loaderErrorStack"in e&&(ae=$__curScript,e.loaderErrorStack?$__curScript=void 0:$__curScript=ae),"warnings"in e&&(r.warnings=e.warnings),e.transpilerRuntime===!1&&(r._loader.loadedTranspilerRuntime=!0),("production"in e||"build"in e)&&P.call(r,!!e.production,!!(e.build||te&&te.build)),!t){var a;if(O(r,e,function(e){a=a||e.baseURL}),a=a||e.baseURL){if(n(r.packages)||n(r.meta)||n(r.depCache)||n(r.bundles)||n(r.packageConfigPaths))throw new TypeError("Incorrect configuration order. The baseURL must be configured with the first SystemJS.config call.");this.baseURL=a,_.call(this)}if(e.paths&&g(r.paths,e.paths),O(r,e,function(e){e.paths&&g(r.paths,e.paths)}),this.warnings)for(var o in r.paths)-1!=o.indexOf("*")&&w.call(r,'Paths configuration "'+o+'" -> "'+r.paths[o]+'" uses wildcards which are being deprecated for just leaving a trailing "/" to indicate folder paths.')}if(e.defaultJSExtensions&&(r.defaultJSExtensions=e.defaultJSExtensions,w.call(r,"The defaultJSExtensions configuration option is deprecated, use packages configuration instead.")),e.pluginFirst&&(r.pluginFirst=e.pluginFirst),e.map)for(var o in e.map){var i=e.map[o];if("string"!=typeof i){var s=r.defaultJSExtensions&&".js"!=o.substr(o.length-3,3),l=r.decanonicalize(o);s&&".js"==l.substr(l.length-3,3)&&(l=l.substr(0,l.length-3));var u="";for(var c in r.packages)l.substr(0,c.length)==c&&(!l[c.length]||"/"==l[c.length])&&u.split("/").length<c.split("/").length&&(u=c);u&&r.packages[u].main&&(l=l.substr(0,l.length-r.packages[u].main.length-1));var c=r.packages[l]=r.packages[l]||{};c.map=i}else r.map[o]=i}if(e.packageConfigPaths){for(var f=[],m=0;m<e.packageConfigPaths.length;m++){var p=e.packageConfigPaths[m],h=Math.max(p.lastIndexOf("*")+1,p.lastIndexOf("/")),v=k.call(r,p.substr(0,h));f[m]=v+p.substr(h)}r.packageConfigPaths=f}if(e.bundles)for(var o in e.bundles){for(var y=[],m=0;m<e.bundles[o].length;m++){var s=r.defaultJSExtensions&&".js"!=e.bundles[o][m].substr(e.bundles[o][m].length-3,3),x=r.decanonicalize(e.bundles[o][m]);s&&".js"==x.substr(x.length-3,3)&&(x=x.substr(0,x.length-3)),y.push(x)}r.bundles[o]=y}if(e.packages)for(var o in e.packages){if(o.match(/^([^\/]+:)?\/\/$/))throw new TypeError('"'+o+'" is not a valid package name.');var l=k.call(r,o);"/"==l[l.length-1]&&(l=l.substr(0,l.length-1)),b(r,l,e.packages[o],!1)}for(var S in e){var i=e[S];if(-1==$.call(["baseURL","map","packages","bundles","paths","warnings","packageConfigPaths","loaderErrorStack","browserConfig","nodeConfig","devConfig","buildConfig","productionConfig"],S))if("object"!=typeof i||i instanceof Array)r[S]=i;else{r[S]=r[S]||{};for(var o in i)if("meta"==S&&"*"==o[0])g(r[S][o]=r[S][o]||{},i[o]);else if("meta"==S){var E=k.call(r,o);r.defaultJSExtensions&&".js"!=E.substr(E.length-3,3)&&!d(E)&&(E+=".js"),g(r[S][E]=r[S][E]||{},i[o])}else if("depCache"==S){var s=r.defaultJSExtensions&&".js"!=o.substr(o.length-3,3),l=r.decanonicalize(o);s&&".js"==l.substr(l.length-3,3)&&(l=l.substr(0,l.length-3)),r[S][l]=[].concat(i[o])}else r[S][o]=i[o]}}O(r,e,function(e){r.config(e,!0)})},function(){function e(e,t){var n,r,a=0;for(var o in e.packages)t.substr(0,o.length)!==o||t.length!==o.length&&"/"!==t[o.length]||(r=o.split("/").length,r>a&&(n=o,a=r));return n}function t(e,t,n,r,a){if(!r||"/"==r[r.length-1]||a||t.defaultExtension===!1)return r;var o=!1;if(t.meta&&p(t.meta,r,function(e,t,n){return 0==n||e.lastIndexOf("*")!=e.length-1?o=!0:void 0}),!o&&e.meta&&p(e.meta,n+"/"+r,function(e,t,n){return 0==n||e.lastIndexOf("*")!=e.length-1?o=!0:void 0}),o)return r;var i="."+(t.defaultExtension||"js");return r.substr(r.length-i.length)!=i?r+i:r}function n(e,n,r,a,i){if(!a){if(!n.main)return r+(e.defaultJSExtensions?".js":"");a="./"==n.main.substr(0,2)?n.main.substr(2):n.main}if(n.map){var s="./"+a,l=E(n.map,s);if(l||(s="./"+t(e,n,r,a,i),s!="./"+a&&(l=E(n.map,s))),l){var u=o(e,n,r,l,s,i);if(u)return u}}return r+"/"+t(e,n,r,a,i)}function r(e,t,n,r){if("."==e)throw new Error("Package "+n+' has a map entry for "." which is not permitted.');return t.substr(0,e.length)==e&&r.length>e.length?!1:!0}function o(e,n,a,o,i,s){"/"==i[i.length-1]&&(i=i.substr(0,i.length-1));var l=n.map[o];if("object"==typeof l)throw new Error("Synchronous conditional normalization not supported sync normalizing "+o+" in "+a);if(r(o,l,a,i)&&"string"==typeof l){if("."==l)l=a;else if("./"==l.substr(0,2))return a+"/"+t(e,n,a,l.substr(2)+i.substr(o.length),s);return e.normalizeSync(l+i.substr(o.length),a+"/")}}function l(e,n,r,a,o){if(!a){if(!n.main)return Promise.resolve(r+(e.defaultJSExtensions?".js":""));a="./"==n.main.substr(0,2)?n.main.substr(2):n.main}var i,s;return n.map&&(i="./"+a,s=E(n.map,i),s||(i="./"+t(e,n,r,a,o),i!="./"+a&&(s=E(n.map,i)))),(s?d(e,n,r,s,i,o):Promise.resolve()).then(function(i){return i?Promise.resolve(i):Promise.resolve(r+"/"+t(e,n,r,a,o))})}function u(e,n,r,a,o,i,s){if("."==o)o=r;else if("./"==o.substr(0,2))return Promise.resolve(r+"/"+t(e,n,r,o.substr(2)+i.substr(a.length),s)).then(function(t){return T.call(e,t,r+"/")});return e.normalize(o+i.substr(a.length),r+"/")}function d(e,t,n,a,o,i){"/"==o[o.length-1]&&(o=o.substr(0,o.length-1));var s=t.map[a];if("string"==typeof s)return r(a,s,n,o)?u(e,t,n,a,s,o,i):Promise.resolve();if(e.builder)return Promise.resolve(n+"/#:"+o);var l=[],d=[];for(var c in s){var f=I(c);d.push({condition:f,map:s[c]}),l.push(e["import"](f.module,n))}return Promise.all(l).then(function(e){for(var t=0;t<d.length;t++){var n=d[t].condition,r=S(n.prop,e[t]);if(!n.negate&&r||n.negate&&!r)return d[t].map}}).then(function(s){if(s){if(!r(a,s,n,o))return;return u(e,t,n,a,s,o,i)}})}function c(e){var t=e.lastIndexOf("*"),n=Math.max(t+1,e.lastIndexOf("/"));return{length:n,regEx:new RegExp("^("+e.substr(0,n).replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,"[^\\/]+")+")(\\/|$)"),wildcard:-1!=t}}function f(e,t){for(var n,r,a=!1,o=0;o<e.packageConfigPaths.length;o++){var i=e.packageConfigPaths[o],s=h[i]||(h[i]=c(i));if(!(t.length<s.length)){var l=t.match(s.regEx);!l||n&&(a&&s.wildcard||!(n.length<l[1].length))||(n=l[1],a=!s.wildcard,r=n+i.substr(s.length))}}return n?{packageName:n,configPath:r}:void 0}function m(e,t,n){var r=e.pluginLoader||e;return(r.meta[n]=r.meta[n]||{}).format="json",r.meta[n].loader=null,r.load(n).then(function(){var a=r.get(n)["default"];return a.systemjs&&(a=a.systemjs),a.modules&&(a.meta=a.modules,w.call(e,"Package config file "+n+' is configured with "modules", which is deprecated as it has been renamed to "meta".')),b(e,t,a,!0)})}function p(e,t,n){var r;for(var a in e){var o="./"==a.substr(0,2)?"./":"";if(o&&(a=a.substr(2)),r=a.indexOf("*"),-1!==r&&a.substr(0,r)==t.substr(0,r)&&a.substr(r+1)==t.substr(t.length-a.length+r+1)&&n(a,e[o+a],a.split("/").length))return}var i=e[t]&&e.hasOwnProperty&&e.hasOwnProperty(t)?e[t]:e["./"+t];i&&n(i,i,0)}s(function(e){return function(){e.call(this),this.packages={},this.packageConfigPaths=[]}}),a.prototype.normalizeSync=a.prototype.decanonicalize=a.prototype.normalize,i("decanonicalize",function(t){return function(n,r){if(this.builder)return t.call(this,n,r,!0);var a=t.call(this,n,r,!1);if(!this.defaultJSExtensions)return a;var o=e(this,a),i=this.packages[o],s=i&&i.defaultExtension;return void 0==s&&i&&i.meta&&p(i.meta,a.substr(o),function(e,t,n){return 0==n||e.lastIndexOf("*")!=e.length-1?(s=!1,!0):void 0}),(s===!1||s&&".js"!=s)&&".js"!=n.substr(n.length-3,3)&&".js"==a.substr(a.length-3,3)&&(a=a.substr(0,a.length-3)),a}}),i("normalizeSync",function(t){return function(r,a,i){var s=this;if(i=i===!0,a)var l=e(s,a)||s.defaultJSExtensions&&".js"==a.substr(a.length-3,3)&&e(s,a.substr(0,a.length-3));var u=l&&s.packages[l];if(u&&"."!=r[0]){var d=u.map,c=d&&E(d,r);if(c&&"string"==typeof d[c]){var m=o(s,u,l,c,r,i);if(m)return m}}var p=s.defaultJSExtensions&&".js"!=r.substr(r.length-3,3),h=t.call(s,r,a,!1);p&&".js"!=h.substr(h.length-3,3)&&(p=!1),p&&(h=h.substr(0,h.length-3));var g=f(s,h),v=g&&g.packageName||e(s,h);if(!v)return h+(p?".js":"");var y=h.substr(v.length+1);return n(s,s.packages[v]||{},v,y,i)}}),i("normalize",function(t){return function(n,r,a){var o=this;return a=a===!0,Promise.resolve().then(function(){if(r)var t=e(o,r)||o.defaultJSExtensions&&".js"==r.substr(r.length-3,3)&&e(o,r.substr(0,r.length-3));var i=t&&o.packages[t];if(i&&"./"!=n.substr(0,2)){var s=i.map,l=s&&E(s,n);if(l)return d(o,i,t,l,n,a)}return Promise.resolve()}).then(function(i){if(i)return i;var s=o.defaultJSExtensions&&".js"!=n.substr(n.length-3,3),u=t.call(o,n,r,!1);s&&".js"!=u.substr(u.length-3,3)&&(s=!1),s&&(u=u.substr(0,u.length-3));var d=f(o,u),c=d&&d.packageName||e(o,u);if(!c)return Promise.resolve(u+(s?".js":""));var p=o.packages[c],h=p&&(p.configured||!d);return(h?Promise.resolve(p):m(o,c,d.configPath)).then(function(e){var t=u.substr(c.length+1);return l(o,e,c,t,a)})})}});var h={};i("locate",function(t){return function(n){var r=this;return Promise.resolve(t.call(this,n)).then(function(t){var a=e(r,n.name);if(a){var o=r.packages[a],i=n.name.substr(a.length+1),s={};if(o.meta){var l=0;p(o.meta,i,function(e,t,n){n>l&&(l=n),v(s,t,n&&l>n)}),v(n.metadata,s)}o.format&&!n.metadata.loader&&(n.metadata.format=n.metadata.format||o.format)}return t})}})}(),function(){function t(){if(s&&"interactive"===s.script.readyState)return s.load;for(var e=0;e<d.length;e++)if("interactive"==d[e].script.readyState)return s=d[e],s.load}function n(e,t){return new Promise(function(e,n){t.metadata.integrity&&n(new Error("Subresource integrity checking is not supported in web workers.")),l=t;try{importScripts(t.address)}catch(r){l=null,n(r)}l=null,t.metadata.entry||n(new Error(t.address+" did not call System.register or AMD define. If loading a global, ensure the meta format is set to global.")),e("")})}if("undefined"!=typeof document)var r=document.getElementsByTagName("head")[0];var a,o,s,l=null,u=r&&function(){var e=document.createElement("script"),t="undefined"!=typeof opera&&"[object Opera]"===opera.toString();return e.attachEvent&&!(e.attachEvent.toString&&e.attachEvent.toString().indexOf("[native code")<0)&&!t}(),d=[],c=0,f=[];i("pushRegister_",function(e){return function(n){return e.call(this,n)?!1:(l?this.reduceRegister_(l,n):u?this.reduceRegister_(t(),n):c?f.push(n):this.reduceRegister_(null,n),!0)}}),i("fetch",function(t){return function(i){var l=this;return"json"!=i.metadata.format&&i.metadata.scriptLoad&&(U||q)?q?n(l,i):new Promise(function(t,n){function m(e){if(!g.readyState||"loaded"==g.readyState||"complete"==g.readyState){if(c--,i.metadata.entry||f.length){if(!u){for(var r=0;r<f.length;r++)l.reduceRegister_(i,f[r]);f=[]}}else l.reduceRegister_(i);h(),i.metadata.entry||i.metadata.bundle||n(new Error(i.name+" did not call System.register or AMD define. If loading a global module configure the global name via the meta exports property for script injection support.")),t("");
-}}function p(e){h(),n(new Error("Unable to load script "+i.address))}function h(){if(e.System=a,e.require=o,g.detachEvent){g.detachEvent("onreadystatechange",m);for(var t=0;t<d.length;t++)d[t].script==g&&(s&&s.script==g&&(s=null),d.splice(t,1))}else g.removeEventListener("load",m,!1),g.removeEventListener("error",p,!1);r.removeChild(g)}var g=document.createElement("script");g.async=!0,i.metadata.crossOrigin&&(g.crossOrigin=i.metadata.crossOrigin),i.metadata.integrity&&g.setAttribute("integrity",i.metadata.integrity),u?(g.attachEvent("onreadystatechange",m),d.push({script:g,load:i})):(g.addEventListener("load",m,!1),g.addEventListener("error",p,!1)),c++,a=e.System,o=e.require,g.src=i.address,r.appendChild(g)}):t.call(this,i)}})}();var oe=/^(\s*\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)*\s*/;!function(){function t(e,n,r){if(r[e.groupIndex]=r[e.groupIndex]||[],-1==$.call(r[e.groupIndex],e)){r[e.groupIndex].push(e);for(var a=0,o=e.normalizedDeps.length;o>a;a++){var i=e.normalizedDeps[a],s=n.defined[i];if(s&&!s.evaluated){var l=e.groupIndex+(s.declarative!=e.declarative);if(null===s.groupIndex||s.groupIndex<l){if(null!==s.groupIndex&&(r[s.groupIndex].splice($.call(r[s.groupIndex],s),1),0==r[s.groupIndex].length))throw new Error("Mixed dependency cycle detected");s.groupIndex=l}t(s,n,r)}}}}function r(e,n,r){if(!n.module){n.groupIndex=0;var a=[];t(n,r,a);for(var o=!!n.declarative==a.length%2,i=a.length-1;i>=0;i--){for(var s=a[i],l=0;l<s.length;l++){var d=s[l];o?u(d,r):c(d,r)}o=!o}}}function o(){}function l(e,t){return t[e]||(t[e]={name:e,dependencies:[],exports:new o,importers:[]})}function u(t,n){if(!t.module){var r=n._loader.moduleRecords,a=t.module=l(t.name,r),o=t.module.exports,i=t.declare.call(e,function(e,t){if(a.locked=!0,"object"==typeof e)for(var n in e)o[n]=e[n];else o[e]=t;for(var r=0,i=a.importers.length;i>r;r++){var s=a.importers[r];if(!s.locked){var l=$.call(s.dependencies,a),u=s.setters[l];u&&u(o)}}return a.locked=!1,t},{id:t.name});if("function"==typeof i&&(i={setters:[],execute:i}),i=i||{setters:[],execute:function(){}},a.setters=i.setters,a.execute=i.execute,!a.setters||!a.execute)throw new TypeError("Invalid System.register form for "+t.name);for(var s=0,d=t.normalizedDeps.length;d>s;s++){var c,f=t.normalizedDeps[s],m=n.defined[f],p=r[f];p?c=p.exports:m&&!m.declarative?c=m.esModule:m?(u(m,n),p=m.module,c=p.exports):c=n.get(f),p&&p.importers?(p.importers.push(a),a.dependencies.push(p)):a.dependencies.push(null);for(var h=t.originalIndices[s],g=0,v=h.length;v>g;++g){var y=h[g];a.setters[y]&&a.setters[y](c)}}}}function d(e,t){var n,r=t.defined[e];if(r)r.declarative?f(e,r,[],t):r.evaluated||c(r,t),n=r.module.exports;else if(n=t.get(e),!n)throw new Error("Unable to load dependency "+e+".");return(!r||r.declarative)&&n&&n.__useDefault?n["default"]:n}function c(t,r){if(!t.module){var a={},o=t.module={exports:a,id:t.name};if(!t.executingRequire)for(var i=0,s=t.normalizedDeps.length;s>i;i++){var l=t.normalizedDeps[i],u=r.defined[l];u&&c(u,r)}t.evaluated=!0;var f=t.execute.call(e,function(e){for(var n=0,a=t.deps.length;a>n;n++)if(t.deps[n]==e)return d(t.normalizedDeps[n],r);var o=r.normalizeSync(e,t.name);if(-1!=$.call(t.normalizedDeps,o))return d(o,r);throw new Error("Module "+e+" not declared as a dependency of "+t.name)},a,o);void 0!==f&&(o.exports=f),a=o.exports,a&&(a.__esModule||a instanceof n)?t.esModule=r.newModule(a):t.esmExports&&a!==e?t.esModule=r.newModule(p(a)):t.esModule=r.newModule({"default":a,__useDefault:!0})}}function f(t,n,r,a){if(n&&!n.evaluated&&n.declarative){r.push(t);for(var o=0,i=n.normalizedDeps.length;i>o;o++){var s=n.normalizedDeps[o];-1==$.call(r,s)&&(a.defined[s]?f(s,a.defined[s],r,a):a.get(s))}n.evaluated||(n.evaluated=!0,n.module.execute.call(e))}}a.prototype.register=function(e,t,n){if("string"!=typeof e&&(n=t,t=e,e=null),"boolean"==typeof n)return this.registerDynamic.apply(this,arguments);var r=R();r.name=e&&(this.decanonicalize||this.normalize).call(this,e),r.declarative=!0,r.deps=t,r.declare=n,this.pushRegister_({amd:!1,entry:r})},a.prototype.registerDynamic=function(e,t,n,r){"string"!=typeof e&&(r=n,n=t,t=e,e=null);var a=R();a.name=e&&(this.decanonicalize||this.normalize).call(this,e),a.deps=t,a.execute=r,a.executingRequire=n,this.pushRegister_({amd:!1,entry:a})},i("reduceRegister_",function(){return function(e,t){if(t){var n=t.entry,r=e&&e.metadata;if(n.name&&(n.name in this.defined||(this.defined[n.name]=n),r&&(r.bundle=!0)),!n.name||e&&!r.entry&&n.name==e.name){if(!r)throw new TypeError("Invalid System.register call. Anonymous System.register calls can only be made by modules loaded by SystemJS.import and not via script tags.");if(r.entry)throw"register"==r.format?new Error("Multiple anonymous System.register calls in module "+e.name+". If loading a bundle, ensure all the System.register calls are named."):new Error("Module "+e.name+" interpreted as "+r.format+" module format, but called System.register.");r.format||(r.format="register"),r.entry=n}}}}),s(function(e){return function(){e.call(this),this.defined={},this._loader.moduleRecords={}}}),J(o,"toString",{value:function(){return"Module"}}),i("delete",function(e){return function(t){return delete this._loader.moduleRecords[t],delete this.defined[t],e.call(this,t)}}),i("fetch",function(e){return function(t){return this.defined[t.name]?(t.metadata.format="defined",""):(t.metadata.deps=t.metadata.deps||[],e.call(this,t))}}),i("translate",function(e){return function(t){return t.metadata.deps=t.metadata.deps||[],Promise.resolve(e.apply(this,arguments)).then(function(e){return("register"==t.metadata.format||"system"==t.metadata.format||!t.metadata.format&&M(t.source))&&(t.metadata.format="register"),e})}}),i("load",function(e){return function(t){var n=this,a=n.defined[t];return!a||a.deps.length?e.apply(this,arguments):(a.originalIndices=a.normalizedDeps=[],r(t,a,n),f(t,a,[],n),a.esModule||(a.esModule=n.newModule(a.module.exports)),n.trace||(n.defined[t]=void 0),n.set(t,a.esModule),Promise.resolve())}}),i("instantiate",function(e){return function(t){"detect"==t.metadata.format&&(t.metadata.format=void 0),e.call(this,t);var n,a=this;if(a.defined[t.name])n=a.defined[t.name],n.declarative||(n.deps=n.deps.concat(t.metadata.deps)),n.deps=n.deps.concat(t.metadata.deps);else if(t.metadata.entry)n=t.metadata.entry,n.deps=n.deps.concat(t.metadata.deps);else if(!(a.builder&&t.metadata.bundle||"register"!=t.metadata.format&&"esm"!=t.metadata.format&&"es6"!=t.metadata.format)){if("undefined"!=typeof __exec&&__exec.call(a,t),!t.metadata.entry&&!t.metadata.bundle)throw new Error(t.name+" detected as "+t.metadata.format+" but didn't execute.");n=t.metadata.entry,n&&t.metadata.deps&&(n.deps=n.deps.concat(t.metadata.deps))}n||(n=R(),n.deps=t.metadata.deps,n.execute=function(){}),a.defined[t.name]=n;var o=m(n.deps);n.deps=o.names,n.originalIndices=o.indices,n.name=t.name,n.esmExports=t.metadata.esmExports!==!1;for(var i=[],s=0,l=n.deps.length;l>s;s++)i.push(Promise.resolve(a.normalize(n.deps[s],t.name)));return Promise.all(i).then(function(e){return n.normalizedDeps=e,{deps:n.deps,execute:function(){return r(t.name,n,a),f(t.name,n,[],a),n.esModule||(n.esModule=a.newModule(n.module.exports)),a.trace||(a.defined[t.name]=void 0),n.esModule}}})}})}(),i("reduceRegister_",function(e){return function(t,n){if(n||!t.metadata.exports&&(!q||"global"!=t.metadata.format))return e.call(this,t,n);t.metadata.format="global";var r=t.metadata.entry=R();r.deps=t.metadata.deps;var a=z(t.metadata.exports);r.execute=function(){return a}}}),s(function(t){return function(){function n(t){if(Object.keys)Object.keys(e).forEach(t);else for(var n in e)i.call(e,n)&&t(n)}function r(t){n(function(n){if(-1==$.call(s,n)){try{var r=e[n]}catch(a){s.push(n)}t(n,r)}})}var a=this;t.call(a);var o,i=Object.prototype.hasOwnProperty,s=["_g","sessionStorage","localStorage","clipboardData","frames","frameElement","external","mozAnimationStartTime","webkitStorageInfo","webkitIndexedDB","mozInnerScreenY","mozInnerScreenX"];a.set("@@global-helpers",a.newModule({prepareGlobal:function(t,n,a,i){var s=e.define;e.define=void 0;var l;if(a){l={};for(var u in a)l[u]=e[u],e[u]=a[u]}return n||(o={},r(function(e,t){o[e]=t})),function(){var t,a=n?z(n):{},u=!!n;if((!n||i)&&r(function(r,s){o[r]!==s&&"undefined"!=typeof s&&(i&&(e[r]=void 0),n||(a[r]=s,"undefined"!=typeof t?u||t===s||(u=!0):t=s))}),a=u?a:t,l)for(var d in l)e[d]=l[d];return e.define=s,a}}}))}}),s(function(e){return function(){function t(e){return"file:///"==e.substr(0,8)?e.substr(7+!!A):r&&e.substr(0,r.length)==r?e.substr(r.length):e}var n=this;if(e.call(n),"undefined"!=typeof window&&"undefined"!=typeof document&&window.location)var r=location.protocol+"//"+location.hostname+(location.port?":"+location.port:"");n.set("@@cjs-helpers",n.newModule({requireResolve:function(e,r){return t(n.normalizeSync(e,r))},getPathVars:function(e){var n,r=e.lastIndexOf("!");n=-1!=r?e.substr(0,r):e;var a=n.split("/");return a.pop(),a=a.join("/"),{filename:t(n),dirname:t(a)}}}))}}),i("fetch",function(t){return function(n){return n.metadata.scriptLoad&&U&&(e.define=this.amdDefine),t.call(this,n)}}),s(function(t){return function(){function n(e,t){e=e.replace(s,"");var n=e.match(d),r=(n[1].split(",")[t]||"require").replace(c,""),a=f[r]||(f[r]=new RegExp(l+r+u,"g"));a.lastIndex=0;for(var o,i=[];o=a.exec(e);)i.push(o[2]||o[3]);return i}function r(e,t,n,a){if("object"==typeof e&&!(e instanceof Array))return r.apply(null,Array.prototype.splice.call(arguments,1,arguments.length-1));if("string"==typeof e&&"function"==typeof t&&(e=[e]),!(e instanceof Array)){if("string"==typeof e){var i=o.defaultJSExtensions&&".js"!=e.substr(e.length-3,3),s=o.decanonicalize(e,a);i&&".js"==s.substr(s.length-3,3)&&(s=s.substr(0,s.length-3));var l=o.get(s);if(!l)throw new Error('Module not already loaded loading "'+e+'" as '+s+(a?' from "'+a+'".':"."));return l.__useDefault?l["default"]:l}throw new TypeError("Invalid require")}for(var u=[],d=0;d<e.length;d++)u.push(o["import"](e[d],a));Promise.all(u).then(function(e){t&&t.apply(null,e)},n)}function a(t,a,i){function s(t,n,s){function c(e,n,a){return"string"==typeof e&&"function"!=typeof n?t(e):r.call(o,e,n,a,s.id)}for(var f=[],m=0;m<a.length;m++)f.push(t(a[m]));s.uri=s.id,s.config=function(){},-1!=d&&f.splice(d,0,s),-1!=u&&f.splice(u,0,n),-1!=l&&(c.toUrl=function(e){var t=o.defaultJSExtensions&&".js"!=e.substr(e.length-3,3),n=o.decanonicalize(e,s.id);return t&&".js"==n.substr(n.length-3,3)&&(n=n.substr(0,n.length-3)),n},f.splice(l,0,c));var p=e.require;e.require=r;var h=i.apply(-1==u?e:n,f);return e.require=p,"undefined"==typeof h&&s&&(h=s.exports),"undefined"!=typeof h?h:void 0}"string"!=typeof t&&(i=a,a=t,t=null),a instanceof Array||(i=a,a=["require","exports","module"].splice(0,i.length)),"function"!=typeof i&&(i=function(e){return function(){return e}}(i)),void 0===a[a.length-1]&&a.pop();var l,u,d;-1!=(l=$.call(a,"require"))&&(a.splice(l,1),t||(a=a.concat(n(i.toString(),l)))),-1!=(u=$.call(a,"exports"))&&a.splice(u,1),-1!=(d=$.call(a,"module"))&&a.splice(d,1);var c=R();c.name=t&&(o.decanonicalize||o.normalize).call(o,t),c.deps=a,c.execute=s,o.pushRegister_({amd:!0,entry:c})}var o=this;t.call(this);var s=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,l="(?:^|[^$_a-zA-Z\\xA0-\\uFFFF.])",u="\\s*\\(\\s*(\"([^\"]+)\"|'([^']+)')\\s*\\)",d=/\(([^\)]*)\)/,c=/^\s+|\s+$/g,f={};a.amd={},i("reduceRegister_",function(e){return function(t,n){if(!n||!n.amd)return e.call(this,t,n);var r=t&&t.metadata,a=n.entry;if(r)if(r.format&&"detect"!=r.format){if(!a.name&&"amd"!=r.format)throw new Error("AMD define called while executing "+r.format+" module "+t.name)}else r.format="amd";if(a.name)r&&(r.entry||r.bundle?r.entry&&r.entry.name&&r.entry.name!=t.name&&(r.entry=void 0):r.entry=a,r.bundle=!0),a.name in this.defined||(this.defined[a.name]=a);else{if(!r)throw new TypeError("Unexpected anonymous AMD define.");if(r.entry&&!r.entry.name)throw new Error("Multiple anonymous defines in module "+t.name);r.entry=a}}}),o.amdDefine=a,o.amdRequire=r}}),function(){function e(e,t){if(t){var n;if(e.pluginFirst){if(-1!=(n=t.lastIndexOf("!")))return t.substr(n+1)}else if(-1!=(n=t.indexOf("!")))return t.substr(0,n);return t}}function t(e,t){var n,r,a=t.lastIndexOf("!");return-1!=a?(e.pluginFirst?(n=t.substr(a+1),r=t.substr(0,a)):(n=t.substr(0,a),r=t.substr(a+1)||n.substr(n.lastIndexOf(".")+1)),{argument:n,plugin:r}):void 0}function r(e,t,n,r){return r&&".js"==t.substr(t.length-3,3)&&(t=t.substr(0,t.length-3)),e.pluginFirst?n+"!"+t:t+"!"+n}function a(e,t){return e.defaultJSExtensions&&".js"!=t.substr(t.length-3,3)}function o(n){return function(o,i,s){var l=this,u=t(l,o);if(i=e(this,i),!u)return n.call(this,o,i,s);var d=l.normalizeSync(u.argument,i,!0),c=l.normalizeSync(u.plugin,i,!0);return r(l,d,c,a(l,u.argument))}}i("decanonicalize",o),i("normalizeSync",o),i("normalize",function(n){return function(o,i,s){var l=this;i=e(this,i);var u=t(l,o);return u?Promise.all([l.normalize(u.argument,i,!0),l.normalize(u.plugin,i,!1)]).then(function(e){return r(l,e[0],e[1],a(l,u.argument))}):n.call(l,o,i,s)}}),i("locate",function(e){return function(t){var n,r=this,a=t.name;return r.pluginFirst?-1!=(n=a.indexOf("!"))&&(t.metadata.loader=a.substr(0,n),t.name=a.substr(n+1)):-1!=(n=a.lastIndexOf("!"))&&(t.metadata.loader=a.substr(n+1),t.name=a.substr(0,n)),e.call(r,t).then(function(e){return-1==n&&t.metadata.loader?(r.pluginLoader||r).normalize(t.metadata.loader,t.name).then(function(n){return t.metadata.loader=n,e}):e}).then(function(e){var n=t.metadata.loader;if(!n)return e;if(t.name==n)throw new Error("Plugin "+n+" cannot load itself, make sure it is excluded from any wildcard meta configuration via a custom loader: false rule.");if(r.defined&&r.defined[a])return e;var o=r.pluginLoader||r;return o["import"](n).then(function(n){return t.metadata.loaderModule=n,t.address=e,n.locate?n.locate.call(r,t):e})})}}),i("fetch",function(e){return function(t){var r=this;if(t.metadata.loaderModule&&"defined"!=t.metadata.format){if("function"==typeof t.metadata.loaderModule||t.metadata.loaderModule instanceof n&&"function"==typeof t.metadata.loaderModule["default"])return"";if(t.metadata.scriptLoad=!1,t.metadata.loaderModule.fetch)return t.metadata.loaderModule.fetch.call(r,t,function(t){return e.call(r,t)})}return e.call(r,t)}}),i("translate",function(e){return function(t){var n=this,r=arguments;return t.metadata.loaderModule&&t.metadata.loaderModule.translate&&"defined"!=t.metadata.format?Promise.resolve(t.metadata.loaderModule.translate.apply(n,r)).then(function(a){var o=t.metadata.sourceMap;if(o){if("object"!=typeof o)throw new Error("load.metadata.sourceMap must be set to an object.");var i=t.address.split("!")[0];o.file&&o.file!=t.address||(o.file=i+"!transpiled"),(!o.sources||o.sources.length<=1&&(!o.sources[0]||o.sources[0]==t.address))&&(o.sources=[i])}return"string"==typeof a&&(t.source=a),e.apply(n,r)}):e.apply(n,r)}}),i("instantiate",function(e){return function(t){var r=this,a=!1;if(t.metadata.loaderModule&&!r.builder&&"defined"!=t.metadata.format){if(t.metadata.loaderModule.instantiate)return Promise.resolve(t.metadata.loaderModule.instantiate.call(r,t,function(t){if(a)throw new Error("Instantiate must only be called once.");return a=!0,e.call(r,t)})).then(function(n){return a?n:(void 0!==n&&x(t,n),e.call(r,t))});if("function"==typeof t.metadata.loaderModule||t.metadata.loaderModule instanceof n&&"function"==typeof t.metadata.loaderModule["default"])return Promise.resolve((t.metadata.loaderModule["default"]||t.metadata.loaderModule).call(r,t.address,t.name)).then(function(n){return void 0!==n&&x(t,n),e.call(r,t)})}return e.call(r,t)}})}();var ie=["browser","node","dev","build","production","default"],se=/#\{[^\}]+\}/;i("normalize",function(e){return function(t,n,r){var a=this;return D.call(a,t,n).then(function(t){return e.call(a,t,n,r)}).then(function(e){return T.call(a,e,n)})}}),function(){i("fetch",function(e){return function(t){var n=t.metadata.alias,r=t.metadata.deps||[];if(n){t.metadata.format="defined";var a=R();return this.defined[t.name]=a,a.declarative=!0,a.deps=r.concat([n]),a.declare=function(e){return{setters:[function(t){for(var n in t)e(n,t[n]);t.__useDefault&&(a.module.exports.__useDefault=!0)}],execute:function(){}}},""}return e.call(this,t)}})}(),function(){function e(e,t,n){for(var r,a=t.split(".");a.length>1;)r=a.shift(),e=e[r]=e[r]||{};r=a.shift(),r in e||(e[r]=n)}s(function(e){return function(){this.meta={},e.call(this)}}),i("locate",function(e){return function(t){var n,r=this.meta,a=t.name,o=0;for(var i in r)if(n=i.indexOf("*"),-1!==n&&i.substr(0,n)===a.substr(0,n)&&i.substr(n+1)===a.substr(a.length-i.length+n+1)){var s=i.split("/").length;s>o&&(o=s),v(t.metadata,r[i],o!=s)}return r[a]&&v(t.metadata,r[a]),e.call(this,t)}});var t=/^(\s*\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)+/,n=/\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\/\/[^\n]*|"[^"]+"\s*;?|'[^']+'\s*;?/g;i("translate",function(r){return function(a){if("defined"==a.metadata.format)return a.metadata.deps=a.metadata.deps||[],Promise.resolve(a.source);var o=a.source.match(t);if(o)for(var i=o[0].match(n),s=0;s<i.length;s++){var l=i[s],u=l.length,d=l.substr(0,1);if(";"==l.substr(u-1,1)&&u--,'"'==d||"'"==d){var c=l.substr(1,l.length-3),f=c.substr(0,c.indexOf(" "));if(f){var m=c.substr(f.length+1,c.length-f.length-1);"[]"==f.substr(f.length-2,2)?(f=f.substr(0,f.length-2),a.metadata[f]=a.metadata[f]||[],a.metadata[f].push(m)):a.metadata[f]instanceof Array?(w.call(this,"Module "+a.name+' contains deprecated "deps '+m+'" meta syntax.\nThis should be updated to "deps[] '+m+'" for pushing to array meta.'),a.metadata[f].push(m)):e(a.metadata,f,m)}else a.metadata[c]=!0}}return r.apply(this,arguments)}})}(),function(){s(function(e){return function(){e.call(this),this.bundles={},this._loader.loadedBundles={}}}),i("locate",function(e){return function(t){var n=this,r=!1;if(!(t.name in n.defined))for(var a in n.bundles){for(var o=0;o<n.bundles[a].length;o++){var i=n.bundles[a][o];if(i==t.name){r=!0;break}if(-1!=i.indexOf("*")){var s=i.split("*");if(2!=s.length){n.bundles[a].splice(o--,1);continue}if(t.name.substring(0,s[0].length)==s[0]&&t.name.substr(t.name.length-s[1].length,s[1].length)==s[1]&&-1==t.name.substr(s[0].length,t.name.length-s[1].length-s[0].length).indexOf("/")){r=!0;break}}}if(r)return n["import"](a).then(function(){return e.call(n,t)})}return e.call(n,t)}})}(),function(){s(function(e){return function(){e.call(this),this.depCache={}}}),i("locate",function(e){return function(t){var n=this,r=n.depCache[t.name];if(r)for(var a=0;a<r.length;a++)n["import"](r[a],t.name);return e.call(n,t)}})}(),s(function(t){return function(){t.apply(this,arguments),e.define=this.amdDefine}}),i("fetch",function(e){return function(t){return t.metadata.scriptLoad=!0,e.call(this,t)}}),V=new a,e.SystemJS=V,V.version="0.19.47 CSP","object"==typeof module&&module.exports&&"object"==typeof exports&&(module.exports=V),e.System=V}("undefined"!=typeof self?self:global)}var t="undefined"==typeof Promise;if("undefined"!=typeof document){var n=document.getElementsByTagName("script");if($__curScript=n[n.length-1],document.currentScript&&($__curScript.defer||$__curScript.async)&&($__curScript=document.currentScript),$__curScript.src||($__curScript=void 0),t){var r=$__curScript.src,a=r.substr(0,r.lastIndexOf("/")+1);window.systemJSBootstrap=e,document.write('<script type="text/javascript" src="'+a+'system-polyfills.js"></script>')}else e()}else if("undefined"!=typeof importScripts){var a="";try{throw new Error("_")}catch(o){o.stack.replace(/(?:at|@).*(http.+):[\d]+:[\d]+/,function(e,t){$__curScript={src:t},a=t.replace(/\/[^\/]*$/,"/")})}t&&importScripts(a+"system-polyfills.js"),e()}else $__curScript="undefined"!=typeof __filename?{src:__filename}:null,e()}();
-//# sourceMappingURL=system-csp-production.js.map
diff --git a/node_modules/systemjs/dist/system-csp-production.js.map b/node_modules/systemjs/dist/system-csp-production.js.map
deleted file mode 100644
index e1fb76817..000000000
--- a/node_modules/systemjs/dist/system-csp-production.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["system-csp-production.src.js"],"names":["bootstrap","global","URLPolyfill","url","baseURL","TypeError","m","String","replace","match","RangeError","protocol","username","password","host","hostname","port","pathname","search","hash","undefined","base","flag","slice","lastIndexOf","output","p","pop","push","join","this","origin","href","self","__global","addToError","err","msg","originalErr","stack","message","toString","split","newStack","i","length","$__curScript","indexOf","src","newMsg","substr","isBrowser","isWindows","newErr","errArgs","Error","fileName","lineNumber","Module","Loader","options","_loader","loaderObj","loads","modules","importPromises","moduleRecords","defineProperty","get","SystemJSLoader","call","paths","systemJSConstructor","SystemProto","hook","name","prototype","hookConstructor","isAbsolute","absURLRegEx","isRel","isPlain","urlResolve","parent","baseURI","URL","baseURIObj","applyPaths","loader","wildcard","pathMatch","maxWildcardPrefixLen","pathsCache","hasOwnProperty","path","pathParts","wildcardPrefixLen","outPath","group","deps","names","indices","l","index","getESModule","exports","esModule","getOwnPropertyDescriptor","defineOrCopyProperty","extend","value","targetObj","sourceObj","propName","d","Object","ex","a","b","prepend","extendMeta","val","Array","concat","extendPkgConfig","pkgCfgA","pkgCfgB","pkgName","warnInvalidProperties","prop","map","meta","depCache","dNormalized","coreResolve","warn","setPkgConfig","cfg","prependConfig","pkg","packages","basePkg","main","warnings","console","createInstantiate","load","result","metadata","entry","createEntry","execute","format","readMemberExpression","pParts","shift","getMapMatch","bestMatch","bestMatchLength","curMatchLength","prepareBaseURL","setProduction","isProduction","isBuilder","set","envModule","newModule","browser","node","_nodeRequire","production","dev","build","default","getNodeModule","parentModuleContext","_nodeModulePaths","require","parentName","mapMatch","has","builder","envSet","envCallback","browserConfig","nodeConfig","devConfig","buildConfig","productionConfig","detectRegisterFormat","source","leadingCommentAndMeta","leadingCommentAndMetaRegEx","originalIndices","declare","executingRequire","declarative","normalizedDeps","groupIndex","evaluated","module","esmExports","getGlobalValue","globalValue","first","parseCondition","condition","conditionExport","conditionModule","negation","conditionExportIndex","sysConditions","negate","serializeCondition","conditionObj","resolveCondition","bool","normalize","then","normalizedCondition","q","interpolateConditional","conditionalMatch","interpolationRegEx","Promise","resolve","conditionValue","booleanConditional","booleanIndex","isWorker","window","importScripts","document","process","platform","assert","item","thisLen","e","obj","opt","getElementsByTagName","bases","location","cwd","nativeURL","createLoad","status","anonCnt","linkSets","dependencies","loadModule","asyncStartLoadPartwayThrough","step","address","moduleName","moduleMetadata","moduleSource","moduleAddress","requestLoad","request","refererName","refererAddress","reject","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","depsList","loadPromises","depLoad","key","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","j","doLink","error","link","_newModule","finishLoad","abrupt","checkError","pLoad","dep","failed","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","loadIndex","doDynamicExecute","linkError","createImportPromise","promise","constructor","define","delete","import","parentAddress","sourcePromise","pNames","getOwnPropertyNames","configurable","enumerable","freeze","referrerName","referrerAddress","System","fetchTextFromURL","XMLHttpRequest","authorization","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","addEventListener","open","setRequestHeader","withCredentials","setTimeout","send","fs","readFile","data","dataString","opts","headers","Accept","credentials","r","ok","text","scriptSrc","defaultJSExtensions","pluginFirst","loaderErrorStack","skipExt","resolved","httpRequest","systemImport","__useDefault","systemTranslate","apply","arguments","JSON","parse","getConfig","curCurScript","config","isEnvConfig","checkHasConfig","transpilerRuntime","loadedTranspilerRuntime","bundles","packageConfigPaths","v","defaultJSExtension","decanonicalize","pkgMatch","packageLength","Math","max","normalized","bundle","normalizedBundleDep","c","getPackage","curPkg","pkgLen","curPkgLen","addDefaultExtension","subPath","skipExtensions","defaultExtension","metaMatch","getMetaMatches","metaPattern","matchMeta","matchDepth","applyPackageConfigSync","mapPath","mapped","doMapSync","validMapping","normalizeSync","applyPackageConfig","doMap","doStringMap","conditionPromises","conditions","conditionValues","createPkgConfigPathObj","lastWildcard","regEx","RegExp","getPackageConfigMatch","configPath","exactMatch","packageConfigPath","packageName","loadPackageConfigPath","pkgConfigPath","configLoader","pluginLoader","systemjs","pkgMeta","matchFn","wildcardIndex","dotRel","exactMeta","decanonicalized","isPlugin","parentPackageName","parentPackage","parentMap","parentMapMatch","pkgConfigMatch","isConfigured","configured","bestDepth","getInteractiveScriptLoad","interactiveScript","script","interactiveLoadingScripts","webWorkerImport","integrity","workerLoad","head","curSystem","curRequire","ieEvents","s","createElement","isOpera","opera","attachEvent","loadingCnt","registerQueue","pushRegister","register","reduceRegister_","scriptLoad","complete","evt","cleanup","detachEvent","removeEventListener","removeChild","async","crossOrigin","setAttribute","appendChild","buildGroups","groups","depName","depEntry","defined","depGroupIndex","startEntry","curGroupDeclarative","linkDeclarativeModule","linkDynamicModule","ModuleRecord","getOrCreateModuleRecord","importers","declaration","locked","importerModule","importerIndex","setter","setters","id","depExports","depModule","len","getModule","ensureEvaluated","nameNormalized","__esModule","seen","registerDynamic","pushRegister_","amd","curMeta","del","doLoad","__exec","grouped","normalizePromises","reduceRegister","forEachGlobal","callback","keys","g","forEachGlobalValue","globalName","ignoredGlobalProps","globalSnapshot","prepareGlobal","globals","encapsulate","curDefine","oldGlobals","singleGlobal","multipleExports","stripOrigin","windowOrigin","requireResolve","parentId","getPathVars","moduleId","filename","pluginIndex","dirname","amdDefine","getCJSDeps","requireIndex","commentRegEx","params","fnBracketRegEx","requireAlias","wsRegEx","requireRegEx","requireRegExs","cjsRequirePre","cjsRequirePost","lastIndex","errback","referer","dynamicRequires","factory","req","contextualRequire","depValues","uri","moduleIndex","exportsIndex","toUrl","amdRequire","getParentName","parentPluginIndex","parsePlugin","argumentName","pluginName","argument","plugin","combinePluginParts","checkDefaultExtension","arg","createNormalizeSync","parsed","pluginSyntaxIndex","loaderNormalized","loaderModule","args","sourceMap","originalName","file","sources","calledInstantiate","alias","aliasDeps","_export","setMetaProperty","target","curPart","depth","metaRegEx","metaPartRegEx","metaParts","firstChar","metaString","metaName","metaValue","loadedBundles","matched","curModule","parts","substring","SystemJS","version","doPolyfill","scripts","currentScript","defer","curPath","basePath","systemJSBootstrap","write","__filename"],"mappings":"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"} \ No newline at end of file
diff --git a/node_modules/systemjs/dist/system-csp-production.src.js b/node_modules/systemjs/dist/system-csp-production.src.js
deleted file mode 100644
index b727e9bdf..000000000
--- a/node_modules/systemjs/dist/system-csp-production.src.js
+++ /dev/null
@@ -1,4537 +0,0 @@
-/*
- * SystemJS v0.19.47
- */
-(function() {
-function bootstrap() {// from https://gist.github.com/Yaffle/1088850
-(function(global) {
-function URLPolyfill(url, baseURL) {
- if (typeof url != 'string')
- throw new TypeError('URL must be a string');
- var m = String(url).replace(/^\s+|\s+$/g, "").replace(/\\/g, '/').match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@\/?#]*)(?::([^:@\/?#]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);
- if (!m)
- throw new RangeError('Invalid URL format');
- var protocol = m[1] || "";
- var username = m[2] || "";
- var password = m[3] || "";
- var host = m[4] || "";
- var hostname = m[5] || "";
- var port = m[6] || "";
- var pathname = m[7] || "";
- var search = m[8] || "";
- var hash = m[9] || "";
- if (baseURL !== undefined) {
- var base = baseURL instanceof URLPolyfill ? baseURL : new URLPolyfill(baseURL);
- var flag = !protocol && !host && !username;
- if (flag && !pathname && !search)
- search = base.search;
- if (flag && pathname[0] !== "/")
- pathname = (pathname ? (((base.host || base.username) && !base.pathname ? "/" : "") + base.pathname.slice(0, base.pathname.lastIndexOf("/") + 1) + pathname) : base.pathname);
- // dot segments removal
- var output = [];
- pathname.replace(/^(\.\.?(\/|$))+/, "")
- .replace(/\/(\.(\/|$))+/g, "/")
- .replace(/\/\.\.$/, "/../")
- .replace(/\/?[^\/]*/g, function (p) {
- if (p === "/..")
- output.pop();
- else
- output.push(p);
- });
- pathname = output.join("").replace(/^\//, pathname[0] === "/" ? "/" : "");
- if (flag) {
- port = base.port;
- hostname = base.hostname;
- host = base.host;
- password = base.password;
- username = base.username;
- }
- if (!protocol)
- protocol = base.protocol;
- }
-
- // convert URLs to use / always
- pathname = pathname.replace(/\\/g, '/');
-
- this.origin = host ? protocol + (protocol !== "" || host !== "" ? "//" : "") + host : "";
- this.href = protocol + (protocol && host || protocol == "file:" ? "//" : "") + (username !== "" ? username + (password !== "" ? ":" + password : "") + "@" : "") + host + pathname + search + hash;
- this.protocol = protocol;
- this.username = username;
- this.password = password;
- this.host = host;
- this.hostname = hostname;
- this.port = port;
- this.pathname = pathname;
- this.search = search;
- this.hash = hash;
-}
-global.URLPolyfill = URLPolyfill;
-})(typeof self != 'undefined' ? self : global);
-(function(__global) {
-
- var isWorker = typeof window == 'undefined' && typeof self != 'undefined' && typeof importScripts != 'undefined';
- var isBrowser = typeof window != 'undefined' && typeof document != 'undefined';
- var isWindows = typeof process != 'undefined' && typeof process.platform != 'undefined' && !!process.platform.match(/^win/);
-
- if (!__global.console)
- __global.console = { assert: function() {} };
-
- // IE8 support
- var indexOf = Array.prototype.indexOf || function(item) {
- for (var i = 0, thisLen = this.length; i < thisLen; i++) {
- if (this[i] === item) {
- return i;
- }
- }
- return -1;
- };
-
- var defineProperty;
- (function () {
- try {
- if (!!Object.defineProperty({}, 'a', {}))
- defineProperty = Object.defineProperty;
- }
- catch (e) {
- defineProperty = function(obj, prop, opt) {
- try {
- obj[prop] = opt.value || opt.get.call(obj);
- }
- catch(e) {}
- }
- }
- })();
-
- var errArgs = new Error(0, '_').fileName == '_';
-
- function addToError(err, msg) {
- // parse the stack removing loader code lines for simplification
- if (!err.originalErr) {
- var stack = ((err.message || err) + (err.stack ? '\n' + err.stack : '')).toString().split('\n');
- var newStack = [];
- for (var i = 0; i < stack.length; i++) {
- if (typeof $__curScript == 'undefined' || stack[i].indexOf($__curScript.src) == -1)
- newStack.push(stack[i]);
- }
- }
-
- var newMsg = '(SystemJS) ' + (newStack ? newStack.join('\n\t') : err.message.substr(11)) + '\n\t' + msg;
-
- // Convert file:/// URLs to paths in Node
- if (!isBrowser)
- newMsg = newMsg.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, '');
-
- var newErr = errArgs ? new Error(newMsg, err.fileName, err.lineNumber) : new Error(newMsg);
-
- newErr.stack = newMsg;
-
- // track the original error
- newErr.originalErr = err.originalErr || err;
-
- return newErr;
- }
-
- function __eval(source, debugName, context) {
- try {
- new Function(source).call(context);
- }
- catch(e) {
- throw addToError(e, 'Evaluating ' + debugName);
- }
- }
-
- var baseURI;
-
- // environent baseURI detection
- if (typeof document != 'undefined' && document.getElementsByTagName) {
- baseURI = document.baseURI;
-
- if (!baseURI) {
- var bases = document.getElementsByTagName('base');
- baseURI = bases[0] && bases[0].href || window.location.href;
- }
- }
- else if (typeof location != 'undefined') {
- baseURI = __global.location.href;
- }
-
- // sanitize out the hash and querystring
- if (baseURI) {
- baseURI = baseURI.split('#')[0].split('?')[0];
- baseURI = baseURI.substr(0, baseURI.lastIndexOf('/') + 1);
- }
- else if (typeof process != 'undefined' && process.cwd) {
- baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd() + '/';
- if (isWindows)
- baseURI = baseURI.replace(/\\/g, '/');
- }
- else {
- throw new TypeError('No environment baseURI');
- }
-
- try {
- var nativeURL = new __global.URL('test:///').protocol == 'test:';
- }
- catch(e) {}
-
- var URL = nativeURL ? __global.URL : __global.URLPolyfill;
-
-/*
-*********************************************************************************************
-
- Dynamic Module Loader Polyfill
-
- - Implemented exactly to the former 2014-08-24 ES6 Specification Draft Rev 27, Section 15
- http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27
-
- - Functions are commented with their spec numbers, with spec differences commented.
-
- - Spec bugs are commented in this code with links.
-
- - Abstract functions have been combined where possible, and their associated functions
- commented.
-
- - Realm implementation is entirely omitted.
-
-*********************************************************************************************
-*/
-
-function Module() {}
-// http://www.ecma-international.org/ecma-262/6.0/#sec-@@tostringtag
-defineProperty(Module.prototype, 'toString', {
- value: function() {
- return 'Module';
- }
-});
-function Loader(options) {
- this._loader = {
- loaderObj: this,
- loads: [],
- modules: {},
- importPromises: {},
- moduleRecords: {}
- };
-
- // 26.3.3.6
- defineProperty(this, 'global', {
- get: function() {
- return __global;
- }
- });
-
- // 26.3.3.13 realm not implemented
-}
-
-(function() {
-
-// Some Helpers
-
-// logs a linkset snapshot for debugging
-/* function snapshot(loader) {
- console.log('---Snapshot---');
- for (var i = 0; i < loader.loads.length; i++) {
- var load = loader.loads[i];
- var linkSetLog = ' ' + load.name + ' (' + load.status + '): ';
-
- for (var j = 0; j < load.linkSets.length; j++) {
- linkSetLog += '{' + logloads(load.linkSets[j].loads) + '} ';
- }
- console.log(linkSetLog);
- }
- console.log('');
-}
-function logloads(loads) {
- var log = '';
- for (var k = 0; k < loads.length; k++)
- log += loads[k].name + (k != loads.length - 1 ? ' ' : '');
- return log;
-} */
-
-
-/* function checkInvariants() {
- // see https://bugs.ecmascript.org/show_bug.cgi?id=2603#c1
-
- var loads = System._loader.loads;
- var linkSets = [];
-
- for (var i = 0; i < loads.length; i++) {
- var load = loads[i];
- console.assert(load.status == 'loading' || load.status == 'loaded', 'Each load is loading or loaded');
-
- for (var j = 0; j < load.linkSets.length; j++) {
- var linkSet = load.linkSets[j];
-
- for (var k = 0; k < linkSet.loads.length; k++)
- console.assert(loads.indexOf(linkSet.loads[k]) != -1, 'linkSet loads are a subset of loader loads');
-
- if (linkSets.indexOf(linkSet) == -1)
- linkSets.push(linkSet);
- }
- }
-
- for (var i = 0; i < loads.length; i++) {
- var load = loads[i];
- for (var j = 0; j < linkSets.length; j++) {
- var linkSet = linkSets[j];
-
- if (linkSet.loads.indexOf(load) != -1)
- console.assert(load.linkSets.indexOf(linkSet) != -1, 'linkSet contains load -> load contains linkSet');
-
- if (load.linkSets.indexOf(linkSet) != -1)
- console.assert(linkSet.loads.indexOf(load) != -1, 'load contains linkSet -> linkSet contains load');
- }
- }
-
- for (var i = 0; i < linkSets.length; i++) {
- var linkSet = linkSets[i];
- for (var j = 0; j < linkSet.loads.length; j++) {
- var load = linkSet.loads[j];
-
- for (var k = 0; k < load.dependencies.length; k++) {
- var depName = load.dependencies[k].value;
- var depLoad;
- for (var l = 0; l < loads.length; l++) {
- if (loads[l].name != depName)
- continue;
- depLoad = loads[l];
- break;
- }
-
- // loading records are allowed not to have their dependencies yet
- // if (load.status != 'loading')
- // console.assert(depLoad, 'depLoad found');
-
- // console.assert(linkSet.loads.indexOf(depLoad) != -1, 'linkset contains all dependencies');
- }
- }
- }
-} */
-
- // 15.2.3 - Runtime Semantics: Loader State
-
- // 15.2.3.11
- function createLoaderLoad(object) {
- return {
- // modules is an object for ES5 implementation
- modules: {},
- loads: [],
- loaderObj: object
- };
- }
-
- // 15.2.3.2 Load Records and LoadRequest Objects
-
- var anonCnt = 0;
-
- // 15.2.3.2.1
- function createLoad(name) {
- return {
- status: 'loading',
- name: name || '<Anonymous' + ++anonCnt + '>',
- linkSets: [],
- dependencies: [],
- metadata: {}
- };
- }
-
- // 15.2.3.2.2 createLoadRequestObject, absorbed into calling functions
-
- // 15.2.4
-
- // 15.2.4.1
- function loadModule(loader, name, options) {
- return new Promise(asyncStartLoadPartwayThrough({
- step: options.address ? 'fetch' : 'locate',
- loader: loader,
- moduleName: name,
- // allow metadata for import https://bugs.ecmascript.org/show_bug.cgi?id=3091
- moduleMetadata: options && options.metadata || {},
- moduleSource: options.source,
- moduleAddress: options.address
- }));
- }
-
- // 15.2.4.2
- function requestLoad(loader, request, refererName, refererAddress) {
- // 15.2.4.2.1 CallNormalize
- return new Promise(function(resolve, reject) {
- resolve(loader.loaderObj.normalize(request, refererName, refererAddress));
- })
- // 15.2.4.2.2 GetOrCreateLoad
- .then(function(name) {
- var load;
- if (loader.modules[name]) {
- load = createLoad(name);
- load.status = 'linked';
- // https://bugs.ecmascript.org/show_bug.cgi?id=2795
- load.module = loader.modules[name];
- return load;
- }
-
- for (var i = 0, l = loader.loads.length; i < l; i++) {
- load = loader.loads[i];
- if (load.name != name)
- continue;
- return load;
- }
-
- load = createLoad(name);
- loader.loads.push(load);
-
- proceedToLocate(loader, load);
-
- return load;
- });
- }
-
- // 15.2.4.3
- function proceedToLocate(loader, load) {
- proceedToFetch(loader, load,
- Promise.resolve()
- // 15.2.4.3.1 CallLocate
- .then(function() {
- return loader.loaderObj.locate({ name: load.name, metadata: load.metadata });
- })
- );
- }
-
- // 15.2.4.4
- function proceedToFetch(loader, load, p) {
- proceedToTranslate(loader, load,
- p
- // 15.2.4.4.1 CallFetch
- .then(function(address) {
- // adjusted, see https://bugs.ecmascript.org/show_bug.cgi?id=2602
- if (load.status != 'loading')
- return;
- load.address = address;
-
- return loader.loaderObj.fetch({ name: load.name, metadata: load.metadata, address: address });
- })
- );
- }
-
- // 15.2.4.5
- function proceedToTranslate(loader, load, p) {
- p
- // 15.2.4.5.1 CallTranslate
- .then(function(source) {
- if (load.status != 'loading')
- return;
-
- load.address = load.address || load.name;
-
- return Promise.resolve(loader.loaderObj.translate({ name: load.name, metadata: load.metadata, address: load.address, source: source }))
-
- // 15.2.4.5.2 CallInstantiate
- .then(function(source) {
- load.source = source;
- return loader.loaderObj.instantiate({ name: load.name, metadata: load.metadata, address: load.address, source: source });
- })
-
- // 15.2.4.5.3 InstantiateSucceeded
- .then(function(instantiateResult) {
- if (instantiateResult === undefined)
- throw new TypeError('Declarative modules unsupported in the polyfill.');
-
- if (typeof instantiateResult != 'object')
- throw new TypeError('Invalid instantiate return value');
-
- load.depsList = instantiateResult.deps || [];
- load.execute = instantiateResult.execute;
- })
- // 15.2.4.6 ProcessLoadDependencies
- .then(function() {
- load.dependencies = [];
- var depsList = load.depsList;
-
- var loadPromises = [];
- for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) {
- loadPromises.push(
- requestLoad(loader, request, load.name, load.address)
-
- // 15.2.4.6.1 AddDependencyLoad (load is parentLoad)
- .then(function(depLoad) {
-
- // adjusted from spec to maintain dependency order
- // this is due to the System.register internal implementation needs
- load.dependencies[index] = {
- key: request,
- value: depLoad.name
- };
-
- if (depLoad.status != 'linked') {
- var linkSets = load.linkSets.concat([]);
- for (var i = 0, l = linkSets.length; i < l; i++)
- addLoadToLinkSet(linkSets[i], depLoad);
- }
-
- // console.log('AddDependencyLoad ' + depLoad.name + ' for ' + load.name);
- // snapshot(loader);
- })
- );
- })(depsList[i], i);
-
- return Promise.all(loadPromises);
- })
-
- // 15.2.4.6.2 LoadSucceeded
- .then(function() {
- // console.log('LoadSucceeded ' + load.name);
- // snapshot(loader);
-
- load.status = 'loaded';
-
- var linkSets = load.linkSets.concat([]);
- for (var i = 0, l = linkSets.length; i < l; i++)
- updateLinkSetOnLoad(linkSets[i], load);
- });
- })
- // 15.2.4.5.4 LoadFailed
- ['catch'](function(exc) {
- load.status = 'failed';
- load.exception = exc;
-
- var linkSets = load.linkSets.concat([]);
- for (var i = 0, l = linkSets.length; i < l; i++) {
- linkSetFailed(linkSets[i], load, exc);
- }
- });
- }
-
- // 15.2.4.7 PromiseOfStartLoadPartwayThrough absorbed into calling functions
-
- // 15.2.4.7.1
- function asyncStartLoadPartwayThrough(stepState) {
- return function(resolve, reject) {
- var loader = stepState.loader;
- var name = stepState.moduleName;
- var step = stepState.step;
-
- if (loader.modules[name])
- throw new TypeError('"' + name + '" already exists in the module table');
-
- // adjusted to pick up existing loads
- var existingLoad;
- for (var i = 0, l = loader.loads.length; i < l; i++) {
- if (loader.loads[i].name == name) {
- existingLoad = loader.loads[i];
-
- if (step == 'translate' && !existingLoad.source) {
- existingLoad.address = stepState.moduleAddress;
- proceedToTranslate(loader, existingLoad, Promise.resolve(stepState.moduleSource));
- }
-
- // a primary load -> use that existing linkset if it is for the direct load here
- // otherwise create a new linkset unit
- if (existingLoad.linkSets.length && existingLoad.linkSets[0].loads[0].name == existingLoad.name)
- return existingLoad.linkSets[0].done.then(function() {
- resolve(existingLoad);
- });
- }
- }
-
- var load = existingLoad || createLoad(name);
-
- load.metadata = stepState.moduleMetadata;
-
- var linkSet = createLinkSet(loader, load);
-
- loader.loads.push(load);
-
- resolve(linkSet.done);
-
- if (step == 'locate')
- proceedToLocate(loader, load);
-
- else if (step == 'fetch')
- proceedToFetch(loader, load, Promise.resolve(stepState.moduleAddress));
-
- else {
- load.address = stepState.moduleAddress;
- proceedToTranslate(loader, load, Promise.resolve(stepState.moduleSource));
- }
- }
- }
-
- // Declarative linking functions run through alternative implementation:
- // 15.2.5.1.1 CreateModuleLinkageRecord not implemented
- // 15.2.5.1.2 LookupExport not implemented
- // 15.2.5.1.3 LookupModuleDependency not implemented
-
- // 15.2.5.2.1
- function createLinkSet(loader, startingLoad) {
- var linkSet = {
- loader: loader,
- loads: [],
- startingLoad: startingLoad, // added see spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995
- loadingCount: 0
- };
- linkSet.done = new Promise(function(resolve, reject) {
- linkSet.resolve = resolve;
- linkSet.reject = reject;
- });
- addLoadToLinkSet(linkSet, startingLoad);
- return linkSet;
- }
- // 15.2.5.2.2
- function addLoadToLinkSet(linkSet, load) {
- if (load.status == 'failed')
- return;
-
- for (var i = 0, l = linkSet.loads.length; i < l; i++)
- if (linkSet.loads[i] == load)
- return;
-
- linkSet.loads.push(load);
- load.linkSets.push(linkSet);
-
- // adjustment, see https://bugs.ecmascript.org/show_bug.cgi?id=2603
- if (load.status != 'loaded') {
- linkSet.loadingCount++;
- }
-
- var loader = linkSet.loader;
-
- for (var i = 0, l = load.dependencies.length; i < l; i++) {
- if (!load.dependencies[i])
- continue;
-
- var name = load.dependencies[i].value;
-
- if (loader.modules[name])
- continue;
-
- for (var j = 0, d = loader.loads.length; j < d; j++) {
- if (loader.loads[j].name != name)
- continue;
-
- addLoadToLinkSet(linkSet, loader.loads[j]);
- break;
- }
- }
- // console.log('add to linkset ' + load.name);
- // snapshot(linkSet.loader);
- }
-
- // linking errors can be generic or load-specific
- // this is necessary for debugging info
- function doLink(linkSet) {
- var error = false;
- try {
- link(linkSet, function(load, exc) {
- linkSetFailed(linkSet, load, exc);
- error = true;
- });
- }
- catch(e) {
- linkSetFailed(linkSet, null, e);
- error = true;
- }
- return error;
- }
-
- // 15.2.5.2.3
- function updateLinkSetOnLoad(linkSet, load) {
- // console.log('update linkset on load ' + load.name);
- // snapshot(linkSet.loader);
- linkSet.loadingCount--;
-
- if (linkSet.loadingCount > 0)
- return;
-
- // adjusted for spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995
- var startingLoad = linkSet.startingLoad;
-
- // non-executing link variation for loader tracing
- // on the server. Not in spec.
- /***/
- if (linkSet.loader.loaderObj.execute === false) {
- var loads = [].concat(linkSet.loads);
- for (var i = 0, l = loads.length; i < l; i++) {
- var load = loads[i];
- load.module = {
- name: load.name,
- module: _newModule({}),
- evaluated: true
- };
- load.status = 'linked';
- finishLoad(linkSet.loader, load);
- }
- return linkSet.resolve(startingLoad);
- }
- /***/
-
- var abrupt = doLink(linkSet);
-
- if (abrupt)
- return;
-
- linkSet.resolve(startingLoad);
- }
-
- // 15.2.5.2.4
- function linkSetFailed(linkSet, load, exc) {
- var loader = linkSet.loader;
- var requests;
-
- checkError:
- if (load) {
- if (linkSet.loads[0].name == load.name) {
- exc = addToError(exc, 'Error loading ' + load.name);
- }
- else {
- for (var i = 0; i < linkSet.loads.length; i++) {
- var pLoad = linkSet.loads[i];
- for (var j = 0; j < pLoad.dependencies.length; j++) {
- var dep = pLoad.dependencies[j];
- if (dep.value == load.name) {
- exc = addToError(exc, 'Error loading ' + load.name + ' as "' + dep.key + '" from ' + pLoad.name);
- break checkError;
- }
- }
- }
- exc = addToError(exc, 'Error loading ' + load.name + ' from ' + linkSet.loads[0].name);
- }
- }
- else {
- exc = addToError(exc, 'Error linking ' + linkSet.loads[0].name);
- }
-
-
- var loads = linkSet.loads.concat([]);
- for (var i = 0, l = loads.length; i < l; i++) {
- var load = loads[i];
-
- // store all failed load records
- loader.loaderObj.failed = loader.loaderObj.failed || [];
- if (indexOf.call(loader.loaderObj.failed, load) == -1)
- loader.loaderObj.failed.push(load);
-
- var linkIndex = indexOf.call(load.linkSets, linkSet);
- load.linkSets.splice(linkIndex, 1);
- if (load.linkSets.length == 0) {
- var globalLoadsIndex = indexOf.call(linkSet.loader.loads, load);
- if (globalLoadsIndex != -1)
- linkSet.loader.loads.splice(globalLoadsIndex, 1);
- }
- }
- linkSet.reject(exc);
- }
-
- // 15.2.5.2.5
- function finishLoad(loader, load) {
- // add to global trace if tracing
- if (loader.loaderObj.trace) {
- if (!loader.loaderObj.loads)
- loader.loaderObj.loads = {};
- var depMap = {};
- load.dependencies.forEach(function(dep) {
- depMap[dep.key] = dep.value;
- });
- loader.loaderObj.loads[load.name] = {
- name: load.name,
- deps: load.dependencies.map(function(dep){ return dep.key }),
- depMap: depMap,
- address: load.address,
- metadata: load.metadata,
- source: load.source
- };
- }
- // if not anonymous, add to the module table
- if (load.name) {
- loader.modules[load.name] = load.module;
- }
- var loadIndex = indexOf.call(loader.loads, load);
- if (loadIndex != -1)
- loader.loads.splice(loadIndex, 1);
- for (var i = 0, l = load.linkSets.length; i < l; i++) {
- loadIndex = indexOf.call(load.linkSets[i].loads, load);
- if (loadIndex != -1)
- load.linkSets[i].loads.splice(loadIndex, 1);
- }
- load.linkSets.splice(0, load.linkSets.length);
- }
-
- function doDynamicExecute(linkSet, load, linkError) {
- try {
- var module = load.execute();
- }
- catch(e) {
- linkError(load, e);
- return;
- }
- if (!module || !(module instanceof Module))
- linkError(load, new TypeError('Execution must define a Module instance'));
- else
- return module;
- }
-
- // 26.3 Loader
-
- // 26.3.1.1
- // defined at top
-
- // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601
- function createImportPromise(loader, name, promise) {
- var importPromises = loader._loader.importPromises;
- return importPromises[name] = promise.then(function(m) {
- importPromises[name] = undefined;
- return m;
- }, function(e) {
- importPromises[name] = undefined;
- throw e;
- });
- }
-
- Loader.prototype = {
- // 26.3.3.1
- constructor: Loader,
- // 26.3.3.2
- define: function(name, source, options) {
- // check if already defined
- if (this._loader.importPromises[name])
- throw new TypeError('Module is already loading.');
- return createImportPromise(this, name, new Promise(asyncStartLoadPartwayThrough({
- step: 'translate',
- loader: this._loader,
- moduleName: name,
- moduleMetadata: options && options.metadata || {},
- moduleSource: source,
- moduleAddress: options && options.address
- })));
- },
- // 26.3.3.3
- 'delete': function(name) {
- var loader = this._loader;
- delete loader.importPromises[name];
- delete loader.moduleRecords[name];
- return loader.modules[name] ? delete loader.modules[name] : false;
- },
- // 26.3.3.4 entries not implemented
- // 26.3.3.5
- get: function(key) {
- if (!this._loader.modules[key])
- return;
- return this._loader.modules[key].module;
- },
- // 26.3.3.7
- has: function(name) {
- return !!this._loader.modules[name];
- },
- // 26.3.3.8
- 'import': function(name, parentName, parentAddress) {
- if (typeof parentName == 'object')
- parentName = parentName.name;
-
- // run normalize first
- var loaderObj = this;
-
- // added, see https://bugs.ecmascript.org/show_bug.cgi?id=2659
- return Promise.resolve(loaderObj.normalize(name, parentName))
- .then(function(name) {
- var loader = loaderObj._loader;
-
- if (loader.modules[name])
- return loader.modules[name].module;
-
- return loader.importPromises[name] || createImportPromise(loaderObj, name,
- loadModule(loader, name, {})
- .then(function(load) {
- delete loader.importPromises[name];
- return load.module.module;
- }));
- });
- },
- // 26.3.3.9 keys not implemented
- // 26.3.3.10
- load: function(name) {
- var loader = this._loader;
- if (loader.modules[name])
- return Promise.resolve();
- return (loader.importPromises[name] || createImportPromise(this, name, new Promise(asyncStartLoadPartwayThrough({
- step: 'locate',
- loader: loader,
- moduleName: name,
- moduleMetadata: {},
- moduleSource: undefined,
- moduleAddress: undefined
- }))
- .then(function(load) {
- delete loader.importPromises[name];
- return load.module.module;
- })))
- .then(function () {});
- },
- // 26.3.3.11
- module: function(source, options) {
- var load = createLoad();
- load.address = options && options.address;
- var linkSet = createLinkSet(this._loader, load);
- var sourcePromise = Promise.resolve(source);
- var loader = this._loader;
- var p = linkSet.done.then(function() {
- return load.module.module;
- });
- proceedToTranslate(loader, load, sourcePromise);
- return p;
- },
- // 26.3.3.12
- newModule: function (obj) {
- if (typeof obj != 'object')
- throw new TypeError('Expected object');
-
- var m = new Module();
-
- var pNames = [];
- if (Object.getOwnPropertyNames && obj != null)
- pNames = Object.getOwnPropertyNames(obj);
- else
- for (var key in obj)
- pNames.push(key);
-
- for (var i = 0; i < pNames.length; i++) (function(key) {
- defineProperty(m, key, {
- configurable: false,
- enumerable: true,
- get: function () {
- return obj[key];
- },
- set: function() {
- throw new Error('Module exports cannot be changed externally.');
- }
- });
- })(pNames[i]);
-
- if (Object.freeze)
- Object.freeze(m);
-
- return m;
- },
- // 26.3.3.14
- set: function(name, module) {
- if (!(module instanceof Module))
- throw new TypeError('Loader.set(' + name + ', module) must be a module');
- this._loader.modules[name] = {
- module: module
- };
- },
- // 26.3.3.15 values not implemented
- // 26.3.3.16 @@iterator not implemented
- // 26.3.3.17 @@toStringTag not implemented
-
- // 26.3.3.18.1
- normalize: function(name, referrerName, referrerAddress) {},
- // 26.3.3.18.2
- locate: function(load) {
- return load.name;
- },
- // 26.3.3.18.3
- fetch: function(load) {
- },
- // 26.3.3.18.4
- translate: function(load) {
- return load.source;
- },
- // 26.3.3.18.5
- instantiate: function(load) {
- }
- };
-
- var _newModule = Loader.prototype.newModule;
-
-/*
- * ES6 Module Declarative Linking Code
- */
- function link(linkSet, linkError) {
-
- var loader = linkSet.loader;
-
- if (!linkSet.loads.length)
- return;
-
- var loads = linkSet.loads.concat([]);
-
- for (var i = 0; i < loads.length; i++) {
- var load = loads[i];
-
- var module = doDynamicExecute(linkSet, load, linkError);
- if (!module)
- return;
- load.module = {
- name: load.name,
- module: module
- };
- load.status = 'linked';
-
- finishLoad(loader, load);
- }
- }
-
-})();
-
-var System;
-// SystemJS Loader Class and Extension helpers
-function SystemJSLoader() {
- Loader.call(this);
-
- this.paths = {};
- this._loader.paths = {};
-
- systemJSConstructor.call(this);
-}
-
-// inline Object.create-style class extension
-function SystemProto() {};
-SystemProto.prototype = Loader.prototype;
-SystemJSLoader.prototype = new SystemProto();
-SystemJSLoader.prototype.constructor = SystemJSLoader;
-
-var systemJSConstructor;
-
-function hook(name, hook) {
- SystemJSLoader.prototype[name] = hook(SystemJSLoader.prototype[name] || function() {});
-}
-function hookConstructor(hook) {
- systemJSConstructor = hook(systemJSConstructor || function() {});
-}
-
-
-var absURLRegEx = /^[^\/]+:\/\//;
-function isAbsolute(name) {
- return name.match(absURLRegEx);
-}
-function isRel(name) {
- return (name[0] == '.' && (!name[1] || name[1] == '/' || name[1] == '.')) || name[0] == '/';
-}
-function isPlain(name) {
- return !isRel(name) && !isAbsolute(name);
-}
-
-var baseURIObj = new URL(baseURI);
-
-function urlResolve(name, parent) {
- // url resolution shortpaths
- if (name[0] == '.') {
- // dot-relative url normalization
- if (name[1] == '/' && name[2] != '.')
- return (parent && parent.substr(0, parent.lastIndexOf('/') + 1) || baseURI) + name.substr(2);
- }
- else if (name[0] != '/' && name.indexOf(':') == -1) {
- // plain parent normalization
- return (parent && parent.substr(0, parent.lastIndexOf('/') + 1) || baseURI) + name;
- }
-
- return new URL(name, parent && parent.replace(/#/g, '%05') || baseURIObj).href.replace(/%05/g, '#');
-}
-
-// NB no specification provided for System.paths, used ideas discussed in https://github.com/jorendorff/js-loaders/issues/25
-function applyPaths(loader, name) {
- // most specific (most number of slashes in path) match wins
- var pathMatch = '', wildcard, maxWildcardPrefixLen = 0;
-
- var paths = loader.paths;
- var pathsCache = loader._loader.paths;
-
- // check to see if we have a paths entry
- for (var p in paths) {
- if (paths.hasOwnProperty && !paths.hasOwnProperty(p))
- continue;
-
- // paths sanitization
- var path = paths[p];
- if (path !== pathsCache[p])
- path = paths[p] = pathsCache[p] = urlResolve(paths[p], isRel(paths[p]) ? baseURI : loader.baseURL);
-
- // exact path match
- if (p.indexOf('*') === -1) {
- if (name == p)
- return paths[p];
-
- // support trailing / in paths rules
- else if (name.substr(0, p.length - 1) == p.substr(0, p.length - 1) && (name.length < p.length || name[p.length - 1] == p[p.length - 1]) && (paths[p][paths[p].length - 1] == '/' || paths[p] == '')) {
- return paths[p].substr(0, paths[p].length - 1) + (name.length > p.length ? (paths[p] && '/' || '') + name.substr(p.length) : '');
- }
- }
- // wildcard path match
- else {
- var pathParts = p.split('*');
- if (pathParts.length > 2)
- throw new TypeError('Only one wildcard in a path is permitted');
-
- var wildcardPrefixLen = pathParts[0].length;
- if (wildcardPrefixLen >= maxWildcardPrefixLen &&
- name.substr(0, pathParts[0].length) == pathParts[0] &&
- name.substr(name.length - pathParts[1].length) == pathParts[1]) {
- maxWildcardPrefixLen = wildcardPrefixLen;
- pathMatch = p;
- wildcard = name.substr(pathParts[0].length, name.length - pathParts[1].length - pathParts[0].length);
- }
- }
- }
-
- var outPath = paths[pathMatch];
- if (typeof wildcard == 'string')
- outPath = outPath.replace('*', wildcard);
-
- return outPath;
-}
-
-function dedupe(deps) {
- var newDeps = [];
- for (var i = 0, l = deps.length; i < l; i++)
- if (indexOf.call(newDeps, deps[i]) == -1)
- newDeps.push(deps[i])
- return newDeps;
-}
-
-function group(deps) {
- var names = [];
- var indices = [];
- for (var i = 0, l = deps.length; i < l; i++) {
- var index = indexOf.call(names, deps[i]);
- if (index === -1) {
- names.push(deps[i]);
- indices.push([i]);
- }
- else {
- indices[index].push(i);
- }
- }
- return { names: names, indices: indices };
-}
-
-var getOwnPropertyDescriptor = true;
-try {
- Object.getOwnPropertyDescriptor({ a: 0 }, 'a');
-}
-catch(e) {
- getOwnPropertyDescriptor = false;
-}
-
-// converts any module.exports object into an object ready for SystemJS.newModule
-function getESModule(exports) {
- var esModule = {};
- // don't trigger getters/setters in environments that support them
- if ((typeof exports == 'object' || typeof exports == 'function') && exports !== __global) {
- if (getOwnPropertyDescriptor) {
- for (var p in exports) {
- // The default property is copied to esModule later on
- if (p === 'default')
- continue;
- defineOrCopyProperty(esModule, exports, p);
- }
- }
- else {
- extend(esModule, exports);
- }
- }
- esModule['default'] = exports;
- defineProperty(esModule, '__useDefault', {
- value: true
- });
- return esModule;
-}
-
-function defineOrCopyProperty(targetObj, sourceObj, propName) {
- try {
- var d;
- if (d = Object.getOwnPropertyDescriptor(sourceObj, propName))
- defineProperty(targetObj, propName, d);
- }
- catch (ex) {
- // Object.getOwnPropertyDescriptor threw an exception, fall back to normal set property
- // we dont need hasOwnProperty here because getOwnPropertyDescriptor would have returned undefined above
- targetObj[propName] = sourceObj[propName];
- return false;
- }
-}
-
-function extend(a, b, prepend) {
- var hasOwnProperty = b && b.hasOwnProperty;
- for (var p in b) {
- if (hasOwnProperty && !b.hasOwnProperty(p))
- continue;
- if (!prepend || !(p in a))
- a[p] = b[p];
- }
- return a;
-}
-
-// meta first-level extends where:
-// array + array appends
-// object + object extends
-// other properties replace
-function extendMeta(a, b, prepend) {
- var hasOwnProperty = b && b.hasOwnProperty;
- for (var p in b) {
- if (hasOwnProperty && !b.hasOwnProperty(p))
- continue;
- var val = b[p];
- if (!(p in a))
- a[p] = val;
- else if (val instanceof Array && a[p] instanceof Array)
- a[p] = [].concat(prepend ? val : a[p]).concat(prepend ? a[p] : val);
- else if (typeof val == 'object' && val !== null && typeof a[p] == 'object')
- a[p] = extend(extend({}, a[p]), val, prepend);
- else if (!prepend)
- a[p] = val;
- }
-}
-
-function extendPkgConfig(pkgCfgA, pkgCfgB, pkgName, loader, warnInvalidProperties) {
- for (var prop in pkgCfgB) {
- if (indexOf.call(['main', 'format', 'defaultExtension', 'basePath'], prop) != -1) {
- pkgCfgA[prop] = pkgCfgB[prop];
- }
- else if (prop == 'map') {
- extend(pkgCfgA.map = pkgCfgA.map || {}, pkgCfgB.map);
- }
- else if (prop == 'meta') {
- extend(pkgCfgA.meta = pkgCfgA.meta || {}, pkgCfgB.meta);
- }
- else if (prop == 'depCache') {
- for (var d in pkgCfgB.depCache) {
- var dNormalized;
-
- if (d.substr(0, 2) == './')
- dNormalized = pkgName + '/' + d.substr(2);
- else
- dNormalized = coreResolve.call(loader, d);
- loader.depCache[dNormalized] = (loader.depCache[dNormalized] || []).concat(pkgCfgB.depCache[d]);
- }
- }
- else if (warnInvalidProperties && indexOf.call(['browserConfig', 'nodeConfig', 'devConfig', 'productionConfig'], prop) == -1 &&
- (!pkgCfgB.hasOwnProperty || pkgCfgB.hasOwnProperty(prop))) {
- warn.call(loader, '"' + prop + '" is not a valid package configuration option in package ' + pkgName);
- }
- }
-}
-
-// deeply-merge (to first level) config with any existing package config
-function setPkgConfig(loader, pkgName, cfg, prependConfig) {
- var pkg;
-
- // first package is config by reference for fast path, cloned after that
- if (!loader.packages[pkgName]) {
- pkg = loader.packages[pkgName] = cfg;
- }
- else {
- var basePkg = loader.packages[pkgName];
- pkg = loader.packages[pkgName] = {};
-
- extendPkgConfig(pkg, prependConfig ? cfg : basePkg, pkgName, loader, prependConfig);
- extendPkgConfig(pkg, prependConfig ? basePkg : cfg, pkgName, loader, !prependConfig);
- }
-
- // main object becomes main map
- if (typeof pkg.main == 'object') {
- pkg.map = pkg.map || {};
- pkg.map['./@main'] = pkg.main;
- pkg.main['default'] = pkg.main['default'] || './';
- pkg.main = '@main';
- }
-
- return pkg;
-}
-
-function warn(msg) {
- if (this.warnings && typeof console != 'undefined' && console.warn)
- console.warn(msg);
-}
-
-function createInstantiate (load, result) {
- load.metadata.entry = createEntry();
- load.metadata.entry.execute = function() {
- return result;
- }
- load.metadata.entry.deps = [];
- load.metadata.format = 'defined';
-}
- var fetchTextFromURL;
- if (typeof XMLHttpRequest != 'undefined') {
- fetchTextFromURL = function(url, authorization, fulfill, reject) {
- var xhr = new XMLHttpRequest();
- var sameDomain = true;
- var doTimeout = false;
- if (!('withCredentials' in xhr)) {
- // check if same domain
- var domainCheck = /^(\w+:)?\/\/([^\/]+)/.exec(url);
- if (domainCheck) {
- sameDomain = domainCheck[2] === window.location.host;
- if (domainCheck[1])
- sameDomain &= domainCheck[1] === window.location.protocol;
- }
- }
- if (!sameDomain && typeof XDomainRequest != 'undefined') {
- xhr = new XDomainRequest();
- xhr.onload = load;
- xhr.onerror = error;
- xhr.ontimeout = error;
- xhr.onprogress = function() {};
- xhr.timeout = 0;
- doTimeout = true;
- }
- function load() {
- fulfill(xhr.responseText);
- }
- function error() {
- reject(new Error('XHR error' + (xhr.status ? ' (' + xhr.status + (xhr.statusText ? ' ' + xhr.statusText : '') + ')' : '') + ' loading ' + url));
- }
-
- xhr.onreadystatechange = function () {
- if (xhr.readyState === 4) {
- // in Chrome on file:/// URLs, status is 0
- if (xhr.status == 0) {
- if (xhr.responseText) {
- load();
- }
- else {
- // when responseText is empty, wait for load or error event
- // to inform if it is a 404 or empty file
- xhr.addEventListener('error', error);
- xhr.addEventListener('load', load);
- }
- }
- else if (xhr.status === 200) {
- load();
- }
- else {
- error();
- }
- }
- };
- xhr.open("GET", url, true);
-
- if (xhr.setRequestHeader) {
- xhr.setRequestHeader('Accept', 'application/x-es-module, */*');
- // can set "authorization: true" to enable withCredentials only
- if (authorization) {
- if (typeof authorization == 'string')
- xhr.setRequestHeader('Authorization', authorization);
- xhr.withCredentials = true;
- }
- }
-
- if (doTimeout) {
- setTimeout(function() {
- xhr.send();
- }, 0);
- } else {
- xhr.send(null);
- }
- };
- }
- else if (typeof require != 'undefined' && typeof process != 'undefined') {
- var fs;
- fetchTextFromURL = function(url, authorization, fulfill, reject) {
- if (url.substr(0, 8) != 'file:///')
- throw new Error('Unable to fetch "' + url + '". Only file URLs of the form file:/// allowed running in Node.');
- fs = fs || require('fs');
- if (isWindows)
- url = url.replace(/\//g, '\\').substr(8);
- else
- url = url.substr(7);
- return fs.readFile(url, function(err, data) {
- if (err) {
- return reject(err);
- }
- else {
- // Strip Byte Order Mark out if it's the leading char
- var dataString = data + '';
- if (dataString[0] === '\ufeff')
- dataString = dataString.substr(1);
-
- fulfill(dataString);
- }
- });
- };
- }
- else if (typeof self != 'undefined' && typeof self.fetch != 'undefined') {
- fetchTextFromURL = function(url, authorization, fulfill, reject) {
- var opts = {
- headers: {'Accept': 'application/x-es-module, */*'}
- };
-
- if (authorization) {
- if (typeof authorization == 'string')
- opts.headers['Authorization'] = authorization;
- opts.credentials = 'include';
- }
-
- fetch(url, opts)
- .then(function (r) {
- if (r.ok) {
- return r.text();
- } else {
- throw new Error('Fetch error: ' + r.status + ' ' + r.statusText);
- }
- })
- .then(fulfill, reject);
- }
- }
- else {
- throw new TypeError('No environment fetch API available.');
- }
-function readMemberExpression(p, value) {
- var pParts = p.split('.');
- while (pParts.length)
- value = value[pParts.shift()];
- return value;
-}
-
-function getMapMatch(map, name) {
- var bestMatch, bestMatchLength = 0;
-
- for (var p in map) {
- if (name.substr(0, p.length) == p && (name.length == p.length || name[p.length] == '/')) {
- var curMatchLength = p.split('/').length;
- if (curMatchLength <= bestMatchLength)
- continue;
- bestMatch = p;
- bestMatchLength = curMatchLength;
- }
- }
-
- return bestMatch;
-}
-
-function prepareBaseURL(loader) {
- // ensure baseURl is fully normalized
- if (this._loader.baseURL !== this.baseURL) {
- if (this.baseURL[this.baseURL.length - 1] != '/')
- this.baseURL += '/';
-
- this._loader.baseURL = this.baseURL = new URL(this.baseURL, baseURIObj).href;
- }
-}
-
-var envModule;
-function setProduction(isProduction, isBuilder) {
- this.set('@system-env', envModule = this.newModule({
- browser: isBrowser,
- node: !!this._nodeRequire,
- production: !isBuilder && isProduction,
- dev: isBuilder || !isProduction,
- build: isBuilder,
- 'default': true
- }));
-}
-
-hookConstructor(function(constructor) {
- return function() {
- constructor.call(this);
-
- // support baseURL
- this.baseURL = baseURI;
-
- // support map and paths
- this.map = {};
-
- // make the location of the system.js script accessible
- if (typeof $__curScript != 'undefined')
- this.scriptSrc = $__curScript.src;
-
- // global behaviour flags
- this.warnings = false;
- this.defaultJSExtensions = false;
- this.pluginFirst = false;
- this.loaderErrorStack = false;
-
- // by default load ".json" files as json
- // leading * meta doesn't need normalization
- // NB add this in next breaking release
- // this.meta['*.json'] = { format: 'json' };
-
- // support the empty module, as a concept
- this.set('@empty', this.newModule({}));
-
- setProduction.call(this, false, false);
- };
-});
-
-// include the node require since we're overriding it
-if (typeof require != 'undefined' && typeof process != 'undefined' && !process.browser)
- SystemJSLoader.prototype._nodeRequire = require;
-
-/*
- Core SystemJS Normalization
-
- If a name is relative, we apply URL normalization to the page
- If a name is an absolute URL, we leave it as-is
-
- Plain names (neither of the above) run through the map and paths
- normalization phases.
-
- The paths normalization phase applies last (paths extension), which
- defines the `decanonicalize` function and normalizes everything into
- a URL.
- */
-
-var parentModuleContext;
-function getNodeModule(name, baseURL) {
- if (!isPlain(name))
- throw new Error('Node module ' + name + ' can\'t be loaded as it is not a package require.');
-
- if (!parentModuleContext) {
- var Module = this._nodeRequire('module');
- var base = baseURL.substr(isWindows ? 8 : 7);
- parentModuleContext = new Module(base);
- parentModuleContext.paths = Module._nodeModulePaths(base);
- }
- return parentModuleContext.require(name);
-}
-
-function coreResolve(name, parentName) {
- // standard URL resolution
- if (isRel(name))
- return urlResolve(name, parentName);
- else if (isAbsolute(name))
- return name;
-
- // plain names not starting with './', '://' and '/' go through custom resolution
- var mapMatch = getMapMatch(this.map, name);
-
- if (mapMatch) {
- name = this.map[mapMatch] + name.substr(mapMatch.length);
-
- if (isRel(name))
- return urlResolve(name);
- else if (isAbsolute(name))
- return name;
- }
-
- if (this.has(name))
- return name;
-
- // dynamically load node-core modules when requiring `@node/fs` for example
- if (name.substr(0, 6) == '@node/') {
- if (!this._nodeRequire)
- throw new TypeError('Error loading ' + name + '. Can only load node core modules in Node.');
- if (this.builder)
- this.set(name, this.newModule({}));
- else
- this.set(name, this.newModule(getESModule(getNodeModule.call(this, name.substr(6), this.baseURL))));
- return name;
- }
-
- // prepare the baseURL to ensure it is normalized
- prepareBaseURL.call(this);
-
- return applyPaths(this, name) || this.baseURL + name;
-}
-
-hook('normalize', function(normalize) {
- return function(name, parentName, skipExt) {
- var resolved = coreResolve.call(this, name, parentName);
- if (this.defaultJSExtensions && !skipExt && resolved.substr(resolved.length - 3, 3) != '.js' && !isPlain(resolved))
- resolved += '.js';
- return resolved;
- };
-});
-
-// percent encode just '#' in urls if using HTTP requests
-var httpRequest = typeof XMLHttpRequest != 'undefined';
-hook('locate', function(locate) {
- return function(load) {
- return Promise.resolve(locate.call(this, load))
- .then(function(address) {
- if (httpRequest)
- return address.replace(/#/g, '%23');
- return address;
- });
- };
-});
-
-/*
- * Fetch with authorization
- */
-hook('fetch', function() {
- return function(load) {
- return new Promise(function(resolve, reject) {
- fetchTextFromURL(load.address, load.metadata.authorization, resolve, reject);
- });
- };
-});
-
-/*
- __useDefault
-
- When a module object looks like:
- newModule(
- __useDefault: true,
- default: 'some-module'
- })
-
- Then importing that module provides the 'some-module'
- result directly instead of the full module.
-
- Useful for eg module.exports = function() {}
-*/
-hook('import', function(systemImport) {
- return function(name, parentName, parentAddress) {
- if (parentName && parentName.name)
- warn.call(this, 'SystemJS.import(name, { name: parentName }) is deprecated for SystemJS.import(name, parentName), while importing ' + name + ' from ' + parentName.name);
- return systemImport.call(this, name, parentName, parentAddress).then(function(module) {
- return module.__useDefault ? module['default'] : module;
- });
- };
-});
-
-/*
- * Allow format: 'detect' meta to enable format detection
- */
-hook('translate', function(systemTranslate) {
- return function(load) {
- if (load.metadata.format == 'detect')
- load.metadata.format = undefined;
- return systemTranslate.apply(this, arguments);
- };
-});
-
-
-/*
- * JSON format support
- *
- * Supports loading JSON files as a module format itself
- *
- * Usage:
- *
- * SystemJS.config({
- * meta: {
- * '*.json': { format: 'json' }
- * }
- * });
- *
- * Module is returned as if written:
- *
- * export default {JSON}
- *
- * No named exports are provided
- *
- * Files ending in ".json" are treated as json automatically by SystemJS
- */
-hook('instantiate', function(instantiate) {
- return function(load) {
- if (load.metadata.format == 'json' && !this.builder) {
- var entry = load.metadata.entry = createEntry();
- entry.deps = [];
- entry.execute = function() {
- try {
- return JSON.parse(load.source);
- }
- catch(e) {
- throw new Error("Invalid JSON file " + load.name);
- }
- };
- }
- };
-})
-
-/*
- Extend config merging one deep only
-
- loader.config({
- some: 'random',
- config: 'here',
- deep: {
- config: { too: 'too' }
- }
- });
-
- <=>
-
- loader.some = 'random';
- loader.config = 'here'
- loader.deep = loader.deep || {};
- loader.deep.config = { too: 'too' };
-
-
- Normalizes meta and package configs allowing for:
-
- SystemJS.config({
- meta: {
- './index.js': {}
- }
- });
-
- To become
-
- SystemJS.meta['https://thissite.com/index.js'] = {};
-
- For easy normalization canonicalization with latest URL support.
-
-*/
-function envSet(loader, cfg, envCallback) {
- if (envModule.browser && cfg.browserConfig)
- envCallback(cfg.browserConfig);
- if (envModule.node && cfg.nodeConfig)
- envCallback(cfg.nodeConfig);
- if (envModule.dev && cfg.devConfig)
- envCallback(cfg.devConfig);
- if (envModule.build && cfg.buildConfig)
- envCallback(cfg.buildConfig);
- if (envModule.production && cfg.productionConfig)
- envCallback(cfg.productionConfig);
-}
-
-SystemJSLoader.prototype.getConfig = function(name) {
- var cfg = {};
- var loader = this;
- for (var p in loader) {
- if (loader.hasOwnProperty && !loader.hasOwnProperty(p) || p in SystemJSLoader.prototype && p != 'transpiler')
- continue;
- if (indexOf.call(['_loader', 'amdDefine', 'amdRequire', 'defined', 'failed', 'version', 'loads'], p) == -1)
- cfg[p] = loader[p];
- }
- cfg.production = envModule.production;
- return cfg;
-};
-
-var curCurScript;
-SystemJSLoader.prototype.config = function(cfg, isEnvConfig) {
- var loader = this;
-
- if ('loaderErrorStack' in cfg) {
- curCurScript = $__curScript;
- if (cfg.loaderErrorStack)
- $__curScript = undefined;
- else
- $__curScript = curCurScript;
- }
-
- if ('warnings' in cfg)
- loader.warnings = cfg.warnings;
-
- // transpiler deprecation path
- if (cfg.transpilerRuntime === false)
- loader._loader.loadedTranspilerRuntime = true;
-
- if ('production' in cfg || 'build' in cfg)
- setProduction.call(loader, !!cfg.production, !!(cfg.build || envModule && envModule.build));
-
- if (!isEnvConfig) {
- // if using nodeConfig / browserConfig / productionConfig, take baseURL from there
- // these exceptions will be unnecessary when we can properly implement config queuings
- var baseURL;
- envSet(loader, cfg, function(cfg) {
- baseURL = baseURL || cfg.baseURL;
- });
- baseURL = baseURL || cfg.baseURL;
-
- // always configure baseURL first
- if (baseURL) {
- var hasConfig = false;
- function checkHasConfig(obj) {
- for (var p in obj)
- if (obj.hasOwnProperty(p))
- return true;
- }
- if (checkHasConfig(loader.packages) || checkHasConfig(loader.meta) || checkHasConfig(loader.depCache) || checkHasConfig(loader.bundles) || checkHasConfig(loader.packageConfigPaths))
- throw new TypeError('Incorrect configuration order. The baseURL must be configured with the first SystemJS.config call.');
-
- this.baseURL = baseURL;
- prepareBaseURL.call(this);
- }
-
- if (cfg.paths)
- extend(loader.paths, cfg.paths);
-
- envSet(loader, cfg, function(cfg) {
- if (cfg.paths)
- extend(loader.paths, cfg.paths);
- });
-
- // warn on wildcard path deprecations
- if (this.warnings) {
- for (var p in loader.paths)
- if (p.indexOf('*') != -1)
- warn.call(loader, 'Paths configuration "' + p + '" -> "' + loader.paths[p] + '" uses wildcards which are being deprecated for just leaving a trailing "/" to indicate folder paths.');
- }
- }
-
- if (cfg.defaultJSExtensions) {
- loader.defaultJSExtensions = cfg.defaultJSExtensions;
- warn.call(loader, 'The defaultJSExtensions configuration option is deprecated, use packages configuration instead.');
- }
-
- if (cfg.pluginFirst)
- loader.pluginFirst = cfg.pluginFirst;
-
- if (cfg.map) {
- for (var p in cfg.map) {
- var v = cfg.map[p];
-
- // object map backwards-compat into packages configuration
- if (typeof v !== 'string') {
- var defaultJSExtension = loader.defaultJSExtensions && p.substr(p.length - 3, 3) != '.js';
- var prop = loader.decanonicalize(p);
- if (defaultJSExtension && prop.substr(prop.length - 3, 3) == '.js')
- prop = prop.substr(0, prop.length - 3);
-
- // if a package main, revert it
- var pkgMatch = '';
- for (var pkg in loader.packages) {
- if (prop.substr(0, pkg.length) == pkg
- && (!prop[pkg.length] || prop[pkg.length] == '/')
- && pkgMatch.split('/').length < pkg.split('/').length)
- pkgMatch = pkg;
- }
- if (pkgMatch && loader.packages[pkgMatch].main)
- prop = prop.substr(0, prop.length - loader.packages[pkgMatch].main.length - 1);
-
- var pkg = loader.packages[prop] = loader.packages[prop] || {};
- pkg.map = v;
- }
- else {
- loader.map[p] = v;
- }
- }
- }
-
- if (cfg.packageConfigPaths) {
- var packageConfigPaths = [];
- for (var i = 0; i < cfg.packageConfigPaths.length; i++) {
- var path = cfg.packageConfigPaths[i];
- var packageLength = Math.max(path.lastIndexOf('*') + 1, path.lastIndexOf('/'));
- var normalized = coreResolve.call(loader, path.substr(0, packageLength));
- packageConfigPaths[i] = normalized + path.substr(packageLength);
- }
- loader.packageConfigPaths = packageConfigPaths;
- }
-
- if (cfg.bundles) {
- for (var p in cfg.bundles) {
- var bundle = [];
- for (var i = 0; i < cfg.bundles[p].length; i++) {
- var defaultJSExtension = loader.defaultJSExtensions && cfg.bundles[p][i].substr(cfg.bundles[p][i].length - 3, 3) != '.js';
- var normalizedBundleDep = loader.decanonicalize(cfg.bundles[p][i]);
- if (defaultJSExtension && normalizedBundleDep.substr(normalizedBundleDep.length - 3, 3) == '.js')
- normalizedBundleDep = normalizedBundleDep.substr(0, normalizedBundleDep.length - 3);
- bundle.push(normalizedBundleDep);
- }
- loader.bundles[p] = bundle;
- }
- }
-
- if (cfg.packages) {
- for (var p in cfg.packages) {
- if (p.match(/^([^\/]+:)?\/\/$/))
- throw new TypeError('"' + p + '" is not a valid package name.');
-
- var prop = coreResolve.call(loader, p);
-
- // allow trailing slash in packages
- if (prop[prop.length - 1] == '/')
- prop = prop.substr(0, prop.length - 1);
-
- setPkgConfig(loader, prop, cfg.packages[p], false);
- }
- }
-
- for (var c in cfg) {
- var v = cfg[c];
-
- if (indexOf.call(['baseURL', 'map', 'packages', 'bundles', 'paths', 'warnings', 'packageConfigPaths',
- 'loaderErrorStack', 'browserConfig', 'nodeConfig', 'devConfig', 'buildConfig', 'productionConfig'], c) != -1)
- continue;
-
- if (typeof v != 'object' || v instanceof Array) {
- loader[c] = v;
- }
- else {
- loader[c] = loader[c] || {};
-
- for (var p in v) {
- // base-level wildcard meta does not normalize to retain catch-all quality
- if (c == 'meta' && p[0] == '*') {
- extend(loader[c][p] = loader[c][p] || {}, v[p]);
- }
- else if (c == 'meta') {
- // meta can go through global map, with defaultJSExtensions adding
- var resolved = coreResolve.call(loader, p);
- if (loader.defaultJSExtensions && resolved.substr(resolved.length - 3, 3) != '.js' && !isPlain(resolved))
- resolved += '.js';
- extend(loader[c][resolved] = loader[c][resolved] || {}, v[p]);
- }
- else if (c == 'depCache') {
- var defaultJSExtension = loader.defaultJSExtensions && p.substr(p.length - 3, 3) != '.js';
- var prop = loader.decanonicalize(p);
- if (defaultJSExtension && prop.substr(prop.length - 3, 3) == '.js')
- prop = prop.substr(0, prop.length - 3);
- loader[c][prop] = [].concat(v[p]);
- }
- else {
- loader[c][p] = v[p];
- }
- }
- }
- }
-
- envSet(loader, cfg, function(cfg) {
- loader.config(cfg, true);
- });
-};
-/*
- * Package Configuration Extension
- *
- * Example:
- *
- * SystemJS.packages = {
- * jquery: {
- * main: 'index.js', // when not set, package name is requested directly
- * format: 'amd',
- * defaultExtension: 'ts', // defaults to 'js', can be set to false
- * modules: {
- * '*.ts': {
- * loader: 'typescript'
- * },
- * 'vendor/sizzle.js': {
- * format: 'global'
- * }
- * },
- * map: {
- * // map internal require('sizzle') to local require('./vendor/sizzle')
- * sizzle: './vendor/sizzle.js',
- * // map any internal or external require of 'jquery/vendor/another' to 'another/index.js'
- * './vendor/another.js': './another/index.js',
- * // test.js / test -> lib/test.js
- * './test.js': './lib/test.js',
- *
- * // environment-specific map configurations
- * './index.js': {
- * '~browser': './index-node.js',
- * './custom-condition.js|~export': './index-custom.js'
- * }
- * },
- * // allows for setting package-prefixed depCache
- * // keys are normalized module names relative to the package itself
- * depCache: {
- * // import 'package/index.js' loads in parallel package/lib/test.js,package/vendor/sizzle.js
- * './index.js': ['./test'],
- * './test.js': ['external-dep'],
- * 'external-dep/path.js': ['./another.js']
- * }
- * }
- * };
- *
- * Then:
- * import 'jquery' -> jquery/index.js
- * import 'jquery/submodule' -> jquery/submodule.js
- * import 'jquery/submodule.ts' -> jquery/submodule.ts loaded as typescript
- * import 'jquery/vendor/another' -> another/index.js
- *
- * Detailed Behaviours
- * - main can have a leading "./" can be added optionally
- * - map and defaultExtension are applied to the main
- * - defaultExtension adds the extension only if the exact extension is not present
- * - defaultJSExtensions applies after map when defaultExtension is not set
- * - if a meta value is available for a module, map and defaultExtension are skipped
- * - like global map, package map also applies to subpaths (sizzle/x, ./vendor/another/sub)
- * - condition module map is '@env' module in package or '@system-env' globally
- * - map targets support conditional interpolation ('./x': './x.#{|env}.js')
- * - internal package map targets cannot use boolean conditionals
- *
- * Package Configuration Loading
- *
- * Not all packages may already have their configuration present in the System config
- * For these cases, a list of packageConfigPaths can be provided, which when matched against
- * a request, will first request a ".json" file by the package name to derive the package
- * configuration from. This allows dynamic loading of non-predetermined code, a key use
- * case in SystemJS.
- *
- * Example:
- *
- * SystemJS.packageConfigPaths = ['packages/test/package.json', 'packages/*.json'];
- *
- * // will first request 'packages/new-package/package.json' for the package config
- * // before completing the package request to 'packages/new-package/path'
- * SystemJS.import('packages/new-package/path');
- *
- * // will first request 'packages/test/package.json' before the main
- * SystemJS.import('packages/test');
- *
- * When a package matches packageConfigPaths, it will always send a config request for
- * the package configuration.
- * The package name itself is taken to be the match up to and including the last wildcard
- * or trailing slash.
- * The most specific package config path will be used.
- * Any existing package configurations for the package will deeply merge with the
- * package config, with the existing package configurations taking preference.
- * To opt-out of the package configuration request for a package that matches
- * packageConfigPaths, use the { configured: true } package config option.
- *
- */
-(function() {
-
- hookConstructor(function(constructor) {
- return function() {
- constructor.call(this);
- this.packages = {};
- this.packageConfigPaths = [];
- };
- });
-
- function getPackage(loader, normalized) {
- // use most specific package
- var curPkg, curPkgLen = 0, pkgLen;
- for (var p in loader.packages) {
- if (normalized.substr(0, p.length) === p && (normalized.length === p.length || normalized[p.length] === '/')) {
- pkgLen = p.split('/').length;
- if (pkgLen > curPkgLen) {
- curPkg = p;
- curPkgLen = pkgLen;
- }
- }
- }
- return curPkg;
- }
-
- function addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions) {
- // don't apply extensions to folders or if defaultExtension = false
- if (!subPath || subPath[subPath.length - 1] == '/' || skipExtensions || pkg.defaultExtension === false)
- return subPath;
-
- var metaMatch = false;
-
- // exact meta or meta with any content after the last wildcard skips extension
- if (pkg.meta)
- getMetaMatches(pkg.meta, subPath, function(metaPattern, matchMeta, matchDepth) {
- if (matchDepth == 0 || metaPattern.lastIndexOf('*') != metaPattern.length - 1)
- return metaMatch = true;
- });
-
- // exact global meta or meta with any content after the last wildcard skips extension
- if (!metaMatch && loader.meta)
- getMetaMatches(loader.meta, pkgName + '/' + subPath, function(metaPattern, matchMeta, matchDepth) {
- if (matchDepth == 0 || metaPattern.lastIndexOf('*') != metaPattern.length - 1)
- return metaMatch = true;
- });
-
- if (metaMatch)
- return subPath;
-
- // work out what the defaultExtension is and add if not there already
- // NB reconsider if default should really be ".js"?
- var defaultExtension = '.' + (pkg.defaultExtension || 'js');
- if (subPath.substr(subPath.length - defaultExtension.length) != defaultExtension)
- return subPath + defaultExtension;
- else
- return subPath;
- }
-
- function applyPackageConfigSync(loader, pkg, pkgName, subPath, skipExtensions) {
- // main
- if (!subPath) {
- if (pkg.main)
- subPath = pkg.main.substr(0, 2) == './' ? pkg.main.substr(2) : pkg.main;
- // also no submap if name is package itself (import 'pkg' -> 'path/to/pkg.js')
- else
- // NB can add a default package main convention here when defaultJSExtensions is deprecated
- // if it becomes internal to the package then it would no longer be an exit path
- return pkgName + (loader.defaultJSExtensions ? '.js' : '');
- }
-
- // map config checking without then with extensions
- if (pkg.map) {
- var mapPath = './' + subPath;
-
- var mapMatch = getMapMatch(pkg.map, mapPath);
-
- // we then check map with the default extension adding
- if (!mapMatch) {
- mapPath = './' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions);
- if (mapPath != './' + subPath)
- mapMatch = getMapMatch(pkg.map, mapPath);
- }
- if (mapMatch) {
- var mapped = doMapSync(loader, pkg, pkgName, mapMatch, mapPath, skipExtensions);
- if (mapped)
- return mapped;
- }
- }
-
- // normal package resolution
- return pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions);
- }
-
- function validMapping(mapMatch, mapped, pkgName, path) {
- // disallow internal to subpath maps
- if (mapMatch == '.')
- throw new Error('Package ' + pkgName + ' has a map entry for "." which is not permitted.');
-
- // allow internal ./x -> ./x/y or ./x/ -> ./x/y recursive maps
- // but only if the path is exactly ./x and not ./x/z
- if (mapped.substr(0, mapMatch.length) == mapMatch && path.length > mapMatch.length)
- return false;
-
- return true;
- }
-
- function doMapSync(loader, pkg, pkgName, mapMatch, path, skipExtensions) {
- if (path[path.length - 1] == '/')
- path = path.substr(0, path.length - 1);
- var mapped = pkg.map[mapMatch];
-
- if (typeof mapped == 'object')
- throw new Error('Synchronous conditional normalization not supported sync normalizing ' + mapMatch + ' in ' + pkgName);
-
- if (!validMapping(mapMatch, mapped, pkgName, path) || typeof mapped != 'string')
- return;
-
- // package map to main / base-level
- if (mapped == '.')
- mapped = pkgName;
-
- // internal package map
- else if (mapped.substr(0, 2) == './')
- return pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, mapped.substr(2) + path.substr(mapMatch.length), skipExtensions);
-
- // external map reference
- return loader.normalizeSync(mapped + path.substr(mapMatch.length), pkgName + '/');
- }
-
- function applyPackageConfig(loader, pkg, pkgName, subPath, skipExtensions) {
- // main
- if (!subPath) {
- if (pkg.main)
- subPath = pkg.main.substr(0, 2) == './' ? pkg.main.substr(2) : pkg.main;
- // also no submap if name is package itself (import 'pkg' -> 'path/to/pkg.js')
- else
- // NB can add a default package main convention here when defaultJSExtensions is deprecated
- // if it becomes internal to the package then it would no longer be an exit path
- return Promise.resolve(pkgName + (loader.defaultJSExtensions ? '.js' : ''));
- }
-
- // map config checking without then with extensions
- var mapPath, mapMatch;
-
- if (pkg.map) {
- mapPath = './' + subPath;
- mapMatch = getMapMatch(pkg.map, mapPath);
-
- // we then check map with the default extension adding
- if (!mapMatch) {
- mapPath = './' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions);
- if (mapPath != './' + subPath)
- mapMatch = getMapMatch(pkg.map, mapPath);
- }
- }
-
- return (mapMatch ? doMap(loader, pkg, pkgName, mapMatch, mapPath, skipExtensions) : Promise.resolve())
- .then(function(mapped) {
- if (mapped)
- return Promise.resolve(mapped);
-
- // normal package resolution / fallback resolution for no conditional match
- return Promise.resolve(pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions));
- });
- }
-
- function doStringMap(loader, pkg, pkgName, mapMatch, mapped, path, skipExtensions) {
- // NB the interpolation cases should strictly skip subsequent interpolation
- // package map to main / base-level
- if (mapped == '.')
- mapped = pkgName;
-
- // internal package map
- else if (mapped.substr(0, 2) == './')
- return Promise.resolve(pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, mapped.substr(2) + path.substr(mapMatch.length), skipExtensions))
- .then(function(name) {
- return interpolateConditional.call(loader, name, pkgName + '/');
- });
-
- // external map reference
- return loader.normalize(mapped + path.substr(mapMatch.length), pkgName + '/');
- }
-
- function doMap(loader, pkg, pkgName, mapMatch, path, skipExtensions) {
- if (path[path.length - 1] == '/')
- path = path.substr(0, path.length - 1);
-
- var mapped = pkg.map[mapMatch];
-
- if (typeof mapped == 'string') {
- if (!validMapping(mapMatch, mapped, pkgName, path))
- return Promise.resolve();
- return doStringMap(loader, pkg, pkgName, mapMatch, mapped, path, skipExtensions);
- }
-
- // we use a special conditional syntax to allow the builder to handle conditional branch points further
- if (loader.builder)
- return Promise.resolve(pkgName + '/#:' + path);
-
- // we load all conditions upfront
- var conditionPromises = [];
- var conditions = [];
- for (var e in mapped) {
- var c = parseCondition(e);
- conditions.push({
- condition: c,
- map: mapped[e]
- });
- conditionPromises.push(loader['import'](c.module, pkgName));
- }
-
- // map object -> conditional map
- return Promise.all(conditionPromises)
- .then(function(conditionValues) {
- // first map condition to match is used
- for (var i = 0; i < conditions.length; i++) {
- var c = conditions[i].condition;
- var value = readMemberExpression(c.prop, conditionValues[i]);
- if (!c.negate && value || c.negate && !value)
- return conditions[i].map;
- }
- })
- .then(function(mapped) {
- if (mapped) {
- if (!validMapping(mapMatch, mapped, pkgName, path))
- return;
- return doStringMap(loader, pkg, pkgName, mapMatch, mapped, path, skipExtensions);
- }
-
- // no environment match -> fallback to original subPath by returning undefined
- });
- }
-
- // normalizeSync = decanonicalize + package resolution
- SystemJSLoader.prototype.normalizeSync = SystemJSLoader.prototype.decanonicalize = SystemJSLoader.prototype.normalize;
-
- // decanonicalize must JUST handle package defaultExtension: false case when defaultJSExtensions is set
- // to be deprecated!
- hook('decanonicalize', function(decanonicalize) {
- return function(name, parentName) {
- if (this.builder)
- return decanonicalize.call(this, name, parentName, true);
-
- var decanonicalized = decanonicalize.call(this, name, parentName, false);
-
- if (!this.defaultJSExtensions)
- return decanonicalized;
-
- var pkgName = getPackage(this, decanonicalized);
-
- var pkg = this.packages[pkgName];
- var defaultExtension = pkg && pkg.defaultExtension;
-
- if (defaultExtension == undefined && pkg && pkg.meta)
- getMetaMatches(pkg.meta, decanonicalized.substr(pkgName), function(metaPattern, matchMeta, matchDepth) {
- if (matchDepth == 0 || metaPattern.lastIndexOf('*') != metaPattern.length - 1) {
- defaultExtension = false;
- return true;
- }
- });
-
- if ((defaultExtension === false || defaultExtension && defaultExtension != '.js') && name.substr(name.length - 3, 3) != '.js' && decanonicalized.substr(decanonicalized.length - 3, 3) == '.js')
- decanonicalized = decanonicalized.substr(0, decanonicalized.length - 3);
-
- return decanonicalized;
- };
- });
-
- hook('normalizeSync', function(normalizeSync) {
- return function(name, parentName, isPlugin) {
- var loader = this;
- isPlugin = isPlugin === true;
-
- // apply contextual package map first
- // (we assume the parent package config has already been loaded)
- if (parentName)
- var parentPackageName = getPackage(loader, parentName) ||
- loader.defaultJSExtensions && parentName.substr(parentName.length - 3, 3) == '.js' &&
- getPackage(loader, parentName.substr(0, parentName.length - 3));
-
- var parentPackage = parentPackageName && loader.packages[parentPackageName];
-
- // ignore . since internal maps handled by standard package resolution
- if (parentPackage && name[0] != '.') {
- var parentMap = parentPackage.map;
- var parentMapMatch = parentMap && getMapMatch(parentMap, name);
-
- if (parentMapMatch && typeof parentMap[parentMapMatch] == 'string') {
- var mapped = doMapSync(loader, parentPackage, parentPackageName, parentMapMatch, name, isPlugin);
- if (mapped)
- return mapped;
- }
- }
-
- var defaultJSExtension = loader.defaultJSExtensions && name.substr(name.length - 3, 3) != '.js';
-
- // apply map, core, paths, contextual package map
- var normalized = normalizeSync.call(loader, name, parentName, false);
-
- // undo defaultJSExtension
- if (defaultJSExtension && normalized.substr(normalized.length - 3, 3) != '.js')
- defaultJSExtension = false;
- if (defaultJSExtension)
- normalized = normalized.substr(0, normalized.length - 3);
-
- var pkgConfigMatch = getPackageConfigMatch(loader, normalized);
- var pkgName = pkgConfigMatch && pkgConfigMatch.packageName || getPackage(loader, normalized);
-
- if (!pkgName)
- return normalized + (defaultJSExtension ? '.js' : '');
-
- var subPath = normalized.substr(pkgName.length + 1);
-
- return applyPackageConfigSync(loader, loader.packages[pkgName] || {}, pkgName, subPath, isPlugin);
- };
- });
-
- hook('normalize', function(normalize) {
- return function(name, parentName, isPlugin) {
- var loader = this;
- isPlugin = isPlugin === true;
-
- return Promise.resolve()
- .then(function() {
- // apply contextual package map first
- // (we assume the parent package config has already been loaded)
- if (parentName)
- var parentPackageName = getPackage(loader, parentName) ||
- loader.defaultJSExtensions && parentName.substr(parentName.length - 3, 3) == '.js' &&
- getPackage(loader, parentName.substr(0, parentName.length - 3));
-
- var parentPackage = parentPackageName && loader.packages[parentPackageName];
-
- // ignore . since internal maps handled by standard package resolution
- if (parentPackage && name.substr(0, 2) != './') {
- var parentMap = parentPackage.map;
- var parentMapMatch = parentMap && getMapMatch(parentMap, name);
-
- if (parentMapMatch)
- return doMap(loader, parentPackage, parentPackageName, parentMapMatch, name, isPlugin);
- }
-
- return Promise.resolve();
- })
- .then(function(mapped) {
- if (mapped)
- return mapped;
-
- var defaultJSExtension = loader.defaultJSExtensions && name.substr(name.length - 3, 3) != '.js';
-
- // apply map, core, paths, contextual package map
- var normalized = normalize.call(loader, name, parentName, false);
-
- // undo defaultJSExtension
- if (defaultJSExtension && normalized.substr(normalized.length - 3, 3) != '.js')
- defaultJSExtension = false;
- if (defaultJSExtension)
- normalized = normalized.substr(0, normalized.length - 3);
-
- var pkgConfigMatch = getPackageConfigMatch(loader, normalized);
- var pkgName = pkgConfigMatch && pkgConfigMatch.packageName || getPackage(loader, normalized);
-
- if (!pkgName)
- return Promise.resolve(normalized + (defaultJSExtension ? '.js' : ''));
-
- var pkg = loader.packages[pkgName];
-
- // if package is already configured or not a dynamic config package, use existing package config
- var isConfigured = pkg && (pkg.configured || !pkgConfigMatch);
- return (isConfigured ? Promise.resolve(pkg) : loadPackageConfigPath(loader, pkgName, pkgConfigMatch.configPath))
- .then(function(pkg) {
- var subPath = normalized.substr(pkgName.length + 1);
-
- return applyPackageConfig(loader, pkg, pkgName, subPath, isPlugin);
- });
- });
- };
- });
-
- // check if the given normalized name matches a packageConfigPath
- // if so, loads the config
- var packageConfigPaths = {};
-
- // data object for quick checks against package paths
- function createPkgConfigPathObj(path) {
- var lastWildcard = path.lastIndexOf('*');
- var length = Math.max(lastWildcard + 1, path.lastIndexOf('/'));
- return {
- length: length,
- regEx: new RegExp('^(' + path.substr(0, length).replace(/[.+?^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '[^\\/]+') + ')(\\/|$)'),
- wildcard: lastWildcard != -1
- };
- }
-
- // most specific match wins
- function getPackageConfigMatch(loader, normalized) {
- var pkgName, exactMatch = false, configPath;
- for (var i = 0; i < loader.packageConfigPaths.length; i++) {
- var packageConfigPath = loader.packageConfigPaths[i];
- var p = packageConfigPaths[packageConfigPath] || (packageConfigPaths[packageConfigPath] = createPkgConfigPathObj(packageConfigPath));
- if (normalized.length < p.length)
- continue;
- var match = normalized.match(p.regEx);
- if (match && (!pkgName || (!(exactMatch && p.wildcard) && pkgName.length < match[1].length))) {
- pkgName = match[1];
- exactMatch = !p.wildcard;
- configPath = pkgName + packageConfigPath.substr(p.length);
- }
- }
-
- if (!pkgName)
- return;
-
- return {
- packageName: pkgName,
- configPath: configPath
- };
- }
-
- function loadPackageConfigPath(loader, pkgName, pkgConfigPath) {
- var configLoader = loader.pluginLoader || loader;
-
- // NB remove this when json is default
- (configLoader.meta[pkgConfigPath] = configLoader.meta[pkgConfigPath] || {}).format = 'json';
- configLoader.meta[pkgConfigPath].loader = null;
-
- return configLoader.load(pkgConfigPath)
- .then(function() {
- var cfg = configLoader.get(pkgConfigPath)['default'];
-
- // support "systemjs" prefixing
- if (cfg.systemjs)
- cfg = cfg.systemjs;
-
- // modules backwards compatibility
- if (cfg.modules) {
- cfg.meta = cfg.modules;
- warn.call(loader, 'Package config file ' + pkgConfigPath + ' is configured with "modules", which is deprecated as it has been renamed to "meta".');
- }
-
- return setPkgConfig(loader, pkgName, cfg, true);
- });
- }
-
- function getMetaMatches(pkgMeta, subPath, matchFn) {
- // wildcard meta
- var meta = {};
- var wildcardIndex;
- for (var module in pkgMeta) {
- // allow meta to start with ./ for flexibility
- var dotRel = module.substr(0, 2) == './' ? './' : '';
- if (dotRel)
- module = module.substr(2);
-
- wildcardIndex = module.indexOf('*');
- if (wildcardIndex === -1)
- continue;
-
- if (module.substr(0, wildcardIndex) == subPath.substr(0, wildcardIndex)
- && module.substr(wildcardIndex + 1) == subPath.substr(subPath.length - module.length + wildcardIndex + 1)) {
- // alow match function to return true for an exit path
- if (matchFn(module, pkgMeta[dotRel + module], module.split('/').length))
- return;
- }
- }
- // exact meta
- var exactMeta = pkgMeta[subPath] && pkgMeta.hasOwnProperty && pkgMeta.hasOwnProperty(subPath) ? pkgMeta[subPath] : pkgMeta['./' + subPath];
- if (exactMeta)
- matchFn(exactMeta, exactMeta, 0);
- }
-
- hook('locate', function(locate) {
- return function(load) {
- var loader = this;
- return Promise.resolve(locate.call(this, load))
- .then(function(address) {
- var pkgName = getPackage(loader, load.name);
- if (pkgName) {
- var pkg = loader.packages[pkgName];
- var subPath = load.name.substr(pkgName.length + 1);
-
- var meta = {};
- if (pkg.meta) {
- var bestDepth = 0;
-
- // NB support a main shorthand in meta here?
- getMetaMatches(pkg.meta, subPath, function(metaPattern, matchMeta, matchDepth) {
- if (matchDepth > bestDepth)
- bestDepth = matchDepth;
- extendMeta(meta, matchMeta, matchDepth && bestDepth > matchDepth);
- });
-
- extendMeta(load.metadata, meta);
- }
-
- // format
- if (pkg.format && !load.metadata.loader)
- load.metadata.format = load.metadata.format || pkg.format;
- }
-
- return address;
- });
- };
- });
-
-})();
-/*
- * Script tag fetch
- *
- * When load.metadata.scriptLoad is true, we load via script tag injection.
- */
-(function() {
-
- if (typeof document != 'undefined')
- var head = document.getElementsByTagName('head')[0];
-
- var curSystem;
- var curRequire;
-
- // if doing worker executing, this is set to the load record being executed
- var workerLoad = null;
-
- // interactive mode handling method courtesy RequireJS
- var ieEvents = head && (function() {
- var s = document.createElement('script');
- var isOpera = typeof opera !== 'undefined' && opera.toString() === '[object Opera]';
- return s.attachEvent && !(s.attachEvent.toString && s.attachEvent.toString().indexOf('[native code') < 0) && !isOpera;
- })();
-
- // IE interactive-only part
- // we store loading scripts array as { script: <script>, load: {...} }
- var interactiveLoadingScripts = [];
- var interactiveScript;
- function getInteractiveScriptLoad() {
- if (interactiveScript && interactiveScript.script.readyState === 'interactive')
- return interactiveScript.load;
-
- for (var i = 0; i < interactiveLoadingScripts.length; i++)
- if (interactiveLoadingScripts[i].script.readyState == 'interactive') {
- interactiveScript = interactiveLoadingScripts[i];
- return interactiveScript.load;
- }
- }
-
- // System.register, System.registerDynamic, AMD define pipeline
- // this is called by the above methods when they execute
- // we then run the reduceRegister_ collection function either immediately
- // if we are in IE and know the currently executing script (interactive)
- // or later if we need to wait for the synchronous load callback to know the script
- var loadingCnt = 0;
- var registerQueue = [];
- hook('pushRegister_', function(pushRegister) {
- return function(register) {
- // if using eval-execution then skip
- if (pushRegister.call(this, register))
- return false;
-
- // if using worker execution, then we're done
- if (workerLoad)
- this.reduceRegister_(workerLoad, register);
-
- // detect if we know the currently executing load (IE)
- // if so, immediately call reduceRegister
- else if (ieEvents)
- this.reduceRegister_(getInteractiveScriptLoad(), register);
-
- // otherwise, add to our execution queue
- // to call reduceRegister on sync script load event
- else if (loadingCnt)
- registerQueue.push(register);
-
- // if we're not currently loading anything though
- // then do the reduction against a null load
- // (out of band named define or named register)
- // note even in non-script environments, this catch is used
- else
- this.reduceRegister_(null, register);
-
- return true;
- };
- });
-
- function webWorkerImport(loader, load) {
- return new Promise(function(resolve, reject) {
- if (load.metadata.integrity)
- reject(new Error('Subresource integrity checking is not supported in web workers.'));
-
- workerLoad = load;
- try {
- importScripts(load.address);
- }
- catch(e) {
- workerLoad = null;
- reject(e);
- }
- workerLoad = null;
-
- // if nothing registered, then something went wrong
- if (!load.metadata.entry)
- reject(new Error(load.address + ' did not call System.register or AMD define. If loading a global, ensure the meta format is set to global.'));
-
- resolve('');
- });
- }
-
- // override fetch to use script injection
- hook('fetch', function(fetch) {
- return function(load) {
- var loader = this;
-
- if (load.metadata.format == 'json' || !load.metadata.scriptLoad || (!isBrowser && !isWorker))
- return fetch.call(this, load);
-
- if (isWorker)
- return webWorkerImport(loader, load);
-
- return new Promise(function(resolve, reject) {
- var s = document.createElement('script');
-
- s.async = true;
-
- if (load.metadata.crossOrigin)
- s.crossOrigin = load.metadata.crossOrigin;
-
- if (load.metadata.integrity)
- s.setAttribute('integrity', load.metadata.integrity);
-
- if (ieEvents) {
- s.attachEvent('onreadystatechange', complete);
- interactiveLoadingScripts.push({
- script: s,
- load: load
- });
- }
- else {
- s.addEventListener('load', complete, false);
- s.addEventListener('error', error, false);
- }
-
- loadingCnt++;
-
- curSystem = __global.System;
- curRequire = __global.require;
-
- s.src = load.address;
- head.appendChild(s);
-
- function complete(evt) {
- if (s.readyState && s.readyState != 'loaded' && s.readyState != 'complete')
- return;
-
- loadingCnt--;
-
- // complete call is sync on execution finish
- // (in ie already done reductions)
- if (!load.metadata.entry && !registerQueue.length) {
- loader.reduceRegister_(load);
- }
- else if (!ieEvents) {
- for (var i = 0; i < registerQueue.length; i++)
- loader.reduceRegister_(load, registerQueue[i]);
- registerQueue = [];
- }
-
- cleanup();
-
- // if nothing registered, then something went wrong
- if (!load.metadata.entry && !load.metadata.bundle)
- reject(new Error(load.name + ' did not call System.register or AMD define. If loading a global module configure the global name via the meta exports property for script injection support.'));
-
- resolve('');
- }
-
- function error(evt) {
- cleanup();
- reject(new Error('Unable to load script ' + load.address));
- }
-
- function cleanup() {
- __global.System = curSystem;
- __global.require = curRequire;
-
- if (s.detachEvent) {
- s.detachEvent('onreadystatechange', complete);
- for (var i = 0; i < interactiveLoadingScripts.length; i++)
- if (interactiveLoadingScripts[i].script == s) {
- if (interactiveScript && interactiveScript.script == s)
- interactiveScript = null;
- interactiveLoadingScripts.splice(i, 1);
- }
- }
- else {
- s.removeEventListener('load', complete, false);
- s.removeEventListener('error', error, false);
- }
-
- head.removeChild(s);
- }
- });
- };
- });
-})();
-/*
- * Instantiate registry extension
- *
- * Supports Traceur System.register 'instantiate' output for loading ES6 as ES5.
- *
- * - Creates the loader.register function
- * - Also supports metadata.format = 'register' in instantiate for anonymous register modules
- * - Also supports metadata.deps, metadata.execute and metadata.executingRequire
- * for handling dynamic modules alongside register-transformed ES6 modules
- *
- *
- * The code here replicates the ES6 linking groups algorithm to ensure that
- * circular ES6 compiled into System.register can work alongside circular AMD
- * and CommonJS, identically to the actual ES6 loader.
- *
- */
-
-
-/*
- * Registry side table entries in loader.defined
- * Registry Entry Contains:
- * - name
- * - deps
- * - declare for declarative modules
- * - execute for dynamic modules, different to declarative execute on module
- * - executingRequire indicates require drives execution for circularity of dynamic modules
- * - declarative optional boolean indicating which of the above
- *
- * Can preload modules directly on SystemJS.defined['my/module'] = { deps, execute, executingRequire }
- *
- * Then the entry gets populated with derived information during processing:
- * - normalizedDeps derived from deps, created in instantiate
- * - groupIndex used by group linking algorithm
- * - evaluated indicating whether evaluation has happend
- * - module the module record object, containing:
- * - exports actual module exports
- *
- * For dynamic we track the es module with:
- * - esModule actual es module value
- * - esmExports whether to extend the esModule with named exports
- *
- * Then for declarative only we track dynamic bindings with the 'module' records:
- * - name
- * - exports
- * - setters declarative setter functions
- * - dependencies, module records of dependencies
- * - importers, module records of dependents
- *
- * After linked and evaluated, entries are removed, declarative module records remain in separate
- * module binding table
- *
- */
-
-var leadingCommentAndMetaRegEx = /^(\s*\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)*\s*/;
-function detectRegisterFormat(source) {
- var leadingCommentAndMeta = source.match(leadingCommentAndMetaRegEx);
- return leadingCommentAndMeta && source.substr(leadingCommentAndMeta[0].length, 15) == 'System.register';
-}
-
-function createEntry() {
- return {
- name: null,
- deps: null,
- originalIndices: null,
- declare: null,
- execute: null,
- executingRequire: false,
- declarative: false,
- normalizedDeps: null,
- groupIndex: null,
- evaluated: false,
- module: null,
- esModule: null,
- esmExports: false
- };
-}
-
-(function() {
-
- /*
- * There are two variations of System.register:
- * 1. System.register for ES6 conversion (2-3 params) - System.register([name, ]deps, declare)
- * see https://github.com/ModuleLoader/es6-module-loader/wiki/System.register-Explained
- *
- * 2. System.registerDynamic for dynamic modules (3-4 params) - System.registerDynamic([name, ]deps, executingRequire, execute)
- * the true or false statement
- *
- * this extension implements the linking algorithm for the two variations identical to the spec
- * allowing compiled ES6 circular references to work alongside AMD and CJS circular references.
- *
- */
- SystemJSLoader.prototype.register = function(name, deps, declare) {
- if (typeof name != 'string') {
- declare = deps;
- deps = name;
- name = null;
- }
-
- // dynamic backwards-compatibility
- // can be deprecated eventually
- if (typeof declare == 'boolean')
- return this.registerDynamic.apply(this, arguments);
-
- var entry = createEntry();
- // ideally wouldn't apply map config to bundle names but
- // dependencies go through map regardless so we can't restrict
- // could reconsider in shift to new spec
- entry.name = name && (this.decanonicalize || this.normalize).call(this, name);
- entry.declarative = true;
- entry.deps = deps;
- entry.declare = declare;
-
- this.pushRegister_({
- amd: false,
- entry: entry
- });
- };
- SystemJSLoader.prototype.registerDynamic = function(name, deps, declare, execute) {
- if (typeof name != 'string') {
- execute = declare;
- declare = deps;
- deps = name;
- name = null;
- }
-
- // dynamic
- var entry = createEntry();
- entry.name = name && (this.decanonicalize || this.normalize).call(this, name);
- entry.deps = deps;
- entry.execute = execute;
- entry.executingRequire = declare;
-
- this.pushRegister_({
- amd: false,
- entry: entry
- });
- };
- hook('reduceRegister_', function() {
- return function(load, register) {
- if (!register)
- return;
-
- var entry = register.entry;
- var curMeta = load && load.metadata;
-
- // named register
- if (entry.name) {
- if (!(entry.name in this.defined))
- this.defined[entry.name] = entry;
-
- if (curMeta)
- curMeta.bundle = true;
- }
- // anonymous register
- if (!entry.name || load && !curMeta.entry && entry.name == load.name) {
- if (!curMeta)
- throw new TypeError('Invalid System.register call. Anonymous System.register calls can only be made by modules loaded by SystemJS.import and not via script tags.');
- if (curMeta.entry) {
- if (curMeta.format == 'register')
- throw new Error('Multiple anonymous System.register calls in module ' + load.name + '. If loading a bundle, ensure all the System.register calls are named.');
- else
- throw new Error('Module ' + load.name + ' interpreted as ' + curMeta.format + ' module format, but called System.register.');
- }
- if (!curMeta.format)
- curMeta.format = 'register';
- curMeta.entry = entry;
- }
- };
- });
-
- hookConstructor(function(constructor) {
- return function() {
- constructor.call(this);
-
- this.defined = {};
- this._loader.moduleRecords = {};
- };
- });
-
- function buildGroups(entry, loader, groups) {
- groups[entry.groupIndex] = groups[entry.groupIndex] || [];
-
- if (indexOf.call(groups[entry.groupIndex], entry) != -1)
- return;
-
- groups[entry.groupIndex].push(entry);
-
- for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) {
- var depName = entry.normalizedDeps[i];
- var depEntry = loader.defined[depName];
-
- // not in the registry means already linked / ES6
- if (!depEntry || depEntry.evaluated)
- continue;
-
- // now we know the entry is in our unlinked linkage group
- var depGroupIndex = entry.groupIndex + (depEntry.declarative != entry.declarative);
-
- // the group index of an entry is always the maximum
- if (depEntry.groupIndex === null || depEntry.groupIndex < depGroupIndex) {
-
- // if already in a group, remove from the old group
- if (depEntry.groupIndex !== null) {
- groups[depEntry.groupIndex].splice(indexOf.call(groups[depEntry.groupIndex], depEntry), 1);
-
- // if the old group is empty, then we have a mixed depndency cycle
- if (groups[depEntry.groupIndex].length == 0)
- throw new Error("Mixed dependency cycle detected");
- }
-
- depEntry.groupIndex = depGroupIndex;
- }
-
- buildGroups(depEntry, loader, groups);
- }
- }
-
- function link(name, startEntry, loader) {
- // skip if already linked
- if (startEntry.module)
- return;
-
- startEntry.groupIndex = 0;
-
- var groups = [];
-
- buildGroups(startEntry, loader, groups);
-
- var curGroupDeclarative = !!startEntry.declarative == groups.length % 2;
- for (var i = groups.length - 1; i >= 0; i--) {
- var group = groups[i];
- for (var j = 0; j < group.length; j++) {
- var entry = group[j];
-
- // link each group
- if (curGroupDeclarative)
- linkDeclarativeModule(entry, loader);
- else
- linkDynamicModule(entry, loader);
- }
- curGroupDeclarative = !curGroupDeclarative;
- }
- }
-
- // module binding records
- function ModuleRecord() {}
- defineProperty(ModuleRecord, 'toString', {
- value: function() {
- return 'Module';
- }
- });
-
- function getOrCreateModuleRecord(name, moduleRecords) {
- return moduleRecords[name] || (moduleRecords[name] = {
- name: name,
- dependencies: [],
- exports: new ModuleRecord(), // start from an empty module and extend
- importers: []
- });
- }
-
- function linkDeclarativeModule(entry, loader) {
- // only link if already not already started linking (stops at circular)
- if (entry.module)
- return;
-
- var moduleRecords = loader._loader.moduleRecords;
- var module = entry.module = getOrCreateModuleRecord(entry.name, moduleRecords);
- var exports = entry.module.exports;
-
- var declaration = entry.declare.call(__global, function(name, value) {
- module.locked = true;
-
- if (typeof name == 'object') {
- for (var p in name)
- exports[p] = name[p];
- }
- else {
- exports[name] = value;
- }
-
- for (var i = 0, l = module.importers.length; i < l; i++) {
- var importerModule = module.importers[i];
- if (!importerModule.locked) {
- var importerIndex = indexOf.call(importerModule.dependencies, module);
- var setter = importerModule.setters[importerIndex];
- if (setter)
- setter(exports);
- }
- }
-
- module.locked = false;
- return value;
- }, { id: entry.name });
-
- if (typeof declaration == 'function')
- declaration = { setters: [], execute: declaration };
-
- // allowing undefined declaration was a mistake! To be deprecated.
- declaration = declaration || { setters: [], execute: function() {} };
-
- module.setters = declaration.setters;
- module.execute = declaration.execute;
-
- if (!module.setters || !module.execute) {
- throw new TypeError('Invalid System.register form for ' + entry.name);
- }
-
- // now link all the module dependencies
- for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) {
- var depName = entry.normalizedDeps[i];
- var depEntry = loader.defined[depName];
- var depModule = moduleRecords[depName];
-
- // work out how to set depExports based on scenarios...
- var depExports;
-
- if (depModule) {
- depExports = depModule.exports;
- }
- // dynamic, already linked in our registry
- else if (depEntry && !depEntry.declarative) {
- depExports = depEntry.esModule;
- }
- // in the loader registry
- else if (!depEntry) {
- depExports = loader.get(depName);
- }
- // we have an entry -> link
- else {
- linkDeclarativeModule(depEntry, loader);
- depModule = depEntry.module;
- depExports = depModule.exports;
- }
-
- // only declarative modules have dynamic bindings
- if (depModule && depModule.importers) {
- depModule.importers.push(module);
- module.dependencies.push(depModule);
- }
- else {
- module.dependencies.push(null);
- }
-
- // run setters for all entries with the matching dependency name
- var originalIndices = entry.originalIndices[i];
- for (var j = 0, len = originalIndices.length; j < len; ++j) {
- var index = originalIndices[j];
- if (module.setters[index]) {
- module.setters[index](depExports);
- }
- }
- }
- }
-
- // An analog to loader.get covering execution of all three layers (real declarative, simulated declarative, simulated dynamic)
- function getModule(name, loader) {
- var exports;
- var entry = loader.defined[name];
-
- if (!entry) {
- exports = loader.get(name);
- if (!exports)
- throw new Error('Unable to load dependency ' + name + '.');
- }
-
- else {
- if (entry.declarative)
- ensureEvaluated(name, entry, [], loader);
-
- else if (!entry.evaluated)
- linkDynamicModule(entry, loader);
-
- exports = entry.module.exports;
- }
-
- if ((!entry || entry.declarative) && exports && exports.__useDefault)
- return exports['default'];
-
- return exports;
- }
-
- function linkDynamicModule(entry, loader) {
- if (entry.module)
- return;
-
- var exports = {};
-
- var module = entry.module = { exports: exports, id: entry.name };
-
- // AMD requires execute the tree first
- if (!entry.executingRequire) {
- for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) {
- var depName = entry.normalizedDeps[i];
- // we know we only need to link dynamic due to linking algorithm
- var depEntry = loader.defined[depName];
- if (depEntry)
- linkDynamicModule(depEntry, loader);
- }
- }
-
- // now execute
- entry.evaluated = true;
- var output = entry.execute.call(__global, function(name) {
- for (var i = 0, l = entry.deps.length; i < l; i++) {
- if (entry.deps[i] != name)
- continue;
- return getModule(entry.normalizedDeps[i], loader);
- }
- // try and normalize the dependency to see if we have another form
- var nameNormalized = loader.normalizeSync(name, entry.name);
- if (indexOf.call(entry.normalizedDeps, nameNormalized) != -1)
- return getModule(nameNormalized, loader);
-
- throw new Error('Module ' + name + ' not declared as a dependency of ' + entry.name);
- }, exports, module);
-
- if (output !== undefined)
- module.exports = output;
-
- // create the esModule object, which allows ES6 named imports of dynamics
- exports = module.exports;
-
- // __esModule flag treats as already-named
- if (exports && (exports.__esModule || exports instanceof Module))
- entry.esModule = loader.newModule(exports);
- // set module as 'default' export, then fake named exports by iterating properties
- else if (entry.esmExports && exports !== __global)
- entry.esModule = loader.newModule(getESModule(exports));
- // just use the 'default' export
- else
- entry.esModule = loader.newModule({ 'default': exports, __useDefault: true });
- }
-
- /*
- * Given a module, and the list of modules for this current branch,
- * ensure that each of the dependencies of this module is evaluated
- * (unless one is a circular dependency already in the list of seen
- * modules, in which case we execute it)
- *
- * Then we evaluate the module itself depth-first left to right
- * execution to match ES6 modules
- */
- function ensureEvaluated(moduleName, entry, seen, loader) {
- // if already seen, that means it's an already-evaluated non circular dependency
- if (!entry || entry.evaluated || !entry.declarative)
- return;
-
- // this only applies to declarative modules which late-execute
-
- seen.push(moduleName);
-
- for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) {
- var depName = entry.normalizedDeps[i];
- if (indexOf.call(seen, depName) == -1) {
- if (!loader.defined[depName])
- loader.get(depName);
- else
- ensureEvaluated(depName, loader.defined[depName], seen, loader);
- }
- }
-
- if (entry.evaluated)
- return;
-
- entry.evaluated = true;
- entry.module.execute.call(__global);
- }
-
- // override the delete method to also clear the register caches
- hook('delete', function(del) {
- return function(name) {
- delete this._loader.moduleRecords[name];
- delete this.defined[name];
- return del.call(this, name);
- };
- });
-
- hook('fetch', function(fetch) {
- return function(load) {
- if (this.defined[load.name]) {
- load.metadata.format = 'defined';
- return '';
- }
-
- load.metadata.deps = load.metadata.deps || [];
-
- return fetch.call(this, load);
- };
- });
-
- hook('translate', function(translate) {
- // we run the meta detection here (register is after meta)
- return function(load) {
- load.metadata.deps = load.metadata.deps || [];
- return Promise.resolve(translate.apply(this, arguments)).then(function(source) {
- // run detection for register format
- if (load.metadata.format == 'register' || load.metadata.format == 'system' || !load.metadata.format && detectRegisterFormat(load.source))
- load.metadata.format = 'register';
- return source;
- });
- };
- });
-
- // implement a perforance shortpath for System.load with no deps
- hook('load', function(doLoad) {
- return function(normalized) {
- var loader = this;
- var entry = loader.defined[normalized];
-
- if (!entry || entry.deps.length)
- return doLoad.apply(this, arguments);
-
- entry.originalIndices = entry.normalizedDeps = [];
-
- // recursively ensure that the module and all its
- // dependencies are linked (with dependency group handling)
- link(normalized, entry, loader);
-
- // now handle dependency execution in correct order
- ensureEvaluated(normalized, entry, [], loader);
- if (!entry.esModule)
- entry.esModule = loader.newModule(entry.module.exports);
-
- // remove from the registry
- if (!loader.trace)
- loader.defined[normalized] = undefined;
-
- // return the defined module object
- loader.set(normalized, entry.esModule);
-
- return Promise.resolve();
- };
- });
-
- hook('instantiate', function(instantiate) {
- return function(load) {
- if (load.metadata.format == 'detect')
- load.metadata.format = undefined;
-
- // assumes previous instantiate is sync
- // (core json support)
- instantiate.call(this, load);
-
- var loader = this;
-
- var entry;
-
- // first we check if this module has already been defined in the registry
- if (loader.defined[load.name]) {
- entry = loader.defined[load.name];
- // don't support deps for ES modules
- if (!entry.declarative)
- entry.deps = entry.deps.concat(load.metadata.deps);
- entry.deps = entry.deps.concat(load.metadata.deps);
- }
-
- // picked up already by an anonymous System.register script injection
- // or via the dynamic formats
- else if (load.metadata.entry) {
- entry = load.metadata.entry;
- entry.deps = entry.deps.concat(load.metadata.deps);
- }
-
- // Contains System.register calls
- // (dont run bundles in the builder)
- else if (!(loader.builder && load.metadata.bundle)
- && (load.metadata.format == 'register' || load.metadata.format == 'esm' || load.metadata.format == 'es6')) {
-
- if (typeof __exec != 'undefined')
- __exec.call(loader, load);
-
- if (!load.metadata.entry && !load.metadata.bundle)
- throw new Error(load.name + ' detected as ' + load.metadata.format + ' but didn\'t execute.');
-
- entry = load.metadata.entry;
-
- // support metadata deps for System.register
- if (entry && load.metadata.deps)
- entry.deps = entry.deps.concat(load.metadata.deps);
- }
-
- // named bundles are just an empty module
- if (!entry) {
- entry = createEntry();
- entry.deps = load.metadata.deps;
- entry.execute = function() {};
- }
-
- // place this module onto defined for circular references
- loader.defined[load.name] = entry;
-
- var grouped = group(entry.deps);
-
- entry.deps = grouped.names;
- entry.originalIndices = grouped.indices;
- entry.name = load.name;
- entry.esmExports = load.metadata.esmExports !== false;
-
- // first, normalize all dependencies
- var normalizePromises = [];
- for (var i = 0, l = entry.deps.length; i < l; i++)
- normalizePromises.push(Promise.resolve(loader.normalize(entry.deps[i], load.name)));
-
- return Promise.all(normalizePromises).then(function(normalizedDeps) {
-
- entry.normalizedDeps = normalizedDeps;
-
- return {
- deps: entry.deps,
- execute: function() {
- // recursively ensure that the module and all its
- // dependencies are linked (with dependency group handling)
- link(load.name, entry, loader);
-
- // now handle dependency execution in correct order
- ensureEvaluated(load.name, entry, [], loader);
-
- if (!entry.esModule)
- entry.esModule = loader.newModule(entry.module.exports);
-
- // remove from the registry
- if (!loader.trace)
- loader.defined[load.name] = undefined;
-
- // return the defined module object
- return entry.esModule;
- }
- };
- });
- };
- });
-})();
-
-
-function getGlobalValue(exports) {
- if (typeof exports == 'string')
- return readMemberExpression(exports, __global);
-
- if (!(exports instanceof Array))
- throw new Error('Global exports must be a string or array.');
-
- var globalValue = {};
- var first = true;
- for (var i = 0; i < exports.length; i++) {
- var val = readMemberExpression(exports[i], __global);
- if (first) {
- globalValue['default'] = val;
- first = false;
- }
- globalValue[exports[i].split('.').pop()] = val;
- }
- return globalValue;
-}
-
-hook('reduceRegister_', function(reduceRegister) {
- return function(load, register) {
- if (register || (!load.metadata.exports && !(isWorker && load.metadata.format == 'global')))
- return reduceRegister.call(this, load, register);
-
- load.metadata.format = 'global';
- var entry = load.metadata.entry = createEntry();
- entry.deps = load.metadata.deps;
- var globalValue = getGlobalValue(load.metadata.exports);
- entry.execute = function() {
- return globalValue;
- };
- };
-});
-
-hookConstructor(function(constructor) {
- return function() {
- var loader = this;
- constructor.call(loader);
-
- var hasOwnProperty = Object.prototype.hasOwnProperty;
-
- // bare minimum ignores
- var ignoredGlobalProps = ['_g', 'sessionStorage', 'localStorage', 'clipboardData', 'frames', 'frameElement', 'external',
- 'mozAnimationStartTime', 'webkitStorageInfo', 'webkitIndexedDB', 'mozInnerScreenY', 'mozInnerScreenX'];
-
- var globalSnapshot;
-
- function forEachGlobal(callback) {
- if (Object.keys)
- Object.keys(__global).forEach(callback);
- else
- for (var g in __global) {
- if (!hasOwnProperty.call(__global, g))
- continue;
- callback(g);
- }
- }
-
- function forEachGlobalValue(callback) {
- forEachGlobal(function(globalName) {
- if (indexOf.call(ignoredGlobalProps, globalName) != -1)
- return;
- try {
- var value = __global[globalName];
- }
- catch (e) {
- ignoredGlobalProps.push(globalName);
- }
- callback(globalName, value);
- });
- }
-
- loader.set('@@global-helpers', loader.newModule({
- prepareGlobal: function(moduleName, exports, globals, encapsulate) {
- // disable module detection
- var curDefine = __global.define;
-
- __global.define = undefined;
-
- // set globals
- var oldGlobals;
- if (globals) {
- oldGlobals = {};
- for (var g in globals) {
- oldGlobals[g] = __global[g];
- __global[g] = globals[g];
- }
- }
-
- // store a complete copy of the global object in order to detect changes
- if (!exports) {
- globalSnapshot = {};
-
- forEachGlobalValue(function(name, value) {
- globalSnapshot[name] = value;
- });
- }
-
- // return function to retrieve global
- return function() {
- var globalValue = exports ? getGlobalValue(exports) : {};
-
- var singleGlobal;
- var multipleExports = !!exports;
-
- if (!exports || encapsulate)
- forEachGlobalValue(function(name, value) {
- if (globalSnapshot[name] === value)
- return;
- if (typeof value == 'undefined')
- return;
-
- // allow global encapsulation where globals are removed
- if (encapsulate)
- __global[name] = undefined;
-
- if (!exports) {
- globalValue[name] = value;
-
- if (typeof singleGlobal != 'undefined') {
- if (!multipleExports && singleGlobal !== value)
- multipleExports = true;
- }
- else {
- singleGlobal = value;
- }
- }
- });
-
- globalValue = multipleExports ? globalValue : singleGlobal;
-
- // revert globals
- if (oldGlobals) {
- for (var g in oldGlobals)
- __global[g] = oldGlobals[g];
- }
- __global.define = curDefine;
-
- return globalValue;
- };
- }
- }));
- };
-});
-hookConstructor(function(constructor) {
- return function() {
- var loader = this;
- constructor.call(loader);
-
- if (typeof window != 'undefined' && typeof document != 'undefined' && window.location)
- var windowOrigin = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '');
-
- function stripOrigin(path) {
- if (path.substr(0, 8) == 'file:///')
- return path.substr(7 + !!isWindows);
-
- if (windowOrigin && path.substr(0, windowOrigin.length) == windowOrigin)
- return path.substr(windowOrigin.length);
-
- return path;
- }
-
- loader.set('@@cjs-helpers', loader.newModule({
- requireResolve: function(request, parentId) {
- return stripOrigin(loader.normalizeSync(request, parentId));
- },
- getPathVars: function(moduleId) {
- // remove any plugin syntax
- var pluginIndex = moduleId.lastIndexOf('!');
- var filename;
- if (pluginIndex != -1)
- filename = moduleId.substr(0, pluginIndex);
- else
- filename = moduleId;
-
- var dirname = filename.split('/');
- dirname.pop();
- dirname = dirname.join('/');
-
- return {
- filename: stripOrigin(filename),
- dirname: stripOrigin(dirname)
- };
- }
- }))
- };
-});/*
- * AMD Helper function module
- * Separated into its own file as this is the part needed for full AMD support in SFX builds
- * NB since implementations have now diverged this can be merged back with amd.js
- */
-
-hook('fetch', function(fetch) {
- return function(load) {
- // script load implies define global leak
- if (load.metadata.scriptLoad && isBrowser)
- __global.define = this.amdDefine;
- return fetch.call(this, load);
- };
-});
-
-hookConstructor(function(constructor) {
- return function() {
- var loader = this;
- constructor.call(this);
-
- var commentRegEx = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg;
- var cjsRequirePre = "(?:^|[^$_a-zA-Z\\xA0-\\uFFFF.])";
- var cjsRequirePost = "\\s*\\(\\s*(\"([^\"]+)\"|'([^']+)')\\s*\\)";
- var fnBracketRegEx = /\(([^\)]*)\)/;
- var wsRegEx = /^\s+|\s+$/g;
-
- var requireRegExs = {};
-
- function getCJSDeps(source, requireIndex) {
-
- // remove comments
- source = source.replace(commentRegEx, '');
-
- // determine the require alias
- var params = source.match(fnBracketRegEx);
- var requireAlias = (params[1].split(',')[requireIndex] || 'require').replace(wsRegEx, '');
-
- // find or generate the regex for this requireAlias
- var requireRegEx = requireRegExs[requireAlias] || (requireRegExs[requireAlias] = new RegExp(cjsRequirePre + requireAlias + cjsRequirePost, 'g'));
-
- requireRegEx.lastIndex = 0;
-
- var deps = [];
-
- var match;
- while (match = requireRegEx.exec(source))
- deps.push(match[2] || match[3]);
-
- return deps;
- }
-
- /*
- AMD-compatible require
- To copy RequireJS, set window.require = window.requirejs = loader.amdRequire
- */
- function require(names, callback, errback, referer) {
- // in amd, first arg can be a config object... we just ignore
- if (typeof names == 'object' && !(names instanceof Array))
- return require.apply(null, Array.prototype.splice.call(arguments, 1, arguments.length - 1));
-
- // amd require
- if (typeof names == 'string' && typeof callback == 'function')
- names = [names];
- if (names instanceof Array) {
- var dynamicRequires = [];
- for (var i = 0; i < names.length; i++)
- dynamicRequires.push(loader['import'](names[i], referer));
- Promise.all(dynamicRequires).then(function(modules) {
- if (callback)
- callback.apply(null, modules);
- }, errback);
- }
-
- // commonjs require
- else if (typeof names == 'string') {
- var defaultJSExtension = loader.defaultJSExtensions && names.substr(names.length - 3, 3) != '.js';
- var normalized = loader.decanonicalize(names, referer);
- if (defaultJSExtension && normalized.substr(normalized.length - 3, 3) == '.js')
- normalized = normalized.substr(0, normalized.length - 3);
- var module = loader.get(normalized);
- if (!module)
- throw new Error('Module not already loaded loading "' + names + '" as ' + normalized + (referer ? ' from "' + referer + '".' : '.'));
- return module.__useDefault ? module['default'] : module;
- }
-
- else
- throw new TypeError('Invalid require');
- }
-
- function define(name, deps, factory) {
- if (typeof name != 'string') {
- factory = deps;
- deps = name;
- name = null;
- }
- if (!(deps instanceof Array)) {
- factory = deps;
- deps = ['require', 'exports', 'module'].splice(0, factory.length);
- }
-
- if (typeof factory != 'function')
- factory = (function(factory) {
- return function() { return factory; }
- })(factory);
-
- // in IE8, a trailing comma becomes a trailing undefined entry
- if (deps[deps.length - 1] === undefined)
- deps.pop();
-
- // remove system dependencies
- var requireIndex, exportsIndex, moduleIndex;
-
- if ((requireIndex = indexOf.call(deps, 'require')) != -1) {
-
- deps.splice(requireIndex, 1);
-
- // only trace cjs requires for non-named
- // named defines assume the trace has already been done
- if (!name)
- deps = deps.concat(getCJSDeps(factory.toString(), requireIndex));
- }
-
- if ((exportsIndex = indexOf.call(deps, 'exports')) != -1)
- deps.splice(exportsIndex, 1);
-
- if ((moduleIndex = indexOf.call(deps, 'module')) != -1)
- deps.splice(moduleIndex, 1);
-
- function execute(req, exports, module) {
- var depValues = [];
- for (var i = 0; i < deps.length; i++)
- depValues.push(req(deps[i]));
-
- module.uri = module.id;
-
- module.config = function() {};
-
- // add back in system dependencies
- if (moduleIndex != -1)
- depValues.splice(moduleIndex, 0, module);
-
- if (exportsIndex != -1)
- depValues.splice(exportsIndex, 0, exports);
-
- if (requireIndex != -1) {
- function contextualRequire(names, callback, errback) {
- if (typeof names == 'string' && typeof callback != 'function')
- return req(names);
- return require.call(loader, names, callback, errback, module.id);
- }
- contextualRequire.toUrl = function(name) {
- // normalize without defaultJSExtensions
- var defaultJSExtension = loader.defaultJSExtensions && name.substr(name.length - 3, 3) != '.js';
- var url = loader.decanonicalize(name, module.id);
- if (defaultJSExtension && url.substr(url.length - 3, 3) == '.js')
- url = url.substr(0, url.length - 3);
- return url;
- };
- depValues.splice(requireIndex, 0, contextualRequire);
- }
-
- // set global require to AMD require
- var curRequire = __global.require;
- __global.require = require;
-
- var output = factory.apply(exportsIndex == -1 ? __global : exports, depValues);
-
- __global.require = curRequire;
-
- if (typeof output == 'undefined' && module)
- output = module.exports;
-
- if (typeof output != 'undefined')
- return output;
- }
-
- var entry = createEntry();
- entry.name = name && (loader.decanonicalize || loader.normalize).call(loader, name);
- entry.deps = deps;
- entry.execute = execute;
-
- loader.pushRegister_({
- amd: true,
- entry: entry
- });
- }
- define.amd = {};
-
- // reduction function to attach defines to a load record
- hook('reduceRegister_', function(reduceRegister) {
- return function(load, register) {
- // only handle AMD registers here
- if (!register || !register.amd)
- return reduceRegister.call(this, load, register);
-
- var curMeta = load && load.metadata;
- var entry = register.entry;
-
- if (curMeta) {
- if (!curMeta.format || curMeta.format == 'detect')
- curMeta.format = 'amd';
- else if (!entry.name && curMeta.format != 'amd')
- throw new Error('AMD define called while executing ' + curMeta.format + ' module ' + load.name);
- }
-
- // anonymous define
- if (!entry.name) {
- if (!curMeta)
- throw new TypeError('Unexpected anonymous AMD define.');
-
- if (curMeta.entry && !curMeta.entry.name)
- throw new Error('Multiple anonymous defines in module ' + load.name);
-
- curMeta.entry = entry;
- }
- // named define
- else {
- // if we don't have any other defines,
- // then let this be an anonymous define
- // this is just to support single modules of the form:
- // define('jquery')
- // still loading anonymously
- // because it is done widely enough to be useful
- // as soon as there is more than one define, this gets removed though
- if (curMeta) {
- if (!curMeta.entry && !curMeta.bundle)
- curMeta.entry = entry;
- else if (curMeta.entry && curMeta.entry.name && curMeta.entry.name != load.name)
- curMeta.entry = undefined;
-
- // note this is now a bundle
- curMeta.bundle = true;
- }
-
- // define the module through the register registry
- if (!(entry.name in this.defined))
- this.defined[entry.name] = entry;
- }
- };
- });
-
- loader.amdDefine = define;
- loader.amdRequire = require;
- };
-});/*
- SystemJS Loader Plugin Support
-
- Supports plugin loader syntax with "!", or via metadata.loader
-
- The plugin name is loaded as a module itself, and can override standard loader hooks
- for the plugin resource. See the plugin section of the systemjs readme.
-*/
-
-(function() {
- function getParentName(loader, parentName) {
- // if parent is a plugin, normalize against the parent plugin argument only
- if (parentName) {
- var parentPluginIndex;
- if (loader.pluginFirst) {
- if ((parentPluginIndex = parentName.lastIndexOf('!')) != -1)
- return parentName.substr(parentPluginIndex + 1);
- }
- else {
- if ((parentPluginIndex = parentName.indexOf('!')) != -1)
- return parentName.substr(0, parentPluginIndex);
- }
-
- return parentName;
- }
- }
-
- function parsePlugin(loader, name) {
- var argumentName;
- var pluginName;
-
- var pluginIndex = name.lastIndexOf('!');
-
- if (pluginIndex == -1)
- return;
-
- if (loader.pluginFirst) {
- argumentName = name.substr(pluginIndex + 1);
- pluginName = name.substr(0, pluginIndex);
- }
- else {
- argumentName = name.substr(0, pluginIndex);
- pluginName = name.substr(pluginIndex + 1) || argumentName.substr(argumentName.lastIndexOf('.') + 1);
- }
-
- return {
- argument: argumentName,
- plugin: pluginName
- };
- }
-
- // put name back together after parts have been normalized
- function combinePluginParts(loader, argumentName, pluginName, defaultExtension) {
- if (defaultExtension && argumentName.substr(argumentName.length - 3, 3) == '.js')
- argumentName = argumentName.substr(0, argumentName.length - 3);
-
- if (loader.pluginFirst) {
- return pluginName + '!' + argumentName;
- }
- else {
- return argumentName + '!' + pluginName;
- }
- }
-
- // note if normalize will add a default js extension
- // if so, remove for backwards compat
- // this is strange and sucks, but will be deprecated
- function checkDefaultExtension(loader, arg) {
- return loader.defaultJSExtensions && arg.substr(arg.length - 3, 3) != '.js';
- }
-
- function createNormalizeSync(normalizeSync) {
- return function(name, parentName, isPlugin) {
- var loader = this;
-
- var parsed = parsePlugin(loader, name);
- parentName = getParentName(this, parentName);
-
- if (!parsed)
- return normalizeSync.call(this, name, parentName, isPlugin);
-
- // if this is a plugin, normalize the plugin name and the argument
- var argumentName = loader.normalizeSync(parsed.argument, parentName, true);
- var pluginName = loader.normalizeSync(parsed.plugin, parentName, true);
- return combinePluginParts(loader, argumentName, pluginName, checkDefaultExtension(loader, parsed.argument));
- };
- }
-
- hook('decanonicalize', createNormalizeSync);
- hook('normalizeSync', createNormalizeSync);
-
- hook('normalize', function(normalize) {
- return function(name, parentName, isPlugin) {
- var loader = this;
-
- parentName = getParentName(this, parentName);
-
- var parsed = parsePlugin(loader, name);
-
- if (!parsed)
- return normalize.call(loader, name, parentName, isPlugin);
-
- return Promise.all([
- loader.normalize(parsed.argument, parentName, true),
- loader.normalize(parsed.plugin, parentName, false)
- ])
- .then(function(normalized) {
- return combinePluginParts(loader, normalized[0], normalized[1], checkDefaultExtension(loader, parsed.argument));
- });
- }
- });
-
- hook('locate', function(locate) {
- return function(load) {
- var loader = this;
-
- var name = load.name;
-
- // plugin syntax
- var pluginSyntaxIndex;
- if (loader.pluginFirst) {
- if ((pluginSyntaxIndex = name.indexOf('!')) != -1) {
- load.metadata.loader = name.substr(0, pluginSyntaxIndex);
- load.name = name.substr(pluginSyntaxIndex + 1);
- }
- }
- else {
- if ((pluginSyntaxIndex = name.lastIndexOf('!')) != -1) {
- load.metadata.loader = name.substr(pluginSyntaxIndex + 1);
- load.name = name.substr(0, pluginSyntaxIndex);
- }
- }
-
- return locate.call(loader, load)
- .then(function(address) {
- if (pluginSyntaxIndex != -1 || !load.metadata.loader)
- return address;
-
- // normalize plugin relative to parent in locate here when
- // using plugin via loader metadata
- return (loader.pluginLoader || loader).normalize(load.metadata.loader, load.name)
- .then(function(loaderNormalized) {
- load.metadata.loader = loaderNormalized;
- return address;
- });
- })
- .then(function(address) {
- var plugin = load.metadata.loader;
-
- if (!plugin)
- return address;
-
- // don't allow a plugin to load itself
- if (load.name == plugin)
- throw new Error('Plugin ' + plugin + ' cannot load itself, make sure it is excluded from any wildcard meta configuration via a custom loader: false rule.');
-
- // only fetch the plugin itself if this name isn't defined
- if (loader.defined && loader.defined[name])
- return address;
-
- var pluginLoader = loader.pluginLoader || loader;
-
- // load the plugin module and run standard locate
- return pluginLoader['import'](plugin)
- .then(function(loaderModule) {
- // store the plugin module itself on the metadata
- load.metadata.loaderModule = loaderModule;
-
- load.address = address;
- if (loaderModule.locate)
- return loaderModule.locate.call(loader, load);
-
- return address;
- });
- });
- };
- });
-
- hook('fetch', function(fetch) {
- return function(load) {
- var loader = this;
- if (load.metadata.loaderModule && load.metadata.format != 'defined') {
- if (typeof load.metadata.loaderModule === 'function' || load.metadata.loaderModule instanceof Module && typeof load.metadata.loaderModule.default === 'function')
- return '';
- load.metadata.scriptLoad = false;
- if (load.metadata.loaderModule.fetch)
- return load.metadata.loaderModule.fetch.call(loader, load, function(load) {
- return fetch.call(loader, load);
- });
- }
- return fetch.call(loader, load);
- };
- });
-
- hook('translate', function(translate) {
- return function(load) {
- var loader = this;
- var args = arguments;
- if (load.metadata.loaderModule && load.metadata.loaderModule.translate && load.metadata.format != 'defined') {
- return Promise.resolve(load.metadata.loaderModule.translate.apply(loader, args)).then(function(result) {
- var sourceMap = load.metadata.sourceMap;
-
- // sanitize sourceMap if an object not a JSON string
- if (sourceMap) {
- if (typeof sourceMap != 'object')
- throw new Error('load.metadata.sourceMap must be set to an object.');
-
- var originalName = load.address.split('!')[0];
-
- // force set the filename of the original file
- if (!sourceMap.file || sourceMap.file == load.address)
- sourceMap.file = originalName + '!transpiled';
-
- // force set the sources list if only one source
- if (!sourceMap.sources || sourceMap.sources.length <= 1 && (!sourceMap.sources[0] || sourceMap.sources[0] == load.address))
- sourceMap.sources = [originalName];
- }
-
- // if running on file:/// URLs, sourcesContent is necessary
- // load.metadata.sourceMap.sourcesContent = [load.source];
-
- if (typeof result == 'string')
- load.source = result;
-
- return translate.apply(loader, args);
- });
- }
- return translate.apply(loader, args);
- };
- });
-
- hook('instantiate', function(instantiate) {
- return function(load) {
- var loader = this;
- var calledInstantiate = false;
-
- if (load.metadata.loaderModule && !loader.builder && load.metadata.format != 'defined') {
- if (load.metadata.loaderModule.instantiate)
- return Promise.resolve(load.metadata.loaderModule.instantiate.call(loader, load, function(load) {
- if (calledInstantiate)
- throw new Error('Instantiate must only be called once.');
- calledInstantiate = true;
- return instantiate.call(loader, load);
- })).then(function(result) {
- if (calledInstantiate)
- return result;
-
- if (result !== undefined)
- createInstantiate(load, result);
- return instantiate.call(loader, load);
- });
- else if (typeof load.metadata.loaderModule === 'function' || load.metadata.loaderModule instanceof Module && typeof load.metadata.loaderModule.default === 'function')
- return Promise.resolve((load.metadata.loaderModule.default || load.metadata.loaderModule).call(loader, load.address, load.name))
- .then(function (result) {
- if (result !== undefined)
- createInstantiate(load, result);
- return instantiate.call(loader, load);
- });
- }
- return instantiate.call(loader, load);
- };
- });
-
-})();
-/*
- * Conditions Extension
- *
- * Allows a condition module to alter the resolution of an import via syntax:
- *
- * import $ from 'jquery/#{browser}';
- *
- * Will first load the module 'browser' via `SystemJS.import('browser')` and
- * take the default export of that module.
- * If the default export is not a string, an error is thrown.
- *
- * We then substitute the string into the require to get the conditional resolution
- * enabling environment-specific variations like:
- *
- * import $ from 'jquery/ie'
- * import $ from 'jquery/firefox'
- * import $ from 'jquery/chrome'
- * import $ from 'jquery/safari'
- *
- * It can be useful for a condition module to define multiple conditions.
- * This can be done via the `|` modifier to specify an export member expression:
- *
- * import 'jquery/#{./browser.js|grade.version}'
- *
- * Where the `grade` export `version` member in the `browser.js` module is substituted.
- *
- *
- * Boolean Conditionals
- *
- * For polyfill modules, that are used as imports but have no module value,
- * a binary conditional allows a module not to be loaded at all if not needed:
- *
- * import 'es5-shim#?./conditions.js|needs-es5shim'
- *
- * These conditions can also be negated via:
- *
- * import 'es5-shim#?./conditions.js|~es6'
- *
- */
-
- var sysConditions = ['browser', 'node', 'dev', 'build', 'production', 'default'];
-
- function parseCondition(condition) {
- var conditionExport, conditionModule, negation;
-
- var negation = condition[0] == '~';
- var conditionExportIndex = condition.lastIndexOf('|');
- if (conditionExportIndex != -1) {
- conditionExport = condition.substr(conditionExportIndex + 1);
- conditionModule = condition.substr(negation, conditionExportIndex - negation);
-
- if (negation)
- warn.call(this, 'Condition negation form "' + condition + '" is deprecated for "' + conditionModule + '|~' + conditionExport + '"');
-
- if (conditionExport[0] == '~') {
- negation = true;
- conditionExport = conditionExport.substr(1);
- }
- }
- else {
- conditionExport = 'default';
- conditionModule = condition.substr(negation);
- if (sysConditions.indexOf(conditionModule) != -1) {
- conditionExport = conditionModule;
- conditionModule = null;
- }
- }
-
- return {
- module: conditionModule || '@system-env',
- prop: conditionExport,
- negate: negation
- };
- }
-
- function serializeCondition(conditionObj) {
- return conditionObj.module + '|' + (conditionObj.negate ? '~' : '') + conditionObj.prop;
- }
-
- function resolveCondition(conditionObj, parentName, bool) {
- var self = this;
- return this.normalize(conditionObj.module, parentName)
- .then(function(normalizedCondition) {
- return self.load(normalizedCondition)
- .then(function(q) {
- var m = readMemberExpression(conditionObj.prop, self.get(normalizedCondition));
-
- if (bool && typeof m != 'boolean')
- throw new TypeError('Condition ' + serializeCondition(conditionObj) + ' did not resolve to a boolean.');
-
- return conditionObj.negate ? !m : m;
- });
- });
- }
-
- var interpolationRegEx = /#\{[^\}]+\}/;
- function interpolateConditional(name, parentName) {
- // first we normalize the conditional
- var conditionalMatch = name.match(interpolationRegEx);
-
- if (!conditionalMatch)
- return Promise.resolve(name);
-
- var conditionObj = parseCondition.call(this, conditionalMatch[0].substr(2, conditionalMatch[0].length - 3));
-
- // in builds, return normalized conditional
- if (this.builder)
- return this['normalize'](conditionObj.module, parentName)
- .then(function(conditionModule) {
- conditionObj.module = conditionModule;
- return name.replace(interpolationRegEx, '#{' + serializeCondition(conditionObj) + '}');
- });
-
- return resolveCondition.call(this, conditionObj, parentName, false)
- .then(function(conditionValue) {
- if (typeof conditionValue !== 'string')
- throw new TypeError('The condition value for ' + name + ' doesn\'t resolve to a string.');
-
- if (conditionValue.indexOf('/') != -1)
- throw new TypeError('Unabled to interpolate conditional ' + name + (parentName ? ' in ' + parentName : '') + '\n\tThe condition value ' + conditionValue + ' cannot contain a "/" separator.');
-
- return name.replace(interpolationRegEx, conditionValue);
- });
- }
-
- function booleanConditional(name, parentName) {
- // first we normalize the conditional
- var booleanIndex = name.lastIndexOf('#?');
-
- if (booleanIndex == -1)
- return Promise.resolve(name);
-
- var conditionObj = parseCondition.call(this, name.substr(booleanIndex + 2));
-
- // in builds, return normalized conditional
- if (this.builder)
- return this['normalize'](conditionObj.module, parentName)
- .then(function(conditionModule) {
- conditionObj.module = conditionModule;
- return name.substr(0, booleanIndex) + '#?' + serializeCondition(conditionObj);
- });
-
- return resolveCondition.call(this, conditionObj, parentName, true)
- .then(function(conditionValue) {
- return conditionValue ? name.substr(0, booleanIndex) : '@empty';
- });
- }
-
- // normalizeSync does not parse conditionals at all although it could
- hook('normalize', function(normalize) {
- return function(name, parentName, skipExt) {
- var loader = this;
- return booleanConditional.call(loader, name, parentName)
- .then(function(name) {
- return normalize.call(loader, name, parentName, skipExt);
- })
- .then(function(normalized) {
- return interpolateConditional.call(loader, normalized, parentName);
- });
- };
- });
-/*
- * Alias Extension
- *
- * Allows a module to be a plain copy of another module by module name
- *
- * SystemJS.meta['mybootstrapalias'] = { alias: 'bootstrap' };
- *
- */
-(function() {
- // aliases
- hook('fetch', function(fetch) {
- return function(load) {
- var alias = load.metadata.alias;
- var aliasDeps = load.metadata.deps || [];
- if (alias) {
- load.metadata.format = 'defined';
- var entry = createEntry();
- this.defined[load.name] = entry;
- entry.declarative = true;
- entry.deps = aliasDeps.concat([alias]);
- entry.declare = function(_export) {
- return {
- setters: [function(module) {
- for (var p in module)
- _export(p, module[p]);
- if (module.__useDefault)
- entry.module.exports.__useDefault = true;
- }],
- execute: function() {}
- };
- };
- return '';
- }
-
- return fetch.call(this, load);
- };
- });
-})();/*
- * Meta Extension
- *
- * Sets default metadata on a load record (load.metadata) from
- * loader.metadata via SystemJS.meta function.
- *
- *
- * Also provides an inline meta syntax for module meta in source.
- *
- * Eg:
- *
- * loader.meta({
- * 'my/module': { deps: ['jquery'] }
- * 'my/*': { format: 'amd' }
- * });
- *
- * Which in turn populates loader.metadata.
- *
- * load.metadata.deps and load.metadata.format will then be set
- * for 'my/module'
- *
- * The same meta could be set with a my/module.js file containing:
- *
- * my/module.js
- * "format amd";
- * "deps[] jquery";
- * "globals.some value"
- * console.log('this is my/module');
- *
- * Configuration meta always takes preference to inline meta.
- *
- * Multiple matches in wildcards are supported and ammend the meta.
- *
- *
- * The benefits of the function form is that paths are URL-normalized
- * supporting say
- *
- * loader.meta({ './app': { format: 'cjs' } });
- *
- * Instead of needing to set against the absolute URL (https://site.com/app.js)
- *
- */
-
-(function() {
-
- hookConstructor(function(constructor) {
- return function() {
- this.meta = {};
- constructor.call(this);
- };
- });
-
- hook('locate', function(locate) {
- return function(load) {
- var meta = this.meta;
- var name = load.name;
-
- // NB for perf, maybe introduce a fast-path wildcard lookup cache here
- // which is checked first
-
- // apply wildcard metas
- var bestDepth = 0;
- var wildcardIndex;
- for (var module in meta) {
- wildcardIndex = module.indexOf('*');
- if (wildcardIndex === -1)
- continue;
- if (module.substr(0, wildcardIndex) === name.substr(0, wildcardIndex)
- && module.substr(wildcardIndex + 1) === name.substr(name.length - module.length + wildcardIndex + 1)) {
- var depth = module.split('/').length;
- if (depth > bestDepth)
- bestDepth = depth;
- extendMeta(load.metadata, meta[module], bestDepth != depth);
- }
- }
-
- // apply exact meta
- if (meta[name])
- extendMeta(load.metadata, meta[name]);
-
- return locate.call(this, load);
- };
- });
-
- // detect any meta header syntax
- // only set if not already set
- var metaRegEx = /^(\s*\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)+/;
- var metaPartRegEx = /\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\/\/[^\n]*|"[^"]+"\s*;?|'[^']+'\s*;?/g;
-
- function setMetaProperty(target, p, value) {
- var pParts = p.split('.');
- var curPart;
- while (pParts.length > 1) {
- curPart = pParts.shift();
- target = target[curPart] = target[curPart] || {};
- }
- curPart = pParts.shift();
- if (!(curPart in target))
- target[curPart] = value;
- }
-
- hook('translate', function(translate) {
- return function(load) {
- // shortpath for bundled
- if (load.metadata.format == 'defined') {
- load.metadata.deps = load.metadata.deps || [];
- return Promise.resolve(load.source);
- }
-
- // NB meta will be post-translate pending transpiler conversion to plugins
- var meta = load.source.match(metaRegEx);
- if (meta) {
- var metaParts = meta[0].match(metaPartRegEx);
-
- for (var i = 0; i < metaParts.length; i++) {
- var curPart = metaParts[i];
- var len = curPart.length;
-
- var firstChar = curPart.substr(0, 1);
- if (curPart.substr(len - 1, 1) == ';')
- len--;
-
- if (firstChar != '"' && firstChar != "'")
- continue;
-
- var metaString = curPart.substr(1, curPart.length - 3);
- var metaName = metaString.substr(0, metaString.indexOf(' '));
-
- if (metaName) {
- var metaValue = metaString.substr(metaName.length + 1, metaString.length - metaName.length - 1);
-
- if (metaName.substr(metaName.length - 2, 2) == '[]') {
- metaName = metaName.substr(0, metaName.length - 2);
- load.metadata[metaName] = load.metadata[metaName] || [];
- load.metadata[metaName].push(metaValue);
- }
- else if (load.metadata[metaName] instanceof Array) {
- // temporary backwards compat for previous "deps" syntax
- warn.call(this, 'Module ' + load.name + ' contains deprecated "deps ' + metaValue + '" meta syntax.\nThis should be updated to "deps[] ' + metaValue + '" for pushing to array meta.');
- load.metadata[metaName].push(metaValue);
- }
- else {
- setMetaProperty(load.metadata, metaName, metaValue);
- }
- }
- else {
- load.metadata[metaString] = true;
- }
- }
- }
-
- return translate.apply(this, arguments);
- };
- });
-})();
-/*
- System bundles
-
- Allows a bundle module to be specified which will be dynamically
- loaded before trying to load a given module.
-
- For example:
- SystemJS.bundles['mybundle'] = ['jquery', 'bootstrap/js/bootstrap']
-
- Will result in a load to "mybundle" whenever a load to "jquery"
- or "bootstrap/js/bootstrap" is made.
-
- In this way, the bundle becomes the request that provides the module
-*/
-
-(function() {
- // bundles support (just like RequireJS)
- // bundle name is module name of bundle itself
- // bundle is array of modules defined by the bundle
- // when a module in the bundle is requested, the bundle is loaded instead
- // of the form SystemJS.bundles['mybundle'] = ['jquery', 'bootstrap/js/bootstrap']
- hookConstructor(function(constructor) {
- return function() {
- constructor.call(this);
- this.bundles = {};
- this._loader.loadedBundles = {};
- };
- });
-
- // assign bundle metadata for bundle loads
- hook('locate', function(locate) {
- return function(load) {
- var loader = this;
- var matched = false;
-
- if (!(load.name in loader.defined))
- for (var b in loader.bundles) {
- for (var i = 0; i < loader.bundles[b].length; i++) {
- var curModule = loader.bundles[b][i];
-
- if (curModule == load.name) {
- matched = true;
- break;
- }
-
- // wildcard in bundles does not include / boundaries
- if (curModule.indexOf('*') != -1) {
- var parts = curModule.split('*');
- if (parts.length != 2) {
- loader.bundles[b].splice(i--, 1);
- continue;
- }
-
- if (load.name.substring(0, parts[0].length) == parts[0] &&
- load.name.substr(load.name.length - parts[1].length, parts[1].length) == parts[1] &&
- load.name.substr(parts[0].length, load.name.length - parts[1].length - parts[0].length).indexOf('/') == -1) {
- matched = true;
- break;
- }
- }
- }
-
- if (matched)
- return loader['import'](b)
- .then(function() {
- return locate.call(loader, load);
- });
- }
-
- return locate.call(loader, load);
- };
- });
-})();
-/*
- * Dependency Tree Cache
- *
- * Allows a build to pre-populate a dependency trace tree on the loader of
- * the expected dependency tree, to be loaded upfront when requesting the
- * module, avoinding the n round trips latency of module loading, where
- * n is the dependency tree depth.
- *
- * eg:
- * SystemJS.depCache = {
- * 'app': ['normalized', 'deps'],
- * 'normalized': ['another'],
- * 'deps': ['tree']
- * };
- *
- * SystemJS.import('app')
- * // simultaneously starts loading all of:
- * // 'normalized', 'deps', 'another', 'tree'
- * // before "app" source is even loaded
- *
- */
-
-(function() {
- hookConstructor(function(constructor) {
- return function() {
- constructor.call(this);
- this.depCache = {};
- }
- });
-
- hook('locate', function(locate) {
- return function(load) {
- var loader = this;
- // load direct deps, in turn will pick up their trace trees
- var deps = loader.depCache[load.name];
- if (deps)
- for (var i = 0; i < deps.length; i++)
- loader['import'](deps[i], load.name);
-
- return locate.call(loader, load);
- };
- });
-})();
-
-/*
- * Script-only addition used for production loader
- *
- */
-hookConstructor(function(constructor) {
- return function() {
- constructor.apply(this, arguments);
- __global.define = this.amdDefine;
- };
-});
-
-hook('fetch', function(fetch) {
- return function(load) {
- load.metadata.scriptLoad = true;
- return fetch.call(this, load);
- };
-});System = new SystemJSLoader();
-
-__global.SystemJS = System;
-System.version = '0.19.47 CSP';
- if (typeof module == 'object' && module.exports && typeof exports == 'object')
- module.exports = System;
-
- __global.System = System;
-
-})(typeof self != 'undefined' ? self : global);}
-
-// auto-load Promise polyfill if needed in the browser
-var doPolyfill = typeof Promise === 'undefined';
-
-// document.write
-if (typeof document !== 'undefined') {
- var scripts = document.getElementsByTagName('script');
- $__curScript = scripts[scripts.length - 1];
- if (document.currentScript && ($__curScript.defer || $__curScript.async))
- $__curScript = document.currentScript;
- if (!$__curScript.src)
- $__curScript = undefined;
- if (doPolyfill) {
- var curPath = $__curScript.src;
- var basePath = curPath.substr(0, curPath.lastIndexOf('/') + 1);
- window.systemJSBootstrap = bootstrap;
- document.write(
- '<' + 'script type="text/javascript" src="' + basePath + 'system-polyfills.js">' + '<' + '/script>'
- );
- }
- else {
- bootstrap();
- }
-}
-// importScripts
-else if (typeof importScripts !== 'undefined') {
- var basePath = '';
- try {
- throw new Error('_');
- } catch (e) {
- e.stack.replace(/(?:at|@).*(http.+):[\d]+:[\d]+/, function(m, url) {
- $__curScript = { src: url };
- basePath = url.replace(/\/[^\/]*$/, '/');
- });
- }
- if (doPolyfill)
- importScripts(basePath + 'system-polyfills.js');
- bootstrap();
-}
-else {
- $__curScript = typeof __filename != 'undefined' ? { src: __filename } : null;
- bootstrap();
-}
-
-
-})();
diff --git a/node_modules/systemjs/dist/system-polyfills.js b/node_modules/systemjs/dist/system-polyfills.js
deleted file mode 100644
index bf3aaab1b..000000000
--- a/node_modules/systemjs/dist/system-polyfills.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
- * SystemJS Promise Polyfill
- */
-!function(t){!function(e){"object"==typeof exports?module.exports=e():"function"==typeof t&&t.amd?t(e):"undefined"!=typeof window?window.Promise=e():"undefined"!=typeof global?global.Promise=e():"undefined"!=typeof self&&(self.Promise=e())}(function(){var t;return function e(t,n,o){function r(u,c){if(!n[u]){if(!t[u]){var f="function"==typeof require&&require;if(!c&&f)return f(u,!0);if(i)return i(u,!0);throw new Error("Cannot find module '"+u+"'")}var s=n[u]={exports:{}};t[u][0].call(s.exports,function(e){var n=t[u][1][e];return r(n?n:e)},s,s.exports,e,t,n,o)}return n[u].exports}for(var i="function"==typeof require&&require,u=0;u<o.length;u++)r(o[u]);return r}({1:[function(t,e,n){var o=t("../lib/decorators/unhandledRejection"),r=o(t("../lib/Promise"));e.exports="undefined"!=typeof global?global.Promise=r:"undefined"!=typeof self?self.Promise=r:r},{"../lib/Promise":2,"../lib/decorators/unhandledRejection":4}],2:[function(e,n,o){!function(t){"use strict";t(function(t){var e=t("./makePromise"),n=t("./Scheduler"),o=t("./env").asap;return e({scheduler:new n(o)})})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"./Scheduler":3,"./env":5,"./makePromise":7}],3:[function(e,n,o){!function(t){"use strict";t(function(){function t(t){this._async=t,this._running=!1,this._queue=this,this._queueLen=0,this._afterQueue={},this._afterQueueLen=0;var e=this;this.drain=function(){e._drain()}}return t.prototype.enqueue=function(t){this._queue[this._queueLen++]=t,this.run()},t.prototype.afterQueue=function(t){this._afterQueue[this._afterQueueLen++]=t,this.run()},t.prototype.run=function(){this._running||(this._running=!0,this._async(this.drain))},t.prototype._drain=function(){for(var t=0;t<this._queueLen;++t)this._queue[t].run(),this._queue[t]=void 0;for(this._queueLen=0,this._running=!1,t=0;t<this._afterQueueLen;++t)this._afterQueue[t].run(),this._afterQueue[t]=void 0;this._afterQueueLen=0},t})}("function"==typeof t&&t.amd?t:function(t){n.exports=t()})},{}],4:[function(e,n,o){!function(t){"use strict";t(function(t){function e(t){throw t}function n(){}var o=t("../env").setTimer,r=t("../format");return function(t){function i(t){t.handled||(l.push(t),a("Potentially unhandled rejection ["+t.id+"] "+r.formatError(t.value)))}function u(t){var e=l.indexOf(t);e>=0&&(l.splice(e,1),h("Handled previous rejection ["+t.id+"] "+r.formatObject(t.value)))}function c(t,e){p.push(t,e),null===d&&(d=o(f,0))}function f(){for(d=null;p.length>0;)p.shift()(p.shift())}var s,a=n,h=n;"undefined"!=typeof console&&(s=console,a="undefined"!=typeof s.error?function(t){s.error(t)}:function(t){s.log(t)},h="undefined"!=typeof s.info?function(t){s.info(t)}:function(t){s.log(t)}),t.onPotentiallyUnhandledRejection=function(t){c(i,t)},t.onPotentiallyUnhandledRejectionHandled=function(t){c(u,t)},t.onFatalRejection=function(t){c(e,t.value)};var p=[],l=[],d=null;return t}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"../env":5,"../format":6}],5:[function(e,n,o){!function(t){"use strict";t(function(t){function e(){return"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process)}function n(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function o(t){function e(){var t=n;n=void 0,t()}var n,o=document.createTextNode(""),r=new t(e);r.observe(o,{characterData:!0});var i=0;return function(t){n=t,o.data=i^=1}}var r,i="undefined"!=typeof setTimeout&&setTimeout,u=function(t,e){return setTimeout(t,e)},c=function(t){return clearTimeout(t)},f=function(t){return i(t,0)};if(e())f=function(t){return process.nextTick(t)};else if(r=n())f=o(r);else if(!i){var s=t,a=s("vertx");u=function(t,e){return a.setTimer(e,t)},c=a.cancelTimer,f=a.runOnLoop||a.runOnContext}return{setTimer:u,clearTimer:c,asap:f}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{}],6:[function(e,n,o){!function(t){"use strict";t(function(){function t(t){var n="object"==typeof t&&null!==t&&(t.stack||t.message)?t.stack||t.message:e(t);return t instanceof Error?n:n+" (WARNING: non-Error used)"}function e(t){var e=String(t);return"[object Object]"===e&&"undefined"!=typeof JSON&&(e=n(t,e)),e}function n(t,e){try{return JSON.stringify(t)}catch(n){return e}}return{formatError:t,formatObject:e,tryStringify:n}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t()})},{}],7:[function(e,n,o){!function(t){"use strict";t(function(){return function(t){function e(t,e){this._handler=t===_?e:n(t)}function n(t){function e(t){r.resolve(t)}function n(t){r.reject(t)}function o(t){r.notify(t)}var r=new b;try{t(e,n,o)}catch(i){n(i)}return r}function o(t){return k(t)?t:new e(_,new x(v(t)))}function r(t){return new e(_,new x(new P(t)))}function i(){return $}function u(){return new e(_,new b)}function c(t,e){var n=new b(t.receiver,t.join().context);return new e(_,n)}function f(t){return a(B,null,t)}function s(t,e){return a(M,t,e)}function a(t,n,o){function r(e,r,u){u.resolved||h(o,i,e,t(n,r,e),u)}function i(t,e,n){a[t]=e,0===--s&&n.become(new q(a))}for(var u,c="function"==typeof n?r:i,f=new b,s=o.length>>>0,a=new Array(s),p=0;p<o.length&&!f.resolved;++p)u=o[p],void 0!==u||p in o?h(o,c,p,u,f):--s;return 0===s&&f.become(new q(a)),new e(_,f)}function h(t,e,n,o,r){if(U(o)){var i=m(o),u=i.state();0===u?i.fold(e,n,void 0,r):u>0?e(n,i.value,r):(r.become(i),p(t,n+1,i))}else e(n,o,r)}function p(t,e,n){for(var o=e;o<t.length;++o)l(v(t[o]),n)}function l(t,e){if(t!==e){var n=t.state();0===n?t.visit(t,void 0,t._unreport):0>n&&t._unreport()}}function d(t){return"object"!=typeof t||null===t?r(new TypeError("non-iterable passed to race()")):0===t.length?i():1===t.length?o(t[0]):y(t)}function y(t){var n,o,r,i=new b;for(n=0;n<t.length;++n)if(o=t[n],void 0!==o||n in t){if(r=v(o),0!==r.state()){i.become(r),p(t,n+1,r);break}r.visit(i,i.resolve,i.reject)}return new e(_,i)}function v(t){return k(t)?t._handler.join():U(t)?j(t):new q(t)}function m(t){return k(t)?t._handler.join():j(t)}function j(t){try{var e=t.then;return"function"==typeof e?new g(e,t):new q(t)}catch(n){return new P(n)}}function _(){}function w(){}function b(t,n){e.createContext(this,n),this.consumers=void 0,this.receiver=t,this.handler=void 0,this.resolved=!1}function x(t){this.handler=t}function g(t,e){b.call(this),G.enqueue(new E(t,e,this))}function q(t){e.createContext(this),this.value=t}function P(t){e.createContext(this),this.id=++Y,this.value=t,this.handled=!1,this.reported=!1,this._report()}function R(t,e){this.rejection=t,this.context=e}function C(t){this.rejection=t}function O(){return new P(new TypeError("Promise cycle"))}function T(t,e){this.continuation=t,this.handler=e}function Q(t,e){this.handler=e,this.value=t}function E(t,e,n){this._then=t,this.thenable=e,this.resolver=n}function L(t,e,n,o,r){try{t.call(e,n,o,r)}catch(i){o(i)}}function S(t,e,n,o){this.f=t,this.z=e,this.c=n,this.to=o,this.resolver=X,this.receiver=this}function k(t){return t instanceof e}function U(t){return("object"==typeof t||"function"==typeof t)&&null!==t}function H(t,n,o,r){return"function"!=typeof t?r.become(n):(e.enterContext(n),F(t,n.value,o,r),void e.exitContext())}function N(t,n,o,r,i){return"function"!=typeof t?i.become(o):(e.enterContext(o),W(t,n,o.value,r,i),void e.exitContext())}function J(t,n,o,r,i){return"function"!=typeof t?i.notify(n):(e.enterContext(o),z(t,n,r,i),void e.exitContext())}function M(t,e,n){try{return t(e,n)}catch(o){return r(o)}}function F(t,e,n,o){try{o.become(v(t.call(n,e)))}catch(r){o.become(new P(r))}}function W(t,e,n,o,r){try{t.call(o,e,n,r)}catch(i){r.become(new P(i))}}function z(t,e,n,o){try{o.notify(t.call(n,e))}catch(r){o.notify(r)}}function A(t,e){e.prototype=V(t.prototype),e.prototype.constructor=e}function B(t,e){return e}function K(){}function D(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.emit?function(t,e){return"unhandledRejection"===t?process.emit(t,e.value,e):process.emit(t,e)}:"undefined"!=typeof self&&"function"==typeof CustomEvent?function(t,e,n){var o=!1;try{var r=new n("unhandledRejection");o=r instanceof n}catch(i){}return o?function(t,o){var r=new n(t,{detail:{reason:o.value,key:o},bubbles:!1,cancelable:!0});return!e.dispatchEvent(r)}:t}(K,self,CustomEvent):K}var G=t.scheduler,I=D(),V=Object.create||function(t){function e(){}return e.prototype=t,new e};e.resolve=o,e.reject=r,e.never=i,e._defer=u,e._handler=v,e.prototype.then=function(t,e,n){var o=this._handler,r=o.join().state();if("function"!=typeof t&&r>0||"function"!=typeof e&&0>r)return new this.constructor(_,o);var i=this._beget(),u=i._handler;return o.chain(u,o.receiver,t,e,n),i},e.prototype["catch"]=function(t){return this.then(void 0,t)},e.prototype._beget=function(){return c(this._handler,this.constructor)},e.all=f,e.race=d,e._traverse=s,e._visitRemaining=p,_.prototype.when=_.prototype.become=_.prototype.notify=_.prototype.fail=_.prototype._unreport=_.prototype._report=K,_.prototype._state=0,_.prototype.state=function(){return this._state},_.prototype.join=function(){for(var t=this;void 0!==t.handler;)t=t.handler;return t},_.prototype.chain=function(t,e,n,o,r){this.when({resolver:t,receiver:e,fulfilled:n,rejected:o,progress:r})},_.prototype.visit=function(t,e,n,o){this.chain(X,t,e,n,o)},_.prototype.fold=function(t,e,n,o){this.when(new S(t,e,n,o))},A(_,w),w.prototype.become=function(t){t.fail()};var X=new w;A(_,b),b.prototype._state=0,b.prototype.resolve=function(t){this.become(v(t))},b.prototype.reject=function(t){this.resolved||this.become(new P(t))},b.prototype.join=function(){if(!this.resolved)return this;for(var t=this;void 0!==t.handler;)if(t=t.handler,t===this)return this.handler=O();return t},b.prototype.run=function(){var t=this.consumers,e=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var n=0;n<t.length;++n)e.when(t[n])},b.prototype.become=function(t){this.resolved||(this.resolved=!0,this.handler=t,void 0!==this.consumers&&G.enqueue(this),void 0!==this.context&&t._report(this.context))},b.prototype.when=function(t){this.resolved?G.enqueue(new T(t,this.handler)):void 0===this.consumers?this.consumers=[t]:this.consumers.push(t)},b.prototype.notify=function(t){this.resolved||G.enqueue(new Q(t,this))},b.prototype.fail=function(t){var e="undefined"==typeof t?this.context:t;this.resolved&&this.handler.join().fail(e)},b.prototype._report=function(t){this.resolved&&this.handler.join()._report(t)},b.prototype._unreport=function(){this.resolved&&this.handler.join()._unreport()},A(_,x),x.prototype.when=function(t){G.enqueue(new T(t,this))},x.prototype._report=function(t){this.join()._report(t)},x.prototype._unreport=function(){this.join()._unreport()},A(b,g),A(_,q),q.prototype._state=1,q.prototype.fold=function(t,e,n,o){N(t,e,this,n,o)},q.prototype.when=function(t){H(t.fulfilled,this,t.receiver,t.resolver)};var Y=0;A(_,P),P.prototype._state=-1,P.prototype.fold=function(t,e,n,o){o.become(this)},P.prototype.when=function(t){"function"==typeof t.rejected&&this._unreport(),H(t.rejected,this,t.receiver,t.resolver)},P.prototype._report=function(t){G.afterQueue(new R(this,t))},P.prototype._unreport=function(){this.handled||(this.handled=!0,G.afterQueue(new C(this)))},P.prototype.fail=function(t){this.reported=!0,I("unhandledRejection",this),e.onFatalRejection(this,void 0===t?this.context:t)},R.prototype.run=function(){this.rejection.handled||this.rejection.reported||(this.rejection.reported=!0,I("unhandledRejection",this.rejection)||e.onPotentiallyUnhandledRejection(this.rejection,this.context))},C.prototype.run=function(){this.rejection.reported&&(I("rejectionHandled",this.rejection)||e.onPotentiallyUnhandledRejectionHandled(this.rejection))},e.createContext=e.enterContext=e.exitContext=e.onPotentiallyUnhandledRejection=e.onPotentiallyUnhandledRejectionHandled=e.onFatalRejection=K;var Z=new _,$=new e(_,Z);return T.prototype.run=function(){this.handler.join().when(this.continuation)},Q.prototype.run=function(){var t=this.handler.consumers;if(void 0!==t)for(var e,n=0;n<t.length;++n)e=t[n],J(e.progress,this.value,this.handler,e.receiver,e.resolver)},E.prototype.run=function(){function t(t){o.resolve(t)}function e(t){o.reject(t)}function n(t){o.notify(t)}var o=this.resolver;L(this._then,this.thenable,t,e,n)},S.prototype.fulfilled=function(t){this.f.call(this.c,this.z,t,this.to)},S.prototype.rejected=function(t){this.to.reject(t)},S.prototype.progress=function(t){this.to.notify(t)},e}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t()})},{}]},{},[1])(1)}),"undefined"!=typeof systemJSBootstrap&&systemJSBootstrap()}();
-//# sourceMappingURL=system-polyfills.js.map
diff --git a/node_modules/systemjs/dist/system-polyfills.js.map b/node_modules/systemjs/dist/system-polyfills.js.map
deleted file mode 100644
index f5d121395..000000000
--- a/node_modules/systemjs/dist/system-polyfills.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["system-polyfills.src.js"],"names":["define","e","exports","module","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","Object","toString","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","nextTick","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","message","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","Array","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","initEmitRejection","emit","type","CustomEvent","hasCustomEvent","ev","detail","key","bubbles","cancelable","dispatchEvent","emitRejection","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","systemJSBootstrap"],"mappings":"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"} \ No newline at end of file
diff --git a/node_modules/systemjs/dist/system-polyfills.src.js b/node_modules/systemjs/dist/system-polyfills.src.js
deleted file mode 100644
index 45bf75813..000000000
--- a/node_modules/systemjs/dist/system-polyfills.src.js
+++ /dev/null
@@ -1,1277 +0,0 @@
-/*
- * SystemJS Promise Polyfill
- */
-(function(define) {
-
-!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.Promise=e():"undefined"!=typeof global?global.Promise=e():"undefined"!=typeof self&&(self.Promise=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-/**
- * ES6 global Promise shim
- */
-var unhandledRejections = require('../lib/decorators/unhandledRejection');
-var PromiseConstructor = unhandledRejections(require('../lib/Promise'));
-
-module.exports = typeof global != 'undefined' ? (global.Promise = PromiseConstructor)
- : typeof self != 'undefined' ? (self.Promise = PromiseConstructor)
- : PromiseConstructor;
-
-},{"../lib/Promise":2,"../lib/decorators/unhandledRejection":4}],2:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function (require) {
-
- var makePromise = require('./makePromise');
- var Scheduler = require('./Scheduler');
- var async = require('./env').asap;
-
- return makePromise({
- scheduler: new Scheduler(async)
- });
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-},{"./Scheduler":3,"./env":5,"./makePromise":7}],3:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- // Credit to Twisol (https://github.com/Twisol) for suggesting
- // this type of extensible queue + trampoline approach for next-tick conflation.
-
- /**
- * Async task scheduler
- * @param {function} async function to schedule a single async function
- * @constructor
- */
- function Scheduler(async) {
- this._async = async;
- this._running = false;
-
- this._queue = this;
- this._queueLen = 0;
- this._afterQueue = {};
- this._afterQueueLen = 0;
-
- var self = this;
- this.drain = function() {
- self._drain();
- };
- }
-
- /**
- * Enqueue a task
- * @param {{ run:function }} task
- */
- Scheduler.prototype.enqueue = function(task) {
- this._queue[this._queueLen++] = task;
- this.run();
- };
-
- /**
- * Enqueue a task to run after the main task queue
- * @param {{ run:function }} task
- */
- Scheduler.prototype.afterQueue = function(task) {
- this._afterQueue[this._afterQueueLen++] = task;
- this.run();
- };
-
- Scheduler.prototype.run = function() {
- if (!this._running) {
- this._running = true;
- this._async(this.drain);
- }
- };
-
- /**
- * Drain the handler queue entirely, and then the after queue
- */
- Scheduler.prototype._drain = function() {
- var i = 0;
- for (; i < this._queueLen; ++i) {
- this._queue[i].run();
- this._queue[i] = void 0;
- }
-
- this._queueLen = 0;
- this._running = false;
-
- for (i = 0; i < this._afterQueueLen; ++i) {
- this._afterQueue[i].run();
- this._afterQueue[i] = void 0;
- }
-
- this._afterQueueLen = 0;
- };
-
- return Scheduler;
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],4:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var setTimer = require('../env').setTimer;
- var format = require('../format');
-
- return function unhandledRejection(Promise) {
-
- var logError = noop;
- var logInfo = noop;
- var localConsole;
-
- if(typeof console !== 'undefined') {
- // Alias console to prevent things like uglify's drop_console option from
- // removing console.log/error. Unhandled rejections fall into the same
- // category as uncaught exceptions, and build tools shouldn't silence them.
- localConsole = console;
- logError = typeof localConsole.error !== 'undefined'
- ? function (e) { localConsole.error(e); }
- : function (e) { localConsole.log(e); };
-
- logInfo = typeof localConsole.info !== 'undefined'
- ? function (e) { localConsole.info(e); }
- : function (e) { localConsole.log(e); };
- }
-
- Promise.onPotentiallyUnhandledRejection = function(rejection) {
- enqueue(report, rejection);
- };
-
- Promise.onPotentiallyUnhandledRejectionHandled = function(rejection) {
- enqueue(unreport, rejection);
- };
-
- Promise.onFatalRejection = function(rejection) {
- enqueue(throwit, rejection.value);
- };
-
- var tasks = [];
- var reported = [];
- var running = null;
-
- function report(r) {
- if(!r.handled) {
- reported.push(r);
- logError('Potentially unhandled rejection [' + r.id + '] ' + format.formatError(r.value));
- }
- }
-
- function unreport(r) {
- var i = reported.indexOf(r);
- if(i >= 0) {
- reported.splice(i, 1);
- logInfo('Handled previous rejection [' + r.id + '] ' + format.formatObject(r.value));
- }
- }
-
- function enqueue(f, x) {
- tasks.push(f, x);
- if(running === null) {
- running = setTimer(flush, 0);
- }
- }
-
- function flush() {
- running = null;
- while(tasks.length > 0) {
- tasks.shift()(tasks.shift());
- }
- }
-
- return Promise;
- };
-
- function throwit(e) {
- throw e;
- }
-
- function noop() {}
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{"../env":5,"../format":6}],5:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-/*global process,document,setTimeout,clearTimeout,MutationObserver,WebKitMutationObserver*/
-(function(define) { 'use strict';
-define(function(require) {
- /*jshint maxcomplexity:6*/
-
- // Sniff "best" async scheduling option
- // Prefer process.nextTick or MutationObserver, then check for
- // setTimeout, and finally vertx, since its the only env that doesn't
- // have setTimeout
-
- var MutationObs;
- var capturedSetTimeout = typeof setTimeout !== 'undefined' && setTimeout;
-
- // Default env
- var setTimer = function(f, ms) { return setTimeout(f, ms); };
- var clearTimer = function(t) { return clearTimeout(t); };
- var asap = function (f) { return capturedSetTimeout(f, 0); };
-
- // Detect specific env
- if (isNode()) { // Node
- asap = function (f) { return process.nextTick(f); };
-
- } else if (MutationObs = hasMutationObserver()) { // Modern browser
- asap = initMutationObserver(MutationObs);
-
- } else if (!capturedSetTimeout) { // vert.x
- var vertxRequire = require;
- var vertx = vertxRequire('vertx');
- setTimer = function (f, ms) { return vertx.setTimer(ms, f); };
- clearTimer = vertx.cancelTimer;
- asap = vertx.runOnLoop || vertx.runOnContext;
- }
-
- return {
- setTimer: setTimer,
- clearTimer: clearTimer,
- asap: asap
- };
-
- function isNode () {
- return typeof process !== 'undefined' &&
- Object.prototype.toString.call(process) === '[object process]';
- }
-
- function hasMutationObserver () {
- return (typeof MutationObserver === 'function' && MutationObserver) ||
- (typeof WebKitMutationObserver === 'function' && WebKitMutationObserver);
- }
-
- function initMutationObserver(MutationObserver) {
- var scheduled;
- var node = document.createTextNode('');
- var o = new MutationObserver(run);
- o.observe(node, { characterData: true });
-
- function run() {
- var f = scheduled;
- scheduled = void 0;
- f();
- }
-
- var i = 0;
- return function (f) {
- scheduled = f;
- node.data = (i ^= 1);
- };
- }
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{}],6:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return {
- formatError: formatError,
- formatObject: formatObject,
- tryStringify: tryStringify
- };
-
- /**
- * Format an error into a string. If e is an Error and has a stack property,
- * it's returned. Otherwise, e is formatted using formatObject, with a
- * warning added about e not being a proper Error.
- * @param {*} e
- * @returns {String} formatted string, suitable for output to developers
- */
- function formatError(e) {
- var s = typeof e === 'object' && e !== null && (e.stack || e.message) ? e.stack || e.message : formatObject(e);
- return e instanceof Error ? s : s + ' (WARNING: non-Error used)';
- }
-
- /**
- * Format an object, detecting "plain" objects and running them through
- * JSON.stringify if possible.
- * @param {Object} o
- * @returns {string}
- */
- function formatObject(o) {
- var s = String(o);
- if(s === '[object Object]' && typeof JSON !== 'undefined') {
- s = tryStringify(o, s);
- }
- return s;
- }
-
- /**
- * Try to return the result of JSON.stringify(x). If that fails, return
- * defaultValue
- * @param {*} x
- * @param {*} defaultValue
- * @returns {String|*} JSON.stringify(x) or defaultValue
- */
- function tryStringify(x, defaultValue) {
- try {
- return JSON.stringify(x);
- } catch(e) {
- return defaultValue;
- }
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],7:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function makePromise(environment) {
-
- var tasks = environment.scheduler;
- var emitRejection = initEmitRejection();
-
- var objectCreate = Object.create ||
- function(proto) {
- function Child() {}
- Child.prototype = proto;
- return new Child();
- };
-
- /**
- * Create a promise whose fate is determined by resolver
- * @constructor
- * @returns {Promise} promise
- * @name Promise
- */
- function Promise(resolver, handler) {
- this._handler = resolver === Handler ? handler : init(resolver);
- }
-
- /**
- * Run the supplied resolver
- * @param resolver
- * @returns {Pending}
- */
- function init(resolver) {
- var handler = new Pending();
-
- try {
- resolver(promiseResolve, promiseReject, promiseNotify);
- } catch (e) {
- promiseReject(e);
- }
-
- return handler;
-
- /**
- * Transition from pre-resolution state to post-resolution state, notifying
- * all listeners of the ultimate fulfillment or rejection
- * @param {*} x resolution value
- */
- function promiseResolve (x) {
- handler.resolve(x);
- }
- /**
- * Reject this promise with reason, which will be used verbatim
- * @param {Error|*} reason rejection reason, strongly suggested
- * to be an Error type
- */
- function promiseReject (reason) {
- handler.reject(reason);
- }
-
- /**
- * @deprecated
- * Issue a progress event, notifying all progress listeners
- * @param {*} x progress event payload to pass to all listeners
- */
- function promiseNotify (x) {
- handler.notify(x);
- }
- }
-
- // Creation
-
- Promise.resolve = resolve;
- Promise.reject = reject;
- Promise.never = never;
-
- Promise._defer = defer;
- Promise._handler = getHandler;
-
- /**
- * Returns a trusted promise. If x is already a trusted promise, it is
- * returned, otherwise returns a new trusted Promise which follows x.
- * @param {*} x
- * @return {Promise} promise
- */
- function resolve(x) {
- return isPromise(x) ? x
- : new Promise(Handler, new Async(getHandler(x)));
- }
-
- /**
- * Return a reject promise with x as its reason (x is used verbatim)
- * @param {*} x
- * @returns {Promise} rejected promise
- */
- function reject(x) {
- return new Promise(Handler, new Async(new Rejected(x)));
- }
-
- /**
- * Return a promise that remains pending forever
- * @returns {Promise} forever-pending promise.
- */
- function never() {
- return foreverPendingPromise; // Should be frozen
- }
-
- /**
- * Creates an internal {promise, resolver} pair
- * @private
- * @returns {Promise}
- */
- function defer() {
- return new Promise(Handler, new Pending());
- }
-
- // Transformation and flow control
-
- /**
- * Transform this promise's fulfillment value, returning a new Promise
- * for the transformed result. If the promise cannot be fulfilled, onRejected
- * is called with the reason. onProgress *may* be called with updates toward
- * this promise's fulfillment.
- * @param {function=} onFulfilled fulfillment handler
- * @param {function=} onRejected rejection handler
- * @param {function=} onProgress @deprecated progress handler
- * @return {Promise} new promise
- */
- Promise.prototype.then = function(onFulfilled, onRejected, onProgress) {
- var parent = this._handler;
- var state = parent.join().state();
-
- if ((typeof onFulfilled !== 'function' && state > 0) ||
- (typeof onRejected !== 'function' && state < 0)) {
- // Short circuit: value will not change, simply share handler
- return new this.constructor(Handler, parent);
- }
-
- var p = this._beget();
- var child = p._handler;
-
- parent.chain(child, parent.receiver, onFulfilled, onRejected, onProgress);
-
- return p;
- };
-
- /**
- * If this promise cannot be fulfilled due to an error, call onRejected to
- * handle the error. Shortcut for .then(undefined, onRejected)
- * @param {function?} onRejected
- * @return {Promise}
- */
- Promise.prototype['catch'] = function(onRejected) {
- return this.then(void 0, onRejected);
- };
-
- /**
- * Creates a new, pending promise of the same type as this promise
- * @private
- * @returns {Promise}
- */
- Promise.prototype._beget = function() {
- return begetFrom(this._handler, this.constructor);
- };
-
- function begetFrom(parent, Promise) {
- var child = new Pending(parent.receiver, parent.join().context);
- return new Promise(Handler, child);
- }
-
- // Array combinators
-
- Promise.all = all;
- Promise.race = race;
- Promise._traverse = traverse;
-
- /**
- * Return a promise that will fulfill when all promises in the
- * input array have fulfilled, or will reject when one of the
- * promises rejects.
- * @param {array} promises array of promises
- * @returns {Promise} promise for array of fulfillment values
- */
- function all(promises) {
- return traverseWith(snd, null, promises);
- }
-
- /**
- * Array<Promise<X>> -> Promise<Array<f(X)>>
- * @private
- * @param {function} f function to apply to each promise's value
- * @param {Array} promises array of promises
- * @returns {Promise} promise for transformed values
- */
- function traverse(f, promises) {
- return traverseWith(tryCatch2, f, promises);
- }
-
- function traverseWith(tryMap, f, promises) {
- var handler = typeof f === 'function' ? mapAt : settleAt;
-
- var resolver = new Pending();
- var pending = promises.length >>> 0;
- var results = new Array(pending);
-
- for (var i = 0, x; i < promises.length && !resolver.resolved; ++i) {
- x = promises[i];
-
- if (x === void 0 && !(i in promises)) {
- --pending;
- continue;
- }
-
- traverseAt(promises, handler, i, x, resolver);
- }
-
- if(pending === 0) {
- resolver.become(new Fulfilled(results));
- }
-
- return new Promise(Handler, resolver);
-
- function mapAt(i, x, resolver) {
- if(!resolver.resolved) {
- traverseAt(promises, settleAt, i, tryMap(f, x, i), resolver);
- }
- }
-
- function settleAt(i, x, resolver) {
- results[i] = x;
- if(--pending === 0) {
- resolver.become(new Fulfilled(results));
- }
- }
- }
-
- function traverseAt(promises, handler, i, x, resolver) {
- if (maybeThenable(x)) {
- var h = getHandlerMaybeThenable(x);
- var s = h.state();
-
- if (s === 0) {
- h.fold(handler, i, void 0, resolver);
- } else if (s > 0) {
- handler(i, h.value, resolver);
- } else {
- resolver.become(h);
- visitRemaining(promises, i+1, h);
- }
- } else {
- handler(i, x, resolver);
- }
- }
-
- Promise._visitRemaining = visitRemaining;
- function visitRemaining(promises, start, handler) {
- for(var i=start; i<promises.length; ++i) {
- markAsHandled(getHandler(promises[i]), handler);
- }
- }
-
- function markAsHandled(h, handler) {
- if(h === handler) {
- return;
- }
-
- var s = h.state();
- if(s === 0) {
- h.visit(h, void 0, h._unreport);
- } else if(s < 0) {
- h._unreport();
- }
- }
-
- /**
- * Fulfill-reject competitive race. Return a promise that will settle
- * to the same state as the earliest input promise to settle.
- *
- * WARNING: The ES6 Promise spec requires that race()ing an empty array
- * must return a promise that is pending forever. This implementation
- * returns a singleton forever-pending promise, the same singleton that is
- * returned by Promise.never(), thus can be checked with ===
- *
- * @param {array} promises array of promises to race
- * @returns {Promise} if input is non-empty, a promise that will settle
- * to the same outcome as the earliest input promise to settle. if empty
- * is empty, returns a promise that will never settle.
- */
- function race(promises) {
- if(typeof promises !== 'object' || promises === null) {
- return reject(new TypeError('non-iterable passed to race()'));
- }
-
- // Sigh, race([]) is untestable unless we return *something*
- // that is recognizable without calling .then() on it.
- return promises.length === 0 ? never()
- : promises.length === 1 ? resolve(promises[0])
- : runRace(promises);
- }
-
- function runRace(promises) {
- var resolver = new Pending();
- var i, x, h;
- for(i=0; i<promises.length; ++i) {
- x = promises[i];
- if (x === void 0 && !(i in promises)) {
- continue;
- }
-
- h = getHandler(x);
- if(h.state() !== 0) {
- resolver.become(h);
- visitRemaining(promises, i+1, h);
- break;
- } else {
- h.visit(resolver, resolver.resolve, resolver.reject);
- }
- }
- return new Promise(Handler, resolver);
- }
-
- // Promise internals
- // Below this, everything is @private
-
- /**
- * Get an appropriate handler for x, without checking for cycles
- * @param {*} x
- * @returns {object} handler
- */
- function getHandler(x) {
- if(isPromise(x)) {
- return x._handler.join();
- }
- return maybeThenable(x) ? getHandlerUntrusted(x) : new Fulfilled(x);
- }
-
- /**
- * Get a handler for thenable x.
- * NOTE: You must only call this if maybeThenable(x) == true
- * @param {object|function|Promise} x
- * @returns {object} handler
- */
- function getHandlerMaybeThenable(x) {
- return isPromise(x) ? x._handler.join() : getHandlerUntrusted(x);
- }
-
- /**
- * Get a handler for potentially untrusted thenable x
- * @param {*} x
- * @returns {object} handler
- */
- function getHandlerUntrusted(x) {
- try {
- var untrustedThen = x.then;
- return typeof untrustedThen === 'function'
- ? new Thenable(untrustedThen, x)
- : new Fulfilled(x);
- } catch(e) {
- return new Rejected(e);
- }
- }
-
- /**
- * Handler for a promise that is pending forever
- * @constructor
- */
- function Handler() {}
-
- Handler.prototype.when
- = Handler.prototype.become
- = Handler.prototype.notify // deprecated
- = Handler.prototype.fail
- = Handler.prototype._unreport
- = Handler.prototype._report
- = noop;
-
- Handler.prototype._state = 0;
-
- Handler.prototype.state = function() {
- return this._state;
- };
-
- /**
- * Recursively collapse handler chain to find the handler
- * nearest to the fully resolved value.
- * @returns {object} handler nearest the fully resolved value
- */
- Handler.prototype.join = function() {
- var h = this;
- while(h.handler !== void 0) {
- h = h.handler;
- }
- return h;
- };
-
- Handler.prototype.chain = function(to, receiver, fulfilled, rejected, progress) {
- this.when({
- resolver: to,
- receiver: receiver,
- fulfilled: fulfilled,
- rejected: rejected,
- progress: progress
- });
- };
-
- Handler.prototype.visit = function(receiver, fulfilled, rejected, progress) {
- this.chain(failIfRejected, receiver, fulfilled, rejected, progress);
- };
-
- Handler.prototype.fold = function(f, z, c, to) {
- this.when(new Fold(f, z, c, to));
- };
-
- /**
- * Handler that invokes fail() on any handler it becomes
- * @constructor
- */
- function FailIfRejected() {}
-
- inherit(Handler, FailIfRejected);
-
- FailIfRejected.prototype.become = function(h) {
- h.fail();
- };
-
- var failIfRejected = new FailIfRejected();
-
- /**
- * Handler that manages a queue of consumers waiting on a pending promise
- * @constructor
- */
- function Pending(receiver, inheritedContext) {
- Promise.createContext(this, inheritedContext);
-
- this.consumers = void 0;
- this.receiver = receiver;
- this.handler = void 0;
- this.resolved = false;
- }
-
- inherit(Handler, Pending);
-
- Pending.prototype._state = 0;
-
- Pending.prototype.resolve = function(x) {
- this.become(getHandler(x));
- };
-
- Pending.prototype.reject = function(x) {
- if(this.resolved) {
- return;
- }
-
- this.become(new Rejected(x));
- };
-
- Pending.prototype.join = function() {
- if (!this.resolved) {
- return this;
- }
-
- var h = this;
-
- while (h.handler !== void 0) {
- h = h.handler;
- if (h === this) {
- return this.handler = cycle();
- }
- }
-
- return h;
- };
-
- Pending.prototype.run = function() {
- var q = this.consumers;
- var handler = this.handler;
- this.handler = this.handler.join();
- this.consumers = void 0;
-
- for (var i = 0; i < q.length; ++i) {
- handler.when(q[i]);
- }
- };
-
- Pending.prototype.become = function(handler) {
- if(this.resolved) {
- return;
- }
-
- this.resolved = true;
- this.handler = handler;
- if(this.consumers !== void 0) {
- tasks.enqueue(this);
- }
-
- if(this.context !== void 0) {
- handler._report(this.context);
- }
- };
-
- Pending.prototype.when = function(continuation) {
- if(this.resolved) {
- tasks.enqueue(new ContinuationTask(continuation, this.handler));
- } else {
- if(this.consumers === void 0) {
- this.consumers = [continuation];
- } else {
- this.consumers.push(continuation);
- }
- }
- };
-
- /**
- * @deprecated
- */
- Pending.prototype.notify = function(x) {
- if(!this.resolved) {
- tasks.enqueue(new ProgressTask(x, this));
- }
- };
-
- Pending.prototype.fail = function(context) {
- var c = typeof context === 'undefined' ? this.context : context;
- this.resolved && this.handler.join().fail(c);
- };
-
- Pending.prototype._report = function(context) {
- this.resolved && this.handler.join()._report(context);
- };
-
- Pending.prototype._unreport = function() {
- this.resolved && this.handler.join()._unreport();
- };
-
- /**
- * Wrap another handler and force it into a future stack
- * @param {object} handler
- * @constructor
- */
- function Async(handler) {
- this.handler = handler;
- }
-
- inherit(Handler, Async);
-
- Async.prototype.when = function(continuation) {
- tasks.enqueue(new ContinuationTask(continuation, this));
- };
-
- Async.prototype._report = function(context) {
- this.join()._report(context);
- };
-
- Async.prototype._unreport = function() {
- this.join()._unreport();
- };
-
- /**
- * Handler that wraps an untrusted thenable and assimilates it in a future stack
- * @param {function} then
- * @param {{then: function}} thenable
- * @constructor
- */
- function Thenable(then, thenable) {
- Pending.call(this);
- tasks.enqueue(new AssimilateTask(then, thenable, this));
- }
-
- inherit(Pending, Thenable);
-
- /**
- * Handler for a fulfilled promise
- * @param {*} x fulfillment value
- * @constructor
- */
- function Fulfilled(x) {
- Promise.createContext(this);
- this.value = x;
- }
-
- inherit(Handler, Fulfilled);
-
- Fulfilled.prototype._state = 1;
-
- Fulfilled.prototype.fold = function(f, z, c, to) {
- runContinuation3(f, z, this, c, to);
- };
-
- Fulfilled.prototype.when = function(cont) {
- runContinuation1(cont.fulfilled, this, cont.receiver, cont.resolver);
- };
-
- var errorId = 0;
-
- /**
- * Handler for a rejected promise
- * @param {*} x rejection reason
- * @constructor
- */
- function Rejected(x) {
- Promise.createContext(this);
-
- this.id = ++errorId;
- this.value = x;
- this.handled = false;
- this.reported = false;
-
- this._report();
- }
-
- inherit(Handler, Rejected);
-
- Rejected.prototype._state = -1;
-
- Rejected.prototype.fold = function(f, z, c, to) {
- to.become(this);
- };
-
- Rejected.prototype.when = function(cont) {
- if(typeof cont.rejected === 'function') {
- this._unreport();
- }
- runContinuation1(cont.rejected, this, cont.receiver, cont.resolver);
- };
-
- Rejected.prototype._report = function(context) {
- tasks.afterQueue(new ReportTask(this, context));
- };
-
- Rejected.prototype._unreport = function() {
- if(this.handled) {
- return;
- }
- this.handled = true;
- tasks.afterQueue(new UnreportTask(this));
- };
-
- Rejected.prototype.fail = function(context) {
- this.reported = true;
- emitRejection('unhandledRejection', this);
- Promise.onFatalRejection(this, context === void 0 ? this.context : context);
- };
-
- function ReportTask(rejection, context) {
- this.rejection = rejection;
- this.context = context;
- }
-
- ReportTask.prototype.run = function() {
- if(!this.rejection.handled && !this.rejection.reported) {
- this.rejection.reported = true;
- emitRejection('unhandledRejection', this.rejection) ||
- Promise.onPotentiallyUnhandledRejection(this.rejection, this.context);
- }
- };
-
- function UnreportTask(rejection) {
- this.rejection = rejection;
- }
-
- UnreportTask.prototype.run = function() {
- if(this.rejection.reported) {
- emitRejection('rejectionHandled', this.rejection) ||
- Promise.onPotentiallyUnhandledRejectionHandled(this.rejection);
- }
- };
-
- // Unhandled rejection hooks
- // By default, everything is a noop
-
- Promise.createContext
- = Promise.enterContext
- = Promise.exitContext
- = Promise.onPotentiallyUnhandledRejection
- = Promise.onPotentiallyUnhandledRejectionHandled
- = Promise.onFatalRejection
- = noop;
-
- // Errors and singletons
-
- var foreverPendingHandler = new Handler();
- var foreverPendingPromise = new Promise(Handler, foreverPendingHandler);
-
- function cycle() {
- return new Rejected(new TypeError('Promise cycle'));
- }
-
- // Task runners
-
- /**
- * Run a single consumer
- * @constructor
- */
- function ContinuationTask(continuation, handler) {
- this.continuation = continuation;
- this.handler = handler;
- }
-
- ContinuationTask.prototype.run = function() {
- this.handler.join().when(this.continuation);
- };
-
- /**
- * Run a queue of progress handlers
- * @constructor
- */
- function ProgressTask(value, handler) {
- this.handler = handler;
- this.value = value;
- }
-
- ProgressTask.prototype.run = function() {
- var q = this.handler.consumers;
- if(q === void 0) {
- return;
- }
-
- for (var c, i = 0; i < q.length; ++i) {
- c = q[i];
- runNotify(c.progress, this.value, this.handler, c.receiver, c.resolver);
- }
- };
-
- /**
- * Assimilate a thenable, sending it's value to resolver
- * @param {function} then
- * @param {object|function} thenable
- * @param {object} resolver
- * @constructor
- */
- function AssimilateTask(then, thenable, resolver) {
- this._then = then;
- this.thenable = thenable;
- this.resolver = resolver;
- }
-
- AssimilateTask.prototype.run = function() {
- var h = this.resolver;
- tryAssimilate(this._then, this.thenable, _resolve, _reject, _notify);
-
- function _resolve(x) { h.resolve(x); }
- function _reject(x) { h.reject(x); }
- function _notify(x) { h.notify(x); }
- };
-
- function tryAssimilate(then, thenable, resolve, reject, notify) {
- try {
- then.call(thenable, resolve, reject, notify);
- } catch (e) {
- reject(e);
- }
- }
-
- /**
- * Fold a handler value with z
- * @constructor
- */
- function Fold(f, z, c, to) {
- this.f = f; this.z = z; this.c = c; this.to = to;
- this.resolver = failIfRejected;
- this.receiver = this;
- }
-
- Fold.prototype.fulfilled = function(x) {
- this.f.call(this.c, this.z, x, this.to);
- };
-
- Fold.prototype.rejected = function(x) {
- this.to.reject(x);
- };
-
- Fold.prototype.progress = function(x) {
- this.to.notify(x);
- };
-
- // Other helpers
-
- /**
- * @param {*} x
- * @returns {boolean} true iff x is a trusted Promise
- */
- function isPromise(x) {
- return x instanceof Promise;
- }
-
- /**
- * Test just enough to rule out primitives, in order to take faster
- * paths in some code
- * @param {*} x
- * @returns {boolean} false iff x is guaranteed *not* to be a thenable
- */
- function maybeThenable(x) {
- return (typeof x === 'object' || typeof x === 'function') && x !== null;
- }
-
- function runContinuation1(f, h, receiver, next) {
- if(typeof f !== 'function') {
- return next.become(h);
- }
-
- Promise.enterContext(h);
- tryCatchReject(f, h.value, receiver, next);
- Promise.exitContext();
- }
-
- function runContinuation3(f, x, h, receiver, next) {
- if(typeof f !== 'function') {
- return next.become(h);
- }
-
- Promise.enterContext(h);
- tryCatchReject3(f, x, h.value, receiver, next);
- Promise.exitContext();
- }
-
- /**
- * @deprecated
- */
- function runNotify(f, x, h, receiver, next) {
- if(typeof f !== 'function') {
- return next.notify(x);
- }
-
- Promise.enterContext(h);
- tryCatchReturn(f, x, receiver, next);
- Promise.exitContext();
- }
-
- function tryCatch2(f, a, b) {
- try {
- return f(a, b);
- } catch(e) {
- return reject(e);
- }
- }
-
- /**
- * Return f.call(thisArg, x), or if it throws return a rejected promise for
- * the thrown exception
- */
- function tryCatchReject(f, x, thisArg, next) {
- try {
- next.become(getHandler(f.call(thisArg, x)));
- } catch(e) {
- next.become(new Rejected(e));
- }
- }
-
- /**
- * Same as above, but includes the extra argument parameter.
- */
- function tryCatchReject3(f, x, y, thisArg, next) {
- try {
- f.call(thisArg, x, y, next);
- } catch(e) {
- next.become(new Rejected(e));
- }
- }
-
- /**
- * @deprecated
- * Return f.call(thisArg, x), or if it throws, *return* the exception
- */
- function tryCatchReturn(f, x, thisArg, next) {
- try {
- next.notify(f.call(thisArg, x));
- } catch(e) {
- next.notify(e);
- }
- }
-
- function inherit(Parent, Child) {
- Child.prototype = objectCreate(Parent.prototype);
- Child.prototype.constructor = Child;
- }
-
- function snd(x, y) {
- return y;
- }
-
- function noop() {}
-
- function initEmitRejection() {
- /*global process, self, CustomEvent*/
- if(typeof process !== 'undefined' && process !== null
- && typeof process.emit === 'function') {
- // Returning falsy here means to call the default
- // onPotentiallyUnhandledRejection API. This is safe even in
- // browserify since process.emit always returns falsy in browserify:
- // https://github.com/defunctzombie/node-process/blob/master/browser.js#L40-L46
- return function(type, rejection) {
- return type === 'unhandledRejection'
- ? process.emit(type, rejection.value, rejection)
- : process.emit(type, rejection);
- };
- } else if(typeof self !== 'undefined' && typeof CustomEvent === 'function') {
- return (function(noop, self, CustomEvent) {
- var hasCustomEvent = false;
- try {
- var ev = new CustomEvent('unhandledRejection');
- hasCustomEvent = ev instanceof CustomEvent;
- } catch (e) {}
-
- return !hasCustomEvent ? noop : function(type, rejection) {
- var ev = new CustomEvent(type, {
- detail: {
- reason: rejection.value,
- key: rejection
- },
- bubbles: false,
- cancelable: true
- });
-
- return !self.dispatchEvent(ev);
- };
- }(noop, self, CustomEvent));
- }
-
- return noop;
- }
-
- return Promise;
- };
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}]},{},[1])
-//# sourceMappingURL=Promise.js.map
-(1)
-});
-;if (typeof systemJSBootstrap !== 'undefined')
- systemJSBootstrap();})();
diff --git a/node_modules/systemjs/dist/system-register-only.js b/node_modules/systemjs/dist/system-register-only.js
deleted file mode 100644
index cb6ed3b38..000000000
--- a/node_modules/systemjs/dist/system-register-only.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
- * SystemJS v0.19.47
- */
-!function(e){function t(e,n){if("string"!=typeof e)throw new TypeError("URL must be a string");var r=String(e).replace(/^\s+|\s+$/g,"").replace(/\\/g,"/").match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@\/?#]*)(?::([^:@\/?#]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);if(!r)throw new RangeError("Invalid URL format");var a=r[1]||"",o=r[2]||"",s=r[3]||"",i=r[4]||"",d=r[5]||"",l=r[6]||"",u=r[7]||"",c=r[8]||"",f=r[9]||"";if(void 0!==n){var m=n instanceof t?n:new t(n),p=!a&&!i&&!o;!p||u||c||(c=m.search),p&&"/"!==u[0]&&(u=u?(!m.host&&!m.username||m.pathname?"":"/")+m.pathname.slice(0,m.pathname.lastIndexOf("/")+1)+u:m.pathname);var h=[];u.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(e){"/.."===e?h.pop():h.push(e)}),u=h.join("").replace(/^\//,"/"===u[0]?"/":""),p&&(l=m.port,d=m.hostname,i=m.host,s=m.password,o=m.username),a||(a=m.protocol)}u=u.replace(/\\/g,"/"),this.origin=i?a+(""!==a||""!==i?"//":"")+i:"",this.href=a+(a&&i||"file:"==a?"//":"")+(""!==o?o+(""!==s?":"+s:"")+"@":"")+i+u+c+f,this.protocol=a,this.username=o,this.password=s,this.host=i,this.hostname=d,this.port=l,this.pathname=u,this.search=c,this.hash=f}e.URLPolyfill=t}("undefined"!=typeof self?self:global),function(e){function t(e,t){if(!e.originalErr)for(var n=((e.message||e)+(e.stack?"\n"+e.stack:"")).toString().split("\n"),r=[],a=0;a<n.length;a++)("undefined"==typeof $__curScript||-1==n[a].indexOf($__curScript.src))&&r.push(n[a]);var o="(SystemJS) "+(r?r.join("\n "):e.message.substr(11))+"\n "+t;y||(o=o.replace(b?/file:\/\/\//g:/file:\/\//g,""));var s=E?new Error(o,e.fileName,e.lineNumber):new Error(o);return s.stack=o,s.originalErr=e.originalErr||e,s}function n(){}function r(t){this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},w(this,"global",{get:function(){return e}})}function a(){r.call(this),this.paths={},this._loader.paths={},M.call(this)}function o(){}function s(e,t){a.prototype[e]=t(a.prototype[e]||function(){})}function i(e){M=e(M||function(){})}function d(e){return"."==e[0]&&(!e[1]||"/"==e[1]||"."==e[1])||"/"==e[0]}function l(e,t){if("."==e[0]){if("/"==e[1]&&"."!=e[2])return(t&&t.substr(0,t.lastIndexOf("/")+1)||S)+e.substr(2)}else if("/"!=e[0]&&-1==e.indexOf(":"))return(t&&t.substr(0,t.lastIndexOf("/")+1)||S)+e;return new j(e,t&&t.replace(/#/g,"%05")||R).href.replace(/%05/g,"#")}function u(e,t){var n,r="",a=0,o=e.paths,s=e._loader.paths;for(var i in o)if(!o.hasOwnProperty||o.hasOwnProperty(i)){var u=o[i];if(u!==s[i]&&(u=o[i]=s[i]=l(o[i],d(o[i])?S:e.baseURL)),-1===i.indexOf("*")){if(t==i)return o[i];if(t.substr(0,i.length-1)==i.substr(0,i.length-1)&&(t.length<i.length||t[i.length-1]==i[i.length-1])&&("/"==o[i][o[i].length-1]||""==o[i]))return o[i].substr(0,o[i].length-1)+(t.length>i.length?(o[i]&&"/"||"")+t.substr(i.length):"")}else{var c=i.split("*");if(c.length>2)throw new TypeError("Only one wildcard in a path is permitted");var f=c[0].length;f>=a&&t.substr(0,c[0].length)==c[0]&&t.substr(t.length-c[1].length)==c[1]&&(a=f,r=i,n=t.substr(c[0].length,t.length-c[1].length-c[0].length))}}var m=o[r];return"string"==typeof n&&(m=m.replace("*",n)),m}function c(e){for(var t=[],n=[],r=0,a=e.length;a>r;r++){var o=x.call(t,e[r]);-1===o?(t.push(e[r]),n.push([r])):n[o].push(r)}return{names:t,indices:n}}function f(t){var n={};if(("object"==typeof t||"function"==typeof t)&&t!==e)if(z)for(var r in t)"default"!==r&&m(n,t,r);else p(n,t);return n["default"]=t,w(n,"__useDefault",{value:!0}),n}function m(e,t,n){try{var r;(r=Object.getOwnPropertyDescriptor(t,n))&&w(e,n,r)}catch(a){return e[n]=t[n],!1}}function p(e,t,n){var r=t&&t.hasOwnProperty;for(var a in t)(!r||t.hasOwnProperty(a))&&(n&&a in e||(e[a]=t[a]));return e}function h(e){var t=e.match(D);return t&&"System.register"==e.substr(t[0].length,15)}function g(){return{name:null,deps:null,originalIndices:null,declare:null,execute:null,executingRequire:!1,declarative:!1,normalizedDeps:null,groupIndex:null,evaluated:!1,module:null,esModule:null,esmExports:!1}}var v="undefined"==typeof window&&"undefined"!=typeof self&&"undefined"!=typeof importScripts,y="undefined"!=typeof window&&"undefined"!=typeof document,b="undefined"!=typeof process&&"undefined"!=typeof process.platform&&!!process.platform.match(/^win/);e.console||(e.console={assert:function(){}});var w,x=Array.prototype.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1};!function(){try{Object.defineProperty({},"a",{})&&(w=Object.defineProperty)}catch(e){w=function(e,t,n){try{e[t]=n.value||n.get.call(e)}catch(r){}}}}();var S,E="_"==new Error(0,"_").fileName;if("undefined"!=typeof document&&document.getElementsByTagName){if(S=document.baseURI,!S){var O=document.getElementsByTagName("base");S=O[0]&&O[0].href||window.location.href}}else"undefined"!=typeof location&&(S=e.location.href);if(S)S=S.split("#")[0].split("?")[0],S=S.substr(0,S.lastIndexOf("/")+1);else{if("undefined"==typeof process||!process.cwd)throw new TypeError("No environment baseURI");S="file://"+(b?"/":"")+process.cwd()+"/",b&&(S=S.replace(/\\/g,"/"))}try{var _="test:"==new e.URL("test:///").protocol}catch(P){}var j=_?e.URL:e.URLPolyfill;w(n.prototype,"toString",{value:function(){return"Module"}}),function(){function e(e){return{status:"loading",name:e||"<Anonymous"+ ++b+">",linkSets:[],dependencies:[],metadata:{}}}function a(e,t,n){return new Promise(l({step:n.address?"fetch":"locate",loader:e,moduleName:t,moduleMetadata:n&&n.metadata||{},moduleSource:n.source,moduleAddress:n.address}))}function o(t,n,r,a){return new Promise(function(e,o){e(t.loaderObj.normalize(n,r,a))}).then(function(n){var r;if(t.modules[n])return r=e(n),r.status="linked",r.module=t.modules[n],r;for(var a=0,o=t.loads.length;o>a;a++)if(r=t.loads[a],r.name==n)return r;return r=e(n),t.loads.push(r),s(t,r),r})}function s(e,t){i(e,t,Promise.resolve().then(function(){return e.loaderObj.locate({name:t.name,metadata:t.metadata})}))}function i(e,t,n){d(e,t,n.then(function(n){return"loading"==t.status?(t.address=n,e.loaderObj.fetch({name:t.name,metadata:t.metadata,address:n})):void 0}))}function d(e,t,n){n.then(function(n){return"loading"==t.status?(t.address=t.address||t.name,Promise.resolve(e.loaderObj.translate({name:t.name,metadata:t.metadata,address:t.address,source:n})).then(function(n){return t.source=n,e.loaderObj.instantiate({name:t.name,metadata:t.metadata,address:t.address,source:n})}).then(function(e){if(void 0===e)throw new TypeError("Declarative modules unsupported in the polyfill.");if("object"!=typeof e)throw new TypeError("Invalid instantiate return value");t.depsList=e.deps||[],t.execute=e.execute}).then(function(){t.dependencies=[];for(var n=t.depsList,r=[],a=0,s=n.length;s>a;a++)(function(n,a){r.push(o(e,n,t.name,t.address).then(function(e){if(t.dependencies[a]={key:n,value:e.name},"linked"!=e.status)for(var r=t.linkSets.concat([]),o=0,s=r.length;s>o;o++)c(r[o],e)}))})(n[a],a);return Promise.all(r)}).then(function(){t.status="loaded";for(var e=t.linkSets.concat([]),n=0,r=e.length;r>n;n++)m(e[n],t)})):void 0})["catch"](function(e){t.status="failed",t.exception=e;for(var n=t.linkSets.concat([]),r=0,a=n.length;a>r;r++)p(n[r],t,e)})}function l(t){return function(n,r){var a=t.loader,o=t.moduleName,l=t.step;if(a.modules[o])throw new TypeError('"'+o+'" already exists in the module table');for(var c,f=0,m=a.loads.length;m>f;f++)if(a.loads[f].name==o&&(c=a.loads[f],"translate"!=l||c.source||(c.address=t.moduleAddress,d(a,c,Promise.resolve(t.moduleSource))),c.linkSets.length&&c.linkSets[0].loads[0].name==c.name))return c.linkSets[0].done.then(function(){n(c)});var p=c||e(o);p.metadata=t.moduleMetadata;var h=u(a,p);a.loads.push(p),n(h.done),"locate"==l?s(a,p):"fetch"==l?i(a,p,Promise.resolve(t.moduleAddress)):(p.address=t.moduleAddress,d(a,p,Promise.resolve(t.moduleSource)))}}function u(e,t){var n={loader:e,loads:[],startingLoad:t,loadingCount:0};return n.done=new Promise(function(e,t){n.resolve=e,n.reject=t}),c(n,t),n}function c(e,t){if("failed"!=t.status){for(var n=0,r=e.loads.length;r>n;n++)if(e.loads[n]==t)return;e.loads.push(t),t.linkSets.push(e),"loaded"!=t.status&&e.loadingCount++;for(var a=e.loader,n=0,r=t.dependencies.length;r>n;n++)if(t.dependencies[n]){var o=t.dependencies[n].value;if(!a.modules[o])for(var s=0,i=a.loads.length;i>s;s++)if(a.loads[s].name==o){c(e,a.loads[s]);break}}}}function f(e){var t=!1;try{y(e,function(n,r){p(e,n,r),t=!0})}catch(n){p(e,null,n),t=!0}return t}function m(e,t){if(e.loadingCount--,!(e.loadingCount>0)){var n=e.startingLoad;if(e.loader.loaderObj.execute===!1){for(var r=[].concat(e.loads),a=0,o=r.length;o>a;a++){var t=r[a];t.module={name:t.name,module:S({}),evaluated:!0},t.status="linked",h(e.loader,t)}return e.resolve(n)}var s=f(e);s||e.resolve(n)}}function p(e,n,r){var a=e.loader;e:if(n)if(e.loads[0].name==n.name)r=t(r,"Error loading "+n.name);else{for(var o=0;o<e.loads.length;o++)for(var s=e.loads[o],i=0;i<s.dependencies.length;i++){var d=s.dependencies[i];if(d.value==n.name){r=t(r,"Error loading "+n.name+' as "'+d.key+'" from '+s.name);break e}}r=t(r,"Error loading "+n.name+" from "+e.loads[0].name)}else r=t(r,"Error linking "+e.loads[0].name);for(var l=e.loads.concat([]),o=0,u=l.length;u>o;o++){var n=l[o];a.loaderObj.failed=a.loaderObj.failed||[],-1==x.call(a.loaderObj.failed,n)&&a.loaderObj.failed.push(n);var c=x.call(n.linkSets,e);if(n.linkSets.splice(c,1),0==n.linkSets.length){var f=x.call(e.loader.loads,n);-1!=f&&e.loader.loads.splice(f,1)}}e.reject(r)}function h(e,t){if(e.loaderObj.trace){e.loaderObj.loads||(e.loaderObj.loads={});var n={};t.dependencies.forEach(function(e){n[e.key]=e.value}),e.loaderObj.loads[t.name]={name:t.name,deps:t.dependencies.map(function(e){return e.key}),depMap:n,address:t.address,metadata:t.metadata,source:t.source}}t.name&&(e.modules[t.name]=t.module);var r=x.call(e.loads,t);-1!=r&&e.loads.splice(r,1);for(var a=0,o=t.linkSets.length;o>a;a++)r=x.call(t.linkSets[a].loads,t),-1!=r&&t.linkSets[a].loads.splice(r,1);t.linkSets.splice(0,t.linkSets.length)}function g(e,t,r){try{var a=t.execute()}catch(o){return void r(t,o)}return a&&a instanceof n?a:void r(t,new TypeError("Execution must define a Module instance"))}function v(e,t,n){var r=e._loader.importPromises;return r[t]=n.then(function(e){return r[t]=void 0,e},function(e){throw r[t]=void 0,e})}function y(e,t){var n=e.loader;if(e.loads.length)for(var r=e.loads.concat([]),a=0;a<r.length;a++){var o=r[a],s=g(e,o,t);if(!s)return;o.module={name:o.name,module:s},o.status="linked",h(n,o)}}var b=0;r.prototype={constructor:r,define:function(e,t,n){if(this._loader.importPromises[e])throw new TypeError("Module is already loading.");return v(this,e,new Promise(l({step:"translate",loader:this._loader,moduleName:e,moduleMetadata:n&&n.metadata||{},moduleSource:t,moduleAddress:n&&n.address})))},"delete":function(e){var t=this._loader;return delete t.importPromises[e],delete t.moduleRecords[e],t.modules[e]?delete t.modules[e]:!1},get:function(e){return this._loader.modules[e]?this._loader.modules[e].module:void 0},has:function(e){return!!this._loader.modules[e]},"import":function(e,t,n){"object"==typeof t&&(t=t.name);var r=this;return Promise.resolve(r.normalize(e,t)).then(function(e){var t=r._loader;return t.modules[e]?t.modules[e].module:t.importPromises[e]||v(r,e,a(t,e,{}).then(function(n){return delete t.importPromises[e],n.module.module}))})},load:function(e){var t=this._loader;return t.modules[e]?Promise.resolve():(t.importPromises[e]||v(this,e,new Promise(l({step:"locate",loader:t,moduleName:e,moduleMetadata:{},moduleSource:void 0,moduleAddress:void 0})).then(function(n){return delete t.importPromises[e],n.module.module}))).then(function(){})},module:function(t,n){var r=e();r.address=n&&n.address;var a=u(this._loader,r),o=Promise.resolve(t),s=this._loader,i=a.done.then(function(){return r.module.module});return d(s,r,o),i},newModule:function(e){if("object"!=typeof e)throw new TypeError("Expected object");var t=new n,r=[];if(Object.getOwnPropertyNames&&null!=e)r=Object.getOwnPropertyNames(e);else for(var a in e)r.push(a);for(var o=0;o<r.length;o++)(function(n){w(t,n,{configurable:!1,enumerable:!0,get:function(){return e[n]},set:function(){throw new Error("Module exports cannot be changed externally.")}})})(r[o]);return Object.freeze&&Object.freeze(t),t},set:function(e,t){if(!(t instanceof n))throw new TypeError("Loader.set("+e+", module) must be a module");this._loader.modules[e]={module:t}},normalize:function(e,t,n){},locate:function(e){return e.name},fetch:function(e){},translate:function(e){return e.source},instantiate:function(e){}};var S=r.prototype.newModule}();var k;o.prototype=r.prototype,a.prototype=new o,a.prototype.constructor=a;var M,I=/^[^\/]+:\/\//,R=new j(S),z=!0;try{Object.getOwnPropertyDescriptor({a:0},"a")}catch(P){z=!1}var I=/^([^\/]+:\/\/|\/)/;a.prototype.normalize=function(e,t,n){return e=e.match(I)||"."==e[0]?new j(e,t||S).href:new j(u(this,e)||e,S).href},function(){function t(){if(i&&"interactive"===i.script.readyState)return i.load;for(var e=0;e<u.length;e++)if("interactive"==u[e].script.readyState)return i=u[e],i.load}function n(e,t){return new Promise(function(e,n){t.metadata.integrity&&n(new Error("Subresource integrity checking is not supported in web workers.")),d=t;try{importScripts(t.address)}catch(r){d=null,n(r)}d=null,t.metadata.entry||n(new Error(t.address+" did not call System.register or AMD define. If loading a global, ensure the meta format is set to global.")),e("")})}if("undefined"!=typeof document)var r=document.getElementsByTagName("head")[0];var a,o,i,d=null,l=r&&function(){var e=document.createElement("script"),t="undefined"!=typeof opera&&"[object Opera]"===opera.toString();return e.attachEvent&&!(e.attachEvent.toString&&e.attachEvent.toString().indexOf("[native code")<0)&&!t}(),u=[],c=0,f=[];s("pushRegister_",function(e){return function(n){return e.call(this,n)?!1:(d?this.reduceRegister_(d,n):l?this.reduceRegister_(t(),n):c?f.push(n):this.reduceRegister_(null,n),!0)}}),s("fetch",function(t){return function(s){var d=this;return"json"!=s.metadata.format&&s.metadata.scriptLoad&&(y||v)?v?n(d,s):new Promise(function(t,n){function m(e){if(!g.readyState||"loaded"==g.readyState||"complete"==g.readyState){if(c--,s.metadata.entry||f.length){if(!l){for(var r=0;r<f.length;r++)d.reduceRegister_(s,f[r]);f=[]}}else d.reduceRegister_(s);h(),s.metadata.entry||s.metadata.bundle||n(new Error(s.name+" did not call System.register or AMD define. If loading a global module configure the global name via the meta exports property for script injection support.")),t("")}}function p(e){h(),n(new Error("Unable to load script "+s.address))}function h(){if(e.System=a,e.require=o,g.detachEvent){g.detachEvent("onreadystatechange",m);for(var t=0;t<u.length;t++)u[t].script==g&&(i&&i.script==g&&(i=null),u.splice(t,1))}else g.removeEventListener("load",m,!1),g.removeEventListener("error",p,!1);r.removeChild(g)}var g=document.createElement("script");g.async=!0,s.metadata.crossOrigin&&(g.crossOrigin=s.metadata.crossOrigin),s.metadata.integrity&&g.setAttribute("integrity",s.metadata.integrity),l?(g.attachEvent("onreadystatechange",m),u.push({script:g,load:s})):(g.addEventListener("load",m,!1),g.addEventListener("error",p,!1)),c++,a=e.System,o=e.require,g.src=s.address,r.appendChild(g)}):t.call(this,s)}})}();var D=/^(\s*\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)*\s*/;!function(){function t(e,n,r){if(r[e.groupIndex]=r[e.groupIndex]||[],-1==x.call(r[e.groupIndex],e)){r[e.groupIndex].push(e);for(var a=0,o=e.normalizedDeps.length;o>a;a++){var s=e.normalizedDeps[a],i=n.defined[s];if(i&&!i.evaluated){var d=e.groupIndex+(i.declarative!=e.declarative);if(null===i.groupIndex||i.groupIndex<d){if(null!==i.groupIndex&&(r[i.groupIndex].splice(x.call(r[i.groupIndex],i),1),0==r[i.groupIndex].length))throw new Error("Mixed dependency cycle detected");i.groupIndex=d}t(i,n,r)}}}}function r(e,n,r){if(!n.module){n.groupIndex=0;var a=[];t(n,r,a);for(var o=!!n.declarative==a.length%2,s=a.length-1;s>=0;s--){for(var i=a[s],d=0;d<i.length;d++){var u=i[d];o?l(u,r):m(u,r)}o=!o}}}function o(){}function d(e,t){return t[e]||(t[e]={name:e,dependencies:[],exports:new o,importers:[]})}function l(t,n){if(!t.module){var r=n._loader.moduleRecords,a=t.module=d(t.name,r),o=t.module.exports,s=t.declare.call(e,function(e,t){if(a.locked=!0,"object"==typeof e)for(var n in e)o[n]=e[n];else o[e]=t;for(var r=0,s=a.importers.length;s>r;r++){var i=a.importers[r];if(!i.locked){var d=x.call(i.dependencies,a),l=i.setters[d];l&&l(o)}}return a.locked=!1,t},{id:t.name});if("function"==typeof s&&(s={setters:[],execute:s}),s=s||{setters:[],execute:function(){}},a.setters=s.setters,a.execute=s.execute,!a.setters||!a.execute)throw new TypeError("Invalid System.register form for "+t.name);for(var i=0,u=t.normalizedDeps.length;u>i;i++){var c,f=t.normalizedDeps[i],m=n.defined[f],p=r[f];p?c=p.exports:m&&!m.declarative?c=m.esModule:m?(l(m,n),p=m.module,c=p.exports):c=n.get(f),p&&p.importers?(p.importers.push(a),a.dependencies.push(p)):a.dependencies.push(null);for(var h=t.originalIndices[i],g=0,v=h.length;v>g;++g){var y=h[g];a.setters[y]&&a.setters[y](c)}}}}function u(e,t){var n,r=t.defined[e];if(r)r.declarative?p(e,r,[],t):r.evaluated||m(r,t),n=r.module.exports;else if(n=t.get(e),!n)throw new Error("Unable to load dependency "+e+".");return(!r||r.declarative)&&n&&n.__useDefault?n["default"]:n}function m(t,r){if(!t.module){var a={},o=t.module={exports:a,id:t.name};if(!t.executingRequire)for(var s=0,i=t.normalizedDeps.length;i>s;s++){var d=t.normalizedDeps[s],l=r.defined[d];l&&m(l,r)}t.evaluated=!0;var c=t.execute.call(e,function(e){for(var n=0,a=t.deps.length;a>n;n++)if(t.deps[n]==e)return u(t.normalizedDeps[n],r);var o=r.normalizeSync(e,t.name);if(-1!=x.call(t.normalizedDeps,o))return u(o,r);throw new Error("Module "+e+" not declared as a dependency of "+t.name)},a,o);void 0!==c&&(o.exports=c),a=o.exports,a&&(a.__esModule||a instanceof n)?t.esModule=r.newModule(a):t.esmExports&&a!==e?t.esModule=r.newModule(f(a)):t.esModule=r.newModule({"default":a,__useDefault:!0})}}function p(t,n,r,a){if(n&&!n.evaluated&&n.declarative){r.push(t);for(var o=0,s=n.normalizedDeps.length;s>o;o++){var i=n.normalizedDeps[o];-1==x.call(r,i)&&(a.defined[i]?p(i,a.defined[i],r,a):a.get(i))}n.evaluated||(n.evaluated=!0,n.module.execute.call(e))}}a.prototype.register=function(e,t,n){if("string"!=typeof e&&(n=t,t=e,e=null),"boolean"==typeof n)return this.registerDynamic.apply(this,arguments);var r=g();r.name=e&&(this.decanonicalize||this.normalize).call(this,e),r.declarative=!0,r.deps=t,r.declare=n,this.pushRegister_({amd:!1,entry:r})},a.prototype.registerDynamic=function(e,t,n,r){"string"!=typeof e&&(r=n,n=t,t=e,e=null);var a=g();a.name=e&&(this.decanonicalize||this.normalize).call(this,e),a.deps=t,a.execute=r,a.executingRequire=n,this.pushRegister_({amd:!1,entry:a})},s("reduceRegister_",function(){return function(e,t){if(t){var n=t.entry,r=e&&e.metadata;if(n.name&&(n.name in this.defined||(this.defined[n.name]=n),r&&(r.bundle=!0)),!n.name||e&&!r.entry&&n.name==e.name){if(!r)throw new TypeError("Invalid System.register call. Anonymous System.register calls can only be made by modules loaded by SystemJS.import and not via script tags.");if(r.entry)throw"register"==r.format?new Error("Multiple anonymous System.register calls in module "+e.name+". If loading a bundle, ensure all the System.register calls are named."):new Error("Module "+e.name+" interpreted as "+r.format+" module format, but called System.register.");r.format||(r.format="register"),r.entry=n}}}}),i(function(e){return function(){e.call(this),this.defined={},this._loader.moduleRecords={}}}),w(o,"toString",{value:function(){return"Module"}}),s("delete",function(e){return function(t){return delete this._loader.moduleRecords[t],delete this.defined[t],e.call(this,t)}}),s("fetch",function(e){return function(t){return this.defined[t.name]?(t.metadata.format="defined",""):(t.metadata.deps=t.metadata.deps||[],e.call(this,t))}}),s("translate",function(e){return function(t){return t.metadata.deps=t.metadata.deps||[],Promise.resolve(e.apply(this,arguments)).then(function(e){return("register"==t.metadata.format||"system"==t.metadata.format||!t.metadata.format&&h(t.source))&&(t.metadata.format="register"),e})}}),s("load",function(e){return function(t){var n=this,a=n.defined[t];return!a||a.deps.length?e.apply(this,arguments):(a.originalIndices=a.normalizedDeps=[],r(t,a,n),p(t,a,[],n),a.esModule||(a.esModule=n.newModule(a.module.exports)),n.trace||(n.defined[t]=void 0),n.set(t,a.esModule),Promise.resolve())}}),s("instantiate",function(e){return function(t){"detect"==t.metadata.format&&(t.metadata.format=void 0),e.call(this,t);var n,a=this;if(a.defined[t.name])n=a.defined[t.name],n.declarative||(n.deps=n.deps.concat(t.metadata.deps)),n.deps=n.deps.concat(t.metadata.deps);else if(t.metadata.entry)n=t.metadata.entry,n.deps=n.deps.concat(t.metadata.deps);else if(!(a.builder&&t.metadata.bundle||"register"!=t.metadata.format&&"esm"!=t.metadata.format&&"es6"!=t.metadata.format)){if("undefined"!=typeof __exec&&__exec.call(a,t),!t.metadata.entry&&!t.metadata.bundle)throw new Error(t.name+" detected as "+t.metadata.format+" but didn't execute.");n=t.metadata.entry,n&&t.metadata.deps&&(n.deps=n.deps.concat(t.metadata.deps))}n||(n=g(),n.deps=t.metadata.deps,n.execute=function(){}),a.defined[t.name]=n;var o=c(n.deps);n.deps=o.names,n.originalIndices=o.indices,n.name=t.name,n.esmExports=t.metadata.esmExports!==!1;for(var s=[],i=0,d=n.deps.length;d>i;i++)s.push(Promise.resolve(a.normalize(n.deps[i],t.name)));return Promise.all(s).then(function(e){return n.normalizedDeps=e,{deps:n.deps,execute:function(){return r(t.name,n,a),p(t.name,n,[],a),n.esModule||(n.esModule=a.newModule(n.module.exports)),a.trace||(a.defined[t.name]=void 0),n.esModule}}})}})}(),function(){i(function(e){return function(){e.call(this),this.bundles={},this._loader.loadedBundles={}}}),s("locate",function(e){return function(t){var n=this,r=!1;if(!(t.name in n.defined))for(var a in n.bundles){for(var o=0;o<n.bundles[a].length;o++){var s=n.bundles[a][o];if(s==t.name){r=!0;break}if(-1!=s.indexOf("*")){var i=s.split("*");if(2!=i.length){n.bundles[a].splice(o--,1);continue}if(t.name.substring(0,i[0].length)==i[0]&&t.name.substr(t.name.length-i[1].length,i[1].length)==i[1]&&-1==t.name.substr(i[0].length,t.name.length-i[1].length-i[0].length).indexOf("/")){r=!0;break}}}if(r)return n["import"](a).then(function(){return e.call(n,t)})}return e.call(n,t)}})}(),i(function(t){return function(){t.apply(this,arguments),e.define=this.amdDefine}}),s("fetch",function(e){return function(t){return t.metadata.scriptLoad=!0,e.call(this,t)}}),k=new a,e.SystemJS=k,k.version="0.19.47 Register Only","object"==typeof module&&module.exports&&"object"==typeof exports&&(module.exports=k),e.System=k}("undefined"!=typeof self?self:global);
-//# sourceMappingURL=system-register-only.js.map
diff --git a/node_modules/systemjs/dist/system-register-only.js.map b/node_modules/systemjs/dist/system-register-only.js.map
deleted file mode 100644
index 78f2b4516..000000000
--- a/node_modules/systemjs/dist/system-register-only.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["system-register-only.src.js"],"names":["global","URLPolyfill","url","baseURL","TypeError","m","String","replace","match","RangeError","protocol","username","password","host","hostname","port","pathname","search","hash","undefined","base","flag","slice","lastIndexOf","output","p","pop","push","join","this","origin","href","self","__global","addToError","err","msg","originalErr","stack","message","toString","split","newStack","i","length","$__curScript","indexOf","src","newMsg","substr","isBrowser","isWindows","newErr","errArgs","Error","fileName","lineNumber","Module","Loader","options","_loader","loaderObj","loads","modules","importPromises","moduleRecords","defineProperty","get","SystemJSLoader","call","paths","systemJSConstructor","SystemProto","hook","name","prototype","hookConstructor","isRel","urlResolve","parent","baseURI","URL","baseURIObj","applyPaths","loader","wildcard","pathMatch","maxWildcardPrefixLen","pathsCache","hasOwnProperty","path","pathParts","wildcardPrefixLen","outPath","group","deps","names","indices","l","index","getESModule","exports","esModule","getOwnPropertyDescriptor","defineOrCopyProperty","extend","value","targetObj","sourceObj","propName","d","Object","ex","a","b","prepend","detectRegisterFormat","source","leadingCommentAndMeta","leadingCommentAndMetaRegEx","createEntry","originalIndices","declare","execute","executingRequire","declarative","normalizedDeps","groupIndex","evaluated","module","esmExports","isWorker","window","importScripts","document","process","platform","console","assert","Array","item","thisLen","e","obj","prop","opt","getElementsByTagName","bases","location","cwd","nativeURL","createLoad","status","anonCnt","linkSets","dependencies","metadata","loadModule","Promise","asyncStartLoadPartwayThrough","step","address","moduleName","moduleMetadata","moduleSource","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","reject","normalize","then","load","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","depsList","loadPromises","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","j","doLink","error","link","_newModule","finishLoad","abrupt","checkError","pLoad","dep","failed","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","map","loadIndex","doDynamicExecute","linkError","createImportPromise","promise","constructor","define","delete","has","import","parentName","parentAddress","sourcePromise","newModule","pNames","getOwnPropertyNames","configurable","enumerable","set","freeze","referrerName","referrerAddress","System","absURLRegEx","getInteractiveScriptLoad","interactiveScript","script","readyState","interactiveLoadingScripts","webWorkerImport","integrity","workerLoad","entry","head","curSystem","curRequire","ieEvents","s","createElement","isOpera","opera","attachEvent","loadingCnt","registerQueue","pushRegister","register","reduceRegister_","format","scriptLoad","complete","evt","cleanup","bundle","require","detachEvent","removeEventListener","removeChild","async","crossOrigin","setAttribute","addEventListener","appendChild","buildGroups","groups","depName","depEntry","defined","depGroupIndex","startEntry","curGroupDeclarative","linkDeclarativeModule","linkDynamicModule","ModuleRecord","getOrCreateModuleRecord","importers","declaration","locked","importerModule","importerIndex","setter","setters","id","depExports","depModule","len","getModule","ensureEvaluated","__useDefault","nameNormalized","normalizeSync","__esModule","default","seen","registerDynamic","apply","arguments","decanonicalize","pushRegister_","amd","curMeta","del","doLoad","normalized","builder","__exec","grouped","normalizePromises","bundles","loadedBundles","matched","curModule","parts","substring","amdDefine","SystemJS","version"],"mappings":"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"} \ No newline at end of file
diff --git a/node_modules/systemjs/dist/system-register-only.src.js b/node_modules/systemjs/dist/system-register-only.src.js
deleted file mode 100644
index e826a2db4..000000000
--- a/node_modules/systemjs/dist/system-register-only.src.js
+++ /dev/null
@@ -1,2199 +0,0 @@
-/*
- * SystemJS v0.19.47
- */
-// from https://gist.github.com/Yaffle/1088850
-(function(global) {
-function URLPolyfill(url, baseURL) {
- if (typeof url != 'string')
- throw new TypeError('URL must be a string');
- var m = String(url).replace(/^\s+|\s+$/g, "").replace(/\\/g, '/').match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@\/?#]*)(?::([^:@\/?#]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);
- if (!m)
- throw new RangeError('Invalid URL format');
- var protocol = m[1] || "";
- var username = m[2] || "";
- var password = m[3] || "";
- var host = m[4] || "";
- var hostname = m[5] || "";
- var port = m[6] || "";
- var pathname = m[7] || "";
- var search = m[8] || "";
- var hash = m[9] || "";
- if (baseURL !== undefined) {
- var base = baseURL instanceof URLPolyfill ? baseURL : new URLPolyfill(baseURL);
- var flag = !protocol && !host && !username;
- if (flag && !pathname && !search)
- search = base.search;
- if (flag && pathname[0] !== "/")
- pathname = (pathname ? (((base.host || base.username) && !base.pathname ? "/" : "") + base.pathname.slice(0, base.pathname.lastIndexOf("/") + 1) + pathname) : base.pathname);
- // dot segments removal
- var output = [];
- pathname.replace(/^(\.\.?(\/|$))+/, "")
- .replace(/\/(\.(\/|$))+/g, "/")
- .replace(/\/\.\.$/, "/../")
- .replace(/\/?[^\/]*/g, function (p) {
- if (p === "/..")
- output.pop();
- else
- output.push(p);
- });
- pathname = output.join("").replace(/^\//, pathname[0] === "/" ? "/" : "");
- if (flag) {
- port = base.port;
- hostname = base.hostname;
- host = base.host;
- password = base.password;
- username = base.username;
- }
- if (!protocol)
- protocol = base.protocol;
- }
-
- // convert URLs to use / always
- pathname = pathname.replace(/\\/g, '/');
-
- this.origin = host ? protocol + (protocol !== "" || host !== "" ? "//" : "") + host : "";
- this.href = protocol + (protocol && host || protocol == "file:" ? "//" : "") + (username !== "" ? username + (password !== "" ? ":" + password : "") + "@" : "") + host + pathname + search + hash;
- this.protocol = protocol;
- this.username = username;
- this.password = password;
- this.host = host;
- this.hostname = hostname;
- this.port = port;
- this.pathname = pathname;
- this.search = search;
- this.hash = hash;
-}
-global.URLPolyfill = URLPolyfill;
-})(typeof self != 'undefined' ? self : global);
-(function(__global) {
-
- var isWorker = typeof window == 'undefined' && typeof self != 'undefined' && typeof importScripts != 'undefined';
- var isBrowser = typeof window != 'undefined' && typeof document != 'undefined';
- var isWindows = typeof process != 'undefined' && typeof process.platform != 'undefined' && !!process.platform.match(/^win/);
-
- if (!__global.console)
- __global.console = { assert: function() {} };
-
- // IE8 support
- var indexOf = Array.prototype.indexOf || function(item) {
- for (var i = 0, thisLen = this.length; i < thisLen; i++) {
- if (this[i] === item) {
- return i;
- }
- }
- return -1;
- };
-
- var defineProperty;
- (function () {
- try {
- if (!!Object.defineProperty({}, 'a', {}))
- defineProperty = Object.defineProperty;
- }
- catch (e) {
- defineProperty = function(obj, prop, opt) {
- try {
- obj[prop] = opt.value || opt.get.call(obj);
- }
- catch(e) {}
- }
- }
- })();
-
- var errArgs = new Error(0, '_').fileName == '_';
-
- function addToError(err, msg) {
- // parse the stack removing loader code lines for simplification
- if (!err.originalErr) {
- var stack = ((err.message || err) + (err.stack ? '\n' + err.stack : '')).toString().split('\n');
- var newStack = [];
- for (var i = 0; i < stack.length; i++) {
- if (typeof $__curScript == 'undefined' || stack[i].indexOf($__curScript.src) == -1)
- newStack.push(stack[i]);
- }
- }
-
- var newMsg = '(SystemJS) ' + (newStack ? newStack.join('\n\t') : err.message.substr(11)) + '\n\t' + msg;
-
- // Convert file:/// URLs to paths in Node
- if (!isBrowser)
- newMsg = newMsg.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, '');
-
- var newErr = errArgs ? new Error(newMsg, err.fileName, err.lineNumber) : new Error(newMsg);
-
- newErr.stack = newMsg;
-
- // track the original error
- newErr.originalErr = err.originalErr || err;
-
- return newErr;
- }
-
- function __eval(source, debugName, context) {
- try {
- new Function(source).call(context);
- }
- catch(e) {
- throw addToError(e, 'Evaluating ' + debugName);
- }
- }
-
- var baseURI;
-
- // environent baseURI detection
- if (typeof document != 'undefined' && document.getElementsByTagName) {
- baseURI = document.baseURI;
-
- if (!baseURI) {
- var bases = document.getElementsByTagName('base');
- baseURI = bases[0] && bases[0].href || window.location.href;
- }
- }
- else if (typeof location != 'undefined') {
- baseURI = __global.location.href;
- }
-
- // sanitize out the hash and querystring
- if (baseURI) {
- baseURI = baseURI.split('#')[0].split('?')[0];
- baseURI = baseURI.substr(0, baseURI.lastIndexOf('/') + 1);
- }
- else if (typeof process != 'undefined' && process.cwd) {
- baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd() + '/';
- if (isWindows)
- baseURI = baseURI.replace(/\\/g, '/');
- }
- else {
- throw new TypeError('No environment baseURI');
- }
-
- try {
- var nativeURL = new __global.URL('test:///').protocol == 'test:';
- }
- catch(e) {}
-
- var URL = nativeURL ? __global.URL : __global.URLPolyfill;
-
-/*
-*********************************************************************************************
-
- Dynamic Module Loader Polyfill
-
- - Implemented exactly to the former 2014-08-24 ES6 Specification Draft Rev 27, Section 15
- http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27
-
- - Functions are commented with their spec numbers, with spec differences commented.
-
- - Spec bugs are commented in this code with links.
-
- - Abstract functions have been combined where possible, and their associated functions
- commented.
-
- - Realm implementation is entirely omitted.
-
-*********************************************************************************************
-*/
-
-function Module() {}
-// http://www.ecma-international.org/ecma-262/6.0/#sec-@@tostringtag
-defineProperty(Module.prototype, 'toString', {
- value: function() {
- return 'Module';
- }
-});
-function Loader(options) {
- this._loader = {
- loaderObj: this,
- loads: [],
- modules: {},
- importPromises: {},
- moduleRecords: {}
- };
-
- // 26.3.3.6
- defineProperty(this, 'global', {
- get: function() {
- return __global;
- }
- });
-
- // 26.3.3.13 realm not implemented
-}
-
-(function() {
-
-// Some Helpers
-
-// logs a linkset snapshot for debugging
-/* function snapshot(loader) {
- console.log('---Snapshot---');
- for (var i = 0; i < loader.loads.length; i++) {
- var load = loader.loads[i];
- var linkSetLog = ' ' + load.name + ' (' + load.status + '): ';
-
- for (var j = 0; j < load.linkSets.length; j++) {
- linkSetLog += '{' + logloads(load.linkSets[j].loads) + '} ';
- }
- console.log(linkSetLog);
- }
- console.log('');
-}
-function logloads(loads) {
- var log = '';
- for (var k = 0; k < loads.length; k++)
- log += loads[k].name + (k != loads.length - 1 ? ' ' : '');
- return log;
-} */
-
-
-/* function checkInvariants() {
- // see https://bugs.ecmascript.org/show_bug.cgi?id=2603#c1
-
- var loads = System._loader.loads;
- var linkSets = [];
-
- for (var i = 0; i < loads.length; i++) {
- var load = loads[i];
- console.assert(load.status == 'loading' || load.status == 'loaded', 'Each load is loading or loaded');
-
- for (var j = 0; j < load.linkSets.length; j++) {
- var linkSet = load.linkSets[j];
-
- for (var k = 0; k < linkSet.loads.length; k++)
- console.assert(loads.indexOf(linkSet.loads[k]) != -1, 'linkSet loads are a subset of loader loads');
-
- if (linkSets.indexOf(linkSet) == -1)
- linkSets.push(linkSet);
- }
- }
-
- for (var i = 0; i < loads.length; i++) {
- var load = loads[i];
- for (var j = 0; j < linkSets.length; j++) {
- var linkSet = linkSets[j];
-
- if (linkSet.loads.indexOf(load) != -1)
- console.assert(load.linkSets.indexOf(linkSet) != -1, 'linkSet contains load -> load contains linkSet');
-
- if (load.linkSets.indexOf(linkSet) != -1)
- console.assert(linkSet.loads.indexOf(load) != -1, 'load contains linkSet -> linkSet contains load');
- }
- }
-
- for (var i = 0; i < linkSets.length; i++) {
- var linkSet = linkSets[i];
- for (var j = 0; j < linkSet.loads.length; j++) {
- var load = linkSet.loads[j];
-
- for (var k = 0; k < load.dependencies.length; k++) {
- var depName = load.dependencies[k].value;
- var depLoad;
- for (var l = 0; l < loads.length; l++) {
- if (loads[l].name != depName)
- continue;
- depLoad = loads[l];
- break;
- }
-
- // loading records are allowed not to have their dependencies yet
- // if (load.status != 'loading')
- // console.assert(depLoad, 'depLoad found');
-
- // console.assert(linkSet.loads.indexOf(depLoad) != -1, 'linkset contains all dependencies');
- }
- }
- }
-} */
-
- // 15.2.3 - Runtime Semantics: Loader State
-
- // 15.2.3.11
- function createLoaderLoad(object) {
- return {
- // modules is an object for ES5 implementation
- modules: {},
- loads: [],
- loaderObj: object
- };
- }
-
- // 15.2.3.2 Load Records and LoadRequest Objects
-
- var anonCnt = 0;
-
- // 15.2.3.2.1
- function createLoad(name) {
- return {
- status: 'loading',
- name: name || '<Anonymous' + ++anonCnt + '>',
- linkSets: [],
- dependencies: [],
- metadata: {}
- };
- }
-
- // 15.2.3.2.2 createLoadRequestObject, absorbed into calling functions
-
- // 15.2.4
-
- // 15.2.4.1
- function loadModule(loader, name, options) {
- return new Promise(asyncStartLoadPartwayThrough({
- step: options.address ? 'fetch' : 'locate',
- loader: loader,
- moduleName: name,
- // allow metadata for import https://bugs.ecmascript.org/show_bug.cgi?id=3091
- moduleMetadata: options && options.metadata || {},
- moduleSource: options.source,
- moduleAddress: options.address
- }));
- }
-
- // 15.2.4.2
- function requestLoad(loader, request, refererName, refererAddress) {
- // 15.2.4.2.1 CallNormalize
- return new Promise(function(resolve, reject) {
- resolve(loader.loaderObj.normalize(request, refererName, refererAddress));
- })
- // 15.2.4.2.2 GetOrCreateLoad
- .then(function(name) {
- var load;
- if (loader.modules[name]) {
- load = createLoad(name);
- load.status = 'linked';
- // https://bugs.ecmascript.org/show_bug.cgi?id=2795
- load.module = loader.modules[name];
- return load;
- }
-
- for (var i = 0, l = loader.loads.length; i < l; i++) {
- load = loader.loads[i];
- if (load.name != name)
- continue;
- return load;
- }
-
- load = createLoad(name);
- loader.loads.push(load);
-
- proceedToLocate(loader, load);
-
- return load;
- });
- }
-
- // 15.2.4.3
- function proceedToLocate(loader, load) {
- proceedToFetch(loader, load,
- Promise.resolve()
- // 15.2.4.3.1 CallLocate
- .then(function() {
- return loader.loaderObj.locate({ name: load.name, metadata: load.metadata });
- })
- );
- }
-
- // 15.2.4.4
- function proceedToFetch(loader, load, p) {
- proceedToTranslate(loader, load,
- p
- // 15.2.4.4.1 CallFetch
- .then(function(address) {
- // adjusted, see https://bugs.ecmascript.org/show_bug.cgi?id=2602
- if (load.status != 'loading')
- return;
- load.address = address;
-
- return loader.loaderObj.fetch({ name: load.name, metadata: load.metadata, address: address });
- })
- );
- }
-
- // 15.2.4.5
- function proceedToTranslate(loader, load, p) {
- p
- // 15.2.4.5.1 CallTranslate
- .then(function(source) {
- if (load.status != 'loading')
- return;
-
- load.address = load.address || load.name;
-
- return Promise.resolve(loader.loaderObj.translate({ name: load.name, metadata: load.metadata, address: load.address, source: source }))
-
- // 15.2.4.5.2 CallInstantiate
- .then(function(source) {
- load.source = source;
- return loader.loaderObj.instantiate({ name: load.name, metadata: load.metadata, address: load.address, source: source });
- })
-
- // 15.2.4.5.3 InstantiateSucceeded
- .then(function(instantiateResult) {
- if (instantiateResult === undefined)
- throw new TypeError('Declarative modules unsupported in the polyfill.');
-
- if (typeof instantiateResult != 'object')
- throw new TypeError('Invalid instantiate return value');
-
- load.depsList = instantiateResult.deps || [];
- load.execute = instantiateResult.execute;
- })
- // 15.2.4.6 ProcessLoadDependencies
- .then(function() {
- load.dependencies = [];
- var depsList = load.depsList;
-
- var loadPromises = [];
- for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) {
- loadPromises.push(
- requestLoad(loader, request, load.name, load.address)
-
- // 15.2.4.6.1 AddDependencyLoad (load is parentLoad)
- .then(function(depLoad) {
-
- // adjusted from spec to maintain dependency order
- // this is due to the System.register internal implementation needs
- load.dependencies[index] = {
- key: request,
- value: depLoad.name
- };
-
- if (depLoad.status != 'linked') {
- var linkSets = load.linkSets.concat([]);
- for (var i = 0, l = linkSets.length; i < l; i++)
- addLoadToLinkSet(linkSets[i], depLoad);
- }
-
- // console.log('AddDependencyLoad ' + depLoad.name + ' for ' + load.name);
- // snapshot(loader);
- })
- );
- })(depsList[i], i);
-
- return Promise.all(loadPromises);
- })
-
- // 15.2.4.6.2 LoadSucceeded
- .then(function() {
- // console.log('LoadSucceeded ' + load.name);
- // snapshot(loader);
-
- load.status = 'loaded';
-
- var linkSets = load.linkSets.concat([]);
- for (var i = 0, l = linkSets.length; i < l; i++)
- updateLinkSetOnLoad(linkSets[i], load);
- });
- })
- // 15.2.4.5.4 LoadFailed
- ['catch'](function(exc) {
- load.status = 'failed';
- load.exception = exc;
-
- var linkSets = load.linkSets.concat([]);
- for (var i = 0, l = linkSets.length; i < l; i++) {
- linkSetFailed(linkSets[i], load, exc);
- }
- });
- }
-
- // 15.2.4.7 PromiseOfStartLoadPartwayThrough absorbed into calling functions
-
- // 15.2.4.7.1
- function asyncStartLoadPartwayThrough(stepState) {
- return function(resolve, reject) {
- var loader = stepState.loader;
- var name = stepState.moduleName;
- var step = stepState.step;
-
- if (loader.modules[name])
- throw new TypeError('"' + name + '" already exists in the module table');
-
- // adjusted to pick up existing loads
- var existingLoad;
- for (var i = 0, l = loader.loads.length; i < l; i++) {
- if (loader.loads[i].name == name) {
- existingLoad = loader.loads[i];
-
- if (step == 'translate' && !existingLoad.source) {
- existingLoad.address = stepState.moduleAddress;
- proceedToTranslate(loader, existingLoad, Promise.resolve(stepState.moduleSource));
- }
-
- // a primary load -> use that existing linkset if it is for the direct load here
- // otherwise create a new linkset unit
- if (existingLoad.linkSets.length && existingLoad.linkSets[0].loads[0].name == existingLoad.name)
- return existingLoad.linkSets[0].done.then(function() {
- resolve(existingLoad);
- });
- }
- }
-
- var load = existingLoad || createLoad(name);
-
- load.metadata = stepState.moduleMetadata;
-
- var linkSet = createLinkSet(loader, load);
-
- loader.loads.push(load);
-
- resolve(linkSet.done);
-
- if (step == 'locate')
- proceedToLocate(loader, load);
-
- else if (step == 'fetch')
- proceedToFetch(loader, load, Promise.resolve(stepState.moduleAddress));
-
- else {
- load.address = stepState.moduleAddress;
- proceedToTranslate(loader, load, Promise.resolve(stepState.moduleSource));
- }
- }
- }
-
- // Declarative linking functions run through alternative implementation:
- // 15.2.5.1.1 CreateModuleLinkageRecord not implemented
- // 15.2.5.1.2 LookupExport not implemented
- // 15.2.5.1.3 LookupModuleDependency not implemented
-
- // 15.2.5.2.1
- function createLinkSet(loader, startingLoad) {
- var linkSet = {
- loader: loader,
- loads: [],
- startingLoad: startingLoad, // added see spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995
- loadingCount: 0
- };
- linkSet.done = new Promise(function(resolve, reject) {
- linkSet.resolve = resolve;
- linkSet.reject = reject;
- });
- addLoadToLinkSet(linkSet, startingLoad);
- return linkSet;
- }
- // 15.2.5.2.2
- function addLoadToLinkSet(linkSet, load) {
- if (load.status == 'failed')
- return;
-
- for (var i = 0, l = linkSet.loads.length; i < l; i++)
- if (linkSet.loads[i] == load)
- return;
-
- linkSet.loads.push(load);
- load.linkSets.push(linkSet);
-
- // adjustment, see https://bugs.ecmascript.org/show_bug.cgi?id=2603
- if (load.status != 'loaded') {
- linkSet.loadingCount++;
- }
-
- var loader = linkSet.loader;
-
- for (var i = 0, l = load.dependencies.length; i < l; i++) {
- if (!load.dependencies[i])
- continue;
-
- var name = load.dependencies[i].value;
-
- if (loader.modules[name])
- continue;
-
- for (var j = 0, d = loader.loads.length; j < d; j++) {
- if (loader.loads[j].name != name)
- continue;
-
- addLoadToLinkSet(linkSet, loader.loads[j]);
- break;
- }
- }
- // console.log('add to linkset ' + load.name);
- // snapshot(linkSet.loader);
- }
-
- // linking errors can be generic or load-specific
- // this is necessary for debugging info
- function doLink(linkSet) {
- var error = false;
- try {
- link(linkSet, function(load, exc) {
- linkSetFailed(linkSet, load, exc);
- error = true;
- });
- }
- catch(e) {
- linkSetFailed(linkSet, null, e);
- error = true;
- }
- return error;
- }
-
- // 15.2.5.2.3
- function updateLinkSetOnLoad(linkSet, load) {
- // console.log('update linkset on load ' + load.name);
- // snapshot(linkSet.loader);
- linkSet.loadingCount--;
-
- if (linkSet.loadingCount > 0)
- return;
-
- // adjusted for spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995
- var startingLoad = linkSet.startingLoad;
-
- // non-executing link variation for loader tracing
- // on the server. Not in spec.
- /***/
- if (linkSet.loader.loaderObj.execute === false) {
- var loads = [].concat(linkSet.loads);
- for (var i = 0, l = loads.length; i < l; i++) {
- var load = loads[i];
- load.module = {
- name: load.name,
- module: _newModule({}),
- evaluated: true
- };
- load.status = 'linked';
- finishLoad(linkSet.loader, load);
- }
- return linkSet.resolve(startingLoad);
- }
- /***/
-
- var abrupt = doLink(linkSet);
-
- if (abrupt)
- return;
-
- linkSet.resolve(startingLoad);
- }
-
- // 15.2.5.2.4
- function linkSetFailed(linkSet, load, exc) {
- var loader = linkSet.loader;
- var requests;
-
- checkError:
- if (load) {
- if (linkSet.loads[0].name == load.name) {
- exc = addToError(exc, 'Error loading ' + load.name);
- }
- else {
- for (var i = 0; i < linkSet.loads.length; i++) {
- var pLoad = linkSet.loads[i];
- for (var j = 0; j < pLoad.dependencies.length; j++) {
- var dep = pLoad.dependencies[j];
- if (dep.value == load.name) {
- exc = addToError(exc, 'Error loading ' + load.name + ' as "' + dep.key + '" from ' + pLoad.name);
- break checkError;
- }
- }
- }
- exc = addToError(exc, 'Error loading ' + load.name + ' from ' + linkSet.loads[0].name);
- }
- }
- else {
- exc = addToError(exc, 'Error linking ' + linkSet.loads[0].name);
- }
-
-
- var loads = linkSet.loads.concat([]);
- for (var i = 0, l = loads.length; i < l; i++) {
- var load = loads[i];
-
- // store all failed load records
- loader.loaderObj.failed = loader.loaderObj.failed || [];
- if (indexOf.call(loader.loaderObj.failed, load) == -1)
- loader.loaderObj.failed.push(load);
-
- var linkIndex = indexOf.call(load.linkSets, linkSet);
- load.linkSets.splice(linkIndex, 1);
- if (load.linkSets.length == 0) {
- var globalLoadsIndex = indexOf.call(linkSet.loader.loads, load);
- if (globalLoadsIndex != -1)
- linkSet.loader.loads.splice(globalLoadsIndex, 1);
- }
- }
- linkSet.reject(exc);
- }
-
- // 15.2.5.2.5
- function finishLoad(loader, load) {
- // add to global trace if tracing
- if (loader.loaderObj.trace) {
- if (!loader.loaderObj.loads)
- loader.loaderObj.loads = {};
- var depMap = {};
- load.dependencies.forEach(function(dep) {
- depMap[dep.key] = dep.value;
- });
- loader.loaderObj.loads[load.name] = {
- name: load.name,
- deps: load.dependencies.map(function(dep){ return dep.key }),
- depMap: depMap,
- address: load.address,
- metadata: load.metadata,
- source: load.source
- };
- }
- // if not anonymous, add to the module table
- if (load.name) {
- loader.modules[load.name] = load.module;
- }
- var loadIndex = indexOf.call(loader.loads, load);
- if (loadIndex != -1)
- loader.loads.splice(loadIndex, 1);
- for (var i = 0, l = load.linkSets.length; i < l; i++) {
- loadIndex = indexOf.call(load.linkSets[i].loads, load);
- if (loadIndex != -1)
- load.linkSets[i].loads.splice(loadIndex, 1);
- }
- load.linkSets.splice(0, load.linkSets.length);
- }
-
- function doDynamicExecute(linkSet, load, linkError) {
- try {
- var module = load.execute();
- }
- catch(e) {
- linkError(load, e);
- return;
- }
- if (!module || !(module instanceof Module))
- linkError(load, new TypeError('Execution must define a Module instance'));
- else
- return module;
- }
-
- // 26.3 Loader
-
- // 26.3.1.1
- // defined at top
-
- // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601
- function createImportPromise(loader, name, promise) {
- var importPromises = loader._loader.importPromises;
- return importPromises[name] = promise.then(function(m) {
- importPromises[name] = undefined;
- return m;
- }, function(e) {
- importPromises[name] = undefined;
- throw e;
- });
- }
-
- Loader.prototype = {
- // 26.3.3.1
- constructor: Loader,
- // 26.3.3.2
- define: function(name, source, options) {
- // check if already defined
- if (this._loader.importPromises[name])
- throw new TypeError('Module is already loading.');
- return createImportPromise(this, name, new Promise(asyncStartLoadPartwayThrough({
- step: 'translate',
- loader: this._loader,
- moduleName: name,
- moduleMetadata: options && options.metadata || {},
- moduleSource: source,
- moduleAddress: options && options.address
- })));
- },
- // 26.3.3.3
- 'delete': function(name) {
- var loader = this._loader;
- delete loader.importPromises[name];
- delete loader.moduleRecords[name];
- return loader.modules[name] ? delete loader.modules[name] : false;
- },
- // 26.3.3.4 entries not implemented
- // 26.3.3.5
- get: function(key) {
- if (!this._loader.modules[key])
- return;
- return this._loader.modules[key].module;
- },
- // 26.3.3.7
- has: function(name) {
- return !!this._loader.modules[name];
- },
- // 26.3.3.8
- 'import': function(name, parentName, parentAddress) {
- if (typeof parentName == 'object')
- parentName = parentName.name;
-
- // run normalize first
- var loaderObj = this;
-
- // added, see https://bugs.ecmascript.org/show_bug.cgi?id=2659
- return Promise.resolve(loaderObj.normalize(name, parentName))
- .then(function(name) {
- var loader = loaderObj._loader;
-
- if (loader.modules[name])
- return loader.modules[name].module;
-
- return loader.importPromises[name] || createImportPromise(loaderObj, name,
- loadModule(loader, name, {})
- .then(function(load) {
- delete loader.importPromises[name];
- return load.module.module;
- }));
- });
- },
- // 26.3.3.9 keys not implemented
- // 26.3.3.10
- load: function(name) {
- var loader = this._loader;
- if (loader.modules[name])
- return Promise.resolve();
- return (loader.importPromises[name] || createImportPromise(this, name, new Promise(asyncStartLoadPartwayThrough({
- step: 'locate',
- loader: loader,
- moduleName: name,
- moduleMetadata: {},
- moduleSource: undefined,
- moduleAddress: undefined
- }))
- .then(function(load) {
- delete loader.importPromises[name];
- return load.module.module;
- })))
- .then(function () {});
- },
- // 26.3.3.11
- module: function(source, options) {
- var load = createLoad();
- load.address = options && options.address;
- var linkSet = createLinkSet(this._loader, load);
- var sourcePromise = Promise.resolve(source);
- var loader = this._loader;
- var p = linkSet.done.then(function() {
- return load.module.module;
- });
- proceedToTranslate(loader, load, sourcePromise);
- return p;
- },
- // 26.3.3.12
- newModule: function (obj) {
- if (typeof obj != 'object')
- throw new TypeError('Expected object');
-
- var m = new Module();
-
- var pNames = [];
- if (Object.getOwnPropertyNames && obj != null)
- pNames = Object.getOwnPropertyNames(obj);
- else
- for (var key in obj)
- pNames.push(key);
-
- for (var i = 0; i < pNames.length; i++) (function(key) {
- defineProperty(m, key, {
- configurable: false,
- enumerable: true,
- get: function () {
- return obj[key];
- },
- set: function() {
- throw new Error('Module exports cannot be changed externally.');
- }
- });
- })(pNames[i]);
-
- if (Object.freeze)
- Object.freeze(m);
-
- return m;
- },
- // 26.3.3.14
- set: function(name, module) {
- if (!(module instanceof Module))
- throw new TypeError('Loader.set(' + name + ', module) must be a module');
- this._loader.modules[name] = {
- module: module
- };
- },
- // 26.3.3.15 values not implemented
- // 26.3.3.16 @@iterator not implemented
- // 26.3.3.17 @@toStringTag not implemented
-
- // 26.3.3.18.1
- normalize: function(name, referrerName, referrerAddress) {},
- // 26.3.3.18.2
- locate: function(load) {
- return load.name;
- },
- // 26.3.3.18.3
- fetch: function(load) {
- },
- // 26.3.3.18.4
- translate: function(load) {
- return load.source;
- },
- // 26.3.3.18.5
- instantiate: function(load) {
- }
- };
-
- var _newModule = Loader.prototype.newModule;
-
-/*
- * ES6 Module Declarative Linking Code
- */
- function link(linkSet, linkError) {
-
- var loader = linkSet.loader;
-
- if (!linkSet.loads.length)
- return;
-
- var loads = linkSet.loads.concat([]);
-
- for (var i = 0; i < loads.length; i++) {
- var load = loads[i];
-
- var module = doDynamicExecute(linkSet, load, linkError);
- if (!module)
- return;
- load.module = {
- name: load.name,
- module: module
- };
- load.status = 'linked';
-
- finishLoad(loader, load);
- }
- }
-
-})();
-
-var System;
-// SystemJS Loader Class and Extension helpers
-function SystemJSLoader() {
- Loader.call(this);
-
- this.paths = {};
- this._loader.paths = {};
-
- systemJSConstructor.call(this);
-}
-
-// inline Object.create-style class extension
-function SystemProto() {};
-SystemProto.prototype = Loader.prototype;
-SystemJSLoader.prototype = new SystemProto();
-SystemJSLoader.prototype.constructor = SystemJSLoader;
-
-var systemJSConstructor;
-
-function hook(name, hook) {
- SystemJSLoader.prototype[name] = hook(SystemJSLoader.prototype[name] || function() {});
-}
-function hookConstructor(hook) {
- systemJSConstructor = hook(systemJSConstructor || function() {});
-}
-
-
-var absURLRegEx = /^[^\/]+:\/\//;
-function isAbsolute(name) {
- return name.match(absURLRegEx);
-}
-function isRel(name) {
- return (name[0] == '.' && (!name[1] || name[1] == '/' || name[1] == '.')) || name[0] == '/';
-}
-function isPlain(name) {
- return !isRel(name) && !isAbsolute(name);
-}
-
-var baseURIObj = new URL(baseURI);
-
-function urlResolve(name, parent) {
- // url resolution shortpaths
- if (name[0] == '.') {
- // dot-relative url normalization
- if (name[1] == '/' && name[2] != '.')
- return (parent && parent.substr(0, parent.lastIndexOf('/') + 1) || baseURI) + name.substr(2);
- }
- else if (name[0] != '/' && name.indexOf(':') == -1) {
- // plain parent normalization
- return (parent && parent.substr(0, parent.lastIndexOf('/') + 1) || baseURI) + name;
- }
-
- return new URL(name, parent && parent.replace(/#/g, '%05') || baseURIObj).href.replace(/%05/g, '#');
-}
-
-// NB no specification provided for System.paths, used ideas discussed in https://github.com/jorendorff/js-loaders/issues/25
-function applyPaths(loader, name) {
- // most specific (most number of slashes in path) match wins
- var pathMatch = '', wildcard, maxWildcardPrefixLen = 0;
-
- var paths = loader.paths;
- var pathsCache = loader._loader.paths;
-
- // check to see if we have a paths entry
- for (var p in paths) {
- if (paths.hasOwnProperty && !paths.hasOwnProperty(p))
- continue;
-
- // paths sanitization
- var path = paths[p];
- if (path !== pathsCache[p])
- path = paths[p] = pathsCache[p] = urlResolve(paths[p], isRel(paths[p]) ? baseURI : loader.baseURL);
-
- // exact path match
- if (p.indexOf('*') === -1) {
- if (name == p)
- return paths[p];
-
- // support trailing / in paths rules
- else if (name.substr(0, p.length - 1) == p.substr(0, p.length - 1) && (name.length < p.length || name[p.length - 1] == p[p.length - 1]) && (paths[p][paths[p].length - 1] == '/' || paths[p] == '')) {
- return paths[p].substr(0, paths[p].length - 1) + (name.length > p.length ? (paths[p] && '/' || '') + name.substr(p.length) : '');
- }
- }
- // wildcard path match
- else {
- var pathParts = p.split('*');
- if (pathParts.length > 2)
- throw new TypeError('Only one wildcard in a path is permitted');
-
- var wildcardPrefixLen = pathParts[0].length;
- if (wildcardPrefixLen >= maxWildcardPrefixLen &&
- name.substr(0, pathParts[0].length) == pathParts[0] &&
- name.substr(name.length - pathParts[1].length) == pathParts[1]) {
- maxWildcardPrefixLen = wildcardPrefixLen;
- pathMatch = p;
- wildcard = name.substr(pathParts[0].length, name.length - pathParts[1].length - pathParts[0].length);
- }
- }
- }
-
- var outPath = paths[pathMatch];
- if (typeof wildcard == 'string')
- outPath = outPath.replace('*', wildcard);
-
- return outPath;
-}
-
-function dedupe(deps) {
- var newDeps = [];
- for (var i = 0, l = deps.length; i < l; i++)
- if (indexOf.call(newDeps, deps[i]) == -1)
- newDeps.push(deps[i])
- return newDeps;
-}
-
-function group(deps) {
- var names = [];
- var indices = [];
- for (var i = 0, l = deps.length; i < l; i++) {
- var index = indexOf.call(names, deps[i]);
- if (index === -1) {
- names.push(deps[i]);
- indices.push([i]);
- }
- else {
- indices[index].push(i);
- }
- }
- return { names: names, indices: indices };
-}
-
-var getOwnPropertyDescriptor = true;
-try {
- Object.getOwnPropertyDescriptor({ a: 0 }, 'a');
-}
-catch(e) {
- getOwnPropertyDescriptor = false;
-}
-
-// converts any module.exports object into an object ready for SystemJS.newModule
-function getESModule(exports) {
- var esModule = {};
- // don't trigger getters/setters in environments that support them
- if ((typeof exports == 'object' || typeof exports == 'function') && exports !== __global) {
- if (getOwnPropertyDescriptor) {
- for (var p in exports) {
- // The default property is copied to esModule later on
- if (p === 'default')
- continue;
- defineOrCopyProperty(esModule, exports, p);
- }
- }
- else {
- extend(esModule, exports);
- }
- }
- esModule['default'] = exports;
- defineProperty(esModule, '__useDefault', {
- value: true
- });
- return esModule;
-}
-
-function defineOrCopyProperty(targetObj, sourceObj, propName) {
- try {
- var d;
- if (d = Object.getOwnPropertyDescriptor(sourceObj, propName))
- defineProperty(targetObj, propName, d);
- }
- catch (ex) {
- // Object.getOwnPropertyDescriptor threw an exception, fall back to normal set property
- // we dont need hasOwnProperty here because getOwnPropertyDescriptor would have returned undefined above
- targetObj[propName] = sourceObj[propName];
- return false;
- }
-}
-
-function extend(a, b, prepend) {
- var hasOwnProperty = b && b.hasOwnProperty;
- for (var p in b) {
- if (hasOwnProperty && !b.hasOwnProperty(p))
- continue;
- if (!prepend || !(p in a))
- a[p] = b[p];
- }
- return a;
-}
-
-// meta first-level extends where:
-// array + array appends
-// object + object extends
-// other properties replace
-function extendMeta(a, b, prepend) {
- var hasOwnProperty = b && b.hasOwnProperty;
- for (var p in b) {
- if (hasOwnProperty && !b.hasOwnProperty(p))
- continue;
- var val = b[p];
- if (!(p in a))
- a[p] = val;
- else if (val instanceof Array && a[p] instanceof Array)
- a[p] = [].concat(prepend ? val : a[p]).concat(prepend ? a[p] : val);
- else if (typeof val == 'object' && val !== null && typeof a[p] == 'object')
- a[p] = extend(extend({}, a[p]), val, prepend);
- else if (!prepend)
- a[p] = val;
- }
-}
-
-function extendPkgConfig(pkgCfgA, pkgCfgB, pkgName, loader, warnInvalidProperties) {
- for (var prop in pkgCfgB) {
- if (indexOf.call(['main', 'format', 'defaultExtension', 'basePath'], prop) != -1) {
- pkgCfgA[prop] = pkgCfgB[prop];
- }
- else if (prop == 'map') {
- extend(pkgCfgA.map = pkgCfgA.map || {}, pkgCfgB.map);
- }
- else if (prop == 'meta') {
- extend(pkgCfgA.meta = pkgCfgA.meta || {}, pkgCfgB.meta);
- }
- else if (prop == 'depCache') {
- for (var d in pkgCfgB.depCache) {
- var dNormalized;
-
- if (d.substr(0, 2) == './')
- dNormalized = pkgName + '/' + d.substr(2);
- else
- dNormalized = coreResolve.call(loader, d);
- loader.depCache[dNormalized] = (loader.depCache[dNormalized] || []).concat(pkgCfgB.depCache[d]);
- }
- }
- else if (warnInvalidProperties && indexOf.call(['browserConfig', 'nodeConfig', 'devConfig', 'productionConfig'], prop) == -1 &&
- (!pkgCfgB.hasOwnProperty || pkgCfgB.hasOwnProperty(prop))) {
- warn.call(loader, '"' + prop + '" is not a valid package configuration option in package ' + pkgName);
- }
- }
-}
-
-// deeply-merge (to first level) config with any existing package config
-function setPkgConfig(loader, pkgName, cfg, prependConfig) {
- var pkg;
-
- // first package is config by reference for fast path, cloned after that
- if (!loader.packages[pkgName]) {
- pkg = loader.packages[pkgName] = cfg;
- }
- else {
- var basePkg = loader.packages[pkgName];
- pkg = loader.packages[pkgName] = {};
-
- extendPkgConfig(pkg, prependConfig ? cfg : basePkg, pkgName, loader, prependConfig);
- extendPkgConfig(pkg, prependConfig ? basePkg : cfg, pkgName, loader, !prependConfig);
- }
-
- // main object becomes main map
- if (typeof pkg.main == 'object') {
- pkg.map = pkg.map || {};
- pkg.map['./@main'] = pkg.main;
- pkg.main['default'] = pkg.main['default'] || './';
- pkg.main = '@main';
- }
-
- return pkg;
-}
-
-function warn(msg) {
- if (this.warnings && typeof console != 'undefined' && console.warn)
- console.warn(msg);
-}
-
-function createInstantiate (load, result) {
- load.metadata.entry = createEntry();
- load.metadata.entry.execute = function() {
- return result;
- }
- load.metadata.entry.deps = [];
- load.metadata.format = 'defined';
-}
-var absURLRegEx = /^([^\/]+:\/\/|\/)/;
-
-// Normalization with module names as absolute URLs
-SystemJSLoader.prototype.normalize = function(name, parentName, parentAddress) {
- // NB does `import 'file.js'` import relative to the parent name or baseURL?
- // have assumed that it is baseURL-relative here, but spec may well align with URLs to be the latter
- // safe option for users is to always use "./file.js" for relative
-
- // not absolute or relative -> apply paths (what will be sites)
- if (!name.match(absURLRegEx) && name[0] != '.')
- name = new URL(applyPaths(this, name) || name, baseURI).href;
- // apply parent-relative normalization, parentAddress is already normalized
- else
- name = new URL(name, parentName || baseURI).href;
-
- return name;
-};
-
-// default locate is this
-/*
-SystemJSLoader.prototype.locate = function(load) {
- return load.name;
-};
-*//*
- * Script tag fetch
- *
- * When load.metadata.scriptLoad is true, we load via script tag injection.
- */
-(function() {
-
- if (typeof document != 'undefined')
- var head = document.getElementsByTagName('head')[0];
-
- var curSystem;
- var curRequire;
-
- // if doing worker executing, this is set to the load record being executed
- var workerLoad = null;
-
- // interactive mode handling method courtesy RequireJS
- var ieEvents = head && (function() {
- var s = document.createElement('script');
- var isOpera = typeof opera !== 'undefined' && opera.toString() === '[object Opera]';
- return s.attachEvent && !(s.attachEvent.toString && s.attachEvent.toString().indexOf('[native code') < 0) && !isOpera;
- })();
-
- // IE interactive-only part
- // we store loading scripts array as { script: <script>, load: {...} }
- var interactiveLoadingScripts = [];
- var interactiveScript;
- function getInteractiveScriptLoad() {
- if (interactiveScript && interactiveScript.script.readyState === 'interactive')
- return interactiveScript.load;
-
- for (var i = 0; i < interactiveLoadingScripts.length; i++)
- if (interactiveLoadingScripts[i].script.readyState == 'interactive') {
- interactiveScript = interactiveLoadingScripts[i];
- return interactiveScript.load;
- }
- }
-
- // System.register, System.registerDynamic, AMD define pipeline
- // this is called by the above methods when they execute
- // we then run the reduceRegister_ collection function either immediately
- // if we are in IE and know the currently executing script (interactive)
- // or later if we need to wait for the synchronous load callback to know the script
- var loadingCnt = 0;
- var registerQueue = [];
- hook('pushRegister_', function(pushRegister) {
- return function(register) {
- // if using eval-execution then skip
- if (pushRegister.call(this, register))
- return false;
-
- // if using worker execution, then we're done
- if (workerLoad)
- this.reduceRegister_(workerLoad, register);
-
- // detect if we know the currently executing load (IE)
- // if so, immediately call reduceRegister
- else if (ieEvents)
- this.reduceRegister_(getInteractiveScriptLoad(), register);
-
- // otherwise, add to our execution queue
- // to call reduceRegister on sync script load event
- else if (loadingCnt)
- registerQueue.push(register);
-
- // if we're not currently loading anything though
- // then do the reduction against a null load
- // (out of band named define or named register)
- // note even in non-script environments, this catch is used
- else
- this.reduceRegister_(null, register);
-
- return true;
- };
- });
-
- function webWorkerImport(loader, load) {
- return new Promise(function(resolve, reject) {
- if (load.metadata.integrity)
- reject(new Error('Subresource integrity checking is not supported in web workers.'));
-
- workerLoad = load;
- try {
- importScripts(load.address);
- }
- catch(e) {
- workerLoad = null;
- reject(e);
- }
- workerLoad = null;
-
- // if nothing registered, then something went wrong
- if (!load.metadata.entry)
- reject(new Error(load.address + ' did not call System.register or AMD define. If loading a global, ensure the meta format is set to global.'));
-
- resolve('');
- });
- }
-
- // override fetch to use script injection
- hook('fetch', function(fetch) {
- return function(load) {
- var loader = this;
-
- if (load.metadata.format == 'json' || !load.metadata.scriptLoad || (!isBrowser && !isWorker))
- return fetch.call(this, load);
-
- if (isWorker)
- return webWorkerImport(loader, load);
-
- return new Promise(function(resolve, reject) {
- var s = document.createElement('script');
-
- s.async = true;
-
- if (load.metadata.crossOrigin)
- s.crossOrigin = load.metadata.crossOrigin;
-
- if (load.metadata.integrity)
- s.setAttribute('integrity', load.metadata.integrity);
-
- if (ieEvents) {
- s.attachEvent('onreadystatechange', complete);
- interactiveLoadingScripts.push({
- script: s,
- load: load
- });
- }
- else {
- s.addEventListener('load', complete, false);
- s.addEventListener('error', error, false);
- }
-
- loadingCnt++;
-
- curSystem = __global.System;
- curRequire = __global.require;
-
- s.src = load.address;
- head.appendChild(s);
-
- function complete(evt) {
- if (s.readyState && s.readyState != 'loaded' && s.readyState != 'complete')
- return;
-
- loadingCnt--;
-
- // complete call is sync on execution finish
- // (in ie already done reductions)
- if (!load.metadata.entry && !registerQueue.length) {
- loader.reduceRegister_(load);
- }
- else if (!ieEvents) {
- for (var i = 0; i < registerQueue.length; i++)
- loader.reduceRegister_(load, registerQueue[i]);
- registerQueue = [];
- }
-
- cleanup();
-
- // if nothing registered, then something went wrong
- if (!load.metadata.entry && !load.metadata.bundle)
- reject(new Error(load.name + ' did not call System.register or AMD define. If loading a global module configure the global name via the meta exports property for script injection support.'));
-
- resolve('');
- }
-
- function error(evt) {
- cleanup();
- reject(new Error('Unable to load script ' + load.address));
- }
-
- function cleanup() {
- __global.System = curSystem;
- __global.require = curRequire;
-
- if (s.detachEvent) {
- s.detachEvent('onreadystatechange', complete);
- for (var i = 0; i < interactiveLoadingScripts.length; i++)
- if (interactiveLoadingScripts[i].script == s) {
- if (interactiveScript && interactiveScript.script == s)
- interactiveScript = null;
- interactiveLoadingScripts.splice(i, 1);
- }
- }
- else {
- s.removeEventListener('load', complete, false);
- s.removeEventListener('error', error, false);
- }
-
- head.removeChild(s);
- }
- });
- };
- });
-})();
-/*
- * Instantiate registry extension
- *
- * Supports Traceur System.register 'instantiate' output for loading ES6 as ES5.
- *
- * - Creates the loader.register function
- * - Also supports metadata.format = 'register' in instantiate for anonymous register modules
- * - Also supports metadata.deps, metadata.execute and metadata.executingRequire
- * for handling dynamic modules alongside register-transformed ES6 modules
- *
- *
- * The code here replicates the ES6 linking groups algorithm to ensure that
- * circular ES6 compiled into System.register can work alongside circular AMD
- * and CommonJS, identically to the actual ES6 loader.
- *
- */
-
-
-/*
- * Registry side table entries in loader.defined
- * Registry Entry Contains:
- * - name
- * - deps
- * - declare for declarative modules
- * - execute for dynamic modules, different to declarative execute on module
- * - executingRequire indicates require drives execution for circularity of dynamic modules
- * - declarative optional boolean indicating which of the above
- *
- * Can preload modules directly on SystemJS.defined['my/module'] = { deps, execute, executingRequire }
- *
- * Then the entry gets populated with derived information during processing:
- * - normalizedDeps derived from deps, created in instantiate
- * - groupIndex used by group linking algorithm
- * - evaluated indicating whether evaluation has happend
- * - module the module record object, containing:
- * - exports actual module exports
- *
- * For dynamic we track the es module with:
- * - esModule actual es module value
- * - esmExports whether to extend the esModule with named exports
- *
- * Then for declarative only we track dynamic bindings with the 'module' records:
- * - name
- * - exports
- * - setters declarative setter functions
- * - dependencies, module records of dependencies
- * - importers, module records of dependents
- *
- * After linked and evaluated, entries are removed, declarative module records remain in separate
- * module binding table
- *
- */
-
-var leadingCommentAndMetaRegEx = /^(\s*\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)*\s*/;
-function detectRegisterFormat(source) {
- var leadingCommentAndMeta = source.match(leadingCommentAndMetaRegEx);
- return leadingCommentAndMeta && source.substr(leadingCommentAndMeta[0].length, 15) == 'System.register';
-}
-
-function createEntry() {
- return {
- name: null,
- deps: null,
- originalIndices: null,
- declare: null,
- execute: null,
- executingRequire: false,
- declarative: false,
- normalizedDeps: null,
- groupIndex: null,
- evaluated: false,
- module: null,
- esModule: null,
- esmExports: false
- };
-}
-
-(function() {
-
- /*
- * There are two variations of System.register:
- * 1. System.register for ES6 conversion (2-3 params) - System.register([name, ]deps, declare)
- * see https://github.com/ModuleLoader/es6-module-loader/wiki/System.register-Explained
- *
- * 2. System.registerDynamic for dynamic modules (3-4 params) - System.registerDynamic([name, ]deps, executingRequire, execute)
- * the true or false statement
- *
- * this extension implements the linking algorithm for the two variations identical to the spec
- * allowing compiled ES6 circular references to work alongside AMD and CJS circular references.
- *
- */
- SystemJSLoader.prototype.register = function(name, deps, declare) {
- if (typeof name != 'string') {
- declare = deps;
- deps = name;
- name = null;
- }
-
- // dynamic backwards-compatibility
- // can be deprecated eventually
- if (typeof declare == 'boolean')
- return this.registerDynamic.apply(this, arguments);
-
- var entry = createEntry();
- // ideally wouldn't apply map config to bundle names but
- // dependencies go through map regardless so we can't restrict
- // could reconsider in shift to new spec
- entry.name = name && (this.decanonicalize || this.normalize).call(this, name);
- entry.declarative = true;
- entry.deps = deps;
- entry.declare = declare;
-
- this.pushRegister_({
- amd: false,
- entry: entry
- });
- };
- SystemJSLoader.prototype.registerDynamic = function(name, deps, declare, execute) {
- if (typeof name != 'string') {
- execute = declare;
- declare = deps;
- deps = name;
- name = null;
- }
-
- // dynamic
- var entry = createEntry();
- entry.name = name && (this.decanonicalize || this.normalize).call(this, name);
- entry.deps = deps;
- entry.execute = execute;
- entry.executingRequire = declare;
-
- this.pushRegister_({
- amd: false,
- entry: entry
- });
- };
- hook('reduceRegister_', function() {
- return function(load, register) {
- if (!register)
- return;
-
- var entry = register.entry;
- var curMeta = load && load.metadata;
-
- // named register
- if (entry.name) {
- if (!(entry.name in this.defined))
- this.defined[entry.name] = entry;
-
- if (curMeta)
- curMeta.bundle = true;
- }
- // anonymous register
- if (!entry.name || load && !curMeta.entry && entry.name == load.name) {
- if (!curMeta)
- throw new TypeError('Invalid System.register call. Anonymous System.register calls can only be made by modules loaded by SystemJS.import and not via script tags.');
- if (curMeta.entry) {
- if (curMeta.format == 'register')
- throw new Error('Multiple anonymous System.register calls in module ' + load.name + '. If loading a bundle, ensure all the System.register calls are named.');
- else
- throw new Error('Module ' + load.name + ' interpreted as ' + curMeta.format + ' module format, but called System.register.');
- }
- if (!curMeta.format)
- curMeta.format = 'register';
- curMeta.entry = entry;
- }
- };
- });
-
- hookConstructor(function(constructor) {
- return function() {
- constructor.call(this);
-
- this.defined = {};
- this._loader.moduleRecords = {};
- };
- });
-
- function buildGroups(entry, loader, groups) {
- groups[entry.groupIndex] = groups[entry.groupIndex] || [];
-
- if (indexOf.call(groups[entry.groupIndex], entry) != -1)
- return;
-
- groups[entry.groupIndex].push(entry);
-
- for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) {
- var depName = entry.normalizedDeps[i];
- var depEntry = loader.defined[depName];
-
- // not in the registry means already linked / ES6
- if (!depEntry || depEntry.evaluated)
- continue;
-
- // now we know the entry is in our unlinked linkage group
- var depGroupIndex = entry.groupIndex + (depEntry.declarative != entry.declarative);
-
- // the group index of an entry is always the maximum
- if (depEntry.groupIndex === null || depEntry.groupIndex < depGroupIndex) {
-
- // if already in a group, remove from the old group
- if (depEntry.groupIndex !== null) {
- groups[depEntry.groupIndex].splice(indexOf.call(groups[depEntry.groupIndex], depEntry), 1);
-
- // if the old group is empty, then we have a mixed depndency cycle
- if (groups[depEntry.groupIndex].length == 0)
- throw new Error("Mixed dependency cycle detected");
- }
-
- depEntry.groupIndex = depGroupIndex;
- }
-
- buildGroups(depEntry, loader, groups);
- }
- }
-
- function link(name, startEntry, loader) {
- // skip if already linked
- if (startEntry.module)
- return;
-
- startEntry.groupIndex = 0;
-
- var groups = [];
-
- buildGroups(startEntry, loader, groups);
-
- var curGroupDeclarative = !!startEntry.declarative == groups.length % 2;
- for (var i = groups.length - 1; i >= 0; i--) {
- var group = groups[i];
- for (var j = 0; j < group.length; j++) {
- var entry = group[j];
-
- // link each group
- if (curGroupDeclarative)
- linkDeclarativeModule(entry, loader);
- else
- linkDynamicModule(entry, loader);
- }
- curGroupDeclarative = !curGroupDeclarative;
- }
- }
-
- // module binding records
- function ModuleRecord() {}
- defineProperty(ModuleRecord, 'toString', {
- value: function() {
- return 'Module';
- }
- });
-
- function getOrCreateModuleRecord(name, moduleRecords) {
- return moduleRecords[name] || (moduleRecords[name] = {
- name: name,
- dependencies: [],
- exports: new ModuleRecord(), // start from an empty module and extend
- importers: []
- });
- }
-
- function linkDeclarativeModule(entry, loader) {
- // only link if already not already started linking (stops at circular)
- if (entry.module)
- return;
-
- var moduleRecords = loader._loader.moduleRecords;
- var module = entry.module = getOrCreateModuleRecord(entry.name, moduleRecords);
- var exports = entry.module.exports;
-
- var declaration = entry.declare.call(__global, function(name, value) {
- module.locked = true;
-
- if (typeof name == 'object') {
- for (var p in name)
- exports[p] = name[p];
- }
- else {
- exports[name] = value;
- }
-
- for (var i = 0, l = module.importers.length; i < l; i++) {
- var importerModule = module.importers[i];
- if (!importerModule.locked) {
- var importerIndex = indexOf.call(importerModule.dependencies, module);
- var setter = importerModule.setters[importerIndex];
- if (setter)
- setter(exports);
- }
- }
-
- module.locked = false;
- return value;
- }, { id: entry.name });
-
- if (typeof declaration == 'function')
- declaration = { setters: [], execute: declaration };
-
- // allowing undefined declaration was a mistake! To be deprecated.
- declaration = declaration || { setters: [], execute: function() {} };
-
- module.setters = declaration.setters;
- module.execute = declaration.execute;
-
- if (!module.setters || !module.execute) {
- throw new TypeError('Invalid System.register form for ' + entry.name);
- }
-
- // now link all the module dependencies
- for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) {
- var depName = entry.normalizedDeps[i];
- var depEntry = loader.defined[depName];
- var depModule = moduleRecords[depName];
-
- // work out how to set depExports based on scenarios...
- var depExports;
-
- if (depModule) {
- depExports = depModule.exports;
- }
- // dynamic, already linked in our registry
- else if (depEntry && !depEntry.declarative) {
- depExports = depEntry.esModule;
- }
- // in the loader registry
- else if (!depEntry) {
- depExports = loader.get(depName);
- }
- // we have an entry -> link
- else {
- linkDeclarativeModule(depEntry, loader);
- depModule = depEntry.module;
- depExports = depModule.exports;
- }
-
- // only declarative modules have dynamic bindings
- if (depModule && depModule.importers) {
- depModule.importers.push(module);
- module.dependencies.push(depModule);
- }
- else {
- module.dependencies.push(null);
- }
-
- // run setters for all entries with the matching dependency name
- var originalIndices = entry.originalIndices[i];
- for (var j = 0, len = originalIndices.length; j < len; ++j) {
- var index = originalIndices[j];
- if (module.setters[index]) {
- module.setters[index](depExports);
- }
- }
- }
- }
-
- // An analog to loader.get covering execution of all three layers (real declarative, simulated declarative, simulated dynamic)
- function getModule(name, loader) {
- var exports;
- var entry = loader.defined[name];
-
- if (!entry) {
- exports = loader.get(name);
- if (!exports)
- throw new Error('Unable to load dependency ' + name + '.');
- }
-
- else {
- if (entry.declarative)
- ensureEvaluated(name, entry, [], loader);
-
- else if (!entry.evaluated)
- linkDynamicModule(entry, loader);
-
- exports = entry.module.exports;
- }
-
- if ((!entry || entry.declarative) && exports && exports.__useDefault)
- return exports['default'];
-
- return exports;
- }
-
- function linkDynamicModule(entry, loader) {
- if (entry.module)
- return;
-
- var exports = {};
-
- var module = entry.module = { exports: exports, id: entry.name };
-
- // AMD requires execute the tree first
- if (!entry.executingRequire) {
- for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) {
- var depName = entry.normalizedDeps[i];
- // we know we only need to link dynamic due to linking algorithm
- var depEntry = loader.defined[depName];
- if (depEntry)
- linkDynamicModule(depEntry, loader);
- }
- }
-
- // now execute
- entry.evaluated = true;
- var output = entry.execute.call(__global, function(name) {
- for (var i = 0, l = entry.deps.length; i < l; i++) {
- if (entry.deps[i] != name)
- continue;
- return getModule(entry.normalizedDeps[i], loader);
- }
- // try and normalize the dependency to see if we have another form
- var nameNormalized = loader.normalizeSync(name, entry.name);
- if (indexOf.call(entry.normalizedDeps, nameNormalized) != -1)
- return getModule(nameNormalized, loader);
-
- throw new Error('Module ' + name + ' not declared as a dependency of ' + entry.name);
- }, exports, module);
-
- if (output !== undefined)
- module.exports = output;
-
- // create the esModule object, which allows ES6 named imports of dynamics
- exports = module.exports;
-
- // __esModule flag treats as already-named
- if (exports && (exports.__esModule || exports instanceof Module))
- entry.esModule = loader.newModule(exports);
- // set module as 'default' export, then fake named exports by iterating properties
- else if (entry.esmExports && exports !== __global)
- entry.esModule = loader.newModule(getESModule(exports));
- // just use the 'default' export
- else
- entry.esModule = loader.newModule({ 'default': exports, __useDefault: true });
- }
-
- /*
- * Given a module, and the list of modules for this current branch,
- * ensure that each of the dependencies of this module is evaluated
- * (unless one is a circular dependency already in the list of seen
- * modules, in which case we execute it)
- *
- * Then we evaluate the module itself depth-first left to right
- * execution to match ES6 modules
- */
- function ensureEvaluated(moduleName, entry, seen, loader) {
- // if already seen, that means it's an already-evaluated non circular dependency
- if (!entry || entry.evaluated || !entry.declarative)
- return;
-
- // this only applies to declarative modules which late-execute
-
- seen.push(moduleName);
-
- for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) {
- var depName = entry.normalizedDeps[i];
- if (indexOf.call(seen, depName) == -1) {
- if (!loader.defined[depName])
- loader.get(depName);
- else
- ensureEvaluated(depName, loader.defined[depName], seen, loader);
- }
- }
-
- if (entry.evaluated)
- return;
-
- entry.evaluated = true;
- entry.module.execute.call(__global);
- }
-
- // override the delete method to also clear the register caches
- hook('delete', function(del) {
- return function(name) {
- delete this._loader.moduleRecords[name];
- delete this.defined[name];
- return del.call(this, name);
- };
- });
-
- hook('fetch', function(fetch) {
- return function(load) {
- if (this.defined[load.name]) {
- load.metadata.format = 'defined';
- return '';
- }
-
- load.metadata.deps = load.metadata.deps || [];
-
- return fetch.call(this, load);
- };
- });
-
- hook('translate', function(translate) {
- // we run the meta detection here (register is after meta)
- return function(load) {
- load.metadata.deps = load.metadata.deps || [];
- return Promise.resolve(translate.apply(this, arguments)).then(function(source) {
- // run detection for register format
- if (load.metadata.format == 'register' || load.metadata.format == 'system' || !load.metadata.format && detectRegisterFormat(load.source))
- load.metadata.format = 'register';
- return source;
- });
- };
- });
-
- // implement a perforance shortpath for System.load with no deps
- hook('load', function(doLoad) {
- return function(normalized) {
- var loader = this;
- var entry = loader.defined[normalized];
-
- if (!entry || entry.deps.length)
- return doLoad.apply(this, arguments);
-
- entry.originalIndices = entry.normalizedDeps = [];
-
- // recursively ensure that the module and all its
- // dependencies are linked (with dependency group handling)
- link(normalized, entry, loader);
-
- // now handle dependency execution in correct order
- ensureEvaluated(normalized, entry, [], loader);
- if (!entry.esModule)
- entry.esModule = loader.newModule(entry.module.exports);
-
- // remove from the registry
- if (!loader.trace)
- loader.defined[normalized] = undefined;
-
- // return the defined module object
- loader.set(normalized, entry.esModule);
-
- return Promise.resolve();
- };
- });
-
- hook('instantiate', function(instantiate) {
- return function(load) {
- if (load.metadata.format == 'detect')
- load.metadata.format = undefined;
-
- // assumes previous instantiate is sync
- // (core json support)
- instantiate.call(this, load);
-
- var loader = this;
-
- var entry;
-
- // first we check if this module has already been defined in the registry
- if (loader.defined[load.name]) {
- entry = loader.defined[load.name];
- // don't support deps for ES modules
- if (!entry.declarative)
- entry.deps = entry.deps.concat(load.metadata.deps);
- entry.deps = entry.deps.concat(load.metadata.deps);
- }
-
- // picked up already by an anonymous System.register script injection
- // or via the dynamic formats
- else if (load.metadata.entry) {
- entry = load.metadata.entry;
- entry.deps = entry.deps.concat(load.metadata.deps);
- }
-
- // Contains System.register calls
- // (dont run bundles in the builder)
- else if (!(loader.builder && load.metadata.bundle)
- && (load.metadata.format == 'register' || load.metadata.format == 'esm' || load.metadata.format == 'es6')) {
-
- if (typeof __exec != 'undefined')
- __exec.call(loader, load);
-
- if (!load.metadata.entry && !load.metadata.bundle)
- throw new Error(load.name + ' detected as ' + load.metadata.format + ' but didn\'t execute.');
-
- entry = load.metadata.entry;
-
- // support metadata deps for System.register
- if (entry && load.metadata.deps)
- entry.deps = entry.deps.concat(load.metadata.deps);
- }
-
- // named bundles are just an empty module
- if (!entry) {
- entry = createEntry();
- entry.deps = load.metadata.deps;
- entry.execute = function() {};
- }
-
- // place this module onto defined for circular references
- loader.defined[load.name] = entry;
-
- var grouped = group(entry.deps);
-
- entry.deps = grouped.names;
- entry.originalIndices = grouped.indices;
- entry.name = load.name;
- entry.esmExports = load.metadata.esmExports !== false;
-
- // first, normalize all dependencies
- var normalizePromises = [];
- for (var i = 0, l = entry.deps.length; i < l; i++)
- normalizePromises.push(Promise.resolve(loader.normalize(entry.deps[i], load.name)));
-
- return Promise.all(normalizePromises).then(function(normalizedDeps) {
-
- entry.normalizedDeps = normalizedDeps;
-
- return {
- deps: entry.deps,
- execute: function() {
- // recursively ensure that the module and all its
- // dependencies are linked (with dependency group handling)
- link(load.name, entry, loader);
-
- // now handle dependency execution in correct order
- ensureEvaluated(load.name, entry, [], loader);
-
- if (!entry.esModule)
- entry.esModule = loader.newModule(entry.module.exports);
-
- // remove from the registry
- if (!loader.trace)
- loader.defined[load.name] = undefined;
-
- // return the defined module object
- return entry.esModule;
- }
- };
- });
- };
- });
-})();
-/*
- System bundles
-
- Allows a bundle module to be specified which will be dynamically
- loaded before trying to load a given module.
-
- For example:
- SystemJS.bundles['mybundle'] = ['jquery', 'bootstrap/js/bootstrap']
-
- Will result in a load to "mybundle" whenever a load to "jquery"
- or "bootstrap/js/bootstrap" is made.
-
- In this way, the bundle becomes the request that provides the module
-*/
-
-(function() {
- // bundles support (just like RequireJS)
- // bundle name is module name of bundle itself
- // bundle is array of modules defined by the bundle
- // when a module in the bundle is requested, the bundle is loaded instead
- // of the form SystemJS.bundles['mybundle'] = ['jquery', 'bootstrap/js/bootstrap']
- hookConstructor(function(constructor) {
- return function() {
- constructor.call(this);
- this.bundles = {};
- this._loader.loadedBundles = {};
- };
- });
-
- // assign bundle metadata for bundle loads
- hook('locate', function(locate) {
- return function(load) {
- var loader = this;
- var matched = false;
-
- if (!(load.name in loader.defined))
- for (var b in loader.bundles) {
- for (var i = 0; i < loader.bundles[b].length; i++) {
- var curModule = loader.bundles[b][i];
-
- if (curModule == load.name) {
- matched = true;
- break;
- }
-
- // wildcard in bundles does not include / boundaries
- if (curModule.indexOf('*') != -1) {
- var parts = curModule.split('*');
- if (parts.length != 2) {
- loader.bundles[b].splice(i--, 1);
- continue;
- }
-
- if (load.name.substring(0, parts[0].length) == parts[0] &&
- load.name.substr(load.name.length - parts[1].length, parts[1].length) == parts[1] &&
- load.name.substr(parts[0].length, load.name.length - parts[1].length - parts[0].length).indexOf('/') == -1) {
- matched = true;
- break;
- }
- }
- }
-
- if (matched)
- return loader['import'](b)
- .then(function() {
- return locate.call(loader, load);
- });
- }
-
- return locate.call(loader, load);
- };
- });
-})();
-/*
- * Script-only addition used for production loader
- *
- */
-hookConstructor(function(constructor) {
- return function() {
- constructor.apply(this, arguments);
- __global.define = this.amdDefine;
- };
-});
-
-hook('fetch', function(fetch) {
- return function(load) {
- load.metadata.scriptLoad = true;
- return fetch.call(this, load);
- };
-});System = new SystemJSLoader();
-
-__global.SystemJS = System;
-System.version = '0.19.47 Register Only';
- if (typeof module == 'object' && module.exports && typeof exports == 'object')
- module.exports = System;
-
- __global.System = System;
-
-})(typeof self != 'undefined' ? self : global); \ No newline at end of file
diff --git a/node_modules/systemjs/dist/system.js b/node_modules/systemjs/dist/system.js
deleted file mode 100644
index 171b0d3cb..000000000
--- a/node_modules/systemjs/dist/system.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
- * SystemJS v0.19.47
- */
-!function(){function e(){!function(e){function t(e,r){if("string"!=typeof e)throw new TypeError("URL must be a string");var n=String(e).replace(/^\s+|\s+$/g,"").replace(/\\/g,"/").match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@\/?#]*)(?::([^:@\/?#]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);if(!n)throw new RangeError("Invalid URL format");var a=n[1]||"",o=n[2]||"",i=n[3]||"",s=n[4]||"",l=n[5]||"",u=n[6]||"",d=n[7]||"",c=n[8]||"",f=n[9]||"";if(void 0!==r){var m=r instanceof t?r:new t(r),p=!a&&!s&&!o;!p||d||c||(c=m.search),p&&"/"!==d[0]&&(d=d?(!m.host&&!m.username||m.pathname?"":"/")+m.pathname.slice(0,m.pathname.lastIndexOf("/")+1)+d:m.pathname);var h=[];d.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(e){"/.."===e?h.pop():h.push(e)}),d=h.join("").replace(/^\//,"/"===d[0]?"/":""),p&&(u=m.port,l=m.hostname,s=m.host,i=m.password,o=m.username),a||(a=m.protocol)}d=d.replace(/\\/g,"/"),this.origin=s?a+(""!==a||""!==s?"//":"")+s:"",this.href=a+(a&&s||"file:"==a?"//":"")+(""!==o?o+(""!==i?":"+i:"")+"@":"")+s+d+c+f,this.protocol=a,this.username=o,this.password=i,this.host=s,this.hostname=l,this.port=u,this.pathname=d,this.search=c,this.hash=f}e.URLPolyfill=t}("undefined"!=typeof self?self:global),function(e){function t(e,t){if(!e.originalErr)for(var r=((e.message||e)+(e.stack?"\n"+e.stack:"")).toString().split("\n"),n=[],a=0;a<r.length;a++)("undefined"==typeof $__curScript||-1==r[a].indexOf($__curScript.src))&&n.push(r[a]);var o="(SystemJS) "+(n?n.join("\n "):e.message.substr(11))+"\n "+t;D||(o=o.replace(q?/file:\/\/\//g:/file:\/\//g,""));var i=N?new Error(o,e.fileName,e.lineNumber):new Error(o);return i.stack=o,i.originalErr=e.originalErr||e,i}function r(){}function n(t){this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},U(this,"global",{get:function(){return e}})}function a(){n.call(this),this.paths={},this._loader.paths={},K.call(this)}function o(){}function i(e,t){a.prototype[e]=t(a.prototype[e]||function(){})}function s(e){K=e(K||function(){})}function l(e){return e.match(Q)}function u(e){return"."==e[0]&&(!e[1]||"/"==e[1]||"."==e[1])||"/"==e[0]}function d(e){return!u(e)&&!l(e)}function c(e,t){if("."==e[0]){if("/"==e[1]&&"."!=e[2])return(t&&t.substr(0,t.lastIndexOf("/")+1)||J)+e.substr(2)}else if("/"!=e[0]&&-1==e.indexOf(":"))return(t&&t.substr(0,t.lastIndexOf("/")+1)||J)+e;return new G(e,t&&t.replace(/#/g,"%05")||ee).href.replace(/%05/g,"#")}function f(e,t){var r,n="",a=0,o=e.paths,i=e._loader.paths;for(var s in o)if(!o.hasOwnProperty||o.hasOwnProperty(s)){var l=o[s];if(l!==i[s]&&(l=o[s]=i[s]=c(o[s],u(o[s])?J:e.baseURL)),-1===s.indexOf("*")){if(t==s)return o[s];if(t.substr(0,s.length-1)==s.substr(0,s.length-1)&&(t.length<s.length||t[s.length-1]==s[s.length-1])&&("/"==o[s][o[s].length-1]||""==o[s]))return o[s].substr(0,o[s].length-1)+(t.length>s.length?(o[s]&&"/"||"")+t.substr(s.length):"")}else{var d=s.split("*");if(d.length>2)throw new TypeError("Only one wildcard in a path is permitted");var f=d[0].length;f>=a&&t.substr(0,d[0].length)==d[0]&&t.substr(t.length-d[1].length)==d[1]&&(a=f,n=s,r=t.substr(d[0].length,t.length-d[1].length-d[0].length))}}var m=o[n];return"string"==typeof r&&(m=m.replace("*",r)),m}function m(e){for(var t=[],r=[],n=0,a=e.length;a>n;n++){var o=$.call(t,e[n]);-1===o?(t.push(e[n]),r.push([n])):r[o].push(n)}return{names:t,indices:r}}function p(t){var r={};if(("object"==typeof t||"function"==typeof t)&&t!==e)if(te)for(var n in t)"default"!==n&&h(r,t,n);else g(r,t);return r["default"]=t,U(r,"__useDefault",{value:!0}),r}function h(e,t,r){try{var n;(n=Object.getOwnPropertyDescriptor(t,r))&&U(e,r,n)}catch(a){return e[r]=t[r],!1}}function g(e,t,r){var n=t&&t.hasOwnProperty;for(var a in t)(!n||t.hasOwnProperty(a))&&(r&&a in e||(e[a]=t[a]));return e}function v(e,t,r){var n=t&&t.hasOwnProperty;for(var a in t)if(!n||t.hasOwnProperty(a)){var o=t[a];a in e?o instanceof Array&&e[a]instanceof Array?e[a]=[].concat(r?o:e[a]).concat(r?e[a]:o):"object"==typeof o&&null!==o&&"object"==typeof e[a]?e[a]=g(g({},e[a]),o,r):r||(e[a]=o):e[a]=o}}function y(e,t,r,n,a){for(var o in t)if(-1!=$.call(["main","format","defaultExtension","basePath"],o))e[o]=t[o];else if("map"==o)g(e.map=e.map||{},t.map);else if("meta"==o)g(e.meta=e.meta||{},t.meta);else if("depCache"==o)for(var i in t.depCache){var s;s="./"==i.substr(0,2)?r+"/"+i.substr(2):M.call(n,i),n.depCache[s]=(n.depCache[s]||[]).concat(t.depCache[i])}else!a||-1!=$.call(["browserConfig","nodeConfig","devConfig","productionConfig"],o)||t.hasOwnProperty&&!t.hasOwnProperty(o)||w.call(n,'"'+o+'" is not a valid package configuration option in package '+r)}function b(e,t,r,n){var a;if(e.packages[t]){var o=e.packages[t];a=e.packages[t]={},y(a,n?r:o,t,e,n),y(a,n?o:r,t,e,!n)}else a=e.packages[t]=r;return"object"==typeof a.main&&(a.map=a.map||{},a.map["./@main"]=a.main,a.main["default"]=a.main["default"]||"./",a.main="@main"),a}function w(e){this.warnings&&"undefined"!=typeof console&&console.warn&&console.warn(e)}function x(e,t){e.metadata.entry=R(),e.metadata.entry.execute=function(){return t},e.metadata.entry.deps=[],e.metadata.format="defined"}function S(e,t){for(var r=e.split(".");r.length;)t=t[r.shift()];return t}function _(e,t){var r,n=0;for(var a in e)if(t.substr(0,a.length)==a&&(t.length==a.length||"/"==t[a.length])){var o=a.split("/").length;if(n>=o)continue;r=a,n=o}return r}function E(e){this._loader.baseURL!==this.baseURL&&("/"!=this.baseURL[this.baseURL.length-1]&&(this.baseURL+="/"),this._loader.baseURL=this.baseURL=new G(this.baseURL,ee).href)}function j(e,t){this.set("@system-env",ne=this.newModule({browser:D,node:!!this._nodeRequire,production:!t&&e,dev:t||!e,build:t,"default":!0}))}function P(e,t){if(!d(e))throw new Error("Node module "+e+" can't be loaded as it is not a package require.");if(!ae){var r=this._nodeRequire("module"),n=t.substr(q?8:7);ae=new r(n),ae.paths=r._nodeModulePaths(n)}return ae.require(e)}function M(e,t){if(u(e))return c(e,t);if(l(e))return e;var r=_(this.map,e);if(r){if(e=this.map[r]+e.substr(r.length),u(e))return c(e);if(l(e))return e}if(this.has(e))return e;if("@node/"==e.substr(0,6)){if(!this._nodeRequire)throw new TypeError("Error loading "+e+". Can only load node core modules in Node.");return this.builder?this.set(e,this.newModule({})):this.set(e,this.newModule(p(P.call(this,e.substr(6),this.baseURL)))),e}return E.call(this),f(this,e)||this.baseURL+e}function O(e,t,r){ne.browser&&t.browserConfig&&r(t.browserConfig),ne.node&&t.nodeConfig&&r(t.nodeConfig),ne.dev&&t.devConfig&&r(t.devConfig),ne.build&&t.buildConfig&&r(t.buildConfig),ne.production&&t.productionConfig&&r(t.productionConfig)}function k(e){var t=e.match(se);return t&&"System.register"==e.substr(t[0].length,15)}function R(){return{name:null,deps:null,originalIndices:null,declare:null,execute:null,executingRequire:!1,declarative:!1,normalizedDeps:null,groupIndex:null,evaluated:!1,module:null,esModule:null,esmExports:!1}}function z(t){if("string"==typeof t)return S(t,e);if(!(t instanceof Array))throw new Error("Global exports must be a string or array.");for(var r={},n=!0,a=0;a<t.length;a++){var o=S(t[a],e);n&&(r["default"]=o,n=!1),r[t[a].split(".").pop()]=o}return r}function I(e){var t,r,n,n="~"==e[0],a=e.lastIndexOf("|");return-1!=a?(t=e.substr(a+1),r=e.substr(n,a-n),n&&w.call(this,'Condition negation form "'+e+'" is deprecated for "'+r+"|~"+t+'"'),"~"==t[0]&&(n=!0,t=t.substr(1))):(t="default",r=e.substr(n),-1!=ue.indexOf(r)&&(t=r,r=null)),{module:r||"@system-env",prop:t,negate:n}}function T(e){return e.module+"|"+(e.negate?"~":"")+e.prop}function L(e,t,r){var n=this;return this.normalize(e.module,t).then(function(t){return n.load(t).then(function(a){var o=S(e.prop,n.get(t));if(r&&"boolean"!=typeof o)throw new TypeError("Condition "+T(e)+" did not resolve to a boolean.");return e.negate?!o:o})})}function C(e,t){var r=e.match(de);if(!r)return Promise.resolve(e);var n=I.call(this,r[0].substr(2,r[0].length-3));return this.builder?this.normalize(n.module,t).then(function(t){return n.module=t,e.replace(de,"#{"+T(n)+"}")}):L.call(this,n,t,!1).then(function(r){if("string"!=typeof r)throw new TypeError("The condition value for "+e+" doesn't resolve to a string.");if(-1!=r.indexOf("/"))throw new TypeError("Unabled to interpolate conditional "+e+(t?" in "+t:"")+"\n The condition value "+r+' cannot contain a "/" separator.');return e.replace(de,r)})}function A(e,t){var r=e.lastIndexOf("#?");if(-1==r)return Promise.resolve(e);var n=I.call(this,e.substr(r+2));return this.builder?this.normalize(n.module,t).then(function(t){return n.module=t,e.substr(0,r)+"#?"+T(n)}):L.call(this,n,t,!0).then(function(t){return t?e.substr(0,r):"@empty"})}var F="undefined"==typeof window&&"undefined"!=typeof self&&"undefined"!=typeof importScripts,D="undefined"!=typeof window&&"undefined"!=typeof document,q="undefined"!=typeof process&&"undefined"!=typeof process.platform&&!!process.platform.match(/^win/);e.console||(e.console={assert:function(){}});var U,$=Array.prototype.indexOf||function(e){for(var t=0,r=this.length;r>t;t++)if(this[t]===e)return t;return-1};!function(){try{Object.defineProperty({},"a",{})&&(U=Object.defineProperty)}catch(e){U=function(e,t,r){try{e[t]=r.value||r.get.call(e)}catch(n){}}}}();var J,N="_"==new Error(0,"_").fileName;if("undefined"!=typeof document&&document.getElementsByTagName){if(J=document.baseURI,!J){var B=document.getElementsByTagName("base");J=B[0]&&B[0].href||window.location.href}}else"undefined"!=typeof location&&(J=e.location.href);if(J)J=J.split("#")[0].split("?")[0],J=J.substr(0,J.lastIndexOf("/")+1);else{if("undefined"==typeof process||!process.cwd)throw new TypeError("No environment baseURI");J="file://"+(q?"/":"")+process.cwd()+"/",q&&(J=J.replace(/\\/g,"/"))}try{var H="test:"==new e.URL("test:///").protocol}catch(X){}var G=H?e.URL:e.URLPolyfill;U(r.prototype,"toString",{value:function(){return"Module"}}),function(){function e(e){return{status:"loading",name:e||"<Anonymous"+ ++b+">",linkSets:[],dependencies:[],metadata:{}}}function a(e,t,r){return new Promise(u({step:r.address?"fetch":"locate",loader:e,moduleName:t,moduleMetadata:r&&r.metadata||{},moduleSource:r.source,moduleAddress:r.address}))}function o(t,r,n,a){return new Promise(function(e,o){e(t.loaderObj.normalize(r,n,a))}).then(function(r){var n;if(t.modules[r])return n=e(r),n.status="linked",n.module=t.modules[r],n;for(var a=0,o=t.loads.length;o>a;a++)if(n=t.loads[a],n.name==r)return n;return n=e(r),t.loads.push(n),i(t,n),n})}function i(e,t){s(e,t,Promise.resolve().then(function(){return e.loaderObj.locate({name:t.name,metadata:t.metadata})}))}function s(e,t,r){l(e,t,r.then(function(r){return"loading"==t.status?(t.address=r,e.loaderObj.fetch({name:t.name,metadata:t.metadata,address:r})):void 0}))}function l(e,t,r){r.then(function(r){return"loading"==t.status?(t.address=t.address||t.name,Promise.resolve(e.loaderObj.translate({name:t.name,metadata:t.metadata,address:t.address,source:r})).then(function(r){return t.source=r,e.loaderObj.instantiate({name:t.name,metadata:t.metadata,address:t.address,source:r})}).then(function(e){if(void 0===e)throw new TypeError("Declarative modules unsupported in the polyfill.");if("object"!=typeof e)throw new TypeError("Invalid instantiate return value");t.depsList=e.deps||[],t.execute=e.execute}).then(function(){t.dependencies=[];for(var r=t.depsList,n=[],a=0,i=r.length;i>a;a++)(function(r,a){n.push(o(e,r,t.name,t.address).then(function(e){if(t.dependencies[a]={key:r,value:e.name},"linked"!=e.status)for(var n=t.linkSets.concat([]),o=0,i=n.length;i>o;o++)c(n[o],e)}))})(r[a],a);return Promise.all(n)}).then(function(){t.status="loaded";for(var e=t.linkSets.concat([]),r=0,n=e.length;n>r;r++)m(e[r],t)})):void 0})["catch"](function(e){t.status="failed",t.exception=e;for(var r=t.linkSets.concat([]),n=0,a=r.length;a>n;n++)p(r[n],t,e)})}function u(t){return function(r,n){var a=t.loader,o=t.moduleName,u=t.step;if(a.modules[o])throw new TypeError('"'+o+'" already exists in the module table');for(var c,f=0,m=a.loads.length;m>f;f++)if(a.loads[f].name==o&&(c=a.loads[f],"translate"!=u||c.source||(c.address=t.moduleAddress,l(a,c,Promise.resolve(t.moduleSource))),c.linkSets.length&&c.linkSets[0].loads[0].name==c.name))return c.linkSets[0].done.then(function(){r(c)});var p=c||e(o);p.metadata=t.moduleMetadata;var h=d(a,p);a.loads.push(p),r(h.done),"locate"==u?i(a,p):"fetch"==u?s(a,p,Promise.resolve(t.moduleAddress)):(p.address=t.moduleAddress,l(a,p,Promise.resolve(t.moduleSource)))}}function d(e,t){var r={loader:e,loads:[],startingLoad:t,loadingCount:0};return r.done=new Promise(function(e,t){r.resolve=e,r.reject=t}),c(r,t),r}function c(e,t){if("failed"!=t.status){for(var r=0,n=e.loads.length;n>r;r++)if(e.loads[r]==t)return;e.loads.push(t),t.linkSets.push(e),"loaded"!=t.status&&e.loadingCount++;for(var a=e.loader,r=0,n=t.dependencies.length;n>r;r++)if(t.dependencies[r]){var o=t.dependencies[r].value;if(!a.modules[o])for(var i=0,s=a.loads.length;s>i;i++)if(a.loads[i].name==o){c(e,a.loads[i]);break}}}}function f(e){var t=!1;try{y(e,function(r,n){p(e,r,n),t=!0})}catch(r){p(e,null,r),t=!0}return t}function m(e,t){if(e.loadingCount--,!(e.loadingCount>0)){var r=e.startingLoad;if(e.loader.loaderObj.execute===!1){for(var n=[].concat(e.loads),a=0,o=n.length;o>a;a++){var t=n[a];t.module={name:t.name,module:w({}),evaluated:!0},t.status="linked",h(e.loader,t)}return e.resolve(r)}var i=f(e);i||e.resolve(r)}}function p(e,r,n){var a=e.loader;e:if(r)if(e.loads[0].name==r.name)n=t(n,"Error loading "+r.name);else{for(var o=0;o<e.loads.length;o++)for(var i=e.loads[o],s=0;s<i.dependencies.length;s++){var l=i.dependencies[s];if(l.value==r.name){n=t(n,"Error loading "+r.name+' as "'+l.key+'" from '+i.name);break e}}n=t(n,"Error loading "+r.name+" from "+e.loads[0].name)}else n=t(n,"Error linking "+e.loads[0].name);for(var u=e.loads.concat([]),o=0,d=u.length;d>o;o++){var r=u[o];a.loaderObj.failed=a.loaderObj.failed||[],-1==$.call(a.loaderObj.failed,r)&&a.loaderObj.failed.push(r);var c=$.call(r.linkSets,e);if(r.linkSets.splice(c,1),0==r.linkSets.length){var f=$.call(e.loader.loads,r);-1!=f&&e.loader.loads.splice(f,1)}}e.reject(n)}function h(e,t){if(e.loaderObj.trace){e.loaderObj.loads||(e.loaderObj.loads={});var r={};t.dependencies.forEach(function(e){r[e.key]=e.value}),e.loaderObj.loads[t.name]={name:t.name,deps:t.dependencies.map(function(e){return e.key}),depMap:r,address:t.address,metadata:t.metadata,source:t.source}}t.name&&(e.modules[t.name]=t.module);var n=$.call(e.loads,t);-1!=n&&e.loads.splice(n,1);for(var a=0,o=t.linkSets.length;o>a;a++)n=$.call(t.linkSets[a].loads,t),-1!=n&&t.linkSets[a].loads.splice(n,1);t.linkSets.splice(0,t.linkSets.length)}function g(e,t,n){try{var a=t.execute()}catch(o){return void n(t,o)}return a&&a instanceof r?a:void n(t,new TypeError("Execution must define a Module instance"))}function v(e,t,r){var n=e._loader.importPromises;return n[t]=r.then(function(e){return n[t]=void 0,e},function(e){throw n[t]=void 0,e})}function y(e,t){var r=e.loader;if(e.loads.length)for(var n=e.loads.concat([]),a=0;a<n.length;a++){var o=n[a],i=g(e,o,t);if(!i)return;o.module={name:o.name,module:i},o.status="linked",h(r,o)}}var b=0;n.prototype={constructor:n,define:function(e,t,r){if(this._loader.importPromises[e])throw new TypeError("Module is already loading.");return v(this,e,new Promise(u({step:"translate",loader:this._loader,moduleName:e,moduleMetadata:r&&r.metadata||{},moduleSource:t,moduleAddress:r&&r.address})))},"delete":function(e){var t=this._loader;return delete t.importPromises[e],delete t.moduleRecords[e],t.modules[e]?delete t.modules[e]:!1},get:function(e){return this._loader.modules[e]?this._loader.modules[e].module:void 0},has:function(e){return!!this._loader.modules[e]},"import":function(e,t,r){"object"==typeof t&&(t=t.name);var n=this;return Promise.resolve(n.normalize(e,t)).then(function(e){var t=n._loader;return t.modules[e]?t.modules[e].module:t.importPromises[e]||v(n,e,a(t,e,{}).then(function(r){return delete t.importPromises[e],r.module.module}))})},load:function(e){var t=this._loader;return t.modules[e]?Promise.resolve():(t.importPromises[e]||v(this,e,new Promise(u({step:"locate",loader:t,moduleName:e,moduleMetadata:{},moduleSource:void 0,moduleAddress:void 0})).then(function(r){return delete t.importPromises[e],r.module.module}))).then(function(){})},module:function(t,r){var n=e();n.address=r&&r.address;var a=d(this._loader,n),o=Promise.resolve(t),i=this._loader,s=a.done.then(function(){return n.module.module});return l(i,n,o),s},newModule:function(e){if("object"!=typeof e)throw new TypeError("Expected object");var t=new r,n=[];if(Object.getOwnPropertyNames&&null!=e)n=Object.getOwnPropertyNames(e);else for(var a in e)n.push(a);for(var o=0;o<n.length;o++)(function(r){U(t,r,{configurable:!1,enumerable:!0,get:function(){return e[r]},set:function(){throw new Error("Module exports cannot be changed externally.")}})})(n[o]);return Object.freeze&&Object.freeze(t),t},set:function(e,t){if(!(t instanceof r))throw new TypeError("Loader.set("+e+", module) must be a module");this._loader.modules[e]={module:t}},normalize:function(e,t,r){},locate:function(e){return e.name},fetch:function(e){},translate:function(e){return e.source},instantiate:function(e){}};var w=n.prototype.newModule}();var Z,W;if("undefined"!=typeof XMLHttpRequest)W=function(e,t,r,n){function a(){r(i.responseText)}function o(){n(new Error("XHR error"+(i.status?" ("+i.status+(i.statusText?" "+i.statusText:"")+")":"")+" loading "+e))}var i=new XMLHttpRequest,s=!0,l=!1;if(!("withCredentials"in i)){var u=/^(\w+:)?\/\/([^\/]+)/.exec(e);u&&(s=u[2]===window.location.host,u[1]&&(s&=u[1]===window.location.protocol))}s||"undefined"==typeof XDomainRequest||(i=new XDomainRequest,i.onload=a,i.onerror=o,i.ontimeout=o,i.onprogress=function(){},i.timeout=0,l=!0),i.onreadystatechange=function(){4===i.readyState&&(0==i.status?i.responseText?a():(i.addEventListener("error",o),i.addEventListener("load",a)):200===i.status?a():o())},i.open("GET",e,!0),i.setRequestHeader&&(i.setRequestHeader("Accept","application/x-es-module, */*"),t&&("string"==typeof t&&i.setRequestHeader("Authorization",t),i.withCredentials=!0)),l?setTimeout(function(){i.send()},0):i.send(null)};else if("undefined"!=typeof require&&"undefined"!=typeof process){var V;W=function(e,t,r,n){if("file:///"!=e.substr(0,8))throw new Error('Unable to fetch "'+e+'". Only file URLs of the form file:/// allowed running in Node.');return V=V||require("fs"),e=q?e.replace(/\//g,"\\").substr(8):e.substr(7),V.readFile(e,function(e,t){if(e)return n(e);var a=t+"";"\ufeff"===a[0]&&(a=a.substr(1)),r(a)})}}else{if("undefined"==typeof self||"undefined"==typeof self.fetch)throw new TypeError("No environment fetch API available.");W=function(e,t,r,n){var a={headers:{Accept:"application/x-es-module, */*"}};t&&("string"==typeof t&&(a.headers.Authorization=t),a.credentials="include"),fetch(e,a).then(function(e){if(e.ok)return e.text();throw new Error("Fetch error: "+e.status+" "+e.statusText)}).then(r,n)}}var Y=function(){function t(t){var n=this;return Promise.resolve(e["typescript"==n.transpiler?"ts":n.transpiler]||(n.pluginLoader||n)["import"](n.transpiler)).then(function(e){e.__useDefault&&(e=e["default"]);var a;return a=e.Compiler?r:e.createLanguageService?i:o,"(function(__moduleName){"+a.call(n,t,e)+'\n})("'+t.name+'");\n//# sourceURL='+t.address+"!transpiled"})}function r(e,t){var r=this.traceurOptions||{};r.modules="instantiate",r.script=!1,void 0===r.sourceMaps&&(r.sourceMaps="inline"),r.filename=e.address,r.inputSourceMap=e.metadata.sourceMap,r.moduleName=!1;var n=new t.Compiler(r);return a(e.source,n,r.filename)}function a(e,t,r){try{return t.compile(e,r)}catch(n){if(n.length)throw n[0];throw n}}function o(e,t){var r=this.babelOptions||{};return r.modules="system",void 0===r.sourceMap&&(r.sourceMap="inline"),r.inputSourceMap=e.metadata.sourceMap,r.filename=e.address,r.code=!0,r.ast=!1,t.transform(e.source,r).code}function i(e,t){var r=this.typescriptOptions||{};return r.target=r.target||t.ScriptTarget.ES5,void 0===r.sourceMap&&(r.sourceMap=!0),r.sourceMap&&r.inlineSourceMap!==!1&&(r.inlineSourceMap=!0),r.module=t.ModuleKind.System,t.transpile(e.source,r,e.address)}return n.prototype.transpiler="traceur",t}();o.prototype=n.prototype,a.prototype=new o,a.prototype.constructor=a;var K,Q=/^[^\/]+:\/\//,ee=new G(J),te=!0;try{Object.getOwnPropertyDescriptor({a:0},"a")}catch(X){te=!1}var re;!function(){function r(e){return l?c+new Buffer(e).toString("base64"):"undefined"!=typeof btoa?c+btoa(unescape(encodeURIComponent(e))):""}function n(e,t){var n=e.source.lastIndexOf("\n");"global"==e.metadata.format&&(t=!1);var a=e.metadata.sourceMap;if(a){if("object"!=typeof a)throw new TypeError("load.metadata.sourceMap must be set to an object.");a=JSON.stringify(a)}return(t?"(function(System, SystemJS) {":"")+e.source+(t?"\n})(System, System);":"")+("\n//# sourceURL="!=e.source.substr(n,15)?"\n//# sourceURL="+e.address+(a?"!transpiled":""):"")+(a&&r(a)||"")}function a(t,r){d=r,0==h++&&(f=e.System),e.System=e.SystemJS=t}function o(){0==--h&&(e.System=e.SystemJS=f),d=void 0}function s(e){v||(v=document.head||document.body||document.documentElement);var r=document.createElement("script");r.text=n(e,!1);var i,s=window.onerror;if(window.onerror=function(r){i=t(r,"Evaluating "+e.address),s&&s.apply(this,arguments)},a(this,e),e.metadata.integrity&&r.setAttribute("integrity",e.metadata.integrity),e.metadata.nonce&&r.setAttribute("nonce",e.metadata.nonce),v.appendChild(r),v.removeChild(r),o(),window.onerror=s,i)throw i}var l="undefined"!=typeof Buffer;try{l&&"YQ=="!=new Buffer("a").toString("base64")&&(l=!1)}catch(u){l=!1}var d,c="\n//# sourceMappingURL=data:application/json;base64,";i("pushRegister_",function(){return function(e){return d?(this.reduceRegister_(d,e),!0):!1}});var f,m,p,h=0;re=function(e){if(e.source){if((e.metadata.integrity||e.metadata.nonce)&&g)return s.call(this,e);try{a(this,e),d=e,!p&&this._nodeRequire&&(p=this._nodeRequire("vm"),m=p.runInThisContext("typeof System !== 'undefined' && System")===this),m?p.runInThisContext(n(e,!0),{filename:e.address+(e.metadata.sourceMap?"!transpiled":"")}):(0,eval)(n(e,!0)),o()}catch(r){throw o(),t(r,"Evaluating "+e.address)}}};var g=!1;D&&"undefined"!=typeof document&&document.getElementsByTagName&&(window.chrome&&window.chrome.extension||navigator.userAgent.match(/^Node\.js/)||(g=!0));var v}();var ne;s(function(e){return function(){e.call(this),this.baseURL=J,this.map={},"undefined"!=typeof $__curScript&&(this.scriptSrc=$__curScript.src),this.warnings=!1,this.defaultJSExtensions=!1,this.pluginFirst=!1,this.loaderErrorStack=!1,this.set("@empty",this.newModule({})),j.call(this,!1,!1)}}),"undefined"==typeof require||"undefined"==typeof process||process.browser||(a.prototype._nodeRequire=require);var ae;i("normalize",function(e){return function(e,t,r){var n=M.call(this,e,t);return!this.defaultJSExtensions||r||".js"==n.substr(n.length-3,3)||d(n)||(n+=".js"),n}});var oe="undefined"!=typeof XMLHttpRequest;i("locate",function(e){return function(t){return Promise.resolve(e.call(this,t)).then(function(e){return oe?e.replace(/#/g,"%23"):e})}}),i("fetch",function(){return function(e){return new Promise(function(t,r){W(e.address,e.metadata.authorization,t,r)})}}),i("import",function(e){return function(t,r,n){return r&&r.name&&w.call(this,"SystemJS.import(name, { name: parentName }) is deprecated for SystemJS.import(name, parentName), while importing "+t+" from "+r.name),e.call(this,t,r,n).then(function(e){return e.__useDefault?e["default"]:e})}}),i("translate",function(e){return function(t){return"detect"==t.metadata.format&&(t.metadata.format=void 0),e.apply(this,arguments)}}),i("instantiate",function(e){return function(e){if("json"==e.metadata.format&&!this.builder){var t=e.metadata.entry=R();t.deps=[],t.execute=function(){try{return JSON.parse(e.source)}catch(t){throw new Error("Invalid JSON file "+e.name)}}}}}),a.prototype.getConfig=function(e){var t={},r=this;for(var n in r)r.hasOwnProperty&&!r.hasOwnProperty(n)||n in a.prototype&&"transpiler"!=n||-1==$.call(["_loader","amdDefine","amdRequire","defined","failed","version","loads"],n)&&(t[n]=r[n]);return t.production=ne.production,t};var ie;a.prototype.config=function(e,t){function r(e){for(var t in e)if(e.hasOwnProperty(t))return!0}var n=this;if("loaderErrorStack"in e&&(ie=$__curScript,e.loaderErrorStack?$__curScript=void 0:$__curScript=ie),"warnings"in e&&(n.warnings=e.warnings),e.transpilerRuntime===!1&&(n._loader.loadedTranspilerRuntime=!0),("production"in e||"build"in e)&&j.call(n,!!e.production,!!(e.build||ne&&ne.build)),!t){var a;if(O(n,e,function(e){a=a||e.baseURL}),a=a||e.baseURL){if(r(n.packages)||r(n.meta)||r(n.depCache)||r(n.bundles)||r(n.packageConfigPaths))throw new TypeError("Incorrect configuration order. The baseURL must be configured with the first SystemJS.config call.");this.baseURL=a,E.call(this)}if(e.paths&&g(n.paths,e.paths),O(n,e,function(e){e.paths&&g(n.paths,e.paths)}),this.warnings)for(var o in n.paths)-1!=o.indexOf("*")&&w.call(n,'Paths configuration "'+o+'" -> "'+n.paths[o]+'" uses wildcards which are being deprecated for just leaving a trailing "/" to indicate folder paths.')}if(e.defaultJSExtensions&&(n.defaultJSExtensions=e.defaultJSExtensions,w.call(n,"The defaultJSExtensions configuration option is deprecated, use packages configuration instead.")),e.pluginFirst&&(n.pluginFirst=e.pluginFirst),e.map)for(var o in e.map){var i=e.map[o];if("string"!=typeof i){var s=n.defaultJSExtensions&&".js"!=o.substr(o.length-3,3),l=n.decanonicalize(o);s&&".js"==l.substr(l.length-3,3)&&(l=l.substr(0,l.length-3));var u="";for(var c in n.packages)l.substr(0,c.length)==c&&(!l[c.length]||"/"==l[c.length])&&u.split("/").length<c.split("/").length&&(u=c);u&&n.packages[u].main&&(l=l.substr(0,l.length-n.packages[u].main.length-1));var c=n.packages[l]=n.packages[l]||{};c.map=i}else n.map[o]=i}if(e.packageConfigPaths){for(var f=[],m=0;m<e.packageConfigPaths.length;m++){var p=e.packageConfigPaths[m],h=Math.max(p.lastIndexOf("*")+1,p.lastIndexOf("/")),v=M.call(n,p.substr(0,h));f[m]=v+p.substr(h)}n.packageConfigPaths=f}if(e.bundles)for(var o in e.bundles){for(var y=[],m=0;m<e.bundles[o].length;m++){var s=n.defaultJSExtensions&&".js"!=e.bundles[o][m].substr(e.bundles[o][m].length-3,3),x=n.decanonicalize(e.bundles[o][m]);s&&".js"==x.substr(x.length-3,3)&&(x=x.substr(0,x.length-3)),y.push(x)}n.bundles[o]=y}if(e.packages)for(var o in e.packages){if(o.match(/^([^\/]+:)?\/\/$/))throw new TypeError('"'+o+'" is not a valid package name.');var l=M.call(n,o);"/"==l[l.length-1]&&(l=l.substr(0,l.length-1)),b(n,l,e.packages[o],!1)}for(var S in e){var i=e[S];if(-1==$.call(["baseURL","map","packages","bundles","paths","warnings","packageConfigPaths","loaderErrorStack","browserConfig","nodeConfig","devConfig","buildConfig","productionConfig"],S))if("object"!=typeof i||i instanceof Array)n[S]=i;else{n[S]=n[S]||{};for(var o in i)if("meta"==S&&"*"==o[0])g(n[S][o]=n[S][o]||{},i[o]);else if("meta"==S){var _=M.call(n,o);n.defaultJSExtensions&&".js"!=_.substr(_.length-3,3)&&!d(_)&&(_+=".js"),g(n[S][_]=n[S][_]||{},i[o])}else if("depCache"==S){var s=n.defaultJSExtensions&&".js"!=o.substr(o.length-3,3),l=n.decanonicalize(o);s&&".js"==l.substr(l.length-3,3)&&(l=l.substr(0,l.length-3)),n[S][l]=[].concat(i[o])}else n[S][o]=i[o]}}O(n,e,function(e){n.config(e,!0)})},function(){function e(e,t){var r,n,a=0;for(var o in e.packages)t.substr(0,o.length)!==o||t.length!==o.length&&"/"!==t[o.length]||(n=o.split("/").length,n>a&&(r=o,a=n));return r}function t(e,t,r,n,a){if(!n||"/"==n[n.length-1]||a||t.defaultExtension===!1)return n;var o=!1;if(t.meta&&p(t.meta,n,function(e,t,r){return 0==r||e.lastIndexOf("*")!=e.length-1?o=!0:void 0}),!o&&e.meta&&p(e.meta,r+"/"+n,function(e,t,r){return 0==r||e.lastIndexOf("*")!=e.length-1?o=!0:void 0}),o)return n;var i="."+(t.defaultExtension||"js");return n.substr(n.length-i.length)!=i?n+i:n}function r(e,r,n,a,i){if(!a){if(!r.main)return n+(e.defaultJSExtensions?".js":"");a="./"==r.main.substr(0,2)?r.main.substr(2):r.main}if(r.map){var s="./"+a,l=_(r.map,s);if(l||(s="./"+t(e,r,n,a,i),s!="./"+a&&(l=_(r.map,s))),l){var u=o(e,r,n,l,s,i);if(u)return u}}return n+"/"+t(e,r,n,a,i)}function n(e,t,r,n){if("."==e)throw new Error("Package "+r+' has a map entry for "." which is not permitted.');return t.substr(0,e.length)==e&&n.length>e.length?!1:!0}function o(e,r,a,o,i,s){"/"==i[i.length-1]&&(i=i.substr(0,i.length-1));var l=r.map[o];if("object"==typeof l)throw new Error("Synchronous conditional normalization not supported sync normalizing "+o+" in "+a);if(n(o,l,a,i)&&"string"==typeof l){if("."==l)l=a;else if("./"==l.substr(0,2))return a+"/"+t(e,r,a,l.substr(2)+i.substr(o.length),s);return e.normalizeSync(l+i.substr(o.length),a+"/")}}function l(e,r,n,a,o){if(!a){if(!r.main)return Promise.resolve(n+(e.defaultJSExtensions?".js":""));a="./"==r.main.substr(0,2)?r.main.substr(2):r.main}var i,s;return r.map&&(i="./"+a,s=_(r.map,i),s||(i="./"+t(e,r,n,a,o),i!="./"+a&&(s=_(r.map,i)))),(s?d(e,r,n,s,i,o):Promise.resolve()).then(function(i){return i?Promise.resolve(i):Promise.resolve(n+"/"+t(e,r,n,a,o))})}function u(e,r,n,a,o,i,s){if("."==o)o=n;else if("./"==o.substr(0,2))return Promise.resolve(n+"/"+t(e,r,n,o.substr(2)+i.substr(a.length),s)).then(function(t){return C.call(e,t,n+"/")});return e.normalize(o+i.substr(a.length),n+"/")}function d(e,t,r,a,o,i){"/"==o[o.length-1]&&(o=o.substr(0,o.length-1));var s=t.map[a];if("string"==typeof s)return n(a,s,r,o)?u(e,t,r,a,s,o,i):Promise.resolve();if(e.builder)return Promise.resolve(r+"/#:"+o);var l=[],d=[];for(var c in s){var f=I(c);d.push({condition:f,map:s[c]}),l.push(e["import"](f.module,r))}return Promise.all(l).then(function(e){for(var t=0;t<d.length;t++){var r=d[t].condition,n=S(r.prop,e[t]);if(!r.negate&&n||r.negate&&!n)return d[t].map}}).then(function(s){if(s){if(!n(a,s,r,o))return;return u(e,t,r,a,s,o,i)}})}function c(e){var t=e.lastIndexOf("*"),r=Math.max(t+1,e.lastIndexOf("/"));return{length:r,regEx:new RegExp("^("+e.substr(0,r).replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,"[^\\/]+")+")(\\/|$)"),wildcard:-1!=t}}function f(e,t){for(var r,n,a=!1,o=0;o<e.packageConfigPaths.length;o++){var i=e.packageConfigPaths[o],s=h[i]||(h[i]=c(i));if(!(t.length<s.length)){var l=t.match(s.regEx);!l||r&&(a&&s.wildcard||!(r.length<l[1].length))||(r=l[1],a=!s.wildcard,n=r+i.substr(s.length))}}return r?{packageName:r,configPath:n}:void 0}function m(e,t,r){var n=e.pluginLoader||e;return(n.meta[r]=n.meta[r]||{}).format="json",n.meta[r].loader=null,n.load(r).then(function(){var a=n.get(r)["default"];return a.systemjs&&(a=a.systemjs),a.modules&&(a.meta=a.modules,w.call(e,"Package config file "+r+' is configured with "modules", which is deprecated as it has been renamed to "meta".')),b(e,t,a,!0)})}function p(e,t,r){var n;for(var a in e){var o="./"==a.substr(0,2)?"./":"";if(o&&(a=a.substr(2)),n=a.indexOf("*"),-1!==n&&a.substr(0,n)==t.substr(0,n)&&a.substr(n+1)==t.substr(t.length-a.length+n+1)&&r(a,e[o+a],a.split("/").length))return}var i=e[t]&&e.hasOwnProperty&&e.hasOwnProperty(t)?e[t]:e["./"+t];i&&r(i,i,0)}s(function(e){return function(){e.call(this),this.packages={},this.packageConfigPaths=[]}}),a.prototype.normalizeSync=a.prototype.decanonicalize=a.prototype.normalize,i("decanonicalize",function(t){return function(r,n){if(this.builder)return t.call(this,r,n,!0);var a=t.call(this,r,n,!1);if(!this.defaultJSExtensions)return a;var o=e(this,a),i=this.packages[o],s=i&&i.defaultExtension;return void 0==s&&i&&i.meta&&p(i.meta,a.substr(o),function(e,t,r){return 0==r||e.lastIndexOf("*")!=e.length-1?(s=!1,!0):void 0}),(s===!1||s&&".js"!=s)&&".js"!=r.substr(r.length-3,3)&&".js"==a.substr(a.length-3,3)&&(a=a.substr(0,a.length-3)),a}}),i("normalizeSync",function(t){return function(n,a,i){var s=this;if(i=i===!0,a)var l=e(s,a)||s.defaultJSExtensions&&".js"==a.substr(a.length-3,3)&&e(s,a.substr(0,a.length-3));
-var u=l&&s.packages[l];if(u&&"."!=n[0]){var d=u.map,c=d&&_(d,n);if(c&&"string"==typeof d[c]){var m=o(s,u,l,c,n,i);if(m)return m}}var p=s.defaultJSExtensions&&".js"!=n.substr(n.length-3,3),h=t.call(s,n,a,!1);p&&".js"!=h.substr(h.length-3,3)&&(p=!1),p&&(h=h.substr(0,h.length-3));var g=f(s,h),v=g&&g.packageName||e(s,h);if(!v)return h+(p?".js":"");var y=h.substr(v.length+1);return r(s,s.packages[v]||{},v,y,i)}}),i("normalize",function(t){return function(r,n,a){var o=this;return a=a===!0,Promise.resolve().then(function(){if(n)var t=e(o,n)||o.defaultJSExtensions&&".js"==n.substr(n.length-3,3)&&e(o,n.substr(0,n.length-3));var i=t&&o.packages[t];if(i&&"./"!=r.substr(0,2)){var s=i.map,l=s&&_(s,r);if(l)return d(o,i,t,l,r,a)}return Promise.resolve()}).then(function(i){if(i)return i;var s=o.defaultJSExtensions&&".js"!=r.substr(r.length-3,3),u=t.call(o,r,n,!1);s&&".js"!=u.substr(u.length-3,3)&&(s=!1),s&&(u=u.substr(0,u.length-3));var d=f(o,u),c=d&&d.packageName||e(o,u);if(!c)return Promise.resolve(u+(s?".js":""));var p=o.packages[c],h=p&&(p.configured||!d);return(h?Promise.resolve(p):m(o,c,d.configPath)).then(function(e){var t=u.substr(c.length+1);return l(o,e,c,t,a)})})}});var h={};i("locate",function(t){return function(r){var n=this;return Promise.resolve(t.call(this,r)).then(function(t){var a=e(n,r.name);if(a){var o=n.packages[a],i=r.name.substr(a.length+1),s={};if(o.meta){var l=0;p(o.meta,i,function(e,t,r){r>l&&(l=r),v(s,t,r&&l>r)}),v(r.metadata,s)}o.format&&!r.metadata.loader&&(r.metadata.format=r.metadata.format||o.format)}return t})}})}(),function(){function t(){if(s&&"interactive"===s.script.readyState)return s.load;for(var e=0;e<d.length;e++)if("interactive"==d[e].script.readyState)return s=d[e],s.load}function r(e,t){return new Promise(function(e,r){t.metadata.integrity&&r(new Error("Subresource integrity checking is not supported in web workers.")),l=t;try{importScripts(t.address)}catch(n){l=null,r(n)}l=null,t.metadata.entry||r(new Error(t.address+" did not call System.register or AMD define. If loading a global, ensure the meta format is set to global.")),e("")})}if("undefined"!=typeof document)var n=document.getElementsByTagName("head")[0];var a,o,s,l=null,u=n&&function(){var e=document.createElement("script"),t="undefined"!=typeof opera&&"[object Opera]"===opera.toString();return e.attachEvent&&!(e.attachEvent.toString&&e.attachEvent.toString().indexOf("[native code")<0)&&!t}(),d=[],c=0,f=[];i("pushRegister_",function(e){return function(r){return e.call(this,r)?!1:(l?this.reduceRegister_(l,r):u?this.reduceRegister_(t(),r):c?f.push(r):this.reduceRegister_(null,r),!0)}}),i("fetch",function(t){return function(i){var l=this;return"json"!=i.metadata.format&&i.metadata.scriptLoad&&(D||F)?F?r(l,i):new Promise(function(t,r){function m(e){if(!g.readyState||"loaded"==g.readyState||"complete"==g.readyState){if(c--,i.metadata.entry||f.length){if(!u){for(var n=0;n<f.length;n++)l.reduceRegister_(i,f[n]);f=[]}}else l.reduceRegister_(i);h(),i.metadata.entry||i.metadata.bundle||r(new Error(i.name+" did not call System.register or AMD define. If loading a global module configure the global name via the meta exports property for script injection support.")),t("")}}function p(e){h(),r(new Error("Unable to load script "+i.address))}function h(){if(e.System=a,e.require=o,g.detachEvent){g.detachEvent("onreadystatechange",m);for(var t=0;t<d.length;t++)d[t].script==g&&(s&&s.script==g&&(s=null),d.splice(t,1))}else g.removeEventListener("load",m,!1),g.removeEventListener("error",p,!1);n.removeChild(g)}var g=document.createElement("script");g.async=!0,i.metadata.crossOrigin&&(g.crossOrigin=i.metadata.crossOrigin),i.metadata.integrity&&g.setAttribute("integrity",i.metadata.integrity),u?(g.attachEvent("onreadystatechange",m),d.push({script:g,load:i})):(g.addEventListener("load",m,!1),g.addEventListener("error",p,!1)),c++,a=e.System,o=e.require,g.src=i.address,n.appendChild(g)}):t.call(this,i)}})}();var se=/^(\s*\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)*\s*/;!function(){function t(e,r,n){if(n[e.groupIndex]=n[e.groupIndex]||[],-1==$.call(n[e.groupIndex],e)){n[e.groupIndex].push(e);for(var a=0,o=e.normalizedDeps.length;o>a;a++){var i=e.normalizedDeps[a],s=r.defined[i];if(s&&!s.evaluated){var l=e.groupIndex+(s.declarative!=e.declarative);if(null===s.groupIndex||s.groupIndex<l){if(null!==s.groupIndex&&(n[s.groupIndex].splice($.call(n[s.groupIndex],s),1),0==n[s.groupIndex].length))throw new Error("Mixed dependency cycle detected");s.groupIndex=l}t(s,r,n)}}}}function n(e,r,n){if(!r.module){r.groupIndex=0;var a=[];t(r,n,a);for(var o=!!r.declarative==a.length%2,i=a.length-1;i>=0;i--){for(var s=a[i],l=0;l<s.length;l++){var d=s[l];o?u(d,n):c(d,n)}o=!o}}}function o(){}function l(e,t){return t[e]||(t[e]={name:e,dependencies:[],exports:new o,importers:[]})}function u(t,r){if(!t.module){var n=r._loader.moduleRecords,a=t.module=l(t.name,n),o=t.module.exports,i=t.declare.call(e,function(e,t){if(a.locked=!0,"object"==typeof e)for(var r in e)o[r]=e[r];else o[e]=t;for(var n=0,i=a.importers.length;i>n;n++){var s=a.importers[n];if(!s.locked){var l=$.call(s.dependencies,a),u=s.setters[l];u&&u(o)}}return a.locked=!1,t},{id:t.name});if("function"==typeof i&&(i={setters:[],execute:i}),i=i||{setters:[],execute:function(){}},a.setters=i.setters,a.execute=i.execute,!a.setters||!a.execute)throw new TypeError("Invalid System.register form for "+t.name);for(var s=0,d=t.normalizedDeps.length;d>s;s++){var c,f=t.normalizedDeps[s],m=r.defined[f],p=n[f];p?c=p.exports:m&&!m.declarative?c=m.esModule:m?(u(m,r),p=m.module,c=p.exports):c=r.get(f),p&&p.importers?(p.importers.push(a),a.dependencies.push(p)):a.dependencies.push(null);for(var h=t.originalIndices[s],g=0,v=h.length;v>g;++g){var y=h[g];a.setters[y]&&a.setters[y](c)}}}}function d(e,t){var r,n=t.defined[e];if(n)n.declarative?f(e,n,[],t):n.evaluated||c(n,t),r=n.module.exports;else if(r=t.get(e),!r)throw new Error("Unable to load dependency "+e+".");return(!n||n.declarative)&&r&&r.__useDefault?r["default"]:r}function c(t,n){if(!t.module){var a={},o=t.module={exports:a,id:t.name};if(!t.executingRequire)for(var i=0,s=t.normalizedDeps.length;s>i;i++){var l=t.normalizedDeps[i],u=n.defined[l];u&&c(u,n)}t.evaluated=!0;var f=t.execute.call(e,function(e){for(var r=0,a=t.deps.length;a>r;r++)if(t.deps[r]==e)return d(t.normalizedDeps[r],n);var o=n.normalizeSync(e,t.name);if(-1!=$.call(t.normalizedDeps,o))return d(o,n);throw new Error("Module "+e+" not declared as a dependency of "+t.name)},a,o);void 0!==f&&(o.exports=f),a=o.exports,a&&(a.__esModule||a instanceof r)?t.esModule=n.newModule(a):t.esmExports&&a!==e?t.esModule=n.newModule(p(a)):t.esModule=n.newModule({"default":a,__useDefault:!0})}}function f(t,r,n,a){if(r&&!r.evaluated&&r.declarative){n.push(t);for(var o=0,i=r.normalizedDeps.length;i>o;o++){var s=r.normalizedDeps[o];-1==$.call(n,s)&&(a.defined[s]?f(s,a.defined[s],n,a):a.get(s))}r.evaluated||(r.evaluated=!0,r.module.execute.call(e))}}a.prototype.register=function(e,t,r){if("string"!=typeof e&&(r=t,t=e,e=null),"boolean"==typeof r)return this.registerDynamic.apply(this,arguments);var n=R();n.name=e&&(this.decanonicalize||this.normalize).call(this,e),n.declarative=!0,n.deps=t,n.declare=r,this.pushRegister_({amd:!1,entry:n})},a.prototype.registerDynamic=function(e,t,r,n){"string"!=typeof e&&(n=r,r=t,t=e,e=null);var a=R();a.name=e&&(this.decanonicalize||this.normalize).call(this,e),a.deps=t,a.execute=n,a.executingRequire=r,this.pushRegister_({amd:!1,entry:a})},i("reduceRegister_",function(){return function(e,t){if(t){var r=t.entry,n=e&&e.metadata;if(r.name&&(r.name in this.defined||(this.defined[r.name]=r),n&&(n.bundle=!0)),!r.name||e&&!n.entry&&r.name==e.name){if(!n)throw new TypeError("Invalid System.register call. Anonymous System.register calls can only be made by modules loaded by SystemJS.import and not via script tags.");if(n.entry)throw"register"==n.format?new Error("Multiple anonymous System.register calls in module "+e.name+". If loading a bundle, ensure all the System.register calls are named."):new Error("Module "+e.name+" interpreted as "+n.format+" module format, but called System.register.");n.format||(n.format="register"),n.entry=r}}}}),s(function(e){return function(){e.call(this),this.defined={},this._loader.moduleRecords={}}}),U(o,"toString",{value:function(){return"Module"}}),i("delete",function(e){return function(t){return delete this._loader.moduleRecords[t],delete this.defined[t],e.call(this,t)}}),i("fetch",function(e){return function(t){return this.defined[t.name]?(t.metadata.format="defined",""):(t.metadata.deps=t.metadata.deps||[],e.call(this,t))}}),i("translate",function(e){return function(t){return t.metadata.deps=t.metadata.deps||[],Promise.resolve(e.apply(this,arguments)).then(function(e){return("register"==t.metadata.format||"system"==t.metadata.format||!t.metadata.format&&k(t.source))&&(t.metadata.format="register"),e})}}),i("load",function(e){return function(t){var r=this,a=r.defined[t];return!a||a.deps.length?e.apply(this,arguments):(a.originalIndices=a.normalizedDeps=[],n(t,a,r),f(t,a,[],r),a.esModule||(a.esModule=r.newModule(a.module.exports)),r.trace||(r.defined[t]=void 0),r.set(t,a.esModule),Promise.resolve())}}),i("instantiate",function(e){return function(t){"detect"==t.metadata.format&&(t.metadata.format=void 0),e.call(this,t);var r,a=this;if(a.defined[t.name])r=a.defined[t.name],r.declarative||(r.deps=r.deps.concat(t.metadata.deps)),r.deps=r.deps.concat(t.metadata.deps);else if(t.metadata.entry)r=t.metadata.entry,r.deps=r.deps.concat(t.metadata.deps);else if(!(a.builder&&t.metadata.bundle||"register"!=t.metadata.format&&"esm"!=t.metadata.format&&"es6"!=t.metadata.format)){if("undefined"!=typeof re&&re.call(a,t),!t.metadata.entry&&!t.metadata.bundle)throw new Error(t.name+" detected as "+t.metadata.format+" but didn't execute.");r=t.metadata.entry,r&&t.metadata.deps&&(r.deps=r.deps.concat(t.metadata.deps))}r||(r=R(),r.deps=t.metadata.deps,r.execute=function(){}),a.defined[t.name]=r;var o=m(r.deps);r.deps=o.names,r.originalIndices=o.indices,r.name=t.name,r.esmExports=t.metadata.esmExports!==!1;for(var i=[],s=0,l=r.deps.length;l>s;s++)i.push(Promise.resolve(a.normalize(r.deps[s],t.name)));return Promise.all(i).then(function(e){return r.normalizedDeps=e,{deps:r.deps,execute:function(){return n(t.name,r,a),f(t.name,r,[],a),r.esModule||(r.esModule=a.newModule(r.module.exports)),a.trace||(a.defined[t.name]=void 0),r.esModule}}})}})}(),function(){var r=/(^\s*|[}\);\n]\s*)(import\s*(['"]|(\*\s+as\s+)?[^"'\(\)\n;]+\s*from\s*['"]|\{)|export\s+\*\s+from\s+["']|export\s*(\{|default|function|class|var|const|let|async\s+function))/,n=/\$traceurRuntime\s*\./,a=/babelHelpers\s*\./;i("translate",function(o){return function(i){var s=this,l=arguments;return o.apply(s,l).then(function(o){if("esm"==i.metadata.format||"es6"==i.metadata.format||!i.metadata.format&&o.match(r)){if("es6"==i.metadata.format&&w.call(s,"Module "+i.name+' has metadata setting its format to "es6", which is deprecated.\nThis should be updated to "esm".'),i.metadata.format="esm",i.metadata.deps){for(var u="",d=0;d<i.metadata.deps.length;d++)u+='import "'+i.metadata.deps[d]+'"; ';i.source=u+o}if(s.transpiler===!1){if(s.builder)return o;throw new TypeError("Unable to dynamically transpile ES module as SystemJS.transpiler set to false.")}return s._loader.loadedTranspiler=s._loader.loadedTranspiler||!1,s.pluginLoader&&(s.pluginLoader._loader.loadedTranspiler=s._loader.loadedTranspiler||!1),(s._loader.transpilerPromise||(s._loader.transpilerPromise=Promise.resolve(e["typescript"==s.transpiler?"ts":s.transpiler]||(s.pluginLoader||s).normalize(s.transpiler).then(function(e){return s._loader.transpilerNormalized=e,(s.pluginLoader||s).load(e).then(function(){return(s.pluginLoader||s).get(e)})})))).then(function(t){return s._loader.loadedTranspilerRuntime=!0,"function"!=typeof t["default"]||e["typescript"==s.transpiler?"ts":s.transpiler]?t.translate?t==i.metadata.loaderModule?i.source:("string"==typeof i.metadata.sourceMap&&(i.metadata.sourceMap=JSON.parse(i.metadata.sourceMap)),Promise.resolve(t.translate.apply(s,l)).then(function(e){var t=i.metadata.sourceMap;if(t&&"object"==typeof t){var r=i.address.split("!")[0];t.file&&t.file!=i.address||(t.file=r+"!transpiled"),(!t.sources||t.sources.length<=1&&(!t.sources[0]||t.sources[0]==i.address))&&(t.sources=[r])}return"esm"==i.metadata.format&&!s.builder&&k(e)&&(i.metadata.format="register"),e})):(s.builder&&(i.metadata.originalSource=i.source),Y.call(s,i).then(function(e){return i.metadata.sourceMap=void 0,e})):s.builder?o:Promise.resolve(t["default"].call(s,i.address,i.name)).then(function(e){return x(i,e),""})},function(e){throw t(e,"Unable to load transpiler to transpile "+i.name)})}if(s.transpiler===!1)return o;if(s._loader.loadedTranspiler!==!1||"traceur"!=s.transpiler&&"typescript"!=s.transpiler&&"babel"!=s.transpiler||i.name!=s.normalizeSync(s.transpiler)||(o.length>100&&!i.metadata.format&&(i.metadata.format="global","traceur"===s.transpiler&&(i.metadata.exports="traceur"),"typescript"===s.transpiler&&(i.metadata.exports="ts")),s._loader.loadedTranspiler=!0),s._loader.loadedTranspilerRuntime===!1&&(i.name==s.normalizeSync("traceur-runtime")||i.name==s.normalizeSync("babel/external-helpers*"))&&(o.length>100&&(i.metadata.format=i.metadata.format||"global"),s._loader.loadedTranspilerRuntime=!0),("register"==i.metadata.format||i.metadata.bundle)&&s._loader.loadedTranspilerRuntime!==!0){if("traceur"==s.transpiler&&!e.$traceurRuntime&&i.source.match(n))return s._loader.loadedTranspilerRuntime=s._loader.loadedTranspilerRuntime||!1,s["import"]("traceur-runtime").then(function(){return o});if("babel"==s.transpiler&&!e.babelHelpers&&i.source.match(a))return s._loader.loadedTranspilerRuntime=s._loader.loadedTranspilerRuntime||!1,s["import"]("babel/external-helpers").then(function(){return o})}return o})}})}();var le="undefined"!=typeof self?"self":"global";i("fetch",function(e){return function(t){return t.metadata.exports&&!t.metadata.format&&(t.metadata.format="global"),e.call(this,t)}}),i("instantiate",function(e){return function(t){var r=this;if(t.metadata.format||(t.metadata.format="global"),"global"==t.metadata.format&&!t.metadata.entry){var n=R();t.metadata.entry=n,n.deps=[];for(var a in t.metadata.globals){var o=t.metadata.globals[a];o&&n.deps.push(o)}n.execute=function(e,n,a){var o;if(t.metadata.globals){o={};for(var i in t.metadata.globals)t.metadata.globals[i]&&(o[i]=e(t.metadata.globals[i]))}var s=t.metadata.exports;s&&(t.source+="\n"+le+'["'+s+'"] = '+s+";");var l=r.get("@@global-helpers").prepareGlobal(a.id,s,o,!!t.metadata.encapsulateGlobal);return re.call(r,t),l()}}return e.call(this,t)}}),i("reduceRegister_",function(e){return function(t,r){if(r||!t.metadata.exports&&(!F||"global"!=t.metadata.format))return e.call(this,t,r);t.metadata.format="global";var n=t.metadata.entry=R();n.deps=t.metadata.deps;var a=z(t.metadata.exports);n.execute=function(){return a}}}),s(function(t){return function(){function r(t){if(Object.keys)Object.keys(e).forEach(t);else for(var r in e)i.call(e,r)&&t(r)}function n(t){r(function(r){if(-1==$.call(s,r)){try{var n=e[r]}catch(a){s.push(r)}t(r,n)}})}var a=this;t.call(a);var o,i=Object.prototype.hasOwnProperty,s=["_g","sessionStorage","localStorage","clipboardData","frames","frameElement","external","mozAnimationStartTime","webkitStorageInfo","webkitIndexedDB","mozInnerScreenY","mozInnerScreenX"];a.set("@@global-helpers",a.newModule({prepareGlobal:function(t,r,a,i){var s=e.define;e.define=void 0;var l;if(a){l={};for(var u in a)l[u]=e[u],e[u]=a[u]}return r||(o={},n(function(e,t){o[e]=t})),function(){var t,a=r?z(r):{},u=!!r;if((!r||i)&&n(function(n,s){o[n]!==s&&"undefined"!=typeof s&&(i&&(e[n]=void 0),r||(a[n]=s,"undefined"!=typeof t?u||t===s||(u=!0):t=s))}),a=u?a:t,l)for(var d in l)e[d]=l[d];return e.define=s,a}}}))}}),function(){function t(e){function t(e,t){for(var r=0;r<e.length;r++)if(e[r][0]<t.index&&e[r][1]>t.index)return!0;return!1}n.lastIndex=a.lastIndex=o.lastIndex=0;var r,i=[],s=[],l=[];if(e.length/e.split("\n").length<200){for(;r=o.exec(e);)s.push([r.index,r.index+r[0].length]);for(;r=a.exec(e);)t(s,r)||l.push([r.index+r[1].length,r.index+r[0].length-1])}for(;r=n.exec(e);)if(!t(s,r)&&!t(l,r)){var u=r[1].substr(1,r[1].length-2);if(u.match(/"|'/))continue;"/"==u[u.length-1]&&(u=u.substr(0,u.length-1)),i.push(u)}return i}var r=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.])(exports\s*(\[['"]|\.)|module(\.exports|\['exports'\]|\["exports"\])\s*(\[['"]|[=,\.]))/,n=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF."'])require\s*\(\s*("[^"\\]*(?:\\.[^"\\]*)*"|'[^'\\]*(?:\\.[^'\\]*)*')\s*\)/g,a=/(^|[^\\])(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,o=/("[^"\\\n\r]*(\\.[^"\\\n\r]*)*"|'[^'\\\n\r]*(\\.[^'\\\n\r]*)*')/g,s=/^\#\!.*/;i("instantiate",function(a){return function(o){var i=this;if(o.metadata.format||(r.lastIndex=0,n.lastIndex=0,(n.exec(o.source)||r.exec(o.source))&&(o.metadata.format="cjs")),"cjs"==o.metadata.format){var l=o.metadata.deps,u=o.metadata.cjsRequireDetection===!1?[]:t(o.source);for(var d in o.metadata.globals)o.metadata.globals[d]&&u.push(o.metadata.globals[d]);var c=R();o.metadata.entry=c,c.deps=u,c.executingRequire=!0,c.execute=function(t,r,n){function a(e){return"/"==e[e.length-1]&&(e=e.substr(0,e.length-1)),t.apply(this,arguments)}if(a.resolve=function(e){return i.get("@@cjs-helpers").requireResolve(e,n.id)},n.paths=[],n.require=t,!o.metadata.cjsDeferDepsExecute)for(var u=0;u<l.length;u++)a(l[u]);var d=i.get("@@cjs-helpers").getPathVars(n.id),c={exports:r,args:[a,r,n,d.filename,d.dirname,e,e]},f="(function(require, exports, module, __filename, __dirname, global, GLOBAL";if(o.metadata.globals)for(var m in o.metadata.globals)c.args.push(a(o.metadata.globals[m])),f+=", "+m;var p=e.define;e.define=void 0,e.__cjsWrapper=c,o.source=f+") {"+o.source.replace(s,"")+"\n}).apply(__cjsWrapper.exports, __cjsWrapper.args);",re.call(i,o),e.__cjsWrapper=void 0,e.define=p}}return a.call(i,o)}})}(),s(function(e){return function(){function t(e){return"file:///"==e.substr(0,8)?e.substr(7+!!q):n&&e.substr(0,n.length)==n?e.substr(n.length):e}var r=this;if(e.call(r),"undefined"!=typeof window&&"undefined"!=typeof document&&window.location)var n=location.protocol+"//"+location.hostname+(location.port?":"+location.port:"");r.set("@@cjs-helpers",r.newModule({requireResolve:function(e,n){return t(r.normalizeSync(e,n))},getPathVars:function(e){var r,n=e.lastIndexOf("!");r=-1!=n?e.substr(0,n):e;var a=r.split("/");return a.pop(),a=a.join("/"),{filename:t(r),dirname:t(a)}}}))}}),i("fetch",function(t){return function(r){return r.metadata.scriptLoad&&D&&(e.define=this.amdDefine),t.call(this,r)}}),s(function(t){return function(){function r(e,t){e=e.replace(s,"");var r=e.match(d),n=(r[1].split(",")[t]||"require").replace(c,""),a=f[n]||(f[n]=new RegExp(l+n+u,"g"));a.lastIndex=0;for(var o,i=[];o=a.exec(e);)i.push(o[2]||o[3]);return i}function n(e,t,r,a){if("object"==typeof e&&!(e instanceof Array))return n.apply(null,Array.prototype.splice.call(arguments,1,arguments.length-1));if("string"==typeof e&&"function"==typeof t&&(e=[e]),!(e instanceof Array)){if("string"==typeof e){var i=o.defaultJSExtensions&&".js"!=e.substr(e.length-3,3),s=o.decanonicalize(e,a);i&&".js"==s.substr(s.length-3,3)&&(s=s.substr(0,s.length-3));var l=o.get(s);if(!l)throw new Error('Module not already loaded loading "'+e+'" as '+s+(a?' from "'+a+'".':"."));return l.__useDefault?l["default"]:l}throw new TypeError("Invalid require")}for(var u=[],d=0;d<e.length;d++)u.push(o["import"](e[d],a));Promise.all(u).then(function(e){t&&t.apply(null,e)},r)}function a(t,a,i){function s(t,r,s){function c(e,r,a){return"string"==typeof e&&"function"!=typeof r?t(e):n.call(o,e,r,a,s.id)}for(var f=[],m=0;m<a.length;m++)f.push(t(a[m]));s.uri=s.id,s.config=function(){},-1!=d&&f.splice(d,0,s),-1!=u&&f.splice(u,0,r),-1!=l&&(c.toUrl=function(e){var t=o.defaultJSExtensions&&".js"!=e.substr(e.length-3,3),r=o.decanonicalize(e,s.id);return t&&".js"==r.substr(r.length-3,3)&&(r=r.substr(0,r.length-3)),r},f.splice(l,0,c));var p=e.require;e.require=n;var h=i.apply(-1==u?e:r,f);return e.require=p,"undefined"==typeof h&&s&&(h=s.exports),"undefined"!=typeof h?h:void 0}"string"!=typeof t&&(i=a,a=t,t=null),a instanceof Array||(i=a,a=["require","exports","module"].splice(0,i.length)),"function"!=typeof i&&(i=function(e){return function(){return e}}(i)),void 0===a[a.length-1]&&a.pop();var l,u,d;-1!=(l=$.call(a,"require"))&&(a.splice(l,1),t||(a=a.concat(r(i.toString(),l)))),-1!=(u=$.call(a,"exports"))&&a.splice(u,1),-1!=(d=$.call(a,"module"))&&a.splice(d,1);var c=R();c.name=t&&(o.decanonicalize||o.normalize).call(o,t),c.deps=a,c.execute=s,o.pushRegister_({amd:!0,entry:c})}var o=this;t.call(this);var s=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,l="(?:^|[^$_a-zA-Z\\xA0-\\uFFFF.])",u="\\s*\\(\\s*(\"([^\"]+)\"|'([^']+)')\\s*\\)",d=/\(([^\)]*)\)/,c=/^\s+|\s+$/g,f={};a.amd={},i("reduceRegister_",function(e){return function(t,r){if(!r||!r.amd)return e.call(this,t,r);var n=t&&t.metadata,a=r.entry;if(n)if(n.format&&"detect"!=n.format){if(!a.name&&"amd"!=n.format)throw new Error("AMD define called while executing "+n.format+" module "+t.name)}else n.format="amd";if(a.name)n&&(n.entry||n.bundle?n.entry&&n.entry.name&&n.entry.name!=t.name&&(n.entry=void 0):n.entry=a,n.bundle=!0),a.name in this.defined||(this.defined[a.name]=a);else{if(!n)throw new TypeError("Unexpected anonymous AMD define.");if(n.entry&&!n.entry.name)throw new Error("Multiple anonymous defines in module "+t.name);n.entry=a}}}),o.amdDefine=a,o.amdRequire=n}}),function(){var t=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.])define\s*\(\s*("[^"]+"\s*,\s*|'[^']+'\s*,\s*)?\s*(\[(\s*(("[^"]+"|'[^']+')\s*,|\/\/.*\r?\n|\/\*(.|\s)*?\*\/))*(\s*("[^"]+"|'[^']+')\s*,?)?(\s*(\/\/.*\r?\n|\/\*(.|\s)*?\*\/))*\s*\]|function\s*|{|[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*\))/;i("instantiate",function(r){return function(n){var a=this;if("amd"==n.metadata.format||!n.metadata.format&&n.source.match(t))if(n.metadata.format="amd",a.builder||a.execute===!1)n.metadata.execute=function(){return n.metadata.builderExecute.apply(this,arguments)};else{var o=e.define;e.define=this.amdDefine;try{re.call(a,n)}finally{e.define=o}if(!n.metadata.entry&&!n.metadata.bundle)throw new TypeError("AMD module "+n.name+" did not define")}return r.call(a,n)}})}(),function(){function e(e,t){if(t){var r;if(e.pluginFirst){if(-1!=(r=t.lastIndexOf("!")))return t.substr(r+1)}else if(-1!=(r=t.indexOf("!")))return t.substr(0,r);return t}}function t(e,t){var r,n,a=t.lastIndexOf("!");return-1!=a?(e.pluginFirst?(r=t.substr(a+1),n=t.substr(0,a)):(r=t.substr(0,a),n=t.substr(a+1)||r.substr(r.lastIndexOf(".")+1)),{argument:r,plugin:n}):void 0}function n(e,t,r,n){return n&&".js"==t.substr(t.length-3,3)&&(t=t.substr(0,t.length-3)),e.pluginFirst?r+"!"+t:t+"!"+r}function a(e,t){return e.defaultJSExtensions&&".js"!=t.substr(t.length-3,3)}function o(r){return function(o,i,s){var l=this,u=t(l,o);if(i=e(this,i),!u)return r.call(this,o,i,s);var d=l.normalizeSync(u.argument,i,!0),c=l.normalizeSync(u.plugin,i,!0);return n(l,d,c,a(l,u.argument))}}i("decanonicalize",o),i("normalizeSync",o),i("normalize",function(r){return function(o,i,s){var l=this;i=e(this,i);var u=t(l,o);return u?Promise.all([l.normalize(u.argument,i,!0),l.normalize(u.plugin,i,!1)]).then(function(e){return n(l,e[0],e[1],a(l,u.argument))}):r.call(l,o,i,s)}}),i("locate",function(e){return function(t){var r,n=this,a=t.name;return n.pluginFirst?-1!=(r=a.indexOf("!"))&&(t.metadata.loader=a.substr(0,r),t.name=a.substr(r+1)):-1!=(r=a.lastIndexOf("!"))&&(t.metadata.loader=a.substr(r+1),t.name=a.substr(0,r)),e.call(n,t).then(function(e){return-1==r&&t.metadata.loader?(n.pluginLoader||n).normalize(t.metadata.loader,t.name).then(function(r){return t.metadata.loader=r,e}):e}).then(function(e){var r=t.metadata.loader;if(!r)return e;if(t.name==r)throw new Error("Plugin "+r+" cannot load itself, make sure it is excluded from any wildcard meta configuration via a custom loader: false rule.");if(n.defined&&n.defined[a])return e;var o=n.pluginLoader||n;return o["import"](r).then(function(r){return t.metadata.loaderModule=r,t.address=e,r.locate?r.locate.call(n,t):e})})}}),i("fetch",function(e){return function(t){var n=this;if(t.metadata.loaderModule&&"defined"!=t.metadata.format){if("function"==typeof t.metadata.loaderModule||t.metadata.loaderModule instanceof r&&"function"==typeof t.metadata.loaderModule["default"])return"";if(t.metadata.scriptLoad=!1,t.metadata.loaderModule.fetch)return t.metadata.loaderModule.fetch.call(n,t,function(t){return e.call(n,t)})}return e.call(n,t)}}),i("translate",function(e){return function(t){var r=this,n=arguments;return t.metadata.loaderModule&&t.metadata.loaderModule.translate&&"defined"!=t.metadata.format?Promise.resolve(t.metadata.loaderModule.translate.apply(r,n)).then(function(a){var o=t.metadata.sourceMap;if(o){if("object"!=typeof o)throw new Error("load.metadata.sourceMap must be set to an object.");var i=t.address.split("!")[0];o.file&&o.file!=t.address||(o.file=i+"!transpiled"),(!o.sources||o.sources.length<=1&&(!o.sources[0]||o.sources[0]==t.address))&&(o.sources=[i])}return"string"==typeof a&&(t.source=a),e.apply(r,n)}):e.apply(r,n)}}),i("instantiate",function(e){return function(t){var n=this,a=!1;if(t.metadata.loaderModule&&!n.builder&&"defined"!=t.metadata.format){if(t.metadata.loaderModule.instantiate)return Promise.resolve(t.metadata.loaderModule.instantiate.call(n,t,function(t){if(a)throw new Error("Instantiate must only be called once.");return a=!0,e.call(n,t)})).then(function(r){return a?r:(void 0!==r&&x(t,r),e.call(n,t))});if("function"==typeof t.metadata.loaderModule||t.metadata.loaderModule instanceof r&&"function"==typeof t.metadata.loaderModule["default"])return Promise.resolve((t.metadata.loaderModule["default"]||t.metadata.loaderModule).call(n,t.address,t.name)).then(function(r){return void 0!==r&&x(t,r),e.call(n,t)})}return e.call(n,t)}})}();var ue=["browser","node","dev","build","production","default"],de=/#\{[^\}]+\}/;i("normalize",function(e){return function(t,r,n){var a=this;return A.call(a,t,r).then(function(t){return e.call(a,t,r,n)}).then(function(e){return C.call(a,e,r)})}}),function(){i("fetch",function(e){return function(t){var r=t.metadata.alias,n=t.metadata.deps||[];if(r){t.metadata.format="defined";var a=R();return this.defined[t.name]=a,a.declarative=!0,a.deps=n.concat([r]),a.declare=function(e){return{setters:[function(t){for(var r in t)e(r,t[r]);t.__useDefault&&(a.module.exports.__useDefault=!0)}],execute:function(){}}},""}return e.call(this,t)}})}(),function(){function e(e,t,r){for(var n,a=t.split(".");a.length>1;)n=a.shift(),e=e[n]=e[n]||{};n=a.shift(),n in e||(e[n]=r)}s(function(e){return function(){this.meta={},e.call(this)}}),i("locate",function(e){return function(t){var r,n=this.meta,a=t.name,o=0;for(var i in n)if(r=i.indexOf("*"),-1!==r&&i.substr(0,r)===a.substr(0,r)&&i.substr(r+1)===a.substr(a.length-i.length+r+1)){var s=i.split("/").length;s>o&&(o=s),v(t.metadata,n[i],o!=s)}return n[a]&&v(t.metadata,n[a]),e.call(this,t)}});var t=/^(\s*\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)+/,r=/\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\/\/[^\n]*|"[^"]+"\s*;?|'[^']+'\s*;?/g;i("translate",function(n){return function(a){if("defined"==a.metadata.format)return a.metadata.deps=a.metadata.deps||[],Promise.resolve(a.source);var o=a.source.match(t);if(o)for(var i=o[0].match(r),s=0;s<i.length;s++){var l=i[s],u=l.length,d=l.substr(0,1);if(";"==l.substr(u-1,1)&&u--,'"'==d||"'"==d){var c=l.substr(1,l.length-3),f=c.substr(0,c.indexOf(" "));if(f){var m=c.substr(f.length+1,c.length-f.length-1);"[]"==f.substr(f.length-2,2)?(f=f.substr(0,f.length-2),a.metadata[f]=a.metadata[f]||[],a.metadata[f].push(m)):a.metadata[f]instanceof Array?(w.call(this,"Module "+a.name+' contains deprecated "deps '+m+'" meta syntax.\nThis should be updated to "deps[] '+m+'" for pushing to array meta.'),a.metadata[f].push(m)):e(a.metadata,f,m)}else a.metadata[c]=!0}}return n.apply(this,arguments)}})}(),function(){s(function(e){return function(){e.call(this),this.bundles={},this._loader.loadedBundles={}}}),i("locate",function(e){return function(t){var r=this,n=!1;if(!(t.name in r.defined))for(var a in r.bundles){for(var o=0;o<r.bundles[a].length;o++){var i=r.bundles[a][o];if(i==t.name){n=!0;break}if(-1!=i.indexOf("*")){var s=i.split("*");if(2!=s.length){r.bundles[a].splice(o--,1);continue}if(t.name.substring(0,s[0].length)==s[0]&&t.name.substr(t.name.length-s[1].length,s[1].length)==s[1]&&-1==t.name.substr(s[0].length,t.name.length-s[1].length-s[0].length).indexOf("/")){n=!0;break}}}if(n)return r["import"](a).then(function(){return e.call(r,t)})}return e.call(r,t)}})}(),function(){s(function(e){return function(){e.call(this),this.depCache={}}}),i("locate",function(e){return function(t){var r=this,n=r.depCache[t.name];if(n)for(var a=0;a<n.length;a++)r["import"](n[a],t.name);return e.call(r,t)}})}(),Z=new a,e.SystemJS=Z,Z.version="0.19.47 Standard","object"==typeof module&&module.exports&&"object"==typeof exports&&(module.exports=Z),e.System=Z}("undefined"!=typeof self?self:global)}var t="undefined"==typeof Promise;if("undefined"!=typeof document){var r=document.getElementsByTagName("script");if($__curScript=r[r.length-1],document.currentScript&&($__curScript.defer||$__curScript.async)&&($__curScript=document.currentScript),$__curScript.src||($__curScript=void 0),t){var n=$__curScript.src,a=n.substr(0,n.lastIndexOf("/")+1);window.systemJSBootstrap=e,document.write('<script type="text/javascript" src="'+a+'system-polyfills.js"></script>')}else e()}else if("undefined"!=typeof importScripts){var a="";try{throw new Error("_")}catch(o){o.stack.replace(/(?:at|@).*(http.+):[\d]+:[\d]+/,function(e,t){$__curScript={src:t},a=t.replace(/\/[^\/]*$/,"/")})}t&&importScripts(a+"system-polyfills.js"),e()}else $__curScript="undefined"!=typeof __filename?{src:__filename}:null,e()}();
-//# sourceMappingURL=system.js.map
diff --git a/node_modules/systemjs/dist/system.js.map b/node_modules/systemjs/dist/system.js.map
deleted file mode 100644
index 362c1f5ea..000000000
--- a/node_modules/systemjs/dist/system.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["system.src.js"],"names":["bootstrap","global","URLPolyfill","url","baseURL","TypeError","m","String","replace","match","RangeError","protocol","username","password","host","hostname","port","pathname","search","hash","undefined","base","flag","slice","lastIndexOf","output","p","pop","push","join","this","origin","href","self","__global","addToError","err","msg","originalErr","stack","message","toString","split","newStack","i","length","$__curScript","indexOf","src","newMsg","substr","isBrowser","isWindows","newErr","errArgs","Error","fileName","lineNumber","Module","Loader","options","_loader","loaderObj","loads","modules","importPromises","moduleRecords","defineProperty","get","SystemJSLoader","call","paths","systemJSConstructor","SystemProto","hook","name","prototype","hookConstructor","isAbsolute","absURLRegEx","isRel","isPlain","urlResolve","parent","baseURI","URL","baseURIObj","applyPaths","loader","wildcard","pathMatch","maxWildcardPrefixLen","pathsCache","hasOwnProperty","path","pathParts","wildcardPrefixLen","outPath","group","deps","names","indices","l","index","getESModule","exports","esModule","getOwnPropertyDescriptor","defineOrCopyProperty","extend","value","targetObj","sourceObj","propName","d","Object","ex","a","b","prepend","extendMeta","val","Array","concat","extendPkgConfig","pkgCfgA","pkgCfgB","pkgName","warnInvalidProperties","prop","map","meta","depCache","dNormalized","coreResolve","warn","setPkgConfig","cfg","prependConfig","pkg","packages","basePkg","main","warnings","console","createInstantiate","load","result","metadata","entry","createEntry","execute","format","readMemberExpression","pParts","shift","getMapMatch","bestMatch","bestMatchLength","curMatchLength","prepareBaseURL","setProduction","isProduction","isBuilder","set","envModule","newModule","browser","node","_nodeRequire","production","dev","build","default","getNodeModule","parentModuleContext","_nodeModulePaths","require","parentName","mapMatch","has","builder","envSet","envCallback","browserConfig","nodeConfig","devConfig","buildConfig","productionConfig","detectRegisterFormat","source","leadingCommentAndMeta","leadingCommentAndMetaRegEx","originalIndices","declare","executingRequire","declarative","normalizedDeps","groupIndex","evaluated","module","esmExports","getGlobalValue","globalValue","first","parseCondition","condition","conditionExport","conditionModule","negation","conditionExportIndex","sysConditions","negate","serializeCondition","conditionObj","resolveCondition","bool","normalize","then","normalizedCondition","q","interpolateConditional","conditionalMatch","interpolationRegEx","Promise","resolve","conditionValue","booleanConditional","booleanIndex","isWorker","window","importScripts","document","process","platform","assert","item","thisLen","e","obj","opt","getElementsByTagName","bases","location","cwd","nativeURL","createLoad","status","anonCnt","linkSets","dependencies","loadModule","asyncStartLoadPartwayThrough","step","address","moduleName","moduleMetadata","moduleSource","moduleAddress","requestLoad","request","refererName","refererAddress","reject","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","depsList","loadPromises","depLoad","key","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","j","doLink","error","link","_newModule","finishLoad","abrupt","checkError","pLoad","dep","failed","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","loadIndex","doDynamicExecute","linkError","createImportPromise","promise","constructor","define","delete","import","parentAddress","sourcePromise","pNames","getOwnPropertyNames","configurable","enumerable","freeze","referrerName","referrerAddress","System","fetchTextFromURL","XMLHttpRequest","authorization","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","addEventListener","open","setRequestHeader","withCredentials","setTimeout","send","fs","readFile","data","dataString","opts","headers","Accept","credentials","r","ok","text","transpile","transpiler","pluginLoader","__useDefault","transpileFunction","Compiler","traceurTranspile","createLanguageService","typescriptTranspile","babelTranspile","traceur","traceurOptions","script","sourceMaps","filename","inputSourceMap","sourceMap","compiler","doTraceurCompile","compile","babel","babelOptions","code","ast","transform","ts","typescriptOptions","target","ScriptTarget","ES5","inlineSourceMap","ModuleKind","__exec","sourceMapString","hasBuffer","sourceMapPrefix","Buffer","btoa","unescape","encodeURIComponent","getSource","wrap","lastLineIndex","JSON","stringify","preExec","curLoad","callCounter","curSystem","SystemJS","postExec","scriptExec","head","body","documentElement","createElement","_e","apply","arguments","integrity","setAttribute","nonce","appendChild","removeChild","register","reduceRegister_","useVm","vm","supportsScriptExec","runInThisContext","eval","chrome","extension","navigator","userAgent","scriptSrc","defaultJSExtensions","pluginFirst","loaderErrorStack","skipExt","resolved","httpRequest","systemImport","systemTranslate","parse","getConfig","curCurScript","config","isEnvConfig","checkHasConfig","transpilerRuntime","loadedTranspilerRuntime","bundles","packageConfigPaths","v","defaultJSExtension","decanonicalize","pkgMatch","packageLength","Math","max","normalized","bundle","normalizedBundleDep","c","getPackage","curPkg","pkgLen","curPkgLen","addDefaultExtension","subPath","skipExtensions","defaultExtension","metaMatch","getMetaMatches","metaPattern","matchMeta","matchDepth","applyPackageConfigSync","mapPath","mapped","doMapSync","validMapping","normalizeSync","applyPackageConfig","doMap","doStringMap","conditionPromises","conditions","conditionValues","createPkgConfigPathObj","lastWildcard","regEx","RegExp","getPackageConfigMatch","configPath","exactMatch","packageConfigPath","packageName","loadPackageConfigPath","pkgConfigPath","configLoader","systemjs","pkgMeta","matchFn","wildcardIndex","dotRel","exactMeta","decanonicalized","isPlugin","parentPackageName","parentPackage","parentMap","parentMapMatch","pkgConfigMatch","isConfigured","configured","bestDepth","getInteractiveScriptLoad","interactiveScript","interactiveLoadingScripts","webWorkerImport","workerLoad","curRequire","ieEvents","s","isOpera","opera","attachEvent","loadingCnt","registerQueue","pushRegister","scriptLoad","complete","evt","cleanup","detachEvent","removeEventListener","async","crossOrigin","buildGroups","groups","depName","depEntry","defined","depGroupIndex","startEntry","curGroupDeclarative","linkDeclarativeModule","linkDynamicModule","ModuleRecord","getOrCreateModuleRecord","importers","declaration","locked","importerModule","importerIndex","setter","setters","id","depExports","depModule","len","getModule","ensureEvaluated","nameNormalized","__esModule","seen","registerDynamic","pushRegister_","amd","curMeta","del","doLoad","grouped","normalizePromises","esmRegEx","traceurRuntimeRegEx","babelHelpersRegEx","args","depInject","loadedTranspiler","transpilerPromise","transpilerNormalized","loaderModule","originalName","file","sources","originalSource","$traceurRuntime","babelHelpers","__globalName","g","globals","gl","exportName","retrieveGlobal","prepareGlobal","encapsulateGlobal","reduceRegister","forEachGlobal","callback","keys","forEachGlobalValue","globalName","ignoredGlobalProps","globalSnapshot","encapsulate","curDefine","oldGlobals","singleGlobal","multipleExports","getCJSDeps","inLocation","locations","cjsRequireRegEx","lastIndex","commentRegEx","stringRegEx","stringLocations","commentLocations","cjsExportsRegEx","hashBangRegEx","metaDeps","cjsRequireDetection","_require","requireResolve","cjsDeferDepsExecute","pathVars","getPathVars","__cjsWrapper","dirname","cjsWrapper","stripOrigin","windowOrigin","parentId","moduleId","pluginIndex","amdDefine","requireIndex","params","fnBracketRegEx","requireAlias","wsRegEx","requireRegEx","requireRegExs","cjsRequirePre","cjsRequirePost","errback","referer","dynamicRequires","factory","req","contextualRequire","depValues","uri","moduleIndex","exportsIndex","toUrl","amdRequire","amdRegEx","builderExecute","getParentName","parentPluginIndex","parsePlugin","argumentName","pluginName","argument","plugin","combinePluginParts","checkDefaultExtension","arg","createNormalizeSync","parsed","pluginSyntaxIndex","loaderNormalized","calledInstantiate","alias","aliasDeps","_export","setMetaProperty","curPart","depth","metaRegEx","metaPartRegEx","metaParts","firstChar","metaString","metaName","metaValue","loadedBundles","matched","curModule","parts","substring","version","doPolyfill","scripts","currentScript","defer","curPath","basePath","systemJSBootstrap","write","__filename"],"mappings":"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"} \ No newline at end of file
diff --git a/node_modules/systemjs/dist/system.src.js b/node_modules/systemjs/dist/system.src.js
deleted file mode 100644
index e7e59edc3..000000000
--- a/node_modules/systemjs/dist/system.src.js
+++ /dev/null
@@ -1,5169 +0,0 @@
-/*
- * SystemJS v0.19.47
- */
-(function() {
-function bootstrap() {// from https://gist.github.com/Yaffle/1088850
-(function(global) {
-function URLPolyfill(url, baseURL) {
- if (typeof url != 'string')
- throw new TypeError('URL must be a string');
- var m = String(url).replace(/^\s+|\s+$/g, "").replace(/\\/g, '/').match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@\/?#]*)(?::([^:@\/?#]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);
- if (!m)
- throw new RangeError('Invalid URL format');
- var protocol = m[1] || "";
- var username = m[2] || "";
- var password = m[3] || "";
- var host = m[4] || "";
- var hostname = m[5] || "";
- var port = m[6] || "";
- var pathname = m[7] || "";
- var search = m[8] || "";
- var hash = m[9] || "";
- if (baseURL !== undefined) {
- var base = baseURL instanceof URLPolyfill ? baseURL : new URLPolyfill(baseURL);
- var flag = !protocol && !host && !username;
- if (flag && !pathname && !search)
- search = base.search;
- if (flag && pathname[0] !== "/")
- pathname = (pathname ? (((base.host || base.username) && !base.pathname ? "/" : "") + base.pathname.slice(0, base.pathname.lastIndexOf("/") + 1) + pathname) : base.pathname);
- // dot segments removal
- var output = [];
- pathname.replace(/^(\.\.?(\/|$))+/, "")
- .replace(/\/(\.(\/|$))+/g, "/")
- .replace(/\/\.\.$/, "/../")
- .replace(/\/?[^\/]*/g, function (p) {
- if (p === "/..")
- output.pop();
- else
- output.push(p);
- });
- pathname = output.join("").replace(/^\//, pathname[0] === "/" ? "/" : "");
- if (flag) {
- port = base.port;
- hostname = base.hostname;
- host = base.host;
- password = base.password;
- username = base.username;
- }
- if (!protocol)
- protocol = base.protocol;
- }
-
- // convert URLs to use / always
- pathname = pathname.replace(/\\/g, '/');
-
- this.origin = host ? protocol + (protocol !== "" || host !== "" ? "//" : "") + host : "";
- this.href = protocol + (protocol && host || protocol == "file:" ? "//" : "") + (username !== "" ? username + (password !== "" ? ":" + password : "") + "@" : "") + host + pathname + search + hash;
- this.protocol = protocol;
- this.username = username;
- this.password = password;
- this.host = host;
- this.hostname = hostname;
- this.port = port;
- this.pathname = pathname;
- this.search = search;
- this.hash = hash;
-}
-global.URLPolyfill = URLPolyfill;
-})(typeof self != 'undefined' ? self : global);
-(function(__global) {
-
- var isWorker = typeof window == 'undefined' && typeof self != 'undefined' && typeof importScripts != 'undefined';
- var isBrowser = typeof window != 'undefined' && typeof document != 'undefined';
- var isWindows = typeof process != 'undefined' && typeof process.platform != 'undefined' && !!process.platform.match(/^win/);
-
- if (!__global.console)
- __global.console = { assert: function() {} };
-
- // IE8 support
- var indexOf = Array.prototype.indexOf || function(item) {
- for (var i = 0, thisLen = this.length; i < thisLen; i++) {
- if (this[i] === item) {
- return i;
- }
- }
- return -1;
- };
-
- var defineProperty;
- (function () {
- try {
- if (!!Object.defineProperty({}, 'a', {}))
- defineProperty = Object.defineProperty;
- }
- catch (e) {
- defineProperty = function(obj, prop, opt) {
- try {
- obj[prop] = opt.value || opt.get.call(obj);
- }
- catch(e) {}
- }
- }
- })();
-
- var errArgs = new Error(0, '_').fileName == '_';
-
- function addToError(err, msg) {
- // parse the stack removing loader code lines for simplification
- if (!err.originalErr) {
- var stack = ((err.message || err) + (err.stack ? '\n' + err.stack : '')).toString().split('\n');
- var newStack = [];
- for (var i = 0; i < stack.length; i++) {
- if (typeof $__curScript == 'undefined' || stack[i].indexOf($__curScript.src) == -1)
- newStack.push(stack[i]);
- }
- }
-
- var newMsg = '(SystemJS) ' + (newStack ? newStack.join('\n\t') : err.message.substr(11)) + '\n\t' + msg;
-
- // Convert file:/// URLs to paths in Node
- if (!isBrowser)
- newMsg = newMsg.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, '');
-
- var newErr = errArgs ? new Error(newMsg, err.fileName, err.lineNumber) : new Error(newMsg);
-
- newErr.stack = newMsg;
-
- // track the original error
- newErr.originalErr = err.originalErr || err;
-
- return newErr;
- }
-
- function __eval(source, debugName, context) {
- try {
- new Function(source).call(context);
- }
- catch(e) {
- throw addToError(e, 'Evaluating ' + debugName);
- }
- }
-
- var baseURI;
-
- // environent baseURI detection
- if (typeof document != 'undefined' && document.getElementsByTagName) {
- baseURI = document.baseURI;
-
- if (!baseURI) {
- var bases = document.getElementsByTagName('base');
- baseURI = bases[0] && bases[0].href || window.location.href;
- }
- }
- else if (typeof location != 'undefined') {
- baseURI = __global.location.href;
- }
-
- // sanitize out the hash and querystring
- if (baseURI) {
- baseURI = baseURI.split('#')[0].split('?')[0];
- baseURI = baseURI.substr(0, baseURI.lastIndexOf('/') + 1);
- }
- else if (typeof process != 'undefined' && process.cwd) {
- baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd() + '/';
- if (isWindows)
- baseURI = baseURI.replace(/\\/g, '/');
- }
- else {
- throw new TypeError('No environment baseURI');
- }
-
- try {
- var nativeURL = new __global.URL('test:///').protocol == 'test:';
- }
- catch(e) {}
-
- var URL = nativeURL ? __global.URL : __global.URLPolyfill;
-
-/*
-*********************************************************************************************
-
- Dynamic Module Loader Polyfill
-
- - Implemented exactly to the former 2014-08-24 ES6 Specification Draft Rev 27, Section 15
- http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27
-
- - Functions are commented with their spec numbers, with spec differences commented.
-
- - Spec bugs are commented in this code with links.
-
- - Abstract functions have been combined where possible, and their associated functions
- commented.
-
- - Realm implementation is entirely omitted.
-
-*********************************************************************************************
-*/
-
-function Module() {}
-// http://www.ecma-international.org/ecma-262/6.0/#sec-@@tostringtag
-defineProperty(Module.prototype, 'toString', {
- value: function() {
- return 'Module';
- }
-});
-function Loader(options) {
- this._loader = {
- loaderObj: this,
- loads: [],
- modules: {},
- importPromises: {},
- moduleRecords: {}
- };
-
- // 26.3.3.6
- defineProperty(this, 'global', {
- get: function() {
- return __global;
- }
- });
-
- // 26.3.3.13 realm not implemented
-}
-
-(function() {
-
-// Some Helpers
-
-// logs a linkset snapshot for debugging
-/* function snapshot(loader) {
- console.log('---Snapshot---');
- for (var i = 0; i < loader.loads.length; i++) {
- var load = loader.loads[i];
- var linkSetLog = ' ' + load.name + ' (' + load.status + '): ';
-
- for (var j = 0; j < load.linkSets.length; j++) {
- linkSetLog += '{' + logloads(load.linkSets[j].loads) + '} ';
- }
- console.log(linkSetLog);
- }
- console.log('');
-}
-function logloads(loads) {
- var log = '';
- for (var k = 0; k < loads.length; k++)
- log += loads[k].name + (k != loads.length - 1 ? ' ' : '');
- return log;
-} */
-
-
-/* function checkInvariants() {
- // see https://bugs.ecmascript.org/show_bug.cgi?id=2603#c1
-
- var loads = System._loader.loads;
- var linkSets = [];
-
- for (var i = 0; i < loads.length; i++) {
- var load = loads[i];
- console.assert(load.status == 'loading' || load.status == 'loaded', 'Each load is loading or loaded');
-
- for (var j = 0; j < load.linkSets.length; j++) {
- var linkSet = load.linkSets[j];
-
- for (var k = 0; k < linkSet.loads.length; k++)
- console.assert(loads.indexOf(linkSet.loads[k]) != -1, 'linkSet loads are a subset of loader loads');
-
- if (linkSets.indexOf(linkSet) == -1)
- linkSets.push(linkSet);
- }
- }
-
- for (var i = 0; i < loads.length; i++) {
- var load = loads[i];
- for (var j = 0; j < linkSets.length; j++) {
- var linkSet = linkSets[j];
-
- if (linkSet.loads.indexOf(load) != -1)
- console.assert(load.linkSets.indexOf(linkSet) != -1, 'linkSet contains load -> load contains linkSet');
-
- if (load.linkSets.indexOf(linkSet) != -1)
- console.assert(linkSet.loads.indexOf(load) != -1, 'load contains linkSet -> linkSet contains load');
- }
- }
-
- for (var i = 0; i < linkSets.length; i++) {
- var linkSet = linkSets[i];
- for (var j = 0; j < linkSet.loads.length; j++) {
- var load = linkSet.loads[j];
-
- for (var k = 0; k < load.dependencies.length; k++) {
- var depName = load.dependencies[k].value;
- var depLoad;
- for (var l = 0; l < loads.length; l++) {
- if (loads[l].name != depName)
- continue;
- depLoad = loads[l];
- break;
- }
-
- // loading records are allowed not to have their dependencies yet
- // if (load.status != 'loading')
- // console.assert(depLoad, 'depLoad found');
-
- // console.assert(linkSet.loads.indexOf(depLoad) != -1, 'linkset contains all dependencies');
- }
- }
- }
-} */
-
- // 15.2.3 - Runtime Semantics: Loader State
-
- // 15.2.3.11
- function createLoaderLoad(object) {
- return {
- // modules is an object for ES5 implementation
- modules: {},
- loads: [],
- loaderObj: object
- };
- }
-
- // 15.2.3.2 Load Records and LoadRequest Objects
-
- var anonCnt = 0;
-
- // 15.2.3.2.1
- function createLoad(name) {
- return {
- status: 'loading',
- name: name || '<Anonymous' + ++anonCnt + '>',
- linkSets: [],
- dependencies: [],
- metadata: {}
- };
- }
-
- // 15.2.3.2.2 createLoadRequestObject, absorbed into calling functions
-
- // 15.2.4
-
- // 15.2.4.1
- function loadModule(loader, name, options) {
- return new Promise(asyncStartLoadPartwayThrough({
- step: options.address ? 'fetch' : 'locate',
- loader: loader,
- moduleName: name,
- // allow metadata for import https://bugs.ecmascript.org/show_bug.cgi?id=3091
- moduleMetadata: options && options.metadata || {},
- moduleSource: options.source,
- moduleAddress: options.address
- }));
- }
-
- // 15.2.4.2
- function requestLoad(loader, request, refererName, refererAddress) {
- // 15.2.4.2.1 CallNormalize
- return new Promise(function(resolve, reject) {
- resolve(loader.loaderObj.normalize(request, refererName, refererAddress));
- })
- // 15.2.4.2.2 GetOrCreateLoad
- .then(function(name) {
- var load;
- if (loader.modules[name]) {
- load = createLoad(name);
- load.status = 'linked';
- // https://bugs.ecmascript.org/show_bug.cgi?id=2795
- load.module = loader.modules[name];
- return load;
- }
-
- for (var i = 0, l = loader.loads.length; i < l; i++) {
- load = loader.loads[i];
- if (load.name != name)
- continue;
- return load;
- }
-
- load = createLoad(name);
- loader.loads.push(load);
-
- proceedToLocate(loader, load);
-
- return load;
- });
- }
-
- // 15.2.4.3
- function proceedToLocate(loader, load) {
- proceedToFetch(loader, load,
- Promise.resolve()
- // 15.2.4.3.1 CallLocate
- .then(function() {
- return loader.loaderObj.locate({ name: load.name, metadata: load.metadata });
- })
- );
- }
-
- // 15.2.4.4
- function proceedToFetch(loader, load, p) {
- proceedToTranslate(loader, load,
- p
- // 15.2.4.4.1 CallFetch
- .then(function(address) {
- // adjusted, see https://bugs.ecmascript.org/show_bug.cgi?id=2602
- if (load.status != 'loading')
- return;
- load.address = address;
-
- return loader.loaderObj.fetch({ name: load.name, metadata: load.metadata, address: address });
- })
- );
- }
-
- // 15.2.4.5
- function proceedToTranslate(loader, load, p) {
- p
- // 15.2.4.5.1 CallTranslate
- .then(function(source) {
- if (load.status != 'loading')
- return;
-
- load.address = load.address || load.name;
-
- return Promise.resolve(loader.loaderObj.translate({ name: load.name, metadata: load.metadata, address: load.address, source: source }))
-
- // 15.2.4.5.2 CallInstantiate
- .then(function(source) {
- load.source = source;
- return loader.loaderObj.instantiate({ name: load.name, metadata: load.metadata, address: load.address, source: source });
- })
-
- // 15.2.4.5.3 InstantiateSucceeded
- .then(function(instantiateResult) {
- if (instantiateResult === undefined)
- throw new TypeError('Declarative modules unsupported in the polyfill.');
-
- if (typeof instantiateResult != 'object')
- throw new TypeError('Invalid instantiate return value');
-
- load.depsList = instantiateResult.deps || [];
- load.execute = instantiateResult.execute;
- })
- // 15.2.4.6 ProcessLoadDependencies
- .then(function() {
- load.dependencies = [];
- var depsList = load.depsList;
-
- var loadPromises = [];
- for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) {
- loadPromises.push(
- requestLoad(loader, request, load.name, load.address)
-
- // 15.2.4.6.1 AddDependencyLoad (load is parentLoad)
- .then(function(depLoad) {
-
- // adjusted from spec to maintain dependency order
- // this is due to the System.register internal implementation needs
- load.dependencies[index] = {
- key: request,
- value: depLoad.name
- };
-
- if (depLoad.status != 'linked') {
- var linkSets = load.linkSets.concat([]);
- for (var i = 0, l = linkSets.length; i < l; i++)
- addLoadToLinkSet(linkSets[i], depLoad);
- }
-
- // console.log('AddDependencyLoad ' + depLoad.name + ' for ' + load.name);
- // snapshot(loader);
- })
- );
- })(depsList[i], i);
-
- return Promise.all(loadPromises);
- })
-
- // 15.2.4.6.2 LoadSucceeded
- .then(function() {
- // console.log('LoadSucceeded ' + load.name);
- // snapshot(loader);
-
- load.status = 'loaded';
-
- var linkSets = load.linkSets.concat([]);
- for (var i = 0, l = linkSets.length; i < l; i++)
- updateLinkSetOnLoad(linkSets[i], load);
- });
- })
- // 15.2.4.5.4 LoadFailed
- ['catch'](function(exc) {
- load.status = 'failed';
- load.exception = exc;
-
- var linkSets = load.linkSets.concat([]);
- for (var i = 0, l = linkSets.length; i < l; i++) {
- linkSetFailed(linkSets[i], load, exc);
- }
- });
- }
-
- // 15.2.4.7 PromiseOfStartLoadPartwayThrough absorbed into calling functions
-
- // 15.2.4.7.1
- function asyncStartLoadPartwayThrough(stepState) {
- return function(resolve, reject) {
- var loader = stepState.loader;
- var name = stepState.moduleName;
- var step = stepState.step;
-
- if (loader.modules[name])
- throw new TypeError('"' + name + '" already exists in the module table');
-
- // adjusted to pick up existing loads
- var existingLoad;
- for (var i = 0, l = loader.loads.length; i < l; i++) {
- if (loader.loads[i].name == name) {
- existingLoad = loader.loads[i];
-
- if (step == 'translate' && !existingLoad.source) {
- existingLoad.address = stepState.moduleAddress;
- proceedToTranslate(loader, existingLoad, Promise.resolve(stepState.moduleSource));
- }
-
- // a primary load -> use that existing linkset if it is for the direct load here
- // otherwise create a new linkset unit
- if (existingLoad.linkSets.length && existingLoad.linkSets[0].loads[0].name == existingLoad.name)
- return existingLoad.linkSets[0].done.then(function() {
- resolve(existingLoad);
- });
- }
- }
-
- var load = existingLoad || createLoad(name);
-
- load.metadata = stepState.moduleMetadata;
-
- var linkSet = createLinkSet(loader, load);
-
- loader.loads.push(load);
-
- resolve(linkSet.done);
-
- if (step == 'locate')
- proceedToLocate(loader, load);
-
- else if (step == 'fetch')
- proceedToFetch(loader, load, Promise.resolve(stepState.moduleAddress));
-
- else {
- load.address = stepState.moduleAddress;
- proceedToTranslate(loader, load, Promise.resolve(stepState.moduleSource));
- }
- }
- }
-
- // Declarative linking functions run through alternative implementation:
- // 15.2.5.1.1 CreateModuleLinkageRecord not implemented
- // 15.2.5.1.2 LookupExport not implemented
- // 15.2.5.1.3 LookupModuleDependency not implemented
-
- // 15.2.5.2.1
- function createLinkSet(loader, startingLoad) {
- var linkSet = {
- loader: loader,
- loads: [],
- startingLoad: startingLoad, // added see spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995
- loadingCount: 0
- };
- linkSet.done = new Promise(function(resolve, reject) {
- linkSet.resolve = resolve;
- linkSet.reject = reject;
- });
- addLoadToLinkSet(linkSet, startingLoad);
- return linkSet;
- }
- // 15.2.5.2.2
- function addLoadToLinkSet(linkSet, load) {
- if (load.status == 'failed')
- return;
-
- for (var i = 0, l = linkSet.loads.length; i < l; i++)
- if (linkSet.loads[i] == load)
- return;
-
- linkSet.loads.push(load);
- load.linkSets.push(linkSet);
-
- // adjustment, see https://bugs.ecmascript.org/show_bug.cgi?id=2603
- if (load.status != 'loaded') {
- linkSet.loadingCount++;
- }
-
- var loader = linkSet.loader;
-
- for (var i = 0, l = load.dependencies.length; i < l; i++) {
- if (!load.dependencies[i])
- continue;
-
- var name = load.dependencies[i].value;
-
- if (loader.modules[name])
- continue;
-
- for (var j = 0, d = loader.loads.length; j < d; j++) {
- if (loader.loads[j].name != name)
- continue;
-
- addLoadToLinkSet(linkSet, loader.loads[j]);
- break;
- }
- }
- // console.log('add to linkset ' + load.name);
- // snapshot(linkSet.loader);
- }
-
- // linking errors can be generic or load-specific
- // this is necessary for debugging info
- function doLink(linkSet) {
- var error = false;
- try {
- link(linkSet, function(load, exc) {
- linkSetFailed(linkSet, load, exc);
- error = true;
- });
- }
- catch(e) {
- linkSetFailed(linkSet, null, e);
- error = true;
- }
- return error;
- }
-
- // 15.2.5.2.3
- function updateLinkSetOnLoad(linkSet, load) {
- // console.log('update linkset on load ' + load.name);
- // snapshot(linkSet.loader);
- linkSet.loadingCount--;
-
- if (linkSet.loadingCount > 0)
- return;
-
- // adjusted for spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995
- var startingLoad = linkSet.startingLoad;
-
- // non-executing link variation for loader tracing
- // on the server. Not in spec.
- /***/
- if (linkSet.loader.loaderObj.execute === false) {
- var loads = [].concat(linkSet.loads);
- for (var i = 0, l = loads.length; i < l; i++) {
- var load = loads[i];
- load.module = {
- name: load.name,
- module: _newModule({}),
- evaluated: true
- };
- load.status = 'linked';
- finishLoad(linkSet.loader, load);
- }
- return linkSet.resolve(startingLoad);
- }
- /***/
-
- var abrupt = doLink(linkSet);
-
- if (abrupt)
- return;
-
- linkSet.resolve(startingLoad);
- }
-
- // 15.2.5.2.4
- function linkSetFailed(linkSet, load, exc) {
- var loader = linkSet.loader;
- var requests;
-
- checkError:
- if (load) {
- if (linkSet.loads[0].name == load.name) {
- exc = addToError(exc, 'Error loading ' + load.name);
- }
- else {
- for (var i = 0; i < linkSet.loads.length; i++) {
- var pLoad = linkSet.loads[i];
- for (var j = 0; j < pLoad.dependencies.length; j++) {
- var dep = pLoad.dependencies[j];
- if (dep.value == load.name) {
- exc = addToError(exc, 'Error loading ' + load.name + ' as "' + dep.key + '" from ' + pLoad.name);
- break checkError;
- }
- }
- }
- exc = addToError(exc, 'Error loading ' + load.name + ' from ' + linkSet.loads[0].name);
- }
- }
- else {
- exc = addToError(exc, 'Error linking ' + linkSet.loads[0].name);
- }
-
-
- var loads = linkSet.loads.concat([]);
- for (var i = 0, l = loads.length; i < l; i++) {
- var load = loads[i];
-
- // store all failed load records
- loader.loaderObj.failed = loader.loaderObj.failed || [];
- if (indexOf.call(loader.loaderObj.failed, load) == -1)
- loader.loaderObj.failed.push(load);
-
- var linkIndex = indexOf.call(load.linkSets, linkSet);
- load.linkSets.splice(linkIndex, 1);
- if (load.linkSets.length == 0) {
- var globalLoadsIndex = indexOf.call(linkSet.loader.loads, load);
- if (globalLoadsIndex != -1)
- linkSet.loader.loads.splice(globalLoadsIndex, 1);
- }
- }
- linkSet.reject(exc);
- }
-
- // 15.2.5.2.5
- function finishLoad(loader, load) {
- // add to global trace if tracing
- if (loader.loaderObj.trace) {
- if (!loader.loaderObj.loads)
- loader.loaderObj.loads = {};
- var depMap = {};
- load.dependencies.forEach(function(dep) {
- depMap[dep.key] = dep.value;
- });
- loader.loaderObj.loads[load.name] = {
- name: load.name,
- deps: load.dependencies.map(function(dep){ return dep.key }),
- depMap: depMap,
- address: load.address,
- metadata: load.metadata,
- source: load.source
- };
- }
- // if not anonymous, add to the module table
- if (load.name) {
- loader.modules[load.name] = load.module;
- }
- var loadIndex = indexOf.call(loader.loads, load);
- if (loadIndex != -1)
- loader.loads.splice(loadIndex, 1);
- for (var i = 0, l = load.linkSets.length; i < l; i++) {
- loadIndex = indexOf.call(load.linkSets[i].loads, load);
- if (loadIndex != -1)
- load.linkSets[i].loads.splice(loadIndex, 1);
- }
- load.linkSets.splice(0, load.linkSets.length);
- }
-
- function doDynamicExecute(linkSet, load, linkError) {
- try {
- var module = load.execute();
- }
- catch(e) {
- linkError(load, e);
- return;
- }
- if (!module || !(module instanceof Module))
- linkError(load, new TypeError('Execution must define a Module instance'));
- else
- return module;
- }
-
- // 26.3 Loader
-
- // 26.3.1.1
- // defined at top
-
- // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601
- function createImportPromise(loader, name, promise) {
- var importPromises = loader._loader.importPromises;
- return importPromises[name] = promise.then(function(m) {
- importPromises[name] = undefined;
- return m;
- }, function(e) {
- importPromises[name] = undefined;
- throw e;
- });
- }
-
- Loader.prototype = {
- // 26.3.3.1
- constructor: Loader,
- // 26.3.3.2
- define: function(name, source, options) {
- // check if already defined
- if (this._loader.importPromises[name])
- throw new TypeError('Module is already loading.');
- return createImportPromise(this, name, new Promise(asyncStartLoadPartwayThrough({
- step: 'translate',
- loader: this._loader,
- moduleName: name,
- moduleMetadata: options && options.metadata || {},
- moduleSource: source,
- moduleAddress: options && options.address
- })));
- },
- // 26.3.3.3
- 'delete': function(name) {
- var loader = this._loader;
- delete loader.importPromises[name];
- delete loader.moduleRecords[name];
- return loader.modules[name] ? delete loader.modules[name] : false;
- },
- // 26.3.3.4 entries not implemented
- // 26.3.3.5
- get: function(key) {
- if (!this._loader.modules[key])
- return;
- return this._loader.modules[key].module;
- },
- // 26.3.3.7
- has: function(name) {
- return !!this._loader.modules[name];
- },
- // 26.3.3.8
- 'import': function(name, parentName, parentAddress) {
- if (typeof parentName == 'object')
- parentName = parentName.name;
-
- // run normalize first
- var loaderObj = this;
-
- // added, see https://bugs.ecmascript.org/show_bug.cgi?id=2659
- return Promise.resolve(loaderObj.normalize(name, parentName))
- .then(function(name) {
- var loader = loaderObj._loader;
-
- if (loader.modules[name])
- return loader.modules[name].module;
-
- return loader.importPromises[name] || createImportPromise(loaderObj, name,
- loadModule(loader, name, {})
- .then(function(load) {
- delete loader.importPromises[name];
- return load.module.module;
- }));
- });
- },
- // 26.3.3.9 keys not implemented
- // 26.3.3.10
- load: function(name) {
- var loader = this._loader;
- if (loader.modules[name])
- return Promise.resolve();
- return (loader.importPromises[name] || createImportPromise(this, name, new Promise(asyncStartLoadPartwayThrough({
- step: 'locate',
- loader: loader,
- moduleName: name,
- moduleMetadata: {},
- moduleSource: undefined,
- moduleAddress: undefined
- }))
- .then(function(load) {
- delete loader.importPromises[name];
- return load.module.module;
- })))
- .then(function () {});
- },
- // 26.3.3.11
- module: function(source, options) {
- var load = createLoad();
- load.address = options && options.address;
- var linkSet = createLinkSet(this._loader, load);
- var sourcePromise = Promise.resolve(source);
- var loader = this._loader;
- var p = linkSet.done.then(function() {
- return load.module.module;
- });
- proceedToTranslate(loader, load, sourcePromise);
- return p;
- },
- // 26.3.3.12
- newModule: function (obj) {
- if (typeof obj != 'object')
- throw new TypeError('Expected object');
-
- var m = new Module();
-
- var pNames = [];
- if (Object.getOwnPropertyNames && obj != null)
- pNames = Object.getOwnPropertyNames(obj);
- else
- for (var key in obj)
- pNames.push(key);
-
- for (var i = 0; i < pNames.length; i++) (function(key) {
- defineProperty(m, key, {
- configurable: false,
- enumerable: true,
- get: function () {
- return obj[key];
- },
- set: function() {
- throw new Error('Module exports cannot be changed externally.');
- }
- });
- })(pNames[i]);
-
- if (Object.freeze)
- Object.freeze(m);
-
- return m;
- },
- // 26.3.3.14
- set: function(name, module) {
- if (!(module instanceof Module))
- throw new TypeError('Loader.set(' + name + ', module) must be a module');
- this._loader.modules[name] = {
- module: module
- };
- },
- // 26.3.3.15 values not implemented
- // 26.3.3.16 @@iterator not implemented
- // 26.3.3.17 @@toStringTag not implemented
-
- // 26.3.3.18.1
- normalize: function(name, referrerName, referrerAddress) {},
- // 26.3.3.18.2
- locate: function(load) {
- return load.name;
- },
- // 26.3.3.18.3
- fetch: function(load) {
- },
- // 26.3.3.18.4
- translate: function(load) {
- return load.source;
- },
- // 26.3.3.18.5
- instantiate: function(load) {
- }
- };
-
- var _newModule = Loader.prototype.newModule;
-
-/*
- * ES6 Module Declarative Linking Code
- */
- function link(linkSet, linkError) {
-
- var loader = linkSet.loader;
-
- if (!linkSet.loads.length)
- return;
-
- var loads = linkSet.loads.concat([]);
-
- for (var i = 0; i < loads.length; i++) {
- var load = loads[i];
-
- var module = doDynamicExecute(linkSet, load, linkError);
- if (!module)
- return;
- load.module = {
- name: load.name,
- module: module
- };
- load.status = 'linked';
-
- finishLoad(loader, load);
- }
- }
-
-})();
-
-var System;
- var fetchTextFromURL;
- if (typeof XMLHttpRequest != 'undefined') {
- fetchTextFromURL = function(url, authorization, fulfill, reject) {
- var xhr = new XMLHttpRequest();
- var sameDomain = true;
- var doTimeout = false;
- if (!('withCredentials' in xhr)) {
- // check if same domain
- var domainCheck = /^(\w+:)?\/\/([^\/]+)/.exec(url);
- if (domainCheck) {
- sameDomain = domainCheck[2] === window.location.host;
- if (domainCheck[1])
- sameDomain &= domainCheck[1] === window.location.protocol;
- }
- }
- if (!sameDomain && typeof XDomainRequest != 'undefined') {
- xhr = new XDomainRequest();
- xhr.onload = load;
- xhr.onerror = error;
- xhr.ontimeout = error;
- xhr.onprogress = function() {};
- xhr.timeout = 0;
- doTimeout = true;
- }
- function load() {
- fulfill(xhr.responseText);
- }
- function error() {
- reject(new Error('XHR error' + (xhr.status ? ' (' + xhr.status + (xhr.statusText ? ' ' + xhr.statusText : '') + ')' : '') + ' loading ' + url));
- }
-
- xhr.onreadystatechange = function () {
- if (xhr.readyState === 4) {
- // in Chrome on file:/// URLs, status is 0
- if (xhr.status == 0) {
- if (xhr.responseText) {
- load();
- }
- else {
- // when responseText is empty, wait for load or error event
- // to inform if it is a 404 or empty file
- xhr.addEventListener('error', error);
- xhr.addEventListener('load', load);
- }
- }
- else if (xhr.status === 200) {
- load();
- }
- else {
- error();
- }
- }
- };
- xhr.open("GET", url, true);
-
- if (xhr.setRequestHeader) {
- xhr.setRequestHeader('Accept', 'application/x-es-module, */*');
- // can set "authorization: true" to enable withCredentials only
- if (authorization) {
- if (typeof authorization == 'string')
- xhr.setRequestHeader('Authorization', authorization);
- xhr.withCredentials = true;
- }
- }
-
- if (doTimeout) {
- setTimeout(function() {
- xhr.send();
- }, 0);
- } else {
- xhr.send(null);
- }
- };
- }
- else if (typeof require != 'undefined' && typeof process != 'undefined') {
- var fs;
- fetchTextFromURL = function(url, authorization, fulfill, reject) {
- if (url.substr(0, 8) != 'file:///')
- throw new Error('Unable to fetch "' + url + '". Only file URLs of the form file:/// allowed running in Node.');
- fs = fs || require('fs');
- if (isWindows)
- url = url.replace(/\//g, '\\').substr(8);
- else
- url = url.substr(7);
- return fs.readFile(url, function(err, data) {
- if (err) {
- return reject(err);
- }
- else {
- // Strip Byte Order Mark out if it's the leading char
- var dataString = data + '';
- if (dataString[0] === '\ufeff')
- dataString = dataString.substr(1);
-
- fulfill(dataString);
- }
- });
- };
- }
- else if (typeof self != 'undefined' && typeof self.fetch != 'undefined') {
- fetchTextFromURL = function(url, authorization, fulfill, reject) {
- var opts = {
- headers: {'Accept': 'application/x-es-module, */*'}
- };
-
- if (authorization) {
- if (typeof authorization == 'string')
- opts.headers['Authorization'] = authorization;
- opts.credentials = 'include';
- }
-
- fetch(url, opts)
- .then(function (r) {
- if (r.ok) {
- return r.text();
- } else {
- throw new Error('Fetch error: ' + r.status + ' ' + r.statusText);
- }
- })
- .then(fulfill, reject);
- }
- }
- else {
- throw new TypeError('No environment fetch API available.');
- }
-/*
- * Traceur, Babel and TypeScript transpile hook for Loader
- */
-var transpile = (function() {
-
- // use Traceur by default
- Loader.prototype.transpiler = 'traceur';
-
- function transpile(load) {
- var self = this;
-
- return Promise.resolve(__global[self.transpiler == 'typescript' ? 'ts' : self.transpiler]
- || (self.pluginLoader || self)['import'](self.transpiler))
- .then(function(transpiler) {
- if (transpiler.__useDefault)
- transpiler = transpiler['default'];
-
- var transpileFunction;
- if (transpiler.Compiler)
- transpileFunction = traceurTranspile;
- else if (transpiler.createLanguageService)
- transpileFunction = typescriptTranspile;
- else
- transpileFunction = babelTranspile;
-
- // note __moduleName will be part of the transformer meta in future when we have the spec for this
- return '(function(__moduleName){' + transpileFunction.call(self, load, transpiler) + '\n})("' + load.name + '");\n//# sourceURL=' + load.address + '!transpiled';
- });
- };
-
- function traceurTranspile(load, traceur) {
- var options = this.traceurOptions || {};
- options.modules = 'instantiate';
- options.script = false;
- if (options.sourceMaps === undefined)
- options.sourceMaps = 'inline';
- options.filename = load.address;
- options.inputSourceMap = load.metadata.sourceMap;
- options.moduleName = false;
-
- var compiler = new traceur.Compiler(options);
-
- return doTraceurCompile(load.source, compiler, options.filename);
- }
- function doTraceurCompile(source, compiler, filename) {
- try {
- return compiler.compile(source, filename);
- }
- catch(e) {
- // on older versions of traceur (<0.9.3), an array of errors is thrown
- // rather than a single error.
- if (e.length) {
- throw e[0];
- }
- throw e;
- }
- }
-
- function babelTranspile(load, babel) {
- var options = this.babelOptions || {};
- options.modules = 'system';
- if (options.sourceMap === undefined)
- options.sourceMap = 'inline';
- options.inputSourceMap = load.metadata.sourceMap;
- options.filename = load.address;
- options.code = true;
- options.ast = false;
-
- return babel.transform(load.source, options).code;
- }
-
- function typescriptTranspile(load, ts) {
- var options = this.typescriptOptions || {};
- options.target = options.target || ts.ScriptTarget.ES5;
- if (options.sourceMap === undefined)
- options.sourceMap = true;
- if (options.sourceMap && options.inlineSourceMap !== false)
- options.inlineSourceMap = true;
-
- options.module = ts.ModuleKind.System;
-
- return ts.transpile(load.source, options, load.address);
- }
-
- return transpile;
-})();
-// SystemJS Loader Class and Extension helpers
-function SystemJSLoader() {
- Loader.call(this);
-
- this.paths = {};
- this._loader.paths = {};
-
- systemJSConstructor.call(this);
-}
-
-// inline Object.create-style class extension
-function SystemProto() {};
-SystemProto.prototype = Loader.prototype;
-SystemJSLoader.prototype = new SystemProto();
-SystemJSLoader.prototype.constructor = SystemJSLoader;
-
-var systemJSConstructor;
-
-function hook(name, hook) {
- SystemJSLoader.prototype[name] = hook(SystemJSLoader.prototype[name] || function() {});
-}
-function hookConstructor(hook) {
- systemJSConstructor = hook(systemJSConstructor || function() {});
-}
-
-
-var absURLRegEx = /^[^\/]+:\/\//;
-function isAbsolute(name) {
- return name.match(absURLRegEx);
-}
-function isRel(name) {
- return (name[0] == '.' && (!name[1] || name[1] == '/' || name[1] == '.')) || name[0] == '/';
-}
-function isPlain(name) {
- return !isRel(name) && !isAbsolute(name);
-}
-
-var baseURIObj = new URL(baseURI);
-
-function urlResolve(name, parent) {
- // url resolution shortpaths
- if (name[0] == '.') {
- // dot-relative url normalization
- if (name[1] == '/' && name[2] != '.')
- return (parent && parent.substr(0, parent.lastIndexOf('/') + 1) || baseURI) + name.substr(2);
- }
- else if (name[0] != '/' && name.indexOf(':') == -1) {
- // plain parent normalization
- return (parent && parent.substr(0, parent.lastIndexOf('/') + 1) || baseURI) + name;
- }
-
- return new URL(name, parent && parent.replace(/#/g, '%05') || baseURIObj).href.replace(/%05/g, '#');
-}
-
-// NB no specification provided for System.paths, used ideas discussed in https://github.com/jorendorff/js-loaders/issues/25
-function applyPaths(loader, name) {
- // most specific (most number of slashes in path) match wins
- var pathMatch = '', wildcard, maxWildcardPrefixLen = 0;
-
- var paths = loader.paths;
- var pathsCache = loader._loader.paths;
-
- // check to see if we have a paths entry
- for (var p in paths) {
- if (paths.hasOwnProperty && !paths.hasOwnProperty(p))
- continue;
-
- // paths sanitization
- var path = paths[p];
- if (path !== pathsCache[p])
- path = paths[p] = pathsCache[p] = urlResolve(paths[p], isRel(paths[p]) ? baseURI : loader.baseURL);
-
- // exact path match
- if (p.indexOf('*') === -1) {
- if (name == p)
- return paths[p];
-
- // support trailing / in paths rules
- else if (name.substr(0, p.length - 1) == p.substr(0, p.length - 1) && (name.length < p.length || name[p.length - 1] == p[p.length - 1]) && (paths[p][paths[p].length - 1] == '/' || paths[p] == '')) {
- return paths[p].substr(0, paths[p].length - 1) + (name.length > p.length ? (paths[p] && '/' || '') + name.substr(p.length) : '');
- }
- }
- // wildcard path match
- else {
- var pathParts = p.split('*');
- if (pathParts.length > 2)
- throw new TypeError('Only one wildcard in a path is permitted');
-
- var wildcardPrefixLen = pathParts[0].length;
- if (wildcardPrefixLen >= maxWildcardPrefixLen &&
- name.substr(0, pathParts[0].length) == pathParts[0] &&
- name.substr(name.length - pathParts[1].length) == pathParts[1]) {
- maxWildcardPrefixLen = wildcardPrefixLen;
- pathMatch = p;
- wildcard = name.substr(pathParts[0].length, name.length - pathParts[1].length - pathParts[0].length);
- }
- }
- }
-
- var outPath = paths[pathMatch];
- if (typeof wildcard == 'string')
- outPath = outPath.replace('*', wildcard);
-
- return outPath;
-}
-
-function dedupe(deps) {
- var newDeps = [];
- for (var i = 0, l = deps.length; i < l; i++)
- if (indexOf.call(newDeps, deps[i]) == -1)
- newDeps.push(deps[i])
- return newDeps;
-}
-
-function group(deps) {
- var names = [];
- var indices = [];
- for (var i = 0, l = deps.length; i < l; i++) {
- var index = indexOf.call(names, deps[i]);
- if (index === -1) {
- names.push(deps[i]);
- indices.push([i]);
- }
- else {
- indices[index].push(i);
- }
- }
- return { names: names, indices: indices };
-}
-
-var getOwnPropertyDescriptor = true;
-try {
- Object.getOwnPropertyDescriptor({ a: 0 }, 'a');
-}
-catch(e) {
- getOwnPropertyDescriptor = false;
-}
-
-// converts any module.exports object into an object ready for SystemJS.newModule
-function getESModule(exports) {
- var esModule = {};
- // don't trigger getters/setters in environments that support them
- if ((typeof exports == 'object' || typeof exports == 'function') && exports !== __global) {
- if (getOwnPropertyDescriptor) {
- for (var p in exports) {
- // The default property is copied to esModule later on
- if (p === 'default')
- continue;
- defineOrCopyProperty(esModule, exports, p);
- }
- }
- else {
- extend(esModule, exports);
- }
- }
- esModule['default'] = exports;
- defineProperty(esModule, '__useDefault', {
- value: true
- });
- return esModule;
-}
-
-function defineOrCopyProperty(targetObj, sourceObj, propName) {
- try {
- var d;
- if (d = Object.getOwnPropertyDescriptor(sourceObj, propName))
- defineProperty(targetObj, propName, d);
- }
- catch (ex) {
- // Object.getOwnPropertyDescriptor threw an exception, fall back to normal set property
- // we dont need hasOwnProperty here because getOwnPropertyDescriptor would have returned undefined above
- targetObj[propName] = sourceObj[propName];
- return false;
- }
-}
-
-function extend(a, b, prepend) {
- var hasOwnProperty = b && b.hasOwnProperty;
- for (var p in b) {
- if (hasOwnProperty && !b.hasOwnProperty(p))
- continue;
- if (!prepend || !(p in a))
- a[p] = b[p];
- }
- return a;
-}
-
-// meta first-level extends where:
-// array + array appends
-// object + object extends
-// other properties replace
-function extendMeta(a, b, prepend) {
- var hasOwnProperty = b && b.hasOwnProperty;
- for (var p in b) {
- if (hasOwnProperty && !b.hasOwnProperty(p))
- continue;
- var val = b[p];
- if (!(p in a))
- a[p] = val;
- else if (val instanceof Array && a[p] instanceof Array)
- a[p] = [].concat(prepend ? val : a[p]).concat(prepend ? a[p] : val);
- else if (typeof val == 'object' && val !== null && typeof a[p] == 'object')
- a[p] = extend(extend({}, a[p]), val, prepend);
- else if (!prepend)
- a[p] = val;
- }
-}
-
-function extendPkgConfig(pkgCfgA, pkgCfgB, pkgName, loader, warnInvalidProperties) {
- for (var prop in pkgCfgB) {
- if (indexOf.call(['main', 'format', 'defaultExtension', 'basePath'], prop) != -1) {
- pkgCfgA[prop] = pkgCfgB[prop];
- }
- else if (prop == 'map') {
- extend(pkgCfgA.map = pkgCfgA.map || {}, pkgCfgB.map);
- }
- else if (prop == 'meta') {
- extend(pkgCfgA.meta = pkgCfgA.meta || {}, pkgCfgB.meta);
- }
- else if (prop == 'depCache') {
- for (var d in pkgCfgB.depCache) {
- var dNormalized;
-
- if (d.substr(0, 2) == './')
- dNormalized = pkgName + '/' + d.substr(2);
- else
- dNormalized = coreResolve.call(loader, d);
- loader.depCache[dNormalized] = (loader.depCache[dNormalized] || []).concat(pkgCfgB.depCache[d]);
- }
- }
- else if (warnInvalidProperties && indexOf.call(['browserConfig', 'nodeConfig', 'devConfig', 'productionConfig'], prop) == -1 &&
- (!pkgCfgB.hasOwnProperty || pkgCfgB.hasOwnProperty(prop))) {
- warn.call(loader, '"' + prop + '" is not a valid package configuration option in package ' + pkgName);
- }
- }
-}
-
-// deeply-merge (to first level) config with any existing package config
-function setPkgConfig(loader, pkgName, cfg, prependConfig) {
- var pkg;
-
- // first package is config by reference for fast path, cloned after that
- if (!loader.packages[pkgName]) {
- pkg = loader.packages[pkgName] = cfg;
- }
- else {
- var basePkg = loader.packages[pkgName];
- pkg = loader.packages[pkgName] = {};
-
- extendPkgConfig(pkg, prependConfig ? cfg : basePkg, pkgName, loader, prependConfig);
- extendPkgConfig(pkg, prependConfig ? basePkg : cfg, pkgName, loader, !prependConfig);
- }
-
- // main object becomes main map
- if (typeof pkg.main == 'object') {
- pkg.map = pkg.map || {};
- pkg.map['./@main'] = pkg.main;
- pkg.main['default'] = pkg.main['default'] || './';
- pkg.main = '@main';
- }
-
- return pkg;
-}
-
-function warn(msg) {
- if (this.warnings && typeof console != 'undefined' && console.warn)
- console.warn(msg);
-}
-
-function createInstantiate (load, result) {
- load.metadata.entry = createEntry();
- load.metadata.entry.execute = function() {
- return result;
- }
- load.metadata.entry.deps = [];
- load.metadata.format = 'defined';
-}
-// we define a __exec for globally-scoped execution
-// used by module format implementations
-var __exec;
-
-(function() {
-
- var hasBuffer = typeof Buffer != 'undefined';
- try {
- if (hasBuffer && new Buffer('a').toString('base64') != 'YQ==')
- hasBuffer = false;
- }
- catch(e) {
- hasBuffer = false;
- }
-
- var sourceMapPrefix = '\n//# sourceMappingURL=data:application/json;base64,';
- function inlineSourceMap(sourceMapString) {
- if (hasBuffer)
- return sourceMapPrefix + new Buffer(sourceMapString).toString('base64');
- else if (typeof btoa != 'undefined')
- return sourceMapPrefix + btoa(unescape(encodeURIComponent(sourceMapString)));
- else
- return '';
- }
-
- function getSource(load, wrap) {
- var lastLineIndex = load.source.lastIndexOf('\n');
-
- // wrap ES formats with a System closure for System global encapsulation
- if (load.metadata.format == 'global')
- wrap = false;
-
- var sourceMap = load.metadata.sourceMap;
- if (sourceMap) {
- if (typeof sourceMap != 'object')
- throw new TypeError('load.metadata.sourceMap must be set to an object.');
-
- sourceMap = JSON.stringify(sourceMap);
- }
-
- return (wrap ? '(function(System, SystemJS) {' : '') + load.source + (wrap ? '\n})(System, System);' : '')
- // adds the sourceURL comment if not already present
- + (load.source.substr(lastLineIndex, 15) != '\n//# sourceURL='
- ? '\n//# sourceURL=' + load.address + (sourceMap ? '!transpiled' : '') : '')
- // add sourceMappingURL if load.metadata.sourceMap is set
- + (sourceMap && inlineSourceMap(sourceMap) || '');
- }
-
- var curLoad;
-
- // System.register, System.registerDynamic, AMD define pipeline
- // if currently evalling code here, immediately reduce the registered entry against the load record
- hook('pushRegister_', function() {
- return function(register) {
- if (!curLoad)
- return false;
-
- this.reduceRegister_(curLoad, register);
- return true;
- };
- });
-
- // System clobbering protection (mostly for Traceur)
- var curSystem;
- var callCounter = 0;
- function preExec(loader, load) {
- curLoad = load;
- if (callCounter++ == 0)
- curSystem = __global.System;
- __global.System = __global.SystemJS = loader;
- }
- function postExec() {
- if (--callCounter == 0)
- __global.System = __global.SystemJS = curSystem;
- curLoad = undefined;
- }
-
- var useVm;
- var vm;
- __exec = function(load) {
- if (!load.source)
- return;
- if ((load.metadata.integrity || load.metadata.nonce) && supportsScriptExec)
- return scriptExec.call(this, load);
- try {
- preExec(this, load);
- curLoad = load;
- // global scoped eval for node (avoids require scope leak)
- if (!vm && this._nodeRequire) {
- vm = this._nodeRequire('vm');
- useVm = vm.runInThisContext("typeof System !== 'undefined' && System") === this;
- }
- if (useVm)
- vm.runInThisContext(getSource(load, true), { filename: load.address + (load.metadata.sourceMap ? '!transpiled' : '') });
- else
- (0, eval)(getSource(load, true));
- postExec();
- }
- catch(e) {
- postExec();
- throw addToError(e, 'Evaluating ' + load.address);
- }
- };
-
- var supportsScriptExec = false;
- if (isBrowser && typeof document != 'undefined' && document.getElementsByTagName) {
- if (!(window.chrome && window.chrome.extension || navigator.userAgent.match(/^Node\.js/)))
- supportsScriptExec = true;
- }
-
- // script execution via injecting a script tag into the page
- // this allows CSP integrity and nonce to be set for CSP environments
- var head;
- function scriptExec(load) {
- if (!head)
- head = document.head || document.body || document.documentElement;
-
- var script = document.createElement('script');
- script.text = getSource(load, false);
- var onerror = window.onerror;
- var e;
- window.onerror = function(_e) {
- e = addToError(_e, 'Evaluating ' + load.address);
- if (onerror)
- onerror.apply(this, arguments);
- }
- preExec(this, load);
-
- if (load.metadata.integrity)
- script.setAttribute('integrity', load.metadata.integrity);
- if (load.metadata.nonce)
- script.setAttribute('nonce', load.metadata.nonce);
-
- head.appendChild(script);
- head.removeChild(script);
- postExec();
- window.onerror = onerror;
- if (e)
- throw e;
- }
-
-})();
-function readMemberExpression(p, value) {
- var pParts = p.split('.');
- while (pParts.length)
- value = value[pParts.shift()];
- return value;
-}
-
-function getMapMatch(map, name) {
- var bestMatch, bestMatchLength = 0;
-
- for (var p in map) {
- if (name.substr(0, p.length) == p && (name.length == p.length || name[p.length] == '/')) {
- var curMatchLength = p.split('/').length;
- if (curMatchLength <= bestMatchLength)
- continue;
- bestMatch = p;
- bestMatchLength = curMatchLength;
- }
- }
-
- return bestMatch;
-}
-
-function prepareBaseURL(loader) {
- // ensure baseURl is fully normalized
- if (this._loader.baseURL !== this.baseURL) {
- if (this.baseURL[this.baseURL.length - 1] != '/')
- this.baseURL += '/';
-
- this._loader.baseURL = this.baseURL = new URL(this.baseURL, baseURIObj).href;
- }
-}
-
-var envModule;
-function setProduction(isProduction, isBuilder) {
- this.set('@system-env', envModule = this.newModule({
- browser: isBrowser,
- node: !!this._nodeRequire,
- production: !isBuilder && isProduction,
- dev: isBuilder || !isProduction,
- build: isBuilder,
- 'default': true
- }));
-}
-
-hookConstructor(function(constructor) {
- return function() {
- constructor.call(this);
-
- // support baseURL
- this.baseURL = baseURI;
-
- // support map and paths
- this.map = {};
-
- // make the location of the system.js script accessible
- if (typeof $__curScript != 'undefined')
- this.scriptSrc = $__curScript.src;
-
- // global behaviour flags
- this.warnings = false;
- this.defaultJSExtensions = false;
- this.pluginFirst = false;
- this.loaderErrorStack = false;
-
- // by default load ".json" files as json
- // leading * meta doesn't need normalization
- // NB add this in next breaking release
- // this.meta['*.json'] = { format: 'json' };
-
- // support the empty module, as a concept
- this.set('@empty', this.newModule({}));
-
- setProduction.call(this, false, false);
- };
-});
-
-// include the node require since we're overriding it
-if (typeof require != 'undefined' && typeof process != 'undefined' && !process.browser)
- SystemJSLoader.prototype._nodeRequire = require;
-
-/*
- Core SystemJS Normalization
-
- If a name is relative, we apply URL normalization to the page
- If a name is an absolute URL, we leave it as-is
-
- Plain names (neither of the above) run through the map and paths
- normalization phases.
-
- The paths normalization phase applies last (paths extension), which
- defines the `decanonicalize` function and normalizes everything into
- a URL.
- */
-
-var parentModuleContext;
-function getNodeModule(name, baseURL) {
- if (!isPlain(name))
- throw new Error('Node module ' + name + ' can\'t be loaded as it is not a package require.');
-
- if (!parentModuleContext) {
- var Module = this._nodeRequire('module');
- var base = baseURL.substr(isWindows ? 8 : 7);
- parentModuleContext = new Module(base);
- parentModuleContext.paths = Module._nodeModulePaths(base);
- }
- return parentModuleContext.require(name);
-}
-
-function coreResolve(name, parentName) {
- // standard URL resolution
- if (isRel(name))
- return urlResolve(name, parentName);
- else if (isAbsolute(name))
- return name;
-
- // plain names not starting with './', '://' and '/' go through custom resolution
- var mapMatch = getMapMatch(this.map, name);
-
- if (mapMatch) {
- name = this.map[mapMatch] + name.substr(mapMatch.length);
-
- if (isRel(name))
- return urlResolve(name);
- else if (isAbsolute(name))
- return name;
- }
-
- if (this.has(name))
- return name;
-
- // dynamically load node-core modules when requiring `@node/fs` for example
- if (name.substr(0, 6) == '@node/') {
- if (!this._nodeRequire)
- throw new TypeError('Error loading ' + name + '. Can only load node core modules in Node.');
- if (this.builder)
- this.set(name, this.newModule({}));
- else
- this.set(name, this.newModule(getESModule(getNodeModule.call(this, name.substr(6), this.baseURL))));
- return name;
- }
-
- // prepare the baseURL to ensure it is normalized
- prepareBaseURL.call(this);
-
- return applyPaths(this, name) || this.baseURL + name;
-}
-
-hook('normalize', function(normalize) {
- return function(name, parentName, skipExt) {
- var resolved = coreResolve.call(this, name, parentName);
- if (this.defaultJSExtensions && !skipExt && resolved.substr(resolved.length - 3, 3) != '.js' && !isPlain(resolved))
- resolved += '.js';
- return resolved;
- };
-});
-
-// percent encode just '#' in urls if using HTTP requests
-var httpRequest = typeof XMLHttpRequest != 'undefined';
-hook('locate', function(locate) {
- return function(load) {
- return Promise.resolve(locate.call(this, load))
- .then(function(address) {
- if (httpRequest)
- return address.replace(/#/g, '%23');
- return address;
- });
- };
-});
-
-/*
- * Fetch with authorization
- */
-hook('fetch', function() {
- return function(load) {
- return new Promise(function(resolve, reject) {
- fetchTextFromURL(load.address, load.metadata.authorization, resolve, reject);
- });
- };
-});
-
-/*
- __useDefault
-
- When a module object looks like:
- newModule(
- __useDefault: true,
- default: 'some-module'
- })
-
- Then importing that module provides the 'some-module'
- result directly instead of the full module.
-
- Useful for eg module.exports = function() {}
-*/
-hook('import', function(systemImport) {
- return function(name, parentName, parentAddress) {
- if (parentName && parentName.name)
- warn.call(this, 'SystemJS.import(name, { name: parentName }) is deprecated for SystemJS.import(name, parentName), while importing ' + name + ' from ' + parentName.name);
- return systemImport.call(this, name, parentName, parentAddress).then(function(module) {
- return module.__useDefault ? module['default'] : module;
- });
- };
-});
-
-/*
- * Allow format: 'detect' meta to enable format detection
- */
-hook('translate', function(systemTranslate) {
- return function(load) {
- if (load.metadata.format == 'detect')
- load.metadata.format = undefined;
- return systemTranslate.apply(this, arguments);
- };
-});
-
-
-/*
- * JSON format support
- *
- * Supports loading JSON files as a module format itself
- *
- * Usage:
- *
- * SystemJS.config({
- * meta: {
- * '*.json': { format: 'json' }
- * }
- * });
- *
- * Module is returned as if written:
- *
- * export default {JSON}
- *
- * No named exports are provided
- *
- * Files ending in ".json" are treated as json automatically by SystemJS
- */
-hook('instantiate', function(instantiate) {
- return function(load) {
- if (load.metadata.format == 'json' && !this.builder) {
- var entry = load.metadata.entry = createEntry();
- entry.deps = [];
- entry.execute = function() {
- try {
- return JSON.parse(load.source);
- }
- catch(e) {
- throw new Error("Invalid JSON file " + load.name);
- }
- };
- }
- };
-})
-
-/*
- Extend config merging one deep only
-
- loader.config({
- some: 'random',
- config: 'here',
- deep: {
- config: { too: 'too' }
- }
- });
-
- <=>
-
- loader.some = 'random';
- loader.config = 'here'
- loader.deep = loader.deep || {};
- loader.deep.config = { too: 'too' };
-
-
- Normalizes meta and package configs allowing for:
-
- SystemJS.config({
- meta: {
- './index.js': {}
- }
- });
-
- To become
-
- SystemJS.meta['https://thissite.com/index.js'] = {};
-
- For easy normalization canonicalization with latest URL support.
-
-*/
-function envSet(loader, cfg, envCallback) {
- if (envModule.browser && cfg.browserConfig)
- envCallback(cfg.browserConfig);
- if (envModule.node && cfg.nodeConfig)
- envCallback(cfg.nodeConfig);
- if (envModule.dev && cfg.devConfig)
- envCallback(cfg.devConfig);
- if (envModule.build && cfg.buildConfig)
- envCallback(cfg.buildConfig);
- if (envModule.production && cfg.productionConfig)
- envCallback(cfg.productionConfig);
-}
-
-SystemJSLoader.prototype.getConfig = function(name) {
- var cfg = {};
- var loader = this;
- for (var p in loader) {
- if (loader.hasOwnProperty && !loader.hasOwnProperty(p) || p in SystemJSLoader.prototype && p != 'transpiler')
- continue;
- if (indexOf.call(['_loader', 'amdDefine', 'amdRequire', 'defined', 'failed', 'version', 'loads'], p) == -1)
- cfg[p] = loader[p];
- }
- cfg.production = envModule.production;
- return cfg;
-};
-
-var curCurScript;
-SystemJSLoader.prototype.config = function(cfg, isEnvConfig) {
- var loader = this;
-
- if ('loaderErrorStack' in cfg) {
- curCurScript = $__curScript;
- if (cfg.loaderErrorStack)
- $__curScript = undefined;
- else
- $__curScript = curCurScript;
- }
-
- if ('warnings' in cfg)
- loader.warnings = cfg.warnings;
-
- // transpiler deprecation path
- if (cfg.transpilerRuntime === false)
- loader._loader.loadedTranspilerRuntime = true;
-
- if ('production' in cfg || 'build' in cfg)
- setProduction.call(loader, !!cfg.production, !!(cfg.build || envModule && envModule.build));
-
- if (!isEnvConfig) {
- // if using nodeConfig / browserConfig / productionConfig, take baseURL from there
- // these exceptions will be unnecessary when we can properly implement config queuings
- var baseURL;
- envSet(loader, cfg, function(cfg) {
- baseURL = baseURL || cfg.baseURL;
- });
- baseURL = baseURL || cfg.baseURL;
-
- // always configure baseURL first
- if (baseURL) {
- var hasConfig = false;
- function checkHasConfig(obj) {
- for (var p in obj)
- if (obj.hasOwnProperty(p))
- return true;
- }
- if (checkHasConfig(loader.packages) || checkHasConfig(loader.meta) || checkHasConfig(loader.depCache) || checkHasConfig(loader.bundles) || checkHasConfig(loader.packageConfigPaths))
- throw new TypeError('Incorrect configuration order. The baseURL must be configured with the first SystemJS.config call.');
-
- this.baseURL = baseURL;
- prepareBaseURL.call(this);
- }
-
- if (cfg.paths)
- extend(loader.paths, cfg.paths);
-
- envSet(loader, cfg, function(cfg) {
- if (cfg.paths)
- extend(loader.paths, cfg.paths);
- });
-
- // warn on wildcard path deprecations
- if (this.warnings) {
- for (var p in loader.paths)
- if (p.indexOf('*') != -1)
- warn.call(loader, 'Paths configuration "' + p + '" -> "' + loader.paths[p] + '" uses wildcards which are being deprecated for just leaving a trailing "/" to indicate folder paths.');
- }
- }
-
- if (cfg.defaultJSExtensions) {
- loader.defaultJSExtensions = cfg.defaultJSExtensions;
- warn.call(loader, 'The defaultJSExtensions configuration option is deprecated, use packages configuration instead.');
- }
-
- if (cfg.pluginFirst)
- loader.pluginFirst = cfg.pluginFirst;
-
- if (cfg.map) {
- for (var p in cfg.map) {
- var v = cfg.map[p];
-
- // object map backwards-compat into packages configuration
- if (typeof v !== 'string') {
- var defaultJSExtension = loader.defaultJSExtensions && p.substr(p.length - 3, 3) != '.js';
- var prop = loader.decanonicalize(p);
- if (defaultJSExtension && prop.substr(prop.length - 3, 3) == '.js')
- prop = prop.substr(0, prop.length - 3);
-
- // if a package main, revert it
- var pkgMatch = '';
- for (var pkg in loader.packages) {
- if (prop.substr(0, pkg.length) == pkg
- && (!prop[pkg.length] || prop[pkg.length] == '/')
- && pkgMatch.split('/').length < pkg.split('/').length)
- pkgMatch = pkg;
- }
- if (pkgMatch && loader.packages[pkgMatch].main)
- prop = prop.substr(0, prop.length - loader.packages[pkgMatch].main.length - 1);
-
- var pkg = loader.packages[prop] = loader.packages[prop] || {};
- pkg.map = v;
- }
- else {
- loader.map[p] = v;
- }
- }
- }
-
- if (cfg.packageConfigPaths) {
- var packageConfigPaths = [];
- for (var i = 0; i < cfg.packageConfigPaths.length; i++) {
- var path = cfg.packageConfigPaths[i];
- var packageLength = Math.max(path.lastIndexOf('*') + 1, path.lastIndexOf('/'));
- var normalized = coreResolve.call(loader, path.substr(0, packageLength));
- packageConfigPaths[i] = normalized + path.substr(packageLength);
- }
- loader.packageConfigPaths = packageConfigPaths;
- }
-
- if (cfg.bundles) {
- for (var p in cfg.bundles) {
- var bundle = [];
- for (var i = 0; i < cfg.bundles[p].length; i++) {
- var defaultJSExtension = loader.defaultJSExtensions && cfg.bundles[p][i].substr(cfg.bundles[p][i].length - 3, 3) != '.js';
- var normalizedBundleDep = loader.decanonicalize(cfg.bundles[p][i]);
- if (defaultJSExtension && normalizedBundleDep.substr(normalizedBundleDep.length - 3, 3) == '.js')
- normalizedBundleDep = normalizedBundleDep.substr(0, normalizedBundleDep.length - 3);
- bundle.push(normalizedBundleDep);
- }
- loader.bundles[p] = bundle;
- }
- }
-
- if (cfg.packages) {
- for (var p in cfg.packages) {
- if (p.match(/^([^\/]+:)?\/\/$/))
- throw new TypeError('"' + p + '" is not a valid package name.');
-
- var prop = coreResolve.call(loader, p);
-
- // allow trailing slash in packages
- if (prop[prop.length - 1] == '/')
- prop = prop.substr(0, prop.length - 1);
-
- setPkgConfig(loader, prop, cfg.packages[p], false);
- }
- }
-
- for (var c in cfg) {
- var v = cfg[c];
-
- if (indexOf.call(['baseURL', 'map', 'packages', 'bundles', 'paths', 'warnings', 'packageConfigPaths',
- 'loaderErrorStack', 'browserConfig', 'nodeConfig', 'devConfig', 'buildConfig', 'productionConfig'], c) != -1)
- continue;
-
- if (typeof v != 'object' || v instanceof Array) {
- loader[c] = v;
- }
- else {
- loader[c] = loader[c] || {};
-
- for (var p in v) {
- // base-level wildcard meta does not normalize to retain catch-all quality
- if (c == 'meta' && p[0] == '*') {
- extend(loader[c][p] = loader[c][p] || {}, v[p]);
- }
- else if (c == 'meta') {
- // meta can go through global map, with defaultJSExtensions adding
- var resolved = coreResolve.call(loader, p);
- if (loader.defaultJSExtensions && resolved.substr(resolved.length - 3, 3) != '.js' && !isPlain(resolved))
- resolved += '.js';
- extend(loader[c][resolved] = loader[c][resolved] || {}, v[p]);
- }
- else if (c == 'depCache') {
- var defaultJSExtension = loader.defaultJSExtensions && p.substr(p.length - 3, 3) != '.js';
- var prop = loader.decanonicalize(p);
- if (defaultJSExtension && prop.substr(prop.length - 3, 3) == '.js')
- prop = prop.substr(0, prop.length - 3);
- loader[c][prop] = [].concat(v[p]);
- }
- else {
- loader[c][p] = v[p];
- }
- }
- }
- }
-
- envSet(loader, cfg, function(cfg) {
- loader.config(cfg, true);
- });
-};
-/*
- * Package Configuration Extension
- *
- * Example:
- *
- * SystemJS.packages = {
- * jquery: {
- * main: 'index.js', // when not set, package name is requested directly
- * format: 'amd',
- * defaultExtension: 'ts', // defaults to 'js', can be set to false
- * modules: {
- * '*.ts': {
- * loader: 'typescript'
- * },
- * 'vendor/sizzle.js': {
- * format: 'global'
- * }
- * },
- * map: {
- * // map internal require('sizzle') to local require('./vendor/sizzle')
- * sizzle: './vendor/sizzle.js',
- * // map any internal or external require of 'jquery/vendor/another' to 'another/index.js'
- * './vendor/another.js': './another/index.js',
- * // test.js / test -> lib/test.js
- * './test.js': './lib/test.js',
- *
- * // environment-specific map configurations
- * './index.js': {
- * '~browser': './index-node.js',
- * './custom-condition.js|~export': './index-custom.js'
- * }
- * },
- * // allows for setting package-prefixed depCache
- * // keys are normalized module names relative to the package itself
- * depCache: {
- * // import 'package/index.js' loads in parallel package/lib/test.js,package/vendor/sizzle.js
- * './index.js': ['./test'],
- * './test.js': ['external-dep'],
- * 'external-dep/path.js': ['./another.js']
- * }
- * }
- * };
- *
- * Then:
- * import 'jquery' -> jquery/index.js
- * import 'jquery/submodule' -> jquery/submodule.js
- * import 'jquery/submodule.ts' -> jquery/submodule.ts loaded as typescript
- * import 'jquery/vendor/another' -> another/index.js
- *
- * Detailed Behaviours
- * - main can have a leading "./" can be added optionally
- * - map and defaultExtension are applied to the main
- * - defaultExtension adds the extension only if the exact extension is not present
- * - defaultJSExtensions applies after map when defaultExtension is not set
- * - if a meta value is available for a module, map and defaultExtension are skipped
- * - like global map, package map also applies to subpaths (sizzle/x, ./vendor/another/sub)
- * - condition module map is '@env' module in package or '@system-env' globally
- * - map targets support conditional interpolation ('./x': './x.#{|env}.js')
- * - internal package map targets cannot use boolean conditionals
- *
- * Package Configuration Loading
- *
- * Not all packages may already have their configuration present in the System config
- * For these cases, a list of packageConfigPaths can be provided, which when matched against
- * a request, will first request a ".json" file by the package name to derive the package
- * configuration from. This allows dynamic loading of non-predetermined code, a key use
- * case in SystemJS.
- *
- * Example:
- *
- * SystemJS.packageConfigPaths = ['packages/test/package.json', 'packages/*.json'];
- *
- * // will first request 'packages/new-package/package.json' for the package config
- * // before completing the package request to 'packages/new-package/path'
- * SystemJS.import('packages/new-package/path');
- *
- * // will first request 'packages/test/package.json' before the main
- * SystemJS.import('packages/test');
- *
- * When a package matches packageConfigPaths, it will always send a config request for
- * the package configuration.
- * The package name itself is taken to be the match up to and including the last wildcard
- * or trailing slash.
- * The most specific package config path will be used.
- * Any existing package configurations for the package will deeply merge with the
- * package config, with the existing package configurations taking preference.
- * To opt-out of the package configuration request for a package that matches
- * packageConfigPaths, use the { configured: true } package config option.
- *
- */
-(function() {
-
- hookConstructor(function(constructor) {
- return function() {
- constructor.call(this);
- this.packages = {};
- this.packageConfigPaths = [];
- };
- });
-
- function getPackage(loader, normalized) {
- // use most specific package
- var curPkg, curPkgLen = 0, pkgLen;
- for (var p in loader.packages) {
- if (normalized.substr(0, p.length) === p && (normalized.length === p.length || normalized[p.length] === '/')) {
- pkgLen = p.split('/').length;
- if (pkgLen > curPkgLen) {
- curPkg = p;
- curPkgLen = pkgLen;
- }
- }
- }
- return curPkg;
- }
-
- function addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions) {
- // don't apply extensions to folders or if defaultExtension = false
- if (!subPath || subPath[subPath.length - 1] == '/' || skipExtensions || pkg.defaultExtension === false)
- return subPath;
-
- var metaMatch = false;
-
- // exact meta or meta with any content after the last wildcard skips extension
- if (pkg.meta)
- getMetaMatches(pkg.meta, subPath, function(metaPattern, matchMeta, matchDepth) {
- if (matchDepth == 0 || metaPattern.lastIndexOf('*') != metaPattern.length - 1)
- return metaMatch = true;
- });
-
- // exact global meta or meta with any content after the last wildcard skips extension
- if (!metaMatch && loader.meta)
- getMetaMatches(loader.meta, pkgName + '/' + subPath, function(metaPattern, matchMeta, matchDepth) {
- if (matchDepth == 0 || metaPattern.lastIndexOf('*') != metaPattern.length - 1)
- return metaMatch = true;
- });
-
- if (metaMatch)
- return subPath;
-
- // work out what the defaultExtension is and add if not there already
- // NB reconsider if default should really be ".js"?
- var defaultExtension = '.' + (pkg.defaultExtension || 'js');
- if (subPath.substr(subPath.length - defaultExtension.length) != defaultExtension)
- return subPath + defaultExtension;
- else
- return subPath;
- }
-
- function applyPackageConfigSync(loader, pkg, pkgName, subPath, skipExtensions) {
- // main
- if (!subPath) {
- if (pkg.main)
- subPath = pkg.main.substr(0, 2) == './' ? pkg.main.substr(2) : pkg.main;
- // also no submap if name is package itself (import 'pkg' -> 'path/to/pkg.js')
- else
- // NB can add a default package main convention here when defaultJSExtensions is deprecated
- // if it becomes internal to the package then it would no longer be an exit path
- return pkgName + (loader.defaultJSExtensions ? '.js' : '');
- }
-
- // map config checking without then with extensions
- if (pkg.map) {
- var mapPath = './' + subPath;
-
- var mapMatch = getMapMatch(pkg.map, mapPath);
-
- // we then check map with the default extension adding
- if (!mapMatch) {
- mapPath = './' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions);
- if (mapPath != './' + subPath)
- mapMatch = getMapMatch(pkg.map, mapPath);
- }
- if (mapMatch) {
- var mapped = doMapSync(loader, pkg, pkgName, mapMatch, mapPath, skipExtensions);
- if (mapped)
- return mapped;
- }
- }
-
- // normal package resolution
- return pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions);
- }
-
- function validMapping(mapMatch, mapped, pkgName, path) {
- // disallow internal to subpath maps
- if (mapMatch == '.')
- throw new Error('Package ' + pkgName + ' has a map entry for "." which is not permitted.');
-
- // allow internal ./x -> ./x/y or ./x/ -> ./x/y recursive maps
- // but only if the path is exactly ./x and not ./x/z
- if (mapped.substr(0, mapMatch.length) == mapMatch && path.length > mapMatch.length)
- return false;
-
- return true;
- }
-
- function doMapSync(loader, pkg, pkgName, mapMatch, path, skipExtensions) {
- if (path[path.length - 1] == '/')
- path = path.substr(0, path.length - 1);
- var mapped = pkg.map[mapMatch];
-
- if (typeof mapped == 'object')
- throw new Error('Synchronous conditional normalization not supported sync normalizing ' + mapMatch + ' in ' + pkgName);
-
- if (!validMapping(mapMatch, mapped, pkgName, path) || typeof mapped != 'string')
- return;
-
- // package map to main / base-level
- if (mapped == '.')
- mapped = pkgName;
-
- // internal package map
- else if (mapped.substr(0, 2) == './')
- return pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, mapped.substr(2) + path.substr(mapMatch.length), skipExtensions);
-
- // external map reference
- return loader.normalizeSync(mapped + path.substr(mapMatch.length), pkgName + '/');
- }
-
- function applyPackageConfig(loader, pkg, pkgName, subPath, skipExtensions) {
- // main
- if (!subPath) {
- if (pkg.main)
- subPath = pkg.main.substr(0, 2) == './' ? pkg.main.substr(2) : pkg.main;
- // also no submap if name is package itself (import 'pkg' -> 'path/to/pkg.js')
- else
- // NB can add a default package main convention here when defaultJSExtensions is deprecated
- // if it becomes internal to the package then it would no longer be an exit path
- return Promise.resolve(pkgName + (loader.defaultJSExtensions ? '.js' : ''));
- }
-
- // map config checking without then with extensions
- var mapPath, mapMatch;
-
- if (pkg.map) {
- mapPath = './' + subPath;
- mapMatch = getMapMatch(pkg.map, mapPath);
-
- // we then check map with the default extension adding
- if (!mapMatch) {
- mapPath = './' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions);
- if (mapPath != './' + subPath)
- mapMatch = getMapMatch(pkg.map, mapPath);
- }
- }
-
- return (mapMatch ? doMap(loader, pkg, pkgName, mapMatch, mapPath, skipExtensions) : Promise.resolve())
- .then(function(mapped) {
- if (mapped)
- return Promise.resolve(mapped);
-
- // normal package resolution / fallback resolution for no conditional match
- return Promise.resolve(pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions));
- });
- }
-
- function doStringMap(loader, pkg, pkgName, mapMatch, mapped, path, skipExtensions) {
- // NB the interpolation cases should strictly skip subsequent interpolation
- // package map to main / base-level
- if (mapped == '.')
- mapped = pkgName;
-
- // internal package map
- else if (mapped.substr(0, 2) == './')
- return Promise.resolve(pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, mapped.substr(2) + path.substr(mapMatch.length), skipExtensions))
- .then(function(name) {
- return interpolateConditional.call(loader, name, pkgName + '/');
- });
-
- // external map reference
- return loader.normalize(mapped + path.substr(mapMatch.length), pkgName + '/');
- }
-
- function doMap(loader, pkg, pkgName, mapMatch, path, skipExtensions) {
- if (path[path.length - 1] == '/')
- path = path.substr(0, path.length - 1);
-
- var mapped = pkg.map[mapMatch];
-
- if (typeof mapped == 'string') {
- if (!validMapping(mapMatch, mapped, pkgName, path))
- return Promise.resolve();
- return doStringMap(loader, pkg, pkgName, mapMatch, mapped, path, skipExtensions);
- }
-
- // we use a special conditional syntax to allow the builder to handle conditional branch points further
- if (loader.builder)
- return Promise.resolve(pkgName + '/#:' + path);
-
- // we load all conditions upfront
- var conditionPromises = [];
- var conditions = [];
- for (var e in mapped) {
- var c = parseCondition(e);
- conditions.push({
- condition: c,
- map: mapped[e]
- });
- conditionPromises.push(loader['import'](c.module, pkgName));
- }
-
- // map object -> conditional map
- return Promise.all(conditionPromises)
- .then(function(conditionValues) {
- // first map condition to match is used
- for (var i = 0; i < conditions.length; i++) {
- var c = conditions[i].condition;
- var value = readMemberExpression(c.prop, conditionValues[i]);
- if (!c.negate && value || c.negate && !value)
- return conditions[i].map;
- }
- })
- .then(function(mapped) {
- if (mapped) {
- if (!validMapping(mapMatch, mapped, pkgName, path))
- return;
- return doStringMap(loader, pkg, pkgName, mapMatch, mapped, path, skipExtensions);
- }
-
- // no environment match -> fallback to original subPath by returning undefined
- });
- }
-
- // normalizeSync = decanonicalize + package resolution
- SystemJSLoader.prototype.normalizeSync = SystemJSLoader.prototype.decanonicalize = SystemJSLoader.prototype.normalize;
-
- // decanonicalize must JUST handle package defaultExtension: false case when defaultJSExtensions is set
- // to be deprecated!
- hook('decanonicalize', function(decanonicalize) {
- return function(name, parentName) {
- if (this.builder)
- return decanonicalize.call(this, name, parentName, true);
-
- var decanonicalized = decanonicalize.call(this, name, parentName, false);
-
- if (!this.defaultJSExtensions)
- return decanonicalized;
-
- var pkgName = getPackage(this, decanonicalized);
-
- var pkg = this.packages[pkgName];
- var defaultExtension = pkg && pkg.defaultExtension;
-
- if (defaultExtension == undefined && pkg && pkg.meta)
- getMetaMatches(pkg.meta, decanonicalized.substr(pkgName), function(metaPattern, matchMeta, matchDepth) {
- if (matchDepth == 0 || metaPattern.lastIndexOf('*') != metaPattern.length - 1) {
- defaultExtension = false;
- return true;
- }
- });
-
- if ((defaultExtension === false || defaultExtension && defaultExtension != '.js') && name.substr(name.length - 3, 3) != '.js' && decanonicalized.substr(decanonicalized.length - 3, 3) == '.js')
- decanonicalized = decanonicalized.substr(0, decanonicalized.length - 3);
-
- return decanonicalized;
- };
- });
-
- hook('normalizeSync', function(normalizeSync) {
- return function(name, parentName, isPlugin) {
- var loader = this;
- isPlugin = isPlugin === true;
-
- // apply contextual package map first
- // (we assume the parent package config has already been loaded)
- if (parentName)
- var parentPackageName = getPackage(loader, parentName) ||
- loader.defaultJSExtensions && parentName.substr(parentName.length - 3, 3) == '.js' &&
- getPackage(loader, parentName.substr(0, parentName.length - 3));
-
- var parentPackage = parentPackageName && loader.packages[parentPackageName];
-
- // ignore . since internal maps handled by standard package resolution
- if (parentPackage && name[0] != '.') {
- var parentMap = parentPackage.map;
- var parentMapMatch = parentMap && getMapMatch(parentMap, name);
-
- if (parentMapMatch && typeof parentMap[parentMapMatch] == 'string') {
- var mapped = doMapSync(loader, parentPackage, parentPackageName, parentMapMatch, name, isPlugin);
- if (mapped)
- return mapped;
- }
- }
-
- var defaultJSExtension = loader.defaultJSExtensions && name.substr(name.length - 3, 3) != '.js';
-
- // apply map, core, paths, contextual package map
- var normalized = normalizeSync.call(loader, name, parentName, false);
-
- // undo defaultJSExtension
- if (defaultJSExtension && normalized.substr(normalized.length - 3, 3) != '.js')
- defaultJSExtension = false;
- if (defaultJSExtension)
- normalized = normalized.substr(0, normalized.length - 3);
-
- var pkgConfigMatch = getPackageConfigMatch(loader, normalized);
- var pkgName = pkgConfigMatch && pkgConfigMatch.packageName || getPackage(loader, normalized);
-
- if (!pkgName)
- return normalized + (defaultJSExtension ? '.js' : '');
-
- var subPath = normalized.substr(pkgName.length + 1);
-
- return applyPackageConfigSync(loader, loader.packages[pkgName] || {}, pkgName, subPath, isPlugin);
- };
- });
-
- hook('normalize', function(normalize) {
- return function(name, parentName, isPlugin) {
- var loader = this;
- isPlugin = isPlugin === true;
-
- return Promise.resolve()
- .then(function() {
- // apply contextual package map first
- // (we assume the parent package config has already been loaded)
- if (parentName)
- var parentPackageName = getPackage(loader, parentName) ||
- loader.defaultJSExtensions && parentName.substr(parentName.length - 3, 3) == '.js' &&
- getPackage(loader, parentName.substr(0, parentName.length - 3));
-
- var parentPackage = parentPackageName && loader.packages[parentPackageName];
-
- // ignore . since internal maps handled by standard package resolution
- if (parentPackage && name.substr(0, 2) != './') {
- var parentMap = parentPackage.map;
- var parentMapMatch = parentMap && getMapMatch(parentMap, name);
-
- if (parentMapMatch)
- return doMap(loader, parentPackage, parentPackageName, parentMapMatch, name, isPlugin);
- }
-
- return Promise.resolve();
- })
- .then(function(mapped) {
- if (mapped)
- return mapped;
-
- var defaultJSExtension = loader.defaultJSExtensions && name.substr(name.length - 3, 3) != '.js';
-
- // apply map, core, paths, contextual package map
- var normalized = normalize.call(loader, name, parentName, false);
-
- // undo defaultJSExtension
- if (defaultJSExtension && normalized.substr(normalized.length - 3, 3) != '.js')
- defaultJSExtension = false;
- if (defaultJSExtension)
- normalized = normalized.substr(0, normalized.length - 3);
-
- var pkgConfigMatch = getPackageConfigMatch(loader, normalized);
- var pkgName = pkgConfigMatch && pkgConfigMatch.packageName || getPackage(loader, normalized);
-
- if (!pkgName)
- return Promise.resolve(normalized + (defaultJSExtension ? '.js' : ''));
-
- var pkg = loader.packages[pkgName];
-
- // if package is already configured or not a dynamic config package, use existing package config
- var isConfigured = pkg && (pkg.configured || !pkgConfigMatch);
- return (isConfigured ? Promise.resolve(pkg) : loadPackageConfigPath(loader, pkgName, pkgConfigMatch.configPath))
- .then(function(pkg) {
- var subPath = normalized.substr(pkgName.length + 1);
-
- return applyPackageConfig(loader, pkg, pkgName, subPath, isPlugin);
- });
- });
- };
- });
-
- // check if the given normalized name matches a packageConfigPath
- // if so, loads the config
- var packageConfigPaths = {};
-
- // data object for quick checks against package paths
- function createPkgConfigPathObj(path) {
- var lastWildcard = path.lastIndexOf('*');
- var length = Math.max(lastWildcard + 1, path.lastIndexOf('/'));
- return {
- length: length,
- regEx: new RegExp('^(' + path.substr(0, length).replace(/[.+?^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '[^\\/]+') + ')(\\/|$)'),
- wildcard: lastWildcard != -1
- };
- }
-
- // most specific match wins
- function getPackageConfigMatch(loader, normalized) {
- var pkgName, exactMatch = false, configPath;
- for (var i = 0; i < loader.packageConfigPaths.length; i++) {
- var packageConfigPath = loader.packageConfigPaths[i];
- var p = packageConfigPaths[packageConfigPath] || (packageConfigPaths[packageConfigPath] = createPkgConfigPathObj(packageConfigPath));
- if (normalized.length < p.length)
- continue;
- var match = normalized.match(p.regEx);
- if (match && (!pkgName || (!(exactMatch && p.wildcard) && pkgName.length < match[1].length))) {
- pkgName = match[1];
- exactMatch = !p.wildcard;
- configPath = pkgName + packageConfigPath.substr(p.length);
- }
- }
-
- if (!pkgName)
- return;
-
- return {
- packageName: pkgName,
- configPath: configPath
- };
- }
-
- function loadPackageConfigPath(loader, pkgName, pkgConfigPath) {
- var configLoader = loader.pluginLoader || loader;
-
- // NB remove this when json is default
- (configLoader.meta[pkgConfigPath] = configLoader.meta[pkgConfigPath] || {}).format = 'json';
- configLoader.meta[pkgConfigPath].loader = null;
-
- return configLoader.load(pkgConfigPath)
- .then(function() {
- var cfg = configLoader.get(pkgConfigPath)['default'];
-
- // support "systemjs" prefixing
- if (cfg.systemjs)
- cfg = cfg.systemjs;
-
- // modules backwards compatibility
- if (cfg.modules) {
- cfg.meta = cfg.modules;
- warn.call(loader, 'Package config file ' + pkgConfigPath + ' is configured with "modules", which is deprecated as it has been renamed to "meta".');
- }
-
- return setPkgConfig(loader, pkgName, cfg, true);
- });
- }
-
- function getMetaMatches(pkgMeta, subPath, matchFn) {
- // wildcard meta
- var meta = {};
- var wildcardIndex;
- for (var module in pkgMeta) {
- // allow meta to start with ./ for flexibility
- var dotRel = module.substr(0, 2) == './' ? './' : '';
- if (dotRel)
- module = module.substr(2);
-
- wildcardIndex = module.indexOf('*');
- if (wildcardIndex === -1)
- continue;
-
- if (module.substr(0, wildcardIndex) == subPath.substr(0, wildcardIndex)
- && module.substr(wildcardIndex + 1) == subPath.substr(subPath.length - module.length + wildcardIndex + 1)) {
- // alow match function to return true for an exit path
- if (matchFn(module, pkgMeta[dotRel + module], module.split('/').length))
- return;
- }
- }
- // exact meta
- var exactMeta = pkgMeta[subPath] && pkgMeta.hasOwnProperty && pkgMeta.hasOwnProperty(subPath) ? pkgMeta[subPath] : pkgMeta['./' + subPath];
- if (exactMeta)
- matchFn(exactMeta, exactMeta, 0);
- }
-
- hook('locate', function(locate) {
- return function(load) {
- var loader = this;
- return Promise.resolve(locate.call(this, load))
- .then(function(address) {
- var pkgName = getPackage(loader, load.name);
- if (pkgName) {
- var pkg = loader.packages[pkgName];
- var subPath = load.name.substr(pkgName.length + 1);
-
- var meta = {};
- if (pkg.meta) {
- var bestDepth = 0;
-
- // NB support a main shorthand in meta here?
- getMetaMatches(pkg.meta, subPath, function(metaPattern, matchMeta, matchDepth) {
- if (matchDepth > bestDepth)
- bestDepth = matchDepth;
- extendMeta(meta, matchMeta, matchDepth && bestDepth > matchDepth);
- });
-
- extendMeta(load.metadata, meta);
- }
-
- // format
- if (pkg.format && !load.metadata.loader)
- load.metadata.format = load.metadata.format || pkg.format;
- }
-
- return address;
- });
- };
- });
-
-})();
-/*
- * Script tag fetch
- *
- * When load.metadata.scriptLoad is true, we load via script tag injection.
- */
-(function() {
-
- if (typeof document != 'undefined')
- var head = document.getElementsByTagName('head')[0];
-
- var curSystem;
- var curRequire;
-
- // if doing worker executing, this is set to the load record being executed
- var workerLoad = null;
-
- // interactive mode handling method courtesy RequireJS
- var ieEvents = head && (function() {
- var s = document.createElement('script');
- var isOpera = typeof opera !== 'undefined' && opera.toString() === '[object Opera]';
- return s.attachEvent && !(s.attachEvent.toString && s.attachEvent.toString().indexOf('[native code') < 0) && !isOpera;
- })();
-
- // IE interactive-only part
- // we store loading scripts array as { script: <script>, load: {...} }
- var interactiveLoadingScripts = [];
- var interactiveScript;
- function getInteractiveScriptLoad() {
- if (interactiveScript && interactiveScript.script.readyState === 'interactive')
- return interactiveScript.load;
-
- for (var i = 0; i < interactiveLoadingScripts.length; i++)
- if (interactiveLoadingScripts[i].script.readyState == 'interactive') {
- interactiveScript = interactiveLoadingScripts[i];
- return interactiveScript.load;
- }
- }
-
- // System.register, System.registerDynamic, AMD define pipeline
- // this is called by the above methods when they execute
- // we then run the reduceRegister_ collection function either immediately
- // if we are in IE and know the currently executing script (interactive)
- // or later if we need to wait for the synchronous load callback to know the script
- var loadingCnt = 0;
- var registerQueue = [];
- hook('pushRegister_', function(pushRegister) {
- return function(register) {
- // if using eval-execution then skip
- if (pushRegister.call(this, register))
- return false;
-
- // if using worker execution, then we're done
- if (workerLoad)
- this.reduceRegister_(workerLoad, register);
-
- // detect if we know the currently executing load (IE)
- // if so, immediately call reduceRegister
- else if (ieEvents)
- this.reduceRegister_(getInteractiveScriptLoad(), register);
-
- // otherwise, add to our execution queue
- // to call reduceRegister on sync script load event
- else if (loadingCnt)
- registerQueue.push(register);
-
- // if we're not currently loading anything though
- // then do the reduction against a null load
- // (out of band named define or named register)
- // note even in non-script environments, this catch is used
- else
- this.reduceRegister_(null, register);
-
- return true;
- };
- });
-
- function webWorkerImport(loader, load) {
- return new Promise(function(resolve, reject) {
- if (load.metadata.integrity)
- reject(new Error('Subresource integrity checking is not supported in web workers.'));
-
- workerLoad = load;
- try {
- importScripts(load.address);
- }
- catch(e) {
- workerLoad = null;
- reject(e);
- }
- workerLoad = null;
-
- // if nothing registered, then something went wrong
- if (!load.metadata.entry)
- reject(new Error(load.address + ' did not call System.register or AMD define. If loading a global, ensure the meta format is set to global.'));
-
- resolve('');
- });
- }
-
- // override fetch to use script injection
- hook('fetch', function(fetch) {
- return function(load) {
- var loader = this;
-
- if (load.metadata.format == 'json' || !load.metadata.scriptLoad || (!isBrowser && !isWorker))
- return fetch.call(this, load);
-
- if (isWorker)
- return webWorkerImport(loader, load);
-
- return new Promise(function(resolve, reject) {
- var s = document.createElement('script');
-
- s.async = true;
-
- if (load.metadata.crossOrigin)
- s.crossOrigin = load.metadata.crossOrigin;
-
- if (load.metadata.integrity)
- s.setAttribute('integrity', load.metadata.integrity);
-
- if (ieEvents) {
- s.attachEvent('onreadystatechange', complete);
- interactiveLoadingScripts.push({
- script: s,
- load: load
- });
- }
- else {
- s.addEventListener('load', complete, false);
- s.addEventListener('error', error, false);
- }
-
- loadingCnt++;
-
- curSystem = __global.System;
- curRequire = __global.require;
-
- s.src = load.address;
- head.appendChild(s);
-
- function complete(evt) {
- if (s.readyState && s.readyState != 'loaded' && s.readyState != 'complete')
- return;
-
- loadingCnt--;
-
- // complete call is sync on execution finish
- // (in ie already done reductions)
- if (!load.metadata.entry && !registerQueue.length) {
- loader.reduceRegister_(load);
- }
- else if (!ieEvents) {
- for (var i = 0; i < registerQueue.length; i++)
- loader.reduceRegister_(load, registerQueue[i]);
- registerQueue = [];
- }
-
- cleanup();
-
- // if nothing registered, then something went wrong
- if (!load.metadata.entry && !load.metadata.bundle)
- reject(new Error(load.name + ' did not call System.register or AMD define. If loading a global module configure the global name via the meta exports property for script injection support.'));
-
- resolve('');
- }
-
- function error(evt) {
- cleanup();
- reject(new Error('Unable to load script ' + load.address));
- }
-
- function cleanup() {
- __global.System = curSystem;
- __global.require = curRequire;
-
- if (s.detachEvent) {
- s.detachEvent('onreadystatechange', complete);
- for (var i = 0; i < interactiveLoadingScripts.length; i++)
- if (interactiveLoadingScripts[i].script == s) {
- if (interactiveScript && interactiveScript.script == s)
- interactiveScript = null;
- interactiveLoadingScripts.splice(i, 1);
- }
- }
- else {
- s.removeEventListener('load', complete, false);
- s.removeEventListener('error', error, false);
- }
-
- head.removeChild(s);
- }
- });
- };
- });
-})();
-/*
- * Instantiate registry extension
- *
- * Supports Traceur System.register 'instantiate' output for loading ES6 as ES5.
- *
- * - Creates the loader.register function
- * - Also supports metadata.format = 'register' in instantiate for anonymous register modules
- * - Also supports metadata.deps, metadata.execute and metadata.executingRequire
- * for handling dynamic modules alongside register-transformed ES6 modules
- *
- *
- * The code here replicates the ES6 linking groups algorithm to ensure that
- * circular ES6 compiled into System.register can work alongside circular AMD
- * and CommonJS, identically to the actual ES6 loader.
- *
- */
-
-
-/*
- * Registry side table entries in loader.defined
- * Registry Entry Contains:
- * - name
- * - deps
- * - declare for declarative modules
- * - execute for dynamic modules, different to declarative execute on module
- * - executingRequire indicates require drives execution for circularity of dynamic modules
- * - declarative optional boolean indicating which of the above
- *
- * Can preload modules directly on SystemJS.defined['my/module'] = { deps, execute, executingRequire }
- *
- * Then the entry gets populated with derived information during processing:
- * - normalizedDeps derived from deps, created in instantiate
- * - groupIndex used by group linking algorithm
- * - evaluated indicating whether evaluation has happend
- * - module the module record object, containing:
- * - exports actual module exports
- *
- * For dynamic we track the es module with:
- * - esModule actual es module value
- * - esmExports whether to extend the esModule with named exports
- *
- * Then for declarative only we track dynamic bindings with the 'module' records:
- * - name
- * - exports
- * - setters declarative setter functions
- * - dependencies, module records of dependencies
- * - importers, module records of dependents
- *
- * After linked and evaluated, entries are removed, declarative module records remain in separate
- * module binding table
- *
- */
-
-var leadingCommentAndMetaRegEx = /^(\s*\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)*\s*/;
-function detectRegisterFormat(source) {
- var leadingCommentAndMeta = source.match(leadingCommentAndMetaRegEx);
- return leadingCommentAndMeta && source.substr(leadingCommentAndMeta[0].length, 15) == 'System.register';
-}
-
-function createEntry() {
- return {
- name: null,
- deps: null,
- originalIndices: null,
- declare: null,
- execute: null,
- executingRequire: false,
- declarative: false,
- normalizedDeps: null,
- groupIndex: null,
- evaluated: false,
- module: null,
- esModule: null,
- esmExports: false
- };
-}
-
-(function() {
-
- /*
- * There are two variations of System.register:
- * 1. System.register for ES6 conversion (2-3 params) - System.register([name, ]deps, declare)
- * see https://github.com/ModuleLoader/es6-module-loader/wiki/System.register-Explained
- *
- * 2. System.registerDynamic for dynamic modules (3-4 params) - System.registerDynamic([name, ]deps, executingRequire, execute)
- * the true or false statement
- *
- * this extension implements the linking algorithm for the two variations identical to the spec
- * allowing compiled ES6 circular references to work alongside AMD and CJS circular references.
- *
- */
- SystemJSLoader.prototype.register = function(name, deps, declare) {
- if (typeof name != 'string') {
- declare = deps;
- deps = name;
- name = null;
- }
-
- // dynamic backwards-compatibility
- // can be deprecated eventually
- if (typeof declare == 'boolean')
- return this.registerDynamic.apply(this, arguments);
-
- var entry = createEntry();
- // ideally wouldn't apply map config to bundle names but
- // dependencies go through map regardless so we can't restrict
- // could reconsider in shift to new spec
- entry.name = name && (this.decanonicalize || this.normalize).call(this, name);
- entry.declarative = true;
- entry.deps = deps;
- entry.declare = declare;
-
- this.pushRegister_({
- amd: false,
- entry: entry
- });
- };
- SystemJSLoader.prototype.registerDynamic = function(name, deps, declare, execute) {
- if (typeof name != 'string') {
- execute = declare;
- declare = deps;
- deps = name;
- name = null;
- }
-
- // dynamic
- var entry = createEntry();
- entry.name = name && (this.decanonicalize || this.normalize).call(this, name);
- entry.deps = deps;
- entry.execute = execute;
- entry.executingRequire = declare;
-
- this.pushRegister_({
- amd: false,
- entry: entry
- });
- };
- hook('reduceRegister_', function() {
- return function(load, register) {
- if (!register)
- return;
-
- var entry = register.entry;
- var curMeta = load && load.metadata;
-
- // named register
- if (entry.name) {
- if (!(entry.name in this.defined))
- this.defined[entry.name] = entry;
-
- if (curMeta)
- curMeta.bundle = true;
- }
- // anonymous register
- if (!entry.name || load && !curMeta.entry && entry.name == load.name) {
- if (!curMeta)
- throw new TypeError('Invalid System.register call. Anonymous System.register calls can only be made by modules loaded by SystemJS.import and not via script tags.');
- if (curMeta.entry) {
- if (curMeta.format == 'register')
- throw new Error('Multiple anonymous System.register calls in module ' + load.name + '. If loading a bundle, ensure all the System.register calls are named.');
- else
- throw new Error('Module ' + load.name + ' interpreted as ' + curMeta.format + ' module format, but called System.register.');
- }
- if (!curMeta.format)
- curMeta.format = 'register';
- curMeta.entry = entry;
- }
- };
- });
-
- hookConstructor(function(constructor) {
- return function() {
- constructor.call(this);
-
- this.defined = {};
- this._loader.moduleRecords = {};
- };
- });
-
- function buildGroups(entry, loader, groups) {
- groups[entry.groupIndex] = groups[entry.groupIndex] || [];
-
- if (indexOf.call(groups[entry.groupIndex], entry) != -1)
- return;
-
- groups[entry.groupIndex].push(entry);
-
- for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) {
- var depName = entry.normalizedDeps[i];
- var depEntry = loader.defined[depName];
-
- // not in the registry means already linked / ES6
- if (!depEntry || depEntry.evaluated)
- continue;
-
- // now we know the entry is in our unlinked linkage group
- var depGroupIndex = entry.groupIndex + (depEntry.declarative != entry.declarative);
-
- // the group index of an entry is always the maximum
- if (depEntry.groupIndex === null || depEntry.groupIndex < depGroupIndex) {
-
- // if already in a group, remove from the old group
- if (depEntry.groupIndex !== null) {
- groups[depEntry.groupIndex].splice(indexOf.call(groups[depEntry.groupIndex], depEntry), 1);
-
- // if the old group is empty, then we have a mixed depndency cycle
- if (groups[depEntry.groupIndex].length == 0)
- throw new Error("Mixed dependency cycle detected");
- }
-
- depEntry.groupIndex = depGroupIndex;
- }
-
- buildGroups(depEntry, loader, groups);
- }
- }
-
- function link(name, startEntry, loader) {
- // skip if already linked
- if (startEntry.module)
- return;
-
- startEntry.groupIndex = 0;
-
- var groups = [];
-
- buildGroups(startEntry, loader, groups);
-
- var curGroupDeclarative = !!startEntry.declarative == groups.length % 2;
- for (var i = groups.length - 1; i >= 0; i--) {
- var group = groups[i];
- for (var j = 0; j < group.length; j++) {
- var entry = group[j];
-
- // link each group
- if (curGroupDeclarative)
- linkDeclarativeModule(entry, loader);
- else
- linkDynamicModule(entry, loader);
- }
- curGroupDeclarative = !curGroupDeclarative;
- }
- }
-
- // module binding records
- function ModuleRecord() {}
- defineProperty(ModuleRecord, 'toString', {
- value: function() {
- return 'Module';
- }
- });
-
- function getOrCreateModuleRecord(name, moduleRecords) {
- return moduleRecords[name] || (moduleRecords[name] = {
- name: name,
- dependencies: [],
- exports: new ModuleRecord(), // start from an empty module and extend
- importers: []
- });
- }
-
- function linkDeclarativeModule(entry, loader) {
- // only link if already not already started linking (stops at circular)
- if (entry.module)
- return;
-
- var moduleRecords = loader._loader.moduleRecords;
- var module = entry.module = getOrCreateModuleRecord(entry.name, moduleRecords);
- var exports = entry.module.exports;
-
- var declaration = entry.declare.call(__global, function(name, value) {
- module.locked = true;
-
- if (typeof name == 'object') {
- for (var p in name)
- exports[p] = name[p];
- }
- else {
- exports[name] = value;
- }
-
- for (var i = 0, l = module.importers.length; i < l; i++) {
- var importerModule = module.importers[i];
- if (!importerModule.locked) {
- var importerIndex = indexOf.call(importerModule.dependencies, module);
- var setter = importerModule.setters[importerIndex];
- if (setter)
- setter(exports);
- }
- }
-
- module.locked = false;
- return value;
- }, { id: entry.name });
-
- if (typeof declaration == 'function')
- declaration = { setters: [], execute: declaration };
-
- // allowing undefined declaration was a mistake! To be deprecated.
- declaration = declaration || { setters: [], execute: function() {} };
-
- module.setters = declaration.setters;
- module.execute = declaration.execute;
-
- if (!module.setters || !module.execute) {
- throw new TypeError('Invalid System.register form for ' + entry.name);
- }
-
- // now link all the module dependencies
- for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) {
- var depName = entry.normalizedDeps[i];
- var depEntry = loader.defined[depName];
- var depModule = moduleRecords[depName];
-
- // work out how to set depExports based on scenarios...
- var depExports;
-
- if (depModule) {
- depExports = depModule.exports;
- }
- // dynamic, already linked in our registry
- else if (depEntry && !depEntry.declarative) {
- depExports = depEntry.esModule;
- }
- // in the loader registry
- else if (!depEntry) {
- depExports = loader.get(depName);
- }
- // we have an entry -> link
- else {
- linkDeclarativeModule(depEntry, loader);
- depModule = depEntry.module;
- depExports = depModule.exports;
- }
-
- // only declarative modules have dynamic bindings
- if (depModule && depModule.importers) {
- depModule.importers.push(module);
- module.dependencies.push(depModule);
- }
- else {
- module.dependencies.push(null);
- }
-
- // run setters for all entries with the matching dependency name
- var originalIndices = entry.originalIndices[i];
- for (var j = 0, len = originalIndices.length; j < len; ++j) {
- var index = originalIndices[j];
- if (module.setters[index]) {
- module.setters[index](depExports);
- }
- }
- }
- }
-
- // An analog to loader.get covering execution of all three layers (real declarative, simulated declarative, simulated dynamic)
- function getModule(name, loader) {
- var exports;
- var entry = loader.defined[name];
-
- if (!entry) {
- exports = loader.get(name);
- if (!exports)
- throw new Error('Unable to load dependency ' + name + '.');
- }
-
- else {
- if (entry.declarative)
- ensureEvaluated(name, entry, [], loader);
-
- else if (!entry.evaluated)
- linkDynamicModule(entry, loader);
-
- exports = entry.module.exports;
- }
-
- if ((!entry || entry.declarative) && exports && exports.__useDefault)
- return exports['default'];
-
- return exports;
- }
-
- function linkDynamicModule(entry, loader) {
- if (entry.module)
- return;
-
- var exports = {};
-
- var module = entry.module = { exports: exports, id: entry.name };
-
- // AMD requires execute the tree first
- if (!entry.executingRequire) {
- for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) {
- var depName = entry.normalizedDeps[i];
- // we know we only need to link dynamic due to linking algorithm
- var depEntry = loader.defined[depName];
- if (depEntry)
- linkDynamicModule(depEntry, loader);
- }
- }
-
- // now execute
- entry.evaluated = true;
- var output = entry.execute.call(__global, function(name) {
- for (var i = 0, l = entry.deps.length; i < l; i++) {
- if (entry.deps[i] != name)
- continue;
- return getModule(entry.normalizedDeps[i], loader);
- }
- // try and normalize the dependency to see if we have another form
- var nameNormalized = loader.normalizeSync(name, entry.name);
- if (indexOf.call(entry.normalizedDeps, nameNormalized) != -1)
- return getModule(nameNormalized, loader);
-
- throw new Error('Module ' + name + ' not declared as a dependency of ' + entry.name);
- }, exports, module);
-
- if (output !== undefined)
- module.exports = output;
-
- // create the esModule object, which allows ES6 named imports of dynamics
- exports = module.exports;
-
- // __esModule flag treats as already-named
- if (exports && (exports.__esModule || exports instanceof Module))
- entry.esModule = loader.newModule(exports);
- // set module as 'default' export, then fake named exports by iterating properties
- else if (entry.esmExports && exports !== __global)
- entry.esModule = loader.newModule(getESModule(exports));
- // just use the 'default' export
- else
- entry.esModule = loader.newModule({ 'default': exports, __useDefault: true });
- }
-
- /*
- * Given a module, and the list of modules for this current branch,
- * ensure that each of the dependencies of this module is evaluated
- * (unless one is a circular dependency already in the list of seen
- * modules, in which case we execute it)
- *
- * Then we evaluate the module itself depth-first left to right
- * execution to match ES6 modules
- */
- function ensureEvaluated(moduleName, entry, seen, loader) {
- // if already seen, that means it's an already-evaluated non circular dependency
- if (!entry || entry.evaluated || !entry.declarative)
- return;
-
- // this only applies to declarative modules which late-execute
-
- seen.push(moduleName);
-
- for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) {
- var depName = entry.normalizedDeps[i];
- if (indexOf.call(seen, depName) == -1) {
- if (!loader.defined[depName])
- loader.get(depName);
- else
- ensureEvaluated(depName, loader.defined[depName], seen, loader);
- }
- }
-
- if (entry.evaluated)
- return;
-
- entry.evaluated = true;
- entry.module.execute.call(__global);
- }
-
- // override the delete method to also clear the register caches
- hook('delete', function(del) {
- return function(name) {
- delete this._loader.moduleRecords[name];
- delete this.defined[name];
- return del.call(this, name);
- };
- });
-
- hook('fetch', function(fetch) {
- return function(load) {
- if (this.defined[load.name]) {
- load.metadata.format = 'defined';
- return '';
- }
-
- load.metadata.deps = load.metadata.deps || [];
-
- return fetch.call(this, load);
- };
- });
-
- hook('translate', function(translate) {
- // we run the meta detection here (register is after meta)
- return function(load) {
- load.metadata.deps = load.metadata.deps || [];
- return Promise.resolve(translate.apply(this, arguments)).then(function(source) {
- // run detection for register format
- if (load.metadata.format == 'register' || load.metadata.format == 'system' || !load.metadata.format && detectRegisterFormat(load.source))
- load.metadata.format = 'register';
- return source;
- });
- };
- });
-
- // implement a perforance shortpath for System.load with no deps
- hook('load', function(doLoad) {
- return function(normalized) {
- var loader = this;
- var entry = loader.defined[normalized];
-
- if (!entry || entry.deps.length)
- return doLoad.apply(this, arguments);
-
- entry.originalIndices = entry.normalizedDeps = [];
-
- // recursively ensure that the module and all its
- // dependencies are linked (with dependency group handling)
- link(normalized, entry, loader);
-
- // now handle dependency execution in correct order
- ensureEvaluated(normalized, entry, [], loader);
- if (!entry.esModule)
- entry.esModule = loader.newModule(entry.module.exports);
-
- // remove from the registry
- if (!loader.trace)
- loader.defined[normalized] = undefined;
-
- // return the defined module object
- loader.set(normalized, entry.esModule);
-
- return Promise.resolve();
- };
- });
-
- hook('instantiate', function(instantiate) {
- return function(load) {
- if (load.metadata.format == 'detect')
- load.metadata.format = undefined;
-
- // assumes previous instantiate is sync
- // (core json support)
- instantiate.call(this, load);
-
- var loader = this;
-
- var entry;
-
- // first we check if this module has already been defined in the registry
- if (loader.defined[load.name]) {
- entry = loader.defined[load.name];
- // don't support deps for ES modules
- if (!entry.declarative)
- entry.deps = entry.deps.concat(load.metadata.deps);
- entry.deps = entry.deps.concat(load.metadata.deps);
- }
-
- // picked up already by an anonymous System.register script injection
- // or via the dynamic formats
- else if (load.metadata.entry) {
- entry = load.metadata.entry;
- entry.deps = entry.deps.concat(load.metadata.deps);
- }
-
- // Contains System.register calls
- // (dont run bundles in the builder)
- else if (!(loader.builder && load.metadata.bundle)
- && (load.metadata.format == 'register' || load.metadata.format == 'esm' || load.metadata.format == 'es6')) {
-
- if (typeof __exec != 'undefined')
- __exec.call(loader, load);
-
- if (!load.metadata.entry && !load.metadata.bundle)
- throw new Error(load.name + ' detected as ' + load.metadata.format + ' but didn\'t execute.');
-
- entry = load.metadata.entry;
-
- // support metadata deps for System.register
- if (entry && load.metadata.deps)
- entry.deps = entry.deps.concat(load.metadata.deps);
- }
-
- // named bundles are just an empty module
- if (!entry) {
- entry = createEntry();
- entry.deps = load.metadata.deps;
- entry.execute = function() {};
- }
-
- // place this module onto defined for circular references
- loader.defined[load.name] = entry;
-
- var grouped = group(entry.deps);
-
- entry.deps = grouped.names;
- entry.originalIndices = grouped.indices;
- entry.name = load.name;
- entry.esmExports = load.metadata.esmExports !== false;
-
- // first, normalize all dependencies
- var normalizePromises = [];
- for (var i = 0, l = entry.deps.length; i < l; i++)
- normalizePromises.push(Promise.resolve(loader.normalize(entry.deps[i], load.name)));
-
- return Promise.all(normalizePromises).then(function(normalizedDeps) {
-
- entry.normalizedDeps = normalizedDeps;
-
- return {
- deps: entry.deps,
- execute: function() {
- // recursively ensure that the module and all its
- // dependencies are linked (with dependency group handling)
- link(load.name, entry, loader);
-
- // now handle dependency execution in correct order
- ensureEvaluated(load.name, entry, [], loader);
-
- if (!entry.esModule)
- entry.esModule = loader.newModule(entry.module.exports);
-
- // remove from the registry
- if (!loader.trace)
- loader.defined[load.name] = undefined;
-
- // return the defined module object
- return entry.esModule;
- }
- };
- });
- };
- });
-})();
-/*
- * Extension to detect ES6 and auto-load Traceur or Babel for processing
- */
-(function() {
- // good enough ES6 module detection regex - format detections not designed to be accurate, but to handle the 99% use case
- var esmRegEx = /(^\s*|[}\);\n]\s*)(import\s*(['"]|(\*\s+as\s+)?[^"'\(\)\n;]+\s*from\s*['"]|\{)|export\s+\*\s+from\s+["']|export\s*(\{|default|function|class|var|const|let|async\s+function))/;
-
- var traceurRuntimeRegEx = /\$traceurRuntime\s*\./;
- var babelHelpersRegEx = /babelHelpers\s*\./;
-
- hook('translate', function(translate) {
- return function(load) {
- var loader = this;
- var args = arguments;
- return translate.apply(loader, args)
- .then(function(source) {
- // detect & transpile ES6
- if (load.metadata.format == 'esm' || load.metadata.format == 'es6' || !load.metadata.format && source.match(esmRegEx)) {
- if (load.metadata.format == 'es6')
- warn.call(loader, 'Module ' + load.name + ' has metadata setting its format to "es6", which is deprecated.\nThis should be updated to "esm".');
-
- load.metadata.format = 'esm';
-
- if (load.metadata.deps) {
- var depInject = '';
- for (var i = 0; i < load.metadata.deps.length; i++)
- depInject += 'import "' + load.metadata.deps[i] + '"; ';
- load.source = depInject + source;
- }
-
- if (loader.transpiler === false) {
- // we accept translation to esm for builds though to enable eg rollup optimizations
- if (loader.builder)
- return source;
- throw new TypeError('Unable to dynamically transpile ES module as SystemJS.transpiler set to false.');
- }
-
- // setting _loader.loadedTranspiler = false tells the next block to
- // do checks for setting transpiler metadata
- loader._loader.loadedTranspiler = loader._loader.loadedTranspiler || false;
- if (loader.pluginLoader)
- loader.pluginLoader._loader.loadedTranspiler = loader._loader.loadedTranspiler || false;
-
- // do transpilation
- return (loader._loader.transpilerPromise || (
- loader._loader.transpilerPromise = Promise.resolve(
- __global[loader.transpiler == 'typescript' ? 'ts' : loader.transpiler] || (loader.pluginLoader || loader).normalize(loader.transpiler)
- .then(function(normalized) {
- loader._loader.transpilerNormalized = normalized;
- return (loader.pluginLoader || loader).load(normalized)
- .then(function() {
- return (loader.pluginLoader || loader).get(normalized);
- });
- })
- ))).then(function(transpiler) {
- loader._loader.loadedTranspilerRuntime = true;
-
- if (typeof transpiler.default === 'function' && !__global[loader.transpiler == 'typescript' ? 'ts' : loader.transpiler]) {
- // instantiate plugins dont build
- if (loader.builder)
- return source;
- return Promise.resolve(transpiler.default.call(loader, load.address, load.name))
- .then(function (result) {
- createInstantiate(load, result);
- return '';
- });
- }
-
- // translate hooks means this is a transpiler plugin instead of a raw implementation
- if (transpiler.translate) {
- // if transpiler is the same as the plugin loader, then don't run twice
- if (transpiler == load.metadata.loaderModule)
- return load.source;
-
- // convert the source map into an object for transpilation chaining
- if (typeof load.metadata.sourceMap == 'string')
- load.metadata.sourceMap = JSON.parse(load.metadata.sourceMap);
-
- return Promise.resolve(transpiler.translate.apply(loader, args))
- .then(function(source) {
- // sanitize sourceMap if an object not a JSON string
- var sourceMap = load.metadata.sourceMap;
- if (sourceMap && typeof sourceMap == 'object') {
- var originalName = load.address.split('!')[0];
-
- // force set the filename of the original file
- if (!sourceMap.file || sourceMap.file == load.address)
- sourceMap.file = originalName + '!transpiled';
-
- // force set the sources list if only one source
- if (!sourceMap.sources || sourceMap.sources.length <= 1 && (!sourceMap.sources[0] || sourceMap.sources[0] == load.address))
- sourceMap.sources = [originalName];
- }
-
- if (load.metadata.format == 'esm' && !loader.builder && detectRegisterFormat(source))
- load.metadata.format = 'register';
- return source;
- });
- }
-
- // legacy builder support
- if (loader.builder)
- load.metadata.originalSource = load.source;
-
- // defined in es6-module-loader/src/transpile.js
- return transpile.call(loader, load)
- .then(function(source) {
- // clear sourceMap as transpiler embeds it
- load.metadata.sourceMap = undefined;
- return source;
- });
- }, function(err) {
- throw addToError(err, 'Unable to load transpiler to transpile ' + load.name);
- });
- }
-
- // skip transpiler and transpiler runtime loading when transpiler is disabled
- if (loader.transpiler === false)
- return source;
-
- // load the transpiler correctly
- if (loader._loader.loadedTranspiler === false && (loader.transpiler == 'traceur' || loader.transpiler == 'typescript' || loader.transpiler == 'babel')
- && load.name == loader.normalizeSync(loader.transpiler)) {
-
- // always load transpiler as a global
- if (source.length > 100 && !load.metadata.format) {
- load.metadata.format = 'global';
-
- if (loader.transpiler === 'traceur')
- load.metadata.exports = 'traceur';
- if (loader.transpiler === 'typescript')
- load.metadata.exports = 'ts';
- }
-
- loader._loader.loadedTranspiler = true;
- }
-
- // load the transpiler runtime correctly
- if (loader._loader.loadedTranspilerRuntime === false) {
- if (load.name == loader.normalizeSync('traceur-runtime')
- || load.name == loader.normalizeSync('babel/external-helpers*')) {
- if (source.length > 100)
- load.metadata.format = load.metadata.format || 'global';
-
- loader._loader.loadedTranspilerRuntime = true;
- }
- }
-
- // detect transpiler runtime usage to load runtimes
- if ((load.metadata.format == 'register' || load.metadata.bundle) && loader._loader.loadedTranspilerRuntime !== true) {
- if (loader.transpiler == 'traceur' && !__global.$traceurRuntime && load.source.match(traceurRuntimeRegEx)) {
- loader._loader.loadedTranspilerRuntime = loader._loader.loadedTranspilerRuntime || false;
- return loader['import']('traceur-runtime').then(function() {
- return source;
- });
- }
- if (loader.transpiler == 'babel' && !__global.babelHelpers && load.source.match(babelHelpersRegEx)) {
- loader._loader.loadedTranspilerRuntime = loader._loader.loadedTranspilerRuntime || false;
- return loader['import']('babel/external-helpers').then(function() {
- return source;
- });
- }
- }
-
- return source;
- });
- };
- });
-
-})();
-/*
- SystemJS Global Format
-
- Supports
- metadata.deps
- metadata.globals
- metadata.exports
-
- Without metadata.exports, detects writes to the global object.
-*/
-var __globalName = typeof self != 'undefined' ? 'self' : 'global';
-
-hook('fetch', function(fetch) {
- return function(load) {
- if (load.metadata.exports && !load.metadata.format)
- load.metadata.format = 'global';
- return fetch.call(this, load);
- };
-});
-
-// ideally we could support script loading for globals, but the issue with that is that
-// we can't do it with AMD support side-by-side since AMD support means defining the
-// global define, and global support means not definining it, yet we don't have any hook
-// into the "pre-execution" phase of a script tag being loaded to handle both cases
-hook('instantiate', function(instantiate) {
- return function(load) {
- var loader = this;
-
- if (!load.metadata.format)
- load.metadata.format = 'global';
-
- // global is a fallback module format
- if (load.metadata.format == 'global' && !load.metadata.entry) {
-
- var entry = createEntry();
-
- load.metadata.entry = entry;
-
- entry.deps = [];
-
- for (var g in load.metadata.globals) {
- var gl = load.metadata.globals[g];
- if (gl)
- entry.deps.push(gl);
- }
-
- entry.execute = function(require, exports, module) {
-
- var globals;
- if (load.metadata.globals) {
- globals = {};
- for (var g in load.metadata.globals)
- if (load.metadata.globals[g])
- globals[g] = require(load.metadata.globals[g]);
- }
-
- var exportName = load.metadata.exports;
-
- if (exportName)
- load.source += '\n' + __globalName + '["' + exportName + '"] = ' + exportName + ';';
-
- var retrieveGlobal = loader.get('@@global-helpers').prepareGlobal(module.id, exportName, globals, !!load.metadata.encapsulateGlobal);
- __exec.call(loader, load);
-
- return retrieveGlobal();
- }
- }
- return instantiate.call(this, load);
- };
-});
-
-
-function getGlobalValue(exports) {
- if (typeof exports == 'string')
- return readMemberExpression(exports, __global);
-
- if (!(exports instanceof Array))
- throw new Error('Global exports must be a string or array.');
-
- var globalValue = {};
- var first = true;
- for (var i = 0; i < exports.length; i++) {
- var val = readMemberExpression(exports[i], __global);
- if (first) {
- globalValue['default'] = val;
- first = false;
- }
- globalValue[exports[i].split('.').pop()] = val;
- }
- return globalValue;
-}
-
-hook('reduceRegister_', function(reduceRegister) {
- return function(load, register) {
- if (register || (!load.metadata.exports && !(isWorker && load.metadata.format == 'global')))
- return reduceRegister.call(this, load, register);
-
- load.metadata.format = 'global';
- var entry = load.metadata.entry = createEntry();
- entry.deps = load.metadata.deps;
- var globalValue = getGlobalValue(load.metadata.exports);
- entry.execute = function() {
- return globalValue;
- };
- };
-});
-
-hookConstructor(function(constructor) {
- return function() {
- var loader = this;
- constructor.call(loader);
-
- var hasOwnProperty = Object.prototype.hasOwnProperty;
-
- // bare minimum ignores
- var ignoredGlobalProps = ['_g', 'sessionStorage', 'localStorage', 'clipboardData', 'frames', 'frameElement', 'external',
- 'mozAnimationStartTime', 'webkitStorageInfo', 'webkitIndexedDB', 'mozInnerScreenY', 'mozInnerScreenX'];
-
- var globalSnapshot;
-
- function forEachGlobal(callback) {
- if (Object.keys)
- Object.keys(__global).forEach(callback);
- else
- for (var g in __global) {
- if (!hasOwnProperty.call(__global, g))
- continue;
- callback(g);
- }
- }
-
- function forEachGlobalValue(callback) {
- forEachGlobal(function(globalName) {
- if (indexOf.call(ignoredGlobalProps, globalName) != -1)
- return;
- try {
- var value = __global[globalName];
- }
- catch (e) {
- ignoredGlobalProps.push(globalName);
- }
- callback(globalName, value);
- });
- }
-
- loader.set('@@global-helpers', loader.newModule({
- prepareGlobal: function(moduleName, exports, globals, encapsulate) {
- // disable module detection
- var curDefine = __global.define;
-
- __global.define = undefined;
-
- // set globals
- var oldGlobals;
- if (globals) {
- oldGlobals = {};
- for (var g in globals) {
- oldGlobals[g] = __global[g];
- __global[g] = globals[g];
- }
- }
-
- // store a complete copy of the global object in order to detect changes
- if (!exports) {
- globalSnapshot = {};
-
- forEachGlobalValue(function(name, value) {
- globalSnapshot[name] = value;
- });
- }
-
- // return function to retrieve global
- return function() {
- var globalValue = exports ? getGlobalValue(exports) : {};
-
- var singleGlobal;
- var multipleExports = !!exports;
-
- if (!exports || encapsulate)
- forEachGlobalValue(function(name, value) {
- if (globalSnapshot[name] === value)
- return;
- if (typeof value == 'undefined')
- return;
-
- // allow global encapsulation where globals are removed
- if (encapsulate)
- __global[name] = undefined;
-
- if (!exports) {
- globalValue[name] = value;
-
- if (typeof singleGlobal != 'undefined') {
- if (!multipleExports && singleGlobal !== value)
- multipleExports = true;
- }
- else {
- singleGlobal = value;
- }
- }
- });
-
- globalValue = multipleExports ? globalValue : singleGlobal;
-
- // revert globals
- if (oldGlobals) {
- for (var g in oldGlobals)
- __global[g] = oldGlobals[g];
- }
- __global.define = curDefine;
-
- return globalValue;
- };
- }
- }));
- };
-});
-/*
- SystemJS CommonJS Format
-*/
-(function() {
- // CJS Module Format
- // require('...') || exports[''] = ... || exports.asd = ... || module.exports = ...
- var cjsExportsRegEx = /(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.])(exports\s*(\[['"]|\.)|module(\.exports|\['exports'\]|\["exports"\])\s*(\[['"]|[=,\.]))/;
- // RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339
- var cjsRequireRegEx = /(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF."'])require\s*\(\s*("[^"\\]*(?:\\.[^"\\]*)*"|'[^'\\]*(?:\\.[^'\\]*)*')\s*\)/g;
- var commentRegEx = /(^|[^\\])(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg;
-
- var stringRegEx = /("[^"\\\n\r]*(\\.[^"\\\n\r]*)*"|'[^'\\\n\r]*(\\.[^'\\\n\r]*)*')/g;
-
- // used to support leading #!/usr/bin/env in scripts as supported in Node
- var hashBangRegEx = /^\#\!.*/;
-
- function getCJSDeps(source) {
- cjsRequireRegEx.lastIndex = commentRegEx.lastIndex = stringRegEx.lastIndex = 0;
-
- var deps = [];
-
- var match;
-
- // track string and comment locations for unminified source
- var stringLocations = [], commentLocations = [];
-
- function inLocation(locations, match) {
- for (var i = 0; i < locations.length; i++)
- if (locations[i][0] < match.index && locations[i][1] > match.index)
- return true;
- return false;
- }
-
- if (source.length / source.split('\n').length < 200) {
- while (match = stringRegEx.exec(source))
- stringLocations.push([match.index, match.index + match[0].length]);
-
- // TODO: track template literals here before comments
-
- while (match = commentRegEx.exec(source)) {
- // only track comments not starting in strings
- if (!inLocation(stringLocations, match))
- commentLocations.push([match.index + match[1].length, match.index + match[0].length - 1]);
- }
- }
-
- while (match = cjsRequireRegEx.exec(source)) {
- // ensure we're not within a string or comment location
- if (!inLocation(stringLocations, match) && !inLocation(commentLocations, match)) {
- var dep = match[1].substr(1, match[1].length - 2);
- // skip cases like require('" + file + "')
- if (dep.match(/"|'/))
- continue;
- // trailing slash requires are removed as they don't map mains in SystemJS
- if (dep[dep.length - 1] == '/')
- dep = dep.substr(0, dep.length - 1);
- deps.push(dep);
- }
- }
-
- return deps;
- }
-
- hook('instantiate', function(instantiate) {
- return function(load) {
- var loader = this;
- if (!load.metadata.format) {
- cjsExportsRegEx.lastIndex = 0;
- cjsRequireRegEx.lastIndex = 0;
- if (cjsRequireRegEx.exec(load.source) || cjsExportsRegEx.exec(load.source))
- load.metadata.format = 'cjs';
- }
-
- if (load.metadata.format == 'cjs') {
- var metaDeps = load.metadata.deps;
- var deps = load.metadata.cjsRequireDetection === false ? [] : getCJSDeps(load.source);
-
- for (var g in load.metadata.globals)
- if (load.metadata.globals[g])
- deps.push(load.metadata.globals[g]);
-
- var entry = createEntry();
-
- load.metadata.entry = entry;
-
- entry.deps = deps;
- entry.executingRequire = true;
- entry.execute = function(_require, exports, module) {
- function require(name) {
- if (name[name.length - 1] == '/')
- name = name.substr(0, name.length - 1);
- return _require.apply(this, arguments);
- }
- require.resolve = function(name) {
- return loader.get('@@cjs-helpers').requireResolve(name, module.id);
- };
- // support module.paths ish
- module.paths = [];
- module.require = _require;
-
- // ensure meta deps execute first
- if (!load.metadata.cjsDeferDepsExecute)
- for (var i = 0; i < metaDeps.length; i++)
- require(metaDeps[i]);
-
- var pathVars = loader.get('@@cjs-helpers').getPathVars(module.id);
- var __cjsWrapper = {
- exports: exports,
- args: [require, exports, module, pathVars.filename, pathVars.dirname, __global, __global]
- };
-
- var cjsWrapper = "(function(require, exports, module, __filename, __dirname, global, GLOBAL";
-
- // add metadata.globals to the wrapper arguments
- if (load.metadata.globals)
- for (var g in load.metadata.globals) {
- __cjsWrapper.args.push(require(load.metadata.globals[g]));
- cjsWrapper += ", " + g;
- }
-
- // disable AMD detection
- var define = __global.define;
- __global.define = undefined;
- __global.__cjsWrapper = __cjsWrapper;
-
- load.source = cjsWrapper + ") {" + load.source.replace(hashBangRegEx, '') + "\n}).apply(__cjsWrapper.exports, __cjsWrapper.args);";
-
- __exec.call(loader, load);
-
- __global.__cjsWrapper = undefined;
- __global.define = define;
- };
- }
-
- return instantiate.call(loader, load);
- };
- });
-})();
-hookConstructor(function(constructor) {
- return function() {
- var loader = this;
- constructor.call(loader);
-
- if (typeof window != 'undefined' && typeof document != 'undefined' && window.location)
- var windowOrigin = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '');
-
- function stripOrigin(path) {
- if (path.substr(0, 8) == 'file:///')
- return path.substr(7 + !!isWindows);
-
- if (windowOrigin && path.substr(0, windowOrigin.length) == windowOrigin)
- return path.substr(windowOrigin.length);
-
- return path;
- }
-
- loader.set('@@cjs-helpers', loader.newModule({
- requireResolve: function(request, parentId) {
- return stripOrigin(loader.normalizeSync(request, parentId));
- },
- getPathVars: function(moduleId) {
- // remove any plugin syntax
- var pluginIndex = moduleId.lastIndexOf('!');
- var filename;
- if (pluginIndex != -1)
- filename = moduleId.substr(0, pluginIndex);
- else
- filename = moduleId;
-
- var dirname = filename.split('/');
- dirname.pop();
- dirname = dirname.join('/');
-
- return {
- filename: stripOrigin(filename),
- dirname: stripOrigin(dirname)
- };
- }
- }))
- };
-});/*
- * AMD Helper function module
- * Separated into its own file as this is the part needed for full AMD support in SFX builds
- * NB since implementations have now diverged this can be merged back with amd.js
- */
-
-hook('fetch', function(fetch) {
- return function(load) {
- // script load implies define global leak
- if (load.metadata.scriptLoad && isBrowser)
- __global.define = this.amdDefine;
- return fetch.call(this, load);
- };
-});
-
-hookConstructor(function(constructor) {
- return function() {
- var loader = this;
- constructor.call(this);
-
- var commentRegEx = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg;
- var cjsRequirePre = "(?:^|[^$_a-zA-Z\\xA0-\\uFFFF.])";
- var cjsRequirePost = "\\s*\\(\\s*(\"([^\"]+)\"|'([^']+)')\\s*\\)";
- var fnBracketRegEx = /\(([^\)]*)\)/;
- var wsRegEx = /^\s+|\s+$/g;
-
- var requireRegExs = {};
-
- function getCJSDeps(source, requireIndex) {
-
- // remove comments
- source = source.replace(commentRegEx, '');
-
- // determine the require alias
- var params = source.match(fnBracketRegEx);
- var requireAlias = (params[1].split(',')[requireIndex] || 'require').replace(wsRegEx, '');
-
- // find or generate the regex for this requireAlias
- var requireRegEx = requireRegExs[requireAlias] || (requireRegExs[requireAlias] = new RegExp(cjsRequirePre + requireAlias + cjsRequirePost, 'g'));
-
- requireRegEx.lastIndex = 0;
-
- var deps = [];
-
- var match;
- while (match = requireRegEx.exec(source))
- deps.push(match[2] || match[3]);
-
- return deps;
- }
-
- /*
- AMD-compatible require
- To copy RequireJS, set window.require = window.requirejs = loader.amdRequire
- */
- function require(names, callback, errback, referer) {
- // in amd, first arg can be a config object... we just ignore
- if (typeof names == 'object' && !(names instanceof Array))
- return require.apply(null, Array.prototype.splice.call(arguments, 1, arguments.length - 1));
-
- // amd require
- if (typeof names == 'string' && typeof callback == 'function')
- names = [names];
- if (names instanceof Array) {
- var dynamicRequires = [];
- for (var i = 0; i < names.length; i++)
- dynamicRequires.push(loader['import'](names[i], referer));
- Promise.all(dynamicRequires).then(function(modules) {
- if (callback)
- callback.apply(null, modules);
- }, errback);
- }
-
- // commonjs require
- else if (typeof names == 'string') {
- var defaultJSExtension = loader.defaultJSExtensions && names.substr(names.length - 3, 3) != '.js';
- var normalized = loader.decanonicalize(names, referer);
- if (defaultJSExtension && normalized.substr(normalized.length - 3, 3) == '.js')
- normalized = normalized.substr(0, normalized.length - 3);
- var module = loader.get(normalized);
- if (!module)
- throw new Error('Module not already loaded loading "' + names + '" as ' + normalized + (referer ? ' from "' + referer + '".' : '.'));
- return module.__useDefault ? module['default'] : module;
- }
-
- else
- throw new TypeError('Invalid require');
- }
-
- function define(name, deps, factory) {
- if (typeof name != 'string') {
- factory = deps;
- deps = name;
- name = null;
- }
- if (!(deps instanceof Array)) {
- factory = deps;
- deps = ['require', 'exports', 'module'].splice(0, factory.length);
- }
-
- if (typeof factory != 'function')
- factory = (function(factory) {
- return function() { return factory; }
- })(factory);
-
- // in IE8, a trailing comma becomes a trailing undefined entry
- if (deps[deps.length - 1] === undefined)
- deps.pop();
-
- // remove system dependencies
- var requireIndex, exportsIndex, moduleIndex;
-
- if ((requireIndex = indexOf.call(deps, 'require')) != -1) {
-
- deps.splice(requireIndex, 1);
-
- // only trace cjs requires for non-named
- // named defines assume the trace has already been done
- if (!name)
- deps = deps.concat(getCJSDeps(factory.toString(), requireIndex));
- }
-
- if ((exportsIndex = indexOf.call(deps, 'exports')) != -1)
- deps.splice(exportsIndex, 1);
-
- if ((moduleIndex = indexOf.call(deps, 'module')) != -1)
- deps.splice(moduleIndex, 1);
-
- function execute(req, exports, module) {
- var depValues = [];
- for (var i = 0; i < deps.length; i++)
- depValues.push(req(deps[i]));
-
- module.uri = module.id;
-
- module.config = function() {};
-
- // add back in system dependencies
- if (moduleIndex != -1)
- depValues.splice(moduleIndex, 0, module);
-
- if (exportsIndex != -1)
- depValues.splice(exportsIndex, 0, exports);
-
- if (requireIndex != -1) {
- function contextualRequire(names, callback, errback) {
- if (typeof names == 'string' && typeof callback != 'function')
- return req(names);
- return require.call(loader, names, callback, errback, module.id);
- }
- contextualRequire.toUrl = function(name) {
- // normalize without defaultJSExtensions
- var defaultJSExtension = loader.defaultJSExtensions && name.substr(name.length - 3, 3) != '.js';
- var url = loader.decanonicalize(name, module.id);
- if (defaultJSExtension && url.substr(url.length - 3, 3) == '.js')
- url = url.substr(0, url.length - 3);
- return url;
- };
- depValues.splice(requireIndex, 0, contextualRequire);
- }
-
- // set global require to AMD require
- var curRequire = __global.require;
- __global.require = require;
-
- var output = factory.apply(exportsIndex == -1 ? __global : exports, depValues);
-
- __global.require = curRequire;
-
- if (typeof output == 'undefined' && module)
- output = module.exports;
-
- if (typeof output != 'undefined')
- return output;
- }
-
- var entry = createEntry();
- entry.name = name && (loader.decanonicalize || loader.normalize).call(loader, name);
- entry.deps = deps;
- entry.execute = execute;
-
- loader.pushRegister_({
- amd: true,
- entry: entry
- });
- }
- define.amd = {};
-
- // reduction function to attach defines to a load record
- hook('reduceRegister_', function(reduceRegister) {
- return function(load, register) {
- // only handle AMD registers here
- if (!register || !register.amd)
- return reduceRegister.call(this, load, register);
-
- var curMeta = load && load.metadata;
- var entry = register.entry;
-
- if (curMeta) {
- if (!curMeta.format || curMeta.format == 'detect')
- curMeta.format = 'amd';
- else if (!entry.name && curMeta.format != 'amd')
- throw new Error('AMD define called while executing ' + curMeta.format + ' module ' + load.name);
- }
-
- // anonymous define
- if (!entry.name) {
- if (!curMeta)
- throw new TypeError('Unexpected anonymous AMD define.');
-
- if (curMeta.entry && !curMeta.entry.name)
- throw new Error('Multiple anonymous defines in module ' + load.name);
-
- curMeta.entry = entry;
- }
- // named define
- else {
- // if we don't have any other defines,
- // then let this be an anonymous define
- // this is just to support single modules of the form:
- // define('jquery')
- // still loading anonymously
- // because it is done widely enough to be useful
- // as soon as there is more than one define, this gets removed though
- if (curMeta) {
- if (!curMeta.entry && !curMeta.bundle)
- curMeta.entry = entry;
- else if (curMeta.entry && curMeta.entry.name && curMeta.entry.name != load.name)
- curMeta.entry = undefined;
-
- // note this is now a bundle
- curMeta.bundle = true;
- }
-
- // define the module through the register registry
- if (!(entry.name in this.defined))
- this.defined[entry.name] = entry;
- }
- };
- });
-
- loader.amdDefine = define;
- loader.amdRequire = require;
- };
-});/*
- SystemJS AMD Format
-*/
-(function() {
- // AMD Module Format Detection RegEx
- // define([.., .., ..], ...)
- // define(varName); || define(function(require, exports) {}); || define({})
- var amdRegEx = /(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.])define\s*\(\s*("[^"]+"\s*,\s*|'[^']+'\s*,\s*)?\s*(\[(\s*(("[^"]+"|'[^']+')\s*,|\/\/.*\r?\n|\/\*(.|\s)*?\*\/))*(\s*("[^"]+"|'[^']+')\s*,?)?(\s*(\/\/.*\r?\n|\/\*(.|\s)*?\*\/))*\s*\]|function\s*|{|[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*\))/;
-
- hook('instantiate', function(instantiate) {
- return function(load) {
- var loader = this;
-
- if (load.metadata.format == 'amd' || !load.metadata.format && load.source.match(amdRegEx)) {
- load.metadata.format = 'amd';
-
- if (!loader.builder && loader.execute !== false) {
- var curDefine = __global.define;
- __global.define = this.amdDefine;
-
- try {
- __exec.call(loader, load);
- }
- finally {
- __global.define = curDefine;
- }
-
- if (!load.metadata.entry && !load.metadata.bundle)
- throw new TypeError('AMD module ' + load.name + ' did not define');
- }
- else {
- load.metadata.execute = function() {
- return load.metadata.builderExecute.apply(this, arguments);
- };
- }
- }
-
- return instantiate.call(loader, load);
- };
- });
-
-})();
-/*
- SystemJS Loader Plugin Support
-
- Supports plugin loader syntax with "!", or via metadata.loader
-
- The plugin name is loaded as a module itself, and can override standard loader hooks
- for the plugin resource. See the plugin section of the systemjs readme.
-*/
-
-(function() {
- function getParentName(loader, parentName) {
- // if parent is a plugin, normalize against the parent plugin argument only
- if (parentName) {
- var parentPluginIndex;
- if (loader.pluginFirst) {
- if ((parentPluginIndex = parentName.lastIndexOf('!')) != -1)
- return parentName.substr(parentPluginIndex + 1);
- }
- else {
- if ((parentPluginIndex = parentName.indexOf('!')) != -1)
- return parentName.substr(0, parentPluginIndex);
- }
-
- return parentName;
- }
- }
-
- function parsePlugin(loader, name) {
- var argumentName;
- var pluginName;
-
- var pluginIndex = name.lastIndexOf('!');
-
- if (pluginIndex == -1)
- return;
-
- if (loader.pluginFirst) {
- argumentName = name.substr(pluginIndex + 1);
- pluginName = name.substr(0, pluginIndex);
- }
- else {
- argumentName = name.substr(0, pluginIndex);
- pluginName = name.substr(pluginIndex + 1) || argumentName.substr(argumentName.lastIndexOf('.') + 1);
- }
-
- return {
- argument: argumentName,
- plugin: pluginName
- };
- }
-
- // put name back together after parts have been normalized
- function combinePluginParts(loader, argumentName, pluginName, defaultExtension) {
- if (defaultExtension && argumentName.substr(argumentName.length - 3, 3) == '.js')
- argumentName = argumentName.substr(0, argumentName.length - 3);
-
- if (loader.pluginFirst) {
- return pluginName + '!' + argumentName;
- }
- else {
- return argumentName + '!' + pluginName;
- }
- }
-
- // note if normalize will add a default js extension
- // if so, remove for backwards compat
- // this is strange and sucks, but will be deprecated
- function checkDefaultExtension(loader, arg) {
- return loader.defaultJSExtensions && arg.substr(arg.length - 3, 3) != '.js';
- }
-
- function createNormalizeSync(normalizeSync) {
- return function(name, parentName, isPlugin) {
- var loader = this;
-
- var parsed = parsePlugin(loader, name);
- parentName = getParentName(this, parentName);
-
- if (!parsed)
- return normalizeSync.call(this, name, parentName, isPlugin);
-
- // if this is a plugin, normalize the plugin name and the argument
- var argumentName = loader.normalizeSync(parsed.argument, parentName, true);
- var pluginName = loader.normalizeSync(parsed.plugin, parentName, true);
- return combinePluginParts(loader, argumentName, pluginName, checkDefaultExtension(loader, parsed.argument));
- };
- }
-
- hook('decanonicalize', createNormalizeSync);
- hook('normalizeSync', createNormalizeSync);
-
- hook('normalize', function(normalize) {
- return function(name, parentName, isPlugin) {
- var loader = this;
-
- parentName = getParentName(this, parentName);
-
- var parsed = parsePlugin(loader, name);
-
- if (!parsed)
- return normalize.call(loader, name, parentName, isPlugin);
-
- return Promise.all([
- loader.normalize(parsed.argument, parentName, true),
- loader.normalize(parsed.plugin, parentName, false)
- ])
- .then(function(normalized) {
- return combinePluginParts(loader, normalized[0], normalized[1], checkDefaultExtension(loader, parsed.argument));
- });
- }
- });
-
- hook('locate', function(locate) {
- return function(load) {
- var loader = this;
-
- var name = load.name;
-
- // plugin syntax
- var pluginSyntaxIndex;
- if (loader.pluginFirst) {
- if ((pluginSyntaxIndex = name.indexOf('!')) != -1) {
- load.metadata.loader = name.substr(0, pluginSyntaxIndex);
- load.name = name.substr(pluginSyntaxIndex + 1);
- }
- }
- else {
- if ((pluginSyntaxIndex = name.lastIndexOf('!')) != -1) {
- load.metadata.loader = name.substr(pluginSyntaxIndex + 1);
- load.name = name.substr(0, pluginSyntaxIndex);
- }
- }
-
- return locate.call(loader, load)
- .then(function(address) {
- if (pluginSyntaxIndex != -1 || !load.metadata.loader)
- return address;
-
- // normalize plugin relative to parent in locate here when
- // using plugin via loader metadata
- return (loader.pluginLoader || loader).normalize(load.metadata.loader, load.name)
- .then(function(loaderNormalized) {
- load.metadata.loader = loaderNormalized;
- return address;
- });
- })
- .then(function(address) {
- var plugin = load.metadata.loader;
-
- if (!plugin)
- return address;
-
- // don't allow a plugin to load itself
- if (load.name == plugin)
- throw new Error('Plugin ' + plugin + ' cannot load itself, make sure it is excluded from any wildcard meta configuration via a custom loader: false rule.');
-
- // only fetch the plugin itself if this name isn't defined
- if (loader.defined && loader.defined[name])
- return address;
-
- var pluginLoader = loader.pluginLoader || loader;
-
- // load the plugin module and run standard locate
- return pluginLoader['import'](plugin)
- .then(function(loaderModule) {
- // store the plugin module itself on the metadata
- load.metadata.loaderModule = loaderModule;
-
- load.address = address;
- if (loaderModule.locate)
- return loaderModule.locate.call(loader, load);
-
- return address;
- });
- });
- };
- });
-
- hook('fetch', function(fetch) {
- return function(load) {
- var loader = this;
- if (load.metadata.loaderModule && load.metadata.format != 'defined') {
- if (typeof load.metadata.loaderModule === 'function' || load.metadata.loaderModule instanceof Module && typeof load.metadata.loaderModule.default === 'function')
- return '';
- load.metadata.scriptLoad = false;
- if (load.metadata.loaderModule.fetch)
- return load.metadata.loaderModule.fetch.call(loader, load, function(load) {
- return fetch.call(loader, load);
- });
- }
- return fetch.call(loader, load);
- };
- });
-
- hook('translate', function(translate) {
- return function(load) {
- var loader = this;
- var args = arguments;
- if (load.metadata.loaderModule && load.metadata.loaderModule.translate && load.metadata.format != 'defined') {
- return Promise.resolve(load.metadata.loaderModule.translate.apply(loader, args)).then(function(result) {
- var sourceMap = load.metadata.sourceMap;
-
- // sanitize sourceMap if an object not a JSON string
- if (sourceMap) {
- if (typeof sourceMap != 'object')
- throw new Error('load.metadata.sourceMap must be set to an object.');
-
- var originalName = load.address.split('!')[0];
-
- // force set the filename of the original file
- if (!sourceMap.file || sourceMap.file == load.address)
- sourceMap.file = originalName + '!transpiled';
-
- // force set the sources list if only one source
- if (!sourceMap.sources || sourceMap.sources.length <= 1 && (!sourceMap.sources[0] || sourceMap.sources[0] == load.address))
- sourceMap.sources = [originalName];
- }
-
- // if running on file:/// URLs, sourcesContent is necessary
- // load.metadata.sourceMap.sourcesContent = [load.source];
-
- if (typeof result == 'string')
- load.source = result;
-
- return translate.apply(loader, args);
- });
- }
- return translate.apply(loader, args);
- };
- });
-
- hook('instantiate', function(instantiate) {
- return function(load) {
- var loader = this;
- var calledInstantiate = false;
-
- if (load.metadata.loaderModule && !loader.builder && load.metadata.format != 'defined') {
- if (load.metadata.loaderModule.instantiate)
- return Promise.resolve(load.metadata.loaderModule.instantiate.call(loader, load, function(load) {
- if (calledInstantiate)
- throw new Error('Instantiate must only be called once.');
- calledInstantiate = true;
- return instantiate.call(loader, load);
- })).then(function(result) {
- if (calledInstantiate)
- return result;
-
- if (result !== undefined)
- createInstantiate(load, result);
- return instantiate.call(loader, load);
- });
- else if (typeof load.metadata.loaderModule === 'function' || load.metadata.loaderModule instanceof Module && typeof load.metadata.loaderModule.default === 'function')
- return Promise.resolve((load.metadata.loaderModule.default || load.metadata.loaderModule).call(loader, load.address, load.name))
- .then(function (result) {
- if (result !== undefined)
- createInstantiate(load, result);
- return instantiate.call(loader, load);
- });
- }
- return instantiate.call(loader, load);
- };
- });
-
-})();
-/*
- * Conditions Extension
- *
- * Allows a condition module to alter the resolution of an import via syntax:
- *
- * import $ from 'jquery/#{browser}';
- *
- * Will first load the module 'browser' via `SystemJS.import('browser')` and
- * take the default export of that module.
- * If the default export is not a string, an error is thrown.
- *
- * We then substitute the string into the require to get the conditional resolution
- * enabling environment-specific variations like:
- *
- * import $ from 'jquery/ie'
- * import $ from 'jquery/firefox'
- * import $ from 'jquery/chrome'
- * import $ from 'jquery/safari'
- *
- * It can be useful for a condition module to define multiple conditions.
- * This can be done via the `|` modifier to specify an export member expression:
- *
- * import 'jquery/#{./browser.js|grade.version}'
- *
- * Where the `grade` export `version` member in the `browser.js` module is substituted.
- *
- *
- * Boolean Conditionals
- *
- * For polyfill modules, that are used as imports but have no module value,
- * a binary conditional allows a module not to be loaded at all if not needed:
- *
- * import 'es5-shim#?./conditions.js|needs-es5shim'
- *
- * These conditions can also be negated via:
- *
- * import 'es5-shim#?./conditions.js|~es6'
- *
- */
-
- var sysConditions = ['browser', 'node', 'dev', 'build', 'production', 'default'];
-
- function parseCondition(condition) {
- var conditionExport, conditionModule, negation;
-
- var negation = condition[0] == '~';
- var conditionExportIndex = condition.lastIndexOf('|');
- if (conditionExportIndex != -1) {
- conditionExport = condition.substr(conditionExportIndex + 1);
- conditionModule = condition.substr(negation, conditionExportIndex - negation);
-
- if (negation)
- warn.call(this, 'Condition negation form "' + condition + '" is deprecated for "' + conditionModule + '|~' + conditionExport + '"');
-
- if (conditionExport[0] == '~') {
- negation = true;
- conditionExport = conditionExport.substr(1);
- }
- }
- else {
- conditionExport = 'default';
- conditionModule = condition.substr(negation);
- if (sysConditions.indexOf(conditionModule) != -1) {
- conditionExport = conditionModule;
- conditionModule = null;
- }
- }
-
- return {
- module: conditionModule || '@system-env',
- prop: conditionExport,
- negate: negation
- };
- }
-
- function serializeCondition(conditionObj) {
- return conditionObj.module + '|' + (conditionObj.negate ? '~' : '') + conditionObj.prop;
- }
-
- function resolveCondition(conditionObj, parentName, bool) {
- var self = this;
- return this.normalize(conditionObj.module, parentName)
- .then(function(normalizedCondition) {
- return self.load(normalizedCondition)
- .then(function(q) {
- var m = readMemberExpression(conditionObj.prop, self.get(normalizedCondition));
-
- if (bool && typeof m != 'boolean')
- throw new TypeError('Condition ' + serializeCondition(conditionObj) + ' did not resolve to a boolean.');
-
- return conditionObj.negate ? !m : m;
- });
- });
- }
-
- var interpolationRegEx = /#\{[^\}]+\}/;
- function interpolateConditional(name, parentName) {
- // first we normalize the conditional
- var conditionalMatch = name.match(interpolationRegEx);
-
- if (!conditionalMatch)
- return Promise.resolve(name);
-
- var conditionObj = parseCondition.call(this, conditionalMatch[0].substr(2, conditionalMatch[0].length - 3));
-
- // in builds, return normalized conditional
- if (this.builder)
- return this['normalize'](conditionObj.module, parentName)
- .then(function(conditionModule) {
- conditionObj.module = conditionModule;
- return name.replace(interpolationRegEx, '#{' + serializeCondition(conditionObj) + '}');
- });
-
- return resolveCondition.call(this, conditionObj, parentName, false)
- .then(function(conditionValue) {
- if (typeof conditionValue !== 'string')
- throw new TypeError('The condition value for ' + name + ' doesn\'t resolve to a string.');
-
- if (conditionValue.indexOf('/') != -1)
- throw new TypeError('Unabled to interpolate conditional ' + name + (parentName ? ' in ' + parentName : '') + '\n\tThe condition value ' + conditionValue + ' cannot contain a "/" separator.');
-
- return name.replace(interpolationRegEx, conditionValue);
- });
- }
-
- function booleanConditional(name, parentName) {
- // first we normalize the conditional
- var booleanIndex = name.lastIndexOf('#?');
-
- if (booleanIndex == -1)
- return Promise.resolve(name);
-
- var conditionObj = parseCondition.call(this, name.substr(booleanIndex + 2));
-
- // in builds, return normalized conditional
- if (this.builder)
- return this['normalize'](conditionObj.module, parentName)
- .then(function(conditionModule) {
- conditionObj.module = conditionModule;
- return name.substr(0, booleanIndex) + '#?' + serializeCondition(conditionObj);
- });
-
- return resolveCondition.call(this, conditionObj, parentName, true)
- .then(function(conditionValue) {
- return conditionValue ? name.substr(0, booleanIndex) : '@empty';
- });
- }
-
- // normalizeSync does not parse conditionals at all although it could
- hook('normalize', function(normalize) {
- return function(name, parentName, skipExt) {
- var loader = this;
- return booleanConditional.call(loader, name, parentName)
- .then(function(name) {
- return normalize.call(loader, name, parentName, skipExt);
- })
- .then(function(normalized) {
- return interpolateConditional.call(loader, normalized, parentName);
- });
- };
- });
-/*
- * Alias Extension
- *
- * Allows a module to be a plain copy of another module by module name
- *
- * SystemJS.meta['mybootstrapalias'] = { alias: 'bootstrap' };
- *
- */
-(function() {
- // aliases
- hook('fetch', function(fetch) {
- return function(load) {
- var alias = load.metadata.alias;
- var aliasDeps = load.metadata.deps || [];
- if (alias) {
- load.metadata.format = 'defined';
- var entry = createEntry();
- this.defined[load.name] = entry;
- entry.declarative = true;
- entry.deps = aliasDeps.concat([alias]);
- entry.declare = function(_export) {
- return {
- setters: [function(module) {
- for (var p in module)
- _export(p, module[p]);
- if (module.__useDefault)
- entry.module.exports.__useDefault = true;
- }],
- execute: function() {}
- };
- };
- return '';
- }
-
- return fetch.call(this, load);
- };
- });
-})();/*
- * Meta Extension
- *
- * Sets default metadata on a load record (load.metadata) from
- * loader.metadata via SystemJS.meta function.
- *
- *
- * Also provides an inline meta syntax for module meta in source.
- *
- * Eg:
- *
- * loader.meta({
- * 'my/module': { deps: ['jquery'] }
- * 'my/*': { format: 'amd' }
- * });
- *
- * Which in turn populates loader.metadata.
- *
- * load.metadata.deps and load.metadata.format will then be set
- * for 'my/module'
- *
- * The same meta could be set with a my/module.js file containing:
- *
- * my/module.js
- * "format amd";
- * "deps[] jquery";
- * "globals.some value"
- * console.log('this is my/module');
- *
- * Configuration meta always takes preference to inline meta.
- *
- * Multiple matches in wildcards are supported and ammend the meta.
- *
- *
- * The benefits of the function form is that paths are URL-normalized
- * supporting say
- *
- * loader.meta({ './app': { format: 'cjs' } });
- *
- * Instead of needing to set against the absolute URL (https://site.com/app.js)
- *
- */
-
-(function() {
-
- hookConstructor(function(constructor) {
- return function() {
- this.meta = {};
- constructor.call(this);
- };
- });
-
- hook('locate', function(locate) {
- return function(load) {
- var meta = this.meta;
- var name = load.name;
-
- // NB for perf, maybe introduce a fast-path wildcard lookup cache here
- // which is checked first
-
- // apply wildcard metas
- var bestDepth = 0;
- var wildcardIndex;
- for (var module in meta) {
- wildcardIndex = module.indexOf('*');
- if (wildcardIndex === -1)
- continue;
- if (module.substr(0, wildcardIndex) === name.substr(0, wildcardIndex)
- && module.substr(wildcardIndex + 1) === name.substr(name.length - module.length + wildcardIndex + 1)) {
- var depth = module.split('/').length;
- if (depth > bestDepth)
- bestDepth = depth;
- extendMeta(load.metadata, meta[module], bestDepth != depth);
- }
- }
-
- // apply exact meta
- if (meta[name])
- extendMeta(load.metadata, meta[name]);
-
- return locate.call(this, load);
- };
- });
-
- // detect any meta header syntax
- // only set if not already set
- var metaRegEx = /^(\s*\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)+/;
- var metaPartRegEx = /\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\/\/[^\n]*|"[^"]+"\s*;?|'[^']+'\s*;?/g;
-
- function setMetaProperty(target, p, value) {
- var pParts = p.split('.');
- var curPart;
- while (pParts.length > 1) {
- curPart = pParts.shift();
- target = target[curPart] = target[curPart] || {};
- }
- curPart = pParts.shift();
- if (!(curPart in target))
- target[curPart] = value;
- }
-
- hook('translate', function(translate) {
- return function(load) {
- // shortpath for bundled
- if (load.metadata.format == 'defined') {
- load.metadata.deps = load.metadata.deps || [];
- return Promise.resolve(load.source);
- }
-
- // NB meta will be post-translate pending transpiler conversion to plugins
- var meta = load.source.match(metaRegEx);
- if (meta) {
- var metaParts = meta[0].match(metaPartRegEx);
-
- for (var i = 0; i < metaParts.length; i++) {
- var curPart = metaParts[i];
- var len = curPart.length;
-
- var firstChar = curPart.substr(0, 1);
- if (curPart.substr(len - 1, 1) == ';')
- len--;
-
- if (firstChar != '"' && firstChar != "'")
- continue;
-
- var metaString = curPart.substr(1, curPart.length - 3);
- var metaName = metaString.substr(0, metaString.indexOf(' '));
-
- if (metaName) {
- var metaValue = metaString.substr(metaName.length + 1, metaString.length - metaName.length - 1);
-
- if (metaName.substr(metaName.length - 2, 2) == '[]') {
- metaName = metaName.substr(0, metaName.length - 2);
- load.metadata[metaName] = load.metadata[metaName] || [];
- load.metadata[metaName].push(metaValue);
- }
- else if (load.metadata[metaName] instanceof Array) {
- // temporary backwards compat for previous "deps" syntax
- warn.call(this, 'Module ' + load.name + ' contains deprecated "deps ' + metaValue + '" meta syntax.\nThis should be updated to "deps[] ' + metaValue + '" for pushing to array meta.');
- load.metadata[metaName].push(metaValue);
- }
- else {
- setMetaProperty(load.metadata, metaName, metaValue);
- }
- }
- else {
- load.metadata[metaString] = true;
- }
- }
- }
-
- return translate.apply(this, arguments);
- };
- });
-})();
-/*
- System bundles
-
- Allows a bundle module to be specified which will be dynamically
- loaded before trying to load a given module.
-
- For example:
- SystemJS.bundles['mybundle'] = ['jquery', 'bootstrap/js/bootstrap']
-
- Will result in a load to "mybundle" whenever a load to "jquery"
- or "bootstrap/js/bootstrap" is made.
-
- In this way, the bundle becomes the request that provides the module
-*/
-
-(function() {
- // bundles support (just like RequireJS)
- // bundle name is module name of bundle itself
- // bundle is array of modules defined by the bundle
- // when a module in the bundle is requested, the bundle is loaded instead
- // of the form SystemJS.bundles['mybundle'] = ['jquery', 'bootstrap/js/bootstrap']
- hookConstructor(function(constructor) {
- return function() {
- constructor.call(this);
- this.bundles = {};
- this._loader.loadedBundles = {};
- };
- });
-
- // assign bundle metadata for bundle loads
- hook('locate', function(locate) {
- return function(load) {
- var loader = this;
- var matched = false;
-
- if (!(load.name in loader.defined))
- for (var b in loader.bundles) {
- for (var i = 0; i < loader.bundles[b].length; i++) {
- var curModule = loader.bundles[b][i];
-
- if (curModule == load.name) {
- matched = true;
- break;
- }
-
- // wildcard in bundles does not include / boundaries
- if (curModule.indexOf('*') != -1) {
- var parts = curModule.split('*');
- if (parts.length != 2) {
- loader.bundles[b].splice(i--, 1);
- continue;
- }
-
- if (load.name.substring(0, parts[0].length) == parts[0] &&
- load.name.substr(load.name.length - parts[1].length, parts[1].length) == parts[1] &&
- load.name.substr(parts[0].length, load.name.length - parts[1].length - parts[0].length).indexOf('/') == -1) {
- matched = true;
- break;
- }
- }
- }
-
- if (matched)
- return loader['import'](b)
- .then(function() {
- return locate.call(loader, load);
- });
- }
-
- return locate.call(loader, load);
- };
- });
-})();
-/*
- * Dependency Tree Cache
- *
- * Allows a build to pre-populate a dependency trace tree on the loader of
- * the expected dependency tree, to be loaded upfront when requesting the
- * module, avoinding the n round trips latency of module loading, where
- * n is the dependency tree depth.
- *
- * eg:
- * SystemJS.depCache = {
- * 'app': ['normalized', 'deps'],
- * 'normalized': ['another'],
- * 'deps': ['tree']
- * };
- *
- * SystemJS.import('app')
- * // simultaneously starts loading all of:
- * // 'normalized', 'deps', 'another', 'tree'
- * // before "app" source is even loaded
- *
- */
-
-(function() {
- hookConstructor(function(constructor) {
- return function() {
- constructor.call(this);
- this.depCache = {};
- }
- });
-
- hook('locate', function(locate) {
- return function(load) {
- var loader = this;
- // load direct deps, in turn will pick up their trace trees
- var deps = loader.depCache[load.name];
- if (deps)
- for (var i = 0; i < deps.length; i++)
- loader['import'](deps[i], load.name);
-
- return locate.call(loader, load);
- };
- });
-})();
-
-System = new SystemJSLoader();
-
-__global.SystemJS = System;
-System.version = '0.19.47 Standard';
- if (typeof module == 'object' && module.exports && typeof exports == 'object')
- module.exports = System;
-
- __global.System = System;
-
-})(typeof self != 'undefined' ? self : global);}
-
-// auto-load Promise polyfill if needed in the browser
-var doPolyfill = typeof Promise === 'undefined';
-
-// document.write
-if (typeof document !== 'undefined') {
- var scripts = document.getElementsByTagName('script');
- $__curScript = scripts[scripts.length - 1];
- if (document.currentScript && ($__curScript.defer || $__curScript.async))
- $__curScript = document.currentScript;
- if (!$__curScript.src)
- $__curScript = undefined;
- if (doPolyfill) {
- var curPath = $__curScript.src;
- var basePath = curPath.substr(0, curPath.lastIndexOf('/') + 1);
- window.systemJSBootstrap = bootstrap;
- document.write(
- '<' + 'script type="text/javascript" src="' + basePath + 'system-polyfills.js">' + '<' + '/script>'
- );
- }
- else {
- bootstrap();
- }
-}
-// importScripts
-else if (typeof importScripts !== 'undefined') {
- var basePath = '';
- try {
- throw new Error('_');
- } catch (e) {
- e.stack.replace(/(?:at|@).*(http.+):[\d]+:[\d]+/, function(m, url) {
- $__curScript = { src: url };
- basePath = url.replace(/\/[^\/]*$/, '/');
- });
- }
- if (doPolyfill)
- importScripts(basePath + 'system-polyfills.js');
- bootstrap();
-}
-else {
- $__curScript = typeof __filename != 'undefined' ? { src: __filename } : null;
- bootstrap();
-}
-
-
-})();
diff --git a/node_modules/systemjs/index.js b/node_modules/systemjs/index.js
deleted file mode 100644
index f8ebe41f2..000000000
--- a/node_modules/systemjs/index.js
+++ /dev/null
@@ -1,47 +0,0 @@
-if (typeof Promise === 'undefined')
- require('when/es6-shim/Promise');
-
-var version = require('./package.json').version;
-
-var isWindows = typeof process.platform != 'undefined' && process.platform.match(/^win/);
-
-// set transpiler paths in Node
-var nodeResolver = typeof process != 'undefined' && typeof require != 'undefined' && require.resolve;
-function configNodePath(loader, module, nodeModule) {
- if (loader.paths[module])
- return;
-
- try {
- var match = nodeResolver(nodeModule + (module[module.length - 1] === '/' ? 'package.json' : '')).replace(/\\/g, '/');
- }
- catch(e) {}
-
- if (match)
- loader.paths[module] = 'file://' + (isWindows ? '/' : '') + match.substr(0, match.length - (module[module.length - 1] === '/' ? 12 : 0));
-}
-
-var SystemJSLoader = require('./dist/system.src').constructor;
-
-// standard class extend SystemJSLoader to SystemJSNodeLoader
-function SystemJSNodeLoader() {
- SystemJSLoader.call(this);
-
- if (nodeResolver) {
- configNodePath(this, 'traceur', 'traceur/bin/traceur.js');
- configNodePath(this, 'traceur-runtime', 'traceur/bin/traceur-runtime.js');
- configNodePath(this, 'babel', 'babel-core/browser.js');
- configNodePath(this, 'babel/external-helpers', 'babel-core/external-helpers.js');
- configNodePath(this, 'babel-runtime/', 'babel-runtime/');
- }
-}
-SystemJSNodeLoader.prototype = Object.create(SystemJSLoader.prototype);
-SystemJSNodeLoader.prototype.constructor = SystemJSNodeLoader;
-
-var System = new SystemJSNodeLoader();
-
-System.version = version + ' Node';
-
-if (typeof global != 'undefined')
- global.System = global.SystemJS = System;
-
-module.exports = System;
diff --git a/node_modules/systemjs/package.json b/node_modules/systemjs/package.json
deleted file mode 100644
index f4ceb08da..000000000
--- a/node_modules/systemjs/package.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "systemjs",
- "version": "0.19.47",
- "description": "Universal dynamic module loader",
- "repository": {
- "type": "git",
- "url": "git://github.com/systemjs/systemjs"
- },
- "author": "Guy Bedford",
- "license": "MIT",
- "files": [
- "index.js",
- "dist"
- ],
- "dependencies": {
- "when": "^3.7.5"
- },
- "devDependencies": {
- "babel-core": "^5.8.22",
- "qunit": "^0.6.2",
- "traceur": "0.0.105",
- "typescript": "^1.6.2",
- "uglify-js": "~2.4.23"
- },
- "scripts": {
- "test:browser": "make test",
- "perf": "node bench/normalize-perf.js",
- "build": "make",
- "test": "npm run test:babel && npm run test:traceur && npm run test:typescript",
- "test:babel": "qunit -c s:./index.js -t ./test/test-babel.js",
- "test:traceur": "qunit -c s:./index.js -t ./test/test-traceur.js",
- "test:typescript": "qunit -c s:./index.js -t ./test/test-typescript.js"
- }
-}
diff --git a/node_modules/tmp/.eslintrc.js b/node_modules/tmp/.eslintrc.js
deleted file mode 100644
index 8222a832b..000000000
--- a/node_modules/tmp/.eslintrc.js
+++ /dev/null
@@ -1,24 +0,0 @@
-module.exports = {
- "env": {
- "node": true
- },
- "extends": "eslint:recommended",
- "rules": {
- "indent": [
- "error",
- 2
- ],
- "linebreak-style": [
- "error",
- "unix"
- ],
- "quotes": [
- "error",
- "single"
- ],
- "semi": [
- "error",
- "always"
- ]
- }
-};
diff --git a/node_modules/tmp/.npmignore b/node_modules/tmp/.npmignore
deleted file mode 100644
index 78f2710d0..000000000
--- a/node_modules/tmp/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules/
-.idea/
diff --git a/node_modules/tmp/.travis.yml b/node_modules/tmp/.travis.yml
deleted file mode 100644
index 9c0aa010a..000000000
--- a/node_modules/tmp/.travis.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-language: node_js
-node_js:
- - "0.6"
- - "0.8"
- - "0.10"
- - "0.12"
- - "4.0"
- - "4.1"
- - "4.2"
- - "5.0"
- - "5.1"
- - "5.2"
- - "5.3"
- - "5.4"
- - "6"
diff --git a/node_modules/tmp/Gruntfile.js b/node_modules/tmp/Gruntfile.js
deleted file mode 100644
index 8df64e70d..000000000
--- a/node_modules/tmp/Gruntfile.js
+++ /dev/null
@@ -1,18 +0,0 @@
-module.exports = function(grunt) {
- grunt.initConfig({
- jshint: {
- all: ['Gruntfile.js', 'lib/*.js', 'test/*.js']
- },
- vows: {
- all: {
- src: ['test/*.js'],
- }
- }
- });
-
- grunt.loadNpmTasks('grunt-contrib-jshint');
- //grunt.loadNpmTasks('grunt-vows-runner');
- grunt.loadNpmTasks('grunt-vows');
-
- grunt.registerTask('default', ['jshint', 'vows']);
-};
diff --git a/node_modules/tmp/LICENSE b/node_modules/tmp/LICENSE
deleted file mode 100644
index 72418bd9d..000000000
--- a/node_modules/tmp/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 KARASZI István
-
-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.
diff --git a/node_modules/tmp/README.md b/node_modules/tmp/README.md
deleted file mode 100644
index 804bf3395..000000000
--- a/node_modules/tmp/README.md
+++ /dev/null
@@ -1,268 +0,0 @@
-# Tmp
-
-A simple temporary file and directory creator for [node.js.][1]
-
-[![Build Status](https://travis-ci.org/raszi/node-tmp.svg?branch=master)](https://travis-ci.org/raszi/node-tmp)
-[![Dependencies](https://david-dm.org/raszi/node-tmp.svg)](https://david-dm.org/raszi/node-tmp)
-[![npm version](https://badge.fury.io/js/tmp.svg)](https://badge.fury.io/js/tmp)
-
-## About
-
-This is a [widely used library][2] to create temporary files and directories
-in a [node.js][1] environment.
-
-Tmp offers both an asynchronous and a synchronous API. For all API calls, all
-the parameters are optional.
-
-Tmp uses crypto for determining random file names, or, when using templates,
-a six letter random identifier. And just in case that you do not have that much
-entropy left on your system, Tmp will fall back to pseudo random numbers.
-
-You can set whether you want to remove the temporary file on process exit or
-not, and the destination directory can also be set.
-
-## How to install
-
-```bash
-npm install tmp
-```
-
-## Usage
-
-### Asynchronous file creation
-
-Simple temporary file creation, the file will be closed and unlinked on process exit.
-
-```javascript
-var tmp = require('tmp');
-
-tmp.file(function _tempFileCreated(err, path, fd, cleanupCallback) {
- if (err) throw err;
-
- console.log("File: ", path);
- console.log("Filedescriptor: ", fd);
-
- // If we don't need the file anymore we could manually call the cleanupCallback
- // But that is not necessary if we didn't pass the keep option because the library
- // will clean after itself.
- cleanupCallback();
-});
-```
-
-### Synchronous file creation
-
-A synchronous version of the above.
-
-```javascript
-var tmp = require('tmp');
-
-var tmpobj = tmp.fileSync();
-console.log("File: ", tmpobj.name);
-console.log("Filedescriptor: ", tmpobj.fd);
-
-// If we don't need the file anymore we could manually call the removeCallback
-// But that is not necessary if we didn't pass the keep option because the library
-// will clean after itself.
-tmpobj.removeCallback();
-```
-
-Note that this might throw an exception if either the maximum limit of retries
-for creating a temporary name fails, or, in case that you do not have the permission
-to write to the directory where the temporary file should be created in.
-
-### Asynchronous directory creation
-
-Simple temporary directory creation, it will be removed on process exit.
-
-If the directory still contains items on process exit, then it won't be removed.
-
-```javascript
-var tmp = require('tmp');
-
-tmp.dir(function _tempDirCreated(err, path, cleanupCallback) {
- if (err) throw err;
-
- console.log("Dir: ", path);
-
- // Manual cleanup
- cleanupCallback();
-});
-```
-
-If you want to cleanup the directory even when there are entries in it, then
-you can pass the `unsafeCleanup` option when creating it.
-
-### Synchronous directory creation
-
-A synchronous version of the above.
-
-```javascript
-var tmp = require('tmp');
-
-var tmpobj = tmp.dirSync();
-console.log("Dir: ", tmpobj.name);
-// Manual cleanup
-tmpobj.removeCallback();
-```
-
-Note that this might throw an exception if either the maximum limit of retries
-for creating a temporary name fails, or, in case that you do not have the permission
-to write to the directory where the temporary directory should be created in.
-
-### Asynchronous filename generation
-
-It is possible with this library to generate a unique filename in the specified
-directory.
-
-```javascript
-var tmp = require('tmp');
-
-tmp.tmpName(function _tempNameGenerated(err, path) {
- if (err) throw err;
-
- console.log("Created temporary filename: ", path);
-});
-```
-
-### Synchronous filename generation
-
-A synchronous version of the above.
-
-```javascript
-var tmp = require('tmp');
-
-var name = tmp.tmpNameSync();
-console.log("Created temporary filename: ", name);
-```
-
-## Advanced usage
-
-### Asynchronous file creation
-
-Creates a file with mode `0644`, prefix will be `prefix-` and postfix will be `.txt`.
-
-```javascript
-var tmp = require('tmp');
-
-tmp.file({ mode: 0644, prefix: 'prefix-', postfix: '.txt' }, function _tempFileCreated(err, path, fd) {
- if (err) throw err;
-
- console.log("File: ", path);
- console.log("Filedescriptor: ", fd);
-});
-```
-
-### Synchronous file creation
-
-A synchronous version of the above.
-
-```javascript
-var tmp = require('tmp');
-
-var tmpobj = tmp.fileSync({ mode: 0644, prefix: 'prefix-', postfix: '.txt' });
-console.log("File: ", tmpobj.name);
-console.log("Filedescriptor: ", tmpobj.fd);
-```
-
-### Asynchronous directory creation
-
-Creates a directory with mode `0755`, prefix will be `myTmpDir_`.
-
-```javascript
-var tmp = require('tmp');
-
-tmp.dir({ mode: 0750, prefix: 'myTmpDir_' }, function _tempDirCreated(err, path) {
- if (err) throw err;
-
- console.log("Dir: ", path);
-});
-```
-
-### Synchronous directory creation
-
-Again, a synchronous version of the above.
-
-```javascript
-var tmp = require('tmp');
-
-var tmpobj = tmp.dirSync({ mode: 0750, prefix: 'myTmpDir_' });
-console.log("Dir: ", tmpobj.name);
-```
-
-### mkstemp like, asynchronously
-
-Creates a new temporary directory with mode `0700` and filename like `/tmp/tmp-nk2J1u`.
-
-```javascript
-var tmp = require('tmp');
-
-tmp.dir({ template: '/tmp/tmp-XXXXXX' }, function _tempDirCreated(err, path) {
- if (err) throw err;
-
- console.log("Dir: ", path);
-});
-```
-
-### mkstemp like, synchronously
-
-This will behave similarly to the asynchronous version.
-
-```javascript
-var tmp = require('tmp');
-
-var tmpobj = tmp.dirSync({ template: '/tmp/tmp-XXXXXX' });
-console.log("Dir: ", tmpobj.name);
-```
-
-### Asynchronous filename generation
-
-The `tmpName()` function accepts the `prefix`, `postfix`, `dir`, etc. parameters also:
-
-```javascript
-var tmp = require('tmp');
-
-tmp.tmpName({ template: '/tmp/tmp-XXXXXX' }, function _tempNameGenerated(err, path) {
- if (err) throw err;
-
- console.log("Created temporary filename: ", path);
-});
-```
-
-### Synchronous filename generation
-
-The `tmpNameSync()` function works similarly to `tmpName()`.
-
-```javascript
-var tmp = require('tmp');
-var tmpname = tmp.tmpNameSync({ template: '/tmp/tmp-XXXXXX' });
-console.log("Created temporary filename: ", tmpname);
-```
-
-## Graceful cleanup
-
-One may want to cleanup the temporary files even when an uncaught exception
-occurs. To enforce this, you can call the `setGracefulCleanup()` method:
-
-```javascript
-var tmp = require('tmp');
-
-tmp.setGracefulCleanup();
-```
-
-## Options
-
-All options are optional :)
-
- * `mode`: the file mode to create with, it fallbacks to `0600` on file creation and `0700` on directory creation
- * `prefix`: the optional prefix, fallbacks to `tmp-` if not provided
- * `postfix`: the optional postfix, fallbacks to `.tmp` on file creation
- * `template`: [`mkstemp`][3] like filename template, no default
- * `dir`: the optional temporary directory, fallbacks to system default (guesses from environment)
- * `tries`: how many times should the function try to get a unique filename before giving up, default `3`
- * `keep`: signals that the temporary file or directory should not be deleted on exit, default is `false`, means delete
- * Please keep in mind that it is recommended in this case to call the provided `cleanupCallback` function manually.
- * `unsafeCleanup`: recursively removes the created temporary directory, even when it's not empty. default is `false`
-
-[1]: http://nodejs.org/
-[2]: https://www.npmjs.com/browse/depended/tmp
-[3]: http://www.kernel.org/doc/man-pages/online/pages/man3/mkstemp.3.html
diff --git a/node_modules/tmp/cleanup.sh b/node_modules/tmp/cleanup.sh
deleted file mode 100755
index d069ebfb5..000000000
--- a/node_modules/tmp/cleanup.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-rm -vrf ${TMPDIR}/{foo,tmp,something,complicated,clike,using}*
diff --git a/node_modules/tmp/coverage/coverage.json b/node_modules/tmp/coverage/coverage.json
deleted file mode 100644
index 5a2f97dbe..000000000
--- a/node_modules/tmp/coverage/coverage.json
+++ /dev/null
@@ -1 +0,0 @@
-{"/Users/ikaraszi/_vc/github/node-tmp/lib/tmp.js":{"path":"/Users/ikaraszi/_vc/github/node-tmp/lib/tmp.js","s":{"1":1,"2":1,"3":1,"4":33,"5":33,"6":33,"7":0,"8":33,"9":366,"10":33,"11":1,"12":9,"13":1,"14":79,"15":5,"16":5,"17":5,"18":74,"19":4,"20":79,"21":1,"22":37,"23":4,"24":33,"25":5,"26":28,"27":28,"28":1,"29":25,"30":25,"31":4,"32":21,"33":0,"34":21,"35":21,"36":21,"37":21,"38":0,"39":0,"40":0,"41":21,"42":1,"43":18,"44":18,"45":2,"46":16,"47":0,"48":16,"49":16,"50":16,"51":16,"52":16,"53":0,"54":1,"55":9,"56":9,"57":9,"58":9,"59":1,"60":8,"61":8,"62":0,"63":8,"64":1,"65":9,"66":9,"67":9,"68":8,"69":8,"70":1,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":1,"85":9,"86":9,"87":9,"88":1,"89":8,"90":8,"91":0,"92":8,"93":1,"94":9,"95":9,"96":8,"97":8,"98":1,"99":16,"100":2,"101":2,"102":0,"103":0,"104":2,"105":16,"106":16,"107":16,"108":1,"109":16,"110":16,"111":16,"112":16,"113":16,"114":1,"115":32,"116":32,"117":5,"118":0,"119":5,"120":5,"121":5,"122":5,"123":5,"124":1,"125":0,"126":0,"127":0,"128":0,"129":0,"130":1,"131":0,"132":1,"133":3,"134":1,"135":0,"136":0,"137":0,"138":0,"139":1,"140":0,"141":0,"142":0,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1},"b":{"1":[5,74],"2":[5,5],"3":[4,70],"4":[4,33],"5":[4,4],"6":[5,28],"7":[28,14],"8":[28,8],"9":[28,28],"10":[25,20],"11":[4,21],"12":[25,24],"13":[0,21],"14":[21,3],"15":[0,21],"16":[0,0],"17":[18,16],"18":[2,16],"19":[18,18],"20":[0,16],"21":[16,2],"22":[6,3],"23":[1,8],"24":[8,6],"25":[0,8],"26":[9,6],"27":[8,6],"28":[0,0],"29":[0,0],"30":[0,0],"31":[1,8],"32":[8,6],"33":[0,8],"34":[8,6],"35":[0,0],"36":[0,0],"37":[16,0],"38":[0,16],"39":[16,0],"40":[0,5],"41":[5,0],"42":[0,0],"43":[0,0],"44":[0,1],"45":[1,0,0,0],"46":[0,0]},"f":{"1":33,"2":9,"3":79,"4":37,"5":25,"6":21,"7":21,"8":18,"9":9,"10":9,"11":8,"12":9,"13":0,"14":9,"15":9,"16":8,"17":9,"18":16,"19":2,"20":16,"21":32,"22":5,"23":0,"24":0,"25":3,"26":0,"27":0},"fnMap":{"1":{"name":"_randomChars","line":53,"loc":{"start":{"line":53,"column":0},"end":{"line":53,"column":31}}},"2":{"name":"_isUndefined","line":79,"loc":{"start":{"line":79,"column":0},"end":{"line":79,"column":27}}},"3":{"name":"_parseArguments","line":92,"loc":{"start":{"line":92,"column":0},"end":{"line":92,"column":44}}},"4":{"name":"_generateTmpName","line":112,"loc":{"start":{"line":112,"column":0},"end":{"line":112,"column":32}}},"5":{"name":"_getTmpName","line":140,"loc":{"start":{"line":140,"column":0},"end":{"line":140,"column":40}}},"6":{"name":"_getUniqueName","line":153,"loc":{"start":{"line":153,"column":3},"end":{"line":153,"column":29}}},"7":{"name":"(anonymous_7)","line":157,"loc":{"start":{"line":157,"column":18},"end":{"line":157,"column":33}}},"8":{"name":"_getTmpNameSync","line":176,"loc":{"start":{"line":176,"column":0},"end":{"line":176,"column":34}}},"9":{"name":"_createTmpFile","line":207,"loc":{"start":{"line":207,"column":0},"end":{"line":207,"column":43}}},"10":{"name":"_tmpNameCreated","line":216,"loc":{"start":{"line":216,"column":20},"end":{"line":216,"column":56}}},"11":{"name":"_fileCreated","line":220,"loc":{"start":{"line":220,"column":56},"end":{"line":220,"column":87}}},"12":{"name":"_createTmpFileSync","line":235,"loc":{"start":{"line":235,"column":0},"end":{"line":235,"column":37}}},"13":{"name":"_rmdirRecursiveSync","line":258,"loc":{"start":{"line":258,"column":0},"end":{"line":258,"column":35}}},"14":{"name":"_createTmpDir","line":296,"loc":{"start":{"line":296,"column":0},"end":{"line":296,"column":42}}},"15":{"name":"_tmpNameCreated","line":303,"loc":{"start":{"line":303,"column":20},"end":{"line":303,"column":56}}},"16":{"name":"_dirCreated","line":307,"loc":{"start":{"line":307,"column":42},"end":{"line":307,"column":68}}},"17":{"name":"_createTmpDirSync","line":322,"loc":{"start":{"line":322,"column":0},"end":{"line":322,"column":36}}},"18":{"name":"_prepareTmpFileRemoveCallback","line":345,"loc":{"start":{"line":345,"column":0},"end":{"line":345,"column":55}}},"19":{"name":"_removeCallback","line":346,"loc":{"start":{"line":346,"column":46},"end":{"line":346,"column":79}}},"20":{"name":"_prepareTmpDirRemoveCallback","line":377,"loc":{"start":{"line":377,"column":0},"end":{"line":377,"column":50}}},"21":{"name":"_prepareRemoveCallback","line":396,"loc":{"start":{"line":396,"column":0},"end":{"line":396,"column":53}}},"22":{"name":"_cleanupCallback","line":399,"loc":{"start":{"line":399,"column":9},"end":{"line":399,"column":37}}},"23":{"name":"_garbageCollector","line":417,"loc":{"start":{"line":417,"column":0},"end":{"line":417,"column":29}}},"24":{"name":"_setGracefulCleanup","line":431,"loc":{"start":{"line":431,"column":0},"end":{"line":431,"column":31}}},"25":{"name":"(anonymous_25)","line":435,"loc":{"start":{"line":435,"column":51},"end":{"line":435,"column":68}}},"26":{"name":"_uncaughtExceptionThrown","line":440,"loc":{"start":{"line":440,"column":43},"end":{"line":440,"column":82}}},"27":{"name":"_exit","line":448,"loc":{"start":{"line":448,"column":28},"end":{"line":448,"column":49}}}},"statementMap":{"1":{"start":{"line":12,"column":0},"end":{"line":17,"column":32}},"2":{"start":{"line":23,"column":0},"end":{"line":43,"column":29}},"3":{"start":{"line":53,"column":0},"end":{"line":70,"column":1}},"4":{"start":{"line":54,"column":2},"end":{"line":56,"column":15}},"5":{"start":{"line":59,"column":2},"end":{"line":63,"column":3}},"6":{"start":{"line":60,"column":4},"end":{"line":60,"column":38}},"7":{"start":{"line":62,"column":4},"end":{"line":62,"column":44}},"8":{"start":{"line":65,"column":2},"end":{"line":67,"column":3}},"9":{"start":{"line":66,"column":4},"end":{"line":66,"column":59}},"10":{"start":{"line":69,"column":2},"end":{"line":69,"column":24}},"11":{"start":{"line":79,"column":0},"end":{"line":81,"column":1}},"12":{"start":{"line":80,"column":2},"end":{"line":80,"column":36}},"13":{"start":{"line":92,"column":0},"end":{"line":103,"column":1}},"14":{"start":{"line":93,"column":2},"end":{"line":100,"column":3}},"15":{"start":{"line":94,"column":4},"end":{"line":95,"column":20}},"16":{"start":{"line":96,"column":6},"end":{"line":96,"column":31}},"17":{"start":{"line":97,"column":6},"end":{"line":97,"column":21}},"18":{"start":{"line":98,"column":9},"end":{"line":100,"column":3}},"19":{"start":{"line":99,"column":4},"end":{"line":99,"column":17}},"20":{"start":{"line":102,"column":2},"end":{"line":102,"column":29}},"21":{"start":{"line":112,"column":0},"end":{"line":131,"column":1}},"22":{"start":{"line":113,"column":2},"end":{"line":115,"column":3}},"23":{"start":{"line":114,"column":4},"end":{"line":114,"column":50}},"24":{"start":{"line":118,"column":2},"end":{"line":120,"column":3}},"25":{"start":{"line":119,"column":4},"end":{"line":119,"column":68}},"26":{"start":{"line":123,"column":2},"end":{"line":128,"column":13}},"27":{"start":{"line":130,"column":2},"end":{"line":130,"column":43}},"28":{"start":{"line":140,"column":0},"end":{"line":167,"column":1}},"29":{"start":{"line":141,"column":2},"end":{"line":145,"column":40}},"30":{"start":{"line":147,"column":2},"end":{"line":148,"column":42}},"31":{"start":{"line":148,"column":4},"end":{"line":148,"column":42}},"32":{"start":{"line":150,"column":2},"end":{"line":151,"column":54}},"33":{"start":{"line":151,"column":4},"end":{"line":151,"column":54}},"34":{"start":{"line":153,"column":2},"end":{"line":166,"column":7}},"35":{"start":{"line":154,"column":4},"end":{"line":154,"column":38}},"36":{"start":{"line":157,"column":4},"end":{"line":165,"column":7}},"37":{"start":{"line":158,"column":6},"end":{"line":162,"column":7}},"38":{"start":{"line":159,"column":8},"end":{"line":159,"column":49}},"39":{"start":{"line":159,"column":25},"end":{"line":159,"column":49}},"40":{"start":{"line":161,"column":8},"end":{"line":161,"column":95}},"41":{"start":{"line":164,"column":6},"end":{"line":164,"column":21}},"42":{"start":{"line":176,"column":0},"end":{"line":198,"column":1}},"43":{"start":{"line":177,"column":2},"end":{"line":180,"column":40}},"44":{"start":{"line":182,"column":2},"end":{"line":183,"column":37}},"45":{"start":{"line":183,"column":4},"end":{"line":183,"column":37}},"46":{"start":{"line":185,"column":2},"end":{"line":186,"column":49}},"47":{"start":{"line":186,"column":4},"end":{"line":186,"column":49}},"48":{"start":{"line":188,"column":2},"end":{"line":195,"column":24}},"49":{"start":{"line":189,"column":4},"end":{"line":189,"column":38}},"50":{"start":{"line":190,"column":4},"end":{"line":194,"column":5}},"51":{"start":{"line":191,"column":8},"end":{"line":191,"column":26}},"52":{"start":{"line":193,"column":8},"end":{"line":193,"column":20}},"53":{"start":{"line":197,"column":2},"end":{"line":197,"column":76}},"54":{"start":{"line":207,"column":0},"end":{"line":226,"column":1}},"55":{"start":{"line":208,"column":2},"end":{"line":211,"column":17}},"56":{"start":{"line":213,"column":4},"end":{"line":213,"column":72}},"57":{"start":{"line":216,"column":2},"end":{"line":225,"column":5}},"58":{"start":{"line":217,"column":4},"end":{"line":217,"column":28}},"59":{"start":{"line":217,"column":13},"end":{"line":217,"column":28}},"60":{"start":{"line":220,"column":4},"end":{"line":224,"column":7}},"61":{"start":{"line":221,"column":6},"end":{"line":221,"column":30}},"62":{"start":{"line":221,"column":15},"end":{"line":221,"column":30}},"63":{"start":{"line":223,"column":6},"end":{"line":223,"column":72}},"64":{"start":{"line":235,"column":0},"end":{"line":250,"column":1}},"65":{"start":{"line":236,"column":2},"end":{"line":238,"column":19}},"66":{"start":{"line":240,"column":4},"end":{"line":240,"column":42}},"67":{"start":{"line":242,"column":2},"end":{"line":242,"column":35}},"68":{"start":{"line":243,"column":2},"end":{"line":243,"column":67}},"69":{"start":{"line":245,"column":2},"end":{"line":249,"column":4}},"70":{"start":{"line":258,"column":0},"end":{"line":287,"column":1}},"71":{"start":{"line":259,"column":2},"end":{"line":259,"column":20}},"72":{"start":{"line":261,"column":2},"end":{"line":286,"column":30}},"73":{"start":{"line":262,"column":4},"end":{"line":265,"column":34}},"74":{"start":{"line":267,"column":4},"end":{"line":281,"column":5}},"75":{"start":{"line":268,"column":6},"end":{"line":270,"column":34}},"76":{"start":{"line":272,"column":6},"end":{"line":280,"column":7}},"77":{"start":{"line":273,"column":8},"end":{"line":276,"column":9}},"78":{"start":{"line":274,"column":10},"end":{"line":274,"column":26}},"79":{"start":{"line":275,"column":10},"end":{"line":275,"column":25}},"80":{"start":{"line":277,"column":8},"end":{"line":277,"column":24}},"81":{"start":{"line":279,"column":8},"end":{"line":279,"column":28}},"82":{"start":{"line":283,"column":4},"end":{"line":285,"column":5}},"83":{"start":{"line":284,"column":6},"end":{"line":284,"column":24}},"84":{"start":{"line":296,"column":0},"end":{"line":313,"column":1}},"85":{"start":{"line":297,"column":2},"end":{"line":300,"column":17}},"86":{"start":{"line":303,"column":2},"end":{"line":312,"column":5}},"87":{"start":{"line":304,"column":4},"end":{"line":304,"column":28}},"88":{"start":{"line":304,"column":13},"end":{"line":304,"column":28}},"89":{"start":{"line":307,"column":4},"end":{"line":311,"column":7}},"90":{"start":{"line":308,"column":6},"end":{"line":308,"column":30}},"91":{"start":{"line":308,"column":15},"end":{"line":308,"column":30}},"92":{"start":{"line":310,"column":6},"end":{"line":310,"column":63}},"93":{"start":{"line":322,"column":0},"end":{"line":334,"column":1}},"94":{"start":{"line":323,"column":2},"end":{"line":325,"column":19}},"95":{"start":{"line":327,"column":2},"end":{"line":327,"column":35}},"96":{"start":{"line":328,"column":2},"end":{"line":328,"column":44}},"97":{"start":{"line":330,"column":2},"end":{"line":333,"column":4}},"98":{"start":{"line":345,"column":0},"end":{"line":367,"column":1}},"99":{"start":{"line":346,"column":2},"end":{"line":360,"column":17}},"100":{"start":{"line":347,"column":4},"end":{"line":358,"column":5}},"101":{"start":{"line":348,"column":6},"end":{"line":348,"column":30}},"102":{"start":{"line":354,"column":6},"end":{"line":357,"column":7}},"103":{"start":{"line":356,"column":8},"end":{"line":356,"column":16}},"104":{"start":{"line":359,"column":4},"end":{"line":359,"column":29}},"105":{"start":{"line":362,"column":2},"end":{"line":364,"column":3}},"106":{"start":{"line":363,"column":4},"end":{"line":363,"column":43}},"107":{"start":{"line":366,"column":2},"end":{"line":366,"column":24}},"108":{"start":{"line":377,"column":0},"end":{"line":386,"column":1}},"109":{"start":{"line":378,"column":2},"end":{"line":378,"column":88}},"110":{"start":{"line":379,"column":2},"end":{"line":379,"column":68}},"111":{"start":{"line":381,"column":2},"end":{"line":383,"column":3}},"112":{"start":{"line":382,"column":4},"end":{"line":382,"column":43}},"113":{"start":{"line":385,"column":2},"end":{"line":385,"column":24}},"114":{"start":{"line":396,"column":0},"end":{"line":410,"column":1}},"115":{"start":{"line":397,"column":2},"end":{"line":397,"column":21}},"116":{"start":{"line":399,"column":2},"end":{"line":409,"column":4}},"117":{"start":{"line":400,"column":4},"end":{"line":400,"column":23}},"118":{"start":{"line":400,"column":16},"end":{"line":400,"column":23}},"119":{"start":{"line":402,"column":4},"end":{"line":402,"column":57}},"120":{"start":{"line":403,"column":4},"end":{"line":405,"column":5}},"121":{"start":{"line":404,"column":6},"end":{"line":404,"column":38}},"122":{"start":{"line":407,"column":4},"end":{"line":407,"column":18}},"123":{"start":{"line":408,"column":4},"end":{"line":408,"column":24}},"124":{"start":{"line":417,"column":0},"end":{"line":429,"column":1}},"125":{"start":{"line":418,"column":2},"end":{"line":420,"column":3}},"126":{"start":{"line":419,"column":4},"end":{"line":419,"column":11}},"127":{"start":{"line":422,"column":2},"end":{"line":428,"column":3}},"128":{"start":{"line":423,"column":4},"end":{"line":427,"column":5}},"129":{"start":{"line":424,"column":6},"end":{"line":424,"column":35}},"130":{"start":{"line":431,"column":0},"end":{"line":433,"column":1}},"131":{"start":{"line":432,"column":2},"end":{"line":432,"column":26}},"132":{"start":{"line":435,"column":0},"end":{"line":437,"column":3}},"133":{"start":{"line":436,"column":2},"end":{"line":436,"column":29}},"134":{"start":{"line":439,"column":0},"end":{"line":446,"column":1}},"135":{"start":{"line":440,"column":2},"end":{"line":445,"column":5}},"136":{"start":{"line":441,"column":4},"end":{"line":441,"column":30}},"137":{"start":{"line":442,"column":4},"end":{"line":442,"column":24}},"138":{"start":{"line":444,"column":4},"end":{"line":444,"column":14}},"139":{"start":{"line":448,"column":0},"end":{"line":451,"column":3}},"140":{"start":{"line":449,"column":2},"end":{"line":449,"column":38}},"141":{"start":{"line":449,"column":12},"end":{"line":449,"column":38}},"142":{"start":{"line":450,"column":2},"end":{"line":450,"column":22}},"143":{"start":{"line":454,"column":0},"end":{"line":454,"column":29}},"144":{"start":{"line":455,"column":0},"end":{"line":455,"column":35}},"145":{"start":{"line":456,"column":0},"end":{"line":456,"column":43}},"146":{"start":{"line":457,"column":0},"end":{"line":457,"column":37}},"147":{"start":{"line":458,"column":0},"end":{"line":458,"column":45}},"148":{"start":{"line":459,"column":0},"end":{"line":459,"column":37}},"149":{"start":{"line":460,"column":0},"end":{"line":460,"column":45}},"150":{"start":{"line":461,"column":0},"end":{"line":461,"column":56}}},"branchMap":{"1":{"line":93,"type":"if","locations":[{"start":{"line":93,"column":2},"end":{"line":93,"column":2}},{"start":{"line":93,"column":2},"end":{"line":93,"column":2}}]},"2":{"line":96,"type":"binary-expr","locations":[{"start":{"line":96,"column":16},"end":{"line":96,"column":24}},{"start":{"line":96,"column":28},"end":{"line":96,"column":30}}]},"3":{"line":98,"type":"if","locations":[{"start":{"line":98,"column":9},"end":{"line":98,"column":9}},{"start":{"line":98,"column":9},"end":{"line":98,"column":9}}]},"4":{"line":113,"type":"if","locations":[{"start":{"line":113,"column":2},"end":{"line":113,"column":2}},{"start":{"line":113,"column":2},"end":{"line":113,"column":2}}]},"5":{"line":114,"type":"binary-expr","locations":[{"start":{"line":114,"column":21},"end":{"line":114,"column":29}},{"start":{"line":114,"column":33},"end":{"line":114,"column":37}}]},"6":{"line":118,"type":"if","locations":[{"start":{"line":118,"column":2},"end":{"line":118,"column":2}},{"start":{"line":118,"column":2},"end":{"line":118,"column":2}}]},"7":{"line":124,"type":"binary-expr","locations":[{"start":{"line":124,"column":4},"end":{"line":124,"column":15}},{"start":{"line":124,"column":19},"end":{"line":124,"column":25}}]},"8":{"line":127,"type":"binary-expr","locations":[{"start":{"line":127,"column":4},"end":{"line":127,"column":16}},{"start":{"line":127,"column":20},"end":{"line":127,"column":22}}]},"9":{"line":130,"type":"binary-expr","locations":[{"start":{"line":130,"column":19},"end":{"line":130,"column":27}},{"start":{"line":130,"column":31},"end":{"line":130,"column":35}}]},"10":{"line":145,"type":"binary-expr","locations":[{"start":{"line":145,"column":12},"end":{"line":145,"column":22}},{"start":{"line":145,"column":26},"end":{"line":145,"column":39}}]},"11":{"line":147,"type":"if","locations":[{"start":{"line":147,"column":2},"end":{"line":147,"column":2}},{"start":{"line":147,"column":2},"end":{"line":147,"column":2}}]},"12":{"line":147,"type":"binary-expr","locations":[{"start":{"line":147,"column":6},"end":{"line":147,"column":18}},{"start":{"line":147,"column":22},"end":{"line":147,"column":31}}]},"13":{"line":150,"type":"if","locations":[{"start":{"line":150,"column":2},"end":{"line":150,"column":2}},{"start":{"line":150,"column":2},"end":{"line":150,"column":2}}]},"14":{"line":150,"type":"binary-expr","locations":[{"start":{"line":150,"column":6},"end":{"line":150,"column":19}},{"start":{"line":150,"column":23},"end":{"line":150,"column":61}}]},"15":{"line":158,"type":"if","locations":[{"start":{"line":158,"column":6},"end":{"line":158,"column":6}},{"start":{"line":158,"column":6},"end":{"line":158,"column":6}}]},"16":{"line":159,"type":"if","locations":[{"start":{"line":159,"column":8},"end":{"line":159,"column":8}},{"start":{"line":159,"column":8},"end":{"line":159,"column":8}}]},"17":{"line":180,"type":"binary-expr","locations":[{"start":{"line":180,"column":12},"end":{"line":180,"column":22}},{"start":{"line":180,"column":26},"end":{"line":180,"column":39}}]},"18":{"line":182,"type":"if","locations":[{"start":{"line":182,"column":2},"end":{"line":182,"column":2}},{"start":{"line":182,"column":2},"end":{"line":182,"column":2}}]},"19":{"line":182,"type":"binary-expr","locations":[{"start":{"line":182,"column":6},"end":{"line":182,"column":18}},{"start":{"line":182,"column":22},"end":{"line":182,"column":31}}]},"20":{"line":185,"type":"if","locations":[{"start":{"line":185,"column":2},"end":{"line":185,"column":2}},{"start":{"line":185,"column":2},"end":{"line":185,"column":2}}]},"21":{"line":185,"type":"binary-expr","locations":[{"start":{"line":185,"column":6},"end":{"line":185,"column":19}},{"start":{"line":185,"column":23},"end":{"line":185,"column":61}}]},"22":{"line":213,"type":"cond-expr","locations":[{"start":{"line":213,"column":50},"end":{"line":213,"column":56}},{"start":{"line":213,"column":59},"end":{"line":213,"column":71}}]},"23":{"line":217,"type":"if","locations":[{"start":{"line":217,"column":4},"end":{"line":217,"column":4}},{"start":{"line":217,"column":4},"end":{"line":217,"column":4}}]},"24":{"line":220,"type":"binary-expr","locations":[{"start":{"line":220,"column":32},"end":{"line":220,"column":41}},{"start":{"line":220,"column":45},"end":{"line":220,"column":54}}]},"25":{"line":221,"type":"if","locations":[{"start":{"line":221,"column":6},"end":{"line":221,"column":6}},{"start":{"line":221,"column":6},"end":{"line":221,"column":6}}]},"26":{"line":240,"type":"binary-expr","locations":[{"start":{"line":240,"column":19},"end":{"line":240,"column":31}},{"start":{"line":240,"column":35},"end":{"line":240,"column":41}}]},"27":{"line":243,"type":"binary-expr","locations":[{"start":{"line":243,"column":43},"end":{"line":243,"column":52}},{"start":{"line":243,"column":56},"end":{"line":243,"column":65}}]},"28":{"line":272,"type":"if","locations":[{"start":{"line":272,"column":6},"end":{"line":272,"column":6}},{"start":{"line":272,"column":6},"end":{"line":272,"column":6}}]},"29":{"line":273,"type":"if","locations":[{"start":{"line":273,"column":8},"end":{"line":273,"column":8}},{"start":{"line":273,"column":8},"end":{"line":273,"column":8}}]},"30":{"line":283,"type":"if","locations":[{"start":{"line":283,"column":4},"end":{"line":283,"column":4}},{"start":{"line":283,"column":4},"end":{"line":283,"column":4}}]},"31":{"line":304,"type":"if","locations":[{"start":{"line":304,"column":4},"end":{"line":304,"column":4}},{"start":{"line":304,"column":4},"end":{"line":304,"column":4}}]},"32":{"line":307,"type":"binary-expr","locations":[{"start":{"line":307,"column":19},"end":{"line":307,"column":28}},{"start":{"line":307,"column":32},"end":{"line":307,"column":40}}]},"33":{"line":308,"type":"if","locations":[{"start":{"line":308,"column":6},"end":{"line":308,"column":6}},{"start":{"line":308,"column":6},"end":{"line":308,"column":6}}]},"34":{"line":328,"type":"binary-expr","locations":[{"start":{"line":328,"column":21},"end":{"line":328,"column":30}},{"start":{"line":328,"column":34},"end":{"line":328,"column":42}}]},"35":{"line":354,"type":"if","locations":[{"start":{"line":354,"column":6},"end":{"line":354,"column":6}},{"start":{"line":354,"column":6},"end":{"line":354,"column":6}}]},"36":{"line":354,"type":"binary-expr","locations":[{"start":{"line":354,"column":10},"end":{"line":354,"column":30}},{"start":{"line":354,"column":34},"end":{"line":354,"column":55}}]},"37":{"line":362,"type":"if","locations":[{"start":{"line":362,"column":2},"end":{"line":362,"column":2}},{"start":{"line":362,"column":2},"end":{"line":362,"column":2}}]},"38":{"line":378,"type":"cond-expr","locations":[{"start":{"line":378,"column":44},"end":{"line":378,"column":63}},{"start":{"line":378,"column":66},"end":{"line":378,"column":87}}]},"39":{"line":381,"type":"if","locations":[{"start":{"line":381,"column":2},"end":{"line":381,"column":2}},{"start":{"line":381,"column":2},"end":{"line":381,"column":2}}]},"40":{"line":400,"type":"if","locations":[{"start":{"line":400,"column":4},"end":{"line":400,"column":4}},{"start":{"line":400,"column":4},"end":{"line":400,"column":4}}]},"41":{"line":403,"type":"if","locations":[{"start":{"line":403,"column":4},"end":{"line":403,"column":4}},{"start":{"line":403,"column":4},"end":{"line":403,"column":4}}]},"42":{"line":418,"type":"if","locations":[{"start":{"line":418,"column":2},"end":{"line":418,"column":2}},{"start":{"line":418,"column":2},"end":{"line":418,"column":2}}]},"43":{"line":418,"type":"binary-expr","locations":[{"start":{"line":418,"column":6},"end":{"line":418,"column":24}},{"start":{"line":418,"column":28},"end":{"line":418,"column":45}}]},"44":{"line":439,"type":"if","locations":[{"start":{"line":439,"column":0},"end":{"line":439,"column":0}},{"start":{"line":439,"column":0},"end":{"line":439,"column":0}}]},"45":{"line":439,"type":"binary-expr","locations":[{"start":{"line":439,"column":4},"end":{"line":439,"column":20}},{"start":{"line":439,"column":25},"end":{"line":439,"column":39}},{"start":{"line":439,"column":43},"end":{"line":439,"column":59}},{"start":{"line":439,"column":63},"end":{"line":439,"column":77}}]},"46":{"line":449,"type":"if","locations":[{"start":{"line":449,"column":2},"end":{"line":449,"column":2}},{"start":{"line":449,"column":2},"end":{"line":449,"column":2}}]}}}} \ No newline at end of file
diff --git a/node_modules/tmp/coverage/lcov-report/base.css b/node_modules/tmp/coverage/lcov-report/base.css
deleted file mode 100644
index 29737bcb0..000000000
--- a/node_modules/tmp/coverage/lcov-report/base.css
+++ /dev/null
@@ -1,213 +0,0 @@
-body, html {
- margin:0; padding: 0;
- height: 100%;
-}
-body {
- font-family: Helvetica Neue, Helvetica, Arial;
- font-size: 14px;
- color:#333;
-}
-.small { font-size: 12px; }
-*, *:after, *:before {
- -webkit-box-sizing:border-box;
- -moz-box-sizing:border-box;
- box-sizing:border-box;
- }
-h1 { font-size: 20px; margin: 0;}
-h2 { font-size: 14px; }
-pre {
- font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace;
- margin: 0;
- padding: 0;
- -moz-tab-size: 2;
- -o-tab-size: 2;
- tab-size: 2;
-}
-a { color:#0074D9; text-decoration:none; }
-a:hover { text-decoration:underline; }
-.strong { font-weight: bold; }
-.space-top1 { padding: 10px 0 0 0; }
-.pad2y { padding: 20px 0; }
-.pad1y { padding: 10px 0; }
-.pad2x { padding: 0 20px; }
-.pad2 { padding: 20px; }
-.pad1 { padding: 10px; }
-.space-left2 { padding-left:55px; }
-.space-right2 { padding-right:20px; }
-.center { text-align:center; }
-.clearfix { display:block; }
-.clearfix:after {
- content:'';
- display:block;
- height:0;
- clear:both;
- visibility:hidden;
- }
-.fl { float: left; }
-@media only screen and (max-width:640px) {
- .col3 { width:100%; max-width:100%; }
- .hide-mobile { display:none!important; }
-}
-
-.quiet {
- color: #7f7f7f;
- color: rgba(0,0,0,0.5);
-}
-.quiet a { opacity: 0.7; }
-
-.fraction {
- font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
- font-size: 10px;
- color: #555;
- background: #E8E8E8;
- padding: 4px 5px;
- border-radius: 3px;
- vertical-align: middle;
-}
-
-div.path a:link, div.path a:visited { color: #333; }
-table.coverage {
- border-collapse: collapse;
- margin: 10px 0 0 0;
- padding: 0;
-}
-
-table.coverage td {
- margin: 0;
- padding: 0;
- vertical-align: top;
-}
-table.coverage td.line-count {
- text-align: right;
- padding: 0 5px 0 20px;
-}
-table.coverage td.line-coverage {
- text-align: right;
- padding-right: 10px;
- min-width:20px;
-}
-
-table.coverage td span.cline-any {
- display: inline-block;
- padding: 0 5px;
- width: 100%;
-}
-.missing-if-branch {
- display: inline-block;
- margin-right: 5px;
- border-radius: 3px;
- position: relative;
- padding: 0 4px;
- background: #333;
- color: yellow;
-}
-
-.skip-if-branch {
- display: none;
- margin-right: 10px;
- position: relative;
- padding: 0 4px;
- background: #ccc;
- color: white;
-}
-.missing-if-branch .typ, .skip-if-branch .typ {
- color: inherit !important;
-}
-.coverage-summary {
- border-collapse: collapse;
- width: 100%;
-}
-.coverage-summary tr { border-bottom: 1px solid #bbb; }
-.keyline-all { border: 1px solid #ddd; }
-.coverage-summary td, .coverage-summary th { padding: 10px; }
-.coverage-summary tbody { border: 1px solid #bbb; }
-.coverage-summary td { border-right: 1px solid #bbb; }
-.coverage-summary td:last-child { border-right: none; }
-.coverage-summary th {
- text-align: left;
- font-weight: normal;
- white-space: nowrap;
-}
-.coverage-summary th.file { border-right: none !important; }
-.coverage-summary th.pct { }
-.coverage-summary th.pic,
-.coverage-summary th.abs,
-.coverage-summary td.pct,
-.coverage-summary td.abs { text-align: right; }
-.coverage-summary td.file { white-space: nowrap; }
-.coverage-summary td.pic { min-width: 120px !important; }
-.coverage-summary tfoot td { }
-
-.coverage-summary .sorter {
- height: 10px;
- width: 7px;
- display: inline-block;
- margin-left: 0.5em;
- background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
-}
-.coverage-summary .sorted .sorter {
- background-position: 0 -20px;
-}
-.coverage-summary .sorted-desc .sorter {
- background-position: 0 -10px;
-}
-.status-line { height: 10px; }
-/* dark red */
-.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 }
-.low .chart { border:1px solid #C21F39 }
-/* medium red */
-.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE }
-/* light red */
-.low, .cline-no { background:#FCE1E5 }
-/* light green */
-.high, .cline-yes { background:rgb(230,245,208) }
-/* medium green */
-.cstat-yes { background:rgb(161,215,106) }
-/* dark green */
-.status-line.high, .high .cover-fill { background:rgb(77,146,33) }
-.high .chart { border:1px solid rgb(77,146,33) }
-/* dark yellow (gold) */
-.medium .chart { border:1px solid #f9cd0b; }
-.status-line.medium, .medium .cover-fill { background: #f9cd0b; }
-/* light yellow */
-.medium { background: #fff4c2; }
-/* light gray */
-span.cline-neutral { background: #eaeaea; }
-
-.cbranch-no { background: yellow !important; color: #111; }
-
-.cstat-skip { background: #ddd; color: #111; }
-.fstat-skip { background: #ddd; color: #111 !important; }
-.cbranch-skip { background: #ddd !important; color: #111; }
-
-
-.cover-fill, .cover-empty {
- display:inline-block;
- height: 12px;
-}
-.chart {
- line-height: 0;
-}
-.cover-empty {
- background: white;
-}
-.cover-full {
- border-right: none !important;
-}
-pre.prettyprint {
- border: none !important;
- padding: 0 !important;
- margin: 0 !important;
-}
-.com { color: #999 !important; }
-.ignore-none { color: #999; font-weight: normal; }
-
-.wrapper {
- min-height: 100%;
- height: auto !important;
- height: 100%;
- margin: 0 auto -48px;
-}
-.footer, .push {
- height: 48px;
-}
diff --git a/node_modules/tmp/coverage/lcov-report/index.html b/node_modules/tmp/coverage/lcov-report/index.html
deleted file mode 100644
index 1d4d14f03..000000000
--- a/node_modules/tmp/coverage/lcov-report/index.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
- <title>Code coverage report for All files</title>
- <meta charset="utf-8" />
- <link rel="stylesheet" href="prettify.css" />
- <link rel="stylesheet" href="base.css" />
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(sort-arrow-sprite.png);
- }
- </style>
-</head>
-<body>
-<div class='wrapper'>
- <div class='pad1'>
- <h1>
- /
- </h1>
- <div class='clearfix'>
- <div class='fl pad1y space-right2'>
- <span class="strong">74.67% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>112/150</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">65.96% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>62/94</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">81.48% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>22/27</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">76.92% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>110/143</span>
- </div>
- </div>
- </div>
- <div class='status-line medium'></div>
-<div class="pad1">
-<table class="coverage-summary">
-<thead>
-<tr>
- <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
- <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
- <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
- <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
- <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
- <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
- <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
-</tr>
-</thead>
-<tbody><tr>
- <td class="file medium" data-value="lib/"><a href="lib/index.html">lib/</a></td>
- <td data-value="74.67" class="pic medium"><div class="chart"><div class="cover-fill" style="width: 74%;"></div><div class="cover-empty" style="width:26%;"></div></div></td>
- <td data-value="74.67" class="pct medium">74.67%</td>
- <td data-value="150" class="abs medium">112/150</td>
- <td data-value="65.96" class="pct medium">65.96%</td>
- <td data-value="94" class="abs medium">62/94</td>
- <td data-value="81.48" class="pct high">81.48%</td>
- <td data-value="27" class="abs high">22/27</td>
- <td data-value="76.92" class="pct medium">76.92%</td>
- <td data-value="143" class="abs medium">110/143</td>
- </tr>
-
-</tbody>
-</table>
-</div><div class='push'></div><!-- for sticky footer -->
-</div><!-- /wrapper -->
-<div class='footer quiet pad2 space-top1 center small'>
- Code coverage
- generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Sep 20 2016 12:42:12 GMT+0200 (CEST)
-</div>
-</div>
-<script src="prettify.js"></script>
-<script>
-window.onload = function () {
- if (typeof prettyPrint === 'function') {
- prettyPrint();
- }
-};
-</script>
-<script src="sorter.js"></script>
-</body>
-</html>
diff --git a/node_modules/tmp/coverage/lcov-report/lib/index.html b/node_modules/tmp/coverage/lcov-report/lib/index.html
deleted file mode 100644
index ee405aeac..000000000
--- a/node_modules/tmp/coverage/lcov-report/lib/index.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
- <title>Code coverage report for lib/</title>
- <meta charset="utf-8" />
- <link rel="stylesheet" href="../prettify.css" />
- <link rel="stylesheet" href="../base.css" />
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../sort-arrow-sprite.png);
- }
- </style>
-</head>
-<body>
-<div class='wrapper'>
- <div class='pad1'>
- <h1>
- <a href="../index.html">all files</a> lib/
- </h1>
- <div class='clearfix'>
- <div class='fl pad1y space-right2'>
- <span class="strong">74.67% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>112/150</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">65.96% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>62/94</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">81.48% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>22/27</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">76.92% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>110/143</span>
- </div>
- </div>
- </div>
- <div class='status-line medium'></div>
-<div class="pad1">
-<table class="coverage-summary">
-<thead>
-<tr>
- <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
- <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
- <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
- <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
- <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
- <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
- <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
-</tr>
-</thead>
-<tbody><tr>
- <td class="file medium" data-value="tmp.js"><a href="tmp.js.html">tmp.js</a></td>
- <td data-value="74.67" class="pic medium"><div class="chart"><div class="cover-fill" style="width: 74%;"></div><div class="cover-empty" style="width:26%;"></div></div></td>
- <td data-value="74.67" class="pct medium">74.67%</td>
- <td data-value="150" class="abs medium">112/150</td>
- <td data-value="65.96" class="pct medium">65.96%</td>
- <td data-value="94" class="abs medium">62/94</td>
- <td data-value="81.48" class="pct high">81.48%</td>
- <td data-value="27" class="abs high">22/27</td>
- <td data-value="76.92" class="pct medium">76.92%</td>
- <td data-value="143" class="abs medium">110/143</td>
- </tr>
-
-</tbody>
-</table>
-</div><div class='push'></div><!-- for sticky footer -->
-</div><!-- /wrapper -->
-<div class='footer quiet pad2 space-top1 center small'>
- Code coverage
- generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Sep 20 2016 12:42:12 GMT+0200 (CEST)
-</div>
-</div>
-<script src="../prettify.js"></script>
-<script>
-window.onload = function () {
- if (typeof prettyPrint === 'function') {
- prettyPrint();
- }
-};
-</script>
-<script src="../sorter.js"></script>
-</body>
-</html>
diff --git a/node_modules/tmp/coverage/lcov-report/lib/tmp.js.html b/node_modules/tmp/coverage/lcov-report/lib/tmp.js.html
deleted file mode 100644
index 8d0fa2b1b..000000000
--- a/node_modules/tmp/coverage/lcov-report/lib/tmp.js.html
+++ /dev/null
@@ -1,1448 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
- <title>Code coverage report for lib/tmp.js</title>
- <meta charset="utf-8" />
- <link rel="stylesheet" href="../prettify.css" />
- <link rel="stylesheet" href="../base.css" />
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../sort-arrow-sprite.png);
- }
- </style>
-</head>
-<body>
-<div class='wrapper'>
- <div class='pad1'>
- <h1>
- <a href="../index.html">all files</a> / <a href="index.html">lib/</a> tmp.js
- </h1>
- <div class='clearfix'>
- <div class='fl pad1y space-right2'>
- <span class="strong">74.67% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>112/150</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">65.96% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>62/94</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">81.48% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>22/27</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">76.92% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>110/143</span>
- </div>
- </div>
- </div>
- <div class='status-line medium'></div>
-<pre><table class="coverage">
-<tr><td class="line-count quiet">1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">33×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">33×</span>
-<span class="cline-any cline-yes">33×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">33×</span>
-<span class="cline-any cline-yes">366×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">33×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">9×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">79×</span>
-<span class="cline-any cline-yes">5×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">5×</span>
-<span class="cline-any cline-yes">5×</span>
-<span class="cline-any cline-yes">74×</span>
-<span class="cline-any cline-yes">4×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">79×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">37×</span>
-<span class="cline-any cline-yes">4×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">33×</span>
-<span class="cline-any cline-yes">5×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">28×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">28×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">25×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">25×</span>
-<span class="cline-any cline-yes">4×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">21×</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">21×</span>
-<span class="cline-any cline-yes">21×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">21×</span>
-<span class="cline-any cline-yes">21×</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">21×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">18×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">18×</span>
-<span class="cline-any cline-yes">2×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">16×</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">16×</span>
-<span class="cline-any cline-yes">16×</span>
-<span class="cline-any cline-yes">16×</span>
-<span class="cline-any cline-yes">16×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">16×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">9×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">9×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">9×</span>
-<span class="cline-any cline-yes">9×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">8×</span>
-<span class="cline-any cline-yes">8×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">8×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">9×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">9×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">9×</span>
-<span class="cline-any cline-yes">8×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">8×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">9×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">9×</span>
-<span class="cline-any cline-yes">9×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">8×</span>
-<span class="cline-any cline-yes">8×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">8×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">9×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">9×</span>
-<span class="cline-any cline-yes">8×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">8×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">16×</span>
-<span class="cline-any cline-yes">2×</span>
-<span class="cline-any cline-yes">2×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">2×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">16×</span>
-<span class="cline-any cline-yes">16×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">16×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">16×</span>
-<span class="cline-any cline-yes">16×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">16×</span>
-<span class="cline-any cline-yes">16×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">16×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">32×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">32×</span>
-<span class="cline-any cline-yes">5×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">5×</span>
-<span class="cline-any cline-yes">5×</span>
-<span class="cline-any cline-yes">5×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">5×</span>
-<span class="cline-any cline-yes">5×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">3×</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-yes">1×</span>
-<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*!
- * Tmp
- *
- * Copyright (c) 2011-2015 KARASZI Istvan &lt;github@spam.raszi.hu&gt;
- *
- * MIT Licensed
- */
-&nbsp;
-/**
- * Module dependencies.
- */
-var
- fs = require('fs'),
- path = require('path'),
- crypto = require('crypto'),
- tmpDir = require('os-tmpdir'),
- _c = require('constants');
-&nbsp;
-&nbsp;
-/**
- * The working inner variables.
- */
-var
- // store the actual TMP directory
- _TMP = tmpDir(),
-&nbsp;
- // the random characters to choose from
- RANDOM_CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
-&nbsp;
- TEMPLATE_PATTERN = /XXXXXX/,
-&nbsp;
- DEFAULT_TRIES = 3,
-&nbsp;
- CREATE_FLAGS = _c.O_CREAT | _c.O_EXCL | _c.O_RDWR,
-&nbsp;
- DIR_MODE = 448 /* 0700 */,
- FILE_MODE = 384 /* 0600 */,
-&nbsp;
- // this will hold the objects need to be removed on exit
- _removeObjects = [],
-&nbsp;
- _gracefulCleanup = false,
- _uncaughtException = false;
-&nbsp;
-/**
- * Random name generator based on crypto.
- * Adapted from http://blog.tompawlak.org/how-to-generate-random-values-nodejs-javascript
- *
- * @param {Number} howMany
- * @return {String}
- * @api private
- */
-function _randomChars(howMany) {
- var
- value = [],
- rnd = null;
-&nbsp;
- // make sure that we do not fail because we ran out of entropy
- try {
- rnd = crypto.randomBytes(howMany);
- } catch (e) {
-<span class="cstat-no" title="statement not covered" > rnd = crypto.pseudoRandomBytes(howMany);</span>
- }
-&nbsp;
- for (var i = 0; i &lt; howMany; i++) {
- value.push(RANDOM_CHARS[rnd[i] % RANDOM_CHARS.length]);
- }
-&nbsp;
- return value.join('');
-}
-&nbsp;
-/**
- * Checks whether the `obj` parameter is defined or not.
- *
- * @param {Object} obj
- * @return {Boolean}
- * @api private
- */
-function _isUndefined(obj) {
- return typeof obj === 'undefined';
-}
-&nbsp;
-/**
- * Parses the function arguments.
- *
- * This function helps to have optional arguments.
- *
- * @param {Object} options
- * @param {Function} callback
- * @api private
- */
-function _parseArguments(options, callback) {
- if (typeof options == 'function') {
- var
- tmp = options;
- options = callback || {};
- callback = tmp;
- } else if (typeof options == 'undefined') {
- options = {};
- }
-&nbsp;
- return [options, callback];
-}
-&nbsp;
-/**
- * Generates a new temporary name.
- *
- * @param {Object} opts
- * @returns {String}
- * @api private
- */
-function _generateTmpName(opts) {
- if (opts.name) {
- return path.join(opts.dir || _TMP, opts.name);
- }
-&nbsp;
- // mkstemps like template
- if (opts.template) {
- return opts.template.replace(TEMPLATE_PATTERN, _randomChars(6));
- }
-&nbsp;
- // prefix and postfix
- var name = [
- opts.prefix || 'tmp-',
- process.pid,
- _randomChars(12),
- opts.postfix || ''
- ].join('');
-&nbsp;
- return path.join(opts.dir || _TMP, name);
-}
-&nbsp;
-/**
- * Gets a temporary file name.
- *
- * @param {Object} options
- * @param {Function} callback
- * @api private
- */
-function _getTmpName(options, callback) {
- var
- args = _parseArguments(options, callback),
- opts = args[0],
- cb = args[1],
- tries = opts.tries || DEFAULT_TRIES;
-&nbsp;
- if (isNaN(tries) || tries &lt; 0)
- return cb(new Error('Invalid tries'));
-&nbsp;
- <span class="missing-if-branch" title="if path not taken" >I</span>if (opts.template &amp;&amp; !opts.template.match(TEMPLATE_PATTERN))
-<span class="cstat-no" title="statement not covered" > return cb(new Error('Invalid template provided'));</span>
-&nbsp;
- (function _getUniqueName() {
- var name = _generateTmpName(opts);
-&nbsp;
- // check whether the path exists then retry if needed
- fs.stat(name, function (err) {
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!err) {
-<span class="cstat-no" title="statement not covered" > if (tries-- &gt; 0) <span class="cstat-no" title="statement not covered" >return _getUniqueName();</span></span>
-&nbsp;
-<span class="cstat-no" title="statement not covered" > return cb(new Error('Could not get a unique tmp filename, max tries reached ' + name));</span>
- }
-&nbsp;
- cb(null, name);
- });
- }());
-}
-&nbsp;
-/**
- * Synchronous version of _getTmpName.
- *
- * @param {Object} options
- * @returns {String}
- * @api private
- */
-function _getTmpNameSync(options) {
- var
- args = _parseArguments(options),
- opts = args[0],
- tries = opts.tries || DEFAULT_TRIES;
-&nbsp;
- if (isNaN(tries) || tries &lt; 0)
- throw new Error('Invalid tries');
-&nbsp;
- <span class="missing-if-branch" title="if path not taken" >I</span>if (opts.template &amp;&amp; !opts.template.match(TEMPLATE_PATTERN))
-<span class="cstat-no" title="statement not covered" > throw new Error('Invalid template provided');</span>
-&nbsp;
- do {
- var name = _generateTmpName(opts);
- try {
- fs.statSync(name);
- } catch (e) {
- return name;
- }
- } while (tries-- &gt; 0);
-&nbsp;
-<span class="cstat-no" title="statement not covered" > throw new Error('Could not get a unique tmp filename, max tries reached');</span>
-}
-&nbsp;
-/**
- * Creates and opens a temporary file.
- *
- * @param {Object} options
- * @param {Function} callback
- * @api public
- */
-function _createTmpFile(options, callback) {
- var
- args = _parseArguments(options, callback),
- opts = args[0],
- cb = args[1];
-&nbsp;
- opts.postfix = (_isUndefined(opts.postfix)) ? '.tmp' : opts.postfix;
-&nbsp;
- // gets a temporary filename
- _getTmpName(opts, function _tmpNameCreated(err, name) {
- if (err) return cb(err);
-&nbsp;
- // create and open the file
- fs.open(name, CREATE_FLAGS, opts.mode || FILE_MODE, function _fileCreated(err, fd) {
- <span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return cb(err);</span>
-&nbsp;
- cb(null, name, fd, _prepareTmpFileRemoveCallback(name, fd, opts));
- });
- });
-}
-&nbsp;
-/**
- * Synchronous version of _createTmpFile.
- *
- * @param {Object} options
- * @returns {Object} object consists of name, fd and removeCallback
- * @api private
- */
-function _createTmpFileSync(options) {
- var
- args = _parseArguments(options),
- opts = args[0];
-&nbsp;
- opts.postfix = opts.postfix || '.tmp';
-&nbsp;
- var name = _getTmpNameSync(opts);
- var fd = fs.openSync(name, CREATE_FLAGS, opts.mode || FILE_MODE);
-&nbsp;
- return {
- name : name,
- fd : fd,
- removeCallback : _prepareTmpFileRemoveCallback(name, fd, opts)
- };
-}
-&nbsp;
-/**
- * Removes files and folders in a directory recursively.
- *
- * @param {String} root
- * @api private
- */
-<span class="fstat-no" title="function not covered" >function _rmdirRecursiveSync(root) {</span>
-<span class="cstat-no" title="statement not covered" > var dirs = [root];</span>
-&nbsp;
-<span class="cstat-no" title="statement not covered" > do {</span>
-<span class="cstat-no" title="statement not covered" > var</span>
- dir = dirs.pop(),
- deferred = false,
- files = fs.readdirSync(dir);
-&nbsp;
-<span class="cstat-no" title="statement not covered" > for (var i = 0, length = files.length; i &lt; length; i++) {</span>
-<span class="cstat-no" title="statement not covered" > var</span>
- file = path.join(dir, files[i]),
- stat = fs.lstatSync(file); // lstat so we don't recurse into symlinked directories
-&nbsp;
-<span class="cstat-no" title="statement not covered" > if (stat.isDirectory()) {</span>
-<span class="cstat-no" title="statement not covered" > if (!deferred) {</span>
-<span class="cstat-no" title="statement not covered" > deferred = true;</span>
-<span class="cstat-no" title="statement not covered" > dirs.push(dir);</span>
- }
-<span class="cstat-no" title="statement not covered" > dirs.push(file);</span>
- } else {
-<span class="cstat-no" title="statement not covered" > fs.unlinkSync(file);</span>
- }
- }
-&nbsp;
-<span class="cstat-no" title="statement not covered" > if (!deferred) {</span>
-<span class="cstat-no" title="statement not covered" > fs.rmdirSync(dir);</span>
- }
- } while (dirs.length !== 0);
-}
-&nbsp;
-/**
- * Creates a temporary directory.
- *
- * @param {Object} options
- * @param {Function} callback
- * @api public
- */
-function _createTmpDir(options, callback) {
- var
- args = _parseArguments(options, callback),
- opts = args[0],
- cb = args[1];
-&nbsp;
- // gets a temporary filename
- _getTmpName(opts, function _tmpNameCreated(err, name) {
- if (err) return cb(err);
-&nbsp;
- // create the directory
- fs.mkdir(name, opts.mode || DIR_MODE, function _dirCreated(err) {
- <span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return cb(err);</span>
-&nbsp;
- cb(null, name, _prepareTmpDirRemoveCallback(name, opts));
- });
- });
-}
-&nbsp;
-/**
- * Synchronous version of _createTmpDir.
- *
- * @param {Object} options
- * @returns {Object} object consists of name and removeCallback
- * @api private
- */
-function _createTmpDirSync(options) {
- var
- args = _parseArguments(options),
- opts = args[0];
-&nbsp;
- var name = _getTmpNameSync(opts);
- fs.mkdirSync(name, opts.mode || DIR_MODE);
-&nbsp;
- return {
- name : name,
- removeCallback : _prepareTmpDirRemoveCallback(name, opts)
- };
-}
-&nbsp;
-/**
- * Prepares the callback for removal of the temporary file.
- *
- * @param {String} name
- * @param {int} fd
- * @param {Object} opts
- * @api private
- * @returns {Function} the callback
- */
-function _prepareTmpFileRemoveCallback(name, fd, opts) {
- var removeCallback = _prepareRemoveCallback(function _removeCallback(fdPath) {
- try {
- fs.closeSync(fdPath[0]);
- }
- catch (e) {
- // under some node/windows related circumstances, a temporary file
- // may have not be created as expected or the file was already closed
- // by the user, in which case we will simply ignore the error
-<span class="cstat-no" title="statement not covered" > if (e.errno != -_c.EBADF &amp;&amp; e.errno != -_c.ENOENT) {</span>
- // reraise any unanticipated error
-<span class="cstat-no" title="statement not covered" > throw e;</span>
- }
- }
- fs.unlinkSync(fdPath[1]);
- }, [fd, name]);
-&nbsp;
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!opts.keep) {
- _removeObjects.unshift(removeCallback);
- }
-&nbsp;
- return removeCallback;
-}
-&nbsp;
-/**
- * Prepares the callback for removal of the temporary directory.
- *
- * @param {String} name
- * @param {Object} opts
- * @returns {Function} the callback
- * @api private
- */
-function _prepareTmpDirRemoveCallback(name, opts) {
- var removeFunction = opts.unsafeCleanup ? <span class="branch-0 cbranch-no" title="branch not covered" >_rmdirRecursiveSync </span>: fs.rmdirSync.bind(fs);
- var removeCallback = _prepareRemoveCallback(removeFunction, name);
-&nbsp;
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!opts.keep) {
- _removeObjects.unshift(removeCallback);
- }
-&nbsp;
- return removeCallback;
-}
-&nbsp;
-/**
- * Creates a guarded function wrapping the removeFunction call.
- *
- * @param {Function} removeFunction
- * @param {Object} arg
- * @returns {Function}
- * @api private
- */
-function _prepareRemoveCallback(removeFunction, arg) {
- var called = false;
-&nbsp;
- return function _cleanupCallback() {
- <span class="missing-if-branch" title="if path not taken" >I</span>if (called) <span class="cstat-no" title="statement not covered" >return;</span>
-&nbsp;
- var index = _removeObjects.indexOf(_cleanupCallback);
- <span class="missing-if-branch" title="else path not taken" >E</span>if (index &gt;= 0) {
- _removeObjects.splice(index, 1);
- }
-&nbsp;
- called = true;
- removeFunction(arg);
- };
-}
-&nbsp;
-/**
- * The garbage collector.
- *
- * @api private
- */
-<span class="fstat-no" title="function not covered" >function _garbageCollector() {</span>
-<span class="cstat-no" title="statement not covered" > if (_uncaughtException &amp;&amp; !_gracefulCleanup) {</span>
-<span class="cstat-no" title="statement not covered" > return;</span>
- }
-&nbsp;
-<span class="cstat-no" title="statement not covered" > for (var i = 0, length = _removeObjects.length; i &lt; length; i++) {</span>
-<span class="cstat-no" title="statement not covered" > try {</span>
-<span class="cstat-no" title="statement not covered" > _removeObjects[i].call(null);</span>
- } catch (e) {
- // already removed?
- }
- }
-}
-&nbsp;
-<span class="fstat-no" title="function not covered" >function _setGracefulCleanup() {</span>
-<span class="cstat-no" title="statement not covered" > _gracefulCleanup = true;</span>
-}
-&nbsp;
-var version = process.versions.node.split('.').map(function (value) {
- return parseInt(value, 10);
-});
-&nbsp;
-<span class="missing-if-branch" title="if path not taken" >I</span>if (version[0] === 0 &amp;&amp; (<span class="branch-1 cbranch-no" title="branch not covered" >version[1] &lt; 9 </span>|| <span class="branch-2 cbranch-no" title="branch not covered" >version[1] === 9 </span>&amp;&amp; <span class="branch-3 cbranch-no" title="branch not covered" >version[2] &lt; 5)</span>) {
-<span class="cstat-no" title="statement not covered" > process.addListener('uncaughtException', <span class="fstat-no" title="function not covered" >function _uncaughtExceptionThrown(err) {</span></span>
-<span class="cstat-no" title="statement not covered" > _uncaughtException = true;</span>
-<span class="cstat-no" title="statement not covered" > _garbageCollector();</span>
-&nbsp;
-<span class="cstat-no" title="statement not covered" > throw err;</span>
- });
-}
-&nbsp;
-process.addListener('exit', <span class="fstat-no" title="function not covered" >function _exit(code) {</span>
-<span class="cstat-no" title="statement not covered" > if (code) <span class="cstat-no" title="statement not covered" >_uncaughtException = true;</span></span>
-<span class="cstat-no" title="statement not covered" > _garbageCollector();</span>
-});
-&nbsp;
-// exporting all the needed methods
-module.exports.tmpdir = _TMP;
-module.exports.dir = _createTmpDir;
-module.exports.dirSync = _createTmpDirSync;
-module.exports.file = _createTmpFile;
-module.exports.fileSync = _createTmpFileSync;
-module.exports.tmpName = _getTmpName;
-module.exports.tmpNameSync = _getTmpNameSync;
-module.exports.setGracefulCleanup = _setGracefulCleanup;
-&nbsp;</pre></td></tr>
-</table></pre>
-<div class='push'></div><!-- for sticky footer -->
-</div><!-- /wrapper -->
-<div class='footer quiet pad2 space-top1 center small'>
- Code coverage
- generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Sep 20 2016 12:42:12 GMT+0200 (CEST)
-</div>
-</div>
-<script src="../prettify.js"></script>
-<script>
-window.onload = function () {
- if (typeof prettyPrint === 'function') {
- prettyPrint();
- }
-};
-</script>
-<script src="../sorter.js"></script>
-</body>
-</html>
diff --git a/node_modules/tmp/coverage/lcov-report/prettify.css b/node_modules/tmp/coverage/lcov-report/prettify.css
deleted file mode 100644
index b317a7cda..000000000
--- a/node_modules/tmp/coverage/lcov-report/prettify.css
+++ /dev/null
@@ -1 +0,0 @@
-.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
diff --git a/node_modules/tmp/coverage/lcov-report/prettify.js b/node_modules/tmp/coverage/lcov-report/prettify.js
deleted file mode 100644
index ef51e0386..000000000
--- a/node_modules/tmp/coverage/lcov-report/prettify.js
+++ /dev/null
@@ -1 +0,0 @@
-window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]);
diff --git a/node_modules/tmp/coverage/lcov-report/sort-arrow-sprite.png b/node_modules/tmp/coverage/lcov-report/sort-arrow-sprite.png
deleted file mode 100644
index 03f704a60..000000000
--- a/node_modules/tmp/coverage/lcov-report/sort-arrow-sprite.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/tmp/coverage/lcov-report/sorter.js b/node_modules/tmp/coverage/lcov-report/sorter.js
deleted file mode 100644
index 6c5034e40..000000000
--- a/node_modules/tmp/coverage/lcov-report/sorter.js
+++ /dev/null
@@ -1,158 +0,0 @@
-var addSorting = (function () {
- "use strict";
- var cols,
- currentSort = {
- index: 0,
- desc: false
- };
-
- // returns the summary table element
- function getTable() { return document.querySelector('.coverage-summary'); }
- // returns the thead element of the summary table
- function getTableHeader() { return getTable().querySelector('thead tr'); }
- // returns the tbody element of the summary table
- function getTableBody() { return getTable().querySelector('tbody'); }
- // returns the th element for nth column
- function getNthColumn(n) { return getTableHeader().querySelectorAll('th')[n]; }
-
- // loads all columns
- function loadColumns() {
- var colNodes = getTableHeader().querySelectorAll('th'),
- colNode,
- cols = [],
- col,
- i;
-
- for (i = 0; i < colNodes.length; i += 1) {
- colNode = colNodes[i];
- col = {
- key: colNode.getAttribute('data-col'),
- sortable: !colNode.getAttribute('data-nosort'),
- type: colNode.getAttribute('data-type') || 'string'
- };
- cols.push(col);
- if (col.sortable) {
- col.defaultDescSort = col.type === 'number';
- colNode.innerHTML = colNode.innerHTML + '<span class="sorter"></span>';
- }
- }
- return cols;
- }
- // attaches a data attribute to every tr element with an object
- // of data values keyed by column name
- function loadRowData(tableRow) {
- var tableCols = tableRow.querySelectorAll('td'),
- colNode,
- col,
- data = {},
- i,
- val;
- for (i = 0; i < tableCols.length; i += 1) {
- colNode = tableCols[i];
- col = cols[i];
- val = colNode.getAttribute('data-value');
- if (col.type === 'number') {
- val = Number(val);
- }
- data[col.key] = val;
- }
- return data;
- }
- // loads all row data
- function loadData() {
- var rows = getTableBody().querySelectorAll('tr'),
- i;
-
- for (i = 0; i < rows.length; i += 1) {
- rows[i].data = loadRowData(rows[i]);
- }
- }
- // sorts the table using the data for the ith column
- function sortByIndex(index, desc) {
- var key = cols[index].key,
- sorter = function (a, b) {
- a = a.data[key];
- b = b.data[key];
- return a < b ? -1 : a > b ? 1 : 0;
- },
- finalSorter = sorter,
- tableBody = document.querySelector('.coverage-summary tbody'),
- rowNodes = tableBody.querySelectorAll('tr'),
- rows = [],
- i;
-
- if (desc) {
- finalSorter = function (a, b) {
- return -1 * sorter(a, b);
- };
- }
-
- for (i = 0; i < rowNodes.length; i += 1) {
- rows.push(rowNodes[i]);
- tableBody.removeChild(rowNodes[i]);
- }
-
- rows.sort(finalSorter);
-
- for (i = 0; i < rows.length; i += 1) {
- tableBody.appendChild(rows[i]);
- }
- }
- // removes sort indicators for current column being sorted
- function removeSortIndicators() {
- var col = getNthColumn(currentSort.index),
- cls = col.className;
-
- cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '');
- col.className = cls;
- }
- // adds sort indicators for current column being sorted
- function addSortIndicators() {
- getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted';
- }
- // adds event listeners for all sorter widgets
- function enableUI() {
- var i,
- el,
- ithSorter = function ithSorter(i) {
- var col = cols[i];
-
- return function () {
- var desc = col.defaultDescSort;
-
- if (currentSort.index === i) {
- desc = !currentSort.desc;
- }
- sortByIndex(i, desc);
- removeSortIndicators();
- currentSort.index = i;
- currentSort.desc = desc;
- addSortIndicators();
- };
- };
- for (i =0 ; i < cols.length; i += 1) {
- if (cols[i].sortable) {
- // add the click event handler on the th so users
- // dont have to click on those tiny arrows
- el = getNthColumn(i).querySelector('.sorter').parentElement;
- if (el.addEventListener) {
- el.addEventListener('click', ithSorter(i));
- } else {
- el.attachEvent('onclick', ithSorter(i));
- }
- }
- }
- }
- // adds sorting functionality to the UI
- return function () {
- if (!getTable()) {
- return;
- }
- cols = loadColumns();
- loadData(cols);
- addSortIndicators();
- enableUI();
- };
-})();
-
-window.addEventListener('load', addSorting);
diff --git a/node_modules/tmp/coverage/lcov.info b/node_modules/tmp/coverage/lcov.info
deleted file mode 100644
index 1f185c309..000000000
--- a/node_modules/tmp/coverage/lcov.info
+++ /dev/null
@@ -1,300 +0,0 @@
-TN:
-SF:/Users/ikaraszi/_vc/github/node-tmp/lib/tmp.js
-FN:53,_randomChars
-FN:79,_isUndefined
-FN:92,_parseArguments
-FN:112,_generateTmpName
-FN:140,_getTmpName
-FN:153,_getUniqueName
-FN:157,(anonymous_7)
-FN:176,_getTmpNameSync
-FN:207,_createTmpFile
-FN:216,_tmpNameCreated
-FN:220,_fileCreated
-FN:235,_createTmpFileSync
-FN:258,_rmdirRecursiveSync
-FN:296,_createTmpDir
-FN:303,_tmpNameCreated
-FN:307,_dirCreated
-FN:322,_createTmpDirSync
-FN:345,_prepareTmpFileRemoveCallback
-FN:346,_removeCallback
-FN:377,_prepareTmpDirRemoveCallback
-FN:396,_prepareRemoveCallback
-FN:399,_cleanupCallback
-FN:417,_garbageCollector
-FN:431,_setGracefulCleanup
-FN:435,(anonymous_25)
-FN:440,_uncaughtExceptionThrown
-FN:448,_exit
-FNF:27
-FNH:22
-FNDA:33,_randomChars
-FNDA:9,_isUndefined
-FNDA:79,_parseArguments
-FNDA:37,_generateTmpName
-FNDA:25,_getTmpName
-FNDA:21,_getUniqueName
-FNDA:21,(anonymous_7)
-FNDA:18,_getTmpNameSync
-FNDA:9,_createTmpFile
-FNDA:9,_tmpNameCreated
-FNDA:8,_fileCreated
-FNDA:9,_createTmpFileSync
-FNDA:0,_rmdirRecursiveSync
-FNDA:9,_createTmpDir
-FNDA:9,_tmpNameCreated
-FNDA:8,_dirCreated
-FNDA:9,_createTmpDirSync
-FNDA:16,_prepareTmpFileRemoveCallback
-FNDA:2,_removeCallback
-FNDA:16,_prepareTmpDirRemoveCallback
-FNDA:32,_prepareRemoveCallback
-FNDA:5,_cleanupCallback
-FNDA:0,_garbageCollector
-FNDA:0,_setGracefulCleanup
-FNDA:3,(anonymous_25)
-FNDA:0,_uncaughtExceptionThrown
-FNDA:0,_exit
-DA:12,1
-DA:23,1
-DA:53,1
-DA:54,33
-DA:59,33
-DA:60,33
-DA:62,0
-DA:65,33
-DA:66,366
-DA:69,33
-DA:79,1
-DA:80,9
-DA:92,1
-DA:93,79
-DA:94,5
-DA:96,5
-DA:97,5
-DA:98,74
-DA:99,4
-DA:102,79
-DA:112,1
-DA:113,37
-DA:114,4
-DA:118,33
-DA:119,5
-DA:123,28
-DA:130,28
-DA:140,1
-DA:141,25
-DA:147,25
-DA:148,4
-DA:150,21
-DA:151,0
-DA:153,21
-DA:154,21
-DA:157,21
-DA:158,21
-DA:159,0
-DA:161,0
-DA:164,21
-DA:176,1
-DA:177,18
-DA:182,18
-DA:183,2
-DA:185,16
-DA:186,0
-DA:188,16
-DA:189,16
-DA:190,16
-DA:191,16
-DA:193,16
-DA:197,0
-DA:207,1
-DA:208,9
-DA:213,9
-DA:216,9
-DA:217,9
-DA:220,8
-DA:221,8
-DA:223,8
-DA:235,1
-DA:236,9
-DA:240,9
-DA:242,9
-DA:243,8
-DA:245,8
-DA:258,1
-DA:259,0
-DA:261,0
-DA:262,0
-DA:267,0
-DA:268,0
-DA:272,0
-DA:273,0
-DA:274,0
-DA:275,0
-DA:277,0
-DA:279,0
-DA:283,0
-DA:284,0
-DA:296,1
-DA:297,9
-DA:303,9
-DA:304,9
-DA:307,8
-DA:308,8
-DA:310,8
-DA:322,1
-DA:323,9
-DA:327,9
-DA:328,8
-DA:330,8
-DA:345,1
-DA:346,16
-DA:347,2
-DA:348,2
-DA:354,0
-DA:356,0
-DA:359,2
-DA:362,16
-DA:363,16
-DA:366,16
-DA:377,1
-DA:378,16
-DA:379,16
-DA:381,16
-DA:382,16
-DA:385,16
-DA:396,1
-DA:397,32
-DA:399,32
-DA:400,5
-DA:402,5
-DA:403,5
-DA:404,5
-DA:407,5
-DA:408,5
-DA:417,1
-DA:418,0
-DA:419,0
-DA:422,0
-DA:423,0
-DA:424,0
-DA:431,1
-DA:432,0
-DA:435,1
-DA:436,3
-DA:439,1
-DA:440,0
-DA:441,0
-DA:442,0
-DA:444,0
-DA:448,1
-DA:449,0
-DA:450,0
-DA:454,1
-DA:455,1
-DA:456,1
-DA:457,1
-DA:458,1
-DA:459,1
-DA:460,1
-DA:461,1
-LF:143
-LH:110
-BRDA:93,1,0,5
-BRDA:93,1,1,74
-BRDA:96,2,0,5
-BRDA:96,2,1,5
-BRDA:98,3,0,4
-BRDA:98,3,1,70
-BRDA:113,4,0,4
-BRDA:113,4,1,33
-BRDA:114,5,0,4
-BRDA:114,5,1,4
-BRDA:118,6,0,5
-BRDA:118,6,1,28
-BRDA:124,7,0,28
-BRDA:124,7,1,14
-BRDA:127,8,0,28
-BRDA:127,8,1,8
-BRDA:130,9,0,28
-BRDA:130,9,1,28
-BRDA:145,10,0,25
-BRDA:145,10,1,20
-BRDA:147,11,0,4
-BRDA:147,11,1,21
-BRDA:147,12,0,25
-BRDA:147,12,1,24
-BRDA:150,13,0,0
-BRDA:150,13,1,21
-BRDA:150,14,0,21
-BRDA:150,14,1,3
-BRDA:158,15,0,0
-BRDA:158,15,1,21
-BRDA:159,16,0,0
-BRDA:159,16,1,0
-BRDA:180,17,0,18
-BRDA:180,17,1,16
-BRDA:182,18,0,2
-BRDA:182,18,1,16
-BRDA:182,19,0,18
-BRDA:182,19,1,18
-BRDA:185,20,0,0
-BRDA:185,20,1,16
-BRDA:185,21,0,16
-BRDA:185,21,1,2
-BRDA:213,22,0,6
-BRDA:213,22,1,3
-BRDA:217,23,0,1
-BRDA:217,23,1,8
-BRDA:220,24,0,8
-BRDA:220,24,1,6
-BRDA:221,25,0,0
-BRDA:221,25,1,8
-BRDA:240,26,0,9
-BRDA:240,26,1,6
-BRDA:243,27,0,8
-BRDA:243,27,1,6
-BRDA:272,28,0,0
-BRDA:272,28,1,0
-BRDA:273,29,0,0
-BRDA:273,29,1,0
-BRDA:283,30,0,0
-BRDA:283,30,1,0
-BRDA:304,31,0,1
-BRDA:304,31,1,8
-BRDA:307,32,0,8
-BRDA:307,32,1,6
-BRDA:308,33,0,0
-BRDA:308,33,1,8
-BRDA:328,34,0,8
-BRDA:328,34,1,6
-BRDA:354,35,0,0
-BRDA:354,35,1,0
-BRDA:354,36,0,0
-BRDA:354,36,1,0
-BRDA:362,37,0,16
-BRDA:362,37,1,0
-BRDA:378,38,0,0
-BRDA:378,38,1,16
-BRDA:381,39,0,16
-BRDA:381,39,1,0
-BRDA:400,40,0,0
-BRDA:400,40,1,5
-BRDA:403,41,0,5
-BRDA:403,41,1,0
-BRDA:418,42,0,0
-BRDA:418,42,1,0
-BRDA:418,43,0,0
-BRDA:418,43,1,0
-BRDA:439,44,0,0
-BRDA:439,44,1,1
-BRDA:439,45,0,1
-BRDA:439,45,1,0
-BRDA:439,45,2,0
-BRDA:439,45,3,0
-BRDA:449,46,0,0
-BRDA:449,46,1,0
-BRF:94
-BRH:62
-end_of_record
diff --git a/node_modules/tmp/lib/tmp.js b/node_modules/tmp/lib/tmp.js
deleted file mode 100644
index bb83c7ec3..000000000
--- a/node_modules/tmp/lib/tmp.js
+++ /dev/null
@@ -1,463 +0,0 @@
-/*!
- * Tmp
- *
- * Copyright (c) 2011-2015 KARASZI Istvan <github@spam.raszi.hu>
- *
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-var
- fs = require('fs'),
- path = require('path'),
- crypto = require('crypto'),
- tmpDir = require('os-tmpdir'),
- _c = process.binding('constants');
-
-
-/**
- * The working inner variables.
- */
-var
- // store the actual TMP directory
- _TMP = tmpDir(),
-
- // the random characters to choose from
- RANDOM_CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
-
- TEMPLATE_PATTERN = /XXXXXX/,
-
- DEFAULT_TRIES = 3,
-
- CREATE_FLAGS = (_c.O_CREAT || _c.fs.O_CREAT) | (_c.O_EXCL || _c.fs.O_EXCL) | (_c.O_RDWR || _c.fs.O_RDWR),
-
- DIR_MODE = 448 /* 0700 */,
- FILE_MODE = 384 /* 0600 */,
-
- // this will hold the objects need to be removed on exit
- _removeObjects = [],
-
- _gracefulCleanup = false,
- _uncaughtException = false;
-
-/**
- * Random name generator based on crypto.
- * Adapted from http://blog.tompawlak.org/how-to-generate-random-values-nodejs-javascript
- *
- * @param {Number} howMany
- * @return {String}
- * @api private
- */
-function _randomChars(howMany) {
- var
- value = [],
- rnd = null;
-
- // make sure that we do not fail because we ran out of entropy
- try {
- rnd = crypto.randomBytes(howMany);
- } catch (e) {
- rnd = crypto.pseudoRandomBytes(howMany);
- }
-
- for (var i = 0; i < howMany; i++) {
- value.push(RANDOM_CHARS[rnd[i] % RANDOM_CHARS.length]);
- }
-
- return value.join('');
-}
-
-/**
- * Checks whether the `obj` parameter is defined or not.
- *
- * @param {Object} obj
- * @return {Boolean}
- * @api private
- */
-function _isUndefined(obj) {
- return typeof obj === 'undefined';
-}
-
-/**
- * Parses the function arguments.
- *
- * This function helps to have optional arguments.
- *
- * @param {Object} options
- * @param {Function} callback
- * @api private
- */
-function _parseArguments(options, callback) {
- if (typeof options == 'function') {
- var
- tmp = options,
- options = callback || {},
- callback = tmp;
- } else if (typeof options == 'undefined') {
- options = {};
- }
-
- return [options, callback];
-}
-
-/**
- * Generates a new temporary name.
- *
- * @param {Object} opts
- * @returns {String}
- * @api private
- */
-function _generateTmpName(opts) {
- if (opts.name) {
- return path.join(opts.dir || _TMP, opts.name);
- }
-
- // mkstemps like template
- if (opts.template) {
- return opts.template.replace(TEMPLATE_PATTERN, _randomChars(6));
- }
-
- // prefix and postfix
- var name = [
- opts.prefix || 'tmp-',
- process.pid,
- _randomChars(12),
- opts.postfix || ''
- ].join('');
-
- return path.join(opts.dir || _TMP, name);
-}
-
-/**
- * Gets a temporary file name.
- *
- * @param {Object} options
- * @param {Function} callback
- * @api private
- */
-function _getTmpName(options, callback) {
- var
- args = _parseArguments(options, callback),
- opts = args[0],
- cb = args[1],
- tries = opts.tries || DEFAULT_TRIES;
-
- if (isNaN(tries) || tries < 0)
- return cb(new Error('Invalid tries'));
-
- if (opts.template && !opts.template.match(TEMPLATE_PATTERN))
- return cb(new Error('Invalid template provided'));
-
- (function _getUniqueName() {
- var name = _generateTmpName(opts);
-
- // check whether the path exists then retry if needed
- fs.stat(name, function (err) {
- if (!err) {
- if (tries-- > 0) return _getUniqueName();
-
- return cb(new Error('Could not get a unique tmp filename, max tries reached ' + name));
- }
-
- cb(null, name);
- });
- }());
-}
-
-/**
- * Synchronous version of _getTmpName.
- *
- * @param {Object} options
- * @returns {String}
- * @api private
- */
-function _getTmpNameSync(options) {
- var
- args = _parseArguments(options),
- opts = args[0],
- tries = opts.tries || DEFAULT_TRIES;
-
- if (isNaN(tries) || tries < 0)
- throw new Error('Invalid tries');
-
- if (opts.template && !opts.template.match(TEMPLATE_PATTERN))
- throw new Error('Invalid template provided');
-
- do {
- var name = _generateTmpName(opts);
- try {
- fs.statSync(name);
- } catch (e) {
- return name;
- }
- } while (tries-- > 0);
-
- throw new Error('Could not get a unique tmp filename, max tries reached');
-}
-
-/**
- * Creates and opens a temporary file.
- *
- * @param {Object} options
- * @param {Function} callback
- * @api public
- */
-function _createTmpFile(options, callback) {
- var
- args = _parseArguments(options, callback),
- opts = args[0],
- cb = args[1];
-
- opts.postfix = (_isUndefined(opts.postfix)) ? '.tmp' : opts.postfix;
-
- // gets a temporary filename
- _getTmpName(opts, function _tmpNameCreated(err, name) {
- if (err) return cb(err);
-
- // create and open the file
- fs.open(name, CREATE_FLAGS, opts.mode || FILE_MODE, function _fileCreated(err, fd) {
- if (err) return cb(err);
-
- cb(null, name, fd, _prepareTmpFileRemoveCallback(name, fd, opts));
- });
- });
-}
-
-/**
- * Synchronous version of _createTmpFile.
- *
- * @param {Object} options
- * @returns {Object} object consists of name, fd and removeCallback
- * @api private
- */
-function _createTmpFileSync(options) {
- var
- args = _parseArguments(options),
- opts = args[0];
-
- opts.postfix = opts.postfix || '.tmp';
-
- var name = _getTmpNameSync(opts);
- var fd = fs.openSync(name, CREATE_FLAGS, opts.mode || FILE_MODE);
-
- return {
- name : name,
- fd : fd,
- removeCallback : _prepareTmpFileRemoveCallback(name, fd, opts)
- };
-}
-
-/**
- * Removes files and folders in a directory recursively.
- *
- * @param {String} root
- * @api private
- */
-function _rmdirRecursiveSync(root) {
- var dirs = [root];
-
- do {
- var
- dir = dirs.pop(),
- deferred = false,
- files = fs.readdirSync(dir);
-
- for (var i = 0, length = files.length; i < length; i++) {
- var
- file = path.join(dir, files[i]),
- stat = fs.lstatSync(file); // lstat so we don't recurse into symlinked directories
-
- if (stat.isDirectory()) {
- if (!deferred) {
- deferred = true;
- dirs.push(dir);
- }
- dirs.push(file);
- } else {
- fs.unlinkSync(file);
- }
- }
-
- if (!deferred) {
- fs.rmdirSync(dir);
- }
- } while (dirs.length !== 0);
-}
-
-/**
- * Creates a temporary directory.
- *
- * @param {Object} options
- * @param {Function} callback
- * @api public
- */
-function _createTmpDir(options, callback) {
- var
- args = _parseArguments(options, callback),
- opts = args[0],
- cb = args[1];
-
- // gets a temporary filename
- _getTmpName(opts, function _tmpNameCreated(err, name) {
- if (err) return cb(err);
-
- // create the directory
- fs.mkdir(name, opts.mode || DIR_MODE, function _dirCreated(err) {
- if (err) return cb(err);
-
- cb(null, name, _prepareTmpDirRemoveCallback(name, opts));
- });
- });
-}
-
-/**
- * Synchronous version of _createTmpDir.
- *
- * @param {Object} options
- * @returns {Object} object consists of name and removeCallback
- * @api private
- */
-function _createTmpDirSync(options) {
- var
- args = _parseArguments(options),
- opts = args[0];
-
- var name = _getTmpNameSync(opts);
- fs.mkdirSync(name, opts.mode || DIR_MODE);
-
- return {
- name : name,
- removeCallback : _prepareTmpDirRemoveCallback(name, opts)
- };
-}
-
-/**
- * Prepares the callback for removal of the temporary file.
- *
- * @param {String} name
- * @param {int} fd
- * @param {Object} opts
- * @api private
- * @returns {Function} the callback
- */
-function _prepareTmpFileRemoveCallback(name, fd, opts) {
- var removeCallback = _prepareRemoveCallback(function _removeCallback(fdPath) {
- try {
- fs.closeSync(fdPath[0]);
- }
- catch (e) {
- // under some node/windows related circumstances, a temporary file
- // may have not be created as expected or the file was already closed
- // by the user, in which case we will simply ignore the error
- if (e.errno != -(_c.EBADF || _c.os.errno.EBADF) && e.errno != -(_c.ENOENT || _c.os.errno.ENOENT)) {
- // reraise any unanticipated error
- throw e;
- }
- }
- fs.unlinkSync(fdPath[1]);
- }, [fd, name]);
-
- if (!opts.keep) {
- _removeObjects.unshift(removeCallback);
- }
-
- return removeCallback;
-}
-
-/**
- * Prepares the callback for removal of the temporary directory.
- *
- * @param {String} name
- * @param {Object} opts
- * @returns {Function} the callback
- * @api private
- */
-function _prepareTmpDirRemoveCallback(name, opts) {
- var removeFunction = opts.unsafeCleanup ? _rmdirRecursiveSync : fs.rmdirSync.bind(fs);
- var removeCallback = _prepareRemoveCallback(removeFunction, name);
-
- if (!opts.keep) {
- _removeObjects.unshift(removeCallback);
- }
-
- return removeCallback;
-}
-
-/**
- * Creates a guarded function wrapping the removeFunction call.
- *
- * @param {Function} removeFunction
- * @param {Object} arg
- * @returns {Function}
- * @api private
- */
-function _prepareRemoveCallback(removeFunction, arg) {
- var called = false;
-
- return function _cleanupCallback() {
- if (called) return;
-
- var index = _removeObjects.indexOf(_cleanupCallback);
- if (index >= 0) {
- _removeObjects.splice(index, 1);
- }
-
- called = true;
- removeFunction(arg);
- };
-}
-
-/**
- * The garbage collector.
- *
- * @api private
- */
-function _garbageCollector() {
- if (_uncaughtException && !_gracefulCleanup) {
- return;
- }
-
- // the function being called removes itself from _removeObjects,
- // loop until _removeObjects is empty
- while (_removeObjects.length) {
- try {
- _removeObjects[0].call(null);
- } catch (e) {
- // already removed?
- }
- }
-}
-
-function _setGracefulCleanup() {
- _gracefulCleanup = true;
-}
-
-var version = process.versions.node.split('.').map(function (value) {
- return parseInt(value, 10);
-});
-
-if (version[0] === 0 && (version[1] < 9 || version[1] === 9 && version[2] < 5)) {
- process.addListener('uncaughtException', function _uncaughtExceptionThrown(err) {
- _uncaughtException = true;
- _garbageCollector();
-
- throw err;
- });
-}
-
-process.addListener('exit', function _exit(code) {
- if (code) _uncaughtException = true;
- _garbageCollector();
-});
-
-// exporting all the needed methods
-module.exports.tmpdir = _TMP;
-module.exports.dir = _createTmpDir;
-module.exports.dirSync = _createTmpDirSync;
-module.exports.file = _createTmpFile;
-module.exports.fileSync = _createTmpFileSync;
-module.exports.tmpName = _getTmpName;
-module.exports.tmpNameSync = _getTmpNameSync;
-module.exports.setGracefulCleanup = _setGracefulCleanup;
diff --git a/node_modules/tmp/package.json b/node_modules/tmp/package.json
deleted file mode 100644
index 71f58092d..000000000
--- a/node_modules/tmp/package.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "tmp",
- "version": "0.0.30",
- "description": "Temporary file and directory creator",
- "author": "KARASZI István <github@spam.raszi.hu> (http://raszi.hu/)",
-
- "homepage": "http://github.com/raszi/node-tmp",
- "keywords": [ "temporary", "tmp", "temp", "tempdir", "tempfile", "tmpdir", "tmpfile" ],
-
- "license": "MIT",
-
- "repository": {
- "type": "git",
- "url": "git://github.com/raszi/node-tmp.git"
- },
-
- "bugs": {
- "url": "http://github.com/raszi/node-tmp/issues"
- },
-
- "main": "lib/tmp.js",
-
- "scripts": {
- "test": "vows test/*-test.js"
- },
-
- "engines": {
- "node": ">=0.4.0"
- },
-
- "dependencies": {
- "os-tmpdir": "~1.0.1"
- },
-
- "devDependencies": {
- "vows": "~0.7.0"
- }
-}
diff --git a/node_modules/tmp/run-tests b/node_modules/tmp/run-tests
deleted file mode 100755
index a377f1083..000000000
--- a/node_modules/tmp/run-tests
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-DIR="x"
-
-rm -rf ${DIR}
-mkdir ${DIR}
-TMPDIR=${DIR} npm test
diff --git a/node_modules/tmp/test/base.js b/node_modules/tmp/test/base.js
deleted file mode 100644
index a77f3a566..000000000
--- a/node_modules/tmp/test/base.js
+++ /dev/null
@@ -1,149 +0,0 @@
-var
- assert = require('assert'),
- path = require('path'),
- exec = require('child_process').exec,
- tmp = require('../lib/tmp');
-
-// make sure that we do not test spam the global tmp
-tmp.TMP_DIR = './tmp';
-
-
-function _spawnTestWithError(testFile, params, cb) {
- _spawnTest(true, testFile, params, cb);
-}
-
-function _spawnTestWithoutError(testFile, params, cb) {
- _spawnTest(false, testFile, params, cb);
-}
-
-function _spawnTest(passError, testFile, params, cb) {
- var
- node_path = process.argv[0],
- command = [ node_path, path.join(__dirname, testFile) ].concat(params).join(' ');
-
- exec(command, function _execDone(err, stdout, stderr) {
- if (passError) {
- if (err) {
- return cb(err);
- } else if (stderr.length > 0) {
- return cb(stderr.toString());
- }
- }
-
- return cb(null, stdout.toString());
- });
-}
-
-function _testStat(stat, mode) {
- assert.equal(stat.uid, process.getuid(), 'should have the same UID');
- assert.equal(stat.gid, process.getgid(), 'should have the same GUID');
- assert.equal(stat.mode, mode);
-}
-
-function _testPrefix(prefix) {
- return function _testPrefixGenerated(err, name) {
- assert.equal(path.basename(name).slice(0, prefix.length), prefix, 'should have the provided prefix');
- };
-}
-
-function _testPrefixSync(prefix) {
- return function _testPrefixGeneratedSync(result) {
- if (result instanceof Error) {
- throw result;
- }
- _testPrefix(prefix)(null, result.name, result.fd);
- };
-}
-
-function _testPostfix(postfix) {
- return function _testPostfixGenerated(err, name) {
- assert.equal(name.slice(name.length - postfix.length, name.length), postfix, 'should have the provided postfix');
- };
-}
-
-function _testPostfixSync(postfix) {
- return function _testPostfixGeneratedSync(result) {
- if (result instanceof Error) {
- throw result;
- }
- _testPostfix(postfix)(null, result.name, result.fd);
- };
-}
-
-function _testKeep(type, keep, cb) {
- _spawnTestWithError('keep.js', [ type, keep ], cb);
-}
-
-function _testKeepSync(type, keep, cb) {
- _spawnTestWithError('keep-sync.js', [ type, keep ], cb);
-}
-
-function _testGraceful(type, graceful, cb) {
- _spawnTestWithoutError('graceful.js', [ type, graceful ], cb);
-}
-
-function _testGracefulSync(type, graceful, cb) {
- _spawnTestWithoutError('graceful-sync.js', [ type, graceful ], cb);
-}
-
-function _assertName(err, name) {
- assert.isString(name);
- assert.isNotZero(name.length, 'an empty string is not a valid name');
-}
-
-function _assertNameSync(result) {
- if (result instanceof Error) {
- throw result;
- }
- var name = typeof(result) == 'string' ? result : result.name;
- _assertName(null, name);
-}
-
-function _testName(expected){
- return function _testNameGenerated(err, name) {
- assert.equal(expected, name, 'should have the provided name');
- };
-}
-
-function _testNameSync(expected){
- return function _testNameGeneratedSync(result) {
- if (result instanceof Error) {
- throw result;
- }
- _testName(expected)(null, result.name, result.fd);
- };
-}
-
-function _testUnsafeCleanup(unsafe, cb) {
- _spawnTestWithoutError('unsafe.js', [ 'dir', unsafe ], cb);
-}
-
-function _testIssue62(cb) {
- _spawnTestWithoutError('issue62.js', [], cb);
-}
-
-function _testUnsafeCleanupSync(unsafe, cb) {
- _spawnTestWithoutError('unsafe-sync.js', [ 'dir', unsafe ], cb);
-}
-
-function _testIssue62Sync(cb) {
- _spawnTestWithoutError('issue62-sync.js', [], cb);
-}
-
-module.exports.testStat = _testStat;
-module.exports.testPrefix = _testPrefix;
-module.exports.testPrefixSync = _testPrefixSync;
-module.exports.testPostfix = _testPostfix;
-module.exports.testPostfixSync = _testPostfixSync;
-module.exports.testKeep = _testKeep;
-module.exports.testKeepSync = _testKeepSync;
-module.exports.testGraceful = _testGraceful;
-module.exports.testGracefulSync = _testGracefulSync;
-module.exports.assertName = _assertName;
-module.exports.assertNameSync = _assertNameSync;
-module.exports.testName = _testName;
-module.exports.testNameSync = _testNameSync;
-module.exports.testUnsafeCleanup = _testUnsafeCleanup;
-module.exports.testIssue62 = _testIssue62;
-module.exports.testUnsafeCleanupSync = _testUnsafeCleanupSync;
-module.exports.testIssue62Sync = _testIssue62Sync;
diff --git a/node_modules/tmp/test/dir-sync-test.js b/node_modules/tmp/test/dir-sync-test.js
deleted file mode 100644
index 091a03e58..000000000
--- a/node_modules/tmp/test/dir-sync-test.js
+++ /dev/null
@@ -1,230 +0,0 @@
-var
- vows = require('vows'),
- assert = require('assert'),
-
- path = require('path'),
- fs = require('fs'),
- existsSync = fs.existsSync || path.existsSync,
-
- tmp = require('../lib/tmp.js'),
- Test = require('./base.js');
-
-
-function _testDir(mode) {
- return function _testDirGenerated(result) {
- assert.ok(existsSync(result.name), 'should exist');
-
- var stat = fs.statSync(result.name);
- assert.ok(stat.isDirectory(), 'should be a directory');
-
- Test.testStat(stat, mode);
- };
-}
-
-vows.describe('Synchronous directory creation').addBatch({
- 'when using without parameters': {
- topic: function () {
- return tmp.dirSync();
- },
-
- 'should return with a name': Test.assertNameSync,
- 'should be a directory': _testDir(040700),
- 'should have the default prefix': Test.testPrefixSync('tmp-')
- },
-
- 'when using with prefix': {
- topic: function () {
- return tmp.dirSync({ prefix: 'something' });
- },
-
- 'should return with a name': Test.assertNameSync,
- 'should be a directory': _testDir(040700),
- 'should have the provided prefix': Test.testPrefixSync('something')
- },
-
- 'when using with postfix': {
- topic: function () {
- return tmp.dirSync({ postfix: '.txt' });
- },
-
- 'should return with a name': Test.assertNameSync,
- 'should be a directory': _testDir(040700),
- 'should have the provided postfix': Test.testPostfixSync('.txt')
- },
-
- 'when using template': {
- topic: function () {
- return tmp.dirSync({ template: path.join(tmp.tmpdir, 'clike-XXXXXX-postfix') });
- },
-
- 'should return with a name': Test.assertNameSync,
- 'should be a directory': _testDir(040700),
- 'should have the provided prefix': Test.testPrefixSync('clike-'),
- 'should have the provided postfix': Test.testPostfixSync('-postfix')
- },
-
- 'when using name': {
- topic: function () {
- return tmp.dirSync({ name: 'using-name' });
- },
-
- 'should return with a name': Test.assertNameSync,
- 'should have the provided name': Test.testNameSync(path.join(tmp.tmpdir, 'using-name')),
- 'should be a directory': function (result) {
- _testDir(040700)(result);
- result.removeCallback();
- assert.ok(!existsSync(result.name), 'Directory should be removed');
- }
- },
-
- 'when using multiple options': {
- topic: function () {
- return tmp.dirSync({ prefix: 'foo', postfix: 'bar', mode: 0750 });
- },
-
- 'should return with a name': Test.assertNameSync,
- 'should be a directory': _testDir(040750),
- 'should have the provided prefix': Test.testPrefixSync('foo'),
- 'should have the provided postfix': Test.testPostfixSync('bar')
- },
-
- 'when using multiple options and mode': {
- topic: function () {
- return tmp.dirSync({ prefix: 'complicated', postfix: 'options', mode: 0755 });
- },
-
- 'should return with a name': Test.assertNameSync,
- 'should be a directory': _testDir(040755),
- 'should have the provided prefix': Test.testPrefixSync('complicated'),
- 'should have the provided postfix': Test.testPostfixSync('options')
- },
-
- 'no tries': {
- topic: function () {
- try {
- return tmp.dirSync({ tries: -1 });
- }
- catch (e) {
- return e;
- }
- },
-
- 'should return with an error': function (topic) {
- assert.instanceOf(topic, Error);
- }
- },
-
- 'keep testing': {
- topic: function () {
- Test.testKeepSync('dir', '1', this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a dir': function (err, name) {
- _testDir(040700)({ name: name });
- fs.rmdirSync(name);
- }
- },
-
- 'unlink testing': {
- topic: function () {
- Test.testKeepSync('dir', '0', this.callback);
- },
-
- 'should not return with error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should not exist': function (err, name) {
- assert.ok(!existsSync(name), 'Directory should be removed');
- }
- },
-
- 'non graceful testing': {
- topic: function () {
- Test.testGracefulSync('dir', '0', this.callback);
- },
-
- 'should not return with error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a dir': function (err, name) {
- _testDir(040700)({ name: name });
- fs.rmdirSync(name);
- }
- },
-
- 'graceful testing': {
- topic: function () {
- Test.testGracefulSync('dir', '1', this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should not exist': function (err, name) {
- assert.ok(!existsSync(name), 'Directory should be removed');
- }
- },
-
- 'unsafeCleanup === true': {
- topic: function () {
- Test.testUnsafeCleanupSync('1', this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should not exist': function (err, name) {
- assert.ok(!existsSync(name), 'Directory should be removed');
- },
- 'should remove symlinked dir': function(err, name) {
- assert.ok(
- !existsSync(name + '/symlinkme-target'),
- 'should remove target'
- );
- },
- 'should not remove contents of symlink dir': function(err, name) {
- assert.ok(
- existsSync(__dirname + '/symlinkme/file.js'),
- 'should not remove symlinked directory\'s content'
- );
- }
- },
-
- 'unsafeCleanup === true with issue62 structure': {
- topic: function () {
- Test.testIssue62Sync(this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should not exist': function (err, name) {
- assert.ok(!existsSync(name), 'Directory should be removed');
- }
- },
-
- 'unsafeCleanup === false': {
- topic: function () {
- Test.testUnsafeCleanupSync('0', this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a directory': function (err, name) {
- _testDir(040700)({name:name});
- // make sure that everything gets cleaned up
- fs.unlinkSync(path.join(name, 'should-be-removed.file'));
- fs.unlinkSync(path.join(name, 'symlinkme-target'));
- fs.rmdirSync(name);
- }
- },
-
- 'remove callback': {
- topic: function () {
- return tmp.dirSync();
- },
-
- 'should return with a name': Test.assertNameSync,
- 'removeCallback should remove directory': function (result) {
- result.removeCallback();
- assert.ok(!existsSync(result.name), 'Directory should be removed');
- }
- }
-}).exportTo(module);
diff --git a/node_modules/tmp/test/dir-test.js b/node_modules/tmp/test/dir-test.js
deleted file mode 100644
index 9f2c282b3..000000000
--- a/node_modules/tmp/test/dir-test.js
+++ /dev/null
@@ -1,225 +0,0 @@
-var
- vows = require('vows'),
- assert = require('assert'),
-
- path = require('path'),
- fs = require('fs'),
- existsSync = fs.existsSync || path.existsSync,
-
- tmp = require('../lib/tmp.js'),
- Test = require('./base.js');
-
-
-function _testDir(mode) {
- return function _testDirGenerated(err, name) {
- assert.ok(existsSync(name), 'should exist');
-
- var stat = fs.statSync(name);
- assert.ok(stat.isDirectory(), 'should be a directory');
-
- Test.testStat(stat, mode);
- };
-}
-
-vows.describe('Directory creation').addBatch({
- 'when using without parameters': {
- topic: function () {
- tmp.dir(this.callback);
- },
-
- 'should be a directory': _testDir(040700),
- 'should have the default prefix': Test.testPrefix('tmp-')
- },
-
- 'when using with prefix': {
- topic: function () {
- tmp.dir({ prefix: 'something' }, this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a directory': _testDir(040700),
- 'should have the provided prefix': Test.testPrefix('something')
- },
-
- 'when using with postfix': {
- topic: function () {
- tmp.dir({ postfix: '.txt' }, this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a directory': _testDir(040700),
- 'should have the provided postfix': Test.testPostfix('.txt')
- },
-
- 'when using template': {
- topic: function () {
- tmp.dir({ template: path.join(tmp.tmpdir, 'clike-XXXXXX-postfix') }, this.callback);
- },
-
- 'should not return with error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a directory': _testDir(040700),
- 'should have the provided prefix': Test.testPrefix('clike-'),
- 'should have the provided postfix': Test.testPostfix('-postfix')
- },
-
- 'when using name': {
- topic: function () {
- tmp.dir({ name: 'using-name' }, this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a directory': _testDir(040700),
- 'should have the provided name': Test.testName(path.join(tmp.tmpdir, 'using-name'))
- },
-
- 'when using multiple options': {
- topic: function () {
- tmp.dir({ prefix: 'foo', postfix: 'bar', mode: 0750 }, this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a directory': _testDir(040750),
- 'should have the provided prefix': Test.testPrefix('foo'),
- 'should have the provided postfix': Test.testPostfix('bar')
- },
-
- 'when using multiple options and mode': {
- topic: function () {
- tmp.dir({ prefix: 'complicated', postfix: 'options', mode: 0755 }, this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a directory': _testDir(040755),
- 'should have the provided prefix': Test.testPrefix('complicated'),
- 'should have the provided postfix': Test.testPostfix('options')
- },
-
- 'no tries': {
- topic: function () {
- tmp.dir({ tries: -1 }, this.callback);
- },
-
- 'should return with an error': assert.isObject
- },
-
- 'keep testing': {
- topic: function () {
- Test.testKeep('dir', '1', this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a dir': function (err, name) {
- _testDir(040700)(err, name);
- fs.rmdirSync(name);
- }
- },
-
- 'unlink testing': {
- topic: function () {
- Test.testKeep('dir', '0', this.callback);
- },
-
- 'should not return with error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should not exist': function (err, name) {
- assert.ok(!existsSync(name), 'Directory should be removed');
- }
- },
-
- 'non graceful testing': {
- topic: function () {
- Test.testGraceful('dir', '0', this.callback);
- },
-
- 'should not return with error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a dir': function (err, name) {
- _testDir(040700)(err, name);
- fs.rmdirSync(name);
- }
- },
-
- 'graceful testing': {
- topic: function () {
- Test.testGraceful('dir', '1', this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should not exist': function (err, name) {
- assert.ok(!existsSync(name), 'Directory should be removed');
- }
- },
-
- 'unsafeCleanup === true': {
- topic: function () {
- Test.testUnsafeCleanup('1', this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should not exist': function (err, name) {
- assert.ok(!existsSync(name), 'Directory should be removed');
- },
- 'should remove symlinked dir': function(err, name) {
- assert.ok(
- !existsSync(name + '/symlinkme-target'),
- 'should remove target'
- );
- },
- 'should not remove contents of symlink dir': function(err, name) {
- assert.ok(
- existsSync(__dirname + '/symlinkme/file.js'),
- 'should not remove symlinked directory\'s content'
- );
- }
- },
-
- 'unsafeCleanup === true with issue62 structure': {
- topic: function () {
- Test.testIssue62(this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should not exist': function (err, name) {
- assert.ok(!existsSync(name), 'Directory should be removed');
- }
- },
-
- 'unsafeCleanup === false': {
- topic: function () {
- Test.testUnsafeCleanup('0', this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a directory': function (err, name) {
- _testDir(040700)(err, name);
- // make sure that everything gets cleaned up
- fs.unlinkSync(path.join(name, 'should-be-removed.file'));
- fs.unlinkSync(path.join(name, 'symlinkme-target'));
- fs.rmdirSync(name);
- }
- },
-
- 'remove callback': {
- topic: function () {
- tmp.dir(this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'removeCallback should remove directory': function (_err, name, removeCallback) {
- removeCallback();
- assert.ok(!existsSync(name), 'Directory should be removed');
- }
- }
-}).exportTo(module);
diff --git a/node_modules/tmp/test/file-sync-test.js b/node_modules/tmp/test/file-sync-test.js
deleted file mode 100644
index 44c1d22f5..000000000
--- a/node_modules/tmp/test/file-sync-test.js
+++ /dev/null
@@ -1,190 +0,0 @@
-var
- vows = require('vows'),
- assert = require('assert'),
-
- path = require('path'),
- fs = require('fs'),
- existsSync = fs.existsSync || path.existsSync,
-
- tmp = require('../lib/tmp.js'),
- Test = require('./base.js');
-
-
-function _testFile(mode, fdTest) {
- return function _testFileGenerated(result) {
- assert.ok(existsSync(result.name), 'should exist');
-
- var stat = fs.statSync(result.name);
- assert.equal(stat.size, 0, 'should have zero size');
- assert.ok(stat.isFile(), 'should be a file');
-
- Test.testStat(stat, mode);
-
- // check with fstat as well (fd checking)
- if (fdTest) {
- var fstat = fs.fstatSync(result.fd);
- assert.deepEqual(fstat, stat, 'fstat results should be the same');
-
- var data = new Buffer('something');
- assert.equal(fs.writeSync(result.fd, data, 0, data.length, 0), data.length, 'should be writable');
- assert.ok(!fs.closeSync(result.fd), 'should not return with error');
- }
- };
-}
-
-vows.describe('Synchronous file creation').addBatch({
- 'when using without parameters': {
- topic: function () {
- return tmp.fileSync();
- },
-
- 'should return with a name': Test.assertNameSync,
- 'should be a file': _testFile(0100600, true),
- 'should have the default prefix': Test.testPrefixSync('tmp-'),
- 'should have the default postfix': Test.testPostfixSync('.tmp')
- },
-
- 'when using with prefix': {
- topic: function () {
- return tmp.fileSync({ prefix: 'something' });
- },
-
- 'should return with a name': Test.assertNameSync,
- 'should be a file': _testFile(0100600, true),
- 'should have the provided prefix': Test.testPrefixSync('something')
- },
-
- 'when using with postfix': {
- topic: function () {
- return tmp.fileSync({ postfix: '.txt' });
- },
-
- 'should return with a name': Test.assertNameSync,
- 'should be a file': _testFile(0100600, true),
- 'should have the provided postfix': Test.testPostfixSync('.txt')
- },
-
- 'when using template': {
- topic: function () {
- return tmp.fileSync({ template: path.join(tmp.tmpdir, 'clike-XXXXXX-postfix') });
- },
-
- 'should return with a name': Test.assertNameSync,
- 'should be a file': _testFile(0100600, true),
- 'should have the provided prefix': Test.testPrefixSync('clike-'),
- 'should have the provided postfix': Test.testPostfixSync('-postfix')
- },
-
- 'when using name': {
- topic: function () {
- return tmp.fileSync({ name: 'using-name.tmp' });
- },
-
- 'should return with a name': Test.assertNameSync,
- 'should have the provided name': Test.testNameSync(path.join(tmp.tmpdir, 'using-name.tmp')),
- 'should be a file': function (result) {
- _testFile(0100600, true);
- fs.unlinkSync(result.name);
- }
- },
-
- 'when using multiple options': {
- topic: function () {
- return tmp.fileSync({ prefix: 'foo', postfix: 'bar', mode: 0640 });
- },
-
- 'should return with a name': Test.assertNameSync,
- 'should be a file': _testFile(0100640, true),
- 'should have the provided prefix': Test.testPrefixSync('foo'),
- 'should have the provided postfix': Test.testPostfixSync('bar')
- },
-
- 'when using multiple options and mode': {
- topic: function () {
- return tmp.fileSync({ prefix: 'complicated', postfix: 'options', mode: 0644 });
- },
-
- 'should return with a name': Test.assertNameSync,
- 'should be a file': _testFile(0100644, true),
- 'should have the provided prefix': Test.testPrefixSync('complicated'),
- 'should have the provided postfix': Test.testPostfixSync('options')
- },
-
- 'no tries': {
- topic: function () {
- try {
- return tmp.fileSync({ tries: -1 });
- }
- catch (e) {
- return e;
- }
- },
-
- 'should return with an error': function (topic) {
- assert.instanceOf(topic, Error);
- }
- },
-
- 'keep testing': {
- topic: function () {
- Test.testKeepSync('file', '1', this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a file': function (err, name) {
- _testFile(0100600, false)({name:name});
- fs.unlinkSync(name);
- }
- },
-
- 'unlink testing': {
- topic: function () {
- Test.testKeepSync('file', '0', this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should not exist': function (err, name) {
- assert.ok(!existsSync(name), 'File should be removed');
- }
- },
-
- 'non graceful testing': {
- topic: function () {
- Test.testGracefulSync('file', '0', this.callback);
- },
-
- 'should not return with error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a file': function (err, name) {
- _testFile(0100600, false)({name:name});
- fs.unlinkSync(name);
- }
- },
-
- 'graceful testing': {
- topic: function () {
- Test.testGracefulSync('file', '1', this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should not exist': function (err, name) {
- assert.ok(!existsSync(name), 'File should be removed');
- }
- },
-
- 'remove callback': {
- topic: function () {
- return tmp.fileSync();
- },
-
- 'should return with a name': Test.assertNameSync,
- 'removeCallback should remove file': function (result) {
- result.removeCallback();
- assert.ok(!existsSync(result.name), 'File should be removed');
- }
- }
-
-}).exportTo(module);
diff --git a/node_modules/tmp/test/file-test.js b/node_modules/tmp/test/file-test.js
deleted file mode 100644
index b710859c0..000000000
--- a/node_modules/tmp/test/file-test.js
+++ /dev/null
@@ -1,191 +0,0 @@
-var
- vows = require('vows'),
- assert = require('assert'),
-
- path = require('path'),
- fs = require('fs'),
- existsSync = fs.existsSync || path.existsSync,
-
- tmp = require('../lib/tmp.js'),
- Test = require('./base.js');
-
-
-function _testFile(mode, fdTest) {
- return function _testFileGenerated(err, name, fd) {
- assert.ok(existsSync(name), 'should exist');
-
- var stat = fs.statSync(name);
- assert.equal(stat.size, 0, 'should have zero size');
- assert.ok(stat.isFile(), 'should be a file');
-
- Test.testStat(stat, mode);
-
- // check with fstat as well (fd checking)
- if (fdTest) {
- var fstat = fs.fstatSync(fd);
- assert.deepEqual(fstat, stat, 'fstat results should be the same');
-
- var data = new Buffer('something');
- assert.equal(fs.writeSync(fd, data, 0, data.length, 0), data.length, 'should be writable');
- assert.ok(!fs.closeSync(fd), 'should not return with error');
- }
- };
-}
-
-vows.describe('File creation').addBatch({
- 'when using without parameters': {
- topic: function () {
- tmp.file(this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a file': _testFile(0100600, true),
- 'should have the default prefix': Test.testPrefix('tmp-'),
- 'should have the default postfix': Test.testPostfix('.tmp')
- },
-
- 'when using with prefix': {
- topic: function () {
- tmp.file({ prefix: 'something' }, this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a file': _testFile(0100600, true),
- 'should have the provided prefix': Test.testPrefix('something')
- },
-
- 'when using with postfix': {
- topic: function () {
- tmp.file({ postfix: '.txt' }, this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a file': _testFile(0100600, true),
- 'should have the provided postfix': Test.testPostfix('.txt')
- },
-
- 'when using template': {
- topic: function () {
- tmp.file({ template: path.join(tmp.tmpdir, 'clike-XXXXXX-postfix') }, this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a file': _testFile(0100600, true),
- 'should have the provided prefix': Test.testPrefix('clike-'),
- 'should have the provided postfix': Test.testPostfix('-postfix')
- },
-
- 'when using name': {
- topic: function () {
- tmp.file({ name: 'using-name.tmp' }, this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should have the provided name': Test.testName(path.join(tmp.tmpdir, 'using-name.tmp')),
- 'should be a file': function (err, name) {
- _testFile(0100600, true);
- fs.unlinkSync(name);
- }
- },
-
- 'when using multiple options': {
- topic: function () {
- tmp.file({ prefix: 'foo', postfix: 'bar', mode: 0640 }, this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a file': _testFile(0100640, true),
- 'should have the provided prefix': Test.testPrefix('foo'),
- 'should have the provided postfix': Test.testPostfix('bar')
- },
-
- 'when using multiple options and mode': {
- topic: function () {
- tmp.file({ prefix: 'complicated', postfix: 'options', mode: 0644 }, this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a file': _testFile(0100644, true),
- 'should have the provided prefix': Test.testPrefix('complicated'),
- 'should have the provided postfix': Test.testPostfix('options')
- },
-
- 'no tries': {
- topic: function () {
- tmp.file({ tries: -1 }, this.callback);
- },
-
- 'should not be created': assert.isObject
- },
-
- 'keep testing': {
- topic: function () {
- Test.testKeep('file', '1', this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a file': function (err, name) {
- _testFile(0100600, false)(err, name, null);
- fs.unlinkSync(name);
- }
- },
-
- 'unlink testing': {
- topic: function () {
- Test.testKeep('file', '0', this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should not exist': function (err, name) {
- assert.ok(!existsSync(name), 'File should be removed');
- }
- },
-
- 'non graceful testing': {
- topic: function () {
- Test.testGraceful('file', '0', this.callback);
- },
-
- 'should not return with error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should be a file': function (err, name) {
- _testFile(0100600, false)(err, name, null);
- fs.unlinkSync(name);
- }
- },
-
- 'graceful testing': {
- topic: function () {
- Test.testGraceful('file', '1', this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'should not exist': function (err, name) {
- assert.ok(!existsSync(name), 'File should be removed');
- }
- },
-
- 'remove callback': {
- topic: function () {
- tmp.file(this.callback);
- },
-
- 'should not return with an error': assert.isNull,
- 'should return with a name': Test.assertName,
- 'removeCallback should remove file': function (_err, name, _fd, removeCallback) {
- removeCallback();
- assert.ok(!existsSync(name), 'File should be removed');
- }
- }
-
-}).exportTo(module);
diff --git a/node_modules/tmp/test/graceful-sync.js b/node_modules/tmp/test/graceful-sync.js
deleted file mode 100644
index 37766ffa6..000000000
--- a/node_modules/tmp/test/graceful-sync.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var
- tmp = require('../lib/tmp'),
- spawn = require('./spawn-sync');
-
-var graceful = spawn.arg;
-
-if (graceful) {
- tmp.setGracefulCleanup();
-}
-
-try {
- var result = spawn.tmpFunction();
- spawn.out(result.name, function () {
- throw new Error('Thrown on purpose');
- });
-}
-catch (e) {
- spawn.err(e, spawn.exit);
-}
-
diff --git a/node_modules/tmp/test/graceful.js b/node_modules/tmp/test/graceful.js
deleted file mode 100644
index dbe554e1c..000000000
--- a/node_modules/tmp/test/graceful.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var
- tmp = require('../lib/tmp'),
- spawn = require('./spawn');
-
-var graceful = spawn.arg;
-
-if (graceful) {
- tmp.setGracefulCleanup();
-}
-
-spawn.tmpFunction(function (err, name) {
- spawn.out(name, function () {
- throw new Error('Thrown on purpose');
- });
-});
diff --git a/node_modules/tmp/test/issue62-sync.js b/node_modules/tmp/test/issue62-sync.js
deleted file mode 100644
index 94840c66d..000000000
--- a/node_modules/tmp/test/issue62-sync.js
+++ /dev/null
@@ -1,27 +0,0 @@
-
-var
- fs = require('fs'),
- join = require('path').join,
- spawn = require('./spawn-sync');
-
-try {
- var result = spawn.tmpFunction({ unsafeCleanup: true });
- try {
- // creates structure from issue 62
- // https://github.com/raszi/node-tmp/issues/62
-
- fs.mkdirSync(join(result.name, 'issue62'));
-
- ['foo', 'bar'].forEach(function(subdir) {
- fs.mkdirSync(join(result.name, 'issue62', subdir));
- fs.writeFileSync(join(result.name, 'issue62', subdir, 'baz.txt'), '');
- });
-
- spawn.out(result.name, spawn.exit);
- } catch (e) {
- spawn.err(e.toString(), spawn.exit);
- }
-}
-catch (e) {
- spawn.err(e, spawn.exit);
-}
diff --git a/node_modules/tmp/test/issue62.js b/node_modules/tmp/test/issue62.js
deleted file mode 100644
index 004e19077..000000000
--- a/node_modules/tmp/test/issue62.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var
- fs = require('fs'),
- join = require('path').join,
- spawn = require('./spawn');
-
-spawn.tmpFunction({ unsafeCleanup: true }, function (err, name) {
- if (err) {
- spawn.err(err, spawn.exit);
- return;
- }
-
- try {
- // creates structure from issue 62
- // https://github.com/raszi/node-tmp/issues/62
-
- fs.mkdirSync(join(name, 'issue62'));
-
- ['foo', 'bar'].forEach(function(subdir) {
- fs.mkdirSync(join(name, 'issue62', subdir));
- fs.writeFileSync(join(name, 'issue62', subdir, 'baz.txt'), '');
- });
-
- spawn.out(name, spawn.exit);
- } catch (e) {
- spawn.err(e.toString(), spawn.exit);
- }
-});
diff --git a/node_modules/tmp/test/keep-sync.js b/node_modules/tmp/test/keep-sync.js
deleted file mode 100644
index 6cd8b186a..000000000
--- a/node_modules/tmp/test/keep-sync.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var spawn = require('./spawn-sync');
-
-var keep = spawn.arg;
-
-try {
- var result = spawn.tmpFunction({ keep: keep });
- spawn.out(result.name, spawn.exit);
-}
-catch (e) {
- spawn.err(err, spawn.exit);
-}
-
diff --git a/node_modules/tmp/test/keep.js b/node_modules/tmp/test/keep.js
deleted file mode 100644
index 9538605dd..000000000
--- a/node_modules/tmp/test/keep.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var spawn = require('./spawn');
-
-var keep = spawn.arg;
-
-spawn.tmpFunction({ keep: keep }, function (err, name) {
- if (err) {
- spawn.err(err, spawn.exit);
- } else {
- spawn.out(name, spawn.exit);
- }
-});
diff --git a/node_modules/tmp/test/name-test.js b/node_modules/tmp/test/name-test.js
deleted file mode 100644
index a242c21b2..000000000
--- a/node_modules/tmp/test/name-test.js
+++ /dev/null
@@ -1,82 +0,0 @@
-var
- vows = require('vows'),
- assert = require('assert'),
-
- path = require('path'),
-
- tmp = require('../lib/tmp.js'),
- Test = require('./base.js');
-
-vows.describe('Name creation').addBatch({
- 'when using without parameters': {
- topic: function () {
- tmp.tmpName(this.callback);
- },
-
- 'should not return with error': assert.isNull,
- 'should have the default prefix': Test.testPrefix('tmp-')
- },
-
- 'when using with prefix': {
- topic: function () {
- tmp.tmpName({ prefix: 'something' }, this.callback);
- },
-
- 'should not return with error': assert.isNull,
- 'should have the provided prefix': Test.testPrefix('something')
- },
-
- 'when using with postfix': {
- topic: function () {
- tmp.tmpName({ postfix: '.txt' }, this.callback);
- },
-
- 'should not return with error': assert.isNull,
- 'should have the provided postfix': Test.testPostfix('.txt')
-
- },
-
- 'when using template': {
- topic: function () {
- tmp.tmpName({ template: path.join(tmp.tmpdir, 'clike-XXXXXX-postfix') }, this.callback);
- },
-
- 'should not return with error': assert.isNull,
- 'should have the provided prefix': Test.testPrefix('clike-'),
- 'should have the provided postfix': Test.testPostfix('-postfix'),
- 'should have template filled': function (err, name) {
- assert.isTrue(/[a-zA-Z0-9]{6}/.test(name));
- }
- },
-
- 'when using multiple options': {
- topic: function () {
- tmp.tmpName({ prefix: 'foo', postfix: 'bar', tries: 5 }, this.callback);
- },
-
- 'should not return with error': assert.isNull,
- 'should have the provided prefix': Test.testPrefix('foo'),
- 'should have the provided postfix': Test.testPostfix('bar')
- },
-
- 'no tries': {
- topic: function () {
- tmp.tmpName({ tries: -1 }, this.callback);
- },
-
- 'should fail': function (err, name) {
- assert.isObject(err);
- }
- },
-
- 'tries not numeric': {
- topic: function () {
- tmp.tmpName({ tries: 'hello'}, this.callback);
- },
-
- 'should fail': function (err, name) {
- assert.isObject(err);
- }
- }
-
-}).exportTo(module);
diff --git a/node_modules/tmp/test/spawn-sync.js b/node_modules/tmp/test/spawn-sync.js
deleted file mode 100644
index bde2db469..000000000
--- a/node_modules/tmp/test/spawn-sync.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var
- fs = require('fs'),
- tmp = require('../lib/tmp');
-
-function _writeSync(stream, str, cb) {
- var flushed = stream.write(str);
- if (flushed) {
- return cb(null);
- }
-
- stream.once('drain', function _flushed() {
- cb(null);
- });
-}
-
-module.exports.out = function (str, cb) {
- _writeSync(process.stdout, str, cb);
-};
-
-module.exports.err = function (str, cb) {
- _writeSync(process.stderr, str, cb);
-};
-
-module.exports.exit = function () {
- process.exit(0);
-};
-
-var type = process.argv[2];
-module.exports.tmpFunction = (type == 'file') ? tmp.fileSync : tmp.dirSync;
-
-var arg = (process.argv[3] && parseInt(process.argv[3], 10) === 1) ? true : false;
-module.exports.arg = arg;
diff --git a/node_modules/tmp/test/spawn.js b/node_modules/tmp/test/spawn.js
deleted file mode 100644
index 6468eb39e..000000000
--- a/node_modules/tmp/test/spawn.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var
- fs = require('fs'),
- tmp = require('../lib/tmp');
-
-function _writeSync(stream, str, cb) {
- var flushed = stream.write(str);
- if (flushed) {
- return cb(null);
- }
-
- stream.once('drain', function _flushed() {
- cb(null);
- });
-}
-
-module.exports.out = function (str, cb) {
- _writeSync(process.stdout, str, cb);
-};
-
-module.exports.err = function (str, cb) {
- _writeSync(process.stderr, str, cb);
-};
-
-module.exports.exit = function () {
- process.exit(0);
-};
-
-var type = process.argv[2];
-module.exports.tmpFunction = (type == 'file') ? tmp.file : tmp.dir;
-
-var arg = (process.argv[3] && parseInt(process.argv[3], 10) === 1) ? true : false;
-module.exports.arg = arg;
diff --git a/node_modules/tmp/test/symlinkme/file.js b/node_modules/tmp/test/symlinkme/file.js
deleted file mode 100644
index e69de29bb..000000000
--- a/node_modules/tmp/test/symlinkme/file.js
+++ /dev/null
diff --git a/node_modules/tmp/test/unsafe-sync.js b/node_modules/tmp/test/unsafe-sync.js
deleted file mode 100644
index 97717d05d..000000000
--- a/node_modules/tmp/test/unsafe-sync.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var
- fs = require('fs'),
- join = require('path').join,
- spawn = require('./spawn-sync');
-
-var unsafe = spawn.arg;
-
-try {
- var result = spawn.tmpFunction({ unsafeCleanup: unsafe });
- try {
- // file that should be removed
- var fd = fs.openSync(join(result.name, 'should-be-removed.file'), 'w');
- fs.closeSync(fd);
-
- // in tree source
- var symlinkSource = join(__dirname, 'symlinkme');
- // testing target
- var symlinkTarget = join(result.name, 'symlinkme-target');
-
- // symlink that should be removed but the contents should be preserved.
- fs.symlinkSync(symlinkSource, symlinkTarget, 'dir');
-
- spawn.out(result.name, spawn.exit);
- } catch (e) {
- spawn.err(e.toString(), spawn.exit);
- }
-}
-catch (e) {
- spawn.err(err, spawn.exit);
-}
diff --git a/node_modules/tmp/test/unsafe.js b/node_modules/tmp/test/unsafe.js
deleted file mode 100644
index 73e4fb34e..000000000
--- a/node_modules/tmp/test/unsafe.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var
- fs = require('fs'),
- join = require('path').join,
- spawn = require('./spawn');
-
-var unsafe = spawn.arg;
-spawn.tmpFunction({ unsafeCleanup: unsafe }, function (err, name) {
- if (err) {
- spawn.err(err, spawn.exit);
- return;
- }
-
- try {
- // file that should be removed
- var fd = fs.openSync(join(name, 'should-be-removed.file'), 'w');
- fs.closeSync(fd);
-
- // in tree source
- var symlinkSource = join(__dirname, 'symlinkme');
- // testing target
- var symlinkTarget = join(name, 'symlinkme-target');
-
- // symlink that should be removed but the contents should be preserved.
- fs.symlinkSync(symlinkSource, symlinkTarget, 'dir');
-
- spawn.out(name, spawn.exit);
- } catch (e) {
- spawn.err(e.toString(), spawn.exit);
- }
-});
diff --git a/node_modules/to-iso-string/.npmignore b/node_modules/to-iso-string/.npmignore
deleted file mode 100644
index 665aa2197..000000000
--- a/node_modules/to-iso-string/.npmignore
+++ /dev/null
@@ -1,3 +0,0 @@
-components
-build
-node_modules
diff --git a/node_modules/to-iso-string/History.md b/node_modules/to-iso-string/History.md
deleted file mode 100644
index f23b31e8c..000000000
--- a/node_modules/to-iso-string/History.md
+++ /dev/null
@@ -1,9 +0,0 @@
-
-0.0.2 - May 12, 2015
---------------------
-
-- Fix npm publish issue
-
-0.0.1 - October 16, 2013
-------------------------
-:sparkles:
diff --git a/node_modules/to-iso-string/Makefile b/node_modules/to-iso-string/Makefile
deleted file mode 100644
index 9600296b2..000000000
--- a/node_modules/to-iso-string/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-
-build: components node_modules
- @component build --dev
-
-clean:
- @rm -rf components build node_modules
-
-components: component.json
- @component install --dev
-
-node_modules: package.json
- @npm install
-
-test: build
- @./node_modules/.bin/mocha --reporter spec
-
-.PHONY: clean test \ No newline at end of file
diff --git a/node_modules/to-iso-string/Readme.md b/node_modules/to-iso-string/Readme.md
deleted file mode 100644
index 905b8d636..000000000
--- a/node_modules/to-iso-string/Readme.md
+++ /dev/null
@@ -1,18 +0,0 @@
-
-# to-iso-string
-
- Cross-browser toISOString support.
-
-## Example
-
-```js
-var iso = require('to-iso-string');
-var date = new Date("05 October 2011 14:48 UTC");
-
-iso(date);
-// "2011-10-05T14:48:00.000Z"
-```
-
-## License
-
- MIT \ No newline at end of file
diff --git a/node_modules/to-iso-string/component.json b/node_modules/to-iso-string/component.json
deleted file mode 100644
index f5270b58b..000000000
--- a/node_modules/to-iso-string/component.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "to-iso-string",
- "repo": "segmentio/to-iso-string",
- "version": "0.0.2",
- "license": "MIT",
- "description": "Cross-browser toISOString support.",
- "keywords": ["iso", "format", "iso8601", "date", "isostring", "toISOString"],
- "scripts": ["index.js"]
-}
diff --git a/node_modules/to-iso-string/index.js b/node_modules/to-iso-string/index.js
deleted file mode 100644
index 4675691f1..000000000
--- a/node_modules/to-iso-string/index.js
+++ /dev/null
@@ -1,40 +0,0 @@
-
-/**
- * Expose `toIsoString`.
- */
-
-module.exports = toIsoString;
-
-
-/**
- * Turn a `date` into an ISO string.
- *
- * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
- *
- * @param {Date} date
- * @return {String}
- */
-
-function toIsoString (date) {
- return date.getUTCFullYear()
- + '-' + pad(date.getUTCMonth() + 1)
- + '-' + pad(date.getUTCDate())
- + 'T' + pad(date.getUTCHours())
- + ':' + pad(date.getUTCMinutes())
- + ':' + pad(date.getUTCSeconds())
- + '.' + String((date.getUTCMilliseconds()/1000).toFixed(3)).slice(2, 5)
- + 'Z';
-}
-
-
-/**
- * Pad a `number` with a ten's place zero.
- *
- * @param {Number} number
- * @return {String}
- */
-
-function pad (number) {
- var n = number.toString();
- return n.length === 1 ? '0' + n : n;
-} \ No newline at end of file
diff --git a/node_modules/to-iso-string/package.json b/node_modules/to-iso-string/package.json
deleted file mode 100644
index 71a7168a5..000000000
--- a/node_modules/to-iso-string/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "to-iso-string",
- "repository": "git://github.com/segmentio/to-iso-string.git",
- "version": "0.0.2",
- "license": "MIT",
- "description": "Cross-browser toISOString support.",
- "keywords": ["iso", "format", "iso8601", "date", "isostring", "toISOString"],
- "devDependencies": {
- "mocha": "*"
- }
-}
diff --git a/node_modules/to-iso-string/test/index.js b/node_modules/to-iso-string/test/index.js
deleted file mode 100644
index 11456b37f..000000000
--- a/node_modules/to-iso-string/test/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-
-var assert = require('assert');
-var iso = require('..');
-
-describe('to-iso-string', function () {
- it('should work', function () {
- var date = new Date("05 October 2011 14:48 UTC");
- assert('2011-10-05T14:48:00.000Z' == iso(date));
- });
-}); \ No newline at end of file
diff --git a/node_modules/type-check/LICENSE b/node_modules/type-check/LICENSE
deleted file mode 100644
index 525b11850..000000000
--- a/node_modules/type-check/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) George Zahariev
-
-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.
diff --git a/node_modules/type-check/README.md b/node_modules/type-check/README.md
deleted file mode 100644
index ec92d5930..000000000
--- a/node_modules/type-check/README.md
+++ /dev/null
@@ -1,210 +0,0 @@
-# type-check [![Build Status](https://travis-ci.org/gkz/type-check.png?branch=master)](https://travis-ci.org/gkz/type-check)
-
-<a name="type-check" />
-
-`type-check` is a library which allows you to check the types of JavaScript values at runtime with a Haskell like type syntax. It is great for checking external input, for testing, or even for adding a bit of safety to your internal code. It is a major component of [levn](https://github.com/gkz/levn). MIT license. Version 0.3.2. Check out the [demo](http://gkz.github.io/type-check/).
-
-For updates on `type-check`, [follow me on twitter](https://twitter.com/gkzahariev).
-
- npm install type-check
-
-## Quick Examples
-
-```js
-// Basic types:
-var typeCheck = require('type-check').typeCheck;
-typeCheck('Number', 1); // true
-typeCheck('Number', 'str'); // false
-typeCheck('Error', new Error); // true
-typeCheck('Undefined', undefined); // true
-
-// Comment
-typeCheck('count::Number', 1); // true
-
-// One type OR another type:
-typeCheck('Number | String', 2); // true
-typeCheck('Number | String', 'str'); // true
-
-// Wildcard, matches all types:
-typeCheck('*', 2) // true
-
-// Array, all elements of a single type:
-typeCheck('[Number]', [1, 2, 3]); // true
-typeCheck('[Number]', [1, 'str', 3]); // false
-
-// Tuples, or fixed length arrays with elements of different types:
-typeCheck('(String, Number)', ['str', 2]); // true
-typeCheck('(String, Number)', ['str']); // false
-typeCheck('(String, Number)', ['str', 2, 5]); // false
-
-// Object properties:
-typeCheck('{x: Number, y: Boolean}', {x: 2, y: false}); // true
-typeCheck('{x: Number, y: Boolean}', {x: 2}); // false
-typeCheck('{x: Number, y: Maybe Boolean}', {x: 2}); // true
-typeCheck('{x: Number, y: Boolean}', {x: 2, y: false, z: 3}); // false
-typeCheck('{x: Number, y: Boolean, ...}', {x: 2, y: false, z: 3}); // true
-
-// A particular type AND object properties:
-typeCheck('RegExp{source: String, ...}', /re/i); // true
-typeCheck('RegExp{source: String, ...}', {source: 're'}); // false
-
-// Custom types:
-var opt = {customTypes:
- {Even: { typeOf: 'Number', validate: function(x) { return x % 2 === 0; }}}};
-typeCheck('Even', 2, opt); // true
-
-// Nested:
-var type = '{a: (String, [Number], {y: Array, ...}), b: Error{message: String, ...}}'
-typeCheck(type, {a: ['hi', [1, 2, 3], {y: [1, 'ms']}], b: new Error('oh no')}); // true
-```
-
-Check out the [type syntax format](#syntax) and [guide](#guide).
-
-## Usage
-
-`require('type-check');` returns an object that exposes four properties. `VERSION` is the current version of the library as a string. `typeCheck`, `parseType`, and `parsedTypeCheck` are functions.
-
-```js
-// typeCheck(type, input, options);
-typeCheck('Number', 2); // true
-
-// parseType(type);
-var parsedType = parseType('Number'); // object
-
-// parsedTypeCheck(parsedType, input, options);
-parsedTypeCheck(parsedType, 2); // true
-```
-
-### typeCheck(type, input, options)
-
-`typeCheck` checks a JavaScript value `input` against `type` written in the [type format](#type-format) (and taking account the optional `options`) and returns whether the `input` matches the `type`.
-
-##### arguments
-* type - `String` - the type written in the [type format](#type-format) which to check against
-* input - `*` - any JavaScript value, which is to be checked against the type
-* options - `Maybe Object` - an optional parameter specifying additional options, currently the only available option is specifying [custom types](#custom-types)
-
-##### returns
-`Boolean` - whether the input matches the type
-
-##### example
-```js
-typeCheck('Number', 2); // true
-```
-
-### parseType(type)
-
-`parseType` parses string `type` written in the [type format](#type-format) into an object representing the parsed type.
-
-##### arguments
-* type - `String` - the type written in the [type format](#type-format) which to parse
-
-##### returns
-`Object` - an object in the parsed type format representing the parsed type
-
-##### example
-```js
-parseType('Number'); // [{type: 'Number'}]
-```
-### parsedTypeCheck(parsedType, input, options)
-
-`parsedTypeCheck` checks a JavaScript value `input` against parsed `type` in the parsed type format (and taking account the optional `options`) and returns whether the `input` matches the `type`. Use this in conjunction with `parseType` if you are going to use a type more than once.
-
-##### arguments
-* type - `Object` - the type in the parsed type format which to check against
-* input - `*` - any JavaScript value, which is to be checked against the type
-* options - `Maybe Object` - an optional parameter specifying additional options, currently the only available option is specifying [custom types](#custom-types)
-
-##### returns
-`Boolean` - whether the input matches the type
-
-##### example
-```js
-parsedTypeCheck([{type: 'Number'}], 2); // true
-var parsedType = parseType('String');
-parsedTypeCheck(parsedType, 'str'); // true
-```
-
-<a name="type-format" />
-## Type Format
-
-### Syntax
-
-White space is ignored. The root node is a __Types__.
-
-* __Identifier__ = `[\$\w]+` - a group of any lower or upper case letters, numbers, underscores, or dollar signs - eg. `String`
-* __Type__ = an `Identifier`, an `Identifier` followed by a `Structure`, just a `Structure`, or a wildcard `*` - eg. `String`, `Object{x: Number}`, `{x: Number}`, `Array{0: String, 1: Boolean, length: Number}`, `*`
-* __Types__ = optionally a comment (an `Indentifier` followed by a `::`), optionally the identifier `Maybe`, one or more `Type`, separated by `|` - eg. `Number`, `String | Date`, `Maybe Number`, `Maybe Boolean | String`
-* __Structure__ = `Fields`, or a `Tuple`, or an `Array` - eg. `{x: Number}`, `(String, Number)`, `[Date]`
-* __Fields__ = a `{`, followed one or more `Field` separated by a comma `,` (trailing comma `,` is permitted), optionally an `...` (always preceded by a comma `,`), followed by a `}` - eg. `{x: Number, y: String}`, `{k: Function, ...}`
-* __Field__ = an `Identifier`, followed by a colon `:`, followed by `Types` - eg. `x: Date | String`, `y: Boolean`
-* __Tuple__ = a `(`, followed by one or more `Types` separated by a comma `,` (trailing comma `,` is permitted), followed by a `)` - eg `(Date)`, `(Number, Date)`
-* __Array__ = a `[` followed by exactly one `Types` followed by a `]` - eg. `[Boolean]`, `[Boolean | Null]`
-
-### Guide
-
-`type-check` uses `Object.toString` to find out the basic type of a value. Specifically,
-
-```js
-{}.toString.call(VALUE).slice(8, -1)
-{}.toString.call(true).slice(8, -1) // 'Boolean'
-```
-A basic type, eg. `Number`, uses this check. This is much more versatile than using `typeof` - for example, with `document`, `typeof` produces `'object'` which isn't that useful, and our technique produces `'HTMLDocument'`.
-
-You may check for multiple types by separating types with a `|`. The checker proceeds from left to right, and passes if the value is any of the types - eg. `String | Boolean` first checks if the value is a string, and then if it is a boolean. If it is none of those, then it returns false.
-
-Adding a `Maybe` in front of a list of multiple types is the same as also checking for `Null` and `Undefined` - eg. `Maybe String` is equivalent to `Undefined | Null | String`.
-
-You may add a comment to remind you of what the type is for by following an identifier with a `::` before a type (or multiple types). The comment is simply thrown out.
-
-The wildcard `*` matches all types.
-
-There are three types of structures for checking the contents of a value: 'fields', 'tuple', and 'array'.
-
-If used by itself, a 'fields' structure will pass with any type of object as long as it is an instance of `Object` and the properties pass - this allows for duck typing - eg. `{x: Boolean}`.
-
-To check if the properties pass, and the value is of a certain type, you can specify the type - eg. `Error{message: String}`.
-
-If you want to make a field optional, you can simply use `Maybe` - eg. `{x: Boolean, y: Maybe String}` will still pass if `y` is undefined (or null).
-
-If you don't care if the value has properties beyond what you have specified, you can use the 'etc' operator `...` - eg. `{x: Boolean, ...}` will match an object with an `x` property that is a boolean, and with zero or more other properties.
-
-For an array, you must specify one or more types (separated by `|`) - it will pass for something of any length as long as each element passes the types provided - eg. `[Number]`, `[Number | String]`.
-
-A tuple checks for a fixed number of elements, each of a potentially different type. Each element is separated by a comma - eg. `(String, Number)`.
-
-An array and tuple structure check that the value is of type `Array` by default, but if another type is specified, they will check for that instead - eg. `Int32Array[Number]`. You can use the wildcard `*` to search for any type at all.
-
-Check out the [type precedence](https://github.com/zaboco/type-precedence) library for type-check.
-
-## Options
-
-Options is an object. It is an optional parameter to the `typeCheck` and `parsedTypeCheck` functions. The only current option is `customTypes`.
-
-<a name="custom-types" />
-### Custom Types
-
-__Example:__
-
-```js
-var options = {
- customTypes: {
- Even: {
- typeOf: 'Number',
- validate: function(x) {
- return x % 2 === 0;
- }
- }
- }
-};
-typeCheck('Even', 2, options); // true
-typeCheck('Even', 3, options); // false
-```
-
-`customTypes` allows you to set up custom types for validation. The value of this is an object. The keys of the object are the types you will be matching. Each value of the object will be an object having a `typeOf` property - a string, and `validate` property - a function.
-
-The `typeOf` property is the type the value should be, and `validate` is a function which should return true if the value is of that type. `validate` receives one parameter, which is the value that we are checking.
-
-## Technical About
-
-`type-check` is written in [LiveScript](http://livescript.net/) - a language that compiles to JavaScript. It also uses the [prelude.ls](http://preludels.com/) library.
diff --git a/node_modules/type-check/lib/check.js b/node_modules/type-check/lib/check.js
deleted file mode 100644
index 0504c8d2f..000000000
--- a/node_modules/type-check/lib/check.js
+++ /dev/null
@@ -1,126 +0,0 @@
-// Generated by LiveScript 1.4.0
-(function(){
- var ref$, any, all, isItNaN, types, defaultType, customTypes, toString$ = {}.toString;
- ref$ = require('prelude-ls'), any = ref$.any, all = ref$.all, isItNaN = ref$.isItNaN;
- types = {
- Number: {
- typeOf: 'Number',
- validate: function(it){
- return !isItNaN(it);
- }
- },
- NaN: {
- typeOf: 'Number',
- validate: isItNaN
- },
- Int: {
- typeOf: 'Number',
- validate: function(it){
- return !isItNaN(it) && it % 1 === 0;
- }
- },
- Float: {
- typeOf: 'Number',
- validate: function(it){
- return !isItNaN(it);
- }
- },
- Date: {
- typeOf: 'Date',
- validate: function(it){
- return !isItNaN(it.getTime());
- }
- }
- };
- defaultType = {
- array: 'Array',
- tuple: 'Array'
- };
- function checkArray(input, type){
- return all(function(it){
- return checkMultiple(it, type.of);
- }, input);
- }
- function checkTuple(input, type){
- var i, i$, ref$, len$, types;
- i = 0;
- for (i$ = 0, len$ = (ref$ = type.of).length; i$ < len$; ++i$) {
- types = ref$[i$];
- if (!checkMultiple(input[i], types)) {
- return false;
- }
- i++;
- }
- return input.length <= i;
- }
- function checkFields(input, type){
- var inputKeys, numInputKeys, k, numOfKeys, key, ref$, types;
- inputKeys = {};
- numInputKeys = 0;
- for (k in input) {
- inputKeys[k] = true;
- numInputKeys++;
- }
- numOfKeys = 0;
- for (key in ref$ = type.of) {
- types = ref$[key];
- if (!checkMultiple(input[key], types)) {
- return false;
- }
- if (inputKeys[key]) {
- numOfKeys++;
- }
- }
- return type.subset || numInputKeys === numOfKeys;
- }
- function checkStructure(input, type){
- if (!(input instanceof Object)) {
- return false;
- }
- switch (type.structure) {
- case 'fields':
- return checkFields(input, type);
- case 'array':
- return checkArray(input, type);
- case 'tuple':
- return checkTuple(input, type);
- }
- }
- function check(input, typeObj){
- var type, structure, setting, that;
- type = typeObj.type, structure = typeObj.structure;
- if (type) {
- if (type === '*') {
- return true;
- }
- setting = customTypes[type] || types[type];
- if (setting) {
- return setting.typeOf === toString$.call(input).slice(8, -1) && setting.validate(input);
- } else {
- return type === toString$.call(input).slice(8, -1) && (!structure || checkStructure(input, typeObj));
- }
- } else if (structure) {
- if (that = defaultType[structure]) {
- if (that !== toString$.call(input).slice(8, -1)) {
- return false;
- }
- }
- return checkStructure(input, typeObj);
- } else {
- throw new Error("No type defined. Input: " + input + ".");
- }
- }
- function checkMultiple(input, types){
- if (toString$.call(types).slice(8, -1) !== 'Array') {
- throw new Error("Types must be in an array. Input: " + input + ".");
- }
- return any(function(it){
- return check(input, it);
- }, types);
- }
- module.exports = function(parsedType, input, options){
- options == null && (options = {});
- customTypes = options.customTypes || {};
- return checkMultiple(input, parsedType);
- };
-}).call(this);
diff --git a/node_modules/type-check/lib/index.js b/node_modules/type-check/lib/index.js
deleted file mode 100644
index f3316bab4..000000000
--- a/node_modules/type-check/lib/index.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Generated by LiveScript 1.4.0
-(function(){
- var VERSION, parseType, parsedTypeCheck, typeCheck;
- VERSION = '0.3.2';
- parseType = require('./parse-type');
- parsedTypeCheck = require('./check');
- typeCheck = function(type, input, options){
- return parsedTypeCheck(parseType(type), input, options);
- };
- module.exports = {
- VERSION: VERSION,
- typeCheck: typeCheck,
- parsedTypeCheck: parsedTypeCheck,
- parseType: parseType
- };
-}).call(this);
diff --git a/node_modules/type-check/lib/parse-type.js b/node_modules/type-check/lib/parse-type.js
deleted file mode 100644
index 5baf661fa..000000000
--- a/node_modules/type-check/lib/parse-type.js
+++ /dev/null
@@ -1,196 +0,0 @@
-// Generated by LiveScript 1.4.0
-(function(){
- var identifierRegex, tokenRegex;
- identifierRegex = /[\$\w]+/;
- function peek(tokens){
- var token;
- token = tokens[0];
- if (token == null) {
- throw new Error('Unexpected end of input.');
- }
- return token;
- }
- function consumeIdent(tokens){
- var token;
- token = peek(tokens);
- if (!identifierRegex.test(token)) {
- throw new Error("Expected text, got '" + token + "' instead.");
- }
- return tokens.shift();
- }
- function consumeOp(tokens, op){
- var token;
- token = peek(tokens);
- if (token !== op) {
- throw new Error("Expected '" + op + "', got '" + token + "' instead.");
- }
- return tokens.shift();
- }
- function maybeConsumeOp(tokens, op){
- var token;
- token = tokens[0];
- if (token === op) {
- return tokens.shift();
- } else {
- return null;
- }
- }
- function consumeArray(tokens){
- var types;
- consumeOp(tokens, '[');
- if (peek(tokens) === ']') {
- throw new Error("Must specify type of Array - eg. [Type], got [] instead.");
- }
- types = consumeTypes(tokens);
- consumeOp(tokens, ']');
- return {
- structure: 'array',
- of: types
- };
- }
- function consumeTuple(tokens){
- var components;
- components = [];
- consumeOp(tokens, '(');
- if (peek(tokens) === ')') {
- throw new Error("Tuple must be of at least length 1 - eg. (Type), got () instead.");
- }
- for (;;) {
- components.push(consumeTypes(tokens));
- maybeConsumeOp(tokens, ',');
- if (')' === peek(tokens)) {
- break;
- }
- }
- consumeOp(tokens, ')');
- return {
- structure: 'tuple',
- of: components
- };
- }
- function consumeFields(tokens){
- var fields, subset, ref$, key, types;
- fields = {};
- consumeOp(tokens, '{');
- subset = false;
- for (;;) {
- if (maybeConsumeOp(tokens, '...')) {
- subset = true;
- break;
- }
- ref$ = consumeField(tokens), key = ref$[0], types = ref$[1];
- fields[key] = types;
- maybeConsumeOp(tokens, ',');
- if ('}' === peek(tokens)) {
- break;
- }
- }
- consumeOp(tokens, '}');
- return {
- structure: 'fields',
- of: fields,
- subset: subset
- };
- }
- function consumeField(tokens){
- var key, types;
- key = consumeIdent(tokens);
- consumeOp(tokens, ':');
- types = consumeTypes(tokens);
- return [key, types];
- }
- function maybeConsumeStructure(tokens){
- switch (tokens[0]) {
- case '[':
- return consumeArray(tokens);
- case '(':
- return consumeTuple(tokens);
- case '{':
- return consumeFields(tokens);
- }
- }
- function consumeType(tokens){
- var token, wildcard, type, structure;
- token = peek(tokens);
- wildcard = token === '*';
- if (wildcard || identifierRegex.test(token)) {
- type = wildcard
- ? consumeOp(tokens, '*')
- : consumeIdent(tokens);
- structure = maybeConsumeStructure(tokens);
- if (structure) {
- return structure.type = type, structure;
- } else {
- return {
- type: type
- };
- }
- } else {
- structure = maybeConsumeStructure(tokens);
- if (!structure) {
- throw new Error("Unexpected character: " + token);
- }
- return structure;
- }
- }
- function consumeTypes(tokens){
- var lookahead, types, typesSoFar, typeObj, type;
- if ('::' === peek(tokens)) {
- throw new Error("No comment before comment separator '::' found.");
- }
- lookahead = tokens[1];
- if (lookahead != null && lookahead === '::') {
- tokens.shift();
- tokens.shift();
- }
- types = [];
- typesSoFar = {};
- if ('Maybe' === peek(tokens)) {
- tokens.shift();
- types = [
- {
- type: 'Undefined'
- }, {
- type: 'Null'
- }
- ];
- typesSoFar = {
- Undefined: true,
- Null: true
- };
- }
- for (;;) {
- typeObj = consumeType(tokens), type = typeObj.type;
- if (!typesSoFar[type]) {
- types.push(typeObj);
- }
- typesSoFar[type] = true;
- if (!maybeConsumeOp(tokens, '|')) {
- break;
- }
- }
- return types;
- }
- tokenRegex = RegExp('\\.\\.\\.|::|->|' + identifierRegex.source + '|\\S', 'g');
- module.exports = function(input){
- var tokens, e;
- if (!input.length) {
- throw new Error('No type specified.');
- }
- tokens = input.match(tokenRegex) || [];
- if (in$('->', tokens)) {
- throw new Error("Function types are not supported.\ To validate that something is a function, you may use 'Function'.");
- }
- try {
- return consumeTypes(tokens);
- } catch (e$) {
- e = e$;
- throw new Error(e.message + " - Remaining tokens: " + JSON.stringify(tokens) + " - Initial input: '" + input + "'");
- }
- };
- function in$(x, xs){
- var i = -1, l = xs.length >>> 0;
- while (++i < l) if (x === xs[i]) return true;
- return false;
- }
-}).call(this);
diff --git a/node_modules/type-check/package.json b/node_modules/type-check/package.json
deleted file mode 100644
index 8c0b0213f..000000000
--- a/node_modules/type-check/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "type-check",
- "version": "0.3.2",
- "author": "George Zahariev <z@georgezahariev.com>",
- "description": "type-check allows you to check the types of JavaScript values at runtime with a Haskell like type syntax.",
- "homepage": "https://github.com/gkz/type-check",
- "keywords": [
- "type",
- "check",
- "checking",
- "library"
- ],
- "files": [
- "lib",
- "README.md",
- "LICENSE"
- ],
- "main": "./lib/",
- "bugs": "https://github.com/gkz/type-check/issues",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8.0"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/gkz/type-check.git"
- },
- "scripts": {
- "test": "make test"
- },
- "dependencies": {
- "prelude-ls": "~1.1.2"
- },
- "devDependencies": {
- "livescript": "~1.4.0",
- "mocha": "~2.3.4",
- "istanbul": "~0.4.1",
- "browserify": "~12.0.1"
- }
-}
diff --git a/node_modules/typhonjs-istanbul-instrument-jspm/AUTHORS.md b/node_modules/typhonjs-istanbul-instrument-jspm/AUTHORS.md
deleted file mode 100644
index 92d0223a1..000000000
--- a/node_modules/typhonjs-istanbul-instrument-jspm/AUTHORS.md
+++ /dev/null
@@ -1,9 +0,0 @@
-####Corporate Copyright Statements
------
-
-Copyright (c) 2015-present TyphonRT Inc. [@typhonrt](https://github.com/typhonrt)
-
-####Contributors
------
-
-Michael Leahy [@typhonrt](https://github.com/typhonrt)
diff --git a/node_modules/typhonjs-istanbul-instrument-jspm/CHANGELOG.md b/node_modules/typhonjs-istanbul-instrument-jspm/CHANGELOG.md
deleted file mode 100644
index c1643d33d..000000000
--- a/node_modules/typhonjs-istanbul-instrument-jspm/CHANGELOG.md
+++ /dev/null
@@ -1,2 +0,0 @@
-## 0.1.0 (2016-03-13)
-- Initial stable release.
diff --git a/node_modules/typhonjs-istanbul-instrument-jspm/LICENSE b/node_modules/typhonjs-istanbul-instrument-jspm/LICENSE
deleted file mode 100644
index a612ad981..000000000
--- a/node_modules/typhonjs-istanbul-instrument-jspm/LICENSE
+++ /dev/null
@@ -1,373 +0,0 @@
-Mozilla Public License Version 2.0
-==================================
-
-1. Definitions
---------------
-
-1.1. "Contributor"
- means each individual or legal entity that creates, contributes to
- the creation of, or owns Covered Software.
-
-1.2. "Contributor Version"
- means the combination of the Contributions of others (if any) used
- by a Contributor and that particular Contributor's Contribution.
-
-1.3. "Contribution"
- means Covered Software of a particular Contributor.
-
-1.4. "Covered Software"
- means Source Code Form to which the initial Contributor has attached
- the notice in Exhibit A, the Executable Form of such Source Code
- Form, and Modifications of such Source Code Form, in each case
- including portions thereof.
-
-1.5. "Incompatible With Secondary Licenses"
- means
-
- (a) that the initial Contributor has attached the notice described
- in Exhibit B to the Covered Software; or
-
- (b) that the Covered Software was made available under the terms of
- version 1.1 or earlier of the License, but not also under the
- terms of a Secondary License.
-
-1.6. "Executable Form"
- means any form of the work other than Source Code Form.
-
-1.7. "Larger Work"
- means a work that combines Covered Software with other material, in
- a separate file or files, that is not Covered Software.
-
-1.8. "License"
- means this document.
-
-1.9. "Licensable"
- means having the right to grant, to the maximum extent possible,
- whether at the time of the initial grant or subsequently, any and
- all of the rights conveyed by this License.
-
-1.10. "Modifications"
- means any of the following:
-
- (a) any file in Source Code Form that results from an addition to,
- deletion from, or modification of the contents of Covered
- Software; or
-
- (b) any new file in Source Code Form that contains any Covered
- Software.
-
-1.11. "Patent Claims" of a Contributor
- means any patent claim(s), including without limitation, method,
- process, and apparatus claims, in any patent Licensable by such
- Contributor that would be infringed, but for the grant of the
- License, by the making, using, selling, offering for sale, having
- made, import, or transfer of either its Contributions or its
- Contributor Version.
-
-1.12. "Secondary License"
- means either the GNU General Public License, Version 2.0, the GNU
- Lesser General Public License, Version 2.1, the GNU Affero General
- Public License, Version 3.0, or any later versions of those
- licenses.
-
-1.13. "Source Code Form"
- means the form of the work preferred for making modifications.
-
-1.14. "You" (or "Your")
- means an individual or a legal entity exercising rights under this
- License. For legal entities, "You" includes any entity that
- controls, is controlled by, or is under common control with You. For
- purposes of this definition, "control" means (a) the power, direct
- or indirect, to cause the direction or management of such entity,
- whether by contract or otherwise, or (b) ownership of more than
- fifty percent (50%) of the outstanding shares or beneficial
- ownership of such entity.
-
-2. License Grants and Conditions
---------------------------------
-
-2.1. Grants
-
-Each Contributor hereby grants You a world-wide, royalty-free,
-non-exclusive license:
-
-(a) under intellectual property rights (other than patent or trademark)
- Licensable by such Contributor to use, reproduce, make available,
- modify, display, perform, distribute, and otherwise exploit its
- Contributions, either on an unmodified basis, with Modifications, or
- as part of a Larger Work; and
-
-(b) under Patent Claims of such Contributor to make, use, sell, offer
- for sale, have made, import, and otherwise transfer either its
- Contributions or its Contributor Version.
-
-2.2. Effective Date
-
-The licenses granted in Section 2.1 with respect to any Contribution
-become effective for each Contribution on the date the Contributor first
-distributes such Contribution.
-
-2.3. Limitations on Grant Scope
-
-The licenses granted in this Section 2 are the only rights granted under
-this License. No additional rights or licenses will be implied from the
-distribution or licensing of Covered Software under this License.
-Notwithstanding Section 2.1(b) above, no patent license is granted by a
-Contributor:
-
-(a) for any code that a Contributor has removed from Covered Software;
- or
-
-(b) for infringements caused by: (i) Your and any other third party's
- modifications of Covered Software, or (ii) the combination of its
- Contributions with other software (except as part of its Contributor
- Version); or
-
-(c) under Patent Claims infringed by Covered Software in the absence of
- its Contributions.
-
-This License does not grant any rights in the trademarks, service marks,
-or logos of any Contributor (except as may be necessary to comply with
-the notice requirements in Section 3.4).
-
-2.4. Subsequent Licenses
-
-No Contributor makes additional grants as a result of Your choice to
-distribute the Covered Software under a subsequent version of this
-License (see Section 10.2) or under the terms of a Secondary License (if
-permitted under the terms of Section 3.3).
-
-2.5. Representation
-
-Each Contributor represents that the Contributor believes its
-Contributions are its original creation(s) or it has sufficient rights
-to grant the rights to its Contributions conveyed by this License.
-
-2.6. Fair Use
-
-This License is not intended to limit any rights You have under
-applicable copyright doctrines of fair use, fair dealing, or other
-equivalents.
-
-2.7. Conditions
-
-Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
-in Section 2.1.
-
-3. Responsibilities
--------------------
-
-3.1. Distribution of Source Form
-
-All distribution of Covered Software in Source Code Form, including any
-Modifications that You create or to which You contribute, must be under
-the terms of this License. You must inform recipients that the Source
-Code Form of the Covered Software is governed by the terms of this
-License, and how they can obtain a copy of this License. You may not
-attempt to alter or restrict the recipients' rights in the Source Code
-Form.
-
-3.2. Distribution of Executable Form
-
-If You distribute Covered Software in Executable Form then:
-
-(a) such Covered Software must also be made available in Source Code
- Form, as described in Section 3.1, and You must inform recipients of
- the Executable Form how they can obtain a copy of such Source Code
- Form by reasonable means in a timely manner, at a charge no more
- than the cost of distribution to the recipient; and
-
-(b) You may distribute such Executable Form under the terms of this
- License, or sublicense it under different terms, provided that the
- license for the Executable Form does not attempt to limit or alter
- the recipients' rights in the Source Code Form under this License.
-
-3.3. Distribution of a Larger Work
-
-You may create and distribute a Larger Work under terms of Your choice,
-provided that You also comply with the requirements of this License for
-the Covered Software. If the Larger Work is a combination of Covered
-Software with a work governed by one or more Secondary Licenses, and the
-Covered Software is not Incompatible With Secondary Licenses, this
-License permits You to additionally distribute such Covered Software
-under the terms of such Secondary License(s), so that the recipient of
-the Larger Work may, at their option, further distribute the Covered
-Software under the terms of either this License or such Secondary
-License(s).
-
-3.4. Notices
-
-You may not remove or alter the substance of any license notices
-(including copyright notices, patent notices, disclaimers of warranty,
-or limitations of liability) contained within the Source Code Form of
-the Covered Software, except that You may alter any license notices to
-the extent required to remedy known factual inaccuracies.
-
-3.5. Application of Additional Terms
-
-You may choose to offer, and to charge a fee for, warranty, support,
-indemnity or liability obligations to one or more recipients of Covered
-Software. However, You may do so only on Your own behalf, and not on
-behalf of any Contributor. You must make it absolutely clear that any
-such warranty, support, indemnity, or liability obligation is offered by
-You alone, and You hereby agree to indemnify every Contributor for any
-liability incurred by such Contributor as a result of warranty, support,
-indemnity or liability terms You offer. You may include additional
-disclaimers of warranty and limitations of liability specific to any
-jurisdiction.
-
-4. Inability to Comply Due to Statute or Regulation
----------------------------------------------------
-
-If it is impossible for You to comply with any of the terms of this
-License with respect to some or all of the Covered Software due to
-statute, judicial order, or regulation then You must: (a) comply with
-the terms of this License to the maximum extent possible; and (b)
-describe the limitations and the code they affect. Such description must
-be placed in a text file included with all distributions of the Covered
-Software under this License. Except to the extent prohibited by statute
-or regulation, such description must be sufficiently detailed for a
-recipient of ordinary skill to be able to understand it.
-
-5. Termination
---------------
-
-5.1. The rights granted under this License will terminate automatically
-if You fail to comply with any of its terms. However, if You become
-compliant, then the rights granted under this License from a particular
-Contributor are reinstated (a) provisionally, unless and until such
-Contributor explicitly and finally terminates Your grants, and (b) on an
-ongoing basis, if such Contributor fails to notify You of the
-non-compliance by some reasonable means prior to 60 days after You have
-come back into compliance. Moreover, Your grants from a particular
-Contributor are reinstated on an ongoing basis if such Contributor
-notifies You of the non-compliance by some reasonable means, this is the
-first time You have received notice of non-compliance with this License
-from such Contributor, and You become compliant prior to 30 days after
-Your receipt of the notice.
-
-5.2. If You initiate litigation against any entity by asserting a patent
-infringement claim (excluding declaratory judgment actions,
-counter-claims, and cross-claims) alleging that a Contributor Version
-directly or indirectly infringes any patent, then the rights granted to
-You by any and all Contributors for the Covered Software under Section
-2.1 of this License shall terminate.
-
-5.3. In the event of termination under Sections 5.1 or 5.2 above, all
-end user license agreements (excluding distributors and resellers) which
-have been validly granted by You or Your distributors under this License
-prior to termination shall survive termination.
-
-************************************************************************
-* *
-* 6. Disclaimer of Warranty *
-* ------------------------- *
-* *
-* Covered Software is provided under this License on an "as is" *
-* basis, without warranty of any kind, either expressed, implied, or *
-* statutory, including, without limitation, warranties that the *
-* Covered Software is free of defects, merchantable, fit for a *
-* particular purpose or non-infringing. The entire risk as to the *
-* quality and performance of the Covered Software is with You. *
-* Should any Covered Software prove defective in any respect, You *
-* (not any Contributor) assume the cost of any necessary servicing, *
-* repair, or correction. This disclaimer of warranty constitutes an *
-* essential part of this License. No use of any Covered Software is *
-* authorized under this License except under this disclaimer. *
-* *
-************************************************************************
-
-************************************************************************
-* *
-* 7. Limitation of Liability *
-* -------------------------- *
-* *
-* Under no circumstances and under no legal theory, whether tort *
-* (including negligence), contract, or otherwise, shall any *
-* Contributor, or anyone who distributes Covered Software as *
-* permitted above, be liable to You for any direct, indirect, *
-* special, incidental, or consequential damages of any character *
-* including, without limitation, damages for lost profits, loss of *
-* goodwill, work stoppage, computer failure or malfunction, or any *
-* and all other commercial damages or losses, even if such party *
-* shall have been informed of the possibility of such damages. This *
-* limitation of liability shall not apply to liability for death or *
-* personal injury resulting from such party's negligence to the *
-* extent applicable law prohibits such limitation. Some *
-* jurisdictions do not allow the exclusion or limitation of *
-* incidental or consequential damages, so this exclusion and *
-* limitation may not apply to You. *
-* *
-************************************************************************
-
-8. Litigation
--------------
-
-Any litigation relating to this License may be brought only in the
-courts of a jurisdiction where the defendant maintains its principal
-place of business and such litigation shall be governed by laws of that
-jurisdiction, without reference to its conflict-of-law provisions.
-Nothing in this Section shall prevent a party's ability to bring
-cross-claims or counter-claims.
-
-9. Miscellaneous
-----------------
-
-This License represents the complete agreement concerning the subject
-matter hereof. If any provision of this License is held to be
-unenforceable, such provision shall be reformed only to the extent
-necessary to make it enforceable. Any law or regulation which provides
-that the language of a contract shall be construed against the drafter
-shall not be used to construe this License against a Contributor.
-
-10. Versions of the License
----------------------------
-
-10.1. New Versions
-
-Mozilla Foundation is the license steward. Except as provided in Section
-10.3, no one other than the license steward has the right to modify or
-publish new versions of this License. Each version will be given a
-distinguishing version number.
-
-10.2. Effect of New Versions
-
-You may distribute the Covered Software under the terms of the version
-of the License under which You originally received the Covered Software,
-or under the terms of any subsequent version published by the license
-steward.
-
-10.3. Modified Versions
-
-If you create software not governed by this License, and you want to
-create a new license for such software, you may create and use a
-modified version of this License if you rename the license and remove
-any references to the name of the license steward (except to note that
-such modified license differs from this License).
-
-10.4. Distributing Source Code Form that is Incompatible With Secondary
-Licenses
-
-If You choose to distribute Source Code Form that is Incompatible With
-Secondary Licenses under the terms of this version of the License, the
-notice described in Exhibit B of this License must be attached.
-
-Exhibit A - Source Code Form License Notice
--------------------------------------------
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-If it is not possible or desirable to put the notice in a particular
-file, then You may include the notice in a location (such as a LICENSE
-file in a relevant directory) where a recipient would be likely to look
-for such a notice.
-
-You may add additional accurate notices of copyright ownership.
-
-Exhibit B - "Incompatible With Secondary Licenses" Notice
----------------------------------------------------------
-
- This Source Code Form is "Incompatible With Secondary Licenses", as
- defined by the Mozilla Public License, v. 2.0.
diff --git a/node_modules/typhonjs-istanbul-instrument-jspm/README.md b/node_modules/typhonjs-istanbul-instrument-jspm/README.md
deleted file mode 100644
index 4ab047825..000000000
--- a/node_modules/typhonjs-istanbul-instrument-jspm/README.md
+++ /dev/null
@@ -1,57 +0,0 @@
-![typhonjs-config-jspm-parse](http://i.imgur.com/G3zAIuf.png)
-
-[![NPM](https://img.shields.io/npm/v/typhonjs-istanbul-instrument-jspm.svg?label=npm)](https://www.npmjs.com/package/typhonjs-istanbul-instrument-jspm)
-[![Code Style](https://img.shields.io/badge/code%20style-allman-yellowgreen.svg?style=flat)](https://en.wikipedia.org/wiki/Indent_style#Allman_style)
-[![License](https://img.shields.io/badge/license-MPLv2-yellowgreen.svg?style=flat)](https://github.com/typhonjs-node-jspm/typhonjs-istanbul-instrument-jspm/blob/master/LICENSE)
-[![Gitter](https://img.shields.io/gitter/room/typhonjs/TyphonJS.svg)](https://gitter.im/typhonjs/TyphonJS)
-
-[![Build Status](https://travis-ci.org/typhonjs-node-jspm/typhonjs-istanbul-instrument-jspm.svg?branch=master)](https://travis-ci.org/typhonjs-node-jspm/typhonjs-istanbul-instrument-jspm)
-[![Coverage](https://img.shields.io/codecov/c/github/typhonjs-node-jspm/typhonjs-istanbul-instrument-jspm.svg)](https://codecov.io/github/typhonjs-node-jspm/typhonjs-istanbul-instrument-jspm)
-[![Dependency Status](https://www.versioneye.com/user/projects/56e5c275df573d00472cd46f/badge.svg?style=flat)](https://www.versioneye.com/user/projects/56e5c275df573d00472cd46f)
-
-Provides a NPM module to add Istanbul instrumentation to JSPM / SystemJS by replacing the System.translate hook.
-
-By using this module SystemJS can be instrumented for code coverage with Istanbul with minimal effort.
-
-For a comprehensive ES6 build / testing / publishing NPM module please see [typhonjs-npm-build-test](https://www.npmjs.com/package/typhonjs-npm-build-test) as it combines this module along with transpiling ES6 sources with Babel, pre-publish script detection, ESDoc dependencies, testing with Mocha / Istanbul and an Istanbul instrumentation hook for JSPM / SystemJS tests.
-
-Please review [istanbul-jspm-coverage-example](https://github.com/typhonjs-demos-test/istanbul-jspm-coverage-example) for a complete working example which uses `typhonjs-npm-build-test` and subsequently this module which is included as a dependency to `typhonjs-npm-build-test`.
-
------
-
-In short an ES6 Mocha test that instruments Istanbul will do the following:
-```
-import jspm from 'jspm';
-
-import instrumentIstanbulSystem from 'typhonjs-istanbul-instrument-jspm';
-
-// Set the package path to the local root where config.js is located.
-jspm.setPackagePath(process.cwd());
-
-// Create SystemJS Loader
-const System = new jspm.Loader();
-
-// Replaces System.translate with version that provides Istanbul instrumentation.
-instrumentIstanbulSystem(System);
-```
-
-`instrumentIstanbulSystem` takes two parameters:
-```
-(object) System - An instance of SystemJS.
-
-(RegExp) sourceFilePathRegex - (optional) A regex which defines which source files are instrumented; default excludes
- any sources with file paths that includes `jspm_packages`.
-```
-
-It should be noted that the default source file path regex is defined as `/^((?!jspm_packages).)*$/` which excludes any sourcecode loaded from `jspm_packages`. You may optionally pass in a regex as the second parameter to `instrumentIstanbulSystem`. An example of excluding both `jspm_packages` and `./test/src` is: `instrumentIstanbulSystem(System, /^((?!jspm_packages|test\/src\/).)*$/);`.
-
-A final important detail when using Istanbul is that the `cover` command will not pickup the source instrumented via `typhonjs-istanbul-instrument-jspm` when an initial report is generated, however the instrumentation is represented in `coverage.raw.json`. To make sure SystemJS sources are represented in the final report simply run the Istanbul `report` command and the original source will be included in the report. This is automated by the [mocha-istanbul-report]() NPM script that is included as part of `typhonjs-npm-build-test` / `typhonjs-npm-scripts-test-mocha`.
-
-In `package.json` add an NPM script like the following:
-```
-"scripts": {
- "test-coverage": "babel-node ./node_modules/typhonjs-npm-scripts-test-mocha/scripts/mocha-istanbul-report.js"
-}
-```
-
-Please note that the TyphonJS NPM scripts use a separate configuration file `./npmscriptrc` to define various actions. For further information refer to [typhonjs-npm-scripts-test-mocha](https://www.npmjs.com/package/typhonjs-npm-scripts-test-mocha)
diff --git a/node_modules/typhonjs-istanbul-instrument-jspm/dist/instrumentIstanbulSystem.js b/node_modules/typhonjs-istanbul-instrument-jspm/dist/instrumentIstanbulSystem.js
deleted file mode 100644
index 593260119..000000000
--- a/node_modules/typhonjs-istanbul-instrument-jspm/dist/instrumentIstanbulSystem.js
+++ /dev/null
@@ -1,85 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.default = instrumentIstanbulSystem;
-
-var _istanbulLibInstrument = require('istanbul-lib-instrument');
-
-var _istanbulLibInstrument2 = _interopRequireDefault(_istanbulLibInstrument);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-// Good enough ES6 module detection regex.
-// Format detections not designed to be accurate, but to handle the 99% use case.
-var s_ESM_REGEX = /(^\s*|[}\);\n]\s*)(import\s*(['"]|(\*\s+as\s+)?[^"'\(\)\n;]+\s*from\s*['"]|\{)|export\s+\*\s+from\s+["']|export\s* (\{|default|function|class|var|const|let|async\s+function))/;
-
-/**
- * Instruments JSPM / SystemJS replacing the `System.translate` hook adding Istanbul instrumentation of loaded source
- * code before deferring the instrumented source for translation. The instrumentation process occurs on the original
- * source code and supports ES5 and ES Modules (ES6+).
- *
- * @param {object} System - An instance of SystemJS.
- *
- * @param {RegExp} sourceFilePathRegex - A regex which defines which source files are instrumented; default excludes
- * any sources with file paths that includes `jspm_packages`.
- */
-function instrumentIstanbulSystem(System) {
- var sourceFilePathRegex = arguments.length <= 1 || arguments[1] === undefined ? /^((?!jspm_packages).)*$/ : arguments[1];
-
- /* istanbul ignore if */
- if (typeof System.translate !== 'function') {
- throw new TypeError("instrumentIstanbulSystem - 'System' is not an instance of the SystemJS API.");
- }
-
- /* istanbul ignore if */
- if (!(sourceFilePathRegex instanceof RegExp)) {
- throw new TypeError("instrumentIstanbulSystem - 'sourceFilePathRegex' is not an instance of RexExp.");
- }
-
- // Coverage variable created by Istanbul and stored in global variables.
- var coverageVariable = Object.keys(global).filter(function (key) {
- return key.startsWith('$$cov_');
- })[0];
-
- /* istanbul ignore if */
- if (typeof coverageVariable === 'undefined') {
- throw new TypeError('instrumentIstanbulSystem - Istanbul coverage variable could not be located in global variables.');
- }
-
- // ES5 instrumenter
- var instrumenter = _istanbulLibInstrument2.default.createInstrumenter({ coverageVariable: coverageVariable });
-
- // ES6 / ES Modules instrumenter
- var instrumenterESM = _istanbulLibInstrument2.default.createInstrumenter({ coverageVariable: coverageVariable, esModules: true });
-
- // Store the original `System.translate` hook.
- var systemTranslate = System.translate;
-
- // Override SystemJS translate hook to instrument original sources with Istanbul.
- System.translate = function (load) {
- var filePath = load.address.substr(System.baseURL.length);
-
- // Use `sourceFilePathRegex` to test file path for source instrumentation.
- if (sourceFilePathRegex.test(filePath)) {
- /* istanbul ignore next */
- try {
- // If a source file passes the ES6 / ES Module regex test then use the ESM instrumenter.
- if (s_ESM_REGEX.test(load.source) || load.metadata.format === 'esm') {
- load.source = instrumenterESM.instrumentSync(load.source, filePath);
- } else {
- load.source = instrumenter.instrumentSync(load.source, filePath);
- }
- } catch (err) {
- var newErr = new Error('Unable to instrument \'' + load.name + '\' for Istanbul:\n\t' + err.message);
- newErr.stack = 'Unable to instrument \'' + load.name + '\' for istanbul:\n\t' + err.stack;
- newErr.originalErr = err.originalErr || err;
- throw newErr;
- }
- }
-
- // Defer to the original `System.translate` hook.
- return systemTranslate.call(System, load);
- };
-} \ No newline at end of file
diff --git a/node_modules/typhonjs-istanbul-instrument-jspm/package.json b/node_modules/typhonjs-istanbul-instrument-jspm/package.json
deleted file mode 100644
index eb3a7c2cc..000000000
--- a/node_modules/typhonjs-istanbul-instrument-jspm/package.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "name": "typhonjs-istanbul-instrument-jspm",
- "version": "0.1.0",
- "homepage": "https://github.com/typhonjs-node-jspm/typhonjs-istanbul-instrument-jspm/",
- "description": "Provides a NPM module to add Istanbul instrumentation to JSPM / SystemJS by replacing the System.translate hook.",
- "license": "MPL-2.0",
- "author": {
- "name": "Mike Leahy"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/typhonjs-node-jspm/typhonjs-istanbul-instrument-jspm/typhonjs-istanbul-instrument-jspm.git"
- },
- "maintainers": [
- {
- "name": "Mike Leahy",
- "email": "support@js.typhonrt.org"
- }
- ],
- "devDependencies": {
- "jspm": "^0.16.0",
- "typhonjs-config-eslint": "^0.4.0",
- "typhonjs-npm-build-test": "^0.x.x"
- },
- "engines": {
- "npm": ">=3.x"
- },
- "scripts": {
- "build": "babel-node ./node_modules/typhonjs-npm-scripts-build-babel/scripts/build.js",
- "esdoc": "esdoc -c .esdocrc",
- "eslint": "eslint .",
- "prepublish": "babel-node ./node_modules/typhonjs-npm-scripts-publish/scripts/prepublish.js",
- "test-coverage": "babel-node ./node_modules/typhonjs-npm-scripts-test-mocha/scripts/mocha-istanbul-report.js",
- "test-runner": "babel-node ./node_modules/.bin/_mocha --compilers js:babel-register -t 120000 ./test/runner/TestRunner.js"
- },
- "jspm": {
- "directories": {},
- "devDependencies": {
- "babel": "npm:babel-core@^5.8.35",
- "babel-runtime": "npm:babel-runtime@^5.8.35",
- "core-js": "npm:core-js@^1.2.6",
- "underscore": "npm:underscore@^1.8.3"
- }
- },
- "typhonjs": {
- "scm": {
- "autoInstallJSPM": false
- }
- },
- "keywords": [
- "instrument",
- "istanbul",
- "jspm",
- "systemjs",
- "plugin",
- "ES6",
- "ES2015",
- "ECMAScript6",
- "ECMAScript2015"
- ],
- "main": "dist/instrumentIstanbulSystem.js",
- "files": [
- "dist",
- "src",
- "AUTHORS.md"
- ],
- "directories": {},
- "bugs": {
- "url": "https://github.com/typhonjs-node-jspm/typhonjs-istanbul-instrument-jspm/issues"
- }
-}
diff --git a/node_modules/typhonjs-istanbul-instrument-jspm/src/instrumentIstanbulSystem.js b/node_modules/typhonjs-istanbul-instrument-jspm/src/instrumentIstanbulSystem.js
deleted file mode 100644
index 754dd928b..000000000
--- a/node_modules/typhonjs-istanbul-instrument-jspm/src/instrumentIstanbulSystem.js
+++ /dev/null
@@ -1,85 +0,0 @@
-'use strict';
-
-import Instrumenter from 'istanbul-lib-instrument';
-
-// Good enough ES6 module detection regex.
-// Format detections not designed to be accurate, but to handle the 99% use case.
-const s_ESM_REGEX = /(^\s*|[}\);\n]\s*)(import\s*(['"]|(\*\s+as\s+)?[^"'\(\)\n;]+\s*from\s*['"]|\{)|export\s+\*\s+from\s+["']|export\s* (\{|default|function|class|var|const|let|async\s+function))/;
-
-/**
- * Instruments JSPM / SystemJS replacing the `System.translate` hook adding Istanbul instrumentation of loaded source
- * code before deferring the instrumented source for translation. The instrumentation process occurs on the original
- * source code and supports ES5 and ES Modules (ES6+).
- *
- * @param {object} System - An instance of SystemJS.
- *
- * @param {RegExp} sourceFilePathRegex - A regex which defines which source files are instrumented; default excludes
- * any sources with file paths that includes `jspm_packages`.
- */
-export default function instrumentIstanbulSystem(System, sourceFilePathRegex = /^((?!jspm_packages).)*$/)
-{
- /* istanbul ignore if */
- if (typeof System.translate !== 'function')
- {
- throw new TypeError("instrumentIstanbulSystem - 'System' is not an instance of the SystemJS API.");
- }
-
- /* istanbul ignore if */
- if (!(sourceFilePathRegex instanceof RegExp))
- {
- throw new TypeError("instrumentIstanbulSystem - 'sourceFilePathRegex' is not an instance of RexExp.");
- }
-
- // Coverage variable created by Istanbul and stored in global variables.
- const coverageVariable = Object.keys(global).filter((key) => { return key.startsWith('$$cov_'); })[0];
-
- /* istanbul ignore if */
- if (typeof coverageVariable === 'undefined')
- {
- throw new TypeError(
- 'instrumentIstanbulSystem - Istanbul coverage variable could not be located in global variables.');
- }
-
- // ES5 instrumenter
- const instrumenter = Instrumenter.createInstrumenter({ coverageVariable });
-
- // ES6 / ES Modules instrumenter
- const instrumenterESM = Instrumenter.createInstrumenter({ coverageVariable, esModules: true });
-
- // Store the original `System.translate` hook.
- const systemTranslate = System.translate;
-
- // Override SystemJS translate hook to instrument original sources with Istanbul.
- System.translate = (load) =>
- {
- const filePath = load.address.substr(System.baseURL.length);
-
- // Use `sourceFilePathRegex` to test file path for source instrumentation.
- if (sourceFilePathRegex.test(filePath))
- {
- /* istanbul ignore next */
- try
- {
- // If a source file passes the ES6 / ES Module regex test then use the ESM instrumenter.
- if (s_ESM_REGEX.test(load.source) || load.metadata.format === 'esm')
- {
- load.source = instrumenterESM.instrumentSync(load.source, filePath);
- }
- else
- {
- load.source = instrumenter.instrumentSync(load.source, filePath);
- }
- }
- catch (err)
- {
- const newErr = new Error(`Unable to instrument '${load.name}' for Istanbul:\n\t${err.message}`);
- newErr.stack = `Unable to instrument '${load.name}' for istanbul:\n\t${err.stack}`;
- newErr.originalErr = err.originalErr || err;
- throw newErr;
- }
- }
-
- // Defer to the original `System.translate` hook.
- return systemTranslate.call(System, load);
- };
-}
diff --git a/node_modules/unpipe/HISTORY.md b/node_modules/unpipe/HISTORY.md
deleted file mode 100644
index 85e0f8d74..000000000
--- a/node_modules/unpipe/HISTORY.md
+++ /dev/null
@@ -1,4 +0,0 @@
-1.0.0 / 2015-06-14
-==================
-
- * Initial release
diff --git a/node_modules/unpipe/LICENSE b/node_modules/unpipe/LICENSE
deleted file mode 100644
index aed013827..000000000
--- a/node_modules/unpipe/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2015 Douglas Christopher Wilson <doug@somethingdoug.com>
-
-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.
diff --git a/node_modules/unpipe/README.md b/node_modules/unpipe/README.md
deleted file mode 100644
index e536ad2c0..000000000
--- a/node_modules/unpipe/README.md
+++ /dev/null
@@ -1,43 +0,0 @@
-# unpipe
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Node.js Version][node-image]][node-url]
-[![Build Status][travis-image]][travis-url]
-[![Test Coverage][coveralls-image]][coveralls-url]
-
-Unpipe a stream from all destinations.
-
-## Installation
-
-```sh
-$ npm install unpipe
-```
-
-## API
-
-```js
-var unpipe = require('unpipe')
-```
-
-### unpipe(stream)
-
-Unpipes all destinations from a given stream. With stream 2+, this is
-equivalent to `stream.unpipe()`. When used with streams 1 style streams
-(typically Node.js 0.8 and below), this module attempts to undo the
-actions done in `stream.pipe(dest)`.
-
-## License
-
-[MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/unpipe.svg
-[npm-url]: https://npmjs.org/package/unpipe
-[node-image]: https://img.shields.io/node/v/unpipe.svg
-[node-url]: http://nodejs.org/download/
-[travis-image]: https://img.shields.io/travis/stream-utils/unpipe.svg
-[travis-url]: https://travis-ci.org/stream-utils/unpipe
-[coveralls-image]: https://img.shields.io/coveralls/stream-utils/unpipe.svg
-[coveralls-url]: https://coveralls.io/r/stream-utils/unpipe?branch=master
-[downloads-image]: https://img.shields.io/npm/dm/unpipe.svg
-[downloads-url]: https://npmjs.org/package/unpipe
diff --git a/node_modules/unpipe/index.js b/node_modules/unpipe/index.js
deleted file mode 100644
index 15c3d97a1..000000000
--- a/node_modules/unpipe/index.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/*!
- * unpipe
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = unpipe
-
-/**
- * Determine if there are Node.js pipe-like data listeners.
- * @private
- */
-
-function hasPipeDataListeners(stream) {
- var listeners = stream.listeners('data')
-
- for (var i = 0; i < listeners.length; i++) {
- if (listeners[i].name === 'ondata') {
- return true
- }
- }
-
- return false
-}
-
-/**
- * Unpipe a stream from all destinations.
- *
- * @param {object} stream
- * @public
- */
-
-function unpipe(stream) {
- if (!stream) {
- throw new TypeError('argument stream is required')
- }
-
- if (typeof stream.unpipe === 'function') {
- // new-style
- stream.unpipe()
- return
- }
-
- // Node.js 0.8 hack
- if (!hasPipeDataListeners(stream)) {
- return
- }
-
- var listener
- var listeners = stream.listeners('close')
-
- for (var i = 0; i < listeners.length; i++) {
- listener = listeners[i]
-
- if (listener.name !== 'cleanup' && listener.name !== 'onclose') {
- continue
- }
-
- // invoke the listener
- listener.call(stream)
- }
-}
diff --git a/node_modules/unpipe/package.json b/node_modules/unpipe/package.json
deleted file mode 100644
index a2b73583b..000000000
--- a/node_modules/unpipe/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "unpipe",
- "description": "Unpipe a stream from all destinations",
- "version": "1.0.0",
- "author": "Douglas Christopher Wilson <doug@somethingdoug.com>",
- "license": "MIT",
- "repository": "stream-utils/unpipe",
- "devDependencies": {
- "istanbul": "0.3.15",
- "mocha": "2.2.5",
- "readable-stream": "1.1.13"
- },
- "files": [
- "HISTORY.md",
- "LICENSE",
- "README.md",
- "index.js"
- ],
- "engines": {
- "node": ">= 0.8"
- },
- "scripts": {
- "test": "mocha --reporter spec --bail --check-leaks test/",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/",
- "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"
- }
-}
diff --git a/node_modules/utils-merge/.travis.yml b/node_modules/utils-merge/.travis.yml
deleted file mode 100644
index af92b021b..000000000
--- a/node_modules/utils-merge/.travis.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-language: "node_js"
-node_js:
- - "0.4"
- - "0.6"
- - "0.8"
- - "0.10"
diff --git a/node_modules/utils-merge/LICENSE b/node_modules/utils-merge/LICENSE
deleted file mode 100644
index e33bd10bb..000000000
--- a/node_modules/utils-merge/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2013 Jared Hanson
-
-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.
diff --git a/node_modules/utils-merge/README.md b/node_modules/utils-merge/README.md
deleted file mode 100644
index 2f94e9bd2..000000000
--- a/node_modules/utils-merge/README.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# utils-merge
-
-Merges the properties from a source object into a destination object.
-
-## Install
-
- $ npm install utils-merge
-
-## Usage
-
-```javascript
-var a = { foo: 'bar' }
- , b = { bar: 'baz' };
-
-merge(a, b);
-// => { foo: 'bar', bar: 'baz' }
-```
-
-## Tests
-
- $ npm install
- $ npm test
-
-[![Build Status](https://secure.travis-ci.org/jaredhanson/utils-merge.png)](http://travis-ci.org/jaredhanson/utils-merge)
-
-## Credits
-
- - [Jared Hanson](http://github.com/jaredhanson)
-
-## License
-
-[The MIT License](http://opensource.org/licenses/MIT)
-
-Copyright (c) 2013 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)>
diff --git a/node_modules/utils-merge/index.js b/node_modules/utils-merge/index.js
deleted file mode 100644
index 4265c694f..000000000
--- a/node_modules/utils-merge/index.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * Merge object b with object a.
- *
- * var a = { foo: 'bar' }
- * , b = { bar: 'baz' };
- *
- * merge(a, b);
- * // => { foo: 'bar', bar: 'baz' }
- *
- * @param {Object} a
- * @param {Object} b
- * @return {Object}
- * @api public
- */
-
-exports = module.exports = function(a, b){
- if (a && b) {
- for (var key in b) {
- a[key] = b[key];
- }
- }
- return a;
-};
diff --git a/node_modules/utils-merge/package.json b/node_modules/utils-merge/package.json
deleted file mode 100644
index a02940d41..000000000
--- a/node_modules/utils-merge/package.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "utils-merge",
- "version": "1.0.0",
- "description": "merge() utility function",
- "keywords": [
- "util"
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/jaredhanson/utils-merge.git"
- },
- "bugs": {
- "url": "http://github.com/jaredhanson/utils-merge/issues"
- },
- "author": {
- "name": "Jared Hanson",
- "email": "jaredhanson@gmail.com",
- "url": "http://www.jaredhanson.net/"
- },
- "licenses": [
- {
- "type": "MIT",
- "url": "http://www.opensource.org/licenses/MIT"
- }
- ],
- "main": "./index",
- "dependencies": {
- },
- "devDependencies": {
- "mocha": "1.x.x",
- "chai": "1.x.x"
- },
- "scripts": {
- "test": "node_modules/.bin/mocha --reporter spec --require test/bootstrap/node test/*.test.js"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
-}
diff --git a/node_modules/when/CHANGES.md b/node_modules/when/CHANGES.md
deleted file mode 100644
index e52f4ff89..000000000
--- a/node_modules/when/CHANGES.md
+++ /dev/null
@@ -1,448 +0,0 @@
-### 3.7.7
-
-* Fix browserify
-
-### 3.7.6
-
-* Add browser dist version to npm package
-
-### 3.7.5
-
-* Improve unhandled rejection formatting in ie8
-
-### 3.7.4
-
-* Add `when/keys settle`, for settling a hash of promises.
-* Use `poly` from npm instead of a git link in package.json. No need for git to be available to npm install when.
-* Various community-contributed documentation updates. Thanks!
-
-### 3.7.3
-
-* Fix console.log check when using `monitor/console` in IE8.
-* Fix issues with webpack environment and fake timers.
-* Several community-contributed doc fixes. Thanks!
-
-### 3.7.2
-
-* Republish 3.7.1 npm package: for some reason, `npm publish` did not include the file `poll.js` when publishing 3.7.1
-* No functional changes
-
-### 3.7.1
-
-* Fix `when.settle` unhandled rejection reporting case.
-
-### 3.7.0
-
-* Add [`process` and `window` unhandled rejection events](#docs/debug-api.md) for cross-library debugging tools.
-* Improve internal task queueing performance and memory usage.
-* Stabilize handler ordering in the face of multiple promise implementations.
-
-### 3.6.4
-
-* Fix handling of `null` errors in unhandled rejection reporting
-* Add [examples of supporting both promise and node style callbacks](docs/api.md#support-promises-and-node-style-callback-functions) in the same API
-
-### 3.6.3
-
-* Fix regression in `when/callbacks` introduced in 3.6.1
-
-### 3.6.2
-
-* Work around [v8 optimizing compiler bug](https://code.google.com/p/v8/issues/detail?id=3692) with some *truly amazing* help from community members. Thank you [@anodynos](https://github.com/anodynos), [@jefflage](https://github.com/jefflage), [@pbarnes](https://github.com/pbarnes), [@spion](https://github.com/spion), [@tsouza](https://github.com/tsouza).
-* Fix regressions in `when.filter` and `when.reduce` (which also affected `when/sequence`).
-
-### 3.6.1
-
-* Significant improvements to `when.try`, and `when.lift`.
-* Additional improvements to array functions: `when.reduce`, `when.any`, and `when.some`.
-* Improved handling of early bail-out cases in `when.all`, `when.map`, and `when.any`.
-
-### 3.6.0
-
-* Significant performance improvements:
- * 10x or more for `when.map`, especially for large arrays
- * ~2x for `when.reduce` and `promise.fold`
- * ~1.5-2x for generators using `when/generator` `lift`, `call`, and/or `apply`.
-* Memory use reductions for `when.reduce` and `promise.fold`.
-
-### 3.5.2
-
-* Prevent minifiers from clobbering unhandled rejection reporting if they remove `console.*` calls. Unhandled rejections will be reported even when using Uglify `drop_console`.
-* `when/function.apply` now handles passing an Arguments object directly, e.g. `fn.apply(f, arguments);`. Use with care: v8 will deoptimize any function where you pass `arguments` to another function.
-
-### 3.5.1
-
-* `when.race` & `Promise.race` now reject with a `TypeError` if you pass something that is not iterable.
-* Improve scheduler compatibility with MutationObserver shims
-* Simplify checks for vert.x environment
-
-### 3.5.0
-
-* Improve `when.race` & `Promise.race` performance.
-* Internal changes to start paving the way toward 4.0.0.
-* Deprecate `when.iterate` and `when.unfold`. Use [cujoJS/most](https://github.com/cujojs/most) for streaming asynchronous values.
-* Deprecate progress events. See [the docs for more information](docs/api.md#progress-events-are-deprecated) and [tips on refactoring](docs/api.md#refactoring-progress) code that uses promise progress.
-
-### 3.4.6
-
-* Fix webpack compatibility by excluding `vertx` from browser bundles
-
-### 3.4.5
-
-* Fixes for edge cases for unhandled rejection reporting
-
-### 3.4.4
-
-* Workaround for node 0.10.30 setTimeout bug. See [this issue](https://github.com/joyent/node/issues/8167)
-
-### 3.4.3
-
-* Improve error handling for [predicate catch](docs/api.md#promisecatch)
-* Simplify internals and reduce code size
-
-### 3.4.2
-
-* Fix for rare false negative in [unhandled rejection reporting](docs/api.md#debugging-promises).
-
-### 3.4.1
-
-* Fix for `promise.finally` not waiting on returned promises.
-
-### 3.4.0
-
-* New [`when.filter`](docs/api.md#whenfilter) for filtering arrays of promises.
-* [`when.map`](docs/api.md#whenmap) and [`when.filter`](docs/api.md#whenfilter) now provide the array index as the second param to their mapping and filtering functions.
-* [`when/keys.map`](docs/api.md#whenkeys-map) now provides the associated key to its mapping function.
-* Smaller ES6 shim.
-
-### 3.3.1
-
-* Fix argument ordering bug in `when/node` introduced in 3.3.0.
-
-### 3.3.0
-
-* Promote [`when.race`](docs/api.md#whenrace) to public API.
-* `when.any` and `when.some` now reject with a `RangeError` if the race is obviously unwinnable, for example: `when.some([1,2,3], 4)`. See the [`when.any`](docs/api.md#whenany) and [`when.some`](docs/api.md#whensome) docs for more info.
-
-### 3.2.3
-
-* Updated [debugging docs](docs/api.md#debugging-promises)
-* Report when previously unhandled rejections become handled, with an ID to correlate the two messages.
-* Improve unhandled rejection reporting for cases where multiple different promise implementations interleave.
-
-### 3.2.2
-
-* More mem and perf improvements
-* Improvements to unhandled rejection reporting
-
-### 3.2.1
-
-* Minor mem and perf tweaks for `when.all`
-* Defend against `JSON.stringify` exceptions when formatting unhandled rejection output.
-
-### 3.2.0
-
-* Potentially unhandled rejections are now logged to `console.error` by default, even without using `done` or `when/monitor/console`. As before, enabling `when/monitor/console` still adds long async stack traces, and using `done` still makes errors fatal. See [Debugging Promises](docs/api.md#debugging-promises) for more info.
-* [`promise.timeout`](docs/api.md#promisetimeout) now rejects with a [`TimeoutError`](docs/api.md#timeouterror) by default (unless you specify a custom reason) for better pattern matching with [`promise.catch`](docs/api.md#promisecatch).
-* Performance improvements across the board, especially to `when.all` (and `Promise.all` in the [ES6-shim](docs/es6-promise-shim.md)) and `node.lift`: lifted functions and lift*ing* are faster now.
-* New [`promise.fold`](docs/api.md#promisefold) for combining two promises to generate a new promise.
-* Deprecated:
- * Using `when/node.lift`, `when/function.lift`, and `when/callbacks.lift` to provide partial arguments
- * `promise.then`'s 3rd argument, and `when()`'s 4th argument. Use the dedicated [`promise.progress`](docs/api.md#promiseprogress) API to listen to promise progress events.
- * `when.some`. See https://github.com/cujojs/when/issues/288
- * `when/callbacks.promisify` See https://github.com/cujojs/when/issues/318
-
-### 3.1.0
-
-* Added [optional `reason` param to `promise.timeout`](docs/api.md#promisetimeout) to specify your own timeout value.
-* Another significant speed bump for `when.all` (and es6-shim `Promise.all`)
-* More `when/monitor/console` long stack trace improvements. Traces can track nested async functions [even if you forget to return a promise](docs/api.md#whenmonitorconsole).
-* Clean up bower and npm installs by ignoring more markdown files
-
-### 3.0.1
-
-* [API doc](docs/api.md) updates and fixes
-* Improvements to unhandled rejection long stack trace filtering
-* Internal performance improvements
-
-### 3.0.0
-
-* New internal architecture with significant performance improvements and memory efficiency
-* New APIs
- * [`when.try`](docs/api.md#whentry), [`when.lift`](docs/api.md#whenlift), [`when.reduceRight`](docs/api.md#whenreduceRight), [`when.iterate`](docs/api.md#wheniterate), [`when.unfold`](docs/api.md#whenunfold), [`when.race`](docs/api.md#whenrace)
- * [`promise.with`](docs/api.md#promisewith), [`promise.else`](docs/api.md#promiseelse), [`promise.delay`](docs/api.md#promisedelay), [`promise.timeout`](docs/api.md#promisetimeout), [`promise.progress`](docs/api.md#promiseprogress)
-* New liftAll variants for lifting all of an object's functions in one shot, eg. `var promisedFs = node.liftAll(require('fs'))`
- * [`fn.liftAll`](docs/api.md#fnliftall), [`node.liftAll`](docs/api.md#nodeliftall), [`callbacks.liftAll`](docs/api.md#callbacksliftall)
-* `when.Promise` public, inheritance-friendly, Promise constructor
-* New [ES6 Promise shim](docs/es6-promise-shim.md)
-* Check out the [tips for upgrading to 3.0 from 2.x](docs/api.md#upgrading-to-30-from-2x)
-
-### 2.8.0
-
-* Experimental [ES6 generator support](docs/api.md#es6-generators) via new `when/generator` module, with `lift`, `call`, `apply`.
-
-### 2.7.1
-
-* Internal changes to reduce overall memory usage, along with minor performance improvements.
-
-### 2.7.0
-
-* Added [`promise.catch`](docs/api.md#catch) and [`promise.finally`](docs/api.md#finally) as synonyms for `promise.otherwise` and `promise.ensure`. (#212)
-* New [browserify build](../README.md#legacy-environments-via-browserify) for those using globals. (#209)
-* Added [ender](http://ender.jit.su) support to `package.json`. (#223)
-* Fix compatibility with [PhantomJS](http://phantomjs.org)'s CommonJS module support. (#226)
-* Fix [Sauce Labs](https://saucelabs.com) tests for pull requests. (#216)
-* Added `bower.json` `ignore` to trim files installed via bower. (#193)
-
-### 2.6.0
-
-* New [`promise.done`](docs/api.md#done) allows consuming the ultimate value at the end of a promise chain while ensuring that any errors are thrown to the host environment so you get loud stack traces.
-* `when/node/function` [`bindCallback`](docs/api.md#nodefn-bindcallback) and [`liftCallback`](docs/api.md#nodefn-liftcallback) now behave more like standard node-style APIs in that they allow exceptions to propagate to the host environment for loud stack traces.
-
-### 2.5.1
-
-* `ensure` now ignores non-functions, [like `then` does](http://promisesaplus.com/#point-25), for consistency. (#207)
-
-### 2.5.0
-
-* [Promises/A+ 1.1](http://promisesaplus.com) compliant. Passes version 2.0.0 of the [Promises/A+ test suite](https://github.com/promises-aplus/promises-tests).
-
-### 2.4.1
-
-* New `MutationObserver` scheduler further reduces "time-to-first-handler" in modern browsers. (#198)
- * Also, this works around a horrible IE10 bug (desktop and mobile) that renders `setImmediate`, `MessageChannel`, and `postMessage` unusable as fast task schedulers. Many thanks to @plaa and @calvinmetcalf for their help in discovering the problem and working out a solution. (#197)
-
-### 2.4.0
-
-* Experimental support for [vert.x 2.x](http://vertx.io). Should now run in vert.x >= 1.1.0.
-* New `when.isPromiseLike` as the more accurately-named synonym for `when.isPromise`.
-* **DEPRECATED**: `when.isPromise`. It can only tell you that something is "promise-like" (aka "thenable") anyway. Use the new, more accurately-named `when.isPromiseLike` instead.
-* Fix for promise monitor reporting extra unhandled rejections for `when.all` and `when.map`.
-
-### 2.3.0
-
-* New [`promise.tap`](docs/api.md#tap) for adding side effects to a promise chain.
-* New `MessageChannel` scheduler reduces "time-to-first" handler, in environments that support it.
-* Performance optimizations for promise resolution.
-* Internal architecture improvements to pave the way for when.js 3.0.0.
-
-### 2.2.1
-
-* Fix for `when.defer().reject()` bypassing the unhandled rejection monitor. (#166)
-* Fix for `when/function`, `when/callbacks`, and `when/node/function` not preserving `thisArg`. (#162)
-* Doc clarifications for [`promise.yield`](docs/api.md#yield). (#164)
-
-### 2.2.0
-
-* New experimental [promise monitoring and debugging](docs.md#debugging-promises) via `when/monitor/console`.
-* New [`when.promise(resolver)`](docs/api.md#whenpromise) promise creation API. A lighter alternative to the heavier `when.defer()`
-* New `bindCallback` and `liftCallback` in `when/node/function` for more integration options with node-style callbacks.
-
-### 2.1.1
-
-* Quote internal usages of `promise.yield` to workaround .NET minifier tools that don't yet understand ES5 identifier-as-property rules. See [#157](https://github.com/cujojs/when/issues/157)
-
-### 2.1.0
-
-* New [`when.settle`](docs/api.md#whensettle) that settles an array of promises, regardless of whether the fulfill or reject.
-* New [`when/guard`](docs/api.md#whenguard) generalized concurrency guarding and limiting
-* New [`promise.inspect`](docs/api.md#inspect) for synchronously getting a snapshot of a promise's state at a particular instant.
-* Significant performance improvements when resolving promises with non-primitives (Arrays, Objects, etc.)
-* Experimental [vert.x](http://vertx.io) support
-* **DEPRECATED**: `onFulfilled`, `onRejected`, `onProgress` handler arguments to `when.all`, `when.any`, `when.some`. Use the returned promise's `then()` (or `otherwise()`, `ensure()`, etc) to register handlers instead.
- * For example, do this: `when.all(array).then(onFulfilled, onRejected)` instead of this: `when.all(array, onFulfilled, onRejected)`. The functionality is equivalent.
-
-### 2.0.1
-
-* Account for the fact that Mocha creates a global named `process`. Thanks [Narsul](https://github.com/cujojs/when/pull/136)
-
-### 2.0.0
-
-* Fully asynchronous resolutions.
-* [Promises/A+](http://promises-aplus.github.com/promises-spec) compliance.
-* New [`when/keys`](docs/api.md#object-keys) module with `all()` and `map()` for object keys/values.
-* New [`promise.ensure`](docs/api.md#ensure) as a better, and safer, replacement for `promise.always`. [See discussion](https://github.com/cujojs/when/issues/103) as to why `promise.always` is mistake-prone.
- * **DEPRECATED:** `promise.always`
-* `lift()` is now the preferred name for what was `bind()` in [when/function](docs/api.md#synchronous-functions), [when/node/function](docs/api.md#node-style-asynchronous-functions), and [when/callbacks](docs/api.md#asynchronous-functions).
- * **DEPRECATED:** `bind()` in `when/function`, `when/node/function`, and `when/callbacks`. Use `lift()` instead.
-
-### 1.8.1
-
-* Last 1.x.x release before 2.0.0 barring critical fixes.
- * To prepare for 2.0.0, [test your code against the dev-200 branch](https://github.com/cujojs/when/tree/dev-200). It is fully API compatible, but has fully asynchronous resolutions.
-* Performance improvements for [when/function](docs/api.md#synchronous-functions).
-* [Documentation](docs/api.md) updates and fixes. Thanks, [@unscriptable](https://github.com/unscriptable)!
-* **DEPRECATED:** `deferred.progress` and `deferred.resolver.progress`. Use [`deferred.notify`](docs/api.md#progress-events) and [`deferred.resolver.notify`](docs/api.md#progress-events) instead.
-* **DEPRECATED:** [`when.chain`](docs/api.md#whenchain). Use [`resolver.resolve(promise)`](docs/api.md#resolver) or `resolver.resolve(promise.yield)` ([see `promise.yield`](docs/api.md#yield)) instead.
-* **DEPRECATED:** `when/timed` module. Use [`when/delay`](docs/api.md#whendelay) and [`when/timeout`](docs/api.md#whentimeout) modules instead.
-
-### 1.8.0
-
-* New [when/function](docs/api.md#synchronous-functions), [when/node/function](docs/api.md#node-style-asynchronous-functions), and [when/callbacks](docs/api.md#asynchronous-functions) with functional programming goodness, and adapters for turning callback-based APIs into promise-based APIs. Kudos [@riccieri](https://github.com/riccieri)!
-* New [when/unfold](docs/api.md#whenunfold), and [when/unfold/list](docs/api.md#whenunfoldlist) promise-aware anamorphic unfolds that can be used to generate and/or process unbounded lists.
-* New [when/poll](docs/api.md#whenpoll) promise-based periodic polling and task execution. Kudos [@scothis](https://github.com/scothis)!
-
-### 1.7.1
-
-* Removed leftover internal usages of `deferred.then`.
-* [when/debug](https://github.com/cujojs/when/wiki/when-debug) allows configuring the set of "fatal" error types that will be rethrown to the host env.
-
-### 1.7.0
-
-* **DEPRECATED:** `deferred.then` [is deprecated](docs/api.md#deferred) and will be removed in an upcoming release. Use `deferred.promise.then` instead.
-* [promise.yield](docs/api.md#yield)(promiseOrValue) convenience API for substituting a new value into a promise chain.
-* [promise.spread](docs/api.md#spread)(variadicFunction) convenience API for spreading an array onto a fulfill handler that accepts variadic arguments. [Mmmm, buttery](http://s.shld.net/is/image/Sears/033W048977110001_20100422100331516?hei=1600&wid=1600&op_sharpen=1&resMode=sharp&op_usm=0.9,0.5,0,0)
-* Doc improvements:
- * [when()](docs/api.md#when) and [promise.then()](docs/api.md#main-promise-api) have more info about callbacks and chaining behavior.
- * More info and clarifications about the roles of [Deferred](docs/api.md#deferred) and [Resolver](docs/api.md#resolver)
- * Several minor clarifications for various APIs
-* Internal improvements to assimilation and interoperability with other promise implementations.
-
-### 1.6.1
-
-* Fix for accidental coercion of non-promises. See [#62](https://github.com/cujojs/when/issues/60).
-
-### 1.6.0
-
-* New [when.join](docs/api.md#whenjoin) - Joins 2 or more promises together into a single promise.
-* [when.some](docs/api.md#whensome) and [when.any](docs/api.md#whenany) now act like competitive races, and have generally more useful behavior. [Read the discussion in #60](https://github.com/cujojs/when/issues/60).
-* *Experimental* progress event propagation. Progress events will propagate through promise chains. [Read the details here](docs/api.md#progress-events).
-* *Temporarily* removed calls to `Object.freeze`. Promises are no longer frozen due to a horrendous v8 performance penalty. [Read discussion here](https://groups.google.com/d/topic/cujojs/w_olYqorbsY/discussion).
- * **IMPORTANT:** Continue to treat promises as if they are frozen, since `freeze()` will be reintroduced once v8 performance improves.
-* [when/debug](https://github.com/cujojs/when/wiki/when-debug) now allows setting global a debugging callback for rejected promises.
-
-### 1.5.2
-
-* Integrate @domenic's [Promises/A Test Suite](https://github.com/domenic/promise-tests). Runs via `npm test`.
-* No functional change
-
-### 1.5.1
-
-* Performance optimization for [when.defer](docs/api.md#whendefer), up to 1.5x in some cases.
-* [when/debug](docs/api.md#whendebug) can now log exceptions and rejections in deeper promise chains, in some cases, even when the promises involved aren't when.js promises.
-
-### 1.5.0
-
-* New task execution and concurrency management: [when/sequence](docs/api.md#whensequence), [when/pipeline](docs/api.md#whenpipeline), and [when/parallel](docs/api.md#whenparallel).
-* Performance optimizations for [when.all](docs/api.md#whenall) and [when.map](docs/api.md#whenmap), up to 2x in some cases.
-* Options for disabling [paranoid mode](docs/api.md#paranoid-mode) that provides a significant performance gain in v8 (e.g. Node and Chrome). See this [v8 performance problem with Object.freeze](http://stackoverflow.com/questions/8435080/any-performance-benefit-to-locking-down-javascript-objects) for more info.
-* **Important:** `deferred` and `deferred.resolver` no longer throw when resolved/rejected multiple times. They will return silently as if the they had succeeded. This prevents parties to whom *only* the `resolver` has been given from using `try/catch` to determine the state of the associated promise.
- * For debugging, you can use the [when/debug](https://github.com/cujojs/when/wiki/when-debug) module, which will still throw when a deferred is resolved/rejected multiple times.
-
-### 1.4.4
-
-* Change UMD boilerplate to check for `exports` to avoid a problem with QUnit. See [#54](https://github.com/cujojs/when/issues/54) for more info.
-
-### 1.4.3
-
-* Fix for infinite promise coercion between when.js and Q (See [#50](https://github.com/cujojs/when/issues/50)). Thanks [@kriskowal](https://github.com/kriskowal) and [@domenic](https://github.com/domenic)
-
-### 1.4.2
-
-* Fix for IE8 infinite recursion (See [#49](https://github.com/cujojs/when/issues/49))
-
-### 1.4.1
-
-* Code and unit test cleanup and streamlining--no functional changes.
-
-### 1.4.0
-
-* Create a resolved promise: `when.resolve(value)` creates a resolved promise for `value`. See [API docs](docs/api.md#whenresolve).
-* Resolve/reject return something useful: `deferred.resolve` and `deferred.reject` now return a promise for the fulfilled or rejected value.
-* Resolve a deferred with another promise: `deferred.resolve(promise)` - when `promise` resolves or rejects, so will `deferred`.
-
-### 1.3.0
-
-* Fixed a deviation from the Promises/A spec where returning undefined from a callback or errback would cause the previous value to be forwarded. See [#31](https://github.com/cujojs/when/issues/31)
- * *This could be a breaking change* if you depended on this behavior. If you encounter problems, the solution is to ensure that your promise callbacks (registered either with `when()` or `.then()`) return what you intend, keeping in mind that not returning something is equivalent to returning `undefined`.
-* This change also restores compatibility with the promises returned by `jQuery.get()`, which seem to reject with themselves as the rejection value. See [issue #41](https://github.com/cujojs/when/issues/43) for more information and discussion. Thanks to [@KidkArolis](https://github.com/KidkArolis) for raising the issue.
-
-### 1.2.0
-
-* `promise.otherwise(errback)` as a shortcut for `promise.then(null, errback)`. See discussion [here](https://github.com/cujojs/when/issues/13) and [here](https://github.com/cujojs/when/issues/29). Thanks to [@jonnyreeves](https://github.com/jonnyreeves/) for suggesting the name "otherwise".
-* [when/debug](https://github.com/cujojs/when/wiki/when-debug) now detects exceptions that typically represent coding errors, such as SyntaxError, ReferenceError, etc. and propagates them to the host environment. In other words, you'll get a very loud stack trace.
-
-### 1.1.1
-
-* Updated [wiki](https://github.com/cujojs/when/wiki) map/reduce examples, and added simple promise forwarding example
-* Fix for calling `when.any()` without a callback ([#33](https://github.com/cujojs/when/issues/33))
-* Fix version number in `when.js` source ([#36](https://github.com/cujojs/when/issues/36))
-
-### 1.1.0
-
-* `when.all/any/some/map/reduce` can all now accept a promise for an array in addition to an actual array as input. This allows composing functions to do interesting things like `when.reduce(when.map(...))`
-* `when.reject(promiseOrValue)` that returns a new, rejected promise.
-* `promise.always(callback)` as a shortcut for `promise.then(callback, callback)`
-* **Highly experimental** [when/debug](https://github.com/cujojs/when/wiki/when-debug) module: a drop-in replacement for the main `when` module that enables debug logging for promises created or consumed by when.js
-
-### 1.0.4
-
-* [Travis CI](http://travis-ci.org/cujojs/when) integration
-* Fix for cancelable deferred not invoking progress callbacks. ([#24](https://github.com/cujojs/when/pull/24) Thanks [@scothis](https://github.com/scothis))
-* The promise returned by `when.chain` now rejects when the input promise rejects.
-
-### 1.0.3
-
-* Fix for specific situation where `null` could incorrectly be used as a promise resolution value ([#23](https://github.com/cujojs/when/pull/23))
-
-### 1.0.2
-
-* Updated README for running unit tests in both Node and Browsers. See **Running the Unit Tests** below.
-* Set package name to 'when' in package.json
-
-### 1.0.1
-
-* Fix for rejections propagating in some cases when they shouldn't have been ([#19](https://github.com/cujojs/when/issues/19))
-* Using [buster.js](http://busterjs.org/) for unit tests now.
-
-### 1.0.0
-
-* First official when.js release as a part of [cujojs](https://github.com/cujojs).
-* Added [when/cancelable](https://github.com/cujojs/when/wiki/when-cancelable) decorator for creating cancelable deferreds
-* Added [when/delay](https://github.com/cujojs/when/wiki/when-delay) and [when/timeout](https://github.com/cujojs/when/wiki/when-timeout) helpers for creating delayed promises and promises that timeout and reject if not resolved first.
-
-### 0.11.1
-
-* Added [when/apply](https://github.com/cujojs/when/wiki/when-apply) helper module for using arguments-based and variadic callbacks with `when.all`, `when.some`, `when.map`, or any promise that resolves to an array. ([#14](https://github.com/cujojs/when/issues/14))
-* `.then()`, `when()`, and all other methods that accept callback/errback/progress handlers will throw if you pass something that's not a function. ([#15](https://github.com/cujojs/when/issues/15))
-
-### 0.11.0
-
-* `when.js` now *assimilates* thenables that pass the [Promises/A duck-type test](http://wiki.commonjs.org/wiki/Promises/A), but which may not be fully Promises/A compliant, such as [jQuery's Deferred](http://api.jquery.com/category/deferred-object/) and [curl's global API](https://github.com/cujojs/curl) (See the **API at a glance** section)
- * `when()`, and `when.all/some/any/map/reduce/chain()` are all now guaranteed to return a fully Promises/A compliant promise, even when their input is not compliant.
- * Any non-compliant thenable returned by a callback or errback will also be assimilated to protect subsequent promises and callbacks in a promise chain, and preserve Promises/A forwarding guarantees.
-
-
-### 0.10.4
-
-* **Important Fix for some AMD build/optimizer tools**: Switching back to more verbose, builder-friendly boilerplate
- * If you are using when.js 0.10.3 with the dojo or RequireJS build tools, you should update to v.10.4 as soon as possible.
-
-### 0.10.3
-
-**Warning**: This version will not work with most AMD build tools. You should update to 0.10.4 as soon as possible.
-
-* Minor `package.json` updates
-* Slightly smaller module boilerplate
-
-### 0.10.2
-
-* Performance optimizations for `when.map()` (thanks @[smitranic](https://github.com/smitranic)), especially for large arrays where the `mapFunc` is also async (i.e. returns a promise)
-* `when.all/some/any/map/reduce` handle sparse arrays (thanks @[rwaldrn](https://github.com/rwldrn/))
-* Other minor performance optimizations
-
-### 0.10.1
-
-* Minor tweaks (thanks @[johan](https://github.com/johan))
- * Add missing semis that WebStorm didn't catch
- * Fix DOH submodule ref, and update README with info for running unit tests
-
-### 0.10.0
-
-* `when.map` and `when.reduce` - just like Array.map and Array.reduce, but they operate on promises and arrays of promises
-* Lots of internal size and performance optimizations
-* Still only 1k!
-
-### 0.9.4
-
-* Important fix for break in promise chains
diff --git a/node_modules/when/LICENSE.txt b/node_modules/when/LICENSE.txt
deleted file mode 100644
index 09a1063e4..000000000
--- a/node_modules/when/LICENSE.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-Open Source Initiative OSI - The MIT License
-
-http://www.opensource.org/licenses/mit-license.php
-
-Copyright (c) 2011 Brian Cavalier
-
-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. \ No newline at end of file
diff --git a/node_modules/when/README.md b/node_modules/when/README.md
deleted file mode 100644
index 521baa562..000000000
--- a/node_modules/when/README.md
+++ /dev/null
@@ -1,106 +0,0 @@
-<a href="http://promises-aplus.github.com/promises-spec"><img src="http://promises-aplus.github.com/promises-spec/assets/logo-small.png" alt="Promises/A+ logo" align="right" /></a>
-
-[![Build Status](https://travis-ci.org/cujojs/when.svg?branch=master)](https://travis-ci.org/cujojs/when)
-[![Inline docs](http://inch-ci.org/github/cujojs/when.svg?branch=master)](http://inch-ci.org/github/cujojs/when)
-
-when.js
-=======
-
-When.js is a rock solid, battle-tested [Promises/A+](http://promises-aplus.github.com/promises-spec) and `when()` implementation, including a complete [ES6 Promise shim](docs/es6-promise-shim.md). It's a powerful combination of small size, high performance, debuggability, and rich features:
-
-* Resolve arrays and hashes of promises, as well as infinite promise sequences
-* Execute tasks in parallel or sequentially
-* Transform Node-style and other callback-based APIs into promise-based APIs
-
-When.js is one of the many stand-alone components of [cujoJS](http://cujojs.com), the JavaScript Architectural Toolkit.
-
-Check it out:
-
-- [What's new](CHANGES.md)
-- [API docs](docs/api.md#api)
-- Read more about how [promises simplify async programming](http://know.cujojs.com/tutorials/async/simplifying-async-with-promises)
-
-Installation
-------------
-
-#### AMD
-
-Available as `when` through [bower](http://bower.io), or just clone the repo and load `when.js` from the root.
-
-```
-bower install --save when
-```
-
-#### CommonJS/Node
-
-```
-npm install --save when
-```
-
-[More help & other environments &raquo;](docs/installation.md)
-
-Usage
------
-
-Promises can be used to help manage complex and/or nested callback flows in a simple manner. To get a better handle on how promise flows look and how they can be helpful, there are a couple examples below (using commonjs).
-
-This first example will print `"hello world!!!!"` if all went well, or `"drat!"` if there was a problem. It also uses [rest](https://github.com/cujojs/rest) to make an ajax request to a (fictional) external service.
-
-```js
-var rest = require('rest');
-
-fetchRemoteGreeting()
- .then(addExclamation)
- .catch(handleError)
- .done(function(greeting) {
- console.log(greeting);
- });
-
-function fetchRemoteGreeting() {
- // returns a when.js promise for 'hello world'
- return rest('http://example.com/greeting');
-}
-
-function addExclamation(greeting) {
- return greeting + '!!!!'
-}
-
-function handleError(e) {
- return 'drat!';
-}
-```
-
-The second example shows off the power that comes with when's promise logic. Here, we get an array of numbers from a remote source and reduce them. The example will print `150` if all went well, and if there was a problem will print a full stack trace.
-
-```js
-var when = require('when');
-var rest = require('rest');
-
-when.reduce(when.map(getRemoteNumberList(), times10), sum)
- .done(function(result) {
- console.log(result);
- });
-
-function getRemoteNumberList() {
- // Get a remote array [1, 2, 3, 4, 5]
- return rest('http://example.com/numbers').then(JSON.parse);
-}
-
-function sum(x, y) { return x + y; }
-function times10(x) {return x * 10; }
-```
-
-License
--------
-
-Licensed under MIT. [Full license here &raquo;](LICENSE.txt)
-
-Contributing
-------------
-
-Please see the [contributing guide](CONTRIBUTING.md) for more information on running tests, opening issues, and contributing code to the project.
-
-References
-----------
-
-Much of this code was inspired by the async innards of [wire.js](https://github.com/cujojs/wire), and has been influenced by the great work in [Q](https://github.com/kriskowal/q), [Dojo's Deferred](https://github.com/dojo/dojo), and [uber.js](https://github.com/phiggins42/uber.js).
diff --git a/node_modules/when/callbacks.js b/node_modules/when/callbacks.js
deleted file mode 100644
index 00e414b51..000000000
--- a/node_modules/when/callbacks.js
+++ /dev/null
@@ -1,262 +0,0 @@
-/** @license MIT License (c) copyright 2013-2014 original author or authors */
-
-/**
- * Collection of helper functions for interacting with 'traditional',
- * callback-taking functions using a promise interface.
- *
- * @author Renato Zannon
- * @contributor Brian Cavalier
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var Promise = when.Promise;
- var _liftAll = require('./lib/liftAll');
- var slice = Array.prototype.slice;
-
- var makeApply = require('./lib/apply');
- var _apply = makeApply(Promise, dispatch);
-
- return {
- lift: lift,
- liftAll: liftAll,
- apply: apply,
- call: call,
- promisify: promisify
- };
-
- /**
- * Takes a `traditional` callback-taking function and returns a promise for its
- * result, accepting an optional array of arguments (that might be values or
- * promises). It assumes that the function takes its callback and errback as
- * the last two arguments. The resolution of the promise depends on whether the
- * function will call its callback or its errback.
- *
- * @example
- * var domIsLoaded = callbacks.apply($);
- * domIsLoaded.then(function() {
- * doMyDomStuff();
- * });
- *
- * @example
- * function existingAjaxyFunction(url, callback, errback) {
- * // Complex logic you'd rather not change
- * }
- *
- * var promise = callbacks.apply(existingAjaxyFunction, ["/movies.json"]);
- *
- * promise.then(function(movies) {
- * // Work with movies
- * }, function(reason) {
- * // Handle error
- * });
- *
- * @param {function} asyncFunction function to be called
- * @param {Array} [extraAsyncArgs] array of arguments to asyncFunction
- * @returns {Promise} promise for the callback value of asyncFunction
- */
- function apply(asyncFunction, extraAsyncArgs) {
- return _apply(asyncFunction, this, extraAsyncArgs || []);
- }
-
- /**
- * Apply helper that allows specifying thisArg
- * @private
- */
- function dispatch(f, thisArg, args, h) {
- args.push(alwaysUnary(h.resolve, h), alwaysUnary(h.reject, h));
- tryCatchResolve(f, thisArg, args, h);
- }
-
- function tryCatchResolve(f, thisArg, args, resolver) {
- try {
- f.apply(thisArg, args);
- } catch(e) {
- resolver.reject(e);
- }
- }
-
- /**
- * Works as `callbacks.apply` does, with the difference that the arguments to
- * the function are passed individually, instead of as an array.
- *
- * @example
- * function sumInFiveSeconds(a, b, callback) {
- * setTimeout(function() {
- * callback(a + b);
- * }, 5000);
- * }
- *
- * var sumPromise = callbacks.call(sumInFiveSeconds, 5, 10);
- *
- * // Logs '15' 5 seconds later
- * sumPromise.then(console.log);
- *
- * @param {function} asyncFunction function to be called
- * @param {...*} args arguments that will be forwarded to the function
- * @returns {Promise} promise for the callback value of asyncFunction
- */
- function call(asyncFunction/*, arg1, arg2...*/) {
- return _apply(asyncFunction, this, slice.call(arguments, 1));
- }
-
- /**
- * Takes a 'traditional' callback/errback-taking function and returns a function
- * that returns a promise instead. The resolution/rejection of the promise
- * depends on whether the original function will call its callback or its
- * errback.
- *
- * If additional arguments are passed to the `lift` call, they will be prepended
- * on the calls to the original function, much like `Function.prototype.bind`.
- *
- * The resulting function is also "promise-aware", in the sense that, if given
- * promises as arguments, it will wait for their resolution before executing.
- *
- * @example
- * function traditionalAjax(method, url, callback, errback) {
- * var xhr = new XMLHttpRequest();
- * xhr.open(method, url);
- *
- * xhr.onload = callback;
- * xhr.onerror = errback;
- *
- * xhr.send();
- * }
- *
- * var promiseAjax = callbacks.lift(traditionalAjax);
- * promiseAjax("GET", "/movies.json").then(console.log, console.error);
- *
- * var promiseAjaxGet = callbacks.lift(traditionalAjax, "GET");
- * promiseAjaxGet("/movies.json").then(console.log, console.error);
- *
- * @param {Function} f traditional async function to be decorated
- * @param {...*} [args] arguments to be prepended for the new function @deprecated
- * @returns {Function} a promise-returning function
- */
- function lift(f/*, args...*/) {
- var args = arguments.length > 1 ? slice.call(arguments, 1) : [];
- return function() {
- return _apply(f, this, args.concat(slice.call(arguments)));
- };
- }
-
- /**
- * Lift all the functions/methods on src
- * @param {object|function} src source whose functions will be lifted
- * @param {function?} combine optional function for customizing the lifting
- * process. It is passed dst, the lifted function, and the property name of
- * the original function on src.
- * @param {(object|function)?} dst option destination host onto which to place lifted
- * functions. If not provided, liftAll returns a new object.
- * @returns {*} If dst is provided, returns dst with lifted functions as
- * properties. If dst not provided, returns a new object with lifted functions.
- */
- function liftAll(src, combine, dst) {
- return _liftAll(lift, combine, dst, src);
- }
-
- /**
- * `promisify` is a version of `lift` that allows fine-grained control over the
- * arguments that passed to the underlying function. It is intended to handle
- * functions that don't follow the common callback and errback positions.
- *
- * The control is done by passing an object whose 'callback' and/or 'errback'
- * keys, whose values are the corresponding 0-based indexes of the arguments on
- * the function. Negative values are interpreted as being relative to the end
- * of the arguments array.
- *
- * If arguments are given on the call to the 'promisified' function, they are
- * intermingled with the callback and errback. If a promise is given among them,
- * the execution of the function will only occur after its resolution.
- *
- * @example
- * var delay = callbacks.promisify(setTimeout, {
- * callback: 0
- * });
- *
- * delay(100).then(function() {
- * console.log("This happens 100ms afterwards");
- * });
- *
- * @example
- * function callbackAsLast(errback, followsStandards, callback) {
- * if(followsStandards) {
- * callback("well done!");
- * } else {
- * errback("some programmers just want to watch the world burn");
- * }
- * }
- *
- * var promisified = callbacks.promisify(callbackAsLast, {
- * callback: -1,
- * errback: 0,
- * });
- *
- * promisified(true).then(console.log, console.error);
- * promisified(false).then(console.log, console.error);
- *
- * @param {Function} asyncFunction traditional function to be decorated
- * @param {object} positions
- * @param {number} [positions.callback] index at which asyncFunction expects to
- * receive a success callback
- * @param {number} [positions.errback] index at which asyncFunction expects to
- * receive an error callback
- * @returns {function} promisified function that accepts
- *
- * @deprecated
- */
- function promisify(asyncFunction, positions) {
-
- return function() {
- var thisArg = this;
- return Promise.all(arguments).then(function(args) {
- var p = Promise._defer();
-
- var callbackPos, errbackPos;
-
- if(typeof positions.callback === 'number') {
- callbackPos = normalizePosition(args, positions.callback);
- }
-
- if(typeof positions.errback === 'number') {
- errbackPos = normalizePosition(args, positions.errback);
- }
-
- if(errbackPos < callbackPos) {
- insertCallback(args, errbackPos, p._handler.reject, p._handler);
- insertCallback(args, callbackPos, p._handler.resolve, p._handler);
- } else {
- insertCallback(args, callbackPos, p._handler.resolve, p._handler);
- insertCallback(args, errbackPos, p._handler.reject, p._handler);
- }
-
- asyncFunction.apply(thisArg, args);
-
- return p;
- });
- };
- }
-
- function normalizePosition(args, pos) {
- return pos < 0 ? (args.length + pos + 2) : pos;
- }
-
- function insertCallback(args, pos, callback, thisArg) {
- if(typeof pos === 'number') {
- args.splice(pos, 0, alwaysUnary(callback, thisArg));
- }
- }
-
- function alwaysUnary(fn, thisArg) {
- return function() {
- if (arguments.length > 1) {
- fn.call(thisArg, slice.call(arguments));
- } else {
- fn.apply(thisArg, arguments);
- }
- };
- }
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
diff --git a/node_modules/when/cancelable.js b/node_modules/when/cancelable.js
deleted file mode 100644
index 7a4d08f66..000000000
--- a/node_modules/when/cancelable.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/** @license MIT License (c) copyright B Cavalier & J Hann */
-
-/**
- * cancelable.js
- * @deprecated
- *
- * Decorator that makes a deferred "cancelable". It adds a cancel() method that
- * will call a special cancel handler function and then reject the deferred. The
- * cancel handler can be used to do resource cleanup, or anything else that should
- * be done before any other rejection handlers are executed.
- *
- * Usage:
- *
- * var cancelableDeferred = cancelable(when.defer(), myCancelHandler);
- *
- * @author brian@hovercraftstudios.com
- */
-
-(function(define) {
-define(function() {
-
- /**
- * Makes deferred cancelable, adding a cancel() method.
- * @deprecated
- *
- * @param deferred {Deferred} the {@link Deferred} to make cancelable
- * @param canceler {Function} cancel handler function to execute when this deferred
- * is canceled. This is guaranteed to run before all other rejection handlers.
- * The canceler will NOT be executed if the deferred is rejected in the standard
- * way, i.e. deferred.reject(). It ONLY executes if the deferred is canceled,
- * i.e. deferred.cancel()
- *
- * @returns deferred, with an added cancel() method.
- */
- return function(deferred, canceler) {
- // Add a cancel method to the deferred to reject the delegate
- // with the special canceled indicator.
- deferred.cancel = function() {
- try {
- deferred.reject(canceler(deferred));
- } catch(e) {
- deferred.reject(e);
- }
-
- return deferred.promise;
- };
-
- return deferred;
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(); });
-
-
diff --git a/node_modules/when/delay.js b/node_modules/when/delay.js
deleted file mode 100644
index 20d77bf8e..000000000
--- a/node_modules/when/delay.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * delay.js
- *
- * Helper that returns a promise that resolves after a delay.
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
-
- /**
- * @deprecated Use when(value).delay(ms)
- */
- return function delay(msec, value) {
- return when(value).delay(msec);
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
diff --git a/node_modules/when/dist/browser/when.debug.js b/node_modules/when/dist/browser/when.debug.js
deleted file mode 100644
index 4f0097946..000000000
--- a/node_modules/when/dist/browser/when.debug.js
+++ /dev/null
@@ -1,4059 +0,0 @@
-!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.when=e():"undefined"!=typeof global?global.when=e():"undefined"!=typeof self&&(self.when=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
-require('../monitor/console');
-module.exports = require('./when.browserify.js');
-
-
-},{"../monitor/console":30,"./when.browserify.js":2}],2:[function(require,module,exports){
-var when = module.exports = require('../when');
-
-when.callbacks = require('../callbacks');
-when.cancelable = require('../cancelable');
-when.delay = require('../delay');
-when.fn = require('../function');
-when.guard = require('../guard');
-when.keys = require('../keys');
-when.nodefn = when.node = require('../node');
-when.parallel = require('../parallel');
-when.pipeline = require('../pipeline');
-when.poll = require('../poll');
-when.sequence = require('../sequence');
-when.timeout = require('../timeout');
-
-},{"../callbacks":3,"../cancelable":4,"../delay":5,"../function":6,"../guard":7,"../keys":8,"../node":32,"../parallel":33,"../pipeline":34,"../poll":35,"../sequence":36,"../timeout":37,"../when":38}],3:[function(require,module,exports){
-/** @license MIT License (c) copyright 2013-2014 original author or authors */
-
-/**
- * Collection of helper functions for interacting with 'traditional',
- * callback-taking functions using a promise interface.
- *
- * @author Renato Zannon
- * @contributor Brian Cavalier
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var Promise = when.Promise;
- var _liftAll = require('./lib/liftAll');
- var slice = Array.prototype.slice;
-
- var makeApply = require('./lib/apply');
- var _apply = makeApply(Promise, dispatch);
-
- return {
- lift: lift,
- liftAll: liftAll,
- apply: apply,
- call: call,
- promisify: promisify
- };
-
- /**
- * Takes a `traditional` callback-taking function and returns a promise for its
- * result, accepting an optional array of arguments (that might be values or
- * promises). It assumes that the function takes its callback and errback as
- * the last two arguments. The resolution of the promise depends on whether the
- * function will call its callback or its errback.
- *
- * @example
- * var domIsLoaded = callbacks.apply($);
- * domIsLoaded.then(function() {
- * doMyDomStuff();
- * });
- *
- * @example
- * function existingAjaxyFunction(url, callback, errback) {
- * // Complex logic you'd rather not change
- * }
- *
- * var promise = callbacks.apply(existingAjaxyFunction, ["/movies.json"]);
- *
- * promise.then(function(movies) {
- * // Work with movies
- * }, function(reason) {
- * // Handle error
- * });
- *
- * @param {function} asyncFunction function to be called
- * @param {Array} [extraAsyncArgs] array of arguments to asyncFunction
- * @returns {Promise} promise for the callback value of asyncFunction
- */
- function apply(asyncFunction, extraAsyncArgs) {
- return _apply(asyncFunction, this, extraAsyncArgs || []);
- }
-
- /**
- * Apply helper that allows specifying thisArg
- * @private
- */
- function dispatch(f, thisArg, args, h) {
- args.push(alwaysUnary(h.resolve, h), alwaysUnary(h.reject, h));
- tryCatchResolve(f, thisArg, args, h);
- }
-
- function tryCatchResolve(f, thisArg, args, resolver) {
- try {
- f.apply(thisArg, args);
- } catch(e) {
- resolver.reject(e);
- }
- }
-
- /**
- * Works as `callbacks.apply` does, with the difference that the arguments to
- * the function are passed individually, instead of as an array.
- *
- * @example
- * function sumInFiveSeconds(a, b, callback) {
- * setTimeout(function() {
- * callback(a + b);
- * }, 5000);
- * }
- *
- * var sumPromise = callbacks.call(sumInFiveSeconds, 5, 10);
- *
- * // Logs '15' 5 seconds later
- * sumPromise.then(console.log);
- *
- * @param {function} asyncFunction function to be called
- * @param {...*} args arguments that will be forwarded to the function
- * @returns {Promise} promise for the callback value of asyncFunction
- */
- function call(asyncFunction/*, arg1, arg2...*/) {
- return _apply(asyncFunction, this, slice.call(arguments, 1));
- }
-
- /**
- * Takes a 'traditional' callback/errback-taking function and returns a function
- * that returns a promise instead. The resolution/rejection of the promise
- * depends on whether the original function will call its callback or its
- * errback.
- *
- * If additional arguments are passed to the `lift` call, they will be prepended
- * on the calls to the original function, much like `Function.prototype.bind`.
- *
- * The resulting function is also "promise-aware", in the sense that, if given
- * promises as arguments, it will wait for their resolution before executing.
- *
- * @example
- * function traditionalAjax(method, url, callback, errback) {
- * var xhr = new XMLHttpRequest();
- * xhr.open(method, url);
- *
- * xhr.onload = callback;
- * xhr.onerror = errback;
- *
- * xhr.send();
- * }
- *
- * var promiseAjax = callbacks.lift(traditionalAjax);
- * promiseAjax("GET", "/movies.json").then(console.log, console.error);
- *
- * var promiseAjaxGet = callbacks.lift(traditionalAjax, "GET");
- * promiseAjaxGet("/movies.json").then(console.log, console.error);
- *
- * @param {Function} f traditional async function to be decorated
- * @param {...*} [args] arguments to be prepended for the new function @deprecated
- * @returns {Function} a promise-returning function
- */
- function lift(f/*, args...*/) {
- var args = arguments.length > 1 ? slice.call(arguments, 1) : [];
- return function() {
- return _apply(f, this, args.concat(slice.call(arguments)));
- };
- }
-
- /**
- * Lift all the functions/methods on src
- * @param {object|function} src source whose functions will be lifted
- * @param {function?} combine optional function for customizing the lifting
- * process. It is passed dst, the lifted function, and the property name of
- * the original function on src.
- * @param {(object|function)?} dst option destination host onto which to place lifted
- * functions. If not provided, liftAll returns a new object.
- * @returns {*} If dst is provided, returns dst with lifted functions as
- * properties. If dst not provided, returns a new object with lifted functions.
- */
- function liftAll(src, combine, dst) {
- return _liftAll(lift, combine, dst, src);
- }
-
- /**
- * `promisify` is a version of `lift` that allows fine-grained control over the
- * arguments that passed to the underlying function. It is intended to handle
- * functions that don't follow the common callback and errback positions.
- *
- * The control is done by passing an object whose 'callback' and/or 'errback'
- * keys, whose values are the corresponding 0-based indexes of the arguments on
- * the function. Negative values are interpreted as being relative to the end
- * of the arguments array.
- *
- * If arguments are given on the call to the 'promisified' function, they are
- * intermingled with the callback and errback. If a promise is given among them,
- * the execution of the function will only occur after its resolution.
- *
- * @example
- * var delay = callbacks.promisify(setTimeout, {
- * callback: 0
- * });
- *
- * delay(100).then(function() {
- * console.log("This happens 100ms afterwards");
- * });
- *
- * @example
- * function callbackAsLast(errback, followsStandards, callback) {
- * if(followsStandards) {
- * callback("well done!");
- * } else {
- * errback("some programmers just want to watch the world burn");
- * }
- * }
- *
- * var promisified = callbacks.promisify(callbackAsLast, {
- * callback: -1,
- * errback: 0,
- * });
- *
- * promisified(true).then(console.log, console.error);
- * promisified(false).then(console.log, console.error);
- *
- * @param {Function} asyncFunction traditional function to be decorated
- * @param {object} positions
- * @param {number} [positions.callback] index at which asyncFunction expects to
- * receive a success callback
- * @param {number} [positions.errback] index at which asyncFunction expects to
- * receive an error callback
- * @returns {function} promisified function that accepts
- *
- * @deprecated
- */
- function promisify(asyncFunction, positions) {
-
- return function() {
- var thisArg = this;
- return Promise.all(arguments).then(function(args) {
- var p = Promise._defer();
-
- var callbackPos, errbackPos;
-
- if(typeof positions.callback === 'number') {
- callbackPos = normalizePosition(args, positions.callback);
- }
-
- if(typeof positions.errback === 'number') {
- errbackPos = normalizePosition(args, positions.errback);
- }
-
- if(errbackPos < callbackPos) {
- insertCallback(args, errbackPos, p._handler.reject, p._handler);
- insertCallback(args, callbackPos, p._handler.resolve, p._handler);
- } else {
- insertCallback(args, callbackPos, p._handler.resolve, p._handler);
- insertCallback(args, errbackPos, p._handler.reject, p._handler);
- }
-
- asyncFunction.apply(thisArg, args);
-
- return p;
- });
- };
- }
-
- function normalizePosition(args, pos) {
- return pos < 0 ? (args.length + pos + 2) : pos;
- }
-
- function insertCallback(args, pos, callback, thisArg) {
- if(typeof pos === 'number') {
- args.splice(pos, 0, alwaysUnary(callback, thisArg));
- }
- }
-
- function alwaysUnary(fn, thisArg) {
- return function() {
- if (arguments.length > 1) {
- fn.call(thisArg, slice.call(arguments));
- } else {
- fn.apply(thisArg, arguments);
- }
- };
- }
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-},{"./lib/apply":12,"./lib/liftAll":24,"./when":38}],4:[function(require,module,exports){
-/** @license MIT License (c) copyright B Cavalier & J Hann */
-
-/**
- * cancelable.js
- * @deprecated
- *
- * Decorator that makes a deferred "cancelable". It adds a cancel() method that
- * will call a special cancel handler function and then reject the deferred. The
- * cancel handler can be used to do resource cleanup, or anything else that should
- * be done before any other rejection handlers are executed.
- *
- * Usage:
- *
- * var cancelableDeferred = cancelable(when.defer(), myCancelHandler);
- *
- * @author brian@hovercraftstudios.com
- */
-
-(function(define) {
-define(function() {
-
- /**
- * Makes deferred cancelable, adding a cancel() method.
- * @deprecated
- *
- * @param deferred {Deferred} the {@link Deferred} to make cancelable
- * @param canceler {Function} cancel handler function to execute when this deferred
- * is canceled. This is guaranteed to run before all other rejection handlers.
- * The canceler will NOT be executed if the deferred is rejected in the standard
- * way, i.e. deferred.reject(). It ONLY executes if the deferred is canceled,
- * i.e. deferred.cancel()
- *
- * @returns deferred, with an added cancel() method.
- */
- return function(deferred, canceler) {
- // Add a cancel method to the deferred to reject the delegate
- // with the special canceled indicator.
- deferred.cancel = function() {
- try {
- deferred.reject(canceler(deferred));
- } catch(e) {
- deferred.reject(e);
- }
-
- return deferred.promise;
- };
-
- return deferred;
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(); });
-
-
-
-},{}],5:[function(require,module,exports){
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * delay.js
- *
- * Helper that returns a promise that resolves after a delay.
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
-
- /**
- * @deprecated Use when(value).delay(ms)
- */
- return function delay(msec, value) {
- return when(value).delay(msec);
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
-
-},{"./when":38}],6:[function(require,module,exports){
-/** @license MIT License (c) copyright 2013-2014 original author or authors */
-
-/**
- * Collection of helper functions for wrapping and executing 'traditional'
- * synchronous functions in a promise interface.
- *
- * @author Brian Cavalier
- * @contributor Renato Zannon
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var attempt = when['try'];
- var _liftAll = require('./lib/liftAll');
- var _apply = require('./lib/apply')(when.Promise);
- var slice = Array.prototype.slice;
-
- return {
- lift: lift,
- liftAll: liftAll,
- call: attempt,
- apply: apply,
- compose: compose
- };
-
- /**
- * Takes a function and an optional array of arguments (that might be promises),
- * and calls the function. The return value is a promise whose resolution
- * depends on the value returned by the function.
- * @param {function} f function to be called
- * @param {Array} [args] array of arguments to func
- * @returns {Promise} promise for the return value of func
- */
- function apply(f, args) {
- // slice args just in case the caller passed an Arguments instance
- return _apply(f, this, args == null ? [] : slice.call(args));
- }
-
- /**
- * Takes a 'regular' function and returns a version of that function that
- * returns a promise instead of a plain value, and handles thrown errors by
- * returning a rejected promise. Also accepts a list of arguments to be
- * prepended to the new function, as does Function.prototype.bind.
- *
- * The resulting function is promise-aware, in the sense that it accepts
- * promise arguments, and waits for their resolution.
- * @param {Function} f function to be bound
- * @param {...*} [args] arguments to be prepended for the new function @deprecated
- * @returns {Function} a promise-returning function
- */
- function lift(f /*, args... */) {
- var args = arguments.length > 1 ? slice.call(arguments, 1) : [];
- return function() {
- return _apply(f, this, args.concat(slice.call(arguments)));
- };
- }
-
- /**
- * Lift all the functions/methods on src
- * @param {object|function} src source whose functions will be lifted
- * @param {function?} combine optional function for customizing the lifting
- * process. It is passed dst, the lifted function, and the property name of
- * the original function on src.
- * @param {(object|function)?} dst option destination host onto which to place lifted
- * functions. If not provided, liftAll returns a new object.
- * @returns {*} If dst is provided, returns dst with lifted functions as
- * properties. If dst not provided, returns a new object with lifted functions.
- */
- function liftAll(src, combine, dst) {
- return _liftAll(lift, combine, dst, src);
- }
-
- /**
- * Composes multiple functions by piping their return values. It is
- * transparent to whether the functions return 'regular' values or promises:
- * the piped argument is always a resolved value. If one of the functions
- * throws or returns a rejected promise, the composed promise will be also
- * rejected.
- *
- * The arguments (or promises to arguments) given to the returned function (if
- * any), are passed directly to the first function on the 'pipeline'.
- * @param {Function} f the function to which the arguments will be passed
- * @param {...Function} [funcs] functions that will be composed, in order
- * @returns {Function} a promise-returning composition of the functions
- */
- function compose(f /*, funcs... */) {
- var funcs = slice.call(arguments, 1);
-
- return function() {
- var thisArg = this;
- var args = slice.call(arguments);
- var firstPromise = attempt.apply(thisArg, [f].concat(args));
-
- return when.reduce(funcs, function(arg, func) {
- return func.call(thisArg, arg);
- }, firstPromise);
- };
- }
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
-
-},{"./lib/apply":12,"./lib/liftAll":24,"./when":38}],7:[function(require,module,exports){
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * Generalized promise concurrency guard
- * Adapted from original concept by Sakari Jokinen (Rocket Pack, Ltd.)
- *
- * @author Brian Cavalier
- * @author John Hann
- * @contributor Sakari Jokinen
- */
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var slice = Array.prototype.slice;
-
- guard.n = n;
-
- return guard;
-
- /**
- * Creates a guarded version of f that can only be entered when the supplied
- * condition allows.
- * @param {function} condition represents a critical section that may only
- * be entered when allowed by the condition
- * @param {function} f function to guard
- * @returns {function} guarded version of f
- */
- function guard(condition, f) {
- return function() {
- var args = slice.call(arguments);
-
- return when(condition()).withThis(this).then(function(exit) {
- return when(f.apply(this, args))['finally'](exit);
- });
- };
- }
-
- /**
- * Creates a condition that allows only n simultaneous executions
- * of a guarded function
- * @param {number} allowed number of allowed simultaneous executions
- * @returns {function} condition function which returns a promise that
- * fulfills when the critical section may be entered. The fulfillment
- * value is a function ("notifyExit") that must be called when the critical
- * section has been exited.
- */
- function n(allowed) {
- var count = 0;
- var waiting = [];
-
- return function enter() {
- return when.promise(function(resolve) {
- if(count < allowed) {
- resolve(exit);
- } else {
- waiting.push(resolve);
- }
- count += 1;
- });
- };
-
- function exit() {
- count = Math.max(count - 1, 0);
- if(waiting.length > 0) {
- waiting.shift()(exit);
- }
- }
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{"./when":38}],8:[function(require,module,exports){
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * Licensed under the MIT License at:
- * http://www.opensource.org/licenses/mit-license.php
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-(function(define) { 'use strict';
-define(function(require) {
-
- var when = require('./when');
- var Promise = when.Promise;
- var toPromise = when.resolve;
-
- return {
- all: when.lift(all),
- map: map,
- settle: settle
- };
-
- /**
- * Resolve all the key-value pairs in the supplied object or promise
- * for an object.
- * @param {Promise|object} object or promise for object whose key-value pairs
- * will be resolved
- * @returns {Promise} promise for an object with the fully resolved key-value pairs
- */
- function all(object) {
- var p = Promise._defer();
- var resolver = Promise._handler(p);
-
- var results = {};
- var keys = Object.keys(object);
- var pending = keys.length;
-
- for(var i=0, k; i<keys.length; ++i) {
- k = keys[i];
- Promise._handler(object[k]).fold(settleKey, k, results, resolver);
- }
-
- if(pending === 0) {
- resolver.resolve(results);
- }
-
- return p;
-
- function settleKey(k, x, resolver) {
- /*jshint validthis:true*/
- this[k] = x;
- if(--pending === 0) {
- resolver.resolve(results);
- }
- }
- }
-
- /**
- * Map values in the supplied object's keys
- * @param {Promise|object} object or promise for object whose key-value pairs
- * will be reduced
- * @param {function(value:*, key:String):*} f mapping function which may
- * return either a promise or a value
- * @returns {Promise} promise for an object with the mapped and fully
- * resolved key-value pairs
- */
- function map(object, f) {
- return toPromise(object).then(function(object) {
- return all(Object.keys(object).reduce(function(o, k) {
- o[k] = toPromise(object[k]).fold(mapWithKey, k);
- return o;
- }, {}));
- });
-
- function mapWithKey(k, x) {
- return f(x, k);
- }
- }
-
- /**
- * Resolve all key-value pairs in the supplied object and return a promise
- * that will always fulfill with the outcome states of all input promises.
- * @param {object} object whose key-value pairs will be settled
- * @returns {Promise} promise for an object with the mapped and fully
- * settled key-value pairs
- */
- function settle(object) {
- var keys = Object.keys(object);
- var results = {};
-
- if(keys.length === 0) {
- return toPromise(results);
- }
-
- var p = Promise._defer();
- var resolver = Promise._handler(p);
- var promises = keys.map(function(k) { return object[k]; });
-
- when.settle(promises).then(function(states) {
- populateResults(keys, states, results, resolver);
- });
-
- return p;
- }
-
- function populateResults(keys, states, results, resolver) {
- for(var i=0; i<keys.length; i++) {
- results[keys[i]] = states[i];
- }
- resolver.resolve(results);
- }
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-},{"./when":38}],9:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function (require) {
-
- var makePromise = require('./makePromise');
- var Scheduler = require('./Scheduler');
- var async = require('./env').asap;
-
- return makePromise({
- scheduler: new Scheduler(async)
- });
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-},{"./Scheduler":10,"./env":22,"./makePromise":25}],10:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- // Credit to Twisol (https://github.com/Twisol) for suggesting
- // this type of extensible queue + trampoline approach for next-tick conflation.
-
- /**
- * Async task scheduler
- * @param {function} async function to schedule a single async function
- * @constructor
- */
- function Scheduler(async) {
- this._async = async;
- this._running = false;
-
- this._queue = this;
- this._queueLen = 0;
- this._afterQueue = {};
- this._afterQueueLen = 0;
-
- var self = this;
- this.drain = function() {
- self._drain();
- };
- }
-
- /**
- * Enqueue a task
- * @param {{ run:function }} task
- */
- Scheduler.prototype.enqueue = function(task) {
- this._queue[this._queueLen++] = task;
- this.run();
- };
-
- /**
- * Enqueue a task to run after the main task queue
- * @param {{ run:function }} task
- */
- Scheduler.prototype.afterQueue = function(task) {
- this._afterQueue[this._afterQueueLen++] = task;
- this.run();
- };
-
- Scheduler.prototype.run = function() {
- if (!this._running) {
- this._running = true;
- this._async(this.drain);
- }
- };
-
- /**
- * Drain the handler queue entirely, and then the after queue
- */
- Scheduler.prototype._drain = function() {
- var i = 0;
- for (; i < this._queueLen; ++i) {
- this._queue[i].run();
- this._queue[i] = void 0;
- }
-
- this._queueLen = 0;
- this._running = false;
-
- for (i = 0; i < this._afterQueueLen; ++i) {
- this._afterQueue[i].run();
- this._afterQueue[i] = void 0;
- }
-
- this._afterQueueLen = 0;
- };
-
- return Scheduler;
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],11:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- /**
- * Custom error type for promises rejected by promise.timeout
- * @param {string} message
- * @constructor
- */
- function TimeoutError (message) {
- Error.call(this);
- this.message = message;
- this.name = TimeoutError.name;
- if (typeof Error.captureStackTrace === 'function') {
- Error.captureStackTrace(this, TimeoutError);
- }
- }
-
- TimeoutError.prototype = Object.create(Error.prototype);
- TimeoutError.prototype.constructor = TimeoutError;
-
- return TimeoutError;
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-},{}],12:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- makeApply.tryCatchResolve = tryCatchResolve;
-
- return makeApply;
-
- function makeApply(Promise, call) {
- if(arguments.length < 2) {
- call = tryCatchResolve;
- }
-
- return apply;
-
- function apply(f, thisArg, args) {
- var p = Promise._defer();
- var l = args.length;
- var params = new Array(l);
- callAndResolve({ f:f, thisArg:thisArg, args:args, params:params, i:l-1, call:call }, p._handler);
-
- return p;
- }
-
- function callAndResolve(c, h) {
- if(c.i < 0) {
- return call(c.f, c.thisArg, c.params, h);
- }
-
- var handler = Promise._handler(c.args[c.i]);
- handler.fold(callAndResolveNext, c, void 0, h);
- }
-
- function callAndResolveNext(c, x, h) {
- c.params[c.i] = x;
- c.i -= 1;
- callAndResolve(c, h);
- }
- }
-
- function tryCatchResolve(f, thisArg, args, resolver) {
- try {
- resolver.resolve(f.apply(thisArg, args));
- } catch(e) {
- resolver.reject(e);
- }
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-
-
-},{}],13:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var state = require('../state');
- var applier = require('../apply');
-
- return function array(Promise) {
-
- var applyFold = applier(Promise);
- var toPromise = Promise.resolve;
- var all = Promise.all;
-
- var ar = Array.prototype.reduce;
- var arr = Array.prototype.reduceRight;
- var slice = Array.prototype.slice;
-
- // Additional array combinators
-
- Promise.any = any;
- Promise.some = some;
- Promise.settle = settle;
-
- Promise.map = map;
- Promise.filter = filter;
- Promise.reduce = reduce;
- Promise.reduceRight = reduceRight;
-
- /**
- * When this promise fulfills with an array, do
- * onFulfilled.apply(void 0, array)
- * @param {function} onFulfilled function to apply
- * @returns {Promise} promise for the result of applying onFulfilled
- */
- Promise.prototype.spread = function(onFulfilled) {
- return this.then(all).then(function(array) {
- return onFulfilled.apply(this, array);
- });
- };
-
- return Promise;
-
- /**
- * One-winner competitive race.
- * Return a promise that will fulfill when one of the promises
- * in the input array fulfills, or will reject when all promises
- * have rejected.
- * @param {array} promises
- * @returns {Promise} promise for the first fulfilled value
- */
- function any(promises) {
- var p = Promise._defer();
- var resolver = p._handler;
- var l = promises.length>>>0;
-
- var pending = l;
- var errors = [];
-
- for (var h, x, i = 0; i < l; ++i) {
- x = promises[i];
- if(x === void 0 && !(i in promises)) {
- --pending;
- continue;
- }
-
- h = Promise._handler(x);
- if(h.state() > 0) {
- resolver.become(h);
- Promise._visitRemaining(promises, i, h);
- break;
- } else {
- h.visit(resolver, handleFulfill, handleReject);
- }
- }
-
- if(pending === 0) {
- resolver.reject(new RangeError('any(): array must not be empty'));
- }
-
- return p;
-
- function handleFulfill(x) {
- /*jshint validthis:true*/
- errors = null;
- this.resolve(x); // this === resolver
- }
-
- function handleReject(e) {
- /*jshint validthis:true*/
- if(this.resolved) { // this === resolver
- return;
- }
-
- errors.push(e);
- if(--pending === 0) {
- this.reject(errors);
- }
- }
- }
-
- /**
- * N-winner competitive race
- * Return a promise that will fulfill when n input promises have
- * fulfilled, or will reject when it becomes impossible for n
- * input promises to fulfill (ie when promises.length - n + 1
- * have rejected)
- * @param {array} promises
- * @param {number} n
- * @returns {Promise} promise for the earliest n fulfillment values
- *
- * @deprecated
- */
- function some(promises, n) {
- /*jshint maxcomplexity:7*/
- var p = Promise._defer();
- var resolver = p._handler;
-
- var results = [];
- var errors = [];
-
- var l = promises.length>>>0;
- var nFulfill = 0;
- var nReject;
- var x, i; // reused in both for() loops
-
- // First pass: count actual array items
- for(i=0; i<l; ++i) {
- x = promises[i];
- if(x === void 0 && !(i in promises)) {
- continue;
- }
- ++nFulfill;
- }
-
- // Compute actual goals
- n = Math.max(n, 0);
- nReject = (nFulfill - n + 1);
- nFulfill = Math.min(n, nFulfill);
-
- if(n > nFulfill) {
- resolver.reject(new RangeError('some(): array must contain at least '
- + n + ' item(s), but had ' + nFulfill));
- } else if(nFulfill === 0) {
- resolver.resolve(results);
- }
-
- // Second pass: observe each array item, make progress toward goals
- for(i=0; i<l; ++i) {
- x = promises[i];
- if(x === void 0 && !(i in promises)) {
- continue;
- }
-
- Promise._handler(x).visit(resolver, fulfill, reject, resolver.notify);
- }
-
- return p;
-
- function fulfill(x) {
- /*jshint validthis:true*/
- if(this.resolved) { // this === resolver
- return;
- }
-
- results.push(x);
- if(--nFulfill === 0) {
- errors = null;
- this.resolve(results);
- }
- }
-
- function reject(e) {
- /*jshint validthis:true*/
- if(this.resolved) { // this === resolver
- return;
- }
-
- errors.push(e);
- if(--nReject === 0) {
- results = null;
- this.reject(errors);
- }
- }
- }
-
- /**
- * Apply f to the value of each promise in a list of promises
- * and return a new list containing the results.
- * @param {array} promises
- * @param {function(x:*, index:Number):*} f mapping function
- * @returns {Promise}
- */
- function map(promises, f) {
- return Promise._traverse(f, promises);
- }
-
- /**
- * Filter the provided array of promises using the provided predicate. Input may
- * contain promises and values
- * @param {Array} promises array of promises and values
- * @param {function(x:*, index:Number):boolean} predicate filtering predicate.
- * Must return truthy (or promise for truthy) for items to retain.
- * @returns {Promise} promise that will fulfill with an array containing all items
- * for which predicate returned truthy.
- */
- function filter(promises, predicate) {
- var a = slice.call(promises);
- return Promise._traverse(predicate, a).then(function(keep) {
- return filterSync(a, keep);
- });
- }
-
- function filterSync(promises, keep) {
- // Safe because we know all promises have fulfilled if we've made it this far
- var l = keep.length;
- var filtered = new Array(l);
- for(var i=0, j=0; i<l; ++i) {
- if(keep[i]) {
- filtered[j++] = Promise._handler(promises[i]).value;
- }
- }
- filtered.length = j;
- return filtered;
-
- }
-
- /**
- * Return a promise that will always fulfill with an array containing
- * the outcome states of all input promises. The returned promise
- * will never reject.
- * @param {Array} promises
- * @returns {Promise} promise for array of settled state descriptors
- */
- function settle(promises) {
- return all(promises.map(settleOne));
- }
-
- function settleOne(p) {
- // Optimize the case where we get an already-resolved when.js promise
- // by extracting its state:
- var handler;
- if (p instanceof Promise) {
- // This is our own Promise type and we can reach its handler internals:
- handler = p._handler.join();
- }
- if((handler && handler.state() === 0) || !handler) {
- // Either still pending, or not a Promise at all:
- return toPromise(p).then(state.fulfilled, state.rejected);
- }
-
- // The promise is our own, but it is already resolved. Take a shortcut.
- // Since we're not actually handling the resolution, we need to disable
- // rejection reporting.
- handler._unreport();
- return state.inspect(handler);
- }
-
- /**
- * Traditional reduce function, similar to `Array.prototype.reduce()`, but
- * input may contain promises and/or values, and reduceFunc
- * may return either a value or a promise, *and* initialValue may
- * be a promise for the starting value.
- * @param {Array|Promise} promises array or promise for an array of anything,
- * may contain a mix of promises and values.
- * @param {function(accumulated:*, x:*, index:Number):*} f reduce function
- * @returns {Promise} that will resolve to the final reduced value
- */
- function reduce(promises, f /*, initialValue */) {
- return arguments.length > 2 ? ar.call(promises, liftCombine(f), arguments[2])
- : ar.call(promises, liftCombine(f));
- }
-
- /**
- * Traditional reduce function, similar to `Array.prototype.reduceRight()`, but
- * input may contain promises and/or values, and reduceFunc
- * may return either a value or a promise, *and* initialValue may
- * be a promise for the starting value.
- * @param {Array|Promise} promises array or promise for an array of anything,
- * may contain a mix of promises and values.
- * @param {function(accumulated:*, x:*, index:Number):*} f reduce function
- * @returns {Promise} that will resolve to the final reduced value
- */
- function reduceRight(promises, f /*, initialValue */) {
- return arguments.length > 2 ? arr.call(promises, liftCombine(f), arguments[2])
- : arr.call(promises, liftCombine(f));
- }
-
- function liftCombine(f) {
- return function(z, x, i) {
- return applyFold(f, void 0, [z,x,i]);
- };
- }
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{"../apply":12,"../state":26}],14:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function flow(Promise) {
-
- var resolve = Promise.resolve;
- var reject = Promise.reject;
- var origCatch = Promise.prototype['catch'];
-
- /**
- * Handle the ultimate fulfillment value or rejection reason, and assume
- * responsibility for all errors. If an error propagates out of result
- * or handleFatalError, it will be rethrown to the host, resulting in a
- * loud stack track on most platforms and a crash on some.
- * @param {function?} onResult
- * @param {function?} onError
- * @returns {undefined}
- */
- Promise.prototype.done = function(onResult, onError) {
- this._handler.visit(this._handler.receiver, onResult, onError);
- };
-
- /**
- * Add Error-type and predicate matching to catch. Examples:
- * promise.catch(TypeError, handleTypeError)
- * .catch(predicate, handleMatchedErrors)
- * .catch(handleRemainingErrors)
- * @param onRejected
- * @returns {*}
- */
- Promise.prototype['catch'] = Promise.prototype.otherwise = function(onRejected) {
- if (arguments.length < 2) {
- return origCatch.call(this, onRejected);
- }
-
- if(typeof onRejected !== 'function') {
- return this.ensure(rejectInvalidPredicate);
- }
-
- return origCatch.call(this, createCatchFilter(arguments[1], onRejected));
- };
-
- /**
- * Wraps the provided catch handler, so that it will only be called
- * if the predicate evaluates truthy
- * @param {?function} handler
- * @param {function} predicate
- * @returns {function} conditional catch handler
- */
- function createCatchFilter(handler, predicate) {
- return function(e) {
- return evaluatePredicate(e, predicate)
- ? handler.call(this, e)
- : reject(e);
- };
- }
-
- /**
- * Ensures that onFulfilledOrRejected will be called regardless of whether
- * this promise is fulfilled or rejected. onFulfilledOrRejected WILL NOT
- * receive the promises' value or reason. Any returned value will be disregarded.
- * onFulfilledOrRejected may throw or return a rejected promise to signal
- * an additional error.
- * @param {function} handler handler to be called regardless of
- * fulfillment or rejection
- * @returns {Promise}
- */
- Promise.prototype['finally'] = Promise.prototype.ensure = function(handler) {
- if(typeof handler !== 'function') {
- return this;
- }
-
- return this.then(function(x) {
- return runSideEffect(handler, this, identity, x);
- }, function(e) {
- return runSideEffect(handler, this, reject, e);
- });
- };
-
- function runSideEffect (handler, thisArg, propagate, value) {
- var result = handler.call(thisArg);
- return maybeThenable(result)
- ? propagateValue(result, propagate, value)
- : propagate(value);
- }
-
- function propagateValue (result, propagate, x) {
- return resolve(result).then(function () {
- return propagate(x);
- });
- }
-
- /**
- * Recover from a failure by returning a defaultValue. If defaultValue
- * is a promise, it's fulfillment value will be used. If defaultValue is
- * a promise that rejects, the returned promise will reject with the
- * same reason.
- * @param {*} defaultValue
- * @returns {Promise} new promise
- */
- Promise.prototype['else'] = Promise.prototype.orElse = function(defaultValue) {
- return this.then(void 0, function() {
- return defaultValue;
- });
- };
-
- /**
- * Shortcut for .then(function() { return value; })
- * @param {*} value
- * @return {Promise} a promise that:
- * - is fulfilled if value is not a promise, or
- * - if value is a promise, will fulfill with its value, or reject
- * with its reason.
- */
- Promise.prototype['yield'] = function(value) {
- return this.then(function() {
- return value;
- });
- };
-
- /**
- * Runs a side effect when this promise fulfills, without changing the
- * fulfillment value.
- * @param {function} onFulfilledSideEffect
- * @returns {Promise}
- */
- Promise.prototype.tap = function(onFulfilledSideEffect) {
- return this.then(onFulfilledSideEffect)['yield'](this);
- };
-
- return Promise;
- };
-
- function rejectInvalidPredicate() {
- throw new TypeError('catch predicate must be a function');
- }
-
- function evaluatePredicate(e, predicate) {
- return isError(predicate) ? e instanceof predicate : predicate(e);
- }
-
- function isError(predicate) {
- return predicate === Error
- || (predicate != null && predicate.prototype instanceof Error);
- }
-
- function maybeThenable(x) {
- return (typeof x === 'object' || typeof x === 'function') && x !== null;
- }
-
- function identity(x) {
- return x;
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],15:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-/** @author Jeff Escalante */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function fold(Promise) {
-
- Promise.prototype.fold = function(f, z) {
- var promise = this._beget();
-
- this._handler.fold(function(z, x, to) {
- Promise._handler(z).fold(function(x, z, to) {
- to.resolve(f.call(this, z, x));
- }, x, this, to);
- }, z, promise._handler.receiver, promise._handler);
-
- return promise;
- };
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],16:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var inspect = require('../state').inspect;
-
- return function inspection(Promise) {
-
- Promise.prototype.inspect = function() {
- return inspect(Promise._handler(this));
- };
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{"../state":26}],17:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function generate(Promise) {
-
- var resolve = Promise.resolve;
-
- Promise.iterate = iterate;
- Promise.unfold = unfold;
-
- return Promise;
-
- /**
- * @deprecated Use github.com/cujojs/most streams and most.iterate
- * Generate a (potentially infinite) stream of promised values:
- * x, f(x), f(f(x)), etc. until condition(x) returns true
- * @param {function} f function to generate a new x from the previous x
- * @param {function} condition function that, given the current x, returns
- * truthy when the iterate should stop
- * @param {function} handler function to handle the value produced by f
- * @param {*|Promise} x starting value, may be a promise
- * @return {Promise} the result of the last call to f before
- * condition returns true
- */
- function iterate(f, condition, handler, x) {
- return unfold(function(x) {
- return [x, f(x)];
- }, condition, handler, x);
- }
-
- /**
- * @deprecated Use github.com/cujojs/most streams and most.unfold
- * Generate a (potentially infinite) stream of promised values
- * by applying handler(generator(seed)) iteratively until
- * condition(seed) returns true.
- * @param {function} unspool function that generates a [value, newSeed]
- * given a seed.
- * @param {function} condition function that, given the current seed, returns
- * truthy when the unfold should stop
- * @param {function} handler function to handle the value produced by unspool
- * @param x {*|Promise} starting value, may be a promise
- * @return {Promise} the result of the last value produced by unspool before
- * condition returns true
- */
- function unfold(unspool, condition, handler, x) {
- return resolve(x).then(function(seed) {
- return resolve(condition(seed)).then(function(done) {
- return done ? seed : resolve(unspool(seed)).spread(next);
- });
- });
-
- function next(item, newSeed) {
- return resolve(handler(item)).then(function() {
- return unfold(unspool, condition, handler, newSeed);
- });
- }
- }
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],18:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function progress(Promise) {
-
- /**
- * @deprecated
- * Register a progress handler for this promise
- * @param {function} onProgress
- * @returns {Promise}
- */
- Promise.prototype.progress = function(onProgress) {
- return this.then(void 0, void 0, onProgress);
- };
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],19:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var env = require('../env');
- var TimeoutError = require('../TimeoutError');
-
- function setTimeout(f, ms, x, y) {
- return env.setTimer(function() {
- f(x, y, ms);
- }, ms);
- }
-
- return function timed(Promise) {
- /**
- * Return a new promise whose fulfillment value is revealed only
- * after ms milliseconds
- * @param {number} ms milliseconds
- * @returns {Promise}
- */
- Promise.prototype.delay = function(ms) {
- var p = this._beget();
- this._handler.fold(handleDelay, ms, void 0, p._handler);
- return p;
- };
-
- function handleDelay(ms, x, h) {
- setTimeout(resolveDelay, ms, x, h);
- }
-
- function resolveDelay(x, h) {
- h.resolve(x);
- }
-
- /**
- * Return a new promise that rejects after ms milliseconds unless
- * this promise fulfills earlier, in which case the returned promise
- * fulfills with the same value.
- * @param {number} ms milliseconds
- * @param {Error|*=} reason optional rejection reason to use, defaults
- * to a TimeoutError if not provided
- * @returns {Promise}
- */
- Promise.prototype.timeout = function(ms, reason) {
- var p = this._beget();
- var h = p._handler;
-
- var t = setTimeout(onTimeout, ms, reason, p._handler);
-
- this._handler.visit(h,
- function onFulfill(x) {
- env.clearTimer(t);
- this.resolve(x); // this = h
- },
- function onReject(x) {
- env.clearTimer(t);
- this.reject(x); // this = h
- },
- h.notify);
-
- return p;
- };
-
- function onTimeout(reason, h, ms) {
- var e = typeof reason === 'undefined'
- ? new TimeoutError('timed out after ' + ms + 'ms')
- : reason;
- h.reject(e);
- }
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{"../TimeoutError":11,"../env":22}],20:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var setTimer = require('../env').setTimer;
- var format = require('../format');
-
- return function unhandledRejection(Promise) {
-
- var logError = noop;
- var logInfo = noop;
- var localConsole;
-
- if(typeof console !== 'undefined') {
- // Alias console to prevent things like uglify's drop_console option from
- // removing console.log/error. Unhandled rejections fall into the same
- // category as uncaught exceptions, and build tools shouldn't silence them.
- localConsole = console;
- logError = typeof localConsole.error !== 'undefined'
- ? function (e) { localConsole.error(e); }
- : function (e) { localConsole.log(e); };
-
- logInfo = typeof localConsole.info !== 'undefined'
- ? function (e) { localConsole.info(e); }
- : function (e) { localConsole.log(e); };
- }
-
- Promise.onPotentiallyUnhandledRejection = function(rejection) {
- enqueue(report, rejection);
- };
-
- Promise.onPotentiallyUnhandledRejectionHandled = function(rejection) {
- enqueue(unreport, rejection);
- };
-
- Promise.onFatalRejection = function(rejection) {
- enqueue(throwit, rejection.value);
- };
-
- var tasks = [];
- var reported = [];
- var running = null;
-
- function report(r) {
- if(!r.handled) {
- reported.push(r);
- logError('Potentially unhandled rejection [' + r.id + '] ' + format.formatError(r.value));
- }
- }
-
- function unreport(r) {
- var i = reported.indexOf(r);
- if(i >= 0) {
- reported.splice(i, 1);
- logInfo('Handled previous rejection [' + r.id + '] ' + format.formatObject(r.value));
- }
- }
-
- function enqueue(f, x) {
- tasks.push(f, x);
- if(running === null) {
- running = setTimer(flush, 0);
- }
- }
-
- function flush() {
- running = null;
- while(tasks.length > 0) {
- tasks.shift()(tasks.shift());
- }
- }
-
- return Promise;
- };
-
- function throwit(e) {
- throw e;
- }
-
- function noop() {}
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{"../env":22,"../format":23}],21:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function addWith(Promise) {
- /**
- * Returns a promise whose handlers will be called with `this` set to
- * the supplied receiver. Subsequent promises derived from the
- * returned promise will also have their handlers called with receiver
- * as `this`. Calling `with` with undefined or no arguments will return
- * a promise whose handlers will again be called in the usual Promises/A+
- * way (no `this`) thus safely undoing any previous `with` in the
- * promise chain.
- *
- * WARNING: Promises returned from `with`/`withThis` are NOT Promises/A+
- * compliant, specifically violating 2.2.5 (http://promisesaplus.com/#point-41)
- *
- * @param {object} receiver `this` value for all handlers attached to
- * the returned promise.
- * @returns {Promise}
- */
- Promise.prototype['with'] = Promise.prototype.withThis = function(receiver) {
- var p = this._beget();
- var child = p._handler;
- child.receiver = receiver;
- this._handler.chain(child, receiver);
- return p;
- };
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-
-},{}],22:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-/*global process,document,setTimeout,clearTimeout,MutationObserver,WebKitMutationObserver*/
-(function(define) { 'use strict';
-define(function(require) {
- /*jshint maxcomplexity:6*/
-
- // Sniff "best" async scheduling option
- // Prefer process.nextTick or MutationObserver, then check for
- // setTimeout, and finally vertx, since its the only env that doesn't
- // have setTimeout
-
- var MutationObs;
- var capturedSetTimeout = typeof setTimeout !== 'undefined' && setTimeout;
-
- // Default env
- var setTimer = function(f, ms) { return setTimeout(f, ms); };
- var clearTimer = function(t) { return clearTimeout(t); };
- var asap = function (f) { return capturedSetTimeout(f, 0); };
-
- // Detect specific env
- if (isNode()) { // Node
- asap = function (f) { return process.nextTick(f); };
-
- } else if (MutationObs = hasMutationObserver()) { // Modern browser
- asap = initMutationObserver(MutationObs);
-
- } else if (!capturedSetTimeout) { // vert.x
- var vertxRequire = require;
- var vertx = vertxRequire('vertx');
- setTimer = function (f, ms) { return vertx.setTimer(ms, f); };
- clearTimer = vertx.cancelTimer;
- asap = vertx.runOnLoop || vertx.runOnContext;
- }
-
- return {
- setTimer: setTimer,
- clearTimer: clearTimer,
- asap: asap
- };
-
- function isNode () {
- return typeof process !== 'undefined' &&
- Object.prototype.toString.call(process) === '[object process]';
- }
-
- function hasMutationObserver () {
- return (typeof MutationObserver !== 'undefined' && MutationObserver) ||
- (typeof WebKitMutationObserver !== 'undefined' && WebKitMutationObserver);
- }
-
- function initMutationObserver(MutationObserver) {
- var scheduled;
- var node = document.createTextNode('');
- var o = new MutationObserver(run);
- o.observe(node, { characterData: true });
-
- function run() {
- var f = scheduled;
- scheduled = void 0;
- f();
- }
-
- var i = 0;
- return function (f) {
- scheduled = f;
- node.data = (i ^= 1);
- };
- }
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{}],23:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return {
- formatError: formatError,
- formatObject: formatObject,
- tryStringify: tryStringify
- };
-
- /**
- * Format an error into a string. If e is an Error and has a stack property,
- * it's returned. Otherwise, e is formatted using formatObject, with a
- * warning added about e not being a proper Error.
- * @param {*} e
- * @returns {String} formatted string, suitable for output to developers
- */
- function formatError(e) {
- var s = typeof e === 'object' && e !== null && (e.stack || e.message) ? e.stack || e.message : formatObject(e);
- return e instanceof Error ? s : s + ' (WARNING: non-Error used)';
- }
-
- /**
- * Format an object, detecting "plain" objects and running them through
- * JSON.stringify if possible.
- * @param {Object} o
- * @returns {string}
- */
- function formatObject(o) {
- var s = String(o);
- if(s === '[object Object]' && typeof JSON !== 'undefined') {
- s = tryStringify(o, s);
- }
- return s;
- }
-
- /**
- * Try to return the result of JSON.stringify(x). If that fails, return
- * defaultValue
- * @param {*} x
- * @param {*} defaultValue
- * @returns {String|*} JSON.stringify(x) or defaultValue
- */
- function tryStringify(x, defaultValue) {
- try {
- return JSON.stringify(x);
- } catch(e) {
- return defaultValue;
- }
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],24:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function liftAll(liftOne, combine, dst, src) {
- if(typeof combine === 'undefined') {
- combine = defaultCombine;
- }
-
- return Object.keys(src).reduce(function(dst, key) {
- var f = src[key];
- return typeof f === 'function' ? combine(dst, liftOne(f), key) : dst;
- }, typeof dst === 'undefined' ? defaultDst(src) : dst);
- };
-
- function defaultCombine(o, f, k) {
- o[k] = f;
- return o;
- }
-
- function defaultDst(src) {
- return typeof src === 'function' ? src.bind() : Object.create(src);
- }
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],25:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function makePromise(environment) {
-
- var tasks = environment.scheduler;
- var emitRejection = initEmitRejection();
-
- var objectCreate = Object.create ||
- function(proto) {
- function Child() {}
- Child.prototype = proto;
- return new Child();
- };
-
- /**
- * Create a promise whose fate is determined by resolver
- * @constructor
- * @returns {Promise} promise
- * @name Promise
- */
- function Promise(resolver, handler) {
- this._handler = resolver === Handler ? handler : init(resolver);
- }
-
- /**
- * Run the supplied resolver
- * @param resolver
- * @returns {Pending}
- */
- function init(resolver) {
- var handler = new Pending();
-
- try {
- resolver(promiseResolve, promiseReject, promiseNotify);
- } catch (e) {
- promiseReject(e);
- }
-
- return handler;
-
- /**
- * Transition from pre-resolution state to post-resolution state, notifying
- * all listeners of the ultimate fulfillment or rejection
- * @param {*} x resolution value
- */
- function promiseResolve (x) {
- handler.resolve(x);
- }
- /**
- * Reject this promise with reason, which will be used verbatim
- * @param {Error|*} reason rejection reason, strongly suggested
- * to be an Error type
- */
- function promiseReject (reason) {
- handler.reject(reason);
- }
-
- /**
- * @deprecated
- * Issue a progress event, notifying all progress listeners
- * @param {*} x progress event payload to pass to all listeners
- */
- function promiseNotify (x) {
- handler.notify(x);
- }
- }
-
- // Creation
-
- Promise.resolve = resolve;
- Promise.reject = reject;
- Promise.never = never;
-
- Promise._defer = defer;
- Promise._handler = getHandler;
-
- /**
- * Returns a trusted promise. If x is already a trusted promise, it is
- * returned, otherwise returns a new trusted Promise which follows x.
- * @param {*} x
- * @return {Promise} promise
- */
- function resolve(x) {
- return isPromise(x) ? x
- : new Promise(Handler, new Async(getHandler(x)));
- }
-
- /**
- * Return a reject promise with x as its reason (x is used verbatim)
- * @param {*} x
- * @returns {Promise} rejected promise
- */
- function reject(x) {
- return new Promise(Handler, new Async(new Rejected(x)));
- }
-
- /**
- * Return a promise that remains pending forever
- * @returns {Promise} forever-pending promise.
- */
- function never() {
- return foreverPendingPromise; // Should be frozen
- }
-
- /**
- * Creates an internal {promise, resolver} pair
- * @private
- * @returns {Promise}
- */
- function defer() {
- return new Promise(Handler, new Pending());
- }
-
- // Transformation and flow control
-
- /**
- * Transform this promise's fulfillment value, returning a new Promise
- * for the transformed result. If the promise cannot be fulfilled, onRejected
- * is called with the reason. onProgress *may* be called with updates toward
- * this promise's fulfillment.
- * @param {function=} onFulfilled fulfillment handler
- * @param {function=} onRejected rejection handler
- * @param {function=} onProgress @deprecated progress handler
- * @return {Promise} new promise
- */
- Promise.prototype.then = function(onFulfilled, onRejected, onProgress) {
- var parent = this._handler;
- var state = parent.join().state();
-
- if ((typeof onFulfilled !== 'function' && state > 0) ||
- (typeof onRejected !== 'function' && state < 0)) {
- // Short circuit: value will not change, simply share handler
- return new this.constructor(Handler, parent);
- }
-
- var p = this._beget();
- var child = p._handler;
-
- parent.chain(child, parent.receiver, onFulfilled, onRejected, onProgress);
-
- return p;
- };
-
- /**
- * If this promise cannot be fulfilled due to an error, call onRejected to
- * handle the error. Shortcut for .then(undefined, onRejected)
- * @param {function?} onRejected
- * @return {Promise}
- */
- Promise.prototype['catch'] = function(onRejected) {
- return this.then(void 0, onRejected);
- };
-
- /**
- * Creates a new, pending promise of the same type as this promise
- * @private
- * @returns {Promise}
- */
- Promise.prototype._beget = function() {
- return begetFrom(this._handler, this.constructor);
- };
-
- function begetFrom(parent, Promise) {
- var child = new Pending(parent.receiver, parent.join().context);
- return new Promise(Handler, child);
- }
-
- // Array combinators
-
- Promise.all = all;
- Promise.race = race;
- Promise._traverse = traverse;
-
- /**
- * Return a promise that will fulfill when all promises in the
- * input array have fulfilled, or will reject when one of the
- * promises rejects.
- * @param {array} promises array of promises
- * @returns {Promise} promise for array of fulfillment values
- */
- function all(promises) {
- return traverseWith(snd, null, promises);
- }
-
- /**
- * Array<Promise<X>> -> Promise<Array<f(X)>>
- * @private
- * @param {function} f function to apply to each promise's value
- * @param {Array} promises array of promises
- * @returns {Promise} promise for transformed values
- */
- function traverse(f, promises) {
- return traverseWith(tryCatch2, f, promises);
- }
-
- function traverseWith(tryMap, f, promises) {
- var handler = typeof f === 'function' ? mapAt : settleAt;
-
- var resolver = new Pending();
- var pending = promises.length >>> 0;
- var results = new Array(pending);
-
- for (var i = 0, x; i < promises.length && !resolver.resolved; ++i) {
- x = promises[i];
-
- if (x === void 0 && !(i in promises)) {
- --pending;
- continue;
- }
-
- traverseAt(promises, handler, i, x, resolver);
- }
-
- if(pending === 0) {
- resolver.become(new Fulfilled(results));
- }
-
- return new Promise(Handler, resolver);
-
- function mapAt(i, x, resolver) {
- if(!resolver.resolved) {
- traverseAt(promises, settleAt, i, tryMap(f, x, i), resolver);
- }
- }
-
- function settleAt(i, x, resolver) {
- results[i] = x;
- if(--pending === 0) {
- resolver.become(new Fulfilled(results));
- }
- }
- }
-
- function traverseAt(promises, handler, i, x, resolver) {
- if (maybeThenable(x)) {
- var h = getHandlerMaybeThenable(x);
- var s = h.state();
-
- if (s === 0) {
- h.fold(handler, i, void 0, resolver);
- } else if (s > 0) {
- handler(i, h.value, resolver);
- } else {
- resolver.become(h);
- visitRemaining(promises, i+1, h);
- }
- } else {
- handler(i, x, resolver);
- }
- }
-
- Promise._visitRemaining = visitRemaining;
- function visitRemaining(promises, start, handler) {
- for(var i=start; i<promises.length; ++i) {
- markAsHandled(getHandler(promises[i]), handler);
- }
- }
-
- function markAsHandled(h, handler) {
- if(h === handler) {
- return;
- }
-
- var s = h.state();
- if(s === 0) {
- h.visit(h, void 0, h._unreport);
- } else if(s < 0) {
- h._unreport();
- }
- }
-
- /**
- * Fulfill-reject competitive race. Return a promise that will settle
- * to the same state as the earliest input promise to settle.
- *
- * WARNING: The ES6 Promise spec requires that race()ing an empty array
- * must return a promise that is pending forever. This implementation
- * returns a singleton forever-pending promise, the same singleton that is
- * returned by Promise.never(), thus can be checked with ===
- *
- * @param {array} promises array of promises to race
- * @returns {Promise} if input is non-empty, a promise that will settle
- * to the same outcome as the earliest input promise to settle. if empty
- * is empty, returns a promise that will never settle.
- */
- function race(promises) {
- if(typeof promises !== 'object' || promises === null) {
- return reject(new TypeError('non-iterable passed to race()'));
- }
-
- // Sigh, race([]) is untestable unless we return *something*
- // that is recognizable without calling .then() on it.
- return promises.length === 0 ? never()
- : promises.length === 1 ? resolve(promises[0])
- : runRace(promises);
- }
-
- function runRace(promises) {
- var resolver = new Pending();
- var i, x, h;
- for(i=0; i<promises.length; ++i) {
- x = promises[i];
- if (x === void 0 && !(i in promises)) {
- continue;
- }
-
- h = getHandler(x);
- if(h.state() !== 0) {
- resolver.become(h);
- visitRemaining(promises, i+1, h);
- break;
- } else {
- h.visit(resolver, resolver.resolve, resolver.reject);
- }
- }
- return new Promise(Handler, resolver);
- }
-
- // Promise internals
- // Below this, everything is @private
-
- /**
- * Get an appropriate handler for x, without checking for cycles
- * @param {*} x
- * @returns {object} handler
- */
- function getHandler(x) {
- if(isPromise(x)) {
- return x._handler.join();
- }
- return maybeThenable(x) ? getHandlerUntrusted(x) : new Fulfilled(x);
- }
-
- /**
- * Get a handler for thenable x.
- * NOTE: You must only call this if maybeThenable(x) == true
- * @param {object|function|Promise} x
- * @returns {object} handler
- */
- function getHandlerMaybeThenable(x) {
- return isPromise(x) ? x._handler.join() : getHandlerUntrusted(x);
- }
-
- /**
- * Get a handler for potentially untrusted thenable x
- * @param {*} x
- * @returns {object} handler
- */
- function getHandlerUntrusted(x) {
- try {
- var untrustedThen = x.then;
- return typeof untrustedThen === 'function'
- ? new Thenable(untrustedThen, x)
- : new Fulfilled(x);
- } catch(e) {
- return new Rejected(e);
- }
- }
-
- /**
- * Handler for a promise that is pending forever
- * @constructor
- */
- function Handler() {}
-
- Handler.prototype.when
- = Handler.prototype.become
- = Handler.prototype.notify // deprecated
- = Handler.prototype.fail
- = Handler.prototype._unreport
- = Handler.prototype._report
- = noop;
-
- Handler.prototype._state = 0;
-
- Handler.prototype.state = function() {
- return this._state;
- };
-
- /**
- * Recursively collapse handler chain to find the handler
- * nearest to the fully resolved value.
- * @returns {object} handler nearest the fully resolved value
- */
- Handler.prototype.join = function() {
- var h = this;
- while(h.handler !== void 0) {
- h = h.handler;
- }
- return h;
- };
-
- Handler.prototype.chain = function(to, receiver, fulfilled, rejected, progress) {
- this.when({
- resolver: to,
- receiver: receiver,
- fulfilled: fulfilled,
- rejected: rejected,
- progress: progress
- });
- };
-
- Handler.prototype.visit = function(receiver, fulfilled, rejected, progress) {
- this.chain(failIfRejected, receiver, fulfilled, rejected, progress);
- };
-
- Handler.prototype.fold = function(f, z, c, to) {
- this.when(new Fold(f, z, c, to));
- };
-
- /**
- * Handler that invokes fail() on any handler it becomes
- * @constructor
- */
- function FailIfRejected() {}
-
- inherit(Handler, FailIfRejected);
-
- FailIfRejected.prototype.become = function(h) {
- h.fail();
- };
-
- var failIfRejected = new FailIfRejected();
-
- /**
- * Handler that manages a queue of consumers waiting on a pending promise
- * @constructor
- */
- function Pending(receiver, inheritedContext) {
- Promise.createContext(this, inheritedContext);
-
- this.consumers = void 0;
- this.receiver = receiver;
- this.handler = void 0;
- this.resolved = false;
- }
-
- inherit(Handler, Pending);
-
- Pending.prototype._state = 0;
-
- Pending.prototype.resolve = function(x) {
- this.become(getHandler(x));
- };
-
- Pending.prototype.reject = function(x) {
- if(this.resolved) {
- return;
- }
-
- this.become(new Rejected(x));
- };
-
- Pending.prototype.join = function() {
- if (!this.resolved) {
- return this;
- }
-
- var h = this;
-
- while (h.handler !== void 0) {
- h = h.handler;
- if (h === this) {
- return this.handler = cycle();
- }
- }
-
- return h;
- };
-
- Pending.prototype.run = function() {
- var q = this.consumers;
- var handler = this.handler;
- this.handler = this.handler.join();
- this.consumers = void 0;
-
- for (var i = 0; i < q.length; ++i) {
- handler.when(q[i]);
- }
- };
-
- Pending.prototype.become = function(handler) {
- if(this.resolved) {
- return;
- }
-
- this.resolved = true;
- this.handler = handler;
- if(this.consumers !== void 0) {
- tasks.enqueue(this);
- }
-
- if(this.context !== void 0) {
- handler._report(this.context);
- }
- };
-
- Pending.prototype.when = function(continuation) {
- if(this.resolved) {
- tasks.enqueue(new ContinuationTask(continuation, this.handler));
- } else {
- if(this.consumers === void 0) {
- this.consumers = [continuation];
- } else {
- this.consumers.push(continuation);
- }
- }
- };
-
- /**
- * @deprecated
- */
- Pending.prototype.notify = function(x) {
- if(!this.resolved) {
- tasks.enqueue(new ProgressTask(x, this));
- }
- };
-
- Pending.prototype.fail = function(context) {
- var c = typeof context === 'undefined' ? this.context : context;
- this.resolved && this.handler.join().fail(c);
- };
-
- Pending.prototype._report = function(context) {
- this.resolved && this.handler.join()._report(context);
- };
-
- Pending.prototype._unreport = function() {
- this.resolved && this.handler.join()._unreport();
- };
-
- /**
- * Wrap another handler and force it into a future stack
- * @param {object} handler
- * @constructor
- */
- function Async(handler) {
- this.handler = handler;
- }
-
- inherit(Handler, Async);
-
- Async.prototype.when = function(continuation) {
- tasks.enqueue(new ContinuationTask(continuation, this));
- };
-
- Async.prototype._report = function(context) {
- this.join()._report(context);
- };
-
- Async.prototype._unreport = function() {
- this.join()._unreport();
- };
-
- /**
- * Handler that wraps an untrusted thenable and assimilates it in a future stack
- * @param {function} then
- * @param {{then: function}} thenable
- * @constructor
- */
- function Thenable(then, thenable) {
- Pending.call(this);
- tasks.enqueue(new AssimilateTask(then, thenable, this));
- }
-
- inherit(Pending, Thenable);
-
- /**
- * Handler for a fulfilled promise
- * @param {*} x fulfillment value
- * @constructor
- */
- function Fulfilled(x) {
- Promise.createContext(this);
- this.value = x;
- }
-
- inherit(Handler, Fulfilled);
-
- Fulfilled.prototype._state = 1;
-
- Fulfilled.prototype.fold = function(f, z, c, to) {
- runContinuation3(f, z, this, c, to);
- };
-
- Fulfilled.prototype.when = function(cont) {
- runContinuation1(cont.fulfilled, this, cont.receiver, cont.resolver);
- };
-
- var errorId = 0;
-
- /**
- * Handler for a rejected promise
- * @param {*} x rejection reason
- * @constructor
- */
- function Rejected(x) {
- Promise.createContext(this);
-
- this.id = ++errorId;
- this.value = x;
- this.handled = false;
- this.reported = false;
-
- this._report();
- }
-
- inherit(Handler, Rejected);
-
- Rejected.prototype._state = -1;
-
- Rejected.prototype.fold = function(f, z, c, to) {
- to.become(this);
- };
-
- Rejected.prototype.when = function(cont) {
- if(typeof cont.rejected === 'function') {
- this._unreport();
- }
- runContinuation1(cont.rejected, this, cont.receiver, cont.resolver);
- };
-
- Rejected.prototype._report = function(context) {
- tasks.afterQueue(new ReportTask(this, context));
- };
-
- Rejected.prototype._unreport = function() {
- if(this.handled) {
- return;
- }
- this.handled = true;
- tasks.afterQueue(new UnreportTask(this));
- };
-
- Rejected.prototype.fail = function(context) {
- this.reported = true;
- emitRejection('unhandledRejection', this);
- Promise.onFatalRejection(this, context === void 0 ? this.context : context);
- };
-
- function ReportTask(rejection, context) {
- this.rejection = rejection;
- this.context = context;
- }
-
- ReportTask.prototype.run = function() {
- if(!this.rejection.handled && !this.rejection.reported) {
- this.rejection.reported = true;
- emitRejection('unhandledRejection', this.rejection) ||
- Promise.onPotentiallyUnhandledRejection(this.rejection, this.context);
- }
- };
-
- function UnreportTask(rejection) {
- this.rejection = rejection;
- }
-
- UnreportTask.prototype.run = function() {
- if(this.rejection.reported) {
- emitRejection('rejectionHandled', this.rejection) ||
- Promise.onPotentiallyUnhandledRejectionHandled(this.rejection);
- }
- };
-
- // Unhandled rejection hooks
- // By default, everything is a noop
-
- Promise.createContext
- = Promise.enterContext
- = Promise.exitContext
- = Promise.onPotentiallyUnhandledRejection
- = Promise.onPotentiallyUnhandledRejectionHandled
- = Promise.onFatalRejection
- = noop;
-
- // Errors and singletons
-
- var foreverPendingHandler = new Handler();
- var foreverPendingPromise = new Promise(Handler, foreverPendingHandler);
-
- function cycle() {
- return new Rejected(new TypeError('Promise cycle'));
- }
-
- // Task runners
-
- /**
- * Run a single consumer
- * @constructor
- */
- function ContinuationTask(continuation, handler) {
- this.continuation = continuation;
- this.handler = handler;
- }
-
- ContinuationTask.prototype.run = function() {
- this.handler.join().when(this.continuation);
- };
-
- /**
- * Run a queue of progress handlers
- * @constructor
- */
- function ProgressTask(value, handler) {
- this.handler = handler;
- this.value = value;
- }
-
- ProgressTask.prototype.run = function() {
- var q = this.handler.consumers;
- if(q === void 0) {
- return;
- }
-
- for (var c, i = 0; i < q.length; ++i) {
- c = q[i];
- runNotify(c.progress, this.value, this.handler, c.receiver, c.resolver);
- }
- };
-
- /**
- * Assimilate a thenable, sending it's value to resolver
- * @param {function} then
- * @param {object|function} thenable
- * @param {object} resolver
- * @constructor
- */
- function AssimilateTask(then, thenable, resolver) {
- this._then = then;
- this.thenable = thenable;
- this.resolver = resolver;
- }
-
- AssimilateTask.prototype.run = function() {
- var h = this.resolver;
- tryAssimilate(this._then, this.thenable, _resolve, _reject, _notify);
-
- function _resolve(x) { h.resolve(x); }
- function _reject(x) { h.reject(x); }
- function _notify(x) { h.notify(x); }
- };
-
- function tryAssimilate(then, thenable, resolve, reject, notify) {
- try {
- then.call(thenable, resolve, reject, notify);
- } catch (e) {
- reject(e);
- }
- }
-
- /**
- * Fold a handler value with z
- * @constructor
- */
- function Fold(f, z, c, to) {
- this.f = f; this.z = z; this.c = c; this.to = to;
- this.resolver = failIfRejected;
- this.receiver = this;
- }
-
- Fold.prototype.fulfilled = function(x) {
- this.f.call(this.c, this.z, x, this.to);
- };
-
- Fold.prototype.rejected = function(x) {
- this.to.reject(x);
- };
-
- Fold.prototype.progress = function(x) {
- this.to.notify(x);
- };
-
- // Other helpers
-
- /**
- * @param {*} x
- * @returns {boolean} true iff x is a trusted Promise
- */
- function isPromise(x) {
- return x instanceof Promise;
- }
-
- /**
- * Test just enough to rule out primitives, in order to take faster
- * paths in some code
- * @param {*} x
- * @returns {boolean} false iff x is guaranteed *not* to be a thenable
- */
- function maybeThenable(x) {
- return (typeof x === 'object' || typeof x === 'function') && x !== null;
- }
-
- function runContinuation1(f, h, receiver, next) {
- if(typeof f !== 'function') {
- return next.become(h);
- }
-
- Promise.enterContext(h);
- tryCatchReject(f, h.value, receiver, next);
- Promise.exitContext();
- }
-
- function runContinuation3(f, x, h, receiver, next) {
- if(typeof f !== 'function') {
- return next.become(h);
- }
-
- Promise.enterContext(h);
- tryCatchReject3(f, x, h.value, receiver, next);
- Promise.exitContext();
- }
-
- /**
- * @deprecated
- */
- function runNotify(f, x, h, receiver, next) {
- if(typeof f !== 'function') {
- return next.notify(x);
- }
-
- Promise.enterContext(h);
- tryCatchReturn(f, x, receiver, next);
- Promise.exitContext();
- }
-
- function tryCatch2(f, a, b) {
- try {
- return f(a, b);
- } catch(e) {
- return reject(e);
- }
- }
-
- /**
- * Return f.call(thisArg, x), or if it throws return a rejected promise for
- * the thrown exception
- */
- function tryCatchReject(f, x, thisArg, next) {
- try {
- next.become(getHandler(f.call(thisArg, x)));
- } catch(e) {
- next.become(new Rejected(e));
- }
- }
-
- /**
- * Same as above, but includes the extra argument parameter.
- */
- function tryCatchReject3(f, x, y, thisArg, next) {
- try {
- f.call(thisArg, x, y, next);
- } catch(e) {
- next.become(new Rejected(e));
- }
- }
-
- /**
- * @deprecated
- * Return f.call(thisArg, x), or if it throws, *return* the exception
- */
- function tryCatchReturn(f, x, thisArg, next) {
- try {
- next.notify(f.call(thisArg, x));
- } catch(e) {
- next.notify(e);
- }
- }
-
- function inherit(Parent, Child) {
- Child.prototype = objectCreate(Parent.prototype);
- Child.prototype.constructor = Child;
- }
-
- function snd(x, y) {
- return y;
- }
-
- function noop() {}
-
- function hasCustomEvent() {
- if(typeof CustomEvent === 'function') {
- try {
- var ev = new CustomEvent('unhandledRejection');
- return ev instanceof CustomEvent;
- } catch (ignoredException) {}
- }
- return false;
- }
-
- function hasInternetExplorerCustomEvent() {
- if(typeof document !== 'undefined' && typeof document.createEvent === 'function') {
- try {
- // Try to create one event to make sure it's supported
- var ev = document.createEvent('CustomEvent');
- ev.initCustomEvent('eventType', false, true, {});
- return true;
- } catch (ignoredException) {}
- }
- return false;
- }
-
- function initEmitRejection() {
- /*global process, self, CustomEvent*/
- if(typeof process !== 'undefined' && process !== null
- && typeof process.emit === 'function') {
- // Returning falsy here means to call the default
- // onPotentiallyUnhandledRejection API. This is safe even in
- // browserify since process.emit always returns falsy in browserify:
- // https://github.com/defunctzombie/node-process/blob/master/browser.js#L40-L46
- return function(type, rejection) {
- return type === 'unhandledRejection'
- ? process.emit(type, rejection.value, rejection)
- : process.emit(type, rejection);
- };
- } else if(typeof self !== 'undefined' && hasCustomEvent()) {
- return (function (self, CustomEvent) {
- return function (type, rejection) {
- var ev = new CustomEvent(type, {
- detail: {
- reason: rejection.value,
- key: rejection
- },
- bubbles: false,
- cancelable: true
- });
-
- return !self.dispatchEvent(ev);
- };
- }(self, CustomEvent));
- } else if(typeof self !== 'undefined' && hasInternetExplorerCustomEvent()) {
- return (function(self, document) {
- return function(type, rejection) {
- var ev = document.createEvent('CustomEvent');
- ev.initCustomEvent(type, false, true, {
- reason: rejection.value,
- key: rejection
- });
-
- return !self.dispatchEvent(ev);
- };
- }(self, document));
- }
-
- return noop;
- }
-
- return Promise;
- };
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],26:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return {
- pending: toPendingState,
- fulfilled: toFulfilledState,
- rejected: toRejectedState,
- inspect: inspect
- };
-
- function toPendingState() {
- return { state: 'pending' };
- }
-
- function toRejectedState(e) {
- return { state: 'rejected', reason: e };
- }
-
- function toFulfilledState(x) {
- return { state: 'fulfilled', value: x };
- }
-
- function inspect(handler) {
- var state = handler.state();
- return state === 0 ? toPendingState()
- : state > 0 ? toFulfilledState(handler.value)
- : toRejectedState(handler.value);
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],27:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var PromiseMonitor = require('./monitor/PromiseMonitor');
- var ConsoleReporter = require('./monitor/ConsoleReporter');
-
- var promiseMonitor = new PromiseMonitor(new ConsoleReporter());
-
- return function(Promise) {
- return promiseMonitor.monitor(Promise);
- };
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{"./monitor/ConsoleReporter":28,"./monitor/PromiseMonitor":29}],28:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var error = require('./error');
- var unhandledRejectionsMsg = '[promises] Unhandled rejections: ';
- var allHandledMsg = '[promises] All previously unhandled rejections have now been handled';
-
- function ConsoleReporter() {
- this._previouslyReported = false;
- }
-
- ConsoleReporter.prototype = initDefaultLogging();
-
- ConsoleReporter.prototype.log = function(traces) {
- if(traces.length === 0) {
- if(this._previouslyReported) {
- this._previouslyReported = false;
- this.msg(allHandledMsg);
- }
- return;
- }
-
- this._previouslyReported = true;
- this.groupStart(unhandledRejectionsMsg + traces.length);
- try {
- this._log(traces);
- } finally {
- this.groupEnd();
- }
- };
-
- ConsoleReporter.prototype._log = function(traces) {
- for(var i=0; i<traces.length; ++i) {
- this.warn(error.format(traces[i]));
- }
- };
-
- function initDefaultLogging() {
- /*jshint maxcomplexity:7*/
- var log, warn, groupStart, groupEnd;
-
- if(typeof console === 'undefined') {
- log = warn = consoleNotAvailable;
- } else {
- // Alias console to prevent things like uglify's drop_console option from
- // removing console.log/error. Unhandled rejections fall into the same
- // category as uncaught exceptions, and build tools shouldn't silence them.
- var localConsole = console;
- if(typeof localConsole.error === 'function'
- && typeof localConsole.dir === 'function') {
- warn = function(s) {
- localConsole.error(s);
- };
-
- log = function(s) {
- localConsole.log(s);
- };
-
- if(typeof localConsole.groupCollapsed === 'function') {
- groupStart = function(s) {
- localConsole.groupCollapsed(s);
- };
- groupEnd = function() {
- localConsole.groupEnd();
- };
- }
- } else {
- // IE8 has console.log and JSON, so we can make a
- // reasonably useful warn() from those.
- // Credit to webpro (https://github.com/webpro) for this idea
- // typeof localConsole.log will return 'object' in IE8, so can't test it with === 'function'
- // Since this is more of a corner case for IE8, I'm ok to check it with !== 'undefined' to reduce complexity
- if (typeof localConsole.log !== 'undefined' && typeof JSON !== 'undefined') {
- log = warn = function(x) {
- if (typeof x !== 'string') {
- try {
- x = JSON.stringify(x);
- } catch (e) {
- }
- }
- localConsole.log(x);
- };
- } else {
- log = warn = consoleNotAvailable;
- }
- }
- }
-
- return {
- msg: log,
- warn: warn,
- groupStart: groupStart || warn,
- groupEnd: groupEnd || consoleNotAvailable
- };
- }
-
- function consoleNotAvailable() {}
-
- return ConsoleReporter;
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{"./error":31}],29:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var defaultStackJumpSeparator = 'from execution context:';
- var defaultStackFilter = /[\s\(\/\\](node|module|timers)\.js:|when([\/\\]{1,2}(lib|monitor|es6-shim)[\/\\]{1,2}|\.js)|(new\sPromise)\b|(\b(PromiseMonitor|ConsoleReporter|Scheduler|RunHandlerTask|ProgressTask|Promise|.*Handler)\.[\w_]\w\w+\b)|\b(tryCatch\w+|getHandler\w*)\b/i;
-
- var setTimer = require('../lib/env').setTimer;
- var error = require('./error');
-
- var executionContext = [];
-
- function PromiseMonitor(reporter) {
- this.logDelay = 0;
- this.stackFilter = defaultStackFilter;
- this.stackJumpSeparator = defaultStackJumpSeparator;
- this.filterDuplicateFrames = true;
-
- this._reporter = reporter;
- if(typeof reporter.configurePromiseMonitor === 'function') {
- reporter.configurePromiseMonitor(this);
- }
-
- this._traces = [];
- this._traceTask = 0;
-
- var self = this;
- this._doLogTraces = function() {
- self._logTraces();
- };
- }
-
- PromiseMonitor.prototype.monitor = function(Promise) {
- var self = this;
- Promise.createContext = function(p, context) {
- p.context = self.createContext(p, context);
- };
-
- Promise.enterContext = function(p) {
- executionContext.push(p.context);
- };
-
- Promise.exitContext = function() {
- executionContext.pop();
- };
-
- Promise.onPotentiallyUnhandledRejection = function(rejection, extraContext) {
- return self.addTrace(rejection, extraContext);
- };
-
- Promise.onPotentiallyUnhandledRejectionHandled = function(rejection) {
- return self.removeTrace(rejection);
- };
-
- Promise.onFatalRejection = function(rejection, extraContext) {
- return self.fatal(rejection, extraContext);
- };
-
- return this;
- };
-
- PromiseMonitor.prototype.createContext = function(at, parentContext) {
- var context = {
- parent: parentContext || executionContext[executionContext.length - 1],
- stack: void 0
- };
- error.captureStack(context, at.constructor);
- return context;
- };
-
- PromiseMonitor.prototype.addTrace = function(handler, extraContext) {
- var t, i;
-
- for(i = this._traces.length-1; i >= 0; --i) {
- t = this._traces[i];
- if(t.handler === handler) {
- break;
- }
- }
-
- if(i >= 0) {
- t.extraContext = extraContext;
- } else {
- this._traces.push({
- handler: handler,
- extraContext: extraContext
- });
- }
-
- this.logTraces();
- };
-
- PromiseMonitor.prototype.removeTrace = function(/*handler*/) {
- this.logTraces();
- };
-
- PromiseMonitor.prototype.fatal = function(handler, extraContext) {
- var err = new Error();
- err.stack = this._createLongTrace(handler.value, handler.context, extraContext).join('\n');
- setTimer(function() {
- throw err;
- }, 0);
- };
-
- PromiseMonitor.prototype.logTraces = function() {
- if(!this._traceTask) {
- this._traceTask = setTimer(this._doLogTraces, this.logDelay);
- }
- };
-
- PromiseMonitor.prototype._logTraces = function() {
- this._traceTask = void 0;
- this._traces = this._traces.filter(filterHandled);
- this._reporter.log(this.formatTraces(this._traces));
- };
-
-
- PromiseMonitor.prototype.formatTraces = function(traces) {
- return traces.map(function(t) {
- return this._createLongTrace(t.handler.value, t.handler.context, t.extraContext);
- }, this);
- };
-
- PromiseMonitor.prototype._createLongTrace = function(e, context, extraContext) {
- var trace = error.parse(e) || [String(e) + ' (WARNING: non-Error used)'];
- trace = filterFrames(this.stackFilter, trace, 0);
- this._appendContext(trace, context);
- this._appendContext(trace, extraContext);
- return this.filterDuplicateFrames ? this._removeDuplicates(trace) : trace;
- };
-
- PromiseMonitor.prototype._removeDuplicates = function(trace) {
- var seen = {};
- var sep = this.stackJumpSeparator;
- var count = 0;
- return trace.reduceRight(function(deduped, line, i) {
- if(i === 0) {
- deduped.unshift(line);
- } else if(line === sep) {
- if(count > 0) {
- deduped.unshift(line);
- count = 0;
- }
- } else if(!seen[line]) {
- seen[line] = true;
- deduped.unshift(line);
- ++count;
- }
- return deduped;
- }, []);
- };
-
- PromiseMonitor.prototype._appendContext = function(trace, context) {
- trace.push.apply(trace, this._createTrace(context));
- };
-
- PromiseMonitor.prototype._createTrace = function(traceChain) {
- var trace = [];
- var stack;
-
- while(traceChain) {
- stack = error.parse(traceChain);
-
- if (stack) {
- stack = filterFrames(this.stackFilter, stack);
- appendStack(trace, stack, this.stackJumpSeparator);
- }
-
- traceChain = traceChain.parent;
- }
-
- return trace;
- };
-
- function appendStack(trace, stack, separator) {
- if (stack.length > 1) {
- stack[0] = separator;
- trace.push.apply(trace, stack);
- }
- }
-
- function filterFrames(stackFilter, stack) {
- return stack.filter(function(frame) {
- return !stackFilter.test(frame);
- });
- }
-
- function filterHandled(t) {
- return !t.handler.handled;
- }
-
- return PromiseMonitor;
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{"../lib/env":22,"./error":31}],30:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var monitor = require('../monitor');
- var Promise = require('../when').Promise;
-
- return monitor(Promise);
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{"../monitor":27,"../when":38}],31:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- var parse, captureStack, format;
-
- if(Error.captureStackTrace) {
- // Use Error.captureStackTrace if available
- parse = function(e) {
- return e && e.stack && e.stack.split('\n');
- };
-
- format = formatAsString;
- captureStack = Error.captureStackTrace;
-
- } else {
- // Otherwise, do minimal feature detection to determine
- // how to capture and format reasonable stacks.
- parse = function(e) {
- var stack = e && e.stack && e.stack.split('\n');
- if(stack && e.message) {
- stack.unshift(e.message);
- }
- return stack;
- };
-
- (function() {
- var e = new Error();
- if(typeof e.stack !== 'string') {
- format = formatAsString;
- captureStack = captureSpiderMonkeyStack;
- } else {
- format = formatAsErrorWithStack;
- captureStack = useStackDirectly;
- }
- }());
- }
-
- function captureSpiderMonkeyStack(host) {
- try {
- throw new Error();
- } catch(err) {
- host.stack = err.stack;
- }
- }
-
- function useStackDirectly(host) {
- host.stack = new Error().stack;
- }
-
- function formatAsString(longTrace) {
- return join(longTrace);
- }
-
- function formatAsErrorWithStack(longTrace) {
- var e = new Error();
- e.stack = formatAsString(longTrace);
- return e;
- }
-
- // About 5-10x faster than String.prototype.join o_O
- function join(a) {
- var sep = false;
- var s = '';
- for(var i=0; i< a.length; ++i) {
- if(sep) {
- s += '\n' + a[i];
- } else {
- s+= a[i];
- sep = true;
- }
- }
- return s;
- }
-
- return {
- parse: parse,
- format: format,
- captureStack: captureStack
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],32:[function(require,module,exports){
-/** @license MIT License (c) copyright 2013 original author or authors */
-
-/**
- * Collection of helpers for interfacing with node-style asynchronous functions
- * using promises.
- *
- * @author Brian Cavalier
- * @contributor Renato Zannon
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var _liftAll = require('./lib/liftAll');
- var setTimer = require('./lib/env').setTimer;
- var slice = Array.prototype.slice;
-
- var _apply = require('./lib/apply')(when.Promise, dispatch);
-
- return {
- lift: lift,
- liftAll: liftAll,
- apply: apply,
- call: call,
- createCallback: createCallback,
- bindCallback: bindCallback,
- liftCallback: liftCallback
- };
-
- /**
- * Takes a node-style async function and calls it immediately (with an optional
- * array of arguments or promises for arguments). It returns a promise whose
- * resolution depends on whether the async functions calls its callback with the
- * conventional error argument or not.
- *
- * With this it becomes possible to leverage existing APIs while still reaping
- * the benefits of promises.
- *
- * @example
- * function onlySmallNumbers(n, callback) {
- * if(n < 10) {
- * callback(null, n + 10);
- * } else {
- * callback(new Error("Calculation failed"));
- * }
- * }
- *
- * var nodefn = require("when/node/function");
- *
- * // Logs '15'
- * nodefn.apply(onlySmallNumbers, [5]).then(console.log, console.error);
- *
- * // Logs 'Calculation failed'
- * nodefn.apply(onlySmallNumbers, [15]).then(console.log, console.error);
- *
- * @param {function} f node-style function that will be called
- * @param {Array} [args] array of arguments to func
- * @returns {Promise} promise for the value func passes to its callback
- */
- function apply(f, args) {
- return _apply(f, this, args || []);
- }
-
- function dispatch(f, thisArg, args, h) {
- var cb = createCallback(h);
- try {
- switch(args.length) {
- case 2: f.call(thisArg, args[0], args[1], cb); break;
- case 1: f.call(thisArg, args[0], cb); break;
- case 0: f.call(thisArg, cb); break;
- default:
- args.push(cb);
- f.apply(thisArg, args);
- }
- } catch(e) {
- h.reject(e);
- }
- }
-
- /**
- * Has the same behavior that {@link apply} has, with the difference that the
- * arguments to the function are provided individually, while {@link apply} accepts
- * a single array.
- *
- * @example
- * function sumSmallNumbers(x, y, callback) {
- * var result = x + y;
- * if(result < 10) {
- * callback(null, result);
- * } else {
- * callback(new Error("Calculation failed"));
- * }
- * }
- *
- * // Logs '5'
- * nodefn.call(sumSmallNumbers, 2, 3).then(console.log, console.error);
- *
- * // Logs 'Calculation failed'
- * nodefn.call(sumSmallNumbers, 5, 10).then(console.log, console.error);
- *
- * @param {function} f node-style function that will be called
- * @param {...*} [args] arguments that will be forwarded to the function
- * @returns {Promise} promise for the value func passes to its callback
- */
- function call(f /*, args... */) {
- return _apply(f, this, slice.call(arguments, 1));
- }
-
- /**
- * Takes a node-style function and returns new function that wraps the
- * original and, instead of taking a callback, returns a promise. Also, it
- * knows how to handle promises given as arguments, waiting for their
- * resolution before executing.
- *
- * Upon execution, the orginal function is executed as well. If it passes
- * a truthy value as the first argument to the callback, it will be
- * interpreted as an error condition, and the promise will be rejected
- * with it. Otherwise, the call is considered a resolution, and the promise
- * is resolved with the callback's second argument.
- *
- * @example
- * var fs = require("fs"), nodefn = require("when/node/function");
- *
- * var promiseRead = nodefn.lift(fs.readFile);
- *
- * // The promise is resolved with the contents of the file if everything
- * // goes ok
- * promiseRead('exists.txt').then(console.log, console.error);
- *
- * // And will be rejected if something doesn't work out
- * // (e.g. the files does not exist)
- * promiseRead('doesnt_exist.txt').then(console.log, console.error);
- *
- *
- * @param {Function} f node-style function to be lifted
- * @param {...*} [args] arguments to be prepended for the new function @deprecated
- * @returns {Function} a promise-returning function
- */
- function lift(f /*, args... */) {
- var args1 = arguments.length > 1 ? slice.call(arguments, 1) : [];
- return function() {
- // TODO: Simplify once partialing has been removed
- var l = args1.length;
- var al = arguments.length;
- var args = new Array(al + l);
- var i;
- for(i=0; i<l; ++i) {
- args[i] = args1[i];
- }
- for(i=0; i<al; ++i) {
- args[i+l] = arguments[i];
- }
- return _apply(f, this, args);
- };
- }
-
- /**
- * Lift all the functions/methods on src
- * @param {object|function} src source whose functions will be lifted
- * @param {function?} combine optional function for customizing the lifting
- * process. It is passed dst, the lifted function, and the property name of
- * the original function on src.
- * @param {(object|function)?} dst option destination host onto which to place lifted
- * functions. If not provided, liftAll returns a new object.
- * @returns {*} If dst is provided, returns dst with lifted functions as
- * properties. If dst not provided, returns a new object with lifted functions.
- */
- function liftAll(src, combine, dst) {
- return _liftAll(lift, combine, dst, src);
- }
-
- /**
- * Takes an object that responds to the resolver interface, and returns
- * a function that will resolve or reject it depending on how it is called.
- *
- * @example
- * function callbackTakingFunction(callback) {
- * if(somethingWrongHappened) {
- * callback(error);
- * } else {
- * callback(null, interestingValue);
- * }
- * }
- *
- * var when = require('when'), nodefn = require('when/node/function');
- *
- * var deferred = when.defer();
- * callbackTakingFunction(nodefn.createCallback(deferred.resolver));
- *
- * deferred.promise.then(function(interestingValue) {
- * // Use interestingValue
- * });
- *
- * @param {Resolver} resolver that will be 'attached' to the callback
- * @returns {Function} a node-style callback function
- */
- function createCallback(resolver) {
- return function(err, value) {
- if(err) {
- resolver.reject(err);
- } else if(arguments.length > 2) {
- resolver.resolve(slice.call(arguments, 1));
- } else {
- resolver.resolve(value);
- }
- };
- }
-
- /**
- * Attaches a node-style callback to a promise, ensuring the callback is
- * called for either fulfillment or rejection. Returns a promise with the same
- * state as the passed-in promise.
- *
- * @example
- * var deferred = when.defer();
- *
- * function callback(err, value) {
- * // Handle err or use value
- * }
- *
- * bindCallback(deferred.promise, callback);
- *
- * deferred.resolve('interesting value');
- *
- * @param {Promise} promise The promise to be attached to.
- * @param {Function} callback The node-style callback to attach.
- * @returns {Promise} A promise with the same state as the passed-in promise.
- */
- function bindCallback(promise, callback) {
- promise = when(promise);
-
- if (callback) {
- promise.then(success, wrapped);
- }
-
- return promise;
-
- function success(value) {
- wrapped(null, value);
- }
-
- function wrapped(err, value) {
- setTimer(function () {
- callback(err, value);
- }, 0);
- }
- }
-
- /**
- * Takes a node-style callback and returns new function that accepts a
- * promise, calling the original callback when the promise is either
- * fulfilled or rejected with the appropriate arguments.
- *
- * @example
- * var deferred = when.defer();
- *
- * function callback(err, value) {
- * // Handle err or use value
- * }
- *
- * var wrapped = liftCallback(callback);
- *
- * // `wrapped` can now be passed around at will
- * wrapped(deferred.promise);
- *
- * deferred.resolve('interesting value');
- *
- * @param {Function} callback The node-style callback to wrap.
- * @returns {Function} The lifted, promise-accepting function.
- */
- function liftCallback(callback) {
- return function(promise) {
- return bindCallback(promise, callback);
- };
- }
-});
-
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
-
-
-},{"./lib/apply":12,"./lib/env":22,"./lib/liftAll":24,"./when":38}],33:[function(require,module,exports){
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * parallel.js
- *
- * Run a set of task functions in parallel. All tasks will
- * receive the same args
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var all = when.Promise.all;
- var slice = Array.prototype.slice;
-
- /**
- * Run array of tasks in parallel
- * @param tasks {Array|Promise} array or promiseForArray of task functions
- * @param [args] {*} arguments to be passed to all tasks
- * @return {Promise} promise for array containing the
- * result of each task in the array position corresponding
- * to position of the task in the tasks array
- */
- return function parallel(tasks /*, args... */) {
- return all(slice.call(arguments, 1)).then(function(args) {
- return when.map(tasks, function(task) {
- return task.apply(void 0, args);
- });
- });
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
-
-},{"./when":38}],34:[function(require,module,exports){
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * pipeline.js
- *
- * Run a set of task functions in sequence, passing the result
- * of the previous as an argument to the next. Like a shell
- * pipeline, e.g. `cat file.txt | grep 'foo' | sed -e 's/foo/bar/g'
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var all = when.Promise.all;
- var slice = Array.prototype.slice;
-
- /**
- * Run array of tasks in a pipeline where the next
- * tasks receives the result of the previous. The first task
- * will receive the initialArgs as its argument list.
- * @param tasks {Array|Promise} array or promise for array of task functions
- * @param [initialArgs...] {*} arguments to be passed to the first task
- * @return {Promise} promise for return value of the final task
- */
- return function pipeline(tasks /* initialArgs... */) {
- // Self-optimizing function to run first task with multiple
- // args using apply, but subsequence tasks via direct invocation
- var runTask = function(args, task) {
- runTask = function(arg, task) {
- return task(arg);
- };
-
- return task.apply(null, args);
- };
-
- return all(slice.call(arguments, 1)).then(function(args) {
- return when.reduce(tasks, function(arg, task) {
- return runTask(arg, task);
- }, args);
- });
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
-
-},{"./when":38}],35:[function(require,module,exports){
-/** @license MIT License (c) copyright 2012-2013 original author or authors */
-
-/**
- * poll.js
- *
- * Helper that polls until cancelled or for a condition to become true.
- *
- * @author Scott Andrews
- */
-
-(function (define) { 'use strict';
-define(function(require) {
-
- var when = require('./when');
- var attempt = when['try'];
- var cancelable = require('./cancelable');
-
- /**
- * Periodically execute the task function on the msec delay. The result of
- * the task may be verified by watching for a condition to become true. The
- * returned deferred is cancellable if the polling needs to be cancelled
- * externally before reaching a resolved state.
- *
- * The next vote is scheduled after the results of the current vote are
- * verified and rejected.
- *
- * Polling may be terminated by the verifier returning a truthy value,
- * invoking cancel() on the returned promise, or the task function returning
- * a rejected promise.
- *
- * Usage:
- *
- * var count = 0;
- * function doSomething() { return count++ }
- *
- * // poll until cancelled
- * var p = poll(doSomething, 1000);
- * ...
- * p.cancel();
- *
- * // poll until condition is met
- * poll(doSomething, 1000, function(result) { return result > 10 })
- * .then(function(result) { assert result == 10 });
- *
- * // delay first vote
- * poll(doSomething, 1000, anyFunc, true);
- *
- * @param task {Function} function that is executed after every timeout
- * @param interval {number|Function} timeout in milliseconds
- * @param [verifier] {Function} function to evaluate the result of the vote.
- * May return a {Promise} or a {Boolean}. Rejecting the promise or a
- * falsey value will schedule the next vote.
- * @param [delayInitialTask] {boolean} if truthy, the first vote is scheduled
- * instead of immediate
- *
- * @returns {Promise}
- */
- return function poll(task, interval, verifier, delayInitialTask) {
- var deferred, canceled, reject;
-
- canceled = false;
- deferred = cancelable(when.defer(), function () { canceled = true; });
- reject = deferred.reject;
-
- verifier = verifier || function () { return false; };
-
- if (typeof interval !== 'function') {
- interval = (function (interval) {
- return function () { return when().delay(interval); };
- })(interval);
- }
-
- function certify(result) {
- deferred.resolve(result);
- }
-
- function schedule(result) {
- attempt(interval).then(vote, reject);
- if (result !== void 0) {
- deferred.notify(result);
- }
- }
-
- function vote() {
- if (canceled) { return; }
- when(task(),
- function (result) {
- when(verifier(result),
- function (verification) {
- return verification ? certify(result) : schedule(result);
- },
- function () { schedule(result); }
- );
- },
- reject
- );
- }
-
- if (delayInitialTask) {
- schedule();
- } else {
- // if task() is blocking, vote will also block
- vote();
- }
-
- // make the promise cancelable
- deferred.promise = Object.create(deferred.promise);
- deferred.promise.cancel = deferred.cancel;
-
- return deferred.promise;
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-},{"./cancelable":4,"./when":38}],36:[function(require,module,exports){
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * sequence.js
- *
- * Run a set of task functions in sequence. All tasks will
- * receive the same args.
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var all = when.Promise.all;
- var slice = Array.prototype.slice;
-
- /**
- * Run array of tasks in sequence with no overlap
- * @param tasks {Array|Promise} array or promiseForArray of task functions
- * @param [args] {*} arguments to be passed to all tasks
- * @return {Promise} promise for an array containing
- * the result of each task in the array position corresponding
- * to position of the task in the tasks array
- */
- return function sequence(tasks /*, args... */) {
- var results = [];
-
- return all(slice.call(arguments, 1)).then(function(args) {
- return when.reduce(tasks, function(results, task) {
- return when(task.apply(void 0, args), addResult);
- }, results);
- });
-
- function addResult(result) {
- results.push(result);
- return results;
- }
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
-
-},{"./when":38}],37:[function(require,module,exports){
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * timeout.js
- *
- * Helper that returns a promise that rejects after a specified timeout,
- * if not explicitly resolved or rejected before that.
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
-
- /**
- * @deprecated Use when(trigger).timeout(ms)
- */
- return function timeout(msec, trigger) {
- return when(trigger).timeout(msec);
- };
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
-
-},{"./when":38}],38:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-
-/**
- * Promises/A+ and when() implementation
- * when is part of the cujoJS family of libraries (http://cujojs.com/)
- * @author Brian Cavalier
- * @author John Hann
- */
-(function(define) { 'use strict';
-define(function (require) {
-
- var timed = require('./lib/decorators/timed');
- var array = require('./lib/decorators/array');
- var flow = require('./lib/decorators/flow');
- var fold = require('./lib/decorators/fold');
- var inspect = require('./lib/decorators/inspect');
- var generate = require('./lib/decorators/iterate');
- var progress = require('./lib/decorators/progress');
- var withThis = require('./lib/decorators/with');
- var unhandledRejection = require('./lib/decorators/unhandledRejection');
- var TimeoutError = require('./lib/TimeoutError');
-
- var Promise = [array, flow, fold, generate, progress,
- inspect, withThis, timed, unhandledRejection]
- .reduce(function(Promise, feature) {
- return feature(Promise);
- }, require('./lib/Promise'));
-
- var apply = require('./lib/apply')(Promise);
-
- // Public API
-
- when.promise = promise; // Create a pending promise
- when.resolve = Promise.resolve; // Create a resolved promise
- when.reject = Promise.reject; // Create a rejected promise
-
- when.lift = lift; // lift a function to return promises
- when['try'] = attempt; // call a function and return a promise
- when.attempt = attempt; // alias for when.try
-
- when.iterate = Promise.iterate; // DEPRECATED (use cujojs/most streams) Generate a stream of promises
- when.unfold = Promise.unfold; // DEPRECATED (use cujojs/most streams) Generate a stream of promises
-
- when.join = join; // Join 2 or more promises
-
- when.all = all; // Resolve a list of promises
- when.settle = settle; // Settle a list of promises
-
- when.any = lift(Promise.any); // One-winner race
- when.some = lift(Promise.some); // Multi-winner race
- when.race = lift(Promise.race); // First-to-settle race
-
- when.map = map; // Array.map() for promises
- when.filter = filter; // Array.filter() for promises
- when.reduce = lift(Promise.reduce); // Array.reduce() for promises
- when.reduceRight = lift(Promise.reduceRight); // Array.reduceRight() for promises
-
- when.isPromiseLike = isPromiseLike; // Is something promise-like, aka thenable
-
- when.Promise = Promise; // Promise constructor
- when.defer = defer; // Create a {promise, resolve, reject} tuple
-
- // Error types
-
- when.TimeoutError = TimeoutError;
-
- /**
- * Get a trusted promise for x, or by transforming x with onFulfilled
- *
- * @param {*} x
- * @param {function?} onFulfilled callback to be called when x is
- * successfully fulfilled. If promiseOrValue is an immediate value, callback
- * will be invoked immediately.
- * @param {function?} onRejected callback to be called when x is
- * rejected.
- * @param {function?} onProgress callback to be called when progress updates
- * are issued for x. @deprecated
- * @returns {Promise} a new promise that will fulfill with the return
- * value of callback or errback or the completion value of promiseOrValue if
- * callback and/or errback is not supplied.
- */
- function when(x, onFulfilled, onRejected, onProgress) {
- var p = Promise.resolve(x);
- if (arguments.length < 2) {
- return p;
- }
-
- return p.then(onFulfilled, onRejected, onProgress);
- }
-
- /**
- * Creates a new promise whose fate is determined by resolver.
- * @param {function} resolver function(resolve, reject, notify)
- * @returns {Promise} promise whose fate is determine by resolver
- */
- function promise(resolver) {
- return new Promise(resolver);
- }
-
- /**
- * Lift the supplied function, creating a version of f that returns
- * promises, and accepts promises as arguments.
- * @param {function} f
- * @returns {Function} version of f that returns promises
- */
- function lift(f) {
- return function() {
- for(var i=0, l=arguments.length, a=new Array(l); i<l; ++i) {
- a[i] = arguments[i];
- }
- return apply(f, this, a);
- };
- }
-
- /**
- * Call f in a future turn, with the supplied args, and return a promise
- * for the result.
- * @param {function} f
- * @returns {Promise}
- */
- function attempt(f /*, args... */) {
- /*jshint validthis:true */
- for(var i=0, l=arguments.length-1, a=new Array(l); i<l; ++i) {
- a[i] = arguments[i+1];
- }
- return apply(f, this, a);
- }
-
- /**
- * Creates a {promise, resolver} pair, either or both of which
- * may be given out safely to consumers.
- * @return {{promise: Promise, resolve: function, reject: function, notify: function}}
- */
- function defer() {
- return new Deferred();
- }
-
- function Deferred() {
- var p = Promise._defer();
-
- function resolve(x) { p._handler.resolve(x); }
- function reject(x) { p._handler.reject(x); }
- function notify(x) { p._handler.notify(x); }
-
- this.promise = p;
- this.resolve = resolve;
- this.reject = reject;
- this.notify = notify;
- this.resolver = { resolve: resolve, reject: reject, notify: notify };
- }
-
- /**
- * Determines if x is promise-like, i.e. a thenable object
- * NOTE: Will return true for *any thenable object*, and isn't truly
- * safe, since it may attempt to access the `then` property of x (i.e.
- * clever/malicious getters may do weird things)
- * @param {*} x anything
- * @returns {boolean} true if x is promise-like
- */
- function isPromiseLike(x) {
- return x && typeof x.then === 'function';
- }
-
- /**
- * Return a promise that will resolve only once all the supplied arguments
- * have resolved. The resolution value of the returned promise will be an array
- * containing the resolution values of each of the arguments.
- * @param {...*} arguments may be a mix of promises and values
- * @returns {Promise}
- */
- function join(/* ...promises */) {
- return Promise.all(arguments);
- }
-
- /**
- * Return a promise that will fulfill once all input promises have
- * fulfilled, or reject when any one input promise rejects.
- * @param {array|Promise} promises array (or promise for an array) of promises
- * @returns {Promise}
- */
- function all(promises) {
- return when(promises, Promise.all);
- }
-
- /**
- * Return a promise that will always fulfill with an array containing
- * the outcome states of all input promises. The returned promise
- * will only reject if `promises` itself is a rejected promise.
- * @param {array|Promise} promises array (or promise for an array) of promises
- * @returns {Promise} promise for array of settled state descriptors
- */
- function settle(promises) {
- return when(promises, Promise.settle);
- }
-
- /**
- * Promise-aware array map function, similar to `Array.prototype.map()`,
- * but input array may contain promises or values.
- * @param {Array|Promise} promises array of anything, may contain promises and values
- * @param {function(x:*, index:Number):*} mapFunc map function which may
- * return a promise or value
- * @returns {Promise} promise that will fulfill with an array of mapped values
- * or reject if any input promise rejects.
- */
- function map(promises, mapFunc) {
- return when(promises, function(promises) {
- return Promise.map(promises, mapFunc);
- });
- }
-
- /**
- * Filter the provided array of promises using the provided predicate. Input may
- * contain promises and values
- * @param {Array|Promise} promises array of promises and values
- * @param {function(x:*, index:Number):boolean} predicate filtering predicate.
- * Must return truthy (or promise for truthy) for items to retain.
- * @returns {Promise} promise that will fulfill with an array containing all items
- * for which predicate returned truthy.
- */
- function filter(promises, predicate) {
- return when(promises, function(promises) {
- return Promise.filter(promises, predicate);
- });
- }
-
- return when;
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-},{"./lib/Promise":9,"./lib/TimeoutError":11,"./lib/apply":12,"./lib/decorators/array":13,"./lib/decorators/flow":14,"./lib/decorators/fold":15,"./lib/decorators/inspect":16,"./lib/decorators/iterate":17,"./lib/decorators/progress":18,"./lib/decorators/timed":19,"./lib/decorators/unhandledRejection":20,"./lib/decorators/with":21}]},{},[1])
-//# sourceMappingURL=when.debug.js.map
-(1)
-});
-; \ No newline at end of file
diff --git a/node_modules/when/dist/browser/when.debug.js.map b/node_modules/when/dist/browser/when.debug.js.map
deleted file mode 100644
index 8f46e36d0..000000000
--- a/node_modules/when/dist/browser/when.debug.js.map
+++ /dev/null
@@ -1,87 +0,0 @@
-{
- "version": 3,
- "file": "generated.js",
- "sources": [
- "build/when.browserify-debug.js",
- "build/when.browserify.js",
- "callbacks.js",
- "cancelable.js",
- "delay.js",
- "function.js",
- "guard.js",
- "keys.js",
- "lib/Promise.js",
- "lib/Scheduler.js",
- "lib/TimeoutError.js",
- "lib/apply.js",
- "lib/decorators/array.js",
- "lib/decorators/flow.js",
- "lib/decorators/fold.js",
- "lib/decorators/inspect.js",
- "lib/decorators/iterate.js",
- "lib/decorators/progress.js",
- "lib/decorators/timed.js",
- "lib/decorators/unhandledRejection.js",
- "lib/decorators/with.js",
- "lib/env.js",
- "lib/format.js",
- "lib/liftAll.js",
- "lib/makePromise.js",
- "lib/state.js",
- "monitor.js",
- "monitor/ConsoleReporter.js",
- "monitor/PromiseMonitor.js",
- "monitor/console.js",
- "monitor/error.js",
- "node.js",
- "parallel.js",
- "pipeline.js",
- "poll.js",
- "sequence.js",
- "timeout.js",
- "when.js"
- ],
- "names": [],
- "mappings": ";AAAA;AACA;AACA;AACA;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC37BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",
- "sourcesContent": [
- "require('../monitor/console');\nmodule.exports = require('./when.browserify.js');\n\n",
- "var when = module.exports = require('../when');\n\nwhen.callbacks = require('../callbacks');\nwhen.cancelable = require('../cancelable');\nwhen.delay = require('../delay');\nwhen.fn = require('../function');\nwhen.guard = require('../guard');\nwhen.keys = require('../keys');\nwhen.nodefn = when.node = require('../node');\nwhen.parallel = require('../parallel');\nwhen.pipeline = require('../pipeline');\nwhen.poll = require('../poll');\nwhen.sequence = require('../sequence');\nwhen.timeout = require('../timeout');\n",
- "/** @license MIT License (c) copyright 2013-2014 original author or authors */\n\n/**\n * Collection of helper functions for interacting with 'traditional',\n * callback-taking functions using a promise interface.\n *\n * @author Renato Zannon\n * @contributor Brian Cavalier\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar Promise = when.Promise;\n\tvar _liftAll = require('./lib/liftAll');\n\tvar slice = Array.prototype.slice;\n\n\tvar makeApply = require('./lib/apply');\n\tvar _apply = makeApply(Promise, dispatch);\n\n\treturn {\n\t\tlift: lift,\n\t\tliftAll: liftAll,\n\t\tapply: apply,\n\t\tcall: call,\n\t\tpromisify: promisify\n\t};\n\n\t/**\n\t * Takes a `traditional` callback-taking function and returns a promise for its\n\t * result, accepting an optional array of arguments (that might be values or\n\t * promises). It assumes that the function takes its callback and errback as\n\t * the last two arguments. The resolution of the promise depends on whether the\n\t * function will call its callback or its errback.\n\t *\n\t * @example\n\t * var domIsLoaded = callbacks.apply($);\n\t * domIsLoaded.then(function() {\n\t *\t\tdoMyDomStuff();\n\t *\t});\n\t *\n\t * @example\n\t * function existingAjaxyFunction(url, callback, errback) {\n\t *\t\t// Complex logic you'd rather not change\n\t *\t}\n\t *\n\t * var promise = callbacks.apply(existingAjaxyFunction, [\"/movies.json\"]);\n\t *\n\t * promise.then(function(movies) {\n\t *\t\t// Work with movies\n\t *\t}, function(reason) {\n\t *\t\t// Handle error\n\t *\t});\n\t *\n\t * @param {function} asyncFunction function to be called\n\t * @param {Array} [extraAsyncArgs] array of arguments to asyncFunction\n\t * @returns {Promise} promise for the callback value of asyncFunction\n\t */\n\tfunction apply(asyncFunction, extraAsyncArgs) {\n\t\treturn _apply(asyncFunction, this, extraAsyncArgs || []);\n\t}\n\n\t/**\n\t * Apply helper that allows specifying thisArg\n\t * @private\n\t */\n\tfunction dispatch(f, thisArg, args, h) {\n\t\targs.push(alwaysUnary(h.resolve, h), alwaysUnary(h.reject, h));\n\t\ttryCatchResolve(f, thisArg, args, h);\n\t}\n\n\tfunction tryCatchResolve(f, thisArg, args, resolver) {\n\t\ttry {\n\t\t\tf.apply(thisArg, args);\n\t\t} catch(e) {\n\t\t\tresolver.reject(e);\n\t\t}\n\t}\n\n\t/**\n\t * Works as `callbacks.apply` does, with the difference that the arguments to\n\t * the function are passed individually, instead of as an array.\n\t *\n\t * @example\n\t * function sumInFiveSeconds(a, b, callback) {\n\t *\t\tsetTimeout(function() {\n\t *\t\t\tcallback(a + b);\n\t *\t\t}, 5000);\n\t *\t}\n\t *\n\t * var sumPromise = callbacks.call(sumInFiveSeconds, 5, 10);\n\t *\n\t * // Logs '15' 5 seconds later\n\t * sumPromise.then(console.log);\n\t *\n\t * @param {function} asyncFunction function to be called\n\t * @param {...*} args arguments that will be forwarded to the function\n\t * @returns {Promise} promise for the callback value of asyncFunction\n\t */\n\tfunction call(asyncFunction/*, arg1, arg2...*/) {\n\t\treturn _apply(asyncFunction, this, slice.call(arguments, 1));\n\t}\n\n\t/**\n\t * Takes a 'traditional' callback/errback-taking function and returns a function\n\t * that returns a promise instead. The resolution/rejection of the promise\n\t * depends on whether the original function will call its callback or its\n\t * errback.\n\t *\n\t * If additional arguments are passed to the `lift` call, they will be prepended\n\t * on the calls to the original function, much like `Function.prototype.bind`.\n\t *\n\t * The resulting function is also \"promise-aware\", in the sense that, if given\n\t * promises as arguments, it will wait for their resolution before executing.\n\t *\n\t * @example\n\t * function traditionalAjax(method, url, callback, errback) {\n\t *\t\tvar xhr = new XMLHttpRequest();\n\t *\t\txhr.open(method, url);\n\t *\n\t *\t\txhr.onload = callback;\n\t *\t\txhr.onerror = errback;\n\t *\n\t *\t\txhr.send();\n\t *\t}\n\t *\n\t * var promiseAjax = callbacks.lift(traditionalAjax);\n\t * promiseAjax(\"GET\", \"/movies.json\").then(console.log, console.error);\n\t *\n\t * var promiseAjaxGet = callbacks.lift(traditionalAjax, \"GET\");\n\t * promiseAjaxGet(\"/movies.json\").then(console.log, console.error);\n\t *\n\t * @param {Function} f traditional async function to be decorated\n\t * @param {...*} [args] arguments to be prepended for the new function @deprecated\n\t * @returns {Function} a promise-returning function\n\t */\n\tfunction lift(f/*, args...*/) {\n\t\tvar args = arguments.length > 1 ? slice.call(arguments, 1) : [];\n\t\treturn function() {\n\t\t\treturn _apply(f, this, args.concat(slice.call(arguments)));\n\t\t};\n\t}\n\n\t/**\n\t * Lift all the functions/methods on src\n\t * @param {object|function} src source whose functions will be lifted\n\t * @param {function?} combine optional function for customizing the lifting\n\t * process. It is passed dst, the lifted function, and the property name of\n\t * the original function on src.\n\t * @param {(object|function)?} dst option destination host onto which to place lifted\n\t * functions. If not provided, liftAll returns a new object.\n\t * @returns {*} If dst is provided, returns dst with lifted functions as\n\t * properties. If dst not provided, returns a new object with lifted functions.\n\t */\n\tfunction liftAll(src, combine, dst) {\n\t\treturn _liftAll(lift, combine, dst, src);\n\t}\n\n\t/**\n\t * `promisify` is a version of `lift` that allows fine-grained control over the\n\t * arguments that passed to the underlying function. It is intended to handle\n\t * functions that don't follow the common callback and errback positions.\n\t *\n\t * The control is done by passing an object whose 'callback' and/or 'errback'\n\t * keys, whose values are the corresponding 0-based indexes of the arguments on\n\t * the function. Negative values are interpreted as being relative to the end\n\t * of the arguments array.\n\t *\n\t * If arguments are given on the call to the 'promisified' function, they are\n\t * intermingled with the callback and errback. If a promise is given among them,\n\t * the execution of the function will only occur after its resolution.\n\t *\n\t * @example\n\t * var delay = callbacks.promisify(setTimeout, {\n\t *\t\tcallback: 0\n\t *\t});\n\t *\n\t * delay(100).then(function() {\n\t *\t\tconsole.log(\"This happens 100ms afterwards\");\n\t *\t});\n\t *\n\t * @example\n\t * function callbackAsLast(errback, followsStandards, callback) {\n\t *\t\tif(followsStandards) {\n\t *\t\t\tcallback(\"well done!\");\n\t *\t\t} else {\n\t *\t\t\terrback(\"some programmers just want to watch the world burn\");\n\t *\t\t}\n\t *\t}\n\t *\n\t * var promisified = callbacks.promisify(callbackAsLast, {\n\t *\t\tcallback: -1,\n\t *\t\terrback: 0,\n\t *\t});\n\t *\n\t * promisified(true).then(console.log, console.error);\n\t * promisified(false).then(console.log, console.error);\n\t *\n\t * @param {Function} asyncFunction traditional function to be decorated\n\t * @param {object} positions\n\t * @param {number} [positions.callback] index at which asyncFunction expects to\n\t * receive a success callback\n\t * @param {number} [positions.errback] index at which asyncFunction expects to\n\t * receive an error callback\n\t * @returns {function} promisified function that accepts\n\t *\n\t * @deprecated\n\t */\n\tfunction promisify(asyncFunction, positions) {\n\n\t\treturn function() {\n\t\t\tvar thisArg = this;\n\t\t\treturn Promise.all(arguments).then(function(args) {\n\t\t\t\tvar p = Promise._defer();\n\n\t\t\t\tvar callbackPos, errbackPos;\n\n\t\t\t\tif(typeof positions.callback === 'number') {\n\t\t\t\t\tcallbackPos = normalizePosition(args, positions.callback);\n\t\t\t\t}\n\n\t\t\t\tif(typeof positions.errback === 'number') {\n\t\t\t\t\terrbackPos = normalizePosition(args, positions.errback);\n\t\t\t\t}\n\n\t\t\t\tif(errbackPos < callbackPos) {\n\t\t\t\t\tinsertCallback(args, errbackPos, p._handler.reject, p._handler);\n\t\t\t\t\tinsertCallback(args, callbackPos, p._handler.resolve, p._handler);\n\t\t\t\t} else {\n\t\t\t\t\tinsertCallback(args, callbackPos, p._handler.resolve, p._handler);\n\t\t\t\t\tinsertCallback(args, errbackPos, p._handler.reject, p._handler);\n\t\t\t\t}\n\n\t\t\t\tasyncFunction.apply(thisArg, args);\n\n\t\t\t\treturn p;\n\t\t\t});\n\t\t};\n\t}\n\n\tfunction normalizePosition(args, pos) {\n\t\treturn pos < 0 ? (args.length + pos + 2) : pos;\n\t}\n\n\tfunction insertCallback(args, pos, callback, thisArg) {\n\t\tif(typeof pos === 'number') {\n\t\t\targs.splice(pos, 0, alwaysUnary(callback, thisArg));\n\t\t}\n\t}\n\n\tfunction alwaysUnary(fn, thisArg) {\n\t\treturn function() {\n\t\t\tif (arguments.length > 1) {\n\t\t\t\tfn.call(thisArg, slice.call(arguments));\n\t\t\t} else {\n\t\t\t\tfn.apply(thisArg, arguments);\n\t\t\t}\n\t\t};\n\t}\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n",
- "/** @license MIT License (c) copyright B Cavalier & J Hann */\n\n/**\n * cancelable.js\n * @deprecated\n *\n * Decorator that makes a deferred \"cancelable\". It adds a cancel() method that\n * will call a special cancel handler function and then reject the deferred. The\n * cancel handler can be used to do resource cleanup, or anything else that should\n * be done before any other rejection handlers are executed.\n *\n * Usage:\n *\n * var cancelableDeferred = cancelable(when.defer(), myCancelHandler);\n *\n * @author brian@hovercraftstudios.com\n */\n\n(function(define) {\ndefine(function() {\n\n /**\n * Makes deferred cancelable, adding a cancel() method.\n\t * @deprecated\n *\n * @param deferred {Deferred} the {@link Deferred} to make cancelable\n * @param canceler {Function} cancel handler function to execute when this deferred\n\t * is canceled. This is guaranteed to run before all other rejection handlers.\n\t * The canceler will NOT be executed if the deferred is rejected in the standard\n\t * way, i.e. deferred.reject(). It ONLY executes if the deferred is canceled,\n\t * i.e. deferred.cancel()\n *\n * @returns deferred, with an added cancel() method.\n */\n return function(deferred, canceler) {\n // Add a cancel method to the deferred to reject the delegate\n // with the special canceled indicator.\n deferred.cancel = function() {\n\t\t\ttry {\n\t\t\t\tdeferred.reject(canceler(deferred));\n\t\t\t} catch(e) {\n\t\t\t\tdeferred.reject(e);\n\t\t\t}\n\n\t\t\treturn deferred.promise;\n };\n\n return deferred;\n };\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(); });\n\n\n",
- "/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * delay.js\n *\n * Helper that returns a promise that resolves after a delay.\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\n /**\n\t * @deprecated Use when(value).delay(ms)\n */\n return function delay(msec, value) {\n\t\treturn when(value).delay(msec);\n };\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n",
- "/** @license MIT License (c) copyright 2013-2014 original author or authors */\n\n/**\n * Collection of helper functions for wrapping and executing 'traditional'\n * synchronous functions in a promise interface.\n *\n * @author Brian Cavalier\n * @contributor Renato Zannon\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar attempt = when['try'];\n\tvar _liftAll = require('./lib/liftAll');\n\tvar _apply = require('./lib/apply')(when.Promise);\n\tvar slice = Array.prototype.slice;\n\n\treturn {\n\t\tlift: lift,\n\t\tliftAll: liftAll,\n\t\tcall: attempt,\n\t\tapply: apply,\n\t\tcompose: compose\n\t};\n\n\t/**\n\t * Takes a function and an optional array of arguments (that might be promises),\n\t * and calls the function. The return value is a promise whose resolution\n\t * depends on the value returned by the function.\n\t * @param {function} f function to be called\n\t * @param {Array} [args] array of arguments to func\n\t * @returns {Promise} promise for the return value of func\n\t */\n\tfunction apply(f, args) {\n\t\t// slice args just in case the caller passed an Arguments instance\n\t\treturn _apply(f, this, args == null ? [] : slice.call(args));\n\t}\n\n\t/**\n\t * Takes a 'regular' function and returns a version of that function that\n\t * returns a promise instead of a plain value, and handles thrown errors by\n\t * returning a rejected promise. Also accepts a list of arguments to be\n\t * prepended to the new function, as does Function.prototype.bind.\n\t *\n\t * The resulting function is promise-aware, in the sense that it accepts\n\t * promise arguments, and waits for their resolution.\n\t * @param {Function} f function to be bound\n\t * @param {...*} [args] arguments to be prepended for the new function @deprecated\n\t * @returns {Function} a promise-returning function\n\t */\n\tfunction lift(f /*, args... */) {\n\t\tvar args = arguments.length > 1 ? slice.call(arguments, 1) : [];\n\t\treturn function() {\n\t\t\treturn _apply(f, this, args.concat(slice.call(arguments)));\n\t\t};\n\t}\n\n\t/**\n\t * Lift all the functions/methods on src\n\t * @param {object|function} src source whose functions will be lifted\n\t * @param {function?} combine optional function for customizing the lifting\n\t * process. It is passed dst, the lifted function, and the property name of\n\t * the original function on src.\n\t * @param {(object|function)?} dst option destination host onto which to place lifted\n\t * functions. If not provided, liftAll returns a new object.\n\t * @returns {*} If dst is provided, returns dst with lifted functions as\n\t * properties. If dst not provided, returns a new object with lifted functions.\n\t */\n\tfunction liftAll(src, combine, dst) {\n\t\treturn _liftAll(lift, combine, dst, src);\n\t}\n\n\t/**\n\t * Composes multiple functions by piping their return values. It is\n\t * transparent to whether the functions return 'regular' values or promises:\n\t * the piped argument is always a resolved value. If one of the functions\n\t * throws or returns a rejected promise, the composed promise will be also\n\t * rejected.\n\t *\n\t * The arguments (or promises to arguments) given to the returned function (if\n\t * any), are passed directly to the first function on the 'pipeline'.\n\t * @param {Function} f the function to which the arguments will be passed\n\t * @param {...Function} [funcs] functions that will be composed, in order\n\t * @returns {Function} a promise-returning composition of the functions\n\t */\n\tfunction compose(f /*, funcs... */) {\n\t\tvar funcs = slice.call(arguments, 1);\n\n\t\treturn function() {\n\t\t\tvar thisArg = this;\n\t\t\tvar args = slice.call(arguments);\n\t\t\tvar firstPromise = attempt.apply(thisArg, [f].concat(args));\n\n\t\t\treturn when.reduce(funcs, function(arg, func) {\n\t\t\t\treturn func.call(thisArg, arg);\n\t\t\t}, firstPromise);\n\t\t};\n\t}\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n",
- "/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * Generalized promise concurrency guard\n * Adapted from original concept by Sakari Jokinen (Rocket Pack, Ltd.)\n *\n * @author Brian Cavalier\n * @author John Hann\n * @contributor Sakari Jokinen\n */\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar slice = Array.prototype.slice;\n\n\tguard.n = n;\n\n\treturn guard;\n\n\t/**\n\t * Creates a guarded version of f that can only be entered when the supplied\n\t * condition allows.\n\t * @param {function} condition represents a critical section that may only\n\t * be entered when allowed by the condition\n\t * @param {function} f function to guard\n\t * @returns {function} guarded version of f\n\t */\n\tfunction guard(condition, f) {\n\t\treturn function() {\n\t\t\tvar args = slice.call(arguments);\n\n\t\t\treturn when(condition()).withThis(this).then(function(exit) {\n\t\t\t\treturn when(f.apply(this, args))['finally'](exit);\n\t\t\t});\n\t\t};\n\t}\n\n\t/**\n\t * Creates a condition that allows only n simultaneous executions\n\t * of a guarded function\n\t * @param {number} allowed number of allowed simultaneous executions\n\t * @returns {function} condition function which returns a promise that\n\t * fulfills when the critical section may be entered. The fulfillment\n\t * value is a function (\"notifyExit\") that must be called when the critical\n\t * section has been exited.\n\t */\n\tfunction n(allowed) {\n\t\tvar count = 0;\n\t\tvar waiting = [];\n\n\t\treturn function enter() {\n\t\t\treturn when.promise(function(resolve) {\n\t\t\t\tif(count < allowed) {\n\t\t\t\t\tresolve(exit);\n\t\t\t\t} else {\n\t\t\t\t\twaiting.push(resolve);\n\t\t\t\t}\n\t\t\t\tcount += 1;\n\t\t\t});\n\t\t};\n\n\t\tfunction exit() {\n\t\t\tcount = Math.max(count - 1, 0);\n\t\t\tif(waiting.length > 0) {\n\t\t\t\twaiting.shift()(exit);\n\t\t\t}\n\t\t}\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n",
- "/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * Licensed under the MIT License at:\n * http://www.opensource.org/licenses/mit-license.php\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar Promise = when.Promise;\n\tvar toPromise = when.resolve;\n\n\treturn {\n\t\tall: when.lift(all),\n\t\tmap: map,\n\t\tsettle: settle\n\t};\n\n\t/**\n\t * Resolve all the key-value pairs in the supplied object or promise\n\t * for an object.\n\t * @param {Promise|object} object or promise for object whose key-value pairs\n\t * will be resolved\n\t * @returns {Promise} promise for an object with the fully resolved key-value pairs\n\t */\n\tfunction all(object) {\n\t\tvar p = Promise._defer();\n\t\tvar resolver = Promise._handler(p);\n\n\t\tvar results = {};\n\t\tvar keys = Object.keys(object);\n\t\tvar pending = keys.length;\n\n\t\tfor(var i=0, k; i<keys.length; ++i) {\n\t\t\tk = keys[i];\n\t\t\tPromise._handler(object[k]).fold(settleKey, k, results, resolver);\n\t\t}\n\n\t\tif(pending === 0) {\n\t\t\tresolver.resolve(results);\n\t\t}\n\n\t\treturn p;\n\n\t\tfunction settleKey(k, x, resolver) {\n\t\t\t/*jshint validthis:true*/\n\t\t\tthis[k] = x;\n\t\t\tif(--pending === 0) {\n\t\t\t\tresolver.resolve(results);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Map values in the supplied object's keys\n\t * @param {Promise|object} object or promise for object whose key-value pairs\n\t * will be reduced\n\t * @param {function(value:*, key:String):*} f mapping function which may\n\t * return either a promise or a value\n\t * @returns {Promise} promise for an object with the mapped and fully\n\t * resolved key-value pairs\n\t */\n\tfunction map(object, f) {\n\t\treturn toPromise(object).then(function(object) {\n\t\t\treturn all(Object.keys(object).reduce(function(o, k) {\n\t\t\t\to[k] = toPromise(object[k]).fold(mapWithKey, k);\n\t\t\t\treturn o;\n\t\t\t}, {}));\n\t\t});\n\n\t\tfunction mapWithKey(k, x) {\n\t\t\treturn f(x, k);\n\t\t}\n\t}\n\n\t/**\n\t * Resolve all key-value pairs in the supplied object and return a promise\n\t * that will always fulfill with the outcome states of all input promises.\n\t * @param {object} object whose key-value pairs will be settled\n\t * @returns {Promise} promise for an object with the mapped and fully\n\t * settled key-value pairs\n\t */\n\tfunction settle(object) {\n\t\tvar keys = Object.keys(object);\n\t\tvar results = {};\n\n\t\tif(keys.length === 0) {\n\t\t\treturn toPromise(results);\n\t\t}\n\n\t\tvar p = Promise._defer();\n\t\tvar resolver = Promise._handler(p);\n\t\tvar promises = keys.map(function(k) { return object[k]; });\n\n\t\twhen.settle(promises).then(function(states) {\n\t\t\tpopulateResults(keys, states, results, resolver);\n\t\t});\n\n\t\treturn p;\n\t}\n\n\tfunction populateResults(keys, states, results, resolver) {\n\t\tfor(var i=0; i<keys.length; i++) {\n\t\t\tresults[keys[i]] = states[i];\n\t\t}\n\t\tresolver.resolve(results);\n\t}\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function (require) {\n\n\tvar makePromise = require('./makePromise');\n\tvar Scheduler = require('./Scheduler');\n\tvar async = require('./env').asap;\n\n\treturn makePromise({\n\t\tscheduler: new Scheduler(async)\n\t});\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\t// Credit to Twisol (https://github.com/Twisol) for suggesting\n\t// this type of extensible queue + trampoline approach for next-tick conflation.\n\n\t/**\n\t * Async task scheduler\n\t * @param {function} async function to schedule a single async function\n\t * @constructor\n\t */\n\tfunction Scheduler(async) {\n\t\tthis._async = async;\n\t\tthis._running = false;\n\n\t\tthis._queue = this;\n\t\tthis._queueLen = 0;\n\t\tthis._afterQueue = {};\n\t\tthis._afterQueueLen = 0;\n\n\t\tvar self = this;\n\t\tthis.drain = function() {\n\t\t\tself._drain();\n\t\t};\n\t}\n\n\t/**\n\t * Enqueue a task\n\t * @param {{ run:function }} task\n\t */\n\tScheduler.prototype.enqueue = function(task) {\n\t\tthis._queue[this._queueLen++] = task;\n\t\tthis.run();\n\t};\n\n\t/**\n\t * Enqueue a task to run after the main task queue\n\t * @param {{ run:function }} task\n\t */\n\tScheduler.prototype.afterQueue = function(task) {\n\t\tthis._afterQueue[this._afterQueueLen++] = task;\n\t\tthis.run();\n\t};\n\n\tScheduler.prototype.run = function() {\n\t\tif (!this._running) {\n\t\t\tthis._running = true;\n\t\t\tthis._async(this.drain);\n\t\t}\n\t};\n\n\t/**\n\t * Drain the handler queue entirely, and then the after queue\n\t */\n\tScheduler.prototype._drain = function() {\n\t\tvar i = 0;\n\t\tfor (; i < this._queueLen; ++i) {\n\t\t\tthis._queue[i].run();\n\t\t\tthis._queue[i] = void 0;\n\t\t}\n\n\t\tthis._queueLen = 0;\n\t\tthis._running = false;\n\n\t\tfor (i = 0; i < this._afterQueueLen; ++i) {\n\t\t\tthis._afterQueue[i].run();\n\t\t\tthis._afterQueue[i] = void 0;\n\t\t}\n\n\t\tthis._afterQueueLen = 0;\n\t};\n\n\treturn Scheduler;\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\t/**\n\t * Custom error type for promises rejected by promise.timeout\n\t * @param {string} message\n\t * @constructor\n\t */\n\tfunction TimeoutError (message) {\n\t\tError.call(this);\n\t\tthis.message = message;\n\t\tthis.name = TimeoutError.name;\n\t\tif (typeof Error.captureStackTrace === 'function') {\n\t\t\tError.captureStackTrace(this, TimeoutError);\n\t\t}\n\t}\n\n\tTimeoutError.prototype = Object.create(Error.prototype);\n\tTimeoutError.prototype.constructor = TimeoutError;\n\n\treturn TimeoutError;\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\tmakeApply.tryCatchResolve = tryCatchResolve;\n\n\treturn makeApply;\n\n\tfunction makeApply(Promise, call) {\n\t\tif(arguments.length < 2) {\n\t\t\tcall = tryCatchResolve;\n\t\t}\n\n\t\treturn apply;\n\n\t\tfunction apply(f, thisArg, args) {\n\t\t\tvar p = Promise._defer();\n\t\t\tvar l = args.length;\n\t\t\tvar params = new Array(l);\n\t\t\tcallAndResolve({ f:f, thisArg:thisArg, args:args, params:params, i:l-1, call:call }, p._handler);\n\n\t\t\treturn p;\n\t\t}\n\n\t\tfunction callAndResolve(c, h) {\n\t\t\tif(c.i < 0) {\n\t\t\t\treturn call(c.f, c.thisArg, c.params, h);\n\t\t\t}\n\n\t\t\tvar handler = Promise._handler(c.args[c.i]);\n\t\t\thandler.fold(callAndResolveNext, c, void 0, h);\n\t\t}\n\n\t\tfunction callAndResolveNext(c, x, h) {\n\t\t\tc.params[c.i] = x;\n\t\t\tc.i -= 1;\n\t\t\tcallAndResolve(c, h);\n\t\t}\n\t}\n\n\tfunction tryCatchResolve(f, thisArg, args, resolver) {\n\t\ttry {\n\t\t\tresolver.resolve(f.apply(thisArg, args));\n\t\t} catch(e) {\n\t\t\tresolver.reject(e);\n\t\t}\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n\n\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar state = require('../state');\n\tvar applier = require('../apply');\n\n\treturn function array(Promise) {\n\n\t\tvar applyFold = applier(Promise);\n\t\tvar toPromise = Promise.resolve;\n\t\tvar all = Promise.all;\n\n\t\tvar ar = Array.prototype.reduce;\n\t\tvar arr = Array.prototype.reduceRight;\n\t\tvar slice = Array.prototype.slice;\n\n\t\t// Additional array combinators\n\n\t\tPromise.any = any;\n\t\tPromise.some = some;\n\t\tPromise.settle = settle;\n\n\t\tPromise.map = map;\n\t\tPromise.filter = filter;\n\t\tPromise.reduce = reduce;\n\t\tPromise.reduceRight = reduceRight;\n\n\t\t/**\n\t\t * When this promise fulfills with an array, do\n\t\t * onFulfilled.apply(void 0, array)\n\t\t * @param {function} onFulfilled function to apply\n\t\t * @returns {Promise} promise for the result of applying onFulfilled\n\t\t */\n\t\tPromise.prototype.spread = function(onFulfilled) {\n\t\t\treturn this.then(all).then(function(array) {\n\t\t\t\treturn onFulfilled.apply(this, array);\n\t\t\t});\n\t\t};\n\n\t\treturn Promise;\n\n\t\t/**\n\t\t * One-winner competitive race.\n\t\t * Return a promise that will fulfill when one of the promises\n\t\t * in the input array fulfills, or will reject when all promises\n\t\t * have rejected.\n\t\t * @param {array} promises\n\t\t * @returns {Promise} promise for the first fulfilled value\n\t\t */\n\t\tfunction any(promises) {\n\t\t\tvar p = Promise._defer();\n\t\t\tvar resolver = p._handler;\n\t\t\tvar l = promises.length>>>0;\n\n\t\t\tvar pending = l;\n\t\t\tvar errors = [];\n\n\t\t\tfor (var h, x, i = 0; i < l; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif(x === void 0 && !(i in promises)) {\n\t\t\t\t\t--pending;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\th = Promise._handler(x);\n\t\t\t\tif(h.state() > 0) {\n\t\t\t\t\tresolver.become(h);\n\t\t\t\t\tPromise._visitRemaining(promises, i, h);\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\th.visit(resolver, handleFulfill, handleReject);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(pending === 0) {\n\t\t\t\tresolver.reject(new RangeError('any(): array must not be empty'));\n\t\t\t}\n\n\t\t\treturn p;\n\n\t\t\tfunction handleFulfill(x) {\n\t\t\t\t/*jshint validthis:true*/\n\t\t\t\terrors = null;\n\t\t\t\tthis.resolve(x); // this === resolver\n\t\t\t}\n\n\t\t\tfunction handleReject(e) {\n\t\t\t\t/*jshint validthis:true*/\n\t\t\t\tif(this.resolved) { // this === resolver\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\terrors.push(e);\n\t\t\t\tif(--pending === 0) {\n\t\t\t\t\tthis.reject(errors);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * N-winner competitive race\n\t\t * Return a promise that will fulfill when n input promises have\n\t\t * fulfilled, or will reject when it becomes impossible for n\n\t\t * input promises to fulfill (ie when promises.length - n + 1\n\t\t * have rejected)\n\t\t * @param {array} promises\n\t\t * @param {number} n\n\t\t * @returns {Promise} promise for the earliest n fulfillment values\n\t\t *\n\t\t * @deprecated\n\t\t */\n\t\tfunction some(promises, n) {\n\t\t\t/*jshint maxcomplexity:7*/\n\t\t\tvar p = Promise._defer();\n\t\t\tvar resolver = p._handler;\n\n\t\t\tvar results = [];\n\t\t\tvar errors = [];\n\n\t\t\tvar l = promises.length>>>0;\n\t\t\tvar nFulfill = 0;\n\t\t\tvar nReject;\n\t\t\tvar x, i; // reused in both for() loops\n\n\t\t\t// First pass: count actual array items\n\t\t\tfor(i=0; i<l; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif(x === void 0 && !(i in promises)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\t++nFulfill;\n\t\t\t}\n\n\t\t\t// Compute actual goals\n\t\t\tn = Math.max(n, 0);\n\t\t\tnReject = (nFulfill - n + 1);\n\t\t\tnFulfill = Math.min(n, nFulfill);\n\n\t\t\tif(n > nFulfill) {\n\t\t\t\tresolver.reject(new RangeError('some(): array must contain at least '\n\t\t\t\t+ n + ' item(s), but had ' + nFulfill));\n\t\t\t} else if(nFulfill === 0) {\n\t\t\t\tresolver.resolve(results);\n\t\t\t}\n\n\t\t\t// Second pass: observe each array item, make progress toward goals\n\t\t\tfor(i=0; i<l; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif(x === void 0 && !(i in promises)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tPromise._handler(x).visit(resolver, fulfill, reject, resolver.notify);\n\t\t\t}\n\n\t\t\treturn p;\n\n\t\t\tfunction fulfill(x) {\n\t\t\t\t/*jshint validthis:true*/\n\t\t\t\tif(this.resolved) { // this === resolver\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresults.push(x);\n\t\t\t\tif(--nFulfill === 0) {\n\t\t\t\t\terrors = null;\n\t\t\t\t\tthis.resolve(results);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction reject(e) {\n\t\t\t\t/*jshint validthis:true*/\n\t\t\t\tif(this.resolved) { // this === resolver\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\terrors.push(e);\n\t\t\t\tif(--nReject === 0) {\n\t\t\t\t\tresults = null;\n\t\t\t\t\tthis.reject(errors);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Apply f to the value of each promise in a list of promises\n\t\t * and return a new list containing the results.\n\t\t * @param {array} promises\n\t\t * @param {function(x:*, index:Number):*} f mapping function\n\t\t * @returns {Promise}\n\t\t */\n\t\tfunction map(promises, f) {\n\t\t\treturn Promise._traverse(f, promises);\n\t\t}\n\n\t\t/**\n\t\t * Filter the provided array of promises using the provided predicate. Input may\n\t\t * contain promises and values\n\t\t * @param {Array} promises array of promises and values\n\t\t * @param {function(x:*, index:Number):boolean} predicate filtering predicate.\n\t\t * Must return truthy (or promise for truthy) for items to retain.\n\t\t * @returns {Promise} promise that will fulfill with an array containing all items\n\t\t * for which predicate returned truthy.\n\t\t */\n\t\tfunction filter(promises, predicate) {\n\t\t\tvar a = slice.call(promises);\n\t\t\treturn Promise._traverse(predicate, a).then(function(keep) {\n\t\t\t\treturn filterSync(a, keep);\n\t\t\t});\n\t\t}\n\n\t\tfunction filterSync(promises, keep) {\n\t\t\t// Safe because we know all promises have fulfilled if we've made it this far\n\t\t\tvar l = keep.length;\n\t\t\tvar filtered = new Array(l);\n\t\t\tfor(var i=0, j=0; i<l; ++i) {\n\t\t\t\tif(keep[i]) {\n\t\t\t\t\tfiltered[j++] = Promise._handler(promises[i]).value;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiltered.length = j;\n\t\t\treturn filtered;\n\n\t\t}\n\n\t\t/**\n\t\t * Return a promise that will always fulfill with an array containing\n\t\t * the outcome states of all input promises. The returned promise\n\t\t * will never reject.\n\t\t * @param {Array} promises\n\t\t * @returns {Promise} promise for array of settled state descriptors\n\t\t */\n\t\tfunction settle(promises) {\n\t\t\treturn all(promises.map(settleOne));\n\t\t}\n\n\t\tfunction settleOne(p) {\n\t\t\t// Optimize the case where we get an already-resolved when.js promise\n\t\t\t// by extracting its state:\n\t\t\tvar handler;\n\t\t\tif (p instanceof Promise) {\n\t\t\t\t// This is our own Promise type and we can reach its handler internals:\n\t\t\t\thandler = p._handler.join();\n\t\t\t}\n\t\t\tif((handler && handler.state() === 0) || !handler) {\n\t\t\t\t// Either still pending, or not a Promise at all:\n\t\t\t\treturn toPromise(p).then(state.fulfilled, state.rejected);\n\t\t\t}\n\n\t\t\t// The promise is our own, but it is already resolved. Take a shortcut.\n\t\t\t// Since we're not actually handling the resolution, we need to disable\n\t\t\t// rejection reporting.\n\t\t\thandler._unreport();\n\t\t\treturn state.inspect(handler);\n\t\t}\n\n\t\t/**\n\t\t * Traditional reduce function, similar to `Array.prototype.reduce()`, but\n\t\t * input may contain promises and/or values, and reduceFunc\n\t\t * may return either a value or a promise, *and* initialValue may\n\t\t * be a promise for the starting value.\n\t\t * @param {Array|Promise} promises array or promise for an array of anything,\n\t\t * may contain a mix of promises and values.\n\t\t * @param {function(accumulated:*, x:*, index:Number):*} f reduce function\n\t\t * @returns {Promise} that will resolve to the final reduced value\n\t\t */\n\t\tfunction reduce(promises, f /*, initialValue */) {\n\t\t\treturn arguments.length > 2 ? ar.call(promises, liftCombine(f), arguments[2])\n\t\t\t\t\t: ar.call(promises, liftCombine(f));\n\t\t}\n\n\t\t/**\n\t\t * Traditional reduce function, similar to `Array.prototype.reduceRight()`, but\n\t\t * input may contain promises and/or values, and reduceFunc\n\t\t * may return either a value or a promise, *and* initialValue may\n\t\t * be a promise for the starting value.\n\t\t * @param {Array|Promise} promises array or promise for an array of anything,\n\t\t * may contain a mix of promises and values.\n\t\t * @param {function(accumulated:*, x:*, index:Number):*} f reduce function\n\t\t * @returns {Promise} that will resolve to the final reduced value\n\t\t */\n\t\tfunction reduceRight(promises, f /*, initialValue */) {\n\t\t\treturn arguments.length > 2 ? arr.call(promises, liftCombine(f), arguments[2])\n\t\t\t\t\t: arr.call(promises, liftCombine(f));\n\t\t}\n\n\t\tfunction liftCombine(f) {\n\t\t\treturn function(z, x, i) {\n\t\t\t\treturn applyFold(f, void 0, [z,x,i]);\n\t\t\t};\n\t\t}\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function flow(Promise) {\n\n\t\tvar resolve = Promise.resolve;\n\t\tvar reject = Promise.reject;\n\t\tvar origCatch = Promise.prototype['catch'];\n\n\t\t/**\n\t\t * Handle the ultimate fulfillment value or rejection reason, and assume\n\t\t * responsibility for all errors. If an error propagates out of result\n\t\t * or handleFatalError, it will be rethrown to the host, resulting in a\n\t\t * loud stack track on most platforms and a crash on some.\n\t\t * @param {function?} onResult\n\t\t * @param {function?} onError\n\t\t * @returns {undefined}\n\t\t */\n\t\tPromise.prototype.done = function(onResult, onError) {\n\t\t\tthis._handler.visit(this._handler.receiver, onResult, onError);\n\t\t};\n\n\t\t/**\n\t\t * Add Error-type and predicate matching to catch. Examples:\n\t\t * promise.catch(TypeError, handleTypeError)\n\t\t * .catch(predicate, handleMatchedErrors)\n\t\t * .catch(handleRemainingErrors)\n\t\t * @param onRejected\n\t\t * @returns {*}\n\t\t */\n\t\tPromise.prototype['catch'] = Promise.prototype.otherwise = function(onRejected) {\n\t\t\tif (arguments.length < 2) {\n\t\t\t\treturn origCatch.call(this, onRejected);\n\t\t\t}\n\n\t\t\tif(typeof onRejected !== 'function') {\n\t\t\t\treturn this.ensure(rejectInvalidPredicate);\n\t\t\t}\n\n\t\t\treturn origCatch.call(this, createCatchFilter(arguments[1], onRejected));\n\t\t};\n\n\t\t/**\n\t\t * Wraps the provided catch handler, so that it will only be called\n\t\t * if the predicate evaluates truthy\n\t\t * @param {?function} handler\n\t\t * @param {function} predicate\n\t\t * @returns {function} conditional catch handler\n\t\t */\n\t\tfunction createCatchFilter(handler, predicate) {\n\t\t\treturn function(e) {\n\t\t\t\treturn evaluatePredicate(e, predicate)\n\t\t\t\t\t? handler.call(this, e)\n\t\t\t\t\t: reject(e);\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Ensures that onFulfilledOrRejected will be called regardless of whether\n\t\t * this promise is fulfilled or rejected. onFulfilledOrRejected WILL NOT\n\t\t * receive the promises' value or reason. Any returned value will be disregarded.\n\t\t * onFulfilledOrRejected may throw or return a rejected promise to signal\n\t\t * an additional error.\n\t\t * @param {function} handler handler to be called regardless of\n\t\t * fulfillment or rejection\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype['finally'] = Promise.prototype.ensure = function(handler) {\n\t\t\tif(typeof handler !== 'function') {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\treturn this.then(function(x) {\n\t\t\t\treturn runSideEffect(handler, this, identity, x);\n\t\t\t}, function(e) {\n\t\t\t\treturn runSideEffect(handler, this, reject, e);\n\t\t\t});\n\t\t};\n\n\t\tfunction runSideEffect (handler, thisArg, propagate, value) {\n\t\t\tvar result = handler.call(thisArg);\n\t\t\treturn maybeThenable(result)\n\t\t\t\t? propagateValue(result, propagate, value)\n\t\t\t\t: propagate(value);\n\t\t}\n\n\t\tfunction propagateValue (result, propagate, x) {\n\t\t\treturn resolve(result).then(function () {\n\t\t\t\treturn propagate(x);\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Recover from a failure by returning a defaultValue. If defaultValue\n\t\t * is a promise, it's fulfillment value will be used. If defaultValue is\n\t\t * a promise that rejects, the returned promise will reject with the\n\t\t * same reason.\n\t\t * @param {*} defaultValue\n\t\t * @returns {Promise} new promise\n\t\t */\n\t\tPromise.prototype['else'] = Promise.prototype.orElse = function(defaultValue) {\n\t\t\treturn this.then(void 0, function() {\n\t\t\t\treturn defaultValue;\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * Shortcut for .then(function() { return value; })\n\t\t * @param {*} value\n\t\t * @return {Promise} a promise that:\n\t\t * - is fulfilled if value is not a promise, or\n\t\t * - if value is a promise, will fulfill with its value, or reject\n\t\t * with its reason.\n\t\t */\n\t\tPromise.prototype['yield'] = function(value) {\n\t\t\treturn this.then(function() {\n\t\t\t\treturn value;\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * Runs a side effect when this promise fulfills, without changing the\n\t\t * fulfillment value.\n\t\t * @param {function} onFulfilledSideEffect\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype.tap = function(onFulfilledSideEffect) {\n\t\t\treturn this.then(onFulfilledSideEffect)['yield'](this);\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n\tfunction rejectInvalidPredicate() {\n\t\tthrow new TypeError('catch predicate must be a function');\n\t}\n\n\tfunction evaluatePredicate(e, predicate) {\n\t\treturn isError(predicate) ? e instanceof predicate : predicate(e);\n\t}\n\n\tfunction isError(predicate) {\n\t\treturn predicate === Error\n\t\t\t|| (predicate != null && predicate.prototype instanceof Error);\n\t}\n\n\tfunction maybeThenable(x) {\n\t\treturn (typeof x === 'object' || typeof x === 'function') && x !== null;\n\t}\n\n\tfunction identity(x) {\n\t\treturn x;\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n/** @author Jeff Escalante */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function fold(Promise) {\n\n\t\tPromise.prototype.fold = function(f, z) {\n\t\t\tvar promise = this._beget();\n\n\t\t\tthis._handler.fold(function(z, x, to) {\n\t\t\t\tPromise._handler(z).fold(function(x, z, to) {\n\t\t\t\t\tto.resolve(f.call(this, z, x));\n\t\t\t\t}, x, this, to);\n\t\t\t}, z, promise._handler.receiver, promise._handler);\n\n\t\t\treturn promise;\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar inspect = require('../state').inspect;\n\n\treturn function inspection(Promise) {\n\n\t\tPromise.prototype.inspect = function() {\n\t\t\treturn inspect(Promise._handler(this));\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function generate(Promise) {\n\n\t\tvar resolve = Promise.resolve;\n\n\t\tPromise.iterate = iterate;\n\t\tPromise.unfold = unfold;\n\n\t\treturn Promise;\n\n\t\t/**\n\t\t * @deprecated Use github.com/cujojs/most streams and most.iterate\n\t\t * Generate a (potentially infinite) stream of promised values:\n\t\t * x, f(x), f(f(x)), etc. until condition(x) returns true\n\t\t * @param {function} f function to generate a new x from the previous x\n\t\t * @param {function} condition function that, given the current x, returns\n\t\t * truthy when the iterate should stop\n\t\t * @param {function} handler function to handle the value produced by f\n\t\t * @param {*|Promise} x starting value, may be a promise\n\t\t * @return {Promise} the result of the last call to f before\n\t\t * condition returns true\n\t\t */\n\t\tfunction iterate(f, condition, handler, x) {\n\t\t\treturn unfold(function(x) {\n\t\t\t\treturn [x, f(x)];\n\t\t\t}, condition, handler, x);\n\t\t}\n\n\t\t/**\n\t\t * @deprecated Use github.com/cujojs/most streams and most.unfold\n\t\t * Generate a (potentially infinite) stream of promised values\n\t\t * by applying handler(generator(seed)) iteratively until\n\t\t * condition(seed) returns true.\n\t\t * @param {function} unspool function that generates a [value, newSeed]\n\t\t * given a seed.\n\t\t * @param {function} condition function that, given the current seed, returns\n\t\t * truthy when the unfold should stop\n\t\t * @param {function} handler function to handle the value produced by unspool\n\t\t * @param x {*|Promise} starting value, may be a promise\n\t\t * @return {Promise} the result of the last value produced by unspool before\n\t\t * condition returns true\n\t\t */\n\t\tfunction unfold(unspool, condition, handler, x) {\n\t\t\treturn resolve(x).then(function(seed) {\n\t\t\t\treturn resolve(condition(seed)).then(function(done) {\n\t\t\t\t\treturn done ? seed : resolve(unspool(seed)).spread(next);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tfunction next(item, newSeed) {\n\t\t\t\treturn resolve(handler(item)).then(function() {\n\t\t\t\t\treturn unfold(unspool, condition, handler, newSeed);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function progress(Promise) {\n\n\t\t/**\n\t\t * @deprecated\n\t\t * Register a progress handler for this promise\n\t\t * @param {function} onProgress\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype.progress = function(onProgress) {\n\t\t\treturn this.then(void 0, void 0, onProgress);\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar env = require('../env');\n\tvar TimeoutError = require('../TimeoutError');\n\n\tfunction setTimeout(f, ms, x, y) {\n\t\treturn env.setTimer(function() {\n\t\t\tf(x, y, ms);\n\t\t}, ms);\n\t}\n\n\treturn function timed(Promise) {\n\t\t/**\n\t\t * Return a new promise whose fulfillment value is revealed only\n\t\t * after ms milliseconds\n\t\t * @param {number} ms milliseconds\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype.delay = function(ms) {\n\t\t\tvar p = this._beget();\n\t\t\tthis._handler.fold(handleDelay, ms, void 0, p._handler);\n\t\t\treturn p;\n\t\t};\n\n\t\tfunction handleDelay(ms, x, h) {\n\t\t\tsetTimeout(resolveDelay, ms, x, h);\n\t\t}\n\n\t\tfunction resolveDelay(x, h) {\n\t\t\th.resolve(x);\n\t\t}\n\n\t\t/**\n\t\t * Return a new promise that rejects after ms milliseconds unless\n\t\t * this promise fulfills earlier, in which case the returned promise\n\t\t * fulfills with the same value.\n\t\t * @param {number} ms milliseconds\n\t\t * @param {Error|*=} reason optional rejection reason to use, defaults\n\t\t * to a TimeoutError if not provided\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype.timeout = function(ms, reason) {\n\t\t\tvar p = this._beget();\n\t\t\tvar h = p._handler;\n\n\t\t\tvar t = setTimeout(onTimeout, ms, reason, p._handler);\n\n\t\t\tthis._handler.visit(h,\n\t\t\t\tfunction onFulfill(x) {\n\t\t\t\t\tenv.clearTimer(t);\n\t\t\t\t\tthis.resolve(x); // this = h\n\t\t\t\t},\n\t\t\t\tfunction onReject(x) {\n\t\t\t\t\tenv.clearTimer(t);\n\t\t\t\t\tthis.reject(x); // this = h\n\t\t\t\t},\n\t\t\t\th.notify);\n\n\t\t\treturn p;\n\t\t};\n\n\t\tfunction onTimeout(reason, h, ms) {\n\t\t\tvar e = typeof reason === 'undefined'\n\t\t\t\t? new TimeoutError('timed out after ' + ms + 'ms')\n\t\t\t\t: reason;\n\t\t\th.reject(e);\n\t\t}\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar setTimer = require('../env').setTimer;\n\tvar format = require('../format');\n\n\treturn function unhandledRejection(Promise) {\n\n\t\tvar logError = noop;\n\t\tvar logInfo = noop;\n\t\tvar localConsole;\n\n\t\tif(typeof console !== 'undefined') {\n\t\t\t// Alias console to prevent things like uglify's drop_console option from\n\t\t\t// removing console.log/error. Unhandled rejections fall into the same\n\t\t\t// category as uncaught exceptions, and build tools shouldn't silence them.\n\t\t\tlocalConsole = console;\n\t\t\tlogError = typeof localConsole.error !== 'undefined'\n\t\t\t\t? function (e) { localConsole.error(e); }\n\t\t\t\t: function (e) { localConsole.log(e); };\n\n\t\t\tlogInfo = typeof localConsole.info !== 'undefined'\n\t\t\t\t? function (e) { localConsole.info(e); }\n\t\t\t\t: function (e) { localConsole.log(e); };\n\t\t}\n\n\t\tPromise.onPotentiallyUnhandledRejection = function(rejection) {\n\t\t\tenqueue(report, rejection);\n\t\t};\n\n\t\tPromise.onPotentiallyUnhandledRejectionHandled = function(rejection) {\n\t\t\tenqueue(unreport, rejection);\n\t\t};\n\n\t\tPromise.onFatalRejection = function(rejection) {\n\t\t\tenqueue(throwit, rejection.value);\n\t\t};\n\n\t\tvar tasks = [];\n\t\tvar reported = [];\n\t\tvar running = null;\n\n\t\tfunction report(r) {\n\t\t\tif(!r.handled) {\n\t\t\t\treported.push(r);\n\t\t\t\tlogError('Potentially unhandled rejection [' + r.id + '] ' + format.formatError(r.value));\n\t\t\t}\n\t\t}\n\n\t\tfunction unreport(r) {\n\t\t\tvar i = reported.indexOf(r);\n\t\t\tif(i >= 0) {\n\t\t\t\treported.splice(i, 1);\n\t\t\t\tlogInfo('Handled previous rejection [' + r.id + '] ' + format.formatObject(r.value));\n\t\t\t}\n\t\t}\n\n\t\tfunction enqueue(f, x) {\n\t\t\ttasks.push(f, x);\n\t\t\tif(running === null) {\n\t\t\t\trunning = setTimer(flush, 0);\n\t\t\t}\n\t\t}\n\n\t\tfunction flush() {\n\t\t\trunning = null;\n\t\t\twhile(tasks.length > 0) {\n\t\t\t\ttasks.shift()(tasks.shift());\n\t\t\t}\n\t\t}\n\n\t\treturn Promise;\n\t};\n\n\tfunction throwit(e) {\n\t\tthrow e;\n\t}\n\n\tfunction noop() {}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function addWith(Promise) {\n\t\t/**\n\t\t * Returns a promise whose handlers will be called with `this` set to\n\t\t * the supplied receiver. Subsequent promises derived from the\n\t\t * returned promise will also have their handlers called with receiver\n\t\t * as `this`. Calling `with` with undefined or no arguments will return\n\t\t * a promise whose handlers will again be called in the usual Promises/A+\n\t\t * way (no `this`) thus safely undoing any previous `with` in the\n\t\t * promise chain.\n\t\t *\n\t\t * WARNING: Promises returned from `with`/`withThis` are NOT Promises/A+\n\t\t * compliant, specifically violating 2.2.5 (http://promisesaplus.com/#point-41)\n\t\t *\n\t\t * @param {object} receiver `this` value for all handlers attached to\n\t\t * the returned promise.\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype['with'] = Promise.prototype.withThis = function(receiver) {\n\t\t\tvar p = this._beget();\n\t\t\tvar child = p._handler;\n\t\t\tchild.receiver = receiver;\n\t\t\tthis._handler.chain(child, receiver);\n\t\t\treturn p;\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n/*global process,document,setTimeout,clearTimeout,MutationObserver,WebKitMutationObserver*/\n(function(define) { 'use strict';\ndefine(function(require) {\n\t/*jshint maxcomplexity:6*/\n\n\t// Sniff \"best\" async scheduling option\n\t// Prefer process.nextTick or MutationObserver, then check for\n\t// setTimeout, and finally vertx, since its the only env that doesn't\n\t// have setTimeout\n\n\tvar MutationObs;\n\tvar capturedSetTimeout = typeof setTimeout !== 'undefined' && setTimeout;\n\n\t// Default env\n\tvar setTimer = function(f, ms) { return setTimeout(f, ms); };\n\tvar clearTimer = function(t) { return clearTimeout(t); };\n\tvar asap = function (f) { return capturedSetTimeout(f, 0); };\n\n\t// Detect specific env\n\tif (isNode()) { // Node\n\t\tasap = function (f) { return process.nextTick(f); };\n\n\t} else if (MutationObs = hasMutationObserver()) { // Modern browser\n\t\tasap = initMutationObserver(MutationObs);\n\n\t} else if (!capturedSetTimeout) { // vert.x\n\t\tvar vertxRequire = require;\n\t\tvar vertx = vertxRequire('vertx');\n\t\tsetTimer = function (f, ms) { return vertx.setTimer(ms, f); };\n\t\tclearTimer = vertx.cancelTimer;\n\t\tasap = vertx.runOnLoop || vertx.runOnContext;\n\t}\n\n\treturn {\n\t\tsetTimer: setTimer,\n\t\tclearTimer: clearTimer,\n\t\tasap: asap\n\t};\n\n\tfunction isNode () {\n\t\treturn typeof process !== 'undefined' &&\n\t\t\tObject.prototype.toString.call(process) === '[object process]';\n\t}\n\n\tfunction hasMutationObserver () {\n\t return (typeof MutationObserver !== 'undefined' && MutationObserver) ||\n\t\t\t(typeof WebKitMutationObserver !== 'undefined' && WebKitMutationObserver);\n\t}\n\n\tfunction initMutationObserver(MutationObserver) {\n\t\tvar scheduled;\n\t\tvar node = document.createTextNode('');\n\t\tvar o = new MutationObserver(run);\n\t\to.observe(node, { characterData: true });\n\n\t\tfunction run() {\n\t\t\tvar f = scheduled;\n\t\t\tscheduled = void 0;\n\t\t\tf();\n\t\t}\n\n\t\tvar i = 0;\n\t\treturn function (f) {\n\t\t\tscheduled = f;\n\t\t\tnode.data = (i ^= 1);\n\t\t};\n\t}\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn {\n\t\tformatError: formatError,\n\t\tformatObject: formatObject,\n\t\ttryStringify: tryStringify\n\t};\n\n\t/**\n\t * Format an error into a string. If e is an Error and has a stack property,\n\t * it's returned. Otherwise, e is formatted using formatObject, with a\n\t * warning added about e not being a proper Error.\n\t * @param {*} e\n\t * @returns {String} formatted string, suitable for output to developers\n\t */\n\tfunction formatError(e) {\n\t\tvar s = typeof e === 'object' && e !== null && (e.stack || e.message) ? e.stack || e.message : formatObject(e);\n\t\treturn e instanceof Error ? s : s + ' (WARNING: non-Error used)';\n\t}\n\n\t/**\n\t * Format an object, detecting \"plain\" objects and running them through\n\t * JSON.stringify if possible.\n\t * @param {Object} o\n\t * @returns {string}\n\t */\n\tfunction formatObject(o) {\n\t\tvar s = String(o);\n\t\tif(s === '[object Object]' && typeof JSON !== 'undefined') {\n\t\t\ts = tryStringify(o, s);\n\t\t}\n\t\treturn s;\n\t}\n\n\t/**\n\t * Try to return the result of JSON.stringify(x). If that fails, return\n\t * defaultValue\n\t * @param {*} x\n\t * @param {*} defaultValue\n\t * @returns {String|*} JSON.stringify(x) or defaultValue\n\t */\n\tfunction tryStringify(x, defaultValue) {\n\t\ttry {\n\t\t\treturn JSON.stringify(x);\n\t\t} catch(e) {\n\t\t\treturn defaultValue;\n\t\t}\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function liftAll(liftOne, combine, dst, src) {\n\t\tif(typeof combine === 'undefined') {\n\t\t\tcombine = defaultCombine;\n\t\t}\n\n\t\treturn Object.keys(src).reduce(function(dst, key) {\n\t\t\tvar f = src[key];\n\t\t\treturn typeof f === 'function' ? combine(dst, liftOne(f), key) : dst;\n\t\t}, typeof dst === 'undefined' ? defaultDst(src) : dst);\n\t};\n\n\tfunction defaultCombine(o, f, k) {\n\t\to[k] = f;\n\t\treturn o;\n\t}\n\n\tfunction defaultDst(src) {\n\t\treturn typeof src === 'function' ? src.bind() : Object.create(src);\n\t}\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function makePromise(environment) {\n\n\t\tvar tasks = environment.scheduler;\n\t\tvar emitRejection = initEmitRejection();\n\n\t\tvar objectCreate = Object.create ||\n\t\t\tfunction(proto) {\n\t\t\t\tfunction Child() {}\n\t\t\t\tChild.prototype = proto;\n\t\t\t\treturn new Child();\n\t\t\t};\n\n\t\t/**\n\t\t * Create a promise whose fate is determined by resolver\n\t\t * @constructor\n\t\t * @returns {Promise} promise\n\t\t * @name Promise\n\t\t */\n\t\tfunction Promise(resolver, handler) {\n\t\t\tthis._handler = resolver === Handler ? handler : init(resolver);\n\t\t}\n\n\t\t/**\n\t\t * Run the supplied resolver\n\t\t * @param resolver\n\t\t * @returns {Pending}\n\t\t */\n\t\tfunction init(resolver) {\n\t\t\tvar handler = new Pending();\n\n\t\t\ttry {\n\t\t\t\tresolver(promiseResolve, promiseReject, promiseNotify);\n\t\t\t} catch (e) {\n\t\t\t\tpromiseReject(e);\n\t\t\t}\n\n\t\t\treturn handler;\n\n\t\t\t/**\n\t\t\t * Transition from pre-resolution state to post-resolution state, notifying\n\t\t\t * all listeners of the ultimate fulfillment or rejection\n\t\t\t * @param {*} x resolution value\n\t\t\t */\n\t\t\tfunction promiseResolve (x) {\n\t\t\t\thandler.resolve(x);\n\t\t\t}\n\t\t\t/**\n\t\t\t * Reject this promise with reason, which will be used verbatim\n\t\t\t * @param {Error|*} reason rejection reason, strongly suggested\n\t\t\t * to be an Error type\n\t\t\t */\n\t\t\tfunction promiseReject (reason) {\n\t\t\t\thandler.reject(reason);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * @deprecated\n\t\t\t * Issue a progress event, notifying all progress listeners\n\t\t\t * @param {*} x progress event payload to pass to all listeners\n\t\t\t */\n\t\t\tfunction promiseNotify (x) {\n\t\t\t\thandler.notify(x);\n\t\t\t}\n\t\t}\n\n\t\t// Creation\n\n\t\tPromise.resolve = resolve;\n\t\tPromise.reject = reject;\n\t\tPromise.never = never;\n\n\t\tPromise._defer = defer;\n\t\tPromise._handler = getHandler;\n\n\t\t/**\n\t\t * Returns a trusted promise. If x is already a trusted promise, it is\n\t\t * returned, otherwise returns a new trusted Promise which follows x.\n\t\t * @param {*} x\n\t\t * @return {Promise} promise\n\t\t */\n\t\tfunction resolve(x) {\n\t\t\treturn isPromise(x) ? x\n\t\t\t\t: new Promise(Handler, new Async(getHandler(x)));\n\t\t}\n\n\t\t/**\n\t\t * Return a reject promise with x as its reason (x is used verbatim)\n\t\t * @param {*} x\n\t\t * @returns {Promise} rejected promise\n\t\t */\n\t\tfunction reject(x) {\n\t\t\treturn new Promise(Handler, new Async(new Rejected(x)));\n\t\t}\n\n\t\t/**\n\t\t * Return a promise that remains pending forever\n\t\t * @returns {Promise} forever-pending promise.\n\t\t */\n\t\tfunction never() {\n\t\t\treturn foreverPendingPromise; // Should be frozen\n\t\t}\n\n\t\t/**\n\t\t * Creates an internal {promise, resolver} pair\n\t\t * @private\n\t\t * @returns {Promise}\n\t\t */\n\t\tfunction defer() {\n\t\t\treturn new Promise(Handler, new Pending());\n\t\t}\n\n\t\t// Transformation and flow control\n\n\t\t/**\n\t\t * Transform this promise's fulfillment value, returning a new Promise\n\t\t * for the transformed result. If the promise cannot be fulfilled, onRejected\n\t\t * is called with the reason. onProgress *may* be called with updates toward\n\t\t * this promise's fulfillment.\n\t\t * @param {function=} onFulfilled fulfillment handler\n\t\t * @param {function=} onRejected rejection handler\n\t\t * @param {function=} onProgress @deprecated progress handler\n\t\t * @return {Promise} new promise\n\t\t */\n\t\tPromise.prototype.then = function(onFulfilled, onRejected, onProgress) {\n\t\t\tvar parent = this._handler;\n\t\t\tvar state = parent.join().state();\n\n\t\t\tif ((typeof onFulfilled !== 'function' && state > 0) ||\n\t\t\t\t(typeof onRejected !== 'function' && state < 0)) {\n\t\t\t\t// Short circuit: value will not change, simply share handler\n\t\t\t\treturn new this.constructor(Handler, parent);\n\t\t\t}\n\n\t\t\tvar p = this._beget();\n\t\t\tvar child = p._handler;\n\n\t\t\tparent.chain(child, parent.receiver, onFulfilled, onRejected, onProgress);\n\n\t\t\treturn p;\n\t\t};\n\n\t\t/**\n\t\t * If this promise cannot be fulfilled due to an error, call onRejected to\n\t\t * handle the error. Shortcut for .then(undefined, onRejected)\n\t\t * @param {function?} onRejected\n\t\t * @return {Promise}\n\t\t */\n\t\tPromise.prototype['catch'] = function(onRejected) {\n\t\t\treturn this.then(void 0, onRejected);\n\t\t};\n\n\t\t/**\n\t\t * Creates a new, pending promise of the same type as this promise\n\t\t * @private\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype._beget = function() {\n\t\t\treturn begetFrom(this._handler, this.constructor);\n\t\t};\n\n\t\tfunction begetFrom(parent, Promise) {\n\t\t\tvar child = new Pending(parent.receiver, parent.join().context);\n\t\t\treturn new Promise(Handler, child);\n\t\t}\n\n\t\t// Array combinators\n\n\t\tPromise.all = all;\n\t\tPromise.race = race;\n\t\tPromise._traverse = traverse;\n\n\t\t/**\n\t\t * Return a promise that will fulfill when all promises in the\n\t\t * input array have fulfilled, or will reject when one of the\n\t\t * promises rejects.\n\t\t * @param {array} promises array of promises\n\t\t * @returns {Promise} promise for array of fulfillment values\n\t\t */\n\t\tfunction all(promises) {\n\t\t\treturn traverseWith(snd, null, promises);\n\t\t}\n\n\t\t/**\n\t\t * Array<Promise<X>> -> Promise<Array<f(X)>>\n\t\t * @private\n\t\t * @param {function} f function to apply to each promise's value\n\t\t * @param {Array} promises array of promises\n\t\t * @returns {Promise} promise for transformed values\n\t\t */\n\t\tfunction traverse(f, promises) {\n\t\t\treturn traverseWith(tryCatch2, f, promises);\n\t\t}\n\n\t\tfunction traverseWith(tryMap, f, promises) {\n\t\t\tvar handler = typeof f === 'function' ? mapAt : settleAt;\n\n\t\t\tvar resolver = new Pending();\n\t\t\tvar pending = promises.length >>> 0;\n\t\t\tvar results = new Array(pending);\n\n\t\t\tfor (var i = 0, x; i < promises.length && !resolver.resolved; ++i) {\n\t\t\t\tx = promises[i];\n\n\t\t\t\tif (x === void 0 && !(i in promises)) {\n\t\t\t\t\t--pending;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\ttraverseAt(promises, handler, i, x, resolver);\n\t\t\t}\n\n\t\t\tif(pending === 0) {\n\t\t\t\tresolver.become(new Fulfilled(results));\n\t\t\t}\n\n\t\t\treturn new Promise(Handler, resolver);\n\n\t\t\tfunction mapAt(i, x, resolver) {\n\t\t\t\tif(!resolver.resolved) {\n\t\t\t\t\ttraverseAt(promises, settleAt, i, tryMap(f, x, i), resolver);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction settleAt(i, x, resolver) {\n\t\t\t\tresults[i] = x;\n\t\t\t\tif(--pending === 0) {\n\t\t\t\t\tresolver.become(new Fulfilled(results));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction traverseAt(promises, handler, i, x, resolver) {\n\t\t\tif (maybeThenable(x)) {\n\t\t\t\tvar h = getHandlerMaybeThenable(x);\n\t\t\t\tvar s = h.state();\n\n\t\t\t\tif (s === 0) {\n\t\t\t\t\th.fold(handler, i, void 0, resolver);\n\t\t\t\t} else if (s > 0) {\n\t\t\t\t\thandler(i, h.value, resolver);\n\t\t\t\t} else {\n\t\t\t\t\tresolver.become(h);\n\t\t\t\t\tvisitRemaining(promises, i+1, h);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thandler(i, x, resolver);\n\t\t\t}\n\t\t}\n\n\t\tPromise._visitRemaining = visitRemaining;\n\t\tfunction visitRemaining(promises, start, handler) {\n\t\t\tfor(var i=start; i<promises.length; ++i) {\n\t\t\t\tmarkAsHandled(getHandler(promises[i]), handler);\n\t\t\t}\n\t\t}\n\n\t\tfunction markAsHandled(h, handler) {\n\t\t\tif(h === handler) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar s = h.state();\n\t\t\tif(s === 0) {\n\t\t\t\th.visit(h, void 0, h._unreport);\n\t\t\t} else if(s < 0) {\n\t\t\t\th._unreport();\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Fulfill-reject competitive race. Return a promise that will settle\n\t\t * to the same state as the earliest input promise to settle.\n\t\t *\n\t\t * WARNING: The ES6 Promise spec requires that race()ing an empty array\n\t\t * must return a promise that is pending forever. This implementation\n\t\t * returns a singleton forever-pending promise, the same singleton that is\n\t\t * returned by Promise.never(), thus can be checked with ===\n\t\t *\n\t\t * @param {array} promises array of promises to race\n\t\t * @returns {Promise} if input is non-empty, a promise that will settle\n\t\t * to the same outcome as the earliest input promise to settle. if empty\n\t\t * is empty, returns a promise that will never settle.\n\t\t */\n\t\tfunction race(promises) {\n\t\t\tif(typeof promises !== 'object' || promises === null) {\n\t\t\t\treturn reject(new TypeError('non-iterable passed to race()'));\n\t\t\t}\n\n\t\t\t// Sigh, race([]) is untestable unless we return *something*\n\t\t\t// that is recognizable without calling .then() on it.\n\t\t\treturn promises.length === 0 ? never()\n\t\t\t\t : promises.length === 1 ? resolve(promises[0])\n\t\t\t\t : runRace(promises);\n\t\t}\n\n\t\tfunction runRace(promises) {\n\t\t\tvar resolver = new Pending();\n\t\t\tvar i, x, h;\n\t\t\tfor(i=0; i<promises.length; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif (x === void 0 && !(i in promises)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\th = getHandler(x);\n\t\t\t\tif(h.state() !== 0) {\n\t\t\t\t\tresolver.become(h);\n\t\t\t\t\tvisitRemaining(promises, i+1, h);\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\th.visit(resolver, resolver.resolve, resolver.reject);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn new Promise(Handler, resolver);\n\t\t}\n\n\t\t// Promise internals\n\t\t// Below this, everything is @private\n\n\t\t/**\n\t\t * Get an appropriate handler for x, without checking for cycles\n\t\t * @param {*} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandler(x) {\n\t\t\tif(isPromise(x)) {\n\t\t\t\treturn x._handler.join();\n\t\t\t}\n\t\t\treturn maybeThenable(x) ? getHandlerUntrusted(x) : new Fulfilled(x);\n\t\t}\n\n\t\t/**\n\t\t * Get a handler for thenable x.\n\t\t * NOTE: You must only call this if maybeThenable(x) == true\n\t\t * @param {object|function|Promise} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandlerMaybeThenable(x) {\n\t\t\treturn isPromise(x) ? x._handler.join() : getHandlerUntrusted(x);\n\t\t}\n\n\t\t/**\n\t\t * Get a handler for potentially untrusted thenable x\n\t\t * @param {*} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandlerUntrusted(x) {\n\t\t\ttry {\n\t\t\t\tvar untrustedThen = x.then;\n\t\t\t\treturn typeof untrustedThen === 'function'\n\t\t\t\t\t? new Thenable(untrustedThen, x)\n\t\t\t\t\t: new Fulfilled(x);\n\t\t\t} catch(e) {\n\t\t\t\treturn new Rejected(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Handler for a promise that is pending forever\n\t\t * @constructor\n\t\t */\n\t\tfunction Handler() {}\n\n\t\tHandler.prototype.when\n\t\t\t= Handler.prototype.become\n\t\t\t= Handler.prototype.notify // deprecated\n\t\t\t= Handler.prototype.fail\n\t\t\t= Handler.prototype._unreport\n\t\t\t= Handler.prototype._report\n\t\t\t= noop;\n\n\t\tHandler.prototype._state = 0;\n\n\t\tHandler.prototype.state = function() {\n\t\t\treturn this._state;\n\t\t};\n\n\t\t/**\n\t\t * Recursively collapse handler chain to find the handler\n\t\t * nearest to the fully resolved value.\n\t\t * @returns {object} handler nearest the fully resolved value\n\t\t */\n\t\tHandler.prototype.join = function() {\n\t\t\tvar h = this;\n\t\t\twhile(h.handler !== void 0) {\n\t\t\t\th = h.handler;\n\t\t\t}\n\t\t\treturn h;\n\t\t};\n\n\t\tHandler.prototype.chain = function(to, receiver, fulfilled, rejected, progress) {\n\t\t\tthis.when({\n\t\t\t\tresolver: to,\n\t\t\t\treceiver: receiver,\n\t\t\t\tfulfilled: fulfilled,\n\t\t\t\trejected: rejected,\n\t\t\t\tprogress: progress\n\t\t\t});\n\t\t};\n\n\t\tHandler.prototype.visit = function(receiver, fulfilled, rejected, progress) {\n\t\t\tthis.chain(failIfRejected, receiver, fulfilled, rejected, progress);\n\t\t};\n\n\t\tHandler.prototype.fold = function(f, z, c, to) {\n\t\t\tthis.when(new Fold(f, z, c, to));\n\t\t};\n\n\t\t/**\n\t\t * Handler that invokes fail() on any handler it becomes\n\t\t * @constructor\n\t\t */\n\t\tfunction FailIfRejected() {}\n\n\t\tinherit(Handler, FailIfRejected);\n\n\t\tFailIfRejected.prototype.become = function(h) {\n\t\t\th.fail();\n\t\t};\n\n\t\tvar failIfRejected = new FailIfRejected();\n\n\t\t/**\n\t\t * Handler that manages a queue of consumers waiting on a pending promise\n\t\t * @constructor\n\t\t */\n\t\tfunction Pending(receiver, inheritedContext) {\n\t\t\tPromise.createContext(this, inheritedContext);\n\n\t\t\tthis.consumers = void 0;\n\t\t\tthis.receiver = receiver;\n\t\t\tthis.handler = void 0;\n\t\t\tthis.resolved = false;\n\t\t}\n\n\t\tinherit(Handler, Pending);\n\n\t\tPending.prototype._state = 0;\n\n\t\tPending.prototype.resolve = function(x) {\n\t\t\tthis.become(getHandler(x));\n\t\t};\n\n\t\tPending.prototype.reject = function(x) {\n\t\t\tif(this.resolved) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.become(new Rejected(x));\n\t\t};\n\n\t\tPending.prototype.join = function() {\n\t\t\tif (!this.resolved) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tvar h = this;\n\n\t\t\twhile (h.handler !== void 0) {\n\t\t\t\th = h.handler;\n\t\t\t\tif (h === this) {\n\t\t\t\t\treturn this.handler = cycle();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn h;\n\t\t};\n\n\t\tPending.prototype.run = function() {\n\t\t\tvar q = this.consumers;\n\t\t\tvar handler = this.handler;\n\t\t\tthis.handler = this.handler.join();\n\t\t\tthis.consumers = void 0;\n\n\t\t\tfor (var i = 0; i < q.length; ++i) {\n\t\t\t\thandler.when(q[i]);\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.become = function(handler) {\n\t\t\tif(this.resolved) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.resolved = true;\n\t\t\tthis.handler = handler;\n\t\t\tif(this.consumers !== void 0) {\n\t\t\t\ttasks.enqueue(this);\n\t\t\t}\n\n\t\t\tif(this.context !== void 0) {\n\t\t\t\thandler._report(this.context);\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.when = function(continuation) {\n\t\t\tif(this.resolved) {\n\t\t\t\ttasks.enqueue(new ContinuationTask(continuation, this.handler));\n\t\t\t} else {\n\t\t\t\tif(this.consumers === void 0) {\n\t\t\t\t\tthis.consumers = [continuation];\n\t\t\t\t} else {\n\t\t\t\t\tthis.consumers.push(continuation);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * @deprecated\n\t\t */\n\t\tPending.prototype.notify = function(x) {\n\t\t\tif(!this.resolved) {\n\t\t\t\ttasks.enqueue(new ProgressTask(x, this));\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.fail = function(context) {\n\t\t\tvar c = typeof context === 'undefined' ? this.context : context;\n\t\t\tthis.resolved && this.handler.join().fail(c);\n\t\t};\n\n\t\tPending.prototype._report = function(context) {\n\t\t\tthis.resolved && this.handler.join()._report(context);\n\t\t};\n\n\t\tPending.prototype._unreport = function() {\n\t\t\tthis.resolved && this.handler.join()._unreport();\n\t\t};\n\n\t\t/**\n\t\t * Wrap another handler and force it into a future stack\n\t\t * @param {object} handler\n\t\t * @constructor\n\t\t */\n\t\tfunction Async(handler) {\n\t\t\tthis.handler = handler;\n\t\t}\n\n\t\tinherit(Handler, Async);\n\n\t\tAsync.prototype.when = function(continuation) {\n\t\t\ttasks.enqueue(new ContinuationTask(continuation, this));\n\t\t};\n\n\t\tAsync.prototype._report = function(context) {\n\t\t\tthis.join()._report(context);\n\t\t};\n\n\t\tAsync.prototype._unreport = function() {\n\t\t\tthis.join()._unreport();\n\t\t};\n\n\t\t/**\n\t\t * Handler that wraps an untrusted thenable and assimilates it in a future stack\n\t\t * @param {function} then\n\t\t * @param {{then: function}} thenable\n\t\t * @constructor\n\t\t */\n\t\tfunction Thenable(then, thenable) {\n\t\t\tPending.call(this);\n\t\t\ttasks.enqueue(new AssimilateTask(then, thenable, this));\n\t\t}\n\n\t\tinherit(Pending, Thenable);\n\n\t\t/**\n\t\t * Handler for a fulfilled promise\n\t\t * @param {*} x fulfillment value\n\t\t * @constructor\n\t\t */\n\t\tfunction Fulfilled(x) {\n\t\t\tPromise.createContext(this);\n\t\t\tthis.value = x;\n\t\t}\n\n\t\tinherit(Handler, Fulfilled);\n\n\t\tFulfilled.prototype._state = 1;\n\n\t\tFulfilled.prototype.fold = function(f, z, c, to) {\n\t\t\trunContinuation3(f, z, this, c, to);\n\t\t};\n\n\t\tFulfilled.prototype.when = function(cont) {\n\t\t\trunContinuation1(cont.fulfilled, this, cont.receiver, cont.resolver);\n\t\t};\n\n\t\tvar errorId = 0;\n\n\t\t/**\n\t\t * Handler for a rejected promise\n\t\t * @param {*} x rejection reason\n\t\t * @constructor\n\t\t */\n\t\tfunction Rejected(x) {\n\t\t\tPromise.createContext(this);\n\n\t\t\tthis.id = ++errorId;\n\t\t\tthis.value = x;\n\t\t\tthis.handled = false;\n\t\t\tthis.reported = false;\n\n\t\t\tthis._report();\n\t\t}\n\n\t\tinherit(Handler, Rejected);\n\n\t\tRejected.prototype._state = -1;\n\n\t\tRejected.prototype.fold = function(f, z, c, to) {\n\t\t\tto.become(this);\n\t\t};\n\n\t\tRejected.prototype.when = function(cont) {\n\t\t\tif(typeof cont.rejected === 'function') {\n\t\t\t\tthis._unreport();\n\t\t\t}\n\t\t\trunContinuation1(cont.rejected, this, cont.receiver, cont.resolver);\n\t\t};\n\n\t\tRejected.prototype._report = function(context) {\n\t\t\ttasks.afterQueue(new ReportTask(this, context));\n\t\t};\n\n\t\tRejected.prototype._unreport = function() {\n\t\t\tif(this.handled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.handled = true;\n\t\t\ttasks.afterQueue(new UnreportTask(this));\n\t\t};\n\n\t\tRejected.prototype.fail = function(context) {\n\t\t\tthis.reported = true;\n\t\t\temitRejection('unhandledRejection', this);\n\t\t\tPromise.onFatalRejection(this, context === void 0 ? this.context : context);\n\t\t};\n\n\t\tfunction ReportTask(rejection, context) {\n\t\t\tthis.rejection = rejection;\n\t\t\tthis.context = context;\n\t\t}\n\n\t\tReportTask.prototype.run = function() {\n\t\t\tif(!this.rejection.handled && !this.rejection.reported) {\n\t\t\t\tthis.rejection.reported = true;\n\t\t\t\temitRejection('unhandledRejection', this.rejection) ||\n\t\t\t\t\tPromise.onPotentiallyUnhandledRejection(this.rejection, this.context);\n\t\t\t}\n\t\t};\n\n\t\tfunction UnreportTask(rejection) {\n\t\t\tthis.rejection = rejection;\n\t\t}\n\n\t\tUnreportTask.prototype.run = function() {\n\t\t\tif(this.rejection.reported) {\n\t\t\t\temitRejection('rejectionHandled', this.rejection) ||\n\t\t\t\t\tPromise.onPotentiallyUnhandledRejectionHandled(this.rejection);\n\t\t\t}\n\t\t};\n\n\t\t// Unhandled rejection hooks\n\t\t// By default, everything is a noop\n\n\t\tPromise.createContext\n\t\t\t= Promise.enterContext\n\t\t\t= Promise.exitContext\n\t\t\t= Promise.onPotentiallyUnhandledRejection\n\t\t\t= Promise.onPotentiallyUnhandledRejectionHandled\n\t\t\t= Promise.onFatalRejection\n\t\t\t= noop;\n\n\t\t// Errors and singletons\n\n\t\tvar foreverPendingHandler = new Handler();\n\t\tvar foreverPendingPromise = new Promise(Handler, foreverPendingHandler);\n\n\t\tfunction cycle() {\n\t\t\treturn new Rejected(new TypeError('Promise cycle'));\n\t\t}\n\n\t\t// Task runners\n\n\t\t/**\n\t\t * Run a single consumer\n\t\t * @constructor\n\t\t */\n\t\tfunction ContinuationTask(continuation, handler) {\n\t\t\tthis.continuation = continuation;\n\t\t\tthis.handler = handler;\n\t\t}\n\n\t\tContinuationTask.prototype.run = function() {\n\t\t\tthis.handler.join().when(this.continuation);\n\t\t};\n\n\t\t/**\n\t\t * Run a queue of progress handlers\n\t\t * @constructor\n\t\t */\n\t\tfunction ProgressTask(value, handler) {\n\t\t\tthis.handler = handler;\n\t\t\tthis.value = value;\n\t\t}\n\n\t\tProgressTask.prototype.run = function() {\n\t\t\tvar q = this.handler.consumers;\n\t\t\tif(q === void 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var c, i = 0; i < q.length; ++i) {\n\t\t\t\tc = q[i];\n\t\t\t\trunNotify(c.progress, this.value, this.handler, c.receiver, c.resolver);\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Assimilate a thenable, sending it's value to resolver\n\t\t * @param {function} then\n\t\t * @param {object|function} thenable\n\t\t * @param {object} resolver\n\t\t * @constructor\n\t\t */\n\t\tfunction AssimilateTask(then, thenable, resolver) {\n\t\t\tthis._then = then;\n\t\t\tthis.thenable = thenable;\n\t\t\tthis.resolver = resolver;\n\t\t}\n\n\t\tAssimilateTask.prototype.run = function() {\n\t\t\tvar h = this.resolver;\n\t\t\ttryAssimilate(this._then, this.thenable, _resolve, _reject, _notify);\n\n\t\t\tfunction _resolve(x) { h.resolve(x); }\n\t\t\tfunction _reject(x) { h.reject(x); }\n\t\t\tfunction _notify(x) { h.notify(x); }\n\t\t};\n\n\t\tfunction tryAssimilate(then, thenable, resolve, reject, notify) {\n\t\t\ttry {\n\t\t\t\tthen.call(thenable, resolve, reject, notify);\n\t\t\t} catch (e) {\n\t\t\t\treject(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Fold a handler value with z\n\t\t * @constructor\n\t\t */\n\t\tfunction Fold(f, z, c, to) {\n\t\t\tthis.f = f; this.z = z; this.c = c; this.to = to;\n\t\t\tthis.resolver = failIfRejected;\n\t\t\tthis.receiver = this;\n\t\t}\n\n\t\tFold.prototype.fulfilled = function(x) {\n\t\t\tthis.f.call(this.c, this.z, x, this.to);\n\t\t};\n\n\t\tFold.prototype.rejected = function(x) {\n\t\t\tthis.to.reject(x);\n\t\t};\n\n\t\tFold.prototype.progress = function(x) {\n\t\t\tthis.to.notify(x);\n\t\t};\n\n\t\t// Other helpers\n\n\t\t/**\n\t\t * @param {*} x\n\t\t * @returns {boolean} true iff x is a trusted Promise\n\t\t */\n\t\tfunction isPromise(x) {\n\t\t\treturn x instanceof Promise;\n\t\t}\n\n\t\t/**\n\t\t * Test just enough to rule out primitives, in order to take faster\n\t\t * paths in some code\n\t\t * @param {*} x\n\t\t * @returns {boolean} false iff x is guaranteed *not* to be a thenable\n\t\t */\n\t\tfunction maybeThenable(x) {\n\t\t\treturn (typeof x === 'object' || typeof x === 'function') && x !== null;\n\t\t}\n\n\t\tfunction runContinuation1(f, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.become(h);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReject(f, h.value, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\tfunction runContinuation3(f, x, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.become(h);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReject3(f, x, h.value, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\t/**\n\t\t * @deprecated\n\t\t */\n\t\tfunction runNotify(f, x, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.notify(x);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReturn(f, x, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\tfunction tryCatch2(f, a, b) {\n\t\t\ttry {\n\t\t\t\treturn f(a, b);\n\t\t\t} catch(e) {\n\t\t\t\treturn reject(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Return f.call(thisArg, x), or if it throws return a rejected promise for\n\t\t * the thrown exception\n\t\t */\n\t\tfunction tryCatchReject(f, x, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tnext.become(getHandler(f.call(thisArg, x)));\n\t\t\t} catch(e) {\n\t\t\t\tnext.become(new Rejected(e));\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Same as above, but includes the extra argument parameter.\n\t\t */\n\t\tfunction tryCatchReject3(f, x, y, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tf.call(thisArg, x, y, next);\n\t\t\t} catch(e) {\n\t\t\t\tnext.become(new Rejected(e));\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * @deprecated\n\t\t * Return f.call(thisArg, x), or if it throws, *return* the exception\n\t\t */\n\t\tfunction tryCatchReturn(f, x, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tnext.notify(f.call(thisArg, x));\n\t\t\t} catch(e) {\n\t\t\t\tnext.notify(e);\n\t\t\t}\n\t\t}\n\n\t\tfunction inherit(Parent, Child) {\n\t\t\tChild.prototype = objectCreate(Parent.prototype);\n\t\t\tChild.prototype.constructor = Child;\n\t\t}\n\n\t\tfunction snd(x, y) {\n\t\t\treturn y;\n\t\t}\n\n\t\tfunction noop() {}\n\n\t\tfunction hasCustomEvent() {\n\t\t\tif(typeof CustomEvent === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\tvar ev = new CustomEvent('unhandledRejection');\n\t\t\t\t\treturn ev instanceof CustomEvent;\n\t\t\t\t} catch (ignoredException) {}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction hasInternetExplorerCustomEvent() {\n\t\t\tif(typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\t// Try to create one event to make sure it's supported\n\t\t\t\t\tvar ev = document.createEvent('CustomEvent');\n\t\t\t\t\tev.initCustomEvent('eventType', false, true, {});\n\t\t\t\t\treturn true;\n\t\t\t\t} catch (ignoredException) {}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction initEmitRejection() {\n\t\t\t/*global process, self, CustomEvent*/\n\t\t\tif(typeof process !== 'undefined' && process !== null\n\t\t\t\t&& typeof process.emit === 'function') {\n\t\t\t\t// Returning falsy here means to call the default\n\t\t\t\t// onPotentiallyUnhandledRejection API. This is safe even in\n\t\t\t\t// browserify since process.emit always returns falsy in browserify:\n\t\t\t\t// https://github.com/defunctzombie/node-process/blob/master/browser.js#L40-L46\n\t\t\t\treturn function(type, rejection) {\n\t\t\t\t\treturn type === 'unhandledRejection'\n\t\t\t\t\t\t? process.emit(type, rejection.value, rejection)\n\t\t\t\t\t\t: process.emit(type, rejection);\n\t\t\t\t};\n\t\t\t} else if(typeof self !== 'undefined' && hasCustomEvent()) {\n\t\t\t\treturn (function (self, CustomEvent) {\n\t\t\t\t\treturn function (type, rejection) {\n\t\t\t\t\t\tvar ev = new CustomEvent(type, {\n\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\treason: rejection.value,\n\t\t\t\t\t\t\t\tkey: rejection\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbubbles: false,\n\t\t\t\t\t\t\tcancelable: true\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn !self.dispatchEvent(ev);\n\t\t\t\t\t};\n\t\t\t\t}(self, CustomEvent));\n\t\t\t} else if(typeof self !== 'undefined' && hasInternetExplorerCustomEvent()) {\n\t\t\t\treturn (function(self, document) {\n\t\t\t\t\treturn function(type, rejection) {\n\t\t\t\t\t\tvar ev = document.createEvent('CustomEvent');\n\t\t\t\t\t\tev.initCustomEvent(type, false, true, {\n\t\t\t\t\t\t\treason: rejection.value,\n\t\t\t\t\t\t\tkey: rejection\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn !self.dispatchEvent(ev);\n\t\t\t\t\t};\n\t\t\t\t}(self, document));\n\t\t\t}\n\n\t\t\treturn noop;\n\t\t}\n\n\t\treturn Promise;\n\t};\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn {\n\t\tpending: toPendingState,\n\t\tfulfilled: toFulfilledState,\n\t\trejected: toRejectedState,\n\t\tinspect: inspect\n\t};\n\n\tfunction toPendingState() {\n\t\treturn { state: 'pending' };\n\t}\n\n\tfunction toRejectedState(e) {\n\t\treturn { state: 'rejected', reason: e };\n\t}\n\n\tfunction toFulfilledState(x) {\n\t\treturn { state: 'fulfilled', value: x };\n\t}\n\n\tfunction inspect(handler) {\n\t\tvar state = handler.state();\n\t\treturn state === 0 ? toPendingState()\n\t\t\t : state > 0 ? toFulfilledState(handler.value)\n\t\t\t : toRejectedState(handler.value);\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar PromiseMonitor = require('./monitor/PromiseMonitor');\n\tvar ConsoleReporter = require('./monitor/ConsoleReporter');\n\n\tvar promiseMonitor = new PromiseMonitor(new ConsoleReporter());\n\n\treturn function(Promise) {\n\t\treturn promiseMonitor.monitor(Promise);\n\t};\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar error = require('./error');\n\tvar unhandledRejectionsMsg = '[promises] Unhandled rejections: ';\n\tvar allHandledMsg = '[promises] All previously unhandled rejections have now been handled';\n\n\tfunction ConsoleReporter() {\n\t\tthis._previouslyReported = false;\n\t}\n\n\tConsoleReporter.prototype = initDefaultLogging();\n\n\tConsoleReporter.prototype.log = function(traces) {\n\t\tif(traces.length === 0) {\n\t\t\tif(this._previouslyReported) {\n\t\t\t\tthis._previouslyReported = false;\n\t\t\t\tthis.msg(allHandledMsg);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tthis._previouslyReported = true;\n\t\tthis.groupStart(unhandledRejectionsMsg + traces.length);\n\t\ttry {\n\t\t\tthis._log(traces);\n\t\t} finally {\n\t\t\tthis.groupEnd();\n\t\t}\n\t};\n\n\tConsoleReporter.prototype._log = function(traces) {\n\t\tfor(var i=0; i<traces.length; ++i) {\n\t\t\tthis.warn(error.format(traces[i]));\n\t\t}\n\t};\n\n\tfunction initDefaultLogging() {\n\t\t/*jshint maxcomplexity:7*/\n\t\tvar log, warn, groupStart, groupEnd;\n\n\t\tif(typeof console === 'undefined') {\n\t\t\tlog = warn = consoleNotAvailable;\n\t\t} else {\n\t\t\t// Alias console to prevent things like uglify's drop_console option from\n\t\t\t// removing console.log/error. Unhandled rejections fall into the same\n\t\t\t// category as uncaught exceptions, and build tools shouldn't silence them.\n\t\t\tvar localConsole = console;\n\t\t\tif(typeof localConsole.error === 'function'\n\t\t\t\t&& typeof localConsole.dir === 'function') {\n\t\t\t\twarn = function(s) {\n\t\t\t\t\tlocalConsole.error(s);\n\t\t\t\t};\n\n\t\t\t\tlog = function(s) {\n\t\t\t\t\tlocalConsole.log(s);\n\t\t\t\t};\n\n\t\t\t\tif(typeof localConsole.groupCollapsed === 'function') {\n\t\t\t\t\tgroupStart = function(s) {\n\t\t\t\t\t\tlocalConsole.groupCollapsed(s);\n\t\t\t\t\t};\n\t\t\t\t\tgroupEnd = function() {\n\t\t\t\t\t\tlocalConsole.groupEnd();\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// IE8 has console.log and JSON, so we can make a\n\t\t\t\t// reasonably useful warn() from those.\n\t\t\t\t// Credit to webpro (https://github.com/webpro) for this idea\n\t\t\t\t// typeof localConsole.log will return 'object' in IE8, so can't test it with === 'function'\n\t\t\t\t// Since this is more of a corner case for IE8, I'm ok to check it with !== 'undefined' to reduce complexity\n\t\t\t\tif (typeof localConsole.log !== 'undefined' && typeof JSON !== 'undefined') {\n\t\t\t\t\tlog = warn = function(x) {\n\t\t\t\t\t\tif (typeof x !== 'string') {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tx = JSON.stringify(x);\n\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlocalConsole.log(x);\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tlog = warn = consoleNotAvailable;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tmsg: log,\n\t\t\twarn: warn,\n\t\t\tgroupStart: groupStart || warn,\n\t\t\tgroupEnd: groupEnd || consoleNotAvailable\n\t\t};\n\t}\n\n\tfunction consoleNotAvailable() {}\n\n\treturn ConsoleReporter;\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar defaultStackJumpSeparator = 'from execution context:';\n\tvar defaultStackFilter = /[\\s\\(\\/\\\\](node|module|timers)\\.js:|when([\\/\\\\]{1,2}(lib|monitor|es6-shim)[\\/\\\\]{1,2}|\\.js)|(new\\sPromise)\\b|(\\b(PromiseMonitor|ConsoleReporter|Scheduler|RunHandlerTask|ProgressTask|Promise|.*Handler)\\.[\\w_]\\w\\w+\\b)|\\b(tryCatch\\w+|getHandler\\w*)\\b/i;\n\n\tvar setTimer = require('../lib/env').setTimer;\n\tvar error = require('./error');\n\n\tvar executionContext = [];\n\n\tfunction PromiseMonitor(reporter) {\n\t\tthis.logDelay = 0;\n\t\tthis.stackFilter = defaultStackFilter;\n\t\tthis.stackJumpSeparator = defaultStackJumpSeparator;\n\t\tthis.filterDuplicateFrames = true;\n\n\t\tthis._reporter = reporter;\n\t\tif(typeof reporter.configurePromiseMonitor === 'function') {\n\t\t\treporter.configurePromiseMonitor(this);\n\t\t}\n\n\t\tthis._traces = [];\n\t\tthis._traceTask = 0;\n\n\t\tvar self = this;\n\t\tthis._doLogTraces = function() {\n\t\t\tself._logTraces();\n\t\t};\n\t}\n\n\tPromiseMonitor.prototype.monitor = function(Promise) {\n\t\tvar self = this;\n\t\tPromise.createContext = function(p, context) {\n\t\t\tp.context = self.createContext(p, context);\n\t\t};\n\n\t\tPromise.enterContext = function(p) {\n\t\t\texecutionContext.push(p.context);\n\t\t};\n\n\t\tPromise.exitContext = function() {\n\t\t\texecutionContext.pop();\n\t\t};\n\n\t\tPromise.onPotentiallyUnhandledRejection = function(rejection, extraContext) {\n\t\t\treturn self.addTrace(rejection, extraContext);\n\t\t};\n\n\t\tPromise.onPotentiallyUnhandledRejectionHandled = function(rejection) {\n\t\t\treturn self.removeTrace(rejection);\n\t\t};\n\n\t\tPromise.onFatalRejection = function(rejection, extraContext) {\n\t\t\treturn self.fatal(rejection, extraContext);\n\t\t};\n\n\t\treturn this;\n\t};\n\n\tPromiseMonitor.prototype.createContext = function(at, parentContext) {\n\t\tvar context = {\n\t\t\tparent: parentContext || executionContext[executionContext.length - 1],\n\t\t\tstack: void 0\n\t\t};\n\t\terror.captureStack(context, at.constructor);\n\t\treturn context;\n\t};\n\n\tPromiseMonitor.prototype.addTrace = function(handler, extraContext) {\n\t\tvar t, i;\n\n\t\tfor(i = this._traces.length-1; i >= 0; --i) {\n\t\t\tt = this._traces[i];\n\t\t\tif(t.handler === handler) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif(i >= 0) {\n\t\t\tt.extraContext = extraContext;\n\t\t} else {\n\t\t\tthis._traces.push({\n\t\t\t\thandler: handler,\n\t\t\t\textraContext: extraContext\n\t\t\t});\n\t\t}\n\n\t\tthis.logTraces();\n\t};\n\n\tPromiseMonitor.prototype.removeTrace = function(/*handler*/) {\n\t\tthis.logTraces();\n\t};\n\n\tPromiseMonitor.prototype.fatal = function(handler, extraContext) {\n\t\tvar err = new Error();\n\t\terr.stack = this._createLongTrace(handler.value, handler.context, extraContext).join('\\n');\n\t\tsetTimer(function() {\n\t\t\tthrow err;\n\t\t}, 0);\n\t};\n\n\tPromiseMonitor.prototype.logTraces = function() {\n\t\tif(!this._traceTask) {\n\t\t\tthis._traceTask = setTimer(this._doLogTraces, this.logDelay);\n\t\t}\n\t};\n\n\tPromiseMonitor.prototype._logTraces = function() {\n\t\tthis._traceTask = void 0;\n\t\tthis._traces = this._traces.filter(filterHandled);\n\t\tthis._reporter.log(this.formatTraces(this._traces));\n\t};\n\n\n\tPromiseMonitor.prototype.formatTraces = function(traces) {\n\t\treturn traces.map(function(t) {\n\t\t\treturn this._createLongTrace(t.handler.value, t.handler.context, t.extraContext);\n\t\t}, this);\n\t};\n\n\tPromiseMonitor.prototype._createLongTrace = function(e, context, extraContext) {\n\t\tvar trace = error.parse(e) || [String(e) + ' (WARNING: non-Error used)'];\n\t\ttrace = filterFrames(this.stackFilter, trace, 0);\n\t\tthis._appendContext(trace, context);\n\t\tthis._appendContext(trace, extraContext);\n\t\treturn this.filterDuplicateFrames ? this._removeDuplicates(trace) : trace;\n\t};\n\n\tPromiseMonitor.prototype._removeDuplicates = function(trace) {\n\t\tvar seen = {};\n\t\tvar sep = this.stackJumpSeparator;\n\t\tvar count = 0;\n\t\treturn trace.reduceRight(function(deduped, line, i) {\n\t\t\tif(i === 0) {\n\t\t\t\tdeduped.unshift(line);\n\t\t\t} else if(line === sep) {\n\t\t\t\tif(count > 0) {\n\t\t\t\t\tdeduped.unshift(line);\n\t\t\t\t\tcount = 0;\n\t\t\t\t}\n\t\t\t} else if(!seen[line]) {\n\t\t\t\tseen[line] = true;\n\t\t\t\tdeduped.unshift(line);\n\t\t\t\t++count;\n\t\t\t}\n\t\t\treturn deduped;\n\t\t}, []);\n\t};\n\n\tPromiseMonitor.prototype._appendContext = function(trace, context) {\n\t\ttrace.push.apply(trace, this._createTrace(context));\n\t};\n\n\tPromiseMonitor.prototype._createTrace = function(traceChain) {\n\t\tvar trace = [];\n\t\tvar stack;\n\n\t\twhile(traceChain) {\n\t\t\tstack = error.parse(traceChain);\n\n\t\t\tif (stack) {\n\t\t\t\tstack = filterFrames(this.stackFilter, stack);\n\t\t\t\tappendStack(trace, stack, this.stackJumpSeparator);\n\t\t\t}\n\n\t\t\ttraceChain = traceChain.parent;\n\t\t}\n\n\t\treturn trace;\n\t};\n\n\tfunction appendStack(trace, stack, separator) {\n\t\tif (stack.length > 1) {\n\t\t\tstack[0] = separator;\n\t\t\ttrace.push.apply(trace, stack);\n\t\t}\n\t}\n\n\tfunction filterFrames(stackFilter, stack) {\n\t\treturn stack.filter(function(frame) {\n\t\t\treturn !stackFilter.test(frame);\n\t\t});\n\t}\n\n\tfunction filterHandled(t) {\n\t\treturn !t.handler.handled;\n\t}\n\n\treturn PromiseMonitor;\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar monitor = require('../monitor');\n\tvar Promise = require('../when').Promise;\n\n\treturn monitor(Promise);\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\tvar parse, captureStack, format;\n\n\tif(Error.captureStackTrace) {\n\t\t// Use Error.captureStackTrace if available\n\t\tparse = function(e) {\n\t\t\treturn e && e.stack && e.stack.split('\\n');\n\t\t};\n\n\t\tformat = formatAsString;\n\t\tcaptureStack = Error.captureStackTrace;\n\n\t} else {\n\t\t// Otherwise, do minimal feature detection to determine\n\t\t// how to capture and format reasonable stacks.\n\t\tparse = function(e) {\n\t\t\tvar stack = e && e.stack && e.stack.split('\\n');\n\t\t\tif(stack && e.message) {\n\t\t\t\tstack.unshift(e.message);\n\t\t\t}\n\t\t\treturn stack;\n\t\t};\n\n\t\t(function() {\n\t\t\tvar e = new Error();\n\t\t\tif(typeof e.stack !== 'string') {\n\t\t\t\tformat = formatAsString;\n\t\t\t\tcaptureStack = captureSpiderMonkeyStack;\n\t\t\t} else {\n\t\t\t\tformat = formatAsErrorWithStack;\n\t\t\t\tcaptureStack = useStackDirectly;\n\t\t\t}\n\t\t}());\n\t}\n\n\tfunction captureSpiderMonkeyStack(host) {\n\t\ttry {\n\t\t\tthrow new Error();\n\t\t} catch(err) {\n\t\t\thost.stack = err.stack;\n\t\t}\n\t}\n\n\tfunction useStackDirectly(host) {\n\t\thost.stack = new Error().stack;\n\t}\n\n\tfunction formatAsString(longTrace) {\n\t\treturn join(longTrace);\n\t}\n\n\tfunction formatAsErrorWithStack(longTrace) {\n\t\tvar e = new Error();\n\t\te.stack = formatAsString(longTrace);\n\t\treturn e;\n\t}\n\n\t// About 5-10x faster than String.prototype.join o_O\n\tfunction join(a) {\n\t\tvar sep = false;\n\t\tvar s = '';\n\t\tfor(var i=0; i< a.length; ++i) {\n\t\t\tif(sep) {\n\t\t\t\ts += '\\n' + a[i];\n\t\t\t} else {\n\t\t\t\ts+= a[i];\n\t\t\t\tsep = true;\n\t\t\t}\n\t\t}\n\t\treturn s;\n\t}\n\n\treturn {\n\t\tparse: parse,\n\t\tformat: format,\n\t\tcaptureStack: captureStack\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2013 original author or authors */\n\n/**\n * Collection of helpers for interfacing with node-style asynchronous functions\n * using promises.\n *\n * @author Brian Cavalier\n * @contributor Renato Zannon\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar _liftAll = require('./lib/liftAll');\n\tvar setTimer = require('./lib/env').setTimer;\n\tvar slice = Array.prototype.slice;\n\n\tvar _apply = require('./lib/apply')(when.Promise, dispatch);\n\n\treturn {\n\t\tlift: lift,\n\t\tliftAll: liftAll,\n\t\tapply: apply,\n\t\tcall: call,\n\t\tcreateCallback: createCallback,\n\t\tbindCallback: bindCallback,\n\t\tliftCallback: liftCallback\n\t};\n\n\t/**\n\t * Takes a node-style async function and calls it immediately (with an optional\n\t * array of arguments or promises for arguments). It returns a promise whose\n\t * resolution depends on whether the async functions calls its callback with the\n\t * conventional error argument or not.\n\t *\n\t * With this it becomes possible to leverage existing APIs while still reaping\n\t * the benefits of promises.\n\t *\n\t * @example\n\t * function onlySmallNumbers(n, callback) {\n\t *\t\tif(n < 10) {\n\t *\t\t\tcallback(null, n + 10);\n\t *\t\t} else {\n\t *\t\t\tcallback(new Error(\"Calculation failed\"));\n\t *\t\t}\n\t *\t}\n\t *\n\t * var nodefn = require(\"when/node/function\");\n\t *\n\t * // Logs '15'\n\t * nodefn.apply(onlySmallNumbers, [5]).then(console.log, console.error);\n\t *\n\t * // Logs 'Calculation failed'\n\t * nodefn.apply(onlySmallNumbers, [15]).then(console.log, console.error);\n\t *\n\t * @param {function} f node-style function that will be called\n\t * @param {Array} [args] array of arguments to func\n\t * @returns {Promise} promise for the value func passes to its callback\n\t */\n\tfunction apply(f, args) {\n\t\treturn _apply(f, this, args || []);\n\t}\n\n\tfunction dispatch(f, thisArg, args, h) {\n\t\tvar cb = createCallback(h);\n\t\ttry {\n\t\t\tswitch(args.length) {\n\t\t\t\tcase 2: f.call(thisArg, args[0], args[1], cb); break;\n\t\t\t\tcase 1: f.call(thisArg, args[0], cb); break;\n\t\t\t\tcase 0: f.call(thisArg, cb); break;\n\t\t\t\tdefault:\n\t\t\t\t\targs.push(cb);\n\t\t\t\t\tf.apply(thisArg, args);\n\t\t\t}\n\t\t} catch(e) {\n\t\t\th.reject(e);\n\t\t}\n\t}\n\n\t/**\n\t * Has the same behavior that {@link apply} has, with the difference that the\n\t * arguments to the function are provided individually, while {@link apply} accepts\n\t * a single array.\n\t *\n\t * @example\n\t * function sumSmallNumbers(x, y, callback) {\n\t *\t\tvar result = x + y;\n\t *\t\tif(result < 10) {\n\t *\t\t\tcallback(null, result);\n\t *\t\t} else {\n\t *\t\t\tcallback(new Error(\"Calculation failed\"));\n\t *\t\t}\n\t *\t}\n\t *\n\t * // Logs '5'\n\t * nodefn.call(sumSmallNumbers, 2, 3).then(console.log, console.error);\n\t *\n\t * // Logs 'Calculation failed'\n\t * nodefn.call(sumSmallNumbers, 5, 10).then(console.log, console.error);\n\t *\n\t * @param {function} f node-style function that will be called\n\t * @param {...*} [args] arguments that will be forwarded to the function\n\t * @returns {Promise} promise for the value func passes to its callback\n\t */\n\tfunction call(f /*, args... */) {\n\t\treturn _apply(f, this, slice.call(arguments, 1));\n\t}\n\n\t/**\n\t * Takes a node-style function and returns new function that wraps the\n\t * original and, instead of taking a callback, returns a promise. Also, it\n\t * knows how to handle promises given as arguments, waiting for their\n\t * resolution before executing.\n\t *\n\t * Upon execution, the orginal function is executed as well. If it passes\n\t * a truthy value as the first argument to the callback, it will be\n\t * interpreted as an error condition, and the promise will be rejected\n\t * with it. Otherwise, the call is considered a resolution, and the promise\n\t * is resolved with the callback's second argument.\n\t *\n\t * @example\n\t * var fs = require(\"fs\"), nodefn = require(\"when/node/function\");\n\t *\n\t * var promiseRead = nodefn.lift(fs.readFile);\n\t *\n\t * // The promise is resolved with the contents of the file if everything\n\t * // goes ok\n\t * promiseRead('exists.txt').then(console.log, console.error);\n\t *\n\t * // And will be rejected if something doesn't work out\n\t * // (e.g. the files does not exist)\n\t * promiseRead('doesnt_exist.txt').then(console.log, console.error);\n\t *\n\t *\n\t * @param {Function} f node-style function to be lifted\n\t * @param {...*} [args] arguments to be prepended for the new function @deprecated\n\t * @returns {Function} a promise-returning function\n\t */\n\tfunction lift(f /*, args... */) {\n\t\tvar args1 = arguments.length > 1 ? slice.call(arguments, 1) : [];\n\t\treturn function() {\n\t\t\t// TODO: Simplify once partialing has been removed\n\t\t\tvar l = args1.length;\n\t\t\tvar al = arguments.length;\n\t\t\tvar args = new Array(al + l);\n\t\t\tvar i;\n\t\t\tfor(i=0; i<l; ++i) {\n\t\t\t\targs[i] = args1[i];\n\t\t\t}\n\t\t\tfor(i=0; i<al; ++i) {\n\t\t\t\targs[i+l] = arguments[i];\n\t\t\t}\n\t\t\treturn _apply(f, this, args);\n\t\t};\n\t}\n\n\t/**\n\t * Lift all the functions/methods on src\n\t * @param {object|function} src source whose functions will be lifted\n\t * @param {function?} combine optional function for customizing the lifting\n\t * process. It is passed dst, the lifted function, and the property name of\n\t * the original function on src.\n\t * @param {(object|function)?} dst option destination host onto which to place lifted\n\t * functions. If not provided, liftAll returns a new object.\n\t * @returns {*} If dst is provided, returns dst with lifted functions as\n\t * properties. If dst not provided, returns a new object with lifted functions.\n\t */\n\tfunction liftAll(src, combine, dst) {\n\t\treturn _liftAll(lift, combine, dst, src);\n\t}\n\n\t/**\n\t * Takes an object that responds to the resolver interface, and returns\n\t * a function that will resolve or reject it depending on how it is called.\n\t *\n\t * @example\n\t *\tfunction callbackTakingFunction(callback) {\n\t *\t\tif(somethingWrongHappened) {\n\t *\t\t\tcallback(error);\n\t *\t\t} else {\n\t *\t\t\tcallback(null, interestingValue);\n\t *\t\t}\n\t *\t}\n\t *\n\t *\tvar when = require('when'), nodefn = require('when/node/function');\n\t *\n\t *\tvar deferred = when.defer();\n\t *\tcallbackTakingFunction(nodefn.createCallback(deferred.resolver));\n\t *\n\t *\tdeferred.promise.then(function(interestingValue) {\n\t *\t\t// Use interestingValue\n\t *\t});\n\t *\n\t * @param {Resolver} resolver that will be 'attached' to the callback\n\t * @returns {Function} a node-style callback function\n\t */\n\tfunction createCallback(resolver) {\n\t\treturn function(err, value) {\n\t\t\tif(err) {\n\t\t\t\tresolver.reject(err);\n\t\t\t} else if(arguments.length > 2) {\n\t\t\t\tresolver.resolve(slice.call(arguments, 1));\n\t\t\t} else {\n\t\t\t\tresolver.resolve(value);\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Attaches a node-style callback to a promise, ensuring the callback is\n\t * called for either fulfillment or rejection. Returns a promise with the same\n\t * state as the passed-in promise.\n\t *\n\t * @example\n\t *\tvar deferred = when.defer();\n\t *\n\t *\tfunction callback(err, value) {\n\t *\t\t// Handle err or use value\n\t *\t}\n\t *\n\t *\tbindCallback(deferred.promise, callback);\n\t *\n\t *\tdeferred.resolve('interesting value');\n\t *\n\t * @param {Promise} promise The promise to be attached to.\n\t * @param {Function} callback The node-style callback to attach.\n\t * @returns {Promise} A promise with the same state as the passed-in promise.\n\t */\n\tfunction bindCallback(promise, callback) {\n\t\tpromise = when(promise);\n\n\t\tif (callback) {\n\t\t\tpromise.then(success, wrapped);\n\t\t}\n\n\t\treturn promise;\n\n\t\tfunction success(value) {\n\t\t\twrapped(null, value);\n\t\t}\n\n\t\tfunction wrapped(err, value) {\n\t\t\tsetTimer(function () {\n\t\t\t\tcallback(err, value);\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Takes a node-style callback and returns new function that accepts a\n\t * promise, calling the original callback when the promise is either\n\t * fulfilled or rejected with the appropriate arguments.\n\t *\n\t * @example\n\t *\tvar deferred = when.defer();\n\t *\n\t *\tfunction callback(err, value) {\n\t *\t\t// Handle err or use value\n\t *\t}\n\t *\n\t *\tvar wrapped = liftCallback(callback);\n\t *\n\t *\t// `wrapped` can now be passed around at will\n\t *\twrapped(deferred.promise);\n\t *\n\t *\tdeferred.resolve('interesting value');\n\t *\n\t * @param {Function} callback The node-style callback to wrap.\n\t * @returns {Function} The lifted, promise-accepting function.\n\t */\n\tfunction liftCallback(callback) {\n\t\treturn function(promise) {\n\t\t\treturn bindCallback(promise, callback);\n\t\t};\n\t}\n});\n\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n\n",
- "/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * parallel.js\n *\n * Run a set of task functions in parallel. All tasks will\n * receive the same args\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar all = when.Promise.all;\n\tvar slice = Array.prototype.slice;\n\n\t/**\n\t * Run array of tasks in parallel\n\t * @param tasks {Array|Promise} array or promiseForArray of task functions\n\t * @param [args] {*} arguments to be passed to all tasks\n\t * @return {Promise} promise for array containing the\n\t * result of each task in the array position corresponding\n\t * to position of the task in the tasks array\n\t */\n\treturn function parallel(tasks /*, args... */) {\n\t\treturn all(slice.call(arguments, 1)).then(function(args) {\n\t\t\treturn when.map(tasks, function(task) {\n\t\t\t\treturn task.apply(void 0, args);\n\t\t\t});\n\t\t});\n\t};\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n",
- "/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * pipeline.js\n *\n * Run a set of task functions in sequence, passing the result\n * of the previous as an argument to the next. Like a shell\n * pipeline, e.g. `cat file.txt | grep 'foo' | sed -e 's/foo/bar/g'\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar all = when.Promise.all;\n\tvar slice = Array.prototype.slice;\n\n\t/**\n\t * Run array of tasks in a pipeline where the next\n\t * tasks receives the result of the previous. The first task\n\t * will receive the initialArgs as its argument list.\n\t * @param tasks {Array|Promise} array or promise for array of task functions\n\t * @param [initialArgs...] {*} arguments to be passed to the first task\n\t * @return {Promise} promise for return value of the final task\n\t */\n\treturn function pipeline(tasks /* initialArgs... */) {\n\t\t// Self-optimizing function to run first task with multiple\n\t\t// args using apply, but subsequence tasks via direct invocation\n\t\tvar runTask = function(args, task) {\n\t\t\trunTask = function(arg, task) {\n\t\t\t\treturn task(arg);\n\t\t\t};\n\n\t\t\treturn task.apply(null, args);\n\t\t};\n\n\t\treturn all(slice.call(arguments, 1)).then(function(args) {\n\t\t\treturn when.reduce(tasks, function(arg, task) {\n\t\t\t\treturn runTask(arg, task);\n\t\t\t}, args);\n\t\t});\n\t};\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n",
- "/** @license MIT License (c) copyright 2012-2013 original author or authors */\n\n/**\n * poll.js\n *\n * Helper that polls until cancelled or for a condition to become true.\n *\n * @author Scott Andrews\n */\n\n(function (define) { 'use strict';\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar attempt = when['try'];\n\tvar cancelable = require('./cancelable');\n\n\t/**\n\t * Periodically execute the task function on the msec delay. The result of\n\t * the task may be verified by watching for a condition to become true. The\n\t * returned deferred is cancellable if the polling needs to be cancelled\n\t * externally before reaching a resolved state.\n\t *\n\t * The next vote is scheduled after the results of the current vote are\n\t * verified and rejected.\n\t *\n\t * Polling may be terminated by the verifier returning a truthy value,\n\t * invoking cancel() on the returned promise, or the task function returning\n\t * a rejected promise.\n\t *\n\t * Usage:\n\t *\n\t * var count = 0;\n\t * function doSomething() { return count++ }\n\t *\n\t * // poll until cancelled\n\t * var p = poll(doSomething, 1000);\n\t * ...\n\t * p.cancel();\n\t *\n\t * // poll until condition is met\n\t * poll(doSomething, 1000, function(result) { return result > 10 })\n\t * .then(function(result) { assert result == 10 });\n\t *\n\t * // delay first vote\n\t * poll(doSomething, 1000, anyFunc, true);\n\t *\n\t * @param task {Function} function that is executed after every timeout\n\t * @param interval {number|Function} timeout in milliseconds\n\t * @param [verifier] {Function} function to evaluate the result of the vote.\n\t * May return a {Promise} or a {Boolean}. Rejecting the promise or a\n\t * falsey value will schedule the next vote.\n\t * @param [delayInitialTask] {boolean} if truthy, the first vote is scheduled\n\t * instead of immediate\n\t *\n\t * @returns {Promise}\n\t */\n\treturn function poll(task, interval, verifier, delayInitialTask) {\n\t\tvar deferred, canceled, reject;\n\n\t\tcanceled = false;\n\t\tdeferred = cancelable(when.defer(), function () { canceled = true; });\n\t\treject = deferred.reject;\n\n\t\tverifier = verifier || function () { return false; };\n\n\t\tif (typeof interval !== 'function') {\n\t\t\tinterval = (function (interval) {\n\t\t\t\treturn function () { return when().delay(interval); };\n\t\t\t})(interval);\n\t\t}\n\n\t\tfunction certify(result) {\n\t\t\tdeferred.resolve(result);\n\t\t}\n\n\t\tfunction schedule(result) {\n\t\t\tattempt(interval).then(vote, reject);\n\t\t\tif (result !== void 0) {\n\t\t\t\tdeferred.notify(result);\n\t\t\t}\n\t\t}\n\n\t\tfunction vote() {\n\t\t\tif (canceled) { return; }\n\t\t\twhen(task(),\n\t\t\t\tfunction (result) {\n\t\t\t\t\twhen(verifier(result),\n\t\t\t\t\t\tfunction (verification) {\n\t\t\t\t\t\t\treturn verification ? certify(result) : schedule(result);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction () { schedule(result); }\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\treject\n\t\t\t);\n\t\t}\n\n\t\tif (delayInitialTask) {\n\t\t\tschedule();\n\t\t} else {\n\t\t\t// if task() is blocking, vote will also block\n\t\t\tvote();\n\t\t}\n\n\t\t// make the promise cancelable\n\t\tdeferred.promise = Object.create(deferred.promise);\n\t\tdeferred.promise.cancel = deferred.cancel;\n\n\t\treturn deferred.promise;\n\t};\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n",
- "/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * sequence.js\n *\n * Run a set of task functions in sequence. All tasks will\n * receive the same args.\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar all = when.Promise.all;\n\tvar slice = Array.prototype.slice;\n\n\t/**\n\t * Run array of tasks in sequence with no overlap\n\t * @param tasks {Array|Promise} array or promiseForArray of task functions\n\t * @param [args] {*} arguments to be passed to all tasks\n\t * @return {Promise} promise for an array containing\n\t * the result of each task in the array position corresponding\n\t * to position of the task in the tasks array\n\t */\n\treturn function sequence(tasks /*, args... */) {\n\t\tvar results = [];\n\n\t\treturn all(slice.call(arguments, 1)).then(function(args) {\n\t\t\treturn when.reduce(tasks, function(results, task) {\n\t\t\t\treturn when(task.apply(void 0, args), addResult);\n\t\t\t}, results);\n\t\t});\n\n\t\tfunction addResult(result) {\n\t\t\tresults.push(result);\n\t\t\treturn results;\n\t\t}\n\t};\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n",
- "/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * timeout.js\n *\n * Helper that returns a promise that rejects after a specified timeout,\n * if not explicitly resolved or rejected before that.\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\n /**\n\t * @deprecated Use when(trigger).timeout(ms)\n */\n return function timeout(msec, trigger) {\n\t\treturn when(trigger).timeout(msec);\n };\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n\n/**\n * Promises/A+ and when() implementation\n * when is part of the cujoJS family of libraries (http://cujojs.com/)\n * @author Brian Cavalier\n * @author John Hann\n */\n(function(define) { 'use strict';\ndefine(function (require) {\n\n\tvar timed = require('./lib/decorators/timed');\n\tvar array = require('./lib/decorators/array');\n\tvar flow = require('./lib/decorators/flow');\n\tvar fold = require('./lib/decorators/fold');\n\tvar inspect = require('./lib/decorators/inspect');\n\tvar generate = require('./lib/decorators/iterate');\n\tvar progress = require('./lib/decorators/progress');\n\tvar withThis = require('./lib/decorators/with');\n\tvar unhandledRejection = require('./lib/decorators/unhandledRejection');\n\tvar TimeoutError = require('./lib/TimeoutError');\n\n\tvar Promise = [array, flow, fold, generate, progress,\n\t\tinspect, withThis, timed, unhandledRejection]\n\t\t.reduce(function(Promise, feature) {\n\t\t\treturn feature(Promise);\n\t\t}, require('./lib/Promise'));\n\n\tvar apply = require('./lib/apply')(Promise);\n\n\t// Public API\n\n\twhen.promise = promise; // Create a pending promise\n\twhen.resolve = Promise.resolve; // Create a resolved promise\n\twhen.reject = Promise.reject; // Create a rejected promise\n\n\twhen.lift = lift; // lift a function to return promises\n\twhen['try'] = attempt; // call a function and return a promise\n\twhen.attempt = attempt; // alias for when.try\n\n\twhen.iterate = Promise.iterate; // DEPRECATED (use cujojs/most streams) Generate a stream of promises\n\twhen.unfold = Promise.unfold; // DEPRECATED (use cujojs/most streams) Generate a stream of promises\n\n\twhen.join = join; // Join 2 or more promises\n\n\twhen.all = all; // Resolve a list of promises\n\twhen.settle = settle; // Settle a list of promises\n\n\twhen.any = lift(Promise.any); // One-winner race\n\twhen.some = lift(Promise.some); // Multi-winner race\n\twhen.race = lift(Promise.race); // First-to-settle race\n\n\twhen.map = map; // Array.map() for promises\n\twhen.filter = filter; // Array.filter() for promises\n\twhen.reduce = lift(Promise.reduce); // Array.reduce() for promises\n\twhen.reduceRight = lift(Promise.reduceRight); // Array.reduceRight() for promises\n\n\twhen.isPromiseLike = isPromiseLike; // Is something promise-like, aka thenable\n\n\twhen.Promise = Promise; // Promise constructor\n\twhen.defer = defer; // Create a {promise, resolve, reject} tuple\n\n\t// Error types\n\n\twhen.TimeoutError = TimeoutError;\n\n\t/**\n\t * Get a trusted promise for x, or by transforming x with onFulfilled\n\t *\n\t * @param {*} x\n\t * @param {function?} onFulfilled callback to be called when x is\n\t * successfully fulfilled. If promiseOrValue is an immediate value, callback\n\t * will be invoked immediately.\n\t * @param {function?} onRejected callback to be called when x is\n\t * rejected.\n\t * @param {function?} onProgress callback to be called when progress updates\n\t * are issued for x. @deprecated\n\t * @returns {Promise} a new promise that will fulfill with the return\n\t * value of callback or errback or the completion value of promiseOrValue if\n\t * callback and/or errback is not supplied.\n\t */\n\tfunction when(x, onFulfilled, onRejected, onProgress) {\n\t\tvar p = Promise.resolve(x);\n\t\tif (arguments.length < 2) {\n\t\t\treturn p;\n\t\t}\n\n\t\treturn p.then(onFulfilled, onRejected, onProgress);\n\t}\n\n\t/**\n\t * Creates a new promise whose fate is determined by resolver.\n\t * @param {function} resolver function(resolve, reject, notify)\n\t * @returns {Promise} promise whose fate is determine by resolver\n\t */\n\tfunction promise(resolver) {\n\t\treturn new Promise(resolver);\n\t}\n\n\t/**\n\t * Lift the supplied function, creating a version of f that returns\n\t * promises, and accepts promises as arguments.\n\t * @param {function} f\n\t * @returns {Function} version of f that returns promises\n\t */\n\tfunction lift(f) {\n\t\treturn function() {\n\t\t\tfor(var i=0, l=arguments.length, a=new Array(l); i<l; ++i) {\n\t\t\t\ta[i] = arguments[i];\n\t\t\t}\n\t\t\treturn apply(f, this, a);\n\t\t};\n\t}\n\n\t/**\n\t * Call f in a future turn, with the supplied args, and return a promise\n\t * for the result.\n\t * @param {function} f\n\t * @returns {Promise}\n\t */\n\tfunction attempt(f /*, args... */) {\n\t\t/*jshint validthis:true */\n\t\tfor(var i=0, l=arguments.length-1, a=new Array(l); i<l; ++i) {\n\t\t\ta[i] = arguments[i+1];\n\t\t}\n\t\treturn apply(f, this, a);\n\t}\n\n\t/**\n\t * Creates a {promise, resolver} pair, either or both of which\n\t * may be given out safely to consumers.\n\t * @return {{promise: Promise, resolve: function, reject: function, notify: function}}\n\t */\n\tfunction defer() {\n\t\treturn new Deferred();\n\t}\n\n\tfunction Deferred() {\n\t\tvar p = Promise._defer();\n\n\t\tfunction resolve(x) { p._handler.resolve(x); }\n\t\tfunction reject(x) { p._handler.reject(x); }\n\t\tfunction notify(x) { p._handler.notify(x); }\n\n\t\tthis.promise = p;\n\t\tthis.resolve = resolve;\n\t\tthis.reject = reject;\n\t\tthis.notify = notify;\n\t\tthis.resolver = { resolve: resolve, reject: reject, notify: notify };\n\t}\n\n\t/**\n\t * Determines if x is promise-like, i.e. a thenable object\n\t * NOTE: Will return true for *any thenable object*, and isn't truly\n\t * safe, since it may attempt to access the `then` property of x (i.e.\n\t * clever/malicious getters may do weird things)\n\t * @param {*} x anything\n\t * @returns {boolean} true if x is promise-like\n\t */\n\tfunction isPromiseLike(x) {\n\t\treturn x && typeof x.then === 'function';\n\t}\n\n\t/**\n\t * Return a promise that will resolve only once all the supplied arguments\n\t * have resolved. The resolution value of the returned promise will be an array\n\t * containing the resolution values of each of the arguments.\n\t * @param {...*} arguments may be a mix of promises and values\n\t * @returns {Promise}\n\t */\n\tfunction join(/* ...promises */) {\n\t\treturn Promise.all(arguments);\n\t}\n\n\t/**\n\t * Return a promise that will fulfill once all input promises have\n\t * fulfilled, or reject when any one input promise rejects.\n\t * @param {array|Promise} promises array (or promise for an array) of promises\n\t * @returns {Promise}\n\t */\n\tfunction all(promises) {\n\t\treturn when(promises, Promise.all);\n\t}\n\n\t/**\n\t * Return a promise that will always fulfill with an array containing\n\t * the outcome states of all input promises. The returned promise\n\t * will only reject if `promises` itself is a rejected promise.\n\t * @param {array|Promise} promises array (or promise for an array) of promises\n\t * @returns {Promise} promise for array of settled state descriptors\n\t */\n\tfunction settle(promises) {\n\t\treturn when(promises, Promise.settle);\n\t}\n\n\t/**\n\t * Promise-aware array map function, similar to `Array.prototype.map()`,\n\t * but input array may contain promises or values.\n\t * @param {Array|Promise} promises array of anything, may contain promises and values\n\t * @param {function(x:*, index:Number):*} mapFunc map function which may\n\t * return a promise or value\n\t * @returns {Promise} promise that will fulfill with an array of mapped values\n\t * or reject if any input promise rejects.\n\t */\n\tfunction map(promises, mapFunc) {\n\t\treturn when(promises, function(promises) {\n\t\t\treturn Promise.map(promises, mapFunc);\n\t\t});\n\t}\n\n\t/**\n\t * Filter the provided array of promises using the provided predicate. Input may\n\t * contain promises and values\n\t * @param {Array|Promise} promises array of promises and values\n\t * @param {function(x:*, index:Number):boolean} predicate filtering predicate.\n\t * Must return truthy (or promise for truthy) for items to retain.\n\t * @returns {Promise} promise that will fulfill with an array containing all items\n\t * for which predicate returned truthy.\n\t */\n\tfunction filter(promises, predicate) {\n\t\treturn when(promises, function(promises) {\n\t\t\treturn Promise.filter(promises, predicate);\n\t\t});\n\t}\n\n\treturn when;\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n"
- ],
- "sourceRoot": "https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08"
-} \ No newline at end of file
diff --git a/node_modules/when/dist/browser/when.js b/node_modules/when/dist/browser/when.js
deleted file mode 100644
index 19990d370..000000000
--- a/node_modules/when/dist/browser/when.js
+++ /dev/null
@@ -1,3624 +0,0 @@
-!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.when=e():"undefined"!=typeof global?global.when=e():"undefined"!=typeof self&&(self.when=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
-var when = module.exports = require('../when');
-
-when.callbacks = require('../callbacks');
-when.cancelable = require('../cancelable');
-when.delay = require('../delay');
-when.fn = require('../function');
-when.guard = require('../guard');
-when.keys = require('../keys');
-when.nodefn = when.node = require('../node');
-when.parallel = require('../parallel');
-when.pipeline = require('../pipeline');
-when.poll = require('../poll');
-when.sequence = require('../sequence');
-when.timeout = require('../timeout');
-
-},{"../callbacks":2,"../cancelable":3,"../delay":4,"../function":5,"../guard":6,"../keys":7,"../node":26,"../parallel":27,"../pipeline":28,"../poll":29,"../sequence":30,"../timeout":31,"../when":32}],2:[function(require,module,exports){
-/** @license MIT License (c) copyright 2013-2014 original author or authors */
-
-/**
- * Collection of helper functions for interacting with 'traditional',
- * callback-taking functions using a promise interface.
- *
- * @author Renato Zannon
- * @contributor Brian Cavalier
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var Promise = when.Promise;
- var _liftAll = require('./lib/liftAll');
- var slice = Array.prototype.slice;
-
- var makeApply = require('./lib/apply');
- var _apply = makeApply(Promise, dispatch);
-
- return {
- lift: lift,
- liftAll: liftAll,
- apply: apply,
- call: call,
- promisify: promisify
- };
-
- /**
- * Takes a `traditional` callback-taking function and returns a promise for its
- * result, accepting an optional array of arguments (that might be values or
- * promises). It assumes that the function takes its callback and errback as
- * the last two arguments. The resolution of the promise depends on whether the
- * function will call its callback or its errback.
- *
- * @example
- * var domIsLoaded = callbacks.apply($);
- * domIsLoaded.then(function() {
- * doMyDomStuff();
- * });
- *
- * @example
- * function existingAjaxyFunction(url, callback, errback) {
- * // Complex logic you'd rather not change
- * }
- *
- * var promise = callbacks.apply(existingAjaxyFunction, ["/movies.json"]);
- *
- * promise.then(function(movies) {
- * // Work with movies
- * }, function(reason) {
- * // Handle error
- * });
- *
- * @param {function} asyncFunction function to be called
- * @param {Array} [extraAsyncArgs] array of arguments to asyncFunction
- * @returns {Promise} promise for the callback value of asyncFunction
- */
- function apply(asyncFunction, extraAsyncArgs) {
- return _apply(asyncFunction, this, extraAsyncArgs || []);
- }
-
- /**
- * Apply helper that allows specifying thisArg
- * @private
- */
- function dispatch(f, thisArg, args, h) {
- args.push(alwaysUnary(h.resolve, h), alwaysUnary(h.reject, h));
- tryCatchResolve(f, thisArg, args, h);
- }
-
- function tryCatchResolve(f, thisArg, args, resolver) {
- try {
- f.apply(thisArg, args);
- } catch(e) {
- resolver.reject(e);
- }
- }
-
- /**
- * Works as `callbacks.apply` does, with the difference that the arguments to
- * the function are passed individually, instead of as an array.
- *
- * @example
- * function sumInFiveSeconds(a, b, callback) {
- * setTimeout(function() {
- * callback(a + b);
- * }, 5000);
- * }
- *
- * var sumPromise = callbacks.call(sumInFiveSeconds, 5, 10);
- *
- * // Logs '15' 5 seconds later
- * sumPromise.then(console.log);
- *
- * @param {function} asyncFunction function to be called
- * @param {...*} args arguments that will be forwarded to the function
- * @returns {Promise} promise for the callback value of asyncFunction
- */
- function call(asyncFunction/*, arg1, arg2...*/) {
- return _apply(asyncFunction, this, slice.call(arguments, 1));
- }
-
- /**
- * Takes a 'traditional' callback/errback-taking function and returns a function
- * that returns a promise instead. The resolution/rejection of the promise
- * depends on whether the original function will call its callback or its
- * errback.
- *
- * If additional arguments are passed to the `lift` call, they will be prepended
- * on the calls to the original function, much like `Function.prototype.bind`.
- *
- * The resulting function is also "promise-aware", in the sense that, if given
- * promises as arguments, it will wait for their resolution before executing.
- *
- * @example
- * function traditionalAjax(method, url, callback, errback) {
- * var xhr = new XMLHttpRequest();
- * xhr.open(method, url);
- *
- * xhr.onload = callback;
- * xhr.onerror = errback;
- *
- * xhr.send();
- * }
- *
- * var promiseAjax = callbacks.lift(traditionalAjax);
- * promiseAjax("GET", "/movies.json").then(console.log, console.error);
- *
- * var promiseAjaxGet = callbacks.lift(traditionalAjax, "GET");
- * promiseAjaxGet("/movies.json").then(console.log, console.error);
- *
- * @param {Function} f traditional async function to be decorated
- * @param {...*} [args] arguments to be prepended for the new function @deprecated
- * @returns {Function} a promise-returning function
- */
- function lift(f/*, args...*/) {
- var args = arguments.length > 1 ? slice.call(arguments, 1) : [];
- return function() {
- return _apply(f, this, args.concat(slice.call(arguments)));
- };
- }
-
- /**
- * Lift all the functions/methods on src
- * @param {object|function} src source whose functions will be lifted
- * @param {function?} combine optional function for customizing the lifting
- * process. It is passed dst, the lifted function, and the property name of
- * the original function on src.
- * @param {(object|function)?} dst option destination host onto which to place lifted
- * functions. If not provided, liftAll returns a new object.
- * @returns {*} If dst is provided, returns dst with lifted functions as
- * properties. If dst not provided, returns a new object with lifted functions.
- */
- function liftAll(src, combine, dst) {
- return _liftAll(lift, combine, dst, src);
- }
-
- /**
- * `promisify` is a version of `lift` that allows fine-grained control over the
- * arguments that passed to the underlying function. It is intended to handle
- * functions that don't follow the common callback and errback positions.
- *
- * The control is done by passing an object whose 'callback' and/or 'errback'
- * keys, whose values are the corresponding 0-based indexes of the arguments on
- * the function. Negative values are interpreted as being relative to the end
- * of the arguments array.
- *
- * If arguments are given on the call to the 'promisified' function, they are
- * intermingled with the callback and errback. If a promise is given among them,
- * the execution of the function will only occur after its resolution.
- *
- * @example
- * var delay = callbacks.promisify(setTimeout, {
- * callback: 0
- * });
- *
- * delay(100).then(function() {
- * console.log("This happens 100ms afterwards");
- * });
- *
- * @example
- * function callbackAsLast(errback, followsStandards, callback) {
- * if(followsStandards) {
- * callback("well done!");
- * } else {
- * errback("some programmers just want to watch the world burn");
- * }
- * }
- *
- * var promisified = callbacks.promisify(callbackAsLast, {
- * callback: -1,
- * errback: 0,
- * });
- *
- * promisified(true).then(console.log, console.error);
- * promisified(false).then(console.log, console.error);
- *
- * @param {Function} asyncFunction traditional function to be decorated
- * @param {object} positions
- * @param {number} [positions.callback] index at which asyncFunction expects to
- * receive a success callback
- * @param {number} [positions.errback] index at which asyncFunction expects to
- * receive an error callback
- * @returns {function} promisified function that accepts
- *
- * @deprecated
- */
- function promisify(asyncFunction, positions) {
-
- return function() {
- var thisArg = this;
- return Promise.all(arguments).then(function(args) {
- var p = Promise._defer();
-
- var callbackPos, errbackPos;
-
- if(typeof positions.callback === 'number') {
- callbackPos = normalizePosition(args, positions.callback);
- }
-
- if(typeof positions.errback === 'number') {
- errbackPos = normalizePosition(args, positions.errback);
- }
-
- if(errbackPos < callbackPos) {
- insertCallback(args, errbackPos, p._handler.reject, p._handler);
- insertCallback(args, callbackPos, p._handler.resolve, p._handler);
- } else {
- insertCallback(args, callbackPos, p._handler.resolve, p._handler);
- insertCallback(args, errbackPos, p._handler.reject, p._handler);
- }
-
- asyncFunction.apply(thisArg, args);
-
- return p;
- });
- };
- }
-
- function normalizePosition(args, pos) {
- return pos < 0 ? (args.length + pos + 2) : pos;
- }
-
- function insertCallback(args, pos, callback, thisArg) {
- if(typeof pos === 'number') {
- args.splice(pos, 0, alwaysUnary(callback, thisArg));
- }
- }
-
- function alwaysUnary(fn, thisArg) {
- return function() {
- if (arguments.length > 1) {
- fn.call(thisArg, slice.call(arguments));
- } else {
- fn.apply(thisArg, arguments);
- }
- };
- }
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-},{"./lib/apply":11,"./lib/liftAll":23,"./when":32}],3:[function(require,module,exports){
-/** @license MIT License (c) copyright B Cavalier & J Hann */
-
-/**
- * cancelable.js
- * @deprecated
- *
- * Decorator that makes a deferred "cancelable". It adds a cancel() method that
- * will call a special cancel handler function and then reject the deferred. The
- * cancel handler can be used to do resource cleanup, or anything else that should
- * be done before any other rejection handlers are executed.
- *
- * Usage:
- *
- * var cancelableDeferred = cancelable(when.defer(), myCancelHandler);
- *
- * @author brian@hovercraftstudios.com
- */
-
-(function(define) {
-define(function() {
-
- /**
- * Makes deferred cancelable, adding a cancel() method.
- * @deprecated
- *
- * @param deferred {Deferred} the {@link Deferred} to make cancelable
- * @param canceler {Function} cancel handler function to execute when this deferred
- * is canceled. This is guaranteed to run before all other rejection handlers.
- * The canceler will NOT be executed if the deferred is rejected in the standard
- * way, i.e. deferred.reject(). It ONLY executes if the deferred is canceled,
- * i.e. deferred.cancel()
- *
- * @returns deferred, with an added cancel() method.
- */
- return function(deferred, canceler) {
- // Add a cancel method to the deferred to reject the delegate
- // with the special canceled indicator.
- deferred.cancel = function() {
- try {
- deferred.reject(canceler(deferred));
- } catch(e) {
- deferred.reject(e);
- }
-
- return deferred.promise;
- };
-
- return deferred;
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(); });
-
-
-
-},{}],4:[function(require,module,exports){
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * delay.js
- *
- * Helper that returns a promise that resolves after a delay.
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
-
- /**
- * @deprecated Use when(value).delay(ms)
- */
- return function delay(msec, value) {
- return when(value).delay(msec);
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
-
-},{"./when":32}],5:[function(require,module,exports){
-/** @license MIT License (c) copyright 2013-2014 original author or authors */
-
-/**
- * Collection of helper functions for wrapping and executing 'traditional'
- * synchronous functions in a promise interface.
- *
- * @author Brian Cavalier
- * @contributor Renato Zannon
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var attempt = when['try'];
- var _liftAll = require('./lib/liftAll');
- var _apply = require('./lib/apply')(when.Promise);
- var slice = Array.prototype.slice;
-
- return {
- lift: lift,
- liftAll: liftAll,
- call: attempt,
- apply: apply,
- compose: compose
- };
-
- /**
- * Takes a function and an optional array of arguments (that might be promises),
- * and calls the function. The return value is a promise whose resolution
- * depends on the value returned by the function.
- * @param {function} f function to be called
- * @param {Array} [args] array of arguments to func
- * @returns {Promise} promise for the return value of func
- */
- function apply(f, args) {
- // slice args just in case the caller passed an Arguments instance
- return _apply(f, this, args == null ? [] : slice.call(args));
- }
-
- /**
- * Takes a 'regular' function and returns a version of that function that
- * returns a promise instead of a plain value, and handles thrown errors by
- * returning a rejected promise. Also accepts a list of arguments to be
- * prepended to the new function, as does Function.prototype.bind.
- *
- * The resulting function is promise-aware, in the sense that it accepts
- * promise arguments, and waits for their resolution.
- * @param {Function} f function to be bound
- * @param {...*} [args] arguments to be prepended for the new function @deprecated
- * @returns {Function} a promise-returning function
- */
- function lift(f /*, args... */) {
- var args = arguments.length > 1 ? slice.call(arguments, 1) : [];
- return function() {
- return _apply(f, this, args.concat(slice.call(arguments)));
- };
- }
-
- /**
- * Lift all the functions/methods on src
- * @param {object|function} src source whose functions will be lifted
- * @param {function?} combine optional function for customizing the lifting
- * process. It is passed dst, the lifted function, and the property name of
- * the original function on src.
- * @param {(object|function)?} dst option destination host onto which to place lifted
- * functions. If not provided, liftAll returns a new object.
- * @returns {*} If dst is provided, returns dst with lifted functions as
- * properties. If dst not provided, returns a new object with lifted functions.
- */
- function liftAll(src, combine, dst) {
- return _liftAll(lift, combine, dst, src);
- }
-
- /**
- * Composes multiple functions by piping their return values. It is
- * transparent to whether the functions return 'regular' values or promises:
- * the piped argument is always a resolved value. If one of the functions
- * throws or returns a rejected promise, the composed promise will be also
- * rejected.
- *
- * The arguments (or promises to arguments) given to the returned function (if
- * any), are passed directly to the first function on the 'pipeline'.
- * @param {Function} f the function to which the arguments will be passed
- * @param {...Function} [funcs] functions that will be composed, in order
- * @returns {Function} a promise-returning composition of the functions
- */
- function compose(f /*, funcs... */) {
- var funcs = slice.call(arguments, 1);
-
- return function() {
- var thisArg = this;
- var args = slice.call(arguments);
- var firstPromise = attempt.apply(thisArg, [f].concat(args));
-
- return when.reduce(funcs, function(arg, func) {
- return func.call(thisArg, arg);
- }, firstPromise);
- };
- }
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
-
-},{"./lib/apply":11,"./lib/liftAll":23,"./when":32}],6:[function(require,module,exports){
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * Generalized promise concurrency guard
- * Adapted from original concept by Sakari Jokinen (Rocket Pack, Ltd.)
- *
- * @author Brian Cavalier
- * @author John Hann
- * @contributor Sakari Jokinen
- */
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var slice = Array.prototype.slice;
-
- guard.n = n;
-
- return guard;
-
- /**
- * Creates a guarded version of f that can only be entered when the supplied
- * condition allows.
- * @param {function} condition represents a critical section that may only
- * be entered when allowed by the condition
- * @param {function} f function to guard
- * @returns {function} guarded version of f
- */
- function guard(condition, f) {
- return function() {
- var args = slice.call(arguments);
-
- return when(condition()).withThis(this).then(function(exit) {
- return when(f.apply(this, args))['finally'](exit);
- });
- };
- }
-
- /**
- * Creates a condition that allows only n simultaneous executions
- * of a guarded function
- * @param {number} allowed number of allowed simultaneous executions
- * @returns {function} condition function which returns a promise that
- * fulfills when the critical section may be entered. The fulfillment
- * value is a function ("notifyExit") that must be called when the critical
- * section has been exited.
- */
- function n(allowed) {
- var count = 0;
- var waiting = [];
-
- return function enter() {
- return when.promise(function(resolve) {
- if(count < allowed) {
- resolve(exit);
- } else {
- waiting.push(resolve);
- }
- count += 1;
- });
- };
-
- function exit() {
- count = Math.max(count - 1, 0);
- if(waiting.length > 0) {
- waiting.shift()(exit);
- }
- }
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{"./when":32}],7:[function(require,module,exports){
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * Licensed under the MIT License at:
- * http://www.opensource.org/licenses/mit-license.php
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-(function(define) { 'use strict';
-define(function(require) {
-
- var when = require('./when');
- var Promise = when.Promise;
- var toPromise = when.resolve;
-
- return {
- all: when.lift(all),
- map: map,
- settle: settle
- };
-
- /**
- * Resolve all the key-value pairs in the supplied object or promise
- * for an object.
- * @param {Promise|object} object or promise for object whose key-value pairs
- * will be resolved
- * @returns {Promise} promise for an object with the fully resolved key-value pairs
- */
- function all(object) {
- var p = Promise._defer();
- var resolver = Promise._handler(p);
-
- var results = {};
- var keys = Object.keys(object);
- var pending = keys.length;
-
- for(var i=0, k; i<keys.length; ++i) {
- k = keys[i];
- Promise._handler(object[k]).fold(settleKey, k, results, resolver);
- }
-
- if(pending === 0) {
- resolver.resolve(results);
- }
-
- return p;
-
- function settleKey(k, x, resolver) {
- /*jshint validthis:true*/
- this[k] = x;
- if(--pending === 0) {
- resolver.resolve(results);
- }
- }
- }
-
- /**
- * Map values in the supplied object's keys
- * @param {Promise|object} object or promise for object whose key-value pairs
- * will be reduced
- * @param {function(value:*, key:String):*} f mapping function which may
- * return either a promise or a value
- * @returns {Promise} promise for an object with the mapped and fully
- * resolved key-value pairs
- */
- function map(object, f) {
- return toPromise(object).then(function(object) {
- return all(Object.keys(object).reduce(function(o, k) {
- o[k] = toPromise(object[k]).fold(mapWithKey, k);
- return o;
- }, {}));
- });
-
- function mapWithKey(k, x) {
- return f(x, k);
- }
- }
-
- /**
- * Resolve all key-value pairs in the supplied object and return a promise
- * that will always fulfill with the outcome states of all input promises.
- * @param {object} object whose key-value pairs will be settled
- * @returns {Promise} promise for an object with the mapped and fully
- * settled key-value pairs
- */
- function settle(object) {
- var keys = Object.keys(object);
- var results = {};
-
- if(keys.length === 0) {
- return toPromise(results);
- }
-
- var p = Promise._defer();
- var resolver = Promise._handler(p);
- var promises = keys.map(function(k) { return object[k]; });
-
- when.settle(promises).then(function(states) {
- populateResults(keys, states, results, resolver);
- });
-
- return p;
- }
-
- function populateResults(keys, states, results, resolver) {
- for(var i=0; i<keys.length; i++) {
- results[keys[i]] = states[i];
- }
- resolver.resolve(results);
- }
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-},{"./when":32}],8:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function (require) {
-
- var makePromise = require('./makePromise');
- var Scheduler = require('./Scheduler');
- var async = require('./env').asap;
-
- return makePromise({
- scheduler: new Scheduler(async)
- });
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-},{"./Scheduler":9,"./env":21,"./makePromise":24}],9:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- // Credit to Twisol (https://github.com/Twisol) for suggesting
- // this type of extensible queue + trampoline approach for next-tick conflation.
-
- /**
- * Async task scheduler
- * @param {function} async function to schedule a single async function
- * @constructor
- */
- function Scheduler(async) {
- this._async = async;
- this._running = false;
-
- this._queue = this;
- this._queueLen = 0;
- this._afterQueue = {};
- this._afterQueueLen = 0;
-
- var self = this;
- this.drain = function() {
- self._drain();
- };
- }
-
- /**
- * Enqueue a task
- * @param {{ run:function }} task
- */
- Scheduler.prototype.enqueue = function(task) {
- this._queue[this._queueLen++] = task;
- this.run();
- };
-
- /**
- * Enqueue a task to run after the main task queue
- * @param {{ run:function }} task
- */
- Scheduler.prototype.afterQueue = function(task) {
- this._afterQueue[this._afterQueueLen++] = task;
- this.run();
- };
-
- Scheduler.prototype.run = function() {
- if (!this._running) {
- this._running = true;
- this._async(this.drain);
- }
- };
-
- /**
- * Drain the handler queue entirely, and then the after queue
- */
- Scheduler.prototype._drain = function() {
- var i = 0;
- for (; i < this._queueLen; ++i) {
- this._queue[i].run();
- this._queue[i] = void 0;
- }
-
- this._queueLen = 0;
- this._running = false;
-
- for (i = 0; i < this._afterQueueLen; ++i) {
- this._afterQueue[i].run();
- this._afterQueue[i] = void 0;
- }
-
- this._afterQueueLen = 0;
- };
-
- return Scheduler;
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],10:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- /**
- * Custom error type for promises rejected by promise.timeout
- * @param {string} message
- * @constructor
- */
- function TimeoutError (message) {
- Error.call(this);
- this.message = message;
- this.name = TimeoutError.name;
- if (typeof Error.captureStackTrace === 'function') {
- Error.captureStackTrace(this, TimeoutError);
- }
- }
-
- TimeoutError.prototype = Object.create(Error.prototype);
- TimeoutError.prototype.constructor = TimeoutError;
-
- return TimeoutError;
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-},{}],11:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- makeApply.tryCatchResolve = tryCatchResolve;
-
- return makeApply;
-
- function makeApply(Promise, call) {
- if(arguments.length < 2) {
- call = tryCatchResolve;
- }
-
- return apply;
-
- function apply(f, thisArg, args) {
- var p = Promise._defer();
- var l = args.length;
- var params = new Array(l);
- callAndResolve({ f:f, thisArg:thisArg, args:args, params:params, i:l-1, call:call }, p._handler);
-
- return p;
- }
-
- function callAndResolve(c, h) {
- if(c.i < 0) {
- return call(c.f, c.thisArg, c.params, h);
- }
-
- var handler = Promise._handler(c.args[c.i]);
- handler.fold(callAndResolveNext, c, void 0, h);
- }
-
- function callAndResolveNext(c, x, h) {
- c.params[c.i] = x;
- c.i -= 1;
- callAndResolve(c, h);
- }
- }
-
- function tryCatchResolve(f, thisArg, args, resolver) {
- try {
- resolver.resolve(f.apply(thisArg, args));
- } catch(e) {
- resolver.reject(e);
- }
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-
-
-},{}],12:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var state = require('../state');
- var applier = require('../apply');
-
- return function array(Promise) {
-
- var applyFold = applier(Promise);
- var toPromise = Promise.resolve;
- var all = Promise.all;
-
- var ar = Array.prototype.reduce;
- var arr = Array.prototype.reduceRight;
- var slice = Array.prototype.slice;
-
- // Additional array combinators
-
- Promise.any = any;
- Promise.some = some;
- Promise.settle = settle;
-
- Promise.map = map;
- Promise.filter = filter;
- Promise.reduce = reduce;
- Promise.reduceRight = reduceRight;
-
- /**
- * When this promise fulfills with an array, do
- * onFulfilled.apply(void 0, array)
- * @param {function} onFulfilled function to apply
- * @returns {Promise} promise for the result of applying onFulfilled
- */
- Promise.prototype.spread = function(onFulfilled) {
- return this.then(all).then(function(array) {
- return onFulfilled.apply(this, array);
- });
- };
-
- return Promise;
-
- /**
- * One-winner competitive race.
- * Return a promise that will fulfill when one of the promises
- * in the input array fulfills, or will reject when all promises
- * have rejected.
- * @param {array} promises
- * @returns {Promise} promise for the first fulfilled value
- */
- function any(promises) {
- var p = Promise._defer();
- var resolver = p._handler;
- var l = promises.length>>>0;
-
- var pending = l;
- var errors = [];
-
- for (var h, x, i = 0; i < l; ++i) {
- x = promises[i];
- if(x === void 0 && !(i in promises)) {
- --pending;
- continue;
- }
-
- h = Promise._handler(x);
- if(h.state() > 0) {
- resolver.become(h);
- Promise._visitRemaining(promises, i, h);
- break;
- } else {
- h.visit(resolver, handleFulfill, handleReject);
- }
- }
-
- if(pending === 0) {
- resolver.reject(new RangeError('any(): array must not be empty'));
- }
-
- return p;
-
- function handleFulfill(x) {
- /*jshint validthis:true*/
- errors = null;
- this.resolve(x); // this === resolver
- }
-
- function handleReject(e) {
- /*jshint validthis:true*/
- if(this.resolved) { // this === resolver
- return;
- }
-
- errors.push(e);
- if(--pending === 0) {
- this.reject(errors);
- }
- }
- }
-
- /**
- * N-winner competitive race
- * Return a promise that will fulfill when n input promises have
- * fulfilled, or will reject when it becomes impossible for n
- * input promises to fulfill (ie when promises.length - n + 1
- * have rejected)
- * @param {array} promises
- * @param {number} n
- * @returns {Promise} promise for the earliest n fulfillment values
- *
- * @deprecated
- */
- function some(promises, n) {
- /*jshint maxcomplexity:7*/
- var p = Promise._defer();
- var resolver = p._handler;
-
- var results = [];
- var errors = [];
-
- var l = promises.length>>>0;
- var nFulfill = 0;
- var nReject;
- var x, i; // reused in both for() loops
-
- // First pass: count actual array items
- for(i=0; i<l; ++i) {
- x = promises[i];
- if(x === void 0 && !(i in promises)) {
- continue;
- }
- ++nFulfill;
- }
-
- // Compute actual goals
- n = Math.max(n, 0);
- nReject = (nFulfill - n + 1);
- nFulfill = Math.min(n, nFulfill);
-
- if(n > nFulfill) {
- resolver.reject(new RangeError('some(): array must contain at least '
- + n + ' item(s), but had ' + nFulfill));
- } else if(nFulfill === 0) {
- resolver.resolve(results);
- }
-
- // Second pass: observe each array item, make progress toward goals
- for(i=0; i<l; ++i) {
- x = promises[i];
- if(x === void 0 && !(i in promises)) {
- continue;
- }
-
- Promise._handler(x).visit(resolver, fulfill, reject, resolver.notify);
- }
-
- return p;
-
- function fulfill(x) {
- /*jshint validthis:true*/
- if(this.resolved) { // this === resolver
- return;
- }
-
- results.push(x);
- if(--nFulfill === 0) {
- errors = null;
- this.resolve(results);
- }
- }
-
- function reject(e) {
- /*jshint validthis:true*/
- if(this.resolved) { // this === resolver
- return;
- }
-
- errors.push(e);
- if(--nReject === 0) {
- results = null;
- this.reject(errors);
- }
- }
- }
-
- /**
- * Apply f to the value of each promise in a list of promises
- * and return a new list containing the results.
- * @param {array} promises
- * @param {function(x:*, index:Number):*} f mapping function
- * @returns {Promise}
- */
- function map(promises, f) {
- return Promise._traverse(f, promises);
- }
-
- /**
- * Filter the provided array of promises using the provided predicate. Input may
- * contain promises and values
- * @param {Array} promises array of promises and values
- * @param {function(x:*, index:Number):boolean} predicate filtering predicate.
- * Must return truthy (or promise for truthy) for items to retain.
- * @returns {Promise} promise that will fulfill with an array containing all items
- * for which predicate returned truthy.
- */
- function filter(promises, predicate) {
- var a = slice.call(promises);
- return Promise._traverse(predicate, a).then(function(keep) {
- return filterSync(a, keep);
- });
- }
-
- function filterSync(promises, keep) {
- // Safe because we know all promises have fulfilled if we've made it this far
- var l = keep.length;
- var filtered = new Array(l);
- for(var i=0, j=0; i<l; ++i) {
- if(keep[i]) {
- filtered[j++] = Promise._handler(promises[i]).value;
- }
- }
- filtered.length = j;
- return filtered;
-
- }
-
- /**
- * Return a promise that will always fulfill with an array containing
- * the outcome states of all input promises. The returned promise
- * will never reject.
- * @param {Array} promises
- * @returns {Promise} promise for array of settled state descriptors
- */
- function settle(promises) {
- return all(promises.map(settleOne));
- }
-
- function settleOne(p) {
- // Optimize the case where we get an already-resolved when.js promise
- // by extracting its state:
- var handler;
- if (p instanceof Promise) {
- // This is our own Promise type and we can reach its handler internals:
- handler = p._handler.join();
- }
- if((handler && handler.state() === 0) || !handler) {
- // Either still pending, or not a Promise at all:
- return toPromise(p).then(state.fulfilled, state.rejected);
- }
-
- // The promise is our own, but it is already resolved. Take a shortcut.
- // Since we're not actually handling the resolution, we need to disable
- // rejection reporting.
- handler._unreport();
- return state.inspect(handler);
- }
-
- /**
- * Traditional reduce function, similar to `Array.prototype.reduce()`, but
- * input may contain promises and/or values, and reduceFunc
- * may return either a value or a promise, *and* initialValue may
- * be a promise for the starting value.
- * @param {Array|Promise} promises array or promise for an array of anything,
- * may contain a mix of promises and values.
- * @param {function(accumulated:*, x:*, index:Number):*} f reduce function
- * @returns {Promise} that will resolve to the final reduced value
- */
- function reduce(promises, f /*, initialValue */) {
- return arguments.length > 2 ? ar.call(promises, liftCombine(f), arguments[2])
- : ar.call(promises, liftCombine(f));
- }
-
- /**
- * Traditional reduce function, similar to `Array.prototype.reduceRight()`, but
- * input may contain promises and/or values, and reduceFunc
- * may return either a value or a promise, *and* initialValue may
- * be a promise for the starting value.
- * @param {Array|Promise} promises array or promise for an array of anything,
- * may contain a mix of promises and values.
- * @param {function(accumulated:*, x:*, index:Number):*} f reduce function
- * @returns {Promise} that will resolve to the final reduced value
- */
- function reduceRight(promises, f /*, initialValue */) {
- return arguments.length > 2 ? arr.call(promises, liftCombine(f), arguments[2])
- : arr.call(promises, liftCombine(f));
- }
-
- function liftCombine(f) {
- return function(z, x, i) {
- return applyFold(f, void 0, [z,x,i]);
- };
- }
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{"../apply":11,"../state":25}],13:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function flow(Promise) {
-
- var resolve = Promise.resolve;
- var reject = Promise.reject;
- var origCatch = Promise.prototype['catch'];
-
- /**
- * Handle the ultimate fulfillment value or rejection reason, and assume
- * responsibility for all errors. If an error propagates out of result
- * or handleFatalError, it will be rethrown to the host, resulting in a
- * loud stack track on most platforms and a crash on some.
- * @param {function?} onResult
- * @param {function?} onError
- * @returns {undefined}
- */
- Promise.prototype.done = function(onResult, onError) {
- this._handler.visit(this._handler.receiver, onResult, onError);
- };
-
- /**
- * Add Error-type and predicate matching to catch. Examples:
- * promise.catch(TypeError, handleTypeError)
- * .catch(predicate, handleMatchedErrors)
- * .catch(handleRemainingErrors)
- * @param onRejected
- * @returns {*}
- */
- Promise.prototype['catch'] = Promise.prototype.otherwise = function(onRejected) {
- if (arguments.length < 2) {
- return origCatch.call(this, onRejected);
- }
-
- if(typeof onRejected !== 'function') {
- return this.ensure(rejectInvalidPredicate);
- }
-
- return origCatch.call(this, createCatchFilter(arguments[1], onRejected));
- };
-
- /**
- * Wraps the provided catch handler, so that it will only be called
- * if the predicate evaluates truthy
- * @param {?function} handler
- * @param {function} predicate
- * @returns {function} conditional catch handler
- */
- function createCatchFilter(handler, predicate) {
- return function(e) {
- return evaluatePredicate(e, predicate)
- ? handler.call(this, e)
- : reject(e);
- };
- }
-
- /**
- * Ensures that onFulfilledOrRejected will be called regardless of whether
- * this promise is fulfilled or rejected. onFulfilledOrRejected WILL NOT
- * receive the promises' value or reason. Any returned value will be disregarded.
- * onFulfilledOrRejected may throw or return a rejected promise to signal
- * an additional error.
- * @param {function} handler handler to be called regardless of
- * fulfillment or rejection
- * @returns {Promise}
- */
- Promise.prototype['finally'] = Promise.prototype.ensure = function(handler) {
- if(typeof handler !== 'function') {
- return this;
- }
-
- return this.then(function(x) {
- return runSideEffect(handler, this, identity, x);
- }, function(e) {
- return runSideEffect(handler, this, reject, e);
- });
- };
-
- function runSideEffect (handler, thisArg, propagate, value) {
- var result = handler.call(thisArg);
- return maybeThenable(result)
- ? propagateValue(result, propagate, value)
- : propagate(value);
- }
-
- function propagateValue (result, propagate, x) {
- return resolve(result).then(function () {
- return propagate(x);
- });
- }
-
- /**
- * Recover from a failure by returning a defaultValue. If defaultValue
- * is a promise, it's fulfillment value will be used. If defaultValue is
- * a promise that rejects, the returned promise will reject with the
- * same reason.
- * @param {*} defaultValue
- * @returns {Promise} new promise
- */
- Promise.prototype['else'] = Promise.prototype.orElse = function(defaultValue) {
- return this.then(void 0, function() {
- return defaultValue;
- });
- };
-
- /**
- * Shortcut for .then(function() { return value; })
- * @param {*} value
- * @return {Promise} a promise that:
- * - is fulfilled if value is not a promise, or
- * - if value is a promise, will fulfill with its value, or reject
- * with its reason.
- */
- Promise.prototype['yield'] = function(value) {
- return this.then(function() {
- return value;
- });
- };
-
- /**
- * Runs a side effect when this promise fulfills, without changing the
- * fulfillment value.
- * @param {function} onFulfilledSideEffect
- * @returns {Promise}
- */
- Promise.prototype.tap = function(onFulfilledSideEffect) {
- return this.then(onFulfilledSideEffect)['yield'](this);
- };
-
- return Promise;
- };
-
- function rejectInvalidPredicate() {
- throw new TypeError('catch predicate must be a function');
- }
-
- function evaluatePredicate(e, predicate) {
- return isError(predicate) ? e instanceof predicate : predicate(e);
- }
-
- function isError(predicate) {
- return predicate === Error
- || (predicate != null && predicate.prototype instanceof Error);
- }
-
- function maybeThenable(x) {
- return (typeof x === 'object' || typeof x === 'function') && x !== null;
- }
-
- function identity(x) {
- return x;
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],14:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-/** @author Jeff Escalante */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function fold(Promise) {
-
- Promise.prototype.fold = function(f, z) {
- var promise = this._beget();
-
- this._handler.fold(function(z, x, to) {
- Promise._handler(z).fold(function(x, z, to) {
- to.resolve(f.call(this, z, x));
- }, x, this, to);
- }, z, promise._handler.receiver, promise._handler);
-
- return promise;
- };
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],15:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var inspect = require('../state').inspect;
-
- return function inspection(Promise) {
-
- Promise.prototype.inspect = function() {
- return inspect(Promise._handler(this));
- };
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{"../state":25}],16:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function generate(Promise) {
-
- var resolve = Promise.resolve;
-
- Promise.iterate = iterate;
- Promise.unfold = unfold;
-
- return Promise;
-
- /**
- * @deprecated Use github.com/cujojs/most streams and most.iterate
- * Generate a (potentially infinite) stream of promised values:
- * x, f(x), f(f(x)), etc. until condition(x) returns true
- * @param {function} f function to generate a new x from the previous x
- * @param {function} condition function that, given the current x, returns
- * truthy when the iterate should stop
- * @param {function} handler function to handle the value produced by f
- * @param {*|Promise} x starting value, may be a promise
- * @return {Promise} the result of the last call to f before
- * condition returns true
- */
- function iterate(f, condition, handler, x) {
- return unfold(function(x) {
- return [x, f(x)];
- }, condition, handler, x);
- }
-
- /**
- * @deprecated Use github.com/cujojs/most streams and most.unfold
- * Generate a (potentially infinite) stream of promised values
- * by applying handler(generator(seed)) iteratively until
- * condition(seed) returns true.
- * @param {function} unspool function that generates a [value, newSeed]
- * given a seed.
- * @param {function} condition function that, given the current seed, returns
- * truthy when the unfold should stop
- * @param {function} handler function to handle the value produced by unspool
- * @param x {*|Promise} starting value, may be a promise
- * @return {Promise} the result of the last value produced by unspool before
- * condition returns true
- */
- function unfold(unspool, condition, handler, x) {
- return resolve(x).then(function(seed) {
- return resolve(condition(seed)).then(function(done) {
- return done ? seed : resolve(unspool(seed)).spread(next);
- });
- });
-
- function next(item, newSeed) {
- return resolve(handler(item)).then(function() {
- return unfold(unspool, condition, handler, newSeed);
- });
- }
- }
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],17:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function progress(Promise) {
-
- /**
- * @deprecated
- * Register a progress handler for this promise
- * @param {function} onProgress
- * @returns {Promise}
- */
- Promise.prototype.progress = function(onProgress) {
- return this.then(void 0, void 0, onProgress);
- };
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],18:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var env = require('../env');
- var TimeoutError = require('../TimeoutError');
-
- function setTimeout(f, ms, x, y) {
- return env.setTimer(function() {
- f(x, y, ms);
- }, ms);
- }
-
- return function timed(Promise) {
- /**
- * Return a new promise whose fulfillment value is revealed only
- * after ms milliseconds
- * @param {number} ms milliseconds
- * @returns {Promise}
- */
- Promise.prototype.delay = function(ms) {
- var p = this._beget();
- this._handler.fold(handleDelay, ms, void 0, p._handler);
- return p;
- };
-
- function handleDelay(ms, x, h) {
- setTimeout(resolveDelay, ms, x, h);
- }
-
- function resolveDelay(x, h) {
- h.resolve(x);
- }
-
- /**
- * Return a new promise that rejects after ms milliseconds unless
- * this promise fulfills earlier, in which case the returned promise
- * fulfills with the same value.
- * @param {number} ms milliseconds
- * @param {Error|*=} reason optional rejection reason to use, defaults
- * to a TimeoutError if not provided
- * @returns {Promise}
- */
- Promise.prototype.timeout = function(ms, reason) {
- var p = this._beget();
- var h = p._handler;
-
- var t = setTimeout(onTimeout, ms, reason, p._handler);
-
- this._handler.visit(h,
- function onFulfill(x) {
- env.clearTimer(t);
- this.resolve(x); // this = h
- },
- function onReject(x) {
- env.clearTimer(t);
- this.reject(x); // this = h
- },
- h.notify);
-
- return p;
- };
-
- function onTimeout(reason, h, ms) {
- var e = typeof reason === 'undefined'
- ? new TimeoutError('timed out after ' + ms + 'ms')
- : reason;
- h.reject(e);
- }
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{"../TimeoutError":10,"../env":21}],19:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var setTimer = require('../env').setTimer;
- var format = require('../format');
-
- return function unhandledRejection(Promise) {
-
- var logError = noop;
- var logInfo = noop;
- var localConsole;
-
- if(typeof console !== 'undefined') {
- // Alias console to prevent things like uglify's drop_console option from
- // removing console.log/error. Unhandled rejections fall into the same
- // category as uncaught exceptions, and build tools shouldn't silence them.
- localConsole = console;
- logError = typeof localConsole.error !== 'undefined'
- ? function (e) { localConsole.error(e); }
- : function (e) { localConsole.log(e); };
-
- logInfo = typeof localConsole.info !== 'undefined'
- ? function (e) { localConsole.info(e); }
- : function (e) { localConsole.log(e); };
- }
-
- Promise.onPotentiallyUnhandledRejection = function(rejection) {
- enqueue(report, rejection);
- };
-
- Promise.onPotentiallyUnhandledRejectionHandled = function(rejection) {
- enqueue(unreport, rejection);
- };
-
- Promise.onFatalRejection = function(rejection) {
- enqueue(throwit, rejection.value);
- };
-
- var tasks = [];
- var reported = [];
- var running = null;
-
- function report(r) {
- if(!r.handled) {
- reported.push(r);
- logError('Potentially unhandled rejection [' + r.id + '] ' + format.formatError(r.value));
- }
- }
-
- function unreport(r) {
- var i = reported.indexOf(r);
- if(i >= 0) {
- reported.splice(i, 1);
- logInfo('Handled previous rejection [' + r.id + '] ' + format.formatObject(r.value));
- }
- }
-
- function enqueue(f, x) {
- tasks.push(f, x);
- if(running === null) {
- running = setTimer(flush, 0);
- }
- }
-
- function flush() {
- running = null;
- while(tasks.length > 0) {
- tasks.shift()(tasks.shift());
- }
- }
-
- return Promise;
- };
-
- function throwit(e) {
- throw e;
- }
-
- function noop() {}
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{"../env":21,"../format":22}],20:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function addWith(Promise) {
- /**
- * Returns a promise whose handlers will be called with `this` set to
- * the supplied receiver. Subsequent promises derived from the
- * returned promise will also have their handlers called with receiver
- * as `this`. Calling `with` with undefined or no arguments will return
- * a promise whose handlers will again be called in the usual Promises/A+
- * way (no `this`) thus safely undoing any previous `with` in the
- * promise chain.
- *
- * WARNING: Promises returned from `with`/`withThis` are NOT Promises/A+
- * compliant, specifically violating 2.2.5 (http://promisesaplus.com/#point-41)
- *
- * @param {object} receiver `this` value for all handlers attached to
- * the returned promise.
- * @returns {Promise}
- */
- Promise.prototype['with'] = Promise.prototype.withThis = function(receiver) {
- var p = this._beget();
- var child = p._handler;
- child.receiver = receiver;
- this._handler.chain(child, receiver);
- return p;
- };
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-
-},{}],21:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-/*global process,document,setTimeout,clearTimeout,MutationObserver,WebKitMutationObserver*/
-(function(define) { 'use strict';
-define(function(require) {
- /*jshint maxcomplexity:6*/
-
- // Sniff "best" async scheduling option
- // Prefer process.nextTick or MutationObserver, then check for
- // setTimeout, and finally vertx, since its the only env that doesn't
- // have setTimeout
-
- var MutationObs;
- var capturedSetTimeout = typeof setTimeout !== 'undefined' && setTimeout;
-
- // Default env
- var setTimer = function(f, ms) { return setTimeout(f, ms); };
- var clearTimer = function(t) { return clearTimeout(t); };
- var asap = function (f) { return capturedSetTimeout(f, 0); };
-
- // Detect specific env
- if (isNode()) { // Node
- asap = function (f) { return process.nextTick(f); };
-
- } else if (MutationObs = hasMutationObserver()) { // Modern browser
- asap = initMutationObserver(MutationObs);
-
- } else if (!capturedSetTimeout) { // vert.x
- var vertxRequire = require;
- var vertx = vertxRequire('vertx');
- setTimer = function (f, ms) { return vertx.setTimer(ms, f); };
- clearTimer = vertx.cancelTimer;
- asap = vertx.runOnLoop || vertx.runOnContext;
- }
-
- return {
- setTimer: setTimer,
- clearTimer: clearTimer,
- asap: asap
- };
-
- function isNode () {
- return typeof process !== 'undefined' &&
- Object.prototype.toString.call(process) === '[object process]';
- }
-
- function hasMutationObserver () {
- return (typeof MutationObserver !== 'undefined' && MutationObserver) ||
- (typeof WebKitMutationObserver !== 'undefined' && WebKitMutationObserver);
- }
-
- function initMutationObserver(MutationObserver) {
- var scheduled;
- var node = document.createTextNode('');
- var o = new MutationObserver(run);
- o.observe(node, { characterData: true });
-
- function run() {
- var f = scheduled;
- scheduled = void 0;
- f();
- }
-
- var i = 0;
- return function (f) {
- scheduled = f;
- node.data = (i ^= 1);
- };
- }
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{}],22:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return {
- formatError: formatError,
- formatObject: formatObject,
- tryStringify: tryStringify
- };
-
- /**
- * Format an error into a string. If e is an Error and has a stack property,
- * it's returned. Otherwise, e is formatted using formatObject, with a
- * warning added about e not being a proper Error.
- * @param {*} e
- * @returns {String} formatted string, suitable for output to developers
- */
- function formatError(e) {
- var s = typeof e === 'object' && e !== null && (e.stack || e.message) ? e.stack || e.message : formatObject(e);
- return e instanceof Error ? s : s + ' (WARNING: non-Error used)';
- }
-
- /**
- * Format an object, detecting "plain" objects and running them through
- * JSON.stringify if possible.
- * @param {Object} o
- * @returns {string}
- */
- function formatObject(o) {
- var s = String(o);
- if(s === '[object Object]' && typeof JSON !== 'undefined') {
- s = tryStringify(o, s);
- }
- return s;
- }
-
- /**
- * Try to return the result of JSON.stringify(x). If that fails, return
- * defaultValue
- * @param {*} x
- * @param {*} defaultValue
- * @returns {String|*} JSON.stringify(x) or defaultValue
- */
- function tryStringify(x, defaultValue) {
- try {
- return JSON.stringify(x);
- } catch(e) {
- return defaultValue;
- }
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],23:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function liftAll(liftOne, combine, dst, src) {
- if(typeof combine === 'undefined') {
- combine = defaultCombine;
- }
-
- return Object.keys(src).reduce(function(dst, key) {
- var f = src[key];
- return typeof f === 'function' ? combine(dst, liftOne(f), key) : dst;
- }, typeof dst === 'undefined' ? defaultDst(src) : dst);
- };
-
- function defaultCombine(o, f, k) {
- o[k] = f;
- return o;
- }
-
- function defaultDst(src) {
- return typeof src === 'function' ? src.bind() : Object.create(src);
- }
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],24:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function makePromise(environment) {
-
- var tasks = environment.scheduler;
- var emitRejection = initEmitRejection();
-
- var objectCreate = Object.create ||
- function(proto) {
- function Child() {}
- Child.prototype = proto;
- return new Child();
- };
-
- /**
- * Create a promise whose fate is determined by resolver
- * @constructor
- * @returns {Promise} promise
- * @name Promise
- */
- function Promise(resolver, handler) {
- this._handler = resolver === Handler ? handler : init(resolver);
- }
-
- /**
- * Run the supplied resolver
- * @param resolver
- * @returns {Pending}
- */
- function init(resolver) {
- var handler = new Pending();
-
- try {
- resolver(promiseResolve, promiseReject, promiseNotify);
- } catch (e) {
- promiseReject(e);
- }
-
- return handler;
-
- /**
- * Transition from pre-resolution state to post-resolution state, notifying
- * all listeners of the ultimate fulfillment or rejection
- * @param {*} x resolution value
- */
- function promiseResolve (x) {
- handler.resolve(x);
- }
- /**
- * Reject this promise with reason, which will be used verbatim
- * @param {Error|*} reason rejection reason, strongly suggested
- * to be an Error type
- */
- function promiseReject (reason) {
- handler.reject(reason);
- }
-
- /**
- * @deprecated
- * Issue a progress event, notifying all progress listeners
- * @param {*} x progress event payload to pass to all listeners
- */
- function promiseNotify (x) {
- handler.notify(x);
- }
- }
-
- // Creation
-
- Promise.resolve = resolve;
- Promise.reject = reject;
- Promise.never = never;
-
- Promise._defer = defer;
- Promise._handler = getHandler;
-
- /**
- * Returns a trusted promise. If x is already a trusted promise, it is
- * returned, otherwise returns a new trusted Promise which follows x.
- * @param {*} x
- * @return {Promise} promise
- */
- function resolve(x) {
- return isPromise(x) ? x
- : new Promise(Handler, new Async(getHandler(x)));
- }
-
- /**
- * Return a reject promise with x as its reason (x is used verbatim)
- * @param {*} x
- * @returns {Promise} rejected promise
- */
- function reject(x) {
- return new Promise(Handler, new Async(new Rejected(x)));
- }
-
- /**
- * Return a promise that remains pending forever
- * @returns {Promise} forever-pending promise.
- */
- function never() {
- return foreverPendingPromise; // Should be frozen
- }
-
- /**
- * Creates an internal {promise, resolver} pair
- * @private
- * @returns {Promise}
- */
- function defer() {
- return new Promise(Handler, new Pending());
- }
-
- // Transformation and flow control
-
- /**
- * Transform this promise's fulfillment value, returning a new Promise
- * for the transformed result. If the promise cannot be fulfilled, onRejected
- * is called with the reason. onProgress *may* be called with updates toward
- * this promise's fulfillment.
- * @param {function=} onFulfilled fulfillment handler
- * @param {function=} onRejected rejection handler
- * @param {function=} onProgress @deprecated progress handler
- * @return {Promise} new promise
- */
- Promise.prototype.then = function(onFulfilled, onRejected, onProgress) {
- var parent = this._handler;
- var state = parent.join().state();
-
- if ((typeof onFulfilled !== 'function' && state > 0) ||
- (typeof onRejected !== 'function' && state < 0)) {
- // Short circuit: value will not change, simply share handler
- return new this.constructor(Handler, parent);
- }
-
- var p = this._beget();
- var child = p._handler;
-
- parent.chain(child, parent.receiver, onFulfilled, onRejected, onProgress);
-
- return p;
- };
-
- /**
- * If this promise cannot be fulfilled due to an error, call onRejected to
- * handle the error. Shortcut for .then(undefined, onRejected)
- * @param {function?} onRejected
- * @return {Promise}
- */
- Promise.prototype['catch'] = function(onRejected) {
- return this.then(void 0, onRejected);
- };
-
- /**
- * Creates a new, pending promise of the same type as this promise
- * @private
- * @returns {Promise}
- */
- Promise.prototype._beget = function() {
- return begetFrom(this._handler, this.constructor);
- };
-
- function begetFrom(parent, Promise) {
- var child = new Pending(parent.receiver, parent.join().context);
- return new Promise(Handler, child);
- }
-
- // Array combinators
-
- Promise.all = all;
- Promise.race = race;
- Promise._traverse = traverse;
-
- /**
- * Return a promise that will fulfill when all promises in the
- * input array have fulfilled, or will reject when one of the
- * promises rejects.
- * @param {array} promises array of promises
- * @returns {Promise} promise for array of fulfillment values
- */
- function all(promises) {
- return traverseWith(snd, null, promises);
- }
-
- /**
- * Array<Promise<X>> -> Promise<Array<f(X)>>
- * @private
- * @param {function} f function to apply to each promise's value
- * @param {Array} promises array of promises
- * @returns {Promise} promise for transformed values
- */
- function traverse(f, promises) {
- return traverseWith(tryCatch2, f, promises);
- }
-
- function traverseWith(tryMap, f, promises) {
- var handler = typeof f === 'function' ? mapAt : settleAt;
-
- var resolver = new Pending();
- var pending = promises.length >>> 0;
- var results = new Array(pending);
-
- for (var i = 0, x; i < promises.length && !resolver.resolved; ++i) {
- x = promises[i];
-
- if (x === void 0 && !(i in promises)) {
- --pending;
- continue;
- }
-
- traverseAt(promises, handler, i, x, resolver);
- }
-
- if(pending === 0) {
- resolver.become(new Fulfilled(results));
- }
-
- return new Promise(Handler, resolver);
-
- function mapAt(i, x, resolver) {
- if(!resolver.resolved) {
- traverseAt(promises, settleAt, i, tryMap(f, x, i), resolver);
- }
- }
-
- function settleAt(i, x, resolver) {
- results[i] = x;
- if(--pending === 0) {
- resolver.become(new Fulfilled(results));
- }
- }
- }
-
- function traverseAt(promises, handler, i, x, resolver) {
- if (maybeThenable(x)) {
- var h = getHandlerMaybeThenable(x);
- var s = h.state();
-
- if (s === 0) {
- h.fold(handler, i, void 0, resolver);
- } else if (s > 0) {
- handler(i, h.value, resolver);
- } else {
- resolver.become(h);
- visitRemaining(promises, i+1, h);
- }
- } else {
- handler(i, x, resolver);
- }
- }
-
- Promise._visitRemaining = visitRemaining;
- function visitRemaining(promises, start, handler) {
- for(var i=start; i<promises.length; ++i) {
- markAsHandled(getHandler(promises[i]), handler);
- }
- }
-
- function markAsHandled(h, handler) {
- if(h === handler) {
- return;
- }
-
- var s = h.state();
- if(s === 0) {
- h.visit(h, void 0, h._unreport);
- } else if(s < 0) {
- h._unreport();
- }
- }
-
- /**
- * Fulfill-reject competitive race. Return a promise that will settle
- * to the same state as the earliest input promise to settle.
- *
- * WARNING: The ES6 Promise spec requires that race()ing an empty array
- * must return a promise that is pending forever. This implementation
- * returns a singleton forever-pending promise, the same singleton that is
- * returned by Promise.never(), thus can be checked with ===
- *
- * @param {array} promises array of promises to race
- * @returns {Promise} if input is non-empty, a promise that will settle
- * to the same outcome as the earliest input promise to settle. if empty
- * is empty, returns a promise that will never settle.
- */
- function race(promises) {
- if(typeof promises !== 'object' || promises === null) {
- return reject(new TypeError('non-iterable passed to race()'));
- }
-
- // Sigh, race([]) is untestable unless we return *something*
- // that is recognizable without calling .then() on it.
- return promises.length === 0 ? never()
- : promises.length === 1 ? resolve(promises[0])
- : runRace(promises);
- }
-
- function runRace(promises) {
- var resolver = new Pending();
- var i, x, h;
- for(i=0; i<promises.length; ++i) {
- x = promises[i];
- if (x === void 0 && !(i in promises)) {
- continue;
- }
-
- h = getHandler(x);
- if(h.state() !== 0) {
- resolver.become(h);
- visitRemaining(promises, i+1, h);
- break;
- } else {
- h.visit(resolver, resolver.resolve, resolver.reject);
- }
- }
- return new Promise(Handler, resolver);
- }
-
- // Promise internals
- // Below this, everything is @private
-
- /**
- * Get an appropriate handler for x, without checking for cycles
- * @param {*} x
- * @returns {object} handler
- */
- function getHandler(x) {
- if(isPromise(x)) {
- return x._handler.join();
- }
- return maybeThenable(x) ? getHandlerUntrusted(x) : new Fulfilled(x);
- }
-
- /**
- * Get a handler for thenable x.
- * NOTE: You must only call this if maybeThenable(x) == true
- * @param {object|function|Promise} x
- * @returns {object} handler
- */
- function getHandlerMaybeThenable(x) {
- return isPromise(x) ? x._handler.join() : getHandlerUntrusted(x);
- }
-
- /**
- * Get a handler for potentially untrusted thenable x
- * @param {*} x
- * @returns {object} handler
- */
- function getHandlerUntrusted(x) {
- try {
- var untrustedThen = x.then;
- return typeof untrustedThen === 'function'
- ? new Thenable(untrustedThen, x)
- : new Fulfilled(x);
- } catch(e) {
- return new Rejected(e);
- }
- }
-
- /**
- * Handler for a promise that is pending forever
- * @constructor
- */
- function Handler() {}
-
- Handler.prototype.when
- = Handler.prototype.become
- = Handler.prototype.notify // deprecated
- = Handler.prototype.fail
- = Handler.prototype._unreport
- = Handler.prototype._report
- = noop;
-
- Handler.prototype._state = 0;
-
- Handler.prototype.state = function() {
- return this._state;
- };
-
- /**
- * Recursively collapse handler chain to find the handler
- * nearest to the fully resolved value.
- * @returns {object} handler nearest the fully resolved value
- */
- Handler.prototype.join = function() {
- var h = this;
- while(h.handler !== void 0) {
- h = h.handler;
- }
- return h;
- };
-
- Handler.prototype.chain = function(to, receiver, fulfilled, rejected, progress) {
- this.when({
- resolver: to,
- receiver: receiver,
- fulfilled: fulfilled,
- rejected: rejected,
- progress: progress
- });
- };
-
- Handler.prototype.visit = function(receiver, fulfilled, rejected, progress) {
- this.chain(failIfRejected, receiver, fulfilled, rejected, progress);
- };
-
- Handler.prototype.fold = function(f, z, c, to) {
- this.when(new Fold(f, z, c, to));
- };
-
- /**
- * Handler that invokes fail() on any handler it becomes
- * @constructor
- */
- function FailIfRejected() {}
-
- inherit(Handler, FailIfRejected);
-
- FailIfRejected.prototype.become = function(h) {
- h.fail();
- };
-
- var failIfRejected = new FailIfRejected();
-
- /**
- * Handler that manages a queue of consumers waiting on a pending promise
- * @constructor
- */
- function Pending(receiver, inheritedContext) {
- Promise.createContext(this, inheritedContext);
-
- this.consumers = void 0;
- this.receiver = receiver;
- this.handler = void 0;
- this.resolved = false;
- }
-
- inherit(Handler, Pending);
-
- Pending.prototype._state = 0;
-
- Pending.prototype.resolve = function(x) {
- this.become(getHandler(x));
- };
-
- Pending.prototype.reject = function(x) {
- if(this.resolved) {
- return;
- }
-
- this.become(new Rejected(x));
- };
-
- Pending.prototype.join = function() {
- if (!this.resolved) {
- return this;
- }
-
- var h = this;
-
- while (h.handler !== void 0) {
- h = h.handler;
- if (h === this) {
- return this.handler = cycle();
- }
- }
-
- return h;
- };
-
- Pending.prototype.run = function() {
- var q = this.consumers;
- var handler = this.handler;
- this.handler = this.handler.join();
- this.consumers = void 0;
-
- for (var i = 0; i < q.length; ++i) {
- handler.when(q[i]);
- }
- };
-
- Pending.prototype.become = function(handler) {
- if(this.resolved) {
- return;
- }
-
- this.resolved = true;
- this.handler = handler;
- if(this.consumers !== void 0) {
- tasks.enqueue(this);
- }
-
- if(this.context !== void 0) {
- handler._report(this.context);
- }
- };
-
- Pending.prototype.when = function(continuation) {
- if(this.resolved) {
- tasks.enqueue(new ContinuationTask(continuation, this.handler));
- } else {
- if(this.consumers === void 0) {
- this.consumers = [continuation];
- } else {
- this.consumers.push(continuation);
- }
- }
- };
-
- /**
- * @deprecated
- */
- Pending.prototype.notify = function(x) {
- if(!this.resolved) {
- tasks.enqueue(new ProgressTask(x, this));
- }
- };
-
- Pending.prototype.fail = function(context) {
- var c = typeof context === 'undefined' ? this.context : context;
- this.resolved && this.handler.join().fail(c);
- };
-
- Pending.prototype._report = function(context) {
- this.resolved && this.handler.join()._report(context);
- };
-
- Pending.prototype._unreport = function() {
- this.resolved && this.handler.join()._unreport();
- };
-
- /**
- * Wrap another handler and force it into a future stack
- * @param {object} handler
- * @constructor
- */
- function Async(handler) {
- this.handler = handler;
- }
-
- inherit(Handler, Async);
-
- Async.prototype.when = function(continuation) {
- tasks.enqueue(new ContinuationTask(continuation, this));
- };
-
- Async.prototype._report = function(context) {
- this.join()._report(context);
- };
-
- Async.prototype._unreport = function() {
- this.join()._unreport();
- };
-
- /**
- * Handler that wraps an untrusted thenable and assimilates it in a future stack
- * @param {function} then
- * @param {{then: function}} thenable
- * @constructor
- */
- function Thenable(then, thenable) {
- Pending.call(this);
- tasks.enqueue(new AssimilateTask(then, thenable, this));
- }
-
- inherit(Pending, Thenable);
-
- /**
- * Handler for a fulfilled promise
- * @param {*} x fulfillment value
- * @constructor
- */
- function Fulfilled(x) {
- Promise.createContext(this);
- this.value = x;
- }
-
- inherit(Handler, Fulfilled);
-
- Fulfilled.prototype._state = 1;
-
- Fulfilled.prototype.fold = function(f, z, c, to) {
- runContinuation3(f, z, this, c, to);
- };
-
- Fulfilled.prototype.when = function(cont) {
- runContinuation1(cont.fulfilled, this, cont.receiver, cont.resolver);
- };
-
- var errorId = 0;
-
- /**
- * Handler for a rejected promise
- * @param {*} x rejection reason
- * @constructor
- */
- function Rejected(x) {
- Promise.createContext(this);
-
- this.id = ++errorId;
- this.value = x;
- this.handled = false;
- this.reported = false;
-
- this._report();
- }
-
- inherit(Handler, Rejected);
-
- Rejected.prototype._state = -1;
-
- Rejected.prototype.fold = function(f, z, c, to) {
- to.become(this);
- };
-
- Rejected.prototype.when = function(cont) {
- if(typeof cont.rejected === 'function') {
- this._unreport();
- }
- runContinuation1(cont.rejected, this, cont.receiver, cont.resolver);
- };
-
- Rejected.prototype._report = function(context) {
- tasks.afterQueue(new ReportTask(this, context));
- };
-
- Rejected.prototype._unreport = function() {
- if(this.handled) {
- return;
- }
- this.handled = true;
- tasks.afterQueue(new UnreportTask(this));
- };
-
- Rejected.prototype.fail = function(context) {
- this.reported = true;
- emitRejection('unhandledRejection', this);
- Promise.onFatalRejection(this, context === void 0 ? this.context : context);
- };
-
- function ReportTask(rejection, context) {
- this.rejection = rejection;
- this.context = context;
- }
-
- ReportTask.prototype.run = function() {
- if(!this.rejection.handled && !this.rejection.reported) {
- this.rejection.reported = true;
- emitRejection('unhandledRejection', this.rejection) ||
- Promise.onPotentiallyUnhandledRejection(this.rejection, this.context);
- }
- };
-
- function UnreportTask(rejection) {
- this.rejection = rejection;
- }
-
- UnreportTask.prototype.run = function() {
- if(this.rejection.reported) {
- emitRejection('rejectionHandled', this.rejection) ||
- Promise.onPotentiallyUnhandledRejectionHandled(this.rejection);
- }
- };
-
- // Unhandled rejection hooks
- // By default, everything is a noop
-
- Promise.createContext
- = Promise.enterContext
- = Promise.exitContext
- = Promise.onPotentiallyUnhandledRejection
- = Promise.onPotentiallyUnhandledRejectionHandled
- = Promise.onFatalRejection
- = noop;
-
- // Errors and singletons
-
- var foreverPendingHandler = new Handler();
- var foreverPendingPromise = new Promise(Handler, foreverPendingHandler);
-
- function cycle() {
- return new Rejected(new TypeError('Promise cycle'));
- }
-
- // Task runners
-
- /**
- * Run a single consumer
- * @constructor
- */
- function ContinuationTask(continuation, handler) {
- this.continuation = continuation;
- this.handler = handler;
- }
-
- ContinuationTask.prototype.run = function() {
- this.handler.join().when(this.continuation);
- };
-
- /**
- * Run a queue of progress handlers
- * @constructor
- */
- function ProgressTask(value, handler) {
- this.handler = handler;
- this.value = value;
- }
-
- ProgressTask.prototype.run = function() {
- var q = this.handler.consumers;
- if(q === void 0) {
- return;
- }
-
- for (var c, i = 0; i < q.length; ++i) {
- c = q[i];
- runNotify(c.progress, this.value, this.handler, c.receiver, c.resolver);
- }
- };
-
- /**
- * Assimilate a thenable, sending it's value to resolver
- * @param {function} then
- * @param {object|function} thenable
- * @param {object} resolver
- * @constructor
- */
- function AssimilateTask(then, thenable, resolver) {
- this._then = then;
- this.thenable = thenable;
- this.resolver = resolver;
- }
-
- AssimilateTask.prototype.run = function() {
- var h = this.resolver;
- tryAssimilate(this._then, this.thenable, _resolve, _reject, _notify);
-
- function _resolve(x) { h.resolve(x); }
- function _reject(x) { h.reject(x); }
- function _notify(x) { h.notify(x); }
- };
-
- function tryAssimilate(then, thenable, resolve, reject, notify) {
- try {
- then.call(thenable, resolve, reject, notify);
- } catch (e) {
- reject(e);
- }
- }
-
- /**
- * Fold a handler value with z
- * @constructor
- */
- function Fold(f, z, c, to) {
- this.f = f; this.z = z; this.c = c; this.to = to;
- this.resolver = failIfRejected;
- this.receiver = this;
- }
-
- Fold.prototype.fulfilled = function(x) {
- this.f.call(this.c, this.z, x, this.to);
- };
-
- Fold.prototype.rejected = function(x) {
- this.to.reject(x);
- };
-
- Fold.prototype.progress = function(x) {
- this.to.notify(x);
- };
-
- // Other helpers
-
- /**
- * @param {*} x
- * @returns {boolean} true iff x is a trusted Promise
- */
- function isPromise(x) {
- return x instanceof Promise;
- }
-
- /**
- * Test just enough to rule out primitives, in order to take faster
- * paths in some code
- * @param {*} x
- * @returns {boolean} false iff x is guaranteed *not* to be a thenable
- */
- function maybeThenable(x) {
- return (typeof x === 'object' || typeof x === 'function') && x !== null;
- }
-
- function runContinuation1(f, h, receiver, next) {
- if(typeof f !== 'function') {
- return next.become(h);
- }
-
- Promise.enterContext(h);
- tryCatchReject(f, h.value, receiver, next);
- Promise.exitContext();
- }
-
- function runContinuation3(f, x, h, receiver, next) {
- if(typeof f !== 'function') {
- return next.become(h);
- }
-
- Promise.enterContext(h);
- tryCatchReject3(f, x, h.value, receiver, next);
- Promise.exitContext();
- }
-
- /**
- * @deprecated
- */
- function runNotify(f, x, h, receiver, next) {
- if(typeof f !== 'function') {
- return next.notify(x);
- }
-
- Promise.enterContext(h);
- tryCatchReturn(f, x, receiver, next);
- Promise.exitContext();
- }
-
- function tryCatch2(f, a, b) {
- try {
- return f(a, b);
- } catch(e) {
- return reject(e);
- }
- }
-
- /**
- * Return f.call(thisArg, x), or if it throws return a rejected promise for
- * the thrown exception
- */
- function tryCatchReject(f, x, thisArg, next) {
- try {
- next.become(getHandler(f.call(thisArg, x)));
- } catch(e) {
- next.become(new Rejected(e));
- }
- }
-
- /**
- * Same as above, but includes the extra argument parameter.
- */
- function tryCatchReject3(f, x, y, thisArg, next) {
- try {
- f.call(thisArg, x, y, next);
- } catch(e) {
- next.become(new Rejected(e));
- }
- }
-
- /**
- * @deprecated
- * Return f.call(thisArg, x), or if it throws, *return* the exception
- */
- function tryCatchReturn(f, x, thisArg, next) {
- try {
- next.notify(f.call(thisArg, x));
- } catch(e) {
- next.notify(e);
- }
- }
-
- function inherit(Parent, Child) {
- Child.prototype = objectCreate(Parent.prototype);
- Child.prototype.constructor = Child;
- }
-
- function snd(x, y) {
- return y;
- }
-
- function noop() {}
-
- function hasCustomEvent() {
- if(typeof CustomEvent === 'function') {
- try {
- var ev = new CustomEvent('unhandledRejection');
- return ev instanceof CustomEvent;
- } catch (ignoredException) {}
- }
- return false;
- }
-
- function hasInternetExplorerCustomEvent() {
- if(typeof document !== 'undefined' && typeof document.createEvent === 'function') {
- try {
- // Try to create one event to make sure it's supported
- var ev = document.createEvent('CustomEvent');
- ev.initCustomEvent('eventType', false, true, {});
- return true;
- } catch (ignoredException) {}
- }
- return false;
- }
-
- function initEmitRejection() {
- /*global process, self, CustomEvent*/
- if(typeof process !== 'undefined' && process !== null
- && typeof process.emit === 'function') {
- // Returning falsy here means to call the default
- // onPotentiallyUnhandledRejection API. This is safe even in
- // browserify since process.emit always returns falsy in browserify:
- // https://github.com/defunctzombie/node-process/blob/master/browser.js#L40-L46
- return function(type, rejection) {
- return type === 'unhandledRejection'
- ? process.emit(type, rejection.value, rejection)
- : process.emit(type, rejection);
- };
- } else if(typeof self !== 'undefined' && hasCustomEvent()) {
- return (function (self, CustomEvent) {
- return function (type, rejection) {
- var ev = new CustomEvent(type, {
- detail: {
- reason: rejection.value,
- key: rejection
- },
- bubbles: false,
- cancelable: true
- });
-
- return !self.dispatchEvent(ev);
- };
- }(self, CustomEvent));
- } else if(typeof self !== 'undefined' && hasInternetExplorerCustomEvent()) {
- return (function(self, document) {
- return function(type, rejection) {
- var ev = document.createEvent('CustomEvent');
- ev.initCustomEvent(type, false, true, {
- reason: rejection.value,
- key: rejection
- });
-
- return !self.dispatchEvent(ev);
- };
- }(self, document));
- }
-
- return noop;
- }
-
- return Promise;
- };
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],25:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return {
- pending: toPendingState,
- fulfilled: toFulfilledState,
- rejected: toRejectedState,
- inspect: inspect
- };
-
- function toPendingState() {
- return { state: 'pending' };
- }
-
- function toRejectedState(e) {
- return { state: 'rejected', reason: e };
- }
-
- function toFulfilledState(x) {
- return { state: 'fulfilled', value: x };
- }
-
- function inspect(handler) {
- var state = handler.state();
- return state === 0 ? toPendingState()
- : state > 0 ? toFulfilledState(handler.value)
- : toRejectedState(handler.value);
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],26:[function(require,module,exports){
-/** @license MIT License (c) copyright 2013 original author or authors */
-
-/**
- * Collection of helpers for interfacing with node-style asynchronous functions
- * using promises.
- *
- * @author Brian Cavalier
- * @contributor Renato Zannon
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var _liftAll = require('./lib/liftAll');
- var setTimer = require('./lib/env').setTimer;
- var slice = Array.prototype.slice;
-
- var _apply = require('./lib/apply')(when.Promise, dispatch);
-
- return {
- lift: lift,
- liftAll: liftAll,
- apply: apply,
- call: call,
- createCallback: createCallback,
- bindCallback: bindCallback,
- liftCallback: liftCallback
- };
-
- /**
- * Takes a node-style async function and calls it immediately (with an optional
- * array of arguments or promises for arguments). It returns a promise whose
- * resolution depends on whether the async functions calls its callback with the
- * conventional error argument or not.
- *
- * With this it becomes possible to leverage existing APIs while still reaping
- * the benefits of promises.
- *
- * @example
- * function onlySmallNumbers(n, callback) {
- * if(n < 10) {
- * callback(null, n + 10);
- * } else {
- * callback(new Error("Calculation failed"));
- * }
- * }
- *
- * var nodefn = require("when/node/function");
- *
- * // Logs '15'
- * nodefn.apply(onlySmallNumbers, [5]).then(console.log, console.error);
- *
- * // Logs 'Calculation failed'
- * nodefn.apply(onlySmallNumbers, [15]).then(console.log, console.error);
- *
- * @param {function} f node-style function that will be called
- * @param {Array} [args] array of arguments to func
- * @returns {Promise} promise for the value func passes to its callback
- */
- function apply(f, args) {
- return _apply(f, this, args || []);
- }
-
- function dispatch(f, thisArg, args, h) {
- var cb = createCallback(h);
- try {
- switch(args.length) {
- case 2: f.call(thisArg, args[0], args[1], cb); break;
- case 1: f.call(thisArg, args[0], cb); break;
- case 0: f.call(thisArg, cb); break;
- default:
- args.push(cb);
- f.apply(thisArg, args);
- }
- } catch(e) {
- h.reject(e);
- }
- }
-
- /**
- * Has the same behavior that {@link apply} has, with the difference that the
- * arguments to the function are provided individually, while {@link apply} accepts
- * a single array.
- *
- * @example
- * function sumSmallNumbers(x, y, callback) {
- * var result = x + y;
- * if(result < 10) {
- * callback(null, result);
- * } else {
- * callback(new Error("Calculation failed"));
- * }
- * }
- *
- * // Logs '5'
- * nodefn.call(sumSmallNumbers, 2, 3).then(console.log, console.error);
- *
- * // Logs 'Calculation failed'
- * nodefn.call(sumSmallNumbers, 5, 10).then(console.log, console.error);
- *
- * @param {function} f node-style function that will be called
- * @param {...*} [args] arguments that will be forwarded to the function
- * @returns {Promise} promise for the value func passes to its callback
- */
- function call(f /*, args... */) {
- return _apply(f, this, slice.call(arguments, 1));
- }
-
- /**
- * Takes a node-style function and returns new function that wraps the
- * original and, instead of taking a callback, returns a promise. Also, it
- * knows how to handle promises given as arguments, waiting for their
- * resolution before executing.
- *
- * Upon execution, the orginal function is executed as well. If it passes
- * a truthy value as the first argument to the callback, it will be
- * interpreted as an error condition, and the promise will be rejected
- * with it. Otherwise, the call is considered a resolution, and the promise
- * is resolved with the callback's second argument.
- *
- * @example
- * var fs = require("fs"), nodefn = require("when/node/function");
- *
- * var promiseRead = nodefn.lift(fs.readFile);
- *
- * // The promise is resolved with the contents of the file if everything
- * // goes ok
- * promiseRead('exists.txt').then(console.log, console.error);
- *
- * // And will be rejected if something doesn't work out
- * // (e.g. the files does not exist)
- * promiseRead('doesnt_exist.txt').then(console.log, console.error);
- *
- *
- * @param {Function} f node-style function to be lifted
- * @param {...*} [args] arguments to be prepended for the new function @deprecated
- * @returns {Function} a promise-returning function
- */
- function lift(f /*, args... */) {
- var args1 = arguments.length > 1 ? slice.call(arguments, 1) : [];
- return function() {
- // TODO: Simplify once partialing has been removed
- var l = args1.length;
- var al = arguments.length;
- var args = new Array(al + l);
- var i;
- for(i=0; i<l; ++i) {
- args[i] = args1[i];
- }
- for(i=0; i<al; ++i) {
- args[i+l] = arguments[i];
- }
- return _apply(f, this, args);
- };
- }
-
- /**
- * Lift all the functions/methods on src
- * @param {object|function} src source whose functions will be lifted
- * @param {function?} combine optional function for customizing the lifting
- * process. It is passed dst, the lifted function, and the property name of
- * the original function on src.
- * @param {(object|function)?} dst option destination host onto which to place lifted
- * functions. If not provided, liftAll returns a new object.
- * @returns {*} If dst is provided, returns dst with lifted functions as
- * properties. If dst not provided, returns a new object with lifted functions.
- */
- function liftAll(src, combine, dst) {
- return _liftAll(lift, combine, dst, src);
- }
-
- /**
- * Takes an object that responds to the resolver interface, and returns
- * a function that will resolve or reject it depending on how it is called.
- *
- * @example
- * function callbackTakingFunction(callback) {
- * if(somethingWrongHappened) {
- * callback(error);
- * } else {
- * callback(null, interestingValue);
- * }
- * }
- *
- * var when = require('when'), nodefn = require('when/node/function');
- *
- * var deferred = when.defer();
- * callbackTakingFunction(nodefn.createCallback(deferred.resolver));
- *
- * deferred.promise.then(function(interestingValue) {
- * // Use interestingValue
- * });
- *
- * @param {Resolver} resolver that will be 'attached' to the callback
- * @returns {Function} a node-style callback function
- */
- function createCallback(resolver) {
- return function(err, value) {
- if(err) {
- resolver.reject(err);
- } else if(arguments.length > 2) {
- resolver.resolve(slice.call(arguments, 1));
- } else {
- resolver.resolve(value);
- }
- };
- }
-
- /**
- * Attaches a node-style callback to a promise, ensuring the callback is
- * called for either fulfillment or rejection. Returns a promise with the same
- * state as the passed-in promise.
- *
- * @example
- * var deferred = when.defer();
- *
- * function callback(err, value) {
- * // Handle err or use value
- * }
- *
- * bindCallback(deferred.promise, callback);
- *
- * deferred.resolve('interesting value');
- *
- * @param {Promise} promise The promise to be attached to.
- * @param {Function} callback The node-style callback to attach.
- * @returns {Promise} A promise with the same state as the passed-in promise.
- */
- function bindCallback(promise, callback) {
- promise = when(promise);
-
- if (callback) {
- promise.then(success, wrapped);
- }
-
- return promise;
-
- function success(value) {
- wrapped(null, value);
- }
-
- function wrapped(err, value) {
- setTimer(function () {
- callback(err, value);
- }, 0);
- }
- }
-
- /**
- * Takes a node-style callback and returns new function that accepts a
- * promise, calling the original callback when the promise is either
- * fulfilled or rejected with the appropriate arguments.
- *
- * @example
- * var deferred = when.defer();
- *
- * function callback(err, value) {
- * // Handle err or use value
- * }
- *
- * var wrapped = liftCallback(callback);
- *
- * // `wrapped` can now be passed around at will
- * wrapped(deferred.promise);
- *
- * deferred.resolve('interesting value');
- *
- * @param {Function} callback The node-style callback to wrap.
- * @returns {Function} The lifted, promise-accepting function.
- */
- function liftCallback(callback) {
- return function(promise) {
- return bindCallback(promise, callback);
- };
- }
-});
-
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
-
-
-},{"./lib/apply":11,"./lib/env":21,"./lib/liftAll":23,"./when":32}],27:[function(require,module,exports){
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * parallel.js
- *
- * Run a set of task functions in parallel. All tasks will
- * receive the same args
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var all = when.Promise.all;
- var slice = Array.prototype.slice;
-
- /**
- * Run array of tasks in parallel
- * @param tasks {Array|Promise} array or promiseForArray of task functions
- * @param [args] {*} arguments to be passed to all tasks
- * @return {Promise} promise for array containing the
- * result of each task in the array position corresponding
- * to position of the task in the tasks array
- */
- return function parallel(tasks /*, args... */) {
- return all(slice.call(arguments, 1)).then(function(args) {
- return when.map(tasks, function(task) {
- return task.apply(void 0, args);
- });
- });
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
-
-},{"./when":32}],28:[function(require,module,exports){
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * pipeline.js
- *
- * Run a set of task functions in sequence, passing the result
- * of the previous as an argument to the next. Like a shell
- * pipeline, e.g. `cat file.txt | grep 'foo' | sed -e 's/foo/bar/g'
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var all = when.Promise.all;
- var slice = Array.prototype.slice;
-
- /**
- * Run array of tasks in a pipeline where the next
- * tasks receives the result of the previous. The first task
- * will receive the initialArgs as its argument list.
- * @param tasks {Array|Promise} array or promise for array of task functions
- * @param [initialArgs...] {*} arguments to be passed to the first task
- * @return {Promise} promise for return value of the final task
- */
- return function pipeline(tasks /* initialArgs... */) {
- // Self-optimizing function to run first task with multiple
- // args using apply, but subsequence tasks via direct invocation
- var runTask = function(args, task) {
- runTask = function(arg, task) {
- return task(arg);
- };
-
- return task.apply(null, args);
- };
-
- return all(slice.call(arguments, 1)).then(function(args) {
- return when.reduce(tasks, function(arg, task) {
- return runTask(arg, task);
- }, args);
- });
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
-
-},{"./when":32}],29:[function(require,module,exports){
-/** @license MIT License (c) copyright 2012-2013 original author or authors */
-
-/**
- * poll.js
- *
- * Helper that polls until cancelled or for a condition to become true.
- *
- * @author Scott Andrews
- */
-
-(function (define) { 'use strict';
-define(function(require) {
-
- var when = require('./when');
- var attempt = when['try'];
- var cancelable = require('./cancelable');
-
- /**
- * Periodically execute the task function on the msec delay. The result of
- * the task may be verified by watching for a condition to become true. The
- * returned deferred is cancellable if the polling needs to be cancelled
- * externally before reaching a resolved state.
- *
- * The next vote is scheduled after the results of the current vote are
- * verified and rejected.
- *
- * Polling may be terminated by the verifier returning a truthy value,
- * invoking cancel() on the returned promise, or the task function returning
- * a rejected promise.
- *
- * Usage:
- *
- * var count = 0;
- * function doSomething() { return count++ }
- *
- * // poll until cancelled
- * var p = poll(doSomething, 1000);
- * ...
- * p.cancel();
- *
- * // poll until condition is met
- * poll(doSomething, 1000, function(result) { return result > 10 })
- * .then(function(result) { assert result == 10 });
- *
- * // delay first vote
- * poll(doSomething, 1000, anyFunc, true);
- *
- * @param task {Function} function that is executed after every timeout
- * @param interval {number|Function} timeout in milliseconds
- * @param [verifier] {Function} function to evaluate the result of the vote.
- * May return a {Promise} or a {Boolean}. Rejecting the promise or a
- * falsey value will schedule the next vote.
- * @param [delayInitialTask] {boolean} if truthy, the first vote is scheduled
- * instead of immediate
- *
- * @returns {Promise}
- */
- return function poll(task, interval, verifier, delayInitialTask) {
- var deferred, canceled, reject;
-
- canceled = false;
- deferred = cancelable(when.defer(), function () { canceled = true; });
- reject = deferred.reject;
-
- verifier = verifier || function () { return false; };
-
- if (typeof interval !== 'function') {
- interval = (function (interval) {
- return function () { return when().delay(interval); };
- })(interval);
- }
-
- function certify(result) {
- deferred.resolve(result);
- }
-
- function schedule(result) {
- attempt(interval).then(vote, reject);
- if (result !== void 0) {
- deferred.notify(result);
- }
- }
-
- function vote() {
- if (canceled) { return; }
- when(task(),
- function (result) {
- when(verifier(result),
- function (verification) {
- return verification ? certify(result) : schedule(result);
- },
- function () { schedule(result); }
- );
- },
- reject
- );
- }
-
- if (delayInitialTask) {
- schedule();
- } else {
- // if task() is blocking, vote will also block
- vote();
- }
-
- // make the promise cancelable
- deferred.promise = Object.create(deferred.promise);
- deferred.promise.cancel = deferred.cancel;
-
- return deferred.promise;
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-},{"./cancelable":3,"./when":32}],30:[function(require,module,exports){
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * sequence.js
- *
- * Run a set of task functions in sequence. All tasks will
- * receive the same args.
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var all = when.Promise.all;
- var slice = Array.prototype.slice;
-
- /**
- * Run array of tasks in sequence with no overlap
- * @param tasks {Array|Promise} array or promiseForArray of task functions
- * @param [args] {*} arguments to be passed to all tasks
- * @return {Promise} promise for an array containing
- * the result of each task in the array position corresponding
- * to position of the task in the tasks array
- */
- return function sequence(tasks /*, args... */) {
- var results = [];
-
- return all(slice.call(arguments, 1)).then(function(args) {
- return when.reduce(tasks, function(results, task) {
- return when(task.apply(void 0, args), addResult);
- }, results);
- });
-
- function addResult(result) {
- results.push(result);
- return results;
- }
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
-
-},{"./when":32}],31:[function(require,module,exports){
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * timeout.js
- *
- * Helper that returns a promise that rejects after a specified timeout,
- * if not explicitly resolved or rejected before that.
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
-
- /**
- * @deprecated Use when(trigger).timeout(ms)
- */
- return function timeout(msec, trigger) {
- return when(trigger).timeout(msec);
- };
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
-
-},{"./when":32}],32:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-
-/**
- * Promises/A+ and when() implementation
- * when is part of the cujoJS family of libraries (http://cujojs.com/)
- * @author Brian Cavalier
- * @author John Hann
- */
-(function(define) { 'use strict';
-define(function (require) {
-
- var timed = require('./lib/decorators/timed');
- var array = require('./lib/decorators/array');
- var flow = require('./lib/decorators/flow');
- var fold = require('./lib/decorators/fold');
- var inspect = require('./lib/decorators/inspect');
- var generate = require('./lib/decorators/iterate');
- var progress = require('./lib/decorators/progress');
- var withThis = require('./lib/decorators/with');
- var unhandledRejection = require('./lib/decorators/unhandledRejection');
- var TimeoutError = require('./lib/TimeoutError');
-
- var Promise = [array, flow, fold, generate, progress,
- inspect, withThis, timed, unhandledRejection]
- .reduce(function(Promise, feature) {
- return feature(Promise);
- }, require('./lib/Promise'));
-
- var apply = require('./lib/apply')(Promise);
-
- // Public API
-
- when.promise = promise; // Create a pending promise
- when.resolve = Promise.resolve; // Create a resolved promise
- when.reject = Promise.reject; // Create a rejected promise
-
- when.lift = lift; // lift a function to return promises
- when['try'] = attempt; // call a function and return a promise
- when.attempt = attempt; // alias for when.try
-
- when.iterate = Promise.iterate; // DEPRECATED (use cujojs/most streams) Generate a stream of promises
- when.unfold = Promise.unfold; // DEPRECATED (use cujojs/most streams) Generate a stream of promises
-
- when.join = join; // Join 2 or more promises
-
- when.all = all; // Resolve a list of promises
- when.settle = settle; // Settle a list of promises
-
- when.any = lift(Promise.any); // One-winner race
- when.some = lift(Promise.some); // Multi-winner race
- when.race = lift(Promise.race); // First-to-settle race
-
- when.map = map; // Array.map() for promises
- when.filter = filter; // Array.filter() for promises
- when.reduce = lift(Promise.reduce); // Array.reduce() for promises
- when.reduceRight = lift(Promise.reduceRight); // Array.reduceRight() for promises
-
- when.isPromiseLike = isPromiseLike; // Is something promise-like, aka thenable
-
- when.Promise = Promise; // Promise constructor
- when.defer = defer; // Create a {promise, resolve, reject} tuple
-
- // Error types
-
- when.TimeoutError = TimeoutError;
-
- /**
- * Get a trusted promise for x, or by transforming x with onFulfilled
- *
- * @param {*} x
- * @param {function?} onFulfilled callback to be called when x is
- * successfully fulfilled. If promiseOrValue is an immediate value, callback
- * will be invoked immediately.
- * @param {function?} onRejected callback to be called when x is
- * rejected.
- * @param {function?} onProgress callback to be called when progress updates
- * are issued for x. @deprecated
- * @returns {Promise} a new promise that will fulfill with the return
- * value of callback or errback or the completion value of promiseOrValue if
- * callback and/or errback is not supplied.
- */
- function when(x, onFulfilled, onRejected, onProgress) {
- var p = Promise.resolve(x);
- if (arguments.length < 2) {
- return p;
- }
-
- return p.then(onFulfilled, onRejected, onProgress);
- }
-
- /**
- * Creates a new promise whose fate is determined by resolver.
- * @param {function} resolver function(resolve, reject, notify)
- * @returns {Promise} promise whose fate is determine by resolver
- */
- function promise(resolver) {
- return new Promise(resolver);
- }
-
- /**
- * Lift the supplied function, creating a version of f that returns
- * promises, and accepts promises as arguments.
- * @param {function} f
- * @returns {Function} version of f that returns promises
- */
- function lift(f) {
- return function() {
- for(var i=0, l=arguments.length, a=new Array(l); i<l; ++i) {
- a[i] = arguments[i];
- }
- return apply(f, this, a);
- };
- }
-
- /**
- * Call f in a future turn, with the supplied args, and return a promise
- * for the result.
- * @param {function} f
- * @returns {Promise}
- */
- function attempt(f /*, args... */) {
- /*jshint validthis:true */
- for(var i=0, l=arguments.length-1, a=new Array(l); i<l; ++i) {
- a[i] = arguments[i+1];
- }
- return apply(f, this, a);
- }
-
- /**
- * Creates a {promise, resolver} pair, either or both of which
- * may be given out safely to consumers.
- * @return {{promise: Promise, resolve: function, reject: function, notify: function}}
- */
- function defer() {
- return new Deferred();
- }
-
- function Deferred() {
- var p = Promise._defer();
-
- function resolve(x) { p._handler.resolve(x); }
- function reject(x) { p._handler.reject(x); }
- function notify(x) { p._handler.notify(x); }
-
- this.promise = p;
- this.resolve = resolve;
- this.reject = reject;
- this.notify = notify;
- this.resolver = { resolve: resolve, reject: reject, notify: notify };
- }
-
- /**
- * Determines if x is promise-like, i.e. a thenable object
- * NOTE: Will return true for *any thenable object*, and isn't truly
- * safe, since it may attempt to access the `then` property of x (i.e.
- * clever/malicious getters may do weird things)
- * @param {*} x anything
- * @returns {boolean} true if x is promise-like
- */
- function isPromiseLike(x) {
- return x && typeof x.then === 'function';
- }
-
- /**
- * Return a promise that will resolve only once all the supplied arguments
- * have resolved. The resolution value of the returned promise will be an array
- * containing the resolution values of each of the arguments.
- * @param {...*} arguments may be a mix of promises and values
- * @returns {Promise}
- */
- function join(/* ...promises */) {
- return Promise.all(arguments);
- }
-
- /**
- * Return a promise that will fulfill once all input promises have
- * fulfilled, or reject when any one input promise rejects.
- * @param {array|Promise} promises array (or promise for an array) of promises
- * @returns {Promise}
- */
- function all(promises) {
- return when(promises, Promise.all);
- }
-
- /**
- * Return a promise that will always fulfill with an array containing
- * the outcome states of all input promises. The returned promise
- * will only reject if `promises` itself is a rejected promise.
- * @param {array|Promise} promises array (or promise for an array) of promises
- * @returns {Promise} promise for array of settled state descriptors
- */
- function settle(promises) {
- return when(promises, Promise.settle);
- }
-
- /**
- * Promise-aware array map function, similar to `Array.prototype.map()`,
- * but input array may contain promises or values.
- * @param {Array|Promise} promises array of anything, may contain promises and values
- * @param {function(x:*, index:Number):*} mapFunc map function which may
- * return a promise or value
- * @returns {Promise} promise that will fulfill with an array of mapped values
- * or reject if any input promise rejects.
- */
- function map(promises, mapFunc) {
- return when(promises, function(promises) {
- return Promise.map(promises, mapFunc);
- });
- }
-
- /**
- * Filter the provided array of promises using the provided predicate. Input may
- * contain promises and values
- * @param {Array|Promise} promises array of promises and values
- * @param {function(x:*, index:Number):boolean} predicate filtering predicate.
- * Must return truthy (or promise for truthy) for items to retain.
- * @returns {Promise} promise that will fulfill with an array containing all items
- * for which predicate returned truthy.
- */
- function filter(promises, predicate) {
- return when(promises, function(promises) {
- return Promise.filter(promises, predicate);
- });
- }
-
- return when;
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-},{"./lib/Promise":8,"./lib/TimeoutError":10,"./lib/apply":11,"./lib/decorators/array":12,"./lib/decorators/flow":13,"./lib/decorators/fold":14,"./lib/decorators/inspect":15,"./lib/decorators/iterate":16,"./lib/decorators/progress":17,"./lib/decorators/timed":18,"./lib/decorators/unhandledRejection":19,"./lib/decorators/with":20}]},{},[1])
-//# sourceMappingURL=when.js.map
-(1)
-});
-; \ No newline at end of file
diff --git a/node_modules/when/dist/browser/when.js.map b/node_modules/when/dist/browser/when.js.map
deleted file mode 100644
index 3cc3631ec..000000000
--- a/node_modules/when/dist/browser/when.js.map
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "version": 3,
- "file": "generated.js",
- "sources": [
- "build/when.browserify.js",
- "callbacks.js",
- "cancelable.js",
- "delay.js",
- "function.js",
- "guard.js",
- "keys.js",
- "lib/Promise.js",
- "lib/Scheduler.js",
- "lib/TimeoutError.js",
- "lib/apply.js",
- "lib/decorators/array.js",
- "lib/decorators/flow.js",
- "lib/decorators/fold.js",
- "lib/decorators/inspect.js",
- "lib/decorators/iterate.js",
- "lib/decorators/progress.js",
- "lib/decorators/timed.js",
- "lib/decorators/unhandledRejection.js",
- "lib/decorators/with.js",
- "lib/env.js",
- "lib/format.js",
- "lib/liftAll.js",
- "lib/makePromise.js",
- "lib/state.js",
- "node.js",
- "parallel.js",
- "pipeline.js",
- "poll.js",
- "sequence.js",
- "timeout.js",
- "when.js"
- ],
- "names": [],
- "mappings": ";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC37BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",
- "sourcesContent": [
- "var when = module.exports = require('../when');\n\nwhen.callbacks = require('../callbacks');\nwhen.cancelable = require('../cancelable');\nwhen.delay = require('../delay');\nwhen.fn = require('../function');\nwhen.guard = require('../guard');\nwhen.keys = require('../keys');\nwhen.nodefn = when.node = require('../node');\nwhen.parallel = require('../parallel');\nwhen.pipeline = require('../pipeline');\nwhen.poll = require('../poll');\nwhen.sequence = require('../sequence');\nwhen.timeout = require('../timeout');\n",
- "/** @license MIT License (c) copyright 2013-2014 original author or authors */\n\n/**\n * Collection of helper functions for interacting with 'traditional',\n * callback-taking functions using a promise interface.\n *\n * @author Renato Zannon\n * @contributor Brian Cavalier\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar Promise = when.Promise;\n\tvar _liftAll = require('./lib/liftAll');\n\tvar slice = Array.prototype.slice;\n\n\tvar makeApply = require('./lib/apply');\n\tvar _apply = makeApply(Promise, dispatch);\n\n\treturn {\n\t\tlift: lift,\n\t\tliftAll: liftAll,\n\t\tapply: apply,\n\t\tcall: call,\n\t\tpromisify: promisify\n\t};\n\n\t/**\n\t * Takes a `traditional` callback-taking function and returns a promise for its\n\t * result, accepting an optional array of arguments (that might be values or\n\t * promises). It assumes that the function takes its callback and errback as\n\t * the last two arguments. The resolution of the promise depends on whether the\n\t * function will call its callback or its errback.\n\t *\n\t * @example\n\t * var domIsLoaded = callbacks.apply($);\n\t * domIsLoaded.then(function() {\n\t *\t\tdoMyDomStuff();\n\t *\t});\n\t *\n\t * @example\n\t * function existingAjaxyFunction(url, callback, errback) {\n\t *\t\t// Complex logic you'd rather not change\n\t *\t}\n\t *\n\t * var promise = callbacks.apply(existingAjaxyFunction, [\"/movies.json\"]);\n\t *\n\t * promise.then(function(movies) {\n\t *\t\t// Work with movies\n\t *\t}, function(reason) {\n\t *\t\t// Handle error\n\t *\t});\n\t *\n\t * @param {function} asyncFunction function to be called\n\t * @param {Array} [extraAsyncArgs] array of arguments to asyncFunction\n\t * @returns {Promise} promise for the callback value of asyncFunction\n\t */\n\tfunction apply(asyncFunction, extraAsyncArgs) {\n\t\treturn _apply(asyncFunction, this, extraAsyncArgs || []);\n\t}\n\n\t/**\n\t * Apply helper that allows specifying thisArg\n\t * @private\n\t */\n\tfunction dispatch(f, thisArg, args, h) {\n\t\targs.push(alwaysUnary(h.resolve, h), alwaysUnary(h.reject, h));\n\t\ttryCatchResolve(f, thisArg, args, h);\n\t}\n\n\tfunction tryCatchResolve(f, thisArg, args, resolver) {\n\t\ttry {\n\t\t\tf.apply(thisArg, args);\n\t\t} catch(e) {\n\t\t\tresolver.reject(e);\n\t\t}\n\t}\n\n\t/**\n\t * Works as `callbacks.apply` does, with the difference that the arguments to\n\t * the function are passed individually, instead of as an array.\n\t *\n\t * @example\n\t * function sumInFiveSeconds(a, b, callback) {\n\t *\t\tsetTimeout(function() {\n\t *\t\t\tcallback(a + b);\n\t *\t\t}, 5000);\n\t *\t}\n\t *\n\t * var sumPromise = callbacks.call(sumInFiveSeconds, 5, 10);\n\t *\n\t * // Logs '15' 5 seconds later\n\t * sumPromise.then(console.log);\n\t *\n\t * @param {function} asyncFunction function to be called\n\t * @param {...*} args arguments that will be forwarded to the function\n\t * @returns {Promise} promise for the callback value of asyncFunction\n\t */\n\tfunction call(asyncFunction/*, arg1, arg2...*/) {\n\t\treturn _apply(asyncFunction, this, slice.call(arguments, 1));\n\t}\n\n\t/**\n\t * Takes a 'traditional' callback/errback-taking function and returns a function\n\t * that returns a promise instead. The resolution/rejection of the promise\n\t * depends on whether the original function will call its callback or its\n\t * errback.\n\t *\n\t * If additional arguments are passed to the `lift` call, they will be prepended\n\t * on the calls to the original function, much like `Function.prototype.bind`.\n\t *\n\t * The resulting function is also \"promise-aware\", in the sense that, if given\n\t * promises as arguments, it will wait for their resolution before executing.\n\t *\n\t * @example\n\t * function traditionalAjax(method, url, callback, errback) {\n\t *\t\tvar xhr = new XMLHttpRequest();\n\t *\t\txhr.open(method, url);\n\t *\n\t *\t\txhr.onload = callback;\n\t *\t\txhr.onerror = errback;\n\t *\n\t *\t\txhr.send();\n\t *\t}\n\t *\n\t * var promiseAjax = callbacks.lift(traditionalAjax);\n\t * promiseAjax(\"GET\", \"/movies.json\").then(console.log, console.error);\n\t *\n\t * var promiseAjaxGet = callbacks.lift(traditionalAjax, \"GET\");\n\t * promiseAjaxGet(\"/movies.json\").then(console.log, console.error);\n\t *\n\t * @param {Function} f traditional async function to be decorated\n\t * @param {...*} [args] arguments to be prepended for the new function @deprecated\n\t * @returns {Function} a promise-returning function\n\t */\n\tfunction lift(f/*, args...*/) {\n\t\tvar args = arguments.length > 1 ? slice.call(arguments, 1) : [];\n\t\treturn function() {\n\t\t\treturn _apply(f, this, args.concat(slice.call(arguments)));\n\t\t};\n\t}\n\n\t/**\n\t * Lift all the functions/methods on src\n\t * @param {object|function} src source whose functions will be lifted\n\t * @param {function?} combine optional function for customizing the lifting\n\t * process. It is passed dst, the lifted function, and the property name of\n\t * the original function on src.\n\t * @param {(object|function)?} dst option destination host onto which to place lifted\n\t * functions. If not provided, liftAll returns a new object.\n\t * @returns {*} If dst is provided, returns dst with lifted functions as\n\t * properties. If dst not provided, returns a new object with lifted functions.\n\t */\n\tfunction liftAll(src, combine, dst) {\n\t\treturn _liftAll(lift, combine, dst, src);\n\t}\n\n\t/**\n\t * `promisify` is a version of `lift` that allows fine-grained control over the\n\t * arguments that passed to the underlying function. It is intended to handle\n\t * functions that don't follow the common callback and errback positions.\n\t *\n\t * The control is done by passing an object whose 'callback' and/or 'errback'\n\t * keys, whose values are the corresponding 0-based indexes of the arguments on\n\t * the function. Negative values are interpreted as being relative to the end\n\t * of the arguments array.\n\t *\n\t * If arguments are given on the call to the 'promisified' function, they are\n\t * intermingled with the callback and errback. If a promise is given among them,\n\t * the execution of the function will only occur after its resolution.\n\t *\n\t * @example\n\t * var delay = callbacks.promisify(setTimeout, {\n\t *\t\tcallback: 0\n\t *\t});\n\t *\n\t * delay(100).then(function() {\n\t *\t\tconsole.log(\"This happens 100ms afterwards\");\n\t *\t});\n\t *\n\t * @example\n\t * function callbackAsLast(errback, followsStandards, callback) {\n\t *\t\tif(followsStandards) {\n\t *\t\t\tcallback(\"well done!\");\n\t *\t\t} else {\n\t *\t\t\terrback(\"some programmers just want to watch the world burn\");\n\t *\t\t}\n\t *\t}\n\t *\n\t * var promisified = callbacks.promisify(callbackAsLast, {\n\t *\t\tcallback: -1,\n\t *\t\terrback: 0,\n\t *\t});\n\t *\n\t * promisified(true).then(console.log, console.error);\n\t * promisified(false).then(console.log, console.error);\n\t *\n\t * @param {Function} asyncFunction traditional function to be decorated\n\t * @param {object} positions\n\t * @param {number} [positions.callback] index at which asyncFunction expects to\n\t * receive a success callback\n\t * @param {number} [positions.errback] index at which asyncFunction expects to\n\t * receive an error callback\n\t * @returns {function} promisified function that accepts\n\t *\n\t * @deprecated\n\t */\n\tfunction promisify(asyncFunction, positions) {\n\n\t\treturn function() {\n\t\t\tvar thisArg = this;\n\t\t\treturn Promise.all(arguments).then(function(args) {\n\t\t\t\tvar p = Promise._defer();\n\n\t\t\t\tvar callbackPos, errbackPos;\n\n\t\t\t\tif(typeof positions.callback === 'number') {\n\t\t\t\t\tcallbackPos = normalizePosition(args, positions.callback);\n\t\t\t\t}\n\n\t\t\t\tif(typeof positions.errback === 'number') {\n\t\t\t\t\terrbackPos = normalizePosition(args, positions.errback);\n\t\t\t\t}\n\n\t\t\t\tif(errbackPos < callbackPos) {\n\t\t\t\t\tinsertCallback(args, errbackPos, p._handler.reject, p._handler);\n\t\t\t\t\tinsertCallback(args, callbackPos, p._handler.resolve, p._handler);\n\t\t\t\t} else {\n\t\t\t\t\tinsertCallback(args, callbackPos, p._handler.resolve, p._handler);\n\t\t\t\t\tinsertCallback(args, errbackPos, p._handler.reject, p._handler);\n\t\t\t\t}\n\n\t\t\t\tasyncFunction.apply(thisArg, args);\n\n\t\t\t\treturn p;\n\t\t\t});\n\t\t};\n\t}\n\n\tfunction normalizePosition(args, pos) {\n\t\treturn pos < 0 ? (args.length + pos + 2) : pos;\n\t}\n\n\tfunction insertCallback(args, pos, callback, thisArg) {\n\t\tif(typeof pos === 'number') {\n\t\t\targs.splice(pos, 0, alwaysUnary(callback, thisArg));\n\t\t}\n\t}\n\n\tfunction alwaysUnary(fn, thisArg) {\n\t\treturn function() {\n\t\t\tif (arguments.length > 1) {\n\t\t\t\tfn.call(thisArg, slice.call(arguments));\n\t\t\t} else {\n\t\t\t\tfn.apply(thisArg, arguments);\n\t\t\t}\n\t\t};\n\t}\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n",
- "/** @license MIT License (c) copyright B Cavalier & J Hann */\n\n/**\n * cancelable.js\n * @deprecated\n *\n * Decorator that makes a deferred \"cancelable\". It adds a cancel() method that\n * will call a special cancel handler function and then reject the deferred. The\n * cancel handler can be used to do resource cleanup, or anything else that should\n * be done before any other rejection handlers are executed.\n *\n * Usage:\n *\n * var cancelableDeferred = cancelable(when.defer(), myCancelHandler);\n *\n * @author brian@hovercraftstudios.com\n */\n\n(function(define) {\ndefine(function() {\n\n /**\n * Makes deferred cancelable, adding a cancel() method.\n\t * @deprecated\n *\n * @param deferred {Deferred} the {@link Deferred} to make cancelable\n * @param canceler {Function} cancel handler function to execute when this deferred\n\t * is canceled. This is guaranteed to run before all other rejection handlers.\n\t * The canceler will NOT be executed if the deferred is rejected in the standard\n\t * way, i.e. deferred.reject(). It ONLY executes if the deferred is canceled,\n\t * i.e. deferred.cancel()\n *\n * @returns deferred, with an added cancel() method.\n */\n return function(deferred, canceler) {\n // Add a cancel method to the deferred to reject the delegate\n // with the special canceled indicator.\n deferred.cancel = function() {\n\t\t\ttry {\n\t\t\t\tdeferred.reject(canceler(deferred));\n\t\t\t} catch(e) {\n\t\t\t\tdeferred.reject(e);\n\t\t\t}\n\n\t\t\treturn deferred.promise;\n };\n\n return deferred;\n };\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(); });\n\n\n",
- "/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * delay.js\n *\n * Helper that returns a promise that resolves after a delay.\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\n /**\n\t * @deprecated Use when(value).delay(ms)\n */\n return function delay(msec, value) {\n\t\treturn when(value).delay(msec);\n };\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n",
- "/** @license MIT License (c) copyright 2013-2014 original author or authors */\n\n/**\n * Collection of helper functions for wrapping and executing 'traditional'\n * synchronous functions in a promise interface.\n *\n * @author Brian Cavalier\n * @contributor Renato Zannon\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar attempt = when['try'];\n\tvar _liftAll = require('./lib/liftAll');\n\tvar _apply = require('./lib/apply')(when.Promise);\n\tvar slice = Array.prototype.slice;\n\n\treturn {\n\t\tlift: lift,\n\t\tliftAll: liftAll,\n\t\tcall: attempt,\n\t\tapply: apply,\n\t\tcompose: compose\n\t};\n\n\t/**\n\t * Takes a function and an optional array of arguments (that might be promises),\n\t * and calls the function. The return value is a promise whose resolution\n\t * depends on the value returned by the function.\n\t * @param {function} f function to be called\n\t * @param {Array} [args] array of arguments to func\n\t * @returns {Promise} promise for the return value of func\n\t */\n\tfunction apply(f, args) {\n\t\t// slice args just in case the caller passed an Arguments instance\n\t\treturn _apply(f, this, args == null ? [] : slice.call(args));\n\t}\n\n\t/**\n\t * Takes a 'regular' function and returns a version of that function that\n\t * returns a promise instead of a plain value, and handles thrown errors by\n\t * returning a rejected promise. Also accepts a list of arguments to be\n\t * prepended to the new function, as does Function.prototype.bind.\n\t *\n\t * The resulting function is promise-aware, in the sense that it accepts\n\t * promise arguments, and waits for their resolution.\n\t * @param {Function} f function to be bound\n\t * @param {...*} [args] arguments to be prepended for the new function @deprecated\n\t * @returns {Function} a promise-returning function\n\t */\n\tfunction lift(f /*, args... */) {\n\t\tvar args = arguments.length > 1 ? slice.call(arguments, 1) : [];\n\t\treturn function() {\n\t\t\treturn _apply(f, this, args.concat(slice.call(arguments)));\n\t\t};\n\t}\n\n\t/**\n\t * Lift all the functions/methods on src\n\t * @param {object|function} src source whose functions will be lifted\n\t * @param {function?} combine optional function for customizing the lifting\n\t * process. It is passed dst, the lifted function, and the property name of\n\t * the original function on src.\n\t * @param {(object|function)?} dst option destination host onto which to place lifted\n\t * functions. If not provided, liftAll returns a new object.\n\t * @returns {*} If dst is provided, returns dst with lifted functions as\n\t * properties. If dst not provided, returns a new object with lifted functions.\n\t */\n\tfunction liftAll(src, combine, dst) {\n\t\treturn _liftAll(lift, combine, dst, src);\n\t}\n\n\t/**\n\t * Composes multiple functions by piping their return values. It is\n\t * transparent to whether the functions return 'regular' values or promises:\n\t * the piped argument is always a resolved value. If one of the functions\n\t * throws or returns a rejected promise, the composed promise will be also\n\t * rejected.\n\t *\n\t * The arguments (or promises to arguments) given to the returned function (if\n\t * any), are passed directly to the first function on the 'pipeline'.\n\t * @param {Function} f the function to which the arguments will be passed\n\t * @param {...Function} [funcs] functions that will be composed, in order\n\t * @returns {Function} a promise-returning composition of the functions\n\t */\n\tfunction compose(f /*, funcs... */) {\n\t\tvar funcs = slice.call(arguments, 1);\n\n\t\treturn function() {\n\t\t\tvar thisArg = this;\n\t\t\tvar args = slice.call(arguments);\n\t\t\tvar firstPromise = attempt.apply(thisArg, [f].concat(args));\n\n\t\t\treturn when.reduce(funcs, function(arg, func) {\n\t\t\t\treturn func.call(thisArg, arg);\n\t\t\t}, firstPromise);\n\t\t};\n\t}\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n",
- "/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * Generalized promise concurrency guard\n * Adapted from original concept by Sakari Jokinen (Rocket Pack, Ltd.)\n *\n * @author Brian Cavalier\n * @author John Hann\n * @contributor Sakari Jokinen\n */\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar slice = Array.prototype.slice;\n\n\tguard.n = n;\n\n\treturn guard;\n\n\t/**\n\t * Creates a guarded version of f that can only be entered when the supplied\n\t * condition allows.\n\t * @param {function} condition represents a critical section that may only\n\t * be entered when allowed by the condition\n\t * @param {function} f function to guard\n\t * @returns {function} guarded version of f\n\t */\n\tfunction guard(condition, f) {\n\t\treturn function() {\n\t\t\tvar args = slice.call(arguments);\n\n\t\t\treturn when(condition()).withThis(this).then(function(exit) {\n\t\t\t\treturn when(f.apply(this, args))['finally'](exit);\n\t\t\t});\n\t\t};\n\t}\n\n\t/**\n\t * Creates a condition that allows only n simultaneous executions\n\t * of a guarded function\n\t * @param {number} allowed number of allowed simultaneous executions\n\t * @returns {function} condition function which returns a promise that\n\t * fulfills when the critical section may be entered. The fulfillment\n\t * value is a function (\"notifyExit\") that must be called when the critical\n\t * section has been exited.\n\t */\n\tfunction n(allowed) {\n\t\tvar count = 0;\n\t\tvar waiting = [];\n\n\t\treturn function enter() {\n\t\t\treturn when.promise(function(resolve) {\n\t\t\t\tif(count < allowed) {\n\t\t\t\t\tresolve(exit);\n\t\t\t\t} else {\n\t\t\t\t\twaiting.push(resolve);\n\t\t\t\t}\n\t\t\t\tcount += 1;\n\t\t\t});\n\t\t};\n\n\t\tfunction exit() {\n\t\t\tcount = Math.max(count - 1, 0);\n\t\t\tif(waiting.length > 0) {\n\t\t\t\twaiting.shift()(exit);\n\t\t\t}\n\t\t}\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n",
- "/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * Licensed under the MIT License at:\n * http://www.opensource.org/licenses/mit-license.php\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar Promise = when.Promise;\n\tvar toPromise = when.resolve;\n\n\treturn {\n\t\tall: when.lift(all),\n\t\tmap: map,\n\t\tsettle: settle\n\t};\n\n\t/**\n\t * Resolve all the key-value pairs in the supplied object or promise\n\t * for an object.\n\t * @param {Promise|object} object or promise for object whose key-value pairs\n\t * will be resolved\n\t * @returns {Promise} promise for an object with the fully resolved key-value pairs\n\t */\n\tfunction all(object) {\n\t\tvar p = Promise._defer();\n\t\tvar resolver = Promise._handler(p);\n\n\t\tvar results = {};\n\t\tvar keys = Object.keys(object);\n\t\tvar pending = keys.length;\n\n\t\tfor(var i=0, k; i<keys.length; ++i) {\n\t\t\tk = keys[i];\n\t\t\tPromise._handler(object[k]).fold(settleKey, k, results, resolver);\n\t\t}\n\n\t\tif(pending === 0) {\n\t\t\tresolver.resolve(results);\n\t\t}\n\n\t\treturn p;\n\n\t\tfunction settleKey(k, x, resolver) {\n\t\t\t/*jshint validthis:true*/\n\t\t\tthis[k] = x;\n\t\t\tif(--pending === 0) {\n\t\t\t\tresolver.resolve(results);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Map values in the supplied object's keys\n\t * @param {Promise|object} object or promise for object whose key-value pairs\n\t * will be reduced\n\t * @param {function(value:*, key:String):*} f mapping function which may\n\t * return either a promise or a value\n\t * @returns {Promise} promise for an object with the mapped and fully\n\t * resolved key-value pairs\n\t */\n\tfunction map(object, f) {\n\t\treturn toPromise(object).then(function(object) {\n\t\t\treturn all(Object.keys(object).reduce(function(o, k) {\n\t\t\t\to[k] = toPromise(object[k]).fold(mapWithKey, k);\n\t\t\t\treturn o;\n\t\t\t}, {}));\n\t\t});\n\n\t\tfunction mapWithKey(k, x) {\n\t\t\treturn f(x, k);\n\t\t}\n\t}\n\n\t/**\n\t * Resolve all key-value pairs in the supplied object and return a promise\n\t * that will always fulfill with the outcome states of all input promises.\n\t * @param {object} object whose key-value pairs will be settled\n\t * @returns {Promise} promise for an object with the mapped and fully\n\t * settled key-value pairs\n\t */\n\tfunction settle(object) {\n\t\tvar keys = Object.keys(object);\n\t\tvar results = {};\n\n\t\tif(keys.length === 0) {\n\t\t\treturn toPromise(results);\n\t\t}\n\n\t\tvar p = Promise._defer();\n\t\tvar resolver = Promise._handler(p);\n\t\tvar promises = keys.map(function(k) { return object[k]; });\n\n\t\twhen.settle(promises).then(function(states) {\n\t\t\tpopulateResults(keys, states, results, resolver);\n\t\t});\n\n\t\treturn p;\n\t}\n\n\tfunction populateResults(keys, states, results, resolver) {\n\t\tfor(var i=0; i<keys.length; i++) {\n\t\t\tresults[keys[i]] = states[i];\n\t\t}\n\t\tresolver.resolve(results);\n\t}\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function (require) {\n\n\tvar makePromise = require('./makePromise');\n\tvar Scheduler = require('./Scheduler');\n\tvar async = require('./env').asap;\n\n\treturn makePromise({\n\t\tscheduler: new Scheduler(async)\n\t});\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\t// Credit to Twisol (https://github.com/Twisol) for suggesting\n\t// this type of extensible queue + trampoline approach for next-tick conflation.\n\n\t/**\n\t * Async task scheduler\n\t * @param {function} async function to schedule a single async function\n\t * @constructor\n\t */\n\tfunction Scheduler(async) {\n\t\tthis._async = async;\n\t\tthis._running = false;\n\n\t\tthis._queue = this;\n\t\tthis._queueLen = 0;\n\t\tthis._afterQueue = {};\n\t\tthis._afterQueueLen = 0;\n\n\t\tvar self = this;\n\t\tthis.drain = function() {\n\t\t\tself._drain();\n\t\t};\n\t}\n\n\t/**\n\t * Enqueue a task\n\t * @param {{ run:function }} task\n\t */\n\tScheduler.prototype.enqueue = function(task) {\n\t\tthis._queue[this._queueLen++] = task;\n\t\tthis.run();\n\t};\n\n\t/**\n\t * Enqueue a task to run after the main task queue\n\t * @param {{ run:function }} task\n\t */\n\tScheduler.prototype.afterQueue = function(task) {\n\t\tthis._afterQueue[this._afterQueueLen++] = task;\n\t\tthis.run();\n\t};\n\n\tScheduler.prototype.run = function() {\n\t\tif (!this._running) {\n\t\t\tthis._running = true;\n\t\t\tthis._async(this.drain);\n\t\t}\n\t};\n\n\t/**\n\t * Drain the handler queue entirely, and then the after queue\n\t */\n\tScheduler.prototype._drain = function() {\n\t\tvar i = 0;\n\t\tfor (; i < this._queueLen; ++i) {\n\t\t\tthis._queue[i].run();\n\t\t\tthis._queue[i] = void 0;\n\t\t}\n\n\t\tthis._queueLen = 0;\n\t\tthis._running = false;\n\n\t\tfor (i = 0; i < this._afterQueueLen; ++i) {\n\t\t\tthis._afterQueue[i].run();\n\t\t\tthis._afterQueue[i] = void 0;\n\t\t}\n\n\t\tthis._afterQueueLen = 0;\n\t};\n\n\treturn Scheduler;\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\t/**\n\t * Custom error type for promises rejected by promise.timeout\n\t * @param {string} message\n\t * @constructor\n\t */\n\tfunction TimeoutError (message) {\n\t\tError.call(this);\n\t\tthis.message = message;\n\t\tthis.name = TimeoutError.name;\n\t\tif (typeof Error.captureStackTrace === 'function') {\n\t\t\tError.captureStackTrace(this, TimeoutError);\n\t\t}\n\t}\n\n\tTimeoutError.prototype = Object.create(Error.prototype);\n\tTimeoutError.prototype.constructor = TimeoutError;\n\n\treturn TimeoutError;\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\tmakeApply.tryCatchResolve = tryCatchResolve;\n\n\treturn makeApply;\n\n\tfunction makeApply(Promise, call) {\n\t\tif(arguments.length < 2) {\n\t\t\tcall = tryCatchResolve;\n\t\t}\n\n\t\treturn apply;\n\n\t\tfunction apply(f, thisArg, args) {\n\t\t\tvar p = Promise._defer();\n\t\t\tvar l = args.length;\n\t\t\tvar params = new Array(l);\n\t\t\tcallAndResolve({ f:f, thisArg:thisArg, args:args, params:params, i:l-1, call:call }, p._handler);\n\n\t\t\treturn p;\n\t\t}\n\n\t\tfunction callAndResolve(c, h) {\n\t\t\tif(c.i < 0) {\n\t\t\t\treturn call(c.f, c.thisArg, c.params, h);\n\t\t\t}\n\n\t\t\tvar handler = Promise._handler(c.args[c.i]);\n\t\t\thandler.fold(callAndResolveNext, c, void 0, h);\n\t\t}\n\n\t\tfunction callAndResolveNext(c, x, h) {\n\t\t\tc.params[c.i] = x;\n\t\t\tc.i -= 1;\n\t\t\tcallAndResolve(c, h);\n\t\t}\n\t}\n\n\tfunction tryCatchResolve(f, thisArg, args, resolver) {\n\t\ttry {\n\t\t\tresolver.resolve(f.apply(thisArg, args));\n\t\t} catch(e) {\n\t\t\tresolver.reject(e);\n\t\t}\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n\n\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar state = require('../state');\n\tvar applier = require('../apply');\n\n\treturn function array(Promise) {\n\n\t\tvar applyFold = applier(Promise);\n\t\tvar toPromise = Promise.resolve;\n\t\tvar all = Promise.all;\n\n\t\tvar ar = Array.prototype.reduce;\n\t\tvar arr = Array.prototype.reduceRight;\n\t\tvar slice = Array.prototype.slice;\n\n\t\t// Additional array combinators\n\n\t\tPromise.any = any;\n\t\tPromise.some = some;\n\t\tPromise.settle = settle;\n\n\t\tPromise.map = map;\n\t\tPromise.filter = filter;\n\t\tPromise.reduce = reduce;\n\t\tPromise.reduceRight = reduceRight;\n\n\t\t/**\n\t\t * When this promise fulfills with an array, do\n\t\t * onFulfilled.apply(void 0, array)\n\t\t * @param {function} onFulfilled function to apply\n\t\t * @returns {Promise} promise for the result of applying onFulfilled\n\t\t */\n\t\tPromise.prototype.spread = function(onFulfilled) {\n\t\t\treturn this.then(all).then(function(array) {\n\t\t\t\treturn onFulfilled.apply(this, array);\n\t\t\t});\n\t\t};\n\n\t\treturn Promise;\n\n\t\t/**\n\t\t * One-winner competitive race.\n\t\t * Return a promise that will fulfill when one of the promises\n\t\t * in the input array fulfills, or will reject when all promises\n\t\t * have rejected.\n\t\t * @param {array} promises\n\t\t * @returns {Promise} promise for the first fulfilled value\n\t\t */\n\t\tfunction any(promises) {\n\t\t\tvar p = Promise._defer();\n\t\t\tvar resolver = p._handler;\n\t\t\tvar l = promises.length>>>0;\n\n\t\t\tvar pending = l;\n\t\t\tvar errors = [];\n\n\t\t\tfor (var h, x, i = 0; i < l; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif(x === void 0 && !(i in promises)) {\n\t\t\t\t\t--pending;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\th = Promise._handler(x);\n\t\t\t\tif(h.state() > 0) {\n\t\t\t\t\tresolver.become(h);\n\t\t\t\t\tPromise._visitRemaining(promises, i, h);\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\th.visit(resolver, handleFulfill, handleReject);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(pending === 0) {\n\t\t\t\tresolver.reject(new RangeError('any(): array must not be empty'));\n\t\t\t}\n\n\t\t\treturn p;\n\n\t\t\tfunction handleFulfill(x) {\n\t\t\t\t/*jshint validthis:true*/\n\t\t\t\terrors = null;\n\t\t\t\tthis.resolve(x); // this === resolver\n\t\t\t}\n\n\t\t\tfunction handleReject(e) {\n\t\t\t\t/*jshint validthis:true*/\n\t\t\t\tif(this.resolved) { // this === resolver\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\terrors.push(e);\n\t\t\t\tif(--pending === 0) {\n\t\t\t\t\tthis.reject(errors);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * N-winner competitive race\n\t\t * Return a promise that will fulfill when n input promises have\n\t\t * fulfilled, or will reject when it becomes impossible for n\n\t\t * input promises to fulfill (ie when promises.length - n + 1\n\t\t * have rejected)\n\t\t * @param {array} promises\n\t\t * @param {number} n\n\t\t * @returns {Promise} promise for the earliest n fulfillment values\n\t\t *\n\t\t * @deprecated\n\t\t */\n\t\tfunction some(promises, n) {\n\t\t\t/*jshint maxcomplexity:7*/\n\t\t\tvar p = Promise._defer();\n\t\t\tvar resolver = p._handler;\n\n\t\t\tvar results = [];\n\t\t\tvar errors = [];\n\n\t\t\tvar l = promises.length>>>0;\n\t\t\tvar nFulfill = 0;\n\t\t\tvar nReject;\n\t\t\tvar x, i; // reused in both for() loops\n\n\t\t\t// First pass: count actual array items\n\t\t\tfor(i=0; i<l; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif(x === void 0 && !(i in promises)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\t++nFulfill;\n\t\t\t}\n\n\t\t\t// Compute actual goals\n\t\t\tn = Math.max(n, 0);\n\t\t\tnReject = (nFulfill - n + 1);\n\t\t\tnFulfill = Math.min(n, nFulfill);\n\n\t\t\tif(n > nFulfill) {\n\t\t\t\tresolver.reject(new RangeError('some(): array must contain at least '\n\t\t\t\t+ n + ' item(s), but had ' + nFulfill));\n\t\t\t} else if(nFulfill === 0) {\n\t\t\t\tresolver.resolve(results);\n\t\t\t}\n\n\t\t\t// Second pass: observe each array item, make progress toward goals\n\t\t\tfor(i=0; i<l; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif(x === void 0 && !(i in promises)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tPromise._handler(x).visit(resolver, fulfill, reject, resolver.notify);\n\t\t\t}\n\n\t\t\treturn p;\n\n\t\t\tfunction fulfill(x) {\n\t\t\t\t/*jshint validthis:true*/\n\t\t\t\tif(this.resolved) { // this === resolver\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresults.push(x);\n\t\t\t\tif(--nFulfill === 0) {\n\t\t\t\t\terrors = null;\n\t\t\t\t\tthis.resolve(results);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction reject(e) {\n\t\t\t\t/*jshint validthis:true*/\n\t\t\t\tif(this.resolved) { // this === resolver\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\terrors.push(e);\n\t\t\t\tif(--nReject === 0) {\n\t\t\t\t\tresults = null;\n\t\t\t\t\tthis.reject(errors);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Apply f to the value of each promise in a list of promises\n\t\t * and return a new list containing the results.\n\t\t * @param {array} promises\n\t\t * @param {function(x:*, index:Number):*} f mapping function\n\t\t * @returns {Promise}\n\t\t */\n\t\tfunction map(promises, f) {\n\t\t\treturn Promise._traverse(f, promises);\n\t\t}\n\n\t\t/**\n\t\t * Filter the provided array of promises using the provided predicate. Input may\n\t\t * contain promises and values\n\t\t * @param {Array} promises array of promises and values\n\t\t * @param {function(x:*, index:Number):boolean} predicate filtering predicate.\n\t\t * Must return truthy (or promise for truthy) for items to retain.\n\t\t * @returns {Promise} promise that will fulfill with an array containing all items\n\t\t * for which predicate returned truthy.\n\t\t */\n\t\tfunction filter(promises, predicate) {\n\t\t\tvar a = slice.call(promises);\n\t\t\treturn Promise._traverse(predicate, a).then(function(keep) {\n\t\t\t\treturn filterSync(a, keep);\n\t\t\t});\n\t\t}\n\n\t\tfunction filterSync(promises, keep) {\n\t\t\t// Safe because we know all promises have fulfilled if we've made it this far\n\t\t\tvar l = keep.length;\n\t\t\tvar filtered = new Array(l);\n\t\t\tfor(var i=0, j=0; i<l; ++i) {\n\t\t\t\tif(keep[i]) {\n\t\t\t\t\tfiltered[j++] = Promise._handler(promises[i]).value;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiltered.length = j;\n\t\t\treturn filtered;\n\n\t\t}\n\n\t\t/**\n\t\t * Return a promise that will always fulfill with an array containing\n\t\t * the outcome states of all input promises. The returned promise\n\t\t * will never reject.\n\t\t * @param {Array} promises\n\t\t * @returns {Promise} promise for array of settled state descriptors\n\t\t */\n\t\tfunction settle(promises) {\n\t\t\treturn all(promises.map(settleOne));\n\t\t}\n\n\t\tfunction settleOne(p) {\n\t\t\t// Optimize the case where we get an already-resolved when.js promise\n\t\t\t// by extracting its state:\n\t\t\tvar handler;\n\t\t\tif (p instanceof Promise) {\n\t\t\t\t// This is our own Promise type and we can reach its handler internals:\n\t\t\t\thandler = p._handler.join();\n\t\t\t}\n\t\t\tif((handler && handler.state() === 0) || !handler) {\n\t\t\t\t// Either still pending, or not a Promise at all:\n\t\t\t\treturn toPromise(p).then(state.fulfilled, state.rejected);\n\t\t\t}\n\n\t\t\t// The promise is our own, but it is already resolved. Take a shortcut.\n\t\t\t// Since we're not actually handling the resolution, we need to disable\n\t\t\t// rejection reporting.\n\t\t\thandler._unreport();\n\t\t\treturn state.inspect(handler);\n\t\t}\n\n\t\t/**\n\t\t * Traditional reduce function, similar to `Array.prototype.reduce()`, but\n\t\t * input may contain promises and/or values, and reduceFunc\n\t\t * may return either a value or a promise, *and* initialValue may\n\t\t * be a promise for the starting value.\n\t\t * @param {Array|Promise} promises array or promise for an array of anything,\n\t\t * may contain a mix of promises and values.\n\t\t * @param {function(accumulated:*, x:*, index:Number):*} f reduce function\n\t\t * @returns {Promise} that will resolve to the final reduced value\n\t\t */\n\t\tfunction reduce(promises, f /*, initialValue */) {\n\t\t\treturn arguments.length > 2 ? ar.call(promises, liftCombine(f), arguments[2])\n\t\t\t\t\t: ar.call(promises, liftCombine(f));\n\t\t}\n\n\t\t/**\n\t\t * Traditional reduce function, similar to `Array.prototype.reduceRight()`, but\n\t\t * input may contain promises and/or values, and reduceFunc\n\t\t * may return either a value or a promise, *and* initialValue may\n\t\t * be a promise for the starting value.\n\t\t * @param {Array|Promise} promises array or promise for an array of anything,\n\t\t * may contain a mix of promises and values.\n\t\t * @param {function(accumulated:*, x:*, index:Number):*} f reduce function\n\t\t * @returns {Promise} that will resolve to the final reduced value\n\t\t */\n\t\tfunction reduceRight(promises, f /*, initialValue */) {\n\t\t\treturn arguments.length > 2 ? arr.call(promises, liftCombine(f), arguments[2])\n\t\t\t\t\t: arr.call(promises, liftCombine(f));\n\t\t}\n\n\t\tfunction liftCombine(f) {\n\t\t\treturn function(z, x, i) {\n\t\t\t\treturn applyFold(f, void 0, [z,x,i]);\n\t\t\t};\n\t\t}\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function flow(Promise) {\n\n\t\tvar resolve = Promise.resolve;\n\t\tvar reject = Promise.reject;\n\t\tvar origCatch = Promise.prototype['catch'];\n\n\t\t/**\n\t\t * Handle the ultimate fulfillment value or rejection reason, and assume\n\t\t * responsibility for all errors. If an error propagates out of result\n\t\t * or handleFatalError, it will be rethrown to the host, resulting in a\n\t\t * loud stack track on most platforms and a crash on some.\n\t\t * @param {function?} onResult\n\t\t * @param {function?} onError\n\t\t * @returns {undefined}\n\t\t */\n\t\tPromise.prototype.done = function(onResult, onError) {\n\t\t\tthis._handler.visit(this._handler.receiver, onResult, onError);\n\t\t};\n\n\t\t/**\n\t\t * Add Error-type and predicate matching to catch. Examples:\n\t\t * promise.catch(TypeError, handleTypeError)\n\t\t * .catch(predicate, handleMatchedErrors)\n\t\t * .catch(handleRemainingErrors)\n\t\t * @param onRejected\n\t\t * @returns {*}\n\t\t */\n\t\tPromise.prototype['catch'] = Promise.prototype.otherwise = function(onRejected) {\n\t\t\tif (arguments.length < 2) {\n\t\t\t\treturn origCatch.call(this, onRejected);\n\t\t\t}\n\n\t\t\tif(typeof onRejected !== 'function') {\n\t\t\t\treturn this.ensure(rejectInvalidPredicate);\n\t\t\t}\n\n\t\t\treturn origCatch.call(this, createCatchFilter(arguments[1], onRejected));\n\t\t};\n\n\t\t/**\n\t\t * Wraps the provided catch handler, so that it will only be called\n\t\t * if the predicate evaluates truthy\n\t\t * @param {?function} handler\n\t\t * @param {function} predicate\n\t\t * @returns {function} conditional catch handler\n\t\t */\n\t\tfunction createCatchFilter(handler, predicate) {\n\t\t\treturn function(e) {\n\t\t\t\treturn evaluatePredicate(e, predicate)\n\t\t\t\t\t? handler.call(this, e)\n\t\t\t\t\t: reject(e);\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Ensures that onFulfilledOrRejected will be called regardless of whether\n\t\t * this promise is fulfilled or rejected. onFulfilledOrRejected WILL NOT\n\t\t * receive the promises' value or reason. Any returned value will be disregarded.\n\t\t * onFulfilledOrRejected may throw or return a rejected promise to signal\n\t\t * an additional error.\n\t\t * @param {function} handler handler to be called regardless of\n\t\t * fulfillment or rejection\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype['finally'] = Promise.prototype.ensure = function(handler) {\n\t\t\tif(typeof handler !== 'function') {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\treturn this.then(function(x) {\n\t\t\t\treturn runSideEffect(handler, this, identity, x);\n\t\t\t}, function(e) {\n\t\t\t\treturn runSideEffect(handler, this, reject, e);\n\t\t\t});\n\t\t};\n\n\t\tfunction runSideEffect (handler, thisArg, propagate, value) {\n\t\t\tvar result = handler.call(thisArg);\n\t\t\treturn maybeThenable(result)\n\t\t\t\t? propagateValue(result, propagate, value)\n\t\t\t\t: propagate(value);\n\t\t}\n\n\t\tfunction propagateValue (result, propagate, x) {\n\t\t\treturn resolve(result).then(function () {\n\t\t\t\treturn propagate(x);\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Recover from a failure by returning a defaultValue. If defaultValue\n\t\t * is a promise, it's fulfillment value will be used. If defaultValue is\n\t\t * a promise that rejects, the returned promise will reject with the\n\t\t * same reason.\n\t\t * @param {*} defaultValue\n\t\t * @returns {Promise} new promise\n\t\t */\n\t\tPromise.prototype['else'] = Promise.prototype.orElse = function(defaultValue) {\n\t\t\treturn this.then(void 0, function() {\n\t\t\t\treturn defaultValue;\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * Shortcut for .then(function() { return value; })\n\t\t * @param {*} value\n\t\t * @return {Promise} a promise that:\n\t\t * - is fulfilled if value is not a promise, or\n\t\t * - if value is a promise, will fulfill with its value, or reject\n\t\t * with its reason.\n\t\t */\n\t\tPromise.prototype['yield'] = function(value) {\n\t\t\treturn this.then(function() {\n\t\t\t\treturn value;\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * Runs a side effect when this promise fulfills, without changing the\n\t\t * fulfillment value.\n\t\t * @param {function} onFulfilledSideEffect\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype.tap = function(onFulfilledSideEffect) {\n\t\t\treturn this.then(onFulfilledSideEffect)['yield'](this);\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n\tfunction rejectInvalidPredicate() {\n\t\tthrow new TypeError('catch predicate must be a function');\n\t}\n\n\tfunction evaluatePredicate(e, predicate) {\n\t\treturn isError(predicate) ? e instanceof predicate : predicate(e);\n\t}\n\n\tfunction isError(predicate) {\n\t\treturn predicate === Error\n\t\t\t|| (predicate != null && predicate.prototype instanceof Error);\n\t}\n\n\tfunction maybeThenable(x) {\n\t\treturn (typeof x === 'object' || typeof x === 'function') && x !== null;\n\t}\n\n\tfunction identity(x) {\n\t\treturn x;\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n/** @author Jeff Escalante */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function fold(Promise) {\n\n\t\tPromise.prototype.fold = function(f, z) {\n\t\t\tvar promise = this._beget();\n\n\t\t\tthis._handler.fold(function(z, x, to) {\n\t\t\t\tPromise._handler(z).fold(function(x, z, to) {\n\t\t\t\t\tto.resolve(f.call(this, z, x));\n\t\t\t\t}, x, this, to);\n\t\t\t}, z, promise._handler.receiver, promise._handler);\n\n\t\t\treturn promise;\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar inspect = require('../state').inspect;\n\n\treturn function inspection(Promise) {\n\n\t\tPromise.prototype.inspect = function() {\n\t\t\treturn inspect(Promise._handler(this));\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function generate(Promise) {\n\n\t\tvar resolve = Promise.resolve;\n\n\t\tPromise.iterate = iterate;\n\t\tPromise.unfold = unfold;\n\n\t\treturn Promise;\n\n\t\t/**\n\t\t * @deprecated Use github.com/cujojs/most streams and most.iterate\n\t\t * Generate a (potentially infinite) stream of promised values:\n\t\t * x, f(x), f(f(x)), etc. until condition(x) returns true\n\t\t * @param {function} f function to generate a new x from the previous x\n\t\t * @param {function} condition function that, given the current x, returns\n\t\t * truthy when the iterate should stop\n\t\t * @param {function} handler function to handle the value produced by f\n\t\t * @param {*|Promise} x starting value, may be a promise\n\t\t * @return {Promise} the result of the last call to f before\n\t\t * condition returns true\n\t\t */\n\t\tfunction iterate(f, condition, handler, x) {\n\t\t\treturn unfold(function(x) {\n\t\t\t\treturn [x, f(x)];\n\t\t\t}, condition, handler, x);\n\t\t}\n\n\t\t/**\n\t\t * @deprecated Use github.com/cujojs/most streams and most.unfold\n\t\t * Generate a (potentially infinite) stream of promised values\n\t\t * by applying handler(generator(seed)) iteratively until\n\t\t * condition(seed) returns true.\n\t\t * @param {function} unspool function that generates a [value, newSeed]\n\t\t * given a seed.\n\t\t * @param {function} condition function that, given the current seed, returns\n\t\t * truthy when the unfold should stop\n\t\t * @param {function} handler function to handle the value produced by unspool\n\t\t * @param x {*|Promise} starting value, may be a promise\n\t\t * @return {Promise} the result of the last value produced by unspool before\n\t\t * condition returns true\n\t\t */\n\t\tfunction unfold(unspool, condition, handler, x) {\n\t\t\treturn resolve(x).then(function(seed) {\n\t\t\t\treturn resolve(condition(seed)).then(function(done) {\n\t\t\t\t\treturn done ? seed : resolve(unspool(seed)).spread(next);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tfunction next(item, newSeed) {\n\t\t\t\treturn resolve(handler(item)).then(function() {\n\t\t\t\t\treturn unfold(unspool, condition, handler, newSeed);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function progress(Promise) {\n\n\t\t/**\n\t\t * @deprecated\n\t\t * Register a progress handler for this promise\n\t\t * @param {function} onProgress\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype.progress = function(onProgress) {\n\t\t\treturn this.then(void 0, void 0, onProgress);\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar env = require('../env');\n\tvar TimeoutError = require('../TimeoutError');\n\n\tfunction setTimeout(f, ms, x, y) {\n\t\treturn env.setTimer(function() {\n\t\t\tf(x, y, ms);\n\t\t}, ms);\n\t}\n\n\treturn function timed(Promise) {\n\t\t/**\n\t\t * Return a new promise whose fulfillment value is revealed only\n\t\t * after ms milliseconds\n\t\t * @param {number} ms milliseconds\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype.delay = function(ms) {\n\t\t\tvar p = this._beget();\n\t\t\tthis._handler.fold(handleDelay, ms, void 0, p._handler);\n\t\t\treturn p;\n\t\t};\n\n\t\tfunction handleDelay(ms, x, h) {\n\t\t\tsetTimeout(resolveDelay, ms, x, h);\n\t\t}\n\n\t\tfunction resolveDelay(x, h) {\n\t\t\th.resolve(x);\n\t\t}\n\n\t\t/**\n\t\t * Return a new promise that rejects after ms milliseconds unless\n\t\t * this promise fulfills earlier, in which case the returned promise\n\t\t * fulfills with the same value.\n\t\t * @param {number} ms milliseconds\n\t\t * @param {Error|*=} reason optional rejection reason to use, defaults\n\t\t * to a TimeoutError if not provided\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype.timeout = function(ms, reason) {\n\t\t\tvar p = this._beget();\n\t\t\tvar h = p._handler;\n\n\t\t\tvar t = setTimeout(onTimeout, ms, reason, p._handler);\n\n\t\t\tthis._handler.visit(h,\n\t\t\t\tfunction onFulfill(x) {\n\t\t\t\t\tenv.clearTimer(t);\n\t\t\t\t\tthis.resolve(x); // this = h\n\t\t\t\t},\n\t\t\t\tfunction onReject(x) {\n\t\t\t\t\tenv.clearTimer(t);\n\t\t\t\t\tthis.reject(x); // this = h\n\t\t\t\t},\n\t\t\t\th.notify);\n\n\t\t\treturn p;\n\t\t};\n\n\t\tfunction onTimeout(reason, h, ms) {\n\t\t\tvar e = typeof reason === 'undefined'\n\t\t\t\t? new TimeoutError('timed out after ' + ms + 'ms')\n\t\t\t\t: reason;\n\t\t\th.reject(e);\n\t\t}\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar setTimer = require('../env').setTimer;\n\tvar format = require('../format');\n\n\treturn function unhandledRejection(Promise) {\n\n\t\tvar logError = noop;\n\t\tvar logInfo = noop;\n\t\tvar localConsole;\n\n\t\tif(typeof console !== 'undefined') {\n\t\t\t// Alias console to prevent things like uglify's drop_console option from\n\t\t\t// removing console.log/error. Unhandled rejections fall into the same\n\t\t\t// category as uncaught exceptions, and build tools shouldn't silence them.\n\t\t\tlocalConsole = console;\n\t\t\tlogError = typeof localConsole.error !== 'undefined'\n\t\t\t\t? function (e) { localConsole.error(e); }\n\t\t\t\t: function (e) { localConsole.log(e); };\n\n\t\t\tlogInfo = typeof localConsole.info !== 'undefined'\n\t\t\t\t? function (e) { localConsole.info(e); }\n\t\t\t\t: function (e) { localConsole.log(e); };\n\t\t}\n\n\t\tPromise.onPotentiallyUnhandledRejection = function(rejection) {\n\t\t\tenqueue(report, rejection);\n\t\t};\n\n\t\tPromise.onPotentiallyUnhandledRejectionHandled = function(rejection) {\n\t\t\tenqueue(unreport, rejection);\n\t\t};\n\n\t\tPromise.onFatalRejection = function(rejection) {\n\t\t\tenqueue(throwit, rejection.value);\n\t\t};\n\n\t\tvar tasks = [];\n\t\tvar reported = [];\n\t\tvar running = null;\n\n\t\tfunction report(r) {\n\t\t\tif(!r.handled) {\n\t\t\t\treported.push(r);\n\t\t\t\tlogError('Potentially unhandled rejection [' + r.id + '] ' + format.formatError(r.value));\n\t\t\t}\n\t\t}\n\n\t\tfunction unreport(r) {\n\t\t\tvar i = reported.indexOf(r);\n\t\t\tif(i >= 0) {\n\t\t\t\treported.splice(i, 1);\n\t\t\t\tlogInfo('Handled previous rejection [' + r.id + '] ' + format.formatObject(r.value));\n\t\t\t}\n\t\t}\n\n\t\tfunction enqueue(f, x) {\n\t\t\ttasks.push(f, x);\n\t\t\tif(running === null) {\n\t\t\t\trunning = setTimer(flush, 0);\n\t\t\t}\n\t\t}\n\n\t\tfunction flush() {\n\t\t\trunning = null;\n\t\t\twhile(tasks.length > 0) {\n\t\t\t\ttasks.shift()(tasks.shift());\n\t\t\t}\n\t\t}\n\n\t\treturn Promise;\n\t};\n\n\tfunction throwit(e) {\n\t\tthrow e;\n\t}\n\n\tfunction noop() {}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function addWith(Promise) {\n\t\t/**\n\t\t * Returns a promise whose handlers will be called with `this` set to\n\t\t * the supplied receiver. Subsequent promises derived from the\n\t\t * returned promise will also have their handlers called with receiver\n\t\t * as `this`. Calling `with` with undefined or no arguments will return\n\t\t * a promise whose handlers will again be called in the usual Promises/A+\n\t\t * way (no `this`) thus safely undoing any previous `with` in the\n\t\t * promise chain.\n\t\t *\n\t\t * WARNING: Promises returned from `with`/`withThis` are NOT Promises/A+\n\t\t * compliant, specifically violating 2.2.5 (http://promisesaplus.com/#point-41)\n\t\t *\n\t\t * @param {object} receiver `this` value for all handlers attached to\n\t\t * the returned promise.\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype['with'] = Promise.prototype.withThis = function(receiver) {\n\t\t\tvar p = this._beget();\n\t\t\tvar child = p._handler;\n\t\t\tchild.receiver = receiver;\n\t\t\tthis._handler.chain(child, receiver);\n\t\t\treturn p;\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n/*global process,document,setTimeout,clearTimeout,MutationObserver,WebKitMutationObserver*/\n(function(define) { 'use strict';\ndefine(function(require) {\n\t/*jshint maxcomplexity:6*/\n\n\t// Sniff \"best\" async scheduling option\n\t// Prefer process.nextTick or MutationObserver, then check for\n\t// setTimeout, and finally vertx, since its the only env that doesn't\n\t// have setTimeout\n\n\tvar MutationObs;\n\tvar capturedSetTimeout = typeof setTimeout !== 'undefined' && setTimeout;\n\n\t// Default env\n\tvar setTimer = function(f, ms) { return setTimeout(f, ms); };\n\tvar clearTimer = function(t) { return clearTimeout(t); };\n\tvar asap = function (f) { return capturedSetTimeout(f, 0); };\n\n\t// Detect specific env\n\tif (isNode()) { // Node\n\t\tasap = function (f) { return process.nextTick(f); };\n\n\t} else if (MutationObs = hasMutationObserver()) { // Modern browser\n\t\tasap = initMutationObserver(MutationObs);\n\n\t} else if (!capturedSetTimeout) { // vert.x\n\t\tvar vertxRequire = require;\n\t\tvar vertx = vertxRequire('vertx');\n\t\tsetTimer = function (f, ms) { return vertx.setTimer(ms, f); };\n\t\tclearTimer = vertx.cancelTimer;\n\t\tasap = vertx.runOnLoop || vertx.runOnContext;\n\t}\n\n\treturn {\n\t\tsetTimer: setTimer,\n\t\tclearTimer: clearTimer,\n\t\tasap: asap\n\t};\n\n\tfunction isNode () {\n\t\treturn typeof process !== 'undefined' &&\n\t\t\tObject.prototype.toString.call(process) === '[object process]';\n\t}\n\n\tfunction hasMutationObserver () {\n\t return (typeof MutationObserver !== 'undefined' && MutationObserver) ||\n\t\t\t(typeof WebKitMutationObserver !== 'undefined' && WebKitMutationObserver);\n\t}\n\n\tfunction initMutationObserver(MutationObserver) {\n\t\tvar scheduled;\n\t\tvar node = document.createTextNode('');\n\t\tvar o = new MutationObserver(run);\n\t\to.observe(node, { characterData: true });\n\n\t\tfunction run() {\n\t\t\tvar f = scheduled;\n\t\t\tscheduled = void 0;\n\t\t\tf();\n\t\t}\n\n\t\tvar i = 0;\n\t\treturn function (f) {\n\t\t\tscheduled = f;\n\t\t\tnode.data = (i ^= 1);\n\t\t};\n\t}\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn {\n\t\tformatError: formatError,\n\t\tformatObject: formatObject,\n\t\ttryStringify: tryStringify\n\t};\n\n\t/**\n\t * Format an error into a string. If e is an Error and has a stack property,\n\t * it's returned. Otherwise, e is formatted using formatObject, with a\n\t * warning added about e not being a proper Error.\n\t * @param {*} e\n\t * @returns {String} formatted string, suitable for output to developers\n\t */\n\tfunction formatError(e) {\n\t\tvar s = typeof e === 'object' && e !== null && (e.stack || e.message) ? e.stack || e.message : formatObject(e);\n\t\treturn e instanceof Error ? s : s + ' (WARNING: non-Error used)';\n\t}\n\n\t/**\n\t * Format an object, detecting \"plain\" objects and running them through\n\t * JSON.stringify if possible.\n\t * @param {Object} o\n\t * @returns {string}\n\t */\n\tfunction formatObject(o) {\n\t\tvar s = String(o);\n\t\tif(s === '[object Object]' && typeof JSON !== 'undefined') {\n\t\t\ts = tryStringify(o, s);\n\t\t}\n\t\treturn s;\n\t}\n\n\t/**\n\t * Try to return the result of JSON.stringify(x). If that fails, return\n\t * defaultValue\n\t * @param {*} x\n\t * @param {*} defaultValue\n\t * @returns {String|*} JSON.stringify(x) or defaultValue\n\t */\n\tfunction tryStringify(x, defaultValue) {\n\t\ttry {\n\t\t\treturn JSON.stringify(x);\n\t\t} catch(e) {\n\t\t\treturn defaultValue;\n\t\t}\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function liftAll(liftOne, combine, dst, src) {\n\t\tif(typeof combine === 'undefined') {\n\t\t\tcombine = defaultCombine;\n\t\t}\n\n\t\treturn Object.keys(src).reduce(function(dst, key) {\n\t\t\tvar f = src[key];\n\t\t\treturn typeof f === 'function' ? combine(dst, liftOne(f), key) : dst;\n\t\t}, typeof dst === 'undefined' ? defaultDst(src) : dst);\n\t};\n\n\tfunction defaultCombine(o, f, k) {\n\t\to[k] = f;\n\t\treturn o;\n\t}\n\n\tfunction defaultDst(src) {\n\t\treturn typeof src === 'function' ? src.bind() : Object.create(src);\n\t}\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function makePromise(environment) {\n\n\t\tvar tasks = environment.scheduler;\n\t\tvar emitRejection = initEmitRejection();\n\n\t\tvar objectCreate = Object.create ||\n\t\t\tfunction(proto) {\n\t\t\t\tfunction Child() {}\n\t\t\t\tChild.prototype = proto;\n\t\t\t\treturn new Child();\n\t\t\t};\n\n\t\t/**\n\t\t * Create a promise whose fate is determined by resolver\n\t\t * @constructor\n\t\t * @returns {Promise} promise\n\t\t * @name Promise\n\t\t */\n\t\tfunction Promise(resolver, handler) {\n\t\t\tthis._handler = resolver === Handler ? handler : init(resolver);\n\t\t}\n\n\t\t/**\n\t\t * Run the supplied resolver\n\t\t * @param resolver\n\t\t * @returns {Pending}\n\t\t */\n\t\tfunction init(resolver) {\n\t\t\tvar handler = new Pending();\n\n\t\t\ttry {\n\t\t\t\tresolver(promiseResolve, promiseReject, promiseNotify);\n\t\t\t} catch (e) {\n\t\t\t\tpromiseReject(e);\n\t\t\t}\n\n\t\t\treturn handler;\n\n\t\t\t/**\n\t\t\t * Transition from pre-resolution state to post-resolution state, notifying\n\t\t\t * all listeners of the ultimate fulfillment or rejection\n\t\t\t * @param {*} x resolution value\n\t\t\t */\n\t\t\tfunction promiseResolve (x) {\n\t\t\t\thandler.resolve(x);\n\t\t\t}\n\t\t\t/**\n\t\t\t * Reject this promise with reason, which will be used verbatim\n\t\t\t * @param {Error|*} reason rejection reason, strongly suggested\n\t\t\t * to be an Error type\n\t\t\t */\n\t\t\tfunction promiseReject (reason) {\n\t\t\t\thandler.reject(reason);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * @deprecated\n\t\t\t * Issue a progress event, notifying all progress listeners\n\t\t\t * @param {*} x progress event payload to pass to all listeners\n\t\t\t */\n\t\t\tfunction promiseNotify (x) {\n\t\t\t\thandler.notify(x);\n\t\t\t}\n\t\t}\n\n\t\t// Creation\n\n\t\tPromise.resolve = resolve;\n\t\tPromise.reject = reject;\n\t\tPromise.never = never;\n\n\t\tPromise._defer = defer;\n\t\tPromise._handler = getHandler;\n\n\t\t/**\n\t\t * Returns a trusted promise. If x is already a trusted promise, it is\n\t\t * returned, otherwise returns a new trusted Promise which follows x.\n\t\t * @param {*} x\n\t\t * @return {Promise} promise\n\t\t */\n\t\tfunction resolve(x) {\n\t\t\treturn isPromise(x) ? x\n\t\t\t\t: new Promise(Handler, new Async(getHandler(x)));\n\t\t}\n\n\t\t/**\n\t\t * Return a reject promise with x as its reason (x is used verbatim)\n\t\t * @param {*} x\n\t\t * @returns {Promise} rejected promise\n\t\t */\n\t\tfunction reject(x) {\n\t\t\treturn new Promise(Handler, new Async(new Rejected(x)));\n\t\t}\n\n\t\t/**\n\t\t * Return a promise that remains pending forever\n\t\t * @returns {Promise} forever-pending promise.\n\t\t */\n\t\tfunction never() {\n\t\t\treturn foreverPendingPromise; // Should be frozen\n\t\t}\n\n\t\t/**\n\t\t * Creates an internal {promise, resolver} pair\n\t\t * @private\n\t\t * @returns {Promise}\n\t\t */\n\t\tfunction defer() {\n\t\t\treturn new Promise(Handler, new Pending());\n\t\t}\n\n\t\t// Transformation and flow control\n\n\t\t/**\n\t\t * Transform this promise's fulfillment value, returning a new Promise\n\t\t * for the transformed result. If the promise cannot be fulfilled, onRejected\n\t\t * is called with the reason. onProgress *may* be called with updates toward\n\t\t * this promise's fulfillment.\n\t\t * @param {function=} onFulfilled fulfillment handler\n\t\t * @param {function=} onRejected rejection handler\n\t\t * @param {function=} onProgress @deprecated progress handler\n\t\t * @return {Promise} new promise\n\t\t */\n\t\tPromise.prototype.then = function(onFulfilled, onRejected, onProgress) {\n\t\t\tvar parent = this._handler;\n\t\t\tvar state = parent.join().state();\n\n\t\t\tif ((typeof onFulfilled !== 'function' && state > 0) ||\n\t\t\t\t(typeof onRejected !== 'function' && state < 0)) {\n\t\t\t\t// Short circuit: value will not change, simply share handler\n\t\t\t\treturn new this.constructor(Handler, parent);\n\t\t\t}\n\n\t\t\tvar p = this._beget();\n\t\t\tvar child = p._handler;\n\n\t\t\tparent.chain(child, parent.receiver, onFulfilled, onRejected, onProgress);\n\n\t\t\treturn p;\n\t\t};\n\n\t\t/**\n\t\t * If this promise cannot be fulfilled due to an error, call onRejected to\n\t\t * handle the error. Shortcut for .then(undefined, onRejected)\n\t\t * @param {function?} onRejected\n\t\t * @return {Promise}\n\t\t */\n\t\tPromise.prototype['catch'] = function(onRejected) {\n\t\t\treturn this.then(void 0, onRejected);\n\t\t};\n\n\t\t/**\n\t\t * Creates a new, pending promise of the same type as this promise\n\t\t * @private\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype._beget = function() {\n\t\t\treturn begetFrom(this._handler, this.constructor);\n\t\t};\n\n\t\tfunction begetFrom(parent, Promise) {\n\t\t\tvar child = new Pending(parent.receiver, parent.join().context);\n\t\t\treturn new Promise(Handler, child);\n\t\t}\n\n\t\t// Array combinators\n\n\t\tPromise.all = all;\n\t\tPromise.race = race;\n\t\tPromise._traverse = traverse;\n\n\t\t/**\n\t\t * Return a promise that will fulfill when all promises in the\n\t\t * input array have fulfilled, or will reject when one of the\n\t\t * promises rejects.\n\t\t * @param {array} promises array of promises\n\t\t * @returns {Promise} promise for array of fulfillment values\n\t\t */\n\t\tfunction all(promises) {\n\t\t\treturn traverseWith(snd, null, promises);\n\t\t}\n\n\t\t/**\n\t\t * Array<Promise<X>> -> Promise<Array<f(X)>>\n\t\t * @private\n\t\t * @param {function} f function to apply to each promise's value\n\t\t * @param {Array} promises array of promises\n\t\t * @returns {Promise} promise for transformed values\n\t\t */\n\t\tfunction traverse(f, promises) {\n\t\t\treturn traverseWith(tryCatch2, f, promises);\n\t\t}\n\n\t\tfunction traverseWith(tryMap, f, promises) {\n\t\t\tvar handler = typeof f === 'function' ? mapAt : settleAt;\n\n\t\t\tvar resolver = new Pending();\n\t\t\tvar pending = promises.length >>> 0;\n\t\t\tvar results = new Array(pending);\n\n\t\t\tfor (var i = 0, x; i < promises.length && !resolver.resolved; ++i) {\n\t\t\t\tx = promises[i];\n\n\t\t\t\tif (x === void 0 && !(i in promises)) {\n\t\t\t\t\t--pending;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\ttraverseAt(promises, handler, i, x, resolver);\n\t\t\t}\n\n\t\t\tif(pending === 0) {\n\t\t\t\tresolver.become(new Fulfilled(results));\n\t\t\t}\n\n\t\t\treturn new Promise(Handler, resolver);\n\n\t\t\tfunction mapAt(i, x, resolver) {\n\t\t\t\tif(!resolver.resolved) {\n\t\t\t\t\ttraverseAt(promises, settleAt, i, tryMap(f, x, i), resolver);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction settleAt(i, x, resolver) {\n\t\t\t\tresults[i] = x;\n\t\t\t\tif(--pending === 0) {\n\t\t\t\t\tresolver.become(new Fulfilled(results));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction traverseAt(promises, handler, i, x, resolver) {\n\t\t\tif (maybeThenable(x)) {\n\t\t\t\tvar h = getHandlerMaybeThenable(x);\n\t\t\t\tvar s = h.state();\n\n\t\t\t\tif (s === 0) {\n\t\t\t\t\th.fold(handler, i, void 0, resolver);\n\t\t\t\t} else if (s > 0) {\n\t\t\t\t\thandler(i, h.value, resolver);\n\t\t\t\t} else {\n\t\t\t\t\tresolver.become(h);\n\t\t\t\t\tvisitRemaining(promises, i+1, h);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thandler(i, x, resolver);\n\t\t\t}\n\t\t}\n\n\t\tPromise._visitRemaining = visitRemaining;\n\t\tfunction visitRemaining(promises, start, handler) {\n\t\t\tfor(var i=start; i<promises.length; ++i) {\n\t\t\t\tmarkAsHandled(getHandler(promises[i]), handler);\n\t\t\t}\n\t\t}\n\n\t\tfunction markAsHandled(h, handler) {\n\t\t\tif(h === handler) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar s = h.state();\n\t\t\tif(s === 0) {\n\t\t\t\th.visit(h, void 0, h._unreport);\n\t\t\t} else if(s < 0) {\n\t\t\t\th._unreport();\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Fulfill-reject competitive race. Return a promise that will settle\n\t\t * to the same state as the earliest input promise to settle.\n\t\t *\n\t\t * WARNING: The ES6 Promise spec requires that race()ing an empty array\n\t\t * must return a promise that is pending forever. This implementation\n\t\t * returns a singleton forever-pending promise, the same singleton that is\n\t\t * returned by Promise.never(), thus can be checked with ===\n\t\t *\n\t\t * @param {array} promises array of promises to race\n\t\t * @returns {Promise} if input is non-empty, a promise that will settle\n\t\t * to the same outcome as the earliest input promise to settle. if empty\n\t\t * is empty, returns a promise that will never settle.\n\t\t */\n\t\tfunction race(promises) {\n\t\t\tif(typeof promises !== 'object' || promises === null) {\n\t\t\t\treturn reject(new TypeError('non-iterable passed to race()'));\n\t\t\t}\n\n\t\t\t// Sigh, race([]) is untestable unless we return *something*\n\t\t\t// that is recognizable without calling .then() on it.\n\t\t\treturn promises.length === 0 ? never()\n\t\t\t\t : promises.length === 1 ? resolve(promises[0])\n\t\t\t\t : runRace(promises);\n\t\t}\n\n\t\tfunction runRace(promises) {\n\t\t\tvar resolver = new Pending();\n\t\t\tvar i, x, h;\n\t\t\tfor(i=0; i<promises.length; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif (x === void 0 && !(i in promises)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\th = getHandler(x);\n\t\t\t\tif(h.state() !== 0) {\n\t\t\t\t\tresolver.become(h);\n\t\t\t\t\tvisitRemaining(promises, i+1, h);\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\th.visit(resolver, resolver.resolve, resolver.reject);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn new Promise(Handler, resolver);\n\t\t}\n\n\t\t// Promise internals\n\t\t// Below this, everything is @private\n\n\t\t/**\n\t\t * Get an appropriate handler for x, without checking for cycles\n\t\t * @param {*} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandler(x) {\n\t\t\tif(isPromise(x)) {\n\t\t\t\treturn x._handler.join();\n\t\t\t}\n\t\t\treturn maybeThenable(x) ? getHandlerUntrusted(x) : new Fulfilled(x);\n\t\t}\n\n\t\t/**\n\t\t * Get a handler for thenable x.\n\t\t * NOTE: You must only call this if maybeThenable(x) == true\n\t\t * @param {object|function|Promise} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandlerMaybeThenable(x) {\n\t\t\treturn isPromise(x) ? x._handler.join() : getHandlerUntrusted(x);\n\t\t}\n\n\t\t/**\n\t\t * Get a handler for potentially untrusted thenable x\n\t\t * @param {*} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandlerUntrusted(x) {\n\t\t\ttry {\n\t\t\t\tvar untrustedThen = x.then;\n\t\t\t\treturn typeof untrustedThen === 'function'\n\t\t\t\t\t? new Thenable(untrustedThen, x)\n\t\t\t\t\t: new Fulfilled(x);\n\t\t\t} catch(e) {\n\t\t\t\treturn new Rejected(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Handler for a promise that is pending forever\n\t\t * @constructor\n\t\t */\n\t\tfunction Handler() {}\n\n\t\tHandler.prototype.when\n\t\t\t= Handler.prototype.become\n\t\t\t= Handler.prototype.notify // deprecated\n\t\t\t= Handler.prototype.fail\n\t\t\t= Handler.prototype._unreport\n\t\t\t= Handler.prototype._report\n\t\t\t= noop;\n\n\t\tHandler.prototype._state = 0;\n\n\t\tHandler.prototype.state = function() {\n\t\t\treturn this._state;\n\t\t};\n\n\t\t/**\n\t\t * Recursively collapse handler chain to find the handler\n\t\t * nearest to the fully resolved value.\n\t\t * @returns {object} handler nearest the fully resolved value\n\t\t */\n\t\tHandler.prototype.join = function() {\n\t\t\tvar h = this;\n\t\t\twhile(h.handler !== void 0) {\n\t\t\t\th = h.handler;\n\t\t\t}\n\t\t\treturn h;\n\t\t};\n\n\t\tHandler.prototype.chain = function(to, receiver, fulfilled, rejected, progress) {\n\t\t\tthis.when({\n\t\t\t\tresolver: to,\n\t\t\t\treceiver: receiver,\n\t\t\t\tfulfilled: fulfilled,\n\t\t\t\trejected: rejected,\n\t\t\t\tprogress: progress\n\t\t\t});\n\t\t};\n\n\t\tHandler.prototype.visit = function(receiver, fulfilled, rejected, progress) {\n\t\t\tthis.chain(failIfRejected, receiver, fulfilled, rejected, progress);\n\t\t};\n\n\t\tHandler.prototype.fold = function(f, z, c, to) {\n\t\t\tthis.when(new Fold(f, z, c, to));\n\t\t};\n\n\t\t/**\n\t\t * Handler that invokes fail() on any handler it becomes\n\t\t * @constructor\n\t\t */\n\t\tfunction FailIfRejected() {}\n\n\t\tinherit(Handler, FailIfRejected);\n\n\t\tFailIfRejected.prototype.become = function(h) {\n\t\t\th.fail();\n\t\t};\n\n\t\tvar failIfRejected = new FailIfRejected();\n\n\t\t/**\n\t\t * Handler that manages a queue of consumers waiting on a pending promise\n\t\t * @constructor\n\t\t */\n\t\tfunction Pending(receiver, inheritedContext) {\n\t\t\tPromise.createContext(this, inheritedContext);\n\n\t\t\tthis.consumers = void 0;\n\t\t\tthis.receiver = receiver;\n\t\t\tthis.handler = void 0;\n\t\t\tthis.resolved = false;\n\t\t}\n\n\t\tinherit(Handler, Pending);\n\n\t\tPending.prototype._state = 0;\n\n\t\tPending.prototype.resolve = function(x) {\n\t\t\tthis.become(getHandler(x));\n\t\t};\n\n\t\tPending.prototype.reject = function(x) {\n\t\t\tif(this.resolved) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.become(new Rejected(x));\n\t\t};\n\n\t\tPending.prototype.join = function() {\n\t\t\tif (!this.resolved) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tvar h = this;\n\n\t\t\twhile (h.handler !== void 0) {\n\t\t\t\th = h.handler;\n\t\t\t\tif (h === this) {\n\t\t\t\t\treturn this.handler = cycle();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn h;\n\t\t};\n\n\t\tPending.prototype.run = function() {\n\t\t\tvar q = this.consumers;\n\t\t\tvar handler = this.handler;\n\t\t\tthis.handler = this.handler.join();\n\t\t\tthis.consumers = void 0;\n\n\t\t\tfor (var i = 0; i < q.length; ++i) {\n\t\t\t\thandler.when(q[i]);\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.become = function(handler) {\n\t\t\tif(this.resolved) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.resolved = true;\n\t\t\tthis.handler = handler;\n\t\t\tif(this.consumers !== void 0) {\n\t\t\t\ttasks.enqueue(this);\n\t\t\t}\n\n\t\t\tif(this.context !== void 0) {\n\t\t\t\thandler._report(this.context);\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.when = function(continuation) {\n\t\t\tif(this.resolved) {\n\t\t\t\ttasks.enqueue(new ContinuationTask(continuation, this.handler));\n\t\t\t} else {\n\t\t\t\tif(this.consumers === void 0) {\n\t\t\t\t\tthis.consumers = [continuation];\n\t\t\t\t} else {\n\t\t\t\t\tthis.consumers.push(continuation);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * @deprecated\n\t\t */\n\t\tPending.prototype.notify = function(x) {\n\t\t\tif(!this.resolved) {\n\t\t\t\ttasks.enqueue(new ProgressTask(x, this));\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.fail = function(context) {\n\t\t\tvar c = typeof context === 'undefined' ? this.context : context;\n\t\t\tthis.resolved && this.handler.join().fail(c);\n\t\t};\n\n\t\tPending.prototype._report = function(context) {\n\t\t\tthis.resolved && this.handler.join()._report(context);\n\t\t};\n\n\t\tPending.prototype._unreport = function() {\n\t\t\tthis.resolved && this.handler.join()._unreport();\n\t\t};\n\n\t\t/**\n\t\t * Wrap another handler and force it into a future stack\n\t\t * @param {object} handler\n\t\t * @constructor\n\t\t */\n\t\tfunction Async(handler) {\n\t\t\tthis.handler = handler;\n\t\t}\n\n\t\tinherit(Handler, Async);\n\n\t\tAsync.prototype.when = function(continuation) {\n\t\t\ttasks.enqueue(new ContinuationTask(continuation, this));\n\t\t};\n\n\t\tAsync.prototype._report = function(context) {\n\t\t\tthis.join()._report(context);\n\t\t};\n\n\t\tAsync.prototype._unreport = function() {\n\t\t\tthis.join()._unreport();\n\t\t};\n\n\t\t/**\n\t\t * Handler that wraps an untrusted thenable and assimilates it in a future stack\n\t\t * @param {function} then\n\t\t * @param {{then: function}} thenable\n\t\t * @constructor\n\t\t */\n\t\tfunction Thenable(then, thenable) {\n\t\t\tPending.call(this);\n\t\t\ttasks.enqueue(new AssimilateTask(then, thenable, this));\n\t\t}\n\n\t\tinherit(Pending, Thenable);\n\n\t\t/**\n\t\t * Handler for a fulfilled promise\n\t\t * @param {*} x fulfillment value\n\t\t * @constructor\n\t\t */\n\t\tfunction Fulfilled(x) {\n\t\t\tPromise.createContext(this);\n\t\t\tthis.value = x;\n\t\t}\n\n\t\tinherit(Handler, Fulfilled);\n\n\t\tFulfilled.prototype._state = 1;\n\n\t\tFulfilled.prototype.fold = function(f, z, c, to) {\n\t\t\trunContinuation3(f, z, this, c, to);\n\t\t};\n\n\t\tFulfilled.prototype.when = function(cont) {\n\t\t\trunContinuation1(cont.fulfilled, this, cont.receiver, cont.resolver);\n\t\t};\n\n\t\tvar errorId = 0;\n\n\t\t/**\n\t\t * Handler for a rejected promise\n\t\t * @param {*} x rejection reason\n\t\t * @constructor\n\t\t */\n\t\tfunction Rejected(x) {\n\t\t\tPromise.createContext(this);\n\n\t\t\tthis.id = ++errorId;\n\t\t\tthis.value = x;\n\t\t\tthis.handled = false;\n\t\t\tthis.reported = false;\n\n\t\t\tthis._report();\n\t\t}\n\n\t\tinherit(Handler, Rejected);\n\n\t\tRejected.prototype._state = -1;\n\n\t\tRejected.prototype.fold = function(f, z, c, to) {\n\t\t\tto.become(this);\n\t\t};\n\n\t\tRejected.prototype.when = function(cont) {\n\t\t\tif(typeof cont.rejected === 'function') {\n\t\t\t\tthis._unreport();\n\t\t\t}\n\t\t\trunContinuation1(cont.rejected, this, cont.receiver, cont.resolver);\n\t\t};\n\n\t\tRejected.prototype._report = function(context) {\n\t\t\ttasks.afterQueue(new ReportTask(this, context));\n\t\t};\n\n\t\tRejected.prototype._unreport = function() {\n\t\t\tif(this.handled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.handled = true;\n\t\t\ttasks.afterQueue(new UnreportTask(this));\n\t\t};\n\n\t\tRejected.prototype.fail = function(context) {\n\t\t\tthis.reported = true;\n\t\t\temitRejection('unhandledRejection', this);\n\t\t\tPromise.onFatalRejection(this, context === void 0 ? this.context : context);\n\t\t};\n\n\t\tfunction ReportTask(rejection, context) {\n\t\t\tthis.rejection = rejection;\n\t\t\tthis.context = context;\n\t\t}\n\n\t\tReportTask.prototype.run = function() {\n\t\t\tif(!this.rejection.handled && !this.rejection.reported) {\n\t\t\t\tthis.rejection.reported = true;\n\t\t\t\temitRejection('unhandledRejection', this.rejection) ||\n\t\t\t\t\tPromise.onPotentiallyUnhandledRejection(this.rejection, this.context);\n\t\t\t}\n\t\t};\n\n\t\tfunction UnreportTask(rejection) {\n\t\t\tthis.rejection = rejection;\n\t\t}\n\n\t\tUnreportTask.prototype.run = function() {\n\t\t\tif(this.rejection.reported) {\n\t\t\t\temitRejection('rejectionHandled', this.rejection) ||\n\t\t\t\t\tPromise.onPotentiallyUnhandledRejectionHandled(this.rejection);\n\t\t\t}\n\t\t};\n\n\t\t// Unhandled rejection hooks\n\t\t// By default, everything is a noop\n\n\t\tPromise.createContext\n\t\t\t= Promise.enterContext\n\t\t\t= Promise.exitContext\n\t\t\t= Promise.onPotentiallyUnhandledRejection\n\t\t\t= Promise.onPotentiallyUnhandledRejectionHandled\n\t\t\t= Promise.onFatalRejection\n\t\t\t= noop;\n\n\t\t// Errors and singletons\n\n\t\tvar foreverPendingHandler = new Handler();\n\t\tvar foreverPendingPromise = new Promise(Handler, foreverPendingHandler);\n\n\t\tfunction cycle() {\n\t\t\treturn new Rejected(new TypeError('Promise cycle'));\n\t\t}\n\n\t\t// Task runners\n\n\t\t/**\n\t\t * Run a single consumer\n\t\t * @constructor\n\t\t */\n\t\tfunction ContinuationTask(continuation, handler) {\n\t\t\tthis.continuation = continuation;\n\t\t\tthis.handler = handler;\n\t\t}\n\n\t\tContinuationTask.prototype.run = function() {\n\t\t\tthis.handler.join().when(this.continuation);\n\t\t};\n\n\t\t/**\n\t\t * Run a queue of progress handlers\n\t\t * @constructor\n\t\t */\n\t\tfunction ProgressTask(value, handler) {\n\t\t\tthis.handler = handler;\n\t\t\tthis.value = value;\n\t\t}\n\n\t\tProgressTask.prototype.run = function() {\n\t\t\tvar q = this.handler.consumers;\n\t\t\tif(q === void 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var c, i = 0; i < q.length; ++i) {\n\t\t\t\tc = q[i];\n\t\t\t\trunNotify(c.progress, this.value, this.handler, c.receiver, c.resolver);\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Assimilate a thenable, sending it's value to resolver\n\t\t * @param {function} then\n\t\t * @param {object|function} thenable\n\t\t * @param {object} resolver\n\t\t * @constructor\n\t\t */\n\t\tfunction AssimilateTask(then, thenable, resolver) {\n\t\t\tthis._then = then;\n\t\t\tthis.thenable = thenable;\n\t\t\tthis.resolver = resolver;\n\t\t}\n\n\t\tAssimilateTask.prototype.run = function() {\n\t\t\tvar h = this.resolver;\n\t\t\ttryAssimilate(this._then, this.thenable, _resolve, _reject, _notify);\n\n\t\t\tfunction _resolve(x) { h.resolve(x); }\n\t\t\tfunction _reject(x) { h.reject(x); }\n\t\t\tfunction _notify(x) { h.notify(x); }\n\t\t};\n\n\t\tfunction tryAssimilate(then, thenable, resolve, reject, notify) {\n\t\t\ttry {\n\t\t\t\tthen.call(thenable, resolve, reject, notify);\n\t\t\t} catch (e) {\n\t\t\t\treject(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Fold a handler value with z\n\t\t * @constructor\n\t\t */\n\t\tfunction Fold(f, z, c, to) {\n\t\t\tthis.f = f; this.z = z; this.c = c; this.to = to;\n\t\t\tthis.resolver = failIfRejected;\n\t\t\tthis.receiver = this;\n\t\t}\n\n\t\tFold.prototype.fulfilled = function(x) {\n\t\t\tthis.f.call(this.c, this.z, x, this.to);\n\t\t};\n\n\t\tFold.prototype.rejected = function(x) {\n\t\t\tthis.to.reject(x);\n\t\t};\n\n\t\tFold.prototype.progress = function(x) {\n\t\t\tthis.to.notify(x);\n\t\t};\n\n\t\t// Other helpers\n\n\t\t/**\n\t\t * @param {*} x\n\t\t * @returns {boolean} true iff x is a trusted Promise\n\t\t */\n\t\tfunction isPromise(x) {\n\t\t\treturn x instanceof Promise;\n\t\t}\n\n\t\t/**\n\t\t * Test just enough to rule out primitives, in order to take faster\n\t\t * paths in some code\n\t\t * @param {*} x\n\t\t * @returns {boolean} false iff x is guaranteed *not* to be a thenable\n\t\t */\n\t\tfunction maybeThenable(x) {\n\t\t\treturn (typeof x === 'object' || typeof x === 'function') && x !== null;\n\t\t}\n\n\t\tfunction runContinuation1(f, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.become(h);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReject(f, h.value, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\tfunction runContinuation3(f, x, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.become(h);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReject3(f, x, h.value, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\t/**\n\t\t * @deprecated\n\t\t */\n\t\tfunction runNotify(f, x, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.notify(x);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReturn(f, x, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\tfunction tryCatch2(f, a, b) {\n\t\t\ttry {\n\t\t\t\treturn f(a, b);\n\t\t\t} catch(e) {\n\t\t\t\treturn reject(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Return f.call(thisArg, x), or if it throws return a rejected promise for\n\t\t * the thrown exception\n\t\t */\n\t\tfunction tryCatchReject(f, x, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tnext.become(getHandler(f.call(thisArg, x)));\n\t\t\t} catch(e) {\n\t\t\t\tnext.become(new Rejected(e));\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Same as above, but includes the extra argument parameter.\n\t\t */\n\t\tfunction tryCatchReject3(f, x, y, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tf.call(thisArg, x, y, next);\n\t\t\t} catch(e) {\n\t\t\t\tnext.become(new Rejected(e));\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * @deprecated\n\t\t * Return f.call(thisArg, x), or if it throws, *return* the exception\n\t\t */\n\t\tfunction tryCatchReturn(f, x, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tnext.notify(f.call(thisArg, x));\n\t\t\t} catch(e) {\n\t\t\t\tnext.notify(e);\n\t\t\t}\n\t\t}\n\n\t\tfunction inherit(Parent, Child) {\n\t\t\tChild.prototype = objectCreate(Parent.prototype);\n\t\t\tChild.prototype.constructor = Child;\n\t\t}\n\n\t\tfunction snd(x, y) {\n\t\t\treturn y;\n\t\t}\n\n\t\tfunction noop() {}\n\n\t\tfunction hasCustomEvent() {\n\t\t\tif(typeof CustomEvent === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\tvar ev = new CustomEvent('unhandledRejection');\n\t\t\t\t\treturn ev instanceof CustomEvent;\n\t\t\t\t} catch (ignoredException) {}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction hasInternetExplorerCustomEvent() {\n\t\t\tif(typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\t// Try to create one event to make sure it's supported\n\t\t\t\t\tvar ev = document.createEvent('CustomEvent');\n\t\t\t\t\tev.initCustomEvent('eventType', false, true, {});\n\t\t\t\t\treturn true;\n\t\t\t\t} catch (ignoredException) {}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction initEmitRejection() {\n\t\t\t/*global process, self, CustomEvent*/\n\t\t\tif(typeof process !== 'undefined' && process !== null\n\t\t\t\t&& typeof process.emit === 'function') {\n\t\t\t\t// Returning falsy here means to call the default\n\t\t\t\t// onPotentiallyUnhandledRejection API. This is safe even in\n\t\t\t\t// browserify since process.emit always returns falsy in browserify:\n\t\t\t\t// https://github.com/defunctzombie/node-process/blob/master/browser.js#L40-L46\n\t\t\t\treturn function(type, rejection) {\n\t\t\t\t\treturn type === 'unhandledRejection'\n\t\t\t\t\t\t? process.emit(type, rejection.value, rejection)\n\t\t\t\t\t\t: process.emit(type, rejection);\n\t\t\t\t};\n\t\t\t} else if(typeof self !== 'undefined' && hasCustomEvent()) {\n\t\t\t\treturn (function (self, CustomEvent) {\n\t\t\t\t\treturn function (type, rejection) {\n\t\t\t\t\t\tvar ev = new CustomEvent(type, {\n\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\treason: rejection.value,\n\t\t\t\t\t\t\t\tkey: rejection\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbubbles: false,\n\t\t\t\t\t\t\tcancelable: true\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn !self.dispatchEvent(ev);\n\t\t\t\t\t};\n\t\t\t\t}(self, CustomEvent));\n\t\t\t} else if(typeof self !== 'undefined' && hasInternetExplorerCustomEvent()) {\n\t\t\t\treturn (function(self, document) {\n\t\t\t\t\treturn function(type, rejection) {\n\t\t\t\t\t\tvar ev = document.createEvent('CustomEvent');\n\t\t\t\t\t\tev.initCustomEvent(type, false, true, {\n\t\t\t\t\t\t\treason: rejection.value,\n\t\t\t\t\t\t\tkey: rejection\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn !self.dispatchEvent(ev);\n\t\t\t\t\t};\n\t\t\t\t}(self, document));\n\t\t\t}\n\n\t\t\treturn noop;\n\t\t}\n\n\t\treturn Promise;\n\t};\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn {\n\t\tpending: toPendingState,\n\t\tfulfilled: toFulfilledState,\n\t\trejected: toRejectedState,\n\t\tinspect: inspect\n\t};\n\n\tfunction toPendingState() {\n\t\treturn { state: 'pending' };\n\t}\n\n\tfunction toRejectedState(e) {\n\t\treturn { state: 'rejected', reason: e };\n\t}\n\n\tfunction toFulfilledState(x) {\n\t\treturn { state: 'fulfilled', value: x };\n\t}\n\n\tfunction inspect(handler) {\n\t\tvar state = handler.state();\n\t\treturn state === 0 ? toPendingState()\n\t\t\t : state > 0 ? toFulfilledState(handler.value)\n\t\t\t : toRejectedState(handler.value);\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2013 original author or authors */\n\n/**\n * Collection of helpers for interfacing with node-style asynchronous functions\n * using promises.\n *\n * @author Brian Cavalier\n * @contributor Renato Zannon\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar _liftAll = require('./lib/liftAll');\n\tvar setTimer = require('./lib/env').setTimer;\n\tvar slice = Array.prototype.slice;\n\n\tvar _apply = require('./lib/apply')(when.Promise, dispatch);\n\n\treturn {\n\t\tlift: lift,\n\t\tliftAll: liftAll,\n\t\tapply: apply,\n\t\tcall: call,\n\t\tcreateCallback: createCallback,\n\t\tbindCallback: bindCallback,\n\t\tliftCallback: liftCallback\n\t};\n\n\t/**\n\t * Takes a node-style async function and calls it immediately (with an optional\n\t * array of arguments or promises for arguments). It returns a promise whose\n\t * resolution depends on whether the async functions calls its callback with the\n\t * conventional error argument or not.\n\t *\n\t * With this it becomes possible to leverage existing APIs while still reaping\n\t * the benefits of promises.\n\t *\n\t * @example\n\t * function onlySmallNumbers(n, callback) {\n\t *\t\tif(n < 10) {\n\t *\t\t\tcallback(null, n + 10);\n\t *\t\t} else {\n\t *\t\t\tcallback(new Error(\"Calculation failed\"));\n\t *\t\t}\n\t *\t}\n\t *\n\t * var nodefn = require(\"when/node/function\");\n\t *\n\t * // Logs '15'\n\t * nodefn.apply(onlySmallNumbers, [5]).then(console.log, console.error);\n\t *\n\t * // Logs 'Calculation failed'\n\t * nodefn.apply(onlySmallNumbers, [15]).then(console.log, console.error);\n\t *\n\t * @param {function} f node-style function that will be called\n\t * @param {Array} [args] array of arguments to func\n\t * @returns {Promise} promise for the value func passes to its callback\n\t */\n\tfunction apply(f, args) {\n\t\treturn _apply(f, this, args || []);\n\t}\n\n\tfunction dispatch(f, thisArg, args, h) {\n\t\tvar cb = createCallback(h);\n\t\ttry {\n\t\t\tswitch(args.length) {\n\t\t\t\tcase 2: f.call(thisArg, args[0], args[1], cb); break;\n\t\t\t\tcase 1: f.call(thisArg, args[0], cb); break;\n\t\t\t\tcase 0: f.call(thisArg, cb); break;\n\t\t\t\tdefault:\n\t\t\t\t\targs.push(cb);\n\t\t\t\t\tf.apply(thisArg, args);\n\t\t\t}\n\t\t} catch(e) {\n\t\t\th.reject(e);\n\t\t}\n\t}\n\n\t/**\n\t * Has the same behavior that {@link apply} has, with the difference that the\n\t * arguments to the function are provided individually, while {@link apply} accepts\n\t * a single array.\n\t *\n\t * @example\n\t * function sumSmallNumbers(x, y, callback) {\n\t *\t\tvar result = x + y;\n\t *\t\tif(result < 10) {\n\t *\t\t\tcallback(null, result);\n\t *\t\t} else {\n\t *\t\t\tcallback(new Error(\"Calculation failed\"));\n\t *\t\t}\n\t *\t}\n\t *\n\t * // Logs '5'\n\t * nodefn.call(sumSmallNumbers, 2, 3).then(console.log, console.error);\n\t *\n\t * // Logs 'Calculation failed'\n\t * nodefn.call(sumSmallNumbers, 5, 10).then(console.log, console.error);\n\t *\n\t * @param {function} f node-style function that will be called\n\t * @param {...*} [args] arguments that will be forwarded to the function\n\t * @returns {Promise} promise for the value func passes to its callback\n\t */\n\tfunction call(f /*, args... */) {\n\t\treturn _apply(f, this, slice.call(arguments, 1));\n\t}\n\n\t/**\n\t * Takes a node-style function and returns new function that wraps the\n\t * original and, instead of taking a callback, returns a promise. Also, it\n\t * knows how to handle promises given as arguments, waiting for their\n\t * resolution before executing.\n\t *\n\t * Upon execution, the orginal function is executed as well. If it passes\n\t * a truthy value as the first argument to the callback, it will be\n\t * interpreted as an error condition, and the promise will be rejected\n\t * with it. Otherwise, the call is considered a resolution, and the promise\n\t * is resolved with the callback's second argument.\n\t *\n\t * @example\n\t * var fs = require(\"fs\"), nodefn = require(\"when/node/function\");\n\t *\n\t * var promiseRead = nodefn.lift(fs.readFile);\n\t *\n\t * // The promise is resolved with the contents of the file if everything\n\t * // goes ok\n\t * promiseRead('exists.txt').then(console.log, console.error);\n\t *\n\t * // And will be rejected if something doesn't work out\n\t * // (e.g. the files does not exist)\n\t * promiseRead('doesnt_exist.txt').then(console.log, console.error);\n\t *\n\t *\n\t * @param {Function} f node-style function to be lifted\n\t * @param {...*} [args] arguments to be prepended for the new function @deprecated\n\t * @returns {Function} a promise-returning function\n\t */\n\tfunction lift(f /*, args... */) {\n\t\tvar args1 = arguments.length > 1 ? slice.call(arguments, 1) : [];\n\t\treturn function() {\n\t\t\t// TODO: Simplify once partialing has been removed\n\t\t\tvar l = args1.length;\n\t\t\tvar al = arguments.length;\n\t\t\tvar args = new Array(al + l);\n\t\t\tvar i;\n\t\t\tfor(i=0; i<l; ++i) {\n\t\t\t\targs[i] = args1[i];\n\t\t\t}\n\t\t\tfor(i=0; i<al; ++i) {\n\t\t\t\targs[i+l] = arguments[i];\n\t\t\t}\n\t\t\treturn _apply(f, this, args);\n\t\t};\n\t}\n\n\t/**\n\t * Lift all the functions/methods on src\n\t * @param {object|function} src source whose functions will be lifted\n\t * @param {function?} combine optional function for customizing the lifting\n\t * process. It is passed dst, the lifted function, and the property name of\n\t * the original function on src.\n\t * @param {(object|function)?} dst option destination host onto which to place lifted\n\t * functions. If not provided, liftAll returns a new object.\n\t * @returns {*} If dst is provided, returns dst with lifted functions as\n\t * properties. If dst not provided, returns a new object with lifted functions.\n\t */\n\tfunction liftAll(src, combine, dst) {\n\t\treturn _liftAll(lift, combine, dst, src);\n\t}\n\n\t/**\n\t * Takes an object that responds to the resolver interface, and returns\n\t * a function that will resolve or reject it depending on how it is called.\n\t *\n\t * @example\n\t *\tfunction callbackTakingFunction(callback) {\n\t *\t\tif(somethingWrongHappened) {\n\t *\t\t\tcallback(error);\n\t *\t\t} else {\n\t *\t\t\tcallback(null, interestingValue);\n\t *\t\t}\n\t *\t}\n\t *\n\t *\tvar when = require('when'), nodefn = require('when/node/function');\n\t *\n\t *\tvar deferred = when.defer();\n\t *\tcallbackTakingFunction(nodefn.createCallback(deferred.resolver));\n\t *\n\t *\tdeferred.promise.then(function(interestingValue) {\n\t *\t\t// Use interestingValue\n\t *\t});\n\t *\n\t * @param {Resolver} resolver that will be 'attached' to the callback\n\t * @returns {Function} a node-style callback function\n\t */\n\tfunction createCallback(resolver) {\n\t\treturn function(err, value) {\n\t\t\tif(err) {\n\t\t\t\tresolver.reject(err);\n\t\t\t} else if(arguments.length > 2) {\n\t\t\t\tresolver.resolve(slice.call(arguments, 1));\n\t\t\t} else {\n\t\t\t\tresolver.resolve(value);\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Attaches a node-style callback to a promise, ensuring the callback is\n\t * called for either fulfillment or rejection. Returns a promise with the same\n\t * state as the passed-in promise.\n\t *\n\t * @example\n\t *\tvar deferred = when.defer();\n\t *\n\t *\tfunction callback(err, value) {\n\t *\t\t// Handle err or use value\n\t *\t}\n\t *\n\t *\tbindCallback(deferred.promise, callback);\n\t *\n\t *\tdeferred.resolve('interesting value');\n\t *\n\t * @param {Promise} promise The promise to be attached to.\n\t * @param {Function} callback The node-style callback to attach.\n\t * @returns {Promise} A promise with the same state as the passed-in promise.\n\t */\n\tfunction bindCallback(promise, callback) {\n\t\tpromise = when(promise);\n\n\t\tif (callback) {\n\t\t\tpromise.then(success, wrapped);\n\t\t}\n\n\t\treturn promise;\n\n\t\tfunction success(value) {\n\t\t\twrapped(null, value);\n\t\t}\n\n\t\tfunction wrapped(err, value) {\n\t\t\tsetTimer(function () {\n\t\t\t\tcallback(err, value);\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Takes a node-style callback and returns new function that accepts a\n\t * promise, calling the original callback when the promise is either\n\t * fulfilled or rejected with the appropriate arguments.\n\t *\n\t * @example\n\t *\tvar deferred = when.defer();\n\t *\n\t *\tfunction callback(err, value) {\n\t *\t\t// Handle err or use value\n\t *\t}\n\t *\n\t *\tvar wrapped = liftCallback(callback);\n\t *\n\t *\t// `wrapped` can now be passed around at will\n\t *\twrapped(deferred.promise);\n\t *\n\t *\tdeferred.resolve('interesting value');\n\t *\n\t * @param {Function} callback The node-style callback to wrap.\n\t * @returns {Function} The lifted, promise-accepting function.\n\t */\n\tfunction liftCallback(callback) {\n\t\treturn function(promise) {\n\t\t\treturn bindCallback(promise, callback);\n\t\t};\n\t}\n});\n\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n\n",
- "/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * parallel.js\n *\n * Run a set of task functions in parallel. All tasks will\n * receive the same args\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar all = when.Promise.all;\n\tvar slice = Array.prototype.slice;\n\n\t/**\n\t * Run array of tasks in parallel\n\t * @param tasks {Array|Promise} array or promiseForArray of task functions\n\t * @param [args] {*} arguments to be passed to all tasks\n\t * @return {Promise} promise for array containing the\n\t * result of each task in the array position corresponding\n\t * to position of the task in the tasks array\n\t */\n\treturn function parallel(tasks /*, args... */) {\n\t\treturn all(slice.call(arguments, 1)).then(function(args) {\n\t\t\treturn when.map(tasks, function(task) {\n\t\t\t\treturn task.apply(void 0, args);\n\t\t\t});\n\t\t});\n\t};\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n",
- "/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * pipeline.js\n *\n * Run a set of task functions in sequence, passing the result\n * of the previous as an argument to the next. Like a shell\n * pipeline, e.g. `cat file.txt | grep 'foo' | sed -e 's/foo/bar/g'\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar all = when.Promise.all;\n\tvar slice = Array.prototype.slice;\n\n\t/**\n\t * Run array of tasks in a pipeline where the next\n\t * tasks receives the result of the previous. The first task\n\t * will receive the initialArgs as its argument list.\n\t * @param tasks {Array|Promise} array or promise for array of task functions\n\t * @param [initialArgs...] {*} arguments to be passed to the first task\n\t * @return {Promise} promise for return value of the final task\n\t */\n\treturn function pipeline(tasks /* initialArgs... */) {\n\t\t// Self-optimizing function to run first task with multiple\n\t\t// args using apply, but subsequence tasks via direct invocation\n\t\tvar runTask = function(args, task) {\n\t\t\trunTask = function(arg, task) {\n\t\t\t\treturn task(arg);\n\t\t\t};\n\n\t\t\treturn task.apply(null, args);\n\t\t};\n\n\t\treturn all(slice.call(arguments, 1)).then(function(args) {\n\t\t\treturn when.reduce(tasks, function(arg, task) {\n\t\t\t\treturn runTask(arg, task);\n\t\t\t}, args);\n\t\t});\n\t};\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n",
- "/** @license MIT License (c) copyright 2012-2013 original author or authors */\n\n/**\n * poll.js\n *\n * Helper that polls until cancelled or for a condition to become true.\n *\n * @author Scott Andrews\n */\n\n(function (define) { 'use strict';\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar attempt = when['try'];\n\tvar cancelable = require('./cancelable');\n\n\t/**\n\t * Periodically execute the task function on the msec delay. The result of\n\t * the task may be verified by watching for a condition to become true. The\n\t * returned deferred is cancellable if the polling needs to be cancelled\n\t * externally before reaching a resolved state.\n\t *\n\t * The next vote is scheduled after the results of the current vote are\n\t * verified and rejected.\n\t *\n\t * Polling may be terminated by the verifier returning a truthy value,\n\t * invoking cancel() on the returned promise, or the task function returning\n\t * a rejected promise.\n\t *\n\t * Usage:\n\t *\n\t * var count = 0;\n\t * function doSomething() { return count++ }\n\t *\n\t * // poll until cancelled\n\t * var p = poll(doSomething, 1000);\n\t * ...\n\t * p.cancel();\n\t *\n\t * // poll until condition is met\n\t * poll(doSomething, 1000, function(result) { return result > 10 })\n\t * .then(function(result) { assert result == 10 });\n\t *\n\t * // delay first vote\n\t * poll(doSomething, 1000, anyFunc, true);\n\t *\n\t * @param task {Function} function that is executed after every timeout\n\t * @param interval {number|Function} timeout in milliseconds\n\t * @param [verifier] {Function} function to evaluate the result of the vote.\n\t * May return a {Promise} or a {Boolean}. Rejecting the promise or a\n\t * falsey value will schedule the next vote.\n\t * @param [delayInitialTask] {boolean} if truthy, the first vote is scheduled\n\t * instead of immediate\n\t *\n\t * @returns {Promise}\n\t */\n\treturn function poll(task, interval, verifier, delayInitialTask) {\n\t\tvar deferred, canceled, reject;\n\n\t\tcanceled = false;\n\t\tdeferred = cancelable(when.defer(), function () { canceled = true; });\n\t\treject = deferred.reject;\n\n\t\tverifier = verifier || function () { return false; };\n\n\t\tif (typeof interval !== 'function') {\n\t\t\tinterval = (function (interval) {\n\t\t\t\treturn function () { return when().delay(interval); };\n\t\t\t})(interval);\n\t\t}\n\n\t\tfunction certify(result) {\n\t\t\tdeferred.resolve(result);\n\t\t}\n\n\t\tfunction schedule(result) {\n\t\t\tattempt(interval).then(vote, reject);\n\t\t\tif (result !== void 0) {\n\t\t\t\tdeferred.notify(result);\n\t\t\t}\n\t\t}\n\n\t\tfunction vote() {\n\t\t\tif (canceled) { return; }\n\t\t\twhen(task(),\n\t\t\t\tfunction (result) {\n\t\t\t\t\twhen(verifier(result),\n\t\t\t\t\t\tfunction (verification) {\n\t\t\t\t\t\t\treturn verification ? certify(result) : schedule(result);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction () { schedule(result); }\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\treject\n\t\t\t);\n\t\t}\n\n\t\tif (delayInitialTask) {\n\t\t\tschedule();\n\t\t} else {\n\t\t\t// if task() is blocking, vote will also block\n\t\t\tvote();\n\t\t}\n\n\t\t// make the promise cancelable\n\t\tdeferred.promise = Object.create(deferred.promise);\n\t\tdeferred.promise.cancel = deferred.cancel;\n\n\t\treturn deferred.promise;\n\t};\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n",
- "/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * sequence.js\n *\n * Run a set of task functions in sequence. All tasks will\n * receive the same args.\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar all = when.Promise.all;\n\tvar slice = Array.prototype.slice;\n\n\t/**\n\t * Run array of tasks in sequence with no overlap\n\t * @param tasks {Array|Promise} array or promiseForArray of task functions\n\t * @param [args] {*} arguments to be passed to all tasks\n\t * @return {Promise} promise for an array containing\n\t * the result of each task in the array position corresponding\n\t * to position of the task in the tasks array\n\t */\n\treturn function sequence(tasks /*, args... */) {\n\t\tvar results = [];\n\n\t\treturn all(slice.call(arguments, 1)).then(function(args) {\n\t\t\treturn when.reduce(tasks, function(results, task) {\n\t\t\t\treturn when(task.apply(void 0, args), addResult);\n\t\t\t}, results);\n\t\t});\n\n\t\tfunction addResult(result) {\n\t\t\tresults.push(result);\n\t\t\treturn results;\n\t\t}\n\t};\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n",
- "/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * timeout.js\n *\n * Helper that returns a promise that rejects after a specified timeout,\n * if not explicitly resolved or rejected before that.\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\n /**\n\t * @deprecated Use when(trigger).timeout(ms)\n */\n return function timeout(msec, trigger) {\n\t\treturn when(trigger).timeout(msec);\n };\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n\n/**\n * Promises/A+ and when() implementation\n * when is part of the cujoJS family of libraries (http://cujojs.com/)\n * @author Brian Cavalier\n * @author John Hann\n */\n(function(define) { 'use strict';\ndefine(function (require) {\n\n\tvar timed = require('./lib/decorators/timed');\n\tvar array = require('./lib/decorators/array');\n\tvar flow = require('./lib/decorators/flow');\n\tvar fold = require('./lib/decorators/fold');\n\tvar inspect = require('./lib/decorators/inspect');\n\tvar generate = require('./lib/decorators/iterate');\n\tvar progress = require('./lib/decorators/progress');\n\tvar withThis = require('./lib/decorators/with');\n\tvar unhandledRejection = require('./lib/decorators/unhandledRejection');\n\tvar TimeoutError = require('./lib/TimeoutError');\n\n\tvar Promise = [array, flow, fold, generate, progress,\n\t\tinspect, withThis, timed, unhandledRejection]\n\t\t.reduce(function(Promise, feature) {\n\t\t\treturn feature(Promise);\n\t\t}, require('./lib/Promise'));\n\n\tvar apply = require('./lib/apply')(Promise);\n\n\t// Public API\n\n\twhen.promise = promise; // Create a pending promise\n\twhen.resolve = Promise.resolve; // Create a resolved promise\n\twhen.reject = Promise.reject; // Create a rejected promise\n\n\twhen.lift = lift; // lift a function to return promises\n\twhen['try'] = attempt; // call a function and return a promise\n\twhen.attempt = attempt; // alias for when.try\n\n\twhen.iterate = Promise.iterate; // DEPRECATED (use cujojs/most streams) Generate a stream of promises\n\twhen.unfold = Promise.unfold; // DEPRECATED (use cujojs/most streams) Generate a stream of promises\n\n\twhen.join = join; // Join 2 or more promises\n\n\twhen.all = all; // Resolve a list of promises\n\twhen.settle = settle; // Settle a list of promises\n\n\twhen.any = lift(Promise.any); // One-winner race\n\twhen.some = lift(Promise.some); // Multi-winner race\n\twhen.race = lift(Promise.race); // First-to-settle race\n\n\twhen.map = map; // Array.map() for promises\n\twhen.filter = filter; // Array.filter() for promises\n\twhen.reduce = lift(Promise.reduce); // Array.reduce() for promises\n\twhen.reduceRight = lift(Promise.reduceRight); // Array.reduceRight() for promises\n\n\twhen.isPromiseLike = isPromiseLike; // Is something promise-like, aka thenable\n\n\twhen.Promise = Promise; // Promise constructor\n\twhen.defer = defer; // Create a {promise, resolve, reject} tuple\n\n\t// Error types\n\n\twhen.TimeoutError = TimeoutError;\n\n\t/**\n\t * Get a trusted promise for x, or by transforming x with onFulfilled\n\t *\n\t * @param {*} x\n\t * @param {function?} onFulfilled callback to be called when x is\n\t * successfully fulfilled. If promiseOrValue is an immediate value, callback\n\t * will be invoked immediately.\n\t * @param {function?} onRejected callback to be called when x is\n\t * rejected.\n\t * @param {function?} onProgress callback to be called when progress updates\n\t * are issued for x. @deprecated\n\t * @returns {Promise} a new promise that will fulfill with the return\n\t * value of callback or errback or the completion value of promiseOrValue if\n\t * callback and/or errback is not supplied.\n\t */\n\tfunction when(x, onFulfilled, onRejected, onProgress) {\n\t\tvar p = Promise.resolve(x);\n\t\tif (arguments.length < 2) {\n\t\t\treturn p;\n\t\t}\n\n\t\treturn p.then(onFulfilled, onRejected, onProgress);\n\t}\n\n\t/**\n\t * Creates a new promise whose fate is determined by resolver.\n\t * @param {function} resolver function(resolve, reject, notify)\n\t * @returns {Promise} promise whose fate is determine by resolver\n\t */\n\tfunction promise(resolver) {\n\t\treturn new Promise(resolver);\n\t}\n\n\t/**\n\t * Lift the supplied function, creating a version of f that returns\n\t * promises, and accepts promises as arguments.\n\t * @param {function} f\n\t * @returns {Function} version of f that returns promises\n\t */\n\tfunction lift(f) {\n\t\treturn function() {\n\t\t\tfor(var i=0, l=arguments.length, a=new Array(l); i<l; ++i) {\n\t\t\t\ta[i] = arguments[i];\n\t\t\t}\n\t\t\treturn apply(f, this, a);\n\t\t};\n\t}\n\n\t/**\n\t * Call f in a future turn, with the supplied args, and return a promise\n\t * for the result.\n\t * @param {function} f\n\t * @returns {Promise}\n\t */\n\tfunction attempt(f /*, args... */) {\n\t\t/*jshint validthis:true */\n\t\tfor(var i=0, l=arguments.length-1, a=new Array(l); i<l; ++i) {\n\t\t\ta[i] = arguments[i+1];\n\t\t}\n\t\treturn apply(f, this, a);\n\t}\n\n\t/**\n\t * Creates a {promise, resolver} pair, either or both of which\n\t * may be given out safely to consumers.\n\t * @return {{promise: Promise, resolve: function, reject: function, notify: function}}\n\t */\n\tfunction defer() {\n\t\treturn new Deferred();\n\t}\n\n\tfunction Deferred() {\n\t\tvar p = Promise._defer();\n\n\t\tfunction resolve(x) { p._handler.resolve(x); }\n\t\tfunction reject(x) { p._handler.reject(x); }\n\t\tfunction notify(x) { p._handler.notify(x); }\n\n\t\tthis.promise = p;\n\t\tthis.resolve = resolve;\n\t\tthis.reject = reject;\n\t\tthis.notify = notify;\n\t\tthis.resolver = { resolve: resolve, reject: reject, notify: notify };\n\t}\n\n\t/**\n\t * Determines if x is promise-like, i.e. a thenable object\n\t * NOTE: Will return true for *any thenable object*, and isn't truly\n\t * safe, since it may attempt to access the `then` property of x (i.e.\n\t * clever/malicious getters may do weird things)\n\t * @param {*} x anything\n\t * @returns {boolean} true if x is promise-like\n\t */\n\tfunction isPromiseLike(x) {\n\t\treturn x && typeof x.then === 'function';\n\t}\n\n\t/**\n\t * Return a promise that will resolve only once all the supplied arguments\n\t * have resolved. The resolution value of the returned promise will be an array\n\t * containing the resolution values of each of the arguments.\n\t * @param {...*} arguments may be a mix of promises and values\n\t * @returns {Promise}\n\t */\n\tfunction join(/* ...promises */) {\n\t\treturn Promise.all(arguments);\n\t}\n\n\t/**\n\t * Return a promise that will fulfill once all input promises have\n\t * fulfilled, or reject when any one input promise rejects.\n\t * @param {array|Promise} promises array (or promise for an array) of promises\n\t * @returns {Promise}\n\t */\n\tfunction all(promises) {\n\t\treturn when(promises, Promise.all);\n\t}\n\n\t/**\n\t * Return a promise that will always fulfill with an array containing\n\t * the outcome states of all input promises. The returned promise\n\t * will only reject if `promises` itself is a rejected promise.\n\t * @param {array|Promise} promises array (or promise for an array) of promises\n\t * @returns {Promise} promise for array of settled state descriptors\n\t */\n\tfunction settle(promises) {\n\t\treturn when(promises, Promise.settle);\n\t}\n\n\t/**\n\t * Promise-aware array map function, similar to `Array.prototype.map()`,\n\t * but input array may contain promises or values.\n\t * @param {Array|Promise} promises array of anything, may contain promises and values\n\t * @param {function(x:*, index:Number):*} mapFunc map function which may\n\t * return a promise or value\n\t * @returns {Promise} promise that will fulfill with an array of mapped values\n\t * or reject if any input promise rejects.\n\t */\n\tfunction map(promises, mapFunc) {\n\t\treturn when(promises, function(promises) {\n\t\t\treturn Promise.map(promises, mapFunc);\n\t\t});\n\t}\n\n\t/**\n\t * Filter the provided array of promises using the provided predicate. Input may\n\t * contain promises and values\n\t * @param {Array|Promise} promises array of promises and values\n\t * @param {function(x:*, index:Number):boolean} predicate filtering predicate.\n\t * Must return truthy (or promise for truthy) for items to retain.\n\t * @returns {Promise} promise that will fulfill with an array containing all items\n\t * for which predicate returned truthy.\n\t */\n\tfunction filter(promises, predicate) {\n\t\treturn when(promises, function(promises) {\n\t\t\treturn Promise.filter(promises, predicate);\n\t\t});\n\t}\n\n\treturn when;\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n"
- ],
- "sourceRoot": "https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08"
-} \ No newline at end of file
diff --git a/node_modules/when/dist/browser/when.min.js b/node_modules/when/dist/browser/when.min.js
deleted file mode 100644
index c6169280e..000000000
--- a/node_modules/when/dist/browser/when.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(t){"object"==typeof exports?module.exports=t():"function"==typeof define&&define.amd?define(t):"undefined"!=typeof window?window.when=t():"undefined"!=typeof global?global.when=t():"undefined"!=typeof self&&(self.when=t())}(function(){var t;return function n(t,e,r){function o(u,c){if(!e[u]){if(!t[u]){var f="function"==typeof require&&require;if(!c&&f)return f(u,!0);if(i)return i(u,!0);throw new Error("Cannot find module '"+u+"'")}var a=e[u]={exports:{}};t[u][0].call(a.exports,function(n){var e=t[u][1][n];return o(e?e:n)},a,a.exports,n,t,e,r)}return e[u].exports}for(var i="function"==typeof require&&require,u=0;u<r.length;u++)o(r[u]);return o}({1:[function(t,n,e){var r=n.exports=t("../when");r.callbacks=t("../callbacks"),r.cancelable=t("../cancelable"),r.delay=t("../delay"),r.fn=t("../function"),r.guard=t("../guard"),r.keys=t("../keys"),r.nodefn=r.node=t("../node"),r.parallel=t("../parallel"),r.pipeline=t("../pipeline"),r.poll=t("../poll"),r.sequence=t("../sequence"),r.timeout=t("../timeout")},{"../callbacks":2,"../cancelable":3,"../delay":4,"../function":5,"../guard":6,"../keys":7,"../node":26,"../parallel":27,"../pipeline":28,"../poll":29,"../sequence":30,"../timeout":31,"../when":32}],2:[function(n,e,r){!function(t){t(function(t){function n(t,n){return v(t,this,n||[])}function e(t,n,e,o){e.push(s(o.resolve,o),s(o.reject,o)),r(t,n,e,o)}function r(t,n,e,r){try{t.apply(n,e)}catch(o){r.reject(o)}}function o(t){return v(t,this,d.call(arguments,1))}function i(t){var n=arguments.length>1?d.call(arguments,1):[];return function(){return v(t,this,n.concat(d.call(arguments)))}}function u(t,n,e){return p(i,n,e,t)}function c(t,n){return function(){var e=this;return h.all(arguments).then(function(r){var o,i,u=h._defer();return"number"==typeof n.callback&&(o=f(r,n.callback)),"number"==typeof n.errback&&(i=f(r,n.errback)),o>i?(a(r,i,u._handler.reject,u._handler),a(r,o,u._handler.resolve,u._handler)):(a(r,o,u._handler.resolve,u._handler),a(r,i,u._handler.reject,u._handler)),t.apply(e,r),u})}}function f(t,n){return 0>n?t.length+n+2:n}function a(t,n,e,r){"number"==typeof n&&t.splice(n,0,s(e,r))}function s(t,n){return function(){arguments.length>1?t.call(n,d.call(arguments)):t.apply(n,arguments)}}var l=t("./when"),h=l.Promise,p=t("./lib/liftAll"),d=Array.prototype.slice,y=t("./lib/apply"),v=y(h,e);return{lift:i,liftAll:u,apply:n,call:o,promisify:c}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t(n)})},{"./lib/apply":11,"./lib/liftAll":23,"./when":32}],3:[function(n,e,r){!function(t){t(function(){return function(t,n){return t.cancel=function(){try{t.reject(n(t))}catch(e){t.reject(e)}return t.promise},t}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t()})},{}],4:[function(n,e,r){!function(t){t(function(t){var n=t("./when");return function(t,e){return n(e).delay(t)}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t(n)})},{"./when":32}],5:[function(n,e,r){!function(t){t(function(t){function n(t,n){return f(t,this,null==n?[]:a.call(n))}function e(t){var n=arguments.length>1?a.call(arguments,1):[];return function(){return f(t,this,n.concat(a.call(arguments)))}}function r(t,n,r){return c(e,n,r,t)}function o(t){var n=a.call(arguments,1);return function(){var e=this,r=a.call(arguments),o=u.apply(e,[t].concat(r));return i.reduce(n,function(t,n){return n.call(e,t)},o)}}var i=t("./when"),u=i["try"],c=t("./lib/liftAll"),f=t("./lib/apply")(i.Promise),a=Array.prototype.slice;return{lift:e,liftAll:r,call:u,apply:n,compose:o}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t(n)})},{"./lib/apply":11,"./lib/liftAll":23,"./when":32}],6:[function(n,e,r){!function(t){t(function(t){function n(t,n){return function(){var e=o.call(arguments);return r(t()).withThis(this).then(function(t){return r(n.apply(this,e))["finally"](t)})}}function e(t){function n(){e=Math.max(e-1,0),o.length>0&&o.shift()(n)}var e=0,o=[];return function(){return r.promise(function(r){t>e?r(n):o.push(r),e+=1})}}var r=t("./when"),o=Array.prototype.slice;return n.n=e,n})}("function"==typeof t&&t.amd?t:function(t){e.exports=t(n)})},{"./when":32}],7:[function(n,e,r){!function(t){"use strict";t(function(t){function n(t){function n(t,n,e){this[t]=n,0===--f&&e.resolve(i)}for(var e,r=u._defer(),o=u._handler(r),i={},c=Object.keys(t),f=c.length,a=0;a<c.length;++a)e=c[a],u._handler(t[e]).fold(n,e,i,o);return 0===f&&o.resolve(i),r}function e(t,e){function r(t,n){return e(n,t)}return c(t).then(function(t){return n(Object.keys(t).reduce(function(n,e){return n[e]=c(t[e]).fold(r,e),n},{}))})}function r(t){var n=Object.keys(t),e={};if(0===n.length)return c(e);var r=u._defer(),f=u._handler(r),a=n.map(function(n){return t[n]});return i.settle(a).then(function(t){o(n,t,e,f)}),r}function o(t,n,e,r){for(var o=0;o<t.length;o++)e[t[o]]=n[o];r.resolve(e)}var i=t("./when"),u=i.Promise,c=i.resolve;return{all:i.lift(n),map:e,settle:r}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t(n)})},{"./when":32}],8:[function(n,e,r){!function(t){"use strict";t(function(t){var n=t("./makePromise"),e=t("./Scheduler"),r=t("./env").asap;return n({scheduler:new e(r)})})}("function"==typeof t&&t.amd?t:function(t){e.exports=t(n)})},{"./Scheduler":9,"./env":21,"./makePromise":24}],9:[function(n,e,r){!function(t){"use strict";t(function(){function t(t){this._async=t,this._running=!1,this._queue=this,this._queueLen=0,this._afterQueue={},this._afterQueueLen=0;var n=this;this.drain=function(){n._drain()}}return t.prototype.enqueue=function(t){this._queue[this._queueLen++]=t,this.run()},t.prototype.afterQueue=function(t){this._afterQueue[this._afterQueueLen++]=t,this.run()},t.prototype.run=function(){this._running||(this._running=!0,this._async(this.drain))},t.prototype._drain=function(){for(var t=0;t<this._queueLen;++t)this._queue[t].run(),this._queue[t]=void 0;for(this._queueLen=0,this._running=!1,t=0;t<this._afterQueueLen;++t)this._afterQueue[t].run(),this._afterQueue[t]=void 0;this._afterQueueLen=0},t})}("function"==typeof t&&t.amd?t:function(t){e.exports=t()})},{}],10:[function(n,e,r){!function(t){"use strict";t(function(){function t(n){Error.call(this),this.message=n,this.name=t.name,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t})}("function"==typeof t&&t.amd?t:function(t){e.exports=t()})},{}],11:[function(n,e,r){!function(t){"use strict";t(function(){function t(t,e){function r(n,r,i){var u=t._defer(),c=i.length,f=new Array(c);return o({f:n,thisArg:r,args:i,params:f,i:c-1,call:e},u._handler),u}function o(n,r){if(n.i<0)return e(n.f,n.thisArg,n.params,r);var o=t._handler(n.args[n.i]);o.fold(i,n,void 0,r)}function i(t,n,e){t.params[t.i]=n,t.i-=1,o(t,e)}return arguments.length<2&&(e=n),r}function n(t,n,e,r){try{r.resolve(t.apply(n,e))}catch(o){r.reject(o)}}return t.tryCatchResolve=n,t})}("function"==typeof t&&t.amd?t:function(t){e.exports=t()})},{}],12:[function(n,e,r){!function(t){"use strict";t(function(t){var n=t("../state"),e=t("../apply");return function(t){function r(n){function e(t){s=null,this.resolve(t)}function r(t){this.resolved||(s.push(t),0===--a&&this.reject(s))}for(var o,i,u=t._defer(),c=u._handler,f=n.length>>>0,a=f,s=[],l=0;f>l;++l)if(i=n[l],void 0!==i||l in n){if(o=t._handler(i),o.state()>0){c.become(o),t._visitRemaining(n,l,o);break}o.visit(c,e,r)}else--a;return 0===a&&c.reject(new RangeError("any(): array must not be empty")),u}function o(n,e){function r(t){this.resolved||(s.push(t),0===--p&&(l=null,this.resolve(s)))}function o(t){this.resolved||(l.push(t),0===--i&&(s=null,this.reject(l)))}var i,u,c,f=t._defer(),a=f._handler,s=[],l=[],h=n.length>>>0,p=0;for(c=0;h>c;++c)u=n[c],(void 0!==u||c in n)&&++p;for(e=Math.max(e,0),i=p-e+1,p=Math.min(e,p),e>p?a.reject(new RangeError("some(): array must contain at least "+e+" item(s), but had "+p)):0===p&&a.resolve(s),c=0;h>c;++c)u=n[c],(void 0!==u||c in n)&&t._handler(u).visit(a,r,o,a.notify);return f}function i(n,e){return t._traverse(e,n)}function u(n,e){var r=b.call(n);return t._traverse(e,r).then(function(t){return c(r,t)})}function c(n,e){for(var r=e.length,o=new Array(r),i=0,u=0;r>i;++i)e[i]&&(o[u++]=t._handler(n[i]).value);return o.length=u,o}function f(t){return y(t.map(a))}function a(e){var r;return e instanceof t&&(r=e._handler.join()),r&&0===r.state()||!r?d(e).then(n.fulfilled,n.rejected):(r._unreport(),n.inspect(r))}function s(t,n){return arguments.length>2?v.call(t,h(n),arguments[2]):v.call(t,h(n))}function l(t,n){return arguments.length>2?m.call(t,h(n),arguments[2]):m.call(t,h(n))}function h(t){return function(n,e,r){return p(t,void 0,[n,e,r])}}var p=e(t),d=t.resolve,y=t.all,v=Array.prototype.reduce,m=Array.prototype.reduceRight,b=Array.prototype.slice;return t.any=r,t.some=o,t.settle=f,t.map=i,t.filter=u,t.reduce=s,t.reduceRight=l,t.prototype.spread=function(t){return this.then(y).then(function(n){return t.apply(this,n)})},t}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t(n)})},{"../apply":11,"../state":25}],13:[function(n,e,r){!function(t){"use strict";t(function(){function t(){throw new TypeError("catch predicate must be a function")}function n(t,n){return e(n)?t instanceof n:n(t)}function e(t){return t===Error||null!=t&&t.prototype instanceof Error}function r(t){return("object"==typeof t||"function"==typeof t)&&null!==t}function o(t){return t}return function(e){function i(t,e){return function(r){return n(r,e)?t.call(this,r):a(r)}}function u(t,n,e,o){var i=t.call(n);return r(i)?c(i,e,o):e(o)}function c(t,n,e){return f(t).then(function(){return n(e)})}var f=e.resolve,a=e.reject,s=e.prototype["catch"];return e.prototype.done=function(t,n){this._handler.visit(this._handler.receiver,t,n)},e.prototype["catch"]=e.prototype.otherwise=function(n){return arguments.length<2?s.call(this,n):"function"!=typeof n?this.ensure(t):s.call(this,i(arguments[1],n))},e.prototype["finally"]=e.prototype.ensure=function(t){return"function"!=typeof t?this:this.then(function(n){return u(t,this,o,n)},function(n){return u(t,this,a,n)})},e.prototype["else"]=e.prototype.orElse=function(t){return this.then(void 0,function(){return t})},e.prototype["yield"]=function(t){return this.then(function(){return t})},e.prototype.tap=function(t){return this.then(t)["yield"](this)},e}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t()})},{}],14:[function(n,e,r){!function(t){"use strict";t(function(){return function(t){return t.prototype.fold=function(n,e){var r=this._beget();return this._handler.fold(function(e,r,o){t._handler(e).fold(function(t,e,r){r.resolve(n.call(this,e,t))},r,this,o)},e,r._handler.receiver,r._handler),r},t}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t()})},{}],15:[function(n,e,r){!function(t){"use strict";t(function(t){var n=t("../state").inspect;return function(t){return t.prototype.inspect=function(){return n(t._handler(this))},t}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t(n)})},{"../state":25}],16:[function(n,e,r){!function(t){"use strict";t(function(){return function(t){function n(t,n,r,o){return e(function(n){return[n,t(n)]},n,r,o)}function e(t,n,o,i){function u(i,u){return r(o(i)).then(function(){return e(t,n,o,u)})}return r(i).then(function(e){return r(n(e)).then(function(n){return n?e:r(t(e)).spread(u)})})}var r=t.resolve;return t.iterate=n,t.unfold=e,t}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t()})},{}],17:[function(n,e,r){!function(t){"use strict";t(function(){return function(t){return t.prototype.progress=function(t){return this.then(void 0,void 0,t)},t}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t()})},{}],18:[function(n,e,r){!function(t){"use strict";t(function(t){function n(t,n,r,o){return e.setTimer(function(){t(r,o,n)},n)}var e=t("../env"),r=t("../TimeoutError");return function(t){function o(t,e,r){n(i,t,e,r)}function i(t,n){n.resolve(t)}function u(t,n,e){var o="undefined"==typeof t?new r("timed out after "+e+"ms"):t;n.reject(o)}return t.prototype.delay=function(t){var n=this._beget();return this._handler.fold(o,t,void 0,n._handler),n},t.prototype.timeout=function(t,r){var o=this._beget(),i=o._handler,c=n(u,t,r,o._handler);return this._handler.visit(i,function(t){e.clearTimer(c),this.resolve(t)},function(t){e.clearTimer(c),this.reject(t)},i.notify),o},t}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t(n)})},{"../TimeoutError":10,"../env":21}],19:[function(n,e,r){!function(t){"use strict";t(function(t){function n(t){throw t}function e(){}var r=t("../env").setTimer,o=t("../format");return function(t){function i(t){t.handled||(p.push(t),s("Potentially unhandled rejection ["+t.id+"] "+o.formatError(t.value)))}function u(t){var n=p.indexOf(t);n>=0&&(p.splice(n,1),l("Handled previous rejection ["+t.id+"] "+o.formatObject(t.value)))}function c(t,n){h.push(t,n),null===d&&(d=r(f,0))}function f(){for(d=null;h.length>0;)h.shift()(h.shift())}var a,s=e,l=e;"undefined"!=typeof console&&(a=console,s="undefined"!=typeof a.error?function(t){a.error(t)}:function(t){a.log(t)},l="undefined"!=typeof a.info?function(t){a.info(t)}:function(t){a.log(t)}),t.onPotentiallyUnhandledRejection=function(t){c(i,t)},t.onPotentiallyUnhandledRejectionHandled=function(t){c(u,t)},t.onFatalRejection=function(t){c(n,t.value)};var h=[],p=[],d=null;return t}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t(n)})},{"../env":21,"../format":22}],20:[function(n,e,r){!function(t){"use strict";t(function(){return function(t){return t.prototype["with"]=t.prototype.withThis=function(t){var n=this._beget(),e=n._handler;return e.receiver=t,this._handler.chain(e,t),n},t}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t()})},{}],21:[function(n,e,r){!function(t){"use strict";t(function(t){function n(){return"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process)}function e(){return"undefined"!=typeof MutationObserver&&MutationObserver||"undefined"!=typeof WebKitMutationObserver&&WebKitMutationObserver}function r(t){function n(){var t=e;e=void 0,t()}var e,r=document.createTextNode(""),o=new t(n);o.observe(r,{characterData:!0});var i=0;return function(t){e=t,r.data=i^=1}}var o,i="undefined"!=typeof setTimeout&&setTimeout,u=function(t,n){return setTimeout(t,n)},c=function(t){return clearTimeout(t)},f=function(t){return i(t,0)};if(n())f=function(t){return process.nextTick(t)};else if(o=e())f=r(o);else if(!i){var a=t,s=a("vertx");u=function(t,n){return s.setTimer(n,t)},c=s.cancelTimer,f=s.runOnLoop||s.runOnContext}return{setTimer:u,clearTimer:c,asap:f}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t(n)})},{}],22:[function(n,e,r){!function(t){"use strict";t(function(){function t(t){var e="object"==typeof t&&null!==t&&(t.stack||t.message)?t.stack||t.message:n(t);return t instanceof Error?e:e+" (WARNING: non-Error used)"}function n(t){var n=String(t);return"[object Object]"===n&&"undefined"!=typeof JSON&&(n=e(t,n)),n}function e(t,n){try{return JSON.stringify(t)}catch(e){return n}}return{formatError:t,formatObject:n,tryStringify:e}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t()})},{}],23:[function(n,e,r){!function(t){"use strict";t(function(){function t(t,n,e){return t[e]=n,t}function n(t){return"function"==typeof t?t.bind():Object.create(t)}return function(e,r,o,i){return"undefined"==typeof r&&(r=t),Object.keys(i).reduce(function(t,n){var o=i[n];return"function"==typeof o?r(t,e(o),n):t},"undefined"==typeof o?n(i):o)}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t()})},{}],24:[function(n,e,r){!function(t){"use strict";t(function(){return function(t){function n(t,n){this._handler=t===g?n:e(t)}function e(t){function n(t){o.resolve(t)}function e(t){o.reject(t)}function r(t){o.notify(t)}var o=new w;try{t(n,e,r)}catch(i){e(i)}return o}function r(t){return L(t)?t:new n(g,new j(v(t)))}function o(t){return new n(g,new j(new k(t)))}function i(){return nt}function u(){return new n(g,new w)}function c(t,n){var e=new w(t.receiver,t.join().context);return new n(g,e)}function f(t){return s(K,null,t)}function a(t,n){return s(N,t,n)}function s(t,e,r){function o(n,o,u){u.resolved||l(r,i,n,t(e,o,n),u)}function i(t,n,e){s[t]=n,0===--a&&e.become(new E(s))}for(var u,c="function"==typeof e?o:i,f=new w,a=r.length>>>0,s=new Array(a),h=0;h<r.length&&!f.resolved;++h)u=r[h],void 0!==u||h in r?l(r,c,h,u,f):--a;return 0===a&&f.become(new E(s)),new n(g,f)}function l(t,n,e,r,o){if(S(r)){var i=m(r),u=i.state();0===u?i.fold(n,e,void 0,o):u>0?n(e,i.value,o):(o.become(i),h(t,e+1,i))}else n(e,r,o)}function h(t,n,e){for(var r=n;r<t.length;++r)p(v(t[r]),e)}function p(t,n){if(t!==n){var e=t.state();0===e?t.visit(t,void 0,t._unreport):0>e&&t._unreport()}}function d(t){return"object"!=typeof t||null===t?o(new TypeError("non-iterable passed to race()")):0===t.length?i():1===t.length?r(t[0]):y(t)}function y(t){var e,r,o,i=new w;for(e=0;e<t.length;++e)if(r=t[e],void 0!==r||e in t){if(o=v(r),0!==o.state()){i.become(o),h(t,e+1,o);break}o.visit(i,i.resolve,i.reject)}return new n(g,i)}function v(t){return L(t)?t._handler.join():S(t)?b(t):new E(t)}function m(t){return L(t)?t._handler.join():b(t)}function b(t){try{var n=t.then;return"function"==typeof n?new x(n,t):new E(t)}catch(e){return new k(e)}}function g(){}function _(){}function w(t,e){n.createContext(this,e),this.consumers=void 0,this.receiver=t,this.handler=void 0,this.resolved=!1}function j(t){this.handler=t}function x(t,n){w.call(this),V.enqueue(new O(t,n,this))}function E(t){n.createContext(this),this.value=t}function k(t){n.createContext(this),this.id=++$,this.value=t,this.handled=!1,this.reported=!1,this._report()}function A(t,n){this.rejection=t,this.context=n}function T(t){this.rejection=t}function C(){return new k(new TypeError("Promise cycle"))}function R(t,n){this.continuation=t,this.handler=n}function q(t,n){this.handler=n,this.value=t}function O(t,n,e){this._then=t,this.thenable=n,this.resolver=e}function P(t,n,e,r,o){try{t.call(n,e,r,o)}catch(i){r(i)}}function Q(t,n,e,r){this.f=t,this.z=n,this.c=e,this.to=r,this.resolver=Z,this.receiver=this}function L(t){return t instanceof n}function S(t){return("object"==typeof t||"function"==typeof t)&&null!==t}function M(t,e,r,o){return"function"!=typeof t?o.become(e):(n.enterContext(e),F(t,e.value,r,o),void n.exitContext())}function U(t,e,r,o,i){return"function"!=typeof t?i.become(r):(n.enterContext(r),W(t,e,r.value,o,i),void n.exitContext())}function H(t,e,r,o,i){return"function"!=typeof t?i.notify(e):(n.enterContext(r),z(t,e,o,i),void n.exitContext())}function N(t,n,e){try{return t(n,e)}catch(r){return o(r)}}function F(t,n,e,r){try{r.become(v(t.call(e,n)))}catch(o){r.become(new k(o))}}function W(t,n,e,r,o){try{t.call(r,n,e,o)}catch(i){o.become(new k(i))}}function z(t,n,e,r){try{r.notify(t.call(e,n))}catch(o){r.notify(o)}}function J(t,n){n.prototype=Y(t.prototype),n.prototype.constructor=n}function K(t,n){return n}function D(){}function G(){if("function"==typeof CustomEvent)try{var t=new CustomEvent("unhandledRejection");return t instanceof CustomEvent}catch(n){}return!1}function I(){if("undefined"!=typeof document&&"function"==typeof document.createEvent)try{var t=document.createEvent("CustomEvent");return t.initCustomEvent("eventType",!1,!0,{}),!0}catch(n){}return!1}function B(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.emit?function(t,n){return"unhandledRejection"===t?process.emit(t,n.value,n):process.emit(t,n)}:"undefined"!=typeof self&&G()?function(t,n){return function(e,r){var o=new n(e,{detail:{reason:r.value,key:r},bubbles:!1,cancelable:!0});return!t.dispatchEvent(o)}}(self,CustomEvent):"undefined"!=typeof self&&I()?function(t,n){return function(e,r){var o=n.createEvent("CustomEvent");return o.initCustomEvent(e,!1,!0,{reason:r.value,key:r}),!t.dispatchEvent(o)}}(self,document):D}var V=t.scheduler,X=B(),Y=Object.create||function(t){function n(){}return n.prototype=t,new n};n.resolve=r,n.reject=o,n.never=i,n._defer=u,n._handler=v,n.prototype.then=function(t,n,e){var r=this._handler,o=r.join().state();if("function"!=typeof t&&o>0||"function"!=typeof n&&0>o)return new this.constructor(g,r);var i=this._beget(),u=i._handler;return r.chain(u,r.receiver,t,n,e),i},n.prototype["catch"]=function(t){return this.then(void 0,t)},n.prototype._beget=function(){return c(this._handler,this.constructor)},n.all=f,n.race=d,n._traverse=a,n._visitRemaining=h,g.prototype.when=g.prototype.become=g.prototype.notify=g.prototype.fail=g.prototype._unreport=g.prototype._report=D,g.prototype._state=0,g.prototype.state=function(){return this._state},g.prototype.join=function(){for(var t=this;void 0!==t.handler;)t=t.handler;return t},g.prototype.chain=function(t,n,e,r,o){this.when({resolver:t,receiver:n,fulfilled:e,rejected:r,progress:o})},g.prototype.visit=function(t,n,e,r){this.chain(Z,t,n,e,r)},g.prototype.fold=function(t,n,e,r){this.when(new Q(t,n,e,r))},J(g,_),_.prototype.become=function(t){t.fail()};var Z=new _;J(g,w),w.prototype._state=0,w.prototype.resolve=function(t){this.become(v(t))},w.prototype.reject=function(t){this.resolved||this.become(new k(t))},w.prototype.join=function(){if(!this.resolved)return this;for(var t=this;void 0!==t.handler;)if(t=t.handler,t===this)return this.handler=C();return t},w.prototype.run=function(){var t=this.consumers,n=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var e=0;e<t.length;++e)n.when(t[e])},w.prototype.become=function(t){this.resolved||(this.resolved=!0,this.handler=t,void 0!==this.consumers&&V.enqueue(this),void 0!==this.context&&t._report(this.context))},w.prototype.when=function(t){this.resolved?V.enqueue(new R(t,this.handler)):void 0===this.consumers?this.consumers=[t]:this.consumers.push(t)},w.prototype.notify=function(t){this.resolved||V.enqueue(new q(t,this))},w.prototype.fail=function(t){var n="undefined"==typeof t?this.context:t;this.resolved&&this.handler.join().fail(n)},w.prototype._report=function(t){this.resolved&&this.handler.join()._report(t)},w.prototype._unreport=function(){this.resolved&&this.handler.join()._unreport()},J(g,j),j.prototype.when=function(t){V.enqueue(new R(t,this))},j.prototype._report=function(t){this.join()._report(t)},j.prototype._unreport=function(){this.join()._unreport()},J(w,x),J(g,E),E.prototype._state=1,E.prototype.fold=function(t,n,e,r){U(t,n,this,e,r)},E.prototype.when=function(t){M(t.fulfilled,this,t.receiver,t.resolver)};var $=0;J(g,k),k.prototype._state=-1,k.prototype.fold=function(t,n,e,r){r.become(this)},k.prototype.when=function(t){"function"==typeof t.rejected&&this._unreport(),M(t.rejected,this,t.receiver,t.resolver)},k.prototype._report=function(t){V.afterQueue(new A(this,t))},k.prototype._unreport=function(){this.handled||(this.handled=!0,V.afterQueue(new T(this)))},k.prototype.fail=function(t){this.reported=!0,X("unhandledRejection",this),n.onFatalRejection(this,void 0===t?this.context:t)},A.prototype.run=function(){this.rejection.handled||this.rejection.reported||(this.rejection.reported=!0,X("unhandledRejection",this.rejection)||n.onPotentiallyUnhandledRejection(this.rejection,this.context))},T.prototype.run=function(){this.rejection.reported&&(X("rejectionHandled",this.rejection)||n.onPotentiallyUnhandledRejectionHandled(this.rejection))},n.createContext=n.enterContext=n.exitContext=n.onPotentiallyUnhandledRejection=n.onPotentiallyUnhandledRejectionHandled=n.onFatalRejection=D;var tt=new g,nt=new n(g,tt);return R.prototype.run=function(){this.handler.join().when(this.continuation)},q.prototype.run=function(){var t=this.handler.consumers;if(void 0!==t)for(var n,e=0;e<t.length;++e)n=t[e],H(n.progress,this.value,this.handler,n.receiver,n.resolver)},O.prototype.run=function(){function t(t){r.resolve(t)}function n(t){r.reject(t)}function e(t){r.notify(t)}var r=this.resolver;P(this._then,this.thenable,t,n,e)},Q.prototype.fulfilled=function(t){this.f.call(this.c,this.z,t,this.to)},Q.prototype.rejected=function(t){this.to.reject(t)},Q.prototype.progress=function(t){this.to.notify(t)},n}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t()})},{}],25:[function(n,e,r){!function(t){"use strict";t(function(){function t(){return{state:"pending"}}function n(t){return{state:"rejected",reason:t}}function e(t){return{state:"fulfilled",value:t}}function r(r){var o=r.state();return 0===o?t():o>0?e(r.value):n(r.value)}return{pending:t,fulfilled:e,rejected:n,inspect:r}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t()})},{}],26:[function(n,e,r){!function(t){t(function(t){function n(t,n){return p(t,this,n||[])}function e(t,n,e,r){var o=u(r);try{switch(e.length){case 2:t.call(n,e[0],e[1],o);break;case 1:t.call(n,e[0],o);break;case 0:t.call(n,o);break;default:e.push(o),t.apply(n,e)}}catch(i){r.reject(i)}}function r(t){return p(t,this,h.call(arguments,1))}function o(t){var n=arguments.length>1?h.call(arguments,1):[];return function(){var e,r=n.length,o=arguments.length,i=new Array(o+r);for(e=0;r>e;++e)i[e]=n[e];for(e=0;o>e;++e)i[e+r]=arguments[e];return p(t,this,i)}}function i(t,n,e){return s(o,n,e,t)}function u(t){return function(n,e){n?t.reject(n):arguments.length>2?t.resolve(h.call(arguments,1)):t.resolve(e)}}function c(t,n){function e(t){r(null,t)}function r(t,e){l(function(){n(t,e)},0)}return t=a(t),n&&t.then(e,r),t}function f(t){return function(n){return c(n,t)}}var a=t("./when"),s=t("./lib/liftAll"),l=t("./lib/env").setTimer,h=Array.prototype.slice,p=t("./lib/apply")(a.Promise,e);return{lift:o,liftAll:i,apply:n,call:r,createCallback:u,bindCallback:c,liftCallback:f}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t(n)})},{"./lib/apply":11,"./lib/env":21,"./lib/liftAll":23,"./when":32}],27:[function(n,e,r){!function(t){t(function(t){var n=t("./when"),e=n.Promise.all,r=Array.prototype.slice;return function(t){return e(r.call(arguments,1)).then(function(e){return n.map(t,function(t){return t.apply(void 0,e)})})}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t(n)})},{"./when":32}],28:[function(n,e,r){!function(t){t(function(t){var n=t("./when"),e=n.Promise.all,r=Array.prototype.slice;return function(t){var o=function(t,n){return o=function(t,n){return n(t)},n.apply(null,t)};return e(r.call(arguments,1)).then(function(e){return n.reduce(t,function(t,n){return o(t,n)},e)})}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t(n)})},{"./when":32}],29:[function(n,e,r){!function(t){"use strict";t(function(t){var n=t("./when"),e=n["try"],r=t("./cancelable");return function(t,o,i,u){function c(t){s.resolve(t)}function f(t){e(o).then(a,h),void 0!==t&&s.notify(t)}function a(){l||n(t(),function(t){n(i(t),function(n){return n?c(t):f(t)},function(){f(t)})},h)}var s,l,h;return l=!1,s=r(n.defer(),function(){l=!0}),h=s.reject,i=i||function(){return!1},"function"!=typeof o&&(o=function(t){return function(){return n().delay(t)}}(o)),u?f():a(),s.promise=Object.create(s.promise),s.promise.cancel=s.cancel,s.promise}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t(n)})},{"./cancelable":3,"./when":32}],30:[function(n,e,r){!function(t){t(function(t){var n=t("./when"),e=n.Promise.all,r=Array.prototype.slice;return function(t){function o(t){return i.push(t),i}var i=[];return e(r.call(arguments,1)).then(function(e){return n.reduce(t,function(t,r){return n(r.apply(void 0,e),o)},i)})}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t(n)})},{"./when":32}],31:[function(n,e,r){!function(t){t(function(t){var n=t("./when");return function(t,e){return n(e).timeout(t)}})}("function"==typeof t&&t.amd?t:function(t){e.exports=t(n)})},{"./when":32}],32:[function(n,e,r){!function(t){"use strict";t(function(t){function n(t,n,e,r){var o=x.resolve(t);return arguments.length<2?o:o.then(n,e,r)}function e(t){return new x(t)}function r(t){return function(){for(var n=0,e=arguments.length,r=new Array(e);e>n;++n)r[n]=arguments[n];return E(t,this,r)}}function o(t){for(var n=0,e=arguments.length-1,r=new Array(e);e>n;++n)r[n]=arguments[n+1];return E(t,this,r)}function i(){return new u}function u(){function t(t){r._handler.resolve(t)}function n(t){r._handler.reject(t)}function e(t){r._handler.notify(t)}var r=x._defer();this.promise=r,this.resolve=t,this.reject=n,this.notify=e,this.resolver={resolve:t,reject:n,notify:e}}function c(t){return t&&"function"==typeof t.then}function f(){return x.all(arguments)}function a(t){return n(t,x.all)}function s(t){return n(t,x.settle)}function l(t,e){return n(t,function(t){return x.map(t,e)})}function h(t,e){return n(t,function(t){return x.filter(t,e)})}var p=t("./lib/decorators/timed"),d=t("./lib/decorators/array"),y=t("./lib/decorators/flow"),v=t("./lib/decorators/fold"),m=t("./lib/decorators/inspect"),b=t("./lib/decorators/iterate"),g=t("./lib/decorators/progress"),_=t("./lib/decorators/with"),w=t("./lib/decorators/unhandledRejection"),j=t("./lib/TimeoutError"),x=[d,y,v,b,g,m,_,p,w].reduce(function(t,n){return n(t)},t("./lib/Promise")),E=t("./lib/apply")(x);return n.promise=e,n.resolve=x.resolve,n.reject=x.reject,n.lift=r,n["try"]=o,n.attempt=o,n.iterate=x.iterate,n.unfold=x.unfold,n.join=f,n.all=a,n.settle=s,n.any=r(x.any),n.some=r(x.some),n.race=r(x.race),n.map=l,n.filter=h,n.reduce=r(x.reduce),n.reduceRight=r(x.reduceRight),n.isPromiseLike=c,n.Promise=x,n.defer=i,n.TimeoutError=j,n})}("function"==typeof t&&t.amd?t:function(t){e.exports=t(n)})},{"./lib/Promise":8,"./lib/TimeoutError":10,"./lib/apply":11,"./lib/decorators/array":12,"./lib/decorators/flow":13,"./lib/decorators/fold":14,"./lib/decorators/inspect":15,"./lib/decorators/iterate":16,"./lib/decorators/progress":17,"./lib/decorators/timed":18,"./lib/decorators/unhandledRejection":19,"./lib/decorators/with":20}]},{},[1])(1)});
-//# sourceMappingURL=dist/browser/when.min.js.map \ No newline at end of file
diff --git a/node_modules/when/dist/browser/when.min.js.map b/node_modules/when/dist/browser/when.min.js.map
deleted file mode 100644
index 178a1a2ed..000000000
--- a/node_modules/when/dist/browser/when.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["build/when.browserify.js","callbacks.js","cancelable.js","delay.js","function.js","guard.js","keys.js","lib/Promise.js","lib/Scheduler.js","lib/TimeoutError.js","lib/apply.js","lib/decorators/array.js","lib/decorators/flow.js","lib/decorators/fold.js","lib/decorators/inspect.js","lib/decorators/iterate.js","lib/decorators/progress.js","lib/decorators/timed.js","lib/decorators/unhandledRejection.js","lib/decorators/with.js","lib/env.js","lib/format.js","lib/liftAll.js","lib/makePromise.js","lib/state.js","node.js","parallel.js","pipeline.js","poll.js","sequence.js","timeout.js","when.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/build/when.browserify.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/callbacks.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/cancelable.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/delay.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/function.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/guard.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/keys.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/Promise.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/Scheduler.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/TimeoutError.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/apply.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/decorators/array.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/decorators/flow.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/decorators/fold.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/decorators/inspect.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/decorators/iterate.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/decorators/progress.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/decorators/timed.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/decorators/unhandledRejection.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/decorators/with.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/env.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/format.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/liftAll.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/makePromise.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/state.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/node.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/parallel.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/pipeline.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/poll.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/sequence.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/timeout.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/when.js"],"names":["when","module","exports","require","callbacks","cancelable","delay","fn","guard","keys","nodefn","node","parallel","pipeline","poll","sequence","timeout","define","apply","asyncFunction","extraAsyncArgs","_apply","this","dispatch","f","thisArg","args","h","push","alwaysUnary","resolve","reject","tryCatchResolve","resolver","e","call","slice","arguments","lift","length","concat","liftAll","src","combine","dst","_liftAll","promisify","positions","Promise","all","then","callbackPos","errbackPos","p","_defer","callback","normalizePosition","errback","insertCallback","_handler","pos","splice","Array","prototype","makeApply","amd","factory","deferred","canceler","cancel","promise","msec","value","compose","funcs","firstPromise","attempt","reduce","arg","func","condition","withThis","exit","n","allowed","count","Math","max","waiting","shift","object","settleKey","k","x","pending","results","Object","i","fold","map","mapWithKey","toPromise","o","settle","promises","states","populateResults","makePromise","Scheduler","async","asap","scheduler","_async","_running","_queue","_queueLen","_afterQueue","_afterQueueLen","self","drain","_drain","enqueue","task","run","afterQueue","TimeoutError","message","Error","name","captureStackTrace","create","constructor","l","params","callAndResolve","c","handler","callAndResolveNext","state","applier","any","handleFulfill","errors","handleReject","resolved","become","_visitRemaining","visit","RangeError","some","fulfill","nFulfill","nReject","min","notify","_traverse","filter","predicate","a","keep","filterSync","filtered","j","settleOne","join","fulfilled","rejected","_unreport","inspect","ar","liftCombine","reduceRight","arr","z","applyFold","spread","onFulfilled","array","rejectInvalidPredicate","TypeError","evaluatePredicate","isError","maybeThenable","identity","createCatchFilter","runSideEffect","propagate","result","propagateValue","origCatch","done","onResult","onError","receiver","otherwise","onRejected","ensure","orElse","defaultValue","tap","onFulfilledSideEffect","_beget","to","iterate","unfold","unspool","next","item","newSeed","seed","progress","onProgress","setTimeout","ms","y","env","setTimer","handleDelay","resolveDelay","onTimeout","reason","t","clearTimer","throwit","noop","format","report","r","handled","reported","logError","id","formatError","unreport","indexOf","logInfo","formatObject","tasks","running","flush","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","child","chain","isNode","process","toString","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","clearTimeout","nextTick","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext","s","stack","String","JSON","tryStringify","stringify","defaultCombine","defaultDst","bind","liftOne","key","environment","Handler","init","promiseResolve","promiseReject","promiseNotify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","context","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","traverseAt","settleAt","Fulfilled","getHandlerMaybeThenable","visitRemaining","start","markAsHandled","race","runRace","getHandlerUntrusted","untrustedThen","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","failIfRejected","runContinuation1","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","inherit","Parent","Child","objectCreate","hasCustomEvent","CustomEvent","ev","ignoredException","hasInternetExplorerCustomEvent","createEvent","initCustomEvent","initEmitRejection","emit","type","detail","bubbles","dispatchEvent","emitRejection","proto","fail","_state","q","cont","foreverPendingHandler","_resolve","_reject","_notify","toPendingState","toRejectedState","toFulfilledState","cb","createCallback","args1","al","err","bindCallback","success","wrapped","liftCallback","runTask","interval","verifier","delayInitialTask","certify","schedule","vote","canceled","verification","addResult","trigger","Deferred","isPromiseLike","mapFunc","timed","flow","generate","unhandledRejection","feature"],"mappings":"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ACA5E,EAAA4E,QAAAA,EAEA5E,EAAA2M,QAAA3J,EAAA2J,QACA3M,EAAA4M,OAAA5J,EAAA4J,OAEA5M,EAAAoK,KAAAA,EAEApK,EAAAiD,IAAAA,EACAjD,EAAAuG,OAAAA,EAEAvG,EAAA4I,IAAAtG,EAAAU,EAAA4F,KACA5I,EAAAqJ,KAAA/G,EAAAU,EAAAqG,MACArJ,EAAA0T,KAAApR,EAAAU,EAAA0Q,MAEA1T,EAAAmG,IAAAA,EACAnG,EAAA4J,OAAAA,EACA5J,EAAA6E,OAAAvC,EAAAU,EAAA6B,QACA7E,EAAA2K,YAAArI,EAAAU,EAAA2H,aAEA3K,EAAA6Y,cAAAA,EAEA7Y,EAAAgD,QAAAA,EACAhD,EAAAyS,MAAAA,EAIAzS,EAAA6H,aAAAA,EAiKA7H,KAEA,kBAAAiB,IAAAA,EAAAgD,IAAAhD,EAAA,SAAAiD,GAAAjE,EAAAC,QAAAgE,EAAA/D;A/DnOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC37BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"generated.js","sourceRoot":"https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08","sourcesContent":["var when = module.exports = require('../when');\n\nwhen.callbacks = require('../callbacks');\nwhen.cancelable = require('../cancelable');\nwhen.delay = require('../delay');\nwhen.fn = require('../function');\nwhen.guard = require('../guard');\nwhen.keys = require('../keys');\nwhen.nodefn = when.node = require('../node');\nwhen.parallel = require('../parallel');\nwhen.pipeline = require('../pipeline');\nwhen.poll = require('../poll');\nwhen.sequence = require('../sequence');\nwhen.timeout = require('../timeout');\n","/** @license MIT License (c) copyright 2013-2014 original author or authors */\n\n/**\n * Collection of helper functions for interacting with 'traditional',\n * callback-taking functions using a promise interface.\n *\n * @author Renato Zannon\n * @contributor Brian Cavalier\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar Promise = when.Promise;\n\tvar _liftAll = require('./lib/liftAll');\n\tvar slice = Array.prototype.slice;\n\n\tvar makeApply = require('./lib/apply');\n\tvar _apply = makeApply(Promise, dispatch);\n\n\treturn {\n\t\tlift: lift,\n\t\tliftAll: liftAll,\n\t\tapply: apply,\n\t\tcall: call,\n\t\tpromisify: promisify\n\t};\n\n\t/**\n\t * Takes a `traditional` callback-taking function and returns a promise for its\n\t * result, accepting an optional array of arguments (that might be values or\n\t * promises). It assumes that the function takes its callback and errback as\n\t * the last two arguments. The resolution of the promise depends on whether the\n\t * function will call its callback or its errback.\n\t *\n\t * @example\n\t * var domIsLoaded = callbacks.apply($);\n\t * domIsLoaded.then(function() {\n\t *\t\tdoMyDomStuff();\n\t *\t});\n\t *\n\t * @example\n\t * function existingAjaxyFunction(url, callback, errback) {\n\t *\t\t// Complex logic you'd rather not change\n\t *\t}\n\t *\n\t * var promise = callbacks.apply(existingAjaxyFunction, [\"/movies.json\"]);\n\t *\n\t * promise.then(function(movies) {\n\t *\t\t// Work with movies\n\t *\t}, function(reason) {\n\t *\t\t// Handle error\n\t *\t});\n\t *\n\t * @param {function} asyncFunction function to be called\n\t * @param {Array} [extraAsyncArgs] array of arguments to asyncFunction\n\t * @returns {Promise} promise for the callback value of asyncFunction\n\t */\n\tfunction apply(asyncFunction, extraAsyncArgs) {\n\t\treturn _apply(asyncFunction, this, extraAsyncArgs || []);\n\t}\n\n\t/**\n\t * Apply helper that allows specifying thisArg\n\t * @private\n\t */\n\tfunction dispatch(f, thisArg, args, h) {\n\t\targs.push(alwaysUnary(h.resolve, h), alwaysUnary(h.reject, h));\n\t\ttryCatchResolve(f, thisArg, args, h);\n\t}\n\n\tfunction tryCatchResolve(f, thisArg, args, resolver) {\n\t\ttry {\n\t\t\tf.apply(thisArg, args);\n\t\t} catch(e) {\n\t\t\tresolver.reject(e);\n\t\t}\n\t}\n\n\t/**\n\t * Works as `callbacks.apply` does, with the difference that the arguments to\n\t * the function are passed individually, instead of as an array.\n\t *\n\t * @example\n\t * function sumInFiveSeconds(a, b, callback) {\n\t *\t\tsetTimeout(function() {\n\t *\t\t\tcallback(a + b);\n\t *\t\t}, 5000);\n\t *\t}\n\t *\n\t * var sumPromise = callbacks.call(sumInFiveSeconds, 5, 10);\n\t *\n\t * // Logs '15' 5 seconds later\n\t * sumPromise.then(console.log);\n\t *\n\t * @param {function} asyncFunction function to be called\n\t * @param {...*} args arguments that will be forwarded to the function\n\t * @returns {Promise} promise for the callback value of asyncFunction\n\t */\n\tfunction call(asyncFunction/*, arg1, arg2...*/) {\n\t\treturn _apply(asyncFunction, this, slice.call(arguments, 1));\n\t}\n\n\t/**\n\t * Takes a 'traditional' callback/errback-taking function and returns a function\n\t * that returns a promise instead. The resolution/rejection of the promise\n\t * depends on whether the original function will call its callback or its\n\t * errback.\n\t *\n\t * If additional arguments are passed to the `lift` call, they will be prepended\n\t * on the calls to the original function, much like `Function.prototype.bind`.\n\t *\n\t * The resulting function is also \"promise-aware\", in the sense that, if given\n\t * promises as arguments, it will wait for their resolution before executing.\n\t *\n\t * @example\n\t * function traditionalAjax(method, url, callback, errback) {\n\t *\t\tvar xhr = new XMLHttpRequest();\n\t *\t\txhr.open(method, url);\n\t *\n\t *\t\txhr.onload = callback;\n\t *\t\txhr.onerror = errback;\n\t *\n\t *\t\txhr.send();\n\t *\t}\n\t *\n\t * var promiseAjax = callbacks.lift(traditionalAjax);\n\t * promiseAjax(\"GET\", \"/movies.json\").then(console.log, console.error);\n\t *\n\t * var promiseAjaxGet = callbacks.lift(traditionalAjax, \"GET\");\n\t * promiseAjaxGet(\"/movies.json\").then(console.log, console.error);\n\t *\n\t * @param {Function} f traditional async function to be decorated\n\t * @param {...*} [args] arguments to be prepended for the new function @deprecated\n\t * @returns {Function} a promise-returning function\n\t */\n\tfunction lift(f/*, args...*/) {\n\t\tvar args = arguments.length > 1 ? slice.call(arguments, 1) : [];\n\t\treturn function() {\n\t\t\treturn _apply(f, this, args.concat(slice.call(arguments)));\n\t\t};\n\t}\n\n\t/**\n\t * Lift all the functions/methods on src\n\t * @param {object|function} src source whose functions will be lifted\n\t * @param {function?} combine optional function for customizing the lifting\n\t * process. It is passed dst, the lifted function, and the property name of\n\t * the original function on src.\n\t * @param {(object|function)?} dst option destination host onto which to place lifted\n\t * functions. If not provided, liftAll returns a new object.\n\t * @returns {*} If dst is provided, returns dst with lifted functions as\n\t * properties. If dst not provided, returns a new object with lifted functions.\n\t */\n\tfunction liftAll(src, combine, dst) {\n\t\treturn _liftAll(lift, combine, dst, src);\n\t}\n\n\t/**\n\t * `promisify` is a version of `lift` that allows fine-grained control over the\n\t * arguments that passed to the underlying function. It is intended to handle\n\t * functions that don't follow the common callback and errback positions.\n\t *\n\t * The control is done by passing an object whose 'callback' and/or 'errback'\n\t * keys, whose values are the corresponding 0-based indexes of the arguments on\n\t * the function. Negative values are interpreted as being relative to the end\n\t * of the arguments array.\n\t *\n\t * If arguments are given on the call to the 'promisified' function, they are\n\t * intermingled with the callback and errback. If a promise is given among them,\n\t * the execution of the function will only occur after its resolution.\n\t *\n\t * @example\n\t * var delay = callbacks.promisify(setTimeout, {\n\t *\t\tcallback: 0\n\t *\t});\n\t *\n\t * delay(100).then(function() {\n\t *\t\tconsole.log(\"This happens 100ms afterwards\");\n\t *\t});\n\t *\n\t * @example\n\t * function callbackAsLast(errback, followsStandards, callback) {\n\t *\t\tif(followsStandards) {\n\t *\t\t\tcallback(\"well done!\");\n\t *\t\t} else {\n\t *\t\t\terrback(\"some programmers just want to watch the world burn\");\n\t *\t\t}\n\t *\t}\n\t *\n\t * var promisified = callbacks.promisify(callbackAsLast, {\n\t *\t\tcallback: -1,\n\t *\t\terrback: 0,\n\t *\t});\n\t *\n\t * promisified(true).then(console.log, console.error);\n\t * promisified(false).then(console.log, console.error);\n\t *\n\t * @param {Function} asyncFunction traditional function to be decorated\n\t * @param {object} positions\n\t * @param {number} [positions.callback] index at which asyncFunction expects to\n\t * receive a success callback\n\t * @param {number} [positions.errback] index at which asyncFunction expects to\n\t * receive an error callback\n\t * @returns {function} promisified function that accepts\n\t *\n\t * @deprecated\n\t */\n\tfunction promisify(asyncFunction, positions) {\n\n\t\treturn function() {\n\t\t\tvar thisArg = this;\n\t\t\treturn Promise.all(arguments).then(function(args) {\n\t\t\t\tvar p = Promise._defer();\n\n\t\t\t\tvar callbackPos, errbackPos;\n\n\t\t\t\tif(typeof positions.callback === 'number') {\n\t\t\t\t\tcallbackPos = normalizePosition(args, positions.callback);\n\t\t\t\t}\n\n\t\t\t\tif(typeof positions.errback === 'number') {\n\t\t\t\t\terrbackPos = normalizePosition(args, positions.errback);\n\t\t\t\t}\n\n\t\t\t\tif(errbackPos < callbackPos) {\n\t\t\t\t\tinsertCallback(args, errbackPos, p._handler.reject, p._handler);\n\t\t\t\t\tinsertCallback(args, callbackPos, p._handler.resolve, p._handler);\n\t\t\t\t} else {\n\t\t\t\t\tinsertCallback(args, callbackPos, p._handler.resolve, p._handler);\n\t\t\t\t\tinsertCallback(args, errbackPos, p._handler.reject, p._handler);\n\t\t\t\t}\n\n\t\t\t\tasyncFunction.apply(thisArg, args);\n\n\t\t\t\treturn p;\n\t\t\t});\n\t\t};\n\t}\n\n\tfunction normalizePosition(args, pos) {\n\t\treturn pos < 0 ? (args.length + pos + 2) : pos;\n\t}\n\n\tfunction insertCallback(args, pos, callback, thisArg) {\n\t\tif(typeof pos === 'number') {\n\t\t\targs.splice(pos, 0, alwaysUnary(callback, thisArg));\n\t\t}\n\t}\n\n\tfunction alwaysUnary(fn, thisArg) {\n\t\treturn function() {\n\t\t\tif (arguments.length > 1) {\n\t\t\t\tfn.call(thisArg, slice.call(arguments));\n\t\t\t} else {\n\t\t\t\tfn.apply(thisArg, arguments);\n\t\t\t}\n\t\t};\n\t}\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n","/** @license MIT License (c) copyright B Cavalier & J Hann */\n\n/**\n * cancelable.js\n * @deprecated\n *\n * Decorator that makes a deferred \"cancelable\". It adds a cancel() method that\n * will call a special cancel handler function and then reject the deferred. The\n * cancel handler can be used to do resource cleanup, or anything else that should\n * be done before any other rejection handlers are executed.\n *\n * Usage:\n *\n * var cancelableDeferred = cancelable(when.defer(), myCancelHandler);\n *\n * @author brian@hovercraftstudios.com\n */\n\n(function(define) {\ndefine(function() {\n\n /**\n * Makes deferred cancelable, adding a cancel() method.\n\t * @deprecated\n *\n * @param deferred {Deferred} the {@link Deferred} to make cancelable\n * @param canceler {Function} cancel handler function to execute when this deferred\n\t * is canceled. This is guaranteed to run before all other rejection handlers.\n\t * The canceler will NOT be executed if the deferred is rejected in the standard\n\t * way, i.e. deferred.reject(). It ONLY executes if the deferred is canceled,\n\t * i.e. deferred.cancel()\n *\n * @returns deferred, with an added cancel() method.\n */\n return function(deferred, canceler) {\n // Add a cancel method to the deferred to reject the delegate\n // with the special canceled indicator.\n deferred.cancel = function() {\n\t\t\ttry {\n\t\t\t\tdeferred.reject(canceler(deferred));\n\t\t\t} catch(e) {\n\t\t\t\tdeferred.reject(e);\n\t\t\t}\n\n\t\t\treturn deferred.promise;\n };\n\n return deferred;\n };\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(); });\n\n\n","/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * delay.js\n *\n * Helper that returns a promise that resolves after a delay.\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\n /**\n\t * @deprecated Use when(value).delay(ms)\n */\n return function delay(msec, value) {\n\t\treturn when(value).delay(msec);\n };\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n","/** @license MIT License (c) copyright 2013-2014 original author or authors */\n\n/**\n * Collection of helper functions for wrapping and executing 'traditional'\n * synchronous functions in a promise interface.\n *\n * @author Brian Cavalier\n * @contributor Renato Zannon\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar attempt = when['try'];\n\tvar _liftAll = require('./lib/liftAll');\n\tvar _apply = require('./lib/apply')(when.Promise);\n\tvar slice = Array.prototype.slice;\n\n\treturn {\n\t\tlift: lift,\n\t\tliftAll: liftAll,\n\t\tcall: attempt,\n\t\tapply: apply,\n\t\tcompose: compose\n\t};\n\n\t/**\n\t * Takes a function and an optional array of arguments (that might be promises),\n\t * and calls the function. The return value is a promise whose resolution\n\t * depends on the value returned by the function.\n\t * @param {function} f function to be called\n\t * @param {Array} [args] array of arguments to func\n\t * @returns {Promise} promise for the return value of func\n\t */\n\tfunction apply(f, args) {\n\t\t// slice args just in case the caller passed an Arguments instance\n\t\treturn _apply(f, this, args == null ? [] : slice.call(args));\n\t}\n\n\t/**\n\t * Takes a 'regular' function and returns a version of that function that\n\t * returns a promise instead of a plain value, and handles thrown errors by\n\t * returning a rejected promise. Also accepts a list of arguments to be\n\t * prepended to the new function, as does Function.prototype.bind.\n\t *\n\t * The resulting function is promise-aware, in the sense that it accepts\n\t * promise arguments, and waits for their resolution.\n\t * @param {Function} f function to be bound\n\t * @param {...*} [args] arguments to be prepended for the new function @deprecated\n\t * @returns {Function} a promise-returning function\n\t */\n\tfunction lift(f /*, args... */) {\n\t\tvar args = arguments.length > 1 ? slice.call(arguments, 1) : [];\n\t\treturn function() {\n\t\t\treturn _apply(f, this, args.concat(slice.call(arguments)));\n\t\t};\n\t}\n\n\t/**\n\t * Lift all the functions/methods on src\n\t * @param {object|function} src source whose functions will be lifted\n\t * @param {function?} combine optional function for customizing the lifting\n\t * process. It is passed dst, the lifted function, and the property name of\n\t * the original function on src.\n\t * @param {(object|function)?} dst option destination host onto which to place lifted\n\t * functions. If not provided, liftAll returns a new object.\n\t * @returns {*} If dst is provided, returns dst with lifted functions as\n\t * properties. If dst not provided, returns a new object with lifted functions.\n\t */\n\tfunction liftAll(src, combine, dst) {\n\t\treturn _liftAll(lift, combine, dst, src);\n\t}\n\n\t/**\n\t * Composes multiple functions by piping their return values. It is\n\t * transparent to whether the functions return 'regular' values or promises:\n\t * the piped argument is always a resolved value. If one of the functions\n\t * throws or returns a rejected promise, the composed promise will be also\n\t * rejected.\n\t *\n\t * The arguments (or promises to arguments) given to the returned function (if\n\t * any), are passed directly to the first function on the 'pipeline'.\n\t * @param {Function} f the function to which the arguments will be passed\n\t * @param {...Function} [funcs] functions that will be composed, in order\n\t * @returns {Function} a promise-returning composition of the functions\n\t */\n\tfunction compose(f /*, funcs... */) {\n\t\tvar funcs = slice.call(arguments, 1);\n\n\t\treturn function() {\n\t\t\tvar thisArg = this;\n\t\t\tvar args = slice.call(arguments);\n\t\t\tvar firstPromise = attempt.apply(thisArg, [f].concat(args));\n\n\t\t\treturn when.reduce(funcs, function(arg, func) {\n\t\t\t\treturn func.call(thisArg, arg);\n\t\t\t}, firstPromise);\n\t\t};\n\t}\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n","/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * Generalized promise concurrency guard\n * Adapted from original concept by Sakari Jokinen (Rocket Pack, Ltd.)\n *\n * @author Brian Cavalier\n * @author John Hann\n * @contributor Sakari Jokinen\n */\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar slice = Array.prototype.slice;\n\n\tguard.n = n;\n\n\treturn guard;\n\n\t/**\n\t * Creates a guarded version of f that can only be entered when the supplied\n\t * condition allows.\n\t * @param {function} condition represents a critical section that may only\n\t * be entered when allowed by the condition\n\t * @param {function} f function to guard\n\t * @returns {function} guarded version of f\n\t */\n\tfunction guard(condition, f) {\n\t\treturn function() {\n\t\t\tvar args = slice.call(arguments);\n\n\t\t\treturn when(condition()).withThis(this).then(function(exit) {\n\t\t\t\treturn when(f.apply(this, args))['finally'](exit);\n\t\t\t});\n\t\t};\n\t}\n\n\t/**\n\t * Creates a condition that allows only n simultaneous executions\n\t * of a guarded function\n\t * @param {number} allowed number of allowed simultaneous executions\n\t * @returns {function} condition function which returns a promise that\n\t * fulfills when the critical section may be entered. The fulfillment\n\t * value is a function (\"notifyExit\") that must be called when the critical\n\t * section has been exited.\n\t */\n\tfunction n(allowed) {\n\t\tvar count = 0;\n\t\tvar waiting = [];\n\n\t\treturn function enter() {\n\t\t\treturn when.promise(function(resolve) {\n\t\t\t\tif(count < allowed) {\n\t\t\t\t\tresolve(exit);\n\t\t\t\t} else {\n\t\t\t\t\twaiting.push(resolve);\n\t\t\t\t}\n\t\t\t\tcount += 1;\n\t\t\t});\n\t\t};\n\n\t\tfunction exit() {\n\t\t\tcount = Math.max(count - 1, 0);\n\t\t\tif(waiting.length > 0) {\n\t\t\t\twaiting.shift()(exit);\n\t\t\t}\n\t\t}\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n","/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * Licensed under the MIT License at:\n * http://www.opensource.org/licenses/mit-license.php\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar Promise = when.Promise;\n\tvar toPromise = when.resolve;\n\n\treturn {\n\t\tall: when.lift(all),\n\t\tmap: map,\n\t\tsettle: settle\n\t};\n\n\t/**\n\t * Resolve all the key-value pairs in the supplied object or promise\n\t * for an object.\n\t * @param {Promise|object} object or promise for object whose key-value pairs\n\t * will be resolved\n\t * @returns {Promise} promise for an object with the fully resolved key-value pairs\n\t */\n\tfunction all(object) {\n\t\tvar p = Promise._defer();\n\t\tvar resolver = Promise._handler(p);\n\n\t\tvar results = {};\n\t\tvar keys = Object.keys(object);\n\t\tvar pending = keys.length;\n\n\t\tfor(var i=0, k; i<keys.length; ++i) {\n\t\t\tk = keys[i];\n\t\t\tPromise._handler(object[k]).fold(settleKey, k, results, resolver);\n\t\t}\n\n\t\tif(pending === 0) {\n\t\t\tresolver.resolve(results);\n\t\t}\n\n\t\treturn p;\n\n\t\tfunction settleKey(k, x, resolver) {\n\t\t\t/*jshint validthis:true*/\n\t\t\tthis[k] = x;\n\t\t\tif(--pending === 0) {\n\t\t\t\tresolver.resolve(results);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Map values in the supplied object's keys\n\t * @param {Promise|object} object or promise for object whose key-value pairs\n\t * will be reduced\n\t * @param {function(value:*, key:String):*} f mapping function which may\n\t * return either a promise or a value\n\t * @returns {Promise} promise for an object with the mapped and fully\n\t * resolved key-value pairs\n\t */\n\tfunction map(object, f) {\n\t\treturn toPromise(object).then(function(object) {\n\t\t\treturn all(Object.keys(object).reduce(function(o, k) {\n\t\t\t\to[k] = toPromise(object[k]).fold(mapWithKey, k);\n\t\t\t\treturn o;\n\t\t\t}, {}));\n\t\t});\n\n\t\tfunction mapWithKey(k, x) {\n\t\t\treturn f(x, k);\n\t\t}\n\t}\n\n\t/**\n\t * Resolve all key-value pairs in the supplied object and return a promise\n\t * that will always fulfill with the outcome states of all input promises.\n\t * @param {object} object whose key-value pairs will be settled\n\t * @returns {Promise} promise for an object with the mapped and fully\n\t * settled key-value pairs\n\t */\n\tfunction settle(object) {\n\t\tvar keys = Object.keys(object);\n\t\tvar results = {};\n\n\t\tif(keys.length === 0) {\n\t\t\treturn toPromise(results);\n\t\t}\n\n\t\tvar p = Promise._defer();\n\t\tvar resolver = Promise._handler(p);\n\t\tvar promises = keys.map(function(k) { return object[k]; });\n\n\t\twhen.settle(promises).then(function(states) {\n\t\t\tpopulateResults(keys, states, results, resolver);\n\t\t});\n\n\t\treturn p;\n\t}\n\n\tfunction populateResults(keys, states, results, resolver) {\n\t\tfor(var i=0; i<keys.length; i++) {\n\t\t\tresults[keys[i]] = states[i];\n\t\t}\n\t\tresolver.resolve(results);\n\t}\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function (require) {\n\n\tvar makePromise = require('./makePromise');\n\tvar Scheduler = require('./Scheduler');\n\tvar async = require('./env').asap;\n\n\treturn makePromise({\n\t\tscheduler: new Scheduler(async)\n\t});\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\t// Credit to Twisol (https://github.com/Twisol) for suggesting\n\t// this type of extensible queue + trampoline approach for next-tick conflation.\n\n\t/**\n\t * Async task scheduler\n\t * @param {function} async function to schedule a single async function\n\t * @constructor\n\t */\n\tfunction Scheduler(async) {\n\t\tthis._async = async;\n\t\tthis._running = false;\n\n\t\tthis._queue = this;\n\t\tthis._queueLen = 0;\n\t\tthis._afterQueue = {};\n\t\tthis._afterQueueLen = 0;\n\n\t\tvar self = this;\n\t\tthis.drain = function() {\n\t\t\tself._drain();\n\t\t};\n\t}\n\n\t/**\n\t * Enqueue a task\n\t * @param {{ run:function }} task\n\t */\n\tScheduler.prototype.enqueue = function(task) {\n\t\tthis._queue[this._queueLen++] = task;\n\t\tthis.run();\n\t};\n\n\t/**\n\t * Enqueue a task to run after the main task queue\n\t * @param {{ run:function }} task\n\t */\n\tScheduler.prototype.afterQueue = function(task) {\n\t\tthis._afterQueue[this._afterQueueLen++] = task;\n\t\tthis.run();\n\t};\n\n\tScheduler.prototype.run = function() {\n\t\tif (!this._running) {\n\t\t\tthis._running = true;\n\t\t\tthis._async(this.drain);\n\t\t}\n\t};\n\n\t/**\n\t * Drain the handler queue entirely, and then the after queue\n\t */\n\tScheduler.prototype._drain = function() {\n\t\tvar i = 0;\n\t\tfor (; i < this._queueLen; ++i) {\n\t\t\tthis._queue[i].run();\n\t\t\tthis._queue[i] = void 0;\n\t\t}\n\n\t\tthis._queueLen = 0;\n\t\tthis._running = false;\n\n\t\tfor (i = 0; i < this._afterQueueLen; ++i) {\n\t\t\tthis._afterQueue[i].run();\n\t\t\tthis._afterQueue[i] = void 0;\n\t\t}\n\n\t\tthis._afterQueueLen = 0;\n\t};\n\n\treturn Scheduler;\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\t/**\n\t * Custom error type for promises rejected by promise.timeout\n\t * @param {string} message\n\t * @constructor\n\t */\n\tfunction TimeoutError (message) {\n\t\tError.call(this);\n\t\tthis.message = message;\n\t\tthis.name = TimeoutError.name;\n\t\tif (typeof Error.captureStackTrace === 'function') {\n\t\t\tError.captureStackTrace(this, TimeoutError);\n\t\t}\n\t}\n\n\tTimeoutError.prototype = Object.create(Error.prototype);\n\tTimeoutError.prototype.constructor = TimeoutError;\n\n\treturn TimeoutError;\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\tmakeApply.tryCatchResolve = tryCatchResolve;\n\n\treturn makeApply;\n\n\tfunction makeApply(Promise, call) {\n\t\tif(arguments.length < 2) {\n\t\t\tcall = tryCatchResolve;\n\t\t}\n\n\t\treturn apply;\n\n\t\tfunction apply(f, thisArg, args) {\n\t\t\tvar p = Promise._defer();\n\t\t\tvar l = args.length;\n\t\t\tvar params = new Array(l);\n\t\t\tcallAndResolve({ f:f, thisArg:thisArg, args:args, params:params, i:l-1, call:call }, p._handler);\n\n\t\t\treturn p;\n\t\t}\n\n\t\tfunction callAndResolve(c, h) {\n\t\t\tif(c.i < 0) {\n\t\t\t\treturn call(c.f, c.thisArg, c.params, h);\n\t\t\t}\n\n\t\t\tvar handler = Promise._handler(c.args[c.i]);\n\t\t\thandler.fold(callAndResolveNext, c, void 0, h);\n\t\t}\n\n\t\tfunction callAndResolveNext(c, x, h) {\n\t\t\tc.params[c.i] = x;\n\t\t\tc.i -= 1;\n\t\t\tcallAndResolve(c, h);\n\t\t}\n\t}\n\n\tfunction tryCatchResolve(f, thisArg, args, resolver) {\n\t\ttry {\n\t\t\tresolver.resolve(f.apply(thisArg, args));\n\t\t} catch(e) {\n\t\t\tresolver.reject(e);\n\t\t}\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n\n\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar state = require('../state');\n\tvar applier = require('../apply');\n\n\treturn function array(Promise) {\n\n\t\tvar applyFold = applier(Promise);\n\t\tvar toPromise = Promise.resolve;\n\t\tvar all = Promise.all;\n\n\t\tvar ar = Array.prototype.reduce;\n\t\tvar arr = Array.prototype.reduceRight;\n\t\tvar slice = Array.prototype.slice;\n\n\t\t// Additional array combinators\n\n\t\tPromise.any = any;\n\t\tPromise.some = some;\n\t\tPromise.settle = settle;\n\n\t\tPromise.map = map;\n\t\tPromise.filter = filter;\n\t\tPromise.reduce = reduce;\n\t\tPromise.reduceRight = reduceRight;\n\n\t\t/**\n\t\t * When this promise fulfills with an array, do\n\t\t * onFulfilled.apply(void 0, array)\n\t\t * @param {function} onFulfilled function to apply\n\t\t * @returns {Promise} promise for the result of applying onFulfilled\n\t\t */\n\t\tPromise.prototype.spread = function(onFulfilled) {\n\t\t\treturn this.then(all).then(function(array) {\n\t\t\t\treturn onFulfilled.apply(this, array);\n\t\t\t});\n\t\t};\n\n\t\treturn Promise;\n\n\t\t/**\n\t\t * One-winner competitive race.\n\t\t * Return a promise that will fulfill when one of the promises\n\t\t * in the input array fulfills, or will reject when all promises\n\t\t * have rejected.\n\t\t * @param {array} promises\n\t\t * @returns {Promise} promise for the first fulfilled value\n\t\t */\n\t\tfunction any(promises) {\n\t\t\tvar p = Promise._defer();\n\t\t\tvar resolver = p._handler;\n\t\t\tvar l = promises.length>>>0;\n\n\t\t\tvar pending = l;\n\t\t\tvar errors = [];\n\n\t\t\tfor (var h, x, i = 0; i < l; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif(x === void 0 && !(i in promises)) {\n\t\t\t\t\t--pending;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\th = Promise._handler(x);\n\t\t\t\tif(h.state() > 0) {\n\t\t\t\t\tresolver.become(h);\n\t\t\t\t\tPromise._visitRemaining(promises, i, h);\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\th.visit(resolver, handleFulfill, handleReject);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(pending === 0) {\n\t\t\t\tresolver.reject(new RangeError('any(): array must not be empty'));\n\t\t\t}\n\n\t\t\treturn p;\n\n\t\t\tfunction handleFulfill(x) {\n\t\t\t\t/*jshint validthis:true*/\n\t\t\t\terrors = null;\n\t\t\t\tthis.resolve(x); // this === resolver\n\t\t\t}\n\n\t\t\tfunction handleReject(e) {\n\t\t\t\t/*jshint validthis:true*/\n\t\t\t\tif(this.resolved) { // this === resolver\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\terrors.push(e);\n\t\t\t\tif(--pending === 0) {\n\t\t\t\t\tthis.reject(errors);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * N-winner competitive race\n\t\t * Return a promise that will fulfill when n input promises have\n\t\t * fulfilled, or will reject when it becomes impossible for n\n\t\t * input promises to fulfill (ie when promises.length - n + 1\n\t\t * have rejected)\n\t\t * @param {array} promises\n\t\t * @param {number} n\n\t\t * @returns {Promise} promise for the earliest n fulfillment values\n\t\t *\n\t\t * @deprecated\n\t\t */\n\t\tfunction some(promises, n) {\n\t\t\t/*jshint maxcomplexity:7*/\n\t\t\tvar p = Promise._defer();\n\t\t\tvar resolver = p._handler;\n\n\t\t\tvar results = [];\n\t\t\tvar errors = [];\n\n\t\t\tvar l = promises.length>>>0;\n\t\t\tvar nFulfill = 0;\n\t\t\tvar nReject;\n\t\t\tvar x, i; // reused in both for() loops\n\n\t\t\t// First pass: count actual array items\n\t\t\tfor(i=0; i<l; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif(x === void 0 && !(i in promises)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\t++nFulfill;\n\t\t\t}\n\n\t\t\t// Compute actual goals\n\t\t\tn = Math.max(n, 0);\n\t\t\tnReject = (nFulfill - n + 1);\n\t\t\tnFulfill = Math.min(n, nFulfill);\n\n\t\t\tif(n > nFulfill) {\n\t\t\t\tresolver.reject(new RangeError('some(): array must contain at least '\n\t\t\t\t+ n + ' item(s), but had ' + nFulfill));\n\t\t\t} else if(nFulfill === 0) {\n\t\t\t\tresolver.resolve(results);\n\t\t\t}\n\n\t\t\t// Second pass: observe each array item, make progress toward goals\n\t\t\tfor(i=0; i<l; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif(x === void 0 && !(i in promises)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tPromise._handler(x).visit(resolver, fulfill, reject, resolver.notify);\n\t\t\t}\n\n\t\t\treturn p;\n\n\t\t\tfunction fulfill(x) {\n\t\t\t\t/*jshint validthis:true*/\n\t\t\t\tif(this.resolved) { // this === resolver\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresults.push(x);\n\t\t\t\tif(--nFulfill === 0) {\n\t\t\t\t\terrors = null;\n\t\t\t\t\tthis.resolve(results);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction reject(e) {\n\t\t\t\t/*jshint validthis:true*/\n\t\t\t\tif(this.resolved) { // this === resolver\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\terrors.push(e);\n\t\t\t\tif(--nReject === 0) {\n\t\t\t\t\tresults = null;\n\t\t\t\t\tthis.reject(errors);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Apply f to the value of each promise in a list of promises\n\t\t * and return a new list containing the results.\n\t\t * @param {array} promises\n\t\t * @param {function(x:*, index:Number):*} f mapping function\n\t\t * @returns {Promise}\n\t\t */\n\t\tfunction map(promises, f) {\n\t\t\treturn Promise._traverse(f, promises);\n\t\t}\n\n\t\t/**\n\t\t * Filter the provided array of promises using the provided predicate. Input may\n\t\t * contain promises and values\n\t\t * @param {Array} promises array of promises and values\n\t\t * @param {function(x:*, index:Number):boolean} predicate filtering predicate.\n\t\t * Must return truthy (or promise for truthy) for items to retain.\n\t\t * @returns {Promise} promise that will fulfill with an array containing all items\n\t\t * for which predicate returned truthy.\n\t\t */\n\t\tfunction filter(promises, predicate) {\n\t\t\tvar a = slice.call(promises);\n\t\t\treturn Promise._traverse(predicate, a).then(function(keep) {\n\t\t\t\treturn filterSync(a, keep);\n\t\t\t});\n\t\t}\n\n\t\tfunction filterSync(promises, keep) {\n\t\t\t// Safe because we know all promises have fulfilled if we've made it this far\n\t\t\tvar l = keep.length;\n\t\t\tvar filtered = new Array(l);\n\t\t\tfor(var i=0, j=0; i<l; ++i) {\n\t\t\t\tif(keep[i]) {\n\t\t\t\t\tfiltered[j++] = Promise._handler(promises[i]).value;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiltered.length = j;\n\t\t\treturn filtered;\n\n\t\t}\n\n\t\t/**\n\t\t * Return a promise that will always fulfill with an array containing\n\t\t * the outcome states of all input promises. The returned promise\n\t\t * will never reject.\n\t\t * @param {Array} promises\n\t\t * @returns {Promise} promise for array of settled state descriptors\n\t\t */\n\t\tfunction settle(promises) {\n\t\t\treturn all(promises.map(settleOne));\n\t\t}\n\n\t\tfunction settleOne(p) {\n\t\t\t// Optimize the case where we get an already-resolved when.js promise\n\t\t\t// by extracting its state:\n\t\t\tvar handler;\n\t\t\tif (p instanceof Promise) {\n\t\t\t\t// This is our own Promise type and we can reach its handler internals:\n\t\t\t\thandler = p._handler.join();\n\t\t\t}\n\t\t\tif((handler && handler.state() === 0) || !handler) {\n\t\t\t\t// Either still pending, or not a Promise at all:\n\t\t\t\treturn toPromise(p).then(state.fulfilled, state.rejected);\n\t\t\t}\n\n\t\t\t// The promise is our own, but it is already resolved. Take a shortcut.\n\t\t\t// Since we're not actually handling the resolution, we need to disable\n\t\t\t// rejection reporting.\n\t\t\thandler._unreport();\n\t\t\treturn state.inspect(handler);\n\t\t}\n\n\t\t/**\n\t\t * Traditional reduce function, similar to `Array.prototype.reduce()`, but\n\t\t * input may contain promises and/or values, and reduceFunc\n\t\t * may return either a value or a promise, *and* initialValue may\n\t\t * be a promise for the starting value.\n\t\t * @param {Array|Promise} promises array or promise for an array of anything,\n\t\t * may contain a mix of promises and values.\n\t\t * @param {function(accumulated:*, x:*, index:Number):*} f reduce function\n\t\t * @returns {Promise} that will resolve to the final reduced value\n\t\t */\n\t\tfunction reduce(promises, f /*, initialValue */) {\n\t\t\treturn arguments.length > 2 ? ar.call(promises, liftCombine(f), arguments[2])\n\t\t\t\t\t: ar.call(promises, liftCombine(f));\n\t\t}\n\n\t\t/**\n\t\t * Traditional reduce function, similar to `Array.prototype.reduceRight()`, but\n\t\t * input may contain promises and/or values, and reduceFunc\n\t\t * may return either a value or a promise, *and* initialValue may\n\t\t * be a promise for the starting value.\n\t\t * @param {Array|Promise} promises array or promise for an array of anything,\n\t\t * may contain a mix of promises and values.\n\t\t * @param {function(accumulated:*, x:*, index:Number):*} f reduce function\n\t\t * @returns {Promise} that will resolve to the final reduced value\n\t\t */\n\t\tfunction reduceRight(promises, f /*, initialValue */) {\n\t\t\treturn arguments.length > 2 ? arr.call(promises, liftCombine(f), arguments[2])\n\t\t\t\t\t: arr.call(promises, liftCombine(f));\n\t\t}\n\n\t\tfunction liftCombine(f) {\n\t\t\treturn function(z, x, i) {\n\t\t\t\treturn applyFold(f, void 0, [z,x,i]);\n\t\t\t};\n\t\t}\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function flow(Promise) {\n\n\t\tvar resolve = Promise.resolve;\n\t\tvar reject = Promise.reject;\n\t\tvar origCatch = Promise.prototype['catch'];\n\n\t\t/**\n\t\t * Handle the ultimate fulfillment value or rejection reason, and assume\n\t\t * responsibility for all errors. If an error propagates out of result\n\t\t * or handleFatalError, it will be rethrown to the host, resulting in a\n\t\t * loud stack track on most platforms and a crash on some.\n\t\t * @param {function?} onResult\n\t\t * @param {function?} onError\n\t\t * @returns {undefined}\n\t\t */\n\t\tPromise.prototype.done = function(onResult, onError) {\n\t\t\tthis._handler.visit(this._handler.receiver, onResult, onError);\n\t\t};\n\n\t\t/**\n\t\t * Add Error-type and predicate matching to catch. Examples:\n\t\t * promise.catch(TypeError, handleTypeError)\n\t\t * .catch(predicate, handleMatchedErrors)\n\t\t * .catch(handleRemainingErrors)\n\t\t * @param onRejected\n\t\t * @returns {*}\n\t\t */\n\t\tPromise.prototype['catch'] = Promise.prototype.otherwise = function(onRejected) {\n\t\t\tif (arguments.length < 2) {\n\t\t\t\treturn origCatch.call(this, onRejected);\n\t\t\t}\n\n\t\t\tif(typeof onRejected !== 'function') {\n\t\t\t\treturn this.ensure(rejectInvalidPredicate);\n\t\t\t}\n\n\t\t\treturn origCatch.call(this, createCatchFilter(arguments[1], onRejected));\n\t\t};\n\n\t\t/**\n\t\t * Wraps the provided catch handler, so that it will only be called\n\t\t * if the predicate evaluates truthy\n\t\t * @param {?function} handler\n\t\t * @param {function} predicate\n\t\t * @returns {function} conditional catch handler\n\t\t */\n\t\tfunction createCatchFilter(handler, predicate) {\n\t\t\treturn function(e) {\n\t\t\t\treturn evaluatePredicate(e, predicate)\n\t\t\t\t\t? handler.call(this, e)\n\t\t\t\t\t: reject(e);\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Ensures that onFulfilledOrRejected will be called regardless of whether\n\t\t * this promise is fulfilled or rejected. onFulfilledOrRejected WILL NOT\n\t\t * receive the promises' value or reason. Any returned value will be disregarded.\n\t\t * onFulfilledOrRejected may throw or return a rejected promise to signal\n\t\t * an additional error.\n\t\t * @param {function} handler handler to be called regardless of\n\t\t * fulfillment or rejection\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype['finally'] = Promise.prototype.ensure = function(handler) {\n\t\t\tif(typeof handler !== 'function') {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\treturn this.then(function(x) {\n\t\t\t\treturn runSideEffect(handler, this, identity, x);\n\t\t\t}, function(e) {\n\t\t\t\treturn runSideEffect(handler, this, reject, e);\n\t\t\t});\n\t\t};\n\n\t\tfunction runSideEffect (handler, thisArg, propagate, value) {\n\t\t\tvar result = handler.call(thisArg);\n\t\t\treturn maybeThenable(result)\n\t\t\t\t? propagateValue(result, propagate, value)\n\t\t\t\t: propagate(value);\n\t\t}\n\n\t\tfunction propagateValue (result, propagate, x) {\n\t\t\treturn resolve(result).then(function () {\n\t\t\t\treturn propagate(x);\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Recover from a failure by returning a defaultValue. If defaultValue\n\t\t * is a promise, it's fulfillment value will be used. If defaultValue is\n\t\t * a promise that rejects, the returned promise will reject with the\n\t\t * same reason.\n\t\t * @param {*} defaultValue\n\t\t * @returns {Promise} new promise\n\t\t */\n\t\tPromise.prototype['else'] = Promise.prototype.orElse = function(defaultValue) {\n\t\t\treturn this.then(void 0, function() {\n\t\t\t\treturn defaultValue;\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * Shortcut for .then(function() { return value; })\n\t\t * @param {*} value\n\t\t * @return {Promise} a promise that:\n\t\t * - is fulfilled if value is not a promise, or\n\t\t * - if value is a promise, will fulfill with its value, or reject\n\t\t * with its reason.\n\t\t */\n\t\tPromise.prototype['yield'] = function(value) {\n\t\t\treturn this.then(function() {\n\t\t\t\treturn value;\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * Runs a side effect when this promise fulfills, without changing the\n\t\t * fulfillment value.\n\t\t * @param {function} onFulfilledSideEffect\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype.tap = function(onFulfilledSideEffect) {\n\t\t\treturn this.then(onFulfilledSideEffect)['yield'](this);\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n\tfunction rejectInvalidPredicate() {\n\t\tthrow new TypeError('catch predicate must be a function');\n\t}\n\n\tfunction evaluatePredicate(e, predicate) {\n\t\treturn isError(predicate) ? e instanceof predicate : predicate(e);\n\t}\n\n\tfunction isError(predicate) {\n\t\treturn predicate === Error\n\t\t\t|| (predicate != null && predicate.prototype instanceof Error);\n\t}\n\n\tfunction maybeThenable(x) {\n\t\treturn (typeof x === 'object' || typeof x === 'function') && x !== null;\n\t}\n\n\tfunction identity(x) {\n\t\treturn x;\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n/** @author Jeff Escalante */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function fold(Promise) {\n\n\t\tPromise.prototype.fold = function(f, z) {\n\t\t\tvar promise = this._beget();\n\n\t\t\tthis._handler.fold(function(z, x, to) {\n\t\t\t\tPromise._handler(z).fold(function(x, z, to) {\n\t\t\t\t\tto.resolve(f.call(this, z, x));\n\t\t\t\t}, x, this, to);\n\t\t\t}, z, promise._handler.receiver, promise._handler);\n\n\t\t\treturn promise;\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar inspect = require('../state').inspect;\n\n\treturn function inspection(Promise) {\n\n\t\tPromise.prototype.inspect = function() {\n\t\t\treturn inspect(Promise._handler(this));\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function generate(Promise) {\n\n\t\tvar resolve = Promise.resolve;\n\n\t\tPromise.iterate = iterate;\n\t\tPromise.unfold = unfold;\n\n\t\treturn Promise;\n\n\t\t/**\n\t\t * @deprecated Use github.com/cujojs/most streams and most.iterate\n\t\t * Generate a (potentially infinite) stream of promised values:\n\t\t * x, f(x), f(f(x)), etc. until condition(x) returns true\n\t\t * @param {function} f function to generate a new x from the previous x\n\t\t * @param {function} condition function that, given the current x, returns\n\t\t * truthy when the iterate should stop\n\t\t * @param {function} handler function to handle the value produced by f\n\t\t * @param {*|Promise} x starting value, may be a promise\n\t\t * @return {Promise} the result of the last call to f before\n\t\t * condition returns true\n\t\t */\n\t\tfunction iterate(f, condition, handler, x) {\n\t\t\treturn unfold(function(x) {\n\t\t\t\treturn [x, f(x)];\n\t\t\t}, condition, handler, x);\n\t\t}\n\n\t\t/**\n\t\t * @deprecated Use github.com/cujojs/most streams and most.unfold\n\t\t * Generate a (potentially infinite) stream of promised values\n\t\t * by applying handler(generator(seed)) iteratively until\n\t\t * condition(seed) returns true.\n\t\t * @param {function} unspool function that generates a [value, newSeed]\n\t\t * given a seed.\n\t\t * @param {function} condition function that, given the current seed, returns\n\t\t * truthy when the unfold should stop\n\t\t * @param {function} handler function to handle the value produced by unspool\n\t\t * @param x {*|Promise} starting value, may be a promise\n\t\t * @return {Promise} the result of the last value produced by unspool before\n\t\t * condition returns true\n\t\t */\n\t\tfunction unfold(unspool, condition, handler, x) {\n\t\t\treturn resolve(x).then(function(seed) {\n\t\t\t\treturn resolve(condition(seed)).then(function(done) {\n\t\t\t\t\treturn done ? seed : resolve(unspool(seed)).spread(next);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tfunction next(item, newSeed) {\n\t\t\t\treturn resolve(handler(item)).then(function() {\n\t\t\t\t\treturn unfold(unspool, condition, handler, newSeed);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function progress(Promise) {\n\n\t\t/**\n\t\t * @deprecated\n\t\t * Register a progress handler for this promise\n\t\t * @param {function} onProgress\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype.progress = function(onProgress) {\n\t\t\treturn this.then(void 0, void 0, onProgress);\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar env = require('../env');\n\tvar TimeoutError = require('../TimeoutError');\n\n\tfunction setTimeout(f, ms, x, y) {\n\t\treturn env.setTimer(function() {\n\t\t\tf(x, y, ms);\n\t\t}, ms);\n\t}\n\n\treturn function timed(Promise) {\n\t\t/**\n\t\t * Return a new promise whose fulfillment value is revealed only\n\t\t * after ms milliseconds\n\t\t * @param {number} ms milliseconds\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype.delay = function(ms) {\n\t\t\tvar p = this._beget();\n\t\t\tthis._handler.fold(handleDelay, ms, void 0, p._handler);\n\t\t\treturn p;\n\t\t};\n\n\t\tfunction handleDelay(ms, x, h) {\n\t\t\tsetTimeout(resolveDelay, ms, x, h);\n\t\t}\n\n\t\tfunction resolveDelay(x, h) {\n\t\t\th.resolve(x);\n\t\t}\n\n\t\t/**\n\t\t * Return a new promise that rejects after ms milliseconds unless\n\t\t * this promise fulfills earlier, in which case the returned promise\n\t\t * fulfills with the same value.\n\t\t * @param {number} ms milliseconds\n\t\t * @param {Error|*=} reason optional rejection reason to use, defaults\n\t\t * to a TimeoutError if not provided\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype.timeout = function(ms, reason) {\n\t\t\tvar p = this._beget();\n\t\t\tvar h = p._handler;\n\n\t\t\tvar t = setTimeout(onTimeout, ms, reason, p._handler);\n\n\t\t\tthis._handler.visit(h,\n\t\t\t\tfunction onFulfill(x) {\n\t\t\t\t\tenv.clearTimer(t);\n\t\t\t\t\tthis.resolve(x); // this = h\n\t\t\t\t},\n\t\t\t\tfunction onReject(x) {\n\t\t\t\t\tenv.clearTimer(t);\n\t\t\t\t\tthis.reject(x); // this = h\n\t\t\t\t},\n\t\t\t\th.notify);\n\n\t\t\treturn p;\n\t\t};\n\n\t\tfunction onTimeout(reason, h, ms) {\n\t\t\tvar e = typeof reason === 'undefined'\n\t\t\t\t? new TimeoutError('timed out after ' + ms + 'ms')\n\t\t\t\t: reason;\n\t\t\th.reject(e);\n\t\t}\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar setTimer = require('../env').setTimer;\n\tvar format = require('../format');\n\n\treturn function unhandledRejection(Promise) {\n\n\t\tvar logError = noop;\n\t\tvar logInfo = noop;\n\t\tvar localConsole;\n\n\t\tif(typeof console !== 'undefined') {\n\t\t\t// Alias console to prevent things like uglify's drop_console option from\n\t\t\t// removing console.log/error. Unhandled rejections fall into the same\n\t\t\t// category as uncaught exceptions, and build tools shouldn't silence them.\n\t\t\tlocalConsole = console;\n\t\t\tlogError = typeof localConsole.error !== 'undefined'\n\t\t\t\t? function (e) { localConsole.error(e); }\n\t\t\t\t: function (e) { localConsole.log(e); };\n\n\t\t\tlogInfo = typeof localConsole.info !== 'undefined'\n\t\t\t\t? function (e) { localConsole.info(e); }\n\t\t\t\t: function (e) { localConsole.log(e); };\n\t\t}\n\n\t\tPromise.onPotentiallyUnhandledRejection = function(rejection) {\n\t\t\tenqueue(report, rejection);\n\t\t};\n\n\t\tPromise.onPotentiallyUnhandledRejectionHandled = function(rejection) {\n\t\t\tenqueue(unreport, rejection);\n\t\t};\n\n\t\tPromise.onFatalRejection = function(rejection) {\n\t\t\tenqueue(throwit, rejection.value);\n\t\t};\n\n\t\tvar tasks = [];\n\t\tvar reported = [];\n\t\tvar running = null;\n\n\t\tfunction report(r) {\n\t\t\tif(!r.handled) {\n\t\t\t\treported.push(r);\n\t\t\t\tlogError('Potentially unhandled rejection [' + r.id + '] ' + format.formatError(r.value));\n\t\t\t}\n\t\t}\n\n\t\tfunction unreport(r) {\n\t\t\tvar i = reported.indexOf(r);\n\t\t\tif(i >= 0) {\n\t\t\t\treported.splice(i, 1);\n\t\t\t\tlogInfo('Handled previous rejection [' + r.id + '] ' + format.formatObject(r.value));\n\t\t\t}\n\t\t}\n\n\t\tfunction enqueue(f, x) {\n\t\t\ttasks.push(f, x);\n\t\t\tif(running === null) {\n\t\t\t\trunning = setTimer(flush, 0);\n\t\t\t}\n\t\t}\n\n\t\tfunction flush() {\n\t\t\trunning = null;\n\t\t\twhile(tasks.length > 0) {\n\t\t\t\ttasks.shift()(tasks.shift());\n\t\t\t}\n\t\t}\n\n\t\treturn Promise;\n\t};\n\n\tfunction throwit(e) {\n\t\tthrow e;\n\t}\n\n\tfunction noop() {}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function addWith(Promise) {\n\t\t/**\n\t\t * Returns a promise whose handlers will be called with `this` set to\n\t\t * the supplied receiver. Subsequent promises derived from the\n\t\t * returned promise will also have their handlers called with receiver\n\t\t * as `this`. Calling `with` with undefined or no arguments will return\n\t\t * a promise whose handlers will again be called in the usual Promises/A+\n\t\t * way (no `this`) thus safely undoing any previous `with` in the\n\t\t * promise chain.\n\t\t *\n\t\t * WARNING: Promises returned from `with`/`withThis` are NOT Promises/A+\n\t\t * compliant, specifically violating 2.2.5 (http://promisesaplus.com/#point-41)\n\t\t *\n\t\t * @param {object} receiver `this` value for all handlers attached to\n\t\t * the returned promise.\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype['with'] = Promise.prototype.withThis = function(receiver) {\n\t\t\tvar p = this._beget();\n\t\t\tvar child = p._handler;\n\t\t\tchild.receiver = receiver;\n\t\t\tthis._handler.chain(child, receiver);\n\t\t\treturn p;\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n/*global process,document,setTimeout,clearTimeout,MutationObserver,WebKitMutationObserver*/\n(function(define) { 'use strict';\ndefine(function(require) {\n\t/*jshint maxcomplexity:6*/\n\n\t// Sniff \"best\" async scheduling option\n\t// Prefer process.nextTick or MutationObserver, then check for\n\t// setTimeout, and finally vertx, since its the only env that doesn't\n\t// have setTimeout\n\n\tvar MutationObs;\n\tvar capturedSetTimeout = typeof setTimeout !== 'undefined' && setTimeout;\n\n\t// Default env\n\tvar setTimer = function(f, ms) { return setTimeout(f, ms); };\n\tvar clearTimer = function(t) { return clearTimeout(t); };\n\tvar asap = function (f) { return capturedSetTimeout(f, 0); };\n\n\t// Detect specific env\n\tif (isNode()) { // Node\n\t\tasap = function (f) { return process.nextTick(f); };\n\n\t} else if (MutationObs = hasMutationObserver()) { // Modern browser\n\t\tasap = initMutationObserver(MutationObs);\n\n\t} else if (!capturedSetTimeout) { // vert.x\n\t\tvar vertxRequire = require;\n\t\tvar vertx = vertxRequire('vertx');\n\t\tsetTimer = function (f, ms) { return vertx.setTimer(ms, f); };\n\t\tclearTimer = vertx.cancelTimer;\n\t\tasap = vertx.runOnLoop || vertx.runOnContext;\n\t}\n\n\treturn {\n\t\tsetTimer: setTimer,\n\t\tclearTimer: clearTimer,\n\t\tasap: asap\n\t};\n\n\tfunction isNode () {\n\t\treturn typeof process !== 'undefined' &&\n\t\t\tObject.prototype.toString.call(process) === '[object process]';\n\t}\n\n\tfunction hasMutationObserver () {\n\t return (typeof MutationObserver !== 'undefined' && MutationObserver) ||\n\t\t\t(typeof WebKitMutationObserver !== 'undefined' && WebKitMutationObserver);\n\t}\n\n\tfunction initMutationObserver(MutationObserver) {\n\t\tvar scheduled;\n\t\tvar node = document.createTextNode('');\n\t\tvar o = new MutationObserver(run);\n\t\to.observe(node, { characterData: true });\n\n\t\tfunction run() {\n\t\t\tvar f = scheduled;\n\t\t\tscheduled = void 0;\n\t\t\tf();\n\t\t}\n\n\t\tvar i = 0;\n\t\treturn function (f) {\n\t\t\tscheduled = f;\n\t\t\tnode.data = (i ^= 1);\n\t\t};\n\t}\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn {\n\t\tformatError: formatError,\n\t\tformatObject: formatObject,\n\t\ttryStringify: tryStringify\n\t};\n\n\t/**\n\t * Format an error into a string. If e is an Error and has a stack property,\n\t * it's returned. Otherwise, e is formatted using formatObject, with a\n\t * warning added about e not being a proper Error.\n\t * @param {*} e\n\t * @returns {String} formatted string, suitable for output to developers\n\t */\n\tfunction formatError(e) {\n\t\tvar s = typeof e === 'object' && e !== null && (e.stack || e.message) ? e.stack || e.message : formatObject(e);\n\t\treturn e instanceof Error ? s : s + ' (WARNING: non-Error used)';\n\t}\n\n\t/**\n\t * Format an object, detecting \"plain\" objects and running them through\n\t * JSON.stringify if possible.\n\t * @param {Object} o\n\t * @returns {string}\n\t */\n\tfunction formatObject(o) {\n\t\tvar s = String(o);\n\t\tif(s === '[object Object]' && typeof JSON !== 'undefined') {\n\t\t\ts = tryStringify(o, s);\n\t\t}\n\t\treturn s;\n\t}\n\n\t/**\n\t * Try to return the result of JSON.stringify(x). If that fails, return\n\t * defaultValue\n\t * @param {*} x\n\t * @param {*} defaultValue\n\t * @returns {String|*} JSON.stringify(x) or defaultValue\n\t */\n\tfunction tryStringify(x, defaultValue) {\n\t\ttry {\n\t\t\treturn JSON.stringify(x);\n\t\t} catch(e) {\n\t\t\treturn defaultValue;\n\t\t}\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function liftAll(liftOne, combine, dst, src) {\n\t\tif(typeof combine === 'undefined') {\n\t\t\tcombine = defaultCombine;\n\t\t}\n\n\t\treturn Object.keys(src).reduce(function(dst, key) {\n\t\t\tvar f = src[key];\n\t\t\treturn typeof f === 'function' ? combine(dst, liftOne(f), key) : dst;\n\t\t}, typeof dst === 'undefined' ? defaultDst(src) : dst);\n\t};\n\n\tfunction defaultCombine(o, f, k) {\n\t\to[k] = f;\n\t\treturn o;\n\t}\n\n\tfunction defaultDst(src) {\n\t\treturn typeof src === 'function' ? src.bind() : Object.create(src);\n\t}\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function makePromise(environment) {\n\n\t\tvar tasks = environment.scheduler;\n\t\tvar emitRejection = initEmitRejection();\n\n\t\tvar objectCreate = Object.create ||\n\t\t\tfunction(proto) {\n\t\t\t\tfunction Child() {}\n\t\t\t\tChild.prototype = proto;\n\t\t\t\treturn new Child();\n\t\t\t};\n\n\t\t/**\n\t\t * Create a promise whose fate is determined by resolver\n\t\t * @constructor\n\t\t * @returns {Promise} promise\n\t\t * @name Promise\n\t\t */\n\t\tfunction Promise(resolver, handler) {\n\t\t\tthis._handler = resolver === Handler ? handler : init(resolver);\n\t\t}\n\n\t\t/**\n\t\t * Run the supplied resolver\n\t\t * @param resolver\n\t\t * @returns {Pending}\n\t\t */\n\t\tfunction init(resolver) {\n\t\t\tvar handler = new Pending();\n\n\t\t\ttry {\n\t\t\t\tresolver(promiseResolve, promiseReject, promiseNotify);\n\t\t\t} catch (e) {\n\t\t\t\tpromiseReject(e);\n\t\t\t}\n\n\t\t\treturn handler;\n\n\t\t\t/**\n\t\t\t * Transition from pre-resolution state to post-resolution state, notifying\n\t\t\t * all listeners of the ultimate fulfillment or rejection\n\t\t\t * @param {*} x resolution value\n\t\t\t */\n\t\t\tfunction promiseResolve (x) {\n\t\t\t\thandler.resolve(x);\n\t\t\t}\n\t\t\t/**\n\t\t\t * Reject this promise with reason, which will be used verbatim\n\t\t\t * @param {Error|*} reason rejection reason, strongly suggested\n\t\t\t * to be an Error type\n\t\t\t */\n\t\t\tfunction promiseReject (reason) {\n\t\t\t\thandler.reject(reason);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * @deprecated\n\t\t\t * Issue a progress event, notifying all progress listeners\n\t\t\t * @param {*} x progress event payload to pass to all listeners\n\t\t\t */\n\t\t\tfunction promiseNotify (x) {\n\t\t\t\thandler.notify(x);\n\t\t\t}\n\t\t}\n\n\t\t// Creation\n\n\t\tPromise.resolve = resolve;\n\t\tPromise.reject = reject;\n\t\tPromise.never = never;\n\n\t\tPromise._defer = defer;\n\t\tPromise._handler = getHandler;\n\n\t\t/**\n\t\t * Returns a trusted promise. If x is already a trusted promise, it is\n\t\t * returned, otherwise returns a new trusted Promise which follows x.\n\t\t * @param {*} x\n\t\t * @return {Promise} promise\n\t\t */\n\t\tfunction resolve(x) {\n\t\t\treturn isPromise(x) ? x\n\t\t\t\t: new Promise(Handler, new Async(getHandler(x)));\n\t\t}\n\n\t\t/**\n\t\t * Return a reject promise with x as its reason (x is used verbatim)\n\t\t * @param {*} x\n\t\t * @returns {Promise} rejected promise\n\t\t */\n\t\tfunction reject(x) {\n\t\t\treturn new Promise(Handler, new Async(new Rejected(x)));\n\t\t}\n\n\t\t/**\n\t\t * Return a promise that remains pending forever\n\t\t * @returns {Promise} forever-pending promise.\n\t\t */\n\t\tfunction never() {\n\t\t\treturn foreverPendingPromise; // Should be frozen\n\t\t}\n\n\t\t/**\n\t\t * Creates an internal {promise, resolver} pair\n\t\t * @private\n\t\t * @returns {Promise}\n\t\t */\n\t\tfunction defer() {\n\t\t\treturn new Promise(Handler, new Pending());\n\t\t}\n\n\t\t// Transformation and flow control\n\n\t\t/**\n\t\t * Transform this promise's fulfillment value, returning a new Promise\n\t\t * for the transformed result. If the promise cannot be fulfilled, onRejected\n\t\t * is called with the reason. onProgress *may* be called with updates toward\n\t\t * this promise's fulfillment.\n\t\t * @param {function=} onFulfilled fulfillment handler\n\t\t * @param {function=} onRejected rejection handler\n\t\t * @param {function=} onProgress @deprecated progress handler\n\t\t * @return {Promise} new promise\n\t\t */\n\t\tPromise.prototype.then = function(onFulfilled, onRejected, onProgress) {\n\t\t\tvar parent = this._handler;\n\t\t\tvar state = parent.join().state();\n\n\t\t\tif ((typeof onFulfilled !== 'function' && state > 0) ||\n\t\t\t\t(typeof onRejected !== 'function' && state < 0)) {\n\t\t\t\t// Short circuit: value will not change, simply share handler\n\t\t\t\treturn new this.constructor(Handler, parent);\n\t\t\t}\n\n\t\t\tvar p = this._beget();\n\t\t\tvar child = p._handler;\n\n\t\t\tparent.chain(child, parent.receiver, onFulfilled, onRejected, onProgress);\n\n\t\t\treturn p;\n\t\t};\n\n\t\t/**\n\t\t * If this promise cannot be fulfilled due to an error, call onRejected to\n\t\t * handle the error. Shortcut for .then(undefined, onRejected)\n\t\t * @param {function?} onRejected\n\t\t * @return {Promise}\n\t\t */\n\t\tPromise.prototype['catch'] = function(onRejected) {\n\t\t\treturn this.then(void 0, onRejected);\n\t\t};\n\n\t\t/**\n\t\t * Creates a new, pending promise of the same type as this promise\n\t\t * @private\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype._beget = function() {\n\t\t\treturn begetFrom(this._handler, this.constructor);\n\t\t};\n\n\t\tfunction begetFrom(parent, Promise) {\n\t\t\tvar child = new Pending(parent.receiver, parent.join().context);\n\t\t\treturn new Promise(Handler, child);\n\t\t}\n\n\t\t// Array combinators\n\n\t\tPromise.all = all;\n\t\tPromise.race = race;\n\t\tPromise._traverse = traverse;\n\n\t\t/**\n\t\t * Return a promise that will fulfill when all promises in the\n\t\t * input array have fulfilled, or will reject when one of the\n\t\t * promises rejects.\n\t\t * @param {array} promises array of promises\n\t\t * @returns {Promise} promise for array of fulfillment values\n\t\t */\n\t\tfunction all(promises) {\n\t\t\treturn traverseWith(snd, null, promises);\n\t\t}\n\n\t\t/**\n\t\t * Array<Promise<X>> -> Promise<Array<f(X)>>\n\t\t * @private\n\t\t * @param {function} f function to apply to each promise's value\n\t\t * @param {Array} promises array of promises\n\t\t * @returns {Promise} promise for transformed values\n\t\t */\n\t\tfunction traverse(f, promises) {\n\t\t\treturn traverseWith(tryCatch2, f, promises);\n\t\t}\n\n\t\tfunction traverseWith(tryMap, f, promises) {\n\t\t\tvar handler = typeof f === 'function' ? mapAt : settleAt;\n\n\t\t\tvar resolver = new Pending();\n\t\t\tvar pending = promises.length >>> 0;\n\t\t\tvar results = new Array(pending);\n\n\t\t\tfor (var i = 0, x; i < promises.length && !resolver.resolved; ++i) {\n\t\t\t\tx = promises[i];\n\n\t\t\t\tif (x === void 0 && !(i in promises)) {\n\t\t\t\t\t--pending;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\ttraverseAt(promises, handler, i, x, resolver);\n\t\t\t}\n\n\t\t\tif(pending === 0) {\n\t\t\t\tresolver.become(new Fulfilled(results));\n\t\t\t}\n\n\t\t\treturn new Promise(Handler, resolver);\n\n\t\t\tfunction mapAt(i, x, resolver) {\n\t\t\t\tif(!resolver.resolved) {\n\t\t\t\t\ttraverseAt(promises, settleAt, i, tryMap(f, x, i), resolver);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction settleAt(i, x, resolver) {\n\t\t\t\tresults[i] = x;\n\t\t\t\tif(--pending === 0) {\n\t\t\t\t\tresolver.become(new Fulfilled(results));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction traverseAt(promises, handler, i, x, resolver) {\n\t\t\tif (maybeThenable(x)) {\n\t\t\t\tvar h = getHandlerMaybeThenable(x);\n\t\t\t\tvar s = h.state();\n\n\t\t\t\tif (s === 0) {\n\t\t\t\t\th.fold(handler, i, void 0, resolver);\n\t\t\t\t} else if (s > 0) {\n\t\t\t\t\thandler(i, h.value, resolver);\n\t\t\t\t} else {\n\t\t\t\t\tresolver.become(h);\n\t\t\t\t\tvisitRemaining(promises, i+1, h);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thandler(i, x, resolver);\n\t\t\t}\n\t\t}\n\n\t\tPromise._visitRemaining = visitRemaining;\n\t\tfunction visitRemaining(promises, start, handler) {\n\t\t\tfor(var i=start; i<promises.length; ++i) {\n\t\t\t\tmarkAsHandled(getHandler(promises[i]), handler);\n\t\t\t}\n\t\t}\n\n\t\tfunction markAsHandled(h, handler) {\n\t\t\tif(h === handler) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar s = h.state();\n\t\t\tif(s === 0) {\n\t\t\t\th.visit(h, void 0, h._unreport);\n\t\t\t} else if(s < 0) {\n\t\t\t\th._unreport();\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Fulfill-reject competitive race. Return a promise that will settle\n\t\t * to the same state as the earliest input promise to settle.\n\t\t *\n\t\t * WARNING: The ES6 Promise spec requires that race()ing an empty array\n\t\t * must return a promise that is pending forever. This implementation\n\t\t * returns a singleton forever-pending promise, the same singleton that is\n\t\t * returned by Promise.never(), thus can be checked with ===\n\t\t *\n\t\t * @param {array} promises array of promises to race\n\t\t * @returns {Promise} if input is non-empty, a promise that will settle\n\t\t * to the same outcome as the earliest input promise to settle. if empty\n\t\t * is empty, returns a promise that will never settle.\n\t\t */\n\t\tfunction race(promises) {\n\t\t\tif(typeof promises !== 'object' || promises === null) {\n\t\t\t\treturn reject(new TypeError('non-iterable passed to race()'));\n\t\t\t}\n\n\t\t\t// Sigh, race([]) is untestable unless we return *something*\n\t\t\t// that is recognizable without calling .then() on it.\n\t\t\treturn promises.length === 0 ? never()\n\t\t\t\t : promises.length === 1 ? resolve(promises[0])\n\t\t\t\t : runRace(promises);\n\t\t}\n\n\t\tfunction runRace(promises) {\n\t\t\tvar resolver = new Pending();\n\t\t\tvar i, x, h;\n\t\t\tfor(i=0; i<promises.length; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif (x === void 0 && !(i in promises)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\th = getHandler(x);\n\t\t\t\tif(h.state() !== 0) {\n\t\t\t\t\tresolver.become(h);\n\t\t\t\t\tvisitRemaining(promises, i+1, h);\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\th.visit(resolver, resolver.resolve, resolver.reject);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn new Promise(Handler, resolver);\n\t\t}\n\n\t\t// Promise internals\n\t\t// Below this, everything is @private\n\n\t\t/**\n\t\t * Get an appropriate handler for x, without checking for cycles\n\t\t * @param {*} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandler(x) {\n\t\t\tif(isPromise(x)) {\n\t\t\t\treturn x._handler.join();\n\t\t\t}\n\t\t\treturn maybeThenable(x) ? getHandlerUntrusted(x) : new Fulfilled(x);\n\t\t}\n\n\t\t/**\n\t\t * Get a handler for thenable x.\n\t\t * NOTE: You must only call this if maybeThenable(x) == true\n\t\t * @param {object|function|Promise} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandlerMaybeThenable(x) {\n\t\t\treturn isPromise(x) ? x._handler.join() : getHandlerUntrusted(x);\n\t\t}\n\n\t\t/**\n\t\t * Get a handler for potentially untrusted thenable x\n\t\t * @param {*} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandlerUntrusted(x) {\n\t\t\ttry {\n\t\t\t\tvar untrustedThen = x.then;\n\t\t\t\treturn typeof untrustedThen === 'function'\n\t\t\t\t\t? new Thenable(untrustedThen, x)\n\t\t\t\t\t: new Fulfilled(x);\n\t\t\t} catch(e) {\n\t\t\t\treturn new Rejected(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Handler for a promise that is pending forever\n\t\t * @constructor\n\t\t */\n\t\tfunction Handler() {}\n\n\t\tHandler.prototype.when\n\t\t\t= Handler.prototype.become\n\t\t\t= Handler.prototype.notify // deprecated\n\t\t\t= Handler.prototype.fail\n\t\t\t= Handler.prototype._unreport\n\t\t\t= Handler.prototype._report\n\t\t\t= noop;\n\n\t\tHandler.prototype._state = 0;\n\n\t\tHandler.prototype.state = function() {\n\t\t\treturn this._state;\n\t\t};\n\n\t\t/**\n\t\t * Recursively collapse handler chain to find the handler\n\t\t * nearest to the fully resolved value.\n\t\t * @returns {object} handler nearest the fully resolved value\n\t\t */\n\t\tHandler.prototype.join = function() {\n\t\t\tvar h = this;\n\t\t\twhile(h.handler !== void 0) {\n\t\t\t\th = h.handler;\n\t\t\t}\n\t\t\treturn h;\n\t\t};\n\n\t\tHandler.prototype.chain = function(to, receiver, fulfilled, rejected, progress) {\n\t\t\tthis.when({\n\t\t\t\tresolver: to,\n\t\t\t\treceiver: receiver,\n\t\t\t\tfulfilled: fulfilled,\n\t\t\t\trejected: rejected,\n\t\t\t\tprogress: progress\n\t\t\t});\n\t\t};\n\n\t\tHandler.prototype.visit = function(receiver, fulfilled, rejected, progress) {\n\t\t\tthis.chain(failIfRejected, receiver, fulfilled, rejected, progress);\n\t\t};\n\n\t\tHandler.prototype.fold = function(f, z, c, to) {\n\t\t\tthis.when(new Fold(f, z, c, to));\n\t\t};\n\n\t\t/**\n\t\t * Handler that invokes fail() on any handler it becomes\n\t\t * @constructor\n\t\t */\n\t\tfunction FailIfRejected() {}\n\n\t\tinherit(Handler, FailIfRejected);\n\n\t\tFailIfRejected.prototype.become = function(h) {\n\t\t\th.fail();\n\t\t};\n\n\t\tvar failIfRejected = new FailIfRejected();\n\n\t\t/**\n\t\t * Handler that manages a queue of consumers waiting on a pending promise\n\t\t * @constructor\n\t\t */\n\t\tfunction Pending(receiver, inheritedContext) {\n\t\t\tPromise.createContext(this, inheritedContext);\n\n\t\t\tthis.consumers = void 0;\n\t\t\tthis.receiver = receiver;\n\t\t\tthis.handler = void 0;\n\t\t\tthis.resolved = false;\n\t\t}\n\n\t\tinherit(Handler, Pending);\n\n\t\tPending.prototype._state = 0;\n\n\t\tPending.prototype.resolve = function(x) {\n\t\t\tthis.become(getHandler(x));\n\t\t};\n\n\t\tPending.prototype.reject = function(x) {\n\t\t\tif(this.resolved) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.become(new Rejected(x));\n\t\t};\n\n\t\tPending.prototype.join = function() {\n\t\t\tif (!this.resolved) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tvar h = this;\n\n\t\t\twhile (h.handler !== void 0) {\n\t\t\t\th = h.handler;\n\t\t\t\tif (h === this) {\n\t\t\t\t\treturn this.handler = cycle();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn h;\n\t\t};\n\n\t\tPending.prototype.run = function() {\n\t\t\tvar q = this.consumers;\n\t\t\tvar handler = this.handler;\n\t\t\tthis.handler = this.handler.join();\n\t\t\tthis.consumers = void 0;\n\n\t\t\tfor (var i = 0; i < q.length; ++i) {\n\t\t\t\thandler.when(q[i]);\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.become = function(handler) {\n\t\t\tif(this.resolved) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.resolved = true;\n\t\t\tthis.handler = handler;\n\t\t\tif(this.consumers !== void 0) {\n\t\t\t\ttasks.enqueue(this);\n\t\t\t}\n\n\t\t\tif(this.context !== void 0) {\n\t\t\t\thandler._report(this.context);\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.when = function(continuation) {\n\t\t\tif(this.resolved) {\n\t\t\t\ttasks.enqueue(new ContinuationTask(continuation, this.handler));\n\t\t\t} else {\n\t\t\t\tif(this.consumers === void 0) {\n\t\t\t\t\tthis.consumers = [continuation];\n\t\t\t\t} else {\n\t\t\t\t\tthis.consumers.push(continuation);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * @deprecated\n\t\t */\n\t\tPending.prototype.notify = function(x) {\n\t\t\tif(!this.resolved) {\n\t\t\t\ttasks.enqueue(new ProgressTask(x, this));\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.fail = function(context) {\n\t\t\tvar c = typeof context === 'undefined' ? this.context : context;\n\t\t\tthis.resolved && this.handler.join().fail(c);\n\t\t};\n\n\t\tPending.prototype._report = function(context) {\n\t\t\tthis.resolved && this.handler.join()._report(context);\n\t\t};\n\n\t\tPending.prototype._unreport = function() {\n\t\t\tthis.resolved && this.handler.join()._unreport();\n\t\t};\n\n\t\t/**\n\t\t * Wrap another handler and force it into a future stack\n\t\t * @param {object} handler\n\t\t * @constructor\n\t\t */\n\t\tfunction Async(handler) {\n\t\t\tthis.handler = handler;\n\t\t}\n\n\t\tinherit(Handler, Async);\n\n\t\tAsync.prototype.when = function(continuation) {\n\t\t\ttasks.enqueue(new ContinuationTask(continuation, this));\n\t\t};\n\n\t\tAsync.prototype._report = function(context) {\n\t\t\tthis.join()._report(context);\n\t\t};\n\n\t\tAsync.prototype._unreport = function() {\n\t\t\tthis.join()._unreport();\n\t\t};\n\n\t\t/**\n\t\t * Handler that wraps an untrusted thenable and assimilates it in a future stack\n\t\t * @param {function} then\n\t\t * @param {{then: function}} thenable\n\t\t * @constructor\n\t\t */\n\t\tfunction Thenable(then, thenable) {\n\t\t\tPending.call(this);\n\t\t\ttasks.enqueue(new AssimilateTask(then, thenable, this));\n\t\t}\n\n\t\tinherit(Pending, Thenable);\n\n\t\t/**\n\t\t * Handler for a fulfilled promise\n\t\t * @param {*} x fulfillment value\n\t\t * @constructor\n\t\t */\n\t\tfunction Fulfilled(x) {\n\t\t\tPromise.createContext(this);\n\t\t\tthis.value = x;\n\t\t}\n\n\t\tinherit(Handler, Fulfilled);\n\n\t\tFulfilled.prototype._state = 1;\n\n\t\tFulfilled.prototype.fold = function(f, z, c, to) {\n\t\t\trunContinuation3(f, z, this, c, to);\n\t\t};\n\n\t\tFulfilled.prototype.when = function(cont) {\n\t\t\trunContinuation1(cont.fulfilled, this, cont.receiver, cont.resolver);\n\t\t};\n\n\t\tvar errorId = 0;\n\n\t\t/**\n\t\t * Handler for a rejected promise\n\t\t * @param {*} x rejection reason\n\t\t * @constructor\n\t\t */\n\t\tfunction Rejected(x) {\n\t\t\tPromise.createContext(this);\n\n\t\t\tthis.id = ++errorId;\n\t\t\tthis.value = x;\n\t\t\tthis.handled = false;\n\t\t\tthis.reported = false;\n\n\t\t\tthis._report();\n\t\t}\n\n\t\tinherit(Handler, Rejected);\n\n\t\tRejected.prototype._state = -1;\n\n\t\tRejected.prototype.fold = function(f, z, c, to) {\n\t\t\tto.become(this);\n\t\t};\n\n\t\tRejected.prototype.when = function(cont) {\n\t\t\tif(typeof cont.rejected === 'function') {\n\t\t\t\tthis._unreport();\n\t\t\t}\n\t\t\trunContinuation1(cont.rejected, this, cont.receiver, cont.resolver);\n\t\t};\n\n\t\tRejected.prototype._report = function(context) {\n\t\t\ttasks.afterQueue(new ReportTask(this, context));\n\t\t};\n\n\t\tRejected.prototype._unreport = function() {\n\t\t\tif(this.handled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.handled = true;\n\t\t\ttasks.afterQueue(new UnreportTask(this));\n\t\t};\n\n\t\tRejected.prototype.fail = function(context) {\n\t\t\tthis.reported = true;\n\t\t\temitRejection('unhandledRejection', this);\n\t\t\tPromise.onFatalRejection(this, context === void 0 ? this.context : context);\n\t\t};\n\n\t\tfunction ReportTask(rejection, context) {\n\t\t\tthis.rejection = rejection;\n\t\t\tthis.context = context;\n\t\t}\n\n\t\tReportTask.prototype.run = function() {\n\t\t\tif(!this.rejection.handled && !this.rejection.reported) {\n\t\t\t\tthis.rejection.reported = true;\n\t\t\t\temitRejection('unhandledRejection', this.rejection) ||\n\t\t\t\t\tPromise.onPotentiallyUnhandledRejection(this.rejection, this.context);\n\t\t\t}\n\t\t};\n\n\t\tfunction UnreportTask(rejection) {\n\t\t\tthis.rejection = rejection;\n\t\t}\n\n\t\tUnreportTask.prototype.run = function() {\n\t\t\tif(this.rejection.reported) {\n\t\t\t\temitRejection('rejectionHandled', this.rejection) ||\n\t\t\t\t\tPromise.onPotentiallyUnhandledRejectionHandled(this.rejection);\n\t\t\t}\n\t\t};\n\n\t\t// Unhandled rejection hooks\n\t\t// By default, everything is a noop\n\n\t\tPromise.createContext\n\t\t\t= Promise.enterContext\n\t\t\t= Promise.exitContext\n\t\t\t= Promise.onPotentiallyUnhandledRejection\n\t\t\t= Promise.onPotentiallyUnhandledRejectionHandled\n\t\t\t= Promise.onFatalRejection\n\t\t\t= noop;\n\n\t\t// Errors and singletons\n\n\t\tvar foreverPendingHandler = new Handler();\n\t\tvar foreverPendingPromise = new Promise(Handler, foreverPendingHandler);\n\n\t\tfunction cycle() {\n\t\t\treturn new Rejected(new TypeError('Promise cycle'));\n\t\t}\n\n\t\t// Task runners\n\n\t\t/**\n\t\t * Run a single consumer\n\t\t * @constructor\n\t\t */\n\t\tfunction ContinuationTask(continuation, handler) {\n\t\t\tthis.continuation = continuation;\n\t\t\tthis.handler = handler;\n\t\t}\n\n\t\tContinuationTask.prototype.run = function() {\n\t\t\tthis.handler.join().when(this.continuation);\n\t\t};\n\n\t\t/**\n\t\t * Run a queue of progress handlers\n\t\t * @constructor\n\t\t */\n\t\tfunction ProgressTask(value, handler) {\n\t\t\tthis.handler = handler;\n\t\t\tthis.value = value;\n\t\t}\n\n\t\tProgressTask.prototype.run = function() {\n\t\t\tvar q = this.handler.consumers;\n\t\t\tif(q === void 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var c, i = 0; i < q.length; ++i) {\n\t\t\t\tc = q[i];\n\t\t\t\trunNotify(c.progress, this.value, this.handler, c.receiver, c.resolver);\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Assimilate a thenable, sending it's value to resolver\n\t\t * @param {function} then\n\t\t * @param {object|function} thenable\n\t\t * @param {object} resolver\n\t\t * @constructor\n\t\t */\n\t\tfunction AssimilateTask(then, thenable, resolver) {\n\t\t\tthis._then = then;\n\t\t\tthis.thenable = thenable;\n\t\t\tthis.resolver = resolver;\n\t\t}\n\n\t\tAssimilateTask.prototype.run = function() {\n\t\t\tvar h = this.resolver;\n\t\t\ttryAssimilate(this._then, this.thenable, _resolve, _reject, _notify);\n\n\t\t\tfunction _resolve(x) { h.resolve(x); }\n\t\t\tfunction _reject(x) { h.reject(x); }\n\t\t\tfunction _notify(x) { h.notify(x); }\n\t\t};\n\n\t\tfunction tryAssimilate(then, thenable, resolve, reject, notify) {\n\t\t\ttry {\n\t\t\t\tthen.call(thenable, resolve, reject, notify);\n\t\t\t} catch (e) {\n\t\t\t\treject(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Fold a handler value with z\n\t\t * @constructor\n\t\t */\n\t\tfunction Fold(f, z, c, to) {\n\t\t\tthis.f = f; this.z = z; this.c = c; this.to = to;\n\t\t\tthis.resolver = failIfRejected;\n\t\t\tthis.receiver = this;\n\t\t}\n\n\t\tFold.prototype.fulfilled = function(x) {\n\t\t\tthis.f.call(this.c, this.z, x, this.to);\n\t\t};\n\n\t\tFold.prototype.rejected = function(x) {\n\t\t\tthis.to.reject(x);\n\t\t};\n\n\t\tFold.prototype.progress = function(x) {\n\t\t\tthis.to.notify(x);\n\t\t};\n\n\t\t// Other helpers\n\n\t\t/**\n\t\t * @param {*} x\n\t\t * @returns {boolean} true iff x is a trusted Promise\n\t\t */\n\t\tfunction isPromise(x) {\n\t\t\treturn x instanceof Promise;\n\t\t}\n\n\t\t/**\n\t\t * Test just enough to rule out primitives, in order to take faster\n\t\t * paths in some code\n\t\t * @param {*} x\n\t\t * @returns {boolean} false iff x is guaranteed *not* to be a thenable\n\t\t */\n\t\tfunction maybeThenable(x) {\n\t\t\treturn (typeof x === 'object' || typeof x === 'function') && x !== null;\n\t\t}\n\n\t\tfunction runContinuation1(f, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.become(h);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReject(f, h.value, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\tfunction runContinuation3(f, x, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.become(h);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReject3(f, x, h.value, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\t/**\n\t\t * @deprecated\n\t\t */\n\t\tfunction runNotify(f, x, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.notify(x);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReturn(f, x, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\tfunction tryCatch2(f, a, b) {\n\t\t\ttry {\n\t\t\t\treturn f(a, b);\n\t\t\t} catch(e) {\n\t\t\t\treturn reject(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Return f.call(thisArg, x), or if it throws return a rejected promise for\n\t\t * the thrown exception\n\t\t */\n\t\tfunction tryCatchReject(f, x, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tnext.become(getHandler(f.call(thisArg, x)));\n\t\t\t} catch(e) {\n\t\t\t\tnext.become(new Rejected(e));\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Same as above, but includes the extra argument parameter.\n\t\t */\n\t\tfunction tryCatchReject3(f, x, y, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tf.call(thisArg, x, y, next);\n\t\t\t} catch(e) {\n\t\t\t\tnext.become(new Rejected(e));\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * @deprecated\n\t\t * Return f.call(thisArg, x), or if it throws, *return* the exception\n\t\t */\n\t\tfunction tryCatchReturn(f, x, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tnext.notify(f.call(thisArg, x));\n\t\t\t} catch(e) {\n\t\t\t\tnext.notify(e);\n\t\t\t}\n\t\t}\n\n\t\tfunction inherit(Parent, Child) {\n\t\t\tChild.prototype = objectCreate(Parent.prototype);\n\t\t\tChild.prototype.constructor = Child;\n\t\t}\n\n\t\tfunction snd(x, y) {\n\t\t\treturn y;\n\t\t}\n\n\t\tfunction noop() {}\n\n\t\tfunction hasCustomEvent() {\n\t\t\tif(typeof CustomEvent === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\tvar ev = new CustomEvent('unhandledRejection');\n\t\t\t\t\treturn ev instanceof CustomEvent;\n\t\t\t\t} catch (ignoredException) {}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction hasInternetExplorerCustomEvent() {\n\t\t\tif(typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\t// Try to create one event to make sure it's supported\n\t\t\t\t\tvar ev = document.createEvent('CustomEvent');\n\t\t\t\t\tev.initCustomEvent('eventType', false, true, {});\n\t\t\t\t\treturn true;\n\t\t\t\t} catch (ignoredException) {}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction initEmitRejection() {\n\t\t\t/*global process, self, CustomEvent*/\n\t\t\tif(typeof process !== 'undefined' && process !== null\n\t\t\t\t&& typeof process.emit === 'function') {\n\t\t\t\t// Returning falsy here means to call the default\n\t\t\t\t// onPotentiallyUnhandledRejection API. This is safe even in\n\t\t\t\t// browserify since process.emit always returns falsy in browserify:\n\t\t\t\t// https://github.com/defunctzombie/node-process/blob/master/browser.js#L40-L46\n\t\t\t\treturn function(type, rejection) {\n\t\t\t\t\treturn type === 'unhandledRejection'\n\t\t\t\t\t\t? process.emit(type, rejection.value, rejection)\n\t\t\t\t\t\t: process.emit(type, rejection);\n\t\t\t\t};\n\t\t\t} else if(typeof self !== 'undefined' && hasCustomEvent()) {\n\t\t\t\treturn (function (self, CustomEvent) {\n\t\t\t\t\treturn function (type, rejection) {\n\t\t\t\t\t\tvar ev = new CustomEvent(type, {\n\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\treason: rejection.value,\n\t\t\t\t\t\t\t\tkey: rejection\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbubbles: false,\n\t\t\t\t\t\t\tcancelable: true\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn !self.dispatchEvent(ev);\n\t\t\t\t\t};\n\t\t\t\t}(self, CustomEvent));\n\t\t\t} else if(typeof self !== 'undefined' && hasInternetExplorerCustomEvent()) {\n\t\t\t\treturn (function(self, document) {\n\t\t\t\t\treturn function(type, rejection) {\n\t\t\t\t\t\tvar ev = document.createEvent('CustomEvent');\n\t\t\t\t\t\tev.initCustomEvent(type, false, true, {\n\t\t\t\t\t\t\treason: rejection.value,\n\t\t\t\t\t\t\tkey: rejection\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn !self.dispatchEvent(ev);\n\t\t\t\t\t};\n\t\t\t\t}(self, document));\n\t\t\t}\n\n\t\t\treturn noop;\n\t\t}\n\n\t\treturn Promise;\n\t};\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn {\n\t\tpending: toPendingState,\n\t\tfulfilled: toFulfilledState,\n\t\trejected: toRejectedState,\n\t\tinspect: inspect\n\t};\n\n\tfunction toPendingState() {\n\t\treturn { state: 'pending' };\n\t}\n\n\tfunction toRejectedState(e) {\n\t\treturn { state: 'rejected', reason: e };\n\t}\n\n\tfunction toFulfilledState(x) {\n\t\treturn { state: 'fulfilled', value: x };\n\t}\n\n\tfunction inspect(handler) {\n\t\tvar state = handler.state();\n\t\treturn state === 0 ? toPendingState()\n\t\t\t : state > 0 ? toFulfilledState(handler.value)\n\t\t\t : toRejectedState(handler.value);\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2013 original author or authors */\n\n/**\n * Collection of helpers for interfacing with node-style asynchronous functions\n * using promises.\n *\n * @author Brian Cavalier\n * @contributor Renato Zannon\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar _liftAll = require('./lib/liftAll');\n\tvar setTimer = require('./lib/env').setTimer;\n\tvar slice = Array.prototype.slice;\n\n\tvar _apply = require('./lib/apply')(when.Promise, dispatch);\n\n\treturn {\n\t\tlift: lift,\n\t\tliftAll: liftAll,\n\t\tapply: apply,\n\t\tcall: call,\n\t\tcreateCallback: createCallback,\n\t\tbindCallback: bindCallback,\n\t\tliftCallback: liftCallback\n\t};\n\n\t/**\n\t * Takes a node-style async function and calls it immediately (with an optional\n\t * array of arguments or promises for arguments). It returns a promise whose\n\t * resolution depends on whether the async functions calls its callback with the\n\t * conventional error argument or not.\n\t *\n\t * With this it becomes possible to leverage existing APIs while still reaping\n\t * the benefits of promises.\n\t *\n\t * @example\n\t * function onlySmallNumbers(n, callback) {\n\t *\t\tif(n < 10) {\n\t *\t\t\tcallback(null, n + 10);\n\t *\t\t} else {\n\t *\t\t\tcallback(new Error(\"Calculation failed\"));\n\t *\t\t}\n\t *\t}\n\t *\n\t * var nodefn = require(\"when/node/function\");\n\t *\n\t * // Logs '15'\n\t * nodefn.apply(onlySmallNumbers, [5]).then(console.log, console.error);\n\t *\n\t * // Logs 'Calculation failed'\n\t * nodefn.apply(onlySmallNumbers, [15]).then(console.log, console.error);\n\t *\n\t * @param {function} f node-style function that will be called\n\t * @param {Array} [args] array of arguments to func\n\t * @returns {Promise} promise for the value func passes to its callback\n\t */\n\tfunction apply(f, args) {\n\t\treturn _apply(f, this, args || []);\n\t}\n\n\tfunction dispatch(f, thisArg, args, h) {\n\t\tvar cb = createCallback(h);\n\t\ttry {\n\t\t\tswitch(args.length) {\n\t\t\t\tcase 2: f.call(thisArg, args[0], args[1], cb); break;\n\t\t\t\tcase 1: f.call(thisArg, args[0], cb); break;\n\t\t\t\tcase 0: f.call(thisArg, cb); break;\n\t\t\t\tdefault:\n\t\t\t\t\targs.push(cb);\n\t\t\t\t\tf.apply(thisArg, args);\n\t\t\t}\n\t\t} catch(e) {\n\t\t\th.reject(e);\n\t\t}\n\t}\n\n\t/**\n\t * Has the same behavior that {@link apply} has, with the difference that the\n\t * arguments to the function are provided individually, while {@link apply} accepts\n\t * a single array.\n\t *\n\t * @example\n\t * function sumSmallNumbers(x, y, callback) {\n\t *\t\tvar result = x + y;\n\t *\t\tif(result < 10) {\n\t *\t\t\tcallback(null, result);\n\t *\t\t} else {\n\t *\t\t\tcallback(new Error(\"Calculation failed\"));\n\t *\t\t}\n\t *\t}\n\t *\n\t * // Logs '5'\n\t * nodefn.call(sumSmallNumbers, 2, 3).then(console.log, console.error);\n\t *\n\t * // Logs 'Calculation failed'\n\t * nodefn.call(sumSmallNumbers, 5, 10).then(console.log, console.error);\n\t *\n\t * @param {function} f node-style function that will be called\n\t * @param {...*} [args] arguments that will be forwarded to the function\n\t * @returns {Promise} promise for the value func passes to its callback\n\t */\n\tfunction call(f /*, args... */) {\n\t\treturn _apply(f, this, slice.call(arguments, 1));\n\t}\n\n\t/**\n\t * Takes a node-style function and returns new function that wraps the\n\t * original and, instead of taking a callback, returns a promise. Also, it\n\t * knows how to handle promises given as arguments, waiting for their\n\t * resolution before executing.\n\t *\n\t * Upon execution, the orginal function is executed as well. If it passes\n\t * a truthy value as the first argument to the callback, it will be\n\t * interpreted as an error condition, and the promise will be rejected\n\t * with it. Otherwise, the call is considered a resolution, and the promise\n\t * is resolved with the callback's second argument.\n\t *\n\t * @example\n\t * var fs = require(\"fs\"), nodefn = require(\"when/node/function\");\n\t *\n\t * var promiseRead = nodefn.lift(fs.readFile);\n\t *\n\t * // The promise is resolved with the contents of the file if everything\n\t * // goes ok\n\t * promiseRead('exists.txt').then(console.log, console.error);\n\t *\n\t * // And will be rejected if something doesn't work out\n\t * // (e.g. the files does not exist)\n\t * promiseRead('doesnt_exist.txt').then(console.log, console.error);\n\t *\n\t *\n\t * @param {Function} f node-style function to be lifted\n\t * @param {...*} [args] arguments to be prepended for the new function @deprecated\n\t * @returns {Function} a promise-returning function\n\t */\n\tfunction lift(f /*, args... */) {\n\t\tvar args1 = arguments.length > 1 ? slice.call(arguments, 1) : [];\n\t\treturn function() {\n\t\t\t// TODO: Simplify once partialing has been removed\n\t\t\tvar l = args1.length;\n\t\t\tvar al = arguments.length;\n\t\t\tvar args = new Array(al + l);\n\t\t\tvar i;\n\t\t\tfor(i=0; i<l; ++i) {\n\t\t\t\targs[i] = args1[i];\n\t\t\t}\n\t\t\tfor(i=0; i<al; ++i) {\n\t\t\t\targs[i+l] = arguments[i];\n\t\t\t}\n\t\t\treturn _apply(f, this, args);\n\t\t};\n\t}\n\n\t/**\n\t * Lift all the functions/methods on src\n\t * @param {object|function} src source whose functions will be lifted\n\t * @param {function?} combine optional function for customizing the lifting\n\t * process. It is passed dst, the lifted function, and the property name of\n\t * the original function on src.\n\t * @param {(object|function)?} dst option destination host onto which to place lifted\n\t * functions. If not provided, liftAll returns a new object.\n\t * @returns {*} If dst is provided, returns dst with lifted functions as\n\t * properties. If dst not provided, returns a new object with lifted functions.\n\t */\n\tfunction liftAll(src, combine, dst) {\n\t\treturn _liftAll(lift, combine, dst, src);\n\t}\n\n\t/**\n\t * Takes an object that responds to the resolver interface, and returns\n\t * a function that will resolve or reject it depending on how it is called.\n\t *\n\t * @example\n\t *\tfunction callbackTakingFunction(callback) {\n\t *\t\tif(somethingWrongHappened) {\n\t *\t\t\tcallback(error);\n\t *\t\t} else {\n\t *\t\t\tcallback(null, interestingValue);\n\t *\t\t}\n\t *\t}\n\t *\n\t *\tvar when = require('when'), nodefn = require('when/node/function');\n\t *\n\t *\tvar deferred = when.defer();\n\t *\tcallbackTakingFunction(nodefn.createCallback(deferred.resolver));\n\t *\n\t *\tdeferred.promise.then(function(interestingValue) {\n\t *\t\t// Use interestingValue\n\t *\t});\n\t *\n\t * @param {Resolver} resolver that will be 'attached' to the callback\n\t * @returns {Function} a node-style callback function\n\t */\n\tfunction createCallback(resolver) {\n\t\treturn function(err, value) {\n\t\t\tif(err) {\n\t\t\t\tresolver.reject(err);\n\t\t\t} else if(arguments.length > 2) {\n\t\t\t\tresolver.resolve(slice.call(arguments, 1));\n\t\t\t} else {\n\t\t\t\tresolver.resolve(value);\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Attaches a node-style callback to a promise, ensuring the callback is\n\t * called for either fulfillment or rejection. Returns a promise with the same\n\t * state as the passed-in promise.\n\t *\n\t * @example\n\t *\tvar deferred = when.defer();\n\t *\n\t *\tfunction callback(err, value) {\n\t *\t\t// Handle err or use value\n\t *\t}\n\t *\n\t *\tbindCallback(deferred.promise, callback);\n\t *\n\t *\tdeferred.resolve('interesting value');\n\t *\n\t * @param {Promise} promise The promise to be attached to.\n\t * @param {Function} callback The node-style callback to attach.\n\t * @returns {Promise} A promise with the same state as the passed-in promise.\n\t */\n\tfunction bindCallback(promise, callback) {\n\t\tpromise = when(promise);\n\n\t\tif (callback) {\n\t\t\tpromise.then(success, wrapped);\n\t\t}\n\n\t\treturn promise;\n\n\t\tfunction success(value) {\n\t\t\twrapped(null, value);\n\t\t}\n\n\t\tfunction wrapped(err, value) {\n\t\t\tsetTimer(function () {\n\t\t\t\tcallback(err, value);\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Takes a node-style callback and returns new function that accepts a\n\t * promise, calling the original callback when the promise is either\n\t * fulfilled or rejected with the appropriate arguments.\n\t *\n\t * @example\n\t *\tvar deferred = when.defer();\n\t *\n\t *\tfunction callback(err, value) {\n\t *\t\t// Handle err or use value\n\t *\t}\n\t *\n\t *\tvar wrapped = liftCallback(callback);\n\t *\n\t *\t// `wrapped` can now be passed around at will\n\t *\twrapped(deferred.promise);\n\t *\n\t *\tdeferred.resolve('interesting value');\n\t *\n\t * @param {Function} callback The node-style callback to wrap.\n\t * @returns {Function} The lifted, promise-accepting function.\n\t */\n\tfunction liftCallback(callback) {\n\t\treturn function(promise) {\n\t\t\treturn bindCallback(promise, callback);\n\t\t};\n\t}\n});\n\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n\n","/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * parallel.js\n *\n * Run a set of task functions in parallel. All tasks will\n * receive the same args\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar all = when.Promise.all;\n\tvar slice = Array.prototype.slice;\n\n\t/**\n\t * Run array of tasks in parallel\n\t * @param tasks {Array|Promise} array or promiseForArray of task functions\n\t * @param [args] {*} arguments to be passed to all tasks\n\t * @return {Promise} promise for array containing the\n\t * result of each task in the array position corresponding\n\t * to position of the task in the tasks array\n\t */\n\treturn function parallel(tasks /*, args... */) {\n\t\treturn all(slice.call(arguments, 1)).then(function(args) {\n\t\t\treturn when.map(tasks, function(task) {\n\t\t\t\treturn task.apply(void 0, args);\n\t\t\t});\n\t\t});\n\t};\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n","/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * pipeline.js\n *\n * Run a set of task functions in sequence, passing the result\n * of the previous as an argument to the next. Like a shell\n * pipeline, e.g. `cat file.txt | grep 'foo' | sed -e 's/foo/bar/g'\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar all = when.Promise.all;\n\tvar slice = Array.prototype.slice;\n\n\t/**\n\t * Run array of tasks in a pipeline where the next\n\t * tasks receives the result of the previous. The first task\n\t * will receive the initialArgs as its argument list.\n\t * @param tasks {Array|Promise} array or promise for array of task functions\n\t * @param [initialArgs...] {*} arguments to be passed to the first task\n\t * @return {Promise} promise for return value of the final task\n\t */\n\treturn function pipeline(tasks /* initialArgs... */) {\n\t\t// Self-optimizing function to run first task with multiple\n\t\t// args using apply, but subsequence tasks via direct invocation\n\t\tvar runTask = function(args, task) {\n\t\t\trunTask = function(arg, task) {\n\t\t\t\treturn task(arg);\n\t\t\t};\n\n\t\t\treturn task.apply(null, args);\n\t\t};\n\n\t\treturn all(slice.call(arguments, 1)).then(function(args) {\n\t\t\treturn when.reduce(tasks, function(arg, task) {\n\t\t\t\treturn runTask(arg, task);\n\t\t\t}, args);\n\t\t});\n\t};\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n","/** @license MIT License (c) copyright 2012-2013 original author or authors */\n\n/**\n * poll.js\n *\n * Helper that polls until cancelled or for a condition to become true.\n *\n * @author Scott Andrews\n */\n\n(function (define) { 'use strict';\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar attempt = when['try'];\n\tvar cancelable = require('./cancelable');\n\n\t/**\n\t * Periodically execute the task function on the msec delay. The result of\n\t * the task may be verified by watching for a condition to become true. The\n\t * returned deferred is cancellable if the polling needs to be cancelled\n\t * externally before reaching a resolved state.\n\t *\n\t * The next vote is scheduled after the results of the current vote are\n\t * verified and rejected.\n\t *\n\t * Polling may be terminated by the verifier returning a truthy value,\n\t * invoking cancel() on the returned promise, or the task function returning\n\t * a rejected promise.\n\t *\n\t * Usage:\n\t *\n\t * var count = 0;\n\t * function doSomething() { return count++ }\n\t *\n\t * // poll until cancelled\n\t * var p = poll(doSomething, 1000);\n\t * ...\n\t * p.cancel();\n\t *\n\t * // poll until condition is met\n\t * poll(doSomething, 1000, function(result) { return result > 10 })\n\t * .then(function(result) { assert result == 10 });\n\t *\n\t * // delay first vote\n\t * poll(doSomething, 1000, anyFunc, true);\n\t *\n\t * @param task {Function} function that is executed after every timeout\n\t * @param interval {number|Function} timeout in milliseconds\n\t * @param [verifier] {Function} function to evaluate the result of the vote.\n\t * May return a {Promise} or a {Boolean}. Rejecting the promise or a\n\t * falsey value will schedule the next vote.\n\t * @param [delayInitialTask] {boolean} if truthy, the first vote is scheduled\n\t * instead of immediate\n\t *\n\t * @returns {Promise}\n\t */\n\treturn function poll(task, interval, verifier, delayInitialTask) {\n\t\tvar deferred, canceled, reject;\n\n\t\tcanceled = false;\n\t\tdeferred = cancelable(when.defer(), function () { canceled = true; });\n\t\treject = deferred.reject;\n\n\t\tverifier = verifier || function () { return false; };\n\n\t\tif (typeof interval !== 'function') {\n\t\t\tinterval = (function (interval) {\n\t\t\t\treturn function () { return when().delay(interval); };\n\t\t\t})(interval);\n\t\t}\n\n\t\tfunction certify(result) {\n\t\t\tdeferred.resolve(result);\n\t\t}\n\n\t\tfunction schedule(result) {\n\t\t\tattempt(interval).then(vote, reject);\n\t\t\tif (result !== void 0) {\n\t\t\t\tdeferred.notify(result);\n\t\t\t}\n\t\t}\n\n\t\tfunction vote() {\n\t\t\tif (canceled) { return; }\n\t\t\twhen(task(),\n\t\t\t\tfunction (result) {\n\t\t\t\t\twhen(verifier(result),\n\t\t\t\t\t\tfunction (verification) {\n\t\t\t\t\t\t\treturn verification ? certify(result) : schedule(result);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction () { schedule(result); }\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\treject\n\t\t\t);\n\t\t}\n\n\t\tif (delayInitialTask) {\n\t\t\tschedule();\n\t\t} else {\n\t\t\t// if task() is blocking, vote will also block\n\t\t\tvote();\n\t\t}\n\n\t\t// make the promise cancelable\n\t\tdeferred.promise = Object.create(deferred.promise);\n\t\tdeferred.promise.cancel = deferred.cancel;\n\n\t\treturn deferred.promise;\n\t};\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n","/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * sequence.js\n *\n * Run a set of task functions in sequence. All tasks will\n * receive the same args.\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar all = when.Promise.all;\n\tvar slice = Array.prototype.slice;\n\n\t/**\n\t * Run array of tasks in sequence with no overlap\n\t * @param tasks {Array|Promise} array or promiseForArray of task functions\n\t * @param [args] {*} arguments to be passed to all tasks\n\t * @return {Promise} promise for an array containing\n\t * the result of each task in the array position corresponding\n\t * to position of the task in the tasks array\n\t */\n\treturn function sequence(tasks /*, args... */) {\n\t\tvar results = [];\n\n\t\treturn all(slice.call(arguments, 1)).then(function(args) {\n\t\t\treturn when.reduce(tasks, function(results, task) {\n\t\t\t\treturn when(task.apply(void 0, args), addResult);\n\t\t\t}, results);\n\t\t});\n\n\t\tfunction addResult(result) {\n\t\t\tresults.push(result);\n\t\t\treturn results;\n\t\t}\n\t};\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n","/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * timeout.js\n *\n * Helper that returns a promise that rejects after a specified timeout,\n * if not explicitly resolved or rejected before that.\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\n /**\n\t * @deprecated Use when(trigger).timeout(ms)\n */\n return function timeout(msec, trigger) {\n\t\treturn when(trigger).timeout(msec);\n };\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n\n/**\n * Promises/A+ and when() implementation\n * when is part of the cujoJS family of libraries (http://cujojs.com/)\n * @author Brian Cavalier\n * @author John Hann\n */\n(function(define) { 'use strict';\ndefine(function (require) {\n\n\tvar timed = require('./lib/decorators/timed');\n\tvar array = require('./lib/decorators/array');\n\tvar flow = require('./lib/decorators/flow');\n\tvar fold = require('./lib/decorators/fold');\n\tvar inspect = require('./lib/decorators/inspect');\n\tvar generate = require('./lib/decorators/iterate');\n\tvar progress = require('./lib/decorators/progress');\n\tvar withThis = require('./lib/decorators/with');\n\tvar unhandledRejection = require('./lib/decorators/unhandledRejection');\n\tvar TimeoutError = require('./lib/TimeoutError');\n\n\tvar Promise = [array, flow, fold, generate, progress,\n\t\tinspect, withThis, timed, unhandledRejection]\n\t\t.reduce(function(Promise, feature) {\n\t\t\treturn feature(Promise);\n\t\t}, require('./lib/Promise'));\n\n\tvar apply = require('./lib/apply')(Promise);\n\n\t// Public API\n\n\twhen.promise = promise; // Create a pending promise\n\twhen.resolve = Promise.resolve; // Create a resolved promise\n\twhen.reject = Promise.reject; // Create a rejected promise\n\n\twhen.lift = lift; // lift a function to return promises\n\twhen['try'] = attempt; // call a function and return a promise\n\twhen.attempt = attempt; // alias for when.try\n\n\twhen.iterate = Promise.iterate; // DEPRECATED (use cujojs/most streams) Generate a stream of promises\n\twhen.unfold = Promise.unfold; // DEPRECATED (use cujojs/most streams) Generate a stream of promises\n\n\twhen.join = join; // Join 2 or more promises\n\n\twhen.all = all; // Resolve a list of promises\n\twhen.settle = settle; // Settle a list of promises\n\n\twhen.any = lift(Promise.any); // One-winner race\n\twhen.some = lift(Promise.some); // Multi-winner race\n\twhen.race = lift(Promise.race); // First-to-settle race\n\n\twhen.map = map; // Array.map() for promises\n\twhen.filter = filter; // Array.filter() for promises\n\twhen.reduce = lift(Promise.reduce); // Array.reduce() for promises\n\twhen.reduceRight = lift(Promise.reduceRight); // Array.reduceRight() for promises\n\n\twhen.isPromiseLike = isPromiseLike; // Is something promise-like, aka thenable\n\n\twhen.Promise = Promise; // Promise constructor\n\twhen.defer = defer; // Create a {promise, resolve, reject} tuple\n\n\t// Error types\n\n\twhen.TimeoutError = TimeoutError;\n\n\t/**\n\t * Get a trusted promise for x, or by transforming x with onFulfilled\n\t *\n\t * @param {*} x\n\t * @param {function?} onFulfilled callback to be called when x is\n\t * successfully fulfilled. If promiseOrValue is an immediate value, callback\n\t * will be invoked immediately.\n\t * @param {function?} onRejected callback to be called when x is\n\t * rejected.\n\t * @param {function?} onProgress callback to be called when progress updates\n\t * are issued for x. @deprecated\n\t * @returns {Promise} a new promise that will fulfill with the return\n\t * value of callback or errback or the completion value of promiseOrValue if\n\t * callback and/or errback is not supplied.\n\t */\n\tfunction when(x, onFulfilled, onRejected, onProgress) {\n\t\tvar p = Promise.resolve(x);\n\t\tif (arguments.length < 2) {\n\t\t\treturn p;\n\t\t}\n\n\t\treturn p.then(onFulfilled, onRejected, onProgress);\n\t}\n\n\t/**\n\t * Creates a new promise whose fate is determined by resolver.\n\t * @param {function} resolver function(resolve, reject, notify)\n\t * @returns {Promise} promise whose fate is determine by resolver\n\t */\n\tfunction promise(resolver) {\n\t\treturn new Promise(resolver);\n\t}\n\n\t/**\n\t * Lift the supplied function, creating a version of f that returns\n\t * promises, and accepts promises as arguments.\n\t * @param {function} f\n\t * @returns {Function} version of f that returns promises\n\t */\n\tfunction lift(f) {\n\t\treturn function() {\n\t\t\tfor(var i=0, l=arguments.length, a=new Array(l); i<l; ++i) {\n\t\t\t\ta[i] = arguments[i];\n\t\t\t}\n\t\t\treturn apply(f, this, a);\n\t\t};\n\t}\n\n\t/**\n\t * Call f in a future turn, with the supplied args, and return a promise\n\t * for the result.\n\t * @param {function} f\n\t * @returns {Promise}\n\t */\n\tfunction attempt(f /*, args... */) {\n\t\t/*jshint validthis:true */\n\t\tfor(var i=0, l=arguments.length-1, a=new Array(l); i<l; ++i) {\n\t\t\ta[i] = arguments[i+1];\n\t\t}\n\t\treturn apply(f, this, a);\n\t}\n\n\t/**\n\t * Creates a {promise, resolver} pair, either or both of which\n\t * may be given out safely to consumers.\n\t * @return {{promise: Promise, resolve: function, reject: function, notify: function}}\n\t */\n\tfunction defer() {\n\t\treturn new Deferred();\n\t}\n\n\tfunction Deferred() {\n\t\tvar p = Promise._defer();\n\n\t\tfunction resolve(x) { p._handler.resolve(x); }\n\t\tfunction reject(x) { p._handler.reject(x); }\n\t\tfunction notify(x) { p._handler.notify(x); }\n\n\t\tthis.promise = p;\n\t\tthis.resolve = resolve;\n\t\tthis.reject = reject;\n\t\tthis.notify = notify;\n\t\tthis.resolver = { resolve: resolve, reject: reject, notify: notify };\n\t}\n\n\t/**\n\t * Determines if x is promise-like, i.e. a thenable object\n\t * NOTE: Will return true for *any thenable object*, and isn't truly\n\t * safe, since it may attempt to access the `then` property of x (i.e.\n\t * clever/malicious getters may do weird things)\n\t * @param {*} x anything\n\t * @returns {boolean} true if x is promise-like\n\t */\n\tfunction isPromiseLike(x) {\n\t\treturn x && typeof x.then === 'function';\n\t}\n\n\t/**\n\t * Return a promise that will resolve only once all the supplied arguments\n\t * have resolved. The resolution value of the returned promise will be an array\n\t * containing the resolution values of each of the arguments.\n\t * @param {...*} arguments may be a mix of promises and values\n\t * @returns {Promise}\n\t */\n\tfunction join(/* ...promises */) {\n\t\treturn Promise.all(arguments);\n\t}\n\n\t/**\n\t * Return a promise that will fulfill once all input promises have\n\t * fulfilled, or reject when any one input promise rejects.\n\t * @param {array|Promise} promises array (or promise for an array) of promises\n\t * @returns {Promise}\n\t */\n\tfunction all(promises) {\n\t\treturn when(promises, Promise.all);\n\t}\n\n\t/**\n\t * Return a promise that will always fulfill with an array containing\n\t * the outcome states of all input promises. The returned promise\n\t * will only reject if `promises` itself is a rejected promise.\n\t * @param {array|Promise} promises array (or promise for an array) of promises\n\t * @returns {Promise} promise for array of settled state descriptors\n\t */\n\tfunction settle(promises) {\n\t\treturn when(promises, Promise.settle);\n\t}\n\n\t/**\n\t * Promise-aware array map function, similar to `Array.prototype.map()`,\n\t * but input array may contain promises or values.\n\t * @param {Array|Promise} promises array of anything, may contain promises and values\n\t * @param {function(x:*, index:Number):*} mapFunc map function which may\n\t * return a promise or value\n\t * @returns {Promise} promise that will fulfill with an array of mapped values\n\t * or reject if any input promise rejects.\n\t */\n\tfunction map(promises, mapFunc) {\n\t\treturn when(promises, function(promises) {\n\t\t\treturn Promise.map(promises, mapFunc);\n\t\t});\n\t}\n\n\t/**\n\t * Filter the provided array of promises using the provided predicate. Input may\n\t * contain promises and values\n\t * @param {Array|Promise} promises array of promises and values\n\t * @param {function(x:*, index:Number):boolean} predicate filtering predicate.\n\t * Must return truthy (or promise for truthy) for items to retain.\n\t * @returns {Promise} promise that will fulfill with an array containing all items\n\t * for which predicate returned truthy.\n\t */\n\tfunction filter(promises, predicate) {\n\t\treturn when(promises, function(promises) {\n\t\t\treturn Promise.filter(promises, predicate);\n\t\t});\n\t}\n\n\treturn when;\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n","var when = module.exports = require('../when');\n\nwhen.callbacks = require('../callbacks');\nwhen.cancelable = require('../cancelable');\nwhen.delay = require('../delay');\nwhen.fn = require('../function');\nwhen.guard = require('../guard');\nwhen.keys = require('../keys');\nwhen.nodefn = when.node = require('../node');\nwhen.parallel = require('../parallel');\nwhen.pipeline = require('../pipeline');\nwhen.poll = require('../poll');\nwhen.sequence = require('../sequence');\nwhen.timeout = require('../timeout');\n","/** @license MIT License (c) copyright 2013-2014 original author or authors */\n\n/**\n * Collection of helper functions for interacting with 'traditional',\n * callback-taking functions using a promise interface.\n *\n * @author Renato Zannon\n * @contributor Brian Cavalier\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar Promise = when.Promise;\n\tvar _liftAll = require('./lib/liftAll');\n\tvar slice = Array.prototype.slice;\n\n\tvar makeApply = require('./lib/apply');\n\tvar _apply = makeApply(Promise, dispatch);\n\n\treturn {\n\t\tlift: lift,\n\t\tliftAll: liftAll,\n\t\tapply: apply,\n\t\tcall: call,\n\t\tpromisify: promisify\n\t};\n\n\t/**\n\t * Takes a `traditional` callback-taking function and returns a promise for its\n\t * result, accepting an optional array of arguments (that might be values or\n\t * promises). It assumes that the function takes its callback and errback as\n\t * the last two arguments. The resolution of the promise depends on whether the\n\t * function will call its callback or its errback.\n\t *\n\t * @example\n\t * var domIsLoaded = callbacks.apply($);\n\t * domIsLoaded.then(function() {\n\t *\t\tdoMyDomStuff();\n\t *\t});\n\t *\n\t * @example\n\t * function existingAjaxyFunction(url, callback, errback) {\n\t *\t\t// Complex logic you'd rather not change\n\t *\t}\n\t *\n\t * var promise = callbacks.apply(existingAjaxyFunction, [\"/movies.json\"]);\n\t *\n\t * promise.then(function(movies) {\n\t *\t\t// Work with movies\n\t *\t}, function(reason) {\n\t *\t\t// Handle error\n\t *\t});\n\t *\n\t * @param {function} asyncFunction function to be called\n\t * @param {Array} [extraAsyncArgs] array of arguments to asyncFunction\n\t * @returns {Promise} promise for the callback value of asyncFunction\n\t */\n\tfunction apply(asyncFunction, extraAsyncArgs) {\n\t\treturn _apply(asyncFunction, this, extraAsyncArgs || []);\n\t}\n\n\t/**\n\t * Apply helper that allows specifying thisArg\n\t * @private\n\t */\n\tfunction dispatch(f, thisArg, args, h) {\n\t\targs.push(alwaysUnary(h.resolve, h), alwaysUnary(h.reject, h));\n\t\ttryCatchResolve(f, thisArg, args, h);\n\t}\n\n\tfunction tryCatchResolve(f, thisArg, args, resolver) {\n\t\ttry {\n\t\t\tf.apply(thisArg, args);\n\t\t} catch(e) {\n\t\t\tresolver.reject(e);\n\t\t}\n\t}\n\n\t/**\n\t * Works as `callbacks.apply` does, with the difference that the arguments to\n\t * the function are passed individually, instead of as an array.\n\t *\n\t * @example\n\t * function sumInFiveSeconds(a, b, callback) {\n\t *\t\tsetTimeout(function() {\n\t *\t\t\tcallback(a + b);\n\t *\t\t}, 5000);\n\t *\t}\n\t *\n\t * var sumPromise = callbacks.call(sumInFiveSeconds, 5, 10);\n\t *\n\t * // Logs '15' 5 seconds later\n\t * sumPromise.then(console.log);\n\t *\n\t * @param {function} asyncFunction function to be called\n\t * @param {...*} args arguments that will be forwarded to the function\n\t * @returns {Promise} promise for the callback value of asyncFunction\n\t */\n\tfunction call(asyncFunction/*, arg1, arg2...*/) {\n\t\treturn _apply(asyncFunction, this, slice.call(arguments, 1));\n\t}\n\n\t/**\n\t * Takes a 'traditional' callback/errback-taking function and returns a function\n\t * that returns a promise instead. The resolution/rejection of the promise\n\t * depends on whether the original function will call its callback or its\n\t * errback.\n\t *\n\t * If additional arguments are passed to the `lift` call, they will be prepended\n\t * on the calls to the original function, much like `Function.prototype.bind`.\n\t *\n\t * The resulting function is also \"promise-aware\", in the sense that, if given\n\t * promises as arguments, it will wait for their resolution before executing.\n\t *\n\t * @example\n\t * function traditionalAjax(method, url, callback, errback) {\n\t *\t\tvar xhr = new XMLHttpRequest();\n\t *\t\txhr.open(method, url);\n\t *\n\t *\t\txhr.onload = callback;\n\t *\t\txhr.onerror = errback;\n\t *\n\t *\t\txhr.send();\n\t *\t}\n\t *\n\t * var promiseAjax = callbacks.lift(traditionalAjax);\n\t * promiseAjax(\"GET\", \"/movies.json\").then(console.log, console.error);\n\t *\n\t * var promiseAjaxGet = callbacks.lift(traditionalAjax, \"GET\");\n\t * promiseAjaxGet(\"/movies.json\").then(console.log, console.error);\n\t *\n\t * @param {Function} f traditional async function to be decorated\n\t * @param {...*} [args] arguments to be prepended for the new function @deprecated\n\t * @returns {Function} a promise-returning function\n\t */\n\tfunction lift(f/*, args...*/) {\n\t\tvar args = arguments.length > 1 ? slice.call(arguments, 1) : [];\n\t\treturn function() {\n\t\t\treturn _apply(f, this, args.concat(slice.call(arguments)));\n\t\t};\n\t}\n\n\t/**\n\t * Lift all the functions/methods on src\n\t * @param {object|function} src source whose functions will be lifted\n\t * @param {function?} combine optional function for customizing the lifting\n\t * process. It is passed dst, the lifted function, and the property name of\n\t * the original function on src.\n\t * @param {(object|function)?} dst option destination host onto which to place lifted\n\t * functions. If not provided, liftAll returns a new object.\n\t * @returns {*} If dst is provided, returns dst with lifted functions as\n\t * properties. If dst not provided, returns a new object with lifted functions.\n\t */\n\tfunction liftAll(src, combine, dst) {\n\t\treturn _liftAll(lift, combine, dst, src);\n\t}\n\n\t/**\n\t * `promisify` is a version of `lift` that allows fine-grained control over the\n\t * arguments that passed to the underlying function. It is intended to handle\n\t * functions that don't follow the common callback and errback positions.\n\t *\n\t * The control is done by passing an object whose 'callback' and/or 'errback'\n\t * keys, whose values are the corresponding 0-based indexes of the arguments on\n\t * the function. Negative values are interpreted as being relative to the end\n\t * of the arguments array.\n\t *\n\t * If arguments are given on the call to the 'promisified' function, they are\n\t * intermingled with the callback and errback. If a promise is given among them,\n\t * the execution of the function will only occur after its resolution.\n\t *\n\t * @example\n\t * var delay = callbacks.promisify(setTimeout, {\n\t *\t\tcallback: 0\n\t *\t});\n\t *\n\t * delay(100).then(function() {\n\t *\t\tconsole.log(\"This happens 100ms afterwards\");\n\t *\t});\n\t *\n\t * @example\n\t * function callbackAsLast(errback, followsStandards, callback) {\n\t *\t\tif(followsStandards) {\n\t *\t\t\tcallback(\"well done!\");\n\t *\t\t} else {\n\t *\t\t\terrback(\"some programmers just want to watch the world burn\");\n\t *\t\t}\n\t *\t}\n\t *\n\t * var promisified = callbacks.promisify(callbackAsLast, {\n\t *\t\tcallback: -1,\n\t *\t\terrback: 0,\n\t *\t});\n\t *\n\t * promisified(true).then(console.log, console.error);\n\t * promisified(false).then(console.log, console.error);\n\t *\n\t * @param {Function} asyncFunction traditional function to be decorated\n\t * @param {object} positions\n\t * @param {number} [positions.callback] index at which asyncFunction expects to\n\t * receive a success callback\n\t * @param {number} [positions.errback] index at which asyncFunction expects to\n\t * receive an error callback\n\t * @returns {function} promisified function that accepts\n\t *\n\t * @deprecated\n\t */\n\tfunction promisify(asyncFunction, positions) {\n\n\t\treturn function() {\n\t\t\tvar thisArg = this;\n\t\t\treturn Promise.all(arguments).then(function(args) {\n\t\t\t\tvar p = Promise._defer();\n\n\t\t\t\tvar callbackPos, errbackPos;\n\n\t\t\t\tif(typeof positions.callback === 'number') {\n\t\t\t\t\tcallbackPos = normalizePosition(args, positions.callback);\n\t\t\t\t}\n\n\t\t\t\tif(typeof positions.errback === 'number') {\n\t\t\t\t\terrbackPos = normalizePosition(args, positions.errback);\n\t\t\t\t}\n\n\t\t\t\tif(errbackPos < callbackPos) {\n\t\t\t\t\tinsertCallback(args, errbackPos, p._handler.reject, p._handler);\n\t\t\t\t\tinsertCallback(args, callbackPos, p._handler.resolve, p._handler);\n\t\t\t\t} else {\n\t\t\t\t\tinsertCallback(args, callbackPos, p._handler.resolve, p._handler);\n\t\t\t\t\tinsertCallback(args, errbackPos, p._handler.reject, p._handler);\n\t\t\t\t}\n\n\t\t\t\tasyncFunction.apply(thisArg, args);\n\n\t\t\t\treturn p;\n\t\t\t});\n\t\t};\n\t}\n\n\tfunction normalizePosition(args, pos) {\n\t\treturn pos < 0 ? (args.length + pos + 2) : pos;\n\t}\n\n\tfunction insertCallback(args, pos, callback, thisArg) {\n\t\tif(typeof pos === 'number') {\n\t\t\targs.splice(pos, 0, alwaysUnary(callback, thisArg));\n\t\t}\n\t}\n\n\tfunction alwaysUnary(fn, thisArg) {\n\t\treturn function() {\n\t\t\tif (arguments.length > 1) {\n\t\t\t\tfn.call(thisArg, slice.call(arguments));\n\t\t\t} else {\n\t\t\t\tfn.apply(thisArg, arguments);\n\t\t\t}\n\t\t};\n\t}\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n","/** @license MIT License (c) copyright B Cavalier & J Hann */\n\n/**\n * cancelable.js\n * @deprecated\n *\n * Decorator that makes a deferred \"cancelable\". It adds a cancel() method that\n * will call a special cancel handler function and then reject the deferred. The\n * cancel handler can be used to do resource cleanup, or anything else that should\n * be done before any other rejection handlers are executed.\n *\n * Usage:\n *\n * var cancelableDeferred = cancelable(when.defer(), myCancelHandler);\n *\n * @author brian@hovercraftstudios.com\n */\n\n(function(define) {\ndefine(function() {\n\n /**\n * Makes deferred cancelable, adding a cancel() method.\n\t * @deprecated\n *\n * @param deferred {Deferred} the {@link Deferred} to make cancelable\n * @param canceler {Function} cancel handler function to execute when this deferred\n\t * is canceled. This is guaranteed to run before all other rejection handlers.\n\t * The canceler will NOT be executed if the deferred is rejected in the standard\n\t * way, i.e. deferred.reject(). It ONLY executes if the deferred is canceled,\n\t * i.e. deferred.cancel()\n *\n * @returns deferred, with an added cancel() method.\n */\n return function(deferred, canceler) {\n // Add a cancel method to the deferred to reject the delegate\n // with the special canceled indicator.\n deferred.cancel = function() {\n\t\t\ttry {\n\t\t\t\tdeferred.reject(canceler(deferred));\n\t\t\t} catch(e) {\n\t\t\t\tdeferred.reject(e);\n\t\t\t}\n\n\t\t\treturn deferred.promise;\n };\n\n return deferred;\n };\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(); });\n\n\n","/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * delay.js\n *\n * Helper that returns a promise that resolves after a delay.\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\n /**\n\t * @deprecated Use when(value).delay(ms)\n */\n return function delay(msec, value) {\n\t\treturn when(value).delay(msec);\n };\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n","/** @license MIT License (c) copyright 2013-2014 original author or authors */\n\n/**\n * Collection of helper functions for wrapping and executing 'traditional'\n * synchronous functions in a promise interface.\n *\n * @author Brian Cavalier\n * @contributor Renato Zannon\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar attempt = when['try'];\n\tvar _liftAll = require('./lib/liftAll');\n\tvar _apply = require('./lib/apply')(when.Promise);\n\tvar slice = Array.prototype.slice;\n\n\treturn {\n\t\tlift: lift,\n\t\tliftAll: liftAll,\n\t\tcall: attempt,\n\t\tapply: apply,\n\t\tcompose: compose\n\t};\n\n\t/**\n\t * Takes a function and an optional array of arguments (that might be promises),\n\t * and calls the function. The return value is a promise whose resolution\n\t * depends on the value returned by the function.\n\t * @param {function} f function to be called\n\t * @param {Array} [args] array of arguments to func\n\t * @returns {Promise} promise for the return value of func\n\t */\n\tfunction apply(f, args) {\n\t\t// slice args just in case the caller passed an Arguments instance\n\t\treturn _apply(f, this, args == null ? [] : slice.call(args));\n\t}\n\n\t/**\n\t * Takes a 'regular' function and returns a version of that function that\n\t * returns a promise instead of a plain value, and handles thrown errors by\n\t * returning a rejected promise. Also accepts a list of arguments to be\n\t * prepended to the new function, as does Function.prototype.bind.\n\t *\n\t * The resulting function is promise-aware, in the sense that it accepts\n\t * promise arguments, and waits for their resolution.\n\t * @param {Function} f function to be bound\n\t * @param {...*} [args] arguments to be prepended for the new function @deprecated\n\t * @returns {Function} a promise-returning function\n\t */\n\tfunction lift(f /*, args... */) {\n\t\tvar args = arguments.length > 1 ? slice.call(arguments, 1) : [];\n\t\treturn function() {\n\t\t\treturn _apply(f, this, args.concat(slice.call(arguments)));\n\t\t};\n\t}\n\n\t/**\n\t * Lift all the functions/methods on src\n\t * @param {object|function} src source whose functions will be lifted\n\t * @param {function?} combine optional function for customizing the lifting\n\t * process. It is passed dst, the lifted function, and the property name of\n\t * the original function on src.\n\t * @param {(object|function)?} dst option destination host onto which to place lifted\n\t * functions. If not provided, liftAll returns a new object.\n\t * @returns {*} If dst is provided, returns dst with lifted functions as\n\t * properties. If dst not provided, returns a new object with lifted functions.\n\t */\n\tfunction liftAll(src, combine, dst) {\n\t\treturn _liftAll(lift, combine, dst, src);\n\t}\n\n\t/**\n\t * Composes multiple functions by piping their return values. It is\n\t * transparent to whether the functions return 'regular' values or promises:\n\t * the piped argument is always a resolved value. If one of the functions\n\t * throws or returns a rejected promise, the composed promise will be also\n\t * rejected.\n\t *\n\t * The arguments (or promises to arguments) given to the returned function (if\n\t * any), are passed directly to the first function on the 'pipeline'.\n\t * @param {Function} f the function to which the arguments will be passed\n\t * @param {...Function} [funcs] functions that will be composed, in order\n\t * @returns {Function} a promise-returning composition of the functions\n\t */\n\tfunction compose(f /*, funcs... */) {\n\t\tvar funcs = slice.call(arguments, 1);\n\n\t\treturn function() {\n\t\t\tvar thisArg = this;\n\t\t\tvar args = slice.call(arguments);\n\t\t\tvar firstPromise = attempt.apply(thisArg, [f].concat(args));\n\n\t\t\treturn when.reduce(funcs, function(arg, func) {\n\t\t\t\treturn func.call(thisArg, arg);\n\t\t\t}, firstPromise);\n\t\t};\n\t}\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n","/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * Generalized promise concurrency guard\n * Adapted from original concept by Sakari Jokinen (Rocket Pack, Ltd.)\n *\n * @author Brian Cavalier\n * @author John Hann\n * @contributor Sakari Jokinen\n */\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar slice = Array.prototype.slice;\n\n\tguard.n = n;\n\n\treturn guard;\n\n\t/**\n\t * Creates a guarded version of f that can only be entered when the supplied\n\t * condition allows.\n\t * @param {function} condition represents a critical section that may only\n\t * be entered when allowed by the condition\n\t * @param {function} f function to guard\n\t * @returns {function} guarded version of f\n\t */\n\tfunction guard(condition, f) {\n\t\treturn function() {\n\t\t\tvar args = slice.call(arguments);\n\n\t\t\treturn when(condition()).withThis(this).then(function(exit) {\n\t\t\t\treturn when(f.apply(this, args))['finally'](exit);\n\t\t\t});\n\t\t};\n\t}\n\n\t/**\n\t * Creates a condition that allows only n simultaneous executions\n\t * of a guarded function\n\t * @param {number} allowed number of allowed simultaneous executions\n\t * @returns {function} condition function which returns a promise that\n\t * fulfills when the critical section may be entered. The fulfillment\n\t * value is a function (\"notifyExit\") that must be called when the critical\n\t * section has been exited.\n\t */\n\tfunction n(allowed) {\n\t\tvar count = 0;\n\t\tvar waiting = [];\n\n\t\treturn function enter() {\n\t\t\treturn when.promise(function(resolve) {\n\t\t\t\tif(count < allowed) {\n\t\t\t\t\tresolve(exit);\n\t\t\t\t} else {\n\t\t\t\t\twaiting.push(resolve);\n\t\t\t\t}\n\t\t\t\tcount += 1;\n\t\t\t});\n\t\t};\n\n\t\tfunction exit() {\n\t\t\tcount = Math.max(count - 1, 0);\n\t\t\tif(waiting.length > 0) {\n\t\t\t\twaiting.shift()(exit);\n\t\t\t}\n\t\t}\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n","/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * Licensed under the MIT License at:\n * http://www.opensource.org/licenses/mit-license.php\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar Promise = when.Promise;\n\tvar toPromise = when.resolve;\n\n\treturn {\n\t\tall: when.lift(all),\n\t\tmap: map,\n\t\tsettle: settle\n\t};\n\n\t/**\n\t * Resolve all the key-value pairs in the supplied object or promise\n\t * for an object.\n\t * @param {Promise|object} object or promise for object whose key-value pairs\n\t * will be resolved\n\t * @returns {Promise} promise for an object with the fully resolved key-value pairs\n\t */\n\tfunction all(object) {\n\t\tvar p = Promise._defer();\n\t\tvar resolver = Promise._handler(p);\n\n\t\tvar results = {};\n\t\tvar keys = Object.keys(object);\n\t\tvar pending = keys.length;\n\n\t\tfor(var i=0, k; i<keys.length; ++i) {\n\t\t\tk = keys[i];\n\t\t\tPromise._handler(object[k]).fold(settleKey, k, results, resolver);\n\t\t}\n\n\t\tif(pending === 0) {\n\t\t\tresolver.resolve(results);\n\t\t}\n\n\t\treturn p;\n\n\t\tfunction settleKey(k, x, resolver) {\n\t\t\t/*jshint validthis:true*/\n\t\t\tthis[k] = x;\n\t\t\tif(--pending === 0) {\n\t\t\t\tresolver.resolve(results);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Map values in the supplied object's keys\n\t * @param {Promise|object} object or promise for object whose key-value pairs\n\t * will be reduced\n\t * @param {function(value:*, key:String):*} f mapping function which may\n\t * return either a promise or a value\n\t * @returns {Promise} promise for an object with the mapped and fully\n\t * resolved key-value pairs\n\t */\n\tfunction map(object, f) {\n\t\treturn toPromise(object).then(function(object) {\n\t\t\treturn all(Object.keys(object).reduce(function(o, k) {\n\t\t\t\to[k] = toPromise(object[k]).fold(mapWithKey, k);\n\t\t\t\treturn o;\n\t\t\t}, {}));\n\t\t});\n\n\t\tfunction mapWithKey(k, x) {\n\t\t\treturn f(x, k);\n\t\t}\n\t}\n\n\t/**\n\t * Resolve all key-value pairs in the supplied object and return a promise\n\t * that will always fulfill with the outcome states of all input promises.\n\t * @param {object} object whose key-value pairs will be settled\n\t * @returns {Promise} promise for an object with the mapped and fully\n\t * settled key-value pairs\n\t */\n\tfunction settle(object) {\n\t\tvar keys = Object.keys(object);\n\t\tvar results = {};\n\n\t\tif(keys.length === 0) {\n\t\t\treturn toPromise(results);\n\t\t}\n\n\t\tvar p = Promise._defer();\n\t\tvar resolver = Promise._handler(p);\n\t\tvar promises = keys.map(function(k) { return object[k]; });\n\n\t\twhen.settle(promises).then(function(states) {\n\t\t\tpopulateResults(keys, states, results, resolver);\n\t\t});\n\n\t\treturn p;\n\t}\n\n\tfunction populateResults(keys, states, results, resolver) {\n\t\tfor(var i=0; i<keys.length; i++) {\n\t\t\tresults[keys[i]] = states[i];\n\t\t}\n\t\tresolver.resolve(results);\n\t}\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function (require) {\n\n\tvar makePromise = require('./makePromise');\n\tvar Scheduler = require('./Scheduler');\n\tvar async = require('./env').asap;\n\n\treturn makePromise({\n\t\tscheduler: new Scheduler(async)\n\t});\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\t// Credit to Twisol (https://github.com/Twisol) for suggesting\n\t// this type of extensible queue + trampoline approach for next-tick conflation.\n\n\t/**\n\t * Async task scheduler\n\t * @param {function} async function to schedule a single async function\n\t * @constructor\n\t */\n\tfunction Scheduler(async) {\n\t\tthis._async = async;\n\t\tthis._running = false;\n\n\t\tthis._queue = this;\n\t\tthis._queueLen = 0;\n\t\tthis._afterQueue = {};\n\t\tthis._afterQueueLen = 0;\n\n\t\tvar self = this;\n\t\tthis.drain = function() {\n\t\t\tself._drain();\n\t\t};\n\t}\n\n\t/**\n\t * Enqueue a task\n\t * @param {{ run:function }} task\n\t */\n\tScheduler.prototype.enqueue = function(task) {\n\t\tthis._queue[this._queueLen++] = task;\n\t\tthis.run();\n\t};\n\n\t/**\n\t * Enqueue a task to run after the main task queue\n\t * @param {{ run:function }} task\n\t */\n\tScheduler.prototype.afterQueue = function(task) {\n\t\tthis._afterQueue[this._afterQueueLen++] = task;\n\t\tthis.run();\n\t};\n\n\tScheduler.prototype.run = function() {\n\t\tif (!this._running) {\n\t\t\tthis._running = true;\n\t\t\tthis._async(this.drain);\n\t\t}\n\t};\n\n\t/**\n\t * Drain the handler queue entirely, and then the after queue\n\t */\n\tScheduler.prototype._drain = function() {\n\t\tvar i = 0;\n\t\tfor (; i < this._queueLen; ++i) {\n\t\t\tthis._queue[i].run();\n\t\t\tthis._queue[i] = void 0;\n\t\t}\n\n\t\tthis._queueLen = 0;\n\t\tthis._running = false;\n\n\t\tfor (i = 0; i < this._afterQueueLen; ++i) {\n\t\t\tthis._afterQueue[i].run();\n\t\t\tthis._afterQueue[i] = void 0;\n\t\t}\n\n\t\tthis._afterQueueLen = 0;\n\t};\n\n\treturn Scheduler;\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\t/**\n\t * Custom error type for promises rejected by promise.timeout\n\t * @param {string} message\n\t * @constructor\n\t */\n\tfunction TimeoutError (message) {\n\t\tError.call(this);\n\t\tthis.message = message;\n\t\tthis.name = TimeoutError.name;\n\t\tif (typeof Error.captureStackTrace === 'function') {\n\t\t\tError.captureStackTrace(this, TimeoutError);\n\t\t}\n\t}\n\n\tTimeoutError.prototype = Object.create(Error.prototype);\n\tTimeoutError.prototype.constructor = TimeoutError;\n\n\treturn TimeoutError;\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\tmakeApply.tryCatchResolve = tryCatchResolve;\n\n\treturn makeApply;\n\n\tfunction makeApply(Promise, call) {\n\t\tif(arguments.length < 2) {\n\t\t\tcall = tryCatchResolve;\n\t\t}\n\n\t\treturn apply;\n\n\t\tfunction apply(f, thisArg, args) {\n\t\t\tvar p = Promise._defer();\n\t\t\tvar l = args.length;\n\t\t\tvar params = new Array(l);\n\t\t\tcallAndResolve({ f:f, thisArg:thisArg, args:args, params:params, i:l-1, call:call }, p._handler);\n\n\t\t\treturn p;\n\t\t}\n\n\t\tfunction callAndResolve(c, h) {\n\t\t\tif(c.i < 0) {\n\t\t\t\treturn call(c.f, c.thisArg, c.params, h);\n\t\t\t}\n\n\t\t\tvar handler = Promise._handler(c.args[c.i]);\n\t\t\thandler.fold(callAndResolveNext, c, void 0, h);\n\t\t}\n\n\t\tfunction callAndResolveNext(c, x, h) {\n\t\t\tc.params[c.i] = x;\n\t\t\tc.i -= 1;\n\t\t\tcallAndResolve(c, h);\n\t\t}\n\t}\n\n\tfunction tryCatchResolve(f, thisArg, args, resolver) {\n\t\ttry {\n\t\t\tresolver.resolve(f.apply(thisArg, args));\n\t\t} catch(e) {\n\t\t\tresolver.reject(e);\n\t\t}\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n\n\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar state = require('../state');\n\tvar applier = require('../apply');\n\n\treturn function array(Promise) {\n\n\t\tvar applyFold = applier(Promise);\n\t\tvar toPromise = Promise.resolve;\n\t\tvar all = Promise.all;\n\n\t\tvar ar = Array.prototype.reduce;\n\t\tvar arr = Array.prototype.reduceRight;\n\t\tvar slice = Array.prototype.slice;\n\n\t\t// Additional array combinators\n\n\t\tPromise.any = any;\n\t\tPromise.some = some;\n\t\tPromise.settle = settle;\n\n\t\tPromise.map = map;\n\t\tPromise.filter = filter;\n\t\tPromise.reduce = reduce;\n\t\tPromise.reduceRight = reduceRight;\n\n\t\t/**\n\t\t * When this promise fulfills with an array, do\n\t\t * onFulfilled.apply(void 0, array)\n\t\t * @param {function} onFulfilled function to apply\n\t\t * @returns {Promise} promise for the result of applying onFulfilled\n\t\t */\n\t\tPromise.prototype.spread = function(onFulfilled) {\n\t\t\treturn this.then(all).then(function(array) {\n\t\t\t\treturn onFulfilled.apply(this, array);\n\t\t\t});\n\t\t};\n\n\t\treturn Promise;\n\n\t\t/**\n\t\t * One-winner competitive race.\n\t\t * Return a promise that will fulfill when one of the promises\n\t\t * in the input array fulfills, or will reject when all promises\n\t\t * have rejected.\n\t\t * @param {array} promises\n\t\t * @returns {Promise} promise for the first fulfilled value\n\t\t */\n\t\tfunction any(promises) {\n\t\t\tvar p = Promise._defer();\n\t\t\tvar resolver = p._handler;\n\t\t\tvar l = promises.length>>>0;\n\n\t\t\tvar pending = l;\n\t\t\tvar errors = [];\n\n\t\t\tfor (var h, x, i = 0; i < l; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif(x === void 0 && !(i in promises)) {\n\t\t\t\t\t--pending;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\th = Promise._handler(x);\n\t\t\t\tif(h.state() > 0) {\n\t\t\t\t\tresolver.become(h);\n\t\t\t\t\tPromise._visitRemaining(promises, i, h);\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\th.visit(resolver, handleFulfill, handleReject);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(pending === 0) {\n\t\t\t\tresolver.reject(new RangeError('any(): array must not be empty'));\n\t\t\t}\n\n\t\t\treturn p;\n\n\t\t\tfunction handleFulfill(x) {\n\t\t\t\t/*jshint validthis:true*/\n\t\t\t\terrors = null;\n\t\t\t\tthis.resolve(x); // this === resolver\n\t\t\t}\n\n\t\t\tfunction handleReject(e) {\n\t\t\t\t/*jshint validthis:true*/\n\t\t\t\tif(this.resolved) { // this === resolver\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\terrors.push(e);\n\t\t\t\tif(--pending === 0) {\n\t\t\t\t\tthis.reject(errors);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * N-winner competitive race\n\t\t * Return a promise that will fulfill when n input promises have\n\t\t * fulfilled, or will reject when it becomes impossible for n\n\t\t * input promises to fulfill (ie when promises.length - n + 1\n\t\t * have rejected)\n\t\t * @param {array} promises\n\t\t * @param {number} n\n\t\t * @returns {Promise} promise for the earliest n fulfillment values\n\t\t *\n\t\t * @deprecated\n\t\t */\n\t\tfunction some(promises, n) {\n\t\t\t/*jshint maxcomplexity:7*/\n\t\t\tvar p = Promise._defer();\n\t\t\tvar resolver = p._handler;\n\n\t\t\tvar results = [];\n\t\t\tvar errors = [];\n\n\t\t\tvar l = promises.length>>>0;\n\t\t\tvar nFulfill = 0;\n\t\t\tvar nReject;\n\t\t\tvar x, i; // reused in both for() loops\n\n\t\t\t// First pass: count actual array items\n\t\t\tfor(i=0; i<l; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif(x === void 0 && !(i in promises)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\t++nFulfill;\n\t\t\t}\n\n\t\t\t// Compute actual goals\n\t\t\tn = Math.max(n, 0);\n\t\t\tnReject = (nFulfill - n + 1);\n\t\t\tnFulfill = Math.min(n, nFulfill);\n\n\t\t\tif(n > nFulfill) {\n\t\t\t\tresolver.reject(new RangeError('some(): array must contain at least '\n\t\t\t\t+ n + ' item(s), but had ' + nFulfill));\n\t\t\t} else if(nFulfill === 0) {\n\t\t\t\tresolver.resolve(results);\n\t\t\t}\n\n\t\t\t// Second pass: observe each array item, make progress toward goals\n\t\t\tfor(i=0; i<l; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif(x === void 0 && !(i in promises)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tPromise._handler(x).visit(resolver, fulfill, reject, resolver.notify);\n\t\t\t}\n\n\t\t\treturn p;\n\n\t\t\tfunction fulfill(x) {\n\t\t\t\t/*jshint validthis:true*/\n\t\t\t\tif(this.resolved) { // this === resolver\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresults.push(x);\n\t\t\t\tif(--nFulfill === 0) {\n\t\t\t\t\terrors = null;\n\t\t\t\t\tthis.resolve(results);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction reject(e) {\n\t\t\t\t/*jshint validthis:true*/\n\t\t\t\tif(this.resolved) { // this === resolver\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\terrors.push(e);\n\t\t\t\tif(--nReject === 0) {\n\t\t\t\t\tresults = null;\n\t\t\t\t\tthis.reject(errors);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Apply f to the value of each promise in a list of promises\n\t\t * and return a new list containing the results.\n\t\t * @param {array} promises\n\t\t * @param {function(x:*, index:Number):*} f mapping function\n\t\t * @returns {Promise}\n\t\t */\n\t\tfunction map(promises, f) {\n\t\t\treturn Promise._traverse(f, promises);\n\t\t}\n\n\t\t/**\n\t\t * Filter the provided array of promises using the provided predicate. Input may\n\t\t * contain promises and values\n\t\t * @param {Array} promises array of promises and values\n\t\t * @param {function(x:*, index:Number):boolean} predicate filtering predicate.\n\t\t * Must return truthy (or promise for truthy) for items to retain.\n\t\t * @returns {Promise} promise that will fulfill with an array containing all items\n\t\t * for which predicate returned truthy.\n\t\t */\n\t\tfunction filter(promises, predicate) {\n\t\t\tvar a = slice.call(promises);\n\t\t\treturn Promise._traverse(predicate, a).then(function(keep) {\n\t\t\t\treturn filterSync(a, keep);\n\t\t\t});\n\t\t}\n\n\t\tfunction filterSync(promises, keep) {\n\t\t\t// Safe because we know all promises have fulfilled if we've made it this far\n\t\t\tvar l = keep.length;\n\t\t\tvar filtered = new Array(l);\n\t\t\tfor(var i=0, j=0; i<l; ++i) {\n\t\t\t\tif(keep[i]) {\n\t\t\t\t\tfiltered[j++] = Promise._handler(promises[i]).value;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiltered.length = j;\n\t\t\treturn filtered;\n\n\t\t}\n\n\t\t/**\n\t\t * Return a promise that will always fulfill with an array containing\n\t\t * the outcome states of all input promises. The returned promise\n\t\t * will never reject.\n\t\t * @param {Array} promises\n\t\t * @returns {Promise} promise for array of settled state descriptors\n\t\t */\n\t\tfunction settle(promises) {\n\t\t\treturn all(promises.map(settleOne));\n\t\t}\n\n\t\tfunction settleOne(p) {\n\t\t\t// Optimize the case where we get an already-resolved when.js promise\n\t\t\t// by extracting its state:\n\t\t\tvar handler;\n\t\t\tif (p instanceof Promise) {\n\t\t\t\t// This is our own Promise type and we can reach its handler internals:\n\t\t\t\thandler = p._handler.join();\n\t\t\t}\n\t\t\tif((handler && handler.state() === 0) || !handler) {\n\t\t\t\t// Either still pending, or not a Promise at all:\n\t\t\t\treturn toPromise(p).then(state.fulfilled, state.rejected);\n\t\t\t}\n\n\t\t\t// The promise is our own, but it is already resolved. Take a shortcut.\n\t\t\t// Since we're not actually handling the resolution, we need to disable\n\t\t\t// rejection reporting.\n\t\t\thandler._unreport();\n\t\t\treturn state.inspect(handler);\n\t\t}\n\n\t\t/**\n\t\t * Traditional reduce function, similar to `Array.prototype.reduce()`, but\n\t\t * input may contain promises and/or values, and reduceFunc\n\t\t * may return either a value or a promise, *and* initialValue may\n\t\t * be a promise for the starting value.\n\t\t * @param {Array|Promise} promises array or promise for an array of anything,\n\t\t * may contain a mix of promises and values.\n\t\t * @param {function(accumulated:*, x:*, index:Number):*} f reduce function\n\t\t * @returns {Promise} that will resolve to the final reduced value\n\t\t */\n\t\tfunction reduce(promises, f /*, initialValue */) {\n\t\t\treturn arguments.length > 2 ? ar.call(promises, liftCombine(f), arguments[2])\n\t\t\t\t\t: ar.call(promises, liftCombine(f));\n\t\t}\n\n\t\t/**\n\t\t * Traditional reduce function, similar to `Array.prototype.reduceRight()`, but\n\t\t * input may contain promises and/or values, and reduceFunc\n\t\t * may return either a value or a promise, *and* initialValue may\n\t\t * be a promise for the starting value.\n\t\t * @param {Array|Promise} promises array or promise for an array of anything,\n\t\t * may contain a mix of promises and values.\n\t\t * @param {function(accumulated:*, x:*, index:Number):*} f reduce function\n\t\t * @returns {Promise} that will resolve to the final reduced value\n\t\t */\n\t\tfunction reduceRight(promises, f /*, initialValue */) {\n\t\t\treturn arguments.length > 2 ? arr.call(promises, liftCombine(f), arguments[2])\n\t\t\t\t\t: arr.call(promises, liftCombine(f));\n\t\t}\n\n\t\tfunction liftCombine(f) {\n\t\t\treturn function(z, x, i) {\n\t\t\t\treturn applyFold(f, void 0, [z,x,i]);\n\t\t\t};\n\t\t}\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function flow(Promise) {\n\n\t\tvar resolve = Promise.resolve;\n\t\tvar reject = Promise.reject;\n\t\tvar origCatch = Promise.prototype['catch'];\n\n\t\t/**\n\t\t * Handle the ultimate fulfillment value or rejection reason, and assume\n\t\t * responsibility for all errors. If an error propagates out of result\n\t\t * or handleFatalError, it will be rethrown to the host, resulting in a\n\t\t * loud stack track on most platforms and a crash on some.\n\t\t * @param {function?} onResult\n\t\t * @param {function?} onError\n\t\t * @returns {undefined}\n\t\t */\n\t\tPromise.prototype.done = function(onResult, onError) {\n\t\t\tthis._handler.visit(this._handler.receiver, onResult, onError);\n\t\t};\n\n\t\t/**\n\t\t * Add Error-type and predicate matching to catch. Examples:\n\t\t * promise.catch(TypeError, handleTypeError)\n\t\t * .catch(predicate, handleMatchedErrors)\n\t\t * .catch(handleRemainingErrors)\n\t\t * @param onRejected\n\t\t * @returns {*}\n\t\t */\n\t\tPromise.prototype['catch'] = Promise.prototype.otherwise = function(onRejected) {\n\t\t\tif (arguments.length < 2) {\n\t\t\t\treturn origCatch.call(this, onRejected);\n\t\t\t}\n\n\t\t\tif(typeof onRejected !== 'function') {\n\t\t\t\treturn this.ensure(rejectInvalidPredicate);\n\t\t\t}\n\n\t\t\treturn origCatch.call(this, createCatchFilter(arguments[1], onRejected));\n\t\t};\n\n\t\t/**\n\t\t * Wraps the provided catch handler, so that it will only be called\n\t\t * if the predicate evaluates truthy\n\t\t * @param {?function} handler\n\t\t * @param {function} predicate\n\t\t * @returns {function} conditional catch handler\n\t\t */\n\t\tfunction createCatchFilter(handler, predicate) {\n\t\t\treturn function(e) {\n\t\t\t\treturn evaluatePredicate(e, predicate)\n\t\t\t\t\t? handler.call(this, e)\n\t\t\t\t\t: reject(e);\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Ensures that onFulfilledOrRejected will be called regardless of whether\n\t\t * this promise is fulfilled or rejected. onFulfilledOrRejected WILL NOT\n\t\t * receive the promises' value or reason. Any returned value will be disregarded.\n\t\t * onFulfilledOrRejected may throw or return a rejected promise to signal\n\t\t * an additional error.\n\t\t * @param {function} handler handler to be called regardless of\n\t\t * fulfillment or rejection\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype['finally'] = Promise.prototype.ensure = function(handler) {\n\t\t\tif(typeof handler !== 'function') {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\treturn this.then(function(x) {\n\t\t\t\treturn runSideEffect(handler, this, identity, x);\n\t\t\t}, function(e) {\n\t\t\t\treturn runSideEffect(handler, this, reject, e);\n\t\t\t});\n\t\t};\n\n\t\tfunction runSideEffect (handler, thisArg, propagate, value) {\n\t\t\tvar result = handler.call(thisArg);\n\t\t\treturn maybeThenable(result)\n\t\t\t\t? propagateValue(result, propagate, value)\n\t\t\t\t: propagate(value);\n\t\t}\n\n\t\tfunction propagateValue (result, propagate, x) {\n\t\t\treturn resolve(result).then(function () {\n\t\t\t\treturn propagate(x);\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Recover from a failure by returning a defaultValue. If defaultValue\n\t\t * is a promise, it's fulfillment value will be used. If defaultValue is\n\t\t * a promise that rejects, the returned promise will reject with the\n\t\t * same reason.\n\t\t * @param {*} defaultValue\n\t\t * @returns {Promise} new promise\n\t\t */\n\t\tPromise.prototype['else'] = Promise.prototype.orElse = function(defaultValue) {\n\t\t\treturn this.then(void 0, function() {\n\t\t\t\treturn defaultValue;\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * Shortcut for .then(function() { return value; })\n\t\t * @param {*} value\n\t\t * @return {Promise} a promise that:\n\t\t * - is fulfilled if value is not a promise, or\n\t\t * - if value is a promise, will fulfill with its value, or reject\n\t\t * with its reason.\n\t\t */\n\t\tPromise.prototype['yield'] = function(value) {\n\t\t\treturn this.then(function() {\n\t\t\t\treturn value;\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * Runs a side effect when this promise fulfills, without changing the\n\t\t * fulfillment value.\n\t\t * @param {function} onFulfilledSideEffect\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype.tap = function(onFulfilledSideEffect) {\n\t\t\treturn this.then(onFulfilledSideEffect)['yield'](this);\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n\tfunction rejectInvalidPredicate() {\n\t\tthrow new TypeError('catch predicate must be a function');\n\t}\n\n\tfunction evaluatePredicate(e, predicate) {\n\t\treturn isError(predicate) ? e instanceof predicate : predicate(e);\n\t}\n\n\tfunction isError(predicate) {\n\t\treturn predicate === Error\n\t\t\t|| (predicate != null && predicate.prototype instanceof Error);\n\t}\n\n\tfunction maybeThenable(x) {\n\t\treturn (typeof x === 'object' || typeof x === 'function') && x !== null;\n\t}\n\n\tfunction identity(x) {\n\t\treturn x;\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n/** @author Jeff Escalante */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function fold(Promise) {\n\n\t\tPromise.prototype.fold = function(f, z) {\n\t\t\tvar promise = this._beget();\n\n\t\t\tthis._handler.fold(function(z, x, to) {\n\t\t\t\tPromise._handler(z).fold(function(x, z, to) {\n\t\t\t\t\tto.resolve(f.call(this, z, x));\n\t\t\t\t}, x, this, to);\n\t\t\t}, z, promise._handler.receiver, promise._handler);\n\n\t\t\treturn promise;\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar inspect = require('../state').inspect;\n\n\treturn function inspection(Promise) {\n\n\t\tPromise.prototype.inspect = function() {\n\t\t\treturn inspect(Promise._handler(this));\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function generate(Promise) {\n\n\t\tvar resolve = Promise.resolve;\n\n\t\tPromise.iterate = iterate;\n\t\tPromise.unfold = unfold;\n\n\t\treturn Promise;\n\n\t\t/**\n\t\t * @deprecated Use github.com/cujojs/most streams and most.iterate\n\t\t * Generate a (potentially infinite) stream of promised values:\n\t\t * x, f(x), f(f(x)), etc. until condition(x) returns true\n\t\t * @param {function} f function to generate a new x from the previous x\n\t\t * @param {function} condition function that, given the current x, returns\n\t\t * truthy when the iterate should stop\n\t\t * @param {function} handler function to handle the value produced by f\n\t\t * @param {*|Promise} x starting value, may be a promise\n\t\t * @return {Promise} the result of the last call to f before\n\t\t * condition returns true\n\t\t */\n\t\tfunction iterate(f, condition, handler, x) {\n\t\t\treturn unfold(function(x) {\n\t\t\t\treturn [x, f(x)];\n\t\t\t}, condition, handler, x);\n\t\t}\n\n\t\t/**\n\t\t * @deprecated Use github.com/cujojs/most streams and most.unfold\n\t\t * Generate a (potentially infinite) stream of promised values\n\t\t * by applying handler(generator(seed)) iteratively until\n\t\t * condition(seed) returns true.\n\t\t * @param {function} unspool function that generates a [value, newSeed]\n\t\t * given a seed.\n\t\t * @param {function} condition function that, given the current seed, returns\n\t\t * truthy when the unfold should stop\n\t\t * @param {function} handler function to handle the value produced by unspool\n\t\t * @param x {*|Promise} starting value, may be a promise\n\t\t * @return {Promise} the result of the last value produced by unspool before\n\t\t * condition returns true\n\t\t */\n\t\tfunction unfold(unspool, condition, handler, x) {\n\t\t\treturn resolve(x).then(function(seed) {\n\t\t\t\treturn resolve(condition(seed)).then(function(done) {\n\t\t\t\t\treturn done ? seed : resolve(unspool(seed)).spread(next);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tfunction next(item, newSeed) {\n\t\t\t\treturn resolve(handler(item)).then(function() {\n\t\t\t\t\treturn unfold(unspool, condition, handler, newSeed);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function progress(Promise) {\n\n\t\t/**\n\t\t * @deprecated\n\t\t * Register a progress handler for this promise\n\t\t * @param {function} onProgress\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype.progress = function(onProgress) {\n\t\t\treturn this.then(void 0, void 0, onProgress);\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar env = require('../env');\n\tvar TimeoutError = require('../TimeoutError');\n\n\tfunction setTimeout(f, ms, x, y) {\n\t\treturn env.setTimer(function() {\n\t\t\tf(x, y, ms);\n\t\t}, ms);\n\t}\n\n\treturn function timed(Promise) {\n\t\t/**\n\t\t * Return a new promise whose fulfillment value is revealed only\n\t\t * after ms milliseconds\n\t\t * @param {number} ms milliseconds\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype.delay = function(ms) {\n\t\t\tvar p = this._beget();\n\t\t\tthis._handler.fold(handleDelay, ms, void 0, p._handler);\n\t\t\treturn p;\n\t\t};\n\n\t\tfunction handleDelay(ms, x, h) {\n\t\t\tsetTimeout(resolveDelay, ms, x, h);\n\t\t}\n\n\t\tfunction resolveDelay(x, h) {\n\t\t\th.resolve(x);\n\t\t}\n\n\t\t/**\n\t\t * Return a new promise that rejects after ms milliseconds unless\n\t\t * this promise fulfills earlier, in which case the returned promise\n\t\t * fulfills with the same value.\n\t\t * @param {number} ms milliseconds\n\t\t * @param {Error|*=} reason optional rejection reason to use, defaults\n\t\t * to a TimeoutError if not provided\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype.timeout = function(ms, reason) {\n\t\t\tvar p = this._beget();\n\t\t\tvar h = p._handler;\n\n\t\t\tvar t = setTimeout(onTimeout, ms, reason, p._handler);\n\n\t\t\tthis._handler.visit(h,\n\t\t\t\tfunction onFulfill(x) {\n\t\t\t\t\tenv.clearTimer(t);\n\t\t\t\t\tthis.resolve(x); // this = h\n\t\t\t\t},\n\t\t\t\tfunction onReject(x) {\n\t\t\t\t\tenv.clearTimer(t);\n\t\t\t\t\tthis.reject(x); // this = h\n\t\t\t\t},\n\t\t\t\th.notify);\n\n\t\t\treturn p;\n\t\t};\n\n\t\tfunction onTimeout(reason, h, ms) {\n\t\t\tvar e = typeof reason === 'undefined'\n\t\t\t\t? new TimeoutError('timed out after ' + ms + 'ms')\n\t\t\t\t: reason;\n\t\t\th.reject(e);\n\t\t}\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar setTimer = require('../env').setTimer;\n\tvar format = require('../format');\n\n\treturn function unhandledRejection(Promise) {\n\n\t\tvar logError = noop;\n\t\tvar logInfo = noop;\n\t\tvar localConsole;\n\n\t\tif(typeof console !== 'undefined') {\n\t\t\t// Alias console to prevent things like uglify's drop_console option from\n\t\t\t// removing console.log/error. Unhandled rejections fall into the same\n\t\t\t// category as uncaught exceptions, and build tools shouldn't silence them.\n\t\t\tlocalConsole = console;\n\t\t\tlogError = typeof localConsole.error !== 'undefined'\n\t\t\t\t? function (e) { localConsole.error(e); }\n\t\t\t\t: function (e) { localConsole.log(e); };\n\n\t\t\tlogInfo = typeof localConsole.info !== 'undefined'\n\t\t\t\t? function (e) { localConsole.info(e); }\n\t\t\t\t: function (e) { localConsole.log(e); };\n\t\t}\n\n\t\tPromise.onPotentiallyUnhandledRejection = function(rejection) {\n\t\t\tenqueue(report, rejection);\n\t\t};\n\n\t\tPromise.onPotentiallyUnhandledRejectionHandled = function(rejection) {\n\t\t\tenqueue(unreport, rejection);\n\t\t};\n\n\t\tPromise.onFatalRejection = function(rejection) {\n\t\t\tenqueue(throwit, rejection.value);\n\t\t};\n\n\t\tvar tasks = [];\n\t\tvar reported = [];\n\t\tvar running = null;\n\n\t\tfunction report(r) {\n\t\t\tif(!r.handled) {\n\t\t\t\treported.push(r);\n\t\t\t\tlogError('Potentially unhandled rejection [' + r.id + '] ' + format.formatError(r.value));\n\t\t\t}\n\t\t}\n\n\t\tfunction unreport(r) {\n\t\t\tvar i = reported.indexOf(r);\n\t\t\tif(i >= 0) {\n\t\t\t\treported.splice(i, 1);\n\t\t\t\tlogInfo('Handled previous rejection [' + r.id + '] ' + format.formatObject(r.value));\n\t\t\t}\n\t\t}\n\n\t\tfunction enqueue(f, x) {\n\t\t\ttasks.push(f, x);\n\t\t\tif(running === null) {\n\t\t\t\trunning = setTimer(flush, 0);\n\t\t\t}\n\t\t}\n\n\t\tfunction flush() {\n\t\t\trunning = null;\n\t\t\twhile(tasks.length > 0) {\n\t\t\t\ttasks.shift()(tasks.shift());\n\t\t\t}\n\t\t}\n\n\t\treturn Promise;\n\t};\n\n\tfunction throwit(e) {\n\t\tthrow e;\n\t}\n\n\tfunction noop() {}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function addWith(Promise) {\n\t\t/**\n\t\t * Returns a promise whose handlers will be called with `this` set to\n\t\t * the supplied receiver. Subsequent promises derived from the\n\t\t * returned promise will also have their handlers called with receiver\n\t\t * as `this`. Calling `with` with undefined or no arguments will return\n\t\t * a promise whose handlers will again be called in the usual Promises/A+\n\t\t * way (no `this`) thus safely undoing any previous `with` in the\n\t\t * promise chain.\n\t\t *\n\t\t * WARNING: Promises returned from `with`/`withThis` are NOT Promises/A+\n\t\t * compliant, specifically violating 2.2.5 (http://promisesaplus.com/#point-41)\n\t\t *\n\t\t * @param {object} receiver `this` value for all handlers attached to\n\t\t * the returned promise.\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype['with'] = Promise.prototype.withThis = function(receiver) {\n\t\t\tvar p = this._beget();\n\t\t\tvar child = p._handler;\n\t\t\tchild.receiver = receiver;\n\t\t\tthis._handler.chain(child, receiver);\n\t\t\treturn p;\n\t\t};\n\n\t\treturn Promise;\n\t};\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n/*global process,document,setTimeout,clearTimeout,MutationObserver,WebKitMutationObserver*/\n(function(define) { 'use strict';\ndefine(function(require) {\n\t/*jshint maxcomplexity:6*/\n\n\t// Sniff \"best\" async scheduling option\n\t// Prefer process.nextTick or MutationObserver, then check for\n\t// setTimeout, and finally vertx, since its the only env that doesn't\n\t// have setTimeout\n\n\tvar MutationObs;\n\tvar capturedSetTimeout = typeof setTimeout !== 'undefined' && setTimeout;\n\n\t// Default env\n\tvar setTimer = function(f, ms) { return setTimeout(f, ms); };\n\tvar clearTimer = function(t) { return clearTimeout(t); };\n\tvar asap = function (f) { return capturedSetTimeout(f, 0); };\n\n\t// Detect specific env\n\tif (isNode()) { // Node\n\t\tasap = function (f) { return process.nextTick(f); };\n\n\t} else if (MutationObs = hasMutationObserver()) { // Modern browser\n\t\tasap = initMutationObserver(MutationObs);\n\n\t} else if (!capturedSetTimeout) { // vert.x\n\t\tvar vertxRequire = require;\n\t\tvar vertx = vertxRequire('vertx');\n\t\tsetTimer = function (f, ms) { return vertx.setTimer(ms, f); };\n\t\tclearTimer = vertx.cancelTimer;\n\t\tasap = vertx.runOnLoop || vertx.runOnContext;\n\t}\n\n\treturn {\n\t\tsetTimer: setTimer,\n\t\tclearTimer: clearTimer,\n\t\tasap: asap\n\t};\n\n\tfunction isNode () {\n\t\treturn typeof process !== 'undefined' &&\n\t\t\tObject.prototype.toString.call(process) === '[object process]';\n\t}\n\n\tfunction hasMutationObserver () {\n\t return (typeof MutationObserver !== 'undefined' && MutationObserver) ||\n\t\t\t(typeof WebKitMutationObserver !== 'undefined' && WebKitMutationObserver);\n\t}\n\n\tfunction initMutationObserver(MutationObserver) {\n\t\tvar scheduled;\n\t\tvar node = document.createTextNode('');\n\t\tvar o = new MutationObserver(run);\n\t\to.observe(node, { characterData: true });\n\n\t\tfunction run() {\n\t\t\tvar f = scheduled;\n\t\t\tscheduled = void 0;\n\t\t\tf();\n\t\t}\n\n\t\tvar i = 0;\n\t\treturn function (f) {\n\t\t\tscheduled = f;\n\t\t\tnode.data = (i ^= 1);\n\t\t};\n\t}\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn {\n\t\tformatError: formatError,\n\t\tformatObject: formatObject,\n\t\ttryStringify: tryStringify\n\t};\n\n\t/**\n\t * Format an error into a string. If e is an Error and has a stack property,\n\t * it's returned. Otherwise, e is formatted using formatObject, with a\n\t * warning added about e not being a proper Error.\n\t * @param {*} e\n\t * @returns {String} formatted string, suitable for output to developers\n\t */\n\tfunction formatError(e) {\n\t\tvar s = typeof e === 'object' && e !== null && (e.stack || e.message) ? e.stack || e.message : formatObject(e);\n\t\treturn e instanceof Error ? s : s + ' (WARNING: non-Error used)';\n\t}\n\n\t/**\n\t * Format an object, detecting \"plain\" objects and running them through\n\t * JSON.stringify if possible.\n\t * @param {Object} o\n\t * @returns {string}\n\t */\n\tfunction formatObject(o) {\n\t\tvar s = String(o);\n\t\tif(s === '[object Object]' && typeof JSON !== 'undefined') {\n\t\t\ts = tryStringify(o, s);\n\t\t}\n\t\treturn s;\n\t}\n\n\t/**\n\t * Try to return the result of JSON.stringify(x). If that fails, return\n\t * defaultValue\n\t * @param {*} x\n\t * @param {*} defaultValue\n\t * @returns {String|*} JSON.stringify(x) or defaultValue\n\t */\n\tfunction tryStringify(x, defaultValue) {\n\t\ttry {\n\t\t\treturn JSON.stringify(x);\n\t\t} catch(e) {\n\t\t\treturn defaultValue;\n\t\t}\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function liftAll(liftOne, combine, dst, src) {\n\t\tif(typeof combine === 'undefined') {\n\t\t\tcombine = defaultCombine;\n\t\t}\n\n\t\treturn Object.keys(src).reduce(function(dst, key) {\n\t\t\tvar f = src[key];\n\t\t\treturn typeof f === 'function' ? combine(dst, liftOne(f), key) : dst;\n\t\t}, typeof dst === 'undefined' ? defaultDst(src) : dst);\n\t};\n\n\tfunction defaultCombine(o, f, k) {\n\t\to[k] = f;\n\t\treturn o;\n\t}\n\n\tfunction defaultDst(src) {\n\t\treturn typeof src === 'function' ? src.bind() : Object.create(src);\n\t}\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function makePromise(environment) {\n\n\t\tvar tasks = environment.scheduler;\n\t\tvar emitRejection = initEmitRejection();\n\n\t\tvar objectCreate = Object.create ||\n\t\t\tfunction(proto) {\n\t\t\t\tfunction Child() {}\n\t\t\t\tChild.prototype = proto;\n\t\t\t\treturn new Child();\n\t\t\t};\n\n\t\t/**\n\t\t * Create a promise whose fate is determined by resolver\n\t\t * @constructor\n\t\t * @returns {Promise} promise\n\t\t * @name Promise\n\t\t */\n\t\tfunction Promise(resolver, handler) {\n\t\t\tthis._handler = resolver === Handler ? handler : init(resolver);\n\t\t}\n\n\t\t/**\n\t\t * Run the supplied resolver\n\t\t * @param resolver\n\t\t * @returns {Pending}\n\t\t */\n\t\tfunction init(resolver) {\n\t\t\tvar handler = new Pending();\n\n\t\t\ttry {\n\t\t\t\tresolver(promiseResolve, promiseReject, promiseNotify);\n\t\t\t} catch (e) {\n\t\t\t\tpromiseReject(e);\n\t\t\t}\n\n\t\t\treturn handler;\n\n\t\t\t/**\n\t\t\t * Transition from pre-resolution state to post-resolution state, notifying\n\t\t\t * all listeners of the ultimate fulfillment or rejection\n\t\t\t * @param {*} x resolution value\n\t\t\t */\n\t\t\tfunction promiseResolve (x) {\n\t\t\t\thandler.resolve(x);\n\t\t\t}\n\t\t\t/**\n\t\t\t * Reject this promise with reason, which will be used verbatim\n\t\t\t * @param {Error|*} reason rejection reason, strongly suggested\n\t\t\t * to be an Error type\n\t\t\t */\n\t\t\tfunction promiseReject (reason) {\n\t\t\t\thandler.reject(reason);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * @deprecated\n\t\t\t * Issue a progress event, notifying all progress listeners\n\t\t\t * @param {*} x progress event payload to pass to all listeners\n\t\t\t */\n\t\t\tfunction promiseNotify (x) {\n\t\t\t\thandler.notify(x);\n\t\t\t}\n\t\t}\n\n\t\t// Creation\n\n\t\tPromise.resolve = resolve;\n\t\tPromise.reject = reject;\n\t\tPromise.never = never;\n\n\t\tPromise._defer = defer;\n\t\tPromise._handler = getHandler;\n\n\t\t/**\n\t\t * Returns a trusted promise. If x is already a trusted promise, it is\n\t\t * returned, otherwise returns a new trusted Promise which follows x.\n\t\t * @param {*} x\n\t\t * @return {Promise} promise\n\t\t */\n\t\tfunction resolve(x) {\n\t\t\treturn isPromise(x) ? x\n\t\t\t\t: new Promise(Handler, new Async(getHandler(x)));\n\t\t}\n\n\t\t/**\n\t\t * Return a reject promise with x as its reason (x is used verbatim)\n\t\t * @param {*} x\n\t\t * @returns {Promise} rejected promise\n\t\t */\n\t\tfunction reject(x) {\n\t\t\treturn new Promise(Handler, new Async(new Rejected(x)));\n\t\t}\n\n\t\t/**\n\t\t * Return a promise that remains pending forever\n\t\t * @returns {Promise} forever-pending promise.\n\t\t */\n\t\tfunction never() {\n\t\t\treturn foreverPendingPromise; // Should be frozen\n\t\t}\n\n\t\t/**\n\t\t * Creates an internal {promise, resolver} pair\n\t\t * @private\n\t\t * @returns {Promise}\n\t\t */\n\t\tfunction defer() {\n\t\t\treturn new Promise(Handler, new Pending());\n\t\t}\n\n\t\t// Transformation and flow control\n\n\t\t/**\n\t\t * Transform this promise's fulfillment value, returning a new Promise\n\t\t * for the transformed result. If the promise cannot be fulfilled, onRejected\n\t\t * is called with the reason. onProgress *may* be called with updates toward\n\t\t * this promise's fulfillment.\n\t\t * @param {function=} onFulfilled fulfillment handler\n\t\t * @param {function=} onRejected rejection handler\n\t\t * @param {function=} onProgress @deprecated progress handler\n\t\t * @return {Promise} new promise\n\t\t */\n\t\tPromise.prototype.then = function(onFulfilled, onRejected, onProgress) {\n\t\t\tvar parent = this._handler;\n\t\t\tvar state = parent.join().state();\n\n\t\t\tif ((typeof onFulfilled !== 'function' && state > 0) ||\n\t\t\t\t(typeof onRejected !== 'function' && state < 0)) {\n\t\t\t\t// Short circuit: value will not change, simply share handler\n\t\t\t\treturn new this.constructor(Handler, parent);\n\t\t\t}\n\n\t\t\tvar p = this._beget();\n\t\t\tvar child = p._handler;\n\n\t\t\tparent.chain(child, parent.receiver, onFulfilled, onRejected, onProgress);\n\n\t\t\treturn p;\n\t\t};\n\n\t\t/**\n\t\t * If this promise cannot be fulfilled due to an error, call onRejected to\n\t\t * handle the error. Shortcut for .then(undefined, onRejected)\n\t\t * @param {function?} onRejected\n\t\t * @return {Promise}\n\t\t */\n\t\tPromise.prototype['catch'] = function(onRejected) {\n\t\t\treturn this.then(void 0, onRejected);\n\t\t};\n\n\t\t/**\n\t\t * Creates a new, pending promise of the same type as this promise\n\t\t * @private\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype._beget = function() {\n\t\t\treturn begetFrom(this._handler, this.constructor);\n\t\t};\n\n\t\tfunction begetFrom(parent, Promise) {\n\t\t\tvar child = new Pending(parent.receiver, parent.join().context);\n\t\t\treturn new Promise(Handler, child);\n\t\t}\n\n\t\t// Array combinators\n\n\t\tPromise.all = all;\n\t\tPromise.race = race;\n\t\tPromise._traverse = traverse;\n\n\t\t/**\n\t\t * Return a promise that will fulfill when all promises in the\n\t\t * input array have fulfilled, or will reject when one of the\n\t\t * promises rejects.\n\t\t * @param {array} promises array of promises\n\t\t * @returns {Promise} promise for array of fulfillment values\n\t\t */\n\t\tfunction all(promises) {\n\t\t\treturn traverseWith(snd, null, promises);\n\t\t}\n\n\t\t/**\n\t\t * Array<Promise<X>> -> Promise<Array<f(X)>>\n\t\t * @private\n\t\t * @param {function} f function to apply to each promise's value\n\t\t * @param {Array} promises array of promises\n\t\t * @returns {Promise} promise for transformed values\n\t\t */\n\t\tfunction traverse(f, promises) {\n\t\t\treturn traverseWith(tryCatch2, f, promises);\n\t\t}\n\n\t\tfunction traverseWith(tryMap, f, promises) {\n\t\t\tvar handler = typeof f === 'function' ? mapAt : settleAt;\n\n\t\t\tvar resolver = new Pending();\n\t\t\tvar pending = promises.length >>> 0;\n\t\t\tvar results = new Array(pending);\n\n\t\t\tfor (var i = 0, x; i < promises.length && !resolver.resolved; ++i) {\n\t\t\t\tx = promises[i];\n\n\t\t\t\tif (x === void 0 && !(i in promises)) {\n\t\t\t\t\t--pending;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\ttraverseAt(promises, handler, i, x, resolver);\n\t\t\t}\n\n\t\t\tif(pending === 0) {\n\t\t\t\tresolver.become(new Fulfilled(results));\n\t\t\t}\n\n\t\t\treturn new Promise(Handler, resolver);\n\n\t\t\tfunction mapAt(i, x, resolver) {\n\t\t\t\tif(!resolver.resolved) {\n\t\t\t\t\ttraverseAt(promises, settleAt, i, tryMap(f, x, i), resolver);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction settleAt(i, x, resolver) {\n\t\t\t\tresults[i] = x;\n\t\t\t\tif(--pending === 0) {\n\t\t\t\t\tresolver.become(new Fulfilled(results));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction traverseAt(promises, handler, i, x, resolver) {\n\t\t\tif (maybeThenable(x)) {\n\t\t\t\tvar h = getHandlerMaybeThenable(x);\n\t\t\t\tvar s = h.state();\n\n\t\t\t\tif (s === 0) {\n\t\t\t\t\th.fold(handler, i, void 0, resolver);\n\t\t\t\t} else if (s > 0) {\n\t\t\t\t\thandler(i, h.value, resolver);\n\t\t\t\t} else {\n\t\t\t\t\tresolver.become(h);\n\t\t\t\t\tvisitRemaining(promises, i+1, h);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thandler(i, x, resolver);\n\t\t\t}\n\t\t}\n\n\t\tPromise._visitRemaining = visitRemaining;\n\t\tfunction visitRemaining(promises, start, handler) {\n\t\t\tfor(var i=start; i<promises.length; ++i) {\n\t\t\t\tmarkAsHandled(getHandler(promises[i]), handler);\n\t\t\t}\n\t\t}\n\n\t\tfunction markAsHandled(h, handler) {\n\t\t\tif(h === handler) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar s = h.state();\n\t\t\tif(s === 0) {\n\t\t\t\th.visit(h, void 0, h._unreport);\n\t\t\t} else if(s < 0) {\n\t\t\t\th._unreport();\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Fulfill-reject competitive race. Return a promise that will settle\n\t\t * to the same state as the earliest input promise to settle.\n\t\t *\n\t\t * WARNING: The ES6 Promise spec requires that race()ing an empty array\n\t\t * must return a promise that is pending forever. This implementation\n\t\t * returns a singleton forever-pending promise, the same singleton that is\n\t\t * returned by Promise.never(), thus can be checked with ===\n\t\t *\n\t\t * @param {array} promises array of promises to race\n\t\t * @returns {Promise} if input is non-empty, a promise that will settle\n\t\t * to the same outcome as the earliest input promise to settle. if empty\n\t\t * is empty, returns a promise that will never settle.\n\t\t */\n\t\tfunction race(promises) {\n\t\t\tif(typeof promises !== 'object' || promises === null) {\n\t\t\t\treturn reject(new TypeError('non-iterable passed to race()'));\n\t\t\t}\n\n\t\t\t// Sigh, race([]) is untestable unless we return *something*\n\t\t\t// that is recognizable without calling .then() on it.\n\t\t\treturn promises.length === 0 ? never()\n\t\t\t\t : promises.length === 1 ? resolve(promises[0])\n\t\t\t\t : runRace(promises);\n\t\t}\n\n\t\tfunction runRace(promises) {\n\t\t\tvar resolver = new Pending();\n\t\t\tvar i, x, h;\n\t\t\tfor(i=0; i<promises.length; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif (x === void 0 && !(i in promises)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\th = getHandler(x);\n\t\t\t\tif(h.state() !== 0) {\n\t\t\t\t\tresolver.become(h);\n\t\t\t\t\tvisitRemaining(promises, i+1, h);\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\th.visit(resolver, resolver.resolve, resolver.reject);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn new Promise(Handler, resolver);\n\t\t}\n\n\t\t// Promise internals\n\t\t// Below this, everything is @private\n\n\t\t/**\n\t\t * Get an appropriate handler for x, without checking for cycles\n\t\t * @param {*} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandler(x) {\n\t\t\tif(isPromise(x)) {\n\t\t\t\treturn x._handler.join();\n\t\t\t}\n\t\t\treturn maybeThenable(x) ? getHandlerUntrusted(x) : new Fulfilled(x);\n\t\t}\n\n\t\t/**\n\t\t * Get a handler for thenable x.\n\t\t * NOTE: You must only call this if maybeThenable(x) == true\n\t\t * @param {object|function|Promise} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandlerMaybeThenable(x) {\n\t\t\treturn isPromise(x) ? x._handler.join() : getHandlerUntrusted(x);\n\t\t}\n\n\t\t/**\n\t\t * Get a handler for potentially untrusted thenable x\n\t\t * @param {*} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandlerUntrusted(x) {\n\t\t\ttry {\n\t\t\t\tvar untrustedThen = x.then;\n\t\t\t\treturn typeof untrustedThen === 'function'\n\t\t\t\t\t? new Thenable(untrustedThen, x)\n\t\t\t\t\t: new Fulfilled(x);\n\t\t\t} catch(e) {\n\t\t\t\treturn new Rejected(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Handler for a promise that is pending forever\n\t\t * @constructor\n\t\t */\n\t\tfunction Handler() {}\n\n\t\tHandler.prototype.when\n\t\t\t= Handler.prototype.become\n\t\t\t= Handler.prototype.notify // deprecated\n\t\t\t= Handler.prototype.fail\n\t\t\t= Handler.prototype._unreport\n\t\t\t= Handler.prototype._report\n\t\t\t= noop;\n\n\t\tHandler.prototype._state = 0;\n\n\t\tHandler.prototype.state = function() {\n\t\t\treturn this._state;\n\t\t};\n\n\t\t/**\n\t\t * Recursively collapse handler chain to find the handler\n\t\t * nearest to the fully resolved value.\n\t\t * @returns {object} handler nearest the fully resolved value\n\t\t */\n\t\tHandler.prototype.join = function() {\n\t\t\tvar h = this;\n\t\t\twhile(h.handler !== void 0) {\n\t\t\t\th = h.handler;\n\t\t\t}\n\t\t\treturn h;\n\t\t};\n\n\t\tHandler.prototype.chain = function(to, receiver, fulfilled, rejected, progress) {\n\t\t\tthis.when({\n\t\t\t\tresolver: to,\n\t\t\t\treceiver: receiver,\n\t\t\t\tfulfilled: fulfilled,\n\t\t\t\trejected: rejected,\n\t\t\t\tprogress: progress\n\t\t\t});\n\t\t};\n\n\t\tHandler.prototype.visit = function(receiver, fulfilled, rejected, progress) {\n\t\t\tthis.chain(failIfRejected, receiver, fulfilled, rejected, progress);\n\t\t};\n\n\t\tHandler.prototype.fold = function(f, z, c, to) {\n\t\t\tthis.when(new Fold(f, z, c, to));\n\t\t};\n\n\t\t/**\n\t\t * Handler that invokes fail() on any handler it becomes\n\t\t * @constructor\n\t\t */\n\t\tfunction FailIfRejected() {}\n\n\t\tinherit(Handler, FailIfRejected);\n\n\t\tFailIfRejected.prototype.become = function(h) {\n\t\t\th.fail();\n\t\t};\n\n\t\tvar failIfRejected = new FailIfRejected();\n\n\t\t/**\n\t\t * Handler that manages a queue of consumers waiting on a pending promise\n\t\t * @constructor\n\t\t */\n\t\tfunction Pending(receiver, inheritedContext) {\n\t\t\tPromise.createContext(this, inheritedContext);\n\n\t\t\tthis.consumers = void 0;\n\t\t\tthis.receiver = receiver;\n\t\t\tthis.handler = void 0;\n\t\t\tthis.resolved = false;\n\t\t}\n\n\t\tinherit(Handler, Pending);\n\n\t\tPending.prototype._state = 0;\n\n\t\tPending.prototype.resolve = function(x) {\n\t\t\tthis.become(getHandler(x));\n\t\t};\n\n\t\tPending.prototype.reject = function(x) {\n\t\t\tif(this.resolved) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.become(new Rejected(x));\n\t\t};\n\n\t\tPending.prototype.join = function() {\n\t\t\tif (!this.resolved) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tvar h = this;\n\n\t\t\twhile (h.handler !== void 0) {\n\t\t\t\th = h.handler;\n\t\t\t\tif (h === this) {\n\t\t\t\t\treturn this.handler = cycle();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn h;\n\t\t};\n\n\t\tPending.prototype.run = function() {\n\t\t\tvar q = this.consumers;\n\t\t\tvar handler = this.handler;\n\t\t\tthis.handler = this.handler.join();\n\t\t\tthis.consumers = void 0;\n\n\t\t\tfor (var i = 0; i < q.length; ++i) {\n\t\t\t\thandler.when(q[i]);\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.become = function(handler) {\n\t\t\tif(this.resolved) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.resolved = true;\n\t\t\tthis.handler = handler;\n\t\t\tif(this.consumers !== void 0) {\n\t\t\t\ttasks.enqueue(this);\n\t\t\t}\n\n\t\t\tif(this.context !== void 0) {\n\t\t\t\thandler._report(this.context);\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.when = function(continuation) {\n\t\t\tif(this.resolved) {\n\t\t\t\ttasks.enqueue(new ContinuationTask(continuation, this.handler));\n\t\t\t} else {\n\t\t\t\tif(this.consumers === void 0) {\n\t\t\t\t\tthis.consumers = [continuation];\n\t\t\t\t} else {\n\t\t\t\t\tthis.consumers.push(continuation);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * @deprecated\n\t\t */\n\t\tPending.prototype.notify = function(x) {\n\t\t\tif(!this.resolved) {\n\t\t\t\ttasks.enqueue(new ProgressTask(x, this));\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.fail = function(context) {\n\t\t\tvar c = typeof context === 'undefined' ? this.context : context;\n\t\t\tthis.resolved && this.handler.join().fail(c);\n\t\t};\n\n\t\tPending.prototype._report = function(context) {\n\t\t\tthis.resolved && this.handler.join()._report(context);\n\t\t};\n\n\t\tPending.prototype._unreport = function() {\n\t\t\tthis.resolved && this.handler.join()._unreport();\n\t\t};\n\n\t\t/**\n\t\t * Wrap another handler and force it into a future stack\n\t\t * @param {object} handler\n\t\t * @constructor\n\t\t */\n\t\tfunction Async(handler) {\n\t\t\tthis.handler = handler;\n\t\t}\n\n\t\tinherit(Handler, Async);\n\n\t\tAsync.prototype.when = function(continuation) {\n\t\t\ttasks.enqueue(new ContinuationTask(continuation, this));\n\t\t};\n\n\t\tAsync.prototype._report = function(context) {\n\t\t\tthis.join()._report(context);\n\t\t};\n\n\t\tAsync.prototype._unreport = function() {\n\t\t\tthis.join()._unreport();\n\t\t};\n\n\t\t/**\n\t\t * Handler that wraps an untrusted thenable and assimilates it in a future stack\n\t\t * @param {function} then\n\t\t * @param {{then: function}} thenable\n\t\t * @constructor\n\t\t */\n\t\tfunction Thenable(then, thenable) {\n\t\t\tPending.call(this);\n\t\t\ttasks.enqueue(new AssimilateTask(then, thenable, this));\n\t\t}\n\n\t\tinherit(Pending, Thenable);\n\n\t\t/**\n\t\t * Handler for a fulfilled promise\n\t\t * @param {*} x fulfillment value\n\t\t * @constructor\n\t\t */\n\t\tfunction Fulfilled(x) {\n\t\t\tPromise.createContext(this);\n\t\t\tthis.value = x;\n\t\t}\n\n\t\tinherit(Handler, Fulfilled);\n\n\t\tFulfilled.prototype._state = 1;\n\n\t\tFulfilled.prototype.fold = function(f, z, c, to) {\n\t\t\trunContinuation3(f, z, this, c, to);\n\t\t};\n\n\t\tFulfilled.prototype.when = function(cont) {\n\t\t\trunContinuation1(cont.fulfilled, this, cont.receiver, cont.resolver);\n\t\t};\n\n\t\tvar errorId = 0;\n\n\t\t/**\n\t\t * Handler for a rejected promise\n\t\t * @param {*} x rejection reason\n\t\t * @constructor\n\t\t */\n\t\tfunction Rejected(x) {\n\t\t\tPromise.createContext(this);\n\n\t\t\tthis.id = ++errorId;\n\t\t\tthis.value = x;\n\t\t\tthis.handled = false;\n\t\t\tthis.reported = false;\n\n\t\t\tthis._report();\n\t\t}\n\n\t\tinherit(Handler, Rejected);\n\n\t\tRejected.prototype._state = -1;\n\n\t\tRejected.prototype.fold = function(f, z, c, to) {\n\t\t\tto.become(this);\n\t\t};\n\n\t\tRejected.prototype.when = function(cont) {\n\t\t\tif(typeof cont.rejected === 'function') {\n\t\t\t\tthis._unreport();\n\t\t\t}\n\t\t\trunContinuation1(cont.rejected, this, cont.receiver, cont.resolver);\n\t\t};\n\n\t\tRejected.prototype._report = function(context) {\n\t\t\ttasks.afterQueue(new ReportTask(this, context));\n\t\t};\n\n\t\tRejected.prototype._unreport = function() {\n\t\t\tif(this.handled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.handled = true;\n\t\t\ttasks.afterQueue(new UnreportTask(this));\n\t\t};\n\n\t\tRejected.prototype.fail = function(context) {\n\t\t\tthis.reported = true;\n\t\t\temitRejection('unhandledRejection', this);\n\t\t\tPromise.onFatalRejection(this, context === void 0 ? this.context : context);\n\t\t};\n\n\t\tfunction ReportTask(rejection, context) {\n\t\t\tthis.rejection = rejection;\n\t\t\tthis.context = context;\n\t\t}\n\n\t\tReportTask.prototype.run = function() {\n\t\t\tif(!this.rejection.handled && !this.rejection.reported) {\n\t\t\t\tthis.rejection.reported = true;\n\t\t\t\temitRejection('unhandledRejection', this.rejection) ||\n\t\t\t\t\tPromise.onPotentiallyUnhandledRejection(this.rejection, this.context);\n\t\t\t}\n\t\t};\n\n\t\tfunction UnreportTask(rejection) {\n\t\t\tthis.rejection = rejection;\n\t\t}\n\n\t\tUnreportTask.prototype.run = function() {\n\t\t\tif(this.rejection.reported) {\n\t\t\t\temitRejection('rejectionHandled', this.rejection) ||\n\t\t\t\t\tPromise.onPotentiallyUnhandledRejectionHandled(this.rejection);\n\t\t\t}\n\t\t};\n\n\t\t// Unhandled rejection hooks\n\t\t// By default, everything is a noop\n\n\t\tPromise.createContext\n\t\t\t= Promise.enterContext\n\t\t\t= Promise.exitContext\n\t\t\t= Promise.onPotentiallyUnhandledRejection\n\t\t\t= Promise.onPotentiallyUnhandledRejectionHandled\n\t\t\t= Promise.onFatalRejection\n\t\t\t= noop;\n\n\t\t// Errors and singletons\n\n\t\tvar foreverPendingHandler = new Handler();\n\t\tvar foreverPendingPromise = new Promise(Handler, foreverPendingHandler);\n\n\t\tfunction cycle() {\n\t\t\treturn new Rejected(new TypeError('Promise cycle'));\n\t\t}\n\n\t\t// Task runners\n\n\t\t/**\n\t\t * Run a single consumer\n\t\t * @constructor\n\t\t */\n\t\tfunction ContinuationTask(continuation, handler) {\n\t\t\tthis.continuation = continuation;\n\t\t\tthis.handler = handler;\n\t\t}\n\n\t\tContinuationTask.prototype.run = function() {\n\t\t\tthis.handler.join().when(this.continuation);\n\t\t};\n\n\t\t/**\n\t\t * Run a queue of progress handlers\n\t\t * @constructor\n\t\t */\n\t\tfunction ProgressTask(value, handler) {\n\t\t\tthis.handler = handler;\n\t\t\tthis.value = value;\n\t\t}\n\n\t\tProgressTask.prototype.run = function() {\n\t\t\tvar q = this.handler.consumers;\n\t\t\tif(q === void 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var c, i = 0; i < q.length; ++i) {\n\t\t\t\tc = q[i];\n\t\t\t\trunNotify(c.progress, this.value, this.handler, c.receiver, c.resolver);\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Assimilate a thenable, sending it's value to resolver\n\t\t * @param {function} then\n\t\t * @param {object|function} thenable\n\t\t * @param {object} resolver\n\t\t * @constructor\n\t\t */\n\t\tfunction AssimilateTask(then, thenable, resolver) {\n\t\t\tthis._then = then;\n\t\t\tthis.thenable = thenable;\n\t\t\tthis.resolver = resolver;\n\t\t}\n\n\t\tAssimilateTask.prototype.run = function() {\n\t\t\tvar h = this.resolver;\n\t\t\ttryAssimilate(this._then, this.thenable, _resolve, _reject, _notify);\n\n\t\t\tfunction _resolve(x) { h.resolve(x); }\n\t\t\tfunction _reject(x) { h.reject(x); }\n\t\t\tfunction _notify(x) { h.notify(x); }\n\t\t};\n\n\t\tfunction tryAssimilate(then, thenable, resolve, reject, notify) {\n\t\t\ttry {\n\t\t\t\tthen.call(thenable, resolve, reject, notify);\n\t\t\t} catch (e) {\n\t\t\t\treject(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Fold a handler value with z\n\t\t * @constructor\n\t\t */\n\t\tfunction Fold(f, z, c, to) {\n\t\t\tthis.f = f; this.z = z; this.c = c; this.to = to;\n\t\t\tthis.resolver = failIfRejected;\n\t\t\tthis.receiver = this;\n\t\t}\n\n\t\tFold.prototype.fulfilled = function(x) {\n\t\t\tthis.f.call(this.c, this.z, x, this.to);\n\t\t};\n\n\t\tFold.prototype.rejected = function(x) {\n\t\t\tthis.to.reject(x);\n\t\t};\n\n\t\tFold.prototype.progress = function(x) {\n\t\t\tthis.to.notify(x);\n\t\t};\n\n\t\t// Other helpers\n\n\t\t/**\n\t\t * @param {*} x\n\t\t * @returns {boolean} true iff x is a trusted Promise\n\t\t */\n\t\tfunction isPromise(x) {\n\t\t\treturn x instanceof Promise;\n\t\t}\n\n\t\t/**\n\t\t * Test just enough to rule out primitives, in order to take faster\n\t\t * paths in some code\n\t\t * @param {*} x\n\t\t * @returns {boolean} false iff x is guaranteed *not* to be a thenable\n\t\t */\n\t\tfunction maybeThenable(x) {\n\t\t\treturn (typeof x === 'object' || typeof x === 'function') && x !== null;\n\t\t}\n\n\t\tfunction runContinuation1(f, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.become(h);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReject(f, h.value, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\tfunction runContinuation3(f, x, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.become(h);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReject3(f, x, h.value, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\t/**\n\t\t * @deprecated\n\t\t */\n\t\tfunction runNotify(f, x, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.notify(x);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReturn(f, x, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\tfunction tryCatch2(f, a, b) {\n\t\t\ttry {\n\t\t\t\treturn f(a, b);\n\t\t\t} catch(e) {\n\t\t\t\treturn reject(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Return f.call(thisArg, x), or if it throws return a rejected promise for\n\t\t * the thrown exception\n\t\t */\n\t\tfunction tryCatchReject(f, x, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tnext.become(getHandler(f.call(thisArg, x)));\n\t\t\t} catch(e) {\n\t\t\t\tnext.become(new Rejected(e));\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Same as above, but includes the extra argument parameter.\n\t\t */\n\t\tfunction tryCatchReject3(f, x, y, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tf.call(thisArg, x, y, next);\n\t\t\t} catch(e) {\n\t\t\t\tnext.become(new Rejected(e));\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * @deprecated\n\t\t * Return f.call(thisArg, x), or if it throws, *return* the exception\n\t\t */\n\t\tfunction tryCatchReturn(f, x, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tnext.notify(f.call(thisArg, x));\n\t\t\t} catch(e) {\n\t\t\t\tnext.notify(e);\n\t\t\t}\n\t\t}\n\n\t\tfunction inherit(Parent, Child) {\n\t\t\tChild.prototype = objectCreate(Parent.prototype);\n\t\t\tChild.prototype.constructor = Child;\n\t\t}\n\n\t\tfunction snd(x, y) {\n\t\t\treturn y;\n\t\t}\n\n\t\tfunction noop() {}\n\n\t\tfunction hasCustomEvent() {\n\t\t\tif(typeof CustomEvent === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\tvar ev = new CustomEvent('unhandledRejection');\n\t\t\t\t\treturn ev instanceof CustomEvent;\n\t\t\t\t} catch (ignoredException) {}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction hasInternetExplorerCustomEvent() {\n\t\t\tif(typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\t// Try to create one event to make sure it's supported\n\t\t\t\t\tvar ev = document.createEvent('CustomEvent');\n\t\t\t\t\tev.initCustomEvent('eventType', false, true, {});\n\t\t\t\t\treturn true;\n\t\t\t\t} catch (ignoredException) {}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction initEmitRejection() {\n\t\t\t/*global process, self, CustomEvent*/\n\t\t\tif(typeof process !== 'undefined' && process !== null\n\t\t\t\t&& typeof process.emit === 'function') {\n\t\t\t\t// Returning falsy here means to call the default\n\t\t\t\t// onPotentiallyUnhandledRejection API. This is safe even in\n\t\t\t\t// browserify since process.emit always returns falsy in browserify:\n\t\t\t\t// https://github.com/defunctzombie/node-process/blob/master/browser.js#L40-L46\n\t\t\t\treturn function(type, rejection) {\n\t\t\t\t\treturn type === 'unhandledRejection'\n\t\t\t\t\t\t? process.emit(type, rejection.value, rejection)\n\t\t\t\t\t\t: process.emit(type, rejection);\n\t\t\t\t};\n\t\t\t} else if(typeof self !== 'undefined' && hasCustomEvent()) {\n\t\t\t\treturn (function (self, CustomEvent) {\n\t\t\t\t\treturn function (type, rejection) {\n\t\t\t\t\t\tvar ev = new CustomEvent(type, {\n\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\treason: rejection.value,\n\t\t\t\t\t\t\t\tkey: rejection\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbubbles: false,\n\t\t\t\t\t\t\tcancelable: true\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn !self.dispatchEvent(ev);\n\t\t\t\t\t};\n\t\t\t\t}(self, CustomEvent));\n\t\t\t} else if(typeof self !== 'undefined' && hasInternetExplorerCustomEvent()) {\n\t\t\t\treturn (function(self, document) {\n\t\t\t\t\treturn function(type, rejection) {\n\t\t\t\t\t\tvar ev = document.createEvent('CustomEvent');\n\t\t\t\t\t\tev.initCustomEvent(type, false, true, {\n\t\t\t\t\t\t\treason: rejection.value,\n\t\t\t\t\t\t\tkey: rejection\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn !self.dispatchEvent(ev);\n\t\t\t\t\t};\n\t\t\t\t}(self, document));\n\t\t\t}\n\n\t\t\treturn noop;\n\t\t}\n\n\t\treturn Promise;\n\t};\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn {\n\t\tpending: toPendingState,\n\t\tfulfilled: toFulfilledState,\n\t\trejected: toRejectedState,\n\t\tinspect: inspect\n\t};\n\n\tfunction toPendingState() {\n\t\treturn { state: 'pending' };\n\t}\n\n\tfunction toRejectedState(e) {\n\t\treturn { state: 'rejected', reason: e };\n\t}\n\n\tfunction toFulfilledState(x) {\n\t\treturn { state: 'fulfilled', value: x };\n\t}\n\n\tfunction inspect(handler) {\n\t\tvar state = handler.state();\n\t\treturn state === 0 ? toPendingState()\n\t\t\t : state > 0 ? toFulfilledState(handler.value)\n\t\t\t : toRejectedState(handler.value);\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2013 original author or authors */\n\n/**\n * Collection of helpers for interfacing with node-style asynchronous functions\n * using promises.\n *\n * @author Brian Cavalier\n * @contributor Renato Zannon\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar _liftAll = require('./lib/liftAll');\n\tvar setTimer = require('./lib/env').setTimer;\n\tvar slice = Array.prototype.slice;\n\n\tvar _apply = require('./lib/apply')(when.Promise, dispatch);\n\n\treturn {\n\t\tlift: lift,\n\t\tliftAll: liftAll,\n\t\tapply: apply,\n\t\tcall: call,\n\t\tcreateCallback: createCallback,\n\t\tbindCallback: bindCallback,\n\t\tliftCallback: liftCallback\n\t};\n\n\t/**\n\t * Takes a node-style async function and calls it immediately (with an optional\n\t * array of arguments or promises for arguments). It returns a promise whose\n\t * resolution depends on whether the async functions calls its callback with the\n\t * conventional error argument or not.\n\t *\n\t * With this it becomes possible to leverage existing APIs while still reaping\n\t * the benefits of promises.\n\t *\n\t * @example\n\t * function onlySmallNumbers(n, callback) {\n\t *\t\tif(n < 10) {\n\t *\t\t\tcallback(null, n + 10);\n\t *\t\t} else {\n\t *\t\t\tcallback(new Error(\"Calculation failed\"));\n\t *\t\t}\n\t *\t}\n\t *\n\t * var nodefn = require(\"when/node/function\");\n\t *\n\t * // Logs '15'\n\t * nodefn.apply(onlySmallNumbers, [5]).then(console.log, console.error);\n\t *\n\t * // Logs 'Calculation failed'\n\t * nodefn.apply(onlySmallNumbers, [15]).then(console.log, console.error);\n\t *\n\t * @param {function} f node-style function that will be called\n\t * @param {Array} [args] array of arguments to func\n\t * @returns {Promise} promise for the value func passes to its callback\n\t */\n\tfunction apply(f, args) {\n\t\treturn _apply(f, this, args || []);\n\t}\n\n\tfunction dispatch(f, thisArg, args, h) {\n\t\tvar cb = createCallback(h);\n\t\ttry {\n\t\t\tswitch(args.length) {\n\t\t\t\tcase 2: f.call(thisArg, args[0], args[1], cb); break;\n\t\t\t\tcase 1: f.call(thisArg, args[0], cb); break;\n\t\t\t\tcase 0: f.call(thisArg, cb); break;\n\t\t\t\tdefault:\n\t\t\t\t\targs.push(cb);\n\t\t\t\t\tf.apply(thisArg, args);\n\t\t\t}\n\t\t} catch(e) {\n\t\t\th.reject(e);\n\t\t}\n\t}\n\n\t/**\n\t * Has the same behavior that {@link apply} has, with the difference that the\n\t * arguments to the function are provided individually, while {@link apply} accepts\n\t * a single array.\n\t *\n\t * @example\n\t * function sumSmallNumbers(x, y, callback) {\n\t *\t\tvar result = x + y;\n\t *\t\tif(result < 10) {\n\t *\t\t\tcallback(null, result);\n\t *\t\t} else {\n\t *\t\t\tcallback(new Error(\"Calculation failed\"));\n\t *\t\t}\n\t *\t}\n\t *\n\t * // Logs '5'\n\t * nodefn.call(sumSmallNumbers, 2, 3).then(console.log, console.error);\n\t *\n\t * // Logs 'Calculation failed'\n\t * nodefn.call(sumSmallNumbers, 5, 10).then(console.log, console.error);\n\t *\n\t * @param {function} f node-style function that will be called\n\t * @param {...*} [args] arguments that will be forwarded to the function\n\t * @returns {Promise} promise for the value func passes to its callback\n\t */\n\tfunction call(f /*, args... */) {\n\t\treturn _apply(f, this, slice.call(arguments, 1));\n\t}\n\n\t/**\n\t * Takes a node-style function and returns new function that wraps the\n\t * original and, instead of taking a callback, returns a promise. Also, it\n\t * knows how to handle promises given as arguments, waiting for their\n\t * resolution before executing.\n\t *\n\t * Upon execution, the orginal function is executed as well. If it passes\n\t * a truthy value as the first argument to the callback, it will be\n\t * interpreted as an error condition, and the promise will be rejected\n\t * with it. Otherwise, the call is considered a resolution, and the promise\n\t * is resolved with the callback's second argument.\n\t *\n\t * @example\n\t * var fs = require(\"fs\"), nodefn = require(\"when/node/function\");\n\t *\n\t * var promiseRead = nodefn.lift(fs.readFile);\n\t *\n\t * // The promise is resolved with the contents of the file if everything\n\t * // goes ok\n\t * promiseRead('exists.txt').then(console.log, console.error);\n\t *\n\t * // And will be rejected if something doesn't work out\n\t * // (e.g. the files does not exist)\n\t * promiseRead('doesnt_exist.txt').then(console.log, console.error);\n\t *\n\t *\n\t * @param {Function} f node-style function to be lifted\n\t * @param {...*} [args] arguments to be prepended for the new function @deprecated\n\t * @returns {Function} a promise-returning function\n\t */\n\tfunction lift(f /*, args... */) {\n\t\tvar args1 = arguments.length > 1 ? slice.call(arguments, 1) : [];\n\t\treturn function() {\n\t\t\t// TODO: Simplify once partialing has been removed\n\t\t\tvar l = args1.length;\n\t\t\tvar al = arguments.length;\n\t\t\tvar args = new Array(al + l);\n\t\t\tvar i;\n\t\t\tfor(i=0; i<l; ++i) {\n\t\t\t\targs[i] = args1[i];\n\t\t\t}\n\t\t\tfor(i=0; i<al; ++i) {\n\t\t\t\targs[i+l] = arguments[i];\n\t\t\t}\n\t\t\treturn _apply(f, this, args);\n\t\t};\n\t}\n\n\t/**\n\t * Lift all the functions/methods on src\n\t * @param {object|function} src source whose functions will be lifted\n\t * @param {function?} combine optional function for customizing the lifting\n\t * process. It is passed dst, the lifted function, and the property name of\n\t * the original function on src.\n\t * @param {(object|function)?} dst option destination host onto which to place lifted\n\t * functions. If not provided, liftAll returns a new object.\n\t * @returns {*} If dst is provided, returns dst with lifted functions as\n\t * properties. If dst not provided, returns a new object with lifted functions.\n\t */\n\tfunction liftAll(src, combine, dst) {\n\t\treturn _liftAll(lift, combine, dst, src);\n\t}\n\n\t/**\n\t * Takes an object that responds to the resolver interface, and returns\n\t * a function that will resolve or reject it depending on how it is called.\n\t *\n\t * @example\n\t *\tfunction callbackTakingFunction(callback) {\n\t *\t\tif(somethingWrongHappened) {\n\t *\t\t\tcallback(error);\n\t *\t\t} else {\n\t *\t\t\tcallback(null, interestingValue);\n\t *\t\t}\n\t *\t}\n\t *\n\t *\tvar when = require('when'), nodefn = require('when/node/function');\n\t *\n\t *\tvar deferred = when.defer();\n\t *\tcallbackTakingFunction(nodefn.createCallback(deferred.resolver));\n\t *\n\t *\tdeferred.promise.then(function(interestingValue) {\n\t *\t\t// Use interestingValue\n\t *\t});\n\t *\n\t * @param {Resolver} resolver that will be 'attached' to the callback\n\t * @returns {Function} a node-style callback function\n\t */\n\tfunction createCallback(resolver) {\n\t\treturn function(err, value) {\n\t\t\tif(err) {\n\t\t\t\tresolver.reject(err);\n\t\t\t} else if(arguments.length > 2) {\n\t\t\t\tresolver.resolve(slice.call(arguments, 1));\n\t\t\t} else {\n\t\t\t\tresolver.resolve(value);\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Attaches a node-style callback to a promise, ensuring the callback is\n\t * called for either fulfillment or rejection. Returns a promise with the same\n\t * state as the passed-in promise.\n\t *\n\t * @example\n\t *\tvar deferred = when.defer();\n\t *\n\t *\tfunction callback(err, value) {\n\t *\t\t// Handle err or use value\n\t *\t}\n\t *\n\t *\tbindCallback(deferred.promise, callback);\n\t *\n\t *\tdeferred.resolve('interesting value');\n\t *\n\t * @param {Promise} promise The promise to be attached to.\n\t * @param {Function} callback The node-style callback to attach.\n\t * @returns {Promise} A promise with the same state as the passed-in promise.\n\t */\n\tfunction bindCallback(promise, callback) {\n\t\tpromise = when(promise);\n\n\t\tif (callback) {\n\t\t\tpromise.then(success, wrapped);\n\t\t}\n\n\t\treturn promise;\n\n\t\tfunction success(value) {\n\t\t\twrapped(null, value);\n\t\t}\n\n\t\tfunction wrapped(err, value) {\n\t\t\tsetTimer(function () {\n\t\t\t\tcallback(err, value);\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Takes a node-style callback and returns new function that accepts a\n\t * promise, calling the original callback when the promise is either\n\t * fulfilled or rejected with the appropriate arguments.\n\t *\n\t * @example\n\t *\tvar deferred = when.defer();\n\t *\n\t *\tfunction callback(err, value) {\n\t *\t\t// Handle err or use value\n\t *\t}\n\t *\n\t *\tvar wrapped = liftCallback(callback);\n\t *\n\t *\t// `wrapped` can now be passed around at will\n\t *\twrapped(deferred.promise);\n\t *\n\t *\tdeferred.resolve('interesting value');\n\t *\n\t * @param {Function} callback The node-style callback to wrap.\n\t * @returns {Function} The lifted, promise-accepting function.\n\t */\n\tfunction liftCallback(callback) {\n\t\treturn function(promise) {\n\t\t\treturn bindCallback(promise, callback);\n\t\t};\n\t}\n});\n\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n\n","/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * parallel.js\n *\n * Run a set of task functions in parallel. All tasks will\n * receive the same args\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar all = when.Promise.all;\n\tvar slice = Array.prototype.slice;\n\n\t/**\n\t * Run array of tasks in parallel\n\t * @param tasks {Array|Promise} array or promiseForArray of task functions\n\t * @param [args] {*} arguments to be passed to all tasks\n\t * @return {Promise} promise for array containing the\n\t * result of each task in the array position corresponding\n\t * to position of the task in the tasks array\n\t */\n\treturn function parallel(tasks /*, args... */) {\n\t\treturn all(slice.call(arguments, 1)).then(function(args) {\n\t\t\treturn when.map(tasks, function(task) {\n\t\t\t\treturn task.apply(void 0, args);\n\t\t\t});\n\t\t});\n\t};\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n","/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * pipeline.js\n *\n * Run a set of task functions in sequence, passing the result\n * of the previous as an argument to the next. Like a shell\n * pipeline, e.g. `cat file.txt | grep 'foo' | sed -e 's/foo/bar/g'\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar all = when.Promise.all;\n\tvar slice = Array.prototype.slice;\n\n\t/**\n\t * Run array of tasks in a pipeline where the next\n\t * tasks receives the result of the previous. The first task\n\t * will receive the initialArgs as its argument list.\n\t * @param tasks {Array|Promise} array or promise for array of task functions\n\t * @param [initialArgs...] {*} arguments to be passed to the first task\n\t * @return {Promise} promise for return value of the final task\n\t */\n\treturn function pipeline(tasks /* initialArgs... */) {\n\t\t// Self-optimizing function to run first task with multiple\n\t\t// args using apply, but subsequence tasks via direct invocation\n\t\tvar runTask = function(args, task) {\n\t\t\trunTask = function(arg, task) {\n\t\t\t\treturn task(arg);\n\t\t\t};\n\n\t\t\treturn task.apply(null, args);\n\t\t};\n\n\t\treturn all(slice.call(arguments, 1)).then(function(args) {\n\t\t\treturn when.reduce(tasks, function(arg, task) {\n\t\t\t\treturn runTask(arg, task);\n\t\t\t}, args);\n\t\t});\n\t};\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n","/** @license MIT License (c) copyright 2012-2013 original author or authors */\n\n/**\n * poll.js\n *\n * Helper that polls until cancelled or for a condition to become true.\n *\n * @author Scott Andrews\n */\n\n(function (define) { 'use strict';\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar attempt = when['try'];\n\tvar cancelable = require('./cancelable');\n\n\t/**\n\t * Periodically execute the task function on the msec delay. The result of\n\t * the task may be verified by watching for a condition to become true. The\n\t * returned deferred is cancellable if the polling needs to be cancelled\n\t * externally before reaching a resolved state.\n\t *\n\t * The next vote is scheduled after the results of the current vote are\n\t * verified and rejected.\n\t *\n\t * Polling may be terminated by the verifier returning a truthy value,\n\t * invoking cancel() on the returned promise, or the task function returning\n\t * a rejected promise.\n\t *\n\t * Usage:\n\t *\n\t * var count = 0;\n\t * function doSomething() { return count++ }\n\t *\n\t * // poll until cancelled\n\t * var p = poll(doSomething, 1000);\n\t * ...\n\t * p.cancel();\n\t *\n\t * // poll until condition is met\n\t * poll(doSomething, 1000, function(result) { return result > 10 })\n\t * .then(function(result) { assert result == 10 });\n\t *\n\t * // delay first vote\n\t * poll(doSomething, 1000, anyFunc, true);\n\t *\n\t * @param task {Function} function that is executed after every timeout\n\t * @param interval {number|Function} timeout in milliseconds\n\t * @param [verifier] {Function} function to evaluate the result of the vote.\n\t * May return a {Promise} or a {Boolean}. Rejecting the promise or a\n\t * falsey value will schedule the next vote.\n\t * @param [delayInitialTask] {boolean} if truthy, the first vote is scheduled\n\t * instead of immediate\n\t *\n\t * @returns {Promise}\n\t */\n\treturn function poll(task, interval, verifier, delayInitialTask) {\n\t\tvar deferred, canceled, reject;\n\n\t\tcanceled = false;\n\t\tdeferred = cancelable(when.defer(), function () { canceled = true; });\n\t\treject = deferred.reject;\n\n\t\tverifier = verifier || function () { return false; };\n\n\t\tif (typeof interval !== 'function') {\n\t\t\tinterval = (function (interval) {\n\t\t\t\treturn function () { return when().delay(interval); };\n\t\t\t})(interval);\n\t\t}\n\n\t\tfunction certify(result) {\n\t\t\tdeferred.resolve(result);\n\t\t}\n\n\t\tfunction schedule(result) {\n\t\t\tattempt(interval).then(vote, reject);\n\t\t\tif (result !== void 0) {\n\t\t\t\tdeferred.notify(result);\n\t\t\t}\n\t\t}\n\n\t\tfunction vote() {\n\t\t\tif (canceled) { return; }\n\t\t\twhen(task(),\n\t\t\t\tfunction (result) {\n\t\t\t\t\twhen(verifier(result),\n\t\t\t\t\t\tfunction (verification) {\n\t\t\t\t\t\t\treturn verification ? certify(result) : schedule(result);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction () { schedule(result); }\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\treject\n\t\t\t);\n\t\t}\n\n\t\tif (delayInitialTask) {\n\t\t\tschedule();\n\t\t} else {\n\t\t\t// if task() is blocking, vote will also block\n\t\t\tvote();\n\t\t}\n\n\t\t// make the promise cancelable\n\t\tdeferred.promise = Object.create(deferred.promise);\n\t\tdeferred.promise.cancel = deferred.cancel;\n\n\t\treturn deferred.promise;\n\t};\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n","/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * sequence.js\n *\n * Run a set of task functions in sequence. All tasks will\n * receive the same args.\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\tvar all = when.Promise.all;\n\tvar slice = Array.prototype.slice;\n\n\t/**\n\t * Run array of tasks in sequence with no overlap\n\t * @param tasks {Array|Promise} array or promiseForArray of task functions\n\t * @param [args] {*} arguments to be passed to all tasks\n\t * @return {Promise} promise for an array containing\n\t * the result of each task in the array position corresponding\n\t * to position of the task in the tasks array\n\t */\n\treturn function sequence(tasks /*, args... */) {\n\t\tvar results = [];\n\n\t\treturn all(slice.call(arguments, 1)).then(function(args) {\n\t\t\treturn when.reduce(tasks, function(results, task) {\n\t\t\t\treturn when(task.apply(void 0, args), addResult);\n\t\t\t}, results);\n\t\t});\n\n\t\tfunction addResult(result) {\n\t\t\tresults.push(result);\n\t\t\treturn results;\n\t\t}\n\t};\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n","/** @license MIT License (c) copyright 2011-2013 original author or authors */\n\n/**\n * timeout.js\n *\n * Helper that returns a promise that rejects after a specified timeout,\n * if not explicitly resolved or rejected before that.\n *\n * @author Brian Cavalier\n * @author John Hann\n */\n\n(function(define) {\ndefine(function(require) {\n\n\tvar when = require('./when');\n\n /**\n\t * @deprecated Use when(trigger).timeout(ms)\n */\n return function timeout(msec, trigger) {\n\t\treturn when(trigger).timeout(msec);\n };\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n\n\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n\n/**\n * Promises/A+ and when() implementation\n * when is part of the cujoJS family of libraries (http://cujojs.com/)\n * @author Brian Cavalier\n * @author John Hann\n */\n(function(define) { 'use strict';\ndefine(function (require) {\n\n\tvar timed = require('./lib/decorators/timed');\n\tvar array = require('./lib/decorators/array');\n\tvar flow = require('./lib/decorators/flow');\n\tvar fold = require('./lib/decorators/fold');\n\tvar inspect = require('./lib/decorators/inspect');\n\tvar generate = require('./lib/decorators/iterate');\n\tvar progress = require('./lib/decorators/progress');\n\tvar withThis = require('./lib/decorators/with');\n\tvar unhandledRejection = require('./lib/decorators/unhandledRejection');\n\tvar TimeoutError = require('./lib/TimeoutError');\n\n\tvar Promise = [array, flow, fold, generate, progress,\n\t\tinspect, withThis, timed, unhandledRejection]\n\t\t.reduce(function(Promise, feature) {\n\t\t\treturn feature(Promise);\n\t\t}, require('./lib/Promise'));\n\n\tvar apply = require('./lib/apply')(Promise);\n\n\t// Public API\n\n\twhen.promise = promise; // Create a pending promise\n\twhen.resolve = Promise.resolve; // Create a resolved promise\n\twhen.reject = Promise.reject; // Create a rejected promise\n\n\twhen.lift = lift; // lift a function to return promises\n\twhen['try'] = attempt; // call a function and return a promise\n\twhen.attempt = attempt; // alias for when.try\n\n\twhen.iterate = Promise.iterate; // DEPRECATED (use cujojs/most streams) Generate a stream of promises\n\twhen.unfold = Promise.unfold; // DEPRECATED (use cujojs/most streams) Generate a stream of promises\n\n\twhen.join = join; // Join 2 or more promises\n\n\twhen.all = all; // Resolve a list of promises\n\twhen.settle = settle; // Settle a list of promises\n\n\twhen.any = lift(Promise.any); // One-winner race\n\twhen.some = lift(Promise.some); // Multi-winner race\n\twhen.race = lift(Promise.race); // First-to-settle race\n\n\twhen.map = map; // Array.map() for promises\n\twhen.filter = filter; // Array.filter() for promises\n\twhen.reduce = lift(Promise.reduce); // Array.reduce() for promises\n\twhen.reduceRight = lift(Promise.reduceRight); // Array.reduceRight() for promises\n\n\twhen.isPromiseLike = isPromiseLike; // Is something promise-like, aka thenable\n\n\twhen.Promise = Promise; // Promise constructor\n\twhen.defer = defer; // Create a {promise, resolve, reject} tuple\n\n\t// Error types\n\n\twhen.TimeoutError = TimeoutError;\n\n\t/**\n\t * Get a trusted promise for x, or by transforming x with onFulfilled\n\t *\n\t * @param {*} x\n\t * @param {function?} onFulfilled callback to be called when x is\n\t * successfully fulfilled. If promiseOrValue is an immediate value, callback\n\t * will be invoked immediately.\n\t * @param {function?} onRejected callback to be called when x is\n\t * rejected.\n\t * @param {function?} onProgress callback to be called when progress updates\n\t * are issued for x. @deprecated\n\t * @returns {Promise} a new promise that will fulfill with the return\n\t * value of callback or errback or the completion value of promiseOrValue if\n\t * callback and/or errback is not supplied.\n\t */\n\tfunction when(x, onFulfilled, onRejected, onProgress) {\n\t\tvar p = Promise.resolve(x);\n\t\tif (arguments.length < 2) {\n\t\t\treturn p;\n\t\t}\n\n\t\treturn p.then(onFulfilled, onRejected, onProgress);\n\t}\n\n\t/**\n\t * Creates a new promise whose fate is determined by resolver.\n\t * @param {function} resolver function(resolve, reject, notify)\n\t * @returns {Promise} promise whose fate is determine by resolver\n\t */\n\tfunction promise(resolver) {\n\t\treturn new Promise(resolver);\n\t}\n\n\t/**\n\t * Lift the supplied function, creating a version of f that returns\n\t * promises, and accepts promises as arguments.\n\t * @param {function} f\n\t * @returns {Function} version of f that returns promises\n\t */\n\tfunction lift(f) {\n\t\treturn function() {\n\t\t\tfor(var i=0, l=arguments.length, a=new Array(l); i<l; ++i) {\n\t\t\t\ta[i] = arguments[i];\n\t\t\t}\n\t\t\treturn apply(f, this, a);\n\t\t};\n\t}\n\n\t/**\n\t * Call f in a future turn, with the supplied args, and return a promise\n\t * for the result.\n\t * @param {function} f\n\t * @returns {Promise}\n\t */\n\tfunction attempt(f /*, args... */) {\n\t\t/*jshint validthis:true */\n\t\tfor(var i=0, l=arguments.length-1, a=new Array(l); i<l; ++i) {\n\t\t\ta[i] = arguments[i+1];\n\t\t}\n\t\treturn apply(f, this, a);\n\t}\n\n\t/**\n\t * Creates a {promise, resolver} pair, either or both of which\n\t * may be given out safely to consumers.\n\t * @return {{promise: Promise, resolve: function, reject: function, notify: function}}\n\t */\n\tfunction defer() {\n\t\treturn new Deferred();\n\t}\n\n\tfunction Deferred() {\n\t\tvar p = Promise._defer();\n\n\t\tfunction resolve(x) { p._handler.resolve(x); }\n\t\tfunction reject(x) { p._handler.reject(x); }\n\t\tfunction notify(x) { p._handler.notify(x); }\n\n\t\tthis.promise = p;\n\t\tthis.resolve = resolve;\n\t\tthis.reject = reject;\n\t\tthis.notify = notify;\n\t\tthis.resolver = { resolve: resolve, reject: reject, notify: notify };\n\t}\n\n\t/**\n\t * Determines if x is promise-like, i.e. a thenable object\n\t * NOTE: Will return true for *any thenable object*, and isn't truly\n\t * safe, since it may attempt to access the `then` property of x (i.e.\n\t * clever/malicious getters may do weird things)\n\t * @param {*} x anything\n\t * @returns {boolean} true if x is promise-like\n\t */\n\tfunction isPromiseLike(x) {\n\t\treturn x && typeof x.then === 'function';\n\t}\n\n\t/**\n\t * Return a promise that will resolve only once all the supplied arguments\n\t * have resolved. The resolution value of the returned promise will be an array\n\t * containing the resolution values of each of the arguments.\n\t * @param {...*} arguments may be a mix of promises and values\n\t * @returns {Promise}\n\t */\n\tfunction join(/* ...promises */) {\n\t\treturn Promise.all(arguments);\n\t}\n\n\t/**\n\t * Return a promise that will fulfill once all input promises have\n\t * fulfilled, or reject when any one input promise rejects.\n\t * @param {array|Promise} promises array (or promise for an array) of promises\n\t * @returns {Promise}\n\t */\n\tfunction all(promises) {\n\t\treturn when(promises, Promise.all);\n\t}\n\n\t/**\n\t * Return a promise that will always fulfill with an array containing\n\t * the outcome states of all input promises. The returned promise\n\t * will only reject if `promises` itself is a rejected promise.\n\t * @param {array|Promise} promises array (or promise for an array) of promises\n\t * @returns {Promise} promise for array of settled state descriptors\n\t */\n\tfunction settle(promises) {\n\t\treturn when(promises, Promise.settle);\n\t}\n\n\t/**\n\t * Promise-aware array map function, similar to `Array.prototype.map()`,\n\t * but input array may contain promises or values.\n\t * @param {Array|Promise} promises array of anything, may contain promises and values\n\t * @param {function(x:*, index:Number):*} mapFunc map function which may\n\t * return a promise or value\n\t * @returns {Promise} promise that will fulfill with an array of mapped values\n\t * or reject if any input promise rejects.\n\t */\n\tfunction map(promises, mapFunc) {\n\t\treturn when(promises, function(promises) {\n\t\t\treturn Promise.map(promises, mapFunc);\n\t\t});\n\t}\n\n\t/**\n\t * Filter the provided array of promises using the provided predicate. Input may\n\t * contain promises and values\n\t * @param {Array|Promise} promises array of promises and values\n\t * @param {function(x:*, index:Number):boolean} predicate filtering predicate.\n\t * Must return truthy (or promise for truthy) for items to retain.\n\t * @returns {Promise} promise that will fulfill with an array containing all items\n\t * for which predicate returned truthy.\n\t */\n\tfunction filter(promises, predicate) {\n\t\treturn when(promises, function(promises) {\n\t\t\treturn Promise.filter(promises, predicate);\n\t\t});\n\t}\n\n\treturn when;\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n"]} \ No newline at end of file
diff --git a/node_modules/when/es6-shim/Promise.browserify-es6.js b/node_modules/when/es6-shim/Promise.browserify-es6.js
deleted file mode 100644
index 751208fe9..000000000
--- a/node_modules/when/es6-shim/Promise.browserify-es6.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-/**
- * ES6 global Promise shim
- */
-var unhandledRejections = require('../lib/decorators/unhandledRejection');
-var PromiseConstructor = unhandledRejections(require('../lib/Promise'));
-
-module.exports = typeof global != 'undefined' ? (global.Promise = PromiseConstructor)
- : typeof self != 'undefined' ? (self.Promise = PromiseConstructor)
- : PromiseConstructor;
diff --git a/node_modules/when/es6-shim/Promise.js b/node_modules/when/es6-shim/Promise.js
deleted file mode 100644
index 655a3b447..000000000
--- a/node_modules/when/es6-shim/Promise.js
+++ /dev/null
@@ -1,1299 +0,0 @@
-!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.Promise=e():"undefined"!=typeof global?global.Promise=e():"undefined"!=typeof self&&(self.Promise=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-/**
- * ES6 global Promise shim
- */
-var unhandledRejections = require('../lib/decorators/unhandledRejection');
-var PromiseConstructor = unhandledRejections(require('../lib/Promise'));
-
-module.exports = typeof global != 'undefined' ? (global.Promise = PromiseConstructor)
- : typeof self != 'undefined' ? (self.Promise = PromiseConstructor)
- : PromiseConstructor;
-
-},{"../lib/Promise":2,"../lib/decorators/unhandledRejection":4}],2:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function (require) {
-
- var makePromise = require('./makePromise');
- var Scheduler = require('./Scheduler');
- var async = require('./env').asap;
-
- return makePromise({
- scheduler: new Scheduler(async)
- });
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-},{"./Scheduler":3,"./env":5,"./makePromise":7}],3:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- // Credit to Twisol (https://github.com/Twisol) for suggesting
- // this type of extensible queue + trampoline approach for next-tick conflation.
-
- /**
- * Async task scheduler
- * @param {function} async function to schedule a single async function
- * @constructor
- */
- function Scheduler(async) {
- this._async = async;
- this._running = false;
-
- this._queue = this;
- this._queueLen = 0;
- this._afterQueue = {};
- this._afterQueueLen = 0;
-
- var self = this;
- this.drain = function() {
- self._drain();
- };
- }
-
- /**
- * Enqueue a task
- * @param {{ run:function }} task
- */
- Scheduler.prototype.enqueue = function(task) {
- this._queue[this._queueLen++] = task;
- this.run();
- };
-
- /**
- * Enqueue a task to run after the main task queue
- * @param {{ run:function }} task
- */
- Scheduler.prototype.afterQueue = function(task) {
- this._afterQueue[this._afterQueueLen++] = task;
- this.run();
- };
-
- Scheduler.prototype.run = function() {
- if (!this._running) {
- this._running = true;
- this._async(this.drain);
- }
- };
-
- /**
- * Drain the handler queue entirely, and then the after queue
- */
- Scheduler.prototype._drain = function() {
- var i = 0;
- for (; i < this._queueLen; ++i) {
- this._queue[i].run();
- this._queue[i] = void 0;
- }
-
- this._queueLen = 0;
- this._running = false;
-
- for (i = 0; i < this._afterQueueLen; ++i) {
- this._afterQueue[i].run();
- this._afterQueue[i] = void 0;
- }
-
- this._afterQueueLen = 0;
- };
-
- return Scheduler;
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],4:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var setTimer = require('../env').setTimer;
- var format = require('../format');
-
- return function unhandledRejection(Promise) {
-
- var logError = noop;
- var logInfo = noop;
- var localConsole;
-
- if(typeof console !== 'undefined') {
- // Alias console to prevent things like uglify's drop_console option from
- // removing console.log/error. Unhandled rejections fall into the same
- // category as uncaught exceptions, and build tools shouldn't silence them.
- localConsole = console;
- logError = typeof localConsole.error !== 'undefined'
- ? function (e) { localConsole.error(e); }
- : function (e) { localConsole.log(e); };
-
- logInfo = typeof localConsole.info !== 'undefined'
- ? function (e) { localConsole.info(e); }
- : function (e) { localConsole.log(e); };
- }
-
- Promise.onPotentiallyUnhandledRejection = function(rejection) {
- enqueue(report, rejection);
- };
-
- Promise.onPotentiallyUnhandledRejectionHandled = function(rejection) {
- enqueue(unreport, rejection);
- };
-
- Promise.onFatalRejection = function(rejection) {
- enqueue(throwit, rejection.value);
- };
-
- var tasks = [];
- var reported = [];
- var running = null;
-
- function report(r) {
- if(!r.handled) {
- reported.push(r);
- logError('Potentially unhandled rejection [' + r.id + '] ' + format.formatError(r.value));
- }
- }
-
- function unreport(r) {
- var i = reported.indexOf(r);
- if(i >= 0) {
- reported.splice(i, 1);
- logInfo('Handled previous rejection [' + r.id + '] ' + format.formatObject(r.value));
- }
- }
-
- function enqueue(f, x) {
- tasks.push(f, x);
- if(running === null) {
- running = setTimer(flush, 0);
- }
- }
-
- function flush() {
- running = null;
- while(tasks.length > 0) {
- tasks.shift()(tasks.shift());
- }
- }
-
- return Promise;
- };
-
- function throwit(e) {
- throw e;
- }
-
- function noop() {}
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{"../env":5,"../format":6}],5:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-/*global process,document,setTimeout,clearTimeout,MutationObserver,WebKitMutationObserver*/
-(function(define) { 'use strict';
-define(function(require) {
- /*jshint maxcomplexity:6*/
-
- // Sniff "best" async scheduling option
- // Prefer process.nextTick or MutationObserver, then check for
- // setTimeout, and finally vertx, since its the only env that doesn't
- // have setTimeout
-
- var MutationObs;
- var capturedSetTimeout = typeof setTimeout !== 'undefined' && setTimeout;
-
- // Default env
- var setTimer = function(f, ms) { return setTimeout(f, ms); };
- var clearTimer = function(t) { return clearTimeout(t); };
- var asap = function (f) { return capturedSetTimeout(f, 0); };
-
- // Detect specific env
- if (isNode()) { // Node
- asap = function (f) { return process.nextTick(f); };
-
- } else if (MutationObs = hasMutationObserver()) { // Modern browser
- asap = initMutationObserver(MutationObs);
-
- } else if (!capturedSetTimeout) { // vert.x
- var vertxRequire = require;
- var vertx = vertxRequire('vertx');
- setTimer = function (f, ms) { return vertx.setTimer(ms, f); };
- clearTimer = vertx.cancelTimer;
- asap = vertx.runOnLoop || vertx.runOnContext;
- }
-
- return {
- setTimer: setTimer,
- clearTimer: clearTimer,
- asap: asap
- };
-
- function isNode () {
- return typeof process !== 'undefined' &&
- Object.prototype.toString.call(process) === '[object process]';
- }
-
- function hasMutationObserver () {
- return (typeof MutationObserver !== 'undefined' && MutationObserver) ||
- (typeof WebKitMutationObserver !== 'undefined' && WebKitMutationObserver);
- }
-
- function initMutationObserver(MutationObserver) {
- var scheduled;
- var node = document.createTextNode('');
- var o = new MutationObserver(run);
- o.observe(node, { characterData: true });
-
- function run() {
- var f = scheduled;
- scheduled = void 0;
- f();
- }
-
- var i = 0;
- return function (f) {
- scheduled = f;
- node.data = (i ^= 1);
- };
- }
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-
-},{}],6:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return {
- formatError: formatError,
- formatObject: formatObject,
- tryStringify: tryStringify
- };
-
- /**
- * Format an error into a string. If e is an Error and has a stack property,
- * it's returned. Otherwise, e is formatted using formatObject, with a
- * warning added about e not being a proper Error.
- * @param {*} e
- * @returns {String} formatted string, suitable for output to developers
- */
- function formatError(e) {
- var s = typeof e === 'object' && e !== null && (e.stack || e.message) ? e.stack || e.message : formatObject(e);
- return e instanceof Error ? s : s + ' (WARNING: non-Error used)';
- }
-
- /**
- * Format an object, detecting "plain" objects and running them through
- * JSON.stringify if possible.
- * @param {Object} o
- * @returns {string}
- */
- function formatObject(o) {
- var s = String(o);
- if(s === '[object Object]' && typeof JSON !== 'undefined') {
- s = tryStringify(o, s);
- }
- return s;
- }
-
- /**
- * Try to return the result of JSON.stringify(x). If that fails, return
- * defaultValue
- * @param {*} x
- * @param {*} defaultValue
- * @returns {String|*} JSON.stringify(x) or defaultValue
- */
- function tryStringify(x, defaultValue) {
- try {
- return JSON.stringify(x);
- } catch(e) {
- return defaultValue;
- }
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}],7:[function(require,module,exports){
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function makePromise(environment) {
-
- var tasks = environment.scheduler;
- var emitRejection = initEmitRejection();
-
- var objectCreate = Object.create ||
- function(proto) {
- function Child() {}
- Child.prototype = proto;
- return new Child();
- };
-
- /**
- * Create a promise whose fate is determined by resolver
- * @constructor
- * @returns {Promise} promise
- * @name Promise
- */
- function Promise(resolver, handler) {
- this._handler = resolver === Handler ? handler : init(resolver);
- }
-
- /**
- * Run the supplied resolver
- * @param resolver
- * @returns {Pending}
- */
- function init(resolver) {
- var handler = new Pending();
-
- try {
- resolver(promiseResolve, promiseReject, promiseNotify);
- } catch (e) {
- promiseReject(e);
- }
-
- return handler;
-
- /**
- * Transition from pre-resolution state to post-resolution state, notifying
- * all listeners of the ultimate fulfillment or rejection
- * @param {*} x resolution value
- */
- function promiseResolve (x) {
- handler.resolve(x);
- }
- /**
- * Reject this promise with reason, which will be used verbatim
- * @param {Error|*} reason rejection reason, strongly suggested
- * to be an Error type
- */
- function promiseReject (reason) {
- handler.reject(reason);
- }
-
- /**
- * @deprecated
- * Issue a progress event, notifying all progress listeners
- * @param {*} x progress event payload to pass to all listeners
- */
- function promiseNotify (x) {
- handler.notify(x);
- }
- }
-
- // Creation
-
- Promise.resolve = resolve;
- Promise.reject = reject;
- Promise.never = never;
-
- Promise._defer = defer;
- Promise._handler = getHandler;
-
- /**
- * Returns a trusted promise. If x is already a trusted promise, it is
- * returned, otherwise returns a new trusted Promise which follows x.
- * @param {*} x
- * @return {Promise} promise
- */
- function resolve(x) {
- return isPromise(x) ? x
- : new Promise(Handler, new Async(getHandler(x)));
- }
-
- /**
- * Return a reject promise with x as its reason (x is used verbatim)
- * @param {*} x
- * @returns {Promise} rejected promise
- */
- function reject(x) {
- return new Promise(Handler, new Async(new Rejected(x)));
- }
-
- /**
- * Return a promise that remains pending forever
- * @returns {Promise} forever-pending promise.
- */
- function never() {
- return foreverPendingPromise; // Should be frozen
- }
-
- /**
- * Creates an internal {promise, resolver} pair
- * @private
- * @returns {Promise}
- */
- function defer() {
- return new Promise(Handler, new Pending());
- }
-
- // Transformation and flow control
-
- /**
- * Transform this promise's fulfillment value, returning a new Promise
- * for the transformed result. If the promise cannot be fulfilled, onRejected
- * is called with the reason. onProgress *may* be called with updates toward
- * this promise's fulfillment.
- * @param {function=} onFulfilled fulfillment handler
- * @param {function=} onRejected rejection handler
- * @param {function=} onProgress @deprecated progress handler
- * @return {Promise} new promise
- */
- Promise.prototype.then = function(onFulfilled, onRejected, onProgress) {
- var parent = this._handler;
- var state = parent.join().state();
-
- if ((typeof onFulfilled !== 'function' && state > 0) ||
- (typeof onRejected !== 'function' && state < 0)) {
- // Short circuit: value will not change, simply share handler
- return new this.constructor(Handler, parent);
- }
-
- var p = this._beget();
- var child = p._handler;
-
- parent.chain(child, parent.receiver, onFulfilled, onRejected, onProgress);
-
- return p;
- };
-
- /**
- * If this promise cannot be fulfilled due to an error, call onRejected to
- * handle the error. Shortcut for .then(undefined, onRejected)
- * @param {function?} onRejected
- * @return {Promise}
- */
- Promise.prototype['catch'] = function(onRejected) {
- return this.then(void 0, onRejected);
- };
-
- /**
- * Creates a new, pending promise of the same type as this promise
- * @private
- * @returns {Promise}
- */
- Promise.prototype._beget = function() {
- return begetFrom(this._handler, this.constructor);
- };
-
- function begetFrom(parent, Promise) {
- var child = new Pending(parent.receiver, parent.join().context);
- return new Promise(Handler, child);
- }
-
- // Array combinators
-
- Promise.all = all;
- Promise.race = race;
- Promise._traverse = traverse;
-
- /**
- * Return a promise that will fulfill when all promises in the
- * input array have fulfilled, or will reject when one of the
- * promises rejects.
- * @param {array} promises array of promises
- * @returns {Promise} promise for array of fulfillment values
- */
- function all(promises) {
- return traverseWith(snd, null, promises);
- }
-
- /**
- * Array<Promise<X>> -> Promise<Array<f(X)>>
- * @private
- * @param {function} f function to apply to each promise's value
- * @param {Array} promises array of promises
- * @returns {Promise} promise for transformed values
- */
- function traverse(f, promises) {
- return traverseWith(tryCatch2, f, promises);
- }
-
- function traverseWith(tryMap, f, promises) {
- var handler = typeof f === 'function' ? mapAt : settleAt;
-
- var resolver = new Pending();
- var pending = promises.length >>> 0;
- var results = new Array(pending);
-
- for (var i = 0, x; i < promises.length && !resolver.resolved; ++i) {
- x = promises[i];
-
- if (x === void 0 && !(i in promises)) {
- --pending;
- continue;
- }
-
- traverseAt(promises, handler, i, x, resolver);
- }
-
- if(pending === 0) {
- resolver.become(new Fulfilled(results));
- }
-
- return new Promise(Handler, resolver);
-
- function mapAt(i, x, resolver) {
- if(!resolver.resolved) {
- traverseAt(promises, settleAt, i, tryMap(f, x, i), resolver);
- }
- }
-
- function settleAt(i, x, resolver) {
- results[i] = x;
- if(--pending === 0) {
- resolver.become(new Fulfilled(results));
- }
- }
- }
-
- function traverseAt(promises, handler, i, x, resolver) {
- if (maybeThenable(x)) {
- var h = getHandlerMaybeThenable(x);
- var s = h.state();
-
- if (s === 0) {
- h.fold(handler, i, void 0, resolver);
- } else if (s > 0) {
- handler(i, h.value, resolver);
- } else {
- resolver.become(h);
- visitRemaining(promises, i+1, h);
- }
- } else {
- handler(i, x, resolver);
- }
- }
-
- Promise._visitRemaining = visitRemaining;
- function visitRemaining(promises, start, handler) {
- for(var i=start; i<promises.length; ++i) {
- markAsHandled(getHandler(promises[i]), handler);
- }
- }
-
- function markAsHandled(h, handler) {
- if(h === handler) {
- return;
- }
-
- var s = h.state();
- if(s === 0) {
- h.visit(h, void 0, h._unreport);
- } else if(s < 0) {
- h._unreport();
- }
- }
-
- /**
- * Fulfill-reject competitive race. Return a promise that will settle
- * to the same state as the earliest input promise to settle.
- *
- * WARNING: The ES6 Promise spec requires that race()ing an empty array
- * must return a promise that is pending forever. This implementation
- * returns a singleton forever-pending promise, the same singleton that is
- * returned by Promise.never(), thus can be checked with ===
- *
- * @param {array} promises array of promises to race
- * @returns {Promise} if input is non-empty, a promise that will settle
- * to the same outcome as the earliest input promise to settle. if empty
- * is empty, returns a promise that will never settle.
- */
- function race(promises) {
- if(typeof promises !== 'object' || promises === null) {
- return reject(new TypeError('non-iterable passed to race()'));
- }
-
- // Sigh, race([]) is untestable unless we return *something*
- // that is recognizable without calling .then() on it.
- return promises.length === 0 ? never()
- : promises.length === 1 ? resolve(promises[0])
- : runRace(promises);
- }
-
- function runRace(promises) {
- var resolver = new Pending();
- var i, x, h;
- for(i=0; i<promises.length; ++i) {
- x = promises[i];
- if (x === void 0 && !(i in promises)) {
- continue;
- }
-
- h = getHandler(x);
- if(h.state() !== 0) {
- resolver.become(h);
- visitRemaining(promises, i+1, h);
- break;
- } else {
- h.visit(resolver, resolver.resolve, resolver.reject);
- }
- }
- return new Promise(Handler, resolver);
- }
-
- // Promise internals
- // Below this, everything is @private
-
- /**
- * Get an appropriate handler for x, without checking for cycles
- * @param {*} x
- * @returns {object} handler
- */
- function getHandler(x) {
- if(isPromise(x)) {
- return x._handler.join();
- }
- return maybeThenable(x) ? getHandlerUntrusted(x) : new Fulfilled(x);
- }
-
- /**
- * Get a handler for thenable x.
- * NOTE: You must only call this if maybeThenable(x) == true
- * @param {object|function|Promise} x
- * @returns {object} handler
- */
- function getHandlerMaybeThenable(x) {
- return isPromise(x) ? x._handler.join() : getHandlerUntrusted(x);
- }
-
- /**
- * Get a handler for potentially untrusted thenable x
- * @param {*} x
- * @returns {object} handler
- */
- function getHandlerUntrusted(x) {
- try {
- var untrustedThen = x.then;
- return typeof untrustedThen === 'function'
- ? new Thenable(untrustedThen, x)
- : new Fulfilled(x);
- } catch(e) {
- return new Rejected(e);
- }
- }
-
- /**
- * Handler for a promise that is pending forever
- * @constructor
- */
- function Handler() {}
-
- Handler.prototype.when
- = Handler.prototype.become
- = Handler.prototype.notify // deprecated
- = Handler.prototype.fail
- = Handler.prototype._unreport
- = Handler.prototype._report
- = noop;
-
- Handler.prototype._state = 0;
-
- Handler.prototype.state = function() {
- return this._state;
- };
-
- /**
- * Recursively collapse handler chain to find the handler
- * nearest to the fully resolved value.
- * @returns {object} handler nearest the fully resolved value
- */
- Handler.prototype.join = function() {
- var h = this;
- while(h.handler !== void 0) {
- h = h.handler;
- }
- return h;
- };
-
- Handler.prototype.chain = function(to, receiver, fulfilled, rejected, progress) {
- this.when({
- resolver: to,
- receiver: receiver,
- fulfilled: fulfilled,
- rejected: rejected,
- progress: progress
- });
- };
-
- Handler.prototype.visit = function(receiver, fulfilled, rejected, progress) {
- this.chain(failIfRejected, receiver, fulfilled, rejected, progress);
- };
-
- Handler.prototype.fold = function(f, z, c, to) {
- this.when(new Fold(f, z, c, to));
- };
-
- /**
- * Handler that invokes fail() on any handler it becomes
- * @constructor
- */
- function FailIfRejected() {}
-
- inherit(Handler, FailIfRejected);
-
- FailIfRejected.prototype.become = function(h) {
- h.fail();
- };
-
- var failIfRejected = new FailIfRejected();
-
- /**
- * Handler that manages a queue of consumers waiting on a pending promise
- * @constructor
- */
- function Pending(receiver, inheritedContext) {
- Promise.createContext(this, inheritedContext);
-
- this.consumers = void 0;
- this.receiver = receiver;
- this.handler = void 0;
- this.resolved = false;
- }
-
- inherit(Handler, Pending);
-
- Pending.prototype._state = 0;
-
- Pending.prototype.resolve = function(x) {
- this.become(getHandler(x));
- };
-
- Pending.prototype.reject = function(x) {
- if(this.resolved) {
- return;
- }
-
- this.become(new Rejected(x));
- };
-
- Pending.prototype.join = function() {
- if (!this.resolved) {
- return this;
- }
-
- var h = this;
-
- while (h.handler !== void 0) {
- h = h.handler;
- if (h === this) {
- return this.handler = cycle();
- }
- }
-
- return h;
- };
-
- Pending.prototype.run = function() {
- var q = this.consumers;
- var handler = this.handler;
- this.handler = this.handler.join();
- this.consumers = void 0;
-
- for (var i = 0; i < q.length; ++i) {
- handler.when(q[i]);
- }
- };
-
- Pending.prototype.become = function(handler) {
- if(this.resolved) {
- return;
- }
-
- this.resolved = true;
- this.handler = handler;
- if(this.consumers !== void 0) {
- tasks.enqueue(this);
- }
-
- if(this.context !== void 0) {
- handler._report(this.context);
- }
- };
-
- Pending.prototype.when = function(continuation) {
- if(this.resolved) {
- tasks.enqueue(new ContinuationTask(continuation, this.handler));
- } else {
- if(this.consumers === void 0) {
- this.consumers = [continuation];
- } else {
- this.consumers.push(continuation);
- }
- }
- };
-
- /**
- * @deprecated
- */
- Pending.prototype.notify = function(x) {
- if(!this.resolved) {
- tasks.enqueue(new ProgressTask(x, this));
- }
- };
-
- Pending.prototype.fail = function(context) {
- var c = typeof context === 'undefined' ? this.context : context;
- this.resolved && this.handler.join().fail(c);
- };
-
- Pending.prototype._report = function(context) {
- this.resolved && this.handler.join()._report(context);
- };
-
- Pending.prototype._unreport = function() {
- this.resolved && this.handler.join()._unreport();
- };
-
- /**
- * Wrap another handler and force it into a future stack
- * @param {object} handler
- * @constructor
- */
- function Async(handler) {
- this.handler = handler;
- }
-
- inherit(Handler, Async);
-
- Async.prototype.when = function(continuation) {
- tasks.enqueue(new ContinuationTask(continuation, this));
- };
-
- Async.prototype._report = function(context) {
- this.join()._report(context);
- };
-
- Async.prototype._unreport = function() {
- this.join()._unreport();
- };
-
- /**
- * Handler that wraps an untrusted thenable and assimilates it in a future stack
- * @param {function} then
- * @param {{then: function}} thenable
- * @constructor
- */
- function Thenable(then, thenable) {
- Pending.call(this);
- tasks.enqueue(new AssimilateTask(then, thenable, this));
- }
-
- inherit(Pending, Thenable);
-
- /**
- * Handler for a fulfilled promise
- * @param {*} x fulfillment value
- * @constructor
- */
- function Fulfilled(x) {
- Promise.createContext(this);
- this.value = x;
- }
-
- inherit(Handler, Fulfilled);
-
- Fulfilled.prototype._state = 1;
-
- Fulfilled.prototype.fold = function(f, z, c, to) {
- runContinuation3(f, z, this, c, to);
- };
-
- Fulfilled.prototype.when = function(cont) {
- runContinuation1(cont.fulfilled, this, cont.receiver, cont.resolver);
- };
-
- var errorId = 0;
-
- /**
- * Handler for a rejected promise
- * @param {*} x rejection reason
- * @constructor
- */
- function Rejected(x) {
- Promise.createContext(this);
-
- this.id = ++errorId;
- this.value = x;
- this.handled = false;
- this.reported = false;
-
- this._report();
- }
-
- inherit(Handler, Rejected);
-
- Rejected.prototype._state = -1;
-
- Rejected.prototype.fold = function(f, z, c, to) {
- to.become(this);
- };
-
- Rejected.prototype.when = function(cont) {
- if(typeof cont.rejected === 'function') {
- this._unreport();
- }
- runContinuation1(cont.rejected, this, cont.receiver, cont.resolver);
- };
-
- Rejected.prototype._report = function(context) {
- tasks.afterQueue(new ReportTask(this, context));
- };
-
- Rejected.prototype._unreport = function() {
- if(this.handled) {
- return;
- }
- this.handled = true;
- tasks.afterQueue(new UnreportTask(this));
- };
-
- Rejected.prototype.fail = function(context) {
- this.reported = true;
- emitRejection('unhandledRejection', this);
- Promise.onFatalRejection(this, context === void 0 ? this.context : context);
- };
-
- function ReportTask(rejection, context) {
- this.rejection = rejection;
- this.context = context;
- }
-
- ReportTask.prototype.run = function() {
- if(!this.rejection.handled && !this.rejection.reported) {
- this.rejection.reported = true;
- emitRejection('unhandledRejection', this.rejection) ||
- Promise.onPotentiallyUnhandledRejection(this.rejection, this.context);
- }
- };
-
- function UnreportTask(rejection) {
- this.rejection = rejection;
- }
-
- UnreportTask.prototype.run = function() {
- if(this.rejection.reported) {
- emitRejection('rejectionHandled', this.rejection) ||
- Promise.onPotentiallyUnhandledRejectionHandled(this.rejection);
- }
- };
-
- // Unhandled rejection hooks
- // By default, everything is a noop
-
- Promise.createContext
- = Promise.enterContext
- = Promise.exitContext
- = Promise.onPotentiallyUnhandledRejection
- = Promise.onPotentiallyUnhandledRejectionHandled
- = Promise.onFatalRejection
- = noop;
-
- // Errors and singletons
-
- var foreverPendingHandler = new Handler();
- var foreverPendingPromise = new Promise(Handler, foreverPendingHandler);
-
- function cycle() {
- return new Rejected(new TypeError('Promise cycle'));
- }
-
- // Task runners
-
- /**
- * Run a single consumer
- * @constructor
- */
- function ContinuationTask(continuation, handler) {
- this.continuation = continuation;
- this.handler = handler;
- }
-
- ContinuationTask.prototype.run = function() {
- this.handler.join().when(this.continuation);
- };
-
- /**
- * Run a queue of progress handlers
- * @constructor
- */
- function ProgressTask(value, handler) {
- this.handler = handler;
- this.value = value;
- }
-
- ProgressTask.prototype.run = function() {
- var q = this.handler.consumers;
- if(q === void 0) {
- return;
- }
-
- for (var c, i = 0; i < q.length; ++i) {
- c = q[i];
- runNotify(c.progress, this.value, this.handler, c.receiver, c.resolver);
- }
- };
-
- /**
- * Assimilate a thenable, sending it's value to resolver
- * @param {function} then
- * @param {object|function} thenable
- * @param {object} resolver
- * @constructor
- */
- function AssimilateTask(then, thenable, resolver) {
- this._then = then;
- this.thenable = thenable;
- this.resolver = resolver;
- }
-
- AssimilateTask.prototype.run = function() {
- var h = this.resolver;
- tryAssimilate(this._then, this.thenable, _resolve, _reject, _notify);
-
- function _resolve(x) { h.resolve(x); }
- function _reject(x) { h.reject(x); }
- function _notify(x) { h.notify(x); }
- };
-
- function tryAssimilate(then, thenable, resolve, reject, notify) {
- try {
- then.call(thenable, resolve, reject, notify);
- } catch (e) {
- reject(e);
- }
- }
-
- /**
- * Fold a handler value with z
- * @constructor
- */
- function Fold(f, z, c, to) {
- this.f = f; this.z = z; this.c = c; this.to = to;
- this.resolver = failIfRejected;
- this.receiver = this;
- }
-
- Fold.prototype.fulfilled = function(x) {
- this.f.call(this.c, this.z, x, this.to);
- };
-
- Fold.prototype.rejected = function(x) {
- this.to.reject(x);
- };
-
- Fold.prototype.progress = function(x) {
- this.to.notify(x);
- };
-
- // Other helpers
-
- /**
- * @param {*} x
- * @returns {boolean} true iff x is a trusted Promise
- */
- function isPromise(x) {
- return x instanceof Promise;
- }
-
- /**
- * Test just enough to rule out primitives, in order to take faster
- * paths in some code
- * @param {*} x
- * @returns {boolean} false iff x is guaranteed *not* to be a thenable
- */
- function maybeThenable(x) {
- return (typeof x === 'object' || typeof x === 'function') && x !== null;
- }
-
- function runContinuation1(f, h, receiver, next) {
- if(typeof f !== 'function') {
- return next.become(h);
- }
-
- Promise.enterContext(h);
- tryCatchReject(f, h.value, receiver, next);
- Promise.exitContext();
- }
-
- function runContinuation3(f, x, h, receiver, next) {
- if(typeof f !== 'function') {
- return next.become(h);
- }
-
- Promise.enterContext(h);
- tryCatchReject3(f, x, h.value, receiver, next);
- Promise.exitContext();
- }
-
- /**
- * @deprecated
- */
- function runNotify(f, x, h, receiver, next) {
- if(typeof f !== 'function') {
- return next.notify(x);
- }
-
- Promise.enterContext(h);
- tryCatchReturn(f, x, receiver, next);
- Promise.exitContext();
- }
-
- function tryCatch2(f, a, b) {
- try {
- return f(a, b);
- } catch(e) {
- return reject(e);
- }
- }
-
- /**
- * Return f.call(thisArg, x), or if it throws return a rejected promise for
- * the thrown exception
- */
- function tryCatchReject(f, x, thisArg, next) {
- try {
- next.become(getHandler(f.call(thisArg, x)));
- } catch(e) {
- next.become(new Rejected(e));
- }
- }
-
- /**
- * Same as above, but includes the extra argument parameter.
- */
- function tryCatchReject3(f, x, y, thisArg, next) {
- try {
- f.call(thisArg, x, y, next);
- } catch(e) {
- next.become(new Rejected(e));
- }
- }
-
- /**
- * @deprecated
- * Return f.call(thisArg, x), or if it throws, *return* the exception
- */
- function tryCatchReturn(f, x, thisArg, next) {
- try {
- next.notify(f.call(thisArg, x));
- } catch(e) {
- next.notify(e);
- }
- }
-
- function inherit(Parent, Child) {
- Child.prototype = objectCreate(Parent.prototype);
- Child.prototype.constructor = Child;
- }
-
- function snd(x, y) {
- return y;
- }
-
- function noop() {}
-
- function hasCustomEvent() {
- if(typeof CustomEvent === 'function') {
- try {
- var ev = new CustomEvent('unhandledRejection');
- return ev instanceof CustomEvent;
- } catch (ignoredException) {}
- }
- return false;
- }
-
- function hasInternetExplorerCustomEvent() {
- if(typeof document !== 'undefined' && typeof document.createEvent === 'function') {
- try {
- // Try to create one event to make sure it's supported
- var ev = document.createEvent('CustomEvent');
- ev.initCustomEvent('eventType', false, true, {});
- return true;
- } catch (ignoredException) {}
- }
- return false;
- }
-
- function initEmitRejection() {
- /*global process, self, CustomEvent*/
- if(typeof process !== 'undefined' && process !== null
- && typeof process.emit === 'function') {
- // Returning falsy here means to call the default
- // onPotentiallyUnhandledRejection API. This is safe even in
- // browserify since process.emit always returns falsy in browserify:
- // https://github.com/defunctzombie/node-process/blob/master/browser.js#L40-L46
- return function(type, rejection) {
- return type === 'unhandledRejection'
- ? process.emit(type, rejection.value, rejection)
- : process.emit(type, rejection);
- };
- } else if(typeof self !== 'undefined' && hasCustomEvent()) {
- return (function (self, CustomEvent) {
- return function (type, rejection) {
- var ev = new CustomEvent(type, {
- detail: {
- reason: rejection.value,
- key: rejection
- },
- bubbles: false,
- cancelable: true
- });
-
- return !self.dispatchEvent(ev);
- };
- }(self, CustomEvent));
- } else if(typeof self !== 'undefined' && hasInternetExplorerCustomEvent()) {
- return (function(self, document) {
- return function(type, rejection) {
- var ev = document.createEvent('CustomEvent');
- ev.initCustomEvent(type, false, true, {
- reason: rejection.value,
- key: rejection
- });
-
- return !self.dispatchEvent(ev);
- };
- }(self, document));
- }
-
- return noop;
- }
-
- return Promise;
- };
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-},{}]},{},[1])
-//# sourceMappingURL=Promise.js.map
-(1)
-});
-; \ No newline at end of file
diff --git a/node_modules/when/es6-shim/Promise.js.map b/node_modules/when/es6-shim/Promise.js.map
deleted file mode 100644
index 03dda7195..000000000
--- a/node_modules/when/es6-shim/Promise.js.map
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "version": 3,
- "file": "generated.js",
- "sources": [
- "es6-shim/Promise.browserify-es6.js",
- "lib/Promise.js",
- "lib/Scheduler.js",
- "lib/decorators/unhandledRejection.js",
- "lib/env.js",
- "lib/format.js",
- "lib/makePromise.js"
- ],
- "names": [],
- "mappings": ";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",
- "sourcesContent": [
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n/**\n * ES6 global Promise shim\n */\nvar unhandledRejections = require('../lib/decorators/unhandledRejection');\nvar PromiseConstructor = unhandledRejections(require('../lib/Promise'));\n\nmodule.exports = typeof global != 'undefined' ? (global.Promise = PromiseConstructor)\n\t : typeof self != 'undefined' ? (self.Promise = PromiseConstructor)\n\t : PromiseConstructor;\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function (require) {\n\n\tvar makePromise = require('./makePromise');\n\tvar Scheduler = require('./Scheduler');\n\tvar async = require('./env').asap;\n\n\treturn makePromise({\n\t\tscheduler: new Scheduler(async)\n\t});\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\t// Credit to Twisol (https://github.com/Twisol) for suggesting\n\t// this type of extensible queue + trampoline approach for next-tick conflation.\n\n\t/**\n\t * Async task scheduler\n\t * @param {function} async function to schedule a single async function\n\t * @constructor\n\t */\n\tfunction Scheduler(async) {\n\t\tthis._async = async;\n\t\tthis._running = false;\n\n\t\tthis._queue = this;\n\t\tthis._queueLen = 0;\n\t\tthis._afterQueue = {};\n\t\tthis._afterQueueLen = 0;\n\n\t\tvar self = this;\n\t\tthis.drain = function() {\n\t\t\tself._drain();\n\t\t};\n\t}\n\n\t/**\n\t * Enqueue a task\n\t * @param {{ run:function }} task\n\t */\n\tScheduler.prototype.enqueue = function(task) {\n\t\tthis._queue[this._queueLen++] = task;\n\t\tthis.run();\n\t};\n\n\t/**\n\t * Enqueue a task to run after the main task queue\n\t * @param {{ run:function }} task\n\t */\n\tScheduler.prototype.afterQueue = function(task) {\n\t\tthis._afterQueue[this._afterQueueLen++] = task;\n\t\tthis.run();\n\t};\n\n\tScheduler.prototype.run = function() {\n\t\tif (!this._running) {\n\t\t\tthis._running = true;\n\t\t\tthis._async(this.drain);\n\t\t}\n\t};\n\n\t/**\n\t * Drain the handler queue entirely, and then the after queue\n\t */\n\tScheduler.prototype._drain = function() {\n\t\tvar i = 0;\n\t\tfor (; i < this._queueLen; ++i) {\n\t\t\tthis._queue[i].run();\n\t\t\tthis._queue[i] = void 0;\n\t\t}\n\n\t\tthis._queueLen = 0;\n\t\tthis._running = false;\n\n\t\tfor (i = 0; i < this._afterQueueLen; ++i) {\n\t\t\tthis._afterQueue[i].run();\n\t\t\tthis._afterQueue[i] = void 0;\n\t\t}\n\n\t\tthis._afterQueueLen = 0;\n\t};\n\n\treturn Scheduler;\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar setTimer = require('../env').setTimer;\n\tvar format = require('../format');\n\n\treturn function unhandledRejection(Promise) {\n\n\t\tvar logError = noop;\n\t\tvar logInfo = noop;\n\t\tvar localConsole;\n\n\t\tif(typeof console !== 'undefined') {\n\t\t\t// Alias console to prevent things like uglify's drop_console option from\n\t\t\t// removing console.log/error. Unhandled rejections fall into the same\n\t\t\t// category as uncaught exceptions, and build tools shouldn't silence them.\n\t\t\tlocalConsole = console;\n\t\t\tlogError = typeof localConsole.error !== 'undefined'\n\t\t\t\t? function (e) { localConsole.error(e); }\n\t\t\t\t: function (e) { localConsole.log(e); };\n\n\t\t\tlogInfo = typeof localConsole.info !== 'undefined'\n\t\t\t\t? function (e) { localConsole.info(e); }\n\t\t\t\t: function (e) { localConsole.log(e); };\n\t\t}\n\n\t\tPromise.onPotentiallyUnhandledRejection = function(rejection) {\n\t\t\tenqueue(report, rejection);\n\t\t};\n\n\t\tPromise.onPotentiallyUnhandledRejectionHandled = function(rejection) {\n\t\t\tenqueue(unreport, rejection);\n\t\t};\n\n\t\tPromise.onFatalRejection = function(rejection) {\n\t\t\tenqueue(throwit, rejection.value);\n\t\t};\n\n\t\tvar tasks = [];\n\t\tvar reported = [];\n\t\tvar running = null;\n\n\t\tfunction report(r) {\n\t\t\tif(!r.handled) {\n\t\t\t\treported.push(r);\n\t\t\t\tlogError('Potentially unhandled rejection [' + r.id + '] ' + format.formatError(r.value));\n\t\t\t}\n\t\t}\n\n\t\tfunction unreport(r) {\n\t\t\tvar i = reported.indexOf(r);\n\t\t\tif(i >= 0) {\n\t\t\t\treported.splice(i, 1);\n\t\t\t\tlogInfo('Handled previous rejection [' + r.id + '] ' + format.formatObject(r.value));\n\t\t\t}\n\t\t}\n\n\t\tfunction enqueue(f, x) {\n\t\t\ttasks.push(f, x);\n\t\t\tif(running === null) {\n\t\t\t\trunning = setTimer(flush, 0);\n\t\t\t}\n\t\t}\n\n\t\tfunction flush() {\n\t\t\trunning = null;\n\t\t\twhile(tasks.length > 0) {\n\t\t\t\ttasks.shift()(tasks.shift());\n\t\t\t}\n\t\t}\n\n\t\treturn Promise;\n\t};\n\n\tfunction throwit(e) {\n\t\tthrow e;\n\t}\n\n\tfunction noop() {}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n/*global process,document,setTimeout,clearTimeout,MutationObserver,WebKitMutationObserver*/\n(function(define) { 'use strict';\ndefine(function(require) {\n\t/*jshint maxcomplexity:6*/\n\n\t// Sniff \"best\" async scheduling option\n\t// Prefer process.nextTick or MutationObserver, then check for\n\t// setTimeout, and finally vertx, since its the only env that doesn't\n\t// have setTimeout\n\n\tvar MutationObs;\n\tvar capturedSetTimeout = typeof setTimeout !== 'undefined' && setTimeout;\n\n\t// Default env\n\tvar setTimer = function(f, ms) { return setTimeout(f, ms); };\n\tvar clearTimer = function(t) { return clearTimeout(t); };\n\tvar asap = function (f) { return capturedSetTimeout(f, 0); };\n\n\t// Detect specific env\n\tif (isNode()) { // Node\n\t\tasap = function (f) { return process.nextTick(f); };\n\n\t} else if (MutationObs = hasMutationObserver()) { // Modern browser\n\t\tasap = initMutationObserver(MutationObs);\n\n\t} else if (!capturedSetTimeout) { // vert.x\n\t\tvar vertxRequire = require;\n\t\tvar vertx = vertxRequire('vertx');\n\t\tsetTimer = function (f, ms) { return vertx.setTimer(ms, f); };\n\t\tclearTimer = vertx.cancelTimer;\n\t\tasap = vertx.runOnLoop || vertx.runOnContext;\n\t}\n\n\treturn {\n\t\tsetTimer: setTimer,\n\t\tclearTimer: clearTimer,\n\t\tasap: asap\n\t};\n\n\tfunction isNode () {\n\t\treturn typeof process !== 'undefined' &&\n\t\t\tObject.prototype.toString.call(process) === '[object process]';\n\t}\n\n\tfunction hasMutationObserver () {\n\t return (typeof MutationObserver !== 'undefined' && MutationObserver) ||\n\t\t\t(typeof WebKitMutationObserver !== 'undefined' && WebKitMutationObserver);\n\t}\n\n\tfunction initMutationObserver(MutationObserver) {\n\t\tvar scheduled;\n\t\tvar node = document.createTextNode('');\n\t\tvar o = new MutationObserver(run);\n\t\to.observe(node, { characterData: true });\n\n\t\tfunction run() {\n\t\t\tvar f = scheduled;\n\t\t\tscheduled = void 0;\n\t\t\tf();\n\t\t}\n\n\t\tvar i = 0;\n\t\treturn function (f) {\n\t\t\tscheduled = f;\n\t\t\tnode.data = (i ^= 1);\n\t\t};\n\t}\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn {\n\t\tformatError: formatError,\n\t\tformatObject: formatObject,\n\t\ttryStringify: tryStringify\n\t};\n\n\t/**\n\t * Format an error into a string. If e is an Error and has a stack property,\n\t * it's returned. Otherwise, e is formatted using formatObject, with a\n\t * warning added about e not being a proper Error.\n\t * @param {*} e\n\t * @returns {String} formatted string, suitable for output to developers\n\t */\n\tfunction formatError(e) {\n\t\tvar s = typeof e === 'object' && e !== null && (e.stack || e.message) ? e.stack || e.message : formatObject(e);\n\t\treturn e instanceof Error ? s : s + ' (WARNING: non-Error used)';\n\t}\n\n\t/**\n\t * Format an object, detecting \"plain\" objects and running them through\n\t * JSON.stringify if possible.\n\t * @param {Object} o\n\t * @returns {string}\n\t */\n\tfunction formatObject(o) {\n\t\tvar s = String(o);\n\t\tif(s === '[object Object]' && typeof JSON !== 'undefined') {\n\t\t\ts = tryStringify(o, s);\n\t\t}\n\t\treturn s;\n\t}\n\n\t/**\n\t * Try to return the result of JSON.stringify(x). If that fails, return\n\t * defaultValue\n\t * @param {*} x\n\t * @param {*} defaultValue\n\t * @returns {String|*} JSON.stringify(x) or defaultValue\n\t */\n\tfunction tryStringify(x, defaultValue) {\n\t\ttry {\n\t\t\treturn JSON.stringify(x);\n\t\t} catch(e) {\n\t\t\treturn defaultValue;\n\t\t}\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n",
- "/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function makePromise(environment) {\n\n\t\tvar tasks = environment.scheduler;\n\t\tvar emitRejection = initEmitRejection();\n\n\t\tvar objectCreate = Object.create ||\n\t\t\tfunction(proto) {\n\t\t\t\tfunction Child() {}\n\t\t\t\tChild.prototype = proto;\n\t\t\t\treturn new Child();\n\t\t\t};\n\n\t\t/**\n\t\t * Create a promise whose fate is determined by resolver\n\t\t * @constructor\n\t\t * @returns {Promise} promise\n\t\t * @name Promise\n\t\t */\n\t\tfunction Promise(resolver, handler) {\n\t\t\tthis._handler = resolver === Handler ? handler : init(resolver);\n\t\t}\n\n\t\t/**\n\t\t * Run the supplied resolver\n\t\t * @param resolver\n\t\t * @returns {Pending}\n\t\t */\n\t\tfunction init(resolver) {\n\t\t\tvar handler = new Pending();\n\n\t\t\ttry {\n\t\t\t\tresolver(promiseResolve, promiseReject, promiseNotify);\n\t\t\t} catch (e) {\n\t\t\t\tpromiseReject(e);\n\t\t\t}\n\n\t\t\treturn handler;\n\n\t\t\t/**\n\t\t\t * Transition from pre-resolution state to post-resolution state, notifying\n\t\t\t * all listeners of the ultimate fulfillment or rejection\n\t\t\t * @param {*} x resolution value\n\t\t\t */\n\t\t\tfunction promiseResolve (x) {\n\t\t\t\thandler.resolve(x);\n\t\t\t}\n\t\t\t/**\n\t\t\t * Reject this promise with reason, which will be used verbatim\n\t\t\t * @param {Error|*} reason rejection reason, strongly suggested\n\t\t\t * to be an Error type\n\t\t\t */\n\t\t\tfunction promiseReject (reason) {\n\t\t\t\thandler.reject(reason);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * @deprecated\n\t\t\t * Issue a progress event, notifying all progress listeners\n\t\t\t * @param {*} x progress event payload to pass to all listeners\n\t\t\t */\n\t\t\tfunction promiseNotify (x) {\n\t\t\t\thandler.notify(x);\n\t\t\t}\n\t\t}\n\n\t\t// Creation\n\n\t\tPromise.resolve = resolve;\n\t\tPromise.reject = reject;\n\t\tPromise.never = never;\n\n\t\tPromise._defer = defer;\n\t\tPromise._handler = getHandler;\n\n\t\t/**\n\t\t * Returns a trusted promise. If x is already a trusted promise, it is\n\t\t * returned, otherwise returns a new trusted Promise which follows x.\n\t\t * @param {*} x\n\t\t * @return {Promise} promise\n\t\t */\n\t\tfunction resolve(x) {\n\t\t\treturn isPromise(x) ? x\n\t\t\t\t: new Promise(Handler, new Async(getHandler(x)));\n\t\t}\n\n\t\t/**\n\t\t * Return a reject promise with x as its reason (x is used verbatim)\n\t\t * @param {*} x\n\t\t * @returns {Promise} rejected promise\n\t\t */\n\t\tfunction reject(x) {\n\t\t\treturn new Promise(Handler, new Async(new Rejected(x)));\n\t\t}\n\n\t\t/**\n\t\t * Return a promise that remains pending forever\n\t\t * @returns {Promise} forever-pending promise.\n\t\t */\n\t\tfunction never() {\n\t\t\treturn foreverPendingPromise; // Should be frozen\n\t\t}\n\n\t\t/**\n\t\t * Creates an internal {promise, resolver} pair\n\t\t * @private\n\t\t * @returns {Promise}\n\t\t */\n\t\tfunction defer() {\n\t\t\treturn new Promise(Handler, new Pending());\n\t\t}\n\n\t\t// Transformation and flow control\n\n\t\t/**\n\t\t * Transform this promise's fulfillment value, returning a new Promise\n\t\t * for the transformed result. If the promise cannot be fulfilled, onRejected\n\t\t * is called with the reason. onProgress *may* be called with updates toward\n\t\t * this promise's fulfillment.\n\t\t * @param {function=} onFulfilled fulfillment handler\n\t\t * @param {function=} onRejected rejection handler\n\t\t * @param {function=} onProgress @deprecated progress handler\n\t\t * @return {Promise} new promise\n\t\t */\n\t\tPromise.prototype.then = function(onFulfilled, onRejected, onProgress) {\n\t\t\tvar parent = this._handler;\n\t\t\tvar state = parent.join().state();\n\n\t\t\tif ((typeof onFulfilled !== 'function' && state > 0) ||\n\t\t\t\t(typeof onRejected !== 'function' && state < 0)) {\n\t\t\t\t// Short circuit: value will not change, simply share handler\n\t\t\t\treturn new this.constructor(Handler, parent);\n\t\t\t}\n\n\t\t\tvar p = this._beget();\n\t\t\tvar child = p._handler;\n\n\t\t\tparent.chain(child, parent.receiver, onFulfilled, onRejected, onProgress);\n\n\t\t\treturn p;\n\t\t};\n\n\t\t/**\n\t\t * If this promise cannot be fulfilled due to an error, call onRejected to\n\t\t * handle the error. Shortcut for .then(undefined, onRejected)\n\t\t * @param {function?} onRejected\n\t\t * @return {Promise}\n\t\t */\n\t\tPromise.prototype['catch'] = function(onRejected) {\n\t\t\treturn this.then(void 0, onRejected);\n\t\t};\n\n\t\t/**\n\t\t * Creates a new, pending promise of the same type as this promise\n\t\t * @private\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype._beget = function() {\n\t\t\treturn begetFrom(this._handler, this.constructor);\n\t\t};\n\n\t\tfunction begetFrom(parent, Promise) {\n\t\t\tvar child = new Pending(parent.receiver, parent.join().context);\n\t\t\treturn new Promise(Handler, child);\n\t\t}\n\n\t\t// Array combinators\n\n\t\tPromise.all = all;\n\t\tPromise.race = race;\n\t\tPromise._traverse = traverse;\n\n\t\t/**\n\t\t * Return a promise that will fulfill when all promises in the\n\t\t * input array have fulfilled, or will reject when one of the\n\t\t * promises rejects.\n\t\t * @param {array} promises array of promises\n\t\t * @returns {Promise} promise for array of fulfillment values\n\t\t */\n\t\tfunction all(promises) {\n\t\t\treturn traverseWith(snd, null, promises);\n\t\t}\n\n\t\t/**\n\t\t * Array<Promise<X>> -> Promise<Array<f(X)>>\n\t\t * @private\n\t\t * @param {function} f function to apply to each promise's value\n\t\t * @param {Array} promises array of promises\n\t\t * @returns {Promise} promise for transformed values\n\t\t */\n\t\tfunction traverse(f, promises) {\n\t\t\treturn traverseWith(tryCatch2, f, promises);\n\t\t}\n\n\t\tfunction traverseWith(tryMap, f, promises) {\n\t\t\tvar handler = typeof f === 'function' ? mapAt : settleAt;\n\n\t\t\tvar resolver = new Pending();\n\t\t\tvar pending = promises.length >>> 0;\n\t\t\tvar results = new Array(pending);\n\n\t\t\tfor (var i = 0, x; i < promises.length && !resolver.resolved; ++i) {\n\t\t\t\tx = promises[i];\n\n\t\t\t\tif (x === void 0 && !(i in promises)) {\n\t\t\t\t\t--pending;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\ttraverseAt(promises, handler, i, x, resolver);\n\t\t\t}\n\n\t\t\tif(pending === 0) {\n\t\t\t\tresolver.become(new Fulfilled(results));\n\t\t\t}\n\n\t\t\treturn new Promise(Handler, resolver);\n\n\t\t\tfunction mapAt(i, x, resolver) {\n\t\t\t\tif(!resolver.resolved) {\n\t\t\t\t\ttraverseAt(promises, settleAt, i, tryMap(f, x, i), resolver);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction settleAt(i, x, resolver) {\n\t\t\t\tresults[i] = x;\n\t\t\t\tif(--pending === 0) {\n\t\t\t\t\tresolver.become(new Fulfilled(results));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction traverseAt(promises, handler, i, x, resolver) {\n\t\t\tif (maybeThenable(x)) {\n\t\t\t\tvar h = getHandlerMaybeThenable(x);\n\t\t\t\tvar s = h.state();\n\n\t\t\t\tif (s === 0) {\n\t\t\t\t\th.fold(handler, i, void 0, resolver);\n\t\t\t\t} else if (s > 0) {\n\t\t\t\t\thandler(i, h.value, resolver);\n\t\t\t\t} else {\n\t\t\t\t\tresolver.become(h);\n\t\t\t\t\tvisitRemaining(promises, i+1, h);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thandler(i, x, resolver);\n\t\t\t}\n\t\t}\n\n\t\tPromise._visitRemaining = visitRemaining;\n\t\tfunction visitRemaining(promises, start, handler) {\n\t\t\tfor(var i=start; i<promises.length; ++i) {\n\t\t\t\tmarkAsHandled(getHandler(promises[i]), handler);\n\t\t\t}\n\t\t}\n\n\t\tfunction markAsHandled(h, handler) {\n\t\t\tif(h === handler) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar s = h.state();\n\t\t\tif(s === 0) {\n\t\t\t\th.visit(h, void 0, h._unreport);\n\t\t\t} else if(s < 0) {\n\t\t\t\th._unreport();\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Fulfill-reject competitive race. Return a promise that will settle\n\t\t * to the same state as the earliest input promise to settle.\n\t\t *\n\t\t * WARNING: The ES6 Promise spec requires that race()ing an empty array\n\t\t * must return a promise that is pending forever. This implementation\n\t\t * returns a singleton forever-pending promise, the same singleton that is\n\t\t * returned by Promise.never(), thus can be checked with ===\n\t\t *\n\t\t * @param {array} promises array of promises to race\n\t\t * @returns {Promise} if input is non-empty, a promise that will settle\n\t\t * to the same outcome as the earliest input promise to settle. if empty\n\t\t * is empty, returns a promise that will never settle.\n\t\t */\n\t\tfunction race(promises) {\n\t\t\tif(typeof promises !== 'object' || promises === null) {\n\t\t\t\treturn reject(new TypeError('non-iterable passed to race()'));\n\t\t\t}\n\n\t\t\t// Sigh, race([]) is untestable unless we return *something*\n\t\t\t// that is recognizable without calling .then() on it.\n\t\t\treturn promises.length === 0 ? never()\n\t\t\t\t : promises.length === 1 ? resolve(promises[0])\n\t\t\t\t : runRace(promises);\n\t\t}\n\n\t\tfunction runRace(promises) {\n\t\t\tvar resolver = new Pending();\n\t\t\tvar i, x, h;\n\t\t\tfor(i=0; i<promises.length; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif (x === void 0 && !(i in promises)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\th = getHandler(x);\n\t\t\t\tif(h.state() !== 0) {\n\t\t\t\t\tresolver.become(h);\n\t\t\t\t\tvisitRemaining(promises, i+1, h);\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\th.visit(resolver, resolver.resolve, resolver.reject);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn new Promise(Handler, resolver);\n\t\t}\n\n\t\t// Promise internals\n\t\t// Below this, everything is @private\n\n\t\t/**\n\t\t * Get an appropriate handler for x, without checking for cycles\n\t\t * @param {*} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandler(x) {\n\t\t\tif(isPromise(x)) {\n\t\t\t\treturn x._handler.join();\n\t\t\t}\n\t\t\treturn maybeThenable(x) ? getHandlerUntrusted(x) : new Fulfilled(x);\n\t\t}\n\n\t\t/**\n\t\t * Get a handler for thenable x.\n\t\t * NOTE: You must only call this if maybeThenable(x) == true\n\t\t * @param {object|function|Promise} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandlerMaybeThenable(x) {\n\t\t\treturn isPromise(x) ? x._handler.join() : getHandlerUntrusted(x);\n\t\t}\n\n\t\t/**\n\t\t * Get a handler for potentially untrusted thenable x\n\t\t * @param {*} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandlerUntrusted(x) {\n\t\t\ttry {\n\t\t\t\tvar untrustedThen = x.then;\n\t\t\t\treturn typeof untrustedThen === 'function'\n\t\t\t\t\t? new Thenable(untrustedThen, x)\n\t\t\t\t\t: new Fulfilled(x);\n\t\t\t} catch(e) {\n\t\t\t\treturn new Rejected(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Handler for a promise that is pending forever\n\t\t * @constructor\n\t\t */\n\t\tfunction Handler() {}\n\n\t\tHandler.prototype.when\n\t\t\t= Handler.prototype.become\n\t\t\t= Handler.prototype.notify // deprecated\n\t\t\t= Handler.prototype.fail\n\t\t\t= Handler.prototype._unreport\n\t\t\t= Handler.prototype._report\n\t\t\t= noop;\n\n\t\tHandler.prototype._state = 0;\n\n\t\tHandler.prototype.state = function() {\n\t\t\treturn this._state;\n\t\t};\n\n\t\t/**\n\t\t * Recursively collapse handler chain to find the handler\n\t\t * nearest to the fully resolved value.\n\t\t * @returns {object} handler nearest the fully resolved value\n\t\t */\n\t\tHandler.prototype.join = function() {\n\t\t\tvar h = this;\n\t\t\twhile(h.handler !== void 0) {\n\t\t\t\th = h.handler;\n\t\t\t}\n\t\t\treturn h;\n\t\t};\n\n\t\tHandler.prototype.chain = function(to, receiver, fulfilled, rejected, progress) {\n\t\t\tthis.when({\n\t\t\t\tresolver: to,\n\t\t\t\treceiver: receiver,\n\t\t\t\tfulfilled: fulfilled,\n\t\t\t\trejected: rejected,\n\t\t\t\tprogress: progress\n\t\t\t});\n\t\t};\n\n\t\tHandler.prototype.visit = function(receiver, fulfilled, rejected, progress) {\n\t\t\tthis.chain(failIfRejected, receiver, fulfilled, rejected, progress);\n\t\t};\n\n\t\tHandler.prototype.fold = function(f, z, c, to) {\n\t\t\tthis.when(new Fold(f, z, c, to));\n\t\t};\n\n\t\t/**\n\t\t * Handler that invokes fail() on any handler it becomes\n\t\t * @constructor\n\t\t */\n\t\tfunction FailIfRejected() {}\n\n\t\tinherit(Handler, FailIfRejected);\n\n\t\tFailIfRejected.prototype.become = function(h) {\n\t\t\th.fail();\n\t\t};\n\n\t\tvar failIfRejected = new FailIfRejected();\n\n\t\t/**\n\t\t * Handler that manages a queue of consumers waiting on a pending promise\n\t\t * @constructor\n\t\t */\n\t\tfunction Pending(receiver, inheritedContext) {\n\t\t\tPromise.createContext(this, inheritedContext);\n\n\t\t\tthis.consumers = void 0;\n\t\t\tthis.receiver = receiver;\n\t\t\tthis.handler = void 0;\n\t\t\tthis.resolved = false;\n\t\t}\n\n\t\tinherit(Handler, Pending);\n\n\t\tPending.prototype._state = 0;\n\n\t\tPending.prototype.resolve = function(x) {\n\t\t\tthis.become(getHandler(x));\n\t\t};\n\n\t\tPending.prototype.reject = function(x) {\n\t\t\tif(this.resolved) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.become(new Rejected(x));\n\t\t};\n\n\t\tPending.prototype.join = function() {\n\t\t\tif (!this.resolved) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tvar h = this;\n\n\t\t\twhile (h.handler !== void 0) {\n\t\t\t\th = h.handler;\n\t\t\t\tif (h === this) {\n\t\t\t\t\treturn this.handler = cycle();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn h;\n\t\t};\n\n\t\tPending.prototype.run = function() {\n\t\t\tvar q = this.consumers;\n\t\t\tvar handler = this.handler;\n\t\t\tthis.handler = this.handler.join();\n\t\t\tthis.consumers = void 0;\n\n\t\t\tfor (var i = 0; i < q.length; ++i) {\n\t\t\t\thandler.when(q[i]);\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.become = function(handler) {\n\t\t\tif(this.resolved) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.resolved = true;\n\t\t\tthis.handler = handler;\n\t\t\tif(this.consumers !== void 0) {\n\t\t\t\ttasks.enqueue(this);\n\t\t\t}\n\n\t\t\tif(this.context !== void 0) {\n\t\t\t\thandler._report(this.context);\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.when = function(continuation) {\n\t\t\tif(this.resolved) {\n\t\t\t\ttasks.enqueue(new ContinuationTask(continuation, this.handler));\n\t\t\t} else {\n\t\t\t\tif(this.consumers === void 0) {\n\t\t\t\t\tthis.consumers = [continuation];\n\t\t\t\t} else {\n\t\t\t\t\tthis.consumers.push(continuation);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * @deprecated\n\t\t */\n\t\tPending.prototype.notify = function(x) {\n\t\t\tif(!this.resolved) {\n\t\t\t\ttasks.enqueue(new ProgressTask(x, this));\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.fail = function(context) {\n\t\t\tvar c = typeof context === 'undefined' ? this.context : context;\n\t\t\tthis.resolved && this.handler.join().fail(c);\n\t\t};\n\n\t\tPending.prototype._report = function(context) {\n\t\t\tthis.resolved && this.handler.join()._report(context);\n\t\t};\n\n\t\tPending.prototype._unreport = function() {\n\t\t\tthis.resolved && this.handler.join()._unreport();\n\t\t};\n\n\t\t/**\n\t\t * Wrap another handler and force it into a future stack\n\t\t * @param {object} handler\n\t\t * @constructor\n\t\t */\n\t\tfunction Async(handler) {\n\t\t\tthis.handler = handler;\n\t\t}\n\n\t\tinherit(Handler, Async);\n\n\t\tAsync.prototype.when = function(continuation) {\n\t\t\ttasks.enqueue(new ContinuationTask(continuation, this));\n\t\t};\n\n\t\tAsync.prototype._report = function(context) {\n\t\t\tthis.join()._report(context);\n\t\t};\n\n\t\tAsync.prototype._unreport = function() {\n\t\t\tthis.join()._unreport();\n\t\t};\n\n\t\t/**\n\t\t * Handler that wraps an untrusted thenable and assimilates it in a future stack\n\t\t * @param {function} then\n\t\t * @param {{then: function}} thenable\n\t\t * @constructor\n\t\t */\n\t\tfunction Thenable(then, thenable) {\n\t\t\tPending.call(this);\n\t\t\ttasks.enqueue(new AssimilateTask(then, thenable, this));\n\t\t}\n\n\t\tinherit(Pending, Thenable);\n\n\t\t/**\n\t\t * Handler for a fulfilled promise\n\t\t * @param {*} x fulfillment value\n\t\t * @constructor\n\t\t */\n\t\tfunction Fulfilled(x) {\n\t\t\tPromise.createContext(this);\n\t\t\tthis.value = x;\n\t\t}\n\n\t\tinherit(Handler, Fulfilled);\n\n\t\tFulfilled.prototype._state = 1;\n\n\t\tFulfilled.prototype.fold = function(f, z, c, to) {\n\t\t\trunContinuation3(f, z, this, c, to);\n\t\t};\n\n\t\tFulfilled.prototype.when = function(cont) {\n\t\t\trunContinuation1(cont.fulfilled, this, cont.receiver, cont.resolver);\n\t\t};\n\n\t\tvar errorId = 0;\n\n\t\t/**\n\t\t * Handler for a rejected promise\n\t\t * @param {*} x rejection reason\n\t\t * @constructor\n\t\t */\n\t\tfunction Rejected(x) {\n\t\t\tPromise.createContext(this);\n\n\t\t\tthis.id = ++errorId;\n\t\t\tthis.value = x;\n\t\t\tthis.handled = false;\n\t\t\tthis.reported = false;\n\n\t\t\tthis._report();\n\t\t}\n\n\t\tinherit(Handler, Rejected);\n\n\t\tRejected.prototype._state = -1;\n\n\t\tRejected.prototype.fold = function(f, z, c, to) {\n\t\t\tto.become(this);\n\t\t};\n\n\t\tRejected.prototype.when = function(cont) {\n\t\t\tif(typeof cont.rejected === 'function') {\n\t\t\t\tthis._unreport();\n\t\t\t}\n\t\t\trunContinuation1(cont.rejected, this, cont.receiver, cont.resolver);\n\t\t};\n\n\t\tRejected.prototype._report = function(context) {\n\t\t\ttasks.afterQueue(new ReportTask(this, context));\n\t\t};\n\n\t\tRejected.prototype._unreport = function() {\n\t\t\tif(this.handled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.handled = true;\n\t\t\ttasks.afterQueue(new UnreportTask(this));\n\t\t};\n\n\t\tRejected.prototype.fail = function(context) {\n\t\t\tthis.reported = true;\n\t\t\temitRejection('unhandledRejection', this);\n\t\t\tPromise.onFatalRejection(this, context === void 0 ? this.context : context);\n\t\t};\n\n\t\tfunction ReportTask(rejection, context) {\n\t\t\tthis.rejection = rejection;\n\t\t\tthis.context = context;\n\t\t}\n\n\t\tReportTask.prototype.run = function() {\n\t\t\tif(!this.rejection.handled && !this.rejection.reported) {\n\t\t\t\tthis.rejection.reported = true;\n\t\t\t\temitRejection('unhandledRejection', this.rejection) ||\n\t\t\t\t\tPromise.onPotentiallyUnhandledRejection(this.rejection, this.context);\n\t\t\t}\n\t\t};\n\n\t\tfunction UnreportTask(rejection) {\n\t\t\tthis.rejection = rejection;\n\t\t}\n\n\t\tUnreportTask.prototype.run = function() {\n\t\t\tif(this.rejection.reported) {\n\t\t\t\temitRejection('rejectionHandled', this.rejection) ||\n\t\t\t\t\tPromise.onPotentiallyUnhandledRejectionHandled(this.rejection);\n\t\t\t}\n\t\t};\n\n\t\t// Unhandled rejection hooks\n\t\t// By default, everything is a noop\n\n\t\tPromise.createContext\n\t\t\t= Promise.enterContext\n\t\t\t= Promise.exitContext\n\t\t\t= Promise.onPotentiallyUnhandledRejection\n\t\t\t= Promise.onPotentiallyUnhandledRejectionHandled\n\t\t\t= Promise.onFatalRejection\n\t\t\t= noop;\n\n\t\t// Errors and singletons\n\n\t\tvar foreverPendingHandler = new Handler();\n\t\tvar foreverPendingPromise = new Promise(Handler, foreverPendingHandler);\n\n\t\tfunction cycle() {\n\t\t\treturn new Rejected(new TypeError('Promise cycle'));\n\t\t}\n\n\t\t// Task runners\n\n\t\t/**\n\t\t * Run a single consumer\n\t\t * @constructor\n\t\t */\n\t\tfunction ContinuationTask(continuation, handler) {\n\t\t\tthis.continuation = continuation;\n\t\t\tthis.handler = handler;\n\t\t}\n\n\t\tContinuationTask.prototype.run = function() {\n\t\t\tthis.handler.join().when(this.continuation);\n\t\t};\n\n\t\t/**\n\t\t * Run a queue of progress handlers\n\t\t * @constructor\n\t\t */\n\t\tfunction ProgressTask(value, handler) {\n\t\t\tthis.handler = handler;\n\t\t\tthis.value = value;\n\t\t}\n\n\t\tProgressTask.prototype.run = function() {\n\t\t\tvar q = this.handler.consumers;\n\t\t\tif(q === void 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var c, i = 0; i < q.length; ++i) {\n\t\t\t\tc = q[i];\n\t\t\t\trunNotify(c.progress, this.value, this.handler, c.receiver, c.resolver);\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Assimilate a thenable, sending it's value to resolver\n\t\t * @param {function} then\n\t\t * @param {object|function} thenable\n\t\t * @param {object} resolver\n\t\t * @constructor\n\t\t */\n\t\tfunction AssimilateTask(then, thenable, resolver) {\n\t\t\tthis._then = then;\n\t\t\tthis.thenable = thenable;\n\t\t\tthis.resolver = resolver;\n\t\t}\n\n\t\tAssimilateTask.prototype.run = function() {\n\t\t\tvar h = this.resolver;\n\t\t\ttryAssimilate(this._then, this.thenable, _resolve, _reject, _notify);\n\n\t\t\tfunction _resolve(x) { h.resolve(x); }\n\t\t\tfunction _reject(x) { h.reject(x); }\n\t\t\tfunction _notify(x) { h.notify(x); }\n\t\t};\n\n\t\tfunction tryAssimilate(then, thenable, resolve, reject, notify) {\n\t\t\ttry {\n\t\t\t\tthen.call(thenable, resolve, reject, notify);\n\t\t\t} catch (e) {\n\t\t\t\treject(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Fold a handler value with z\n\t\t * @constructor\n\t\t */\n\t\tfunction Fold(f, z, c, to) {\n\t\t\tthis.f = f; this.z = z; this.c = c; this.to = to;\n\t\t\tthis.resolver = failIfRejected;\n\t\t\tthis.receiver = this;\n\t\t}\n\n\t\tFold.prototype.fulfilled = function(x) {\n\t\t\tthis.f.call(this.c, this.z, x, this.to);\n\t\t};\n\n\t\tFold.prototype.rejected = function(x) {\n\t\t\tthis.to.reject(x);\n\t\t};\n\n\t\tFold.prototype.progress = function(x) {\n\t\t\tthis.to.notify(x);\n\t\t};\n\n\t\t// Other helpers\n\n\t\t/**\n\t\t * @param {*} x\n\t\t * @returns {boolean} true iff x is a trusted Promise\n\t\t */\n\t\tfunction isPromise(x) {\n\t\t\treturn x instanceof Promise;\n\t\t}\n\n\t\t/**\n\t\t * Test just enough to rule out primitives, in order to take faster\n\t\t * paths in some code\n\t\t * @param {*} x\n\t\t * @returns {boolean} false iff x is guaranteed *not* to be a thenable\n\t\t */\n\t\tfunction maybeThenable(x) {\n\t\t\treturn (typeof x === 'object' || typeof x === 'function') && x !== null;\n\t\t}\n\n\t\tfunction runContinuation1(f, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.become(h);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReject(f, h.value, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\tfunction runContinuation3(f, x, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.become(h);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReject3(f, x, h.value, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\t/**\n\t\t * @deprecated\n\t\t */\n\t\tfunction runNotify(f, x, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.notify(x);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReturn(f, x, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\tfunction tryCatch2(f, a, b) {\n\t\t\ttry {\n\t\t\t\treturn f(a, b);\n\t\t\t} catch(e) {\n\t\t\t\treturn reject(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Return f.call(thisArg, x), or if it throws return a rejected promise for\n\t\t * the thrown exception\n\t\t */\n\t\tfunction tryCatchReject(f, x, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tnext.become(getHandler(f.call(thisArg, x)));\n\t\t\t} catch(e) {\n\t\t\t\tnext.become(new Rejected(e));\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Same as above, but includes the extra argument parameter.\n\t\t */\n\t\tfunction tryCatchReject3(f, x, y, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tf.call(thisArg, x, y, next);\n\t\t\t} catch(e) {\n\t\t\t\tnext.become(new Rejected(e));\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * @deprecated\n\t\t * Return f.call(thisArg, x), or if it throws, *return* the exception\n\t\t */\n\t\tfunction tryCatchReturn(f, x, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tnext.notify(f.call(thisArg, x));\n\t\t\t} catch(e) {\n\t\t\t\tnext.notify(e);\n\t\t\t}\n\t\t}\n\n\t\tfunction inherit(Parent, Child) {\n\t\t\tChild.prototype = objectCreate(Parent.prototype);\n\t\t\tChild.prototype.constructor = Child;\n\t\t}\n\n\t\tfunction snd(x, y) {\n\t\t\treturn y;\n\t\t}\n\n\t\tfunction noop() {}\n\n\t\tfunction hasCustomEvent() {\n\t\t\tif(typeof CustomEvent === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\tvar ev = new CustomEvent('unhandledRejection');\n\t\t\t\t\treturn ev instanceof CustomEvent;\n\t\t\t\t} catch (ignoredException) {}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction hasInternetExplorerCustomEvent() {\n\t\t\tif(typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\t// Try to create one event to make sure it's supported\n\t\t\t\t\tvar ev = document.createEvent('CustomEvent');\n\t\t\t\t\tev.initCustomEvent('eventType', false, true, {});\n\t\t\t\t\treturn true;\n\t\t\t\t} catch (ignoredException) {}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction initEmitRejection() {\n\t\t\t/*global process, self, CustomEvent*/\n\t\t\tif(typeof process !== 'undefined' && process !== null\n\t\t\t\t&& typeof process.emit === 'function') {\n\t\t\t\t// Returning falsy here means to call the default\n\t\t\t\t// onPotentiallyUnhandledRejection API. This is safe even in\n\t\t\t\t// browserify since process.emit always returns falsy in browserify:\n\t\t\t\t// https://github.com/defunctzombie/node-process/blob/master/browser.js#L40-L46\n\t\t\t\treturn function(type, rejection) {\n\t\t\t\t\treturn type === 'unhandledRejection'\n\t\t\t\t\t\t? process.emit(type, rejection.value, rejection)\n\t\t\t\t\t\t: process.emit(type, rejection);\n\t\t\t\t};\n\t\t\t} else if(typeof self !== 'undefined' && hasCustomEvent()) {\n\t\t\t\treturn (function (self, CustomEvent) {\n\t\t\t\t\treturn function (type, rejection) {\n\t\t\t\t\t\tvar ev = new CustomEvent(type, {\n\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\treason: rejection.value,\n\t\t\t\t\t\t\t\tkey: rejection\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbubbles: false,\n\t\t\t\t\t\t\tcancelable: true\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn !self.dispatchEvent(ev);\n\t\t\t\t\t};\n\t\t\t\t}(self, CustomEvent));\n\t\t\t} else if(typeof self !== 'undefined' && hasInternetExplorerCustomEvent()) {\n\t\t\t\treturn (function(self, document) {\n\t\t\t\t\treturn function(type, rejection) {\n\t\t\t\t\t\tvar ev = document.createEvent('CustomEvent');\n\t\t\t\t\t\tev.initCustomEvent(type, false, true, {\n\t\t\t\t\t\t\treason: rejection.value,\n\t\t\t\t\t\t\tkey: rejection\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn !self.dispatchEvent(ev);\n\t\t\t\t\t};\n\t\t\t\t}(self, document));\n\t\t\t}\n\n\t\t\treturn noop;\n\t\t}\n\n\t\treturn Promise;\n\t};\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n"
- ],
- "sourceRoot": "https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08"
-} \ No newline at end of file
diff --git a/node_modules/when/es6-shim/Promise.min.js b/node_modules/when/es6-shim/Promise.min.js
deleted file mode 100644
index b6c19f812..000000000
--- a/node_modules/when/es6-shim/Promise.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(t){"object"==typeof exports?module.exports=t():"function"==typeof define&&define.amd?define(t):"undefined"!=typeof window?window.Promise=t():"undefined"!=typeof global?global.Promise=t():"undefined"!=typeof self&&(self.Promise=t())}(function(){var t;return function e(t,n,o){function r(u,c){if(!n[u]){if(!t[u]){var f="function"==typeof require&&require;if(!c&&f)return f(u,!0);if(i)return i(u,!0);throw new Error("Cannot find module '"+u+"'")}var s=n[u]={exports:{}};t[u][0].call(s.exports,function(e){var n=t[u][1][e];return r(n?n:e)},s,s.exports,e,t,n,o)}return n[u].exports}for(var i="function"==typeof require&&require,u=0;u<o.length;u++)r(o[u]);return r}({1:[function(t,e,n){var o=t("../lib/decorators/unhandledRejection"),r=o(t("../lib/Promise"));e.exports="undefined"!=typeof global?global.Promise=r:"undefined"!=typeof self?self.Promise=r:r},{"../lib/Promise":2,"../lib/decorators/unhandledRejection":4}],2:[function(e,n,o){!function(t){"use strict";t(function(t){var e=t("./makePromise"),n=t("./Scheduler"),o=t("./env").asap;return e({scheduler:new n(o)})})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"./Scheduler":3,"./env":5,"./makePromise":7}],3:[function(e,n,o){!function(t){"use strict";t(function(){function t(t){this._async=t,this._running=!1,this._queue=this,this._queueLen=0,this._afterQueue={},this._afterQueueLen=0;var e=this;this.drain=function(){e._drain()}}return t.prototype.enqueue=function(t){this._queue[this._queueLen++]=t,this.run()},t.prototype.afterQueue=function(t){this._afterQueue[this._afterQueueLen++]=t,this.run()},t.prototype.run=function(){this._running||(this._running=!0,this._async(this.drain))},t.prototype._drain=function(){for(var t=0;t<this._queueLen;++t)this._queue[t].run(),this._queue[t]=void 0;for(this._queueLen=0,this._running=!1,t=0;t<this._afterQueueLen;++t)this._afterQueue[t].run(),this._afterQueue[t]=void 0;this._afterQueueLen=0},t})}("function"==typeof t&&t.amd?t:function(t){n.exports=t()})},{}],4:[function(e,n,o){!function(t){"use strict";t(function(t){function e(t){throw t}function n(){}var o=t("../env").setTimer,r=t("../format");return function(t){function i(t){t.handled||(l.push(t),a("Potentially unhandled rejection ["+t.id+"] "+r.formatError(t.value)))}function u(t){var e=l.indexOf(t);e>=0&&(l.splice(e,1),h("Handled previous rejection ["+t.id+"] "+r.formatObject(t.value)))}function c(t,e){p.push(t,e),null===d&&(d=o(f,0))}function f(){for(d=null;p.length>0;)p.shift()(p.shift())}var s,a=n,h=n;"undefined"!=typeof console&&(s=console,a="undefined"!=typeof s.error?function(t){s.error(t)}:function(t){s.log(t)},h="undefined"!=typeof s.info?function(t){s.info(t)}:function(t){s.log(t)}),t.onPotentiallyUnhandledRejection=function(t){c(i,t)},t.onPotentiallyUnhandledRejectionHandled=function(t){c(u,t)},t.onFatalRejection=function(t){c(e,t.value)};var p=[],l=[],d=null;return t}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{"../env":5,"../format":6}],5:[function(e,n,o){!function(t){"use strict";t(function(t){function e(){return"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process)}function n(){return"undefined"!=typeof MutationObserver&&MutationObserver||"undefined"!=typeof WebKitMutationObserver&&WebKitMutationObserver}function o(t){function e(){var t=n;n=void 0,t()}var n,o=document.createTextNode(""),r=new t(e);r.observe(o,{characterData:!0});var i=0;return function(t){n=t,o.data=i^=1}}var r,i="undefined"!=typeof setTimeout&&setTimeout,u=function(t,e){return setTimeout(t,e)},c=function(t){return clearTimeout(t)},f=function(t){return i(t,0)};if(e())f=function(t){return process.nextTick(t)};else if(r=n())f=o(r);else if(!i){var s=t,a=s("vertx");u=function(t,e){return a.setTimer(e,t)},c=a.cancelTimer,f=a.runOnLoop||a.runOnContext}return{setTimer:u,clearTimer:c,asap:f}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t(e)})},{}],6:[function(e,n,o){!function(t){"use strict";t(function(){function t(t){var n="object"==typeof t&&null!==t&&(t.stack||t.message)?t.stack||t.message:e(t);return t instanceof Error?n:n+" (WARNING: non-Error used)"}function e(t){var e=String(t);return"[object Object]"===e&&"undefined"!=typeof JSON&&(e=n(t,e)),e}function n(t,e){try{return JSON.stringify(t)}catch(n){return e}}return{formatError:t,formatObject:e,tryStringify:n}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t()})},{}],7:[function(e,n,o){!function(t){"use strict";t(function(){return function(t){function e(t,e){this._handler=t===_?e:n(t)}function n(t){function e(t){r.resolve(t)}function n(t){r.reject(t)}function o(t){r.notify(t)}var r=new b;try{t(e,n,o)}catch(i){n(i)}return r}function o(t){return S(t)?t:new e(_,new x(y(t)))}function r(t){return new e(_,new x(new E(t)))}function i(){return et}function u(){return new e(_,new b)}function c(t,e){var n=new b(t.receiver,t.join().context);return new e(_,n)}function f(t){return a(K,null,t)}function s(t,e){return a(F,t,e)}function a(t,n,o){function r(e,r,u){u.resolved||h(o,i,e,t(n,r,e),u)}function i(t,e,n){a[t]=e,0===--s&&n.become(new C(a))}for(var u,c="function"==typeof n?r:i,f=new b,s=o.length>>>0,a=new Array(s),p=0;p<o.length&&!f.resolved;++p)u=o[p],void 0!==u||p in o?h(o,c,p,u,f):--s;return 0===s&&f.become(new C(a)),new e(_,f)}function h(t,e,n,o,r){if(U(o)){var i=m(o),u=i.state();0===u?i.fold(e,n,void 0,r):u>0?e(n,i.value,r):(r.become(i),p(t,n+1,i))}else e(n,o,r)}function p(t,e,n){for(var o=e;o<t.length;++o)l(y(t[o]),n)}function l(t,e){if(t!==e){var n=t.state();0===n?t.visit(t,void 0,t._unreport):0>n&&t._unreport()}}function d(t){return"object"!=typeof t||null===t?r(new TypeError("non-iterable passed to race()")):0===t.length?i():1===t.length?o(t[0]):v(t)}function v(t){var n,o,r,i=new b;for(n=0;n<t.length;++n)if(o=t[n],void 0!==o||n in t){if(r=y(o),0!==r.state()){i.become(r),p(t,n+1,r);break}r.visit(i,i.resolve,i.reject)}return new e(_,i)}function y(t){return S(t)?t._handler.join():U(t)?j(t):new C(t)}function m(t){return S(t)?t._handler.join():j(t)}function j(t){try{var e=t.then;return"function"==typeof e?new g(e,t):new C(t)}catch(n){return new E(n)}}function _(){}function w(){}function b(t,n){e.createContext(this,n),this.consumers=void 0,this.receiver=t,this.handler=void 0,this.resolved=!1}function x(t){this.handler=t}function g(t,e){b.call(this),V.enqueue(new Q(t,e,this))}function C(t){e.createContext(this),this.value=t}function E(t){e.createContext(this),this.id=++$,this.value=t,this.handled=!1,this.reported=!1,this._report()}function q(t,e){this.rejection=t,this.context=e}function P(t){this.rejection=t}function R(){return new E(new TypeError("Promise cycle"))}function O(t,e){this.continuation=t,this.handler=e}function T(t,e){this.handler=e,this.value=t}function Q(t,e,n){this._then=t,this.thenable=e,this.resolver=n}function L(t,e,n,o,r){try{t.call(e,n,o,r)}catch(i){o(i)}}function k(t,e,n,o){this.f=t,this.z=e,this.c=n,this.to=o,this.resolver=Z,this.receiver=this}function S(t){return t instanceof e}function U(t){return("object"==typeof t||"function"==typeof t)&&null!==t}function H(t,n,o,r){return"function"!=typeof t?r.become(n):(e.enterContext(n),W(t,n.value,o,r),void e.exitContext())}function N(t,n,o,r,i){return"function"!=typeof t?i.become(o):(e.enterContext(o),z(t,n,o.value,r,i),void e.exitContext())}function M(t,n,o,r,i){return"function"!=typeof t?i.notify(n):(e.enterContext(o),A(t,n,r,i),void e.exitContext())}function F(t,e,n){try{return t(e,n)}catch(o){return r(o)}}function W(t,e,n,o){try{o.become(y(t.call(n,e)))}catch(r){o.become(new E(r))}}function z(t,e,n,o,r){try{t.call(o,e,n,r)}catch(i){r.become(new E(i))}}function A(t,e,n,o){try{o.notify(t.call(n,e))}catch(r){o.notify(r)}}function J(t,e){e.prototype=Y(t.prototype),e.prototype.constructor=e}function K(t,e){return e}function D(){}function G(){if("function"==typeof CustomEvent)try{var t=new CustomEvent("unhandledRejection");return t instanceof CustomEvent}catch(e){}return!1}function I(){if("undefined"!=typeof document&&"function"==typeof document.createEvent)try{var t=document.createEvent("CustomEvent");return t.initCustomEvent("eventType",!1,!0,{}),!0}catch(e){}return!1}function B(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.emit?function(t,e){return"unhandledRejection"===t?process.emit(t,e.value,e):process.emit(t,e)}:"undefined"!=typeof self&&G()?function(t,e){return function(n,o){var r=new e(n,{detail:{reason:o.value,key:o},bubbles:!1,cancelable:!0});return!t.dispatchEvent(r)}}(self,CustomEvent):"undefined"!=typeof self&&I()?function(t,e){return function(n,o){var r=e.createEvent("CustomEvent");return r.initCustomEvent(n,!1,!0,{reason:o.value,key:o}),!t.dispatchEvent(r)}}(self,document):D}var V=t.scheduler,X=B(),Y=Object.create||function(t){function e(){}return e.prototype=t,new e};e.resolve=o,e.reject=r,e.never=i,e._defer=u,e._handler=y,e.prototype.then=function(t,e,n){var o=this._handler,r=o.join().state();if("function"!=typeof t&&r>0||"function"!=typeof e&&0>r)return new this.constructor(_,o);var i=this._beget(),u=i._handler;return o.chain(u,o.receiver,t,e,n),i},e.prototype["catch"]=function(t){return this.then(void 0,t)},e.prototype._beget=function(){return c(this._handler,this.constructor)},e.all=f,e.race=d,e._traverse=s,e._visitRemaining=p,_.prototype.when=_.prototype.become=_.prototype.notify=_.prototype.fail=_.prototype._unreport=_.prototype._report=D,_.prototype._state=0,_.prototype.state=function(){return this._state},_.prototype.join=function(){for(var t=this;void 0!==t.handler;)t=t.handler;return t},_.prototype.chain=function(t,e,n,o,r){this.when({resolver:t,receiver:e,fulfilled:n,rejected:o,progress:r})},_.prototype.visit=function(t,e,n,o){this.chain(Z,t,e,n,o)},_.prototype.fold=function(t,e,n,o){this.when(new k(t,e,n,o))},J(_,w),w.prototype.become=function(t){t.fail()};var Z=new w;J(_,b),b.prototype._state=0,b.prototype.resolve=function(t){this.become(y(t))},b.prototype.reject=function(t){this.resolved||this.become(new E(t))},b.prototype.join=function(){if(!this.resolved)return this;for(var t=this;void 0!==t.handler;)if(t=t.handler,t===this)return this.handler=R();return t},b.prototype.run=function(){var t=this.consumers,e=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var n=0;n<t.length;++n)e.when(t[n])},b.prototype.become=function(t){this.resolved||(this.resolved=!0,this.handler=t,void 0!==this.consumers&&V.enqueue(this),void 0!==this.context&&t._report(this.context))},b.prototype.when=function(t){this.resolved?V.enqueue(new O(t,this.handler)):void 0===this.consumers?this.consumers=[t]:this.consumers.push(t)},b.prototype.notify=function(t){this.resolved||V.enqueue(new T(t,this))},b.prototype.fail=function(t){var e="undefined"==typeof t?this.context:t;this.resolved&&this.handler.join().fail(e)},b.prototype._report=function(t){this.resolved&&this.handler.join()._report(t)},b.prototype._unreport=function(){this.resolved&&this.handler.join()._unreport()},J(_,x),x.prototype.when=function(t){V.enqueue(new O(t,this))},x.prototype._report=function(t){this.join()._report(t)},x.prototype._unreport=function(){this.join()._unreport()},J(b,g),J(_,C),C.prototype._state=1,C.prototype.fold=function(t,e,n,o){N(t,e,this,n,o)},C.prototype.when=function(t){H(t.fulfilled,this,t.receiver,t.resolver)};var $=0;J(_,E),E.prototype._state=-1,E.prototype.fold=function(t,e,n,o){o.become(this)},E.prototype.when=function(t){"function"==typeof t.rejected&&this._unreport(),H(t.rejected,this,t.receiver,t.resolver)},E.prototype._report=function(t){V.afterQueue(new q(this,t))},E.prototype._unreport=function(){this.handled||(this.handled=!0,V.afterQueue(new P(this)))},E.prototype.fail=function(t){this.reported=!0,X("unhandledRejection",this),e.onFatalRejection(this,void 0===t?this.context:t)},q.prototype.run=function(){this.rejection.handled||this.rejection.reported||(this.rejection.reported=!0,X("unhandledRejection",this.rejection)||e.onPotentiallyUnhandledRejection(this.rejection,this.context))},P.prototype.run=function(){this.rejection.reported&&(X("rejectionHandled",this.rejection)||e.onPotentiallyUnhandledRejectionHandled(this.rejection))},e.createContext=e.enterContext=e.exitContext=e.onPotentiallyUnhandledRejection=e.onPotentiallyUnhandledRejectionHandled=e.onFatalRejection=D;var tt=new _,et=new e(_,tt);return O.prototype.run=function(){this.handler.join().when(this.continuation)},T.prototype.run=function(){var t=this.handler.consumers;if(void 0!==t)for(var e,n=0;n<t.length;++n)e=t[n],M(e.progress,this.value,this.handler,e.receiver,e.resolver)},Q.prototype.run=function(){function t(t){o.resolve(t)}function e(t){o.reject(t)}function n(t){o.notify(t)}var o=this.resolver;L(this._then,this.thenable,t,e,n)},k.prototype.fulfilled=function(t){this.f.call(this.c,this.z,t,this.to)},k.prototype.rejected=function(t){this.to.reject(t)},k.prototype.progress=function(t){this.to.notify(t)},e}})}("function"==typeof t&&t.amd?t:function(t){n.exports=t()})},{}]},{},[1])(1)});
-//# sourceMappingURL=es6-shim/Promise.min.js.map \ No newline at end of file
diff --git a/node_modules/when/es6-shim/Promise.min.js.map b/node_modules/when/es6-shim/Promise.min.js.map
deleted file mode 100644
index 9e15929fb..000000000
--- a/node_modules/when/es6-shim/Promise.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["es6-shim/Promise.browserify-es6.js","lib/Promise.js","lib/Scheduler.js","lib/decorators/unhandledRejection.js","lib/env.js","lib/format.js","lib/makePromise.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/es6-shim/Promise.browserify-es6.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/Promise.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/Scheduler.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/decorators/unhandledRejection.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/env.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/format.js","https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08/lib/makePromise.js"],"names":["unhandledRejections","require","PromiseConstructor","module","exports","global","Promise","self","define","makePromise","Scheduler","async","asap","scheduler","amd","factory","this","_async","_running","_queue","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue","i","throwit","e","noop","setTimer","format","report","r","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","f","x","tasks","running","flush","length","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","isNode","process","Object","toString","call","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","o","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","t","clearTimeout","nextTick","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext","s","stack","message","Error","String","JSON","tryStringify","defaultValue","stringify","environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","Array","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","a","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","hasCustomEvent","CustomEvent","ev","ignoredException","hasInternetExplorerCustomEvent","createEvent","initCustomEvent","initEmitRejection","emit","type","detail","key","bubbles","cancelable","dispatchEvent","emitRejection","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify"],"mappings":"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CA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"generated.js","sourceRoot":"https://raw.githubusercontent.com/cujojs/when/5c0a9ebaaf9bc859e76bd9584a9c9677e1e18f08","sourcesContent":["/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n/**\n * ES6 global Promise shim\n */\nvar unhandledRejections = require('../lib/decorators/unhandledRejection');\nvar PromiseConstructor = unhandledRejections(require('../lib/Promise'));\n\nmodule.exports = typeof global != 'undefined' ? (global.Promise = PromiseConstructor)\n\t : typeof self != 'undefined' ? (self.Promise = PromiseConstructor)\n\t : PromiseConstructor;\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function (require) {\n\n\tvar makePromise = require('./makePromise');\n\tvar Scheduler = require('./Scheduler');\n\tvar async = require('./env').asap;\n\n\treturn makePromise({\n\t\tscheduler: new Scheduler(async)\n\t});\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\t// Credit to Twisol (https://github.com/Twisol) for suggesting\n\t// this type of extensible queue + trampoline approach for next-tick conflation.\n\n\t/**\n\t * Async task scheduler\n\t * @param {function} async function to schedule a single async function\n\t * @constructor\n\t */\n\tfunction Scheduler(async) {\n\t\tthis._async = async;\n\t\tthis._running = false;\n\n\t\tthis._queue = this;\n\t\tthis._queueLen = 0;\n\t\tthis._afterQueue = {};\n\t\tthis._afterQueueLen = 0;\n\n\t\tvar self = this;\n\t\tthis.drain = function() {\n\t\t\tself._drain();\n\t\t};\n\t}\n\n\t/**\n\t * Enqueue a task\n\t * @param {{ run:function }} task\n\t */\n\tScheduler.prototype.enqueue = function(task) {\n\t\tthis._queue[this._queueLen++] = task;\n\t\tthis.run();\n\t};\n\n\t/**\n\t * Enqueue a task to run after the main task queue\n\t * @param {{ run:function }} task\n\t */\n\tScheduler.prototype.afterQueue = function(task) {\n\t\tthis._afterQueue[this._afterQueueLen++] = task;\n\t\tthis.run();\n\t};\n\n\tScheduler.prototype.run = function() {\n\t\tif (!this._running) {\n\t\t\tthis._running = true;\n\t\t\tthis._async(this.drain);\n\t\t}\n\t};\n\n\t/**\n\t * Drain the handler queue entirely, and then the after queue\n\t */\n\tScheduler.prototype._drain = function() {\n\t\tvar i = 0;\n\t\tfor (; i < this._queueLen; ++i) {\n\t\t\tthis._queue[i].run();\n\t\t\tthis._queue[i] = void 0;\n\t\t}\n\n\t\tthis._queueLen = 0;\n\t\tthis._running = false;\n\n\t\tfor (i = 0; i < this._afterQueueLen; ++i) {\n\t\t\tthis._afterQueue[i].run();\n\t\t\tthis._afterQueue[i] = void 0;\n\t\t}\n\n\t\tthis._afterQueueLen = 0;\n\t};\n\n\treturn Scheduler;\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar setTimer = require('../env').setTimer;\n\tvar format = require('../format');\n\n\treturn function unhandledRejection(Promise) {\n\n\t\tvar logError = noop;\n\t\tvar logInfo = noop;\n\t\tvar localConsole;\n\n\t\tif(typeof console !== 'undefined') {\n\t\t\t// Alias console to prevent things like uglify's drop_console option from\n\t\t\t// removing console.log/error. Unhandled rejections fall into the same\n\t\t\t// category as uncaught exceptions, and build tools shouldn't silence them.\n\t\t\tlocalConsole = console;\n\t\t\tlogError = typeof localConsole.error !== 'undefined'\n\t\t\t\t? function (e) { localConsole.error(e); }\n\t\t\t\t: function (e) { localConsole.log(e); };\n\n\t\t\tlogInfo = typeof localConsole.info !== 'undefined'\n\t\t\t\t? function (e) { localConsole.info(e); }\n\t\t\t\t: function (e) { localConsole.log(e); };\n\t\t}\n\n\t\tPromise.onPotentiallyUnhandledRejection = function(rejection) {\n\t\t\tenqueue(report, rejection);\n\t\t};\n\n\t\tPromise.onPotentiallyUnhandledRejectionHandled = function(rejection) {\n\t\t\tenqueue(unreport, rejection);\n\t\t};\n\n\t\tPromise.onFatalRejection = function(rejection) {\n\t\t\tenqueue(throwit, rejection.value);\n\t\t};\n\n\t\tvar tasks = [];\n\t\tvar reported = [];\n\t\tvar running = null;\n\n\t\tfunction report(r) {\n\t\t\tif(!r.handled) {\n\t\t\t\treported.push(r);\n\t\t\t\tlogError('Potentially unhandled rejection [' + r.id + '] ' + format.formatError(r.value));\n\t\t\t}\n\t\t}\n\n\t\tfunction unreport(r) {\n\t\t\tvar i = reported.indexOf(r);\n\t\t\tif(i >= 0) {\n\t\t\t\treported.splice(i, 1);\n\t\t\t\tlogInfo('Handled previous rejection [' + r.id + '] ' + format.formatObject(r.value));\n\t\t\t}\n\t\t}\n\n\t\tfunction enqueue(f, x) {\n\t\t\ttasks.push(f, x);\n\t\t\tif(running === null) {\n\t\t\t\trunning = setTimer(flush, 0);\n\t\t\t}\n\t\t}\n\n\t\tfunction flush() {\n\t\t\trunning = null;\n\t\t\twhile(tasks.length > 0) {\n\t\t\t\ttasks.shift()(tasks.shift());\n\t\t\t}\n\t\t}\n\n\t\treturn Promise;\n\t};\n\n\tfunction throwit(e) {\n\t\tthrow e;\n\t}\n\n\tfunction noop() {}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n/*global process,document,setTimeout,clearTimeout,MutationObserver,WebKitMutationObserver*/\n(function(define) { 'use strict';\ndefine(function(require) {\n\t/*jshint maxcomplexity:6*/\n\n\t// Sniff \"best\" async scheduling option\n\t// Prefer process.nextTick or MutationObserver, then check for\n\t// setTimeout, and finally vertx, since its the only env that doesn't\n\t// have setTimeout\n\n\tvar MutationObs;\n\tvar capturedSetTimeout = typeof setTimeout !== 'undefined' && setTimeout;\n\n\t// Default env\n\tvar setTimer = function(f, ms) { return setTimeout(f, ms); };\n\tvar clearTimer = function(t) { return clearTimeout(t); };\n\tvar asap = function (f) { return capturedSetTimeout(f, 0); };\n\n\t// Detect specific env\n\tif (isNode()) { // Node\n\t\tasap = function (f) { return process.nextTick(f); };\n\n\t} else if (MutationObs = hasMutationObserver()) { // Modern browser\n\t\tasap = initMutationObserver(MutationObs);\n\n\t} else if (!capturedSetTimeout) { // vert.x\n\t\tvar vertxRequire = require;\n\t\tvar vertx = vertxRequire('vertx');\n\t\tsetTimer = function (f, ms) { return vertx.setTimer(ms, f); };\n\t\tclearTimer = vertx.cancelTimer;\n\t\tasap = vertx.runOnLoop || vertx.runOnContext;\n\t}\n\n\treturn {\n\t\tsetTimer: setTimer,\n\t\tclearTimer: clearTimer,\n\t\tasap: asap\n\t};\n\n\tfunction isNode () {\n\t\treturn typeof process !== 'undefined' &&\n\t\t\tObject.prototype.toString.call(process) === '[object process]';\n\t}\n\n\tfunction hasMutationObserver () {\n\t return (typeof MutationObserver !== 'undefined' && MutationObserver) ||\n\t\t\t(typeof WebKitMutationObserver !== 'undefined' && WebKitMutationObserver);\n\t}\n\n\tfunction initMutationObserver(MutationObserver) {\n\t\tvar scheduled;\n\t\tvar node = document.createTextNode('');\n\t\tvar o = new MutationObserver(run);\n\t\to.observe(node, { characterData: true });\n\n\t\tfunction run() {\n\t\t\tvar f = scheduled;\n\t\t\tscheduled = void 0;\n\t\t\tf();\n\t\t}\n\n\t\tvar i = 0;\n\t\treturn function (f) {\n\t\t\tscheduled = f;\n\t\t\tnode.data = (i ^= 1);\n\t\t};\n\t}\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn {\n\t\tformatError: formatError,\n\t\tformatObject: formatObject,\n\t\ttryStringify: tryStringify\n\t};\n\n\t/**\n\t * Format an error into a string. If e is an Error and has a stack property,\n\t * it's returned. Otherwise, e is formatted using formatObject, with a\n\t * warning added about e not being a proper Error.\n\t * @param {*} e\n\t * @returns {String} formatted string, suitable for output to developers\n\t */\n\tfunction formatError(e) {\n\t\tvar s = typeof e === 'object' && e !== null && (e.stack || e.message) ? e.stack || e.message : formatObject(e);\n\t\treturn e instanceof Error ? s : s + ' (WARNING: non-Error used)';\n\t}\n\n\t/**\n\t * Format an object, detecting \"plain\" objects and running them through\n\t * JSON.stringify if possible.\n\t * @param {Object} o\n\t * @returns {string}\n\t */\n\tfunction formatObject(o) {\n\t\tvar s = String(o);\n\t\tif(s === '[object Object]' && typeof JSON !== 'undefined') {\n\t\t\ts = tryStringify(o, s);\n\t\t}\n\t\treturn s;\n\t}\n\n\t/**\n\t * Try to return the result of JSON.stringify(x). If that fails, return\n\t * defaultValue\n\t * @param {*} x\n\t * @param {*} defaultValue\n\t * @returns {String|*} JSON.stringify(x) or defaultValue\n\t */\n\tfunction tryStringify(x, defaultValue) {\n\t\ttry {\n\t\t\treturn JSON.stringify(x);\n\t\t} catch(e) {\n\t\t\treturn defaultValue;\n\t\t}\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function makePromise(environment) {\n\n\t\tvar tasks = environment.scheduler;\n\t\tvar emitRejection = initEmitRejection();\n\n\t\tvar objectCreate = Object.create ||\n\t\t\tfunction(proto) {\n\t\t\t\tfunction Child() {}\n\t\t\t\tChild.prototype = proto;\n\t\t\t\treturn new Child();\n\t\t\t};\n\n\t\t/**\n\t\t * Create a promise whose fate is determined by resolver\n\t\t * @constructor\n\t\t * @returns {Promise} promise\n\t\t * @name Promise\n\t\t */\n\t\tfunction Promise(resolver, handler) {\n\t\t\tthis._handler = resolver === Handler ? handler : init(resolver);\n\t\t}\n\n\t\t/**\n\t\t * Run the supplied resolver\n\t\t * @param resolver\n\t\t * @returns {Pending}\n\t\t */\n\t\tfunction init(resolver) {\n\t\t\tvar handler = new Pending();\n\n\t\t\ttry {\n\t\t\t\tresolver(promiseResolve, promiseReject, promiseNotify);\n\t\t\t} catch (e) {\n\t\t\t\tpromiseReject(e);\n\t\t\t}\n\n\t\t\treturn handler;\n\n\t\t\t/**\n\t\t\t * Transition from pre-resolution state to post-resolution state, notifying\n\t\t\t * all listeners of the ultimate fulfillment or rejection\n\t\t\t * @param {*} x resolution value\n\t\t\t */\n\t\t\tfunction promiseResolve (x) {\n\t\t\t\thandler.resolve(x);\n\t\t\t}\n\t\t\t/**\n\t\t\t * Reject this promise with reason, which will be used verbatim\n\t\t\t * @param {Error|*} reason rejection reason, strongly suggested\n\t\t\t * to be an Error type\n\t\t\t */\n\t\t\tfunction promiseReject (reason) {\n\t\t\t\thandler.reject(reason);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * @deprecated\n\t\t\t * Issue a progress event, notifying all progress listeners\n\t\t\t * @param {*} x progress event payload to pass to all listeners\n\t\t\t */\n\t\t\tfunction promiseNotify (x) {\n\t\t\t\thandler.notify(x);\n\t\t\t}\n\t\t}\n\n\t\t// Creation\n\n\t\tPromise.resolve = resolve;\n\t\tPromise.reject = reject;\n\t\tPromise.never = never;\n\n\t\tPromise._defer = defer;\n\t\tPromise._handler = getHandler;\n\n\t\t/**\n\t\t * Returns a trusted promise. If x is already a trusted promise, it is\n\t\t * returned, otherwise returns a new trusted Promise which follows x.\n\t\t * @param {*} x\n\t\t * @return {Promise} promise\n\t\t */\n\t\tfunction resolve(x) {\n\t\t\treturn isPromise(x) ? x\n\t\t\t\t: new Promise(Handler, new Async(getHandler(x)));\n\t\t}\n\n\t\t/**\n\t\t * Return a reject promise with x as its reason (x is used verbatim)\n\t\t * @param {*} x\n\t\t * @returns {Promise} rejected promise\n\t\t */\n\t\tfunction reject(x) {\n\t\t\treturn new Promise(Handler, new Async(new Rejected(x)));\n\t\t}\n\n\t\t/**\n\t\t * Return a promise that remains pending forever\n\t\t * @returns {Promise} forever-pending promise.\n\t\t */\n\t\tfunction never() {\n\t\t\treturn foreverPendingPromise; // Should be frozen\n\t\t}\n\n\t\t/**\n\t\t * Creates an internal {promise, resolver} pair\n\t\t * @private\n\t\t * @returns {Promise}\n\t\t */\n\t\tfunction defer() {\n\t\t\treturn new Promise(Handler, new Pending());\n\t\t}\n\n\t\t// Transformation and flow control\n\n\t\t/**\n\t\t * Transform this promise's fulfillment value, returning a new Promise\n\t\t * for the transformed result. If the promise cannot be fulfilled, onRejected\n\t\t * is called with the reason. onProgress *may* be called with updates toward\n\t\t * this promise's fulfillment.\n\t\t * @param {function=} onFulfilled fulfillment handler\n\t\t * @param {function=} onRejected rejection handler\n\t\t * @param {function=} onProgress @deprecated progress handler\n\t\t * @return {Promise} new promise\n\t\t */\n\t\tPromise.prototype.then = function(onFulfilled, onRejected, onProgress) {\n\t\t\tvar parent = this._handler;\n\t\t\tvar state = parent.join().state();\n\n\t\t\tif ((typeof onFulfilled !== 'function' && state > 0) ||\n\t\t\t\t(typeof onRejected !== 'function' && state < 0)) {\n\t\t\t\t// Short circuit: value will not change, simply share handler\n\t\t\t\treturn new this.constructor(Handler, parent);\n\t\t\t}\n\n\t\t\tvar p = this._beget();\n\t\t\tvar child = p._handler;\n\n\t\t\tparent.chain(child, parent.receiver, onFulfilled, onRejected, onProgress);\n\n\t\t\treturn p;\n\t\t};\n\n\t\t/**\n\t\t * If this promise cannot be fulfilled due to an error, call onRejected to\n\t\t * handle the error. Shortcut for .then(undefined, onRejected)\n\t\t * @param {function?} onRejected\n\t\t * @return {Promise}\n\t\t */\n\t\tPromise.prototype['catch'] = function(onRejected) {\n\t\t\treturn this.then(void 0, onRejected);\n\t\t};\n\n\t\t/**\n\t\t * Creates a new, pending promise of the same type as this promise\n\t\t * @private\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype._beget = function() {\n\t\t\treturn begetFrom(this._handler, this.constructor);\n\t\t};\n\n\t\tfunction begetFrom(parent, Promise) {\n\t\t\tvar child = new Pending(parent.receiver, parent.join().context);\n\t\t\treturn new Promise(Handler, child);\n\t\t}\n\n\t\t// Array combinators\n\n\t\tPromise.all = all;\n\t\tPromise.race = race;\n\t\tPromise._traverse = traverse;\n\n\t\t/**\n\t\t * Return a promise that will fulfill when all promises in the\n\t\t * input array have fulfilled, or will reject when one of the\n\t\t * promises rejects.\n\t\t * @param {array} promises array of promises\n\t\t * @returns {Promise} promise for array of fulfillment values\n\t\t */\n\t\tfunction all(promises) {\n\t\t\treturn traverseWith(snd, null, promises);\n\t\t}\n\n\t\t/**\n\t\t * Array<Promise<X>> -> Promise<Array<f(X)>>\n\t\t * @private\n\t\t * @param {function} f function to apply to each promise's value\n\t\t * @param {Array} promises array of promises\n\t\t * @returns {Promise} promise for transformed values\n\t\t */\n\t\tfunction traverse(f, promises) {\n\t\t\treturn traverseWith(tryCatch2, f, promises);\n\t\t}\n\n\t\tfunction traverseWith(tryMap, f, promises) {\n\t\t\tvar handler = typeof f === 'function' ? mapAt : settleAt;\n\n\t\t\tvar resolver = new Pending();\n\t\t\tvar pending = promises.length >>> 0;\n\t\t\tvar results = new Array(pending);\n\n\t\t\tfor (var i = 0, x; i < promises.length && !resolver.resolved; ++i) {\n\t\t\t\tx = promises[i];\n\n\t\t\t\tif (x === void 0 && !(i in promises)) {\n\t\t\t\t\t--pending;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\ttraverseAt(promises, handler, i, x, resolver);\n\t\t\t}\n\n\t\t\tif(pending === 0) {\n\t\t\t\tresolver.become(new Fulfilled(results));\n\t\t\t}\n\n\t\t\treturn new Promise(Handler, resolver);\n\n\t\t\tfunction mapAt(i, x, resolver) {\n\t\t\t\tif(!resolver.resolved) {\n\t\t\t\t\ttraverseAt(promises, settleAt, i, tryMap(f, x, i), resolver);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction settleAt(i, x, resolver) {\n\t\t\t\tresults[i] = x;\n\t\t\t\tif(--pending === 0) {\n\t\t\t\t\tresolver.become(new Fulfilled(results));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction traverseAt(promises, handler, i, x, resolver) {\n\t\t\tif (maybeThenable(x)) {\n\t\t\t\tvar h = getHandlerMaybeThenable(x);\n\t\t\t\tvar s = h.state();\n\n\t\t\t\tif (s === 0) {\n\t\t\t\t\th.fold(handler, i, void 0, resolver);\n\t\t\t\t} else if (s > 0) {\n\t\t\t\t\thandler(i, h.value, resolver);\n\t\t\t\t} else {\n\t\t\t\t\tresolver.become(h);\n\t\t\t\t\tvisitRemaining(promises, i+1, h);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thandler(i, x, resolver);\n\t\t\t}\n\t\t}\n\n\t\tPromise._visitRemaining = visitRemaining;\n\t\tfunction visitRemaining(promises, start, handler) {\n\t\t\tfor(var i=start; i<promises.length; ++i) {\n\t\t\t\tmarkAsHandled(getHandler(promises[i]), handler);\n\t\t\t}\n\t\t}\n\n\t\tfunction markAsHandled(h, handler) {\n\t\t\tif(h === handler) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar s = h.state();\n\t\t\tif(s === 0) {\n\t\t\t\th.visit(h, void 0, h._unreport);\n\t\t\t} else if(s < 0) {\n\t\t\t\th._unreport();\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Fulfill-reject competitive race. Return a promise that will settle\n\t\t * to the same state as the earliest input promise to settle.\n\t\t *\n\t\t * WARNING: The ES6 Promise spec requires that race()ing an empty array\n\t\t * must return a promise that is pending forever. This implementation\n\t\t * returns a singleton forever-pending promise, the same singleton that is\n\t\t * returned by Promise.never(), thus can be checked with ===\n\t\t *\n\t\t * @param {array} promises array of promises to race\n\t\t * @returns {Promise} if input is non-empty, a promise that will settle\n\t\t * to the same outcome as the earliest input promise to settle. if empty\n\t\t * is empty, returns a promise that will never settle.\n\t\t */\n\t\tfunction race(promises) {\n\t\t\tif(typeof promises !== 'object' || promises === null) {\n\t\t\t\treturn reject(new TypeError('non-iterable passed to race()'));\n\t\t\t}\n\n\t\t\t// Sigh, race([]) is untestable unless we return *something*\n\t\t\t// that is recognizable without calling .then() on it.\n\t\t\treturn promises.length === 0 ? never()\n\t\t\t\t : promises.length === 1 ? resolve(promises[0])\n\t\t\t\t : runRace(promises);\n\t\t}\n\n\t\tfunction runRace(promises) {\n\t\t\tvar resolver = new Pending();\n\t\t\tvar i, x, h;\n\t\t\tfor(i=0; i<promises.length; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif (x === void 0 && !(i in promises)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\th = getHandler(x);\n\t\t\t\tif(h.state() !== 0) {\n\t\t\t\t\tresolver.become(h);\n\t\t\t\t\tvisitRemaining(promises, i+1, h);\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\th.visit(resolver, resolver.resolve, resolver.reject);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn new Promise(Handler, resolver);\n\t\t}\n\n\t\t// Promise internals\n\t\t// Below this, everything is @private\n\n\t\t/**\n\t\t * Get an appropriate handler for x, without checking for cycles\n\t\t * @param {*} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandler(x) {\n\t\t\tif(isPromise(x)) {\n\t\t\t\treturn x._handler.join();\n\t\t\t}\n\t\t\treturn maybeThenable(x) ? getHandlerUntrusted(x) : new Fulfilled(x);\n\t\t}\n\n\t\t/**\n\t\t * Get a handler for thenable x.\n\t\t * NOTE: You must only call this if maybeThenable(x) == true\n\t\t * @param {object|function|Promise} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandlerMaybeThenable(x) {\n\t\t\treturn isPromise(x) ? x._handler.join() : getHandlerUntrusted(x);\n\t\t}\n\n\t\t/**\n\t\t * Get a handler for potentially untrusted thenable x\n\t\t * @param {*} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandlerUntrusted(x) {\n\t\t\ttry {\n\t\t\t\tvar untrustedThen = x.then;\n\t\t\t\treturn typeof untrustedThen === 'function'\n\t\t\t\t\t? new Thenable(untrustedThen, x)\n\t\t\t\t\t: new Fulfilled(x);\n\t\t\t} catch(e) {\n\t\t\t\treturn new Rejected(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Handler for a promise that is pending forever\n\t\t * @constructor\n\t\t */\n\t\tfunction Handler() {}\n\n\t\tHandler.prototype.when\n\t\t\t= Handler.prototype.become\n\t\t\t= Handler.prototype.notify // deprecated\n\t\t\t= Handler.prototype.fail\n\t\t\t= Handler.prototype._unreport\n\t\t\t= Handler.prototype._report\n\t\t\t= noop;\n\n\t\tHandler.prototype._state = 0;\n\n\t\tHandler.prototype.state = function() {\n\t\t\treturn this._state;\n\t\t};\n\n\t\t/**\n\t\t * Recursively collapse handler chain to find the handler\n\t\t * nearest to the fully resolved value.\n\t\t * @returns {object} handler nearest the fully resolved value\n\t\t */\n\t\tHandler.prototype.join = function() {\n\t\t\tvar h = this;\n\t\t\twhile(h.handler !== void 0) {\n\t\t\t\th = h.handler;\n\t\t\t}\n\t\t\treturn h;\n\t\t};\n\n\t\tHandler.prototype.chain = function(to, receiver, fulfilled, rejected, progress) {\n\t\t\tthis.when({\n\t\t\t\tresolver: to,\n\t\t\t\treceiver: receiver,\n\t\t\t\tfulfilled: fulfilled,\n\t\t\t\trejected: rejected,\n\t\t\t\tprogress: progress\n\t\t\t});\n\t\t};\n\n\t\tHandler.prototype.visit = function(receiver, fulfilled, rejected, progress) {\n\t\t\tthis.chain(failIfRejected, receiver, fulfilled, rejected, progress);\n\t\t};\n\n\t\tHandler.prototype.fold = function(f, z, c, to) {\n\t\t\tthis.when(new Fold(f, z, c, to));\n\t\t};\n\n\t\t/**\n\t\t * Handler that invokes fail() on any handler it becomes\n\t\t * @constructor\n\t\t */\n\t\tfunction FailIfRejected() {}\n\n\t\tinherit(Handler, FailIfRejected);\n\n\t\tFailIfRejected.prototype.become = function(h) {\n\t\t\th.fail();\n\t\t};\n\n\t\tvar failIfRejected = new FailIfRejected();\n\n\t\t/**\n\t\t * Handler that manages a queue of consumers waiting on a pending promise\n\t\t * @constructor\n\t\t */\n\t\tfunction Pending(receiver, inheritedContext) {\n\t\t\tPromise.createContext(this, inheritedContext);\n\n\t\t\tthis.consumers = void 0;\n\t\t\tthis.receiver = receiver;\n\t\t\tthis.handler = void 0;\n\t\t\tthis.resolved = false;\n\t\t}\n\n\t\tinherit(Handler, Pending);\n\n\t\tPending.prototype._state = 0;\n\n\t\tPending.prototype.resolve = function(x) {\n\t\t\tthis.become(getHandler(x));\n\t\t};\n\n\t\tPending.prototype.reject = function(x) {\n\t\t\tif(this.resolved) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.become(new Rejected(x));\n\t\t};\n\n\t\tPending.prototype.join = function() {\n\t\t\tif (!this.resolved) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tvar h = this;\n\n\t\t\twhile (h.handler !== void 0) {\n\t\t\t\th = h.handler;\n\t\t\t\tif (h === this) {\n\t\t\t\t\treturn this.handler = cycle();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn h;\n\t\t};\n\n\t\tPending.prototype.run = function() {\n\t\t\tvar q = this.consumers;\n\t\t\tvar handler = this.handler;\n\t\t\tthis.handler = this.handler.join();\n\t\t\tthis.consumers = void 0;\n\n\t\t\tfor (var i = 0; i < q.length; ++i) {\n\t\t\t\thandler.when(q[i]);\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.become = function(handler) {\n\t\t\tif(this.resolved) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.resolved = true;\n\t\t\tthis.handler = handler;\n\t\t\tif(this.consumers !== void 0) {\n\t\t\t\ttasks.enqueue(this);\n\t\t\t}\n\n\t\t\tif(this.context !== void 0) {\n\t\t\t\thandler._report(this.context);\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.when = function(continuation) {\n\t\t\tif(this.resolved) {\n\t\t\t\ttasks.enqueue(new ContinuationTask(continuation, this.handler));\n\t\t\t} else {\n\t\t\t\tif(this.consumers === void 0) {\n\t\t\t\t\tthis.consumers = [continuation];\n\t\t\t\t} else {\n\t\t\t\t\tthis.consumers.push(continuation);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * @deprecated\n\t\t */\n\t\tPending.prototype.notify = function(x) {\n\t\t\tif(!this.resolved) {\n\t\t\t\ttasks.enqueue(new ProgressTask(x, this));\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.fail = function(context) {\n\t\t\tvar c = typeof context === 'undefined' ? this.context : context;\n\t\t\tthis.resolved && this.handler.join().fail(c);\n\t\t};\n\n\t\tPending.prototype._report = function(context) {\n\t\t\tthis.resolved && this.handler.join()._report(context);\n\t\t};\n\n\t\tPending.prototype._unreport = function() {\n\t\t\tthis.resolved && this.handler.join()._unreport();\n\t\t};\n\n\t\t/**\n\t\t * Wrap another handler and force it into a future stack\n\t\t * @param {object} handler\n\t\t * @constructor\n\t\t */\n\t\tfunction Async(handler) {\n\t\t\tthis.handler = handler;\n\t\t}\n\n\t\tinherit(Handler, Async);\n\n\t\tAsync.prototype.when = function(continuation) {\n\t\t\ttasks.enqueue(new ContinuationTask(continuation, this));\n\t\t};\n\n\t\tAsync.prototype._report = function(context) {\n\t\t\tthis.join()._report(context);\n\t\t};\n\n\t\tAsync.prototype._unreport = function() {\n\t\t\tthis.join()._unreport();\n\t\t};\n\n\t\t/**\n\t\t * Handler that wraps an untrusted thenable and assimilates it in a future stack\n\t\t * @param {function} then\n\t\t * @param {{then: function}} thenable\n\t\t * @constructor\n\t\t */\n\t\tfunction Thenable(then, thenable) {\n\t\t\tPending.call(this);\n\t\t\ttasks.enqueue(new AssimilateTask(then, thenable, this));\n\t\t}\n\n\t\tinherit(Pending, Thenable);\n\n\t\t/**\n\t\t * Handler for a fulfilled promise\n\t\t * @param {*} x fulfillment value\n\t\t * @constructor\n\t\t */\n\t\tfunction Fulfilled(x) {\n\t\t\tPromise.createContext(this);\n\t\t\tthis.value = x;\n\t\t}\n\n\t\tinherit(Handler, Fulfilled);\n\n\t\tFulfilled.prototype._state = 1;\n\n\t\tFulfilled.prototype.fold = function(f, z, c, to) {\n\t\t\trunContinuation3(f, z, this, c, to);\n\t\t};\n\n\t\tFulfilled.prototype.when = function(cont) {\n\t\t\trunContinuation1(cont.fulfilled, this, cont.receiver, cont.resolver);\n\t\t};\n\n\t\tvar errorId = 0;\n\n\t\t/**\n\t\t * Handler for a rejected promise\n\t\t * @param {*} x rejection reason\n\t\t * @constructor\n\t\t */\n\t\tfunction Rejected(x) {\n\t\t\tPromise.createContext(this);\n\n\t\t\tthis.id = ++errorId;\n\t\t\tthis.value = x;\n\t\t\tthis.handled = false;\n\t\t\tthis.reported = false;\n\n\t\t\tthis._report();\n\t\t}\n\n\t\tinherit(Handler, Rejected);\n\n\t\tRejected.prototype._state = -1;\n\n\t\tRejected.prototype.fold = function(f, z, c, to) {\n\t\t\tto.become(this);\n\t\t};\n\n\t\tRejected.prototype.when = function(cont) {\n\t\t\tif(typeof cont.rejected === 'function') {\n\t\t\t\tthis._unreport();\n\t\t\t}\n\t\t\trunContinuation1(cont.rejected, this, cont.receiver, cont.resolver);\n\t\t};\n\n\t\tRejected.prototype._report = function(context) {\n\t\t\ttasks.afterQueue(new ReportTask(this, context));\n\t\t};\n\n\t\tRejected.prototype._unreport = function() {\n\t\t\tif(this.handled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.handled = true;\n\t\t\ttasks.afterQueue(new UnreportTask(this));\n\t\t};\n\n\t\tRejected.prototype.fail = function(context) {\n\t\t\tthis.reported = true;\n\t\t\temitRejection('unhandledRejection', this);\n\t\t\tPromise.onFatalRejection(this, context === void 0 ? this.context : context);\n\t\t};\n\n\t\tfunction ReportTask(rejection, context) {\n\t\t\tthis.rejection = rejection;\n\t\t\tthis.context = context;\n\t\t}\n\n\t\tReportTask.prototype.run = function() {\n\t\t\tif(!this.rejection.handled && !this.rejection.reported) {\n\t\t\t\tthis.rejection.reported = true;\n\t\t\t\temitRejection('unhandledRejection', this.rejection) ||\n\t\t\t\t\tPromise.onPotentiallyUnhandledRejection(this.rejection, this.context);\n\t\t\t}\n\t\t};\n\n\t\tfunction UnreportTask(rejection) {\n\t\t\tthis.rejection = rejection;\n\t\t}\n\n\t\tUnreportTask.prototype.run = function() {\n\t\t\tif(this.rejection.reported) {\n\t\t\t\temitRejection('rejectionHandled', this.rejection) ||\n\t\t\t\t\tPromise.onPotentiallyUnhandledRejectionHandled(this.rejection);\n\t\t\t}\n\t\t};\n\n\t\t// Unhandled rejection hooks\n\t\t// By default, everything is a noop\n\n\t\tPromise.createContext\n\t\t\t= Promise.enterContext\n\t\t\t= Promise.exitContext\n\t\t\t= Promise.onPotentiallyUnhandledRejection\n\t\t\t= Promise.onPotentiallyUnhandledRejectionHandled\n\t\t\t= Promise.onFatalRejection\n\t\t\t= noop;\n\n\t\t// Errors and singletons\n\n\t\tvar foreverPendingHandler = new Handler();\n\t\tvar foreverPendingPromise = new Promise(Handler, foreverPendingHandler);\n\n\t\tfunction cycle() {\n\t\t\treturn new Rejected(new TypeError('Promise cycle'));\n\t\t}\n\n\t\t// Task runners\n\n\t\t/**\n\t\t * Run a single consumer\n\t\t * @constructor\n\t\t */\n\t\tfunction ContinuationTask(continuation, handler) {\n\t\t\tthis.continuation = continuation;\n\t\t\tthis.handler = handler;\n\t\t}\n\n\t\tContinuationTask.prototype.run = function() {\n\t\t\tthis.handler.join().when(this.continuation);\n\t\t};\n\n\t\t/**\n\t\t * Run a queue of progress handlers\n\t\t * @constructor\n\t\t */\n\t\tfunction ProgressTask(value, handler) {\n\t\t\tthis.handler = handler;\n\t\t\tthis.value = value;\n\t\t}\n\n\t\tProgressTask.prototype.run = function() {\n\t\t\tvar q = this.handler.consumers;\n\t\t\tif(q === void 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var c, i = 0; i < q.length; ++i) {\n\t\t\t\tc = q[i];\n\t\t\t\trunNotify(c.progress, this.value, this.handler, c.receiver, c.resolver);\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Assimilate a thenable, sending it's value to resolver\n\t\t * @param {function} then\n\t\t * @param {object|function} thenable\n\t\t * @param {object} resolver\n\t\t * @constructor\n\t\t */\n\t\tfunction AssimilateTask(then, thenable, resolver) {\n\t\t\tthis._then = then;\n\t\t\tthis.thenable = thenable;\n\t\t\tthis.resolver = resolver;\n\t\t}\n\n\t\tAssimilateTask.prototype.run = function() {\n\t\t\tvar h = this.resolver;\n\t\t\ttryAssimilate(this._then, this.thenable, _resolve, _reject, _notify);\n\n\t\t\tfunction _resolve(x) { h.resolve(x); }\n\t\t\tfunction _reject(x) { h.reject(x); }\n\t\t\tfunction _notify(x) { h.notify(x); }\n\t\t};\n\n\t\tfunction tryAssimilate(then, thenable, resolve, reject, notify) {\n\t\t\ttry {\n\t\t\t\tthen.call(thenable, resolve, reject, notify);\n\t\t\t} catch (e) {\n\t\t\t\treject(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Fold a handler value with z\n\t\t * @constructor\n\t\t */\n\t\tfunction Fold(f, z, c, to) {\n\t\t\tthis.f = f; this.z = z; this.c = c; this.to = to;\n\t\t\tthis.resolver = failIfRejected;\n\t\t\tthis.receiver = this;\n\t\t}\n\n\t\tFold.prototype.fulfilled = function(x) {\n\t\t\tthis.f.call(this.c, this.z, x, this.to);\n\t\t};\n\n\t\tFold.prototype.rejected = function(x) {\n\t\t\tthis.to.reject(x);\n\t\t};\n\n\t\tFold.prototype.progress = function(x) {\n\t\t\tthis.to.notify(x);\n\t\t};\n\n\t\t// Other helpers\n\n\t\t/**\n\t\t * @param {*} x\n\t\t * @returns {boolean} true iff x is a trusted Promise\n\t\t */\n\t\tfunction isPromise(x) {\n\t\t\treturn x instanceof Promise;\n\t\t}\n\n\t\t/**\n\t\t * Test just enough to rule out primitives, in order to take faster\n\t\t * paths in some code\n\t\t * @param {*} x\n\t\t * @returns {boolean} false iff x is guaranteed *not* to be a thenable\n\t\t */\n\t\tfunction maybeThenable(x) {\n\t\t\treturn (typeof x === 'object' || typeof x === 'function') && x !== null;\n\t\t}\n\n\t\tfunction runContinuation1(f, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.become(h);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReject(f, h.value, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\tfunction runContinuation3(f, x, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.become(h);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReject3(f, x, h.value, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\t/**\n\t\t * @deprecated\n\t\t */\n\t\tfunction runNotify(f, x, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.notify(x);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReturn(f, x, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\tfunction tryCatch2(f, a, b) {\n\t\t\ttry {\n\t\t\t\treturn f(a, b);\n\t\t\t} catch(e) {\n\t\t\t\treturn reject(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Return f.call(thisArg, x), or if it throws return a rejected promise for\n\t\t * the thrown exception\n\t\t */\n\t\tfunction tryCatchReject(f, x, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tnext.become(getHandler(f.call(thisArg, x)));\n\t\t\t} catch(e) {\n\t\t\t\tnext.become(new Rejected(e));\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Same as above, but includes the extra argument parameter.\n\t\t */\n\t\tfunction tryCatchReject3(f, x, y, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tf.call(thisArg, x, y, next);\n\t\t\t} catch(e) {\n\t\t\t\tnext.become(new Rejected(e));\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * @deprecated\n\t\t * Return f.call(thisArg, x), or if it throws, *return* the exception\n\t\t */\n\t\tfunction tryCatchReturn(f, x, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tnext.notify(f.call(thisArg, x));\n\t\t\t} catch(e) {\n\t\t\t\tnext.notify(e);\n\t\t\t}\n\t\t}\n\n\t\tfunction inherit(Parent, Child) {\n\t\t\tChild.prototype = objectCreate(Parent.prototype);\n\t\t\tChild.prototype.constructor = Child;\n\t\t}\n\n\t\tfunction snd(x, y) {\n\t\t\treturn y;\n\t\t}\n\n\t\tfunction noop() {}\n\n\t\tfunction hasCustomEvent() {\n\t\t\tif(typeof CustomEvent === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\tvar ev = new CustomEvent('unhandledRejection');\n\t\t\t\t\treturn ev instanceof CustomEvent;\n\t\t\t\t} catch (ignoredException) {}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction hasInternetExplorerCustomEvent() {\n\t\t\tif(typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\t// Try to create one event to make sure it's supported\n\t\t\t\t\tvar ev = document.createEvent('CustomEvent');\n\t\t\t\t\tev.initCustomEvent('eventType', false, true, {});\n\t\t\t\t\treturn true;\n\t\t\t\t} catch (ignoredException) {}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction initEmitRejection() {\n\t\t\t/*global process, self, CustomEvent*/\n\t\t\tif(typeof process !== 'undefined' && process !== null\n\t\t\t\t&& typeof process.emit === 'function') {\n\t\t\t\t// Returning falsy here means to call the default\n\t\t\t\t// onPotentiallyUnhandledRejection API. This is safe even in\n\t\t\t\t// browserify since process.emit always returns falsy in browserify:\n\t\t\t\t// https://github.com/defunctzombie/node-process/blob/master/browser.js#L40-L46\n\t\t\t\treturn function(type, rejection) {\n\t\t\t\t\treturn type === 'unhandledRejection'\n\t\t\t\t\t\t? process.emit(type, rejection.value, rejection)\n\t\t\t\t\t\t: process.emit(type, rejection);\n\t\t\t\t};\n\t\t\t} else if(typeof self !== 'undefined' && hasCustomEvent()) {\n\t\t\t\treturn (function (self, CustomEvent) {\n\t\t\t\t\treturn function (type, rejection) {\n\t\t\t\t\t\tvar ev = new CustomEvent(type, {\n\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\treason: rejection.value,\n\t\t\t\t\t\t\t\tkey: rejection\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbubbles: false,\n\t\t\t\t\t\t\tcancelable: true\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn !self.dispatchEvent(ev);\n\t\t\t\t\t};\n\t\t\t\t}(self, CustomEvent));\n\t\t\t} else if(typeof self !== 'undefined' && hasInternetExplorerCustomEvent()) {\n\t\t\t\treturn (function(self, document) {\n\t\t\t\t\treturn function(type, rejection) {\n\t\t\t\t\t\tvar ev = document.createEvent('CustomEvent');\n\t\t\t\t\t\tev.initCustomEvent(type, false, true, {\n\t\t\t\t\t\t\treason: rejection.value,\n\t\t\t\t\t\t\tkey: rejection\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn !self.dispatchEvent(ev);\n\t\t\t\t\t};\n\t\t\t\t}(self, document));\n\t\t\t}\n\n\t\t\treturn noop;\n\t\t}\n\n\t\treturn Promise;\n\t};\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n/**\n * ES6 global Promise shim\n */\nvar unhandledRejections = require('../lib/decorators/unhandledRejection');\nvar PromiseConstructor = unhandledRejections(require('../lib/Promise'));\n\nmodule.exports = typeof global != 'undefined' ? (global.Promise = PromiseConstructor)\n\t : typeof self != 'undefined' ? (self.Promise = PromiseConstructor)\n\t : PromiseConstructor;\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function (require) {\n\n\tvar makePromise = require('./makePromise');\n\tvar Scheduler = require('./Scheduler');\n\tvar async = require('./env').asap;\n\n\treturn makePromise({\n\t\tscheduler: new Scheduler(async)\n\t});\n\n});\n})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\t// Credit to Twisol (https://github.com/Twisol) for suggesting\n\t// this type of extensible queue + trampoline approach for next-tick conflation.\n\n\t/**\n\t * Async task scheduler\n\t * @param {function} async function to schedule a single async function\n\t * @constructor\n\t */\n\tfunction Scheduler(async) {\n\t\tthis._async = async;\n\t\tthis._running = false;\n\n\t\tthis._queue = this;\n\t\tthis._queueLen = 0;\n\t\tthis._afterQueue = {};\n\t\tthis._afterQueueLen = 0;\n\n\t\tvar self = this;\n\t\tthis.drain = function() {\n\t\t\tself._drain();\n\t\t};\n\t}\n\n\t/**\n\t * Enqueue a task\n\t * @param {{ run:function }} task\n\t */\n\tScheduler.prototype.enqueue = function(task) {\n\t\tthis._queue[this._queueLen++] = task;\n\t\tthis.run();\n\t};\n\n\t/**\n\t * Enqueue a task to run after the main task queue\n\t * @param {{ run:function }} task\n\t */\n\tScheduler.prototype.afterQueue = function(task) {\n\t\tthis._afterQueue[this._afterQueueLen++] = task;\n\t\tthis.run();\n\t};\n\n\tScheduler.prototype.run = function() {\n\t\tif (!this._running) {\n\t\t\tthis._running = true;\n\t\t\tthis._async(this.drain);\n\t\t}\n\t};\n\n\t/**\n\t * Drain the handler queue entirely, and then the after queue\n\t */\n\tScheduler.prototype._drain = function() {\n\t\tvar i = 0;\n\t\tfor (; i < this._queueLen; ++i) {\n\t\t\tthis._queue[i].run();\n\t\t\tthis._queue[i] = void 0;\n\t\t}\n\n\t\tthis._queueLen = 0;\n\t\tthis._running = false;\n\n\t\tfor (i = 0; i < this._afterQueueLen; ++i) {\n\t\t\tthis._afterQueue[i].run();\n\t\t\tthis._afterQueue[i] = void 0;\n\t\t}\n\n\t\tthis._afterQueueLen = 0;\n\t};\n\n\treturn Scheduler;\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function(require) {\n\n\tvar setTimer = require('../env').setTimer;\n\tvar format = require('../format');\n\n\treturn function unhandledRejection(Promise) {\n\n\t\tvar logError = noop;\n\t\tvar logInfo = noop;\n\t\tvar localConsole;\n\n\t\tif(typeof console !== 'undefined') {\n\t\t\t// Alias console to prevent things like uglify's drop_console option from\n\t\t\t// removing console.log/error. Unhandled rejections fall into the same\n\t\t\t// category as uncaught exceptions, and build tools shouldn't silence them.\n\t\t\tlocalConsole = console;\n\t\t\tlogError = typeof localConsole.error !== 'undefined'\n\t\t\t\t? function (e) { localConsole.error(e); }\n\t\t\t\t: function (e) { localConsole.log(e); };\n\n\t\t\tlogInfo = typeof localConsole.info !== 'undefined'\n\t\t\t\t? function (e) { localConsole.info(e); }\n\t\t\t\t: function (e) { localConsole.log(e); };\n\t\t}\n\n\t\tPromise.onPotentiallyUnhandledRejection = function(rejection) {\n\t\t\tenqueue(report, rejection);\n\t\t};\n\n\t\tPromise.onPotentiallyUnhandledRejectionHandled = function(rejection) {\n\t\t\tenqueue(unreport, rejection);\n\t\t};\n\n\t\tPromise.onFatalRejection = function(rejection) {\n\t\t\tenqueue(throwit, rejection.value);\n\t\t};\n\n\t\tvar tasks = [];\n\t\tvar reported = [];\n\t\tvar running = null;\n\n\t\tfunction report(r) {\n\t\t\tif(!r.handled) {\n\t\t\t\treported.push(r);\n\t\t\t\tlogError('Potentially unhandled rejection [' + r.id + '] ' + format.formatError(r.value));\n\t\t\t}\n\t\t}\n\n\t\tfunction unreport(r) {\n\t\t\tvar i = reported.indexOf(r);\n\t\t\tif(i >= 0) {\n\t\t\t\treported.splice(i, 1);\n\t\t\t\tlogInfo('Handled previous rejection [' + r.id + '] ' + format.formatObject(r.value));\n\t\t\t}\n\t\t}\n\n\t\tfunction enqueue(f, x) {\n\t\t\ttasks.push(f, x);\n\t\t\tif(running === null) {\n\t\t\t\trunning = setTimer(flush, 0);\n\t\t\t}\n\t\t}\n\n\t\tfunction flush() {\n\t\t\trunning = null;\n\t\t\twhile(tasks.length > 0) {\n\t\t\t\ttasks.shift()(tasks.shift());\n\t\t\t}\n\t\t}\n\n\t\treturn Promise;\n\t};\n\n\tfunction throwit(e) {\n\t\tthrow e;\n\t}\n\n\tfunction noop() {}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n/*global process,document,setTimeout,clearTimeout,MutationObserver,WebKitMutationObserver*/\n(function(define) { 'use strict';\ndefine(function(require) {\n\t/*jshint maxcomplexity:6*/\n\n\t// Sniff \"best\" async scheduling option\n\t// Prefer process.nextTick or MutationObserver, then check for\n\t// setTimeout, and finally vertx, since its the only env that doesn't\n\t// have setTimeout\n\n\tvar MutationObs;\n\tvar capturedSetTimeout = typeof setTimeout !== 'undefined' && setTimeout;\n\n\t// Default env\n\tvar setTimer = function(f, ms) { return setTimeout(f, ms); };\n\tvar clearTimer = function(t) { return clearTimeout(t); };\n\tvar asap = function (f) { return capturedSetTimeout(f, 0); };\n\n\t// Detect specific env\n\tif (isNode()) { // Node\n\t\tasap = function (f) { return process.nextTick(f); };\n\n\t} else if (MutationObs = hasMutationObserver()) { // Modern browser\n\t\tasap = initMutationObserver(MutationObs);\n\n\t} else if (!capturedSetTimeout) { // vert.x\n\t\tvar vertxRequire = require;\n\t\tvar vertx = vertxRequire('vertx');\n\t\tsetTimer = function (f, ms) { return vertx.setTimer(ms, f); };\n\t\tclearTimer = vertx.cancelTimer;\n\t\tasap = vertx.runOnLoop || vertx.runOnContext;\n\t}\n\n\treturn {\n\t\tsetTimer: setTimer,\n\t\tclearTimer: clearTimer,\n\t\tasap: asap\n\t};\n\n\tfunction isNode () {\n\t\treturn typeof process !== 'undefined' &&\n\t\t\tObject.prototype.toString.call(process) === '[object process]';\n\t}\n\n\tfunction hasMutationObserver () {\n\t return (typeof MutationObserver !== 'undefined' && MutationObserver) ||\n\t\t\t(typeof WebKitMutationObserver !== 'undefined' && WebKitMutationObserver);\n\t}\n\n\tfunction initMutationObserver(MutationObserver) {\n\t\tvar scheduled;\n\t\tvar node = document.createTextNode('');\n\t\tvar o = new MutationObserver(run);\n\t\to.observe(node, { characterData: true });\n\n\t\tfunction run() {\n\t\t\tvar f = scheduled;\n\t\t\tscheduled = void 0;\n\t\t\tf();\n\t\t}\n\n\t\tvar i = 0;\n\t\treturn function (f) {\n\t\t\tscheduled = f;\n\t\t\tnode.data = (i ^= 1);\n\t\t};\n\t}\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn {\n\t\tformatError: formatError,\n\t\tformatObject: formatObject,\n\t\ttryStringify: tryStringify\n\t};\n\n\t/**\n\t * Format an error into a string. If e is an Error and has a stack property,\n\t * it's returned. Otherwise, e is formatted using formatObject, with a\n\t * warning added about e not being a proper Error.\n\t * @param {*} e\n\t * @returns {String} formatted string, suitable for output to developers\n\t */\n\tfunction formatError(e) {\n\t\tvar s = typeof e === 'object' && e !== null && (e.stack || e.message) ? e.stack || e.message : formatObject(e);\n\t\treturn e instanceof Error ? s : s + ' (WARNING: non-Error used)';\n\t}\n\n\t/**\n\t * Format an object, detecting \"plain\" objects and running them through\n\t * JSON.stringify if possible.\n\t * @param {Object} o\n\t * @returns {string}\n\t */\n\tfunction formatObject(o) {\n\t\tvar s = String(o);\n\t\tif(s === '[object Object]' && typeof JSON !== 'undefined') {\n\t\t\ts = tryStringify(o, s);\n\t\t}\n\t\treturn s;\n\t}\n\n\t/**\n\t * Try to return the result of JSON.stringify(x). If that fails, return\n\t * defaultValue\n\t * @param {*} x\n\t * @param {*} defaultValue\n\t * @returns {String|*} JSON.stringify(x) or defaultValue\n\t */\n\tfunction tryStringify(x, defaultValue) {\n\t\ttry {\n\t\t\treturn JSON.stringify(x);\n\t\t} catch(e) {\n\t\t\treturn defaultValue;\n\t\t}\n\t}\n\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n","/** @license MIT License (c) copyright 2010-2014 original author or authors */\n/** @author Brian Cavalier */\n/** @author John Hann */\n\n(function(define) { 'use strict';\ndefine(function() {\n\n\treturn function makePromise(environment) {\n\n\t\tvar tasks = environment.scheduler;\n\t\tvar emitRejection = initEmitRejection();\n\n\t\tvar objectCreate = Object.create ||\n\t\t\tfunction(proto) {\n\t\t\t\tfunction Child() {}\n\t\t\t\tChild.prototype = proto;\n\t\t\t\treturn new Child();\n\t\t\t};\n\n\t\t/**\n\t\t * Create a promise whose fate is determined by resolver\n\t\t * @constructor\n\t\t * @returns {Promise} promise\n\t\t * @name Promise\n\t\t */\n\t\tfunction Promise(resolver, handler) {\n\t\t\tthis._handler = resolver === Handler ? handler : init(resolver);\n\t\t}\n\n\t\t/**\n\t\t * Run the supplied resolver\n\t\t * @param resolver\n\t\t * @returns {Pending}\n\t\t */\n\t\tfunction init(resolver) {\n\t\t\tvar handler = new Pending();\n\n\t\t\ttry {\n\t\t\t\tresolver(promiseResolve, promiseReject, promiseNotify);\n\t\t\t} catch (e) {\n\t\t\t\tpromiseReject(e);\n\t\t\t}\n\n\t\t\treturn handler;\n\n\t\t\t/**\n\t\t\t * Transition from pre-resolution state to post-resolution state, notifying\n\t\t\t * all listeners of the ultimate fulfillment or rejection\n\t\t\t * @param {*} x resolution value\n\t\t\t */\n\t\t\tfunction promiseResolve (x) {\n\t\t\t\thandler.resolve(x);\n\t\t\t}\n\t\t\t/**\n\t\t\t * Reject this promise with reason, which will be used verbatim\n\t\t\t * @param {Error|*} reason rejection reason, strongly suggested\n\t\t\t * to be an Error type\n\t\t\t */\n\t\t\tfunction promiseReject (reason) {\n\t\t\t\thandler.reject(reason);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * @deprecated\n\t\t\t * Issue a progress event, notifying all progress listeners\n\t\t\t * @param {*} x progress event payload to pass to all listeners\n\t\t\t */\n\t\t\tfunction promiseNotify (x) {\n\t\t\t\thandler.notify(x);\n\t\t\t}\n\t\t}\n\n\t\t// Creation\n\n\t\tPromise.resolve = resolve;\n\t\tPromise.reject = reject;\n\t\tPromise.never = never;\n\n\t\tPromise._defer = defer;\n\t\tPromise._handler = getHandler;\n\n\t\t/**\n\t\t * Returns a trusted promise. If x is already a trusted promise, it is\n\t\t * returned, otherwise returns a new trusted Promise which follows x.\n\t\t * @param {*} x\n\t\t * @return {Promise} promise\n\t\t */\n\t\tfunction resolve(x) {\n\t\t\treturn isPromise(x) ? x\n\t\t\t\t: new Promise(Handler, new Async(getHandler(x)));\n\t\t}\n\n\t\t/**\n\t\t * Return a reject promise with x as its reason (x is used verbatim)\n\t\t * @param {*} x\n\t\t * @returns {Promise} rejected promise\n\t\t */\n\t\tfunction reject(x) {\n\t\t\treturn new Promise(Handler, new Async(new Rejected(x)));\n\t\t}\n\n\t\t/**\n\t\t * Return a promise that remains pending forever\n\t\t * @returns {Promise} forever-pending promise.\n\t\t */\n\t\tfunction never() {\n\t\t\treturn foreverPendingPromise; // Should be frozen\n\t\t}\n\n\t\t/**\n\t\t * Creates an internal {promise, resolver} pair\n\t\t * @private\n\t\t * @returns {Promise}\n\t\t */\n\t\tfunction defer() {\n\t\t\treturn new Promise(Handler, new Pending());\n\t\t}\n\n\t\t// Transformation and flow control\n\n\t\t/**\n\t\t * Transform this promise's fulfillment value, returning a new Promise\n\t\t * for the transformed result. If the promise cannot be fulfilled, onRejected\n\t\t * is called with the reason. onProgress *may* be called with updates toward\n\t\t * this promise's fulfillment.\n\t\t * @param {function=} onFulfilled fulfillment handler\n\t\t * @param {function=} onRejected rejection handler\n\t\t * @param {function=} onProgress @deprecated progress handler\n\t\t * @return {Promise} new promise\n\t\t */\n\t\tPromise.prototype.then = function(onFulfilled, onRejected, onProgress) {\n\t\t\tvar parent = this._handler;\n\t\t\tvar state = parent.join().state();\n\n\t\t\tif ((typeof onFulfilled !== 'function' && state > 0) ||\n\t\t\t\t(typeof onRejected !== 'function' && state < 0)) {\n\t\t\t\t// Short circuit: value will not change, simply share handler\n\t\t\t\treturn new this.constructor(Handler, parent);\n\t\t\t}\n\n\t\t\tvar p = this._beget();\n\t\t\tvar child = p._handler;\n\n\t\t\tparent.chain(child, parent.receiver, onFulfilled, onRejected, onProgress);\n\n\t\t\treturn p;\n\t\t};\n\n\t\t/**\n\t\t * If this promise cannot be fulfilled due to an error, call onRejected to\n\t\t * handle the error. Shortcut for .then(undefined, onRejected)\n\t\t * @param {function?} onRejected\n\t\t * @return {Promise}\n\t\t */\n\t\tPromise.prototype['catch'] = function(onRejected) {\n\t\t\treturn this.then(void 0, onRejected);\n\t\t};\n\n\t\t/**\n\t\t * Creates a new, pending promise of the same type as this promise\n\t\t * @private\n\t\t * @returns {Promise}\n\t\t */\n\t\tPromise.prototype._beget = function() {\n\t\t\treturn begetFrom(this._handler, this.constructor);\n\t\t};\n\n\t\tfunction begetFrom(parent, Promise) {\n\t\t\tvar child = new Pending(parent.receiver, parent.join().context);\n\t\t\treturn new Promise(Handler, child);\n\t\t}\n\n\t\t// Array combinators\n\n\t\tPromise.all = all;\n\t\tPromise.race = race;\n\t\tPromise._traverse = traverse;\n\n\t\t/**\n\t\t * Return a promise that will fulfill when all promises in the\n\t\t * input array have fulfilled, or will reject when one of the\n\t\t * promises rejects.\n\t\t * @param {array} promises array of promises\n\t\t * @returns {Promise} promise for array of fulfillment values\n\t\t */\n\t\tfunction all(promises) {\n\t\t\treturn traverseWith(snd, null, promises);\n\t\t}\n\n\t\t/**\n\t\t * Array<Promise<X>> -> Promise<Array<f(X)>>\n\t\t * @private\n\t\t * @param {function} f function to apply to each promise's value\n\t\t * @param {Array} promises array of promises\n\t\t * @returns {Promise} promise for transformed values\n\t\t */\n\t\tfunction traverse(f, promises) {\n\t\t\treturn traverseWith(tryCatch2, f, promises);\n\t\t}\n\n\t\tfunction traverseWith(tryMap, f, promises) {\n\t\t\tvar handler = typeof f === 'function' ? mapAt : settleAt;\n\n\t\t\tvar resolver = new Pending();\n\t\t\tvar pending = promises.length >>> 0;\n\t\t\tvar results = new Array(pending);\n\n\t\t\tfor (var i = 0, x; i < promises.length && !resolver.resolved; ++i) {\n\t\t\t\tx = promises[i];\n\n\t\t\t\tif (x === void 0 && !(i in promises)) {\n\t\t\t\t\t--pending;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\ttraverseAt(promises, handler, i, x, resolver);\n\t\t\t}\n\n\t\t\tif(pending === 0) {\n\t\t\t\tresolver.become(new Fulfilled(results));\n\t\t\t}\n\n\t\t\treturn new Promise(Handler, resolver);\n\n\t\t\tfunction mapAt(i, x, resolver) {\n\t\t\t\tif(!resolver.resolved) {\n\t\t\t\t\ttraverseAt(promises, settleAt, i, tryMap(f, x, i), resolver);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction settleAt(i, x, resolver) {\n\t\t\t\tresults[i] = x;\n\t\t\t\tif(--pending === 0) {\n\t\t\t\t\tresolver.become(new Fulfilled(results));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction traverseAt(promises, handler, i, x, resolver) {\n\t\t\tif (maybeThenable(x)) {\n\t\t\t\tvar h = getHandlerMaybeThenable(x);\n\t\t\t\tvar s = h.state();\n\n\t\t\t\tif (s === 0) {\n\t\t\t\t\th.fold(handler, i, void 0, resolver);\n\t\t\t\t} else if (s > 0) {\n\t\t\t\t\thandler(i, h.value, resolver);\n\t\t\t\t} else {\n\t\t\t\t\tresolver.become(h);\n\t\t\t\t\tvisitRemaining(promises, i+1, h);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thandler(i, x, resolver);\n\t\t\t}\n\t\t}\n\n\t\tPromise._visitRemaining = visitRemaining;\n\t\tfunction visitRemaining(promises, start, handler) {\n\t\t\tfor(var i=start; i<promises.length; ++i) {\n\t\t\t\tmarkAsHandled(getHandler(promises[i]), handler);\n\t\t\t}\n\t\t}\n\n\t\tfunction markAsHandled(h, handler) {\n\t\t\tif(h === handler) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar s = h.state();\n\t\t\tif(s === 0) {\n\t\t\t\th.visit(h, void 0, h._unreport);\n\t\t\t} else if(s < 0) {\n\t\t\t\th._unreport();\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Fulfill-reject competitive race. Return a promise that will settle\n\t\t * to the same state as the earliest input promise to settle.\n\t\t *\n\t\t * WARNING: The ES6 Promise spec requires that race()ing an empty array\n\t\t * must return a promise that is pending forever. This implementation\n\t\t * returns a singleton forever-pending promise, the same singleton that is\n\t\t * returned by Promise.never(), thus can be checked with ===\n\t\t *\n\t\t * @param {array} promises array of promises to race\n\t\t * @returns {Promise} if input is non-empty, a promise that will settle\n\t\t * to the same outcome as the earliest input promise to settle. if empty\n\t\t * is empty, returns a promise that will never settle.\n\t\t */\n\t\tfunction race(promises) {\n\t\t\tif(typeof promises !== 'object' || promises === null) {\n\t\t\t\treturn reject(new TypeError('non-iterable passed to race()'));\n\t\t\t}\n\n\t\t\t// Sigh, race([]) is untestable unless we return *something*\n\t\t\t// that is recognizable without calling .then() on it.\n\t\t\treturn promises.length === 0 ? never()\n\t\t\t\t : promises.length === 1 ? resolve(promises[0])\n\t\t\t\t : runRace(promises);\n\t\t}\n\n\t\tfunction runRace(promises) {\n\t\t\tvar resolver = new Pending();\n\t\t\tvar i, x, h;\n\t\t\tfor(i=0; i<promises.length; ++i) {\n\t\t\t\tx = promises[i];\n\t\t\t\tif (x === void 0 && !(i in promises)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\th = getHandler(x);\n\t\t\t\tif(h.state() !== 0) {\n\t\t\t\t\tresolver.become(h);\n\t\t\t\t\tvisitRemaining(promises, i+1, h);\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\th.visit(resolver, resolver.resolve, resolver.reject);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn new Promise(Handler, resolver);\n\t\t}\n\n\t\t// Promise internals\n\t\t// Below this, everything is @private\n\n\t\t/**\n\t\t * Get an appropriate handler for x, without checking for cycles\n\t\t * @param {*} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandler(x) {\n\t\t\tif(isPromise(x)) {\n\t\t\t\treturn x._handler.join();\n\t\t\t}\n\t\t\treturn maybeThenable(x) ? getHandlerUntrusted(x) : new Fulfilled(x);\n\t\t}\n\n\t\t/**\n\t\t * Get a handler for thenable x.\n\t\t * NOTE: You must only call this if maybeThenable(x) == true\n\t\t * @param {object|function|Promise} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandlerMaybeThenable(x) {\n\t\t\treturn isPromise(x) ? x._handler.join() : getHandlerUntrusted(x);\n\t\t}\n\n\t\t/**\n\t\t * Get a handler for potentially untrusted thenable x\n\t\t * @param {*} x\n\t\t * @returns {object} handler\n\t\t */\n\t\tfunction getHandlerUntrusted(x) {\n\t\t\ttry {\n\t\t\t\tvar untrustedThen = x.then;\n\t\t\t\treturn typeof untrustedThen === 'function'\n\t\t\t\t\t? new Thenable(untrustedThen, x)\n\t\t\t\t\t: new Fulfilled(x);\n\t\t\t} catch(e) {\n\t\t\t\treturn new Rejected(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Handler for a promise that is pending forever\n\t\t * @constructor\n\t\t */\n\t\tfunction Handler() {}\n\n\t\tHandler.prototype.when\n\t\t\t= Handler.prototype.become\n\t\t\t= Handler.prototype.notify // deprecated\n\t\t\t= Handler.prototype.fail\n\t\t\t= Handler.prototype._unreport\n\t\t\t= Handler.prototype._report\n\t\t\t= noop;\n\n\t\tHandler.prototype._state = 0;\n\n\t\tHandler.prototype.state = function() {\n\t\t\treturn this._state;\n\t\t};\n\n\t\t/**\n\t\t * Recursively collapse handler chain to find the handler\n\t\t * nearest to the fully resolved value.\n\t\t * @returns {object} handler nearest the fully resolved value\n\t\t */\n\t\tHandler.prototype.join = function() {\n\t\t\tvar h = this;\n\t\t\twhile(h.handler !== void 0) {\n\t\t\t\th = h.handler;\n\t\t\t}\n\t\t\treturn h;\n\t\t};\n\n\t\tHandler.prototype.chain = function(to, receiver, fulfilled, rejected, progress) {\n\t\t\tthis.when({\n\t\t\t\tresolver: to,\n\t\t\t\treceiver: receiver,\n\t\t\t\tfulfilled: fulfilled,\n\t\t\t\trejected: rejected,\n\t\t\t\tprogress: progress\n\t\t\t});\n\t\t};\n\n\t\tHandler.prototype.visit = function(receiver, fulfilled, rejected, progress) {\n\t\t\tthis.chain(failIfRejected, receiver, fulfilled, rejected, progress);\n\t\t};\n\n\t\tHandler.prototype.fold = function(f, z, c, to) {\n\t\t\tthis.when(new Fold(f, z, c, to));\n\t\t};\n\n\t\t/**\n\t\t * Handler that invokes fail() on any handler it becomes\n\t\t * @constructor\n\t\t */\n\t\tfunction FailIfRejected() {}\n\n\t\tinherit(Handler, FailIfRejected);\n\n\t\tFailIfRejected.prototype.become = function(h) {\n\t\t\th.fail();\n\t\t};\n\n\t\tvar failIfRejected = new FailIfRejected();\n\n\t\t/**\n\t\t * Handler that manages a queue of consumers waiting on a pending promise\n\t\t * @constructor\n\t\t */\n\t\tfunction Pending(receiver, inheritedContext) {\n\t\t\tPromise.createContext(this, inheritedContext);\n\n\t\t\tthis.consumers = void 0;\n\t\t\tthis.receiver = receiver;\n\t\t\tthis.handler = void 0;\n\t\t\tthis.resolved = false;\n\t\t}\n\n\t\tinherit(Handler, Pending);\n\n\t\tPending.prototype._state = 0;\n\n\t\tPending.prototype.resolve = function(x) {\n\t\t\tthis.become(getHandler(x));\n\t\t};\n\n\t\tPending.prototype.reject = function(x) {\n\t\t\tif(this.resolved) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.become(new Rejected(x));\n\t\t};\n\n\t\tPending.prototype.join = function() {\n\t\t\tif (!this.resolved) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tvar h = this;\n\n\t\t\twhile (h.handler !== void 0) {\n\t\t\t\th = h.handler;\n\t\t\t\tif (h === this) {\n\t\t\t\t\treturn this.handler = cycle();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn h;\n\t\t};\n\n\t\tPending.prototype.run = function() {\n\t\t\tvar q = this.consumers;\n\t\t\tvar handler = this.handler;\n\t\t\tthis.handler = this.handler.join();\n\t\t\tthis.consumers = void 0;\n\n\t\t\tfor (var i = 0; i < q.length; ++i) {\n\t\t\t\thandler.when(q[i]);\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.become = function(handler) {\n\t\t\tif(this.resolved) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.resolved = true;\n\t\t\tthis.handler = handler;\n\t\t\tif(this.consumers !== void 0) {\n\t\t\t\ttasks.enqueue(this);\n\t\t\t}\n\n\t\t\tif(this.context !== void 0) {\n\t\t\t\thandler._report(this.context);\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.when = function(continuation) {\n\t\t\tif(this.resolved) {\n\t\t\t\ttasks.enqueue(new ContinuationTask(continuation, this.handler));\n\t\t\t} else {\n\t\t\t\tif(this.consumers === void 0) {\n\t\t\t\t\tthis.consumers = [continuation];\n\t\t\t\t} else {\n\t\t\t\t\tthis.consumers.push(continuation);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * @deprecated\n\t\t */\n\t\tPending.prototype.notify = function(x) {\n\t\t\tif(!this.resolved) {\n\t\t\t\ttasks.enqueue(new ProgressTask(x, this));\n\t\t\t}\n\t\t};\n\n\t\tPending.prototype.fail = function(context) {\n\t\t\tvar c = typeof context === 'undefined' ? this.context : context;\n\t\t\tthis.resolved && this.handler.join().fail(c);\n\t\t};\n\n\t\tPending.prototype._report = function(context) {\n\t\t\tthis.resolved && this.handler.join()._report(context);\n\t\t};\n\n\t\tPending.prototype._unreport = function() {\n\t\t\tthis.resolved && this.handler.join()._unreport();\n\t\t};\n\n\t\t/**\n\t\t * Wrap another handler and force it into a future stack\n\t\t * @param {object} handler\n\t\t * @constructor\n\t\t */\n\t\tfunction Async(handler) {\n\t\t\tthis.handler = handler;\n\t\t}\n\n\t\tinherit(Handler, Async);\n\n\t\tAsync.prototype.when = function(continuation) {\n\t\t\ttasks.enqueue(new ContinuationTask(continuation, this));\n\t\t};\n\n\t\tAsync.prototype._report = function(context) {\n\t\t\tthis.join()._report(context);\n\t\t};\n\n\t\tAsync.prototype._unreport = function() {\n\t\t\tthis.join()._unreport();\n\t\t};\n\n\t\t/**\n\t\t * Handler that wraps an untrusted thenable and assimilates it in a future stack\n\t\t * @param {function} then\n\t\t * @param {{then: function}} thenable\n\t\t * @constructor\n\t\t */\n\t\tfunction Thenable(then, thenable) {\n\t\t\tPending.call(this);\n\t\t\ttasks.enqueue(new AssimilateTask(then, thenable, this));\n\t\t}\n\n\t\tinherit(Pending, Thenable);\n\n\t\t/**\n\t\t * Handler for a fulfilled promise\n\t\t * @param {*} x fulfillment value\n\t\t * @constructor\n\t\t */\n\t\tfunction Fulfilled(x) {\n\t\t\tPromise.createContext(this);\n\t\t\tthis.value = x;\n\t\t}\n\n\t\tinherit(Handler, Fulfilled);\n\n\t\tFulfilled.prototype._state = 1;\n\n\t\tFulfilled.prototype.fold = function(f, z, c, to) {\n\t\t\trunContinuation3(f, z, this, c, to);\n\t\t};\n\n\t\tFulfilled.prototype.when = function(cont) {\n\t\t\trunContinuation1(cont.fulfilled, this, cont.receiver, cont.resolver);\n\t\t};\n\n\t\tvar errorId = 0;\n\n\t\t/**\n\t\t * Handler for a rejected promise\n\t\t * @param {*} x rejection reason\n\t\t * @constructor\n\t\t */\n\t\tfunction Rejected(x) {\n\t\t\tPromise.createContext(this);\n\n\t\t\tthis.id = ++errorId;\n\t\t\tthis.value = x;\n\t\t\tthis.handled = false;\n\t\t\tthis.reported = false;\n\n\t\t\tthis._report();\n\t\t}\n\n\t\tinherit(Handler, Rejected);\n\n\t\tRejected.prototype._state = -1;\n\n\t\tRejected.prototype.fold = function(f, z, c, to) {\n\t\t\tto.become(this);\n\t\t};\n\n\t\tRejected.prototype.when = function(cont) {\n\t\t\tif(typeof cont.rejected === 'function') {\n\t\t\t\tthis._unreport();\n\t\t\t}\n\t\t\trunContinuation1(cont.rejected, this, cont.receiver, cont.resolver);\n\t\t};\n\n\t\tRejected.prototype._report = function(context) {\n\t\t\ttasks.afterQueue(new ReportTask(this, context));\n\t\t};\n\n\t\tRejected.prototype._unreport = function() {\n\t\t\tif(this.handled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.handled = true;\n\t\t\ttasks.afterQueue(new UnreportTask(this));\n\t\t};\n\n\t\tRejected.prototype.fail = function(context) {\n\t\t\tthis.reported = true;\n\t\t\temitRejection('unhandledRejection', this);\n\t\t\tPromise.onFatalRejection(this, context === void 0 ? this.context : context);\n\t\t};\n\n\t\tfunction ReportTask(rejection, context) {\n\t\t\tthis.rejection = rejection;\n\t\t\tthis.context = context;\n\t\t}\n\n\t\tReportTask.prototype.run = function() {\n\t\t\tif(!this.rejection.handled && !this.rejection.reported) {\n\t\t\t\tthis.rejection.reported = true;\n\t\t\t\temitRejection('unhandledRejection', this.rejection) ||\n\t\t\t\t\tPromise.onPotentiallyUnhandledRejection(this.rejection, this.context);\n\t\t\t}\n\t\t};\n\n\t\tfunction UnreportTask(rejection) {\n\t\t\tthis.rejection = rejection;\n\t\t}\n\n\t\tUnreportTask.prototype.run = function() {\n\t\t\tif(this.rejection.reported) {\n\t\t\t\temitRejection('rejectionHandled', this.rejection) ||\n\t\t\t\t\tPromise.onPotentiallyUnhandledRejectionHandled(this.rejection);\n\t\t\t}\n\t\t};\n\n\t\t// Unhandled rejection hooks\n\t\t// By default, everything is a noop\n\n\t\tPromise.createContext\n\t\t\t= Promise.enterContext\n\t\t\t= Promise.exitContext\n\t\t\t= Promise.onPotentiallyUnhandledRejection\n\t\t\t= Promise.onPotentiallyUnhandledRejectionHandled\n\t\t\t= Promise.onFatalRejection\n\t\t\t= noop;\n\n\t\t// Errors and singletons\n\n\t\tvar foreverPendingHandler = new Handler();\n\t\tvar foreverPendingPromise = new Promise(Handler, foreverPendingHandler);\n\n\t\tfunction cycle() {\n\t\t\treturn new Rejected(new TypeError('Promise cycle'));\n\t\t}\n\n\t\t// Task runners\n\n\t\t/**\n\t\t * Run a single consumer\n\t\t * @constructor\n\t\t */\n\t\tfunction ContinuationTask(continuation, handler) {\n\t\t\tthis.continuation = continuation;\n\t\t\tthis.handler = handler;\n\t\t}\n\n\t\tContinuationTask.prototype.run = function() {\n\t\t\tthis.handler.join().when(this.continuation);\n\t\t};\n\n\t\t/**\n\t\t * Run a queue of progress handlers\n\t\t * @constructor\n\t\t */\n\t\tfunction ProgressTask(value, handler) {\n\t\t\tthis.handler = handler;\n\t\t\tthis.value = value;\n\t\t}\n\n\t\tProgressTask.prototype.run = function() {\n\t\t\tvar q = this.handler.consumers;\n\t\t\tif(q === void 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var c, i = 0; i < q.length; ++i) {\n\t\t\t\tc = q[i];\n\t\t\t\trunNotify(c.progress, this.value, this.handler, c.receiver, c.resolver);\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Assimilate a thenable, sending it's value to resolver\n\t\t * @param {function} then\n\t\t * @param {object|function} thenable\n\t\t * @param {object} resolver\n\t\t * @constructor\n\t\t */\n\t\tfunction AssimilateTask(then, thenable, resolver) {\n\t\t\tthis._then = then;\n\t\t\tthis.thenable = thenable;\n\t\t\tthis.resolver = resolver;\n\t\t}\n\n\t\tAssimilateTask.prototype.run = function() {\n\t\t\tvar h = this.resolver;\n\t\t\ttryAssimilate(this._then, this.thenable, _resolve, _reject, _notify);\n\n\t\t\tfunction _resolve(x) { h.resolve(x); }\n\t\t\tfunction _reject(x) { h.reject(x); }\n\t\t\tfunction _notify(x) { h.notify(x); }\n\t\t};\n\n\t\tfunction tryAssimilate(then, thenable, resolve, reject, notify) {\n\t\t\ttry {\n\t\t\t\tthen.call(thenable, resolve, reject, notify);\n\t\t\t} catch (e) {\n\t\t\t\treject(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Fold a handler value with z\n\t\t * @constructor\n\t\t */\n\t\tfunction Fold(f, z, c, to) {\n\t\t\tthis.f = f; this.z = z; this.c = c; this.to = to;\n\t\t\tthis.resolver = failIfRejected;\n\t\t\tthis.receiver = this;\n\t\t}\n\n\t\tFold.prototype.fulfilled = function(x) {\n\t\t\tthis.f.call(this.c, this.z, x, this.to);\n\t\t};\n\n\t\tFold.prototype.rejected = function(x) {\n\t\t\tthis.to.reject(x);\n\t\t};\n\n\t\tFold.prototype.progress = function(x) {\n\t\t\tthis.to.notify(x);\n\t\t};\n\n\t\t// Other helpers\n\n\t\t/**\n\t\t * @param {*} x\n\t\t * @returns {boolean} true iff x is a trusted Promise\n\t\t */\n\t\tfunction isPromise(x) {\n\t\t\treturn x instanceof Promise;\n\t\t}\n\n\t\t/**\n\t\t * Test just enough to rule out primitives, in order to take faster\n\t\t * paths in some code\n\t\t * @param {*} x\n\t\t * @returns {boolean} false iff x is guaranteed *not* to be a thenable\n\t\t */\n\t\tfunction maybeThenable(x) {\n\t\t\treturn (typeof x === 'object' || typeof x === 'function') && x !== null;\n\t\t}\n\n\t\tfunction runContinuation1(f, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.become(h);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReject(f, h.value, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\tfunction runContinuation3(f, x, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.become(h);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReject3(f, x, h.value, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\t/**\n\t\t * @deprecated\n\t\t */\n\t\tfunction runNotify(f, x, h, receiver, next) {\n\t\t\tif(typeof f !== 'function') {\n\t\t\t\treturn next.notify(x);\n\t\t\t}\n\n\t\t\tPromise.enterContext(h);\n\t\t\ttryCatchReturn(f, x, receiver, next);\n\t\t\tPromise.exitContext();\n\t\t}\n\n\t\tfunction tryCatch2(f, a, b) {\n\t\t\ttry {\n\t\t\t\treturn f(a, b);\n\t\t\t} catch(e) {\n\t\t\t\treturn reject(e);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Return f.call(thisArg, x), or if it throws return a rejected promise for\n\t\t * the thrown exception\n\t\t */\n\t\tfunction tryCatchReject(f, x, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tnext.become(getHandler(f.call(thisArg, x)));\n\t\t\t} catch(e) {\n\t\t\t\tnext.become(new Rejected(e));\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Same as above, but includes the extra argument parameter.\n\t\t */\n\t\tfunction tryCatchReject3(f, x, y, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tf.call(thisArg, x, y, next);\n\t\t\t} catch(e) {\n\t\t\t\tnext.become(new Rejected(e));\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * @deprecated\n\t\t * Return f.call(thisArg, x), or if it throws, *return* the exception\n\t\t */\n\t\tfunction tryCatchReturn(f, x, thisArg, next) {\n\t\t\ttry {\n\t\t\t\tnext.notify(f.call(thisArg, x));\n\t\t\t} catch(e) {\n\t\t\t\tnext.notify(e);\n\t\t\t}\n\t\t}\n\n\t\tfunction inherit(Parent, Child) {\n\t\t\tChild.prototype = objectCreate(Parent.prototype);\n\t\t\tChild.prototype.constructor = Child;\n\t\t}\n\n\t\tfunction snd(x, y) {\n\t\t\treturn y;\n\t\t}\n\n\t\tfunction noop() {}\n\n\t\tfunction hasCustomEvent() {\n\t\t\tif(typeof CustomEvent === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\tvar ev = new CustomEvent('unhandledRejection');\n\t\t\t\t\treturn ev instanceof CustomEvent;\n\t\t\t\t} catch (ignoredException) {}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction hasInternetExplorerCustomEvent() {\n\t\t\tif(typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\t// Try to create one event to make sure it's supported\n\t\t\t\t\tvar ev = document.createEvent('CustomEvent');\n\t\t\t\t\tev.initCustomEvent('eventType', false, true, {});\n\t\t\t\t\treturn true;\n\t\t\t\t} catch (ignoredException) {}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction initEmitRejection() {\n\t\t\t/*global process, self, CustomEvent*/\n\t\t\tif(typeof process !== 'undefined' && process !== null\n\t\t\t\t&& typeof process.emit === 'function') {\n\t\t\t\t// Returning falsy here means to call the default\n\t\t\t\t// onPotentiallyUnhandledRejection API. This is safe even in\n\t\t\t\t// browserify since process.emit always returns falsy in browserify:\n\t\t\t\t// https://github.com/defunctzombie/node-process/blob/master/browser.js#L40-L46\n\t\t\t\treturn function(type, rejection) {\n\t\t\t\t\treturn type === 'unhandledRejection'\n\t\t\t\t\t\t? process.emit(type, rejection.value, rejection)\n\t\t\t\t\t\t: process.emit(type, rejection);\n\t\t\t\t};\n\t\t\t} else if(typeof self !== 'undefined' && hasCustomEvent()) {\n\t\t\t\treturn (function (self, CustomEvent) {\n\t\t\t\t\treturn function (type, rejection) {\n\t\t\t\t\t\tvar ev = new CustomEvent(type, {\n\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\treason: rejection.value,\n\t\t\t\t\t\t\t\tkey: rejection\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbubbles: false,\n\t\t\t\t\t\t\tcancelable: true\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn !self.dispatchEvent(ev);\n\t\t\t\t\t};\n\t\t\t\t}(self, CustomEvent));\n\t\t\t} else if(typeof self !== 'undefined' && hasInternetExplorerCustomEvent()) {\n\t\t\t\treturn (function(self, document) {\n\t\t\t\t\treturn function(type, rejection) {\n\t\t\t\t\t\tvar ev = document.createEvent('CustomEvent');\n\t\t\t\t\t\tev.initCustomEvent(type, false, true, {\n\t\t\t\t\t\t\treason: rejection.value,\n\t\t\t\t\t\t\tkey: rejection\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn !self.dispatchEvent(ev);\n\t\t\t\t\t};\n\t\t\t\t}(self, document));\n\t\t\t}\n\n\t\t\treturn noop;\n\t\t}\n\n\t\treturn Promise;\n\t};\n});\n}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));\n"]} \ No newline at end of file
diff --git a/node_modules/when/es6-shim/README.md b/node_modules/when/es6-shim/README.md
deleted file mode 100644
index fe1749e5d..000000000
--- a/node_modules/when/es6-shim/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# ES6 Promise shim
-
-Promise.js in this dir contains a complete ES6 Promise shim built on when.js that adds a global `Promise` in browser, AMD, Node, and other CommonJS environments.
-
-[Go to the full documentation](../docs/es6-promise-shim.md) \ No newline at end of file
diff --git a/node_modules/when/function.js b/node_modules/when/function.js
deleted file mode 100644
index b76172b07..000000000
--- a/node_modules/when/function.js
+++ /dev/null
@@ -1,104 +0,0 @@
-/** @license MIT License (c) copyright 2013-2014 original author or authors */
-
-/**
- * Collection of helper functions for wrapping and executing 'traditional'
- * synchronous functions in a promise interface.
- *
- * @author Brian Cavalier
- * @contributor Renato Zannon
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var attempt = when['try'];
- var _liftAll = require('./lib/liftAll');
- var _apply = require('./lib/apply')(when.Promise);
- var slice = Array.prototype.slice;
-
- return {
- lift: lift,
- liftAll: liftAll,
- call: attempt,
- apply: apply,
- compose: compose
- };
-
- /**
- * Takes a function and an optional array of arguments (that might be promises),
- * and calls the function. The return value is a promise whose resolution
- * depends on the value returned by the function.
- * @param {function} f function to be called
- * @param {Array} [args] array of arguments to func
- * @returns {Promise} promise for the return value of func
- */
- function apply(f, args) {
- // slice args just in case the caller passed an Arguments instance
- return _apply(f, this, args == null ? [] : slice.call(args));
- }
-
- /**
- * Takes a 'regular' function and returns a version of that function that
- * returns a promise instead of a plain value, and handles thrown errors by
- * returning a rejected promise. Also accepts a list of arguments to be
- * prepended to the new function, as does Function.prototype.bind.
- *
- * The resulting function is promise-aware, in the sense that it accepts
- * promise arguments, and waits for their resolution.
- * @param {Function} f function to be bound
- * @param {...*} [args] arguments to be prepended for the new function @deprecated
- * @returns {Function} a promise-returning function
- */
- function lift(f /*, args... */) {
- var args = arguments.length > 1 ? slice.call(arguments, 1) : [];
- return function() {
- return _apply(f, this, args.concat(slice.call(arguments)));
- };
- }
-
- /**
- * Lift all the functions/methods on src
- * @param {object|function} src source whose functions will be lifted
- * @param {function?} combine optional function for customizing the lifting
- * process. It is passed dst, the lifted function, and the property name of
- * the original function on src.
- * @param {(object|function)?} dst option destination host onto which to place lifted
- * functions. If not provided, liftAll returns a new object.
- * @returns {*} If dst is provided, returns dst with lifted functions as
- * properties. If dst not provided, returns a new object with lifted functions.
- */
- function liftAll(src, combine, dst) {
- return _liftAll(lift, combine, dst, src);
- }
-
- /**
- * Composes multiple functions by piping their return values. It is
- * transparent to whether the functions return 'regular' values or promises:
- * the piped argument is always a resolved value. If one of the functions
- * throws or returns a rejected promise, the composed promise will be also
- * rejected.
- *
- * The arguments (or promises to arguments) given to the returned function (if
- * any), are passed directly to the first function on the 'pipeline'.
- * @param {Function} f the function to which the arguments will be passed
- * @param {...Function} [funcs] functions that will be composed, in order
- * @returns {Function} a promise-returning composition of the functions
- */
- function compose(f /*, funcs... */) {
- var funcs = slice.call(arguments, 1);
-
- return function() {
- var thisArg = this;
- var args = slice.call(arguments);
- var firstPromise = attempt.apply(thisArg, [f].concat(args));
-
- return when.reduce(funcs, function(arg, func) {
- return func.call(thisArg, arg);
- }, firstPromise);
- };
- }
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
diff --git a/node_modules/when/generator.js b/node_modules/when/generator.js
deleted file mode 100644
index e0381f06e..000000000
--- a/node_modules/when/generator.js
+++ /dev/null
@@ -1,105 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var when = require('./when');
- var slice = Array.prototype.slice;
- var Promise = when.Promise;
- var reject = Promise.reject;
-
- /**
- * Lift a generator to create a function that can suspend and
- * resume using the `yield` keyword to await promises.
- * @param {function} generator
- * @return {function}
- */
- function lift(generator) {
- return function() {
- return run(generator, this, arguments);
- };
- }
-
- /**
- * Immediately call a generator as a promise-aware coroutine
- * that can suspend and resume using the `yield` keyword to
- * await promises. Additional arguments after the first will
- * be passed through to the generator.
- * @param {function} generator
- * @returns {Promise} promise for the ultimate value returned
- * from the generator.
- */
- function call(generator /*x, y, z...*/) {
- /*jshint validthis:true*/
- return run(generator, this, slice.call(arguments, 1));
- }
-
- /**
- * Immediately apply a generator, with the supplied args array,
- * as a promise-aware coroutine that can suspend and resume
- * using the `yield` keyword to await promises.
- * @param {function} generator
- * @param {Array} args arguments with which to initialize the generator
- * @returns {Promise} promise for the ultimate value returned
- * from the generator.
- */
- function apply(generator, args) {
- /*jshint validthis:true*/
- return run(generator, this, args || []);
- }
-
- /**
- * Helper to initiate the provided generator as a coroutine
- * @returns {*}
- */
- function run(generator, thisArg, args) {
- return runNext(void 0, generator.apply(thisArg, args));
- }
-
- function runNext(x, iterator) {
- try {
- return handle(iterator.next(x), iterator);
- } catch(e) {
- return reject(e);
- }
- }
-
- function next(x) {
- /*jshint validthis:true*/
- return runNext(x, this);
- }
-
- function error(e) {
- /*jshint validthis:true*/
- try {
- return handle(this.throw(e), this);
- } catch(e) {
- return reject(e);
- }
- }
-
- function handle(result, iterator) {
- if(result.done) {
- return result.value;
- }
-
- var h = Promise._handler(result.value);
- if(h.state() > 0) {
- return runNext(h.value, iterator);
- }
-
- var p = Promise._defer();
- h.chain(p._handler, iterator, next, error);
- return p;
- }
-
- return {
- lift: lift,
- call: call,
- apply: apply
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/node_modules/when/guard.js b/node_modules/when/guard.js
deleted file mode 100644
index 38924cae0..000000000
--- a/node_modules/when/guard.js
+++ /dev/null
@@ -1,72 +0,0 @@
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * Generalized promise concurrency guard
- * Adapted from original concept by Sakari Jokinen (Rocket Pack, Ltd.)
- *
- * @author Brian Cavalier
- * @author John Hann
- * @contributor Sakari Jokinen
- */
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var slice = Array.prototype.slice;
-
- guard.n = n;
-
- return guard;
-
- /**
- * Creates a guarded version of f that can only be entered when the supplied
- * condition allows.
- * @param {function} condition represents a critical section that may only
- * be entered when allowed by the condition
- * @param {function} f function to guard
- * @returns {function} guarded version of f
- */
- function guard(condition, f) {
- return function() {
- var args = slice.call(arguments);
-
- return when(condition()).withThis(this).then(function(exit) {
- return when(f.apply(this, args))['finally'](exit);
- });
- };
- }
-
- /**
- * Creates a condition that allows only n simultaneous executions
- * of a guarded function
- * @param {number} allowed number of allowed simultaneous executions
- * @returns {function} condition function which returns a promise that
- * fulfills when the critical section may be entered. The fulfillment
- * value is a function ("notifyExit") that must be called when the critical
- * section has been exited.
- */
- function n(allowed) {
- var count = 0;
- var waiting = [];
-
- return function enter() {
- return when.promise(function(resolve) {
- if(count < allowed) {
- resolve(exit);
- } else {
- waiting.push(resolve);
- }
- count += 1;
- });
- };
-
- function exit() {
- count = Math.max(count - 1, 0);
- if(waiting.length > 0) {
- waiting.shift()(exit);
- }
- }
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/node_modules/when/keys.js b/node_modules/when/keys.js
deleted file mode 100644
index 2a62c5d81..000000000
--- a/node_modules/when/keys.js
+++ /dev/null
@@ -1,114 +0,0 @@
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * Licensed under the MIT License at:
- * http://www.opensource.org/licenses/mit-license.php
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-(function(define) { 'use strict';
-define(function(require) {
-
- var when = require('./when');
- var Promise = when.Promise;
- var toPromise = when.resolve;
-
- return {
- all: when.lift(all),
- map: map,
- settle: settle
- };
-
- /**
- * Resolve all the key-value pairs in the supplied object or promise
- * for an object.
- * @param {Promise|object} object or promise for object whose key-value pairs
- * will be resolved
- * @returns {Promise} promise for an object with the fully resolved key-value pairs
- */
- function all(object) {
- var p = Promise._defer();
- var resolver = Promise._handler(p);
-
- var results = {};
- var keys = Object.keys(object);
- var pending = keys.length;
-
- for(var i=0, k; i<keys.length; ++i) {
- k = keys[i];
- Promise._handler(object[k]).fold(settleKey, k, results, resolver);
- }
-
- if(pending === 0) {
- resolver.resolve(results);
- }
-
- return p;
-
- function settleKey(k, x, resolver) {
- /*jshint validthis:true*/
- this[k] = x;
- if(--pending === 0) {
- resolver.resolve(results);
- }
- }
- }
-
- /**
- * Map values in the supplied object's keys
- * @param {Promise|object} object or promise for object whose key-value pairs
- * will be reduced
- * @param {function(value:*, key:String):*} f mapping function which may
- * return either a promise or a value
- * @returns {Promise} promise for an object with the mapped and fully
- * resolved key-value pairs
- */
- function map(object, f) {
- return toPromise(object).then(function(object) {
- return all(Object.keys(object).reduce(function(o, k) {
- o[k] = toPromise(object[k]).fold(mapWithKey, k);
- return o;
- }, {}));
- });
-
- function mapWithKey(k, x) {
- return f(x, k);
- }
- }
-
- /**
- * Resolve all key-value pairs in the supplied object and return a promise
- * that will always fulfill with the outcome states of all input promises.
- * @param {object} object whose key-value pairs will be settled
- * @returns {Promise} promise for an object with the mapped and fully
- * settled key-value pairs
- */
- function settle(object) {
- var keys = Object.keys(object);
- var results = {};
-
- if(keys.length === 0) {
- return toPromise(results);
- }
-
- var p = Promise._defer();
- var resolver = Promise._handler(p);
- var promises = keys.map(function(k) { return object[k]; });
-
- when.settle(promises).then(function(states) {
- populateResults(keys, states, results, resolver);
- });
-
- return p;
- }
-
- function populateResults(keys, states, results, resolver) {
- for(var i=0; i<keys.length; i++) {
- results[keys[i]] = states[i];
- }
- resolver.resolve(results);
- }
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
diff --git a/node_modules/when/lib/Promise.js b/node_modules/when/lib/Promise.js
deleted file mode 100644
index 61c81c939..000000000
--- a/node_modules/when/lib/Promise.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function (require) {
-
- var makePromise = require('./makePromise');
- var Scheduler = require('./Scheduler');
- var async = require('./env').asap;
-
- return makePromise({
- scheduler: new Scheduler(async)
- });
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
diff --git a/node_modules/when/lib/Scheduler.js b/node_modules/when/lib/Scheduler.js
deleted file mode 100644
index 4def2c2f0..000000000
--- a/node_modules/when/lib/Scheduler.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- // Credit to Twisol (https://github.com/Twisol) for suggesting
- // this type of extensible queue + trampoline approach for next-tick conflation.
-
- /**
- * Async task scheduler
- * @param {function} async function to schedule a single async function
- * @constructor
- */
- function Scheduler(async) {
- this._async = async;
- this._running = false;
-
- this._queue = this;
- this._queueLen = 0;
- this._afterQueue = {};
- this._afterQueueLen = 0;
-
- var self = this;
- this.drain = function() {
- self._drain();
- };
- }
-
- /**
- * Enqueue a task
- * @param {{ run:function }} task
- */
- Scheduler.prototype.enqueue = function(task) {
- this._queue[this._queueLen++] = task;
- this.run();
- };
-
- /**
- * Enqueue a task to run after the main task queue
- * @param {{ run:function }} task
- */
- Scheduler.prototype.afterQueue = function(task) {
- this._afterQueue[this._afterQueueLen++] = task;
- this.run();
- };
-
- Scheduler.prototype.run = function() {
- if (!this._running) {
- this._running = true;
- this._async(this.drain);
- }
- };
-
- /**
- * Drain the handler queue entirely, and then the after queue
- */
- Scheduler.prototype._drain = function() {
- var i = 0;
- for (; i < this._queueLen; ++i) {
- this._queue[i].run();
- this._queue[i] = void 0;
- }
-
- this._queueLen = 0;
- this._running = false;
-
- for (i = 0; i < this._afterQueueLen; ++i) {
- this._afterQueue[i].run();
- this._afterQueue[i] = void 0;
- }
-
- this._afterQueueLen = 0;
- };
-
- return Scheduler;
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
diff --git a/node_modules/when/lib/TimeoutError.js b/node_modules/when/lib/TimeoutError.js
deleted file mode 100644
index 960107f85..000000000
--- a/node_modules/when/lib/TimeoutError.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- /**
- * Custom error type for promises rejected by promise.timeout
- * @param {string} message
- * @constructor
- */
- function TimeoutError (message) {
- Error.call(this);
- this.message = message;
- this.name = TimeoutError.name;
- if (typeof Error.captureStackTrace === 'function') {
- Error.captureStackTrace(this, TimeoutError);
- }
- }
-
- TimeoutError.prototype = Object.create(Error.prototype);
- TimeoutError.prototype.constructor = TimeoutError;
-
- return TimeoutError;
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); })); \ No newline at end of file
diff --git a/node_modules/when/lib/apply.js b/node_modules/when/lib/apply.js
deleted file mode 100644
index 1c4a95b1f..000000000
--- a/node_modules/when/lib/apply.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- makeApply.tryCatchResolve = tryCatchResolve;
-
- return makeApply;
-
- function makeApply(Promise, call) {
- if(arguments.length < 2) {
- call = tryCatchResolve;
- }
-
- return apply;
-
- function apply(f, thisArg, args) {
- var p = Promise._defer();
- var l = args.length;
- var params = new Array(l);
- callAndResolve({ f:f, thisArg:thisArg, args:args, params:params, i:l-1, call:call }, p._handler);
-
- return p;
- }
-
- function callAndResolve(c, h) {
- if(c.i < 0) {
- return call(c.f, c.thisArg, c.params, h);
- }
-
- var handler = Promise._handler(c.args[c.i]);
- handler.fold(callAndResolveNext, c, void 0, h);
- }
-
- function callAndResolveNext(c, x, h) {
- c.params[c.i] = x;
- c.i -= 1;
- callAndResolve(c, h);
- }
- }
-
- function tryCatchResolve(f, thisArg, args, resolver) {
- try {
- resolver.resolve(f.apply(thisArg, args));
- } catch(e) {
- resolver.reject(e);
- }
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
-
diff --git a/node_modules/when/lib/decorators/array.js b/node_modules/when/lib/decorators/array.js
deleted file mode 100644
index 7eea6aaa5..000000000
--- a/node_modules/when/lib/decorators/array.js
+++ /dev/null
@@ -1,299 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var state = require('../state');
- var applier = require('../apply');
-
- return function array(Promise) {
-
- var applyFold = applier(Promise);
- var toPromise = Promise.resolve;
- var all = Promise.all;
-
- var ar = Array.prototype.reduce;
- var arr = Array.prototype.reduceRight;
- var slice = Array.prototype.slice;
-
- // Additional array combinators
-
- Promise.any = any;
- Promise.some = some;
- Promise.settle = settle;
-
- Promise.map = map;
- Promise.filter = filter;
- Promise.reduce = reduce;
- Promise.reduceRight = reduceRight;
-
- /**
- * When this promise fulfills with an array, do
- * onFulfilled.apply(void 0, array)
- * @param {function} onFulfilled function to apply
- * @returns {Promise} promise for the result of applying onFulfilled
- */
- Promise.prototype.spread = function(onFulfilled) {
- return this.then(all).then(function(array) {
- return onFulfilled.apply(this, array);
- });
- };
-
- return Promise;
-
- /**
- * One-winner competitive race.
- * Return a promise that will fulfill when one of the promises
- * in the input array fulfills, or will reject when all promises
- * have rejected.
- * @param {array} promises
- * @returns {Promise} promise for the first fulfilled value
- */
- function any(promises) {
- var p = Promise._defer();
- var resolver = p._handler;
- var l = promises.length>>>0;
-
- var pending = l;
- var errors = [];
-
- for (var h, x, i = 0; i < l; ++i) {
- x = promises[i];
- if(x === void 0 && !(i in promises)) {
- --pending;
- continue;
- }
-
- h = Promise._handler(x);
- if(h.state() > 0) {
- resolver.become(h);
- Promise._visitRemaining(promises, i, h);
- break;
- } else {
- h.visit(resolver, handleFulfill, handleReject);
- }
- }
-
- if(pending === 0) {
- resolver.reject(new RangeError('any(): array must not be empty'));
- }
-
- return p;
-
- function handleFulfill(x) {
- /*jshint validthis:true*/
- errors = null;
- this.resolve(x); // this === resolver
- }
-
- function handleReject(e) {
- /*jshint validthis:true*/
- if(this.resolved) { // this === resolver
- return;
- }
-
- errors.push(e);
- if(--pending === 0) {
- this.reject(errors);
- }
- }
- }
-
- /**
- * N-winner competitive race
- * Return a promise that will fulfill when n input promises have
- * fulfilled, or will reject when it becomes impossible for n
- * input promises to fulfill (ie when promises.length - n + 1
- * have rejected)
- * @param {array} promises
- * @param {number} n
- * @returns {Promise} promise for the earliest n fulfillment values
- *
- * @deprecated
- */
- function some(promises, n) {
- /*jshint maxcomplexity:7*/
- var p = Promise._defer();
- var resolver = p._handler;
-
- var results = [];
- var errors = [];
-
- var l = promises.length>>>0;
- var nFulfill = 0;
- var nReject;
- var x, i; // reused in both for() loops
-
- // First pass: count actual array items
- for(i=0; i<l; ++i) {
- x = promises[i];
- if(x === void 0 && !(i in promises)) {
- continue;
- }
- ++nFulfill;
- }
-
- // Compute actual goals
- n = Math.max(n, 0);
- nReject = (nFulfill - n + 1);
- nFulfill = Math.min(n, nFulfill);
-
- if(n > nFulfill) {
- resolver.reject(new RangeError('some(): array must contain at least '
- + n + ' item(s), but had ' + nFulfill));
- } else if(nFulfill === 0) {
- resolver.resolve(results);
- }
-
- // Second pass: observe each array item, make progress toward goals
- for(i=0; i<l; ++i) {
- x = promises[i];
- if(x === void 0 && !(i in promises)) {
- continue;
- }
-
- Promise._handler(x).visit(resolver, fulfill, reject, resolver.notify);
- }
-
- return p;
-
- function fulfill(x) {
- /*jshint validthis:true*/
- if(this.resolved) { // this === resolver
- return;
- }
-
- results.push(x);
- if(--nFulfill === 0) {
- errors = null;
- this.resolve(results);
- }
- }
-
- function reject(e) {
- /*jshint validthis:true*/
- if(this.resolved) { // this === resolver
- return;
- }
-
- errors.push(e);
- if(--nReject === 0) {
- results = null;
- this.reject(errors);
- }
- }
- }
-
- /**
- * Apply f to the value of each promise in a list of promises
- * and return a new list containing the results.
- * @param {array} promises
- * @param {function(x:*, index:Number):*} f mapping function
- * @returns {Promise}
- */
- function map(promises, f) {
- return Promise._traverse(f, promises);
- }
-
- /**
- * Filter the provided array of promises using the provided predicate. Input may
- * contain promises and values
- * @param {Array} promises array of promises and values
- * @param {function(x:*, index:Number):boolean} predicate filtering predicate.
- * Must return truthy (or promise for truthy) for items to retain.
- * @returns {Promise} promise that will fulfill with an array containing all items
- * for which predicate returned truthy.
- */
- function filter(promises, predicate) {
- var a = slice.call(promises);
- return Promise._traverse(predicate, a).then(function(keep) {
- return filterSync(a, keep);
- });
- }
-
- function filterSync(promises, keep) {
- // Safe because we know all promises have fulfilled if we've made it this far
- var l = keep.length;
- var filtered = new Array(l);
- for(var i=0, j=0; i<l; ++i) {
- if(keep[i]) {
- filtered[j++] = Promise._handler(promises[i]).value;
- }
- }
- filtered.length = j;
- return filtered;
-
- }
-
- /**
- * Return a promise that will always fulfill with an array containing
- * the outcome states of all input promises. The returned promise
- * will never reject.
- * @param {Array} promises
- * @returns {Promise} promise for array of settled state descriptors
- */
- function settle(promises) {
- return all(promises.map(settleOne));
- }
-
- function settleOne(p) {
- // Optimize the case where we get an already-resolved when.js promise
- // by extracting its state:
- var handler;
- if (p instanceof Promise) {
- // This is our own Promise type and we can reach its handler internals:
- handler = p._handler.join();
- }
- if((handler && handler.state() === 0) || !handler) {
- // Either still pending, or not a Promise at all:
- return toPromise(p).then(state.fulfilled, state.rejected);
- }
-
- // The promise is our own, but it is already resolved. Take a shortcut.
- // Since we're not actually handling the resolution, we need to disable
- // rejection reporting.
- handler._unreport();
- return state.inspect(handler);
- }
-
- /**
- * Traditional reduce function, similar to `Array.prototype.reduce()`, but
- * input may contain promises and/or values, and reduceFunc
- * may return either a value or a promise, *and* initialValue may
- * be a promise for the starting value.
- * @param {Array|Promise} promises array or promise for an array of anything,
- * may contain a mix of promises and values.
- * @param {function(accumulated:*, x:*, index:Number):*} f reduce function
- * @returns {Promise} that will resolve to the final reduced value
- */
- function reduce(promises, f /*, initialValue */) {
- return arguments.length > 2 ? ar.call(promises, liftCombine(f), arguments[2])
- : ar.call(promises, liftCombine(f));
- }
-
- /**
- * Traditional reduce function, similar to `Array.prototype.reduceRight()`, but
- * input may contain promises and/or values, and reduceFunc
- * may return either a value or a promise, *and* initialValue may
- * be a promise for the starting value.
- * @param {Array|Promise} promises array or promise for an array of anything,
- * may contain a mix of promises and values.
- * @param {function(accumulated:*, x:*, index:Number):*} f reduce function
- * @returns {Promise} that will resolve to the final reduced value
- */
- function reduceRight(promises, f /*, initialValue */) {
- return arguments.length > 2 ? arr.call(promises, liftCombine(f), arguments[2])
- : arr.call(promises, liftCombine(f));
- }
-
- function liftCombine(f) {
- return function(z, x, i) {
- return applyFold(f, void 0, [z,x,i]);
- };
- }
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/node_modules/when/lib/decorators/flow.js b/node_modules/when/lib/decorators/flow.js
deleted file mode 100644
index 635e4f493..000000000
--- a/node_modules/when/lib/decorators/flow.js
+++ /dev/null
@@ -1,160 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function flow(Promise) {
-
- var resolve = Promise.resolve;
- var reject = Promise.reject;
- var origCatch = Promise.prototype['catch'];
-
- /**
- * Handle the ultimate fulfillment value or rejection reason, and assume
- * responsibility for all errors. If an error propagates out of result
- * or handleFatalError, it will be rethrown to the host, resulting in a
- * loud stack track on most platforms and a crash on some.
- * @param {function?} onResult
- * @param {function?} onError
- * @returns {undefined}
- */
- Promise.prototype.done = function(onResult, onError) {
- this._handler.visit(this._handler.receiver, onResult, onError);
- };
-
- /**
- * Add Error-type and predicate matching to catch. Examples:
- * promise.catch(TypeError, handleTypeError)
- * .catch(predicate, handleMatchedErrors)
- * .catch(handleRemainingErrors)
- * @param onRejected
- * @returns {*}
- */
- Promise.prototype['catch'] = Promise.prototype.otherwise = function(onRejected) {
- if (arguments.length < 2) {
- return origCatch.call(this, onRejected);
- }
-
- if(typeof onRejected !== 'function') {
- return this.ensure(rejectInvalidPredicate);
- }
-
- return origCatch.call(this, createCatchFilter(arguments[1], onRejected));
- };
-
- /**
- * Wraps the provided catch handler, so that it will only be called
- * if the predicate evaluates truthy
- * @param {?function} handler
- * @param {function} predicate
- * @returns {function} conditional catch handler
- */
- function createCatchFilter(handler, predicate) {
- return function(e) {
- return evaluatePredicate(e, predicate)
- ? handler.call(this, e)
- : reject(e);
- };
- }
-
- /**
- * Ensures that onFulfilledOrRejected will be called regardless of whether
- * this promise is fulfilled or rejected. onFulfilledOrRejected WILL NOT
- * receive the promises' value or reason. Any returned value will be disregarded.
- * onFulfilledOrRejected may throw or return a rejected promise to signal
- * an additional error.
- * @param {function} handler handler to be called regardless of
- * fulfillment or rejection
- * @returns {Promise}
- */
- Promise.prototype['finally'] = Promise.prototype.ensure = function(handler) {
- if(typeof handler !== 'function') {
- return this;
- }
-
- return this.then(function(x) {
- return runSideEffect(handler, this, identity, x);
- }, function(e) {
- return runSideEffect(handler, this, reject, e);
- });
- };
-
- function runSideEffect (handler, thisArg, propagate, value) {
- var result = handler.call(thisArg);
- return maybeThenable(result)
- ? propagateValue(result, propagate, value)
- : propagate(value);
- }
-
- function propagateValue (result, propagate, x) {
- return resolve(result).then(function () {
- return propagate(x);
- });
- }
-
- /**
- * Recover from a failure by returning a defaultValue. If defaultValue
- * is a promise, it's fulfillment value will be used. If defaultValue is
- * a promise that rejects, the returned promise will reject with the
- * same reason.
- * @param {*} defaultValue
- * @returns {Promise} new promise
- */
- Promise.prototype['else'] = Promise.prototype.orElse = function(defaultValue) {
- return this.then(void 0, function() {
- return defaultValue;
- });
- };
-
- /**
- * Shortcut for .then(function() { return value; })
- * @param {*} value
- * @return {Promise} a promise that:
- * - is fulfilled if value is not a promise, or
- * - if value is a promise, will fulfill with its value, or reject
- * with its reason.
- */
- Promise.prototype['yield'] = function(value) {
- return this.then(function() {
- return value;
- });
- };
-
- /**
- * Runs a side effect when this promise fulfills, without changing the
- * fulfillment value.
- * @param {function} onFulfilledSideEffect
- * @returns {Promise}
- */
- Promise.prototype.tap = function(onFulfilledSideEffect) {
- return this.then(onFulfilledSideEffect)['yield'](this);
- };
-
- return Promise;
- };
-
- function rejectInvalidPredicate() {
- throw new TypeError('catch predicate must be a function');
- }
-
- function evaluatePredicate(e, predicate) {
- return isError(predicate) ? e instanceof predicate : predicate(e);
- }
-
- function isError(predicate) {
- return predicate === Error
- || (predicate != null && predicate.prototype instanceof Error);
- }
-
- function maybeThenable(x) {
- return (typeof x === 'object' || typeof x === 'function') && x !== null;
- }
-
- function identity(x) {
- return x;
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
diff --git a/node_modules/when/lib/decorators/fold.js b/node_modules/when/lib/decorators/fold.js
deleted file mode 100644
index c7f027aa4..000000000
--- a/node_modules/when/lib/decorators/fold.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-/** @author Jeff Escalante */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function fold(Promise) {
-
- Promise.prototype.fold = function(f, z) {
- var promise = this._beget();
-
- this._handler.fold(function(z, x, to) {
- Promise._handler(z).fold(function(x, z, to) {
- to.resolve(f.call(this, z, x));
- }, x, this, to);
- }, z, promise._handler.receiver, promise._handler);
-
- return promise;
- };
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
diff --git a/node_modules/when/lib/decorators/inspect.js b/node_modules/when/lib/decorators/inspect.js
deleted file mode 100644
index 95b87157d..000000000
--- a/node_modules/when/lib/decorators/inspect.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var inspect = require('../state').inspect;
-
- return function inspection(Promise) {
-
- Promise.prototype.inspect = function() {
- return inspect(Promise._handler(this));
- };
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/node_modules/when/lib/decorators/iterate.js b/node_modules/when/lib/decorators/iterate.js
deleted file mode 100644
index 3ea70b3c1..000000000
--- a/node_modules/when/lib/decorators/iterate.js
+++ /dev/null
@@ -1,65 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function generate(Promise) {
-
- var resolve = Promise.resolve;
-
- Promise.iterate = iterate;
- Promise.unfold = unfold;
-
- return Promise;
-
- /**
- * @deprecated Use github.com/cujojs/most streams and most.iterate
- * Generate a (potentially infinite) stream of promised values:
- * x, f(x), f(f(x)), etc. until condition(x) returns true
- * @param {function} f function to generate a new x from the previous x
- * @param {function} condition function that, given the current x, returns
- * truthy when the iterate should stop
- * @param {function} handler function to handle the value produced by f
- * @param {*|Promise} x starting value, may be a promise
- * @return {Promise} the result of the last call to f before
- * condition returns true
- */
- function iterate(f, condition, handler, x) {
- return unfold(function(x) {
- return [x, f(x)];
- }, condition, handler, x);
- }
-
- /**
- * @deprecated Use github.com/cujojs/most streams and most.unfold
- * Generate a (potentially infinite) stream of promised values
- * by applying handler(generator(seed)) iteratively until
- * condition(seed) returns true.
- * @param {function} unspool function that generates a [value, newSeed]
- * given a seed.
- * @param {function} condition function that, given the current seed, returns
- * truthy when the unfold should stop
- * @param {function} handler function to handle the value produced by unspool
- * @param x {*|Promise} starting value, may be a promise
- * @return {Promise} the result of the last value produced by unspool before
- * condition returns true
- */
- function unfold(unspool, condition, handler, x) {
- return resolve(x).then(function(seed) {
- return resolve(condition(seed)).then(function(done) {
- return done ? seed : resolve(unspool(seed)).spread(next);
- });
- });
-
- function next(item, newSeed) {
- return resolve(handler(item)).then(function() {
- return unfold(unspool, condition, handler, newSeed);
- });
- }
- }
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
diff --git a/node_modules/when/lib/decorators/progress.js b/node_modules/when/lib/decorators/progress.js
deleted file mode 100644
index d45e3d0d5..000000000
--- a/node_modules/when/lib/decorators/progress.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function progress(Promise) {
-
- /**
- * @deprecated
- * Register a progress handler for this promise
- * @param {function} onProgress
- * @returns {Promise}
- */
- Promise.prototype.progress = function(onProgress) {
- return this.then(void 0, void 0, onProgress);
- };
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
diff --git a/node_modules/when/lib/decorators/timed.js b/node_modules/when/lib/decorators/timed.js
deleted file mode 100644
index cd82ed436..000000000
--- a/node_modules/when/lib/decorators/timed.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var env = require('../env');
- var TimeoutError = require('../TimeoutError');
-
- function setTimeout(f, ms, x, y) {
- return env.setTimer(function() {
- f(x, y, ms);
- }, ms);
- }
-
- return function timed(Promise) {
- /**
- * Return a new promise whose fulfillment value is revealed only
- * after ms milliseconds
- * @param {number} ms milliseconds
- * @returns {Promise}
- */
- Promise.prototype.delay = function(ms) {
- var p = this._beget();
- this._handler.fold(handleDelay, ms, void 0, p._handler);
- return p;
- };
-
- function handleDelay(ms, x, h) {
- setTimeout(resolveDelay, ms, x, h);
- }
-
- function resolveDelay(x, h) {
- h.resolve(x);
- }
-
- /**
- * Return a new promise that rejects after ms milliseconds unless
- * this promise fulfills earlier, in which case the returned promise
- * fulfills with the same value.
- * @param {number} ms milliseconds
- * @param {Error|*=} reason optional rejection reason to use, defaults
- * to a TimeoutError if not provided
- * @returns {Promise}
- */
- Promise.prototype.timeout = function(ms, reason) {
- var p = this._beget();
- var h = p._handler;
-
- var t = setTimeout(onTimeout, ms, reason, p._handler);
-
- this._handler.visit(h,
- function onFulfill(x) {
- env.clearTimer(t);
- this.resolve(x); // this = h
- },
- function onReject(x) {
- env.clearTimer(t);
- this.reject(x); // this = h
- },
- h.notify);
-
- return p;
- };
-
- function onTimeout(reason, h, ms) {
- var e = typeof reason === 'undefined'
- ? new TimeoutError('timed out after ' + ms + 'ms')
- : reason;
- h.reject(e);
- }
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/node_modules/when/lib/decorators/unhandledRejection.js b/node_modules/when/lib/decorators/unhandledRejection.js
deleted file mode 100644
index fb966f762..000000000
--- a/node_modules/when/lib/decorators/unhandledRejection.js
+++ /dev/null
@@ -1,86 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var setTimer = require('../env').setTimer;
- var format = require('../format');
-
- return function unhandledRejection(Promise) {
-
- var logError = noop;
- var logInfo = noop;
- var localConsole;
-
- if(typeof console !== 'undefined') {
- // Alias console to prevent things like uglify's drop_console option from
- // removing console.log/error. Unhandled rejections fall into the same
- // category as uncaught exceptions, and build tools shouldn't silence them.
- localConsole = console;
- logError = typeof localConsole.error !== 'undefined'
- ? function (e) { localConsole.error(e); }
- : function (e) { localConsole.log(e); };
-
- logInfo = typeof localConsole.info !== 'undefined'
- ? function (e) { localConsole.info(e); }
- : function (e) { localConsole.log(e); };
- }
-
- Promise.onPotentiallyUnhandledRejection = function(rejection) {
- enqueue(report, rejection);
- };
-
- Promise.onPotentiallyUnhandledRejectionHandled = function(rejection) {
- enqueue(unreport, rejection);
- };
-
- Promise.onFatalRejection = function(rejection) {
- enqueue(throwit, rejection.value);
- };
-
- var tasks = [];
- var reported = [];
- var running = null;
-
- function report(r) {
- if(!r.handled) {
- reported.push(r);
- logError('Potentially unhandled rejection [' + r.id + '] ' + format.formatError(r.value));
- }
- }
-
- function unreport(r) {
- var i = reported.indexOf(r);
- if(i >= 0) {
- reported.splice(i, 1);
- logInfo('Handled previous rejection [' + r.id + '] ' + format.formatObject(r.value));
- }
- }
-
- function enqueue(f, x) {
- tasks.push(f, x);
- if(running === null) {
- running = setTimer(flush, 0);
- }
- }
-
- function flush() {
- running = null;
- while(tasks.length > 0) {
- tasks.shift()(tasks.shift());
- }
- }
-
- return Promise;
- };
-
- function throwit(e) {
- throw e;
- }
-
- function noop() {}
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/node_modules/when/lib/decorators/with.js b/node_modules/when/lib/decorators/with.js
deleted file mode 100644
index a0f05f0b0..000000000
--- a/node_modules/when/lib/decorators/with.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function addWith(Promise) {
- /**
- * Returns a promise whose handlers will be called with `this` set to
- * the supplied receiver. Subsequent promises derived from the
- * returned promise will also have their handlers called with receiver
- * as `this`. Calling `with` with undefined or no arguments will return
- * a promise whose handlers will again be called in the usual Promises/A+
- * way (no `this`) thus safely undoing any previous `with` in the
- * promise chain.
- *
- * WARNING: Promises returned from `with`/`withThis` are NOT Promises/A+
- * compliant, specifically violating 2.2.5 (http://promisesaplus.com/#point-41)
- *
- * @param {object} receiver `this` value for all handlers attached to
- * the returned promise.
- * @returns {Promise}
- */
- Promise.prototype['with'] = Promise.prototype.withThis = function(receiver) {
- var p = this._beget();
- var child = p._handler;
- child.receiver = receiver;
- this._handler.chain(child, receiver);
- return p;
- };
-
- return Promise;
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-
diff --git a/node_modules/when/lib/env.js b/node_modules/when/lib/env.js
deleted file mode 100644
index 530307484..000000000
--- a/node_modules/when/lib/env.js
+++ /dev/null
@@ -1,73 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-/*global process,document,setTimeout,clearTimeout,MutationObserver,WebKitMutationObserver*/
-(function(define) { 'use strict';
-define(function(require) {
- /*jshint maxcomplexity:6*/
-
- // Sniff "best" async scheduling option
- // Prefer process.nextTick or MutationObserver, then check for
- // setTimeout, and finally vertx, since its the only env that doesn't
- // have setTimeout
-
- var MutationObs;
- var capturedSetTimeout = typeof setTimeout !== 'undefined' && setTimeout;
-
- // Default env
- var setTimer = function(f, ms) { return setTimeout(f, ms); };
- var clearTimer = function(t) { return clearTimeout(t); };
- var asap = function (f) { return capturedSetTimeout(f, 0); };
-
- // Detect specific env
- if (isNode()) { // Node
- asap = function (f) { return process.nextTick(f); };
-
- } else if (MutationObs = hasMutationObserver()) { // Modern browser
- asap = initMutationObserver(MutationObs);
-
- } else if (!capturedSetTimeout) { // vert.x
- var vertxRequire = require;
- var vertx = vertxRequire('vertx');
- setTimer = function (f, ms) { return vertx.setTimer(ms, f); };
- clearTimer = vertx.cancelTimer;
- asap = vertx.runOnLoop || vertx.runOnContext;
- }
-
- return {
- setTimer: setTimer,
- clearTimer: clearTimer,
- asap: asap
- };
-
- function isNode () {
- return typeof process !== 'undefined' &&
- Object.prototype.toString.call(process) === '[object process]';
- }
-
- function hasMutationObserver () {
- return (typeof MutationObserver !== 'undefined' && MutationObserver) ||
- (typeof WebKitMutationObserver !== 'undefined' && WebKitMutationObserver);
- }
-
- function initMutationObserver(MutationObserver) {
- var scheduled;
- var node = document.createTextNode('');
- var o = new MutationObserver(run);
- o.observe(node, { characterData: true });
-
- function run() {
- var f = scheduled;
- scheduled = void 0;
- f();
- }
-
- var i = 0;
- return function (f) {
- scheduled = f;
- node.data = (i ^= 1);
- };
- }
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/node_modules/when/lib/format.js b/node_modules/when/lib/format.js
deleted file mode 100644
index f56c81bc0..000000000
--- a/node_modules/when/lib/format.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return {
- formatError: formatError,
- formatObject: formatObject,
- tryStringify: tryStringify
- };
-
- /**
- * Format an error into a string. If e is an Error and has a stack property,
- * it's returned. Otherwise, e is formatted using formatObject, with a
- * warning added about e not being a proper Error.
- * @param {*} e
- * @returns {String} formatted string, suitable for output to developers
- */
- function formatError(e) {
- var s = typeof e === 'object' && e !== null && (e.stack || e.message) ? e.stack || e.message : formatObject(e);
- return e instanceof Error ? s : s + ' (WARNING: non-Error used)';
- }
-
- /**
- * Format an object, detecting "plain" objects and running them through
- * JSON.stringify if possible.
- * @param {Object} o
- * @returns {string}
- */
- function formatObject(o) {
- var s = String(o);
- if(s === '[object Object]' && typeof JSON !== 'undefined') {
- s = tryStringify(o, s);
- }
- return s;
- }
-
- /**
- * Try to return the result of JSON.stringify(x). If that fails, return
- * defaultValue
- * @param {*} x
- * @param {*} defaultValue
- * @returns {String|*} JSON.stringify(x) or defaultValue
- */
- function tryStringify(x, defaultValue) {
- try {
- return JSON.stringify(x);
- } catch(e) {
- return defaultValue;
- }
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
diff --git a/node_modules/when/lib/liftAll.js b/node_modules/when/lib/liftAll.js
deleted file mode 100644
index af4dd4f7a..000000000
--- a/node_modules/when/lib/liftAll.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function liftAll(liftOne, combine, dst, src) {
- if(typeof combine === 'undefined') {
- combine = defaultCombine;
- }
-
- return Object.keys(src).reduce(function(dst, key) {
- var f = src[key];
- return typeof f === 'function' ? combine(dst, liftOne(f), key) : dst;
- }, typeof dst === 'undefined' ? defaultDst(src) : dst);
- };
-
- function defaultCombine(o, f, k) {
- o[k] = f;
- return o;
- }
-
- function defaultDst(src) {
- return typeof src === 'function' ? src.bind() : Object.create(src);
- }
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
diff --git a/node_modules/when/lib/makePromise.js b/node_modules/when/lib/makePromise.js
deleted file mode 100644
index 7f91a757c..000000000
--- a/node_modules/when/lib/makePromise.js
+++ /dev/null
@@ -1,955 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return function makePromise(environment) {
-
- var tasks = environment.scheduler;
- var emitRejection = initEmitRejection();
-
- var objectCreate = Object.create ||
- function(proto) {
- function Child() {}
- Child.prototype = proto;
- return new Child();
- };
-
- /**
- * Create a promise whose fate is determined by resolver
- * @constructor
- * @returns {Promise} promise
- * @name Promise
- */
- function Promise(resolver, handler) {
- this._handler = resolver === Handler ? handler : init(resolver);
- }
-
- /**
- * Run the supplied resolver
- * @param resolver
- * @returns {Pending}
- */
- function init(resolver) {
- var handler = new Pending();
-
- try {
- resolver(promiseResolve, promiseReject, promiseNotify);
- } catch (e) {
- promiseReject(e);
- }
-
- return handler;
-
- /**
- * Transition from pre-resolution state to post-resolution state, notifying
- * all listeners of the ultimate fulfillment or rejection
- * @param {*} x resolution value
- */
- function promiseResolve (x) {
- handler.resolve(x);
- }
- /**
- * Reject this promise with reason, which will be used verbatim
- * @param {Error|*} reason rejection reason, strongly suggested
- * to be an Error type
- */
- function promiseReject (reason) {
- handler.reject(reason);
- }
-
- /**
- * @deprecated
- * Issue a progress event, notifying all progress listeners
- * @param {*} x progress event payload to pass to all listeners
- */
- function promiseNotify (x) {
- handler.notify(x);
- }
- }
-
- // Creation
-
- Promise.resolve = resolve;
- Promise.reject = reject;
- Promise.never = never;
-
- Promise._defer = defer;
- Promise._handler = getHandler;
-
- /**
- * Returns a trusted promise. If x is already a trusted promise, it is
- * returned, otherwise returns a new trusted Promise which follows x.
- * @param {*} x
- * @return {Promise} promise
- */
- function resolve(x) {
- return isPromise(x) ? x
- : new Promise(Handler, new Async(getHandler(x)));
- }
-
- /**
- * Return a reject promise with x as its reason (x is used verbatim)
- * @param {*} x
- * @returns {Promise} rejected promise
- */
- function reject(x) {
- return new Promise(Handler, new Async(new Rejected(x)));
- }
-
- /**
- * Return a promise that remains pending forever
- * @returns {Promise} forever-pending promise.
- */
- function never() {
- return foreverPendingPromise; // Should be frozen
- }
-
- /**
- * Creates an internal {promise, resolver} pair
- * @private
- * @returns {Promise}
- */
- function defer() {
- return new Promise(Handler, new Pending());
- }
-
- // Transformation and flow control
-
- /**
- * Transform this promise's fulfillment value, returning a new Promise
- * for the transformed result. If the promise cannot be fulfilled, onRejected
- * is called with the reason. onProgress *may* be called with updates toward
- * this promise's fulfillment.
- * @param {function=} onFulfilled fulfillment handler
- * @param {function=} onRejected rejection handler
- * @param {function=} onProgress @deprecated progress handler
- * @return {Promise} new promise
- */
- Promise.prototype.then = function(onFulfilled, onRejected, onProgress) {
- var parent = this._handler;
- var state = parent.join().state();
-
- if ((typeof onFulfilled !== 'function' && state > 0) ||
- (typeof onRejected !== 'function' && state < 0)) {
- // Short circuit: value will not change, simply share handler
- return new this.constructor(Handler, parent);
- }
-
- var p = this._beget();
- var child = p._handler;
-
- parent.chain(child, parent.receiver, onFulfilled, onRejected, onProgress);
-
- return p;
- };
-
- /**
- * If this promise cannot be fulfilled due to an error, call onRejected to
- * handle the error. Shortcut for .then(undefined, onRejected)
- * @param {function?} onRejected
- * @return {Promise}
- */
- Promise.prototype['catch'] = function(onRejected) {
- return this.then(void 0, onRejected);
- };
-
- /**
- * Creates a new, pending promise of the same type as this promise
- * @private
- * @returns {Promise}
- */
- Promise.prototype._beget = function() {
- return begetFrom(this._handler, this.constructor);
- };
-
- function begetFrom(parent, Promise) {
- var child = new Pending(parent.receiver, parent.join().context);
- return new Promise(Handler, child);
- }
-
- // Array combinators
-
- Promise.all = all;
- Promise.race = race;
- Promise._traverse = traverse;
-
- /**
- * Return a promise that will fulfill when all promises in the
- * input array have fulfilled, or will reject when one of the
- * promises rejects.
- * @param {array} promises array of promises
- * @returns {Promise} promise for array of fulfillment values
- */
- function all(promises) {
- return traverseWith(snd, null, promises);
- }
-
- /**
- * Array<Promise<X>> -> Promise<Array<f(X)>>
- * @private
- * @param {function} f function to apply to each promise's value
- * @param {Array} promises array of promises
- * @returns {Promise} promise for transformed values
- */
- function traverse(f, promises) {
- return traverseWith(tryCatch2, f, promises);
- }
-
- function traverseWith(tryMap, f, promises) {
- var handler = typeof f === 'function' ? mapAt : settleAt;
-
- var resolver = new Pending();
- var pending = promises.length >>> 0;
- var results = new Array(pending);
-
- for (var i = 0, x; i < promises.length && !resolver.resolved; ++i) {
- x = promises[i];
-
- if (x === void 0 && !(i in promises)) {
- --pending;
- continue;
- }
-
- traverseAt(promises, handler, i, x, resolver);
- }
-
- if(pending === 0) {
- resolver.become(new Fulfilled(results));
- }
-
- return new Promise(Handler, resolver);
-
- function mapAt(i, x, resolver) {
- if(!resolver.resolved) {
- traverseAt(promises, settleAt, i, tryMap(f, x, i), resolver);
- }
- }
-
- function settleAt(i, x, resolver) {
- results[i] = x;
- if(--pending === 0) {
- resolver.become(new Fulfilled(results));
- }
- }
- }
-
- function traverseAt(promises, handler, i, x, resolver) {
- if (maybeThenable(x)) {
- var h = getHandlerMaybeThenable(x);
- var s = h.state();
-
- if (s === 0) {
- h.fold(handler, i, void 0, resolver);
- } else if (s > 0) {
- handler(i, h.value, resolver);
- } else {
- resolver.become(h);
- visitRemaining(promises, i+1, h);
- }
- } else {
- handler(i, x, resolver);
- }
- }
-
- Promise._visitRemaining = visitRemaining;
- function visitRemaining(promises, start, handler) {
- for(var i=start; i<promises.length; ++i) {
- markAsHandled(getHandler(promises[i]), handler);
- }
- }
-
- function markAsHandled(h, handler) {
- if(h === handler) {
- return;
- }
-
- var s = h.state();
- if(s === 0) {
- h.visit(h, void 0, h._unreport);
- } else if(s < 0) {
- h._unreport();
- }
- }
-
- /**
- * Fulfill-reject competitive race. Return a promise that will settle
- * to the same state as the earliest input promise to settle.
- *
- * WARNING: The ES6 Promise spec requires that race()ing an empty array
- * must return a promise that is pending forever. This implementation
- * returns a singleton forever-pending promise, the same singleton that is
- * returned by Promise.never(), thus can be checked with ===
- *
- * @param {array} promises array of promises to race
- * @returns {Promise} if input is non-empty, a promise that will settle
- * to the same outcome as the earliest input promise to settle. if empty
- * is empty, returns a promise that will never settle.
- */
- function race(promises) {
- if(typeof promises !== 'object' || promises === null) {
- return reject(new TypeError('non-iterable passed to race()'));
- }
-
- // Sigh, race([]) is untestable unless we return *something*
- // that is recognizable without calling .then() on it.
- return promises.length === 0 ? never()
- : promises.length === 1 ? resolve(promises[0])
- : runRace(promises);
- }
-
- function runRace(promises) {
- var resolver = new Pending();
- var i, x, h;
- for(i=0; i<promises.length; ++i) {
- x = promises[i];
- if (x === void 0 && !(i in promises)) {
- continue;
- }
-
- h = getHandler(x);
- if(h.state() !== 0) {
- resolver.become(h);
- visitRemaining(promises, i+1, h);
- break;
- } else {
- h.visit(resolver, resolver.resolve, resolver.reject);
- }
- }
- return new Promise(Handler, resolver);
- }
-
- // Promise internals
- // Below this, everything is @private
-
- /**
- * Get an appropriate handler for x, without checking for cycles
- * @param {*} x
- * @returns {object} handler
- */
- function getHandler(x) {
- if(isPromise(x)) {
- return x._handler.join();
- }
- return maybeThenable(x) ? getHandlerUntrusted(x) : new Fulfilled(x);
- }
-
- /**
- * Get a handler for thenable x.
- * NOTE: You must only call this if maybeThenable(x) == true
- * @param {object|function|Promise} x
- * @returns {object} handler
- */
- function getHandlerMaybeThenable(x) {
- return isPromise(x) ? x._handler.join() : getHandlerUntrusted(x);
- }
-
- /**
- * Get a handler for potentially untrusted thenable x
- * @param {*} x
- * @returns {object} handler
- */
- function getHandlerUntrusted(x) {
- try {
- var untrustedThen = x.then;
- return typeof untrustedThen === 'function'
- ? new Thenable(untrustedThen, x)
- : new Fulfilled(x);
- } catch(e) {
- return new Rejected(e);
- }
- }
-
- /**
- * Handler for a promise that is pending forever
- * @constructor
- */
- function Handler() {}
-
- Handler.prototype.when
- = Handler.prototype.become
- = Handler.prototype.notify // deprecated
- = Handler.prototype.fail
- = Handler.prototype._unreport
- = Handler.prototype._report
- = noop;
-
- Handler.prototype._state = 0;
-
- Handler.prototype.state = function() {
- return this._state;
- };
-
- /**
- * Recursively collapse handler chain to find the handler
- * nearest to the fully resolved value.
- * @returns {object} handler nearest the fully resolved value
- */
- Handler.prototype.join = function() {
- var h = this;
- while(h.handler !== void 0) {
- h = h.handler;
- }
- return h;
- };
-
- Handler.prototype.chain = function(to, receiver, fulfilled, rejected, progress) {
- this.when({
- resolver: to,
- receiver: receiver,
- fulfilled: fulfilled,
- rejected: rejected,
- progress: progress
- });
- };
-
- Handler.prototype.visit = function(receiver, fulfilled, rejected, progress) {
- this.chain(failIfRejected, receiver, fulfilled, rejected, progress);
- };
-
- Handler.prototype.fold = function(f, z, c, to) {
- this.when(new Fold(f, z, c, to));
- };
-
- /**
- * Handler that invokes fail() on any handler it becomes
- * @constructor
- */
- function FailIfRejected() {}
-
- inherit(Handler, FailIfRejected);
-
- FailIfRejected.prototype.become = function(h) {
- h.fail();
- };
-
- var failIfRejected = new FailIfRejected();
-
- /**
- * Handler that manages a queue of consumers waiting on a pending promise
- * @constructor
- */
- function Pending(receiver, inheritedContext) {
- Promise.createContext(this, inheritedContext);
-
- this.consumers = void 0;
- this.receiver = receiver;
- this.handler = void 0;
- this.resolved = false;
- }
-
- inherit(Handler, Pending);
-
- Pending.prototype._state = 0;
-
- Pending.prototype.resolve = function(x) {
- this.become(getHandler(x));
- };
-
- Pending.prototype.reject = function(x) {
- if(this.resolved) {
- return;
- }
-
- this.become(new Rejected(x));
- };
-
- Pending.prototype.join = function() {
- if (!this.resolved) {
- return this;
- }
-
- var h = this;
-
- while (h.handler !== void 0) {
- h = h.handler;
- if (h === this) {
- return this.handler = cycle();
- }
- }
-
- return h;
- };
-
- Pending.prototype.run = function() {
- var q = this.consumers;
- var handler = this.handler;
- this.handler = this.handler.join();
- this.consumers = void 0;
-
- for (var i = 0; i < q.length; ++i) {
- handler.when(q[i]);
- }
- };
-
- Pending.prototype.become = function(handler) {
- if(this.resolved) {
- return;
- }
-
- this.resolved = true;
- this.handler = handler;
- if(this.consumers !== void 0) {
- tasks.enqueue(this);
- }
-
- if(this.context !== void 0) {
- handler._report(this.context);
- }
- };
-
- Pending.prototype.when = function(continuation) {
- if(this.resolved) {
- tasks.enqueue(new ContinuationTask(continuation, this.handler));
- } else {
- if(this.consumers === void 0) {
- this.consumers = [continuation];
- } else {
- this.consumers.push(continuation);
- }
- }
- };
-
- /**
- * @deprecated
- */
- Pending.prototype.notify = function(x) {
- if(!this.resolved) {
- tasks.enqueue(new ProgressTask(x, this));
- }
- };
-
- Pending.prototype.fail = function(context) {
- var c = typeof context === 'undefined' ? this.context : context;
- this.resolved && this.handler.join().fail(c);
- };
-
- Pending.prototype._report = function(context) {
- this.resolved && this.handler.join()._report(context);
- };
-
- Pending.prototype._unreport = function() {
- this.resolved && this.handler.join()._unreport();
- };
-
- /**
- * Wrap another handler and force it into a future stack
- * @param {object} handler
- * @constructor
- */
- function Async(handler) {
- this.handler = handler;
- }
-
- inherit(Handler, Async);
-
- Async.prototype.when = function(continuation) {
- tasks.enqueue(new ContinuationTask(continuation, this));
- };
-
- Async.prototype._report = function(context) {
- this.join()._report(context);
- };
-
- Async.prototype._unreport = function() {
- this.join()._unreport();
- };
-
- /**
- * Handler that wraps an untrusted thenable and assimilates it in a future stack
- * @param {function} then
- * @param {{then: function}} thenable
- * @constructor
- */
- function Thenable(then, thenable) {
- Pending.call(this);
- tasks.enqueue(new AssimilateTask(then, thenable, this));
- }
-
- inherit(Pending, Thenable);
-
- /**
- * Handler for a fulfilled promise
- * @param {*} x fulfillment value
- * @constructor
- */
- function Fulfilled(x) {
- Promise.createContext(this);
- this.value = x;
- }
-
- inherit(Handler, Fulfilled);
-
- Fulfilled.prototype._state = 1;
-
- Fulfilled.prototype.fold = function(f, z, c, to) {
- runContinuation3(f, z, this, c, to);
- };
-
- Fulfilled.prototype.when = function(cont) {
- runContinuation1(cont.fulfilled, this, cont.receiver, cont.resolver);
- };
-
- var errorId = 0;
-
- /**
- * Handler for a rejected promise
- * @param {*} x rejection reason
- * @constructor
- */
- function Rejected(x) {
- Promise.createContext(this);
-
- this.id = ++errorId;
- this.value = x;
- this.handled = false;
- this.reported = false;
-
- this._report();
- }
-
- inherit(Handler, Rejected);
-
- Rejected.prototype._state = -1;
-
- Rejected.prototype.fold = function(f, z, c, to) {
- to.become(this);
- };
-
- Rejected.prototype.when = function(cont) {
- if(typeof cont.rejected === 'function') {
- this._unreport();
- }
- runContinuation1(cont.rejected, this, cont.receiver, cont.resolver);
- };
-
- Rejected.prototype._report = function(context) {
- tasks.afterQueue(new ReportTask(this, context));
- };
-
- Rejected.prototype._unreport = function() {
- if(this.handled) {
- return;
- }
- this.handled = true;
- tasks.afterQueue(new UnreportTask(this));
- };
-
- Rejected.prototype.fail = function(context) {
- this.reported = true;
- emitRejection('unhandledRejection', this);
- Promise.onFatalRejection(this, context === void 0 ? this.context : context);
- };
-
- function ReportTask(rejection, context) {
- this.rejection = rejection;
- this.context = context;
- }
-
- ReportTask.prototype.run = function() {
- if(!this.rejection.handled && !this.rejection.reported) {
- this.rejection.reported = true;
- emitRejection('unhandledRejection', this.rejection) ||
- Promise.onPotentiallyUnhandledRejection(this.rejection, this.context);
- }
- };
-
- function UnreportTask(rejection) {
- this.rejection = rejection;
- }
-
- UnreportTask.prototype.run = function() {
- if(this.rejection.reported) {
- emitRejection('rejectionHandled', this.rejection) ||
- Promise.onPotentiallyUnhandledRejectionHandled(this.rejection);
- }
- };
-
- // Unhandled rejection hooks
- // By default, everything is a noop
-
- Promise.createContext
- = Promise.enterContext
- = Promise.exitContext
- = Promise.onPotentiallyUnhandledRejection
- = Promise.onPotentiallyUnhandledRejectionHandled
- = Promise.onFatalRejection
- = noop;
-
- // Errors and singletons
-
- var foreverPendingHandler = new Handler();
- var foreverPendingPromise = new Promise(Handler, foreverPendingHandler);
-
- function cycle() {
- return new Rejected(new TypeError('Promise cycle'));
- }
-
- // Task runners
-
- /**
- * Run a single consumer
- * @constructor
- */
- function ContinuationTask(continuation, handler) {
- this.continuation = continuation;
- this.handler = handler;
- }
-
- ContinuationTask.prototype.run = function() {
- this.handler.join().when(this.continuation);
- };
-
- /**
- * Run a queue of progress handlers
- * @constructor
- */
- function ProgressTask(value, handler) {
- this.handler = handler;
- this.value = value;
- }
-
- ProgressTask.prototype.run = function() {
- var q = this.handler.consumers;
- if(q === void 0) {
- return;
- }
-
- for (var c, i = 0; i < q.length; ++i) {
- c = q[i];
- runNotify(c.progress, this.value, this.handler, c.receiver, c.resolver);
- }
- };
-
- /**
- * Assimilate a thenable, sending it's value to resolver
- * @param {function} then
- * @param {object|function} thenable
- * @param {object} resolver
- * @constructor
- */
- function AssimilateTask(then, thenable, resolver) {
- this._then = then;
- this.thenable = thenable;
- this.resolver = resolver;
- }
-
- AssimilateTask.prototype.run = function() {
- var h = this.resolver;
- tryAssimilate(this._then, this.thenable, _resolve, _reject, _notify);
-
- function _resolve(x) { h.resolve(x); }
- function _reject(x) { h.reject(x); }
- function _notify(x) { h.notify(x); }
- };
-
- function tryAssimilate(then, thenable, resolve, reject, notify) {
- try {
- then.call(thenable, resolve, reject, notify);
- } catch (e) {
- reject(e);
- }
- }
-
- /**
- * Fold a handler value with z
- * @constructor
- */
- function Fold(f, z, c, to) {
- this.f = f; this.z = z; this.c = c; this.to = to;
- this.resolver = failIfRejected;
- this.receiver = this;
- }
-
- Fold.prototype.fulfilled = function(x) {
- this.f.call(this.c, this.z, x, this.to);
- };
-
- Fold.prototype.rejected = function(x) {
- this.to.reject(x);
- };
-
- Fold.prototype.progress = function(x) {
- this.to.notify(x);
- };
-
- // Other helpers
-
- /**
- * @param {*} x
- * @returns {boolean} true iff x is a trusted Promise
- */
- function isPromise(x) {
- return x instanceof Promise;
- }
-
- /**
- * Test just enough to rule out primitives, in order to take faster
- * paths in some code
- * @param {*} x
- * @returns {boolean} false iff x is guaranteed *not* to be a thenable
- */
- function maybeThenable(x) {
- return (typeof x === 'object' || typeof x === 'function') && x !== null;
- }
-
- function runContinuation1(f, h, receiver, next) {
- if(typeof f !== 'function') {
- return next.become(h);
- }
-
- Promise.enterContext(h);
- tryCatchReject(f, h.value, receiver, next);
- Promise.exitContext();
- }
-
- function runContinuation3(f, x, h, receiver, next) {
- if(typeof f !== 'function') {
- return next.become(h);
- }
-
- Promise.enterContext(h);
- tryCatchReject3(f, x, h.value, receiver, next);
- Promise.exitContext();
- }
-
- /**
- * @deprecated
- */
- function runNotify(f, x, h, receiver, next) {
- if(typeof f !== 'function') {
- return next.notify(x);
- }
-
- Promise.enterContext(h);
- tryCatchReturn(f, x, receiver, next);
- Promise.exitContext();
- }
-
- function tryCatch2(f, a, b) {
- try {
- return f(a, b);
- } catch(e) {
- return reject(e);
- }
- }
-
- /**
- * Return f.call(thisArg, x), or if it throws return a rejected promise for
- * the thrown exception
- */
- function tryCatchReject(f, x, thisArg, next) {
- try {
- next.become(getHandler(f.call(thisArg, x)));
- } catch(e) {
- next.become(new Rejected(e));
- }
- }
-
- /**
- * Same as above, but includes the extra argument parameter.
- */
- function tryCatchReject3(f, x, y, thisArg, next) {
- try {
- f.call(thisArg, x, y, next);
- } catch(e) {
- next.become(new Rejected(e));
- }
- }
-
- /**
- * @deprecated
- * Return f.call(thisArg, x), or if it throws, *return* the exception
- */
- function tryCatchReturn(f, x, thisArg, next) {
- try {
- next.notify(f.call(thisArg, x));
- } catch(e) {
- next.notify(e);
- }
- }
-
- function inherit(Parent, Child) {
- Child.prototype = objectCreate(Parent.prototype);
- Child.prototype.constructor = Child;
- }
-
- function snd(x, y) {
- return y;
- }
-
- function noop() {}
-
- function hasCustomEvent() {
- if(typeof CustomEvent === 'function') {
- try {
- var ev = new CustomEvent('unhandledRejection');
- return ev instanceof CustomEvent;
- } catch (ignoredException) {}
- }
- return false;
- }
-
- function hasInternetExplorerCustomEvent() {
- if(typeof document !== 'undefined' && typeof document.createEvent === 'function') {
- try {
- // Try to create one event to make sure it's supported
- var ev = document.createEvent('CustomEvent');
- ev.initCustomEvent('eventType', false, true, {});
- return true;
- } catch (ignoredException) {}
- }
- return false;
- }
-
- function initEmitRejection() {
- /*global process, self, CustomEvent*/
- if(typeof process !== 'undefined' && process !== null
- && typeof process.emit === 'function') {
- // Returning falsy here means to call the default
- // onPotentiallyUnhandledRejection API. This is safe even in
- // browserify since process.emit always returns falsy in browserify:
- // https://github.com/defunctzombie/node-process/blob/master/browser.js#L40-L46
- return function(type, rejection) {
- return type === 'unhandledRejection'
- ? process.emit(type, rejection.value, rejection)
- : process.emit(type, rejection);
- };
- } else if(typeof self !== 'undefined' && hasCustomEvent()) {
- return (function (self, CustomEvent) {
- return function (type, rejection) {
- var ev = new CustomEvent(type, {
- detail: {
- reason: rejection.value,
- key: rejection
- },
- bubbles: false,
- cancelable: true
- });
-
- return !self.dispatchEvent(ev);
- };
- }(self, CustomEvent));
- } else if(typeof self !== 'undefined' && hasInternetExplorerCustomEvent()) {
- return (function(self, document) {
- return function(type, rejection) {
- var ev = document.createEvent('CustomEvent');
- ev.initCustomEvent(type, false, true, {
- reason: rejection.value,
- key: rejection
- });
-
- return !self.dispatchEvent(ev);
- };
- }(self, document));
- }
-
- return noop;
- }
-
- return Promise;
- };
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
diff --git a/node_modules/when/lib/state.js b/node_modules/when/lib/state.js
deleted file mode 100644
index 6dbd47ded..000000000
--- a/node_modules/when/lib/state.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- return {
- pending: toPendingState,
- fulfilled: toFulfilledState,
- rejected: toRejectedState,
- inspect: inspect
- };
-
- function toPendingState() {
- return { state: 'pending' };
- }
-
- function toRejectedState(e) {
- return { state: 'rejected', reason: e };
- }
-
- function toFulfilledState(x) {
- return { state: 'fulfilled', value: x };
- }
-
- function inspect(handler) {
- var state = handler.state();
- return state === 0 ? toPendingState()
- : state > 0 ? toFulfilledState(handler.value)
- : toRejectedState(handler.value);
- }
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
diff --git a/node_modules/when/monitor.js b/node_modules/when/monitor.js
deleted file mode 100644
index 89790882c..000000000
--- a/node_modules/when/monitor.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var PromiseMonitor = require('./monitor/PromiseMonitor');
- var ConsoleReporter = require('./monitor/ConsoleReporter');
-
- var promiseMonitor = new PromiseMonitor(new ConsoleReporter());
-
- return function(Promise) {
- return promiseMonitor.monitor(Promise);
- };
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/node_modules/when/monitor/ConsoleReporter.js b/node_modules/when/monitor/ConsoleReporter.js
deleted file mode 100644
index 2b0c97411..000000000
--- a/node_modules/when/monitor/ConsoleReporter.js
+++ /dev/null
@@ -1,106 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var error = require('./error');
- var unhandledRejectionsMsg = '[promises] Unhandled rejections: ';
- var allHandledMsg = '[promises] All previously unhandled rejections have now been handled';
-
- function ConsoleReporter() {
- this._previouslyReported = false;
- }
-
- ConsoleReporter.prototype = initDefaultLogging();
-
- ConsoleReporter.prototype.log = function(traces) {
- if(traces.length === 0) {
- if(this._previouslyReported) {
- this._previouslyReported = false;
- this.msg(allHandledMsg);
- }
- return;
- }
-
- this._previouslyReported = true;
- this.groupStart(unhandledRejectionsMsg + traces.length);
- try {
- this._log(traces);
- } finally {
- this.groupEnd();
- }
- };
-
- ConsoleReporter.prototype._log = function(traces) {
- for(var i=0; i<traces.length; ++i) {
- this.warn(error.format(traces[i]));
- }
- };
-
- function initDefaultLogging() {
- /*jshint maxcomplexity:7*/
- var log, warn, groupStart, groupEnd;
-
- if(typeof console === 'undefined') {
- log = warn = consoleNotAvailable;
- } else {
- // Alias console to prevent things like uglify's drop_console option from
- // removing console.log/error. Unhandled rejections fall into the same
- // category as uncaught exceptions, and build tools shouldn't silence them.
- var localConsole = console;
- if(typeof localConsole.error === 'function'
- && typeof localConsole.dir === 'function') {
- warn = function(s) {
- localConsole.error(s);
- };
-
- log = function(s) {
- localConsole.log(s);
- };
-
- if(typeof localConsole.groupCollapsed === 'function') {
- groupStart = function(s) {
- localConsole.groupCollapsed(s);
- };
- groupEnd = function() {
- localConsole.groupEnd();
- };
- }
- } else {
- // IE8 has console.log and JSON, so we can make a
- // reasonably useful warn() from those.
- // Credit to webpro (https://github.com/webpro) for this idea
- // typeof localConsole.log will return 'object' in IE8, so can't test it with === 'function'
- // Since this is more of a corner case for IE8, I'm ok to check it with !== 'undefined' to reduce complexity
- if (typeof localConsole.log !== 'undefined' && typeof JSON !== 'undefined') {
- log = warn = function(x) {
- if (typeof x !== 'string') {
- try {
- x = JSON.stringify(x);
- } catch (e) {
- }
- }
- localConsole.log(x);
- };
- } else {
- log = warn = consoleNotAvailable;
- }
- }
- }
-
- return {
- msg: log,
- warn: warn,
- groupStart: groupStart || warn,
- groupEnd: groupEnd || consoleNotAvailable
- };
- }
-
- function consoleNotAvailable() {}
-
- return ConsoleReporter;
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/node_modules/when/monitor/PromiseMonitor.js b/node_modules/when/monitor/PromiseMonitor.js
deleted file mode 100644
index 2becc0e3c..000000000
--- a/node_modules/when/monitor/PromiseMonitor.js
+++ /dev/null
@@ -1,197 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var defaultStackJumpSeparator = 'from execution context:';
- var defaultStackFilter = /[\s\(\/\\](node|module|timers)\.js:|when([\/\\]{1,2}(lib|monitor|es6-shim)[\/\\]{1,2}|\.js)|(new\sPromise)\b|(\b(PromiseMonitor|ConsoleReporter|Scheduler|RunHandlerTask|ProgressTask|Promise|.*Handler)\.[\w_]\w\w+\b)|\b(tryCatch\w+|getHandler\w*)\b/i;
-
- var setTimer = require('../lib/env').setTimer;
- var error = require('./error');
-
- var executionContext = [];
-
- function PromiseMonitor(reporter) {
- this.logDelay = 0;
- this.stackFilter = defaultStackFilter;
- this.stackJumpSeparator = defaultStackJumpSeparator;
- this.filterDuplicateFrames = true;
-
- this._reporter = reporter;
- if(typeof reporter.configurePromiseMonitor === 'function') {
- reporter.configurePromiseMonitor(this);
- }
-
- this._traces = [];
- this._traceTask = 0;
-
- var self = this;
- this._doLogTraces = function() {
- self._logTraces();
- };
- }
-
- PromiseMonitor.prototype.monitor = function(Promise) {
- var self = this;
- Promise.createContext = function(p, context) {
- p.context = self.createContext(p, context);
- };
-
- Promise.enterContext = function(p) {
- executionContext.push(p.context);
- };
-
- Promise.exitContext = function() {
- executionContext.pop();
- };
-
- Promise.onPotentiallyUnhandledRejection = function(rejection, extraContext) {
- return self.addTrace(rejection, extraContext);
- };
-
- Promise.onPotentiallyUnhandledRejectionHandled = function(rejection) {
- return self.removeTrace(rejection);
- };
-
- Promise.onFatalRejection = function(rejection, extraContext) {
- return self.fatal(rejection, extraContext);
- };
-
- return this;
- };
-
- PromiseMonitor.prototype.createContext = function(at, parentContext) {
- var context = {
- parent: parentContext || executionContext[executionContext.length - 1],
- stack: void 0
- };
- error.captureStack(context, at.constructor);
- return context;
- };
-
- PromiseMonitor.prototype.addTrace = function(handler, extraContext) {
- var t, i;
-
- for(i = this._traces.length-1; i >= 0; --i) {
- t = this._traces[i];
- if(t.handler === handler) {
- break;
- }
- }
-
- if(i >= 0) {
- t.extraContext = extraContext;
- } else {
- this._traces.push({
- handler: handler,
- extraContext: extraContext
- });
- }
-
- this.logTraces();
- };
-
- PromiseMonitor.prototype.removeTrace = function(/*handler*/) {
- this.logTraces();
- };
-
- PromiseMonitor.prototype.fatal = function(handler, extraContext) {
- var err = new Error();
- err.stack = this._createLongTrace(handler.value, handler.context, extraContext).join('\n');
- setTimer(function() {
- throw err;
- }, 0);
- };
-
- PromiseMonitor.prototype.logTraces = function() {
- if(!this._traceTask) {
- this._traceTask = setTimer(this._doLogTraces, this.logDelay);
- }
- };
-
- PromiseMonitor.prototype._logTraces = function() {
- this._traceTask = void 0;
- this._traces = this._traces.filter(filterHandled);
- this._reporter.log(this.formatTraces(this._traces));
- };
-
-
- PromiseMonitor.prototype.formatTraces = function(traces) {
- return traces.map(function(t) {
- return this._createLongTrace(t.handler.value, t.handler.context, t.extraContext);
- }, this);
- };
-
- PromiseMonitor.prototype._createLongTrace = function(e, context, extraContext) {
- var trace = error.parse(e) || [String(e) + ' (WARNING: non-Error used)'];
- trace = filterFrames(this.stackFilter, trace, 0);
- this._appendContext(trace, context);
- this._appendContext(trace, extraContext);
- return this.filterDuplicateFrames ? this._removeDuplicates(trace) : trace;
- };
-
- PromiseMonitor.prototype._removeDuplicates = function(trace) {
- var seen = {};
- var sep = this.stackJumpSeparator;
- var count = 0;
- return trace.reduceRight(function(deduped, line, i) {
- if(i === 0) {
- deduped.unshift(line);
- } else if(line === sep) {
- if(count > 0) {
- deduped.unshift(line);
- count = 0;
- }
- } else if(!seen[line]) {
- seen[line] = true;
- deduped.unshift(line);
- ++count;
- }
- return deduped;
- }, []);
- };
-
- PromiseMonitor.prototype._appendContext = function(trace, context) {
- trace.push.apply(trace, this._createTrace(context));
- };
-
- PromiseMonitor.prototype._createTrace = function(traceChain) {
- var trace = [];
- var stack;
-
- while(traceChain) {
- stack = error.parse(traceChain);
-
- if (stack) {
- stack = filterFrames(this.stackFilter, stack);
- appendStack(trace, stack, this.stackJumpSeparator);
- }
-
- traceChain = traceChain.parent;
- }
-
- return trace;
- };
-
- function appendStack(trace, stack, separator) {
- if (stack.length > 1) {
- stack[0] = separator;
- trace.push.apply(trace, stack);
- }
- }
-
- function filterFrames(stackFilter, stack) {
- return stack.filter(function(frame) {
- return !stackFilter.test(frame);
- });
- }
-
- function filterHandled(t) {
- return !t.handler.handled;
- }
-
- return PromiseMonitor;
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/node_modules/when/monitor/README.md b/node_modules/when/monitor/README.md
deleted file mode 100644
index 57acff9d8..000000000
--- a/node_modules/when/monitor/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Promise monitoring and debugging
-
-This dir contains experimental new promise monitoring and debugging utilities for when.js. See [the docs](../docs/api.md#debugging-promises).
diff --git a/node_modules/when/monitor/console.js b/node_modules/when/monitor/console.js
deleted file mode 100644
index 931caa641..000000000
--- a/node_modules/when/monitor/console.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function(require) {
-
- var monitor = require('../monitor');
- var Promise = require('../when').Promise;
-
- return monitor(Promise);
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/node_modules/when/monitor/error.js b/node_modules/when/monitor/error.js
deleted file mode 100644
index 63825e2c4..000000000
--- a/node_modules/when/monitor/error.js
+++ /dev/null
@@ -1,86 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-/** @author Brian Cavalier */
-/** @author John Hann */
-
-(function(define) { 'use strict';
-define(function() {
-
- var parse, captureStack, format;
-
- if(Error.captureStackTrace) {
- // Use Error.captureStackTrace if available
- parse = function(e) {
- return e && e.stack && e.stack.split('\n');
- };
-
- format = formatAsString;
- captureStack = Error.captureStackTrace;
-
- } else {
- // Otherwise, do minimal feature detection to determine
- // how to capture and format reasonable stacks.
- parse = function(e) {
- var stack = e && e.stack && e.stack.split('\n');
- if(stack && e.message) {
- stack.unshift(e.message);
- }
- return stack;
- };
-
- (function() {
- var e = new Error();
- if(typeof e.stack !== 'string') {
- format = formatAsString;
- captureStack = captureSpiderMonkeyStack;
- } else {
- format = formatAsErrorWithStack;
- captureStack = useStackDirectly;
- }
- }());
- }
-
- function captureSpiderMonkeyStack(host) {
- try {
- throw new Error();
- } catch(err) {
- host.stack = err.stack;
- }
- }
-
- function useStackDirectly(host) {
- host.stack = new Error().stack;
- }
-
- function formatAsString(longTrace) {
- return join(longTrace);
- }
-
- function formatAsErrorWithStack(longTrace) {
- var e = new Error();
- e.stack = formatAsString(longTrace);
- return e;
- }
-
- // About 5-10x faster than String.prototype.join o_O
- function join(a) {
- var sep = false;
- var s = '';
- for(var i=0; i< a.length; ++i) {
- if(sep) {
- s += '\n' + a[i];
- } else {
- s+= a[i];
- sep = true;
- }
- }
- return s;
- }
-
- return {
- parse: parse,
- format: format,
- captureStack: captureStack
- };
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
diff --git a/node_modules/when/node.js b/node_modules/when/node.js
deleted file mode 100644
index 61d9453ff..000000000
--- a/node_modules/when/node.js
+++ /dev/null
@@ -1,282 +0,0 @@
-/** @license MIT License (c) copyright 2013 original author or authors */
-
-/**
- * Collection of helpers for interfacing with node-style asynchronous functions
- * using promises.
- *
- * @author Brian Cavalier
- * @contributor Renato Zannon
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var _liftAll = require('./lib/liftAll');
- var setTimer = require('./lib/env').setTimer;
- var slice = Array.prototype.slice;
-
- var _apply = require('./lib/apply')(when.Promise, dispatch);
-
- return {
- lift: lift,
- liftAll: liftAll,
- apply: apply,
- call: call,
- createCallback: createCallback,
- bindCallback: bindCallback,
- liftCallback: liftCallback
- };
-
- /**
- * Takes a node-style async function and calls it immediately (with an optional
- * array of arguments or promises for arguments). It returns a promise whose
- * resolution depends on whether the async functions calls its callback with the
- * conventional error argument or not.
- *
- * With this it becomes possible to leverage existing APIs while still reaping
- * the benefits of promises.
- *
- * @example
- * function onlySmallNumbers(n, callback) {
- * if(n < 10) {
- * callback(null, n + 10);
- * } else {
- * callback(new Error("Calculation failed"));
- * }
- * }
- *
- * var nodefn = require("when/node/function");
- *
- * // Logs '15'
- * nodefn.apply(onlySmallNumbers, [5]).then(console.log, console.error);
- *
- * // Logs 'Calculation failed'
- * nodefn.apply(onlySmallNumbers, [15]).then(console.log, console.error);
- *
- * @param {function} f node-style function that will be called
- * @param {Array} [args] array of arguments to func
- * @returns {Promise} promise for the value func passes to its callback
- */
- function apply(f, args) {
- return _apply(f, this, args || []);
- }
-
- function dispatch(f, thisArg, args, h) {
- var cb = createCallback(h);
- try {
- switch(args.length) {
- case 2: f.call(thisArg, args[0], args[1], cb); break;
- case 1: f.call(thisArg, args[0], cb); break;
- case 0: f.call(thisArg, cb); break;
- default:
- args.push(cb);
- f.apply(thisArg, args);
- }
- } catch(e) {
- h.reject(e);
- }
- }
-
- /**
- * Has the same behavior that {@link apply} has, with the difference that the
- * arguments to the function are provided individually, while {@link apply} accepts
- * a single array.
- *
- * @example
- * function sumSmallNumbers(x, y, callback) {
- * var result = x + y;
- * if(result < 10) {
- * callback(null, result);
- * } else {
- * callback(new Error("Calculation failed"));
- * }
- * }
- *
- * // Logs '5'
- * nodefn.call(sumSmallNumbers, 2, 3).then(console.log, console.error);
- *
- * // Logs 'Calculation failed'
- * nodefn.call(sumSmallNumbers, 5, 10).then(console.log, console.error);
- *
- * @param {function} f node-style function that will be called
- * @param {...*} [args] arguments that will be forwarded to the function
- * @returns {Promise} promise for the value func passes to its callback
- */
- function call(f /*, args... */) {
- return _apply(f, this, slice.call(arguments, 1));
- }
-
- /**
- * Takes a node-style function and returns new function that wraps the
- * original and, instead of taking a callback, returns a promise. Also, it
- * knows how to handle promises given as arguments, waiting for their
- * resolution before executing.
- *
- * Upon execution, the orginal function is executed as well. If it passes
- * a truthy value as the first argument to the callback, it will be
- * interpreted as an error condition, and the promise will be rejected
- * with it. Otherwise, the call is considered a resolution, and the promise
- * is resolved with the callback's second argument.
- *
- * @example
- * var fs = require("fs"), nodefn = require("when/node/function");
- *
- * var promiseRead = nodefn.lift(fs.readFile);
- *
- * // The promise is resolved with the contents of the file if everything
- * // goes ok
- * promiseRead('exists.txt').then(console.log, console.error);
- *
- * // And will be rejected if something doesn't work out
- * // (e.g. the files does not exist)
- * promiseRead('doesnt_exist.txt').then(console.log, console.error);
- *
- *
- * @param {Function} f node-style function to be lifted
- * @param {...*} [args] arguments to be prepended for the new function @deprecated
- * @returns {Function} a promise-returning function
- */
- function lift(f /*, args... */) {
- var args1 = arguments.length > 1 ? slice.call(arguments, 1) : [];
- return function() {
- // TODO: Simplify once partialing has been removed
- var l = args1.length;
- var al = arguments.length;
- var args = new Array(al + l);
- var i;
- for(i=0; i<l; ++i) {
- args[i] = args1[i];
- }
- for(i=0; i<al; ++i) {
- args[i+l] = arguments[i];
- }
- return _apply(f, this, args);
- };
- }
-
- /**
- * Lift all the functions/methods on src
- * @param {object|function} src source whose functions will be lifted
- * @param {function?} combine optional function for customizing the lifting
- * process. It is passed dst, the lifted function, and the property name of
- * the original function on src.
- * @param {(object|function)?} dst option destination host onto which to place lifted
- * functions. If not provided, liftAll returns a new object.
- * @returns {*} If dst is provided, returns dst with lifted functions as
- * properties. If dst not provided, returns a new object with lifted functions.
- */
- function liftAll(src, combine, dst) {
- return _liftAll(lift, combine, dst, src);
- }
-
- /**
- * Takes an object that responds to the resolver interface, and returns
- * a function that will resolve or reject it depending on how it is called.
- *
- * @example
- * function callbackTakingFunction(callback) {
- * if(somethingWrongHappened) {
- * callback(error);
- * } else {
- * callback(null, interestingValue);
- * }
- * }
- *
- * var when = require('when'), nodefn = require('when/node/function');
- *
- * var deferred = when.defer();
- * callbackTakingFunction(nodefn.createCallback(deferred.resolver));
- *
- * deferred.promise.then(function(interestingValue) {
- * // Use interestingValue
- * });
- *
- * @param {Resolver} resolver that will be 'attached' to the callback
- * @returns {Function} a node-style callback function
- */
- function createCallback(resolver) {
- return function(err, value) {
- if(err) {
- resolver.reject(err);
- } else if(arguments.length > 2) {
- resolver.resolve(slice.call(arguments, 1));
- } else {
- resolver.resolve(value);
- }
- };
- }
-
- /**
- * Attaches a node-style callback to a promise, ensuring the callback is
- * called for either fulfillment or rejection. Returns a promise with the same
- * state as the passed-in promise.
- *
- * @example
- * var deferred = when.defer();
- *
- * function callback(err, value) {
- * // Handle err or use value
- * }
- *
- * bindCallback(deferred.promise, callback);
- *
- * deferred.resolve('interesting value');
- *
- * @param {Promise} promise The promise to be attached to.
- * @param {Function} callback The node-style callback to attach.
- * @returns {Promise} A promise with the same state as the passed-in promise.
- */
- function bindCallback(promise, callback) {
- promise = when(promise);
-
- if (callback) {
- promise.then(success, wrapped);
- }
-
- return promise;
-
- function success(value) {
- wrapped(null, value);
- }
-
- function wrapped(err, value) {
- setTimer(function () {
- callback(err, value);
- }, 0);
- }
- }
-
- /**
- * Takes a node-style callback and returns new function that accepts a
- * promise, calling the original callback when the promise is either
- * fulfilled or rejected with the appropriate arguments.
- *
- * @example
- * var deferred = when.defer();
- *
- * function callback(err, value) {
- * // Handle err or use value
- * }
- *
- * var wrapped = liftCallback(callback);
- *
- * // `wrapped` can now be passed around at will
- * wrapped(deferred.promise);
- *
- * deferred.resolve('interesting value');
- *
- * @param {Function} callback The node-style callback to wrap.
- * @returns {Function} The lifted, promise-accepting function.
- */
- function liftCallback(callback) {
- return function(promise) {
- return bindCallback(promise, callback);
- };
- }
-});
-
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
-
diff --git a/node_modules/when/node/function.js b/node_modules/when/node/function.js
deleted file mode 100644
index 6736f1a9c..000000000
--- a/node_modules/when/node/function.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/** @license MIT License (c) copyright 2013 original author or authors */
-
-/**
- * @author Brian Cavalier
- */
-(function(define) { 'use strict';
-define(function(require) {
-
- // DEPRECATED: Use when/node instead
- return require('../node');
-
-});
-}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
diff --git a/node_modules/when/package.json b/node_modules/when/package.json
deleted file mode 100644
index b02702be7..000000000
--- a/node_modules/when/package.json
+++ /dev/null
@@ -1,102 +0,0 @@
-{
- "name": "when",
- "version": "3.7.8",
- "description": "A lightweight Promises/A+ and when() implementation, plus other async goodies.",
- "keywords": [
- "cujo",
- "Promises/A+",
- "promises-aplus",
- "promise",
- "promises",
- "deferred",
- "deferreds",
- "when",
- "async",
- "asynchronous",
- "ender"
- ],
- "homepage": "http://cujojs.com",
- "license": "MIT",
- "repository": {
- "type": "git",
- "url": "https://github.com/cujojs/when"
- },
- "bugs": "https://github.com/cujojs/when/issues",
- "maintainers": [
- {
- "name": "Brian Cavalier",
- "web": "http://hovercraftstudios.com"
- },
- {
- "name": "John Hann",
- "web": "http://unscriptable.com"
- }
- ],
- "contributors": [
- {
- "name": "Brian Cavalier",
- "web": "http://hovercraftstudios.com"
- },
- {
- "name": "John Hann",
- "web": "http://unscriptable.com"
- },
- {
- "name": "Scott Andrews"
- }
- ],
- "devDependencies": {
- "benchmark": "~1",
- "browserify": "~2",
- "buster": "~0.7",
- "exorcist": "~0.4",
- "glob": "^7.1.1",
- "jshint": "~2",
- "json5": "~0.2",
- "microtime": "~2",
- "mkdirp": "^0.5.1",
- "optimist": "~0.6",
- "poly": "^0.6.1",
- "promises-aplus-tests": "~2",
- "rest": "1.1.x",
- "sauce-connect-launcher": "~0.4",
- "uglify-js": "~2",
- "wd": "~0.2"
- },
- "main": "when.js",
- "ender": {
- "files": [
- "*.js",
- "lib/*.js",
- "node/*.js",
- "unfold/*.js",
- "monitor/*.js",
- "lib/decorators/*.js"
- ]
- },
- "browser": {
- "when": "./dist/browser/when.js",
- "vertx": false
- },
- "directories": {
- "test": "test"
- },
- "scripts": {
- "test": "jshint . && buster-test -e node && promises-aplus-tests test/promises-aplus-adapter.js",
- "build-browser-test": "browserify ./node_modules/poly/es5.js -o test/browser/es5.js && node scripts/browserify-tests",
- "browser-test": "npm run build-browser-test && buster-static -e browser -p 8080",
- "ci": "npm test && node test/sauce.js",
- "tunnel": "node test/sauce.js -m",
- "start": "buster-static -e browser",
- "benchmark": "node benchmark/promise && node benchmark/map",
- "prepublish": "npm run browserify && npm run uglify",
- "preversion": "npm run browserify && npm run uglify",
- "browserify": "npm run browserify-es6 && npm run browserify-when && npm run browserify-debug",
- "browserify-es6": "node scripts/browserify.js es6",
- "browserify-when": "node scripts/browserify.js when",
- "browserify-debug": "node scripts/browserify.js debug",
- "uglify": "npm run uglify-es6 && npm run uglify-when",
- "uglify-es6": "uglifyjs es6-shim/Promise.js --compress --mangle --in-source-map es6-shim/Promise.js.map --source-map es6-shim/Promise.min.js.map -o es6-shim/Promise.min.js",
- "uglify-when": "uglifyjs dist/browser/when.js --compress --mangle --in-source-map dist/browser/when.js.map --source-map dist/browser/when.min.js.map -o dist/browser/when.min.js"
- }
-}
diff --git a/node_modules/when/parallel.js b/node_modules/when/parallel.js
deleted file mode 100644
index 6616a82be..000000000
--- a/node_modules/when/parallel.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * parallel.js
- *
- * Run a set of task functions in parallel. All tasks will
- * receive the same args
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var all = when.Promise.all;
- var slice = Array.prototype.slice;
-
- /**
- * Run array of tasks in parallel
- * @param tasks {Array|Promise} array or promiseForArray of task functions
- * @param [args] {*} arguments to be passed to all tasks
- * @return {Promise} promise for array containing the
- * result of each task in the array position corresponding
- * to position of the task in the tasks array
- */
- return function parallel(tasks /*, args... */) {
- return all(slice.call(arguments, 1)).then(function(args) {
- return when.map(tasks, function(task) {
- return task.apply(void 0, args);
- });
- });
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
diff --git a/node_modules/when/pipeline.js b/node_modules/when/pipeline.js
deleted file mode 100644
index e5c0bd3b9..000000000
--- a/node_modules/when/pipeline.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * pipeline.js
- *
- * Run a set of task functions in sequence, passing the result
- * of the previous as an argument to the next. Like a shell
- * pipeline, e.g. `cat file.txt | grep 'foo' | sed -e 's/foo/bar/g'
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var all = when.Promise.all;
- var slice = Array.prototype.slice;
-
- /**
- * Run array of tasks in a pipeline where the next
- * tasks receives the result of the previous. The first task
- * will receive the initialArgs as its argument list.
- * @param tasks {Array|Promise} array or promise for array of task functions
- * @param [initialArgs...] {*} arguments to be passed to the first task
- * @return {Promise} promise for return value of the final task
- */
- return function pipeline(tasks /* initialArgs... */) {
- // Self-optimizing function to run first task with multiple
- // args using apply, but subsequence tasks via direct invocation
- var runTask = function(args, task) {
- runTask = function(arg, task) {
- return task(arg);
- };
-
- return task.apply(null, args);
- };
-
- return all(slice.call(arguments, 1)).then(function(args) {
- return when.reduce(tasks, function(arg, task) {
- return runTask(arg, task);
- }, args);
- });
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
diff --git a/node_modules/when/poll.js b/node_modules/when/poll.js
deleted file mode 100644
index 10a7d4131..000000000
--- a/node_modules/when/poll.js
+++ /dev/null
@@ -1,114 +0,0 @@
-/** @license MIT License (c) copyright 2012-2013 original author or authors */
-
-/**
- * poll.js
- *
- * Helper that polls until cancelled or for a condition to become true.
- *
- * @author Scott Andrews
- */
-
-(function (define) { 'use strict';
-define(function(require) {
-
- var when = require('./when');
- var attempt = when['try'];
- var cancelable = require('./cancelable');
-
- /**
- * Periodically execute the task function on the msec delay. The result of
- * the task may be verified by watching for a condition to become true. The
- * returned deferred is cancellable if the polling needs to be cancelled
- * externally before reaching a resolved state.
- *
- * The next vote is scheduled after the results of the current vote are
- * verified and rejected.
- *
- * Polling may be terminated by the verifier returning a truthy value,
- * invoking cancel() on the returned promise, or the task function returning
- * a rejected promise.
- *
- * Usage:
- *
- * var count = 0;
- * function doSomething() { return count++ }
- *
- * // poll until cancelled
- * var p = poll(doSomething, 1000);
- * ...
- * p.cancel();
- *
- * // poll until condition is met
- * poll(doSomething, 1000, function(result) { return result > 10 })
- * .then(function(result) { assert result == 10 });
- *
- * // delay first vote
- * poll(doSomething, 1000, anyFunc, true);
- *
- * @param task {Function} function that is executed after every timeout
- * @param interval {number|Function} timeout in milliseconds
- * @param [verifier] {Function} function to evaluate the result of the vote.
- * May return a {Promise} or a {Boolean}. Rejecting the promise or a
- * falsey value will schedule the next vote.
- * @param [delayInitialTask] {boolean} if truthy, the first vote is scheduled
- * instead of immediate
- *
- * @returns {Promise}
- */
- return function poll(task, interval, verifier, delayInitialTask) {
- var deferred, canceled, reject;
-
- canceled = false;
- deferred = cancelable(when.defer(), function () { canceled = true; });
- reject = deferred.reject;
-
- verifier = verifier || function () { return false; };
-
- if (typeof interval !== 'function') {
- interval = (function (interval) {
- return function () { return when().delay(interval); };
- })(interval);
- }
-
- function certify(result) {
- deferred.resolve(result);
- }
-
- function schedule(result) {
- attempt(interval).then(vote, reject);
- if (result !== void 0) {
- deferred.notify(result);
- }
- }
-
- function vote() {
- if (canceled) { return; }
- when(task(),
- function (result) {
- when(verifier(result),
- function (verification) {
- return verification ? certify(result) : schedule(result);
- },
- function () { schedule(result); }
- );
- },
- reject
- );
- }
-
- if (delayInitialTask) {
- schedule();
- } else {
- // if task() is blocking, vote will also block
- vote();
- }
-
- // make the promise cancelable
- deferred.promise = Object.create(deferred.promise);
- deferred.promise.cancel = deferred.cancel;
-
- return deferred.promise;
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
diff --git a/node_modules/when/scripts/browserify-tests.js b/node_modules/when/scripts/browserify-tests.js
deleted file mode 100644
index c30878f9d..000000000
--- a/node_modules/when/scripts/browserify-tests.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var path = require('path');
-var fs = require('fs');
-var glob = require('glob');
-var browserify = require('browserify');
-
-var POSIX_SEP = path.posix ? path.posix.sep : '/';
-
-var ROOT_DIR = path.resolve(__dirname, '..');
-var outputFile = path.resolve(ROOT_DIR, 'test', 'browser', 'tests.js');
-
-var entries = glob(path.join(ROOT_DIR, 'test', '**', '*-test.js'), { sync: true });
-if (path.sep !== POSIX_SEP) {
- entries = entries.map(function (entry) {
- return entry.split(POSIX_SEP).join(path.sep);
- });
-}
-
-browserify({
- entries: entries
-})
- .external('buster')
- .bundle()
- .pipe(fs.createWriteStream(outputFile));
diff --git a/node_modules/when/scripts/browserify.js b/node_modules/when/scripts/browserify.js
deleted file mode 100644
index 7b597540f..000000000
--- a/node_modules/when/scripts/browserify.js
+++ /dev/null
@@ -1,83 +0,0 @@
-var exec = require('child_process').exec;
-var path = require('path');
-var fs = require('fs');
-var mkdirp = require('mkdirp');
-var browserify = require('browserify');
-var exorcist = require('exorcist');
-
-var ROOT_DIR = path.resolve(__dirname, '..');
-
-var CONFIGURATIONS = {
- 'es6': {
- standaloneName: 'Promise',
- entries: [
- path.resolve(ROOT_DIR, 'es6-shim', 'Promise.browserify-es6.js')
- ],
- outputDir: 'es6-shim',
- outputFilename: 'Promise.js'
- },
- 'when': {
- standaloneName: 'when',
- entries: [
- path.resolve(ROOT_DIR, 'build', 'when.browserify.js')
- ],
- outputDir: path.join('dist', 'browser'),
- outputFilename: 'when.js'
- },
- 'debug': {
- standaloneName: 'when',
- entries: [
- path.resolve(ROOT_DIR, 'build', 'when.browserify-debug.js')
- ],
- outputDir: path.join('dist', 'browser'),
- outputFilename: 'when.debug.js'
- }
-};
-
-function revParse(callback) {
- exec('git rev-parse HEAD', function(err, stdout, stderr) {
- process.stderr.write(stderr);
- if (err) {
- callback(err);
- } else {
- callback(null, stdout.replace(/(^\s+)|(\s+$)/g, ''));
- }
- });
-}
-
-var configName = process.argv[2];
-var config = CONFIGURATIONS[configName];
-
-if (!config) {
- console.error('Cannot find configuration "' + configName + '"');
- process.exit(1);
- return;
-}
-
-mkdirp(config.outputDir, function(mkdirErr) {
- if (mkdirErr) {
- console.error(mkdirErr);
- process.exit(1);
- } else {
- revParse(function(revParseErr, rev) {
- if (revParseErr) {
- console.error(revParseErr);
- process.exit(1);
- } else {
- var rootUrl = 'https://raw.githubusercontent.com/cujojs/when/' + rev;
- var outputMapFile = path.resolve(ROOT_DIR, config.outputDir, config.outputFilename + '.map');
- var outputFile = path.resolve(ROOT_DIR, config.outputDir, config.outputFilename);
- browserify({
- entries: config.entries
- })
- .bundle({
- standalone: config.standaloneName,
- detectGlobals: false,
- debug: true
- })
- .pipe(exorcist(outputMapFile, null, rootUrl, ROOT_DIR))
- .pipe(fs.createWriteStream(outputFile));
- }
- });
- }
-});
diff --git a/node_modules/when/sequence.js b/node_modules/when/sequence.js
deleted file mode 100644
index 5f0bc4f85..000000000
--- a/node_modules/when/sequence.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * sequence.js
- *
- * Run a set of task functions in sequence. All tasks will
- * receive the same args.
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
- var all = when.Promise.all;
- var slice = Array.prototype.slice;
-
- /**
- * Run array of tasks in sequence with no overlap
- * @param tasks {Array|Promise} array or promiseForArray of task functions
- * @param [args] {*} arguments to be passed to all tasks
- * @return {Promise} promise for an array containing
- * the result of each task in the array position corresponding
- * to position of the task in the tasks array
- */
- return function sequence(tasks /*, args... */) {
- var results = [];
-
- return all(slice.call(arguments, 1)).then(function(args) {
- return when.reduce(tasks, function(results, task) {
- return when(task.apply(void 0, args), addResult);
- }, results);
- });
-
- function addResult(result) {
- results.push(result);
- return results;
- }
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
diff --git a/node_modules/when/timeout.js b/node_modules/when/timeout.js
deleted file mode 100644
index ed4aeb9f4..000000000
--- a/node_modules/when/timeout.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/** @license MIT License (c) copyright 2011-2013 original author or authors */
-
-/**
- * timeout.js
- *
- * Helper that returns a promise that rejects after a specified timeout,
- * if not explicitly resolved or rejected before that.
- *
- * @author Brian Cavalier
- * @author John Hann
- */
-
-(function(define) {
-define(function(require) {
-
- var when = require('./when');
-
- /**
- * @deprecated Use when(trigger).timeout(ms)
- */
- return function timeout(msec, trigger) {
- return when(trigger).timeout(msec);
- };
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
-
diff --git a/node_modules/when/unfold.js b/node_modules/when/unfold.js
deleted file mode 100644
index 807bcfca6..000000000
--- a/node_modules/when/unfold.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/** @license MIT License (c) copyright B Cavalier & J Hann */
-
-/**
- * unfold
- * @author: brian@hovercraftstudios.com
- */
-(function(define) {
-define(function(require) {
-
- /**
- * @deprecated Use when.unfold
- */
- return require('./when').unfold;
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); } );
-
diff --git a/node_modules/when/unfold/list.js b/node_modules/when/unfold/list.js
deleted file mode 100644
index 529c2c93d..000000000
--- a/node_modules/when/unfold/list.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/** @license MIT License (c) copyright B Cavalier & J Hann */
-
-(function(define) {
-define(function(require) {
-
- var unfold = require('../when').unfold;
-
- /**
- * @deprecated
- * Given a seed and generator, produces an Array. Effectively the
- * dual (opposite) of when.reduce()
- * @param {function} generator function that generates a value (or promise
- * for a value) to be placed in the resulting array
- * @param {function} condition given a seed, must return truthy if the unfold
- * should continue, or falsey if it should terminate
- * @param {*|Promise} seed any value or promise
- * @return {Promise} resulting array
- */
- return function list(generator, condition, seed) {
- var result = [];
-
- return unfold(generator, condition, append, seed)['yield'](result);
-
- function append(value, newSeed) {
- result.push(value);
- return newSeed;
- }
- };
-
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-
diff --git a/node_modules/when/when.js b/node_modules/when/when.js
deleted file mode 100644
index 65f8e4305..000000000
--- a/node_modules/when/when.js
+++ /dev/null
@@ -1,228 +0,0 @@
-/** @license MIT License (c) copyright 2010-2014 original author or authors */
-
-/**
- * Promises/A+ and when() implementation
- * when is part of the cujoJS family of libraries (http://cujojs.com/)
- * @author Brian Cavalier
- * @author John Hann
- */
-(function(define) { 'use strict';
-define(function (require) {
-
- var timed = require('./lib/decorators/timed');
- var array = require('./lib/decorators/array');
- var flow = require('./lib/decorators/flow');
- var fold = require('./lib/decorators/fold');
- var inspect = require('./lib/decorators/inspect');
- var generate = require('./lib/decorators/iterate');
- var progress = require('./lib/decorators/progress');
- var withThis = require('./lib/decorators/with');
- var unhandledRejection = require('./lib/decorators/unhandledRejection');
- var TimeoutError = require('./lib/TimeoutError');
-
- var Promise = [array, flow, fold, generate, progress,
- inspect, withThis, timed, unhandledRejection]
- .reduce(function(Promise, feature) {
- return feature(Promise);
- }, require('./lib/Promise'));
-
- var apply = require('./lib/apply')(Promise);
-
- // Public API
-
- when.promise = promise; // Create a pending promise
- when.resolve = Promise.resolve; // Create a resolved promise
- when.reject = Promise.reject; // Create a rejected promise
-
- when.lift = lift; // lift a function to return promises
- when['try'] = attempt; // call a function and return a promise
- when.attempt = attempt; // alias for when.try
-
- when.iterate = Promise.iterate; // DEPRECATED (use cujojs/most streams) Generate a stream of promises
- when.unfold = Promise.unfold; // DEPRECATED (use cujojs/most streams) Generate a stream of promises
-
- when.join = join; // Join 2 or more promises
-
- when.all = all; // Resolve a list of promises
- when.settle = settle; // Settle a list of promises
-
- when.any = lift(Promise.any); // One-winner race
- when.some = lift(Promise.some); // Multi-winner race
- when.race = lift(Promise.race); // First-to-settle race
-
- when.map = map; // Array.map() for promises
- when.filter = filter; // Array.filter() for promises
- when.reduce = lift(Promise.reduce); // Array.reduce() for promises
- when.reduceRight = lift(Promise.reduceRight); // Array.reduceRight() for promises
-
- when.isPromiseLike = isPromiseLike; // Is something promise-like, aka thenable
-
- when.Promise = Promise; // Promise constructor
- when.defer = defer; // Create a {promise, resolve, reject} tuple
-
- // Error types
-
- when.TimeoutError = TimeoutError;
-
- /**
- * Get a trusted promise for x, or by transforming x with onFulfilled
- *
- * @param {*} x
- * @param {function?} onFulfilled callback to be called when x is
- * successfully fulfilled. If promiseOrValue is an immediate value, callback
- * will be invoked immediately.
- * @param {function?} onRejected callback to be called when x is
- * rejected.
- * @param {function?} onProgress callback to be called when progress updates
- * are issued for x. @deprecated
- * @returns {Promise} a new promise that will fulfill with the return
- * value of callback or errback or the completion value of promiseOrValue if
- * callback and/or errback is not supplied.
- */
- function when(x, onFulfilled, onRejected, onProgress) {
- var p = Promise.resolve(x);
- if (arguments.length < 2) {
- return p;
- }
-
- return p.then(onFulfilled, onRejected, onProgress);
- }
-
- /**
- * Creates a new promise whose fate is determined by resolver.
- * @param {function} resolver function(resolve, reject, notify)
- * @returns {Promise} promise whose fate is determine by resolver
- */
- function promise(resolver) {
- return new Promise(resolver);
- }
-
- /**
- * Lift the supplied function, creating a version of f that returns
- * promises, and accepts promises as arguments.
- * @param {function} f
- * @returns {Function} version of f that returns promises
- */
- function lift(f) {
- return function() {
- for(var i=0, l=arguments.length, a=new Array(l); i<l; ++i) {
- a[i] = arguments[i];
- }
- return apply(f, this, a);
- };
- }
-
- /**
- * Call f in a future turn, with the supplied args, and return a promise
- * for the result.
- * @param {function} f
- * @returns {Promise}
- */
- function attempt(f /*, args... */) {
- /*jshint validthis:true */
- for(var i=0, l=arguments.length-1, a=new Array(l); i<l; ++i) {
- a[i] = arguments[i+1];
- }
- return apply(f, this, a);
- }
-
- /**
- * Creates a {promise, resolver} pair, either or both of which
- * may be given out safely to consumers.
- * @return {{promise: Promise, resolve: function, reject: function, notify: function}}
- */
- function defer() {
- return new Deferred();
- }
-
- function Deferred() {
- var p = Promise._defer();
-
- function resolve(x) { p._handler.resolve(x); }
- function reject(x) { p._handler.reject(x); }
- function notify(x) { p._handler.notify(x); }
-
- this.promise = p;
- this.resolve = resolve;
- this.reject = reject;
- this.notify = notify;
- this.resolver = { resolve: resolve, reject: reject, notify: notify };
- }
-
- /**
- * Determines if x is promise-like, i.e. a thenable object
- * NOTE: Will return true for *any thenable object*, and isn't truly
- * safe, since it may attempt to access the `then` property of x (i.e.
- * clever/malicious getters may do weird things)
- * @param {*} x anything
- * @returns {boolean} true if x is promise-like
- */
- function isPromiseLike(x) {
- return x && typeof x.then === 'function';
- }
-
- /**
- * Return a promise that will resolve only once all the supplied arguments
- * have resolved. The resolution value of the returned promise will be an array
- * containing the resolution values of each of the arguments.
- * @param {...*} arguments may be a mix of promises and values
- * @returns {Promise}
- */
- function join(/* ...promises */) {
- return Promise.all(arguments);
- }
-
- /**
- * Return a promise that will fulfill once all input promises have
- * fulfilled, or reject when any one input promise rejects.
- * @param {array|Promise} promises array (or promise for an array) of promises
- * @returns {Promise}
- */
- function all(promises) {
- return when(promises, Promise.all);
- }
-
- /**
- * Return a promise that will always fulfill with an array containing
- * the outcome states of all input promises. The returned promise
- * will only reject if `promises` itself is a rejected promise.
- * @param {array|Promise} promises array (or promise for an array) of promises
- * @returns {Promise} promise for array of settled state descriptors
- */
- function settle(promises) {
- return when(promises, Promise.settle);
- }
-
- /**
- * Promise-aware array map function, similar to `Array.prototype.map()`,
- * but input array may contain promises or values.
- * @param {Array|Promise} promises array of anything, may contain promises and values
- * @param {function(x:*, index:Number):*} mapFunc map function which may
- * return a promise or value
- * @returns {Promise} promise that will fulfill with an array of mapped values
- * or reject if any input promise rejects.
- */
- function map(promises, mapFunc) {
- return when(promises, function(promises) {
- return Promise.map(promises, mapFunc);
- });
- }
-
- /**
- * Filter the provided array of promises using the provided predicate. Input may
- * contain promises and values
- * @param {Array|Promise} promises array of promises and values
- * @param {function(x:*, index:Number):boolean} predicate filtering predicate.
- * Must return truthy (or promise for truthy) for items to retain.
- * @returns {Promise} promise that will fulfill with an array containing all items
- * for which predicate returned truthy.
- */
- function filter(promises, predicate) {
- return when(promises, function(promises) {
- return Promise.filter(promises, predicate);
- });
- }
-
- return when;
-});
-})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
diff --git a/node_modules/wordwrap/LICENSE b/node_modules/wordwrap/LICENSE
deleted file mode 100644
index ee27ba4b4..000000000
--- a/node_modules/wordwrap/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-This software is released under the MIT license:
-
-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.
diff --git a/node_modules/wordwrap/package.json b/node_modules/wordwrap/package.json
index 5339ac09b..fdff683e1 100644
--- a/node_modules/wordwrap/package.json
+++ b/node_modules/wordwrap/package.json
@@ -1,34 +1,37 @@
{
- "name": "wordwrap",
- "description": "Wrap those words. Show them at what columns to start and stop.",
- "version": "1.0.0",
- "repository": {
- "type": "git",
- "url": "git://github.com/substack/node-wordwrap.git"
- },
- "main": "./index.js",
- "keywords": [
- "word",
- "wrap",
- "rule",
- "format",
- "column"
- ],
- "directories": {
- "lib": ".",
- "example": "example",
- "test": "test"
- },
- "scripts": {
- "test": "expresso"
- },
- "devDependencies": {
- "tape": "^4.0.0"
- },
- "license": "MIT",
- "author": {
- "name": "James Halliday",
- "email": "mail@substack.net",
- "url": "http://substack.net"
- }
+ "name" : "wordwrap",
+ "description" : "Wrap those words. Show them at what columns to start and stop.",
+ "version" : "0.0.2",
+ "repository" : {
+ "type" : "git",
+ "url" : "git://github.com/substack/node-wordwrap.git"
+ },
+ "main" : "./index.js",
+ "keywords" : [
+ "word",
+ "wrap",
+ "rule",
+ "format",
+ "column"
+ ],
+ "directories" : {
+ "lib" : ".",
+ "example" : "example",
+ "test" : "test"
+ },
+ "scripts" : {
+ "test" : "expresso"
+ },
+ "devDependencies" : {
+ "expresso" : "=0.7.x"
+ },
+ "engines" : {
+ "node" : ">=0.4.0"
+ },
+ "license" : "MIT/X11",
+ "author" : {
+ "name" : "James Halliday",
+ "email" : "mail@substack.net",
+ "url" : "http://substack.net"
+ }
}
diff --git a/node_modules/wordwrap/test/break.js b/node_modules/wordwrap/test/break.js
index 7d0e8b54c..749292ecc 100644
--- a/node_modules/wordwrap/test/break.js
+++ b/node_modules/wordwrap/test/break.js
@@ -1,7 +1,7 @@
-var test = require('tape');
+var assert = require('assert');
var wordwrap = require('../');
-test('hard', function (t) {
+exports.hard = function () {
var s = 'Assert from {"type":"equal","ok":false,"found":1,"wanted":2,'
+ '"stack":[],"id":"b7ddcd4c409de8799542a74d1a04689b",'
+ '"browser":"chrome/6.0"}'
@@ -9,24 +9,22 @@ test('hard', function (t) {
var s_ = wordwrap.hard(80)(s);
var lines = s_.split('\n');
- t.equal(lines.length, 2);
- t.ok(lines[0].length < 80);
- t.ok(lines[1].length < 80);
+ assert.equal(lines.length, 2);
+ assert.ok(lines[0].length < 80);
+ assert.ok(lines[1].length < 80);
- t.equal(s, s_.replace(/\n/g, ''));
- t.end();
-});
+ assert.equal(s, s_.replace(/\n/g, ''));
+};
-test('break', function (t) {
+exports.break = function () {
var s = new Array(55+1).join('a');
var s_ = wordwrap.hard(20)(s);
var lines = s_.split('\n');
- t.equal(lines.length, 3);
- t.ok(lines[0].length === 20);
- t.ok(lines[1].length === 20);
- t.ok(lines[2].length === 15);
+ assert.equal(lines.length, 3);
+ assert.ok(lines[0].length === 20);
+ assert.ok(lines[1].length === 20);
+ assert.ok(lines[2].length === 15);
- t.equal(s, s_.replace(/\n/g, ''));
- t.end();
-});
+ assert.equal(s, s_.replace(/\n/g, ''));
+};
diff --git a/node_modules/wordwrap/test/wrap.js b/node_modules/wordwrap/test/wrap.js
index 01ea47185..0cfb76d17 100644
--- a/node_modules/wordwrap/test/wrap.js
+++ b/node_modules/wordwrap/test/wrap.js
@@ -1,33 +1,31 @@
-var test = require('tape');
-var wordwrap = require('../');
+var assert = require('assert');
+var wordwrap = require('wordwrap');
var fs = require('fs');
var idleness = fs.readFileSync(__dirname + '/idleness.txt', 'utf8');
-test('stop80', function (t) {
+exports.stop80 = function () {
var lines = wordwrap(80)(idleness).split(/\n/);
var words = idleness.split(/\s+/);
lines.forEach(function (line) {
- t.ok(line.length <= 80, 'line > 80 columns');
+ assert.ok(line.length <= 80, 'line > 80 columns');
var chunks = line.match(/\S/) ? line.split(/\s+/) : [];
- t.deepEqual(chunks, words.splice(0, chunks.length));
+ assert.deepEqual(chunks, words.splice(0, chunks.length));
});
- t.end();
-});
+};
-test('start20stop60', function (t) {
+exports.start20stop60 = function () {
var lines = wordwrap(20, 100)(idleness).split(/\n/);
var words = idleness.split(/\s+/);
lines.forEach(function (line) {
- t.ok(line.length <= 100, 'line > 100 columns');
+ assert.ok(line.length <= 100, 'line > 100 columns');
var chunks = line
.split(/\s+/)
.filter(function (x) { return x.match(/\S/) })
;
- t.deepEqual(chunks, words.splice(0, chunks.length));
- t.deepEqual(line.slice(0, 20), new Array(20 + 1).join(' '));
+ assert.deepEqual(chunks, words.splice(0, chunks.length));
+ assert.deepEqual(line.slice(0, 20), new Array(20 + 1).join(' '));
});
- t.end();
-});
+};
diff --git a/node_modules/xml2js/LICENSE b/node_modules/xml2js/LICENSE
deleted file mode 100644
index e3b4222a6..000000000
--- a/node_modules/xml2js/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright 2010, 2011, 2012, 2013. All rights reserved.
-
-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.
diff --git a/node_modules/xml2js/README.md b/node_modules/xml2js/README.md
deleted file mode 100644
index 508b15fd8..000000000
--- a/node_modules/xml2js/README.md
+++ /dev/null
@@ -1,395 +0,0 @@
-node-xml2js
-===========
-
-Ever had the urge to parse XML? And wanted to access the data in some sane,
-easy way? Don't want to compile a C parser, for whatever reason? Then xml2js is
-what you're looking for!
-
-Description
-===========
-
-Simple XML to JavaScript object converter. It supports bi-directional conversion.
-Uses [sax-js](https://github.com/isaacs/sax-js/) and
-[xmlbuilder-js](https://github.com/oozcitak/xmlbuilder-js/).
-
-Note: If you're looking for a full DOM parser, you probably want
-[JSDom](https://github.com/tmpvar/jsdom).
-
-Installation
-============
-
-Simplest way to install `xml2js` is to use [npm](http://npmjs.org), just `npm
-install xml2js` which will download xml2js and all dependencies.
-
-xml2js is also available via [Bower](http://bower.io/), just `bower install
-xml2js` which will download xml2js and all dependencies.
-
-Usage
-=====
-
-No extensive tutorials required because you are a smart developer! The task of
-parsing XML should be an easy one, so let's make it so! Here's some examples.
-
-Shoot-and-forget usage
-----------------------
-
-You want to parse XML as simple and easy as possible? It's dangerous to go
-alone, take this:
-
-```javascript
-var parseString = require('xml2js').parseString;
-var xml = "<root>Hello xml2js!</root>"
-parseString(xml, function (err, result) {
- console.dir(result);
-});
-```
-
-Can't get easier than this, right? This works starting with `xml2js` 0.2.3.
-With CoffeeScript it looks like this:
-
-```coffeescript
-{parseString} = require 'xml2js'
-xml = "<root>Hello xml2js!</root>"
-parseString xml, (err, result) ->
- console.dir result
-```
-
-If you need some special options, fear not, `xml2js` supports a number of
-options (see below), you can specify these as second argument:
-
-```javascript
-parseString(xml, {trim: true}, function (err, result) {
-});
-```
-
-Simple as pie usage
--------------------
-
-That's right, if you have been using xml-simple or a home-grown
-wrapper, this was added in 0.1.11 just for you:
-
-```javascript
-var fs = require('fs'),
- xml2js = require('xml2js');
-
-var parser = new xml2js.Parser();
-fs.readFile(__dirname + '/foo.xml', function(err, data) {
- parser.parseString(data, function (err, result) {
- console.dir(result);
- console.log('Done');
- });
-});
-```
-
-Look ma, no event listeners!
-
-You can also use `xml2js` from
-[CoffeeScript](https://github.com/jashkenas/coffeescript), further reducing
-the clutter:
-
-```coffeescript
-fs = require 'fs',
-xml2js = require 'xml2js'
-
-parser = new xml2js.Parser()
-fs.readFile __dirname + '/foo.xml', (err, data) ->
- parser.parseString data, (err, result) ->
- console.dir result
- console.log 'Done.'
-```
-
-But what happens if you forget the `new` keyword to create a new `Parser`? In
-the middle of a nightly coding session, it might get lost, after all. Worry
-not, we got you covered! Starting with 0.2.8 you can also leave it out, in
-which case `xml2js` will helpfully add it for you, no bad surprises and
-inexplicable bugs!
-
-Parsing multiple files
-----------------------
-
-If you want to parse multiple files, you have multiple possibilities:
-
- * You can create one `xml2js.Parser` per file. That's the recommended one
- and is promised to always *just work*.
- * You can call `reset()` on your parser object.
- * You can hope everything goes well anyway. This behaviour is not
- guaranteed work always, if ever. Use option #1 if possible. Thanks!
-
-So you wanna some JSON?
------------------------
-
-Just wrap the `result` object in a call to `JSON.stringify` like this
-`JSON.stringify(result)`. You get a string containing the JSON representation
-of the parsed object that you can feed to JSON-hungry consumers.
-
-Displaying results
-------------------
-
-You might wonder why, using `console.dir` or `console.log` the output at some
-level is only `[Object]`. Don't worry, this is not because `xml2js` got lazy.
-That's because Node uses `util.inspect` to convert the object into strings and
-that function stops after `depth=2` which is a bit low for most XML.
-
-To display the whole deal, you can use `console.log(util.inspect(result, false,
-null))`, which displays the whole result.
-
-So much for that, but what if you use
-[eyes](https://github.com/cloudhead/eyes.js) for nice colored output and it
-truncates the output with `…`? Don't fear, there's also a solution for that,
-you just need to increase the `maxLength` limit by creating a custom inspector
-`var inspect = require('eyes').inspector({maxLength: false})` and then you can
-easily `inspect(result)`.
-
-XML builder usage
------------------
-
-Since 0.4.0, objects can be also be used to build XML:
-
-```javascript
-var fs = require('fs'),
- xml2js = require('xml2js');
-
-var obj = {name: "Super", Surname: "Man", age: 23};
-
-var builder = new xml2js.Builder();
-var xml = builder.buildObject(obj);
-```
-
-At the moment, a one to one bi-directional conversion is guaranteed only for
-default configuration, except for `attrkey`, `charkey` and `explicitArray` options
-you can redefine to your taste. Writing CDATA is supported via setting the `cdata`
-option to `true`.
-
-Processing attribute, tag names and values
-------------------------------------------
-
-Since 0.4.1 you can optionally provide the parser with attribute name and tag name processors as well as element value processors (Since 0.4.14, you can also optionally provide the parser with attribute value processors):
-
-```javascript
-
-function nameToUpperCase(name){
- return name.toUpperCase();
-}
-
-//transform all attribute and tag names and values to uppercase
-parseString(xml, {
- tagNameProcessors: [nameToUpperCase],
- attrNameProcessors: [nameToUpperCase],
- valueProcessors: [nameToUpperCase],
- attrValueProcessors: [nameToUpperCase]},
- function (err, result) {
- // processed data
-});
-```
-
-The `tagNameProcessors`, `attrNameProcessors`, `attrValueProcessors` and `valueProcessors` options
-accept an `Array` of functions with the following signature:
-
-```javascript
-function (name){
- //do something with `name`
- return name
-}
-```
-
-Some processors are provided out-of-the-box and can be found in `lib/processors.js`:
-
-- `normalize`: transforms the name to lowercase.
-(Automatically used when `options.normalize` is set to `true`)
-
-- `firstCharLowerCase`: transforms the first character to lower case.
-E.g. 'MyTagName' becomes 'myTagName'
-
-- `stripPrefix`: strips the xml namespace prefix. E.g `<foo:Bar/>` will become 'Bar'.
-(N.B.: the `xmlns` prefix is NOT stripped.)
-
-- `parseNumbers`: parses integer-like strings as integers and float-like strings as floats
-E.g. "0" becomes 0 and "15.56" becomes 15.56
-
-- `parseBooleans`: parses boolean-like strings to booleans
-E.g. "true" becomes true and "False" becomes false
-
-Options
-=======
-
-Apart from the default settings, there are a number of options that can be
-specified for the parser. Options are specified by ``new Parser({optionName:
-value})``. Possible options are:
-
- * `attrkey` (default: `$`): Prefix that is used to access the attributes.
- Version 0.1 default was `@`.
- * `charkey` (default: `_`): Prefix that is used to access the character
- content. Version 0.1 default was `#`.
- * `explicitCharkey` (default: `false`)
- * `trim` (default: `false`): Trim the whitespace at the beginning and end of
- text nodes.
- * `normalizeTags` (default: `false`): Normalize all tag names to lowercase.
- * `normalize` (default: `false`): Trim whitespaces inside text nodes.
- * `explicitRoot` (default: `true`): Set this if you want to get the root
- node in the resulting object.
- * `emptyTag` (default: `''`): what will the value of empty nodes be.
- * `explicitArray` (default: `true`): Always put child nodes in an array if
- true; otherwise an array is created only if there is more than one.
- * `ignoreAttrs` (default: `false`): Ignore all XML attributes and only create
- text nodes.
- * `mergeAttrs` (default: `false`): Merge attributes and child elements as
- properties of the parent, instead of keying attributes off a child
- attribute object. This option is ignored if `ignoreAttrs` is `false`.
- * `validator` (default `null`): You can specify a callable that validates
- the resulting structure somehow, however you want. See unit tests
- for an example.
- * `xmlns` (default `false`): Give each element a field usually called '$ns'
- (the first character is the same as attrkey) that contains its local name
- and namespace URI.
- * `explicitChildren` (default `false`): Put child elements to separate
- property. Doesn't work with `mergeAttrs = true`. If element has no children
- then "children" won't be created. Added in 0.2.5.
- * `childkey` (default `$$`): Prefix that is used to access child elements if
- `explicitChildren` is set to `true`. Added in 0.2.5.
- * `preserveChildrenOrder` (default `false`): Modifies the behavior of
- `explicitChildren` so that the value of the "children" property becomes an
- ordered array. When this is `true`, every node will also get a `#name` field
- whose value will correspond to the XML nodeName, so that you may iterate
- the "children" array and still be able to determine node names. The named
- (and potentially unordered) properties are also retained in this
- configuration at the same level as the ordered "children" array. Added in
- 0.4.9.
- * `charsAsChildren` (default `false`): Determines whether chars should be
- considered children if `explicitChildren` is on. Added in 0.2.5.
- * `includeWhiteChars` (default `false`): Determines whether whitespace-only
- text nodes should be included. Added in 0.4.17.
- * `async` (default `false`): Should the callbacks be async? This *might* be
- an incompatible change if your code depends on sync execution of callbacks.
- Future versions of `xml2js` might change this default, so the recommendation
- is to not depend on sync execution anyway. Added in 0.2.6.
- * `strict` (default `true`): Set sax-js to strict or non-strict parsing mode.
- Defaults to `true` which is *highly* recommended, since parsing HTML which
- is not well-formed XML might yield just about anything. Added in 0.2.7.
- * `attrNameProcessors` (default: `null`): Allows the addition of attribute
- name processing functions. Accepts an `Array` of functions with following
- signature:
- ```javascript
- function (name){
- //do something with `name`
- return name
- }
- ```
- Added in 0.4.14
- * `attrValueProcessors` (default: `null`): Allows the addition of attribute
- value processing functions. Accepts an `Array` of functions with following
- signature:
- ```javascript
- function (name){
- //do something with `name`
- return name
- }
- ```
- Added in 0.4.1
- * `tagNameProcessors` (default: `null`): Allows the addition of tag name
- processing functions. Accepts an `Array` of functions with following
- signature:
- ```javascript
- function (name){
- //do something with `name`
- return name
- }
- ```
- Added in 0.4.1
- * `valueProcessors` (default: `null`): Allows the addition of element value
- processing functions. Accepts an `Array` of functions with following
- signature:
- ```javascript
- function (name){
- //do something with `name`
- return name
- }
- ```
- Added in 0.4.6
-
-Options for the `Builder` class
--------------------------------
-These options are specified by ``new Builder({optionName: value})``.
-Possible options are:
-
- * `rootName` (default `root` or the root key name): root element name to be used in case
- `explicitRoot` is `false` or to override the root element name.
- * `renderOpts` (default `{ 'pretty': true, 'indent': ' ', 'newline': '\n' }`):
- Rendering options for xmlbuilder-js.
- * pretty: prettify generated XML
- * indent: whitespace for indentation (only when pretty)
- * newline: newline char (only when pretty)
- * `xmldec` (default `{ 'version': '1.0', 'encoding': 'UTF-8', 'standalone': true }`:
- XML declaration attributes.
- * `xmldec.version` A version number string, e.g. 1.0
- * `xmldec.encoding` Encoding declaration, e.g. UTF-8
- * `xmldec.standalone` standalone document declaration: true or false
- * `doctype` (default `null`): optional DTD. Eg. `{'ext': 'hello.dtd'}`
- * `headless` (default: `false`): omit the XML header. Added in 0.4.3.
- * `allowSurrogateChars` (default: `false`): allows using characters from the Unicode
- surrogate blocks.
- * `cdata` (default: `false`): wrap text nodes in `<![CDATA[ ... ]]>` instead of
- escaping when necessary. Does not add `<![CDATA[ ... ]]>` if it is not required.
- Added in 0.4.5.
-
-`renderOpts`, `xmldec`,`doctype` and `headless` pass through to
-[xmlbuilder-js](https://github.com/oozcitak/xmlbuilder-js).
-
-Updating to new version
-=======================
-
-Version 0.2 changed the default parsing settings, but version 0.1.14 introduced
-the default settings for version 0.2, so these settings can be tried before the
-migration.
-
-```javascript
-var xml2js = require('xml2js');
-var parser = new xml2js.Parser(xml2js.defaults["0.2"]);
-```
-
-To get the 0.1 defaults in version 0.2 you can just use
-`xml2js.defaults["0.1"]` in the same place. This provides you with enough time
-to migrate to the saner way of parsing in `xml2js` 0.2. We try to make the
-migration as simple and gentle as possible, but some breakage cannot be
-avoided.
-
-So, what exactly did change and why? In 0.2 we changed some defaults to parse
-the XML in a more universal and sane way. So we disabled `normalize` and `trim`
-so `xml2js` does not cut out any text content. You can reenable this at will of
-course. A more important change is that we return the root tag in the resulting
-JavaScript structure via the `explicitRoot` setting, so you need to access the
-first element. This is useful for anybody who wants to know what the root node
-is and preserves more information. The last major change was to enable
-`explicitArray`, so everytime it is possible that one might embed more than one
-sub-tag into a tag, xml2js >= 0.2 returns an array even if the array just
-includes one element. This is useful when dealing with APIs that return
-variable amounts of subtags.
-
-Running tests, development
-==========================
-
-[![Build Status](https://travis-ci.org/Leonidas-from-XIV/node-xml2js.svg?branch=master)](https://travis-ci.org/Leonidas-from-XIV/node-xml2js)
-[![Coverage Status](https://coveralls.io/repos/Leonidas-from-XIV/node-xml2js/badge.svg?branch=)](https://coveralls.io/r/Leonidas-from-XIV/node-xml2js?branch=master)
-[![Dependency Status](https://david-dm.org/Leonidas-from-XIV/node-xml2js.svg)](https://david-dm.org/Leonidas-from-XIV/node-xml2js)
-
-The development requirements are handled by npm, you just need to install them.
-We also have a number of unit tests, they can be run using `npm test` directly
-from the project root. This runs zap to discover all the tests and execute
-them.
-
-If you like to contribute, keep in mind that `xml2js` is written in
-CoffeeScript, so don't develop on the JavaScript files that are checked into
-the repository for convenience reasons. Also, please write some unit test to
-check your behaviour and if it is some user-facing thing, add some
-documentation to this README, so people will know it exists. Thanks in advance!
-
-Getting support
-===============
-
-Please, if you have a problem with the library, first make sure you read this
-README. If you read this far, thanks, you're good. Then, please make sure your
-problem really is with `xml2js`. It is? Okay, then I'll look at it. Send me a
-mail and we can talk. Please don't open issues, as I don't think that is the
-proper forum for support problems. Some problems might as well really be bugs
-in `xml2js`, if so I'll let you know to open an issue instead :)
-
-But if you know you really found a bug, feel free to open an issue instead.
diff --git a/node_modules/xml2js/lib/bom.js b/node_modules/xml2js/lib/bom.js
deleted file mode 100644
index 3a784795b..000000000
--- a/node_modules/xml2js/lib/bom.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Generated by CoffeeScript 1.10.0
-(function() {
- "use strict";
- exports.stripBOM = function(str) {
- if (str[0] === '\uFEFF') {
- return str.substring(1);
- } else {
- return str;
- }
- };
-
-}).call(this);
diff --git a/node_modules/xml2js/lib/processors.js b/node_modules/xml2js/lib/processors.js
deleted file mode 100644
index 31ccde280..000000000
--- a/node_modules/xml2js/lib/processors.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Generated by CoffeeScript 1.10.0
-(function() {
- "use strict";
- var prefixMatch;
-
- prefixMatch = new RegExp(/(?!xmlns)^.*:/);
-
- exports.normalize = function(str) {
- return str.toLowerCase();
- };
-
- exports.firstCharLowerCase = function(str) {
- return str.charAt(0).toLowerCase() + str.slice(1);
- };
-
- exports.stripPrefix = function(str) {
- return str.replace(prefixMatch, '');
- };
-
- exports.parseNumbers = function(str) {
- if (!isNaN(str)) {
- str = str % 1 === 0 ? parseInt(str, 10) : parseFloat(str);
- }
- return str;
- };
-
- exports.parseBooleans = function(str) {
- if (/^(?:true|false)$/i.test(str)) {
- str = str.toLowerCase() === 'true';
- }
- return str;
- };
-
-}).call(this);
diff --git a/node_modules/xml2js/lib/xml2js.js b/node_modules/xml2js/lib/xml2js.js
deleted file mode 100644
index 26e34e76b..000000000
--- a/node_modules/xml2js/lib/xml2js.js
+++ /dev/null
@@ -1,543 +0,0 @@
-// Generated by CoffeeScript 1.10.0
-(function() {
- "use strict";
- var bom, builder, escapeCDATA, events, isEmpty, processName, processors, requiresCDATA, sax, setImmediate, wrapCDATA,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty,
- bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
-
- sax = require('sax');
-
- events = require('events');
-
- builder = require('xmlbuilder');
-
- bom = require('./bom');
-
- processors = require('./processors');
-
- setImmediate = require('timers').setImmediate;
-
- isEmpty = function(thing) {
- return typeof thing === "object" && (thing != null) && Object.keys(thing).length === 0;
- };
-
- processName = function(processors, processedName) {
- var i, len, process;
- for (i = 0, len = processors.length; i < len; i++) {
- process = processors[i];
- processedName = process(processedName);
- }
- return processedName;
- };
-
- requiresCDATA = function(entry) {
- return entry.indexOf('&') >= 0 || entry.indexOf('>') >= 0 || entry.indexOf('<') >= 0;
- };
-
- wrapCDATA = function(entry) {
- return "<![CDATA[" + (escapeCDATA(entry)) + "]]>";
- };
-
- escapeCDATA = function(entry) {
- return entry.replace(']]>', ']]]]><![CDATA[>');
- };
-
- exports.processors = processors;
-
- exports.defaults = {
- "0.1": {
- explicitCharkey: false,
- trim: true,
- normalize: true,
- normalizeTags: false,
- attrkey: "@",
- charkey: "#",
- explicitArray: false,
- ignoreAttrs: false,
- mergeAttrs: false,
- explicitRoot: false,
- validator: null,
- xmlns: false,
- explicitChildren: false,
- childkey: '@@',
- charsAsChildren: false,
- includeWhiteChars: false,
- async: false,
- strict: true,
- attrNameProcessors: null,
- attrValueProcessors: null,
- tagNameProcessors: null,
- valueProcessors: null,
- emptyTag: ''
- },
- "0.2": {
- explicitCharkey: false,
- trim: false,
- normalize: false,
- normalizeTags: false,
- attrkey: "$",
- charkey: "_",
- explicitArray: true,
- ignoreAttrs: false,
- mergeAttrs: false,
- explicitRoot: true,
- validator: null,
- xmlns: false,
- explicitChildren: false,
- preserveChildrenOrder: false,
- childkey: '$$',
- charsAsChildren: false,
- includeWhiteChars: false,
- async: false,
- strict: true,
- attrNameProcessors: null,
- attrValueProcessors: null,
- tagNameProcessors: null,
- valueProcessors: null,
- rootName: 'root',
- xmldec: {
- 'version': '1.0',
- 'encoding': 'UTF-8',
- 'standalone': true
- },
- doctype: null,
- renderOpts: {
- 'pretty': true,
- 'indent': ' ',
- 'newline': '\n'
- },
- headless: false,
- chunkSize: 10000,
- emptyTag: '',
- cdata: false
- }
- };
-
- exports.ValidationError = (function(superClass) {
- extend(ValidationError, superClass);
-
- function ValidationError(message) {
- this.message = message;
- }
-
- return ValidationError;
-
- })(Error);
-
- exports.Builder = (function() {
- function Builder(opts) {
- var key, ref, value;
- this.options = {};
- ref = exports.defaults["0.2"];
- for (key in ref) {
- if (!hasProp.call(ref, key)) continue;
- value = ref[key];
- this.options[key] = value;
- }
- for (key in opts) {
- if (!hasProp.call(opts, key)) continue;
- value = opts[key];
- this.options[key] = value;
- }
- }
-
- Builder.prototype.buildObject = function(rootObj) {
- var attrkey, charkey, render, rootElement, rootName;
- attrkey = this.options.attrkey;
- charkey = this.options.charkey;
- if ((Object.keys(rootObj).length === 1) && (this.options.rootName === exports.defaults['0.2'].rootName)) {
- rootName = Object.keys(rootObj)[0];
- rootObj = rootObj[rootName];
- } else {
- rootName = this.options.rootName;
- }
- render = (function(_this) {
- return function(element, obj) {
- var attr, child, entry, index, key, value;
- if (typeof obj !== 'object') {
- if (_this.options.cdata && requiresCDATA(obj)) {
- element.raw(wrapCDATA(obj));
- } else {
- element.txt(obj);
- }
- } else {
- for (key in obj) {
- if (!hasProp.call(obj, key)) continue;
- child = obj[key];
- if (key === attrkey) {
- if (typeof child === "object") {
- for (attr in child) {
- value = child[attr];
- element = element.att(attr, value);
- }
- }
- } else if (key === charkey) {
- if (_this.options.cdata && requiresCDATA(child)) {
- element = element.raw(wrapCDATA(child));
- } else {
- element = element.txt(child);
- }
- } else if (Array.isArray(child)) {
- for (index in child) {
- if (!hasProp.call(child, index)) continue;
- entry = child[index];
- if (typeof entry === 'string') {
- if (_this.options.cdata && requiresCDATA(entry)) {
- element = element.ele(key).raw(wrapCDATA(entry)).up();
- } else {
- element = element.ele(key, entry).up();
- }
- } else {
- element = render(element.ele(key), entry).up();
- }
- }
- } else if (typeof child === "object") {
- element = render(element.ele(key), child).up();
- } else {
- if (typeof child === 'string' && _this.options.cdata && requiresCDATA(child)) {
- element = element.ele(key).raw(wrapCDATA(child)).up();
- } else {
- if (child == null) {
- child = '';
- }
- element = element.ele(key, child.toString()).up();
- }
- }
- }
- }
- return element;
- };
- })(this);
- rootElement = builder.create(rootName, this.options.xmldec, this.options.doctype, {
- headless: this.options.headless,
- allowSurrogateChars: this.options.allowSurrogateChars
- });
- return render(rootElement, rootObj).end(this.options.renderOpts);
- };
-
- return Builder;
-
- })();
-
- exports.Parser = (function(superClass) {
- extend(Parser, superClass);
-
- function Parser(opts) {
- this.parseString = bind(this.parseString, this);
- this.reset = bind(this.reset, this);
- this.assignOrPush = bind(this.assignOrPush, this);
- this.processAsync = bind(this.processAsync, this);
- var key, ref, value;
- if (!(this instanceof exports.Parser)) {
- return new exports.Parser(opts);
- }
- this.options = {};
- ref = exports.defaults["0.2"];
- for (key in ref) {
- if (!hasProp.call(ref, key)) continue;
- value = ref[key];
- this.options[key] = value;
- }
- for (key in opts) {
- if (!hasProp.call(opts, key)) continue;
- value = opts[key];
- this.options[key] = value;
- }
- if (this.options.xmlns) {
- this.options.xmlnskey = this.options.attrkey + "ns";
- }
- if (this.options.normalizeTags) {
- if (!this.options.tagNameProcessors) {
- this.options.tagNameProcessors = [];
- }
- this.options.tagNameProcessors.unshift(processors.normalize);
- }
- this.reset();
- }
-
- Parser.prototype.processAsync = function() {
- var chunk, err, error1;
- try {
- if (this.remaining.length <= this.options.chunkSize) {
- chunk = this.remaining;
- this.remaining = '';
- this.saxParser = this.saxParser.write(chunk);
- return this.saxParser.close();
- } else {
- chunk = this.remaining.substr(0, this.options.chunkSize);
- this.remaining = this.remaining.substr(this.options.chunkSize, this.remaining.length);
- this.saxParser = this.saxParser.write(chunk);
- return setImmediate(this.processAsync);
- }
- } catch (error1) {
- err = error1;
- if (!this.saxParser.errThrown) {
- this.saxParser.errThrown = true;
- return this.emit(err);
- }
- }
- };
-
- Parser.prototype.assignOrPush = function(obj, key, newValue) {
- if (!(key in obj)) {
- if (!this.options.explicitArray) {
- return obj[key] = newValue;
- } else {
- return obj[key] = [newValue];
- }
- } else {
- if (!(obj[key] instanceof Array)) {
- obj[key] = [obj[key]];
- }
- return obj[key].push(newValue);
- }
- };
-
- Parser.prototype.reset = function() {
- var attrkey, charkey, ontext, stack;
- this.removeAllListeners();
- this.saxParser = sax.parser(this.options.strict, {
- trim: false,
- normalize: false,
- xmlns: this.options.xmlns
- });
- this.saxParser.errThrown = false;
- this.saxParser.onerror = (function(_this) {
- return function(error) {
- _this.saxParser.resume();
- if (!_this.saxParser.errThrown) {
- _this.saxParser.errThrown = true;
- return _this.emit("error", error);
- }
- };
- })(this);
- this.saxParser.onend = (function(_this) {
- return function() {
- if (!_this.saxParser.ended) {
- _this.saxParser.ended = true;
- return _this.emit("end", _this.resultObject);
- }
- };
- })(this);
- this.saxParser.ended = false;
- this.EXPLICIT_CHARKEY = this.options.explicitCharkey;
- this.resultObject = null;
- stack = [];
- attrkey = this.options.attrkey;
- charkey = this.options.charkey;
- this.saxParser.onopentag = (function(_this) {
- return function(node) {
- var key, newValue, obj, processedKey, ref;
- obj = {};
- obj[charkey] = "";
- if (!_this.options.ignoreAttrs) {
- ref = node.attributes;
- for (key in ref) {
- if (!hasProp.call(ref, key)) continue;
- if (!(attrkey in obj) && !_this.options.mergeAttrs) {
- obj[attrkey] = {};
- }
- newValue = _this.options.attrValueProcessors ? processName(_this.options.attrValueProcessors, node.attributes[key]) : node.attributes[key];
- processedKey = _this.options.attrNameProcessors ? processName(_this.options.attrNameProcessors, key) : key;
- if (_this.options.mergeAttrs) {
- _this.assignOrPush(obj, processedKey, newValue);
- } else {
- obj[attrkey][processedKey] = newValue;
- }
- }
- }
- obj["#name"] = _this.options.tagNameProcessors ? processName(_this.options.tagNameProcessors, node.name) : node.name;
- if (_this.options.xmlns) {
- obj[_this.options.xmlnskey] = {
- uri: node.uri,
- local: node.local
- };
- }
- return stack.push(obj);
- };
- })(this);
- this.saxParser.onclosetag = (function(_this) {
- return function() {
- var cdata, emptyStr, err, error1, key, node, nodeName, obj, objClone, old, s, xpath;
- obj = stack.pop();
- nodeName = obj["#name"];
- if (!_this.options.explicitChildren || !_this.options.preserveChildrenOrder) {
- delete obj["#name"];
- }
- if (obj.cdata === true) {
- cdata = obj.cdata;
- delete obj.cdata;
- }
- s = stack[stack.length - 1];
- if (obj[charkey].match(/^\s*$/) && !cdata) {
- emptyStr = obj[charkey];
- delete obj[charkey];
- } else {
- if (_this.options.trim) {
- obj[charkey] = obj[charkey].trim();
- }
- if (_this.options.normalize) {
- obj[charkey] = obj[charkey].replace(/\s{2,}/g, " ").trim();
- }
- obj[charkey] = _this.options.valueProcessors ? processName(_this.options.valueProcessors, obj[charkey]) : obj[charkey];
- if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) {
- obj = obj[charkey];
- }
- }
- if (isEmpty(obj)) {
- obj = _this.options.emptyTag !== '' ? _this.options.emptyTag : emptyStr;
- }
- if (_this.options.validator != null) {
- xpath = "/" + ((function() {
- var i, len, results;
- results = [];
- for (i = 0, len = stack.length; i < len; i++) {
- node = stack[i];
- results.push(node["#name"]);
- }
- return results;
- })()).concat(nodeName).join("/");
- try {
- obj = _this.options.validator(xpath, s && s[nodeName], obj);
- } catch (error1) {
- err = error1;
- _this.emit("error", err);
- }
- }
- if (_this.options.explicitChildren && !_this.options.mergeAttrs && typeof obj === 'object') {
- if (!_this.options.preserveChildrenOrder) {
- node = {};
- if (_this.options.attrkey in obj) {
- node[_this.options.attrkey] = obj[_this.options.attrkey];
- delete obj[_this.options.attrkey];
- }
- if (!_this.options.charsAsChildren && _this.options.charkey in obj) {
- node[_this.options.charkey] = obj[_this.options.charkey];
- delete obj[_this.options.charkey];
- }
- if (Object.getOwnPropertyNames(obj).length > 0) {
- node[_this.options.childkey] = obj;
- }
- obj = node;
- } else if (s) {
- s[_this.options.childkey] = s[_this.options.childkey] || [];
- objClone = {};
- for (key in obj) {
- if (!hasProp.call(obj, key)) continue;
- objClone[key] = obj[key];
- }
- s[_this.options.childkey].push(objClone);
- delete obj["#name"];
- if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) {
- obj = obj[charkey];
- }
- }
- }
- if (stack.length > 0) {
- return _this.assignOrPush(s, nodeName, obj);
- } else {
- if (_this.options.explicitRoot) {
- old = obj;
- obj = {};
- obj[nodeName] = old;
- }
- _this.resultObject = obj;
- _this.saxParser.ended = true;
- return _this.emit("end", _this.resultObject);
- }
- };
- })(this);
- ontext = (function(_this) {
- return function(text) {
- var charChild, s;
- s = stack[stack.length - 1];
- if (s) {
- s[charkey] += text;
- if (_this.options.explicitChildren && _this.options.preserveChildrenOrder && _this.options.charsAsChildren && (_this.options.includeWhiteChars || text.replace(/\\n/g, '').trim() !== '')) {
- s[_this.options.childkey] = s[_this.options.childkey] || [];
- charChild = {
- '#name': '__text__'
- };
- charChild[charkey] = text;
- if (_this.options.normalize) {
- charChild[charkey] = charChild[charkey].replace(/\s{2,}/g, " ").trim();
- }
- s[_this.options.childkey].push(charChild);
- }
- return s;
- }
- };
- })(this);
- this.saxParser.ontext = ontext;
- return this.saxParser.oncdata = (function(_this) {
- return function(text) {
- var s;
- s = ontext(text);
- if (s) {
- return s.cdata = true;
- }
- };
- })(this);
- };
-
- Parser.prototype.parseString = function(str, cb) {
- var err, error1;
- if ((cb != null) && typeof cb === "function") {
- this.on("end", function(result) {
- this.reset();
- return cb(null, result);
- });
- this.on("error", function(err) {
- this.reset();
- return cb(err);
- });
- }
- try {
- str = str.toString();
- if (str.trim() === '') {
- this.emit("end", null);
- return true;
- }
- str = bom.stripBOM(str);
- if (this.options.async) {
- this.remaining = str;
- setImmediate(this.processAsync);
- return this.saxParser;
- }
- return this.saxParser.write(str).close();
- } catch (error1) {
- err = error1;
- if (!(this.saxParser.errThrown || this.saxParser.ended)) {
- this.emit('error', err);
- return this.saxParser.errThrown = true;
- } else if (this.saxParser.ended) {
- throw err;
- }
- }
- };
-
- return Parser;
-
- })(events.EventEmitter);
-
- exports.parseString = function(str, a, b) {
- var cb, options, parser;
- if (b != null) {
- if (typeof b === 'function') {
- cb = b;
- }
- if (typeof a === 'object') {
- options = a;
- }
- } else {
- if (typeof a === 'function') {
- cb = a;
- }
- options = {};
- }
- parser = new exports.Parser(options);
- return parser.parseString(str, cb);
- };
-
-}).call(this);
diff --git a/node_modules/xml2js/package.json b/node_modules/xml2js/package.json
deleted file mode 100644
index 06b043370..000000000
--- a/node_modules/xml2js/package.json
+++ /dev/null
@@ -1,85 +0,0 @@
-{
- "name": "xml2js",
- "description": "Simple XML to JavaScript object converter.",
- "keywords": [
- "xml",
- "json"
- ],
- "homepage": "https://github.com/Leonidas-from-XIV/node-xml2js",
- "version": "0.4.17",
- "author": "Marek Kubica <marek@xivilization.net> (https://xivilization.net)",
- "contributors": [
- "maqr <maqr.lollerskates@gmail.com> (https://github.com/maqr)",
- "Ben Weaver (http://benweaver.com/)",
- "Jae Kwon (https://github.com/jaekwon)",
- "Jim Robert",
- "Ștefan Rusu (http://www.saltwaterc.eu/)",
- "Carter Cole <carter.cole@cartercole.com> (http://cartercole.com/)",
- "Kurt Raschke <kurt@kurtraschke.com> (http://www.kurtraschke.com/)",
- "Contra <contra@australia.edu> (https://github.com/Contra)",
- "Marcelo Diniz <marudiniz@gmail.com> (https://github.com/mdiniz)",
- "Michael Hart (https://github.com/mhart)",
- "Zachary Scott <zachary@zacharyscott.net> (http://zacharyscott.net/)",
- "Raoul Millais (https://github.com/raoulmillais)",
- "Salsita Software (http://www.salsitasoft.com/)",
- "Mike Schilling <mike@emotive.com> (http://www.emotive.com/)",
- "Jackson Tian <shyvo1987@gmail.com> (http://weibo.com/shyvo)",
- "Mikhail Zyatin <mikhail.zyatin@gmail.com> (https://github.com/Sitin)",
- "Chris Tavares <ctavares@microsoft.com> (https://github.com/christav)",
- "Frank Xu <yyfrankyy@gmail.com> (http://f2e.us/)",
- "Guido D'Albore <guido@bitstorm.it> (http://www.bitstorm.it/)",
- "Jack Senechal (http://jacksenechal.com/)",
- "Matthias Hölzl <tc@xantira.com> (https://github.com/hoelzl)",
- "Camille Reynders <info@creynders.be> (http://www.creynders.be/)",
- "Taylor Gautier (https://github.com/tsgautier)",
- "Todd Bryan (https://github.com/toddrbryan)",
- "Leore Avidar <leore.avidar@gmail.com> (http://leoreavidar.com/)",
- "Dave Aitken <dave.aitken@gmail.com> (http://www.actionshrimp.com/)",
- "Shaney Orrowe <shaney.orrowe@practiceweb.co.uk>",
- "Candle <candle@candle.me.uk>",
- "Jess Telford <hi@jes.st> (http://jes.st)",
- "Tom Hughes <<tom@compton.nu> (http://compton.nu/)",
- "Piotr Rochala (http://rocha.la/)",
- "Michael Avila (https://github.com/michaelavila)",
- "Ryan Gahl (https://github.com/ryedin)",
- "Eric Laberge <e.laberge@gmail.com> (https://github.com/elaberge)",
- "Benjamin E. Coe <ben@npmjs.com> (https://twitter.com/benjamincoe)",
- "Stephen Cresswell (https://github.com/cressie176)",
- "Pascal Ehlert <pascal@hacksrus.net> (http://www.hacksrus.net/)",
- "Tom Spencer <fiznool@gmail.com> (http://fiznool.com/)",
- "Tristian Flanagan <tflanagan@datacollaborative.com> (https://github.com/tflanagan)",
- "Tim Johns <timjohns@yahoo.com> (https://github.com/TimJohns)",
- "Bogdan Chadkin <trysound@yandex.ru> (https://github.com/TrySound)",
- "David Wood <david.p.wood@gmail.com> (http://codesleuth.co.uk/)",
- "Nicolas Maquet (https://github.com/nmaquet)"
- ],
- "main": "./lib/xml2js",
- "files": [
- "lib"
- ],
- "directories": {
- "lib": "./lib"
- },
- "scripts": {
- "test": "zap",
- "coverage": "nyc npm test && nyc report",
- "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/Leonidas-from-XIV/node-xml2js.git"
- },
- "dependencies": {
- "sax": ">=0.6.0",
- "xmlbuilder": "^4.1.0"
- },
- "devDependencies": {
- "coffee-script": ">=1.10.0",
- "coveralls": "^2.11.2",
- "diff": ">=1.0.8",
- "docco": ">=0.6.2",
- "nyc": ">=2.2.1",
- "zap": ">=0.2.9"
- },
- "license": "MIT"
-}
diff --git a/node_modules/xmlbuilder/.npmignore b/node_modules/xmlbuilder/.npmignore
deleted file mode 100644
index b6ad1f6d9..000000000
--- a/node_modules/xmlbuilder/.npmignore
+++ /dev/null
@@ -1,5 +0,0 @@
-.travis.yml
-src
-test
-perf
-coverage
diff --git a/node_modules/xmlbuilder/LICENSE b/node_modules/xmlbuilder/LICENSE
deleted file mode 100644
index e7cbac9a8..000000000
--- a/node_modules/xmlbuilder/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2013 Ozgur Ozcitak
-
-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.
diff --git a/node_modules/xmlbuilder/README.md b/node_modules/xmlbuilder/README.md
deleted file mode 100644
index 13a5b12f9..000000000
--- a/node_modules/xmlbuilder/README.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# xmlbuilder-js
-
-An XML builder for [node.js](https://nodejs.org/) similar to
-[java-xmlbuilder](https://github.com/jmurty/java-xmlbuilder).
-
-[![License](http://img.shields.io/npm/l/xmlbuilder.svg?style=flat-square)](http://opensource.org/licenses/MIT)
-[![NPM Version](http://img.shields.io/npm/v/xmlbuilder.svg?style=flat-square)](https://npmjs.com/package/xmlbuilder)
-[![NPM Downloads](https://img.shields.io/npm/dm/xmlbuilder.svg?style=flat-square)](https://npmjs.com/package/xmlbuilder)
-
-[![Build Status](http://img.shields.io/travis/oozcitak/xmlbuilder-js.svg?style=flat-square)](http://travis-ci.org/oozcitak/xmlbuilder-js)
-[![Dependency Status](http://img.shields.io/david/oozcitak/xmlbuilder-js.svg?style=flat-square)](https://david-dm.org/oozcitak/xmlbuilder-js)
-[![Dev Dependency Status](http://img.shields.io/david/dev/oozcitak/xmlbuilder-js.svg?style=flat-square)](https://david-dm.org/oozcitak/xmlbuilder-js)
-[![Code Coverage](https://img.shields.io/coveralls/oozcitak/xmlbuilder-js.svg?style=flat-square)](https://coveralls.io/github/oozcitak/xmlbuilder-js)
-
-### Installation:
-
-``` sh
-npm install xmlbuilder
-```
-
-### Usage:
-
-``` js
-var builder = require('xmlbuilder');
-var xml = builder.create('root')
- .ele('xmlbuilder')
- .ele('repo', {'type': 'git'}, 'git://github.com/oozcitak/xmlbuilder-js.git')
- .end({ pretty: true});
-
-console.log(xml);
-```
-
-will result in:
-
-``` xml
-<?xml version="1.0"?>
-<root>
- <xmlbuilder>
- <repo type="git">git://github.com/oozcitak/xmlbuilder-js.git</repo>
- </xmlbuilder>
-</root>
-```
-
-It is also possible to convert objects into nodes:
-
-``` js
-builder.create({
- root: {
- xmlbuilder: {
- repo: {
- '@type': 'git', // attributes start with @
- '#text': 'git://github.com/oozcitak/xmlbuilder-js.git' // text node
- }
- }
- }
-});
-```
-
-If you need to do some processing:
-
-``` js
-var root = builder.create('squares');
-root.com('f(x) = x^2');
-for(var i = 1; i <= 5; i++)
-{
- var item = root.ele('data');
- item.att('x', i);
- item.att('y', i * i);
-}
-```
-
-This will result in:
-
-``` xml
-<?xml version="1.0"?>
-<squares>
- <!-- f(x) = x^2 -->
- <data x="1" y="1"/>
- <data x="2" y="4"/>
- <data x="3" y="9"/>
- <data x="4" y="16"/>
- <data x="5" y="25"/>
-</squares>
-```
-
-See the [wiki](https://github.com/oozcitak/xmlbuilder-js/wiki) for details.
diff --git a/node_modules/xmlbuilder/lib/XMLAttribute.js b/node_modules/xmlbuilder/lib/XMLAttribute.js
deleted file mode 100644
index f6c6bd8d0..000000000
--- a/node_modules/xmlbuilder/lib/XMLAttribute.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Generated by CoffeeScript 1.9.1
-(function() {
- var XMLAttribute, create;
-
- create = require('lodash/create');
-
- module.exports = XMLAttribute = (function() {
- function XMLAttribute(parent, name, value) {
- this.stringify = parent.stringify;
- if (name == null) {
- throw new Error("Missing attribute name of element " + parent.name);
- }
- if (value == null) {
- throw new Error("Missing attribute value for attribute " + name + " of element " + parent.name);
- }
- this.name = this.stringify.attName(name);
- this.value = this.stringify.attValue(value);
- }
-
- XMLAttribute.prototype.clone = function() {
- return create(XMLAttribute.prototype, this);
- };
-
- XMLAttribute.prototype.toString = function(options, level) {
- return ' ' + this.name + '="' + this.value + '"';
- };
-
- return XMLAttribute;
-
- })();
-
-}).call(this);
diff --git a/node_modules/xmlbuilder/lib/XMLBuilder.js b/node_modules/xmlbuilder/lib/XMLBuilder.js
deleted file mode 100644
index 42828338e..000000000
--- a/node_modules/xmlbuilder/lib/XMLBuilder.js
+++ /dev/null
@@ -1,69 +0,0 @@
-// Generated by CoffeeScript 1.9.1
-(function() {
- var XMLBuilder, XMLDeclaration, XMLDocType, XMLElement, XMLStringifier;
-
- XMLStringifier = require('./XMLStringifier');
-
- XMLDeclaration = require('./XMLDeclaration');
-
- XMLDocType = require('./XMLDocType');
-
- XMLElement = require('./XMLElement');
-
- module.exports = XMLBuilder = (function() {
- function XMLBuilder(name, options) {
- var root, temp;
- if (name == null) {
- throw new Error("Root element needs a name");
- }
- if (options == null) {
- options = {};
- }
- this.options = options;
- this.stringify = new XMLStringifier(options);
- temp = new XMLElement(this, 'doc');
- root = temp.element(name);
- root.isRoot = true;
- root.documentObject = this;
- this.rootObject = root;
- if (!options.headless) {
- root.declaration(options);
- if ((options.pubID != null) || (options.sysID != null)) {
- root.doctype(options);
- }
- }
- }
-
- XMLBuilder.prototype.root = function() {
- return this.rootObject;
- };
-
- XMLBuilder.prototype.end = function(options) {
- return this.toString(options);
- };
-
- XMLBuilder.prototype.toString = function(options) {
- var indent, newline, offset, pretty, r, ref, ref1, ref2;
- pretty = (options != null ? options.pretty : void 0) || false;
- indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
- offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
- newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
- r = '';
- if (this.xmldec != null) {
- r += this.xmldec.toString(options);
- }
- if (this.doctype != null) {
- r += this.doctype.toString(options);
- }
- r += this.rootObject.toString(options);
- if (pretty && r.slice(-newline.length) === newline) {
- r = r.slice(0, -newline.length);
- }
- return r;
- };
-
- return XMLBuilder;
-
- })();
-
-}).call(this);
diff --git a/node_modules/xmlbuilder/lib/XMLCData.js b/node_modules/xmlbuilder/lib/XMLCData.js
deleted file mode 100644
index c171a28c9..000000000
--- a/node_modules/xmlbuilder/lib/XMLCData.js
+++ /dev/null
@@ -1,49 +0,0 @@
-// Generated by CoffeeScript 1.9.1
-(function() {
- var XMLCData, XMLNode, create,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
-
- create = require('lodash/create');
-
- XMLNode = require('./XMLNode');
-
- module.exports = XMLCData = (function(superClass) {
- extend(XMLCData, superClass);
-
- function XMLCData(parent, text) {
- XMLCData.__super__.constructor.call(this, parent);
- if (text == null) {
- throw new Error("Missing CDATA text");
- }
- this.text = this.stringify.cdata(text);
- }
-
- XMLCData.prototype.clone = function() {
- return create(XMLCData.prototype, this);
- };
-
- XMLCData.prototype.toString = function(options, level) {
- var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
- pretty = (options != null ? options.pretty : void 0) || false;
- indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
- offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
- newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
- level || (level = 0);
- space = new Array(level + offset + 1).join(indent);
- r = '';
- if (pretty) {
- r += space;
- }
- r += '<![CDATA[' + this.text + ']]>';
- if (pretty) {
- r += newline;
- }
- return r;
- };
-
- return XMLCData;
-
- })(XMLNode);
-
-}).call(this);
diff --git a/node_modules/xmlbuilder/lib/XMLComment.js b/node_modules/xmlbuilder/lib/XMLComment.js
deleted file mode 100644
index ca801f65d..000000000
--- a/node_modules/xmlbuilder/lib/XMLComment.js
+++ /dev/null
@@ -1,49 +0,0 @@
-// Generated by CoffeeScript 1.9.1
-(function() {
- var XMLComment, XMLNode, create,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
-
- create = require('lodash/create');
-
- XMLNode = require('./XMLNode');
-
- module.exports = XMLComment = (function(superClass) {
- extend(XMLComment, superClass);
-
- function XMLComment(parent, text) {
- XMLComment.__super__.constructor.call(this, parent);
- if (text == null) {
- throw new Error("Missing comment text");
- }
- this.text = this.stringify.comment(text);
- }
-
- XMLComment.prototype.clone = function() {
- return create(XMLComment.prototype, this);
- };
-
- XMLComment.prototype.toString = function(options, level) {
- var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
- pretty = (options != null ? options.pretty : void 0) || false;
- indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
- offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
- newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
- level || (level = 0);
- space = new Array(level + offset + 1).join(indent);
- r = '';
- if (pretty) {
- r += space;
- }
- r += '<!-- ' + this.text + ' -->';
- if (pretty) {
- r += newline;
- }
- return r;
- };
-
- return XMLComment;
-
- })(XMLNode);
-
-}).call(this);
diff --git a/node_modules/xmlbuilder/lib/XMLDTDAttList.js b/node_modules/xmlbuilder/lib/XMLDTDAttList.js
deleted file mode 100644
index 4a71866f7..000000000
--- a/node_modules/xmlbuilder/lib/XMLDTDAttList.js
+++ /dev/null
@@ -1,68 +0,0 @@
-// Generated by CoffeeScript 1.9.1
-(function() {
- var XMLDTDAttList, create;
-
- create = require('lodash/create');
-
- module.exports = XMLDTDAttList = (function() {
- function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) {
- this.stringify = parent.stringify;
- if (elementName == null) {
- throw new Error("Missing DTD element name");
- }
- if (attributeName == null) {
- throw new Error("Missing DTD attribute name");
- }
- if (!attributeType) {
- throw new Error("Missing DTD attribute type");
- }
- if (!defaultValueType) {
- throw new Error("Missing DTD attribute default");
- }
- if (defaultValueType.indexOf('#') !== 0) {
- defaultValueType = '#' + defaultValueType;
- }
- if (!defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) {
- throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT");
- }
- if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) {
- throw new Error("Default value only applies to #FIXED or #DEFAULT");
- }
- this.elementName = this.stringify.eleName(elementName);
- this.attributeName = this.stringify.attName(attributeName);
- this.attributeType = this.stringify.dtdAttType(attributeType);
- this.defaultValue = this.stringify.dtdAttDefault(defaultValue);
- this.defaultValueType = defaultValueType;
- }
-
- XMLDTDAttList.prototype.toString = function(options, level) {
- var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
- pretty = (options != null ? options.pretty : void 0) || false;
- indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
- offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
- newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
- level || (level = 0);
- space = new Array(level + offset + 1).join(indent);
- r = '';
- if (pretty) {
- r += space;
- }
- r += '<!ATTLIST ' + this.elementName + ' ' + this.attributeName + ' ' + this.attributeType;
- if (this.defaultValueType !== '#DEFAULT') {
- r += ' ' + this.defaultValueType;
- }
- if (this.defaultValue) {
- r += ' "' + this.defaultValue + '"';
- }
- r += '>';
- if (pretty) {
- r += newline;
- }
- return r;
- };
-
- return XMLDTDAttList;
-
- })();
-
-}).call(this);
diff --git a/node_modules/xmlbuilder/lib/XMLDTDElement.js b/node_modules/xmlbuilder/lib/XMLDTDElement.js
deleted file mode 100644
index 0002c1bdf..000000000
--- a/node_modules/xmlbuilder/lib/XMLDTDElement.js
+++ /dev/null
@@ -1,46 +0,0 @@
-// Generated by CoffeeScript 1.9.1
-(function() {
- var XMLDTDElement, create;
-
- create = require('lodash/create');
-
- module.exports = XMLDTDElement = (function() {
- function XMLDTDElement(parent, name, value) {
- this.stringify = parent.stringify;
- if (name == null) {
- throw new Error("Missing DTD element name");
- }
- if (!value) {
- value = '(#PCDATA)';
- }
- if (Array.isArray(value)) {
- value = '(' + value.join(',') + ')';
- }
- this.name = this.stringify.eleName(name);
- this.value = this.stringify.dtdElementValue(value);
- }
-
- XMLDTDElement.prototype.toString = function(options, level) {
- var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
- pretty = (options != null ? options.pretty : void 0) || false;
- indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
- offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
- newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
- level || (level = 0);
- space = new Array(level + offset + 1).join(indent);
- r = '';
- if (pretty) {
- r += space;
- }
- r += '<!ELEMENT ' + this.name + ' ' + this.value + '>';
- if (pretty) {
- r += newline;
- }
- return r;
- };
-
- return XMLDTDElement;
-
- })();
-
-}).call(this);
diff --git a/node_modules/xmlbuilder/lib/XMLDTDEntity.js b/node_modules/xmlbuilder/lib/XMLDTDEntity.js
deleted file mode 100644
index f27d56799..000000000
--- a/node_modules/xmlbuilder/lib/XMLDTDEntity.js
+++ /dev/null
@@ -1,84 +0,0 @@
-// Generated by CoffeeScript 1.9.1
-(function() {
- var XMLDTDEntity, create, isObject;
-
- create = require('lodash/create');
-
- isObject = require('lodash/isObject');
-
- module.exports = XMLDTDEntity = (function() {
- function XMLDTDEntity(parent, pe, name, value) {
- this.stringify = parent.stringify;
- if (name == null) {
- throw new Error("Missing entity name");
- }
- if (value == null) {
- throw new Error("Missing entity value");
- }
- this.pe = !!pe;
- this.name = this.stringify.eleName(name);
- if (!isObject(value)) {
- this.value = this.stringify.dtdEntityValue(value);
- } else {
- if (!value.pubID && !value.sysID) {
- throw new Error("Public and/or system identifiers are required for an external entity");
- }
- if (value.pubID && !value.sysID) {
- throw new Error("System identifier is required for a public external entity");
- }
- if (value.pubID != null) {
- this.pubID = this.stringify.dtdPubID(value.pubID);
- }
- if (value.sysID != null) {
- this.sysID = this.stringify.dtdSysID(value.sysID);
- }
- if (value.nData != null) {
- this.nData = this.stringify.dtdNData(value.nData);
- }
- if (this.pe && this.nData) {
- throw new Error("Notation declaration is not allowed in a parameter entity");
- }
- }
- }
-
- XMLDTDEntity.prototype.toString = function(options, level) {
- var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
- pretty = (options != null ? options.pretty : void 0) || false;
- indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
- offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
- newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
- level || (level = 0);
- space = new Array(level + offset + 1).join(indent);
- r = '';
- if (pretty) {
- r += space;
- }
- r += '<!ENTITY';
- if (this.pe) {
- r += ' %';
- }
- r += ' ' + this.name;
- if (this.value) {
- r += ' "' + this.value + '"';
- } else {
- if (this.pubID && this.sysID) {
- r += ' PUBLIC "' + this.pubID + '" "' + this.sysID + '"';
- } else if (this.sysID) {
- r += ' SYSTEM "' + this.sysID + '"';
- }
- if (this.nData) {
- r += ' NDATA ' + this.nData;
- }
- }
- r += '>';
- if (pretty) {
- r += newline;
- }
- return r;
- };
-
- return XMLDTDEntity;
-
- })();
-
-}).call(this);
diff --git a/node_modules/xmlbuilder/lib/XMLDTDNotation.js b/node_modules/xmlbuilder/lib/XMLDTDNotation.js
deleted file mode 100644
index edd3501fa..000000000
--- a/node_modules/xmlbuilder/lib/XMLDTDNotation.js
+++ /dev/null
@@ -1,56 +0,0 @@
-// Generated by CoffeeScript 1.9.1
-(function() {
- var XMLDTDNotation, create;
-
- create = require('lodash/create');
-
- module.exports = XMLDTDNotation = (function() {
- function XMLDTDNotation(parent, name, value) {
- this.stringify = parent.stringify;
- if (name == null) {
- throw new Error("Missing notation name");
- }
- if (!value.pubID && !value.sysID) {
- throw new Error("Public or system identifiers are required for an external entity");
- }
- this.name = this.stringify.eleName(name);
- if (value.pubID != null) {
- this.pubID = this.stringify.dtdPubID(value.pubID);
- }
- if (value.sysID != null) {
- this.sysID = this.stringify.dtdSysID(value.sysID);
- }
- }
-
- XMLDTDNotation.prototype.toString = function(options, level) {
- var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
- pretty = (options != null ? options.pretty : void 0) || false;
- indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
- offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
- newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
- level || (level = 0);
- space = new Array(level + offset + 1).join(indent);
- r = '';
- if (pretty) {
- r += space;
- }
- r += '<!NOTATION ' + this.name;
- if (this.pubID && this.sysID) {
- r += ' PUBLIC "' + this.pubID + '" "' + this.sysID + '"';
- } else if (this.pubID) {
- r += ' PUBLIC "' + this.pubID + '"';
- } else if (this.sysID) {
- r += ' SYSTEM "' + this.sysID + '"';
- }
- r += '>';
- if (pretty) {
- r += newline;
- }
- return r;
- };
-
- return XMLDTDNotation;
-
- })();
-
-}).call(this);
diff --git a/node_modules/xmlbuilder/lib/XMLDeclaration.js b/node_modules/xmlbuilder/lib/XMLDeclaration.js
deleted file mode 100644
index b50289247..000000000
--- a/node_modules/xmlbuilder/lib/XMLDeclaration.js
+++ /dev/null
@@ -1,65 +0,0 @@
-// Generated by CoffeeScript 1.9.1
-(function() {
- var XMLDeclaration, XMLNode, create, isObject,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
-
- create = require('lodash/create');
-
- isObject = require('lodash/isObject');
-
- XMLNode = require('./XMLNode');
-
- module.exports = XMLDeclaration = (function(superClass) {
- extend(XMLDeclaration, superClass);
-
- function XMLDeclaration(parent, version, encoding, standalone) {
- var ref;
- XMLDeclaration.__super__.constructor.call(this, parent);
- if (isObject(version)) {
- ref = version, version = ref.version, encoding = ref.encoding, standalone = ref.standalone;
- }
- if (!version) {
- version = '1.0';
- }
- this.version = this.stringify.xmlVersion(version);
- if (encoding != null) {
- this.encoding = this.stringify.xmlEncoding(encoding);
- }
- if (standalone != null) {
- this.standalone = this.stringify.xmlStandalone(standalone);
- }
- }
-
- XMLDeclaration.prototype.toString = function(options, level) {
- var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
- pretty = (options != null ? options.pretty : void 0) || false;
- indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
- offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
- newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
- level || (level = 0);
- space = new Array(level + offset + 1).join(indent);
- r = '';
- if (pretty) {
- r += space;
- }
- r += '<?xml';
- r += ' version="' + this.version + '"';
- if (this.encoding != null) {
- r += ' encoding="' + this.encoding + '"';
- }
- if (this.standalone != null) {
- r += ' standalone="' + this.standalone + '"';
- }
- r += '?>';
- if (pretty) {
- r += newline;
- }
- return r;
- };
-
- return XMLDeclaration;
-
- })(XMLNode);
-
-}).call(this);
diff --git a/node_modules/xmlbuilder/lib/XMLDocType.js b/node_modules/xmlbuilder/lib/XMLDocType.js
deleted file mode 100644
index cbc61b325..000000000
--- a/node_modules/xmlbuilder/lib/XMLDocType.js
+++ /dev/null
@@ -1,188 +0,0 @@
-// Generated by CoffeeScript 1.9.1
-(function() {
- var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLProcessingInstruction, create, isObject;
-
- create = require('lodash/create');
-
- isObject = require('lodash/isObject');
-
- XMLCData = require('./XMLCData');
-
- XMLComment = require('./XMLComment');
-
- XMLDTDAttList = require('./XMLDTDAttList');
-
- XMLDTDEntity = require('./XMLDTDEntity');
-
- XMLDTDElement = require('./XMLDTDElement');
-
- XMLDTDNotation = require('./XMLDTDNotation');
-
- XMLProcessingInstruction = require('./XMLProcessingInstruction');
-
- module.exports = XMLDocType = (function() {
- function XMLDocType(parent, pubID, sysID) {
- var ref, ref1;
- this.documentObject = parent;
- this.stringify = this.documentObject.stringify;
- this.children = [];
- if (isObject(pubID)) {
- ref = pubID, pubID = ref.pubID, sysID = ref.sysID;
- }
- if (sysID == null) {
- ref1 = [pubID, sysID], sysID = ref1[0], pubID = ref1[1];
- }
- if (pubID != null) {
- this.pubID = this.stringify.dtdPubID(pubID);
- }
- if (sysID != null) {
- this.sysID = this.stringify.dtdSysID(sysID);
- }
- }
-
- XMLDocType.prototype.element = function(name, value) {
- var child;
- child = new XMLDTDElement(this, name, value);
- this.children.push(child);
- return this;
- };
-
- XMLDocType.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {
- var child;
- child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);
- this.children.push(child);
- return this;
- };
-
- XMLDocType.prototype.entity = function(name, value) {
- var child;
- child = new XMLDTDEntity(this, false, name, value);
- this.children.push(child);
- return this;
- };
-
- XMLDocType.prototype.pEntity = function(name, value) {
- var child;
- child = new XMLDTDEntity(this, true, name, value);
- this.children.push(child);
- return this;
- };
-
- XMLDocType.prototype.notation = function(name, value) {
- var child;
- child = new XMLDTDNotation(this, name, value);
- this.children.push(child);
- return this;
- };
-
- XMLDocType.prototype.cdata = function(value) {
- var child;
- child = new XMLCData(this, value);
- this.children.push(child);
- return this;
- };
-
- XMLDocType.prototype.comment = function(value) {
- var child;
- child = new XMLComment(this, value);
- this.children.push(child);
- return this;
- };
-
- XMLDocType.prototype.instruction = function(target, value) {
- var child;
- child = new XMLProcessingInstruction(this, target, value);
- this.children.push(child);
- return this;
- };
-
- XMLDocType.prototype.root = function() {
- return this.documentObject.root();
- };
-
- XMLDocType.prototype.document = function() {
- return this.documentObject;
- };
-
- XMLDocType.prototype.toString = function(options, level) {
- var child, i, indent, len, newline, offset, pretty, r, ref, ref1, ref2, ref3, space;
- pretty = (options != null ? options.pretty : void 0) || false;
- indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
- offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
- newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
- level || (level = 0);
- space = new Array(level + offset + 1).join(indent);
- r = '';
- if (pretty) {
- r += space;
- }
- r += '<!DOCTYPE ' + this.root().name;
- if (this.pubID && this.sysID) {
- r += ' PUBLIC "' + this.pubID + '" "' + this.sysID + '"';
- } else if (this.sysID) {
- r += ' SYSTEM "' + this.sysID + '"';
- }
- if (this.children.length > 0) {
- r += ' [';
- if (pretty) {
- r += newline;
- }
- ref3 = this.children;
- for (i = 0, len = ref3.length; i < len; i++) {
- child = ref3[i];
- r += child.toString(options, level + 1);
- }
- r += ']';
- }
- r += '>';
- if (pretty) {
- r += newline;
- }
- return r;
- };
-
- XMLDocType.prototype.ele = function(name, value) {
- return this.element(name, value);
- };
-
- XMLDocType.prototype.att = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {
- return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue);
- };
-
- XMLDocType.prototype.ent = function(name, value) {
- return this.entity(name, value);
- };
-
- XMLDocType.prototype.pent = function(name, value) {
- return this.pEntity(name, value);
- };
-
- XMLDocType.prototype.not = function(name, value) {
- return this.notation(name, value);
- };
-
- XMLDocType.prototype.dat = function(value) {
- return this.cdata(value);
- };
-
- XMLDocType.prototype.com = function(value) {
- return this.comment(value);
- };
-
- XMLDocType.prototype.ins = function(target, value) {
- return this.instruction(target, value);
- };
-
- XMLDocType.prototype.up = function() {
- return this.root();
- };
-
- XMLDocType.prototype.doc = function() {
- return this.document();
- };
-
- return XMLDocType;
-
- })();
-
-}).call(this);
diff --git a/node_modules/xmlbuilder/lib/XMLElement.js b/node_modules/xmlbuilder/lib/XMLElement.js
deleted file mode 100644
index 27504a872..000000000
--- a/node_modules/xmlbuilder/lib/XMLElement.js
+++ /dev/null
@@ -1,212 +0,0 @@
-// Generated by CoffeeScript 1.9.1
-(function() {
- var XMLAttribute, XMLElement, XMLNode, XMLProcessingInstruction, create, every, isFunction, isObject,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
-
- create = require('lodash/create');
-
- isObject = require('lodash/isObject');
-
- isFunction = require('lodash/isFunction');
-
- every = require('lodash/every');
-
- XMLNode = require('./XMLNode');
-
- XMLAttribute = require('./XMLAttribute');
-
- XMLProcessingInstruction = require('./XMLProcessingInstruction');
-
- module.exports = XMLElement = (function(superClass) {
- extend(XMLElement, superClass);
-
- function XMLElement(parent, name, attributes) {
- XMLElement.__super__.constructor.call(this, parent);
- if (name == null) {
- throw new Error("Missing element name");
- }
- this.name = this.stringify.eleName(name);
- this.children = [];
- this.instructions = [];
- this.attributes = {};
- if (attributes != null) {
- this.attribute(attributes);
- }
- }
-
- XMLElement.prototype.clone = function() {
- var att, attName, clonedSelf, i, len, pi, ref, ref1;
- clonedSelf = create(XMLElement.prototype, this);
- if (clonedSelf.isRoot) {
- clonedSelf.documentObject = null;
- }
- clonedSelf.attributes = {};
- ref = this.attributes;
- for (attName in ref) {
- if (!hasProp.call(ref, attName)) continue;
- att = ref[attName];
- clonedSelf.attributes[attName] = att.clone();
- }
- clonedSelf.instructions = [];
- ref1 = this.instructions;
- for (i = 0, len = ref1.length; i < len; i++) {
- pi = ref1[i];
- clonedSelf.instructions.push(pi.clone());
- }
- clonedSelf.children = [];
- this.children.forEach(function(child) {
- var clonedChild;
- clonedChild = child.clone();
- clonedChild.parent = clonedSelf;
- return clonedSelf.children.push(clonedChild);
- });
- return clonedSelf;
- };
-
- XMLElement.prototype.attribute = function(name, value) {
- var attName, attValue;
- if (name != null) {
- name = name.valueOf();
- }
- if (isObject(name)) {
- for (attName in name) {
- if (!hasProp.call(name, attName)) continue;
- attValue = name[attName];
- this.attribute(attName, attValue);
- }
- } else {
- if (isFunction(value)) {
- value = value.apply();
- }
- if (!this.options.skipNullAttributes || (value != null)) {
- this.attributes[name] = new XMLAttribute(this, name, value);
- }
- }
- return this;
- };
-
- XMLElement.prototype.removeAttribute = function(name) {
- var attName, i, len;
- if (name == null) {
- throw new Error("Missing attribute name");
- }
- name = name.valueOf();
- if (Array.isArray(name)) {
- for (i = 0, len = name.length; i < len; i++) {
- attName = name[i];
- delete this.attributes[attName];
- }
- } else {
- delete this.attributes[name];
- }
- return this;
- };
-
- XMLElement.prototype.instruction = function(target, value) {
- var i, insTarget, insValue, instruction, len;
- if (target != null) {
- target = target.valueOf();
- }
- if (value != null) {
- value = value.valueOf();
- }
- if (Array.isArray(target)) {
- for (i = 0, len = target.length; i < len; i++) {
- insTarget = target[i];
- this.instruction(insTarget);
- }
- } else if (isObject(target)) {
- for (insTarget in target) {
- if (!hasProp.call(target, insTarget)) continue;
- insValue = target[insTarget];
- this.instruction(insTarget, insValue);
- }
- } else {
- if (isFunction(value)) {
- value = value.apply();
- }
- instruction = new XMLProcessingInstruction(this, target, value);
- this.instructions.push(instruction);
- }
- return this;
- };
-
- XMLElement.prototype.toString = function(options, level) {
- var att, child, i, indent, instruction, j, len, len1, name, newline, offset, pretty, r, ref, ref1, ref2, ref3, ref4, ref5, space;
- pretty = (options != null ? options.pretty : void 0) || false;
- indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
- offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
- newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
- level || (level = 0);
- space = new Array(level + offset + 1).join(indent);
- r = '';
- ref3 = this.instructions;
- for (i = 0, len = ref3.length; i < len; i++) {
- instruction = ref3[i];
- r += instruction.toString(options, level);
- }
- if (pretty) {
- r += space;
- }
- r += '<' + this.name;
- ref4 = this.attributes;
- for (name in ref4) {
- if (!hasProp.call(ref4, name)) continue;
- att = ref4[name];
- r += att.toString(options);
- }
- if (this.children.length === 0 || every(this.children, function(e) {
- return e.value === '';
- })) {
- r += '/>';
- if (pretty) {
- r += newline;
- }
- } else if (pretty && this.children.length === 1 && (this.children[0].value != null)) {
- r += '>';
- r += this.children[0].value;
- r += '</' + this.name + '>';
- r += newline;
- } else {
- r += '>';
- if (pretty) {
- r += newline;
- }
- ref5 = this.children;
- for (j = 0, len1 = ref5.length; j < len1; j++) {
- child = ref5[j];
- r += child.toString(options, level + 1);
- }
- if (pretty) {
- r += space;
- }
- r += '</' + this.name + '>';
- if (pretty) {
- r += newline;
- }
- }
- return r;
- };
-
- XMLElement.prototype.att = function(name, value) {
- return this.attribute(name, value);
- };
-
- XMLElement.prototype.ins = function(target, value) {
- return this.instruction(target, value);
- };
-
- XMLElement.prototype.a = function(name, value) {
- return this.attribute(name, value);
- };
-
- XMLElement.prototype.i = function(target, value) {
- return this.instruction(target, value);
- };
-
- return XMLElement;
-
- })(XMLNode);
-
-}).call(this);
diff --git a/node_modules/xmlbuilder/lib/XMLNode.js b/node_modules/xmlbuilder/lib/XMLNode.js
deleted file mode 100644
index 0a6340b44..000000000
--- a/node_modules/xmlbuilder/lib/XMLNode.js
+++ /dev/null
@@ -1,331 +0,0 @@
-// Generated by CoffeeScript 1.9.1
-(function() {
- var XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLElement, XMLNode, XMLRaw, XMLText, isEmpty, isFunction, isObject,
- hasProp = {}.hasOwnProperty;
-
- isObject = require('lodash/isObject');
-
- isFunction = require('lodash/isFunction');
-
- isEmpty = require('lodash/isEmpty');
-
- XMLElement = null;
-
- XMLCData = null;
-
- XMLComment = null;
-
- XMLDeclaration = null;
-
- XMLDocType = null;
-
- XMLRaw = null;
-
- XMLText = null;
-
- module.exports = XMLNode = (function() {
- function XMLNode(parent) {
- this.parent = parent;
- this.options = this.parent.options;
- this.stringify = this.parent.stringify;
- if (XMLElement === null) {
- XMLElement = require('./XMLElement');
- XMLCData = require('./XMLCData');
- XMLComment = require('./XMLComment');
- XMLDeclaration = require('./XMLDeclaration');
- XMLDocType = require('./XMLDocType');
- XMLRaw = require('./XMLRaw');
- XMLText = require('./XMLText');
- }
- }
-
- XMLNode.prototype.element = function(name, attributes, text) {
- var childNode, item, j, k, key, lastChild, len, len1, ref, val;
- lastChild = null;
- if (attributes == null) {
- attributes = {};
- }
- attributes = attributes.valueOf();
- if (!isObject(attributes)) {
- ref = [attributes, text], text = ref[0], attributes = ref[1];
- }
- if (name != null) {
- name = name.valueOf();
- }
- if (Array.isArray(name)) {
- for (j = 0, len = name.length; j < len; j++) {
- item = name[j];
- lastChild = this.element(item);
- }
- } else if (isFunction(name)) {
- lastChild = this.element(name.apply());
- } else if (isObject(name)) {
- for (key in name) {
- if (!hasProp.call(name, key)) continue;
- val = name[key];
- if (isFunction(val)) {
- val = val.apply();
- }
- if ((isObject(val)) && (isEmpty(val))) {
- val = null;
- }
- if (!this.options.ignoreDecorators && this.stringify.convertAttKey && key.indexOf(this.stringify.convertAttKey) === 0) {
- lastChild = this.attribute(key.substr(this.stringify.convertAttKey.length), val);
- } else if (!this.options.ignoreDecorators && this.stringify.convertPIKey && key.indexOf(this.stringify.convertPIKey) === 0) {
- lastChild = this.instruction(key.substr(this.stringify.convertPIKey.length), val);
- } else if (!this.options.separateArrayItems && Array.isArray(val)) {
- for (k = 0, len1 = val.length; k < len1; k++) {
- item = val[k];
- childNode = {};
- childNode[key] = item;
- lastChild = this.element(childNode);
- }
- } else if (isObject(val)) {
- lastChild = this.element(key);
- lastChild.element(val);
- } else {
- lastChild = this.element(key, val);
- }
- }
- } else {
- if (!this.options.ignoreDecorators && this.stringify.convertTextKey && name.indexOf(this.stringify.convertTextKey) === 0) {
- lastChild = this.text(text);
- } else if (!this.options.ignoreDecorators && this.stringify.convertCDataKey && name.indexOf(this.stringify.convertCDataKey) === 0) {
- lastChild = this.cdata(text);
- } else if (!this.options.ignoreDecorators && this.stringify.convertCommentKey && name.indexOf(this.stringify.convertCommentKey) === 0) {
- lastChild = this.comment(text);
- } else if (!this.options.ignoreDecorators && this.stringify.convertRawKey && name.indexOf(this.stringify.convertRawKey) === 0) {
- lastChild = this.raw(text);
- } else {
- lastChild = this.node(name, attributes, text);
- }
- }
- if (lastChild == null) {
- throw new Error("Could not create any elements with: " + name);
- }
- return lastChild;
- };
-
- XMLNode.prototype.insertBefore = function(name, attributes, text) {
- var child, i, removed;
- if (this.isRoot) {
- throw new Error("Cannot insert elements at root level");
- }
- i = this.parent.children.indexOf(this);
- removed = this.parent.children.splice(i);
- child = this.parent.element(name, attributes, text);
- Array.prototype.push.apply(this.parent.children, removed);
- return child;
- };
-
- XMLNode.prototype.insertAfter = function(name, attributes, text) {
- var child, i, removed;
- if (this.isRoot) {
- throw new Error("Cannot insert elements at root level");
- }
- i = this.parent.children.indexOf(this);
- removed = this.parent.children.splice(i + 1);
- child = this.parent.element(name, attributes, text);
- Array.prototype.push.apply(this.parent.children, removed);
- return child;
- };
-
- XMLNode.prototype.remove = function() {
- var i, ref;
- if (this.isRoot) {
- throw new Error("Cannot remove the root element");
- }
- i = this.parent.children.indexOf(this);
- [].splice.apply(this.parent.children, [i, i - i + 1].concat(ref = [])), ref;
- return this.parent;
- };
-
- XMLNode.prototype.node = function(name, attributes, text) {
- var child, ref;
- if (name != null) {
- name = name.valueOf();
- }
- if (attributes == null) {
- attributes = {};
- }
- attributes = attributes.valueOf();
- if (!isObject(attributes)) {
- ref = [attributes, text], text = ref[0], attributes = ref[1];
- }
- child = new XMLElement(this, name, attributes);
- if (text != null) {
- child.text(text);
- }
- this.children.push(child);
- return child;
- };
-
- XMLNode.prototype.text = function(value) {
- var child;
- child = new XMLText(this, value);
- this.children.push(child);
- return this;
- };
-
- XMLNode.prototype.cdata = function(value) {
- var child;
- child = new XMLCData(this, value);
- this.children.push(child);
- return this;
- };
-
- XMLNode.prototype.comment = function(value) {
- var child;
- child = new XMLComment(this, value);
- this.children.push(child);
- return this;
- };
-
- XMLNode.prototype.raw = function(value) {
- var child;
- child = new XMLRaw(this, value);
- this.children.push(child);
- return this;
- };
-
- XMLNode.prototype.declaration = function(version, encoding, standalone) {
- var doc, xmldec;
- doc = this.document();
- xmldec = new XMLDeclaration(doc, version, encoding, standalone);
- doc.xmldec = xmldec;
- return doc.root();
- };
-
- XMLNode.prototype.doctype = function(pubID, sysID) {
- var doc, doctype;
- doc = this.document();
- doctype = new XMLDocType(doc, pubID, sysID);
- doc.doctype = doctype;
- return doctype;
- };
-
- XMLNode.prototype.up = function() {
- if (this.isRoot) {
- throw new Error("The root node has no parent. Use doc() if you need to get the document object.");
- }
- return this.parent;
- };
-
- XMLNode.prototype.root = function() {
- var child;
- if (this.isRoot) {
- return this;
- }
- child = this.parent;
- while (!child.isRoot) {
- child = child.parent;
- }
- return child;
- };
-
- XMLNode.prototype.document = function() {
- return this.root().documentObject;
- };
-
- XMLNode.prototype.end = function(options) {
- return this.document().toString(options);
- };
-
- XMLNode.prototype.prev = function() {
- var i;
- if (this.isRoot) {
- throw new Error("Root node has no siblings");
- }
- i = this.parent.children.indexOf(this);
- if (i < 1) {
- throw new Error("Already at the first node");
- }
- return this.parent.children[i - 1];
- };
-
- XMLNode.prototype.next = function() {
- var i;
- if (this.isRoot) {
- throw new Error("Root node has no siblings");
- }
- i = this.parent.children.indexOf(this);
- if (i === -1 || i === this.parent.children.length - 1) {
- throw new Error("Already at the last node");
- }
- return this.parent.children[i + 1];
- };
-
- XMLNode.prototype.importXMLBuilder = function(xmlbuilder) {
- var clonedRoot;
- clonedRoot = xmlbuilder.root().clone();
- clonedRoot.parent = this;
- clonedRoot.isRoot = false;
- this.children.push(clonedRoot);
- return this;
- };
-
- XMLNode.prototype.ele = function(name, attributes, text) {
- return this.element(name, attributes, text);
- };
-
- XMLNode.prototype.nod = function(name, attributes, text) {
- return this.node(name, attributes, text);
- };
-
- XMLNode.prototype.txt = function(value) {
- return this.text(value);
- };
-
- XMLNode.prototype.dat = function(value) {
- return this.cdata(value);
- };
-
- XMLNode.prototype.com = function(value) {
- return this.comment(value);
- };
-
- XMLNode.prototype.doc = function() {
- return this.document();
- };
-
- XMLNode.prototype.dec = function(version, encoding, standalone) {
- return this.declaration(version, encoding, standalone);
- };
-
- XMLNode.prototype.dtd = function(pubID, sysID) {
- return this.doctype(pubID, sysID);
- };
-
- XMLNode.prototype.e = function(name, attributes, text) {
- return this.element(name, attributes, text);
- };
-
- XMLNode.prototype.n = function(name, attributes, text) {
- return this.node(name, attributes, text);
- };
-
- XMLNode.prototype.t = function(value) {
- return this.text(value);
- };
-
- XMLNode.prototype.d = function(value) {
- return this.cdata(value);
- };
-
- XMLNode.prototype.c = function(value) {
- return this.comment(value);
- };
-
- XMLNode.prototype.r = function(value) {
- return this.raw(value);
- };
-
- XMLNode.prototype.u = function() {
- return this.up();
- };
-
- return XMLNode;
-
- })();
-
-}).call(this);
diff --git a/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js b/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js
deleted file mode 100644
index 596f5a6de..000000000
--- a/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js
+++ /dev/null
@@ -1,51 +0,0 @@
-// Generated by CoffeeScript 1.9.1
-(function() {
- var XMLProcessingInstruction, create;
-
- create = require('lodash/create');
-
- module.exports = XMLProcessingInstruction = (function() {
- function XMLProcessingInstruction(parent, target, value) {
- this.stringify = parent.stringify;
- if (target == null) {
- throw new Error("Missing instruction target");
- }
- this.target = this.stringify.insTarget(target);
- if (value) {
- this.value = this.stringify.insValue(value);
- }
- }
-
- XMLProcessingInstruction.prototype.clone = function() {
- return create(XMLProcessingInstruction.prototype, this);
- };
-
- XMLProcessingInstruction.prototype.toString = function(options, level) {
- var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
- pretty = (options != null ? options.pretty : void 0) || false;
- indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
- offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
- newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
- level || (level = 0);
- space = new Array(level + offset + 1).join(indent);
- r = '';
- if (pretty) {
- r += space;
- }
- r += '<?';
- r += this.target;
- if (this.value) {
- r += ' ' + this.value;
- }
- r += '?>';
- if (pretty) {
- r += newline;
- }
- return r;
- };
-
- return XMLProcessingInstruction;
-
- })();
-
-}).call(this);
diff --git a/node_modules/xmlbuilder/lib/XMLRaw.js b/node_modules/xmlbuilder/lib/XMLRaw.js
deleted file mode 100644
index 9f4896231..000000000
--- a/node_modules/xmlbuilder/lib/XMLRaw.js
+++ /dev/null
@@ -1,49 +0,0 @@
-// Generated by CoffeeScript 1.9.1
-(function() {
- var XMLNode, XMLRaw, create,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
-
- create = require('lodash/create');
-
- XMLNode = require('./XMLNode');
-
- module.exports = XMLRaw = (function(superClass) {
- extend(XMLRaw, superClass);
-
- function XMLRaw(parent, text) {
- XMLRaw.__super__.constructor.call(this, parent);
- if (text == null) {
- throw new Error("Missing raw text");
- }
- this.value = this.stringify.raw(text);
- }
-
- XMLRaw.prototype.clone = function() {
- return create(XMLRaw.prototype, this);
- };
-
- XMLRaw.prototype.toString = function(options, level) {
- var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
- pretty = (options != null ? options.pretty : void 0) || false;
- indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
- offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
- newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
- level || (level = 0);
- space = new Array(level + offset + 1).join(indent);
- r = '';
- if (pretty) {
- r += space;
- }
- r += this.value;
- if (pretty) {
- r += newline;
- }
- return r;
- };
-
- return XMLRaw;
-
- })(XMLNode);
-
-}).call(this);
diff --git a/node_modules/xmlbuilder/lib/XMLStringifier.js b/node_modules/xmlbuilder/lib/XMLStringifier.js
deleted file mode 100644
index c3c4722be..000000000
--- a/node_modules/xmlbuilder/lib/XMLStringifier.js
+++ /dev/null
@@ -1,170 +0,0 @@
-// Generated by CoffeeScript 1.9.1
-(function() {
- var XMLStringifier,
- bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
- hasProp = {}.hasOwnProperty;
-
- module.exports = XMLStringifier = (function() {
- function XMLStringifier(options) {
- this.assertLegalChar = bind(this.assertLegalChar, this);
- var key, ref, value;
- this.allowSurrogateChars = options != null ? options.allowSurrogateChars : void 0;
- this.noDoubleEncoding = options != null ? options.noDoubleEncoding : void 0;
- ref = (options != null ? options.stringify : void 0) || {};
- for (key in ref) {
- if (!hasProp.call(ref, key)) continue;
- value = ref[key];
- this[key] = value;
- }
- }
-
- XMLStringifier.prototype.eleName = function(val) {
- val = '' + val || '';
- return this.assertLegalChar(val);
- };
-
- XMLStringifier.prototype.eleText = function(val) {
- val = '' + val || '';
- return this.assertLegalChar(this.elEscape(val));
- };
-
- XMLStringifier.prototype.cdata = function(val) {
- val = '' + val || '';
- if (val.match(/]]>/)) {
- throw new Error("Invalid CDATA text: " + val);
- }
- return this.assertLegalChar(val);
- };
-
- XMLStringifier.prototype.comment = function(val) {
- val = '' + val || '';
- if (val.match(/--/)) {
- throw new Error("Comment text cannot contain double-hypen: " + val);
- }
- return this.assertLegalChar(val);
- };
-
- XMLStringifier.prototype.raw = function(val) {
- return '' + val || '';
- };
-
- XMLStringifier.prototype.attName = function(val) {
- return '' + val || '';
- };
-
- XMLStringifier.prototype.attValue = function(val) {
- val = '' + val || '';
- return this.attEscape(val);
- };
-
- XMLStringifier.prototype.insTarget = function(val) {
- return '' + val || '';
- };
-
- XMLStringifier.prototype.insValue = function(val) {
- val = '' + val || '';
- if (val.match(/\?>/)) {
- throw new Error("Invalid processing instruction value: " + val);
- }
- return val;
- };
-
- XMLStringifier.prototype.xmlVersion = function(val) {
- val = '' + val || '';
- if (!val.match(/1\.[0-9]+/)) {
- throw new Error("Invalid version number: " + val);
- }
- return val;
- };
-
- XMLStringifier.prototype.xmlEncoding = function(val) {
- val = '' + val || '';
- if (!val.match(/^[A-Za-z](?:[A-Za-z0-9._-]|-)*$/)) {
- throw new Error("Invalid encoding: " + val);
- }
- return val;
- };
-
- XMLStringifier.prototype.xmlStandalone = function(val) {
- if (val) {
- return "yes";
- } else {
- return "no";
- }
- };
-
- XMLStringifier.prototype.dtdPubID = function(val) {
- return '' + val || '';
- };
-
- XMLStringifier.prototype.dtdSysID = function(val) {
- return '' + val || '';
- };
-
- XMLStringifier.prototype.dtdElementValue = function(val) {
- return '' + val || '';
- };
-
- XMLStringifier.prototype.dtdAttType = function(val) {
- return '' + val || '';
- };
-
- XMLStringifier.prototype.dtdAttDefault = function(val) {
- if (val != null) {
- return '' + val || '';
- } else {
- return val;
- }
- };
-
- XMLStringifier.prototype.dtdEntityValue = function(val) {
- return '' + val || '';
- };
-
- XMLStringifier.prototype.dtdNData = function(val) {
- return '' + val || '';
- };
-
- XMLStringifier.prototype.convertAttKey = '@';
-
- XMLStringifier.prototype.convertPIKey = '?';
-
- XMLStringifier.prototype.convertTextKey = '#text';
-
- XMLStringifier.prototype.convertCDataKey = '#cdata';
-
- XMLStringifier.prototype.convertCommentKey = '#comment';
-
- XMLStringifier.prototype.convertRawKey = '#raw';
-
- XMLStringifier.prototype.assertLegalChar = function(str) {
- var chars, chr;
- if (this.allowSurrogateChars) {
- chars = /[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uFFFE-\uFFFF]/;
- } else {
- chars = /[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uD800-\uDFFF\uFFFE-\uFFFF]/;
- }
- chr = str.match(chars);
- if (chr) {
- throw new Error("Invalid character (" + chr + ") in string: " + str + " at index " + chr.index);
- }
- return str;
- };
-
- XMLStringifier.prototype.elEscape = function(str) {
- var ampregex;
- ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g;
- return str.replace(ampregex, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\r/g, '&#xD;');
- };
-
- XMLStringifier.prototype.attEscape = function(str) {
- var ampregex;
- ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g;
- return str.replace(ampregex, '&amp;').replace(/</g, '&lt;').replace(/"/g, '&quot;');
- };
-
- return XMLStringifier;
-
- })();
-
-}).call(this);
diff --git a/node_modules/xmlbuilder/lib/XMLText.js b/node_modules/xmlbuilder/lib/XMLText.js
deleted file mode 100644
index c4f27ab49..000000000
--- a/node_modules/xmlbuilder/lib/XMLText.js
+++ /dev/null
@@ -1,49 +0,0 @@
-// Generated by CoffeeScript 1.9.1
-(function() {
- var XMLNode, XMLText, create,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
-
- create = require('lodash/create');
-
- XMLNode = require('./XMLNode');
-
- module.exports = XMLText = (function(superClass) {
- extend(XMLText, superClass);
-
- function XMLText(parent, text) {
- XMLText.__super__.constructor.call(this, parent);
- if (text == null) {
- throw new Error("Missing element text");
- }
- this.value = this.stringify.eleText(text);
- }
-
- XMLText.prototype.clone = function() {
- return create(XMLText.prototype, this);
- };
-
- XMLText.prototype.toString = function(options, level) {
- var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
- pretty = (options != null ? options.pretty : void 0) || false;
- indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
- offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
- newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
- level || (level = 0);
- space = new Array(level + offset + 1).join(indent);
- r = '';
- if (pretty) {
- r += space;
- }
- r += this.value;
- if (pretty) {
- r += newline;
- }
- return r;
- };
-
- return XMLText;
-
- })(XMLNode);
-
-}).call(this);
diff --git a/node_modules/xmlbuilder/lib/index.js b/node_modules/xmlbuilder/lib/index.js
deleted file mode 100644
index be80d7cc9..000000000
--- a/node_modules/xmlbuilder/lib/index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Generated by CoffeeScript 1.9.1
-(function() {
- var XMLBuilder, assign;
-
- assign = require('lodash/assign');
-
- XMLBuilder = require('./XMLBuilder');
-
- module.exports.create = function(name, xmldec, doctype, options) {
- options = assign({}, xmldec, doctype, options);
- return new XMLBuilder(name, options).root();
- };
-
-}).call(this);
diff --git a/node_modules/xmlbuilder/package.json b/node_modules/xmlbuilder/package.json
deleted file mode 100644
index e18f260e7..000000000
--- a/node_modules/xmlbuilder/package.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "xmlbuilder",
- "version": "4.2.1",
- "keywords": [
- "xml",
- "xmlbuilder"
- ],
- "homepage": "http://github.com/oozcitak/xmlbuilder-js",
- "description": "An XML builder for node.js",
- "author": "Ozgur Ozcitak <oozcitak@gmail.com>",
- "contributors": [],
- "license": "MIT",
- "repository": {
- "type": "git",
- "url": "git://github.com/oozcitak/xmlbuilder-js.git"
- },
- "bugs": {
- "url": "http://github.com/oozcitak/xmlbuilder-js/issues"
- },
- "main": "./lib/index",
- "engines": {
- "node": ">=0.8.0"
- },
- "dependencies": {
- "lodash": "^4.0.0"
- },
- "devDependencies": {
- "coffee-script": "*",
- "mocha": "*",
- "coffee-coverage": "*",
- "istanbul": "*",
- "coveralls": "*"
- },
- "scripts": {
- "prepublish": "coffee -co lib src",
- "postpublish": "rm -rf lib",
- "test": "mocha && istanbul report text lcov"
- }
-}
diff --git a/node_modules/yargs-parser/CHANGELOG.md b/node_modules/yargs-parser/CHANGELOG.md
index bf172df5f..cd060f3c6 100644
--- a/node_modules/yargs-parser/CHANGELOG.md
+++ b/node_modules/yargs-parser/CHANGELOG.md
@@ -2,6 +2,21 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="5.0.0"></a>
+# [5.0.0](https://github.com/yargs/yargs-parser/compare/v4.2.1...v5.0.0) (2017-02-18)
+
+
+### Bug Fixes
+
+* environment variables should take precedence over config file ([#81](https://github.com/yargs/yargs-parser/issues/81)) ([76cee1f](https://github.com/yargs/yargs-parser/commit/76cee1f))
+
+
+### BREAKING CHANGES
+
+* environment variables will now override config files (args, env, config-file, config-object)
+
+
+
<a name="4.2.1"></a>
## [4.2.1](https://github.com/yargs/yargs-parser/compare/v4.2.0...v4.2.1) (2017-01-02)
diff --git a/node_modules/yargs-parser/README.md b/node_modules/yargs-parser/README.md
index cf4517481..6d5916c33 100644
--- a/node_modules/yargs-parser/README.md
+++ b/node_modules/yargs-parser/README.md
@@ -11,7 +11,7 @@ The mighty option parser used by [yargs](https://github.com/yargs/yargs).
visit the [yargs website](http://yargs.js.org/) for more examples, and thorough usage instructions.
-<img width="250" src="yargs-logo.png">
+<img width="250" src="https://github.com/yargs/yargs-parser/blob/master/yargs-logo.png">
## Example
diff --git a/node_modules/yargs-parser/index.js b/node_modules/yargs-parser/index.js
index 1a04d559b..b71faf584 100644
--- a/node_modules/yargs-parser/index.js
+++ b/node_modules/yargs-parser/index.js
@@ -273,14 +273,14 @@ function parse (args, opts) {
// order of precedence:
// 1. command line arg
- // 2. value from config file
- // 3. value from config objects
- // 4. value from env var
+ // 2. value from env var
+ // 3. value from config file
+ // 4. value from config objects
// 5. configured default value
applyEnvVars(argv, true) // special case: check env vars that point to config file
+ applyEnvVars(argv, false)
setConfig(argv)
setConfigObjects()
- applyEnvVars(argv, false)
applyDefaultsAndAliases(argv, flags.aliases, defaults)
applyCoercions(argv)
diff --git a/node_modules/yargs-parser/package.json b/node_modules/yargs-parser/package.json
index 9b3ddd555..d025a7ef7 100644
--- a/node_modules/yargs-parser/package.json
+++ b/node_modules/yargs-parser/package.json
@@ -1,6 +1,6 @@
{
"name": "yargs-parser",
- "version": "4.2.1",
+ "version": "5.0.0",
"description": "the mighty option parser used by yargs",
"main": "index.js",
"scripts": {
diff --git a/node_modules/yargs/node_modules/cliui/CHANGELOG.md b/node_modules/yargs/node_modules/cliui/CHANGELOG.md
deleted file mode 100644
index ef6a35ef4..000000000
--- a/node_modules/yargs/node_modules/cliui/CHANGELOG.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="3.2.0"></a>
-# [3.2.0](https://github.com/yargs/cliui/compare/v3.1.2...v3.2.0) (2016-04-11)
-
-
-### Bug Fixes
-
-* reduces tarball size ([acc6c33](https://github.com/yargs/cliui/commit/acc6c33))
-
-### Features
-
-* adds standard-version for release management ([ff84e32](https://github.com/yargs/cliui/commit/ff84e32))
diff --git a/node_modules/yargs/node_modules/cliui/LICENSE.txt b/node_modules/yargs/node_modules/cliui/LICENSE.txt
deleted file mode 100644
index c7e27478a..000000000
--- a/node_modules/yargs/node_modules/cliui/LICENSE.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright (c) 2015, Contributors
-
-Permission to use, copy, modify, and/or distribute this software
-for any purpose with or without fee is hereby granted, provided
-that the above copyright notice and this permission notice
-appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE
-LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
-OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/yargs/node_modules/cliui/README.md b/node_modules/yargs/node_modules/cliui/README.md
deleted file mode 100644
index 028392c26..000000000
--- a/node_modules/yargs/node_modules/cliui/README.md
+++ /dev/null
@@ -1,110 +0,0 @@
-# cliui
-
-[![Build Status](https://travis-ci.org/yargs/cliui.svg)](https://travis-ci.org/yargs/cliui)
-[![Coverage Status](https://coveralls.io/repos/yargs/cliui/badge.svg?branch=)](https://coveralls.io/r/yargs/cliui?branch=)
-[![NPM version](https://img.shields.io/npm/v/cliui.svg)](https://www.npmjs.com/package/cliui)
-[![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)
-
-easily create complex multi-column command-line-interfaces.
-
-## Example
-
-```js
-var ui = require('cliui')({
- width: 80
-})
-
-ui.div('Usage: $0 [command] [options]')
-
-ui.div({
- text: 'Options:',
- padding: [2, 0, 2, 0]
-})
-
-ui.div(
- {
- text: "-f, --file",
- width: 20,
- padding: [0, 4, 0, 4]
- },
- {
- text: "the file to load." +
- chalk.green("(if this description is long it wraps).")
- ,
- width: 20
- },
- {
- text: chalk.red("[required]"),
- align: 'right'
- }
-)
-
-console.log(ui.toString())
-```
-
-<img width="500" src="screenshot.png">
-
-## Layout DSL
-
-cliui exposes a simple layout DSL:
-
-If you create a single `ui.row`, passing a string rather than an
-object:
-
-* `\n`: characters will be interpreted as new rows.
-* `\t`: characters will be interpreted as new columns.
-* `\s`: characters will be interpreted as padding.
-
-**as an example...**
-
-```js
-var ui = require('./')({
- width: 60
-})
-
-ui.div(
- 'Usage: node ./bin/foo.js\n' +
- ' <regex>\t provide a regex\n' +
- ' <glob>\t provide a glob\t [required]'
-)
-
-console.log(ui.toString())
-```
-
-**will output:**
-
-```shell
-Usage: node ./bin/foo.js
- <regex> provide a regex
- <glob> provide a glob [required]
-```
-
-## Methods
-
-```js
-cliui = require('cliui')
-```
-
-### cliui({width: integer})
-
-Specify the maximum width of the UI being generated.
-
-### cliui({wrap: boolean})
-
-Enable or disable the wrapping of text in a column.
-
-### cliui.div(column, column, column)
-
-Create a row with any number of columns, a column
-can either be a string, or an object with the following
-options:
-
-* **width:** the width of a column.
-* **align:** alignment, `right` or `center`.
-* **padding:** `[top, right, bottom, left]`.
-* **border:** should a border be placed around the div?
-
-### cliui.span(column, column, column)
-
-Similar to `div`, except the next row will be appended without
-a new line being created.
diff --git a/node_modules/yargs/node_modules/cliui/index.js b/node_modules/yargs/node_modules/cliui/index.js
deleted file mode 100644
index e501e78fd..000000000
--- a/node_modules/yargs/node_modules/cliui/index.js
+++ /dev/null
@@ -1,316 +0,0 @@
-var stringWidth = require('string-width')
-var stripAnsi = require('strip-ansi')
-var wrap = require('wrap-ansi')
-var align = {
- right: alignRight,
- center: alignCenter
-}
-var top = 0
-var right = 1
-var bottom = 2
-var left = 3
-
-function UI (opts) {
- this.width = opts.width
- this.wrap = opts.wrap
- this.rows = []
-}
-
-UI.prototype.span = function () {
- var cols = this.div.apply(this, arguments)
- cols.span = true
-}
-
-UI.prototype.div = function () {
- if (arguments.length === 0) this.div('')
- if (this.wrap && this._shouldApplyLayoutDSL.apply(this, arguments)) {
- return this._applyLayoutDSL(arguments[0])
- }
-
- var cols = []
-
- for (var i = 0, arg; (arg = arguments[i]) !== undefined; i++) {
- if (typeof arg === 'string') cols.push(this._colFromString(arg))
- else cols.push(arg)
- }
-
- this.rows.push(cols)
- return cols
-}
-
-UI.prototype._shouldApplyLayoutDSL = function () {
- return arguments.length === 1 && typeof arguments[0] === 'string' &&
- /[\t\n]/.test(arguments[0])
-}
-
-UI.prototype._applyLayoutDSL = function (str) {
- var _this = this
- var rows = str.split('\n')
- var leftColumnWidth = 0
-
- // simple heuristic for layout, make sure the
- // second column lines up along the left-hand.
- // don't allow the first column to take up more
- // than 50% of the screen.
- rows.forEach(function (row) {
- var columns = row.split('\t')
- if (columns.length > 1 && stringWidth(columns[0]) > leftColumnWidth) {
- leftColumnWidth = Math.min(
- Math.floor(_this.width * 0.5),
- stringWidth(columns[0])
- )
- }
- })
-
- // generate a table:
- // replacing ' ' with padding calculations.
- // using the algorithmically generated width.
- rows.forEach(function (row) {
- var columns = row.split('\t')
- _this.div.apply(_this, columns.map(function (r, i) {
- return {
- text: r.trim(),
- padding: _this._measurePadding(r),
- width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined
- }
- }))
- })
-
- return this.rows[this.rows.length - 1]
-}
-
-UI.prototype._colFromString = function (str) {
- return {
- text: str,
- padding: this._measurePadding(str)
- }
-}
-
-UI.prototype._measurePadding = function (str) {
- // measure padding without ansi escape codes
- var noAnsi = stripAnsi(str)
- return [0, noAnsi.match(/\s*$/)[0].length, 0, noAnsi.match(/^\s*/)[0].length]
-}
-
-UI.prototype.toString = function () {
- var _this = this
- var lines = []
-
- _this.rows.forEach(function (row, i) {
- _this.rowToString(row, lines)
- })
-
- // don't display any lines with the
- // hidden flag set.
- lines = lines.filter(function (line) {
- return !line.hidden
- })
-
- return lines.map(function (line) {
- return line.text
- }).join('\n')
-}
-
-UI.prototype.rowToString = function (row, lines) {
- var _this = this
- var padding
- var rrows = this._rasterize(row)
- var str = ''
- var ts
- var width
- var wrapWidth
-
- rrows.forEach(function (rrow, r) {
- str = ''
- rrow.forEach(function (col, c) {
- ts = '' // temporary string used during alignment/padding.
- width = row[c].width // the width with padding.
- wrapWidth = _this._negatePadding(row[c]) // the width without padding.
-
- ts += col
-
- for (var i = 0; i < wrapWidth - stringWidth(col); i++) {
- ts += ' '
- }
-
- // align the string within its column.
- if (row[c].align && row[c].align !== 'left' && _this.wrap) {
- ts = align[row[c].align](ts, wrapWidth)
- if (stringWidth(ts) < wrapWidth) ts += new Array(width - stringWidth(ts)).join(' ')
- }
-
- // apply border and padding to string.
- padding = row[c].padding || [0, 0, 0, 0]
- if (padding[left]) str += new Array(padding[left] + 1).join(' ')
- str += addBorder(row[c], ts, '| ')
- str += ts
- str += addBorder(row[c], ts, ' |')
- if (padding[right]) str += new Array(padding[right] + 1).join(' ')
-
- // if prior row is span, try to render the
- // current row on the prior line.
- if (r === 0 && lines.length > 0) {
- str = _this._renderInline(str, lines[lines.length - 1])
- }
- })
-
- // remove trailing whitespace.
- lines.push({
- text: str.replace(/ +$/, ''),
- span: row.span
- })
- })
-
- return lines
-}
-
-function addBorder (col, ts, style) {
- if (col.border) {
- if (/[.']-+[.']/.test(ts)) return ''
- else if (ts.trim().length) return style
- else return ' '
- }
- return ''
-}
-
-// if the full 'source' can render in
-// the target line, do so.
-UI.prototype._renderInline = function (source, previousLine) {
- var leadingWhitespace = source.match(/^ */)[0].length
- var target = previousLine.text
- var targetTextWidth = stringWidth(target.trimRight())
-
- if (!previousLine.span) return source
-
- // if we're not applying wrapping logic,
- // just always append to the span.
- if (!this.wrap) {
- previousLine.hidden = true
- return target + source
- }
-
- if (leadingWhitespace < targetTextWidth) return source
-
- previousLine.hidden = true
-
- return target.trimRight() + new Array(leadingWhitespace - targetTextWidth + 1).join(' ') + source.trimLeft()
-}
-
-UI.prototype._rasterize = function (row) {
- var _this = this
- var i
- var rrow
- var rrows = []
- var widths = this._columnWidths(row)
- var wrapped
-
- // word wrap all columns, and create
- // a data-structure that is easy to rasterize.
- row.forEach(function (col, c) {
- // leave room for left and right padding.
- col.width = widths[c]
- if (_this.wrap) wrapped = wrap(col.text, _this._negatePadding(col), {hard: true}).split('\n')
- else wrapped = col.text.split('\n')
-
- if (col.border) {
- wrapped.unshift('.' + new Array(_this._negatePadding(col) + 3).join('-') + '.')
- wrapped.push("'" + new Array(_this._negatePadding(col) + 3).join('-') + "'")
- }
-
- // add top and bottom padding.
- if (col.padding) {
- for (i = 0; i < (col.padding[top] || 0); i++) wrapped.unshift('')
- for (i = 0; i < (col.padding[bottom] || 0); i++) wrapped.push('')
- }
-
- wrapped.forEach(function (str, r) {
- if (!rrows[r]) rrows.push([])
-
- rrow = rrows[r]
-
- for (var i = 0; i < c; i++) {
- if (rrow[i] === undefined) rrow.push('')
- }
- rrow.push(str)
- })
- })
-
- return rrows
-}
-
-UI.prototype._negatePadding = function (col) {
- var wrapWidth = col.width
- if (col.padding) wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0)
- if (col.border) wrapWidth -= 4
- return wrapWidth
-}
-
-UI.prototype._columnWidths = function (row) {
- var _this = this
- var widths = []
- var unset = row.length
- var unsetWidth
- var remainingWidth = this.width
-
- // column widths can be set in config.
- row.forEach(function (col, i) {
- if (col.width) {
- unset--
- widths[i] = col.width
- remainingWidth -= col.width
- } else {
- widths[i] = undefined
- }
- })
-
- // any unset widths should be calculated.
- if (unset) unsetWidth = Math.floor(remainingWidth / unset)
- widths.forEach(function (w, i) {
- if (!_this.wrap) widths[i] = row[i].width || stringWidth(row[i].text)
- else if (w === undefined) widths[i] = Math.max(unsetWidth, _minWidth(row[i]))
- })
-
- return widths
-}
-
-// calculates the minimum width of
-// a column, based on padding preferences.
-function _minWidth (col) {
- var padding = col.padding || []
- var minWidth = 1 + (padding[left] || 0) + (padding[right] || 0)
- if (col.border) minWidth += 4
- return minWidth
-}
-
-function alignRight (str, width) {
- str = str.trim()
- var padding = ''
- var strWidth = stringWidth(str)
-
- if (strWidth < width) {
- padding = new Array(width - strWidth + 1).join(' ')
- }
-
- return padding + str
-}
-
-function alignCenter (str, width) {
- str = str.trim()
- var padding = ''
- var strWidth = stringWidth(str.trim())
-
- if (strWidth < width) {
- padding = new Array(parseInt((width - strWidth) / 2, 10) + 1).join(' ')
- }
-
- return padding + str
-}
-
-module.exports = function (opts) {
- opts = opts || {}
-
- return new UI({
- width: (opts || {}).width || 80,
- wrap: typeof opts.wrap === 'boolean' ? opts.wrap : true
- })
-}
diff --git a/node_modules/yargs/node_modules/cliui/package.json b/node_modules/yargs/node_modules/cliui/package.json
deleted file mode 100644
index 31c654c39..000000000
--- a/node_modules/yargs/node_modules/cliui/package.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "name": "cliui",
- "version": "3.2.0",
- "description": "easily create complex multi-column command-line-interfaces",
- "main": "index.js",
- "scripts": {
- "pretest": "standard",
- "test": "nyc mocha",
- "coverage": "nyc --reporter=text-lcov mocha | coveralls",
- "version": "standard-version"
- },
- "repository": {
- "type": "git",
- "url": "http://github.com/yargs/cliui.git"
- },
- "config": {
- "blanket": {
- "pattern": [
- "index.js"
- ],
- "data-cover-never": [
- "node_modules",
- "test"
- ],
- "output-reporter": "spec"
- }
- },
- "standard": {
- "ignore": [
- "**/example/**"
- ],
- "globals": [
- "it"
- ]
- },
- "keywords": [
- "cli",
- "command-line",
- "layout",
- "design",
- "console",
- "wrap",
- "table"
- ],
- "author": "Ben Coe <ben@npmjs.com>",
- "license": "ISC",
- "dependencies": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wrap-ansi": "^2.0.0"
- },
- "devDependencies": {
- "chai": "^3.5.0",
- "chalk": "^1.1.2",
- "coveralls": "^2.11.8",
- "mocha": "^2.4.5",
- "nyc": "^6.4.0",
- "standard": "^6.0.8",
- "standard-version": "^2.1.2"
- },
- "files": [
- "index.js"
- ]
-} \ No newline at end of file
diff --git a/package.json b/package.json
index 5c7c44205..102a937db 100644
--- a/package.json
+++ b/package.json
@@ -17,10 +17,7 @@
"@types/moment": "^2.13.0",
"@types/react": "^15.0.22",
"@types/react-dom": "^15.5.0",
- "async": "^2.1.2",
- "better-assert": "^1.0.2",
- "connect": "^3.5.0",
- "del": "^2.2.0",
+ "ava": "^0.19.1",
"glob": "^7.1.1",
"gulp": "^3.9.1",
"gulp-concat": "^2.6.0",
@@ -34,34 +31,25 @@
"gulp-typescript": "^3.0.2",
"gulp-zip": "^3.1.0",
"html-webpack-plugin": "^2.28.0",
- "istanbul": "^0.4.5",
- "istanbul-lib-instrument": "^1.0.0-alpha.6",
"jed": "^1.1.1",
"map-stream": "0.0.6",
- "minimist": "^1.2.0",
- "mocha": "^2.4.5",
"moment": "^2.18.1",
+ "nyc": "^10.3.2",
"po2json": "git+https://github.com/mikeedwards/po2json",
+ "pogen": "file:tooling/pogen/",
"react": "^15.5.4",
"react-dom": "^15.5.4",
- "selenium-webdriver": "^3.0.1",
- "serve-static": "^1.11.1",
- "systemjs": "^0.19.14",
"talertest": "file:tooling/talertest/",
"through2": "^2.0.1",
+ "tiny-worker": "^2.1.1",
"ts-loader": "^2.0.3",
"typedoc": "^0.7.1",
"typescript": "next",
- "typhonjs-istanbul-instrument-jspm": "^0.1.0",
"uglify-js": "^2.8.22",
"urijs": "^1.18.10",
"vinyl": "^2.0.0",
"vinyl-fs": "^2.4.3",
"webpack": "^2.4.1",
"webpack-merge": "^4.1.0"
- },
- "dependencies": {
- "pogen": "file:tooling/pogen/",
- "tiny-worker": "^2.1.1"
}
}
diff --git a/yarn.lock b/yarn.lock
index e3f61f9da..590940225 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,6 +2,41 @@
# yarn lockfile v1
+"@ava/babel-plugin-throws-helper@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@ava/babel-plugin-throws-helper/-/babel-plugin-throws-helper-2.0.0.tgz#2fc1fe3c211a71071a4eca7b8f7af5842cd1ae7c"
+
+"@ava/babel-preset-stage-4@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@ava/babel-preset-stage-4/-/babel-preset-stage-4-1.0.0.tgz#a613b5e152f529305422546b072d47facfb26291"
+ dependencies:
+ babel-plugin-check-es2015-constants "^6.8.0"
+ babel-plugin-syntax-trailing-function-commas "^6.20.0"
+ babel-plugin-transform-async-to-generator "^6.16.0"
+ babel-plugin-transform-es2015-destructuring "^6.19.0"
+ babel-plugin-transform-es2015-function-name "^6.9.0"
+ babel-plugin-transform-es2015-modules-commonjs "^6.18.0"
+ babel-plugin-transform-es2015-parameters "^6.21.0"
+ babel-plugin-transform-es2015-spread "^6.8.0"
+ babel-plugin-transform-es2015-sticky-regex "^6.8.0"
+ babel-plugin-transform-es2015-unicode-regex "^6.11.0"
+ babel-plugin-transform-exponentiation-operator "^6.8.0"
+ package-hash "^1.2.0"
+
+"@ava/babel-preset-transform-test-files@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@ava/babel-preset-transform-test-files/-/babel-preset-transform-test-files-3.0.0.tgz#cded1196a8d8d9381a509240ab92e91a5ec069f7"
+ dependencies:
+ "@ava/babel-plugin-throws-helper" "^2.0.0"
+ babel-plugin-espower "^2.3.2"
+
+"@ava/pretty-format@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@ava/pretty-format/-/pretty-format-1.1.0.tgz#d0a57d25eb9aeab9643bdd1a030642b91c123e28"
+ dependencies:
+ ansi-styles "^2.2.1"
+ esutils "^2.0.2"
+
"@types/fs-extra@^3.0.0":
version "3.0.2"
resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-3.0.2.tgz#00cbf48563f377f9ce5cf24237b21b3d9779e055"
@@ -54,7 +89,7 @@
dependencies:
"@types/node" "*"
-abbrev@1, abbrev@1.0.x:
+abbrev@1:
version "1.0.9"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
@@ -72,10 +107,6 @@ acorn@^5.0.0:
version "5.0.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d"
-adm-zip@^0.4.7:
- version "0.4.7"
- resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1"
-
ajv-keywords@^1.1.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
@@ -99,6 +130,12 @@ amdefine@>=0.0.4:
version "1.0.1"
resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
+ansi-align@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f"
+ dependencies:
+ string-width "^2.0.0"
+
ansi-regex@^0.2.0, ansi-regex@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9"
@@ -115,6 +152,12 @@ ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+ansi-styles@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.0.0.tgz#5404e93a544c4fec7f048262977bebfe3155e0c1"
+ dependencies:
+ color-convert "^1.0.0"
+
ansi-styles@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178"
@@ -126,6 +169,12 @@ anymatch@^1.3.0:
arrify "^1.0.0"
micromatch "^2.1.5"
+append-transform@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991"
+ dependencies:
+ default-require-extensions "^1.0.0"
+
aproba@^1.0.3:
version "1.1.1"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab"
@@ -178,6 +227,10 @@ arr-diff@^2.0.0:
dependencies:
arr-flatten "^1.0.1"
+arr-exclude@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/arr-exclude/-/arr-exclude-1.0.0.tgz#dfc7c2e552a270723ccda04cf3128c8cbfe5c631"
+
arr-flatten@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1"
@@ -204,7 +257,7 @@ array-unique@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
-arrify@^1.0.0:
+arrify@^1.0.0, arrify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
@@ -242,7 +295,7 @@ async-each@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
-async@1.x, async@^1.4.0:
+async@^1.4.0:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
@@ -256,6 +309,103 @@ asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+auto-bind@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-1.1.0.tgz#93b864dc7ee01a326281775d5c75ca0a751e5961"
+
+ava-init@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/ava-init/-/ava-init-0.2.0.tgz#9304c8b4c357d66e3dfdae1fbff47b1199d5c55d"
+ dependencies:
+ arr-exclude "^1.0.0"
+ execa "^0.5.0"
+ has-yarn "^1.0.0"
+ read-pkg-up "^2.0.0"
+ write-pkg "^2.0.0"
+
+ava@^0.19.1:
+ version "0.19.1"
+ resolved "https://registry.yarnpkg.com/ava/-/ava-0.19.1.tgz#43dd82435ad19b3980ffca2488f05daab940b273"
+ dependencies:
+ "@ava/babel-preset-stage-4" "^1.0.0"
+ "@ava/babel-preset-transform-test-files" "^3.0.0"
+ "@ava/pretty-format" "^1.1.0"
+ arr-flatten "^1.0.1"
+ array-union "^1.0.1"
+ array-uniq "^1.0.2"
+ arrify "^1.0.0"
+ auto-bind "^1.1.0"
+ ava-init "^0.2.0"
+ babel-code-frame "^6.16.0"
+ babel-core "^6.17.0"
+ bluebird "^3.0.0"
+ caching-transform "^1.0.0"
+ chalk "^1.0.0"
+ chokidar "^1.4.2"
+ clean-stack "^1.1.1"
+ clean-yaml-object "^0.1.0"
+ cli-cursor "^2.1.0"
+ cli-spinners "^1.0.0"
+ cli-truncate "^1.0.0"
+ co-with-promise "^4.6.0"
+ code-excerpt "^2.1.0"
+ common-path-prefix "^1.0.0"
+ convert-source-map "^1.2.0"
+ core-assert "^0.2.0"
+ currently-unhandled "^0.4.1"
+ debug "^2.2.0"
+ diff "^3.0.1"
+ diff-match-patch "^1.0.0"
+ dot-prop "^4.1.0"
+ empower-core "^0.6.1"
+ equal-length "^1.0.0"
+ figures "^2.0.0"
+ find-cache-dir "^0.1.1"
+ fn-name "^2.0.0"
+ get-port "^3.0.0"
+ globby "^6.0.0"
+ has-flag "^2.0.0"
+ hullabaloo-config-manager "^1.0.0"
+ ignore-by-default "^1.0.0"
+ indent-string "^3.0.0"
+ is-ci "^1.0.7"
+ is-generator-fn "^1.0.0"
+ is-obj "^1.0.0"
+ is-observable "^0.2.0"
+ is-promise "^2.1.0"
+ jest-diff "19.0.0"
+ jest-snapshot "19.0.2"
+ js-yaml "^3.8.2"
+ last-line-stream "^1.0.0"
+ lodash.debounce "^4.0.3"
+ lodash.difference "^4.3.0"
+ lodash.flatten "^4.2.0"
+ lodash.isequal "^4.5.0"
+ loud-rejection "^1.2.0"
+ matcher "^0.1.1"
+ md5-hex "^2.0.0"
+ meow "^3.7.0"
+ mkdirp "^0.5.1"
+ ms "^0.7.1"
+ multimatch "^2.1.0"
+ observable-to-promise "^0.5.0"
+ option-chain "^0.1.0"
+ package-hash "^2.0.0"
+ pkg-conf "^2.0.0"
+ plur "^2.0.0"
+ pretty-ms "^2.0.0"
+ require-precompiled "^0.1.0"
+ resolve-cwd "^1.0.0"
+ slash "^1.0.0"
+ source-map-support "^0.4.0"
+ stack-utils "^1.0.0"
+ strip-ansi "^3.0.1"
+ strip-bom-buf "^1.0.0"
+ supports-color "^3.2.3"
+ time-require "^0.1.2"
+ unique-temp-dir "^1.0.0"
+ update-notifier "^2.1.0"
+
aws-sign2@~0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
@@ -264,7 +414,7 @@ aws4@^1.2.1:
version "1.6.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
-babel-code-frame@^6.22.0:
+babel-code-frame@^6.16.0, babel-code-frame@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4"
dependencies:
@@ -272,7 +422,31 @@ babel-code-frame@^6.22.0:
esutils "^2.0.2"
js-tokens "^3.0.0"
-babel-generator@^6.18.0:
+babel-core@^6.17.0, babel-core@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.24.1.tgz#8c428564dce1e1f41fb337ec34f4c3b022b5ad83"
+ dependencies:
+ babel-code-frame "^6.22.0"
+ babel-generator "^6.24.1"
+ babel-helpers "^6.24.1"
+ babel-messages "^6.23.0"
+ babel-register "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+ babel-traverse "^6.24.1"
+ babel-types "^6.24.1"
+ babylon "^6.11.0"
+ convert-source-map "^1.1.0"
+ debug "^2.1.1"
+ json5 "^0.5.0"
+ lodash "^4.2.0"
+ minimatch "^3.0.2"
+ path-is-absolute "^1.0.0"
+ private "^0.1.6"
+ slash "^1.0.0"
+ source-map "^0.5.0"
+
+babel-generator@^6.1.0, babel-generator@^6.18.0, babel-generator@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.24.1.tgz#e715f486c58ded25649d888944d52aa07c5d9497"
dependencies:
@@ -285,12 +459,207 @@ babel-generator@^6.18.0:
source-map "^0.5.0"
trim-right "^1.0.1"
+babel-helper-builder-binary-assignment-operator-visitor@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664"
+ dependencies:
+ babel-helper-explode-assignable-expression "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+
+babel-helper-call-delegate@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d"
+ dependencies:
+ babel-helper-hoist-variables "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-traverse "^6.24.1"
+ babel-types "^6.24.1"
+
+babel-helper-explode-assignable-expression@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-traverse "^6.24.1"
+ babel-types "^6.24.1"
+
+babel-helper-function-name@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9"
+ dependencies:
+ babel-helper-get-function-arity "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+ babel-traverse "^6.24.1"
+ babel-types "^6.24.1"
+
+babel-helper-get-function-arity@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+
+babel-helper-hoist-variables@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+
+babel-helper-regex@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz#d36e22fab1008d79d88648e32116868128456ce8"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+ lodash "^4.2.0"
+
+babel-helper-remap-async-to-generator@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b"
+ dependencies:
+ babel-helper-function-name "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+ babel-traverse "^6.24.1"
+ babel-types "^6.24.1"
+
+babel-helpers@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+
babel-messages@^6.23.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
dependencies:
babel-runtime "^6.22.0"
+babel-plugin-check-es2015-constants@^6.8.0:
+ version "6.22.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a"
+ dependencies:
+ babel-runtime "^6.22.0"
+
+babel-plugin-espower@^2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-2.3.2.tgz#5516b8fcdb26c9f0e1d8160749f6e4c65e71271e"
+ dependencies:
+ babel-generator "^6.1.0"
+ babylon "^6.1.0"
+ call-matcher "^1.0.0"
+ core-js "^2.0.0"
+ espower-location-detector "^1.0.0"
+ espurify "^1.6.0"
+ estraverse "^4.1.1"
+
+babel-plugin-syntax-async-functions@^6.8.0:
+ version "6.13.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95"
+
+babel-plugin-syntax-exponentiation-operator@^6.8.0:
+ version "6.13.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de"
+
+babel-plugin-syntax-trailing-function-commas@^6.20.0:
+ version "6.22.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3"
+
+babel-plugin-transform-async-to-generator@^6.16.0:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761"
+ dependencies:
+ babel-helper-remap-async-to-generator "^6.24.1"
+ babel-plugin-syntax-async-functions "^6.8.0"
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-es2015-destructuring@^6.19.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d"
+ dependencies:
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-es2015-function-name@^6.9.0:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b"
+ dependencies:
+ babel-helper-function-name "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+
+babel-plugin-transform-es2015-modules-commonjs@^6.18.0:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz#d3e310b40ef664a36622200097c6d440298f2bfe"
+ dependencies:
+ babel-plugin-transform-strict-mode "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+ babel-types "^6.24.1"
+
+babel-plugin-transform-es2015-parameters@^6.21.0:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b"
+ dependencies:
+ babel-helper-call-delegate "^6.24.1"
+ babel-helper-get-function-arity "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+ babel-traverse "^6.24.1"
+ babel-types "^6.24.1"
+
+babel-plugin-transform-es2015-spread@^6.8.0:
+ version "6.22.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1"
+ dependencies:
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-es2015-sticky-regex@^6.8.0:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc"
+ dependencies:
+ babel-helper-regex "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+
+babel-plugin-transform-es2015-unicode-regex@^6.11.0:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9"
+ dependencies:
+ babel-helper-regex "^6.24.1"
+ babel-runtime "^6.22.0"
+ regexpu-core "^2.0.0"
+
+babel-plugin-transform-exponentiation-operator@^6.8.0:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e"
+ dependencies:
+ babel-helper-builder-binary-assignment-operator-visitor "^6.24.1"
+ babel-plugin-syntax-exponentiation-operator "^6.8.0"
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-strict-mode@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+
+babel-register@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f"
+ dependencies:
+ babel-core "^6.24.1"
+ babel-runtime "^6.22.0"
+ core-js "^2.4.0"
+ home-or-tmp "^2.0.0"
+ lodash "^4.2.0"
+ mkdirp "^0.5.1"
+ source-map-support "^0.4.2"
+
babel-runtime@^6.22.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b"
@@ -298,7 +667,7 @@ babel-runtime@^6.22.0:
core-js "^2.4.0"
regenerator-runtime "^0.10.0"
-babel-template@^6.16.0:
+babel-template@^6.16.0, babel-template@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.24.1.tgz#04ae514f1f93b3a2537f2a0f60a5a45fb8308333"
dependencies:
@@ -331,7 +700,7 @@ babel-types@^6.18.0, babel-types@^6.24.1:
lodash "^4.2.0"
to-fast-properties "^1.0.1"
-babylon@^6.11.0, babylon@^6.13.0, babylon@^6.15.0:
+babylon@^6.1.0, babylon@^6.11.0, babylon@^6.13.0, babylon@^6.15.0:
version "6.17.1"
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.1.tgz#17f14fddf361b695981fe679385e4f1c01ebd86f"
@@ -353,12 +722,6 @@ beeper@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809"
-better-assert@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
- dependencies:
- callsite "1.0.0"
-
big.js@^3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978"
@@ -379,7 +742,7 @@ block-stream@*:
dependencies:
inherits "~2.0.0"
-bluebird@^3.4.7:
+bluebird@^3.0.0, bluebird@^3.4.7:
version "3.5.0"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c"
@@ -397,6 +760,18 @@ boom@2.x.x:
dependencies:
hoek "2.x.x"
+boxen@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.1.0.tgz#b1b69dd522305e807a99deee777dbd6e5167b102"
+ dependencies:
+ ansi-align "^2.0.0"
+ camelcase "^4.0.0"
+ chalk "^1.1.1"
+ cli-boxes "^1.0.0"
+ string-width "^2.0.0"
+ term-size "^0.1.0"
+ widest-line "^1.0.0"
+
brace-expansion@^1.0.0, brace-expansion@^1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59"
@@ -467,6 +842,10 @@ browserify-zlib@^0.1.4:
dependencies:
pako "~0.2.0"
+buf-compare@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/buf-compare/-/buf-compare-1.0.1.tgz#fef28da8b8113a0a0db4430b0b6467b69730b34a"
+
buffer-crc32@^0.2.1, buffer-crc32@~0.2.3:
version "0.2.13"
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
@@ -499,9 +878,26 @@ bytes@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-0.3.0.tgz#78e2e0e28c7f9c7b988ea8aee0db4d5fa9941935"
-callsite@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
+caching-transform@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1"
+ dependencies:
+ md5-hex "^1.2.0"
+ mkdirp "^0.5.1"
+ write-file-atomic "^1.1.4"
+
+call-matcher@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/call-matcher/-/call-matcher-1.0.1.tgz#5134d077984f712a54dad3cbf62de28dce416ca8"
+ dependencies:
+ core-js "^2.0.0"
+ deep-equal "^1.0.0"
+ espurify "^1.6.0"
+ estraverse "^4.0.0"
+
+call-signature@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/call-signature/-/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996"
camel-case@3.0.x:
version "3.0.0"
@@ -529,6 +925,14 @@ camelcase@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
+camelcase@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
+
+capture-stack-trace@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d"
+
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
@@ -540,6 +944,14 @@ center-align@^0.1.1:
align-text "^0.1.3"
lazy-cache "^1.0.3"
+chalk@^0.4.0, chalk@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
+ dependencies:
+ ansi-styles "~1.0.0"
+ has-color "~0.1.0"
+ strip-ansi "~0.1.0"
+
chalk@^0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174"
@@ -550,7 +962,7 @@ chalk@^0.5.0:
strip-ansi "^0.3.0"
supports-color "^0.2.0"
-chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1:
+chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
dependencies:
@@ -560,15 +972,7 @@ chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
-chalk@~0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
- dependencies:
- ansi-styles "~1.0.0"
- has-color "~0.1.0"
- strip-ansi "~0.1.0"
-
-chokidar@^1.4.3:
+chokidar@^1.4.2, chokidar@^1.4.3:
version "1.7.0"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
dependencies:
@@ -583,6 +987,10 @@ chokidar@^1.4.3:
optionalDependencies:
fsevents "^1.0.0"
+ci-info@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534"
+
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.3.tgz#eeabf194419ce900da3018c207d212f2a6df0a07"
@@ -595,6 +1003,35 @@ clean-css@4.1.x:
dependencies:
source-map "0.5.x"
+clean-stack@^1.1.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-1.3.0.tgz#9e821501ae979986c46b1d66d2d432db2fd4ae31"
+
+clean-yaml-object@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz#63fb110dc2ce1a84dc21f6d9334876d010ae8b68"
+
+cli-boxes@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
+
+cli-cursor@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
+ dependencies:
+ restore-cursor "^2.0.0"
+
+cli-spinners@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.0.0.tgz#ef987ed3d48391ac3dab9180b406a742180d6e6a"
+
+cli-truncate@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.0.0.tgz#21eb91f47b3f6560f004db77a769b4668d9c5518"
+ dependencies:
+ slice-ansi "0.0.4"
+ string-width "^2.0.0"
+
cliui@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
@@ -639,14 +1076,36 @@ cloneable-readable@^1.0.0:
process-nextick-args "^1.0.6"
through2 "^2.0.1"
+co-with-promise@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/co-with-promise/-/co-with-promise-4.6.0.tgz#413e7db6f5893a60b942cf492c4bec93db415ab7"
+ dependencies:
+ pinkie-promise "^1.0.0"
+
co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+code-excerpt@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/code-excerpt/-/code-excerpt-2.1.0.tgz#5dcc081e88f4a7e3b554e9e35d7ef232d47f8147"
+ dependencies:
+ convert-to-spaces "^1.0.1"
+
code-point-at@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+color-convert@^1.0.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"
+ dependencies:
+ color-name "^1.1.1"
+
+color-name@^1.1.1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.2.tgz#5c8ab72b64bd2215d617ae9559ebb148475cf98d"
+
colors@^1.0.3:
version "1.1.2"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
@@ -657,20 +1116,20 @@ combined-stream@^1.0.5, combined-stream@~1.0.5:
dependencies:
delayed-stream "~1.0.0"
-commander@0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/commander/-/commander-0.6.1.tgz#fa68a14f6a945d54dbbe50d8cdb3320e9e3b1a06"
-
-commander@2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.3.0.tgz#fd430e889832ec353b9acd1de217c11cb3eef873"
-
commander@2.9.x, commander@~2.9.0:
version "2.9.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
dependencies:
graceful-readlink ">= 1.0.0"
+common-path-prefix@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-1.0.0.tgz#cd52f6f0712e0baab97d6f9732874f22f47752c0"
+
+commondir@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+
compress-commons@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-1.2.0.tgz#58587092ef20d37cb58baf000112c9278ff73b9f"
@@ -698,14 +1157,16 @@ concat-with-sourcemaps@^1.0.0:
dependencies:
source-map "^0.5.1"
-connect@^3.5.0:
- version "3.6.2"
- resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.2.tgz#694e8d20681bfe490282c8ab886be98f09f42fe7"
+configstore@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.0.tgz#45df907073e26dfa1cf4b2d52f5b60545eaa11d1"
dependencies:
- debug "2.6.7"
- finalhandler "1.0.3"
- parseurl "~1.3.1"
- utils-merge "1.0.0"
+ dot-prop "^4.1.0"
+ graceful-fs "^4.1.2"
+ make-dir "^1.0.0"
+ unique-string "^1.0.0"
+ write-file-atomic "^2.0.0"
+ xdg-basedir "^3.0.0"
console-browserify@^1.1.0:
version "1.1.0"
@@ -721,15 +1182,26 @@ constants-browserify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
-convert-source-map@^1.1.1:
+convert-source-map@^1.1.0, convert-source-map@^1.1.1, convert-source-map@^1.2.0, convert-source-map@^1.3.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5"
+convert-to-spaces@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz#7e3e48bbe6d997b1417ddca2868204b4d3d85715"
+
+core-assert@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/core-assert/-/core-assert-0.2.1.tgz#f85e2cf9bfed28f773cc8b3fa5c5b69bdc02fe3f"
+ dependencies:
+ buf-compare "^1.0.0"
+ is-error "^2.2.0"
+
core-js@^1.0.0:
version "1.2.7"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
-core-js@^2.4.0:
+core-js@^2.0.0, core-js@^2.4.0:
version "2.4.1"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e"
@@ -755,6 +1227,12 @@ create-ecdh@^4.0.0:
bn.js "^4.1.0"
elliptic "^6.0.0"
+create-error-class@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
+ dependencies:
+ capture-stack-trace "^1.0.0"
+
create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2:
version "1.1.3"
resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd"
@@ -775,6 +1253,20 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
+cross-spawn-async@^2.1.1:
+ version "2.2.5"
+ resolved "https://registry.yarnpkg.com/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz#845ff0c0834a3ded9d160daca6d390906bb288cc"
+ dependencies:
+ lru-cache "^4.0.0"
+ which "^1.2.8"
+
+cross-spawn@^4, cross-spawn@^4.0.0:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41"
+ dependencies:
+ lru-cache "^4.0.1"
+ which "^1.2.9"
+
cryptiles@2.x.x:
version "2.0.5"
resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
@@ -796,6 +1288,10 @@ crypto-browserify@^3.11.0:
public-encrypt "^4.0.0"
randombytes "^2.0.0"
+crypto-random-string@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e"
+
css-select@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858"
@@ -825,6 +1321,10 @@ date-now@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
+date-time@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/date-time/-/date-time-0.1.1.tgz#ed2f6d93d9790ce2fd66d5b5ff3edd5bbcbf3b07"
+
dateformat@^1.0.7-1.2.3:
version "1.0.12"
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9"
@@ -836,13 +1336,11 @@ dateformat@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17"
-debug@2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
- dependencies:
- ms "0.7.1"
+debug-log@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f"
-debug@2.6.7, debug@^2.2.0:
+debug@^2.1.1, debug@^2.2.0, debug@^2.6.3:
version "2.6.7"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.7.tgz#92bad1f6d05bbb6bba22cca88bcd0ec894c2861e"
dependencies:
@@ -852,13 +1350,19 @@ decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+deep-equal@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
+
deep-extend@~0.4.0:
version "0.4.2"
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
-deep-is@~0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+default-require-extensions@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8"
+ dependencies:
+ strip-bom "^2.0.0"
defaults@^1.0.0:
version "1.0.3"
@@ -866,18 +1370,6 @@ defaults@^1.0.0:
dependencies:
clone "^1.0.2"
-del@^2.2.0:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
- dependencies:
- globby "^5.0.0"
- is-path-cwd "^1.0.0"
- is-path-in-cwd "^1.0.0"
- object-assign "^4.0.1"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
- rimraf "^2.2.8"
-
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -886,10 +1378,6 @@ delegates@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
-depd@1.1.0, depd@~1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3"
-
deprecated@^0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19"
@@ -901,10 +1389,6 @@ des.js@^1.0.0:
inherits "^2.0.1"
minimalistic-assert "^1.0.0"
-destroy@~1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
-
detect-file@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63"
@@ -917,9 +1401,17 @@ detect-indent@^4.0.0:
dependencies:
repeating "^2.0.0"
-diff@1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf"
+detect-indent@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d"
+
+diff-match-patch@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.0.tgz#1cc3c83a490d67f95d91e39f6ad1f2e086b63048"
+
+diff@^3.0.0, diff@^3.0.1:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
diffie-hellman@^5.0.0:
version "5.0.2"
@@ -973,12 +1465,22 @@ domutils@1.5.1:
dom-serializer "0"
domelementtype "1"
+dot-prop@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.1.1.tgz#a8493f0b7b5eeec82525b5c7587fa7de7ca859c1"
+ dependencies:
+ is-obj "^1.0.0"
+
duplexer2@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db"
dependencies:
readable-stream "~1.1.9"
+duplexer3@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
+
duplexify@^3.2.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.0.tgz#1aa773002e1578457e9d9d4a50b0ccaaebcbd604"
@@ -994,10 +1496,6 @@ ecc-jsbn@~0.1.1:
dependencies:
jsbn "~0.1.0"
-ee-first@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
-
elliptic@^6.0.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df"
@@ -1014,9 +1512,12 @@ emojis-list@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
-encodeurl@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20"
+empower-core@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/empower-core/-/empower-core-0.6.1.tgz#6c187f502fcef7554d57933396aac655483772b1"
+ dependencies:
+ call-signature "0.0.2"
+ core-js "^2.0.0"
encoding@^0.1.11:
version "0.1.12"
@@ -1049,6 +1550,10 @@ entities@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
+equal-length@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/equal-length/-/equal-length-1.0.1.tgz#21ca112d48ab24b4e1e7ffc0e5339d31fdfc274c"
+
errno@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d"
@@ -1061,45 +1566,45 @@ error-ex@^1.2.0:
dependencies:
is-arrayish "^0.2.1"
-escape-html@~1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+es6-error@^4.0.1, es6-error@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.0.2.tgz#eec5c726eacef51b7f6b73c20db6e1b13b069c98"
-escape-string-regexp@1.0.2, escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2:
+escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.4, escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+
+escape-string-regexp@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz#4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1"
-escodegen@1.8.x:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018"
+espower-location-detector@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5"
dependencies:
- esprima "^2.7.1"
- estraverse "^1.9.1"
- esutils "^2.0.2"
- optionator "^0.8.1"
- optionalDependencies:
- source-map "~0.2.0"
-
-esprima@2.7.x, esprima@^2.7.1:
- version "2.7.3"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
+ is-url "^1.2.1"
+ path-is-absolute "^1.0.0"
+ source-map "^0.5.0"
+ xtend "^4.0.0"
esprima@^3.1.1:
version "3.1.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
-estraverse@^1.9.1:
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44"
+espurify@^1.6.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/espurify/-/espurify-1.7.0.tgz#1c5cf6cbccc32e6f639380bd4f991fab9ba9d226"
+ dependencies:
+ core-js "^2.0.0"
+
+estraverse@^4.0.0, estraverse@^4.1.1:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
esutils@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
-etag@~1.8.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051"
-
events@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
@@ -1110,6 +1615,29 @@ evp_bytestokey@^1.0.0:
dependencies:
create-hash "^1.1.1"
+execa@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-0.4.0.tgz#4eb6467a36a095fabb2970ff9d5e3fb7bce6ebc3"
+ dependencies:
+ cross-spawn-async "^2.1.1"
+ is-stream "^1.1.0"
+ npm-run-path "^1.0.0"
+ object-assign "^4.0.1"
+ path-key "^1.0.0"
+ strip-eof "^1.0.0"
+
+execa@^0.5.0:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-0.5.1.tgz#de3fb85cb8d6e91c85bcbceb164581785cb57b36"
+ dependencies:
+ cross-spawn "^4.0.0"
+ get-stream "^2.2.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
expand-brackets@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
@@ -1155,10 +1683,6 @@ fancy-log@^1.1.0:
chalk "^1.1.1"
time-stamp "^1.0.0"
-fast-levenshtein@~2.0.4:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
-
fbjs@^0.8.9:
version "0.8.12"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04"
@@ -1171,6 +1695,12 @@ fbjs@^0.8.9:
setimmediate "^1.0.5"
ua-parser-js "^0.7.9"
+figures@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
+ dependencies:
+ escape-string-regexp "^1.0.5"
+
filename-regex@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
@@ -1185,29 +1715,31 @@ fill-range@^2.1.0:
repeat-element "^1.1.2"
repeat-string "^1.5.2"
-finalhandler@1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.3.tgz#ef47e77950e999780e86022a560e3217e0d0cc89"
+find-cache-dir@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
dependencies:
- debug "2.6.7"
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- on-finished "~2.3.0"
- parseurl "~1.3.1"
- statuses "~1.3.1"
- unpipe "~1.0.0"
+ commondir "^1.0.1"
+ mkdirp "^0.5.1"
+ pkg-dir "^1.0.0"
find-index@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4"
-find-up@^1.0.0:
+find-up@^1.0.0, find-up@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
dependencies:
path-exists "^2.0.0"
pinkie-promise "^2.0.0"
+find-up@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ dependencies:
+ locate-path "^2.0.0"
+
findup-sync@^0.4.2:
version "0.4.3"
resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12"
@@ -1237,6 +1769,10 @@ flagged-respawn@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5"
+fn-name@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7"
+
for-in@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
@@ -1247,6 +1783,13 @@ for-own@^0.1.4:
dependencies:
for-in "^1.0.1"
+foreground-child@^1.3.3, foreground-child@^1.5.3:
+ version "1.5.6"
+ resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9"
+ dependencies:
+ cross-spawn "^4"
+ signal-exit "^3.0.0"
+
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
@@ -1259,10 +1802,6 @@ form-data@~2.1.1:
combined-stream "^1.0.5"
mime-types "^2.1.12"
-fresh@0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e"
-
fs-exists-sync@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
@@ -1326,10 +1865,25 @@ get-caller-file@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
+get-port@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.1.0.tgz#ef01b18a84ca6486970ff99e54446141a73ffd3e"
+
get-stdin@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
+get-stream@^2.2.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de"
+ dependencies:
+ object-assign "^4.0.1"
+ pinkie-promise "^2.0.0"
+
+get-stream@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
+
getpass@^0.1.1:
version "0.1.7"
resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
@@ -1398,13 +1952,6 @@ glob2base@^0.0.12:
dependencies:
find-index "^0.1.1"
-glob@3.2.11:
- version "3.2.11"
- resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d"
- dependencies:
- inherits "2"
- minimatch "0.3"
-
glob@^4.3.1:
version "4.5.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f"
@@ -1414,7 +1961,7 @@ glob@^4.3.1:
minimatch "^2.0.1"
once "^1.3.0"
-glob@^5.0.15, glob@^5.0.3:
+glob@^5.0.3:
version "5.0.15"
resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
dependencies:
@@ -1424,7 +1971,7 @@ glob@^5.0.15, glob@^5.0.3:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1:
+glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1:
version "7.1.2"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
dependencies:
@@ -1463,12 +2010,11 @@ globals@^9.0.0:
version "9.17.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286"
-globby@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
+globby@^6.0.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
dependencies:
array-union "^1.0.1"
- arrify "^1.0.0"
glob "^7.0.3"
object-assign "^4.0.1"
pify "^2.0.0"
@@ -1488,13 +2034,29 @@ glogg@^1.0.0:
dependencies:
sparkles "^1.0.0"
+got@^6.7.1:
+ version "6.7.1"
+ resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0"
+ dependencies:
+ create-error-class "^3.0.0"
+ duplexer3 "^0.1.4"
+ get-stream "^3.0.0"
+ is-redirect "^1.0.0"
+ is-retry-allowed "^1.0.0"
+ is-stream "^1.0.0"
+ lowercase-keys "^1.0.0"
+ safe-buffer "^5.0.1"
+ timed-out "^4.0.0"
+ unzip-response "^2.0.1"
+ url-parse-lax "^1.0.0"
+
graceful-fs@^3.0.0:
version "3.0.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818"
dependencies:
natives "^1.1.0"
-graceful-fs@^4.0.0, graceful-fs@^4.1.0, graceful-fs@^4.1.2, graceful-fs@^4.1.6:
+graceful-fs@^4.0.0, graceful-fs@^4.1.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6:
version "4.1.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
@@ -1506,10 +2068,6 @@ graceful-fs@~1.2.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
-growl@1.9.2:
- version "1.9.2"
- resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f"
-
gulp-concat@^2.6.0:
version "2.6.1"
resolved "https://registry.yarnpkg.com/gulp-concat/-/gulp-concat-2.6.1.tgz#633d16c95d88504628ad02665663cee5a4793353"
@@ -1664,7 +2222,7 @@ gulplog@^1.0.0:
dependencies:
glogg "^1.0.0"
-handlebars@^4.0.1, handlebars@^4.0.6:
+handlebars@^4.0.3, handlebars@^4.0.6:
version "4.0.10"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.10.tgz#3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f"
dependencies:
@@ -1705,6 +2263,10 @@ has-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
+has-flag@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
+
has-gulplog@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce"
@@ -1715,6 +2277,10 @@ has-unicode@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+has-yarn@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-1.0.0.tgz#89e25db604b725c8f5976fff0addc921b828a5a7"
+
hash-base@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1"
@@ -1756,6 +2322,13 @@ hoek@2.x.x:
version "2.16.3"
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
+home-or-tmp@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
+ dependencies:
+ os-homedir "^1.0.0"
+ os-tmpdir "^1.0.1"
+
homedir-polyfill@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc"
@@ -1799,15 +2372,6 @@ htmlparser2@~3.3.0:
domutils "1.1"
readable-stream "1.0"
-http-errors@~1.6.1:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.1.tgz#5f8b8ed98aca545656bf572997387f904a722257"
- dependencies:
- depd "1.1.0"
- inherits "2.0.3"
- setprototypeof "1.0.3"
- statuses ">= 1.3.1 < 2"
-
http-signature@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
@@ -1820,6 +2384,24 @@ https-browserify@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82"
+hullabaloo-config-manager@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/hullabaloo-config-manager/-/hullabaloo-config-manager-1.0.1.tgz#c72be7ba249a67c99b6ba3eb1f55837fa01acd8f"
+ dependencies:
+ dot-prop "^4.1.0"
+ es6-error "^4.0.2"
+ graceful-fs "^4.1.11"
+ indent-string "^3.1.0"
+ json5 "^0.5.1"
+ lodash.clonedeep "^4.5.0"
+ lodash.clonedeepwith "^4.5.0"
+ lodash.isequal "^4.5.0"
+ lodash.merge "^4.6.0"
+ md5-hex "^2.0.0"
+ package-hash "^2.0.0"
+ pkg-dir "^1.0.0"
+ resolve-from "^2.0.0"
+
iconv-lite@~0.4.13:
version "0.4.17"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.17.tgz#4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d"
@@ -1828,12 +2410,24 @@ ieee754@^1.1.4:
version "1.1.8"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
+ignore-by-default@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+
indent-string@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
dependencies:
repeating "^2.0.0"
+indent-string@^3.0.0, indent-string@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.1.0.tgz#08ff4334603388399b329e6b9538dc7a3cf5de7d"
+
indexof@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
@@ -1849,7 +2443,7 @@ inherits@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b"
-inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1:
+inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
@@ -1906,6 +2500,12 @@ is-builtin-module@^1.0.0:
dependencies:
builtin-modules "^1.0.0"
+is-ci@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e"
+ dependencies:
+ ci-info "^1.0.0"
+
is-dotfile@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d"
@@ -1916,6 +2516,10 @@ is-equal-shallow@^0.1.3:
dependencies:
is-primitive "^2.0.0"
+is-error@^2.2.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/is-error/-/is-error-2.2.1.tgz#684a96d84076577c98f4cdb40c6d26a5123bf19c"
+
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
@@ -1928,7 +2532,7 @@ is-extglob@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
-is-finite@^1.0.0:
+is-finite@^1.0.0, is-finite@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
dependencies:
@@ -1940,6 +2544,14 @@ is-fullwidth-code-point@^1.0.0:
dependencies:
number-is-nan "^1.0.0"
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+
+is-generator-fn@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a"
+
is-glob@^2.0.0, is-glob@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
@@ -1952,27 +2564,25 @@ is-glob@^3.1.0:
dependencies:
is-extglob "^2.1.0"
+is-npm@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4"
+
is-number@^2.0.2, is-number@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
dependencies:
kind-of "^3.0.2"
-is-path-cwd@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
-
-is-path-in-cwd@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc"
- dependencies:
- is-path-inside "^1.0.0"
+is-obj@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
-is-path-inside@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f"
+is-observable@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-0.2.0.tgz#b361311d83c6e5d726cabf5e250b0237106f5ae2"
dependencies:
- path-is-inside "^1.0.1"
+ symbol-observable "^0.2.2"
is-plain-obj@^1.0.0:
version "1.1.0"
@@ -1986,6 +2596,14 @@ is-primitive@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
+is-promise@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
+
+is-redirect@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
+
is-regexp@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
@@ -1996,7 +2614,11 @@ is-relative@^0.2.1:
dependencies:
is-unc-path "^0.1.1"
-is-stream@^1.0.1, is-stream@^1.1.0:
+is-retry-allowed@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
+
+is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
@@ -2010,7 +2632,11 @@ is-unc-path@^0.1.1:
dependencies:
unc-path-regex "^0.1.0"
-is-utf8@^0.2.0:
+is-url@^1.2.1:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26"
+
+is-utf8@^0.2.0, is-utf8@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
@@ -2055,7 +2681,13 @@ istanbul-lib-coverage@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz#caca19decaef3525b5d6331d701f3f3b7ad48528"
-istanbul-lib-instrument@^1.0.0-alpha.6:
+istanbul-lib-hook@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.6.tgz#c0866d1e81cf2d5319249510131fc16dee49231f"
+ dependencies:
+ append-transform "^0.4.0"
+
+istanbul-lib-instrument@^1.7.1:
version "1.7.1"
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.1.tgz#169e31bc62c778851a99439dd99c3cc12184d360"
dependencies:
@@ -2067,36 +2699,100 @@ istanbul-lib-instrument@^1.0.0-alpha.6:
istanbul-lib-coverage "^1.1.0"
semver "^5.3.0"
-istanbul@^0.4.5:
- version "0.4.5"
- resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b"
- dependencies:
- abbrev "1.0.x"
- async "1.x"
- escodegen "1.8.x"
- esprima "2.7.x"
- glob "^5.0.15"
- handlebars "^4.0.1"
- js-yaml "3.x"
- mkdirp "0.5.x"
- nopt "3.x"
- once "1.x"
- resolve "1.1.x"
- supports-color "^3.1.0"
- which "^1.1.1"
- wordwrap "^1.0.0"
+istanbul-lib-report@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.0.tgz#444c4ecca9afa93cf584f56b10f195bf768c0770"
+ dependencies:
+ istanbul-lib-coverage "^1.1.0"
+ mkdirp "^0.5.1"
+ path-parse "^1.0.5"
+ supports-color "^3.1.2"
+
+istanbul-lib-source-maps@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.0.tgz#8c7706d497e26feeb6af3e0c28fd5b0669598d0e"
+ dependencies:
+ debug "^2.6.3"
+ istanbul-lib-coverage "^1.1.0"
+ mkdirp "^0.5.1"
+ rimraf "^2.6.1"
+ source-map "^0.5.3"
-jade@0.26.3:
- version "0.26.3"
- resolved "https://registry.yarnpkg.com/jade/-/jade-0.26.3.tgz#8f10d7977d8d79f2f6ff862a81b0513ccb25686c"
+istanbul-reports@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.0.tgz#1ef3b795889219cfb5fad16365f6ce108d5f8c66"
dependencies:
- commander "0.6.1"
- mkdirp "0.3.0"
+ handlebars "^4.0.3"
jed@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/jed/-/jed-1.1.1.tgz#7a549bbd9ffe1585b0cd0a191e203055bee574b4"
+jest-diff@19.0.0, jest-diff@^19.0.0:
+ version "19.0.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-19.0.0.tgz#d1563cfc56c8b60232988fbc05d4d16ed90f063c"
+ dependencies:
+ chalk "^1.1.3"
+ diff "^3.0.0"
+ jest-matcher-utils "^19.0.0"
+ pretty-format "^19.0.0"
+
+jest-file-exists@^19.0.0:
+ version "19.0.0"
+ resolved "https://registry.yarnpkg.com/jest-file-exists/-/jest-file-exists-19.0.0.tgz#cca2e587a11ec92e24cfeab3f8a94d657f3fceb8"
+
+jest-matcher-utils@^19.0.0:
+ version "19.0.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-19.0.0.tgz#5ecd9b63565d2b001f61fbf7ec4c7f537964564d"
+ dependencies:
+ chalk "^1.1.3"
+ pretty-format "^19.0.0"
+
+jest-message-util@^19.0.0:
+ version "19.0.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-19.0.0.tgz#721796b89c0e4d761606f9ba8cb828a3b6246416"
+ dependencies:
+ chalk "^1.1.1"
+ micromatch "^2.3.11"
+
+jest-mock@^19.0.0:
+ version "19.0.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-19.0.0.tgz#67038641e9607ab2ce08ec4a8cb83aabbc899d01"
+
+jest-snapshot@19.0.2:
+ version "19.0.2"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-19.0.2.tgz#9c1b216214f7187c38bfd5c70b1efab16b0ff50b"
+ dependencies:
+ chalk "^1.1.3"
+ jest-diff "^19.0.0"
+ jest-file-exists "^19.0.0"
+ jest-matcher-utils "^19.0.0"
+ jest-util "^19.0.2"
+ natural-compare "^1.4.0"
+ pretty-format "^19.0.0"
+
+jest-util@^19.0.2:
+ version "19.0.2"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-19.0.2.tgz#e0a0232a2ab9e6b2b53668bdb3534c2b5977ed41"
+ dependencies:
+ chalk "^1.1.1"
+ graceful-fs "^4.1.6"
+ jest-file-exists "^19.0.0"
+ jest-message-util "^19.0.0"
+ jest-mock "^19.0.0"
+ jest-validate "^19.0.2"
+ leven "^2.0.0"
+ mkdirp "^0.5.1"
+
+jest-validate@^19.0.2:
+ version "19.0.2"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-19.0.2.tgz#dc534df5f1278d5b63df32b14241d4dbf7244c0c"
+ dependencies:
+ chalk "^1.1.1"
+ jest-matcher-utils "^19.0.0"
+ leven "^2.0.0"
+ pretty-format "^19.0.0"
+
jodid25519@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967"
@@ -2107,7 +2803,7 @@ js-tokens@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7"
-js-yaml@3.x:
+js-yaml@^3.8.2:
version "3.8.4"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6"
dependencies:
@@ -2122,6 +2818,10 @@ jsesc@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
+jsesc@~0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
+
json-loader@^0.5.4:
version "0.5.4"
resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de"
@@ -2169,10 +2869,26 @@ kind-of@^3.0.2:
dependencies:
is-buffer "^1.1.5"
+last-line-stream@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/last-line-stream/-/last-line-stream-1.0.0.tgz#d1b64d69f86ff24af2d04883a2ceee14520a5600"
+ dependencies:
+ through2 "^2.0.0"
+
+latest-version@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15"
+ dependencies:
+ package-json "^4.0.0"
+
lazy-cache@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
+lazy-req@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-2.0.0.tgz#c9450a363ecdda2e6f0c70132ad4f37f8f06f2b4"
+
lazystream@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4"
@@ -2185,12 +2901,9 @@ lcid@^1.0.0:
dependencies:
invert-kv "^1.0.0"
-levn@~0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
- dependencies:
- prelude-ls "~1.1.2"
- type-check "~0.3.2"
+leven@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
liftoff@^2.1.0:
version "2.3.0"
@@ -2216,6 +2929,15 @@ load-json-file@^1.0.0:
pinkie-promise "^2.0.0"
strip-bom "^2.0.0"
+load-json-file@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ strip-bom "^3.0.0"
+
loader-runner@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2"
@@ -2237,6 +2959,13 @@ loader-utils@^1.0.2:
emojis-list "^2.0.0"
json5 "^0.5.0"
+locate-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ dependencies:
+ p-locate "^2.0.0"
+ path-exists "^3.0.0"
+
lodash._basecopy@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
@@ -2316,6 +3045,18 @@ lodash.assignwith@^4.0.7:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz#127a97f02adc41751a954d24b0de17e100e038eb"
+lodash.clonedeep@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
+
+lodash.clonedeepwith@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.clonedeepwith/-/lodash.clonedeepwith-4.5.0.tgz#6ee30573a03a1a60d670a62ef33c10cf1afdbdd4"
+
+lodash.debounce@^4.0.3:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
+
lodash.defaults@~2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-2.4.1.tgz#a7e8885f05e68851144b6e12a8f3678026bc4c54"
@@ -2323,6 +3064,10 @@ lodash.defaults@~2.4.1:
lodash._objecttypes "~2.4.1"
lodash.keys "~2.4.1"
+lodash.difference@^4.3.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c"
+
lodash.escape@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698"
@@ -2337,6 +3082,14 @@ lodash.escape@~2.4.1:
lodash._reunescapedhtml "~2.4.1"
lodash.keys "~2.4.1"
+lodash.flatten@^4.2.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
+
+lodash.flattendeep@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2"
+
lodash.isarguments@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
@@ -2349,7 +3102,7 @@ lodash.isempty@^4.2.1:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e"
-lodash.isequal@^4.0.0:
+lodash.isequal@^4.0.0, lodash.isequal@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
@@ -2387,6 +3140,10 @@ lodash.mapvalues@^4.4.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c"
+lodash.merge@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5"
+
lodash.pick@^4.2.1:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
@@ -2441,7 +3198,7 @@ lodash.values@~2.4.1:
dependencies:
lodash.keys "~2.4.1"
-lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.8.0:
+lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.8.0:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
@@ -2459,7 +3216,7 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1:
dependencies:
js-tokens "^3.0.0"
-loud-rejection@^1.0.0:
+loud-rejection@^1.0.0, loud-rejection@^1.2.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
dependencies:
@@ -2470,10 +3227,27 @@ lower-case@^1.1.1:
version "1.1.4"
resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
+lowercase-keys@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"
+
lru-cache@2:
version "2.7.3"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952"
+lru-cache@^4.0.0, lru-cache@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e"
+ dependencies:
+ pseudomap "^1.0.1"
+ yallist "^2.0.0"
+
+make-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978"
+ dependencies:
+ pify "^2.3.0"
+
map-cache@^0.2.0:
version "0.2.2"
resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
@@ -2490,6 +3264,28 @@ marked@^0.3.5:
version "0.3.6"
resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.6.tgz#b2c6c618fccece4ef86c4fc6cb8a7cbf5aeda8d7"
+matcher@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/matcher/-/matcher-0.1.2.tgz#ef20cbde64c24c50cc61af5b83ee0b1b8ff00101"
+ dependencies:
+ escape-string-regexp "^1.0.4"
+
+md5-hex@^1.2.0, md5-hex@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4"
+ dependencies:
+ md5-o-matic "^0.1.1"
+
+md5-hex@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-2.0.0.tgz#d0588e9f1c74954492ecd24ac0ac6ce997d92e33"
+ dependencies:
+ md5-o-matic "^0.1.1"
+
+md5-o-matic@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3"
+
memory-fs@^0.4.0, memory-fs@~0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
@@ -2497,7 +3293,7 @@ memory-fs@^0.4.0, memory-fs@~0.4.1:
errno "^0.1.3"
readable-stream "^2.0.1"
-meow@^3.3.0:
+meow@^3.3.0, meow@^3.7.0:
version "3.7.0"
resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
dependencies:
@@ -2512,13 +3308,19 @@ meow@^3.3.0:
redent "^1.0.0"
trim-newlines "^1.0.0"
+merge-source-map@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.3.tgz#da1415f2722a5119db07b14c4f973410863a2abf"
+ dependencies:
+ source-map "^0.5.3"
+
merge-stream@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1"
dependencies:
readable-stream "^2.0.1"
-micromatch@^2.1.5, micromatch@^2.3.7:
+micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7:
version "2.3.11"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
dependencies:
@@ -2553,9 +3355,9 @@ mime-types@^2.1.12, mime-types@~2.1.7:
dependencies:
mime-db "~1.27.0"
-mime@1.3.4:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
+mimic-fn@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
minimalistic-assert@^1.0.0:
version "1.0.0"
@@ -2565,13 +3367,6 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
-minimatch@0.3:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd"
- dependencies:
- lru-cache "2"
- sigmund "~1.0.0"
-
"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
@@ -2603,43 +3398,33 @@ minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
-mkdirp@0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e"
-
-mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0:
+"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
minimist "0.0.8"
-mocha@^2.4.5:
- version "2.5.3"
- resolved "https://registry.yarnpkg.com/mocha/-/mocha-2.5.3.tgz#161be5bdeb496771eb9b35745050b622b5aefc58"
- dependencies:
- commander "2.3.0"
- debug "2.2.0"
- diff "1.4.0"
- escape-string-regexp "1.0.2"
- glob "3.2.11"
- growl "1.9.2"
- jade "0.26.3"
- mkdirp "0.5.1"
- supports-color "1.2.0"
- to-iso-string "0.0.2"
-
moment@*, moment@^2.18.1:
version "2.18.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f"
-ms@0.7.1:
- version "0.7.1"
- resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
-
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+ms@^0.7.1:
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
+
+multimatch@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b"
+ dependencies:
+ array-differ "^1.0.0"
+ array-union "^1.0.1"
+ arrify "^1.0.0"
+ minimatch "^3.0.0"
+
multipipe@^0.1.0, multipipe@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b"
@@ -2654,6 +3439,10 @@ natives@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.0.tgz#e9ff841418a6b2ec7a495e939984f78f163e6e31"
+natural-compare@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+
ncname@1.0.x:
version "1.0.0"
resolved "https://registry.yarnpkg.com/ncname/-/ncname-1.0.0.tgz#5b57ad18b1ca092864ef62b0b1ed8194f383b71c"
@@ -2722,12 +3511,6 @@ nomnom@1.8.1:
chalk "~0.4.0"
underscore "~1.6.0"
-nopt@3.x:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
- dependencies:
- abbrev "1"
-
nopt@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
@@ -2750,6 +3533,18 @@ normalize-path@^2.0.0, normalize-path@^2.0.1:
dependencies:
remove-trailing-separator "^1.0.1"
+npm-run-path@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-1.0.0.tgz#f5c32bf595fe81ae927daec52e82f8b000ac3c8f"
+ dependencies:
+ path-key "^1.0.0"
+
+npm-run-path@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ dependencies:
+ path-key "^2.0.0"
+
npmlog@^4.0.2:
version "4.1.0"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.0.tgz#dc59bee85f64f00ed424efb2af0783df25d1c0b5"
@@ -2769,6 +3564,38 @@ number-is-nan@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+nyc@^10.3.2:
+ version "10.3.2"
+ resolved "https://registry.yarnpkg.com/nyc/-/nyc-10.3.2.tgz#f27f4d91f2a9db36c24f574ff5c6efff0233de46"
+ dependencies:
+ archy "^1.0.0"
+ arrify "^1.0.1"
+ caching-transform "^1.0.0"
+ convert-source-map "^1.3.0"
+ debug-log "^1.0.1"
+ default-require-extensions "^1.0.0"
+ find-cache-dir "^0.1.1"
+ find-up "^1.1.2"
+ foreground-child "^1.5.3"
+ glob "^7.0.6"
+ istanbul-lib-coverage "^1.1.0"
+ istanbul-lib-hook "^1.0.6"
+ istanbul-lib-instrument "^1.7.1"
+ istanbul-lib-report "^1.1.0"
+ istanbul-lib-source-maps "^1.2.0"
+ istanbul-reports "^1.1.0"
+ md5-hex "^1.2.0"
+ merge-source-map "^1.0.2"
+ micromatch "^2.3.11"
+ mkdirp "^0.5.0"
+ resolve-from "^2.0.0"
+ rimraf "^2.5.4"
+ signal-exit "^3.0.1"
+ spawn-wrap "1.2.4"
+ test-exclude "^4.1.0"
+ yargs "^7.1.0"
+ yargs-parser "^5.0.0"
+
oauth-sign@~0.8.1:
version "0.8.2"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
@@ -2792,13 +3619,14 @@ object.omit@^2.0.0:
for-own "^0.1.4"
is-extendable "^0.1.1"
-on-finished@~2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
+observable-to-promise@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/observable-to-promise/-/observable-to-promise-0.5.0.tgz#c828f0f0dc47e9f86af8a4977c5d55076ce7a91f"
dependencies:
- ee-first "1.1.1"
+ is-observable "^0.2.0"
+ symbol-observable "^1.0.4"
-once@1.x, once@^1.3.0, once@^1.3.3:
+once@^1.3.0, once@^1.3.3:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
dependencies:
@@ -2810,6 +3638,12 @@ once@~1.3.0:
dependencies:
wrappy "1"
+onetime@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
+ dependencies:
+ mimic-fn "^1.0.0"
+
optimist@^0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
@@ -2817,16 +3651,11 @@ optimist@^0.6.1:
minimist "~0.0.1"
wordwrap "~0.0.2"
-optionator@^0.8.1:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
+option-chain@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/option-chain/-/option-chain-0.1.1.tgz#e9b811e006f1c0f54802f28295bfc8970f8dcfbd"
dependencies:
- deep-is "~0.1.3"
- fast-levenshtein "~2.0.4"
- levn "~0.3.0"
- prelude-ls "~1.1.2"
- type-check "~0.3.2"
- wordwrap "~1.0.0"
+ object-assign "^4.0.1"
orchestrator@^0.3.0:
version "0.3.8"
@@ -2861,7 +3690,7 @@ os-locale@^1.4.0:
dependencies:
lcid "^1.0.0"
-os-tmpdir@^1.0.0, os-tmpdir@~1.0.1:
+os-tmpdir@^1.0.0, os-tmpdir@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
@@ -2872,6 +3701,44 @@ osenv@^0.1.4:
os-homedir "^1.0.0"
os-tmpdir "^1.0.0"
+p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+
+p-limit@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc"
+
+p-locate@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ dependencies:
+ p-limit "^1.1.0"
+
+package-hash@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-1.2.0.tgz#003e56cd57b736a6ed6114cc2b81542672770e44"
+ dependencies:
+ md5-hex "^1.3.0"
+
+package-hash@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-2.0.0.tgz#78ae326c89e05a4d813b68601977af05c00d2a0d"
+ dependencies:
+ graceful-fs "^4.1.11"
+ lodash.flattendeep "^4.4.0"
+ md5-hex "^2.0.0"
+ release-zalgo "^1.0.0"
+
+package-json@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed"
+ dependencies:
+ got "^6.7.1"
+ registry-auth-token "^3.0.1"
+ registry-url "^3.0.3"
+ semver "^5.1.0"
+
pako@~0.2.0:
version "0.2.9"
resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
@@ -2915,14 +3782,18 @@ parse-json@^2.2.0:
dependencies:
error-ex "^1.2.0"
+parse-ms@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-0.1.2.tgz#dd3fa25ed6c2efc7bdde12ad9b46c163aa29224e"
+
+parse-ms@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-1.0.1.tgz#56346d4749d78f23430ca0c713850aef91aa361d"
+
parse-passwd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
-parseurl@~1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56"
-
path-browserify@0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
@@ -2937,13 +3808,25 @@ path-exists@^2.0.0:
dependencies:
pinkie-promise "^2.0.0"
+path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
-path-is-inside@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
+path-key@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-1.0.0.tgz#5d53d578019646c0d68800db4e146e6bdc2ac7af"
+
+path-key@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+
+path-parse@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
path-root-regex@^0.1.0:
version "0.1.2"
@@ -2963,6 +3846,12 @@ path-type@^1.0.0:
pify "^2.0.0"
pinkie-promise "^2.0.0"
+path-type@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
+ dependencies:
+ pify "^2.0.0"
+
pbkdf2@^3.0.3:
version "3.0.12"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.12.tgz#be36785c5067ea48d806ff923288c5f750b6b8a2"
@@ -2977,20 +3866,47 @@ performance-now@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
-pify@^2.0.0:
+pify@^2.0.0, pify@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+pinkie-promise@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-1.0.0.tgz#d1da67f5482563bb7cf57f286ae2822ecfbf3670"
+ dependencies:
+ pinkie "^1.0.0"
+
pinkie-promise@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
dependencies:
pinkie "^2.0.0"
+pinkie@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-1.0.0.tgz#5a47f28ba1015d0201bda7bf0f358e47bec8c7e4"
+
pinkie@^2.0.0:
version "2.0.4"
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+pkg-conf@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.0.0.tgz#071c87650403bccfb9c627f58751bfe47c067279"
+ dependencies:
+ find-up "^2.0.0"
+ load-json-file "^2.0.0"
+
+pkg-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
+ dependencies:
+ find-up "^1.0.0"
+
+plur@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/plur/-/plur-1.0.0.tgz#db85c6814f5e5e5a3b49efc28d604fec62975156"
+
plur@^2.0.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a"
@@ -3007,9 +3923,9 @@ plur@^2.0.0:
"pogen@file:tooling/pogen/":
version "1.0.0"
-prelude-ls@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+prepend-http@^1.0.1:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
preserve@^0.2.0:
version "0.2.0"
@@ -3022,10 +3938,34 @@ pretty-error@^2.0.2:
renderkid "^2.0.1"
utila "~0.4"
+pretty-format@^19.0.0:
+ version "19.0.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-19.0.0.tgz#56530d32acb98a3fa4851c4e2b9d37b420684c84"
+ dependencies:
+ ansi-styles "^3.0.0"
+
pretty-hrtime@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
+pretty-ms@^0.2.1:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-0.2.2.tgz#da879a682ff33a37011046f13d627f67c73b84f6"
+ dependencies:
+ parse-ms "^0.1.0"
+
+pretty-ms@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-2.1.0.tgz#4257c256df3fb0b451d6affaab021884126981dc"
+ dependencies:
+ is-finite "^1.0.1"
+ parse-ms "^1.0.0"
+ plur "^1.0.0"
+
+private@^0.1.6:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1"
+
process-nextick-args@^1.0.6, process-nextick-args@~1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
@@ -3055,6 +3995,10 @@ prr@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a"
+pseudomap@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+
public-encrypt@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6"
@@ -3096,11 +4040,7 @@ randombytes@^2.0.0, randombytes@^2.0.1:
version "2.0.3"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.3.tgz#674c99760901c3c4112771a31e521dc349cc09ec"
-range-parser@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
-
-rc@^1.1.7:
+rc@^1.0.1, rc@^1.1.6, rc@^1.1.7:
version "1.2.1"
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95"
dependencies:
@@ -3134,6 +4074,13 @@ read-pkg-up@^1.0.1:
find-up "^1.0.0"
read-pkg "^1.0.0"
+read-pkg-up@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
+ dependencies:
+ find-up "^2.0.0"
+ read-pkg "^2.0.0"
+
read-pkg@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
@@ -3142,6 +4089,14 @@ read-pkg@^1.0.0:
normalize-package-data "^2.3.2"
path-type "^1.0.0"
+read-pkg@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
+ dependencies:
+ load-json-file "^2.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^2.0.0"
+
readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.17:
version "1.0.34"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
@@ -3194,6 +4149,10 @@ redent@^1.0.0:
indent-string "^2.1.0"
strip-indent "^1.0.1"
+regenerate@^1.2.1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260"
+
regenerator-runtime@^0.10.0:
version "0.10.5"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
@@ -3205,10 +4164,47 @@ regex-cache@^0.4.2:
is-equal-shallow "^0.1.3"
is-primitive "^2.0.0"
+regexpu-core@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240"
+ dependencies:
+ regenerate "^1.2.1"
+ regjsgen "^0.2.0"
+ regjsparser "^0.1.4"
+
+registry-auth-token@^3.0.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006"
+ dependencies:
+ rc "^1.1.6"
+ safe-buffer "^5.0.1"
+
+registry-url@^3.0.3:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942"
+ dependencies:
+ rc "^1.0.1"
+
+regjsgen@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
+
+regjsparser@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
+ dependencies:
+ jsesc "~0.5.0"
+
relateurl@0.2.x:
version "0.2.7"
resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
+release-zalgo@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730"
+ dependencies:
+ es6-error "^4.0.1"
+
remove-trailing-separator@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4"
@@ -3280,6 +4276,16 @@ require-main-filename@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+require-precompiled@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/require-precompiled/-/require-precompiled-0.1.0.tgz#5a1b52eb70ebed43eb982e974c85ab59571e56fa"
+
+resolve-cwd@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-1.0.0.tgz#4eaeea41ed040d1702457df64a42b2b07d246f9f"
+ dependencies:
+ resolve-from "^2.0.0"
+
resolve-dir@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e"
@@ -3287,17 +4293,28 @@ resolve-dir@^0.1.0:
expand-tilde "^1.2.2"
global-modules "^0.2.3"
-resolve@1.1.x, resolve@^1.1.6, resolve@^1.1.7:
+resolve-from@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
+
+resolve@^1.1.6, resolve@^1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
+restore-cursor@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
+ dependencies:
+ onetime "^2.0.0"
+ signal-exit "^3.0.2"
+
right-align@^0.1.1:
version "0.1.3"
resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
dependencies:
align-text "^0.1.1"
-rimraf@2, rimraf@^2.2.6, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1:
+rimraf@2, rimraf@^2.2.6, rimraf@^2.3.3, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
dependencies:
@@ -3314,20 +4331,13 @@ safe-buffer@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
-sax@>=0.6.0:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.2.tgz#fd8631a23bc7826bef5d871bdb87378c95647828"
-
-selenium-webdriver@^3.0.1:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-3.4.0.tgz#151f7445294da6a66c49cc300747a2a17e53c52a"
+semver-diff@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
dependencies:
- adm-zip "^0.4.7"
- rimraf "^2.5.4"
- tmp "0.0.30"
- xml2js "^0.4.17"
+ semver "^5.0.3"
-"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.3.0:
+"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
@@ -3335,37 +4345,10 @@ semver@^4.1.0:
version "4.3.6"
resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da"
-send@0.15.3:
- version "0.15.3"
- resolved "https://registry.yarnpkg.com/send/-/send-0.15.3.tgz#5013f9f99023df50d1bd9892c19e3defd1d53309"
- dependencies:
- debug "2.6.7"
- depd "~1.1.0"
- destroy "~1.0.4"
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- etag "~1.8.0"
- fresh "0.5.0"
- http-errors "~1.6.1"
- mime "1.3.4"
- ms "2.0.0"
- on-finished "~2.3.0"
- range-parser "~1.2.0"
- statuses "~1.3.1"
-
sequencify@~0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c"
-serve-static@^1.11.1:
- version "1.12.3"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.3.tgz#9f4ba19e2f3030c547f8af99107838ec38d5b1e2"
- dependencies:
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- parseurl "~1.3.1"
- send "0.15.3"
-
set-blocking@^2.0.0, set-blocking@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
@@ -3378,10 +4361,6 @@ setimmediate@^1.0.4, setimmediate@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
-setprototypeof@1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
-
sha.js@^2.4.0, sha.js@^2.4.8:
version "2.4.8"
resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f"
@@ -3400,21 +4379,49 @@ sigmund@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
-signal-exit@^3.0.0:
+signal-exit@^2.0.0:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-2.1.2.tgz#375879b1f92ebc3b334480d038dc546a6d558564"
+
+signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
+slash@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
+
+slice-ansi@0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
+
+slide@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
+
sntp@1.x.x:
version "1.0.9"
resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
dependencies:
hoek "2.x.x"
+sort-keys@^1.1.1, sort-keys@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
+ dependencies:
+ is-plain-obj "^1.0.0"
+
source-list-map@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-1.1.2.tgz#9889019d1024cce55cdc069498337ef6186a11a1"
-source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@~0.5.1, source-map@~0.5.3:
+source-map-support@^0.4.0, source-map-support@^0.4.2:
+ version "0.4.15"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1"
+ dependencies:
+ source-map "^0.5.6"
+
+source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3:
version "0.5.6"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
@@ -3424,16 +4431,21 @@ source-map@^0.4.4:
dependencies:
amdefine ">=0.0.4"
-source-map@~0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d"
- dependencies:
- amdefine ">=0.0.4"
-
sparkles@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3"
+spawn-wrap@1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.2.4.tgz#920eb211a769c093eebfbd5b0e7a5d2e68ab2e40"
+ dependencies:
+ foreground-child "^1.3.3"
+ mkdirp "^0.5.0"
+ os-homedir "^1.0.1"
+ rimraf "^2.3.3"
+ signal-exit "^2.0.0"
+ which "^1.2.4"
+
spdx-correct@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
@@ -3467,9 +4479,9 @@ sshpk@^1.7.0:
jsbn "~0.1.0"
tweetnacl "~0.14.0"
-"statuses@>= 1.3.1 < 2", statuses@~1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
+stack-utils@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620"
stream-browserify@^2.0.1:
version "2.0.1"
@@ -3508,6 +4520,13 @@ string-width@^1.0.1, string-width@^1.0.2:
is-fullwidth-code-point "^1.0.0"
strip-ansi "^3.0.0"
+string-width@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e"
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^3.0.0"
+
string_decoder@^0.10.25, string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
@@ -3545,6 +4564,12 @@ strip-ansi@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991"
+strip-bom-buf@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz#1cb45aaf57530f4caf86c7f75179d2c9a51dd572"
+ dependencies:
+ is-utf8 "^0.2.1"
+
strip-bom-stream@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee"
@@ -3565,6 +4590,14 @@ strip-bom@^2.0.0:
dependencies:
is-utf8 "^0.2.0"
+strip-bom@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+
+strip-eof@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+
strip-indent@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
@@ -3575,10 +4608,6 @@ strip-json-comments@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
-supports-color@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-1.2.0.tgz#ff1ed1e61169d06b3cf2d588e188b18d8847e17e"
-
supports-color@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a"
@@ -3587,17 +4616,19 @@ supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
-supports-color@^3.1.0:
+supports-color@^3.1.0, supports-color@^3.1.2, supports-color@^3.2.3:
version "3.2.3"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
dependencies:
has-flag "^1.0.0"
-systemjs@^0.19.14:
- version "0.19.47"
- resolved "https://registry.yarnpkg.com/systemjs/-/systemjs-0.19.47.tgz#c8c93937180f3f5481c769cd2720763fb4a31c6f"
- dependencies:
- when "^3.7.5"
+symbol-observable@^0.2.2:
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40"
+
+symbol-observable@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
"talertest@file:tooling/talertest/":
version "1.0.0"
@@ -3636,6 +4667,26 @@ tar@^2.2.1:
fstream "^1.0.2"
inherits "2"
+term-size@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/term-size/-/term-size-0.1.1.tgz#87360b96396cab5760963714cda0d0cbeecad9ca"
+ dependencies:
+ execa "^0.4.0"
+
+test-exclude@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.0.tgz#04ca70b7390dd38c98d4a003a173806ca7991c91"
+ dependencies:
+ arrify "^1.0.1"
+ micromatch "^2.3.11"
+ object-assign "^4.1.0"
+ read-pkg-up "^1.0.1"
+ require-main-filename "^1.0.1"
+
+text-table@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+
through2-filter@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec"
@@ -3677,10 +4728,23 @@ tildify@^1.0.0, tildify@^1.1.2:
dependencies:
os-homedir "^1.0.0"
+time-require@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/time-require/-/time-require-0.1.2.tgz#f9e12cb370fc2605e11404582ba54ef5ca2b2d98"
+ dependencies:
+ chalk "^0.4.0"
+ date-time "^0.1.1"
+ pretty-ms "^0.2.1"
+ text-table "^0.2.0"
+
time-stamp@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3"
+timed-out@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
+
timers-browserify@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.2.tgz#ab4883cf597dcd50af211349a00fbca56ac86b86"
@@ -3691,12 +4755,6 @@ tiny-worker@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/tiny-worker/-/tiny-worker-2.1.1.tgz#0546f1437e43b9de253efaad235047677d73565b"
-tmp@0.0.30:
- version "0.0.30"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed"
- dependencies:
- os-tmpdir "~1.0.1"
-
to-absolute-glob@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f"
@@ -3711,10 +4769,6 @@ to-fast-properties@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
-to-iso-string@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/to-iso-string/-/to-iso-string-0.0.2.tgz#4dc19e664dfccbe25bd8db508b00c6da158255d1"
-
toposort@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.3.tgz#f02cd8a74bd8be2fc0e98611c3bacb95a171869c"
@@ -3756,12 +4810,6 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
version "0.14.5"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
-type-check@~0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
- dependencies:
- prelude-ls "~1.1.2"
-
typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
@@ -3800,10 +4848,6 @@ typescript@next:
version "2.4.0-dev.20170524"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.4.0-dev.20170524.tgz#f818a6ae2237ffa33aae7b8ed728c6b45c7566ce"
-typhonjs-istanbul-instrument-jspm@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/typhonjs-istanbul-instrument-jspm/-/typhonjs-istanbul-instrument-jspm-0.1.0.tgz#a7b944584b512c8b8dfeb37b97953b306e45d339"
-
ua-parser-js@^0.7.9:
version "0.7.12"
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb"
@@ -3832,6 +4876,10 @@ uid-number@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
+uid2@0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82"
+
unc-path-regex@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
@@ -3851,13 +4899,40 @@ unique-stream@^2.0.2:
json-stable-stringify "^1.0.0"
through2-filter "^2.0.0"
+unique-string@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a"
+ dependencies:
+ crypto-random-string "^1.0.0"
+
+unique-temp-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz#6dce95b2681ca003eebfb304a415f9cbabcc5385"
+ dependencies:
+ mkdirp "^0.5.1"
+ os-tmpdir "^1.0.1"
+ uid2 "0.0.3"
+
universalify@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.0.tgz#9eb1c4651debcc670cc94f1a75762332bb967778"
-unpipe@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+unzip-response@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
+
+update-notifier@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.1.0.tgz#ec0c1e53536b76647a24b77cb83966d9315123d9"
+ dependencies:
+ boxen "^1.0.0"
+ chalk "^1.0.0"
+ configstore "^3.0.0"
+ is-npm "^1.0.0"
+ latest-version "^3.0.0"
+ lazy-req "^2.0.0"
+ semver-diff "^2.0.0"
+ xdg-basedir "^3.0.0"
upper-case@^1.1.1:
version "1.1.3"
@@ -3867,6 +4942,12 @@ urijs@^1.18.10:
version "1.18.10"
resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.18.10.tgz#b94463eaba59a1a796036a467bb633c667f221ab"
+url-parse-lax@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"
+ dependencies:
+ prepend-http "^1.0.1"
+
url@^0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
@@ -3896,10 +4977,6 @@ utila@~0.4:
version "0.4.0"
resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c"
-utils-merge@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8"
-
uuid@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
@@ -4064,15 +5141,11 @@ whatwg-fetch@>=0.10.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
-when@^3.7.5:
- version "3.7.8"
- resolved "https://registry.yarnpkg.com/when/-/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82"
-
which-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
-which@^1.1.1, which@^1.2.12:
+which@^1.2.12, which@^1.2.4, which@^1.2.8, which@^1.2.9:
version "1.2.14"
resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5"
dependencies:
@@ -4084,6 +5157,12 @@ wide-align@^1.1.0:
dependencies:
string-width "^1.0.2"
+widest-line@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c"
+ dependencies:
+ string-width "^1.0.1"
+
window-size@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
@@ -4092,10 +5171,6 @@ wordwrap@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
-wordwrap@^1.0.0, wordwrap@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
-
wordwrap@~0.0.2:
version "0.0.3"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
@@ -4111,22 +5186,47 @@ wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
-xml-char-classes@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/xml-char-classes/-/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d"
+write-file-atomic@^1.1.4:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"
+ dependencies:
+ graceful-fs "^4.1.11"
+ imurmurhash "^0.1.4"
+ slide "^1.1.5"
-xml2js@^0.4.17:
- version "0.4.17"
- resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868"
+write-file-atomic@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.1.0.tgz#1769f4b551eedce419f0505deae2e26763542d37"
dependencies:
- sax ">=0.6.0"
- xmlbuilder "^4.1.0"
+ graceful-fs "^4.1.11"
+ imurmurhash "^0.1.4"
+ slide "^1.1.5"
-xmlbuilder@^4.1.0:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5"
+write-json-file@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.2.0.tgz#51862506bbb3b619eefab7859f1fd6c6d0530876"
+ dependencies:
+ detect-indent "^5.0.0"
+ graceful-fs "^4.1.2"
+ make-dir "^1.0.0"
+ pify "^2.0.0"
+ sort-keys "^1.1.1"
+ write-file-atomic "^2.0.0"
+
+write-pkg@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-2.1.0.tgz#353aa44c39c48c21440f5c08ce6abd46141c9c08"
dependencies:
- lodash "^4.0.0"
+ sort-keys "^1.1.2"
+ write-json-file "^2.0.0"
+
+xdg-basedir@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"
+
+xml-char-classes@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/xml-char-classes/-/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d"
"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1:
version "4.0.1"
@@ -4146,12 +5246,22 @@ y18n@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
+yallist@^2.0.0:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+
yargs-parser@^4.2.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c"
dependencies:
camelcase "^3.0.0"
+yargs-parser@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
+ dependencies:
+ camelcase "^3.0.0"
+
yargs@^6.0.0:
version "6.6.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208"
@@ -4170,6 +5280,24 @@ yargs@^6.0.0:
y18n "^3.2.1"
yargs-parser "^4.2.0"
+yargs@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
+ dependencies:
+ camelcase "^3.0.0"
+ cliui "^3.2.0"
+ decamelize "^1.1.1"
+ get-caller-file "^1.0.1"
+ os-locale "^1.4.0"
+ read-pkg-up "^1.0.1"
+ require-directory "^2.1.1"
+ require-main-filename "^1.0.1"
+ set-blocking "^2.0.0"
+ string-width "^1.0.2"
+ which-module "^1.0.0"
+ y18n "^3.2.1"
+ yargs-parser "^5.0.0"
+
yargs@~3.10.0:
version "3.10.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"